資源描述:
《基于IRFPA改進(jìn)中值濾波算法的FPGA實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、基于IRFPA改進(jìn)中值濾波算法的FPGA實(shí)現(xiàn)徐世偉1劉嚴(yán)嚴(yán)1(光電對(duì)抗技術(shù)國(guó)防科技重點(diǎn)實(shí)驗(yàn)室)摘要:中值濾波是基于排序統(tǒng)計(jì)理論的一種能有效抑制噪聲的非線性信號(hào)處理技術(shù)。改進(jìn)中值濾波算法與傳統(tǒng)3×3中值濾波器相比較:濾波模板由2個(gè)FIFO與7個(gè)寄存器組成,簡(jiǎn)單實(shí)用;經(jīng)過(guò)6級(jí)比較可以快速找到9個(gè)數(shù)的中值,提高了尋找中值的速度;得到的中值與原始數(shù)據(jù)經(jīng)過(guò)閾值比較,做選擇性替換,便更好地保持圖像細(xì)節(jié)。此算法在Sofradir公司的640×512元紅外焦平面陣列探測(cè)器上,成功實(shí)現(xiàn)3×3窗口對(duì)圖像進(jìn)行中值濾波,運(yùn)算簡(jiǎn)單速度快,在濾除噪聲尤其是脈沖噪聲的同時(shí)能很好的保護(hù)信
2、號(hào)的細(xì)節(jié)信息。關(guān)鍵字:紅外焦平面陣列;中值濾波;模板;閾值O引言基于紅外焦平面陣列(IRFPA)的凝視紅外系統(tǒng)是目前紅外技術(shù)領(lǐng)域的重要方向。由于工藝水平因素限制,以及圖像在生成、采集、傳輸過(guò)程中,不可避免的引入各種噪聲使圖像質(zhì)量變差。因此在實(shí)際應(yīng)用前,除了要對(duì)圖像進(jìn)行非均勻變化和盲元補(bǔ)償以外,還要適宜增加某些特定的圖像預(yù)處理算法來(lái)抑制圖像噪聲,以利于后續(xù)處理。凝視紅外系統(tǒng)的幀速一般較快,對(duì)電子學(xué)系統(tǒng)實(shí)時(shí)處理能力要求較高,在幀周期內(nèi)由數(shù)字信號(hào)處理芯片(DSP)獨(dú)立完成這些圖像預(yù)處理、目標(biāo)識(shí)別、跟蹤算法的難度比較大。所以可以把一些主要涉及邏輯運(yùn)算和乘加計(jì)算的算
3、法交給FPGA來(lái)處理,充分發(fā)揮FPGA的高速、并行計(jì)算能力強(qiáng)的特點(diǎn)。紅外圖像一般存在噪聲點(diǎn)大,目標(biāo)和背景之間灰度差小,邊緣模糊的特點(diǎn),圖像必須經(jīng)過(guò)預(yù)處理進(jìn)行質(zhì)量提高和特征增強(qiáng),才能進(jìn)行目標(biāo)檢測(cè)識(shí)別與跟蹤的運(yùn)算。中值濾波是較為常用的紅外圖像濾波算法,經(jīng)常用于去除圖像的椒鹽噪聲。本文在傳統(tǒng)的中值濾波算法的基礎(chǔ)上對(duì)中值濾波做些改進(jìn),以640×512元紅外焦平面陣列探測(cè)器為驗(yàn)證對(duì)象,選用Altera公司的高性能StratixⅡEP2S60作為硬件平臺(tái),以流水方式來(lái)實(shí)現(xiàn)中值濾波算法。1中值濾波原理圖像在生成,傳輸過(guò)程中常會(huì)受到各種噪聲源的干擾和影響,為了抑制噪聲,改
4、善圖像質(zhì)量,在對(duì)圖像分析前需要對(duì)圖像進(jìn)行濾波、平滑處理。中值濾波是一種能有效地抑制圖像噪聲而提高信噪比的非線性濾波技術(shù)。它首先對(duì)鄰域點(diǎn)的灰度值進(jìn)行排序,然后選擇中間值作為輸出灰度值。中值濾波的公式如下:g(x,y)=median{f(x-i,y-j)}i,J∈S(5)其中,g(x,y)和f(x,y)為像素灰度值;S為模板窗口。對(duì)于不同的圖像質(zhì)量有不同的應(yīng)用模板窗口,其中常用的有3×3模板和5×5模板。中值濾波算法可以在DSP中實(shí)現(xiàn),隨著FPGA可編程邏輯器件的邏輯單元的數(shù)量不斷提高,現(xiàn)在這部分功能完全可以在FPGA上實(shí)現(xiàn)。也不需要FPGA外部存儲(chǔ)器的配合。
5、主要有下面兩方面工作要做。1.1模板生成二維中值濾波的模板形狀和尺寸有多種樣式,不同的圖像內(nèi)容和不同的應(yīng)用要求,往往采用不同的模板形狀和尺寸,常用的中值濾波有線形、方形、十字形、X字型以及矩形等。根據(jù)紅外圖像的特點(diǎn)選用方形模板更為適合,以3×3的窗口為例,中值濾波處理算法是針對(duì)鄰域像素操作。利用2個(gè)FIFO和6個(gè)寄存器對(duì)圖像的行列數(shù)據(jù)進(jìn)行存儲(chǔ),設(shè)計(jì)濾波窗口如圖1所示。ImageData圖13×3窗口原理框圖R23R13R33R11R12R21R22R31R32R11R12R13R21R22R23R31R32R33Reg32Reg22Reg12Reg31Re
6、g21Reg11FIFO1FIFO2Reg33圖1中,每個(gè)FIFO的地址長(zhǎng)度為圖像的寬度減2,即一個(gè)FIFO加2個(gè)寄存器存儲(chǔ)一行圖像數(shù)據(jù),用于圖像行數(shù)的緩存;7個(gè)寄存器分3組兩兩串接,實(shí)現(xiàn)每行數(shù)據(jù)上列像素的緩存,從而形成一個(gè)3×3的濾波窗口,在一個(gè)像素時(shí)鐘周期內(nèi)并行輸出9個(gè)數(shù)據(jù)作為后續(xù)算法模塊的輸入。通常,圖像邊緣不包含重要信息,可以將邊緣點(diǎn)位置取為原始值。1.2中值濾波算法設(shè)計(jì)[1]中值濾波器的核心算法是排序,排序法的優(yōu)劣直接決定了求中值的效率,從而決定了設(shè)計(jì)的整體性能?;谟布呐判蛩惴ㄔO(shè)計(jì)可以充分利用FPGA硬件平臺(tái)并行性特點(diǎn),從而達(dá)到加速處理的目的
7、。原始的冒泡排序算法適合計(jì)算機(jī)軟件操作,應(yīng)用FPGA應(yīng)當(dāng)盡可能多的用到FPGA并行操作。對(duì)9個(gè)數(shù)據(jù)直接找到中間值不容易,但最大值與最小值可以很快找到,如果找到9個(gè)數(shù)中的最大值與最小值,就可以將這兩個(gè)數(shù)排除掉,剩下的7個(gè)數(shù)繼續(xù)尋找最大值與最小值。找到后排除,以此類推,最后剩下的那個(gè)數(shù)就是這9個(gè)數(shù)中的中間值。設(shè)計(jì)一個(gè)3輸入比較器,在一個(gè)時(shí)鐘周期內(nèi)就可以比較出它們的大小關(guān)系。其輸入數(shù)據(jù)為圖1所示的模板生成的數(shù)據(jù)。首先將9個(gè)數(shù)分三組,找到每組的最大值、最小值與中間值(參見(jiàn)圖2所示)。然后將3組比較結(jié)果中的最大數(shù)放在一起,最小數(shù)放在一起,中間值放在一起,組成第二級(jí)比
8、較。第二級(jí)比較可以找到9個(gè)數(shù)中的最大值及最小值,這兩個(gè)數(shù)不參加下一