1. 程式人生 > >Mask-RCNN技術解析

Mask-RCNN技術解析

一. Mask-RCNN 介紹

       上篇文章介紹了 FCN,這篇文章引入個新的概念 Mask-RCNN,看著比較好理解哈,就是在 RCNN 的基礎上新增 Mask。

       Mask-RCNN 來自於年輕有為的 Kaiming 大神,通過在 Faster-RCNN 的基礎上新增一個分支網路,在實現目標檢測的同時,把目標畫素分割出來。

       Mask-RCNN 的網路結構示意(在作者原圖基礎上修改了一下):

        

       假設大家對 Faster 已經很熟悉了,不熟悉的同學建議先看下之前的博文:【目標檢測-RCNN系列

       其中 黑色部分為原來的 Faster-RCNN,紅色部分為在 Faster網路上的修改:

1)將 Roi Pooling 層替換成了 RoiAlign;

2)新增並列的 FCN 層(mask 層);

       先來概述一下 Mask-RCNN 的幾個特點(來自於 Paper 的 Abstract):

1)在邊框識別的基礎上新增分支網路,用於 語義Mask 識別;

2)訓練簡單,相對於 Faster 僅增加一個小的 Overhead,可以跑到 5FPS;

3)可以方便的擴充套件到其他任務,比如人的姿態估計 等;

4)不借助 Trick,在每個任務上,效果優於目前所有的 single-model entries;

     包括 COCO 2016 的Winners。

        PS:寫到這兒提醒一句,建議大家先讀一遍 原 Paper,這樣再回來看的話會有第二次理解。

二. RCNN行人檢測框架

       基於最早的 Faster RCNN 框架,出現不少改進,主要有三篇需要看:

1)作者推薦的這篇

     Speed/accuracy trade-offs for modern convolutional object detectors

     論文下載arxiv

2)ResNet

     MSRA也算是作者自己的作品,可以 refer to blog【ResNet殘差網路】 

     論文下載arxiv

3)FPN

     Feature Pyramid Networks for Object Detection,通過特徵金字塔來融合多層特徵,實現CNN。

     論文下載arxiv

       來看下 後面兩種 RCNN 方法與 Mask 結合的示意圖(直接貼原圖了):

        

       圖中灰色部分是 原來的 RCNN 結合 ResNet or FPN 的網路,下面黑色部分為新新增的並聯 Mask層,這個圖本身與上面的圖也沒有什麼區別,旨在說明作者所提出的Mask RCNN 方法的泛化適應能力 - 可以和多種 RCNN框架結合,表現都不錯

三. Mask-RCNN 技術要點

● 技術要點1 - 強化的基礎網路

     通過 ResNeXt-101+FPN 用作特徵提取網路,達到 state-of-the-art 的效果。

● 技術要點2 - ROIAlign

     採用 ROIAlign 替代 RoiPooling(改進池化操作)。引入了一個插值過程,先通過雙線性插值到14*14,再 pooling到7*7,很大程度上解決了僅通過 Pooling 直接取樣帶來的 Misalignment 對齊問題

     PS: 雖然 Misalignment 在分類問題上影響並不大,但在 Pixel 級別的 Mask 上會存在較大誤差。

     後面我們把結果對比貼出來(Table2 c & d),能夠看到 ROIAlign 帶來較大的改進,可以看到,Stride 越大改進越明顯。 

● 技術要點3 - Loss Function

     每個 ROIAlign 對應 K * m^2 維度的輸出。K 對應類別個數,即輸出 K 個mask,m對應 池化解析度(7*7)。Loss 函式定義:

            Lmask(Cls_k) = Sigmoid (Cls_k),    平均二值交叉熵 (average binary cross-entropy)Loss,通過逐畫素的 Sigmoid 計算得到。

     Why K個mask?通過對每個 Class 對應一個 Mask 可以有效避免類間競爭(其他 Class 不貢獻 Loss )。

        

     通過結果對比來看(Table2 b),也就是作者所說的 Decouple 解耦,要比多分類 的 Softmax 效果好很多。

四. 對比實驗效果


       另外,作者給出了很多實驗分割效果,就不都列了,只貼一張 和 FCIS 的對比圖(FCIS 出現了Overlap 的問題):

       

五. Mask-RCNN 擴充套件

       Mask-RCNN 在姿態估計上的擴充套件,效果不錯,有興趣的童鞋可以看Paper。