摘 要: 為減少因駕駛員無意識偏離車道行駛造成的交通事故,,基于ARM和OpenCV建立嵌入式車道偏離報警系統(tǒng)。重點介紹了系統(tǒng)的設(shè)計,、平臺的搭建和算法處理流程,。該系統(tǒng)通過攝像頭采集獲取圖像信息,并應用OpenCV對圖像進行預處理,,通過提取圖像中車道線信息,,評估車輛行駛狀態(tài)是否偏離車道中心位置,,根據(jù)車輛的行駛狀態(tài),發(fā)出報警,,提醒車輛駕駛?cè)藛T當前行駛偏離情況,,以達到輔助安全駕駛的目的。
關(guān)鍵詞: 車輛離道報警系統(tǒng),;嵌入式系統(tǒng),;OpenCV;安全輔助駕駛
0 引言
近些年隨著智能汽車的發(fā)展,,汽車的主動安全性能受到人們的廣泛關(guān)注,,安全輔助駕駛的設(shè)備大量涌現(xiàn),相關(guān)研究已經(jīng)成為智能交通系統(tǒng)研究的重要內(nèi)容,。大量相關(guān)研究表明,,約有44%的車輛事故是由駕駛員疲勞駕駛或其他因素引起的車輛無意識偏離車道導致的。因此,,車輛離道報警系統(tǒng)能夠有效避免事故的發(fā)生,,提高駕駛安全性能。
目前大多數(shù)嵌入式車輛離道報警系統(tǒng)多由一塊簡單的嵌入式CPU配以DSP或FPGA處理器加速圖像處理部分[1],,抑或在ARM處理器的Linux操作系統(tǒng)上直接運行車道偏離檢測算法[2],。隨著近些年嵌入式處理器性能的大幅度提升,已經(jīng)可以將全部的圖像采集,、處理,、報警系統(tǒng)全部交給高性能嵌入式CPU進行處理,開發(fā)人員只需要在一種平臺上進行設(shè)計,、開發(fā)即可完成全部系統(tǒng)的搭建,,具有降低開發(fā)難度的優(yōu)勢。本研究在高性能ARM平臺上移植OpenCV(Open Source Computer Vision Library),,使用OpenCV完成全部圖像采集處理以及報警功能,,系統(tǒng)集成度高,具有可用性強,、穩(wěn)定性高,、維護與升級簡單等優(yōu)勢。
1 系統(tǒng)設(shè)計
在汽車行駛過程中,,駕駛員,、汽車、行駛情況(路況)三者呈緊密耦合的閉環(huán)系統(tǒng)[3],,如圖1所示,。本文主要從監(jiān)控形式情況中的路面信息入手,解決駕駛員無意識行駛偏離情況,,通過報警的方式提醒駕駛員車輛偏離車道,,從而實現(xiàn)輔助安全駕駛的目的,。
本文所實現(xiàn)的系統(tǒng)由硬件平臺、Linux操作系統(tǒng)和上層OpenCV軟件及算法程序組成,。系統(tǒng)主要實現(xiàn)功能包括:通過攝像頭獲取包含車道信息的視頻幀圖像,,通過OpenCV對取得的圖像進行預處理、車道邊緣提取,,再根據(jù)提取出的車道邊緣信息進行車輛駕駛離道評估,,最終根據(jù)評估結(jié)果進行相應的報警措施。其流程圖如圖2所示,。
2 系統(tǒng)搭建
硬件層面,,本系統(tǒng)的核心處理器選用ARM4412四核處理器,具有1.4~1.6 GHz主頻,,通過Pin口在硬件電路上直接與500萬像素高清晰攝像頭相連,,外圍配以42 V轉(zhuǎn)5 V供電電路,可以直接接入汽車42 V電源系統(tǒng),。
軟件層面,,本系統(tǒng)在ARM處理器上移植Linux 2.6.38操作系統(tǒng),并配置攝像頭驅(qū)動,。在宿主機上通過交叉編譯的方式,,向其移植OpenCV。由操作系統(tǒng)控制,,通過攝像頭采集來的數(shù)據(jù)交付OpenCV進行處理,,返回的報警信息經(jīng)操作系統(tǒng)判斷是否為無意識車道偏離,并發(fā)送給報警系統(tǒng),,發(fā)出報警。系統(tǒng)結(jié)構(gòu)如圖3所示,。
3 算法設(shè)計
本系統(tǒng)核心算法實現(xiàn)于OpenCV上,,在OpenCV上對采集來的圖像進行按幀處理,通過以下算法進行車道圖像的預處理,、車道檢測,、偏離報警功能。
在原始圖像中,,由于路面障礙物,、車道遠方景物以及天空等信息具有很強的干擾性,因此,,需要將圖像進行預處理后才能用于車道的檢測,。預處理階段將圖像初始化,裁剪選擇適當?shù)膮^(qū)域[4],,以減少干擾并提高計算效率,。為了消除畫面中的噪聲,,同時提高后續(xù)算法的準確性,還需要對圖像進行濾波操作,。在綜合考慮處理效果與運算速度的情況下,,本系統(tǒng)在預處理階段首先對圖像進行灰度化,以便加快后續(xù)處理速度,;再對畫面進行高斯模糊,,去除原始圖像中的噪點;然后進行連通域濾波,,通過預先設(shè)定的面積閾值,,消除畫面中小面積的干擾圖像,使畫面中干擾點大幅度降低,。
對經(jīng)過預處理后的圖像進行車道提取時,,首先使用Canny算子運算,提取出畫面中物體的邊緣,,由于Canny算子使用時需要確定閾值,,一些圖像識別算法采用動態(tài)閾值的方法進行處理,而導致運算量增加,,系統(tǒng)實時性降低[5],。本文通過實驗確定在較高時速行駛時Canny算子恰當閾值,采用固定閾值算法進行運算,,在保證實時性的前提下,,達到準確檢測車道的目的[6]。提取邊緣后,,通過霍夫變換[7]提取圖片中車道的信息,。再通過拋物線車道線擬合,將車道信息變換成數(shù)學模型,,即完成完整的車道信息提取步驟,。
將處理好的車道線數(shù)學模型經(jīng)過運算,求出車道中心點,,并與車輛中心點進行比較,。由于本系統(tǒng)選用前置攝像頭模式,并默認將攝像頭安裝在車頭的中央,,畫面的中心即為車輛的中心,,因此將車道中點與畫面中心坐標進行對比判斷,即可得出車輛相對于車道的偏移量,,從而得出車輛的離道情況,。根據(jù)道路寬度和車輛的寬度,本系統(tǒng)默認設(shè)置車輛偏離車道達到約30 cm時為偏離,約50 cm時為嚴重偏離,,該閾值可以在系統(tǒng)中進行調(diào)整,。總體流程圖如圖4所示,。
4 實際效果
以實際路面為例,,顯示本系統(tǒng)在不同階段處理圖像后的結(jié)果。圖5為原始圖像經(jīng)過灰度,、高斯模糊后的圖像,,圖6為Canny算子運算后的圖像,圖7為提取出的車道線以及其延長線,。
5 結(jié)論
本系統(tǒng)創(chuàng)新之處在于將OpenCV移植到嵌入式平臺上,,通過高性能的嵌入式處理器,支持系統(tǒng)的高性能運作,。相較于以往的車輛離道報警系統(tǒng),,本系統(tǒng)良好地屏蔽了嵌入式環(huán)境,提供了更好的開發(fā)模式,,易于升級和系統(tǒng)維護,。
參考文獻
[1] 芮晴波.基于DSP Builder的行車道檢測的實現(xiàn)[J].電子技術(shù)應用,2007,,33(6):60-61.
[2] 李曉松.基于ARM汽車視覺導航的車道線識別技術(shù)研究[D].武漢:湖北工業(yè)大學,,2013.
[3] 陳清陽,李健,,安向京,,等.嵌入式車道跑偏告警系統(tǒng)設(shè)計[J].計算機仿真,2008,,25(11):261-265.
[4] 劉紀紅,,康小霞,楊麗.結(jié)合機器視覺的車道偏離識別算法研究[J].電子技術(shù)應用,,2013,,39(3):133-135.
[5] BERTOZZI M, BROGGI A,, CELLARIO M, et al. Artificial vision in road vehicles[C]. Proceedings of the IEEE,, 2002,,90(7):1258-1271.
[6] 雒濤,鄭喜鳳,,丁鐵夫.改進的自適應閾值Canny邊緣檢測[J].光電工程,,2009,36(11):106-111.
[7] 韓博.嵌入式車道偏離預警系統(tǒng)[D].吉林:東北師范大學,2014.