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