分割算法——可以分割一切目標(各種分割總結)(2)
5)DeepLab (v1 & v2) 2014 & 2016
“計算機視覺戰隊”微信公眾平臺推送過,可以查閱:
谷歌經典的語義分割框架系列1——DeepLab v1
DeepLab v2及調試過程
Deeplab v2 安裝及調試全過程
6)RefineNet 2016年
主要貢獻:
精心設計的譯碼模塊
所有模塊遵循殘余連接設計
膨脹卷積有幾個缺點,如計算量大、需要大量內存。這篇文章采用編碼-譯碼架構。編碼部分是ResNet-101模塊。譯碼采用RefineNet模塊,該模塊融合了編碼模塊的高分辨率特征和前一個RefineNet模塊的抽象特征。每個RefineNet模塊接收多個不同分辨率特征,并融合。
7)PSPNet 2016年
Pyramid Scene Parsing Network 金字塔場景解析網絡
主要貢獻:
提出了金字塔池化模塊來聚合圖片信息
使用附加的損失函數
金字塔池化模塊通過應用大核心池化層來提高感知域。使用膨脹卷積來修改ResNet網,并增加了金字塔池化模塊。金字塔池化模塊對ResNet輸出的特征進行不同規模的池化操作,并作上采樣后,拼接起來,最后得到結果。
本文提出的網絡結構簡單來說就是將DeepLab(不完全一樣)aspp之前的feature map pooling了四種尺度之后將5種feature map concat到一起經過卷積最后進行prediction的過程。
8)Large Kernel Matters 2017
主要貢獻:
提出了使用大卷積核的編碼-譯碼架構
理論上更深的ResNet能有很大的感知域,但研究表明實際上提取的信息來自很小的范圍,因此使用大核來擴大感知域。但是核越大,計算量越大,因此將k x k的卷積近似轉換為1 x k + k x 1和k x 1 + 1 x k卷積的和,稱為GCN。
本文的架構是:使用ResNet作為編譯器,而GCN和反卷積作為譯碼器。還使用了名為Boundary Refinement的殘余模塊。
9)DeepLab v3 2017(這個我們即將給大家接著上次系列繼續分享)
主要貢獻:
改進 ASPP
串行部署 ASPP 的模塊
和DeepLab v2一樣,將膨脹卷積應用于ResNet中。改進的ASPP指的是將不同膨脹率的膨脹卷積結果拼接起來,并使用了BN 。與Dilated convolutions (2015) 不一樣的是,v3直接對中間的特征圖進行膨脹卷積,而不是在最后做。
小總結:
現在把之前較為典型的簡單介紹了一遍,現在接下來我們繼續說今天這個分割技術。
學習分割Everything
讓C是一組目標類別,希望為其訓練一個instance segmentation模型。大多數現有方法假設C中的所有訓練樣本都帶有instance mask。
于是,本次放寬了這一要求,而是假設C=A∪B,其中來自A中類別的樣本有mask,而B中的只有邊界框。由于B類的樣本是弱標記的w.r.t.目標任務(instance segmentation),將強標簽和弱標簽組合的訓練作為一個部分監督的學習問題。注意到可以很容易地將instance mask轉換為邊界框,假設邊界框注釋也適用于A中的類。
給出了一個包含邊界框檢測組件和mask預測組件的MASK R-CNN instance segmentation模型,提出了MaskX R-CNN方法,該方法將特定類別的信息從模型的邊界框檢測器轉移到其instance mask預測器。
權重傳遞來Mask預測
本方法是建立在Mask R-CNN,因為它是一個簡單的instance segmentation模型,也取得了最先進的結果。簡單地說,MASK R-CNN可以被看作是一個更快的R-CNN邊界框檢測模型,它有一個附加的mask分支,即一個小的全卷積網絡(FCN)。
在推理時,將mask分支應用于每個檢測到的對象,以預測instance-level的前景分割mask。在訓練過程中,mask分支與Faster R-CNN中的標準邊界框head并行訓練。在Mask R-CNN中,邊界框分支中的最后一層和mask分支中的最后一層都包含特定類別的參數,這些參數分別用于對每個類別執行邊界框分類和instance mask預測。與獨立學習類別特定的包圍框參數和mask參數不同,我們建議使用一個通用的、與類別無關的權重傳遞函數來預測一個類別的mask參數,該函數可以作為整個模型的一部分進行聯合訓練。
具體如下如所示:
Training
在訓練期間,假設對于A和B兩組類,instance mask注釋僅適用于A中的類,而不適用于B中的類,而A和B中的所有類都有可用的邊界框注釋。如上圖所示,我們使用A∪B中所有類的標準框檢測損失來訓練邊界框head,但只訓練mask head和權重傳遞函數T(·),在A類中使用mask loss,考慮到這些損失,我們探索了兩種不同的訓練過程:分階段訓練和端到端訓練。
分階段訓練
由于Mask R-CNN可以被看作是用mask head增強Faster R-CNN,一種可能的訓練策略是將訓練過程分為檢測訓練(第一階段)和分割訓練(第二階段)。
在第一階段,只使用A∪B中類的邊界框注釋來訓練一個Faster R-cnn,然后在第二階段訓練附加的mask head,同時保持卷積特征和邊界框head的固定。這樣,每個c類的類特定檢測權重wc可以被看作是在訓練第二階段時不需要更新的固定類emdet層疊向量。
該方法具有很好的實用價值,使我們可以對邊界框檢測模型進行一次訓練,然后對權重傳遞函數的設計方案進行快速評估。它也有缺點,這是我們接下來要討論的。
端到端聯合訓練
結果表明,對于MASK R-CNN來說,多任務訓練比單獨訓練更能提高訓練效果。上述分階段訓練機制將檢測訓練和分割訓練分開,可能導致性能低下。
因此,我們也希望以一種端到端的方式,聯合訓練邊界框head和mask head。原則上,可以直接使用A∪B中類的box損失和A中類的mask loss來進行反向傳播訓練,但是,這可能導致A組和B組之間的類特定檢測權重Wc的差異,因為只有c∈A的Wc會通過權重傳遞函數T(·)從mask loss得到梯度。
我們希望Wc在A和B之間是均勻的,這樣在A上訓練的預測Wc=T(Wc;θ)可以更好地推廣到B。
實驗
表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.
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。