《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于OpenCV的嵌入式車(chē)輛駕駛偏離報(bào)警系統(tǒng)
基于OpenCV的嵌入式車(chē)輛駕駛偏離報(bào)警系統(tǒng)
2015年微型機(jī)與應(yīng)用第16期
陳潔婧1,高 錚1,桂穎溢2
(1.中國(guó)農(nóng)業(yè)大學(xué) 信息與電氣工程學(xué)院,北京 100083; 2.北京理工大學(xué) 光電學(xué)院,北京 100081)
摘要: 為減少因駕駛員無(wú)意識(shí)偏離車(chē)道行駛造成的交通事故,基于ARM和OpenCV建立嵌入式車(chē)道偏離報(bào)警系統(tǒng)。重點(diǎn)介紹了系統(tǒng)的設(shè)計(jì)、平臺(tái)的搭建和算法處理流程。該系統(tǒng)通過(guò)攝像頭采集獲取圖像信息,并應(yīng)用OpenCV對(duì)圖像進(jìn)行預(yù)處理,通過(guò)提取圖像中車(chē)道線信息,評(píng)估車(chē)輛行駛狀態(tài)是否偏離車(chē)道中心位置,根據(jù)車(chē)輛的行駛狀態(tài),發(fā)出報(bào)警,提醒車(chē)輛駕駛?cè)藛T當(dāng)前行駛偏離情況,以達(dá)到輔助安全駕駛的目的。
Abstract:
Key words :

  摘  要: 為減少因駕駛員無(wú)意識(shí)偏離車(chē)道行駛造成的交通事故,基于ARM和OpenCV建立嵌入式車(chē)道偏離報(bào)警系統(tǒng)。重點(diǎn)介紹了系統(tǒng)的設(shè)計(jì)、平臺(tái)的搭建和算法處理流程。該系統(tǒng)通過(guò)攝像頭采集獲取圖像信息,并應(yīng)用OpenCV對(duì)圖像進(jìn)行預(yù)處理,通過(guò)提取圖像中車(chē)道線信息,評(píng)估車(chē)輛行駛狀態(tài)是否偏離車(chē)道中心位置,根據(jù)車(chē)輛的行駛狀態(tài),發(fā)出報(bào)警,提醒車(chē)輛駕駛?cè)藛T當(dāng)前行駛偏離情況,以達(dá)到輔助安全駕駛的目的。

  關(guān)鍵詞車(chē)輛離道報(bào)警系統(tǒng)嵌入式系統(tǒng);OpenCV;安全輔助駕駛

0 引言

  近些年隨著智能汽車(chē)的發(fā)展,汽車(chē)的主動(dòng)安全性能受到人們的廣泛關(guān)注,安全輔助駕駛的設(shè)備大量涌現(xiàn),相關(guān)研究已經(jīng)成為智能交通系統(tǒng)研究的重要內(nèi)容。大量相關(guān)研究表明,約有44%的車(chē)輛事故是由駕駛員疲勞駕駛或其他因素引起的車(chē)輛無(wú)意識(shí)偏離車(chē)道導(dǎo)致的。因此,車(chē)輛離道報(bào)警系統(tǒng)能夠有效避免事故的發(fā)生,提高駕駛安全性能。

  目前大多數(shù)嵌入式車(chē)輛離道報(bào)警系統(tǒng)多由一塊簡(jiǎn)單的嵌入式CPU配以DSP或FPGA處理器加速圖像處理部分[1],抑或在ARM處理器的Linux操作系統(tǒng)上直接運(yùn)行車(chē)道偏離檢測(cè)算法[2]。隨著近些年嵌入式處理器性能的大幅度提升,已經(jīng)可以將全部的圖像采集、處理、報(bào)警系統(tǒng)全部交給高性能嵌入式CPU進(jìn)行處理,開(kāi)發(fā)人員只需要在一種平臺(tái)上進(jìn)行設(shè)計(jì)、開(kāi)發(fā)即可完成全部系統(tǒng)的搭建,具有降低開(kāi)發(fā)難度的優(yōu)勢(shì)。本研究在高性能ARM平臺(tái)上移植OpenCV(Open Source Computer Vision Library),使用OpenCV完成全部圖像采集處理以及報(bào)警功能,系統(tǒng)集成度高,具有可用性強(qiáng)、穩(wěn)定性高、維護(hù)與升級(jí)簡(jiǎn)單等優(yōu)勢(shì)。

1 系統(tǒng)設(shè)計(jì)

001.jpg

  在汽車(chē)行駛過(guò)程中,駕駛員、汽車(chē)、行駛情況(路況)三者呈緊密耦合的閉環(huán)系統(tǒng)[3],如圖1所示。本文主要從監(jiān)控形式情況中的路面信息入手,解決駕駛員無(wú)意識(shí)行駛偏離情況,通過(guò)報(bào)警的方式提醒駕駛員車(chē)輛偏離車(chē)道,從而實(shí)現(xiàn)輔助安全駕駛的目的。

  本文所實(shí)現(xiàn)的系統(tǒng)由硬件平臺(tái)、Linux操作系統(tǒng)和上層OpenCV軟件及算法程序組成。系統(tǒng)主要實(shí)現(xiàn)功能包括:通過(guò)攝像頭獲取包含車(chē)道信息的視頻幀圖像,通過(guò)OpenCV對(duì)取得的圖像進(jìn)行預(yù)處理、車(chē)道邊緣提取,再根據(jù)提取出的車(chē)道邊緣信息進(jìn)行車(chē)輛駕駛離道評(píng)估,最終根據(jù)評(píng)估結(jié)果進(jìn)行相應(yīng)的報(bào)警措施。其流程圖如圖2所示。

002.jpg

2 系統(tǒng)搭建

  硬件層面,本系統(tǒng)的核心處理器選用ARM4412四核處理器,具有1.4~1.6 GHz主頻,通過(guò)Pin口在硬件電路上直接與500萬(wàn)像素高清晰攝像頭相連,外圍配以42 V轉(zhuǎn)5 V供電電路,可以直接接入汽車(chē)42 V電源系統(tǒng)。

  軟件層面,本系統(tǒng)在ARM處理器上移植Linux 2.6.38操作系統(tǒng),并配置攝像頭驅(qū)動(dòng)。在宿主機(jī)上通過(guò)交叉編譯的方式,向其移植OpenCV。由操作系統(tǒng)控制,通過(guò)攝像頭采集來(lái)的數(shù)據(jù)交付OpenCV進(jìn)行處理,返回的報(bào)警信息經(jīng)操作系統(tǒng)判斷是否為無(wú)意識(shí)車(chē)道偏離,并發(fā)送給報(bào)警系統(tǒng),發(fā)出報(bào)警。系統(tǒng)結(jié)構(gòu)如圖3所示。

003.jpg

3 算法設(shè)計(jì)

  本系統(tǒng)核心算法實(shí)現(xiàn)于OpenCV上,在OpenCV上對(duì)采集來(lái)的圖像進(jìn)行按幀處理,通過(guò)以下算法進(jìn)行車(chē)道圖像的預(yù)處理、車(chē)道檢測(cè)、偏離報(bào)警功能。

  在原始圖像中,由于路面障礙物、車(chē)道遠(yuǎn)方景物以及天空等信息具有很強(qiáng)的干擾性,因此,需要將圖像進(jìn)行預(yù)處理后才能用于車(chē)道的檢測(cè)。預(yù)處理階段將圖像初始化,裁剪選擇適當(dāng)?shù)膮^(qū)域[4],以減少干擾并提高計(jì)算效率。為了消除畫(huà)面中的噪聲,同時(shí)提高后續(xù)算法的準(zhǔn)確性,還需要對(duì)圖像進(jìn)行濾波操作。在綜合考慮處理效果與運(yùn)算速度的情況下,本系統(tǒng)在預(yù)處理階段首先對(duì)圖像進(jìn)行灰度化,以便加快后續(xù)處理速度;再對(duì)畫(huà)面進(jìn)行高斯模糊,去除原始圖像中的噪點(diǎn);然后進(jìn)行連通域?yàn)V波,通過(guò)預(yù)先設(shè)定的面積閾值,消除畫(huà)面中小面積的干擾圖像,使畫(huà)面中干擾點(diǎn)大幅度降低。

  對(duì)經(jīng)過(guò)預(yù)處理后的圖像進(jìn)行車(chē)道提取時(shí),首先使用Canny算子運(yùn)算,提取出畫(huà)面中物體的邊緣,由于Canny算子使用時(shí)需要確定閾值,一些圖像識(shí)別算法采用動(dòng)態(tài)閾值的方法進(jìn)行處理,而導(dǎo)致運(yùn)算量增加,系統(tǒng)實(shí)時(shí)性降低[5]。本文通過(guò)實(shí)驗(yàn)確定在較高時(shí)速行駛時(shí)Canny算子恰當(dāng)閾值,采用固定閾值算法進(jìn)行運(yùn)算,在保證實(shí)時(shí)性的前提下,達(dá)到準(zhǔn)確檢測(cè)車(chē)道的目的[6]。提取邊緣后,通過(guò)霍夫變換[7]提取圖片中車(chē)道的信息。再通過(guò)拋物線車(chē)道線擬合,將車(chē)道信息變換成數(shù)學(xué)模型,即完成完整的車(chē)道信息提取步驟。

  將處理好的車(chē)道線數(shù)學(xué)模型經(jīng)過(guò)運(yùn)算,求出車(chē)道中心點(diǎn),并與車(chē)輛中心點(diǎn)進(jìn)行比較。由于本系統(tǒng)選用前置攝像頭模式,并默認(rèn)將攝像頭安裝在車(chē)頭的中央,畫(huà)面的中心即為車(chē)輛的中心,因此將車(chē)道中點(diǎn)與畫(huà)面中心坐標(biāo)進(jìn)行對(duì)比判斷,即可得出車(chē)輛相對(duì)于車(chē)道的偏移量,從而得出車(chē)輛的離道情況。根據(jù)道路寬度和車(chē)輛的寬度,本系統(tǒng)默認(rèn)設(shè)置車(chē)輛偏離車(chē)道達(dá)到約30 cm時(shí)為偏離,約50 cm時(shí)為嚴(yán)重偏離,該閾值可以在系統(tǒng)中進(jìn)行調(diào)整。總體流程圖如圖4所示。

004.jpg

4 實(shí)際效果

005.jpg

  以實(shí)際路面為例,顯示本系統(tǒng)在不同階段處理圖像后的結(jié)果。圖5為原始圖像經(jīng)過(guò)灰度、高斯模糊后的圖像,圖6為Canny算子運(yùn)算后的圖像,圖7為提取出的車(chē)道線以及其延長(zhǎng)線。

5 結(jié)論

  本系統(tǒng)創(chuàng)新之處在于將OpenCV移植到嵌入式平臺(tái)上,通過(guò)高性能的嵌入式處理器,支持系統(tǒng)的高性能運(yùn)作。相較于以往的車(chē)輛離道報(bào)警系統(tǒng),本系統(tǒng)良好地屏蔽了嵌入式環(huán)境,提供了更好的開(kāi)發(fā)模式,易于升級(jí)和系統(tǒng)維護(hù)。

參考文獻(xiàn)

  [1] 芮晴波.基于DSP Builder的行車(chē)道檢測(cè)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2007,33(6):60-61.

  [2] 李曉松.基于ARM汽車(chē)視覺(jué)導(dǎo)航的車(chē)道線識(shí)別技術(shù)研究[D].武漢:湖北工業(yè)大學(xué),2013.

  [3] 陳清陽(yáng),李健,安向京,等.嵌入式車(chē)道跑偏告警系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)仿真,2008,25(11):261-265.

  [4] 劉紀(jì)紅,康小霞,楊麗.結(jié)合機(jī)器視覺(jué)的車(chē)道偏離識(shí)別算法研究[J].電子技術(shù)應(yīng)用,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] 雒濤,鄭喜鳳,丁鐵夫.改進(jìn)的自適應(yīng)閾值Canny邊緣檢測(cè)[J].光電工程,2009,36(11):106-111.

  [7] 韓博.嵌入式車(chē)道偏離預(yù)警系統(tǒng)[D].吉林:東北師范大學(xué),2014.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。