洪敏杰,吳 剛,劉星辰,賈俊鋮+,楊歆豪
(1.蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006;2.蘇州大學 機電工程學院,江蘇 蘇州 215006)
肺癌每年約導致130萬人死亡[1],成為了目前人類死亡率最高的幾大癌癥之一。早期發現相關病灶并進行長期跟蹤觀察,并進行及時治療才能夠極大提高患者的生存率。而肺結節是肺癌的早期可能病變表現之一,因此早期對肺結節進行排查診斷具有極為重要的意義。由于肺結節形狀的多樣性,有多年臨床經驗的放射科醫師也很難快速做出精準診斷。同時CT圖像數量每年也在成倍增加,給放射科醫師的日常片診斷工作帶來了極大的負擔,也給基于計算機視覺的肺結節檢測技術帶來了不小的挑戰。
近年來,大型數據集的出現以及深度卷積神經網絡的興起在一系列視覺任務上取得了突破性的進展,例如圖像分類、圖像分割和目標檢測等。研究人員進一步借鑒了人類視覺中的注意力思維方式提出了注意力機制(attention mechanism)[2],被廣泛的應用在自然語言處理、圖像分類等學習任務中。基于可訓練的注意力機制的計算機視覺方法能夠有效的自主聚焦于任務所感興趣的區域,抑制不相關的區域,進一步提升模型的性能,逐漸成為了熱點研究問題。
綜上,本文提出了一種基于注意力機制的3D深度卷積神經網絡用于檢測定位肺部CT中的肺結節。實驗結果表明,引入了注意力機制的深度卷積神經網絡模型能夠有效聚焦感興趣區域,提升肺結節檢測的精度,降低誤報率。以此算法為基礎的計算機輔助診斷系統,能夠盡可能地緩解放射科醫師閱片的負擔,提高閱片的速度與質量。
隨著大型數據集的出現,以及深度卷積神經網絡的興起,近年來研究人員提出了許多性能優越的目標檢測算法,絕大多數算法都是用于處理自然圖像(2D目標檢測)。這些目標檢測算法又通常分為兩類:一類是以準確度高為代表的基于兩個階段的算法,例如何凱明團隊的R-CNN[3]系列,第一個階段通過滑窗提出候選區域,第二個階段實現候選區域的分類以及區域回歸;另一類則是以速度快為代表的基于單階段的算法,例如YOLO[4]和SSD[5]系列,不需要生成區域階段,直接計算得到物體的類別概率和坐標。肺結節檢測有別于自然圖像目標檢測,但是仍然有著許多共同點。
傳統的肺結節算法基于分割和手工特征設計。王彬等[6]提出了一種基于簡單線性迭代聚類超像素方法分割CT圖像,然后根據相似度合并超像素,得到肺部區域以及可疑肺結節區域的算法。傳統方法普遍存在的缺陷:過度依賴于專家知識以及手工特征的設計。為了克服傳統方法的這些局限性,與此同時深度學習技術的興起,研究人員們開始嘗試使用深度卷積神經網絡實現肺結節檢測,基于深度卷積神經網絡的模型相比傳統方法也取得了更好的檢測效果。朱輝等[7]基于多尺度特征的U-Net網絡提出了一種肺結節分割算法。Ding等[8]在LUNA16的生成結節候選和降低誤報率的比賽中使用了3D深度卷積神經網絡取得了第一名的優異成績。Zhu等[9]采用了雙路網絡(dual path network,DPN)實現了肺結節檢測,然后使用梯度提升決策樹算法(gradient boosting machine, GBM)完成了檢出結節的良惡性判別,實現了一整套肺部CT癌癥診斷系統。
將注意力機制用于自然圖像分析、知識圖譜、機器翻譯和分類等應用[2]中,是一種提升模型性能的有效手段。在通常的卷積神經網絡結構模型中,通常采用多次卷積、下采樣以及激活層引入非線性變換的操作來生成圖像的特征圖,模型的效果很大程度上取決于得到的特征映射的質量。為了提高網絡所生成特征映射的質量,研究人員提出了許多性能優良的卷積神經網絡模型,例如 ResNet、DenseNet和Highway Network等。盡管如此,如何有效生成特征圖的問題仍未很好的解決。
為了有效解決卷積神經網絡無法生成有效特征映射的問題,研究人員借鑒了人類視覺認知中主動關注某一特定感興趣區域的行為,在計算機視覺任務中引入了注意力機制。在現有模型中引入注意力機制,達到對特征映射重采樣的效果,實現突出任務中所關注信息的作用。計算機視覺任務中可訓練注意力機制主要分為以下兩種:一種是Hard Attention,即通過數據標注的方式,在模型訓練過程中顯式地告訴模型感興趣區域的位置;另一種則是Soft Attention,使網絡模型通過反向傳播這一過程主動學習任務所需要關注的區域。這兩種方法在最近的計算機視覺任務研究中都得到了相當廣泛的應用。Oktay等[10]在U-Net網絡模型中引入了注意力機制,提升了肺部分割的精確率。Hu等[11]在ImageNet2018中首次提出了采用基于圖像通道的注意力機制的方法,取得了2018年ImageNet的冠軍。
綜上,本文方法借鑒了基于兩個階段的目標檢測算法Faster RCNN[3],網絡中采用了殘差塊[12]以及近似U-Net[13]結構的上下文多尺度信息融合的模型結構。最后為了提高卷積神經網絡生成特征的質量,在網絡中引入了注意力機制。本文中使用了LUNA16數據集,Pytorch深度學習框架在GPU上訓練,最終得到預期的實驗效果。
本文設計了一種基于注意力機制的深度殘差網絡,并采用了目標檢測經典算法Faster RCNN[3]中的3D版本區域提案網絡(region proposal network,RPN)直接生成肺結節區域候選。
計算機視覺任務中常常以基于圖像的方式訓練,但是由于GPU顯存容量的限制,將一張完整3D CT圖像數據作為網絡輸入不太可行。為了解決這一問題,本文首先從肺部CT圖像中提取出小的圖像片作為模型的輸入,3D圖像片大小為96*96*96*1,分別對應著3D CT圖像數據中的高度、長度、寬度以及通道數。
本文中的主體網絡結構采用了近似U-Net[9,10]的多尺度融合的對稱結構,并由殘差網絡塊、池化層、批歸一化層、激活層、注意力機制門模塊以及區域提案網絡輸出層組成。本文中的具體卷積神經網絡結構如圖1所示。

圖1 3D卷積神經網絡結構
卷積神經網絡的前向下采樣部分,由5個3D卷積塊組成,每個卷積塊又都由兩個3D殘差網絡卷積塊組成,每個卷積塊之后是3D最大池化層,池化層將圖像特征映射尺度減半,通過池化實現圖像的下采樣操作,提取特征和減少后續卷積操作參數。卷積神經網絡的反卷積提升部分,由3個卷積塊和一個區域提案網絡輸出層組成,在卷積塊提取完特征映射后使用反卷積操作提升圖像的尺度,形成了一個類似U-Net的結構。反卷積是一種用于提升特征圖尺度大小的卷積操作,屬于可訓練上采樣的一種,在每一個卷積塊之后將圖像特征圖尺度乘2。中間的拼接部分用于融合圖像的上下文信息,將低層的抽象特征和高層的抽象特征相結合,達到更有效生成特征的目的,也是近似U-Net結構中相當重要的一部分。網絡中的所有卷積塊和前向下采樣部分一樣,都采樣了和上文一樣的3D殘差卷積模塊。網絡中所有卷積塊都由3D版的殘差網絡卷積塊組成(即兩個1*1*1的卷積核,和一個3*3*3的卷積核,每一卷積核之后是relu激活函數和批歸一化),相比兩個3*3*3的卷積核,幾乎減少了一半的參數數量,兩者網絡性能相差無幾。本文所使用的3D殘差網絡卷積塊結構如圖2所示,其中AG代表本文所使用注意力機制模塊。

圖2 引入注意力機制門的3D殘差塊結構

候選區域是否為結節的概率由Sigmoid激活函數計算得到,激活函數公式如式(1)所示
(1)
本文中的損失函數采用了Faster RCNN的損失函數。為了損失函數的計算,本文首先計算了目標檢測任務中交并比(intersection over union,IoU)來決定候選區域是否為結節檢測任務中的一個目標(即本文任務中的結節)。如果一個候選區域與標注的交并比大于0.5,則將該候選區域判定為是一個正樣本;反之如果候選區域與標注的交并比小于0.02,則將判定為是一個負樣本。其它候選區域將被丟棄。候選區域的分類損失函數如式(2)所示
(2)

候選區域回歸損失是smooth L1-norm函數,公式如式(3)和式(4)所示
(3)
(4)

最終的3D目標檢測損失函數由分類損失函數和候選區域回歸損失函數兩部分組成,公式如式(5)所示。其中采用了隨機梯度下降算法訓練模型,反向傳播算法更新網絡中的參數
L=Lcls+pLreg
(5)
標準的卷積神經網絡模型通常由反復的卷積、下采樣操作和非線性激活得到特征映射。基于現有的深度卷積神經網絡模型,采用注意力機制模型能夠在可接受的計算開銷內,為任務相關的特征映射賦予顯著的權重。由于LUNA16數據集中的結節普遍偏小(肺結節平均直徑大小為8.3 mm),屬于小物體目標檢測任務,粗糙的特征映射會降低結節檢測的準確率,因此加入注意力機制很有必要。
為了提升卷積神經網絡生成特征映射的質量,本文中提出了一種可訓練的3D注意力機制門模塊,并將其整合至上文中的卷積神經網絡中,3D注意力機制門結構如圖3所示。

圖3 3D注意力機制門模塊結構
注意力因子范圍在0到1之間,用于識別現有圖像任務感興趣的相關區域以及修剪抑制不相關的特征,保留僅與任務相關的激活,起到對特征映射重新采樣的作用。對于一個任意大小卷積操作輸出的中間特征映射F∈RL*W*H*C結果,其中L表示3D圖像長度,W表示寬度,H表示高度,C表示3D圖像通道數,對其順序進行通道注意力門以及空間注意力門操作運算。
圖像特征映射的每一個通道都可以視為一個特征生成器[14],基于通道的注意力門能夠關注圖像通道中對任務有意義的部分。為了有效計算生成通道所需的注意力因子,本文采用了Hu等[11]所提出的擠壓和激勵網絡(squeeze and excitation networks,SENet)對輸入特征映射的空間維度的方法,并在自適應均值池化的情況下額外增加了自適應最大池化增強特征映射的表達能力。普通池化技術只能通過調整池化步長得到期望的池化結果,而自適應池化是一種固定大小輸出的池化技術。例如對于96*96*96*3的輸入(其中前3位表示圖像尺度,最后一位表示通道數),如果設置1的池化輸出則將得到我們預期的 1*1*1*3的輸出。得到了通道“擠壓”的結果之后,對其分別使用一個共享參數的自編碼結構的多隱層神經網絡進行“激勵”操作,然后將兩部分池化結果相加。最后使用Sigmoid激活函數得到注意力因子。通道注意力機制門計算公式如式(6)所示,其具體結構如圖4所示

圖4 3D通道注意力機制門結構
Ac=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))
(6)
和通道注意力機制不同,空間注意力機制[10]利用圖像中的空間關系,更多關注圖像空間中“哪里”是任務感興趣區域。空間注意力機制是對通道注意力機制的一個補充,并且兩者計算的順序并不會對實驗結果產生大的影響。為了計算空間注意力因子,仍然從收集圖像特征映射的最大池化和均值池化信息開始,但與上文的池化操作不一樣。這里的池化在通道層面上進行。例如對96*96*96*3的特征映射輸入進行相關均值池化操作,將池化結果通道參數設1,將得到96*96*96*1的空間注意力因子。將均值和最大池化結果合并,為了增強注意力因子的表示能力,對合并的結果增加了一個單獨的卷積層(卷積核大小為3*3*3,并保持圖像尺度大小),得到單通道的3D空間特征映射。最后然后仍然使用了Sigmoid激活函數得到了空間注意力因子。空間注意力門計算公式如式(7)所示,其具體結構如圖5所示

圖5 3D空間注意力機制門結構
As=σ(f3*3*3(concat(Avg(F′);Max(F′))))
(7)
順序對原始卷積結果的特征映射進行通道注意力門模塊和空間注意力門模塊計算,得到新的特征映射。通過有監督的反向傳播訓練過程,達到抑制3D CT圖像中不相關的部分(例如除肺部以外的區域等),并通過注意力因子對任務感興趣區域達到強調作用,計算公式如式(8)所示
F′=As?(Ac?F)
(8)
本文采用了LUNA16肺結節檢測數據集,數據集中共包含了888張低劑量肺部CT圖像,由多名具有數年放射科診斷經驗的臨床醫師標注而成,記錄了肺結節位置信息和直徑大小,其特點是數據量大,肺結節大小偏小。其中肺結節直徑范圍為:3.0 mm-28.3 mm,平均大小為8.3 mm,總計1186例經多名放射科醫師標注過的肺結節樣本。肺結節標注示例見表1。

表1 LUNA16數據集標注示例
本文實驗環境的基本配置為Intel i5-8400處理器,兩張NVIDIA GeForce 1070Ti顯卡(8 GB顯存),32 G內存,所用系統為Ubuntu16.04。本文中的網絡模型采用PyTorch深度學習框架實現。
本文中訓練階段采用了隨機梯度下降優化器,其中最重要的訓練參數批大小受GPU顯存限制在本文實驗中設置為8。采用了隨機梯度下降算法訓練,初始學習率(lear-ning rate)為0.01,1/3和2/3 Epoch之后學習率分別調整為0.001、0.0001,權重衰減(weight decay)為0.0001,動量(momentum)為0.9。采用了十折交叉驗證訓練模型,每一折中模型都訓練了190個Epoch。十折交叉驗證首先將樣本分為10份,分別使用其中的9份作為訓練集,剩下1份作為交叉驗證集,反復訓練10次,最后將所有結果取平均誤差來評估模型。
針對LUNA16數據,首先我們根據放射密度(hounsfield unit,HU)的范圍[-1200,600]截取原始CT圖像的像素,即肺部區域HU取值范圍。然后將圖像像素歸一化至[0,255]范圍之間。最后一步采用了LUNA16官方提供的分割結果,移去了背景和除肺部之外的不相關區域。
為了緩解模型過擬合的現象以及增強模型的泛化能力,本文還對預處理之后CT圖像應用了多種數據增廣(data augmentation)手段,例如左右翻轉變換、旋轉變換和圖像尺度的變換。
本文的實驗評估采用了FROC(free-response receiver operating characteristic)作為評判模型的指標,其中評估腳本由LUNA16官方給出。FROC曲線的橫軸為假正例數(false positive rate),縱軸為真正例率(true positive rate)。在醫學領域真正例率也被稱為敏感度(sensitivity)。FROC是ROC曲線的一個變種,經典的ROC曲線方法無法解決同一圖像上存在多個異常點(如結節)進行指標評價的情況,例如常見的二分類,一幅圖像的結果只能判定是對還是錯。
改進的FROC曲線將橫坐標改為了每次掃描平均誤報數,使得在判定時能夠解決圖像中存在多個異常點的情況。本文的肺部圖像數據中一張完整CT往往包含多個結節,使用ROC等指標不能有效直接評估模型,因此需要采用FROC作為肺結節檢測的指標。計算1/8, 1/4, 1/2, 1, 2, 4和8共計7個假正例數情況下的敏感度平均值作為最終的結果。其中敏感度的計算方法如式(9)所示
(9)
LUNA16數據集總結果的FROC曲線如圖6所示,其中ResNet[3]曲線是原始方法曲線,Attention_ResNet是在原始方法基礎上提出的引入注意力機制的結果。本文中引入的注意力機制的方法在沒有加入任何降低誤報策略情況下FROC結果為81.6%,超過了未使用注意力機制的原ResNet網絡模型1.6%,相比VGG[15]網絡提升了8.4%。

圖6 模型的FROC結果曲線
LUNA16數據集十折交叉驗證中的每一折模型FROC結果見表2,由結果圖所示添加了3D注意力機制門之后的模型幾乎在LUNA16數據每一折上FROC結果都高于原始方法結果。

表2 LUNA16每一折的實驗結果
根據前文指定的3種目標檢測Anchor大小,我們將數據集中結節分為了3類,分別是小結節(直徑小于5 mm)、中等大小結節(直徑在5 mm至20 mm之間)以及較大結節(直徑大于20 mm)。模型對數據集中的不同范圍大小的肺結節檢測效果如圖7所示。LUNA16中絕大部分結節直徑處于5 mm-20 mm之間,約占了73%,針對中等大小肺結節本文中的方法FROC達到了86.4%,均高于其它兩種方法。

圖7 不同結節直徑大小的平均FROC結果
本文提出了一種基于注意力機制門的肺結節檢測方法,結合了空間和通道注意力兩種不同粒度和層次的特征增強,在LUNA16公開數據集上驗證了本文方法的有效性。由十折交叉驗證的結果顯示,應用了3D注意力機制的方法平均FROC達到了81.6%,超過了未使用的原ResNet的方法1.6%。
在未來的工作中,我們將繼續提升肺結節定位的準確性,并進一步探索肺結節類型的分類(例如磨玻璃結節與非磨玻結節)以及肺結節與良惡性病變之間的關系。