劉學思,聶瑞,張和華,楊利,段傲文
陸軍軍醫大學大坪醫院 醫學工程科,重慶 400042
肺結核是由結核分枝桿菌引起的傳染性極強的肺部疾病,屬于國家乙類傳染病[1]。世界衛生組織(WHO)報告稱2010年至2019年結核病雖然不再是世界十大死亡因素之一,但在中低收入和低收入國家仍然是第七及第八大致死因素[2],不容忽視。據WHO統計我國2019年新增肺結核病例83.3萬,占全球總數的8.4%[2],在肺結核的防治方面,我國仍然面臨著巨大的壓力[3]。肺結核的治療方針是“早期、規律、適量、聯合、全程”,而早期發現顯然是最重要的[4]。目前肺結核的篩查手段主要是X線影像加痰涂片,X線胸部正位平片多作為首要篩查手段[5]。在醫療條件欠佳的基層單位,肺結核的篩查多依靠入職體檢或每年一次的常規體檢X線胸片檢查[6]。由于體檢人數多、過程快,外加基層醫生閱片經驗不足導致肺結核疾病診斷的漏診率、誤診率較高[7]。尤其在一些特殊性質如學校、軍隊等既立足于自我醫療保障又相對封閉管理的集體生活單位,一旦發生漏診誤診,極容易造成大規模感染,擾亂學生的正常學習生活秩序[8]、影響部隊戰斗力[9],后果嚴重。因此,如何能夠盡可能地降低基層醫生在X線閱片中肺結核的漏診率成為迫切需要解決的問題。
為了解決上述難題,國內外開展了一系列的研究[10-16],主要是采用人工智能的方法,對肺結核進行輔助診斷。綜合現有文獻,肺結核分類算法主要分為3類,即機器學習算法、深度學習與機器學習結合算法和深度學習算法。
機器學習算法主要采用人工特征提取的方式,由有經驗的醫務人員勾畫出感興趣區域(Region of Interest,ROI),再由支持向量機(Support Vector Machines,SVM)、極限學習機(Extreme Learning Machine,ELM)、在線順序超限學習機(Online Sequential Extreme Learning Machine,OSELM)等分類器對特征進行分類,Govindarajan等[14]利用ELM和OSELM分類器,在蒙哥馬利(Montgomery)公共數據集上實現了99.2%的肺結核分類準確率。此方法最大的優勢在于樣本需求量小、分類特征準確;缺點在于人工提取特征成本高、模型泛化能力弱。
機器學習與深度學習結合算法主要利用深度學習的經典神經網絡如VggNet、Resnet、Inception等先對肺結核圖像進行特征提取,再將提取到的特征傳輸到機器學習分類器中如SVM、XGBoost等,最終實現肺結核影像的分類。Rahman等[15]利用DenseNet 201網絡提取肺結核圖像的特征,再利用XGBoost分類器實現了99.92%的分類準確率。此方法優點在于分類準確率高、效果好;缺點在于特征提取和分類需分開進行,操作繁瑣且模型不便部署。
深度學習算法仍然是目前研究的主流,可以分為卷積神經網絡與視覺轉換網絡。對于卷積神經網絡,Oloko-Oba等[16]列舉了目前深度學習在肺結核胸部X線正位圖像分類中的應用,較為常見的深度學習神經網絡為Inception、DenseNet、AlexNet、ResNet和 VggNet,其 中 VggNet網絡使用頻度最高。Alawi等[17]利用自己構建的卷積神經網絡,取得了目前肺結核分類深度學習網絡中最高的準確率(98.71%)。深度學習的優點在于人工參與較少,使用方便,權值共享模式使網絡復雜度降低;缺點在于圖像輸入大小固定,圖像壓縮會損失較多細節。目前,卷積神經網絡中最具代表性的是Liu等[18]2022年提出的ConvNeXt深度學習神經網絡,其算法搭建更加簡潔,相較傳統的神經網絡其參數更少、結構更加優化,同時在自然數據集上的訓練效果達到了87.8%的最高準確率,成為了目前分類效果最好的基礎神經網絡。
視覺轉換網絡主要代表的是Vision Transformer(ViT)網 絡與 Swin Transformer(SwinT)網絡,ViT網絡是Dosovitskiy等[19]在2020年提出的,創新性地將語言識別網絡應用至圖像識別領域。Duong等[20]混合使用EfficientNet和ViT網絡實現了肺結核的分類,準確率達到97.72%。ViT網絡的優勢在于其是不同于傳統意義的卷積神經網絡的另一種網絡結構,在多模態應用方面有著極大突破,且在大型自然數據集上的分類效果要遠高于經典神經網絡。缺點在于圖像分辨率高,像素點多,基于全局自注意力的計算導致計算量十分龐大。
針對這一問題,2021年Liu等[21]提出了一種包含滑窗操作、具有層級設計的SwinT網絡。SwinT網絡采用滑動窗口和分層結構成為了機器視覺領域的新主干網絡。在圖像分類任務中,通過與卷積神經網絡相似的分層結構來處理圖片,使模型能夠靈活處理不同尺度的圖片,能夠將原始的ViT網絡計算復雜度從指數級別(h*w)2降低至線性級別M2*(h*w),其中h表示圖像的高,w表示圖像的寬,M表示每個窗口中patch的數量。SwinT網絡的優勢在于不受圖像輸入大小的限制,計算復雜度低,且在自然圖像數據集中的分類性能也超過了ViT網絡。
綜上所述,SwinT網絡、ViT網絡及ConvNeXt網絡有著各自的優勢,結合現有文獻,國內外關于SwinT網絡和ConvNeXt網絡在肺結核圖像分類方面的應用研究未見報道,同時ViT網絡在肺結核的分類方面的報告也僅有1例。因此,探究SwinT、ViT以及ConvNeXt網絡較使用頻度最高的經典卷積神經網絡VggNet在肺結核分類任務中的使用效果優劣并篩選出分類性能最優的深度學習網絡是十分必要的。
數據集采用蒙哥馬利(Montgomery)和深圳醫院公共數據集,Montgomery結核病的標準數字圖像數據庫由美國馬里蘭州蒙哥馬利縣國家醫學圖書館與衛生與公眾服務部合作創建,是蒙哥馬利縣結核病篩查計劃下收集的X光影像數據,包括58例含肺結核病灶的胸部正位X線圖像和80例正常胸部正位x線圖像,數據格式為PNG,分辨率為4020×4892像素或4892×4020像素。深圳醫院結核病的標準數字圖像數據庫由美國馬里蘭州國家醫學圖書館與中國深圳廣東醫學院深圳第三人民醫院合作創建。胸部X光片來自門診診所飛利浦DR機日常工作采集,包括336例含肺結核病灶的胸部正位X線圖像和326例正常胸部正位X線圖像,數據格式為PNG,分辨率約為3000×3000像素。兩個公開數據集被合并成一個壓縮文件并可以通過如下鏈接獲得:http://archive.nlm.nih.gov/repos/chestImages.php。
為更好地比較網絡效果,本研究對數據集進行了融合與擴增。融合后的數據集大小為800張,其中包括結核病胸部正位X線影像(TB)394張、正常胸部正位片(normal)406張。由于原圖分辨率過大,網絡訓練成本高,因此先將原始圖像進行了resize操作,使原始圖像分辨率統一降至512×512像素,再對兩種分類分別采用水平翻轉、平移(-50,-50)個像素、逆時針旋轉10°、變暗4種數據增強方法進行擴增。為了保持normal類和TB類數據均衡,手動剔除了60例使用變暗增強的數據,最終每類數據為1970張,共3940張。原始數據及擴增后的數據分布如表1所示。

表1 原始數據集及擴增后數據集數據分布
數據集按照60∶20∶20的比例隨機劃分訓練集、驗證集與測試集,具體分布如圖1所示。

圖1 數據集數據分布
1.3.1 實驗設置
本研究基于騰訊云服務器完成,操作系統為Windows Server 2016,GPU 為 Tesla 7,編譯平臺為PyCharm Community Edition 2021.2.1、編譯器為 Python 3.7、編譯環境為 Pytorch 1.7、Torchversion 0.8.0。實驗中超參數設置:Epoch:50、Freeze Epoch:25、Batch Size:32、Learning Rate:0.0001。優化器采用Adam優化器,loss函數采用交叉熵函數。其中,Epoch分為兩個部分,即凍結訓練(Freeze Epoch)與解凍訓練(Unfreeze Epoch)。凍結訓練是指將網絡主干部分凍結只訓練全鏈接層參數,解凍訓練是指進行全部參數訓練。
1.3.2 實驗設計
采用遷移學習的微調(Fine-tune)[22]方法,首先對VggNet-16(Vgg-16)和 VggNet-19(Vgg-19)網絡進行訓練,將訓練結果作為基線,再分別對SwinT、ViT、ConvNeXt的網絡進行訓練,每個網絡分別加載Base和Large兩種預訓練權重,實驗采用相同的訓練集、驗證集及測試集,保證結果的可比較性。對驗證集上首次出現準確率最高的Epoch對應的模型進行保存,利用保存的模型分別對測試集數據進行測試,保存評價指標。
利用模型測試代碼對保存的各網絡模型計算并記錄模型參數量、計算復雜度(FLOPs)模型大小及CPU推理時間。
利用Grad-CAM工具分別對SwinT、ViT、ConvNeXt網絡保存的模型進行熱力圖可視化。
1.3.3 評價指標
本實驗采用準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1 score、混淆矩陣以及受試者工作特征(Receiver Operating Characteristic,ROC)曲線作為分類效果評價手段。其相關公式表達如式(1)~(4)所示:

其中,TP、TN、FP、FN分別表示真陽性、真陰性、假陽性、假陰性的數量。
混淆矩陣以預測標簽作為橫軸、真實標簽作為縱軸形成矩陣圖,主對角線上的數字越大說明分類效果越好。
ROC 曲線是以假陽性率(False Positive Rate,FPR)作為橫軸、真陽性率(True Positive Rate,TPR)作為縱軸通過改變閾值形成的曲線,曲線下面積(Area Under Curve,AUC)越接近1說明分類效果越好。
2.1.1 準確率等評價指標對比情況
對于肺結核混合數據集的分類任務各網絡效果對比如表2所示。從表2中可以看出,作為基線的Vgg-16和Vgg-19網絡的準確率分別為95.18%和93.78%,F1 score分別為95.23%和93.76%。SwinT-Base和SwinT-Large網絡的準確率分別達到98.60%和98.85%,F1 score分別達到98.61%和98.86%。ConvNeXt-Base和ConvNeXt-Large網絡精確率最高達到了98.70%和100%。

表2 肺結核分類效果對比
2.1.2 混淆矩陣對比情況
混淆矩陣如圖2所示。從混淆矩陣中可以看出,8個網絡的假陽性例數分別為:23、23、12、8、8、7、4、0,假陰性例數分別為:15、26、21、9、3、2、89、115。

圖2 各網絡混淆矩陣
2.1.3 ROC曲線對比情況
以FPR為橫軸、TPR為縱軸繪制各網絡的ROC曲線,結果如圖3所示。從圖3中可以看出,所有網絡AUC值均大于0.5,其中Swint-Large網絡AUC值最高為0.9992,Vit-Large網絡與Swint-Base網絡AUC值接近分別為0.9981和0.9974。AUC值最小的是ConvNeXt網絡為0.9872。

圖3 各網絡ROC曲線
為了更好地了解網絡結構優化情況,對所訓練的網絡進行參數量、計算復雜度、模型大小和推理時間的對比,結果如表3所示。

表3 網絡模型參數及推理時間
從表3中可以看出,對于Base網絡,Swint-Base網絡的FLOPs最低為15.1 G,參數量和模型大小最小的是Vit-Base網絡分別為 85.6 M 和 343.3 M。對于 Large網絡,Swint-Large網絡參數量、計算復雜度及模型大小均取得了最小值,分別為194.8 M,34 G和780.6 M。從CPU推理時間上看,單張圖像推理時間最短的仍然是VggNet的兩個網絡,均低于0.1 s,推理時間最長的為Vit-Large網絡為0.54 s。
由于深度學習網絡的“黑匣子”機制,我們無法了解模型是用哪些特征來進行分類的,因此為了確定模型分類注意力是否正確,使用熱力圖可視化Grad-CAM[23]方法對模型的注意力機制進行探究。由于VggNet網絡已有大量研究基礎,故本文不再對VggNet進行熱力圖可視化操作。選取測試集中normal樣本和TB樣本各20例,分別對每個模型進行熱力圖生成,對于ConvNeXt網絡選取“stages[-1]”特征層,對于ViT網絡選取“blocks [-1].norm1”特征層,對于SwinT網絡選取“norm”特征層進行熱力圖成像。選擇其中3個正常圖像和3個肺結核圖像數據進行展示,成像結果如圖4所示,前3行為正常肺部影像,后3行為肺結核影像。圖4結果顯示,ViT網絡熱力圖顏色分布十分分散,而相反ConvNeXt網絡熱力圖顏色分布過于集中,SwinT網絡熱力圖顏色分布主要集中在肺部。

圖4 各網絡熱力圖可視化
本研究對SwinT網絡預測錯誤的圖像單獨生成熱力圖,其中Swint-Base網絡預測錯誤圖像熱力圖如圖5a所示,Swint-Large網絡預測錯誤圖像熱力圖如圖5b所示。從圖5可以看出,SwinT網絡一部分將正常的肺紋理識別為了病灶,一部分錯誤的將胃腸道的積氣影識別為病灶影像。

圖5 SwinT網絡預測錯誤圖像熱力圖
從網絡性能對比實驗結果中可以看出,ViT網絡及SwinT網絡整體性能超過VggNet網絡,且SwinT-Large網絡性能最優。從圖2混淆矩陣中可以看出SwinT-Large網絡假陰性2例,假陽性7例,是所有網絡中分類錯誤最少的。
從圖3的ROC曲線上可以看出,所有網絡AUC值均大于0.5,表明各網絡均可實現肺結核的分類,但分類效果最好的仍然是SwinT-Large網絡,其AUC值為0.9992最為接近1。SwinT-Large網絡在肺結核混合數據集上的分類準確率達到98.85%,略高于Alawi等[17]實現的最高準確率(98.71%),精確率為98.24%,召回率為99.49%,F1 score為98.86%,分別比Vgg-16網絡相應指標高出3.67%、3.96%、3.3%和3.63%。除精確率指標略低于ConvNeXt網絡外,其他評價指標均達到最高值。ConvNeXt-Large網絡精確率達到100%的原因是由于模型為了獲得更少的假陽性樣本而產生了更多的假陰性樣本,從圖2中可以看出其假陰性樣本例數達到了115例,ConvNeXt-Base網絡也存在同樣的問題。在實際應用中肺結核的漏診(假陰性)相較于肺結核的誤診(假陽性)造成的后果往往更加嚴重,如此高的漏診率臨床上是無法接受的。
從表3可以看出,SwinT-Base、ViT-Base及ConvNeXt-Base網絡的參數量、計算復雜度(ViT-Base除外)及模型大小均小于Vgg-16和Vgg-19網絡。其中SwinT-Base的計算復雜度最小為15.1 G,即有著最小的計算復雜度,這與Liu等[21]通過移動滑窗設計減少了網絡計算復雜度的結論一致。
其參數量和模型大小與Vit-Base網絡、ConvNeXt-Base網絡接近,同時Swint-Large網絡在Large網絡中參數量、計算復雜度及模型大小均取得了最小值,說明SwinT網絡結構優化更加合理,能夠在更少的參數下取得更加準確的結果。CPU單張圖像推理時間均在1 s以內,各網絡相差不大,此推理時間在實際應用中完全能夠滿足使用需求。
熱力圖中顏色越深表示對結果預測貢獻越大。從圖4可以看出,ViT網絡熱力圖注意力分布十分分散,無用特征參與過多,結果可信度低。而ConvNeXt網絡熱力圖注意力過于集中,只利用了肺部的局部特征,忽略了大量的有用信息,且對正常圖像的分類特征提取有誤,注意力多集中在心影處,這也是ConvNeXt網絡在測試集上預測效果較差的原因所在。SwinT網絡熱力圖注意力分布主要集中在肺部,特征提取最為準確,這也是SwinT網絡分類效果最好的原因。對圖5錯誤預測圖像的熱力圖進行分析可知:肺門處的血管集合影像易與肺結核的索條影混淆,導致部分正常的肺紋理被錯誤地預判成病灶;而胃腸道集氣影像因人而異,并不是所有病例中都會出現,若該影像只出現在某一類病例中,便容易被模型誤判為分類特征,造成分類錯誤。由于圖像分類任務是對圖像整體進行特征篩選,為避免有些無用的特征被網絡錯誤識別,有幾種解決辦法:① 圖像預處理時,采用分割網絡將肺部區域單獨識別進行分割操作[24],將其他組織視作背景全部置為0,即黑色,這樣可以減少無關特征的參與,提高分類準確率;② 將伴有胃部腸道影的患者圖像整合到其他患者圖像中,使其既在正常類中出現也在異常類中出現[25];③ 增加數據,搜集更豐富的原始數據,如不同國家、不同地區、不同年齡、不同性別的圖像等或采用信息更豐富的CT數據[26]。
SwinT網絡在肺結核X線圖像分類任務中取得了準確率98.85%的優異成績,在目前單獨采用深度學習網絡的肺結核分類任務中效果最優,其分層設計及采用移位窗口方法的自注意力機制使特征自動提取更為準確,能夠有效減少如ViT網絡和ConvNeXt網絡注意力過于分散或過于局限導致的特征提取不準確的問題。另外,SwinT網絡具有相對較低的網絡參數和計算復雜度,且相對較小的模型和相對較快的推理速度,在模型應用部署上更有優勢。因此,SwinT網絡為肺結核醫學影像分類任務提供了一種不同于卷積神經網絡且完全可行的深度學習方法,有利于推動人工智能在肺結核X線影像輔助診斷方面的快速發展,對醫學影像學的發展意義重大。SwinT網絡不僅可以用于肺結核X線影像的分類任務,還可以擴展至其他醫學影像分類、識別、分割甚至多模態任務,Liu等[21]指出該網絡具有作為主干網絡的巨大潛力,因此SwinT網絡作為主干網絡的圖像分類識別任務必然會成為接下來的研究熱點。