【Nuke合成】如何使用CameraTracker中的User Track?(图文详解)
› VFX大学 › Nuke合成影视制作 › 【Nuke合成】如何使用CameraTracker中的User Track?(图文详解)
-
作者帖子
-
-
2019-02-17 - 14:19 #54864
-
2019-02-17 - 14:21 #54865
User Track 是需要我们手动放置的,不是 CameraTracker 自动播撒的,可用于改进甚至替换自动跟踪数据。在跟踪静帧时,User Track 还可以将不匹配的参考帧链接在一起。
我们可以在跟踪和解算前创建 User Track 将摄像机锁定到镜头的特定部分,或者在跟踪或解算之后创建 User Track 改善解算结果。
本帖涵盖以下内容:
- 在视窗中添加并定位 User Track。
- 以多种方式跟踪 User Track。
- 使用 User Track 改进自动跟踪数据。
- 仅使用 User Track 手动跟踪场景。
- 在跟踪静帧时使用 User Track 链接参考帧。
- 将 User Track 指定为 3D 测量点,从而将序列和已知的3D世界联系起来,比如用静帧创建的3D世界。
-
2019-02-17 - 14:24 #54869
一、添加并定位 User Track
我们可以根据需要完成的任务,添加任意数量的User Track。比如说,自动跟踪辅助可能只需要一两个User Track,而手动跟踪则需要至少8个User Track。
1. 启用视窗顶部的快速添加按钮,然后在视窗中单击以添加User Track,或者点击属性面板中UserTracks选项卡的Add Track按钮。
注意:点击Add Track会放置一个新跟踪点在当前视窗的中心。
小提示:我们可以按住Ctrl/Cmd+Alt在视窗中单击,快速添加User Track。
在视窗左上角会显示跟踪放大窗口。
最初有三个放大窗口:
- 参考帧(绿色) – 跟踪的第一帧,这个画面是恒定不变的,可以帮助我们在后续帧中更准确地定位特征点。
- 当前帧(橙色) – 播放头的位置,使用此窗口比较当前帧和参考帧,以调整当前帧的跟踪锚点。
- 关键帧(蓝色) – 序列中的第一个关键帧,每添加一个关键帧就会增加一个关键帧窗口。
小提示:单击关键帧放大窗口可以立即跳转到该关键帧。
小提示:将Zoom Window视窗参数设置为Off可以隐藏放大窗口。
2. 将锚点中心的十字准线拖拽到要跟踪的特征点上,或手动调整UserTrack列表中跟踪点的x和y坐标。
3. 在当前帧放大窗口中点击和拖拽跟踪点位置进行优化。
小提示:按住Shift并将放大镜光标拖离窗口中心,可以更改放大窗口的放大倍数。
要调整放大窗口的大小,可以将其右下角拖动到新的位置。
-
2019-02-17 - 14:29 #54872
二、User Track 跟踪方法
User Track可以自动跟踪也可以手动跟踪,可以从自动跟踪数据中提取,也可以从Tracker节点中导入。
——————
自动跟踪User Track
使用User Track最简单的方法是使用Autotrack功能,不过我们可以创建完全独立于自动跟踪的跟踪点。当我们在序列中放置好需要的跟踪点后,需要做如下操作:
1. 点击属性面板的UserTracks选项卡显示跟踪表。
2. 选中表格中需要计算的所有跟踪点,然后点击Autotrack。
CameraTracker会以类似自动跟踪的方式来跟踪所选特征点,但是跟踪发生故障时,它不会重新添加跟踪点。
3. 跟踪完成后,我们可以检查一下跟踪的特征点是否失败:
- 跟踪过程中,所有没有跟踪失败的跟踪点的锚点都是黄色的。
- 跟踪后,跟踪失败的跟踪点在整个序列中都没有关键帧。
如下图所示,黄色的 user 1 是一个好的跟踪点,而 user 3 从116帧开始已经偏移。
4. 如果跟踪失败或偏移了,可以在放大窗口中拖拽锚点重新定位和跟踪。
5. 来回拖动播放头反复检查几遍。
6. 每一帧上放大窗口右侧都会添加一个新的关键帧窗口。
——————
手动跟踪User Track
手动跟踪得到的结果是最好的,但是耗时比较长,因为所有的关键帧都是我们自己手动跟踪产生的,而不是CameraTracker自动生成。
小提示:一般情况下,我们只能在静帧跟踪时手动创建User Track跟踪。Nuke的Tracker节点可以为连续的序列创建可靠的跟踪点,然后我们可以将这些跟踪点作为User Track导入。
当我们在序列中放置好需要的跟踪点后,需要做如下操作:
1. 点击属性面板的UserTracks选项卡显示跟踪表。
2. 选中表格中需要计算的所有跟踪点。
3. 将播放头向前滑动几帧,然后使用当前放大窗口将跟踪锚点移动到新画面帧中的正确位置。
视窗中会增加一个新的关键帧窗口。
4. 将视窗顶部的Thumbnails设置为User Tracks。
当前选中的User Track的所有关键帧都会显示在缩略图画廊中。
5. 将鼠标先听在视窗中的跟踪点上,可以查看User Track参考帧,这样可以帮助我们快速确定被跟踪的对象是否在当前帧中。
小提示:视窗顶部的关键帧窗口会显示当前所选User Track上的所有关键帧,我们可以点击一个关键帧窗口快速跳到该帧。
6. 添加完关键帧后,视窗时间线上会显示这些关键帧的标记。使用Alt+⬅️/➡️键可以快速跳转到上一个或下一个关键帧。此操作有助于校正稍有偏离的关键帧。
——————
提取User Track
自动跟踪后,我们可以使用自动跟踪数据提取User Track。CameraTracker认为User Track非常重要,并试图通过自动跟踪锁定它们。因此,如果我们的自动跟踪看上去比较可靠,则可以从自动跟踪中提取User Track,这将会很有用。
如果我们想导出一些自动跟踪点,用于Tracker节点的2D工作,我们也可以提取自动跟踪点。
1. 在视窗上右键自动跟踪点,并选择 tracks > extract user track。
选中的跟踪点会以extr为前缀,放在User Track表格中。
2. 如果跟踪失败或偏移了,可以在放大窗口中拖拽锚点重新定位和跟踪。
3. 来回拖动播放头反复检查几遍。
4. 每一帧上放大窗口右侧都会添加一个新的关键帧窗口。
——————
导入Tracker节点中的跟踪点
我们也可以从Tracker节点中导入关键帧和跟踪数据,以快速创建User Track。
1. 点击属性面板的UserTracks选项卡显示跟踪表。
2. 点击Import Tracker。
3. 此时会弹出Select Tracker to Import From对话框。
4. 从tracker node下拉菜单中选择需要的Tracker节点。
一个新的User Track会添加到跟踪点列表中。
-
2019-02-17 - 14:34 #54873
三、跟踪辅助
通过添加User Track可以改善自动跟踪数据,因为CameraTracker会假定手动放置的跟踪点优于自动跟踪。添加User Track重新跟踪会强制CameraTracker使用更准确的数据重新计算自动跟踪。
1. 跟踪序列或静帧。具体方法可以参考如下帖子:
跟踪序列 https://www.newvfx.com/forums/topic/54335#post-54359
跟踪静帧 https://www.newvfx.com/forums/topic/54399
2. 跟踪一个或两个User Track。跟踪方法上文有提到:https://www.newvfx.com/forums/topic/54864#post-54872
小提示:添加跟踪点非常耗时,但添加的User Track越多,得到的结果就越好。
3. 点击Track重新跟踪整个序列。或
如果我们只在特别麻烦的区域添加了一些关键帧,可以点击Update Track在该帧范围内重新跟踪。
4. 调整参数,优化跟踪结果。方法参考如下帖子:https://www.newvfx.com/forums/topic/54399#post-54599
-
2019-02-17 - 14:36 #54874
四、手动跟踪场景
有时候有些场景很难被自动跟踪,比如静帧集中图像之间的基线非常宽,再比如我们可能已经从之前的工作流中获得了2D数据,在这样的情况下,我们设置User Track并将其用作跟踪数据。
要记住,每帧通常需要至少8~16个User Trackcan 能得到可靠的解算结果。
1. 创建足够数目的手动跟踪点。
2. 解算摄像机位置。
-
2019-02-17 - 14:40 #54877
五、链接静帧参考帧
在静帧跟踪期间,参考帧之间的链接可能会失败。造成这种情况的原因有很多,比如静帧之间没有重叠。我们可以在自动跟踪前,在静帧的公共特征点上添加User Track来帮助CameraTracker计算。
1. 在尽可能多的参考帧中创建至少四个User Track。
如下图所示,柱子顶部和建筑的角点都可以放置User Track。
参考帧A
参考帧B
2. 移动到下一帧,在该帧中将User Track重新定位到对应的特征点上。如此操作直至静帧结尾。
3. 当所有的帧都链接之后,点击Track。
CameraTracker会使用User Track中的可靠信息创建一组Auto Track。
4. 解算摄像机位置。
注意:上述工作流讲的是如何使用User Track帮助CameraTracker连接未自动跟踪的帧。有时候很多跟踪情况不佳的帧,从头开始完全手动跟踪可能更容易些,V友们要具体情况具体分析、具体处理。
-
2019-02-17 - 14:42 #54879
六、分配3D测量点
我们可以将创建的User Track指定为已知的3D测量点,告诉Camera Tracker节点2D素材中的哪些点和3D模型上的点相对应,从而将解算的摄像机位置与已知3D点匹配,获得更好的解算结果。
注意:3D测量点已经取代了ProjectionSolver工作流程,不过我们仍然可以在节点图中按X,并输入Tcl命令:ProjectionSolver,来添加ProjectionSolver节点。
小提示:我们可以使用ModelBuilder或外部应用为素材创建3D模型。
要在场景中创建3D测量点:
1. 要完整地定义场景和测量点之间的旋转、平移和缩放,至少需要创建并跟踪3个User Track。如果跟踪点超过3个,可以获得更好的结果。
2. 在视窗中按Tab或使用View selection下拉菜单,将视窗切换为3D模式。
3. 将视窗上方的Thumbnail设置为All,以显示所有的参考帧缩略图。
4. 将视窗上方的选择模式按钮切换为Vertex selection模式。
5. 选择3D模型上的顶点,和与之对应的User Track。
6. 右键User Track并选择 user tracks > snap to 3D vertex selection。
7. 在CameraTracker属性面板上,点击UserTracks选项卡,显示跟踪点列表。
当匹配3D顶点到User Track上时,user track表会显示pixel error。我们可以使用此参数检查摄像机解算与3D测量点的匹配程度。
如果解算器与点不匹配,则会出现高误差值。此时我们需要检查2D特征点位置是否对应同一点,并仔细检查模型上的3D顶点。
8. 对场景中所需要的User Track重复上述操作,然后启用User Track表中的每个跟踪点的s复选框。
在解算过程中,s会将这些点指定为已知的3D测量点,使CameraTracker为集合体创建正确的摄像机位置。
小提示:如果我们有来自同一场景或内容的多个源素材,也可以使用测量点解算每个源素材,并将它们合并到同一个世界坐标中。
-
2019-02-17 - 14:43 #54880
好啦,这次十七的教程就到这里啦,如有疑问,可以跟帖留言,十七会尽快回复哦。
点击十七的头像可以查看更多精彩教程呢~
如果本教程对您有所帮助,点击我的头像,加我为好友,就可以看到我得更新啦,也可给我发私信,点击帖子顶部得收藏放入收藏夹,方便将来再次查看~,并将本帖推荐给您的朋友哦~
本帖未经允许不得转载,禁止二次转载,转载请注明出处并保留在本站的完整链接,谢谢^_^
-
-
作者帖子
- 在下方一键注册,登录后就可以回复啦。