Neural-Motifs 源码解读(1):ObjectDetector类

GitHub: neural-motifs
Neural-Motifs 源码解读(1):ObjectDetector类


1. 得到fmap

feature_map
Image
fmap

图片x经过feature_map()操作得到大小为[batch_size, rpn_input_dim=512, IM_SIZE/4, IM_SIZE/4]的公共特征映射fmap (RPN与RoIAlign操作共享)。


2. 得到rois

rpn_head
roi_proposal
fmap
rpn_feats
rois
  1. fmap经过rpn_head()操作得到大小为[batch_size, IM_SIZE/16, IM_SIZE/16, 9, 6]的rpn_feats。其中 9=3*3为anchor的个数,6=分数2个+位置4个,具体请参照RPN解析
  2. rpn_feats经过rpn_head.roi_proposals()得到大小为[num_rois, 5] of [img_num, x0, y0, x1, y1]的rois
    1. rpn_feats前2/6 => class_fmap,经过softmax得到class_preds
    2. rpn_feats后4/6 => box_fmap,经过bbox_preds得到box_preds
    3. box_preds经过后处理(如nms)得到rois,该过程需要class_preds

3. 得到od_obj_dists 及其他

obj_feature_map
score_fc
fmap
rois
obj_fmap
od_obj_dists
  1. 使用 第1步得到的fmap 及 第2步用fmap得到的rois 经过obj_feature_map()操作得到output_dim=4096维的obj_fmap
    1. RoIAlign:pooling_size=7, pooling_size=7, spatial_scale=1/16
    2. roi_fmap:vgg_model.classifier
  2. obj_fmap经过score_fc()线性变化至num_classes维的物体类别分布od_obj_dists