发明名称 饮料瓶口视觉定位方法
摘要 本发明公开了一种饮料瓶口视觉定位方法,其步骤为:(1)图像采集以及预处理;(2)对预处理后的瓶口图像进行粗、细两次扫描以及采用重心法得到瓶口圆心参考坐标点;(3)通过瓶口圆心参考坐标点找到瓶口图像内边缘点,然后定位参考瓶口的圆心坐标,建立圆心坐标集合的二维直方图H<SUB>0</SUB>(X<SUB>r</SUB>,Y<SUB>r</SUB>),最后采用滑动窗口定位圆心计算得到瓶口圆心的横坐标X<SUB>0</SUB>和纵坐标Y<SUB>0</SUB>。本发明是一种能在高速自动化饮料灌装生产线上实现自动跟踪、快速精准定位,并能与空瓶检测设备、高速灌装设备、自动封盖与包装设备配套使用,可极大地提高饮料生产线上的自动灌装、检测分拣与包装设备自动化水平的饮料瓶口视觉定位方法。
申请公布号 CN101144707A 申请公布日期 2008.03.19
申请号 CN200710035767.8 申请日期 2007.09.18
申请人 湖南大学 发明人 王耀南;周博文;段峰;鲁娟;余洪山;张辉;刘良江
分类号 G01B11/03(2006.01);B67C7/00(2006.01) 主分类号 G01B11/03(2006.01)
代理机构 湖南兆弘专利事务所 代理人 赵洪
主权项 1.一种饮料瓶口视觉定位方法,其特征在于步骤为:(1)、图像采集以及预处理:通过高速摄像机和图像采集卡采集瓶口图像,然后把图像送入工控机进行预处理,即对采集到的瓶口图像进行直方图均衡化处理,通过低通滤波,以去除各亮、暗噪声目标,得到清晰的瓶口图像,并使之与背景分离开来;(2)、确定重心:先对步骤(1)中预处理后的瓶口图像进行粗略扫描,采用重心法获取粗略的瓶口圆心坐标点集合(X<sub>01</sub>,Y<sub>01</sub>),再在粗略的瓶口圆心坐标点集合(X<sub>01</sub>,Y<sub>01</sub>)区域进行细扫描,再次采用重心法得到精度更高的瓶口圆心参考坐标点(X<sub>02</sub>,Y<sub>02</sub>);(3)、定位圆心,通过步骤(2)确定重心后,分以下三步定位瓶口圆心:①、得到瓶口图像内边缘点:以上述步骤(2)中得到的瓶口圆心参考坐标点(x<sub>02</sub>,Y<sub>02</sub>)为圆心,进行360度沿半径方向的径向扫描,搜索瓶口内边缘点,每隔α度进行一次扫描,共进行360/α次扫描,得到360/α个内边缘点;②、定位参考瓶口的圆心坐标:在搜索到的内边缘点中,任意选取一个点A,沿逆时钟或者顺时钟方向寻找内边缘点集合中的第二个边缘点B,每隔β度寻找一个点,把找到的360/β个点确定一个圆,得到第二个圆心坐标;依次类推,重复上述方法,将得到<img file="A2007100357670002C1.GIF" wi="133" he="123" />个圆心坐标,组成一个圆心坐标集合,并建立圆心坐标集合的二维直方图H<sub>0</sub>(X<sub>r</sub>,Y<sub>r</sub>);根据搜索到的三个边缘点的坐标计算出一个参考瓶口的圆心坐标(X<sub>r</sub>,Y<sub>r</sub>),并在瓶口圆心的二维直方图上标记,即令H<sub>0</sub>(X<sub>r</sub>,Y<sub>r</sub>)=H<sub>0</sub>(X<sub>r</sub>,Y<sub>r</sub>)+1,<maths num="0001"><![CDATA[<math><mrow><mi>Xr</mi><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>y</mi><mn>3</mn></msub><mo>-</mo><msub><mi>y</mi><mn>2</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>y</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mn>3</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>3</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>y</mi><mn>2</mn><mn>2</mn></msubsup><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mo>[</mo><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>y</mi><mn>3</mn></msub><mo>-</mo><msub><mi>y</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>x</mi><mn>3</mn></msub><mo>-</mo><msub><mi>x</mi><mn>2</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>]</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>Yr</mi><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>x</mi><mn>3</mn></msub><mo>-</mo><msub><mi>x</mi><mn>2</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>y</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mn>3</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>3</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>y</mi><mn>2</mn><mn>2</mn></msubsup><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mo>[</mo><mrow><mo>(</mo><msub><mi>x</mi><mn>3</mn></msub><mo>-</mo><msub><mi>x</mi><mn>3</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>y</mi><mn>3</mn></msub><mo>-</mo><msub><mi>y</mi><mn>2</mn></msub><mo>)</mo><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>]</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中x<sub>1</sub>,y<sub>1</sub>,,x<sub>2</sub>,y<sub>2</sub>,,x<sub>3</sub>,y<sub>3</sub>分别为找到的三个瓶口内边缘点的横坐标和纵坐标;③、用滑动窗口定位圆心:利用3×3像素的滑动窗口在二维直方图上H<sub>0</sub>(X<sub>r</sub>,Y<sub>r</sub>)搜索,并通过式(14)计算,当滑动窗口内对应的H<sub>0</sub>(X<sub>r</sub>,Y<sub>r</sub>)总和S<sub>w</sub>最大时,采用加权平均法,最终使用式(15)(16)计算出瓶口圆心的横坐标X<sub>0</sub>和纵坐标Y<sub>0</sub>,<maths num="0003"><![CDATA[<math><mrow><msub><mi>S</mi><mi>w</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>Yr</mi><mo>=</mo><mi>Yw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Yw</mi><mo>+</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>Xr</mi><mo>=</mo><mi>Xw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Xw</mi><mo>+</mo><mn>1</mn></mrow></munderover><mi>Ho</mi><mrow><mo>(</mo><mrow><mi>Xr</mi><mo>,</mo><mi>Yr</mi></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><mi>Xo</mi><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>Yr</mi><mo>=</mo><mi>Yw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Yw</mi><mo>+</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>Xr</mi><mo>=</mo><mi>Xw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Xw</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo>[</mo><mi>Ho</mi><mrow><mo>(</mo><mi>Xr</mi><mo>,</mo><mi>Yr</mi><mo>)</mo></mrow><mi>Xr</mi><mo>]</mo></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><mi>Yr</mi><mo>=</mo><mi>Yw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Yw</mi><mo>+</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>Xr</mi><mo>=</mo><mi>Xw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Xw</mi><mo>+</mo><mn>1</mn></mrow></munderover><mi>Ho</mi><mrow><mo>(</mo><mi>Xr</mi><mo>,</mo><mi>Yr</mi><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>15</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><mi>Yo</mi><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>Yr</mi><mo>=</mo><mi>Yw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Yw</mi><mo>+</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>Xr</mi><mo>=</mo><mi>Xw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Xw</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo>[</mo><mi>Ho</mi><mrow><mo>(</mo><mi>Xr</mi><mo>,</mo><mi>Yr</mi><mo>)</mo></mrow><mi>Yr</mi><mo>]</mo></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><mi>Yr</mi><mo>=</mo><mi>Yw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Yw</mi><mo>+</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>Xr</mi><mo>=</mo><mi>Xw</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>Xw</mi><mo>+</mo><mn>1</mn></mrow></munderover><mi>Ho</mi><mrow><mo>(</mo><mi>Xr</mi><mo>,</mo><mi>Yr</mi><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中X<sub>w</sub>和Y<sub>w</sub>分别为滑动窗口中心对应的横坐标和纵坐标。
地址 410082湖南省长沙市河西岳麓山湖南大学电气与信息工程学院