黃成強,金 星
(遵義師范學院 物理與電子科學學院,貴州 遵義 563006)
隨著圖像處理的應用滲透到各個領域,對輸入圖像的質量要求越來越苛刻。圖像去霧[1]中輸入圖像的噪聲將會降低去霧效果,語義分割[2]中圖像的噪聲會造成分割邊界失真,車牌識別[3]和人臉識別[4]中噪聲的存在會降低識別精度。然而,圖像在傳感器采集、存儲和傳輸過程中不可避免地受到椒鹽噪聲的污染,目前實現高性能椒鹽去噪仍具挑戰性。業界早期主要基于對像素灰階的判斷和分析實現去噪,研究了中值濾波[5]、改善的中值濾波[6]、概率濾波[7]、權重濾波[8]和重復濾波[9]等方法,這些研究推動了椒鹽去噪方法的發展。但是,由于在噪點標記步驟并未精確區分噪聲像素和正常像素、在噪聲去除步驟沒有探索到高性能去噪機制等多方面的原因,這些方法尚未達到理想的去噪效果。近年來,隨著計算機性能的大幅提升,尤其是圖形處理器(GPU)在數據處理速度和吞吐量方面的突破性進展,以及互聯網給圖像大數據的獲取提供的便利,基于圖像大數據和人工神經網絡的椒鹽去噪方法成為研究的熱點。最初,人工神經網絡的研究是為了實現圖像分類和識別,諸如LeNet5[10]、AlexNet[11]、Vgg-Net[12]、GoogLeNet[13]和ResNet[14]等網絡在分類精度方面不斷取得進步。由于圖像處理的目的是對輸入圖像進行增強或復原,需要輸出一張圖像,而非如上述網絡輸出一個分類結果,因此,不能將這些網絡直接套用于圖像去噪。2016 年,文獻[15]提出將卷積神經網絡(CNN)應用到高斯噪聲去除中,通過在正常圖像中添加隨機密度的噪聲并成對地提取由正常圖像塊和噪聲圖像塊構成的數據對,構建機器訓練需要的大數據。接著,通過搭建深度卷積神經網絡對人工構造的數據集進行機器訓練,得到了超越傳統方法的去噪效果。雖然該文獻處理的對象是高斯噪聲,但是這是一項將人工神經網絡與圖像去噪相結合的突破性工作,為卷積神經網絡應用到椒鹽去噪提供了可借鑒的方法和思路。在該項工作的基礎上,文獻[16]提出了實現椒鹽噪聲去除的深度卷積神經網絡,采用17 個卷積層,配合對應的激活函數和批量標準化,采用對比輸出圖像與干凈圖像之間的差異性構造損失函數,得到了超越傳統方法的椒鹽去噪效果。該方法借鑒了文獻[15]中構建數據集和搭建網絡的思路,實現了基于CNN 的端到端椒鹽噪聲去除。文獻[17]將中值濾波層嵌入到卷積神經網絡層。它包含39 個各類層,總體上前半部分網絡旨在通過多次重復的中值濾波消除椒鹽噪聲,后半部分網絡旨在通過殘差層的學習恢復圖像細節。
上述基于卷積神經網絡的深度學習幾乎都通過網絡權重參數對圖像中所有像素單元進行加權求和操作。實質上,對于輸入的噪聲圖像來說,不是所有像素單元都被噪聲污染。因此,更加合理的處理方法應該是只針對噪聲點進行處理,對正常點直接輸出。為了改進卷積神經網絡椒鹽去噪方法的這一缺陷,首先需要對輸入圖像進行噪點標記。業界在噪點標定方面已開展了一定的研究。極點標定法[8]將圖像中極值像素點標記為噪聲點,對于8-bit 的數字圖像,極值點就是灰階為0 或255 的像素點。該方法的普適性弱,如果原圖像自帶很多的正常極值點,它們都將被誤判為噪點。為了解決這個問題,業界提出了極值圖像塊標記[7],該方法通過比較以掃描點為中心的窗口中正常點和極值點的數量判斷掃描點是否為噪點,該方法對于高密度噪聲來說還存在較多誤判。最后,業界提出了均值標定法[9],該方法通過窗口中像素的平均灰階進行噪點判斷,但是對于原圖像中本身就存在較多極值點的情況,該方法將失效。
本文訓練了一個卷積神經網絡,用其生成的噪聲掩模可以精準標記正常點和噪聲點。接著,在更新像素單元的過程中直接輸出標記為正常點的像素。對于被標記為噪聲的像素,本文的處理方法是搜索最近鄰的正常像素代替。本文的創新點主要包括:(1)提出了一種精簡而高效的輕量級卷積神經網絡,相比于傳統網絡,網絡深度降低1/2。此外,在網絡的中間層采用深度可分離卷積代替常規卷積,大幅降低了運算復雜度。(2)提出了一種選擇性去噪方法,對標記為正常點的像素單元不做處理,應用相鄰像素灰階較為接近的性質,搜索與噪點空間距離最近的正常點用以更新噪點。該方法充分結合了卷積神經網絡的智能識別優勢和圖像中相鄰像素灰階較為接近的性質,實現了高性能椒鹽去噪。
2.1.1 極點標定[8]
極點標定將輸入噪聲圖像中灰階為0 或255的點標記為噪點,其他點為正常點。該方法如式(1)所示:
其中:Mij為噪點標記輸出,即噪聲掩模,它是一個二值圖像,噪聲點標記為0,正常點為1。imgij表示輸入圖像中第i行、第j列的像素灰階,該圖像共計H行W列,因而i的取值是1~H之間的整數,j的取值是1~W之間的整數。
2.1.2 極值圖像塊標定[7]
極值圖像塊標定生成噪聲掩模的原理是掃描圖像中灰階為0 或255 的像素,取以其為中心的k×k窗口,統計其中灰階為0 以及灰階為255 的像素數量,根據這些數量的大小關系輸出標記值。
如果掃描到的像素灰階為0,則統計滑動窗口中灰階為0 的像素個數N0,窗口中灰階為非0 的像素數量如式(2)所示:
其中k2為窗口總的像素數量。
如果掃描到的像素灰階為255,計算灰階為255和非255的像素數量方法與計算灰階為0 與非0 的像素數量方法類似:
極值圖像塊標記法如式(3)所示。掃描圖像中各個像素單元,當灰階為0 時,如果滑動窗口中灰階為0 的像素點很少,則判定為噪點。當灰階為255 時,如果滑動窗口中灰階為255 的像素點很少,則判定為噪點。其他情況下將掃描點判斷為正常點。
2.1.3 均值標定[9]
均值標定法通過滑動窗口中的平均灰階的大小生成噪聲掩模。首先計算滑動窗口中像素的平均灰階av。如式(4)所示:
當灰階為0 時,如果滑動窗口中像素的平均灰階相對較大則判定為噪點。當灰階為255 時,如果滑動窗口中像素的平均灰階相對較小則判定為噪點。其他情況下將掃描點判斷為正常點。
適用于圖像分類的卷積神經網絡一般在通過多個卷積充分地提取了圖像特征之后,將通過全連接層、softmax 層給出分類結果,其采用的損失函數一般為交叉熵損失函數。不同于分類網絡,圖1 是一個典型的椒鹽去噪卷積神經網絡,在輸入端通過1 個卷積層和激活函數初步提取圖像特征,最后通過1 個卷積層恢復去噪圖像。在首尾之間是10 多個重復的卷積、批量標準化和激活層。相比于圖像分類網絡,適用于椒鹽去噪的卷積神經網絡有下列特征:

圖1 用于椒鹽去噪的卷積神經網絡Fig.1 CNN for salt-and-pepper denoising
(1)網絡輸出是一幅圖像。由于目的是實現椒鹽噪聲去除,網絡的輸出端是一幅圖像而非分類結果。
(2)無需使用池化層。在使用卷積神經網絡處理輸入圖像的過程中不再需要使用池化層來縮放圖像,從始至終圖像的分辨率不改變,以保證輸出圖像和輸入圖像分辨率相同。
(3)損失函數變化。在圖像分類中多采用交叉熵損失函數,但是該損失函數不再適用于椒鹽去噪網絡。為了正確地指導權重參數的優化,去噪網絡中多采用輸出的去噪結果圖像和原始干凈圖像之間的均方差(mse)作為損失函數:
其中:W和H分別為圖像的橫向和縱向分辨率,img 為原始干凈圖像,img'為卷積神經網絡輸出的去噪圖像。mse 高效地描述了處理所得圖像與原始干凈圖像的差異,將有效指導網絡權重的優化。
3.1.1 圖像塊截取
截取圖像塊的方法如圖2 所示。在一張干凈圖像中以20 的步長從圖像的左上角開始截取分辨率為70×70的圖像塊。對于分辨率為200×200的圖像,橫向和縱向上各截取5 次,從左到右、從上到下掃描,得到25 個70×70 的圖像塊。為了能夠完整表征圖像特征,圖像塊的分辨率不宜太小;為了避免訓練參數量過大,圖像塊的分辨率不宜太大。因此,本文選用70×70 的圖像塊分辨率。

圖2 圖像塊截取方法示意圖Fig.2 Schematic diagram of image block interception method
3.1.2 生成噪聲圖像-噪聲掩模的數據對
為了訓練出噪聲掩模,需要給卷積神經網絡輸入噪聲圖像。網絡的輸出將與原噪聲掩模進行對比,生成損失函數,通過損失函數的迭代優化訓練不斷改善輸出。因此,訓練網絡的噪聲圖像-噪聲掩模對數據至關重要。本文在上述生成的70×70 圖像塊基礎上,添加隨機密度的椒鹽噪聲,生成噪聲圖像。與此同時,將每次添加噪聲的位置標記為1,而將圖像中未添加噪聲的像素標記為0,從而生成噪聲掩模。值得注意的是,噪聲圖像和噪聲掩模一一對應,構成“噪聲圖像-噪聲掩模”對。此外,為了增強數據集的魯棒性,給每個圖像塊添加噪聲的密度是隨機確定的,噪聲密度取值是0.1~0.9 之間的隨機數。圖3 是幾個圖像塊對應的噪聲圖像-噪聲掩模對,從中可以看出噪聲圖像是在圖像塊的基礎上添加噪聲所得,噪聲掩模將添加噪聲的位置標記為白點,正常像素標記為黑點。

圖3 噪聲圖像-噪聲掩模對Fig.3 “Noise image”-“noise mask” pairs
3.1.3 構建噪聲圖像-噪聲掩模對數據集
在上述圖像塊截取和生成噪聲掩模的基礎上,噪聲圖像-噪聲掩模對數據集的構建方法如圖4 所示。本文選用91images 數據集作為原數據,將彩色圖像轉換為黑白并調整分辨率。以20的步長從每張圖像中截取出25 個圖像塊,對這些圖像塊添加隨機密度的椒鹽噪聲得到噪聲圖像塊。與此同時,將添加噪聲的位置標記為1,其他位置為0,生成與噪聲圖像所對應的真實噪聲掩模。最后,將噪聲圖像塊和噪聲掩模塊組合在一起構成一一對應的噪聲圖像-噪聲掩模對。

圖4 噪聲圖像-噪聲掩模對數據集的構建方法Fig.4 Construction method for noise “noise image”-“noise mask” pairs dataset
3.2.1 模型結構
圖5 為本文采用的卷積神經網絡模型。本文將噪聲圖像-噪聲掩模對數據集作為訓練數據,將網絡輸出圖像與理想噪聲掩模之間的mse 作為損失函數。網絡模型包括9 個卷積層,其中第一個卷積包含卷積和激活操作,對輸入的噪聲圖像生成64個卷積張量。最后一個卷積層對輸入的64個張量生成1 張噪聲掩模。首尾之間是7 個重復的深度可分離卷積,如圖6 所示。MobileNet-v1[18]已經證實深度可分離卷積的復雜度比常規卷積降低了8~9 倍。如圖6 所示,先采用3×3 的卷積核處理64 個輸入通道,隨后執行批量標準化和ReLU 激活。依次采用1×1 的卷積核處理所有通道,得到64 個處理后的通道,這步稱為點卷積。最后,經過批量標準化和激活之后輸出64 個通道。該網絡模型的創新之處在于:(1)相比于傳統網絡模型,網絡深度降低1 倍;(2)在中間層采用深度可分離卷積代替常規卷積,大幅降低了運算復雜度。該方法采用更小的網絡深度和更加簡單的卷積結構,達到了很好的噪聲掩模復原效果。

圖5 輕量級卷積神經網絡Fig.5 Lightweight CNN

圖6 深度可分類卷積Fig.6 Depth separable convolution
3.2.2 各層功能
對于輸入噪聲圖像,通過圖5 所示的網絡預測其噪聲掩模,圖7 為各個卷積層的功能說明。首先,首端常規卷積神經網絡將提取出輸入噪聲圖像的輪廓信息。接著,通過7 個深度可分離卷積全面地提取噪點信息。從圖7 可以看出,從第1 到第7 個深度可分離卷積層,隨著深度的增加,圖像細節逐漸被忽略,噪點信息逐漸被凸顯。從第1 到第3 個深度可分離卷積的輸出中可以看到諸如馬匹等圖像細節,第4 到第7 個網絡的輸出中圖像細節已被黑點代替,圖中零星可見的白點為噪點。值得注意的是,7 層深度可分離卷積神經網絡的輸出實際上有64 張圖,圖中所展示的僅為64 個中的1 張圖。最后將第7 層的64 張圖通過1 個常規卷積層合并到尾端常規卷積層的輸出,得到噪聲掩模。

圖7 各個卷積層的功能Fig.7 Function of each convolution layer
首端常規卷積輸出的64 個張量將輸入深度可分離卷積進行抽象特征的提取,深度可分離卷積內部各層的功能如圖8 所示。首先,通過深度方向的卷積處理64 個張量,得到深度方向卷積輸出。接著,通過批量標準化對輸出所得數據進行微調,使得這些數據仍然服從正態分布。由于調整的數據數值變化幅度較小,批量標準化步驟的輸出圖像幾乎與輸入一致。批量標準化能夠解決訓練過程中的梯度消散問題,讓數據的分布一致,使得模型的訓練更加穩定。批量標準化的下一步是激活,通過ReLU 函數來抑制均值以下的圖像細節,激活函數輸出如圖8 所示。激活函數的主要作用是加入非線性因素,以解決線性模型表達能力不足的缺陷。隨后,通過點卷積繼續處理64 個張量,再依次通過批量標準化和激活函數處理。

圖8 深度可分離卷積內部各層的功能Fig.8 Function of each layer in depth separable convolution
數字圖像多采用互補金屬-氧化物-半導體(CMOS)圖像傳感器[19]獲取,它是一種典型的固態傳感器,其結構如圖9 所示,由光敏像素陣列、行驅動器、列驅動器、時序控制邏輯、模擬到數字(AD)轉換器、數據總線輸出接口和控制接口等幾部分組成,各個組成部分通常都被集成在同一塊硅片上。每個像素單元通過光敏二極管采集信號,光敏二極管隨入射光的強弱產生對應強度的電信號,通過行控制線和列控制線的配合采集各個像素單元的電信號,最后通過AD 轉換器輸出數字信號,將數字圖像存儲。由于相鄰像素接收的曝光量十分接近,而且圖像分辨率越大,單個像素所表征的顆粒尺寸就越小,相鄰像素感知到的光強越接近,使得AD 轉換器輸出的對應數值十分接近。因此,像素之間的空間距離越近,灰階就越相近。

圖9 CMOS 圖像傳感器結構圖Fig.9 Structure chart of CMOS image sensor
式(6)是基于最近鄰搜索機制的去噪方法:
其中:img 為輸入圖像,img'為輸出圖像,M為已訓練的噪聲掩模,L表示搜索到的最近鄰正常像素的點集,L(R,k)表示搜索半徑為R的圈層中第k個正常像素的灰階。掃描圖像中各個像素單元,其中i和j分別表示掃描點的行號和列號,其取值范圍分別是[1,H]和[1,W],H和W分別是輸入圖像的縱向分辨率和橫向分辨率。對于噪聲掩模中標記的正常像素,直接輸出灰階;對于噪聲掩模中標記的噪聲像素,取搜索到的最近鄰正常點的平均灰階代替掃描點的灰階。
圖10 為實現最近鄰搜索機制的示意圖,其中藍點表示正常像素,紅點代表噪聲像素。噪點標記的精確度對最近鄰搜索機制的正常實現有著非常關鍵的影響。最近鄰搜索機制就是搜索與噪聲像素距離最近的正常點,生成代替噪聲點的新灰階。如圖10(a)所示,與噪聲像素a0最相鄰的正常像素是b1=20、b2=19、b3=20 和b8=21,因此采用這4 個灰階的平均值20 作為a0的新灰階。由于在最內層窗口中就能夠搜索到正常像素,此時的搜索半徑R=1。對于無法在最內層窗口中搜索到正常像素的情況,將放大窗口尺寸,直到搜索到至少存在1 個正常像素的外圍層。如圖10(b)所示,當搜索半徑為2 時,第2 層上的正常像素c2=104、c6=105、c7=103、c11=103 和c12=105 的平均值104 將作為噪點a0的新灰階。如果還未搜索到正常點,搜索半徑將進一步增大。如圖10(c)所示,當搜索半徑為3 時,第3 層上的正常像素d3=212、d9=201、d10=201、d16=206 和d17=215 的平均值將作為噪點a0的新灰階,以此類推。

圖10 最近鄰搜索機制示例Fig.10 Example of the nearest searching mechanism
該方法的優點如下:(1)使用最近鄰正常像素的平均灰階更新噪點,提升魯棒性。與噪點空間距離相等的像素往往不止1 個,例如搜索半徑為1 時,最多可以存在8 個正常點;搜索半徑為2時,最多可以存在16 個正常點。采用多個最近鄰的正常像素的平均灰階更新噪點,可以達到綜合考慮噪點周邊各個方向的效果,從而提高魯棒性。(2)通過半徑自適應擴展搜索最近鄰的正常像素。在最近鄰搜索機制中,優先搜索與噪點距離最近的正常像素單元,搜索半徑R的初始值為1。在最近層未搜索到正常點的情況下才會擴展搜索半徑,直到尋找到至少1 個正常像素。
本文在Tensorflow 平臺調用keras 組件搭建如圖5 所示的輕量級卷積神經網絡。該訓練采用mse 作為損失函數。在訓練開始前,設置初始學習率為0.001,如果訓練過程中損失值在20 個周期內沒有降低,學習率將以0.2 的因子衰減,學習率下限為0.000 000 01。調用RTX3080 型GPU訓練50 個周期,批量為8,訓練耗時107 min。訓練曲線如圖11 所示,可以看出損失值和準確率均快速收斂。

圖11 訓練曲線。(a)損失值曲線;(b)準確率曲線。Fig.11 Training curves. (a) Loss curve;(b) Accuracy curve.
圖12 為不同方法生成的噪聲掩模圖像。實驗選擇具有代表性的3 張圖像,其中kodim18 中有大量偏黑的像素和少量高亮像素,kodim20 中的圖像細節中存在大量的高亮像素以及少量偏黑像素,而kodim24 中存在少量高亮像素和大量灰階居中的像素。為了檢測不同噪聲密度下的掩模質量,分別給kodim20、kodim24 和kodim18添加低、中和高密度的椒鹽噪聲。在圖12 的噪聲掩模圖像中,噪點用黑點標記,正常點用白點標記。值得注意的是,原噪聲圖像中噪點均勻分布,不受圖像自有像素的影響。圖12 所示的噪聲掩模圖像中黑點分布越均勻,就越符合客觀事實,噪聲掩模的質量就越高。從圖12 可以看出,極點標定法由于將極值像素點標記為噪點,當圖像中本身存在較多極值點時容易造成誤判,如圖12(b3)和圖12(c3)所示,大量的天空像素被標記為噪點,噪聲掩模圖像嚴重受到原圖像中的極值像素的影響而產生大面積誤判。此外,均值標定法根據窗口中像素的平均灰階與極值的差異判斷噪點,當圖像某些區域中極值像素的分布較為集中時,該方法容易失效。因此,圖12(b5)和圖12(c5)中存在大量的誤判點。極值圖像塊標定法通過對比窗口中極值像素和正常像素的數量判斷噪點,相比于上面兩種方法,它更好地運用了噪點分布的特征,生成的掩模幾乎不再受到原圖像中極值像素的影響,達到了相對理想的效果,如圖12(b4)和圖12(c4)所示。相比于這些傳統方法,本文提出的CNN 標定方法通過機器學習掌握噪點分布的特征,是一種智能噪聲掩模生成方法。如圖12(a6)、圖12(b6)和圖12(c6)所示,噪聲掩模圖像幾乎不再受到原圖像中極值像素的影響,尤其是圖12(a6)呈現了完美的均勻噪點分布,與理想噪點分布已經十分接近,更加說明了該方法具有較強的魯棒性。此外,圖12(c2)中的屋檐線條不再出現在圖12(c6)中,說明該方法不再受到圖像邊緣的影響而產生誤判。
從主觀視覺效果上,已經看出CNN 噪聲掩模質量更高。如式(7)所示,本文采用誤判率MR客觀評估各種方法生成噪聲掩模的質量:
其中:MR 為誤判率,N1為原圖中實際存在的噪點數量,N2是通過標定算法標定出的噪點數量。誤判率越低,說明噪點標定的精確度越高。
本文對kodim 圖像添加各種級別的噪聲,噪聲密度從0.1~0.9。對比數據如表1 所示。與上述分析一致,極點標記法由于容易將極值點標記為噪點,誤判率較高。均值標定方法容易在大片極值點的圖像區域失效,因此誤判率較高。相比于前兩者,極值圖像塊標記根據窗口中極值點和正常點數量的關系標記噪點,更好地把握了噪點分布的特征,因此誤判率得到改善。本文提出的深度CNN 標記方法通過機器學習全面提取噪點分布的特征,達到了最佳噪聲掩模質量。表1 顯示,本文方法生成噪聲掩模的誤判率分別比極點標記、均值標記和極值圖像塊標記降低了94.79%、94.79%和83.65%。
通過峰值信噪比(PSNR)評估椒鹽去噪的性能。在每次實驗中,不同密度的椒鹽噪聲隨機地添加到原始圖像中,sij表示去噪后的圖像,xij表示原始圖像:
此外,采用信息損失度(MSE)評估椒鹽去噪算法的信息損失:
其中:xij為原圖像,sij為濾波后的圖像,W、H為分辨率。MSE 越小越好。
為了驗證最近鄰搜索機制對去噪性能的改善,進行了如下消融實驗。在噪點標記步驟一律采用CNN 標記,在噪點去除步驟分別采用中值濾波、三權重因子、自適應概率濾波、改善的中值濾波、均值標定重復濾波和最近鄰搜索方法,對比PSNR和MSE。分別對kodim20、kodim24 和kodim18 添加低、中和高密度椒鹽噪聲,同樣采用CNN 標記,不同去噪方法進行處理的結果如表2 所示。值得注意的是,為了單純驗證去噪方法的性能,表中所有方法都預先采用上述CNN 方法進行噪點標記。例如,在執行中值濾波前先采用CNN 方法對噪點進行標記,對于標記為正常的像素不做處理,對于標記為噪點的像素通過中值濾波去噪。從表2 可以看出,最近鄰搜索方法的PSNR 最大且MSE 最小,說明其去噪效果優于其他方法。

表2 相同噪點標記下的去噪性能對比Tab.2 Comparison of denoising performance with the same noise marking
最近鄰搜索的機理是搜索與噪點在空間上最鄰近的正常點代替噪點。該機理從兩個方面提升去噪性能:(1)代替噪點的是正常點。傳統的去噪方法中代替噪點的不一定是正常點,例如中值濾波及其改善版本中噪點周圍幾個像素灰階的中值點不一定就是正常像素。此外,如果選用了一些噪點,三權重因子生成的像素灰階將不是正常像素的灰階。(2)最近鄰原則。從圖像生成的角度,最近鄰正常像素點是代替噪點的最佳選擇。然而,傳統方法沒有較好地將這一性質應用到去噪中。
5.4.1 代表性圖片的椒鹽去噪性能測試
不同噪聲密度下的椒鹽去噪圖像視覺效果對比如圖13 所示,分別對kodim05、kodim24 和kodim23 圖像添加20%、50%和80%的噪聲,再分別采用各種方法去噪。本文提出的方法將與7 個傳統方法進行對比,其中包括5 個基于像素灰階的方法和2 個基于CNN 的方法。基于像素灰階的去噪方法中,中值濾波將所有像素單元的灰階無選擇性地采用3×3 滑動窗口的中值代替,雖然流程簡單,但是由于缺少噪點標定步驟,對所有像素單元進行無差別濾波,該方法將造成較大的信息損失,如圖13(a3)、圖13(b3)和圖13(c3)所示。概率濾波采用具有最大概率的相鄰像素灰階代替噪點灰階,但是該方法在處理高密度噪聲時容易失效,如圖13(b5)和圖13(c5)所示。

圖13 不同去噪方法的處理效果對比Fig.13 Comparison of visual effect for image processed by different denoising method
由于采用的噪點標記方法誤判率較高,改善的中值濾波方法和均值標定重復濾波方法處理高密度噪聲圖像存在殘留噪點,如圖13(b6)、圖13(c6)和圖13(b7)所示。三權重因子算法通過可調窗口搜索噪點周邊的正常點,確保重構噪點的信息是正常像素灰階,再采用這些正常像素單元灰階的權重之和代替噪聲像素單元的灰階,充分利用了噪點周邊的正常點,達到了良好的去噪效果。因此,在基于像素灰階的方法中三權重因子算法表現相對優異,如圖13(a4)和圖13(c4)。但是,該方法由于噪點標記方法采用極點標記,在高密度下處理所得圖像存在一些噪點殘留,如圖13(b4)所示。
在基于CNN 的去噪方法中,Liang CNN 采用多達39 層的深度殘差網絡進行去噪。Xing CNN中采用17 層卷積神經網絡進行去噪,訓練50 個周期快速達到收斂。實質上,在去噪過程中不應該對原圖像中的正常像素做任何改變。然而,該方法對原圖像中包括正常像素在內的所有像素均進行CNN 去噪,使得該方法的信息損失較大。本文采用9 層的深度卷積神經網絡模型生成噪聲掩模,經過50 個周期達到收斂,獲得了一個誤判率極低的高質量噪聲掩模,對標記為正常點的像素單元不做任何處理。接著,基于相鄰像素灰階較為接近的性質,本文采用最近鄰搜索機制,利用噪點周邊最近的正常點代替噪點。由于本文提出的方法充分地結合了CNN 方法能夠精確識別噪點的優勢和相鄰像素灰階接近的性質,達到了理想的去噪效果,如圖13(a10)、圖13(b10)和圖13(c10)所示。表3 中,本文提出的去噪方法所得圖像的PSNR 和MSE 的平均值分別為28.40 和3.23,相比于傳統方法達到了最佳。

表3 各種方法的去噪性能對比Tab.3 Comparison of denoising performance of various methods
5.4.2 BSD300 數據集上的椒鹽去噪性能測試為了更加深入地驗證所提去噪方法的魯棒性,本文對BSD300 數據集的300 張圖片添加密度為0.01~0.9 之間隨機密度的椒鹽噪聲,并對比不同方法所得的PSNR 和MSE 的平均值。從表4 可以看出,本文方法的PSNR 最高,MSE 最低,說明本文方法的去噪性能優于傳統方法。相比于基于像素灰階去噪方法即三權重因子方法,本文提出方法的PSNR 提升了2.53%,MSE 降低了6.76%。相比于傳統CNN 去噪方法即Xing CNN,本文提出方法的PSNR 提升了8.96%,MSE 降低了45.24%。

表4 BSD300 數據集上的去噪性能對比Tab.4 Comparison of denoising performance on BSD300 dataset
本文從噪點標記和噪聲去除兩方面改善去噪性能,在噪點標記步驟采用輕量級CNN 實現了極高精度的噪點標記,使得系統能夠精準地鑒別噪聲點和正常點。接著,在噪聲去除步驟以上述精準噪點標記為基礎,對于正常點不做處理。對于噪點,搜索在空間上與該噪點最為鄰近的正常點作為代替點。表1的結果說明CNN 標記提升了噪點標記精度,表2 的結果說明最近鄰搜索機制提升了峰值信噪比并降低了信息損失。從表4 可以看出,結合CNN 噪點標記和最近鄰搜索機制的椒鹽去噪方法實現了椒鹽去噪性能的提升。
Liang CNN 中存在多達32 個殘差層和中值濾波層,使得運算復雜度和參數量極大。Xing CNN 中存在17 個常規卷積層,運算復雜度和參數及仍然很大。相比于傳統的椒鹽去噪卷積神經網絡,本文減小了網絡深度,并且在中間層采用深度可分離卷積代替常規卷積,這兩個因素使得網絡復雜度大幅降低。業界用MFLOPS[20](每秒兆次浮點型運算的數量)來評估卷積神經網絡的運算復雜度。如表5 所示,本文所提出的網絡模型的運算復雜度比Xing CNN 降低了15 倍。此外,該網絡的參數數量和.h5 文件的大小都在傳統網絡的基礎上得到數量級的降低。

表5 網絡復雜度對比Tab. 5 Comparison of network complexity
本文提出的椒鹽去噪方法充分利用了卷積神經網絡的智能識別優勢和相鄰像素灰階接近的性質,達到了超越傳統方法的去噪性能。該方法不同于傳統基于像素灰階的去噪方法,通過輕量級卷積神經網絡訓練了一個高質量噪聲掩模生成器,實現了精確的噪點標定。此外,該方法不同于現有的卷積神經網絡去噪方法對全體像素進行卷積處理,而是將原圖像中的正常點直接輸出,將其中的噪點進行針對性的處理,從而減少了信息損失。在處理這些噪點的過程中,根據最近鄰搜索機制尋找到與噪點距離最近的正常點。實驗結果表明,神經網絡的復雜度得到數量級的降低,噪點標定的誤判率比傳統最佳方法降低了83.65%。在去噪方面,該方法的PSNR 和MSE 均優于傳統的像素灰階方法和CNN 方法。本文提出的方法深化了輕量級卷積神經網絡在椒鹽去噪領域的應用,改善了去噪性能。