摘 要: 鑒于紅綠燈在城市交通中占有的重要地位,通過圖像處理設(shè)計(jì)一個(gè)系統(tǒng)來輔助駕駛員判別紅綠燈。首先通過圖像采集及圖像預(yù)處理的方法獲得源圖像,然后再設(shè)立紅綠燈主要特征訓(xùn)練集,用邊緣跟蹤的方法框選出紅綠燈類似目標(biāo),對(duì)類似目標(biāo)進(jìn)行特征提取,再與標(biāo)準(zhǔn)模板做對(duì)比,確定為目標(biāo)后標(biāo)出各個(gè)燈的位置。最后通過圖像坐標(biāo)讀取各個(gè)燈的顏色分量,比較燈的各色分量,從而確定每一個(gè)燈的顏色。識(shí)別完成后將識(shí)別結(jié)果通過數(shù)字顯示或聲音提示的方式輸出以提醒駕駛員注意紅綠燈的變化。
關(guān)鍵詞: 紅綠燈;模式識(shí)別;圖像處理;智能交通
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,各個(gè)城市的機(jī)動(dòng)車輛數(shù)量迅速增加,道路交通也隨之日益復(fù)雜,交通指揮系統(tǒng)所承受的壓力越來越大。紅綠燈多處于交通樞紐地帶,負(fù)責(zé)指揮交通,因此紅綠燈的識(shí)別顯得尤為重要。然而有些駕駛員因疲勞或其他原因而未能及時(shí)注意到紅綠燈的變化,從而釀成諸多慘劇。本文通過圖像處理及顏色判別而設(shè)計(jì)的紅綠燈自主識(shí)別系統(tǒng)可以提醒駕駛員注意紅綠燈變化,繼而有望降低事故發(fā)生率。
1 設(shè)計(jì)思路
本系統(tǒng)設(shè)計(jì)主要由圖像采集、圖像預(yù)處理、紅綠燈定位、顏色判別及輸出顯示等模塊組成,如圖1所示。首先用安裝在車頂或車內(nèi)的攝像機(jī)對(duì)前方場(chǎng)景進(jìn)行實(shí)時(shí)圖像采集。由于攝像機(jī)跟隨車輛一起運(yùn)動(dòng),因此采集到的圖像難免會(huì)產(chǎn)生一些噪聲,這就需要進(jìn)行圖像預(yù)處理,以便于之后的目標(biāo)提取。設(shè)計(jì)編碼程序從采集到的圖像中定位提取出紅綠燈的位置,再定位出各個(gè)燈的坐標(biāo),然后對(duì)提取的目標(biāo)進(jìn)行顏色判定,將結(jié)果通過顯示器輸出。結(jié)果輸出可以多元化,例如可以用數(shù)字顯示器表示各個(gè)燈的顏色,也可以用聲音提醒;若在顏色判定的同時(shí)進(jìn)行數(shù)字讀取,還可以實(shí)現(xiàn)紅綠燈倒計(jì)時(shí)報(bào)時(shí)提醒。由于數(shù)字是實(shí)時(shí)變化的,因此數(shù)字提取涉及的條件較復(fù)雜且成功率尚未達(dá)到要求,本文暫且不對(duì)此模塊做研究。
2 圖像采集
圖像采集需要在車頂或車內(nèi)前方安裝一款攝像機(jī),對(duì)汽車前方進(jìn)行實(shí)時(shí)圖像采集。攝像機(jī)選擇條件是像素高、處理速度快、價(jià)格便宜。經(jīng)過綜合考慮,車載攝像機(jī)需要符合的各方面要求及部分規(guī)格數(shù)據(jù)如下:
(1)帶彩色顯示屏車載錄像儀,可即錄即看;
(2)鏡頭角度:90°;
(3)感光芯片:1/4 color CMOS;
(4)拍攝像素:1 280×720/720×480/640×480 pixels;
(5)拍攝文件格式:錄像AVI格式,拍照J(rèn)PG格式,可連接電腦或在導(dǎo)航儀、手機(jī)等設(shè)備上即時(shí)播放;
(6)支持幀率調(diào)節(jié)以節(jié)省空間或錄制最優(yōu)質(zhì)圖像功能;
(7)支持SD/SDHC/MMC卡存儲(chǔ)拍攝,支持32 GB存儲(chǔ)卡;
(8)帶有數(shù)字化部件,可以直接將數(shù)字圖像通過計(jì)算機(jī)端口(如并口、USB接口)或標(biāo)準(zhǔn)設(shè)備(如磁盤驅(qū)動(dòng)器)傳送給計(jì)算機(jī)。
3 圖像預(yù)處理
圖像采集之后,通過攝像機(jī)固有的模數(shù)轉(zhuǎn)換部件完成圖像數(shù)字化,通過端口輸入微處理器。
因?yàn)閿z像頭是隨汽車運(yùn)動(dòng)的,因此采集到的圖像難免會(huì)出現(xiàn)邊緣模糊。另外由于空氣狀況、日照變化、電磁等干擾,再加上圖像采集過程中會(huì)受到噪聲的影響,會(huì)使采集到的圖像變得模糊,如圖2所示,因此圖像采集完畢后需要進(jìn)行圖像預(yù)處理。
對(duì)于隨即干擾所產(chǎn)生的椒鹽噪聲可以用中值濾波處理[1]。圖3為圖2所示圖像經(jīng)中值濾波后的效果圖。中值濾波是一種局部平均平滑技術(shù),對(duì)于脈沖干擾和椒鹽的抑制效果較好。其濾波原理是:對(duì)一個(gè)滑動(dòng)的窗口內(nèi)的諸像素灰度排序,用其中值代替窗口中心像素(x,y)原來的灰度,若窗口中的像素有偶數(shù)個(gè),則取兩個(gè)中間值的平均。
對(duì)于圖像邊緣模糊問題可以用高通濾波方法處理。圖像中的邊沿或線條與圖像頻譜中的高頻分量相對(duì)應(yīng),因此可以用高通濾波的方法使低頻分量得到抑制,從而增強(qiáng)高頻分量使圖像邊沿或線條變得清晰[1]。理想高通濾波器的轉(zhuǎn)移函數(shù)為:
4 紅綠燈定位
圖像預(yù)處理完畢后進(jìn)入目標(biāo)定位階段,需要在整幅圖像中定位出目標(biāo)(即紅綠燈),并標(biāo)記出各個(gè)燈的位置。由于現(xiàn)實(shí)中圖像背景復(fù)雜,光照不均勻,因此在采集到的圖片中準(zhǔn)確地定位紅綠燈的出現(xiàn)是整個(gè)系統(tǒng)的前提。
事先對(duì)紅綠燈進(jìn)行特征設(shè)定,紅綠燈特征之一是:版面多為黑色,即顏色較深,灰度值較低;另一特征是大多數(shù)紅綠燈外形固定,分橫豎兩種(本文以橫著的紅綠燈作為說明,豎著的類同),可以用訓(xùn)練與學(xué)習(xí)的方法,先搜集一些紅綠燈樣本,進(jìn)行特征標(biāo)記[2]后存入訓(xùn)練集,捕捉到待確定目標(biāo)后與樣本對(duì)比,相似度達(dá)到一定程度即認(rèn)為是目標(biāo)。對(duì)于樣品的特征設(shè)定有多種方法,這里介紹一種簡(jiǎn)單的模板法[3]。首先框定樣品的寬度和高度,對(duì)樣品進(jìn)行二值化和邊緣提取,再將樣品的長(zhǎng)度和寬度N等分,構(gòu)成一個(gè)N×N均勻小區(qū)域,對(duì)于每一個(gè)小區(qū)域內(nèi)的黑像素個(gè)數(shù)進(jìn)行統(tǒng)計(jì),除以該小區(qū)域的面積總數(shù),所得值超過一個(gè)閾值標(biāo)定為1,未超過的小區(qū)域標(biāo)定為0,如圖4所示。這樣做的好處是針對(duì)同一形狀、不同大小的樣品得到的特征值相差不大,有能力對(duì)同一形狀、不同大小的樣品視為同類。這樣不論攝像機(jī)距離物體遠(yuǎn)近都可以識(shí)別物體。
執(zhí)行時(shí)先對(duì)采集到的圖像進(jìn)行大范圍相關(guān)搜索,由于紅綠燈外框基本為黑色,灰度值變化不大,用邊緣跟蹤[4]的方法尋找出紅綠燈外圍邊框,結(jié)果如圖5所示。邊緣跟蹤從起始點(diǎn)開始跟蹤,直到跟蹤的后續(xù)點(diǎn)回到起始點(diǎn)。邊緣跟蹤方法的基本原理是:確定一個(gè)灰度值較低的像素作為起始點(diǎn),從左上角0點(diǎn)方向開始跟蹤,即用0點(diǎn)方向的鄰近像素與起始點(diǎn)比較,若灰度值相差不大,則視為同一物體,把此點(diǎn)作為新的起始點(diǎn),將跟蹤方向逆轉(zhuǎn)90°作為新的跟蹤方向繼續(xù)跟蹤;若灰度值與起始點(diǎn)相差很大,則認(rèn)為不是同一物體,將跟蹤方向順時(shí)針旋轉(zhuǎn)45°,沿新的跟蹤方向繼續(xù)跟蹤。重復(fù)上述方法,直到檢測(cè)點(diǎn)回到最開始的檢測(cè)點(diǎn)為止,此時(shí)將跟蹤圈定的目標(biāo)定位待確定目標(biāo)。確定待確定目標(biāo)后對(duì)其進(jìn)行二值化與邊緣提取,再與樣本訓(xùn)練集里的樣本做比較。相似度超過一個(gè)閾值則認(rèn)為是目標(biāo),記錄目標(biāo)像素坐標(biāo)。若相似度小于閾值,則認(rèn)為是非目標(biāo)。確定出紅綠燈位置后繼續(xù)與樣本對(duì)比,確定出各個(gè)燈的位置。
具體流程如下:
(1)對(duì)訓(xùn)練集中的樣本進(jìn)行特征提取并存儲(chǔ)。
(2)對(duì)預(yù)處理后的圖像做搜索,用邊界跟蹤的方法圈定類目標(biāo)物體。
(3)將圈定的物體與樣本集里的樣本做比較,相似度超過一定閾值則認(rèn)為是目標(biāo)。將目標(biāo)像素坐標(biāo)標(biāo)定存儲(chǔ)。
(4)通過與樣本目標(biāo)對(duì)比,標(biāo)定出各個(gè)燈的位置并標(biāo)記存儲(chǔ)坐標(biāo)。
流程如圖6所示。
5 顏色判別及輸出顯示
根據(jù)德國(guó)物理學(xué)家赫姆霍茲(Helinholtz)的三原色理論[5]可知,各種顏色是由不同比例的三原色混合而成的,也就是說數(shù)字圖像中色彩是由R、G、B三個(gè)基本色組成的,被稱為是與設(shè)備相關(guān)的色彩空間。其中紅、綠可以組成黃色;藍(lán)、綠組成青色;紅、藍(lán)組成品紅色[6]。由此可以根據(jù)圖像中各個(gè)燈所在位置像素的R、G、B分量來判斷燈的顏色。具體實(shí)現(xiàn)方法如下:首先讀入像素地址并標(biāo)定起始像素坐標(biāo),從上到下、自左而右地逐個(gè)判別該像素的顏色。比較各像素的顏色分量:若R>G+B,此像素為紅色,紅色像素?cái)?shù)量加1,總像素?cái)?shù)量加1;若G>R+B,此像素為綠色,綠色像素?cái)?shù)量加1,總像素?cái)?shù)量加1;若R、G分量大致相等且大于閾值T1,則此燈為黃色,黃色像素?cái)?shù)量加1,總像素?cái)?shù)量加1;若以上情況都不是,此像素未亮,總像素?cái)?shù)量加1。然后計(jì)算各色像素與總像素的比值,通過比較得出比值最大者。最后判斷最大的比值是否大于閾值T2,若大于則此燈顏色為比值最大的量,否則認(rèn)為此燈未亮。
具體實(shí)現(xiàn)流程如圖7所示。
對(duì)于輸出,可以選擇一種點(diǎn)陣LCD顯示器,根據(jù)辨別結(jié)果分別在相應(yīng)的位置輸出“紅”、“綠”、“黃”等字眼。另外可以連接上警鈴,當(dāng)紅燈出現(xiàn)時(shí)發(fā)出聲音提醒車主注意。
參考文獻(xiàn)
[1] 楊枝靈,王開.Visual C++數(shù)字圖象獲取處理及實(shí)踐應(yīng)用[M].北京:人民郵電出版社,2003:175-190.
[2] 李志清,施智平,李志新,等.結(jié)構(gòu)相似度稀疏編碼及其圖像特征提取[J].模式識(shí)別與人工智能,2010,23(1):12-19.
[3] 楊淑瑩,李蘭友.圖像模式識(shí)別—VC++技術(shù)實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2005:37-52.
[4] 周寧寧,趙正旭,翁素文.圖像的中介邊緣檢測(cè)方法[J]. 中國(guó)圖象圖形學(xué)報(bào),2010,15(3):36-42.
[5] 薛朝華.顏色科學(xué)與計(jì)算機(jī)測(cè)色配色實(shí)用技術(shù)[M].北京:化學(xué)工業(yè)出版社,2004:90-112.
[6] 綦科,張大方,謝冬青.基于顏色梯度特性的彩色圖像隱寫分析[J].通信學(xué)報(bào),2011,32(1):23-27.