王麗紅 胡長(zhǎng)宏 范鮮紅 高春歌 張曉峻 孫晶華
摘要:針對(duì)現(xiàn)有自適應(yīng)中值濾波器運(yùn)行耗時(shí)長(zhǎng)以及在高椒鹽噪聲密度下去噪性能低的問(wèn)題,提出一種基于FPGA的自適應(yīng)中值濾波器優(yōu)化方法,對(duì)鐵軌圖像進(jìn)行濾波研究。加入像素噪聲閾值判斷和二次求中值的方法,提高圖像在大椒鹽噪聲密度下的處理能力,在大窗口中只對(duì)外圍像素求中值減少迭代處理,降低算法的復(fù)雜度和運(yùn)算量,利用FPGA的流水線結(jié)構(gòu)和并行處理能力,加速算法的運(yùn)行。與現(xiàn)有仿真濾波效果最優(yōu)的中值濾波器相比,優(yōu)化方法圖像細(xì)節(jié)保持更加完整,運(yùn)算量降低15%,峰值信噪比值平均提高0.9dB,采用FPGA運(yùn)行優(yōu)化算法將耗時(shí)降低到了毫秒級(jí),為鐵軌圖像實(shí)時(shí)處理應(yīng)用提供了基礎(chǔ)。
關(guān)鍵詞:自適應(yīng)中值濾波;噪聲閑值FPGA;流水線結(jié)構(gòu);實(shí)時(shí)處理
DOI:10.15938/j.jhust.2021.05.009
中圖分類(lèi)號(hào):TP391.41 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1007-2683(2021)05-0068-08
0 引言
圖像濾波去噪是圖像預(yù)處理過(guò)程的關(guān)鍵技術(shù)之一,其性能好壞直接影響后續(xù)圖像的效果。圖像濾波去噪最常用的方式是將某一點(diǎn)像素與其鄰域內(nèi)的幾個(gè)像素放在二維像素窗口內(nèi)進(jìn)行處理,這是由于某一點(diǎn)的像素值與其鄰域像素相關(guān)度最大,噪聲信號(hào)和邊緣像素與其鄰域其他像素灰度值差異較大?;诖耍刹捎锰蕹徲騼?nèi)噪聲信號(hào)的方式來(lái)達(dá)到去噪的目的[1]。中值濾波是基于鄰域處理的一類(lèi)非線性濾波方法,可有效去除椒鹽噪聲[2]。椒鹽噪聲最明顯的特點(diǎn)是會(huì)形成灰度值極大或極小的噪聲點(diǎn),這在圖像顯示上是一些突兀的黑白點(diǎn),且這些點(diǎn)一般是孤立存在的,互相之間沒(méi)有聯(lián)系[3]。但是中值濾波存在局限性,當(dāng)濾波窗口較小時(shí)去噪能力較差,當(dāng)濾波窗口較大時(shí),雖然有較好的去噪能力,但不能較好的保持圖像細(xì)節(jié)。為此學(xué)者們提出自適應(yīng)中值濾波器(Adaptive Median Filter,AMF)以及優(yōu)化方法來(lái)應(yīng)對(duì)這種問(wèn)題。標(biāo)準(zhǔn)的自適應(yīng)中值濾波器利用窗口迭代的方法求出窗口中值再判斷輸出,在大濾波窗口下存在細(xì)節(jié)顯示模糊,且在大窗口內(nèi)對(duì)小窗口像素的重復(fù)排序使得排序效率較低[4-6]。文[4]提出盡可能使用小窗口濾波,并引入判斷閾值對(duì)疑似噪聲的中心像素進(jìn)行二次判斷進(jìn)而輸出。文[5]提出在自適應(yīng)中值濾波器判斷到最大窗口時(shí),利用非極值像素灰度值的均值來(lái)替代輸出,在高椒鹽噪聲密度下濾波具有良好效果?,F(xiàn)有的算法研究都基于計(jì)算機(jī)運(yùn)行,實(shí)時(shí)性不能滿(mǎn)足實(shí)際應(yīng)用需求。針對(duì)鐵軌健康狀態(tài)視覺(jué)檢測(cè)應(yīng)用需求,提出在求中值時(shí)加入對(duì)噪聲判斷的步驟,提高鐵軌圖像噪聲處理能力,降低窗口迭代引起的運(yùn)算量,同時(shí)結(jié)合FPGA流水線并行處理結(jié)構(gòu)加速算法的運(yùn)算速度,提高自適應(yīng)中值濾波算法的實(shí)時(shí)性[7]。
1 自適應(yīng)中值濾波器優(yōu)化
自適應(yīng)中值濾波器加入了窗口自適應(yīng)增大功能,在濾波窗口內(nèi)判斷中心像素是否為噪聲,進(jìn)而選擇輸出原中心像素值還是窗口像素的中值[8]。假設(shè)在大小為N×N的正方形像素鄰域內(nèi),尸。是窗口中心像素的灰度值,W1為當(dāng)前窗口邊長(zhǎng),Wmax為規(guī)定的最大窗口邊長(zhǎng)。Pmin、Pmed和Pmax分別為某一窗口中的灰度最小值、灰度中間值和灰度最大值,則自適應(yīng)中值濾波的輸出流程為:
1)若Pmin 2)若Pmin 從以上濾波方法可發(fā)現(xiàn),算法對(duì)噪聲點(diǎn)的判斷是以Pmin和Pmax為基準(zhǔn)的,如果Pxy=Pmin或者Pxy=Pmax,則認(rèn)為Pxy為噪聲點(diǎn),這樣的判斷很容易把邊緣或細(xì)節(jié)這些高頻區(qū)域誤認(rèn)為噪聲點(diǎn)[9]。在一個(gè)奇數(shù)邊長(zhǎng)的窗口中,若椒鹽噪聲密度大于50%,會(huì)導(dǎo)致窗口內(nèi)的中值仍然是噪聲點(diǎn),則自適應(yīng)中值濾波算法不能取到誤差較小的結(jié)果[10]。另外,隨著濾波窗口的增大,椒鹽噪聲濾除效果得以提高,但圖像細(xì)節(jié)丟失變嚴(yán)重[11]。 為此,本文對(duì)現(xiàn)有自適應(yīng)中值濾波進(jìn)行優(yōu)化,采用最大為5×5的窗口,通過(guò)遍歷3×3窗口內(nèi)的所有像素,篩選出非噪聲信號(hào),求出非噪聲數(shù)組中值并判斷輸出,只有當(dāng)小窗口中所有像素都被噪聲污染時(shí)才增大窗口。具體流程如圖1所示。 圖1 改進(jìn)的自適應(yīng)中值濾波流程圖 第1步:在3×3窗口中采用標(biāo)準(zhǔn)的3×3中值濾波方法,若滿(mǎn)足Pmin 第2步:對(duì)3×3窗口內(nèi)所有像素進(jìn)行非噪聲點(diǎn)判斷和統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果放在一個(gè)數(shù)組,若數(shù)組非空,則將這個(gè)數(shù)組的中值Pmed1作為輸出結(jié)果。這是由于3×3窗口內(nèi)有效像素灰度值的變化不會(huì)很大,若在該窗內(nèi)存在非噪聲點(diǎn)的像素,統(tǒng)計(jì)這些像素值并用其中值Pmed1替代中心像素Pxy輸出,這樣就可排除噪聲且對(duì)圖像質(zhì)量影響不大,這與標(biāo)準(zhǔn)中值濾波的思想一致。本文為了簡(jiǎn)化計(jì)算,設(shè)灰度值在1和254之間的像素為非噪聲信號(hào);若數(shù)組為空,則說(shuō)明3×3窗口內(nèi)經(jīng)判斷都是椒鹽噪聲,則將窗口擴(kuò)大到5×5窗口。 第3步:在5×5窗口中,僅對(duì)中心像素Psr和3×3窗口以外的16個(gè)像素進(jìn)行判斷,判斷條件與前兩步一致。采用這種方法可減小計(jì)算量提高運(yùn)算效率。若5×5窗口內(nèi)非噪聲數(shù)組為空,即5×5窗口內(nèi)數(shù)據(jù)均為椒鹽噪聲,則進(jìn)入第4步。 第4步:求出3×3窗內(nèi)中心像素四鄰域的灰度值的平均值Pavg,將該值作為輸出結(jié)果。這是一種折中的做法,可避免直接輸出椒鹽噪聲。 以上過(guò)程的優(yōu)勢(shì)在于小窗口細(xì)節(jié)保持良好且能有效濾除噪聲,在大窗口濾波時(shí)由于剔除了小窗口的所有噪聲點(diǎn),降低了大窗口排序帶來(lái)的運(yùn)算壓力,提高了算法的運(yùn)算效率。 2 仿真實(shí)驗(yàn) 以一幅360×134像素的斷裂鐵軌圖作算法研究,采用處理器為Intel Core i7-8700的計(jì)算機(jī)進(jìn)行仿真,處理器的正常運(yùn)行頻率可達(dá)3.19GHz,仿真過(guò)程中像素點(diǎn)的灰度值采用64位浮點(diǎn)數(shù)。圖2給出了標(biāo)準(zhǔn)的3×3,5×5中值濾波器,最大窗為5×5的AMF,文[4]和[5]提出的方法以及本文方法去除椒鹽噪聲密度為70%的圖像的效果。后三種方法最大濾波窗口為5×5。由圖2可以看出,標(biāo)準(zhǔn)的中值濾波和自適應(yīng)中值濾波器的去噪效果有限,文[4]和[5]與本文方法效果接近,但通過(guò)裂縫邊緣和鐵軌平面的細(xì)節(jié)可看出文[5]對(duì)細(xì)節(jié)處理不佳。 椒鹽噪聲密度為70%的情況下,以上算法運(yùn)行時(shí)間如表1所示,本文算法的效率要優(yōu)于文[4]和文[5],消耗的時(shí)間是文[4]的94%,是文[5]的75%。 采用峰值信噪比(PSNR)和平均均方誤差(NMSE)評(píng)價(jià)濾波的效果[12]。PSNR表示信號(hào)的最大功率與噪聲功率的比值,NMSE表示圖像灰度函數(shù)的穩(wěn)定性,PSNR越大,NMSE越小,說(shuō)明濾波效果越好,圖像還原度越高。 不同椒鹽噪聲密度下幾種方法的PSNR和NMSE參數(shù)曲線如圖3和圖4所示??梢钥闯?,標(biāo)準(zhǔn)的3×3和5×5中值濾波性器能明顯低于5×5自適應(yīng)中值濾波器及其優(yōu)化后的濾波器。椒鹽噪聲密度大于50%的情況下,標(biāo)準(zhǔn)的中值濾波器及5×5自適應(yīng)中值濾波器的PSNR與NMSE參數(shù)都驟降,而文[4]和[5]以及本文優(yōu)化的濾波器的兩種參數(shù)曲線變化緩慢,這說(shuō)明優(yōu)化方法可有效提高濾波器在較高噪聲密度下的去噪效果。由圖3可見(jiàn),椒鹽噪聲占比從10%到90%范圍內(nèi),本文方法的PSNR值略高于文[4]和[5]且整體趨勢(shì)平滑,經(jīng)計(jì)算本文方法在噪聲密度小于80%時(shí),PSNR的平均值比文[4]高1.23dB,比文[5]高3.64dB,大于80%后文[4]的PSNR值快速降低,文[5]的PSNR值降低緩慢,大于87%后文[5]的PSNR值具有優(yōu)勢(shì)。 綜上所述,本文方法降低了中值濾波器算法的復(fù)雜度,能夠保持圖像的細(xì)節(jié),去椒鹽噪聲的效果更好。此外,本文方法對(duì)窗口內(nèi)像素的判斷是全覆蓋式的,不會(huì)漏掉有效像素,這對(duì)于還原圖像有重要意義。 3 基于FPGA的濾波器實(shí)現(xiàn) 根據(jù)表1的結(jié)果,不同中值濾波器在Intel Corei7-8700處理器上的運(yùn)行時(shí)間都超過(guò)了2s,不能滿(mǎn)足鐵軌圖像實(shí)時(shí)處理的要求。為此,采用Altera公司的Cyclone IV系列FPGA產(chǎn)品EP4CElOF17C8N,加速算法的運(yùn)行速度。該芯片具有10320個(gè)邏輯單元,可滿(mǎn)足算法硬件實(shí)現(xiàn)的資源需求。 數(shù)字圖像的傳輸是以數(shù)據(jù)流的形式將像素灰度串行傳輸[13],像素輸出流向是單向的,若圖像處理算法沒(méi)有反饋或迭代運(yùn)算,則可采用流水線設(shè)計(jì)的方式來(lái)提高系統(tǒng)的工作頻率[14]。流水線設(shè)計(jì)只需在開(kāi)始時(shí)刻需要額外的處理時(shí)間,其余時(shí)間都是在不斷輸出數(shù)據(jù)[15]。若采用串行CPU處理像素,則每個(gè)像素都會(huì)花費(fèi)多個(gè)時(shí)鐘周期完成處理,所有像素處理時(shí)間累加就是一幅圖像處理完畢到顯示所需的時(shí)間,像素越多則耗費(fèi)的時(shí)間成倍增加,因而無(wú)法得到實(shí)時(shí)的處理效果[16]。而采用FPGA流水線處理結(jié)構(gòu),所有像素處理所耗費(fèi)時(shí)間只需幾個(gè)時(shí)鐘周期,這就使得FPGA很適合于實(shí)時(shí)處理圖像[17]。 3.1 濾波器實(shí)現(xiàn)的總體架構(gòu) 本文優(yōu)化濾波器在FPGA上實(shí)現(xiàn)的結(jié)構(gòu)如圖5所示。它包括了行場(chǎng)同步控制模塊、5×5窗口生成模塊、數(shù)據(jù)排序模塊、噪聲判斷及中值輸出模塊和數(shù)據(jù)判斷及輸出模塊。這些模塊采用流水線的方式對(duì)圖像信號(hào)流并行處理,運(yùn)算過(guò)程中像素點(diǎn)的灰度值采用8位的定點(diǎn)數(shù)。 實(shí)現(xiàn)流程為:數(shù)據(jù)輸入端串行輸入一幅360 x134像素的8位灰度圖像數(shù)據(jù),以行場(chǎng)信號(hào)為數(shù)據(jù)有效標(biāo)示位。通過(guò)5×5窗口生成模塊可產(chǎn)生以Pxy為中心像素的像素窗口。Pxy和其外圍第一層數(shù)據(jù)構(gòu)成3×3窗口進(jìn)行排序,同時(shí)Pxy和其外圍第二層數(shù)據(jù)構(gòu)成5×5窗口進(jìn)行排序,在排序模塊中分別加入一個(gè)噪聲判斷和像素輸出模塊,用以計(jì)算該窗口內(nèi)的有效像素個(gè)數(shù)以及寄存灰度值,進(jìn)而求出窗口內(nèi)的中值。最后將所有可能的結(jié)果同步后交給數(shù)據(jù)判斷及輸出模塊,進(jìn)行最終的輸出判斷。經(jīng)仿真驗(yàn)證,在像素時(shí)鐘頻率為24MHz下,從窗口讀出一個(gè)數(shù)據(jù)到該數(shù)據(jù)處理結(jié)束后輸出,僅延遲6個(gè)時(shí)鐘周期,實(shí)現(xiàn)了圖像的實(shí)時(shí)處理和輸出。 3.2 基于IP核的像素窗口生成模塊 濾波器首先需要先生成5×5窗口,也就是將一幀畫(huà)面中5×5窗口內(nèi)的25個(gè)數(shù)據(jù)對(duì)齊。本文利用Altera FPGA中自帶的IP核Shift Regester可快速實(shí)現(xiàn)。對(duì)360×134像素的圖像,需要先緩存前5行的像素[18]。通過(guò)IP核設(shè)置界面選擇RAM的位寬為8,抽頭距離TAP_DISTANCE為256,抽頭數(shù)目NUMBER_OF_TAPS為5。圖6為該IP核的工作原理,假設(shè)輸入9個(gè)8位的數(shù)據(jù)流,這與圖像傳輸?shù)臄?shù)據(jù)方式一樣,通過(guò)控制抽頭數(shù)目和抽頭距離可將其變?yōu)橐粋€(gè)3行3列的數(shù)據(jù)窗口。 在設(shè)置好IP核之后,生成5行同步的數(shù)據(jù),另外還需選取5列數(shù)據(jù),才能生成窗口。具體做法為:將這5行數(shù)據(jù)的第1列分別放入寄存器中,待下一個(gè)時(shí)鐘周期,再將第二列放入新的寄存器中,第一列則用打拍同步的方式使兩列數(shù)據(jù)對(duì)齊,重復(fù)這種操作,在第五個(gè)時(shí)鐘沿就有5行5列數(shù)據(jù)同步。 3.3 排序模塊設(shè)計(jì) 5×5窗口內(nèi)的數(shù)據(jù)對(duì)齊后,再將其同時(shí)分別放人兩個(gè)排序模塊中,其一是對(duì)3×3窗口9個(gè)數(shù)據(jù)進(jìn)行排序,其二是對(duì)5×5窗口外圍16個(gè)像素及中心值共17個(gè)數(shù)據(jù)進(jìn)行排序。圖7表示取5×5窗口中的3×3窗進(jìn)行排序,圖8表示對(duì)外圍數(shù)據(jù)和中值的排序。 對(duì)3×3窗口的排序采用快速求中值的方法,直接輸出9個(gè)數(shù)中的最大值、最小值和中間值[18]。圖9為該方法的原理圖,設(shè)3×3窗口內(nèi)的各個(gè)像素分別為P11、P12、P13、P21、P22、P23、P31、P32、P33。在第一個(gè)時(shí)鐘周期內(nèi),將窗口內(nèi)的每一行的數(shù)分別放入3個(gè)三輸入排序模塊中,可求出每一行的最大值Pmax1、Pmax2、Pmax3,最小值Pmin1、Pmin2、Pmin3和中間值Pmed1、Pmed2、Pmed3;在第二個(gè)周期內(nèi)將這些最大值組,中間值組和最小值組分別放入3個(gè)三輸入排序模塊,求得整個(gè)窗口的最大值,最小值;在第三個(gè)周期內(nèi),將最大值組的最小值Pmin_of_max、最小值組的最大值Pmax_of_min以及中值組的中間值Pmed_of_med放入三輸入比較器中確定整個(gè)窗口的中間值Pmed_of_9。 為實(shí)現(xiàn)對(duì)5×5窗口中外圍數(shù)據(jù)的快速排序,采用17值并行全比較排序方法,該方法需要的比較器數(shù)目為256個(gè),只需要4個(gè)時(shí)鐘周期可完成比較輸出[19]。該模塊分為四部分,首先將所有元素兩兩比較,若比較數(shù)比被比較數(shù)大,則為真,輸出1,否則輸出0,這樣每個(gè)數(shù)據(jù)累計(jì)獲得1的次數(shù)最多為16,最少為1;通過(guò)比較次數(shù)的大小就可判斷出數(shù)據(jù)大小[20]。特別的,若出現(xiàn)數(shù)據(jù)相同的情況,這時(shí)可根據(jù)數(shù)據(jù)出現(xiàn)的先后順序來(lái)選擇比較器,設(shè)兩個(gè)相等的數(shù)分別為Pm和Pn,Pm為比較數(shù),m和n分別為數(shù)據(jù)的原始排序位置。若m>n,這時(shí)的比較器采用“≥”號(hào),相當(dāng)于給比較數(shù)的次數(shù)加1,而若m 3.4 噪聲判斷和像素輸出模塊設(shè)計(jì) 在3.3節(jié)排序模塊進(jìn)行的同時(shí),需要對(duì)該窗口內(nèi)像素?cái)?shù)據(jù)進(jìn)行噪聲判斷,并求出非噪聲像素?cái)?shù)組的中值。在噪聲判斷模塊中,設(shè)灰度值0為閾值1,灰度值255為閾值20該模塊從數(shù)據(jù)輸入到統(tǒng)計(jì)出有效像素個(gè)數(shù)需要兩個(gè)周期,圖10所示為3×3窗口中該模塊噪聲判斷及非噪聲像素個(gè)數(shù)統(tǒng)計(jì)部分的結(jié)構(gòu)圖,5×5窗口中外圍像素的噪聲判斷和統(tǒng)計(jì)原理同理。 圖11 所示為3×3窗口非噪聲像素?cái)?shù)組的中值輸出模塊的原理圖,若非噪聲數(shù)目為奇數(shù),則輸出該數(shù)組的中值;若數(shù)目為偶數(shù),則輸出中間兩值的均值。該模塊應(yīng)在噪聲判斷和統(tǒng)計(jì)模塊后加入,需要先將非噪聲像素放入寄存器中組成新的數(shù)組,由于不同元素?cái)?shù)目會(huì)導(dǎo)致數(shù)組的中值位置不同,這里利用替代的方法。若判斷某一灰度值為0或255即噪聲信號(hào),則將該值替換為255。再將替換后的數(shù)組放入新構(gòu)造的9值并行全比較排序模塊,這樣有效像素經(jīng)過(guò)由小到大的排序會(huì)在數(shù)列的前列,噪聲會(huì)被放在最后,這時(shí)只要根據(jù)有效像素的數(shù)目,即可確定取數(shù)組的哪一個(gè)元素,或哪兩個(gè)元素的均值。如計(jì)算得到有效像素?cái)?shù)目為5,則經(jīng)過(guò)排序的9值數(shù)組前5個(gè)值是有效的,后面的都是255,取第3個(gè)元素輸出即可。5×5窗口中外圍非噪聲數(shù)組采用同樣的求中值方法。 噪聲判斷和像素輸出模塊耗費(fèi)時(shí)鐘周期為5,但由于加入3個(gè)并行全比較模塊,需要大量比較器資源,故邏輯資源消耗較多。 3.5 數(shù)據(jù)判斷及輸出模塊設(shè)計(jì) 完成3.3和3.4節(jié)模塊的運(yùn)算后,需要將運(yùn)算結(jié)果對(duì)齊處理,然后交由數(shù)據(jù)判斷及輸出模塊,圖12為數(shù)據(jù)判斷及輸出模塊結(jié)構(gòu)圖。 設(shè)Pmed3和Pmedian分別為3×3和5×5窗口非噪聲像素的中值。整個(gè)判斷的流程為:若有效像素mux9≥1,說(shuō)明小窗口有非噪聲點(diǎn),在3×3窗口內(nèi)進(jìn)一步判斷,若Y1為真,則直接輸出Pxy,若Y1為假且Y2為真,則輸出Pmed,否則輸出均值Pmed3;若mux9=0并且mux16≥1,說(shuō)明3×3窗口內(nèi)全是噪聲,換至5×5窗口判斷,若Y3為真,則輸出Pmed5,否則輸出Pmedian最后,若Mux9和mux16都為0,則直接輸出Pxy四鄰域的灰度均值Pavrg。經(jīng)過(guò)判斷模塊的輸出值即為優(yōu)化后的自適應(yīng)中值濾波器的輸出結(jié)果。 3.6 FPGA資源使用情況分析 以上模塊實(shí)現(xiàn)的濾波器,基于EP4CElOF17C8N采用Modelsim工具進(jìn)行RTL和門(mén)級(jí)仿真驗(yàn)證成功后,對(duì)硬件代碼進(jìn)行綜合生成硬件燒寫(xiě)文件。 FPGA硬件資源消耗情況如表2所示,可看到該模塊的邏輯資源占用為3565個(gè),占總資源的35%,需要的RAM資源為25536比特,占總RAM的9%,內(nèi)部乘法器資源未使用。濾波器算法主要對(duì)數(shù)據(jù)進(jìn)行移位處理和大小比較,所以邏輯單元資源使用較多,未使用到乘法器。 4 實(shí)驗(yàn)測(cè)試 EP4CE10F17C8N芯片運(yùn)行優(yōu)化后的中值濾波器程序,對(duì)圖2(b)中的8位噪聲圖像數(shù)據(jù)進(jìn)行處理,運(yùn)行結(jié)果傳送至計(jì)算機(jī)中運(yùn)算PSNR和NMSE參數(shù)。采用計(jì)算機(jī)的仿真結(jié)果和FPGA運(yùn)行的結(jié)果對(duì)比如圖13和圖14所示,圖中文[4]方法、文[5]方法和軟件實(shí)現(xiàn)方法都是采用計(jì)算機(jī)仿真運(yùn)行相應(yīng)的算法,硬件實(shí)現(xiàn)方法是采用FPGA實(shí)現(xiàn),其原理與軟件實(shí)現(xiàn)方法一致。在不同的噪聲密度下,軟件實(shí)現(xiàn)方法的結(jié)果均優(yōu)于FPGA運(yùn)行的結(jié)果,但趨勢(shì)基本一致。這是因?yàn)橛?jì)算機(jī)采用的是64位浮點(diǎn),而FPGA處理器采用的是8位定點(diǎn),運(yùn)算過(guò)程中數(shù)據(jù)截取導(dǎo)致誤差,因此計(jì)算機(jī)運(yùn)行效果要比FPGA好。 由圖13對(duì)比可見(jiàn),F(xiàn)PGA運(yùn)行結(jié)果的PSNR平均值比仿真實(shí)現(xiàn)小2.35dB,80%噪聲密度以下,稍好于文[5]結(jié)果,比文[4]的效果略差,但在噪聲密度大于80%后,F(xiàn)PGA運(yùn)行結(jié)果的PSNR值僅比軟件實(shí)現(xiàn)方法的平均PSNR值低0.96dB,優(yōu)于文[4]的仿真結(jié)果,比文[5]的結(jié)果略差。此外,椒鹽噪聲 圖14 不同方法的NMSE參數(shù)對(duì)比密度為70%時(shí),在24MHz時(shí)鐘下FPGA運(yùn)行濾波器算法耗時(shí)約2.56ms,遠(yuǎn)低于仿真耗時(shí)3.72s,表明FPGA的流水線并行處理結(jié)構(gòu)處理圖像具有獨(dú)特的優(yōu)勢(shì)。圖14中4種情況得到的NMSE參數(shù)相差很小,80%噪聲密度以下最大相差不到0.O1dB,F(xiàn)PGA硬件和文[5]仿真基本相當(dāng),比其他兩種情況略差。 5 結(jié)論 對(duì)自適應(yīng)中值濾波器進(jìn)行了優(yōu)化,通過(guò)加入噪聲像素判斷步驟,減少對(duì)像素的重復(fù)排序,提高濾波效率和效果,利用FPGA流水線并行處理結(jié)構(gòu)力大大提高了濾波器執(zhí)行的速度。仿真結(jié)果表明,優(yōu)化后的中值濾波器綜合了文[4]和文[5]的優(yōu)勢(shì),與此相比,能夠保持圖像的細(xì)節(jié),迭代運(yùn)算效率更高,去椒鹽噪聲的效果更好。實(shí)驗(yàn)測(cè)試采用FPGA將濾波器執(zhí)行的時(shí)間由秒級(jí)降低到毫秒級(jí),為鐵軌健康狀態(tài)的圖像實(shí)時(shí)處理應(yīng)用提供了基礎(chǔ)。后續(xù)研究將會(huì)提高FPGA的數(shù)據(jù)寬度,降低運(yùn)算結(jié)果誤差,以進(jìn)一步提高濾波效果。 參考文獻(xiàn): [1]DRAPER B A,BEVERIDGE J R,et al.Implementingimage Ap-plications on FPGAs[C]//16th International Conference on Pat-tern Recognition(ICPR 2002),2002(3):265. [2]LI ZY,LIU GH,XU Y,et al.Modified Directional Weighted Fil-ter for Removal of Salt&Pepper Noise[J].Patten RecognitionLetters,2014,40:113. [3]陳明軒.數(shù)字圖像中隨機(jī)值脈沖噪聲的濾除算法研究[D].北京:北京信息科技大學(xué),2013:4. [4]胡瑢華,余傳桂,胡環(huán)星,等.用于磁瓦圖像的改進(jìn)的自適應(yīng)中值濾波算法[J].機(jī)械設(shè)計(jì)與制造,2015(2):119. [5]黃文筆,戰(zhàn)蔭偉,陳家益,等.改進(jìn)的自適應(yīng)中值濾波算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(10):187. [6]劉鵬宇,哈睿,賈克斌.改進(jìn)的自適應(yīng)中值濾波算法及其應(yīng)用[J].北京工業(yè)大學(xué)學(xué)報(bào),2017(4):581. [7]TANG J,WANG Y,CAO W,et al.Improved Adaptive MedianFiltering for Structured Light Image Denoising[C]//2019 7th In-ternational Conference on Information,Communication and Net-works(ICICN),Macao,Macao,2019:146. [8]張旭明,徐濱士,董世運(yùn).用于圖像處理的自適應(yīng)中值濾波[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2005,17(2):295. [9]錢(qián)偉新,劉瑞根,王婉麗.一種改進(jìn)的自適應(yīng)中值濾波算法[J].光學(xué)與光電技術(shù),2011(4):55. [10]韓劍輝,葛威.改進(jìn)型位級(jí)中值濾波硬件算法的實(shí)現(xiàn)[J].哈爾濱理工大學(xué)學(xué)報(bào),2015,20(3):35. [11]石婷,張紅雨,黃自立.基于Stratix Ⅱ EP2S60的改進(jìn)中值濾波器的設(shè)計(jì)及實(shí)現(xiàn)[J].國(guó)外電子元器件,2007(1):12. [12]師廷偉,金長(zhǎng)江.基于FPGA的并行全比較排序算法[J].數(shù)字技術(shù)與應(yīng)用,2013(10):126. [13]海敏娟.基于時(shí)間序列分析算法的船舶磁場(chǎng)估計(jì)[J].艦船科學(xué)技術(shù),2021,43(8):124. [14]萬(wàn)豐豐,周?chē)?guó)民,周曉.一種去除椒鹽噪聲的自適應(yīng)模糊中值濾波算法[J].浙江大學(xué)學(xué)報(bào)(理學(xué)版),2019,46(4):445. [15]屈正庚,牛少清.一種改進(jìn)的自適應(yīng)加權(quán)中值濾波算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2018,28(12):86. [16]王志軍,于之靖,諸葛晶昌.一種自適應(yīng)中值梯度倒數(shù)加權(quán)的圖像濾波算法[J].激光與光電子學(xué)進(jìn)展,2017,54(12):148. [17]袁素真,毛峽,陳立江,等.基于雙量子比特態(tài)測(cè)量的量子自適應(yīng)中值濾波[J].北京航空航天大學(xué)學(xué)報(bào),2013,39(11):1443. [18]陳健,鄭紹華,余輪,等.基于方向的多閾值自適應(yīng)中值濾波改進(jìn)算法[J].電子測(cè)量與儀器學(xué)報(bào),2013,27(2):156. [19]孫海英,李鋒,商慧亮.改進(jìn)的變分自適應(yīng)中值濾波算法[J].電子與信息學(xué)報(bào),2011,33(7):1743. [20]燕紅文,鄧雪峰,中值濾波在數(shù)字圖像去噪中的應(yīng)用[J].計(jì)算機(jī)時(shí)代,2020(2):47. (編輯:溫澤宇) 收稿日期:2020-07-01 基金項(xiàng)目:國(guó)家自然科學(xué)基金(61775044);中央高?;究蒲袑?zhuān)項(xiàng)資金項(xiàng)目(3072019CF2515). 作者簡(jiǎn)介:王麗紅(1964-),女,學(xué)士,高級(jí)工程師;胡長(zhǎng)宏(1973-),男,博士,副教授. 通信作者:孫晶華(1963-),男,博士,教授,碩士研究生導(dǎo)師,E-mail:sjh1111@sina.com.