摘 要: 為了提高視頻跟蹤系統中目標檢測的精度,提出了一種以FPGA為核心的目標檢測方法。利用形態學對Sobel目標邊緣檢測的結果進行優化,在此基礎上,改進新的目標檢測算法彌補形態學優化存在的不足。FPGA實現結果表明,改進的目標檢測方法可以實現任何閾值情況下目標邊緣的深度優化,使得圖像邊緣更清晰、噪聲更小。
關鍵詞: 形態學; Sobel; FPGA;目標檢測
在視頻跟蹤系統的研究中,目標檢測是至關重要一環,其結果的好壞關系到圖像的分析與識別,直接影響機器視覺系統對客觀世界的理解。實現圖像中目標邊緣檢測有許多不同的方法,也一直是圖像處理的研究熱點,人們期望找到一種定位準、抗噪強、不誤檢、不漏檢的檢測算法[1]。經典的算法中主要用梯度算子,較常用的有Roberts、Prewitt和Sobel算子,其中Sobel效果較好,但也存在不足之處,無法避免噪聲,對后續的圖像處理有很大的影響。
近年來,形態學在圖像處理中起著重要的作用,它利用具有一定形態結構元素去度量、提取圖像中對應的形狀,以達到對圖像目標分析和識別的目的[2]。形態學運算是物體形狀集合與結構元素之間的相互作用,常用的運算有腐蝕、膨脹、開和閉,它對邊緣方向不敏感,可以在很大程度上抑制噪聲,探測真正的邊緣。因此,將形態學應用于目標邊緣檢測既能有效地濾除噪聲,又能保留圖像中目標原有的細節信息,具有較好的邊緣檢測效果[3]。
此外,邊緣檢測對處理速度要求比較高且算法處理的數據量比較大,傳統的軟件實現會比較慢,無法達到實時的要求。而用FPGA芯片,用硬件設計來提高圖像處理的速度,可滿足系統實時要求。本文以FPGA為平臺,利用形態學方法對Sobel邊緣檢測結果進行優化,并在此基礎上提出了一種改進的邊緣檢測方法,使得圖像中目標的邊緣更加清晰、噪聲更小。
1 視頻跟蹤系統的設計
通過攝像頭獲取實時圖像并輸入FPGA,根據目標檢測、目標跟蹤、云臺控制等算法實現運動目標的自動跟蹤,圖1為系統整體設計。目標檢測的好壞直接關系到目標跟蹤及云臺控制。
與傳統的DSP跟蹤平臺相比,FPGA有著明顯的優勢:(1)信號并行處理;(2)系統設計靈活;(3)價格在不斷降低。因此,采用FPGA作為視頻跟蹤系統處理平臺是未來的必然趨勢。
2 基于FPGA的形態學和Sobel目標檢測
2.1 形態學和Sobel算法
形態學是分析幾何形狀以及結構的一種數學方法。常用的形態學運算有:腐蝕、膨脹、開和閉。
腐蝕(?專)的作用是消除物體邊界點,膨脹(?茌)是把圖像周圍的背景點合并到物體中。
設A為一幅二值圖像,B為結構元素,則膨脹運算定義為[4]:
膨脹運算為集合B首先做關于原點的映射,然后平移形成集合()a,最后計算集合a與集合A不為空集的結構元素參考點的集合。
膨脹可擴大圖像;開運算可平滑圖像輪廓,削弱狹窄,去掉細的突出;閉運算可平滑圖像輪廓,它一般融合窄的缺口和細長的彎口,去掉小洞,填補輪廓上的縫隙[5]。
Sobel是一種微分邊緣檢測算法,該算子是由兩個卷積核g1(x,y)與g2(x,y)對原圖像f(x,y)進行卷積運算而得到的。其數學表達式為:
根據Sobel原理可得出圖2所示的Sobel邊緣檢測算法框圖。首先利用卷積運算得出水平和垂直方向梯度,然后利用均方根運算將兩個方向梯度結合,最后進行閾值處理來判斷圖像邊緣并輸出圖像邊緣檢測結果[6]。
2.2 形態學優化在Sobel目標檢測中存在的問題
形態學在一定條件下可對Sobel邊緣檢測結果進行優化,但也存在一些缺陷。圖3設計了兩種不同的實時圖像目標檢測方法,第一種為Sobel邊緣處理得到圖像中目標邊緣,第二種為先經過Sobel邊緣處理再進行形態學優化得到圖像中目標邊緣。
FPGA實現目標檢測結果如圖4所示,其中圖4(a)和圖4(c)分別為低閾值和高閾值時Sobel處理后結果,圖4(b)和圖4(d)分別為低閾值和高閾值時先經過Sobel處理再經過形態學優化得到的結果。對比圖4(a)與圖4(b)看出,低閾值情況下,采用Sobel和形態學的方法可以有效抑制Sobel邊緣檢測噪聲,降低噪聲,使圖像邊緣變得更加精細;對比圖4(c)與圖4(d)看出,隨著判定閾值升高,形態學對Sobel邊緣檢測效果的優化效果越來越不明顯,甚至開始出現邊緣點丟失。
3 改進的目標邊緣檢測算法
為了得到更好的圖像邊緣細節和提高算子的抗噪能力,本文提出改進的目標邊緣檢測算法,流程如圖5所示。
(1)對攝像頭采集的原始實時圖像進行格式轉換,RGB格式變為灰度圖像格式:
灰度值=R×0.299+G×0.587+B×0.114 (3)
(2)灰度圖像分為兩路,一路進行Sobel邊緣檢測,另一路先進行Sobel邊緣檢測再經過Dilation處理。
(3)Sobel邊緣檢測得到的每一幀圖像邊緣減去Sobel+Dilation邊緣檢測得到的圖像邊緣:
Bi(x,y)=Ii(x,y)-B(x,y) (4)
其中,Ii(x,y)表示當前幀Sobel邊緣檢測后各個像素點值,B(x,y)表示Sobel+Dilation邊緣檢測后各個像素點值。
(4)將步驟(3)得到的每一幀圖像差值計為當前幀圖像的噪聲信息,得到噪聲圖像。
(5)Sobel邊緣檢測得到的圖像邊緣減去噪聲圖像,得到改進后的邊緣圖像:
Di(x,y)=Ii(x,y)-Bi(x,y) (5)
其中,Di(x,y)表示每幀圖像最終得到的各個像素點的值。
4 試驗結果及分析
4.1 目標邊緣檢測FPGA實現的主要模塊
Sobel邊緣檢測的FPGA實現主要包含梯度計算和閾值處理,在實現時采用圖像數據緩沖為圖像做緩沖處理[7]。以下主要介紹圖像數據緩沖和卷積計算模塊的硬件實現,其中卷積運算如圖6所示。
該模塊采用3條線性緩沖器來實現Sobel算子對圖像數據的卷積運算,X1~X9為Sobel算子的模板系數,P1~P9為Sobel算子3×3模板中需要處理的每個像素點灰度值,乘、加部分由QuartusII軟件中宏功能模塊庫中的可編程多路并行加法器模塊parallel_add與可編程乘加器altmult_add進行運算。
形態學處理FPGA實現過程與卷積運算非常相似,采用3條線性緩沖器來實現形態學運算。其中,在Dilation膨脹運算時,前一級檢測的邊緣數據送入Dilation運算模塊,運算原理如圖7所示,圖中P1~P9為Dilation模塊3×3運算模板中需要處理的圖像邊緣數據。
Dilation膨脹模塊的核心部分Verilog HDL代碼如下:
P9<=Line0;P8<=X9;P7<=X8;P6<=Line1;P5<=X6;P4<=
X5;P3<=Line2; P2<=X3;P1<=X2;
if(iDVAL)
oDATA<=P9|P8|P7|P6|P5|P4|P3|P2|P1;
else
oDATA<=0;
膨脹Dilation將P1~P9作“或”運算,腐蝕Erosion將像素點P1~P9作“與”運算。
4.2 FPGA目標邊緣檢測結果分析
該實時圖像目標邊緣檢測在EP2C70 FPGA開發板上實現,視頻圖像由外部CMOS攝像頭采集,處理完的數據由TRDB-LTM顯示。系統運行在28 MHz時鐘頻率上,外部輸入實時圖像數據為640像素×480像素,1 024級灰度水平。表1為3種測試方案FPGA硬件資源使用情況,對比數據可以看出,改進的新算法資源利用率相當小,達到了目標邊緣檢測實時快速的設計要求。
改進算法的FPGA實現結果如圖8所示,圖8(a)為CMOS采集的原始彩色圖像,圖8(b)為格式轉換后的灰度圖像,圖8(c)為低閾值下改進算法的目標檢測結果,圖8(d)為高閾值下改進算法的目標檢測結果。
對比圖4(b)和圖4(d),從圖8(c)和圖8(d)可知,無論閾值如何變化,圖像經過改進算法處理得到的目標邊緣都相當清晰,而且在降低邊緣圖像噪聲的同時,也彌補了形態學對Sobel邊緣優化存在的細微空洞現象。
本文在FPGA平臺實現了Sobel算子對實時圖像中目標的邊緣檢測,以及使用形態學方法對Sobel檢測結果進行了優化,并在此基礎上提出了一種新的改進算法。與傳統Sobel邊緣檢測相比,隨著邊緣閾值的改變,形態學方法對圖像邊緣優化呈現出不同的變化,當閾值升高到一定時,可以明顯地感受到形態學優化效果不足,而新改進的算法可以在任何閾值情況下避免Sobel邊緣檢測的噪聲,讓邊緣檢測更清晰,進一步提高了圖像邊緣檢測的精度。
參考文獻
[1] 袁春蘭,熊宗龍,周雪花,等. 基于Sobel算子的圖像邊緣檢測研究[J]. 激光與2009,39(1):85-87.
[2] 鄧彩霞,王貴彬,楊鑫蕊. 改進的抗噪形態學邊緣檢測算法[J]. 數據采集理,2013,28(6):739-745.
[3] 夏平,劉馨瓊,向學軍,等.基于形態學多結構基元的含噪圖像邊緣檢測[J]2010,27(7):206-209.
[4] 趙潔,李瑋,郝志鵬,等.基于改進Canny算子與圖像形態學融合的邊緣檢測方法[J]. 微型機與應用,2011,30(10):44-47.
[5] 李峰. 基于數學形態學的圖像邊緣檢測及其在虹膜定位中的應用研究[D].長沙:2009.
[6] 張麗紅,凌朝東. 基于FPGA的Sobel邊緣檢測應用[J].電子技術應用,2011,37(8):26-29.
[7] 劉紫燕, 祁佳. 實時圖像邊緣檢測形態學優化設計及FPGA實現[J].2013,39(9):132-134.