热门标签 | 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表演可以一起编排。

 


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
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社区 版权所有