劉忠利 陳 光 單志勇 蔣學(xué)芹
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院 上海 201620)
脊柱是人體生命大廈不可或缺的重要組成部分,它上聯(lián)顱骨、中附肋骨,下聯(lián)髖骨,是人體的后壁,具有支持軀干,保護(hù)脊髓、內(nèi)臟等重要功能。但現(xiàn)代社會中,由于人們生活節(jié)奏加快、工作壓力繁重等原因,脊椎病的患者不斷呈現(xiàn)出年輕化的趨勢,據(jù)統(tǒng)計在40歲以下人群中患有相關(guān)疾病的人數(shù)占到40%以上[1]。而在眾多診斷與脊柱疾病有關(guān)的方法中,CT圖像因其成像快、分辨率高,能夠較好地顯示組織結(jié)構(gòu),而廣泛地用于脊柱疾病診斷中。
在診斷過程中,通常需要在計算機的輔助下,將脊柱CT成像中感興趣的脊柱區(qū)域分割出來,再結(jié)合三維重建、可視化等技術(shù),使醫(yī)生更加直觀、清晰地對病人病變區(qū)進(jìn)行觀察與剖析,這對提高疾病治療的效率和成功率具有重要地推動作用。但由于脊柱CT圖像在成像過程中,圖像易受設(shè)備噪聲影響,使圖像中存在一定的噪聲,且脊柱邊界和其他組織邊界存在無明顯的界限現(xiàn)象,再加上脊柱形態(tài)變化無規(guī)則、結(jié)構(gòu)復(fù)雜等,這些都給脊柱圖像分割帶來一定的挑戰(zhàn)。
針對以上問題,研究者們提出了許多實現(xiàn)脊柱圖像分割的算法。如文獻(xiàn)[2]等提出利用超像素法來分割脊柱圖像,整個算法主要包括去除圖像噪聲和確定感興趣候選區(qū)(ROI)的預(yù)處理,應(yīng)用超像素法對ROI的目標(biāo)和背景進(jìn)行聚類進(jìn)而得到結(jié)果的分割過程及運用形態(tài)學(xué)的閉運算和開運算操作進(jìn)一步提高精度的后處理。和人工手動法分割椎骨圖像相比,此法很大程度地提高了分割速度。文獻(xiàn)[3]利用統(tǒng)計形狀模型法生成的脊柱形狀的均值信息來實現(xiàn)半自動分割,在分割過程中,首先需人工手動地確定脊柱在圖像中的位置,然后將引入的多種模型的形狀、梯度等先驗信息作為約束條件來實現(xiàn)分割。文獻(xiàn)[4]提出了基于改進(jìn)的水平集(LSM)分割方法,在實際實現(xiàn)中,為了解決水平集函數(shù)(LSF)對圖像噪聲較為敏感而導(dǎo)致對脊柱不規(guī)則的邊界分割效果不佳的問題,其采取利用圖像的梯度信息對LSF進(jìn)行演化的方法進(jìn)一步提高精度。文獻(xiàn)[6]則引入脊柱圖像統(tǒng)計形狀作為先驗信息對LSF進(jìn)行初始化,但此法在提高分割精度的同時卻增加了LSM的計算復(fù)雜度。盡管以上這些方法在脊柱圖像的分割中取得了一定的效果,但總結(jié)起來它們一定程度存在以下共性:(1) 相關(guān)算法較為復(fù)雜,分割過程繁瑣,導(dǎo)致分割實時性有限而限制了其在臨床中的應(yīng)用;(2) 分割過程中需人工干預(yù),引入一定的先驗信息,往往只能實現(xiàn)半自動分割且分割的好壞過分的依賴于手工設(shè)計的特征;(3) 各算法的分割精度有限,有待進(jìn)一步提高。
最近,深度學(xué)習(xí)算法因其擁有強大的特征提取、非線性映射等能力,在圖像的語義分割、分類及目標(biāo)檢測等應(yīng)用方面取得了很大的突破而被廣泛地關(guān)注。在醫(yī)學(xué)圖像分割方面,研究者們引入深度學(xué)習(xí)的相關(guān)算法,利用深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的抽象表達(dá)可以更加準(zhǔn)確地描述圖像深層次信息的優(yōu)勢,實現(xiàn)一些常見的醫(yī)學(xué)圖像的分割,并取得了很好的效果。如郭樹旭等[5]利用全卷積神經(jīng)網(wǎng)絡(luò),提取圖像特征,實現(xiàn)肝臟CT影像的自動分割,和其他方法相比,此法在實時性和精確度方面均有所提高。文獻(xiàn)[7]則利用深度學(xué)習(xí)算法分割含有腫瘤的腦部圖像,實驗證明該方法分割的平均精確度達(dá)到了近80%,超越了很多傳統(tǒng)算法。本文受當(dāng)前流行的相關(guān)深度學(xué)習(xí)算法在圖像分割方面取得突破性進(jìn)展的啟發(fā),結(jié)合其在醫(yī)學(xué)圖像分割方面的一些實際應(yīng)用,提出了基于卷積—反卷積神經(jīng)網(wǎng)絡(luò)的脊柱CT圖像分割方法。該方法將全卷積網(wǎng)絡(luò)和反卷積網(wǎng)絡(luò)融合成一個整體的深度網(wǎng)絡(luò),在網(wǎng)絡(luò)訓(xùn)練過程中,不斷迭代學(xué)習(xí),自動調(diào)整網(wǎng)絡(luò)參數(shù),卷積網(wǎng)絡(luò)用于提取圖像的一系列特征,反卷積網(wǎng)絡(luò)將所提取深層次特征映射到輸入圖像尺寸上,從而實現(xiàn)像素到像素的脊柱圖像全自動分割。
深度學(xué)習(xí)的動機是效仿人類大腦內(nèi)部的神經(jīng)連接,模仿并建立類似的結(jié)構(gòu)模型。該模型能通過多個階段的分層變換,對圖像、語音等信號由低級到高級逐層進(jìn)行特征提取與描述,進(jìn)一步給予數(shù)據(jù)解釋,從而挖掘數(shù)據(jù)中所蘊含的深層次的有效信息。以圖像為例,通過構(gòu)建深度神經(jīng)網(wǎng)絡(luò)模型,學(xué)習(xí)并提取圖像深層次特征,得到特征的抽象表達(dá),進(jìn)而能夠更加準(zhǔn)確地描述圖像的變化。
受生物視覺局部感知的啟發(fā),文獻(xiàn)[8]在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中融入權(quán)值共享、局部連接、池化等思想,提出了卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)的概念,這些思想的融入在使網(wǎng)絡(luò)具有更強地特征提取能力的同時,能夠明顯地降低網(wǎng)絡(luò)參數(shù)的含量,避免在訓(xùn)練網(wǎng)絡(luò)時,過擬合的發(fā)生。一個典型卷積神經(jīng)網(wǎng)絡(luò)主要由若干個卷積層、池化層、非線性變換層、全連接層組成。其中,卷積層是核心層,用來提取圖像的局部特征,池化的作用是將所得到的特征進(jìn)行降維,非線性變換則對特征進(jìn)行非線性映射,全連接層的目的是將矩陣形式的特征變換為列向量的形式,用于連接最后的分類器。傳統(tǒng)的CNN由于在池化的過程中,對特征圖進(jìn)行降維處理的同時丟失了特征的空間信息,所以一般適用于處理圖像的分類問題,最終得到對一整幅圖像的分類預(yù)測。而圖像分割任務(wù),對像素的位置要求很高,圖像的每個像素都是分類預(yù)測的對象,單一地使用傳統(tǒng)的CNN將不再合適。
對于一些基于深度學(xué)習(xí)的醫(yī)學(xué)圖像分割任務(wù),研究者們通常會提出基于patch法和CNN相結(jié)合的方法進(jìn)行解決。所謂patch法就是將圖像預(yù)先分成若干個小圖像塊,每個圖像塊的中心像素點所屬的類別即為該圖像塊的類別,然后根據(jù)所判定的類別給予該圖像塊標(biāo)簽,最后將圖像塊和標(biāo)簽共同作為網(wǎng)絡(luò)的輸入信息。這種方法的缺點在于只是輸入了圖像的局部區(qū)域,無法充分利用小區(qū)域以外的上下文信息且前處理過程復(fù)雜,耗時過長以致分割效率低下。
針對CNN用于圖像分割所存在的問題,文獻(xiàn)[9]在已有的用于識別的典型網(wǎng)絡(luò)VGG16[11]等CNN基礎(chǔ)上提出了全卷積神經(jīng)網(wǎng)FCN(Fully Convolutional Networks)的概念,該網(wǎng)絡(luò)能實現(xiàn)端到端,像素到像素的圖像語義分割,直接得到每個像素所屬類別的語義信息。FCN和CNN的區(qū)別在于FCN將CNN的全連接層換成了感受野大小為輸出大小的卷積層,使得網(wǎng)絡(luò)可以接受任意尺寸大小的圖像。在實際實現(xiàn)過程中,由于池化操作,特征圖分辨率被依次縮小了2、4、8、16、32倍,F(xiàn)CN通過簡單的雙線性插值法對特征圖進(jìn)行上采樣,將特征圖依次擴大2、4、8、16、32倍,使得中間層的特征圖尺寸和輸出圖像尺寸保持一致,從而對每個像素點進(jìn)行概率預(yù)測并分類,得到最終的分割結(jié)果。為了提高分割的精度,F(xiàn)CN將不同階段的特征圖進(jìn)行放大融合來強化結(jié)果。通常根據(jù)融合的階段和放大倍數(shù)的不同,可演化出FCN8s、FCN16s、FCN32s三種類型。圖1所示為FCN8s基本結(jié)構(gòu)。
圖1 全卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖(FCN8s)
在卷積神經(jīng)網(wǎng)絡(luò)中,為了學(xué)習(xí)、提取圖像的局部統(tǒng)計特征,一個可訓(xùn)練的濾波器(參數(shù)矩陣)θf=(w,b)需要和輸入圖像或網(wǎng)絡(luò)前一層的輸出作卷積運算,運算結(jié)果通過一個非線性激活函數(shù)得到相應(yīng)的特征輸出,將此輸出經(jīng)過空間池化操作后得到最終降維后的特征圖,本文將這一過程稱為特征提取。
假設(shè)網(wǎng)絡(luò)f的輸入圖像為I,則經(jīng)過網(wǎng)絡(luò)f后的輸出特征向量可表示為:
f(I,θ)=wlhl-1
(1)
hl=pool(relu(wlhl-1+bl)) ?l∈{1,2,…,k,l-1}
(2)
式中:wl為第l層的權(quán)值,由卷積核的參數(shù)組成,bl為第l層的偏置,wl和bl兩者組成可訓(xùn)練的濾波器θ;hl表示第l層單元的特征輸出;relu為非線性變換的激活函數(shù),相比利用其他的激活函數(shù),此激活函數(shù)可加速網(wǎng)絡(luò)收斂,其表達(dá)式為:
f(x)=max(0,x)
(3)
pool(·)表示池化運算,池化分為最大值池化和平均值池化,本文選取最大值池化。在網(wǎng)絡(luò)中運用池化操作能在降低統(tǒng)計特征維度,減少網(wǎng)絡(luò)參數(shù)的同時,實現(xiàn)統(tǒng)計特征的平移不變性。
如前文所說,F(xiàn)CN通過對不同階段特征圖的放大合并解決了CNN輸入圖像大小與輸出的預(yù)測圖像尺寸不一致的問題,實現(xiàn)了圖像的逐像素預(yù)測,但是在實驗過程中發(fā)現(xiàn)FCN的分割結(jié)果會出現(xiàn)粗糙,易丟失邊緣細(xì)節(jié)信息等現(xiàn)象,導(dǎo)致分割的精度不高。本文在FCN的基礎(chǔ)上,進(jìn)一步構(gòu)建其鏡像結(jié)構(gòu)反卷積神經(jīng)網(wǎng)絡(luò)[10],兩者共同組成深度的卷積—反卷積網(wǎng)絡(luò),實現(xiàn)脊柱CT圖像的分割。網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,左半部分為全卷積網(wǎng)絡(luò),右半部分為反卷積網(wǎng)絡(luò)。反卷積網(wǎng)絡(luò)的主要由池化和卷積相應(yīng)的逆運算反池化和反卷積組成,其主要思想是循序漸進(jìn)地對網(wǎng)絡(luò)中間層提取的特征進(jìn)行操作使其恢復(fù)到輸入圖像大小,而不是像FCN那樣簡單地進(jìn)行插值操作放大輸出特征。
圖2 卷積—反卷積網(wǎng)絡(luò)結(jié)構(gòu)圖
為了實現(xiàn)反池化操作,可在卷積網(wǎng)絡(luò)階段池化的過程中記錄下每個池化域中最大池化的數(shù)值和坐標(biāo),在反池化的時候根據(jù)坐標(biāo)將數(shù)值填補到原來位置,池化域中其他位置的數(shù)值用0替代,這樣就可以將和卷積網(wǎng)絡(luò)對應(yīng)的特征圖逐層擴大。然而,反池化得到的特征圖往往是稀疏的,需通過反卷積操作進(jìn)行致密。在卷積網(wǎng)絡(luò)中,多個輸入的特征數(shù)值和一個濾波器連接,映射成單個的特征值,而反卷積則是將單個特征值通過可訓(xùn)練的濾波器得到多個特征值。在實際中,還需將反卷積得到特征圖進(jìn)行適當(dāng)?shù)夭眉羰蛊浯笮『头闯鼗玫教卣鲌D保持一致。和卷積網(wǎng)絡(luò)類似,在反卷積網(wǎng)絡(luò)中,較低層獲取分割目標(biāo)的大致的位置、形狀等信息,較高層則獲得相對復(fù)雜的細(xì)節(jié)信息。
本文將去掉全連接層的VGG16[11]作為全卷積網(wǎng)絡(luò),并在其后構(gòu)建鏡像(對稱)的反卷積網(wǎng)絡(luò)。輸入的脊柱圖像通過全卷積網(wǎng)絡(luò)提取特征,反卷積網(wǎng)絡(luò)將特征循序漸進(jìn)地映射到原圖大小,最后通過一個softmax分類器進(jìn)行分類,得到每個像素點所屬類別的概率,進(jìn)而得到整幅圖像各像素分類的概率預(yù)測圖。為了避免網(wǎng)絡(luò)訓(xùn)練時,出現(xiàn)局部最優(yōu)的情況,在網(wǎng)絡(luò)中增加了Batchnormalization[14]層,使網(wǎng)絡(luò)盡可能地得到全局最優(yōu)解。為了更加有效地避免網(wǎng)絡(luò)的過擬合問題,進(jìn)一步提高網(wǎng)絡(luò)的泛化能力,本文采用的Dropout技術(shù)[15],以0.5左右的概率隨機地忽略網(wǎng)絡(luò)一些節(jié)點的響應(yīng)。
本文在訓(xùn)練網(wǎng)絡(luò)時采用預(yù)訓(xùn)練法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,即訓(xùn)練分為兩個階段。第一階段在數(shù)據(jù)集中以人工主觀選擇的方式選取分割目標(biāo)比較清晰,特征比較明顯的600張圖像作為網(wǎng)絡(luò)的輸入,訓(xùn)練網(wǎng)絡(luò),直至其收斂,保存此時網(wǎng)絡(luò)模型參數(shù)。第二階段將全部訓(xùn)練集樣本作為輸入,并利用第一階段的模型參數(shù)來初始化網(wǎng)絡(luò),從而達(dá)到加快網(wǎng)絡(luò)收斂的目的。整個訓(xùn)練(實驗)的流程如圖3所示。
圖3 網(wǎng)絡(luò)訓(xùn)練(實驗)流程
一般情況下,深度學(xué)習(xí)算法習(xí)慣采用隨機梯度下降法[12]對網(wǎng)絡(luò)參數(shù)進(jìn)行跟新,但其缺點是需根據(jù)網(wǎng)絡(luò)訓(xùn)練的實際,不斷地手動設(shè)定學(xué)習(xí)率來確定最佳狀態(tài),這使得其靈活性差,難以應(yīng)變網(wǎng)絡(luò)的變化。本文結(jié)合改進(jìn)的隨機梯度下降法AdaGrad算法[13]對網(wǎng)絡(luò)參數(shù)進(jìn)行更新,它能使網(wǎng)絡(luò)的學(xué)習(xí)率隨網(wǎng)絡(luò)的梯度變化自適應(yīng)地進(jìn)行跟新,這樣可達(dá)到提高訓(xùn)練效率的目的。其表達(dá)式為:
(4)
本文實驗采用來自Medical Image Computing and Computer Assisted Intervention 2016(MICCAI 2016)的數(shù)據(jù)集。數(shù)據(jù)包含15個人的樣本圖像及對應(yīng)的手工分割真實圖像,將其進(jìn)行橫向切片后去除不包含脊柱的圖像,并通過幾何變換對數(shù)據(jù)集進(jìn)行適當(dāng)?shù)財U張。從數(shù)據(jù)集中隨機抽取得到訓(xùn)練集CT圖像2 073張,測試集圖像1 000張,尺寸512像素×512像素。
本文實驗使用深度學(xué)習(xí)中的Caffe框架,并參看了該框架上相關(guān)網(wǎng)絡(luò)的一些層次結(jié)構(gòu),相關(guān)實驗配置見表1。
表1 實驗配置
為了能夠定量地評價算法分割的效果,本文采用兩種常見的評價指標(biāo),分別是Dice相似性系數(shù)(DSC)、平均絕對距離(MAD)。DSC表示兩個圖像輪廓區(qū)域的相似程度,其值越大意味著分割效果越好。MAD測量的是分割結(jié)果和人工分割的真實結(jié)果(ground truth)之間邊界的平均絕對距離,單位為像素,其值越小表示分割準(zhǔn)確率越高。表達(dá)式分別如下:
(5)
式中:R,S分別為ground truth和分割結(jié)果輪廓區(qū)域所包含的點集。
(6)
式中:n為圖像中分割目標(biāo)邊界的總像素,di為分割結(jié)果邊界的第i個像素到ground truth之間的最近距離。
本文的實驗流程如圖3所示。本文處理的是圖像像素級的二分類問題,即將圖像中分別所屬前景和背景的像素進(jìn)行分類。為了便于呈現(xiàn),如圖4,本文將網(wǎng)絡(luò)輸出的脊柱圖像概率預(yù)測圖變換成灰度圖,通過顏色深淺表征圖像中每個像素所屬類別的概率。圖4(c)可知脊柱的邊界及前景灰度顏色偏淺,其說明該位置的像素屬于脊柱類別的可能性較大,背景的灰度顏色偏深表明其為非脊柱部分的可能性較大。另從(c)中可看出利用本文方法所得到結(jié)果,脊柱和非脊柱的組織區(qū)分度很高。圖4(b)為人工分割的真實結(jié)果(ground truth),(b)和(c)相比較可知,本文自動分割的結(jié)果和ground truth之間具有很高的接近度。
(a) 輸入圖像 (b) 真實分割圖像(ground truth)
(c) 概率預(yù)測圖圖4 網(wǎng)絡(luò)輸出的脊柱圖像概率預(yù)測灰度圖
表2給出了利用不同方法對脊柱圖像進(jìn)行分割得到的定量評價結(jié)果,主要從Dice相似性系數(shù)(DSC)、平均絕對距離(MAD),單位為像素,以及分割一幅圖像所耗費的時間等三個方面進(jìn)行評價。
表2 不同方法分割結(jié)果比較
如表2所示,利用本文方法所得到的分割結(jié)果和文獻(xiàn)[2]所獲結(jié)果相比,在DSC、MAD及分割速度三個指標(biāo)上均有所提高。與文獻(xiàn)[6]相比,盡管本文方法所獲精度在DSC和MAD兩個指標(biāo)上提高幅度不大,但在分割速度上,由于本文只需將待分割的原始圖像直接輸入到訓(xùn)練好的參數(shù)模型中,分割每幅圖像只需2~3 s,因此和文獻(xiàn)[6]中約9 min每幅圖像相比,本文分割速度明顯提高,實時性較好。本文還和深度學(xué)習(xí)中同樣用來進(jìn)行圖像分割的FCN[9]進(jìn)行了比較,由于FCN在分割時對圖像的細(xì)節(jié)之處分割的比較粗糙,因此此法的分割精度不盡如人意。
圖5是從測試集中隨機地選取具有典型結(jié)構(gòu)和形態(tài)的脊柱CT圖像,輸入到本文訓(xùn)練好的網(wǎng)絡(luò)模型后得到的分割結(jié)果。其中,(a)列為輸入的原始圖像,原始尺寸為512像素×512像素,(b)列為ground truth,(c)列為利用本文方法分割得到的結(jié)果。(b)、(c)兩列比較可知本文分割結(jié)果和ground truth之間相似度較好,證明本文方法的有效性。但可以發(fā)現(xiàn),本文方法對于圖像中脊柱邊緣的細(xì)節(jié)之處的分割效果略顯粗糙,需進(jìn)一步改進(jìn)。
(a) 輸入圖像 (b) ground truth (c) 本文分割結(jié)果圖5 脊柱CT圖像分割結(jié)果
本文提出了一種基于卷積—反卷積神經(jīng)網(wǎng)絡(luò)的脊柱CT圖像的全自動分割方法。卷積網(wǎng)絡(luò)逐層地提取圖像中脊柱的深層次特征,反卷積網(wǎng)絡(luò)將所提取的特征映射到原圖像的尺寸。在網(wǎng)絡(luò)訓(xùn)練階段,為了加快網(wǎng)絡(luò)收斂速度及避免頻繁地人工設(shè)定學(xué)習(xí)效率來確定網(wǎng)絡(luò)最佳學(xué)習(xí)狀態(tài),本文采取預(yù)訓(xùn)練法和改進(jìn)的隨機梯度下降法訓(xùn)練網(wǎng)絡(luò)。通過訓(xùn)練好的網(wǎng)絡(luò)模型中的softmax分類器,能夠?qū)斎雸D像實現(xiàn)端到端地逐像素分類預(yù)測。實驗表明本文方法在分割的過程中,無需像傳統(tǒng)方法那樣需人工提取特征或引進(jìn)先驗信息,而是自動地提取圖像的特征,描述圖像數(shù)據(jù)的內(nèi)部深層變化,從而實現(xiàn)脊柱CT圖像的全自動分割,且分割精度高于或達(dá)到一些傳統(tǒng)分割方法的同時,由于其分割速度快,能夠滿足實時性的需求。但是利用本文方法得到的分割結(jié)果,有時對脊柱的邊緣細(xì)節(jié)處的處理效果略顯不佳,需進(jìn)一步改進(jìn)。