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