Fmaya里ik和fk的转换IK的区别详解

角色动画是构建虚拟世界(游戏和虚拟社区)一个比较重要的内容。因为虚拟世界最关键的是人与虚拟角色(即“化身”,Avatar)之间的交互,会动的世界才有生机。角色动画可分两种:预定义动画(predefined animation)和程序动画(procedural animation)。预定义动画是事先由美术师制作好的动画序列,程序运行时只能播放,不能改变;程序动画是在程序运行时实时生成。相比预定义动画,程序动画能实现更好的交互。
&&& 程序动画可以用来实现物理动画(physics animation),物理动画可以让角色根据物理规律对外界作出相应的反应动作。物理动画现在已经开始应用到3D游戏里了。比如Crytek公司的CRYENGINE 2引擎就采用了这项技术,例如角色可以根据地形的坡度来自动调整站立的身姿,如下图所示:
&&& IK就是一种实现程序动画的方法。骨络动画分为FK(正向运动学,Forward Kinematics)和IK(逆向运动学,Inverse&Kinematics)两种。FK这里就不细讲了,是最常用的设置动画的方法。这里主要讲一下IK,IK和FK相反,它是给定末端作用器的位置或方向,来反求各节点的位置。如下图所示:
&&& IK主要用于程序动画中,比如跑步时人的腿根据地形进行自适应,用手拿东西,用手握扶手开门等。如下图所示:
&&& IK计算有2种方法:解析法和迭代法。解析法速度快,但只适用于节点较少的情况;迭代法通用性强,但有时容易得到局部极小值。所以一般是这两种方法混用。IK的解的个数有多种情况:
&&&& &&&&&
&&&&&&&&& (a) 无解&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (b) 唯一解&&&&&&&&&&&&&&&&&&&&& (c) 两个解&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(d) 许多解
&&& 若节点数大于2个,就会出现有许多解的情况,那么如何选择最佳解呢,对人的手和腿来说,每个关键都有约束(转动角度的范围),那么就要考虑这些解有没有满足这些约束。但是可能满足这些约束的解不止一个,这时就要选择一个最佳的,比如视觉效果最好的。一种方法是选择消耗能量最少的那个(比如手臂各关节抬得最低)。
&&& FK可以实现比较自然的动画效果;IK可以用在程序中实时生成骨络的关键帧,这样就可以使角色根据外界环境实时的作出动作的反应,更真实。因为FK和IK各有优缺点,所以往往FK和IK混用(FK/IK blend)。
我的热门文章
即使是一小步也想与你分享分享给朋友:把视频贴到Blog或BBS&&通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效FK和IK的区别详解下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效FK和IK的区别详解扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本选集
药品服务许可证(京)-经营-
节目制作经营许可证京字670号
请使用者仔细阅读优酷、、
Copyright(C)2016 优酷
不良信息举报电话:给我们留言
地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网
电话: 400-067-3919
(周一到周五, 周六周日休息)
查看: 3326|回复: 2
最后登录注册时间阅读权限100积分71151
纳金币59310 精华19
在本系列教程里面,我们将介绍如何使用蒙皮后的骨架进行角色动作的设置,例如角色的行走、跑步、跳跃与各种形态的动作,操作的版本建议在2013或是更高,教程里面所带的案例文件请先下载本文提供的附件。
附件里面提供了两个骨架与蒙皮后的模型,由于骨架的结构域设置相同,所以在练习的时候可以任选其一来进行操作。如图所示,男生模型Walter上面已经绑定了各部位的控制器,而令人感到困惑的就是,这些大大小小的控制器要如何来控制角色呢? FK与IK的含义又是什么?
14:24 上传
关于这几个疑问我们将在本教程里面进行说明,现在我们打开Emma_Rig_V1的文件,从前面的视角里面看到有的控制器是红色,有的则是蓝色,区别就在于左右两边的标示。
14:24 上传
底部的大方向箭头用来移动整个角色,选取这个物件即可使所有的控制器呈现出绿色的选取状态,这样就能将角色移到我们希望的位置。
14:24 上传
选择脚部底下的控制器进行移动,这时我们看到的是整个左脚被抬起,运用的方式即为反向式关节(IK),通过这种方法可以快速的调整腿部的动作。
14:24 上传
脚跟的部分也另外添加了控制器,如图所示,旋转脚跟的控制器即可调整出垫脚的动作,旋转前端的控制器则是做出抬起脚尖的效果。
14:24 上传
选择Stretch/FKIK的字样往下移动,腿部的IK设置即可更改为正向关节(FK)的调整,在底部的控制器也会消失。
14:24 上传
切换为FK的设置后,只能通过旋转腿部上方的控制器来进行腿部动作的调整,如果要弯曲膝盖,只要旋转膝部的控制器即可。如果要将设置还原到IK,再去移动Stretch/FKIK的位置即可。
14:24 上传
选择臀部的控制器往下移动,通过这个方式来改变角色的重心位置,配合移动膝部前方的控制器即可调整出理想的腿部动作。
14:24 上传
身体的控制器一般来说只适合用旋转的方式,如果采用移动来改变身体的控制器位置,那么僵导致模型出现拉扯的现象,这点是需要特别注意的地方。
14:24 上传
手部的地方默认采用FK的调整,有的动画师特别偏好用此一方式来调整角色的动作,而有时使用IK也能达到一个快速的调整效果,所以这里与腿部采用了相同的FK/IK切换方式。
14:24 上传
如图所示,在切换到IK的设置后,手部的控制器就不见了,而是在手掌的部分以一个大板子来方便我们进行选取,另外就是在手肘的部分也多了一个调整角度的控制器。
14:24 上传
手指的部分设置比较多的控制器来控制每一根手指头,旋转这些控制器就能模拟出握拳或是拾取东西的动作。
14:25 上传
在头部的旁边显示的是脸部的多重控制器,也是用来制作表情动画的专用面板,我们在脸部上面设置了Blend shape的组合,然后对应到脸部的不同控制器,这样做的好处就是很容易的就能找到对应的通道来设置表情效果。
14:25 上传
如图所示,通过移动面板内的小圆圈即可改变角色的表情,让角色呈现出喜怒哀乐的不同效果。
14:25 上传
14:25 上传
在了解角色控制器的应用后,后面就能开始进行动作的调整,我们将在下一个教程里面介绍如何应用这些控制器来制作角色的行走动画,请随时关注本系列教程与论坛的最新动态。
14:25 上传
点击文件名下载附件
4.37 MB, 下载次数: 326
最后登录注册时间阅读权限90积分6667
高级设计师, 积分 6667, 距离下一级还需 3333 积分
纳金币2715 精华0
Good tut with files !
活跃且尽责职守的版主
站长推荐 /1
纳金名模第118期电视柜3d模型:数量100个,大小为517MB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
400-067-3919
Powered by - X2.5
Narkii Inc.深度 | 视觉里程计---推导公式来了 - 今日头条()
深度 | 视觉里程计---推导公式来了
作者:Taylor Guo 博客:/vo.html视觉里程计问题的公式推导假设在时间k,通过相机移动,追踪环境图像。如果是单目相机,k时间上拍摄的一组图像表示为I0:n={I0,…,In}。如果是立体相机,每个时刻有左右两幅图像,记为Il, 0:n={Il,0,…,Il,n}和Ir, 0:n={Ir,0,…,Ir,n}。图1表示了这个具体问题。相邻的相机位置的相对位姿Tk,K-1(或相机系统位置),通过视觉特征进行计算,将位姿连起来获得关于初始坐标帧k=0时的绝对位姿Ck。 假设相机的图像帧坐标为机器人的坐标。立体相机,为不失一般性,左眼的坐标为原点。在连续时刻k-1和k,相机位置关系通过变换Tk,k-1?R4x4记为:其中Rk,k-1?SO(3)是旋转矩阵,tk,k-1?R3x1是平移向量。这组向量T1:n={T,.0,…,Tn,n-1}包括连续的相机运动。为了简便,我们将Tk,k-1记为Tk。最后,相机位姿C0:n={C0, … , Cn}包含了相机相对初始坐标k=0的变换。当前位姿Cn可以通过联立变换Tk(k=1…n)计算,因此,Cn=Cn-1Tn,其中C0是相机k=0时的位姿,用户可以任意指定。 视觉里程计的主要任务就是计算图像Ik到Ik-1的相对变换,然后联立变换重建相机的C0:n的轨迹。这意味着视觉里程计一个位姿一个位姿的增量式地构建轨迹。这个步骤之后,前m个位姿迭代优化可以获得局部轨迹更精确的估计。这个迭代优化的过程,是计算重构前m图像3D云点重射影误差开方的和的最小化值(称为窗口化捆集调整,因为它在m帧图像上的子窗口执行。捆集调整将在第二部分详细介绍)。三角化图像上的点获得3D云点(参考“三角化和关键帧的选择”)。单目视觉里程计有两种方法计算相对运动Tk:基于场景外观的(或全局的)方法,采用两个输入图像的所有像素的稠密信息;基于特征的方法,只采用从图像中提取(追踪)的显著的、可重复的特征。全局方法的精度比基于特征的方法低,计算复杂度更高一些。(在之前“视觉里程计的历史”章节中,大部分基于场景外观的方法应用于单面视觉里程计中。主要是由于相比立体相机中更容易执行。)基于特征的方法要求对图像帧的特征提取(追踪)具有鲁棒性,它比全局方法更快、更精确。因此,大部分视觉里程计的执行都采用基于特征的方法。视觉里程计的主要流程方法如图2 所示。对每个新的图像Ik(如果是立体相机,就是图像对),前两步包括检测和匹配2D特征,是通过与之前的图像帧做对比而进行的。从不同的图像帧上提取的3D特征是2维特征的重投影,这是图像的对应关系。(我们将在第二部分详细讲解特征匹配和特征跟踪的区别。第一个特征匹配是在图像中单独检测特征,然后基于相似的特点再将它们进行匹配; 第二个特征跟踪是先查找一幅图像中的特征,然后用局部搜索方法,比如关联程度,在下一幅图像中跟踪它们。)第三步是计算两个时刻间k-1和k的相对运动Tk。根据对应关系是3维或2维的不同,有3种不同的方法处理这个问题(如“运动估计”章节所示)。相机位姿Ck就可以通过联立位姿Tk和之前的位姿计算获得。最后,通过对前m帧图像进行迭代优化(捆集调整)可以更精确地估计局部轨迹。本文对运动估计也有详细说明(参考“运动估计”章节)。特征检测和匹配,捆集调整将在第二部分详细说明。同样的,一个精确地运动计算,特征对应不应该包含离群点(比如错误的数据关联)。即使出现离群点也要确保精确的运动估计,是鲁棒估计的主要任务,也将在第二部分详细说明。大部分视觉里程计的执行都假设相机已经校准过。我们将浏览一下透视相机或全景相机的标准模型和校准过程。相机模型和校准视觉里程计可以采用透视相机和全景相机。我们将在本章主要讨论一下相机的模型。1透视图相机模型透视相机常用模型是针孔射影系统:物体反射的光线通过透镜中心(投影中心)在焦点平面形成图像,如图3a所示。令X=[x,y,z]T为相机参考帧上场景中的一个点,p=[u,v]T为图像屏幕上的一个像素的投影。从3D世界到2D图像之间的对应关系可以通过一下透视投影等式表示:其中,λ是深度因子,αu和αv是焦距,u0和v0是图像投影中心的坐标。这些参数称为内参。当相机的视角大于45o时,就会产生光线扭曲,可以通过二次或更高阶多项式构建模型。完整的模型推到可以参考计算机视角的教科书,如论文22和论文63所示。令p=[u,v,1]T=K-1[u,v,1]T为类似的图像坐标。归一化坐标将在后面的章节中大量使用。全景相机模型全景相机的视角非常宽(甚至超过180度),可以用鱼眼镜头或通过镜像合并标准相机制造[也称为反折射相机,如图3b所示]。反折射相机中典型的镜头形状是旋转的二次曲面(比如抛物面或双曲线体),因为它们产生一个投影中心,使得采用运动估计成为可能,这将在“运动估计”中详细讲解。图3 (a)透视投影,(b)反射投影,和(c)透视相机和全景相机地球形模型。图像点朝向观察点,在单位圆球中标准化。目前,有两种全景相机的模型。第一个是论文64中的反折射相机(抛物面或双曲线的),第二个是论文65中的针对鱼眼和反折射相机统一的模型。论文66和论文67对着两种模型进行了研究。统一模型的投影等式为:其中, 和a0,a1,…,an是相机内参,取决于它是镜面镜头还是鱼眼镜头。如论文65所示,n=4对镜面或鱼眼镜头来说是一个比较恰当的选择。最后,这个模型假设图像平面满足理想特性,相机感光平面的轴心和镜面轴心是对齐的。尽管这个假设只是针对鱼眼镜头和反折射相机的,但可以通过引入理想平面和图像平面的透视投影构建偏移模型,如论文66所示。圆球模型我们希望相机有一个有效单视点(single effective viewpoint),即在视觉系统中只存在一个投影中心。其主要原因是单视点可从全方位摄像头采集的图像中产生正确的几何透视图像,同时还适用于成熟的外极线几何理论。反折射相机中,当光线通过镜面相交于一个点C时,才会形成投影中心。如果存在这个点,可以使我们能够从一个单视点到圆球通过对应关系构建全景投影模型。为了方便,通常会采用单位球体。值得注意的是球体模型不仅可以应用于全景相机中,还可以应用于透视相机。如果相机校准过,透视图像或全景图像上的任何点就可以映射到单位球体上的一个向量。如图3(C)所示,单位向量指向观察到的图像场景中的点。这些向量是单位球体上归一化图像点。相机校准相机校准的目的是为了获得相机系统更精确的内部参数和外部参数。在多相机系统中(比如立体或三相机),外部参数描述了每个相机对的彼此位置关系和方向信息。最常用的模型是采用平面棋盘模型。棋盘上方块的位置已知。为了精确地计算校准参数,用户需要在不同的位置和方向拍几张棋盘的图片,拍的时候要确保相机视角尽可能地覆盖场景。相机的内部参数和外部参数可以通过最小二乘法计算。输入数据是棋盘方格的四角的2D位置和它们对应的每幅图像的像素坐标。许多相机校准工具都有MATLAB和C版本。最新的可以在论文68中找到。在这些工具中,最常用的是论文69中的Matlab和论文70到72的透视和全景相机。透视相机的C语言校准版本OpenCV,论文73中有提供,一个开源计算机视觉库。运动估计运动估计在视觉里程计中对每幅图像来说是一个核心步骤。精确的说,是计算运动估计中当前图像和之前的图像间的相机运动。将这些单次运动链接起来,就可以重构相机的运动轨迹。本章详细解释如何从时刻K-1和K的两组对应的特征fk-1和fk中计算两幅图像Ik-1和Ik的变换Tk。根据特征对应关系是2维还是3维,有3中不同的方法: o 2D到2D:fk-1和fk都是2维图像坐标;o 3D到3D:fk-1和fk都是3维图像坐标。需要三角化每个时刻的3维云点,比如使用立体相机;o 3D到2D:fk-1是3维,fk是它们对应的图像上的2D重投影。单目相机情况下,3D结构需要从2个相邻的相机视图(比如Ik-2和Ik-1)进行三角化,然后和第3幅视图中的2D图像特征进行匹配(比如,Ik)。在单目算法中,需要匹配至少3幅视图。注意,特征可能是点或者线。通常,在无结构的场景中由于缺乏直线,就在视觉里程计中使用点特征。一个深入分析这三种点和线特征方法的论文,在参考论文74中可见。本文只讲解点特征的推导。2D到2D:图像特征匹配中的运动估计本征矩阵校准过的相机图像Ik和Ik-1之间的几何关系可以通过本征矩阵E表示。E中包含了相机运动参数具有一个未知的平移变换因子:符号 表示等式右边是标量乘法。2D到2D的特征对应关系可以计算本征矩阵,旋转和平移矩阵可以通过本征矩阵进行分解计算。2D到2D的运动估计最重要的特征是对极约束,它形成一条直线连接两个对应的特征点p’和p,p是另一幅图像像对应的特征点,如图4所示。这个约束可以通过等式p’TEp=0推导,其中p’是其中一幅图像Ik的特征位置,p是另一幅图像Ik-1上对应的特征的位置。p’和p的图像坐标是在同一坐标系一致的。为了简化,我们将归一化的坐标记为p=[u,v,1]T,(详细参考“透视相机模型”)。类似的等式,也可以通过单位圆球的归一化坐标推导,(如“圆球模型”所示)。用对极约束计算2D到2D特征匹配的本征矩阵。最小化方案是采用5个2D到2D的对应关系,如论文75,Nister的论文76提供了一种实现方法。Nister的5点算法成为标准的2D到2D的运动估计方法,包括对离群点的处理。对于n&=8的非共面点的一种简单直接的计算方法是Longuet-Higgins的8点算法,如论文2中总结。每个特征匹配都给出一个约束:8点法得到的这些约束进行排列可以得到一个线性方程组AE=0,通过解方程,就可以计算出E的值。这个齐次方程组可以很容易通过奇异值分解(SVD)计算,如论文2。如果超过8个点会产生超定方程组(方程个数大于未知量个数的方程组),如果超定方程组给定的条件(限制)过于严格, 导致解不存在,就用最小二乘法进行拟合,求出最小二乘解,该方法对噪声具有鲁棒性。矩阵A的奇异值分解(SVD)形式为A=USVT,E的最小二乘估计为||E||=1可以用V的最后一行查找。然而,E的线性估计并不满足本征矩阵的特征约束,它是旋转矩阵R和反对称平移t的乘积。在本征矩阵的奇异值里面可以看到这些约束。经过奇异值分解(SVD)分解后的本征矩阵是E=USVT,提取主对角线上的值diag(S)={s,s,0},第一个和第二个奇异值相等,第三个是0。为了得到满足约束的有效的本征矩阵E,需要将它投影到具有有效的本征矩阵的空间中去。投影本征矩阵为当3维空间中点共面时,8点算法方案退化。相应的,5点算法则可以应用于计算共面点。最后,8点算法对校准过的(透视或全景)相机和没有校准的相机都可适用,5点算法只适用于校准过的(透视或全景)相机。从本征矩阵E提取旋转矩阵R和平移矩阵t从计算估计出来的E中,可以提取旋转和平移矩阵。通常,对同一本征矩阵有4种不同的方法求解R,t;其实,只要三角化一个点,就可以求出一对R和t。这4种方法是:一种将E有效分解成R和t的方法在论文76中有详细介绍。通过三角化云点旋转正确的方案,选择点的时候这个点要在两个相机的正前方,用估计的R,t作为初始值,可以采用非线性优化方法对旋转和平移参数进行优化。最小化重投影误差的方程用公式10定义。捆集调整可用于优化相机轨迹的局部估计。计算相关尺度为了重构图像序列的轨迹,需要将不同的变换T0:n进行链接。为了达到这个目标,两幅图像的平移绝对尺度无法计算,需要计算它们的相对尺度。图像子集变换的相对尺度是可以计算出来的。其中一种方法是三角化两个图像子集的一对图像集Xk-1和Xk的3维点。从对应的3维点坐标可以计算两个3维点之间的距离。计算图像对Xk-1和Xk之间的距离的比值r可以得出相应的尺度。考虑到鲁棒性,计算了很多的比例因子,采用平均值,如果出现离群值就取中值。平移向量t也可以通过这个距离比值计算。相对尺度的计算要求在多个图像帧上的特征已经匹配好(或被追踪),至少是三幅图像帧。与采用外部三角化3维点不同的是,比例因子还可以通过寻找2维特征的三视图匹配之间的三焦点约束来计算,如论文参考22《多视图几何》所示。2D到2D对应关系的视觉里程计算法如算法1所示。3D到3D:3D结构对应中的运动对于3D到3D的特征对应,可以通过两组3D特征的一致变换计算相机的运动Tk。3D到3D的特征对应只适用于立体视觉中。计算Tk的一般方法是计算两组3D特征之间的距离的最小值L2。其中,i表示第i个特征,Xk,Xk-1表示3D点的齐次坐标,比如:论文77中,最小化方案采用3组3D到3D非共线对应关系,可以用于出现离群点的鲁棒估计,将在第2部分讲解。当n&=3的对应点,可能的方法,论文78,是分别用3D特征组的不同质心计算平移部分,和用奇异值分解(SVD)计算旋转部分。平移部分通过下式计算:其中-表示算术平均值。旋转矩阵可以通过奇异值分解(SVD)计算,Rk=VUT,其中Xk-1和Xk是两组对应的3D点。如果3D点的测量不确定性已知,可以通过论文17的方法添加权重。变换的计算具有绝对尺度,因此,图像序列的轨迹可以直接连接变换得到。3D到3D对应关系的视觉里程计算法如算法2所示。为了计算变换,也可以不用立体相机3D点的三角化,而采用4焦点约束。论文21讲解了这个方法。4焦点张量也可以直接从2D到2D的立体对应关系中计算变换。3D到2D:3D结构和图像特征对应中的运动Nister的论文1指出,3D到2D对应的运动估计比3D到3D对应的更精确,因为它的图像重投影误差更小(如论文10),而3D到3D的特征位置误差估计不是最小,如论文9。通过3D到2D的对应关系Xk-1和pk 计算变换Tk。Xk-1可以用立体数据估计,或在单目视觉中,可以三角化图像量测pk-1和pk-2获得。然后,再使用三视图的图像对应关系。 计算Tk的一般方法是图像重投影误差的最小值:其中是3D点根据Tk变换到图像Ik的投影。众所周知,这个问题是n点透视问题,有很多不同的方法可以用,如论文79。论文18中,最小化方法采用3个3D到2D的对应。称之为3点透视(P3P)方法,有4种方案用1个或更多点来消除歧义。(一种优化加速P3P算法如论文80所示,C代码可以在作者的网站上下载。)在3D到2D的状况下,P3P是一种用于在离群点出现的情况下鲁棒运动估计的标准方法,如论文18所示。鲁棒估计将在第2部分详细介绍。 一种简单直接的解决n&=6点的PnP问题的方法是直接线性变换算法,如论文22所示。一个3D到2D点的对应提供了Pk=[R|t]的2个约束,如下所示。其中,每个PjT都是一个4维向量(j表示PK的第j行),x,y,z是3D点Xk-1的三个坐标值。 讲6个点的对应关系的约束排列产生一个线性方程组为AP=0。A中包含0向量,采用SVD奇异值分解,可以计算出P。旋转和平移部分通过Pk=[R|t]提取。生成的旋转矩阵R不需要正则化。然而,R和t都可以通过论文10中重投影误差非线性优化来处理,所以问题不大。 3D到2D的运动估计采用的2D图像点来自于单面相机。这意味着对立体相机,2D图像点要么是左边的相机要么是右边的相机生成。显然,我们希望同时使用两个相机的图像点。Nister在论文81中提出了一种对于外参校准(相机间的相对位置和方向已知)的相机的一般化的3D到2D运动估计算法,可应用于非共点的射线(比如,多相机的2D图像点)。 对于单目相机,需要三角化3D图像点,用一种独特的方法从3D到2D的匹配中估计位姿。这种独特的算法常常被称为SFM。从2个视图开始,通过2D到2D特征匹配计算3D点的初始点集和第一个变换。接下来的变换用3D到2D的特征匹配计算。为了达成这种做法,特征的匹配或跟踪,需要在多个图像帧中处理(至少是3个图像帧)。当新变换计算好后,将被加入到3D特征点集中,新的3D特征会被三角化。这种方法的挑战是需要维护一个一致的、精确的三角化的3D特征,在至少3个连续图像帧上创建3D到2D的特征匹配。 3D到2D对应的视觉里程计算法总结如算法3所示。三角化和关键帧的旋转之前有些运动估计方法要求从2D图像对应中三角化3D点(结构)。捆集调整Bundle Adjustment也需要计算运动结构,从而计算出局部轨迹更精确的估计。从至少2幅图像帧的2D图像对应的射线反向交汇,进行3D点三角化。理想情况下,这些射线将会在一个3D点处交汇。然而,由于图像噪声,相机模型和标定误差,还有特征匹配的不确定性,它们可能不会交汇。因此,在最小方根情况下,最小距离的点,其所有射线交汇,可以作为3D点的位置的估计。所有射线交汇的三角化的3D点的距离的标准偏差是一种理想的3D点。具有较大不确定的3维点将会被丢弃。这种情况在图像帧非常靠近被拍摄的场景时会发生。这种情况发生时,3D点表现出非常大的不确定性。避免这种问题的方法是忽略这些图像帧,直到这些3D点的不确定性减小到一个设定的阈值。这些挑选的图像帧被称为关键帧。关键帧的选择是视觉里程计中非常重要的一步,它是在更新运动之前必须完成。视觉里程计在一致性和实时性能方面需要做取舍。讨论根据Nister论文1,对于运动的计算,与3D到3D方法相比2D到2D和3D到2D的方法具有优势。对于立体相机,Nister对比了视觉里程计的性能,3D到3D的和3D到2D的情况,发现3D到2D要比3D到3D好很多。主要原因是三角化的3D点在深度方面具有更多的不确定性。3D到3D的特征对应用于运动计算,不确定性会减少运动估计的效果。事实上,3D到3D的运动估计,3D位置误差,论文9,可以在3D到2D图像重投影误差下最小化。在单目算法中,相比3D到2D方法,通常采用2D到2D方法,它可以避免点的三角化。然而,在实际应用中,3D到2D方法用得比2D到2D方法多。主要是因为它具有更快的数据关联。第二部分会详细介绍,为了更精确的运动计算,输入数据一定不能包含离群点。无效数据的祛除是非常巧妙的一步,它的计算时间与估计运动的最少数量的点紧密相关。前面提到过,2D到2D方法要求最少5点对应关系(参考5点算法);然而,在3D到2D运动估计中只需要3点对应关系(参考P3P)。第2部分中也提到了,越少的云点,运动估计的速度越快。立体相机的算法与单目相比,除3D特征可以在绝对尺度下直接计算外,它的优势是只需要计算两幅图像之间的匹配而不是单目中的三幅图像。另外,3D结构可以通过单一的立体图像对计算,而不是单目中连续多个图像帧,立体算法比单目算法在较小的运动上具有更小的漂移。当相机到场景之间的距离远远大于立体相机的基线时,立体视觉里程计就退化成单目相机。在这种情况下,立体视觉没有效率,就会采用单目方法。除运动计算方法的选择之外,局部捆集调整(前m个图像帧)用于计算更精确的轨迹估计。捆集调整后,运动估计方法的效果会打折扣。结论本文讨论了视觉里程计的历史,问题的推导,不同的运动估计方法。视觉里程计是机器人上必要的一部分,比较容易理解。第二部分将会总结视觉里程计的其他部分:如何检测和匹配图像间显著的可重复的特征,出现无效数据后的鲁棒估计,和捆集调整。另外,还有误差迭代,应用,和开源代码。转载请注明转自AR酱并附原文链接
发现闪闪发光的AR从业者
违法和不良信息举报电话:010-
公司名称:北京字节跳动科技有限公司}

我要回帖

更多关于 maya ik fk 无缝切换 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信