RCNN,SSD, YOLO的優缺點比較及反思

1. RCNN

rcnn對於原有的目標檢測算法提升50% 在VGG-16網絡模型下,voc2007數據集上準確率爲66%,但是速度很慢,內存佔用量大,主要原因爲候選框由速度較慢的selective search算法完成以及重複卷積網絡計算。

Fast-RCNN

  1. 加入ROI池化 :提出ROI pooling池化層結構,解決了候選框子圖必須將圖像裁剪縮放到相同尺寸大小的問題;fast R-CNN在全連接層之前插入了ROI pooling層,從而不需要對圖像進行裁剪,很好的解決了這個問題。
  2. 多任務損失函數:將分類損失和邊框定位迴歸損失結合在一起統一訓練,最終輸出對應分類和邊框座標。
  3. Fast-RCNN = RCNN + SPPNET - Crop

Faster-RCNN

Faster-RCNN基本結構

  1. 加入RPN網絡 :region proposal networks RPN層用於生成候選框,並利用softmax判斷候選框是前景還是背景,從中選取前景候選框(因爲物體一般在前景中),並利用bounding box regression調整候選框的位置,從而得到特徵子圖,稱爲proposals。
  2. 分類層:利用ROI層輸出的特徵圖proposal,判斷proposal的類別,同時再次對bounding box進行regression從而得到精確的形狀和位置。
  3. 交替訓練: 交替訓練SPPNET和RPN網絡(一次通過RPN網絡一次通過SPPNET計算損失),測試集上先通過RPN進行分類再使用SPPNET進行最後的分類和迴歸
  4. Anchor框: 在高級特徵上取k個Anchor框。anchor有[x,y,w,h]四個座標偏移量,x,y表示中心點座標,w和h表示寬度和高度。這樣,對於feature map上的每個點,就得到了k個大小形狀各不相同的選區region。
  5. Anchor框的計算: 先使用softmax確定是前景還是背景進行篩選,再進行bounding box迴歸。
    在這裏插入圖片描述
    假設紅色框的座標爲[x,y,w,h], 綠色框,也就是目標框的座標爲[Gx, Gy,Gw,Gh], 我們要建立一個變換,使得[x,y,w,h]能夠變爲[Gx, Gy,Gw,Gh]。最簡單的思路是,先做平移,使得中心點接近,然後進行縮放,使得w和h接近。如下
    在這裏插入圖片描述
    學習dx dy dw dh這四個線性變換,可以用線性迴歸來建模。對於空間位置loss,我們一般採用均方差算法並可以使用自適應梯度下降算法Adam優化方法。
  6. Faster-RCNN = Fast-RCNN + RPN - SS

Faster-RCNN 系列的反思

使用金字塔模型可以解決RCNN裁剪尺度變化的問題,借鑑了NLP中attention機制,對感興趣區域進行分類提高了候選框採集的速度。對小物體有更好對檢測效果。

2. YOLO

you only look once:one-stage的目標檢測算法,將物體的定位和分類在一起完成,在一個輸出層迴歸bounding box的位置和bounding box所屬類別。在一塊泰坦顯卡上,FPS達到了45,實現了實時(Realtime)檢測。在這裏插入圖片描述

YOLO V1

在這裏插入圖片描述

  1. 圖像分割 :將圖像隱式的分割爲S X S個網格,當物體中心落在哪個網格里哪個網格就負責預測
  2. 計算量小:張量大小隻有 S x S x (B*5 + C)。
  3. 訓練集和測試集圖片大小不一致 訓練圖片大小爲224x224,測試圖片爲448x448

YOLO V2

  1. 批標準化 :加入BN層
  2. 加入448 x 448圖片:在訓練過程中加入和測試圖像一樣大的448 x 448 size的圖像
  3. 引用Anchor Boxes 提升了recall值但是小幅降低了mAP(更穩定)。

YOLO V3

  • YOLO V3 網絡結構

在這裏插入圖片描述

  1. 3個Anchor框 :52x52 小 26 x26 中 13 x 13 大
  2. 加入448 x 448圖片:在訓練過程中加入和測試圖像一樣大的448 x 448 size的圖像
  3. 引用Anchor Boxes :提升了recall值但是小幅降低了mAP(更穩定)。
  4. 加入NMS篩選

YOLO系列的反思

    喪失部分精度,將圖片端到端的進行目標檢測,也引入了rcnn的Anchor框體系大幅提升mAP。因爲沒有進行區域採樣,所以對全局信息有較好的表現,但是在小範圍的信息上表現較差。

3. SSD

     Single Shot MultiBox Detector,平衡了YOLO和Faster RCNN的優缺點的模型。Faster R-CNN準確率mAP較高,漏檢率recall較低,但速度較慢。而yolo則相反,速度快,但準確率和漏檢率較低。

在這裏插入圖片描述

  1. 密集採樣 :在6個特徵圖上進行4-6個bounding box框採樣(論文上寫的是default boxes 但是是和其他論文裏對bounding box一樣)
  2. 多尺寸feature map:每一個卷積層,都會輸出不同大小感受野的feature map。在這些不同尺度的feature map上,進行目標位置和類別的訓練和預測,從而達到多尺度檢測的目的,可以克服yolo對於寬高比不常見的物體,識別準確率較低的問題。而yolo中,只在最後一個卷積層上做目標位置和類別的訓練和預測。這是SSD相對於yolo能提高準確率的一個關鍵所在。
  3. 多anchor框 :每個anchor對應4-6個位置參數和C個類別參數.
  4. 加入NMS篩選

SSD反思

     SSD相比SPPNET可以實現參數共享即在多個feature map上使用單一網絡。SSD的Anchor框大小是計算出來的,相比Faster RCNN的固定anchor框更加科學。下圖爲不同feature map上Anchor框的比率。 低級feature map使用小anchor框獲取細節信息,高級feature map上使用大anchor框獲取全局信息。
在這裏插入圖片描述
參考資料:
[1]: https://www.cnblogs.com/carsonzhu/p/9547973.html

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