1. 程式人生 > >Tensorflow實現Mask R-CNN實例分割通用框架,檢測,分割和特征點定位一次搞定(多圖)

Tensorflow實現Mask R-CNN實例分割通用框架,檢測,分割和特征點定位一次搞定(多圖)

優點 設計 orf 時間 rcnn 超越 rain 沒有 add

Mask R-CNN實例分割通用框架,檢測,分割和特征點定位一次搞定(多圖)

導語:Mask R-CNN是Faster R-CNN的擴展形式,能夠有效地檢測圖像中的目標,同時還能為每個實例生成一個高質量的分割掩碼。

技術分享

對Facebook而言,想要提高用戶體驗,就得在圖像識別上做足功夫。

雷鋒網此前報道《Facebook AML實驗室負責人:將AI技術落地的N種方法》(上 ,下篇)就提到,做好圖像識別,不僅能讓Facebook的用戶更精準搜索到想要的圖片,為盲人讀出圖片中包含的信息,還能幫助用戶在平臺上銷售物品、做社交推薦等等。

近日, FAIR部門的研究人員在這一領域又有了新的突破——他們提出一種目標實例分割(object instance segmentation)框架Mask R-CNN,該框架較傳統方法操作更簡單、更靈活。研究人員把實驗成果《Mask R-CNN》發布在了arXiv上,並表示之後會開源相關代碼。

以下為AI科技評論據論文內容進行的部分編譯。

論文摘要

物體識別,圖像語義分割技術能在短時間內快速發展,Fast/Faster RCNN和全卷積網絡(FCN)框架等技術功不可沒。這些方法概念直觀,訓練和推斷速度快,並且具有良好的靈活性和魯棒性。

一般來說,目標分割的難點在於,它需要正確識別出圖像中所有物體的方向,並且要將不同物體精準區分開。因此,這裏面涉及到兩個任務:

  • 用物體識別技術識別物體,並用邊界框表示出物體邊界;

  • 用語義分割給像素分類,但不區分不同的對象實例。

大家可能認為,要同時完成這兩個任務,方法一定會相當復雜;但Mask R-CNN卻可以更輕松的解決這兩個問題。

Mask R-CNN是Faster R-CNN的擴展形式,能夠有效地檢測圖像中的目標,同時還能為每個實例生成一個高質量的分割掩碼(segmentation mask)。

它的構建方法是:在每個興趣點(Region of Interest,RoI)上加一個用於預測分割掩碼的分層,稱為掩碼層(mask branch),使該層並行於已有邊界層和分類層(如下圖所示)。

技術分享

Mask R-CNN 框架

於是,掩碼層就成為了一個小型FCN。我們將它應用於單個RoI中,以在pixel-to-pixel行為中預測分割掩碼。

Mask R-CNN 的優點:

  • 由於目前已有許多設計良好,可用於Faster R-CNN的構架,因此,作為Faster R-CNN的擴展,Mask R-CNN在應用時也沒有阻礙;

  • 考慮到掩碼層只給整個系統增加一小部分計算量,所以該方法運行起來非常高效;

  • Mask R-CNN 還可以很容易泛化到其它任務上。比如,可以在同一個框架中估計人物的動作。

在COCO測試中可以看到,Mask R-CNN 在實例分割、邊界框目標檢測和人物關鍵點檢測這三個難點上都獲得了較好的實驗效果,並且比每個現有的獨立模型,包括 COCO 2016 挑戰賽的獲勝模型,表現都要好。

所以,我們希望該方法能為簡化勢力層面的識別打下一個堅實的基礎。

實驗結果圖&表

研究人員進行了一系列實驗來分析Mask R-CNN的運行效果。例如,把Mask R-CNN放在 COCO 測試集上進行測試、對比多項掩碼和單項掩碼(Multinomial vs. Independent Masks)、對比Class-Specific 和Class-Agnostic Masks、對比RoIAlign和RoIWarp等。以下是論文中出現的部分實驗圖和表格:

技術分享

  • 圖2:Mask R-CNN在 COCO 測試集上的測試結果。結果顯示,Mask R-CNN能用 ResNet-101,在 5 fps 的度下實現 35.7 的 mask AP。圖上不同的顏色表示不同的掩碼,另外也給出的邊界框、類別和置信度。

技術分享

  • 圖 3:頂端架構:我們延展了兩個已有的 Faster R-CNN 頭 [14,21]。左圖和右圖分別展示了 ResNet C4 和 FPN 的主幹的頂端部分,分別來自 [14] 和 [21],而且可以看到上面還增加了一個 mask 分支。圖中的數字表示空間分辨率和信道,箭頭表示卷積、去卷積或全連接層。具體可以根據情況推斷(卷積會保持空間維度而去卷積會增加空間維度)。除了輸出卷積是 1×1 之外,其它所有卷積都是 3×3,去卷積是 2×2,步幅為 2。我們在隱藏層中使用 ReLU [24]。左圖中 res5 表示 ResNet 的第 5 階段,但為了簡單起見,我們做了修改,使第 1 個卷積層運行在一個 7×7 RoI 上,步幅為 1(而不是如 [14] 中的 14×14,步幅為 2)。右圖中的 ×4 表示 4 個連續卷積的堆疊。

技術分享

  • 表 1:在 COCO test-dev 上的實例分割 mask AP。MNC [7] 和 FCIS [20] 分別是 COCO 2015 和 2016 分割挑戰賽的獲勝模型。僅有Mask R-CNN,其表現就超過了更復雜的 FCIS+++——其包括多種規模的訓練/測試、水平翻轉測試和 OHEM [29]。所有的項都是單個模型的結果。

技術分享

  • 表2:Mask R-CNN 的分解表。在 trainval35k 上訓練,在 minival 上測試。主要是 mask AP 的成績,除非有特別指明。

上圖顯示,更深層的網絡(圖2a:50 vs 101)和更先進的設計(包括FPN和ResNeXt)都對Mask R-CNN有幫助作用。不過,也不是所有框架都能自動從中受益。

技術分享

  • 表3:在 test-dev 上目標檢測單個模型的結果(邊界框 AP)vs 當前最佳。使用 ResNet-101-FPN 的 Mask R-CNN 的表現超越了所有之前最佳模型的基本變體(在這些實驗中忽略了 mask output)。Mask R-CNN 在 [21] 的基礎上獲得的增益得益於對 RoIAlign (+1.1 APbb)、多任務訓練 (+0.9 APbb) 和 ResNeXt-101 (+1.6 APbb) 的使用。

技術分享

    • 圖6:用Mask R-CNN (ResNet-50-FPN)在COCO測試上進行關鍵點測試。該模型在 5 fps 條件下實現了 63.1 的關鍵點 AP。

技術分享
  • 表 4:在 COCO test-dev 上的關鍵點檢測 AP。ResNet-50-FPN 是以 5 fps 運行的單個模型。CMUPose+++[4] 是 2016 年的比賽獲勝者,使用了多尺度測試、帶有 CPM 的後處理 [33] 和帶有一個目標檢測器的濾波,累加約 5 分(在個人通信中闡明的)。G-RMI 是在 COCP plus MPII [1](2.5 萬張圖像)上訓練的,使用了兩個模型(Inception-ResNet-v2 + ResNet- 101)。由於使用了更多數據,所以不是與 Mask R-CNN 的直接對比。

源代碼見:https://github.com/Mark110/Master-R-CNN

Tensorflow實現Mask R-CNN實例分割通用框架,檢測,分割和特征點定位一次搞定(多圖)