博客專欄

EEPW首頁(yè) > 博客 > CVPR2021佳作 | One-Shot都嫌多,Zero-Shot實(shí)例樣本分割

CVPR2021佳作 | One-Shot都嫌多,Zero-Shot實(shí)例樣本分割

發(fā)布人:CV研究院 時(shí)間:2021-06-27 來(lái)源:工程師 發(fā)布文章

給一個(gè)包含了未知種類多個(gè)實(shí)體的沒(méi)訓(xùn)練過(guò)的新樣本(the query image),如何檢測(cè)以及分割所有這些實(shí)例???

一、分割回顧

實(shí)例分割(Instance Segmentation)

1.png

實(shí)例分割(Instance Segmentation)是視覺(jué)經(jīng)典四個(gè)任務(wù)中相對(duì)最難的一個(gè),它既具備語(yǔ)義分割(Semantic Segmentation)的特點(diǎn),需要做到像素層面上的分類,也具備目標(biāo)檢測(cè)(Object Detection)的一部分特點(diǎn),即需要定位出不同實(shí)例,即使它們是同一種類。因此,實(shí)例分割的研究長(zhǎng)期以來(lái)都有著兩條線,分別是自下而上的基于語(yǔ)義分割的方法和自上而下的基于檢測(cè)的方法,這兩種方法都屬于兩階段的方法,下面將分別簡(jiǎn)單介紹。

以下摘自于:CSDN- 三十八元

兩階段實(shí)例分割

自上而下(Top-Down)

自上而下的實(shí)例分割方法的思路是:首先通過(guò)目標(biāo)檢測(cè)的方法找出實(shí)例所在的區(qū)域(bounding box),再在檢測(cè)框內(nèi)進(jìn)行語(yǔ)義分割,每個(gè)分割結(jié)果都作為一個(gè)不同的實(shí)例輸出。

2.png

這類方法的代表作就是大名鼎鼎的Mask R-CNN了,如下圖,總體結(jié)構(gòu)就是Faster R-CNN的兩階段目標(biāo)檢測(cè),box head用來(lái)做檢測(cè),增加了mask head用來(lái)做分割,模型大家都很熟,細(xì)節(jié)就不再贅述。

3.jpg

自下而上(Bottom-Up)

自下而上的實(shí)例分割方法的思路是:首先進(jìn)行像素級(jí)別的語(yǔ)義分割,再通過(guò)聚類、度量學(xué)習(xí)等手段區(qū)分不同的實(shí)例。

4.png

自下而上的工作并不多,通常的做法都是通過(guò)Instance Embedding的做法來(lái)做。舉一篇CVPR2017的文章為例,

論文名稱:Semantic Instance Segmentation with a Discriminative Loss Function

參考代碼:https://github.com/Wizaron/instance-segmentation-pytorch

這篇論文的實(shí)例分割做法是:

(1)語(yǔ)義分割:首先在第一個(gè)階段做了語(yǔ)義分割,得到了所有的物體mask;

(2)像素嵌入:再通過(guò)使用一個(gè)判別式損失函數(shù)來(lái)訓(xùn)練網(wǎng)絡(luò),網(wǎng)絡(luò)的優(yōu)化目標(biāo)是將圖像每個(gè)像素投影到 n維特征空間后,同屬于一個(gè)實(shí)例的像素盡量靠近,形成一個(gè) cluster, 每一個(gè)實(shí)例對(duì)應(yīng)一個(gè) cluster, 不同 cluster則盡量遠(yuǎn)離;

(3)后處理:最后使用聚類的方法(如mean-shift)來(lái)輸出不同的實(shí)例。

5.jpg

文章的關(guān)鍵在于提出的判別式損失函數(shù),它的組成如下:

6.jpg

(1)拉力。懲罰同一實(shí)例中所有元素與其平均值之間的距離。也就是說(shuō),獲取一個(gè)實(shí)例的所有像素,并計(jì)算平均值。這種拉力會(huì)將同一實(shí)例中的所有像素點(diǎn)拉近到嵌入空間中的同一個(gè)點(diǎn)。簡(jiǎn)單說(shuō),就是減少每一個(gè)實(shí)例的嵌入方差。

(2)推力。獲取所有中心點(diǎn) (在嵌入空間embedding中,而不是空間中心),然后將它們推得更遠(yuǎn)。

(3)正則化。中心點(diǎn)不應(yīng)該離原點(diǎn)太遠(yuǎn)。

文章的超參數(shù)設(shè)置和迭代方法還是有比較多的坑,感興趣的可以去看原文和代碼。更多關(guān)于Instance Embedding的文章可以看看[1]。

單階段實(shí)例分割

下面就聊聊單階段實(shí)例分割(Single Shot Instance Segmentation),這方面工作其實(shí)也是受到了單階段目標(biāo)檢測(cè)研究的影響,因此也有兩種思路,一種是受one-stage, anchot-based 檢測(cè)模型如YOLO,RetinaNet啟發(fā),代表作有YOLACT和SOLO;一種是受anchor-free檢測(cè)模型如 FCOS 啟發(fā),代表作有PolarMask和AdaptIS。

目前(2020年1月)來(lái)看,單階段實(shí)例分割的精度最高的模型應(yīng)該是新出的BlendMask(COCO, 41.3),在精度和速度上都超越了Mask R-CNN,已經(jīng)很接近兩階段模型(SOTA應(yīng)該是HTC?)了。

YOLACT&YOLACT++  ICCV 2019

原文:https://arxiv.org/abs/1904.02689

代碼(官方):https://github.com/dbolya/yolact

YOLACT是我最早看的一篇單階段實(shí)例分割的文章,主要參照了單階段檢測(cè)模型RetinaNet,因此把它歸類于單階段的實(shí)例分割。YOLACT將實(shí)例分割任務(wù)拆分成兩個(gè)并行的子任務(wù):

(1)通過(guò)一個(gè)Protonet網(wǎng)絡(luò), 為每張圖片生成 k 個(gè) 原型mask

(2)對(duì)每個(gè)實(shí)例,預(yù)測(cè)k個(gè)的線性組合系數(shù)(Mask Coefficients)

最后通過(guò)線性組合,生成實(shí)例mask,在此過(guò)程中,網(wǎng)絡(luò)學(xué)會(huì)了如何定位不同位置、顏色和語(yǔ)義實(shí)例的mask。

具體網(wǎng)絡(luò)結(jié)構(gòu)如下:

7.png

(1)Backbone:Resnet 101+FPN,與RetinaNet相同;

(2)Protonet:接在FPN輸出的后面,是一個(gè)FCN網(wǎng)絡(luò),預(yù)測(cè)得到針對(duì)原圖的原型mask

(3)Prediction Head:相比RetinaNet的Head,多了一個(gè)Mask Cofficient分支,預(yù)測(cè)Mask系數(shù),因此輸出是4*c+k。

8.png

此外,論文中還用到了Fast NMS方法,比原有的NMS速度更快,精度減得不多。

之后,作者又提出了改進(jìn)版的YOLACT++,改進(jìn)之處主要有:

(1)參考Mask Scoring RCNN,添加fast mask re-scoring分支,更好地評(píng)價(jià)實(shí)例mask的好壞;

(2)Backbone網(wǎng)絡(luò)中引入可變形卷積DCN;

(3)優(yōu)化了Prediction Head中的anchor設(shè)計(jì)

YOLACT和YOLACT++的實(shí)驗(yàn)效果如下:

9.png

二、One shot實(shí)例分割

論文地址:https://arxiv.org/pdf/1811.11507.pdf

動(dòng)機(jī)

該文聚焦在一個(gè)前沿的問(wèn)題:給一個(gè)包含了未知種類多個(gè)實(shí)體的沒(méi)訓(xùn)練過(guò)的新樣本(the query image),如何檢測(cè)以及分割所有這些實(shí)例。這個(gè)問(wèn)題和現(xiàn)實(shí)應(yīng)用密切相關(guān),因?yàn)闄z測(cè)/分割的落地場(chǎng)景中不可能有類似MS-COCO或者OpenImages之類數(shù)據(jù)集包含了非常多的實(shí)例,現(xiàn)實(shí)任務(wù)中的實(shí)例是窮舉不完的,如何從有限種類和數(shù)量的樣本中學(xué)習(xí)到一些知識(shí)并推演到新的種類中是很具有挑戰(zhàn)和實(shí)際意義的。該問(wèn)題的研究大多還是停留在分類任務(wù)上,檢測(cè)和分割少。

主要亮點(diǎn):

1.提出siamese Mask R-CNN框架,能夠僅給一個(gè)樣本,就能夠較好的檢測(cè)&分割新的該樣本同類實(shí)例;

2.構(gòu)建了一個(gè)新的評(píng)測(cè)標(biāo)準(zhǔn)在MS-COCO。

10.png

Different from MRCNN:

正如名字一樣,主體框架就是由SiameseNetwork + Mask R-CNN。改進(jìn)前后的框架比對(duì)如下圖。

11.png

主要的4處不同已經(jīng)用紅色標(biāo)識(shí),即R、Siamese、Matching、L1。R代表了輸入不僅有Query Image還有Reference Image;SiameseNetwork則對(duì)兩者分別進(jìn)行encode;Matching是將編碼后的2個(gè)feature vector進(jìn)行逐一的匹配;L1則是算diff的手段。具體的匹配流程如下圖。

12.png

該框架的結(jié)果如下:

13.png14.png

三、Zero shot實(shí)例分割

研究者提出了一個(gè)新的任務(wù)稱之為零樣本實(shí)例分割(Zero-Shot Instance Segmentation)——ZSI。ZSI的任務(wù)要求在訓(xùn)練過(guò)程中,只用已經(jīng)見(jiàn)過(guò)并有標(biāo)注的數(shù)據(jù)進(jìn)行訓(xùn)練,但在測(cè)試和推理時(shí)能夠同時(shí)分割出見(jiàn)過(guò)和沒(méi)見(jiàn)過(guò)的物體實(shí)例。

首先用數(shù)學(xué)語(yǔ)言對(duì)該任務(wù)進(jìn)行描述,然后提出了一個(gè)方法來(lái)解決ZSI的問(wèn)題。新方法包括零樣本檢測(cè)器(Zero-shot Detector)、Semantic Mask Head、Backgro Aware RPN和Synchronized Background Strategy。實(shí)驗(yàn)結(jié)果表明,提出的方法不僅在ZSI的任務(wù)上效果不錯(cuò),在零樣本檢測(cè)任務(wù)上也取得了比之前已有研究更好的表現(xiàn)。

亮點(diǎn):(部分采用:https://www.jiqizhixin.com/articles/2021-03-17)

1:針對(duì)零樣本實(shí)例分割任務(wù),提出應(yīng)對(duì)的算法,該算法是基于Backgro Aware的檢測(cè)-分割框架;

2:定義了零樣本分割(ZSI)自己獨(dú)特的測(cè)試基準(zhǔn);

3:測(cè)試結(jié)果表明在ZSD任務(wù)上超越了已有的方法,且在ZSI任務(wù)上的結(jié)果很有競(jìng)爭(zhēng)力。

15.png

整個(gè)零樣本實(shí)例分割的框架如下圖所示。對(duì)于一張輸入圖像來(lái)講,首先要使用骨干網(wǎng)絡(luò)(backbone),BA-RPN和ROI Align來(lái)提取視覺(jué)特征和背景的詞向量,然后經(jīng)過(guò)Sync-bg模塊后分別送入零樣本檢測(cè)器和語(yǔ)義分割頭,從而得到實(shí)例分割的結(jié)果。

16.png

零樣本檢測(cè)器的設(shè)計(jì)細(xì)節(jié)如下圖所示,采用了編碼-解碼結(jié)構(gòu),在測(cè)試/推理時(shí)只是用****的Te。

17.png

語(yǔ)義分割頭的結(jié)構(gòu)如下圖4所示,它是一個(gè)encoder-decoder的架構(gòu),在訓(xùn)練階段,使用encoder來(lái)把圖像的特征編碼到語(yǔ)義-文字特征向量。然后使用decoder把上面構(gòu)建的語(yǔ)義-文字特征向量去重建圖像的任務(wù):檢測(cè),分割等。

18.png

實(shí)驗(yàn):

19.png20.png

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 深度學(xué)習(xí)

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉