王偉 陳新軒 韓敏
摘? 要:該文立足于解決瀝青路面裂縫識別,基于OpenCV函數(shù)庫,對該函數(shù)庫中Canny算子進行改進,將原始Canny算子高斯平滑濾波器,改進為選擇濾波器。改進后的識別算法,不僅能消除原始圖像中附帶的高斯噪聲,還能消除椒鹽(脈沖)噪聲。基于改進后的算法進行實驗,結(jié)果顯示,經(jīng)過算法改進后,路面裂縫識別更加精準(zhǔn)。
關(guān)鍵詞:路面裂縫識別? OpenCV? 選擇濾波器
中圖分類號:TP274? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1672-3791(2019)03(b)-0055-02
瀝青路面裂縫是一種早期瀝青路面病害,如不及時處理,會降低路面防水性能,導(dǎo)致大量路面水下滲至路基,破壞路基穩(wěn)定層結(jié)構(gòu),降低路基承載能力,引發(fā)路基失穩(wěn)造成更大程度的路面病害。因此,對于路面裂縫,應(yīng)當(dāng)及時修補處理。當(dāng)前,路面修補主要依靠工人操作機械灌縫,工作效率低,灌縫質(zhì)量取決于操作人員經(jīng)驗。若要實現(xiàn)自動路面裂縫修補,最關(guān)鍵的一步,是要能正確識別路面裂縫,并根據(jù)路面裂縫生成引導(dǎo)路徑,從而能夠引導(dǎo)機械自動完成路面裂縫的修補工作。當(dāng)前,機器視覺技術(shù)發(fā)展迅速,利用機器視覺解決以上問題可行性極高。該文基于OpenCV,針對原始Canny算子進行改進,提高路面裂縫檢測的效率和準(zhǔn)確度。
1? 利用原始Canny算子檢測路面裂縫時的缺陷
OpenCV是圖像識別領(lǐng)域廣泛使用的圖像處理函數(shù)庫,使用OpenCV提供的庫函數(shù),可以極大地提升開發(fā)速度,降低開發(fā)難度。瀝青路面裂縫的檢測,本質(zhì)上是提取裂縫邊緣的過程,OpenCV對于邊緣提取,有許多成熟的函數(shù),其中,Canny算子就是被廣泛使用的邊緣提取函數(shù)。但是,在應(yīng)用中發(fā)現(xiàn),OpenCV自帶的原始Canny算子,對圖像的預(yù)處理,使用的是高斯平滑濾波器,雖能一定程度上抑制圖像噪聲,但是對于諸如椒鹽噪聲在內(nèi)的其他噪聲,降噪效果不能達到預(yù)期,同時,由于該濾波器的局限性,在圖像處理中,往往會將某些沖擊噪聲識別為待檢測邊緣。另一方面,在利用Sobel計算坐標(biāo)方向時,對噪聲敏感度過高,這也使得該方法很容易將非噪聲信號識別為噪聲,從而丟失細節(jié)信息。
2? Canny算子改進
針對原始Canny算子的缺陷,高斯平滑濾波器能較好地消除高斯噪聲和均值噪聲,但對椒鹽噪聲等就顯得無能為力。如果考慮使用中值濾波器,雖能消除高斯平滑濾波不能處理的椒鹽噪聲,且不會對圖像帶來過多的模糊效果,但對高斯噪聲卻處理欠佳。此時,如果能有一種選擇濾波器,根據(jù)圖像不同位置的特點,運用不同濾波器處理圖像,就能得到較好的效果。此時,我們可以考慮,設(shè)計一種選擇濾波器,選擇性地處理輸入圖像中的噪聲。
選擇濾波器原理:對于輸入的圖像,通過椒鹽噪聲檢測器檢測輸入圖像受到椒鹽噪聲影響的區(qū)域,對此類區(qū)域利用中值濾波器消除噪聲,其余部分利用中值濾波器濾除。經(jīng)過上述步驟濾波后,再將它們的結(jié)果疊加。對于椒鹽噪聲的檢測,這里有兩個基準(zhǔn)。
(1)灰度范圍基準(zhǔn)。
假設(shè)圖像灰度范圍為[Lmin,Lmax],若圖像中,某一像素灰度值在此區(qū)間之外,則該像素很可能受到椒鹽噪聲的影響。
(2)局部像素對比基準(zhǔn)。
對于輸入圖像,含有椒鹽噪聲的像素點,灰度值為圖像灰度范圍的兩個極端??紤]每個像素點的8個臨域,若該像素周邊像素與其存在極大的灰度差別,則該像素受脈沖噪聲的影響很大,判別依據(jù)為下式。
式中,假設(shè)位于處的像素的臨域為N,屬于該臨域的像素為f(s,t),Tv用來判斷目標(biāo)像素與周邊像素灰度值差別是否足夠大,Tn代表百分比閾值。這里,我們使用兩個準(zhǔn)則來判定,是因為如果僅使用灰度范圍基準(zhǔn),可能將原本正常的像素點也判定為是受到了脈沖噪聲干擾的像素點。而如果僅僅使用局部像素對比基準(zhǔn)來判定,則可能將邊緣像素判定為受脈沖噪聲污染的像素點。因此,如果將兩者結(jié)合使用,就能避免以上問題。
當(dāng)輸入圖像同時包含高斯噪聲和脈沖噪聲時,可將輸入圖像中的像素點一分為二,其中第一部分為受到高斯噪聲影響的像素,第二部分為受到脈沖信號影響的像素點。因為根據(jù)灰度范圍基準(zhǔn),含有脈沖噪聲(椒鹽噪聲)的像素的灰度值取到圖像灰度范圍的兩端極值,因而此像素點高斯噪聲可以忽略不計。為消除脈沖噪聲的影響,可在該像素周邊取樣,即通過該像素周邊未受影響像素的灰度信息和位置信息,通過差值計算,計算出該像素點的理論值,從而以新值代替舊值,消除脈沖噪聲影響。對于另外一部分的像素點,高斯噪聲可利用維納濾波的方法消除。最后將兩部分像素疊加,生成新消除噪聲后的圖像,供后續(xù)步驟繼續(xù)使用。
3? 實驗及分析
該文實驗環(huán)境為MacOS10.14+OpenCV3.4+Python3.6,將原始Canny算子降噪算法部分做上文所述改進后,對路面裂縫進行識別。改進前后識別結(jié)果如圖1、圖2、圖3所示。通過對比實驗結(jié)果可以看出,改進前識別準(zhǔn)確度較低,周邊噪聲也被識別為裂縫標(biāo)出,只有周邊平滑的圖像,裂縫邊緣識別才比較準(zhǔn)確;改進Canny算子,可以更精確地識別出裂縫的邊緣,周邊噪聲對于識別結(jié)果的影響不大。
4? 結(jié)語
該文針對OpenCV庫中Canny算子圖像噪聲處理部分進行改進,將原始高斯平滑濾波器改進為選擇濾波器,能夠?qū)⒃紙D片中噪聲進行更好的處理。通過實驗驗證,改進后的Canny算子,對比改進之前,對于輸入的路面裂縫圖像信號,能夠精準(zhǔn)識別裂縫區(qū)域,排除噪聲信號的影響。
參考文獻
[1] 周慧媛,邱書波,劉海英,等.基于對比度受限自適應(yīng)直方圖多種路面裂縫檢測與識別[J].齊魯工業(yè)大學(xué)學(xué)報,2018,32(5):27-31.
[2] 豆曉瑜.基于多尺度分析的瀝青路面裂縫自動檢測技術(shù)研究[D].長安大學(xué),2010.
[3] 徐歡,李振璧,姜媛媛,等.基于OpenCV和改進Canny算子的路面裂縫檢測[J].計算機工程與設(shè)計,2014,35(12):4254-4258.
[4] 吳成茂,胡偉,王輝.小波自適應(yīng)閾值和雙邊濾波的圖像去噪[J].西安郵電大學(xué)學(xué)報,2013,18(4):5-8.
[5] 段鎖林,殷聰聰,李大偉.改進的自適應(yīng)Canny邊緣檢測算法[J].計算機工程與設(shè)計,2018,39(6):1645-1652.