示例#1
0
    def init_param(self, model_config):
        self.in_channels = model_config['din']
        self.post_nms_topN = model_config['post_nms_topN']
        self.pre_nms_topN = model_config['pre_nms_topN']
        self.nms_thresh = model_config['nms_thresh']
        self.use_score = model_config['use_score']
        self.rpn_batch_size = model_config['rpn_batch_size']
        self.use_focal_loss = model_config['use_focal_loss']

        # sampler
        # self.sampler = HardNegativeSampler(model_config['sampler_config'])
        # self.sampler = BalancedSampler(model_config['sampler_config'])
        self.sampler = DetectionSampler(model_config['sampler_config'])

        # anchor generator
        self.anchor_generator = AnchorGenerator(
            model_config['anchor_generator_config'])
        self.num_anchors = self.anchor_generator.num_anchors
        self.nc_bbox_out = 4 * self.num_anchors
        self.nc_score_out = self.num_anchors * 2

        # target assigner
        self.target_assigner = TargetAssigner(
            model_config['target_assigner_config'])

        # bbox coder
        self.bbox_coder = self.target_assigner.bbox_coder

        self.use_iou = model_config.get('use_iou')
    def init_param(self, model_config):
        classes = model_config['classes']
        self.classes = classes
        self.n_classes = len(classes)
        self.class_agnostic = model_config['class_agnostic']
        self.pooling_size = model_config['pooling_size']
        self.pooling_mode = model_config['pooling_mode']
        self.crop_resize_with_max_pool = model_config[
            'crop_resize_with_max_pool']
        self.truncated = model_config['truncated']

        self.use_focal_loss = model_config['use_focal_loss']
        self.subsample_twice = model_config['subsample_twice']
        self.rcnn_batch_size = model_config['rcnn_batch_size']

        # some submodule config
        self.feature_extractor_config = model_config[
            'feature_extractor_config']
        self.rpn_config = model_config['rpn_config']

        # assigner
        self.target_assigner = TargetAssigner(
            model_config['target_assigner_config'])

        # sampler
        self.sampler = BalancedSampler(model_config['sampler_config'])
示例#3
0
def build_target_assigner(target_assigner_config, bv_range, box_coder):
    """Builds a tensor dictionary based on the InputReader config.

    Args:
        input_reader_config: A input_reader_pb2.InputReader object.

    Returns:
        A tensor dict based on the input_reader_config.

    Raises:
        ValueError: On invalid input reader proto.
        ValueError: If no input paths are specified.
    """

    anchor_cfg = target_assigner_config.ANCHOR_GENERATORS
    anchor_generators = []
    for a_cfg in anchor_cfg:

        anchor_generator = build_anchor_generator(a_cfg)
        anchor_generators.append(anchor_generator)

    similarity_calc = build_similarity_calculator(
        target_assigner_config.REGION_SIMILARITY_CALCULATOR)
    positive_fraction = target_assigner_config.SAMPLE_POSITIVE_FRACTION
    if positive_fraction < 0:
        positive_fraction = None
    target_assigner = TargetAssigner(
        box_coder=box_coder,
        anchor_generators=anchor_generators,
        region_similarity_calculator=similarity_calc,
        positive_fraction=positive_fraction,
        sample_size=target_assigner_config.SAMPLE_SIZE)
    return target_assigner
示例#4
0
    def init_params(self, model_config):
        self.feature_extractor_config = model_config[
            'feature_extractor_config']
        self.multibox_cfg = model_config['multibox_cfg']

        self.target_assigner = TargetAssigner(
            model_config['target_assigner_config'])
示例#5
0
    def __init__(self, layer_config):
        super().__init__()
        # some parameters
        self.rpn_positive_weight = layer_config['rpn_positive_weight']
        self.rpn_negative_overlaps = layer_config['rpn_negative_overlaps']
        self.rpn_positive_overlaps = layer_config['rpn_positive_overlaps']
        self.rpn_batch_size = layer_config['rpn_batch_size']
        # subsample score and iou or subsample score only
        self.subsample_twice = layer_config['subsample_twice']
        self.subsample_type = layer_config['subsample_type']

        self.target_assigner = TargetAssigner()
        self.sampler = Sampler(self.subsample_type)
示例#6
0
    def init_param(self, model_config):

        self.feat_size = model_config['common_feat_size']
        self.batch_size = model_config['batch_size']
        self.sample_size = model_config['sample_size']
        self.pooling_size = model_config['pooling_size']
        self.n_classes = model_config['num_classes']
        self.use_focal_loss = model_config['use_focal_loss']
        self.feature_extractor_config = model_config[
            'feature_extractor_config']

        self.voxel_generator = VoxelGenerator(
            model_config['voxel_generator_config'])
        self.voxel_generator.init_voxels()

        self.integral_map_generator = IntegralMapGenerator()

        self.oft_target_assigner = OFTargetAssigner(
            model_config['target_assigner_config'])

        self.target_assigner = TargetAssigner(
            model_config['eval_target_assigner_config'])
        self.target_assigner.analyzer.append_gt = False

        self.sampler = DetectionSampler(model_config['sampler_config'])

        self.bbox_coder = self.oft_target_assigner.bbox_coder

        # find the most expensive operators
        self.profiler = Profiler()

        # self.multibin = model_config['multibin']
        self.num_bins = model_config['num_bins']

        self.reg_channels = 3 + 3 + self.num_bins * 4

        # score, pos, dim, ang
        self.rcnn_output_channels = self.n_classes + self.reg_channels

        self.rpn_output_channels = 2 + 3 + 3

        nms_deltas = model_config.get('nms_deltas')
        if nms_deltas is None:
            nms_deltas = 1
        self.nms_deltas = nms_deltas
示例#7
0
    def init_param(self, model_config):
        self.feature_extractor_config = model_config['feature_extractor_config']
        self.multibox_cfg = [3, 3, 3, 3, 3, 3]
        self.n_classes = len(model_config['classes'])
        self.sampler = DetectionSampler(model_config['sampler_config'])
        self.batch_size = model_config['batch_size']
        self.use_focal_loss = model_config['use_focal_loss']
        # self.multibox_cfg = model_config['multibox_config']

        self.target_assigner = TargetAssigner(
            model_config['target_assigner_config'])

        # import ipdb
        # ipdb.set_trace()
        self.anchor_generator = AnchorGenerator(
            model_config['anchor_generator_config'])

        self.bbox_coder = self.target_assigner.bbox_coder