王博學,王夏黎,趙曉娜,武 琦
(長安大學 信息工程學院,陜西 西安 710064)
隨著社會的發(fā)展,基于視頻的道路識別已經(jīng)成為計算機視覺的一個重要研究方向,也是交通監(jiān)控和智能交通領(lǐng)域的關(guān)鍵。因此,國內(nèi)外大量的研究機構(gòu)和人員都積極展開了相關(guān)項目的研究,也提出了大量的研究方法[1]。
目前的道路識別算法主要有灰度直方圖法、延時攝影法、邊緣檢測法、分水嶺法等?;叶戎狈綀D法是根據(jù)道路的灰度值進行判斷,適合道路占比比較大,且道路光照均勻的情況;延時攝影法是通過找到車輛集中的區(qū)域,也就是運動物體的區(qū)域,來判斷道路區(qū)域,這種方法適用于道路上車輛比較多的情況;而對于分水嶺算法,當路面上車輛較多或者距離較近時,對路面的劃分也會有一些誤差。在實際應用中,很多情況下背景都不是靜止的,即使攝像機固定也不能獲得完全靜止的背景,因此動態(tài)背景下的道路識別具有重要的實際應用價值[2]。為此,提出了一種動態(tài)背景下基于邊緣檢測的道路識別方法[3]。
文中所討論的動態(tài)背景下的道路識別是指在高處攝像機(如無人機)向下拍攝的情況下,從視頻圖像中找出道路以便做后續(xù)處理,采用的方法是邊緣檢測,并與不同的道路識別方法進行對比。
邊緣檢測是圖像處理和計算機視覺的基本問題,目的是標識數(shù)字圖像中亮度變化明顯的點[4]。一般邊緣是圖像上灰度變化最劇烈的地方,邊緣檢測的基本思想是對圖像各個像素點進行微分或求二階微分來確定邊緣像素點。圖像的邊緣檢測通??梢苑譃?個步驟:濾波、增強、檢測、定位,其實質(zhì)是采用某種算法提取出圖像中對象與背景間的交界線。圖像處理中有多種邊緣檢測(梯度)算子,常用的有Canny算子、Laplacian算子、Roberts算子、Sobel算子和Kirsch算子等。該課題采用的是Canny算子,使用兩個閾值檢測強的和弱的邊緣,如果它們被連接到邊緣,那么輸出只包含弱邊緣,因此,此算子既能抗噪又能保持弱邊緣[5]。
Canny邊緣檢測算子是一種多級檢測算法[6],1986年由John F.Canny提出,同時提出了邊緣檢測的三大準則:
(1)低錯誤率的邊緣檢測,檢測算法應該精確找到圖像中盡可能多的邊緣,盡可能地減少漏檢和誤檢;
(2)高定位性,標識出的邊緣要與圖像中的實際邊緣盡可能接近;
(3)最小響應,圖像中的邊緣應該只被標記一次,同時圖像噪聲不應產(chǎn)生偽邊緣。
用Canny算子檢測圖像邊緣的基本流程如圖1所示。
圖1 Canny邊緣檢測流程
(1)消除噪聲,一般情況下使用高斯濾波器對圖像進行平滑;
(2)用一階偏導有限差分來計算濾波后圖像梯度的幅值和方向;
(3)對梯度幅值進行非極大值抑制,這一步排除非邊緣像素,找出圖像梯度中的局部極大值,將其他非局部極大值點置零以得到細化的邊緣;
(4)滯后閾值,需要設(shè)定兩個閾值(高閾值和低閾值),若某一像素位置的幅值超過高閾值,則該像素被保留為邊緣像素,若小于低閾值,該像素被排除,若在兩個閾值之間,該像素僅僅在連接到一個高于高閾值的像素時被保留。
傳統(tǒng)的Canny算法使用2*2有限差分計算梯度值,這種方法對邊緣的定位比較準確,但是對噪聲比較敏感,容易出現(xiàn)假邊緣和丟失邊緣細節(jié)等問題[7]。這種常見的方法沒有考慮到8鄰域中像素的對角方向,不具有45°旋轉(zhuǎn)不變性,即在邊緣有偏向45°和135°方向時,邊緣的梯度幅值會發(fā)生變化。針對傳統(tǒng)Canny算法在計算梯度幅值上的缺陷,文中采用一種3*3鄰域來計算梯度幅值,即在原有的x方向和y方向上添加了45°和135°方向的梯度模板。
X方向矩陣、Y方向矩陣、45°方向矩陣和135°方向矩陣分別如下:
由于大部分道路邊緣都是兩條平行的直線或者曲線,即道路存在平行的雙邊緣的先驗信息,所以可根據(jù)此先驗信息對邊緣檢測后的圖像做進一步處理,提高道路檢測的準確率[8]。其中一種非常有效的檢測方法就是Hough變換。Hough變換于1962年由Paul Hough提出,是數(shù)字圖像處理中的一種特征提取技術(shù),也是識別幾何形狀的基本方法之一,應用非常廣泛,也有很多改進,在圖像處理中起著重要的作用。
Hough變換通過一種投票算法檢測具有特定形狀的物體,其基本原理是利用點與線的對偶性,將原始圖像空間中給定的曲線通過曲線表達形式變?yōu)閰?shù)空間的一個點,這樣就把原始圖像中給定曲線的檢測問題轉(zhuǎn)化為尋找參數(shù)空間中的峰值問題,也即把檢測整體特性轉(zhuǎn)化為檢測局部特性,比如直線、弧線、圓、橢圓等[9]。在使用Hough變換之前,首先要對圖像進行邊緣檢測的處理,即Hough變換的直接輸入只能是邊緣二值圖像。文中使用Hough變換對邊緣檢測后的圖像進行了識別。
智能交通系統(tǒng)是將先進的計算機處理技術(shù)、信息技術(shù)、數(shù)據(jù)通訊傳輸技術(shù)及電子自動控制技術(shù)等有效地綜合運用于交通管理體系,將人、路、車有機結(jié)合起來,建立起的一種實時、準確、高效的交通運輸綜合管理系統(tǒng)[10]。道路檢測是智能交通系統(tǒng)中重要的基礎(chǔ)研究內(nèi)容之一,而道路作為現(xiàn)代交通體系的重要組成部分,其信息在城市規(guī)劃、車流量預測、交通評估、軍事打擊等諸多領(lǐng)域都起到了重要作用。由于道路的多樣性和外界環(huán)境的復雜性,如何實時、準確地對動態(tài)背景下的道路進行檢測是目前道路識別領(lǐng)域研究的重點,這種情況下研究的問題更為復雜,目前研究相對較少,成果也不夠完善和成熟。該課題主要對常規(guī)的邊緣檢測進行改進,并與其他幾種檢測方法進行了對比實驗。
灰度直方圖法是根據(jù)道路的灰度值進行判斷[11]。首先將視頻中每一幀變成灰度圖像,這樣每個像素值的取值范圍為0到255,因此,可以對圖像進行灰度統(tǒng)計,得到一個大小為256的數(shù)組。根據(jù)得到的數(shù)據(jù)畫出直方圖,再根據(jù)道路在視頻圖像中像素分布的情況進行定位,最后得出道路檢測的結(jié)果,如圖2所示。
(1)像素分布直方圖
(2)道路定位圖
(3)道路識別結(jié)果
根據(jù)圖像可以看出,在原圖像中存在三種灰度值不同的區(qū)域,其中道路區(qū)域面積比較小,在直方圖的統(tǒng)計結(jié)果中正好有三個明顯的峰值,在理想情況下取出最小峰值所在的區(qū)域,即可以得到道路區(qū)域[12]。但是這種方法得到的結(jié)果偶然性比較大,因為不能保證道路的像素點一定是峰值,而且如果路面上有較多的車輛,該方法的識別效果會大大下降。
所謂延時攝影就是將很長的一段視頻在一個非常短的時間內(nèi)播放完畢,也可以將其運用到道路區(qū)域識別[13]。其思想就是將很長的一段時間的幀壓縮到同一個幀圖像里,那么所有的車輛都會集中在這一幀圖像上,所以只要找到車輛集中的區(qū)域,也就是運動物體的區(qū)域,那么可以把該區(qū)域當作道路區(qū)域。于是將問題轉(zhuǎn)化為如何識別出運動物體的區(qū)域。首先,要去除背景的干擾。文中采用幀間差的方法去掉背景只保留運動的前景,再對圖像進行平滑去噪,變化為灰度圖像,進而變化為二值化圖像,得到的結(jié)果就只剩下存在運動物體的前景光點圖像。接下來取一段時間內(nèi)的視頻幀,每兩幀進行一次差,得到的結(jié)果與上一個結(jié)果進行累加,最后得到一個“延時攝影”的結(jié)果圖像,實驗結(jié)果如圖3所示。
(1)運動目標提取
(2)運動目標累加
從結(jié)果中可以看出,有明顯的道路光點,那就是所要的道路區(qū)域。這種方法適用于道路上車輛比較多的情況,如果車輛不多,那么把輸入的時間段延長也能得到不錯的效果。
通過檢測每個像素及其鄰域的狀態(tài),以決定該像素是否位于一個物體的邊界上。如果一個像素位于一個物體的邊界上,則其鄰域像素的灰度值的變化就比較大。
實驗首先對視頻圖像中道路的位置進行初步定位,確定其大概位置,接著用高斯濾波器平滑圖像,再用改進后的有限差分來計算梯度的幅值和方向,對梯度的幅值進行非極大值抑制。對于一般圖像,在梯度的圖像像素中,像素值越大,梯度值就越大[14]。對于Canny算子,進行非極大值抑制也是關(guān)鍵的一步,一般來說,就是要尋找像素點的局部最大值,將非極大值點的灰度值設(shè)置為0,這樣就可以屏蔽掉一大部分非邊緣的點[15]。每次做檢測時找出所有直線,因為道路邊緣互相垂直且距離相近,所以在檢測出的直線中找出距離上一次最近的直線作為當前的定位結(jié)果。實驗結(jié)果如圖4所示。
(1)道路檢測 (2)道路分割
文中選取不同背景的圖像進行測試,針對不同算法給出了實驗結(jié)果。從實驗結(jié)果可以看出,在進行動態(tài)背景下的道路識別時,灰度直方圖法得到的結(jié)果偶然性比較大,因為不能保證道路的像素點在直方圖中的位置,而且如果路面上有較多的車輛,該方法識別的效果會大大下降;延時攝影法可以準確識別出道路,但是其適用于道路上車輛較多的情況,如果道路上車輛較少且為動態(tài)背景的話,就無法通過車輛運動情況來準確檢測到道路的位置。由于這兩種方法都有其限定條件,影響了識別范圍,而邊緣檢測的限定條件相對較少,因此準確率較高,具有較好的識別效果。
考慮到道路識別的環(huán)境復雜性等問題,結(jié)合靜態(tài)背景下道路識別的方法,提出了一種基于邊緣檢測且運用于動態(tài)背景下的道路識別方法。該方法對傳統(tǒng)的Canny邊緣檢測算法的梯度幅值計算進行改進,并且與其他兩種道路識別算法進行了實驗對比。結(jié)果表明,該算法具有較好的準確性和可行性。