華北理工大學(xué)電氣工程學(xué)院 張博文 馬德彬 宋永旭 戚翔琛
本篇簡敘了一種基于OpenMV的紅綠燈智能識別測距系統(tǒng),通過卡爾曼濾波去噪預(yù)處理防止鏡頭畸變,應(yīng)用神經(jīng)網(wǎng)絡(luò)法進(jìn)行圖像識別,可以精確檢測紅綠燈數(shù)值、距離,以數(shù)字信號輸出紅綠燈信息,可作為硬件模塊應(yīng)用于各類復(fù)雜系統(tǒng),為道路檢測、汽車自動駕駛、智能機(jī)器人的研發(fā)提供了更多的可能性。
基于圖像識別的自動駕駛技術(shù)為當(dāng)今研究的熱門課題,為了更大程度的解放雙手,增加路況識別的準(zhǔn)確性與實(shí)時性,保障自動駕駛的安全性與系統(tǒng)穩(wěn)定性,本篇依據(jù)OpenMV技術(shù)、卡爾曼濾波算法、神經(jīng)網(wǎng)絡(luò)分析法,從紅綠燈識別入手,研究一種搭建于stm32平臺的紅綠燈路況識別系統(tǒng),達(dá)到路況的精準(zhǔn)識別。
本系統(tǒng)是一種搭建于stm32f403的OpenMV的嵌入式系統(tǒng),單片機(jī)與OpenMV之間采用同步串行口通信,使用stm32f403的USRT1 RX,TX分別于OpenMV的TX,RX相連,進(jìn)行數(shù)據(jù)交換,單片機(jī)將得到的數(shù)據(jù)進(jìn)行計算分析,得到所需信號。
本系統(tǒng)選用OPENMV2 M4攝像頭模組,該模組配備stm32f427芯片,OV7725感光元件,可以處理640×480 8-bit灰度圖或者320×240 16-bit RGB 565彩色圖像。選用OpenMV平臺處理速度更快,精度高,數(shù)據(jù)精確,負(fù)載輕,系統(tǒng)穩(wěn)定,可達(dá)到設(shè)計的預(yù)期效果。
本系統(tǒng)主要對于紅綠燈位置和距離進(jìn)行識別,以下簡述識別算法的改進(jìn)與優(yōu)化,作為圖像識別的基本問題,像素點(diǎn)急劇變化的關(guān)鍵事件點(diǎn)是識別的重要依據(jù)。本系統(tǒng)對于交通燈的識別主要分為形狀識別和色彩識別兩部分。
圖1 Lab顏色庫圖例
2.1.1 對比色庫
在顏色識別方面,我們對識別方法做了改進(jìn),相比傳統(tǒng)的RGB顏色模型,我們采用了對比lab色庫的方式,對于顏色和亮度分別儲存,如圖1所示,可以更好的將顏色信息反映到數(shù)據(jù)當(dāng)中,增大顏色識別的準(zhǔn)確性。Lab色彩模型比計算機(jī)顯示器,甚至人類視覺系統(tǒng)的色域都要大。在本系統(tǒng)中,分別對a軸紅綠分量,b軸黃藍(lán)分量進(jìn)行判斷,采用基于閾值的分割識別法,識別紅黃綠三種信號燈,可以改善傳統(tǒng)RGB色庫識別不準(zhǔn)確問題。
2.1.2 二值化處理
在完成了對圖片的信息色彩識別后,我們進(jìn)一步的識別,將符合閾值內(nèi)符合信號燈色彩的關(guān)鍵像素點(diǎn)設(shè)為1,其余設(shè)為0,這樣就得到了一個雙色位的識別圖,如圖2所示,在圖中我們可以看到,紅色信號燈的顏色為黑色,可以清晰看到其形狀。但是由于系統(tǒng)噪聲大等問題,圖像識別的效果仍不理想。
圖2 經(jīng)過特殊二值化處理后的圖像
2.1.3 濾波處理
接下來對圖像進(jìn)行濾波處理,我們將相鄰10ms所拍攝的圖片進(jìn)行比對,通過卡爾曼濾波算法,對不同時刻的圖片賦予不同權(quán)值,最后計算算數(shù)平方跟,結(jié)果不足0.375的值為0,反之為1,進(jìn)而得到新的二值圖像,如圖3所示。但是我們發(fā)現(xiàn)仍然有很大問題,由于車是運(yùn)動的,相鄰幾毫秒拍下的圖片進(jìn)行處理會使計算結(jié)果出現(xiàn)一定微小形變,則通過最近一次拍下的圖片對二值圖片進(jìn)行校正,得到最終的識別圖像,可以減少失真。
圖3 經(jīng)過濾波算法后的二值化圖像
對預(yù)處理后的圖像進(jìn)行識別對于,與圖形庫中的圖形進(jìn)行比對,經(jīng)過測試,匹配度超過83.45%則匹配成功,成功后對像素點(diǎn)進(jìn)行邊緣化識別,對面積進(jìn)行積分計算,可得出圖形面積(單位;像素),根據(jù)像素面積的情況計算信號燈距離。由于環(huán)境中干擾嚴(yán)重,一些圓形車燈和道路中圖案會對結(jié)果嚴(yán)重干擾,我們采用卷積神經(jīng)網(wǎng)絡(luò)法進(jìn)行識別。
圖4 識別數(shù)字實(shí)例
據(jù)我們所知,人類的視覺系統(tǒng)是世界上最優(yōu)越的系統(tǒng)之一,我們可以簡單的辨別出圖中數(shù)字“123456”,是因?yàn)槲覀儗@些數(shù)字的了解程度非常深,不知不覺中就完成了識別。機(jī)器學(xué)習(xí)也是如此,通過復(fù)雜的深度學(xué)習(xí),也可以到到同樣的效果。我們通過調(diào)用YOLO動態(tài)庫,對系統(tǒng)進(jìn)行訓(xùn)練,使系統(tǒng)“熟悉”這些圖像,可以快速識別出所需對象。識別數(shù)字實(shí)例如圖4所示。
基于OpenMV強(qiáng)大的硬件支持,和lab顏色庫比對、濾波算法、神經(jīng)網(wǎng)絡(luò)識別的算法保障,可以使系統(tǒng)識別精度準(zhǔn)確性顯著增強(qiáng)。圖5所示為本系統(tǒng)實(shí)際效果圖。本系統(tǒng)可應(yīng)用于汽車自動駕駛、道路情況分析、智能機(jī)器人研發(fā),實(shí)用性巨大。
圖5 實(shí)際效果