您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 北理工贾云德《计算机视觉》chapter12标定
1第12章标定本章将讨论各种摄象机系统及深度成像系统的标定方法.在摄影测量学领域中,已经建立了大量的摄象机和测距传感器标定方法.这些方法可以用来确定摄象机或测距传感器在场景中的位置和方向以及与场景坐标之间的关系.在摄影测量学中有以下四个标定问题:(1)绝对定位:通过标定点确定两个坐标系在绝对坐标系统中的变换关系,或确定测距传感器在绝对坐标系中的位置和方向.(2)相对定位:通过场景中的标定点投影确定两个摄象机之间的相对位置和方向.(3)外部定位:通过场景中的标定点投影确定摄象机在绝对坐标系中的位置和方向.(4)内部定位:确定摄象机内部几何参数,包括摄象机常数,主点的位置以及透镜变形的修正量.这些标定问题主要起源于高空摄影技术,是摄影测量中的经典问题.除了以上四个标定问题外,摄影测量学还解决以下两个问题:一是通过双目立体视差确定点在场景中的实际位置,二是对立体图像对进行校正变换,使得立体图像对的外极线与图像的行平行以便简化后续处理(见第十一章).摄象机标定过程中涉及到以下几种坐标,场景坐标、摄象机坐标、图像坐标和像素坐标等,这些坐标已经在1.7中介绍成像基础知识时引入.确定这些坐标之间的关系就是本章所要讨论的各种标定问题的目的.12.1刚体变换物体位置和方向的任意变化都可以认为是刚体变换,因为物体的移动只改变其位置和方向,并不改变其形状和大小.假定通过两个处于不同位置的摄像机均可看到点,p点在两个摄像机坐标系中的坐标分别是和2222,,zyxp.显然两个摄象机位置之间的变换是刚体运动,因此,p点在第一个视场中的坐标p1可以通过旋转和平移变换到第二个视场中的坐标2p,tRpp12(12.1)其中矩阵R是一个33的正交方阵,用于旋转变换:zzzyzxyzyyyxxzxyxxrrrrrrrrrR(12.2)矢量Tzyxttt),,(t表示平移,或者说点t是第一个坐标系原点在第二个坐标系上的坐标,如图12.1所示.图12.1两个摄像机坐标系2方程12.1可以认为是计算一个点经过旋转和平移以后的新坐标,或是计算空间中同一个点在不同坐标系中的坐标.前者用于刚体力学:在物体移动到一个新的位置以后,计算物体上一点的新坐标;后者用于标定问题:同一点在不同观察位置上观察将会得到不同的坐标,这种不同可以由刚体变换确定,而标定问题就是来确定这种刚体变换.例如,考虑两个具有不同位置和姿态的摄象机观察场景中同一点,由于观察角度不同,这一点在两个摄像机坐标系中的坐标是不同的.设想旋转第一个摄象机,使其方向与第二个摄象机的方向相同;再设想将第一摄象机平移到第二摄象机的位置上,则两个摄象机坐标系完全重合.12.1.1旋转矩阵空间角可用直角坐标系中的欧拉角描述:绕x轴旋转角,绕新的y轴旋转角,绕新的z轴旋转角,角是光轴的俯仰角(pitch),也叫垂直角,角是光轴的偏航角(yaw)(水平角),角表示光轴滚动角(roll)或扭转角(twist).无转动(三个角都等于零)指的是两个坐标系统完全对正.各角度旋转正方向为从坐标系原点沿各轴正方向观察时的逆时针旋转方向.用这些角表示方程12.2定义的旋转矩阵各元素如下:coscoscossinsincossinsinsincoscoscossinsinsinsincossinsincossincossincoscossinsincoscoszzzyzxyzyyyxxzxyxxrrrrrrrrr(12.3)用欧拉角的形式来确定坐标系的旋转会引起数值解不稳定,因为欧拉角很小的变化可能对应很大的旋转变化.因此,标定算法或者求解旋转矩阵的各元素常使用其它形式的旋转角表达式,如,四元数等.旋转矩阵是一个正交矩阵:IRRT(12.4)其中I表示单位矩阵.由上述公式不难得到旋转矩阵的逆就是该矩阵的转置.标定算法会在坐标系之间产生刚体变换;例如,从坐标系1到坐标系2,我们有212tRpp(12.5)刚体变换的逆变换就是将坐标系2的坐标变为坐标系1的坐标:12221)(tpRtpRpTT(12.6)这里的it表示坐标系上的i点是另一个坐标系的原点.注意平移变换的逆变换并不是简单的等于2t必须乘以旋转变换的逆变换,因为2t表示在坐标系2上的平移,其逆变换一定要表示到与坐标系1同一个方位的坐标系中.3图12.2欧拉角或俯仰角、偏航角和滚动角示意图12.1.2旋转轴旋转也可以规定为逆时针(右手坐标系)绕由单位矢量(,,)xyz表示的轴的旋转.这是一种观察旋转的非常直观方法,但是它在数值计算上也有和欧拉角一样的问题.旋转轴和旋转角度表达式可以转换成矩阵表达式(方程12.1),以作为刚体变换的公式.当然,如果能直接使用旋转轴和旋转角表达式来产生满意的数值解,将是最好不过的了.在这种思路的基础上产生了旋转四元数,这也是将四元数用于旋转表示的原因之一.12.1.3四元数四元数是一个四元矢量432,1,,qqqqq,可用来表示坐标旋转.实践证明,对于定位求解问题,四元数表示可以给出很好的数值解.为了理解四元数是如何对旋转进行表示的,我们首先想象在二维平面xy上的一个单位圆,单位圆上的任何一个位置都只对应于一个旋转角.如图12.3所示.图12.3单位圆上一点),(yx只能对应一个旋转角再考虑三维空间中的单位球:xyz2221(12.7)4在单位球上的任意一点只对应绕x轴和y轴旋转的两个角和,无法表示绕z轴旋转的第三个角.显然,再增加一个自由度就可以表示所有三个旋转角.四维空间单位球定义如下:xyz22221(12.8)三维空间中所有三个旋转角可以通过四维单位球上的点来表示.由单位四元数表示的旋转公式如下:qqqq021222321(12.9)每一个单位四元数和其反极点(antipole)q(,,,)qqqq0123都表示三维空间中的旋转.用单位四元数表示刚体变换的旋转矩阵:203130212322212022qqqqqqqqqqqqqR103223212220302122qqqqqqqqqqqq222123201032203122qqqqqqqqqqqq(12.10)在计算出单位四元数之后,就可利用上式计算旋转矩阵.单位四元数与上节描述的旋转角和旋转轴有密切关系.旋转可以用旋转量和旋转轴方向xyz,,的组合来表示,即四元数由一个与旋转量有关的标量和一个旋转轴矢量组成.设旋转轴的单位矢量为xyz,,,使用i,j和k表示坐标轴,则旋转轴单位矢可以表示为:xyzijk(12.11)绕该轴逆时针旋转角的单位四元数为:kjikjizyxzyxqqqqq02sin2cos(12.12)上式的第一项为四元数的标量(实)部分,其余项为矢量(虚)部分.空间点p(x,y,z)的四元数r实际上只有矢量部分(虚部),该矢量就是空间点p的矢量表示.kjirzyx(12.13)设p是点p通过矩阵Rq旋转得到,pqpR(12.14)若r是点p的四元数表示,那么对旋转后点的四元数表示r可以由四元数q直接计算:rqrq(12.15)这里的qqqqqxyz0,,,,是q的共轭四元数:四元数乘法定义如下:),,,(00000000qrqrqrqrqrqrqrqrqrqrqrqrqrqrqrqrzxyyxzxzyzxyyzzyxxzzyyxxrq(12.16)刚体变换可以很方便地用七个元素6543210,,,,,,qqqqqqq表示,前四个量是单位四元数,后三个量是平移量.在这一表达式中,若用R(q)表示对应于单位四元数的旋转矩阵,则刚体变换式为:TqqqR65412,,pqp(12.17)512.2绝对定位绝对定位问题是确定两个坐标系之间的刚体变换问题.求解绝对定位问题在机器视觉中有着许多应用,其中的一个应用是确定测距成像系统或双目立体视觉系统与定义在场景中的绝对坐标系之间的关系,这样可以将所有的测量值均表示在一个公共的坐标系里.若cccczyx,,p表示点在摄象机坐标系中的坐标,aaaazyx,,p表示点在绝对坐标系中的坐标,则绝对坐标定位问题的输入就是一个共轭对组:),{(1,1,acpp,),(2,2,acpp,...,)},(,,nancpp.为了求解绝对定位问题,我们把刚体变换方程展开,以便说明旋转矩阵中各项的作用.设cp是摄象机坐标系内的点,pa是绝对坐标系内的点,从pc到pa的刚体变换公式为:zczzczyczxaycyzcyycyxaxcxzcxycxxatzryrxrztzryrxrytzryrxrx(12.18)其中12个未知参数中有9个是旋转矩阵参数r,3个是平移参数t.每个共轭对),(acpp对应有三个等式,则至少需要四个共轭对产生12个方程才能解出12个未知数.在实际应用过程中,常常使用大量的共轭对(这些共轭对通常是空间标定点在不同坐标系中的表示)来提高计算精度.在解线性系统方程时,如果旋转矩阵R没有正交标准化,则可能得不到有效的旋转矩阵.使用非标准正交矩阵作为旋转矩阵可能会产生意想不到的结果,如不能保证矩阵转置一定等于矩阵逆,并且共轭对的测量误差会严重地影响计算结果,从而不能产生刚体变换的最佳逼近.有些方法是在每一步迭代过程之后对矩阵进行正交化,但仍不能保证正交化的矩阵是旋转矩阵的最佳逼近.一种替代的方法是求解旋转角而不是矩阵的各项元素.旋转角最一般的表示方法是欧拉角,不过使用欧拉角会导致非线性方程,从而产生数值计算上的困难.在摄影测量中,通常的做法是对非线性方程线性化并求解,以便得到名义值的修正值.这种线性化算法的成功与否很大程度上取决于初始预估值好坏.下面讨论用单位四元数表示方法求刚体变换.设)(qR是对应于单位四元数q的旋转矩阵,则摄象机坐标系上的每一点坐标转换成绝对坐标的刚体变换公式如下:ciciaRtpqp,,(12.19)其中ct是摄象机原点在绝对坐标系中的位置.现在的回归问题有七个参数:表示旋转的单位四元数的四个参数加上平移矢量的三个参数.正如前面所指出的,绝对定位问题的输入是共轭对集合:),{(1,1,acpp,),(2,2,acpp,…,)},(,,nancpp.考虑一组点的两种集合表示,在摄象机坐标系中的点集napppp,2,1,,,,aaa和绝对坐标系中的点集npppp,2,1,,,,cccc.绝对定位问题就是在空间中将这两个点群对正.下面计算每个点集的矩中心:niiaan1,1pp(12.20)niiccn1,1pp(12.21)用矩中心与每一个点相减得:rppaiaia,,(12.22)rppcicic,,(12.23)若已知旋转矩阵)(qR,则平移表达式可表示为:6ccpqRpta(12.24)下面将讨论求解旋转矩阵,使得这两簇射线对正.在推导旋转矩阵时,将点表示为从矩中心出发的射线,这样所有坐标都将是射线坐标.由于射线束是由共轭对集合推导的,因此,我们可以知道在摄象机射线束中的某一条射线对应于绝对坐标射线的那一条射线.当两组射线对正后,每一对对应射线将会重合.换句话说,每一对射线位于同一条直线上,并指向同一方向.若不考虑测量误差的影响,则每对射线之间的夹角应为0,夹角的余弦为1.测量误差导致射线束不能完全对正.但可以在最小方差的意义上,通过求解旋转矩阵R()q束得到最佳对正结果,其中旋转矩阵的求解是求每对射线标量积的极大值:21rqaiciinRr,,(12.25)在四元数中,上面的和式可以表示为:rqrqqrqraiciinciaiin,,,,11(12.26)上式可以变成
本文标题:北理工贾云德《计算机视觉》chapter12标定
链接地址:https://www.777doc.com/doc-6111050 .html