rcnn的相關的知識

最近在看rcnn,rcnn主要是用來進行目標檢測,語義分割的

是一個將cnn使用到目標檢測的突破,進而誕生了rcnn,sppnet,fast-rcnn,faster-rcnn

在此,使用這個博文介紹一下以上的rcnn及其擴展中使用到的東西的簡單介紹吧

1,OverFeat 

OverFeat is a Convolutional Network-based image classifier and feature extractor.

參考OverFeat:Integrated RecognitionLocalizationand Detection using Convolutional Networks

有兩點,其中第二點是亮點:
(1)特徵共享:首先在分類問題上訓練出來模型,然後Fix住卷積層,來對定位模型進行fine tuning,最後對應1k個類別做了1k個定位的模型。
(2)“快速”滑動窗口:爲何要用滑動窗口?對於分類,通過多視角和多尺度來提高分類的置信度;對於定位,解決了多物體以及多尺度的問題。如何提高滑動窗口的效率?不在原始圖片上做滑動窗口,而是在最後一個pooling層上面做滑動窗口。

快速滑動窗口

也就是在最後一個pool層上做滑動窗口。
本質上,在pool做小步長的滑動窗口和在原始圖片上做大步長的滑動窗口,從識別效果上來說幾乎是等價的,但是在效率上存在極大的差別——所以這裏的“快速”本質上是利用了CNN卷積層和下采樣層的空間對應關係來減少計算。



  • 對於分類模型,訓練只使用單個尺度(221*221)進行訓練,測試時候不改變網絡架構,卻是使用多個尺度進行輸入的——於是導致了網絡的輸出由1維變成了2維(其實就是滑動窗口)
  • 訓練分類模型只是使用了單尺度,但後面訓練定位模型時候用到了多尺度,個人認爲是爲了增加樣本——因爲訓練1k個定位模型的話,每類的樣本太少了。
  • 本文提出的“測試時實現多視角多尺度”方法,其本質上就是滑動窗口——多視角≈滑動到不同的位置,多視角≈大小不一的窗口。只是利用CNN的固有屬性以及一些技巧,減少了測試時候的運算量。

2.Fully COnvolutional Networks

可以參考《Fully Convolutional Networks for SemanticSegmentation》







下面是知乎上的解釋:

RCNN 解決的是,“爲什麼不用CNN做classification呢?”
(但是這個方法相當於過一遍network出bounding box,再過另一個出label,原文寫的很不“elegant”
Fast-RCNN 解決的是,“爲什麼不一起輸出bounding box和label呢?”
(但是這個時候用selective search generate regional proposal的時間實在太長了
Faster-RCNN 解決的是,“爲什麼還要用selective search呢?”


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