1. 程式人生 > >R-FCN每秒30幀實時檢測3000類物體,馬里蘭大學Larry Davis組最新目標檢測工作

R-FCN每秒30幀實時檢測3000類物體,馬里蘭大學Larry Davis組最新目標檢測工作

【導讀】美國馬里蘭大學、復旦大學和Gobasco人工智慧實驗室聯合提出R-FCN-3000實時3000類目標檢測框架,對R-FCN框架中的物體檢測和分類進行解耦。本文對R-FCN體系結構進行修改,其中位置敏感濾波器在不同的目標類之間共享來進行定位。對於細粒度的分類,這些位置敏感的濾波器是不需要的。因此,R-FCN-3000學習到了通用的物體性,也達到了更快的速度。R-FCN-3000在ImageNet檢測資料集上獲得34.9%的mAP,在每秒處理30幀影象的同時,可以以18%的優勢超過YOLO-9000。作者相信,未來R-FCN-3000可以適用於更為廣闊的目標檢測場景(如十萬類目標檢測),並可以更好的整合目標類別先驗。程式碼將會公開。

▌作者

  • Bharat Singh 馬里蘭大學計算機系博士生,主要研究方向為目標及動作識別

    http://www.cs.umd.edu/~bharat/

  • Hengduo Li 復旦大學在讀本科生

    https://www.linkedin.com/in/hengduo-li-50588032/

  • Abhishek Sharma 印度德里農業供應鏈科技初創公司Gobasco聯合創始人

    https://www.linkedin.com/in/abhishek-sharma-a1204921/

  • Larry S. Davis 馬里蘭大學教授

    http://www.umiacs.umd.edu/~lsd/

論文:R-FCN-3000 at 30fps: Decoupling Detection and Classification

摘要

我們提出了R-FCN-3000,一個大規模的實時目標檢測器,其中的目標檢測和分類是解耦的。為了獲得RoI的檢測分數,我們將物體性分數(objectnessscore)乘以細粒度的類別分數。我們的方法是對R-FCN體系結構進行修改,其中位置敏感濾波器在不同的目標類之間共享來進行定位。對於細粒度的分類,這些位置敏感的濾波器是不需要的。R-FCN-3000ImageNet檢測資料集上獲得34.9%的mAP,在每秒處理30幀影象的同時,超過YOLO-9000 18%。我們還表明,R-FCN-3000學習的物體性可以被推廣到新的類中,並且效能隨著訓練目標類的數量增加而增加。這個結論證明了我們可以學習通用目標檢測器。本文將隨後提供程式碼。


詳細內容

隨著深度CNNs的出現,目標檢測在基準資料集上的效能取得了重大飛躍。這歸功於CNN結構的強大的學習能力。在過去的五年中,PASCALCOCO mAP得分分別從33%提高到88%和從37%提高到73%(在重疊率50%的評價標準上)。雖然在有數十個類別的基準資料庫上有了很大的改進,但是對於需要實時檢測數千個類別的現實生活中的目標檢測進展甚微。最近的一些努力已經構建了了大規模的檢測系統,但是以犧牲準確度為代價。

這篇文章提出了一個新穎的解決方案,能夠在比YOLO-9000提高18%的精度來完成大規模目標檢測問題,每秒可以處理30幀影象,同時檢測3000個類別,被稱為R-FCN-3000

R-FCN-3000是對最近的一些目標檢測體系結構[文章中文獻6,5,23,25,29]進行修改以實現實時大規模目標檢測的任務。最近提出的全卷積(fullyconvolutional)分類檢測器計算給定影象中目標的每類分數。其在有限的計算預算中顯示出驚人的準確性。雖然全卷積方式為諸如目標檢測[6],例項分割[22],跟蹤[10],關係檢測[41]等任務提供了一個有效的解決方案,但他們需要為每個類設定類特定的過濾器,以禁止他們應用於其他的類。例如,R-FCN [5] / Deformable-R-FCN [6]要求每個類別有49/197個位置特定的濾波器。Retina-Net [23]對於每個卷積特徵對映,每個類需要9個濾波器。

因此,這樣的結構將需要數十萬個用於檢測3000個類的過濾器,這將使得它們在實際應用中速度非常慢。

這篇文章提出的R-FCN-3000結構背後的重要啟發是解耦物體性檢測和對被檢測物體的分類,使得即使隨著類別數量的增加,對於定位的計算需求保持不變-參見圖1。這篇文章利用這樣的事實,即許多目標類別在視覺上相似並共享部件。例如,不同品種的狗都有共同的身體部位;因此,學習一套不同的濾波器來檢測每個種類是矯枉過正的。因此,R-FCN-3000為固定數量的超類執行目標檢測(使用位置敏感濾波器),然後在每個超類內進行細粒度分類(不使用位置敏感濾波器)。

通過對影象的深層語義特徵進行聚類(在這種情況下是ResNet-1012048維特徵)獲得超類。因此,這篇文章不需要語義層次的結構。通過將超類概率與超類內的細粒度類別的分類概率相乘,獲得給定位置處的細粒度類別的概率。

為了研究使用超類而不是單個目標類別的效果,這篇文章將超類的數量從1改變到100,並評估ImageNet檢測資料集的效能。令人驚訝的是,即使有一個超類,檢測器也表現的很好!這一結果表明,位置敏感濾波器可以學習檢測通用的物體性。它也重新驗證了過去很好的研究概念[1239]:目標是一個通用的概念,可以學習一個通用的目標檢測器。因此,為了執行目標檢測,將RoI的物體性分數乘以給定類別的分類概率就足夠了。

該結果可用於數千個類別的快速檢測器,因為不再需要每個類別的位置敏感濾波器。在PASCAL-VOC資料集中,只用本文提出的基於物體性的檢測器,作者觀察到,與可變形的R-FCN [6]檢測器相比,所有20個目標類別的類別特定濾波器(class-specific filters)的mAP下降了1.5%。R-FCN-3000訓練了3000個類,與ImageNet資料集上當前最先進的大型目標檢測器(YOLO-9000)相比,獲得了18%的mAP提升。

最後,這篇文章在看不見的類(zero-shot 設定)上評估提出的目標檢測器的普適性,並觀察到當在更大數量的類上訓練物體檢測器時,泛化誤差減小。

模型簡介

(1)框架

如圖2所示,R-FCN-3000使用RPN產生proposals。對於每個超類kP*P個位置敏感的濾波器。在進行位置敏感的RoIpooling和對預測進行平均之後,本文可以得到網路對於分類和定位的得分。

為了得到超類概率,網路在K個超類上進行softmax。為了得到細粒度的類別概率,作者增加了兩個卷積層,再使用softmax

R-FCN-3000首先生成region proposals,這些region proposals作為輸入提供給超類檢測分支(如R-FCN),其,整體的預測每個超類(sc)的檢測分數。另外,本文使用類無關的邊界框迴歸步驟來改進每個RoI的位置(這個步驟在圖中沒有顯示)。為了獲得語義類別,本文不使用位置敏感濾波器,而是以全卷積的方式預測每個類的分數。最後,作者將RoI中的每個類別分數進行averagepooling,得到分類概率。分類概率乘以超類檢測概率來檢測3000個類別。當K是1時,超級檢測器來預測物體性。

(2)目標函式

為了訓練檢測器,作者使用線上難樣本挖掘(OHEM),並使用smooth L1 loss來進行檢測框定位。

對於細粒度的分類,作者只在C個目標類中使用softmax loss來進行正樣本分類。由於相比於proposal的數量,positive ROI的數量非常少,因此作者對這個分支的loss進行了一個因子為0.05的加權,以保證這些梯度不會制約整個網路訓練。這種設定是重要的,因為這篇文章中的訓練中使用了多工損失。

結論

這篇文章證明,通過僅使用一組濾波器來進行目標與背景檢測,可以預測通用的物體性得分。這種物體性分數可以簡單地與檢測物件的分類分數相乘,在效能上只有一個較小的下降。最後,作者表明,可將學習到的物體性泛化至未出現的類,並且效能隨著訓練目標類的數量而增加。它支援物體性具有普遍性的假設。

本文提出了大規模目標檢測的重大改進方法,但許多問題仍然沒有得到解決。一些有前景的研究問題是:

  1. 如何加快R-FCN-3000檢測100,000個類別的分類過程?

  2. 一個典型的影象包含有限數量的目標類別-如何使用這個先驗知識來加速推斷?

  3. 如果還需要檢測物件及其部件,那麼在這個架構中需要做什麼改變?

  4. 由於在每個影象中使用有效的類來標記每個物件是代價很高的,所以如果某些目標沒有在資料集中標記出來,可以學習魯棒的目標檢測器嗎?

參考文獻

https://arxiv.org/abs/1712.01802