舒 暉 王以伍
(成都醫(yī)學院現代教育技術中心 四川 成都 610500)
隨著醫(yī)學影像技術的發(fā)展,醫(yī)學圖像的應用在醫(yī)學領域中日益重要,合理有效的醫(yī)學圖像可以真實反映人體組織器官的形態(tài)結構信息,為醫(yī)務工作者對病理判斷提供直觀的依據[1]。但是醫(yī)學圖像在采集、生成和傳輸過程中,受工作環(huán)境、儀器設備等因素的影響,不可避免地產生噪聲。噪聲的存在導致醫(yī)學圖像中組織結構的形態(tài)及顏色深淺發(fā)生畸變,容易誤導醫(yī)務工作者對圖形邊緣及紋理細節(jié)的識別,從而對病理形成誤判,增加誤診的風險。因此,為獲取真實可靠的醫(yī)學圖像,必須消除醫(yī)學圖像噪聲,給醫(yī)療診斷提供有效資料,提升診療水平。
目前,傳統(tǒng)的圖像去噪方法在醫(yī)學圖像處理中應用已久,例如基于變換域的去噪方法[2-3]、基于濾波器的去噪方法和基于統(tǒng)計學信息的去噪方法等[4]。但是上述方法的去噪結果大都不盡如人意[5],在噪聲壓制和細節(jié)保持之間很難同時兼顧,距離醫(yī)學圖像的去噪標準仍有差距。
近幾年的深度學習技術得到廣泛發(fā)展與應用,相比較傳統(tǒng)去噪方法,深度學習通過神經網絡的學習訓練具有很好的去噪效果,目前在圖像處理中逐步得到推廣。尤其是Zhang等[6]提出的DnCNN(Denoising convolutional neural networks)算法,是目前最為有效的圖像去噪算法之一。但該算法采用單一尺度的卷積核,容易導致去噪結果丟失局部細節(jié)信息,造成邊緣/紋理等模糊,不利于圖像質量的提升,在醫(yī)學圖像處理方面依然存在不足,需要進一步改善。針對上述不足,先后有學者從網絡的結構設計方式進行改進,例如采用Alex網絡、VGGNet(Visual Geometry Group Net)等[7],也有學者采用并行計算等方式用于提升計算速度[8-9],但是上述方式并沒有從根本上解決算法不足,其去噪效果提升不大。文獻[10-11]將空洞卷積引入深度學習網絡中,代替原有網絡中的傳統(tǒng)卷積,形成空洞卷積神經網絡(Iterated dilated convolution neural networks,ID-CNN),新的學習網絡具有較好的去噪能力,去噪結果保留更多的細節(jié)信息,但是由于參數多、網絡深,導致訓練時間長,計算效率低。
本文在DnCNN算法的基礎上,對網絡結構進行改進,建立一種多尺度卷積核提取圖像特征的殘差網絡,增加網絡對多尺度特征的感知能力,同時改進網絡損失函數和激活函數,在網絡中添加跳躍連接,提高算法的去噪效果和細節(jié)保護能力,提升計算效率。為驗證本文方法的有效性,將其與曲波變換算法、BM3D算法、DnCNN算法、ID-CNN算法進行對比。結果表明本文方法具有更好的去噪效果,邊緣/紋理細節(jié)保留更為完整,圖像更為清晰,具有較好的應用效果。
常規(guī)卷積神經網絡進行圖像去噪時,通過學習無噪圖像進行目標圖像的去噪。而DnCNN采用深層次的卷積神經網絡結構對含噪圖像的噪聲進行學習,應用批歸一化技術和線性整流函數提升訓練深度[12],求取期望噪聲殘差和網絡計算噪聲殘差之間的誤差,實現圖像噪聲的去除。模型流程如圖1所示,左側表示輸入含噪圖像,最右側表示通過殘差學習后的輸出噪聲。
1.1.1殘差學習
DnCNN算法進行圖像去噪時,通過學習含噪圖像,對網絡輸出結果和輸入圖像進行對比并計算兩者殘差,并最小化該殘差的代價函數,則DnCNN模型的代價函數為:
(1)
式中:hw,b(xi)表示在訓練集xi情況下神經元的輸出;yi表示輸入的含噪數據集;m表示測試樣本數。則整個網絡的代價函數為:
(2)
式中:Θ表示訓練參數;R表示圖像殘差;x表示預測結果圖像;y表示輸入含噪圖像;n表示網絡模型中輸入圖像的Patchs數目。然而,常規(guī)深度網絡受相關條件限制,在網絡層數增加時,反向傳播容易衰減梯度信息,導致訓練結果很難收斂。但是DnCNN深度殘差網絡從網絡結構上解決上述問題,對殘差學習策略進行優(yōu)化,從而更好地應用于深度網絡中[13],更有利于深層網絡的優(yōu)化與提速。
1.1.2批歸一化
Ioffe等[14]首次提出批歸一化概念,并用于解決深度網絡中白化操作的低效率等問題。隨著網絡層數增加以及模型的深化,多個函數或多個網絡層數的組合被應用在模型建立過程中。但是,初始輸入層的微小變化會引起后續(xù)深層網絡的劇烈變化,導致網絡的學習效率、更新策略以及初始權重選擇建立更為困難。針對上述深度學習的內部協(xié)變量轉移問題,歸一化方法可以有效解決。
深度學習通常要求輸入數據滿足獨立分布的條件,從而提高模型準確度。當一組向量x=(x1,x2,…,xm)輸入至單個神經元時,通過網絡函數計算得到一組數據yi=f(xi),i=1,2,…,m,為使輸入數據達到獨立分布條件,需要對每一層網絡的數據進行白化操作,且保證深度網絡反向傳播實現梯度的更新。因此,在輸入向量x傳遞給神經元之前,需要對向量進行平移伸縮變化,使輸入向量的分布滿足標準分布的形態(tài),則變化后的輸入向量x變?yōu)椋?/p>
(3)
式中:g、σ表示縮放因子;μ、b表示平移因子;m表示樣本數目。通過式(3)使最終的輸入向量滿足均值為b,方差為g2的分布,且使得下一層網絡的輸出結果同樣滿足上述分布條件。在深度網絡學習中,上述變化因子是自適應變化,從而有效保證各層深度網絡學習的有效性,提升深度網絡的非線性表達能力[15]。
在針對輸入向量的標準化時,通常采用對mini-batch數據進行訓練,計算單個神經元當前輸入向量的均值μi和方差σi,其計算公式為:
(4)
(5)
式中:m表示向量的維數,也表示mini-batch的大?。沪艦闊o窮小的正值。在進行網絡的反向傳遞時,用上述公式進行輸入向量X的標準化。
1.1.3損失函數
損失函數又叫誤差函數,表示預測圖像和輸入圖像之間的差異,用以衡量網絡的訓練學習情況。DnCNN算法采用均方誤差函數作為損失函數,通過卷積網絡訓練實現損失函數的最小化,其表達式為:
(6)
由上述方法原理可以發(fā)現DnCNN深度殘差網絡的訓練效率較低,收斂速度和精度有待于進一步提高。而最新的ID-CNN網絡由于參數多、網絡深,導致訓練時間長,計算效率低。針對上述情況,本文基于原有DnCNN算法原理,采用一種不同尺度卷積核提取層提取圖像的不同尺度特征,增加網絡對不同尺度的適應性,對損失函數和激活函數進行優(yōu)化,并在網絡中添加跳躍連接,加快網絡訓練速度,提升網絡收斂精度,從而實現改善圖像結果的目的。
1.2.1多尺度特征提取
為更好地獲取淺層特征,本文采用一種多尺度特征提取層,采用3×3、5×5、7×7三種尺寸大小的卷積核,從而對不同尺度下的淺層特征信息進行學習訓練,增加網絡結構對圖像尺度的適應性[16],具體如圖2所示。為保證輸出特征與輸入圖像尺度一致,三種卷積核的中心點重合。
在上述的特征輸出結果中,所有的特征尺度相同,則需要采用邊界擴充技術使每次運行的三種卷積核的中心位置保持一致,具體如圖3所示。然后以此方式進行卷積運算,并逐步掃描全圖實現多尺度特征的提取。上述操作中,每個卷積核都能夠得到與輸出尺寸相同且包含不同尺度特征的映射圖。
在本文中,三種尺寸的卷積核數量分別為12、32、20,則最終得到64幅尺度相同的特征圖,將上述特征圖并聯(lián)作為下一層網絡的輸入。和DnCNN的卷積核提取模式相比,上述方式能夠提取更為豐富的特征信息,從而有效提高淺層特征對不同尺度的適應性。
1.2.2跳躍連接網絡的應用
獲取淺層特征后,需要后續(xù)的網絡層進行學習,計算得到更為復雜的特征,從而實現圖像的去噪目的。DnCNN網絡采用學習殘差的方式,但是隨著網絡深度的增加網絡的訓練難度也逐漸加大,過多卷積層的堆積容易致使梯度消失,網絡收斂性差[17-18]。為解決上述深度網絡問題,本文引入跳躍連接方法,具體如圖4所示。加入的跳躍連接網絡可以將前面任意一層網絡的激活輸出傳遞給另外一層網絡,加快網絡的收斂速度,避免了反向傳遞過程中梯度消失問題,從而使網絡更容易優(yōu)化。
圖4中,x表示網絡的輸入,F(x)表示經網絡層的激活函數后的輸出,即F(x)=δ1(x),δ1表示前面網絡層的激活函數,F(F(x))表示后一層網絡的輸出,即F(F(x))=δ2(δ1(x)),δ2表示后面網絡層的激活函數。包含一個跳躍連接和幾層深度網絡的組成稱之為一個殘差單元塊。
1.2.3損失函數及激活函數的優(yōu)化
DnCNN中的均方誤差損失函數是逐像素計算輸入輸出之間的差異,容易出現邊緣紋理模糊的現象。針對上述問題,本文聯(lián)合基于圖像高級特征的感知損失函數作為改進的損失函數,將逐像素損失和感知損失同時作為訓練目標進行網絡訓練,在具有較高去噪效果的前提下對圖像的邊緣紋理信息進行保護,則改進后的損失函數為:
(7)
在實際應用中,通常采用隨機梯度下降算法對上述函數進行優(yōu)化,但是該算法在進行參數更新過程中,學習速度保持不變,對于算法效率的提升有限,因此本文采用自適應矩估計算法對誤差函數進行優(yōu)化。改進的優(yōu)化算法是隨機梯度下降算法的一種擴展形式,然后針對不同參數設計不同的自適應學習效率,從而有效解決深度學習網絡中大數據參數優(yōu)化的問題,參數數目少,效率高。
在DnCNN網絡中,通常采用線性整流激活函數。然而,線性激活函數在負值時,數據的負軸信息全部歸零,容易造成信息泄露和丟失[19]。因此,本文采用帶泄露函數作為激活函數,有效改善上述不足,函數表達式如下:
(8)
式中:fi表示函數的輸出;ci表示輸入;α為泄漏系數,取值范圍為[0,1]。兩種激活函數如圖5所示。
采用上述帶泄漏激活函數作為權值初始化策略,能夠以端到端的形式訓練很深的網絡。
改進后的深度網絡結構如圖6所示,在實際應用中,可以根據情況使用多個殘差單元塊。其中最小的單個殘差單元塊如圖4所示,里面包含兩個卷積層,批歸一化及帶泄露函數組成的激活函數,以及跳躍連接的輸入和輸出。由圖6可知,整個網絡在進行傳遞時忽略相同的主體,將權重主要作用于微小變化,從而解決網絡退化、梯度值衰減消失的情況,改善輸入圖像和輸出殘差之間的映射關系。通過上述跳躍連接,使得深層梯度值直接傳送至淺層網絡層,杜絕了梯度衰減消失的隱患,從而使淺層網絡得到有效訓練。
由圖6可知,得到網絡輸出的殘差特征轉化為圖像f(x)后,去噪后的圖像y可以表示為:
y=x-f(x)
(9)
式中:f(x)表示特征映射到圖像的一種函數關系[20]。
本文選用圖像處理標準圖集和部分無噪CT圖像作為訓練數據集,部分訓練數據集如圖7所示。
上述訓練圖集的圖像特征豐富且多樣,卷積網絡訓練范圍廣,訓練模型適用性強。在實際應用中,為進一步提高和擴大深度網絡的適用性,提升模型的泛化性,通常需要對上述測試集數據進行擴充[21]。由于高質量的CT圖像通常數目較少,因此可以將少數高質量的CT圖像進行分割、旋轉等實現訓練數據集擴充。以胸部CT圖像為例,將其進行不同角度的旋轉,從而有效擴大訓練數據集,具體如圖8所示。
深度網絡的第一層由3個尺寸卷積核組成,其中3×3、5×5、7×7三種尺寸大小的卷積核分別為12、32、20個。中間層統(tǒng)一使用64個3×3大小的卷積核,最后一個網絡層使用灰度圖的3×3大小的卷積核進行特征映射,訓練步長為16,網絡的初始學習率設置為10-4。
為定量分析DnCNN算法、ID-CNN算法和本文算法的差異性,采用相同的參數,記錄三種算法的損失函數以及去噪結果的峰值信噪比(PSRN)隨網絡訓練次數的變化值,結果如圖9所示,其中測試圖像為含均值為0、方差為50高斯白噪的測試圖像。
可以看出,在相同的損失函數誤差值下,本文算法相對DnCNN、ID-CNN算法收斂性更好;同等的訓練次數下,本文算法的去噪結果PSNR值更高。
為進一步驗證本文方法的有效性,分別采用曲波變換算法、BM3D算法、DnCNN算法、ID-CNN算法和本文方法對測試圖像進行去噪處理,并將五種方法的去噪結果進行對比,表1和表2分別展示了不同噪聲情況下五種去噪結果的峰值信噪比和結構相似性(SSIM)數值。
表1 不同方法去噪結果的PSNR 單位:dB
表2 不同方法去噪結果的SSIM
由表1和表2可以看出,五種方法對于不同比例的噪聲圖像,其去噪結果均能取得較好的峰值信噪比和結構相似度。隨著噪聲比例的增加,五種方法去噪結果的峰值信噪比和結構相似度均有不同程度的下降,但是本文網絡能保持在一個較高的數值范圍,說明具有較好的去噪效果及圖像質量提升能力。相對于噪聲圖像,曲波變換結果的PSNR值平均提升48%,SSIM值平均提升至0.833;BM3D結果的PSNR值平均提升53%,SSIM值平均提升至0.849;DnCNN結果的PSNR值平均提升54%,SSIM值平均提升至0.858;ID-CNN結果的PSNR值平均提升54.8%,SSIM值平均提升至0.864;本文方法結果的PSNR值平均提升56.3%,SSIM值平均提升至0.881。
然后將測試圖像的圖像結果進行展示,重點分析噪聲標準差為10和50的去噪結果,結果如圖10和圖11所示。
由圖10可知,五種方法均能去除圖像的噪聲,但是不同方法去噪效果不同。曲波變換的去噪結果相對較好,但是邊緣/紋理細節(jié)相對模糊,BM3D的噪聲殘差中存在較多的邊緣/紋理細節(jié),說明對邊緣/紋理等有效信號有所損傷。本文算法和DnCNN、ID-CNN算法結果最好,且去除的噪聲殘差中有效邊緣信息及紋理信息較少,說明在低噪聲的情況下,本文去噪方法和DnCNN、ID-CNN網絡具有同等的去噪效果。然后再次分析含高比例噪聲圖像的去噪效果,具體如圖11所示。
由圖11可知,在高比例噪聲情況下,曲波變換在去除噪聲的同時容易損傷邊緣/紋理等細節(jié)信息,使得去噪結果模糊,圖像的輪廓不易識別。對于DnCNN算法和BM3D算法,其去噪結果對原始圖像中紋理較弱的區(qū)域容易丟失細節(jié),且去除的噪聲殘差中也包含較多的細節(jié)紋理信息,具體如圖11(c)、(d)、(i)、(j)的橢圈區(qū)域;ID-CNN結果的噪聲殘差中連續(xù)性信息相對較少,但是弱反射區(qū)域圖像質量相對較差,存在部分線性噪聲,具體如圖11(e)、(k)所示。而本文方法則能夠較好地保持更多的有效細節(jié),邊緣輪廓更容易識別判斷,具體如圖11(f)、(l)所示。對圖11(g)方框所示范圍內的五種去噪結果進行放大顯示,結果如圖12所示。
由圖12橢圓框區(qū)域可知,曲波變換結果較模糊,邊緣/紋理細節(jié)信息很難識別,DnCNN和BM3D結果相對較好,圖像相對清晰,但是圖12(b)和圖12(c)中的邊緣/紋理細節(jié)區(qū)域圖像質量依舊較差,要么不夠清晰,要么依然存在部分噪聲;ID-CNN算法中,邊緣輪廓較為模糊,紋理細節(jié)不清晰;而本文的去噪結果相對DnCNN、BM3D和ID-CNN的去噪結果更清晰,能夠保留更加豐富的紋理細節(jié),“籃網”及“籃網”后面的“字母”紋理信息、下方的“廣告板”邊緣等信息更容易識別,說明本文方法在保留邊緣及紋理細節(jié)方面具有更好的優(yōu)勢,能夠得到更加清晰的圖像結果。
然后采用四川某醫(yī)院的大腦CT圖像做進一步測試,五種方法的去噪結果及其各自的噪聲殘差如圖13、圖14所示。
由圖13可知,五種方法去噪結果中,曲波變換細節(jié)信息模糊,BM3D算法、DnCNN算法、ID-CNN算法及本文算法均能有效抑制圖像中的噪聲,去噪結果均具有較好的視覺質量。五種結果的局部放大圖中,BM3D算法、DnCNN算法和ID-CNN算法對部分紋理/邊緣信息不能有效保護,造成了原始邊緣/紋理細節(jié)信息的丟失。本文方法結果的邊緣細節(jié)信息保護較好,去除結果和原始無噪圖像更為接近,具有更好的圖像質量,具體如圖13(i)、(j)、(k)、(l)中的箭頭所示。圖14中,曲波變換的噪聲殘差中包含較多的細節(jié)信息,BM3D算法、DnCNN和ID-CNN算法的噪聲殘差中相對較少,但是依舊可以看見部分連續(xù)的邊緣輪廓信息。而本文方法的噪聲殘差中,有效的邊緣紋理信息最少,說明對邊緣/紋理等細節(jié)信息保護最好,具體如圖14中圓框中所示。
綜合圖13和圖14可知,在醫(yī)學CT圖像的噪聲去除過程中,本文方法具有較好的去噪效果及邊緣紋理細節(jié)保護能力,圖像邊緣清楚,細節(jié)清晰,視覺效果好,圖像質量高,所反映的人體組織輪廓及位置分布更容易識別,具有較好的圖像處理推廣應用效果。
本文基于多尺度特征提取的殘差網絡進行醫(yī)學圖像去噪,該方法基于原有DnCNN算法原理,改進其網絡結構,對激活函數和損失函數進行優(yōu)化,采用多尺度卷積核組合的特征提取層,提取不同尺度特征,增加網絡對不同尺度的適應性,添加跳躍連接,加快網絡的收斂速度和精度。測試結果表明,改進的深度網絡算法能夠有效提升圖像質量,改善圖像視覺效果。然而因相關條件限制,本文方法依然存在更大的提升空間,需要在后期的工作中進一步改進和完善,根據目前的成果,結論如下:
(1) 本文所用訓練測試圖集默認都是干凈無噪圖像,然而實際工作中很難擁有理想無噪的醫(yī)學圖像,因此如何提升訓練圖集的質量也是提升本文方法去噪結果的方法之一。(2) 實驗模擬噪聲均是基于高斯白噪的設想,但是醫(yī)學圖像成像原理及成像環(huán)境復雜,其醫(yī)學圖像含噪類型多樣,測試結果難以嚴格匹配醫(yī)學圖像去噪的本質需求,因此后續(xù)工作需要進一步研究更匹配實際情況的深度模型,從而實現醫(yī)學圖像處理的最終目的。