日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)

發(fā)布時(shí)間:2023/11/28 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CVPR目標(biāo)檢測(cè)與實(shí)例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)

  1. 目標(biāo)檢測(cè):FCOS(CVPR 2019)

目標(biāo)檢測(cè)算法FCOS(FCOS: Fully Convolutional One-Stage Object Detection),該算法是一種基于FCN的逐像素目標(biāo)檢測(cè)算法,實(shí)現(xiàn)了無錨點(diǎn)(anchor-free)、無提議(proposal free)的解決方案,并且提出了中心度(Center—ness)的思想,同時(shí)在召回率等方面表現(xiàn)接近甚至超過目前很多先進(jìn)主流的基于Anchor
box目標(biāo)檢測(cè)算法。

基于像素級(jí)預(yù)測(cè)一階全卷積目標(biāo)檢測(cè)(FCOS)來解決目標(biāo)檢測(cè)問題,類似于語音分割。目前大多數(shù)先進(jìn)的目標(biāo)檢測(cè)模型,例如RetinaNet、SSD、YOLOv3、Faster
R-CNN都依賴于預(yù)先定義的Anchor box。相比之下,本文提出的FCOS是anchor box free,而且也是proposal free,就是不依賴預(yù)先定義的Anchor box或者提議區(qū)域。通過去除預(yù)先定義的Anchor box,FCOS完全的避免了關(guān)于Anchor box的復(fù)雜運(yùn)算,例如訓(xùn)練過程中計(jì)算重疊度,而且節(jié)省了訓(xùn)練過程中的內(nèi)存占用。更重要的是,本文避免了和Anchor box有關(guān)且對(duì)最終檢測(cè)結(jié)果非常敏感的所有超參數(shù)。由于后處理只采用非極大值抑制(NMS),所以本文提出的FCOS比以往基于Anchor box的一階檢測(cè)器具有更加簡(jiǎn)單的優(yōu)點(diǎn)。

Anchor box缺點(diǎn)

l 檢測(cè)表現(xiàn)效果對(duì)于Anchor
box的尺寸、長(zhǎng)寬比、數(shù)目非常敏感,因此Anchor box相關(guān)的超參數(shù)需要仔細(xì)的調(diào)節(jié)。

l Anchor
box的尺寸和長(zhǎng)寬比是固定的,因此,檢測(cè)器在處理形變較大的候選對(duì)象時(shí)比較困難,尤其是對(duì)于小目標(biāo)。預(yù)先定義的Anchor box還限制了檢測(cè)器的泛化能力,因?yàn)?#xff0c;它們需要針對(duì)不同對(duì)象大小或長(zhǎng)寬比進(jìn)行設(shè)計(jì)。

l 為了提高召回率,需要在圖像上放置密集的Anchor
box。而這些Anchor box大多數(shù)屬于負(fù)樣本,這樣造成了正負(fù)樣本之間的不均衡。

l 大量的Anchor
box增加了在計(jì)算交并比時(shí)計(jì)算量和內(nèi)存占用。

FCOS詳細(xì)介紹

FCOS優(yōu)勢(shì)

l FCOS與許多基于FCN的思想是統(tǒng)一的,因此可以更輕松的重復(fù)使用這些任務(wù)的思路。

l 檢測(cè)器實(shí)現(xiàn)了proposal free和anchor free,顯著的減少了設(shè)計(jì)參數(shù)的數(shù)目。設(shè)計(jì)參數(shù)通常需要啟發(fā)式調(diào)整,并且設(shè)計(jì)許多技巧。另外,通過消除Anchor box,新探測(cè)器完全避免了復(fù)雜的IOU計(jì)算以及訓(xùn)練期間Anchor box和真實(shí)邊框之間的匹配,并將總訓(xùn)練內(nèi)存占用空間減少了2倍左右。

l FCOS可以作為二階檢測(cè)器的區(qū)域建議網(wǎng)絡(luò)(RPN),其性能明顯優(yōu)于基于錨點(diǎn)的RPN算法。

l FCOS可以經(jīng)過最小的修改便可擴(kuò)展到其他的視覺任務(wù),包括實(shí)例分割、關(guān)鍵點(diǎn)檢測(cè)。

算法詳細(xì)介紹

1.1全卷積一階檢測(cè)器

FCOS首先使用Backone CNN(用于提取特征的主干架構(gòu)CNN),另s為feature map之前的總步伐。

與anchor-based檢測(cè)器的區(qū)別

第一點(diǎn)

·
anchor-based算法將輸入圖像上的位置作為Anchor box的中心店,并且對(duì)這些Anchor box進(jìn)行回歸。

·
FCOS直接對(duì)feature map中每個(gè)位置對(duì)應(yīng)原圖的邊框都進(jìn)行回歸,換句話說FCOS直接把每個(gè)位置都作為訓(xùn)練樣本,這一點(diǎn)和FCN用于語義分割相同。

FCOS算法feature
map中位置與原圖對(duì)應(yīng)的關(guān)系,如果feature map中位置為 ,映射到輸入圖像的位置是

第二點(diǎn)

·
在訓(xùn)練過程中,anchor-based算法對(duì)樣本的標(biāo)記方法是,如果anchor對(duì)應(yīng)的邊框與真實(shí)邊框(ground truth)交并比大于一定閾值,就設(shè)為正樣本,并且把交并比最大的類別作為這個(gè)位置的類別。

·
在FCOS中,如果位置
落入任何真實(shí)邊框,就認(rèn)為它是一個(gè)正樣本,它的類別標(biāo)記為這個(gè)真實(shí)邊框的類別。

這樣會(huì)帶來一個(gè)問題,如果標(biāo)注的真實(shí)邊框重疊,位置
映射到原圖中落到多個(gè)真實(shí)邊框,這個(gè)位置被認(rèn)為是模糊樣本,后面會(huì)講到用多級(jí)預(yù)測(cè)的方式解決的方式解決模糊樣本的問題。

第三點(diǎn)

·
以往算法都是訓(xùn)練一個(gè)多元分類器

·
FCOS訓(xùn)練C個(gè)二元分類器(C是類別的數(shù)目)

與anchor-based檢測(cè)器相似之處

與anchor-based算法的相似之處是FCOS算法訓(xùn)練的目標(biāo)同樣包括兩個(gè)部分:位置和類別。

FCOS算法的損失函數(shù)為:

其中 是類別損失, 是交并比的損失。

    1. 用FPN對(duì)FCOS進(jìn)行多級(jí)預(yù)測(cè)

首先明確兩個(gè)問題:

l 基于Anchor box的檢測(cè)器由于大的步伐導(dǎo)致低召回率,需要通過降低正的Anchor
box所需的交并比分?jǐn)?shù)來進(jìn)行補(bǔ)償:在FCOS算法中表明,及時(shí)是大的步伐(stride),也可以獲取較好的召回率,甚至效果可以優(yōu)于基于Anchor box的檢測(cè)器。

l 真實(shí)邊框中的重疊可能會(huì)在訓(xùn)練過程中造成難以處理的歧義,這種模糊性導(dǎo)致基于fcn的檢測(cè)器性能下降:在FCOSzhong ,采用多級(jí)預(yù)測(cè)方法可以有效地解決模糊問題,與基于Anchor box的模糊檢測(cè)器相比,基于模糊控制器的模糊檢測(cè)器具有更好的性能。

前面提到,為了解決真實(shí)邊框重疊帶來的模糊性和低召回率,FCOS采用類似FPN中的多級(jí)檢測(cè),就是在不同級(jí)別的特征層檢測(cè)不同尺寸的目標(biāo)。

與基于Anchor box不同的地方

·
基于Anchor
box的檢測(cè)器將不同尺寸的Anchor box分配到不同級(jí)別的特征層

·
FCOS通過直接限定不同特征級(jí)別的邊界框的回歸范圍來進(jìn)行分配

此外,FCOS在不同的特征層之間共享信息,不僅使檢測(cè)器的參數(shù)效率更高,而且提高了檢測(cè)性能。

3.Center-ness

通過多級(jí)預(yù)測(cè)之后發(fā)現(xiàn)FCOS和基于Anchor box的檢測(cè)器之間仍然存在著一定的距離,主要原因是距離目標(biāo)中心較遠(yuǎn)的位置產(chǎn)生很多低質(zhì)量的預(yù)測(cè)邊框。

在FCOS中提出了一種簡(jiǎn)單而有效的策略來抑制這些低質(zhì)量的預(yù)測(cè)邊界框,而且不引入任何超參數(shù)。具體來說,FCOS添加單層分支,與分類分支并行,以預(yù)測(cè)"Center-ness"位置。

center-ness(可以理解為一種具有度量作用的概念,在這里稱之為"中心度"),中心度取值為0,1之間,使用交叉熵?fù)p失進(jìn)行訓(xùn)練。并把損失加入前面提到的損失函數(shù)中。測(cè)試時(shí),將預(yù)測(cè)的中心度與相應(yīng)的分類分?jǐn)?shù)相乘,計(jì)算最終得分(用于對(duì)檢測(cè)到的邊界框進(jìn)行排序)。因此,中心度可以降低遠(yuǎn)離對(duì)象中心的邊界框的權(quán)重。因此,這些低質(zhì)量邊界框很可能被最終的非最大抑制(NMS)過程濾除,從而顯著提高了檢測(cè)性能。

實(shí)驗(yàn)結(jié)果

1)召回率

在召回率方便表現(xiàn)接近目前最先進(jìn)的基于Anchor box的檢測(cè)器。

2)有無Center-ness的結(jié)果對(duì)比

“None”表示沒有使用中心。“中心度”表示使用預(yù)測(cè)回歸向量計(jì)算得到的中心度。“中心度”是指利用提出的中心度分支預(yù)測(cè)的中心度。中心度分支提高了所有指標(biāo)下的檢測(cè)性能。

3)與先進(jìn)的一階、二階檢測(cè)器效果對(duì)比

與目前最主流的一些一階、二階檢測(cè)器對(duì)比,在檢測(cè)效率方面FCOS優(yōu)于Faster R-CNN、YOLO、SSD這些經(jīng)典算法。

  1. Mask R-CNN(CVPR 2019)

首先回顧一下之前最經(jīng)典的實(shí)例分割方法,‘先檢測(cè)再分割’,在這方面做到極致的算法是Mask
RCNN。

Mask R-CNN屬于基于兩階段的檢測(cè)算法,在檢測(cè)框的基礎(chǔ)上進(jìn)行像素級(jí)的語義分割,簡(jiǎn)化了實(shí)例分割的難度,同時(shí)取得了stoa的性能,在’先檢測(cè)再分割’ 這一范式上做到了極致。

2.1. 簡(jiǎn)介

Mask R-CNN是He
Kaiming大神2017年的力作,其在進(jìn)行目標(biāo)檢測(cè)的同時(shí)進(jìn)行實(shí)例分割,取得了出色的效果,其在沒有任何trick的情況下,取得了COCO 2016比賽的冠軍。其網(wǎng)絡(luò)的設(shè)計(jì)也比較簡(jiǎn)單,在Faster R-CNN基礎(chǔ)上,在原本的兩個(gè)分支上(分類+坐標(biāo)回歸)增加了一個(gè)分支進(jìn)行語義分割,如下圖所示:

2.2. Mask R-CNN詳細(xì)介紹

那么為什么該網(wǎng)絡(luò)會(huì)有如此好的效果,又有哪些網(wǎng)絡(luò)細(xì)節(jié)呢?下面詳細(xì)逐一介紹。

在介紹Mask R-CNN之前,首先了解一下什么是分割,因?yàn)镸ask R-CNN是做這個(gè)的,所以這個(gè)首先要搞清楚,看下圖,主要介紹了幾種不同的分割,其中Mask RCNN做的是其中的instance segmentation.

語義分割(semantic segmentation):對(duì)圖像中逐像素進(jìn)行分類。

實(shí)例分割(instance segmentation):對(duì)圖像中的object進(jìn)行檢測(cè),并對(duì)檢測(cè)到的object進(jìn)行分割。

全景分割(panoptic segmentation):對(duì)圖像中的所有物體進(jìn)行描述。

下面這張圖很好的表示了這幾者分割的區(qū)別,如下圖可見,全景分割的難度最大:

Mask R-CNN如何取得好結(jié)果

首先實(shí)例分割(instance segmentation)的難點(diǎn)在于:需要同時(shí)檢測(cè)出目標(biāo)的位置并且對(duì)目標(biāo)進(jìn)行分割,所以這就需要融合目標(biāo)檢測(cè)(框出目標(biāo)的位置)以及語義分割(對(duì)像素進(jìn)行分類,分割出目標(biāo))方法。在Mask R-CNN之前,Faster R-CNN在目標(biāo)檢測(cè)領(lǐng)域表現(xiàn)較好,同時(shí)FCN在語義分割領(lǐng)域表現(xiàn)較好。所以很自然的方法是將Faster R-CNN與FCN相結(jié)合嘛,作者也是這么干的,只是作者采用了一個(gè)如此巧妙的方法進(jìn)行結(jié)合,并且取得了amazing的結(jié)果。

在以前的instance segmentation中,往往是先分割然后識(shí)別,這往往是低效的,并且準(zhǔn)確率較低,就比如Dai【論文中提到的】,采用級(jí)聯(lián)的方法,先通過bounding-boxes生成segment區(qū)域,然后進(jìn)行分類。

那么Mask R-CNN是怎么做的呢?

Mask R-CNN是建立在Faster R-CNN基礎(chǔ)上的,那么我們首先回顧一下Faster R-CNN,Faster R-CNN是典型的two stage的目標(biāo)檢測(cè)方法,首先生成 RPN候選區(qū)域, 然后候選區(qū)域經(jīng)過Roi Pooling進(jìn)行目標(biāo)檢測(cè)(包括目標(biāo)分類以及坐標(biāo)回歸),分類與回歸共享前面的網(wǎng)絡(luò)。

Mask R-CNN做了哪些改進(jìn)?Mask R-CNN同樣是two stage的,生成RPN部分與Faster R-CNN相同,然后,Mask R-CNN在Faster R-CNN的基礎(chǔ)上,增加了第三個(gè)支路,輸出每個(gè)ROI的Mask(這里是區(qū)別于傳統(tǒng)方法的最大的不同,傳統(tǒng)方法一般是先利用算法生成mask然后再進(jìn)行分類,這里平行進(jìn)行)

自然而然,這變成一個(gè)多任務(wù)問題

網(wǎng)絡(luò)結(jié)構(gòu)如下

下圖所示是兩種典型的Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu),作者借鑒FPN(不了解FPN可以點(diǎn)擊參考此博文)的思想,分別設(shè)計(jì)了兩種網(wǎng)絡(luò)結(jié)構(gòu),左邊的是采用ResNet or
ResNeXt作為網(wǎng)絡(luò)的backbone提取特征,右邊的網(wǎng)絡(luò)采用FPN網(wǎng)絡(luò)作為backbone進(jìn)行特征提取,并且作者指明,使用FPN作為基礎(chǔ)網(wǎng)絡(luò)的效果其實(shí)是最好的。

損失函數(shù)的設(shè)計(jì)是網(wǎng)絡(luò)的精髓所在

Mask R-CNN的損失函數(shù)為: ?

這里主要介紹一下 ?是對(duì)每個(gè)像素進(jìn)行分類,其含有K?m?m維度的輸出,K代表類別的數(shù)量,m*m是提取的ROI圖像的大小。?被定義為 average binary cross-entropy loss(平均二值交叉熵?fù)p失函數(shù))。這里解釋一下是如何計(jì)算的,首先分割層會(huì)輸出channel為K的Mask,每個(gè)Mask對(duì)應(yīng)一個(gè)類別,利用sigmoid函數(shù)進(jìn)行二分類,判斷是否是這個(gè)類別,然后在計(jì)算loss的時(shí)候,假如ROI對(duì)應(yīng)的ground-truth的類別是?,則計(jì)算第?個(gè)mask對(duì)應(yīng)的loss,其他的mask對(duì)這個(gè)loss沒有貢獻(xiàn)計(jì)算二值交叉熵搞的公式如下圖中的函數(shù)接口。這里不同于FCN的是,FCN是對(duì)每個(gè)像素進(jìn)行softmax分類,分為K個(gè)類別,然后計(jì)算softmax loss。那在inference的時(shí)候選擇哪個(gè)mask作為最終的輸出呢?作者根據(jù)分類分支的預(yù)測(cè)結(jié)果進(jìn)行判斷,是不是很神奇,并且作者解釋到,利用這種方法比softmax效果要好,因?yàn)楹?jiǎn)化了loss并且利用了分類信息,應(yīng)該會(huì)有提升的。

另一個(gè)創(chuàng)新點(diǎn):ROI Align

另外由于分割需要較準(zhǔn)確的像素位置,而Faster R-CNN方法中,在進(jìn)行Roi-Pooling之前需要進(jìn)行兩次量化操作(第一次是原圖像中的目標(biāo)到conv5之前的縮放,比如縮放32倍,目標(biāo)大小是600,結(jié)果不是整數(shù),需要進(jìn)行量化舍棄,第二次量化是比如特征圖目標(biāo)是55,ROI-pooling后是22,這里由于5不是2的倍數(shù),需要再一次進(jìn)行量化,這樣對(duì)于Roi Pooling之后的結(jié)果就與原來的圖像位置相差比較大了),因此作者對(duì)ROI-Pooling進(jìn)行了改進(jìn),提出了RoI Align方法,在下采樣的時(shí)候,對(duì)像素進(jìn)行對(duì)準(zhǔn),使得像素更準(zhǔn)確一些。

ROI Align是怎么做的呢?

ROI-Align取消了所有的量化操作,不再進(jìn)行4舍5入,如下圖所示比較清晰,圖中虛線代表特征圖,其中黑框代表object的位置,可見object的位置不再是整數(shù),而可能在中間,然后進(jìn)行22的align-pooling,圖中的采樣點(diǎn)的數(shù)量為4,所以可以計(jì)算出4個(gè)位置,然后對(duì)每個(gè)位置取距離最近的4個(gè)坐標(biāo)的值取平均求得。采樣點(diǎn)的數(shù)量怎么計(jì)算? 這個(gè)可以自己設(shè)置,默認(rèn)是設(shè)置4個(gè)點(diǎn)。 22是4個(gè)bin。

ROI-Warp:在Roi-Pooling前面增加一層,將Roi區(qū)域縮放到固定大小,然后在進(jìn)行roi-pooling,這樣就減少了量化的操作。

網(wǎng)絡(luò)訓(xùn)練

這里其實(shí)跟Faster R-CNN基本一致,IOU > 0.5的是正樣本,并且LmaskLmask L_{mask}Lmask?只在正樣本的時(shí)候才計(jì)算,圖像變換到短邊 800, 正負(fù)樣本比例 1:3 , RPN采用5個(gè)scale以及3個(gè)aspect ratio。

inference細(xì)節(jié)

采用ResNet作為backbone的Mask
R-CNN產(chǎn)生300個(gè)候選區(qū)域進(jìn)行分類回歸,采用FPN方法的生成1000個(gè)候選區(qū)域進(jìn)行分類回歸,然后進(jìn)行非極大值抑制操作,** 最后檢測(cè)分?jǐn)?shù)前100的區(qū)域進(jìn)行mask檢測(cè)**,這里沒有使用跟訓(xùn)練一樣的并行操作,作者解釋說是可以提高精度和效率,然后mask分支可以預(yù)測(cè)k個(gè)類別的mask,但是這里根據(jù)分類的結(jié)果,選取對(duì)應(yīng)的第k個(gè)類別,得到對(duì)應(yīng)的mask后,再resize到ROI的大小, 然后利用閾值0.5進(jìn)行二值化即可。(這里由于resize需要插值操作,所以需要再次進(jìn)行二值化,m的大小可以參考上圖,mask最后并不是ROI大小,而是一個(gè)相對(duì)較小的圖, 所以需要進(jìn)行resize操作。)

2.3. 實(shí)驗(yàn)結(jié)果:

實(shí)驗(yàn)效果還是杠杠的,Mask R-CNN輕松打敗了上界冠軍FCIS(其使用了multi-scale訓(xùn)練,水平翻轉(zhuǎn)測(cè)試,OHEM等)

溶解實(shí)驗(yàn):

下面一張圖基本上說明了所有的對(duì)比問題:

表(a),顯示了網(wǎng)絡(luò)越深,效果越好。并且FPN效果要好一些。

表(b),sigmoid要比softmax效果好一些。

表(c,d),roi-align效果有提升,特別是AP75提升最明顯,說明對(duì)精度提升很有用。

表(e),mask banch采用FCN效果較好(因?yàn)镕CN沒有破壞空間關(guān)系)

另外作者實(shí)驗(yàn),mask分支采用不同的方法,方法一:對(duì)每個(gè)類別預(yù)測(cè)一個(gè)mask ,方法二:所有的都預(yù)測(cè)一個(gè)mask,實(shí)驗(yàn)結(jié)果每個(gè)類預(yù)測(cè)一個(gè)mask別會(huì)好一些 30.3 vs 29.7

對(duì)于目標(biāo)檢測(cè)的結(jié)果:

對(duì)比下表,可見,在預(yù)測(cè)的時(shí)候即使不使用mask分支,結(jié)果精度也是很高的,下圖中’Faster R-CNN, ROIAlign’ 是使用ROI
Align,而不使用ROI Pooling的結(jié)果,較ROI
Pooling的結(jié)果高了約0.9個(gè)點(diǎn),但是比MaskR-CNN還是低了0.9個(gè)點(diǎn),這個(gè)提升,作者將其歸結(jié)為多任務(wù)訓(xùn)練的提升,由于加入了mask分支,帶來的loss改變,間接影響了主干網(wǎng)絡(luò)的效果。


對(duì)于時(shí)間消耗來說,Mask R-CNN FPN網(wǎng)絡(luò)195ms,比Mask R-CNN, ResNet網(wǎng)絡(luò)的400ms要快一些。

人體關(guān)鍵點(diǎn)檢測(cè):

與Mask R-CNN進(jìn)行Mask檢測(cè)有什么不同呢?

人體關(guān)鍵點(diǎn)檢測(cè),作者對(duì)最后m*m的mask進(jìn)行one-hot編碼,并且,mask中只有一個(gè)像素點(diǎn)是foreground其他的都是background。

人體關(guān)鍵點(diǎn)檢測(cè),最后的輸出是m^2-way 的softmax, 不再是Sigmoid,作者解釋說,這有利于單獨(dú)一個(gè)點(diǎn)的檢測(cè)。

人體關(guān)鍵點(diǎn)檢測(cè),
最后的mask分辨率是5656,不再是2828,作者解釋,較高的分辨率有利于人體關(guān)鍵點(diǎn)的檢測(cè)。

  1. 實(shí)例分割算法PolarMask(CVPR 2020)

PolarMask基于FCOS,把實(shí)例分割統(tǒng)一到了FCN的框架下。把更復(fù)雜的實(shí)例分割問題,轉(zhuǎn)化成在網(wǎng)絡(luò)設(shè)計(jì)和計(jì)算量復(fù)雜度上和物體檢測(cè)一樣復(fù)雜的任務(wù),把對(duì)實(shí)例分割的建模變得簡(jiǎn)單和高效。PolarMask提出了一種新的instance segmentation建模方式,通過尋找物體的contour建模,提供了一種新的方法供大家選擇。

兩種實(shí)例分割的建模方式:

1)像素級(jí)建模 類似于圖b,在檢測(cè)框中對(duì)每個(gè)pixel分類

2)輪廓建模 類似于圖c和圖d,其中,圖c是基于直角坐標(biāo)系建模輪廓,圖d是基于極坐標(biāo)系建模輪廓

可以看到Mask R-CNN屬于第一種建模方式,而我們提出的PolarMask屬于圖d建模方式。圖c也會(huì)work,但是相比圖d缺乏固定角度先驗(yàn)。換句話說,基于極坐標(biāo)系的方式已經(jīng)將固定角度設(shè)為先驗(yàn),網(wǎng)絡(luò)只需回歸固定角度的長(zhǎng)度即可,簡(jiǎn)化了問題的難度。

PolarMask 基于極坐標(biāo)系建模輪廓,把實(shí)例分割問題轉(zhuǎn)化為實(shí)例中心點(diǎn)分類(instance center
classification)問題和密集距離回歸(dense distance regression)問題。同時(shí),我們還提出了兩個(gè)有效的方法,用來優(yōu)化high-quality正樣本采樣和dense distance regression的損失函數(shù)優(yōu)化,分別是Polar CenterNess和 Polar IoU Loss。沒有使用任何trick(多尺度訓(xùn)練,延長(zhǎng)訓(xùn)練時(shí)間等),PolarMask 在ResNext 101的配置下 在coco test-dev上取得了32.9的mAP。 這是首次,我們證明了更復(fù)雜的實(shí)例分割問題,可以在網(wǎng)絡(luò)設(shè)計(jì)和計(jì)算復(fù)雜度上,和anchor
free物體檢測(cè)一樣簡(jiǎn)單。我們希望PolarMask可以成為一個(gè)簡(jiǎn)單且強(qiáng)有效的single shot instance segmentation 的baseline。

PolarMask最重要的特點(diǎn)是:

(1) anchor free and bbox free,不需要出檢測(cè)框

(2) fully convolutional network, 相比FCOS把4根射線散發(fā)到36根射線,將instance
segmentation和object detection用同一種建模方式來表達(dá)。

我們選取FCOS嵌入我們的方法,主要是為了simple。FCOS是目前state-of-the-art的anchor-free檢測(cè)器,并且十分simple。我們?cè)贔COS的基礎(chǔ)上,幾乎不加任何計(jì)算量,就可以建模實(shí)例分割問題,并取得competitive的性能,證明了實(shí)例分割可以簡(jiǎn)化成和目標(biāo)檢測(cè)相同復(fù)雜的問題。

此外,FCOS可以看成PolarMask的特殊形式,而PolarMask可以看作FCOS的通用形式,因?yàn)閎box本質(zhì)上是最簡(jiǎn)單的Mask,只有0,90,180,270四個(gè)角度回歸長(zhǎng)度。
我們首次將instance segmentation和object
detection用同一種建模方式來表達(dá)。

網(wǎng)絡(luò)結(jié)構(gòu)

整個(gè)網(wǎng)絡(luò)和FCOS一樣簡(jiǎn)單,首先是標(biāo)準(zhǔn)的backbone + fpn模型,其次是head部分,我們把fcos的bbox分支替換為mask分支,僅僅是把channel=4替換為channel=n, 這里n=36,相當(dāng)于36根射線的長(zhǎng)度。同時(shí)我們提出了一種新的Polar Centerness 用來替換FCOS的bbox centerness。

可以看到,在網(wǎng)絡(luò)復(fù)雜度上,PolarMask和FCOS并無明顯差別。

Polar Segmentation建模

首先,輸入一張?jiān)瓐D,經(jīng)過網(wǎng)絡(luò)可以得到中心點(diǎn)的位置和n(n=36
is best in our setting)根射線的距離,其次,根據(jù)角度和長(zhǎng)度計(jì)算出輪廓上的這些點(diǎn)的坐標(biāo),從0°開始連接這些點(diǎn),最后把聯(lián)通區(qū)域內(nèi)的區(qū)域當(dāng)做實(shí)例分割的結(jié)果。

在實(shí)驗(yàn)中,我們以重心為基準(zhǔn),assign到feature
map上,會(huì)在重心周圍采樣,作為正樣本,別的地方當(dāng)做負(fù)樣本,訓(xùn)練方式和FCOS保持一致,采用Focal Loss, 在此,我們提出Polar CenterNess,用來選擇出高質(zhì)量的正樣本,給低質(zhì)量的正樣本降低權(quán)重。

Polar CenterNess

如何在Polar Coordinate下定義高質(zhì)量的正樣本?我們通過如下公式定義

其中 d1 d2…dn指的是36根射線的長(zhǎng)度,最好的正樣本必須具備dmin ——> dmax.

用一張圖舉例

以看到中間的圖,會(huì)出現(xiàn)長(zhǎng)度回歸差別很大的問題,而右邊的圖中心點(diǎn)位置就較為合適,到所有輪廓的長(zhǎng)度回歸就較為接近,36根射線的距離會(huì)比較均衡。 Polar Centerness 可以給右邊圖的點(diǎn)較高的centerness分?jǐn)?shù),給中間圖的點(diǎn)降低centerness分?jǐn)?shù),這樣在infernece的時(shí)候右邊圖的點(diǎn)分?jǐn)?shù)較高。

根據(jù)消融實(shí)驗(yàn),Polar Centerness可以有效提高1.4的性能,同時(shí)不增加網(wǎng)絡(luò)復(fù)雜度。結(jié)果如下圖所展示


Polar IoU Loss

在PolarMask中,需要回歸k(k=36)根射線的距離,這相比目標(biāo)檢測(cè)更為復(fù)雜,如何監(jiān)督regression
branch是一個(gè)問題。我們提出Polar IoU Loss近似計(jì)算出predict mask和gt mask的iou,通過Iou Loss 更好的優(yōu)化mask的回歸。通過實(shí)驗(yàn)證明,Polar IoU Loss相比Smooth L1loss可以明顯提高2.6個(gè)點(diǎn),同時(shí)Smooth L1loss還面臨和其他loss不均衡的問題,需要精心調(diào)整權(quán)重,這是十分低效的,Polar IoU loss不需要調(diào)整權(quán)重就可以使mask分支快速且穩(wěn)定收斂。

那么,Polar IoU Loss如何計(jì)算呢?如下圖所展示


可以看到 兩個(gè)mask的Iou可以簡(jiǎn)化為在dθ下的三角形面積iou問題并對(duì)無數(shù)個(gè)三角形求和,最終可以推倒到如下形式:

我們?cè)谡撐闹羞€做了如下消融實(shí)驗(yàn):射線數(shù)量的選擇,加不加bbox branch, backbone以及尺寸和速度的trade off. 細(xì)節(jié)在論文中都有,不一一展開。

上限分析

看到這里,很多人心里都會(huì)有一個(gè)疑問,射線這種建模方式,對(duì)于凹的物體會(huì)有性能損失,上限達(dá)不到100mAP,PolarMask怎么處理這個(gè)問題?

答案是這樣,PolarMask相比Mask R-CNN這種pixel建模的方法,對(duì)于形狀特別奇怪的mask的確建模會(huì)失敗,但是這并不代表polarmask毫無意義。原因有兩個(gè),(1)Mask R-CNN的上限也到不了100 mAP 因?yàn)橛邢虏蓸舆@類操作使得信息損失。(2)不管Mask R-CNN還是PolarMask,他們的實(shí)際性能距離100mAP的上限都特別遠(yuǎn)。

所以我們目前應(yīng)該關(guān)注如何讓實(shí)際網(wǎng)絡(luò)性能去更好地趨近于上限。

定量分析分析射線建模的上限:

如圖所示,當(dāng)采用mass center做instance中心時(shí),當(dāng)射線數(shù)量不斷提高,射線的gt和真實(shí)的gt的平均iou高達(dá)90%以上,這證明了對(duì)于射線建模的性能上限的憂慮還遠(yuǎn)遠(yuǎn)不需要擔(dān)心。現(xiàn)階段需要操心的問題是如何不斷提高基于射線建模的網(wǎng)絡(luò)性能。

實(shí)驗(yàn)

最終,配上一圖一表展示一下相比sota的結(jié)果

可以看到, 沒用采用任何trick的情況下,PolarMask在resnext101-fpn的情況下,取得了32.9的配置,雖然不是stoa,但是也比較有競(jìng)爭(zhēng)力。我們目前并沒有采用很多常用的能漲點(diǎn)的trick,比如 ms train和longer training epochs。相比之下,別的one stage方法都不約而同的采用了mstrain和longer training epoches。 我們會(huì)進(jìn)一步改進(jìn),爭(zhēng)取再提高性能。

總結(jié)

以上是生活随笔為你收集整理的CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。