1 引言
機(jī)動(dòng)車在夜間行車會(huì)車時(shí),對(duì)面汽車車燈的強(qiáng)光會(huì)對(duì)駕駛員產(chǎn)生視覺盲區(qū),從而引發(fā)嚴(yán)重的交通事故。為了徹底消除這種由于汽車暈光產(chǎn)生的交通隱患 。
本文提出一種基于DSP和圖像處理技術(shù)的抗暈光圖像采集系統(tǒng)解決方案來解除夜間行車眩光。目前獲取圖像主要采用CCD和CMOS圖像傳感器,其中。CMOS圖像傳感器具有功耗小、成本低、單一電源驅(qū)動(dòng)、使用壽命長、易于片上系統(tǒng)集成等特點(diǎn),適用于抗暈光圖像采集系統(tǒng)。本文提出抗暈光圖像采集系統(tǒng)采用OmniVision公司推出的CMOS彩色圖像傳感器OV7620代替?zhèn)鹘y(tǒng)CCD圖像傳感器,該傳感器可由軟件編程控制,能直接輸出數(shù)字圖像信息,而且大大降低系統(tǒng)設(shè)計(jì)難度,減小系統(tǒng)體積,提高了系統(tǒng)設(shè)計(jì)的靈活性和穩(wěn)定性。
2 系統(tǒng)硬件設(shè)計(jì)
本抗暈光圖像采集系統(tǒng)是由圖像采集和圖像處理組成。其中,圖像采集部分由兩路OV7620圖像傳感器實(shí)現(xiàn);圖像處理則由TMS320C6414實(shí)現(xiàn)。EPM3128通過編程設(shè)置輸出每個(gè)存儲(chǔ)器地址。其系統(tǒng)框圖如圖1所示。
2.1 圖像采集部分
在抗暈光圖像采集系統(tǒng)中,TMS320C6414通過通用GPIO端口模擬I2C總線,設(shè)置OV7620的內(nèi)部寄存器參數(shù).使其完成相應(yīng)功能。OV7620可提供00H~7CH共125個(gè)寄存器,用于控制傳感器,可設(shè)置傳感器的快門方式、積分時(shí)間、A/D轉(zhuǎn)換器工作特性、伽馬校正和開窗口位置、輸出數(shù)據(jù)格式、幀頻、像素時(shí)鐘等參數(shù)。其中,直接影響像元積分時(shí)間的寄存器為曝光量控制寄存器、時(shí)鐘預(yù)分頻器寄存器和幀頻調(diào)整寄存器。OV7620通常默認(rèn)為I2C總線上的主器件,可將寄存器29的第6位置1,將其改為I2C總線的從器件,因此,I2C總線的主器件TMS320C6414可對(duì)0V7620寫操作。
當(dāng)TMS320C6414的引腳SBB為低電平,才能完成I2C總線初始化,此時(shí)OV7620作為從器件,支持400 Kbit/s的7位地址數(shù)據(jù)傳輸協(xié)議。將OV7620內(nèi)部寄存器28的第5位置1即為逐行掃描方式;寄存器13、14的第5位置0即16位的YUV422-640x480像素的數(shù)字圖像數(shù)據(jù)(高8位為亮度信號(hào),低8位為色度信號(hào));輸出設(shè)置25幀/s。OV7620的視頻時(shí)序電路產(chǎn)生行同步、場同步、混合視頻同步等同步信號(hào)和像素時(shí)鐘等內(nèi)部時(shí)鐘信號(hào),EPM3128根據(jù)這些同步信號(hào)確定圖像的讀寫操作以及相關(guān)處理。本系統(tǒng)采用單幀圖像數(shù)據(jù)輸出處理方式。
EPM3128通過I/O端口將IS6lLV51216的引腳CE、WE、LB、UB置為低電平,OV7620則將16位圖像數(shù)據(jù)輸入至IS6lLV51216。OV7620的內(nèi)部控制位SRAM信號(hào)為高電平表示處于外部RAM狀態(tài),此時(shí)所有的數(shù)據(jù)總線變?yōu)槿龖B(tài)并準(zhǔn)備發(fā)送數(shù)據(jù)。OV7620向外部SRAM輸出單幀圖像數(shù)據(jù)的時(shí)序圖如圖2所示。
首先判斷傳感器的內(nèi)部控制位SRAM,當(dāng)SRAM為高時(shí)OV7620進(jìn)入外部RAM,接著通過EPM3128發(fā)送初始化脈沖至AGCFN來獲得一幀數(shù)據(jù)。但由圖2看出移出的數(shù)據(jù)并不完全是有效圖像數(shù)據(jù),有效圖像數(shù)據(jù)是由HREF(水平參考輸出)、VSYNC(場同步信號(hào))共同確定。因此需判斷VSYNC是否為1且HREF上升沿是否到來。如果是上升沿則表明傳感器開始輸出有效數(shù)據(jù)。當(dāng)HRFF=l時(shí),像素時(shí)鐘PCLK計(jì)數(shù),并把計(jì)數(shù)值傳輸至外部SRAM的地址總線,同時(shí)將OV7620輸出的圖像數(shù)據(jù)DATA傳輸給SRAM的數(shù)據(jù)總線,對(duì)外部SRAM寫操作;當(dāng)HRFF=O時(shí),計(jì)數(shù)暫停。OV7620發(fā)送完一幀數(shù)據(jù)后VSYNC=0,因此,可通過判斷VSYNC是否為O來停止計(jì)數(shù)器計(jì)數(shù)并結(jié)束圖像采集。
2.2 圖像處理部分
TMS320C6414是TI公司推出的一款高性能數(shù)字處理器,具有強(qiáng)大的硬件結(jié)構(gòu)和軟件系統(tǒng),可適用于抗暈光圖像采集系統(tǒng)。TMS320C6414的L2容量為l024KB,通過cache配置寄存器(CCFG)的L2MODE字段把L2配置為第5種模式,即把片內(nèi)SRAM設(shè)置為768 KB。TMS320C6414經(jīng)EMIFA端口,以EDMA方式將圖像數(shù)據(jù)同步讀入內(nèi)部SRAM。增強(qiáng)型直接存儲(chǔ)器訪問(EDMA)用于實(shí)時(shí)圖像數(shù)字信號(hào)處理,可在CPU后臺(tái)完成存儲(chǔ)空間中的數(shù)據(jù)轉(zhuǎn)移,把外部存儲(chǔ)器中的圖像數(shù)字信息快速、高效地傳輸?shù)紻SP內(nèi)部SRAM中。設(shè)置EER控制寄存器的EVT4位為l,即采用EDMA的第4通道(EDMA4)采集圖像數(shù)據(jù)。該通道配置為32位傳輸方式,每次中斷搬移一幀圖像數(shù)據(jù)存入內(nèi)部SRAM。
為了同步采樣,第一路OV7620的SRAMl和VSYNCl可通過與非門控制兩路OV7620同步采樣并分別存儲(chǔ)到各自連接的IS6lLV51216中;VSYNCl下降沿標(biāo)志OV7620一幀圖像數(shù)據(jù)輸出結(jié)束,VSYNCl經(jīng)反向器接至TMS320C6414的AF5引腳觸發(fā)EDMA4中斷,并同時(shí)讀取IS6lLV51216中存儲(chǔ)的圖像數(shù)據(jù)。CPU采用閾值化分割算法來處理圖像信息。在TMS320C6414控制下同步進(jìn)行圖像信息的傳輸和處理,完全滿足系統(tǒng)的實(shí)時(shí)要求。TMS320C6414外接40 MHz的晶體振蕩器,CLOKMODE[l:0]設(shè)置為10,使其內(nèi)部頻率高達(dá)480 MHz。DSP通過I/O端口檢測OV7620的同步信號(hào)VSYNC、CHSYNC以及像素時(shí)鐘PCLK,保證DSP能夠準(zhǔn)確讀取OV7620輸出的數(shù)字圖像數(shù)據(jù)。在同步信號(hào)和像素時(shí)鐘的干預(yù)下保存采集的數(shù)字圖像數(shù)據(jù),保證傳輸數(shù)字圖像的完整性。圖3所示為第一路圖像采集系統(tǒng)硬件電路圖。
3 系統(tǒng)軟件設(shè)計(jì)
在CCS(Code Composer Studio)編譯環(huán)境下,采用C語言和線性匯編進(jìn)行編程。計(jì)算機(jī)通過JTAG接口把編譯成功的系統(tǒng)程序?qū)懙酵獠縁lash中,使軟件在硬件平臺(tái)上高速、穩(wěn)定、可靠運(yùn)行。系統(tǒng)軟件設(shè)計(jì)流程如圖4所示。
TMS320C6414采用閾值化分割算法,即把第一路OV7620的曝光時(shí)間設(shè)定為1/50 s,將采集到的圖像信息存儲(chǔ)到存儲(chǔ)器1中(通過EPM3128設(shè)置存儲(chǔ)器l的地址最高位為0,即為0XXXXXXXXXXXXXXXXX);把第二路OV7620的曝光時(shí)間設(shè)定為l/l 000 s,把采集到的圖像信息存儲(chǔ)到存儲(chǔ)器2中(通過EPM3128設(shè)置存儲(chǔ)器2地址的最高位為1,即為lXXXXXXXXXXXXXXXXXX)。兩路OV7620在TMS320C6414控制下同步采樣同一景物,并設(shè)置亮度閾值為245。
TMS320C6414從存儲(chǔ)器l中依次讀取每一個(gè)存儲(chǔ)單元的數(shù)值并判斷其亮度值。如果該像素點(diǎn)的亮度值小于245,無暈光,則把該像素值和地址值暫存到DSP內(nèi)部的SRAM中;如果該像素點(diǎn)的亮度值大于或等于245,并有暈光產(chǎn)生,則丟棄該存儲(chǔ)單元數(shù)據(jù),而從存儲(chǔ)器2對(duì)應(yīng)地址(0XXXXXXXXXXXXXXXXX換成lXXXXXXXXXXXXXXXXX)單元中讀取像素值和地址值。存儲(chǔ)完一行像素后。判斷所有像素地址的起始位是否為l。若起始位為l,說明有暈光產(chǎn)生。此時(shí)取該像素值以及前后各3個(gè)像素值,共7個(gè)像素值求平均值,把平均值代替該像素值,直到該行像素處理完后輸出;若起始位不為l,說明無暈光產(chǎn)生,直接輸出像素值。若暈光在一幀圖像的開頭或者結(jié)尾產(chǎn)生,則只取符合條件的像素值求平均值。該算法可以根據(jù)具體采樣的不同信息自由設(shè)置閾值大小,求平均值像素的總數(shù),具有良好的靈活性。
采用索尼DCR—DVD808E數(shù)碼攝像機(jī)及Plink數(shù)據(jù)采集卡,通過PC機(jī)采集單幅靜止圖像。第一次實(shí)驗(yàn),相機(jī)曝光時(shí)間設(shè)定l/50 s的采集圖像,汽車車燈亮度較強(qiáng),產(chǎn)生暈光,所以無法分辨車燈外部輪廓以及車牌號(hào),而光線相對(duì)較暗的遠(yuǎn)處人群可以看見;第二次試驗(yàn),相機(jī)曝光時(shí)間調(diào)整為1/1 000 s的采集圖像,亮度較強(qiáng)的車燈外部輪廓以及車牌號(hào)均可見,而遠(yuǎn)處人根本看不見。利用MATLAB對(duì)兩幅圖像進(jìn)行閾值化分割算法仿真,閾值設(shè)為245,經(jīng)過處理后的整體圖像比較清晰達(dá)到預(yù)期效果。圖5所示為MATLAB仿真圖。
4 結(jié)語
抗暈光采集系統(tǒng)在交通安全方面徹底消除汽車行車時(shí)產(chǎn)生的暈光,大大減少交通事故的發(fā)生,從而保障人民生命財(cái)產(chǎn)安全。而在工業(yè)電弧焊機(jī)焊接方面,該系統(tǒng)不但可以保護(hù)操作人員的身體健康,而且還大大提高焊接質(zhì)量。因此,抗暈光采集系統(tǒng)的研究具有重要的實(shí)用價(jià)值。