裘靜韜,鄒俊忠,郭玉成,張 見,王 蓓
1.華東理工大學(xué) 信息科學(xué)與工程學(xué)院,上海 200000
2.清影醫(yī)療科技(深圳)有限公司,廣東 深圳 518083
隨著全球人口迅速增長和老齡化,癌癥患病率及死亡率正日益突出,中風(fēng)和冠心病,相對于癌癥,在許多國家已經(jīng)不再是主要死因了。另外,癌癥作為早逝原因的地位在很大程度上反映了國家的社會(huì)和經(jīng)濟(jì)發(fā)展水平。肝細(xì)胞癌(HCC)是全世界第六大最常見的癌癥,也是全世界第三常見的與癌癥相關(guān)的死亡原因[1],并且在男性中的比例遠(yuǎn)高于女性,約為兩倍,已成為在肺癌之下男性第二大癌癥死因。
醫(yī)學(xué)圖像中的肝臟病灶分割對于患者病情評估、肝癌診斷、功能評估和治療決策制定非常重要。由于近年來X 射線管、探測器和重建算法的技術(shù)進(jìn)步,計(jì)算機(jī)斷層掃描(CT)已成為無創(chuàng)性診斷肝臟疾病的重要手段[2]。另一方面,高分辨率CT掃描儀產(chǎn)生的數(shù)據(jù)量愈來愈多,這使得放射科醫(yī)生和內(nèi)科醫(yī)生的審片工作變得繁瑣和耗時(shí)。因此,半自動(dòng)或自動(dòng)肝分割在臨床中具有較高應(yīng)用價(jià)值[3]。
過去一些年已經(jīng)提出了幾種先進(jìn)的算法以解決病灶分割問題[4],包括閾值處理、主動(dòng)輪廓模型、圖形切割和機(jī)器學(xué)習(xí)。閾值技術(shù)將強(qiáng)度值高于閾值的所有像素設(shè)置為前景值和所有剩余像素為背景值。例如Moltz等人使用基于閾值的方法與適應(yīng)肝轉(zhuǎn)移的基于模型的形態(tài)學(xué)處理相結(jié)合,實(shí)現(xiàn)肝臟腫瘤的半自動(dòng)分割[5]。基于區(qū)域的方法包括區(qū)域增長、區(qū)域分裂和合并以及流域轉(zhuǎn)換。區(qū)域增長是一種分割圖像的簡單快速算法,通常涉及選擇種子點(diǎn)然后擴(kuò)展它。更先進(jìn)的方法,如迭代相對模糊連通性(IRFC),也被用于肝臟病變分割[6]。由于圖像的簡單性,速度和完全劃分,分水嶺變換已被認(rèn)為是一種強(qiáng)大的分割方法。例如Yan等人基于標(biāo)記控制的分水嶺轉(zhuǎn)換,在體積CT圖像中準(zhǔn)確分割三維肝臟轉(zhuǎn)移[7]。
而另一方面,深度學(xué)習(xí)已經(jīng)應(yīng)用于各種各樣的問題,并且已經(jīng)超越了之前的算法[8],這促使將這種方法應(yīng)用于CT 中的全自動(dòng)肝腫瘤分割。使用完全卷積網(wǎng)絡(luò)(FCN)進(jìn)行端到端和語義分割中的像素到像素這兩種機(jī)制超過了之前的最佳結(jié)果[9]。這是首次訓(xùn)練FCN 端到端進(jìn)行像素預(yù)測和進(jìn)行有監(jiān)督的預(yù)訓(xùn)練[10]。此外,基于FCN 的新分割方法被開發(fā)用于醫(yī)學(xué)圖像分析,具有高度競爭性的結(jié)果。Ben-Cohen等人探討了FCN在CT檢查中肝臟分割和肝轉(zhuǎn)移檢測的任務(wù)[11]。Christ等人提出了一種利用級聯(lián)完全卷積神經(jīng)網(wǎng)絡(luò)(CFCN)和密集三維條件隨機(jī)場(CRF)自動(dòng)分割CT腹部圖像中的肝臟區(qū)域和病變區(qū)域的方法[12]。Dou 等人使用3D 深度監(jiān)督網(wǎng)絡(luò)(DSN),在學(xué)習(xí)過程中引入了一種深入的監(jiān)控機(jī)制,使模型具有較快的收斂速度和較強(qiáng)的分辨能力[13]。徐保全等人使用3d分割網(wǎng)絡(luò)和形態(tài)學(xué)后處理方法預(yù)測肝臟和病灶,病灶預(yù)測精度較高[14]。
本文提出了一種端到端的肝臟和病灶分割網(wǎng)絡(luò)。首先,在U-net 網(wǎng)絡(luò)模型基礎(chǔ)上加入了CondenseNet 的特征復(fù)用思想,對每一個(gè)卷積層組的輸入輸出進(jìn)行Concatenate,極大提升feature map 的利用效率。其次,對損失函數(shù)進(jìn)行了改進(jìn),結(jié)合交叉熵和Dice系數(shù),同時(shí)加入欠分割懲罰因子,提高病灶檢出的比例。最后,加入前后處理,優(yōu)化結(jié)果。通過各個(gè)對比實(shí)驗(yàn)及與高精度復(fù)雜算法的對比實(shí)驗(yàn),驗(yàn)證本文方法的有效性和可行性。
語義分割作為計(jì)算機(jī)視覺的一部分,是非常具有挑戰(zhàn)性的一個(gè)問題,早期的語義分割經(jīng)歷了從傳統(tǒng)的閾值分割,到機(jī)器學(xué)習(xí)領(lǐng)域的隨機(jī)森林、SVM 等算法分割,其應(yīng)用場景一直受到較大局限且分割效果存在精度不高、模型泛化性不好的問題。直到深度學(xué)習(xí)的崛起,2015 年Long 等人提出了全卷積神經(jīng)網(wǎng)絡(luò)——FCN(Fully Convolutional Networks)[15],實(shí)現(xiàn)了語義分割網(wǎng)絡(luò)模型的端到端,之后大部分網(wǎng)絡(luò)都是基于FCN 進(jìn)行的改進(jìn)。
Unet網(wǎng)絡(luò)[16]是基于FCN網(wǎng)絡(luò)改編而來,網(wǎng)絡(luò)由編碼器和譯碼器兩部分組成,由于網(wǎng)絡(luò)很像U 型,所以被稱為Unet網(wǎng)絡(luò)。Unet很巧妙地將低維特征和高維特征結(jié)合,非常適合醫(yī)學(xué)圖像之類的超大圖片,同時(shí)網(wǎng)絡(luò)對輸入也沒有限制。Unet 的編碼器部分采用四次下采樣,一共降低了原始圖像的16 倍,其譯碼器部分也相當(dāng)?shù)剡M(jìn)行了四次上采樣,將編碼器得到的高級語義特征圖進(jìn)行再還原,恢復(fù)到圖像的原始分辨率。加入的skip connection 使得網(wǎng)絡(luò)得以融合更多的低級特征,彌補(bǔ)了單純上采樣的不足。同時(shí)也使得不同像素級的特征在譯碼器部分得以融合,最終得到更加精確的分割結(jié)果。
醫(yī)學(xué)圖像普遍具有高像素、語義相對簡單、結(jié)構(gòu)相對固定的特點(diǎn)。由于器官本身結(jié)構(gòu)的固定和其語義的相對簡單,同時(shí)器官邊界存在模糊性、復(fù)雜性,更加需要利用好高級和低級特征,這對醫(yī)學(xué)類圖像的分割至關(guān)重要。另外,醫(yī)學(xué)圖像標(biāo)注的困難性使得影像難以大規(guī)模地用于訓(xùn)練,所以在網(wǎng)絡(luò)不宜過深過大。原始的Unet參數(shù)在28×106個(gè)左右,具有參數(shù)少、效果好、泛化能力強(qiáng)的特點(diǎn),這也是其能在醫(yī)學(xué)圖像領(lǐng)域大規(guī)模應(yīng)用的原因。肝臟存在于人體腹部,環(huán)境復(fù)雜,周圍器官較多,且邊界不易區(qū)分。這就要求算法在特征提取和利用方面更加高效,本文算法即在Unet模型上進(jìn)行改進(jìn),加入了特征的復(fù)用,將不同尺度的特征進(jìn)行融合,加強(qiáng)了原版模型的特征利用率。
2.2.1 交叉熵
圖像分割中最常用的損失函數(shù)是逐像素交叉熵(cross entropy)損失。該損失函數(shù)分別檢查每個(gè)像素,將預(yù)測圖像的每個(gè)像素與金標(biāo)準(zhǔn)進(jìn)行比較。函數(shù)表達(dá)式如下:

其中,pi表示預(yù)測結(jié)果中第i個(gè)像素的概率,gi表示金標(biāo)準(zhǔn)的第i個(gè)像素的真實(shí)類別,N表示像素?cái)?shù)量,下同。
交叉熵?fù)p失函數(shù)會(huì)單獨(dú)地對圖像的每個(gè)像素進(jìn)行類別預(yù)測,然后對所有像素結(jié)果求取平均值,即圖像中的像素被平等地學(xué)習(xí)了。但是,醫(yī)學(xué)圖像中常出現(xiàn)類別不均衡(class imbalance)的問題,由此導(dǎo)致訓(xùn)練的模型會(huì)被像素較多的類主導(dǎo),對于較小的物體很難學(xué)習(xí)到其特征,從而降低網(wǎng)絡(luò)的有效性和泛化性。
2.2.2 Dice系數(shù)損失
Dice 系數(shù)(Dice coefficient)源于二分類,本質(zhì)上是衡量兩個(gè)樣本的重疊部分。該指標(biāo)范圍從0到1。其計(jì)算公式為:

原始Unet 網(wǎng)絡(luò)使用1-Dice 系數(shù)作為損失函數(shù)進(jìn)行誤差反向傳播,Dice系數(shù)的目標(biāo)是最大化預(yù)測類和真實(shí)類之間的重疊部分,雖然Dice系數(shù)損失對類不平衡的樣本很有效,但是當(dāng)樣本正類別數(shù)量過小時(shí),容易導(dǎo)致訓(xùn)練不穩(wěn),甚至發(fā)散。歸其原因在于正像素過小,由于導(dǎo)數(shù)分母為平方項(xiàng),當(dāng)其過小的時(shí)候,損失梯度就會(huì)對單個(gè)正像素很敏感,其預(yù)測對錯(cuò)會(huì)導(dǎo)致梯度變化很大[17],造成整體間存在像素對模型影響的不平衡性,使得模型對正類別數(shù)量較少的樣本過于敏感而破壞整個(gè)模型的泛化能力。Dice系數(shù)導(dǎo)數(shù)如下:

對于分割病灶的算法,常使用級聯(lián)CNN 網(wǎng)絡(luò)進(jìn)行任務(wù)分割。多步處理的好處是分割結(jié)果精度較高、效果較為理想,但是相應(yīng)的占用資源也相對較多,預(yù)測時(shí)間較為長久,同時(shí)級聯(lián)破壞了卷積神經(jīng)網(wǎng)絡(luò)端到端訓(xùn)練的性質(zhì)。本文以此為出發(fā)點(diǎn),保證精度不損失的前提下,減小資源占用、加快模型的預(yù)測速度。算法模型將采用單一網(wǎng)絡(luò)進(jìn)行雙預(yù)測,同時(shí)輸出肝臟和病灶的預(yù)測結(jié)果,對于研究過程中出現(xiàn)的問題也進(jìn)行改進(jìn)提升,本章將算法整體流程框架進(jìn)行介紹,包括數(shù)據(jù)預(yù)處理、算法訓(xùn)練、預(yù)測結(jié)果后處理,整體框架如圖1。
腹部掃描CT的HU值范圍可以達(dá)到[-2 000,2 000],而實(shí)驗(yàn)所需提取的肝臟和病灶HU值范圍較為固定,經(jīng)測試發(fā)現(xiàn),[-200,200]的范圍覆蓋了肝臟99.53%,病灶99.60%,基本包含了絕大多數(shù)肝臟病灶。即閾值以200和-200 為上下限進(jìn)行歸一化處理,除去不相關(guān)因素的影響,此處理有利于提高模型的泛化能力。
原始Unet 分割網(wǎng)絡(luò)存在模型精度不夠高、特征利用不夠充分、無多尺度融合的問題,本文在此基礎(chǔ)模型上對Unet 網(wǎng)絡(luò)進(jìn)行了改進(jìn),加入了DenseNet 里的特征復(fù)用思想,實(shí)驗(yàn)采用的網(wǎng)絡(luò)構(gòu)架如圖2,網(wǎng)絡(luò)分成編碼器和譯碼器兩部分,每部分又分成四個(gè)卷積層組,每個(gè)卷積層由兩個(gè)卷積層組和PRelu激活函數(shù)組成,卷積層組的輸入和輸出使用concatenate進(jìn)行特征疊加,然后輸入到下采樣層或者上采樣層。最后通過sigmoid激活層輸出。全卷積神經(jīng)網(wǎng)絡(luò)中所有的卷積層,都采用3×3的卷積核以及padding=1(在圖像邊緣填充0)。
考慮到3D腹部掃描CT的肝是一個(gè)立體器官,第三維信息存在著相當(dāng)大的利用價(jià)值,本文以5 張相鄰CT切片作為模型輸入,同時(shí)為保持輸出的唯一性,以第3張切片的肝臟、病灶作為輸出,對比其金標(biāo)準(zhǔn),傳回誤差,訓(xùn)練模型。整個(gè)3D腹部掃描CT按step=1順序輸入模型,除開始和最后兩張無法預(yù)測,其他全部可以正常產(chǎn)生結(jié)果。這種設(shè)計(jì)是為了能充分利用CT 第三維信息,產(chǎn)生類似3D網(wǎng)絡(luò)的效果,同時(shí)又不需要太大的顯存。

圖2 網(wǎng)絡(luò)模型圖
圖2展示了本文所用Unet算法網(wǎng)絡(luò)結(jié)構(gòu),算法的輸入是512×512×5,這樣做是為了增加第三維度的信息,使得立體方向的特征得以利用起來,輸出正常的一張mask,此mask作為5張中的中間張的分割結(jié)果,輸入按step=1 掃描病人的整個(gè)CT 系列,然后再從中選取中間張有病灶的切割數(shù)據(jù)加入模型訓(xùn)練,這樣能有效減小冗余數(shù)據(jù)(沒有肝臟和病灶的CT 圖片),同時(shí)保證了肝臟和病灶樣本的分布平衡。
Dice系數(shù)作為損失函數(shù)存在下面兩個(gè)缺點(diǎn):
(1)Dice 系數(shù)對反向傳播會(huì)造成不利,使得模型訓(xùn)練不夠穩(wěn)定。
(2)Dice 系數(shù)對欠分割和過分割沒有傾向(兩者的損失函數(shù)懲罰差距不大),而在醫(yī)學(xué)圖像中,recall 通常比較重要,需要加大欠分割懲罰力度。
對于訓(xùn)練不穩(wěn)定的情況加入了交叉熵?fù)p失函數(shù),同時(shí)為了盡量避免欠分割,加入以下?lián)p失函數(shù):

其中,GT表示金標(biāo)準(zhǔn)(Ground Truth),PRE表示算法預(yù)測結(jié)果,公式分子部分是指欠分割缺少的部分,整個(gè)表示欠分割部分占金標(biāo)準(zhǔn)的百分比。
其中交叉熵和Dice系數(shù)的混合損失公式如下:

其中,H和Dice、Dice_in為式(1)、(2)、(4)。對Dice系數(shù)進(jìn)行對數(shù)處理,對預(yù)測偏差大的樣本加大處罰力度。
模型輸出的結(jié)果包含了兩個(gè)——肝臟分割結(jié)果、病灶分割結(jié)果。觀察分割效果發(fā)現(xiàn),肝臟分割容易出現(xiàn)多個(gè)不相關(guān)的塊兒,而病灶分割容易出現(xiàn)僅一兩張切片的連通域。本文即針對這兩方面進(jìn)行后處理,將肝臟和病灶冗余、預(yù)測錯(cuò)誤的部分結(jié)果消除掉,優(yōu)化預(yù)測結(jié)果??梢暬暮筇幚硎疽鈭D如圖3。

圖3 處理前后3D對比圖
本文實(shí)驗(yàn)使用TITAN V顯卡一張,分割網(wǎng)絡(luò)在keras開源框架下實(shí)現(xiàn),keras 的版本為2.2.4。算法訓(xùn)練和測試數(shù)據(jù)集均來源于MICCAI 2017 LiTS Challenge,包含131個(gè)對比增強(qiáng)3D腹部掃描,以8∶2的比例隨機(jī)進(jìn)行訓(xùn)練、測試??紤]到分割網(wǎng)絡(luò)較難收斂,本文Unet網(wǎng)絡(luò)模型使用Adam優(yōu)化器,增加模型收斂穩(wěn)定性和收斂速度,同時(shí)也能得到優(yōu)良的分割結(jié)果。學(xué)習(xí)率經(jīng)過調(diào)試設(shè)置為1E-5,無衰減,批大小為8,模型運(yùn)行100輪。
本文的所有評價(jià)指標(biāo)均基于整體三維CT數(shù)據(jù)的肝臟和病灶進(jìn)行計(jì)算和分析
(1)采用Dice 系數(shù)對模型的結(jié)果進(jìn)行評價(jià),Dice 評價(jià)系數(shù)定義如下:

式中,A表示后處理完之后三維分割結(jié)果,B表示與之對應(yīng)的金標(biāo)準(zhǔn)(Ground Truth),系數(shù)越接近1 表示分割結(jié)果越好。
(2)采用精準(zhǔn)率(P)和召回率(R)對分割結(jié)果進(jìn)行評價(jià),定義如下:

式中,TP表示正確預(yù)測的肝臟(病灶)部分,F(xiàn)P表示將背景預(yù)測為肝臟(病灶)的部分,F(xiàn)N表示將肝臟預(yù)測為背景的部分。
(3)采用 VOE(Volumetric Overlap Error)和 RVD(Relative Volume Difference)分別表示體積重疊的誤差率和體積差異率,定義如下:

式中,A、B表示同(1),上述兩個(gè)指標(biāo)都是數(shù)值越小表示的分割結(jié)果越精確。
在3.1、3.3 和3.4 節(jié),提出了對模型增加預(yù)處理、后處理、損失函數(shù)的修改三部分介紹,實(shí)驗(yàn)將使用本文算法,分別對上述三部分進(jìn)行對比實(shí)驗(yàn)(損失函數(shù)的對比版本使用Dice系數(shù)),在肝臟和病灶分割兩個(gè)結(jié)果中比較改進(jìn)的效果。
實(shí)驗(yàn)結(jié)果見表1、表2,可以很清晰地看出3.1、3.3和3.4 節(jié)三個(gè)部分對實(shí)驗(yàn)的結(jié)果影響,預(yù)處理減小了各個(gè)樣本之間的HU 值范圍差異性,統(tǒng)一量綱,有利于模型的收斂性和結(jié)果各項(xiàng)指標(biāo)的提升;模型加入了改進(jìn)的損失函數(shù)后,結(jié)果各項(xiàng)指標(biāo)都提升了,其中召回率有了較大的提升,可以看出加入的第三部分欠分割懲罰因子是有效果的,對肝臟、病灶的分割有益,但是會(huì)影響準(zhǔn)確率的提升。醫(yī)學(xué)圖像的分割問題,召回率重要性要遠(yuǎn)大于準(zhǔn)確率,所以以損失部分準(zhǔn)確率來提升召回率是可取的;模型加入的后處理對結(jié)果也有挺大幫助,直接預(yù)測出來的結(jié)果會(huì)有零碎的錯(cuò)誤預(yù)測的mask,這些都降低了結(jié)果的指標(biāo),通過加入的后處理可以比較快速地剔除部分錯(cuò)誤預(yù)測,提高結(jié)果的各項(xiàng)指標(biāo)。

表1 肝臟分割結(jié)果

表2 病灶分割結(jié)果
最終分割結(jié)果如圖4,用不同顏色的線標(biāo)出肝臟和病灶的區(qū)域。其中紅色為金標(biāo)準(zhǔn),淺藍(lán)色為肝臟預(yù)測結(jié)果,深藍(lán)色為病灶預(yù)測結(jié)果。從結(jié)果可以看出來分割效果不錯(cuò),多病灶和單病灶都可以預(yù)測出來,同時(shí)預(yù)測的面積相對金標(biāo)準(zhǔn)都偏大,這也可以說明懲罰因子起到了一定的作用,預(yù)測的結(jié)果欠分割得以抑制。
由于數(shù)據(jù)均為Lits大賽數(shù)據(jù)集,本文算法也和比賽隊(duì)伍前三的結(jié)果進(jìn)行了比較,如表3,結(jié)果雖然沒有達(dá)到最好,但是也相差不大。相比于多CNN級聯(lián)的算法,單個(gè)網(wǎng)絡(luò)確實(shí)要稍顯遜色。但是單個(gè)網(wǎng)絡(luò)在預(yù)測速度、減小占用資源方面有著獨(dú)特的優(yōu)勢,可以在較少的資源占用的同時(shí)取得不錯(cuò)的結(jié)果,這對資源匱乏、同時(shí)又急缺大量醫(yī)療資源的地區(qū)是有利的。

表3 與參賽隊(duì)伍對比結(jié)果
算法總體滿足設(shè)想,包括研究中出現(xiàn)的欠分割問題也在加入相應(yīng)的損失函數(shù)之后得到一定的抑制。而且單一網(wǎng)絡(luò)在預(yù)測大量數(shù)據(jù)時(shí)優(yōu)勢是明顯的,平均一個(gè)3D腹部掃描CT預(yù)測用時(shí)在半分鐘以內(nèi),同時(shí)網(wǎng)絡(luò)總體參數(shù)在42.8×106個(gè)左右,量級較輕。當(dāng)然本文算法也存在著一些不足,肝臟和病灶mask公用一個(gè)損失函數(shù),導(dǎo)致網(wǎng)絡(luò)分割重心的偏移,另外網(wǎng)絡(luò)模型也有待優(yōu)化,可在模型中加入1×1 卷積層進(jìn)行參數(shù)的縮減。以后的工作中將對網(wǎng)絡(luò)模型進(jìn)一步改進(jìn),提高結(jié)果,同時(shí)將此應(yīng)用在3D 腹部掃描CT 的算法應(yīng)用在其他醫(yī)學(xué)圖像類型和不同人體器官的分割上。

圖4 最終分割結(jié)果圖