【目標檢測】Faster RCNN學習筆記

背景

  • R-CNN計算成本很高,但是各種推薦中共享卷積,成本已經大大降低,然而其訓練過程和測試依然非常慢
  • R-CNN方法端到端地對CNN進行訓練,將推薦區域分類爲目標類別或背景;R-CNN主要作爲分類器,並不能預測目標邊界,其準確度取決於區域推薦模塊的性能
  • 在OverFeat方法中,訓練一個全連接層來預測假定單個目標定位任務的邊界框座標,然後將全連接層變成卷積層,用於檢測多個類別的目標
  • MultiBox方法從網絡中生成區域推薦,網絡最後的全連接層同時預測多個類別不相關的邊界框,並推廣到OverFeat的“單邊界框”方式
  • SPPNet和Fast R-CNN等研究已經大大降低了檢測網絡的運行時間,但是推薦區域的計算成了一個瓶頸
  • 多尺度預測有兩種流行的方法。第一種方法是基於圖像/特徵金字塔,例如DPM。這種方法通常是有用的,但是非常耗時;第二種方法是在特徵映射上使用多尺度(和/或長寬比)的滑動窗口

Faster R-CNN的貢獻

  • 在Fast R-CNN的基礎上,提出了RPN區域推薦網絡

目標推薦方法

  • 基於超像素分組(如選擇性搜索、CPMC)
  • 基於滑動窗口(如窗口中的目標、EdgeBoxes)
  • 目標推薦方法被採用與外部模塊,且獨立於檢測器
  • Faster R-CNN創新性的提出了RPN方法

Faster R-CNN

  • 由兩個模塊組成。第一個模塊是推薦區域的深度全卷積網絡,第二個模塊是使用推薦區域的Fast R-CNN檢測器
  • RPN,區域推薦網絡。以任意大小的圖像作爲輸入,輸出一組矩形的目標推薦,每個推薦都有一個目標得分
  • Anchors,錨點。在每個滑動窗口位置,同時預測多個區域推薦,每個位置可能推薦的最大數目表示爲k,所以在reg層中有4k個輸出,用於編碼k個邊界框的座標,cls層輸出2k個分數,用於估計目標是或不是的可能性,如上圖的中間所見
  • 基於錨點方法建立錨點金字塔上,更具成本效益。方法參照多尺度和長寬比的錨盒來分類和迴歸邊界框

訓練RPN

  • RPN可以通過反向傳播和隨機梯度下降(SGD)進行端對端訓練,遵循“以圖像爲中心”的採樣策略來訓練這個網絡
  • 在圖像中隨機採樣256個錨點,計算一個小批量數據的損失函數,其中採樣的正錨點和負錨點的比率可達1:1
  • 從標準方差爲0.01的零均值高斯分佈中提取權重來隨機初始化所有新層,所有其他層(即共享卷積層)通過預訓練的ImageNet分類模型來初始化,調整ZF網絡的所有層,以及VGG網絡的conv3_1及其之上的層以節省內存。對於60k的小批量數據,使用0.001的學習率,對於PASCAL VOC數據集中的下一個20k小批量數據,使用0.0001。使用0.9的動量和0.0005的重量衰減

訓練共享特徵的網絡

  • 對於檢測網絡,採用Fast R-CNN
  • 獨立訓練的RPN和Fast R-CNN將以不同的方式修改卷積層
  • 需要開發出一種允許在兩個網絡之間共享卷積層的技術,即訓練共享特徵的網絡:
    (一)交替訓練(二)近似聯合訓練(三)非近似的聯合訓練

參考:
論文翻譯:https://blog.csdn.net/Quincuntial/article/details/79132251
其它:https://blog.csdn.net/liuxiaoheng1992/article/details/81843363
https://blog.csdn.net/qq_41375609/article/details/94749596

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