柳 闊 田景文
(北京聯(lián)合大學智慧城市學院 北京 100101)
腎癌占成人全部惡性腫瘤的2%~3%,是泌尿系統(tǒng)中第二常見的惡性腫瘤[1]。由于腎臟本身對放射治療和化學治療均不敏感,因此,外科手術一直以來都是治療腎癌的主要方案[2]?;颊叩氖中g方案要根據腫瘤直徑、腫瘤外突情況等指標來具體制定[3],這就需要對腹部CT圖像中的腎臟和腫瘤進行精確定位和分割。由經驗豐富的專家手工標注腎臟及腫瘤圖像的輪廓會帶來巨大的工作量,還可能額外引入人工誤差。因此,使用圖像分割算法來實現(xiàn)腎臟以及腫瘤圖像的自動分割是大勢所趨。
傳統(tǒng)的腎臟及腫瘤圖像分割算法主要基于二者的灰度級與紋理結構等特征,使用區(qū)域增長法這類經典分割算法來實現(xiàn)[4-5]。但由于不同類型的腎腫瘤之間所呈現(xiàn)出的特征差異較大,傳統(tǒng)的分割算法很難對全部類型的腎腫瘤圖像進行準確分割。
隨著深度學習算法在計算機視覺以及自然語言處理等領域取得了重大進展,醫(yī)學影像分析領域的很多問題也正在應用卷積神經網絡解決[6]。卷積神經網絡本質上也是一種特征提取算法,能夠從大量帶有標注的CT圖像中學習到各類組織器官圖像的高級語義特征,實現(xiàn)CT圖像的語義分割。尤其是編解碼結構網絡U-Net的提出,為后續(xù)生物醫(yī)學圖像語義分割算法的發(fā)展奠定了重要基礎[7]。
Jiang等[8]基于殘差網絡構建編碼器,提取多分辨率特征圖,并在解碼器中使用跨分辨率的特征融合,用來實現(xiàn)肺部腫瘤的分割。Jin等[9]基于深度可分離卷積來改進U-Net,構建了一個更深的編碼網絡,并用于實現(xiàn)視網膜血管的分割。Chen等[10]使用殘差連接和inception機制來分別增加U-Net編碼網絡的深度與寬度,用于腹部CT圖像中多種組織器官的語義分割。在腎臟及腫瘤圖像的分割問題上,Li等[11]使用多條捷徑連接改變了U-Net編碼器中卷積模塊之間的連接方式,以增加編碼網絡深度的方式來加強網絡提取特征的能力。Yu等[12]提出使用非正方形的圖像塊作為網絡的輸入,并且使用兩個子網絡模型分別從水平和豎直兩個方向來提取腎臟以及腫瘤圖像的特征。
上述基于U-Net的改進算法中,多是通過構建更深或更寬的編碼網絡來提升U-Net提取特征的能力,但這種改進方式無法使網絡高效利用提取到的目標特征。腹部CT圖像中含有大量的復雜背景,若無法準確提取并高效利用腎臟及腫瘤圖像的特征信息,會讓無關背景信息對最終的分割結果產生很大影響。
對此,本文提出一種密集注意力(Dense Connection and Attention,DCA)模塊來替代U-Net中的卷積模塊,并基于DCA模塊構建新的編碼網絡用于提取圖像特征。此外,在神經網絡中添加了深監(jiān)督層,構建一種混合損失函數(shù),使網絡能更準確地篩選并提取關于腎臟和腫瘤圖像的特征信息,并讓淺層網絡學習到更多的語義信息。
U-Net網絡的結構如圖1所示,依照所實現(xiàn)功能的不同,可以將整體結構分為兩部分,分別是用于提取圖像特征的編碼網絡和用于還原特征圖尺寸與恢復細節(jié)信息的解碼網絡。U-Net的編碼網絡共由五個卷積模塊以及四個池化層組成。每個卷積模塊內包含兩個卷積層以及對應的激活層,每個卷積層中使用的卷積核尺寸為3×3,步長為2,激活函數(shù)為ReLU。各卷積層之間的連接方式為首尾級聯(lián),將提取到的特征信息以特征圖的形式保存并逐級向下傳遞。
圖1 U-Net結構
解碼網絡中共包含有四個上采樣模塊,將編碼網絡提取到的特征圖經過逐級上采樣還原至原始尺寸,并且在上采樣的過程中添加了與編碼網絡之間的跳躍連接。跳躍連接是將兩個特征圖在通道維度上進行拼接并使用卷積操作整合特征通道的維度,以更好地還原圖像的細節(jié)信息。
在觀察一幅圖像時,人類的視覺系統(tǒng)會選擇性地關注到感興趣物體所在的區(qū)域,而不是漫無目的地遍歷圖像中的所有內容。語義分割任務中待分割的目標物體通常也只是存在于圖像中的某個區(qū)域,而卷積層輸出的特征圖保存了此次卷積操作從圖像中提取到的全部特征,其中也包含一些無關背景信息。注意力機制自適應調整特征圖中所含特征信息的權重,讓網絡關注目標特征,抑制無關背景信息[13]。根據作用于特征圖的維度不同,注意力機制可以分為通道注意力機制(Channel Attention Mechanism)與空間注意力機制(Spatial Attention Mechanism)。
通道注意力機制構建了特征圖中各特征通道之間的重要性,使網絡能夠專注于包含更多目標特征的通道,其結構如圖2所示。首先使用全局平均池化(Global Average Pooling)操作來計算特征圖在每個通道上的平均響應值,將原始特征圖壓縮成一維的特征向量。然后使用兩個全連接層構建通道之間的相關性,并最終應用Sigmoid激活函數(shù)將向量中的值映射到0~1之間,得到代表特征通道重要性的一維權重向量。
圖2 通道注意力機制結構
空間注意力機制作為通道注意力機制的補充,構建了同一特征通道內不同空間區(qū)域上特征信息的重要程度,其結構如圖3所示。首先分別使用最大池化函數(shù)與平均池化函數(shù)對特征圖X∈RW×H×C在通道維度上進行降維處理,生成兩幅尺寸為W×H×1的新特征圖并在通道維度上連接。然后使用一個卷積核尺寸為7×7×2、數(shù)量為1的卷積層對該特征圖進行卷積操作,生成的特征圖尺寸為W×H×1。最后,使用Sigmoid函數(shù)將生成的特征圖中所含元素的取值范圍映射到0~1之間,得到代表空間區(qū)域重要程度的二維權重圖。
圖3 空間注意力機制結構
在將U-Net算法應用于腎臟及腫瘤圖像的語義分割任務時,其生成的分割結果中存在將小尺寸腎臟或腫瘤圖像全部錯誤地歸類為背景的現(xiàn)象。語義分割的本質是一種像素級別的分類任務,基于卷積神經網絡的語義分割算法首先要識別圖像中物體的類別并判斷其所在的位置,然后才能對屬于該物體的所有像素進行分類,從而達到分割圖像的目的。因此,準確分割的前提是要正確識別出圖像中物體所屬的類別。
腹部CT圖像中所含的背景信息較多,小尺寸的腎臟或腫瘤圖像所含的特征信息相對較少。U-Net編碼網絡中各卷積層之間的連接方式為首尾級聯(lián),將卷積操作生成的特征圖直接向下傳遞。這種方式無法讓下一個卷積層區(qū)別處理輸入特征圖中所包含的目標特征與無關背景信息,并且目標特征在特征提取階段僅被使用了一次。這會導致最終的分割結果受到大量無關背景的影響,網絡無法準確地識別出圖像中小尺寸的腎臟或腫瘤圖像,因此將其全部的像素均錯誤地歸類為背景。
對此,本文提出一種密集注意力(DCA)模塊來替代U-Net中使用的卷積模塊,構建新的編碼網絡,DCA模塊的結構如圖4所示。
首先以分支的形式在第一個卷積層之后添加了雙注意力模塊,基于通道注意力機制與空間注意力機制來建模不同特征通道之間的重要性與同一特征通道內不同空間區(qū)域的重要性,為屬于腎臟和腫瘤圖像的特征信息賦予更大的權重,使網絡在提取特征時能更加關注這部分特征信息,從而也減弱了大量無關背景對分割結果產生的影響。其次,將每個模塊內所包含的卷積層數(shù)量由U-Net的2層增加至4層,并在卷積層與激活層之間添加了批標準化層(Batch Normalization,BN),以增強網絡的特征提取與泛化能力。為了更加充分地利用加權后的目標特征,DCA模塊將各卷積層之間的連接方式改為密集連接[14],即在同一個模塊內,后面的卷積層接收其前面所有卷積層生成的特征圖作為輸入,若設Y(i,j)為第i個DCA模塊中第j個卷積層的輸出,則Y(i,j)可以定義為:
Y(i,j)=F([Y(i,0),Y(i,1),…,Y(i,j-1)])
(1)
式中:F(·)代表由卷積層、批標準化層和激活層組成的非線性函數(shù)。這種連接方式讓加權后的目標特征能在特征提取階段被多次使用,使網絡最大程度地利用提取到的目標特征對圖像進行分割處理。
U-Net生成的分割結果中對于腎臟和腫瘤圖像邊界處一些細節(jié)信息的處理較為粗糙,這是因為U-Net用于提取圖像特征的編碼網絡屬于一種全卷積神經網絡(Fully Convolutional Networks,FCN),是由最初用于分類任務的CNN改進而來,其延續(xù)了CNN在提取特征時使用多個池化層降低參數(shù)數(shù)量并提升網絡感受野的特點。但是池化操作丟失的信息是無法彌補的,U-Net的編碼網絡共進行了四次最大池化操作,將特征圖的分辨率降低了許多,丟失了大量信息,會對邊緣處細節(jié)信息的處理產生很大影響。為了保存更多與目標圖像相關的細節(jié)信息,本文去除了編碼網絡中最后一個池化層,并將后續(xù)卷積操作所使用的卷積核替換為空洞卷積,以此來彌補由于缺少池化層而導致的感受野面積下降。改進后編碼網絡的具體參數(shù)如表1所示。
表1 改進后編碼網絡的參數(shù)信息
U-Net在編碼網絡與解碼網絡之間添加跳躍連接結構,融合了淺層網絡提取到的邊緣、紋理等細節(jié)信息與深層網絡提取到的語義特征,以此來提升模型的分割性能。但Zhang等[15]證實,由于淺層網絡生成的特征圖之中所含語義信息較少,簡單地將其與深層網絡生成的含有豐富語義信息的特征圖進行融合無法實現(xiàn)對淺層信息的充分利用。
因此,為了使淺層網絡學習到更多的語義信息,本文在神經網絡中應用了深監(jiān)督機制[16]。區(qū)別于U-Net僅將監(jiān)督層放置在網絡的后端,計算網絡最終輸出與真實值之間的損失值,并基于反向傳播算法將該損失值逐級向前傳遞。本文在編碼網絡中添加了額外的監(jiān)督層,使網絡能夠在特征提取的過程中就進行初步的類別判斷,計算網絡中間層輸出的特征圖與標簽圖像之間的損失值,引導編碼網絡對目標特征進行更準確的篩選與提取,并能夠使淺層網絡學習到更多的語義信息。添加深監(jiān)督機制后,網絡的結構如圖5所示,通過獲取第二個以及第三個DCA模塊的輸出并添加額外的尺寸放縮層(scaling layer)將特征圖尺寸調整至與獨熱編碼化的標簽圖像相同,即512×512×3,網絡得以計算其與標簽圖像之間的損失值。放縮層中首先使用雙線性插值將特征圖在空間維度上放大至原始尺寸,然后使用卷積核尺寸為1×1的卷積層整合通道數(shù)量。
圖5 改進U-Net算法的結構
U-Net使用交叉熵(Cross Entropy)損失函數(shù)來描述網絡預測值與真實值之間的損失值,但由于數(shù)據集中多數(shù)像素為背景,交叉熵損失函數(shù)同等地看待每一個像素點,不利于像素占比較少的腎臟及腫瘤圖像的分割。對此,本文改用加權交叉熵(Weighted Cross Entropy)損失函數(shù)來描述模型預測值與真實值之間的損失,為屬于腎臟和腫瘤的像素賦予更大的權重,平衡類別之間的差異,該函數(shù)的具體定義如式(2)所示。
(2)
式中:pi代表網絡的預測值;qi代表圖像的真實值;n為類別數(shù);Wi則代表每個類別所分配的權重,本文中各個類別的權重通過中位數(shù)頻率平衡法獲得[17],即使用各類別的占比除以其中的中位數(shù)。
由于添加了深監(jiān)督機制,本文使用一種混合損失函數(shù)來訓練神經網絡,如式(3)所示,該損失函數(shù)共由三部分組成,分別是模型最終輸出與真實值之間的加權交叉熵損失、兩個中間層輸出與真實值之間加權交叉熵損失的均值及L2正則項。
(3)
式中:pred表示神經網絡的輸出值;GT表示圖像真實值;mid表示神經網絡中間層的輸出值;λ為正則項中的一個超參數(shù),取值范圍為0~1;ω為神經網絡的權重矩陣。
本次實驗所使用的數(shù)據集源于KITS19腎臟及腫瘤圖像語義分割競賽,數(shù)據集中既含有原始腹部CT圖像,又含有由醫(yī)生手工標注的標簽圖像的患者共210名。隨機選取其中150名患者的CT數(shù)據作為訓練集,30名患者的CT數(shù)據用作驗證集,其余30組數(shù)據為測試集。本文僅使用含有腎臟或腫瘤的CT圖像訓練神經網絡,每幅圖像的分辨率為512×512,標簽圖像中共有三個類別,分別是背景、腎臟和腫瘤,各類別的占比如表2所示。
表2 數(shù)據集中的類別占比
圖像中CT值的范圍大致在-1 000~1 400之間,所呈現(xiàn)的對比度較低。CT值所反映的是不同器官對于X射線的吸收能力,本文基于腎臟及腫瘤的CT值分布,將圖像中CT值的范圍調節(jié)至-30~300,以增強圖像的對比度,調節(jié)所使用的公式如下:
(4)
式中:HU表示當前像素點的CT值。并且為了使模型更容易收斂,對調整過CT值范圍的數(shù)據集進行歸一化處理,所使用的公式如下:
(5)
本次實驗所使用的硬件配置為InterICore i7- 7700型號的處理器,主頻3.6 GHz;單張顯卡,型號為Nvidia Tesla V100,16 GB顯存;操作系統(tǒng)為Ubuntu16.04,同時搭配了CUDA10.0及cuDnn;使用以TensorFlow為后端的Keras深度學習框架。 神經網絡在訓練過程中的超參數(shù)設置如下:Batch_Size的值為6,Epoch的值為50,為了使網絡更加容易收斂,卷積層參數(shù)初始化的方式選擇使用高斯初始化,用隨機梯度下降(SGD)優(yōu)化器訓練網絡,初始的學習率為0.001,學習率的衰減系數(shù)為5×10-5,動量(momentum)為0.9。
本次實驗使用Dice相似性系數(shù)(Dice Similarity Coefficient, DSC)、靈敏性(Sensitivity)系數(shù)、特異性(Specificity)系數(shù)這三種常用的生物醫(yī)學圖像分割評價指標來客觀、全面地評估本文算法與其他對比算法的性能。Dice相似性系數(shù)描述的是預測值與真實值之間的相似程度,當預測值與真實值之間無任何交集時結果為0,當預測值與真實值完全相同時結果為1,其具體的定義如下:
(6)
式中:A為模型的輸出;B為圖像標簽的真實值。
靈敏性系數(shù)是指原圖像所有屬于腎臟(腫瘤)的像素中預測結果為“真陽性(True Positive)”所占的比例,靈敏性越高,則說明原圖像中屬于腎臟(腫瘤)的像素被正確預測的概率就越大。靈敏性系數(shù)的計算方法如式(7)所示。
(7)
式中:TP代表被正確預測的腎臟(腫瘤)像素;FN代表預測錯誤的腎臟(腫瘤)像素。
特異性系數(shù)指的是在所有背景像素中,預測結果為“真陰性(True Negative)”所占的比例,特異性越高,也就說明原圖像中屬于背景的像素分類正確的概率就越高,特異性系數(shù)的計算方法如式(8)所示。
(8)
式中:TN代表被正確預測的背景像素;FP表示預測錯誤的背景像素。
為驗證本文算法的性能,除了以U-Net網絡作為對比,本文還復現(xiàn)了文獻[9]與文獻[10]中提出的分割網絡,并且均使用本次實驗的數(shù)據集重新訓練,二者同樣是針對U-Net模型的編碼網絡做出了改進。四組模型在測試集上的分割精度如表3所示,可以看出無論是在Dice相似性系數(shù)還是在靈敏性系數(shù)上,本文算法相較于U-Net網絡都有著大幅度提升,也要高于其他兩組對比算法,這說明本文算法對于腹部CT圖像中腎臟(kidney)和腫瘤(tumor)的分割能力更強。
表3 本文算法與其他改進U-Net算法的對比
為了更加直觀地對比幾種模型的分割性能,本文繪制了Dice相似性系數(shù)的箱型圖如圖6所示。可以看出U-Net算法的四分位數(shù)間距較大,表明其在測試集上的分割性能不太穩(wěn)定,并且存在明顯遠離樣本集群的異常值,這也是導致其分割精度較低的原因之一。本文算法在分割性能上提升顯著,無任何異常值,并且四分位數(shù)間距明顯小于U-Net,體現(xiàn)出算法的魯棒性更強,同時也優(yōu)于文獻[9]與文獻[10]的分割算法。
圖6 幾種算法Dice相似性系數(shù)的箱型圖
四種算法在測試集上生成的分割結果如圖7所示,其中:(a)為原始CT圖像;(b)為標簽圖像;(c)-(f)分別為U-Net、文獻[9]、文獻[10]與本文算法生成的分割效果圖。在標簽圖像與各算法生成的分割結果中,淺灰色代表腎臟,白色代表腫瘤,黑色為背景。第一幅CT圖像中含有較多的細節(jié)信息,本文方法與文獻[10]均能對細節(jié)信息進行較為完整的還原。但對于第二幅CT圖像左側的小尺寸腎臟以及第三幅CT圖像中的小尺寸腫瘤,三種對比算法均錯誤地將其分割為背景。這是因為三種對比算法的編碼網絡無法有效利用小尺寸腎臟或腫瘤圖像的特征信息對其做出準確識別,文獻[9]和文獻[10]只是通過增加編碼網絡的深度與寬度來提升U-Net提取特征的能力,但這不能使神經網絡對目標特征與無關背景做出區(qū)別處理,會讓最終的分割結果受到腹部CT圖像中大量復雜背景信息的干擾。得益于使用雙注意力機制為目標特征賦予了更大的權重,并且應用深監(jiān)督機制與密集連接進一步加強了網絡對于特征的篩選與重復利用,本文算法能夠準確地識別并分割出這兩幅圖像中的小尺寸及腫瘤。
圖7 與U-Net及其他改進算法的分割結果對比
為進一步測試本文算法的分割性能,復現(xiàn)了三種非編解碼結構的語義分割網絡作為對比,分別是FCN-8s、DeepLab-ASPP[18]、PSPNet[19],并同樣使用本次實驗的數(shù)據集進行重新訓練與測試。四種算法在測試集上獲得的評價分數(shù)如表4所示,對應的Dice相似性系數(shù)的箱型圖如圖8所示。
表4 本文算法與其他語義分割算法的對比
圖8 與其他語義分割算法Dice系數(shù)的箱型圖對比
綜合表4與圖8中所呈現(xiàn)出的結果可以看出本文算法對于腎臟和腫瘤圖像的分割精度最優(yōu),魯棒性最強且無任何遠離樣本集群的異常值。
圖9是這四種算法在測試集上生成的分割效果,其中:(a)和(b)分別為輸入的CT圖像及對應的標簽;(c)-(f)分別為FCN-8s、DeepLab_ASPP、PSPNet、本文算法生成的分割結果??梢钥闯鲈谔幚硭I臟尺寸相對較小的第一幅圖像時,除了FCN-8s外,其余三種算法都能準確識別并分割出右側的腎臟圖像。這是因為FCN-8s的特征提取網絡較為簡單,提取特征的能力較差,而DeepLab-ASPP和PSPNet使用了更深的編碼網絡,并且采用兩種不同方式來獲取并融合多尺度的特征信息,增強了網絡識別并分割小尺寸目標圖像能力。但是在處理第二幅與第三幅這種所含腎臟或腫瘤尺寸極小的CT圖像時,只有本文算法可以正確分割。不僅如此,對于第四幅圖像中腎臟邊緣處細節(jié)信息的處理,本文方法也要優(yōu)于其他三種對比算法。這是因為本文沿用了對稱使用編解碼網絡與跳躍連接的思想,并應用深監(jiān)督機制使淺層網絡學習到了更多的語義信息,更有效地利用其對像素進行準確定位。而三種對比算法均是將提取到的特征圖通過簡單的雙線性插值法恢復至原始尺寸,忽略了淺層特征信息的利用,因此生成的分割結果中對于圖像細節(jié)的處理較為粗糙。
圖9 與其他語義分割算法的分割結果對比
腹部CT圖像中腎臟及腫瘤的精確分割對于腎癌的診斷與治療有著重要輔助作用。由于腹部CT圖像的背景信息較為復雜,U-Net算法無法準確提取并高效利用腎臟及腫瘤圖像的特征信息。對此本文在其編碼網絡上做出改進,使用DCA模塊替換原始的卷積模塊,并在中間層中引入了深監(jiān)督機制。實驗表明,本文算法在分割精度上相較于U-Net有著顯著提升,并且要優(yōu)于文獻[9]、文獻[10]算法,尤其對邊界的處理更加精細,對于小尺寸腎臟和腫瘤圖像的分割也更加準確。本次實驗僅將CT數(shù)據視為一系列的二維灰度圖像,后續(xù)的研究將主要針對如何有效利用CT圖像的空間深度信息,進一步提升腎臟及腫瘤圖像的分割精度。