《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的視頻跟蹤系統(tǒng)目標(biāo)檢測(cè)方法研究
基于FPGA的視頻跟蹤系統(tǒng)目標(biāo)檢測(cè)方法研究
2014年微型機(jī)與應(yīng)用第12期
馮 亮, 劉紫燕, 祁 佳
貴州大學(xué) 電子信息學(xué)院,貴州 貴陽(yáng)
摘要: 在視頻跟蹤系統(tǒng)的研究中,目標(biāo)檢測(cè)是至關(guān)重要一環(huán),其結(jié)果的好壞關(guān)系到圖像的分析與識(shí)別,直接影響機(jī)器視覺(jué)系統(tǒng)對(duì)客觀世界的理解。實(shí)現(xiàn)圖像中目標(biāo)邊緣檢測(cè)有許多不同的方法,也一直是圖像處理的研究熱點(diǎn),人們期望找到一種定位準(zhǔn)、抗噪強(qiáng)、不誤檢、不漏檢的檢測(cè)算法[1]。經(jīng)典的算法中主要用梯度算子,較常用的有Roberts、Prewitt和Sobel算子,其中Sobel效果較好,但也存在不足之處,無(wú)法避免噪聲,對(duì)后續(xù)的圖像處理有很大的影響。
Abstract:
Key words :

  摘   要: 為了提高視頻跟蹤系統(tǒng)中目標(biāo)檢測(cè)的精度,提出了一種以FPGA為核心的目標(biāo)檢測(cè)方法。利用形態(tài)學(xué)對(duì)Sobel目標(biāo)邊緣檢測(cè)的結(jié)果進(jìn)行優(yōu)化,在此基礎(chǔ)上,改進(jìn)新的目標(biāo)檢測(cè)算法彌補(bǔ)形態(tài)學(xué)優(yōu)化存在的不足。FPGA實(shí)現(xiàn)結(jié)果表明,改進(jìn)的目標(biāo)檢測(cè)方法可以實(shí)現(xiàn)任何閾值情況下目標(biāo)邊緣的深度優(yōu)化,使得圖像邊緣更清晰、噪聲更小。

  關(guān)鍵詞: 形態(tài)學(xué); Sobel; FPGA;目標(biāo)檢測(cè)

  在視頻跟蹤系統(tǒng)的研究中,目標(biāo)檢測(cè)是至關(guān)重要一環(huán),其結(jié)果的好壞關(guān)系到圖像的分析與識(shí)別,直接影響機(jī)器視覺(jué)系統(tǒng)對(duì)客觀世界的理解。實(shí)現(xiàn)圖像中目標(biāo)邊緣檢測(cè)有許多不同的方法,也一直是圖像處理的研究熱點(diǎn),人們期望找到一種定位準(zhǔn)、抗噪強(qiáng)、不誤檢、不漏檢的檢測(cè)算法[1]。經(jīng)典的算法中主要用梯度算子,較常用的有Roberts、Prewitt和Sobel算子,其中Sobel效果較好,但也存在不足之處,無(wú)法避免噪聲,對(duì)后續(xù)的圖像處理有很大的影響。

  近年來(lái),形態(tài)學(xué)在圖像處理中起著重要的作用,它利用具有一定形態(tài)結(jié)構(gòu)元素去度量、提取圖像中對(duì)應(yīng)的形狀,以達(dá)到對(duì)圖像目標(biāo)分析和識(shí)別的目的[2]。形態(tài)學(xué)運(yùn)算是物體形狀集合與結(jié)構(gòu)元素之間的相互作用,常用的運(yùn)算有腐蝕、膨脹、開(kāi)和閉,它對(duì)邊緣方向不敏感,可以在很大程度上抑制噪聲,探測(cè)真正的邊緣。因此,將形態(tài)學(xué)應(yīng)用于目標(biāo)邊緣檢測(cè)既能有效地濾除噪聲,又能保留圖像中目標(biāo)原有的細(xì)節(jié)信息,具有較好的邊緣檢測(cè)效果[3]。

  此外,邊緣檢測(cè)對(duì)處理速度要求比較高且算法處理的數(shù)據(jù)量比較大,傳統(tǒng)的軟件實(shí)現(xiàn)會(huì)比較慢,無(wú)法達(dá)到實(shí)時(shí)的要求。而用FPGA芯片,用硬件設(shè)計(jì)來(lái)提高圖像處理的速度,可滿足系統(tǒng)實(shí)時(shí)要求。本文以FPGA為平臺(tái),利用形態(tài)學(xué)方法對(duì)Sobel邊緣檢測(cè)結(jié)果進(jìn)行優(yōu)化,并在此基礎(chǔ)上提出了一種改進(jìn)的邊緣檢測(cè)方法,使得圖像中目標(biāo)的邊緣更加清晰、噪聲更小。

  1 視頻跟蹤系統(tǒng)的設(shè)計(jì)

  通過(guò)攝像頭獲取實(shí)時(shí)圖像并輸入FPGA,根據(jù)目標(biāo)檢測(cè)、目標(biāo)跟蹤、云臺(tái)控制等算法實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的自動(dòng)跟蹤,圖1為系統(tǒng)整體設(shè)計(jì)。目標(biāo)檢測(cè)的好壞直接關(guān)系到目標(biāo)跟蹤及云臺(tái)控制。

001.jpg

  與傳統(tǒng)的DSP跟蹤平臺(tái)相比,F(xiàn)PGA有著明顯的優(yōu)勢(shì):(1)信號(hào)并行處理;(2)系統(tǒng)設(shè)計(jì)靈活;(3)價(jià)格在不斷降低。因此,采用FPGA作為視頻跟蹤系統(tǒng)處理平臺(tái)是未來(lái)的必然趨勢(shì)。

  2 基于FPGA的形態(tài)學(xué)和Sobel目標(biāo)檢測(cè)

  2.1 形態(tài)學(xué)和Sobel算法

  形態(tài)學(xué)是分析幾何形狀以及結(jié)構(gòu)的一種數(shù)學(xué)方法。常用的形態(tài)學(xué)運(yùn)算有:腐蝕、膨脹、開(kāi)和閉。

  腐蝕(?專(zhuān))的作用是消除物體邊界點(diǎn),膨脹(?茌)是把圖像周?chē)谋尘包c(diǎn)合并到物體中。

  設(shè)A為一幅二值圖像,B為結(jié)構(gòu)元素,則膨脹運(yùn)算定義為[4]:

  

A(V$71JO$FDW~JDT41K3B4R.png

  膨脹運(yùn)算為集合B首先做關(guān)于原點(diǎn)的映射,然后平移形成集合()a,最后計(jì)算集合a與集合A不為空集的結(jié)構(gòu)元素參考點(diǎn)的集合。

  膨脹可擴(kuò)大圖像;開(kāi)運(yùn)算可平滑圖像輪廓,削弱狹窄,去掉細(xì)的突出;閉運(yùn)算可平滑圖像輪廓,它一般融合窄的缺口和細(xì)長(zhǎng)的彎口,去掉小洞,填補(bǔ)輪廓上的縫隙[5]。

  Sobel是一種微分邊緣檢測(cè)算法,該算子是由兩個(gè)卷積核g1(x,y)與g2(x,y)對(duì)原圖像f(x,y)進(jìn)行卷積運(yùn)算而得到的。其數(shù)學(xué)表達(dá)式為:

 

FPCMMJM56_U%TH6L281E}XJ.png

  根據(jù)Sobel原理可得出圖2所示的Sobel邊緣檢測(cè)算法框圖。首先利用卷積運(yùn)算得出水平和垂直方向梯度,然后利用均方根運(yùn)算將兩個(gè)方向梯度結(jié)合,最后進(jìn)行閾值處理來(lái)判斷圖像邊緣并輸出圖像邊緣檢測(cè)結(jié)果[6]。

002.jpg

  2.2 形態(tài)學(xué)優(yōu)化在Sobel目標(biāo)檢測(cè)中存在的問(wèn)題

  形態(tài)學(xué)在一定條件下可對(duì)Sobel邊緣檢測(cè)結(jié)果進(jìn)行優(yōu)化,但也存在一些缺陷。圖3設(shè)計(jì)了兩種不同的實(shí)時(shí)圖像目標(biāo)檢測(cè)方法,第一種為Sobel邊緣處理得到圖像中目標(biāo)邊緣,第二種為先經(jīng)過(guò)Sobel邊緣處理再進(jìn)行形態(tài)學(xué)優(yōu)化得到圖像中目標(biāo)邊緣。

003.jpg

  FPGA實(shí)現(xiàn)目標(biāo)檢測(cè)結(jié)果如圖4所示,其中圖4(a)和圖4(c)分別為低閾值和高閾值時(shí)Sobel處理后結(jié)果,圖4(b)和圖4(d)分別為低閾值和高閾值時(shí)先經(jīng)過(guò)Sobel處理再經(jīng)過(guò)形態(tài)學(xué)優(yōu)化得到的結(jié)果。對(duì)比圖4(a)與圖4(b)看出,低閾值情況下,采用Sobel和形態(tài)學(xué)的方法可以有效抑制Sobel邊緣檢測(cè)噪聲,降低噪聲,使圖像邊緣變得更加精細(xì);對(duì)比圖4(c)與圖4(d)看出,隨著判定閾值升高,形態(tài)學(xué)對(duì)Sobel邊緣檢測(cè)效果的優(yōu)化效果越來(lái)越不明顯,甚至開(kāi)始出現(xiàn)邊緣點(diǎn)丟失。

004.jpg

  3 改進(jìn)的目標(biāo)邊緣檢測(cè)算法

  為了得到更好的圖像邊緣細(xì)節(jié)和提高算子的抗噪能力,本文提出改進(jìn)的目標(biāo)邊緣檢測(cè)算法,流程如圖5所示。

005.jpg

  (1)對(duì)攝像頭采集的原始實(shí)時(shí)圖像進(jìn)行格式轉(zhuǎn)換,RGB格式變?yōu)榛叶葓D像格式:

  灰度值=R×0.299+G×0.587+B×0.114  (3)

  (2)灰度圖像分為兩路,一路進(jìn)行Sobel邊緣檢測(cè),另一路先進(jìn)行Sobel邊緣檢測(cè)再經(jīng)過(guò)Dilation處理。

  (3)Sobel邊緣檢測(cè)得到的每一幀圖像邊緣減去Sobel+Dilation邊緣檢測(cè)得到的圖像邊緣:

  Bi(x,y)=Ii(x,y)-B(x,y)          (4)

  其中,Ii(x,y)表示當(dāng)前幀Sobel邊緣檢測(cè)后各個(gè)像素點(diǎn)值,B(x,y)表示Sobel+Dilation邊緣檢測(cè)后各個(gè)像素點(diǎn)值。

  (4)將步驟(3)得到的每一幀圖像差值計(jì)為當(dāng)前幀圖像的噪聲信息,得到噪聲圖像。

  (5)Sobel邊緣檢測(cè)得到的圖像邊緣減去噪聲圖像,得到改進(jìn)后的邊緣圖像:

  Di(x,y)=Ii(x,y)-Bi(x,y) (5)

  其中,Di(x,y)表示每幀圖像最終得到的各個(gè)像素點(diǎn)的值。

  4 試驗(yàn)結(jié)果及分析

  4.1 目標(biāo)邊緣檢測(cè)FPGA實(shí)現(xiàn)的主要模塊

  Sobel邊緣檢測(cè)的FPGA實(shí)現(xiàn)主要包含梯度計(jì)算和閾值處理,在實(shí)現(xiàn)時(shí)采用圖像數(shù)據(jù)緩沖為圖像做緩沖處理[7]。以下主要介紹圖像數(shù)據(jù)緩沖和卷積計(jì)算模塊的硬件實(shí)現(xiàn),其中卷積運(yùn)算如圖6所示。

006.jpg

  該模塊采用3條線性緩沖器來(lái)實(shí)現(xiàn)Sobel算子對(duì)圖像數(shù)據(jù)的卷積運(yùn)算,X1~X9為Sobel算子的模板系數(shù),P1~P9為Sobel算子3×3模板中需要處理的每個(gè)像素點(diǎn)灰度值,乘、加部分由QuartusII軟件中宏功能模塊庫(kù)中的可編程多路并行加法器模塊parallel_add與可編程乘加器altmult_add進(jìn)行運(yùn)算。

  形態(tài)學(xué)處理FPGA實(shí)現(xiàn)過(guò)程與卷積運(yùn)算非常相似,采用3條線性緩沖器來(lái)實(shí)現(xiàn)形態(tài)學(xué)運(yùn)算。其中,在Dilation膨脹運(yùn)算時(shí),前一級(jí)檢測(cè)的邊緣數(shù)據(jù)送入Dilation運(yùn)算模塊,運(yùn)算原理如圖7所示,圖中P1~P9為Dilation模塊3×3運(yùn)算模板中需要處理的圖像邊緣數(shù)據(jù)。

008.jpg

  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作“或”運(yùn)算,腐蝕Erosion將像素點(diǎn)P1~P9作“與”運(yùn)算。

  4.2 FPGA目標(biāo)邊緣檢測(cè)結(jié)果分析

  該實(shí)時(shí)圖像目標(biāo)邊緣檢測(cè)在EP2C70 FPGA開(kāi)發(fā)板上實(shí)現(xiàn),視頻圖像由外部CMOS攝像頭采集,處理完的數(shù)據(jù)由TRDB-LTM顯示。系統(tǒng)運(yùn)行在28 MHz時(shí)鐘頻率上,外部輸入實(shí)時(shí)圖像數(shù)據(jù)為640像素×480像素,1 024級(jí)灰度水平。表1為3種測(cè)試方案FPGA硬件資源使用情況,對(duì)比數(shù)據(jù)可以看出,改進(jìn)的新算法資源利用率相當(dāng)小,達(dá)到了目標(biāo)邊緣檢測(cè)實(shí)時(shí)快速的設(shè)計(jì)要求。

008.jpg

  改進(jìn)算法的FPGA實(shí)現(xiàn)結(jié)果如圖8所示,圖8(a)為CMOS采集的原始彩色圖像,圖8(b)為格式轉(zhuǎn)換后的灰度圖像,圖8(c)為低閾值下改進(jìn)算法的目標(biāo)檢測(cè)結(jié)果,圖8(d)為高閾值下改進(jìn)算法的目標(biāo)檢測(cè)結(jié)果。

009.jpg

  對(duì)比圖4(b)和圖4(d),從圖8(c)和圖8(d)可知,無(wú)論閾值如何變化,圖像經(jīng)過(guò)改進(jìn)算法處理得到的目標(biāo)邊緣都相當(dāng)清晰,而且在降低邊緣圖像噪聲的同時(shí),也彌補(bǔ)了形態(tài)學(xué)對(duì)Sobel邊緣優(yōu)化存在的細(xì)微空洞現(xiàn)象。

  本文在FPGA平臺(tái)實(shí)現(xiàn)了Sobel算子對(duì)實(shí)時(shí)圖像中目標(biāo)的邊緣檢測(cè),以及使用形態(tài)學(xué)方法對(duì)Sobel檢測(cè)結(jié)果進(jìn)行了優(yōu)化,并在此基礎(chǔ)上提出了一種新的改進(jìn)算法。與傳統(tǒng)Sobel邊緣檢測(cè)相比,隨著邊緣閾值的改變,形態(tài)學(xué)方法對(duì)圖像邊緣優(yōu)化呈現(xiàn)出不同的變化,當(dāng)閾值升高到一定時(shí),可以明顯地感受到形態(tài)學(xué)優(yōu)化效果不足,而新改進(jìn)的算法可以在任何閾值情況下避免Sobel邊緣檢測(cè)的噪聲,讓邊緣檢測(cè)更清晰,進(jìn)一步提高了圖像邊緣檢測(cè)的精度。

  參考文獻(xiàn)

  [1] 袁春蘭,熊宗龍,周雪花,等. 基于Sobel算子的圖像邊緣檢測(cè)研究[J]. 激光與2009,39(1):85-87.

  [2] 鄧彩霞,王貴彬,楊鑫蕊. 改進(jìn)的抗噪形態(tài)學(xué)邊緣檢測(cè)算法[J]. 數(shù)據(jù)采集理,2013,28(6):739-745.

  [3] 夏平,劉馨瓊,向?qū)W軍,等.基于形態(tài)學(xué)多結(jié)構(gòu)基元的含噪圖像邊緣檢測(cè)[J]2010,27(7):206-209.

  [4] 趙潔,李瑋,郝志鵬,等.基于改進(jìn)Canny算子與圖像形態(tài)學(xué)融合的邊緣檢測(cè)方法[J]. 微型機(jī)與應(yīng)用,2011,30(10):44-47.

  [5] 李峰. 基于數(shù)學(xué)形態(tài)學(xué)的圖像邊緣檢測(cè)及其在虹膜定位中的應(yīng)用研究[D].長(zhǎng)沙:2009.

  [6] 張麗紅,凌朝東. 基于FPGA的Sobel邊緣檢測(cè)應(yīng)用[J].電子技術(shù)應(yīng)用,2011,37(8):26-29.

  [7] 劉紫燕, 祁佳. 實(shí)時(shí)圖像邊緣檢測(cè)形態(tài)學(xué)優(yōu)化設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].2013,39(9):132-134.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。