當前位置:
首頁 > 最新 > 作為一個目標檢測演算法也是要研究balance的!

作為一個目標檢測演算法也是要研究balance的!

作者:Google Research 眾大佬們

本文講解目標檢測演算法的balance!

speed

memory

accuracy

亂世巨星

 97古惑仔戰無不勝

陳小春 

00:00/03:19

Speed/accuracy trade-offs for modern convolutional object detectors

摘要

本文的目標是用於指導選擇一個目標檢測架構,為給定的應用程序和平台實現取得的速度/內存/精度一個恰當的平衡。為此,我們研究了在現代卷積物體檢測系統中,用速度和內存換取精確度的各種方法。近年來有許多成功的系統,但是由於不同的基本特徵提取器(例如,VGG,殘差網路),不同的默認圖像解析度以及不同的硬體和軟體平台,逐一對比這些系統將非常困難。我們提出了一種Faster R-CNN,R-FCN和SSD 的結合實現,我們將其視為「元架構」,然後通過使用各種特徵提取器,在每個「元架構」改變其它的關鍵參數,例如圖像大小,從而描繪了速度/精確度的權衡曲線。當速度和內存要求特別高的情況下,我們提供了一個檢測器可達到實時速度並且可以部署到移動設備上。在準確性特別重要的情況下,我們提供了一種在COCO物體檢測中達到超高水平的檢測器。

1. Introduction

目前,由於卷積神經網路的不斷發展,目標檢測演算法在不斷的發展,例如Faster R-CNN,R-FCN,Multibox,SSD,YOLO等。對於從業者來說,選擇主流object detector中的哪一款作為工具是一項比較難的任務,mAP等數據並不能夠完全作為選用標準,還要受制於程序運行時間和內存大小。

只有少部分論文,像R-FCN,SSD,YOLO等,細緻地討論了目標檢測的運行時間,但是它們也並未給出速度和精確度之間是如何進行權衡的,而權衡往往需要依賴其他因素,如使用特徵提取器的類型和輸入圖片尺寸等。

本文試圖以一種詳盡而公平的方式探索現代目標檢測系統的speed/accuracy trade-off。

我們主要研究singlemodel/single-pass檢測器,指的是不使用集成, 裁剪方法或其他「技巧」,我們只關注測試的時間,而不是這些模型需要訓練多長時間。

雖然比較每個最近提出的檢測系統是不切實際的,但我們創建了Faster R-CNN,R-FCN和SSD元架構的實現,這些架構在高層由單個卷積網路組成,由混合回歸和分類目標進行訓練,並使用滑動窗口預測。

contributions如下:

a)對於目前主流的卷積探測系統,文中提供了精鍊的調查結果,闡述了主流目標檢測設計中的相似性。

b)利用TensorFlow對三種meta-architecture構建了一種靈活統一的應用,其上可以對不同的檢測系統進行大量實驗,從而跟蹤它們的精確度和速度之間的關係。

c)實驗得出,在Faster R-CNN中,使用更少的proposals能夠使系統的速度有顯著提升,而且不會造成精確度上較多的損失,從而使得其與SSD、R-FCN等相比後更具競爭力。相比於Faster R-CNN和R-FCN,SSD對於特徵提取器的質量更為不敏感。

d)文中提出的一些meta-architecture與feature-extractor的組合在以前的paper中從未出現過,其中一些還新穎的組合幫助訓練出了2016 COCO object detection challenge的制勝法寶。

2. Meta-architectures

目標檢測發展階段,重點說明了anchors methodology,因為錨點的選擇對精度和計算都有重大影響。

2.1. Meta-architectures

在我們的論文中,我們主要關注三種最近的(元)體系結構:SSD(Single Shot Multibox Detector),Faster R-CNN 和R-FCN(基於區域的全卷積網路)。 雖然這些論文最初是由特定的特徵提取器(例如VGG,Resnet等)提供的,但我們現在回顧這三種方法,將元架構與特徵提取器的選擇分離開來,從概念上講,任何特徵提取器都可以與SSD,Faster R-CNN或R-FCN一起使用 。

2.1.1 Single Shot Detector (SSD).

文中將SSD定義為使用單個前饋神經網路來直接預測類別和錨點偏移,並不要求stage per-proposal分類操作。如圖Figure1(a)。Multibox和RPN都使用了這一方法來預測類不可知(class-agnostic)的proposals。

2.1.2 Faster R-CNN.

目標檢測分兩步走。

第一步產生region proposals,叫做region proposal network (RPN),中間層的一些特徵(例如VGG16中的conv5)被用於預測box proposals。

第二步利用這些box proposals在同一層來裁剪特徵並將它們送入特徵提取器的剩下幾層(例如fc6和fc7)來獲得所屬類別並修正proposals。第二階段分類器的損失函數採用等式1的形式,使用從RPN產生的提議作為錨。值得注意的是,不會直接從圖像裁剪建議,並通過特徵提取器重新運行,而是重複計算。然而,部分計算必須在每個區域運行一次,因此運行時間取決於RPN提出的區域數量。

2.1.3 R-FCN

與Faster R-CNN不同的是,R-FCN(基於區域的全卷積網路)是在產生預測region proposals的那一層的前面一層對特徵進行裁剪而非與預測同一層。這樣做的好處在於每個區域所需的計算總量實現最小化。

具體的過程描述見下面三張圖:

3. Experimental setup

以往的工作中使用的框架、優化導向(有些是為了優化精確度,有些則是速度)和準則各不相同,所以很難對這幾種方法進行 apples-to-apples 的比較。因此文中用了TensorFlow並重新設計了三種結構的流程。

3.1. Architectural configuration

3.1.1 Feature extractors.

在所有元架構中,我們首先將卷積feature extractor應用於輸入圖像以獲得高級特徵。 特徵提取器的選擇至關重要,因為參數的數量和層的類型直接影響到檢測器的內存,速度和性能。 在本文中我們選擇了六個有代表性的特徵提取器進行比較,除MobileNet之外,它們都具有開源的Tensorflow實現,並且對視覺社區領域具有相當大的影響力。

VGG-16

Resnet-101

Inception v2

Inception v3

Inception Resnet (v2)

MobileNet

對於每個特徵提取器,為了在元架構中使用它們,可以進行選擇。 對於Faster R-CNN和R-FCN,必須選擇用於預測區域提案的層。 在我們的實驗中,我們儘可能使用原始論文中列出的選項。在SSD設置中,與原來不同的是,我們在所有附加層中使用批量標準化。

3.1.2 Number of proposals.

對於Faster R-CNN和R-FCN,我們還可以選擇在測試時間發送給框分類器的區域提議數量。 通常情況下,這兩個設置的數字都是300,但是節省計算的一個簡單方法是發送更少的boxes,這樣可能會降低召回的風險。 在我們的實驗中,我們將這些提議數量在10到300之間變化,以便探索這種折衷。

3.1.3 Output stride settings for Resnet and Inception Resnet.

我們對Resnet-101的執行情況稍作修改,使其有效輸出stride為16而不是32; 我們通過修改conv5_1層來實現這一點,使其stride為1而不是2(並且通過在更深的層中使用非均勻卷積來補償縮小的步幅)。 對於Faster R-CNN和R-FCN,除了默認步幅16以外,我們還試驗了一個(更昂貴的)步幅8的Resnet-101,其中conv4_1塊被額外修改為步幅1.同樣,我們 試驗步驟16和步驟8的Inception Resnet網路版本。 我們發現使用步幅8而不是16可將mAP提高5%1,但運行時間增加了63%。

3.2. Loss function configuration

除了選擇特徵提取器之外,還有配置可能影響訓練穩定性和最終性能的損失函數(等式1)的選擇。 這裡我們描述我們在實驗中做出的選擇,表1再次比較了其他作品中配置的相似損失函數的情況。

3.2.1 Matching.

確定每個錨點的分類和回歸目標需要匹配錨點到groundtruth實例。 常用的方法包括貪婪的二分配匹配(例如,基於Jaccard重疊)或多對一的匹配策略,其中不需要雙方的配對,但如果錨與地面實體之間的Jaccard重疊過低,則匹配被丟棄。 我們分別將這些策略分別稱為二分或Argmax。在我們的實驗中,我們使用整個Argmax匹配,並在每個元架構的原始文件中建議設置閾值。 匹配後,通常會有一個採樣程序,旨在使正錨和負錨的數量達到某個所需的比例。 在我們的實驗中,我們也將這些比率修正為本文為每個元架構推薦的比例。

3.2.2 Box encoding.

注意,即使沒有明確提及,標量乘數10和5通常用在所有這些先前的作品中。

3.2.3 Location loss (『loc).

我們在所有實驗中都使用Smooth L1(或Huber)損失函數。

3.3. Input size configuration.

在Faster R-CNN和R-FCN中,模型在較短邊上對縮放到M個像素的圖像進行訓練,而在SSD中,圖像總是縮放到M×M的固定形狀。我們探索評估縮小圖像上的每個模型, 交換速度的準確性。 特別是,我們已經訓練了每個模型的高解析度和低解析度版本。 在「高解析度」設置中,我們設置M = 600,在「低解析度」設置中,我們設置M = 300。在這兩種情況下,這意味著SSD方法平均處理的像素數少於快速R -CNN或R-FCN模型,所有其他變數保持不變。

3.4. Training and hyperparameter tuning

我們在分散式集群上使用非同步梯度更新端到端地聯合訓練所有模型。對於Faster RCNN和R-FCN,我們使用SGD,批量為1(由於這些模型使用不同的圖像大小進行訓練),對於SSD,我們使用RMSProp,批量為32(在少數例外我們為了記憶的原因減少了批量大小)。最後,我們手動調整每個特徵提取器的學習速率調度。我們已經重現或超過了報道的mAP結果。

請注意,對於Faster R-CNN和R-FCN,這種端到端方法與通常使用的4階段訓練過程略有不同。此外,我們使用Tensorflow的「裁剪和調整大小」操作,而不是使用ROI池層和位置敏感ROI池圖層,該操作使用雙線性插值將圖像的一部分重新採樣到固定大小的網格上。然而,我們禁止在邊界框坐標方面的反向傳播,因為我們發現這在訓練期間是不穩定的。

我們的網路在COCO數據集上進行訓練,使用所有訓練圖像以及驗證圖像的子集,並提供8000個樣本進行驗證。最後,在測試時間,我們使用0.6的IOU閾值對非最大抑制進行後處理 並將所有框剪切到圖像窗口。 為了評估我們的最終檢測結果,我們使用了官方的COCO API,除了其他指標外,它還衡量了在IOU閾值[0.5:0.05:0.95]內平均的mAP。

3.5. Benchmarking procedure

要使用我們的模型,我們使用32GB內存的機器,Intel Xeon E5-1650 v2處理器和Nvidia GeForce GTX Titan X GPU卡。計時器在GPU上報告的批量為1。用於定時的圖像被調整大小,使得最小尺寸至少為k,然後裁剪為k×k,其中基於模型k為300或600。我們平均超過500張圖片的時間。

我們在我們的計時中包含後處理(其中包括非最大抑制,目前僅在CPU上運行)。後期處理可佔用最快模型的大部分運行時間,時間約為40毫秒,目前我們將最大幀速限制為每秒25幀。除此之外,這意味著雖然我們的計時結果可以相互比較,但它們可能不會與文獻中其他報告的速度直接比較。其他潛在的差異包括硬體,軟體驅動程序,框架(本例中為Tensorflow)和批量規模。最後,我們使用tfprof 來測量推理過程中模型的總內存需求;這提供了更多平台獨立的內存需求量度。我們還對三幅圖像的記憶測量進行平均。

3.6. Model Details

太多了,不看了。

4. Results

4.1. Analyses

4.1.1 Accuracy vs time

總的來說R-FCN和SSD模型速度較快,Faster R-CNN速度相對較慢但是精確度較高。但是如果我們限制region proposal的個數,Faster R-CNN也可以達到相同速度。圖中也畫出了一條虛線,即optimality frontier,意味著如果要到達這條虛線上的點的精確度那麼就必須犧牲速度。

4.1.2 Critical points on the optimality frontier.

最優化邊界上的關鍵點

4.1.3 The effect of the feature extractor.

在分類和檢測這兩個方面的確有很大的聯繫,但僅限於FasterR-CNN和R-FCN。

4.1.4 The effect of object size.

不出意外所有的方法在較大的物體上效果更好。

4.1.5 The effect of image size.

圖片的解析度對檢測的精確度有影響,本實驗中降低兩個百分點解析度會持續導致精確度的下降,但同時也減少了使用時間。

4.1.6 The effect of the number of proposals.

4.1.7 FLOPs analysis.

4.1.8 Memory analysis.

4.1.9 Good localization at .75 IOU means good localization at all IOU thresholds.

總結

我們已經對影響現代物體檢測器的速度和準確度的一些主要方面進行了實驗性比較。 我們希望這將有助於從業者在現實世界中部署目標檢測時選擇合適的方法。 我們還發現了一些新技術,可以在不犧牲精確度的情況下提高速度,比如使用比Faster R-CNN更少的proposals。

最後一張五張方法的對比圖。

親愛的小夥伴

可否給這位無名渣渣作者

點上個小贊

寫上兩句評語

支持一下下

祝你生日快樂

能夠轉發就更棒棒了!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 paper大講堂 的精彩文章:

自然場景中物體識別演算法研究
基於級聯卷積網路的自然場景下的車牌檢測-論文筆記

TAG:paper大講堂 |