
發布
注冊
/
登錄Mask R-CNN的案例
使用 Mask R-CNN、GrabCut 和 OpenCV 進行圖像分割 ¥5
在本文中,我們探討了三種流行的圖像分割技術:Mask R-CNN、GrabCut 和 OpenCV。
讓我們了解一下,什么是 Mask R-CNN 和 GrabCut 的圖像分割?
1 什么是 R-CNN?
R-CNN代表基于區域的卷積神經網絡。它是一個開創性的對象檢測系統,將對象定位和識別結合到一個端到端的深度學習框架中。
?
R-CNN
RNN 可以概括為以下幾種方式。
· 區域建議:最初,區域建議算法(如選擇性搜索)會在圖像中生成一組可能包含感興趣對象的潛在邊界框區域。這些區域用作候選對象位置。
· 特征提取:然后,每個區域提案都會被單獨裁剪并調整為固定大小,并通過預先訓練的 CNN(例如 AlexNet 或 VGGNet)傳遞。CNN 從區域中提取高級特征,將其轉換為固定長度的特征向量。
· 分類和定位:從 CNN 獲得的特征向量被饋送到單獨的全連接層中。分類層預測區域中存在不同對象類別的概率,而回歸層細化邊界框的坐標,從而提高定位精度。
· 非極大值抑制 (NMS):為了消除冗余檢測,將應用非極大值抑制。它刪除了重疊的邊界框,只為每個對象實例保留最可信的檢測。
2 掩碼 R-CNN
掩碼 R-CNN(基于掩碼區域的卷積神經網絡)是更快的 R-CNN 對象識別框架升級,增加了執行實例分割的功能。該研究由 Kaiming He、Georgia Gkioxari、Piotr Dollár 和 Ross Girshick 在 2017 年出版的著作《Mask R-CNN》中提出。
實例分割的任務不僅包括檢測圖像中的對象,還包括在像素級別分割每個對象實例,從而為每個檢測到的對象提供二進制掩碼。掩碼 R-CNN 在 Faster R-CNN 的兩階段架構上開發,第三個分支用于像素級分割掩碼。
展開 12篇論文看盡深度學習目標檢測史
2017: Mask R-CNN
Mask R-CNN
Mask R-CNN并不是一個典型的目標檢測網絡。它被設計來解決一個具有挑戰性的實例分割任務,即為場景中的每個對象創建一個掩碼。然而,Mask R-CNN 展示了對 Faster R-CNN 框架的一個很好的擴展,反過來也激發了目標檢測的研究。其主要思想是在已有的邊界框和分類分支的基礎上,在 ROI pooling之后增加一個二進制掩碼預測分支。此外,為了解決原始的 ROI Pooling 層的圖像量化誤差問題,Mask R-CNN 還提出了一個新的 ROI Align 層,該層實際上使用了雙線性圖像重采樣。如你所料,多任務訓練(分割 + 檢測)和新的 ROI Align 層都有助于改進邊界框benchmark。
2018: PANet
用于實例分割的路徑聚合網絡
實例分割與目標檢測有著密切的關系,因此一個新的實例分割網絡通常也可以間接地為目標檢測分析研究帶來好處。PANet 旨在通過在原有的自上而下路徑之后增加一個自下而上的路徑,來促進 Mask R-CNN 的 FPN 頸部的信息流??梢暬@種變化就是,在多層池化特征之前,我們在原來的 FPN 的脖子上有一個↑↑結構,而 PANet 使它更像一個↑↓↑ 結構。同時,在 Mask R-CNN 的 ROIAlign 融合 (逐元素最大值的和)多尺度特性之后,PANet 增加了一個“自適應特性池化”層,而不是每個特性層都有單獨的池化。
2019: NAS-FPN
NAS-FPN: 學習可擴展特征金字塔結構的目標檢測
PANet的成功引起了一組 NAS 研究人員的注意。他們使用了來自圖像分類網絡 NASNet 的類似的強化學習方法,重點搜索融合單元的最佳組合。
展開 一文讀懂深度學習在計算機視覺領域中的應用
到目前為止,我們已經看到了如何以許多有趣的方式使用CNN功能來在帶有邊界框的圖像中有效地定位日常用品。我們可以擴展這些技術來定位每個對象的精確像素,而不僅僅是邊界框嗎?
CNN在此項任務中同樣表現優異,典型算法是Mask R-CNN。Mask R-CNN在Faster R-CNN的基礎上添加了一個分支以輸出二元掩膜。該分支與現有的分類和邊框回歸并行,如下圖所示:
Faster-RCNN在實例分割任務中表現不好,為了修正其缺點,Mask R-CNN提出了RolAlign層,通過調整Rolpool來提升精度。從本質上講,RolAlign使用雙線性插值避免了取整誤差,該誤差導致檢測和分割不準確。
一旦掩膜被生成,Mask R-CNN結合分類器和邊框就能產生非常精準的分割:
結論
以上五種計算機視覺技術可以幫助計算機從單個或一系列圖像中提取、分析和理解有用信息。此外,還有很多其它的先進技術等待我們的探索,比如風格轉換、動作識別等。希望本文能夠引導你改變看待這個世界的方式。
展開 計算機視覺四大基本任務(分類、定位、檢測、分割)
Mask R-CNN 用FPN進行目標檢測,并通過添加額外分支進行語義分割(額外分割分支和原檢測分支不共享參數),即Mask R-CNN有三個輸出分支(分類、坐標回歸、和分割)。此外,Mask R-CNN的其他改進有:(1). 改進了RoI匯合,通過雙線性差值使候選區域和卷積特征的對齊不因量化而損失信息。(2). 在分割時,Mask R-CNN將判斷類別和輸出模板(mask)這兩個任務解耦合,用sigmoid配合對率(logistic)損失函數對每個類別的模板單獨處理,取得了比經典分割方法用softmax讓所有類別一起競爭更好的效果。
參考文獻
V. Badrinarayanan, et al. SegNet: A deep convolutional encoder-decoder architecture for image segmentation. TPAMI, 2017.
Y. Bengio, et al. Representation learning: A review and new perspectives. TPAMI, 2013.
L.-C. Chen, et al. SegNet: A deep convolutional encoder-decoder architecture for image segmentation. PAMI, 2017.
S. Chetlur, et al. cuDNN: Efficient primitives for deep learning. arXiv: 1410.0759, 2014.
J. Cong, and B. Xiao.
展開 
對象檢測 vs 對象識別 vs 圖像分割
其中最受歡迎的是 K He 等人提出的 Mask R-CNN。2017 年。
?
編輯
對象檢測與分割(來源:鏈接)
主要有兩種類型的細分:
實例分割:同一類的多個實例是單獨的段,即同一類的對象被視為不同。因此,即使它們屬于同一類,所有對象也都用不同的顏色著色。
語義分割:同一類的所有對象都形成一個分類,因此,同一類的所有對象都由相同的顏色著色。
?
編輯
語義與實例分割(來源:鏈接)
應用:
上面討論的對象識別技術可用于許多領域,例如:
無人駕駛汽車:對象識別用于檢測路標、其他車輛等。
醫學影像處理:物體識別和圖像處理技術可以幫助更準確地檢測疾病。圖像分割有助于檢測體內存在的缺陷的形狀。例如,用于乳腺癌檢測的 Google AI 比醫生更準確地檢測。
監控和安防:如人臉識別、物體跟蹤、活動識別等。
?
展開 4萬字一文帶你看懂車載攝像頭技術、市場、發展前景
實例分割是目前最具挑戰的任務之一,下面將主要對基于Mask R-CNN的主流圖像分割方法和實例分割新方法Deep Snake進行介紹。
圖像分割技術發展至今,Mask R-CNN 的Pipeline幾乎是目前做instance segmentation的大多數工作參考的方案。
Mask R-CNN將Object Detection與Semantic Segmentation合在了一起做。它的特點主要有以下幾點:
第一,神經網絡有了多個通道輸出。Mask R-CNN使用類似Faster R-CNN的框架,Faster R-CNN的輸出是物體的bounding box和類別,而Mask R-CNN則多了一個通道,用來預測物體的語義分割圖。也就是說神經網絡同時學習兩項任務,可以互相得到反饋,訓練模型參數權重。
第二,在語義分割中使用Binary Mask。原來的語義分割預測類別需要使用0 1 2 3 4等數字代表各個類別。在Mask R-CNN中,檢測分支會預測類別。這時候分割只需要用0 1預測這個物體的形狀面具就行了。
第三,Mask R-CNN基本的pipeline是先檢測物體矩形框,然后在矩形框中做逐像素分割。并且提出了RoiAlign用來替換Faster R-CNN中的RoiPooling。RoiPooling的思想是將輸入圖像中任意一塊區域對應到神經網絡特征圖中的對應區域。RoiPooling使用了化整的近似來尋找對應區域,導致對應關系與實際情況有偏移。這個偏移在分類任務中可以容忍,但對于精細度更高的分割則影響較大。為了解決這個問題,RoiAlign不再使用化整操作,而是使用線性插值來尋找更精準的對應區域。
展開 收藏 | 深度學習在計算機視覺領域的應用總結
在具體應用領域也出現了不少成功的模型,比如
detection問題的R-CNN,fast RCNN,faster RCNN,SSD,YOLO,RetinaNet,CornerNet等,
解決segmentation問題的FCN,DeepLab,Parsenet,Segnet,Mask R-CNN,RefineNet,PSPNet,U-Net等,
處理激光雷達點云數據的VoxelNet,PointNet,BirdNet,LMNet,RT3D,PIXOR,YOLO3D等,
實現激光雷達和圖像融合的PointFusion,RoarNet,PointRCNN,AVOD等,
做圖像處理的DeHazeNet,SRCNN (super-resolution),DeepContour,DeepEdge等,
2.5 D視覺的MatchNet,DeepFlow,FlowNet等,
3-D重建的PoseNet,VINet,Perspective Transformer Net,SfMNet,CNN-SLAM,SurfaceNet,3D-R2N2,MVSNet等,
以及解決模型壓縮精簡的MobileNet,ShuffleNet,EffNet,SqueezeNet,
。。。
下面我們針對具體應用再仔細聊。
圖像/視頻處理
(計算機視覺的底層,不低級)。
圖像處理,還有視頻處理,曾經是很多工業產品的基礎,現在電視,手機還有相機/攝像頭等等都離不開,是技術慢慢成熟了(傳統方法),經驗變得比較重要,而且芯片集成度越來越高,基本上再去研究的人就少了。經典的ISP,A3,都是現成的,當然做不好的也很難和別人競爭,成本都降不下來。
展開 基于深度學習的無人機航拍目標檢測研究綜述
圖2 兩階段目標檢測算法結構圖
Fig.2 Structure of two-stage object detection algorithm
2014年Girshick等[18]嘗試在AlexNet的基礎上將Region Proposal和CNN結合起來,提出了檢測性能有著大幅提升的R-CNN算法。He等[19]在卷積神經網絡中使用了空間金字塔池化(Spatial Pyramid Pooling,SPP)模塊,解決了輸入固定大小圖片的限制且避免了重復提取圖像特征。2015年,Grishick[20]在R-CNN和SPP-Net算法結構的基礎上的提出了使用興趣區域(Region of Interest,ROI)池化的Fast R-CNN,實現了端到端的檢測。Ren等[21]提出了Faster R-CNN改進了候選區域的生成方法,使用候選區域生成網絡(Region Proposal Network,RPN) 代替了Selective Search算法,實現了整個網絡共享卷積特征,進一步提高了檢測速度。
1.3 基于單階段方法的目標檢測
單階段方法只需對圖片處理一次就能獲得目標的分類和位置信息,運行速度較快,可以應用于對實時性要求較高的場景。
2015年Redmon等[22]提出YOLO(You Only Look Once)算法,使用一個單獨的神經網絡,完成從圖片輸入到目標位置和類別信息的輸出。2016年Liu等[23]提出了SSD(Single Shot MultiBox Detector)算法,進行多尺度特征的提取。圖3為YOLO和SSD算法結構對比。
展開