?

基于卷積神經網絡的結腸鏡圖像息肉識別

2022-11-17 06:54胡珂立洪方雨
關鍵詞:結腸鏡息肉卷積

董 煦 胡珂立 洪方雨

(紹興文理學院 計算機科學與工程系, 浙江 紹興 312000)

結直腸息肉是一種結直腸黏膜表面突出到腸腔內的隆起狀病變,在未確定性質之前均稱為息肉.當前多項臨床研究顯示,息肉在特定條件下發生惡變率較高,也是誘發結直腸癌的主要原因[1].據Globocan’2020信息,結直腸癌是全球第三大癌癥,是第二大致死癌癥.在中國,結直腸癌的致死率也排在前列.根據2019年國家癌癥中心發布的全國癌癥統計數據,我國十大最常見癌癥中結直腸癌排名第三,僅次于肺癌和胃癌.據2019年浙江省腫瘤醫院公布的最新一期《2019年浙江省腫瘤登記年報》顯示,結直腸癌排名第四,僅次于肺癌、女性乳腺癌、甲狀腺癌.其中在男性癌癥發病中結直腸癌排名第二.結直腸癌的最初表現是腸息肉,結腸鏡檢查也是結直腸癌篩查的金標準.通過結腸鏡篩查并進行必要的腸息肉摘除是防止結直腸癌的有效方法,提前發現息肉并在息肉轉化為癌細胞前將其摘除尤為重要.結腸鏡篩查主要依賴醫生臨床經驗,僅依靠醫生仍可能有6%~27%的息肉漏檢[2].結腸鏡檢查結合病例活檢是確認息肉組織學類型的金標準,由于息肉圖像存在不同程度的不確定性,醫師很有可能無法用肉眼進行鑒別[3].研究發現,早期每提高1%的息肉檢測率,并進行必要的摘除,結直腸癌轉化率將降低3%[4].

采用計算機智能分析輔助結腸鏡篩查是提升息肉檢出率、降低漏檢率的有效手段.息肉成像存在類內差異大、類間差異小等挑戰,為息肉自動檢測帶來巨大挑戰.傳統機器學習算法已被用于結腸鏡圖像智能分析[5-8].Yuan等[5]將自下而上與自上而下機制結合的顯著性檢測算法用于息肉區域自動識別,Tajbakhsh等[7]利用形狀和上下文信息在結腸鏡圖像序列中進行智能檢測.傳統算法需要根據息肉特征人為設計特征,并制定某種規則或者利用分類器進行檢測.人為特征設計主要來自研究人員經驗.由于息肉差異性極大,人為設計特征難以適應.近年,卷積神經網絡在圖像分析等多個領域中表現出了遠超傳統方法的性能.將卷積神經網絡引入結腸鏡圖像識別,輔助人工盡早發現并對息肉進行及時處理可以大大降低腸息肉轉化概率.該項研究不僅具有巨大挑戰性和研究意義,還有很大的醫學和現實意義[9-11].Yuan等[12]將旋轉不變性和圖像相似度引入,提出了用于內窺鏡圖像識別的RIIS-DenseNet網絡,Fang等[13]將邊緣信息引入,將網絡分為區域提取和邊緣提取兩大分支,通過分支網絡信息交互提升了息肉區域提取精度.本文針對人工特征設計困難、息肉成像差異大等問題,瞄準圖像級息肉檢測識別,針對VGG16[14]、ResNet18[15]、GoogLeNet[16]、EfficientNet[17]、SeNet[18]五種卷積神經網絡進行了腸息肉檢測適應性研究,對五種網絡識別結果進行了分析,為圖像級息肉自動篩查提供支撐.

1 網絡結構及模型訓練

1.1 GoogLeNet網絡結構

GoogLeNet是一種典型的遷移應用學習的卷積神經網絡,由輸入層、多卷積層、多歸一化層、多池化層、多采樣層和輸出層構成,結構如圖1所示.

圖1 GoogLeNet網絡結構

GoogLeNet是基于Inception模塊的深度神經網絡模型,網絡中的Inception Moudle可以擴展網絡深度.GoogLeNet采用了多層傳感和局部最優的系數結構替代普通卷積神經網絡中的廣義線性結構和全連接方式.

1.2 Incepting結構

在進行模型訓練時,會遇到網絡性能不足等情況,提升網絡性能最直接的辦法是增加網絡深度和寬度,但是過多的增加網絡深度和寬度會帶來很多問題,如參數過多,產生過擬合.網絡越大,參數越多,計算復雜度越大,導致網絡難以應用.網絡深度加深易出現彌散問題,難以優化模型.在增加網絡深度和寬度的同時減少參數是一種解決方案.實踐證明全連接變為稀疏連接后計算量并不會有質的提升,在這種需求下,Inception方法被提出.

GoogLeNet可較好解決網絡層數增加而導致地過擬合、梯度爆炸和梯度消失等問題.GoogLeNet采用Inception結構.Inception結構把多個卷積和池化操作組裝成一個網絡模塊,如圖2所示.相比于VGG等傳統網絡結構,GoogLeNet在一層網絡中存在多個不同尺度的卷積核,可以更高效地利用資源,得到更多特征,從而優化訓練結果.

圖2 Inception模塊

1.3 激活函數

激活函數的主要作用是引入非線性因素.在卷積神經網絡中,卷積操作對像素點進行線性操作.但樣本不一定線性可分,為了解決這個問題,需要引入非線性因素強化網絡學習能力.

GoogLeNet采用的激活函數為ReLU函數.深度學習中梯度消失是致命問題,在使用Sigmod等飽和激活函數下這種情況特別突出,而ReLU函數具有線性、非飽和的特點,訓練速度會快很多,ReLU函數如式(1).

F(x)=max(0,x)

(1)

1.4 損失函數

損失函數(Loss Function)是用來估計模型預測值與真實值不一致程度的函數,是一個非負實值函數.本文采用Softmax loss函數作為損失函數:

(2)

L是損失,Sj是Softmax的輸出向量S的第j個值,表示此樣本是第j個類別的概率,y是一個1×T的向量,只有一個值是1,其他T-1個全是0.

2 實驗

2.1 數據集

數據樣本來自200余位病人結腸鏡圖像,數據集共有2 100張圖像,其中有息肉圖像1 100張,無息肉圖像1 000張.

2.2 數據預處理

實驗時將圖像統一縮放為32×32,并且對圖像進行隨機水平翻轉和隨機垂直翻轉處理來進行數據增強,按照70%訓練集和30%測試集的方式進行劃分.

在數據集中,圖像從視覺上可分為三種,第一種有息肉且明顯,第二種有息肉但不明顯,第三種無息肉,如圖3、圖4及圖5.

圖3 有息肉且很明顯 圖4 有息肉且不明顯 圖5 無息肉

2.3 實驗配置

在進行實驗時,訓練集共800個epoch,每個epoch都會檢測訓練集圖片,得出準確率(Accuracy)、精確率(Precision)、召回率(Recall),每五個epoch生成一個模型用于驗證測試集,最后得出160組模型用于測試集的測試,測試集得出160組數據.

實驗采用帶動量(momentum)的隨機梯度下降(SGD)優化算法,參數配置:學習率=0.01,momentum=0.9,weight_decay=5e-4.設置權重衰減(weight_decay)的作用是調節模型復雜度對損失函數的影響,目的是為了防止過擬合,動量是梯度下降中常用的加速技術,目的是使模型加速收斂,抑制梯度下降時上下振蕩的情況,帶動量的SGD公式如下:

vi=momentum*vi-1-lr*dx(i≥1)

(3)

xi=xi-1+vi-1(i≥1)

(4)

其中v是梯度更新量,momentum為動量系數,lr為學習率,x是梯度,當本次梯度下降-lr*dx的方向與上次更新量v方向相同時,則這次下降的幅度就會加大,加速收斂.

2.4 測試指標

采用準確率、精確率、召回率、F1和F2作為測試指標,式(5)至式(7)中TP、TN、P、N、FP、FN分別指將正類預測為正類數、將負類預測為負類數、正類數、負類數、將負類預測為正類數、將正類預測為負類數.

(1)準確率:分類正確的樣本數和樣本總數的比值.此外,分類錯誤的樣本數占樣本總數的比例稱為“錯誤率”(error rate).

(5)

(2)精確率:即正類預測正確的個數和所有預測成正類樣本數的比值.

(6)

(3)召回率:即預測正類樣本和原來一共正類樣本數的比值.

(7)

五種網絡F1、F2結果對比圖如圖6、圖7.

圖6 五種網絡F1對比

圖7 五種網絡F2對比

2.5 訓練時網絡性能對比

對比五種網絡的準確率、精確率、召回率,如圖8至圖10所示.從訓練集結果中可以看出GoogLeNet的準確率、精確率、召回率明顯高于其他四種網絡模型.

圖8 五種網絡訓練集準確率對比

圖9 五種網絡訓練集精確率對比

圖10 五種網絡訓練集召回對比

2.6 測試集模型性能

各算法在測試集上的準確率、 精確率、 召回率對比結果如圖11至圖13所示.

圖11 五種網絡測試集準確率對比

圖12 五種網絡測試集精確率對比

圖13 五種網絡測試集召回對比

由圖11至圖13可以看出,在準確率方面: GoogLeNet達到了99.84%, 比VGG16高0.79%,比ResNet18高11.59%.說明GoogLeNet的識別準確率(ACC)要優于其他四種網絡.在精確率方面:GoogLeNet達到了100%,比VGG16高0.91%,比ResNet18高7.62%.說明GoogLeNet的識別精確率要優于其他四種網絡.在召回率方面:GoogLeNet達到了99.7%,比SeNet高0.31%,比ResNet18高15.15%.說明GoogLeNet的識別召回率要優于其他四種網絡.

通過VGG16、ResNet18、GoogLeNet、EfficientNet和SeNet五種網絡模型比較分析, GoogLeNet在2 100張圖像規模的數據集中達到了準確率99.84%、精確率100%、召回率99.7%的性能, 其準確率、精確率、召回率等評價指標優于其他模型.

3 實驗分析

3.1 定性分析

表1選取了8張結腸鏡圖像,其中第1至4列是有息肉圖像,息肉成像差異較大,第5至8列是無息肉圖像,有光滑、褶皺等不同的結腸鏡圖像.對比結果如表1所示. 可以看出GoogLeNet模型識別結果全部正確,VGG16模型識別第五列結腸鏡圖像錯誤,EfficientNet模型識別第四列、第八列結腸鏡圖像錯誤,ResNet18模型識別第二列、第五列、第八列結腸鏡圖像錯誤,SeNet模型識別第三列結腸鏡圖像錯誤.

表1 VGG16、ResNet18、GoogLeNet、EfficientNet、SeNet定性分析表

3.2 誤識別結果分析

雖然GoogLeNet網絡相較于其他網絡模型具有更高的準確率,準確率達到了99.84%,但在一萬張圖像檢測中,平均還會有16張檢測錯誤.測試集共有630張圖像,準確率99.84%表示630張圖像有1張識別錯誤,收集準確率最高一組前后各五組識別錯誤圖像,將錯誤樣本進行整理匯總,觀察錯誤樣本,分析發現識別錯誤的有息肉圖像主要是息肉較小且息肉顏色與周圍極度相似的圖像(圖A至圖D), 識別錯誤的無息肉圖像主要是結腸鏡圖像中存在光滑褶皺的圖像(圖E至圖J),光滑褶皺跟息肉較為相似,比較難以識別.兩種圖像即使在進行人工識別時都難以區分,漏檢概率較大.

圖J

圖E

圖D

圖A

通過對誤識別數據進行分析發現, 雖然GoogLeNet在對腸息肉圖像識別上已經取得了不錯的識別效果,但在息肉細節特征的提取以及相似度較高的圖像識別上,仍有較大的進步空間.

4 小結

針對腸息肉智能識別工作,本文將卷積神經網絡應用于腸息肉圖像識別中.針對GoogLeNet、VGG16、ResNet18、EfficientNet、SeNet五種卷積神經網絡模型進行腸息肉檢測適應性研究,觀察了卷積神經網絡訓練過程,對訓練集和驗證集的準確率、精確率、召回率進行對比分析,結果表明,GoogLeNet識別效果優于其他模型,可為結腸鏡輔助息肉篩查提供支撐.錯誤樣本分析為后續息肉檢測自動化和息肉識別網絡模型改進提供有效支撐.在未來工作中,我們將從息肉邊緣等多類特征融合和網絡不同級特征交互方面展開研究,以進一步提升識別性能.

圖B

圖C

圖F

圖G

圖H

圖I

猜你喜歡
結腸鏡息肉卷積
結腸鏡治療前腸道清潔準備致水中毒一例報告
基于3D-Winograd的快速卷積算法設計及FPGA實現
白兆芝治療胃息肉經驗
從濾波器理解卷積
你真的了解子宮內膜息肉嗎
基于傅里葉域卷積表示的目標跟蹤算法
結腸鏡下治療腸息肉的臨床療效觀察
175 例結腸鏡診斷和治療結腸息肉的臨床分析
ER、PR、Ki-67在絕經后子宮內膜息肉中的表達
減輕結腸鏡操作中腹痛的研究進展
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合