def _proposal_top_layer(self, rpn_cls_prob, rpn_bbox_pred, name): # ''' # 对rpn计算结果roi proposals的优选 # 当TEST.MODE = 'top'使用proposal_top_layer # 当TEST.MODE = 'nms'使用proposal_layer # 默认使用nms,作者说top模式效果更好,但速度慢 # ''' with tf.variable_scope(name) as scope: if cfg.USE_E2E_TF: # 使用tensorflow端到端实现,不用numpy rois, rpn_scores = proposal_top_layer_tf( rpn_cls_prob, rpn_bbox_pred, self._im_info, self._feat_stride, self._anchors, self._num_anchors ) else: rois, rpn_scores = tf.py_func(proposal_top_layer, [rpn_cls_prob, rpn_bbox_pred, self._im_info, self._feat_stride, self._anchors, self._num_anchors], [tf.float32, tf.float32], name="proposal_top") rois.set_shape([cfg.TEST.RPN_TOP_N, 5]) rpn_scores.set_shape([cfg.TEST.RPN_TOP_N, 1]) return rois, rpn_scores
def _proposal_top_layer(self, rpn_cls_prob, rpn_bbox_pred, name): with tf.variable_scope(name) as scope: if cfg.USE_E2E_TF: rois, rpn_scores = proposal_top_layer_tf(rpn_cls_prob,rpn_bbox_pred,self._im_info,self._feat_stride, self._anchors,self._num_anchors) else: rois, rpn_scores = tf.py_func(proposal_top_layer,[rpn_cls_prob, rpn_bbox_pred, self._im_info, self._feat_stride, self._anchors, self._num_anchors], [tf.float32, tf.float32], name="proposal_top") rois.set_shape([cfg.TEST.RPN_TOP_N, 5]) rpn_scores.set_shape([cfg.TEST.RPN_TOP_N, 1]) return rois, rpn_scores
def _proposal_top_layer(self, rpn_cls_prob, rpn_bbox_pred, name): with tf.variable_scope(name) as scope: if cfg.USE_E2E_TF: rois, rpn_scores = proposal_top_layer_tf( rpn_cls_prob, rpn_bbox_pred, self._im_info, self._feat_stride, self._anchors, self._num_anchors ) else: rois, rpn_scores = tf.py_func(proposal_top_layer, [rpn_cls_prob, rpn_bbox_pred, self._im_info, self._feat_stride, self._anchors, self._num_anchors], [tf.float32, tf.float32], name="proposal_top") rois.set_shape([cfg.TEST.RPN_TOP_N, 5]) rpn_scores.set_shape([cfg.TEST.RPN_TOP_N, 1]) return rois, rpn_scores