def __init__(self, num_classes, use_xyz=True, mode='TRAIN'): super().__init__() assert cfg.RPN.ENABLED or cfg.RCNN.ENABLED if cfg.PSP.ENABLED: self.psp = PSPNet(n_classes=1) # self.psp = PSPNet() if cfg.RPN.ENABLED: self.rpn = RPN(use_xyz=use_xyz, mode=mode) # merge down the xyz features and image features from PSPNet feature_channel = cfg.RPN.FP_MLPS[0][-1] self.merge_down = pt_utils.SharedMLP( [feature_channel * 2, feature_channel], bn=cfg.RPN.USE_BN) # self.merge_down = pt_utils.SharedMLP([feature_channel + 512, feature_channel], bn=cfg.RPN.USE_BN) if cfg.RCNN.ENABLED: rcnn_input_channels = 128 # channels of 128 merged rpn and PSPnet feature if cfg.RCNN.BACKBONE == 'pointnet': self.rcnn_net = RCNNNet(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'pointsift': pass else: raise NotImplementedError
def __init__(self, num_classes, use_xyz=True, mode='TRAIN'): super().__init__() assert cfg.RPN.ENABLED or cfg.RCNN.ENABLED if cfg.RPN.ENABLED: self.rpn = RPN(use_xyz=use_xyz, mode=mode) if cfg.RCNN.ENABLED: rcnn_input_channels = 128 # channels of rpn features if cfg.RCNN.BACKBONE == 'pointnet': self.rcnn_net = RCNNNet(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'pointsift': pass else: raise NotImplementedError
def __init__(self, num_classes, num_point=512, use_xyz=True, mode='TRAIN', old_model=False): super().__init__() self.mode = mode assert cfg.RPN.ENABLED or cfg.RCNN.ENABLED or cfg.IOUN.ENABLED if cfg.RPN.ENABLED: self.rpn = RPN(use_xyz=use_xyz, mode=mode, old_model=old_model) if cfg.RCNN.ENABLED or cfg.IOUN.ENABLED: rcnn_input_channels = 128 # channels of rpn features x,y,z,r,mask #self.rcnn_net = RCNNNet(num_point=num_point, num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) self.rcnn_net = RCNNNet(num_point=num_point, num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz)
ans_dict[key] = [batch[k][key] for k in range(batch_size)] if isinstance(batch[0][key], int): ans_dict[key] = np.array(ans_dict[key], dtype=np.int32) elif isinstance(batch[0][key], float): ans_dict[key] = np.array(ans_dict[key], dtype=np.float32) input_data = ans_dict input_data['pts_input'] = torch.FloatTensor(input_data['pts_input']).cuda() input_data['pts_rect'] = torch.FloatTensor(input_data['pts_rect']).cuda() input_data['gt_boxes3d'] = torch.FloatTensor( input_data['gt_boxes3d']).cuda() #ipdb.set_trace() training = True output = {} rpn = RPN(use_xyz=True, mode=mode).cuda() rcnn_net = RCNNNet(num_classes=2, input_channels=128, use_xyz=True).cuda() rpn_output = rpn(input_data) """ rpn_cls:B,N=16384,1 rpn_reg:B,N,76 backbone_xyz:B,N,3 backbone_features:B,128,N """ output.update(rpn_output) with torch.no_grad(): rpn_cls, rpn_reg = rpn_output['rpn_cls'], rpn_output['rpn_reg'] backbone_xyz, backbone_features = rpn_output[ 'backbone_xyz'], rpn_output['backbone_features'] rpn_scores_raw = rpn_cls[:, :, 0]
def __init__(self, num_classes, use_xyz=True, mode='TRAIN'): super().__init__() assert cfg.RPN.ENABLED or cfg.RCNN.ENABLED if cfg.RPN.ENABLED: self.rpn = RPN(use_xyz=use_xyz, mode=mode) if cfg.RCNN.ENABLED: rcnn_input_channels = 128 # channels of rpn features if cfg.RCNN.BACKBONE == 'pointnet': self.rcnn_net = RCNNNet(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'pointsift': pass elif cfg.RCNN.BACKBONE == 'edgeconv': rcnn_input_channels = cfg.RCNN.GCN_CONFIG.FILTERS[-1] * 2 self.rcnn_net = GCNNet(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'rotnet': rcnn_input_channels = get_num_rot( cfg.RCNN.ROT_CONFIG.DEGREE_RES) self.rcnn_net = RotRCNN(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'deepgcn': # rcnn_input_channels = 256 self.rcnn_net = DenseRCNN(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'refine': # rcnn_input_channels = 256 self.rcnn_net = RefineRCNNNet( num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'deeprefine': # rcnn_input_channels = 256 self.rcnn_net = RefineDeepRCNNNet( num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'deepfeats': # rcnn_input_channels = 256 self.rcnn_net = DenseFeatRCNN( num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) elif cfg.RCNN.BACKBONE == 'deepfeatsrefine': # rcnn_input_channels = 256 self.rcnn_net = DenseFeatRefineRCNN( num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz) else: raise NotImplementedError if cfg.CGCN.ENABLED: self.cgcn_net = None print(sum(p.numel() for p in self.rcnn_net.parameters()))