主权项 |
一种适用于空间绳系机器人的立体视觉快速图像拼接方法,其特征在于:步骤如下:步骤1:采用左右两台相机对目标图像同步进行采集后得到两幅图像I<sub>l</sub>(x',y')和I<sub>r</sub>(x,y),以其中一幅图像为参考图像I<sub>l</sub>(x',y'),另一幅图像为待拼接图像I<sub>r</sub>(x,y);所述两台相机为光轴平行放置;所述两幅图像具有重叠;步骤2:对两幅图像I<sub>l</sub>(x',y')和I<sub>r</sub>(x,y)分别进行中值滤波和维纳滤波;步骤3:对滤波后的图像I<sub>l</sub>(x',y')和I<sub>r</sub>(x,y)利用ORB算法分别进行特征提取,分别得到I<sub>l</sub>(x',y')I<sub>r</sub>(x,y)上的特征点集{P<sub>lo1</sub>,P<sub>lo2</sub>,…,P<sub>lom</sub>}和{P<sub>ro1</sub>,P<sub>ro2</sub>,…,P<sub>ron</sub>};采用Hamming距离作为距离的描述对特征点集{P<sub>lo1</sub>,P<sub>lo2</sub>,…,P<sub>lom</sub>}和{P<sub>ro1</sub>,P<sub>ro2</sub>,…,P<sub>ron</sub>}进行匹配,得到粗匹配后的特征点集{P<sub>lm1</sub>,P<sub>lm2</sub>,…,P<sub>lmc</sub>}和{P<sub>rm1</sub>,P<sub>rm2</sub>,…,P<sub>rmc</sub>};分别计算各匹配点之间的Euclidean距离d<sub>lr1</sub>,d<sub>lr2</sub>,…,d<sub>lrc</sub>,得到其中的最小距离d<sub>min</sub>;对特征点集{P<sub>lm1</sub>,P<sub>lm2</sub>,…,P<sub>lmc</sub>}和{P<sub>rm1</sub>,P<sub>rm2</sub>,…,P<sub>rmc</sub>}中每个特征点对进行如下判断,如果d<sub>lri</sub><2×d<sub>min</sub>,该特征点对视为正确匹配,则保留该特征点对P<sub>lmi</sub>和P<sub>rmi</sub>;如果d<sub>lri</sub>≥2×d<sub>min</sub>,该特征点对视为错误匹配,则剔除该特征点对P<sub>lmi</sub>和P<sub>rmi</sub>;得到正确匹配的特征点集{P<sub>lfm1</sub>,P<sub>lfm2</sub>,…,P<sub>lfmj</sub>}和{P<sub>rfm1</sub>,P<sub>rfm2</sub>,…,P<sub>rfmj</sub>};步骤4:以矩阵乘法表示2D图像之间的变换关系,其上各点之间的映射关系如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open = "(" close = ")"><mtable><mtr><mtd><msup><mi>x</mi><mo>′</mo></msup></mtd></mtr><mtr><mtd><msup><mi>y</mi><mo>′</mo></msup></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "(" close = ")"><mtable><mtr><mtd><msub><mi>m</mi><mn>0</mn></msub></mtd><mtd><msub><mi>m</mi><mn>1</mn></msub></mtd><mtd><msub><mi>m</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>m</mi><mn>3</mn></msub></mtd><mtd><msub><mi>m</mi><mn>4</mn></msub></mtd><mtd><msub><mi>m</mi><mn>5</mn></msub></mtd></mtr><mtr><mtd><msub><mi>m</mi><mn>6</mn></msub></mtd><mtd><msub><mi>m</mi><mn>7</mn></msub></mtd><mtd><msub><mi>m</mi><mn>8</mn></msub></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><mi>M</mi><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></mrow>]]></math><img file="FDA0000973378750000011.GIF" wi="606" he="183" /></maths>M记为空间变换矩阵;利用步骤3得到的正确匹配的特征点集{P<sub>lfm1</sub>,P<sub>lfm2</sub>,…,P<sub>lfmj</sub>}和{P<sub>rfm1</sub>,P<sub>rfm2</sub>,…,P<sub>rfmj</sub>},根据随机抽样一致性方法RANSAC方法计算得到从待拼接图像I<sub>r</sub>(x,y)到参考图像I<sub>l</sub>(x’,y’)变换的空间变换矩阵M中的各参量值;根据空间变换矩阵M,将待拼接图像I<sub>r</sub>(x,y)投影变换到参考图像I<sub>l</sub>(x',y')坐标系中,得到I<sub>r</sub>(x,y)';步骤5:采用加权平均法将I<sub>l</sub>(x',y')和I<sub>r</sub>(x,y)'融合成一副图像I(x<sub>w</sub>,y<sub>w</sub>);所述加权平均法的步骤如下:对I<sub>l</sub>(x',y')和I<sub>r</sub>(x,y)'上的各像素点由下述公式处理:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>I</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>I</mi><mi>l</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo><mo>∈</mo><msub><mi>I</mi><mi>l</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>a</mi><mn>1</mn></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo></mrow><msub><mi>I</mi><mi>l</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>a</mi><mn>2</mn></msub><msub><mi>I</mi><mi>r</mi></msub><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo></mrow><mo>′</mo></msup></mrow></mtd><mtd><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo><mo>∈</mo><msub><mi>I</mi><mi>l</mi></msub><mo>∩</mo><msup><msub><mi>I</mi><mi>r</mi></msub><mo>′</mo></msup></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>I</mi><mi>r</mi></msub><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo></mrow><mo>′</mo></msup></mrow></mtd><mtd><mrow><mo>(</mo><msub><mi>x</mi><mi>w</mi></msub><mo>,</mo><msub><mi>y</mi><mi>w</mi></msub><mo>)</mo><mo>∈</mo><msup><msub><mi>I</mi><mi>r</mi></msub><mo>′</mo></msup></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000973378750000021.GIF" wi="1158" he="182" /></maths>其中a<sub>1</sub>和a<sub>2</sub>分别代表两幅原始图像重叠区域中像素所应用的权值,满足a<sub>1</sub>+a<sub>2</sub>=1,0<a<sub>1</sub><1,0<a<sub>2</sub><1;所述<img file="FDA0000973378750000022.GIF" wi="331" he="119" />a<sub>2</sub>=1‑a<sub>1</sub>;其中:x<sub>max</sub>和x<sub>min</sub>分别表示I<sub>l</sub>(x',y')和I<sub>r</sub>(x,y)'重叠区域的x轴最大和最小值;当a<sub>1</sub>由1慢慢变化到0时,重叠区域从第一幅图像I<sub>l</sub>(x',y')慢慢过渡到第二幅图像I<sub>r</sub>(x,y)',实现了图像间的平滑过渡,消除了拼接缝效应,调整图像尺寸大小后形成完整的拼接图像I(x<sub>w</sub>,y<sub>w</sub>)。 |