洪敏杰,吳 剛,劉星辰,賈俊鋮+,楊歆豪
(1.蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.蘇州大學(xué) 機電工程學(xué)院,江蘇 蘇州 215006)
肺癌每年約導(dǎo)致130萬人死亡[1],成為了目前人類死亡率最高的幾大癌癥之一。早期發(fā)現(xiàn)相關(guān)病灶并進行長期跟蹤觀察,并進行及時治療才能夠極大提高患者的生存率。而肺結(jié)節(jié)是肺癌的早期可能病變表現(xiàn)之一,因此早期對肺結(jié)節(jié)進行排查診斷具有極為重要的意義。由于肺結(jié)節(jié)形狀的多樣性,有多年臨床經(jīng)驗的放射科醫(yī)師也很難快速做出精準(zhǔn)診斷。同時CT圖像數(shù)量每年也在成倍增加,給放射科醫(yī)師的日常片診斷工作帶來了極大的負(fù)擔(dān),也給基于計算機視覺的肺結(jié)節(jié)檢測技術(shù)帶來了不小的挑戰(zhàn)。
近年來,大型數(shù)據(jù)集的出現(xiàn)以及深度卷積神經(jīng)網(wǎng)絡(luò)的興起在一系列視覺任務(wù)上取得了突破性的進展,例如圖像分類、圖像分割和目標(biāo)檢測等。研究人員進一步借鑒了人類視覺中的注意力思維方式提出了注意力機制(attention mechanism)[2],被廣泛的應(yīng)用在自然語言處理、圖像分類等學(xué)習(xí)任務(wù)中?;诳捎?xùn)練的注意力機制的計算機視覺方法能夠有效的自主聚焦于任務(wù)所感興趣的區(qū)域,抑制不相關(guān)的區(qū)域,進一步提升模型的性能,逐漸成為了熱點研究問題。
綜上,本文提出了一種基于注意力機制的3D深度卷積神經(jīng)網(wǎng)絡(luò)用于檢測定位肺部CT中的肺結(jié)節(jié)。實驗結(jié)果表明,引入了注意力機制的深度卷積神經(jīng)網(wǎng)絡(luò)模型能夠有效聚焦感興趣區(qū)域,提升肺結(jié)節(jié)檢測的精度,降低誤報率。以此算法為基礎(chǔ)的計算機輔助診斷系統(tǒng),能夠盡可能地緩解放射科醫(yī)師閱片的負(fù)擔(dān),提高閱片的速度與質(zhì)量。
隨著大型數(shù)據(jù)集的出現(xiàn),以及深度卷積神經(jīng)網(wǎng)絡(luò)的興起,近年來研究人員提出了許多性能優(yōu)越的目標(biāo)檢測算法,絕大多數(shù)算法都是用于處理自然圖像(2D目標(biāo)檢測)。這些目標(biāo)檢測算法又通常分為兩類:一類是以準(zhǔn)確度高為代表的基于兩個階段的算法,例如何凱明團隊的R-CNN[3]系列,第一個階段通過滑窗提出候選區(qū)域,第二個階段實現(xiàn)候選區(qū)域的分類以及區(qū)域回歸;另一類則是以速度快為代表的基于單階段的算法,例如YOLO[4]和SSD[5]系列,不需要生成區(qū)域階段,直接計算得到物體的類別概率和坐標(biāo)。肺結(jié)節(jié)檢測有別于自然圖像目標(biāo)檢測,但是仍然有著許多共同點。
傳統(tǒng)的肺結(jié)節(jié)算法基于分割和手工特征設(shè)計。王彬等[6]提出了一種基于簡單線性迭代聚類超像素方法分割CT圖像,然后根據(jù)相似度合并超像素,得到肺部區(qū)域以及可疑肺結(jié)節(jié)區(qū)域的算法。傳統(tǒng)方法普遍存在的缺陷:過度依賴于專家知識以及手工特征的設(shè)計。為了克服傳統(tǒng)方法的這些局限性,與此同時深度學(xué)習(xí)技術(shù)的興起,研究人員們開始嘗試使用深度卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)肺結(jié)節(jié)檢測,基于深度卷積神經(jīng)網(wǎng)絡(luò)的模型相比傳統(tǒng)方法也取得了更好的檢測效果。朱輝等[7]基于多尺度特征的U-Net網(wǎng)絡(luò)提出了一種肺結(jié)節(jié)分割算法。Ding等[8]在LUNA16的生成結(jié)節(jié)候選和降低誤報率的比賽中使用了3D深度卷積神經(jīng)網(wǎng)絡(luò)取得了第一名的優(yōu)異成績。Zhu等[9]采用了雙路網(wǎng)絡(luò)(dual path network,DPN)實現(xiàn)了肺結(jié)節(jié)檢測,然后使用梯度提升決策樹算法(gradient boosting machine, GBM)完成了檢出結(jié)節(jié)的良惡性判別,實現(xiàn)了一整套肺部CT癌癥診斷系統(tǒng)。
將注意力機制用于自然圖像分析、知識圖譜、機器翻譯和分類等應(yīng)用[2]中,是一種提升模型性能的有效手段。在通常的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型中,通常采用多次卷積、下采樣以及激活層引入非線性變換的操作來生成圖像的特征圖,模型的效果很大程度上取決于得到的特征映射的質(zhì)量。為了提高網(wǎng)絡(luò)所生成特征映射的質(zhì)量,研究人員提出了許多性能優(yōu)良的卷積神經(jīng)網(wǎng)絡(luò)模型,例如 ResNet、DenseNet和Highway Network等。盡管如此,如何有效生成特征圖的問題仍未很好的解決。
為了有效解決卷積神經(jīng)網(wǎng)絡(luò)無法生成有效特征映射的問題,研究人員借鑒了人類視覺認(rèn)知中主動關(guān)注某一特定感興趣區(qū)域的行為,在計算機視覺任務(wù)中引入了注意力機制。在現(xiàn)有模型中引入注意力機制,達到對特征映射重采樣的效果,實現(xiàn)突出任務(wù)中所關(guān)注信息的作用。計算機視覺任務(wù)中可訓(xùn)練注意力機制主要分為以下兩種:一種是Hard Attention,即通過數(shù)據(jù)標(biāo)注的方式,在模型訓(xùn)練過程中顯式地告訴模型感興趣區(qū)域的位置;另一種則是Soft Attention,使網(wǎng)絡(luò)模型通過反向傳播這一過程主動學(xué)習(xí)任務(wù)所需要關(guān)注的區(qū)域。這兩種方法在最近的計算機視覺任務(wù)研究中都得到了相當(dāng)廣泛的應(yīng)用。Oktay等[10]在U-Net網(wǎng)絡(luò)模型中引入了注意力機制,提升了肺部分割的精確率。Hu等[11]在ImageNet2018中首次提出了采用基于圖像通道的注意力機制的方法,取得了2018年ImageNet的冠軍。
綜上,本文方法借鑒了基于兩個階段的目標(biāo)檢測算法Faster RCNN[3],網(wǎng)絡(luò)中采用了殘差塊[12]以及近似U-Net[13]結(jié)構(gòu)的上下文多尺度信息融合的模型結(jié)構(gòu)。最后為了提高卷積神經(jīng)網(wǎng)絡(luò)生成特征的質(zhì)量,在網(wǎng)絡(luò)中引入了注意力機制。本文中使用了LUNA16數(shù)據(jù)集,Pytorch深度學(xué)習(xí)框架在GPU上訓(xùn)練,最終得到預(yù)期的實驗效果。
本文設(shè)計了一種基于注意力機制的深度殘差網(wǎng)絡(luò),并采用了目標(biāo)檢測經(jīng)典算法Faster RCNN[3]中的3D版本區(qū)域提案網(wǎng)絡(luò)(region proposal network,RPN)直接生成肺結(jié)節(jié)區(qū)域候選。
計算機視覺任務(wù)中常常以基于圖像的方式訓(xùn)練,但是由于GPU顯存容量的限制,將一張完整3D CT圖像數(shù)據(jù)作為網(wǎng)絡(luò)輸入不太可行。為了解決這一問題,本文首先從肺部CT圖像中提取出小的圖像片作為模型的輸入,3D圖像片大小為96*96*96*1,分別對應(yīng)著3D CT圖像數(shù)據(jù)中的高度、長度、寬度以及通道數(shù)。
本文中的主體網(wǎng)絡(luò)結(jié)構(gòu)采用了近似U-Net[9,10]的多尺度融合的對稱結(jié)構(gòu),并由殘差網(wǎng)絡(luò)塊、池化層、批歸一化層、激活層、注意力機制門模塊以及區(qū)域提案網(wǎng)絡(luò)輸出層組成。本文中的具體卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 3D卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)的前向下采樣部分,由5個3D卷積塊組成,每個卷積塊又都由兩個3D殘差網(wǎng)絡(luò)卷積塊組成,每個卷積塊之后是3D最大池化層,池化層將圖像特征映射尺度減半,通過池化實現(xiàn)圖像的下采樣操作,提取特征和減少后續(xù)卷積操作參數(shù)。卷積神經(jīng)網(wǎng)絡(luò)的反卷積提升部分,由3個卷積塊和一個區(qū)域提案網(wǎng)絡(luò)輸出層組成,在卷積塊提取完特征映射后使用反卷積操作提升圖像的尺度,形成了一個類似U-Net的結(jié)構(gòu)。反卷積是一種用于提升特征圖尺度大小的卷積操作,屬于可訓(xùn)練上采樣的一種,在每一個卷積塊之后將圖像特征圖尺度乘2。中間的拼接部分用于融合圖像的上下文信息,將低層的抽象特征和高層的抽象特征相結(jié)合,達到更有效生成特征的目的,也是近似U-Net結(jié)構(gòu)中相當(dāng)重要的一部分。網(wǎng)絡(luò)中的所有卷積塊和前向下采樣部分一樣,都采樣了和上文一樣的3D殘差卷積模塊。網(wǎng)絡(luò)中所有卷積塊都由3D版的殘差網(wǎng)絡(luò)卷積塊組成(即兩個1*1*1的卷積核,和一個3*3*3的卷積核,每一卷積核之后是relu激活函數(shù)和批歸一化),相比兩個3*3*3的卷積核,幾乎減少了一半的參數(shù)數(shù)量,兩者網(wǎng)絡(luò)性能相差無幾。本文所使用的3D殘差網(wǎng)絡(luò)卷積塊結(jié)構(gòu)如圖2所示,其中AG代表本文所使用注意力機制模塊。
圖2 引入注意力機制門的3D殘差塊結(jié)構(gòu)
候選區(qū)域是否為結(jié)節(jié)的概率由Sigmoid激活函數(shù)計算得到,激活函數(shù)公式如式(1)所示
(1)
本文中的損失函數(shù)采用了Faster RCNN的損失函數(shù)。為了損失函數(shù)的計算,本文首先計算了目標(biāo)檢測任務(wù)中交并比(intersection over union,IoU)來決定候選區(qū)域是否為結(jié)節(jié)檢測任務(wù)中的一個目標(biāo)(即本文任務(wù)中的結(jié)節(jié))。如果一個候選區(qū)域與標(biāo)注的交并比大于0.5,則將該候選區(qū)域判定為是一個正樣本;反之如果候選區(qū)域與標(biāo)注的交并比小于0.02,則將判定為是一個負(fù)樣本。其它候選區(qū)域?qū)⒈粊G棄。候選區(qū)域的分類損失函數(shù)如式(2)所示
(2)
候選區(qū)域回歸損失是smooth L1-norm函數(shù),公式如式(3)和式(4)所示
(3)
(4)
最終的3D目標(biāo)檢測損失函數(shù)由分類損失函數(shù)和候選區(qū)域回歸損失函數(shù)兩部分組成,公式如式(5)所示。其中采用了隨機梯度下降算法訓(xùn)練模型,反向傳播算法更新網(wǎng)絡(luò)中的參數(shù)
L=Lcls+pLreg
(5)
標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)模型通常由反復(fù)的卷積、下采樣操作和非線性激活得到特征映射?;诂F(xiàn)有的深度卷積神經(jīng)網(wǎng)絡(luò)模型,采用注意力機制模型能夠在可接受的計算開銷內(nèi),為任務(wù)相關(guān)的特征映射賦予顯著的權(quán)重。由于LUNA16數(shù)據(jù)集中的結(jié)節(jié)普遍偏小(肺結(jié)節(jié)平均直徑大小為8.3 mm),屬于小物體目標(biāo)檢測任務(wù),粗糙的特征映射會降低結(jié)節(jié)檢測的準(zhǔn)確率,因此加入注意力機制很有必要。
為了提升卷積神經(jīng)網(wǎng)絡(luò)生成特征映射的質(zhì)量,本文中提出了一種可訓(xùn)練的3D注意力機制門模塊,并將其整合至上文中的卷積神經(jīng)網(wǎng)絡(luò)中,3D注意力機制門結(jié)構(gòu)如圖3所示。
圖3 3D注意力機制門模塊結(jié)構(gòu)
注意力因子范圍在0到1之間,用于識別現(xiàn)有圖像任務(wù)感興趣的相關(guān)區(qū)域以及修剪抑制不相關(guān)的特征,保留僅與任務(wù)相關(guān)的激活,起到對特征映射重新采樣的作用。對于一個任意大小卷積操作輸出的中間特征映射F∈RL*W*H*C結(jié)果,其中L表示3D圖像長度,W表示寬度,H表示高度,C表示3D圖像通道數(shù),對其順序進行通道注意力門以及空間注意力門操作運算。
圖像特征映射的每一個通道都可以視為一個特征生成器[14],基于通道的注意力門能夠關(guān)注圖像通道中對任務(wù)有意義的部分。為了有效計算生成通道所需的注意力因子,本文采用了Hu等[11]所提出的擠壓和激勵網(wǎng)絡(luò)(squeeze and excitation networks,SENet)對輸入特征映射的空間維度的方法,并在自適應(yīng)均值池化的情況下額外增加了自適應(yīng)最大池化增強特征映射的表達能力。普通池化技術(shù)只能通過調(diào)整池化步長得到期望的池化結(jié)果,而自適應(yīng)池化是一種固定大小輸出的池化技術(shù)。例如對于96*96*96*3的輸入(其中前3位表示圖像尺度,最后一位表示通道數(shù)),如果設(shè)置1的池化輸出則將得到我們預(yù)期的 1*1*1*3的輸出。得到了通道“擠壓”的結(jié)果之后,對其分別使用一個共享參數(shù)的自編碼結(jié)構(gòu)的多隱層神經(jīng)網(wǎng)絡(luò)進行“激勵”操作,然后將兩部分池化結(jié)果相加。最后使用Sigmoid激活函數(shù)得到注意力因子。通道注意力機制門計算公式如式(6)所示,其具體結(jié)構(gòu)如圖4所示
圖4 3D通道注意力機制門結(jié)構(gòu)
Ac=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))
(6)
和通道注意力機制不同,空間注意力機制[10]利用圖像中的空間關(guān)系,更多關(guān)注圖像空間中“哪里”是任務(wù)感興趣區(qū)域??臻g注意力機制是對通道注意力機制的一個補充,并且兩者計算的順序并不會對實驗結(jié)果產(chǎn)生大的影響。為了計算空間注意力因子,仍然從收集圖像特征映射的最大池化和均值池化信息開始,但與上文的池化操作不一樣。這里的池化在通道層面上進行。例如對96*96*96*3的特征映射輸入進行相關(guān)均值池化操作,將池化結(jié)果通道參數(shù)設(shè)1,將得到96*96*96*1的空間注意力因子。將均值和最大池化結(jié)果合并,為了增強注意力因子的表示能力,對合并的結(jié)果增加了一個單獨的卷積層(卷積核大小為3*3*3,并保持圖像尺度大小),得到單通道的3D空間特征映射。最后然后仍然使用了Sigmoid激活函數(shù)得到了空間注意力因子??臻g注意力門計算公式如式(7)所示,其具體結(jié)構(gòu)如圖5所示
圖5 3D空間注意力機制門結(jié)構(gòu)
As=σ(f3*3*3(concat(Avg(F′);Max(F′))))
(7)
順序?qū)υ季矸e結(jié)果的特征映射進行通道注意力門模塊和空間注意力門模塊計算,得到新的特征映射。通過有監(jiān)督的反向傳播訓(xùn)練過程,達到抑制3D CT圖像中不相關(guān)的部分(例如除肺部以外的區(qū)域等),并通過注意力因子對任務(wù)感興趣區(qū)域達到強調(diào)作用,計算公式如式(8)所示
F′=As?(Ac?F)
(8)
本文采用了LUNA16肺結(jié)節(jié)檢測數(shù)據(jù)集,數(shù)據(jù)集中共包含了888張低劑量肺部CT圖像,由多名具有數(shù)年放射科診斷經(jīng)驗的臨床醫(yī)師標(biāo)注而成,記錄了肺結(jié)節(jié)位置信息和直徑大小,其特點是數(shù)據(jù)量大,肺結(jié)節(jié)大小偏小。其中肺結(jié)節(jié)直徑范圍為:3.0 mm-28.3 mm,平均大小為8.3 mm,總計1186例經(jīng)多名放射科醫(yī)師標(biāo)注過的肺結(jié)節(jié)樣本。肺結(jié)節(jié)標(biāo)注示例見表1。
表1 LUNA16數(shù)據(jù)集標(biāo)注示例
本文實驗環(huán)境的基本配置為Intel i5-8400處理器,兩張NVIDIA GeForce 1070Ti顯卡(8 GB顯存),32 G內(nèi)存,所用系統(tǒng)為Ubuntu16.04。本文中的網(wǎng)絡(luò)模型采用PyTorch深度學(xué)習(xí)框架實現(xiàn)。
本文中訓(xùn)練階段采用了隨機梯度下降優(yōu)化器,其中最重要的訓(xùn)練參數(shù)批大小受GPU顯存限制在本文實驗中設(shè)置為8。采用了隨機梯度下降算法訓(xùn)練,初始學(xué)習(xí)率(lear-ning rate)為0.01,1/3和2/3 Epoch之后學(xué)習(xí)率分別調(diào)整為0.001、0.0001,權(quán)重衰減(weight decay)為0.0001,動量(momentum)為0.9。采用了十折交叉驗證訓(xùn)練模型,每一折中模型都訓(xùn)練了190個Epoch。十折交叉驗證首先將樣本分為10份,分別使用其中的9份作為訓(xùn)練集,剩下1份作為交叉驗證集,反復(fù)訓(xùn)練10次,最后將所有結(jié)果取平均誤差來評估模型。
針對LUNA16數(shù)據(jù),首先我們根據(jù)放射密度(hounsfield unit,HU)的范圍[-1200,600]截取原始CT圖像的像素,即肺部區(qū)域HU取值范圍。然后將圖像像素歸一化至[0,255]范圍之間。最后一步采用了LUNA16官方提供的分割結(jié)果,移去了背景和除肺部之外的不相關(guān)區(qū)域。
為了緩解模型過擬合的現(xiàn)象以及增強模型的泛化能力,本文還對預(yù)處理之后CT圖像應(yīng)用了多種數(shù)據(jù)增廣(data augmentation)手段,例如左右翻轉(zhuǎn)變換、旋轉(zhuǎn)變換和圖像尺度的變換。
本文的實驗評估采用了FROC(free-response receiver operating characteristic)作為評判模型的指標(biāo),其中評估腳本由LUNA16官方給出。FROC曲線的橫軸為假正例數(shù)(false positive rate),縱軸為真正例率(true positive rate)。在醫(yī)學(xué)領(lǐng)域真正例率也被稱為敏感度(sensitivity)。FROC是ROC曲線的一個變種,經(jīng)典的ROC曲線方法無法解決同一圖像上存在多個異常點(如結(jié)節(jié))進行指標(biāo)評價的情況,例如常見的二分類,一幅圖像的結(jié)果只能判定是對還是錯。
改進的FROC曲線將橫坐標(biāo)改為了每次掃描平均誤報數(shù),使得在判定時能夠解決圖像中存在多個異常點的情況。本文的肺部圖像數(shù)據(jù)中一張完整CT往往包含多個結(jié)節(jié),使用ROC等指標(biāo)不能有效直接評估模型,因此需要采用FROC作為肺結(jié)節(jié)檢測的指標(biāo)。計算1/8, 1/4, 1/2, 1, 2, 4和8共計7個假正例數(shù)情況下的敏感度平均值作為最終的結(jié)果。其中敏感度的計算方法如式(9)所示
(9)
LUNA16數(shù)據(jù)集總結(jié)果的FROC曲線如圖6所示,其中ResNet[3]曲線是原始方法曲線,Attention_ResNet是在原始方法基礎(chǔ)上提出的引入注意力機制的結(jié)果。本文中引入的注意力機制的方法在沒有加入任何降低誤報策略情況下FROC結(jié)果為81.6%,超過了未使用注意力機制的原ResNet網(wǎng)絡(luò)模型1.6%,相比VGG[15]網(wǎng)絡(luò)提升了8.4%。
圖6 模型的FROC結(jié)果曲線
LUNA16數(shù)據(jù)集十折交叉驗證中的每一折模型FROC結(jié)果見表2,由結(jié)果圖所示添加了3D注意力機制門之后的模型幾乎在LUNA16數(shù)據(jù)每一折上FROC結(jié)果都高于原始方法結(jié)果。
表2 LUNA16每一折的實驗結(jié)果
根據(jù)前文指定的3種目標(biāo)檢測Anchor大小,我們將數(shù)據(jù)集中結(jié)節(jié)分為了3類,分別是小結(jié)節(jié)(直徑小于5 mm)、中等大小結(jié)節(jié)(直徑在5 mm至20 mm之間)以及較大結(jié)節(jié)(直徑大于20 mm)。模型對數(shù)據(jù)集中的不同范圍大小的肺結(jié)節(jié)檢測效果如圖7所示。LUNA16中絕大部分結(jié)節(jié)直徑處于5 mm-20 mm之間,約占了73%,針對中等大小肺結(jié)節(jié)本文中的方法FROC達到了86.4%,均高于其它兩種方法。
圖7 不同結(jié)節(jié)直徑大小的平均FROC結(jié)果
本文提出了一種基于注意力機制門的肺結(jié)節(jié)檢測方法,結(jié)合了空間和通道注意力兩種不同粒度和層次的特征增強,在LUNA16公開數(shù)據(jù)集上驗證了本文方法的有效性。由十折交叉驗證的結(jié)果顯示,應(yīng)用了3D注意力機制的方法平均FROC達到了81.6%,超過了未使用的原ResNet的方法1.6%。
在未來的工作中,我們將繼續(xù)提升肺結(jié)節(jié)定位的準(zhǔn)確性,并進一步探索肺結(jié)節(jié)類型的分類(例如磨玻璃結(jié)節(jié)與非磨玻結(jié)節(jié))以及肺結(jié)節(jié)與良惡性病變之間的關(guān)系。