李志鹏,于鸿彬,邵宏宇
基于改进Canny边缘检测算法的道路标线检测实验研究
李志鹏1,2,于鸿彬1,2,邵宏宇3
(1. 天津工业大学 机械工程学院,天津 300387;2. 天津工业大学 天津市现代机电装备技术重点实验室,天津 300387;3. 天津大学 机械工程学院,天津 300072)
为提高传统Canny算法的灵活度和自适应能力,提出了一种改进的自适应Canny边缘检测算法。采用双边滤波代替高斯滤波滤除噪声并锐化图像边缘;再使用水平、垂直、45°、135°等4个方向的梯度模板对图像的梯度幅值进行计算。对传统的Otsu阈值分割算法进行了改进,改进的思路是找出类内和类间方差的最大值作为阈值,阈值搜索范围的缩小可以使计算量减少,实现快速分割。通过道路标线图像验证,说明改进后的Canny算法对道路标线的分割效果更好,减少了边缘断裂和假边缘,处理的时间也相对缩短。
Canny边缘检测;道路标线检测;双边滤波;梯度幅值
随着机器视觉和数字图像处理技术的快速发展,边缘检测被广泛用于各行业[1],例如工件的尺寸检测、仪器仪表的示数读取、道路标线及斑马线的识别等[2]。常用的边缘检测算法有Sobel算法和二阶导数过零点的边缘检测算法等。这些算法对噪声敏感且去噪能力较差,在一定程度上丢失了一些边缘信息,导致对图像处理的效果不理想;而Canny算法在边缘的检测方面有较大的优势,所以在实际的道路标线检测中被大量使用。但是该算法在图像边缘检测中仍存在缺点,例如在强光照射下使用该算法会检测出较多的伪边缘,较强滤波能力的高斯滤波使边缘信息被抑制,选取阈值时采用人工设定,使准确度和环境适应性降低。为此,本文在Canny算法的基础上对其进行优化[3]。
(1)信噪比准则。计算公式为
(2)定位精度准则。计算公式为
检测的边缘点需与实际边缘尽可能保持一致。由式(2)可知:图像的定位检测精度与公式计算结果呈正相关。
(3)单边缘响应准则。计算公式为
式(3)表示滤波器与边缘响应的平均距离,当为一定值时,表示边缘只能被检测一次。
由上述3个检测准则,传统的Canny算法主要分为4个步骤对图像进行检测:
(1)图像平滑处理。由高斯滤波函数对噪声去除,公式为
(2)计算梯度幅值大小和方向。利用一阶偏导有限差分对滤波后的图像邻域进行计算,公式为:
(3)非极大值抑制。通过此步骤得梯度幅值内最大的像素点,将此点确定为边缘点;去除非最大值点,便可以得到较为精确的边缘。
传统的Canny算法对边缘的提取有一些不足,例如高斯滤波器抑制了图像中的有用信息;有限差分法计算梯度幅值时对信息较敏感;阈值需要人工设定等。
针对上述问题,国内外学者提出了许多解决方案,例如用自适应中值平滑滤波代替高斯滤波对图像进行平滑,在获取更多图像信息的同时还能提高抗噪性[5];使用异性滤波进行图像的去噪[6];用均值滤波器代替传统算法中的高斯滤波器[7]等。在阈值的选取问题上,提出了迭代式阈值分割的算法[8]。
双边滤波在处理图像相邻各像素灰度时,不仅考虑了像素的欧式距离,还考虑了像素范围域中的相似程度、颜色强度等,从而得到平滑图像[9]。双边滤波的核函数是空间域核和像素域核的综合结果。在图像变化平缓的区内,像素灰度的变化不明显,对应的像素范围域的权重接近1,这时双边滤波就可以只考虑图像的空间几何关系,空间域权重起主导作用,因此采用低通空间域滤波器较为合适。在标线的附近像素范围域的权重增大,双边滤波除了使用像素之间空间几何的关系外,还会考虑像素间的光度及色彩差异,用边缘点邻域内灰度相似的像素点的平均灰度值代替原有灰度值,处理结果如图1所示。
(a) 黄标线(b) 箭头标线(c) 远景标线 (d) 滤波后的黄标线(e) 滤波后的箭头标线(f) 滤波后的远景标线
传统的Canny边缘检测算法利用有限差分法计算梯度幅值,对图像噪声敏感度较高。针对这一问题提出了改进方法。以Sobel算法的一阶梯度模板为基础,以4个方向的梯度模板求取所需的图像梯度幅值[10]。4个方向的一阶梯度模板为:
水平()方向矩阵为
垂直()方向矩阵为
45°方向矩阵为
135°方向矩阵为
梯度幅值可以由4个方向一阶梯度分量求得:
式(8)中的4个分量由梯度模板对图像卷积后得出。如果梯度幅值很高,则颜色会迅速变化,意味着颜色变化处为边缘,反之则判定为非边缘[11]。
Otsu算法可以由最大类间方差自动确定阈值,自适应分割灰度值[12]。以图像的灰度特征为前提,将像素分为背景和前景两部分,遍历图像灰度范围0—255内的像素灰度,求两部分灰度值的均值、方差以及两类间协方差。当某一阈值使背景和前景的灰度值协方差最大时,该阈值为图像的最佳阈值,它可以使背景、前景的灰度值区分明显,达到最佳的分割效果。
用Otsu算法对多组图像进行实验,证明此算法对图像分割的效果较好[13]。但在实际的道路标线图像中,由于周围的环境、光照以及道路上斑点、污迹的影响,导致直方图的效果不明显,得到的阈值不能达到很好的分割效果。
则由此可得图像的总体灰度均值式为:
类内方差表示将图像的像素分成的类中每个类的内聚性,类内的方差大小与像素点内聚性性能成反比,类间方差则表示错分率的大小。当类间方差最大时则表示背景与前景的错分率最小[14]。为求取最佳阈值,由
通过实验,可得到车道标线的灰度直方图大体呈现双峰状态,由灰度图的灰度值和与之对应灰度值的个数可知:左边峰值和右边峰值分别为背景和目标部分[15]。
因摄像机采集的原始图像中存在诸多噪声和干扰信息,使图像在处理的过程中会提取出错误的边缘和一些虚假的信息;在对图像求取灰度直方图时,也会使得直方图的成像效果有些许误差,双峰会存在很多的干扰。首先用双边滤波算法对图像进行处理,消除噪声,然后对图像进行灰度直方图的处理。
如图2所示,通过双边滤波算法后可使目标信息凸显,灰度直方图中峰值及峰谷更加明显,可以更好地对阈值进行判断[16]。
在强光照射环境下,为了避免光照对标线处理的影响,可以在改进的Otsu算法的基础上,将最佳阈值的选取范围缩小,即在遍历标线图像的时候将范围缩小,使阈值的选取受光强的影响最小化。
图2 灰度直方图
定义灰度均值到1、2两类的灰度均值的1、2的距离1、2为:1=|-1|、2=|-2|。
结合上式,可以得到:
灰度均值到背景部分均值的距离越小,则表明更靠近背景峰值。
由上述推论可得,改进的Otsu算法流程的基本步骤为:
(1)由原始图像计算灰度直方图;
(2)由灰度直方图得平均灰度和最小灰度;
(3)根据最佳的阈值选取公式:
对最佳阈值的范围缩小可以缩减灰度遍历的范围,从而可确定最佳阈值1;
(4)关于1的函数取最大值时是最佳阈值h;
(5)由最佳的阈值h将图像进行分割。
采取改进后的Otsu算法,除了污染特别严重的或者缺失较多的标线,在处理受污染的道路标线图像的时候也可以有很高的辨识率,在道路标线完整的时候是可以识别并获取完整的直线段。
为了验证改进算法的有效性,在公路上选取并采集了道路标线的图片,将改进的算法在原有算法的基础上进行编译,对图片进行测试,并与传统的Canny算法处理的图像进行对比,如图3所示。由图3可得,传统的Canny算法、Sobel算法、Roberts算法等算法检测的道路标线边缘信息不完整且有明显的断裂,不能很好地检测出图像远处的目标外轮廓;改进Canny算法使图像在滤除噪声的同时也锐化了边缘,排除了边缘检测过程中的干扰,使道路标线更加清晰、完整。改进后的Canny算法具有良好的单边缘和除噪效果,且连续性比较好。
1(a) 黄标线灰度图2(a) 传统Canny算法3(a) Sobel算法4(a) Roberts算法5(a) 非极大值抑制算法6(a) 改进Canny算法 1(b) 箭头标线灰度图2(b) 传统Canny算法3(b) Sobel算法4(b) Roberts算法5(b) 非极大值抑制算法6(b) 改进Canny算法 1(c) 远景标线灰度图2(c) 传统Canny算法3(c) Sobel算法4(c) Roberts算法5(c) 非极大值抑制算法6(c) 改进Canny算法
表1是对各种算法的执行效率进行比较,通过比较可得,改进后的Canny算法的检测时间更短。
表1 边缘检测算法的执行效率对比 s
算法黄标线箭头标线远景标线 传统Canny算法1.5031.6341.737 Sobel算法1.6531.7131.758 Roberts算法1.5981.6211.703 非极大值抑制算法1.6311.7041.732 改进Canny算法1.4271.4471.518
有一种评价边缘检测算法性能的方法,可对传统算法和改进的Canny算法进行统计[17]。
表示算法检测出的道路标线的边缘像素总数,表示算法检测到的4连通数,表示算法检测到的8连通数,计算/和/的值。/的比值越小,二值化边缘图像的连续性强。/的数值越小,算法的单边缘响应效果越好(见表2)。
表2 边缘图像检测统计结果
算法黄标线箭头标线远景标线 C/A值C/B值C/A值C/B值C/A值C/B值 传统Canny算法0.21530.48340.20370.45680.15960.3862 Sobel算法0.18470.36080.18570.30870.24270.5741 Roberts算法0.28940.52660.31820.70260.31770.6787 非极大值抑制算法0.23170.50140.30250.69470.30920.6494 改进Canny算法0.11430.23670.12980.21430.11420.2585
由表2中得,相比较其他的传统算法,改进的Canny算法的/值和/的值更小,说明改进的算法比传统的Canny算法和其他算法提取边缘时的边缘连接性以及单边缘响应更好。
本文采用双边滤波算法代替原有的滤波算法,使图像中的噪声能够得到有效抑制。实验数据表明,改进的Canny算法可以根据图像的特征获取道路标线边缘的轮廓信息,最大限度地抑制各种外界因素和噪声的干扰,对进一步得到道路标线边缘有较好的效果。
[1] 陈汗青,万艳玲,王国刚.数字图像处理技术研究进展[J].工业控制计算机,2013, 26(1): 72–74.
[2] 高翔,邢玉娟.模式识别及其在图像处理中的应用[J].自动化与仪器仪表,2015(3): 102–103.
[3] 王娟.图像边缘检测算法的比较分析[J].电子测试,2016(23): 36–37.
[4] 宋人杰,刘超,王保军.一种自适应的Canny边缘检测算法[J].南京邮电大学学报(自然科学版),2018, 38(3): 72–76.
[5] 吴翔,于微波,马艳辉,等.一种新的改进Canny图像边缘检测算法[J].影像科学与光化学,2016, 34(1): 116–121.
[6] 白永强,孙腾.基于金字塔模型和各向异性滤波的分层自适应图像增强算法[J].北京理工大学学报,2012, 32(3): 263–267.
[7] 李健,李赫宇,姚汝婧,等.基于均值滤波的改进Canny算法在核磁共振图像边缘检测中的应用[J].吉林大学学报(工学版),2016, 46(5): 1704–1709.
[8] 王正.迭代式阈值分割的垩白米粒检测方法[J].机械与电子,2017, 35(11): 55–57.
[9] 吴川.基于双边滤波的多尺度图像融合[J].计算机工程与应用,2015, 51(1): 31–34.
[10] 夏清,张振鑫,王婷婷,等.基于改进Sobel算子的红外图像边缘提取算法[J].激光与红外,2013, 43(10): 1158–1161.
[11] YU Hongshan, WANG Yaonan. An improved canny edge detection algorithm[J]. Computer Engineering and Application, 2004(20): 27–29.
[12] 段军,高翔.基于统计滤波的自适应双阈值改进canny算子边缘检测算法[J].激光杂志,2015, 36(1): 10–12.
[13] 李中健,杜娟,郭璐.将Otsu用于多阈值彩色图像分割的方法及优化[J].计算机工程与应用,2010, 46(11): 176–178.
[14] LI Min, LUO Hongyan, ZHENG Xiaolin, et al. Image segmentation based on improved otsu algorithm[J]. Journal of Nanjing University of Science & Technology, 2012, 36(2): 332–337.
[15] XUE Lixia, LI Tao, WANG Zuocheng. Adaptive canny edge detection algorithm[J]. Application Research of Computers, 2010(9): 3588–3590.
[16] 余博,郭雷,钱晓亮,等.一种新的自适应双边滤波算法[J].应用科学学报,2012, 30(5): 517–523.
[17] 林卉,赵长胜,舒宁.基于Canny算子的边缘检测及评价[J].黑龙江工程学院学报,2003(2): 3–6.
Research on experiment of road marking detection based on improved Canny edge detection algorithm
LI Zhipeng1,2, YU Hongbin1,2, SHAO Hongyu3
(1. School of Mechanical Engineering, Tianjin Polytechnic University, Tianjin 300387, China; 2. Tianjin Key Laboratory of Modern Mechanical and Electrical Equipment Technology, Tianjin Polytechnic University, Tianjin 300387, China; 3. School of Mechanical Engineering, Tianjin University, Tianjin 300072, China)
To improve the flexibility and adaptability of traditional Canny algorithm, an improved adaptive Canny edge detection algorithm is proposed. Bilateral filtering is used instead of Gauss filtering to remove noise and sharpen image edges. Then gradient magnitude of image is calculated using gradient templates in four directions: horizontal, vertical, 45° and 135°. The traditional Otsu threshold segmentation algorithm is improved, and the idea of improvement is to find the maximum value of intra-class and inter-class variance as the threshold. Reducing the search range of threshold can reduce the amount of calculation and achieve fast segmentation. The validation of road marking image shows that the improved Canny algorithm can segment road marking better, reduce the edge breakage and false edge, and shorten the processing time relatively.
Canny edge detection; road marking detection; bilateral filtering; gradient magnitude
TP391
A
1002-4956(2019)09-0137-05
2019-03-22
国家重点研发计划项目(2017YFB1104202,2016YFB1102003)
李志鹏(1994—),男,山东潍坊,在读硕士研究生,主要研究方向为数字化设计及制造。
E-mail: 1090069703@qq.com
于鸿彬(1974—),男,天津,博士,副教授,主要研究方向为数字化设计及制造。
E-mail: hongbinyu@aliyun.com
10.16791/j.cnki.sjg.2019.09.034