faster rcnn中anchor的生成過程理解
首先,根據給定的base_size,生成一個所謂的base_anchor,其值為[0,0,base_size-1,base_szie-1]。例如當base_size=16的時候就生成一個座標為[0,0,15,15]的矩形。
第二步根據上面的上面得到base_anchor進行座標變換,計算出中心點xc,yc和矩形的高和寬w,h.即將我們說的xmin,ymin,xmax,ymax形式的座標轉化為w,h,xc,yc的座標形式。用我們的例子就是從[0,0,15,15]變成了[16,16,7.5,7.5]。再依據w和h計算矩形的面積,這裡記為base_anchor的size。將size除以不同的ratio得到一個陣列,稱之為size_ratios。此時size=256, size_ratios=[512,256,128]。接下來將每一個size_ratio開平方得到的值記為ws,而將ws*ratio的值記為hs,而每一對(ws,hs)和(xc,yc)則可以重新變換座標生成一個anchor,三個size_ratio對應三對(ws,hs),即可以變換為三個anchor.將之堆疊在一起稱為ratio_anchors. size_ratios=[512,256,128],對應的ws=[22,16,11],hs=[12,16,22]。則ratio_anchors=[[ -3.5 2. 18.5 13. ] ,[ 0. 0. 15. 15. ],[ 2.5 -3. 12.5 18. ]]
座標轉化的方法如下圖,非常簡單
[xmin,ymin,ymax,ymax]-->[ws,hs,xc,yc] [ws,hs,xc,yc]->[xmin,ymin,ymax,ymax]à->ratio_anchors
ratio_anchors座標軸上表示
第三步將上一步得到ratio_anchors的每一個anchor的w和h 乘上scales得到新的(ws,hs).如果scales=[8,16,32]三個scale,那麼我們就可以得到3*3=9對(ws,hs),從而通過座標變換得到9個anchors,這裡是在(0,0)點處生成anchor,再進行滑動就可以得到所有的propsal區域
9個anchor 的座標及對應的ws,hs
Anchor 的座標繪製
根據上文,我的理解是在某一層上先生成這一層對應大小的anchors即ratio_anchors,乘上scales得到的anchors應該是指對應於不同尺度上的大小,相當於將這個anchor分別放大了8,16,32 倍來對應原圖上不同尺度的物體,再和gt進行匹配。但之所以實驗出錯,推測還是在匹配上處理的有問題。
相關文章
- RCNN、SPP-net、Fast-RCNN和Faster-RCNNCNNAST
- faster-RCNN臺標檢測ASTCNN
- Mask RCNN測試過程經驗總結CNN
- 用Tensorflow2.0實現Faster-RCNN的程式碼介紹ASTCNN
- 二階段目標檢測網路-Faster RCNN 詳解ASTCNN
- 淺析py-faster-rcnn中不同版本caffe的安裝及其對應不同版本cudnn的解決方案ASTCNNDNN
- Lab_1:練習1——理解通過make生成執行檔案的過程
- 新版PFMEA中的過程步驟應該如何理解?
- flink:JobGraph生成過程分析
- 泊松過程的詳細理解
- 5步實現深度學習OpenCV物件檢測:Faster-RCNN圖片識別深度學習OpenCV物件ASTCNN
- ORACLE建庫過程中自動生成的跟鎖相關的VIEWOracleView
- 理解 Go 中的協程(Goroutine)Go
- 深入理解 iOS App 的啟動過程iOSAPP
- 25_解密Oracle redo生成過程解密Oracle Redo
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- 深入理解 Python 虛擬機器:協程初探——不過是生成器而已Python虛擬機
- 使用Java生成比特幣錢包地址的過程Java比特幣
- 找物件的過程中,我竟然理解了什麼是機器學習!物件機器學習
- 揭秘Vue從Virtual DOM生成真實DOM的過程Vue
- Sqlserver中的儲存過程SQLServer儲存過程
- 理解馬爾可夫決策過程馬爾可夫
- 理解 Android 程式啟動之全過程Android
- javascript引擎執行的過程的理解--執行階段JavaScript
- 從Spring的幾個階段理解其工作過程Spring
- 在Flutter開發過程中快速生成json解析模板類的工具 | 掘金技術徵文FlutterJSON
- 透過 Chrome 深入理解瀏覽器導航過程Chrome瀏覽器
- Keras中Mask的傳遞過程Keras
- thrift使用過程中的問題
- python中PCA的處理過程PythonPCA
- Javascript中new的執行過程JavaScript
- Https原理解析及詳細推演過程HTTP
- 【圖片+程式碼】:GCC 連結過程中的【重定位】過程分析GC
- RCNN中函式配置-convert_data_to_tfrecordCNN函式
- flink1.10版本StreamGraph生成過程分析
- KVC中setValue:forKey:的執行過程
- Dubbo中暴露服務的過程解析
- 爬蟲過程中遇到的問題爬蟲