Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ONE-STAGE detector cfg #18

Open
miaozhang97bosch opened this issue Jan 19, 2024 · 1 comment
Open

ONE-STAGE detector cfg #18

miaozhang97bosch opened this issue Jan 19, 2024 · 1 comment

Comments

@miaozhang97bosch
Copy link

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!

@zhuoxiao-chen
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants