高速公路目標邊緣檢測的算法對比分析
摘要:目標邊緣檢測是高速公路目標辨識的關(guān)鍵技術(shù)。雖然現在有多種邊緣檢測算法,但是不同算法有著(zhù)各自的適用范圍,通過(guò)對比Roberts算子、Prewitt算子、Sobel算子和Canny算子等算子,并以高速公路高清監控采集的視頻截圖作為樣本,采用不同邊緣檢測算法對車(chē)輛、護欄等高速公路上的主要目標進(jìn)行對比分析。計算結果表明,對于高速公路上的主要目標識別而言,Prewitt算子具有相對較好的邊緣檢測效果。
本文引用地址:http://dyxdggzs.com/article/201604/290279.htm引言
邊緣檢測是比較基礎的圖像處理方法之一,可以用來(lái)解決很多計算機中存在的視覺(jué)問(wèn)題[1]。邊緣檢測得以實(shí)現的主要原因是圖像背景和目標物體在某種特征上存在著(zhù)一些微小的差異。差異有顏色、灰度值以及紋理。邊緣檢測的目的是找到其中目標物最相關(guān)的邊緣。這些邊緣被連接在一起組成邊界,從而將目標圖分割成各個(gè)不同的特征區域。邊緣被定義為兩個(gè)在某種特征上有顯著(zhù)特點(diǎn)的圖像之間的邊界。邊界其實(shí)就是一個(gè)特征區域漸漸過(guò)渡到另一個(gè)特征區域的界限,因此,其分割所形成區域的屬性和內部區域是一致的[2]。
在研究中主要考慮的是灰度圖像的邊緣,其常常受強度函數尖銳變化的影響。不過(guò)我們還是需要了解理想邊緣與斜坡邊緣的差別。由于模糊和噪聲的存在,檢測到的邊界很可能因其而出現部分斷點(diǎn)或變寬。
因此,邊緣檢測可以劃分為兩個(gè)基本部分:
1)將反映灰度變化的邊緣點(diǎn)分離出來(lái);
2)填充間斷點(diǎn)或去除間斷點(diǎn),使其鏈接成一條線(xiàn)。
邊緣檢測時(shí),一般將其劃分為三個(gè)部分,即:
1)噪聲消減:由于二階導數和一階導數極易受噪聲影響,最好在檢測前先對圖像進(jìn)行去噪處理;
2)檢測邊緣點(diǎn):使用局部算子來(lái)檢測邊緣,一般局部算子都應只對邊緣有較強響應,從而得到輸出圖像;
3)邊緣定位:對得到的結果進(jìn)行后續處理,使其成為一條有意義的線(xiàn),便于人眼觀(guān)察。
數學(xué)中關(guān)于邊緣檢測的算子有Prewitt算子、Sobel算子、Roberts算子、Canny算子、Kirsch算子、Robinson算子、Laplace算子以及Laplace-Gaussian算子[3]。Laplace算子和Laplace-Gaussian邊緣檢測算子可以用于邊緣檢測,但是它們的使用并不普遍[4]。Laplace算子不依賴(lài)邊緣方向,可以準確地尋找到邊緣點(diǎn)的具體位置并把他們提取出來(lái),但是由于Laplace算子本質(zhì)上是二階導數,其對噪聲有著(zhù)極強的識別能力,使得圖像中的噪聲有著(zhù)不降反增的趨勢,造成了邊緣的不連續性。Laplace-Gaussian算子解決了Laplace算子較差的抗噪聲能力的問(wèn)題,但實(shí)際上是以平滑掉原有的較尖銳的邊緣為代價(jià),最后可能導致的后果就是結果中相對來(lái)說(shuō)明顯不圓滑的邊緣將很有可能不被計算機提取整合出來(lái),存在邊界誤差大、定位精度低的問(wèn)題。在實(shí)際分析中,Prewitt算子、Canny算子、Roberts算子以及Sobel算子是常用的算子,下面對其進(jìn)行研究。
1 邊緣檢測算法的理論分析
邊緣檢測最簡(jiǎn)單的方式是通過(guò)估計一個(gè)像素內的灰度梯度來(lái)得到,同時(shí)可以用一階導數來(lái)代替梯度,例如
(1)
(2)
1.1 Roberts算子
Roberts算子可以由上式中的一階導數近似得到[5]。Roberts算子是利用局部差分算子來(lái)尋找邊緣的算子,其在處理有著(zhù)陡峭低噪聲的目標圖像方面有著(zhù)很強的能力,它的2×2的矩陣符號表示為:
(3)
(4)
當采用1范數來(lái)衡量梯度的幅度時(shí)。
這些梯度在3×3的領(lǐng)域內一般用卷積計算,即
(5)
(6)
(5)、(6)式中hx和hy表示恰當的卷積模核。
1.2 Prewitt算子
Prewitt算子稱(chēng)為最簡(jiǎn)單的核對,其在處理灰度漸變和噪聲較多的圖像時(shí)效果較好[6]。其對應系數矩陣如下:
(7)
(8)
其輸出時(shí)采用∞范數。
1.3 Sobel算子
Sobel算子是一種與Prewitt算子極其類(lèi)似的核對算子[7],不過(guò)差別是它更偏重于軸上的像素,其在處理灰度漸變和噪聲較多的圖像時(shí)得到的結果看起來(lái)較好,如下式:
(9)
(10)
采用∞范數來(lái)衡量梯度的幅度。
1.4 Canny算子
Canny算子是現在使用最多,最有效且使用范圍最廣的邊緣檢測算子之一[8]。Canny算子是用高斯濾波器計算出來(lái)導數來(lái)計算圖像中的梯度,其實(shí)際上就是尋找測試圖像里面計算梯度的局部極大值。Canny算子在檢測弱邊緣和強邊緣時(shí),使用兩個(gè)不同的閾值來(lái)完成,而且弱邊緣的輸出只在強邊緣與弱邊緣串聯(lián)在一起的時(shí)候才會(huì )發(fā)生,故其受噪聲的干擾較少,可以用來(lái)檢測那些弱邊緣,但其最終結果中的邊界連貫性較差。它的具體算法可以解釋為:
1)用高斯低通濾波器來(lái)對輸入的目標圖像進(jìn)行平滑處理操作的時(shí)候,要先指定一個(gè)合適的σ值,消除較大噪聲可以采用大的σ值,不過(guò)是以減弱可能相關(guān)的邊緣為代價(jià)來(lái)實(shí)現的;
2)進(jìn)行平滑處理之后,圖像中每個(gè)點(diǎn)的局部區域實(shí)際上就是計算強度和方向;
3)由第二步得到的邊緣點(diǎn)可以構成寬的山脊。利用一些算法將這些山脊細化,用非最大消除法保留下各個(gè)山脊中頂峰的像素;
4)用Tlow和Thigh兩個(gè)閾值將山脊像素閾值化,這個(gè)過(guò)程被稱(chēng)為滯后閾值化。弱邊緣像素可以被認為是在Tlow和Thigh兩個(gè)閾值之間的山脊像素;
5)最后進(jìn)行邊緣連接,實(shí)質(zhì)上就是聚集于強邊緣連接的弱邊緣。
除上述四種算法外,還有一種零交叉方法,是先用指定的濾波器來(lái)濾波,然后再將零交叉點(diǎn)做出輸出的邊緣。
2 不同算法的對比研究
上述邊緣檢測方法都有不同的適用范圍,這里選取某高速公路高清視頻的截圖作為原圖像,用于對比分析,如圖1所示。該高清視頻的分辨率為200萬(wàn)像素,視頻為上午10點(diǎn)多錄制,畫(huà)面質(zhì)量相對較好。
分別對圖1所示圖像使用Canny算子、Sobel算子、Prewitt算子以及Roberts算子進(jìn)行邊緣檢測操作。
2.1 Canny算子
采用Canny算子計算的圖像邊緣如圖2所示。雖然Canny算子是在最優(yōu)化思想的基礎上提出的,但是由于理論與實(shí)際存在著(zhù)很大差距,因此最終得到的實(shí)際效果并不一定可以達到最優(yōu)化。該算子會(huì )將一些相對其他邊緣頻率較高的邊緣也一起平滑掉,會(huì )導致一些邊緣的損失,同時(shí)該算子因為使用的是高斯函數,并以此來(lái)對圖像進(jìn)行的一個(gè)平滑處理操作,故其可以更有效地抑制噪聲。Canny算子采用的是雙閾值法來(lái)進(jìn)行邊緣的檢測以及將邊緣依次按順序完美地組合起來(lái),同時(shí)因其采用了方向性搜索和多尺度檢測從而使其自身性能優(yōu)于LoG算子。
2.2 Sobel算子
采用Sobel算子所計算的圖像邊緣如圖3所示。Sobel算子因其對圖像中像素對與邊緣位置的影響采取了一系列的加權處理,故所得結果的邊緣模糊程度得以降低,而且效果很好。因為Sobel算子是以濾波算子為形式的,當其用于邊緣提取時(shí),可以較快調取卷積函數并使用,達到既方便又準確的好處,故其使用范圍較為廣泛。但是由于其并未把圖像的主體和背景區分開(kāi)來(lái),不符合人視覺(jué)習慣,從而提取到的輪廓效果尚不夠清晰。
2.3 Prewitt算子
采用Prewitt算子所計算的圖像邊緣如圖4所示。Prewitt算子首先會(huì )對目標圖像進(jìn)行一個(gè)加權平滑的操作,然后再對其做微分處理,雖然Sobel算子也會(huì )就目標圖進(jìn)行一個(gè)加權平滑的操作過(guò)程,但是它們在加權部分的權值還是存在差別的。因此其可以有效抑制圖像中的噪聲成分,盡管我們已經(jīng)就這個(gè)問(wèn)題做了大量的工作,但是依舊會(huì )存在一些錯誤的邊緣出現在最終檢測結果中。
對比圖3和圖4可以發(fā)現,雖然Prewitt算子與Sobel算子都可以準確地進(jìn)行邊緣查找工作,但是圖像邊緣存在像素寬度異常的問(wèn)題。
2.4 Roberts算子
采用Roberts算子所計算的圖像邊緣如圖5所示。Roberts算子是通過(guò)計算圖像中一些局部的差分算子進(jìn)而來(lái)找到物體的邊緣,所以他可以準確地確定邊緣點(diǎn)所在的位置,不過(guò)它又較易忽略一些邊緣的缺點(diǎn),并且因為它并未對圖像進(jìn)行平滑的操作,故不能抑制噪聲。該算子最適合用于噪聲低且邊緣陡峭的圖像中。
通過(guò)仿真計算,對比上述邊緣檢測算法得到的圖像可以看出,Prewitt算子檢測得到的圖像線(xiàn)條清晰、畫(huà)面整潔、噪點(diǎn)較少,說(shuō)明該算法更適用于高速公路高清視頻所采集的圖像的邊緣檢測。
此外,將Prewitt算子用于動(dòng)漫圖像的邊緣檢測時(shí),計算效果較差,表明在選用邊緣檢測算法時(shí)應結合適當的應用背景。
3 結論
雖然每個(gè)邊緣檢測算子都有著(zhù)自身的優(yōu)勢,但在多次對不同圖像進(jìn)行仿真過(guò)程中,依據邊緣檢測得到的圖像效果可以判斷,Prewitt算子對高速公路監控視頻的邊緣檢測效果優(yōu)于其它算子,檢測出來(lái)的結果線(xiàn)條更加清晰明了,便于肉眼觀(guān)察和后續計算,遠處的車(chē)輛輪廓也可以清楚地看到,而且很容易區分車(chē)輛的類(lèi)型,其中轎車(chē)和大卡車(chē)尤為明顯。對于高速公路的高清視頻監控而言,邊緣檢測效果從好到差的排序依次是Prewitt算子、Sobel算子、Roberts算子和Canny算子。
參考文獻:
[1] 李安安. 幾種圖像邊緣檢測算法的比較與展望[J].大眾科技.2009(12)
[2] 張琳. 基于Kirsch算子的圖像邊緣檢測[D].東北石油大學(xué).2014
[3] 李武. MATLAB中圖像邊緣檢測算法研究[J].遼寧省基礎測繪院.2014(03)
[4] 吳曦. 基于MATLAB的圖像邊緣檢測算法的研究和實(shí)現[D].吉林大學(xué).2014
[5] 王靜,李竹林,賀東霞,王蓓,李智. 基于邊緣檢測的各種算子及其特點(diǎn)[J]. 延安大學(xué)學(xué)報(自然科學(xué)版).2014(01)
[6] 孫紅艷,張海英. 圖像邊緣檢測算法的比較與分析[J].菏澤學(xué)院學(xué)報.2010(03)
[7] 何春華,張雪飛,胡迎春. 基于改進(jìn)Sobel算子的邊緣檢測算法的研究[J]. 光學(xué)技術(shù).2012(03)
[8] 徐亮,魏銳. 基于Canny算子的圖像邊緣檢測優(yōu)化算法[J].科技通報.2013(07)
本文來(lái)源于中國科技期刊《電子產(chǎn)品世界》2016年第4期第48頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評論