李丹陽
摘要:針對移動目標圖像輪廓的識別,設計了一種基于Sobel算子的FPGA實時圖像邊緣檢測優(yōu)化系統,利用FPGA并行運算特性,采用流水線的方法極大提高了系統對圖像數據的處理速率。系統具有結構簡單、運行穩(wěn)定、處理數據速度快的優(yōu)點,通過實驗測試取得了良好的使用效果。
關鍵詞:Soble算子;邊緣檢測;FPGA
中圖分類號:TP391.4 文獻標識碼:A 文章編號:1007-9416(2017)11-0137-02
1 引言
圖像的邊緣檢測技術,是數字視頻圖像數據處理的重要方式之一,在計算機視覺、模式識別、遙感等領域都有著廣泛的應用。邊緣檢測是對圖像上亮度發(fā)生突變的區(qū)域的確定,這些亮度發(fā)生突變的區(qū)域就是物體的邊緣,其包含著一幅圖像的大部分特征信息,是圖像分析的基礎。怎樣才能更快速、更精準的實時檢測圖像的邊緣信息一直是國內外圖像處理領域研究的熱點之一。
快速精準的將動態(tài)圖像邊緣提取出來,不僅包含復雜計算的算法,對于系統的處理速度也有著較高的要求?,F代的FPGA器件就具備著片上邏輯資源豐富、能夠高速并行處理大量數據的優(yōu)點,能夠快速實時的進行圖像的邊緣檢測。本文以Xilinx Spartan-6系列高性能FPGA為核心,采用Soble圖像邊緣檢測算法,以Verilog HDL語言設計了實時圖像邊緣檢測系統。
2 Soble算子的圖像邊緣檢測原理
Soble 算子法又稱加權平均差分法,它的原理是計算x和y方向亮度信號的導數值,最大導數值和最小導數值就是亮度變化最劇烈的區(qū)域,也就是圖像的邊緣。利用水平和垂直方向3*3的Soble卷積表Gx和Gy作為模板如圖1(b,c),與圖像中同樣大小的3*3區(qū)域像素(如圖1(a))的對應點像素進行乘積求和運算,得到x方向和y方向的偏導數Dx和Dy如式(1),式(2)所示[1-2]。
進而可以求出中心像素的導數如式(3)所示。對于灰度圖像,其像素值是無符號的,一般由8比特數據來表示其256個亮度等級,從0(黑色)到255(白色)。將中心像素的導數值與設定的閾值進行對比,大于閾值就設置中心像素點的灰度值為255,反之設置為0。將待處理圖像的每一像素點都進行一次運算,就得到了邊緣圖像。因為開平方與平方函數都是單調的,而邊緣檢測只關注導數幅值的最值,故可將上式化簡如下絕對值之和的形式,
|D|=|Dx|+|Dy|
可以看出實際計算幅值的最值與近似后公式計算的最值發(fā)生在圖像的同一處位置。而且優(yōu)化后的近似計算絕對值能夠更加節(jié)省硬件資源,提高數據的處理速度。
3 圖像邊緣檢測的系統設計
3.1 系統的整體結構設計
圖像邊緣檢測系統的整體設計結構如圖2所示,主要以Xlinx Spartan-6 FPGA為核心,包括了實時圖像的采集、存儲、邊緣檢測和圖像的顯示模塊。實時圖像采集的傳感器采用VO7670 CMOS圖像傳感器,該傳感器能夠實時輸出YcrCb灰度圖像,數據可直接提供給邊緣檢測模塊進行數據處理。邊緣檢測模塊主要依靠FPGA并行運算的優(yōu)勢實現Soble算法的邏輯設計。圖像顯示控制模塊主要對處理之后的邊緣圖像進行實時的動態(tài)顯示。
3.2 圖像數據處理的FPGA優(yōu)化設計
為了系統高效穩(wěn)定的進行數據的處理,在FPGA內部搭建了數據處理的片上系統模型,使得圖像數據在控制流的控制下能夠有序的通過數據處理單元。如圖3所示,CMOS圖像傳感器通過I/O邏輯將圖像數據連續(xù)的保存到存儲器中,控制器控制Soble加速器讀入存儲器中的源數據進行邊緣檢測,再將處理后的圖像寫回存儲器或顯示到顯示器,仲裁器負責各模塊請求的仲裁。
3.3 數據處理邏輯單元的實現及結果分析
VO7670 CMOS的圖像分辨率為640*480,幀率為30fps,每秒有約100萬個像素數據待處理。欲滿足實時性需求,必須在100ns內至少完成一個像素的所有運算操作。像素數據是8bit字節(jié)數據,一幀圖像里一行的像素從左至右,一行像素接著一行像素,順次存儲在連續(xù)的地址空間存儲器中。I/O邏輯單獨寫一像素數據到存儲器會占用20ns,即數據處理帶寬的20%。采用Soble算子進行圖像的邊緣檢測,同樣要求在100ns內進行9個原始像素數據的讀取一個導數像素值得計算,和處理后該像素值的存儲。發(fā)現順次的讀寫處理數據不能夠滿足系統實時性的需求。
本設計在數據寫操作上進行優(yōu)化處理,采用4字節(jié)32bit一次寫操作,可以使得平均每個像素寫操作時間降低到5ns,在數據處理上我們采用Soble邊緣檢測加速器的方式進行(如圖4所示)。從原始圖像中讀取三行作為一個數據塊,每行4個相鄰的像素,把這些像素值存儲在加速器的32位寄存器中以待處理,再讓這些像素按時鐘節(jié)拍流過右側的乘法器陣列,然后向下流過加法器到達Dx和Dy寄存器,再通過絕對值電路和加法器到達RSE寄存器,再經閾值比較得到結果數據[3-4]。整塊的數據經過加速器以后,形成導數圖像中的一整行。因此數據塊的處理過程共包括起始、重復計算、和完成三個階段。這三個階段不斷重復的執(zhí)行,就可以計算出邊緣圖像每一行像素的數據,可以將結果像素數據發(fā)送給I/O邏輯寫回存儲器或顯示器顯示。
圖5為CMOS采集的源圖像,圖6為系統進行數據處理后的圖像。從結果上可以看出,在FPGA上實現Soble算法的圖像邊緣檢測,能夠對類似于文字等圖像邊緣數據的準確提取。
4 結語
本文實現了一種基于Soble算子的實時圖像邊緣檢測系統,在FPGA數據處理架構上,采用了數字邏輯片上系統,設計了Soble硬件加速器,以流水線方式優(yōu)化了邏輯設計。在保證系統實時性的基礎上,提高了系統的集成度,通過實測體現出了FPGA數字邏輯在系統設計速度上的優(yōu)勢。
參考文獻
[1]張輝,曲仕茹.基于FPGA硬件實現的圖像邊緣檢測及仿真[J].計算機仿真,2010(3):232-236.
[2]Donald G.Bailey.Design for Ebedded Imagae Processing on FPGAs[M].北京.電子工業(yè)出版社:270-293.
[3]任文平,賈贊.基于FPGA的圖像處理電路的設計與實現[J].電子技術應用,2010(2):44-46.
[4]Zai-quan, Guo; Hui, Chen; Li, Peng. Research on Remote Sensing Image Fusion Methods based on Soble Operator Wavelet Packet Transform[J]. Journal of Convergence Information Technology 2013(ProQuest):300-306.
Abstract:In order to identify contour of the moving target, a real-time image edge dectection optimization system has been designed based on Soble algorithm. The system using the parallel computing characteristics of FPGA, and pipeline design method, impoves the processing speed of image data. The device has the advantages of simple structure and fast processing, achieved good results through experimental tests.
Key Words:soble;image edge detection;FPGAendprint