博客專欄

EEPW首頁 > 博客 > CVPR佳作 | One-Shot都嫌多,Zero-Shot實例樣本分割

CVPR佳作 | One-Shot都嫌多,Zero-Shot實例樣本分割

發(fā)布人:CV研究院 時間:2022-03-19 來源:工程師 發(fā)布文章

一、分割回顧

實例分割(Instance Segmentation)

圖片

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

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

兩階段實例分割自上而下(Top-Down)自上而下的實例分割方法的思路是:首先通過目標(biāo)檢測的方法找出實例所在的區(qū)域(bounding box),再在檢測框內(nèi)進(jìn)行語義分割,每個分割結(jié)果都作為一個不同的實例輸出。圖片這類方法的代表作就是大名鼎鼎的Mask R-CNN了,如下圖,總體結(jié)構(gòu)就是Faster R-CNN的兩階段目標(biāo)檢測,box head用來做檢測,增加了mask head用來做分割,模型大家都很熟,細(xì)節(jié)就不再贅述。圖片自下而上(Bottom-Up)自下而上的實例分割方法的思路是:首先進(jìn)行像素級別的語義分割,再通過聚類、度量學(xué)習(xí)等手段區(qū)分不同的實例。圖片自下而上的工作并不多,通常的做法都是通過Instance Embedding的做法來做。舉一篇CVPR2017的文章為例,論文名稱:Semantic Instance Segmentation with a Discriminative Loss Function參考代碼:https://github.com/Wizaron/instance-segmentation-pytorch這篇論文的實例分割做法是:(1)語義分割:首先在第一個階段做了語義分割,得到了所有的物體mask;(2)像素嵌入:再通過使用一個判別式損失函數(shù)來訓(xùn)練網(wǎng)絡(luò),網(wǎng)絡(luò)的優(yōu)化目標(biāo)是將圖像每個像素投影到 n維特征空間后,同屬于一個實例的像素盡量靠近,形成一個 cluster, 每一個實例對應(yīng)一個 cluster, 不同 cluster則盡量遠(yuǎn)離;(3)后處理:最后使用聚類的方法(如mean-shift)來輸出不同的實例。圖片文章的關(guān)鍵在于提出的判別式損失函數(shù),它的組成如下:圖片(1)拉力。懲罰同一實例中所有元素與其平均值之間的距離。也就是說,獲取一個實例的所有像素,并計算平均值。這種拉力會將同一實例中的所有像素點拉近到嵌入空間中的同一個點。簡單說,就是減少每一個實例的嵌入方差。(2)推力。獲取所有中心點 (在嵌入空間embedding中,而不是空間中心),然后將它們推得更遠(yuǎn)。(3)正則化。中心點不應(yīng)該離原點太遠(yuǎn)。文章的超參數(shù)設(shè)置和迭代方法還是有比較多的坑,感興趣的可以去看原文和代碼。更多關(guān)于Instance Embedding的文章可以看看[1]。單階段實例分割下面就聊聊單階段實例分割(Single Shot Instance Segmentation),這方面工作其實也是受到了單階段目標(biāo)檢測研究的影響,因此也有兩種思路,一種是受one-stage, anchot-based 檢測模型如YOLO,RetinaNet啟發(fā),代表作有YOLACT和SOLO;一種是受anchor-free檢測模型如 FCOS 啟發(fā),代表作有PolarMask和AdaptIS。目前(2020年1月)來看,單階段實例分割的精度最高的模型應(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/yolactYOLACT是我最早看的一篇單階段實例分割的文章,主要參照了單階段檢測模型RetinaNet,因此把它歸類于單階段的實例分割。YOLACT將實例分割任務(wù)拆分成兩個并行的子任務(wù):(1)通過一個Protonet網(wǎng)絡(luò), 為每張圖片生成 k 個 原型mask(2)對每個實例,預(yù)測k個的線性組合系數(shù)(Mask Coefficients)最后通過線性組合,生成實例mask,在此過程中,網(wǎng)絡(luò)學(xué)會了如何定位不同位置、顏色和語義實例的mask。具體網(wǎng)絡(luò)結(jié)構(gòu)如下:圖片
(1)Backbone:Resnet 101+FPN,與RetinaNet相同;(2)Protonet:接在FPN輸出的后面,是一個FCN網(wǎng)絡(luò),預(yù)測得到針對原圖的原型mask(3)Prediction Head:相比RetinaNet的Head,多了一個Mask Cofficient分支,預(yù)測Mask系數(shù),因此輸出是4*c+k。圖片此外,論文中還用到了Fast NMS方法,比原有的NMS速度更快,精度減得不多。之后,作者又提出了改進(jìn)版的YOLACT++,改進(jìn)之處主要有:(1)參考Mask Scoring RCNN,添加fast mask re-scoring分支,更好地評價實例mask的好壞;(2)Backbone網(wǎng)絡(luò)中引入可變形卷積DCN;(3)優(yōu)化了Prediction Head中的anchor設(shè)計YOLACT和YOLACT++的實驗效果如下:圖片

二、One shot實例分割

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

動機

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

主要亮點:

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

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

圖片

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

圖片

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

圖片

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

圖片

圖片

三、Zero shot實例分割

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

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

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

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

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

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

圖片

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

圖片

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

圖片

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

圖片


實驗:

圖片

圖片


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

p2p機相關(guān)文章:p2p原理




關(guān)鍵詞: AI

相關(guān)推薦

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

關(guān)閉