发明名称 单相机测量物体三维位置与姿态的方法
摘要 本发明公开一种单相机测量物体三维位置与姿态的方法,利用单相机获得待测目标的图像,通过精确识别待测目标上的标记点,来确定待测目标的实时三维位置与姿态信息;根据检测场景和范围选定合适的相机,并对相机进行标定,获得相机的内外参数;根据待测目标设计目标标记点并将标记点合理布局;然后根据相机捕获的图像进行目标检测和特征点的识别,并将检测到的特征点与标记点进行匹配;最后根据测量点与物体标记点的对应关系来求待测目标的三维位置与姿态信息。对于非刚性物体还能够检测到物体是否有变形。本发明采用单相机来实现三维测量,能够获知目标在三维空间中的空间几何参数、位置与姿态等信息,降低了测量成本和测量系统的体积,并且便于操作。
申请公布号 CN101839692B 申请公布日期 2012.09.05
申请号 CN201010184619.4 申请日期 2010.05.27
申请人 西安交通大学 发明人 薛建儒;王飞;田丽华;杜少毅;平林江;穆帆
分类号 G01B11/00(2006.01)I;G01B11/26(2006.01)I;G01B11/16(2006.01)I;G01C11/04(2006.01)I 主分类号 G01B11/00(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 陆万寿
主权项 1.单相机测量物体三维位置与姿态的方法,其特征在于:包括相机标定,目标标记,特征点的检测,特征点与标记点的匹配和目标三维位置与姿态信息的计算五个步骤;步骤1:相机标定,标定相机的内外参数,建立视觉测量系统中三维世界坐标和二维图像坐标的映射关系,所述相机的内参数是指相机的焦比、光心及成像坐标系两轴间的夹角;所述相机的外参数是指旋转矩阵和平移向量;步骤2:目标标记,将标记点标记在目标上,以便准确快速的检测和识别;步骤3:特征点的检测,对相机采集的图像进行图像处理,获得图像中的所有特征点,计算各特征点在图像中的位置,所述图像的特征点是成像后待测目标上的标记点;步骤4:特征点与标记点的匹配,在检测出的所有特征点中确定用于匹配的特征点,将其与目标上标记点进行匹配,获得二维坐标与三维坐标的对应关系;步骤5:目标三维位置与姿态信息的计算,根据特征点与标记点的对应关系,计算目标的三维位置与姿态信息,所述的三维位置与姿态信息是指目标在三维世界坐标系中的三维坐标和其相对于坐标系的偏转角度;其中所述的步骤1包括以下具体步骤,步骤11:建立二维坐标和三维坐标之间的映射关系,令图像点p=(u,v,1)<sup>T</sup>是空间一点<sup>C</sup>P=(x,y,z,1)<sup>T</sup>在图像平面的齐次坐标,则规一化图像坐标<img file="FDA0000158564420000011.GIF" wi="31" he="51" />的齐次坐标为:<maths num="0001"><![CDATA[<math><mrow><mover><mi>p</mi><mo>^</mo></mover><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mover><mi>u</mi><mo>^</mo></mover></mtd></mtr><mtr><mtd><mover><mi>v</mi><mo>^</mo></mover></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>x</mi><mo>/</mo><mi>z</mi></mtd></mtr><mtr><mtd><mi>y</mi><mo>/</mo><mi>z</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>物理图像坐标系与归一化图像坐标系之间的关系为:<maths num="0002"><![CDATA[<math><mrow><mi>p</mi><mo>=</mo><mi>A</mi><mover><mi>p</mi><mo>^</mo></mover><mo>,</mo></mrow></math>]]></maths>其中<maths num="0003"><![CDATA[<math><mrow><mi>A</mi><mover><mo>=</mo><mi>ref</mi></mover><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&alpha;</mi></mtd><mtd><mi>c</mi></mtd><mtd><msub><mi>u</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>&beta;</mi></mtd><mtd><msub><mi>v</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>(u<sub>0</sub>,v<sub>0</sub>,α,β,c)统称为相机的内部参数,其中(α,β)为相机的焦比,c反应了u轴和v轴夹角斜度,C<sub>0</sub>=(u<sub>0</sub>,v<sub>0</sub>)<sup>T</sup>是相机的光心,图像点p在物理图像坐标系中的齐次坐标与空间点<sup>C</sup>P在相机坐标系中的齐次坐标之间的关系为:<maths num="0004"><![CDATA[<math><mrow><mi>p</mi><mo>=</mo><mfrac><mn>1</mn><mi>z</mi></mfrac><mfenced open='(' close=')'><mtable><mtr><mtd><mi>A</mi></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mprescripts/><none/><mi>C</mi></mmultiscripts><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>相机坐标系(C)在世界坐标系(W)=(O<sub>w</sub>,X,Y,Z)中的位置记为:<maths num="0005"><![CDATA[<math><mrow><mfenced open='(' close=')'><mtable><mtr><mtd><mmultiscripts><mi>P</mi><mprescripts/><none/><mi>C</mi></mmultiscripts></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mmultiscripts><mi>R</mi><mprescripts/><mi>W</mi><mi>C</mi></mmultiscripts></mtd><mtd><mmultiscripts><mi>O</mi><mtext>W</mtext><none/><mprescripts/><none/><mi>C</mi></mmultiscripts></mtd></mtr><mtr><mtd><msup><mn>0</mn><mi>T</mi></msup></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><mi>P</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>代入(3)式得<maths num="0006"><![CDATA[<math><mrow><mi>p</mi><mo>=</mo><mfrac><mn>1</mn><mi>z</mi></mfrac><mi>HP</mi><mo>,</mo></mrow></math>]]></maths>其中<maths num="0007"><![CDATA[<math><mrow><mi>H</mi><mover><mo>=</mo><mi>ref</mi></mover><mi>A</mi><mfenced open='(' close=')'><mtable><mtr><mtd><mi>R</mi></mtd><mtd><mi>t</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,<img file="FDA0000158564420000024.GIF" wi="137" he="56" />是旋转矩阵,t=<sup>C</sup>O<sub>w</sub>是平移向量,它们是相机的外参数;步骤1.2:对选定的相机进行标定,获得相机的内外参数;采用基于平面单应矩阵的标定方法,利用不同视点间的平面匹配来计算相机参数,最少需要3个不同视点的图像完成标定;记像平面二维坐标点p=(u,v)<sup>T</sup>,世界坐标P=(X,Y,Z)<sup>T</sup>,由公式(4)可知,从三维到二维的映射可以表示为:<maths num="0008"><![CDATA[<math><mrow><mi>p</mi><mo>=</mo><mfrac><mn>1</mn><mi>z</mi></mfrac><mi>A</mi><mfenced open='[' close=']'><mtable><mtr><mtd><mi>R</mi></mtd><mtd><mtext>t</mtext></mtd></mtr></mtable></mfenced><mi>P</mi><mo>,</mo></mrow></math>]]></maths>其中<maths num="0009"><![CDATA[<math><mrow><mi>A</mi><mover><mo>=</mo><mi>ref</mi></mover><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&alpha;</mi></mtd><mtd><mi>c</mi></mtd><mtd><msub><mi>u</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>&beta;</mi></mtd><mtd><msub><mi>v</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>令标板所在的世界坐标Z=0,则上式可写为:<maths num="0010"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>u</mi></mtd></mtr><mtr><mtd><mi>v</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfrac><mn>1</mn><mi>z</mi></mfrac><mi>A</mi><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><msub><mi>r</mi><mn>2</mn></msub></mtd><mtd><msub><mi>r</mi><mn>3</mn></msub></mtd><mtd><mi>t</mi></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>A</mi><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><msub><mi>r</mi><mn>2</mn></msub></mtd><mtd><mi>t</mi></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>将上式重新记为:<maths num="0011"><![CDATA[<math><mrow><mi>p</mi><mo>=</mo><mfrac><mn>1</mn><mi>z</mi></mfrac><mi>HP</mi><mo>,</mo></mrow></math>]]></maths>其中<maths num="0012"><![CDATA[<math><mrow><mi>H</mi><mover><mo>=</mo><mi>ref</mi></mover><mi>A</mi><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><msub><mi>r</mi><mn>2</mn></msub></mtd><mtd><mi>t</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>H矩阵即确定了三维空间坐标到二维像平面坐标的映射关系,求解出H矩阵就完成了相机的标定;步骤1.3:考虑到测量与计算误差,定义误差函数如下:<maths num="0013"><![CDATA[<math><mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>p</mi><mi>ij</mi></msub><mo>-</mo><msub><mi>P</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>A</mi><mo>,</mo><mi>R</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths>使上式最小即可求得最大似然估计下的最优参数。
地址 710049 陕西省西安市咸宁路28号