葉 青,譚澤賢,張永梅
(北方工業(yè)大學 信息學院,北京 100144)
基于深度學習的肺炎X光片檢測很早就有應用,可以追溯到2017年Rajpurkar P等[1],他們指出可以將胸部X光片(chest X-Ray,CXR)檢查作為肺炎的主要篩查工具。而接下來就有越來越多的研究人員投入到基于X光片的肺炎診斷,例如Wang等[2]、Zhang等[3]、Khobahi等[4]、Hammoudi等[5]和Hemdan等[6]。這些研究算法主要可以分為二分類和三分類,二分類算法的分類結果為肺炎陽性和肺炎陰性,三分類算法結果則為健康、新冠肺炎(COVID-19陽性)、非新冠肺炎(普通病毒性肺炎/細菌性肺炎)。
由于二分類復雜度低,不確定性小,所以檢測準確而又快速。Hemdan等采用7種經典的深度學習模型訓練二分類網絡,發(fā)現(xiàn)VGG19和DenseNet201均能達到83%的最高準確率。但這樣的準確率還是有所不足,因此Narin等[7]使用經過ImageNet數(shù)據集預訓練的模型來訓練,其中經預訓練的ResNet50模型能夠達到98%的診斷準確率。
三分類的難點在于如何區(qū)分新冠肺炎(COVID-19陽性)和非新冠肺炎(普通病毒性肺炎/細菌性肺炎),兩者的X光片有著相似之處,而與正常人的胸片差別較大。為了應對這種情況,Hammoudi等設計了兩階段分類法,準確率達到了90.7%。
國內針對肺炎的四分類(正常、細菌性肺炎、普通病毒性肺炎、新型冠狀病毒肺炎)研究還很少,本研究認為四分類的研究難點在于如何區(qū)分普通病毒引起的肺炎和新型冠狀病毒引起的肺炎,兩種肺炎都屬于病毒性肺炎,在X光胸片上可能存在相似的情況,所以在區(qū)分上述兩種肺炎X光圖像時需要網絡具備多尺度的特征提取能力,能夠提取特征之間的細微不同。作為三分類的延伸發(fā)展,目的在于更好讓計算機輔助醫(yī)療,降低誤診率,但在這方面仍需要投入大量的研究。
目前,肺炎的胸部X光數(shù)據很少。網絡上的一些開源數(shù)據集非常相似,相互包含一部分數(shù)據。因此,我們選擇了兩個經典的肺炎數(shù)據集,Chest X-ray Images (pneumonia)[8]和COVID-19 Chest X-ray Database[9],它們被包含在大多數(shù)數(shù)據集中。
Chest X-ray Images(pneumonia)數(shù)據集包括5863張正常人、細菌性肺炎患者和普通病毒性肺炎患者的胸部X光圖像。該數(shù)據集包含在大多數(shù)肺炎數(shù)據集中,是區(qū)分肺炎患者與正常患者的高質量基礎數(shù)據集。
COVID-19 Chest X-ray Database共包含2905張來自正常人、細菌性肺炎患者和COVID-19患者(COVID-19陽性)的胸部X射線圖像。數(shù)據集由M.E.h.Chowdhury等[9]從所有發(fā)表的文章和在線資源中收集和索引。為了避免重復,M.E.h.Chowdhury等還將這些文章和胸部X光圖像與GitHub數(shù)據庫進行了比較。因此,數(shù)據集在數(shù)據的完整性和準確性上有很好的保證。
本研究將上述兩個數(shù)據集進行了整合,并對位置不正、非正面X光和各組織對比反差不明顯等質量不佳的圖像進行了剔除。整合后數(shù)據集中正常人肺部X光與其它三類肺炎患者的X光如圖1所示,圖1(a)為正常胸部X光片,可以顯示清晰的肺部,在圖像中沒有任何不正常的混濁區(qū)域;圖1(b)為細菌性肺炎,通常表現(xiàn)為局灶性葉實變;圖1(c)為病毒性肺炎,在兩肺中表現(xiàn)為彌漫性“間質”型。圖1(d)為新型冠狀病毒肺炎,新冠肺炎早期胸部X光圖像多無異常,可出現(xiàn)兩肺多發(fā)小斑片影或見質性改變。如果病情進一步發(fā)展至危重行時,表現(xiàn)為兩肺彌漫性實變陰影,會出現(xiàn)白肺的表現(xiàn)。
本文的數(shù)據分布見表1。由于本文使用的是整合數(shù)據集,數(shù)據集中數(shù)據的大小、亮度和對比度差異是不同的,因此我們需要對圖像進行預處理。同時,為了豐富圖像數(shù)據,隨機一半的圖像被翻轉并順時針(或逆時針)旋轉10°,這樣也可以降低過度擬合的風險。由于本文采用的是ImageNet的預訓練模型,因此需要對基于ImageNet的圖像數(shù)據進行標準化。我們調用torchvision提供的transforms方法來標準化數(shù)據。標準差和方差分別為[0.485,0.456,0.406]和[0.229,0.224,0.225]。
表1 用于研究的數(shù)據分布
基于深度學習的圖像識別通常包括以下幾個部分:圖像采集、圖像預處理和特征提取與分類。本文提出了一種胸部X光分類網絡,它能夠增強特征的利用率,增強對相似特征的描述能力,減少冗余特征。首先我們對胸部X光數(shù)據進行翻轉、旋轉和標準化等預處理操作來豐富特征的多樣性,再將預處理后的特征送入密集連接的高效通道注意力機制網絡來增強有用信息的傳遞同時抑制無用信息的傳遞,最后使用參數(shù)平滑過渡的特征分類層來增強對相似特征的描述能力,減少冗余特征??紤]到肺炎的X光數(shù)據較少,而深卷積神經網絡需要大量的數(shù)據,所以采用遷移學習的方法進行訓練。根據圖2所示的系統(tǒng)框架,對胸部X光分類網絡進行了測試,并與現(xiàn)有的研究方案進行了比較,ChXNet在整合后的數(shù)據集上取得了較好的效果,具有一定的實際應用價值。
本文提出了一種胸部X光分類網絡(ChXNet)來輔助肺炎的檢測。與傳統(tǒng)卷積網絡相比,胸部X光分類網絡使用密集連接的高效通道注意力機制網絡來增強有用信息的傳遞同時抑制無用信息的傳遞,這樣使網絡能夠對X光圖像特征圖中不同通道的特征進行有重點的學習,同時抑制對診斷疾病沒有用的特征信息。再通過多層過渡分類結構來增強對相似特征的描述能力,減少冗余特征。該分類結構使用了Dropout方法[10]來減小冗余特征,并通過多層的全連接層進行特征的過渡,相較于傳統(tǒng)一層的分類網絡對特征有著更好的特征描述性。本文提出的ChXNet網絡架構其整體網絡結構如圖3所示。
將預處理后的胸部X光圖像經過密集連接的高效通道注意力機制網絡之后,就能得到胸部X光圖像的特征圖,特征圖中包含著X光圖像的像素級特征,將大量的特征圖進行拼接得到全通道特征,再送入多層過渡分類結構,該結構會剔除全通道特征中的冗余特征,增強特征的描述性,從而得到更準確的分類結果。將分類結果與常用的5種卷積網絡進行比較,從而測試ChXNet的性能。
在ChXNet的特征提取結構中,本文借鑒了DenseNet[11]的密集連接機制和ECA-Net的高效通道注意力機制[12],提出了密集連接的高效通道注意力機制網絡作為ChXNet的特征提取網絡,其結構見表2,其中DECA模塊為密集連接的高效通道注意力模塊。
DenseNet通過連接通道上的特征來實現(xiàn)特征重用。這些特性使得DenseNet能夠以較少的參數(shù)和計算開銷獲得比ResNet[13]更好的性能。ResNet網絡添加了跳躍鏈接, 用恒等函數(shù)繞過非線性變換,即輸入改變
X=H(X)+X
(1)
ResNet的優(yōu)點是梯度直接通過特征函數(shù)從后面層流向前面的層,然而特征函數(shù)和H輸出求和可能阻礙網絡中的信息流。
與ResNet相比,DenseNet引入了從任何層到所有后續(xù)層的直接連接:即H層是有前面每一層進行拼接得到的特征
表2 ChXNet的特征提取結構
X=H([X0,X1,…,X])
(2)
這樣的做法使得DenseNet能夠提高特征的利用率,減少參數(shù)量。對于胸部X光分類網絡來說能夠充分利用X光圖像的特征,從而提高檢測準確率和檢測速度。
Wang等提出的高效通道注意力模塊(efficient channel attention module,ECA)是一種輕量級注意力機制模塊,一種無降維的局部跨通道交互策略,該策略可以通過快速一維卷積有效地實現(xiàn)。此外,Wang等開發(fā)了一個通道維數(shù)的函數(shù)來自適應地確定一維卷積的核大小,它代表了局域交叉通道相互作用的覆蓋范圍。
ECA模塊的結構如圖4所示,ECA模塊使用一維卷積來生成通道權重,其中卷積核大小k由通道維數(shù)C*自適應確定。給定大小為 [X,C,H,W] 的特征經全局平均池化后,再經過卷積核自適應的一維卷積得出未激活的權重信息,使用Sigmoid函數(shù)激活后與出示給定的特征進行相乘,得到大小為 [X′,C,H,W] 的特征,該特征包含著增強后的有用信息和被抑制的無用信息。
ECA模塊使用一維卷積而避免降維,使通道與其權重之間直接對應,更容易得到最準確的權重信息,與其它通道注意力相比降低了計算復雜度。公式表示如下
ω=σ(C1Dk(y))
(3)
其中,y表示通道特征,ω表示通道特征y的權重,C1D表示一維卷積,σ表示Sigmoid激活函數(shù),下標k表示一維卷積的自適應卷積核大小。
自適應卷積核大小k與通道維數(shù)C*有著映射關系,映射關系如公式所示
C*=φ(k)≈2(γ*k-b)
(4)
式中:φ表示核大小k與通道維數(shù)C*之間的映射關系,γ和b在本文中分別為2和1。
借鑒DenseNet的密集連接機制,我們將ECA模塊與密集連接機制結合,提出了密集連接的高效通道注意力機制網絡。
DenseNet的密集連接與ChXNet的密集連接的不同之處如圖5所示。DenseNet直接將前面所有卷積單元在通道維度相連后作為當前單元的輸入,我們提出的網絡與之不同, 密集連接的高效通道注意機制網絡將前面所有卷積單元的特征圖在通道維度相連后先進行加權,即將一維卷積獲得的權重與特征圖進行相乘,之后再作為當前卷積單元的輸入,從而形成了高效通道注意力模塊。因此通過學習網絡能夠高度地關注 X 光圖像特征圖不同通道的重要程度,從而抑制對診斷無用信息的表達,促進有用信息的表達,以此來增強網絡對肺炎的分類性能。
在ChXNet的多層過渡分類結構如圖6所示。從特征提取層出來的全通道特征首先通過一個全連接層,輸出1024個通道特征,經過ReLU函數(shù)激活后進入Dropout層,Dropout層會隨機對一半的特征進行“刪除”(即圖中p=0.5),接下來再進入一個全連接層,輸出512個通道特征,同樣再次經過ReLU激活函數(shù)作用后進入Dropout層進行冗余信息的剔除,最終進入最后一個全連接分類層,得到我們的分類結果。與傳統(tǒng)一層的全連接層分類網絡不同,這樣的結構能夠剔除冗余特征,增大關鍵特征的利用率。多層過渡的分類結構對特征有著更好的描述性,能夠更加準確的對特征進行分類。
本實驗是在兩個經典的肺炎數(shù)據集上進行的,即Chest X-ray Images (pneumonia)和COVID-19 Chest X-ray Database。實驗在三分類和四分類檢測下進行。分別讓5種常用卷積模型和ChXNet進行對比實驗,同時與已有的研究結果進行了比較。本文的實驗條件為:系統(tǒng)為Win10,CPU為I9-9900KF,GPU為RTX2080Ti,內存32 GB,采用pytorch框架。在上述硬件條件下,經過大量的實驗驗證,本文提出的ChXNet具有準確率高速度快的特點,可以作為一種可靠的快速分診和輔助診斷方法。
在三分類檢測中,我們將數(shù)據分為正常、新型冠狀病毒肺炎、非新型冠狀病毒肺炎(細菌性肺炎和普通病毒性肺炎)三類。實驗結果見表3,我們的ChXNet在準確率上高于5種常用卷積網絡。
表3 三分類實驗結果
InceptionV3[14]模型內部含有非對稱的卷積拆分結構,相比于其它層數(shù)相同的網絡結構提取出的特征更豐富,冗余特征較少,所以準確率甚至比層數(shù)更多的網絡高。由于新冠相關實驗數(shù)據較少,所以使用結構過于復雜的網絡不一定能夠獲得更好的結果,反而會導致一定程度的準確率下降(過擬合),如表3中的DenseNet121和DenseNet169,網絡加深并沒有讓DenseNet169取得更高的準確率,反而低于DenseNet121。本文提出的ChXNet在與DenseNet169相近的網絡層數(shù)下,減小了因過擬合帶來的準確率下降,使得其準確高于DenseNet121,可見本研究提出的ChXNet在降低過擬合的風險,減少冗余的特征向量上有著顯著的作用。
本文比較了5種卷積網絡與ChXNet在訓練過程中的驗證概率,結果如圖7所示。圖7(a)是InceptionV3與ChXNet的對比,得益于非對稱卷積的結構[14],InceptionV3雖然沒有很深的網絡層數(shù),仍有著不錯的準確率,但我們的ChXNet準確仍比InceptionV3高。在圖7(e)中,在層數(shù)相近,同樣使用密集連接的機制下,我們的ChXNet比DenseNet169取得了更高的準確率。以上充分說明ChXNet在對肺炎的檢測上有著優(yōu)于傳統(tǒng)卷積網絡的準確率。
每個類別的具體情況如圖8所示的混淆矩陣。使用ChXNet作為胸部X光分類網絡在識別肺炎上有著極高的準確率,但非新冠肺炎(細菌性肺炎和普通病毒性肺炎)和正?;颊叽嬖谥煜H说姆尾縓光胸片相較于肺炎患者特征不明顯,若X光片存在銳利度和影像密度不佳的區(qū)域,則會被網絡作為特征進行提取。使用ChXNet進行肺炎X光檢測,在區(qū)分非新冠肺炎(細菌性肺炎和普通病毒性肺炎)和新冠肺炎上有了提升,有著極低的誤診率。
本研究將實驗結果與現(xiàn)有國內外研究進行了對比,這些研究使用的數(shù)據集與本研究使用的數(shù)據集存在較大的交集,對比數(shù)據見表4。
在三分類檢測下,使用本研究的檢測方法。每張胸部X光片檢測時間約為1.15 s,即只需要約1.15 s就能判斷出是否為新冠肺炎。遠超具有豐富臨床經驗的醫(yī)生。
三分類實際檢測結果如圖9所示。本文的方法對檢測肺炎X光片有著極高的準確性。非新冠肺炎、正常和新冠肺炎圖中的準確率分別為99.49%、98.79%和99.54%。
表4 三分類與近期研究對比
在四分類檢測中,我們將數(shù)據分為正常、新型冠狀病毒肺炎、細菌性肺炎、普通病毒性肺炎4類。四分類的難點在于如何分清病毒性肺炎之間的區(qū)別。在這方面國內外的研究還很少,大多數(shù)都止步于三分類,所以這是在基于X光胸片的肺炎檢測上新的嘗試。
實驗結果見表5,我們的ChXNet在準確率上高于5種常用卷積網絡。得益于ChXNet中密集連接的高效通道注意力網絡和多層過渡分類網絡,提取特征時對診斷的有用的特征被增強,無用的特征被抑制,分類時減少了冗余特征,對特征有著更好的描述性。我們的ChXNet在同樣的深度下減小了過擬合的情況,提升了準確率,針對肺炎有著更好的檢測效果。
表5 四分類實驗結果
為了更貼近實際人為診斷,我們對ChXNet進行了混淆測試,混淆矩陣如圖10所示。從圖中可以看出,ChXNet對于COVID-19的檢測效果很好,相對容易混淆的在普通病毒性肺炎和細菌性肺炎之間,新型冠狀病毒肺炎和非新冠肺炎(細菌性肺炎和普通病毒性肺炎)之間,但總體仍好于傳統(tǒng)醫(yī)生。
現(xiàn)有基于X光胸片的肺炎四分類研究較少,本研究只與Mangal A等[15]的研究進行了對比,在數(shù)據集有著很大交集的情況下,對比結果見表6。
采用ChXNet進行四分類檢測,每幅胸片的檢測時間約為1.22 s。也就是說只需要1.22 s就可以檢測出一個人患有哪種類型的肺炎。
表6 四分類與近期研究對比
四分類檢測示例如圖11所示。新冠肺炎、細菌性肺炎、正常和普通病毒性肺炎的準確率分別為98.99%、98.98%、98.97%和97.46%。
在本研究中,我們提出了胸部X光分類網絡(ChXNet),該網絡在提升肺炎檢測率上有著顯著的作用。實驗取得三分類和四分類檢測的最高準確率分別為99.845%和97.842%,并且高于同期其它研究成果。在混淆測試中,使用ChXNet進行混淆測試能夠有效區(qū)分正常與肺炎、細菌性肺炎與其它肺炎,極大地降低了誤診率。和傳統(tǒng)醫(yī)生相比,不需要豐富的診斷經驗,不會疲勞,有著極低誤診率的同時節(jié)省了大把的時間。以上說明本研究提出的胸部X光分類網絡在肺炎的檢測上有著極大的應用價值,可作為快速分診、輔助檢測的手段,對今后肺炎的輔助診斷具有前瞻性的意義。