新型冠狀病毒肺炎肆虐全球,為了更加快速地診斷新型冠狀病毒肺炎(COVID-19),本文提出一種深度可分離稠密網絡 DWSDenseNet,以 2 905 例 COVID-19 胸部 X 線平片影像作為實驗數據集,在網絡訓練前使用限制對比度自適應直方圖均衡化(CLAHE)算法對圖像進行預處理,增強圖像的對比度,將預處理之后的圖像放入訓練網絡中,采用 Leaky ReLU 作為激活函數,調整參數以達到最優。本文引入 VGG16、ResNet18、ResNet34、DenseNet121 和 SDenseNet 模型進行比較,所提出的網絡在三分類實驗中相較于 ResNet34 在準確率、靈敏度和特異性上分別提高了 2.0%、2.3%、1.5%。相對于改進前的 SDenseNet 網絡,本文模型的參數量減少了 43.9%,但分類效果并未下降。通過對比實驗可以發現,本文所提出的深度可分離稠密網絡對 COVID-19 胸部 X 線平片影像數據集具有良好的分類效果,在保證準確率的情況下,深度可分離卷積能夠有效地降低模型參數量。
引用本文: 馮毅博, 仇大偉, 曹慧, 張俊忠, 辛在海, 劉靜. 基于深度可分離稠密網絡的新型冠狀病毒肺炎 X 線圖像檢測方法研究. 生物醫學工程學雜志, 2020, 37(4): 557-565. doi: 10.7507/1001-5515.202005056 復制
引言
自 2019 年末新型冠狀病毒被發現以來,新型冠狀病毒肺炎(coronavirus disease 2019,COVID-19,以下簡稱新冠肺炎)疫情迅速在全球暴發。截止 2020 年 4 月 19 日,全球超過 200 個國家及地區出現新冠肺炎確診病例,累計確診人數達到 216 萬,各個國家和地區的醫療體系都面臨巨大的挑戰,許多國家紛紛出現了缺物資、缺人力、缺技術等問題[1]。新冠肺炎傳染性極強,人群普遍易感,有基礎疾病的患者容易發展為重癥,出現呼吸衰竭等癥狀[2],這種特性使得新冠肺炎患者往往出現聚集性感染,在短時間內大量涌入醫院。控制疫情的關鍵是將普通肺炎患者與新冠肺炎患者區分開來,對新冠肺炎患者應收盡收,阻斷病毒的傳播路徑。在這種情況下,對新冠肺炎的快速鑒別就顯得尤為重要,對社會來說,如果無法快速地鑒別出新冠肺炎患者,就會導致病毒的二次傳播,短期內出現大量的聚集性病例;對醫療機構來說,一套行之有效的快速檢測方法能夠極大地減緩醫療壓力,快速的新冠肺炎檢測方法使得醫院能夠早發現、早隔離、早治療,降低醫療人員的感染風險;對有基礎性疾病的患者來說,新冠肺炎病毒在短期內會使得患者快速地轉化為重癥,盡早發現和治療能夠抑制患者從輕癥轉化為重癥。
胸部影像學檢測是新冠肺炎的檢測手段之一[3],影像學檢測依賴于影像科醫生的判斷,但短時間內大量的患者涌入醫院,會導致影像科醫生出現人手短缺以及工作疲勞等問題,而自動化的新冠肺炎檢測方法可以幫助醫生解決上述問題。近年來,隨著醫療影像數據的公開,深度學習在醫學影像上的應用越來越廣泛,尤其是卷積神經網絡在醫學圖像處理上取得了非常優異的成果[4]。利用卷積神經網絡可以提取到醫學圖像中的高維信息,提高診斷的準確率。卷積神經網絡模型眾多、結構復雜,梁蒙蒙等[5]分析了卷積神經網絡的發展歷程,并對卷積神經網絡的結構與其在醫學圖像處理中的應用進行了系統性的總結。卷積神經網絡在醫學診斷中的應用相當廣泛,韓坤等[6]使用多模態圖像信息對阿爾茲海默癥進行分類診斷,提出了一種基于卷積神經網絡的模型,對模態特征信息進行融合,得到了 95% 的準確率。李端等[7]使用深度殘差網絡對心電信號進行識別,結合小波自適應閾值濾波和 DR-CNN 的算法識別心電信號,取得了較高的準確率。黃盛等[8]提出了一種改進的深度殘差網絡用來對肺部計算機斷層掃描(computed tomography,CT)圖像進行分類,通過遷移學習的方法減小神經網絡對大數據量的要求。劉一鳴等[9]使用 LUNA16 數據集,提出了一種基于卷積神經網絡的肺結節檢測辦法,采用了一套肺部 CT 圖像的預處理方案,所提出的模型準確率達到了 92.3%。Narin 等[10]從 Joseph Cohen 等分享的新冠肺炎數據集獲得 50 張新冠肺炎的 X 線影像,從 chest X-ray images 數據集中獲得 50 張正常肺部 X 線影像,構建了一個 100 張 X 線影像的數據集,使用 ResNet50 模型進行分類,準確率達到 98%。Jin 等[11]基于一個包含了 723 張新冠肺炎檢測陽性和 413 張新冠肺炎檢測陰性的 CT 影像數據集,提出一種聯合 UNet++與 ResNet50 的模型用于新冠肺炎的診斷,達到 97.4% 的準確率。Shi 等[12]對當前人工智能技術在診斷新冠肺炎中的應用進行了系統性的回顧,分析了 87 篇有關新冠肺炎研究的論文,涵蓋了新冠肺炎涉及的醫學影像分析技術的所有流程,包括圖像采集、分割、診斷等內容。X 線平片是傳統的影像學檢查手段,可用于掃描骨折、腫瘤、肺部感染等癥狀,雖然 CT 檢查是較為先進的醫學影像檢查技術,可以幫助影像科醫生進行細致的分析[13],但 X 線平片費用低廉,相較于 CT 檢查更加便捷,可幫助影像科醫生快速判斷患者是否為新冠肺炎患者,因此使用深度學習的方法對 X 線平片圖像進行自動識別是非常有必要的。
在新冠肺炎的影像學診斷中,常常混雜著新冠肺炎影像、普通肺炎影像和正常肺部影像,因此本文采用了包含這三個類別的共 2 905 張胸部 X 線平片圖像的數據集。深度學習模型往往參數量龐大,使用深度可分離卷積(depthwise separable convolution)可以有效地降低參數量。因此,本文提出了一種深度可分離稠密網絡 DWSDenseNet,其中 DWS 表示深度可分離卷積,由于是在稠密連接網絡(DenseNet)基礎上改進,故命名為 DWSDenseNet,加入改進的深度可分離卷積層以減少參數量,使得卷積神經網絡更加輕量化,以期為新冠肺炎的早期篩查提供較為準確的輔助診斷意見。
1 實驗方法
本文提出了一種基于改進的卷積神經網絡的新冠肺炎檢測方法,該檢測方法運用圖像預處理技術聯合深度學習中卷積神經網絡的相關算法對新冠肺炎進行檢測,方法的流程圖如圖 1 所示。

1.1 圖像預處理
本實驗所用的肺炎分類數據集包含了 2 905 張胸部 X 線圖像,每張圖像的大小為 1 024 × 1 024,由于 X 線圖像的對比度差、亮度低等問題,本文使用限制對比度自適應直方圖均衡化(contrast limited adaptive histogram equalization,CLAHE)算法對 X 線圖像進行預處理。CLAHE 算法能夠突出胸部 X 線圖像的內部細節,抑制噪聲,更好地保存 X 線圖像中的病灶信息。CLAHE 算法的實現步驟如下所示[14]:
(1)將胸部 X 線圖像分為 M × N 個不重疊的圖像塊。
(2)計算每個分割后的圖像塊的灰度直方圖,將圖像塊的像素平均到各個灰度級,灰度級的平均像素數 可由下式求出。
![]() |
其中 Ng 是圖像塊中灰度級的數量,Nxp 是圖像塊 x 軸方向的像素數,Nyp 是圖像塊 y 軸方向的像素數。
(3)將灰度直方圖中大于 NL 的值截掉,NL 可以由下式求出:
![]() |
其中 S 為截取系數。求出截取部分的像素數,再求出截取到的像素總數平均到每個灰度級的像素數。
(4)直方圖均衡化。對每個圖像塊的直方圖進行均衡化,利用變換函數得到變換后的灰度值。圖 2 是 X 線圖像經過 CLAHE 算法處理前和處理后的對比。

1.2 DWSDenseNet 網絡
傳統的圖像處理是由手工提取圖像特征結合機器學習完成[15],手工提取圖像特征的能力有限,往往不能很好地表達圖像的復雜特征。隨著深度學習的發展,尤其是卷積神經網絡的出現,打破了傳統的手工提取圖像特征的方式。卷積神經網絡是一種前饋神經網絡,在圖像處理方面的表現尤為突出,能夠將大數據量的圖片降維到小數據量,并有效地保存圖像的深層特征。卷積神經網絡使用反向傳播算法進行訓練,極大地提高了圖像分類的準確度。卷積神經網絡一般由卷積層(convolutional layer)、池化層(pooling layer)、全連接層(fully connected layer)組成[16],如圖 3 所示。

最經典的卷積神經網絡 LeNet 出現在 1998 年,應用于手寫數字識別[17]。在以往的神經網絡中,往往使用多個全連接層作為分類器,但全連接層的參數量較大,且容易產生過擬合,在 NIN 網絡中[18]使用全局平均池化層(global average pooling)來代替全連接層,有效地減少了網絡的參數。隨后出現的 DenseNet 采用了一種非常密集的連接方式[19]。傳統的 DenseNet 網絡層數較深,參數量龐大,Huang 等[20]提出了一種改進的 PCANet 聯合簡化的 DenseNet 的混合網絡,在多種醫學圖像分類上取得了很好的效果,其中簡化的 DenseNet 網絡被命名為 SDenseNet 網絡,本文模型即在此基礎上進行改進。
深度可分離卷積將所處理圖像的對應區域和通道拆分處理,首先處理區域特征然后考慮通道特征。深度可分離卷積最早由 Sifre 等[21]提出,劉媛媛等[22]將其用于復雜場景下秸稈檢測中,極大地降低了訓練參數量,且秸稈分割 mIoU 達到 94.3%。在常規的卷積運算中,需要同時考慮圖像對應區域的所有通道,而深度可分離卷積提出將這個過程分開。深度可分離卷積由兩個部分組成,第一部分是深層卷積(depthwise convolution),第二部分是逐點卷積(pointwise convolution),示意圖見圖 4。正是由于深度可分離卷積將傳統的卷積操作拆分開來,使得網絡參數量大大減少。

在臨床一線的影像學診斷中,往往需要既準確又快速地給出檢查結果,且由于功耗和相關硬件設備的限制,用于輸出結果的卷積神經網絡模型不能具有非常龐大的參數量,卷積神經網絡模型輕量化成為當務之急,而在保證模型性能的前提下盡量地降低模型的復雜度和參數量正是本文希望解決的問題。
本文提出的 DWSDenseNet 網絡采用深度可分離卷積來代替傳統卷積,實驗證明深度可分離卷積能夠有效地降低模型的參數量。假設輸入是一個通道數為 3、5 × 5 的圖像,輸出通道為 4,卷積核大小為 3 × 3,使用傳統卷積時,需要 108 個參數,而使用深度可分離卷積僅需要 39 個參數。本文將稠密塊中的部分卷積層更換,相比于改進前,改進后的網絡參數量下降了 43.9%。另外,本文還對傳統深度可分離卷積進行了改進。由于 Leaky ReLU 比 ReLU 能夠更大程度地保留信息,本文將卷積結構中的 ReLU 更換為 Leaky ReLU。傳統卷積過程和本文所改進的深度可分離卷積過程如圖 5 所示。

本文以 SDenseNet 網絡為基礎,采用其對稠密塊的改進,使用 BN-Conv-Leaky ReLU 作為基礎結構,并將稠密塊中第二個卷積層替換為本文所改進的深度可分離卷積層,以達到模型輕量化的目的。本文所提出的 DWSDenseNet 的網絡結構如表 1 所示。本文所提出方法的詳細步驟如下:

Step 1:將輸入的數據集按照 80% 和 20% 的比例劃分,train data,test data ←Dataset。
Step 2:使用預處理算法對數據進行處理。data←CLAHE(data)。
Step 3:輸入學習率 lr、權重衰減 wd、迭代次數 epoch 等參數,并初始化網絡,Init(DWSDenseNet(W,B)),其中 W 是權重,B 是偏差。
Step 4:將訓練數據輸入網絡,計算預測類別,并根據真實類別計算誤差 error(L(W,B))。
Step 5:根據上一步計算的誤差,優化參數 W←update_weight(error(L(W,B)),lr),B←update_bias(error(L(W,B)))。
Step 6:重復 Step 3 和 Step 4,直至達到迭代次數 epoch。
Step 7:將測試數據輸入訓練好的 DWSDenseNet 中,DWSDenseNet(W,B)←test data,計算分類的準確度、靈敏度和特異性。
2 實驗結果及分析
本文所用的實驗環境主要在 CPU 下進行,CPU 為 Core-i7,使用基于 Windows 的 MXNet 深度學習框架,使用 Python 編程語言對卷積神經網絡進行搭建。
2.1 實驗數據
本文使用的實驗數據來自于 COVID-19 Radiography Database 數據集(https://www.kaggle.com/tawsifurrahman/covid19-radiography-database)。該數據集由多個研究組織共同收集制作,主要是針對新冠肺炎病例、病毒性肺炎病例和正常圖像的數據庫。數據集分布情況如表 2 所示,包含了 1 341 張正常的 X 線圖像、1 345 張病毒性肺炎的 X 線圖像和 219 張新冠肺炎陽性的 X 線圖像,圖像格式為 PNG。

2.2 三分類實驗結果
首先將數據集進行預處理,使用 CLAHE 算法對訓練集中的胸部 X 線圖像進行處理,使用 CLAHE 算法可以抑制噪聲,增強對比度,更好地突出病灶信息。之后將胸部 X 線圖像的大小設置為 224 × 224,再將處理好的圖像輸入 DWSDenseNet 網絡中進行訓練,最后將測試集的數據輸入訓練好的網絡進行分類,并對分類結果進行統計分析。在訓練過程中,初始學習率設置為 1 × 10?3,根據訓練情況,采取了三次衰減策略,學習率每次縮小到之前的十分之一,初始的權重衰減值設置為 1 × 10?4,在學習率第三次衰減之后,將權重衰減的值設置為 0,分類函數設置為 softmax 函數,損失函數使用交叉熵損失函數,優化算法使用 Adam,Leaky ReLU 的參數設置為 0.3。圖 6 表示使用 DWSDenseNet 的訓練集和測試集準確率的變化圖,可以看出在第 25 輪前后訓練集準確率達到了 99% 左右,之后趨于收斂。測試集準確率在前期有比較明顯的震蕩,這是因為在前幾輪模型訓練中,模型還沒有很好地學習出合適的參數,在第 10 輪之后測試集準確率逐漸升高,在 30 輪之后逐漸收斂。

為了評估模型的有效性,本文與另外的卷積神經網絡進行比較,包括:VGG16[23]、ResNet18[24]、ResNet34[24]、DenseNet121[18]和 SDenseNet[19],使用同樣的圖像預處理算法,對預測結果進行評價。本文使用三個指標對模型進行評價,分別是準確率(accuracy,ACC)、靈敏度(sensitivity,SEN)和特異性(specificity,SPE),計算公式如下:
![]() |
![]() |
![]() |
其中 TP 代表真陽性(true positive),即正樣本被分到正確分類中的數量;FP 代表假陽性(false positive),即負樣本被分到正樣本類中的數量;TN 代表真陰性(true negative),即負樣本被分到負樣本類中的數量;FN 代表假陰性(false negative),即正樣本被分到負樣本類中的數量。由于本實驗是一個三分類實驗,且樣本分布不均勻,故采用加權平均準確率、加權平均敏感度、加權平均特異性來衡量模型,計算公式如下:
![]() |
![]() |
![]() |
![]() |
其中 Si 為第 i 個類別的樣本數,N 為樣本總數,wi 為第 i 個類別在總樣本中的占比。本文模型與其他模型比較的結果如表 3 所示。

由表 3 可以看出在新冠肺炎數據集上,采用本文 DWSDenseNet 模型的方法在準確率、靈敏度以及特異性上分別為 98.1%、97.8%、98.2%,三項指標均比 VGG16、ResNet18、ResNet34、DenseNet121 和 SDenseNet 模型高,在所有模型中準確率和靈敏度排名第一。SDenseNet 模型的方法在準確率、敏感度以及特異性上分別為 97.9%、97.1%、98.1%,相比于本文所提網絡,三個指標都略微低一些。與 SDenseNet 相比,DWSDenseNet 的參數量減少了 43.9%,但是分類效果并未下降。另外從 VGG16 的實驗結果可以看出,VGG16 的三個指標均為最低,但參數量最大,說明 VGG16 在新冠肺炎數據集上并不具有非常好的分類效果。各個模型的混淆矩陣如圖 7 所示。本文還另外引入了兩篇論文的模型進行比較。Chowdhury 等[25]采用多個模型在不使用數據增廣和使用數據增廣兩種條件下進行比較,由于本文未使用數據增廣,故與其在未使用數據增廣的準確率作比較,可以看出本文所提的模型在準確率和靈敏度上略微高于 Chowdhury 等使用的網絡,僅在特異性上本文所提模型略低。Bassi 等[26]使用遷移學習的方法對新冠肺炎數據集中的圖像進行分類,本文方法與其靈敏度相當。以上結果表明在新冠肺炎數據集上 DWSDenseNet 相比于其他卷積神經網絡模型,參數量更少,具有更好的分類效果。

2.3 二分類實驗結果
本節對模型在二分類任務中的分類效果進行評估。實驗分為三組,分別是新冠肺炎和正常組、新冠肺炎和病毒性肺炎組、正常和病毒性肺炎組。每組中都包含六個模型的實驗,以評估不同模型在不同分類任務中的效果。對模型使用準確率、靈敏度和特異性三個指標進行評估,計算公式見式(3)~(5)。不同組的二分類實驗結果如表 4 所示。由表 4 可以看出,在新冠肺炎和正常組分類中,本文模型在靈敏度上表現最好,SDenseNet 在靈敏度和準確率上也達到了很高的指標,DWSDenseNet 在準確率和特異性上距最好結果相差不到一個百分點,但參數量上相差巨大,本文模型的網絡參數量遠遠小于其他模型。在新冠肺炎和病毒性肺炎的分類中,SDenseNet 在準確率和靈敏性上達到 99.7% 和 100%,DenseNet121 在靈敏度方面也達到了 100%,相比于這兩者,本文所提出的網絡在準確率和特異性上達到最優,在靈敏度上還有待提高。在正常和病毒性肺炎的分類中,本文網絡在三個指標中表現均為最優,另外 SDenseNet 在特異性上也達到了最好的指標。由以上分析可知,本文所提出的網絡模型雖然參數量小,但在不同的二分類中,模型表現優異。本文模型與改進前的 SDenseNet 網絡的混淆矩陣如圖 8 所示。


3 結論
新冠肺炎治療的第一步,是從眾多病例中將新冠肺炎患者篩選出來,盡管最終確診依然主要依靠病毒核酸檢測,但影像學檢查簡單快捷,能夠幫助醫生更快地確定病灶信息,因此使用影像學篩選新冠肺炎患者已經廣泛地應用于臨床一線。新冠病毒傳染率高,導致大量的患者短時間內涌入醫院,對影像科醫生產生了極大的負擔,抗疫一線往往出現人員短缺的狀況,使用深度學習的方法可以很好地解決這個問題。本文提出了 DWSDenseNet 模型對胸部 X 線圖像進行分析,相比于 SDenseNet 網絡,DWSDenseNet 擁有更少的參數量。通過對比實驗可知,相較于傳統的卷積神經網絡模型,DWSDenseNet 網絡具有更好的準確率。本文模型降低了傳統 DenseNet 的網絡深度,對原始的稠密塊進行改進,加入了 Leaky ReLU 作為激活函數,使得訓練時收斂速度更快,之后融合深度可分離卷積神經網絡進一步降低模型的參數量。為了驗證模型的有效性,再次進行二分類的實驗,通過結果可知,DWSDenseNet 在三組實驗中均具有很好的表現。綜上可知,本文模型能夠在保證準確率的情況下,降低模型的參數量,從而加快了檢測速度。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
引言
自 2019 年末新型冠狀病毒被發現以來,新型冠狀病毒肺炎(coronavirus disease 2019,COVID-19,以下簡稱新冠肺炎)疫情迅速在全球暴發。截止 2020 年 4 月 19 日,全球超過 200 個國家及地區出現新冠肺炎確診病例,累計確診人數達到 216 萬,各個國家和地區的醫療體系都面臨巨大的挑戰,許多國家紛紛出現了缺物資、缺人力、缺技術等問題[1]。新冠肺炎傳染性極強,人群普遍易感,有基礎疾病的患者容易發展為重癥,出現呼吸衰竭等癥狀[2],這種特性使得新冠肺炎患者往往出現聚集性感染,在短時間內大量涌入醫院。控制疫情的關鍵是將普通肺炎患者與新冠肺炎患者區分開來,對新冠肺炎患者應收盡收,阻斷病毒的傳播路徑。在這種情況下,對新冠肺炎的快速鑒別就顯得尤為重要,對社會來說,如果無法快速地鑒別出新冠肺炎患者,就會導致病毒的二次傳播,短期內出現大量的聚集性病例;對醫療機構來說,一套行之有效的快速檢測方法能夠極大地減緩醫療壓力,快速的新冠肺炎檢測方法使得醫院能夠早發現、早隔離、早治療,降低醫療人員的感染風險;對有基礎性疾病的患者來說,新冠肺炎病毒在短期內會使得患者快速地轉化為重癥,盡早發現和治療能夠抑制患者從輕癥轉化為重癥。
胸部影像學檢測是新冠肺炎的檢測手段之一[3],影像學檢測依賴于影像科醫生的判斷,但短時間內大量的患者涌入醫院,會導致影像科醫生出現人手短缺以及工作疲勞等問題,而自動化的新冠肺炎檢測方法可以幫助醫生解決上述問題。近年來,隨著醫療影像數據的公開,深度學習在醫學影像上的應用越來越廣泛,尤其是卷積神經網絡在醫學圖像處理上取得了非常優異的成果[4]。利用卷積神經網絡可以提取到醫學圖像中的高維信息,提高診斷的準確率。卷積神經網絡模型眾多、結構復雜,梁蒙蒙等[5]分析了卷積神經網絡的發展歷程,并對卷積神經網絡的結構與其在醫學圖像處理中的應用進行了系統性的總結。卷積神經網絡在醫學診斷中的應用相當廣泛,韓坤等[6]使用多模態圖像信息對阿爾茲海默癥進行分類診斷,提出了一種基于卷積神經網絡的模型,對模態特征信息進行融合,得到了 95% 的準確率。李端等[7]使用深度殘差網絡對心電信號進行識別,結合小波自適應閾值濾波和 DR-CNN 的算法識別心電信號,取得了較高的準確率。黃盛等[8]提出了一種改進的深度殘差網絡用來對肺部計算機斷層掃描(computed tomography,CT)圖像進行分類,通過遷移學習的方法減小神經網絡對大數據量的要求。劉一鳴等[9]使用 LUNA16 數據集,提出了一種基于卷積神經網絡的肺結節檢測辦法,采用了一套肺部 CT 圖像的預處理方案,所提出的模型準確率達到了 92.3%。Narin 等[10]從 Joseph Cohen 等分享的新冠肺炎數據集獲得 50 張新冠肺炎的 X 線影像,從 chest X-ray images 數據集中獲得 50 張正常肺部 X 線影像,構建了一個 100 張 X 線影像的數據集,使用 ResNet50 模型進行分類,準確率達到 98%。Jin 等[11]基于一個包含了 723 張新冠肺炎檢測陽性和 413 張新冠肺炎檢測陰性的 CT 影像數據集,提出一種聯合 UNet++與 ResNet50 的模型用于新冠肺炎的診斷,達到 97.4% 的準確率。Shi 等[12]對當前人工智能技術在診斷新冠肺炎中的應用進行了系統性的回顧,分析了 87 篇有關新冠肺炎研究的論文,涵蓋了新冠肺炎涉及的醫學影像分析技術的所有流程,包括圖像采集、分割、診斷等內容。X 線平片是傳統的影像學檢查手段,可用于掃描骨折、腫瘤、肺部感染等癥狀,雖然 CT 檢查是較為先進的醫學影像檢查技術,可以幫助影像科醫生進行細致的分析[13],但 X 線平片費用低廉,相較于 CT 檢查更加便捷,可幫助影像科醫生快速判斷患者是否為新冠肺炎患者,因此使用深度學習的方法對 X 線平片圖像進行自動識別是非常有必要的。
在新冠肺炎的影像學診斷中,常常混雜著新冠肺炎影像、普通肺炎影像和正常肺部影像,因此本文采用了包含這三個類別的共 2 905 張胸部 X 線平片圖像的數據集。深度學習模型往往參數量龐大,使用深度可分離卷積(depthwise separable convolution)可以有效地降低參數量。因此,本文提出了一種深度可分離稠密網絡 DWSDenseNet,其中 DWS 表示深度可分離卷積,由于是在稠密連接網絡(DenseNet)基礎上改進,故命名為 DWSDenseNet,加入改進的深度可分離卷積層以減少參數量,使得卷積神經網絡更加輕量化,以期為新冠肺炎的早期篩查提供較為準確的輔助診斷意見。
1 實驗方法
本文提出了一種基于改進的卷積神經網絡的新冠肺炎檢測方法,該檢測方法運用圖像預處理技術聯合深度學習中卷積神經網絡的相關算法對新冠肺炎進行檢測,方法的流程圖如圖 1 所示。

1.1 圖像預處理
本實驗所用的肺炎分類數據集包含了 2 905 張胸部 X 線圖像,每張圖像的大小為 1 024 × 1 024,由于 X 線圖像的對比度差、亮度低等問題,本文使用限制對比度自適應直方圖均衡化(contrast limited adaptive histogram equalization,CLAHE)算法對 X 線圖像進行預處理。CLAHE 算法能夠突出胸部 X 線圖像的內部細節,抑制噪聲,更好地保存 X 線圖像中的病灶信息。CLAHE 算法的實現步驟如下所示[14]:
(1)將胸部 X 線圖像分為 M × N 個不重疊的圖像塊。
(2)計算每個分割后的圖像塊的灰度直方圖,將圖像塊的像素平均到各個灰度級,灰度級的平均像素數 可由下式求出。
![]() |
其中 Ng 是圖像塊中灰度級的數量,Nxp 是圖像塊 x 軸方向的像素數,Nyp 是圖像塊 y 軸方向的像素數。
(3)將灰度直方圖中大于 NL 的值截掉,NL 可以由下式求出:
![]() |
其中 S 為截取系數。求出截取部分的像素數,再求出截取到的像素總數平均到每個灰度級的像素數。
(4)直方圖均衡化。對每個圖像塊的直方圖進行均衡化,利用變換函數得到變換后的灰度值。圖 2 是 X 線圖像經過 CLAHE 算法處理前和處理后的對比。

1.2 DWSDenseNet 網絡
傳統的圖像處理是由手工提取圖像特征結合機器學習完成[15],手工提取圖像特征的能力有限,往往不能很好地表達圖像的復雜特征。隨著深度學習的發展,尤其是卷積神經網絡的出現,打破了傳統的手工提取圖像特征的方式。卷積神經網絡是一種前饋神經網絡,在圖像處理方面的表現尤為突出,能夠將大數據量的圖片降維到小數據量,并有效地保存圖像的深層特征。卷積神經網絡使用反向傳播算法進行訓練,極大地提高了圖像分類的準確度。卷積神經網絡一般由卷積層(convolutional layer)、池化層(pooling layer)、全連接層(fully connected layer)組成[16],如圖 3 所示。

最經典的卷積神經網絡 LeNet 出現在 1998 年,應用于手寫數字識別[17]。在以往的神經網絡中,往往使用多個全連接層作為分類器,但全連接層的參數量較大,且容易產生過擬合,在 NIN 網絡中[18]使用全局平均池化層(global average pooling)來代替全連接層,有效地減少了網絡的參數。隨后出現的 DenseNet 采用了一種非常密集的連接方式[19]。傳統的 DenseNet 網絡層數較深,參數量龐大,Huang 等[20]提出了一種改進的 PCANet 聯合簡化的 DenseNet 的混合網絡,在多種醫學圖像分類上取得了很好的效果,其中簡化的 DenseNet 網絡被命名為 SDenseNet 網絡,本文模型即在此基礎上進行改進。
深度可分離卷積將所處理圖像的對應區域和通道拆分處理,首先處理區域特征然后考慮通道特征。深度可分離卷積最早由 Sifre 等[21]提出,劉媛媛等[22]將其用于復雜場景下秸稈檢測中,極大地降低了訓練參數量,且秸稈分割 mIoU 達到 94.3%。在常規的卷積運算中,需要同時考慮圖像對應區域的所有通道,而深度可分離卷積提出將這個過程分開。深度可分離卷積由兩個部分組成,第一部分是深層卷積(depthwise convolution),第二部分是逐點卷積(pointwise convolution),示意圖見圖 4。正是由于深度可分離卷積將傳統的卷積操作拆分開來,使得網絡參數量大大減少。

在臨床一線的影像學診斷中,往往需要既準確又快速地給出檢查結果,且由于功耗和相關硬件設備的限制,用于輸出結果的卷積神經網絡模型不能具有非常龐大的參數量,卷積神經網絡模型輕量化成為當務之急,而在保證模型性能的前提下盡量地降低模型的復雜度和參數量正是本文希望解決的問題。
本文提出的 DWSDenseNet 網絡采用深度可分離卷積來代替傳統卷積,實驗證明深度可分離卷積能夠有效地降低模型的參數量。假設輸入是一個通道數為 3、5 × 5 的圖像,輸出通道為 4,卷積核大小為 3 × 3,使用傳統卷積時,需要 108 個參數,而使用深度可分離卷積僅需要 39 個參數。本文將稠密塊中的部分卷積層更換,相比于改進前,改進后的網絡參數量下降了 43.9%。另外,本文還對傳統深度可分離卷積進行了改進。由于 Leaky ReLU 比 ReLU 能夠更大程度地保留信息,本文將卷積結構中的 ReLU 更換為 Leaky ReLU。傳統卷積過程和本文所改進的深度可分離卷積過程如圖 5 所示。

本文以 SDenseNet 網絡為基礎,采用其對稠密塊的改進,使用 BN-Conv-Leaky ReLU 作為基礎結構,并將稠密塊中第二個卷積層替換為本文所改進的深度可分離卷積層,以達到模型輕量化的目的。本文所提出的 DWSDenseNet 的網絡結構如表 1 所示。本文所提出方法的詳細步驟如下:

Step 1:將輸入的數據集按照 80% 和 20% 的比例劃分,train data,test data ←Dataset。
Step 2:使用預處理算法對數據進行處理。data←CLAHE(data)。
Step 3:輸入學習率 lr、權重衰減 wd、迭代次數 epoch 等參數,并初始化網絡,Init(DWSDenseNet(W,B)),其中 W 是權重,B 是偏差。
Step 4:將訓練數據輸入網絡,計算預測類別,并根據真實類別計算誤差 error(L(W,B))。
Step 5:根據上一步計算的誤差,優化參數 W←update_weight(error(L(W,B)),lr),B←update_bias(error(L(W,B)))。
Step 6:重復 Step 3 和 Step 4,直至達到迭代次數 epoch。
Step 7:將測試數據輸入訓練好的 DWSDenseNet 中,DWSDenseNet(W,B)←test data,計算分類的準確度、靈敏度和特異性。
2 實驗結果及分析
本文所用的實驗環境主要在 CPU 下進行,CPU 為 Core-i7,使用基于 Windows 的 MXNet 深度學習框架,使用 Python 編程語言對卷積神經網絡進行搭建。
2.1 實驗數據
本文使用的實驗數據來自于 COVID-19 Radiography Database 數據集(https://www.kaggle.com/tawsifurrahman/covid19-radiography-database)。該數據集由多個研究組織共同收集制作,主要是針對新冠肺炎病例、病毒性肺炎病例和正常圖像的數據庫。數據集分布情況如表 2 所示,包含了 1 341 張正常的 X 線圖像、1 345 張病毒性肺炎的 X 線圖像和 219 張新冠肺炎陽性的 X 線圖像,圖像格式為 PNG。

2.2 三分類實驗結果
首先將數據集進行預處理,使用 CLAHE 算法對訓練集中的胸部 X 線圖像進行處理,使用 CLAHE 算法可以抑制噪聲,增強對比度,更好地突出病灶信息。之后將胸部 X 線圖像的大小設置為 224 × 224,再將處理好的圖像輸入 DWSDenseNet 網絡中進行訓練,最后將測試集的數據輸入訓練好的網絡進行分類,并對分類結果進行統計分析。在訓練過程中,初始學習率設置為 1 × 10?3,根據訓練情況,采取了三次衰減策略,學習率每次縮小到之前的十分之一,初始的權重衰減值設置為 1 × 10?4,在學習率第三次衰減之后,將權重衰減的值設置為 0,分類函數設置為 softmax 函數,損失函數使用交叉熵損失函數,優化算法使用 Adam,Leaky ReLU 的參數設置為 0.3。圖 6 表示使用 DWSDenseNet 的訓練集和測試集準確率的變化圖,可以看出在第 25 輪前后訓練集準確率達到了 99% 左右,之后趨于收斂。測試集準確率在前期有比較明顯的震蕩,這是因為在前幾輪模型訓練中,模型還沒有很好地學習出合適的參數,在第 10 輪之后測試集準確率逐漸升高,在 30 輪之后逐漸收斂。

為了評估模型的有效性,本文與另外的卷積神經網絡進行比較,包括:VGG16[23]、ResNet18[24]、ResNet34[24]、DenseNet121[18]和 SDenseNet[19],使用同樣的圖像預處理算法,對預測結果進行評價。本文使用三個指標對模型進行評價,分別是準確率(accuracy,ACC)、靈敏度(sensitivity,SEN)和特異性(specificity,SPE),計算公式如下:
![]() |
![]() |
![]() |
其中 TP 代表真陽性(true positive),即正樣本被分到正確分類中的數量;FP 代表假陽性(false positive),即負樣本被分到正樣本類中的數量;TN 代表真陰性(true negative),即負樣本被分到負樣本類中的數量;FN 代表假陰性(false negative),即正樣本被分到負樣本類中的數量。由于本實驗是一個三分類實驗,且樣本分布不均勻,故采用加權平均準確率、加權平均敏感度、加權平均特異性來衡量模型,計算公式如下:
![]() |
![]() |
![]() |
![]() |
其中 Si 為第 i 個類別的樣本數,N 為樣本總數,wi 為第 i 個類別在總樣本中的占比。本文模型與其他模型比較的結果如表 3 所示。

由表 3 可以看出在新冠肺炎數據集上,采用本文 DWSDenseNet 模型的方法在準確率、靈敏度以及特異性上分別為 98.1%、97.8%、98.2%,三項指標均比 VGG16、ResNet18、ResNet34、DenseNet121 和 SDenseNet 模型高,在所有模型中準確率和靈敏度排名第一。SDenseNet 模型的方法在準確率、敏感度以及特異性上分別為 97.9%、97.1%、98.1%,相比于本文所提網絡,三個指標都略微低一些。與 SDenseNet 相比,DWSDenseNet 的參數量減少了 43.9%,但是分類效果并未下降。另外從 VGG16 的實驗結果可以看出,VGG16 的三個指標均為最低,但參數量最大,說明 VGG16 在新冠肺炎數據集上并不具有非常好的分類效果。各個模型的混淆矩陣如圖 7 所示。本文還另外引入了兩篇論文的模型進行比較。Chowdhury 等[25]采用多個模型在不使用數據增廣和使用數據增廣兩種條件下進行比較,由于本文未使用數據增廣,故與其在未使用數據增廣的準確率作比較,可以看出本文所提的模型在準確率和靈敏度上略微高于 Chowdhury 等使用的網絡,僅在特異性上本文所提模型略低。Bassi 等[26]使用遷移學習的方法對新冠肺炎數據集中的圖像進行分類,本文方法與其靈敏度相當。以上結果表明在新冠肺炎數據集上 DWSDenseNet 相比于其他卷積神經網絡模型,參數量更少,具有更好的分類效果。

2.3 二分類實驗結果
本節對模型在二分類任務中的分類效果進行評估。實驗分為三組,分別是新冠肺炎和正常組、新冠肺炎和病毒性肺炎組、正常和病毒性肺炎組。每組中都包含六個模型的實驗,以評估不同模型在不同分類任務中的效果。對模型使用準確率、靈敏度和特異性三個指標進行評估,計算公式見式(3)~(5)。不同組的二分類實驗結果如表 4 所示。由表 4 可以看出,在新冠肺炎和正常組分類中,本文模型在靈敏度上表現最好,SDenseNet 在靈敏度和準確率上也達到了很高的指標,DWSDenseNet 在準確率和特異性上距最好結果相差不到一個百分點,但參數量上相差巨大,本文模型的網絡參數量遠遠小于其他模型。在新冠肺炎和病毒性肺炎的分類中,SDenseNet 在準確率和靈敏性上達到 99.7% 和 100%,DenseNet121 在靈敏度方面也達到了 100%,相比于這兩者,本文所提出的網絡在準確率和特異性上達到最優,在靈敏度上還有待提高。在正常和病毒性肺炎的分類中,本文網絡在三個指標中表現均為最優,另外 SDenseNet 在特異性上也達到了最好的指標。由以上分析可知,本文所提出的網絡模型雖然參數量小,但在不同的二分類中,模型表現優異。本文模型與改進前的 SDenseNet 網絡的混淆矩陣如圖 8 所示。


3 結論
新冠肺炎治療的第一步,是從眾多病例中將新冠肺炎患者篩選出來,盡管最終確診依然主要依靠病毒核酸檢測,但影像學檢查簡單快捷,能夠幫助醫生更快地確定病灶信息,因此使用影像學篩選新冠肺炎患者已經廣泛地應用于臨床一線。新冠病毒傳染率高,導致大量的患者短時間內涌入醫院,對影像科醫生產生了極大的負擔,抗疫一線往往出現人員短缺的狀況,使用深度學習的方法可以很好地解決這個問題。本文提出了 DWSDenseNet 模型對胸部 X 線圖像進行分析,相比于 SDenseNet 網絡,DWSDenseNet 擁有更少的參數量。通過對比實驗可知,相較于傳統的卷積神經網絡模型,DWSDenseNet 網絡具有更好的準確率。本文模型降低了傳統 DenseNet 的網絡深度,對原始的稠密塊進行改進,加入了 Leaky ReLU 作為激活函數,使得訓練時收斂速度更快,之后融合深度可分離卷積神經網絡進一步降低模型的參數量。為了驗證模型的有效性,再次進行二分類的實驗,通過結果可知,DWSDenseNet 在三組實驗中均具有很好的表現。綜上可知,本文模型能夠在保證準確率的情況下,降低模型的參數量,從而加快了檢測速度。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。