分割算法——可以分割一切目標(biāo)(各種分割總結(jié))(2)
5)DeepLab (v1 & v2) 2014 & 2016
“計(jì)算機(jī)視覺戰(zhàn)隊(duì)”微信公眾平臺(tái)推送過,可以查閱:
谷歌經(jīng)典的語義分割框架系列1——DeepLab v1
DeepLab v2及調(diào)試過程
Deeplab v2 安裝及調(diào)試全過程
6)RefineNet 2016年
主要貢獻(xiàn):
精心設(shè)計(jì)的譯碼模塊
所有模塊遵循殘余連接設(shè)計(jì)
膨脹卷積有幾個(gè)缺點(diǎn),如計(jì)算量大、需要大量?jī)?nèi)存。這篇文章采用編碼-譯碼架構(gòu)。編碼部分是ResNet-101模塊。譯碼采用RefineNet模塊,該模塊融合了編碼模塊的高分辨率特征和前一個(gè)RefineNet模塊的抽象特征。每個(gè)RefineNet模塊接收多個(gè)不同分辨率特征,并融合。
7)PSPNet 2016年
Pyramid Scene Parsing Network 金字塔場(chǎng)景解析網(wǎng)絡(luò)
主要貢獻(xiàn):
提出了金字塔池化模塊來聚合圖片信息
使用附加的損失函數(shù)
金字塔池化模塊通過應(yīng)用大核心池化層來提高感知域。使用膨脹卷積來修改ResNet網(wǎng),并增加了金字塔池化模塊。金字塔池化模塊對(duì)ResNet輸出的特征進(jìn)行不同規(guī)模的池化操作,并作上采樣后,拼接起來,最后得到結(jié)果。
本文提出的網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單來說就是將DeepLab(不完全一樣)aspp之前的feature map pooling了四種尺度之后將5種feature map concat到一起經(jīng)過卷積最后進(jìn)行prediction的過程。
8)Large Kernel Matters 2017
主要貢獻(xiàn):
提出了使用大卷積核的編碼-譯碼架構(gòu)
理論上更深的ResNet能有很大的感知域,但研究表明實(shí)際上提取的信息來自很小的范圍,因此使用大核來擴(kuò)大感知域。但是核越大,計(jì)算量越大,因此將k x k的卷積近似轉(zhuǎn)換為1 x k + k x 1和k x 1 + 1 x k卷積的和,稱為GCN。
本文的架構(gòu)是:使用ResNet作為編譯器,而GCN和反卷積作為譯碼器。還使用了名為Boundary Refinement的殘余模塊。
9)DeepLab v3 2017(這個(gè)我們即將給大家接著上次系列繼續(xù)分享)
主要貢獻(xiàn):
改進(jìn) ASPP
串行部署 ASPP 的模塊
和DeepLab v2一樣,將膨脹卷積應(yīng)用于ResNet中。改進(jìn)的ASPP指的是將不同膨脹率的膨脹卷積結(jié)果拼接起來,并使用了BN 。與Dilated convolutions (2015) 不一樣的是,v3直接對(duì)中間的特征圖進(jìn)行膨脹卷積,而不是在最后做。
小總結(jié):
現(xiàn)在把之前較為典型的簡(jiǎn)單介紹了一遍,現(xiàn)在接下來我們繼續(xù)說今天這個(gè)分割技術(shù)。
學(xué)習(xí)分割Everything
讓C是一組目標(biāo)類別,希望為其訓(xùn)練一個(gè)instance segmentation模型。大多數(shù)現(xiàn)有方法假設(shè)C中的所有訓(xùn)練樣本都帶有instance mask。
于是,本次放寬了這一要求,而是假設(shè)C=A∪B,其中來自A中類別的樣本有mask,而B中的只有邊界框。由于B類的樣本是弱標(biāo)記的w.r.t.目標(biāo)任務(wù)(instance segmentation),將強(qiáng)標(biāo)簽和弱標(biāo)簽組合的訓(xùn)練作為一個(gè)部分監(jiān)督的學(xué)習(xí)問題。注意到可以很容易地將instance mask轉(zhuǎn)換為邊界框,假設(shè)邊界框注釋也適用于A中的類。
給出了一個(gè)包含邊界框檢測(cè)組件和mask預(yù)測(cè)組件的MASK R-CNN instance segmentation模型,提出了MaskX R-CNN方法,該方法將特定類別的信息從模型的邊界框檢測(cè)器轉(zhuǎn)移到其instance mask預(yù)測(cè)器。
權(quán)重傳遞來Mask預(yù)測(cè)
本方法是建立在Mask R-CNN,因?yàn)樗且粋€(gè)簡(jiǎn)單的instance segmentation模型,也取得了最先進(jìn)的結(jié)果。簡(jiǎn)單地說,MASK R-CNN可以被看作是一個(gè)更快的R-CNN邊界框檢測(cè)模型,它有一個(gè)附加的mask分支,即一個(gè)小的全卷積網(wǎng)絡(luò)(FCN)。
在推理時(shí),將mask分支應(yīng)用于每個(gè)檢測(cè)到的對(duì)象,以預(yù)測(cè)instance-level的前景分割mask。在訓(xùn)練過程中,mask分支與Faster R-CNN中的標(biāo)準(zhǔn)邊界框head并行訓(xùn)練。在Mask R-CNN中,邊界框分支中的最后一層和mask分支中的最后一層都包含特定類別的參數(shù),這些參數(shù)分別用于對(duì)每個(gè)類別執(zhí)行邊界框分類和instance mask預(yù)測(cè)。與獨(dú)立學(xué)習(xí)類別特定的包圍框參數(shù)和mask參數(shù)不同,我們建議使用一個(gè)通用的、與類別無關(guān)的權(quán)重傳遞函數(shù)來預(yù)測(cè)一個(gè)類別的mask參數(shù),該函數(shù)可以作為整個(gè)模型的一部分進(jìn)行聯(lián)合訓(xùn)練。
具體如下如所示:
Training
在訓(xùn)練期間,假設(shè)對(duì)于A和B兩組類,instance mask注釋僅適用于A中的類,而不適用于B中的類,而A和B中的所有類都有可用的邊界框注釋。如上圖所示,我們使用A∪B中所有類的標(biāo)準(zhǔn)框檢測(cè)損失來訓(xùn)練邊界框head,但只訓(xùn)練mask head和權(quán)重傳遞函數(shù)T(·),在A類中使用mask loss,考慮到這些損失,我們探索了兩種不同的訓(xùn)練過程:分階段訓(xùn)練和端到端訓(xùn)練。
分階段訓(xùn)練
由于Mask R-CNN可以被看作是用mask head增強(qiáng)Faster R-CNN,一種可能的訓(xùn)練策略是將訓(xùn)練過程分為檢測(cè)訓(xùn)練(第一階段)和分割訓(xùn)練(第二階段)。
在第一階段,只使用A∪B中類的邊界框注釋來訓(xùn)練一個(gè)Faster R-cnn,然后在第二階段訓(xùn)練附加的mask head,同時(shí)保持卷積特征和邊界框head的固定。這樣,每個(gè)c類的類特定檢測(cè)權(quán)重wc可以被看作是在訓(xùn)練第二階段時(shí)不需要更新的固定類emdet層疊向量。
該方法具有很好的實(shí)用價(jià)值,使我們可以對(duì)邊界框檢測(cè)模型進(jìn)行一次訓(xùn)練,然后對(duì)權(quán)重傳遞函數(shù)的設(shè)計(jì)方案進(jìn)行快速評(píng)估。它也有缺點(diǎn),這是我們接下來要討論的。
端到端聯(lián)合訓(xùn)練
結(jié)果表明,對(duì)于MASK R-CNN來說,多任務(wù)訓(xùn)練比單獨(dú)訓(xùn)練更能提高訓(xùn)練效果。上述分階段訓(xùn)練機(jī)制將檢測(cè)訓(xùn)練和分割訓(xùn)練分開,可能導(dǎo)致性能低下。
因此,我們也希望以一種端到端的方式,聯(lián)合訓(xùn)練邊界框head和mask head。原則上,可以直接使用A∪B中類的box損失和A中類的mask loss來進(jìn)行反向傳播訓(xùn)練,但是,這可能導(dǎo)致A組和B組之間的類特定檢測(cè)權(quán)重Wc的差異,因?yàn)橹挥衏∈A的Wc會(huì)通過權(quán)重傳遞函數(shù)T(·)從mask loss得到梯度。
我們希望Wc在A和B之間是均勻的,這樣在A上訓(xùn)練的預(yù)測(cè)Wc=T(Wc;θ)可以更好地推廣到B。
實(shí)驗(yàn)
表1 Ablation on input to T
表2 Ablation on the structure of T
表3 Impact of the MLP mask branch
表4 Ablation on the training strategy
Each point corresponds to our method on a random A/Bsplit of COCO classes.
效果圖
Mask predictions from the class-agnostic baseline (top row) vs. our MaskX R-CNN approach (bottom row). Green boxes are classes in set A while the red boxes are classes in set B. The left 2 columns are A = {voc} and the right 2 columns are A = {non-voc}.
Example mask predictions from our MaskX R-CNN on 3000 classes in Visual Genome. The green boxes are the 80 classes that overlap with COCO (set A with mask training data) while the red boxes are the remaining 2920 classes not in COCO (set B without mask training data). It can be seen that our model generates reasonable mask predictions on many classes in set B. See §5 for details.
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。