[Paper Share - 7]Learning to Segment Every Thing

導(dǎo)讀
本文是FAIR幾位大神的最新作品。文章挺有意思地提出一種部分監(jiān)督學(xué)習(xí)分割的方法。簡單來說就是學(xué)習(xí)一個(gè)將檢測參數(shù)遷移為分割參數(shù)的函數(shù),從而實(shí)現(xiàn)在分割信息不完整的數(shù)據(jù)集上訓(xùn)練,并且測試階段能對訓(xùn)練階段沒有分割信息的類別也能預(yù)測其實(shí)例分割掩膜。論文鏈接

1.Introduction

實(shí)例分割一般來說都需要強(qiáng)監(jiān)督信息,但是強(qiáng)監(jiān)督信息不好獲取,標(biāo)注分割信息成本太高。但是現(xiàn)有很多數(shù)據(jù)集都有Boxes信息,所以作者就像,能不能用起這些boxes信息來訓(xùn)練實(shí)例分割呢?于是,他們想到了這樣一個(gè)部分監(jiān)督實(shí)例分割任務(wù)(partially supervised instance segementation):
1)給定一個(gè)數(shù)據(jù)集,其中某些類別組成的子集包含完整的實(shí)例掩膜信息(instance mask annotation),而剩余類別組成的子集只包含bounding boxes信息。
2)然后實(shí)力分割算法需要利用這個(gè)數(shù)據(jù)集訓(xùn)練一個(gè)模型,能對所有的類別進(jìn)行分割。
為了解決這個(gè)部分監(jiān)督的問題,作者提出一個(gè)基于Mask R-CNN的新的遷移學(xué)習(xí)方法。(關(guān)于Mask R-CNN,后面我會補(bǔ)上這一篇論文的解讀。)Mask R-CNN非常合適用于解決這個(gè)問題,因?yàn)樗鼘?shí)例分割問題分解為兩個(gè)子任務(wù):目標(biāo)檢測和mask預(yù)測。所以,通過學(xué)習(xí)一個(gè)從目標(biāo)檢測參數(shù)到實(shí)例分割的遷移函數(shù)來解決上述問題,所以在測試階段,實(shí)例分割的參數(shù)并不是通過訓(xùn)練期間學(xué)習(xí)到的,而是通過遷移函數(shù)預(yù)測得到的。
作者接下來的工作主要包括兩個(gè)方面,
1.首先在COCO數(shù)據(jù)集上進(jìn)行模擬實(shí)驗(yàn),將COCO數(shù)據(jù)集分成兩部分,一部分有分割標(biāo)注,另一部分丟棄分割標(biāo)注。因?yàn)镃OCO數(shù)據(jù)集包含完整的分割標(biāo)注。所以這部分實(shí)驗(yàn)?zāi)芎芎玫亓炕瘜?shí)驗(yàn)的效果。
2.第二部分實(shí)驗(yàn),作者還用上了VG數(shù)據(jù)集,VG數(shù)據(jù)集包含大量的boxes信息,但是沒有分割標(biāo)注,并且很多類別是同義詞,作者選擇了其中出現(xiàn)頻率最大的3000類來進(jìn)行大規(guī)模的實(shí)驗(yàn)。由于整數(shù)據(jù)及缺少分割標(biāo)注信息,所以很難量化的評估模型的效果。
下圖展示了實(shí)驗(yàn)的一些輸出。其中紅色框是在訓(xùn)練階段是沒有分割標(biāo)注的ground truth信息的,但是模型一樣較好的預(yù)測出了。

VG數(shù)據(jù)集上

2.Related Work

這部分我們就快進(jìn)吧,沒什么干貨??爝M(jìn)>>>

3.Learning to Segment Every Thing

這里先提一下一些標(biāo)記:C是一些我們想要訓(xùn)練的類別的集合,A是其中一個(gè)子集,這個(gè)子集擁有完備的分割標(biāo)注,而B是剩余的一個(gè)子集,B只包含Bounding Boxes,沒有分割標(biāo)注信息。C=AUB。
如下圖2,是文章提出的Mask* R-CNN模型。Mask* R-CNN通過遷移函數(shù)T(·),從Wdet預(yù)測其對應(yīng)類別的分割參數(shù)Wseg,在訓(xùn)練的時(shí)候,T只需要A的mask標(biāo)注,和B的boxes信息,但是在測試時(shí),可以在AUB上進(jìn)行預(yù)測。同時(shí),Mask Head還有個(gè)互補(bǔ)的MLP,這個(gè)MLP的參數(shù)與類別無關(guān)。


圖2

如公式1所示,對于某個(gè)類別的object detection weights,注意這里的weight和類別相關(guān)的,mask weight與其關(guān)系由函數(shù)T表示,其中θ是要學(xué)習(xí)的參數(shù)。

T

但是T這個(gè)函數(shù)和其對應(yīng)的參數(shù)θ卻是與類別無關(guān)的,也就是無論哪個(gè)類別,都可以用這個(gè)函數(shù)來預(yù)測分割參數(shù)。T在實(shí)驗(yàn)中可以是一個(gè)小的全連接網(wǎng)絡(luò)。圖2中的detection weights其實(shí)包含兩種類型的,一個(gè)是ROI分類的參數(shù)Wcls,另一個(gè)是Bounding Boxes的回歸參數(shù)Wbox,在實(shí)驗(yàn)中,可以使用Wdet=Wcls或者Wdet=Wbox,當(dāng)然也可以是兩個(gè)的concat,Wdet=[Wcls,Wdet]。

3.2 Trainning

訓(xùn)練過程中,目標(biāo)檢測部分,使用AUB的boxes的損失;但是,訓(xùn)練實(shí)例分割分支和T函數(shù)時(shí),只是考慮A的mask損失。因此文章進(jìn)行了兩個(gè)馴良方法:1.分兩階段訓(xùn)練,2端到端的訓(xùn)練。

Stage-wise training在分兩步訓(xùn)練的實(shí)驗(yàn)中,第一階段,作者先用AUB的數(shù)據(jù)集訓(xùn)練好一個(gè)Faster RCNN;第二階段,固定CNN主體網(wǎng)絡(luò)和目標(biāo)檢測分支的參數(shù),訓(xùn)練實(shí)例分割分支。這個(gè)方法的好處是,我們可以一次訓(xùn)練好目標(biāo)檢測分支,然后快速的評估T函數(shù)的選擇方法。但是這個(gè)訓(xùn)練方法機(jī)械的分割了兩部分的訓(xùn)練,影響效果。
End-to-End joint training端到端的聯(lián)合訓(xùn)練,這種訓(xùn)練方法一般能提升效果。原則上,我們可以直接對AUB的boxes損失和A的mask損失進(jìn)行反向傳播,但是這會導(dǎo)致一個(gè)矛盾,Wdet通過T函數(shù)只能接收到來自A的mask損失的梯度。而,我們希望Wdet對于A和B應(yīng)該是均衡的,這樣的話,在A上學(xué)習(xí)到的函數(shù)T能很好地遷移到B。因此作者做出了一些改變,在A的mask損失進(jìn)行梯度反向傳播時(shí),只對參數(shù)θ進(jìn)行求導(dǎo),不對Wdet進(jìn)行求導(dǎo)。這樣避免A的mask損失回傳到Wdet。

3.4 Fused FCN+MLP Mask Head

Mask分支,作者考慮兩種配置:1,一個(gè)全卷積網(wǎng)絡(luò),輸出時(shí)MxM的mask。2,MLP,由全連接層組成。但是作者覺得兩種類型的Mask Head應(yīng)該結(jié)合互補(bǔ),F(xiàn)CN能抓住細(xì)節(jié)比如物體邊界,而MLP能抓住主體。在最后實(shí)現(xiàn)細(xì)節(jié)上,對于K類的mask prediction是KxMxM,而MLP的輸出時(shí)1xMxM,所以MLP的輸出將會平鋪K次。并加到每個(gè)類別上。

4.Experiments on COCO

作者想在COCO數(shù)據(jù)集上做實(shí)驗(yàn),將COCO上80個(gè)類別分成20和60,其中前面20個(gè)類別正式PASCAL VOC的20個(gè)類別,另外60個(gè)不包含在VOC中,分別用voc和non-voc表示。

Baseline and oracle本文的baseline是Mask RCNN,起中mask head是一個(gè)FCN,并且這個(gè)Mask RCNN的Wseg是類別無關(guān)的,也即使不管什么類別,Wseg都是相同的。而本文還用了一個(gè)Oracle(神級模型)來做對比,這個(gè)模型用了COCO所有的mask數(shù)據(jù)集來訓(xùn)練,所以,基本上是本文提出的方法的上限。

4.2 Ablation Experments

Input to T 這個(gè)實(shí)驗(yàn)探究T的輸入是什么好。從圖a可以看出,顯然是Wcls+Wbox一塊傳入T函數(shù)會獲得更好的效果。然后看到,雖然本文方法在B上測試不如oracle的效果好,畢竟訓(xùn)練時(shí)沒用到B的mask信息,但是,在A上的測試卻比oracle略好,說明,本文的方法沒有犧牲了強(qiáng)監(jiān)督的效果來換取在B上的表現(xiàn)。

a

Structure of T 這部分比較了T函數(shù)去什么形式的性能。做了兩種實(shí)驗(yàn),1是簡單的仿射變黃,2是一個(gè)2到3層的MLP。同時(shí)作者還測試了ReLU和LeakyReLU。結(jié)果表明2層的MLP+LeakyReLU效果最佳。

b

Impact of the MLP Branch 這部分比較了MLP分支的作用,可以看到MLP能提升效果。

c

Effect of end-to-end training 以上a,b,c的實(shí)驗(yàn)都是用兩階段訓(xùn)練法得到的結(jié)果,然后作者對比了end-to-end的訓(xùn)練方法的效果。從d可以看到,只有當(dāng)停止T對Wdet的梯度傳播才能帶來效果的提升。

d
4.3 Reault of Our Full Method

然后作者將前面的發(fā)現(xiàn)全部集合起來,組成Mask* R-CNN(Mask R-CNN +‘tansfer + MLP’ ,T是'cls+box,2-layer,LearkyReLU')。和baseline,oracle進(jìn)行了對比??梢钥吹組ask* RCNN超越了baseline 20%(相對的),但是oracle顯然是上限。

2

然后下圖展示了一些結(jié)果,上一行的baseline,下一行是Mask* RCNN。

4

5 Large Scale Instance Segmentation

接著作者進(jìn)行了大規(guī)模實(shí)驗(yàn),將COCO作為A數(shù)據(jù)集,然后另外2920個(gè)類的數(shù)據(jù)從VG數(shù)據(jù)集中取出,作為B數(shù)據(jù)集,A和B的類別沒有交集。訓(xùn)練時(shí)采用兩階段訓(xùn)練方法。
定性結(jié)論 可以得到一些有趣的結(jié)論:

  1. Mask* RCNN 學(xué)習(xí)到了一些抽象的概念,比如陰影和小路,這些在分割中很難做到的。
  2. 能分割出獨(dú)立的樹,但是遇到樹林時(shí)就失敗了。
  3. 有時(shí)會做出一些合理的分割,比如將冰箱的把手分割出來。

下展示一些結(jié)果:

5

好了,今晚的論文分享到這里,下次分享Non-local Neural Networks.晚安各位。
------少俠阿朱 2017.12.13 于深圳

轉(zhuǎn)載請注明出處哦 簡書 知乎

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容