來(lái)源:圖靈Topia(ID:turingtopia)
圖像分割(Image Segmentation)是計(jì)算機(jī)視覺(jué)領(lǐng)域中的一項(xiàng)重要基礎(chǔ)技術(shù),是圖像理解中的重要一環(huán)。近日,數(shù)據(jù)科學(xué)家Derrick Mwiti在一篇文章中,就什么是圖像分割、圖像分割架構(gòu)、圖像分割損失函數(shù)以及圖像分割工具和框架等問(wèn)題進(jìn)行了討論,讓我們一探究竟吧。
什么是圖像分割?
顧名思義,這是將一個(gè)圖像分割成多個(gè)片段的過(guò)程。在這個(gè)過(guò)程中,圖像中的每個(gè)像素都與一個(gè)對(duì)象類(lèi)型相關(guān)聯(lián)。圖像分割主要有兩種類(lèi)型:語(yǔ)義分割和實(shí)例分割。
在語(yǔ)義分割中,同一類(lèi)型的所有對(duì)象都使用一個(gè)類(lèi)標(biāo)簽進(jìn)行標(biāo)記,而在實(shí)例分割中,相似的對(duì)象使用各自獨(dú)立的標(biāo)簽。
圖像分割的體系結(jié)構(gòu)
圖像分割的基本結(jié)構(gòu)包括編碼器和解碼器。
編碼器通過(guò)過(guò)濾器從圖像中提取特征。解碼器負(fù)責(zé)生成最終的輸出,通常是一個(gè)包含對(duì)象輪廓的分割掩碼。大多數(shù)體系結(jié)構(gòu)都有這種結(jié)構(gòu)或其變體,看幾個(gè)例子:U-NetU-Net是最初用于分割生物醫(yī)學(xué)圖像的卷積神經(jīng)網(wǎng)絡(luò)??梢暬瘯r(shí),其架構(gòu)看起來(lái)像字母U,因此名稱(chēng)為U-Net。它的體系結(jié)構(gòu)由兩部分組成,左邊部分是收縮路徑,右邊部分是擴(kuò)展路徑。收縮路徑的目的是捕獲上下文,而擴(kuò)展路徑的作用是幫助精確定位。U-Net由右邊的擴(kuò)展路徑和左邊的收縮路徑組成。收縮路徑由兩個(gè)3×3的卷積組成,卷積之后是一個(gè)整流的線(xiàn)性單元和一個(gè)用于降采樣的兩乘二最大池計(jì)算。
完整的U-Net實(shí)現(xiàn)可以在這里找到
https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/
FastFCN —Fast Fully-connected network
在這種結(jié)構(gòu)中,聯(lián)合金字塔上采樣(JPU)模塊被用來(lái)代替擴(kuò)展卷積,因?yàn)樗鼈兿拇罅康膬?nèi)存和時(shí)間。它的核心是一個(gè)全連接網(wǎng)絡(luò),同時(shí)使用JPU進(jìn)行上采樣。JPU將低分辨率特征圖提升為高分辨率特征圖。如果你想進(jìn)行代碼實(shí)現(xiàn),鏈接如下:https://github.com/wuhuikai/FastFCNGated-SCNN該架構(gòu)由雙流CNN架構(gòu)組成。在此模型中,一個(gè)單獨(dú)的分支用于處理圖像形狀信息。形狀流用于處理邊界信息。
你可以通過(guò)檢查這里的代碼來(lái)實(shí)現(xiàn):
https://github.com/nv-tlabs/gscnnDeepLab在這種結(jié)構(gòu)中,卷積與上采樣濾波器用于涉及密集預(yù)測(cè)的任務(wù)。多個(gè)對(duì)象的分割是通過(guò)空間金字塔池來(lái)完成的。最后,用DCNNs改進(jìn)對(duì)象邊界的定位。通過(guò)插入零點(diǎn)或?qū)斎胩卣鲌D進(jìn)行稀疏采樣來(lái)對(duì)濾波器進(jìn)行上采樣,從而實(shí)現(xiàn)空洞卷積。
可以在PyTorch或TensorFlow上嘗試其實(shí)現(xiàn)。
PyTorch:https://github.com/fregu856/deeplabv3
TensorFlow:https://github.com/sthalles/deeplab_v3
Mask R-CNN在這種體系結(jié)構(gòu)中,使用bounding box和語(yǔ)義分割對(duì)對(duì)象進(jìn)行分類(lèi)和定位,并將每個(gè)像素分類(lèi)為一組類(lèi)別。每個(gè)感興趣的區(qū)域都有一個(gè)分割掩碼,最終的輸出是一個(gè)類(lèi)標(biāo)簽和一個(gè)bounding box。該體系結(jié)構(gòu)是Faster R-CNN的擴(kuò)展,F(xiàn)aster R-CNN由提出區(qū)域的深度卷積網(wǎng)絡(luò)和利用區(qū)域的檢測(cè)器組成。這是在COCO測(cè)試集上得到的結(jié)果的圖像
圖像分割損失函數(shù)
語(yǔ)義分割模型在訓(xùn)練過(guò)程中通常使用一個(gè)簡(jiǎn)單的交叉熵?fù)p失函數(shù)。但是,如果對(duì)獲取圖像的粒度信息感興趣,則必須恢復(fù)到稍微高級(jí)一些的損失函數(shù),來(lái)看幾個(gè)例子:
Focal Loss
這種損失是對(duì)標(biāo)準(zhǔn)交叉熵準(zhǔn)則的改進(jìn)。這是通過(guò)改變其形狀來(lái)實(shí)現(xiàn)的,使得分配給分類(lèi)良好的示例的損失權(quán)重降低了。最終,確保不存在類(lèi)不平衡。
在這個(gè)損失函數(shù)中,交叉熵?fù)p失是會(huì)隨著縮放系數(shù)衰減為零而縮,訓(xùn)練時(shí),比例因數(shù)自動(dòng)降低了簡(jiǎn)單示例的權(quán)重,并將重點(diǎn)放在困難示例上。
Dice loss
該損失是通過(guò)計(jì)算平滑dice coefficient函數(shù)獲得的。這種損失是最常用的損失,是分割問(wèn)題。
Intersection over Union (IoU)-balanced Loss
IoU平衡分類(lèi)損失的目的是增加高IoU樣本的梯度,降低低IoU樣本的梯度。從而提高了機(jī)器學(xué)習(xí)模型的定位精度。
Boundary loss
Boundary loss的一種變體應(yīng)用于具有高度不平衡分段的任務(wù)。
這種損失的形式是空間輪廓而非區(qū)域上的距離度量。通過(guò)這種方式,它解決了高度不平衡的分割任務(wù)的區(qū)域損失所帶來(lái)的問(wèn)題。
Weighted cross-entropy
在交叉熵的一個(gè)變體中,所有正例均按一定系數(shù)加權(quán)。它用于涉及類(lèi)不平衡的方案。
Lovász-Softmaxloss
該損失基于子模塊損失的convex Lovasz擴(kuò)展,對(duì)神經(jīng)網(wǎng)絡(luò)中的intersection-over-union loss進(jìn)行了直接優(yōu)化。
其他值得一提的損失有:TopK loss:其目標(biāo)是確保網(wǎng)絡(luò)在訓(xùn)練過(guò)程中專(zhuān)注于困難樣本。Distance penalized CE loss:它將網(wǎng)絡(luò)引向難以分割的邊界區(qū)域。Sensitivity-Specificity (SS) loss:計(jì)算特異性和敏感性的均方差的加權(quán)和。Hausdorff distance(HD) loss:可從卷積神經(jīng)網(wǎng)絡(luò)估計(jì)Hausdorff距離。
這些是在圖像分割中使用的一些損失函數(shù)。了解更多,請(qǐng)查看
https://github.com/JunMa11/SegLoss。
圖像分割的數(shù)據(jù)集
Common Objects in COntext—Coco Dataset
COCO是一個(gè)大型的對(duì)象檢測(cè)、分割和字幕數(shù)據(jù)集。數(shù)據(jù)集包含91個(gè)類(lèi)。它有25萬(wàn)人,都有自己的關(guān)鍵點(diǎn)。它的下載大小是37.57 GiB。它包含80個(gè)對(duì)象類(lèi)別。它在Apache 2.0的許可下可用,可以從這里下載。
http://cocodataset.org/#download
PASCAL Visual Object Classes (PASCAL VOC)
PASCAL有20個(gè)不同的類(lèi),9963張圖片。訓(xùn)練/驗(yàn)證集是一個(gè)2GB的tar文件。數(shù)據(jù)集可以從官方網(wǎng)站下載。
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
The Cityscapes Dataset
這個(gè)數(shù)據(jù)集包含城市場(chǎng)景的圖像。該方法可用于評(píng)價(jià)視覺(jué)算法在城市場(chǎng)景中的性能。數(shù)據(jù)集可以從這里下載。
https://www.cityscapes-dataset.com/downloads/
The Cambridge-driving Labeled Video Database?—?CamVid
這是一個(gè)基于動(dòng)作的分割和識(shí)別數(shù)據(jù)集。它包含32個(gè)語(yǔ)義類(lèi)。以下鏈接包含數(shù)據(jù)集的進(jìn)一步說(shuō)明和下載鏈接。
http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/
圖像分割框架
如果準(zhǔn)備好了數(shù)據(jù)集,那么來(lái)談?wù)勔恍┛捎糜谌腴T(mén)的工具/框架。FastAI庫(kù):給定一個(gè)圖像,該庫(kù)能夠?yàn)閳D像中的對(duì)象創(chuàng)建掩碼。Sefexa圖像分割工具:可用于半自動(dòng)圖像分割,圖像分析和創(chuàng)建地面實(shí)況。Deepmask:Facebook Research的Deepmask是DeepMask和SharpMask的Torch實(shí)現(xiàn)。MultiPath:這是一個(gè)Torch實(shí)現(xiàn),從“用于目標(biāo)檢測(cè)的多路徑網(wǎng)絡(luò)”中提取目標(biāo)檢測(cè)網(wǎng)絡(luò)。OpenCV :這是一個(gè)開(kāi)放源代碼的計(jì)算機(jī)視覺(jué)庫(kù),具有2500多種優(yōu)化算法。MIScnn:醫(yī)學(xué)圖像分割開(kāi)源庫(kù)。它允許在幾行代碼中使用最新的卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)模型建立管道。
Fritz:提供了多種計(jì)算機(jī)視覺(jué)工具,包括用于移動(dòng)設(shè)備的圖像分割工具。
-
圖像
+關(guān)注
關(guān)注
2文章
1078瀏覽量
40375 -
圖像分割
+關(guān)注
關(guān)注
4文章
182瀏覽量
17960
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論