1. 程式人生 > >[目標檢測] Faster R-CNN 深入理解 && 改進方法彙總

[目標檢測] Faster R-CNN 深入理解 && 改進方法彙總

Faster R-CNN 從2015年底至今已經有接近兩年了,但依舊還是Object Detection領域的主流框架之一,雖然推出了後續 R-FCN,Mask R-CNN 等改進框架,但基本結構變化不大。同時不乏有SSD,YOLO等骨骼清奇的新作,但精度上依然以Faster R-CNN為最好。對於一般的通用檢測問題(例如行人檢測,車輛檢測,文字檢測),只需在ImageNet pre-train model上進行若干次 fine-tune,就能得到非常好的效果。相比於刷pascal voc,Imagenet,coco 等benchmarks,大多數人感興趣的可能是如何應用到自己的檢測目標上。

        PS: 一作任少卿大神人挺帥的,回答問題還很耐心。

        Faster R-CNN 主要由三個部分組成:(1)基礎特徵提取網路(2)RPN (Region Proposal Network) (3)Fast-RCNN 。其中RPN和Fast-RCNN共享特徵提取卷積層,思路上依舊延續提取proposal + 分類的思想。後人在此框架上,推出了一些更新,也主要是針對以上三點。

1. 更好的特徵網路

    (1)ResNet,PVANet

      ResNet CVPR2016 oral 

      ResNet 依然是現在最好的基礎網路,ResNeXT可能效能上比他好一點,但不是很主流,通過將Faster-RCNN中的VGG16替換成ResNet可以提高performance,不僅是detection,在segmentation,video analysis,recognition等其他領域,使用更深的ResNet都可以得到穩定的提升。

      PASCAL VOC  2007 上,通過將VGG-16替換成ResNet-101,mAP從73.2%提高到76.4%, PASACAL 2012 上從70.4%提高到73.8%

      值得注意的是,ResNet版本的Faster-RCNN連線方法和Baseline 版本不太一致,具體見任少卿在PAMI 2015中提到 https://arxiv.org/abs/1504.06066。以ResNet-101為例,參考下圖方式,其中res5c,atrous + fc4096 + fc4096 + fcn+1 的方式是和baseline版本一致的方式,而res4b22+res5a+res5b+rec5c+fcn+1 是最終採取的方式。這種連線方式使得ResNet-faster-rcnn成為全卷積結構,大大減少模型大小,同時在效能上有一定提升。

                                                               

       在速度方面,ResNet比VGG16更慢,同時需要訓練的次數也更多,個人實驗結果vgg16 baseline版本訓練一輪耗時1.5s,ResNet版本一輪耗時2.0s,同時記憶體佔用量也遠遠大於VGG16,大概四五倍,沒有12G的GPU就不要想用了。

      PVANet NIPS2016 workshop

      PVANet是幾個韓國人鼓搗出來的一個更深但快速的基礎網路,在VOC2012上效果達到82.5%,接近Faster R-CNN  + ResNet-101 +++ 和 R-FCN的結果,但是速度上快非常多。實際驗證結果,訓練和測試速度都比baseline版本快一倍左右。不過,這個網路非常難訓練,收斂困難,loss會比較大,選用的訓練方法是plateau,在一些比較困難的任務上,大概得好幾倍的迭代次數才能達到和VGG16效能相當程度。另外,82.5%這個效能也並非全部得益於PVANet,文章中把anchor數量增加到40多個,還做了一些小改動。個人認為,PVANet的速度廣受認可,但效能頂多和VGG16相當,不如ResNet。


 (2) Hierarchy Feature

      代表作有HyperNet,同樣的思想在SSD和FCN中也有用到,將多層次的卷積網路feature map接在一起

      HpyerNet 


      以VGG-16為例,將conv1,conv3,conv5三層接在一起,形成一個Hyper Feature,以Hpyer Feature maps 代替原有的conv5_3,用於RPN和Fast-RCNN。該文章問題出發點針對小目標和定位精度,由於CNN的本身特點,隨著層數加深,特徵變得越來越抽象和語義,但解析度卻隨之下降。Conv5_3 每一個畫素點對應的stride = 16 pixel,如果能在conv3_3上做預測,一個畫素點對應的stride = 4 pixel,相當於可以獲得更好的精度,而conv5_3代表的語義資訊對分類有幫助,結合下來,相當於一個定位精度和分類精度的折中。下圖是以AlexNet為例,不同層接法在Pascal VOC 2007上的結果,可以看到,1+3+5會取得不錯的效果。


2. 更精準更精細的RPN

     (1)FPN

     (2)more anchors

3. ROI分類方法

     (1)PS-ROI-POOLING

       R-FCN

     (2)ROI-Align & multi-task benefits

       Mask R-CNN

     (3)multi-layer roi-pooling

       DeepText

       一篇將Faster RCNN應用在文字檢測的文章,裡面的contribution比較瑣碎,但有一點小改進經驗證過相當有效,就是roi分別在conv4,conv5上做roi-pooling,合併後再進行分類。這樣基本不增加計算量,又能利用更高解析度的conv4。

       

4. sample and post-process

    (1)Hard example mining 

      OHEM

Paper:  Code:

    (2)GAN

      A-Fast-RCNN 

      這篇文章比較新穎,蹭上了GAN的熱點,利用GAN線上產生一些遮擋形變的positive sample。與Fast-RCNN比較,在VOC2007上,mAP增加了2.3%,VOC2012上增加了2.6%。

    (3)soft-NMS

      Soft-NMS (Improving Object Detection With One Line of Code)

     該篇文章主要focus在後處理NMS上,不得不承認,對於很多問題,後處理的方法會對結果產生幾個點的影響。雖然我自己試驗過,在我的任務上,Soft-NMS得到的結果和NMS完全一致,該後處理方式可能不具備推廣性,但是好在嘗試起來非常容易,代價也很小,只需要替換一個函式就可以,所以大家不妨可以試驗一下。

相關推薦

[目標檢測] Faster R-CNN 深入理解 && 改進方法彙總

        Faster R-CNN 從2015年底至今已經有接近兩年了,但依舊還是Object Detection領域的主流框架之一,雖然推出了後續 R-FCN,Mask R-CNN 等改進框架,但基本結構變化不大。同時不乏有SSD,YOLO等骨骼清奇的新作,但精度上

[目標檢測] Faster R-CNN 深入理解 && 改進方法彙總

Faster R-CNN 從2015年底至今已經有接近兩年了,但依舊還是Object Detection領域的主流框架之一,雖然推出了後續 R-FCN,Mask R-CNN 等改進框架,但基本結構變化不大。同時不乏有SSD,YOLO等骨骼清奇的新作,但精度上依然以Faste

Faster R-CNN 深入理解 && 改進方法彙總

 Faster R-CNN 從2015年底至今已經有接近兩年了,但依舊還是Object Detection領域的主流框架之一,雖然推出了後續 R-FCN,Mask R-CNN 等改進框架,但基本結構變化不大。同時不乏有SSD,YOLO等骨骼清奇的新作,但精度上依然以Fast

Pytorch1.0目標檢測Faster R-CNN and Mask R-CNN 官方實踐程式碼

                                                                微信掃描二維碼,回覆“nn”獲取完整程式碼! // Copyright (c) Facebook, Inc. and its affiliates

目標檢測R-CNN系列

R-CNN 整體結構 Region proposal -> warped region -> CNN -> FC -> linear SVM、regression 訓練步驟 對CNN進行Supervised pre-tr

Faster R-CNN演算法理解

1、文章概述      Faster r-cnn是2016年提出的文章,有兩個模型,一個是ZF模型,一個是VGG模型。在VOC07+12資料集中,ZF模型的mAP值達到59.9%,17fps; VGG模型的mAP值達到73.2%,5fps。      Faster

Faster R-CNN理解(3)

font img left box strong 技術 mar 圖片 http 2.2 邊框回歸 邊框回歸使用下面的幾個公式: xywh是預測值,帶a的是anchor的xywh,帶*的是GT Box的xywh,可以看作是anchor經過一定的變換回歸到附近的G

CNN--卷積神經網路從R-CNNFaster R-CNN理解(CIFAR10分類程式碼)

1. 什麼是CNN 卷積神經網路(Convolutional Neural Networks, CNN)是一類包含卷積計算且具有深度結構的前饋神經網路(Feedforward Neural Networks),是深度學習(deep learning)的代表演算法之一。 我們先來看卷積神經網路各個層級結構圖

帶你深入AI(4)- 目標檢測領域:R-CNNfaster R-CNN,yolo,SSD, yoloV2

系列文章,請多關注 Tensorflow原始碼解析1 – 核心架構和原始碼結構 自然語言處理1 – 分詞 帶你深入AI(1) - 深度學習模型訓練痛點及解決方法 帶你深入AI(2)- 深度學習啟用函式,準確率,優化方法等總結 帶你深入AI(3)- 物體分類領域:AlexNet VGG I

Faster R-CNN:詳解目標檢測的實現過程

最大的 中心 width 小數據 等等 eat tar 優先 博文 本文詳細解釋了 Faster R-CNN 的網絡架構和工作流,一步步帶領讀者理解目標檢測的工作原理,作者本人也提供了 Luminoth 實現,供大家參考。 Luminoth 實現:h

一文讀懂目標檢測 R-CNN Fast R-CNN Faster R-CNN YOLO SSD

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Faster R-CNN 目標檢測演算法詳細總結分析(two-stage)(深度學習)(NIPS 2015)

論文名稱:《 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 》 論文下載:https://papers.nips.cc/paper/5638-faster-r-cnn-t

Faster R-CNN:利用區域提案網路實現實時目標檢測 論文翻譯

Faster R-CNN論文地址:Faster R-CNN Faster R-CNN專案地址:https://github.com/ShaoqingRen/faster_rcnn 摘要 目前最先進的目標檢測網路需要先用區域提案演算法推測目標位置,像SPPnet1和Fast R-CNN2

基於DL的目標檢測技術:R-CNN、Fast R-CNNFaster R-CNN

目標檢測:在給定的圖片中精確找到物體所在位置,並標註出物體的類別。 目標檢測=影象識別(CNN)+定位(迴歸問題/取影象視窗) 遇到多物體識別+定位多個物體? 用選擇性搜尋找出可能含有物體的框(候選框)判定得分。這些框之間是可以互相重疊互相包含的,從而避免暴力列舉的所有框了。 1.R

目標檢測技術演進:Fast R-CNNFaster R-CNN

在上一篇目標檢測技術演進:R-CNN、Fast R-CNN、Faster R-CNN 之 RCNN中,我講了 RCNN 演算法,似乎它的表現不太好,所以這次我們講講它的進化版 —— Fast RCNN 和 Faster RCNN。 如果你還沒看上一篇,可以在我的部落格或者知乎檢視。

目標檢測技術演進:R-CNN、Fast R-CNNFaster R-CNN 之 RCNN

這篇文章的內容總結翻譯自 A Step-by-Step Introduction to the Basic Object Detection Algorithms (Part 1) ,文中有加入自己的理解。 當你想要在雜亂的桌子上面尋找鑰匙的時候,是不是有想過要是有種東西可以直接告訴我鑰

目標檢測演算法的演進(two-stage檢測演算法):R-CNN、SPP-Net、Fast R-CNNFaster R-CNN、Mask R-CNN

什麼是目標檢測(object detection): 目標檢測(object detection),就是在給定的一張圖片中精確找到物體所在的位置,並標註出物體的類別。所以,目標檢測要解決的問題就是物體在哪裡以及是什麼的整個流程問題。 但是,在實際照片中,物體的尺寸變化範圍很大,擺放物體的

論文筆記:目標檢測演算法(R-CNN,Fast R-CNNFaster R-CNN,YOLOv1-v3)

R-CNN(Region-based CNN) motivation:之前的視覺任務大多數考慮使用SIFT和HOG特徵,而近年來CNN和ImageNet的出現使得影象分類問題取得重大突破,那麼這方面的成功能否遷移到PASCAL VOC的目標檢測任務上呢?基於這個問題,論文提出了R-CNN。 基本步驟:如下圖

基於深度學習的目標檢測技術演進:R-CNN、Fast R-CNNFaster R-CNN

object detection我的理解,就是在給定的圖片中精確找到物體所在位置,並標註出物體的類別。object detection要解決的問題就是物體在哪裡,是什麼這整個流程的問題。然而,這個問題可不是那麼容易解決的,物體的尺寸變化範圍很大,擺放物體的角度,姿態不定,而且可以出現在圖片的任何地方,更何況物

Faster R-CNN:用區域提案網路實現實時目標檢測

摘要 最先進的目標檢測網路依賴於區域建議演算法來假設物體的位置.像sppnet[1]和快速r-cnn[2]這樣的進步減少了這些檢測網路的執行時間,將區域提案計算暴露為瓶頸。在本文中,我們引入了一個區域提案網路(RPN),它與檢測網路共享全影象卷積特徵,從而實現了幾乎免費的區域提案。RPN是一個完