基于Canny算子改进型的影像测量边缘检测 下载: 1194次
1 引言
影像测量技术是以现代光学为基础,融计算机图像图形学、计算机视觉、信息处理和光电子学等科学技术为一体的现代测量技术。该技术将待测图像当作检测和传递信息的载体,从中提取有用的信号来获得待测参数[1],已广泛应用于空间距离测量[2]、混凝土裂缝测量[3]和工业零件尺寸测量[4-5]等领域。影像测量的过程中,边缘检测的好坏决定影像测量结果的准确性,因此边缘检测在影像测量的过程中占据十分重要的地位。边缘检测的方法主要有灰度熵法[6]、高斯曲线梯度拟合法[7]以及各种边缘检测算子[8],其中Canny算子因具有较高的检测精度以及较好的去噪能力而得到广泛应用。
Canny算子边缘检测的过程主要分为高斯滤波去噪、梯度幅值和方向的计算、梯度非极大值抑制、双阈值处理和虚假弱边缘去除5步。针对高斯滤波平滑图像,文献[ 9-10]提出了一种自适应中值滤波算法,该算法可以较好地保留图像的边缘信息,但改变了非噪声像素点的灰度值,计算量大;文献[ 11-12]使用了形态学滤波对图像进行去噪,该处理过程可以去除图像中的孤立噪声点,但平滑图像边缘以及模板选择困难;文献[ 13]采用了改进的梯度倒数加权法对图像进行滤波,该方法可以较好地保留图像的边缘信息,但计算过程较为繁琐且对椒盐噪声的去除效果不佳。为了提高梯度幅值和方向的计算精度,文献[ 9-14]计算了45°和-45°方向的梯度;文献[ 15]在Canny算子边缘检测的过程中引入引力场强度来代替图像梯度以提高边缘定位的准确性,该方法可以较好地检测出弱边缘,但会增加虚假边缘。为了实现阈值自适应,文献[ 16-17]引入了最大类间方差(OTSU)算法,但该算法对阈值的定位精度低,且计算效率低;文献[ 14]使用了类内方差与类间方差的结合算法来提高阈值的定位精度;文献[ 9]利用了二分查找原理改进OTSU的计算方法,该方法可以提高查找效率。针对干扰边缘的问题,文献[ 18]使用了形态学处理方法中的腐蚀和膨胀操作去除干扰边缘,但形态学算子的选取普适性差;文献[ 5]采用了Grubbs准则去离群值法去除干扰边缘,但计算量大,耗时较长,且离群距离的选择至关重要,距离选择过大,干扰点去除不完全,距离选择过小,容易丢失真实边缘。
采用高斯滤波对图像进行滤波会导致图像边缘平滑,人为设定高、低阈值会导致阈值的自适应性差,采用双阈值法去除虚假边缘会导致干扰边缘的去除效果不佳。针对上述问题,本文提出改进的Canny边缘检测算法并应用于影像测量领域。首先使用开关中值滤波代替高斯滤波,并对图像进行去噪以避免图像平滑;接着采用K均值(K-means)聚类算法得到高、低梯度值的聚类中心,采用OTSU算法得到梯度的OTSU阈值;然后分别在高聚类中心、OTSU阈值和低聚类中心之间取得高、低阈值;最后采用面积形态学开运算对干扰边缘进行去除,最终实现对边缘的准确检测。
2 改进的Canny算子基本原理
2.1 开关中值滤波去噪
对图像进行中值滤波前,先对噪声进行检测。对于一幅图像v,椒盐噪声检测的表达式为
F(i,j)=
式中:G(i,j)表示v中第i行、第j列像素点的灰度值;amin和amax分别表示以点(i,j)为中心的3×3窗口内的最小灰度均值和最大灰度均值;F(i,j)表示第i行、第j列的像素点是否为噪声点。当G(i,j)处于amin和amax之间时,表示该像素点很可能为非噪声点,此时将F(i,j)标记为1,反之该点为噪声点,将F(i,j)标记为0。根据开关中值滤波的原理对标记为0的像素点进行处理,即对F(i,j)标记为1的像素点保持灰度值不变,对F(i,j)标记为0的像素点灰度值使用其所在位置的中值来代替。
当采用开关中值滤波算法对图像进行处理时,该算法既可以去除噪声点,又可以保留非噪声点的灰度值,这可以提高真实边缘点的定位精度。
2.2 K-means聚类中心偏移求阈值
当使用影像测量仪测量图像梯度时,通常图像中会出现较明显的两类点,采用OTSU算法得到的阈值T可以很好地分为边缘点与非边缘点[8],但存在虚假边缘以及干扰点,这会导致分类效果较差。因此,引入K-means算法得到高、低梯度值的聚类中心ch和cl,则高阈值Th必在[T,ch]区间中取得,低阈值Tl必在[cl,T]区间中取得。为了准确得到高、低阈值以达到最佳的分离效果,引入低聚类中心偏移因子u1和高聚类中心偏移因子u2,其中u1和u2的取值范围为[0,1],则高、低阈值分别为
Tl=cl+u1(T-cl),(2)
Th=ch-u2(ch-T)。(3)
K-means聚类算法是一种统计聚类算法,其可以简单高效地将具有相同属性的数据分为一类[19]。该算法不需要为了增加训练数据量而进行学习,只需要知道怎么计算样本之间的相似度并将相似样本进行归类即可。
K-means算法的基本原理:首先在待分类数据中选取k个聚类中心,即c1,c2,…,ck,接着按照待分类数据到k个聚类中心距离的大小分为相应位置所在的类。通常采用误差平方和作为目标函数来衡量分类效果,误差平方和VSSE的表达式为
VSSE=
式中:cs表示第s个聚类中心的值;x表示第s个聚类中心的数据点。为了使VSSE值最小,则对VSSE求偏导并令其为0,表达式为
由(5)式可以得到cs=
K-means聚类中心偏移求解阈值或以避免由人工设置阈值导致自适应性较差,也可以解决由高阈值与经验系数相乘选取低阈值,经验系数不能自适应获取而导致分类效果不佳的问题。
2.3 面积形态学去除干扰边缘
面积形态学与标准形态学不同,其只有一个参数,结果也只与面积参数的大小有关[20]。面积形态学仅有两个基本面积算子,即面积开算子和面积闭算子。
在二值图像中,定义位置p处的连通域Cg(p)为
Cg(p)={q:∃Pg(p,q)},(6)
式中:Pg(p,q)表示去噪后图像g在位置p和位置q之间的连续路径。路径中的连通元素被定义为8连通。
定义面积形态学开运算的表达式为
g ̊ (S)={p:∃|Cg(p)|≥S},(7)
式中:|Cg(p)|表示像素值为1且连通的区域面积;S表示设定的面积阈值;̊ 表示开运算操作。由(7)式可知,面积形态学开运算的结果是将像素值为1的连通域中面积小于S的像素值置0。当S=4时,形态学面积开运算的处理结果如
图 1. 形态学面积开运算的处理结果。(a)处理前;(b)处理后
Fig. 1. Processing results of morphological area opening operation. (a) Before treatment; (b) after treatment
定义面积形态学闭运算的表达式为
g·(S)={p:∃|
式中:|
图 2. 形态学面积闭运算的处理结果。(a)处理前;(b)处理后
Fig. 2. Processing results of morphological area closure operation. (a) Before treatment; (b) after treatment
边缘检测的过程中,因虚假的边缘面积通常小于100pixel,与真实的边缘面积相差较大,所以可通过面积形态学开运算对干扰边缘点进行去除。
3 算法实现步骤
改进的Canny算子的边缘检测流程如
1) 在3×3窗口内处理图像,计算窗口内的amax、amin以及灰度中值amed。
2)将G(i,j)与amax和amin进行比较,如果G(i,j)处于amax和amin之间,则保持G(i,j)值不变,反之使用amed来代替G(i,j),从而得到去除噪声后的图像。
3)对去噪后的图像在水平方向、垂直方向、45°方向和-45°方向进行一阶偏导数差分以计算梯度,从而得到每个像素点的梯度幅值和梯度方向。
4)对梯度图像中每个梯度值与其梯度方向上相邻两梯度值的大小进行比较,如果梯度值比梯度方向上相邻的两个梯度值都大,则对其进行保留,反之对其进行抑制,从而保证得到单像素宽度的边缘图像。
5)采用K-means聚类算法来得到ch和cl,采用OTSU算法来得到T,使用T对ch和cl进行适当调节,从而得到最佳的Th和Tl。
6)使用高、低阈值处理图像边缘。将梯度值大于高阈值的点置1,梯度值小于低阈值的点置0,对梯度值处于高、低阈值之间的点,查找其8邻域是否存在大于高阈值的梯度值,若存在则置1,反之置0,从而得到连接性较好的二值化边缘。
7)对得到的二值化边缘进行面积形态学开运算处理,对连通域面积过小的边缘认定其为干扰边缘并去除,从而得到定位准确且无干扰的边缘。
4 实验及结果分析
实验使用的算法是在MATLAB 2016a软件上编程实现的,实验图像是由工业模拟相机采集而得到。首先通过实验来确定u1和u2的大小;然后在图像中分别加入0.02和0.05的椒盐噪声,验证传统的Canny算法、文献[ 9]算法及所提算法对含有椒盐噪声的图像边缘检测效果;接着对传统的Canny算法、文献[ 9]算法、文献[ 5]算法和所提算法对影像边缘检测结果及运行时间进行分析;最后对传统的Canny算法、文献[ 9]算法、文献[ 5]算法及所提算法检测到的边缘进行最小二乘拟合,从而定量计算各种检测算法的精度,实验过程如下。
首先确定聚类中心偏移因子的大小。对图像中的真实边缘像素点数与虚假边缘像素点数(即与真实边缘不相连的像素点)进行统计分析,结果如
图 4. 边缘数随偏移因子的变化曲线。(a)u1; (b)u2
Fig. 4. Change curves of number of edges with offset factor. (a) u1; (b) u2
为了评价所提算法对椒盐噪声的去除效果,在图像中分别加入0.02和0.05的噪声,含噪图像的边缘检测效果如
表 2. 不同算法的检测结果分析
Table 2. Analysis of detection results of different algorithms
|
表 1. 各算法的运行时间
Table 1. Running time of each algorithm
|
图 5. 含噪图像的边缘检测效果。(a)原始图像;(b)传统的Canny算法;(c)文献[ 9];(d)所提算法
Fig. 5. Edge detection effects of noisy images. (a) Original images; (b) traditional Canny algorithm; (c) Ref. [9]; (d) proposed algorithm
为了定性评价所提算法的检测效果,将所提算法检测到的边缘分别与传统的Canny算法、文献[
9]算法和文献[
5]算法进行比较,结果如
图 6. 含噪图像的边缘检测结果。(a)传统的Canny算法;(b)文献[ 9]算法;(c)文献[ 5]算法;(d)所提算法
Fig. 6. Edge detection results of noisy images. (a) Traditional Canny algorithm; (b) Ref. [9]; (c) Ref. [5]; (d) proposed algorithm
各算法的运行时间如
为了定量评价所提算法的效果,将所提算法检测到的边缘精度分别与传统的Canny算法、文献[
9]算法和文献[
5]算法进行比较。首先分别使用传统的Canny算法、文献[
9]算法、文献[
5]算法和所提算法对工业标准矫正片(拍摄影像所用相机的像素尺寸为1.5μm)中半径相等的36个圆逐个进行边缘检测,然后对检测到的边缘点进行最小二乘拟合以得到半径,通过实验数据验证所提算法的准确性。工业标准矫正片如
从
为了更准确地描述算法的检测精度,对
Presolution=
式中:Dmax表示36个圆的最大检测值;Dmin表示36个圆的最小检测值。
因所用相机的像素尺寸为1.5μm,故检测精度Paccuracy的表达式为
Paccuracy=1.5Presolution。(10)
不同算法的检测结果如
5 结论
提出一种改进的Canny算法,并采用该算法对图像进行边缘检测。首先使用开关中值滤波对图像进行去噪,可以得到非噪声点灰度值不变的图像;然后采用K-means聚类中心与OTSU相结合的算法,可以实现阈值自适应;最后使用面积形态学来去除干扰边缘,从而得到准确的图像边缘信息。实验结果表明,所提算法具有更好地去除椒盐噪声的能力、更高的定位精度(在1μm以内)以及更稳定的去干扰能力,该算法为后续影像图形的识别奠定良好的基础。所提算法因使用开关中值滤波对图像进行处理会导致用时较长,所以下一步的工作将是针对高斯噪声的特点进行改进,使其应用领域更为广泛。
[1] 张舞杰, 杨义禄, 李迪, 等. 自动影像测量系统关键算法[J]. 光学精密工程, 2007, 15(2): 294-301.
[2] LiuT, LiuY, LiuK, et al. Intrusion object recognition and space distance measurement in safety area of high voltage transmission lines[C]//2019 6th International Conference on Systems and Informatics (ICSAI), November 2-4, 2019, Shanghai, China. New York: IEEE, 2019: 878- 883.
[5] 段宇秀. 全自动影像测量仪零件尺寸测量方法研究[D]. 太原: 中北大学, 2019: 18- 24.
Duan YX. Study on the measurement method of part size of automatic image measuring instrument[D]. Taiyuan: North University of China, 2019: 18- 24.
[7] 尚雅层, 陈静, 田军委. 高斯拟合亚像素边缘检测算法[J]. 计算机应用, 2011, 31(1): 179-181.
Shang Y C, Chen J, Tian J W. Sub-pixel edge detection algorithm based on Gauss fitting[J]. Journal of Computer Applications, 2011, 31(1): 179-181.
[8] 化春键, 熊雪梅, 陈莹. 基于Sobel算子的工件圆弧轮廓特征提取[J]. 激光与光电子学进展, 2018, 55(2): 021011.
[9] 段锁林, 殷聪聪, 李大伟. 改进的自适应Canny边缘检测算法[J]. 计算机工程与设计, 2018, 39(6): 1645-1652.
[10] 舒启林, 山博. 改进Canny算子的亚像素定位算法[J]. 机械设计与制造, 2018( 10): 165- 168.
Shu QL, ShanB. Sub-pixel localization algorithm based on modified Canny operator[J]. Machinery Design & Manufacture, 2018( 10): 165- 168.
[11] Deng CX, Wang GB, Yang XR. Image edge detection algorithm based on improved Canny operator[C]//2013 International Conference on Wavelet Analysis and Pattern Recognition, July 14-17, 2013, Tianjin, China. New York: IEEE, 2013: 168- 172.
[12] 袁俏俏, 章光, 陈西江, 等. 融合改进Canny算法的点云特征规则化[J]. 激光与光电子学进展, 2019, 56(16): 162801.
[13] 巨志勇, 张文馨, 翟春宇. 基于改进Canny算子的垃圾图像边缘检测[J]. 电子科技, 2020, 33(8): 16-20.
Ju Z Y, Zhang W X, Zhai C Y. Garbage image edge detection based on improved Canny algorithm[J]. Electronic Science and Technology, 2020, 33(8): 16-20.
[14] 梁肇峻, 钟俊. 基于Otsu算法与直方图分析的自适应Canny算法的改进[J]. 现代电子技术, 2019, 42(11): 54-58.
Liang Z J, Zhong J. Adaptive Canny algorithm improvement based on Otsu algorithm and histogram analysis[J]. Modern Electronics Technique, 2019, 42(11): 54-58.
[15] Rong WB, Li ZJ, ZhangW, et al. An improved Canny edge detection algorithm[C]//2014 IEEE International Conference on Mechatronics and Automation, August 3-6, 2014, Tianjin, China. New York: IEEE, 2014: 577- 582.
[16] Chen XF, Guan HB, Gu JN, et al. and improvements on Canny algorithm[J]. Advanced Engineering Forum, 2012, 6/7: 205- 209.
[17] 刘丽霞, 李宝文, 王阳萍, 等. 改进Canny边缘检测的遥感影像分割[J]. 计算机工程与应用, 2019, 55(12): 54-58, 180.
Liu L X, Li B W, Wang Y P, et al. Remote sensing image segmentation based on improved Canny edge detection[J]. Computer Engineering and Applications, 2019, 55(12): 54-58, 180.
[18] Xu H Y, Xu X L, Zuo Y B. Applying morphology to improve Canny operator's image segmentation method[J]. The Journal of Engineering, 2019, 2019(23): 8816-8819.
[19] 贺一波, 陈冉丽, 吴侃, 等. 基于K-means聚类的点云精简方法[J]. 激光与光电子学进展, 2019, 56(9): 091002.
[20] 熊哲源, 樊晓平, 黎燕. 一种新的基于二值面积形态学的车牌定位算法[J]. 计算机仿真, 2008, 25(11): 285-287, 296.
Xiong Z Y, Fan X P, Li Y. A new binary-area-morphology-based algorithm for license plate localization[J]. Computer Simulation, 2008, 25(11): 285-287, 296.
Article Outline
张加朋, 于凤芹. 基于Canny算子改进型的影像测量边缘检测[J]. 激光与光电子学进展, 2020, 57(24): 241024. Jiapeng Zhang, Fengqin Yu. Improved Image Measurement Edge Detection Based on Canny Operator[J]. Laser & Optoelectronics Progress, 2020, 57(24): 241024.