【3DEqualizer教程】如何使用摄影图片建模-跟踪参考帧(视频详解)

VFX大学 PFtrack,3DEqualizer,Mocha摄像机追踪 【3DEqualizer教程】如何使用摄影图片建模-跟踪参考帧(视频详解)

正在查看 2 条回复
  • 作者
    帖子
    • #33729

      追光
      参与者

      在 3DEqualizer 中,使用摄影图片建模分为三大部分:

      • 拍摄完美参考帧
      • 跟踪参考帧
      • 创建带纹理的 3D 模型

      考虑到帖子的篇幅问题,在本帖中,追光只和大家讨论第二部分,如何跟踪参考帧。关于拍摄参考帧和创建 3D 模型,追光会在其他帖子中详细讲解。

      那么,在 3DEqualizer 的图片建模流程中,我们应该如何跟踪参考帧呢?今天追光和大家分享手动跟踪和自动跟踪两种情况。

      不管怎样,首先我们都应该导入素材。

      3DEqualizer/PFTrack使用摄影图片建模练习素材百度云下载


      一、导入参考帧素材

      启动 3DEqualizer,点击底部菜单 3DE > File > Import > Import Multiple Reference Frames…,导航到指定文件夹,导入所有参考帧。然后删除默认的 Main 摄像机。

      video

      play-sharp-fill

      00:19

      同样的,我们为参考帧图像生成缓存。确保后续工作流畅进行。

      video

      play-sharp-fill

      00:15

      二、手动跟踪流程

      首先我们来讲手动跟踪流程。

      1. 跟踪第一个跟踪点

      浏览素材,我们将第一个跟踪点设置在塔楼上。因为这个点在所有参考帧中都有出现,且特征明显。

      这个时候我们最好调出时间线编辑器,这样能更好地查看跟踪状况。

      video

      play-sharp-fill

      00:24

      第一遍跟踪下来,检查一下,跟踪很准确。

      video

      play-sharp-fill

      00:09

      但是,还有几帧没有跟踪上。我们继续跟踪。

      video

      play-sharp-fill

      00:15

      再次检查,跟踪很完美!

      video

      play-sharp-fill

      00:07

      ——————

      2. 跟踪剩余的点

      按照上面的方法,继续跟踪一些明显的、有用的特征点。下面是一个跟踪示例。

      video

      play-sharp-fill

      00:12

      ——————

      3. 解算摄像机位置

      跟踪完成后,我们按 Alt+C,解算每个参考帧的摄像机位置。

      video

      play-sharp-fill

      00:04

      误差巨大!所以我们调整一下镜头参数。调出参数调整面板,调节镜头失真参数。

      video

      play-sharp-fill

      00:17

      调整完成后,再次按 Alt+C 解算。

      video

      play-sharp-fill

      00:06

      误差 0.3 左右,已经在可接受的范围内了。这里我们就不再继续优化了,进入 3D 空间查看下解算结果。

      video

      play-sharp-fill

      00:10

      ——————

      4. 定位场景

      解算好摄像机位置之后,我们开始定位场景。

      选择场景中已知距离的两点,使用距离约束确定场景的实际大小。

      video

      play-sharp-fill

      00:17

      选择墙上的点,设置为 YZ 平面。

      video

      play-sharp-fill

      00:11

      选择墙角的点,设置为原点。

      video

      play-sharp-fill

      00:10

      完成后,我们烘焙一下场景。再重新解算下摄像机位置。

      video

      play-sharp-fill

      00:06

      我们的跟踪过程就完成了!


      三、自动跟踪流程

      当然,我们也可以使用自动跟踪来跟踪参考图像,用于图片建模流程。

      1. 绘制 Mask 遮罩

      因为画面中有很多不属于模型的部分,比如天空、河流、草地等等,如果不绘制遮罩,将这些部分圈出的话,会大大降低跟踪速度,同时还会影响跟踪精度。所以我们开始对第一帧绘制遮罩。

      video

      play-sharp-fill

      00:35

      完成后,使用 Duplicate Masks 功能,将第一帧的 Mask 复制到第二帧,然后调整第二帧的遮罩。接下来依法炮制,对所有参考帧绘制遮罩。下面是绘制完的成果。

      video

      play-sharp-fill

      00:21

      ——————

      2. 设置跟踪参数,开始自动跟踪

      绘制完遮罩后,我们点击底部的 Auto… 按钮,设置自动跟踪参数,然后点击 OK,开始自动跟踪。

      video

      play-sharp-fill

      00:30

      我们看下跟踪结果,还不错。

      video

      play-sharp-fill

      00:14

      ——————

      3. 解算摄像机位置

      按 Alt+C,解算摄像机位置。

      video

      play-sharp-fill

      00:03

      误差巨大!原因是有些跟踪点跟踪得不太准确,所以我们找出坏点,进行优化。

      video

      play-sharp-fill

      00:09

      优化后再次按 Alt+C,解算摄像机位置。此时的误差在0.4 左右。

      video

      play-sharp-fill

      00:11

      进入 3D 空间查看摄像机位置,基本合格,但是追光还是想继续优化下。

      video

      play-sharp-fill

      00:16

      ——————

      4. 优化自动跟踪,再次解算摄像机位置

      点击 Auto…,进入自动跟踪参数面板,调节自动跟踪参数,再次跟踪。

      video

      play-sharp-fill

      00:14

      跟踪完成后,按 Alt+C,解算摄像机位置。

      video

      play-sharp-fill

      00:02

      解算出来依然误差狠大,所以要找出坏点,继续优化。删除坏点后,再次按 Alt+C,解算摄像机位置,现在得到的误差就比较小了。

      video

      play-sharp-fill

      00:13

      最后,我们在使用参数调整面板,调整一下镜头失真参数,尽量得到最优化的结果。

      video

      play-sharp-fill

      00:25

      进入 3D 空间,查看一下解算结果。很满意!

      video

      play-sharp-fill

      00:09

      3DEqualizer 图片建模的跟踪部分就到这里啦。如有疑问,可以跟帖留言,追光会尽快回复噢。

      请继续关注追光,后续的建模部分会尽快放出的哦!

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

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

    • #33734

      Mocha追踪
      参与者

      非常棒,学习了,真没见过这么详细的 顶

    • #126176

      你好 老师  我有个难题 就是我求出了object point group  请问怎么把这个运动的点云导出到nuke里面去 在3de选择导出group提示我没有camera point group 难道运动物体点云无法导出吗?

      • #126177

        追光
        参与者

        从3DE导出经过反求计算好的镜头运动+点云的Nuke脚本,在Nuke中运行脚本,那么在3DE中计算好的点以及摄影机都会导入到Nuke中,打开Nuke中的点组,即可看到每一个3DE中追踪过的点在三维空间中的位置。

        另外,根据经验,也可以使用这种方式导出做测试,将3DE中解算好的点全部选中,然后创建三维物体,将三维物体单独导出,也可以基本实现你所要求的数据点导出,在Nuke中可以转换为点云即可。

        • #126179

          你好 另外还有一个棘手的问题 就是我在3de里面求出了object group 还加入了一个3d模型 我将点云 和模型都导出去后 然后都导入进nuke里再把obj放进scene里面去 突然发现 点云是运动的 而3d模型是静止不动的 没有运动信息 而且位置也不对 完全不明白 难道还有从3de里面单独导出一个3d模型的位置及运动信息 单独给予3d模型才可以吗?如果有的的话 请问哪个选项是导出已经匹配好的3de模型的运动信息的呢?

           

          • #126180

            追光
            参与者

            这里的我们将摄影画面中的运动划分为三个层面上的运动:(3DE、或者PFtrack都是按照这三种方式来设计的)

            1、假设相机静止的情况下,画面里面的人物或者其他物体的自体运动,这种情况下不管相机动不动,画面中看起来都是运动的。这里需要使用物体跟踪、或表情跟踪、或者Moco跟踪。

            2、假设相机静止的情况下,画面中的物体:景物是静止的,当相机运动时,画面内的物体产生了位移,产生运动的感觉。仅仅需要反求摄影机轨迹,即可实现实景与三维同步。

            3、假设镜头在运动拍摄,同时画面中的物体也在运动,即1+2的情况,为复合运动,需要复合跟踪。先用mask排除运动物体,反求出轨迹,再对物体进行单独跟踪,最后统一解算。

            只有上述中2的情况,不需要物体运动轨迹点,即可实现视觉上的空间同步;

            其他俩种情况都需要在三维软件内将轨迹点同步到需要替换的三维物体上,才能实现三维物体与场景同步。使用Nuke可以进行简单物体的同步,但操作起来显得比三维软件麻烦一些。

            • #126181

              我是不是可以这么理解 在静止的物体中求运动的摄像机与在运动的物体求一个静止的摄像相机 最终结果都是一样的区别也只是相对运动而已?

            • #126182

              如果是这个原理的话 那么其实我就已经明白该怎么在nuke里使用3de导出的信息了

正在查看 2 条回复
  • 在下方一键注册,登录后就可以回复啦。