基于圆锥投影变换的单目视觉空间定位方法与流程

文档序号:12598075阅读:来源:国知局

技术特征:

1.基于圆锥投影变换的单目视觉空间定位方法,其特征在于:具体包括以下步骤:

(1)构造圆形目标,将黑白色块呈辐射状均匀交替,并使得圆心位置明显,并预先得出圆形半径;

(2)摄像机在任意姿态下拍摄圆形目标,所得图像为椭圆,提取其圆周点群和圆心的像素坐标;

(3)根据圆周图像,建立顶点为摄像机光心,底边为椭圆周的斜椭圆锥模型及方程表达,进而将斜椭圆锥表达映射为直椭圆锥表达;

(4)基于直椭圆锥中的几何关系,利用圆形目标的半径约束求得摄像机光心与圆心的距离,进一步利用圆心约束求得圆心在摄像机坐标系中的空间坐标。

2.根据权利要求1所述的基于圆锥投影变换的单目视觉空间定位方法,其特征在于:步骤(3)中所述的建立顶点为摄像机光心,底边为椭圆周的斜椭圆锥模型及方程表达,进而将斜椭圆锥表达映射为直椭圆锥表达的算法为:

图像坐标系是以像素为单位建立的直接坐标系,令(ui,vi)为圆周点群的图像坐标,其中i=1,2,3...n,n为圆周点的总个数;摄像机坐标系是原点在光心、建立XOY平面,并与成像平面平行、设Z轴为摄像机光轴的空间坐标系,设O-XcYcZc为摄像机坐标系,令P1为成像平面,令(xi,yi,1)为圆周点群的图像坐标经转换得到的齐次摄像机坐标,圆周点群在图像中呈现为椭圆,摄像机光心与该椭圆周形成一个斜椭圆锥,斜圆锥的母线即为光线投射方向;

沿光线投射方向将该斜椭圆锥映射为直椭圆锥,首先调节zci的值,将所有光线的长度缩放为相等长度α0,得到变换后的圆周点群坐标(xci,yci,zci),其中α0为不为零的任意值,求取上述圆周点群的坐标平均值作为直椭圆锥底面的中心O0

然后将摄像机坐标系Z轴旋转至OO0,形成新的摄像机坐标系O-X′cY′cZ′c,将圆周点群的齐次坐标(xi,yi,1)旋转变换至O-X′cY′cZ′c中,并调节z'ci的值,使所有点Z′c轴坐标一致,即可得变换后的圆周点群坐标(x'ci,y'ci,z'ci),其中z'ci=χ0,则变换后的点都位于新的成像平面P1'上,P1'与成像光线的交点则形成椭圆,该椭圆的圆周与摄像机光心形成直椭圆锥。

3.根据权利要求1所述的基于圆锥投影变换的单目视觉空间定位方法,其特征在于:步骤(4)中所述的基于直椭圆锥中的几何关系,利用圆形目标的半径约束求得摄像机光心与圆心的距离,进一步结合圆心约束求得其在摄像机坐标系中的空间坐标坐标具体算法:

定义光心和椭圆长轴形成的平面为长轴平面,光心与椭圆短轴形成的平面为短轴平面,O1为长轴平面与圆形目标交线的中点,O2为圆形目标的圆心,r为圆形目标的半径,O1O2的距离为a,令A、B分别为短轴平面内的两条母线与圆形目标的切点,令∠OAB=γ,α为长轴平面等腰三角形的底角,β为短轴平面等腰三角形的底角,则在光心与椭圆长轴形成的平面中有如下关系:

<mrow> <mi>&alpha;</mi> <mo>=</mo> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>-</mo> <mi>arctan</mi> <mi>&sigma;</mi> <mo>/</mo> <msub> <mi>&alpha;</mi> <mn>0</mn> </msub> </mrow>

<mrow> <mi>&beta;</mi> <mo>=</mo> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>-</mo> <mi>arctan</mi> <mi>&tau;</mi> <mo>/</mo> <msub> <mi>&alpha;</mi> <mn>0</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mfrac> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&beta;</mi> </mrow> <mrow> <mi>r</mi> <mo>+</mo> <mi>a</mi> </mrow> </mfrac> <mo>=</mo> <mfrac> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&gamma;</mi> </mrow> <mrow> <msqrt> <mrow> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mi>a</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mi>t</mi> <mi>a</mi> <mi>n</mi> <mi>&alpha;</mi> </mrow> </mfrac> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mfrac> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&beta;</mi> </mrow> <mrow> <mi>r</mi> <mo>-</mo> <mi>a</mi> </mrow> </mfrac> <mo>=</mo> <mfrac> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mn>2</mn> <mi>&beta;</mi> <mo>-</mo> <mi>&gamma;</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mi>a</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mi>tan</mi> <mi>&alpha;</mi> </mrow> </mfrac> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

利用式(1)、式(2)求得γ的值后,在ΔOAB中利用正弦公式求得OA的长,计算过程如下:

<mrow> <mfrac> <mrow> <mn>2</mn> <mi>r</mi> </mrow> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&pi;</mi> <mo>-</mo> <mn>2</mn> <mi>&beta;</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mi>O</mi> <mi>A</mi> <mo>|</mo> </mrow> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mn>2</mn> <mi>&beta;</mi> <mo>-</mo> <mi>&gamma;</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

再在ΔOO2A中利用余弦公式求得OO2,计算过程如下:

OO2=r2+|OA|2-2r|OA|cosγ (4)

解式(3)、式(4)求得OO2的距离,依据圆形目标圆心的摄像机坐标(xo,yo,1)求得圆心在实际的摄像机坐标系中的坐标:

<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>X</mi> <mi>o</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Y</mi> <mi>o</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Z</mi> <mi>o</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msub> <mi>OO</mi> <mn>1</mn> </msub> <mo>|</mo> </mrow> <msqrt> <mrow> <msubsup> <mi>x</mi> <mi>o</mi> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>y</mi> <mi>o</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mn>1</mn> </mrow> </msqrt> </mfrac> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>o</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mi>o</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

4.根据权利要求2所述的基于圆锥投影变换的单目视觉空间定位方法,其特征在于:所述χ0为2倍物距至5倍物距。

5.根据权利要求2所述的基于圆锥投影变换的单目视觉空间定位方法,其特征在于:所述直椭圆锥底面的中心O0的计算过程如下:

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mi>c</mi> </msubsup> <mo>=</mo> <msqrt> <mrow> <msubsup> <mi>&alpha;</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>/</mo> <mrow> <mo>(</mo> <msubsup> <mi>x</mi> <mi>i</mi> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>y</mi> <mi>i</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </msqrt> <mo>&times;</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>&prime;</mo> </msup> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mrow> <mi>c</mi> <mi>i</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mrow> <mi>c</mi> <mi>i</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>z</mi> <mrow> <mi>c</mi> <mi>i</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>&prime;</mo> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>X</mi> <msub> <mi>O</mi> <mn>1</mn> </msub> </msub> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msubsup> <mi>X</mi> <mi>i</mi> <mi>c</mi> </msubsup> </mrow> <mi>n</mi> </mfrac> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> </mtd> <mtd> <msub> <mover> <mi>y</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> </mtd> <mtd> <msub> <mover> <mi>z</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>&prime;</mo> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

6.根据权利要求2所述的基于圆锥投影变换的单目视觉空间定位方法,其特征在于:所述圆周点群坐标(x'ci,y'ci,z'ci)的求取计算步骤如下所示:

<mrow> <mtable> <mtr> <mtd> <mrow> <mi>&alpha;</mi> <mo>=</mo> <mi>a</mi> <mi> </mi> <mi>t</mi> <mi>a</mi> <mi>n</mi> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mover> <mi>y</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> <mo>,</mo> <msub> <mover> <mi>z</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>&beta;</mi> <mo>=</mo> <mi>a</mi> <mi> </mi> <mi>t</mi> <mi>a</mi> <mi>n</mi> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> <mo>,</mo> <msub> <mover> <mi>y</mi> <mo>&OverBar;</mo> </mover> <mi>c</mi> </msub> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&alpha;</mi> <mo>+</mo> <mover> <msub> <mi>z</mi> <mi>c</mi> </msub> <mo>&OverBar;</mo> </mover> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mtable> <mtr> <mtd> <mrow> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&alpha;</mi> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&alpha;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&alpha;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&alpha;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> <mtd> <mrow> <msub> <mi>R</mi> <mn>2</mn> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&beta;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&beta;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

R=R2R1 (10)

<mrow> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mi>c</mi> </msub> <mo>=</mo> <mi>R</mi> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>&prime;</mo> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>X</mi> <mi>c</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mfrac> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mi>c</mi> </msub> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>c</mi> <mn>3</mn> </mrow> </msub> </mfrac> <msub> <mi>&chi;</mi> <mn>0</mn> </msub> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msubsup> <mi>x</mi> <mrow> <mi>c</mi> <mi>i</mi> </mrow> <mo>&prime;</mo> </msubsup> </mtd> <mtd> <msubsup> <mi>y</mi> <mrow> <mi>c</mi> <mi>i</mi> </mrow> <mo>&prime;</mo> </msubsup> </mtd> <mtd> <msubsup> <mi>z</mi> <mrow> <mi>c</mi> <mi>i</mi> </mrow> <mo>&prime;</mo> </msubsup> </mtd> </mtr> </mtable> </mfenced> <mo>&prime;</mo> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>

利用点Xc'拟合椭圆可得:

<mrow> <mfrac> <msup> <mi>&mu;</mi> <mn>2</mn> </msup> <msup> <mi>&sigma;</mi> <mn>2</mn> </msup> </mfrac> <mo>+</mo> <mfrac> <msup> <mi>&delta;</mi> <mn>2</mn> </msup> <msup> <mi>&tau;</mi> <mn>2</mn> </msup> </mfrac> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1