def convert_gen_proposals( op, blobs, rpn_pre_nms_topN, rpn_post_nms_topN, rpn_nms_thresh, rpn_min_size, ): print('Converting GenerateProposals Python -> C++:\n{}'.format(op)) assert op.name.startswith('GenerateProposalsOp'), 'Not valid GenerateProposalsOp' spatial_scale = mutils.get_op_arg_valf(op, 'spatial_scale', None) assert spatial_scale is not None lvl = int(op.input[0][-1]) if op.input[0][-1].isdigit() else None inputs = [x for x in op.input] anchor_name = 'anchor{}'.format(lvl) if lvl else 'anchor' inputs.append(anchor_name) anchor_sizes = (cfg.FPN.RPN_ANCHOR_START_SIZE * 2.**(lvl - cfg.FPN.RPN_MIN_LEVEL),) if lvl else cfg.RPN.SIZES blobs[anchor_name] = get_anchors(spatial_scale, anchor_sizes) print('anchors {}'.format(blobs[anchor_name])) ret = core.CreateOperator( 'GenerateProposals', inputs, list(op.output), spatial_scale=spatial_scale, pre_nms_topN=rpn_pre_nms_topN, post_nms_topN=rpn_post_nms_topN, nms_thresh=rpn_nms_thresh, min_size=rpn_min_size, correct_transform_coords=True, ) return ret, anchor_name
def convert_gen_proposals( op, blobs, rpn_pre_nms_topN, rpn_post_nms_topN, rpn_nms_thres, rpn_min_size, ): print('Converting GenerateProposals Python -> C++:\n{}'.format(op)) assert op.name.startswith( "GenerateProposalsOp"), "Not valid GenerateProposalsOp" spatial_scale = mutils.get_op_arg_valf(op, "spatial_scale", None) assert spatial_scale is not None inputs = [x for x in op.input] anchor_name = "anchor" inputs.append(anchor_name) blobs[anchor_name] = get_anchors(spatial_scale) print('anchors {}'.format(blobs[anchor_name])) ret = core.CreateOperator( "GenerateProposals", inputs, list(op.output), spatial_scale=spatial_scale, pre_nms_topN=rpn_pre_nms_topN, post_nms_topN=rpn_post_nms_topN, nms_thres=rpn_nms_thres, min_size=rpn_min_size, correct_transform_coords=True, ) return ret, anchor_name
def convert_gen_proposals( op, blobs, rpn_pre_nms_topN, rpn_post_nms_topN, rpn_nms_thres, rpn_min_size, ): print('Converting GenerateProposals Python -> C++:\n{}'.format(op)) assert op.name.startswith("GenerateProposalsOp"), "Not valid GenerateProposalsOp" spatial_scale = mutils.get_op_arg_valf(op, "spatial_scale", None) assert spatial_scale is not None inputs = [x for x in op.input] anchor_name = "anchor" inputs.append(anchor_name) blobs[anchor_name] = get_anchors(spatial_scale) print('anchors {}'.format(blobs[anchor_name])) ret = core.CreateOperator( "GenerateProposals", inputs, list(op.output), spatial_scale=spatial_scale, pre_nms_topN=rpn_pre_nms_topN, post_nms_topN=rpn_post_nms_topN, nms_thres=rpn_nms_thres, min_size=rpn_min_size, correct_transform_coords=True, ) return ret, anchor_name