?

基于密集殘差連接的肺結節檢測方法*

2024-03-06 02:54佘青山張建海
傳感技術學報 2024年1期
關鍵詞:密集殘差結節

胥 陽,佘青山*,楊 勇,張建海

(1.杭州電子科技大學自動化學院(人工智能學院),浙江 杭州 310018;2.浙江省腦機協同智能重點實驗室,浙江 杭州 310018)

癌癥是對人生命健康的一大威脅,其中,肺癌是一種發病率與致死率較高的癌癥[1]。肺癌的癥狀在早期并不明顯,當發現較為明顯的癥狀時,病人的肺癌已到中后期,此時病人的肺癌治愈率已大幅降低,基本無法治愈。因此,在肺癌的早期發現肺癌的癥狀并治愈肺癌顯得十分重要。在肺癌早期,肺癌的癥狀以肺部出現結節為特征,這些結節的大小不一;其形狀也各不相同,有實性結節、部分實性結節、磨玻璃結節;結節的位置也不一定,有的在肺內部與其他組織沒有接觸,有的附著在肺內部的血管與組織上,有的在肺的內表面上。醫學上對肺結節的檢測多使用計算機斷層掃描(Computed Tomography,CT)[2]來對肺部成像,再由有經驗的醫師查看肺部的CT 圖像判斷病人肺部是否含有結節。由于CT掃描的成像特點是會形成大量的肺部掃描切片,查看肺部的CT 成像對醫師來說是一個很大的挑戰[3]。

隨著計算機技術的發展,計算機輔助診斷(Computer Aided Diagnosis,CAD)[4]應運而生,計算機輔助診斷系統通過運行特定程序幫助醫生查看CT 圖像,緩解了醫生負擔[5]。隨著深度學習技術的發展,以及深度學習在目標檢測領域的進步[6-11],使用卷積神經網絡(Convolutional Neural Network,CNN)[6]分析醫學圖像已成為一種趨勢[12-13]。在使用深度學習檢測肺結節的領域,已有許多學者提出了很多優秀的方法,這些方法在結構上可以大體分為兩大類:一類是端到端的,利用單個網絡完成對CT 圖像中肺結節的檢測;另一類是使用兩個網絡,第一個網絡檢測肺結節,由于單個網絡檢測出的肺結節含有較多的假陽結節,然后通過第二個網絡去掉這些假陽結節,降低結果的假陽性[14]。鑒于CT圖像的3 維特性,許多方法使用3D CNN 檢測肺結節。對比研究表明,基于3D CNN 的檢測肺結節方法在精度上優于2D CNN 方法[15]。Setio 等[16]提出一種多個視角的肺結節檢測網絡,將肺結節不同方向的2 維切片輸入網絡,將結果融合輸出以檢測肺結節。Song 等[17]提出的中心匹配策略的肺結節檢測網絡,無需設計邊界框的參數,可以自動檢測肺結節的大小與位置。Kim 等[18]提出一種端到端的多尺度漸進方法,通過學習肺結節不同上下文級別的多尺度特征檢測肺結節。Ding 等[19]提出使用Faster R-CNN 算法檢測肺結節,在網絡中加入反卷積結構,檢測CT 掃描軸向切片上的肺結節。Zhu等[20]提出了一個端到端的一階段的肺結節檢測模型,通過在U-Net 框架上融入提出的雙路模塊檢測肺結節。Liao 等[5]引入泄露噪聲或門(Leaky Noisy-OR Gate)的機制檢測肺結節,基于檢測結果的置信度選擇前五個結節,并通過區域建議網絡得出結節信息。Harsono 等[21]提出了結合遷移學習得到的RetinaNet 網絡,用于肺結節檢測與分類。

以這些檢測網絡為代表的肺結節檢測方法,在計算機輔助診斷肺結節方面都取得了較好的進步,但這些肺結節檢測方法多為順序堆疊卷積核的卷積網絡,在檢測網絡中沒有實現對肺結節特征的復用,并且不同深度間的特征沒有信息交流,從而對肺結節檢測準確率低[22]。對此,本文提出基于密集殘差連接的肺結節檢測模型。本模型在3D U-Net 網絡[23]中引入密集連接、殘差連接與注意力機制[24],實現檢測網絡對肺結節特征的充分利用,實現對肺結節特征的多尺度提取,提高對結節特征的利用效率,從而提高肺結節的檢測精度,解決肺結節檢測結果假陽率高的問題。

1 數據集與方法

1.1 數據集

本文實驗選擇的數據集為LUNA16 數據集[25]。LUNA16 數據集包含888 份CT 圖像與1 186 個有標注結節,這些結節標注文件由3 到4 位醫生共同認定。數據集中CT 圖像的切片厚度小于2.5 mm,分辨率為0.46 mm~0.98 mm。此數據集中,結節的直徑分布為3 到30 mm,但多集中于3 mm~10 mm 內。

1.1.1 數據集預處理

數據集中原始的肺部CT 掃描圖像中不僅包含肺結節檢測區域的肺實質,同時還包括肺部周圍的其他無關組織。為節約計算資源,提高檢測效率,在檢測結節之前需要利用圖像形態學的方法將關組織去除。處理肺實質包括以下幾個步驟:

步驟1 由于模型檢測所用到的CT 圖像是由不同掃描儀器得到,為了消除不同CT 圖像間的差異,重采樣所有CT 圖像的體素到1 mm×1 mm×1 mm。

步驟2 根據人體組織CT 掃描成像的特點,將CT 圖像的亨氏單位(Hounsfield Unit,HU)閾值按數值保留[-1200,600]區間的數據,超出此區間的體素則一律填充-1 200 或600。將圖像8 位數字圖像數據歸一化到0 到255。

步驟3 將CT 圖像對應掩碼膨脹,對CT 圖像使用新掩碼后,將掩碼外數據統一設置為170,表示肺實質的外部為水。

步驟4 得到處理后的肺實質,以*.npy 文件形式保存。

肺實質處理前后CT 圖像變化的一個例子如圖1所示。圖1 中,第一行為原始的CT 圖像,第二行為處理后的CT 圖像??梢钥闯?,在經過了一系列處理后,CT 圖像去除了肺實質以外的無關區域與組織,同時增強了肺實質內部細節,使得CT 圖像更加清晰,便于檢測。

圖1 肺實質處理前后對比圖

1.2 基于密集連接的肺結節檢測方法

在基于深度學習的肺結節檢測網絡中,大多為全卷積網絡,網絡使用卷積核對特征圖卷積得出需要的結節信息。肺結節檢測模型多以U-Net 網絡為主干,采用卷積與下采樣,逐步提取低維到高維的特征,利用轉置卷積將特征圖恢復到適合的尺寸,最后得出對應的結節信息。然而這種模型計算量大并且不能復用網絡中大量的肺結特征,同時,堆疊普通卷積核在模型網絡深度很深時會出現梯度消失的問題[22],這會導致網絡無法進行反向傳播,無法訓練。He 等[26]在 2016 年提出殘差網絡(Residual Network,ResNet)模型,模型的核心思想為在普通卷積層前后增加一路快捷連接,卷積層的輸出與快捷連接的輸出在元素層面相加作為ResNet 的輸出,通過增加快捷連接通路,在原有的卷積層出現梯度消失的情況下網絡仍然能夠傳播。但是ResNet 的殘差連接依舊是對輸入的特征采取順序操作,沒有能夠充分地利用不同深度的特征。Huang 等[27]在2017 年提出一個全新的名為密集網絡(Densely Connected Convolutional Network,DenseNet)的網絡結構,該結構可以將各個層的特征利用起來,使用拼接操作將之前各個層的特征作為下一層的輸入,這種方式充分地利用不同層的特征,其數學表達為

式中:hi[·]表示第i層的拼接操作,xi,i=1,2,…,n表示特征圖。

鑒于密集連接與殘差連接各自的優點,本文提出結合密集連接與殘差連接同時融入注意力機制的密集殘差模塊。

1.2.1 密集殘差模塊

為了提高網絡中對結節特征的利用效率,本文提出了一個由密集連接、殘差連接與注意力機制構成的網絡結構,如圖2 所示。在主干通路上有3 組3D 卷積,卷積核大小為3,每組卷積塊包含卷積層、歸一化層與線性整流單元(Rectified Linear Units,ReLU)。3 組卷積塊采用密集連接的方式輸入,卷積塊之前各層卷積塊的輸出拼接后作為下一個卷積塊的輸入,圖中曲線箭頭表示各個層的特征圖。三個卷積塊后是注意力結構,注意力結構可以對特征圖進行權重分配,增加與結節檢測相關的特征圖的權重,減小與結節檢測無關的特征圖的權重。經過權重分配的特征圖與傳入密集模塊的初始特征圖在元素層面相加后作為密集模塊的輸出。

圖2 密集殘差模塊

密集模塊中的注意力結構具體見圖3,在通道維度上使用全局平均池化(Global Average Pooling,GAP)壓縮輸入的特征圖到通道維度的向量,然后經過兩層全連接層(Fully Connected Layers,FC)學習得到注意力系數,使用Sigmoid 激活函數將系數映射到0 到1 的范圍,最后得到一組與輸入特征圖通道數對應的注意力系數。注意力系數與輸入的特征圖在通道維度相乘,得到注意力權重分配后的特征圖。

1.2.2 肺結節檢測網絡

肺結節檢測網絡結構如圖4 所示,網絡的主要部分可分為數據預處理、特征提取與檢測。特征圖左下角為特征圖大小,右上角為通道數。由于檢測的CT 圖片的通道數為1,不便于深度學習網絡進行特征提取,利用數據預處理塊提升通道,便于后續提取特征。特征提取模塊利用搭建的針對性的網絡結構提取結節特征。檢測模塊可以輸出特定的數據格式,得到輸入CT 圖像中肺結節位置與概率信息。

圖4 肺結節檢測網絡

如圖4 所示,網絡的輸入是在肺實質中截取的包含肺結節的3 維CT 圖像塊,圖像塊的邊長為96。數據預處理塊包含2 個核大小為3 的3D 卷積層,兩個卷積層的層數都為24。特征提取模塊在傳統的3D U-Net 網絡即編碼解碼結構的基礎上改進,使用1.2.1 提出的密集殘差模塊代替普通卷積塊。

編碼部分由4 個核大小為2 的3D 最大池化層與4 組密集殘差模塊交錯排列組成,前兩組分別包含2 個密集殘差塊,后兩組分別包含3 個密集殘差塊。解碼部分為兩組核大小為2 的3D 轉置卷積層與2 組密集殘差組交錯排列,兩組密集殘差組中均包含2 個密集殘差塊。采用跳躍連接方式連接編碼部分與解碼部分,在編碼部分的第二組與第三組密集殘差模塊的輸出與解碼部分的第二組與第一組轉置卷積層輸出拼接。同時為了融合網絡中的不同深度與尺度的特征信息,在跳躍連接處設置特征信息增強機制,具體為編碼部分第二組密集殘差模塊的輸出與第三組密集殘差模塊的輸出經轉置卷積后拼接,然后經過一包含3 個密集殘差塊的密集殘差組,共同作為第二組密集殘差模塊的跳躍連接與解碼部分相連接。特征提取模塊后接Dropout 操作,以0.5的概率對網絡隨機失活以降低網絡過擬合。檢測模塊包含兩個核大小為1 的3D 卷積層,通道數為64與15。受區域建議網絡(Region Proposal Network,RPN)[10]啟發,在網絡中,特征圖的每個位置上都有3 個不同大小的邊界框,邊界框的長度根據結節直徑的分布確定,分別為5 mm、10mm 和20 mm[28]。輸出的結果為輸入檢測網絡的特征圖中包含結節的位置坐標與概率,分別為結節的概率p與結節在CT圖像中坐標(x,y,z)與直徑大小d。

1.2.3 損失函數

本結節檢測模型的損失計算包含兩個部分,一是檢測區域內是否包含結節,即預測肺結節概率p的損失,采用分類損失,二是檢測區域內結節的位置(x,y,z)與結節直徑d的回歸損失。在本模型中,使用檢測區域與標注結節區域的交并比(Intersection over Union,IoU)[29]區分正負樣本,如果兩者區域的交并比大于0.5,標記為正,如果兩者區域的交并比小于0.02,標記為負,其余則被忽略不被標記。分類損失采用二值交叉熵損失函數,回歸損失采用Smooth L1 損失函數。

分類損失函數定義為:

式中:p表示模型預測的概率,p*表示標簽的分類概率。當為正樣本標簽時p*=1,負樣本標簽時p*=0。

回歸損失定義如下:

式中:L(ti,)表示Smooth L1 損失函數。

Smooth L1 損失函數定義如下:

式中:ti表示模型預測的結節回歸坐標組t中參數,表示標簽標注的結節回歸坐標組t*中參數。

t與t*分別為預測的結節回歸坐標組與標注的結節回歸坐標組,定義如下:

式中:(x,y,z,d)表示模型預測的結節3 維位置信息與直徑,(x*,y*,z*,d*)為標簽中標注的結節3 維位置信息與直徑,(xa,ya,za,da)為邊界框的3 維位置信息與直徑。

模型的總損失為:

式中:Lcls表示分類損失,Lreg表示回歸損失。

2 實驗設計與結果

2.1 實驗設計

2.1.1 實驗數據處理

CT 圖像的數據量十分龐大,如果一次將整個CT 圖像輸入網絡,對顯存的消耗很大。本次實驗在訓練階段選擇截取較小的包含結節的立方塊輸入網絡,在保證檢測精度的同時減少對硬件消耗。具體做法為以數據集標注文件的結節坐標為中心,截取邊長為96 的立方塊作為正樣本。在CT 圖像內的非肺結節區域,截取同樣尺寸的立方塊作為負樣本。為了解決數據的正負樣本不平衡的問題,對正樣本進行隨機偏置,在0~360°內隨機翻轉和以0.75~1.25 之間系數進行縮放作為數據增強手段擴充正樣本;同時為了平衡數據集中結節多為小結節的問題,對直徑在10 mm~20 mm 和20 mm 以上的結節進行直接復制的方式,擴充中直徑結節與大直徑結節的數量,平衡結節的直徑分布。在模型的測試階段,CT 圖像中依次截取邊長為128 的小立方塊輸入網絡。為了不遺漏可能出現在立方塊邊界的結節,每個立方塊間重疊16 個像素。最后將得到的結果按立方塊的位置還原到原來CT 圖像中。在檢測階段,使用非極大值抑制(Non-Maximum Suppression,NMS)[30]得到最優的預測結果。

2.1.2 實驗設置

本實驗所用的操作系統為Ubuntu18.04 系統,CPU 為Intel(R)Xeon(R)Gold 6154,內存為64 GB,顯卡為3 塊顯存為12 GB 的NVIDIA TITAN V 顯卡。網絡模型使用 Python3.6 搭建,框架為Pytorch1.1。優化方法選擇隨機梯度下降,初始學習率為0.01,權重衰減為1×10-4,批大小為18,模型迭代次數為100 次。為了加速訓練,減小在損失全局最優點處的震蕩,在訓練過程中逐步減小學習率,具體為在訓練的前1/3 輪時學習率為0.01,在1/3 到2/3 輪時,設置學習率為0.001,之后學習率為0.000 1。

由于LUNA16 數據集分為10 個子集,故訓練與測試使用10 折交叉驗證法。選擇子集9 為測試集,子集0 到8 作為訓練集,然后是子集8 為測試集,其余子集為訓練集,依次類推。將所有子集的測試結果匯總,得到最終結果。

2.1.3 評價標準

實驗選擇無限制受試者操作特征(Free-Response Receiver Operating Characteristic,FROC)[25]驗證模型性能。該曲線的橫坐標為結節檢測的假陽率,以0.125、0.25、0.5、1、2、4、8 這七個假陽率點為代表??v坐標為結節檢測的敏感度,即預測結節的正樣本數占數據集總正樣本數的比重。在FROC 曲線中,七個假陽率點上敏感度的平均值稱為競爭性能指標(Challenge Performance Metric,CPM)[25]。計算公式為:

式中:s表示對應下標位置上的敏感度。

2.2 結果

2.2.1 方法對比

為了驗證本文提出的模型檢測肺結節的有效性,現將本文提出的方法與近年來具有代表性的肺結節檢測方法進行比較。表1 記錄了不同的檢測模型在LUNA16 數據集上的檢測結果,具體為在0.125、0.25、0.5、1、2、4、8 這7 個假陽性上的敏感度,以及它們的平均值(CPM)。

表1 與其他肺結節檢測模型對比

從表1 可以看出,本文提出的模型在LUNA16數據集上的檢測結果在目前具有代表性的肺結節檢測模型中取得較好的結果,在0.125、0.25、0.5、1、2、4、8 這7 個假陽性上的平均敏感度大幅領先對比的其他同類型模型,僅次于張福玲等[28]在2021 年提出的模型。張福玲等提出肺結節檢測模型在特征的解碼路徑上使用特征金字塔的方式將不同深度與尺寸的特征融合在一起,共同作為檢測結果由預測層輸出。本文提出的模型在特征解碼后只將最后的特征圖由預測層輸出,雖然模型中有將不同深度與尺度的特征圖進行融合的機制,從最后的結果看沒有張福玲等提出的模型效果好。這表明該模型仍有需要提高之處。

2.2.2 結果可視化

為了更加直觀展現肺結節檢測,圖5 展示密集殘差檢測模型對肺部CT 圖像的檢測結果。選擇結節中心所在的橫斷面展示結果,以矩形邊框定位結節。圖5 中的第一行為檢測結果中的真陽性結節,第二行為假陽性結節,假陽性結節具有與真陽性結節相似特征。從圖中看出,本文提出的檢測方法可以有效檢測出多種大小與不同形狀的肺結節,對在肺實質中不同位置處的結節均具有較好檢測能力,對實性結節與部分實性結節檢測結果較好。

圖5 肺結節檢測結果圖

2.2.3 消融實驗

為驗證提出的跳躍連接信息增強機制、密集連接與注意力機制對肺結節檢測性能的提升,在LUNA16 數據集上進行消融實驗。在基線方法的基礎上依次加入改進措施進行比較,數據處理與實驗設置均同2.1.1 與2.1.2,實驗結果如表2 所示。消融實驗具體為:①model1:基線方法,普通殘差3D UNet,網絡層數同1.2.2,在編碼解碼部分間使用直接跳躍連接的模型;②model2:在model1 模型的編碼解碼部分間使用轉置卷積信息增強,融合不同尺度的特征;③model3:在model2 模型的基礎上在殘差單元后加入注意力機制;④model4:使用本文提出的密集殘差肺結節檢測模型。

表2 消融實驗對比

圖6 所示為消融實驗結果的FROC 曲線,方塊線為model1 模型的FROC 的結果,圓形線為model2模型的FROC 的結果,上三角形線則是model3 模型的FROC 的結果,下三角形線則是model4 模型的FROC 的結果。

圖6 消融實驗的FROC 曲線

結合表2 與圖6 可以看出,model2 相比model1在7 個不同的假陽率點處的敏感度均有提升,尤其在1、2、4、8 這4 個點上的提升較為明顯,其平均敏感度提升了1.5%。這表明,在model2 跳躍連接處中新增的用于連接不同深度與尺度特征的信息增強機制對模型的性能起到了不小的提升。model3 相對于model2 在7 個不同假陽性點處的敏感度也有相當的提升,在0.25、0.5、1、2、4、8 這6 個點上提升明顯,其平均敏感度提升了2.5%。這表明利用在模型中加入注意力機制可以有效提取肺結節的特征信息,進而提升檢測模型的性能。model4 相對于model3 在0.125、0.25、0.5 這3 個點上提升明顯,其平均敏感度提升了1.4%。這表明利用在模型中加入密集連接有助于提取肺結節的特征信息,提升檢測模型的性能。

3 討論

本研究提出了一個新的深度學習模型檢測CT圖像中的肺結節,模型以3D U-Net 網絡為主干網絡,引入密集連接、殘差連接和注意力機制,以端到端的方式檢測肺結節。模型在LUNA16 數據集上進行了一系列實驗,實驗結果表明,所提出的模型可以較好地檢測CT 圖像中的肺結節。

利用深度學習檢測肺結節已取得許多進展[14],但大多數檢測網絡通過順序增加卷積核增強網絡對特征的提取能力,網絡的結構與參數增加同時存在大量特征,導致訓練難度增大[22]。本研究在基線模型中引入密集連接與殘差連接,對網絡中大量的肺結節特征復用,同時可以實現不同深度上的特征之間的信息交流,從而更加全面地提取肺結節特征信息。不同的特征圖對于檢測肺結節的重要性不同,為了更好地檢測肺結節,提升模型檢測能力,本研究在模型中引入注意力機制,通過對特征圖一系列操作,對不同特征圖賦予不同權重,增強模型對與肺結節有關的特征的提取。為了整體網絡框架下實現不同深度與尺度特征的交流融合,在網絡編碼與解碼部分間通過轉置卷積與拼接操作實現網絡不同深度與尺度間特征的交流,增強模型對肺結節的檢測能力。為驗證模型對肺結節的檢測性能,在LUNA16數據集上,以10 倍交叉驗證實驗。在表2 中通過與基線模型的對比實驗結果可以得出,所提出的幾處改進均可增強模型對肺結節的檢測性能,提升模型對肺結節的敏感度。表1 中通過與其他表現出色的肺結節檢測模型的對比,所提出的密集殘差肺結節檢測模型可以對肺部CT 圖像中的肺結節取得較好的結果。本研究提出的密集殘差模型對肺結節的敏感度稍遜于張福玲等[28]提出的模型,主要在于其提出的模型中對肺結節特征使用特征金字塔機制,將不同尺度的特征圖共同作為輸出,這樣可以融合不同層次的特征圖,而本文提出模型只將最頂層特征作為輸出,會忽略一些細節信息,這種設計可在之后的研究中探討借鑒。

CT 圖像的數據標注依賴于有經驗的醫師,這使得有標注的CT 圖像數據收集困難,訓練樣本較少。遷移學習可以通過在大樣本數據集上預訓練得到具有一定特征提取能力的網絡,在小樣本的醫學圖像數據上小規模訓練便可實現較好的檢測能力。未來的研究將探討通過遷移學習實現CT 圖像數據的檢測。

4 結論

本研究提出了一種密集殘差肺結節檢測方法,在3D U-Net 基礎上引入密集連接、殘差連接與注意力機制,較好實現了對CT 圖像中的肺結節的檢測與定位。大多數的肺結節檢測方法,通過順序堆疊卷積核構建網絡,沒有充分利用網絡中的特征,同時不同層間的特征沒有信息交流,對肺結節檢測不夠精確。對此,本研究在網絡中引入密集連接、殘差連接與注意力機制改進檢測網絡,同時在跳躍連接中融合不同尺度的特征。實驗結果表明,本研究相對于原始方法的幾處改進可以增強網絡對肺結節敏感性,平均敏感度提高了5.5%,與其他結節檢測算法相比,也取得了較好表現。

在未來工作中,針對有標注肺結節數據較少的問題,將結合遷移學習,將深度學習模型從其他領域圖像數據中學習到的檢測知識,運用到肺結節檢測中,進一步提高結節檢測精確度[34]。

猜你喜歡
密集殘差結節
基于雙向GRU與殘差擬合的車輛跟馳建模
耕地保護政策密集出臺
肺結節,不糾結
發現肺結節需要做PET/CT嗎?
密集恐懼癥
從氣、虛、痰、瘀辨治肺結節術后咳嗽
基于殘差學習的自適應無人機目標跟蹤算法
基于遞歸殘差網絡的圖像超分辨率重建
體檢查出肺結節,我該怎么辦
基于5G超密集組網的規劃與設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合