def get_roi_feature(self, conv_fpn_feat, proposal): p = self.p rcnn_stride = p.stride roi_canonical_scale = p.roi_canonical_scale roi_canonical_level = p.roi_canonical_level group = mx.symbol.Custom( op_type="assign_layer_fpn", rois=proposal, rcnn_stride=rcnn_stride, roi_canonical_scale=roi_canonical_scale, roi_canonical_level=roi_canonical_level, name="assign_layer_fpn" ) proposal_fpn = dict() for i, stride in enumerate(rcnn_stride): proposal_fpn["stride%s" % stride] = group[i] if p.fp16: for stride in rcnn_stride: conv_fpn_feat["stride%s" % stride] = X.to_fp32( conv_fpn_feat["stride%s" % stride], name="fpn_stride%s_to_fp32" ) fpn_roi_feats = list() for stride in rcnn_stride: feat_lvl = conv_fpn_feat["stride%s" % stride] proposal_lvl = proposal_fpn["stride%s" % stride] roi_feat = X.roi_align( feat_lvl, rois=proposal_lvl, out_size=p.out_size, stride=stride, name="roi_align" ) roi_feat = X.reshape( data=roi_feat, shape=(-3, -2), name='roi_feat_reshape' ) fpn_roi_feats.append(roi_feat) roi_feat = X.add_n(*fpn_roi_feats) if p.fp16: roi_feat = X.to_fp16(roi_feat, name="roi_feat_to_fp16") return roi_feat
def get_roi_feature(self, rcnn_feat, proposal): p = self.p if p.fp16: rcnn_feat = X.to_fp32(rcnn_feat, "rcnn_feat_to_fp32") roi_feat = X.roi_align(rcnn_feat, rois=proposal, out_size=p.out_size, stride=p.stride, name="roi_align") if p.fp16: roi_feat = X.to_fp16(roi_feat, "roi_feat_to_fp16") roi_feat = X.reshape(roi_feat, (-3, -2)) return roi_feat
def get_roi_feature(self, conv_fpn_feat, proposal): p = self.p rcnn_stride = p.stride group = mx.symbol.Custom(rois=proposal, op_type='assign_layer_fpn') proposal_fpn = dict() proposal_fpn["stride4"] = group[1] proposal_fpn["stride8"] = group[2] proposal_fpn["stride16"] = group[3] proposal_fpn["stride32"] = group[4] if p.fp16: for stride in rcnn_stride: conv_fpn_feat["stride%s" % stride] = X.to_fp32( conv_fpn_feat["stride%s" % stride], name="fpn_stride%s_to_fp32") fpn_roi_feats = list() for stride in rcnn_stride: feat_lvl = conv_fpn_feat["stride%s" % stride] proposal_lvl = proposal_fpn["stride%s" % stride] roi_feat = X.roi_align(feat_lvl, rois=proposal_lvl, out_size=p.out_size, stride=stride, name="roi_align") roi_feat = X.reshape(data=roi_feat, shape=(-3, -2), name='roi_feat_reshape') fpn_roi_feats.append(roi_feat) roi_feat = X.add_n(*fpn_roi_feats) if p.fp16: roi_feat = X.to_fp16(roi_feat, name="roi_feat_to_fp16") return roi_feat