1. 程式人生 > >百度視覺團隊斬獲 ECCV Google AI 目標檢測競賽冠軍,獲獎方案全解讀 | ECCV 2018

百度視覺團隊斬獲 ECCV Google AI 目標檢測競賽冠軍,獲獎方案全解讀 | ECCV 2018

以下為百度視覺團隊技術方案解讀:

存在挑戰

與傳統的檢測資料集合相比,該賽事除了資料規模大、更真實之外,還存在一系列的挑戰。具體來說,主要集中在以下三個方面:

  • 資料分佈不均衡:最少的類別框選只有 14 個,而最多的類別框選超過了 140w,資料分佈嚴重不均衡。

類別框數量分佈

  • 漏標框:很多圖片存在只標註主體類別,其他小物體或者非目標物體沒有標註出來。

漏標註圖片舉例

  • 尺度變化大:大部分物體框只佔整個圖片的 0.1 以下,而有些框選卻佔了整個圖片區域。如圖所示,Open Image V4 集合存在更多的小物體,參賽者也會在檢測資料中遇到更大的挑戰。

框尺度大小分佈對比

解決方案

在比賽過程中,百度視覺團隊採用了不同複雜度、不同框架網路進行模型的訓練,並對這些模型進行融合。從整體方案框架來看,可分為 Fast R-CNN 和 Faster R-CNN 兩種不同的訓練模式。Fast R-CNN 版本是百度視覺團隊研發的一套 PaddlePaddle 版本,在此基礎上 Faster R-CNN 加入了 FPN、Deformable、Cascade 等最新的檢測演算法,模型效能實現了大幅度的提升。

整體方案框架流程圖

  • 網路為 ResNet-101 的 Fast R-CNN,模型收斂後可以達到 0.481,在測試階段加入 Soft NMS 以及 Multi-Scale Testing 策略,可以達到 0.508。百度也嘗試了其他網路(dpn98,Inception-v4,Se-ResNext101),並把不同網路的檢測演算法融合到一起,最終 mAP 可以達到 0.546。在 Proposal 取樣階段,百度在不同位置進行不同尺度的候選框生成,然後對這些框選進行分類以及調整他們的位置。

  • Faster R-CNN: 採用這種框架可以達到略高於 Fast R-CNN 的效果,mAP 為 0.495。在測試階段使用 Soft NMS 以及 Multi-Scale Testing 策略後,效能達到 0.525。

  • Deformable Convolutional Networks:使用 Soft NMS 以及 Multi-Scale Testing 策略前後,效能分別達到 0.528 及 0.559。

  • Deformable Cascade R-CNN : 使用 Soft NMS 以及 Multi-Scale Testing 策略前後,效能分別可以達到 0.581 和 0.590.

在 Fast R-CNN 框架下,百度視覺團隊採用了不同的網路進行訓練,而在 Faster R-CNN 框架下只使用了 ResNet101 這種網路進行訓練。在訓練過程中,百度視覺團隊還通過不同的策略有效解決了各種技術問題。詳情如下:

動態取樣

Google Open Images V4 資料集大概有 170w 圖片,1220w 框選,500 個類別資訊。最大的類別框選超過了 140w,最小的類別只有 14 個框選,如果簡單使用所有的圖片及框選,需要幾十天才能進行模型訓練,而且很難訓練出來一個無偏的模型。因此,需要在訓練過程中進行動態取樣,如果樣本數量多則減少採樣概率,而樣本數量少則增加取樣概率。百度視覺團隊分別進行全集資料訓練、固定框選子集訓練、動態取樣模型訓練三種策略進行。

  • 全集資料訓練:按照主辦方提供資料進行訓練,mAP 達到 0.50。

  • 固定框選子集訓練:線下固定對每個類別最多選擇 1000 個框,mAP 達到 0.53。

  • 動態取樣模型訓練:對每個 GPU、每個 Epoch 採用線上動態取樣,每次採集的資料都不同,輪數達到一定數目後,整個全集的資料都能參與整體訓練。最後 mAp 達到 0.56。

動態取樣策略

FPN

基於訓練資料集的分析,百度視覺團隊發現其中 500 個類別的尺度有很大的差異。因此他們將 FPN 引入到檢測模型中,即利用多尺度多層次金字塔結構構建特徵金字塔網路。在實驗中,百度視覺團隊以 ResNet101 作為骨幹網路,在不同階段的最後一層添加了自頂向下的側連線。自頂向下的過程是向上取樣進行的,水平連線是將上取樣的結果與自底向上生成的相同大小的 feature map 合併。融合後,對每個融合結果進行 3*3 卷積以消除上取樣的混疊效應。值得注意的是,FPN 應該嵌入到 RPN 網路中,以生成不同的尺度特徵並整合為 RPN 網路的輸入。最終,引入 FPN 後的 mAP 可達到 0.528。

Deformable Convolution Networks

百度視覺團隊採用可變形卷積神經網路增強了 CNNs 的建模能力。可變形卷積網路的思想是在不需要額外監督的情況下,通過對目標任務的學習,在空間取樣點上增加額外的偏移量模組。同時將可變形卷積網路應用於以 ResNet101 作為骨架網路的 Faster R-CNN 架構,並在 ResNet101 的 res5a、5b、5c 層之後應用可變形卷積層,並將 ROI Pooling 層改進為可變形位置敏感 ROI Pooling 層。可變形卷積網路的 mAP 效能為 0.552。

Cascade R-CNN

比賽中,百度視覺團隊使用級聯的 R-CNN 來訓練檢測模型。除訓練基本模型外,還使用包含五個尺度特徵金字塔網路(FPN)和 3 個尺度 anchors 的 RPN 網路。此外,他們還訓練了一個針對全類模型中表現最差的150類的小類模型,並對這 150 類的模型分別進行評估。得出的結論是,500 類模型的 mAP 為 0.477,而用 150 類單模型訓練結果替換 500 類的後 150 類的結果,模型的 mAP 提升為 0.498。使用以上方法進行訓練的單尺度模型的效能為 0.573。

Testing Tricks

在後處理階段,百度視覺團隊使用了 Soft NMS 和多尺度測試的方法。用 Soft NMS 的方法代替 NMS 後,在不同模型上有 0.5-1.3 點的改進,而 Multi-Scale Testing 在不同模型上則有 0.6-2 個點的提升。

模型融合

對於每個模型,百度視覺團隊在 NMS 後預測邊界框。來自不同模型的預測框則使用一個改進版的 NMS 進行合併,具體如下:

  • 給每個模型一個 0~1 之間的標量權重。所有的權重總和為 1;

  • 從每個模型得到邊界框的置信分數乘以它對應的權重;

  • 合併從所有模型得到的預測框並使用 NMS,除此之外百度採用不同模型的分數疊加的方式代替只保留最高分模型,在這個步驟中 IOU 閾值為 0.5。