張 偉
(臨沂大學 自動化與電氣工程學院,臨沂276005)
無人駕駛汽車利用車載傳感器感知車輛周圍環(huán)境,并根據(jù)感知所獲得的道路、車輛位置和障礙物信息,控制車輛的轉向和速度,從而使車輛能夠安全、可靠地在道路上行駛。 利用一些相關的傳感器來獲取汽車周圍環(huán)境的信息,利用智能算法把周圍環(huán)境中有用的信息保留下來, 然后經(jīng)過計算,判斷周圍環(huán)境中是否有車輛, 確定該車與本車的距離。 由于車輛的種類有很多,每種都有不同的車型,另外車輛所處的位置和周圍環(huán)境也會影響它的外觀,這使得現(xiàn)有的光學傳感器不能很好地應用到車輛檢測的活動中。
目前,在車輛識別的研究中圖像處理和模式識別技術得到了廣泛的使用。 由于現(xiàn)在的車輛行駛得都特別快,周圍環(huán)境瞬息萬變,因此要求車輛檢測的速度特別快,準確率足夠高。 提高算法的運行速度與準確率成為人們的研究難點。 故在此提出了基于圖像處理技術的前方車輛識別系統(tǒng)設計與實現(xiàn)。
圖像濾波可分為線性和非線性兩種。 均值濾波和高斯濾波是最常用的線性濾波,它們的主要問題是可能使圖像邊緣模糊。 而中值濾波作為常用的非線性濾波,可以較好地過濾脈沖噪聲,其問題在于相應地使圖像中的線條細節(jié)變得模糊不清。 在此選用了邊緣保持濾波器。 這是以均值濾波器和中值濾波器作為基礎進行創(chuàng)新和改造地新一代濾波器,不僅可以濾除噪聲[1],還能使圖像邊緣比較清晰地呈現(xiàn)出來。
邊緣保持濾波器的算法流程如下:以灰度圖像的每個像素為基點,選取一個比較合適的鄰域(如3×3),再計算鄰域的灰度分布均勻度,該鄰域是每個像素點的4 個角上的鄰域;選取4 個子鄰域中灰度分布均勻度最低的鄰域的灰度平均值,作為這個像素點的灰度數(shù)值。 灰度均勻度為
邊緣增強的作用是將檢測目標的邊緣信息凸顯出來,使其更明顯,便于更好地識別目標。 此外道路上陽光照射不均帶來的結果,可以通過邊緣增強的方式來削弱。 常使用的邊緣增強算子有3 種:Robert 算子,Sobel 算子[2],Prewitt 算子。 在此采用Sobel 算子。
離散Sobel 算子定義為
梯度值大小為
灰度值變化最大的方向即所謂的梯度方向,計算公式為
就路面而言,一般它們的物理性質差不多,并且光照比較均勻, 相鄰的幾個像素點的灰度值也差不多相同,通過Sobel 算子的運算可以把它們之間的接近程度用數(shù)值表示出來,一般情況下該值是一個相對接近零的數(shù)值。 車輛的灰度值與道路的灰度值會有一定的不同,Sobel 算子的作用就是突出車輛與道路的交界處的像素差異, 相比較路面與路面之間的灰度差異而言,路面與車輛的灰度差異會更大,并且還能獲得邊界的梯度方向數(shù)據(jù)。Sobel 算子在水平和垂直方向的邊緣增強作用[3]如圖1 所示。
圖1 Sobel 邊緣增強的效果Fig.1 Effect of Sobel edge enhancement
前方車輛的前進方向與獲得的圖像平面幾乎垂直,圖像獲取頻率非常高,前方車輛在環(huán)境中的形狀等特性十分突出,因此選用基于特征模型驅動的前方車輛檢測方法。
目標在灰度圖像中呈現(xiàn)的特征主要有形狀特征、邊界特征、對稱特征、灰度特征、動態(tài)變化特征。所提出的模型驅動的前方車輛檢測算法,就是根據(jù)上述內容選擇有用的特征, 再根據(jù)許多先驗知識,檢測前方是否存在車輛。 檢測過程可以分為3 個階段:①目標的初步探測,建立目標感興趣區(qū)AOI(area of interest);②在感興趣區(qū)域中找出需要的車體;③在不間斷的圖像序列中,一直尋找車輛目標。前方車輛目標檢測流程如圖2 所示。
圖2 前方車輛檢測流程Fig.2 Flow chart of forward vehicle detection
一般車輛的后部有許多水平結構。 本車與前方車體有很大距離時能夠很好地從圖像中找到平直的邊沿,從而找到前方車輛。 由于圖像中汽車具有特征明顯的平直邊沿, 因此采用Sobel 算子對圖片進行水平計算,使圖片中的平直邊沿更加地突出和明顯。 在感興趣區(qū)AOI 內,把每一行的像素灰度值相加再取其平均值[4],將圖片中從下向上每一行都進行計算。 其計算公式為
式中:bL(r),bR(r)分別為感興趣區(qū)內第r 行左側、右側的像素坐標;g(r,c)為像素(r,c)的灰度值;G(r)為AOI 中第r 行的灰度平均值。
一般情況下,灰度均值G(r)開始發(fā)生階躍變化時所對應的地方是前方車體的底部,它多是由車體投下的影子形成的,即認為已探測到可能的目標車輛(如圖3 所示)。
假如整幀圖片都沒有灰度值的階躍變化,那么就假設本車所在的車道前方?jīng)]有車體。
圖3 前方車輛的初步探測Fig.3 Preliminary detection of forward vehicle
由圖可見,以灰度均值突變行為界限,把車道分為上下兩部分,下面部分為道路,而上面部分區(qū)域存在車體的可能性極大。 如果圖像中數(shù)據(jù)比較繁雜,則該圖像就擁有大量的數(shù)據(jù)。 越繁雜的圖片,越有可能表明本車所在車道線的前方存在車輛。 信息量的大小在信息論中可以用熵來表達,即概率空間中每個事件xk的存在概率不同時的均勻度為
首先,以灰度均值發(fā)生階躍變化的一行的下方第k 行作為矩形AOI 的下部邊緣,計算該邊緣與兩側車道線的交點。 然后以所得交點向上做垂直于下部邊緣的引線,這樣就可以得到一個矩形AOI[5]。 矩形的高度應根據(jù)先驗知識來確定,要把車輛整體包裹到矩形AOI 中。
建立以對稱軸xs為原點的、新的對稱坐標系u,(-w/2)≤u≤(w/2),則u 與x 的坐標變換關系為
對于一定的xs和w,函數(shù)g(x)=g(xs+u)的偶函數(shù)、奇函數(shù)為
計算偶函數(shù)重要還是奇函數(shù)重要,需要用到能量函數(shù)的公式為
因此二者的能量函數(shù)為
經(jīng)過計算,奇函數(shù)與偶函數(shù)的均值可得前一個均值為0,后一個均值為正數(shù),這樣就無法比較奇函數(shù)與偶函數(shù)誰更重要了。 在此,采用歸一化處理的計算方法,將偶函數(shù)的均值化為0[6]:
相應地有
經(jīng)過能量函數(shù)處理,可得的對稱性測度公式為
定義測度s 的數(shù)值區(qū)間范圍為(-1,1)。 當s=1時圖像為徹底對稱,當s=-1 時圖像為徹底不對稱,參數(shù)xs與參數(shù)w 的數(shù)值和測度s 的數(shù)值為對應關系。
在矩形AOI 內一行一行地計算對稱性測度,并相加取其平均值,如圖4 所示。 圖中,下方曲線的最高峰值與上方圖片車輛的對稱軸在同一條垂直線上。
圖4 尋找前方車輛的對稱軸Fig.4 Finding the symmetrical axis of the vehicle ahead
由圖4 可見已經(jīng)找到前方車輛的底部邊緣和車輛的對稱軸。 將把圖像用垂直Sobel 算子變換,使圖像的豎直邊沿得到加強; 用垂直Hough 算子變換,計算垂直直線;對照著對稱軸就可以獲得前方車輛的垂直邊緣。 根據(jù)先驗知識設定一個車輛高寬比例,把圖像用水平Hough 算子變換,就找到了前方車輛的上部邊緣。 據(jù)此就能將車輛準確地用矩形框框出來,如圖5 所示。
圖5 前方車輛的矩形輪廓Fig.5 Rectangular contour of the vehicle ahead
圍繞基于圖像處理技術,對前方車輛識別系統(tǒng)展開了論述。 通過圖像預處理——圖像濾波、邊緣增強,使所需內容更清晰地呈現(xiàn)出來,并削弱不需要的信息;通過對前方車輛的檢測,建立感興趣區(qū)域,初步探測此區(qū)域,識別并確認目標車輛,找到所需要的目標車輛并準確地標記出來。 該系統(tǒng)經(jīng)試驗驗證可行,可有效地識別出前方車輛;對車輛識別系統(tǒng)后續(xù)研究有一定的參考價值。