<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          目標(biāo)檢測(cè)Mask RCNN--2016

          共 9489字,需瀏覽 19分鐘

           ·

          2021-03-26 16:14

          Mask R-CNN是ICCV 2017的best paper,彰顯了機(jī)器學(xué)習(xí)計(jì)算機(jī)視覺(jué)領(lǐng)域在2017年的最新成果。在機(jī)器學(xué)習(xí)2017年的最新發(fā)展中,單任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)逐漸不再引人矚目,取而代之的是集成,復(fù)雜,一石多鳥(niǎo)的多任務(wù)網(wǎng)絡(luò)模型。Mask R-CNN就是典型的代表。本篇大作的一作是何凱明,在該篇論文發(fā)表的時(shí)候,何凱明已經(jīng)去了FaceBook。我們先來(lái)看一下,Mask R-CNN取得了何等的成果。



             大家可以看到,在實(shí)例分割Mask R-CNN框架中,還是主要完成了三件事情:

             1) 目標(biāo)檢測(cè),直接在結(jié)果圖上繪制了目標(biāo)框(bounding box)。

             2) 目標(biāo)分類(lèi),對(duì)于每一個(gè)目標(biāo),需要找到對(duì)應(yīng)的類(lèi)別(class),區(qū)分到底是人,是車(chē),還是其他類(lèi)別。

             3) 像素級(jí)目標(biāo)分割,在每個(gè)目標(biāo)中,需要在像素層面區(qū)分,什么是前景,什么是背景。

             可是,在解析Mask R-CNN之前,筆者不得不告訴大家一個(gè)事實(shí),Mask R-CNN是繼承于Faster R-CNN (2016)的,Mask R-CNN只是在Faster R-CNN上面加了一個(gè)Mask Prediction Branch (Mask 預(yù)測(cè)分支),并且改良了ROI Pooling,提出了ROI Align。從統(tǒng)計(jì)數(shù)據(jù)來(lái)看,"Faster R-CNN"在Mask R-CNN論文的前三章中出現(xiàn)了二十余次,因此,如果不了解Ross Girshick和何凱明之前的工作,是很難弄懂Mask R-CNN的。所以,筆者在解析Mask R-CNN之前,先給大家分析一下Faster R-CNN。

             在給大家解析Faster R-CNN之前,筆者又要告訴大家,F(xiàn)aster R-CNN是繼承于Fast R-CNN (2015),F(xiàn)ast R-CNN繼承于R-CNN (2014)。因此,索性破釜沉舟,在本篇博文中,筆者就按照R-CNN, Fast R-CNN,F(xiàn)aster R-CNN再到Mask R-CNN的發(fā)展順序全部解析。

             首先時(shí)間回到了2014年,在2014年,正是深度學(xué)習(xí)如火如荼的發(fā)展的第三年。在CVPR 2014年中Ross Girshick提出的R-CNN中,使用到了卷積神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行目標(biāo)檢測(cè)。下面筆者就來(lái)概述一下R-CNN是如何采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè)的工作。


             首先模型輸入為一張圖片,然后在圖片上提出了約2000個(gè)待檢測(cè)區(qū)域,然后這2000個(gè)待檢測(cè)區(qū)域一個(gè)一個(gè)地(串聯(lián)方式)通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征,然后這些被提取的特征通過(guò)一個(gè)支持向量機(jī)(SVM)進(jìn)行分類(lèi),得到物體的類(lèi)別,并通過(guò)一個(gè)bounding box regression調(diào)整目標(biāo)包圍框的大小。下面,筆者簡(jiǎn)要概述一下R-CNN是怎么實(shí)現(xiàn)以上步驟的。

             首先在第一步提取2000個(gè)待檢測(cè)區(qū)域的時(shí)候,是通過(guò)一個(gè)2012年提出的方法,叫做selective search。簡(jiǎn)單來(lái)說(shuō)就是通過(guò)一些傳統(tǒng)圖像處理方法將圖像分成若干塊,然后通過(guò)一個(gè)SVM將屬于同一目標(biāo)的若干塊拿出來(lái)。selective search的核心是一個(gè)SVM,架構(gòu)如下所示:


             然后在第二步進(jìn)行特征提取的時(shí)候,Ross直接借助了當(dāng)時(shí)深度學(xué)習(xí)的最新成果AlexNet (2012)。那么,該網(wǎng)絡(luò)是如何訓(xùn)練的呢?是直接在ImageNet上面訓(xùn)練的,也就是說(shuō),使用圖像分類(lèi)數(shù)據(jù)集訓(xùn)練了一個(gè)僅僅用于提取特征的網(wǎng)絡(luò)。

             在第三步進(jìn)行對(duì)目標(biāo)的時(shí)候,使用了一個(gè)支持向量機(jī)(SVM),在訓(xùn)練這個(gè)支持向量機(jī)的時(shí)候,結(jié)合目標(biāo)的標(biāo)簽(類(lèi)別)與包圍框的大小進(jìn)行訓(xùn)練,因此,該支持向量機(jī)也是被單獨(dú)訓(xùn)練的。

             在2014年R-CNN橫空出世的時(shí)候,顛覆了以往的目標(biāo)檢測(cè)方案,精度大大提升。對(duì)于R-CNN的貢獻(xiàn),可以主要分為兩個(gè)方面:

             1) 使用了卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。

             2) 使用bounding box regression進(jìn)行目標(biāo)包圍框的修正

             但是,我們來(lái)看一下,R-CNN有什么問(wèn)題:

             1) 耗時(shí)的selective search,對(duì)一幀圖像,需要花費(fèi)2s。

             2) 耗時(shí)的串行式CNN前向傳播,對(duì)于每一個(gè)RoI,都需要經(jīng)過(guò)一個(gè)AlexNet提特征,為所有的RoI提特征大約花費(fèi)47s。

             3) 三個(gè)模塊是分別訓(xùn)練的,并且在訓(xùn)練的時(shí)候,對(duì)于存儲(chǔ)空間的消耗很大。

             那么,面對(duì)這種情勢(shì),Ross在2015年提出的Fast R-CNN進(jìn)行了改進(jìn),下面我們來(lái)概述一下Fast R-CNN的解決方案:


             首先還是采用selective search提取2000個(gè)候選框,然后,使用一個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)全圖進(jìn)行特征提取。接著,使用一個(gè)RoI Pooling Layer在全圖特征上摘取每一個(gè)RoI對(duì)應(yīng)的特征,再通過(guò)全連接層(FC Layer)進(jìn)行分類(lèi)與包圍框的修正。Fast R-CNN的貢獻(xiàn)可以主要分為兩個(gè)方面:

             1) 取代R-CNN的串行特征提取方式,直接采用一個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)全圖提取特征(這也是為什么需要RoI Pooling的原因)。

             2) 除了selective search,其他部分都可以合在一起訓(xùn)練。

             可是,F(xiàn)ast R-CNN也有缺點(diǎn),體現(xiàn)在耗時(shí)的selective search還是依舊存在。那么,如何改良這個(gè)缺陷呢?發(fā)表于2016年的Faster R-CNN進(jìn)行了如下創(chuàng)新:

             取代selective search,直接通過(guò)一個(gè)Region Proposal Network (RPN)生成待檢測(cè)區(qū)域,這么做,在生成RoI區(qū)域的時(shí)候,時(shí)間也就從2s縮減到了10ms。我們來(lái)看一下Faster R-CNN是怎么做的。


             首先使用共享的卷積層為全圖提取特征,然后將得到的feature maps送入RPN,RPN生成待檢測(cè)框(指定RoI的位置)并對(duì)RoI的包圍框進(jìn)行第一次修正。之后就是Fast R-CNN的架構(gòu)了,RoI Pooling Layer根據(jù)RPN的輸出在feature map上面選取每個(gè)RoI對(duì)應(yīng)的特征,并將維度置為定值。最后,使用全連接層(FC Layer)對(duì)框進(jìn)行分類(lèi),并且進(jìn)行目標(biāo)包圍框的第二次修正。尤其注意的是,F(xiàn)aster R-CNN真正實(shí)現(xiàn)了端到端的訓(xùn)練(end-to-end training)。

             要理解Mask R-CNN,只有先理解Faster R-CNN。因此,筆者根據(jù)Faster R-CNN的架構(gòu)(Faster R-CNN的ZF model的train.prototxt),畫(huà)了一個(gè)結(jié)構(gòu)圖,如下所示:


             如上圖所示,F(xiàn)aster R-CNN的結(jié)構(gòu)主要分為三大部分,第一部分是共享的卷積層-backbone,第二部分是候選區(qū)域生成網(wǎng)絡(luò)-RPN,第三部分是對(duì)候選區(qū)域進(jìn)行分類(lèi)的網(wǎng)絡(luò)-classifier。其中,RPN與classifier部分均對(duì)目標(biāo)框有修正。classifier部分是原原本本繼承的Fast R-CNN結(jié)構(gòu)。我們下面來(lái)簡(jiǎn)單看看Faster R-CNN的各個(gè)模塊。

             首先來(lái)看看RPN的工作原理:


             簡(jiǎn)單地說(shuō),RPN依靠一個(gè)在共享特征圖上滑動(dòng)的窗口,為每個(gè)位置生成9種預(yù)先設(shè)置好長(zhǎng)寬比與面積的目標(biāo)框(文中叫做anchor)。這9種初始anchor包含三種面積(128×128,256×256,512×512),每種面積又包含三種長(zhǎng)寬比(1:1,1:2,2:1)。示意圖如下所示:


             由于共享特征圖的大小約為40×60,RPN生成的初始anchor的總數(shù)約為20000個(gè)(40×60×9)。對(duì)于生成的anchor,RPN要做的事情有兩個(gè),第一個(gè)是判斷anchor到底是前景還是背景,意思就是判斷這個(gè)anchor到底有沒(méi)有覆蓋目標(biāo),第二個(gè)是為屬于前景的anchor進(jìn)行第一次坐標(biāo)修正。對(duì)于前一個(gè)問(wèn)題,F(xiàn)aster R-CNN的做法是使用SoftmaxLoss直接訓(xùn)練,在訓(xùn)練的時(shí)候排除掉了超越圖像邊界的anchor;對(duì)于后一個(gè)問(wèn)題,采用SmoothL1Loss進(jìn)行訓(xùn)練。那么,RPN怎么實(shí)現(xiàn)呢?這個(gè)問(wèn)題通過(guò)RPN的本質(zhì)很好求解,RPN的本質(zhì)是一個(gè)樹(shù)狀結(jié)構(gòu),樹(shù)干是一個(gè)3×3的卷積層,樹(shù)枝是兩個(gè)1×1的卷積層,第一個(gè)1×1的卷積層解決了前后景的輸出,第二個(gè)1×1的卷積層解決了邊框修正的輸出。來(lái)看看在代碼中是怎么做的:


             從如上代碼中可以看到,對(duì)于RPN輸出的特征圖中的每一個(gè)點(diǎn),一個(gè)1×1的卷積層輸出了18個(gè)值,因?yàn)槭敲恳粋€(gè)點(diǎn)對(duì)應(yīng)9個(gè)anchor,每個(gè)anchor有一個(gè)前景分?jǐn)?shù)和一個(gè)背景分?jǐn)?shù),所以9×2=18。另一個(gè)1×1的卷積層輸出了36個(gè)值,因?yàn)槭?span style="box-sizing: border-box;outline: 0px;overflow-wrap: break-word;color: rgb(79, 79, 79);">每一個(gè)點(diǎn)對(duì)應(yīng)9個(gè)anchor,每個(gè)anchor對(duì)應(yīng)了4個(gè)修正坐標(biāo)的值,所以9×4=36。那么,要得到這些值,RPN網(wǎng)絡(luò)需要訓(xùn)練。在訓(xùn)練的時(shí)候,就需要對(duì)應(yīng)的標(biāo)簽。那么,如何判定一個(gè)anchor是前景還是背景呢?文中做出了如下定義:如果一個(gè)anchor與ground truth的IoU在0.7以上,那這個(gè)anchor就算前景(positive)。類(lèi)似地,如果這個(gè)anchor與ground truth的IoU在0.3以下,那么這個(gè)anchor就算背景(negative)。在作者進(jìn)行RPN網(wǎng)絡(luò)訓(xùn)練的時(shí)候,只使用了上述兩類(lèi)anchor,與ground truth的IoU介于0.3和0.7的anchor沒(méi)有使用。在訓(xùn)練anchor屬于前景與背景的時(shí)候,是在一張圖中,隨機(jī)抽取了128個(gè)前景anchor與128個(gè)背景anchor。

             在上一段中描述了前景與背景分類(lèi)的訓(xùn)練方法,本段描述anchor邊框修正的訓(xùn)練方法。邊框修正主要由4個(gè)值完成,tx,ty,th,tw。這四個(gè)值的意思是修正后的框在anchor的x和y方向上做出平移(由tx和ty決定),并且長(zhǎng)寬各自放大一定的倍數(shù)(由th和ty決定)。那么,如何訓(xùn)練網(wǎng)絡(luò)參數(shù)得到這四個(gè)值呢?Fast R-CNN給出了答案,采用SmoothL1loss進(jìn)行訓(xùn)練,具體可以描述為:


             到這里有個(gè)問(wèn)題,就是不是對(duì)于所有的anchor,都需要進(jìn)行anchor包圍框修正的參數(shù)訓(xùn)練,只是對(duì)positive的anchors有這一步。因此,在訓(xùn)練RPN的時(shí)候,只有對(duì)128個(gè)隨機(jī)抽取的positive anchors有這一步訓(xùn)練。因此,訓(xùn)練RPN的損失函數(shù)可以寫(xiě)成:


             在這里L(fēng)reg就是上面的Lloc,λ被設(shè)置為10,Ncls為256,Nreg為2400。這樣設(shè)置的話(huà),RPN的兩部分loss值能保持平衡。

             到這里RPN就解析完畢了,下面我們來(lái)看看后面的classifier,但是在介紹classifier之前,我們先來(lái)看看RoI Pooling到底做了什么?

             首先第一個(gè)問(wèn)題是為什么需要RoI Pooling?答案是在Fast R-CNN中,特征被共享卷積層一次性提取。因此,對(duì)于每個(gè)RoI而言,需要從共享卷積層上摘取對(duì)應(yīng)的特征,并且送入全連接層進(jìn)行分類(lèi)。因此,RoI Pooling主要做了兩件事,第一件是為每個(gè)RoI選取對(duì)應(yīng)的特征,第二件事是為了滿(mǎn)足全連接層的輸入需求,將每個(gè)RoI對(duì)應(yīng)的特征的維度轉(zhuǎn)化成某個(gè)定值。RoI Pooling示意圖如下所示:


             如上圖所示,對(duì)于每一個(gè)RoI,RoI Pooling Layer將其對(duì)應(yīng)的特征從共享卷積層上拿出來(lái),并轉(zhuǎn)化成一樣的大小(6×6)。

             在RoI Pooling Layer之后,就是Fast R-CNN的分類(lèi)器和RoI邊框修正訓(xùn)練。分類(lèi)器主要是分這個(gè)提取的RoI具體是什么類(lèi)別(人,車(chē),馬等等),一共C+1類(lèi)(包含一類(lèi)背景)。RoI邊框修正和RPN中的anchor邊框修正原理一樣,同樣也是SmoothL1 Loss,值得注意的是,RoI邊框修正也是對(duì)于非背景的RoI進(jìn)行修正,對(duì)于類(lèi)別標(biāo)簽為背景的RoI,則不進(jìn)行RoI邊框修正的參數(shù)訓(xùn)練。對(duì)于分類(lèi)器和RoI邊框修正的訓(xùn)練,可以公式描述如下:


             上式中u>=1表示RoI邊框修正是對(duì)于非背景的RoI而言的,實(shí)驗(yàn)中,上式的λ取1。

             在訓(xùn)練分類(lèi)器和RoI邊框修正時(shí),步驟如下所示:

             1) 首先通過(guò)RPN生成約20000個(gè)anchor(40×60×9)。

             2) 對(duì)20000個(gè)anchor進(jìn)行第一次邊框修正,得到修訂邊框后的proposal。

             3) 對(duì)超過(guò)圖像邊界的proposal的邊進(jìn)行clip,使得該proposal不超過(guò)圖像范圍。

             4) 忽略掉長(zhǎng)或者寬太小的proposal。

             5) 將所有proposal按照前景分?jǐn)?shù)從高到低排序,選取前12000個(gè)proposal。

             6) 使用閾值為0.7的NMS算法排除掉重疊的proposal。

             7) 針對(duì)上一步剩下的proposal,選取前2000個(gè)proposal進(jìn)行分類(lèi)和第二次邊框修正。

             總的來(lái)說(shuō),F(xiàn)aster R-CNN的loss分兩大塊,第一大塊是訓(xùn)練RPN的loss(包含一個(gè)SoftmaxLoss和SmoothL1Loss),第二大塊是訓(xùn)練Fast R-CNN中分類(lèi)器的loss(包含一個(gè)SoftmaxLoss和SmoothL1Loss),F(xiàn)aster R-CNN的總的loss函數(shù)描述如下:


             然后,對(duì)于Faster R-CNN的訓(xùn)練方式有三種,可以被描述如下:

             1) RPN和Fast R-CNN交替訓(xùn)練,這種方式也是作者采用的方式。

             2) 近似聯(lián)合RPN和Fast R-CNN的訓(xùn)練,在訓(xùn)練時(shí)忽略掉了RoI邊框修正的誤差,也就是說(shuō)只對(duì)anchor做了邊框修訂,這也是為什么叫"近似聯(lián)合"的原因。

             3) 聯(lián)合RPN和Fast R-CNN的訓(xùn)練。

             對(duì)于作者采用的交替訓(xùn)練的方式,步驟如下:

             1) 使用在ImageNet上預(yù)訓(xùn)練的模型初始化共享卷積層并訓(xùn)練RPN。

             2) 使用上一步得到的RPN參數(shù)生成RoI proposal。再使用ImageNet上預(yù)訓(xùn)練的模型初始化共享卷積層,訓(xùn)練Fast R-CNN部分(分類(lèi)器和RoI邊框修訂)。

             3) 將訓(xùn)練后的共享卷積層參數(shù)固定,同時(shí)將Fast R-CNN的參數(shù)固定,訓(xùn)練RPN。(從這一步開(kāi)始,共享卷積層的參數(shù)真正被兩大塊網(wǎng)絡(luò)共享)

             4) 同樣將共享卷積層參數(shù)固定,并將RPN的參數(shù)固定,訓(xùn)練Fast R-CNN部分。

             Faster R-CNN的測(cè)試流程和訓(xùn)練流程挺相似,描述如下:


             1) 首先通過(guò)RPN生成約20000個(gè)anchor(40×60×9)通過(guò)RPN。

             2) 對(duì)20000個(gè)anchor進(jìn)行第一次邊框修正,得到修訂邊框后的proposal。

             3) 對(duì)超過(guò)圖像邊界的proposal的邊進(jìn)行clip,使得該proposal不超過(guò)圖像范圍。

             4) 忽略掉長(zhǎng)或者寬太小的proposal。

             5) 將所有proposal按照前景分?jǐn)?shù)從高到低排序,選取前6000個(gè)proposal。

             6) 使用閾值為0.7的NMS算法排除掉重疊的proposal。

             7) 針對(duì)上一步剩下的proposal,選取前300個(gè)proposal進(jìn)行分類(lèi)和第二次邊框修正。

             到這里,F(xiàn)aster R-CNN就介紹完畢了。接下來(lái) 到了Mask R-CNN,我們來(lái)看看RoI Pooling出了什么問(wèn)題:

             問(wèn)題1:從輸入圖上的RoI到特征圖上的RoI feature,RoI Pooling是直接通過(guò)四舍五入取整得到的結(jié)果。

             這一點(diǎn)可以在代碼中印證:


             可以看到直接用round取的值,這樣會(huì)帶來(lái)什么壞處呢?就是RoI Pooling過(guò)后的得到的輸出可能和原圖像上的RoI對(duì)不上,如下圖所示:


             右圖中藍(lán)色部分表示包含了轎車(chē)主體的的信息的方格,RoI Pooling Layer的四舍五入取整操作導(dǎo)致其進(jìn)行了偏移。

             問(wèn)題2:再將每個(gè)RoI對(duì)應(yīng)的特征轉(zhuǎn)化為固定大小的維度時(shí),又采用了取整操作。在這里筆者舉例講解一下RoI Pooling的操作:


             在從RoI得到對(duì)應(yīng)的特征圖時(shí),進(jìn)行了問(wèn)題1描述的取整,在得到特征圖后,如何得到一個(gè)6×6的全連接層的輸入呢?RoI Pooling這樣做:將RoI對(duì)應(yīng)的特征圖分成6×6塊,然后直接從每塊中找到最大值。在上圖中的例子中,比如原圖上的的RoI大小是280×480,得到對(duì)應(yīng)的特征圖是18×30。將特征圖分成6塊,每塊大小是3×5,然后在每一塊中分別選擇最大值放入6×6的對(duì)應(yīng)區(qū)域中。在將特征圖分塊的時(shí)候,又用到了取整,這點(diǎn)同樣可以在代碼中得到佐證:


             這種取整操作(在Mask R-CNN中被稱(chēng)為quantization)對(duì)RoI分類(lèi)影響不大,可是對(duì)逐像素的預(yù)測(cè)目標(biāo)是有害的,因?yàn)閷?duì)每個(gè)RoI取得的特征并沒(méi)有與RoI對(duì)齊。因此,Mask R-CNN對(duì)RoI Pooling做了改進(jìn)并提出了RoI Align。

             RoI Align的主要?jiǎng)?chuàng)新點(diǎn)是,針對(duì)問(wèn)題1,不再進(jìn)行取整操作。針對(duì)問(wèn)題2,使用雙線(xiàn)性插值來(lái)更精確地找到每個(gè)塊對(duì)應(yīng)的特征。總的來(lái)說(shuō),RoI Align的作用主要就是剔除了RoI Pooling的取整操作,并且使得為每個(gè)RoI取得的特征能夠更好地對(duì)齊原圖上的RoI區(qū)域。

             下圖闡述了Mask R-CNN的Mask branch:


             在Mask R-CNN中的RoI Align之后有一個(gè)"head"部分,主要作用是將RoI Align的輸出維度擴(kuò)大,這樣在預(yù)測(cè)Mask時(shí)會(huì)更加精確。在Mask Branch的訓(xùn)練環(huán)節(jié),作者沒(méi)有采用FCN式的SoftmaxLoss,反而是輸出了K個(gè)Mask預(yù)測(cè)圖(為每一個(gè)類(lèi)都輸出一張),并采用average binary cross-entropy loss訓(xùn)練,當(dāng)然在訓(xùn)練Mask branch的時(shí)候,輸出的K個(gè)特征圖中,也只是對(duì)應(yīng)ground truth類(lèi)別的那一個(gè)特征圖對(duì)Mask loss有貢獻(xiàn)。

             Mask R-CNN的訓(xùn)練損失函數(shù)可以描述為:


             在上式中,Lbox和Lmask都是對(duì)positive RoI才會(huì)起作用的。

             在Mask R-CNN中,相較于Faster R-CNN還有些略微的調(diào)整,比如positive RoI被定義成了與Ground truth的IoU大于0.5的(Faster R-CNN中是0.7)。太過(guò)于細(xì)節(jié)的東西本篇博文不再贅述,詳情參見(jiàn)Mask R-CNN中的Implementation Details。

             到這里再將Mask R-CNN和FCIS做個(gè)比較,首先兩者的相同點(diǎn)是均繼承了Faster R-CNN的RPN部分。不同點(diǎn)是對(duì)于FCIS,預(yù)測(cè)mask和分類(lèi)是共享的參數(shù)。而Mask R-CNN則是各玩各的,兩個(gè)任務(wù)各自有各自的可訓(xùn)練參數(shù)。對(duì)于這一點(diǎn),Mask R-CNN論文里還專(zhuān)門(mén)作了比較,顯示對(duì)于預(yù)測(cè)mask和分類(lèi)如果使用共享的特征圖對(duì)于某些重疊目標(biāo)可能會(huì)出現(xiàn)問(wèn)題。


             Mask R-CNN的實(shí)驗(yàn)取得了很好的效果,達(dá)到甚至超過(guò)了state-of-the-art的水平。不過(guò)訓(xùn)練代價(jià)也是相當(dāng)大的,需要8塊GPU聯(lián)合訓(xùn)練。


             Mask R-CNN的實(shí)驗(yàn)非常詳細(xì),還做了很多對(duì)比實(shí)驗(yàn),比如說(shuō)改換網(wǎng)絡(luò)深度,在訓(xùn)練mask branch時(shí)的誤差種類(lèi),將RoI Align同RoI Pooling和RoI Warping進(jìn)行比較,改變預(yù)測(cè)mask的方式(FCN和全連接層)等,詳情請(qǐng)參見(jiàn)Mask R-CNN的實(shí)驗(yàn)部分。





             到這里Mask R-CNN介紹就接近尾聲了,筆者還想說(shuō)一些自己的思考與感想:

             1) 可繼承工作的充分體現(xiàn)。大家看到Mask R-CNN的結(jié)構(gòu)相當(dāng)復(fù)雜,實(shí)際上是繼承了大量之前的工作。首先bounding box regression在2014年的R-CNN中就出現(xiàn)過(guò)。Mask R-CNN的主要?jiǎng)?chuàng)新點(diǎn)RoI Align改良于RoI Pooling,而RoI Pooling是在2015年的Fast R-CNN中提出的。對(duì)于RPN的應(yīng)用,更是直接繼承了2016年的Faster R-CNN。值得一提的是,上述的每一篇文章,都是顛覆目標(biāo)檢測(cè)領(lǐng)域計(jì)算架構(gòu)的杰出作品。

             2)集成的工作。還是那句老話(huà),到了2017-2018年,隨著深度學(xué)習(xí)的高速發(fā)展,單任務(wù)模型已經(jīng)逐漸被拋棄。取而代之的是更集成,更綜合,更強(qiáng)大的多任務(wù)模型。Mask R-CNN就是其中的代表。

             3)引領(lǐng)潮流。再次向何凱明和Ross Girshick致敬,他們的實(shí)力引領(lǐng)了目標(biāo)檢測(cè)領(lǐng)域的發(fā)展,因此無(wú)論他們?cè)谀?,無(wú)論是在微軟還是FaceBook,他們的idea和作品都被非常多的人應(yīng)用或者繼承。


          瀏覽 82
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草香蕉网 | 91精品国产99久久久久久红楼 | 爱搞在线 | 免费啪啪啪 | 午夜毛片毛片 |