大話目標檢測經典模型:Mark R-CNN

AIBigbull2050發表於2019-10-11



2019-10-10 22:00:56
大話目標檢測經典模型:Mark R-CNN

在之前的文章中介紹了目標檢測經典模型(R-CNN、Fast R-CNN、Faster R-CNN),目標檢測一般是為了實現以下效果:

大話目標檢測經典模型:Mark R-CNN

在R-CNN、Fast R-CNN、Faster R-CNN中,實現了對目標的識別和定位,如下圖所示:

大話目標檢測經典模型:Mark R-CNN

為了更加精確地識別目標,實現在畫素級場景中識別不同目標,利用“影像分割”技術定位每個目標的精確畫素,如下圖所示(精確分割出人、汽車、紅綠燈等):

大話目標檢測經典模型:Mark R-CNN

Mask R-CNN便是這種“影像分割”的重要模型。

Mask R-CNN的思路很簡潔,既然Faster R-CNN目標檢測的效果非常好,每個候選區域能輸出種類標籤和定位資訊,那麼就在Faster R-CNN的基礎上再新增一個分支從而增加一個輸出,即物體掩膜(object mask),也即由原來的兩個任務(分類+迴歸)變為了三個任務(分類+迴歸+分割)。如下圖所示,Mask R-CNN由兩條分支組成:

大話目標檢測經典模型:Mark R-CNN

Mask R-CNN的這兩個分支是並行的,因此訓練簡單,僅比Faster R-CNN多了一點計算開銷。

分類和定位在Faster R-CNN中有介紹過了(詳見文章:大話目標檢測經典模型RCNN、Fast RCNN、Faster RCNN),在此就不再重複介紹,下面重點介紹一下第二條分支,即如何實現畫素級的影像分割。

如下圖所示,Mask R-CNN在Faster R-CNN中新增了一個全卷積網路的分支(圖中白色部分),用於輸出二進位制mask,以說明給定畫素是否是目標的一部分。所謂二進位制mask,就是當畫素屬於目標的所有位置上時標識為1,其它位置標識為 0

大話目標檢測經典模型:Mark R-CNN

從上圖可以看出,二進位制mask是基於特徵圖輸出的,而原始影像經過一系列的卷積、池化之後,尺寸大小已發生了多次變化,如果直接使用特徵圖輸出的二進位制mask來分割影像,那肯定是不準的。這時就需要進行了修正,也即使用RoIAlign替換RoIPooling

大話目標檢測經典模型:Mark R-CNN

如上圖所示,原始影像尺寸大小是128x128,經過卷積網路之後的特徵圖變為尺寸大小變為 25x25。這時,如果想要圈出與原始影像中左上方15x15畫素對應的區域,那麼如何在特徵圖中選擇相對應的畫素呢?

從上面兩張圖可以看出,原始影像中的每個畫素對應於特徵圖的25/128畫素,因此,要從原始影像中選擇15x15畫素,則只需在特徵圖中選擇2.93x2.93畫素(15x25/128=2.93),在RoIAlign中會使用雙線性插值法準確得到2.93畫素的內容,這樣就能很大程度上,避免了錯位問題。

修改後的網路結構如下圖所示(黑色部分為原來的Faster R-CNN,紅色部分為Mask R-CNN修改的部分)

大話目標檢測經典模型:Mark R-CNN

從上圖可以看出損失函式變為

大話目標檢測經典模型:Mark R-CNN

損失函式為分類誤差+檢測誤差+分割誤差,分類誤差和檢測(迴歸)誤差是Faster R-CNN中的,分割誤差為Mask R-CNN中新加的。

對於每個MxM大小的ROI區域,mask分支有KxMxM維的輸出(K是指類別數量)。對於每一個畫素,都是用sigmod函式求二值交叉熵,也即對每個畫素都進行邏輯迴歸,得到平均的二值交叉熵誤差Lmask。通過引入預測K個輸出的機制,允許每個類都生成獨立的mask,以避免類間競爭,這樣就能解耦mask和種類預測。

對於每一個ROI區域,如果檢測得到屬於哪一個分類,就只使用該類的交叉熵誤差進行計算,也即對於一個ROI區域中KxMxM的輸出,真正有用的只是某個類別的MxM的輸出。如下圖所示:

大話目標檢測經典模型:Mark R-CNN

例如目前有3個分類:貓、狗、人,檢測得到當前ROI屬於“人”這一類,那麼所使用的Lmask為“人”這一分支的mask。

Mask R-CNN將這些二進位制mask與來自Faster R-CNN的分類和邊界框組合,便產生了驚人的影像精確分割,如下圖所示:

大話目標檢測經典模型:Mark R-CNN

Mask R-CNN是一個小巧、靈活的通用物件例項分割框架,它不僅可以對影像中的目標進行檢測,還可以對每一個目標輸出一個高質量的分割結果。另外,Mask R-CNN還易於泛化到其他任務,比如人物關鍵點檢測,如下圖所示:

大話目標檢測經典模型:Mark R-CNN

從R-CNN、Fast R-CNN、Faster R-CNN到Mask R-CNN,每次進步不一定是跨越式的發展,這些進步實際上是直觀的且漸進的改進之路,但是它們的總和卻帶來了非常顯著的效果。

最後,總結一下目標檢測演算法模型的發展歷程,如下圖所示:

大話目標檢測經典模型:Mark R-CNN

牆裂建議

2017年,Kaiming He 等人發表了關於Mask R-CNN的經典論文《Mask R-CNN》,在論文中詳細介紹了Mask R-CNN的思想、原理和測試效果,建議閱讀該論文以進一步瞭解該模型。



https://www.toutiao.com/a6746174093235585544/



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2659616/,如需轉載,請註明出處,否則將追究法律責任。

相關文章