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

社区话题 📽️PFtrack,3DEqualizer,Mocha追踪 【PFTrack教程】如何使用自动跟踪和摄像机解算?(视频详解)

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

      追光
      参与者

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

      练习素材下载链接:

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


      1. 设置项目

      video

      play-sharp-fill

      00:12

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

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


      2. 跟踪素材

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

      video

      play-sharp-fill

      00:09

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

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

      video

      play-sharp-fill

      00:04

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

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

      这里调节两组参数:Search modeDeformation

      video

      play-sharp-fill

      00:06

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

      video

      play-sharp-fill

      00:07

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

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

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

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

      video

      play-sharp-fill

      00:11

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


      3. 解算摄像机

      video

      play-sharp-fill

      00:05

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

      video

      play-sharp-fill

      00:10

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

      video

      play-sharp-fill

      00:03

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

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

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

      video

      play-sharp-fill

      00:10

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


      4. 定位场景

      video

      play-sharp-fill

      00:05

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

      video

      play-sharp-fill

      00:06

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

      video

      play-sharp-fill

      00:20

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

      video

      play-sharp-fill

      00:12

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

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


      5. 测试解算结果

      video

      play-sharp-fill

      00:04

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

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

      video

      play-sharp-fill

      00:08

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

      video

      play-sharp-fill

      00:14

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

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

      video

      play-sharp-fill

      00:12

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

      video

      play-sharp-fill

      00:05

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

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


      6. 导出解算结果

      video

      play-sharp-fill

      00:09

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

      video

      play-sharp-fill

      00:11

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

      在我们的场景中,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 条回复
  • 在下方一键注册,登录后就可以回复啦。