高速公路目標邊緣檢測的算法對比分析

2020-12-17 電子產品世界

摘要:目標邊緣檢測高速公路目標辨識的關鍵技術。雖然現在有多種邊緣檢測算法,但是不同算法有著各自的適用範圍,通過對比Roberts算子、Prewitt算子、Sobel算子和Canny算子等算子,並以高速公路高清監控採集的視頻截圖作為樣本,採用不同邊緣檢測算法對車輛、護欄等高速公路上的主要目標進行對比分析。計算結果表明,對於高速公路上的主要目標識別而言,Prewitt算子具有相對較好的邊緣檢測效果。

本文引用地址:http://www.eepw.com.cn/article/201604/290279.htm

引言

  邊緣檢測是比較基礎的圖像處理方法之一,可以用來解決很多計算機中存在的視覺問題[1]。邊緣檢測得以實現的主要原因是圖像背景和目標物體在某種特徵上存在著一些微小的差異。差異有顏色、灰度值以及紋理。邊緣檢測的目的是找到其中目標物最相關的邊緣。這些邊緣被連接在一起組成邊界,從而將目標圖分割成各個不同的特徵區域。邊緣被定義為兩個在某種特徵上有顯著特點的圖像之間的邊界。邊界其實就是一個特徵區域漸漸過渡到另一個特徵區域的界限,因此,其分割所形成區域的屬性和內部區域是一致的[2]

  在研究中主要考慮的是灰度圖像的邊緣,其常常受強度函數尖銳變化的影響。不過我們還是需要了解理想邊緣與斜坡邊緣的差別。由於模糊和噪聲的存在,檢測到的邊界很可能因其而出現部分斷點或變寬。

  因此,邊緣檢測可以劃分為兩個基本部分:

  1)將反映灰度變化的邊緣點分離出來;

  2)填充間斷點或去除間斷點,使其連結成一條線。

  邊緣檢測時,一般將其劃分為三個部分,即:

  1)噪聲消減:由於二階導數和一階導數極易受噪聲影響,最好在檢測前先對圖像進行去噪處理;

  2)檢測邊緣點:使用局部算子來檢測邊緣,一般局部算子都應只對邊緣有較強響應,從而得到輸出圖像;

  3)邊緣定位:對得到的結果進行後續處理,使其成為一條有意義的線,便於人眼觀察。

  數學中關於邊緣檢測的算子有Prewitt算子、Sobel算子、Roberts算子、Canny算子、Kirsch算子、Robinson算子、Laplace算子以及Laplace-Gaussian算子[3]。Laplace算子和Laplace-Gaussian邊緣檢測算子可以用於邊緣檢測,但是它們的使用並不普遍[4]。Laplace算子不依賴邊緣方向,可以準確地尋找到邊緣點的具體位置並把他們提取出來,但是由於Laplace算子本質上是二階導數,其對噪聲有著極強的識別能力,使得圖像中的噪聲有著不降反增的趨勢,造成了邊緣的不連續性。Laplace-Gaussian算子解決了Laplace算子較差的抗噪聲能力的問題,但實際上是以平滑掉原有的較尖銳的邊緣為代價,最後可能導致的後果就是結果中相對來說明顯不圓滑的邊緣將很有可能不被計算機提取整合出來,存在邊界誤差大、定位精度低的問題。在實際分析中,Prewitt算子、Canny算子、Roberts算子以及Sobel算子是常用的算子,下面對其進行研究。

1 邊緣檢測算法的理論分析

  邊緣檢測最簡單的方式是通過估計一個像素內的灰度梯度來得到,同時可以用一階導數來代替梯度,例如

(1)

(2)

1.1 Roberts算子

  Roberts算子可以由上式中的一階導數近似得到[5]。Roberts算子是利用局部差分算子來尋找邊緣的算子,其在處理有著陡峭低噪聲的目標圖像方面有著很強的能力,它的2×2的矩陣符號表示為:

(3)

(4)

  當採用1範數來衡量梯度的幅度時。

  這些梯度在3×3的領域內一般用卷積計算,即

(5)

(6)

  (5)、(6)式中hxhy表示恰當的卷積模核。

1.2 Prewitt算子

  Prewitt算子稱為最簡單的核對,其在處理灰度漸變和噪聲較多的圖像時效果較好[6]。其對應係數矩陣如下:

(7)

 (8)

  其輸出時採用∞範數。

1.3 Sobel算子

  Sobel算子是一種與Prewitt算子極其類似的核對算子[7],不過差別是它更偏重於軸上的像素,其在處理灰度漸變和噪聲較多的圖像時得到的結果看起來較好,如下式:

(9)

(10)

  採用∞範數來衡量梯度的幅度。

1.4 Canny算子

  Canny算子是現在使用最多,最有效且使用範圍最廣的邊緣檢測算子之一[8]。Canny算子是用高斯濾波器計算出來導數來計算圖像中的梯度,其實際上就是尋找測試圖像裡面計算梯度的局部極大值。Canny算子在檢測弱邊緣和強邊緣時,使用兩個不同的閾值來完成,而且弱邊緣的輸出只在強邊緣與弱邊緣串聯在一起的時候才會發生,故其受噪聲的幹擾較少,可以用來檢測那些弱邊緣,但其最終結果中的邊界連貫性較差。它的具體算法可以解釋為:

  1)用高斯低通濾波器來對輸入的目標圖像進行平滑處理操作的時候,要先指定一個合適的σ值,消除較大噪聲可以採用大的σ值,不過是以減弱可能相關的邊緣為代價來實現的;

  2)進行平滑處理之後,圖像中每個點的局部區域實際上就是計算強度和方向;

  3)由第二步得到的邊緣點可以構成寬的山脊。利用一些算法將這些山脊細化,用非最大消除法保留下各個山脊中頂峰的像素;

  4)用TlowThigh兩個閾值將山脊像素閾值化,這個過程被稱為滯後閾值化。弱邊緣像素可以被認為是在TlowThigh兩個閾值之間的山脊像素;

  5)最後進行邊緣連接,實質上就是聚集於強邊緣連接的弱邊緣。

  除上述四種算法外,還有一種零交叉方法,是先用指定的濾波器來濾波,然後再將零交叉點做出輸出的邊緣。

2 不同算法的對比研究

  上述邊緣檢測方法都有不同的適用範圍,這裡選取某高速公路高清視頻的截圖作為原圖像,用於對比分析,如圖1所示。該高清視頻的解析度為200萬像素,視頻為上午10點多錄製,畫面質量相對較好。

  分別對圖1所示圖像使用Canny算子、Sobel算子、Prewitt算子以及Roberts算子進行邊緣檢測操作。

2.1 Canny算子

  採用Canny算子計算的圖像邊緣如圖2所示。雖然Canny算子是在最優化思想的基礎上提出的,但是由於理論與實際存在著很大差距,因此最終得到的實際效果並不一定可以達到最優化。該算子會將一些相對其他邊緣頻率較高的邊緣也一起平滑掉,會導致一些邊緣的損失,同時該算子因為使用的是高斯函數,並以此來對圖像進行的一個平滑處理操作,故其可以更有效地抑制噪聲。Canny算子採用的是雙閾值法來進行邊緣的檢測以及將邊緣依次按順序完美地組合起來,同時因其採用了方向性搜索和多尺度檢測從而使其自身性能優於LoG算子。

2.2 Sobel算子

  採用Sobel算子所計算的圖像邊緣如圖3所示。Sobel算子因其對圖像中像素對與邊緣位置的影響採取了一系列的加權處理,故所得結果的邊緣模糊程度得以降低,而且效果很好。因為Sobel算子是以濾波算子為形式的,當其用於邊緣提取時,可以較快調取卷積函數並使用,達到既方便又準確的好處,故其使用範圍較為廣泛。但是由於其並未把圖像的主體和背景區分開來,不符合人視覺習慣,從而提取到的輪廓效果尚不夠清晰。

2.3 Prewitt算子

採用Prewitt算子所計算的圖像邊緣如圖4所示。Prewitt算子首先會對目標圖像進行一個加權平滑的操作,然後再對其做微分處理,雖然Sobel算子也會就目標圖進行一個加權平滑的操作過程,但是它們在加權部分的權值還是存在差別的。因此其可以有效抑制圖像中的噪聲成分,儘管我們已經就這個問題做了大量的工作,但是依舊會存在一些錯誤的邊緣出現在最終檢測結果中。

  對比圖3和圖4可以發現,雖然Prewitt算子與Sobel算子都可以準確地進行邊緣查找工作,但是圖像邊緣存在像素寬度異常的問題。

2.4 Roberts算子

  採用Roberts算子所計算的圖像邊緣如圖5所示。Roberts算子是通過計算圖像中一些局部的差分算子進而來找到物體的邊緣,所以他可以準確地確定邊緣點所在的位置,不過它又較易忽略一些邊緣的缺點,並且因為它並未對圖像進行平滑的操作,故不能抑制噪聲。該算子最適合用於噪聲低且邊緣陡峭的圖像中。

  通過仿真計算,對比上述邊緣檢測算法得到的圖像可以看出,Prewitt算子檢測得到的圖像線條清晰、畫面整潔、噪點較少,說明該算法更適用於高速公路高清視頻所採集的圖像的邊緣檢測。

  此外,將Prewitt算子用於動漫圖像的邊緣檢測時,計算效果較差,表明在選用邊緣檢測算法時應結合適當的應用背景。

3 結論

  雖然每個邊緣檢測算子都有著自身的優勢,但在多次對不同圖像進行仿真過程中,依據邊緣檢測得到的圖像效果可以判斷,Prewitt算子對高速公路監控視頻的邊緣檢測效果優於其它算子,檢測出來的結果線條更加清晰明了,便於肉眼觀察和後續計算,遠處的車輛輪廓也可以清楚地看到,而且很容易區分車輛的類型,其中轎車和大卡車尤為明顯。對於高速公路的高清視頻監控而言,邊緣檢測效果從好到差的排序依次是Prewitt算子、Sobel算子、Roberts算子和Canny算子。

參考文獻:

  [1] 李安安. 幾種圖像邊緣檢測算法的比較與展望[J].大眾科技.2009(12)

  [2] 張琳. 基於Kirsch算子的圖像邊緣檢測[D].東北石油大學.2014

  [3] 李武. MATLAB中圖像邊緣檢測算法研究[J].遼寧省基礎測繪院.2014(03)

  [4] 吳曦. 基於MATLAB的圖像邊緣檢測算法的研究和實現[D].吉林大學.2014

  [5] 王靜,李竹林,賀東霞,王蓓,李智. 基於邊緣檢測的各種算子及其特點[J]. 延安大學學報(自然科學版).2014(01)

  [6] 孫紅豔,張海英. 圖像邊緣檢測算法的比較與分析[J].菏澤學院學報.2010(03)

  [7] 何春華,張雪飛,胡迎春. 基於改進Sobel算子的邊緣檢測算法的研究[J]. 光學技術.2012(03)

  [8] 徐亮,魏銳. 基於Canny算子的圖像邊緣檢測優化算法[J].科技通報.2013(07)


本文來源於中國科技期刊《電子產品世界》2016年第4期第48頁,歡迎您寫論文時引用,並註明出處。

相關焦點

  • labview|邊緣檢測和爬山法算法
    labview基礎:略第三章 程序設計算法分析3.1 基於邊緣檢測的自動對焦算法邊緣是圖像最基本特徵的之一,包含圖像中用於識別的有用信息,本設計採用了邊緣檢測技術和爬山法去實現自動對焦。在本設計中,邊緣檢測算法是基於邊界灰度變化的梯度。由於圖像邊緣是圖像最基本的特徵,往往攜帶著圖像中最重要的信息。因此邊緣檢測在機器視覺、圖像分析等應用中起著重要的作用。
  • SSD目標檢測算法精講
    測試數據集上,對不同的目標檢測算法性能進行了對比。分析上表,容易得出結論:對比檢測精度可知,SSD算法的性能整體上優於Fast R-CN 和 Faster R-CNN算法。對比SSD300和SSD512可知,圖像輸入尺寸為512x512的SSD算法比輸入尺寸為300x300的SSD算法檢測性能更好。對比07、 07+12、07+12+COCO可知,訓練集的擴充有助於檢測性能的提升。
  • 常用圖像邊緣檢測算法詳解
    Roberts邊緣檢測算子是一種利用局部差分算子尋找邊緣的算子,Robert算子圖像處理後結果邊緣不是很平滑。經分析,由於Robert算子通常會在圖像邊緣附近的區域內產生較寬的響應,故採用上述算子檢測的邊緣圖像常需做細化處理,邊緣定位的精度不是很高。
  • 目標檢測算法YOLO-V1算法詳解
    ❝前面我們一起學了SSD算法的相關知識,如下:SSD目標檢測算法必須知道的幾個關鍵點目標檢測算法SSD結構詳解❞
  • 目標檢測算法之SSD
    前言昨天介紹了特徵金字塔網絡用於目標檢測,提升了多尺度目標檢測的魯棒性,今天開始講講One-Stage目標檢測算法中SSD算法。這個算法是我平時做工程中最常用到的,嚴格來說平時最常用的是Mobilenet做Backbone的SSD算法,因為要考慮到實際部署的時候的速度要求,不過原理都一樣。
  • 目標檢測算法之YOLOv2
    前言昨天介紹了YOLO系列的第一個算法YOLOv1,並詳細分析了YOLOv1的網絡結構以及損失函數等。今天我們將來分析一下YOLO目標檢測算法系列的YOLOv2和YOLO9000。YOLOv2原理YOLOv1作為One-Stage目標檢測算法的開山之作,速度快是它最大的優勢。但我們知道,YOLOv1的定位不夠準,並且召回率低。
  • 邊緣檢測——Canny算子
    通過這兩個步驟其實已經完成了圖像邊緣的檢測。插播一句:學習貴在總結。對於圖像處理的基礎運算比如平滑濾波、邊緣檢測、形態學等多屬於一種運算——卷積。就類似本文提到的高斯濾波和Sobel算子它們的實現本質一樣,無非是卷積模板不同而已。插播二句:既然已經通過前兩個步驟實現了邊緣檢測為何還要下面兩個步驟?
  • 亞像素邊緣檢測在小模數齒輪參數檢測中的應用
    通過對小模數齒輪圖像邊緣提取實驗,對該算法的有效性和檢測精度進行了驗證,給出了實測尺寸對比結果。實驗結果表明:本文的亞像素定位算法比傳統算子檢測定位精度更高,可滿足圖像高精度實時在線測量的要求。  Sobel算子邊緣提取  傳統的Sobel算子  Sobel算子是一種經典的微分邊緣檢測算法,它計算簡單,且檢測效果較好,能平滑噪聲,可提供較為精確的邊緣方向信息。  Sobel算子只檢測水平方向和垂直方向的亮度差分值,其經典的3×3的鄰域模板圖1所示:
  • 計算機視覺 | Day 12 邊緣檢測
    4、邊緣檢測的原理和步驟(1)濾波:邊緣檢測算法主要是基於圖像強度的一階和二階導數,但導數通常對噪聲很敏感,因此必須採用濾波器來改善與噪聲有關的邊緣檢測器的性能。9、Prewitt算法Prewitt算子是一種一階微分算子的邊緣檢測,利用像素點上下左右鄰點的灰度差在邊緣處達到了極值檢測邊緣,去掉部分偽邊緣,對噪聲具有平滑作用。其原理是在圖像空間利用兩個方向模板與圖像進行鄰域卷積來完成的,這兩個方向模板一個檢測水平邊緣,一個檢測垂直邊緣。
  • 基於MATLAB的Sobel邊緣檢測算法實現
    圖像邊緣就是圖像灰度值突變的地方,也就是圖像在該部分的像素值變化速度非常之快,就比如在坐標軸上一條曲線有剛開始的平滑突然來個大轉彎,在變化出的導數非常大
  • CV學習筆記(十五):邊緣檢測
    ,並且去使用OpenCV來實現Canny邊緣檢測算法。CV學習筆記(十三):圖像梯度 - 雲時之間的文章 zhuanlan.zhihu.com/p/11在目標檢測中,Sobel算子對灰度漸變和噪聲較多的圖像處理效果較好,但是Sobel算子對邊緣定位不是很準確(圖像的邊緣不止一個像素),因此精度要求不是很高時,Sobel比較常用。
  • 硬體加速邊緣檢測優化處理方案
    1 邊緣檢測算法設計 基於Sobel算子的邊緣檢測具有算法簡單、實現方便等優勢,但在處理圖像時會存在對噪聲敏感和邊緣界限模糊等不足,所以需要在Sobel算法的基礎上進行優化。優化後的邊緣檢測由中值濾波、膨脹濾波、邊緣檢測模塊和腐蝕濾波模塊構成,如圖1所示。
  • 機器視覺怎樣檢測產品邊緣
    1、濾波:邊緣檢測算法主要是基於圖像強度的一階和二階導數,但導數的計算對噪聲很敏感,因此必須使用濾波器來改善與噪聲有關的邊緣檢測器的性能。需要指出,大多數濾波器在降低噪聲的同時也導致了邊緣強度的損失,因此,增強邊緣和降低噪聲之間需要折中。
  • 目標檢測算法SSD結構詳解
    今天我們學習一種新的目標檢測算法SSD(Single Shot MultiBox Detector),該算法屬於One-Stage類算法範疇。首先我們先看一下One-Stage和Two-Stage類算法到底有哪些區別。
  • 計算機視覺-基於方向梯度直方圖與邊緣檢測的多維水位識別
    實現目標:通過使用計算機視覺及圖像處理技術,通過正確檢測插入水體的標尺和水體水平面的刻度值來確定水位高度。圖像數據見附件。 可允許用戶輸入標尺最上端的高度值、照相機鏡頭距離標尺最上端的和水平面形成的夾角、刻度尺正面和照相機之間夾角值,以及標尺每個刻度的高度值。要求: a. 標尺刻度靠近水面的部分可能由於長期浸泡在汙水中出現汙漬而無法識別。
  • 資料|MATLAB優化算法案例分析與應用(進階篇)
    from=leiphonecolumn_res0817內容簡介 · · · · · ·《MATLAB優化算法案例分析與應用(進階篇)》是深受廣大讀者歡迎的《MATLAB優化算法案例分析與應用》一書的姊妹篇,即進階篇。本書全面、系統、深入地介紹了MATLAB算法及案例應用。
  • opencv教程-形態學處理、邊緣檢測
    2:邊緣檢測Sobel算子:分x、y方向的邊緣檢測,精度不高。Laplacian算子:對噪聲比較敏感,比較少來做直接做邊緣檢測,常用來判斷像素是明區還是暗區。Canny算法:邊緣檢測常用算法,不易受噪聲幹擾,先通過高斯濾波去噪,再通過非極大值抑制來對邊緣瘦身,應用雙閾值來檢測強邊緣和弱邊緣,當弱邊緣和強邊緣相連時才認為該弱邊緣是邊界。
  • OpenCV實戰系列(四):Canny邊緣檢測
    OpenCV為我們提供了一個非常方便的邊緣檢測接口Canny函數,該函數的命名是以其發明者Jhon F.Canny命名的,自1986年被發明後該算法就一直很受歡迎
  • 深度學習第24講:計算機視覺之目標檢測算法綜述
    在正式的學習各類目標檢測算法之前,本節將首先對影響目標檢測算法發展歷史的主要算法進行一個綜述,以期對後面的內容起到一個提綱挈領的作用。       在 2012 年深度學習正式介入計算機視覺目標檢測任務之前,傳統的目標檢測算法一直是以滑動窗口卷積等較為傳統的方式進行區域選擇、特徵提取和分類回歸等步驟,例如在深度學習興起之前目標檢測領域較為優秀的可變形的組件模型(DPM)方法等。
  • 目標檢測算法YOLO-V2詳解
    ❝上期我們一起學習了YOLO-V1算法的框架原來和損失函數等知識,如下:目標檢測算法YOLO-V1算法詳解目標檢測模型YOLO-V1損失函數詳解【文末領福利】❞今天,我們一起學習下YOLO-V2跟YOLO-V1比起來都做了哪些改進?