发明名称 基于时空约束的双目视觉三维形貌测量方法
摘要 本发明基于时空约束的双目视觉三维形貌测量方法属于计算机视觉测量技术领域,涉及一种基于时空约束的双目视觉三维形貌测量方法。该方法针对大型复合材料构件表面形貌,采用激光扫描双目视觉测量系统进行图像采集和图像处理;提取边缘信息,建立约束条件。结合时间维度信息预测光条位置,建立适度的感兴趣提取区域,快速高精度的提取对应左、右光条图像的激光光条中心;对在边界约束内的光条中心信息进行保留,对在约束外的光条中心信息予以剔除。将保留的光条中心信息和边界信息进行匹配和重建,最终还原完整的三维形貌信息。本发明提高了测量效率,测量精度高,检测信息完整,运算速度快,可满足大型零部件表面的三维形貌测量。
申请公布号 CN104930985A 申请公布日期 2015.09.23
申请号 CN201510330853.6 申请日期 2015.06.16
申请人 大连理工大学 发明人 刘巍;高鹏;张洋;李晓东;杨帆;贾振元;高航
分类号 G01B11/25(2006.01)I 主分类号 G01B11/25(2006.01)I
代理机构 大连理工大学专利中心 21200 代理人 关慧贞
主权项 一种基于时空约束的双目视觉三维形貌测量方法,其特征是,该方法针对大型复合材料构件表面形貌,采用基于激光结构光扫描的双目视觉测量系统进行图像采集和图像处理;并对轮廓边界进行边缘提取,建立基于边界信息的光条提取约束条件;结合时间维度信息预测光条位置,建立适度的感兴趣提取区域,快速高精度的提取对应左、右光条图像的激光光条中心;对在边界约束内的光条中心信息进行保留,对在约束外的光条中心信息予以剔除;将保留的光条中心信息和边界信息进行匹配和重建,最终还原完整的三维形貌信息;方法具体步骤如下:第一步对被测物体表面形貌进行图像采集和图像处理,提取轮廓边缘,建立时空约束条件1)轮廓边缘提取方法对于双目视觉测量系统采集的被测物体表面形貌的图像,首先采用Sobel算子进行边缘检测,达到像素级的边缘提取精度;对应图像二维函数f(x,y)的一阶导数表达式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><msup><mfenced open = '[' close = ']'><mtable><mtr><mtd><msub><mi>G</mi><mi>x</mi></msub></mtd><mtd><msub><mi>G</mi><mi>y</mi></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>=</mo><msup><mfenced open = '[' close = ']'><mtable><mtr><mtd><mrow><mo>&part;</mo><mi>f</mi><mo>/</mo><mo>&part;</mo><mi>x</mi></mrow></mtd><mtd><mrow><mo>&part;</mo><mi>f</mi><mo>/</mo><mo>&part;</mo><mi>y</mi></mrow></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000738781750000012.GIF" wi="1427" he="115" /></maths>其中,G(x,y)为图像二维函数f(x,y)的梯度,G<sub>x</sub>和G<sub>y</sub>分别是对x和y的偏导数;Sobel算子将方向差分运算与局部平均相结合,利用像素点(x,y)附近的3×3的邻域来计算梯度值,其两个卷积模板为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>G</mi><mi>x</mi></msub><mo>=</mo><mfenced open = '[' close = ']'><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>2</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo><msub><mi>G</mi><mi>y</mi></msub><mo>=</mo><mfenced open = '[' close = ']'><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>2</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><img file="FDA0000738781750000011.GIF" wi="1415" he="249" /></maths>采用∞范数衡量梯度的幅值|G(x,y)|=max(|G<sub>x</sub>|,|G<sub>y</sub>|),即将两个模板算子的最大值作为该点的输出位;然后计算每一点的梯度值,将梯度最大处定义为边界;2)基于边界信息建立光条提取约束条件根据上述提取到的轮廓边缘点,构成封闭的边界信息,将边界及边界内的二维图像区域定义为边界约束函数R(x,y),若在边界约束内则赋值为1,在边界约束外赋值为0,即<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><mn>1</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>w</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>i</mi><mi>n</mi><mtext> </mtext><mi>b</mi><mi>o</mi><mi>u</mi><mi>n</mi><mi>d</mi><mi>a</mi><mi>r</mi><mi>y</mi></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>b</mi><mi>e</mi><mi>y</mi><mi>o</mi><mi>n</mi><mi>d</mi><mtext> </mtext><mi>b</mi><mi>o</mi><mi>u</mi><mi>n</mi><mi>d</mi><mi>a</mi><mi>r</mi><mi>y</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000738781750000021.GIF" wi="761" he="158" /></maths>粗提取光条中心时,假设得到的光条中心圆整后为(i,j);若R(i,j)=1,则保留其光条中心信息,进而进行光条中心的精提取,若R(i,j)=0,则去除该部分的光条信息;最后得到的将仅剩有用精确地光条中心信息;3)基于时间维度信息的约束根据激光器的扫描速度和摄像机的采集帧数,初步预测光条的实时位置,建立光条实时位置预测模型,<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>&phi;</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mi>&omega;</mi><mo>&CenterDot;</mo><mi>i</mi></mrow><mi>f</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000738781750000022.GIF" wi="301" he="157" /></maths>Δ<sub>i</sub>=dtanα‑dtan(α‑φ<sub>i</sub>)  (5)其中,ω为激光器的扫描速度,即转角速度,f为摄像机的采集帧数,φ<sub>i</sub>为采集到的第i张光条图像的转角位置,d为激光器到测量对象的垂直距离,α为激光器到测量对象的垂直方向与初始扫描位置之间的夹角,Δ<sub>i</sub>为第i张光条图像的实时位置B与初始光条扫描位置A的距离;根据距离Δ<sub>i</sub>向左右分别扩展一个光条宽度定义为光条图像的感兴趣区域从而建立光条实时位置约束;第二步光条中心提取方法1)有效光条信息获取根据上述确定的光条图像感兴趣区域,逐行搜索光条的左右边界;利用几何中心法求得每行的光条中心点,<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo><mo>=</mo><mo>(</mo><mfrac><mrow><msub><mi>xl</mi><mi>i</mi></msub><mo>+</mo><msub><mi>xr</mi><mi>i</mi></msub></mrow><mn>2</mn></mfrac><mo>,</mo><mfrac><mrow><msub><mi>yl</mi><mi>i</mi></msub><mo>+</mo><msub><mi>yr</mi><mi>i</mi></msub></mrow><mn>2</mn></mfrac><mo>)</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000738781750000031.GIF" wi="1332" he="149" /></maths>其中,(xl<sub>i</sub>,yl<sub>i</sub>)、(xr<sub>i</sub>,yr<sub>i</sub>)分别代表第i行左、右边界点坐标;对几何中心坐标(x<sub>i</sub>,y<sub>i</sub>)取整得到<img file="FDA0000738781750000032.GIF" wi="182" he="85" />然后进行边界约束条件检验,即计算<img file="FDA0000738781750000033.GIF" wi="216" he="84" />若<img file="FDA0000738781750000034.GIF" wi="262" he="86" />则剔除该光条中心点,若<img file="FDA0000738781750000035.GIF" wi="256" he="86" />则予以保留进行下一步光条中心精提取;2)精提取光条中心信息以上述得到的光条几何中心<img file="FDA0000738781750000036.GIF" wi="166" he="89" />为初始点左右搜索光条边界位置,在左右边界的光条宽度上进行灰度重心计算,得到精提取的光条中心;假设左右边界的列区间为(p,q),则光条灰度重心为<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mi>p</mi></mrow><mi>q</mi></munderover><mi>j</mi><mo>&CenterDot;</mo><msub><mi>I</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><mrow><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mi>p</mi></mrow><mi>q</mi></munderover><msub><mi>I</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000738781750000037.GIF" wi="443" he="291" /></maths>其中,(u<sub>i</sub>,v<sub>i</sub>)为第i行光条灰度重心坐标,I<sub>ij</sub>为第i行第j列灰度值;第三步三维形貌还原方法根据上述第一、二步得到的结果,利用双目视觉系统左、右摄像机极线约束来完成对应左、右图像边界点和光条中心的匹配;假设左图像边界点或光条中心点x<sub>i</sub>'与右图像边界点或光条中心点x<sub>i′</sub>′相匹配,根据极线约束条件:x<sub>i</sub><sup>'T</sup>Fx<sub>i′</sub>′=0  (8)其中,x<sub>i</sub>'=(u<sub>i</sub>,v<sub>i</sub>)为左摄像机采集的图像边界点或光条中心点的像面坐标;x<sub>i′</sub>′=(u<sub>i</sub>',v<sub>i</sub>')为与x<sub>i</sub>'相匹配由右摄像机所采集图像边界点或光条中心点的像面坐标;F为两摄像机之间的基本矩阵;对上述左、右图像中所有匹配上的边界点和光条中心点进行三维重建,得到边界点和光条中心点在世界坐标系下的三维坐标值,重建公式如下:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msup><msub><mi>zX</mi><mi>i</mi></msub><mo>&prime;</mo></msup></mrow><msub><mi>f</mi><mn>1</mn></msub></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>y</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msup><msub><mi>zY</mi><mi>i</mi></msub><mo>&prime;</mo></msup></mrow><msub><mi>f</mi><mn>1</mn></msub></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>z</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mn>1</mn></msub><mrow><mo>(</mo><msub><mi>f</mi><mn>2</mn></msub><msub><mi>t</mi><mi>y</mi></msub><mo>-</mo><msup><msub><mi>Y</mi><msup><mi>i</mi><mo>&prime;</mo></msup></msub><mo>&prime;</mo></msup><msub><mi>t</mi><mi>z</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>Y</mi><mrow><mo>(</mo><msub><mi>r</mi><mn>7</mn></msub><msup><msub><mi>X</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>+</mo><msub><mi>r</mi><mn>8</mn></msub><msup><msub><mi>Y</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>+</mo><msub><mi>r</mi><mn>9</mn></msub><msub><mi>f</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>f</mi><mn>2</mn></msub><mrow><mo>(</mo><msub><mi>r</mi><mn>4</mn></msub><msup><msub><mi>X</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>+</mo><msub><mi>r</mi><mn>5</mn></msub><msup><msub><mi>Y</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>+</mo><msub><mi>r</mi><mn>6</mn></msub><msub><mi>f</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mfrac></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000738781750000041.GIF" wi="1069" he="481" /></maths>其中,假设x<sub>i</sub>'=(X<sub>i</sub>',Y<sub>i</sub>'),X<sub>i</sub>',Y<sub>i</sub>'分别为左摄像机采集的图像边界点或光条中心点x<sub>i</sub>'在像面坐标系下的横、纵坐标;x<sub>i′</sub>′=(X<sub>i′</sub>′,Y<sub>i′</sub>′),X<sub>i′</sub>′,Y<sub>i′</sub>′分别为右摄像机采集的图像光斑中心点x<sub>i′</sub>′在像面坐标系下的横、纵坐标;f<sub>1</sub>、f<sub>2</sub>分别为左、右摄像机标定得到的焦距;<maths num="0008" id="cmaths0008"><math><![CDATA[<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></mtr><mtr><mtd><msub><mi>r</mi><mn>4</mn></msub></mtd><mtd><msub><mi>r</mi><mn>5</mn></msub></mtd><mtd><msub><mi>r</mi><mn>6</mn></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mn>7</mn></msub></mtd><mtd><msub><mi>r</mi><mn>8</mn></msub></mtd><mtd><msub><mi>r</mi><mn>9</mn></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000738781750000042.GIF" wi="320" he="272" /></maths>是右摄像机相对于左摄像机的旋转矩阵,[t<sub>x</sub> t<sub>y</sub> t<sub>z</sub>]是右摄像机相对于左摄像机的平移矩阵,由标定实验得到;则(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>)为重建出来的对应点的三维坐标。
地址 116024 辽宁省大连市甘井子区凌工路2号