【Nuke合成】CameraTracker中Stills(静帧)场景摄影测量(图文详解)

VFX大学 Nuke合成影视制作 【Nuke合成】CameraTracker中Stills(静帧)场景摄影测量(图文详解)

正在查看 11 条回复
  • 作者
    帖子
    • #54399

      韩十七
      参与者
      铁骑士

      哈啰everybody,我是十七,其实每天都在关注这个社区,希望大家和我一样喜欢她。周末马上又要结束啦,十七和大家一起充充电,为年前的最后一波冲刺加把劲。

      今天十七要接着和大家聊聊Nuke中的CameraTracker节点,这个节点真的非常强大,这次主要说说其中的Stills(静帧)跟踪模式。

      在Stills模式下,CameraTracker会跟踪Source输入端的参考帧,并进行分析。跟踪操作会定义一系列与场景中固定刚性点相对应的2D特征点,然后解算器会为每个参考帧计算摄像机路径和投影。接触过PFTrack的V友一定会感到莫名的熟悉——是的,这就是PFTrack的摄影测量功能呀!

      感兴趣的V友可以挪步@追光 大神的神帖学习学习:【PFTrack教程】如何使用Photogrammetry摄影测量(图文详解)

      注意:如果我们打算单独添加LensDistortion节点手动校正镜头畸变,那么这个操作需要在跟踪序列之前就进行。不然的话,就将CameraTracker上的Lens Distortion参数设置为Unknown Lens,强制CameraTracker计算镜头畸变,然后再解算摄像机位置。

      Nuke做摄影机测量的实际操作案例带训练素材,感兴趣的小伙伴可以动手实操:

      【Nnuke摄影测量】CameraTracker使用序列图片重建场景【实例教程】

      国内最专业的影视人社区

      来自国际最前沿的技术, 分享一线实战经验

      null

      扫描二维码,关注NewVFX社区

    • #54402

      韩十七
      参与者
      铁骑士

      一、静帧摄影指导

      其实影视后期工作从拍摄前期甚至分镜剧本就应该开始准备了,后期思想应该贯穿整个影视工作流程。

      在CameraTracker节点的静帧跟踪工作流程中,只有良好的输入图像,才能生成良好的跟踪结果,因此采集CameraTracker可以正确理解的良好的静帧照片至关重要。

      CameraTracker根据静帧主题的不同,对照片有不同的要求。比如说,平面场景的静帧采集和室内场景的静帧采集是不同的。

      静帧摄影通用准则

      1. 不要裁切或变换(旋转、缩放等)静帧图像。

      2. 避免静帧之间有显著的大小比例或角度变化。

      3. 为确保场景中的每一部分都能包含在3到4张图片中,两个静帧之间内容的最大变化为20%~25%。

      4. 避免不必要的冗余,比如当前静帧包含前一帧大部分内容。

      5. 避免跟踪包含多个遮挡物的静帧——带有复杂的重叠的特征点可能会导致静帧之间内容的急剧变化,从而影响跟踪结果。

    • #54410

      韩十七
      参与者
      铁骑士

      拍摄近平面场景

      这里的近平面场景,指近乎平面的场景,因为在拍摄过程中,即使借助轨道,也难以保证绝对意义上的平面。

      对近平面场景来说,最好的静帧应该是正面面向被摄主体拍摄的。在Nuke中,我们应该按照右图所示的摄像机位置进行拍摄。

      错误的拍摄方式

      正确的拍摄方式

      拍摄3D物体

      拍摄3D物体时,我们需要围着物体进行拍摄,每15度~25度拍摄一张照片,一般拍完360度的话至少需要16张照片。当然,多拍一些可以改善解算结果,但是要避免冗余。

      静帧数量过少

      最少需要的静帧数量

      拍摄室内场景

      对于封闭空间,比如室内场景,我们需要从场景中心向外拍摄静帧图像,然后围绕场景周边向内拍摄静帧,而不是从空间中不同的点上进行拍摄。

      从空间中不同的点上进行拍摄是错误的方式——

      正确方式如下——

      首先由中心点向外拍摄一圈

      然后围着场景周边向内拍摄一圈

    • #54414

      韩十七
      参与者
      铁骑士

      二、跟踪静帧图像

      首先我们要告诉CameraTracker节点,哪些静帧是需要跟踪的,以及如何分配每一帧上的特征点,然后才能开始跟踪工作。

      选择要跟踪的静帧

      1. 在CameraTracker属性面板的CameraTracker选项卡上,将Source设置为Stills(静帧)。

      2. 使用Range下拉菜单决定分析哪些帧:

      • Input – 默认值,将帧范围设置为源序列的长度。
      • Global – 全局,将跟踪帧范围设置为Project Settings的frame range参数。

      如果没有定义帧范围,则读入的第一个序列的帧范围将用作Global帧范围。

      • Custom – 使用fromto输入框定义跟踪帧范围,例如从第3帧到第50帧。
      • Reference Frames – 对想要分析的静帧手动设置关键帧。

      3. 如果我们将Range设置为Reference Frames,则需要执行以下操作之一:

      • 要将输入端上所有帧都设置为参考帧,需要将Add下拉菜单设置为Add All,输入端上所有丢失的帧都会被跳过。
      • 要将特定帧范围设置为参考帧,需要将Add下拉菜单设置为Add Range,在弹框中的Frame range参数中输入帧范围并点击OK
      • 要将单独的某些帧设置为参考帧,需要将视窗顶部的Thumbnails(缩略图)下拉菜单设置为All,然后拖拉播放头到想要设置的参考帧上,点击添加参考帧按钮,则当前帧被设置为关键帧,并显示在视窗底部的缩略图画廊中。

      继续拖拉播放头到下一个参考帧并重复上述操作,直到满意的结果为止。

      小提示:我们也可以使用删除参考帧按钮或者CameraTracker属性面板中的Delete下拉菜单,移除不想要的参考帧。

      4. 调节要跟踪的特征点。具体操作看楼下。

    • #54429

      韩十七
      参与者
      铁骑士

      调节要跟踪的特征点

      这个步骤和Sequence(序列)跟踪模式差不多是一样的,只是参数略有不同。

      1. 如果要屏蔽画面中的某些部分(比如水印),需要为遮罩源设置Mask参数。

      比如说我们要使用一个Roto节点的alpha通道为遮罩,那么就要将这个Roto节点连接到Mask输入,并选择Mask参数为Mask Alpha。详细信息参看【用遮罩屏蔽图像区域】

      注意:对于立体素材或多机位素材,我们需要在CameraTrackerSettings选项卡上,将Principal View设置为主要跟踪视图。任何遮罩都应该应用到这个视图上,然后将其用于第二个摄像机视图。

      2. 在Settings选项卡上,定义特征跟踪的起点:

      • Number of Features – 特征点数量,定义每帧要跟踪的特征点的数量。

      理想情况下,每帧的跟踪点应该超过200个。在大多数情况下,默认的250个是可以满足的,如果素材比较难,可以设置2倍的跟踪点。

      • Detection Threshold – 探测阈值,设置输入图像上的特征点分布。

      输入的探测阈值较低时,特征点在图像上会均匀分布。反之亦然。

      低探测阈值

      高探测阈值

      • Feature Separation – 特征点分离,设置特征点们相对于彼此的分布。

      想要特征点相对于彼此距离不要太近,且均匀分布在图像上,我们需要将特征点分离值设置得高一点。

      低特征点分离

      高特征点分离

      3. 勾选Refine Feature Locations将探测到的特征点锁定在画面中的角上。如果激活该选项,CameraTracker会找到距离每个特征点最近的角点,并将特征点锁定在这些角点上。

      4. 勾选Preview Features查看当前正跟踪的特征点的分布。

      如果我们要在跟踪之前进一步调整跟踪参数,这个功能会派上用场——它会随参数的调整动态更新。

      在使用特征点分布和分离参数后,一定要启用预览功能查看一下,确保跟踪点均匀分布,且不过于密集地堆在一起,这很重要!

      5. 在预览图像上将特征点分布调整到满意后,就可以开始跟踪选中的参考帧啦。

    • #54435

      追光
      参与者
      机构认证

      Nuke CameraTracker 节点的功能十分强大,这就是专业追踪中的“摄影测量”,计算出刚体在场景中的三维坐标点!非常👍,辛苦啦,十七妹 😄

      • #54445

        韩十七
        参与者
        铁骑士

        谢谢点赞,我会加油的!

    • #54446

      韩十七
      参与者
      铁骑士

      接着昨天的继续写~

      ——————

      跟踪选中的参考帧

      1. 在CameraTracker属性面板上点击Track按钮,开始分析静帧。

      CameraTracker开始顺序读取序列帧,并跟踪存在的特征点。不符合Settings选项卡中Tracking的质量阈值设置的跟踪点会重新设置,以保持跟踪点数量不变。

      当播放头走到序列末尾后,它将倒序读取序列帧,验证已通过的跟踪点。那些由于出错而重新设置的跟踪点会被反向跟踪,如果这些跟踪点仍然行得通,就会被保留下来。

      2. 查看参考帧和跟踪数据。

    • #54587

      韩十七
      参与者
      铁骑士

      三、查看参考帧和跟踪数据

      跟踪完成后,我们可以检查CameraTracker的跟踪结果。

      查看参考帧

      1. 执行以下操作之一:

      • 将视窗顶部的Thumbnails切换为Tracked。CameraTracker会在视窗底部的缩略图画廊中显示与当前帧相连的参考帧,这样我们就可以逐帧评估解算结果。
      • 将视窗顶部的Thumbnails切换为All。CameraTracker会在视窗底部的缩略图画廊中显示跟踪范围内的所有帧,这样我们将光标悬停在一个缩略图上,就可以看到与它相邻的参考帧(橙色高亮显示)和与它断开的参考帧(红色高亮显示)。

      小提示:我们可以鼠标单击并向左或向右拖拽滚动查看缩略图画廊;也可以单击缩略图,将播放头移到对应的参考帧;向上或向下拖拽缩略图画廊的顶部可以调整缩略图画廊的大小。

      2. 将鼠标悬停在某个特征点上,或框选多个特征点,可以显示跟踪信息。

      注意:如果选择了多个特征点,我们在参考帧中是看不到跟踪轨迹长度的,只能看到轨迹本身。


      检查自动跟踪曲线

      详细的跟踪信息会展示在AutoTracks选项卡属性面板的曲线上。我们可以一次查看所有的跟踪信息,也可以查看单个曲线获得更详细的观察,比如查看num tracks

      小提示:我们可以按F键,将选中的曲线最大化地展示在坐标图中。

       选中所有的跟踪曲线

      定位到单根曲线

      通过观察曲线,我们可以初步判断出哪些帧的跟踪遇到了问题,例如,右图的跟踪点数量曲线在当前帧出现明显的下降。

      在这种情况下,我们可以尝试调整 Number of FeaturesMinimum Length 参数重新跟踪。

    • #54597

      韩十七
      参与者
      铁骑士

      四、断开的参考帧集

      自动跟踪静帧功能并不完美——CameraTracker可能会舍弃一些断开的帧,造成这种情况的原因多半是视点大幅变化。跟踪完成后,将视窗顶部的Thumbnails切换为All,并将光标悬停在缩略图条中的图像上,与周围参考帧不匹配的缩略图会红色高亮显示,并在查看器中标记错误消息。

      CameraTracker可以通过两种方式处理断开连接的帧:

      • 使用删除按钮Delete 下拉菜单删除断开的参考帧,并再次跟踪;
      • 如果序列中的所有帧都需要参与跟踪,我们可以创建跨组的 User Track 来连接它们。在这个过程中我们需要确保在尽可能多的参考帧中定义跟踪点,然后基于 User Track 再次跟踪。

      小提示:当摄像机轨迹的起始点和结束点在同一位置时,CameraTracker可能无法自动讲结束帧和起始帧连接起来。我们可以将Thumbnail切换为Tracked,查看两个静帧之间创建的连接,然后在两个参考帧之间添加 User Track 并点击 Update Track

    • #54599

      韩十七
      参与者
      铁骑士

      静帧跟踪排障

      有些静帧序列不可避免地会产生问题,有许多跟踪前检查和跟踪后细化参数的方法,可以帮助 CameraTracker 排障。

      我们可以添加 User Track 改进跟踪数据。

      预跟踪检查

      • 对于标准序列,要避免静帧之间的冗余过多或过少,一般来说,我们应该保证场景中的每个部分都能包含在3到4张图片中,两个静帧之间内容的最大变化为20~25%。
      • 将同一个对象拍摄到3张照片中,最好是4张。

      比如,如果是围绕物体拍摄,每15~25度拍摄一张照片就够了(360度需要约16张照片)。

      跟踪后优化

      我们可以使用下面几个参数优化一组特征跟踪点,然后重新跟踪以提高获得良好解算的机会:

      • Minimum Length – 最小长度,设置最小可接受的跟踪长度阈值,这个长度指的是时间长度,以帧为单位。不达标的特征点将被排除。

      如果镜头时间比较长且摄像机移动速度慢,我们最好从长的跟踪轨迹中生成解算。如果短的跟踪轨迹很多,可能会在计算摄像机时导致噪声,使结果不准确,在解算前我们最好移除这些短的跟踪点。

      • Track Threshold – 跟踪阈值,此参数决定 CameraTracker 对跟踪点的宽容度。

      降低此阈值将使跟踪对图像更改更宽容,从而产生更长的跟踪轨迹。

      小提示:我们可以按 F 键,将选中的曲线最大化的展示在坐标图中。

      重新跟踪部分帧范围

      优化特征点后,我们不一定要重新跟踪整个序列,我们可以使用 Update Track 来分析特定的帧范围。

      1. 使用上述参数优化特征点。

      2. 点击 Update Track

      此时会弹出一个对话框让我们设置要更新的帧范围。

      3. 设置帧范围,然后点击 OK

      CameraTracker 会重新跟踪选中的范围,并将跟踪数据合并到已有的跟踪点中。

      注意:我们可能会发现 Camera Tracker 在重新跟踪前会重新检测现有帧上的特征点,这种情况一般会发生在缓存的特征点数据已被清除且需要重建时。

    • #54601

      韩十七
      参与者
      铁骑士

      好啦,这次十七的教程就到这里啦,一不小心就写了个跨年贴,希望大家多多支持十七。

      如有疑问,可以跟帖留言,十七会尽快回复噢。

      点击十七的头像可以查看更多精彩教程哦~

      如果本教程对您有所帮助,请关注NewVFX社区公众号,并将本帖推荐给你的朋友哦~

      本帖未经允许不得转载,转载请注明出处并保留在本站的完整链接,谢谢^_^

    • #68718

      睡觉是个体力活
      参与者
      军士

      飘过学习

正在查看 11 条回复
  • 在下方一键注册,登录后就可以回复啦。
error: 提示:内容受到保护!!
-->