论文精读:Mask R-CNN
Abstract
????????我們提出了一個概念上簡單、靈活和通用的對象實例分割框架。我們的方法可以有效地檢測圖像中的對象,同時為每個實例生成一個高質(zhì)量的分割掩模。該方法被稱為MaskR-CNN,通過與現(xiàn)有用于邊界和識別的分支并行的R-CNN。MaskR-CNN訓練很簡單,只比Faster R-CNN增加了一小部分開銷,以5幀/秒的速度運行。此外,Mask R-CNN很容易推廣到其他任務中,例如,允許我們在相同的框架下估計人體姿態(tài)。我們展示了COCO挑戰(zhàn)套件的所有三個軌道的頂級結果,包括實例分割、邊界框目標檢測和個人關鍵點檢測。在沒有花哨功能的情況下,MaskR-CNN在每項任務上都優(yōu)于所有現(xiàn)有的單模型條目,包括2016年COCO挑戰(zhàn)的獲勝者。我們希望我們的簡單而有效的方法將作為一個堅實的基線,并有助于簡化未來的實例級識別研究。代碼已在https://github.com/ facebookresearch/Detectron.
1. Introduction
????????視覺社區(qū)在短時間內(nèi)快速提高了目標檢測和語義分割的結果。在很大程度上,這些進步是由強大的基線系統(tǒng)驅(qū)動的,如分別用于目標檢測和語義分割的Faster RCNN[12,36]和全卷積網(wǎng)絡(FCN)[30]框架。這些方法在概念上是直觀的,并提供了靈活性和魯棒性,以及快速的訓練和推理時間。我們在這項工作中的目標是為實例分割開發(fā)一個比較可行的框架。????????
????????實例分割是具有挑戰(zhàn)性的,因為它需要正確地檢測圖像中的所有對象,同時也需要精確地分割每個實例。因此,它結合了經(jīng)典的對象檢測計算機視覺任務中的元素,其中目標是對單個對象進行分類,并使用邊界框?qū)γ總€對象進行定位,以及語義分割,其中目標是將每個像素分類為一組固定的類別,而不區(qū)分對象實例。1.有鑒于此,人們可能會認為需要一種復雜的方法來獲得良好的結果。然而,我們證明了一個驚人的簡單、靈活和快速的系統(tǒng)可以超越先前的最先進的實例分割結果。
????????我們的方法,稱為MaskR-CNN,擴展了Faster R-CNN[36],通過添加一個分支用于預測每個感興趣區(qū)域(RoI)上的分割掩模,與現(xiàn)有的用于分類和邊界盒回歸的分支并行(圖1)。掩模分支是一個應用于每個RoI的小FCN,以像素-頂像素的方式預測分割掩模。MaskR-CNN易于實現(xiàn)和訓練,并且囊括了Faster R-CNN框架,這促進了廣泛的靈活的架構設計。此外,掩模分支只增加了一個小的計算開銷,支持一個快速的系統(tǒng)和快速的實驗。
?????????原則上,Mask R-CNN是對Faster R-CNN的直觀擴展,但正確地構建掩碼分支對于良好的結果是至關重要的。最重要的是,Faster RCNN并不是為網(wǎng)絡輸入和輸出之間的像素對像素對齊而設計的。這一點最明顯的是RoIPool[18,12],事實上的處理實例的核心操作,如何執(zhí)行特征提取的粗空間量化。為了解決這種錯位,我們提出了一個簡單的、無量化的層,稱為RoI Align,它忠實地保留了精確的空間位置。
????????盡管這似乎是一個微小的變化,但RoI Align有很大的影響:它將掩模精度相對提高了相對10%到50%,在更嚴格的本地化指標下顯示出更大的收益。其次,我們發(fā)現(xiàn)解耦掩模和類預測是至關重要的:我們?yōu)槊總€類獨立預測一個二進制掩模,沒有類之間的競爭,并依賴網(wǎng)絡的RoI分類分支來預測類別。相比之下,FCN通常執(zhí)行每像素的多類分類,這結合了分割和分類,并且基于我們的實驗,例如分割的效果很差。
????????在沒有花哨功能的情況下,MaskR-CNN超越了COCO實例分割任務[28]上所有最先進的單模型結果,包括2016年競賽獲勝者的大量作品。作為一個副產(chǎn)品,我們的方法也擅長于COCO目標檢測任務。在消融實驗中,我們評估了多個基本實例,這使我們能夠證明其穩(wěn)健性,并分析核心因素的影響。
????????我們的模型在GPU上可以以每幀約200 ms的速度運行,在一臺8-GPU機器上訓練COCO需要一到兩天的時間。我們相信,快速的訓練和測試速度,以及框架的靈活性和準確性,將有利于和簡化未來的實例分割研究。
????????最后,我們通過對COCO關鍵點數(shù)據(jù)集[28]上的人體姿態(tài)估計任務,展示了我們的框架的通用性。通過將每個關鍵點視為一個熱的二進制掩碼,用最小的修改,Mask R-CNN可以應用于檢測特定于實例的姿態(tài)。MaskR-CNN超過了2016年COCO關鍵點比賽的獲勝者,同時以5幀/秒的速度運行。因此,MaskR-CNN可以被更廣泛地看作是一個用于實例級識別的靈活框架,并且可以很容易地擴展到更復雜的任務。
????????
2. Related Work
????????R-CNN:基于區(qū)域的CNN(R-CNN)的邊界框目標檢測方法[13]是關注可管理數(shù)量的候選對象區(qū)域[42,20],并在每個RoI上獨立評估卷積網(wǎng)絡[25,24]。R-CNN擴展了[18,12],允許使用RoIPool在特征圖上關注RoIs,從而實現(xiàn)快速的速度和更好的準確性。Faster R-CNN[36]通過學習區(qū)域建議網(wǎng)絡(RPN)學習注意機制來推進這一流。Faster R-CNN對于許多后續(xù)改進(例如,[38,27,21])是靈活和健壯的,并且是當前幾個基準測試中的領先框架。?
???????Instance Segmentation: :受RCNN的有效性的驅(qū)動,許多實例分割的方法都是基于分段建議的。早期的方法[13,15,16,9]采用自下而上的節(jié)段[42,2]。DeepMask[33]和以下工作[34,8]學習提出候選片段,然后通過Fast R-CNN進行分類。在這些方法中,分割先于識別,識別速度慢,精度較低。同樣,Dai等人[10]提出了一個復雜的多階段級聯(lián),從邊界框建議中預測分段建議,然后進行分類。相反,我們的方法是基于掩模和類標簽的并行預測,這更簡單、更靈活。
????????最近,Li等人[26]將[8]中的分割建議系統(tǒng)和[11]中的目標檢測系統(tǒng)相結合,進行“全卷積實例分割”(FCIS)。[8,11,26]中常見的想法是完全卷積地預測一組位置敏感的輸出通道。這些通道同時處理對象類、框和掩碼,使系統(tǒng)速度快。但是FCIS在重疊的實例上表現(xiàn)出了系統(tǒng)的錯誤,并產(chǎn)生了虛假的邊緣(圖6),這表明它受到了分割實例的基本困難的挑戰(zhàn)。
????????另一類實例分割的解決方案是由語義分割的成功驅(qū)動的。從每個像素的分類結果(例如,FCN輸出)開始,這些方法試圖將同一類別的像素切割為不同的實例。與這些方法的分割優(yōu)先策略相比,MaskR-CNN是基于實例優(yōu)先策略的。我們希望在未來將對這兩種策略進行更深入的結合研究。
3. Mask R-CNN
? ? ? ? Mask R-CNN在概念上很簡單:Faster R-CNN對每個候選對象有兩個輸出,一個類標簽和一個邊界框偏移量;對此,我們添加了第三個輸出對象掩碼的分支。因此,Mask R-CNN是一個自然和直觀的想法。但是附加的掩模輸出不同于類和盒子輸出,需要提取更精細的對象空間布局。接下來,我們介紹了MaskR-CNN的關鍵元素,包括像素對像素的對齊,這是Fast/Faster R-CNN的主要缺失部分。
? ? ? ? Faster R-CNN:我們首先簡要回顧一下Faster R-CNN檢測器[36]。Faster R-CNN由兩個階段組成。第一階段,稱為區(qū)域提案網(wǎng)絡(RPN),提出了候選對象的邊界框。第二階段,本質(zhì)上是FastR-CNN[12],使用RoIPool從每個候選框中提取特征,并進行分類和邊界框回歸。這兩個階段所使用的特性可以被共享,以便更快地進行推斷。我們建議讀者參考[21],以了解Faster R-CNN和其他框架之間最新、全面的比較
????????MaskR-CNN:MaskR-CNN采用相同的兩階段程序,具有相同的第一階段(即RPN)。在第二階段,與預測類和盒偏移量的同時,Mask R-CNN還為每個RoI輸出一個二進制掩碼。這與最近的系統(tǒng)相反,后者的分類依賴于掩模預測(例如[33,10,26])。我們的方法遵循了FastR-CNN[12]的精神,即并行應用邊界盒分類和回歸(這在很大程度上簡化了原始R-CNN[13]的多階段管道)。
????????形式上,在訓練期間,我們將每個采樣RoI上的多任務損失定義為L=Lcls+Lbox+Lmask。分類損失Lcls和邊界框損失Lbox與[12]中定義的相同。掩碼分支為每個RoI有一個Km二維輸出,它編碼K個分辨率為m×m的二進制掩碼,每個K個類一個。為此,我們應用每像素s型,并將Lmask定義為平均二進制交叉熵損失。對于與地面真實類k相關聯(lián)的RoI,Lmask只定義在第k個掩碼上(其他掩碼輸出不會造成損失)。
????????我們對Lmask的定義允許網(wǎng)絡為每個類生成掩碼,而無需類之間的競爭;我們依賴于專用的分類分支來預測用于選擇輸出掩碼的類標簽。這可以解耦掩碼和類預測。這與將FCNs[30]應用于語義分割時的常見做法不同,后者通常使用每像素的softmax和多項式交叉熵損失。在這種情況下,跨類的掩碼相互競爭;在我們的例子中,對于每像素的s型和二進制損失,它們不會。實驗結果表明,該公式是獲得良好的實例分割結果的關鍵。
????????
????????Mask Representation: 掩碼對輸入對象的空間布局進行編碼。因此,不同于類標簽或盒抵消不可避免地被全連接(fc)層分解為短輸出向量,提取掩模的空間結構可以通過卷積提供的像素-像素對應自然地解決。?
????????具體來說,我們使用FCN[30]預測每個RoI的m×m掩模。這允許掩模分支中的每一層維護顯式的m×m對象空間布局,而不會將其折疊為缺乏空間維度的向量表示。與以往采用fc層進行掩模預測[33,34,10]的方法不同,我們的完全卷積表示需要更少的參數(shù),而且通過實驗證明,它更準確。
????????具體來說,我們使用FCN[30]預測每個RoI的m×m掩模。這允許掩模分支中的每一層維護顯式的m×對象空間布局,而不會將其折疊為缺乏空間維度的向量表示。與以往采用fc層進行掩模預測[33,34,10]的方法不同,我們的完全卷積表示需要更少的參數(shù),而且通過實驗證明,它更準確。
????????RoIAlign:RoIPool[12]是從每個RoI中提取一個小的特征映射(例如,7×7)的標準操作。RoIPool首先將浮動數(shù)RoI量化為特征映射的離散粒度,然后這個量化的RoI被細分為空間箱子,空間箱子本身被量化,最后每個箱子覆蓋的特征值被聚合(通常通過最大池化)量化,例如,通過計算[x/16]在連續(xù)坐標x上執(zhí)行,其中16是一個特征圖步幅,[·]是四舍五入;同樣,量化在劃分為箱子時進行量化(例如,7×7)。這些量化引入了RoI和提取的特征之間的失調(diào)。雖然這可能不會影響分類,因為分類對小的翻譯是魯棒性的,但它對預測像素準確的掩模有很大的負面影響。
????????為了解決這個問題,我們提出了一個RoIAlign層,它消除了RoIPool的苛刻量化,將提取的特征與輸入正確對齊。我們提出的更改很簡單:我們避免了RoI邊界或bins的任何量化(即,我們使用x/16而不是[x/16])。我們使用雙線性插值[22]來計算每個RoIbin中四個定期采樣位置的輸入特征的精確值,并將結果聚合(使用最大值或平均值),詳見圖3。我們注意到,只要不進行量化,結果對精確的采樣位置或采樣點不敏感。
????????正如我們在4.2中所示,RoI Align導致了很大的改進。我們還比較了在[10]中提出的RoI Warp操作。與RoI Align不同,RoI Warp忽略了對齊問題,并在[10]中實現(xiàn)為量化RoIPool一樣。因此,盡管RoIWarp也采用了由[22]驅(qū)動的雙線性重采樣,但它的性能與RoIPool相當(更多細節(jié)見表2c),證明了對齊的關鍵作用。
????????Network Architecture: :為了演示我們的方法的通用性,我們用多個架構實例化了MaskR-CNN。為了清晰起見,我們區(qū)分了:(i)用于整個圖像的特征提取的卷積主干架構,以及(ii)用于邊界盒識別(分類和回歸)和掩碼預測的網(wǎng)絡頭,它們分別應用于每個RoI。
????????我們使用命名法網(wǎng)絡深度特征來表示主干架構。我們評估了深度為50層或101層的ResNet[19]和ResNeXt[45]網(wǎng)絡。使用ResNets[19]的Faster R-CNN的原始實現(xiàn)從第4階段的最終卷積層中提取了特征,我們稱之為C4。例如,這個具有ResNet-50的主干用ResNet-50-C4表示。這是[19,10,21,39]中常用的一種選擇。
????????我們還探索了由Lin等人[27]最近提出的另一個更有效的主干,稱為特征金字塔網(wǎng)絡(FPN)。FPN使用一個帶有橫向連接的自頂向下架構,從單尺度輸入構建一個網(wǎng)絡內(nèi)特征金字塔。使用FPN主干的Faster R-CNN根據(jù)其規(guī)模從特征金字塔的不同級別提取RoI特征,但在此之外,其他方法類似于普通的ResNet。使用ResNet-FPN骨干與Mask RCNN進行特征提取,在準確性和速度上都獲得了極好的收益。有關FPN的更多細節(jié),請向讀者參考[27]。
????????對于網(wǎng)絡頭,我們密切遵循之前工作中提出的架構,其中我們添加了一個完全卷積掩碼預測分支。具體來說,我們從ResNet[19]和FPN[27]的論文中擴展了Faster R-CNN盒頭。詳細信息如圖4所示。ResNet-C4主干上的頭部包括ResNet的第5階段(即9層的res5‘[19]),這是計算密集型的。對于FPN,主干已經(jīng)包括res5,因此允許一個更有效的頭,使用更少的過濾器.
????????我們注意到,我們的掩模分支有一個簡單的結構。更復雜的設計有潛力提高性能,但這并不是這項工作的重點。
3.1. Implementation Details
????????我們在現(xiàn)有的Fast/Faster R-CNN工作[12,36,27]之后設置超參數(shù)。雖然這些決策是在原始論文[12,36,27]中為目標檢測而做出的,但我們發(fā)現(xiàn)我們的實例分割系統(tǒng)對它們具有魯棒性。?
????????Training: :就像在FastR-CNN中一樣,如果一個IoI有IoU和一個至少為0.5的地面真值盒,則被認為是正的,否則是負的。掩模丟失Lmask僅在正RoIs上定義。掩碼目標是RoI與其相關的地面真實掩模之間的交集。
????????我們采用以圖像為中心的訓練[12]。圖像的調(diào)整使其比例(較短的邊緣)為800像素[27]。每個小批每個GPU有2張圖像,每張圖像有N個采樣roi,正[12]與負[12]的比例為1:3。C4主干N為64(如[12,36]),FPN N為512(如[27])。我們在8個gpu(有效小批量大小為16)上進行160k迭代訓練,學習速率為0.02,在120k迭代時降低了10。我們使用的權重衰減為0.0001,動量為0.9。使用ResNeXt[45],我們?yōu)槊總€GPU訓練1張圖像和相同次數(shù)的迭代,起始學習率為0.01。
????????RPN錨點跨越5個尺度和3個長寬比,遵循[27]。為了方便消融,RPN是單獨訓練的,并且不與MaskR-CNN共享特征,除非有特別說明。對于本文中的每一個條目,RPN和MaskR-CNN都有相同的主干,因此它們是可共享的。
????????Inference: 在測試時,C4主干的建議編號為300(如[36]),FPN的提案編號為1000(如[27])。我們在這些建議上運行盒子預測分支,然后使用非最大抑制[14]。然后將掩碼分支應用于得分最高的100個檢測框。盡管這不同于在訓練中使用的并行計算,但它加快了推理速度并提高了準確性(由于使用了更少、更準確的roi)。
????????掩碼分支可以預測每個RoI的K個掩碼,但我們只使用第k個掩碼,其中k是分類分支預測的類。然后,將m×m浮數(shù)掩模輸出的大小調(diào)整為RoI大小,并在閾值為0.5時進行二值化。
????????請注意,由于我們只計算前100個檢測框上的掩碼,Mask R-CNN為其Faster R-CNN增加了一個小開銷(例如,典型模型上的~20%)。
4. Experiments: Instance Segmentation
????????我們對Mask R-CNN進行了全面的比較,并對COCO數(shù)據(jù)集[28]進行了全面的消融。我們報告了標準的COCO指標,包括AP(平均超過IoU閾值)、AP50、AP75和APS、APM、APL(不同尺度上的AP)。除非特別說明,AP正在使用掩模IoU進行評估。與之前的工作[5,27]一樣,我們使用80k訓練圖像和35k val圖像子集(訓練35k)的并集進行訓練,并報告剩余5k val圖像(微型)的消融。我們還報告了測試開發(fā)[28]的結果。
4.1. Main Results
????????我們將MaskR-CNN與表1中最先進的實例分割方法進行了比較。我們的模型的所有實例化都優(yōu)于以前最先進的模型的基線變體。這包括MNC[10]和FCIS[26],他們分別是2015年和2016年經(jīng)濟成本細分挑戰(zhàn)的贏家。在沒有附加功能的情況下,具有ResNet-101-FPN骨干的MaskR-CNN的性能優(yōu)于FCIS+++[26],后者包括多尺度訓練/測試、水平翻轉(zhuǎn)測試和在線硬示例挖掘(OHEM)[38]。雖然在這項工作的范圍之外,但我們希望許多這樣的改進也適用于我們的工作。
? ? ? ? Mask R-CNN輸出如圖2和圖5所示。Mask R-CNN即使在具有挑戰(zhàn)性的條件下也能取得良好的效果。在圖6中,我們比較了MaskR-CNN基線和FCIS+++[26]。FCIS+++在重疊的實例上表現(xiàn)出了系統(tǒng)的偽影,這表明它受到了實例分割的基本困難的挑戰(zhàn)。MaskR-CNN沒有顯示這樣的偽影。
4.2. Ablation Experiments
????????我們運行了一些消融來分析Mask R-CNN。結果如表2所示,接下來將進行詳細討論。
????????Architecture:表2a顯示了具有各種骨干的MaskR-CNN。它受益于更深層次的網(wǎng)絡(50比101)和先進的設計,包括FPN和ResNeXt。我們注意到,并不是所有的框架都會自動受益于更深層次或高級的網(wǎng)絡(參見[21]中的基準測試)。????????
????????Multinomial vs. Independent Masks: Mask?R-CNN解耦掩碼和類預測:由于現(xiàn)有的box分支預測類標簽,我們?yōu)槊總€類生成一個掩碼,而沒有類之間的競爭(通過每像素的s型和二進制損失)。在表2b中,我們將其與使用每像素的softmax和多項損失(如在FCN[30]中常用的)進行了比較。這種選擇將掩模和類預測的任務結合起來,并導致掩模AP的嚴重損失(5.5)。這表明,一旦實例被分類為一個整體(通過盒子分支),它就足以預測一個二進制掩碼,而不考慮類別,這使得模型更容易訓練。
????????Class-Specifific vs. Class-Agnostic Masks: 我們的默認實例化預測特定于類的掩碼,即每個類有一個m×m個掩碼。有趣的是,帶有類不可知Mask R-CNN(即,無論類別都預測單個m×m輸出)幾乎同樣有效:它有29.7 AP,而ResNet-50-C4上的類特定對應物為30.3。這進一步強調(diào)了在我們的方法中的勞動分工,這在很大程度上解耦了分類和分割。
????????RoIAlign:我們提出的RoIAlign層的評估見表2c。在這個實驗中,我們使用了ResNet-50-C4主干,它的步幅為16。RoIAlign比RoIPool提高了約3個百分點,其中大部分收益來自于高IoU(AP75)。RoIAlign對最大/平均池不敏感;我們在論文的其余部分使用平均值。
????????此外,我們還與MNC[10]中提出的同樣采用雙線性抽樣的RoIWarp進行了比較。如3中所討論的,RoIWarp仍然量化RoI,失去與輸入的對齊。從表2c中可以看出,RoIWarp的性能與RoIPool相當,但比RoIAlign要差得多。這強調(diào)了正確的對齊是關鍵
????????我們還評估了使用ResNet-50-C5主干的RoIAlign,它有更大的步幅,為32像素。我們使用與圖4(右)相同的頭,因為res5頭不適用。表2d顯示,RoIAlign將AP提高了7.3個百分點,AP75提高了10.5個百分點(相對提高了50%)。此外,我們注意到,在RoIAlign中,使用步幅-32C5特征(30.9AP)比使用步幅-16C4特征(30.3AP,表2c)更準確。RoIAlign在很大程度上解決了長期以來使用大步幅特征進行檢測和分割的挑戰(zhàn)。
????????最后,RoIAlign在與FPN一起使用時顯示了1.5 mask AP和0.5boxAP,具有更精細的多級步幅。對于需要更精細的對齊的關鍵點檢測,RoIAlign即使在使用FPN時也顯示出了很大的增益(表6)。
????????Mask Branch: 分割是一個像素到像素的任務,我們利用FCN利用掩模的空間布局。在表2e中,我們使用ResNet-50-FPN骨干,比較了多層感知器(MLP)和FCNs。使用FCNs得到的掩模AP增益為2.1。我們注意到,我們選擇這個主干是為了使FCN頭部的conv層沒有經(jīng)過預先訓練,以便與MLP進行公平的比較。
4.3. Bounding Box Detection Results
????????我們將MaskR-CNN與表3中最先進的COCO邊界框?qū)ο髾z測進行了比較。對于這個結果,即使訓練了完整的MaskR-CNN模型,在推理中也只使用分類和框輸出(忽略掩碼輸出)。使用ResNet-101-FPN的MaskR-CNN優(yōu)于之前所有最先進模型的基本變體,包括GRMI[21]的單模型變體,COCO2016檢測挑戰(zhàn)的贏家。使用ResNeXt-101-FPN,MaskR-CNN進一步改進了結果,與[39]之前最好的單個模型條目(使用初始-ResNet-v2-TDM)相比,有3.0point的邊界框AP。?
????????作為進一步的比較,我們訓練了一個版本的Mask R-CNN,但沒有掩碼分支,在表3中用“Faster R-CNN,RoIAlign”表示。由于RoIAlign,該模型的性能不如[27]中提出的模型。另一方面,它比MaskR-CNN低0.9點。因此,MaskR-CNN在盒子檢測上的差距僅僅是由于多任務訓練的好處。
????????最后,我們注意到MaskR-CNN在mask和boxAP之間之間有一個小的差距:例如,37.1(mask,表1)和39.8(box,表3)之間有2.7百分點的差距。這表明,我們的方法在很大程度上縮小了目標檢測和更具挑戰(zhàn)性的實例分割任務之間的差距。
4.4. Timing????????
???????Inference: 我們訓練了一個ResNet-101-FPN模型,該模型在RPN和MaskR-CNN階段之間共享特征,遵循Faster R-CNN[36]的4步訓練。該型號在Nvidia Tesla??M40GPU上以每張圖像195 ms的速度運行(加上15 ms的CPU時間將輸出調(diào)整為原始分辨率),并在統(tǒng)計上實現(xiàn)了與未共享的相同的掩碼AP。我們還報告了ResNet-101-C4變體需要~400ms,因為它有一個更重的盒頭(圖4),所以我們不建議在實踐中使用C4變體。?
????????雖然MaskR-CNN速度很快,但我們注意到我們的設計并沒有為速度進行優(yōu)化,而且[21]可以實現(xiàn)更好的速度/精度的權衡,例如,通過改變圖像大小和提案號,這超出了本文的范圍。
? ? ? ? training:MaskR-CNN的訓練速度也很快。在我們同步的8-GPU實現(xiàn)中,使用ResNet-50-FPN進行COCO訓練需要32小時(每16個圖像小批0.72秒),使用ResNet-101-FPN需要44小時。事實上,快速的原型設計可以在不到一天的時間內(nèi)完成,當在火車上進行訓練。我們希望這樣的快速培訓將消除這一領域的一個主要障礙,并鼓勵更多的人對這個具有挑戰(zhàn)性的話題進行研究。
5. Mask R-CNN for Human Pose Estimation
????????我們的框架可以很容易地擴展到人類的姿態(tài)估計。我們將一個關鍵點的位置建模為一個熱掩模,并采用MaskR-CNN預測K個掩模,每種關鍵點類型(如左肩、右肘)。這個任務有助于演示MaskR-CNN的靈活性。我們注意到,我們的系統(tǒng)利用了人體姿態(tài)的最小領域知識,因為實驗主要是為了證明MaskR-CNN框架的通用性。我們期望領域知識(例如,建模結構[6])將是對我們的簡單方法的補充。
????????Implementation Details:當分割系統(tǒng)適應關鍵點時,我們對它做了一些小的修改。對于一個實例的每個K個關鍵點,訓練目標是一個one-hot m×m二進制掩模,其中只有一個像素被標記為前景。?在訓練過程中,對于每個可見的地面真實關鍵點,我們最小化了-way?softmax輸出上的交叉熵損失(這鼓勵單個點被檢測)。我們注意到,在實例分割中,K個關鍵點仍然被獨立處理。
????????我們采用ResNet-FPN變體,關鍵點頭結構類似于圖4(右)。關鍵點頭由8個3×3 512-dconv層組成,然后是一個解波層和2×雙線性升級,產(chǎn)生的輸出分辨率為56×56。我們發(fā)現(xiàn),一個相對較高的分辨率輸出(相對于掩模)是需要的關鍵點級的定位精度。
????????
?????????模型在所有包含注釋關鍵點的COCO訓練35k圖像上進行訓練。為了減少過擬合,由于這個訓練集較小,我們使用從[640,800]像素中隨機采樣的圖像尺度進行訓練;推理是在800像素的單一尺度上。我們訓練90k次迭代,從0.02的學習率開始,在60k和80k次迭代中減少10次。我們使用閾值為0.5的邊界框NMS。其他細節(jié)與3.1中提到的相同。
Main Results and Ablations:我們評估了人的關鍵點AP(),并使用ResNet-50-FPN骨干進行了實驗;更多的骨干將在附錄中進行研究。表4顯示,我們的結果(62.7)比使用多階段處理管道的COCO2016關鍵點檢測贏家[6]高出0.9個點(見表4的標題)。我們的方法相當簡單、更快。 更重要的是,我們有一個統(tǒng)一的模型,它可以在以5幀/秒的速度運行時,同時預測box、圖像分割和關鍵點。添加一個段分支(用于人員類別)可以將的測試開發(fā)級別提高到63.1(表4)。多任務學習的應用見表5。將mask分支添加到僅限框(即Faster R-CNN)或僅關鍵點版本中,可以持續(xù)改進這些任務。然而,添加關鍵點分支會略微減少box/mask AP,這表明雖然關鍵點檢測受益于多任務訓練,但它反過來并不能幫助其他任務。然而,共同學習所有三個任務可以使一個統(tǒng)一的系統(tǒng)能夠同時有效地預測所有輸出(圖7)。 ????????我們還研究了RoIAlign對關鍵點檢測的影響(表6)。雖然這個ResNet-50-FPN主干有更精細的進步(例如,在最好的水平上是4像素),RoIAlign仍然比RoIPool有顯著的改進,并將APkp提高了4.4個點。這是因為關鍵點檢測對定位精度更為敏感。這再次表明,對齊對于像素級定位至關重要,包括掩模和關鍵點。 ????????考慮到MaskR-CNN在提取對象邊界框、掩碼和關鍵點方面的有效性,我們期望它能成為其他實例級任務的有效框架。Appendix A: Experiments on Cityscapes
????????我們進一步報告了在城市景觀[7]數(shù)據(jù)集上的實例分割結果。該數(shù)據(jù)集對2975訓練集、500張驗證集和1525張測試集圖像都有很好的注釋。它有20k個粗訓練圖像,沒有實例注釋,我們不使用這些注釋。所有圖像均為2048×1024像素。實例分割任務涉及8個對象類別,其在精細訓練集上的實例數(shù)量為:?
該任務上的實例分割性能可以通過coco-style的mask AP(平均超過IoU閾值)來衡量;還報告了AP50(即IoU為0.5時的mask AP)。?
????????Implementation: 我們用Mask R-CNN模型應用ResNet-FPN-50;我們發(fā)現(xiàn)由于數(shù)據(jù)集大小小,101層對應的性能類似。我們使用從[800,1024]中隨機采樣的圖像尺度(更短的邊)進行訓練,這減少了過擬合;推理是在1024個像素的單個尺度上。我們使用每個GPU1個圖像的小批量大小(8個GPU上有8個),并對模型進行24k迭代訓練,從學習速率0.01開始,在18k迭代時將其減少到0.001。在這個設置下,在一臺8-GPU機器上需要4小時的訓練。
???????Results: 表7將我們的結果與驗證集和測試集的現(xiàn)狀進行了比較。在不使用粗訓練集的情況下,我們的方法在測試中達到了26.2AP,比之前的最佳條目(DIN[3])相對提高了30%以上,也優(yōu)于SGN的25.0[29]的并行工作。DIN和SGN都使用精細的+粗數(shù)據(jù)。與僅使用精細數(shù)據(jù)(17.4AP)的最佳條目相比,我們實現(xiàn)了~50%的改進。
????????對于個人和汽車類別,城市景觀數(shù)據(jù)集顯示了大量的類別內(nèi)重疊實例(平均每張圖片有6人和9輛車)。我們認為類別內(nèi)重疊是實例分割的核心難點。我們的方法在這兩個類別上有了巨大的改進(相對~從21.8提高到30.5,~從39.4提高到46.9提高了20%),盡管我們的方法沒有利用粗數(shù)據(jù)。
????????城市景觀數(shù)據(jù)集的一個主要挑戰(zhàn)是在低數(shù)據(jù)狀態(tài)下訓練模型,特別是對于卡車、公共汽車和火車的類別,每個樣本大約有200-500個訓練樣本。為了部分解決這個問題,我們進一步報告了使用COCO預培訓的結果。為此,我們從預先訓練過的COCO MaskR-CNN模型(隨機初始化騎手)中初始化城市景觀中相應的7個類別。我們對4k次迭代進行微調(diào),其中3k次迭代時學習率降低,給定COCO模型需要~1小時的~訓練。
????????COCO預訓練的MaskR-CNN模型在測試中達到了32.0AP,幾乎比僅精細的模型提高了6個points。這表明了訓練數(shù)據(jù)的量所發(fā)揮的重要作用。這也表明,城市景觀的方法可能受到其低射學習表現(xiàn)的影響。我們表明,使用COCO預訓練是一種有效的策略
????????最后,我們觀察到val和testAP之間的偏差,從[23,4,29]的結果中也觀察到。我們發(fā)現(xiàn),這種偏差主要是由卡車、公交車和火車類別引起的,僅精細模型的驗證集/測試集AP分別為28.8/22.8、53.5/32.2和33.0/18.6。這表明這些類別存在領域轉(zhuǎn)移,這些類別也沒有訓練數(shù)據(jù)。COCO預訓練最有助于提高這些類別的結果;然而,38.0/30.1、57.5/40.9和41.2/30.9val/測試AP的領域轉(zhuǎn)移分別持續(xù)存在。請注意,對于個人和汽車類別,我們沒有看到任何這樣的偏差(val/測試AP在±1分范圍內(nèi))。關于城市景觀的示例結果如圖8所示。
????????
?
Appendix B: Enhanced Results on COCO
?????????作為一個通用框架,MaskR-CNN與用于檢測/分割開發(fā)的互補技術兼容,包括對快速/快速的R-CNN和FCNs的改進。在本附錄中,我們將描述一些改進于原始結果的技術。由于其通用性和靈活性,MaskR-CNN被COCO2017實例分割競賽中的三個獲勝團隊使用作為框架,它們都顯著優(yōu)于之前的技術水平。
Instance Segmentation and Object Detection????????
????????我們在表8中報告了MaskR-CNN的一些增強結果。總的來說,改進增加了mask AP 5.1個points(從36.7增加到41.8)和AP 7.7個points(從39.6增加到47.3)。每個模型改進都一致地增加了mask? AP和box AP,顯示了Mask R-CNN框架的良好泛化。接下來,我們將詳細說明這些改進的內(nèi)容。這些結果,以及未來的更新,可以通過我們在https://github.com/facebookresearch/Detectron上發(fā)布的代碼進行復制,并可以作為未來研究的更高的基線。?
????????Updated baseline: 我們從使用一組不同的超參數(shù)的更新的基線開始。我們將訓練時間延長到180k次迭代,其中在120k次迭代和160k次迭代時,學習率降低了10次。我們還將NMS閾值更改為0.5(從默認值更為0.3)。更新后的基線有37.0Mask AP和40.5box AP。
???????End-to-end training:之前所有的結果均采用階段訓練,即訓練RPN作為第一階段,MaskR-CNN作為第二階段。在[37]之后,我們評估了聯(lián)合訓練RPN和Mask RCNN的端到端(‘e2e’)訓練。我們在[37]中采用了“近似”版本,它只通過忽略梯度w.r.t.來計算RoIAlign層中的部分梯度RoI坐標。表8顯示,e2e訓練使Mask AP提高了0.6,box AP提高了1.2。
????????ImageNet-5k pre-training: 在[45]之后,我們在ImageNet的一個5k類子集上實驗使用預訓練的模型(與標準的1k類子集相比)。訓練前數(shù)據(jù)的5×增加改善了mask和box AP。作為參考,[40]使用了~250×更多的圖像(300M),并報告了其基線上的2-3盒AP改善。
????????Train-time augmentation:訓練時間的規(guī)模增加進一步提高了結果。在訓練過程中,我們從[640,800]個像素中隨機抽取一個量表,并將迭代次數(shù)增加到260k(在200k和240k迭代時,學習率減少了10次)。列車時間增強使mask AP提高0.6,box AP提高0.8。
???????Model architecture: 通過將101層ResNeXt升級到152層對應的[19],我們觀察到增加了0.5個mask AP和0.6個box AP的增加。這表明,一個更深層次的模型仍然可以提高COCO的結果。
????????利用最近提出的非局部(NL)模型[43],我們實現(xiàn)了40.3mask AP和45.0box AP。這個結果沒有測試時間的增加,該方法在Nvidia Tesla P100 GPU上以3幀每秒的速度運行。
????????Test-time augmentation: 我們結合使用[400,1200]像素的尺度和100,并在它們的水平翻轉(zhuǎn)。這給了我們一個41.8mask AP和47.3box AP的單模結果。
????????上述結果是我們提交COCO2017CO競賽的基礎(該競賽也使用了一個集合,這里沒有討論)。據(jù)報道,實例分割任務的前三個獲勝團隊都是基于MaskR-CNN框架的擴展。
Keypoint Detection??????
????????我們在表9中報告了關鍵點檢測的增強結果。作為一個更新的基線,我們將訓練計劃擴展到130k次迭代,其中100k次迭代和120k次迭代的學習率降低了10次。這將APkp提高了大約1個點。用ResNet-101和ResNeXt-101取代ResNet-50,使APkp分別增加到66.1和67.3。
????????通過最近一種被稱為數(shù)據(jù)蒸餾[35]的方法,我們能夠利用COCO提供的額外的12萬張未標記圖像。簡而言之,數(shù)據(jù)蒸餾是一種自我訓練策略,它使用在標記數(shù)據(jù)上訓練的模型來預測未標記圖像上的注釋,然后使用這些新的注釋更新模型。MaskR-CNN為這種自我訓練策略提供了一個有效的框架。通過數(shù)據(jù)蒸餾,MaskR-CNNAPkp提高了1.8個points,達到69.1個points。我們觀察到,MaskR-CNN可以從額外的數(shù)據(jù)中獲益,即使這些數(shù)據(jù)是未標記的。
????????通過使用與實例分割相同的測試時間增強,我們進一步將APkp提高到70.4。
總結
以上是生活随笔為你收集整理的论文精读:Mask R-CNN的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈APT攻击
- 下一篇: 公交车信息查询管理系统(Java实现)