1. 程式人生 > >Light-Head R-CNN:兩步檢測器保衛戰

Light-Head R-CNN:兩步檢測器保衛戰

兩步檢測器Light-Head R-CNN

近日,來自曠視和清華的研究者提出一種新型兩步檢測器 Light-Head R-CNN,改變兩步檢測器頭重腳輕(heavy-head)的設計,實現速度和準確率的雙重突破。

近期基於 CNN 的目標檢測器可以分為一步檢測器和兩步檢測器。一步檢測器通常聚焦於快速、高準確率地檢測最佳點(sweet-spot)。兩步檢測器將任務分為兩步:第一步(檢測器體/body)生成多個 proposal,第二步(檢測器頭/head)識別 proposal。通常情況下,為了達到最高準確率,頭的設計比較複雜。兩步檢測器檢測最佳點通常速度較慢,但是準確率很高。

兩步檢測器(two-stage detector)可以在效率和準確率方面都戰勝一步檢測器嗎?來自曠視和清華的研究者發現典型的兩步檢測器如 Faster R-CNN [5] 和 R-FCN [17] 具備相同的特徵:與主幹網路連線的檢測器頭比較重(heavy head)。例如,Faster R-CNN 在 ResNet 第 5 階段中部署兩個大型全連線層或所有卷積層用於每個 RoI(感興趣區域)識別和迴歸。每個區域的預測都很耗時,當使用大量 proposal 時,需要的時間就更多。此外,RoI pooling 之後的特徵通道很多,使得第一個全連線層消耗大量記憶體,影響計算速度。與多次應用每個區域子網路的 Fast/Faster R-CNN 不同,基於區域的全卷積網路(R-FCN)[17] 嘗試在所有 RoI 中共享計算。但是,R-FCN 需要使用 #classes × p × p(p 是隨後的池化規模)通道生成非常大的額外得分圖(score map),這同樣需要大量記憶體和時間。Faster R-CNN 或 R-FCN 的重頭設計使得在使用小的主幹網路時兩步檢測器的競爭力較弱。

這篇論文提出一種輕量級檢測器頭設計以構建一個高效、準確率高的兩步檢測器。具體來說,使用一個大核心可分卷積和少量通道(實驗中使用的是α × p × p,且α ≤ 10)生成稀疏的特徵圖。該設計的計算量使隨後的 RoI 子網路計算量大幅降低,檢測系統所需記憶體減少。將一個廉價的全連線層附加到池化層上,充分利用分類和迴歸的特徵表示。

因其輕量級頭部結構,該檢測器能夠實現速度和準確率之間的最優權衡,不管使用的是大主幹網路還是小主幹網路。如圖 1 所示,該論文中的演算法(Light-Head R-CNN)顯著優於快速的一步檢測器,如 SSD [22] 和 YOLOv2 [27]。此外,該演算法還很靈活,適用於大型主幹網路。基於 ResNet-101 主幹網路,該演算法優於頂尖的演算法,包括兩步檢測器如 Mask R-CNN [7] 和一步檢測器如 RetinaNet [20]。

圖 1. Light Head R-CNN 與之前的一步、兩步檢測器的對比。研究者展示了在不同主幹網路上的結果。由於設計理念更好,Light Head R-CNN 顯著優於其他檢測器,且能夠提供一個新的上包絡線。注意:這裡使用的所有結果都是使用單尺度訓練獲取的。多尺度訓練結果見表 5。

圖 2. 方法概覽。Light-Head R-CNN 在 RoI warping 之前使用大型可分卷積構建稀疏的特徵圖。研究者在 R-CNN 子網路中使用帶有 2048 個通道的單個全連線層。由於更稀疏的特徵圖和廉價的 R-CNN 子網路,整個網路高效且達到很好的準確率。

圖 3. 大型可分卷積按順序執行 k × 1 和 1 × k 卷積層。計算複雜度可以通過 C_mid 和 C_out 進一步進行控制。

圖 4. 該網路用於評估稀疏特徵圖的影響。研究者使該網路和 R-FCN 一樣,除了降低用於 PSRoI pooling 的特徵圖通道。研究者新增額外的全連線層用於最終的預測。

表 4. Light-Head R-CNN 的效果。R-FCN 和 Fast R-CNN 的基線基於設定 L(3.2)。

表 5. 不同大小的單個模型在 COCO test-dev 上的對比。所有實驗都使用 Resnet-101 作為基礎特徵提取器(除了 R-RMI 使用的是 Inception Resnet V2 [33])。Light-Head R-CNN 達到了最好的準確率,且超過之間的最優準確率。注意: test-dev 的結果與 mini-validation 上的結果有些微不同。「ms-train」代表多尺度訓練。

表 7. 高效 Xception,類似 Light-Head R-CNN 檢測器的架構。Comp* 指網路的複雜度(浮點)。

表 8. Light-Head R-CNN 檢測器與其他檢測器在 COCO test- dev 上的結果對比。Xception* 指小的 xception 如主幹網路。通過新增一個小的基礎模型,Light R-CNN 在準確率和速度上都達到了更好的表現,這表明該設計的靈活性。

論文:Light-Head R-CNN: In Defense of Two-Stage Object Detector

論文地址:https://arxiv.org/pdf/1711.07264.pdf

在這篇論文中,我們首先研究了經典的兩步方法慢於一步檢測器(如 YOLO 和 SSD)的原因。我們發現 Faster R-CNN 和 R-FCN 會在 RoI warping 之前或之後進行高強度的計算。Faster R-CNN 包含兩個全連線層用於 RoI 識別,而 R-FCN 會生成一個大型得分圖。因此,這些網路的速度會被架構的 heavy-head(頭重腳輕的)設計拖慢速度。即使大量簡化了基礎模型,計算成本也沒有隨之顯著降低。

我們提出了一種新的兩步檢測器 Light-Head R-CNN,用於克服當前兩步方法的缺陷。在我們的設計中,通過使用一個稀疏的特徵圖和一個廉價的 R-CNN 子網路(池化和單全連線層),我們把網路的頭部儘可能輕量化。我們基於 ResNet-101 的 Light-Head R-CNN 在 COCO 資料集上的效能超過當前最佳的目標檢測器,同時保證時間效率。更重要的是,通過簡單地用一個小型網路(如 Xception)替換主幹網路,Light-Head R-CNN 在 COCO 資料集上獲得了 30.7 mmAP 和 102 FPS 的結果,在速度和準確率上顯著優於快速的一步檢測器(如 YOLO 和 SSD)。模型程式碼稍後公佈。