「取長補短」的RefineDet物體檢測演算法

深度学习大讲堂發表於2019-07-31

編者按:基於深度學習的物體檢測演算法可大致分為“一階段”和“兩階段”兩類。一般而言,以Faster RCNN為代表的兩階段檢測器在準確度上有優勢;而以SSD為代表的單階段檢測器在速度上有優勢。正所謂“他山之石,可以攻玉”,本文作者提出了融合一二步法思想的RefineDet物體檢測演算法,在保持一步法速度的前提下,獲得了二步法的精度。

1.引言

物體檢測是視覺感知的第一步,也是計算機視覺的一個重要分支。物體檢測的目標是用框去標出物體的位置,並給出物體的類別。目前,基於深度學習的物體檢測演算法大致分為兩類:一步法檢測器和二步法檢測器。

一步法檢測器在原圖上鋪設一系列錨點框,利用一個全卷積網路,對這些錨點框進行一次分類和一次迴歸,得到檢測結果。而二步法檢測器在原圖上鋪設一系列錨點框,先利用一個全卷積網路對這些錨點框進行第一次分類和第一次迴歸,得到候選區域,摳出每一個候選區域的特徵後,再利用一個網路對候選區域進行第二次分類和第二次迴歸,得到最終的檢測結果。

相對於一步法檢測器,二步法檢測器多了額外的第二步,若在相同的條件下,如輸入、錨點框、機器等,一步法一般勝在高效率,而二步法有更高的精度,現在各個檢測庫上排名靠前的演算法,基本都是二步法。代表性的二步法檢測器有Faster R-CNN[1]、R-FCN[2]、FPN[3]、Cascade R-CNN[4],其中Faster R-CNN是奠基性工作,基本所有的二步法檢測演算法,都是在它的基礎上改進的。一步法檢測器則有YOLO[5]、SSD[6]、RetinaNet[7]、CornerNet[8],其中SSD是一步法檢測器的集大成者,後續大部分的一步法工作都是基於它的。「取長補短」的RefineDet物體檢測演算法圖1 一步法和二步法檢測流程的對比二步法相對於一步法,多了後面的進一步分類和迴歸,這一步一般比較耗時但能顯著提升精度,原因是它讓二步法相對於一步法有了以下三個優勢:

二階段的分類:二步法中的第一步分類時,正負樣本是極不平衡的,導致分類器訓練困難,這也是一步法效果不如二步法的原因之一。而第二步分類時,第一步會幫第二步濾掉很多簡單負樣本,使得第二步分類中時正負樣本比例比較平衡,即二步法可以很大程度地緩和正負樣本極不平衡的問題。
二階段的迴歸:二步法中的第一步對錨點框進行校正,然後把校正後得到的候選框送給第二步做進一步的校正。
二階段的特徵:在二步法中,第一步和第二步法除了共享的特徵外,都有自己獨有的特徵,專注於自身不同難度的任務,如第一步的特徵專注於二分類和初步迴歸,第二步的特徵處理多分類和精確迴歸。

為了能讓一步法也具備二步法的這些優勢以提升檢測精度,同時能夠保持原有的檢測速度,作者提出了RefineDet這一通用物體檢測演算法。能夠讓一步法具備二階段特徵、二階段分類、二階段迴歸,從而在保持一步法速度前提下,獲得二步法的精度。

2.方法「取長補短」的RefineDet物體檢測演算法圖2 RefineDet演算法的網路架構示意圖上圖是RefineDet的檢測框架示意圖,由ARM(Anchor Refinement Module)和ODM(Object Detection Module) 模組組成,它倆由TCB(Transfer Connection Block)連線。ARM專注於二分類,為後續ODM濾掉大量的簡單負樣本,同時進行初級的邊框校正,為後續ODM提供更好的迴歸起點。ODM把ARM最佳化過的錨點框作為輸入,專注於多分類和精準的邊框校正。其中ODM沒有使用耗時的逐區域操作,而是直接透過TCB轉換ARM特徵、融合高層特徵,以得到感受野豐富、細節充足、內容抽象的特徵,用於進一步的分類和迴歸,使得一步法檢測器RefineDet具備了二步法的二階段分類、二階段迴歸、二階段特徵這3個優勢。

3.實驗
「取長補短」的RefineDet物體檢測演算法表1 檢測精度 vs. 檢測速度
表1總結了著名檢測演算法的速度以及精度。RefineDet在保持一步法速度的同時,能夠達到甚至超過二步法的精度。跟SSD相比,RefineDet演算法框架多了下面一部分卷積層和反摺積層,速度還比SSD快一些原因是:

使用較少的anchor,如512尺度下,RefineDet共有1.6W個框,而SSD有2.5W個框。RefineDet使用較少anchor也能達到高精度的原因是二階段迴歸,雖然總共預設了4個尺度(32,64,128,256)和3個比例(0.5,1,2),但是經過第一階段的迴歸後,預設的anchor被極大豐富,因此用於第二階段迴歸的anchor,具備豐富的尺度和比例。
使用較少的檢測層:RefineDet在基礎網路上新加了很少的卷積層,並只選了4個卷積層作為檢測層。
「取長補短」的RefineDet物體檢測演算法表2 RefineDet在各個資料庫上的檢測精度

表2是RefineDet演算法在VOC2007,VOC2012,COCO上詳細的結果。由於視訊記憶體的限制,只訓了輸入為320和512的兩個模型。從這些結果中,有以下幾點結論:

輸入尺度與精度高度正相關:訓練和測試的輸入越大,小物體越少,精度就會越高。
BN的問題:視訊記憶體的限制會導致每張GPU顯示卡上圖片數量不足,使得BN資訊統計不穩定,從而影響檢測精度,可以使用同步BN或GN來解決,以訓更大尺度的模型。
多尺度測試很重要:由於RefineDet最大輸入只有512x512,而二步法檢測器有著較大的輸入如1000x600或800x800。為了公平比較而使用了多尺度測試方法,以降低尺度不同的影響。

4.擴充套件

提出RefineDet演算法後,作者在更加貼近實際應用的人臉檢測任務上對其進行了擴充套件驗證。目前人臉檢測領域難度最大資料集是WIDER FACE,它總共有32203張影像,393703個人臉標註,包含尺度,姿態,遮擋,表情,化妝,光照等難點。WIDER FACE每張影像的人臉資料偏多,平均每張圖12.2人臉,密集小人臉非常多,同時根據EdgeBox的檢測率情況劃分為三個難度等級:Easy, Medium, Hard。
「取長補短」的RefineDet物體檢測演算法圖3 人臉檢測演算法SRNRefineDet在處理人臉檢測這一特殊任務時,並不是在所有的檢測層上做二階段分類和二階段迴歸都有提升。二階段分類用於較淺的3個檢測層上有效果,原因是98.5%的錨點框關聯於較淺的3個層,這些層存在正負樣本不平衡的問題,二階段分類得以發揮作用。此外,二階段迴歸用於較深的3個檢測層上有效果,原因是強行讓較淺層利用二階段迴歸去得到更準的小人臉位置,會影響更重要的分類任務,而較深的3個層則不存在這種問題,適合做二階段迴歸來提升大中尺度的人臉位置。


「取長補短」的RefineDet物體檢測演算法圖4 人臉檢測演算法ISRN
此外,目前的檢測器都需要載入預訓練模型,這大大限制了網路的靈活性,使得不能夠對網路進行任何微小的改動。作者成功地驗證了不需要預訓練模型也能夠成功地訓出檢測器後,對網路進行了改進以提升小物體的檢測效能。常用的ResNet網路對小物體不大友好,因為它第一個卷積層就有一個下采樣操作,緊接著的第二個池化層也有一個下采樣操作,這會導致小物體的資訊基本丟失。為了解決這一問題,作者對ResNet網路進行了相應的改進,以對小物體更友好,並基於RefineDet成功地從零訓了一個人臉檢測器,在WIDER FACE資料集上達到了較高的檢測精度。

參考文獻下載連結:
https://pan.baidu.com/s/1-Y-V-y5ArfJT8_JJZLsjyA
提取碼:
mzsn

深度學習大講堂
深度學習大講堂

高質量原創內容平臺,邀請學術界、工業界一線專家撰稿,致力於推送人工智慧與深度學習最新技術、產品和活動資訊。

相關文章