?

基于改進Inception-v3網絡的肺炎檢測方法

2023-12-21 06:14蒲秋梅田景龍邢容暢趙麗娜
關鍵詞:胸片殘差卷積

蒲秋梅,田景龍,邢容暢,趙麗娜

(1.中央民族大學信息工程學院,北京 100081;2.中國科學院高能物理研究所多學科研究中心,北京 100049)

0 引言

X光胸片(簡稱胸片)在臨床上應用廣泛,是目前肺炎診斷的常用方法,也是用于判斷肺炎的重要標準.肺炎患者的胸片中會因毛細血管的擴張與充血而顯示出更多的肺部紋理,表現出透亮的支氣管影以及一些片狀的白色斑點,嚴重者會出現磨玻璃影或肺部實變[1].醫生能夠通過胸片了解患者病情并制定治療方案,人工閱片要求醫生具有豐富的診斷經驗,具有一定的主觀性,容易發生誤診或漏診,因此使用計算機進行自動讀片診斷具有重要的意義.基于深度學習的X光胸片疾病檢測很早就已有相關研究,2016年Hwang等[2]通過弱監督方法與遷移學習實現了X光胸片圖像ROI區域的提取與分類.2017年Kumar等[3]提出了一種基于深度卷積神經網絡(DCNN)的模型能夠通過X光胸片對14種疾病進行分類.許多學者認為可以使用大量數據訓練的深度學習模型準確檢測出X光胸片中的各種異常,能夠為全球放射學工作流程和公共健康篩查帶來巨大的價值[4].2019年末新型冠狀病毒感染疫情暴發后,越來越多的國內外研究人員投入到基于X光芯片的肺炎診斷研究中,Asnaoui等[5]通過實驗對比了多種卷積神經網絡模型,發現Resnet50[6]、MobileNet_V2[7]和Inception_Resnet_V2[8]的微調版本在X光胸片肺炎二分類任務中準確率超過96%,表現出非常令人滿意的性能.肺炎二分類即通過X光胸片區分是否為肺炎陽性,復雜度相對較低.Rahman等[9]通過深度卷積神經網絡與遷移學習實現了肺炎的三分類預測,即區分正常、病毒性肺炎與細菌性肺炎,準確率達到93.3%,三分類相較于二分類更加復雜,正常樣本與肺炎樣本在圖像上具有明顯區別,而病毒性肺炎與細菌性肺炎區別較小,因此對肺炎種類進行細分相對困難.肺炎四分類任務(正常、普通病毒性肺炎、新型冠狀病毒感染、其他肺部感染)相較于三分類任務復雜度更高,但新型冠狀病毒感染相較于其他肺炎具有更強的傳染性,能夠通過X光實現肺炎類別的準確檢測不論是對疫情防控還是對于制定詳細的治療方案都具有重要意義,因此有必要對四分類X光肺炎檢測進行深入研究.如何提升卷積網絡對于不同類別肺炎的分類效果,在保持肺炎識別準確度的前提下提升肺炎種類的細分能力是本文關注與研究的重點.

1 理論基礎

1.1 卷積神經網絡

傳統的機器學習方法實現分類任務需要先通過人類的先驗知識對原始數據進行預處理與特征提取,再對提取到的特征進行分類預測,因此特征提取的結果將直接影響最終的預測結果,甚至特征選取的好壞比采用的算法更為重要.卷積神經網絡可自動提取數據特征而不需要人工干預,是目前圖像分類任務最常用的架構,卷積神經網絡由卷積層、池化層以及全連接層組成.一個卷積層中可包含多個卷積核用于提取圖像特征,原始圖像輸入后經卷積層獲得多個特征圖,可通過調節卷積核的尺寸、填充寬度、卷積步長以及卷積核數量控制輸出圖像的尺寸與通道數.在卷積層后通常會使用池化層對圖像進行下采樣降低圖像的分辨率,常用方法為最大池化與平均池化,池化層可有效降低數據維度,減少參數量與運算量,并在一定程度上防止過擬合.卷積層與池化層主要用于提取圖像特征與降低數據維度,全連接層作為分類器主要用于對提取到的特征進行分類,通過組合卷積層、池化層以及全連接層可實現端到端的圖像分類.

1.2 Inception網絡

2014年Szegedy等[10]提出一種新的深度學習結構GoogLeNet,該網絡由Inception模塊堆疊而成,與早期的AlexNet[11]、VGG[1]等網絡相比能夠更加高效地利用計算資源,以相同的計算量提取到更多有效的特征從而提升訓練效果,在ImageNet大規模視覺識別挑戰賽ILSVRC-2014中獲得分類與檢測任務的冠軍.Inception體系結構的主要特點是提高了網絡內計算資源的利用率.

1.3 殘差連接

增加網絡的深度能夠使模型具有更強的非線性表達能力,從而能夠表達更復雜的特征,因此適當加深網絡能夠在一定程度上提升模型性能,但因網絡的加深引發的梯度消失或梯度爆炸等問題容易導致淺層網絡參數更新困難.針對上述問題文獻[12]提出深度殘差網絡ResNet,利用殘差連接人為跳過網絡中的某些層以減輕網絡退化.殘差連接結構能夠在不增加過多計算量的前提下提升網絡性能,且整合到其他網絡模型中相對容易,目前已在眾多領域得到廣泛應用,如?;莸萚13]使用改進的殘差網絡實現了鐵路隧道裂縫檢測.莫琦嵐等[14]利用ResNet50神經網絡模型檢測新生兒肺炎,在驗證集上分類準確率達到91.18%.

1.4 注意力機制

人類的視覺系統可選擇加強重要的信息并忽略次要信息而免受干擾,卷積神經網絡通過融合每層局部感受野內的空間與通道信息以構建信息特征,在卷積神經網絡中引入注意力機制對輸入的特征圖添加權重能夠加強重要的特征,從而提升網絡性能,卷積神經網絡中常用的注意力機制主要可分為通道注意力機制與空間注意力機制.2019年Hu等[15]提出Squeeze-and-Excitation Networks(SENet),通過Squeeze-and-Excitation(SE)模塊顯示了建模通道之間的相互依賴關系,使網絡能夠自適應地校準各通道的特征響應,以微小的計算成本極大地提升了網絡性能,取得ILSVRC 2017分類競賽的第一名.空間注意力模型的本質是一種自適應的空間區域選擇機制,定位圖像中包含重要信息的區域并對其進行變換或賦加權重,如Google DeepMind提出的Spatial Transformer Network(STN)[16]與Oktay等[17]提出的注意力門控單元(Attention Gate,AG),前者通過顯式的過程學習對平移、旋轉、縮放等不變性,后者專注于目標區域同時抑制無關區域的特征激活.

有許多研究嘗試將兩種注意力機制相結合,如GCNet[18]、CBAM[19]等,但存在計算量大、網絡收斂困難等問題.2021年文獻[20]在CNN中引入了一種輕量的注意力模塊Shuffle Attention(SA模塊),該模塊將輸入的特征圖劃分為多個組進行分組卷積以降低運算量,使用Shuffle單元將通道注意力與空間注意力集成到每一組中,并借鑒ShuffleNet[21]的通道混洗(Channel Shuffle)實現不同組間的信息交換.

1.5 分組卷積與通道混洗

AlexNet最早引入分組卷積,通過將卷積網絡分布在兩個GPU上并行運算以解決早期GPU內存資源不足的問題,每個GPU分配一半數量的卷積核進行卷積運算.網絡多數層以同一個GPU上的特征圖作為輸入,僅有部分層同時輸入兩個GPU上的特征圖進行運算實現組間的信息交流,而具體在何處整合兩個GPU上的信息需要通過多次實驗確定.常規卷積的卷積核維度與輸入特征圖維度相同,卷積核數量等于輸出特征圖通道數,分組卷積通常將特征圖在通道維度上劃分為g組,同時將卷積核也劃分為g組,每個卷積核僅與所在組內的特征圖進行運算.分組卷積可降低卷積核維度從而減少網絡參數量,但同時會因組間的特征圖相互隔離而導致網絡缺乏組間信息交換,進而可能導致網絡性能下降.ShuffleNet提出通道混洗機制打亂特征圖通道順序.如圖1所示,使得再次進行分組時每個組中能夠同時包含前一次分組卷積中不同組的特征圖,從而實現組間的信息交流.

圖1 分組卷積及通道混洗示意圖

2 算法

2.1 總體研究方案

本文主要對基于Inception-v3網絡的改進模型在X光胸片圖像四分類任務上的性能進行了研究,總體流程如圖2所示.由于Inception模塊特殊的結構有利于整合不同感受野特征圖的信息.本文選擇了Inception-v3為主干網絡,并針對不同類別肺炎之間差異較小難以區分的問題在主干網絡的基礎上引入了注意力機制模塊用于增強關鍵信息,提升了模型性能.與原始模型相比在整合后的數據集上本文使用的改進方法具有更高的準確率與召回率.

圖2 總體流程圖

2.2 改進的Inception網絡

2.2.1 改進Inception模塊與殘差連接

最初的Inception模型也被稱為GoogLeNet,引入Inception模塊通過同時使用不同尺寸的卷積核以便更好地捕捉圖像中不同尺寸物體的特征.Inception-v2在最初的Inception模型基礎上進行了改進,采用了分支網絡結構,先將特征圖通過不同的分支進行處理后將輸出在通道維度上進行拼接,此外還引入了Batch Normalize技術用于提升網絡收斂速度.Inception-v3進行了進一步的改進,主要關注如何減小模型容量與計算成本,使用多層小尺寸的卷積核和非對稱卷積替代大尺寸的卷積以達到減少參數量的效果,并在網絡中引入了輔助分類器計算梯度幫助更新淺層網絡的參數,進一步提升網絡性能.此外還有如Inception-v4、Inception-ResNet等改進模型[22]對Inception的基本模塊的結構進行了改進,如修改卷積核尺寸、添加殘差結構等.

Inception模塊中采用了不同大小的卷積核使得同一層的特征圖具有不同大小的感受野,通過拼接可實現不同尺度特征的融合.Inception-v3網絡中共使用了3種不同的Inception模塊,如圖3所示.通過修改Inception模塊中的卷積核尺寸與數量能夠得到更多的改進結構以適應不同的任務需求,本文在網絡中共使用了5種不同結構的Inception模塊,如圖4所示.其中圖4c和4e兩種結構分別與圖3b和3c相同,其他3種結構為Inception-v4中的部分組件,與原Inception模塊結構相似,也采用了非對稱卷積進行卷積核分解以減少參數量,本文使用這5種Inception模塊搭建與torchvision提供的Inception-v3網絡相同的結構作為主干網絡以便使用預訓練參數以提升性能.

圖3 3種不同的Inception模塊

圖4 5種改進Inception模塊

隨著網絡加深淺層模型容易出現梯度消失與梯度爆炸問題使得網絡淺層的參數難以更新,導致模型過擬合,針對這個問題改進的模型在Inception模塊的基礎上引入了殘差連接結構,改進后的殘差模塊Residual Block結構如圖5所示.在Inception模塊的基礎上添加一條支路使用尺寸為1×1的卷積核對輸入特征圖進行處理,使通道數與原始Inception模塊的輸出結果通道數一致后相加作為最終輸出.與Inception-v3類似,Residual Block也具有5種不同的結構,通過將模塊中Inception部分替換為圖3中不同的結構得到.

圖5 引入殘差連接的Inception模塊

2.2.2 SA模塊

圖6 SA模塊

(1)

(2)

(3)

2.2.3 改進模型

使用帶殘差連接結構的Residual Block模塊替換主干網絡Inception-v3中的Inception模塊,并在每個Residual Block模塊后添加SA模塊用于加強特征圖中的關鍵信息,改進后的總體網絡結構如表1所示.網絡淺層使用普通卷積層用于提取圖像的基本特征,深層使用Residual Block與AS模塊處理高級語義信息,最終使用全連接層作為分類器輸出分類結果.

表1 改進的模型結構

2.3 損失函數

交叉熵損失函數(Cross Entropy Loss)由KL散度導出,可以衡量分布之間的不相似程度,是分類任務常用的損失函數,其計算公式為

(4)

3 實驗結果與分析

3.1 實驗設置

本實驗在Windows10操作系統上使用Python編程語言進行相關實驗,實驗基于PyTorch深度學習框架搭建網絡結構,硬件配置:6核Xeon Gold 6142、1塊 RTX 3080,10.5 GB顯存.

使用Kaggle公開數據集進行實驗,訓練集、驗證集與測試集按8∶1∶1的比例進行隨機劃分,實驗通過設置隨機種子數確保每次實驗數據集各類別樣本數量比例相同,控制單一變量對改進算法進行消融實驗并對比分析實驗結果.實驗數據設定輸入圖片尺寸為299×299像素,并通過隨機水平翻轉與小幅度隨機旋轉(±20°)進行數據增強,模型采用Adam優化器,初始學習率設置為0.001,批量大小設定為50,迭代次數為50次,訓練過程中使用早停止策略并動態調整學習率,每輪訓練完成后使用驗證集進行驗證,若驗證集損失連續3輪不下降則將學習率降低為原來的10%,若超過10輪驗證集損失不下降則停止訓練.

3.2 Kaggle肺炎數據集實驗

3.2.1 數據獲取及處理

本文所用于實驗與分析的肺炎四分類數據均來自于Kaggle,由公開數據集COVID-19 Radiography Database[23]與CoronaHack-Chest X-Ray-Dataset[24]構成.COVID-19 Radiography Database數據集包含10 192份正常樣本、1 345份病毒感染樣本、3 616份新型冠狀病毒感染樣本以及6 012份其他肺部感染樣本.CoronaHack-Chest X-Ray-Dataset數據集包含正常樣本1 576份,感染樣本4 334份,其中感染樣本根據感染類型可細分為普通病毒性感染1 497份,新冠病毒感染58份以及其他類型感染2 779份.新型冠狀病毒感染也屬于病毒性肺炎,但數據集中新冠感染與其他病毒感染樣本比例不均衡,考慮到數據不均衡可能對實驗效果產生影響,本文將兩個數據集的數據相結合以減少這兩類樣本數量的差距,如表2所示.

表2 本文所用數據集 份

3.2.2 評價指標

為定量分析各模型的性能,本文主要對于各類別分類結果的準確率(A)與召回率(P)進行了對比.A為

(5)

其中:TTP表示真陽性樣本數,TFP表示假陽性樣本數,A計算值越接近1表示分類效果越好.

R為實際為真的樣本中被預測正確的樣本數所占的比例,能夠反映漏檢比例,該值越接近1表明漏檢的樣本越少性能越好,計算公式為

(6)

其中:TTP表示真陽性樣本數,TFP表示假陰性樣本數.

F1計算公式如式7所示,為A與R兩個指標的調和平均,能夠綜合考慮兩個評價指標,對于多分類問題Macro-F1度量為F1的推廣,即各類別F1的平均數,公式為

(7)

3.2.3 實驗結果分析

使用原始Inception-v3網絡作為Baseline與改進網絡進行對比測試并設計了消融實驗以驗證改進網絡的有效性,在基線網絡的基礎上使用了預訓練模型參數,添加殘差連接、SA模塊進行實驗,表3—5所示為消融實驗各項指標,消融實驗各階段測試集混淆矩陣如圖7所示.混淆矩陣對角線上元素即為各類別預測正確的樣本數,并使用顏色深淺表示數量大小,預測正確樣本越多對角線顏色越深.從圖7中可以看出基于Inception-v3網絡的各模型混淆矩陣都集中于對角線上,因此大部分樣本都能被準確分類,但改進模型相比原始網絡有更多的預測正確樣本,表明改進后各類別的識別精度均有所提升.從實驗結果表3與4中可知,使用預訓練模型參數與SA注意力模塊后的模型總體上準確率最高,相比Baseline準確率從90.31%提升至94.64%,對于病毒性肺炎Baseline+預訓練參數準確率最高,但召回率較低,表明該模型雖然能夠正確區分病毒性肺炎與其他肺炎,但容易產生漏診病例,而在使用預訓練模型參數并同時引入殘差連接與SA模塊后各類別的召回率均得到不同程度的提升,尤其對于肺炎類別的細分(包含病毒性肺炎、新型冠狀病毒感染以及其他類別肺部感染)提升明顯,召回率分別提升了7.20%,2.48%與6.25%,且與不引入SA模塊的其他改進方法(如使用預訓練與殘差連接)相比各類別的召回率也更高,發生漏診的概率較低.綜合考慮模型對于各類別的準確率與召回率對比見表5.由表5可知,添加SA模塊后的模型各類別的F1指標均高于不添加該模塊的模型,因此使用SA模塊的改進模型對于肺炎四分類任務的總體效果更優.上述實驗結果表明在網絡中同時引入通道注意力與空間注意力機制后有助于更好地捕獲不同類別肺炎之間的細微差異,提升了分類精度.

表3 不同模型肺炎識別準確率的對比 %

表4 不同模型肺炎識別召回率的對比 %

表5 不同模型肺炎識別F1的對比

圖7 各模型測試集混淆矩陣

為進一步驗證改進方法的有效性以及探究注意力機制發揮的具體作用,使用梯度加權類激活映射技術(Grad-CAM)[25]可視化了模型網絡在學習過程中重點關注的區域,如圖8所示.

第一列為X光胸片原圖像,第二至六列為本文實驗所用網絡的可視化結果,圖8中顏色偏紅區域即網絡較為關注的區域,可以看出不論是否使用預訓練參數,在不使用SA模塊的情況下Baseline網絡的關注區域都相對分散,無法聚焦于肺部區域,而使用SA模塊的網絡關注區域更加集中聚焦于肺部患病區域,因此在網絡中添加注意力機制后有利于提高網絡對病灶區域細節特征的提取能力,從而更有效地學習病灶區域特征,提高對不同類別肺炎識別的準確性,消融實驗的各項指標也證明了該改進方法的有效性.

4 結論

本文針對X光胸片肺炎診斷問題嘗試在Inception-v3網絡中同時引入通道注意力機制與空間注意力機制進行改進以提升肺炎診斷的準確率.改進方法在Inception-v3主干網絡的卷積層中添加SA-Net模塊對網絡中提取到的特征圖進行處理,引導網絡聚焦于胸片中的病灶位置以便更好地區分不同類別肺炎胸片之間的細微差異,同時主干網絡Inception模塊使用不同尺寸的卷積核獲取具有不同感受野大小的特征圖,有利于整合局部與全局信息,提升網絡分類性能.經實驗測試,引入注意力機制的改進方法對于不同類別的肺炎診斷具有更好的效果.

猜你喜歡
胸片殘差卷積
吃兩百根香蕉相當于拍一次胸片
基于雙向GRU與殘差擬合的車輛跟馳建模
基于3D-Winograd的快速卷積算法設計及FPGA實現
基于殘差學習的自適應無人機目標跟蹤算法
基于遞歸殘差網絡的圖像超分辨率重建
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
高仟伏X線胸片和DR胸片在塵肺病影像診斷中的比較研究
37例血行播散性肺結核的多層螺旋CT與胸片表現分析
平穩自相關過程的殘差累積和控制圖
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合