天天看點

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

Reading: Faster R-CNN (object detection) implemented by Keras for custom data from Google’s Open Images Dataset V4

notebook

第一遍:

abstract:

how to hypothesize object location?

region proposal algorithms

reduce running time

  • sppnet /fast r-cnn shortcoming:

    region proposal computation (實時檢測)

what the text work ?

-introduce Region Proposal Network(PRN)

what is RPN?

  • a fully convolutional network

    end-to-end(high quality),Fast R-CNN for detection + RPN

個人了解:

  • RPN全卷積網絡可同時預測圖形邊界和目标打分,端到端的訓練可以生成高品質的區域。
  • 通過分享RPN和R-CNN的convolutional feature (分享形成的區域),提供給Fast RCNN檢測。

通過RPN,每張圖檔隻需要 提供300個候選區域【對比Fast RCNN的每張圖檔2000張候選區域】

讀相關标題:

  • Index Terms—Object Detection, Region Proposal, Convolutional Neural Network.
  • RELATED WORK
    • Object Proposals
    • Deep Networks for Object Detection
  • FASTER R-CNN
    • Region Proposal Networks
      • Translation-Invariant Anchors
      • Multi-Scale Anchors as Regression References
      • Loss Function
      • Training RPNs
    • Sharing Features for RPN and Fast R-CNN
      • 4-Step Alternating Training
    • Implementation Details
  • EXPERIMENTS
    • Experiments on PASCAL VOC
      • Ablation Experiments on RPN
      • Performance of VGG-16
      • Sensitivities to Hyper-parameters.
      • Analysis of Recall-to-IoU
      • One-Stage Detection vs. Two-Stage Proposal + Detection
    • Experiments on MS COCO
      • Faster R-CNN in ILSVRC & COCO 2015 competitions
    • From MS COCO to PASCAL VOC
  • CONCLUSION

第二遍,閱讀文第二遍,閱讀文中的導言、結論以及圖表,快速掃描一下論文剩下的内容。

這一步主要是要把握論文中的關鍵資訊,不光是導言和結論,還包括文章中任何小結論的總結,文中涉及的補充資訊都跳過。中的導言、結論以及圖表,快速掃描一下論文剩下的内容。

這一步主要是要把握論文中的關鍵資訊,不光是導言和結論,還包括文章中任何小結論的總結,文中涉及的補充資訊都跳過。

問題背景:

The latest incarnation, Fast R-CNN [2], achieves near real-time rates using very deep networks [3], when ignoring the time spent on region proposals

Selective Search, SS(2s)CPU EdgeBoxes(0.2s) CPU
greedily merges superpixels based on engineered low-level features best tradeoff between proposal quality and speed
Fast R-CNN
CPU has an advantage ,if on the CPU, t re-implementation ignores the down-stream detection network and therefore misses important opportunities for sharing computation

2.方法

本文提出的理論:

this paper : using a deep convolutional network-introduce novel Region Proposal Networks (RPNs) that share convolutional layers with state-of-the-art object detection networks

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

Faster RCNN的結構如上圖所示,其可以分成兩個子產品,四個層次:

  • 兩個子產品:
    • RPN子產品:用于生成“預測區域”,同時對預測區域進行分類及粗略的邊框回歸【利用分類的分數(文中的結構圖的分類結果為兩類,即不關心類别,隻區分前景和背景,目的是将前景區域用于回歸和後續的Fast RCNN子產品中)執行非最大值抑制(文中的IoU門檻值為0.7)後,進行邊框回歸】,選擇其中分數Top300的區域輸出到後面
    • Fast RCNN子產品:用于将得到的區域分類和精确的邊框回歸【RoI池化層及之後的分類、回歸層就和Fast一樣了】;

faster rcnn目标:用更快速的方法找候選框

  • 加入一個提取邊緣的神經網絡,也就說找到候選框的工作也交給神經網絡來做了
  • 具體做法:

     • 将RPN放在最後一個卷積層的後面

     • RPN直接訓練得到候選區域

     

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

    RPN簡介:

      • 在feature map上滑動視窗

      • 建一個神經網絡用于物體分類+框位置的回歸

      • 滑動視窗的位置提供了物體的大體位置資訊

      • 框的回歸提供了框更精确的位置

    PRN INPUT:一張任意size的image 

    RPN OUTPUT:一系列矩形的object proposals(每個proposal都會有一個object score) 

    Fast R-CNN(Selective Search + CNN + ROI)

    Faster R-CNN(RPN + CNN + ROI)

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

how to get region proposals?

convolutional feature map 上滑動的小網絡(nn)= intermediate layer

intermediate layer = 2k: cls layer + 4k:reg layer(both 11)

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

什麼是anchors?

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

在每個滑動視窗的位置,同時預測多個region proposals,proposals最大數目設定為k。這樣,reg層輸出4k個值表示proposal的坐标,cls層輸出2k個值評估proposal是否為目标的機率。這k個proposals時關于k個reference boxes參數化的,是以稱為anchors。anchor在每個滑動區域的中心,每個anchor的尺寸和長寬比都不同。(文中預設3個尺寸,3個長寬比,是以每個位置有9個anchor)。對于尺寸為W∗H的feature maps(一般約2400),有W∗H∗k個anchor。

Translation-Invarlation Anchors:

  • 如果将圖像中的目标平移了,依然能計算出對應的平移的proposals,并且在任何位置函數都能預測到它。
  • 平移不變性還能減小模型的尺寸

Multi-Scale Anchors as Regression References

  • 省時(anchor)

loss function:

  • 通過比較這些anchor和ground truth間的重疊情況來決定哪些anchor是前景,哪些是背景,也就是給每一個anchor都打上前景或背景的label。有了labels,你就可以對RPN進行訓練使它對任意輸入都具備識别前景、背景的能力
  • rpn_cls_score_reshape子產品輸出的結構是[1,9*H,W,2],就是9xHxW個anchor二分類為前景、背景的機率;anchor_target_layer子產品輸出的是每一個anchor标注的label,拿它和二分類機率一比較就能得出分類的loss。

training :提取樣本的政策為從一張圖檔随機選取256個樣本,其中正負樣本個數都為128。(如果正樣本數不足128,則用負樣本補充)

RPN和Fast R-CNN共享特征:

本文使用:

疊代訓練。先訓練RPN,然後用訓練好的RPN産生的proposals來訓練Fast R-CNN。接着由Fast R-CNN微調的結構初始化RPN。以上,交替進行。

4-Step Alternating Training

  • 第一步,訓練RPN,用ImageNet預訓練模型初始化參數來微調網絡;
  • 第二步,用前面訓練的RPN産生的proposals單獨訓練一個Fast R-CNN網絡;(時的兩個網絡并沒有共享卷積層,Fast RCNN也是預訓練網絡初始化的)
  • 第三步,用檢測網絡初始化RPN,固定共享的卷積層,隻微調RPN單獨的部分;
  • 第四步,固定共享的卷積層,微調Fast R-CNN獨立的部分。以上,訓練結束。可以疊代,但是改善很小。

訓練細節

輸入預處理,将輸入統一縮放成(1000,600)(1000,600)大小。(多尺度特征提取可能可以提到準确率,但不能很好地折中速度和準确率)。文中使用的模型(ZFnet,VGGnet)的共享卷積之後,感受野(也就是stride的乘積)為1616,也就是說對于(1000,600)(1000,600)的圖像在經過卷積層後,其每個像素點代表之前1616個像素點的資訊,這對于PASCAL VOC的圖像(一般約(500,375)(500,375)大小)對應的就是原圖像的1010個像素點(600/375∗10=16600/375∗10=16)。【步幅乘積這麼大都能提供好的結果,使用更小的步幅可能能得到更好的結果,但不是本文要讨論的内容】

anchors選擇,標明anchors為三個尺度{1282,2562,5122}和三個長寬比{1:1,1:2,2:1}{的卷積,共九個。(這些anchors沒有特意為了某資料集精心設計,按照結果來說,應該是沒有必要調整,其三個邊框的大小基本可以覆寫了整張圖檔)。

anchors篩選,⑴ 在訓練時,作者把所有越過“邊界”的anchors都忽略了(對于1000∗600圖檔,其大概有20000個anchors(1000/16∗600/16∗9=21093)。删去越過邊界的,大概還剩下6000個。)。若不删掉這些過界的anchors,那麼RPN将會推薦較大的,相對比較錯誤的區域,同時訓練也不會收斂。⑵ 在測試時,作者卻留下這些過界的anchors,在整張圖檔上卷積,隻需要将其産生的越過邊界的proposals裁剪成符合圖檔邊界的區域。

proposals篩選,經過RPN提取的proposals有很高的重疊率,對其進行非最大值抑制以删除重疊率較高的框。本文設定NMS的IoU為0.7。經過非最大值抑制後,每張圖檔大概能剩下2000個區域。然後選取Top-N的區域用于檢測。在訓練的時候,選取2000個區域;但在測試時,區域選取的數目又不同。

  

連結:https://blog.csdn.net/qq_19784349/article/details/81053491

非極大抑制(non-maximum suppression,NMS:

  • 一些RPN proposal彼此高度重合。為了減少備援,在它們的cls score的基礎上在proposal區域應用非極大抑制
  • NMS的IoU門檻值固定為0.7,使得每張圖檔留下大概2000個proposal region。
  • NMS并未降低最終的檢測準确率。

3.實驗

(1)PASCAL VOC上的實驗

A. 一般實驗及RPN消融實驗

SS表示Selective Search ,EB表示EdgeBoxes

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

a.region proposal

目的:驗證region proposal生成方法的影響。

做法:在訓練和測試中分别使用SS、EB和RPN+ZF(文中方法)這三種方法來生成region proposal進行實驗。

結果:RPN+ZF獲得了最佳結果,由于共享卷積計算,RPN+ZF速度也更快。

b.共享卷積層的影響

c.RPN對Fast R-CNN detector 網絡的影響

cls層的影響

cls scores影響排名最前面的proposals

reg層的影響

高品質的proposal主要歸功于regreesed box bounds

更加強大的網絡對于RPN proposal品質的影響

mAP從56.8%(RPN+ZF)上升到了59.2%(RPN+VGG)

在PASCAL 2007測試集上的測試結果
           
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

表3展示了在proposal和detection時都使用VGG-16,并在PASCAL 2007測試集上進行測試的結果(使用不同訓練集或不同訓練集的組合巡警訓練)。“07”表示VOC 2007訓練集,“07+12”表示VOC 2007訓練集與VOC 2012訓練集的合集。shared和unshared分别表示共享特征和不共享特征。對于RPN,訓練Fast R-CNN的proposal數目為2000.

B.VGG-16

在PASCAL VOC 2012上的測試結果:

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

time:

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

表6、表7分别對應表3、表4,分别展示了在PASCAL VOC 2007和PASCAL VOC 2012測試集上進行測試時每一類對象的檢測結果。

** C. Sensitivities to Hyper-parameters**

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

(2)MS COCO

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

(3)從MS COCO到PASCAL VOC

表12.Faster R-CNN在PASCAL VOC 2007測試集和2012測試集上的檢測mAP(%)。模型為VGG-16。

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

1、Describe what the authors of the paper aim to accomplish, or perhaps did achieve.這篇論文作者的目标是什麼,或者也許已經實作了什麼。

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通過區域提議網絡實作實時)

具體步驟:

首先向CNN網絡【ZF或VGG-16】輸入任意大小圖檔;

經過CNN網絡前向傳播至最後共享的卷積層,一方面得到供RPN網絡輸入的特征圖,另一方面繼續前向傳播至特有卷積層,産生更高維特征圖;

供RPN網絡輸入的特征圖經過RPN網絡得到區域建議框和區域得分,并對區域得分采用非極大值抑制【門檻值為0.7】,輸出其Top-N【文中為300】得分的區域建議給RoI池化層;

第2步得到的高維特征圖和第3步輸出的區域建議框同時輸入RoI池化層,提取對應區域建議框的特征;

第4步得到的區域建議特征通過全連接配接層後,輸出該區域的分類得分以及回歸後的bounding-box。

采用 RPN + FAST RCNN(gpu) + SHARED ,實作速度和準确率的提高;

Faster R-CNN 包括兩個部分:1)RPNs,深度全卷積網絡用于提取候選區域,2) Fast R-CNN 檢測器用于物體檢測。

2、If a new approach/technique/method was introduced in a paper, what are the key elements of the newly proposed approach?如果文中引入了一種新方法/技術,那麼這一新提出的方法/技術的關鍵要素是什麼?

RPN : 讓region proposal 也在gup上生成

為了統一RPN和Fast R-CNN目标檢測網絡,我們提出一種簡單的訓練方案,即保持建議框固定,微調區域建議和微調目标檢測之間交替進行。(4 steps : 3,4步) 疊代

訓練方法:

RPN在CNN卷積層後增加滑動視窗操作以及兩個卷積層完成區域建議功能,第一個卷積層将特征圖每個滑窗位置編碼成一個特征向量,第二個卷積層對每個滑窗位置輸出k個區域得分和k個回歸後的區域建議,并對得分區域進行非極大值抑制後輸出得分Top-N【文中為300】區域,告訴檢測網絡應該注意哪些區域,本質上實作了Selective Search、EdgeBoxes等方法的功能。

3、What other references do you want to follow?你還想關注哪些參考資料/文獻?

全文翻譯 https://blog.csdn.net/u011534057/article/details/51259812

其他部落客學習筆記:https://blog.csdn.net/Wonder233/article/details/53837680

https://blog.csdn.net/mw_mustwin/article/details/53039338

https://blog.csdn.net/u011326478/article/details/52872614

https://blog.csdn.net/qq_19784349/article/details/81053491

繼續閱讀