CRB-active-3Ddet icon indicating copy to clipboard operation
CRB-active-3Ddet copied to clipboard

ONE-STAGE detector cfg

Open miaozhang97bosch opened this issue 1 year ago • 1 comments

Thanks for sharing such an excellent work. Currently, there is only the cfg for PVRCNN. Is it possible to also share the configuration of One-stage methods? I tried to configure one, but it seems the current version of crb_sampling.py is not directly appliacable to the one-stage methods since it have a different loss function structure. Thx!

miaozhang97bosch avatar Jan 19 '24 10:01 miaozhang97bosch

Hi,

You can try this config file but you have to carefully modify some code in the detectors/models to pass the required variables to queried strategies. Also, we use secondiou which is an extended one-stage model because CRB require dropout layer which is already included in the secondiou config file :

CLASS_NAMES: ['car','truck', 'construction_vehicle', 'bus', 'trailer',
              'barrier', 'motorcycle', 'bicycle', 'pedestrian', 'traffic_cone']

DATA_CONFIG:
    _BASE_CONFIG_: cfgs/dataset_configs/nuscenes_dataset.yaml

MODEL:
    NAME: SECONDNetIoU

    VFE:
        NAME: MeanVFE

    BACKBONE_3D:
        NAME: VoxelBackBone8x

    MAP_TO_BEV:
        NAME: HeightCompression
        NUM_BEV_FEATURES: 256

    BACKBONE_2D:
        NAME: BaseBEVBackbone

        LAYER_NUMS: [5, 5]
        LAYER_STRIDES: [1, 2]
        NUM_FILTERS: [128, 256]
        UPSAMPLE_STRIDES: [1, 2]
        NUM_UPSAMPLE_FILTERS: [256, 256]

    DENSE_HEAD:
        NAME: AnchorHeadMulti
        CLASS_AGNOSTIC: False

        DIR_OFFSET: 0.78539
        DIR_LIMIT_OFFSET: 0.0
        NUM_DIR_BINS: 2

        USE_MULTIHEAD: True
        SEPARATE_MULTIHEAD: False
        ANCHOR_GENERATOR_CONFIG: [
            {
                'class_name': car,
                'anchor_sizes': [[4.63, 1.97, 1.74]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-0.95],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.6,
                'unmatched_threshold': 0.45
            },
            {
                'class_name': truck,
                'anchor_sizes': [[6.93, 2.51, 2.84]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-0.6],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.55,
                'unmatched_threshold': 0.4
            },
            {
                'class_name': construction_vehicle,
                'anchor_sizes': [[6.37, 2.85, 3.19]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-0.225],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.5,
                'unmatched_threshold': 0.35
            },
            {
                'class_name': bus,
                'anchor_sizes': [[10.5, 2.94, 3.47]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-0.085],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.55,
                'unmatched_threshold': 0.4
            },
            {
                'class_name': trailer,
                'anchor_sizes': [[12.29, 2.90, 3.87]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [0.115],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.5,
                'unmatched_threshold': 0.35
            },
            {
                'class_name': barrier,
                'anchor_sizes': [[0.50, 2.53, 0.98]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-1.33],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.55,
                'unmatched_threshold': 0.4
            },
            {
                'class_name': motorcycle,
                'anchor_sizes': [[2.11, 0.77, 1.47]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-1.085],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.5,
                'unmatched_threshold': 0.3
            },
            {
                'class_name': bicycle,
                'anchor_sizes': [[1.70, 0.60, 1.28]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-1.18],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.5,
                'unmatched_threshold': 0.35
            },
            {
                'class_name': pedestrian,
                'anchor_sizes': [[0.73, 0.67, 1.77]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-0.935],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.6,
                'unmatched_threshold': 0.4
            },
            {
                'class_name': traffic_cone,
                'anchor_sizes': [[0.41, 0.41, 1.07]],
                'anchor_rotations': [0, 1.57],
                'anchor_bottom_heights': [-1.285],
                'align_center': False,
                'feature_map_stride': 8,
                'matched_threshold': 0.6,
                'unmatched_threshold': 0.4
            },
        ]

        SHARED_CONV_NUM_FILTER: 64
        RPN_HEAD_CFGS: [
            {
                'HEAD_CLS_NAME': ['car'],
            },
            {
                'HEAD_CLS_NAME': ['truck', 'construction_vehicle'],
            },
            {
                'HEAD_CLS_NAME': ['bus', 'trailer'],
            },
            {
                'HEAD_CLS_NAME': ['barrier'],
            },
            {
                'HEAD_CLS_NAME': ['motorcycle', 'bicycle'],
            },
            {
                'HEAD_CLS_NAME': ['pedestrian', 'traffic_cone'],
            },
        ]

        SEPARATE_REG_CONFIG:
            NUM_MIDDLE_CONV: 1
            NUM_MIDDLE_FILTER: 64
            REG_LIST: ['reg:2', 'height:1', 'size:3', 'angle:2', 'velo:2']

        TARGET_ASSIGNER_CONFIG:
            NAME: AxisAlignedTargetAssigner
            POS_FRACTION: -1.0
            SAMPLE_SIZE: 512
            NORM_BY_NUM_EXAMPLES: False
            MATCH_HEIGHT: False
            BOX_CODER: ResidualCoder
            BOX_CODER_CONFIG: {
                'code_size': 9,
                'encode_angle_by_sincos': True
            }


        LOSS_CONFIG:
            REG_LOSS_TYPE: WeightedL1Loss
            LOSS_WEIGHTS: {
                'pos_cls_weight': 1.0,
                'neg_cls_weight': 2.0,
                'cls_weight': 1.0,
                'loc_weight': 0.25,
                'dir_weight': 0.2,
                'code_weights': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.2, 0.2]
            }

    ROI_HEAD:
        NAME: SECONDHead
        CLASS_AGNOSTIC: True
        SAMPLING_ROUND: 5
        SHARED_FC: [256, 256]
        IOU_FC: [256, 256]
        DP_RATIO: 0.3

        NMS_CONFIG:
            TRAIN:
                NMS_TYPE: nms_gpu
                MULTI_CLASSES_NMS: False
                NMS_PRE_MAXSIZE: 9000
                NMS_POST_MAXSIZE: 512
                NMS_THRESH: 0.8
            TEST:
                NMS_TYPE: nms_gpu
                MULTI_CLASSES_NMS: False
                NMS_PRE_MAXSIZE: 1024
                NMS_POST_MAXSIZE: 128
                NMS_THRESH: 0.7

        ROI_GRID_POOL:
            GRID_SIZE: 7
            IN_CHANNEL: 512
            DOWNSAMPLE_RATIO: 8

        TARGET_CONFIG:
            BOX_CODER: ResidualCoder
            ROI_PER_IMAGE: 128
            FG_RATIO: 0.5

            SAMPLE_ROI_BY_EACH_CLASS: True
            CLS_SCORE_TYPE: roi_iou

            CLS_FG_THRESH: 0.75
            CLS_BG_THRESH: 0.25
            CLS_BG_THRESH_LO: 0.1
            HARD_BG_RATIO: 0.8

            REG_FG_THRESH: 0.55

        LOSS_CONFIG:
            IOU_LOSS: BinaryCrossEntropy
            LOSS_WEIGHTS: {
                'rcnn_iou_weight': 1.0,
                'code_weights': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
            }

    POST_PROCESSING:
        RECALL_THRESH_LIST: [0.3, 0.5, 0.7]
        SCORE_THRESH: 0.1
        OUTPUT_RAW_SCORE: False

        EVAL_METRIC: kitti

        NMS_CONFIG:
            MULTI_CLASSES_NMS: True
            NMS_TYPE: nms_gpu
            NMS_THRESH: 0.2
            NMS_PRE_MAXSIZE: 1000
            NMS_POST_MAXSIZE: 83



OPTIMIZATION:
    BATCH_SIZE_PER_GPU: 4
    NUM_EPOCHS: 20

    OPTIMIZER: adam_onecycle
    LR: 0.003
    WEIGHT_DECAY: 0.01
    MOMENTUM: 0.9

    MOMS: [0.95, 0.85]
    PCT_START: 0.4
    DIV_FACTOR: 10
    DECAY_STEP_LIST: [35, 45]
    LR_DECAY: 0.1
    LR_CLIP: 0.0000001

    LR_WARMUP: False
    WARMUP_EPOCH: 1

    GRAD_NORM_CLIP: 10

ACTIVE_TRAIN:
    METHOD: greedy_boxbadge
    AGGREGATION: mean

    PRE_TRAIN_SAMPLE_NUMS: 1000
    PRE_TRAIN_EPOCH_NUMS: 40
    TRAIN_RESUME: True

    SELECT_NUMS: 1000
    SELECT_LABEL_EPOCH_INTERVAL: 40

    TOTAL_BUDGET_NUMS: 4000

    ACTIVE_CONFIG:
      K1: 3
      K2: 2

zhuoxiao-chen avatar Feb 28 '24 10:02 zhuoxiao-chen