人類(lèi)心臟是一臺(tái)令人驚嘆的機(jī)器,它能持續(xù)運(yùn)轉(zhuǎn)長(zhǎng)達(dá)一個(gè)世紀(jì)而不失靈。測(cè)量心臟功能的關(guān)鍵方法之一是計(jì)算其射血分?jǐn)?shù),即每搏輸出量占心室舒張末期容積量的百分比。而測(cè)量這個(gè)指標(biāo)的第一步依賴(lài)于對(duì)心臟圖像心室的分割。
問(wèn)題描述
開(kāi)發(fā)一個(gè)能夠?qū)π呐K磁共振成像(MRI)數(shù)據(jù)集圖像中的右心室自動(dòng)分割的系統(tǒng)。到目前為止,這主要是通過(guò)經(jīng)典的圖像處理方法來(lái)處理的。而現(xiàn)代深度學(xué)習(xí)技術(shù)有可能提供更可靠、更自動(dòng)化的解決方案。
2016年由Kaggle贊助的左心室分割挑戰(zhàn)賽中的三名獲獎(jiǎng)?wù)叨疾捎昧松疃葘W(xué)習(xí)解決方案。然而,分割右心室(RV)則更具挑戰(zhàn)性,因?yàn)椋?/p>
在腔內(nèi)存在信號(hào)強(qiáng)度類(lèi)似于心肌的小梁; RV復(fù)雜的新月形;分割根尖圖像切片的難度;個(gè)體之間的室內(nèi)形狀和強(qiáng)度存在相當(dāng)大的差異,特別是在不同的疾病病例之間。
撇開(kāi)醫(yī)學(xué)術(shù)語(yǔ)不談,要識(shí)別RV就更困難了。左心室是一個(gè)厚壁圓環(huán),而右心室是一個(gè)形狀不規(guī)則的物體,有薄的壁,有時(shí)會(huì)與周?chē)慕M織混合在一起。這是MRI快照右心室內(nèi)壁和外壁(心內(nèi)膜和心外膜)的手工繪制輪廓:
這是一個(gè)分割起來(lái)很容易的例子。這一個(gè)比較困難:
而這對(duì)于沒(méi)有經(jīng)過(guò)訓(xùn)練的眼睛來(lái)說(shuō)完全是一個(gè)挑戰(zhàn):
事實(shí)上,與左心室相比,醫(yī)生需要耗費(fèi)兩倍的時(shí)間來(lái)確定右心室的體積并生成結(jié)果。這項(xiàng)工作的目的是建立一個(gè)高度準(zhǔn)確的右心室自動(dòng)分割深度學(xué)習(xí)模型。模型的輸出是*分割掩碼*,即一個(gè)逐像素的掩碼,用來(lái)表示某個(gè)像素是否是右心室的一部分或只是背景。
數(shù)據(jù)集
對(duì)于當(dāng)前這個(gè)問(wèn)題,深度學(xué)習(xí)需要面對(duì)的最大挑戰(zhàn)是數(shù)據(jù)集太小。 數(shù)據(jù)集(可以訪(fǎng)問(wèn)這里)僅包含了來(lái)自于16例患者的243張醫(yī)師分割的MRI圖像。 另外還有3697張未標(biāo)記的圖像,這對(duì)于無(wú)監(jiān)督或半監(jiān)督技術(shù)可能會(huì)有用,但是我將這些放在了一邊,因?yàn)檫@是一個(gè)監(jiān)督學(xué)習(xí)問(wèn)題。 圖像尺寸為216×256像素。
由于數(shù)據(jù)集過(guò)小,人們可能會(huì)懷疑無(wú)法將其一般化到尚未看到的圖像!但是很不幸,醫(yī)療上標(biāo)記過(guò)的數(shù)據(jù)非常昂貴,并且很難獲取到。對(duì)數(shù)據(jù)集進(jìn)行處理的標(biāo)準(zhǔn)程序是對(duì)圖像應(yīng)用仿射變換:隨機(jī)旋轉(zhuǎn)、平移、縮放和剪切。此外,我實(shí)現(xiàn)了彈性變形,也就是對(duì)圖像的局部區(qū)域進(jìn)行拉伸和壓縮。
應(yīng)用這種圖像增強(qiáng)算法的目的是為了防止神經(jīng)網(wǎng)絡(luò)只記住訓(xùn)練的樣例,并強(qiáng)迫其學(xué)習(xí)RV是一個(gè)實(shí)心的、月牙形的、方向任意的物體。在我實(shí)現(xiàn)的訓(xùn)練框架中,我會(huì)隨時(shí)對(duì)數(shù)據(jù)集應(yīng)用圖像變換算法,這樣,神經(jīng)網(wǎng)絡(luò)就會(huì)在每次訓(xùn)練時(shí)看到新的隨機(jī)變換。
由于大多數(shù)像素都屬于背景,所以各個(gè)種類(lèi)之間分布不平衡。如果將像素強(qiáng)度歸一化在0和1之間,那么在整個(gè)數(shù)據(jù)集中,只有5%的像素屬于RV腔的一部分。
在創(chuàng)建損失函數(shù)時(shí),我嘗試了重加權(quán)方案來(lái)平衡種類(lèi)的分布情況,但最終發(fā)現(xiàn)未加權(quán)平均算法的表現(xiàn)最好。
在訓(xùn)練中,有20%的圖像被取出來(lái)作為驗(yàn)證集使用。 RV分割挑戰(zhàn)賽的組織者有一個(gè)單獨(dú)的測(cè)試集,它由另外32個(gè)患者的514張MRI圖像組成。我提交的預(yù)測(cè)輪廓就是使用這個(gè)測(cè)試集進(jìn)行最終評(píng)估的。
還需要有一種方法來(lái)對(duì)數(shù)據(jù)集上的模型性能進(jìn)行量化。RV分割挑戰(zhàn)賽的組織者選擇使用了戴斯系數(shù)。模型會(huì)輸出一個(gè)掩碼*X*來(lái)描述RV,而戴斯系數(shù)將*X*與由醫(yī)師創(chuàng)建的掩碼*Y*通過(guò)以下方式進(jìn)行比較:
計(jì)算值是交叉區(qū)域與兩區(qū)域之和的比率的兩倍。對(duì)于不相交的區(qū)域,值為0;如果兩區(qū)域完全一致,則值為1。
下面我們來(lái)看下模型架構(gòu)。
U-net:基線(xiàn)模型
由于我們只有四周的時(shí)間來(lái)完成這個(gè)項(xiàng)目,所以我想盡快實(shí)現(xiàn)一個(gè)基線(xiàn)模型并讓它運(yùn)行起來(lái)。我選擇了由Ronneberger、Fischer和Brox提出的u-net模型,因?yàn)樗谏镝t(yī)學(xué)分割項(xiàng)目中取得過(guò)成功,而且它的作者能夠通過(guò)使用積極的圖像增強(qiáng)和逐像重新加權(quán)算法并僅基于*30張圖片*來(lái)訓(xùn)練網(wǎng)絡(luò)。
u-net架構(gòu)由一個(gè)收縮路徑組成,就是將圖像折疊成一組高級(jí)特征,隨后是使用特征信息構(gòu)建像素分割掩碼的擴(kuò)展路徑。 u-net獨(dú)特的地方就是它的“復(fù)制和合并”連接,這些連接能夠?qū)⑿畔脑缙谔卣鲌D傳遞到構(gòu)建分割掩碼網(wǎng)絡(luò)的后續(xù)部分。作者指出,這些連接允許網(wǎng)絡(luò)同時(shí)并入高級(jí)特征和像素方面的細(xì)節(jié)。
我們使用的架構(gòu)如下所示:
由于我們圖像尺寸是u-net作者原本考慮的一半大小,所以我們需要將原始模型中的降采樣層數(shù)從4個(gè)減少到3個(gè)來(lái)適應(yīng)網(wǎng)格。我們也要用零來(lái)填充卷積,以保持圖像的大小不變。該模型是用Keras實(shí)現(xiàn)的。
如果沒(méi)有圖像增強(qiáng),u-net在訓(xùn)練數(shù)據(jù)集上的戴斯系數(shù)能達(dá)到0.99(0.01),這意味著該模型具有足夠的能力來(lái)捕獲RV分割問(wèn)題的復(fù)雜性。然而,驗(yàn)證戴斯系數(shù)為0.79(0.24),所以u(píng)-net過(guò)強(qiáng)。圖像增強(qiáng)改進(jìn)了泛化,并將驗(yàn)證精度提高到了0.82(0.23),代價(jià)是將訓(xùn)練精度降至0.91(0.06)。
我們?nèi)绾芜M(jìn)一步地降低訓(xùn)練與驗(yàn)證之間的差距呢?正如Andrew Ng在這個(gè)很棒的談話(huà)中描述的那樣,我們可以用更多的數(shù)據(jù)(這不太可能)、正則化(dropout和批處理規(guī)范化沒(méi)有效果)、或嘗試新的模型架構(gòu)。
擴(kuò)張U-net:全局感受野
要對(duì)器官圖像進(jìn)行分割,需要了解器官之間排列的相關(guān)知識(shí)。事實(shí)證明,即使在u-net最深層的神經(jīng)元也只有68×68像素的感受野。網(wǎng)絡(luò)的任何部分都無(wú)法“看到”整個(gè)圖像。網(wǎng)絡(luò)不知道人類(lèi)只有一個(gè)右心室。例如,下面的圖片中,箭頭標(biāo)記的地方被錯(cuò)誤分類(lèi)了:
我們使用擴(kuò)張卷積來(lái)增加網(wǎng)絡(luò)的感受野。
在上圖中,底層的卷積是規(guī)則的3×3卷積。下一層,我們將卷積擴(kuò)大了2倍,所以在原始圖像中它們的有效感受野是7×7。如果頂層卷積擴(kuò)大4倍,則能產(chǎn)生15×15的感受野。以此類(lèi)推。
從原理上來(lái)說(shuō),黃色標(biāo)記的卷積層被u-net中的擴(kuò)張卷積所替代。最內(nèi)層的神經(jīng)元現(xiàn)在具有了覆蓋整個(gè)輸入圖像的感受野。我稱(chēng)之為“擴(kuò)張u-net”。
在數(shù)量上,擴(kuò)張u-net確實(shí)提高了效果,達(dá)到了0.85(0.19)的驗(yàn)證戴斯分?jǐn)?shù),同時(shí)保持了0.92(0.08)的訓(xùn)練效果!
擴(kuò)張DenseNet:一次性多個(gè)尺度
這個(gè)靈感來(lái)自于物理中的張量網(wǎng)絡(luò),我決定嘗試使用一個(gè)新型的圖像分割架構(gòu),我稱(chēng)之為“擴(kuò)張DenseNet”。它結(jié)合了擴(kuò)張卷積和DenseNet這兩種想法,這樣能夠大大減少網(wǎng)絡(luò)的深度和參數(shù)。
對(duì)于分割而言,我們需要來(lái)自多個(gè)尺度的全局上下文和信息來(lái)產(chǎn)生像素級(jí)掩碼。如果我們完全依賴(lài)于擴(kuò)張卷積來(lái)產(chǎn)生全局上下文,而不是通過(guò)降采樣來(lái)將圖像變得更小呢?現(xiàn)在,所有卷積層的大小都相同,我們可以應(yīng)用DenseNet架構(gòu)的關(guān)鍵思想,并在所有層之間使用“復(fù)制和合并”連接。擴(kuò)張DenseNet的結(jié)果如下圖所示:
在DenseNet中,第一個(gè)卷積層的輸出作為輸入饋送到所有的后續(xù)層中,第二、第三層也這樣。
擴(kuò)張DenseNet表現(xiàn)不錯(cuò),在驗(yàn)證集上得到了0.87(0.15)的戴斯得分,訓(xùn)練精度為0.91(0.10),同時(shí)保持了極高的參數(shù)效率!
結(jié)果
對(duì)人類(lèi)在RV分割方面的評(píng)估給如何對(duì)模型的表現(xiàn)進(jìn)行評(píng)估指明了方向。研究人員估計(jì),人類(lèi)完成RV分割任務(wù)的戴斯得分為0.90(0.10)。上面所述的已經(jīng)發(fā)布的模型是完全卷積網(wǎng)絡(luò)(FCN),測(cè)試集上的精度為0.84(0.21)。
我開(kāi)發(fā)的模型在驗(yàn)證集上已經(jīng)超過(guò)了最新的技術(shù)水平,并且正在接近人類(lèi)的表現(xiàn)!然而,真正的評(píng)測(cè)是在測(cè)試集上評(píng)估模型的表現(xiàn)。此外,上面引用的數(shù)字是針對(duì)心內(nèi)膜的, 那么心外膜的表現(xiàn)如何呢?我在心外膜上訓(xùn)練了一個(gè)單獨(dú)的模型,并將細(xì)分輪廓提交給了組織者,希望能獲得最好的成績(jī)。
以下是結(jié)果,首先是心內(nèi)膜:
這個(gè)是心外膜:
擴(kuò)張u-net與心內(nèi)膜上的最新技術(shù)水平相當(dāng),并超過(guò)它在心外膜上的表現(xiàn)。擴(kuò)張DenseNet緊跟其后,僅有190K個(gè)參數(shù)。
總結(jié)
深度學(xué)習(xí)模型的表現(xiàn)有時(shí)候看起來(lái)似乎很神奇,但這是精心設(shè)計(jì)的結(jié)果。即使數(shù)據(jù)集很小,精心挑選的數(shù)據(jù)增強(qiáng)方案也可以讓深度學(xué)習(xí)模型更好地一般化。
根據(jù)這些想法,創(chuàng)建出了最先進(jìn)的模型來(lái)分割心臟MRI中的右心室。我非常高興地看到了擴(kuò)張DenseNet能夠在其他圖像分割評(píng)測(cè)上成功運(yùn)行。
內(nèi)存高效的擴(kuò)張DenseNet:密集連接的網(wǎng)絡(luò)有一個(gè)很大的缺點(diǎn),它需要占用大量的內(nèi)存。 而TensorFlow的實(shí)現(xiàn)卻與眾不同,它將我們限制在16GB GPU并且一個(gè)批次具有3個(gè)圖像的8個(gè)層上。如果切換到之前提出的記憶高效的實(shí)現(xiàn)上的話(huà),就可以創(chuàng)建出更深層次的體系架構(gòu)來(lái)。
評(píng)論