極市導(dǎo)讀 不同的處理范式使得語義分割和實(shí)例分割存在很大的gap,極大了影響力圖像分割領(lǐng)域一起發(fā)展。因此本文作者提出將實(shí)例分割任務(wù)和語義分割任務(wù)都用mask分類的范式來處理,并在性能上能夠超過當(dāng)前per-pixel分類的處理范式。 >>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿 寫在前面在處理語義分割任務(wù)和實(shí)例分割任務(wù)的時(shí)候,以前的工作大多采用不同的任務(wù)范式。對(duì)于語義分割,大多都是作為per-pixel的分類任務(wù)來處理;對(duì)于實(shí)例分割,大多都是作為mask的分類任務(wù)來處理。 這種不同的處理范式使得語義分割和實(shí)例分割存在很大的gap,極大了影響力圖像分割領(lǐng)域一起發(fā)展。因此作者就提出了,將實(shí)例分割任務(wù)和語義分割任務(wù)都用mask分類的范式來處理,并在性能上能夠超過當(dāng)前per-pixel分類的處理范式。 0. 基礎(chǔ)知識(shí)1)什么是語義分割(semantic segmentation)、實(shí)例分割(instance segmentation)、全景分割(panoptic segmentation)? (參考:https://zhuanlan.zhihu.com/p/368904941) 語義分割 :對(duì)圖像中的每個(gè)像素打上類別標(biāo)簽,如下圖,把圖像分為人(紅色)、樹木(深綠)、草地(淺綠)、天空(藍(lán)色)標(biāo)簽。 實(shí)例分割 :目標(biāo)檢測(cè)和語義分割的結(jié)合,在圖像中將目標(biāo)檢測(cè)出來(目標(biāo)檢測(cè)),然后對(duì)每個(gè)像素打上標(biāo)簽(語義分割)。對(duì)比上圖、下圖,如以人(person)為目標(biāo),語義分割不區(qū)分屬于相同類別的不同實(shí)例(所有人都標(biāo)為紅色),實(shí)例分割區(qū)分同類的不同實(shí)例(使用不同顏色區(qū)分不同的人)。 全景分割 :語義分割和實(shí)例分割的結(jié)合,即要對(duì)所有目標(biāo)都檢測(cè)出來,又要區(qū)分出同個(gè)類別中的不同實(shí)例。對(duì)比上圖、下圖,實(shí)例分割只對(duì)圖像中的目標(biāo)(如上圖中的人)進(jìn)行檢測(cè)和按像素分割,區(qū)分不同實(shí)例(使用不同顏色),而全景分割是對(duì)圖中的所有物體包括背景都要進(jìn)行檢測(cè)和分割,區(qū)分不同實(shí)例(使用不同顏色) 1. 論文和代碼地址Per-Pixel Classification is Not All You Need for Semantic Segmentation 論文地址:https:///abs/2107.06278 代碼地址:https://github.com/facebookresearch/MaskFormer 2. Motivation目前語義分割大多被看做是一個(gè)像素級(jí)別的分類任務(wù),而實(shí)例分割確是一個(gè)mask級(jí)別的分類任務(wù)。雖然都是分割任務(wù),但是他們的結(jié)構(gòu)卻存在這么大的區(qū)別,因此作者就提出了這樣的疑問:是不是可以都用mask分類來簡(jiǎn)化語義分割和實(shí)例分割的范式呢?是否mask分類能夠在語義分割任務(wù)上表現(xiàn)比per-pixel分類的方法更好呢? 基于上面的問題,作者在這篇論文中提出,其實(shí)mask分類是非常通用的,完全可以用mask分類來統(tǒng)一語義分類和實(shí)例分類的范式。因此,作者提出了MaskFormer,能夠?qū)F(xiàn)有的per-pixel分類的模型轉(zhuǎn)換為mask分類的模型。 為了驗(yàn)證MaskFormer的有效性,作者在五個(gè)語義分割的數(shù)據(jù)集(Cityscapes (19 classes), Mapillary Vistas (65 classes), ADE20K (150 classes), COCO-Stuff-10K (171 classes), ADE20K-Full (847 classes))上做了實(shí)驗(yàn)。在Cityscapes數(shù)據(jù)上,MaskFormer的性能和per-pixel分類的方式性能相近,因?yàn)檫@個(gè)數(shù)據(jù)集的類別比較少。在數(shù)據(jù)集中的類別比較多時(shí),MaskFormer能夠比per-pixel分類的模型性能更好。 基于Swin-Transformer的backbone,MaskFormer在ADE20K這個(gè)數(shù)據(jù)集上達(dá)到了新的SOTA性能(55.6mIoU),比相同backbone下per-pixel分類的方法性能高2.1mIoU,并且少了10%的參數(shù)量和40%的計(jì)算量。 在全景分割任務(wù)上,MaskFormer的性能也比DETR更好,并且在COCO數(shù)據(jù)集上達(dá)到了52.7PQ的SOTA性能,比原來的SOTA高出了1.6PQ。 3. 方法3.1. Per-pixel classification formulation如上圖(左)所示,per-pixel的分類其實(shí)就是把分割任務(wù)看做是一個(gè)對(duì)每一個(gè)像素點(diǎn)都進(jìn)行一次分類的任務(wù),對(duì)于一張的圖片,模型輸出的結(jié)果就是,其中是一個(gè)K維的概率分布,K為數(shù)據(jù)集中類別的數(shù)量。 由于是一個(gè)分類任務(wù),所以per-pixel的損失函數(shù)其實(shí)就是每個(gè)像素點(diǎn)的cross-entropy損失函數(shù)的和,也就是下面的公式: 3.2. Mask classification formulation如上圖(右)所示,mask分類的模型將分割任務(wù)轉(zhuǎn)換成了兩個(gè)步驟,第一是將圖像劃分成N個(gè)不同的區(qū)域,用binary mask表示(這一步只是劃分出了不同類別的區(qū)域,但并沒有做分類 ),第二是將區(qū)域作為一個(gè)整體與K個(gè)類別進(jìn)行對(duì)應(yīng)(這一步就是將不同區(qū)域分為不同的類 )。 最終模型的損失函數(shù)為第一步中分割任務(wù)的損失函數(shù)和第二步中分類任務(wù)的損失函數(shù)的和,可以表示成下面的公式: 3.3. MaskFormerMaskFormer的結(jié)構(gòu)如上圖所示,主要可以分為三個(gè)部分: 1)pixel-level module:用來提取每個(gè)像素embedding(灰色背景部分) 2)transformer module:用來計(jì)算N個(gè)segment的embedding(綠色背景部分) 3)segmentation module:根據(jù)上面的per-pixel embedding和per-segment embedding,生成預(yù)測(cè)結(jié)果。(藍(lán)色背景部分) 3.3.1. Pixel-level module在Pixel-level module中,首先用backbone對(duì)圖片的H和W進(jìn)行壓縮,通道維度進(jìn)行提升,提取視覺特征,這一部分和正常CNN提取特征類似。然后用一個(gè)pixel Decoder去將長寬重新轉(zhuǎn)換為H和W。 3.3.2. Transformer moduleTransformer module的結(jié)構(gòu)就是標(biāo)準(zhǔn)的Transformer Decoder的結(jié)構(gòu),根據(jù)視覺特征和N個(gè)可學(xué)習(xí)的query來計(jì)算輸出。 3.3.3. Segmentation moduleSegmentation module就是一個(gè)FC的結(jié)構(gòu),后面接上softmax激活函數(shù)。它的輸出就是segment的概率估計(jì),因此根據(jù)這個(gè)概率估計(jì)和GroundTruth做分類的損失。 對(duì)于mask的預(yù)測(cè),作者將per-segment embedding通過一個(gè)兩層的MLP轉(zhuǎn)換成了N個(gè)mask embedding。接著,作者將mask embedding和per-pixel embedding進(jìn)行了點(diǎn)乘,后面接上了sigmoid激活函數(shù),來獲得最后mask的預(yù)測(cè)結(jié)果。 4.實(shí)驗(yàn)4.1. 語義分割上表比較了在ADE20K數(shù)據(jù)集上,MaskFormer和per-pixel分類模型的性能。可以看出,MaskFormer在語義分割方面具有顯著的潛力。 除了ADE20K之外,作者還比較了在其他數(shù)據(jù)集上的性能,可以看出在其他數(shù)據(jù)集上MaskFormer相比于per-pixel分類baseline方法,具有很大的優(yōu)越性。 4.2. 全景分割可以看出,MaskFormer在全景分割任務(wù)上也能達(dá)到非常好的效果,并能夠在ADE20K數(shù)據(jù)集上達(dá)到新的SOTA效果。 4.3. 消融實(shí)驗(yàn)4.3.1. Per-pixel vs. mask classification從上表中可以看出,per-pixel的方法轉(zhuǎn)換到MaskFormer的方法能夠帶來性能的提升。 4.3.2. Number of queries為了探究query數(shù)量N對(duì)實(shí)驗(yàn)結(jié)果的影響,作者也做了消融實(shí)驗(yàn)。隨著N數(shù)量的上升,模型的性能先上升在下降,N=100時(shí),模型能夠達(dá)到比較好的性能。 4.3.3. Number of Transformer decoder layers可以看出六層的Transformer Decoder比一層的效果更好。 5. 總結(jié)語義級(jí)分割和實(shí)例分割之間的范式差異導(dǎo)致每個(gè)任務(wù)需要完全不同的模型,阻礙了整個(gè)圖像分割的發(fā)展。作者通過實(shí)驗(yàn)表明,一個(gè)簡(jiǎn)單的mask分類模型可以優(yōu)于SOTA的per-pixel分類模型,特別是在存在大量類別的情況下。本文提出的MaskFormer在全景分割任務(wù)上也保持著很強(qiáng)的競(jìng)爭(zhēng)力,最重要的不需要改變模型架構(gòu)、損失或訓(xùn)練過程。 這篇文章將語義分割是實(shí)例分割的范式進(jìn)行了融合,極大的減小了語義分割和實(shí)例分割的gap,確實(shí)是一篇很有意義的工作。 本文亮點(diǎn)總結(jié) 如果覺得有用,就請(qǐng)分享到朋友圈吧! |
|