发明名称 基于极线校正的亚像素级相位立体匹配方法
摘要 本发明属于机器视觉领域,涉及一种基于极线校正的亚像素级相位立体匹配方法,主要针对双目结构投影栅相位法三维测量系统中立体匹配的效率与精度问题,方法通过外极线校正算法将双目立体视觉几何结构校正为平视双目标准几何结构,使匹配点在左右相机上成的像位于同一水平线上,采用双线性内插法获得校正后新相位图的稠密相位值,并提出一种基于相位区域的立体匹配算法,获得初始匹配点,采用基于最小二乘法的曲面拟合将初始匹配点附近3×3邻域内的相似度量拟合为一个二次曲面,然后求解得到该曲面的局部最小值,得到与待匹配点相位相同的右摄像机匹配点坐标,该方法能够快速、准确地实现稠密的立体匹配,满足工业应用的需求。
申请公布号 CN104331897B 申请公布日期 2017.03.29
申请号 CN201410675250.5 申请日期 2014.11.21
申请人 天津工业大学 发明人 耿磊;郎建业;肖志涛;张芳;吴骏;李月龙;刘洋;叶琨;苏静静
分类号 G06T7/80(2017.01)I;G06T7/593(2017.01)I 主分类号 G06T7/80(2017.01)I
代理机构 天津中环专利商标代理有限公司 12105 代理人 莫琪
主权项 一种基于极线校正的亚像素级相位立体匹配方法,包括下列步骤:(1)标定摄像机内外参数;(2)极线校正得到具有标准极线几何结构的立体像对;(3)相位插值得到极线校正后的相位图;(4)亚像素级相位立体匹配得到立体像对的对应匹配点,进而获取视差图;步骤(1)中,建立面阵摄像机的非线性成像几何模型,基于两步法思想对摄像机进行标定,得到内部参数:摄像机的光学和几何参数,以及外部参数:摄像机坐标系和世界坐标系之间的位姿关系;步骤(2)中,为了减小匹配的复杂度,提高匹配的速度和精度,进行极线校正,极线校正就是经过一系列变换把双目立体视觉几何结构校正为平视双目标准几何结构,即左右摄像机的成像平面在同一个平面上且是垂直对齐的;校正后图像对成像坐标系只有平移,所以外极线都平行,任何一对匹配特征点的列坐标差值即为视差,表示物体的深度信息;在平视双目标准几何结构下,重构空间点深度信息较简单;步骤(3)中,经过极线校正后相位图上点的坐标在原始图像上的对应坐标点一般为像素坐标,可以通过双线性内插值法计算出极线校正后的相位图;假设变换后像素的中心位于一个正方形中,此正方形的四个顶点就是与此像素相邻的四个像素的中心点,若极线校正后相位图上任一点P的待求相位为<img file="FDA0001202550870000013.GIF" wi="82" he="51" />其对应的极线校正前原始相位图上一点为P<sub>0</sub>(x<sub>0</sub>,y<sub>0</sub>),取P<sub>0</sub>临近的4个像素点:P<sub>00</sub>(x<sub>00</sub>,y<sub>00</sub>),P<sub>01</sub>(x<sub>01</sub>,y<sub>01</sub>),P<sub>10</sub>(x<sub>10</sub>,y<sub>10</sub>),P<sub>11</sub>(x<sub>11</sub>,y<sub>11</sub>);对应的相位值分别为:<img file="FDA0001202550870000011.GIF" wi="1133" he="71" />所以用相应的权重配合这四个灰度值进行插值运算,权重值由P<sub>0</sub>与周围4点的距离确定;首先,分别计算转换后的坐标到四个相邻像素中心点的垂直方向和水平方向距离,这些计算出的距离值在0到1之间;然后,根据距离值计算出不同灰度值所占权重后利用双线性内插法获得新相位图上点的相位值:<img file="FDA0001202550870000012.GIF" wi="1598" he="87" />其中,a,b为到输入图像中邻近的像素中心的距离;其特征在于,步骤(4)中,在极线校正后的新相位图像对中,左相位图任一待匹配点的对应匹配点的搜索可简化为在外极线上寻找最相关点;相关点的搜索在极线约束、唯一性约束、相位单调约束、顺序一致性约束的基础上,通过计算待匹配点n邻域相位模板与右相位图像间的相似度来实现:首先根据左摄像机相位图中待匹配点为中心的n邻域相位模板,在右摄像机相位图的中心点横坐标相同的直线上搜索与左图该相位模板相似度最高的区域作为匹配区域,则该区域的中心点为左摄像机相位图中待匹配点的初始匹配点,模板由一幅图像t(r,c)以及相应的待匹配点邻域T指定;然后基于模板范围内灰度值计算一个标量值作为相似度量,相似度量值越小,模板与图像之间的相关性越大;相似度量方法采用计算模板与图像之间差值的绝对值的总和(SAD),等式为:<maths num="0001"><math><![CDATA[<mrow><mi>s</mi><mi>a</mi><mi>d</mi><mrow><mo>(</mo><mi>r</mi><mo>,</mo><mi>c</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munder><mo>&Sigma;</mo><mrow><mo>(</mo><mi>u</mi><mo>,</mo><mi>v</mi><mo>)</mo><mo>&Element;</mo><mi>T</mi></mrow></munder><mo>|</mo><mi>t</mi><mrow><mo>(</mo><mi>u</mi><mo>,</mo><mi>v</mi><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>r</mi><mo>+</mo><mi>u</mi><mo>,</mo><mi>c</mi><mo>+</mo><mi>v</mi><mo>)</mo></mrow><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001202550870000021.GIF" wi="1550" he="127" /></maths>在式(2)中,n是模板连通区域中点的数量,即n=|T|,f(r+u,c+v)是模板连通区域移到图像当前位置时连通区域中的灰度值;在上述匹配点搜索过程中,必须对右摄像机相位图横坐标相同的外极线上的平移位置依次计算出相似度量值,为了快速找到匹配点,设置一个自适应阈值t<sub>s</sub>作为相似度量值上限,对是否继续计算相似度量值进行判定,减少部分平移位置相似度量值的计算,阈值判定公式如下:<maths num="0002"><math><![CDATA[<mrow><mi>s</mi><mi>a</mi><mi>d</mi><mrow><mo>(</mo><mi>r</mi><mo>,</mo><mi>c</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mo>|</mo><mi>t</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>r</mi><mo>+</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><mi>c</mi><mo>+</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>&le;</mo><msub><mi>t</mi><mi>s</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001202550870000022.GIF" wi="1486" he="125" /></maths>由于相似度量值是求邻域内各点差值绝对值和,假设已经计算得到等式(3)中前j项的总和sad<sub>j</sub>'(r,c),得到等式:<maths num="0003"><math><![CDATA[<mrow><msup><mi>sad</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>r</mi><mo>,</mo><mi>c</mi><mo>)</mo></mrow><mo>=</mo><msup><msub><mi>sad</mi><mi>j</mi></msub><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>r</mi><mo>,</mo><mi>c</mi><mo>)</mo></mrow><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></munderover><mo>|</mo><mi>t</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>r</mi><mo>+</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><mi>c</mi><mo>+</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>&le;</mo><msub><mi>nt</mi><mi>s</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001202550870000023.GIF" wi="1741" he="127" /></maths>因此在sad<sub>j</sub>'(r,c)≥nt<sub>s</sub>的情况下停止计算,计算下一个平移位置的相似度量值;在sad<sub>j</sub>'(r,c)<nt<sub>s</sub>的情况下,选择t<sub>s</sub>作为当前阈值,自适应阈值t<sub>s</sub>的使用减少了相似度量值的计算量;为了得到亚像素精度级的匹配点位置,采用基于最小二乘法的二次曲面拟合方法,将初始匹配点附近3×3邻域内的相似度量值拟合为一个二次曲面,拟合曲面的峰值坐标即为最优匹配位置坐标;然后,根据邻近点相位进行线性插值,得到与待匹配点相位相同的右摄像机匹配点坐标,完成相位立体匹配;选择如下拟合函数:F(G,X)=ax<sup>2</sup>+bxy+cy<sup>2</sup>+dx+ey+f=0   (5)其中,G=[a,b,c,d,e,f]<sup>T</sup>,X=[x<sup>2</sup>,xy,y<sup>2</sup>,x,y,1]<sup>T</sup>,F(G,X<sub>i</sub>)为点(x<sub>i</sub>,y<sub>i</sub>)到曲线F(G,X)=0的“代数距离”,采用最小二乘法求解方程,即可解出拟合函数的系数;为此,在式(5)中分别对x,y求偏导,并使偏导为0,即:<maths num="0004"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mfrac><mrow><mo>&part;</mo><mi>z</mi></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mo>=</mo><mn>2</mn><mi>a</mi><mi>x</mi><mo>+</mo><mi>c</mi><mo>+</mo><mi>d</mi><mo>=</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mrow><mo>&part;</mo><mi>z</mi></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mo>=</mo><mn>2</mn><mi>b</mi><mi>y</mi><mo>+</mo><mi>c</mi><mi>x</mi><mo>+</mo><mi>e</mi><mo>=</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001202550870000024.GIF" wi="1374" he="254" /></maths>由式(6)可解得:<maths num="0005"><math><![CDATA[<mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mn>2</mn><mi>d</mi><mi>b</mi><mo>-</mo><mi>c</mi><mi>e</mi></mrow><mrow><msup><mi>c</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>b</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001202550870000025.GIF" wi="269" he="111" /></maths><maths num="0006"><math><![CDATA[<mrow><mi>y</mi><mo>=</mo><mfrac><mrow><mn>2</mn><mi>a</mi><mi>e</mi><mo>-</mo><mi>a</mi><mi>c</mi></mrow><mrow><msup><mi>c</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>b</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001202550870000026.GIF" wi="270" he="115" /></maths>式中的x,y即为所求的平移量且具有亚像级的分辨率。
地址 300387 天津市西青区滨水西道399号天津工业大学电子信息工程学院