摘 要: 为了提高刀具预调测量仪的检测精度,提出了一种改进的图像快速亚像素边缘检测算法——基于正交多项式拟合的亚像素边缘检测算法。首先,利用传统的Sobel算子完成边缘点整像素级别的检测,确定边缘的主体区域;然后,过边缘点沿边缘法线方向拓展像素,取一系列像素点并计算其灰度值;最后根据像素点灰度分布的数学特征,利用正交多项式和最小二乘法求拟合函数,通过拟合曲线确定图像边缘点的精确位置,实现图像亚像素边缘检测。实验证明,该算法运行时间短,约为0.63 s;检测精度高,可达0.1 pixels。
关键词: 边缘检测; 亚像素; Sobel;正交多项式; 曲线拟合
0 引言
在机械加工时,刀具的几何参数对数控机床的生产效率和加工质量有着重大影响,因此,刀具必须在使用前明确其精确参数。目前,国内常用的刀具测量方法,如机械式测量法、光学投影法等已无法满足现代工业生产的要求,以图像处理为核心的图像测量技术具有高精度、高效率、非接触和自动化程度高等优点,能实现对刀具参数的精确检测。图像测量技术的实质是提取刀具精确的轮廓边缘,边缘检测是图像处理的基础和关键。传统的边缘检测算法,如Sobel算子、Canny算子、LOG算子等虽然其形式简单,易实现,速度快,但检测精度不理想,仅能达到整像素级别,且对噪声特别敏感,常产生伪边缘。欲提高检测系统的精度,通过优化算法的软处理比提高系统硬件分辨率的硬处理更加实用、有效[1]。
提出一种改进的图像亚像素边缘检测算法,利用传统的Sobel算子和五次正交多项式最小二乘拟合原理实现边缘精定位。
1亚像素边缘检测算法理论
1.1边缘主体区域粗定位
Sobel算子既能确定边缘点的位置和方向,还能根据像素点上下、左右邻点的灰度加权差,对噪声具有平滑作用,能提供较好的图像边缘信息,所以在边缘主体区域粗定位时选用Sobel算子。Sobel算子是一种梯度幅值,其表现形式为:
其中,M(x,y)是像素点灰度值,Sx、Sy分别是边缘点横向、纵向的检测灰度值。当M(x,y)大于给定的阈值时,可确定点(x,y)为边缘点,并根据Sx、Sy判断梯度方向,=arctan(Sy/Sx)。从图1可以看出,Sobel算子对边缘主体区域粗定位有很好的效果[2]。
1.2 边缘亚像素精定位
CCD是光强积分器件,在CCD采样过程中,物空间突变的灰度在光学成像后会成为渐变的形式。如图2(a)所示,图像两侧分别表示背景和物体各自内部的灰度变化情况,两者之间表示图像边缘附近的灰度变化情况;如图2(b)所示,沿边缘法线方向,物体与背景内部区域的灰度差分值微小,而边缘附近的灰度差分最大,这就是经典边缘提取的理论。
以上述理论为基础,对过粗定位所得边缘点,沿边缘法线方向拓展像素,得到一系列过边缘线的像素点,求得这些点对应的灰度值,然后根据这些点灰度分布的数学特征,利用五次正交多项式最小二乘法拟合原理求得拟合函数与曲线,再根据拟合曲线确定图像边缘亚像素点的位置,从而实现边缘点的亚像素精确定位,这就是本文改进的亚像素边缘检测算法的原理。
1.2.1 正交多项式拟合函数
在实际应用中,要在保证检测精度的前提下尽可能地缩短运算时间,从而提高运算效率,因此选择适当数量的边缘点是十分重要的。选点过多会增加运算时间,降低效率;选点过少会降低检测精度,定位不准。综合以上因素,本课题选取5个像素点,横坐标x代表像素值,其取值分别设为-2、-1、0、1、2,其纵坐标y代表各点对应的灰度值。根据施密特正交化公式[3]可得正交基函数,如式1所示。
为了能取得较理想的拟合效果,选取[G0(x),G1(x),G2(x),G3(x),G4(x),G5(x)]为基底进行拟合,拟合函数方程为:
F5(x)=a0·G0(x)+a1·G1(x)+a2·G2(x)+a3·G3(x)+a4·G4(x)+a5·G5(x)(2)
其中,a0、a1、a2、a3、a4、a5是五次正交多项式函数的未知系数[4]。
假设任一坐标点(xi,yi)的横、纵坐标随机误差分别为pi、qi,则实测点坐标到拟合曲线的距离残差为:
全部点到曲线的距离残差平方和为:
求取式(4)最小值min(S)时,根据正交多项式最小二乘法拟合原理推导得系数为:
直接使用式(5)求多项式系数计算量大,较困难,且不能直观体现各变量之间的内在规律与联系,因此对公式进行变换转化为如下更直观的矩阵表达式:
由式(6)可求得多项式系数值:
将式(7)代入式(2)得拟合函数F5(x):
1.2.2 计算图像边缘位置
根据亚像素边缘检测原理可知,拟合函数表达式F5(x)是以点的灰度值为基本元素求得的。从数学意义上来讲,F5(x)描述了图像边缘线的情况,而函数一阶微分
则描述了边缘线变化程度的情况,即点的灰度值变化率的情况。那么,函数二阶微分
则描述了点的灰度值变化率的变化情况。
由以上分析可知,亚像素点的位置就是点的灰度值变化率变化最大的位置,依据极值求解条件,将函数F5(x)对x求二阶微分并令其等于零,即
求得x的数值即是亚像素点的位置。
2 亚像素边缘检测算法的实验
利用Visual C++6.0语言在MATLAB V201b2软件平台编写Sobel算子和本文改进的算法程序实现对图像的数字处理。
实验1 算法抗噪性能研究
图像信噪比等于信号与噪声的功率谱之比。由此可知,边缘点的检测精度与噪声成负相关关系。分别用两种算法处理图像,效果如图3所示。可以看出,本文算法与Sobel算子相比同样具有完整且较细的边缘,但前者生成的噪点明显更少,因而具有更好的抗噪声性能。
实验2 算法检测精度研究[5]
制作了尺寸为100×100的二值化图像,如图4所示。白色矩形所在区域的灰度值为0,其余背景灰度值为255,底边在图像第20行、第20~80列位置上。首先提取了部分边缘点理论坐标值,再使用改进的算法处理图像并提取了相应边缘点的亚像素坐标检测值,如表1所示。通过分析与计算可知改进算法的检测精度。
以单个像素点坐标理论值与检测值的坐标差值作为算法偏差,经计算可得其标准偏差约为0.1 pixels。
实验3 算法时间研究
取尺寸为1 600×1 455的同一图像在同一实验平台进行多次测试,得到多组运行时间,如表2所示。为了提高数据的可靠性,首先从数据中去掉一个最小值和一个最大值,再求取其他组的平均值作为运行时间。经计算,Sobel处理时间约为0.34 s,本文算法的处理时间约为0.63 s。
3 结束语
从理论分析与仿真实验可以看出,本文改进的亚像素边缘检测算法具有抗噪性能强、检测精度高、运行速度快的优点,主要适用于对处理速度和检测精度要求较高的机器视觉检测系统,而且已试用于数控机床刀具预调测量仪,极大地提高了数控机床的效能,运行稳定、可靠。
参考文献
[1] 李东光,景芳盛,张国雄.计算机视觉二维刀具预调测量仪的研究[J].制造技术与机床,2001(5):20-22.
[2] 刘力双,张铫,卢慧卿,等.图像的快速亚像素边缘检测算法[J].光电子·激光,2005,16(8):993-996.
[3] 王新民,术洪亮.工程数学计算方法[M].北京:高等教育出版社,2005.
[4] 徐中宇,宁闯,周亚洲.一种快速亚像素边缘检测算法[J].吉林大学学报(理学版),2014,52(2):308-313.
[5] PERKINS W A. INSPECTOR: a computer vision system which Learn to inspect parts[C]. IEEE Trans. on Pattern Analysis and Machine Intelligence,PAMI-5,1983:584-592.