論文:https://arxiv.org/abs/1512.04412
代碼: https://github.com/daijifeng001/MNC
本文是何凱明發(fā)表于16年CVPR的文章触幼,文章主要講的是多任務(wù)學(xué)習(xí)在實(shí)例感知分割上的應(yīng)用。文章提出了多任務(wù)網(wǎng)絡(luò)Cascades磷脯,由實(shí)例區(qū)分顾翼、掩膜估計(jì)合愈、分類目標(biāo)三個(gè)任務(wù)級(jí)聯(lián)而成颅崩,在MS COCO 2015分割比賽中拿到了冠軍呻疹,結(jié)果優(yōu)于Faster RCNN桶略,下面對(duì)本文進(jìn)行分析。
本文的創(chuàng)新點(diǎn)在于雙線性插值實(shí)現(xiàn)ROI層诲宇,作者將ROI? POOLING層分解成ROI和max pooling兩層际歼,使得整個(gè)網(wǎng)絡(luò)的loss函數(shù)可微,實(shí)現(xiàn)端對(duì)端的訓(xùn)練姑蓝。
首先多任務(wù)學(xué)習(xí)鹅心,多任務(wù)學(xué)習(xí)是一種歸納遷移機(jī)制,主要目標(biāo)是利用隱含在多個(gè)相關(guān)任務(wù)的訓(xùn)練信號(hào)中的特定領(lǐng)域信息來提高泛化能力纺荧,多任務(wù)學(xué)習(xí)通過使用共享表示并行訓(xùn)練多個(gè)任務(wù)來完成這一目標(biāo)旭愧,可以減少模型過擬合的可能,基于深度神經(jīng)網(wǎng)絡(luò)的多任務(wù)學(xué)習(xí)中常用兩種方法:隱層參數(shù)的硬共享與軟共享宙暇。(1)參數(shù)的硬共享機(jī)制:可以應(yīng)用到所有任務(wù)的所有隱層上输枯,而保留任務(wù)相關(guān)的輸出層。(2)參數(shù)的軟共享機(jī)制:每個(gè)任務(wù)都由自己的模型占贫,自己的參數(shù)桃熄。本文所采取的是硬共享機(jī)制。
本文的整體框架如下圖所示型奥,由實(shí)例區(qū)分瞳收、掩膜估計(jì)碉京、分類目標(biāo)級(jí)聯(lián)而成,每一個(gè)任務(wù)都依賴于前一個(gè)任務(wù)的輸出螟深。
分別從三個(gè)階段進(jìn)行介紹谐宙,第一個(gè)階段實(shí)例區(qū)分,此階段的輸入是卷積層產(chǎn)生的共享feature map界弧,在此之前經(jīng)過一個(gè)3*3的卷積層用于降維凡蜻,之后在RPN里經(jīng)過兩個(gè)1*1的卷積層用于生產(chǎn)推薦box。整體思想和Faster RCNN的RPN(Region Proposal Networks)一致垢箕,此階段的損失函數(shù)定義為L1咽瓷,則
B是該階段的網(wǎng)絡(luò)輸出,B = {Bi}舰讹,Bi?= {xi茅姜,yi,wi月匣,hi钻洒,pi},其中{x锄开,y}是box的中心素标,{w,h}是box的寬和高萍悴,p是目標(biāo)概率头遭。
第二個(gè)階段掩膜估計(jì),此階段輸入是第一階段的box和共享卷積特征癣诱,如上圖计维,輸出是像素級(jí)別的分割掩膜。文章用ROI pooling提取box中的特征撕予,同時(shí)將特征圖轉(zhuǎn)化到特定大小鲫惶,然后是兩個(gè)全連接層,第一個(gè)全連接層將特征維度降低到256实抡,第二個(gè)全連接層回歸像素級(jí)的mask欠母,由m2維矢量參數(shù)化,此層有m2個(gè)輸出吆寨,每個(gè)輸出執(zhí)行對(duì)掩模的二進(jìn)制logistic回歸赏淌。因?yàn)榇穗A段輸入有第一階段的box,所以loss函數(shù)也會(huì)受第一階段限制啄清,此階段loss函數(shù)為:
M ={Mi} 是本階段輸出六水,[0,1]之內(nèi)。此階段的ROI pooling扮演著max?pooling等角色,所以使得L2不可微缩擂,后文會(huì)介紹解決方法。
第三階段分類目標(biāo)添寺,此階段輸入是共享特征胯盯,第一階段產(chǎn)生的bouding box 和第二階段產(chǎn)生的mask,輸出為每個(gè)實(shí)例的分類得分计露。由模型圖可知博脑,此階段的輸入是經(jīng)過ROI pooling處理過的特征,所以掩膜的特征可由如下線性函數(shù)表示:
其中FRoI(Θ)?表示經(jīng)過RoI pooling 提取的box的特征票罐。然后作者考慮同時(shí)使用masked feature 和 box-based feature叉趣。通過兩個(gè)4096*的全連接層通過softmax分類器預(yù)測(cè)N+1(1為背景)種類。定義此階段的loss函數(shù)為:
C為此階段的輸出该押,代表所有實(shí)例的類別預(yù)測(cè)列表疗杉,此階段的loss受限于前兩個(gè)階段的結(jié)果。
根據(jù)以上各個(gè)階段的loss函數(shù)蚕礼,最終模型的loss函數(shù)定義為:
對(duì)于上述函數(shù)烟具,想要使用鏈?zhǔn)椒▌t進(jìn)行反向傳播,需要每一部分都是可微的奠蹬,而前文我已提到朝聋,RoI pooling的變化是不可微的,所以作者將ROI pooling分成一個(gè)可微的RoI Warping層和pooling層囤躁,在這之間完成特定的映射冀痕。
RoI Warping層,針對(duì)上文所提到的映射狸演,文章采用雙線性插值的方法言蛇,將給定的寬度wi(Θ)和高度hi(Θ)為中心在(xi(Θ),yi(Θ))處的預(yù)測(cè)框Bi(Θ)的特征映射成:
這里就將n(n=W*H)維向量轉(zhuǎn)化為
維,FRoI為RoI Warping層維的向量輸出宵距。針對(duì)每個(gè)獨(dú)立通道猜极,上式可以轉(zhuǎn)化為:
是指在目標(biāo)特征圖里的位置,即映射之后的結(jié)果消玄,而u, v要遍歷原特征圖跟伏。G函數(shù)是使用雙線性插值法將Bi從
變化成
尺寸大小,G可以拆分為:
其中翩瓜,
將uo映射到全局圖像受扳,高類似:
現(xiàn)在對(duì)于L2,進(jìn)行BP算法就可以轉(zhuǎn)化為:
即可運(yùn)用之前的公式求得兔跌。
在 RoI Warping層之后添加一個(gè)max pooling層勘高,那么 RoI Warping層的輸出設(shè)置為28*28,則max pooling層就可以輸出7*7的特征圖喂給VGG網(wǎng)絡(luò)。自此华望,網(wǎng)絡(luò)就可以完成 End-to-End的訓(xùn)練蕊蝗。
改進(jìn):作者在三層網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn)為5個(gè)階段,其中4赖舟、5階段內(nèi)容與2蓬戚、3階段類似,結(jié)構(gòu)如下圖宾抓。
實(shí)驗(yàn):
細(xì)節(jié):1)第一階段采用非最大值抑制的方法生成300個(gè)box用于第二階段子漩,非最大值抑制的IOU閾值設(shè)置為0.7。2)在ImageNet上進(jìn)行預(yù)訓(xùn)練3)第二石洗、三階段的IOU設(shè)置為0.5幢泼。
PASCAL VOC 2012:作者在ImageNet上預(yù)訓(xùn)練之后,針對(duì)是否共享特征讲衫,是否端對(duì)端的訓(xùn)練和階段數(shù)的問題在兩個(gè)模型上進(jìn)行實(shí)驗(yàn)缕棵,結(jié)果如下表所示:
下表是本文方法與其他方法的對(duì)比,可以看出本文所提出的級(jí)聯(lián)網(wǎng)絡(luò)不僅性能提升涉兽,而且時(shí)間大大減小挥吵。
針對(duì)訓(xùn)練時(shí)間,作者對(duì)每一個(gè)階段所花費(fèi)的時(shí)間進(jìn)行計(jì)算花椭,結(jié)果如下表所示:
針對(duì)目標(biāo)檢測(cè)問題忽匈,作者將本文方法與Faster RCNN系列方法進(jìn)行對(duì)比,結(jié)果如下表矿辽,表明本文的級(jí)聯(lián)結(jié)構(gòu)優(yōu)于Faster RCNN系列方法丹允。
MS COCO:在該數(shù)據(jù)集上作者用VGG-16和ResNet-101進(jìn)行實(shí)驗(yàn),評(píng)估標(biāo)準(zhǔn)的COCO指標(biāo)(mAPr @ IoU = [0.5:0.95])和PASCAL指標(biāo)(mAPr @ IoU = 0.5)袋倔,結(jié)果如下表:
下圖是一些結(jié)果圖雕蔽。