def __init__(self, dim_in, spatial_scale): super().__init__() self.dim_in = dim_in self.dim_out = dim_in if cfg.RPN.OUT_DIM_AS_IN_DIM else cfg.RPN.OUT_DIM anchors = generate_anchors(stride=1. / spatial_scale, sizes=cfg.RPN.SIZES, aspect_ratios=cfg.RPN.ASPECT_RATIOS) num_anchors = anchors.shape[0] # RPN hidden representation self.RPN_conv = nn.Conv2d(self.dim_in, self.dim_out, 3, 1, 1) # Proposal classification scores self.n_score_out = num_anchors * 2 if cfg.RPN.CLS_ACTIVATION == 'softmax' \ else num_anchors self.RPN_cls_score = nn.Conv2d(self.dim_out, self.n_score_out, 1, 1, 0) # Proposal bbox regression deltas self.RPN_bbox_pred = nn.Conv2d(self.dim_out, num_anchors * 4, 1, 1, 0) self.RPN_GenerateProposals = GenerateProposalsOp( anchors, spatial_scale) self.RPN_GenerateProposalLabels = GenerateProposalLabelsOp() self._init_weights()
def __init__(self, dim_in, spatial_scale): super().__init__() self.dim_in = dim_in self.dim_out = dim_in if cfg.RPN.OUT_DIM_AS_IN_DIM else cfg.RPN.OUT_DIM self.RPN_GenerateProposalLabels = GenerateProposalLabelsOp()