SNIP算法詳解(極端尺寸目標檢測)

論文背景

論文全稱:An Analysis of Scale Invariance in Object Detection – SNIP
論文鏈接:https://arxiv.org/abs/1711.08189
論文日期:2018.5.25

算法背景

本文主要是對比了已有的目標檢測算法,結合算法的優勢,提出了本文中的SNIP算法,用於解決檢測數據集上尺寸極端變化問題。

  • 數據集背景:
    COCO數據集中待檢測物體相對圖片而言,尺寸過小,而且不同對象之間的尺寸差距較大。針對此類極端尺寸變量問題,即待檢測物體尺寸過小或者過大。一些分類與檢測算法被提出。
  • 理論基礎
    檢測器的特定尺寸與尺寸不變性設計通過訓練不同配置的輸入數據來進行比較。
    通過評估在ImageNet數據集上不同神經網絡結構分類小尺寸對象的表現,也可以得到,CNN對於尺寸變化不魯棒。

本文提出了一個基於相同尺寸的圖片金字塔的訓練與測試檢測器。

由於小尺寸與大尺寸對象很難分別在較小和較大的尺寸下識別出來,本文提出了一個新的訓練方案,圖像金字塔的尺寸歸一化(SNIP),有選擇地反向傳播不同尺寸的目標實例的梯度作爲圖像尺寸的公式。

  • 優化結果
    在COCO數據集上,單一模型的準確性爲45.7% mAP,三個神經網絡一起的準確性爲48.3% mAP。使用現成的ImageNet-1000預訓練模型,僅僅利用邊界框監督訓練。

算法詳情

主要問題

在過去的幾年中,分類取得了很大的進展,但是檢測仍然表現不佳。因爲檢測數據集獲取標籤的代價太大。除此之外,分類數據集的目標尺寸適中,而檢測數據集的對象尺寸偏小,且對象尺寸差異江大,對檢測造成了很大影響,尤其是針對小目標的檢測是一個很大的挑戰。

檢測數據集的缺點可以被歸納爲兩個方面:

  1. 對象尺寸小:ImageNet數據集與 COCO數據集目標實例尺寸的中位數分別是0.554與0.106,=意味着 COCO數據集大多數的對象面積都小於整張圖片的1%。
  2. 對象尺寸差異大前10%的最小對象尺寸與前10%的最大對象尺寸差異巨大, 分別是0.024與0.472。幾乎是20倍。
    在這裏插入圖片描述
    這種尺寸異樣對於神經網絡的尺寸不變性性能是個極端挑戰。
    由於預訓練是在分類數據集上進行的,分類與檢測數據集的對象實例尺寸不同也導致了利用分類數據集預訓練的神經網絡進行微調時會有很大的域平移(domain-shift)。

已有解決方案

爲了緩解待檢測目標尺寸變化以及尺寸偏小的問題,有許多方法被提出:

  • 將淺層的特徵與深層的特徵相結合,用於檢測小目標實例。
  • 拓展 / 變形的卷積被用來增加檢測對象的感受野,用於檢測大尺寸實例。
  • 在不同分辨率網絡層上進行的獨立預測,用於檢測不同尺寸的對象實例。
  • 利用上下文信息來進行消歧。
  • 在一個大範圍的尺寸內進行訓練。
  • 在一個多尺寸的圖片金字塔上進行推斷,並且結合非極大值抑值進行預測。

研究現狀

問題:
CNNs的更深層有很大的步長(32 pixels)會導致對於輸入圖片有個非常粗糙的表示,從而小目標的檢測非常困難。

傳統解決方案:

  • 增加特徵映射的分辨率:
  1. 許多目標檢測器使用擴張/萎縮的卷積神經網絡來增加特徵映射的分辨率。拓展/變形的卷積神經網絡也保留了預訓練神經網絡的權重與感受野,並且對於大目標的檢測性能也沒有下降。
  2. 在訓練時對圖片進行1.5到2倍的上採樣在推斷時對圖片進行4倍的上採樣,這也是增加最後特徵映射分辨率的一個常用方法。
  • 訓練方法:
    • 淺層的特徵映射擁有更高的分辨率,包含更完整的信息。
    • 深層特徵通常包含補充的信息,包含高級語義特徵(conv5)。
      • 獨立預測:
        例如SDP, SSH 或 MS-CNN,是在不同的分辨率的層上進行獨立預測,也確保更小的對象在更高分辨率的層上訓練(如conv3),更大的對象在更低分辨率的層上訓練(如conv5)。這種方法以犧牲高級語義特性爲代價提供更好的分辨率,這可能會使性能降低。
      • 結合預測:
        例如FPN, Mask-RCNN, RetinaNet,使用金字塔形式的表示,結合淺層與深層的特徵至少獲得了更高級的語義信息。然而如果目標的尺寸爲25 x 25 像素,並且訓練時進行2倍的上採樣,也只會得到50 x 50像素的尺寸,而經典神經網絡都是在224 x 224分辨率的圖片上預訓練的,因此特徵金字塔網絡生成的高級語義特徵對於分類小目標不會有用(可以對高分辨率圖片中的大目標進行相似的增強)。因此,將高層特徵與淺層特徵相結合對於檢測小目標無效。儘管特徵金字塔有效地利用了網絡中所有層的特徵,但它們不是檢測非常小/大對象的圖像金字塔的有吸引力的替代方案。在這裏插入圖片描述
    • 面部檢測算法:
      在每一個尺寸的對象最大化池化之後,將所有的對象的梯度都反向傳播,但是面部檢測的變量要比目標檢測少得多,因此,這個算法在應用到目標檢測中有許多限制,對於每一個類別,在R-FCN算法中都要訓練一個特定尺寸的卷積核。這會導致性能下降。
    • 使用圖片金字塔,並且使用Maxout算法在推斷時從更接近於預訓練數據集分辨率的尺度中選擇特徵。例如 SPPNet與Fast-RCNN。本文探索了訓練尺度不變目標檢測器的設計空間,並提出了對接近預訓練網絡分辨率的樣本進行選擇性反向傳播。

思考問題

  1. 上採樣對於目標檢測獲取好的表現是重要的嗎?即使檢測數據集的典型圖片尺寸是480 x 640,爲什麼通常上採樣至800 x 1200?能不能在ImageNet數據集中的低分辨率圖片使用一個小的步長預訓練神經網絡,然後接着在檢測數據集上進行微調來檢測小目標實例?
  2. 當使用一個預訓練的圖片分類模型微調一個目標檢測器時,需不需要通過對輸入圖片進行合適的rescale將訓練目標實例的分辨率限制到一個小的範圍內(從 64 x 64 到 256 x 256),或者將所有的分辨率的輸入圖片進行上採樣之後再進行訓練?

針對上述的兩個問題,文章通過在ImageNet 與COCO數據集上進行了scale variation實驗,測試了尺寸變化對於檢測的影響。
實驗顯示了上採樣對於檢測小目標實例的重要性。

分別設計了特定尺寸的檢測器與尺寸不變的檢測器進行了實驗

  • 特定尺寸檢測器:尺寸變化問題通過對每一個尺寸範圍的實例訓練一個單獨的檢測器得到解決。
    原因:在分類與檢測數據集上使用相同尺寸的實例訓練神經網絡能減小域偏移。
    缺點:特定尺寸檢測器的設計也減小每個尺寸的訓練樣本的數量,這會導致表現下降。
  • 尺寸不變的檢測器:使用所有的訓練樣本訓練單一的目標檢測器會導致學習任務變難。
    原因:因爲神經網絡需要在一個尺寸差異很大的檢測實例上學習卷積核。

SNIP算法

SNIP算法在訓練期間減小尺寸差異,尺寸差異問題是通過圖片金字塔得到解決的,而不是尺寸不變檢測器。且不需要減少訓練樣本。在金字塔的每一個尺寸上進行訓練,能有效使用所有的訓練數據

圖片金字塔原理:

  • 歸一化圖片金字塔中每一個尺寸的目標實例的輸入化表示。
  • 爲了最小化分類神經網絡在訓練期間的域平移,我們只需要反向傳播和預訓練CNN有相近的分辨率的RoIs/anchors的梯度。

實驗結果:

  • SNIP算法與傳統目標檢測訓練模式相比,準確性提高了3.5%。
  • 聯合Deformable-RFCN主幹神經網絡,在50% overlap上取得了69.7%mAP的準確率,在COCO數據集上,取得了7.4%的進步。

多尺寸圖片分類器對比實驗

  • 訓練與測試使用不同分辨率:
    在訓練與測試階段使用不同分辨率的圖片作爲輸入會導致域偏移。因爲目前的前沿算法都是使用的不同分辨率的圖片作爲輸入,通常使用800x1200像素的圖片進行訓練,使用金字塔中包含的1400x2000像素的輸出進行推斷。
    獲得不同像素的圖片,下采樣原始數據集,然後上採樣至224x224,作爲CNN的輸入,本文進行了實驗測試,使用和訓練不同的分辨率進行測試顯然不是最優的,至少對於分類而言。
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 使用不同結構分類網絡:
    在ImageNet上使用不同的步長預訓練分類神經網絡。如CNN-S,使用conv 3x3 stride 1,而對於CNN-B與CNN-B-FT,使用conv 7x7 stride 2。根據實驗,CNN-S表現明顯優於CNN-B,因此對於低分辨率圖像,採用不同結構的分類網絡進行預訓練是很有誘惑力的,並將它們用於低分辨率目標的目標檢測。

  • 微調高分辨率分類器:
    CNN-B-FT在高分辨率圖片上進行預訓練,然後使用上採樣的低分辨率圖片進行微調,結果要優於CNN-S,在高分辨率圖片上學習的卷積覈對於檢測低分辨率圖片也有效。
    同樣地,在大尺寸實例上學習的卷積覈對於小尺寸目標也有效。

總結:

  • 使用上採樣。
  • 在高分辨率圖片上預訓練的分類網絡。

Deformable-RFCN

Deformable-RFCN:

  1. 在conv5層添加了變形卷積,來改變神經網絡的感受野,從而生成不同尺寸對象的尺寸不變性表示。
  2. 另一個改變是position sensitive RoI pooling,神經網絡對於每一個位置敏感的卷積核都預測偏移。

本文使用Deformable-RFCN檢測器提取單一分辨率的候選。 Deformable-RFCN的主幹網絡選用ResNet-101,訓練分辨率爲800x1200。在RPN中選用5個錨尺寸。分類時,選用沒有Deformable Position Sensitive RoIPooling的主幹網路爲ResNet-50的Deformable-RFCN。使用帶有雙線性插值的Position Sensitive RoIPooling, 因爲它將最後一層中的卷積核數量減少了3倍。NMS的閾值爲0.3,不是端到端的訓練。使用ResNet-50以及消除deformable PSRoI filters可以減少3倍的時間並且節省GPU內存。

實例尺寸與數據對檢測器的影響實驗

訓練與測試分辨率的不同會導致性能下降。但是GPU內存限制會導致分辨率不同。訓練的分辨率會比測試的分辨率更低。
通過實驗評估兩方面的影響:

  1. 實例的尺寸
  2. 數據

在1400x2000的圖片上進行評估檢測小尺寸目標(小於32x32)。
在這裏插入圖片描述

  • 使用不同的分辨率進行訓練
    在800x1400 與1400x2000像素的圖片上進行訓練,爲實驗800all 與 1400all。訓練的圖片分辨率爲1400x2000時,效果更好,即1400all。因爲此時訓練與測試是在相同的分辨率上。
    但是提升是微乎其微的,因爲在高分辨率上檢測中大型目標,對象太大了以至於無法正確分類,因此在高分辨率上訓練,提升了小尺寸目標的檢測,卻降低了中大目標的檢測。

  • 使用特定尺寸目標進行訓練
    只使用小於80像素的目標進行訓練,消除極大尺寸目標的影響,實驗1400<80px,但是丟失了外表與姿態信息,從而導致檢測性能下降。

  • 多尺寸訓練
    評價了在訓練過程中使用多分辨率隨機採樣圖像獲取尺度不變檢測器的常見做法。實驗爲MST。它確保訓練實例在許多不同的分辨率下被觀察到,但性能也因爲非常小和大尺寸的對象的影響而降低。
    使用擁有合適尺寸實例訓練的檢測器,從而獲取物體儘量多的變量。

SNIP算法細節

結合多種算法的優勢,在限制尺寸的基礎上,使用外形變化大的目標進行訓練。
SNIP是優化MST後的版本,其中只有接近預訓練數據集的分辨率的對象實例,224x224像素。在MST中,每幅圖像以不同的分辨率被觀察到。因此,在高分辨率時,大物體很難分類,在低分辨率時,小物體很難分類。
由於每個對象實例只出現在幾個不同的尺度上,其中一些外形在所需的尺度範圍內。因此,本文只對屬於所需規模範圍的對象執行訓練,其餘的則在反向傳播過程中被忽略。
SNIP訓練所有的實例,獲取所有的外形變量,減小了預訓練的尺寸空間中的域偏移。
在這裏插入圖片描述
池化後的RoI的分辨率與預訓練神經網絡的符合,因此微調會變得更簡單。類似於R-FCN算法,將RoIs分割成部分,並且使用position sensitive filters,使用相同的分辨率就會變得非常重要。否則特徵與卷積核之間的位置關係將會丟失。
由於內存限制,會將圖片進行裁剪,裁剪的目標是生成大小爲1000x1000的子圖片的數量最少,並且覆蓋了圖片中所有的小目標。對於每幅圖像,生成大小爲1000x1000的50個隨機定位子圖片。選擇覆蓋最大對象數量的子圖片,並將其添加到我們的訓練圖像集中。直到所有對象都被覆蓋。
爲了加速採樣進程,將子圖片壓縮到圖片邊界,平均需要1.7個子圖片。
當圖片大小爲800x1200 或 480x640 或圖片中不包含小尺寸對象時,不需要進行採樣步驟。
隨機裁剪並不是準確率提升的原因。

實驗

本算法是在COCO數據集上面評估的,小尺寸對象的尺寸是小於 32x32,大尺寸對象的尺寸是大於96x96。
使用3個分辨率訓練Deformable-RFCN,(480, 800), (800, 1200) 與 (1400,2000),
分別訓練RPN與RCN,分類器訓練7個epoch,RPN訓練6個epoch。
SNIP:在訓練1個epoch的RPN後使用SNIP,在訓練3個epoch的RCN後使用SNIP。

學習率lr:0.0005訓練1000次,然後增加到0.005。 或者是在RPN訓練4.33個epoch後改變。
截止:訓練7個epoch之後,表現最佳。
有效範圍:

  • RCN:
    高分辨率:(1400,2000) -------> 有效區域:[0, 80]
    中分辨率:(800,1200) -------> 有效區域:[40, 160]
    低分辨率:(480,800) -------> 有效區域:[120, ∞]
    在連接部分,有40像素的重疊。有效範圍是在訓練階段確定的。
  • RPN:
    (800,1200) -------> 有效區域: [0,160]
    RPN的有效範圍是通過 minival set獲取的。

正樣本的選擇:
在conv4上使用 15個anchors(5 scales - 32,64, 128, 256, 512, stride = 16, 3 aspect ratios),但是符合標準的候選框太少了。
正樣本:overlap > 0.7,只有30%的真實框有符合要求的提案。
正樣本:overlap > 0.5,只有58%的真實框有符合要求的提案。
因此當閾值爲0.5時,仍有超過40%的真實框擁有的提案的overlap小於0.5。

本文對圖像進行多分辨率採樣,並在相關分辨率上反向傳播梯度。

進行了多個對比實驗,性能得到了很大提升。

  • 多尺寸的輸入對比實驗:
    在這裏插入圖片描述
  • 優化RPN後的對比實驗:
    在這裏插入圖片描述
  • 與其他算法的對比實驗:
    在這裏插入圖片描述

結論

在數據集上的實驗結果證明了尺度和圖像金字塔在目標檢測中的重要性.因爲我們不需要在高分辨率圖像中對大型的對象進行反向傳播,可以減少在圖像中很大一部分的計算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章