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

VFX大学 PFtrack,3DEqualizer,Mocha追踪 【PFTrack教程】如何使用自动跟踪和摄像机解算?(视频详解)

正在查看 9 条回复
  • 作者
    帖子
    • #30912

      追光
      参与者
      机构认证

      在本次教程中,我们将学习如何解算摄像机运动,然后测试得到的场景,最后导出场景。我们会使用自动跟踪来生成跟踪点。

      练习素材下载链接:

      PFTrack摄影测量跟踪练习素材百度云下载


      1. 设置项目

      video

      关于 PFTrack 的入门知识可以参考这个帖子:

      【PFTrack教程】PFTrack入门知识汇总,新手上路点这里(视频详解)


      2. 跟踪素材

      拿到跟踪任务,永远的第一步是播放素材,估计素材的难度,考虑用什么样的方法更合适。素材是一个教堂⛪️的手持镜头。

      video

      检查完以后,确保 Clip 节点是选中的,然后创建 Auto Node 节点,可以点击 Create 按钮然后点击 Auto Track 创建,也可以右键 Clip Input 节点选择 Auto Track。

      新节点应该是自动连接的。如果没有,请手动连接。

      video

      Auto Track 节点会自动生成候选跟踪器,并在整个片段中进行跟踪,我们可以设置节点参数,来控制跟踪。

      这里不一一解释节点的参数了,大家可以点击 Help 按钮查看帮助文档。

      这里调节两组参数:Search modeDeformation

      video

      搜索模式菜单可以选择跟踪算法:Better SpeedBetter AccuracyOptical Flow(更快,更准,光流)。由于手持镜头的特性,而且在有些帧中有运动模糊,这里我们选择 Optical Flow。

      video

      我们还应该更改变形设置。这指定跟踪图案随时间如何变形。这里将 Rotate、ScaleSkew 都启用,跟踪窗口就可以扭曲和变形了,这样可以更好的匹配参考团,增加跟踪器的生命长度。

      点击 Auto Track 开始跟踪。现在我们就可以看到 PFTrack 是如何拾取特征点并跟踪它们的。在这个过程中,我们可能会发现一些跟踪问题。

      如果按住 Shift 点击 Auto Track 按钮,自动跟踪就会在后台运行,这样我们可以同时处理另一个片段。

      我们将看到 PFTrack 执行两个跟踪过程,先向前,再向后。在第二个过程中,PFTrack 不会再创建新的跟踪点,但是这样可以增加已存在的跟踪点的长度。根据经验,长时间存在的跟踪点通常对摄像机解算最有利。

      video

      跟踪完成后,我们可以播放素材,检查跟踪。所有的特征点都应该跟踪得很准确。


      3. 解算摄像机

      video

      接下来我们使用 Camera Solver 节点将跟踪点转化为摄像机运动。点击 Create,然后点击 Camera Solver 按钮创建节点。

      video

      和 Auto Track 节点一样,有许多参数可以影响 Camera Solver 的工作。参数详解可以翻看帮助文档,这里暂不详解。

      video

      另一个需要计算的是镜头畸变,我们可以打开 Distortion 选项卡,勾选 Low-order 和 High-order 镜头畸变的 Estimate,在解算时自动估算镜头畸变。

      其他参数暂时保持默认即可,点击 Solver All 开始摄像机解算。

      PFTrack 现在会做一些数字运算,将跟踪点运动转化为摄像机运动。

      video

      完成后,我们可以在透视图中检查解算结果。


      4. 定位场景

      video

      右键 Camera Solver 节点,选择 Orient Scene,创建 Orient Scene 节点。

      video

      我们先关闭透视图。选择一个跟踪点,点击 Set Origin 定义场景原点。

      video

      我们可以使用 Edit mode 更改场景的整体位置。在 Rotate 模式下,我们可以使用 Cinema 中的操控器旋转地面,TranslateScale 也同理。选择 None 可以再次隐藏操控器。

      video

      我们还可以通过定义两个跟踪点之间的距离来缩放场景。比如,选择两个点,按住 Command/Ctrl 可以多选。如果这两个点之间是15厘米,那么我们就可以在 Distance 编辑框中输入 0.15,场景也会相应地缩放。

      场景定位完成后,我们需要测试一下解算结果,再导出。


      5. 测试解算结果

      video

      在 Camera Solver 节点下方创建 Test Object 节点。

      Test Object 节点可以在场景中添加几何体,测试解算质量。

      video

      节点中有一些预置几何体,我们也可以导入自己的几何体,支持 obj、fbx 或 alembic 格式。双击 Caw 向场景中添加一个奶牛。

      video

      使用 Interaction 交互模式定位菜单,和上面 Orinet Scene 节点中的 Edit 模式使用方法一样,有 Translate、Rotate 和 Scale 操控器。这里我们使用 Place at selected feature,点击任意特征点,将测试物体放在该特征点上。

      播放场景,几何体奶牛应该站在草地上,原地不动,就像它是原地的一部分。

      video

      我们再多加一些测试物体,比如蘑菇🍄。

      video

      在 Test Object 节点的 Display 部分,关闭 Show trackers、Show groundShow horizon,隐藏跟踪点、地面和地平线,只显示原始素材和测试物体。

      来回播放检查一遍,如果没有问题就可以导出了。


      6. 导出解算结果

      video

      创建 Export 节点。该节点可以将我们的解算结果导出给第三方应用。大多数可用导出是完全自定义的 Python 脚本,所以很容易添加我们自己的文件格式(如果需要的话)。

      video

      我们可以使用下面这些选项卡导出我们想要的文件格式和内容。

      在我们的场景中,Cameras 选项卡中有一个摄像机,Groups 选项卡又一个默认的摄像机组,Trackers 选项卡有所有的跟踪点,Objcets 选项卡有测试物体。

      Object 选项卡中没有勾选蘑菇,所以导出场景中不包括它们。要确保导出 Filenamepath (文件名和路径)正确,然后点击 Export Scene

      好了,本次教程就到这里了,希望大家做完后暂时不要删除项目,以后的教程中还会用到的。谢谢啦~希望大家学有所获。

    • #30915

      追光
      参与者
      机构认证

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

      如果喜欢追光的帖子,点击我的头像,加我为好友,就可以看到我得更新啦,也可给我发私信,点击帖子顶部得收藏放入收藏夹,方便将来再次查看~

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

    • #30922

      恬的卫士
      管理员

      太详细了,如果用心点,真可以一步步照做着走,很棒,👍

    • #30957

      橘子茜茜
      参与者
      青骑士

      把视频都看了一遍 有点似懂非懂滴感觉  这个软件是用来给拍摄好的视频  加入三维物体的吗? 让它看起来和拍摄的时候一样让人区分不出来?

      • #30958

        追光
        参与者
        机构认证

        是的,连接实拍镜头和三维场景的桥梁

        • #30961

          橘子茜茜
          参与者
          青骑士

          非常受用,原来有这么高端的制作方式啊,在社区里感觉很开眼,见世面了 O(∩_∩)O  O(∩_∩)O 谢谢啦

      • #30959

        恬的卫士
        管理员

        看来你的反应还是挺快 居然把最核心的功能给看懂了。我也用这个软件并且在学习中,我大概讲解一下:

        通俗来说这类软件的作用就是保证三维模型等虚拟元素“贴合”在有摄像机运动的视频画面中。电影中的实拍视频画面是由真实摄像机拍摄的,而三维动画的画面是三维软件中的虚拟摄像机“拍摄”的,“摄像机反求”就是通过视频画面求出真实摄像机的运动轨迹和镜头参数等,在三维空间里创建与之一致的虚拟摄像机。

        摄像机反求:就是在后期制作的时候,根据特征点反求出前期摄像机的运动轨迹,这样在后期合成的时候,就可以放入制作好的三维模型,三维角色,三维动画等等元素,让画面看起来就像和前期拍摄的时候一样。其中知名的摄像机反求软件有 pftrack 3deguarlizer,boujou,syn等。

        更多进阶了解,可以参考以下文章

        求一个摄像机反求的流程

        PFTrack、Mocha、Nuke 和 3DEqualizer 做追踪哪个更好?

        • #30962

          橘子茜茜
          参与者
          青骑士

          很详尽,社区里问问题的回复速度永远是那么快,这样确实比较容易带动起人的热情来,比微信群,qq群要好,毕竟信息,问答记录能记录下来,再有遇到类似问题的还能搜索。的确比qq群,微信群要好,以前多次建议社区建一个微信群,看来还是用社区现有的方式是最方便的,既能学习东西,还不烦人 O(∩_∩)O  O(∩_∩)O

    • #36107

      liuzhenyilzhy
      参与者
      军士

      感谢版主,现在点击视频后显示:html5 video not found。

    • #49954

      忘晨
      参与者
      军士

      有个问题要请教一下,一个航拍视频要合成一栋楼进去,现在用pftrack追踪之后,导入到3DMAX里面,单位不对,只能是相机和关键点打包放缩,但是对的不准确,有没有更好的办法可以精确对位?

      • #49955

        追光
        参与者
        机构认证

        在追踪的时候我们可以预先加入参考点,还有预判断场景的距离:

        1 首先要求追踪要精确,建议使用手动追踪,这样好确定方位。
        2 关于单位,在反求出结果后,选择两个确定的点,选中并且输入一个预判的具体数字。(可以预判一下两点之间的距离,比如判断墙的高度是3m)
        3 追踪好后 orient scene的时候 要尽量的水平,将场景旋转到坐标的 x y z 三个坐标中心的时候,可以对位到要放置大楼的位置。
        4 旋转调整好场景后,在要放置大楼的位置找一个点,使用test object节点加上一个定位钉(tail)。

        导入三维软件后要注意下:

        1 三维软件的默认单位,比如houdini,c4d 都是米(m)
        2 将场景再次调整下对位到 三维软件中的 x y z的中心点。
        3 不要缩放场景来做定点,因为摄像机的焦距,焦段所产生的变化,并不是我们缩放场景的距离大小,所以会导致:某一个时间能对位,别的时间错位。
        4 导入场景后,除了对场景进行坐标中心点对位,调整楼到我们预先放置定位钉的位置或者,放到场景的中心点(如果在pftrack中我们是将中心点设置在了要放入大楼的位置的话)

        最后建议:
        拍摄的时候,量一下主要拍摄物体的距离并记录一下。
        追踪的时候尽可能使用手动追踪,这样我们可以追踪出确定的点,这些点的关键在于,可以勾勒出我们要的三维轮廓。(非常有用)

    • #49963

      忘晨
      参与者
      军士

      好的,谢谢,还有一个问题请教,PFtrack里面我设置的是25帧每秒,导入3D软件中怎么变成了30帧每秒,是PFtrack中设置出了什么问题吗

    • #49964

      忘晨
      参与者
      军士

      补充一点,frame rate 我输入了25,Film back我手动输入了24MM的焦距

      • #49965

        追光
        参与者
        机构认证

        三维软件中 你设置的 帧速率(frame rate)要和pftrack中的一致,起始楨也需要一致。你现在的设置只是针对pftrack的

    • #55594

      柠檬味的大西瓜
      参与者
      军士

      想问一下,导出的相机怎样导入nuke,或者Maya里边啊。

    • #71199

      摘叶茶
      参与者
      军士

      有个疑问就是Consistency项里的NOne Local motion free amera Rotation/planar的选择

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