裘靜韜,鄒俊忠,郭玉成,張 見,王 蓓
1.華東理工大學 信息科學與工程學院,上海 200000
2.清影醫(yī)療科技(深圳)有限公司,廣東 深圳 518083
隨著全球人口迅速增長和老齡化,癌癥患病率及死亡率正日益突出,中風和冠心病,相對于癌癥,在許多國家已經不再是主要死因了。另外,癌癥作為早逝原因的地位在很大程度上反映了國家的社會和經濟發(fā)展水平。肝細胞癌(HCC)是全世界第六大最常見的癌癥,也是全世界第三常見的與癌癥相關的死亡原因[1],并且在男性中的比例遠高于女性,約為兩倍,已成為在肺癌之下男性第二大癌癥死因。
醫(yī)學圖像中的肝臟病灶分割對于患者病情評估、肝癌診斷、功能評估和治療決策制定非常重要。由于近年來X 射線管、探測器和重建算法的技術進步,計算機斷層掃描(CT)已成為無創(chuàng)性診斷肝臟疾病的重要手段[2]。另一方面,高分辨率CT掃描儀產生的數(shù)據(jù)量愈來愈多,這使得放射科醫(yī)生和內科醫(yī)生的審片工作變得繁瑣和耗時。因此,半自動或自動肝分割在臨床中具有較高應用價值[3]。
過去一些年已經提出了幾種先進的算法以解決病灶分割問題[4],包括閾值處理、主動輪廓模型、圖形切割和機器學習。閾值技術將強度值高于閾值的所有像素設置為前景值和所有剩余像素為背景值。例如Moltz等人使用基于閾值的方法與適應肝轉移的基于模型的形態(tài)學處理相結合,實現(xiàn)肝臟腫瘤的半自動分割[5]。基于區(qū)域的方法包括區(qū)域增長、區(qū)域分裂和合并以及流域轉換。區(qū)域增長是一種分割圖像的簡單快速算法,通常涉及選擇種子點然后擴展它。更先進的方法,如迭代相對模糊連通性(IRFC),也被用于肝臟病變分割[6]。由于圖像的簡單性,速度和完全劃分,分水嶺變換已被認為是一種強大的分割方法。例如Yan等人基于標記控制的分水嶺轉換,在體積CT圖像中準確分割三維肝臟轉移[7]。
而另一方面,深度學習已經應用于各種各樣的問題,并且已經超越了之前的算法[8],這促使將這種方法應用于CT 中的全自動肝腫瘤分割。使用完全卷積網絡(FCN)進行端到端和語義分割中的像素到像素這兩種機制超過了之前的最佳結果[9]。這是首次訓練FCN 端到端進行像素預測和進行有監(jiān)督的預訓練[10]。此外,基于FCN 的新分割方法被開發(fā)用于醫(yī)學圖像分析,具有高度競爭性的結果。Ben-Cohen等人探討了FCN在CT檢查中肝臟分割和肝轉移檢測的任務[11]。Christ等人提出了一種利用級聯(lián)完全卷積神經網絡(CFCN)和密集三維條件隨機場(CRF)自動分割CT腹部圖像中的肝臟區(qū)域和病變區(qū)域的方法[12]。Dou 等人使用3D 深度監(jiān)督網絡(DSN),在學習過程中引入了一種深入的監(jiān)控機制,使模型具有較快的收斂速度和較強的分辨能力[13]。徐保全等人使用3d分割網絡和形態(tài)學后處理方法預測肝臟和病灶,病灶預測精度較高[14]。
本文提出了一種端到端的肝臟和病灶分割網絡。首先,在U-net 網絡模型基礎上加入了CondenseNet 的特征復用思想,對每一個卷積層組的輸入輸出進行Concatenate,極大提升feature map 的利用效率。其次,對損失函數(shù)進行了改進,結合交叉熵和Dice系數(shù),同時加入欠分割懲罰因子,提高病灶檢出的比例。最后,加入前后處理,優(yōu)化結果。通過各個對比實驗及與高精度復雜算法的對比實驗,驗證本文方法的有效性和可行性。
語義分割作為計算機視覺的一部分,是非常具有挑戰(zhàn)性的一個問題,早期的語義分割經歷了從傳統(tǒng)的閾值分割,到機器學習領域的隨機森林、SVM 等算法分割,其應用場景一直受到較大局限且分割效果存在精度不高、模型泛化性不好的問題。直到深度學習的崛起,2015 年Long 等人提出了全卷積神經網絡——FCN(Fully Convolutional Networks)[15],實現(xiàn)了語義分割網絡模型的端到端,之后大部分網絡都是基于FCN 進行的改進。
Unet網絡[16]是基于FCN網絡改編而來,網絡由編碼器和譯碼器兩部分組成,由于網絡很像U 型,所以被稱為Unet網絡。Unet很巧妙地將低維特征和高維特征結合,非常適合醫(yī)學圖像之類的超大圖片,同時網絡對輸入也沒有限制。Unet 的編碼器部分采用四次下采樣,一共降低了原始圖像的16 倍,其譯碼器部分也相當?shù)剡M行了四次上采樣,將編碼器得到的高級語義特征圖進行再還原,恢復到圖像的原始分辨率。加入的skip connection 使得網絡得以融合更多的低級特征,彌補了單純上采樣的不足。同時也使得不同像素級的特征在譯碼器部分得以融合,最終得到更加精確的分割結果。
醫(yī)學圖像普遍具有高像素、語義相對簡單、結構相對固定的特點。由于器官本身結構的固定和其語義的相對簡單,同時器官邊界存在模糊性、復雜性,更加需要利用好高級和低級特征,這對醫(yī)學類圖像的分割至關重要。另外,醫(yī)學圖像標注的困難性使得影像難以大規(guī)模地用于訓練,所以在網絡不宜過深過大。原始的Unet參數(shù)在28×106個左右,具有參數(shù)少、效果好、泛化能力強的特點,這也是其能在醫(yī)學圖像領域大規(guī)模應用的原因。肝臟存在于人體腹部,環(huán)境復雜,周圍器官較多,且邊界不易區(qū)分。這就要求算法在特征提取和利用方面更加高效,本文算法即在Unet模型上進行改進,加入了特征的復用,將不同尺度的特征進行融合,加強了原版模型的特征利用率。
2.2.1 交叉熵
圖像分割中最常用的損失函數(shù)是逐像素交叉熵(cross entropy)損失。該損失函數(shù)分別檢查每個像素,將預測圖像的每個像素與金標準進行比較。函數(shù)表達式如下:
其中,pi表示預測結果中第i個像素的概率,gi表示金標準的第i個像素的真實類別,N表示像素數(shù)量,下同。
交叉熵損失函數(shù)會單獨地對圖像的每個像素進行類別預測,然后對所有像素結果求取平均值,即圖像中的像素被平等地學習了。但是,醫(yī)學圖像中常出現(xiàn)類別不均衡(class imbalance)的問題,由此導致訓練的模型會被像素較多的類主導,對于較小的物體很難學習到其特征,從而降低網絡的有效性和泛化性。
2.2.2 Dice系數(shù)損失
Dice 系數(shù)(Dice coefficient)源于二分類,本質上是衡量兩個樣本的重疊部分。該指標范圍從0到1。其計算公式為:
原始Unet 網絡使用1-Dice 系數(shù)作為損失函數(shù)進行誤差反向傳播,Dice系數(shù)的目標是最大化預測類和真實類之間的重疊部分,雖然Dice系數(shù)損失對類不平衡的樣本很有效,但是當樣本正類別數(shù)量過小時,容易導致訓練不穩(wěn),甚至發(fā)散。歸其原因在于正像素過小,由于導數(shù)分母為平方項,當其過小的時候,損失梯度就會對單個正像素很敏感,其預測對錯會導致梯度變化很大[17],造成整體間存在像素對模型影響的不平衡性,使得模型對正類別數(shù)量較少的樣本過于敏感而破壞整個模型的泛化能力。Dice系數(shù)導數(shù)如下:
對于分割病灶的算法,常使用級聯(lián)CNN 網絡進行任務分割。多步處理的好處是分割結果精度較高、效果較為理想,但是相應的占用資源也相對較多,預測時間較為長久,同時級聯(lián)破壞了卷積神經網絡端到端訓練的性質。本文以此為出發(fā)點,保證精度不損失的前提下,減小資源占用、加快模型的預測速度。算法模型將采用單一網絡進行雙預測,同時輸出肝臟和病灶的預測結果,對于研究過程中出現(xiàn)的問題也進行改進提升,本章將算法整體流程框架進行介紹,包括數(shù)據(jù)預處理、算法訓練、預測結果后處理,整體框架如圖1。
腹部掃描CT的HU值范圍可以達到[-2 000,2 000],而實驗所需提取的肝臟和病灶HU值范圍較為固定,經測試發(fā)現(xiàn),[-200,200]的范圍覆蓋了肝臟99.53%,病灶99.60%,基本包含了絕大多數(shù)肝臟病灶。即閾值以200和-200 為上下限進行歸一化處理,除去不相關因素的影響,此處理有利于提高模型的泛化能力。
原始Unet 分割網絡存在模型精度不夠高、特征利用不夠充分、無多尺度融合的問題,本文在此基礎模型上對Unet 網絡進行了改進,加入了DenseNet 里的特征復用思想,實驗采用的網絡構架如圖2,網絡分成編碼器和譯碼器兩部分,每部分又分成四個卷積層組,每個卷積層由兩個卷積層組和PRelu激活函數(shù)組成,卷積層組的輸入和輸出使用concatenate進行特征疊加,然后輸入到下采樣層或者上采樣層。最后通過sigmoid激活層輸出。全卷積神經網絡中所有的卷積層,都采用3×3的卷積核以及padding=1(在圖像邊緣填充0)。
考慮到3D腹部掃描CT的肝是一個立體器官,第三維信息存在著相當大的利用價值,本文以5 張相鄰CT切片作為模型輸入,同時為保持輸出的唯一性,以第3張切片的肝臟、病灶作為輸出,對比其金標準,傳回誤差,訓練模型。整個3D腹部掃描CT按step=1順序輸入模型,除開始和最后兩張無法預測,其他全部可以正常產生結果。這種設計是為了能充分利用CT 第三維信息,產生類似3D網絡的效果,同時又不需要太大的顯存。
圖2 網絡模型圖
圖2展示了本文所用Unet算法網絡結構,算法的輸入是512×512×5,這樣做是為了增加第三維度的信息,使得立體方向的特征得以利用起來,輸出正常的一張mask,此mask作為5張中的中間張的分割結果,輸入按step=1 掃描病人的整個CT 系列,然后再從中選取中間張有病灶的切割數(shù)據(jù)加入模型訓練,這樣能有效減小冗余數(shù)據(jù)(沒有肝臟和病灶的CT 圖片),同時保證了肝臟和病灶樣本的分布平衡。
Dice系數(shù)作為損失函數(shù)存在下面兩個缺點:
(1)Dice 系數(shù)對反向傳播會造成不利,使得模型訓練不夠穩(wěn)定。
(2)Dice 系數(shù)對欠分割和過分割沒有傾向(兩者的損失函數(shù)懲罰差距不大),而在醫(yī)學圖像中,recall 通常比較重要,需要加大欠分割懲罰力度。
對于訓練不穩(wěn)定的情況加入了交叉熵損失函數(shù),同時為了盡量避免欠分割,加入以下?lián)p失函數(shù):
其中,GT表示金標準(Ground Truth),PRE表示算法預測結果,公式分子部分是指欠分割缺少的部分,整個表示欠分割部分占金標準的百分比。
其中交叉熵和Dice系數(shù)的混合損失公式如下:
其中,H和Dice、Dice_in為式(1)、(2)、(4)。對Dice系數(shù)進行對數(shù)處理,對預測偏差大的樣本加大處罰力度。
模型輸出的結果包含了兩個——肝臟分割結果、病灶分割結果。觀察分割效果發(fā)現(xiàn),肝臟分割容易出現(xiàn)多個不相關的塊兒,而病灶分割容易出現(xiàn)僅一兩張切片的連通域。本文即針對這兩方面進行后處理,將肝臟和病灶冗余、預測錯誤的部分結果消除掉,優(yōu)化預測結果??梢暬暮筇幚硎疽鈭D如圖3。
圖3 處理前后3D對比圖
本文實驗使用TITAN V顯卡一張,分割網絡在keras開源框架下實現(xiàn),keras 的版本為2.2.4。算法訓練和測試數(shù)據(jù)集均來源于MICCAI 2017 LiTS Challenge,包含131個對比增強3D腹部掃描,以8∶2的比例隨機進行訓練、測試??紤]到分割網絡較難收斂,本文Unet網絡模型使用Adam優(yōu)化器,增加模型收斂穩(wěn)定性和收斂速度,同時也能得到優(yōu)良的分割結果。學習率經過調試設置為1E-5,無衰減,批大小為8,模型運行100輪。
本文的所有評價指標均基于整體三維CT數(shù)據(jù)的肝臟和病灶進行計算和分析
(1)采用Dice 系數(shù)對模型的結果進行評價,Dice 評價系數(shù)定義如下:
式中,A表示后處理完之后三維分割結果,B表示與之對應的金標準(Ground Truth),系數(shù)越接近1 表示分割結果越好。
(2)采用精準率(P)和召回率(R)對分割結果進行評價,定義如下:
式中,TP表示正確預測的肝臟(病灶)部分,F(xiàn)P表示將背景預測為肝臟(病灶)的部分,F(xiàn)N表示將肝臟預測為背景的部分。
(3)采用 VOE(Volumetric Overlap Error)和 RVD(Relative Volume Difference)分別表示體積重疊的誤差率和體積差異率,定義如下:
式中,A、B表示同(1),上述兩個指標都是數(shù)值越小表示的分割結果越精確。
在3.1、3.3 和3.4 節(jié),提出了對模型增加預處理、后處理、損失函數(shù)的修改三部分介紹,實驗將使用本文算法,分別對上述三部分進行對比實驗(損失函數(shù)的對比版本使用Dice系數(shù)),在肝臟和病灶分割兩個結果中比較改進的效果。
實驗結果見表1、表2,可以很清晰地看出3.1、3.3和3.4 節(jié)三個部分對實驗的結果影響,預處理減小了各個樣本之間的HU 值范圍差異性,統(tǒng)一量綱,有利于模型的收斂性和結果各項指標的提升;模型加入了改進的損失函數(shù)后,結果各項指標都提升了,其中召回率有了較大的提升,可以看出加入的第三部分欠分割懲罰因子是有效果的,對肝臟、病灶的分割有益,但是會影響準確率的提升。醫(yī)學圖像的分割問題,召回率重要性要遠大于準確率,所以以損失部分準確率來提升召回率是可取的;模型加入的后處理對結果也有挺大幫助,直接預測出來的結果會有零碎的錯誤預測的mask,這些都降低了結果的指標,通過加入的后處理可以比較快速地剔除部分錯誤預測,提高結果的各項指標。
表1 肝臟分割結果
表2 病灶分割結果
最終分割結果如圖4,用不同顏色的線標出肝臟和病灶的區(qū)域。其中紅色為金標準,淺藍色為肝臟預測結果,深藍色為病灶預測結果。從結果可以看出來分割效果不錯,多病灶和單病灶都可以預測出來,同時預測的面積相對金標準都偏大,這也可以說明懲罰因子起到了一定的作用,預測的結果欠分割得以抑制。
由于數(shù)據(jù)均為Lits大賽數(shù)據(jù)集,本文算法也和比賽隊伍前三的結果進行了比較,如表3,結果雖然沒有達到最好,但是也相差不大。相比于多CNN級聯(lián)的算法,單個網絡確實要稍顯遜色。但是單個網絡在預測速度、減小占用資源方面有著獨特的優(yōu)勢,可以在較少的資源占用的同時取得不錯的結果,這對資源匱乏、同時又急缺大量醫(yī)療資源的地區(qū)是有利的。
表3 與參賽隊伍對比結果
算法總體滿足設想,包括研究中出現(xiàn)的欠分割問題也在加入相應的損失函數(shù)之后得到一定的抑制。而且單一網絡在預測大量數(shù)據(jù)時優(yōu)勢是明顯的,平均一個3D腹部掃描CT預測用時在半分鐘以內,同時網絡總體參數(shù)在42.8×106個左右,量級較輕。當然本文算法也存在著一些不足,肝臟和病灶mask公用一個損失函數(shù),導致網絡分割重心的偏移,另外網絡模型也有待優(yōu)化,可在模型中加入1×1 卷積層進行參數(shù)的縮減。以后的工作中將對網絡模型進一步改進,提高結果,同時將此應用在3D 腹部掃描CT 的算法應用在其他醫(yī)學圖像類型和不同人體器官的分割上。
圖4 最終分割結果圖