胡 英 付美涵,2
1(大連海事大學船舶電氣工程學院 遼寧 大連 116000) 2(東北大學醫(yī)學影像智能計算教育部重點實驗室 遼寧 沈陽 110000)
近幾年來,肝癌已成為嚴重威脅人類健康的疾病之一且有較高的患病率和復發(fā)率[1]。目前,肝臟的計算機輔助診斷和肝介入手術(shù)是診斷和治療肝臟腫瘤的有效方法,因此,掌握肝臟和肝臟血管的形態(tài)結(jié)構(gòu)是診斷和治療肝癌的關(guān)鍵步驟。由于肝臟血管與周圍組織對比度低、形狀不規(guī)則、CT影像中含有高噪聲等原因,使得肝臟血管的分割十分困難[2],而通過人工手動分割肝臟血管費時費力,且比較依靠專家的經(jīng)驗與技能,不同專家之間分割結(jié)果差異較大。因此,臨床上急需一種自動、準確、高效的肝臟血管分割算法。
傳統(tǒng)的肝臟血管分割主要方法有閾值法、圖像濾波法、形變算法、跟蹤算法和機器學習算法等。符曉珠等[3]提出基于分水嶺自適應閾值算法,該算法可以自動選取肝臟血管的閾值進行分割,但由于不同CT影像之間閾值差別較大,所以很難使用統(tǒng)一閾值分割。圖像濾波法,主要用Hessian濾波器對呈現(xiàn)樹狀結(jié)構(gòu)的肝臟血管進行特征提取,進而對肝臟血管進行多尺度增強[4-8],但該算法往往需要結(jié)合區(qū)域生長、圖割和形態(tài)學等方法,對具有高噪聲的圖像分割效果較差,且需要調(diào)整大量的參數(shù),較為煩瑣。形變算法中如水平集方法[9-10],需選取初始種子點,若初始種子點定位不準確,則會出現(xiàn)欠分割或者過分割的問題。跟蹤算法基于預定的血管模型進行分割,通常與管狀結(jié)構(gòu)測量[11]、匹配濾波器[12]和形態(tài)學重建[13]等方法相結(jié)合。上述算法往往需要用戶進行交互,無法實現(xiàn)自動分割。Zeng等[14]提出了基于機器學習的肝臟血管分割算法,通過三個典型濾波器提取肝臟血管的結(jié)構(gòu)特征,再應用機器學習的相關(guān)知識對血管分類。此方法中,需要詳盡地設計肝血管的特征,平衡不同的參數(shù)。
近幾年,深度卷積網(wǎng)絡在醫(yī)學圖像分割方面取得了令人矚目的成就,這些網(wǎng)絡可以自動地學習圖像中復雜的特征,并對目標進行分類。Kitrungrotsakul等[15]利用三個具有共享核的深度卷積網(wǎng)絡(DNN),從CT影像數(shù)據(jù)的不同平面上提取肝血管特征,但該網(wǎng)絡無法分割差異較大數(shù)據(jù)。由于肝臟血管形狀不規(guī)則、分支形態(tài)細小,且開源標注數(shù)據(jù)有限,數(shù)據(jù)集中前景與背景像素比例失衡,導致訓練容易陷入局部最優(yōu)值,這使得常規(guī)深度卷積網(wǎng)絡分割肝臟血管很困難。文獻[16]提出了一種對稱的全卷積網(wǎng)絡U-Net,該網(wǎng)絡包含編碼器-解碼器,在醫(yī)學圖像分割方面取得了良好的效果。3DU-Net[17]和V-Net[18]是針對三維生物醫(yī)學影像分割而設計的一種密集全卷積網(wǎng)絡。Yu等[19]將ResNet[20]網(wǎng)絡中的殘差結(jié)構(gòu)塊引入到3DU-Net中,構(gòu)建了一種新的殘差3DU-Net,用于從CT影像中分割肝臟血管。
V-Net相比于3D-Unet在網(wǎng)絡上增加了殘差結(jié)構(gòu)并且使用卷積層代替池化層,該網(wǎng)絡能夠在訓練樣本少、標注不完全的情況下,實現(xiàn)端到端分割。V-Net網(wǎng)絡結(jié)構(gòu)可分為解碼器和編碼器兩部分,通過跳躍連接結(jié)構(gòu),將編碼器的特征映射到解碼器中,彌補解碼器上采樣過程中丟失的空間信息,盡管該種結(jié)構(gòu)在一定程度上保留了損失的空間特征,但由于肝臟血管與周圍的組織相似度較高,若想準確分割,仍需加強網(wǎng)絡的定位能力。V-Net使用了一種基于骰子系數(shù)的新?lián)p失函數(shù)[18](Dice Loss),用以減少前景和背景比例失衡帶來的影響,分割結(jié)果雖有改善,但仍無法準確分割小目標。
為了實現(xiàn)肝臟血管的準確分割,本文將V-Net作為肝臟血管分割的基礎網(wǎng)絡結(jié)構(gòu),并在此基礎上進行了優(yōu)化,改進如下:(1) 更改網(wǎng)絡結(jié)構(gòu),并在跳躍連接過程中引入金字塔卷積塊,用于融合局部和全局圖像內(nèi)容,減少信息丟失。(2) 在網(wǎng)絡中引入多分辨率深度監(jiān)督,將肝臟血管分割為多分辨率特征圖,即視為多任務學習,不同監(jiān)督路徑參數(shù)獨立更新互不干擾,使每條路徑的訓練更加有效,進而提高模型魯棒性,并將不同分辨率特征圖組合,用于輸出最終的預測結(jié)果。(3) 為了解決前景與背景體素高度不平衡的問題,采用Tversky損失函數(shù)[21]。
原始V-Net是一種含有五個分辨率層的密集型對稱網(wǎng)絡,左側(cè)的編碼器用于從圖像中提取特征,右側(cè)的解碼器通過跳躍連接將編碼路徑的信息與上采樣的多尺度特征圖信息結(jié)合,最終還原到原始分辨率,并在此基礎上進行逐像素分類。為防止訓練過程出現(xiàn)過擬合現(xiàn)象,并降低計算量,本文使用3×3×3的卷積核替換原始網(wǎng)絡中5×5×5的卷積核,PReLU激活函數(shù)應用于整個網(wǎng)絡。為了防止網(wǎng)絡過擬合,在每層的殘差結(jié)構(gòu)末端添加dropout層。
本文改進后的網(wǎng)絡結(jié)構(gòu)如圖1所示,左側(cè)編碼器和右側(cè)解碼器各包含四層網(wǎng)絡結(jié)構(gòu),原始V-Net網(wǎng)絡在編碼器中多次使用步長為2的2×2×2卷積核對特征圖進行下采樣。下采樣雖然可以增加感受野,但同時也降低了空間分辨率,從而導致特征圖細節(jié)信息丟失。因此本文刪除原始V-Net編碼器中最后一層,并在編碼器的第四層中引入空洞卷積,用以彌補因下采樣層減少而造成的特征圖感受野降低的問題。擴充后的卷積核計算如下:
kd=k+(k-1)(r-1)
(1)
式中:k為原卷積核大小;r為膨脹率,三個空洞卷積中膨脹率分別為3、4、5。空洞卷積操作可在不使用下采樣縮小特征圖的情況下,增加感受野,且通過調(diào)整空洞卷積中的膨脹率值,可提取特征圖中不同尺度的特征信息。沿編碼路徑中每個連續(xù)層將特征通道的數(shù)量加倍,以便更準確和充分地學習深度特征。在解碼路徑中每一層都使用將特征通道數(shù)量減半、步長為2的2×2×2反卷積進行上采樣。最后,在輸出層使用1×1×1卷積來調(diào)整特征映射的通道數(shù)目。
語義分割是像素級別的分類,需要逐像素定位再分類。肝臟血管錯綜復雜且與周圍組織對比度低,從而需要增強網(wǎng)絡的分類與定位能力。文獻[22]指出,大核卷積除了具有固有的空間定位能力外,還可以提高網(wǎng)絡的體素分類能力。為了防止在網(wǎng)絡主體中使用大卷積核造成網(wǎng)絡參數(shù)過多而導致網(wǎng)絡過擬合,本文在每層水平連接過程中引入金字塔卷積塊,連接位置如圖2所示。金字塔卷積塊具體結(jié)構(gòu)如圖3所示,采用3×3×3、5×5×5和7×7×7卷積塊并行構(gòu)造。同時加入殘差結(jié)構(gòu),并在殘差結(jié)構(gòu)后添加1×1×1卷積,殘差結(jié)構(gòu)公式如下:

(2)

從編碼器輸出的特征經(jīng)過金字塔卷積塊傳播到解碼器中,有助于網(wǎng)絡從不同尺度捕獲肝臟血管的空間特征信息,以產(chǎn)生更多的鑒別特征。不同尺度的卷積可有效融合局部和全局圖像內(nèi)容,并減少信息丟失,進而加強網(wǎng)絡的定位能力。
文獻[23]中指出深度監(jiān)督機制可以有效緩解梯度爆炸或消失現(xiàn)象,加快網(wǎng)絡收斂速度,此外,還可以作為早期隱藏層的特征正則化方法,防止過擬合,增加網(wǎng)絡泛化能力。
本文中的深度監(jiān)督可以被看作為在網(wǎng)絡從低層到高層的不同隱藏層中輸出不同分辨率特征圖,即將肝臟血管的分割任務視為多任務學習過程。最終的預測結(jié)果為每層輸出的特征圖融合后的結(jié)果,經(jīng)多尺度特征圖融合后的預測結(jié)果包含更多隱藏層的細節(jié)信息,從而提高網(wǎng)絡整體的分割精度。如圖2所示,與常規(guī)的深度監(jiān)督不同,多任務深度監(jiān)督可對多條路徑不同分辨率的特征圖進行監(jiān)督:在4層網(wǎng)絡結(jié)構(gòu)中解碼器每層特征圖通過1×1×1卷積降維,除最下層外,其余三層每層特征圖經(jīng)過Softmax后輸出的結(jié)果,將與通過三線性插值下采樣得到的相同分辨率的標簽計算損失值,即多條路徑各自計算損失值并更新權(quán)重,互不干擾。除第一層的輸出層外,再將降維的特征圖進行三線性插值上采樣與上一層降維后的特征圖融合,以此類推,生成最終特征圖,經(jīng)過Softmax層后生成最終預測結(jié)果。引入多分辨率深度監(jiān)督總損失函數(shù)表示如下:
(3)
式中:Lall為融合后的損失函數(shù);Ld為第d層損失函數(shù)。因為多分辨率深度監(jiān)督使肝臟血管分割成為多任務學習過程,每條路徑的參數(shù)更新同等重要,所以不同監(jiān)督路徑的損失權(quán)重應相等。
由于每個路徑有各自分辨率的訓練目標,不同監(jiān)督路徑的參數(shù)隨機初始化,參數(shù)單獨更新而不互相干擾,防止網(wǎng)絡陷入相同的局部最優(yōu)值,使每條路徑的訓練都有助于網(wǎng)絡更好的語義表達。同時,網(wǎng)絡對不同分辨率的特征圖融合可以學習到多級上下文信息,有助于細分預測結(jié)果,使網(wǎng)絡具有分割細小肝臟血管的潛力。
為了應對類別不均衡情況,本文選擇Tversky損失函數(shù)。Tversky定義為:
(4)
式中:P是預測標簽;G是注釋標簽;|P∩G|表示正確分類的前景體素數(shù)量;|P-G|表示假陽性即過度分割體素數(shù)量;|G-P|表示假陰性即欠分割體素數(shù)量;|P-G|+|G-P|代表所有錯誤分類體素數(shù)量。其中,通過調(diào)整α和β可以控制假陽性和假陰性之間的權(quán)衡。Tversky損失函數(shù)定義公式如下:
(5)
式中:在Softmax層的輸出中,p0i代表體素i屬于前景(肝血管)的概率;p1i代表體素i屬于背景(非肝臟血管)的概率;g0i和g1i分別代表標簽中前景和背景體素i的標記,其值分別為1和0。式(5)中關(guān)于p0i和p1i的損失梯度可計算為:
(6)
(7)
Tversky損失函數(shù)不需要平衡訓練的權(quán)重,通過調(diào)整超參數(shù)α和β,可以控制假陽性和假陰性之間的權(quán)衡。經(jīng)實驗驗證,α=0.3、β=0.7時效果最佳,分割精度最高。
后處理即對網(wǎng)絡預測出的肝臟血管的進一步處理。計算每個連通域的體積,為了防止不連通的血管被剔除,通過體積判斷除去小體積噪聲(小于180 mm3)。通過上述操作可以有效減少分割中的錯誤分類。經(jīng)后處理操作前后的對比如圖4所示。
本文算法基于Python3.7和PyTorch實現(xiàn)。PC硬件配置為Intel(R) Xeon(R) Silver 4110 CPU @ 2.10 GHz和NVIDIA Tesla T4 GPU(16 GB內(nèi)存)。
實驗數(shù)據(jù)選用公開的CT影像數(shù)據(jù)集3Dircadb,該數(shù)據(jù)集共包含20例不同肝臟血管結(jié)構(gòu)的增強CT影像。每例數(shù)據(jù)像素間距0.56~0.87 mm,切片厚度為1~4 mm,切片數(shù)目從64到502層不等。在20例數(shù)據(jù)中選取12例作為訓練數(shù)據(jù),8例作為測試數(shù)據(jù)。所選的訓練集具有清晰、多樣的肝血管結(jié)構(gòu),同時與肝臟具有不同強度的對比度。
在訓練開始前,需對數(shù)據(jù)進行預處理操作,本文預處理包括以下三步:(1) 將CT值限于[-200,200]HU,以集中肝臟強度范圍。(2) 通過樣條插值方式將切片厚度統(tǒng)一為1.6 mm,并保持輸入圖像分辨率,保持圖像原始分辨率可避免因重采樣而產(chǎn)生的偽影誤差。(3) 從CT圖像中裁剪出肝臟區(qū)域,并將其統(tǒng)一裁剪為256×256×48大小,只采用包含血管的切片。(4) 為了充分利用現(xiàn)有標簽數(shù)據(jù),通過旋轉(zhuǎn)和鏡像操作增加數(shù)據(jù)量,同時以5為滑動步長一組數(shù)據(jù)連續(xù)取多個48片進行訓練。
本文在V-Net網(wǎng)絡訓練中選擇典型的Adam優(yōu)化器,因為訓練樣本較少,為了防止過擬合提高模型的泛化能力,除了數(shù)據(jù)增強外本文還在網(wǎng)絡中每層的殘差結(jié)構(gòu)末端加入了dropout層,參數(shù)設置為0.5。初始學習率為0.000 1,考慮到計算資源,輸入網(wǎng)絡的批量大小設置為1。模型訓練時長約為20 h,8個測試數(shù)據(jù)的測試時間在8.38~24.67 s之間,所有測試集的平均測試時間為12.31 s。
本文共使用了四種評價標準[24]作為檢驗算法性能的評價指標。這些指標包括用于整體分割準確性評估的骰子系數(shù)(DSC)、體素分割準確性(Acc)、敏感性(Sen)和特異性(Spe),公式如下:
(8)
(9)
(10)
(11)
式中:NTP為正確分割為血管的體素數(shù)量(真陽性);NTN為正確分割為背景的體素數(shù)量(真陰性);NFP為錯誤分割為血管的體素數(shù)量(假陽性)和NFN為錯誤分割為背景的體素數(shù)量(假陰性)。
經(jīng)對比實驗發(fā)現(xiàn)基于V-Net網(wǎng)絡的所有改進部分均可提高算法分割性能,如表1所示,網(wǎng)絡使用Tversky損失函數(shù),平均骰子值和靈敏度分別為68.1%和72.5%,而使用Dice損失函數(shù)(α=β=0.5)平均骰子值和靈敏度分別為66.8%和71.4%,前者相較后者指標提升較大。使用兩種損失函數(shù)最后的預測結(jié)果如圖5所示,可以看出,使用Tversky相比于使用Dice損失函數(shù)可以更準確地分割出更加細小的血管,但相比于專家分割的結(jié)果還存在一定差距。

表1 改進算法在3Dircadb測試數(shù)據(jù)集上的分割性能對比(%)

續(xù)表1
使用常規(guī)深度監(jiān)督,僅僅加快了網(wǎng)絡收斂速度,分割性能并未明顯提高,而使用多分辨率深度監(jiān)督可使平均骰子值和靈敏度相較原始網(wǎng)絡顯著提高3.1百分點和1.7百分點,平均準確性和特異性提高0.4百分點和0.2百分點。圖6為部分改進后的實驗效果圖,其中:(a)為原始CT切片;(b)(e)和(c)(f)分別為使用深度監(jiān)督和多分辨率深度監(jiān)督網(wǎng)絡訓練得到的切片和三維可視化結(jié)果;(d)(g)為金標準。通過觀察對比圖結(jié)果可發(fā)現(xiàn),使用多分辨率深度監(jiān)督的網(wǎng)絡可分割出更多與周圍組織對比度低的薄壁血管。
為驗證多分辨率監(jiān)督機制的性能,本文分別使用傳統(tǒng)深度監(jiān)督方法以及多分辨率深度監(jiān)督方法在改進的V-Net網(wǎng)絡基礎上進行實驗,最終得到結(jié)果如表2所示,其中使用MRDS方法計算的不同分辨率特征圖的DSC值均高于文獻[25]使用的DS,這表明不同路徑特定分辨率的深度監(jiān)督促進網(wǎng)絡學習到更多的語義特征,使每條路徑的訓練都有助于網(wǎng)絡更好的語義表達。同時,每條路徑的DSC值均低于不同路徑特征圖融合后的DSC值,證明網(wǎng)絡通過對不同分辨率的特征圖融合可以學習到多尺度上下文信息,有助于細分預測結(jié)果,提高整體分割性能。1/4分辨率的DSC值相比于其他路徑的DSC值相差較大,表明低分辨率路徑雖然具有較大的接收場和高級特征,但難以有助于邊緣的分割,對總體分割性能貢獻較小,證明了本文減少下采樣層的合理性。

表2 多分辨率深度監(jiān)督與文獻[25]深度監(jiān)督分割性能對比(%)
添加金字塔卷積塊可以使平均骰子值提高1.8百分點,靈敏度提高1.3百分點,表明在每層跳躍連接過程中引入金字塔卷積塊,在特征提取中保留了肝臟血管重要的特征,加強網(wǎng)絡的定位能力。在網(wǎng)絡中同時引入金字塔卷積塊和多分辨率深度監(jiān)督,測試集上最終平均骰子值、靈敏度、準確性和特異性分別為72.9%、75.4%、98.5%和99.5%,最終實驗結(jié)果如圖7所示,擁有較高的分割精度且提取出的狹窄血管更接近真實的血管輪廓。Kitrungrotsakul等[15]的報告指出,7個測試數(shù)據(jù)的平均骰子值為83%,而在其結(jié)果中,并未提取出未標記的肝臟血管,并且該算法對肝臟血管的強度變化較為敏感。經(jīng)過實驗發(fā)現(xiàn),本文方法可以分割出標簽中未標記的肝臟血管,更加接近臨床結(jié)果。部分分割結(jié)果如圖8所示。
經(jīng)實驗統(tǒng)計,本文算法以及其他4種算法的最終指標如表3所示,可以看出本文算法的分割結(jié)果除準確度低于文獻[8](該算法屬于半自動分割方法)以外,其他指標均高于其他算法,表明本文算法分割肝臟血管有更好的性能表現(xiàn)。

表3 本文算法與其他算法的分割性能對比(%)
本文提出一種基于改進的三維全卷積神經(jīng)網(wǎng)絡V-Net肝臟血管分割算法,在少量訓練樣本和注釋不完整的情況下自動分割肝臟血管。在預處理階段使用鏡像、翻轉(zhuǎn)等方式增加數(shù)據(jù)量。在網(wǎng)絡編碼器中引入空洞卷積,使網(wǎng)絡在減少下采樣的情況下增加感受野;通過利用金字塔卷積塊,進一步提高網(wǎng)絡的定位能力;在改進網(wǎng)絡中引入多分辨率深度監(jiān)督,將肝臟血管分割視為多任務學習,即將肝血管分割為多分辨率特征圖,使每條路徑在深度監(jiān)督下有特定的訓練目標且不互相干擾,從而增加分割魯棒性;最后將不同多分辨率特征圖融合預測整體分割結(jié)果。在預測階段使用后處理操作進一步提高預測準確度,最終實現(xiàn)了肝臟血管的精確分割。本文算法可以準確快速地從CT影像中分割結(jié)構(gòu)復雜的肝臟血管,最終分割結(jié)果更接近于臨床結(jié)果,可用于替代臨床中的肝血管手動分割,協(xié)助肝臟外科手術(shù)規(guī)劃。