目標檢測系列——Fast R-CNN原理詳解
持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第26天,點選檢視活動詳情
目標檢測系列——Fast R-CNN
寫在前面
在上一篇,我們介紹過RCNN的原理,詳情戳☞☞☞瞭解🌱🌱🌱這裡再來簡要概述一下RCNN的演算法步驟:
- 候選區域生成
- 神經網路提取特徵
- SVM分類器分類
- 迴歸器修正候選框位置
繼RCNN釋出後,RGB大神又發表了Fast R-CNN🍍🍍🍍先來看看論文中表示Fast R-CNN結果的圖片,如下:
關於這張經典的圖片,現在大家只要又一個直觀的感受即可,後面會深度解析。此篇文章較RCNN有了較大提示,Fast R-CNN其主要步驟如下:
- 候選區域生成
- 完整影象輸入網路,候選框投影到特徵圖得到特徵矩陣
- 特徵矩陣經ROI pooling層縮放至統一大小,後將特徵圖展平得到預測結果
可以看到,僅從RCNN和Fast R-CNN的步驟來看,它們還是存在一些差異的,下面將會具體談談這些步驟的具體細節,一起來看看吧🍀🍀🍀
候選區域生成
候選區域生成和R-CNN沒有區別,同樣採用的是SS演算法,這裡就不重複介紹了,不清楚的可以參考上篇R-CCN博文🍂🍂🍂
完整影象輸入網路,候選框投影到特徵圖得到特徵矩陣
還記得在R-CNN中我們輸入網路的是什麼嘛?這裡就不賣關子了,在R-CNN中我們輸人的是經SS演算法得到的2000個候選框,這顯然需要巨大的計算量;而在Fast R-CNN中,我們僅需要將原始影象輸入到特徵提取網路中得到原始影象的特徵圖即可。🌼🌼🌼這裡你或許存在這樣的問題:既然輸入網路的是原始影象,那第一步在原始影象中生成的候選框該怎麼利用呢? 其實這一部分是借鑑了何凱明的SPP-Net——原始影象中的某個候選框經過神經網路後會對映到所得特徵圖的相應位置,這個位置是可計算的。 為方便大家理解,我畫了下圖供大家參考:
關於上述的對映規則,大家可以參考這篇博文:SPP-net 🍉🍉🍉
特徵矩陣經ROI pooling層縮放至統一大小,後將特徵圖展平得到預測結果
在Fast R-CNN中,我們沒有像R-CNN中一樣對圖片進行強制縮放,而是我們在得到特徵圖上的對映後(也即候選框),將這些候選框進行ROI pooling操作將不同大小的候選框統一縮放至統一的大小,ROI pooling的操作如下圖所示:即不論原始特徵圖大小如何,我們都先將特徵圖分成77=49等份,然後每一份採用最大池化或平均池化,將原特徵圖下采樣成77統一大小。
特徵圖變成統一尺寸後,就可以將其展平送入全連線層了,之後再接上softmax層和regressor層即可輸出。
Fast R-CNN完整流程
通過上文的講述,現在相信大家再看這個圖會更加深刻。大致過程和上文所述一致,這裡不在敘述🌵🌵🌵
損失函式
損失函式共有兩部分組成,一部分是分類損失,一部分是邊界框迴歸損失。
小結
Fast R-CNN的原理部分就介紹到這裡了,希望可以對大家有所幫助。🍀🍀🍀後續會更新Faster_RCNN的內容以及相關程式碼講解,一起加油吧!!!
參考連結
RCNN理論合集🍁🍁🍁
\
- 兔年到了,一起來寫個春聯吧
- CV攻城獅入門VIT(vision transformer)之旅——VIT程式碼實戰篇
- 對抗生成網路GAN系列——GANomaly原理及原始碼解析
- 對抗生成網路GAN系列——WGAN原理及實戰演練
- CV攻城獅入門VIT(vision transformer)之旅——近年超火的Transformer你再不瞭解就晚了!
- 對抗生成網路GAN系列——DCGAN簡介及人臉影象生成案例
- 對抗生成網路GAN系列——CycleGAN簡介及圖片春冬變換案例
- 對抗生成網路GAN系列——AnoGAN原理及缺陷檢測實戰
- 目標檢測系列——Faster R-CNN原理詳解
- 目標檢測系列——Fast R-CNN原理詳解
- 目標檢測系列——開山之作RCNN原理詳解
- 【古月21講】ROS入門系列(4)——引數使用與程式設計方法、座標管理系統、tf座標系廣播與監聽的程式設計實現、launch啟動檔案的使用方法
- 使用kitti資料集實現自動駕駛——繪製出所有物體的行駛軌跡
- 使用kitti資料集實現自動駕駛——釋出照片、點雲、IMU、GPS、顯示2D和3D偵測框
- 基於pytorch搭建ResNet神經網路用於花類識別
- 基於pytorch搭建GoogleNet神經網路用於花類識別
- 基於pytorch搭建VGGNet神經網路用於花類識別
- UWB原理分析
- 論文閱讀:RRPN:RADAR REGION PROPOSAL NETWORK FOR OBJECT DETECTION IN AUTONOMOUS
- 凸優化理論基礎2——凸集和錐