王夢南,趙涓涓+,肖 寧,郝 瑞
(1.太原理工大學 信息與計算機學院,山西 晉中 030600;2.山西財經大學 信息學院,山西 太原 030001)
目前肺結節檢測系統通常包括兩個階段:候選結節檢測和假陽性降低[1-3]。候選結節檢測階段的目標是采用高靈敏度,不考慮特異性的方法盡可能多提取候選結節。也就是說,超過99%的候選結節并非真結節[4,5]。因此大量粗選候選結節交由假陽性降低階段處理。
圖1中第一層為結節的二維切片圖,第二層為結節的三維圖。可以看出結節在大小、形狀、強度、體積等形態學特征方面存在很大的差異。此外,胸部還有許多形態特征與結節相似的其它組織(如血管、氣管、淋巴結等)。這些因素導致候選結節檢測出現高假陽性。因此如何有降低假陽性是目前計算機輔助診斷系統(computer-aided detection,CAD)研究的重點和難點[5-7]。在早期的CAD工作中,主要是利用結節的病理知識提取形態學特征,并應用相對簡單的線性分類器完成檢測工作。但是手工制作的特征不能檢測到復雜類型的結節(如部分實性結節或磨玻璃結節),導致檢測結果中假陽性較高。最近,深度神經網絡(deep neural networks,DNNs)開始用于醫學圖像分析[8-10]。在各種深度模型中,卷積神經網絡(convolutional neural networks,CNNs)在CT圖像中用于肺結節的檢測和分類最為成功[5,11]。

圖1 不同肺結節的二維形態和三維結構
如Roth等[12]從3個正交視圖中的感興趣點獲取淋巴結切片圖像,用于訓練2.5D CNN模型。Setio等[4]使用2D CNN網絡進行肺結節檢測。但是,基于2D CNN的深度模型不能充分利用CT圖像的三維空間信息,導致假陽性難以降低。Ding等[13]提出了以單尺度三維圖像作為輸入的3D CNN,使檢測性能有所提升,但是由于肺結節自身尺度不一樣,單個尺度輸入的3D CNN很難獲取肺結節全面的鄰近背景信息,導致檢測性能的提升較為不易。基于此,Shen等[14]提出了多尺度CNN,Dou等[5]、高慧明等[15]設計了一個多尺度3D CNN應對肺結節間差異大的挑戰,有效降低了假陽性。但是最終的分類結果是通過加權3個網絡的預測概率得出,每個網絡的權重是人工設置的,而不是在訓練過程中學習的。這種方式既麻煩又很難達到假陽性降低最優效果。
此外,上述方法都采用了傳統的卷積神經網絡,采樣點不能隨著候選結節的形狀變化,難以高效全面地提取候選結節的特征。受上述研究啟發,本文提出了一種多尺度漸進集成可變形卷積神經網絡來降低肺結節檢測中的假陽性。
本文提出的漸進集成可變形卷積神經網絡用于肺結節假陽性降低的新方法主要包括3個部分:輸入設置、漸進特征提取和多流特征集成。
本文根據Dou等[5]提出的方法,根據醫師標注的結節中心坐標切割了20×20×6體素、30×30×10體素、40×40×26體素,3個不同尺度的結節塊,分別覆蓋了數據集中58%、85%、99%的結節。其中,小尺度的結節塊能為中小結節提供精確的形態信息;中尺度的結節塊能為大結節保留邊緣信息,彌補在小尺度結節塊中丟失的邊緣信息;大尺度的結節塊能為結節提供豐富的鄰近信息,但是會給部分小結節帶來附近組織或者器官的噪聲。
然后將3個結節立方塊通過最近鄰插值調整為30×30×10體素,分別表示為V1、V2和V3,作為漸進特征提取模塊的輸入(圖2)。V1、V2和V3的結節立方塊具有相同的中心坐標,但是每個結節立方塊中的像素分辨率不同。

圖2 漸進特征提取
人類視覺神經系統是通過改變視野大小從所在場景中獲取有價值的上下文信息。因此,為了融合不同尺度結節的形態或結構特征,本文通過可變形卷積神經網絡根據候選結節形狀來提取特征,然后根據輸入順序漸進分層地融合不同尺度結節的信息,框架結構如圖2所示。
1.2.1 卷積方式的改進
可變形卷積神經網絡[16,17]通過添加一個分支網絡來獲取偏移量,并通過訓練來學習的偏移量。采樣點不再是原來的方形,而是隨著目標的形狀而變化。如圖3所示,如果目標的形狀是細長的,通過在輸入特征圖上的采樣點上增加偏移量,使得原始的方形采樣位置與該形狀類似,特征提取過程更加符合目標本身的特征,避免了無用信息的提取。

圖3 可變形卷積結構
在可變形卷積層中,前一層的輸出特征圖與一個3×3的卷積核進行可變形卷積運算,然后通過RELU激活函數,得到輸出特征圖。卷積過程使用零填充來保持輸出特征圖的大小與輸入結節立方塊的大小相等,從而可以有效地將特征圖與下一個不同尺度的輸入結節立方塊拼接。
1.2.2 漸進分層融合特征
漸進特征提取能夠通過改變輸入順序來縮放特征圖紋理。本文是將3個不同尺度的結節立方塊按尺度大小順序漸進地融合特征。有兩種漸進輸入方式,分別為V1-V2-V3(放大特征流輸入)和V3-V2-V1(縮小特征流輸入)。當漸進輸入方式為放大特征流輸入時,首先對V1尺度下的結節立方塊添加兩個卷積核為3×3的可變形卷積層,生成64通道的特征圖F1,將F1與下一個V2尺度下的結節立方塊進行拼接,即F1+V2。然后,將F1+V2張量添加兩個卷積核為3×3的可變形卷積層,生成128通道的特征圖F12,F12融合了V1和V2的綜合上下文信息。然后將F12與下一個V3尺度下的結節立方塊拼接,將F12+V3張量添加兩個卷積核為3×3的可變形卷積層,一個3×3的最大池化層,生成192通道的特征圖F123,F123融合了V1、V2和V3各個尺度的綜合上下文信息。對于縮小特征流輸入的漸進輸入方式,執行相同的操作。
在漸進特征提取網絡中,隨著輸入的切片數量越來越多,融合的結節特征越來越豐富。其中,放大特征流輸入的網絡的視野逐漸縮小,意味著網絡逐漸聚焦于一個結節區域。同理,縮小特征流輸入的漸進特征提取網絡中采用一種類似但相反的融合方式使網絡視野逐漸擴大,網絡通過逐漸聚焦鄰近區域,結合結節鄰近的上下文信息,可以融合更多的結節深層特征。兩種不同的漸進輸入方式會融合兩種相反的深層抽象特征。
由于放大特征流和縮小特征流以不同的輸入順序聚焦于圍繞候選結節不同尺度的形態和上下文信息,因此從不同流中學習到的特征可以相互補充來減少假陽性。
本文設計了一個如圖4所示的網絡來融合來自兩個流的特征信息,稱之為多流特征集成網絡。該模塊由輸入層、卷積層、池化層、全連接層、輸出層組成。在每個隱藏層之后插入批量歸一化層,來確保更高的學習速度和降低過擬合,并添加dropout層,進一步降低過擬合,最后在全連接層使用sigmoid激活函數,生成0到1之間的結節預測概率值。

圖4 多流特征集成


(1)
綜上所述,本文提出的網絡由漸進特征提取模塊以及多流特征集成模塊組成。在不同流輸入的漸進特征提取模塊中,連續的兩尺度結節立方塊輸入之間插入兩個可變形卷積層,在相同大小卷積核的情況下,特征圖的數量增加了18倍。為了簡化從卷積層輸出的信息,在特征圖F123后添加一個池化核為3×3,步長為2的最大池化層。池化處理以后添加兩個卷積核為3×3的卷積層得到一個256通道的特征圖。對不同流輸入的漸進特征提取圖進行元素級相加得到多流特征集成圖F,在F添加一個最大池化層,兩個卷積層以及兩個全連接層。最終輸出一個0到1之間的結節預測概率值,當預測值介于0.5和1之間時,該候選結節被檢測為真結節;介于0和0.5之間時,該候選結節被檢測為非結節。
本文在LUNA16[10]數據集和合作醫院數據集上進行了實驗評估。LUNA16數據集包含888張CT掃描圖像。經放射學專家標注篩選后獲得1186個結節。
合作醫院提供了267位病人的DICOM格式的肺部CT圖像,經放射學專家標注后共計356張CT掃描圖像,包括266個結節。由于CT掃描是在醫院各部門之間以復雜的程序進行流轉,并且只有一位放射學專家僅標注了肺結節的中心坐標,沒有標注結節直徑等其它特征,因此僅用來驗證模型的泛化能力和擴展數據集(已與醫院簽署數據隱私處理相關協議)。
LUNA16數據集和合作醫院數據集采用文獻[1,2,12]的肺結節檢測方法來提取候選結節。如表1所示,LUNA16數據集獲得了548 652個候選結節,其中有1291個和547 631個候選結節分別被標記為結節和非結節。對比放射學醫師的標注,1291個結節中有1120個結節是真結節;合作醫院數據集獲得了123 593個候選結節,其中有303個和123 290個候選結節分別被標記為結節和非結節。對比放射學醫師的標注,303個結節中有255個結節是真結節。

表1 候選結節統計數據

本文模型的實驗環境基于Windows10操作系統,硬件環境CPU為2.90 GHz Intel(R) Xeon(R)W-2102(8 G內存),GPU為NVIDIA GTX Titan XP(12 G顯存),編程開發環境為CUDA Toolkit 10.0,編程語言為Python 3.6,深度學習框架為keras。
2.3.1 對比實驗結果分析
實驗過程中使用競爭性能指標(competition perfor-mance metric,CPM)和受試者操作特征自由響應曲線(free-response receiver operating characteristic,FROC)來評估所提出框架的性能。CPM定義為每次掃描7個預先確定的假陽性率(0.125、0.25、0.5、1、2、4和8 FP/scan)下靈敏度的平均值。靈敏度為檢測到的候選結節中真結節的個數在標準結節個數中的比例,定義為
(2)
式中:TP為本身是結節最后也被預測為結節的個數;FN為本身是結節但被預測為非結節的個數。FROC的橫坐標為靈敏度,縱坐標為每個掃描中平均假陽性的個數。此外,在消融實驗中統計了正確分類的結節和假陽性結節的數量,從而清晰展現假陽性降低的效果。
Setio等[4]使用輸入為9個不同方向的一組2D平面來訓練多個2D CNN網絡進行肺結節檢測。Ding等[13]使用輸入為三維結節塊的3D CNN網絡用于肺結節檢測。Dou等[5]使用輸入為多個尺度的三維結節塊來訓練多個3DNN網絡來降低肺結節檢測中的假陽性。如表2、圖5所示,在LUNA16測試集上,本文框架的CPM評分為0.940,明顯高于文獻[4,5,13,19]中提出的方法。與同樣使用多尺度結節塊輸入的Dou等[5]提出的方法相比,CPM評分提高了0.032。此外,本文的方法在假陽性率為0.125、0.25和0.5的情況下靈敏度最高。由于文獻[5,13]中使用三維卷積神經網絡,能對結節信息進行較全面的編碼,所以在假陽性率為2、4、8的情況下靈敏度略低。但是三維卷積神經網絡的輸入需要保證切片厚度相同,會造成預處理更加復雜,增加了時間成本和訓練成本。如表3、圖6所示,在合作醫院測試集上,本文框架在所有假陽性率條件下,靈敏度最高。與其它4種提出的方法相比,CPM評分分別提高了0.078、0.081、0.07和0.062,表明本文的方法能漸進集成的提取更多的特征信息來區分真正的結節,減少誤檢。

圖5 不同方法在LUNA16數據集上的FROC曲線對比

圖6 不同方法在合作醫院數據集上的FROC曲線對比

表2 不同方法在LUNA16數據集上的實驗結果對比及CPM評分

表3 不同方法在合作醫院數據集上的實驗結果對比及CPM評分
2.3.2 消融實驗結果分析
為了檢驗該框架中每個組件的效果,本文進行了消融實驗,共設計了5組多尺度卷積神經網絡(multi-scale convolutional neural network,MCNN)對比實驗,結果見表4。第一組是如圖7所示的將多尺度的三維結節塊在輸入級拼接的基本集成多尺度卷積神經網絡(MCNNs1),最終輸出一個0到1之間的結節預測概率值pi;第二組是如圖8所示的將多尺度三維結節塊使用可變形卷積神經網絡進行特征提取后,對3個特征圖進行元素級相加集成作為輸入的多尺度卷積神經網絡(MCNNs2),最終輸出一個0到1之間的結節預測概率值pi;第三組是如圖4上層網絡所示的將多尺度的三維結節塊按照V1-V2-V3的順序漸進融合各尺度特征信息作為輸入的漸進多尺度可變形卷積神經網絡(MCNNs3);第四組是如圖4下層網絡所示的將多尺度的三維結節塊按照V3-V2-V1的順序漸進融合各尺度特征信息作為輸入的漸進多尺度可變形卷積神經網絡(MCNNs4);第五組是本文提出的漸進集成可變形卷積神經網絡。
為了設計一個泛化能力比較強的網絡,所以本文在合作醫院數據集上做消融實驗。從表4、圖9中可以看出,漸進特征提取實驗MCNNs3和MCNNs4的CPM評分和檢測出的真結節數量均高于MCNNs1和MCNNs2;多流特征集成實驗MCNNs1和MCNNs2的假陽性結節數量高于MCNNs3和MCNNs4;說明了漸進特征提取能更好地降低假陽性。
其次,在多流特征在集成的效果上,本文提出的方法具有最高的CPM評分、最高的結節檢出數量和最低的假陽性結節數量,說明了多流特征集成能有效地降低假陽性。此外,這5種方法的CPM評分均高于已提出的方法[4,5,13,19]。綜合表中5組實驗結果可以看出通過結合這些組件,所提出框架性能得到了提高。

圖7 基本集成多尺度卷積神經網絡

圖8 元素級相加集成多尺度卷積神經網絡

圖9 消融實驗在合作醫院數據集上的FROC曲線對比
2.3.3 檢測結果
本文框架可以準確地識別多種大小、形狀和位置的結節。圖10為成功檢測出的結節,結節下方是預測值。圖中第一行結節半徑大、邊緣清晰、形狀各異,能以高于0.90的預測值被成功檢出。第二行結節為實性結節,形態不規則或邊緣不清。然而,本文框架能夠以高于0.70的預測值檢測這些具有挑戰性的樣本。第三行結節是檢測可信度不高但預測成功的結節,它們的密度與周圍肺實質密度非常接近,體積小,有些還具有復雜的周圍冗余信息,可能是預處理過程中對CT圖片進行了歸一化導致檢測效果不好。

表4 消融實驗結果對比

圖10 肺結節檢測結果
這些樣本在數據集中的數量較少,代表性不足,因此對其分類效果有限,預測值在0.50到0.60之間。
本文提出了一種多尺度漸進集成可變形卷積神經網絡用于肺結節檢測中降低假陽性的方法,主要采用了4種策略:①使用三維多尺度候選結節塊作為輸入;②按照輸入順序漸進融合不同尺度的候選結節特征信息;③通過端到端的學習方式集成多流特征,有效降低了假陽性;④通過在合作醫院數據集上對模型進行驗證和優化,提高了模型的泛化能力。實驗結果表明,本文方法能有效降低結節檢測的假陽性,并適用于真實的臨床數據。在現有候選結節假陽性降低模型中取得了最優的效果。但是對于極少量與周圍肺實質密度接近,體積小,背景復雜的候選真結節,本文方法的預測結果雖然正確,但是預測概率值接近于0.5,可信度不高,這是因為此類結節的數量極少,導致框架性能存在偏差。
從系統的角度來看,本研究并不是開發一個完整的肺結節檢測系統,而主要是針對假陽性降低部分的改進。由于所提出的方法獨立于候選結節檢測,本文的方法可以與更好的候選結節檢測方法結合來提高結節檢測結果。