圖像分割2020總結(jié):結(jié)構(gòu),損失函數(shù),數(shù)據(jù)集和框架

極市導(dǎo)讀
?本文總結(jié)了2020圖像分割的相關(guān)內(nèi)容,包括架構(gòu),損失函數(shù),數(shù)據(jù)集,框架的整理,內(nèi)容非常詳細(xì)完整,適合入門者閱讀上手。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿
在這篇文章中,我們將進(jìn)入使用深度學(xué)習(xí)進(jìn)行圖像分割的世界。我們將討論:
圖像分割是什么以及圖像分割的兩種主要類型 圖像分割結(jié)構(gòu) 圖像分割中使用的損失函數(shù) 你可以使用的框架
就讓我們一探究竟吧。
什么是圖像分割?
顧名思義,這是將圖像分割為多個(gè)部分的過程。在這個(gè)過程中,圖像中的每個(gè)像素都與一個(gè)對象類型相關(guān)聯(lián)。圖像分割主要有兩種類型:語義分割和實(shí)例分割。在語義分割中,所有相同類型的對象都使用一個(gè)類標(biāo)簽進(jìn)行標(biāo)記,而在實(shí)例分割中,相似的對象使用各自的標(biāo)簽。
圖像分割結(jié)構(gòu)
圖像分割的基本結(jié)構(gòu)包括編碼器和解碼器。
編碼器通過濾波器從圖像中提取特征。解碼器負(fù)責(zé)生成最終輸出,該輸出通常是包含對象輪廓的分割掩碼。大多數(shù)架構(gòu)都有這種架構(gòu)或它的變體。
讓我們來看幾個(gè)例子。
U-Net
U-Net是一種卷積神經(jīng)網(wǎng)絡(luò),最初是為分割生物醫(yī)學(xué)圖像而開發(fā)的。當(dāng)它被可視化的時(shí)候,它的架構(gòu)看起來像字母U,因此被命名為U-Net。其體系結(jié)構(gòu)由兩部分組成,左側(cè)為收縮路徑,右側(cè)為擴(kuò)展路徑。收縮路徑的目的是獲取上下文,而擴(kuò)展路徑的作用是幫助精確定位。
U-Net是由右側(cè)的擴(kuò)張路徑和左側(cè)的收縮路徑組成的。收縮路徑由兩個(gè)3乘3的卷積組成。卷積之后是一個(gè)ReLU和一個(gè)2x2的最大池計(jì)算用于下采樣。
你可以在這里找到U-Net的完整實(shí)現(xiàn):https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/。
FastFCN —Fast Fully-connected network
在這個(gè)架構(gòu)中,使用一個(gè)聯(lián)合金字塔上采樣(JPU)模塊來替換膨脹卷積,因?yàn)樗鼈兿拇罅康膬?nèi)存和時(shí)間。在應(yīng)用JPU進(jìn)行上采樣時(shí),其核心部分采用全連接網(wǎng)絡(luò)。JPU將低分辨率的feature map采樣到高分辨率feature map。
如果你想動手實(shí)現(xiàn)一些代碼,看這里:https://github.com/wuhuikai/FastFCN。
Gated-SCNN
這個(gè)架構(gòu)由一個(gè) two-stream CNN架構(gòu)組成。在該模型中,使用一個(gè)單獨(dú)的分支來處理圖像的形狀信息。利用形狀流來處理邊界信息。
實(shí)現(xiàn)參考代碼:https://github.com/nv-tlabs/gscnn
DeepLab
在這種架構(gòu)中,上采樣濾波器的卷積用于涉及密集預(yù)測的任務(wù)。多尺度的目標(biāo)分割是通過空間金字塔池實(shí)現(xiàn)的。最后,利用DCNNs來改進(jìn)目標(biāo)邊界的定位。通過對濾波器插入零進(jìn)行上采樣或?qū)斎胩卣鲌D進(jìn)行稀疏采樣來實(shí)現(xiàn)卷積。
實(shí)現(xiàn)參考代碼:https://github.com/fregu856/deeplabv3,https://github.com/sthalles/deeplab_v3
Mask R-CNN
在這個(gè)架構(gòu)中,使用邊界框和語義分割將每個(gè)像素劃分為一組類別,對對象進(jìn)行分類和局部化。對每個(gè)感興趣的區(qū)域得到一個(gè)分割掩碼,生成一個(gè)類標(biāo)簽和一個(gè)邊界框作為最終輸出。該架構(gòu)是Faster ?R-CNN的擴(kuò)展。Faster R-CNN由regions proposer和深度卷積網(wǎng)絡(luò)和利局部檢測器組成。
這里是COCO測試集中的一張圖像的結(jié)果:
圖像分割損失函數(shù)
語義分割模型在訓(xùn)練過程中通常使用一個(gè)簡單的交叉分類熵?fù)p失函數(shù)。但是,如果你對獲取圖像的細(xì)粒度信息感興趣,那么你需要用到稍微高級一點(diǎn)的損失函數(shù)。我們來看看其中的幾個(gè)。
Focal Loss
這種損失是對標(biāo)準(zhǔn)交叉熵的改進(jìn)。這是通過改變它的形狀來實(shí)現(xiàn)的,這樣分配給分類良好的樣本的損失就降低了。最終,這確保了沒有類別不平衡。在這個(gè)損失函數(shù)中,交叉熵?fù)p失被縮放,隨著對正確類的置信度的增加,縮放因子衰減為零。在訓(xùn)練時(shí),比例因子會自動降低簡單樣本的權(quán)重,并聚焦于困難樣本。
Dice loss
這個(gè)損失是通過計(jì)算smooth dice coefficient得到的。這種損失是最常用的分割損失。
Intersection over Union (IoU)-balanced Loss
IoU平衡分類損失的目的是增加高IoU樣本的梯度,降低低IoU樣本的梯度。這樣提高了機(jī)器學(xué)習(xí)模型的定位精度。
Boundary loss
邊界損失的一種變體應(yīng)用于分割高度不平衡的任務(wù)。這種損失的形式是空間等高線上的距離度量,而不是區(qū)域。這種方法解決了高度不平衡的分割任務(wù)中區(qū)域損失的問題。
Weighted cross-entropy
在交叉熵的一種變體中,所有正樣本都用一定的系數(shù)進(jìn)行加權(quán)。它用于類別不平衡的場景。
Lovász-Softmax loss
該損失是對基于子模塊損失凸Lovasz擴(kuò)展的神經(jīng)網(wǎng)絡(luò)平均IoU損失的直接優(yōu)化。
其他值得一提的損失包括:
TopK loss,其目的是確保網(wǎng)絡(luò)在訓(xùn)練過程中聚焦于困難樣本上。 距離懲罰交叉熵?fù)p失,引導(dǎo)網(wǎng)絡(luò)難以分割的邊界地區(qū)。 敏感性-特異性(SS)損失,計(jì)算特異性和敏感性的均方差的加權(quán)和。 Hausdorff distance(HD) loss,估計(jì)了卷積神經(jīng)網(wǎng)絡(luò)的Hausdorff距離。
這只是在圖像分割中使用的幾個(gè)損失函數(shù)。想了解更多內(nèi)容,看這里:https://github.com/JunMa11/SegLoss。
圖像分割數(shù)據(jù)集
從哪里可以得到一些數(shù)據(jù)集來開始?讓我們來看幾個(gè)例子。
Common Objects in COntext?—?Coco Dataset
COCO是一個(gè)大型物體檢測、分割和圖像描述數(shù)據(jù)集。數(shù)據(jù)集包含91個(gè)類。它有25萬個(gè)人標(biāo)注了關(guān)鍵點(diǎn)。它的大小是37.57 GiB。它包含80個(gè)物體類別。它遵循Apache 2.0許可,下載鏈接:http://cocodataset.org/#download。
PASCAL Visual Object Classes (PASCAL VOC)
PASCAL有9963個(gè)圖像和20個(gè)不同的類。訓(xùn)練/驗(yàn)證集是一個(gè)2GB的tar文件。數(shù)據(jù)集下載:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/。
The Cityscapes Dataset
此數(shù)據(jù)集包含城市場景的圖像。它可以用來評估城市場景中視覺算法的性能。??數(shù)據(jù)集下載:https://www.cityscapes-dataset.com/downloads/。
The Cambridge-driving Labeled Video Database?—?CamVid
這是一個(gè)基于運(yùn)動的分割和識別數(shù)據(jù)集。它包含32個(gè)語義類。數(shù)據(jù)集下載:http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/。
圖像分割框架
現(xiàn)在你已經(jīng)有了數(shù)據(jù)集,讓我們介紹一些工具/框架,你可以使用它們來開始。
FastAI library - 給定一幅圖像,該庫能夠創(chuàng)建該圖像中對象的mask。 Sefexa Image Segmentation Tool? - Sefexa是一個(gè)免費(fèi)的工具,可以用于半自動圖像分割,圖像分析,創(chuàng)建ground truth Deepmask - Deepmask由Facebook Research開發(fā),是Deepmask和SharpMask的Torch實(shí)現(xiàn)。 MultiPath - 這是來源于A MultiPath Network for Object Detection的物體檢測網(wǎng)絡(luò)的Torch實(shí)現(xiàn)。 OpenCV - 這是一個(gè)開源的計(jì)算機(jī)視覺庫,有超過2500個(gè)優(yōu)化算法。 MIScnn - 這是一個(gè)醫(yī)學(xué)圖像分割開源庫。它使用最先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)模型建立管道,只需幾行代碼。 Fritz - Fritz提供多種計(jì)算機(jī)視覺工具,包括用于移動設(shè)備的圖像分割工具。
總結(jié)
本文為你提供了一些圖像分割的背景知識,并為你提供了一些工具和框架,可以用于入門。我們討論了:
什么是圖像分割, 圖像分割架構(gòu), 圖像分割損失, 圖像分割工具和框架。
要了解更多信息,請查看每個(gè)架構(gòu)和框架的鏈接。
英文原文:https://neptune.ai/blog/image-segmentation-in-2020
推薦閱讀

