【PFTrack教程】如何跟踪画面中的运动物体?(视频详解)

VFX大学 PFtrack,3DEqualizer,Mocha追踪 【PFTrack教程】如何跟踪画面中的运动物体?(视频详解)

标签: ,

正在查看 12 条回复
  • 作者
    帖子
    • #31022

      追光
      参与者
      机构认证

      有的时候我们需要反求的不仅仅是摄像机的运动,比如替换镜头中的运动物体。追光今天教大家跟踪和解算演员手中的道具,今天要使用 User Track 节点手动跟踪物体,然后将物体解算到场景中。

      练习素材下载链接:

      PFTrack运动物体跟踪解算练习素材百度云下载


      1. 导入素材并检查

      video

      打开文件浏览器,导航到教程素材,将缩略图拖拽到节点图中。按播放键检查素材,这是一个室外手持镜头,演员手中提着一个箱子📦。


      2. 解算摄像机

      video

      每个场景,在解算任何物体运动之前,都需要一个摄像机,所以我们首先要跟踪并解算片段中的摄像机。

      创建 Auto Track 节点,将 Search 模式改为 Optical Flow,在 Deformation 菜单中选择 Rotate、ScaleSkew,然后点击 Auto Track

      video

      跟踪完成后,我们创建一个 Camera Solver 节点,在 Distortion 选项卡勾选 Low-order 镜头畸变的 Estimate,然后点击 Solve All,解算摄像机。选择地面上的三个跟踪点,在 Set Plane 菜单中选择 X-Z Plane,快速定位场景。然后选择一个合适的跟踪点,点击 Set Origin

      关于摄像机解算,这里讲得比较粗略,大家可以参考这个帖子:

      【PFTrack教程】如何使用自动跟踪和摄像机解算?(视频详解)

      ——————

      加载预定义场景

      video

      另外,如果这个镜头本身就有一个带解算摄像机的场景,我们就可以使用场景里的摄像机,不用自己跟踪解算,只需要创建一个 Edit Camera 节点,连接到片段上,点击 Import Camera,导入摄像机。


      3. 跟踪物体

      创建节点和运动组

      video

      创建 User Track 节点,连到解算了的场景中。在这个 User Track 节点中创建的跟踪点将用来解算道具的运动,而不是摄像机运动。为此,我们需要为运动物体创建一个新的运动组,点击 Current group 菜单旁的 + 按钮,在输入框中输入“Box”,对创建的组重命名。现在就有两个运动组了,一个默认的 Camera 组(用来解算摄像机),一个新的 Box 组,这个组会收集所有与道具运动有关的跟踪点。

      ——————

      创建第一个跟踪点

      video

      点击 Create 按钮,然后在 Cinema 中点击,创建并定位第一个跟踪器。这里我们选择道具左上角的跟踪标记点。如果需要的话,也可以缩放到标记点,以便更容易地调整跟踪器。点击内部跟踪器并拖拽,可以微调定位;在下面的面板上有一个放大的跟踪器,我们也可以调节它来重新定位跟踪器。

      跟踪窗口内部的矩形包含即将跟踪的图案。我们需要调节这个跟踪窗口,拖拽窗口边缘到合适的位置,使它只包含跟踪标记点,不包括其他东西。

      外部矩形是搜索窗口。搜索窗口定义 PFTrack 在下一帧搜索特征图案的区域,将它缩小一点,使它更接近跟踪窗口。道具上有多个同样的标记点,所以如果搜索范围太大的话,会导致跟踪器跳到其他标记点上。

      Deformation 菜单中选择 Rotate、ScaleSkew,允许跟踪窗口变形,更好地匹配下一帧的标记图案。

      完成后,点击 Set Default,将这些设置保存为默认,我们接下来创建在这个节点中的跟踪器就会默认使用这个设置了。

      ——————

      跟踪第一个跟踪点

      video

      点击 Centre View,使当前选中的跟踪器总是保持在视窗的中心,这样更容易查看跟踪器,发现可能存在的问题,如果偏了的话,可以及时矫正。

      点击 > 按钮是向前跟踪1帧;点击 >> 按钮是持续向前跟踪直到片段的结尾,或匹配分数太低(匹配分数是用来表示当前帧和跟踪器参考图匹配质量的数值)。Failure threshold 参数定义低于哪个值就表示匹配分数太低。

      video

      如果出现匹配分数太低,跟踪中断了的话,我们可以调节跟踪器的位置和参数,然后继续跟踪。手动定位跟踪器通常会导致跟踪器的路径出现跳动,我们可以点击 Polish 进行平滑,因为这样会在上次跟踪的最后五帧开始重新跟踪特征点。重新跟踪的帧数由 Polish range 参数定义。

      video

      调节好位置和参数后继续跟踪。

      在哪一帧停止跟踪,很大程度上取决于跟踪器的初始位置,以及它的跟踪窗口和搜索窗口。当跟踪没到达片段末尾就结束时,要确保跟踪器还在正确的位置上,有必要的话,进行重新定位和平滑(Polish),然后继续跟踪。

      ——————

      创建并跟踪更多跟踪点

      video

      返回第一帧,然后在盒子的面上创建两个以上的跟踪器,用来跟踪标记点。

      video

      跟踪方法和第一个跟踪器一样,必要时候进行重新定位和平滑,直到跟踪到片段结尾。

      ——————

      跟踪箱子背面

      video

      跳到第一帧,在箱子背面的标记点上防治第四个跟踪器。由于跟踪标记点的角度,我们应该先调整跟踪窗口的大小。跟踪到半路上跟踪点就会不见了,第59帧是标记点完全可见的最后一帧。

      video

      如果跟踪器已经跟踪了更长的时间,我们可以回到第59帧,点击并确认 R+ 按钮,这样将删除当前帧以后的所有跟踪关键帧。

      尽管跟踪器在59帧以后就不跟踪了,但是它在片段的剩余部分依然是可见的,而且是激活的状态。播放条上的深红色标记就是跟踪器可见但没有跟踪的地方。蓝色表示跟踪器可见且跟踪过的地方。在第59帧上,点击 H+ 按钮,在剩余帧上隐藏这个跟踪点,然后逐帧播放检查一下,确认这个跟踪点在这些帧上不可见了。

      ——————

      跟踪箱子上面

      video

      接下来我们跟踪箱子的上面。返回第一帧,并在角上放置跟踪器。

      因为这个跟踪标记并不完全可见,所以我们需要相应地调节跟踪窗口和搜索窗口,然后跟踪直到最后一帧。

      video

      继续放置跟踪点,重复跟踪。在比较难跟踪的地方可以逐帧地跟踪,及时调整。

      ——————

      跟踪箱子前面

      video

      跳到最后一帧,在箱子的前面放置最后一个跟踪器,这个标记点只在最后3帧可见。所以,在最后一帧定位跟踪器,然后使用 << 按钮向后跟踪,到达第69帧时,点击 H- 按钮隐藏前面没有跟踪的帧。

      此外,如果我们在其他跟踪软件中做好了跟踪,只需要导出跟踪数据,在 User Track 节点中点击 Import 打开文件,将这些跟踪器加载到节点中就可以了。


      4. 解算物体

      video

      和 Camera Solver 将跟踪特征点转化成摄像机运动一样,Object Solver 解算的是物体运动。创建 Object Solver 节点,并连接到 User Track 节点上。要注意,因为 Object Solver 解算的不是摄像机,所以我们需要把当前组选择的是 Box 运动组,保留一切参数默认,点击 Solve Object 就可以了。

      ——————

      设置物体缩放

      video

      打开透视图,播放片段,对解算有一个初步的印象,然后近距离观察运动摄像机和物体,和明显物体离摄像机和原点太远了。此时 PFTrack 认为物体离摄像机很远,所以需要一个数学算法限制,当只使用一个摄像机解算物体运动时。

      video

      现在我们来校正这个问题。在 Orientation mode 菜单中选择 Distance form camera,在 Cinema 中启用操控器,更改物体大小,以及离摄像机的距离。拖拽操控器,使物体离远点更近。


      5. 测试解算结果

      video

      现在我们可以在 Test Object 节点中使用测试物体测试解算结果了。关闭透视图并创建节点。在 Available objects 列表中点击 Cow_Head,将牛头放入解场景中。将 Interaction mode 改为 Place at selected feature,并将 Positioning mode 设置为 Origin,牛头就会放置在箱子的原点上,而不是边缘上。点击箱子面上的一个跟踪点,将牛头放在那里,然后使用 Rotate、ScaleTranslate 交互模式移动到合适的位置。

      video

      完成后,将 Interaction mode 设置为 None,隐藏操控器,然后播放,测试物体应该就像贴在箱子上一样。


      6. 导出解算结果

      video

      创建 Export 节点,导出场景。在 Groups 选项卡中,我们可以看见 Camera 组和 Box 组都可以导出,所以两个都选上,点击 Export Scene,导出结果。


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

      如果喜欢追光的帖子,请关注NewVFX社区公众号,并将本帖推荐给你的朋友哦~

      本帖未经允许不得转载,禁止二次转载,转载请注明出处并保留在本站的完整链接,

      国内最专业的影视人社区

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

      null

      扫描二维码,关注NewVFX社区

    • #31036

      小仙女
      参与者
      军士

      很赞,思路清晰,讲解详细,网上好多教程都是长长的的一个视频,再不就是全英语无字幕,看着看着就不知道自己在干什么了。第一次理解了为什么要先求摄像机。

    • #49164

      施主请留步
      参与者
      军士

      那个有几个问题想咨询一下 1:makeObject节点和objectsolver 这个两个节点有什么不同吗 :2:然后就是当整个场景结算好时列入上述素材  在三维视图中有场景运动相机和物体运动相机都结算好时  放置测试物体的时候  测试物体都不会准确的在 跟踪点上 有的是在跟踪点的前面有的是在跟踪点的后面 但测试物体的动画跟物体运动想一直 怎么回事呢? 3:当场景中的运动物体出现很大的旋转等透视变化时 这样的跟踪是否还会有效呢   4:最近做东西的时候发现导出相机时候放到maya里 给模型做约束发现物体的动画和在PFtrack里的不太相同  但在PF里测试的时  测试物体都是稳定的    最近一直被这几个问题所困扰

    • #49165

      施主请留步
      参与者
      军士

      还有一个问题就是空间关系的话怎么确定准确呢 还是根据点的信息找个大概位置呢

      • #49167

        追光
        参与者
        机构认证

        空间关系计算出来要求是准确的。如果是对追踪质量要求比较严格的,需要进行测量,前期测量分为两种(而且两种都是必须要做的):
        1,对物体的真实尺寸进行测量,追踪好后,选择两点输入事先已经测量好的数据。比如:箱子高度是40cm,宽度是20cm
        2,需要前期多角度倾斜摄影,通过后期反求出物体的三维空间关系。
        3,如果是有旋转,选准角度低于60度的,可以直接点追踪,如果大于这个度数建议将第二步中测量得到的三维物体放入场景,使用模型追踪(如下贴)。

        【PFTrack教程】如何使用几何体解算摄像机?(gif图文详解)

    • #49176

      施主请留步
      参与者
      军士

      make object 和objectsolver有什么区别呢

      • #49181

        小仙女
        参与者
        军士

        makeobject是创建几何物体的,objectsolver是解算器。

    • #52086

      baixiaobai
      参与者
      军士

      求助     pftrack怎么跟踪多个物体在同一场景里

    • #55896

      caoxueqiang
      参与者
      军士

      非常感谢!学习了!

    • #64268

      阳光之下
      参与者
      军士

      你好,怎样才能让点动,

      就是平时咱们反求出的相机,

      放到maya里在不用相机的情况下,

      导出的点,自身有运动信息,

      现在把相机去掉,点就不动了。

      怎样才能导出有运动信息的点,而不靠导出的摄像机动。

      • #64278

        追光
        参与者
        机构认证

        这是复合跟踪,需要先求解出摄影机运动,接着再追踪物体,反求出物体运动。这篇文章中的内容可以一步一步操作一下复合跟踪的操作流程与节点流程。

    • #65556

      波士顿糖果
      参与者
      军士

      请问怎么把物体结算出来的信息导入nuke里使用呢,比如使用箱子的跟踪信息给箱子上贴一张图。

      • #65560

        追光
        参与者
        机构认证

        直接导出就可以~~导出为nuke工程文件即可,然后在Nuke的脚本运行里打开脚本,运行一遍脚本就导入到Nuke中了~~

        • #66062

          波士顿糖果
          参与者
          军士

          能不能出一个数据导出到nuke里的应用教程,这个应该还是非常有帮助的,谢谢大神了。

        • #66063

          追光
          参与者
          机构认证

          好的,这几天安排下,做一个数据交换的教程~~敬请关注NewVFX~~😄

        • #66235

          波士顿糖果
          参与者
          军士

          非常感谢分享!

    • #71342

      摘叶茶
      参与者
      军士

      大大,为什么这个素材用PFTrack很易跟踪好用3DEqualize就是箱子的跟踪点跟不好(在3维视窗里看跟踪点不成箱型状,单独看箱子的跟踪点是完美的,是场景解算影响的吧)

      • #71348

        追光
        参与者
        机构认证

        3dequalizer的追踪精确度,效率,远远超过pftrack。但3de的操作方式相对更复杂,可设置参数会更多…相对而言pftrack的操作更加简单一些。体系原理是一致的,只是3de可以更多依靠人工操作,对参数进行更加细致的调整,熟悉面板上每一项参数的算法原理是很重要的。

    • #71345

      摘叶茶
      参与者
      军士

    • #71346

      摘叶茶
      参与者
      军士

      在手动跟踪里看箱子跟踪得不错,在3D视窗里看箱子的跟踪点却成一直线状

      • #71347

        恬的卫士
        参与者

        对的,这主要是用于追踪运动物体的相对中心点。如果想要解算运动物体在三维空间中精确的模型位置,必须要经过摄影测量这个步骤。

        也就要求前期拍摄需要标记拍摄,同时需要按照摄影测量规则拍摄测量照片,用来求解精确模型尺寸。
        最后将精确模型尺寸匹配到你现在追踪好的物体上,才会得到精确模型空间位置。

        缺乏摄影测量的情况下,无法得到精确的位置,只是大概参考中心点。

    • #71350

      摘叶茶
      参与者
      军士

      但用PFTrack却操作简单而精准

      • #71351

        追光
        参与者
        机构认证

        对的,一般的影片用pftrack就可以了。如果是电影就只能用3de,没有第二种选择。能精准的追踪1个像素以内的误差,但运作成本,人员要求也非常高。3de的价格也够买很多套pftrack了,如果不做电影,pftrack够用了…主要是简单。

        • #71353

          摘叶茶
          参与者
          军士

          大大,那我这跟踪问题出再哪里?需要改哪跟踪流程,哪些参数的调校?主要就是3D里箱子的跟踪点的型态问题,更改场景跟踪点解算后型态也会相应改变

        • #71382

          摘叶茶
          参与者
          军士

          大大,跟踪出现这英文(obsolete)是什么意思?

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