发明名称 一种基于Harris算子的棋盘格角点亚像素提取方法
摘要 本发明涉及一种基于Harris算子的棋盘格角点亚像素提取方法,属于微机械装配和显微视觉检测技术领域。本方法通过使用Harris算子进行棋盘格的角点检测;优化Harris算子的处理结果,剔除步骤一检测出的角点中的聚簇点;使用对称法剔除噪点,进行角点二次优化找到像素级角点;基于二次曲面拟合,将像素级角点精度提升为亚像素级。本发明方法能精确检测出黑白棋盘格的角点,且未出现原算法中的各种伪角点,检测精度达到0.1个像素。
申请公布号 CN103345755A 申请公布日期 2013.10.09
申请号 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算子的处理结果,剔除步骤一检测出的角点中的聚簇点;将每列角点的纵坐标值y按从小到大依次排列,再将排序好的纵坐标值依次做差值,即在同一列的角点中,后一个角点的纵坐标减前当前角点的纵坐标,并记录差值结果,当差值结果小于设定的阈值M时,则认为当前角点对应的后一个角点为聚簇点,予以剔除,该列中余下的角点即为优化后的角点;步骤三,使用对称法剔除噪点,进行角点二次优化;分别以步骤二优化得到的各个角点为窗口中心,设置大小为n×n的窗口,定义对称算子的兴趣值是关于窗口中心角点对称的每一对像素点灰度差的绝对值,其计算公式:cs(i,j)=|I(x‑m,y‑m)‑I(x+m,y+m)|其中x表示中心角点在像面坐标系中的横坐标值,y表示中心角点在像面坐标系中的纵坐标值,I(x,y)表示中心角点对应的灰度值,m为对称参数;对n×n的窗口中每个像素点计算对称算子兴趣值cs,找出每一个n×n窗口中对称算子兴趣值最小的像素点作为二次优化后的像素级角点;步骤四,基于二次曲面拟合,将步骤三得到的像素级角点精度提升为亚像素级;对于坐标值为(x,y)的像素级角点,用二元二次多项式来逼近以像素级角点(x,y)为中心的a×a拟合窗口W内的角点响应函数,然后用线性解法求得亚像素级角点坐标;建立角点响应函数R(x,y):R(x,y)=a0+a1x+a2y+a3x2+a4xy+a5y2式中a0,a1,...,a5为未知系数,a×a拟合窗口中有a2个方程,使用最小二乘法求解得到a0,a1,...,a5;函数R(x,y)在拟合曲面的极值点满足方程组: <mrow> <mfrac> <mrow> <mi>&delta;R</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <mi>&delta;x</mi> </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> <mrow> <mfrac> <mrow> <mi>&delta;R</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <mi>&delta;y</mi> </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>由此得到亚像素级的角点坐标(xx,yy)为: <mrow> <mi>xx</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mrow> <mn>2</mn> <mi>a</mi> </mrow> <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> <msub> <mrow> <mn>4</mn> <mi>a</mi> </mrow> <mn>3</mn> </msub> <msub> <mi>a</mi> <mn>5</mn> </msub> </mrow> </mfrac> </mrow> <mrow> <mi>yy</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> <msub> <mrow> <mn>4</mn> <mi>a</mi> </mrow> <mn>3</mn> </msub> <msub> <mi>a</mi> <mn>5</mn> </msub> </mrow> </mfrac> </mrow>若亚像素级坐标值位于以像素级角点(x,y)为中心的a×a拟合窗口W内,则认为该亚像素角点为合格角点;如果亚像素级角点位于W之外,按以下情况对亚像素级坐标进行赋值:如果xx<x‑1,则令xx=x‑1;如果xx>x+1,则令xx=x+1;如果yy<y‑1,则令yy=y‑1;如果yy>y+1,则令yy=y+1;至此完成棋盘格角点亚像素提取,得到棋盘格的所有亚像素级角点。
地址 100081 北京市海淀区中关村南大街5号