曾因「搶車位」出圈兒,神奇的Mask R-CNN瞭解一下?

自從深度學習被應用到計算機視覺領域,目標檢測算法在短時間內有了很大的進步,甚至有人爲了搶個車位用上了Mask R-CNN進行自動檢測

能有這樣的神仙操作,多虧了Mask R-CNN在物體檢測中能得到像素級別的檢測結果。Mask R-CNN能夠對每一個目標物體,不僅給出其邊界框,並且對邊界框內的各個像素是否屬於該物體進行標記!本文選自《深度學習與目標檢測》一書,帶我們一同來了解一下這個神奇的Mask R-CNN~

2017年,Kaiming He等人提出了針對實例分割(instance segmentation)的Mask R-CNN模型[1],將Mask R-CNN看成在Faster R-CNN基礎上進行的擴展,在其已有的基於邊界框識別的分支上添加了一個並行的用於預測目標掩碼的分支,以完成實例分割任務

實例分割簡介

語義分割(semantic segmentation)通常是在像素級別上進行的,用於標註不同的類別。

例如,在自動駕駛項目中,一個類別可能是指行人、車輛、廣告牌或者其他模型需要識別的類別。模型通過學習,最終會形成對行人、車輛、廣告牌等不同類別的劃分標準。但是,若僅進行語義分割,有時會出現問題,如圖。

語義分割上圖是一幅標註得很精確的語義分割圖片,不僅不同類別之間的邊界清晰,而且分類準確。但是,圖中所有的車都被標註成“車”這個類別(因爲圖片上的車之間有重疊,所以有些算法在理解這個信息時就會遇到問題)。畢竟這不是一輛長度爲一個街區長度的履帶式車輛,而是一系列前後排列的、單獨停在路邊的車輛。

語義分割只能區分不同的類別,但不能區分不同的實例(兩輛車雖爲同一類別,但它們作爲不同實例的區別並不能在語義分割中體現)。

這時,實例分割的意義就顯現出來了。實例分割可以作爲目標檢測與語義分割的結合,它不僅能在圖像中正確地將目標檢測出來,還能對每個目標實例進行精準的分割,效果如圖。

實例分割實例分割是在語義分割的基礎上對不同的實例進行逐像素的分割。

與語義分割相比,實例分割對屬於同一個類別的不同目標實例進行了區分。這樣的標註更容易讓自動駕駛車輛模型取得滿意的結果。儘管基於實例的標註會花費較長的時間,但是對企業級的標註項目而言,可以通過這個細微的變化大幅提升精確度,進而得到更優秀的算法。

COCO數據集的像素級標註

Mask R-CNN的訓練是在COCO數據集上進行的。

在COCO數據集的目標檢測任務中,檢測結果的保存格式有兩種:一種是使用一個2D邊界框來定位圖像中不同的目標(在對定位精度要求較高的應用中顯得有些粗糙);另一種是逐像素對目標進行分割(相應地,圖像中的每個像素都會被標註出來)。儘管不同的標註方式來源於不同的項目需求,但近年來對像素級別的實例分割的需求正在增加。

COCO數據集逐像素分割的總體思路是:提供每一個目標實例在整幅圖像的每個像素上的分割掩碼(segmentation mask),用1和0區分目標和背景,掩碼的像素級標籤使用行程長度編碼(run-length encoding,RLE)機制。RLE是一種簡單、高效的二進制掩碼儲存格式。RLE首先將向量(或者向量化的圖像)劃分爲一系列分段的連續區域,對每個區域儲存其長度。例如,當 M=[0 0 1 1 1 0 1]時,其RLE計數爲 [2 3 1 1],而當 M=[1 1 1 1 1 1 0]  時,其RLE計數爲 [0 6 1]。RLE 計數的奇數位置上表示的總是0的數量。


*[1] K. He, G. Gkioxari, P. Dollar, et al. Mask R-CNN. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, PP(99):1-1. 

—— 圖書推薦 ——

▊《深度學習與目標檢測》杜鵬 諶明 蘇統華 編著

本書的寫作初衷是,從學者的角度,用一種通俗易懂的方式,把與基於深度學習的目標檢測的相關論文中的理論和方法呈現給讀者,同時針對作者在深度學習教學過程中遇到的難點,進行深入的分析和講解。

本書側重對卷積神經網絡的介紹,而深度學習的內容不止於此。所以,作者將深度學習分爲有監督學習、無監督學習和強化學習三類,將圖像分類、目標檢測、語音識別、人臉識別、對抗生成網絡和AlphaGo圍棋等應用場景歸入不同的類別,並分別對其原理進行了概括性的講解。

▲ 新書上市,掃碼獲取詳情 ▲


更多科技資訊請見微信公衆號:博文視點Broadview(微信號:bvbooks)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章