1. 程式人生 > >基於DL的目標檢測技術:R-CNN、Fast R-CNN、Faster R-CNN

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

目標檢測:在給定的圖片中精確找到物體所在位置,並標註出物體的類別。
目標檢測=影象識別(CNN)+定位(迴歸問題/取影象視窗)

遇到多物體識別+定位多個物體?
選擇性搜尋找出可能含有物體的框(候選框)判定得分。這些框之間是可以互相重疊互相包含的,從而避免暴力列舉的所有框了。

1.R-CNN

步驟一:訓練(或者下載)一個分類模型(比如AlexNet)
步驟二:對該模型做fine-tuning

  • 修改分類數
  • 去掉最後一個全連線層

步驟三:特徵提取

  • 提取影象的所有候選框(選擇性搜尋)
  • 對於每一個區域:修正區域大小以適合CNN的輸入,做一次前向運算,將第五個池化層的輸出(就是對候選框提取到的特徵)存到硬碟
    在這裡插入圖片描述

步驟四:訓練一個SVM分類器(二分類)來判斷這個候選框裡物體的類別

  • 每個類別對應一個SVM,判斷是不是屬於這個類別,是就是正類,反之負類

步驟五:訓練一個迴歸器精細修正候選框位置:對於每一個類,訓練一個線性迴歸模型去判定這個框是否框得完美。
在這裡插入圖片描述

速度瓶頸

計算機對所有候選框進行特徵提取時會有重複計算

2.Fast R-CNN

在RCNN的基礎上採納了SPP Net方法(空間金字塔池化)

  • 整張圖輸入CNN提取一次特徵
  • 找出每個候選框在feature map上的對映patch

速度瓶頸

選擇性搜尋,找出所有的候選框這個過程也耗時

3.Faster R-CNN

在Fast R-CNN的基礎上加入一個提取候選區域的網路RPN(Region Proposal Network),代替了費時的選擇性搜尋,使得檢測速度大幅提高。

具體做法

  • 將RPN放在CNN最後一個卷積層的後面
  • RPN直接訓練得到候選區域

RPN簡介

  • 本質是 “ 基於滑窗的無類別目標檢測器 ” :
  • 在feature map上滑動視窗產生錨點
  • 建立一個神經網路用於物體分類+框位置的迴歸
  • 滑動視窗的位置提供了物體的大體位置資訊
  • 框位置的迴歸提供了框更精確的位置