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
- 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中的過程步驟應該如何理解?
- 5步實現深度學習OpenCV物件檢測:Faster-RCNN圖片識別深度學習OpenCV物件ASTCNN
- 泊松過程的詳細理解
- 找物件的過程中,我竟然理解了什麼是機器學習!物件機器學習
- ORACLE建庫過程中自動生成的跟鎖相關的VIEWOracleView
- 理解 Go 中的協程(Goroutine)Go
- flink:JobGraph生成過程分析
- 關於INSTANCE RECOVERY過程的理解
- 理解JavaScript中的事件路由冒泡過程及委託代理機制JavaScript事件路由
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- IoC-spring 的靈魂(帶你輕鬆理解IOC思想及bean物件的生成過程)SpringBean物件
- 25_解密Oracle redo生成過程解密Oracle Redo
- 深入理解 iOS App 的啟動過程iOSAPP
- 理解XGBoost機器學習模型的決策過程機器學習模型
- 理解oracle執行sql語句的過程OracleSQL
- 我理解的OAuth 1.0a 的驗證過程OAuth
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- 小談java內部類物件的生成過程Java物件
- 深入理解ORACLE啟動過程Oracle
- 深入理解Python中的生成器Python
- Sqlserver中的儲存過程SQLServer儲存過程
- 深入理解 Python 虛擬機器:協程初探——不過是生成器而已Python虛擬機
- 儲存過程批量生成awr指令碼儲存過程指令碼
- 自動生成對錶進行插入和更新的儲存過程的儲存過程 (轉)儲存過程
- Oracle 通過儲存過程來生成CSV檔案Oracle儲存過程
- Linux 中的靜態庫和動態庫簡介及生成過程示例Linux
- 揭秘Vue從Virtual DOM生成真實DOM的過程Vue
- 使用Java生成比特幣錢包地址的過程Java比特幣
- 共享池之七:執行計劃的生成過程
- 寫給程式設計師的機器學習入門 (十) - 物件識別 Faster-RCNN - 識別人臉位置與是否戴口罩程式設計師機器學習物件ASTCNN