热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

匹配移动计算机视觉

在视觉效果中,匹配移动是一种允许将计算机图形插入到真实动作镜头中的技术,其具有相对于镜头中的拍摄对象的正确位置,比例,方向和运动。该术语被宽松地用于描述从运动图像中提取相机运动信息

在视觉效果中,匹配移动是一种允许将计算机图形插入到真实动作镜头中的技术,其具有相对于镜头中的拍摄对象的正确位置,比例,方向和运动。该术语被宽松地用于描述从运动图像中提取相机运动信息的几种不同方法。有时被称为运动跟踪相机求解,匹配移动与rotoscoping和摄影测量有关。匹配移动有时与动作捕捉相混淆,记录物体的运动,通常是人类演员,而不是相机。通常,动作捕捉需要特殊的摄像机和传感器以及受控环境(尽管最近的发展,例如Kinect摄像头和Apple的 FaceID已经开始改变这一点)。匹配移动也与运动控制摄影不同,运动控制摄影使用机械硬件执行多个相同的摄像机移动。相比之下,匹配移动通常是基于软件的技术,在事实之后应用于使用普通相机在不受控制的环境中记录的正常镜头。

匹配移动主要用于跟踪摄像机通过镜头的移动,以便可以在3D动画程序中再现相同的虚拟摄像机移动。当新的动画元素被合成回原始的实景拍摄时,它们将以完美匹配的视角出现,因此看起来是无缝的。

由于它主要是基于软件的,因此随着计算机功率成本的下降,匹配移动变得越来越便宜; 它现在是一个既定的视觉特效工具,甚至在电视直播中使用作为提供效果的一部分,如黄虚拟下行线路的美式足球。

 

内容

  • 1原则
    • 1.1跟踪
    • 1.2校准
    • 1.3点云投影
    • 1.4地平面确定
    • 1.5重建
  • 22D与3D
  • 3自动与交互式跟踪
    • 3.1跟踪遮罩
  • 4精炼
  • 5实时
  • 6另见
  • 7参考文献
  • 8外部链接

原理编辑]

匹配移动的过程可以分为两个步骤。

跟踪编辑]

第一步是识别和跟踪功能。甲特征是图像,一个跟踪算法可以锁定,并按照通过多个帧中的特定点(SynthEyes称之为光点)。通常选择特征是因为它们是明亮/暗点,边缘或角落,这取决于特定的跟踪算法。热门程序使用基于NCC分数和RMS误差的模板匹配。重要的是每个特征代表真l实物体表面上的特定点。当跟踪特征时,它变成一系列二维坐标,表示特征在一系列帧中的位置。这个系列被称为“轨道”。一旦创建了轨道,它们可以立即用于2D运动跟踪,或者用于计算3D信息。

校准编辑]

第二步涉及解决3D运动。该过程试图通过解决相机位置的2D路径的反投影来导出相机的运动。该过程称为校准。

当拍摄三维物体表面上的点时,可以通过3D投影函数计算其在2D帧中的位置。我们可以认为摄像机是一个抽象,它包含在真实或虚拟世界中建模摄像机所需的所有参数。因此,相机是一种矢量,其包括作为其元素的相机位置,其方向,焦距以及定义相机如何将光聚焦到胶片平面上的其他可能参数。只要存在兼容的投影函数P,究竟如何构造该向量并不重要。

投影函数P将摄像机矢量(表示为摄像机)作为其输入,将另一个矢量作为空间中3D点的位置(表示为xyz)并返回已投影到摄像机前面的平面上的2D点(表示为XY))。我们可以表达这个:

XY = P(摄像机 xyz

220px-Match_moving_-_projection_de_points_3D.jpguploading.4e448015.gif转存失败重新上传取消

特征投影的例证。在3D结构的渲染周围,红点表示由跟踪过程选择的点。帧ij处的摄像机根据摄像机的参数将视图投影到平面上。以这种方式,在2D中跟踪的特征对应于3D空间中的真实点。尽管此特定图示是计算机生成的,但匹配移动通常在真实对象上完成。

投影功能可以转换3D点并去除深度分量。在不知道分量的深度的情况下,逆投影函数只能返回一组可能的3D点,这些3D点形成从相机镜头的节点发出并穿过投影的2D点的线。我们可以将反投影表达为:

xyz∈P '(相机 XY

要么

xyz :P(相机xyz)= XY }

假设我们处于一种情况,我们正在跟踪的特征是在刚性物体(如建筑物)的表面上。因为我们知道真实点xyz将保持在从图像的一帧到下一帧的真实空间中的相同位置,所以即使我们不知道它在哪里,我们也可以使该点保持不变。所以:

xyz i = xyz j

下标ij指的是我们正在分析的镜头中的任意帧。因为这总是正确的,所以我们知道:

P'(摄像机iXY i)∩P'(摄像机jXY j)≠{}

因为已经为跟踪程序跟踪特征的所有帧确定了XY i的值,所以只要P'(摄像机iXY i)∩P'(我们可以解决任何两帧之间的反投影功能)(相机jXY j)是一个小集。解决i和j(表示为C ij)方程的可能相机矢量集。

ij = {(相机i相机j):P'(相机iXY i)∩P'(相机jXY j)≠{})

因此,存在一组相机矢量对C ij,其中两个点XY iXY j的反投影的交点是非空的,希望很小,以理论静止点xyz 为中心设置。

换句话说,想象一个漂浮在白色虚空和相机中的黑点。对于我们放置相机的任何空间位置,有一组相应的参数(方向,焦距等)将以完全相同的方式拍摄黑点。由于C具有无限数量的成员,因此一个点永远不足以确定实际的摄像机位置。

当我们开始添加跟踪点时,我们可以缩小可能的相机位置。例如,如果我们有一组点{ xyz i,0,...,xyz i,n }和{ xyz j,0,...,xyz j,n },其中i和j仍然指向帧和n是我们遵循的许多跟踪点之一的索引。我们可以导出一组相机矢量对集{C i,j,0,...,C i,j,n }。

通过这种方式,多个轨道允许我们缩小可能的摄像机参数。适合的可能相机参数集F是所有集合的交集:

F = C i,j, 0∩...∩Ci ,j,n

此组中的元素越少,我们就越接近提取摄像机的实际参数。实际上,引入跟踪过程的误差需要更多的统计方法来确定每帧的良好相机矢量,通常使用优化算法和束块调整。不幸的是,相机矢量有很多元素,当每个参数都是空闲的时候,无论我们跟踪多少个特征,我们仍然可能无法将F缩小到单一的可能性。我们越能限制各种参数,特别是焦距,就越容易找到解决方案。

总而言之,3D解决过程是缩小摄像机运动的可能解决方案的过程,直到我们达到适合我们试图创建的复合材料的需求为止。

点云投影编辑]

一旦确定了每帧的摄像机位置,就可以通过反投影估计每个特征在真实空间中的位置。由此产生的点集通常被称为点云,因为它的原始外观像星云。由于点云经常揭示3D场景的一些形状,因此它们可以用作放置合成对象的参考,或者通过重建程序来创建实际场景的3D版本。

地平面确定编辑]

相机和点云需要在某种空间中定向。因此,一旦校准完成,就必须定义一个接地平面。通常,这是一个单位平面,用于确定投影空间的比例,方向和原点。有些程序会尝试自动执行此操作,但更常见的是用户定义此平面。由于移动地平面对所有点进行简单的转换,因此平面的实际位置实际上是方便的。

重建编辑]

重建是使用跟踪数据重建拍摄对象的交互过程。该技术与摄影测量有关。在这种特殊情况下,我们指的是使用匹配移动软件从偶然镜头重建场景。

重建程序可以创建三维对象,其模仿来自拍摄场景的真实对象。使用来自点云的数据和用户的估计,程序可以创建虚拟对象,然后从可以作为表面纹理投影到虚拟对象上的素材中提取纹理。

2D与3D 编辑]

匹配移动有两种形式。一些合成程序,如Shake,Adobe After Effects和Discreet Combustion,包括二维 运动跟踪功能。二维匹配移动仅跟踪二维空间中的特征,而不关心相机移动或失真。它可用于为素材添加运动模糊或图像稳定效果。当原始素材不包含相机视角的重大变化时,此技术足以创建逼真的效果。例如,通常可以使用二维跟踪来替换镜头背景深处的广告牌。

三维匹配移动工具可以从二维摄影中推断出三维信息。这些工具允许用户从任意镜头中获取相机移动和其他相对运动。跟踪信息可以传输到计算机图形软件,并用于为虚拟摄像机和模拟对象设置动画。能够进行3D匹配移动的程序包括:

  • 3DEqualizer从Science.D.Visions(其赢得奥斯卡奖技术成就)[1]
  • Blender(开源;使用libmv)
  • 巫毒
  • ACTS具有密集深度恢复系统的自动摄像机跟踪,用于处理图像/视频序列
  • LS-ACTS是一种强大而高效的运动结构系统,可以近乎实时地处理大型图像/视频序列数据集,并且可以在具有挑战性的情况下稳健地工作(例如环回序列和多个序列)
  • VISCODA VooCAT
  • 伊卡洛斯(曼彻斯特大学研究项目,现已停止但仍然受欢迎)
  • Maya MatchMover
  • Pixel Farm PFTrack,PFMatchit,PFHoe(基于PFTrack算法)
  • KeenTools GeoTracker,PinTool
  • Andersson Technologies的SynthEyes
  • Boujou(2002年获得艾美奖)
  • 来自The Foundry的NukeX
  • 法因对插件的Adobe After Effects的从fayteq
  • The Foundry的CameraTracker(Adobe After Effects的插件)。
  • 来自Punchcard的VideoTrace(用于从视频和图像生成3D模型的软件)
  • IXIR 2D轨道编辑器它具有2D轨道和蒙版文件的软件,如3D均衡器,PFTrack,Boujou,SynthEyes,Matchmover,Movimento,Nuke,Shake,Fusion,After Effects,Combustion,Mocha,Silhouette
  • 来自Imagineer Systems的mocha Pro,基于Planar Tracker的后期制作工具

自动与交互式跟踪编辑]

有两种方法可以从图像中提取运动信息。交互式跟踪(有时称为“监督跟踪”)依赖于用户通过场景跟踪特征。自动跟踪依赖于计算机算法来通过镜头识别和跟踪特征。然后使用跟踪点移动来计算“解决方案”。此解决方案由所有相机的信息组成,如运动,焦距和镜头失真。

自动跟踪的优点是计算机可以比人类更快地创建许多点。可以使用统计数据分析大量点以确定最可靠的数据。自动跟踪的缺点在于,取决于算法,计算机在通过场景跟踪对象时可能容易混淆。自动跟踪方法在涉及快速相机运动的镜头中尤其无效,例如用手持相机工作看到的镜头以及具有重复主题的镜头,例如小瓦片或任何类型的规则图案,其中一个区域不是非常明显。当一个镜头包含大量的运动模糊时,这种跟踪方法也会受到影响,因此需要更难区分的小细节。

交互式跟踪的优点是人类用户可以在整个场景中跟踪特征,并且不会被非严格的特征所混淆。人类用户还可以确定遭受运动模糊影响的镜头中的特征; 自动跟踪器非常难以正确地找到具有大量运动模糊的特征。交互式跟踪的缺点在于,当用户通过场景跟踪对象时,用户将不可避免地引入小错误,这可能导致所谓的“漂移”。

专业级运动跟踪通常使用交互式和自动技术的组合来实现。艺术家可以删除明显异常的点,并使用“跟踪遮罩”来阻止自动跟踪过程中的混乱信息。跟踪遮罩也用于覆盖包含诸如演员或旋转吊扇等移动元件的镜头区域。

跟踪遮罩编辑]

跟踪遮罩在概念上类似于在旅行遮罩合成中使用的垃圾遮罩。然而,跟踪遮罩的目的是防止跟踪算法使用不可靠,不相关或非刚性的跟踪点。例如,在演员走在背景前的场景中,跟踪艺术家将希望仅使用背景来通过场景跟踪摄像机,知道演员的动作将使计算失效。在这种情况下,艺术家将构建一个跟踪遮罩,以跟踪演员通过场景,从跟踪过程中阻止该信息。

精炼编辑]

由于校准过程通常存在多种可能的解决方案并且可能累积大量误差,因此匹配移动的最后步骤通常涉及手动改进解决方案。这可能意味着改变摄像机运动本身或给校准机制提供提示。这种交互式校准称为“精炼”。

大多数匹配移动应用程序基于类似的跟踪和校准算法。通常,获得的初始结果是相似的。但是,每个程序都具有不同的精炼功能。

实时编辑]

现场摄像机跟踪正在电影制作中得到越来越广泛的应用,以允许在后期制作中插入的元素可视化直播。这样做的好处是可以帮助导演和演员通过在他们拍摄时(或之后不久)实际看到设置的扩展或CGI角色来提高性能。他们不再需要执行绿色/蓝色屏幕并且没有最终结果的反馈。眼线参考,演员定位和CGI交互现在可以在现场进行,让每个人都相信镜头是正确的并且可以在最终的复合材料中工作。

为此,需要组合从硬件到软件的许多组件。软件收集摄像机的所有6个自由度运动以及来自许多不同类型的硬件设备的变焦,聚焦,光圈和快门元件等元数据,范围从运动捕捉系统,如来自PhaseSpace的有源LED标记系统,动态分析或Vicon等被动系统,安装在相机起重机上的旋转编码器和Technocranes和Fisher Dollies等推车,或直接安装在摄像机上的惯性和陀螺仪传感器。还有一些基于激光的跟踪系统可以连接到任何东西,包括Steadicams,以便在距离最远30米的雨中跟踪外部的摄像机。

运动控制相机还可以用作3D相机数据的源或目的地。摄像机移动可以预先预先显示,然后转换为运动控制数据,驱动摄像机起重机沿着与3D摄像机完全相同的路径。起重机上的编码器也可以实时使用,以反转此过程以生成实时3D摄像机。数据可以发送到任意数量的不同3D应用程序,允许3D艺术家也可以在设置上实时修改他们的CGI元素。主要优势在于,在拍摄过程中可以整理出设置设计问题,这些问题将是耗时且成本高昂的问题,可确保演员在每个镜头的每个环境中“适应”他们的表演。

实时动作捕捉系统也可以在相机数据流中混合,允许将虚拟角色插入到现场拍摄中。这显着改善了真实和非真实MoCap驱动角色之间的相互作用,因为板和CG表演可以一起编排。

 


推荐阅读
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 本文介绍了如何通过路由汇总和无类域间路由(CIDR)技术来优化路由表,减少路由条目数量,提高网络效率。具体案例展示了路由汇总的实现方法及其对网络性能的影响。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 系统转换的三种方法及其具体应用分析
    系统转换是信息技术领域中常见的任务,本文详细探讨了三种主要的系统转换方法及其具体应用场景。这些方法包括:代码迁移、数据迁移和平台迁移。文章通过实例分析了每种方法的优势和局限性,并提供了实际操作中的注意事项和技术要点。例如,代码迁移适用于从VB6获取网页源码,数据迁移在Ubuntu中用于隐藏侧边栏,而平台迁移则涉及Tomcat 6.0的使用和谷歌爬虫的测试。此外,文章还讨论了蓝翰互动PHP面试和5118 SEO工具在系统转换中的应用,为读者提供了全面的技术参考。 ... [详细]
  • 触发器的稳态数量分析及其应用价值
    本文对数据库中的SQL触发器进行了稳态数量的详细分析,探讨了其在实际应用中的重要价值。通过研究触发器在不同场景下的表现,揭示了其在数据完整性和业务逻辑自动化方面的关键作用。此外,还介绍了如何在Ubuntu 22.04环境下配置和使用触发器,以及在Tomcat和SQLite等平台上的具体实现方法。 ... [详细]
  • 在安装并配置了Elasticsearch后,我在尝试通过GET /_nodes请求获取节点信息时遇到了问题,收到了错误消息。为了确保请求的正确性和安全性,我需要进一步排查配置和网络设置,以确保Elasticsearch集群能够正常响应。此外,还需要检查安全设置,如防火墙规则和认证机制,以防止未经授权的访问。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
author-avatar
我的菜菜呀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有