感知算法论文(一)YOLACT: Real-time Instance Segmentation(2019)译文
文章目錄
- 摘要
- 1. 引言
- 2. 相關(guān)工作
- 3. YOLACT
- 3.1 模板的產(chǎn)生
- 3.2 Mask 系數(shù)
- 3.3 Mask集成
- 3.4 其他情況
- 4. 檢測器
- 5. 其他貢獻(xiàn)
- 6. 結(jié)果
- 6.1 實(shí)例分割結(jié)果
- 6.2 Mask質(zhì)量
- 6.3 動(dòng)態(tài)穩(wěn)定性
- 6.4 實(shí)現(xiàn)細(xì)節(jié)
- 7. 結(jié)論
摘要
本文提出了一個(gè)簡單的全卷積網(wǎng)絡(luò)來實(shí)現(xiàn)實(shí)時(shí)的實(shí)例分割(From 加州大學(xué)戴維斯分校)
MS COCO數(shù)據(jù)集——mAP=29.8%,33fps,在單個(gè)Titan Xp上實(shí)驗(yàn),比目前任一方法都要快速,并且只使用了單個(gè)GPU。
為何獲得如此好的效果: 將實(shí)例分割任務(wù)分成了兩個(gè)并行的過程:
- 產(chǎn)生一系列模板mask
- 預(yù)測每個(gè)實(shí)例mask的系數(shù)
之后將模板mask和實(shí)例mask系數(shù)進(jìn)行線性組合來獲得實(shí)例的mask,在此過程中,網(wǎng)絡(luò)學(xué)會(huì)了如何定位不同位置、顏色和語義實(shí)例的mask。
關(guān)鍵點(diǎn):
-
該方法不依賴于repooling,并且可以產(chǎn)生高質(zhì)量和高動(dòng)態(tài)穩(wěn)定性的masks。
-
本文盡管用全卷積網(wǎng)絡(luò)實(shí)現(xiàn),但模板mask可以自己在具有平移變換情況下對實(shí)例進(jìn)行定位
-
本文提出了一種Fast NMS,比標(biāo)準(zhǔn)NMS快12ms,且性能損失很小
1. 引言
目前在實(shí)例分割方面取得最好效果的入Mask R-CNN和FCIS,都是直接從目標(biāo)檢測的方法,如Faster R-CNN或R-FCN等中衍生的。
但這些方法主要聚焦于網(wǎng)絡(luò)的精度而非速度,使得缺乏與實(shí)時(shí)目標(biāo)檢測器(SSD或YOLO等)類似的實(shí)例分割方法。
本文的目標(biāo)是跨越這個(gè)一直被忽略的實(shí)時(shí)實(shí)例分割的任務(wù),建立一個(gè)快速的單級(jí)實(shí)例分割模型,類似于SSD和YOLO系列對彌補(bǔ)目標(biāo)檢測無單級(jí)網(wǎng)絡(luò)所做的工作。
實(shí)現(xiàn)好的實(shí)例分割有一定的困難,且比目標(biāo)檢測困難許多。單級(jí)的目標(biāo)檢測器SSD和YOLO的出現(xiàn)使得目標(biāo)檢測的時(shí)間相對于使用兩級(jí)檢測器(Faster R-CNN等)有了大幅度的下降,單級(jí)檢測器是通過去除第二級(jí)并在其他方面做了些彌補(bǔ)而獲得了高速檢測過程。
目前最好的兩級(jí)實(shí)例分割方法,在產(chǎn)生模板mask上非常依賴于特征定位準(zhǔn)確與否,也就是在一些b-box區(qū)域要對特征進(jìn)行“repooling”(RoI pooling/align),之后將新的定位特征送入mask預(yù)測器中,這個(gè)過程是內(nèi)在有序的,故很難加速。
單級(jí)的方法將該過程變?yōu)槿鏔CIS那樣并行的,但是這樣一來就需要在定位之后進(jìn)行很多后處理,仍然和“實(shí)時(shí)”有一定的差距。
本文提出的YOLACT(You Only Look At CoefficienTs)能夠?qū)崟r(shí)解決實(shí)例分割問題,放棄了定位的步驟。
YOLACT將實(shí)例分割分為兩個(gè)并行任務(wù):
1)針對整幅圖像生成模板mask
2)對每個(gè)實(shí)例預(yù)測一系列的mask系數(shù)
之后,可以簡潔的從上述兩步中產(chǎn)生整幅圖像的實(shí)例分割:對每個(gè)實(shí)例,將模板mask和預(yù)測的相應(yīng)系數(shù)進(jìn)行線性組合,并與預(yù)測的b-box進(jìn)行裁剪。
本文后續(xù)展示了通過以這種方式進(jìn)行分割的過程,網(wǎng)絡(luò)學(xué)會(huì)了自己定位實(shí)例mask,在這種情況下,視覺上、空間上和語義上相似的實(shí)例將在模板中呈現(xiàn)不同。
由于模板mask的數(shù)量不依賴于類別數(shù)量,也就是類別可能比模板數(shù)量多,YOLACT學(xué)習(xí)到的是一種分布式的表示,其中每個(gè)實(shí)例都有多個(gè)模板原型組合分割,這些模板在不同類別之間共享。
該分布式表示導(dǎo)致模板域出現(xiàn)了一些情況:一些模板在空間上劃分開了圖像,一些定位實(shí)例,一些檢測實(shí)例的輪廓,一些編碼對位置敏感的方向圖譜,可能同時(shí)也會(huì)劃分圖像,如Fig.5。
Fig.5 :模板的效果,六種不同的模板對不同圖像特征的響應(yīng)。
- 1,4,5可以檢測出來輪廓清晰的目標(biāo)
- 2能檢測出左下方向的特征
- 3能夠區(qū)分前景和背景,并提供實(shí)例的輪廓
- 6能夠區(qū)分出來背景
本文方法的優(yōu)勢:
1)快速:
因?yàn)檫@是一個(gè)并行過程,并且結(jié)構(gòu)很簡潔。YOLACT僅僅給單級(jí)主干檢測器增加了少量的計(jì)算開銷,即使使用ResNet-101這樣的大型網(wǎng)絡(luò),也可以達(dá)到30fps。
實(shí)時(shí)的定義是>30fps,在MS COCO數(shù)據(jù)集[26](Fig.1)上獲得了很好的效果。
另外,我們在速度和性能上進(jìn)行了權(quán)衡,利用不同的主干框架,不同數(shù)量的模板和圖像分辨率。
2)高質(zhì)量的mask:
因?yàn)檫@些mask使用整個(gè)圖像空間域,且圖像并未從repooling中造成質(zhì)量損失(Fig.7)。
3)易于泛化:
生成模板mask和mask系數(shù)的理論可以用于目標(biāo)任何的目標(biāo)檢測器。
本文將實(shí)例分割分為兩個(gè)并行通道實(shí)現(xiàn)的方法形象的表示:
- 線性系數(shù)及其對應(yīng)的檢測分支,可以看成被用來識(shí)別單個(gè)物體的類別
- 模板mask,可以看成被用來在空間中定位實(shí)例
這就可以近似看成人類視覺辨別物體“先定位再分割”的過程
2. 相關(guān)工作
實(shí)例分割:
Mask-RCNN是兩級(jí)實(shí)例分割的代表方法,第一級(jí)首先生成候選區(qū)域RoI,第二級(jí)對這些RoI進(jìn)行分類和分割。
其之后的方法試圖提升準(zhǔn)確性,如豐富FPN特征[27],或?qū)ask的置信得分和定位準(zhǔn)確度之間權(quán)衡。
這些兩級(jí)的方法需要對每個(gè)RoI特征進(jìn)行re-pooling,并且在縮小圖像尺寸的情況下也難以達(dá)到實(shí)時(shí)的效果。
單級(jí)的實(shí)例分割方法產(chǎn)生了對位置敏感的mask,利用位置敏感的pooling來將這些mask組合成最終的mask,或者結(jié)合語言分割和方向預(yù)測logits[4]。
理論上,單級(jí)的方法比兩級(jí)的方法快,因?yàn)閮杉?jí)的方法需要repooling或其他計(jì)算(如mask投票),這些就會(huì)限制速度,使得其難以接近實(shí)時(shí)的速度。
本文的方法將兩個(gè)步驟并行進(jìn)行,更為簡潔并且可以在單個(gè)GPU上進(jìn)行矩陣相乘,保證了速度。
實(shí)時(shí)實(shí)例分割:
盡管目前已經(jīng)出現(xiàn)了實(shí)時(shí)目標(biāo)檢測[28,32,33,34]方法和語義分割[2,29,31,10,45]方法,但是實(shí)時(shí)實(shí)例分割方法仍然很少。
直接基于形狀進(jìn)行分割[19]的方法可以利用學(xué)習(xí)到的形狀進(jìn)行實(shí)例分割,達(dá)到30fps的速度,但是準(zhǔn)確率很差。
Box2Pix[40]方法基于非常簡潔的主干檢測器(GoogLeNet v1 [38] and SSD [28]),結(jié)合手工特征,在8類別的Cityscapes [5] 上獲取了10.9fps的速度,在8類別的KITTI [13]上獲得了35fps的速度,但是其文章中并沒有對語義豐富的包含80類的COCO數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),可想而知難以實(shí)現(xiàn)高效的分割。
Mask R-CNN實(shí)際上是目前在豐富數(shù)據(jù)集上最快的實(shí)例分割方法(550x550大小的圖像上,達(dá)到13.5fps,Table. 2c)
模板Mask:
計(jì)算機(jī)視覺中,學(xué)習(xí)模板已經(jīng)應(yīng)用的很廣泛了,傳統(tǒng)的方式包括texton[21]和視覺單詞[37],這些方法通過稀疏和位置先驗(yàn)信息達(dá)到較好的效果[42,41,44],其他的方法是為目標(biāo)檢測而設(shè)計(jì)的模板[1, 43, 36]。
這些方法利用模板來表示特征,我們利用模板來進(jìn)行實(shí)例分割,是有些相關(guān)性的,且我們是學(xué)習(xí)模板來適應(yīng)于每個(gè)圖像,而不是對整個(gè)數(shù)據(jù)集用共享的模板。
3. YOLACT
本文的目標(biāo)是對目前已有的單級(jí)目標(biāo)檢測網(wǎng)絡(luò)添加一個(gè)產(chǎn)生mask的分支,就像Mask R-CNN對Faster R-CNN所做的工作一樣,但是不包含定位步驟(如feature repooling)。
我們將復(fù)雜的實(shí)例分割過程拆分為兩個(gè)簡單的并行過程,獲得最終的mask。
-
第一個(gè)分支利用FCN來產(chǎn)生一系列與圖像大小一致的“prototype masks”,且不依賴于任一特定實(shí)例。
-
第二個(gè)分支是給目標(biāo)檢測分支添加一個(gè)輸出,對每個(gè)anchor來預(yù)測“mask coefficients”,也就是對實(shí)例的表示編碼為prototype域的表達(dá)。
-
最后,對每個(gè)實(shí)例,使用NMS對所預(yù)測的mask進(jìn)行處理。
原理:
本文用該方法來實(shí)現(xiàn)實(shí)例分割的首要原因是mask之間是空域相關(guān)的,也就是像素距離越近,越可能是一個(gè)實(shí)例的某一部分。
然而卷積層可以很好的從這些相關(guān)性中提取出特征,全連接層卻不能。這就出現(xiàn)了一個(gè)問題,因?yàn)閱渭?jí)目標(biāo)檢測方法的fc層輸出對每個(gè)anchor的類別和框位置的預(yù)測,兩級(jí)方法(如Mask R-CNN)利用定位步驟(RoI Align)解決了這個(gè)問題,保持了特征的空域相關(guān)性也允許mask作為卷積層的輸出。但是這樣一來就需要一個(gè)很重要的分結(jié)構(gòu)來等待第一級(jí)RPN輸出的候選區(qū)域,很大程度上加大了時(shí)間開銷。
本文將該問題分解為兩個(gè)并行步驟,使用了fc層,該層在產(chǎn)生語義向量上很有優(yōu)勢,卷積層在產(chǎn)生空域相關(guān)mask上很有優(yōu)勢,能夠產(chǎn)生“mask coefficients”。
因?yàn)槟0錷ask和mask系數(shù)的計(jì)算是可以分別進(jìn)行的,所以檢測器的主要計(jì)算就花費(fèi)在兩者的組合上,但這可以用用單個(gè)矩陣相乘來實(shí)現(xiàn)。這樣一來,我們可以在特征域上保持空間相關(guān)性的同時(shí)保持單級(jí)網(wǎng)絡(luò)的快速性。
3.1 模板的產(chǎn)生
模板產(chǎn)生的分支(protonet)針對每幅圖像預(yù)測 kkk 個(gè)模板mask,本文用FCN的方式來實(shí)現(xiàn)protonet,FCN最后一層有 kkk 個(gè)channel,每個(gè)channel對應(yīng)一個(gè)模板,且每個(gè)channel都被送入主要特征層(Fig.3)。
這樣的結(jié)構(gòu)類似于一般的語義分割,不同的是我們提出這些模板沒有很大的損失,所有的監(jiān)督都源于集成后的mask損失。
兩個(gè)重要的設(shè)計(jì):
- 從更深的主要特征中產(chǎn)生更多的魯棒mask,來獲得protonet
- 更高分辨率的模板源于在小目標(biāo)物體上更高質(zhì)量的mask和在更好的性能
使用FPN是因?yàn)樗畲蟮奶卣鲗邮亲钌畹膶?#xff08;P3,Fig.2),之后上采樣將其尺寸提升到輸入圖像大小的1/4,來提高對小目標(biāo)物體的檢測性能。
protonet的輸出是無界的,這點(diǎn)很重要,因?yàn)檫@就允許網(wǎng)絡(luò)在模板上產(chǎn)生強(qiáng)大的激活輸出(如明顯的背景)。
選擇Relu函數(shù)來獲得更多可解釋的模板。
3.2 Mask 系數(shù)
典型的基于anchor的目標(biāo)檢測器有兩個(gè)分支:
- 一個(gè)分支用來預(yù)測 ccc 個(gè)類別的置信分?jǐn)?shù)
- 另一個(gè)分支用來預(yù)測b-box的4個(gè)坐標(biāo)
mask 系數(shù)的預(yù)測:
給系統(tǒng)添加第三個(gè)分支來預(yù)測 kkk 個(gè)mask系數(shù),每個(gè)系數(shù)對應(yīng)于每個(gè)模板,所以我們預(yù)測 4+c+k4+c+k4+c+k 個(gè)數(shù)。
非線性化:
從最終的mask中去掉模板是很重要的,所以對 kkk 個(gè)mask系數(shù)都使用 tanhtanhtanh 來非線性處理,這樣比未進(jìn)行非線性處理的輸出更穩(wěn)定。
該設(shè)計(jì)在Fig.2 中有體現(xiàn),如果不允許做差,那么兩個(gè)mask都是不可構(gòu)造的。
3.3 Mask集成
為了產(chǎn)生實(shí)例的mask,將產(chǎn)生模板的分支和產(chǎn)生mask系數(shù)的分支使用線性組合的方法進(jìn)行結(jié)合,并對組合結(jié)果使用Sigmoid非線性化來獲得最終的mask,該過程可以用單個(gè)矩陣相乘的方法來高效實(shí)現(xiàn):
M=σ(PCT)M=\sigma(PC^T)M=σ(PCT)
- PPP——h×w×kh\times w\times kh×w×k 大小的模板mask
- CCC——n×kn\times kn×k 大小的mask系數(shù),是經(jīng)過了NMS和得分閾值處理后保留的 nnn 個(gè)實(shí)例的系數(shù)
損失函數(shù):共三個(gè)損失
1)分類損失LclsL_{cls}Lcls?
2)邊界框回歸損失LboxL_{box}Lbox?
3)mask損失Lmask=BCE(M,Mgt)L_{mask}=BCE(M, M_{gt})Lmask?=BCE(M,Mgt?),MMM是預(yù)測的mask,MgtM_{gt}Mgt?是真實(shí)的mask,公式為兩者像素級(jí)二進(jìn)制交叉熵。
Mask的裁剪:
為了在模板中保留小目標(biāo)物體,我們將最終的mask根據(jù)預(yù)測的b-box進(jìn)行裁剪,訓(xùn)練過程中,我們使用真實(shí)的邊界框進(jìn)行裁剪,并且將LmaskL_{mask}Lmask?除以真實(shí)的邊界框的面積。
3.4 其他情況
因?yàn)殛P(guān)于實(shí)例分割的普遍共識(shí)是因?yàn)镕CN是平移不變的,所有需要在[22]中添加平移可變性。類似于FCIS[22]和Mask R-CNN[16]的方法嘗試著添加平移可變性,如利用方向性特征圖和對位置敏感的repooling,或者將mask分支送入第二級(jí),就不用對實(shí)例進(jìn)行定位了。
本文用于添加平移可變性的方法是對最終的mask利用預(yù)測的b-box進(jìn)行裁剪,但是我們發(fā)現(xiàn)本文的方法在不對中等和大的目標(biāo)進(jìn)行裁剪的情況下仍然可以有效工作,所以這并非是裁剪所帶來的效果,YOLACT學(xué)習(xí)到了如何通過模板的不同激活情況來自己進(jìn)行實(shí)例的定位。
Fig 5中image a 中紅色圖像的模板激活不可能是FCN沒有padding情況下的結(jié)果,因?yàn)榫矸e的輸出是一個(gè)單個(gè)的像素,如果整幅圖像都是相同的像素點(diǎn)組成,那么卷積層的輸出將都是相同的。另外,在目前的FCN網(wǎng)絡(luò)中,一致的邊緣填充使得網(wǎng)絡(luò)有能力判斷出某個(gè)像素距離圖像邊緣的距離。
理論上,可以實(shí)現(xiàn)這一點(diǎn)的一種方法是讓多個(gè)層依次將填充的0從邊緣像中心展開(如使用[1;0]這樣的卷積核)。這就意味著ResNet具有了內(nèi)在平移可變性,本文的方法獲得了很好的特性,image b 和c就具有平移可變性。
許多模板都是對圖像中特定的“部分”有激活響應(yīng),也就是它們只激活某一部分,Fig 5中,模板1,4,5,6是這樣的例子。通過將這些部分激活的特征圖結(jié)合起來,網(wǎng)絡(luò)就具有識(shí)別同一語義類別的不同實(shí)例的能力(重疊的也可以),image d,綠色的傘可以通過模板4濾波結(jié)果減去模板5的濾波結(jié)果而獲得。
此外,作為學(xué)習(xí)目標(biāo),模板是可壓縮的,也就是說如果protonet將多種模板組合成了一個(gè),那么mask系數(shù)分支就可以學(xué)習(xí)到哪些情況需要哪些功能。Fig 5中,模板2保留左下角方向的目標(biāo),但是在圖像中間的垂直條帶上對實(shí)例的觸發(fā)更強(qiáng)。模板4是一個(gè)分割模板,但是同樣對左下角方向的角點(diǎn)有很強(qiáng)的保留效果。模板5類似,不過是保留右邊的信息。
這些表明在實(shí)際中,即使使用32個(gè)模板,模型的性能也不會(huì)降低(Table 2b)。
4. 檢測器
對于檢測器,我們首先考慮速度和特征豐富度,因子預(yù)測這些模板和系數(shù)是一項(xiàng)艱難的任務(wù),好的特征才能獲得好的結(jié)果。本文的檢測器在RetinaNet[25]的基礎(chǔ)上,更加注重速度。
YOLACT 檢測器:
本文使用RestNet-101[17]和FPN[24]作為默認(rèn)特征主干網(wǎng)絡(luò),圖像大小都為550×550550\times 550550×550。為了獲得對每幅圖像都相同的評(píng)估時(shí)間,我們不保留原始的縱橫比。
類似于RetinaNet,我們對FPN做如下修改,不產(chǎn)生 P2P_2P2?,并且從 P5P_5P5? 開始產(chǎn)生 P6P_6P6? 和 P7P_7P7? 作為連續(xù)的 3×33\times 33×3 步長的卷積層,并且在每個(gè)上面放置縱橫比為 [1,1/2,2] 的三個(gè)anchor。
P3P_3P3? 的 anchor 是面積為 24 pix的正方形,每個(gè)后面的層都是前面尺度的2倍,也就是 [24; 48; 96; 192; 384]。
因?yàn)轭A(yù)測輸出依賴于每個(gè) PiP_iPi?,我們對這三個(gè)分支共享一個(gè) 3×33\times 33×3 的卷積核,之后每個(gè)分支獲得自己的卷積核。
與RetinaNet相比,本文的預(yù)測輸出設(shè)計(jì)更為簡潔和高效(Fig 4)
本文利用smooth-L1 損失來進(jìn)行box的回歸訓(xùn)練,并且利用與SSD相同的方法來編碼box回歸的坐標(biāo)。
為了訓(xùn)練分類,我們使用softmax 交叉熵?fù)p失,有 ccc 個(gè)正標(biāo)簽和一個(gè)背景標(biāo)簽,訓(xùn)練樣本的 neg:pos=3:1neg:pos=3:1neg:pos=3:1
不同于RetinaNet,我們沒有使用焦點(diǎn)損失,因?yàn)樵谖覀兙W(wǎng)絡(luò)中不可行。
本文利用上述設(shè)計(jì)方法搭建的網(wǎng)絡(luò),在相同大小的輸入圖像的情況下,比SSD表現(xiàn)的更快更好。
5. 其他貢獻(xiàn)
本節(jié)討論一些其他改進(jìn),有些方法提升速度,對性能有些許的降低,有些方法提升性能,但對速度沒有損失。
Fast NMS:
對每個(gè)anchor生成了回歸b-box和分類置信度之后,我們會(huì)像多數(shù)目標(biāo)檢測器一樣使用NMS來抑制重復(fù)的檢測。[33,34,28,35,16,25]中,都出現(xiàn)了連續(xù)使用NMS的過程。
對數(shù)據(jù)集中的每個(gè)類別 ccc ,根據(jù)置信分?jǐn)?shù)來降序排列預(yù)測的box,移除那些IoU大于某個(gè)閾值但置信度較低的box。這樣的NMS最快只能達(dá)到5fps,和實(shí)時(shí)的30fps有著很大的差距
為了保持傳統(tǒng)NMS順序處理的本質(zhì),我們引入了Fast NMS,其中每個(gè)實(shí)例都可以在并行過程中確定是保留還是剔除。我們簡化了允許已經(jīng)剔除的檢測其來抑制其他檢測器,這在傳統(tǒng)的NMS中是不可能的。這樣就允許我們在大多數(shù)GPU庫中使用標(biāo)準(zhǔn)矩陣操作實(shí)現(xiàn)快速的NMS。
Fast NMS的實(shí)現(xiàn):
-
首先,對每個(gè)類別的前 nnn 個(gè)得分檢測器計(jì)算一個(gè)大小為 c×n×nc\times n \times nc×n×n 的 IoUIoUIoU 矩陣 XXX ,并且對每個(gè)類別的框進(jìn)行降序排列。那么每個(gè)n×nn\times nn×n的矩陣都是對角陣(因?yàn)閎-box_1對b-box_2的IoU與2對1的IoU是一樣的)
GPU上的批量排序是很容易得到的,計(jì)算IoU很容易向量化。
-
其次,通過檢查是否有任何得分較高的檢測與其IoU大于某個(gè)閾值 ttt ,從而找到要?jiǎng)h除的檢測框。故我們通過將 XXX 的下三角和對角區(qū)域設(shè)置為0,來實(shí)現(xiàn):
Xkij=0    ?k,j,i≥jX_{kij}=0\,\,\,\, \forall k,j,i \ge jXkij?=0?k,j,i≥j -
上述可以在一個(gè)批量 上三角函數(shù)(triu) 中實(shí)現(xiàn),之后保留列方向上的最大值,來計(jì)算每個(gè)檢測器的最大 IoUIoUIoU 矩陣 KKK 。
Kkj=maxi(Xkij)    ?k,jK_{kj}=max_i(X_{kij}) \,\,\,\,\forall k,jKkj?=maxi?(Xkij?)?k,j
- 最后,利用閾值 t(K<t)t(K<t)t(K<t) 來處理矩陣,對每個(gè)類別保留最優(yōu)的檢測器。
由于約束的放寬,Fast NMS 會(huì)刪除更多的框,然而這和顯著提升速度相比,對性能的影響微不足道(Table 2a)。
Fast NMS 比傳統(tǒng)NMS在Cython上的實(shí)現(xiàn)快11.8ms,而mAP僅僅下降了0.1%,用Mask R-CNN做對比,Fast NMS快16.5ms,mAP降低了0.3%。
語義分割損失:
Fast NMS 在提升速度的情況下,有少許的性能損失,還有別的方法在提升性能的情況下,對速度沒有任何損失。
其中一種方法,在訓(xùn)練中給模型添加額外的損失函數(shù),但在測試中不添加,這樣在沒有速度損失的情況下有效的提升了特征的豐富性。
故我們在訓(xùn)練過程中,給特征域增加了語義分割損失。因?yàn)槲覀儚膶?shí)例注釋中構(gòu)造損失的真值,沒有直接的捕捉語義分割(也就是沒有強(qiáng)制要求每個(gè)像素都是一個(gè)標(biāo)準(zhǔn)類)。
為了在訓(xùn)練中預(yù)測,我們簡單的將有 ccc 個(gè)輸出通道的 1×11\times 11×1 卷積層直接附加到主干網(wǎng)絡(luò)最大的特征圖(P3P_3P3?)上,因?yàn)?#xff0c;每個(gè)像素都可以分配多于1的類別,我們使用sigmoid和 ccc 個(gè)通道而不是softmax和 c+1c+1c+1 個(gè)通道,這樣定義損失函數(shù)的訓(xùn)練方法將mAP提升了0.4%。
6. 結(jié)果
本文在 MS COCO 數(shù)據(jù)集上進(jìn)行了實(shí)例分割任務(wù),在 train2017上進(jìn)行訓(xùn)練,在val2017和test-dev上進(jìn)行評(píng)估。
6.1 實(shí)例分割結(jié)果
首先,在 MS COCO 的test-dev數(shù)據(jù)集上對YOLACT和目前最好的方法進(jìn)行了性能對比。
本文的關(guān)注點(diǎn)在于速度的提升,故我們和其他單模型的結(jié)果進(jìn)行了對比,其中不包括測試時(shí)間。
本文的所有實(shí)驗(yàn)都是在Titan Xp上進(jìn)行的,故一些結(jié)果和原文中的結(jié)果可能略有不同。
YOLACT-550,是目前最快的網(wǎng)絡(luò)在COCO上實(shí)現(xiàn)實(shí)例分割速度的3.8倍
Fig 7中展示了,YOLACT-500和Mask R-CNN在IouO閾值為0.5的時(shí)候,AP之間的差距為9.5,當(dāng)IoU閾值為0.75的時(shí)候,AP差距為6.6。
FCIS和MaskR-CNN之間的變化與其不同,該兩者的差距基本是穩(wěn)定的,前者的AP為7.5,后者的AP為7.6。
Table 1 同樣也進(jìn)行了實(shí)驗(yàn)來驗(yàn)證本文模型在不同大小輸入圖像情況下的性能。除過基本的 550×550550 \times 550550×550 大小模型,我們也訓(xùn)練了 400×400400 \times 400400×400 和 700×700700\times 700700×700 的模型,相應(yīng)地也調(diào)整了anchor的尺寸(sx=s550/550?xs_x=s_{550}/550\cdot xsx?=s550?/550?x)。
降低圖像大小會(huì)導(dǎo)致性能的大幅度下降,這說明越大的圖像進(jìn)行實(shí)例分割的性能越好,但提升圖像尺寸帶來性能提升的同時(shí)會(huì)降低運(yùn)行速度。
除了在基準(zhǔn)主要網(wǎng)絡(luò)RestNet-101上實(shí)驗(yàn)以外,我們同樣在RestNet-50和RestNet-53上進(jìn)行了實(shí)驗(yàn)來獲得更快的效果。
如果提升速度更好的話,那么我們建議使用RestNet-50或RestNet-53而不是減小圖像大小,因?yàn)檫@樣一來實(shí)現(xiàn)的性能比YOLACT-400上好很多,只是時(shí)間上略微慢一些而已。
6.2 Mask質(zhì)量
我們產(chǎn)生的最終mask大小為 138×138138\times 138138×138 ,且由于直接從原始特征中直接產(chǎn)生mask(未進(jìn)行repooling則可能產(chǎn)生位移),我們針對大目標(biāo)的mask比Mask R-CNN [16] 和 FCIS [22] 的質(zhì)量有顯著的優(yōu)勢。
Fig 7 中,YOLACT 對胳膊的邊界產(chǎn)生了一個(gè)清楚的mask,Mask R-CNN [16] 和 FCIS [22] 的mask則帶有一些噪聲。
當(dāng)IoU閾值為9.5的時(shí)候,本文的基準(zhǔn)模型的AP達(dá)到了1.6,Mask R-CNN 達(dá)到了1.3,這意味著repooling會(huì)造成一定的mask 性能損失。
6.3 動(dòng)態(tài)穩(wěn)定性
本文的方法在動(dòng)態(tài)視頻上的穩(wěn)定性高于Mask R-CNN , Mask R-CNN在幀間過渡的時(shí)候有很多跳動(dòng),甚至在目標(biāo)靜止的情況下也是一樣。
我們之所以認(rèn)為我們的方法對動(dòng)態(tài)視頻更穩(wěn)定原因有兩個(gè):
- 我們的mask性能更高,故幀間并沒有很大誤檢
- 我們的模型是單級(jí)的
- 多級(jí)模型更多的依賴于第一級(jí)產(chǎn)生的區(qū)域提議
- 本文的方法當(dāng)模型在幀間預(yù)測多個(gè)不同的候選框時(shí),protonet不響應(yīng),故我們的方法對動(dòng)態(tài)視頻更穩(wěn)定
6.4 實(shí)現(xiàn)細(xì)節(jié)
所有的模型訓(xùn)練都使用ImageNet訓(xùn)練的參數(shù)作為預(yù)定義參數(shù),在單個(gè)GPU上訓(xùn)練,批量大小為8。這個(gè)大小適合于批歸一化,所以我們保持預(yù)訓(xùn)練批規(guī)范化固定不變,也沒有添加額外的bn層。
使用SGD方法進(jìn)行800k次迭代,初始學(xué)習(xí)率設(shè)置為0.003,并且在迭代次數(shù)為280k, 600k, 700k, 和750k時(shí),分別下降10%。
權(quán)重衰減率為0.0005,動(dòng)量為0.9。
7. 結(jié)論
本文的網(wǎng)絡(luò)優(yōu)勢:
快速,高質(zhì)量的mask,優(yōu)良的動(dòng)態(tài)穩(wěn)定性
本文網(wǎng)絡(luò)的劣勢:
性能略低于目前最好的實(shí)例分割方法,很多錯(cuò)誤原因檢測錯(cuò)誤,分類錯(cuò)誤和邊界框的位移等
下面說明兩個(gè)由YOLACT的mask生成方法造成的典型錯(cuò)誤:
1)定位誤差
當(dāng)場景中一個(gè)點(diǎn)上出現(xiàn)多個(gè)目標(biāo)時(shí),網(wǎng)絡(luò)可能無法在自己的模板中定位到每個(gè)對象,此時(shí)將會(huì)輸出一些和前景mask相似的物體,而不是在這個(gè)集合中實(shí)例分割出一些目標(biāo)。
Fig 6(第一行第一列)中的第一幅圖,藍(lán)色的卡車在紅色的飛機(jī)之下,就沒有得到正確的定位。
2)頻譜泄露
本文的網(wǎng)絡(luò)對預(yù)測的集成mask進(jìn)行了裁剪,且并未對輸出的結(jié)果進(jìn)行去噪。這樣一來,當(dāng)b-box時(shí)準(zhǔn)確的的時(shí)候,沒有什么影響,但是當(dāng)b-box不準(zhǔn)確的時(shí)候,噪聲將會(huì)被帶入實(shí)例mask,造成一些“泄露”。
當(dāng)兩個(gè)目標(biāo)離得很遠(yuǎn)的時(shí)候也會(huì)發(fā)生“泄露”的情況,因?yàn)榫W(wǎng)絡(luò)學(xué)習(xí)到的是不需要定位離得很遠(yuǎn)的目標(biāo),但是裁剪的過程會(huì)關(guān)系這點(diǎn)。
假如預(yù)測的b-box很大,那么該mask將包括那些離得很遠(yuǎn)的mask,如Fig 6(第二行第四列)中發(fā)生的泄露是由于mask分支認(rèn)為這三個(gè)滑雪的人離得足夠遠(yuǎn),并不用將他們劃分開來。
該問題可以通過mask error down-weighting機(jī)制得到緩解,如MS R-CNN[18]中那樣,其中顯示這些錯(cuò)誤的mask可以被忽略,之后我們在解決這個(gè)問題。
總結(jié)
以上是生活随笔為你收集整理的感知算法论文(一)YOLACT: Real-time Instance Segmentation(2019)译文的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三亚凤凰机场出现滚滚浓烟?机场回应:暂无
- 下一篇: 感知算法论文(二)Pelee: A Re