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