CVPR2020论文解析:实例分割算法
CVPR2020論文解析:實例分割算法
BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation
論文鏈接:https://arxiv.org/pdf/2001.00309.pdf
摘要
實例分割是基本的視覺任務之一。近年來,全卷積實例分割方法因其比Mask R-CNN等兩階段方法簡單、高效而備受關注。迄今為止,當模型具有相似的計算復雜度時,幾乎所有這些方法在掩模精度上都落后于兩級掩模R-CNN方法,留下了很大的改進空間。在這項工作中,我們通過有效地將瞬時層信息與具有較低粒度的語義信息相結合來實現改進的掩模預測。本文主要貢獻是一個混合模塊,它從自上而下和自下而上的實例分割方法中汲取靈感。所提出的BlendMask算法能夠有效地預測每像素位置敏感的密集實例特征,并且只需一個卷積層就可以學習到每個實例的注意圖,因此推理速度快。BlendMask可以很容易地與最先進的一級檢測框架結合起來,并且在相同的訓練計劃下比Mask R-CNN快20%。輕量級版本的BlendMask在單個1080Ti GPU卡上以25 FPS的速度實現34.2%的mAP。由于它的簡單和有效性,我們希望BlendMask可以作為一個簡單但強大的基線,用于廣泛的實例預測任務。
引論
性能最好的對象檢測器和分段器通常遵循兩階段范式。它們由一個完全卷積的網絡,區域建議網絡(RPN)組成,對最可能感興趣的區域(roi)進行密集預測。一組輕量級網絡,也稱為磁頭,被應用于重新校準roi的特征并生成預測[24]。掩模生成的質量和速度與頭盔的結構有很大的關系。此外,獨立的頭很難與相關的任務(如語義分割)共享特征,這會給網絡架構優化帶來麻煩。
一級目標檢測的最新進展證明,一級方法(如FCOS)在精度上優于兩級方法[25]。使這種單階段檢測框架能夠執行密集的實例分割是非常理想的,因為1)僅由常規操作組成的模型更簡單,更易于跨平臺部署;2)單一框架為多任務網絡架構優化提供了方便和靈活性。
密集實例分段器可以追溯到DeepMask[23],這是一種自上而下的方法,通過滑動窗口生成密集實例掩碼。掩模的表示在每個空間位置被編碼成一維向量。雖然它結構簡單,但在訓練過程中有幾個障礙使其無法獲得優異的性能:1)特征與模板之間的局部一致性丟失;2)由于模板在每個前景特征處重復編碼,因此特征表示是冗余的;3)
利用步進卷積進行下采樣后,位置信息會退化。研究者們試圖通過保留多個位置敏感地圖來保持局部一致性。這一想法已被Chen等人
[7] ,為目標實例掩碼的每個位置提出密集對齊表示。然而,這種方法以代表效率換取一致性,使得第二個問題難以解決。第三個問題是防止大量的降采樣特性提供詳細的實例信息。
認識到這些困難,一系列研究采取自下而上的策略[1,21,22]。這些方法生成密集的每像素嵌入特征,并使用一些技術對其進行分組。根據嵌入特征,分組策略從簡單聚類[4]到基于圖的算法[21]各不相同。通過執行逐像素預測,可以很好地保留本地一致性和位置信息。自底向上方法的缺點是:1)嚴重依賴密集的預測質量,導致性能低于par和分段/聯合遮罩;2)對具有大量類的復雜場景的泛化能力有限;3)對復雜后處理技術的要求。
在這項工作中,本文考慮自上而下和自下而上的雜交方法。本文認識到兩個重要的前輩,FCIS[18]和YOLACT[3]。它們分別使用裁剪(FCIS)和加權求和(YOLACT)來預測實例級信息,如邊界框位置,并將其與逐像素預測相結合。我們認為,這些過于簡單的組裝設計可能無法很好地平衡頂層和底層功能的表示能力。
更高級別的特征對應于更大的接受域,可以更好地捕獲有關姿勢等實例的總體信息,而較低級別的特征保留更好的位置信息并可以提供更詳細的信息。我們的工作重點之一是研究如何在完全卷積的實例分割中更好地合并這兩者。更具體地說,我們通過豐富實例級信息和執行更多的位置敏感掩碼預測來概括基于建議的掩碼組合操作。我們進行廣泛的消融研究,以發現最佳的尺寸、分辨率、對準方法和特征位置。具體來說,我們能夠做到以下幾點:
?本文設計了一種靈活的基于方案的實例掩碼生成方法blender,它結合了豐富的實例級信息和精確的密集像素特征。在頭對頭比較中,混合器在COCO數據集上的mAP分別比YOLACT[3]和FCIS[18]中的合并技術高出1.9和1.3個點。
?本文提出了一個簡單的架構BlendMask,它與最先進的一級目標檢測器FCOS[25]緊密相連,在已經簡單的框架上增加了最繁重的計算開銷。
?BlendMask的一個明顯優勢是,它的推理時間不會像傳統的兩階段方法那樣隨著預測次數的增加而增加,這使得它在實時場景中更加健壯。
?BlendMask的性能在COCO數據集上,ResNet-50[15]主干和ResNet-101分別達到37.0%和38.4%的mAP,在精度上優于Mask R-CNN[13],而速度快了約20%。本文為全卷積實例分割設置了新的記錄,僅用半個訓練迭代和1/5的推理時間就在mask映射中超過了TensorMask[7]1.1個點。BlendMask可能是第一個在掩碼AP和推理效率方面都優于Mask R-CNN的算法。
?BlendMask可以自然地解決全景分割,而無需任何修改(參見第4.4節),因為底部模塊fblendmask同時處理“thingsand stuff”。
?與掩模R-CNN的掩模頭(通常為28×28分辨率)相比,BlendMask的底部模塊能夠輸出分辨率更高的掩模,這是因為它的靈活性和底部模塊與EFPN緊密相連。ThusBlendMask能夠生成邊緣更精確的掩模,如圖4所示。對于圖形等應用程序,這可能非常重要。 ?提議的BlendMask一般和流動性。通過最小的修改,我們可以應用BlendMask解決其它實例級的識別任務,如關鍵點檢測。
Related work
無錨對象檢測對象檢測的最新進展揭示了移除邊界盒錨的可能性[25],大大簡化了檢測管道。這種簡單得多的設計與基于錨的RetinaNet相比,盒子平均精度(APbb)提高了2.7%。改進的一個可能原因是,在不受預先確定的錨形狀限制的情況下,目標可以根據其有效接收場自由地與預測特征相匹配。給我們的暗示是雙重的。首先,用適當的金字塔級別繪制目標尺寸圖以確定特征的有效接收區域是很重要的。其次,移除錨使我們能夠在不引入整體計算開銷的情況下,為頂級實例預測模塊分配更重的任務。例如,在邊界盒檢測的同時推斷形狀和姿勢信息,對于基于錨的框架,所需的計算量大約是我們的8倍。
這使得基于錨的檢測器很難平衡頂部和底部的工作負載(即,學習實例awaremaps1 vs.base)。我們假設這可能是在考慮計算復雜性的情況下,給定一個實例,yolact只能為每個原型/基礎學習一個標量系數的原因。只有在使用無錨邊界盒檢測器時,才能消除此限制。
主要的實例分割模式采用兩階段的方法,首先對目標進行檢測,然后對每個方案的前景模板進行預測。該框架的成功部分歸功于對齊操作roalign[13],它為所有一級自頂向下方法中缺失的第二級RoI頭部提供了局部一致性。然而,兩階段框架存在兩個問題。對于多實例的復雜場景,兩階段方法的推理時間與實例數成正比。此外,RoI特征和生成的遮罩的分辨率是有限的。本文在第4.3節中詳細討論了第二個問題。
這些問題可以通過用一個簡單的裁剪和組裝模塊替換RoI頭來部分解決。在FCIS中,Li等人。[18] 向檢測網絡中添加一個底部模塊,用于預測所有實例共享的位置敏感分數圖。這項技術最初用于R-FCN[9],后來在MaskLab[5]中得到改進。k2得分圖的每個通道對應于提案的k×k等分網格塊的一個裁剪。每個得分圖表示像素屬于某個對象并處于某個相對位置的可能性。當然,較高的crop定位分辨率會導致更精確的預測,但計算成本也會呈二次增長。此外,在一些特殊情況下,FCIS的代表性并不充分。當兩個實例共享中心位置(或任何其他相對位置)時,該裁剪上的分數映射表示不明確,無法判斷該裁剪描述的是哪個實例。
在YOLACT[3]中,使用了一種改進的方法。與使用位置控制的并行不同,一組掩模系數與盒子預測一起學習。然后,這組系數指導裁剪的底部掩模底座的線性組合以生成最終掩模。與FCIS相比,預測實例級信息的職責被分配到頂層。我們認為使用標量系數來編碼實例信息是次優的。
為了突破這些限制,提出了一個新的基于方案的掩模生成框架BlendMask。頂層和底層表示工作負載由混合模塊平衡。這兩個級別都保證在其最佳能力范圍內描述實例信息。如在第4節中的實驗所示,混合模塊在不增加計算復雜度的情況下,比YOLACT和FCIS大幅度提高了基礎組合方法的性能。
重新定義具有較低級別功能的粗略掩碼BlendMask將頂級粗略實例信息與較低級別的精細粒度合并。這個想法類似于MaskLab[5]和Instance Mask Projection(IMP)[10],后者將Mask預測與底層主干特征連接起來。分歧是顯而易見的。初級的mask就像一張注意力地圖。生成非常輕量級,不需要使用語義或位置監視,并且與對象生成緊密相關。如第3.4節所示,本文的低級功能具有明確的上下文含義,即使沒有明確地由bins或作物引導。此外,我們的混合模塊不需要像MaskLab[5]和IMP[10]那樣的子網,這使得本文的方法更加高效。在這項工作的同時,最近兩種單鏡頭實例分割方法顯示出良好的性能[26,27]。
算法原理
Overall pipeline
BlendMask包含檢測網絡和mask分支,mask分支包含3個部分,bottom
module用于預測score maps,top layer用于預測實例的attentions,blender module用于整合分數以及attentions,整體的架構如圖2所示
Bottom module
bottom
module預測的score maps在文中稱為基底(base)B的大小為,其中N為batch size,K為基底的數量,H×W是輸入的大小,而s則是score maps的輸出步長。
論文采用DeepLab V3+的decoder,該decoder包含兩個輸入,一個低層特征和一個高層特征,對高層特征進行upsample后與低層特征融合輸出。這里使用別的結構也是可以的,而bottom module的輸入可以是backbone的feature,也可以是類似YOLACT或Panoptic FPN的特征金字塔
Top Layer
在每一個detection tower后接了一層卷積層用來預測top-level
attentionsA。 在YOLACT中,每一層金字塔輸出的A為 ?,即對應基底每個channel的整體的權重值。而論文輸出的A為,M×M是attention的分辨率,即對應基底每個channel的像素點的權重值,粒度更細,是element-wise的操作(后面會講到)。
由于attentions是3D結構,因此可以學習到一些實例級別的信息,例如對象大致的形狀和姿態。M的值是比較小的,只做粗略的預測,一般最大為14,使用output channel為的卷積來實現。在送到一下個模塊之前,先使用FCOS post-process方法來選擇top D個bboxP=和對應的attentions A=,具體的選擇方法是選擇分類置信度≥閾值的top
D個bbox,閾值一般為0.05
Blender module
Blender module是BlendMask的關鍵部分,根據attentions對位置敏感的基底進行合并輸出
Blender
module
blender模塊的輸入為bottom-level的基底B以及選擇的top-level
attentionsA和bboxP
首先,使用Mask
R-CNN的ROIPooler來截取每個對應的基底區域,并resize成固定R大小的特征圖 ?。具體地,使用sampleing
ratio=1的RoIAlign,每個bin只采樣1個點,Mask R-CNN每個bin采樣4個點。在訓練的時候,直接使用gt bbox作為proposals,而在推理時,則直接用FCOS的檢測結果
attention大M是比R小的,因此需要對 ?進行插值,從M×M變為R×R,R={∣d=1…D}
接著對的K維attention分別進行softmax歸一化,產生一組score map
? 然后對每個regionR的和對應的score mapS的進行element-wise product,最后將K個結果進行相加得到?
? 圖1對blend module的操作進行了可視化,可以看到attenttions和基底的特征以及融合的過程,可以說十分生動形象了
Configurations
and baselines
BlendMask的超參數如下:
R,bottom-level
RoI的分辨率
M,top-level預測的分辨率
K,基底的數量(channel)
bottom模塊的輸入可以是骨干網絡或FPN的feature
基底的采樣方法可以是最近鄰或雙線性池化
top-level
attentions的插值方法可以是最近鄰或雙線性采樣
論文用縮寫來表示模型,使用骨干特征C3和C5作為bottom模塊的輸入,top-level attention使用最近鄰插值,bottom level使用雙線性插值,與RoIAlign一致
Semantics
encoded in learned bases and attentions
基底和attentions的可視化結果如圖3所示,論文認為BlendMask能提取兩種位置信息:
像素是否在對象上(semantic
masks)
像素是否在對象的具體部位上(position-sensitive
features),比如左上角,右下角
紅藍兩個基底分別檢測了目標的右上和左下部分點,黃色基底則檢測了大概率在目標上的點(semantic mask),而綠色基底則激活了物體的邊界,position-sensitive features有助于進行實例級別的分割,而semantic
mask則可以對postion-sensitive進行補充,讓最后的結果更加順滑。由于學習到了更多準確的特征,BlendMask使用了比YOLACT和FCIS少很多的基底緯度(4 vs. 32 vs. 49)
Experiment
消融實驗
Merging
methods: Blender vs. YOLACT vs. FCIS
論文將blender改造成其它兩個算法的merge模型進行實驗,從Table1可以看出,Blender的merge方法要比其它兩個算法效果好
Top and
bottom resolutions
從Table2可以看出,隨著resolution的增加,精度越來越高,為了保持性價比,R/M的比例保持大于4,總體而言,推理的時間是比較穩定的
Number of
bases
從Table3可以看出,K=4是最優
Bottom
feature locations: backbone vs. FPN
從圖4可以看出,使用FPN特征作為bottom模塊的輸入,不僅效率提升了,推理時間也加快了。
Interpolation
method: nearest vs. bilinear
在對top-level
attentions進行插值時,雙線性比最近鄰高0.2AP
而對bottom-level score
maps進行插值時雙線性比最近鄰高2AP
Other
improvements
論文也嘗試了其它提升網絡效果的實驗,雖然這些trick對網絡有一定的提升,但是沒有加入到最終的網絡中
Main
result
Quantitative
results
從結果來看,BlendMask在效果和速度上都優于目前的實例分割算法,但是有一點,在R-50不使用multi-scale的情況下,BlendMask的效果要比Mask R-CNN差
Real-time
setting
為了跟YOLACT對比,論文改造了一個緊湊版的BlendMask-RT: 1) 減少prediction head的卷積數 2) 合并classification tower和box tower 3) 使用Proto-FPN并去掉P7。從結果來看,BlendMask-RT比YOLACT快7ms且高3.3AP
Qualitative
results
圖4展示了可視化的結果,可以看到BlendMask的效果比Mask R-CNN要好,因為BlendMask的mask分辨為56而Mask R-CNN的只有28,另外YOLACT是難以區分相鄰實例的,而BlendMask則沒有這個問題。
Discussions
Comparison
with Mask R-CNN
BlendMask的結構與Mask
R-CNN類似,通過去掉position-sensitive feature map以及重復的mask特征提取來進行加速,并通過attentions指導的blender來替換原來復雜的全局特征計算
BlendMask的另一個優點是產生了高質量的mask,而分辨率輸出是不受top-level采樣限制。對于Mask R-CNN增大分辨率,會增加head的計算時間,而且需要增加head的深度來提取準確的mask特征
。另外Mask R-CNN的推理時間會隨著bbox的數量增加而增加,這對實時計算是不友好的
最后,blender模塊是十分靈活的,因為top-level的實例attention預測只有一個卷積層,對于加到其它檢測算法中幾乎是無花費的
Panoptic
Segmentation
BlendMask可以通過使用Panoptic-FPN的語義分割分支來進行全景分割任務,從結果來看,BlendMask效果更好
總結
BlendMask通過更合理的blender模塊融合top-level和low-level的語義信息來提取更準確的實例分割特征,該模型綜合各種優秀算法的結構,例如YOLACT,FOCS,Mask R-CNN,比較tricky,但是很有參考的價值。BlendMask模型十分精簡,效果達到state-of-the-art,推理速度也不慢,精度最高能到41.3AP,實時版本BlendMask-RT性能和速度分別為34.2mAP和25FPS,并且論文實驗做得很充足,值得一讀
總結
以上是生活随笔為你收集整理的CVPR2020论文解析:实例分割算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CVPR2020论文解读:三维语义分割3
- 下一篇: 自动驾驶感知系统盘点