【Nuke合成】CameraTracker中Stills(静帧)场景摄影测量(图文详解)
› VFX大学 › Nuke合成影视制作 › 【Nuke合成】CameraTracker中Stills(静帧)场景摄影测量(图文详解)
标签: CameraTracker, 摄影测量, 跟踪, 静帧跟踪
-
作者帖子
-
-
2019-01-20 - 19:44 #54399
哈啰everybody,我是十七,其实每天都在关注这个社区,希望大家和我一样喜欢她。周末马上又要结束啦,十七和大家一起充充电,为年前的最后一波冲刺加把劲。
今天十七要接着和大家聊聊Nuke中的CameraTracker节点,这个节点真的非常强大,这次主要说说其中的Stills(静帧)跟踪模式。
在Stills模式下,CameraTracker会跟踪Source输入端的参考帧,并进行分析。跟踪操作会定义一系列与场景中固定刚性点相对应的2D特征点,然后解算器会为每个参考帧计算摄像机路径和投影。接触过PFTrack的V友一定会感到莫名的熟悉——是的,这就是PFTrack的摄影测量功能呀!
感兴趣的V友可以挪步@追光 大神的神帖学习学习:【PFTrack教程】如何使用Photogrammetry摄影测量(图文详解)
注意:如果我们打算单独添加LensDistortion节点手动校正镜头畸变,那么这个操作需要在跟踪序列之前就进行。不然的话,就将CameraTracker上的Lens Distortion参数设置为Unknown Lens,强制CameraTracker计算镜头畸变,然后再解算摄像机位置。
Nuke做摄影机测量的实际操作案例带训练素材,感兴趣的小伙伴可以动手实操:
-
2019-01-20 - 19:53 #54402
一、静帧摄影指导
其实影视后期工作从拍摄前期甚至分镜剧本就应该开始准备了,后期思想应该贯穿整个影视工作流程。
在CameraTracker节点的静帧跟踪工作流程中,只有良好的输入图像,才能生成良好的跟踪结果,因此采集CameraTracker可以正确理解的良好的静帧照片至关重要。
CameraTracker根据静帧主题的不同,对照片有不同的要求。比如说,平面场景的静帧采集和室内场景的静帧采集是不同的。
静帧摄影通用准则
1. 不要裁切或变换(旋转、缩放等)静帧图像。
2. 避免静帧之间有显著的大小比例或角度变化。
3. 为确保场景中的每一部分都能包含在3到4张图片中,两个静帧之间内容的最大变化为20%~25%。
4. 避免不必要的冗余,比如当前静帧包含前一帧大部分内容。
5. 避免跟踪包含多个遮挡物的静帧——带有复杂的重叠的特征点可能会导致静帧之间内容的急剧变化,从而影响跟踪结果。
-
2019-01-20 - 20:21 #54410
拍摄近平面场景
这里的近平面场景,指近乎平面的场景,因为在拍摄过程中,即使借助轨道,也难以保证绝对意义上的平面。
对近平面场景来说,最好的静帧应该是正面面向被摄主体拍摄的。在Nuke中,我们应该按照右图所示的摄像机位置进行拍摄。
错误的拍摄方式
正确的拍摄方式
拍摄3D物体
拍摄3D物体时,我们需要围着物体进行拍摄,每15度~25度拍摄一张照片,一般拍完360度的话至少需要16张照片。当然,多拍一些可以改善解算结果,但是要避免冗余。
静帧数量过少
最少需要的静帧数量
拍摄室内场景
对于封闭空间,比如室内场景,我们需要从场景中心向外拍摄静帧图像,然后围绕场景周边向内拍摄静帧,而不是从空间中不同的点上进行拍摄。
正确方式如下——
首先由中心点向外拍摄一圈
然后围着场景周边向内拍摄一圈
-
2019-01-20 - 21:11 #54414
二、跟踪静帧图像
首先我们要告诉CameraTracker节点,哪些静帧是需要跟踪的,以及如何分配每一帧上的特征点,然后才能开始跟踪工作。
选择要跟踪的静帧
1. 在CameraTracker属性面板的CameraTracker选项卡上,将Source设置为Stills(静帧)。
2. 使用Range下拉菜单决定分析哪些帧:
- Input – 默认值,将帧范围设置为源序列的长度。
- Global – 全局,将跟踪帧范围设置为Project Settings的frame range参数。
如果没有定义帧范围,则读入的第一个序列的帧范围将用作Global帧范围。
- Custom – 使用from和to输入框定义跟踪帧范围,例如从第3帧到第50帧。
- Reference Frames – 对想要分析的静帧手动设置关键帧。
3. 如果我们将Range设置为Reference Frames,则需要执行以下操作之一:
- 要将输入端上所有帧都设置为参考帧,需要将Add下拉菜单设置为Add All,输入端上所有丢失的帧都会被跳过。
- 要将特定帧范围设置为参考帧,需要将Add下拉菜单设置为Add Range,在弹框中的Frame range参数中输入帧范围并点击OK。
- 要将单独的某些帧设置为参考帧,需要将视窗顶部的Thumbnails(缩略图)下拉菜单设置为All,然后拖拉播放头到想要设置的参考帧上,点击添加参考帧按钮,则当前帧被设置为关键帧,并显示在视窗底部的缩略图画廊中。
继续拖拉播放头到下一个参考帧并重复上述操作,直到满意的结果为止。
小提示:我们也可以使用删除参考帧按钮或者CameraTracker属性面板中的Delete下拉菜单,移除不想要的参考帧。
4. 调节要跟踪的特征点。具体操作看楼下。
-
2019-01-20 - 21:39 #54429
调节要跟踪的特征点
这个步骤和Sequence(序列)跟踪模式差不多是一样的,只是参数略有不同。
1. 如果要屏蔽画面中的某些部分(比如水印),需要为遮罩源设置Mask参数。
比如说我们要使用一个Roto节点的alpha通道为遮罩,那么就要将这个Roto节点连接到Mask输入,并选择Mask参数为Mask Alpha。详细信息参看【用遮罩屏蔽图像区域】。
注意:对于立体素材或多机位素材,我们需要在CameraTracker或Settings选项卡上,将Principal View设置为主要跟踪视图。任何遮罩都应该应用到这个视图上,然后将其用于第二个摄像机视图。
2. 在Settings选项卡上,定义特征跟踪的起点:
- Number of Features – 特征点数量,定义每帧要跟踪的特征点的数量。
理想情况下,每帧的跟踪点应该超过200个。在大多数情况下,默认的250个是可以满足的,如果素材比较难,可以设置2倍的跟踪点。
- Detection Threshold – 探测阈值,设置输入图像上的特征点分布。
输入的探测阈值较低时,特征点在图像上会均匀分布。反之亦然。
低探测阈值
高探测阈值
- Feature Separation – 特征点分离,设置特征点们相对于彼此的分布。
想要特征点相对于彼此距离不要太近,且均匀分布在图像上,我们需要将特征点分离值设置得高一点。
低特征点分离
高特征点分离
3. 勾选Refine Feature Locations将探测到的特征点锁定在画面中的角上。如果激活该选项,CameraTracker会找到距离每个特征点最近的角点,并将特征点锁定在这些角点上。
4. 勾选Preview Features查看当前正跟踪的特征点的分布。
如果我们要在跟踪之前进一步调整跟踪参数,这个功能会派上用场——它会随参数的调整动态更新。
在使用特征点分布和分离参数后,一定要启用预览功能查看一下,确保跟踪点均匀分布,且不过于密集地堆在一起,这很重要!
5. 在预览图像上将特征点分布调整到满意后,就可以开始跟踪选中的参考帧啦。
-
2019-01-21 - 10:10 #54435
Nuke CameraTracker 节点的功能十分强大,这就是专业追踪中的“摄影测量”,计算出刚体在场景中的三维坐标点!非常👍,辛苦啦,十七妹 😄
-
2019-01-21 - 20:53 #54445
谢谢点赞,我会加油的!
-
-
2019-01-21 - 20:57 #54446
接着昨天的继续写~
——————
跟踪选中的参考帧
1. 在CameraTracker属性面板上点击Track按钮,开始分析静帧。
CameraTracker开始顺序读取序列帧,并跟踪存在的特征点。不符合Settings选项卡中Tracking的质量阈值设置的跟踪点会重新设置,以保持跟踪点数量不变。
当播放头走到序列末尾后,它将倒序读取序列帧,验证已通过的跟踪点。那些由于出错而重新设置的跟踪点会被反向跟踪,如果这些跟踪点仍然行得通,就会被保留下来。
2. 查看参考帧和跟踪数据。
-
2019-02-12 - 21:08 #54587
三、查看参考帧和跟踪数据
跟踪完成后,我们可以检查CameraTracker的跟踪结果。
查看参考帧
1. 执行以下操作之一:
- 将视窗顶部的Thumbnails切换为Tracked。CameraTracker会在视窗底部的缩略图画廊中显示与当前帧相连的参考帧,这样我们就可以逐帧评估解算结果。
- 将视窗顶部的Thumbnails切换为All。CameraTracker会在视窗底部的缩略图画廊中显示跟踪范围内的所有帧,这样我们将光标悬停在一个缩略图上,就可以看到与它相邻的参考帧(橙色高亮显示)和与它断开的参考帧(红色高亮显示)。
小提示:我们可以鼠标单击并向左或向右拖拽滚动查看缩略图画廊;也可以单击缩略图,将播放头移到对应的参考帧;向上或向下拖拽缩略图画廊的顶部可以调整缩略图画廊的大小。
2. 将鼠标悬停在某个特征点上,或框选多个特征点,可以显示跟踪信息。
注意:如果选择了多个特征点,我们在参考帧中是看不到跟踪轨迹长度的,只能看到轨迹本身。
详细的跟踪信息会展示在AutoTracks选项卡属性面板的曲线上。我们可以一次查看所有的跟踪信息,也可以查看单个曲线获得更详细的观察,比如查看num tracks。
小提示:我们可以按F键,将选中的曲线最大化地展示在坐标图中。
选中所有的跟踪曲线
定位到单根曲线
通过观察曲线,我们可以初步判断出哪些帧的跟踪遇到了问题,例如,右图的跟踪点数量曲线在当前帧出现明显的下降。
在这种情况下,我们可以尝试调整 Number of Features 或 Minimum Length 参数重新跟踪。
-
2019-02-12 - 22:03 #54597
四、断开的参考帧集
自动跟踪静帧功能并不完美——CameraTracker可能会舍弃一些断开的帧,造成这种情况的原因多半是视点大幅变化。跟踪完成后,将视窗顶部的Thumbnails切换为All,并将光标悬停在缩略图条中的图像上,与周围参考帧不匹配的缩略图会红色高亮显示,并在查看器中标记错误消息。
CameraTracker可以通过两种方式处理断开连接的帧:
- 如果序列中的所有帧都需要参与跟踪,我们可以创建跨组的 User Track 来连接它们。在这个过程中我们需要确保在尽可能多的参考帧中定义跟踪点,然后基于 User Track 再次跟踪。
小提示:当摄像机轨迹的起始点和结束点在同一位置时,CameraTracker可能无法自动讲结束帧和起始帧连接起来。我们可以将Thumbnail切换为Tracked,查看两个静帧之间创建的连接,然后在两个参考帧之间添加 User Track 并点击 Update Track。
-
2019-02-12 - 22:54 #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 在重新跟踪前会重新检测现有帧上的特征点,这种情况一般会发生在缓存的特征点数据已被清除且需要重建时。
-
2019-02-12 - 23:02 #54601
好啦,这次十七的教程就到这里啦,一不小心就写了个跨年贴,希望大家多多支持十七。
如有疑问,可以跟帖留言,十七会尽快回复噢。
点击十七的头像可以查看更多精彩教程哦~
如果本教程对您有所帮助,点击我的头像,加我为好友,就可以看到我得更新啦,也可给我发私信,点击帖子顶部得收藏放入收藏夹,方便将来再次查看~
本帖未经允许不得转载,转载请注明出处并保留在本站的完整链接,谢谢^_^
-
2019-10-21 - 20:03 #68718
飘过学习
-
-
作者帖子
- 在下方一键注册,登录后就可以回复啦。