faster rcnn原始碼解讀總結
阿新 • • 發佈:2019-01-09
1.初始資料通過imdb類的操作放在它的屬性roidb裡。
2.roidb只是一個字典,可以拿出來當做一個單獨的字典,脫離imdb。
3.roi_data_layer下的layer就是input-data。Forward中載入資料並控制一次一張圖片
的資料進入網路。送到rpn-data中三組資料:
gt_boxes :大小(一張圖片xml中box個數, 5);一張圖中box的座標以及類別
data : 大小(1,3,高,寬);一張圖的資料
im_info: 大小(1, 3); (高, 寬, 下面提到的比例)
圖片的大小與原圖不同,每張圖的高或寬被rescale成600,另一邊會按照相同的比例 rescale(程式碼出處未找到,且不懂這樣的原因??????)
4.`AnchorTargetLayer就是rpn-data.計算anchors,以及anchors是否合理(大小,overlap),並根據每個anchor與gt_box的重疊度判斷labels;anchors大小是卷積網路過來資料的高寬再乘9個(即,一個點有9個).最後產生四組資料(設k=len(anchors)):
labels:大小(k, 1); 前景=1,背景=0, 否則=-1
rpn_bbox_targets: 大小(k, 4)
bbox_inside_weights:
大小(k, 4);有前景=1,否則為 0
bbox_outside_weights: 大小(k, 4); 有前景或背景=1/(前景+背景),否則為0