朱炳宇,劉 朕,張景祥
江南大學 理學院,江蘇 無錫 214122
研究表明COVID-19 病毒具備傳染性快、隱蔽性強、致死率高等特性,這些特性會導致患者出現急性呼吸窘迫綜合征(acute respiratory distress syndrome,ARDS),令患者肺部發生突變,迅速發炎充滿液體。而普通肺炎(pneumonia)感染者的CT 掃描或CXR 圖像中會顯現出稱為毛玻璃樣征(ground glass opacity,GGO)的陰影斑塊。根據患者的肺部CT 圖像和CXR(chest X-ray)圖像顯示,與普通肺炎患者相比,COVID-19 陽性患者的肺部突變速度更快,產生的肺部陰影斑塊和普通肺炎患者的也有顯著差別。
因此,借助人體肺部CT 掃描圖像和CXR 圖像進行檢測疾病的技術對患者進行早期診斷和后期治療起到重要作用。近年來,深度學習技術已被廣泛應用于醫學圖像檢測領域,尤其是卷積神經網絡技術。此技術通過提取圖像的特征信息并借助卷積神經網絡對圖像進行分類從而達到提升圖像識別準確率的目的。目前,使用卷積神經網絡技術對人體肺部CT 掃描圖像和CXR 圖像進行分類已成為解決檢測COVID-19 問題較為有效的主流方法。
常用的COVID-19 檢測機制和研究方法大致分為兩種:一種通過利用醫學成像技術進行診斷,例如CT 成像和CXR 成像;另一種通過反向轉錄聚合酶鏈反應技術(reverse transcription-polymerase chain reaction,RT-PCR)進行檢測。相較于RT-PCR 檢測技術,CT 成像和CXR 成像更加方便快捷,并且CXR 成像技術可以檢測到肺部炎癥的位置、形狀和大小,CT成像技術可以提供肺泡圖片的詳細信息。因此,很多學者常以人體肺部的CXR 圖像和CT 掃描圖像作為基礎,利用深度學習技術對其進行分類進而實現快速檢測COVID-19 和普通肺炎的目的。
Wang 等人構建了基于Inception 網絡的CNN 算法,利用人體肺部CT 掃描圖像檢測COVID-19,得到了89.5%的準確率;Song 等人提出基于深度學習的CT 診斷網絡(DRE-Net),把人體肺部不同類別CT 掃描圖像數據集進行分類實驗,在健康和COVID-19 陽性的實驗上得到86%的準確率,在普通肺炎和COVID-19 陽性的實驗中得到94%的準確率;Sethy 等人引入遷移學習機制,通過訓練好的模型來提取人體肺部CXR 圖像的特征,并將這些特征作為機器學習的基礎輸入到支持向量機(support vector machine,SVM)分類器中來檢測COVID-19,最終在Res50-Net上得到最高準確率達到98.66%;Wang 等人基于遷移學習的思想和CNN 算法提出“新冠網絡”(COVIDNet),將人體肺部CXR 圖像進行分類,得到93.3%的準確率;Abbas 等人利用深度遷移學習新冠網絡(DeTraC-Net),對醫院綜合數據集上的人體肺部CXR 圖像進行分類,在COVID-19 陽性和COVID-19陰性的分類實驗上達到93.1%的準確率;Apostolopoulos 等人通過利用人體肺部CXR 圖像數據集進行COVID-19 陽性、肺炎和正常三分類實驗,評估近年來提出用于醫學圖像分類的卷積神經網絡算法的性能,在V2 移動網絡(V2 Mobile-Net)上得到最高準確率為96.78%;Panwar 等人基于防止數據泄漏概念,提出非新冠網絡(NCOV-Net)算法來檢測COVID-19,得到98%的準確率;Kumar 等人以Dense121-Net 和Squeeze1.0-Net 為基礎,繼而組裝設計了德奎澤網絡(DeQueeze-Net)算法,將人體肺部CXR 圖像分為COVID-19陽性和COVID-19陰性兩類,得到94.52%的準確率和90.48%的精度;Luján-García 等人構建了多層CNN,利用人體肺部CXR 圖像數據集檢測COVID-19,最終得到84%的準確率和99%的召回率;Toga?ar 等人通過模糊技術和疊加方法降低圖像噪聲,以Squeeze-Net 為模型將人體肺部CXR 圖像分為COVID-19 陽性、普通肺炎和正常三類,準確率達到95%;Ozturk等人提出利用人體肺部CXR圖像自動檢測COVID-19 的算法(Dark-Net),在COVID-19 陽性和普通肺炎分類中獲得了98.08%的準確率,在COVID-19 陽性、普通肺炎以及正常的三分類實驗得到87.02%的準確率。
上述研究結果表明,CNN 作為檢測COVID-19 的有效方法雖然取得了一定效果但仍存在一些問題。如文獻[12]中分類得到的COVID-19 陽性病例無法在人體CXR 圖像指出分類的重要區域;文獻[13]缺少醫學圖像數據集的預處理,得到結果誤差較大;文獻[14]構建的CNN 算法太過復雜,參數優化困難;文獻[15]在處理低分辨率圖像時,準確率較低;文獻[16]在多分類問題上準確率不高。針對上述問題,本文提出了一種融合Grad-CAM 顏色可視化和卷積神經網絡的算法(algorithm combining Grad-CAM color visualization and convolutional neural network,GCCVCNN),該算法利用人體肺部CXR 圖像和CT 掃描圖像訓練好卷積神經網絡,再嵌入梯度加權類激活映射(Grad-CAM)技術,不僅可以實現對人體肺部的CXR 圖像和CT 掃描圖像的快速分類,還保證了檢測的準確率,在COVID-19 陽性同普通肺炎的分類實驗中準確率達98.06%。此外,還實現了分類感興趣特征區域在初始圖像上的顏色可視化,定位CNN 在醫學圖像中進行分類的關鍵區域。
卷積神經網絡(CNN)是一種深度前饋人工神經網絡,主要由卷積層、池化層和全連接層構成,通過其中人工神經元響應周圍單元,進行大型圖像處理,如今已被廣泛應用于各種圖像識別中。
式(1)給出一種簡單的神經網絡表示。

其中,是指當前層的輸出,是指第一層或者輸入層的輸入信息,代表當前層的權重,為偏置項。
卷積神經網絡通過卷積運算和濾波替代普通神經網絡中的乘法和賦權。
對于輸入,每個通道上都有一個濾波器。

以通道為例,則:

最后輸出結果:

其中,、和分別對應最終輸出的行、列和通道。、、分別代表濾波器的行、列和通道,是指當前層數使用的濾波器符號。
本文提出的GCCV-CNN 算法結構由AlexNet 網絡以及Grad-CAM 層組成。GCCV-CNN 上的卷積層中的濾波器通過對人體肺部CXR 圖像和CT 掃描圖像進行卷積運算來提取人體肺部CXR 圖像的特征,得到特征矩陣圖(FeatureMap),移動大小使用步長來定義。假設輸入向量的維度為R,卷積核的感受野為R,卷積計算過程如下:

其中,′是特征圖上坐標為(,)的元素,是通道數,、取值為0,1,…,-1,為池化核大小,是移動步長。
在卷積層之后的是池化層,用于減少網絡的計算損失。通常使用的池化函數有平均值、L2 范數、最小值和最大值等,本文選取的池化函數為最大值,可以避免平均池化的模糊化效果,保留最顯著的特征。
最大池化的計算過程:

其中,是第-1 層特征層中坐標為(,) 的元素,為池化后坐標為(,)的元素。
當比池化核小時,會使池化層的輸出結果之間互相重疊和覆蓋,提升特征的豐富性,減少信息的丟失。
池化層之后是全連接層,每個神經元完全連接上層中的神經元,能夠整合卷積層或者池化層中具有類別區分性的局部信息。為了提升CNN 性能,全連接層中每個神經元的激活函數一般采用ReLU 函數。公式表示如下:

綜上所述,本文所用的GCCV-CNN 算法對人體肺部CXR 圖像和CT 掃描圖像分類示意圖如圖1 所示。分類時共進行三組實驗:第一組將人體肺部CXR 圖像分為COVID-19 陽性和正常兩類;第二組將人體肺部CXR 圖像分為COVID-19 陽性和普通肺炎兩類;第三組將人體肺部CT 掃描圖像分為COVID-19 陽性和COVID-19 陰性兩類。

圖1 GCCV-CNN 分類示意圖Fig.1 GCCV-CNN classification diagram
GCCV-CNN 算法采用AlexNet網絡,整個網絡結構由輸入層、5 個卷積層和3 個全連接層組成,其中最后一個全連接層的輸出也是Softmax 函數的輸入,從而進行分類。流程圖如圖2 所示。

圖2 AlexNet網絡處理圖像示意圖Fig.2 Diagram of AlexNet network processing images
卷積層C1:該層先進行卷積運算,再利用ReLU激活函數來確保提取出的FeatureMap 大小在合理范圍之內,加快了訓練速度,最后進行池化運算。本文中初始輸入圖像大小為224×224×3,為匹配網絡結構,進行寬度、高度兩邊都填充3 的圖像預處理,得到227×227×3 的輸入圖像。
其中卷積運算是指對大小為227×227×3 的輸入圖像,使用96 個大小為11×11×3 的卷積核進行卷積,為4,卷積運算后得到大小為55×55×96的Feature-Map。ReLU 過程是指將卷積層輸出的FeatureMap 輸入到ReLU 函數中。池化運算是指使用3×3,為2 的池化單元進行池化,得到大小為27×27×96 的FeatureMap。
卷積層C2:該層的處理流程同C1 層相同,但卷積過程中使用的是256 個5×5×48 大小的卷積核,為1,對之前大小為27×27×96 的FeatureMap 提取特征。利用提取特征后得到的某幾個FeatureMap選取相應區域與對應權重進行乘法運算,然后加上偏置項,由卷積核進行卷積。經過卷積之后,在寬度、高度兩邊都填充2 像素,輸出大小為27×27×256的FeatureMap。
卷積層C3:該層只進行卷積運算,并將卷積后得到的FeatureMap 輸入到ReLU 函數當中。
卷積層C4:過程與C3 相同。
卷積層C5:該層的處理流程與C1 相同,最終得到的FeatureMap 大小為6×6×256。
全連接層FC6:該層先進行卷積運算,之后將得到的FeatureMap 輸入到ReLU 函數當中再進行Dropout過程。
其中本層的卷積過程也是全連接過程,該層有4 096 個卷積核,每個卷積核的大小為6×6×256。由于卷積核的大小剛好與上一層輸入的FeatureMap 大小相同,此時將卷積核中的每個系數與FeatureMap中一一對應的像素值相乘。卷積運算結束后,得到4 096 個大小為1×1 的神經元。ReLU 是指將4 096 個神經元通過ReLU 激活函數生成4 096 個數值。
Dropout 過程是指隨機從4 096 個數值中選取一些并將其賦值為0,來達到丟掉一些節點信息的目的,從而得到新的4 096 個神經元,防止過擬合。此過程通過修改神經網絡本身結構來實現,對于上一層的神經元,通過定義的概率將神經元置為0,這個神經元就不參與前向和后向傳播,同時保持輸入層與輸出層神經元的個數不變,然后按照神經網絡的學習方法進行參數更新。在下一次迭代中,又重新隨機刪除一些神經元(置為0),直至訓練結束。這一過程可以讓每次生成的網絡結構都不一樣,通過組合多個網絡的方式從而有效減少過擬合。
全連接層FC7:過程與FC6 相同。
FC8:用1 000 個神經元對FC7 中4 096 個神經元進行全連接,得到1 000 個數值。
AlexNet 網絡結構各層名稱輸入、輸出圖像大小及參數量如表1 所示,參數總量為60 964 128。

表1 AlexNet網絡參數Table 1 AlexNet network parameters
在圖像通過CNN 進行分類時會在CNN 的最后一層卷積層得到包含原圖像關鍵信息的FeatureMap:R,其中為寬度,為高度。

即在CNN 的最后一層卷積層生成個Feature-Map:A,A∈R。這些FeatureMap 利用GAP 進行線性變換產生個類別,每個具體類別的得分為S。公式如下:


作為CAM 的推廣,Selvaraju 等人提出了一種梯度加權類激活映射(Grad-CAM))技術,通過互換求和順序從而得到圖像的Grad-CAM 圖。



Grad-CAM 技術可以為深度連接的神經網絡創建更好的視覺解釋,給出深度可解釋性視圖,在執行檢測或預測工作時提供更多有利于解釋CNN 的信息。
對此,本文將Grad-CAM技術應用于檢測COVID-19 的研究當中,借助Grad-CAM 生成梯度加權類激活映射圖,突顯GCCV-CNN 算法對人體肺部CXR 圖像和CT 掃描圖像進行分類的重要區域,并對該區域進行標記,使分類過程更加可視化。
相關文獻[18-19]表示在CNN 中,深層次的特征可以更好地表示出圖片的視覺結構。此外,卷積層中的FeatureMap 保留了全連接層中丟失的空間信息,因此可以通過利用最后一層卷積層中的Feature-Map 來保留圖片原本的意義和空間信息。Grad-CAM 技術正是通過利用流入CNN 最后一層卷積層的梯度信息來理解每個神經元對最終決策的權重。
如圖3 所示,這里以計算圖中輸入類的Grad-CAM 為例進行說明。

圖3 Grad-CAM 結構示意圖Fig.3 Grad-CAM structure diagram
假設最后一層Softmax 中輸出目標類的概率為y,最后一層中的FeatureMap 所有像素為A,那么y對A求偏導,即:

其中,為Softmax 層輸出的概率向量,是目標類別的序號,是最后一層卷積層輸出的FeatureMap,是FeatureMap 的通道維度的序號,和分別是寬、高維度的序號。
然后,y對特征圖每個像素求偏導之后,取全局平均,即為:

此時得到的y就是類相對于最后一層卷積層輸出的特征圖的第個通道的感興趣程度。


最終將得到的二維FeatureMap 送入ReLU 激活函數處理后得到輸出:

此時得到的結果是一個二維map,便是輸入圖像的Grad-CAM 圖。
綜上,通過保留流入CNN 最后一層卷積層的梯度信息再進行向前傳遞,求得目標類別相對于最后一層卷積層輸出的特征圖感興趣程度,最終在原圖像上標記出來,實現CNN進行分類過程的顏色可視化。
本文提出的GCCV-CNN 算法主要應用于肺部CXR 和CT 掃描圖像的分類問題,達到快速準確地檢測COVID-19 的目的。GCCV-CNN 算法在不同類別的肺部CXR 圖像和CT 掃描圖像訓練數據集上獲得了不同類別的重要特征,進而提升了分類準確率。GCCV-CNN 算法的優勢在于使用事先訓練好的AlexNet 網絡,并在Softmax 層嵌入Grad-CAM 技術從而使分類效果可視化。綜上,GCCV-CNN 算法的設計流程如算法1 所示。
GCCV-CNN 算法

本文使用的人體肺部CXR 圖像和CT 掃描圖像包括COVID-19 陽性、COVID-19 陰性、普通肺炎和正常四種類別。數據集用δ表示,其中表示第類。對于多類圖像分類問題,≥2,本文中=2。
選擇構建好的數據集,即或為算法1 中的輸入變量,本文算法的主要步驟如下:
生成訓練、驗證和測試數據集。
根據輸入數據集生成三個子數據集,第一個子數據集是訓練數據集,為學習目的擬合網絡。第二個子數據集為驗證集,用來調整CNN 參數,以便對分類器進行無偏評估,同時選擇神經網絡中隱藏單元的數目。最后一個子數據集為測試數據集,是一組隨機樣本,用于評估新網絡的性能。訓練和測試子數據集的拆分比例分別為80%、20%,驗證集為訓練集隨機挑選的16%。
準備基本網絡和新網絡。
在這一步中,使用AlexNet 作為GCCV-CNN 算法的基本網絡,同時在人體肺部CXR 圖像和CT 掃描圖像數據集上進行交叉驗證,獲得最優CNN 參數,在此基礎上得到最佳驗證準確率。
更新并存儲訓練好的權重。
正向傳播通過輸入數據獲得輸出層的值,然后使用式(14)從輸出值計算二元交叉熵損失函數(loss)。

其中,表示真值,表示網絡預測的概率。
當進行反向傳播時,權重的變化次數會被記錄下來。計算過程從最后一層開始,從后向前傳遞直到第一層結束。向前和向后傳遞相繼進行一次,為迭代。在迭代中,用Batch size 描述數據集中的一個子集數目,用Epoch 表示整個數據集的一次傳遞,Step-per-epoch 為數據集總數量與Batch size的比值。
本文選取三種醫學圖像數據集,通過不同組合的對比實驗,說明本文提出GCCV-CNN算法的有效性。
(1)COVID-19-CXR 圖像數據集
此數據集是由342 名患者的673 幅放射學圖像組成,包括COVID-19 陽性患者和其他肺部疾病患者的肺部CXR 和CT 掃描圖像。
CXR 圖像包括PA 視圖、AP 視圖和APS 視圖。由于PA 視圖可以提供更好的肺部細節,本文實驗使用此數據集中COVID-19 陽性患者的肺部CXR 圖像PA 視圖部分。
(2)SARS-COVID-19-CT 掃描數據集
此數據集共有329 張人體肺部CT 掃描圖像,其中包括183 張COVID-19 陽性患者的肺部CT 掃描圖像、146 張COVID-19 陰性患者的肺部CT 掃描圖像,由于數據量較少,本文全部選取使用。
(3)肺炎患者CXR 圖像數據集
此數據集包括大量公開可用的肺炎患者和正常人的肺部CT 掃描圖像和CXR 圖像。本文實驗中使用此數據集的CXR 圖像部分,共計5 856 張。
COVID-19 VS NORMAL-CXR 數據集:包括從COVID-19-CXR 圖像數據集中隨機選取的450 張COVID-19 陽性患者的肺部CXR 圖像以及從肺炎患者CXR 圖像數據集中選取的900 張正常人(normal)的肺部CXR 圖像。為減小兩類數據的不均衡性,對COVID-19 陽性患者的肺部CXR 圖像進行加噪、翻轉變換,最終得到900 張COVID-19 陽性患者的肺部CXR 圖像。
COVID-19 VS PNEUMONIA-CXR數據集:包括實驗數據集1 中的900 張COVID-19 陽性患者的肺部CXR 圖像和肺炎患者CXR 圖像數據集中隨機選取的900 張普通肺炎(pneumonia)患者CXR 圖像。
COVID-19 VS NOCOVID-19-CT數據集:包括從SARS-COVID-19-CT 掃描數據集中選取的183 張COVID-19 陽性患者的肺部CT 掃描圖像以及146 張COVID-19 陰性患者的肺部CT 掃描圖像。為提升CNN 訓練和學習能力,需要增大數據集圖像數量。方法為對SARS-COVID-19-CT 掃描數據集中的圖像進行加噪、翻轉,最終得到2 200 張COVID-19 陽性患者的肺部CT 掃描圖像和1 800 張COVID-19 陰性患者的肺部CT 掃描圖像。
實驗數據集種類數量直方圖如圖4,實驗數據加噪、翻轉圖像效果如圖5 所示。

圖4 數據集圖像數量直方圖Fig.4 Histogram of the number of images in dataset

圖5 圖像加噪、翻轉前后對比Fig.5 Comparison of images before and after adding noise and flipping
為了評估GCCV-CNN 算法的性能,本文定義了精度(Precision)、召回率(Recall)、F 值(F-measure)、準確率(Accuracy)、靈敏度(Sensitivity)和特異性(Specificity)等評價指標。
在定義之前,需進行如下說明:
(1)TP(true positive):表示正確的檢測,正類被檢測為正類。以COVID-19 VS NORMAL 實驗為例,COVID-19 患者被檢測為COVID-19 陽性。
(2)TN(true negative):表示正確的檢測,負類被檢測為負類。以COVID-19 VS NORMAL 實驗為例,正常人被檢測為正常。
(3)FP(false positive):表示錯誤的檢測,負類被檢測為正類。以COVID-19 VS NORMAL 實驗為例,正常人被檢測為COVID-19 陽性。
(4)FN(false negative):表示錯誤的檢測,正類被檢測為負類。以COVID-19 VS NORMAL 實驗為例,COVID-19 患者被檢測為正常。
精度(Precision)表示所有被檢測為COVID-19 陽性的數據中真為COVID-19 陽性的比例。定義如下:

召回率(Recall)表示所有真為COVID-19陽性的數據中被檢測為COVID-19 陽性的比例,定義如下:

F 值(F-measure)表示精度和召回率之間的調和平均值,定義如下:

準確率(Accuracy)表示在所有被檢測的數據中檢測正確的比例,定義如下:

靈敏度(Sensitivity)表示所有真為COVID-19 陽性的樣本中被檢測為COVID-19 陽性的比例,與召回率相同,但在醫學領域中常用此評價參數。定義如下:

特異性(Specificity)表示真為負類的數據中,被判斷為負類的比例,定義如下:

實驗硬件環境及參數:CPU為IntelCorei5-8300H CPU@2.30 GHz,RAM 為16 GB,64 位操作系統。
軟件實驗壞境:Windows 10,python3.7。
為驗證GCCV-CNN 算法的有效性,本文設置了3 組實驗,如下所示。
COVID-19 VS NORMAL
隨機選取實驗數據集1 中1 800 張圖像的80%作為訓練集,訓練集的20%作為驗證集,實驗數據集1中剩余的20%作為測試集。
本實驗的訓練準確率、測試準確率、訓練損失和測試損失曲線圖如圖6(a)所示。其中在測試準確率曲線上的紅點表示在第22 個Epoch 達到GCCV-CNN算法在本實驗上的最高準確率99.167%。

圖6 三組實驗Loss&Accuracy 曲線圖Fig.6 Loss&Accuracy of three groups of experiments
此外本實驗將訓練次數停止在第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
經過訓練和驗證后確定了達到最好效果的實驗參數,最終得到在實驗1 測試集上準確率最高的模型(COVID-19 VS NORMAL-Model),此時CNN 最優參數如表3 所示。

表3 COVID-19 VS NORMAL 參數值Table 3 COVID-19 VS NORMAL parameters
在得到實驗1的最優模型(COVID-19VS NORMALModel)后保存并嵌入Grad-CAM 層,得到COVID-19陽性患者和正常人的肺部CXR 掃描圖像的類別激活熱力圖,如圖8 所示。

圖8 實驗1 Grad-CAM 結果Fig.8 Grad-CAM results of experiment 1
COVID-19 VS PNEUMONIA
隨機選取實驗數據集2 中的900 張COVID-19 陽性患者的肺部CXR 圖像和900 張普通肺炎患者的CXR 圖像,1 800 張圖像的80%作為訓練集,訓練集的20%作為驗證集,1 800 張圖像中剩余的20%作為測試集。
本實驗的訓練準確率、測試準確率、訓練損失和測試損失圖如圖6(b)所示。其中在測試準確率曲線上的紅點表示在第10 個Epoch 達到GCCV-CNN 算法在本實驗上的最高準確率99.722%。
此外,本實驗為避免過擬合問題,將訓練次數提前停止在第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
經過訓練和驗證后確定了達到最好效果的實驗參數,最終得到在實驗2 測試集上準確率最高的模型(COVID-19 VS PNEUMONIA-Model),此時CNN 最優參數如表5 所示。

表5 COVID-19 VS PNEUMONIA 參數值Table 5 COVID-19 VS PNEUMONIA parameters
在得到實驗2 的最優模型(COVID-19 VS PNEUMONIA-Model)后保存并嵌入Grad-CAM 層,得到COVID-19 陽性患者和正常人的肺部CXR 掃描圖像的類別激活熱力圖,如圖9 所示。

圖9 實驗2 Grad-CAM 結果Fig.9 Grad-CAM results of experiment 2
COVID-19 VS NOCOVID-19
隨機選取實驗數據集3 中的2 200 張COVID-19陽性患者的肺部CT 掃描圖像和1 800 張COVID-19陰性患者的CT 掃描圖像中的80%作為訓練集,訓練集的20%作為驗證集,實驗數據集3 中剩余的20%作為測試集。
本實驗的訓練準確率、測試準確率、訓練損失和測試損失圖如圖6(c)所示。其中在測試準確率曲線上的紅點表示在第28 個Epoch 達到GCCV-CNN 算法在本實驗上的最高準確率89.250%。
此外,本實驗為避免過擬合問題,將訓練次數提前停止在第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
經過訓練和驗證后確定了達到最好效果的實驗參數,最終得到在實驗3 測試集上準確率最高的模型(COVID-19 VS NOCOVID-Model),此時CNN 最優參數如表7 所示。

表7 COVID-19 VS NOCOVID-19 參數值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 結果Fig.10 Grad-CAM results of experiment 3
GCCV-CNN 算法在三組實驗上的召回率、精度、F 值、特異性和靈敏度如表8 所示。

表8 三組實驗分類評價參數Table 8 Classification evaluation parameters of three groups of experiments
此外,將COVID-Net 算法和DeTraC-Net 算法分別在三個數據集上進行分類實驗,得到的分類準確率同GCCV-CNN 算法進行比較,結果如表9 所示。

表9 三種算法在三種數據集上的分類準確率Table 9 Classification accuracy of three algorithms on three datasets 單位:%
結果顯示,GCCV-CNN 算法在三種數據集上的分類準確率均高于DeTraC-Net算法,在數據集1 和數據集2 中高于COVID-Net 算法,在數據集3 略低于COVID-Net 算法。整體表現優于其他兩種算法,具有更高的分類性能。
本文在檢測COVID-19 的實驗中,利用所提出的GCCV-CNN 算法在COVID-19 陽性患者與正常人的肺部CXR 圖像分類實驗中得到的準確率為96.67%;在COVID-19 陽性患者與普通肺炎患者的肺部CXR圖像分類實驗中得到的準確率為98.06%;在COVID-19 陽性患者與COVID-19 陰性患者的肺部CT 掃描圖像分類實驗中得到的準確率為88.00%,且速度均比傳統的RT-PCR 檢測方法快得多,對單個患者的檢測耗時平均為0.5 s。
結果表明,本文算法在人體肺部的CXR 圖像上的檢測效果更佳,在精度、召回率、F 值、靈敏性、特異度和準確率等評價指標上表現更好,且在CXR 圖像上的檢測中,COVID-19陽性患者和普通肺炎患者的分類更容易區分,精度達到98.89%,準確率達到98.06%,F 值達到0.981,召回率與靈敏度達到97.27%,特異性達到98.87%。
在COVID-19 陽性患者和COVID-19 陰性的分類實驗中,結果顯示召回率與靈敏度達到100.00%,說明COVID-19 陽性患者在此時可以被全部檢測出來,證明本文算法對COVID-19 的檢測能力十分優異。且該實驗的檢測精度為93.33%,F 值為0.966,特異性為93.75%,準確率為96.67%。
根據已有結果分析發現,COVID-19 陽性患者的CXR 圖像和普通肺炎患者的CXR 圖像在紋理結構上存在相似性,結果上存在誤差,具有過擬合的風險。但經過理論分析,本文算法在實驗階段已進行規避過擬合步驟,增添的Grad-CAM 層通過最后一層全連接層的特征圖計算出網絡的分類權重,并在原圖像進行標記,具備區分差異性不大的圖像能力。
本文算法在人體肺部CT 掃描圖像上對COVID-19 陽性患者的檢測效果要比人體肺部CXR 圖像差,準確率僅為88.00%,精度僅為83.50%,但召回率與靈敏度達到91.76%,F 值為0.874,特異性為84.86%,整體效果表現良好。
本文通過在人體肺部放射性圖像進行分類的實驗來檢測COVID-19,從而對比分離出COVID-19 陽性患者。此外,從分析中發現,COVID-19 陰性患者可能患有普通肺炎或其他肺部疾病,因此本文考慮加入普通肺炎疾病患者的CXR 圖像進行實驗。
此外,還應用了一種顏色可視化方法:梯度加權類激活映射(Grad-CAM)技術,將Grad-CAM 層嵌入到卷積神經網絡當中,從而使所提出的深度學習算法更易于觀察和解釋。
但本文算法在人體肺部的CT 掃描圖像中診斷為COVID-19 陰性的患者有一定幾率被檢測為假陽性,為了以較高的召回率準確地檢測COVID-19 病例,下一步工作需對COVID-19 陽性患者和COVID-19 陰性患者的肺部CT 掃描圖像進行網絡訓練,獲取更多數量的患者肺部CT 掃描圖像數據集,進行更好的預處理。
此外,數據集的樣本數量嚴重影響CNN 網絡對圖像進行分類的能力,本文進行實驗采用的樣本數量相較于CNN 而言偏低,因此訓練時間短,實時性強,分類結果良好。
在數據集樣本圖像數量充足條件下,本文算法進行訓練時花費時間會更多,實時性將會降低,但訓練完成得到GCCV-CNN 網絡后,對任意輸入圖像都會進行實時分類。
考慮到COVID-19 陽性的樣本圖像較難獲取的特點,本文雖然進行圖像加噪、翻轉,但實際上與原圖像區分不大。下一步工作需考慮數據增強的方式從而獲取足量的數據集圖像,對算法的實時性、魯棒性、準確性進行更好的提升。