項詩雨,魏利勝
(安徽工程大學 電氣工程學院,安徽 蕪湖 241000)
近年來,我國結(jié)直腸癌發(fā)病率與死亡率都呈現(xiàn)增長趨勢。據(jù)2018年中國癌癥統(tǒng)計報告顯示,我國結(jié)直腸癌新發(fā)病例37.6萬例,死亡病例19.1萬例,結(jié)直腸癌嚴重危害并影響著我國公民健康[1]。潰瘍性結(jié)腸炎與息肉被認為是導致結(jié)腸癌的高危因素之一[2]。無線膠囊內(nèi)窺鏡是檢查腸道的常用工具,每次檢查會產(chǎn)生數(shù)以萬計的圖像。腸道疾病的診斷需要醫(yī)生高強度地分辨大量視頻幀,即使是經(jīng)驗豐富的醫(yī)生也會因為疲勞導致漏檢誤檢,因此借助計算機診斷系統(tǒng)來降低誤診率是非常有必要的[3]。
隨著深度學習的發(fā)展,很多基于深度學習的腸胃病變分類方法被提出來。阿依木克地斯等[4]將腸鏡圖像輸入卷積神經(jīng)網(wǎng)絡(CNN),采用端到端的訓練方式,最高達到95.27%的息肉分類準確率;Zeng等[5]將Xception、ResNet和DenseNet三個預訓練模型融合對潰瘍性直腸炎圖像進行分類,實現(xiàn)了97.93%的分類準確率;Alaskar等[6]使用GoogLeNet和AlexNet模型在ImageNet數(shù)據(jù)集上進行預訓練,使用網(wǎng)絡參數(shù)的最佳組合高精度地分類出潰瘍。這些方法可以有效地分類內(nèi)窺鏡圖像。然而,為了更高效地提取圖像特征,研究人員試圖將注意力機制與卷積神經(jīng)網(wǎng)絡結(jié)合起來。注意力機制模型被廣泛應用于各種深度學習任務,如分割、分類等領域。它可以快速掃描圖像,類似于人眼觀察物體的方式,捕獲需要鎖定的區(qū)域。目前已經(jīng)開發(fā)出具有不同結(jié)構(gòu)和特征的注意力機制,將其應用于圖像處理任務中并取得了優(yōu)異的結(jié)果[7-9]。鞏稼民等[10]對殘差網(wǎng)絡ResNet進行改進并嵌入注意力機制SE模塊實現(xiàn)慢性萎縮性胃炎的分類;Cao等[11]將通道注意機制集成到殘差網(wǎng)絡ResNet中以提取圖像特征,然后采用基于改進的SVM(支持向量機)分類器進行息肉圖像的分類,達到了98.4%的分類準確率。
本文在以上研究的基礎上,結(jié)合數(shù)據(jù)增強和遷移學習策略提出一種基于ConvNeXt網(wǎng)絡模型的分類方法,并在該模型中引入注意力機制CA(CoordAttention),同時使用Polyloss損失函數(shù)優(yōu)化模型,實現(xiàn)小樣本下的潰瘍和息肉內(nèi)窺鏡圖像的精確分類。
為了提高內(nèi)窺鏡圖像分類準確率,采用了一種微調(diào)ConvNeXt模型的算法,具體流程如圖1所示。由圖1可知,改進ConvNeXt模型圖像分類主要工作為:首先需對內(nèi)窺鏡圖像進行預處理操作,包括調(diào)整數(shù)據(jù)集圖像分辨率大小和修復圖像的光斑;其次內(nèi)窺鏡圖像進行數(shù)據(jù)擴增,包括內(nèi)窺鏡圖像水平垂直翻轉(zhuǎn);然后結(jié)合遷移學習在引入注意力機制CA的ConvNeXt模型上進行訓練,并在驗證集上對模型的性能進行評估;最后,通過預測腳本對輸入的圖像進行分類。
圖1 基于改進ConvNeXt模型的圖像分類流程圖
首先,裁剪數(shù)據(jù)集圖像。由于內(nèi)窺鏡圖像的周圍存在黑框,這一部分沒有包含圖像的特性,并且會影響光斑修復操作的結(jié)果,所以將其統(tǒng)一裁剪掉。
其次,修復數(shù)據(jù)集圖像光斑。針對內(nèi)窺鏡采集照片時會受到光照的影響產(chǎn)生光斑,從而影響網(wǎng)絡的注意力導致誤檢的問題,提出一種光斑修復算法,先對內(nèi)窺鏡圖像的光斑部分進行檢測并生成mask掩膜,然后去除光斑并用周圍的像素值代替。具體算法步驟:①圖像閾值分割生成mask掩膜,本文使用的閾值范圍是200~255;②使用opencv自帶的圖像修復函數(shù)INPAINT_TELEA實現(xiàn)圖像的修復,其中INPAINT_TELEA函數(shù)會對位于點附近、邊界法線附近和邊界輪廓上的像素賦予更多權重,一個像素完成修復以后,它將使用快速行進的方法移動到下一個最近的像素進行修復。
最后,調(diào)整數(shù)據(jù)集圖像的分辨率。由于數(shù)據(jù)集中圖片的分辨率不一致,對模型的訓練有一定的影響。因此,為了保持網(wǎng)絡輸入的一致性,將內(nèi)窺鏡圖像的分辨率統(tǒng)一調(diào)整為224×224像素。通過上述圖像預處理方法后的圖像與原始圖像之間的比較如圖2所示。從圖2圖像預處理前后的對比可以看出,使用所提出的預處理方法對內(nèi)窺鏡圖像進行預處理后,圖像的光斑被消除,圖像的病變更加明顯,提高了后續(xù)網(wǎng)絡模型學習數(shù)據(jù)集的效率,并在一定程度上提高了算法的魯棒性。
圖2 圖像預處理
在深度學習中,相同訓練條件下,大的樣本量更有利于模型的訓練。由于本文所使用數(shù)據(jù)集比較小,為了防止過擬合,使用了一種數(shù)據(jù)增強方法。該方法隨機采用水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)以及水平垂直翻轉(zhuǎn)相結(jié)合這3種數(shù)據(jù)增強策略,保證擴增圖像真實性的同時提高模型的泛化性能和魯棒性。數(shù)據(jù)增強效果圖如圖3所示。
圖3 數(shù)據(jù)增強
(1)預訓練模型。采用ConvNeXt純卷積神經(jīng)網(wǎng)絡作為預訓練模型,ConvNeXt從ResNet出發(fā),依次從宏觀設計、深度可分離卷積、逆瓶頸層、大卷積核、細節(jié)設計這5個角度依次借鑒Swin Transformer思想,然后在ImageNet上進行訓練和評估,最終得到ConvNeXt的核心結(jié)構(gòu)[12]。ConvNeXt有5個版本:ConvNeXt-T、ConvNeXt-S、ConvNeXt-B、ConvNeXt-L、ConvNeXtXL。本文將選擇ConvNeXt-T作為預訓練模型,ConvNeXt-T結(jié)構(gòu)圖如圖4所示。
圖4 ConvNeXt-T模型結(jié)構(gòu)圖
(2)改進的模型。雖然CNN可以獲得內(nèi)窺鏡圖像的特征信息,但無法提取一些關鍵信息。傳統(tǒng)的注意力機制有SENet、CBAM等,其中SENet主要關注通道上的信息而忽略了位置信息;CBAM將通道注意力機制和空間注意力機制進行結(jié)合,現(xiàn)有實驗表明,其性能優(yōu)于SENet[13],但是CBAM對病變的關注不如CA注意力機制,CA不僅捕獲跨通道的信息,還能捕獲方向感知和位置敏感信息,這有助于模型更準確地定位和識別感興趣的對象,從而實現(xiàn)更高的分類準確率。因此,本文在ConvNeXt網(wǎng)絡結(jié)構(gòu)中添加了CA[14]注意力機制。注意力機制模塊作為一個即插即用的模塊,可以集成在任何特征圖后面,但是由于CA模塊的權值具有隨機初始化的特點,如果加在網(wǎng)絡的主干部分會破壞網(wǎng)絡主干部分的權值,并且網(wǎng)絡所使用的預訓練權重會失去作用,所以改進的模型將CA模塊添加到ConvNeXt的非主干部分。將ConvNeXt網(wǎng)絡的最后一個ConvNeXt Block作為輸入特征輸入CA模塊,CA模塊得到的輸出結(jié)果輸入到ConvNeXt網(wǎng)絡的全局池化層進行后續(xù)的分類。CA集成到ConvNeXt網(wǎng)絡中的結(jié)構(gòu)如圖5所示。其中,C代表通道數(shù);H代表高度;W代表寬度;r是用于控制塊大小的縮減率。圖5中CA模塊首先對輸入特征沿著水平和垂直方向進行1維平均全局池化,然后拼接起來進行卷積;其次,經(jīng)過BN+非線性激活函數(shù)后,將特征圖分割開來分別進行卷積,同時關注水平和垂直方向,然后進入Sigmoid函數(shù);最后得到的兩個注意力圖就能夠很好地反映出感興趣的對象是否存在于相應的行和列中,能夠準確地定位出目標對象的位置。
圖5 CA集成到ConvNeXt網(wǎng)絡中的結(jié)構(gòu)圖
(3)遷移學習。由于醫(yī)學圖像數(shù)據(jù)集較小,訓練深度學習模型比較困難并且訓練后模型的泛化能力較弱,因此使用遷移學習的方法。遷移學習首先是在存在大量數(shù)據(jù)的源域(通常是ImageNet數(shù)據(jù)集)上進行訓練得到預訓練權重,然后通過在相關但不同的目標域上訓練并且微調(diào)預訓練權重來實現(xiàn)的。本文使用ConvNeXt-T網(wǎng)絡在ImageNet-1k數(shù)據(jù)集上的預訓練權重。首先,由于添加了注意力機制,網(wǎng)絡最后3層(Global Avg Pooling,Layer Norm,Linear)的預訓練權重失去作用,因此要將其刪除。其次,由于ImageNet-1k數(shù)據(jù)集有1 000個類別,本文使用的內(nèi)窺鏡數(shù)據(jù)集只有3個類別,所以需要刪除最后一個全連接層,取而代之的是適合內(nèi)窺鏡圖像分類的全連接層。最后,訓練網(wǎng)絡所有的權重。微調(diào)后網(wǎng)絡最后幾層如圖6所示。
圖6 微調(diào)后的網(wǎng)絡最后幾層結(jié)構(gòu)圖
(4)損失函數(shù)。為了進一步優(yōu)化模型,將Polyloss損失函數(shù)應用在所提出的模型中。Polyloss是一種將分類損失函數(shù)加入泰勒展開式的損失函數(shù)。Polyloss損失函數(shù)由標準交叉熵損失函數(shù)修改而來。交叉熵損失函數(shù)如式(1)所示:
lossce=-ylogy′-(1-y)log(1-y′),
(1)
式中,y是標簽,y′是預測值。
交叉熵損失函數(shù)的泰勒展開式如式(2)所示。
(2)
式中,Pt表示目標標簽預測的概率。
Polyloss損失函數(shù)僅僅修改了交叉熵損失中的第一個多項式系數(shù),如式(3)所示:
(3)
式中,ε1是交叉熵損失中的第一個多項式系數(shù),為了達到最佳效果,需要針對不同的任務和數(shù)據(jù)調(diào)整這個值,最佳值可以通過超參數(shù)調(diào)整找到。所提模型通過實驗選擇最優(yōu)ε1=1。
本文選用準確度、精度、召回率和F1分數(shù)4個指標來評估和分析內(nèi)窺鏡圖像分類性能,其中,準確性(Accuracy)表示模型預測所有樣本中被正確分類樣本所占比例;精度(Precision)是指模型預測的所有Positive中預測正確的比例;召回率(Recall)表示所有真實Positive中預測正確的比例;F1分數(shù)表示精確率和召回率的調(diào)和平均數(shù)。各指標計算式如式(4)~(7)所示:
(4)
(5)
(6)
(7)
式中,TP表示被模型預測為正類的正樣本;TN表示被模型預測為負類的負樣本;FP表示被模型預測為正類的負樣本;FN表示被模型預測為負類的正樣本。
為驗證基于改進ConvNeXt模型圖像分類算法的可行性和有效性,使用Pytorch深度學習框架,采用的硬件配置為Windows 11操作系統(tǒng),AMD R7 CPU,GTX3060顯卡,6G顯存。首先利用Hyper Kvasir數(shù)據(jù)集對所提方法進行了訓練和驗證,并利用收斂速度較快的AdamW優(yōu)化器對模型進行了優(yōu)化。模型訓練迭代次數(shù)設置為50,批量大小設置為4,AdamW優(yōu)化器的初始學習速率設置為0.000 5,weight_decay設置為0.005。
本文使用的數(shù)據(jù)集是公開的Hyper Kvasir數(shù)據(jù)集中的部分圖像,包含1 500張圖像,其中正常腸道、息肉、潰瘍性結(jié)腸炎各500張。此數(shù)據(jù)集較小,這對于模型的訓練更具有挑戰(zhàn)性。其中20%作為驗證集,80%作為訓練集。為了防止過擬合,對訓練集使用數(shù)據(jù)增強的方法擴增為正常腸道、息肉、潰瘍性結(jié)腸炎圖像各600張,共1 800張,用來訓練模型。
使用Cross Entropy loss、Focal loss以及Polyloss損失函數(shù)分別訓練所提出的模型,損失函數(shù)曲線如圖7所示。從圖7可以看出,Polyloss損失函數(shù)大概在迭代41次左右趨于穩(wěn)定,Cross Entropy loss損失函數(shù)以及Focal loss損失函數(shù)在迭代45次左右趨于穩(wěn)定。并且,相對于Cross Entropyloss以及Focal loss損失函數(shù),Polyloss損失函數(shù)在訓練時損失變化更加穩(wěn)定,魯棒性更強。
圖7 不同損失函數(shù)的損失曲線
為了進一步驗證改進后模型的優(yōu)越性,在相同訓練條件下,使用ConvNeXt原模型、添加注意力機制CBAM的模型,以及添加CA注意力機制的模型進行對比實驗,其結(jié)果如表1所示。由表1可以看出,添加CA注意力機制的模型的準確率比原模型準確率高1.6%,比添加注意力機制CBAM的準確率高1.0%,并且使用本文模型在驗證集上能夠準確識別正常腸道,沒有把病變檢測為正常的現(xiàn)象,不會導致漏檢,具有一定的臨床應用潛力。3個模型的Grad-CAM[15]可視化如圖8所示。由圖8可以看出原始ConvNeXt模型以及添加CBAM注意力機制模型的特征圖略顯粗糙,專注于更多不相關的區(qū)域。相比之下,改進后的模型可以更準確地聚焦病變在內(nèi)窺鏡圖像中的位置,在遇到大面積的潰瘍性結(jié)腸炎時,也能相對準確的關注所有病變區(qū)域。
表1 添加不同注意力機制后的比較
圖8 Grad-CAM可視化
為了測試該模型的分類性能,將經(jīng)典網(wǎng)絡模型ResNet34、MobileNetV3、EfficientNetV2與改進后的模型進行了實驗分析。在相同條件下進行訓練,實驗結(jié)果如表2所示。由表2可以看出,改進后的模型相對于ResNet34、MobileNetV3、EfficientNetV2準確率分別提升1.6%、5.6%、4.5%,從每種病變的Precision、Recall以及F1-Score指標來看,改進的模型基本優(yōu)于其他模型,說明改進后模型在內(nèi)窺鏡圖像分類上的優(yōu)越性。
表2 與經(jīng)典深度學習模型對比試驗
為了進一步證明該模型的普遍適用性,將該方法應用于另一個內(nèi)窺鏡圖像分類數(shù)據(jù)集Kvasir。該數(shù)據(jù)集有8個類別,每個類別1 000張圖片共8 000張,其中80%作為訓練集20%作為驗證集。使用各類評估指標的宏平均作為總數(shù)據(jù)集的評價指標。并且與其他文獻中內(nèi)窺鏡圖像分類的深度學習模型進行了比較,結(jié)果如表3所示。在表3中,使用了與文獻中其他比較算法相同的數(shù)據(jù)集,不難看出,該方法在4個常用評價指標中取得了最佳效果。其中,本方法的準確率相對于文獻[16]~[18]分別提升3.5%、0.9%、3.7%。驗證了該方法的有效性和可行性,并表明改進方法在內(nèi)窺鏡圖像分類領域具有良好的前景。
表3 與其他現(xiàn)有方法對比試驗
本文研究了一種結(jié)合注意力機制的卷積神經(jīng)網(wǎng)絡的內(nèi)窺鏡圖像分類方法,通過選擇ConvNeXt模型作為預訓練模型,結(jié)合遷移學習微調(diào)網(wǎng)絡模型結(jié)構(gòu),并添加注意力機制構(gòu)成一種端到端的分類模型,同時在數(shù)據(jù)預處理階段探討一種光斑修復方法對內(nèi)窺鏡圖像高光部分進行修復。實驗結(jié)果表明,改進后模型的分類性能有明顯提高,為潰瘍性結(jié)腸炎以及息肉的診斷提供了幫助。但是所提模型只對病變進行分類,沒有實現(xiàn)病變精準定位,如何實現(xiàn)內(nèi)窺鏡息肉以及潰瘍位置的精準定位將是接下來的重點研究工作。