論文閱讀
IterNet: Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks 利用血管網路中的結構冗余進行視網膜影像分割
摘要:視網膜血管分割對視網膜血管疾病的診斷具有重要意義,為了進一步提高血管分割的性能,我們提出了基于UNet的新模型IterNet,它能夠從分割的血管影像本身而不是原始輸入影像中找到模糊的血管細節, IterNet由mini-UNet的多次迭代組成,其深度比普通UNet的深度大4倍, IterNet還采用了權重共享和跳躍連接功能,以方便訓練;因此,即使具有如此大的體系結構,IterNet仍可以僅從10到20個帶有標簽的影像中學習,而無需預先訓練或任何先驗知識, IterNet在三個主流資料集DRIVE,CHASE-DB1和STARE上分別達到0.9816、0.9851和0.9881的AUC,這是目前文獻上最好的分數,

圖1. IterNet在視網膜影像中分析血管網路以進行精細分割, 第一行是整個影像,第二行是亮點附近區域的放大影像, 紅色表示像素成為血管一部分的可能性很高,而藍色表示可能性很小, 我們可以看到IterNet很好地處理了視網膜影像中不完整的細節,并推斷出血管的可能位置, (a)來自DRIVE資料集的示例影像,(b)黃金標準,(c)UNet(AUC:0.9752),(d)變形UNet(AUC:0.9778)和(e)IterNet(AUC:0.9816),
摘要
視網膜血管分割對視網膜血管疾病的診斷具有重要意義, 為了進一步提高血管分割的性能,我們提出了基于UNet [1]的新模型IterNet,它能夠從分割的血管影像本身而不是原始輸入影像中找到模糊的血管細節, IterNet由mini-UNet的多次迭代組成,其深度比普通UNet的深度大4倍, IterNet采用了權重共享和跳躍連接功能,以方便訓練; 因此,即使具有如此大的體系結構,IterNet仍可以僅從10到20個帶有標簽的影像中學習,而無需預先訓練或任何先驗知識, IterNet在三個主流資料集DRIVE,CHASE-DB1和STARE上分別達到0.9816、0.9851和0.9881的AUC,這是目前文獻上的最高分,
1.引言
視網膜檢查是發現視網膜疾病以及全身性疾病(例如高血壓,小動脈硬化和糖尿病性視網膜病變即糖尿病的微血管并發癥)的重要診斷手段,實際上,這是醫生在體內檢查人體血管系統的唯一可行方法,它不僅被眼科醫生用作常規檢查,而且還被許多其他專家用作常規檢查[2],視網膜檢查是非侵入性的并且執行起來很經濟,并且已經在全世界范圍內廣泛進行,但是,與此同時,眼科醫師在處理不斷增長的視網膜影像的需求和能力之間將存在巨大的差距,在這種情況下,計算機輔助診斷將是一個顯著的解決方案,同時血管分割是進行后續分析的必要基礎,
血管分割任務中的一個主要困難是血管與背景的外觀沒有顯著差異,尤其是對于噪聲影像中的微血管而言,在不引入太多誤報的情況下找到每根血管是具有挑戰性的,實際上,如果我們考慮照片成像質量的問題,事情將會更加復雜,由于照明不當,傳感器噪聲等,許多基本資訊可能會丟失,在這種情況下,分割模型的確不可能找到完整而準確的血管網路,例如,在圖1(a)中,由于影像中的光碟(亮點),分割結果在其邊界附近受到嚴重破壞:某些像素在亮度的大間隙中“丟失”,
圖1(b)是專家標記的標簽(the gold standard marked),他們知道哪些血管應該是線/曲線,并且應該相互連接以形成網路,換句話說,這種結構上的冗余使得專家能夠在視網膜影像的模糊區域內插值血管(interpolate vessels(不知道如何翻譯,各位看官批評指正)),如果深度學習模型export to大量的沒有瑕疵的標記資料(在視網膜影像分割領域中極為受限制),則它們也可能能夠學習此類知識,實際上,在公開可用的資料集中,即DRIVE [3] CHASE-DB1 [4] 和 STARE [5]中,用于訓練的影像不超過20個,
現有的方法很難解決資料的缺乏問題,如圖1?和(d)所示,性能最好的最新UNet模型UNet[1]和Deform UNet[6]在預測時存在明顯的誤差,它們要么混淆了血管和視盤的邊界,要么未能檢測到它們相交處周圍的血管,導致分割單個血管被分割成兩個不相連的部分,這是醫學影像分割中的常見現象,可能導致一組不連通或破碎的片段組成的缺陷血管圖,這個問題使得醫生或使用分割影像的標準成像方法很難分析血管狀況,因此,連通性也是視網膜分割的一個重要問題,
從圖1(C)和(d)中可以觀察,人們仍然可以從這些血管圖中推斷出實際血管的位置,這是因為,像專家一樣,我們也可以利用結構冗余,我們可以猜測,如果預測血管的兩個部分的邊緣很近并且彼此指向,那么這兩個部分是連接的,這也適用于深度學習模型,雖然深度學習模型很難直接克服缺失或額外預測的問題,但可以讓它們知道哪個分割血管是假的,哪個不是,因此,他們在一定程度上能夠學習如何修復分割結果中的錯誤,在此基礎上,我們設計了一個新的基于unet的模型,即IterNet,它可以很好地利用血管系統中的結構冗余,通過IterNet得到的血管圖如圖1(e)所示,對血管進行了精確的分割,幾乎避免了光碟周圍的干擾,
其核心思想是將深度學習模型的重點從處理原始輸入影像中的每個像素轉移到整個血管網路系統,更具體地說,我們建立了一個模型,將不精確的血管分割結果改進為更精確的血管分割結果,而不是將原始輸入影像直接映射為精確的分割結果,為了讓模型充分學習實際的血管網路以及分割結果失敗的網路,必須為他們提供足夠的訓練樣本,但是,同樣,如上所述,沒有可用的資料集,
一種可行的方式是使用某個特定分割模型的輸出,該模型實際上是血管圖,如圖1和2所示, 1(c)和(d),作為細化模型的輸入,我們通過在基本模塊(UNet)之后添加一些細化模塊(mini-UNets)進行初始分割來實作此目的,如圖2所示,每個細化模塊(refinery module)的輸入是其上一個模塊的最后一層的輸出,每個模塊都有一個血管分割輸出,該輸出具有各自的損失函式,在訓練中,基本模塊將持續調整其引數以提高其自身的輸出,因此,即使有固定數量的訓練樣本,第一個細化模塊也將獲得幾乎不同的輸入,這也適用于其細化模塊,在此程序中,細化模塊可能會出現大量錯誤的血管圖中,因此可以學習如何對其進行修復,因為它們都已匹配(fix)到正確的標簽上,細化模塊的數量是一個超引數,可根據訓練樣本的數量,GPU容量和訓練時間進行調整,最后一個模塊(圖2中的“ Out N”)的輸出將是預測中的實際輸出,而所有其他輸出僅用于訓練,另外,為了避免過度擬合的問題并提高訓練效率,我們設計了具有權重共享功能和跳過連接結構的IterNet,
我們作業的主要貢獻如下,
?血管分割模型在所有主流資料集上具有最高的性能,
?神經網路結構的迭代設計,以學習血管的性質,避免通過權重共享過度擬合,
?顯著提高了分割結果的連通性,

Figure 2. The structure of IterNet, which consists of one UNet and iteration of N ? 1 mini-UNets.
圖2.IterNet的結構,由一個UNet和N?1個迷你UNet的迭代組成,
2.相關作業
影像分割:目前,最新(state-of-the-art)的語意分割模型[8,9,10]都來自于全卷積設計,它首先由全卷積網路(FCN)[11]引入,其主要思想是將原始影像編碼到特征空間中,并以端到端的方式將特征向量轉換為分割后的影像,FCN創新了許多迭代分割方法,這些方法與我們的IterNet有相似的想法,但實作方式完全不同,例如,迭代互動模型[12]多次運行FCN模型,并在每次迭代中接受用戶的反饋,以添加更準確的訓練標簽,Drozdzal的模型使用FCN將輸入影像預處理成標準化版本,然后應用全卷機的ResNet迭代細化分割后的影像[13],UNet[1]是另一個著名的全卷積模型,與FCN不同,UNet有多個解碼層來對特性進行取樣,它還添加了一些跳過連接,以允許解碼層使用編碼程序中的特性,
視網膜影像分割:進行血管分割的傳統方法是利用區域資訊,例如影像強度或一些手工制作的特征來進行分類, 最早的嘗試是使用閾值化和屏蔽, Roychowdhury等人[14]引入了一種迭代分割方法, 分割演算法中的幾個行程需要多次運行,這與IterNet非常相似, 他們的方法通過對視網膜影像進行自適應閾值處理,從字面(literately)上尋找可能的血管像素,該影像被上次迭代獲得的分割結果掩蓋了,
UNet [1]的出現引領了醫學領域影像分割的新時代,并徹底改變了相關領域中的大多數影像分割任務[15、16、17、18、19], Kim等人 [20]在類似UNet的模型中采用了迭代學習的概念,與IterNet相似,他們的模型還將最后一個輸出用作于下一個輸入,與我們的主要區別在于,它們只是多次運行同一模型,編碼和解碼模塊仍然需要處理原始視網膜影像和血管分割結果,相比之下,IterNet是具有迭代mini-UNets的單一模型,它完全分離了原始影像輸入和分割結果輸入,這是IterNet的關鍵設計理念,提升了最先進的性能,另一個最近的模型[21,22],稱為DenseBlock-UNet,將普通UNet模型中的卷積模塊轉換為[23]中引入的密集塊,密集塊可以在某些方面改善UNet,例如減輕梯度消失,強大的特征傳播,實作特征重用以及減小整個引數大小, Deform-UNet [6]是另一個令人驚喜的(encouraging)模型,為了獲得更好的性能,作者修改了UNet模型,他們應用了變形卷積網路(deform convolution networks)中的兩個關鍵模塊[24],即可變形卷積和可變形RoI池(deformable convolution and deformable ROI pooling),它們替換了標準卷積神經網路(CNN)模型中的原始模塊,使其具有根據輸入影像中的實際物件動態調整其接受域的能力,
IterNet與其他基于UNet的模型之間的主要區別之一是,我們的重點不是修改UNet的結構, 我們認為UNet的特征提取能力足以滿足血管分割任務, 相反,我們試圖更好地利用UNet模型中精心提取的功能來推斷其中的缺失部分,
3. IterNet
基于第1節中提到的問題,我們設計模型來了解視網膜影像中的人體血管系統的樣子,以利用其結構冗余,該網路是通過講人類注釋者牢記于心而設計的, 也就是說,注釋者可以在幾個階段中對原始視網膜影像進行分割:第一階段是制作粗糙的分割圖, 在接下來的階段中,他們將繼續使用原始視網膜影像和先前的血管圖來改善圖譜,直到注釋者對生成的血管圖滿意為止, 這導致了使用從基本模塊得到的血管圖(如圖1(c)所示)作為細化模塊的輸入,細化模塊會對其進行糾正(并學習如何修正其思想),在這種架構下,細化模塊可以基于血管系統的結構來推斷缺失/多余的預測, 為了完成校正,我們可以迭代地應用細化模塊,如圖2所示,
更具體地說,我們的網路由兩種略有不同的體系結構組成:一種是UNet,另一種是簡化版本的UNet,稱為mini-UNet,我們使用UNet作為我們的基礎模塊,因為它在各種細分任務中表現出色,特別是在醫療應用中,UNet的輸出是血管上像素的概率的單通道地圖,細化模塊的架構是mini-UNet,它們使用先例模塊(precedent module)的最后一層(the second last year)的輸出,該模塊是一個32通道的特征圖,因此與單通道血管概率圖相比,可以擁有更多的資訊,mini-UNet實際上是UNet架構的輕量級版本,引數更少,因為細化模塊的輸入是一幅特征圖,我們認為這比帶有所有背景和噪聲的原始視網膜影像更簡單,另外,我們進行了一個實驗來測驗用全尺寸u-net替代mini- unet時的性能,三個資料集的結果都變差了(有關詳細結果,請參閱補充材料),
如圖1(c)所示,從原始視網膜影像到血管圖的映射大部分是通過基本模塊學習的,而細化模塊僅負責血管的一小部分(例如細血管 thin vessels),因此,如果我們有足夠的樣本來訓練細化模塊,IterNet將獲得良好的分割結果,在我們的體系結構中,所有細化模塊(圖2中藍色標記的模塊)都具有相同的權重和偏差,第一個細化模塊的輸入是基礎模塊的最后一層的特征映射,其余細化模塊遵循類似的程序,本質上,這可以解釋為同一模塊在單個前向路徑(in a single forward path)中運行多次,最明顯的好處是它們可以具有不同的輸入,如圖3所示,在每個細化模塊之后,血管圖的中間結果始侄訓發生變化,因此,細化模塊在血管分割程序中不斷顯現出新的失效模式(As a result, the refinery modules are consistently exposed to new patterns of failure in the vessel segmentation. ),這種架構使得僅用20個訓練樣本就可以訓練細化模塊,
圖3. IterNet的輸出1、2和3的結果, 相應的AUC分別為0.9793、0.9812和0.9815,
該體系結構的另一個原因是使用迭代預測(iterative prediction),這可以提高分割性能,我們觀察到單個模型通過微小的差異對結果進行修改,并且迭代預測的概念已在許多現有方法中使用[14,20],即使使用相同的細分模型,迭代的應用仍然可以獲得更好的結果,因此,我們可以說,迭代應用相同的模型,可以在不明確建模其結構冗余的情況下,改進血管網路的缺失部分,在圖3中,我們顯示了基本模塊的輸出以及以下三個細分模塊的三個輸出,第四個輸出如圖1(e)所示,我們可以看到,通過細分模塊的迭代預測,IterNet逐漸將分裂的微型血管連接在一起,
一個重要的問題是,IterNet是一個多層前饋網路,通常,多層網路的上層幾乎無法訪問輸入(或接近輸入層的層中的特征),而它可以作為一個重要的參考,供mini-unet查看原始血管的樣子,并根據它做出決定,即使是人類的標注者,在細化血管網路的某些非常模糊的部分時,也需要檢查原始血管影像中的特定區域,因此,我們應該使較高層能夠利用較低層的特性,此外,深度學習模型在深度學習時可能會遇到梯度消失的問題,因此,為了有效地反向傳播,IterNet需要從上層到下層的路徑,
因此,我們在IterNet中添加了一些跳躍連接,類似于普通的UNet,在iternet中有三種跳躍式連接,第一種是模塊內部連接,用于將每個模塊的編碼層連接到解碼層,第二個是從基本UNet到所有細化的mini-UNet,該連接提供了從基UNet的第一層訪問該特征的途徑,該特征非常接近于輸入視網膜影像,該功能與每個mini-UNet的第一層的功能連接在一起,第三個是mini-unet之間的連接,靈感來自于密集網路[23]的密集連接,下層模塊的特性與上層模塊的特性連接在一起,
為了保持相同的結構并在mini-UNets之間進行權重共享,我們添加了一個1×1卷積層,在圖2中以黃色標記,用于降維,這是mini-unets中唯一具有私有引數的組件,
為了訓練IterNet,我們對每個輸出Out i都采用了損失, 我們使用Sigmoid形交叉熵,定義為:

其中yi表示二進制指示符(0或1),該標記對于像素i是否正確,而pi像素i是血管像素的預測概率,然后將它們與某些權重相加如下:

其中wi設定為1,因為我們沒有特別重視任何輸出,
4.實施細節
4.1.資料擴充(Data Augmentation)
由于在公共資料集中訓練影像的數量不超過20張,需要一些增強技術來避免過擬合,我們嘗試為IterNet模型提供所有可能的變化,包括顏色,形狀,亮度和位置,以使該模型適應各種成像傳感器,環境,顏色范圍等,我們使用訓練樣本生成器在訓練程序中一致地生成隨機修改的樣本,
4.2.訓練和預測中的影像patches
通常將輸入影像在規則的網路上分割成相同大小的影像塊,這會增加了可用訓練樣本的數量,由于IterNet對輸入影像大小的一致性沒有要求,有三種不同的訓練和預測方式:
?使用影像patch進行訓練和測驗,將最侄訓得的影像patch conquering在一起,該策略可以充分利用訓練材料,并給出最精確的預測結果,但是,這將比其他兩種方法花費更多的時間,因為推斷程序必須進行多次(有關詳細的時間成本,請參見補充材料),
?在訓練中只使用影像patch,并在預測中使用整個影像直接獲得最終結果,該策略還可以使用增強的訓練資料,但是,由于模型是使用影像patches(塊)訓練的,所以它在預測時效果可能無法達到第一種策略的效果,
?在訓練或預測中都使用原始影像,由于可用的視網膜資料非常有限,因此很少采用原始影像;因此,資料擴充通常會有所幫助,
為了避免過擬合,我們使用128像素的影像patch大小來訓練IterNet,對于預測,我們同時測驗了整個影像預測和影像patch預測,

5.實驗
在本節中,我們將詳細介紹實驗設計,結果,比較并討論IterNet的優缺點, 所有實驗都是在GPU服務器上執行的,該服務器具有四個NVIDIA Tesla V100 SXM2 GPU(每個32GB記憶體)和兩個Intel Xeon Gold 5122 CPU, 對于每種模型,我們僅使用一個GPU進行公平比較, 將mini-UNet的迭代次數設定為三(圖2中的N = 4),因為我們發現,對于這三個資料集,較大的迭代次數只會帶來較小的性能改善,但代價是需要更長的訓練和預測時間,

圖5.三個資料集上的ROC曲線(with masks)a.DRIVE, b.CHASE_DB1,c.STARE
如圖4的第一行所示,我們使用了三個流行的資料集,即DRIVE [3],CHASE-DB1 [4]和STARE [5], 它們都具有不同的格式和不同大小的影像, 影像分別為.tif(565×584)、. jpg(999×960)和.ppm(700×605), 我們使用這三個資料集訓練三個不同的IterNet模型, 由于UNet不需要固定輸入影像的大小,所以我們可以對這三種模型使用相同的模型配置, 該模型也可以將整幅影像或影像塊作為輸入, 為了訓練,我們從影像中隨機提取影像patch, 為了進行預測,用步幅為3的提取重疊的影像塊(我們將補充材料中步幅3和8進行了比較),并使用所有重疊影像塊的平均值作為預測,
圖4的第二行是視網膜影像的view(FoV)mask,雖然DRIVE資料集為測驗影像提供了官方的mask,但其他兩個資料集沒有這樣的mask,為了保證公平比較,我們還為CHASE_DB1和STARE生成了FoV masks,FoV masks
可以通過對原始影像進行簡單的顏色閾值來實作,因為FoV之外的像素通常接近黑色,在FDRVE資料集中,我們使用20張影像進行訓練,使用20張影像進行測驗,在CHASE-DB1和STARE中,沒有關于訓練和測驗分割的正式描述,因此我們分別制作了20和16張影像作為訓練集,剩余的8和4張影像作為測驗集,我們不使用任何驗證影像.(FoV masks制作,CHASE_DB1和SHARE訓練和測驗),
我們將我們的模型與一些最新技術進行了比較其中UNet [1],DenseBlock-UNet [21、22]和Deform-UNet [6],我們自己在三個資料集上使用它們的公共代碼來訓練和評估這些模型,因為對于CHASE_DB1和STARE而言,訓練和測驗分割是未知的,我們希望生成the receiver operating characteristics(ROC)曲線,如圖5所示,從圖中可以看出,在大多數情況下,IterNet顯示出比其他三種模型更好的性能,由于所有最新的模型都已經具有良好的性能(AUC> 0.97),因此性能提升很小,然而,結果證明我們的模型在所有三個資料集上均具有穩定的性能,其中,IterNet在STARE資料集上運行良好,該資料集的訓練和測驗樣本較少,該結果表明,即使訓練影像有限,IterNet仍可以在血管網路中找到合適的特征和模式,相比之下,所有其他模型的STARE資料集都會遭受嚴重破壞,在其他三個最新模型中,Deform-UNet通常由于其動態感受野而表現出明顯更好的性能,但是,STARE資料集降低了其優于DenseBlock-UNet的優勢,因為denseblock模塊使模型不太容易過擬合,
我們還將結果與現有模型進行了比較,包括上述三種基于UNet的模型,Residual UNet[25]、Recurrent (遞回)UNet[25]、R2UNet[25],以及第二節介紹的迭代預測方法Iter-Seg[14],只有UNet、DenseBlock-UNet和Deform-UNet的結果來自我們的重復測驗,其他結果均來自相應的論文,DRIVE資料集上的結果如表1所示,我們展示了IterNet的兩種變體的結果,這兩種方法都使用128大小的影像patch進行訓練,在預測中,一個將整個影像作為輸入并輸出最終結果,而另一個(用“patches”表示)使用影像patches進行訓練和預測,并將得到的血管圖進行連接,我們可以看到,基于影像patch的預測帶來了一些改進,但運行時間較長(具體時間成本見補充材料),這兩個變體顯示出優于所有其他模型的AUC,實際上,它們是我們測驗中唯一具有高于0.98的AUC的模型,
我們還對CHASE-DB1和STARE進行了對比實驗,這兩個實驗沒有官方指定的訓練和測驗集,也沒有FoV masks,因此,我們只將結果與我們在相同設定下復現模型(reproduced models)的結果進行比較,結果見表2和表3,為了確保公平的比較,我們列出了使用或不使用FoV masks的性能,可以看出,在這兩個資料集上,所提出的IterNet在大多數指標上都有最好的性能,
但是,上述指標都是像素級的,不能反映血管網路級別的分割性能,因此,我們采用了一種新的度量,即連通性[26,27],這是臨床醫生使用一些血管相關模式(如交叉或分支[28])對視網膜影像進行分析的重要要求,連通性C的定義如下,

其中SP(θ)是預測分割中以閾值θ二值化的分割數,SG為金標準(the gold standard)分割數,SMax是一張血管圖允許的最大分割數,由于最大分割數涉及血管總長度L,因此根據L定義,可以通過對金標準(the gold standard)進行skeletonizing 和計算skeletonizing pixels的數量來計算,本實驗設SMax = αL,使α = 0.05,根據這個定義,我們畫了一條θ對C(θ)的關系曲線(一些例子請參閱補充材料),我們采用這條曲線下的面積作為連通度(連通性度量標準)(縮寫為Conn.),如表1、表2、表3所示,IterNet在三個資料集中達到了最高的連接性,

我們在圖6中給出了一些示例結果,我們可以看到(As we can see),在所有三個資料集上,我們的IterNet模型效果(works)最好,我們認為這是由于IterNet的迭代架構對血管網路的深刻了解:它知道如何將血管片段連接在一起,即使它們在原始視網膜影像上看起來是不連貫的,
如第3節中所述,mini-unet之間的權重分配有助于避免訓練程序中的過度擬合, 我們進行了一項實驗測驗,看看在沒有權值共享的情況下,IterNet的實際性能, 當N = 1時,不存在mini-UNets,可以將IterNet訓練為通用UNet; 當N = 2時,mini-UNet只運行一次,并且在DRIVE資料集上獲得的AUC為0.9795,這與IterNet在N = 3時Out1的性能非常相似; 當N≥2時,IterNet會遇到嚴重的過擬合問題,即損失可能在訓練集上達到低水平,而在測驗集上卻保持較高水平, 我們還進行了一個實驗來測驗IterNet在沒有跳躍連接的情況下的性能,三個資料集的AUC分別降至0.9799、0.9770和0.9808(更多結果請參閱補充材料),

6. 結論
在本文中,針對目前視網膜影像分割中存在的一些問題,提出了一種名為IterNet的影像分割模型,我們使用一個標準的UNet來分析原始輸入影像,并將它們映射到血管網路的初始預測,為了消除現有血管分割模型中常見的血管不一致、像素缺失等錯誤,我們在UNet之后增加了一個mini-UNet的迭代,并將UNet的輸出作為后續mini-UNet的輸入,通過在mini-unet和跳躍連接中引入權重共享,我們成功地使用了IterNet查找中間結果中可能存在的缺陷并以合理的方式對其進行修復,實驗結果表明,該演算法在三個常用資料集上均取得了最好的性能,
致謝
本研究得到了美國科學技術與創新委員會(CSTI)、跨部級戰略創新促進計劃(SIP)、“創新型人工智能醫院系統”(資助機構:美國國立生物醫學創新、健康與營養研究所(NIBIOHN))的支持,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273296.html
標籤:其他
