

【摘 要】本文研究的是一個基于FPGA的圖像顯示與跟蹤系統,設計了從圖像采集、存儲、轉換顯示的完整系統。在完成圖像顯示的前提下引入Sobel 邊緣檢測算法來實現對目標物體的識別與跟蹤。本實驗平臺引入硬件加速器的設計思想,通過增加運算并行性來達到加速的目的,從而減輕核心處理器的壓力,實現系統的實時識別和跟蹤的需求。
【關鍵詞】FPGA;SDRAM控制器;圖像處理;VGA顯示;識別跟蹤
Research of Image Display and Tracking Technology Based on FPGA
ZHENG Wei
(College of Big Data and Information Engineering, Guizhou University Guizhou Guiyang 550025)
【Abstract】In this paper, we propose the research in an image display and tracking system based on FPGA. At first, we design a complete system including the stages of image acquisition, data storage, display conversion. Then, we propose a Sobel edge detection algorithm to achieve real-time tracking and identification of the image display. Meanwhile,the experiment platform introduces a hardware accelerator design idea, which employs parallelism to relieve the burden for data processing unit and meets real-time identification and tracking requirements for the system.
【Key words】FPGA;SDRAM controller;Image processing;VGA display;Identification and tracking
0.引言
數字圖像處理技術最早出現于二十世紀中業,隨著計算機的發明和應用,數字圖像處理技術逐漸成熟和完善起來[1]。時至今日,計算機已經成為數字圖像處理不可或缺的手段和工具。在圖像的顯示和識別跟蹤領域,各種專門的硬件方案也應運而生[2,3]。例如專用集成圖像處理芯片[4]、數字信號處理器(DSP)[5]和現場可編程門陣列(FPGA)[6]。
雖然專用集成圖像處理芯片具有體積小、集成度高的優點,但是其設計周期比較長,成本相對較高,并且可移植性較差;DSP其內部集成了特殊的DSP命令,故具有計算速度快的特點,但是其功耗也較大且只能對某些固定的算法提供硬件優化,故難于靈活應用于圖像顯示和識別跟蹤方面。由于FPGA內部的邏輯資源可以按需配置,故保證了設計的靈活性,從而有效地降低了成本,方便后期的升級和移植[7-9]。故本文基于FPGA圖像處理平臺進行改進算法的實現和驗證。
1.系統設計方案
該系統以FPGA 作為視頻圖像處理的核心,在前端處理CMOS 攝像頭采集得到圖像數據,中間通過SDRAM 的緩存來實現數據流的安全存儲、轉換、流通,然后在后端通過VGA 控制器來實現處理后的圖像的液晶顯示。系統的基本方框圖如圖1所示:
圖1 圖像顯示跟蹤系統
首先系統前端的圖像傳感器將感受到的光學信息轉換成有效的數字圖像信息傳送到圖像采集模塊,然后通過識別跟蹤算法模塊將采集到的圖像數據進行處理,目的是實現圖像信息的識別與運動目標的定位,并把處理后的結果通過SDRAM控制器存入到SDRAM芯片中;然后通過顯示控制模塊把圖像跟蹤結果實時的顯示到VGA液晶顯示器上。其實整個系統的核心部分就是SDRAM控制器這塊兒,它是整個系統的數據流和控制流的關鍵樞紐。
整個設計完全用的是Verilog編程語言實現的,使用QuartusII12.0開發工具來完成的整個系統的設計。
系統主要可以分為系統控制模塊(system_ctrl),基于SDRAM的顯示控制模塊(sdram_vga_top),CMOS攝像頭的I2C初始化和數據采集模塊。整個系統的數據流,就是在CMOS攝像頭初始化完成以后通過coms_capter模塊捕獲CMOS輸出的圖像數據,寫入到sdram_vga_top模塊。sdram_vga_top模塊通過相關存儲以及處理,最后實時輸出于VGA顯示器上。
2.目標物體識別與跟蹤算法
2.1圖像邊緣檢測的Sobel算法
邊緣檢測是分析視頻圖像的重要手段之一,并且應用領域廣泛,像安全監控和計算機圖形學等。邊緣檢測是確定一幅圖像在哪些區域上亮度發生突變。這些亮度突變的區域通常就是物體的邊緣。Sobel檢測法通過一個叫做卷積的過程來估計每個像素點每個方向上的導數值。把中心像素點和離它最近的八個像素點都乘以一個系數后相加。該系數通常用一個卷積表(convolution mask)矩陣來表示。分別用于計算x和y方向導數值的Sobel卷積表GX和GY可以表示為矩陣形式:
G=-1 0 +1
-0 0 +2
-1 0 +1 (1)
G=+1 +2 +1
0 0 0
-1 -2 -1 (2)
我們把每個像素值分別乘以卷積表中對應的系數,再把相乘得到的九個數相加就得到了x方向和y方向的偏導數值DX和DY。然后,利用這兩個值計算中心像素點的導數。計算公式如下:
D= (3)
與平方計算和開方運算相比,絕對值計算所用的硬件資源少得多,故以(4)式代替(3)式,作為對導數的估計。
=
D+
D (4)
經過遍歷,即可得到圖像中每個像素位置的導數的近似值。另外,由于在計算圖像邊緣處的導數值時缺少必要的相鄰的像素,故人為簡單將其對應的導數值記為0。
2.2硬件加速器的設計
我們采用FPGA作為圖像顯示和跟蹤的信息計算處理單元。基于FPGA的圖像數據處理過程中,為了保障識別和跟蹤的實時性,常采用基于硬件復制和流水線等硬件并行運算來達到算法加速的目的。具體而言,如果某個設計的處理流程分為若干步驟,且整個數據處理是“單流向”的,即前一步驟的輸出為下一步驟的輸入,則可考慮采用流水線設計方法來提高系統的工作頻率。流水線各個步驟的處理由功能單一的各種單元完成,當數據沿著流水線方向依次通過所有功能單元時,即完成了所有的數據處理流程。由于流水線上各個功能單元能夠同時工作,故只要保證前后的功能單元的銜接流暢,就可以保證整個流水線正常工作。無須等到整個流水線完成前一批數據的處理,才開始下一批數據的處理,即通過減少流水線上各功能模塊的空閑時長達到提高處理效率的目的。
選取硬件加速對象時,需要遵循一定的原則:總是選擇對時耗大的核心算法進行加速,從而降低FPGA的負擔。設執行算法的核心部分所占用的時間比例為λ,則執行算法非核心部分査勇的時間比例為(1-λ),故原本總時間t可以寫作:
t=λt+(1-λ)t (5)
如果加速器能把算法核心的處理速度提高到原來的S倍,則算法核心的處理時間就縮短到原來的1/S,對于算法非核心部分的處理時間不變。因此,這個改進后的總運行時間t'為:
t'=λt/s+(1-λ)t (6)
改進后與原始的運行時間比η可以寫成:
η===1-λ+λ/s (7)
這個公式表明加速處理核心算法所帶來的整體性能的提高在很大程度上依賴于算法核心在整個算法執行時間中所占的比例。
2.3 Sobel硬件加速器的總體結構
Sobel硬件加速器功能模塊可劃分為:計算單元、地址發生器、從機接口和控制狀態機。其總體框圖如圖2所示。
圖2 Sobel硬件加速器的總體結構
在圖2中,虛線表示狀態機產生的控制線,CPU通過從機接口先對地址發生器進行基地址設置,再啟動控制狀態機跳出空閑狀態,控制狀態機控制計算單元和地址發生器,依次從存儲器中讀取原圖像素、Sobel邊緣檢測和導數圖像存儲。為了清晰地表示總體流程,圖2只顯示了各功能單元間主要的連線,其它次要連線參見Sobel硬件加速器頂層Verilog代碼;另外,因bus_dat在Sobel加速器作為主從設備時均可訪問,故需仲裁選通的bus_dat驅動源,仲裁部分圖中未畫出。
3.系統實現
本系統所要實現的功能是視頻圖像顯示與跟蹤。該系統以型號為EP2C8Q208C8的FPGA作為圖像處理運算核心配以硬件加速器作為驗證系統的硬件平臺,以實現視頻圖像的顯示和目標識別與跟蹤。該系統的硬件平臺如圖3所示。
圖3 系統硬件平臺圖
系統的功能主要包括兩個部分,一部分是指圖像的采集和顯示,一部分是指通過硬件加速實現目標物體的識別和跟蹤。在圖形采集和顯示部分,采用型號為OV7670的攝像頭作為采集圖像設備,以30幀每秒的速度寫入像素分辨率為640*480的圖像,經過相應圖像處理算法后,以60幀每秒的速度將分辨率為640*480的圖像輸出到VGA接口的液晶顯示器上。而在硬件運算部分則是采用基于FPGA的SDRAM控制器。故系統的功能實現也分為兩部分,在圖像采集部分,實驗結果由圖4顯示。
圖4 視頻圖像顯示
在識別和跟蹤部分,將作為實驗對象的水杯以1-2米每秒的速度和4.5-8米每秒的速度在桌面移動,系統時鐘設置為50MHz,圖像像素分辨率設置為640*480。實驗結果如圖5所示。
圖5 水瓶識別與跟蹤的效果圖
由上面的實驗結果可見,基于Sobel邊緣檢測算法的硬件實驗平臺能夠完成對于目標物體的實時監測和跟蹤。經過計算,每幀圖像的處理耗時為16.67毫秒,基本達到實時的目的,一方面證明邊緣檢測算法的可行性,另一方面也說明本系統硬件加速設計有效性,其中
4.結論
本文采用FPGA 作為核心處理器來實現視頻圖像信息的處理單元,一方面采用Sobel算法實現了圖像中物體邊緣的檢測和識別跟蹤,另一方面引入硬件加速設計提升了系統的處理效率。經過實驗證明了本實驗系統的有效性。但是如何在更高的圖像分辨率和復雜的環境中實現對于目標的識別和跟蹤,則是未來的研究重點。 [科]
【參考文獻】
[1]Jain A K.Fundamentals of digital image processing[M].Englewood Cliffs: prentice-Hall,1989.
[2]Shih J L,Lee C H,Yang C S.An adult image identification system employing image retrieval technique[J].Pattern Recognition Letters,2007,28(16):2367-2374.
[3]Jang S W,Park Y J,Kim G Y,et al.An adult image identification system based on robust skin segmentation[J].Journal of Imaging Science and Technology,2011,55(2):20508-1-20508-10.
[4]Ogawa Y,Kato Y,Shinohara T,et al.A single chip image processor for various in-car display equipments[C].Consumer Electronics(ICCE),2012 IEEE International Conference on.IEEE,2012:303-304.
[5]Cao Y,Zhou Y,Wang X,et al.A DSP-based video processing system for infrared small targets detection[C].Systems and Informatics (ICSAI),2014 2nd International Conference on.IEEE,2014:839-843.
[6]Zhan Z H,Hao W,Tian Y,et al.A design of versatile image processing platform based on the dual multi-core DSP and FPGA[C].Computational Intelligence and Design (ISCID),2012 Fifth International Symposium on.IEEE,2012,2:236-239.
[7]Balaji V,Krishnaveni R.FPGA based lowcomplexity multipurpose reconfigurable image processor[C].Information Communication and Embedded Systems (ICICES),2014 International Conference on. IEEE,2014:1-6.
[8]Bailey D G.Design for embedded image processing on FPGAs[M].John Wiley Sons,2011.
[9]Hasani Y,Bodenstorfer E,Brodersen J,et al.FPGA based image processing for opticalsurfaceinspection withrealtimeconstraints[C].Seventh International Conference on Machine Vision(ICMV2014).International Society for Optics and Photonics, 2015:94450P-94450P-8.