Skip to content

Latest commit

 

History

History
126 lines (100 loc) · 7.71 KB

File metadata and controls

126 lines (100 loc) · 7.71 KB

Center-based 3D Object Detection and Tracking

Introduction

We implement CenterPoint and provide the result and checkpoints on nuScenes dataset.

We follow the below style to name config files. Contributors are advised to follow the same style. {xxx} is required field and [yyy] is optional.

{model}: model type like centerpoint.

{model setting}: voxel size and voxel type like 01voxel, 02pillar.

{backbone}: backbone type like second.

{neck}: neck type like secfpn.

[dcn]: Whether to use deformable convolution.

[circle]: Whether to use circular nms.

[batch_per_gpu x gpu]: GPUs and samples per GPU, 4x8 is used by default.

{schedule}: training schedule, options are 1x, 2x, 20e, etc. 1x and 2x means 12 epochs and 24 epochs respectively. 20e is adopted in cascade models, which denotes 20 epochs. For 1x/2x, initial learning rate decays by a factor of 10 at the 8/16th and 11/22th epochs. For 20e, initial learning rate decays by a factor of 10 at the 16th and 19th epochs.

{dataset}: dataset like nus-3d, kitti-3d, lyft-3d, scannet-3d, sunrgbd-3d. We also indicate the number of classes we are using if there exist multiple settings, e.g., kitti-3d-3class and kitti-3d-car means training on KITTI dataset with 3 classes and single class, respectively.

@article{yin2021center,
  title={Center-based 3D Object Detection and Tracking},
  author={Yin, Tianwei and Zhou, Xingyi and Kr{\"a}henb{\"u}hl, Philipp},
  journal={CVPR},
  year={2021},
}

Usage

Test time augmentation

We have supported double-flip and scale augmentation during test time. To use test time augmentation, users need to modify the test_pipeline and test_cfg in the config. For example, we change centerpoint_0075voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py to the following.

_base_ = './centerpoint_0075voxel_second_secfpn_circlenms' \
         '_4x8_cyclic_20e_nus.py'

model = dict(
    test_cfg=dict(
        pts=dict(
            use_rotate_nms=True,
            max_num=83)))

point_cloud_range = [-54, -54, -5.0, 54, 54, 3.0]
file_client_args = dict(backend='disk')
class_names = [
    'car', 'truck', 'construction_vehicle', 'bus', 'trailer', 'barrier',
    'motorcycle', 'bicycle', 'pedestrian', 'traffic_cone'
]

test_pipeline = [
    dict(
        type='LoadPointsFromFile',
        load_dim=5,
        use_dim=5,
        file_client_args=file_client_args),
    dict(
        type='LoadPointsFromMultiSweeps',
        sweeps_num=9,
        use_dim=[0, 1, 2, 3, 4],
        file_client_args=file_client_args,
        pad_empty_sweeps=True,
        remove_close=True),
    dict(
        type='MultiScaleFlipAug3D',
        img_scale=(1333, 800),
        pts_scale_ratio=[0.95, 1.0, 1.05],
        flip=True,
        pcd_horizontal_flip=True,
        pcd_vertical_flip=True,
        transforms=[
            dict(
                type='GlobalRotScaleTrans',
                rot_range=[0, 0],
                scale_ratio_range=[1., 1.],
                translation_std=[0, 0, 0]),
            dict(type='RandomFlip3D', sync_2d=False),
            dict(
                type='PointsRangeFilter', point_cloud_range=point_cloud_range),
            dict(
                type='DefaultFormatBundle3D',
                class_names=class_names,
                with_label=False),
            dict(type='Collect3D', keys=['points'])
        ])
]

data = dict(
    val=dict(pipeline=test_pipeline), test=dict(pipeline=test_pipeline))

Results

CenterPoint

Backbone Voxel type (voxel size) Dcn Circular nms Mem (GB) Inf time (fps) mAP NDS Download
SECFPN voxel (0.1) 4.9 56.19 64.43 model | log
above w/o circle nms voxel (0.1) 56.56 64.46
SECFPN voxel (0.1) 5.2 56.34 64.81 model | log
above w/o circle nms voxel (0.1) 56.60 64.90
SECFPN voxel (0.075) 7.8 57.34 65.23 model | log
above w/o circle nms voxel (0.075) 57.63 65.39
SECFPN voxel (0.075) 8.5 57.27 65.58 model | log
above w/o circle nms voxel (0.075) 57.43 65.63
above w/ double flip voxel (0.075) 59.73 67.39
above w/ scale tta voxel (0.075) 60.43 67.65
above w/ circle nms w/o scale tta voxel (0.075) 59.52 67.24
SECFPN pillar (0.2) 4.4 49.07 59.66 model | log
above w/o circle nms pillar (0.2) 49.12 59.66
SECFPN pillar (0.2) 4.6 48.8 59.67 model | log
above w/ circle nms pillar (0.2) 48.79 59.65