朱炳宇,劉 朕,張景祥
江南大學(xué) 理學(xué)院,江蘇 無錫 214122
研究表明COVID-19 病毒具備傳染性快、隱蔽性強、致死率高等特性,這些特性會導(dǎo)致患者出現(xiàn)急性呼吸窘迫綜合征(acute respiratory distress syndrome,ARDS),令患者肺部發(fā)生突變,迅速發(fā)炎充滿液體。而普通肺炎(pneumonia)感染者的CT 掃描或CXR 圖像中會顯現(xiàn)出稱為毛玻璃樣征(ground glass opacity,GGO)的陰影斑塊。根據(jù)患者的肺部CT 圖像和CXR(chest X-ray)圖像顯示,與普通肺炎患者相比,COVID-19 陽性患者的肺部突變速度更快,產(chǎn)生的肺部陰影斑塊和普通肺炎患者的也有顯著差別。
因此,借助人體肺部CT 掃描圖像和CXR 圖像進(jìn)行檢測疾病的技術(shù)對患者進(jìn)行早期診斷和后期治療起到重要作用。近年來,深度學(xué)習(xí)技術(shù)已被廣泛應(yīng)用于醫(yī)學(xué)圖像檢測領(lǐng)域,尤其是卷積神經(jīng)網(wǎng)絡(luò)技術(shù)。此技術(shù)通過提取圖像的特征信息并借助卷積神經(jīng)網(wǎng)絡(luò)對圖像進(jìn)行分類從而達(dá)到提升圖像識別準(zhǔn)確率的目的。目前,使用卷積神經(jīng)網(wǎng)絡(luò)技術(shù)對人體肺部CT 掃描圖像和CXR 圖像進(jìn)行分類已成為解決檢測COVID-19 問題較為有效的主流方法。
常用的COVID-19 檢測機(jī)制和研究方法大致分為兩種:一種通過利用醫(yī)學(xué)成像技術(shù)進(jìn)行診斷,例如CT 成像和CXR 成像;另一種通過反向轉(zhuǎn)錄聚合酶鏈反應(yīng)技術(shù)(reverse transcription-polymerase chain reaction,RT-PCR)進(jìn)行檢測。相較于RT-PCR 檢測技術(shù),CT 成像和CXR 成像更加方便快捷,并且CXR 成像技術(shù)可以檢測到肺部炎癥的位置、形狀和大小,CT成像技術(shù)可以提供肺泡圖片的詳細(xì)信息。因此,很多學(xué)者常以人體肺部的CXR 圖像和CT 掃描圖像作為基礎(chǔ),利用深度學(xué)習(xí)技術(shù)對其進(jìn)行分類進(jìn)而實現(xiàn)快速檢測COVID-19 和普通肺炎的目的。
Wang 等人構(gòu)建了基于Inception 網(wǎng)絡(luò)的CNN 算法,利用人體肺部CT 掃描圖像檢測COVID-19,得到了89.5%的準(zhǔn)確率;Song 等人提出基于深度學(xué)習(xí)的CT 診斷網(wǎng)絡(luò)(DRE-Net),把人體肺部不同類別CT 掃描圖像數(shù)據(jù)集進(jìn)行分類實驗,在健康和COVID-19 陽性的實驗上得到86%的準(zhǔn)確率,在普通肺炎和COVID-19 陽性的實驗中得到94%的準(zhǔn)確率;Sethy 等人引入遷移學(xué)習(xí)機(jī)制,通過訓(xùn)練好的模型來提取人體肺部CXR 圖像的特征,并將這些特征作為機(jī)器學(xué)習(xí)的基礎(chǔ)輸入到支持向量機(jī)(support vector machine,SVM)分類器中來檢測COVID-19,最終在Res50-Net上得到最高準(zhǔn)確率達(dá)到98.66%;Wang 等人基于遷移學(xué)習(xí)的思想和CNN 算法提出“新冠網(wǎng)絡(luò)”(COVIDNet),將人體肺部CXR 圖像進(jìn)行分類,得到93.3%的準(zhǔn)確率;Abbas 等人利用深度遷移學(xué)習(xí)新冠網(wǎng)絡(luò)(DeTraC-Net),對醫(yī)院綜合數(shù)據(jù)集上的人體肺部CXR 圖像進(jìn)行分類,在COVID-19 陽性和COVID-19陰性的分類實驗上達(dá)到93.1%的準(zhǔn)確率;Apostolopoulos 等人通過利用人體肺部CXR 圖像數(shù)據(jù)集進(jìn)行COVID-19 陽性、肺炎和正常三分類實驗,評估近年來提出用于醫(yī)學(xué)圖像分類的卷積神經(jīng)網(wǎng)絡(luò)算法的性能,在V2 移動網(wǎng)絡(luò)(V2 Mobile-Net)上得到最高準(zhǔn)確率為96.78%;Panwar 等人基于防止數(shù)據(jù)泄漏概念,提出非新冠網(wǎng)絡(luò)(NCOV-Net)算法來檢測COVID-19,得到98%的準(zhǔn)確率;Kumar 等人以Dense121-Net 和Squeeze1.0-Net 為基礎(chǔ),繼而組裝設(shè)計了德奎澤網(wǎng)絡(luò)(DeQueeze-Net)算法,將人體肺部CXR 圖像分為COVID-19陽性和COVID-19陰性兩類,得到94.52%的準(zhǔn)確率和90.48%的精度;Luján-García 等人構(gòu)建了多層CNN,利用人體肺部CXR 圖像數(shù)據(jù)集檢測COVID-19,最終得到84%的準(zhǔn)確率和99%的召回率;Toga?ar 等人通過模糊技術(shù)和疊加方法降低圖像噪聲,以Squeeze-Net 為模型將人體肺部CXR 圖像分為COVID-19 陽性、普通肺炎和正常三類,準(zhǔn)確率達(dá)到95%;Ozturk等人提出利用人體肺部CXR圖像自動檢測COVID-19 的算法(Dark-Net),在COVID-19 陽性和普通肺炎分類中獲得了98.08%的準(zhǔn)確率,在COVID-19 陽性、普通肺炎以及正常的三分類實驗得到87.02%的準(zhǔn)確率。
上述研究結(jié)果表明,CNN 作為檢測COVID-19 的有效方法雖然取得了一定效果但仍存在一些問題。如文獻(xiàn)[12]中分類得到的COVID-19 陽性病例無法在人體CXR 圖像指出分類的重要區(qū)域;文獻(xiàn)[13]缺少醫(yī)學(xué)圖像數(shù)據(jù)集的預(yù)處理,得到結(jié)果誤差較大;文獻(xiàn)[14]構(gòu)建的CNN 算法太過復(fù)雜,參數(shù)優(yōu)化困難;文獻(xiàn)[15]在處理低分辨率圖像時,準(zhǔn)確率較低;文獻(xiàn)[16]在多分類問題上準(zhǔn)確率不高。針對上述問題,本文提出了一種融合Grad-CAM 顏色可視化和卷積神經(jīng)網(wǎng)絡(luò)的算法(algorithm combining Grad-CAM color visualization and convolutional neural network,GCCVCNN),該算法利用人體肺部CXR 圖像和CT 掃描圖像訓(xùn)練好卷積神經(jīng)網(wǎng)絡(luò),再嵌入梯度加權(quán)類激活映射(Grad-CAM)技術(shù),不僅可以實現(xiàn)對人體肺部的CXR 圖像和CT 掃描圖像的快速分類,還保證了檢測的準(zhǔn)確率,在COVID-19 陽性同普通肺炎的分類實驗中準(zhǔn)確率達(dá)98.06%。此外,還實現(xiàn)了分類感興趣特征區(qū)域在初始圖像上的顏色可視化,定位CNN 在醫(yī)學(xué)圖像中進(jìn)行分類的關(guān)鍵區(qū)域。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種深度前饋人工神經(jīng)網(wǎng)絡(luò),主要由卷積層、池化層和全連接層構(gòu)成,通過其中人工神經(jīng)元響應(yīng)周圍單元,進(jìn)行大型圖像處理,如今已被廣泛應(yīng)用于各種圖像識別中。
式(1)給出一種簡單的神經(jīng)網(wǎng)絡(luò)表示。
其中,是指當(dāng)前層的輸出,是指第一層或者輸入層的輸入信息,代表當(dāng)前層的權(quán)重,為偏置項。
卷積神經(jīng)網(wǎng)絡(luò)通過卷積運算和濾波替代普通神經(jīng)網(wǎng)絡(luò)中的乘法和賦權(quán)。
對于輸入,每個通道上都有一個濾波器。
以通道為例,則:
最后輸出結(jié)果:
其中,、和分別對應(yīng)最終輸出的行、列和通道。、、分別代表濾波器的行、列和通道,是指當(dāng)前層數(shù)使用的濾波器符號。
本文提出的GCCV-CNN 算法結(jié)構(gòu)由AlexNet 網(wǎng)絡(luò)以及Grad-CAM 層組成。GCCV-CNN 上的卷積層中的濾波器通過對人體肺部CXR 圖像和CT 掃描圖像進(jìn)行卷積運算來提取人體肺部CXR 圖像的特征,得到特征矩陣圖(FeatureMap),移動大小使用步長來定義。假設(shè)輸入向量的維度為R,卷積核的感受野為R,卷積計算過程如下:
其中,′是特征圖上坐標(biāo)為(,)的元素,是通道數(shù),、取值為0,1,…,-1,為池化核大小,是移動步長。
在卷積層之后的是池化層,用于減少網(wǎng)絡(luò)的計算損失。通常使用的池化函數(shù)有平均值、L2 范數(shù)、最小值和最大值等,本文選取的池化函數(shù)為最大值,可以避免平均池化的模糊化效果,保留最顯著的特征。
最大池化的計算過程:
其中,是第-1 層特征層中坐標(biāo)為(,) 的元素,為池化后坐標(biāo)為(,)的元素。
當(dāng)比池化核小時,會使池化層的輸出結(jié)果之間互相重疊和覆蓋,提升特征的豐富性,減少信息的丟失。
池化層之后是全連接層,每個神經(jīng)元完全連接上層中的神經(jīng)元,能夠整合卷積層或者池化層中具有類別區(qū)分性的局部信息。為了提升CNN 性能,全連接層中每個神經(jīng)元的激活函數(shù)一般采用ReLU 函數(shù)。公式表示如下:
綜上所述,本文所用的GCCV-CNN 算法對人體肺部CXR 圖像和CT 掃描圖像分類示意圖如圖1 所示。分類時共進(jìn)行三組實驗:第一組將人體肺部CXR 圖像分為COVID-19 陽性和正常兩類;第二組將人體肺部CXR 圖像分為COVID-19 陽性和普通肺炎兩類;第三組將人體肺部CT 掃描圖像分為COVID-19 陽性和COVID-19 陰性兩類。
圖1 GCCV-CNN 分類示意圖Fig.1 GCCV-CNN classification diagram
GCCV-CNN 算法采用AlexNet網(wǎng)絡(luò),整個網(wǎng)絡(luò)結(jié)構(gòu)由輸入層、5 個卷積層和3 個全連接層組成,其中最后一個全連接層的輸出也是Softmax 函數(shù)的輸入,從而進(jìn)行分類。流程圖如圖2 所示。
圖2 AlexNet網(wǎng)絡(luò)處理圖像示意圖Fig.2 Diagram of AlexNet network processing images
卷積層C1:該層先進(jìn)行卷積運算,再利用ReLU激活函數(shù)來確保提取出的FeatureMap 大小在合理范圍之內(nèi),加快了訓(xùn)練速度,最后進(jìn)行池化運算。本文中初始輸入圖像大小為224×224×3,為匹配網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)行寬度、高度兩邊都填充3 的圖像預(yù)處理,得到227×227×3 的輸入圖像。
其中卷積運算是指對大小為227×227×3 的輸入圖像,使用96 個大小為11×11×3 的卷積核進(jìn)行卷積,為4,卷積運算后得到大小為55×55×96的Feature-Map。ReLU 過程是指將卷積層輸出的FeatureMap 輸入到ReLU 函數(shù)中。池化運算是指使用3×3,為2 的池化單元進(jìn)行池化,得到大小為27×27×96 的FeatureMap。
卷積層C2:該層的處理流程同C1 層相同,但卷積過程中使用的是256 個5×5×48 大小的卷積核,為1,對之前大小為27×27×96 的FeatureMap 提取特征。利用提取特征后得到的某幾個FeatureMap選取相應(yīng)區(qū)域與對應(yīng)權(quán)重進(jìn)行乘法運算,然后加上偏置項,由卷積核進(jìn)行卷積。經(jīng)過卷積之后,在寬度、高度兩邊都填充2 像素,輸出大小為27×27×256的FeatureMap。
卷積層C3:該層只進(jìn)行卷積運算,并將卷積后得到的FeatureMap 輸入到ReLU 函數(shù)當(dāng)中。
卷積層C4:過程與C3 相同。
卷積層C5:該層的處理流程與C1 相同,最終得到的FeatureMap 大小為6×6×256。
全連接層FC6:該層先進(jìn)行卷積運算,之后將得到的FeatureMap 輸入到ReLU 函數(shù)當(dāng)中再進(jìn)行Dropout過程。
其中本層的卷積過程也是全連接過程,該層有4 096 個卷積核,每個卷積核的大小為6×6×256。由于卷積核的大小剛好與上一層輸入的FeatureMap 大小相同,此時將卷積核中的每個系數(shù)與FeatureMap中一一對應(yīng)的像素值相乘。卷積運算結(jié)束后,得到4 096 個大小為1×1 的神經(jīng)元。ReLU 是指將4 096 個神經(jīng)元通過ReLU 激活函數(shù)生成4 096 個數(shù)值。
Dropout 過程是指隨機(jī)從4 096 個數(shù)值中選取一些并將其賦值為0,來達(dá)到丟掉一些節(jié)點信息的目的,從而得到新的4 096 個神經(jīng)元,防止過擬合。此過程通過修改神經(jīng)網(wǎng)絡(luò)本身結(jié)構(gòu)來實現(xiàn),對于上一層的神經(jīng)元,通過定義的概率將神經(jīng)元置為0,這個神經(jīng)元就不參與前向和后向傳播,同時保持輸入層與輸出層神經(jīng)元的個數(shù)不變,然后按照神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法進(jìn)行參數(shù)更新。在下一次迭代中,又重新隨機(jī)刪除一些神經(jīng)元(置為0),直至訓(xùn)練結(jié)束。這一過程可以讓每次生成的網(wǎng)絡(luò)結(jié)構(gòu)都不一樣,通過組合多個網(wǎng)絡(luò)的方式從而有效減少過擬合。
全連接層FC7:過程與FC6 相同。
FC8:用1 000 個神經(jīng)元對FC7 中4 096 個神經(jīng)元進(jìn)行全連接,得到1 000 個數(shù)值。
AlexNet 網(wǎng)絡(luò)結(jié)構(gòu)各層名稱輸入、輸出圖像大小及參數(shù)量如表1 所示,參數(shù)總量為60 964 128。
表1 AlexNet網(wǎng)絡(luò)參數(shù)Table 1 AlexNet network parameters
在圖像通過CNN 進(jìn)行分類時會在CNN 的最后一層卷積層得到包含原圖像關(guān)鍵信息的FeatureMap:R,其中為寬度,為高度。
即在CNN 的最后一層卷積層生成個Feature-Map:A,A∈R。這些FeatureMap 利用GAP 進(jìn)行線性變換產(chǎn)生個類別,每個具體類別的得分為S。公式如下:
作為CAM 的推廣,Selvaraju 等人提出了一種梯度加權(quán)類激活映射(Grad-CAM))技術(shù),通過互換求和順序從而得到圖像的Grad-CAM 圖。
Grad-CAM 技術(shù)可以為深度連接的神經(jīng)網(wǎng)絡(luò)創(chuàng)建更好的視覺解釋,給出深度可解釋性視圖,在執(zhí)行檢測或預(yù)測工作時提供更多有利于解釋CNN 的信息。
對此,本文將Grad-CAM技術(shù)應(yīng)用于檢測COVID-19 的研究當(dāng)中,借助Grad-CAM 生成梯度加權(quán)類激活映射圖,突顯GCCV-CNN 算法對人體肺部CXR 圖像和CT 掃描圖像進(jìn)行分類的重要區(qū)域,并對該區(qū)域進(jìn)行標(biāo)記,使分類過程更加可視化。
相關(guān)文獻(xiàn)[18-19]表示在CNN 中,深層次的特征可以更好地表示出圖片的視覺結(jié)構(gòu)。此外,卷積層中的FeatureMap 保留了全連接層中丟失的空間信息,因此可以通過利用最后一層卷積層中的Feature-Map 來保留圖片原本的意義和空間信息。Grad-CAM 技術(shù)正是通過利用流入CNN 最后一層卷積層的梯度信息來理解每個神經(jīng)元對最終決策的權(quán)重。
如圖3 所示,這里以計算圖中輸入類的Grad-CAM 為例進(jìn)行說明。
圖3 Grad-CAM 結(jié)構(gòu)示意圖Fig.3 Grad-CAM structure diagram
假設(shè)最后一層Softmax 中輸出目標(biāo)類的概率為y,最后一層中的FeatureMap 所有像素為A,那么y對A求偏導(dǎo),即:
其中,為Softmax 層輸出的概率向量,是目標(biāo)類別的序號,是最后一層卷積層輸出的FeatureMap,是FeatureMap 的通道維度的序號,和分別是寬、高維度的序號。
然后,y對特征圖每個像素求偏導(dǎo)之后,取全局平均,即為:
此時得到的y就是類相對于最后一層卷積層輸出的特征圖的第個通道的感興趣程度。
最終將得到的二維FeatureMap 送入ReLU 激活函數(shù)處理后得到輸出:
此時得到的結(jié)果是一個二維map,便是輸入圖像的Grad-CAM 圖。
綜上,通過保留流入CNN 最后一層卷積層的梯度信息再進(jìn)行向前傳遞,求得目標(biāo)類別相對于最后一層卷積層輸出的特征圖感興趣程度,最終在原圖像上標(biāo)記出來,實現(xiàn)CNN進(jìn)行分類過程的顏色可視化。
本文提出的GCCV-CNN 算法主要應(yīng)用于肺部CXR 和CT 掃描圖像的分類問題,達(dá)到快速準(zhǔn)確地檢測COVID-19 的目的。GCCV-CNN 算法在不同類別的肺部CXR 圖像和CT 掃描圖像訓(xùn)練數(shù)據(jù)集上獲得了不同類別的重要特征,進(jìn)而提升了分類準(zhǔn)確率。GCCV-CNN 算法的優(yōu)勢在于使用事先訓(xùn)練好的AlexNet 網(wǎng)絡(luò),并在Softmax 層嵌入Grad-CAM 技術(shù)從而使分類效果可視化。綜上,GCCV-CNN 算法的設(shè)計流程如算法1 所示。
GCCV-CNN 算法
本文使用的人體肺部CXR 圖像和CT 掃描圖像包括COVID-19 陽性、COVID-19 陰性、普通肺炎和正常四種類別。數(shù)據(jù)集用δ表示,其中表示第類。對于多類圖像分類問題,≥2,本文中=2。
選擇構(gòu)建好的數(shù)據(jù)集,即或為算法1 中的輸入變量,本文算法的主要步驟如下:
生成訓(xùn)練、驗證和測試數(shù)據(jù)集。
根據(jù)輸入數(shù)據(jù)集生成三個子數(shù)據(jù)集,第一個子數(shù)據(jù)集是訓(xùn)練數(shù)據(jù)集,為學(xué)習(xí)目的擬合網(wǎng)絡(luò)。第二個子數(shù)據(jù)集為驗證集,用來調(diào)整CNN 參數(shù),以便對分類器進(jìn)行無偏評估,同時選擇神經(jīng)網(wǎng)絡(luò)中隱藏單元的數(shù)目。最后一個子數(shù)據(jù)集為測試數(shù)據(jù)集,是一組隨機(jī)樣本,用于評估新網(wǎng)絡(luò)的性能。訓(xùn)練和測試子數(shù)據(jù)集的拆分比例分別為80%、20%,驗證集為訓(xùn)練集隨機(jī)挑選的16%。
準(zhǔn)備基本網(wǎng)絡(luò)和新網(wǎng)絡(luò)。
在這一步中,使用AlexNet 作為GCCV-CNN 算法的基本網(wǎng)絡(luò),同時在人體肺部CXR 圖像和CT 掃描圖像數(shù)據(jù)集上進(jìn)行交叉驗證,獲得最優(yōu)CNN 參數(shù),在此基礎(chǔ)上得到最佳驗證準(zhǔn)確率。
更新并存儲訓(xùn)練好的權(quán)重。
正向傳播通過輸入數(shù)據(jù)獲得輸出層的值,然后使用式(14)從輸出值計算二元交叉熵?fù)p失函數(shù)(loss)。
其中,表示真值,表示網(wǎng)絡(luò)預(yù)測的概率。
當(dāng)進(jìn)行反向傳播時,權(quán)重的變化次數(shù)會被記錄下來。計算過程從最后一層開始,從后向前傳遞直到第一層結(jié)束。向前和向后傳遞相繼進(jìn)行一次,為迭代。在迭代中,用Batch size 描述數(shù)據(jù)集中的一個子集數(shù)目,用Epoch 表示整個數(shù)據(jù)集的一次傳遞,Step-per-epoch 為數(shù)據(jù)集總數(shù)量與Batch size的比值。
本文選取三種醫(yī)學(xué)圖像數(shù)據(jù)集,通過不同組合的對比實驗,說明本文提出GCCV-CNN算法的有效性。
(1)COVID-19-CXR 圖像數(shù)據(jù)集
此數(shù)據(jù)集是由342 名患者的673 幅放射學(xué)圖像組成,包括COVID-19 陽性患者和其他肺部疾病患者的肺部CXR 和CT 掃描圖像。
CXR 圖像包括PA 視圖、AP 視圖和APS 視圖。由于PA 視圖可以提供更好的肺部細(xì)節(jié),本文實驗使用此數(shù)據(jù)集中COVID-19 陽性患者的肺部CXR 圖像PA 視圖部分。
(2)SARS-COVID-19-CT 掃描數(shù)據(jù)集
此數(shù)據(jù)集共有329 張人體肺部CT 掃描圖像,其中包括183 張COVID-19 陽性患者的肺部CT 掃描圖像、146 張COVID-19 陰性患者的肺部CT 掃描圖像,由于數(shù)據(jù)量較少,本文全部選取使用。
(3)肺炎患者CXR 圖像數(shù)據(jù)集
此數(shù)據(jù)集包括大量公開可用的肺炎患者和正常人的肺部CT 掃描圖像和CXR 圖像。本文實驗中使用此數(shù)據(jù)集的CXR 圖像部分,共計5 856 張。
COVID-19 VS NORMAL-CXR 數(shù)據(jù)集:包括從COVID-19-CXR 圖像數(shù)據(jù)集中隨機(jī)選取的450 張COVID-19 陽性患者的肺部CXR 圖像以及從肺炎患者CXR 圖像數(shù)據(jù)集中選取的900 張正常人(normal)的肺部CXR 圖像。為減小兩類數(shù)據(jù)的不均衡性,對COVID-19 陽性患者的肺部CXR 圖像進(jìn)行加噪、翻轉(zhuǎn)變換,最終得到900 張COVID-19 陽性患者的肺部CXR 圖像。
COVID-19 VS PNEUMONIA-CXR數(shù)據(jù)集:包括實驗數(shù)據(jù)集1 中的900 張COVID-19 陽性患者的肺部CXR 圖像和肺炎患者CXR 圖像數(shù)據(jù)集中隨機(jī)選取的900 張普通肺炎(pneumonia)患者CXR 圖像。
COVID-19 VS NOCOVID-19-CT數(shù)據(jù)集:包括從SARS-COVID-19-CT 掃描數(shù)據(jù)集中選取的183 張COVID-19 陽性患者的肺部CT 掃描圖像以及146 張COVID-19 陰性患者的肺部CT 掃描圖像。為提升CNN 訓(xùn)練和學(xué)習(xí)能力,需要增大數(shù)據(jù)集圖像數(shù)量。方法為對SARS-COVID-19-CT 掃描數(shù)據(jù)集中的圖像進(jìn)行加噪、翻轉(zhuǎn),最終得到2 200 張COVID-19 陽性患者的肺部CT 掃描圖像和1 800 張COVID-19 陰性患者的肺部CT 掃描圖像。
實驗數(shù)據(jù)集種類數(shù)量直方圖如圖4,實驗數(shù)據(jù)加噪、翻轉(zhuǎn)圖像效果如圖5 所示。
圖4 數(shù)據(jù)集圖像數(shù)量直方圖Fig.4 Histogram of the number of images in dataset
圖5 圖像加噪、翻轉(zhuǎn)前后對比Fig.5 Comparison of images before and after adding noise and flipping
為了評估GCCV-CNN 算法的性能,本文定義了精度(Precision)、召回率(Recall)、F 值(F-measure)、準(zhǔn)確率(Accuracy)、靈敏度(Sensitivity)和特異性(Specificity)等評價指標(biāo)。
在定義之前,需進(jìn)行如下說明:
(1)TP(true positive):表示正確的檢測,正類被檢測為正類。以COVID-19 VS NORMAL 實驗為例,COVID-19 患者被檢測為COVID-19 陽性。
(2)TN(true negative):表示正確的檢測,負(fù)類被檢測為負(fù)類。以COVID-19 VS NORMAL 實驗為例,正常人被檢測為正常。
(3)FP(false positive):表示錯誤的檢測,負(fù)類被檢測為正類。以COVID-19 VS NORMAL 實驗為例,正常人被檢測為COVID-19 陽性。
(4)FN(false negative):表示錯誤的檢測,正類被檢測為負(fù)類。以COVID-19 VS NORMAL 實驗為例,COVID-19 患者被檢測為正常。
精度(Precision)表示所有被檢測為COVID-19 陽性的數(shù)據(jù)中真為COVID-19 陽性的比例。定義如下:
召回率(Recall)表示所有真為COVID-19陽性的數(shù)據(jù)中被檢測為COVID-19 陽性的比例,定義如下:
F 值(F-measure)表示精度和召回率之間的調(diào)和平均值,定義如下:
準(zhǔn)確率(Accuracy)表示在所有被檢測的數(shù)據(jù)中檢測正確的比例,定義如下:
靈敏度(Sensitivity)表示所有真為COVID-19 陽性的樣本中被檢測為COVID-19 陽性的比例,與召回率相同,但在醫(yī)學(xué)領(lǐng)域中常用此評價參數(shù)。定義如下:
特異性(Specificity)表示真為負(fù)類的數(shù)據(jù)中,被判斷為負(fù)類的比例,定義如下:
實驗硬件環(huán)境及參數(shù):CPU為IntelCorei5-8300H CPU@2.30 GHz,RAM 為16 GB,64 位操作系統(tǒng)。
軟件實驗壞境:Windows 10,python3.7。
為驗證GCCV-CNN 算法的有效性,本文設(shè)置了3 組實驗,如下所示。
COVID-19 VS NORMAL
隨機(jī)選取實驗數(shù)據(jù)集1 中1 800 張圖像的80%作為訓(xùn)練集,訓(xùn)練集的20%作為驗證集,實驗數(shù)據(jù)集1中剩余的20%作為測試集。
本實驗的訓(xùn)練準(zhǔn)確率、測試準(zhǔn)確率、訓(xùn)練損失和測試損失曲線圖如圖6(a)所示。其中在測試準(zhǔn)確率曲線上的紅點表示在第22 個Epoch 達(dá)到GCCV-CNN算法在本實驗上的最高準(zhǔn)確率99.167%。
圖6 三組實驗Loss&Accuracy 曲線圖Fig.6 Loss&Accuracy of three groups of experiments
此外本實驗將訓(xùn)練次數(shù)停止在第25 個Epoch,目的是通過早期停止方法避免過擬合問題。
最后采用混淆矩陣表示出GCCV-CNN 算法在實驗1 上的性能,如圖7(a)、表2 所示。并從混淆矩陣中評估了GCCV-CNN 算法在實驗1 上的召回率、精度、F 值、特異性和靈敏度。
圖7 三組實驗混淆矩陣Fig.7 Confusion matrix of three groups of experiments
表2 COVID-19 VS NORMAL 混淆矩陣Table 2 COVID-19 VS NORMAL confusion matrix
經(jīng)過訓(xùn)練和驗證后確定了達(dá)到最好效果的實驗參數(shù),最終得到在實驗1 測試集上準(zhǔn)確率最高的模型(COVID-19 VS NORMAL-Model),此時CNN 最優(yōu)參數(shù)如表3 所示。
表3 COVID-19 VS NORMAL 參數(shù)值Table 3 COVID-19 VS NORMAL parameters
在得到實驗1的最優(yōu)模型(COVID-19VS NORMALModel)后保存并嵌入Grad-CAM 層,得到COVID-19陽性患者和正常人的肺部CXR 掃描圖像的類別激活熱力圖,如圖8 所示。
圖8 實驗1 Grad-CAM 結(jié)果Fig.8 Grad-CAM results of experiment 1
COVID-19 VS PNEUMONIA
隨機(jī)選取實驗數(shù)據(jù)集2 中的900 張COVID-19 陽性患者的肺部CXR 圖像和900 張普通肺炎患者的CXR 圖像,1 800 張圖像的80%作為訓(xùn)練集,訓(xùn)練集的20%作為驗證集,1 800 張圖像中剩余的20%作為測試集。
本實驗的訓(xùn)練準(zhǔn)確率、測試準(zhǔn)確率、訓(xùn)練損失和測試損失圖如圖6(b)所示。其中在測試準(zhǔn)確率曲線上的紅點表示在第10 個Epoch 達(dá)到GCCV-CNN 算法在本實驗上的最高準(zhǔn)確率99.722%。
此外,本實驗為避免過擬合問題,將訓(xùn)練次數(shù)提前停止在第25 個Epoch。
最后采用混淆矩陣表示出GCCV-CNN 算法在實驗2 上的性能,如圖7(b)、表4 所示。并從混淆矩陣中評估了GCCV-CNN 算法在實驗2 上的召回率、精度、F 值、特異性和靈敏度。
表4 COVID-19 VS PNEUMONIA 混淆矩陣Table 4 COVID-19 VS PNEUMONIA confusion matrix
經(jīng)過訓(xùn)練和驗證后確定了達(dá)到最好效果的實驗參數(shù),最終得到在實驗2 測試集上準(zhǔn)確率最高的模型(COVID-19 VS PNEUMONIA-Model),此時CNN 最優(yōu)參數(shù)如表5 所示。
表5 COVID-19 VS PNEUMONIA 參數(shù)值Table 5 COVID-19 VS PNEUMONIA parameters
在得到實驗2 的最優(yōu)模型(COVID-19 VS PNEUMONIA-Model)后保存并嵌入Grad-CAM 層,得到COVID-19 陽性患者和正常人的肺部CXR 掃描圖像的類別激活熱力圖,如圖9 所示。
圖9 實驗2 Grad-CAM 結(jié)果Fig.9 Grad-CAM results of experiment 2
COVID-19 VS NOCOVID-19
隨機(jī)選取實驗數(shù)據(jù)集3 中的2 200 張COVID-19陽性患者的肺部CT 掃描圖像和1 800 張COVID-19陰性患者的CT 掃描圖像中的80%作為訓(xùn)練集,訓(xùn)練集的20%作為驗證集,實驗數(shù)據(jù)集3 中剩余的20%作為測試集。
本實驗的訓(xùn)練準(zhǔn)確率、測試準(zhǔn)確率、訓(xùn)練損失和測試損失圖如圖6(c)所示。其中在測試準(zhǔn)確率曲線上的紅點表示在第28 個Epoch 達(dá)到GCCV-CNN 算法在本實驗上的最高準(zhǔn)確率89.250%。
此外,本實驗為避免過擬合問題,將訓(xùn)練次數(shù)提前停止在第50 個Epoch。最后采用混淆矩陣表示出GCCV-CNN 算法在實驗3 上的性能,如圖7(c)、表6所示。并從混淆矩陣中評估了GCCV-CNN 算法在實驗3 上的召回率、精度、F 值、特異性和靈敏度。
表6 COVID-19 VS NOCOVID-19 混淆矩陣Table 6 COVID-19 VS NOCOVID-19 confusion matrix
經(jīng)過訓(xùn)練和驗證后確定了達(dá)到最好效果的實驗參數(shù),最終得到在實驗3 測試集上準(zhǔn)確率最高的模型(COVID-19 VS NOCOVID-Model),此時CNN 最優(yōu)參數(shù)如表7 所示。
表7 COVID-19 VS NOCOVID-19 參數(shù)值Table 7 COVID-19 VS NOCOVID-19 parameters
在得到實驗3 的最好模型(COVID-19 VS NOCOVID-Model)后保存并嵌入Grad-CAM 層,得到COVID-19 陽性患者和COVID-19 陰性患者的肺部CT 掃描圖像類別激活熱力圖,如圖10 所示。
圖10 實驗3 Grad-CAM 結(jié)果Fig.10 Grad-CAM results of experiment 3
GCCV-CNN 算法在三組實驗上的召回率、精度、F 值、特異性和靈敏度如表8 所示。
表8 三組實驗分類評價參數(shù)Table 8 Classification evaluation parameters of three groups of experiments
此外,將COVID-Net 算法和DeTraC-Net 算法分別在三個數(shù)據(jù)集上進(jìn)行分類實驗,得到的分類準(zhǔn)確率同GCCV-CNN 算法進(jìn)行比較,結(jié)果如表9 所示。
表9 三種算法在三種數(shù)據(jù)集上的分類準(zhǔn)確率Table 9 Classification accuracy of three algorithms on three datasets 單位:%
結(jié)果顯示,GCCV-CNN 算法在三種數(shù)據(jù)集上的分類準(zhǔn)確率均高于DeTraC-Net算法,在數(shù)據(jù)集1 和數(shù)據(jù)集2 中高于COVID-Net 算法,在數(shù)據(jù)集3 略低于COVID-Net 算法。整體表現(xiàn)優(yōu)于其他兩種算法,具有更高的分類性能。
本文在檢測COVID-19 的實驗中,利用所提出的GCCV-CNN 算法在COVID-19 陽性患者與正常人的肺部CXR 圖像分類實驗中得到的準(zhǔn)確率為96.67%;在COVID-19 陽性患者與普通肺炎患者的肺部CXR圖像分類實驗中得到的準(zhǔn)確率為98.06%;在COVID-19 陽性患者與COVID-19 陰性患者的肺部CT 掃描圖像分類實驗中得到的準(zhǔn)確率為88.00%,且速度均比傳統(tǒng)的RT-PCR 檢測方法快得多,對單個患者的檢測耗時平均為0.5 s。
結(jié)果表明,本文算法在人體肺部的CXR 圖像上的檢測效果更佳,在精度、召回率、F 值、靈敏性、特異度和準(zhǔn)確率等評價指標(biāo)上表現(xiàn)更好,且在CXR 圖像上的檢測中,COVID-19陽性患者和普通肺炎患者的分類更容易區(qū)分,精度達(dá)到98.89%,準(zhǔn)確率達(dá)到98.06%,F(xiàn) 值達(dá)到0.981,召回率與靈敏度達(dá)到97.27%,特異性達(dá)到98.87%。
在COVID-19 陽性患者和COVID-19 陰性的分類實驗中,結(jié)果顯示召回率與靈敏度達(dá)到100.00%,說明COVID-19 陽性患者在此時可以被全部檢測出來,證明本文算法對COVID-19 的檢測能力十分優(yōu)異。且該實驗的檢測精度為93.33%,F(xiàn) 值為0.966,特異性為93.75%,準(zhǔn)確率為96.67%。
根據(jù)已有結(jié)果分析發(fā)現(xiàn),COVID-19 陽性患者的CXR 圖像和普通肺炎患者的CXR 圖像在紋理結(jié)構(gòu)上存在相似性,結(jié)果上存在誤差,具有過擬合的風(fēng)險。但經(jīng)過理論分析,本文算法在實驗階段已進(jìn)行規(guī)避過擬合步驟,增添的Grad-CAM 層通過最后一層全連接層的特征圖計算出網(wǎng)絡(luò)的分類權(quán)重,并在原圖像進(jìn)行標(biāo)記,具備區(qū)分差異性不大的圖像能力。
本文算法在人體肺部CT 掃描圖像上對COVID-19 陽性患者的檢測效果要比人體肺部CXR 圖像差,準(zhǔn)確率僅為88.00%,精度僅為83.50%,但召回率與靈敏度達(dá)到91.76%,F(xiàn) 值為0.874,特異性為84.86%,整體效果表現(xiàn)良好。
本文通過在人體肺部放射性圖像進(jìn)行分類的實驗來檢測COVID-19,從而對比分離出COVID-19 陽性患者。此外,從分析中發(fā)現(xiàn),COVID-19 陰性患者可能患有普通肺炎或其他肺部疾病,因此本文考慮加入普通肺炎疾病患者的CXR 圖像進(jìn)行實驗。
此外,還應(yīng)用了一種顏色可視化方法:梯度加權(quán)類激活映射(Grad-CAM)技術(shù),將Grad-CAM 層嵌入到卷積神經(jīng)網(wǎng)絡(luò)當(dāng)中,從而使所提出的深度學(xué)習(xí)算法更易于觀察和解釋。
但本文算法在人體肺部的CT 掃描圖像中診斷為COVID-19 陰性的患者有一定幾率被檢測為假陽性,為了以較高的召回率準(zhǔn)確地檢測COVID-19 病例,下一步工作需對COVID-19 陽性患者和COVID-19 陰性患者的肺部CT 掃描圖像進(jìn)行網(wǎng)絡(luò)訓(xùn)練,獲取更多數(shù)量的患者肺部CT 掃描圖像數(shù)據(jù)集,進(jìn)行更好的預(yù)處理。
此外,數(shù)據(jù)集的樣本數(shù)量嚴(yán)重影響CNN 網(wǎng)絡(luò)對圖像進(jìn)行分類的能力,本文進(jìn)行實驗采用的樣本數(shù)量相較于CNN 而言偏低,因此訓(xùn)練時間短,實時性強,分類結(jié)果良好。
在數(shù)據(jù)集樣本圖像數(shù)量充足條件下,本文算法進(jìn)行訓(xùn)練時花費時間會更多,實時性將會降低,但訓(xùn)練完成得到GCCV-CNN 網(wǎng)絡(luò)后,對任意輸入圖像都會進(jìn)行實時分類。
考慮到COVID-19 陽性的樣本圖像較難獲取的特點,本文雖然進(jìn)行圖像加噪、翻轉(zhuǎn),但實際上與原圖像區(qū)分不大。下一步工作需考慮數(shù)據(jù)增強的方式從而獲取足量的數(shù)據(jù)集圖像,對算法的實時性、魯棒性、準(zhǔn)確性進(jìn)行更好的提升。