泊車輔助系統(tǒng)中的車位線自動(dòng)檢測與識別
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 針對目前泊車輔助系統(tǒng)中的車位線識別問題,建立了基于360°全景鳥瞰圖像的全自動(dòng)車位線檢測與識別模型,考慮到光照對圖像處理結(jié)果的影響,先對圖像進(jìn)行了預(yù)處理,然后采用一種基于中值的自適應(yīng)Canny邊緣檢測技術(shù),并通過Hough變換,再根據(jù)車位線特征的先驗(yàn)知識對Hough變換結(jié)果進(jìn)行限制和優(yōu)化,實(shí)現(xiàn)了車位線的識別。同時(shí)對實(shí)際采集到的圖像進(jìn)行驗(yàn)證,結(jié)果識別率達(dá)到94.2%,證明了該方法的有效性和魯棒性。
關(guān)鍵詞 泊車輔助;車位線識別;自適應(yīng)Canny;Hough變換
近年來隨著對泊車輔助系統(tǒng)需求的快速增長,提出了多種車位定位的方法,這些方法大致可分為4類:基于用戶界面的、基于設(shè)施的、基于空閑位的和基于車位線的方法。與其他方法相比,基于車位線的方法有以下優(yōu)勢:(1)可以與基于用戶界面的方法結(jié)合使用來減少由于司機(jī)重復(fù)操作帶來的不便,而這是基于用戶界面方法的主要缺陷。(2)不同于基于空閑位的方法,它能更準(zhǔn)確地定位停車位,因?yàn)槠涠ㄎ贿^程不依賴于相鄰汽車的停放姿勢而僅依賴于車位線。(3)它也可以有效地應(yīng)用于傾斜車位的情況。由于傳感器的局限性,運(yùn)用超聲波傳感器基于空閑位的方法在傾斜車位的情況下會(huì)失效。(4)與應(yīng)用雙目或者運(yùn)動(dòng)聲波的基于空閑位的方法相比,它通?;ㄙM(fèi)少量時(shí)間。(5)它不需要額外的傳感器,例如立體攝像頭、掃描激光雷達(dá)或者短波雷達(dá),而是運(yùn)用后視攝像頭。
基于車位線的方法可以分為半自動(dòng)和全自動(dòng)的方法。與全自動(dòng)的方法相比,半自動(dòng)的方法可能產(chǎn)生更可靠的結(jié)果,而且花費(fèi)更少的計(jì)算資源,因?yàn)樗衼碜匀说念~外信息。Jung等人提出了一種方法,這種方法需要司機(jī)在預(yù)停車位內(nèi)標(biāo)記一個(gè)點(diǎn),然后利用方向梯度來進(jìn)行識別。實(shí)驗(yàn)驗(yàn)證這種方法只適用一種類型的車位。為克服此缺陷,提出了另外一種方法,可以識別各種類型的車位,但需要用戶更多的配合。這種方法需要用戶輸入車位兩端點(diǎn)的初始位置,構(gòu)成了車位的入口?;谶@些初始位置,采用人工神經(jīng)網(wǎng)絡(luò)和遺傳算法進(jìn)行車位的識別。
另外,全自動(dòng)的方法也得到了發(fā)展。XU等人提出了一種基于顏色分割技術(shù)的的方法識別車位線,這種方法只能識別紅色車位線,而且基于顏色信息的方法已經(jīng)被證明對光照變化是敏感的。Tanaka等人提出了一種對邊緣片段運(yùn)用RANSAC檢測一組直線來識別車位線。由于這種方法高度依賴于直線檢測,其性能會(huì)因?yàn)椴糠治蹞p而下降。Jung等人提出的方法將各種類型的車位線模型化為一種分層樹結(jié)構(gòu),基于這種結(jié)構(gòu)完成自動(dòng)識別。
但是,以上提出的方法都涉及到閾值,所以都會(huì)存在圖像處理領(lǐng)域一個(gè)普遍的問題,即閾值設(shè)置過高,重要信息就可能被遺漏;閾值設(shè)置過低,干擾信息又會(huì)被看的重要,因此一個(gè)適用于所有圖像的普適閾值難以給出,所以針對以上問題,本文采用了自適應(yīng)的思想,包括自適應(yīng)直方圖均衡化、自適應(yīng)二值化、自適應(yīng)Canny邊緣檢測,以滿足應(yīng)用的需要,實(shí)驗(yàn)證明這些算法都是有效的。
本文提出的方法可分為以下幾個(gè)過程:對汽車前、后、左、右4個(gè)攝像頭采集到的圖像進(jìn)行重建形成全景圖像;圖像預(yù)處理,包括直方圖均衡化,二值化以及形態(tài)學(xué)處理;Canny邊緣檢測以及Hough變換,然后在參數(shù)空間中利用車位線特征的先驗(yàn)信息對結(jié)果進(jìn)行優(yōu)化,最終得出識別結(jié)果。具體算法流程如圖1所示。
1 圖像預(yù)處理
通過加裝在汽車車身前、后、左、右的4個(gè)魚眼攝像頭,同時(shí)采集車輛四周的影像,經(jīng)過魚眼圖像矯正,鳥瞰變換和拼接后,形成一幅車輛4周的360°全景俯視圖,如圖2所示。
由此得到的原圖像不可避免地會(huì)受到光照、噪聲等的影響,因?yàn)榍捌谔幚淼馁|(zhì)量直接影響到后期識別的效果,所以為消除圖像中無關(guān)的信息,恢復(fù)有用的真實(shí)信息,增強(qiáng)有關(guān)信息的可檢測性和最大限度地簡化數(shù)據(jù),從而改進(jìn)特征抽取、圖像分割、匹配和識別的可靠性,需要對圖像進(jìn)行預(yù)處理,主要分為以下幾個(gè)步驟。
1.1 自適應(yīng)直方圖均衡化
首先將原彩色轉(zhuǎn)化為灰度圖像,考慮到光照影響導(dǎo)致灰度分布不均,需要對灰度圖像進(jìn)行直方圖均衡化。直方圖均衡化的基本思想是對原始圖像中的像素作某種映射變換,使變換后的圖像灰度概率密度是均勻分布的,即變換后圖像是一幅灰度級均勻分布的圖像,這意味著圖像灰度的動(dòng)態(tài)范圍得到了增加,從而可提高圖像的對比度。但是傳統(tǒng)的直方圖均衡化中灰度變換函數(shù)運(yùn)算與像素所處的位置無關(guān),這種全局性處理的算法,具有算法簡單、計(jì)算速度快等優(yōu)點(diǎn),但由于其對所有像素點(diǎn)都做同樣的處理,忽略了圖像的局部特征,這就導(dǎo)致經(jīng)過直方圖均衡的圖像將丟失有用信息,給圖像的去噪處理及邊緣檢測帶來損失。因此本文采用對比度受限自適應(yīng)直方圖均衡法(CLAHE),通過限制局部直方圖的高度來限制局部對比度的增強(qiáng)幅度,從而限制噪聲的放大及局部對比度的過增強(qiáng)。如圖3所示為分別對原灰度圖像進(jìn)行直方圖均衡化和CLAHE后的效果,可以看到CLAHE的效果明顯優(yōu)于傳統(tǒng)的直方圖均衡效果。
1.2 自適應(yīng)二值化
對圖像進(jìn)行直方圖均衡化處理后,為便于后期處理,需要對圖像進(jìn)行分割操作,達(dá)到目標(biāo)和背景分離的目的。圖像分割的關(guān)鍵是選取恰當(dāng)?shù)拈撝?,閾值選取的恰當(dāng)與否直接影響到感興趣信息的提取。這里采用局部自適應(yīng)閾值,它是根據(jù)像素鄰域塊的像素值分布來確定該像素位置上的二值化閾值。這樣做的優(yōu)點(diǎn)在于,每個(gè)像素位置處的二值化閾值不是固定不變的,而是由其周圍鄰域像素的分布來決定的。亮度較高圖像區(qū)域的二值化閾值通常會(huì)較高,而亮度較低的圖像區(qū)域的二值化閾值則會(huì)相適應(yīng)地變小。不同亮度、對比度、紋理的局部圖像區(qū)域?qū)?huì)擁有相對應(yīng)的局部二值化閾值。圖4顯示了采用該方法后的結(jié)果。
1.3 形態(tài)學(xué)處理
可以看到,在圖像分割完成后,不免存在著一些二值噪點(diǎn),為此,考慮利用形態(tài)學(xué)對圖像進(jìn)行處理。對二值圖像進(jìn)行形態(tài)學(xué)處理的基本思想是運(yùn)用一個(gè)預(yù)先定義好的簡單結(jié)構(gòu)元素去探測圖像,看這個(gè)結(jié)構(gòu)元素能否填放在該圖像內(nèi)部,并驗(yàn)證填放結(jié)構(gòu)元素方法的有效性。最基本的形態(tài)學(xué)運(yùn)算是腐蝕和膨脹,二者互為對偶運(yùn)算。腐蝕是將區(qū)域的內(nèi)邊界點(diǎn)變?yōu)楸尘?,使邊界向?nèi)部收縮,在這個(gè)過程中,小且無意義的物體將被消除;而膨脹則是將區(qū)域的外邊界點(diǎn)變?yōu)閷ο簏c(diǎn),使邊界向外部擴(kuò)張。
為利用結(jié)構(gòu)元素B膨脹集合A,可將B相對原點(diǎn)旋轉(zhuǎn)180°,得到-B,再利用-B對AC進(jìn)行腐蝕,腐蝕結(jié)果的補(bǔ)集就是所求的結(jié)果。
對輸入圖像進(jìn)行先腐蝕后膨脹,具有平滑功能,通常用于消除小對象物、在纖細(xì)點(diǎn)處分離物體、平滑較大物體邊界的同時(shí)并不明顯改變其體積,且圖像細(xì)節(jié)得以保留。圖5是經(jīng)過先腐蝕后膨脹得到的結(jié)果,可以看到經(jīng)過形態(tài)學(xué)處理后的二值化圖像已經(jīng)濾掉了部分噪點(diǎn),便于下一步的識別處理。
2 Hough變換檢測車位線
2.1 基于中值的自適應(yīng)Canny邊緣檢測
邊緣是圖像特征的一個(gè)重要屬性,蘊(yùn)含了大量的信息,能勾勒出目標(biāo)物體,因此邊緣檢測技術(shù)是圖像處理中一類重要的分析方法。Can ny算子是最常用的邊緣檢測方法。Canny算法的步驟可歸納為:
(1)去噪。因?yàn)镃anny邊緣檢測算子對于未經(jīng)處理的原始圖像中的噪聲是敏感的,所以它采用高斯模板與原始圖像作卷積,得到的結(jié)果與原始圖像相比,有輕微的模糊。這樣,單獨(dú)的一個(gè)噪聲像素在經(jīng)過高斯平滑的圖像上變得基本沒有影響。
(2)查找圖像的亮度梯度。圖像的一個(gè)邊緣可能指向不同的方向,所以Canny算法運(yùn)用4個(gè)模板分別檢測去噪圖像中的垂直、水平、對角線邊緣。利用邊緣檢測算子(如Roberts,Prewitt,Sobel)分別計(jì)算出水平和垂直方向的一階導(dǎo)數(shù)Gx和Gy由此可以得到邊緣的梯度和方向
(3)跟蹤圖像邊緣,選擇滯后閾值。較大的亮度梯度更有可能被認(rèn)為是邊緣,但在多種情況下,指定一個(gè)閾值來確定某個(gè)梯度是否為邊緣是不可能的,因此Canny采用了滯后閾值。
滯后閾值需要高低兩個(gè)閾值。假設(shè)圖像中的重要邊緣都是連續(xù)曲線,這樣可以跟蹤給定曲線中模糊的部分,并丟掉一些雖然產(chǎn)生了大的梯度但沒有組成曲線的噪聲像素。所以從一個(gè)較大的閾值開始,這將標(biāo)識出那些確信的邊緣。從真正的邊緣開始,并利用前面導(dǎo)出的方向信息,在圖像中跟蹤整個(gè)的邊緣。在邊緣跟蹤時(shí)采用低閾值,這樣就可以跟蹤曲線的模糊部分直至回到起點(diǎn)。
這個(gè)過程一旦完成,就可得到一個(gè)二值圖像,其中的每個(gè)點(diǎn)表示是否是一個(gè)邊緣點(diǎn)。
與使用一個(gè)閾值相比,Canny邊緣檢測算法使用兩個(gè)閾值使得操作更加靈活,但還是存在的普遍問題,閾值設(shè)置過高,重要信息就可能被漏掉;閾值設(shè)置過低,干擾信息又會(huì)被看的重要。難以給出適用于所有圖像的通用閾值問題。
采用的解決方法首先是計(jì)算圖像的中值median,然后根據(jù)以下公式為高閾值high_thresh和低閾值low_thresh賦值,調(diào)用Canny邊緣檢測算法對圖像進(jìn)行邊緣檢測。
high_thresh=0.66×median;
low_thresh=0.33×median; (4)
圖6和圖7分別顯示了經(jīng)典Canny邊緣檢測和基于中值的Canny邊緣檢測結(jié)果,其中圖6是經(jīng)過手動(dòng)調(diào)整到最佳結(jié)果產(chǎn)生的圖像,圖7是利用自動(dòng)設(shè)定閾值得到的結(jié)果,從中可以看出基于中值的Canny邊緣檢測算法可以實(shí)現(xiàn)自動(dòng)邊緣檢測的目的。
2.2 Hough變換
霍夫變換(Hough Transform)是一種檢測直線和解析曲線的有效方法。它把二值圖像變換到Hough參數(shù)空間,利用參數(shù)空間極值點(diǎn)的檢測來實(shí)現(xiàn)目標(biāo)的檢測?;舴蜃儞Q不但可以用于檢測圖像中的直線,還可以擴(kuò)展到任意曲線的識別,多為圓和橢圓。
運(yùn)用兩個(gè)坐標(biāo)空間之間的變換,霍夫變換將在一個(gè)空間中具有相同形狀的曲線映射到另一個(gè)坐標(biāo)空間的一個(gè)點(diǎn)上形成峰值,因此,霍夫變換把曲線的檢測問題轉(zhuǎn)換到參數(shù)空間中對點(diǎn)的檢測問題,通過在參數(shù)空間里進(jìn)行簡單的累加統(tǒng)計(jì)完成檢測任務(wù)。
考慮直角坐標(biāo)系中的一點(diǎn)(x0,y0),經(jīng)過該點(diǎn)直線的一般方程可以寫為
ρ=x0cosθ+y0sinθ (5)
參數(shù)ρ和θ可以唯一地確定一條直線,這在ρ-θ空間內(nèi)是一條正弦曲線。若將x—y平面內(nèi)同一條直線的點(diǎn)列變換到ρ-θ空間,則所以正弦曲線都經(jīng)過一點(diǎn)(ρ’,θ’),所以正弦曲線在ρ-θ空間其他各處都不相交。因此,X—Y平面內(nèi)一條直線上的無數(shù)點(diǎn)變換到ρ—θ空間內(nèi)時(shí),經(jīng)過(ρ’,θ’)的次數(shù)為無窮,經(jīng)過其他各處次數(shù)都為1。也就是說,Hough變換將X—Y平面內(nèi)的一條直線映射到了ρ—θ空間中的一個(gè)點(diǎn)。因此,Hough變換把直線檢測問題轉(zhuǎn)換到參數(shù)空間里對點(diǎn)的檢測問題,通過在參數(shù)空間里進(jìn)行簡單的累加統(tǒng)計(jì)完成檢測任務(wù)。
圖8為將Hough變換應(yīng)用到邊緣檢測圖中得到的初始結(jié)果。
可以看到,由以上過程得到的結(jié)果存在偽車位線,需要進(jìn)一步對結(jié)果進(jìn)行優(yōu)化。注意到,在進(jìn)行邊緣檢測后每條車位線都是雙邊緣的,另外,這兩個(gè)邊緣是相互平行的且具有固定的寬度和近似相等的長度,而且它們都反應(yīng)了同一條車位線,因此為了減少計(jì)算量,可以計(jì)算一個(gè)邊緣,而非兩個(gè)邊緣,在這里取兩條邊緣線的平均值作為實(shí)際的車位線?;谝陨舷闰?yàn)特征對初始識別結(jié)果進(jìn)行條件限制及優(yōu)化,得到如圖9所示的最終識別結(jié)果。
3 實(shí)驗(yàn)結(jié)果及分析
系統(tǒng)的硬件部分主要由魚眼攝像頭、圖像處理單元和顯示屏組成。由于車身內(nèi)部空間有限,圖像處理單元無法由PC機(jī)完成,因此在本系統(tǒng)中,設(shè)計(jì)使用DSP來完成視頻圖像的處理。軟件部分,以Visual Studio 2008為開發(fā)環(huán)境,并調(diào)用OpenCV庫來完成算法的實(shí)現(xiàn)。實(shí)驗(yàn)選取了200張不同情況下的車位圖像對算法進(jìn)行了驗(yàn)證,并在相同的情況下將本文的方法與傳統(tǒng)的Hough方法進(jìn)行了對比,實(shí)驗(yàn)中采用召回率和識別率來對算法的效率進(jìn)行估計(jì),其定義分別如下。
從實(shí)驗(yàn)可以看出,本文提出的基于自適應(yīng)思想的車位線檢測與識別方法具有較高的精確度和魯棒性。
4 結(jié)束語
隨著停車難的問題日益嚴(yán)峻,泊車輔助系統(tǒng)的應(yīng)用越來越廣泛,本文提出了一種綜合運(yùn)用自適應(yīng)邊緣檢測和Hough變換等算法進(jìn)行自動(dòng)識別車位線的方法。通過實(shí)際采集到的圖像對算法進(jìn)行驗(yàn)證,并與傳統(tǒng)方法進(jìn)行了對比,驗(yàn)證了本文所提方法的高精度和高魯棒性。