付 偉 于海濱 劉濟(jì)林
摘 要:目前,在統(tǒng)計(jì)超市或公交車的客流情況方面,雖然有一些方法,但是統(tǒng)計(jì)準(zhǔn)確率較低。設(shè)計(jì)并實(shí)現(xiàn)了基于DSP的嵌入式視覺客流檢測(cè)系統(tǒng),該系統(tǒng)采用CMOS圖像傳感器完成圖像數(shù)據(jù)采集功能,借助DSP進(jìn)行圖像處理以獲取視場(chǎng)中的客流信息,并利用網(wǎng)絡(luò)控制器實(shí)現(xiàn)圖像數(shù)據(jù)的以太網(wǎng)高速傳輸,再通過(guò)人頭檢測(cè)和模式識(shí)別技術(shù)從圖像中獲得客流的數(shù)目信息?,F(xiàn)場(chǎng)實(shí)驗(yàn)結(jié)果表明該系統(tǒng)可以在滿足實(shí)時(shí)性要求的前提下達(dá)到較高的客流檢測(cè)準(zhǔn)確率。采用以太網(wǎng)接口使其具有傳輸速度快,成本低廉,開發(fā)簡(jiǎn)便,以及可以實(shí)現(xiàn)遠(yuǎn)程控制等一系列優(yōu)點(diǎn)。
關(guān)鍵詞:CMOS圖像傳感器;DSP;圖像處理;以太網(wǎng)
中圖分類號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004-373X(2009)04-039-04
Embedded Passenger Flow Detection System Based on DSP
FU Wei1,2,YU Haibin2,LIU Jilin2
(1.Honghe University,Mengzi,661100,China;2.Zhejiang University,Hangzhou,310027,China)
Abstract:At present,in statistical passenger flow situation of supermarket or public transportation,the statistical rate of accuracy is low.An embedded passenger flow detection system based on DSP is designed and realized in this paper.The CMOS image sensor is employed to capture image,the passenger flow information is obtained based on image processing by DSP and the high speed image data transfer is realized by using network controller.Then the information of accuracy of human head counting is found out by fuzzy clustering analysis and Hough transform technology from the images.The field test results show that the system can attain a higher accurate rate of passenger flow detection on the premise that the real-time demand is satisfied.Using Ethernet interface,it has advantages of fast speed transmission,low cost,simple development and long-distance contrd.
Keywords:CMOS sensor;DSP;image processing;Ethernet
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)控以及視覺客流檢測(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)接口具有傳輸速度快,成本低廉,開發(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兆/100兆自適應(yīng)網(wǎng)絡(luò)控制器LAN9115實(shí)現(xiàn)圖像數(shù)據(jù)的以太網(wǎng)傳輸功能,系統(tǒng)各模塊間的邏輯控制由CPLDEPM3064A實(shí)現(xiàn)。
2 系統(tǒng)的硬件實(shí)現(xiàn)
2.1 芯片介紹
考慮到視覺客流檢測(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ù)[1]。
圖像處理芯片采用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)。分開的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時(shí)存取,再加上其高度優(yōu)化的指令集,使得該芯片具有很高的運(yùn)算速度,最高可達(dá)160 MIPS[2,3]。
FIFO采用IDT公司的IDT72V04,它是異步的先進(jìn)先出緩存器,容量為4 096×9 b。供電電壓為3.3 V,它有3個(gè)狀態(tài)輸出信號(hào)可用于圖像數(shù)據(jù)存儲(chǔ)與讀取控制,即全滿信號(hào)/FF、半滿信號(hào)/HF和空信號(hào)/EF[4]。
CPLD采用ALTERA公司的MAX3064A,可使用門數(shù)1 250個(gè);宏單元64個(gè);邏輯陣列塊(LAB)4個(gè);最大可使用輸入輸出(I/O)管腳數(shù)64個(gè);最大工作時(shí)鐘頻率為222.2 MHz;核供電和I/O供電都為3.3 V[5]。
LAN9115是SMSC公司的第二代10兆/100兆非PCI以太網(wǎng)控制器[6], LAN9115設(shè)計(jì)有大容量的存儲(chǔ)器緩沖器,快速總線周期時(shí)間和內(nèi)置的流控制支持,LAN9115支持高的數(shù)據(jù)速率,幾乎沒有包的損失,支持多種高清晰度視頻。LAN9115的主要性能:功率管理;支持LAN叫醒,使網(wǎng)絡(luò)能把消費(fè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)行處理(例如在視覺客流檢測(cè)系統(tǒng)的實(shí)際應(yīng)用中只要求每秒鐘能處理5幀即可),但是必須保證DSP進(jìn)行處理的圖像為一幅完整的圖像??梢岳肙V7141的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)榱丝赡?。另外?OV7141的片內(nèi)控制寄存器配置功能由SCCB總線實(shí)現(xiàn),由于DSP不具有SCCB總線接口,因而為了通過(guò)DSP實(shí)現(xiàn)對(duì)OV7141的寄存器配置,利用DSP的2根數(shù)據(jù)線D0和D1借助CPLD實(shí)現(xiàn)SCCB總線時(shí)鐘線SCL和數(shù)據(jù)線SDA的模擬以實(shí)現(xiàn)虛擬SCCB總線[7]。
控制FIFO的信號(hào)主要是寫信號(hào)和讀信號(hào),它們都由DSP根據(jù)FIFO的狀態(tài)信號(hào)及DSP對(duì)圖像的處理結(jié)果來(lái)控制對(duì)FIFO的讀/寫。讀/寫操作時(shí)序如圖3所示。 CMOS圖像傳感器采集獲得的圖像數(shù)據(jù)在CPLD控制下逐行寫入FIFO,當(dāng)FIFO的存儲(chǔ)容量達(dá)到半滿時(shí),F(xiàn)IFO的半滿標(biāo)志位以外部中斷方式通知DSP,DSP檢測(cè)到外部中斷后開啟DMA,利用DMA通道將FIFO中的圖像數(shù)據(jù)搬移到DSP的片內(nèi)圖像緩沖區(qū)中。需要注意的是,在DMA從FIFO搬運(yùn)圖像數(shù)據(jù)的過(guò)程中CMOS圖像傳感器并沒有停止向FIFO寫入圖像數(shù)據(jù),由于CMOS寫入FIFO速度vwП菵MA從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ì)開啟處理使能標(biāo)志,當(dāng)DSP發(fā)現(xiàn)處理使能標(biāo)志開啟后將從片內(nèi)圖像緩沖區(qū)中獲得圖像數(shù)據(jù)以完成圖像處理算法,在DSP進(jìn)行圖像處理的同時(shí),DMA控制器可以同時(shí)進(jìn)行下一幀圖像數(shù)據(jù)的搬移工作以提升系統(tǒng)的并行處理能力。DSP對(duì)于當(dāng)前幀圖像處理完成后將等待處理使能標(biāo)志的再次開啟以繼續(xù)下一幀圖像的處理。DSP對(duì)于當(dāng)前幀圖像的處理結(jié)果將在當(dāng)前幀處理完成后采用以太網(wǎng)傳輸至接收終端。
此外,DMA在執(zhí)行圖像數(shù)據(jù)搬移功能時(shí),為了保證數(shù)據(jù)搬移過(guò)程與DSP圖像處理的并行性,通常需要在DSP片內(nèi)開辟2塊圖像數(shù)據(jù)緩沖區(qū)。由于5416DSP片內(nèi)DARAM在速度上優(yōu)于SARAM,因而通常重要的程序代碼以及算法的堆棧都放在DARAM中,為了節(jié)省DARAM資源并充分利用SARAM,在DSP程序空間所在的SARAM和數(shù)據(jù)空間所在的DARAM中各開辟1塊作為圖像數(shù)據(jù)緩沖區(qū)。SARAM中的緩沖區(qū)用于DMA通道0從FIFO中讀取當(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ù)交互[8]。接收終端可采用套接字(Socket)獲取UDP數(shù)據(jù)包,并從UDP數(shù)據(jù)包中還原出圖像數(shù)據(jù)或其他系統(tǒng)參數(shù)。而在圖像處理系統(tǒng)中,UDP數(shù)據(jù)包的發(fā)送主要通過(guò)DSP讀寫LAN9115的片內(nèi)寄存器以及FIFO的方式實(shí)現(xiàn),具體有以下幾個(gè)步驟:
(1) 初始化。完成LAN9115的喚醒工作,判別其工作狀態(tài),通過(guò)讀寫指定內(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/O端口訪問(wèn)模式將數(shù)據(jù)依次寫入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)站為火車站,且包含大量客流高峰情況的公交線路。另外,考慮到公交客流檢測(cè)全天候工作的特性,系統(tǒng)平臺(tái)在夜間帶有紅外照明的情況下也進(jìn)行了現(xiàn)場(chǎng)實(shí)驗(yàn)。
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)。
參 考 文 獻(xiàn)
[1]OmniVision公司.OV7640/OV7141 CMOS VGA (640 x 480) Camerachip.2003.
[2]Texas Instruments.TMS320VC5416Fixed-Point Digital Signal Processor.2003.
[3]張雄偉,陳亮,徐光輝.DSP芯片的原理與開發(fā)應(yīng)用.3版.北京:電子工業(yè)出版社,2004.
[4]IDT 3.3Volt CMOS Asynchronous FIFO.
[5]MAX 3000A Programmable Logic Device Family.2002.
[6]SMSC公司.SMSC LAN9115 Datasheet.2005.
[7]潘志東,周融,姜田華,等.DSP與標(biāo)準(zhǔn)I2C總線的接口設(shè)計(jì)[J].儀表技術(shù)與傳感器,2003,9(9):39-40.
[8]謝希仁.TCP/IP協(xié)議族.2版.北京:清華大學(xué)出版社,2003.
[9]趙負(fù)圖.DSP處理器和微控制器硬件電路.北京:化學(xué)工業(yè)出版社,2006.
[10]程佩清.數(shù)字信號(hào)處理教程.北京:清華大學(xué)出版社,2007.
作者簡(jiǎn)介 付 偉 男,1966年出生,講師。主要研究方向?yàn)閿?shù)字信號(hào)處理、圖像處理。
于海濱 男,1979年出生,博士研究生。主要研究方向?yàn)閳D像處理、機(jī)器人視覺、模式識(shí)別。
劉濟(jì)林 男,1947年出生,教授,博士生導(dǎo)師。主要研究方向?yàn)閳D像處理、模式識(shí)別、機(jī)器人視覺等。