劉禪奕,黃 丹,薛林雁,王 濤,朱 桃
(1.四川輕化工大學自動化與信息工程學院,四川 宜賓 644002;2.四川輕化工大學人工智能四川省重點實驗室,四川 宜賓 644002;3.河北大學質(zhì)量技術監(jiān)督學院,河北 保定 071002)
2019 年底新型冠狀病毒感染(COVID-19)開始出現(xiàn),并在短時間內(nèi)蔓延全球。截至到2022 年初,新冠感染全球感染人數(shù)超過2 億人,死亡人數(shù)超過百萬,相比于其他國家而言,我國對于傳染病的防控手段達到國際領先水平,但是這類具有傳播速度快[1-2]、感染率高[3]、潛伏時間長,并且有一定的致死率的病毒仍然給我國帶來了極大挑戰(zhàn)。
檢測新冠感染常用的方法是核酸試劑[4-5]。它的原理是利用RNA 逆轉(zhuǎn)錄和熒光定量PCR(聚合酶鏈式)反應相結(jié)合的技術(RT-PCR)檢測病毒。在中國國家衛(wèi)健委印發(fā)的《新型冠狀病毒肺炎診療方案(試行第七版)》文件中,影像學特征被列為新冠感染疑似病例臨床特征之一[6],相比單一的核酸檢測,通過胸部X 射線或CT 圖像結(jié)合核酸檢測的結(jié)果對疑似新冠感染患者進行診斷更加權威。而新冠感染傳染范圍廣、傳播速度快且新冠感染者在早期階段表現(xiàn)出的癥狀容易與感冒發(fā)熱、腹瀉等常見疾病相混淆,這導致疫情期間來醫(yī)院檢查的患者人數(shù)增多,及時確診新冠感染者并不容易,不僅考驗醫(yī)院的保障能力,而且加大了醫(yī)生的診斷壓力,容易出現(xiàn)誤診、漏診的現(xiàn)象。
近年來針對醫(yī)學圖像的人工智能輔助診斷系統(tǒng)在臨床中的應用越來越廣泛[7-8],其中基于深度學習的肺部圖像中新冠感染的智能診斷方法備受關注[9]。如Li等[10]設計了以ResNet為主干的新冠感染分類模型,Xu 等[11]采用 3D CNN 方式對新冠感染圖像分類,吳辰文等[12]利用生成對抗網(wǎng)絡擴充數(shù)據(jù)集,并將分割模型和分類模型進行組合來對新冠感染圖像進行分類。對于新冠感染,利用卷積神經(jīng)網(wǎng)絡對患者的病理圖片進行初步分類的確能夠大大減少醫(yī)生的工作量,對于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡分類模型特征提取能力弱、效率低的問題,常通過加深卷積神經(jīng)網(wǎng)絡層數(shù)、加寬特征通道WRN[13]等方式來提取深層次的圖像特征以達到提升識別準確率的目的,這無疑會使得網(wǎng)絡結(jié)構(gòu)變得復雜,模型參數(shù)量變大,消耗計算機資源,不利于部署在經(jīng)濟欠發(fā)達地區(qū)的醫(yī)療機構(gòu)。而這些地區(qū)疫情防控意識不強,相關條件和資源不足,正是疫情防控的薄弱環(huán)節(jié)。
針對上述問題,本文基于輕量級Efficie-ntNet-B0網(wǎng)絡,融合改進的注意力機制模塊,提出EfficientNet-ECBAM 網(wǎng)絡模型來對新冠感染、病毒性肺炎、正常肺部的X 光圖片進行分類,在保證分類準確率的基礎上,減少網(wǎng)絡模型參數(shù),使模型能落地在經(jīng)濟欠發(fā)達地區(qū)的醫(yī)療機構(gòu),輔助那里的醫(yī)生對新冠感染進行診斷,緩解他們的診斷壓力,提高診斷效率,降低誤診、漏診的情況,縮短他們與頭部醫(yī)院醫(yī)生診斷經(jīng)驗和相關資源不足的差距。相比于傳統(tǒng)網(wǎng)絡分類模型存在具有參數(shù)量大、準確率低、對計算機硬件有一定要求導致難以部署的問題,本文模型更具有實際應用前景。
隨著研究者對卷積神經(jīng)網(wǎng)絡的研究不斷加深,從最初的AlexNet[14]網(wǎng)絡到VGG16[15]、ResNet[16]殘差網(wǎng)絡,發(fā)現(xiàn)通過單純地堆疊網(wǎng)絡層數(shù)等方式來提高準確率不再是評價模型好壞的唯一標準,能用較少的參數(shù),較快的訓練速度,得出滿意的結(jié)果也同樣重要。本文主干網(wǎng)絡選用2019 年由Tan 等人[17]提出的輕量型網(wǎng)絡結(jié)構(gòu)EfficientNet。相比于傳統(tǒng)的分類網(wǎng)絡結(jié)構(gòu),該網(wǎng)絡結(jié)構(gòu)從初始的輸入圖像分辨率、網(wǎng)絡結(jié)構(gòu)深度、寬度這3 個方面進行縮放、組合、優(yōu)化得出高效的搭配方案,在計算資源固定的情況下,最大限度地提高網(wǎng)絡性能。EfficientNet的運算原理公式為:
其中,N代表網(wǎng)絡模型,d、w、r分別代表縮放網(wǎng)絡的深度、寬度、分辨率的系數(shù)?!裪= 1…s代表連乘運算,F(xiàn)代表網(wǎng)絡結(jié)構(gòu),L代表層數(shù),代表F在i階段重復了Li次,X是輸入特征矩陣,H、W、C分別代表X的高度、寬度、通道數(shù)。為了探究在給定計算資源條件下d、w、r對模型準確率的影響,將問題抽象為:
式(2)中Max Accuracy 代表網(wǎng)絡最大精度值,式(3)中s.t 代表限制條件是預設置好的網(wǎng)絡結(jié)構(gòu)和輸入特征矩陣X的高度、寬度、通道數(shù)。式(4)中Memory 代表網(wǎng)絡參數(shù)量,target_memory 代表內(nèi)存限制,式(5)中FLOPS 代表浮點運算量,target_flops代表浮點運算次數(shù)限制。在這些限制條件和該網(wǎng)絡的基礎上,作者提出了基于混合因子?對網(wǎng)絡的深度、寬度、分辨率3 個維度進行統(tǒng)一調(diào)整的混合縮放方法,計算公式為:
其中,?是根據(jù)計算機資源設置的控制系數(shù),α、β、γ對應的網(wǎng)絡深度、寬度、分辨率的資源分配系數(shù),是通過神經(jīng)架構(gòu)搜索[6](Neural Architecture Search,NAS)搜索到的。NAS 原理是在選中的網(wǎng)絡基礎上采用某種搜索策略自動對網(wǎng)絡結(jié)構(gòu)進行組合測試,性能評估后得出最佳的網(wǎng)絡架構(gòu)組合或者參數(shù),原理如圖1所示。
圖1 NAS搜索原理圖
本文中的EfficientNet-B0 網(wǎng)絡就是借鑒NAS 多目標神經(jīng)搜索架構(gòu)策略[18],在B0 網(wǎng)絡的基礎上搜索α、β、γ的值來確定B0網(wǎng)絡的深度、寬度和分辨率。
本文選用EfficientNet-B0 網(wǎng)絡作為主干網(wǎng)絡,網(wǎng)絡結(jié)構(gòu)如表1所示。
表1 EfficientNet網(wǎng)絡結(jié)構(gòu)
EfficientNet-B0 網(wǎng)絡結(jié)構(gòu)包括2 個普通卷積層,16 個翻轉(zhuǎn)瓶頸卷積層MBConv (Mobile Inverted Bottleneck Convolution),1 個平均池化層,1 個全連接層。其中MBConv 結(jié)構(gòu)包含2個1×1的卷積層,1個深度可分離卷積卷積層DW(Depth Wise),1 個SE 通道注意力模塊,1 個Dropout 層。MBConv 結(jié)構(gòu)如圖2 所示,1×1的卷積層用于升維和降維,DW 卷積能減少參數(shù)量,Dropout 層能防止網(wǎng)絡過擬合。SE[19]模塊是一種通道注意力機制模塊。
圖2 MBConv結(jié)構(gòu)
近年來注意力機制[20]被越來越多的研究者引入深度學習來提高網(wǎng)絡模型在任務中的性能,其中CBAM[21]、ECA[22]被廣泛地使用在各種模型之中。CBAM 注意力模塊由通道注意力模塊CAM 和空間注意力模塊SAM 組成。相比于通道注意力模塊,CBAM模塊不僅在通道維度上有輕重之分,同時在空間維度上也有重點和非重點區(qū)域之分,從空間位置上關注特征圖的重要特征,抑制不重要的特征。CBAM 模塊結(jié)構(gòu)如圖3所示。
圖3 CBAM模塊結(jié)構(gòu)
ECA 模塊通過一維卷積實現(xiàn)一種不降維的局部跨信道交互策略來提升特征提取能力。一維卷積在每次卷積過程中只與部分通道相作用,相比于全連接的全通道交互,一維卷積既降低了參數(shù),又提高了網(wǎng)絡效率。ECA模塊結(jié)構(gòu)如圖4所示。
圖4 ECA模塊結(jié)構(gòu)
算法改進體現(xiàn)在2 個方面:CBAM 注意力模塊的改進和EfficientNet網(wǎng)絡結(jié)構(gòu)中MBConv模塊的改進。
在CBAM 中通道注意力模塊CAM 的Shared MLP削減部分參數(shù)的操作雖然會減少模型的復雜度,但是也損壞了通道和注意力權重之間直接的對應關系[22],丟失了一部分特征細節(jié),效率也不高,CAM 模塊如圖5 所示。因而本文將CBAM 中CAM 模塊替換成可通過一維卷積實現(xiàn)不降維提升特征提取能力的ECA 模塊,取名為ECBAM。相比于原CBAM 中的特征通道注意力模塊,ECA 模塊避免了因Shared MLP 操作帶來的副作用,同時參數(shù)量進一步降低,以更高效的方式捕獲了跨通道交互的信息。CAM 模塊如圖5所示,ECBAM模塊如圖6所示。
圖5 CAM模塊
圖6 ECBAM模塊
EfficientNet 網(wǎng)絡的MBConv 模塊中采用了SE 注意力模塊來加強特征提取,雖然SE 模塊能給特征圖賦予不同的通道權重,但SE 模塊中擠壓激勵的操作會使特征圖丟失部分細節(jié)特征[22],且SE模塊只關注了特征圖在通道維度上的信息,忽略了特征圖在空間維度上的信息,所以本文將MBConv中SE模塊替換為ECBAM 模塊。ECBAM 使特征圖不會因為維度縮減的操作而丟失信息,同時網(wǎng)絡也能在通道和空間2 個維度上對圖片特征進行更充分的提取。改進后的MBConv模塊結(jié)構(gòu)如圖7所示。
圖7 改進后的MBConv結(jié)構(gòu)
本文實驗中,實驗的硬件條件是CPU 采用i7-8700,GPU采用GTX 1070Ti 8 GB,運行內(nèi)存為16 GB。實驗的軟件條件是在Win10操作系統(tǒng)下,基于深度學習框架Pytorch1.7.1,配合Python3.8.6 編譯語言,在Pycharm開發(fā)平臺上調(diào)試,實驗流程如圖8所示。
圖8 新冠肺炎檢測流程圖
為保證實驗的客觀性,本文實驗選用相同的超參數(shù)方法,均采用交叉熵損失函數(shù)(CrossEntropyLoss)作為損失函數(shù),使用Adam 優(yōu)化器更新模型參數(shù)。每批次送入32張圖片,訓練周期為90輪,初始學習率為0.001。為避免實驗結(jié)果出現(xiàn)局部最優(yōu)而不是全局最優(yōu)的情況,學習率隨著epoch 的增大逐步遞減,每經(jīng)過30個epoch學習率縮減為原來的1/10。
本文實驗數(shù)據(jù)集[23]選自kaggle網(wǎng)站中的COVI-D-19 Radiography Database 的數(shù)據(jù)集(https://www.kaggle.com/tawsifurrahman/covid19-radiography-database)。該數(shù)據(jù)集是由多位研究員和醫(yī)生一起制作的胸部X 光射線(CXR)圖片,包括3616 張COVID-19 陽性病例,1345 張普通肺炎病例,10192 張正常的圖片,圖片尺寸均為299×299。因數(shù)據(jù)集圖片質(zhì)量參差不齊,本文實驗從此數(shù)據(jù)集中挑選了成像效果較好的3869 張圖片按照8:2 的比例劃分訓練集和測試集,其中訓練集3105張,測試集764張。由于本文實驗對其數(shù)據(jù)集圖片的挑選,訓練集和測試集的劃分標準與選用此數(shù)據(jù)集進行實驗的其他作者[24-25]不同,而在網(wǎng)絡模型訓練與參數(shù)調(diào)優(yōu)過程中數(shù)據(jù)集對實驗結(jié)果有著至關重要的影響,所以本文未與他們的模型進行性能對比。詳細數(shù)據(jù)集分布如表2 所示,3 種類別的圖片樣張如圖9所示。
表2 數(shù)據(jù)集分布
圖9 3種類別樣圖展示
為了防止在訓練過程中出現(xiàn)泛化能力不強或是過擬合現(xiàn)象,通過數(shù)據(jù)增強的方式對數(shù)據(jù)集樣本容量進行擴充。采用0.5的概率垂直翻轉(zhuǎn)、旋轉(zhuǎn)10°的幾何變換方式對數(shù)據(jù)集進行增強,如圖10 所示,最后使用ImageNet數(shù)據(jù)集的均值方差進行歸一化,同時為了提升訓練效率,將數(shù)據(jù)集原始尺寸縮放為224×224。
圖10 數(shù)據(jù)增強效果展示
本文模型采用圖像領域常用的4 個指標:準確率ACC(accuracy)、敏感性SEN(sensitivity)、特異性SPE(specificity)、精準率PRE(precision)來評估模型性能。計算公式如下:
其中,真陽性TP(True Positive)代表正樣本被模型分類為正樣本的數(shù)量,真陰性TN(True Negative)代表負樣本被模型分類為負樣本的數(shù)量,假陽性FP(False Positive)代表負樣本被模型分類為正樣本的數(shù)量,假陰性FN(False Negative)代表正樣本被模型分類為負樣本的數(shù)量。ACC 代表分類正確的樣本數(shù)量占所有樣本數(shù)量的比例,SEN代表分類正確的正樣本數(shù)量占所有正樣本數(shù)量的比例,SPE 代表分類正確的負樣本數(shù)量占所有負樣本數(shù)量的比例,PRE代表分類正確的正樣本數(shù)量占所有被模型分類為正樣本數(shù)量的比例。本文實驗中當用模型判斷肺部X 光醫(yī)學圖片是否為新冠感染時,新冠感染的圖片為正樣本,正常和病毒性肺炎的圖片為負樣本。SEN 越高代表甄別真陽性(TP)的能力越高,SPE越高代表甄別真陰性(TN)的能力越高。
為了體現(xiàn)本文方法的有效性,本文將與經(jīng)典的卷積神經(jīng)網(wǎng)絡VGG16,ResNet-50,輕量級網(wǎng)絡SqueezeNet、MobileNet V1、EfficientNet-B0 網(wǎng)絡進行對比試驗,在相同數(shù)據(jù)集下不同網(wǎng)絡對比結(jié)果如表3(粗體為最佳結(jié)果)所示。
表3 相同數(shù)據(jù)集下不同網(wǎng)絡分類性能比較
首先從實驗結(jié)果可以看出,改進后的EfficientNet-ECBAM 網(wǎng)絡在準確率、敏感性、特異性、精確率的結(jié)果分別為94.86%、96.00%、97.93%、96.13%,這4 項指標均高于經(jīng)典卷積模型VGG16、ResNet-50 和輕量級網(wǎng)絡SqueezeNet、MobileNet V1、EfficientNet-B0。其次傳統(tǒng)卷積神經(jīng)網(wǎng)絡在參數(shù)量和運算量2 個方面都遠大于輕量級網(wǎng)絡,這也是它們對計算資源要求高的一大原因。從輕量級模型參數(shù)來看,SqueezeNet 參數(shù)量最小但運算量遠高于MobileNet V1、EfficientNet-B0、EfficientNet-ECBAM,這說明對網(wǎng)絡的選擇不能單從參數(shù)量這方面來考慮,EfficientNet-B0 的計算量最小,但是前4 項指標低于EfficientNet-ECBAM。最后從前4 項指標、參數(shù)量、運算量的綜合表現(xiàn)可以看出改進后的EfficientNet-ECBAM 網(wǎng)絡可以在有限的資源條件下,發(fā)揮出優(yōu)異的性能,適合部署在條件欠發(fā)達區(qū)域的醫(yī)療機構(gòu)。
混淆矩陣也是網(wǎng)絡模型性能度量的方法,它能夠直觀地反應出模型分類能力的好壞,每一列代表預測模型的類別,每一行表示數(shù)據(jù)真實的類別。主對角線表示分類模型能正確分類的個數(shù),顏色越深(值越大),說明分類模型的效果越好。各個模型的混淆矩陣如圖11 所示。從圖11 中可以看出,EfficientNet-ECBAM 的正確分類個數(shù)為735 張,高于傳統(tǒng)卷積網(wǎng)絡VGG16 的701 張,ResNet-50 的716 張,輕量級網(wǎng)絡SqueezeNet 的707 張,MobileNet V1 的713 張,EfficientNet-B0的722張,體現(xiàn)了EfficientNet-ECB-AM網(wǎng)絡良好的分類能力。
圖11 不同網(wǎng)絡的混淆矩陣
圖12 不同注意力模塊替換SE結(jié)構(gòu)示意圖
本文在基于相同主干網(wǎng)絡和數(shù)據(jù)集上,采用不同的注意力模塊替換EfficientNet-B0 中MBConv 模塊的SE 結(jié)構(gòu)進行消融實驗來驗證ECBAM 模塊的性能。替換示意圖如12 所示,實驗結(jié)果如表4(粗體為最佳結(jié)果)所示,混淆矩陣如圖13所示。
表4 不同注意力模塊的分類性能對比 單位:%
圖13 不同注意力模塊的混淆矩陣
從表4 中可以看出經(jīng)過改進的ECBAM 模塊在各項指標上均優(yōu)于其他注意力模塊,從圖13 的混淆矩陣可以看出EfficientNet-ECBAM 的正確分類個數(shù)為735 張,高于EfficientNet-B0 的722 張、EfficientNet-CBAM 的723 張、EfficientNet-ECA 的727 張。結(jié)果表明改進的ECBAM模塊相比于其他注意力模塊在分類性能上具有更好的表現(xiàn),也再次驗證了EfficientNet-ECBAM網(wǎng)絡的有效性。
本文結(jié)合當前部分經(jīng)濟欠發(fā)達地區(qū)醫(yī)療機構(gòu)的實際情況,選用輕量級EfficientNet-B0 網(wǎng)絡結(jié)構(gòu),引入CBAM 和ECA 模塊進行改進,并且替換原始EfficientNet-B0 網(wǎng)絡中的SE 結(jié)構(gòu),得到EfficientNet-ECBAM 網(wǎng)絡模型。此模型相比EfficientNet-B0 輕量級網(wǎng)絡加強了圖片特征的提取能力,提升了模型分類識別的性能,相比于傳統(tǒng)卷積神經(jīng)網(wǎng)絡又降低了網(wǎng)絡的參數(shù)量和計算機的硬件要求,給傳統(tǒng)網(wǎng)絡模型分類性能弱、難落地在經(jīng)濟欠發(fā)達的醫(yī)療機構(gòu)的問題提供了一種解決辦法。實驗結(jié)果也表明改進后的EfficientNet-ECBAM 網(wǎng)絡模型在準確率、敏感性、特異性、精確率指標上表現(xiàn)最優(yōu),參數(shù)量和運算量相對較小,體現(xiàn)了此網(wǎng)絡分類性能強,易于部署的優(yōu)勢。
在疫情防控走向常態(tài)化的今天,將人工智能運用在醫(yī)療輔助診斷領域是一大趨勢,不僅是新冠感染,像癌癥等疾病都可以用醫(yī)療AI的方式協(xié)助醫(yī)生快速了解患者病情,緩解醫(yī)生的診斷壓力,提高診斷效率。同時醫(yī)療AI 在心理學、中醫(yī)學等學科也都取得了不錯的效果[26],未來人工智能在醫(yī)療領域的應用會更加普遍和重要。