宋 宇,包文來
(長春工業大學 計算機科學與工程學院, 吉林 長春 130012)
?
FPGA圖像采集處理系統
宋宇,包文來
(長春工業大學 計算機科學與工程學院, 吉林 長春130012)
FPGA通過配置CMOS攝像頭獲取圖像信息,對得到的圖像進行預處理,利用Sobel算子方法對圖像進行邊緣檢測,并對處理結果通過外置顯示模塊進行實時顯示。
圖像采集;Sobel邊緣檢測;FPGA
視頻圖像采集處理系統在許多領域都有著廣泛的應用,小到工業、農業,大到醫療、軍事都發揮著舉足輕重的作用。視頻圖像可以傳遞許多信息,如何準確實時地獲取到有用的圖像,并對圖像進行處理分析至關重要。文中從手勢識別技術角度出發,設計了一種基于FPGA的圖像采集處理系統[1],對圖像采集處理快速準確,并通過VGA進行實時顯示。
1.1系統結構圖
本設計選用CycloneIV系列的EP4CE15E17C8NFPGA為核心處理器,使用QuartusⅡ 作為系統軟件開發工具,并配合Verilog語言編程來實現各個模塊的功能[2]。系統主要由圖像采集、VGA顯示、圖像預處理、邊緣檢測等模塊構成,系統總體框圖如圖1所示。

圖1 系統總體框圖
1.2系統工作流程
系統上電后,各部件由FPGA完成初始化及配置工作模式[3],通過攝像頭采集圖像,并將采集到的圖像通過視頻解碼芯片傳送給FPGA,FPGA收到信號后,將圖像數據緩存到存儲模塊中,并將圖像發送到處理模塊,處理模塊對接收到的圖像進行預處理及邊緣檢測操作,最后將處理后的圖像通過VGA顯示模塊實時顯示。系統工作流程如圖2所示。

圖2 系統工作流程
2.1圖像采集模塊
模塊通過攝像頭采集圖像,攝像頭采用OV7725CMOS傳感器,采集到的圖像格式為模擬視頻信號,FPGA通過I2C總線配置視頻解碼芯片[4],將模擬視頻信號轉化為數字信號,格式為YUV4∶2∶2,供FPGA內部處理模塊使用,文中采取的視頻解碼芯片為TVP5150。
TVP5150是一款低功耗、支持SECAM、NTSC、PAL等格式的高性能解碼芯片,適用于便攜、高性能的產品設計。I2C總線是串行兩線式總線,分別為串行數據線和串行時鐘線,器件被連接在這兩條線之間,通過這兩條線來傳遞信息,傳輸起始和停止條件由兩條線之間的電平高低決定。當串行時鐘線是高電平,且串行數據線由高電平向低電平轉換時開始傳送工作;當串行時鐘線是高電平,且串行數據線從低電平向高電平轉換時停止傳送工作。數據傳輸時,串行數據線所接收的每個字節必須為8位,但可以接收任意數量的字節,首先傳輸的是數據的最高位。數據傳輸必須帶響應,由主機產生相關的響應時鐘脈沖,在傳輸過程中,如果從機當前處于忙碌狀態,不能立刻完成傳輸,可以通過保持串行時鐘線處于低電平,這時主機進入數據傳輸延遲狀態,當從機可以進行傳輸時,釋放串行時鐘線,則開始數據傳輸。I2C總線的時序圖如圖3所示。

圖3I2C總線的時序圖
2.2SDRAM存儲模塊
由于系統采集速度快且數據量大,而處理速度遠不及采集速度,所以需要完成系統相關數據存儲工作,文中采用Hynix的32BitSDRAMHY57V283220T,共有4Banks*1M*32Bit的資源,完成在特定時間內對已經采集到但未經處理圖像的緩存,并通過存儲控制器為SDRAM提供滿足時序要求的控制信號輸入[5]。
2.3VGA顯示模塊
設計加入了VGA顯示模塊,通過此模塊可以對系統處理后的視頻圖像進行實時顯示。VGA顯示器所能識別的信號為RGB格式,被處理后的視頻圖像格式為YUV4∶2∶2數字信號,本設計采用AVD7123視頻編碼芯片來實現圖像格式的轉化,ADV7123接收FPGA發送的數字圖像信號以及時鐘行場同步信號,并通過標準的VGA接口輸出來實現與VGA顯示器的通信。
3.1圖像預處理
圖像采集模塊采集到的視頻圖像會摻雜許多噪聲,對后續處理造成誤導,預處理的作用就是采用快速中值濾波[6]的方法來去除圖像噪聲。
快速中值濾波是在中值濾波的基礎上提出來的一種快速圖像處理方法,通過對選取模板區域內各行各列的像素灰度值進行降序(或升序)排列,生成新的像素矩陣,然后分別找出新生成像素矩陣第一行的最小值,第二行的中間值,第三行的最大值,并把這3個數值組成新的序列,對新序列再次求取中間值,以此中間值替換原始圖像模板區域內中心位置的像素灰度值,以此類推,文中選取3*3區域模板。
快速中值濾波包括兩部分:一是3*3區域模板的生成,并獲取區域內所有像素灰度數據;二是快速中值濾波算法的實現。
3.1.1模板生成及獲取像素值
本設計選取2個FIFO存儲器和9個移位寄存器J1~J9來實現3*3模板的生成及模板區域像素值的提取,如圖4所示。

圖4 模板生成原理圖
每個移位寄存器存儲一個像素值,每個FIFO存儲器存儲一行的像素數據,當第三行的數據采集完成后,將第三行數據和2個FIFO中的數據一起讀出,保證三行數據的同步。
3.1.2中值濾波算法硬件實現
本設計通過7個三輸入比較器來實現, 把7個比較器分為3組,比較過程如圖5所示。

圖5 中值濾波算法流程
對于提取的像素集{X11,X12,…,X33}來說,首先,用第一組3個比較器分別對像素點集的每行進行比較,完成對每行像素值的降序排列,然后再用第二組3個比較器分別對每行最大、最小及中間值組成序列進行比較,完成對每列像素值的降序排列,最后用一個比較器對第二組比較器B4的最小值、B5產生的中值及B6產生的最大值進行比較,比較出的中值即為區域模板內像素的中值。
3.2Sobel邊緣檢測
Sobel邊緣檢測算法[7-8]的實現是使用垂直和水平兩個方向算子,該算子由兩組3*3的矩陣構成,分別為橫向及縱向,將之與圖像作卷積運算,分別得出相應的梯度值分量,再利用梯度值公式求出近似梯度值大小,把計算結果與預先存儲的閾值做對比,如果小于閾值,則結果是非邊緣部分。對于原始圖像A的3*3區域來說,首先求取方向梯度分量Gx和Gy:
(1)
(2)
然后求取圖像中任意像素的梯度近似值大小:
(3)
最后通過比較求取的梯度值與預先存儲閾值的大小來確定邊緣檢測結果,當梯度值小于閾值時,將原始圖像灰度值置為0,反之則為255,以此類推。
為了驗證設計的合理性,通過QuartusⅡ軟件進行綜合仿真,實驗結果分別如圖6和圖7所示。

圖6原始圖像和經中值濾波后的灰度圖像

圖7 原始圖像和Sobel邊緣檢測后的圖像
提出的設計方案是以FPGA為核心的圖像采集處理系統,主要由圖像采集、圖像處理、顯示模塊等幾部分模塊組成,系統充分發揮了FPGA的靈活性和可移植性強等特點,提高了圖像處理速度。實驗證明,本系統可實現圖像采集、處理及實時顯示功能,對進一步研究手勢識別、實時監控及視頻圖像跟蹤技術打下了堅實基礎。
[1]陳國柱,劉濤,李元宗.基于FPGA的圖像采集與存儲系統的設計[J].機械工程與自動化,2007(4):44-46.
[2]夏宇聞.Verilog數字系統設計教程[M].2版.北京:北京航空航天大學出版社,2010:20-300.
[3]吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2011:200-202.
[4]劉麗麗.基于FPGA的手勢識別技術研究[D].長春:長春理工大學,2014.
[5]揚帆,楊曉慧,黃勇.基于FPGA和USB的圖像傳輸平臺[J].長春工業大學學報:自然科學版,2013,34(4):397-400.
[6]和妍.基于FPGA的圖像采集處理系統的研究[D].鄭州:河南理工大學,2010.
[7]郭龍,段哲民.FPGA的視頗實時邊緣檢測系統[J].電子設計工程,2014,22(3):173-185.
[8]袁春蘭,熊宗龍,周雪花,等.基于Sobel算子的圖像邊緣檢測研究[J].激光與紅外,2009,39:85-87.
A FPGA based image acquisition and processing system
SONG Yu,BAO Wenlai
(School of Computer Science & Engineering, Changchun University of Technology, Changchun 130012, China)
WithFPGA,CMOScameraisconfiguredtoobtainimageswhicharepre-processedandthenedgedetectionisperformedbyusingSobeloperator.TheresultcanbedisplayedwithVGAmodule.
imageacquisition;Sobeledgedetection;FPGA.
2015-09-14
教育部“春暉計劃”基金資助項目(Z2011139)
宋宇(1969-),男,漢族,吉林長春人,長春工業大學教授,碩士,主要從事嵌入式系統方向研究,E-mail:songyu@ccut.edu.cn.
10.15923/j.cnki.cn22-1382/t.2016.4.10
TP752.1
A
1674-1374(2016)04-0363-04