深度學習在互動式圖像分割中的應用

深度學習在互動式圖像分割中的應用

來自專欄 travelsea的深度學習專欄24 人贊了文章

目前深度學習在許多圖像分割任務中取得了很好的效果,但絕大多數相關工作都是自動分割的方法。很多場景下仍然需要互動式的分割方法, 比如放療靶區的標註,或者因為自動分割結果不夠好而需要用戶修正時。另外,訓練深度學習模型時常常需要標記許多圖像作為訓練集,使用好的互動式分割工具可以更高效地標記這些圖像。

考慮到深度學習的優越性能,利用它來做互動式圖像分割,可以減少用戶交互的數量以及用戶花費的時間,從而得到更高效的互動式分割工具。目前已經有好幾篇文章研究了基於深度學習互動式圖像分割方法,本文對近期的一些文章做一些歸納和整理。

1, Deep Interactive Object Selection

這是CVPR 2016的一篇文章。該文章提出了一種使用卷積神經網路(CNN)的二維圖像互動式分割方法。該方法的原理如下圖所示:用戶提供的交互是位於前景和背景中的一些點(綠色的點為前景,紅色的點為背景),這些點轉化為基於前景點的距離圖像和基於背景點的距離圖像。原圖為RGB三個通道的圖像,加上這兩個距離圖像後一共五個通道,將這五個通道的圖像作為全卷積網路(FCN)的輸入以得到分割結果。因此在分割過程中,用戶只需給幾個點就能指導FCN的分割。

由FCN的輸出可以得到一個概率圖,在概率圖的基礎上再使用圖割(graph cut)進行修正以使分割結果更靠近圖像中的邊緣。下圖是一個分割的例子,其中(a)為輸入圖像和用戶提供的前景點和背景點,(b)是由FCN得到的概率圖,(c)是經過graph cut優化後的結果。

該文章使用了FCN預訓練的模型,並且在PASCAL VOC 2012圖像分割數據集上進行微調。在訓練過程中通過對用戶交互的模擬來得到前景點和背景點,而不需要真正讓用戶在訓練集上標記出這些點。在測試過程中用戶可根據需要,不斷增加點的數量,從而的分割結果進行編輯。下圖是用戶提供1-3個點進行分割的例子。第一行是對概率圖取閾值的分割結果,第二行為用graph cut對概率圖修正的結果。

2, DeepIGeoS: A deep interactive geodesic framework for medical image segmentation

DeepIGeoS是最近發表在TPAMI上的一篇文章。該演算法是針對二維和三維醫學圖像分割提出的一種方法。與Deep Interactive Object Selection需要用戶一開始就要提供交互點不同的是,DeepIGeoS讓用戶只需在一個自動分割結果的錯誤分割區域提供交互,因此可以更加省時和高效。

DeepIGeoS流程圖

DeepIGeoS使用了兩個CNN, 如上圖所示。其中第一個CNN(稱為P-Net)得到一個自動分割結果,用戶在此基礎上提供交互點或者短線標記錯誤分割的區域,再將其作為第二個CNN(稱為R-Net)的輸入得到修正的結果。

DeepIGeoS也將用戶交互轉化為距離圖像作為CNN的輸入,但使用了測地線距離(geodesic distance),如下圖所示。(a)中綠色曲線為初始分割結果,紅點為用戶對其修正時標記的前景,青色為用戶標記的背景,(d)和(e)分別是這兩種交互所對應的測地線距離圖像。使用測地線距離比歐式距離可以更好地反映圖像中的邊緣和上下文信息。原始圖像,初始分割結果,前景交互點的距離圖像、背景交互點的距離圖像組合在一起,得到一個四個通道的圖像,以作為第二個CNN(R-Net)的輸入。

DeepIGeoS在訓練過程中是通過對交互點的模擬來訓練R-Net的。下圖是在P-Net得到的初始分割結果上模擬的用戶交互:

該文章還提出了一種在卷積過程中使特徵圖像的解析度保持不變的網路結構(P-Net)。由於FCN有先逐漸下採樣再逐漸上採樣的過程,輸出結果會丟失一些細節信息,P-Net沒有使用下採樣和上採樣的層,為了使網路有用比較大的感受野,使用了空洞卷積(dilated convolution/atrous convolution)來替代池化層(pooling)與最近的Deeplab-v3類似。

該文章分別在二維胎兒MRI圖像和三維腦腫瘤圖像上做了實驗,結果表明與傳統的互動式分割方法例如Graph Cuts, Random Walks, ITK-Snap相比, DeepIGeoS大大降低了對用戶交互的需求,並且減少了用戶時間,在二維胎盤圖像和三維腦腫瘤圖像的互動式分割中需要的用戶時間分別為約8秒和60秒。

3, Interactive medical image segmentation using deep learning with image-specific fine-tuning

這是今年發表在TMI上的一篇文章,該方法也稱為BIFSeg (Bounding box and Image-specific Fine-tuning-based Segmentation)。BIFSeg以一種類似於GrabCut的方法進行圖像分割:用戶先畫一個邊界框,邊界框以內的區域作為CNN的輸入,得到一個初始結果,再對CNN進行圖像特異性微調(Image-specific Fine-tuning),使CNN更好地適應特定的測試圖像,以提高分割結果。GrabCut通過從一個特定的圖像中學習一個高斯混合模型(GMM)來完成圖像分割,而BIFSeg從一個特定的圖像中學習一個CNN來實現分割。

通常基於CNN 的分割方法只能處理訓練集中出現過的物體,這就限制了這些方法的靈活性。BIFSeg 嘗試用CNN來分割訓練時沒有見過的物體。如上圖所示,訓練集中包括胎盤和胎兒大腦,測試集中則除了這兩種器官外,還包括胎兒的肺部和孕婦的腎臟。訓練的過程相當於使BIFSeg學會從一個邊界框中去提取物體的前景部分,測試時通過自適應微調讓CNN可以更好地利用特定圖像中的信息。微調的過程可以是自動進行的(無監督),也可以在用戶交互的引導下進行(有監督)。

BIFSeg的圖像特異性微調

上圖是一個無監督的特異性微調的例子。這裡分割的肺是訓練集中所沒有見過的,但CNN能得到還不錯的初始分割結果,這個例子中通過自動微調得到了更好的分割結果。

這張圖是一個在用戶交互的指導下進行微調的例子。訓練集中只包括FLAIR圖像中的腦腫瘤(包括水腫部分),而測試集除了這樣的圖像以外,還包括T1圖像中的腦腫瘤核心區域(不包括水腫部分)。上圖是測試時分割T1圖像中的腫瘤核的例子。BIFSeg的圖像特異性微調過程是通過對分割結果和CNN參數交替優化來實現的,在更新CNN參數時,使用了一個加權的損失函數,忽略了那些傾向於分割不準確的像素,僅使用具有高度可靠性的像素來優化CNN。

4, Guide Me: Interacting with Deep Networks

上述幾篇文章處理的用戶交互是用戶在圖像上給的初始標記或者新增加的標記,而Guide Me這篇文章嘗試處理另一種交互方式:根據用戶的文字輸入來更新圖像分割的結果。

該方法的原理圖如下,使用的CNN可看做由頭部(編碼器)和尾部(解碼器)兩部分組成,頭部和尾部之間有一個中間層的特徵圖,在分割時,用戶的交互用來對這個特徵圖進行更改,從而改變網路的輸出結果。

特徵圖更改是通過一些引導參數(guide parameter),包括一些乘法和偏置係數來實現的:

A_c = (1 + gamma^{(s)}_c) A_c + gamma^{(b)}_c

這裡 A_c 表示特徵圖的第c個通道, gamma^{(s)}_cgamma^{(b)}_c 分別是一個乘法係數和一個偏置係數。通過對特徵圖的每個通道定義兩個參數,可以讓參數的數量達到最小。但這樣忽略了空間信息,因此可以在不同的空間位置也定義這樣的參數:

A_{h, w, c} = (1 + alpha_h + eta_w + gamma^{(s)}_c)A_{h, w, c} + gamma^{(b)}_c

其中 alpha_heta_w 分別對應每行和每列的係數。對於高H, 寬W, 通道數C的一個特徵圖,乘法係數共有H+W+C個,因此總體上guide parameter的數量是較少的。

當用戶對一個分割結果添加互動式反饋時,網路的參數並不更新, 而只是更新guide paramerer 的值來得到新的分割結果。那麼如何更新guide parameter呢?

文章中提出了兩個方法,一個方法是,該分割系統主動問用戶某一個區域是否為天空,用戶說是或者不是。根據用戶的回答把該區域設置為相應的類別,再通過反向傳播,求得guide parameter的局部最優值。另一個方法是,用戶直接給出文字反饋,例如「天空在該圖中不可見」, 通過一個RNN將文字信息轉換為guide parameter。這也需要在訓練的時候模擬用戶輸入訓練處RNN,以便在測試的時候網路能處理用戶給的文字信息。

模擬用戶輸入的過程如上圖所示,將一個初始分割結果與金標準比較,可以發現分割錯誤的區域,再根據這些錯誤的分割部位生成文字信息作為模擬的用戶輸入。

該文章在Pascal VOC 2012 數據集上,使用第一種交互,通過系統問用戶20個問題,使分割mIOU從62.6%提高到了81.0%。第二種交互方式的實驗中,使用的是COCO-stuff數據集,通過互動式修正,分割mIoU從30.5%提高到了36.5%,而DeepLab在該數據集上取得的mIoU為30.8%。

5, PolygonRNN

PolygonRNN是針對二維圖像中物體邊緣的標註而提出的方法,其流程如下圖所示,用戶提供一個感興趣的物體的邊界框,該方法通過RNN來預測這個邊界框中物體邊緣上的一系列頂點,這些頂點所組成的多邊形區域作為物體的分割結果。

這些頂點是按照一定順序預測的,比如順時針的順序。假設有T個頂點,先使用一個CNN預測第一個頂點,之後的第t個頂點通過RNN結合第一個頂點和第t-1及第t-2個頂點預測的, RNN模型如下圖所示(以VGG網路作為特徵提取網路):

頂點的預測是作為一個分類任務實現的, 該文章把圖像劃分為28x28的格子,然後對每個格子屬於還是不屬於頂點進行分類。在測試圖像中,用戶可以對第t個頂點的預測結果進行修正,後續的頂點隨之重新進行預測,從而得到更新的分割結果。

隨著用戶編輯的頂點數量的增加,分割結果的精度也變得更好。相比於用戶完全手工繪製物體的頂點進行標註,該方法的效率提高了5倍左右。由於頂點圖像的解析度較低(28x28),該方法的分割精度有一定局限性。

6, Polygon-RNN++

Polygon-RNN++在Polygon-RNN的基礎上做了許多改進,使對物體邊界上的多邊形頂點的預測更加準確,並有更高的解析度。在網路結構上,把VGG網路換成了一個基於ResNet-50的網路。Polygon-RNN分別使用了兩個網路來預測第一個頂點和後續頂點, Polygon-RNN++提出了一個統一的框架,把這兩種頂點的預測結合起來,可以一起訓練。它還使用了注意力機制,使預測下一個頂點時更加集中在上一個頂點附近的區域。

在對RNN的訓練過程中,Polygon-RNN++也做出了很大的改變,它使用強化學習(Reinforcement learning)來做對所有頂點序列的預測,使預測結果與金標準有更好的重疊度,而Polygon-RNN僅使用cross entropy作為損失函數,與評價時使用的intersection over union指標有較大差異。

針對Polygon-RNN的分割結果解析度較低的問題,Polygon-RNN++提出了一個Graph Neural Network將RNN得到的多邊形進行放大和修正。

Polygon-RNN++在Cityscapes和KITTI, ADE等數據集上進行了實驗,其中訓練過程是在Cityscapes數據集上完成的,其他數據集作為cross- domain或者out-of-domain的數據,用來驗證該方法的通用性。結果表明在這些訓練時沒有見過的數據集上也能取得不錯的結果。

參考文獻

1, Xu, Ning, Brian Price, Scott Cohen, Jimei Yang, and Thomas S. Huang. "Deep interactive object selection." In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 373-381. 2016.

2, Wang, Guotai, Maria A. Zuluaga, Wenqi Li, Rosalind Pratt, Premal A. Patel, Michael Aertsen, Tom Doel et al. "DeepIGeoS: a deep interactive geodesic framework for medical image segmentation." IEEE Transactions on Pattern Analysis and Machine Intelligence (2018).

3, Wang, Guotai, Wenqi Li, Maria A. Zuluaga, Rosalind Pratt, Premal A. Patel, Michael Aertsen, Tom Doel et al. "Interactive medical image segmentation using deep learning with image-specific fine-tuning." IEEE Transactions on Medical Imaging, 37(7), pp 1562 - 1573. 2018

4, Rupprecht, Christian, Iro Laina, Nassir Navab, Gregory D. Hager, and Federico Tombari. "Guide Me: Interacting with Deep Networks." arXiv preprint arXiv:1803.11544 (2018).

5, Castrejon, Lluis, Kaustav Kundu, Raquel Urtasun, and Sanja Fidler. "Annotating Object Instances with a Polygon-RNN." InProceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp.5230-5238. 2017.

6, Acuna, David, Huan Ling, Amlan Kar, and Sanja Fidler. "Efficient Interactive Annotation of Segmentation Datasets With Polygon-RNN++." In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 859-868. 2018.

推薦閱讀:

TAG:深度學習DeepLearning | 機器學習 | 計算機視覺 |