发明名称 一种基于双目视觉的单层皮革涂胶控制方法
摘要 一种基于双目视觉的单层皮革涂胶控制方法,该方法采用双目相机和三轴涂胶机械臂,包括以下步骤:1)对固定的双目相机进行立体标定;2)采集单层皮革双目图像并提取其边缘轮廓;3)依据步骤2)的边缘轮廓图像进行特征提取;4)根据步骤3)的特征点进行匹配;5)根据式重投影矩阵值还原步骤4)的特征点所对应涂胶平台系的真实坐标值;6)将特征点的真实坐标值输入到三轴涂胶机械臂的涂胶坐标队列中,从而控制机械臂完成涂胶过程。本发明提升工作效率、便于集成到流水线加工、精度高、避免危害工人健康。
申请公布号 CN102107179A 申请公布日期 2011.06.29
申请号 CN201010587709.8 申请日期 2010.12.14
申请人 浙江工业大学 发明人 赵燕伟;杨威;胡峰俊;陈建;吴茂敏;金亦挺;钟允辉;陈胜勇
分类号 B05D7/12(2006.01)I;B05C13/02(2006.01)I;B05C11/00(2006.01)I;G01B11/24(2006.01)I;G01B11/00(2006.01)I;G06T7/00(2006.01)I 主分类号 B05D7/12(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;王利强
主权项 1.一种基于双目视觉的单层皮革涂胶控制方法,其特征在于:该方法采用双目相机和三轴涂胶机械臂,所述单层皮革涂胶控制方法包括以下步骤:1)、对固定的双目相机进行立体标定;2)、采集单层皮革双目图像并提取其边缘轮廓;3)、依据步骤2)的边缘轮廓图像进行特征提取:单层皮革边缘轮廓由有限对二维坐标点(x<sub>i</sub>,y<sub>i</sub>)构成的,i=1,2,L,n表示该轮廓有n对坐标点组成;对于轮廓上任意坐标点对(x<sub>i</sub>,y<sub>i</sub>),其曲率计算公式如(1),计算所有坐标点对的曲率K<sub>i</sub>,i=1,2,L,n表示该轮廓有n对坐标;<maths num="0001"><![CDATA[<math><mrow><msub><mi>K</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><mfrac><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><msup><mrow><mo>(</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mrow><mo>(</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow></mrow><mroot><msup><mrow><mo>[</mo><msup><mrow><mo>(</mo><mfrac><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow><mn>2</mn></msup><mn>3</mn></mroot></mfrac><mo>,</mo></mrow></math>]]></maths>i=1,2,L,n(1)其中,(x<sub>i+1</sub>,y<sub>i+1</sub>)为该坐标点对(x<sub>i</sub>,y<sub>i</sub>)的下一个坐标点对,(x<sub>i-1</sub>,y<sub>i-1</sub>)为该坐标点对(x<sub>i</sub>,y<sub>i</sub>)的上一个坐标点对。特征提取按照以下步骤:(3.1)、以<img file="FDA0000038198380000012.GIF" wi="392" he="114" />计算轮廓局部曲率阈值,B为比例系数,选在[1,2]之间;(3.2)、满足K<sub>i</sub>≥T(i)的坐标点会选入候选特征点P<sub>i</sub>,i=1,2,L,s<n表示共有s个候选特征点;(3.3)、计算每个候选特征点的两条切线所形成的夹角θ<sub>i+1</sub>:以候选特征点的点P<sub>i</sub>为起点,P<sub>i+1</sub>为终点,起点与终点所在线段的中点P<sub>(i+(i+1))/2</sub>,根据公式(2)计算理论圆心<img file="FDA0000038198380000013.GIF" wi="90" he="56" />同理,以P<sub>i+1</sub>为起点,P<sub>i+2</sub>为终点,起点与终点所在线段的中点P<sub>((i+1)+(i+2))/2</sub>,通过公式(2)得其理论圆心<img file="FDA0000038198380000021.GIF" wi="93" he="56" /><maths num="0002"><![CDATA[<math><mrow><msubsup><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>C</mi></msubsup><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac><mn>2</mn></msubsup><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><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></mrow><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mo>[</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>)</mo></mrow><mo>]</mo></mrow></mfrac><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msubsup><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>C</mi></msubsup><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac><mn>2</mn></msubsup><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><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></mrow><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mo>[</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>y</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mfrac><mrow><mi>i</mi><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></msub><mo>)</mo></mrow><mo>]</mo></mrow></mfrac></mrow></math>]]></maths>其中,(x<sub>i+1</sub>,y<sub>i+1</sub>)为P<sub>i+1</sub>坐标,<img file="FDA0000038198380000024.GIF" wi="175" he="63" />为<img file="FDA0000038198380000025.GIF" wi="61" he="56" />坐标,<img file="FDA0000038198380000026.GIF" wi="183" he="63" />为<img file="FDA0000038198380000027.GIF" wi="67" he="56" />坐标;然后以公式(3)计算P<sub>i+1</sub>和<img file="FDA0000038198380000028.GIF" wi="64" he="56" />连线与P<sub>i+1</sub>切线的夹角<img file="FDA0000038198380000029.GIF" wi="88" he="56" />及P<sub>i+1</sub>和<img file="FDA00000381983800000210.GIF" wi="68" he="55" />连线与P<sub>i+1</sub>切线的夹角<img file="FDA00000381983800000211.GIF" wi="87" he="56" /><maths num="0004"><![CDATA[<math><mrow><msubsup><mi>&tau;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>L</mi></msubsup><mo>=</mo><mi>a</mi><mi>tan</mi><mfrac><mrow><mo>(</mo><msubsup><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>C</mi></msubsup><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>C</mi></msubsup><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mfrac></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msubsup><mi>&tau;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>R</mi></msubsup><mo>=</mo><mi>a</mi><mi>tan</mi><mfrac><mrow><mo>(</mo><msubsup><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>2</mn></mrow><mi>C</mi></msubsup><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>2</mn></mrow><mi>C</mi></msubsup><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths><img file="FDA00000381983800000214.GIF" wi="660" he="56" />其中,θ<sub>i+1</sub>即为两个夹角<img file="FDA00000381983800000215.GIF" wi="59" he="56" />与<img file="FDA00000381983800000216.GIF" wi="59" he="55" />之和;(3.4)、根据θ<sub>i+1</sub>值判断是否是所需特征点并标记特征点之间的线段形状:如果θ<sub>i+1</sub>大于170度则认为该特征点所处的局部轮廓曲率变化不明显,不是所需的特征点,特征点之间的线段形状为Straight;否则,该特征点是所需特征点,特征点之间的线段形状为Arc;4)、根据步骤3)的特征点进行匹配,特征匹配按照以下步骤:(4.1)、以双目图像中的左图的特征点<img file="FDA00000381983800000217.GIF" wi="53" he="56" />为参照,i=0,1,2,L,m,其中,m<s,m表示左图有m个特征点;(4.2)、计算与双目图像中的右图对准行周围2个像素内的所有特征点<img file="FDA00000381983800000218.GIF" wi="54" he="56" />的欧式距离,i=0,1,2,L,k,其中,k<m,k表示右图m个特征点内有k个特征点在2个像素范围内;(4.3)、取欧氏距离最小的<img file="FDA0000038198380000031.GIF" wi="54" he="56" />作为与之匹配的特征点,从而确定单层皮革边缘轮廓左右图的特征点一一对应关系;5)、根据重投影矩阵还原步骤4)的特征点所对应涂胶平台系的真实坐标值;6)、将特征点的真实坐标值输入到三轴涂胶机械臂的涂胶坐标队列中,从而控制机械臂完成涂胶过程。
地址 310014 浙江省杭州市下城区朝晖六区