鞠維欣,趙希梅
(1.青島酒店管理職業(yè)技術(shù)學院 會計學院,山東 青島 266100;2.青島大學 計算機科學技術(shù)學院,山東 青島 266071;3.山東省數(shù)字醫(yī)學與計算機輔助手術(shù)重點實驗室,山東 青島 266000)
肝硬化是目前人類的常見慢性疾病,對其進行早期檢測以防止病情惡化至關(guān)重要[1]。計算機輔助診斷[2](Computer-Aided Design,CAD)技術(shù)在醫(yī)學影像領(lǐng)域發(fā)展迅速,其可以高效識別出肝的病理圖像,不僅可以降低醫(yī)生人為主觀誤判概率[3],而且可以提高工作效率。目前肝硬化識別計算機輔助診斷從早期的傳統(tǒng)機器學習人工提取特征,到深度學習卷積神經(jīng)網(wǎng)絡(luò)自動提取樣本特征進行分類都有著較多研究和應(yīng)用,也獲得了較好的識別效果。
基于傳統(tǒng)機器學習的人工提取特征方法主要包括LBP、Gabor 變換、HOG 和灰度共生矩陣等。雷一鳴等[4]用小波變換先對圖像進行特征預(yù)處理,利用二維Gabor 變換,通過LBP 方法提取特征,再利用SVM 作為分離器,識別率達到了95.4%。韓秀芝等[5]使用稀疏矩陣作為多特征分類器,并用LBP 對樣本提取特征,實現(xiàn)了肝類疾病的多分類識別,且性能較為穩(wěn)定。在基于深度學習卷積神經(jīng)網(wǎng)絡(luò)的肝硬化識別中,鞠維欣等[6]將卷積神經(jīng)網(wǎng)絡(luò)與概率神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出GoogleNet-PNN 的新模型,達到了較高的識別率。張歡等[7]將STN 模塊和異構(gòu)卷積濾波器應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò),達到了較好的二分類效果。
肝臟具有特殊的解剖形態(tài),屬于雙重動脈供血。在超聲照影檢查時,肝硬化在影像中主要呈現(xiàn)密度高低不均、肝葉不成比例等情況,在診斷時不僅耗時耗力,而且面對細微的變化也容易產(chǎn)生人為主觀誤差,并且隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的加深,會增加梯度離散和梯度爆炸的風險,同時模型訓練效率也會降低。針對上述問題,為降低卷積神經(jīng)網(wǎng)絡(luò)訓練的復(fù)雜性,簡化模型參數(shù),更好地優(yōu)化梯度,同時提高提取特征質(zhì)量,本文提出一種新的模型結(jié)構(gòu)STNGResnet 應(yīng)用于超聲肝硬化樣本識別。因Resnet 殘差網(wǎng)絡(luò)打破了網(wǎng)絡(luò)越深、性能越好的共識,且殘差結(jié)構(gòu)能加速學習,使得模型更加容易學習,也能有效防止梯度爆炸或消失。Resnet18 在保持性能的前提下模型參數(shù)也更少,因此以Resnet18[8]為基礎(chǔ),在其中加入Ghostmodule 模塊增強冗余信息,結(jié)合空間變換網(wǎng)絡(luò)使特征具有空間不變性,同時在模型中加入附加角裕度損失函數(shù)(ArcFace)來增強超聲肝CT 影像紋理特征與顆粒度的差異性[9-10],并將該網(wǎng)絡(luò)與傳統(tǒng)的AlexNet[11]、VGG[12]、GoolgeNet[13]從識別準確率和運行效率兩方面進行對比分析。
在向模型中輸入超聲肝CT 影像時,經(jīng)過Resnet 中的殘差塊在進行卷積操作時會產(chǎn)生一定量的冗余特征圖,而這些冗余特征可能是提取特征過程中重要的組成部分,或者存在一定的映射聯(lián)系,利用Ghost 模塊[14]用少量參數(shù)進行特征的映射變換和疊加。本文每經(jīng)過一個殘差塊,都會加入Ghost 模塊,提取到保留冗余信息的特征圖,從而提高特征提取質(zhì)量。
Ghost 模塊如圖1 所示。對于輸入的特征,首先進行普通的卷積操作得到常規(guī)特征圖,再利用深度卷積Depthwise對生成的常規(guī)特征圖進行cheap operate 操作,最終得到Ghost特征圖,然后再與第一步普通卷積的特征圖通過concat操作得到完整的特征輸出[15]。
Fig.1 Ghost module圖1 Ghost模塊
輸入特征圖為h×w×Ch_in時,經(jīng)過常規(guī)普通卷積得到特征圖輸出為h'×w'×CH_out。常規(guī)的特征圖將輸入的特征圖分為n份,卷積核的尺度大小為c。
普通卷積操作運算量為:
Ghost模塊操作運算量為:
由上述公式得知,Ghost 模塊先進行普通卷積,再利用Depthwise 深度卷積對特征進行壓縮,然后兩者相加最終得到Ghost特征圖。
由DeepMind[16]提出的空間變換網(wǎng)絡(luò)(Spatial Transformer Network,STN)以仿射變換矩陣為基礎(chǔ),動態(tài)地對圖像進行空間幾何操作,以增強網(wǎng)絡(luò)的幾何不變性??臻g轉(zhuǎn)換模塊主要由3 部分組成:①本地化網(wǎng)絡(luò)(Localisation Network);②參數(shù)化采樣網(wǎng)絡(luò)(Parameterised Sampling Grid);③圖像采樣(Image Sampling)??臻g變換網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
Fig.2 Spatial transformation network structure圖2 空間變換網(wǎng)絡(luò)結(jié)構(gòu)
(1)本地化網(wǎng)絡(luò)。該部分主要是將輸入圖片U∈R(H,W,C)經(jīng)過一系列特征提取操作后輸入到回歸層,輸出變換系數(shù)為θ,θ=floc(U)。
(2)參數(shù)化采樣網(wǎng)絡(luò)。對本地化網(wǎng)絡(luò)輸出的變換系數(shù)θ進行仿射變換,并對其中的坐標進行歸一化,以此輸出特征圖。得到的特征變換關(guān)系如公式(3)所示。
(3)圖像采樣。圖像通過本地化網(wǎng)絡(luò)和參數(shù)采樣層網(wǎng)絡(luò)得到坐標信息,再與原圖坐標信息相融合產(chǎn)生新的輸出特征。其參數(shù)采樣網(wǎng)絡(luò)關(guān)系可表示為:
其中,k()為采樣內(nèi)核,Φx、Φy為采樣核輸入的內(nèi)置參數(shù),為輸入特征,為特征圖經(jīng)過通道C對應(yīng)的坐標。
輸入的圖像經(jīng)過一系列仿射變換,其與原始特征圖融合輸出后的特征帶有空間不變性。該網(wǎng)絡(luò)即可作為完整網(wǎng)絡(luò),也可作為一個模塊嵌入到模型中以增強特征提取能力,且參數(shù)較少,運行速度快。
solftmax 作為Resnet 分類函數(shù),將預(yù)測分類結(jié)果都轉(zhuǎn)化為非負數(shù),并將多個神經(jīng)元的輸出映射到(0,1)區(qū)間進行分類,且轉(zhuǎn)化的數(shù)值相加為1。
其中,k為樣本數(shù),n為種類數(shù),b為卷積神經(jīng)網(wǎng)絡(luò)的偏置,W為網(wǎng)絡(luò)權(quán)重,x為特征向量,yi為第i個樣本所屬種類為第i個樣本所屬類別的權(quán)重矩陣,矩陣的轉(zhuǎn)置為偏置矩陣。
在足夠的數(shù)據(jù)集能夠涵蓋不同類別的情況下,solftmax 函數(shù)能夠?qū)γ恳粋€樣本進行歸屬分類,保證類別的可分性。在區(qū)分過程中,所屬類別的樣本如果能更緊湊地擬合在一起,并且類與類之間有一定距離,即類內(nèi)緊湊和類間分離,則分類過程會更加嚴謹。因此,本文引入附加角裕度損失函數(shù)(ArcFace)進行優(yōu)化。首先對特征進行歸一化處理,將其映射到(0,1)范圍內(nèi),設(shè)置式(3)中的和偏置固定為0,并設(shè)置,再代入,得到公式如下:
之后,特征會以超球平面的形式分布在每個特征中心的周圍。為使每一個特征中心圍繞的特征更加緊湊,同時拉開特征中心之間的距離,即增強類內(nèi)緊湊性和加大類間差異性,將公式(2)的進行縮放,并將增大至+β。具體公式如下:
經(jīng)過附加角裕度損失函數(shù)(ArcFace)的優(yōu)化訓練,使得超聲肝CT 影像的特征分布在類內(nèi)更加聚合,同時反向傳播優(yōu)化β值的角間距離,使得不同特征之間的中心距離拉大,增強樣本特征的差異性。
因醫(yī)學超聲肝CT 影像樣本集是在青醫(yī)附院醫(yī)生的指導下采集完成的,且數(shù)量遠小于自然數(shù)據(jù)集的數(shù)量,為保證模型不因樣本集數(shù)量產(chǎn)生過擬合現(xiàn)象,本文采用遷移學習和數(shù)據(jù)增強兩種方法。
1.4.1 遷移學習
采用自然樣本集的數(shù)據(jù)對模型進行預(yù)訓練,保留訓練后的參數(shù)應(yīng)用到自己的樣本集中。在卷積神經(jīng)網(wǎng)絡(luò)中,較低層次的網(wǎng)絡(luò)學到的特征圖都是比較簡單的,包括輪廓、形狀等,這些特征往往是通用的。但隨著網(wǎng)絡(luò)層數(shù)的加深,學到的特征也更加明顯和差異化,此時可將預(yù)訓練樣本與自己真正的樣本進行比較。如果樣本差異性較大,可進行參數(shù)微調(diào);如果樣本差異性較小,可直接保留參數(shù)。因此,當樣本集過小時,通過該方法可有效避免過擬合[17-19]。
1.4.2 數(shù)據(jù)增強
對于原先的數(shù)據(jù)集,通過設(shè)定數(shù)據(jù)變換規(guī)則對樣本進行有效擴充[20]。數(shù)據(jù)增強主要分為有監(jiān)督增強和無監(jiān)督增強,有監(jiān)督的數(shù)據(jù)增強又包括單樣本增強和多樣本增強。其中,單樣本增強包括翻轉(zhuǎn)變換(flip)、亮度對比度變化(Color Jittering)、平移變換(Shift)、水平/垂直翻轉(zhuǎn)(Horizontally/Vertically Flip)與噪聲擾動(noise)。
本文采用有監(jiān)督學習中單樣本集的平移旋轉(zhuǎn)來擴充樣本數(shù)據(jù),設(shè)置旋轉(zhuǎn)角度為30°,平移幅度為0.2,并將逆時針剪切變換角度和隨機縮放程度都設(shè)置為0.2,通過該方式將樣本集擴充了840個。
本文提出一種新的模型結(jié)構(gòu)STN-GResnet,引用部分Resnet18 中的ResBlock 模塊并改為直連,使得到的特征直接輸入到Ghost 模塊中。該模塊中用 Depthwise 進行卷積和恒定映射,得到帶有冗余信息的特征圖,增強了信息獲取能力,同時引入空間變換網(wǎng)絡(luò),提高卷積神經(jīng)網(wǎng)絡(luò)的平移不變性,并且可以定位到目標區(qū)域,達到區(qū)域變換的最優(yōu)狀態(tài),增強特征提取能力。
該模型由4 個ResBlock 模塊作為主框架,如圖3 和表1所示,其中保留了殘差網(wǎng)絡(luò)模型中ResBlock 塊內(nèi)的殘差運算,但模塊間改為直連結(jié)構(gòu)。模塊1-3 中,Conv1 中卷積核大小為3×3,步長設(shè)為2;模塊4 中Conv1 卷積核大小為3×3,步長設(shè)為1;模塊1-4 中Conv2 卷積核大小都為1×1,步長都設(shè)為1。在每一個ResBlock 模塊前引入Ghost 模塊,每個模塊通過公式(2)得到帶有冗余信息的特征圖,再傳入下一個殘差模塊,同時Ghost 模塊的輸入channel 與上一個殘差塊輸出的channel 保持一致。模型中Ghost 模塊的常規(guī)卷積核大小為1×1,深度卷積核大小為3×3,步長都為1,模塊中分組數(shù)為Groups=out_channels/ratio,并向上取整,ratio 設(shè)為2。通過以上結(jié)構(gòu),肝CT 樣本通過提取該殘差塊的特征,再輸入到Ghost 模塊,從而提取到帶有冗余信息的特征,因而能獲得更多信息,提高了特征質(zhì)量。同時,與空間變換網(wǎng)絡(luò)相結(jié)合,該網(wǎng)絡(luò)具有較好的魯棒性。在本模型中,該網(wǎng)絡(luò)作為一個模塊融合到模型中,在增強網(wǎng)絡(luò)模型整體性的同時,也增強了卷積神經(jīng)網(wǎng)絡(luò)平移、旋轉(zhuǎn)后的空間不變性,進一步提升了分類效果。
Table 1 STN-GResnet network structure parameters表1 STN-GResnet網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
Fig.3 Structure of STN-GResnet model圖3 STN-GResnet模型結(jié)構(gòu)
最后,本文在分類層加入附加角裕度損失函數(shù)(Arc-Face)、loss 函數(shù),如公式(5)所示。通過該方法增強了類內(nèi)緊湊性,并加大了類間距離,以此增強超聲肝CT 影像特征之間的差異性,提升對正常肝和肝硬化的識別精度。
本文的醫(yī)學實驗數(shù)據(jù)集均來自于青島大學附屬醫(yī)院肝膽科的超聲科室,該樣本數(shù)據(jù)經(jīng)醫(yī)院醫(yī)師許可,僅用于科學研究目的,不會泄露患者隱私信息。如圖4—圖6 所示,正常肝的影像紋理清晰、質(zhì)地均勻;而肝硬化的影像肝實質(zhì)回聲增粗增強,質(zhì)地不均勻,呈波浪狀、鋸齒狀,且門靜脈內(nèi)徑變寬。
Fig.4 Schematic diagram of two types of liver images and their sample extraction圖4 兩類肝臟圖像及其樣本提取示意圖
Fig.5 Schematic diagram of liver sample(liver cirrhosis)圖5 肝樣本部分示意圖(肝硬化)
Fig.6 Schematic diagram of liver sample(normal liver)圖6 肝樣本部分示意圖(正常肝)
為了在保證數(shù)據(jù)集充足的同時,盡可能保留肝影像特征,本文數(shù)據(jù)集通過MATLAB 對原始圖像ROI 區(qū)域選取樣本。在肝CT 每張影像中取不同位置且大小的樣本,一共300 人的病理影像,其中正常肝150 人,肝硬化150 人。通過ROI 取樣得到正常樣本600,肝硬化樣本600,并通過數(shù)據(jù)增強的方法擴充400 樣本,最終實驗樣本為1 600 張(正常肝影像840 張,肝硬化影像760 張)jpg、png 格式的超聲肝CT 影像。在運行過程中,會對數(shù)據(jù)集統(tǒng)一進行預(yù)處理,并初始化數(shù)據(jù)標簽。0 為正常肝,1 為肝硬化,并將每組前60%的數(shù)據(jù)作為訓練集,60%~80%的數(shù)據(jù)作為驗證集,后20%的數(shù)據(jù)作為測試集。
(1)硬件環(huán)境。CPU 為Core(TM)i7-11400H,內(nèi)存為32G,顯卡為RTX 3070(8G)獨立顯卡。
(2)軟件環(huán)境。Pytorch1.9,CUDA11.2,Python 3.8.12,操作系統(tǒng)為Win10(64位)。
2.4.1 評價指標
為保證數(shù)據(jù)的有效性,將實驗中的初始化參數(shù)設(shè)為一致,即設(shè)置學習率為0.001,輸入樣本批大小為16,迭代次數(shù)為100,同時對測試模型進行了遷移學習的預(yù)訓練,并優(yōu)化參數(shù),以保證分析的公平性。在對比分析中,將從識別率和復(fù)雜度兩個維度進行對比,其中識別率判斷公式如下:
式中,xi表示正確分類的樣本數(shù)量,yj表示第j個樣本,計算出全部正確分類的樣本數(shù)量在全部樣本數(shù)量中的占比,推出模型識別率。
復(fù)雜度包括網(wǎng)絡(luò)的時間復(fù)雜度和空間復(fù)雜度。網(wǎng)絡(luò)時間復(fù)雜度與模型訓練和預(yù)測時間成正比,而模型有限的運算次數(shù)會影響復(fù)雜度大小,其單位為Flops(Floatingpoint Operations),設(shè)每一個卷積層的時間復(fù)雜度如下:
式中,M表示該層中每一個卷積核輸出的featuremap大小,卷積核的大小設(shè)置為K,Cin、Cout分別為輸入和輸出通道數(shù)。最終得到整體時間復(fù)雜度為:
式中,第l層網(wǎng)絡(luò)深度為D,Cl-1為上一層的卷積核個數(shù)(輸出通道數(shù)),Cl為第l個卷積層的卷積核個數(shù)。
空間復(fù)雜度是指模型的參數(shù)總量,以及每一個卷積層輸出的特征圖大小,其公式如下:
由式(11)可知,空間復(fù)雜度的總參數(shù)量與卷積核大小K、通道數(shù)C、層數(shù)D有關(guān),而各層輸出的特征圖僅與輸入數(shù)據(jù)的大小M和通道C有關(guān)。
2.4.2 識別率與復(fù)雜度分析
由于STN-GResnet 是在Resnet18 基礎(chǔ)上改進并拓展創(chuàng)新的一種網(wǎng)絡(luò)模型,因此將本文模型與Resnet18、GResnet 的識別率、召回率和運行時間(訓練加測試時間)進行比較,如表2所示。
Table 2 Comparison of 3 models表2 3種模型比較
由表2 分析可得,加入Ghost 模塊以及引入附加角裕度損失函數(shù)后,STN-GResnet 網(wǎng)絡(luò)模型相比于Resnet18 和加入Ghostmoduled 的模型,識別率分別提高了5.2%和3.6%。并且采用附加角裕度損失函數(shù)優(yōu)化后,增加了超聲肝CT 影像的類間差異性和類內(nèi)聚合度,加大了不同病理影像之間的差異,也提高了模型的魯棒性。通過引入Ghost 模塊并且引用Resnet18 部分殘差塊,參數(shù)量也少于原Resnet18。
本文同時比較了目前使用較多且性能較好的分類網(wǎng)絡(luò)模型,如Vggnet、HRNet、Alexnet、Goolgenet(V3),如圖7、圖8 所示。在運行時間上以訓練加測試時間的和來比較整體模型運行效率,通過比較也可得到該模型屬于參數(shù)較少的輕量級神經(jīng)網(wǎng)絡(luò),從而保證了整體的運行性能。不同模型比較如表3所示。
Table 3 Comparison of different models表3 不同模型比較
Fig.7 Comparison of accuracy of different models圖7 不同模型識別率比較
Fig.8 Comparison of loss value of different models圖8 不同模型loss值比較
2.4.3 不同優(yōu)化器比較
本文同時比較了不同優(yōu)化器對網(wǎng)絡(luò)模型性能的影響。在實驗中,學習率與迭代次數(shù)分別設(shè)置為0.001 和100,得到比較結(jié)果如表4、圖9、圖10所示。
Table 4 Comparison of different optimizers表4 不同優(yōu)化器比較
Fig.9 Comparison of optimizer accuracy圖9 優(yōu)化器識別率比較
Fig.10 Comparison of optimizer Loss圖10 優(yōu)化器Loss值比較
Adam[21]相比于其他優(yōu)化器的性能更好,該優(yōu)化器結(jié)合了Momentum 和Adaptive 動量算法,將SGD 的一階動量和AdaDelta 的二階動量相加使用。
SGD 的一階動量如下:
AdaDelta 的二階動量如下:
β1、β2為矩估計的指數(shù)衰減率,并初始化m0=0,V0=0。但在梯度運算初期,mt和Vt會向0 逼近。為解決該問題,通過公式(14)(15)進行修正。
修正后再使用公式(16)進行運算。
式中,∈為維持數(shù)值穩(wěn)定性的常數(shù),通常設(shè)置為10-8,η為學習率。通過上述公式,可以動態(tài)調(diào)整一階動量和二階動量的運算,通過對不同參數(shù)設(shè)置各自的適應(yīng)性學習率,使其快速收斂并完成對梯度的優(yōu)化。
通過上述分析結(jié)果得知,使用Adam 優(yōu)化器在識別精度上相比于其他優(yōu)化器更加適應(yīng)于本文模型。
2.4.4 不同損失函數(shù)比較
通過比較不同損失函數(shù)約束模型的分類效果來驗證其有效性,本文算法訓練過程中的設(shè)置與對比模型實驗一致,訓練批次為16,迭代次數(shù)為100,使用Adam 作為優(yōu)化器,通過消融實驗保障最佳的模型性能,比較結(jié)果如圖5所示。
由表5 可以看出,融入了Triplet Loss、Sphereface、Arcface 等損失函數(shù)進行優(yōu)化的模型,其分類準確率均優(yōu)于交叉熵損失函數(shù)。在加入附加角裕度損失函數(shù)對Loss 進行訓練優(yōu)化后,識別率提升了5.2%,具有較好的識別效果。
Table 5 Comparison of different Loss functions表5 不同損失函數(shù)比較
針對傳統(tǒng)神經(jīng)網(wǎng)絡(luò)泛化性弱、識別率較低、參數(shù)量大,且特征提取質(zhì)量不高等問題,本文提出一種新的STNGResnet 網(wǎng)絡(luò)模型,結(jié)合了部分Resnet18 殘差塊并改為直連結(jié)構(gòu),加入Ghost 模塊,使其在超聲肝CT 影像中能提取到保留冗余信息的特征圖,并結(jié)合空間變換網(wǎng)絡(luò),使提取到的特征具有空間不變性,進而提高特征提取質(zhì)量。在分類層加入附加角裕度損失函數(shù)(ArcFace),增強類內(nèi)緊湊性,并加大類間距離,從而增強了超聲肝CT 影像特征之間的差異性,提升了對正常肝和肝硬化的識別精度,使模型達到了較高識別率。
相比傳統(tǒng)的深度學習識別算法,本文在保證較高識別率的同時,其模型大小也相對較小,便于其在應(yīng)用上的部署。但對于硬件的算力要求較高,因此部署成本也較高。研究目前尚處于測試階段,后續(xù)將進一步優(yōu)化算法,并能夠?qū)崿F(xiàn)多分類任務(wù)目標,精確地進行多類常見肝疾病的檢測,如脂肪肝、血管瘤等,實現(xiàn)在肝膽科的臨床應(yīng)用。