分割算法——可以分割一切目標(各種分割總結)


https://mp.weixin.qq.com/s/9kPerUT-ljgbBFPgcNgFqQ

 


圖片

 

1


前言

很多關注的朋友一直會問“計算機視覺研究院“有基礎性的內容嗎?”,今天我和大家說一次,我們平台之前有推送很多基礎的知識,有興趣的或者是剛剛接觸CV&DL的你,可以去歷史消息閱讀,在這也感謝所有一直關注和支持我們的小伙伴!接下來就和大家說說目標分割的事吧~

圖片

分割其實在很多領域是非常重要的研究對象,現在也有很多研究者在該領域大展身手,比如何大神,一直在該方面的做的最優秀之一,今天就基於他CVPR 2018的一篇優秀Paper說起。

 

2

 

概述

大多數目標實例分割的方法都要求所有的訓練樣本帶有segmentation masks。這種要求就使得注釋新類別的開銷很大,並且將實例分段模型限制為∼100注釋良好的類。

本次技術目的是提出一種新的部分監督的訓練模式,該模式具有一種新的權重傳遞函數,結合一種新的權重傳遞函數,可以在一大組類別上進行訓練實例分割模型,所有這些類別都有框注釋,但只有一小部分有mask注釋。這些設計允許我們訓練MASK R-CNN,使用VisualGenome數據集的框注釋和COCO數據集中80個類的mask注釋來檢測和分割3000種視覺概念。

最終,在COCO數據集的對照研究中評估了提出的方法。這項工作是邁向對視覺世界有廣泛理解的實例分割模型的第一步。

在正式細說本次分割技術之前,還是簡單說下分割的事,有一個簡單的引言和大家分享下,沒有興趣的您可以直接跳過,閱讀關鍵技術部分,謝謝!

目標檢測器已經變得更加精確,並獲得了重要的新功能。最令人興奮的是能夠預測每個檢測到的目標前景分割mask,這是一個稱為instance segmentation的任務。在實踐中,典型的instance segmentation系統僅限於僅包含大約100個目標類別的廣闊視覺世界的一小部分。

  • 會有很多人問:什么是語義分割?

語義分割其實就是對圖片的每個像素都做分類。其中,較為重要的語義分割數據集有:VOC2012 以及 MSCOCO 。

  • 比較流行經典的幾種方法

傳統機器學習方法:如像素級的決策樹分類,參考TextonForest以及Random Forest based classifiers。再有就是深度學習方法。深度學習最初流行的分割方法是,打補丁式的分類方法 (patch classification) 。逐像素地抽取周圍像素對中心像素進行分類。由於當時的卷積網絡末端都使用全連接層 (full connected layers) ,所以只能使用這種逐像素的分割方法。但是到了2014年,來自伯克利的Fully Convolutional Networks(FCN)【點擊藍色,有鏈接直接可以閱讀全卷積網絡相關資料】卷積網絡,去掉了末端的全連接層。隨后的語義分割模型基本上都采用了這種結構。除了全連接層,語義分割另一個重要的問題是池化層。池化層能進一步提取抽象特征增加感受域,但是丟棄了像素的位置信息。但是語義分割需要類別標簽和原圖像對齊,因此需要從新引入像素的位置信息。有兩種不同的架構可以解決此像素定位問題。

  • 第一種是編碼-譯碼架構。編碼過程通過池化層逐漸減少位置信息、抽取抽象特征;譯碼過程逐漸恢復位置信息。一般譯碼與編碼間有直接的連接。該類架構中U-net 是最流行的。

  • 第二種是膨脹卷積 (dilated convolutions) 【這個核心技術值得去閱讀學習】,拋棄了池化層。使用的卷積核如下圖所示:

圖片

居然都說到這里,那我繼續來簡單說一些相關的文獻吧。

按時間順序總結,大概我能總結9篇paper,看語義分割的結構是如何演變的。分別有FCN 、SegNet U-Net、Dilated Convolutions 、DeepLab (v1 & v2) 、RefineNet PSPNet 、Large Kernel Matters 、DeepLab v3 。

參考文章:(“計算機視覺戰隊”微信公眾平台推送)

1)FCN 2014年

圖片

主要的貢獻:

  • 為語義分割引入了 端到端 的全卷積網絡,並流行開來

  • 重新利用 ImageNet 的預訓練網絡用於語義分割

  • 使用 反卷積層 進行上采樣

  • 引入跳躍連接來改善上采樣粗糙的像素定位

比較重要的發現是,分類網絡中的全連接層可以看作對輸入的全域卷積操作,這種轉換能使計算更為高效,並且能重新利用ImageNet的預訓練網絡。經過多層卷積及池化操作后,需要進行上采樣,FCN使用反卷積(可學習)取代簡單的線性插值算法進行上采樣。

2)SegNet 2015年

圖片

編碼-譯碼架構

主要貢獻:將池化層結果應用到譯碼過程。引入了更多的編碼信息。使用的是pooling indices而不是直接復制特征,只是將編碼過程中 pool 的位置記下來,在 uppooling 是使用該信息進行 pooling 。

3)U-Net 2015 

U-Net有更規整的網絡結構,通過將編碼器的每層結果拼接到譯碼器中得到更好的結果。

圖片

4)Dilated Convolutions 2015年

通過膨脹卷積操作聚合多尺度的信息

圖片

主要貢獻:

  • 使用膨脹卷積

  • 提出 ’context module‘ ,用來聚合多尺度的信息

池化在分類網絡中能夠擴大感知域,同樣降低了分辨率,所以提出了膨脹卷積層。

圖片

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直接對中間的特征圖進行膨脹卷積,而不是在最后做。

小總結:

圖片

現在把之前較為典型的簡單介紹了一遍,現在接下來我們繼續說今天這個分割技術。

 

3

 

學習分割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。

 

4

 

實驗

表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.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM