實(shí)例分割的進(jìn)階三級(jí)跳:從 Mask R-CNN 到 Hybrid Task Cascade
原文鏈接:https://zhuanlan.zhihu.com/p/57629509
CVPR 2019 運(yùn)氣還算比較好,共有 3 篇 paper 被接收,分別在物體檢測(cè)的 module、framework 和 training process 上有所探索。
本文打算介紹一下 Hybrid Task Cascade,是 framework 層面的一篇工作,基于之前 COCO 比賽團(tuán)隊(duì)合作的成果。

背景
實(shí)例分割(Instance Segmentation)是一個(gè)和物體檢測(cè)非常相關(guān)但是更難的問題,在物體檢測(cè)的基礎(chǔ)上,還要求分割出物體的像素,如下圖所示。

實(shí)例分割這個(gè)問題近幾年的發(fā)展在很大程度上是由 COCO 數(shù)據(jù)集和比賽推動(dòng)的。從 MNC,F(xiàn)CIS 到 PANet,都是在 COCO instance segmentation track 上拿第一名的方法。
Mask R-CNN 是個(gè)例外,因?yàn)?paper 公開得比較早,所以是 2017 年前幾名隊(duì)伍的基本方法。同理可知,Hybrid Task Cascade(HTC)在 COCO 2018 的比賽中也取得了第一名。
概述
級(jí)聯(lián)是一種比較經(jīng)典的結(jié)構(gòu),在很多任務(wù)中都有用到,比如物體檢測(cè)中的 CC-Net,Cascade R-CNN,語義分割中的 Deep Layer Cascade 等等。
然而將這種結(jié)構(gòu)或者思想引入到實(shí)例分割中并不是一件直接而容易的事情,如果直接將 Mask R-CNN 和 Cascade R-CNN 結(jié)合起來,獲得的提升是有限的,因此我們需要更多地探索檢測(cè)和分割任務(wù)的關(guān)聯(lián)。
在本篇論文中,我們提出了一種新的實(shí)例分割框架,設(shè)計(jì)了多任務(wù)多階段的混合級(jí)聯(lián)結(jié)構(gòu),并且融合了一個(gè)語義分割的分支來增強(qiáng) spatial context。這種框架取得了明顯優(yōu)于 Mask R-CNN 和 Cascade Mask R-CNN 的結(jié)果。

方法
整個(gè)框架的演進(jìn)可以用四張圖來表示,其中 M 表示 mask 分支,B 表示 box 分支,數(shù)字表示 stage,M1 即為第一個(gè) stage 的 mask 分支。

進(jìn)階準(zhǔn)備:Cascade Mask R-CNN
由于 Cascade R-CNN 在物體檢測(cè)上的結(jié)果非常好,我們首先嘗試將 Cascade R-CNN 和 Mask R-CNN 直接進(jìn)行雜交,得到子代 Cascade Mask R-CNN,如上圖(a)所示。
在這種實(shí)現(xiàn)里,每一個(gè) stage 和 Mask R-CNN 相似,都有一個(gè) mask 分支 和 box 分支。當(dāng)前 stage 會(huì)接受 RPN 或者 上一個(gè) stage 回歸過的框作為輸入,然后預(yù)測(cè)新的框和 mask。
這也是實(shí)驗(yàn)中我們所比較的 baseline,從實(shí)驗(yàn)表格可以看到其實(shí)這個(gè) baseline 已經(jīng)很強(qiáng)了,但是仍然存在明顯的問題,主要在于 Cascade Mask R-CNN 相比 Mask R-CNN 在 box AP 上提高了 3.5 個(gè)點(diǎn),但是在 mask AP 上只提高了 1.2 個(gè)點(diǎn)。
進(jìn)階第一步:Interleaved Execution
Cascade R-CNN 雖然強(qiáng)行在每一個(gè) stage 里面塞下了兩個(gè)分支,但是這兩個(gè)分支之間在訓(xùn)練過程中沒有任何交互,它們是并行執(zhí)行的。
所以我們提出 Interleaved Execution,也即在每個(gè) stage 里,先執(zhí)行 box 分支,將回歸過的框再交由 mask 分支來預(yù)測(cè) mask,如上圖(b)所示。
這樣既增加了每個(gè) stage 內(nèi)不同分支之間的交互,也消除了訓(xùn)練和測(cè)試流程的 gap。
我們發(fā)現(xiàn)這種設(shè)計(jì)對(duì) Mask R-CNN 和 Cascade Mask R-CNN 的 mask 分支都有一定提升。

進(jìn)階第二步:Mask Information Flow
這一步起到了很重要的作用,對(duì)一般 cascade 結(jié)構(gòu)的設(shè)計(jì)和改進(jìn)也具有借鑒意義。我們首先回顧原始 Cascade R-CNN 的結(jié)構(gòu),每個(gè) stage 只有 box 分支。
當(dāng)前 stage 對(duì)下一 stage 產(chǎn)生影響的途徑有兩條:(1)
?的輸入特征是?
?預(yù)測(cè)出回歸后的框通 RoI Align 獲得的;(2)?
?的回歸目標(biāo)是依賴?
?的框的預(yù)測(cè)的。
這就是 box 分支的信息流,讓下一個(gè) stage 的特征和學(xué)習(xí)目標(biāo)和當(dāng)前 stage 有關(guān)。
在 cascade 的結(jié)構(gòu)中這種信息流是很重要的,讓不同 stage 之間在逐漸調(diào)整而不是類似于一種 ensemble。
然而在 Cascade Mask R-CNN 中,不同 stage 之間的 mask 分支是沒有任何直接的信息流的,?
?只和當(dāng)前?
?通過 RoI Align 有關(guān)聯(lián)而與?
?沒有任何聯(lián)系。
多個(gè) stage 的 mask 分支更像用不同分布的數(shù)據(jù)進(jìn)行訓(xùn)練然后在測(cè)試的時(shí)候進(jìn)行 ensemble,而沒有起到 stage 間逐漸調(diào)整和增強(qiáng)的作用。
為了解決這一問題,我們?cè)谙噜彽?stage 的 mask 分支之間增加一條連接,提供 mask 分支的信息流,讓?
?能知道?
?的特征。
具體實(shí)現(xiàn)上如下圖中紅色部分所示,我們將?
?的特征經(jīng)過一個(gè) 1x1 的卷積做 feature embedding,然后輸入到?
?,這樣?
?既能得到 backbone 的特征,也能得到上一個(gè) stage 的特征。

進(jìn)階第三步:Semantic Feature Fusion
這一步是我們嘗試將語義分割引入到實(shí)例分割框架中,以獲得更好的 spatial context。
因?yàn)檎Z義分割需要對(duì)全圖進(jìn)行精細(xì)的像素級(jí)的分類,所以它的特征是具有很強(qiáng)的空間位置信息,同時(shí)對(duì)前景和背景有很強(qiáng)的辨別能力。
通過將這個(gè)分支的語義信息再融合到 box 和 mask 分支中,這兩個(gè)分支的性能可以得到較大提升。
在具體設(shè)計(jì)上,為了最大限度和實(shí)例分割模型復(fù)用 backbone,減少額外參數(shù),我們?cè)谠嫉?FPN 的基礎(chǔ)上增加了一個(gè)簡(jiǎn)單的全卷積網(wǎng)絡(luò)用來做語義分割。
首先將 FPN 的 5 個(gè) level 的特征圖 resize 到相同大小并相加,然后經(jīng)過一系列卷積,再分別預(yù)測(cè)出語義分割結(jié)果和語義分割特征。
這里我們使用 COCO-Stuff 的標(biāo)注來監(jiān)督語義分割分支的訓(xùn)練。
紅色的特征將和原來的 box 和 mask 分支進(jìn)行融合(在下圖中沒有畫出),融合的方法我們也是采用簡(jiǎn)單的相加。

進(jìn)階結(jié)果
通過上面的幾步,在使用 ResNet-50 的 backbone 下,相對(duì) Cascade Mask R-CNN 可以有 1.5 個(gè)點(diǎn)的 mask AP 提升,相對(duì) Mask R-CNN 可以有 2.9 個(gè)點(diǎn)的提升。在 COCO 2017 val 子集上的逐步對(duì)比試驗(yàn)如下表所示。

除了純凈版 HTC 之外,在 paper 里我們還給出了在 COCO Challenge 里面用到的所有步驟和技巧的漲點(diǎn)情況(良心買賣有木有)。

總結(jié)
多任務(wù)多階段的混合級(jí)聯(lián)結(jié)構(gòu)
訓(xùn)練時(shí)每個(gè) stage 內(nèi) box 和 mask 分支采用交替執(zhí)行
在不同 stage 的 mask 分支之間引入直接的信息流
語義分割的特征和原始的 box/mask 分支融合,增強(qiáng) spatial context
Code
已經(jīng) release 到 mmdetection:
https://github.com/open-mmlab/mmdetection
Arxiv
https://arxiv.org/abs/1901.07518
如果你打算轉(zhuǎn)行CV,或者你已經(jīng)有一定基礎(chǔ)想要挑戰(zhàn)高薪,可以看下七月在線【CV就業(yè)小班?第六期】課程,可以保證就業(yè)!
此課程在教學(xué)模式、實(shí)戰(zhàn)項(xiàng)目、講師團(tuán)隊(duì)、就業(yè)服務(wù),在國內(nèi)都是非常領(lǐng)先的,還專門為學(xué)員提供一年的GPU云平臺(tái)使用。


六大實(shí)戰(zhàn)項(xiàng)目


專家級(jí)講師陣容

往期學(xué)員就業(yè)薪資

(篇幅有限,只節(jié)選部分)

掃碼查看課程詳情,同時(shí)大家也可以去看看之前學(xué)員的面試經(jīng)驗(yàn)分享。
戳↓↓“閱讀原文”和老師申請(qǐng)優(yōu)惠!
