【3DEqualizer教程】如何使用多个点组解算画面中刚性物体的运动?(视频详解)

VFX大学 PFtrack,3DEqualizer,Mocha追踪 【3DEqualizer教程】如何使用多个点组解算画面中刚性物体的运动?(视频详解)

正在查看 17 条回复
  • 作者
    帖子
    • #31807

      追光
      参与者
      机构认证

      V友们早啊^_^今天追光教大家使用 3DEqualizer 解算画面中的刚性物体的运动轨迹。今天我们使用的是手动跟踪,在今天的教程中,我们会讲到手动跟踪的一些技巧,使用多个点组解算物体,以及在三维空间中创建几何体、操作几何体。知识点还是比较多的,不过追光会分解各个知识点,不会让大家难学的。在本教程中,我们会跟踪练习素材中男孩手中运动的盒子。

      今天我们使用 3DEqualizer 跟踪反求刚性物体运动的工作流程为:

      1. 导入素材,并检查素材;2. 解算摄像机路径;3. 跟踪运动物体,并解算;4. 优化摄像机解算;5. 3D 空间对位;6. 检查最终结果。


      练习素材下载链接:

      3DEqualizer自动跟踪摄像机反求训练:物体跟踪


      下面是具体操作步骤。

      一、 导入素材,并检查素材

      启动 3DEqualizer,点击属性编辑器中的 Live Action Footage > Browse…,打开文件浏览器,导入练习素材。

      为了后续工作流畅,我们可以点击底部菜单中的 Playback > Export Buffer Compression File…,为素材导出缓存文件。

      video

      导出缓存后,我们需要播放素材,检查一遍,确认跟踪难度,并构思跟踪方法。


      二、解算摄像机路径

      在这个过程中,我们将手动跟踪墙上的点,解算摄像机。

      创建第一个跟踪点

      1. 项目中有一个默认点组,是 Camera 类型的,这里就默认不更改,只是对这个点组重命名,便于后续好辨认。

      2. 选择墙上的一个标记点,按 Ctrl 点击,创建一个新的跟踪点,有的点需要设置跟踪区域和搜索区域。

      这里说下,选择的跟踪点最好是贯穿整个片段的,没有遮挡,颜色与周围反差大的、好辨认的点。

      3. 在点浏览器中选择新创建的点,做如下操作之一,选择跟踪点的模式:

      • 右键 > Modify > Trackingmode > Marker。
      • 在 Point 属性编辑器 > 2D Tracking 选项卡 > Trackingmode> Marker。

      跟踪模式里有三种类型:图案(Pattern)、标记点(Marker)、边/角(Edge/Corner)。我们选择的跟踪点是标记点。

      4. 为了区分每个点组中的点,我们可以修改点的颜色,这里追光选了黑色。

      video

      ——————

      跟踪第一个跟踪点

      1. 回到画面的第一帧,点击画面左下角的 Gouge marker 按钮,抓取标记点,精准对位。

      2. 点击画面右侧的 Center 2D 按钮,居中显示跟踪点,便于跟踪时检查是否精准或出错。

      3. 点击下方的 Track 按钮,跟踪第一个跟踪点,跟踪完成后,检查一下跟踪情况。

      video

      ——————

      继续跟踪墙上的点,然后解算摄像机

      在解算摄像机的过程中,追光使用了11个点:9个墙上的点,两个地上的点,这样解算结果会更精确。

      1. 使用上面的方法,继续跟踪墙上优质的标记点。下面是一个跟踪结果示例:

      video

      2. 按 Alt+C(和点击底部菜单中的 Calc > Calc All from Scratch…是一样的),解算摄像机路径。

      在左下角误差浏览器中可以看到,解算结果还不错。

      3. 现在我们切换到 3D 空间中查看结算结果,可以看到摄像机轨迹非常平滑。

      video

      ——————

      为跟踪点创建网格模型

      为了便于后续对位墙面和盒子的位置,我们给跟踪好用于解算的点创建一个网格模型,当作一个简易的墙面。

      1. 点击右下角的 Top 按钮,切到俯视图。

      2. 选择墙上的9个点,点击 3D Models > Create > Mesh From Points…,点击 Create,网格就创建好了。

      3. 可以看到新建的模型底部多了一个面,需要删除。点击窗口左侧的 Remove Poly 按钮,单击多余的面和线,进行删除。

      video

      最终我们得到一个简易的墙面模型。

      ——————

      检查模型和画面的对位情况

      将主窗口切换为 Lineup 界面,按播放键进行播放,可以看到画面完美对位。

      video

      如果对位很好,按 F2 键回到手动跟踪界面,按 Alt 框选空白区域,取消对所有点的选择。按 F 键回到全屏画面。


      三、跟踪运动物体,并解算

      在这一步中,我们将跟踪男孩手中的盒子。

      创建 Object 点组,并跟踪第一个标记点

      1. 回到画面第一帧,右键点组中的任意区域 > Add New… > Point Group…。要注意,此时我们要跟踪的是画面中的运动物体,所以点组类型应该为 Object。将该组重命名为 box。

      2. 选择盒子上面中心的点,按 Ctrl 单击,添加跟踪点,设置跟踪区域和搜索区域。

      由于我们跟踪的是标记点,跟上面摄像机跟踪一样,所以不必修改点的跟踪模式。

      video

      ——————

      跟踪盒子上剩余的点,并解算盒子运动路径

      按照上面的方法跟踪盒子上剩余的标记点。下面是一个跟踪好的示例:

      video

      取消对所有点的选择,按 Alt+C,解算物体运动路径,得到解算结果。


      四、优化摄像机解算

      之前我们的摄像机解算没有进行镜头畸变校正,导致误差比较大(平均误差为 0.3740),所以现在我们要优化一下。这里我们主要是使用镜头参数优化摄像机解算。

      所以这里追光要特别提醒大家:在跟踪反求的过程中,首先一定要对画面进行去畸变校正

      1. 将属性编辑器切换到 Lens,将 Focal Length 设置为 Adjust(调节);勾选失真参数中的 Distortion – Degree2 的 Adjust 按钮。

      2. 点击顶部菜单 Config > Add Vertical Pane > Parameter Adjustment…,调出参数面板。

      3. 点击参数面板下方的 Adaptive All,将参数的可视化方式都改为自适应。然后点击 Adjust… 按钮,计算参数调节量。

      4. 计算完成后,点击 Transfer Parameters,转化参数。

      5. 再次按 Alt+C 解算摄像机轨迹,完成后,关闭参数面板。

      video

      此时摄像机轨迹的平均误差达到了 0.0650,比起之前远远降低了。


      五、3D 空间对位,得到最终结果

      3D 空间的对位,主要是校正场景大小,以及场景中物体与物体之间的位置关系。一般来说,我们按照上述方法反求出来的场景,无论是静止物体还是运动物体,它们和摄像机之间的缩放都是不正确的;而且反求出来的静止物体和运动物体之间的位置关系也不多。所以我们需要手动调节,或者补充一些数据,以获取正确的 3D 空间对位。这里追光讲两种对位方法。

      下面我们先检查一下反求出来的场景,很明显,盒子和墙面之间的位置关系是不正确的。

      video

      ——————

      为盒子创建几何模型

      在对位之前,我们先在盒子上创建一些几何体,作为 3D 空间的参考,方便对位。

      我们先将盒子的三个面上的点,创建为3条不同的连线。选中每个面上的点,按 Alt+L,创建连线。

      video

      完成后,取消对点的选择。

      接下来,我们在盒子的上面创建一个正方体。点击 3D Models > Create > Cube,画面中央会出现一个正方体。

      然后按 F2 回到手动跟踪界面,选中盒子上面的四个点,再按 F6 返回 3D 界面,在 3D 界面中按 Shift+Alt,选中正方体,点击 3D Models > Align Model to Points,将模型对齐到点上。

      video

      我们可以对盒子进行缩放、平移,更改颜色等操作。

      下面我们将要进行对位操作。

      ——————

      第一种方法,使用参考点对位

      观察 2D 画面,我们可以发现,男孩衬衫上的倒数第二粒扣子,和盒子几乎是处于统一纵深的,而且几乎没有什么运动。所以决定使用这粒纽扣作为参照点,进行盒子的对位。

      1. 回到画面第一帧,将点组切换为 Camera,按 Ctrl 单击纽扣中心,创建一个新的跟踪点,并设置跟踪区域和搜索区域。

      2. 因为我们跟踪的是纽扣图案,不是标记点,所以将跟踪模式更改为 Pattern。色彩改成一个特殊的红色,区别于其他点。

      3. 点击画面下方的 Track 按钮,进行跟踪。完成后,按 F 键回到全屏。

      video

      4. 由于这个点只是用来作为盒子的位置参考的,所以我们在 Point 属性编辑器中,将它的计算方式改为 Passive – Triangulate Position Only,这样,在重新解算摄像机时,它就只是一个被动的点,不影响摄像机轨迹,只是在 3D 空间中生成一个点,可以用作一个三角面的位置。

      5. 按 Alt+C,重新解算摄像机。其实这一次解算,对摄像机的轨迹没有影响,只是计算这颗纽扣相对于墙和摄像机的位置。

      video

      6. 得到纽扣在 3D 空间中的位置后,我们按 F6 进入 3D 界面,选中 box 点组,点击画面左侧的 Scale 按钮,对盒子点组进行缩放,使它的位置与纽扣的位置平齐。

      video

      这样,盒子的位置就校正好啦。

      ——————

      第二种方法,使用距离约束对位

      追光说过,我们为软件提供的有用信息越多,得到的结果就越准确。在 3DEqualizer 中,如果已知一个物体上两点之间的距离,就可以得到这个物体在 3D 空间中的准确大小,以及它与摄像机之间的距离。

      在这个案例中,我们已知墙上两个点之间的距离是 90.1cm,盒子上两个点之间的距离是 16.8cm。我们只要把这个信息告诉 3DEqualizer,就可以得到准确的 3D 空间对位了。

      1. 激活摄像机点组,选择墙上两个已知距离的点,按 F6 进入 3D 界面,点击顶部菜单 Constraints > Create Distance Constraint…,在弹出对话框中输入 90.1。

      2. 激活物体点组,选择盒子上两个已知距离的点,按 F6 进入 3D 界面,点击顶部菜单 Constraints > Create Distance Constraint…,在弹出对话框中输入 16.8。

      注意:3DEqualizer 中默认的距离单位是厘米。

      video

      这样我们就得到非常精准的位置关系啦。


      六、检查最终结果

      切换到 Overview 界面,播放画面,此时我们创建的长方体已经牢牢地钉在盒子上了。完美!

      video


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

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

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

    • #31809

      小仙女
      参与者
      军士

      抓住一直夜猫哈哈~帖子不错哦!赞你!

      • #31811

        恬的卫士
        管理员

        😆 还是要注意身体噢 哈哈 半夜不睡对身体不好  精神可嘉

    • #31892

      乔治
      参与者
      骑士

      非常好 😆

    • #34202

      caizu
      参与者
      军士

      谢谢楼主分享

    • #54525

      zen_l
      参与者
      军士

      请问为盒子创建几何模型里的那一步就是创建连线之前,把场景缩小以后,点击物体跟踪的点,我看视频里能够移动到场景中,但是我为什么点了Origin  物体跟踪的点没有反应没有动呢?

    • #55897

      caoxueqiang
      参与者
      军士

      非常感谢!学习了!

    • #56172

      艾迪
      参与者
      军士

      学习了,比Pftrack复杂

    • #68299

      临江仙
      参与者
      军士

      感谢追光兄的很多很多讲解,图片、视频+文字的教程形式太棒了,清楚方便

      • #68346

        追光
        参与者
        机构认证

        非常感谢对这种形式的肯定~~~,不管用视频讲解,还是用文字图片都存在许多的不足,这些文章也算是之前我们学习过程中的学习笔记📒,后来将这些内容逐步释放出来~~让更多人少走弯路,掌握更高级的制作方式,共同进步。学习并了解3de状态的制作人,一定在到达某个状态,寻找更高起点的制作人~~,要好的理解与方式也可以共享出来。加油⛽️

    • #71212

      摘叶茶
      参与者
      军士

      大大,盒子底部的跟踪点时隐时显,要怎样跟踪处理?

      • #71213

        追光
        参与者
        机构认证

        哈哈,这个问题是最近才更新的新技能,非常强大,已经做了完整的整理和流程分享,欢迎👏使用大招:偏移追踪与变形追踪,当然还有一种经验追踪,依赖于长期对影视画面拍摄、镜头运动与画面之间的坐标关系,通过建立网格来进行大脑预判追踪,可以学习这篇你就能Get到了。

        【3DEqualizer教程】 2D偏移追踪被遮挡的点与3D立体追踪

    • #72196

      willex
      参与者
      军士

      非常感谢楼主的教程,跟踪精度确实非常高啊.现在有一个问题,就是导出到maya之后,因为背景图片在3de4里面是进行了校正的,在3de4的overview里面看着3d点和校正后的图是吻合的,背景图也是进行了拉伸的.但是在maya里面导入的却是未校正的背景图,这个应该如何处理呢?

      • #72198

        追光
        参与者
        机构认证

        这个问题提的非常好,这里刚好讲一下我们合成Pipeline流程:

        1. 原始素材(带有镜头光学畸变)。

        数据:原始素材

        2. 后期使用网格计算去除畸变。

        数据:原始素材,镜头畸变模型数据,去除畸变后的素材。注:这里已得到3组数据。

        3. 进行摄影机反求。

        数据:原始素材,镜头畸变模型数据,去除畸变后的素材,摄像机轨迹坐标。注:这里已得到4组数据。

        4. 将摄影机数据 + 去除畸变后的素材导入三维软件。

        备注:三维软件内的模型、动画数据均是无畸变,所以我们使用无畸变数据合成,才能重合。

        5. 三维模型、动画渲染后,得到动画序列。

        数据:三维动画无畸变数据。

        6. (三维动画序列 +镜头畸变反向数据)+ 摄影机原始素材,进行合成。

        7. 最终结果:摄影机原始畸变视角下的三维动画与实拍镜头。

        备注:摄影机原始素材最终未改变,符合现实物理世界的视角、畸变,看起来更加自然,而且数据始终原始无损。

        结论让计算机三维动画来匹配现实世界,以实现混合计算机世界与现实世界的目的。


        问题解决方法:根据流程得出,您缺少了矫正后的去畸变实拍镜头数据,3de其实是有渲染能力的,也是专门为了这个Pipeline设计的,具体操作如下图所示:

    • #72207

      willex
      参与者
      军士

      谢谢,那么附带出了两个问题.
      第一,用棋盘格进行畸变校正和上文教程里面解算完之后用parameterAdjustment进行的畸变校正,两者是取一,还是两者都要进行呢?如果是取一,哪个会更好呢?棋盘格校正很直观,之前在boujou里面也是用的这种原理,而解算完之后的parameterAdjustment畸变校正目前不是很清楚它的原理,所以也不知道它到底优势在哪里.
      第二,export里面可以导出nuke的lensDistortion node,或者gridwarp,这几个的使用上在哪里可以找到详细的帮助或教程呢?这几个的输出对应的是棋盘格的校正,还是也整合了parameterAdjustment校正?
      不好意思,问题有点多..

    • #72208

      willex
      参与者
      军士

      测试了warp4可以直接输出校正后的序列,而通过nuke的gridwarp也可以获得同样的效果.请问畸变的反向数据是在哪里输出呢?

      • #72209

        追光
        参与者
        机构认证

        这涉及到整个Pipeline构建,多种软件之间协同,数据传递,多方面的生产线构建问题,单纯靠现有软件原始功能不能实现。等将来我们做Pipeline方面教程和服务时候,会陆续发布出来。

    • #72213

      willex
      参与者
      军士

      严重期待

    • #74643

      摘叶茶
      参与者
      军士

      大大,如何取消原有距离约束,重新约束。现在删约束说是原有一个点是有约束

      • #74644

        追光
        参与者
        机构认证

        刚刚测试了一个3DEqualizer以前追踪好的工程,建立约束、取消约束都正常,无法复现你所遇到的问题。从3DEqualizer R4b4版本开始支持一个点与多个点建立约束关系。

        建议:从2D Tracker的点面板 > 打开点编辑器检查,是否存在选择时候多选了点,建立了其他约束关系。

    • #74646

      摘叶茶
      参与者
      军士

      如果在lineup介面,开起3D points 跟踪点与标记中心有些帧会偏移,镜头校正后好些单还会偏移,这要如何消除

    • #74648

      摘叶茶
      参与者
      军士

      已搞定

    • #87834

      jerryfeng
      参与者
      军士

      把场景缩小后,点击跟踪物体的点,在点击Origin没有反应,这是为什么?

      • #87836

        追光
        参与者
        机构认证

        刚刚打开这个工程试了下,是正常的,这里选择的是盒子的所有点(点组),而不是其他的单一点。可以检查下之前的流程是否正确~~

    • #87845

      jerryfeng
      参与者
      军士

      追光大大,我还是在调整场景的scale后,物体跟踪的点没办法匹配到场景中间来,点origin没有任何反应,麻烦帮忙看看是什么问题。

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