基于DSP的嵌入式視覺(jué)客流檢測(cè)系統(tǒng)
0 引 言
近些年來(lái),隨著電子元器件價(jià)格的不斷降低和數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)性能的不斷提升,以DSP為核心的嵌入式實(shí)時(shí)圖像處理技術(shù)在目標(biāo)跟蹤、機(jī)器人導(dǎo)航、輔助駕駛、智能交通監(jiān)控等領(lǐng)域獲得了越來(lái)越廣泛的應(yīng)用。由于圖像的實(shí)時(shí)處理與圖像數(shù)據(jù)的實(shí)時(shí)采集、存儲(chǔ)和傳輸密切相關(guān),因而各模塊間的無(wú)縫連接與高效配合是嵌入式圖像處理系統(tǒng)設(shè)計(jì)過(guò)程中的關(guān)鍵問(wèn)題。綜合考慮系統(tǒng)的實(shí)現(xiàn)成本、實(shí)時(shí)性以及實(shí)際應(yīng)用,在嵌入式圖像處理技術(shù)的許多應(yīng)用領(lǐng)域中,如視頻監(jiān)控以及視覺(jué)客流檢測(cè)等,由于對(duì)圖像質(zhì)量要求不是很高,處理算法相對(duì)簡(jiǎn)單,采用低端DSP(如Ti公司的C5000系列等)就可以完成相應(yīng)的圖像處理任務(wù),面向這些實(shí)際應(yīng)用領(lǐng)域的嵌入式圖像處理系統(tǒng)完全可以采用低端DSP作為系統(tǒng)的處理核心,因此將以低端DSP為核心構(gòu)建面向客流檢測(cè)實(shí)際應(yīng)用的嵌入式圖像處理系統(tǒng)。另外,與其他圖像數(shù)據(jù)傳輸方式(如串口、并口和USB等)相比,以太網(wǎng)接口具有傳輸速度快,成本低廉,開(kāi)發(fā)簡(jiǎn)便以及可以實(shí)現(xiàn)遠(yuǎn)程控制等一系列優(yōu)點(diǎn),因而提出的嵌入式圖像處理系統(tǒng)的圖像傳輸部分將采用基于TCP/IP協(xié)議的以太網(wǎng)傳輸技術(shù)實(shí)現(xiàn)系統(tǒng)圖像數(shù)據(jù)的遠(yuǎn)程傳輸功能。
1 系統(tǒng)構(gòu)成
這里提出的基于DSP的嵌入式圖像處理系統(tǒng)由圖像采集與存儲(chǔ)、圖像處理和圖像傳輸3部分組成,組成框圖如圖1所示。選用CMOS圖像傳感器OV7141完成系統(tǒng)的圖像采集功能,選用TMS320VC5416DSP完成系統(tǒng)的圖像處理與分析,采用FIFO存儲(chǔ)器IDT72V04作為圖像存儲(chǔ)的緩沖區(qū),采用10兆/lOO兆自適應(yīng)網(wǎng)絡(luò)控制器LAN9115實(shí)現(xiàn)圖像數(shù)據(jù)的以太網(wǎng)傳輸功能,系統(tǒng)各模塊間的邏輯控制由CPLI)EPM3064A實(shí)現(xiàn)。
2 系統(tǒng)的硬件實(shí)現(xiàn)
2.1 芯片介紹
考慮到視覺(jué)客流檢測(cè)應(yīng)用中的圖像處理只涉及灰度圖像,因而提出的嵌入式圖像處理系統(tǒng)可以直接采用黑白圖像傳感器。這里選用Omnivision公司的黑白CMOS圖像傳感器OV7141作為圖像采集芯片。該芯片工作電壓為2.5 V,分辨率為640×480,工作頻率為27 MHz,每秒鐘能輸出30幀(VGA模式)或者60幀(QVGA模式),內(nèi)部整合模數(shù)轉(zhuǎn)換(A/D),自動(dòng)增益控制(AGC),SCCB總線控制端口等,可直接輸出8 b圖像數(shù)據(jù)。
圖像處理芯片采用TI公司的TMS320VC5416定點(diǎn)DSP,其內(nèi)部采用一種改進(jìn)型的哈佛總線結(jié)構(gòu)(1條程序總線、3條數(shù)據(jù)總線和4條地址總線),數(shù)據(jù)總線寬度為16 b,最大尋址空間為64 K×16 b。程序總線寬度為23 b,最大尋址空間為8 M×16 b。片內(nèi)有128 M×16 b的RAM(其中包括64 M×16 b的單周期雙訪問(wèn)DARAM和64 M×16 b的單周期單訪問(wèn)SARAM),6通道DMA傳輸控制器,3個(gè)帶緩沖器的串行通信接口(McBSP)。分開(kāi)的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時(shí)存取,再加上其高度優(yōu)化的指令集,使得該芯片具有很高的運(yùn)算速度,最高可達(dá)160 MIPSE。
FIFO采用IDT公司的IDT72V04,它是異步的先進(jìn)先出緩存器,容量為4096×9 b。供電電壓為3.3 V,它有3個(gè)狀態(tài)輸出信號(hào)可用于圖像數(shù)據(jù)存儲(chǔ)與讀取控制,即全滿信號(hào)/FF、半滿信號(hào)/HF和空信號(hào)/EF。CPLD采用ALTERA公司的MAX3064A,可使用門(mén)數(shù)1250個(gè);宏單元64個(gè);邏輯陣列塊(LAB)4個(gè);最大可使用輸入輸出(I/O)管腳數(shù)64個(gè);最大工作時(shí)鐘頻率為222.2 MHz;核供電和I/O供電都為3.3 V。LAN9115是SMSC公司的第二代10兆/100兆非PCI以太網(wǎng)控制器,LAN9115設(shè)計(jì)有大容量的存儲(chǔ)器緩沖器,快速總線周期時(shí)間和內(nèi)置的流控制支持,LAN9115支持高的數(shù)據(jù)速率,幾乎沒(méi)有包的損失,支持多種高清晰度視頻。LAN9115的主要性能:功率管理;支持LAN叫醒,使網(wǎng)絡(luò)能把消費(fèi)類(lèi)電子產(chǎn)品從睡眠狀態(tài)中叫醒;多種低功耗模式;能防止接收存儲(chǔ)器溢出;內(nèi)置支持流控制;簡(jiǎn)單SRAM系統(tǒng)接口;能與任何的嵌入處理器接口。
2.2 DSP與FIFO存儲(chǔ)器的無(wú)縫連接與圖像采集的實(shí)現(xiàn)
FIFO與DSP和OV7141的無(wú)縫連接如圖2所示。OV7141的工作頻率是27 MHz,每秒鐘能輸出30幀(VGA模式)或者60幀(QVGA模式)。由于DSP性能有限,而且實(shí)際上很多情況下也不需要如此高的幀率,因此并不是所有采集到的圖像數(shù)據(jù)都需要DSP進(jìn)行處理(例如在視覺(jué)客流檢測(cè)系統(tǒng)的實(shí)際應(yīng)用中只要求每秒鐘能處理5幀即可),但是必須保證DSF進(jìn)行處理的圖像為一幅完整的圖像。可以利用OV7141的3個(gè)輸出信號(hào)來(lái)完成這個(gè)功能,分別是PCLK(像素時(shí)鐘信號(hào))、VSYNC(場(chǎng)同步信號(hào))和HREF(行有效信號(hào))。并且OV7141可通過(guò)改變片內(nèi)控制寄存器的值來(lái)調(diào)整輸出圖像的窗口大小,窗口可在4×2到652×482像素之間任意選擇。HREF、只在所選擇窗口內(nèi)的像素信號(hào)輸出時(shí)才置高電平,這使得圖像的非完整模式下的處理也變?yōu)榱丝赡堋A硗猓?V7141的片內(nèi)控制寄存器配置功能由SCCB總線實(shí)現(xiàn),由于DSP不具有SCCB總線接口,因而為了通過(guò)DSP實(shí)現(xiàn)對(duì)0V7141的寄存器配置,利用DSP的2根數(shù)據(jù)線DO和D1借助CPLD實(shí)現(xiàn)sCcB總線時(shí)鐘線SCL和數(shù)據(jù)線SDA的模擬以實(shí)現(xiàn)虛擬SCCB總線。
控制FIF0的信號(hào)主要是寫(xiě)信號(hào)和讀信號(hào),它們都由DSP根據(jù)FIF0的狀態(tài)信號(hào)及DSP對(duì)圖像的處理結(jié)果來(lái)控制對(duì)FIFO的讀/寫(xiě)。讀/寫(xiě)操作時(shí)序如圖3所示。CM0s圖像傳感器采集獲得的圖像數(shù)據(jù)在CPLD控制下逐行寫(xiě)入FIFO,當(dāng)FIFO的存儲(chǔ)容量達(dá)到半滿時(shí),F(xiàn)IFO的半滿標(biāo)志位以外部中斷方式通知DSP,DSP,檢測(cè)到外部中斷后開(kāi)啟DMA,利用DMA通道將FIFo中的圖像數(shù)據(jù)搬移到DSP的片內(nèi)圖像緩沖區(qū)中。需要注意的是,在DMA從FIFO搬運(yùn)圖像數(shù)據(jù)的過(guò)程中CMOS圖像傳感器并沒(méi)有停止向FIFO寫(xiě)入圖像數(shù)據(jù),由于CMOS寫(xiě)入FIFO速度Vw。比DMA從FIFO中讀出數(shù)據(jù)的速度Vr慢(Vw=(1/2)Vr),使得CMOS和DMA在對(duì)FIFO進(jìn)行雙向訪問(wèn)時(shí)FIFO的實(shí)際存儲(chǔ)容量始終保持在0和最大存儲(chǔ)量之間,既不會(huì)上溢也不會(huì)下溢;從而保證一幀完整的圖像可以被DMA控制器順利的轉(zhuǎn)移至DSP的片內(nèi)圖像緩沖區(qū)中。當(dāng)一幀完整的圖像搬運(yùn)完成后,DMA會(huì)開(kāi)啟處理使能標(biāo)志,當(dāng)DSP發(fā)現(xiàn)處理使能標(biāo)志開(kāi)啟后將從片內(nèi)圖像緩沖區(qū)中獲得圖像數(shù)據(jù)以完成圖像處理算法,在DSP進(jìn)行圖像處理的同時(shí),DMA控制器可以同時(shí)進(jìn)行下一幀圖像數(shù)據(jù)的搬移工作以提升系統(tǒng)的并行處理能力。DSP對(duì)于當(dāng)前幀圖像處理完成后將等待處理使能標(biāo)志的再次開(kāi)啟以繼續(xù)下一幀圖像的處理。DSP對(duì)于當(dāng)前幀圖像的處理結(jié)果將在當(dāng)前幀處理完成后采用以太網(wǎng)傳輸至接收終端。
此外,DMA在執(zhí)行圖像數(shù)據(jù)搬移功能時(shí),為了保證數(shù)據(jù)搬移過(guò)程與DSP圖像處理的并行性,通常需要在DSP片內(nèi)開(kāi)辟2塊圖像數(shù)據(jù)緩沖區(qū)。由于5416DSP片內(nèi)DARAM在速度上優(yōu)于SARAM,因而通常重要的程序代碼以及算法的堆棧都放在DARAM中,為了節(jié)省DARAM資源并充分利用SARAM,在DSP程序空間所在的SARAM和數(shù)據(jù)空間所在的DARAM中各開(kāi)辟1塊作為圖像數(shù)據(jù)緩沖區(qū)。SARAM中的緩沖區(qū)用于DMA通道0從FIF0中讀取當(dāng)前幀圖像數(shù)據(jù),DMA通道1從SARAM緩沖區(qū)中讀取上一幀圖像數(shù)據(jù),兩個(gè)DMA通道的數(shù)據(jù)搬移功能都可以在DSP完成某個(gè)子算法的過(guò)程中并行實(shí)現(xiàn)。
2.3 基于TCP/IP協(xié)議的以太網(wǎng)傳輸?shù)膶?shí)現(xiàn)與圖像的實(shí)時(shí)傳輸
考慮到實(shí)際情況中通常采用圖像處理系統(tǒng)與接收終端采用雙絞線直連的方式傳輸圖像數(shù)據(jù),因而直接采取TCP/IP協(xié)議族中傳輸效率更高的用戶數(shù)據(jù)包協(xié)議(UDP)完成系統(tǒng)與接收終端的數(shù)據(jù)交互。接收終端可采用套接字(Socket)獲取UDP數(shù)據(jù)包,并從UDP數(shù)據(jù)包中還原出圖像數(shù)據(jù)或其他系統(tǒng)參數(shù)。而在圖像處理系統(tǒng)中,UDP數(shù)據(jù)包的發(fā)送主要通過(guò)DSP讀寫(xiě)LAN9115的片內(nèi)寄存器以及FIF0的方式實(shí)現(xiàn),具體有以下幾個(gè)步驟:
(1)初始化。完成LAN9115的喚醒工作,判別其工作狀態(tài),通過(guò)讀寫(xiě)指定內(nèi)部寄存器,激活他的各項(xiàng)功能。
(2)設(shè)置MAC地址。初始化時(shí)DSP通過(guò)更改LAN9115內(nèi)部寄存器ADDRH和ADDRL的值,完成對(duì)網(wǎng)絡(luò)MAC地址的設(shè)置。
(3)發(fā)送ARP數(shù)據(jù)包。根據(jù)UDP協(xié)議,發(fā)送數(shù)據(jù)時(shí)要獲取對(duì)方機(jī)器的IP地址和MAC地址。該程序根據(jù)ARP協(xié)議,發(fā)送ARP數(shù)據(jù),再接收?qǐng)D像接收端發(fā)回的RARP數(shù)據(jù)包,分析里面的數(shù)據(jù),即可生成符合要求的UDP數(shù)據(jù)。
(4)發(fā)送圖像數(shù)據(jù)。在發(fā)送數(shù)據(jù)包(Packet)過(guò)程中,DSP先更改LAN9115的寄存器TX_CMD_A和Tx_CMD_B的值,其中包含了要發(fā)送的數(shù)據(jù)大小,數(shù)據(jù)包(Packet)長(zhǎng)度等信息,該系統(tǒng)目前采取的圖像大小為320×240像素。在實(shí)際傳輸中,每幀圖像分20塊(1 Frame="20" Block),每塊又分6個(gè)數(shù)據(jù)報(bào)傳輸(1 Block="6" Slice),每個(gè)數(shù)據(jù)包中圖像數(shù)據(jù)為1 280 B(1 Slice="1" 280 B)。這樣做是因?yàn)橐蕴W(wǎng)協(xié)議里規(guī)定每個(gè)數(shù)據(jù)包大小不能超過(guò)1 514 B,Windows系統(tǒng)中Socket套接字的緩沖區(qū)是8 KB。然后DSP利用I/0端口訪問(wèn)模式將數(shù)據(jù)依次寫(xiě)入LAN9115中。要中斷當(dāng)前傳輸過(guò)程,可設(shè)置寄存器TX—CFG中sTOP—Tx比特為1。這個(gè)傳輸過(guò)程就將立即結(jié)束。LAN9115與DSP的接口如圖4所示。
3 系統(tǒng)軟件設(shè)計(jì)
針對(duì)客流檢測(cè)的實(shí)際應(yīng)用,提出的嵌入式客流檢測(cè)系統(tǒng)依據(jù)人體頭部在俯視圖像中近似為圓形的特點(diǎn)采用基于Hough變換的頭部輪廓特征提取和識(shí)別方法定位圖像中的行人頭部,并利用基于Kalman濾波和頭部輪廓特征幀間匹配的跟蹤方法實(shí)現(xiàn)人體頭部的跟蹤以防止重復(fù)計(jì)數(shù)情況的出現(xiàn),系統(tǒng)的軟件設(shè)計(jì)流程圖如圖5所示。
4 實(shí)驗(yàn)結(jié)果
系統(tǒng)軟件算法目前已完全移植入系統(tǒng)硬件平臺(tái)并可以進(jìn)行現(xiàn)場(chǎng)實(shí)驗(yàn)。在某公交公司的配合下,系統(tǒng)平臺(tái)在一條實(shí)際運(yùn)營(yíng)的公交線路上進(jìn)行了公交客流檢測(cè)的現(xiàn)場(chǎng)實(shí)驗(yàn)。為了對(duì)系統(tǒng)應(yīng)付客流高峰的能力進(jìn)行評(píng)估,現(xiàn)場(chǎng)實(shí)驗(yàn)特意挑選了一條終點(diǎn)站為火車(chē)站,且包含大量客流高峰情況的公交線路。另外,考慮到公交客流檢測(cè)全天候工作的特性,系統(tǒng)平臺(tái)在夜間帶有紅外照明的情況下也進(jìn)行了現(xiàn)場(chǎng)實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果可見(jiàn)表l。
5 結(jié)語(yǔ)
實(shí)踐證明,該圖像處理系統(tǒng)可以很好地進(jìn)行圖像采集、實(shí)時(shí)數(shù)據(jù)處理以及輸出。在客流檢測(cè)時(shí),準(zhǔn)確率較高。作為基于DSP嵌入式系統(tǒng)和以太網(wǎng)傳輸?shù)木W(wǎng)絡(luò)測(cè)試平臺(tái),有遠(yuǎn)程傳輸和控制的能力,有廣泛的應(yīng)用范圍和推廣價(jià)值。該項(xiàng)目的完成,非常感謝浙江大學(xué)信息學(xué)院劉濟(jì)林教授的大力支持和指導(dǎo)。
評(píng)論
查看更多