发明名称 一种基于Harris算子的棋盘格角点亚像素提取方法
摘要 本发明涉及一种基于Harris算子的棋盘格角点亚像素提取方法,属于微机械装配和显微视觉检测技术领域。本方法通过使用Harris算子进行棋盘格的角点检测;优化Harris算子的处理结果,剔除步骤一检测出的角点中的聚簇点;使用对称法剔除噪点,进行角点二次优化找到像素级角点;基于二次曲面拟合,将像素级角点精度提升为亚像素级。本发明方法能精确检测出黑白棋盘格的角点,且未出现原算法中的各种伪角点,检测精度达到0.1个像素。
申请公布号 CN103345755B 申请公布日期 2016.03.30
申请号 CN201310291199.3 申请日期 2013.07.11
申请人 北京理工大学 发明人 叶鑫;张之敬;高军;金鑫;邵超
分类号 G06T7/00(2006.01)I;G06T5/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 代理人
主权项 一种基于Harris算子的棋盘格角点亚像素提取方法,其特征在于:具体步骤如下:步骤一,以显微视觉视场中棋盘格图像像面的左上角为原点,图像的水平方向为x轴,图像的竖直方向为y轴,建立像面坐标系,使用Harris算子进行棋盘格的角点检测,得到角点和特征角点;使用Harris算子检测角点的具体计算过程为:计算棋盘格图像每个像素点灰度函数G(x,y)的横向一阶导数平方G<sub>x</sub><sup>2</sup>、纵向一阶导数平方G<sub>y</sub><sup>2</sup>,以及二者的乘积G<sub>x</sub>G<sub>y</sub>,得到3幅新图像,3幅新图像中的每个像素点对应的属性值分别代表G<sub>x</sub><sup>2</sup>、G<sub>y</sub><sup>2</sup>和G<sub>x</sub>G<sub>y</sub>;再对3幅新图像分别进行高斯滤波,根据每个像素点在三幅滤波后图像中对应的属性值,计算原棋盘格图像上对应的每个像素点的兴趣值H,并找出整幅图像中的兴趣值最大值H<sub>max</sub>,然后分别在以每个像素为中心的w×w窗口中,找到该窗口兴趣值最大值对应的像素点,其中w取奇数;若最大值点为中心点,且中心点的兴趣值大于ρH<sub>max</sub>,则该点视为角点;否则该窗口最大值点为特征角点,其中,ρ为比例系数;步骤二,优化Harris算子的处理结果,剔除步骤一检测出的角点中的聚簇点;将每列角点的纵坐标值y按从小到大依次排列,再将排序好的纵坐标值依次做差值,即在同一列的角点中,后一个角点的纵坐标减前当前角点的纵坐标,并记录差值结果,当差值结果小于设定的阈值M时,则认为当前角点对应的后一个角点为聚簇点,予以剔除,该列中余下的角点即为优化后的角点;阈值M的选取取决于镜头的放大倍数和棋盘格的大小;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>M</mi><mo>=</mo><mfrac><mrow><mi>&lambda;</mi><mo>&times;</mo><mi>T</mi></mrow><mi>&delta;</mi></mfrac></mrow>]]></math><img file="FDA0000802759770000011.GIF" wi="300" he="166" /></maths>其中λ表示棋盘格标定板中一个棋盘格的实际长度,单位为μm,T为显微镜头的放大倍数,δ为CCD的像元尺寸,单位为μm;步骤三,使用对称法剔除噪点,进行角点二次优化;分别以步骤二优化得到的各个角点为窗口中心,设置大小为n×n的窗口,定义对称算子的兴趣值是关于窗口中心角点对称的每一对像素点灰度差的绝对值,其计算公式:c<sub>s</sub>(i,j)=|I(x‑m,y‑m)‑I(x+m,y+m)|其中x表示中心角点在像面坐标系中的横坐标值,y表示中心角点在像面坐标系中的纵坐标值,I(x,y)表示中心角点对应的灰度值,m为对称参数;对n×n的窗口中每个像素点计算对称算子兴趣值c<sub>s</sub>,找出每一个n×n窗口中对称算子兴趣值最小的像素点作为二次优化后的像素级角点;步骤四,基于二次曲面拟合,将步骤三得到的像素级角点精度提升为亚像素级;对于坐标值为(x,y)的像素级角点,用二元二次多项式来逼近以像素级角点(x,y)为中心的a×a拟合窗口W内的角点响应函数,然后用线性解法求得亚像素级角点坐标;建立角点响应函数R(x,y):R(x,y)=a<sub>0</sub>+a<sub>1</sub>x+a<sub>2</sub>y+a<sub>3</sub>x<sup>2</sup>+a<sub>4</sub>xy+a<sub>5</sub>y<sup>2</sup>式中a<sub>0</sub>,a<sub>1</sub>,...,a<sub>5</sub>为未知系数,a×a拟合窗口中有a<sup>2</sup>个方程,使用最小二乘法求解得到a<sub>0</sub>,a<sub>1</sub>,...,a<sub>5</sub>;函数R(x,y)在拟合曲面的极值点满足方程组:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfrac><mrow><mi>&delta;</mi><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow><mrow><mi>&delta;</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><mn>2</mn><msub><mi>a</mi><mn>3</mn></msub><mi>x</mi><mo>+</mo><msub><mi>a</mi><mn>4</mn></msub><mi>y</mi><mo>=</mo><mn>0</mn></mrow>]]></math><img file="FDA0000802759770000021.GIF" wi="639" he="156" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfrac><mrow><mi>&delta;</mi><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow><mrow><mi>&delta;</mi><mi>y</mi></mrow></mfrac><mo>=</mo><msub><mi>a</mi><mn>2</mn></msub><mo>+</mo><msub><mi>a</mi><mn>4</mn></msub><mi>x</mi><mo>+</mo><mn>2</mn><msub><mi>a</mi><mn>5</mn></msub><mi>y</mi><mo>=</mo><mn>0</mn></mrow>]]></math><img file="FDA0000802759770000022.GIF" wi="639" he="163" /></maths>由此得到亚像素级的角点坐标(xx,yy)为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>x</mi><mi>x</mi><mo>=</mo><mfrac><mrow><mn>2</mn><msub><mi>a</mi><mn>1</mn></msub><msub><mi>a</mi><mn>5</mn></msub><mo>-</mo><msub><mi>a</mi><mn>2</mn></msub><msub><mi>a</mi><mn>4</mn></msub></mrow><mrow><msup><msub><mi>a</mi><mn>4</mn></msub><mn>2</mn></msup><mo>-</mo><mn>4</mn><msub><mi>a</mi><mn>3</mn></msub><msub><mi>a</mi><mn>5</mn></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000802759770000023.GIF" wi="403" he="178" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>y</mi><mi>y</mi><mo>=</mo><mfrac><mrow><mn>2</mn><msub><mi>a</mi><mn>2</mn></msub><msub><mi>a</mi><mn>3</mn></msub><mo>-</mo><msub><mi>a</mi><mn>1</mn></msub><msub><mi>a</mi><mn>4</mn></msub></mrow><mrow><msup><msub><mi>a</mi><mn>4</mn></msub><mn>2</mn></msup><mo>-</mo><mn>4</mn><msub><mi>a</mi><mn>3</mn></msub><msub><mi>a</mi><mn>5</mn></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000802759770000024.GIF" wi="405" he="176" /></maths>若亚像素级坐标值位于以像素级角点(x,y)为中心的a×a拟合窗口W内,则认为该亚像素角点为合格角点;如果亚像素级角点位于W之外,按以下情况对亚像素级坐标进行赋值:如果xx&lt;x‑1,则令xx=x‑1;如果xx&gt;x+1,则令xx=x+1;如果yy&lt;y‑1,则令yy=y‑1;如果yy&gt;y+1,则令yy=y+1;至此完成棋盘格角点亚像素提取,得到棋盘格的所有亚像素级角点。
地址 100081 北京市海淀区中关村南大街5号