【CV】图像分割2020,架构,损失函数,数据集,框架的整理和总结
作者:Derrick Mwiti??編譯:ronghuaiyang
正文共:3651 字 18 圖
預(yù)計(jì)閱讀時(shí)間:11 分鐘
導(dǎo)讀
包括架構(gòu),損失函數(shù),數(shù)據(jù)集,框架的整理和總結(jié)。
在這篇文章中,我們將深入探討使用深度學(xué)習(xí)進(jìn)行圖像分割。我們將討論:
什么是圖像分割,以及兩種主要類型的圖像分割
圖像分割的結(jié)構(gòu)
用于圖像分割的損失函數(shù)
你可以用到你的圖像分割項(xiàng)目中的框架
就讓我們一探究竟吧。
什么是圖像分割?
顧名思義,這是將圖像分割成多個(gè)部分的過(guò)程。在這個(gè)過(guò)程中,圖像中的每個(gè)像素都與一個(gè)物體類型相關(guān)聯(lián)。圖像分割主要有兩種類型:語(yǔ)義分割和實(shí)例分割。
在語(yǔ)義分割中,同一類型的所有物體都使用一個(gè)類標(biāo)簽進(jìn)行標(biāo)記,而在實(shí)例分割中,相似的物體使用自己的獨(dú)立標(biāo)簽。
圖像分割結(jié)構(gòu)
圖像分割的基本結(jié)構(gòu)包括編碼器和解碼器。
編碼器通過(guò)濾波器從圖像中提取特征。解碼器負(fù)責(zé)生成最終的輸出,通常是一個(gè)包含物體輪廓的分割掩碼。大多數(shù)體系結(jié)構(gòu)都具有這種結(jié)構(gòu)或其變體。
讓我們看幾個(gè)例子。
U-Net
U-Net是最初為分割生物醫(yī)學(xué)圖像而開(kāi)發(fā)的卷積神經(jīng)網(wǎng)絡(luò)。當(dāng)它的結(jié)構(gòu)可視化時(shí),它看起來(lái)像字母U,因此取名為U-Net。它的結(jié)構(gòu)由兩部分組成,左邊的部分是收縮路徑,右邊的部分是擴(kuò)展路徑。收縮路徑的目的是捕獲上下文,而擴(kuò)展路徑的作用是幫助精確定位。
U-Net由右邊的擴(kuò)展路徑和左邊的收縮路徑組成。收縮路徑由兩個(gè)3×3的卷積組成。卷積之后是一個(gè)ReLU和一個(gè)用于下采樣的2×2最大池化。
你可以在這里找到U-Net的完整實(shí)現(xiàn):https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/。
FastFCN — Fast Fully-connected network
在這個(gè)架構(gòu)中,使用聯(lián)合金字塔上采樣(JPU)模塊來(lái)代替膨脹卷積,因?yàn)樗鼈兿拇罅績(jī)?nèi)存和時(shí)間。它的核心是一個(gè)全連接網(wǎng)絡(luò),同時(shí)使用JPU進(jìn)行上采樣。JPU將低分辨率的特征圖上采樣到高分辨率的特征圖。
如果你想親自動(dòng)手做一些代碼實(shí)現(xiàn):https://github.com/wuhuikai/FastFCN。
Gated-SCNN
這個(gè)架構(gòu)由一個(gè)雙流CNN架構(gòu)組成。在這個(gè)模型中,一個(gè)單獨(dú)的分支被用來(lái)處理圖像的形狀信息。形狀流用于處理邊界信息。
代碼:https://github.com/nv-tlabs/gscnn。
DeepLab
在這種結(jié)構(gòu)中,卷積與上采樣濾波器用于密集預(yù)測(cè)的任務(wù)。多尺度物體的分割是通過(guò)空間金字塔匯聚來(lái)完成的。最后,使用DCNNs來(lái)改進(jìn)物體邊界的定位。通過(guò)插入零或?qū)斎胩卣鲌D進(jìn)行稀疏采樣來(lái)對(duì)濾波器進(jìn)行上采樣,從而實(shí)現(xiàn)Atrous卷積。
代碼:https://github.com/fregu856/deeplabv3(PyTorch),https://github.com/sthalles/deeplab_v3(TensorFlow)
Mask R-CNN
在這個(gè)結(jié)構(gòu)中,使用一個(gè)邊界框和語(yǔ)義分割對(duì)物體進(jìn)行分類和局部化,該邊界框和語(yǔ)義分割將每個(gè)像素劃分為一組類別。每個(gè)感興趣的區(qū)域都有一個(gè)分割掩碼。最終的輸出是一個(gè)類標(biāo)簽和一個(gè)包圍框。該架構(gòu)是Faster R-CNN的擴(kuò)展。
這是在COCO測(cè)試集上得到的結(jié)果的圖像。
圖像風(fēng)格的損失函數(shù)
語(yǔ)義分割模型在訓(xùn)練過(guò)程中通常使用一個(gè)簡(jiǎn)單的交叉熵?fù)p失函數(shù)。但是,如果你對(duì)獲取圖像的粒度信息感興趣,則必須使用到稍微高級(jí)一些的損失函數(shù)。
我們來(lái)看幾個(gè)例子。
Focal Loss
這種損失是對(duì)標(biāo)準(zhǔn)交叉熵的一種改進(jìn)。這是通過(guò)改變其形狀來(lái)實(shí)現(xiàn)的,這樣分配給分類良好的樣本的損失的權(quán)重就會(huì)降低。最終,這確保了不存在類別不平衡。在這個(gè)損失函數(shù)中,隨著對(duì)預(yù)測(cè)正確的類別的信心增加,交叉熵?fù)p失的比例因子在0處衰減。比例因子自動(dòng)降低了訓(xùn)練時(shí)簡(jiǎn)單樣本的權(quán)重,并將重點(diǎn)放在困難的樣本上。
Dice loss
這個(gè)損失是通過(guò)計(jì)算smooth dice coefficient函數(shù)得到的。這種損失是分割問(wèn)題中最常用的損失。
Interp over Union (IoU)-balanced Loss
IoU平衡分類損失的目的是增加高IoU樣本的梯度,減少低IoU樣本的梯度。這樣可以提高機(jī)器學(xué)習(xí)模型的定位精度。
Boundary loss
邊界損失的一種變體適用于具有高度不平衡分割的任務(wù)。這種損失的形式是空間輪廓上的距離度量,而不是區(qū)域。通過(guò)這種方式,它解決了高度不平衡的分割任務(wù)的區(qū)域損失所帶來(lái)的問(wèn)題。
Weighted cross-entropy
交叉熵的一種變體,所有正樣本都用一個(gè)確定的系數(shù)來(lái)加權(quán)。它用于類別不平衡的情況。
Lovász-Softmax loss
這個(gè)損失直接在神經(jīng)網(wǎng)絡(luò)中基于子模塊的凸Lovasz擴(kuò)展損失來(lái)優(yōu)化平均IOU損失。
其他值得一提的損失有:
TopK loss 其目的是確保網(wǎng)絡(luò)在訓(xùn)練過(guò)程中集中于困難樣本。
Distance penalized CE loss 讓網(wǎng)絡(luò)去重點(diǎn)優(yōu)化難以分割的邊界區(qū)域。
Sensitivity-Specificity (SS) loss 計(jì)算特異性和敏感性的均方差的加權(quán)和。
Hausdorff distance(HD) loss 估計(jì)了卷積神經(jīng)網(wǎng)絡(luò)的Hausdorff距離。
這些只是在圖像分割中使用的一些損失函數(shù)。要了解更多,請(qǐng)查看這個(gè):https://github.com/JunMa11/SegLoss。
圖像分割數(shù)據(jù)集
如果你還在看,你可能會(huì)問(wèn)自己從哪里可以獲得一些數(shù)據(jù)集來(lái)開(kāi)始。
讓我們來(lái)看一些。
Common Objects in COntext — Coco Dataset
COCO是一個(gè)大型的物體檢測(cè)、分割和圖像描述數(shù)據(jù)集。包含91個(gè)類。它有25萬(wàn)人擁有關(guān)鍵點(diǎn),它包含80個(gè)對(duì)象類別。
鏈接:https://www.tensorflow.org/datasets/catalog/coco
PASCAL Visual Object Classes (PASCAL VOC)
PASCAL有20個(gè)不同的類,9963張圖片。訓(xùn)練/驗(yàn)證集是一個(gè)2GB的tar文件。
鏈接:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
The Cityscapes Dataset
這個(gè)數(shù)據(jù)集包含城市場(chǎng)景的圖像。它可以用來(lái)評(píng)價(jià)視覺(jué)算法在城市場(chǎng)景中的性能。
鏈接:https://www.cityscapes-dataset.com/downloads/
The Cambridge-driving Labeled Video Database — CamVid
這是一個(gè)基于運(yùn)動(dòng)的分割和識(shí)別數(shù)據(jù)集。它包含32個(gè)語(yǔ)義類。
鏈接:http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/
圖像分割框架
現(xiàn)在,您已經(jīng)準(zhǔn)備好了數(shù)據(jù)集,接下來(lái)讓我們介紹一些可以用于入門的工具/框架。
FastAI library ?— 給定一個(gè)圖像,這個(gè)庫(kù)能夠給圖像中的物體創(chuàng)建一個(gè)掩碼。
Sefexa Image Segmentation Tool](http://www.fexovi.com/sefexa.html) — Sefexa是一個(gè)免費(fèi)的工具,可以用于半自動(dòng)圖像分割,圖像分析,并創(chuàng)建ground truth。
Deepmask — Deepmask是Facebook Research的Deepmask和SharpMask的一個(gè)Torch的實(shí)現(xiàn)。
MultiPath — 這是一個(gè)Torch實(shí)現(xiàn)的物體檢測(cè)網(wǎng)絡(luò)來(lái)自“A MultiPath Network for Object Detection”。
OpenCV — 這是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),有超過(guò)2500個(gè)優(yōu)化過(guò)的算法。
MIScnn — 是一個(gè)醫(yī)學(xué)圖像分割開(kāi)源庫(kù)。它允許使用最先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)模型在幾行代碼中建立pipeline。
Fritz — Fritz提供多種計(jì)算機(jī)視覺(jué)工具,包括用于移動(dòng)設(shè)備的圖像分割工具。
最后的一點(diǎn)想法
希望本文為你提供了一些圖像分割的背景知識(shí),并提供了一些工具和框架,你可以使用這些工具和框架來(lái)入門。
我們討論了:
什么是圖像分割
幾個(gè)圖像分割架構(gòu)
一些圖像分割損失
圖像分割工具和框架
分割快樂(lè)!
—END—
英文原文:https://neptune.ai/blog/image-segmentation-in-2020?utm_source=medium&utm_medium=crosspost&utm_campaign=blog-image-segmentation-2020
?
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯AI基礎(chǔ)下載(pdf更新到25集)機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯本站qq群1003271085,加入微信群請(qǐng)回復(fù)“加群”獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開(kāi):https://t.zsxq.com/yFQV7am喜歡文章,點(diǎn)個(gè)在看總結(jié)
以上是生活随笔為你收集整理的【CV】图像分割2020,架构,损失函数,数据集,框架的整理和总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 真相了!算法工程师的一天
- 下一篇: 【算法入门】动态图展示 6 个常用的数据