完全理解PolarMask-圖像實例分割-anchor free新思路

2020-12-13 百度校園

作者:張澤平 來源:人工智慧學習圈

PolarMask在CVPR2020提出,是基於單張2D照片進行實例分割的典範。

Arxiv: https://arxiv.org/abs/1909.13226

Official GitHub: https://github.com/xieenze/PolarMask

突出工作使用加粗標明。

突出工作使用加粗標明。

FCOS

PolarMask基於FCOS,全名Fully Convolutional One-Stage Object Detection。實現了在沒有錨點且不被建議的情形下,實現了目標檢測算法。並且提出了Center-Ness的思想,性能表現與目前許多比較主流的基於錨框的目標檢測算法相同,甚至還有提高。

為什麼不使用錨框成為熱點研究方向

錨框首先在Fast R-CNN中提出,後續在許多YOLO等知名目標檢測模型中應用。但錨框有缺點。首先檢測效果和錨框的長寬比、數目有很大關聯,因此人們在努力提高錨框的數量,和最適合的分布方法。其次,錨框的外形是固定的,在處理較大的目標比較困難,比如飛機的兩翼。同時對於小目標也不夠友好。為了提高召回率,大量的錨框增加了計算量和內存佔用。因此,anchor free方法的潛力成為業界最希望提高性能的目標之一。

Fig1 錨框定位

FCOS首先使用BackOne CNN提取特徵。FCOS對逐一像素都進行回歸,對不規則輸入友好,這一點和FCN很像。而FCN和CNN的區別就在於把CNN最後的連接層換成卷積層,輸出一張已經Label好的照片。(Fig.2)

Fig2 FCN結構示意圖

對比Mask R-CNN的貢獻

MASK-RNN的工作流程是「先檢測,再分割」。在檢測框的基礎上進行像素級的語義分割,同時取得了接近SOTA的性能。PolarMask和它的目的一致,都是instance segmentation.(Fig.3)

Fig.3 Differences bet. Semantic Segmentation and Instance Segmentation

但是Mask-RNN主要完成像素級建模(Fig.4),而PolarMask是基於極坐標系建模(Fig.5)。雖然對於凹的物體有性能損失,但PolarMask還是有意義的。一個是Mask RCNN的上限也達不到100mAP,另一個是根據目前的發展,無論是Mask RCNN還是PolarMask,實際性能距離1--mAP的上限還有一定距離。

Fig.4 Pixel-wise Representation
Fig.5 Polar Representation

PolarMask基於極坐標關係建模輪廓,把實例分割問題轉化為實例中心點分類問題和密集距離回歸問題。同時提出了Polar CenterNess和Polar IoU Loss以優化High-Quality正樣本採樣和dense distance regression的損失函數優化。根據作者的思路,採用FCOS主要為了簡單和可靠。FCOS是目前主流的anchor-free檢測器,十分通用而且簡單。

網絡架構

Fig.6 PolarMask Structure

標準的backbone+FPN模型。左側部分包含主幹和要素金字塔,以提取不同級別的要素。中間是分類和極性遮罩回歸的兩個方向,H,W,C指特徵圖的高度、寬度、通道。而k是類別數,n是射線數。以下的實驗性能都基於n=36。

Polar Segmentation建模

說白了,輸入一張原圖。經過網絡可以得到中心點的位置和36根射線的交點的距離。之後連接這些點構成一個輪廓。連通區域就是實例分割的結果。(Fig.7)

Fig.7 Polar Segmentation建模

在實驗中,文章以重心為基準,映射到特徵圖上。在重心周圍採樣作為正樣本,別的地方作為負樣本。訓練方式和FCOS一致,使用FOCAL LOSS。文章中提出了一種Polar CenterNess用來選擇高質量的正樣本,並且給低質量的正樣本降低權重。這是一個很聰明的做法。這種做法的思路具有通用性。

Polar CenterNess

通過下面的公式,我們很容易看出來正樣本的充分條件是d min > d max.

這就意味著,一個具有良好長度回歸的樣本,是36根射線比較均衡的情況。Polar Centerness的工作實際上就是給比較均衡情況的點比較高的權重,或者對比的看,削弱不那麼均衡的點的權重。

根據作者的實驗結果,Polar Centerness可以不增加網絡複雜度的情況下,提高1.4的性能

Polar IoU Loss

在PolarMask中,需要回歸k(k=36)根射線與重心的距離,如何監督regression branch是一個問題。文中提出Polar IoU Loss近似計算出predict mask和gt mask的iou,通過Iou Loss 更好的優化mask的回歸。Polar IoU Loss的計算方法如下所示。(Fig.8)其實就是簡化了計算,最快地看到效果。

Fig.8 Polar IoU Loss

後記:

註:代碼目前已經發布,四張Tesla V100可以在15個小時內訓練好PolarMask(讓我看看我的GTX 960要多久)

再註:作者給出了很友好的示例。讀完論文筆者半夜兩點還在嘗試部署。應該是未來一個熱點方向。今年CVPR Segmentation好多灌水文章,精華更應該認真看看。

又註:如果你電腦性能不高,可以直接用訓練好的模型:

https://drive.google.com/drive/folders/1EWtLhWSGuJVtMCS8mTvKNxdYYpz7ufjV?usp=sharing

而我的960M看起來不服,甚至躍躍欲試。

再再註:希望AMD早日出一個可以與CUDA媲美的計算庫,天下苦皮衣久矣。(Vega用戶,利益相關

原文連結:https://zhuanlan.zhihu.com/p/147037149

相關焦點

  • 算法| 超Mask RCNN速度4倍,僅在單個GPU訓練的實時實例分割算法
    在過去的幾年中,在實例分割方向取得了很大進展,部分原因是借鑑了物體檢測領域相關的技術。比如像 mask RCNN 和 FCIS 這樣的實例分割方法,是直接建立在像Faster R-CNN 和 R-FCN 這樣的物體檢測方法之上。然而,這些方法主要關注圖像性能,而較少出現 SSD,YOLO 這類關注實時性的實例分割算法。因此,本文的工作主要是來填補這一空白。
  • 目標檢測:Anchor-Free時代
    每個通道是一個binary mask,表示一個類的角點位置。對於每個角點來說,只有一個gt正例位置,其他都為負例位置。訓練時,以正例位置為圓心,設置半徑為r的範圍內,減少負例位置的懲罰(採用二維高斯的形式),如上圖所示。
  • 先理解Mask R-CNN的工作原理,然後構建顏色填充器應用
    實例分割是一種在像素層面識別目標輪廓的任務,相比其他相關任務,實例分割是較難解決的計算機視覺任務之一:分類:這張圖像中有一個氣球。語義分割:這些全是氣球像素。目標檢測:這張圖像中的這些位置上有 7 個氣球。實例分割:這些位置上有 7 個氣球,並且這些像素分別屬於每個氣球。
  • Facebook 最新論文:Mask R-CNN實例分割通用框架,檢測,分割和特徵...
    近日, FAIR部門的研究人員在這一領域又有了新的突破——他們提出一種目標實例分割(object instance segmentation)框架Mask R-CNN,該框架較傳統方法操作更簡單、更靈活。研究人員把實驗成果《Mask R-CNN》發布在了arXiv上,並表示之後會開源相關代碼。以下為AI科技評論據論文內容進行的部分編譯。
  • 性能提升30%以上,實時實例分割算法SOLOv2實現產業SOTA
    SOLOv2 算法可以按位置分割物體,完成實例分割任務,同時還兼具實時性。由於其出色地兼顧了精度和速度,已經被廣泛應用於自動駕駛、機器人抓取控制、醫療影像分割、工業質檢和遙感圖像分析等領域。自下而上的實例分割方法這類方法比較好理解,先進行像素級別的語義分割,再通過聚類、度量學習等手段區分不同的實例。PolarMask、SOLO 系列算法就是其中的代表。
  • FAIR最新視覺論文集錦:FPN,RetinaNet,Mask 和 Mask-X RCNN(含代碼...
    之後會講實例分割的創新。最後聊聊依靠弱半監督模型來擴展實例分割。   FPN   特徵金字塔網絡 (FPN) [1] 發表在 2017 年的 CVPR 上。如果你關注最近兩年計算機視覺的發展,就知道冥冥之中存在著那樣一些優秀的算法,而你要做的,就是等著大神們把它寫出來、訓練好、再公開源碼。
  • 阿德萊德大學在讀博士陳昊:高質高效的實例分割模型BlendMask:公開...
    實例分割,是機器自動從圖像中用目標檢測的方法框出不同的實例,然後用語義分割的方法在不同的實例區域內進行逐像素標記的過程。簡單的理解就是:在同一個類的實例中區分不同的實例。在計算機視覺的任務中,由於實例分割是像素級識別輪廓任務,因此與其他類似的視覺任務相比,實例分割屬於最困難的視覺任務之一。實例分割兼具目標檢測和語義分割的特點,因此逐漸演化出基於語義分割的down-top apporach與基於目標檢測的top-down apporach兩種方法。
  • PPDet:減少Anchor-free目標檢測中的標籤噪聲,小目標檢測提升明顯
    在此基礎上,開發了一種新的單階段anchor-free目標檢測器PPDet,以在訓練過程中採用這種標記策略,並在推理過程中採用類似的預測合併方法。在COCO數據集上,PPDet在anchor-free的自上而下檢測器中實現了最佳性能,並與其他最新方法具有同等水平。它在檢測小物體方面也優於所有最新方法(AP 31.4)。
  • 代碼詳解:用Mask R-CNN賦予自動駕駛汽車「火眼金睛」
    圖像分割概覽讓我們先來簡單回顧一下圖像分割:圖像分割即為圖片的每個對象創建一個像素級的掩膜,該技術可使大家對圖像中的對象有更深入的了解。下圖將助你理解何為圖像分割。如圖所示,每個對象(即該圖中的每個單元)已彼此分離,這就是圖像分割的工作原理。
  • FCOS:全卷積一階段Anchor Free物體檢測器,多種視覺任務的統一框架
    介紹基於anchor的物體檢測器的缺點,這個基本上每篇anchor free的文章都會列一遍。檢測性能依賴於anchor的尺寸,比例,數量,這些都需要非常精細的設計。現在的各種計算機視覺的任務,比如分割,深度預測,關鍵點加測,計數等等,都是全卷積的結構,就物體檢測是個例外。那麼,很自然的就有了一個問題:我們能不能把物體檢測也變成類似分割那樣的逐像素的預測問題呢?這樣的話,這些視覺相關的任務就都統一成了一個架構了,所以說,這篇文章就是幹了這麼個事情。
  • .| 深度學習理論與實戰:提高篇(14)——Mask R-CNN代碼簡介
    下圖是運行的效果,我們可以看到它檢測出來4個目標物體,並且精確到像素級的分割處理物體和背景。接下來是load_mask函數,這個函數需要返回圖片中的目標物體的mask。這裡需要稍作說明。通常的實例分隔數據集同時提供Bounding box和Mask(Bounding的某個像素是否屬於目標物體)。為了更加通用,這裡假設我們值提供Mask(也就是物體包含的像素),而Bounding box就是包含這些Mask的最小的長方形框,因此不需要提供。
  • 潮科技行業入門指南 | 深度學習理論與實戰:提高篇(14)——Mask R...
    下圖是運行的效果,我們可以看到它檢測出來4個目標物體,並且精確到像素級的分割處理物體和背景。圖:Mask RCNN檢測效果train_shapes.ipynb除了可以使用訓練好的模型,我們也可以用自己的數據進行訓練,為了演示,這裡使用了一個很小的shape數據集。
  • 谷歌通過深度度量學習,提出新的語義實例分割方法
    圖像語義分割是在圖像中識別問題對象及其類別的問題(如人和汽車)。雷鋒網了解到,谷歌研究院近日與UCLA合作,提出了一種新的語義實例分割方法:首先計算兩個像素屬於同一對象的可能性,然後將相似的像素分組在一起。其中,相似性度量是基於深度,完全卷積的嵌入模型,而分組方法是基於選擇所有與一組「種籽點」足夠相似的點,這個選擇模型是一個深度的、完全卷積的評分模型。
  • 終極指南:構建用於檢測汽車損壞的Mask R-CNN模型(附Python演練)
    Mask R-CNN是一個實例分割模型,它允許我們識別目標類別的像素位置。「實例分割」意味著對場景內的各個目標進行分段,無論它們是否屬於同一類型- 即識別單個車輛,人員等。查看以下在COCO數據集上訓練的Mask-RCNN模型的GIF 。如你所見,它可以識別汽車,人員,水果等的像素位置。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    Mask R-CNN 可以應用到人體姿勢識別,並且在實例分割、目標檢測、人體關鍵點檢測三個任務都取得了很好的效果。因此,百度深度學習框架 PaddlePaddle 開源了用於目標檢測的 RCNN 模型,從而可以快速構建強大的應用,滿足各種場景的應用,包括但不僅限於安防監控、醫學圖像識別、交通車輛檢測、信號燈識別、食品檢測等等。
  • 計算機視覺:圖像檢測和圖像分割有什麼區別?
    字幕組雙語原文:計算機視覺:圖像檢測和圖像分割有什麼區別?英語原文:What is the difference between Object Detection and Image Segmentation?
  • 在PyTorch中使用DeepLabv3進行語義分割的遷移學習
    當我在使用深度學習進行圖像語義分割並想使用PyTorch在DeepLabv3[1]上運行一些實驗時,我找不到任何在線教程。並且torchvision不僅沒有提供分割數據集,而且也沒有關於DeepLabv3類內部結構的詳細解釋。然而,我是通過自己的研究進行了現有模型的遷移學習,我想分享這個過程,這樣可能會對你們有幫助。
  • Guided Anchoring: 物體檢測器也能自己學 Anchor
    值此新(ji)春(xu)佳(ban)節(zhuan)之際,打算介紹一些做過的工作,寫一下對這個領域的理解,另外有空的話也會講講 mmdetection 的設計和一些實現。作為開篇,就講一下啟動最早的一個項目,"Region Proposal by Guided Anchoring"。
  • 基於輪廓調整的SOTA實例分割方法,速度達32.3fps|CVPR 2020
    作者 | VincentLee來源 | 曉飛的算法工程筆記介紹實例分割是許多計算機視覺任務中的重要手段,目前大多數的算法都採用在給定的bbox中進行pixel-wise分割的方法。受snake算法和Curve-GCN的啟發,論文採用基於輪廓的逐步調整策略,提出了Deep snake算法進行實時實例分割,該算法將初始輪廓逐漸優化為目標的邊界,如圖1所示,達到很好的性能且依然保持很高的實時性(32.3fps) 。