李成勇,王 莎,陳成瑞
(重慶工程學院電子信息學院,重慶 400056)
如今為解決人為因素造成的交通事故,無人駕駛技術崛起,其中安全輔助駕駛技術是無人汽車的研究創(chuàng)新領域之一。車道偏移識別是汽車輔助駕駛系統(tǒng)中的一部分,有助于在駕駛員疲憊行車、注意力不集中、出現(xiàn)怒路情緒的時候預示駕駛員做出正確操作[1]。
安全輔助駕駛是智能交通的重要研究方向,近二十年來,車道偏離預警系統(tǒng)是安全輔助駕駛的研究創(chuàng)新方向之一[2]。汽車輔助駕駛系統(tǒng)最早見于1995年卡內(nèi)基梅隆大學ALY等人研制的AURORA系統(tǒng),得到商用是2000年德國和美國公司聯(lián)合開發(fā)的Auto Vue系統(tǒng),還有近年來研發(fā)的ALVINN系統(tǒng),由于使用較復雜的神經(jīng)網(wǎng)絡算法,系統(tǒng)主機過大,造成功率消耗大,無法廣泛應用。SCARF系統(tǒng)利用Hough變換,降低了功耗,只是車道線擬合為斜線,實際難以應用[3]。車道偏離預警系統(tǒng),使用控制器、傳感器、顯示器、攝像頭等元器件制造而成。模擬情景,小車行駛在路上,開啟偏移系統(tǒng),攝像頭根據(jù)路況實時采集、更新行駛過程中車體與車道標識線的距離[4],通過處理后將信息傳遞給單片機、傳感器,若此時行駛路徑發(fā)生偏移便能在短時間內(nèi)由控制器發(fā)出警報,提前警示駕駛員,為駕駛員預留更多的反應時間與空間[5]。車道偏移技術是其中的重要組成之一,系統(tǒng)的研究對降低交通事故發(fā)生概率有很大的影響,對人類生存有重大意義[6]。車道偏離識別技術的研究方向多基于視覺攝像頭,但是無論從國外研究現(xiàn)況還是國內(nèi)研究技術水平看,通過視覺方式實現(xiàn)車道偏移預警功能,很大程度受當?shù)貧夂颦h(huán)境影響和光照突變影響[7]。
為了有效應用光電圖像技術,針對車道偏移識別原理[8],本文設計了基于CMOS圖像采集的車道偏移識別系統(tǒng),在車道偏移識別系統(tǒng)中通過車道線圖像特征的提取,采集到的圖像采用快速迭代圖像增強算法進行處理,實現(xiàn)小車在行駛上道路上的車道偏移識別。
本系統(tǒng)基于面陣攝像頭傳感器的車道偏移識別技術,選擇MC9S12XSl28為主控制器,利用CMOS面陣攝像頭傳感器,運動裝置(比如智能小車)對特定車道的參數(shù)進行實時采集和處理,當車道發(fā)生變化和偏移時,能自動發(fā)出報警提示或自動控制運動方向。結合自動駕駛技術的前沿技術,采用模塊化思想,通過對路徑信息的采集、識別和處理后,可準確識別路徑信息進行車道采集,圖1為系統(tǒng)硬件結構框圖。
圖1 系統(tǒng)硬件結構框圖
采集路面信息,首先利用攝像頭傳感器對路面信息進行采集,然后處理圖像信息,處理方式多種多樣,本系統(tǒng)針對智能小車賽道的設置選用的圖像處理方式主要有二值化圖像處理法[9]、圖像信息濾波、黑線信息的提取以及基于CMOS攝像頭智能循跡系統(tǒng)設計尋跡算法。
本系統(tǒng)采用OV7620CMOS攝像頭傳感器,其原理是攝像頭將圖片的像素點轉換成能計算的電壓信號,電壓信號的值反映了相應圖像的像素點的灰度值,因此根據(jù)攝像頭采集處理能得到路面信息。
CMOS的每個像素點包含A/D轉化和放大器,相當于是人類的眼睛,若配置過多的外設壓縮像素感光區(qū)的表面積就會使CMOS的感光度降低。CMOS感光元件的驅動方式為主動型,感光電荷由電晶體放大將每個像素電荷傳輸?shù)酵ǖ?。使用MC9S12XSl28微控制器對圖像采集,其中解析度的高低是決定采集難度的關鍵。事實上,標準的視頻信號處理器每秒鐘能處理50~60張圖像,圖像的分辨率越高,其處理所占的時間越少。若選用的單片機信號處理速度跟不上圖像處理速度,那么選用低分辨率的攝像頭處理效果更好,通過多次實驗測試,選用30萬像素的CMOS攝像頭最好。單片機A/D轉換時間越快,分辨率就越高,視頻信號持續(xù)的時間就越短,而A/D轉換器對信號采集的像素點越少,處理速度就慢。為了給圖像處理留出更多的時間,本系統(tǒng)將A/D取樣的方法替換為二值化方法。
本系統(tǒng)以智能小車為試驗模型,采用CMOS攝像頭識別白道黑線式道路信息,攝像頭輸出的是將圖像信號,同步信號,行、場消隱信號這三種信號組合起來形成的黑白全電視信號。攝像頭工作原理是按一定的分辨率,以隔行掃描的方式采集圖像上的點,當掃描到某點時就通過圖像傳感芯片將該點圖像的灰度轉化成相應的電壓值,然后輸出信號。圖像處理是針對像素點的行與列處理,首先解釋第一行的行同步信號,行首處于消隱區(qū),即系統(tǒng)還沒有進入顯示區(qū)域,然后行同步信號,接著采集包含道路信息的圖像信號,根據(jù)攝像頭信號處理,以智能小車賽道白色路面為高電平,黑色引導線為低電平[10]。
若采集區(qū)中有多個復合消隱脈沖,且個別脈沖持續(xù)時間長于其他的消隱脈沖,那么它就是場同步脈沖,標志掃描切換低電平就是場同步脈沖代表著新的采集面的更新。其中場消隱區(qū)恰好處于上一幀的結尾和下一幀的開始處,系統(tǒng)要處理下一場的信息必須等消隱完成后才能開始下一幀的視頻信號處理。
基于面陣CMOS圖像的特點,運用信號累加法除去噪聲,結合FPGA的高速處理特征,將同一行列的信號進行傳輸和保存,選用FPGA作為信號采集和處理的基礎平臺。在實際應用中,路面多為黑白搭配由黑色中心線引導,因此可以采用二值數(shù)據(jù)的方法來獲取存儲路面信息。圖像二值化就是為了圖像增強處理和邊緣提取所做的預處理操作,經(jīng)過梯度算子過濾,圖像中的噪點得到一定的抑制。將圖片像素點的灰度值設為0或255,設置全零就是純白色,設置全255就是純黑色效果。通過設置灰度圖像就可以獲得圖像整體和局部特點。
本系統(tǒng)使用的是攝像頭采集路面信息,在數(shù)字圖像處理中二值圖是重要的處理方法之一,圖像處理技術主要包括:CMOS信息采集、道路狀況的提取等,二值圖像數(shù)據(jù)采集使用的是串口傳圖方式,該圖像處理法讓圖像處理變得更簡單,數(shù)據(jù)量更小,圖像采集傳感器采集流程圖如圖2所示。
圖2 圖像采集傳感器采集流程圖
圖像二值化是圖像處理的基礎技術,二值化無非是將數(shù)據(jù)變?yōu)?、1的數(shù)據(jù),設置好閾值即可,直接從第一行開始描點,描點到最后一行,描完就是所想采集實現(xiàn)的圖像。二值化算法在圖像信息壓縮、邊緣提取和形狀分析廣泛應用,本系統(tǒng)通過捕捉模塊采集行同步信號、場同步信號和二值圖像信號,在中斷服務子程序中處理二值圖像并保存于緩沖區(qū)。
行同步信號,中斷函數(shù)按順序依次處理第一行數(shù)據(jù),然后行數(shù)加一,并處理當前行數(shù)據(jù),例如信息初始化、采集中斷使能以及起始位確定等功能。場同步信號,中斷程序對其進行行計數(shù)初值設定和同步信號捕捉。
二值圖像處理,視頻信號的閃動變化標志著圖像邊沿,通過看數(shù)據(jù)手冊的方式設置程序,存儲圖像信息。使用二值化圖像采集法會用到單片機中的三個輸入管腳,軟件運行由輸入信號捕捉。事實上,以二值化法存儲圖像信息就是將圖像內(nèi)容轉變?yōu)?,1信號,使用按位存儲圖像的方式。智能小車賽道搭建特征是非常明顯的,黑色是引導線,白色是路面,因此在特征非常明顯的前提下,經(jīng)過硬件二值化電路處理后的波形趨勢穩(wěn)定,為方形方波,且設定白色路面為高電平,黑色引導線為低電平,智能小車賽道原始圖如圖3所示,二值化算法處理對比如圖4所示。采用二值圖像法不僅提取保留了路面特征信息,而且優(yōu)化了存儲空間,雖然現(xiàn)實的圖像信息沒有原始圖像清晰但已經(jīng)能適用于智能小車賽道識別的功能。
圖3 智能小車賽道原始圖
圖4 二值化算法處理后對比圖
二值化算法確定閾值a,設定圖像像素點的灰度值大于閾值就自動設置成255白色,相反的就為0黑色,因此采用二值化方法處理的圖像只有黑白兩種顏色,本系統(tǒng)圖像閾值的選取方法采用迭代法[11]。
由二值化圖像處理算法公式:
式中:S(x,y)——采集圖像;
r(x,y)——輸出二值化圖像;
*——卷積運算;
F(x,y)——閾值處理函數(shù),其表示為:
其中,c為閾值系數(shù);λ表示一個標準系數(shù)。式(2)滿足如下條件:
從以上表達式得出:卷積的主要目的是估計出圖像像素點與周圍加權平均的亮度變化,除去其亮度變化,只留下反射屬性,使車道線圖像特征效果增強。
采集到的圖像由于車體等障礙物產(chǎn)生的陰影對車道線遮擋的失真較大,采用改進迭代圖像增強算法對閾值進行處理,得到更好的效果,公式如下:
式中:rn(x,y)——前一次閾值迭代值;
rn′(x,y)——rn(x,y)與亮度差之和。
式中:Δl——單點的亮度差;
max——圖像亮度閾值最大值。
經(jīng)過n次迭代后,當rn′(x,y)>max時,將其代入式(4),得到的rn+1(x,y)就是增強圖像后輸出閾值。
車道線圖像通過二值化圖像處理后,智能小車賽道信息已經(jīng)由模擬信號轉換為數(shù)字信號提取出,但信號在傳輸?shù)倪^程中仍然存在干擾,如若不處理干擾就會對后面的操作產(chǎn)生影響。因此需要進行中值濾波。中值濾波可以濾掉車道線圖像中存在的噪點,所謂噪聲就是受外界干擾形成的噪聲點,無規(guī)律分布,擾亂目標信息的提取,造成誤差。首先對MC9S12XSl28初始化,進行圖像檢測,用道路圖像二值化處理后,迭代優(yōu)化選擇好閾值,利用算法程序,對攝像頭攝取車道線圖像進行中值濾波處理,由MC9S12XSl28采用處理,算法流程如圖5所示。
圖5 中值濾波優(yōu)化算法流程圖
其原理是在特定的范圍內(nèi),根據(jù)一個中間值去除圖像像素點中灰度值較大或較小的帶點,而這些像素點往往靠近邊沿不會影響圖形整體效果。那么關于如何計算中間值就尤為重要了,根據(jù)圖形分辨率的大小按照強度值對像素點進行排序,能得到有序數(shù)組,然后根據(jù)排序數(shù)列的大小選取中間值,這時就能得到新的值。通過中值濾波后的圖像變得更平滑,減少非目標區(qū)給二值化結果帶來的噪聲。車道線邊沿圖像像素經(jīng)過中值濾波后會發(fā)生一些細微的變化,但是所處理的圖像都是灰度值差距較大的點,如圖6中值濾波去噪圖,因此智能小車對于車道線特征能較為精確識別,這樣就能在小車將要發(fā)生偏移的時候,及時扭轉,防止小車發(fā)生碰撞。
圖6 中值濾波去噪圖
本系統(tǒng)基于面陣攝像頭傳感器的車道偏移識別技術,通過選取合適的模塊芯片,了解相關的模塊性能,組裝了包括電源電路模塊、控制模塊、驅動模塊的測試智能小車,如圖7所示。搭建IAR和Visual Studio 2012開發(fā)環(huán)境,編寫軟件控制程序。然后將程序燒入控制芯片,聯(lián)合硬件和軟件進行系統(tǒng)整體性能測試。
圖7 智能測試小車
測試過程中將小車放置于黑白賽道上,通過線上調試,觀察數(shù)據(jù)值是否為兩邊小,中間大,其中兩邊數(shù)據(jù)小說明為賽道邊緣,中間數(shù)據(jù)大說明為賽道的白色部分。若結論如此,則說明該數(shù)據(jù)正確可用,反之亦然。另外的,在選用數(shù)據(jù)進行處理的時候是由中間數(shù)據(jù)向兩邊找,通過差值判斷出是否找到黑色邊界,若兩者差值大說明找到了邊界,同理則沒有找到。采集到的車道圖像經(jīng)過上述處理后,車道黑色邊界就可提取到,同時保存左右兩邊界的坐標值,車道的中心坐標取左右兩坐標值的平均值得到,小車與車道之間的偏差值用賽道中心坐標和小車中心坐標之差,控制器根據(jù)偏差值實時調整舵機的打角,讓小車能夠保持在賽道的中心行駛。經(jīng)過二值化處理和中值濾波處理后對黑色邊界線進行提取以此確定賽道邊沿,為智能小車識別賽道線并設置舵機轉角做準備。測試數(shù)據(jù)結果如表1所示。
表1 測試結果
由測試數(shù)據(jù)分析得出:由近及遠選取像素點,因為距離越近圖像處理越準確,處理后的圖像從中間向兩邊檢測,保證點選取的準確性,用繼承的方式,根據(jù)上一次結果確定本行黑色邊沿線的位置,采用這種模式更快捷。
在多次測試后,比較坐標值,分析偏差值,得知本文的設計可以達到車道偏移識別的基本要求。本系統(tǒng)設計的難點之處在于十字路口的識別和判斷,因為小車在高速行駛的過程中無法控制自身身體端正,因此到十字路口的時候采集到的路面突然變寬,通過補線的方法能夠將該采集到的賽道情況補充為普通賽道。
基于面陣攝像頭傳感器的車道偏移識別系統(tǒng)選用CMOS高精度攝像頭采集車道信息,通過解析大量圖像,識別駕座與車道標識線的距離。該系統(tǒng)搭配PWM波、脈沖累加器,電源管理模塊,路面信息采集模塊CMOS,直流電機驅動模塊,通過模塊化設計思路,實現(xiàn)對車道信息的采集、識別和處理,在駕駛者無意識的情況下,預判偏移位置及時向駕駛者發(fā)出警報。