朱旺旺,黃宏成,馬晉興
(1.上海交通大學,汽車電子控制技術國家工程實驗室,上海 200240; 2.上汽大眾汽車有限公司,上海 201805)
隨著汽車保有量的增加,城市道路越來越擁擠,駕駛員行車與停車的環(huán)境也日益復雜,泊車作為駕駛行為的重要組成,已經(jīng)成為安全事故高發(fā)的駕駛環(huán)節(jié)[1]?;诔暡▊鞲衅鞯牟窜囕o助系統(tǒng)已成為汽車的標準配置,在泊車過程中,超聲波傳感器可探測視野盲區(qū)中的障礙物,并通過提示音的頻率變化為駕駛員反饋距離信息;但是,超聲波傳感器無法探測反射面太小的障礙物,且無法區(qū)分地面的色塊信息,限制了自動泊車系統(tǒng)的工作場景。與基于超聲波傳感器的泊車系統(tǒng)相比,基于圖像的泊車系統(tǒng)克服了超聲波傳感器采集信息的局限性,可以獲得車身周圍更豐富、更準確的數(shù)據(jù),為開發(fā)適用范圍更廣泛、更可靠的自動泊車系統(tǒng)提供了可能。
目前,國內(nèi)外很多學者都針對基于圖像的泊車系統(tǒng)開展了研究。其中,白永等[2]在車身周圍布置4個魚眼攝像頭獲取車輛周圍信息,并通過圖像處理手段獲得了周圍環(huán)境的全景影像。但是,作為一種先進輔助泊車系統(tǒng),該系統(tǒng)僅能為駕駛員提供車輛周圍信息,沒有基于獲得的圖像開展泊車算法的研究。王春香等[3]在建立了汽車全景影像的基礎上,通過Radon變換的方式提取了停車位的特征,且進行了封閉場景下的實車測試,但在Radon變換的過程中,其沿著參數(shù)空間進行了[0°,180°)的變換,而綜合考慮泊車過程中攝像頭采集到的車位線框信息可以發(fā)現(xiàn),車位線主要分布在車輛縱向速度的平行和垂直方向上。因此,結(jié)合泊車的具體工況,可改進Radon變換的參數(shù)范圍,從而降低算法的計算復雜度,提升運算效率。
本文中以某車型右側(cè)安裝的攝像頭采集的圖像為輸入,忽略攝像頭端的畸變等因素。首先進行圖像預處理,然后,結(jié)合側(cè)方位泊車的典型工況,設計了車位的檢測與分類算法,實現(xiàn)了車位分類與可用車位的提取,文中算法如圖1所示。
在攝像頭的真實工況下,自動泊車過程將受到光照不均勻、光照強度變化等環(huán)境因素的干擾;為提高后續(xù)車位檢測的精度和算法對環(huán)境的魯棒性,須先對圖像進行預處理。
文中攝像頭輸入為RGB圖像,首先通過式(1)轉(zhuǎn)換法則進行圖像灰度化。
式中:I為灰度圖像;R,G,B分別為圖像的3個通道的值;(i,j)為灰度圖像中像素坐標。
真實環(huán)境中的光照不均和光照強度的變化都會直接影響圖像邊緣提取過程的準確度,給后續(xù)的檢測帶來不可預測的后果。頂帽變換技術作為灰度形態(tài)學的一項重要應用[4],可緩解光照不均勻問題,進行形態(tài)學運算,即
式中:I′為形態(tài)學運算結(jié)果;S為結(jié)構元素;(x,y)為圖像像素坐標;(x′,y′)為結(jié)構元素像素坐標;DS為結(jié)構元素集合。
原始灰度圖的三維可視化效果圖如圖2(a)所示,圖片存在比較嚴重的灰度集中。圖像經(jīng)半徑為15的圓形結(jié)構元素進行頂帽變換,輸出見圖2(b),原始圖像的光照不均勻問題明顯減弱。
圖2 灰度三維可視化效果圖
圖像經(jīng)過頂帽變換,可緩解光照不均勻?qū)е碌幕叶燃蟹植?,但會弱化圖像中的特征,在邊緣檢測前先進行對比度拉伸,以提高圖像的對比度,同時使圖像的像素值分布更加均勻[5],采用基于概率統(tǒng)計學的直方圖均衡化進行對比度拉伸,本文中圖像灰度范圍為[0,255],轉(zhuǎn)換公式為
式中:DB為轉(zhuǎn)換后的灰度值;DA為轉(zhuǎn)換前的灰度值;Dmax為最大灰度值,即255;Hi為第i級灰度的像素個數(shù);A0為圖像面積,即像素總數(shù)。
綜合考慮頂帽變換與直方圖均衡化,可以在使得圖像的灰度整體趨于均勻的同時,保持圖像較高的對比度,如圖3所示。通過頂帽變換融合直方圖均衡化可使整體偏暗或偏亮的圖像變成亮度適當?shù)膱D像,提高算法整體的抗干擾能力。
圖3 頂帽變換融合直方圖均衡化效果對比
圖像在拍攝和傳輸?shù)倪^程總會引入各種形式的噪聲。在識別之前須先對圖像進行高斯濾波操作[6]:
式中:w為卷積模板,大小為[2a+1,2b+1],a,b均為正整數(shù);s,t為卷積模板中元素坐標;H′為頂帽變換融合直方圖均衡化的輸出;H為濾波輸出。
本文中濾波卷積模板使用3×3高斯模板,本模板來源于二維高斯函數(shù),由式(7)均值為0,方差為δ2的二維高斯函數(shù)給出。
高斯濾波在減弱噪聲的同時也會使圖像變得模糊,使用基于灰度圖像2階微分的拉普拉斯算子進行圖像銳化,其2階偏導數(shù)分別為
圖像銳化的拉普拉斯算子為
預處理和濾波與銳化過程后,基于零點交叉方法進行圖像邊緣提取,通過尋找圖像灰度值中2階導數(shù)的過零點來提取圖像中的邊緣信息[7],如圖4所示,獲得了車位線與車位內(nèi)信息的典型特征。
圖4 邊緣檢測輸出圖
定義車位主方向為車位的長邊方向,次方向為短邊方向,車位線為直線,Radon變換作為一種積分投影方法,適用于圖像直線檢測[8],在圖像二維空間中,Radon變換為
式中:δ為狄利克雷函數(shù);(θ,ρ)為 Radon空間中的參數(shù);R(θ,ρ)為 Radon空間中對應參數(shù)(θ,ρ)點處的線積分值;O為邊緣檢測的輸出。
結(jié)合泊車工況,在側(cè)方位泊車過程中,先驗知識可概括為:(1)尋找車位的過程中,車輛行駛方向與車位主方向近似平行;(2)車位的內(nèi)側(cè)長邊容易被車位內(nèi)車輛遮擋。
基于第一條先驗知識,文中將Radon變換的區(qū)間壓縮為[81°,100°]∪[171°,190°],兩個范圍分別用于檢測主方向與次方向車位線;通過壓縮Radon變換區(qū)間的方式可降低Radon矩陣維度和后續(xù)計算的復雜度,但矩陣中仍包含了車位線的完整信息,結(jié)果如圖5所示。
基于車位線具有一定寬度的事實,Radon變換過程中,車位線方向?qū)淖儞Q角度處,將出現(xiàn)兩個線積分的極大值,如圖5中框內(nèi)的亮點對所示,圖5左右小圖為Radon變換的局部放大圖,圖像空間中車位線的參數(shù)對應亮點對中心的坐標值。
圖5 Radon變換結(jié)果
在偏離主方向較多的角度上,線積分明顯小于主方向附近的線積分,通過閾值分割將Radon變換中可能為車位線的線積分值篩選出來,結(jié)果如圖6所示,圖6左右小圖為分割結(jié)果的局部放大圖。
通過3.1節(jié)中Radon變換與閾值分割,可獲得Radon空間中的多個點集,每個點集內(nèi)均包含車位線參數(shù)信息,結(jié)合K-Means聚類分析與非極大值抑制處理[9]的方法實現(xiàn)了車位線的像素級定位。
圖6 閾值分割結(jié)果
作為一種高效的無監(jiān)督機器學習方法,K-Means聚類可以獲取Radon矩陣點集的聚類中心,在KMeans聚類前,需要指出聚類中心的數(shù)量。本文中,聚類中心數(shù)量與車位線數(shù)量一致,基于3.1節(jié)中第2條先驗知識,文中舍棄車位的內(nèi)側(cè)長邊,主方向車位線數(shù)量的判別依據(jù)為
確定聚類中心數(shù)量的關鍵為確定次方向車位線的數(shù)量,文中次方向車位線檢測算法如表1所示。
表1 確定次方向車位線數(shù)量算法程序
獲取了車位主方向與次方向的車位線分布數(shù)據(jù)后,兩者取和即為K-Means聚類中心的數(shù)量。以Radon矩陣的閾值分割結(jié)果為原始數(shù)據(jù),以車位線數(shù)量為聚類中心數(shù),進行K-Means聚類分析得到對應車位線數(shù)量的聚類中心,如圖7所示。
由于聚類中心的鄰域范圍內(nèi)線積分分布不均勻,聚類分析雖可找到近似車位線參數(shù),但誤差較大,使聚類中心難以與亮點對中心重合;文中通過非極大值抑制處理,在聚類中心8像素二維鄰域范圍內(nèi)實現(xiàn)了亮點對中心的精確定位與參數(shù)獲取,運算過程如表2所示。
圖7 聚類中心
表2 基于聚類中心確定亮點對中心的算法程序
基于上述算法,結(jié)果如圖8所示,經(jīng)過亮點對中心提取算法的修正,實現(xiàn)了車位線參數(shù)的精確提取。
在本文中,圖像的坐標原點位于左上角頂點,x軸正方向水平向右,y軸正方向垂直向下;而Radon空間的坐標系原點位于圖像中心,x軸正方向水平向右,y軸正方向垂直向上。因此,須將Radon變換獲得的坐標變換到圖像坐標系中,映射關系為
圖8 精確定位結(jié)果
確定車位線參數(shù)后,為提高車位檢測算法的效率,泊車過程中的檢測區(qū)域可縮小至車位線圍成的范圍以內(nèi),興趣窗口定義為主方向車位線與圖像左右邊界圍成的區(qū)域,其中,主方向上根據(jù)前面求得外側(cè)車位線通過平移獲取內(nèi)側(cè)主方向車位線,平移距離為國家標準中側(cè)方位車位的寬度。聯(lián)立主方向車位線方程與邊界方程,可獲得4個邊界點,根據(jù)邊界點框出興趣區(qū)域,如圖9所示。文中后續(xù)的檢測工作將基于興趣窗口展開。
圖9 興趣區(qū)域
基于獲取的車位線參數(shù)信息,須對車位狀態(tài)進行決策與分類,車位狀態(tài)為有限種可能,且各狀態(tài)之間的轉(zhuǎn)移是瞬態(tài)的。因此,本文中通過分層有限狀態(tài)機對車位進行分類,分層有限狀態(tài)機在單層狀態(tài)機的基礎上通過逐層嵌套方式搭建,與單層有限狀態(tài)機相比,分層有限狀態(tài)機在處理龐大狀態(tài)體系時更加高效,且邏輯結(jié)構也更加清晰。
文中狀態(tài)機的分支基于車位的角點,車位內(nèi)障礙物來實現(xiàn)。根據(jù)3.2節(jié)中聚類中心數(shù)量可以確定當前圖像中車位角點的數(shù)量,在車位主方向上,外側(cè)車位線的方程為
而通過平移得到內(nèi)側(cè)車位線方程為
分層有限狀態(tài)機的狀態(tài)轉(zhuǎn)移條件概括如下。
(1)判別角點數(shù)量,結(jié)合泊車過程采集到的實際圖像,角點為4個或6個;4個角點表明圖像中含有1塊待檢測區(qū)域;6個角點表明圖像中含有2塊待檢測區(qū)域。
(2)依據(jù)車位外側(cè)2個角點判斷車位寬度。
(3)依據(jù)角點圍成的區(qū)域,判別障礙物情況。
(4)對于6個角點的情況,若2塊區(qū)域均可用,則選定右側(cè)的為本次可行區(qū)域。
聯(lián)合車位主方向與次方向的車位線方程、車位主方向與邊界線方程獲得圖像內(nèi)角點與邊界點,結(jié)合車位內(nèi)障礙物信息,車位分類規(guī)則庫見圖10。
圖10 車位分類規(guī)則庫
算法測試共分3部分:計算效率分析、魯棒性分析和算法檢測效果測試。與基于經(jīng)典Radon變換矩陣的車位檢測方法相比,文中通過壓縮Radon矩陣、閾值分割與興趣窗口的方法,使Radon矩陣中的元素值更適用于K-Means聚類分析,試驗結(jié)果如圖11所示,文中建立的車位檢測算法在計算效率上顯著高于未經(jīng)優(yōu)化的經(jīng)典方法。
圖11 計算效率對比
在圖像預處理階段,通過頂帽變換融合直方圖均衡化的方法減輕了光照強度變化和光照不均勻?qū)λ惴ǚ€(wěn)定性的影響。本節(jié)中算法魯棒性體現(xiàn)在圖像出現(xiàn)偏斜時,算法對車位檢測的精度,結(jié)果見圖12。當車位主方向與車輛縱向速度方向存在較大夾角時,仍可獲得比較理想的檢測結(jié)果。
圖12 偏斜圖像的檢測結(jié)果
當存在兩個可行區(qū)域時最優(yōu)區(qū)域標為斜線,同時將可用車位的理想停車位置的車輛后橋中點標為圓點,對應上述試驗工況,部分試驗結(jié)果如圖13所示。分層有限狀態(tài)機可準確推算出車位的可用情況。
圖13 車位檢測效果
以車輛右側(cè)單通道攝像頭采集的圖像為輸入,經(jīng)過圖像灰度化、頂帽變換融合直方圖均衡化獲得理想的灰度圖像,且基于零點交叉的方法提取了圖像邊緣;在邊緣提取的基礎上結(jié)合泊車的典型工況,壓縮了Radon變換的角度范圍,提升了計算效率;通過閾值分割的方法,對Radon矩陣進行預處理,進一步提高了K-Means聚類分析的計算效率;完成聚類后,通過非極大值抑制處理,在聚類中心附近實現(xiàn)了像素級別的車位線精確定位;對獲取的車位線信息,通過劃分興趣窗口提高了計算效率。還設計了分層有限狀態(tài)機,建立了表達車庫信息的規(guī)則庫,實現(xiàn)了對車位的分類,經(jīng)驗證取得了理想的效果,未來重點研究在線試驗測試,為裝車應用做準備。