劉 強(qiáng),潘 明,李永偉
(桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004)
目前國(guó)內(nèi)外針對(duì)汽車測(cè)距主要有超聲波短距離測(cè)距、微波雷達(dá)長(zhǎng)距離測(cè)距、激光測(cè)距、攝像系統(tǒng)測(cè)距等,其中超聲波測(cè)距適合短距離測(cè)距,雷達(dá)或激光測(cè)距少則幾千元,動(dòng)輒上萬(wàn)元,成本高,而且雷達(dá)測(cè)距容易受到電磁波干擾,雷達(dá)裝置之間以及其它通信設(shè)施的電磁波干擾會(huì)導(dǎo)致車輛的誤操作[1-3]。攝像系統(tǒng)測(cè)距具有精準(zhǔn)度高、功耗低、穩(wěn)定性好、非接觸性測(cè)量等優(yōu)點(diǎn),而且視覺(jué)測(cè)距是被動(dòng)式測(cè)距方式,不會(huì)對(duì)人體造成危害。攝像系統(tǒng)測(cè)距又可分為單目測(cè)距和多目測(cè)距。多目視覺(jué)測(cè)距成本高,受軟件和硬件的制約,成像速度慢,而單目視覺(jué)汽車測(cè)距中很多依賴車寬和車道線[4-5],通過(guò)檢測(cè)映射在攝像頭中車寬像素大小進(jìn)而求出車距,如果改變車寬或者在沒(méi)有車道線的路面,可能發(fā)生錯(cuò)誤或者檢測(cè)不到距離。目前大多數(shù)算法都在PC機(jī)上運(yùn)行,通用PC機(jī)冗余的功能、高額的成本和較大的體積是應(yīng)用在車載系統(tǒng)中難以克服的瓶頸[6-7]。在工程中,基于嵌入式平臺(tái)的數(shù)字圖像處理系統(tǒng)能夠得到更廣泛的應(yīng)用[8],系統(tǒng)采用單個(gè)攝像頭檢測(cè)車牌進(jìn)而計(jì)算車距,受制條件少,準(zhǔn)確度較高,相對(duì)PC機(jī)本系統(tǒng)體積小、功耗低、實(shí)時(shí)性好并可以車載。
硬件平臺(tái)選用友晶公司的DE2FPGA開(kāi)發(fā)板,板載有 Altera Cyclone II系列的EP2C35F672 FPGA芯片,內(nèi)含35 000個(gè)邏輯單元(LE),一個(gè)8MB的SDRAM,一個(gè)視頻解碼器ADV7181B,支持多種格式的模擬視頻信號(hào)輸入,包括各種制式的CVBS信號(hào),S-Video和YPrPb分量,可以自動(dòng)檢測(cè)NTSC、PAL、SECAM及兼容的各種標(biāo)準(zhǔn)模擬基帶電視信號(hào)[9]。選用PAL制式600線1/3"CCD模擬攝像頭,焦距8mm,每?jī)蓚€(gè)像素點(diǎn)之間的距離是0.007mm。液晶顯示器是數(shù)字終端顯示最理想的顯示器件之一[10-11],系統(tǒng)選用奇美公司17.78cm(7in)EK070TN92(800×480)數(shù)字液晶屏,通過(guò)DE2開(kāi)發(fā)板GPIO口和FPGA連接。
根據(jù)小孔成像原理,CCD攝像機(jī)的成像幾何關(guān)系可用小孔成像原理來(lái)近似表示,從圖1中易得式(1),其中:H 為車牌大小,D為車距,h是車牌映射到攝像頭中的大小,f為攝像頭焦距。測(cè)距模型中,車距與圖像大小成反比,若已知車牌的實(shí)際尺寸和攝像機(jī)的焦距,車距便可以求得。
圖1 小孔成像模型圖Fig.1 Pinhole camera model
系統(tǒng)整體框圖如圖2所示,CCD視頻捕捉模塊捕捉攝像頭輸出的CVBS視頻流,經(jīng)過(guò)去隔行和格式轉(zhuǎn)化操作,視頻信號(hào)由隔行的YCbCr 4∶2∶2變?yōu)橹鹦衁CbCr 4∶4∶4,其中去隔行需要使用SDRAM進(jìn)行緩存。視頻流一路經(jīng)過(guò)色彩空間轉(zhuǎn)換模塊將YCbCr信號(hào)化為RGB彩色視頻信號(hào),提取另一路視頻信號(hào)YCbCr的亮度信號(hào)Y,即灰度化,再經(jīng)過(guò)中值濾波、邊緣檢測(cè)、邊緣增強(qiáng)(膨脹和腐蝕)、車牌定位與車牌長(zhǎng)寬的測(cè)量,進(jìn)而求出車距。每一種圖像處理算法效果圖都可以直接在LCD顯示器上實(shí)時(shí)示,方便調(diào)試。
圖2 系統(tǒng)整體框圖Fig.2 System whole diagram
ADV7181B負(fù)責(zé)視頻解碼,其讀寫地址分別為0X41、0X40,配置輸出位寬為8bit CCIR656數(shù)據(jù),即ITU-R BT.656,不需要同步信號(hào),通過(guò)嵌入式控制字SAV和EAV來(lái)判斷有效視頻的起點(diǎn)和終點(diǎn)。
經(jīng)過(guò)配置的ADV7181B輸出576行數(shù)據(jù),取其后480行作為顯示。系統(tǒng)采用PAL電視標(biāo)準(zhǔn),25frame/s,奇數(shù)場(chǎng)在前,偶數(shù)場(chǎng)在后,因此需要對(duì)其進(jìn)行去隔行操作。將奇偶行合并成一幅完整的圖像,再通過(guò)格式變換將YCbCr 4∶2∶2的數(shù)據(jù)轉(zhuǎn)換成YCbCr 4∶4∶4的數(shù)據(jù),通過(guò)顏色空間變換,變成RGB數(shù)據(jù),最終在液晶屏上逐行顯示。
圖像的灰度化只需要提取YCbCr 4∶4∶4中的亮度Y即可,Y值為8bit數(shù)據(jù),亮度分為0~255共256級(jí),0最暗,255最亮。
攝像頭采集到的圖像一般會(huì)有一些噪聲干擾,這容易對(duì)后續(xù)車牌識(shí)別造成干擾,要經(jīng)過(guò)濾波去除干擾。常用的濾波有均值濾波、中值濾波、高斯濾波、Gabor濾波、各向異性擴(kuò)散平滑濾波等。考慮到算法的固有優(yōu)缺點(diǎn)和FPGA實(shí)現(xiàn)起來(lái)的難易度,系統(tǒng)使用算法較簡(jiǎn)單、執(zhí)行速度快的中值濾波。
中值濾波處理椒鹽噪聲有很好的效果,濾波器不會(huì)影響垂直邊緣,但彎曲的邊緣的位置會(huì)有所偏移[12]。中值濾波函數(shù)如式(2),Pn為第n個(gè)像素的像素值,R為當(dāng)前像素輸出結(jié)果。
圖3 中值濾波示意圖Fig.3 Median filter diagram
中值濾波的基本原理是把數(shù)字圖像中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,一般選取n=9,即3×3窗口,也可根據(jù)實(shí)際情況選擇更大的窗口,工作流程如圖3所示。首先將模板內(nèi)(窗口)所涵蓋的像素按灰度值由小到大排列,再取序列中間點(diǎn)的值作為中值,并以此值作為濾波器的輸出值,行1到2調(diào)用Quartus II的Shift Register來(lái)保存一行640個(gè)像素點(diǎn)。
針對(duì)3×3窗口,濾波函數(shù)要求出9個(gè)數(shù)中的中間值,實(shí)現(xiàn)過(guò)程如圖4所示,實(shí)現(xiàn)原理為冒泡法,圓角矩形代表比較兩個(gè)數(shù)的大小,較小的數(shù)在左邊輸出,較大的數(shù)在右邊輸出,這樣的結(jié)構(gòu)發(fā)揮了FPGA并行處理數(shù)據(jù)的能力。仿真時(shí)序圖如圖5所示,在130ns前的上升沿輸入9個(gè)數(shù)據(jù)P1~P9,經(jīng)過(guò)9個(gè)上升沿輸出中值結(jié)果0X5B,對(duì)應(yīng)了中值濾波函數(shù)實(shí)現(xiàn)示意圖中的9個(gè)步驟實(shí)現(xiàn)冒泡法。
圖4 中值濾波函數(shù)實(shí)現(xiàn)示意圖Fig.4 Median filter function diagram
圖5 中值濾波仿真時(shí)序圖Fig.5 Median filter simulation diagram
常用的邊沿檢測(cè)算法有Sobel邊沿檢測(cè)、Prewitt邊緣檢測(cè)、Robert邊沿檢測(cè)、Kirsch邊緣檢測(cè)、Laplace邊沿檢測(cè)、Canny邊沿檢測(cè)、Marr邊沿檢測(cè)等。
圖6 Sobel邊緣檢測(cè)Gx運(yùn)算示意圖Fig.6 Sobel edge detection Gxoperation diagram
圖像邊緣檢測(cè)之后,由于圖像的邊緣信息還不是很突出,所以需要對(duì)圖像進(jìn)行進(jìn)一步的優(yōu)化。膨脹可以用來(lái)填補(bǔ)物體中的空洞,腐蝕可以用來(lái)消除小且無(wú)意義的物體 。經(jīng)過(guò)腐蝕和膨脹后的圖像車牌邊緣信息更加明顯。
膨脹和腐蝕算法工作流程類似于中值濾波,如圖3所示,濾波函數(shù)分別為式(6)和式(7):
從式(6)~(7)可以看出膨脹算法是對(duì)n個(gè)像素相或運(yùn)算,腐蝕的過(guò)程是相與運(yùn)算,選用n=9,即3×3窗口。
膨脹腐蝕過(guò)后的二值化圖像車牌輪廓比較清晰,對(duì)整幅640×480的圖像進(jìn)行車牌檢測(cè),我國(guó)九二式大型機(jī)動(dòng)車前牌和后牌國(guó)標(biāo)尺寸分別是440mm×140mm和440mm×220mm,小型機(jī)動(dòng)車前后車牌都是440mm×140mm。440×140長(zhǎng)寬比大約在3.1左右,440×220長(zhǎng)寬比為2。
車牌定位是搜尋圖像中構(gòu)成矩形的直角,檢測(cè)到車牌左上角和右下角坐標(biāo),根據(jù)構(gòu)成矩形長(zhǎng)寬比例來(lái)判斷圖中搜索到的矩形是否是車牌,確定是車牌后即可求出車牌在攝像頭中的長(zhǎng)寬,根據(jù)式(1)很容易求出車距。
以5×5的窗口為例,由于窗口中的最后一行數(shù)據(jù)為圖像的第一行數(shù)據(jù),所以FPGA中處理的圖像與實(shí)際圖像相反。如果出現(xiàn)類似于圖7中的中直角的情況,認(rèn)定此時(shí)為車牌的左上角,記下P7像素所處的坐標(biāo)(X1,Y1),同理在圖8中,記下P19的坐標(biāo)(X2,Y2)。此時(shí)很容易求出車牌的長(zhǎng)寬比例,如果在3.1倍或者2倍左右便認(rèn)為是車牌,再進(jìn)行車距的計(jì)算。
圖7 車牌左上角的檢測(cè)示意圖Fig.7 Car license plate upper left corner detection diagram
圖8 車牌右下角的檢測(cè)示意圖Fig.8 Car license plate lower right corner detection diagram
上面是理想的情況,實(shí)際上車牌的傾斜、光線等原因會(huì)造成系統(tǒng)檢測(cè)不到像上圖那樣理想的直角,這就需要使用更大的窗口,系統(tǒng)使用60×60的窗口,實(shí)際可以檢測(cè)到15°左右的傾斜車牌,如果想增大角度,需要更大的窗口。對(duì)于不規(guī)則的直角,圖9中可以看到第1行和第2行是直角的水平邊沿,其中灰色的方格代表1,白色的方格代表0。如果(P19|P14)(P18|P13)(P17|P12)(P16|P11)=1時(shí),便認(rèn)定此線是直角的水平邊沿線,同理(P18|P19)(P14|P13)(P9|P8)(P4|P3)=1時(shí),便認(rèn)定第二列是直角的豎直邊沿線,換做更大的窗口檢測(cè)原理類似。
圖9 不規(guī)則直角示意圖Fig.9 Irregular right corner diagram
如果一幅圖像中檢測(cè)有多個(gè)直角,那么計(jì)算每個(gè)直角所構(gòu)成的矩形長(zhǎng)寬比例,排除不符合車牌比例的矩形的坐標(biāo)。
液晶屏的分辨率為800×480,左邊的640×480用來(lái)顯示每種圖像處理效果,右邊的160×480用來(lái)顯示圖像處理的模式和學(xué)校信息。
PAL制式的攝像機(jī)視頻畫面有效分辨率為720×576,視頻最終以640×480的分辨率顯示在液晶屏左邊,將攝像頭輸出的每一行數(shù)據(jù)的720個(gè)像素點(diǎn)每9個(gè)像素剪裁掉1個(gè),變成每行640個(gè)像素點(diǎn)。
漢字的顯示需要使用PCtoLCD2002軟件進(jìn)行取模,將生成的C代碼數(shù)值相應(yīng)的填入mif文件,作為ROM的初始化使用,顯示時(shí)調(diào)用ROM顯示即可。
系統(tǒng)整體實(shí)物圖見(jiàn)圖10,系統(tǒng)各個(gè)圖像處理算法效果圖如圖11所示。
圖10 系統(tǒng)整體實(shí)物圖Fig.10 Design picture
實(shí)驗(yàn)所用車牌大小為220mm×110mm,和實(shí)際車牌大小等比例,以矩形的長(zhǎng)為基準(zhǔn),f=8 mm,H=220mm,h=(X2-X1)×0.007,根據(jù)式(1),便能夠求出車距D。同樣也可以以矩形的寬為基準(zhǔn),h=(Y2-Y1)×0.007。在實(shí)驗(yàn)室條件下進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果見(jiàn)表1。
圖11 圖像處理效果圖Fig.11 Image processing effect
表1 實(shí)驗(yàn)結(jié)果Tab.1 Experimental result
由于攝像頭鏡頭焦距短,導(dǎo)致攝像頭檢測(cè)距離受到限制,攝像頭的圖像傳感器面積(1/3")小,導(dǎo)致對(duì)拍攝的圖像不夠細(xì)膩,造成拍攝的圖像質(zhì)量下降,給車牌定位造成困難,進(jìn)而影響車距計(jì)算。即使這樣的條件下,車距的誤差率最高僅為2.57%。針對(duì)于實(shí)驗(yàn)室車牌220mm×110mm,可以識(shí)別范圍在4m左右。如果車牌換成實(shí)際車牌尺寸,理論上檢測(cè)距離增倍,如果換做焦距比較長(zhǎng)的鏡頭,檢測(cè)距離非常可觀。
傳統(tǒng)的圖像處理多在PC機(jī)上進(jìn)行靜態(tài)圖像處理,處理過(guò)的過(guò)程多調(diào)用現(xiàn)有的庫(kù)函數(shù),而本系統(tǒng)采用了嵌入式的方案,使用FPGA從最底層對(duì)實(shí)時(shí)的視頻流進(jìn)行處理,相對(duì)于前者具有體積小,實(shí)時(shí)性高,測(cè)距準(zhǔn)確的特點(diǎn)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)所測(cè)試的距離誤差最大僅為2.57%,可用于車載輔助駕駛,預(yù)防汽車追尾,也可以用于智能機(jī)器人視覺(jué)。
[1] 鐘勇,姚劍鋒.現(xiàn)代汽車的四種測(cè)距方法[J].汽車工業(yè)研究,2001,2:38-40.Zhong Y,Yao J F.Four distance measuring methods of the modern car[J].Auto Industry Research,2001,2:38-40.(in Chinese)
[2] 劉燕,劉浩學(xué).基于計(jì)算機(jī)視覺(jué)的單目攝影縱向車距測(cè)量系統(tǒng)研究[J].公路交通科技,2004,21(9):103-106.Liu Y,Liu H X.Research on Lengthways vehicle distance measurement system of monocular photograph based on computer Vision[J].Journal of Highway and Transportation Research and Development,2004,21(9):103-106.(in Chinese)
[3] 王展青,陳順云.基于單目視覺(jué)的車距測(cè)量方法綜述[J].工程技術(shù),2010,27(9):33-38.Wang Z Y,Chen S F.Review of vehicle distance measurement based on monocular vision [J].Science &Technology Information,2010,27(9):33-38.(in Chinese)
[4] 龍丹,許勇.基于數(shù)字圖像處理的汽車測(cè)距算法研究[J].中國(guó)西部科技,2008(1):36-39.Long D,Xu Y.Study of vehicle distance measurement algorithm using image processing technology[J].Science and Technology of West China,2008(1):36-39.(in Chinese)
[5] 郭磊,徐友春,李克強(qiáng),等.基于單目視覺(jué)的實(shí)時(shí)測(cè)距方法研究[J].中國(guó)圖象圖形學(xué)報(bào),2006,11(1):74-81.Guo L,Xu Y C,Li K Q,et al.Study on real-time distance detection based on monocular vision technique[J].Journal of Image and Graphics,2006,11(1):74-81.(in Chinese)
[6] 吳舟舟,李樹(shù)廣.基于分級(jí)邊緣間距的實(shí)時(shí)車牌檢測(cè)[J].中國(guó)圖象圖形學(xué)報(bào),2007,12(2):315-321.Wu Z Z,Li S G.Real-time license plate detection based on hierarchical distances between neighboring edge points[J].Journal of Image and Graphics,2007,12(2):315-321.(in Chinese)
[7] 林廣宇.基于嵌入式技術(shù)的車載圖像監(jiān)控系統(tǒng)研究[D].西安:長(zhǎng)安大學(xué),2009.Lin G Y.Study on on-board image monitoring system based on embedded technique [D].Xian:Chang’an University,2009.(in Chinese)
[8] 王靜軒,尹傳厲.基于DSP和FPGA的嵌入式實(shí)時(shí)圖像增強(qiáng)系統(tǒng)[J].液晶與顯示,2013,28(1):459-463.Wang J X,Yi C L.Embedded color image enhancement system based on DSP and FPGA [J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):459-463.(in Chinese)
[9] 張志剛.FPGA與SOPC設(shè)計(jì)教程—DE2實(shí)踐[M].西安:西安電子科技大學(xué)出版社,2007.Zhang Z G.FPGA and SOPC TECHnology—DE2 Practice[M].Xian:Xidian University Press,2007.(in Chinese)
[10] 孫之旭,張傳勝.基于SOPC的 TFT液晶顯示屏驅(qū)動(dòng)控制器[J].液晶與顯示,2012,27(2):212-216.Sun Z X,Zhang C S.Controller for TFT LCD driver based on SOPC [J].Chinese Journal of Liquid Crystals and Displays,2012,27(2):212-216.(in Chinese)
[11] 張傳勝.基于SOPC的通用液晶屏人機(jī)交互系統(tǒng) GUI的設(shè)計(jì)[J].液晶與顯示,2013,28(2):250-254.Zhang C S.Design of man-machine interaction systems based on LCD screen of SOPC [J].Chinese Journal of Liquid Crystals and Displays,2013,28(2):250-254.(in Chinese)
[12] 原魁,何文浩,肖晗.基于FPGA的嵌入式圖像處理系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013.Yuan K,He W H,Xiao H.Design for Embedded Image Processing on FPGAs [M].Beijing:Publishing House of Electronics Industry Press,2013.(in Chinese)