天天看點

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

摘要

提出了一種用于圖像中目标檢測的純稀疏方法。現有的目标檢測工作嚴重依賴于密集的候選目标,例如大小為HxW的圖像特征圖的所有網格上預定義的k個錨框。然而,在我們的方法中,總長度為N的學習目标建議的固定稀疏集合被提供給目辨別别頭部以執行分類和定位。通過将HWk(高達數十萬)手動設計的候選目标消除到N個(例如100個)可學習的建議,Sparse R-CNN完全避免了與候選對象設計和多對一标簽配置設定相關的所有工作。更重要的是,最終預測直接輸出,沒有非最大抑制後程式。稀疏R-CNN在具有挑戰性的COCO資料集上展示了與成熟的檢測器基線相當的準确性、運作時間和訓練收斂性能,例如,在标準的3倍訓練時間表中達到45.0 AP,并使用ResNet-50 FPN模型以22 fps運作。我們希望我們的工作能夠啟發我們重新思考物體檢測器中密集先驗的約定。

1、介紹

目标檢測的目的是在圖像中對一組目标進行定位并識别它們的類别。稠密先驗一直是檢測器成功的基石。在經典的計算機視覺中,将分類器應用于密集圖像網格的滑動視窗範式是幾十年來領先的檢測方法。現代主流的單級檢測器在密集的特征地圖網格上預先定義标記,如圖1a所示的錨框或參考點,并預測目标邊界框的相對比例和偏移量,以及對應的類别。盡管兩階段的管道工作在一組稀疏的提案框上,但它們的提案生成算法仍然建立在密集的候選目标上,如圖1b所示。

這些成熟的方法在概念上是直覺的,并提供了強大的性能,以及快速的訓練和推理時間。除了它們的巨大成功之外,重要的是要注意密集先驗檢測器受到一些限制:1)這種流水線通常産生備援和接近重複的結果,是以使得非最大抑制(NMS) 後處理成為必要的組成部分。2)訓練中的多對一标簽配置設定問題使得網絡對啟發式配置設定規則敏感。3)最終性能在很大程度上受尺寸、縱橫比和錨框數量、參考點密度和建議生成算法的影響。

盡管密集的約定在物體檢測器中被廣泛認可,一個自然要問的問題是:有可能設計一個稀疏的檢測器嗎?最近,DETR提議将目标檢測重新表述為直接的稀疏集合預測問題,其輸入僅僅是100個學習目标查詢。最終的預測集直接輸出,無需任何手工設計的後處理。盡管它的架構簡單而奇妙,但DETR要求每個對象查詢都與全局圖像上下文互動。這種密集的特性不僅減緩了訓練收斂速度,而且阻礙了它為目标檢測建立一個完全稀疏的管道。

在本文中,我們提出了一種純粹稀疏的方法,不需要在所有(密集)圖像網格上枚舉目标位置候選,也不需要目标查詢與全局(密集)圖像特征互動。如圖1c所示,給候選目标一組固定的小的可學習的邊界框,用4-d坐标表示。以COCO資料集為例,總共需要100個框和400個參數,而不是區域建議網絡(RPN)中數十萬個候選項的預測值。這些稀疏候選被用作提議框,通過感興趣區域池或感興趣區域對齊提取感興趣區域(RoI)的特征。

可學習的建議框是圖像中潛在目标位置的統計資料。 然而,4-d坐标僅僅是物體的粗略表示,缺乏許多資訊細節,如姿勢和形狀。 在這裡,我們引入另一個關鍵概念,稱為提議特征,這是一個高維(例如256)潛在向量。 與粗糙邊界框相比,該方法更易于編碼豐富的執行個體特征。 特别地,建議特征為其專屬的目辨別别頭生成一系列定制參數。 我們稱這種操作為動态執行個體互動頭,因為它與最近的動态方案有相似之處。 與[30]中共享的2-fc層相比,我們的頭部更靈活,在準确性上保持顯著領先。 在我們的實驗中,我們證明了以唯一的建議特征而不是固定參數為條件的頭部生成實際上是稀疏R-CNN成功的關鍵。 建議框和建議特征與整個網絡的其他參數一起随機初始化和優化。  

在我們的稀疏R-CNN中,最顯著的性質是它的稀疏-内稀疏-外稀疏範式。 初始輸入是一組稀疏的提案框和提案特性,以及一對一的動态執行個體互動。 管道中既不存在稠密候選,也不存在與全局(稠密)特征互動的情況。 這種純粹的稀疏性使得Sparse R-CNN成為R-CNN家族中一個全新的成員。

稀疏R-CNN在具有挑戰性的COCO資料集上證明了其準确性、運作時間和訓練收斂性能與成熟的檢測器不相上下,例如,在标準3×訓練時間表中達到45.0 AP,并使用ResNet-50 FPN模型以22 fps運作。據我們所知,提出的稀疏表示是第一個證明相當稀疏的設計是合格的工作。我們希望我們的工作能夠啟發我們重新思考密集先驗在目标檢測中的必要性,探索下一代目标檢測器。 

2、相關工作

密集方法:

滑動視窗模式在目标檢測領域已經流行了很多年。受經典特征提取技術的限制,性能已經穩定了幾十年,應用場景有限。深度卷積神經網絡(CNNs)的發展培養了實作性能顯著提高的一般目标檢測。主流管道之一是一級檢測器,它以單次拍攝的方式直接預測密集覆寫空間位置、比例和縱橫比的錨框的類别和位置,如OverFeat、YOLO 、SSD和RetiaNet。最近,提出了無錨算法,通過用參考點替換手工制作的錨盒,使該管道變得更加簡單。所有上述方法都建立在密集候選的基礎上,每個候選都直接進行分類和回歸。基于預定義的原則,例如,錨是否與其對應的地面真實值具有較高的過聯合(IoU)門檻值,或者參考點是否落在目标框之一中,在訓練時間将這些候選目标配置設定給地面真實值目标框。此外,需要NMS後處理來移除推理時間内的備援預測。

稀疏到密集方法:

兩級檢測器是另一種主流管道,多年來一直主導着現代物體檢測。 該範式可以看作是稠密檢測器的擴充。 它首先從密集的區域候選中獲得稀疏的前景提案框集,然後細化每個提案的位置并預測其具體類别。 在R-CNN的選擇性搜尋和Faster R-CNN的region proposal Networks (RPN)等兩階段方法中,區域提議算法在第一階段起着重要的作用。 與密集管道類似,它也需要NMS後處理和手工标簽配置設定。 在成千上萬的候選檢測器中隻有少數前景建議,是以這些探測器可以總結為稠密到稀疏的方法。  

最近,人們提出了直接輸出預測,不需要任何手工元件,取得了很好的性能。 DETR利用一組稀疏的目标查詢,與全局(密集)圖像特征進行互動,在這個視圖中,它可以看作是另一種由密集到稀疏的公式。  

稀疏方法:

稀疏目标檢測有潛力消除設計密集候選的努力,但通常已經落後于以上密集檢測器的準确性。 G-CNN可以看作是這組算法的先驅。 它首先在圖像上建立一個多尺度的規則網格,疊代地更新方框來覆寫和分類目标。 這種手工設計的正常先驗顯然是次優的,無法達到最佳性能。 相反,我們的稀疏R-CNN應用了可學習的建議,并取得了更好的性能。 同時,引入Deformable-DETR,将每個對象查詢限制在參考點周圍的一小組關鍵采樣點,而不是特征圖中的所有點。 我們希望稀疏方法可以作為堅實的基線,幫助未來的研究在目标檢測社群。  

3、稀疏R-CNN

稀疏R-CNN架構的關鍵思想是用一小組提案框(如100個)替換來自區域提案網絡(RPN)的數十萬個候選人。 管道如圖3所示。 稀疏R-CNN是一個簡單、統一的網絡,由一個骨幹網、一個動态執行個體互動頭和兩個特定任務的預測層組成。 總共有三個輸入,一個圖像,一組提案框和提案特性。 後兩個參數是可學習的,可以與網絡中的其他參數一起進行優化。 我們将在本節中較長的描述每個元件。  

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

骨幹網絡:

采用基于ResNet架構的特征金字塔網絡(Feature Pyramid Network, FPN)作為骨幹網絡,從輸入圖像生成多尺度特征地圖。 在[22]之後,我們建構了

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

級的金字塔,其中

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

表示金字塔級,

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

的分辨率比輸入低

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

。 所有金字塔層都有256個通道。  實際上,Sparse R-CNN有可能從更複雜的設計中受益,進而進一步提高其性能,例如堆疊編碼器層[3]和可變形卷積網絡,最近的工作DeformableDETR就是在這些基礎上建構的。 然而,我們将設定與Faster R-CNN對齊,以顯示我們方法的簡單性和有效性。  

可學習的框:

一組固定的小的可學習的提議框(N ×4)被用作區域提議,而不是來自區域提議網絡(RPN)的預測。這些建議框由範圍從0到1的四維參數表示,表示标準化的中心坐标、高度和寬度。建議框的參數将在訓練期間用反向傳播算法更新。由于可學習的特性,我們在實驗中發現初始化的影響很小,進而使架構更加靈活。

從概念上講,這些學習的建議框是訓練集中潛在目标位置的統計資料,可以看作是圖像中最可能包含目标的區域的初始猜測,而不管輸入是什麼。 然而,RPN的建議與目前圖像有很強的相關性,并提供粗略的目标位置。 我們重新思考,第一階段的定位是奢侈的存在的後期階段,以細化盒子的位置。 相反,一個合理的統計數字可能已經是合格的候選人。 在這種觀點下,Sparse R-CNN可以被歸類為目标檢測器範式從完全密集到稠密到稀疏再到完全稀疏的擴充,如圖1所示。  

可學習的建議特征:

雖然四維提案框是描述物體的一種簡短而明确的表達方式,但它提供了物體的粗略定位,大量資訊細節丢失,如物體的姿勢和形狀。 在這裡我們引入另一個概念稱為提議特征(N ×d),它是一個高維(例如256)潛在向量,預計編碼豐富的執行個體特征。 提案特性的數量與框的數量相同,接下來我們将讨論如何使用它。  

動态執行個體互動的頭:

給定N個提議框,Sparse R-CNN首先利用RoIAlign操作提取每個提議框的特征。 然後使用我們的預測頭來生成最終的預測。 基于動态算法,我們提出了動态執行個體互動頭。 每個感興趣區域的特征被輸入到其專屬的頭部進行目标定位和分類,每個頭部都以特定的建議特征為條件。  

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

圖4展示了動态執行個體互動。在我們的設計中,提案特征和提案框是一一對應的。對于N個提案箱,采用N個提案特征。每個RoI特征

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

将與相應的建議特征

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

互動,以過濾掉無效的箱并輸出最終的目标特征(C)。對于光的設計,我們用ReLU激活函數進行兩個連續的1 × 1卷積,實作互動過程。這兩個卷積的參數由相應的建議特征生成。

隻要支援并行操作,互動頭的實作細節并不重要。 最終的回歸預測由三層感覺計算,分類預測由線性投影層計算。  

我們還采用疊代結構[2]和自我注意子產品來進一步提高性能。對于疊代結構,新生成的對象框和對象特征将作為疊代過程下一階段的建議框和建議特征。由于稀疏特性和輕動态頭,它隻引入了邊際計算開銷。在動态執行個體互動之前,将自關注子產品應用于對象特征集,以推理目标之間的關系。我們注意到也利用了自我注意子產品。然而,除了對象特征之外,它還需要幾何屬性和複雜的秩特征。我們的子產品簡單得多,隻接受目标特征作為輸入。

設定預測損失:

稀疏R-CNN将集預測損失應用于分類和框坐标的固定大小預測集。 基于集的損失在預測和地面真實目标之間産生最佳的二部比對。 比對成本定義如下:

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

其中

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

為預測分類和地面真值類别标簽的focal loss,

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

分别為歸一化中心坐标與預測框和地面真值框的高度和寬度之間的L1 loss和廣義IoU loss。 

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals
Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

是各分量的系數。 訓練損失與比對代價相同,但隻在比對對上進行。 最終的損失是由訓練批内的對象數量歸一化的所有對的和。 R-CNN族一直被标簽配置設定問題所困擾,因為仍然存在多對一比對問題。 在這裡,我們提供了直接繞過多對一比對和引入基于集損的一對一比對的新可能性。 這是對端到端目标檢測的一次嘗試。 

4、實驗

資料集

我們的實驗是在具有挑戰性的MS COCO基準上進行的,使用了目标檢測的标準度量。所有車型均在COCO train 2017 split(118k圖像)上進行了訓練,并用val2017 (5k圖像)進行了評估。

訓練細節

除非另有說明,否則ResNet-50用作主幹網絡。優化器是AdamW,權重衰減為0.0001。小批量是16幅圖像,所有模型都用8個圖形處理器訓練。預設訓練時間表為36個epoch,初始學習速率設定為

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

,分别在第27和33個epoch時除以10。主幹用ImageNet上預先訓練的權重初始化,其他新添加的層用Xavier初始化。資料增強包括随機水準縮放輸入圖像的抖動,使得最短邊至少為480,最多為800像素,而最長邊最多為1333像素。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

= 2,

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

= 5,

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

= 2。建議框、建議特征和疊代的預設數量分别為100、100和6。為了穩定訓練,梯度在疊代架構的每個階段都被阻塞在建議框中,除了初始建議框。

 測試細節

在稀疏R-CNN中推理過程相當簡單。給定一個輸入圖像,稀疏表示直接預測100個與其分數相關的邊界框。分數表示框包含一個物體的機率。為了評估,我們直接使用這100個框,沒有任何後處理。

4.1、主要結果

為了與表1中的不同檢測器進行公平比較,我們提供了兩個版本的稀疏R-CNN。第一種采用了100個可學習的建議框,沒有随機的裁剪資料增加,用于與主流的物體檢測器進行比較,例如Faster R-CNN和RetaiNet。第二個利用了300個帶有随機作物資料擴充的可學習的建議框,并用于與DETR系列模型進行比較。

如表1所示,稀疏R-CNN在性能上大大優于成熟的主流檢測器,如RetinaNet和Faster R-CNN。令人驚訝的是,基于ResNet-50的稀疏RCNN達到了42.8 AP,在精度上已經與ResNet-101上的Faster R-CNN競争。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

 我們注意到,DETR和可變形DETR通常采用更強的特征提取方法,如堆疊編碼器層和可變形卷積。稀疏R-CNN更強的實作被用來與這些檢測器進行更公平的比較。即使使用簡單的FPN作為特征提取方法,稀疏表示的神經網絡也具有較高的精度。此外,與DETR (26.7的AP對22.5的AP)相比,稀疏無線網絡在小目标上獲得了更好的檢測性能。

 稀疏R-CNN的訓練收斂速度比DETR快10倍,如圖2所示。自提出以來,DETR一直在遭受緩慢的收斂,這激發了可變形DETR的提議。與可變形DETR相比,稀疏R-CNN在準确性(45.0 AP對43.8 AP)和運作時間(22 FPS對19 FPS)方面表現出更好的性能,并且訓練時間更短(36個epoch對50個epoch)。

 表2比較了稀疏R-CNN和COCO測試開發集中的其他方法。使用ResNeXt-101作為主幹,稀疏R-CNN在沒有花哨功能的情況下實作了46.9 AP,在有DCN的情況下實作了48.9 AP。随着額外的測試時間的增加,稀疏R-CNN的AP達到51.5接入點,與最先進的方法持平。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

 4.2、模型分析

在本節中,我們分析了稀疏R-CNN中的每個元件。除非另有說明,所有模型均基于ResNet50-FPN主幹網、100份建議書、3倍訓練步驟。

可學習的建議框:

從更快的R-CNN開始,我們天真地用一組稀疏的可學習的提議框來代替RPN。性能從40.2 AP(表1第3行)下降到18.5 AP(表3)。我們發現,即使堆疊了更完全連接配接的層,也沒有明顯的改善。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

 疊代結構

疊代更新框是一個提高性能的直覺想法。然而,我們發現簡單的級聯架構并不會産生很大的不同,如表4所示。我們分析的原因是,與[2]中主要位于目标周圍的細化建議框相比,我們案例中的候選對象要粗糙得多,難以優化。我們觀察到,一個建議框的目标目标通常在整個疊代過程中是一緻的。是以,前一階段的目标特征可以被重用,為下一階段發揮強大的提示作用,例如,目标特征編碼了豐富的資訊,如目标姿态和位置。為此,我們将前一階段的目标特征連接配接到目前階段。特征重用的這一微小變化,在原有級聯架構的基礎上,帶來了11.7 AP的巨大增益。最後,疊代架構帶來了13.7的AP改進,如表3的第二行所示。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

動态頭

動态頭以與上面讨論的疊代架構不同的方式使用前一階段的目标特征。前一階段的目标特征不是簡單的串聯,而是先由自關注子產品處理,然後作為建議特征實作目前階段的執行個體互動。自我注意子產品應用于目标特征集,用于推理目标之間的關系。表5顯示了自我關注和動态執行個體互動的好處。最後,稀疏表示神經網絡達到了42.3的準确率。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

建議框的初始化

密集檢測器總是很大程度上依賴于候選目标的設計,而稀疏檢測器中的候選目标是可學習的,是以避免了所有與設計手工制作的錨相關的工作。然而,人們可能會擔心提議框的初始化在稀疏RCNN中起着關鍵作用。在這裡,我們研究了初始化建議框的不同方法的效果: “居中”是指所有建議框一開始都位于圖像的中心,高度和寬度設定為圖像大小的0.1。 “圖像”是指所有建議框都被初始化為整個圖像大小。 “網格”是指提案框在圖像中被初始化為正常網格,這正是GCNN中的初始框。 “随機”表示提案框的中心、高度和寬度是用高斯分布随機初始化的。 從表6中我們可以看出,稀疏表示神經網絡的最終性能對建議框的初始化相對穩健。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

建議的數量

提議的數量在很大程度上影響了密集和稀疏檢測器。原始Faster R-CNN使用300個建議。後來增加到2000并獲得更好的性能。我們還在表7中研究了建議數對稀疏R-CNNAP的影響。将建議數量從100增加到500會導緻持續的改進,這表明我們的架構很容易在各種情況下使用。然而,500個建議需要更多的教育訓練時間,是以我們選擇100個和300個作為主要配置。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

疊代結構的數量

疊代結構是一種廣泛使用的提高目标檢測性能的技術,尤其是對于稀疏RCNN。表8顯示了疊代架構中階段數的影響。沒有疊代架構,性能隻有21.7 AP。考慮到第一階段的輸入建議是對可能的對象位置的猜測,這個結果并不令人驚訝。增加到2級會帶來14.5點的增益,到競争性的36.2點。逐漸增加級數,性能在6級飽和。我們選擇6個階段作為預設配置。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

動态頭對多頭Attention

如第3節所述,動态頭使用建議特征來過濾RoI特征,并最終輸出對象特征。我們發現多頭注意力子產品[38]為執行個體互動提供了另一種可能的實作。我們在表9中進行了對比實驗,其性能落後于6.6 AP。與線性多頭注意力相比,我們的動态頭更加靈活,其參數取決于其特定的提議特征,并且更容易引入非線性容量。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals
建議特征對目标查詢

在DETR中提出的目标查詢與提案功能具有相似的設計。這裡我們對DETR提出的目标查詢和我們的建議特征進行比較。如[3]中所讨論的,目标查詢是學習位置編碼,引導解碼器與圖像特征圖和空間位置編碼的總和進行互動。僅使用圖像要素圖将導緻顯著下降。但是,我們的提案特征可以看作是一個特征過濾器,與位置無關。表10顯示了比較結果,如果去掉空間位置編碼,DETR下降了7.8個百分點。相反,位置編碼在稀疏編碼中沒有增益。

Sparse R-CNN: End-to-End Object Detection With Learnable Proposals

4.3、目标框行為

5、結論

繼續閱讀