目標檢測模型——SPP (空間金字塔池化)
SPP 在 SPP-net 中的應用:
SPP-net全名為Spatial Pyramid Pooling 結構(空間金字塔池化結構),2015年由微軟研究院的何愷明提出。
主要解決兩個問題:
有效避免了R-CNN演算法對影像區域剪裁、縮放操作導致的影像物體剪裁不全以及形狀扭曲等問題。
解決了卷積神經網路對影像重複特徵提取的問題,大大提高了產生候選框的速度,且節省了計算成本。
- 問題1具體解釋:
在含有全連線層的分類網路中,嚴格要求輸入解析度和全連線層的特徵維度相匹配。所以就會對影像進行裁剪和變形操作,也就出現了問題1。如下圖展示的就是通過spp模組將任意解析度的featherMap轉換為設計好的和全連線層相同維度的特徵向量。
具體做法是,在conv5層得到的特徵圖是256層,每層都做一次spatial pyramid pooling。先把每個特徵圖分割成多個不同尺寸的網格,比如網格分別為44、22、11,然後每個網格做max pooling,這樣256層特徵圖就形成了16256,4256,1256維特徵,他們連起來就形成了一個固定長度的特徵向量,將這個向量輸入到後面的全連線層。
- 問題2具體解釋:
R-CNN是先對輸入影像進行2k個候選框選擇後,把候選框內的影像wrap到227*277後,再放到cnn裡邊進行提取,這2k個候選框很多地方都是重疊的,會帶來大量重複的計算,因此SPP就先對輸入影像進行特徵提取之後,在提取後的feature map上在選取候選框,然後使用spatial pyramid pooling,對對應候選框的feature map區域提到到fixed-length representation。
對卷積層視覺化發現:輸入圖片的某個位置的特徵反應在特徵圖上也是在相同位置。基於這一事實,對某個ROI區域的特徵提取只需要在特徵圖上的相應位置提取就可以了。
注:ROI(region of interest),感興趣區域。機器視覺、影像處理中,從被處理的影像以方框、圓、橢圓、不規則多邊形等方式勾勒出需要處理的區域,稱為感興趣區域
一張任意尺寸的圖片,在最後的卷積層conv5可以得到特徵圖。根據Region proposal步驟可以得到很多候選區域,這個候選區域可以在特徵圖上找到相同位置對應的視窗,然後使用SPP,每個視窗都可以得到一個固定長度的輸出。將這個輸出輸入到全連線層裡面。這樣,圖片只需要經過一次CNN,候選區域特徵直接從整張圖片特徵圖上提取。
在檢測的後面模組,仍然和R-CNN一樣,使用SVM和邊框迴歸。SVM的特徵輸入是FC層,邊框迴歸特徵使用SPP層。
- 總結:
SPP-net對R-CNN最大的改進就是特徵提取步驟做了修改,其他模組仍然和R-CNN一樣。特徵提取不再需要每個候選區域都經過CNN,只需要將整張圖片輸入到CNN就可以了,ROI特徵直接從特徵圖獲取。和R-CNN相比,速度提高了百倍。
SPP-net缺點也很明顯,CNN中的conv層在微調時是不能繼續訓練的。它仍然是R-CNN的框架,離我們需要的端到端的檢測還差很多。既然端到端如此困難,那就先統一後面的幾個模組吧,把SVM和邊框迴歸去掉,由CNN直接得到類別和邊框可不可以?於是就有了Fast R-CNN。
SPP 在yolo中的應用:
yolov3-spp 和 yolo v4中的spp模組不是解決以上的兩個問題,但是借鑑了空間金字塔池化思想,主要是通過spp模組實現區域性特徵和全域性特徵的featherMap級別的融合,豐富最終特徵圖的表達能力,從而提高MAP。
官方coco資料集效果
自己資料集驗證效果
YOLOv3-SPP比YOLOV3的MAP提高了2.4個點,且自己樣本中類別存在嚴重的類別不均衡的問題。
————————
目標檢測:SPP-net
yolov3-spp深度剖析
如何理解yolov3中的spp模組?
相關文章
- 【目標檢測】:SPP-Net深入理解(從R-CNN到SPP-Net)CNN
- 目標檢測---教你利用yolov5訓練自己的目標檢測模型YOLO模型
- 訓練一個目標檢測模型模型
- 基於深度敏感空間金字塔池化的 RGBD 語義分割
- 52 個深度學習目標檢測模型深度學習模型
- 最新Anchor-Free目標檢測模型—FoveaBox模型
- Yolov5——訓練目標檢測模型YOLO模型
- 0-目標檢測模型的基礎模型
- 目標檢測
- 目標檢測 YOLO v3 訓練 人臉檢測模型YOLO模型
- 目標檢測模型的評價標準-AP與mAP模型
- CVPR 2019 | PoolNet:基於池化技術的顯著性目標檢測
- 2018目標檢測
- 九、目標檢測
- R2CNN模型——用於文字目標檢測的模型CNN模型
- 目標檢測 YOLO v3 驗證 COCO 模型YOLO模型
- 目標檢測之SSD
- 目標檢測之RetinaNetNaN
- 目標檢測面面觀
- 28-目標檢測
- 目標檢測綜述
- 目標檢測:二維碼檢測方案
- 大話目標檢測經典模型:Mark R-CNN模型CNN
- 目標檢測之YOLO系列YOLO
- 【目標檢測】Bounding Box Regression
- 目標檢測發展方向
- SSD 目標檢測 Keras 版Keras
- 【目標檢測】R-CNNCNN
- 3D目標檢測技術有哪些好用的模型?3D模型
- 做目標檢測,這一篇就夠了!2019最全目標檢測指南
- 深度學習之目標檢測與目標識別深度學習
- 基於混合高斯模型的運動目標檢測演算法模型演算法
- 一文讀懂目標檢測模型(附論文資源)模型
- 在安卓上執行yolov8目標檢測模型(ncnn)安卓YOLO模型CNN
- Object Detection(目標檢測神文)Object
- 目標檢測(Object Detection)總覽Object
- 2019 年的目標檢測指南
- 目標檢測相關論文