李志鵬,于鴻彬,邵宏宇
基于改進(jìn)Canny邊緣檢測(cè)算法的道路標(biāo)線檢測(cè)實(shí)驗(yàn)研究
李志鵬1,2,于鴻彬1,2,邵宏宇3
(1. 天津工業(yè)大學(xué) 機(jī)械工程學(xué)院,天津 300387;2. 天津工業(yè)大學(xué) 天津市現(xiàn)代機(jī)電裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津 300387;3. 天津大學(xué) 機(jī)械工程學(xué)院,天津 300072)
為提高傳統(tǒng)Canny算法的靈活度和自適應(yīng)能力,提出了一種改進(jìn)的自適應(yīng)Canny邊緣檢測(cè)算法。采用雙邊濾波代替高斯濾波濾除噪聲并銳化圖像邊緣;再使用水平、垂直、45°、135°等4個(gè)方向的梯度模板對(duì)圖像的梯度幅值進(jìn)行計(jì)算。對(duì)傳統(tǒng)的Otsu閾值分割算法進(jìn)行了改進(jìn),改進(jìn)的思路是找出類(lèi)內(nèi)和類(lèi)間方差的最大值作為閾值,閾值搜索范圍的縮小可以使計(jì)算量減少,實(shí)現(xiàn)快速分割。通過(guò)道路標(biāo)線圖像驗(yàn)證,說(shuō)明改進(jìn)后的Canny算法對(duì)道路標(biāo)線的分割效果更好,減少了邊緣斷裂和假邊緣,處理的時(shí)間也相對(duì)縮短。
Canny邊緣檢測(cè);道路標(biāo)線檢測(cè);雙邊濾波;梯度幅值
隨著機(jī)器視覺(jué)和數(shù)字圖像處理技術(shù)的快速發(fā)展,邊緣檢測(cè)被廣泛用于各行業(yè)[1],例如工件的尺寸檢測(cè)、儀器儀表的示數(shù)讀取、道路標(biāo)線及斑馬線的識(shí)別等[2]。常用的邊緣檢測(cè)算法有Sobel算法和二階導(dǎo)數(shù)過(guò)零點(diǎn)的邊緣檢測(cè)算法等。這些算法對(duì)噪聲敏感且去噪能力較差,在一定程度上丟失了一些邊緣信息,導(dǎo)致對(duì)圖像處理的效果不理想;而Canny算法在邊緣的檢測(cè)方面有較大的優(yōu)勢(shì),所以在實(shí)際的道路標(biāo)線檢測(cè)中被大量使用。但是該算法在圖像邊緣檢測(cè)中仍存在缺點(diǎn),例如在強(qiáng)光照射下使用該算法會(huì)檢測(cè)出較多的偽邊緣,較強(qiáng)濾波能力的高斯濾波使邊緣信息被抑制,選取閾值時(shí)采用人工設(shè)定,使準(zhǔn)確度和環(huán)境適應(yīng)性降低。為此,本文在Canny算法的基礎(chǔ)上對(duì)其進(jìn)行優(yōu)化[3]。
(1)信噪比準(zhǔn)則。計(jì)算公式為
(2)定位精度準(zhǔn)則。計(jì)算公式為
檢測(cè)的邊緣點(diǎn)需與實(shí)際邊緣盡可能保持一致。由式(2)可知:圖像的定位檢測(cè)精度與公式計(jì)算結(jié)果呈正相關(guān)。
(3)單邊緣響應(yīng)準(zhǔn)則。計(jì)算公式為
式(3)表示濾波器與邊緣響應(yīng)的平均距離,當(dāng)為一定值時(shí),表示邊緣只能被檢測(cè)一次。
由上述3個(gè)檢測(cè)準(zhǔn)則,傳統(tǒng)的Canny算法主要分為4個(gè)步驟對(duì)圖像進(jìn)行檢測(cè):
(1)圖像平滑處理。由高斯濾波函數(shù)對(duì)噪聲去除,公式為
(2)計(jì)算梯度幅值大小和方向。利用一階偏導(dǎo)有限差分對(duì)濾波后的圖像鄰域進(jìn)行計(jì)算,公式為:
(3)非極大值抑制。通過(guò)此步驟得梯度幅值內(nèi)最大的像素點(diǎn),將此點(diǎn)確定為邊緣點(diǎn);去除非最大值點(diǎn),便可以得到較為精確的邊緣。
傳統(tǒng)的Canny算法對(duì)邊緣的提取有一些不足,例如高斯濾波器抑制了圖像中的有用信息;有限差分法計(jì)算梯度幅值時(shí)對(duì)信息較敏感;閾值需要人工設(shè)定等。
針對(duì)上述問(wèn)題,國(guó)內(nèi)外學(xué)者提出了許多解決方案,例如用自適應(yīng)中值平滑濾波代替高斯濾波對(duì)圖像進(jìn)行平滑,在獲取更多圖像信息的同時(shí)還能提高抗噪性[5];使用異性濾波進(jìn)行圖像的去噪[6];用均值濾波器代替?zhèn)鹘y(tǒng)算法中的高斯濾波器[7]等。在閾值的選取問(wèn)題上,提出了迭代式閾值分割的算法[8]。
雙邊濾波在處理圖像相鄰各像素灰度時(shí),不僅考慮了像素的歐式距離,還考慮了像素范圍域中的相似程度、顏色強(qiáng)度等,從而得到平滑圖像[9]。雙邊濾波的核函數(shù)是空間域核和像素域核的綜合結(jié)果。在圖像變化平緩的區(qū)內(nèi),像素灰度的變化不明顯,對(duì)應(yīng)的像素范圍域的權(quán)重接近1,這時(shí)雙邊濾波就可以只考慮圖像的空間幾何關(guān)系,空間域權(quán)重起主導(dǎo)作用,因此采用低通空間域?yàn)V波器較為合適。在標(biāo)線的附近像素范圍域的權(quán)重增大,雙邊濾波除了使用像素之間空間幾何的關(guān)系外,還會(huì)考慮像素間的光度及色彩差異,用邊緣點(diǎn)鄰域內(nèi)灰度相似的像素點(diǎn)的平均灰度值代替原有灰度值,處理結(jié)果如圖1所示。
(a) 黃標(biāo)線(b) 箭頭標(biāo)線(c) 遠(yuǎn)景標(biāo)線 (d) 濾波后的黃標(biāo)線(e) 濾波后的箭頭標(biāo)線(f) 濾波后的遠(yuǎn)景標(biāo)線
傳統(tǒng)的Canny邊緣檢測(cè)算法利用有限差分法計(jì)算梯度幅值,對(duì)圖像噪聲敏感度較高。針對(duì)這一問(wèn)題提出了改進(jìn)方法。以Sobel算法的一階梯度模板為基礎(chǔ),以4個(gè)方向的梯度模板求取所需的圖像梯度幅值[10]。4個(gè)方向的一階梯度模板為:
水平()方向矩陣為
垂直()方向矩陣為
45°方向矩陣為
135°方向矩陣為
梯度幅值可以由4個(gè)方向一階梯度分量求得:
式(8)中的4個(gè)分量由梯度模板對(duì)圖像卷積后得出。如果梯度幅值很高,則顏色會(huì)迅速變化,意味著顏色變化處為邊緣,反之則判定為非邊緣[11]。
Otsu算法可以由最大類(lèi)間方差自動(dòng)確定閾值,自適應(yīng)分割灰度值[12]。以圖像的灰度特征為前提,將像素分為背景和前景兩部分,遍歷圖像灰度范圍0—255內(nèi)的像素灰度,求兩部分灰度值的均值、方差以及兩類(lèi)間協(xié)方差。當(dāng)某一閾值使背景和前景的灰度值協(xié)方差最大時(shí),該閾值為圖像的最佳閾值,它可以使背景、前景的灰度值區(qū)分明顯,達(dá)到最佳的分割效果。
用Otsu算法對(duì)多組圖像進(jìn)行實(shí)驗(yàn),證明此算法對(duì)圖像分割的效果較好[13]。但在實(shí)際的道路標(biāo)線圖像中,由于周?chē)沫h(huán)境、光照以及道路上斑點(diǎn)、污跡的影響,導(dǎo)致直方圖的效果不明顯,得到的閾值不能達(dá)到很好的分割效果。
則由此可得圖像的總體灰度均值式為:
類(lèi)內(nèi)方差表示將圖像的像素分成的類(lèi)中每個(gè)類(lèi)的內(nèi)聚性,類(lèi)內(nèi)的方差大小與像素點(diǎn)內(nèi)聚性性能成反比,類(lèi)間方差則表示錯(cuò)分率的大小。當(dāng)類(lèi)間方差最大時(shí)則表示背景與前景的錯(cuò)分率最小[14]。為求取最佳閾值,由
通過(guò)實(shí)驗(yàn),可得到車(chē)道標(biāo)線的灰度直方圖大體呈現(xiàn)雙峰狀態(tài),由灰度圖的灰度值和與之對(duì)應(yīng)灰度值的個(gè)數(shù)可知:左邊峰值和右邊峰值分別為背景和目標(biāo)部分[15]。
因攝像機(jī)采集的原始圖像中存在諸多噪聲和干擾信息,使圖像在處理的過(guò)程中會(huì)提取出錯(cuò)誤的邊緣和一些虛假的信息;在對(duì)圖像求取灰度直方圖時(shí),也會(huì)使得直方圖的成像效果有些許誤差,雙峰會(huì)存在很多的干擾。首先用雙邊濾波算法對(duì)圖像進(jìn)行處理,消除噪聲,然后對(duì)圖像進(jìn)行灰度直方圖的處理。
如圖2所示,通過(guò)雙邊濾波算法后可使目標(biāo)信息凸顯,灰度直方圖中峰值及峰谷更加明顯,可以更好地對(duì)閾值進(jìn)行判斷[16]。
在強(qiáng)光照射環(huán)境下,為了避免光照對(duì)標(biāo)線處理的影響,可以在改進(jìn)的Otsu算法的基礎(chǔ)上,將最佳閾值的選取范圍縮小,即在遍歷標(biāo)線圖像的時(shí)候?qū)⒎秶s小,使閾值的選取受光強(qiáng)的影響最小化。
圖2 灰度直方圖
定義灰度均值到1、2兩類(lèi)的灰度均值的1、2的距離1、2為:1=|-1|、2=|-2|。
結(jié)合上式,可以得到:
灰度均值到背景部分均值的距離越小,則表明更靠近背景峰值。
由上述推論可得,改進(jìn)的Otsu算法流程的基本步驟為:
(1)由原始圖像計(jì)算灰度直方圖;
(2)由灰度直方圖得平均灰度和最小灰度;
(3)根據(jù)最佳的閾值選取公式:
對(duì)最佳閾值的范圍縮小可以縮減灰度遍歷的范圍,從而可確定最佳閾值1;
(4)關(guān)于1的函數(shù)取最大值時(shí)是最佳閾值h;
(5)由最佳的閾值h將圖像進(jìn)行分割。
采取改進(jìn)后的Otsu算法,除了污染特別嚴(yán)重的或者缺失較多的標(biāo)線,在處理受污染的道路標(biāo)線圖像的時(shí)候也可以有很高的辨識(shí)率,在道路標(biāo)線完整的時(shí)候是可以識(shí)別并獲取完整的直線段。
為了驗(yàn)證改進(jìn)算法的有效性,在公路上選取并采集了道路標(biāo)線的圖片,將改進(jìn)的算法在原有算法的基礎(chǔ)上進(jìn)行編譯,對(duì)圖片進(jìn)行測(cè)試,并與傳統(tǒng)的Canny算法處理的圖像進(jìn)行對(duì)比,如圖3所示。由圖3可得,傳統(tǒng)的Canny算法、Sobel算法、Roberts算法等算法檢測(cè)的道路標(biāo)線邊緣信息不完整且有明顯的斷裂,不能很好地檢測(cè)出圖像遠(yuǎn)處的目標(biāo)外輪廓;改進(jìn)Canny算法使圖像在濾除噪聲的同時(shí)也銳化了邊緣,排除了邊緣檢測(cè)過(guò)程中的干擾,使道路標(biāo)線更加清晰、完整。改進(jìn)后的Canny算法具有良好的單邊緣和除噪效果,且連續(xù)性比較好。
1(a) 黃標(biāo)線灰度圖2(a) 傳統(tǒng)Canny算法3(a) Sobel算法4(a) Roberts算法5(a) 非極大值抑制算法6(a) 改進(jìn)Canny算法 1(b) 箭頭標(biāo)線灰度圖2(b) 傳統(tǒng)Canny算法3(b) Sobel算法4(b) Roberts算法5(b) 非極大值抑制算法6(b) 改進(jìn)Canny算法 1(c) 遠(yuǎn)景標(biāo)線灰度圖2(c) 傳統(tǒng)Canny算法3(c) Sobel算法4(c) Roberts算法5(c) 非極大值抑制算法6(c) 改進(jìn)Canny算法
表1是對(duì)各種算法的執(zhí)行效率進(jìn)行比較,通過(guò)比較可得,改進(jìn)后的Canny算法的檢測(cè)時(shí)間更短。
表1 邊緣檢測(cè)算法的執(zhí)行效率對(duì)比 s
算法黃標(biāo)線箭頭標(biāo)線遠(yuǎn)景標(biāo)線 傳統(tǒng)Canny算法1.5031.6341.737 Sobel算法1.6531.7131.758 Roberts算法1.5981.6211.703 非極大值抑制算法1.6311.7041.732 改進(jìn)Canny算法1.4271.4471.518
有一種評(píng)價(jià)邊緣檢測(cè)算法性能的方法,可對(duì)傳統(tǒng)算法和改進(jìn)的Canny算法進(jìn)行統(tǒng)計(jì)[17]。
表示算法檢測(cè)出的道路標(biāo)線的邊緣像素總數(shù),表示算法檢測(cè)到的4連通數(shù),表示算法檢測(cè)到的8連通數(shù),計(jì)算/和/的值。/的比值越小,二值化邊緣圖像的連續(xù)性強(qiáng)。/的數(shù)值越小,算法的單邊緣響應(yīng)效果越好(見(jiàn)表2)。
表2 邊緣圖像檢測(cè)統(tǒng)計(jì)結(jié)果
算法黃標(biāo)線箭頭標(biāo)線遠(yuǎn)景標(biāo)線 C/A值C/B值C/A值C/B值C/A值C/B值 傳統(tǒng)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 改進(jìn)Canny算法0.11430.23670.12980.21430.11420.2585
由表2中得,相比較其他的傳統(tǒng)算法,改進(jìn)的Canny算法的/值和/的值更小,說(shuō)明改進(jìn)的算法比傳統(tǒng)的Canny算法和其他算法提取邊緣時(shí)的邊緣連接性以及單邊緣響應(yīng)更好。
本文采用雙邊濾波算法代替原有的濾波算法,使圖像中的噪聲能夠得到有效抑制。實(shí)驗(yàn)數(shù)據(jù)表明,改進(jìn)的Canny算法可以根據(jù)圖像的特征獲取道路標(biāo)線邊緣的輪廓信息,最大限度地抑制各種外界因素和噪聲的干擾,對(duì)進(jìn)一步得到道路標(biāo)線邊緣有較好的效果。
[1] 陳汗青,萬(wàn)艷玲,王國(guó)剛.數(shù)字圖像處理技術(shù)研究進(jìn)展[J].工業(yè)控制計(jì)算機(jī),2013, 26(1): 72–74.
[2] 高翔,邢玉娟.模式識(shí)別及其在圖像處理中的應(yīng)用[J].自動(dòng)化與儀器儀表,2015(3): 102–103.
[3] 王娟.圖像邊緣檢測(cè)算法的比較分析[J].電子測(cè)試,2016(23): 36–37.
[4] 宋人杰,劉超,王保軍.一種自適應(yīng)的Canny邊緣檢測(cè)算法[J].南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2018, 38(3): 72–76.
[5] 吳翔,于微波,馬艷輝,等.一種新的改進(jìn)Canny圖像邊緣檢測(cè)算法[J].影像科學(xué)與光化學(xué),2016, 34(1): 116–121.
[6] 白永強(qiáng),孫騰.基于金字塔模型和各向異性濾波的分層自適應(yīng)圖像增強(qiáng)算法[J].北京理工大學(xué)學(xué)報(bào),2012, 32(3): 263–267.
[7] 李健,李赫宇,姚汝婧,等.基于均值濾波的改進(jìn)Canny算法在核磁共振圖像邊緣檢測(cè)中的應(yīng)用[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2016, 46(5): 1704–1709.
[8] 王正.迭代式閾值分割的堊白米粒檢測(cè)方法[J].機(jī)械與電子,2017, 35(11): 55–57.
[9] 吳川.基于雙邊濾波的多尺度圖像融合[J].計(jì)算機(jī)工程與應(yīng)用,2015, 51(1): 31–34.
[10] 夏清,張振鑫,王婷婷,等.基于改進(jìn)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] 段軍,高翔.基于統(tǒng)計(jì)濾波的自適應(yīng)雙閾值改進(jìn)canny算子邊緣檢測(cè)算法[J].激光雜志,2015, 36(1): 10–12.
[13] 李中健,杜娟,郭璐.將Otsu用于多閾值彩色圖像分割的方法及優(yōu)化[J].計(jì)算機(jī)工程與應(yīng)用,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] 余博,郭雷,錢(qián)曉亮,等.一種新的自適應(yīng)雙邊濾波算法[J].應(yīng)用科學(xué)學(xué)報(bào),2012, 30(5): 517–523.
[17] 林卉,趙長(zhǎng)勝,舒寧.基于Canny算子的邊緣檢測(cè)及評(píng)價(jià)[J].黑龍江工程學(xué)院學(xué)報(bào),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
國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2017YFB1104202,2016YFB1102003)
李志鵬(1994—),男,山東濰坊,在讀碩士研究生,主要研究方向?yàn)閿?shù)字化設(shè)計(jì)及制造。
E-mail: 1090069703@qq.com
于鴻彬(1974—),男,天津,博士,副教授,主要研究方向?yàn)閿?shù)字化設(shè)計(jì)及制造。
E-mail: hongbinyu@aliyun.com
10.16791/j.cnki.sjg.2019.09.034