宋 宇,包文來
(長春工業(yè)大學(xué) 計算機(jī)科學(xué)與工程學(xué)院, 吉林 長春 130012)
?
FPGA圖像采集處理系統(tǒng)
宋宇,包文來
(長春工業(yè)大學(xué) 計算機(jī)科學(xué)與工程學(xué)院, 吉林 長春130012)
FPGA通過配置CMOS攝像頭獲取圖像信息,對得到的圖像進(jìn)行預(yù)處理,利用Sobel算子方法對圖像進(jìn)行邊緣檢測,并對處理結(jié)果通過外置顯示模塊進(jìn)行實(shí)時顯示。
圖像采集;Sobel邊緣檢測;FPGA
視頻圖像采集處理系統(tǒng)在許多領(lǐng)域都有著廣泛的應(yīng)用,小到工業(yè)、農(nóng)業(yè),大到醫(yī)療、軍事都發(fā)揮著舉足輕重的作用。視頻圖像可以傳遞許多信息,如何準(zhǔn)確實(shí)時地獲取到有用的圖像,并對圖像進(jìn)行處理分析至關(guān)重要。文中從手勢識別技術(shù)角度出發(fā),設(shè)計了一種基于FPGA的圖像采集處理系統(tǒng)[1],對圖像采集處理快速準(zhǔn)確,并通過VGA進(jìn)行實(shí)時顯示。
1.1系統(tǒng)結(jié)構(gòu)圖
本設(shè)計選用CycloneIV系列的EP4CE15E17C8NFPGA為核心處理器,使用QuartusⅡ 作為系統(tǒng)軟件開發(fā)工具,并配合Verilog語言編程來實(shí)現(xiàn)各個模塊的功能[2]。系統(tǒng)主要由圖像采集、VGA顯示、圖像預(yù)處理、邊緣檢測等模塊構(gòu)成,系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
1.2系統(tǒng)工作流程
系統(tǒng)上電后,各部件由FPGA完成初始化及配置工作模式[3],通過攝像頭采集圖像,并將采集到的圖像通過視頻解碼芯片傳送給FPGA,F(xiàn)PGA收到信號后,將圖像數(shù)據(jù)緩存到存儲模塊中,并將圖像發(fā)送到處理模塊,處理模塊對接收到的圖像進(jìn)行預(yù)處理及邊緣檢測操作,最后將處理后的圖像通過VGA顯示模塊實(shí)時顯示。系統(tǒng)工作流程如圖2所示。
圖2 系統(tǒng)工作流程
2.1圖像采集模塊
模塊通過攝像頭采集圖像,攝像頭采用OV7725CMOS傳感器,采集到的圖像格式為模擬視頻信號,F(xiàn)PGA通過I2C總線配置視頻解碼芯片[4],將模擬視頻信號轉(zhuǎn)化為數(shù)字信號,格式為YUV4∶2∶2,供FPGA內(nèi)部處理模塊使用,文中采取的視頻解碼芯片為TVP5150。
TVP5150是一款低功耗、支持SECAM、NTSC、PAL等格式的高性能解碼芯片,適用于便攜、高性能的產(chǎn)品設(shè)計。I2C總線是串行兩線式總線,分別為串行數(shù)據(jù)線和串行時鐘線,器件被連接在這兩條線之間,通過這兩條線來傳遞信息,傳輸起始和停止條件由兩條線之間的電平高低決定。當(dāng)串行時鐘線是高電平,且串行數(shù)據(jù)線由高電平向低電平轉(zhuǎn)換時開始傳送工作;當(dāng)串行時鐘線是高電平,且串行數(shù)據(jù)線從低電平向高電平轉(zhuǎn)換時停止傳送工作。數(shù)據(jù)傳輸時,串行數(shù)據(jù)線所接收的每個字節(jié)必須為8位,但可以接收任意數(shù)量的字節(jié),首先傳輸?shù)氖菙?shù)據(jù)的最高位。數(shù)據(jù)傳輸必須帶響應(yīng),由主機(jī)產(chǎn)生相關(guān)的響應(yīng)時鐘脈沖,在傳輸過程中,如果從機(jī)當(dāng)前處于忙碌狀態(tài),不能立刻完成傳輸,可以通過保持串行時鐘線處于低電平,這時主機(jī)進(jìn)入數(shù)據(jù)傳輸延遲狀態(tài),當(dāng)從機(jī)可以進(jìn)行傳輸時,釋放串行時鐘線,則開始數(shù)據(jù)傳輸。I2C總線的時序圖如圖3所示。
圖3I2C總線的時序圖
2.2SDRAM存儲模塊
由于系統(tǒng)采集速度快且數(shù)據(jù)量大,而處理速度遠(yuǎn)不及采集速度,所以需要完成系統(tǒng)相關(guān)數(shù)據(jù)存儲工作,文中采用Hynix的32BitSDRAMHY57V283220T,共有4Banks*1M*32Bit的資源,完成在特定時間內(nèi)對已經(jīng)采集到但未經(jīng)處理圖像的緩存,并通過存儲控制器為SDRAM提供滿足時序要求的控制信號輸入[5]。
2.3VGA顯示模塊
設(shè)計加入了VGA顯示模塊,通過此模塊可以對系統(tǒng)處理后的視頻圖像進(jìn)行實(shí)時顯示。VGA顯示器所能識別的信號為RGB格式,被處理后的視頻圖像格式為YUV4∶2∶2數(shù)字信號,本設(shè)計采用AVD7123視頻編碼芯片來實(shí)現(xiàn)圖像格式的轉(zhuǎn)化,ADV7123接收FPGA發(fā)送的數(shù)字圖像信號以及時鐘行場同步信號,并通過標(biāo)準(zhǔn)的VGA接口輸出來實(shí)現(xiàn)與VGA顯示器的通信。
3.1圖像預(yù)處理
圖像采集模塊采集到的視頻圖像會摻雜許多噪聲,對后續(xù)處理造成誤導(dǎo),預(yù)處理的作用就是采用快速中值濾波[6]的方法來去除圖像噪聲。
快速中值濾波是在中值濾波的基礎(chǔ)上提出來的一種快速圖像處理方法,通過對選取模板區(qū)域內(nèi)各行各列的像素灰度值進(jìn)行降序(或升序)排列,生成新的像素矩陣,然后分別找出新生成像素矩陣第一行的最小值,第二行的中間值,第三行的最大值,并把這3個數(shù)值組成新的序列,對新序列再次求取中間值,以此中間值替換原始圖像模板區(qū)域內(nèi)中心位置的像素灰度值,以此類推,文中選取3*3區(qū)域模板。
快速中值濾波包括兩部分:一是3*3區(qū)域模板的生成,并獲取區(qū)域內(nèi)所有像素灰度數(shù)據(jù);二是快速中值濾波算法的實(shí)現(xiàn)。
3.1.1模板生成及獲取像素值
本設(shè)計選取2個FIFO存儲器和9個移位寄存器J1~J9來實(shí)現(xiàn)3*3模板的生成及模板區(qū)域像素值的提取,如圖4所示。
圖4 模板生成原理圖
每個移位寄存器存儲一個像素值,每個FIFO存儲器存儲一行的像素數(shù)據(jù),當(dāng)?shù)谌械臄?shù)據(jù)采集完成后,將第三行數(shù)據(jù)和2個FIFO中的數(shù)據(jù)一起讀出,保證三行數(shù)據(jù)的同步。
3.1.2中值濾波算法硬件實(shí)現(xiàn)
本設(shè)計通過7個三輸入比較器來實(shí)現(xiàn), 把7個比較器分為3組,比較過程如圖5所示。
圖5 中值濾波算法流程
對于提取的像素集{X11,X12,…,X33}來說,首先,用第一組3個比較器分別對像素點(diǎn)集的每行進(jìn)行比較,完成對每行像素值的降序排列,然后再用第二組3個比較器分別對每行最大、最小及中間值組成序列進(jìn)行比較,完成對每列像素值的降序排列,最后用一個比較器對第二組比較器B4的最小值、B5產(chǎn)生的中值及B6產(chǎn)生的最大值進(jìn)行比較,比較出的中值即為區(qū)域模板內(nèi)像素的中值。
3.2Sobel邊緣檢測
Sobel邊緣檢測算法[7-8]的實(shí)現(xiàn)是使用垂直和水平兩個方向算子,該算子由兩組3*3的矩陣構(gòu)成,分別為橫向及縱向,將之與圖像作卷積運(yùn)算,分別得出相應(yīng)的梯度值分量,再利用梯度值公式求出近似梯度值大小,把計算結(jié)果與預(yù)先存儲的閾值做對比,如果小于閾值,則結(jié)果是非邊緣部分。對于原始圖像A的3*3區(qū)域來說,首先求取方向梯度分量Gx和Gy:
(1)
(2)
然后求取圖像中任意像素的梯度近似值大小:
(3)
最后通過比較求取的梯度值與預(yù)先存儲閾值的大小來確定邊緣檢測結(jié)果,當(dāng)梯度值小于閾值時,將原始圖像灰度值置為0,反之則為255,以此類推。
為了驗(yàn)證設(shè)計的合理性,通過QuartusⅡ軟件進(jìn)行綜合仿真,實(shí)驗(yàn)結(jié)果分別如圖6和圖7所示。
圖6原始圖像和經(jīng)中值濾波后的灰度圖像
圖7 原始圖像和Sobel邊緣檢測后的圖像
提出的設(shè)計方案是以FPGA為核心的圖像采集處理系統(tǒng),主要由圖像采集、圖像處理、顯示模塊等幾部分模塊組成,系統(tǒng)充分發(fā)揮了FPGA的靈活性和可移植性強(qiáng)等特點(diǎn),提高了圖像處理速度。實(shí)驗(yàn)證明,本系統(tǒng)可實(shí)現(xiàn)圖像采集、處理及實(shí)時顯示功能,對進(jìn)一步研究手勢識別、實(shí)時監(jiān)控及視頻圖像跟蹤技術(shù)打下了堅(jiān)實(shí)基礎(chǔ)。
[1]陳國柱,劉濤,李元宗.基于FPGA的圖像采集與存儲系統(tǒng)的設(shè)計[J].機(jī)械工程與自動化,2007(4):44-46.
[2]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].2版.北京:北京航空航天大學(xué)出版社,2010:20-300.
[3]吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,2011:200-202.
[4]劉麗麗.基于FPGA的手勢識別技術(shù)研究[D].長春:長春理工大學(xué),2014.
[5]揚(yáng)帆,楊曉慧,黃勇.基于FPGA和USB的圖像傳輸平臺[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2013,34(4):397-400.
[6]和妍.基于FPGA的圖像采集處理系統(tǒng)的研究[D].鄭州:河南理工大學(xué),2010.
[7]郭龍,段哲民.FPGA的視頗實(shí)時邊緣檢測系統(tǒng)[J].電子設(shè)計工程,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
教育部“春暉計劃”基金資助項(xiàng)目(Z2011139)
宋宇(1969-),男,漢族,吉林長春人,長春工業(yè)大學(xué)教授,碩士,主要從事嵌入式系統(tǒng)方向研究,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