基于機(jī)器視覺的公路車流量檢測(cè)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要: 智能交通系統(tǒng)中需要的關(guān)鍵數(shù)據(jù)為道路的占有率、車流量、行車速度等。本文介紹了基于TMS320DM642的數(shù)字圖像車流量檢測(cè)系統(tǒng),闡明了該嵌入式視覺系統(tǒng)的硬件組成原理及軟件結(jié)構(gòu)和車流量檢測(cè)算法。系統(tǒng)與現(xiàn)有的信號(hào)機(jī)聯(lián)調(diào)測(cè)試,證明其穩(wěn)定可靠、識(shí)別率高、體積小、成本低、實(shí)時(shí)性好,能實(shí)時(shí)檢測(cè)十字路口道路的車流量信息。
關(guān)鍵詞:TMS320DM642;數(shù)字視頻處理;車流量檢測(cè);智能交通系統(tǒng);虛擬線圈
引言
隨著人口數(shù)量的增長(zhǎng),給交通帶來的壓力越來越大,智能交通系統(tǒng)成為近些年研究的熱點(diǎn)。車流量檢測(cè)是智能交通的基礎(chǔ)部分,在系統(tǒng)中占有重要地位。目前有多種方法檢測(cè)車流量,例如:電磁感應(yīng)裝置法和車流信息的超聲波檢測(cè)法。而實(shí)際上,前進(jìn)中的車輛速度、種類始終變化,所以普遍存在反射信號(hào)不穩(wěn)定,測(cè)量誤差大的問題。與以上方法相比,基于視頻的車流量檢測(cè)方法具有許多優(yōu)點(diǎn):從視頻圖像中提取可靠信息,完成道路交通的監(jiān)視工作,可提高道路、車輛的自動(dòng)化程度;交通監(jiān)視控制系統(tǒng)中安裝的視頻攝像機(jī)比安裝其它傳感器更經(jīng)濟(jì)、且破壞性低;實(shí)際道路交通系統(tǒng)中已經(jīng)安裝了許多攝像機(jī)用于道路交通監(jiān)視和控制,可一舉兩得。
現(xiàn)有的傳統(tǒng)視頻檢測(cè)方法基于工控機(jī),其算法成熟,且已形成相關(guān)產(chǎn)品。但其也有缺點(diǎn):一是由于通用CPU沒有專用的硬件乘法器,故很難實(shí)現(xiàn)圖像的時(shí)實(shí)性處理。二是采用通用工控機(jī),運(yùn)行Windows系統(tǒng),成本高,要時(shí)刻關(guān)心機(jī)器有沒死機(jī),系統(tǒng)有沒感染病毒,操作系統(tǒng)的補(bǔ)丁升級(jí)等問題?;谝陨蟽牲c(diǎn),本文提出了基于TMS320DM642(下簡(jiǎn)稱DM642 )的嵌入式圖像識(shí)別方案,解決了存在的問題。
車流量檢測(cè)系統(tǒng)的原理與組成
車流量檢測(cè)系統(tǒng)的工作原理
車流量檢測(cè)系統(tǒng)是由視頻采集、車流量數(shù)字視頻信號(hào)處理、不同環(huán)境下車流量檢測(cè)算法、以及車流量檢測(cè)結(jié)果輸出等幾部分組成。數(shù)字圖像采集部分的核心芯片是TVP5150,它可將模擬視頻信號(hào)轉(zhuǎn)換為數(shù)字視頻信號(hào)。DM642運(yùn)行圖像算法對(duì)采集進(jìn)來的圖像進(jìn)行數(shù)字圖像處理。車流量數(shù)字視頻檢測(cè)算法白天主要是使用改進(jìn)后的幀差法進(jìn)行運(yùn)動(dòng)檢測(cè),夜間使用車燈檢測(cè)法。按照車道將采集到的公路圖像化分為四部分,每部分對(duì)應(yīng)一條車道。在每條車道中開設(shè)一個(gè)虛擬線圈(指圖像中一個(gè)矩形檢測(cè)區(qū)域,統(tǒng)稱為虛擬線圈),當(dāng)有車壓過虛擬線圈時(shí)會(huì)引起虛擬線圈內(nèi)像素值發(fā)生變化。根據(jù)此變化控制I/O口產(chǎn)生每條車道的相應(yīng)脈沖,處理后發(fā)出脈沖給公路交通信號(hào)機(jī),控制交通燈,從而達(dá)到實(shí)現(xiàn)智能交通的目的。同時(shí),可以通過網(wǎng)絡(luò)將車流量信息傳到監(jiān)控中心。
車流量檢測(cè)系統(tǒng)硬件
DM642是德州儀器公司專門為多路視頻輸入輸出設(shè)計(jì)的數(shù)字信號(hào)處理芯片。其運(yùn)算功能強(qiáng)大,建立在第二代高性能超長(zhǎng)指令字結(jié)構(gòu)上,可以8條指令并行執(zhí)行,使這款芯片非常適用于數(shù)字圖像處理??紤]到實(shí)際工作的要求和系統(tǒng)的穩(wěn)定性,將DM642的主頻設(shè)置為600MHz。根據(jù)實(shí)際應(yīng)用環(huán)境和嵌入式系統(tǒng)的需要,系統(tǒng)除了擴(kuò)展了系統(tǒng)必須的存儲(chǔ)器部分和視頻采集回放部分外,主要擴(kuò)展了多路數(shù)字I/O和異步串口以及網(wǎng)絡(luò)接口功能,方便系統(tǒng)與外部通信。具體硬件實(shí)物如圖1所示。說明如下:外擴(kuò)SDRAM,容量為4M×64位;外擴(kuò)Flash,容量為4M×8位;2路PAL/NTSC標(biāo)準(zhǔn)模擬視頻輸入(CVBS或S端子),1路PAL/NTSC標(biāo)準(zhǔn)模擬視頻輸出;通過CPLD擴(kuò)展8路數(shù)字I/O口,用于輸出車道上車流的信息;2路UART接口,接口標(biāo)準(zhǔn)RS232/RS422/RS485可配置;實(shí)時(shí)時(shí)鐘RTC+看門狗電路;10M/100Mbase-TX標(biāo)準(zhǔn)以太網(wǎng)接口。
圖1 硬件實(shí)物圖
系統(tǒng)組成如圖2所示,在圖中TMS320DM642通過64位寬的EMIF(External Memory Interface)總線擴(kuò)展外部存儲(chǔ)器部分,包括32Mbytes的Synchronous DRAM,用于存放實(shí)際運(yùn)行時(shí)用戶代碼和圖像數(shù)據(jù)。4Mbytes的Flash用于存放bootloader,以及用戶的應(yīng)用程序,啟動(dòng)時(shí)將FLASH中的代碼和數(shù)據(jù)加載到內(nèi)存中(SDRAM中),用戶對(duì)與虛擬線圈的配置參數(shù)也可以存放在FLASH中。SDRAM的數(shù)據(jù)寬度為64位,F(xiàn)LASH的數(shù)據(jù)寬度為8位,分別對(duì)應(yīng)TMS320DM642的CE0和CE1空間。同樣地,通用異步收發(fā)器UART(Universal Asynchronous Receiver)和CPLD(Complex Programmable Logic Device)也是通過EMIF總線與DM642相連。UART用來擴(kuò)展串口,本系統(tǒng)中可用其擴(kuò)展了RS232接口。CPLD用來實(shí)現(xiàn)FLASH和UART的粘合邏輯及擴(kuò)展通用數(shù)字I/O。為了方便軟件的實(shí)現(xiàn),本系統(tǒng)中將這兩部分也連接到了DM642的CE1空間,其內(nèi)部寄存器作為CE1存儲(chǔ)空間的一部分。
圖2系統(tǒng)組成圖
視頻采集輸出部分
為了統(tǒng)計(jì)十字路口車流量的信息,本系統(tǒng)設(shè)計(jì)了兩路模擬視頻輸入。系統(tǒng)將攝像頭采集的模擬視頻信號(hào)由TVP5150按ITU-R BT.656轉(zhuǎn)化為數(shù)字視頻流,內(nèi)嵌同步信號(hào)發(fā)送到DM642的VP1口和VP2口上。圖像的行同步、場(chǎng)同步信號(hào)均內(nèi)嵌在視頻數(shù)據(jù)流中的EAV和SAV時(shí)基信號(hào)中,視頻口只需要視頻采樣時(shí)鐘和采樣使能信號(hào)即可。DM642可通過FIFO實(shí)現(xiàn)數(shù)字視頻圖像三幀連續(xù)采集,當(dāng)有一幀圖像正在處理時(shí),其它兩個(gè)緩沖區(qū)還可以實(shí)現(xiàn)圖像的循環(huán)采集,從而解決了恒速的視頻采集與變速的圖像處理之間的矛盾。本系統(tǒng)擴(kuò)展了一路視頻輸出,用于本地回放,當(dāng)系統(tǒng)調(diào)試完畢后此部分功能可以不使用。視頻輸出由Phillips公司(現(xiàn)更名為NXP)的SAA7121芯片實(shí)現(xiàn)。SAA7121將DM642的VP0口傳出的數(shù)字視頻信號(hào)轉(zhuǎn)化為PAL(50Hz)制式或者NTSC(60Hz)制式模擬信號(hào)送外接視頻口輸出。
軟件部分
車流量統(tǒng)計(jì)算法
由于白天和晚上路面光強(qiáng)變化非常大,這對(duì)算法的適應(yīng)性提出了更高的要求,為了能全天得到車流量的信息,所以整個(gè)算法將白天和晚上分別開來處理。程序結(jié)合當(dāng)時(shí)光線的不同情況,對(duì)兩種算法進(jìn)行自動(dòng)的切換,從而保障整個(gè)算法的運(yùn)行環(huán)境。
圖3夜間算法流程圖
·虛擬線圈的選取
虛擬線圈的選取關(guān)系到檢測(cè)算法的精度和速度,并且受到攝像頭安裝的高度和傾角,以及攝像頭景深的影響。一般情況下,虛擬線圈靠近圖像底部的位置,車輛的間距較大,便于檢測(cè)。虛擬線圈越大,相對(duì)檢測(cè)精度就越高,相應(yīng)的算法執(zhí)行的時(shí)間也會(huì)越長(zhǎng)。由于整個(gè)系統(tǒng)要適應(yīng)各種路口、路面,所以虛擬線圈的選取交給了用戶。我們用VC6.0開發(fā)了PC機(jī)軟件,用戶使用此軟件,通過串口,對(duì)各個(gè)車道的虛擬線圈的大小和位置進(jìn)行設(shè)置。
·相鄰檢測(cè)幀的時(shí)間間隔
由于整個(gè)系統(tǒng)要與信號(hào)機(jī)通信,所以要求我們處理每條道路上圖像的總時(shí)間不能超過0.25秒。這里選取每幀相隔0.125秒。
·車流量檢測(cè)算法
由于白天使用改進(jìn)后的幀差法已經(jīng)在PC上有很成熟的應(yīng)用。如公式1所示:
i=1,2,3,......80, j=1,2,3,......10
在公式1中,E保存幀差后的檢測(cè)窗平均值,R是當(dāng)前幀檢測(cè)窗灰度值,R'是前一幀檢測(cè)窗灰度值,m,n為虛擬線圈的長(zhǎng)寬,在此就不再贅述。
晚上的路面能見度比較低,算法主要是對(duì)車燈的識(shí)別。在晚上,車燈有很強(qiáng)的亮度,所以只要能正確的檢測(cè)到車燈就可以進(jìn)行車輛的測(cè)量。算法的干擾來自路面對(duì)車燈發(fā)出來的光線的反射。通過使用Matlab仿真試驗(yàn)后發(fā)現(xiàn),二值化去噪以后,車燈的亮斑基本上是車燈的形狀,而路面反光區(qū)向前發(fā)散,據(jù)此可以通過檢測(cè)窗上亮斑的形狀特征來識(shí)別車燈和路面反光區(qū)。夜間的算法如圖2夜間算法流程圖所示。對(duì)虛擬線圈二值化的閾值選取是通過大津法得到的,與經(jīng)驗(yàn)法相比,大津法是通過計(jì)算方差得到閾值,環(huán)境適應(yīng)能力比較強(qiáng),但這也增加了算法的時(shí)間和空間復(fù)雜度。圖像去噪是使用3×3的中值濾波器,我們對(duì)其進(jìn)行了快速算法的改進(jìn),并且只對(duì)虛擬線圈進(jìn)行。
采集到路面原始灰度圖像如圖4,圖5為其二值化處理后的圖像,圖中矩形區(qū)域?yàn)樘摂M線圈,線圈中有兩個(gè)白色區(qū)域。以像素為單位,根據(jù)白色區(qū)域的最大長(zhǎng)寬比確定是否為車燈。車燈對(duì)應(yīng)的白色區(qū)域長(zhǎng)一般長(zhǎng)小于等于寬,如圖6所示。路面反光對(duì)應(yīng)的白色區(qū)域長(zhǎng)大于寬如圖9所示,虛擬線圈內(nèi)的白色區(qū)域?yàn)槁访娣垂狻?/P>
圖4夜間路面灰度圖
圖5路面二值化后圖
圖6虛擬線圈
圖7夜間路面灰度圖
圖8路面二值化后圖
圖9虛擬線圈
系統(tǒng)基于DSP/BIOS的軟件框架
系統(tǒng)軟件開發(fā)環(huán)境為CCS,使用了TI提供的DSP/BIOS內(nèi)核以及TI倡導(dǎo)的RF5軟件參考框架。通過DSP/BIOS,配置了輸入、處理、輸出等線程,這些線程之間的同步通過旗語(yǔ)進(jìn)行。使用DSP/BIOS內(nèi)核,配置DSP/BIOS方便易行,便于更改,比傳統(tǒng)方法有許多優(yōu)勢(shì)。使用DSP軟件架構(gòu)RF5(Reference Framework 5),大大縮短了開發(fā)時(shí)間,同時(shí)也最大限度的保證了代碼的可移植性和健壯性。軟件架構(gòu)從下往上依次為CSL(芯片支持庫(kù))、DSP/BIOS以及Driver層,信號(hào)處理庫(kù)層,算法標(biāo)準(zhǔn)層,這三層構(gòu)成RF5,最上面一層是用戶應(yīng)用程序?qū)?。用戶修改維護(hù)代碼方便,只需要上層改動(dòng)即可。
輸入驅(qū)動(dòng)采用TI公司提供的FVID類驅(qū)動(dòng),如圖10所示,此驅(qū)動(dòng)通過對(duì)結(jié)構(gòu)體配置參數(shù),實(shí)現(xiàn)DM642的IIC模塊對(duì)視頻采集口,以及對(duì)A/D轉(zhuǎn)換芯片TVP5150的配置,使TVP5150輸出PAL制式的數(shù)字視頻流,并將采集到的圖像通過視頻口的FIFO寫入到指定內(nèi)存區(qū)。當(dāng)圖像采集完成后,通過旗語(yǔ)發(fā)送消息給處理模塊,消息結(jié)構(gòu)存儲(chǔ)了圖像數(shù)據(jù)所在內(nèi)存的空間的首地址。隨后輸入模塊等待輸出模塊的回復(fù),以繼續(xù)處理下一幀的圖像。處理模塊負(fù)責(zé)執(zhí)行車流量統(tǒng)計(jì)算法。從輸入模塊發(fā)送的消息結(jié)構(gòu)中提取圖像數(shù)據(jù)地址,以進(jìn)行圖像算法處理,運(yùn)算結(jié)果通過CPLD擴(kuò)展的I/O口輸出,將車流量的監(jiān)測(cè)信息傳給信號(hào)機(jī)。
代碼優(yōu)化
程序主要用C語(yǔ)言編寫,一些核心的代碼要滿足實(shí)時(shí)性的要求進(jìn)行了匯編優(yōu)化。C語(yǔ)言程序優(yōu)化的好壞直接影響程序的效率。程序中廣泛運(yùn)用以空間換時(shí)間的方法來提高代碼的運(yùn)行效率。代碼優(yōu)化的方法比較多,主要的方法有:編譯器優(yōu)化,在編譯時(shí)選擇不同的編譯優(yōu)化選項(xiàng),如-pm-oe選項(xiàng);優(yōu)化C語(yǔ)言編寫的代碼,加入常用的指示性信息如#Pragma MUST_ITERATE等;編寫線性匯編程序,提高程序運(yùn)行速度;編寫匯編程序,實(shí)現(xiàn)軟件流水。排流水線可以使用多種技術(shù)手段,如依賴圖和迭代間隔時(shí)序表。在TI提供的技術(shù)文檔中有詳細(xì)描述,這里不再重復(fù)。
圖10 視頻采集驅(qū)動(dòng)程序結(jié)構(gòu)
實(shí)驗(yàn)結(jié)果與分析
為驗(yàn)證車流量檢測(cè)系統(tǒng)的可靠性,將算法移植入檢測(cè)系統(tǒng),在多處公路天橋上使用三角架安裝攝像頭進(jìn)行了實(shí)際檢測(cè)試驗(yàn)。由于天橋上有一定數(shù)量的行人,導(dǎo)致天橋輕微晃動(dòng),對(duì)攝像頭的穩(wěn)定性有一定影響。另外車輛騎線現(xiàn)象等造成檢測(cè)結(jié)果有一定誤差,但是檢測(cè)效果依然良好。一組測(cè)試如表1車流量檢測(cè)結(jié)果所示,在自然環(huán)境下,采集圖像大小為720×576。其中白天的測(cè)量時(shí)間為下午3點(diǎn)27分,晚上的時(shí)間為下午6點(diǎn)50分,天氣晴朗,測(cè)試地點(diǎn)為北京市海淀區(qū)學(xué)院路的兩條車道。采用CCD大小為1/3英寸。鏡頭焦距為3.5~8mm, 最大孔徑比為1:1.4。
表1車流量檢測(cè)結(jié)果
從表1車流量檢測(cè)結(jié)果中得知,白天視頻檢測(cè)的結(jié)果略好,夜間車燈的形狀和亮度有較大差異,有一定誤差,但系統(tǒng)識(shí)別準(zhǔn)確率都在80%以上。試驗(yàn)證明了該方法檢測(cè)精度高,實(shí)現(xiàn)成本低,系統(tǒng)運(yùn)行可靠。
參考文獻(xiàn):
1. TI,TMS320DM642 Video/Imaging Fixed-point Digital Signal Processor (Literature Number: SPRS200F)[Z].Dallas: TI,2004.
2. Anon,TMS320DM642 Evaluation Module Technical Reference SPECTRUM DIGITAL[Z].
[S.L]:INC.2003.
3.李芳惠,TMS320C6000系列DSPs原理與應(yīng)用(第二版)[M],北京:電子工業(yè)出版社,2003
4.TI.TMS320C6000 DSP External Memory Interface Reference Guide(Literature Number: SPRU266B)[Z].Dallas:TI,2004
5.TI.TMS320C64x Image/Video Processing Library Programmer’s Reference (Literature Number:SPRU023B)[Z].Dallas:TI,2003
6.陳兵旗,Visual C++實(shí)用圖像處理,北京:清華大學(xué)出版社,2004
7.TI.TMS320C6000 DSP/BIOS Application Programming Interface (API)Reference Guide (Literature Number:SPRU403F)[Z].Dallas:TI,2004.