open-mmlab / mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
https://mmdetection3d.readthedocs.io/en/latest/
Apache License 2.0
5.35k stars 1.55k forks source link

test MVXNet but got too low mAP #2425

Open ykqyzzs opened 1 year ago

ykqyzzs commented 1 year ago

Thanks for your error report and we appreciate it a lot.

Checklist

  1. I have searched related issues but cannot get the expected help.
  2. The bug has not been fixed in the latest version.

Describe the bug Hi, I tested some multimodal model recently, tried to test the mAP of MVXNet on KITTI but got too low mAP after 10 epoch(load the checkpoint by http backend from path provided in config file as pretrained model, chage lr to 0.0001. Actually after 60 epochs still have no improve...) :

----------- AP40 Results ------------

Pedestrian AP40@0.50, 0.50, 0.50: bbox AP40:0.3481, 0.4552, 0.3718 bev AP40:0.0165, 0.0198, 0.0207 3d AP40:0.0192, 0.0150, 0.0161 aos AP40:0.20, 0.26, 0.21 Pedestrian AP40@0.50, 0.25, 0.25: bbox AP40:0.3481, 0.4552, 0.3718 bev AP40:0.2352, 0.2570, 0.1928 3d AP40:0.2070, 0.1641, 0.1738 aos AP40:0.20, 0.26, 0.21 Cyclist AP40@0.50, 0.50, 0.50: bbox AP40:0.0083, 0.0115, 0.0115 bev AP40:0.0000, 0.0000, 0.0000 3d AP40:0.0000, 0.0000, 0.0000 aos AP40:0.00, 0.00, 0.00 Cyclist AP40@0.50, 0.25, 0.25: bbox AP40:0.0083, 0.0115, 0.0115 bev AP40:0.0052, 0.0089, 0.0089 3d AP40:0.0000, 0.0067, 0.0067 aos AP40:0.00, 0.00, 0.00 Car AP40@0.70, 0.70, 0.70: bbox AP40:0.1132, 0.0963, 0.1418 bev AP40:0.0178, 0.0181, 0.0227 3d AP40:0.0126, 0.0098, 0.0109 aos AP40:0.08, 0.06, 0.08 Car AP40@0.70, 0.50, 0.50: bbox AP40:0.1132, 0.0963, 0.1418 bev AP40:0.2990, 0.1687, 0.1875 3d AP40:0.2177, 0.1190, 0.1433 aos AP40:0.08, 0.06, 0.08

Overall AP40@easy, moderate, hard: bbox AP40:0.1565, 0.1877, 0.1750 bev AP40:0.0114, 0.0126, 0.0145 3d AP40:0.0106, 0.0083, 0.0090 aos AP40:0.09, 0.11, 0.10

I noticed that running log shows: The model and loaded state dict do not match exactly: unexpected key in source state_dict: img_rpn_head.rpn_conv.weight, img_rpn_head.rpn_conv.bias, img_rpn_head.rpn_cls.weight, img_rpn_head.rpn_cls.bias, img_rpn_head.rpn_reg.weight, img_rpn_head.rpn_reg.bias, img_bbox_head.fc_cls.weight, img_bbox_head.fc_cls.bias, img_bbox_head.fc_reg.weight, img_bbox_head.fc_reg.bias, img_bbox_head.shared_fcs.0.weight, img_bbox_head.shared_fcs.0.bias, img_bbox_head.shared_fcs.1.weight, img_bbox_head.shared_fcs.1.bias

missing keys in source state_dict: pts_voxel_encoder.vfe_layers.0.0.weight, ......

In addition, if I annotate the code that loads pretrained weights and retrain it, I also got similar results after 40 epochs. I don't know if it's the reason caused my situation. could you please give me some advices?

Reproduction

  1. What command or script did you run?
./tools/dist_train.sh configs/mvxnet/mvxnet_fpn_dv_second_secfpn_8xb2-80e_kitti-3d-3class.py 2
  1. Did you make any modifications on the code or config? Did you understand what you have modified? I haven't modify the code, I have modified the max_epochs and eval interval in configs/base/default_runtime.py

  2. What dataset did you use? Official KITTI datasets.

Environment

  1. Please run python mmdet3d/utils/collect_env.py to collect necessary environment information and paste it here.
sys.platform: linux
Python: 3.8.16 (default, Mar  2 2023, 03:21:46) [GCC 11.2.0]
CUDA available: True
numpy_random_seed: 2147483648
GPU 0,1,2,3,4,5,6,7: NVIDIA GeForce RTX 2080 Ti
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 11.3, V11.3.58
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.10.1
PyTorch compiling details: PyTorch built with:
  - GCC 7.3
  - C++ Version: 201402
  - Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - LAPACK is enabled (usually provided by MKL)
  - NNPACK is enabled
  - CPU capability usage: AVX512
  - CUDA Runtime 11.3
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_37,code=compute_37
  - CuDNN 8.2
  - Magma 2.5.2
  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, 

TorchVision: 0.11.2
OpenCV: 4.7.0
MMEngine: 0.7.2
MMDetection: 3.0.0
MMDetection3D: 1.1.0rc3+341ff99
spconv2.0: True

Error traceback the running log was:

/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/torch/distributed/launch.py:178: FutureWarning: The module torch.distributed.launch is deprecated
and will be removed in future. Use torchrun.
Note that --use_env is set by default in torchrun.
If your script expects `--local_rank` argument to be set, please
change it to read from `os.environ['LOCAL_RANK']` instead. See 
https://pytorch.org/docs/stable/distributed.html#launch-utility for 
further instructions

  warnings.warn(
WARNING:torch.distributed.run:
*****************************************
Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. 
*****************************************
/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/mmengine/utils/dl_utils/setup_env.py:56: UserWarning: Setting MKL_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
  warnings.warn(
/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/mmengine/utils/dl_utils/setup_env.py:56: UserWarning: Setting MKL_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
  warnings.warn(
04/11 08:34:46 - mmengine - INFO - 
------------------------------------------------------------
System environment:
    sys.platform: linux
    Python: 3.8.16 (default, Mar  2 2023, 03:21:46) [GCC 11.2.0]
    CUDA available: True
    numpy_random_seed: 686142792
    GPU 0,1: NVIDIA GeForce RTX 2080 Ti
    CUDA_HOME: /usr/local/cuda
    NVCC: Cuda compilation tools, release 11.3, V11.3.58
    GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
    PyTorch: 1.10.1
    PyTorch compiling details: PyTorch built with:
  - GCC 7.3
  - C++ Version: 201402
  - Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - LAPACK is enabled (usually provided by MKL)
  - NNPACK is enabled
  - CPU capability usage: AVX512
  - CUDA Runtime 11.3
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_37,code=compute_37
  - CuDNN 8.2
  - Magma 2.5.2
  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, 

    TorchVision: 0.11.2
    OpenCV: 4.7.0
    MMEngine: 0.7.2

Runtime environment:
    cudnn_benchmark: False
    mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}
    dist_cfg: {'backend': 'nccl'}
    seed: None
    Distributed launcher: pytorch
    Distributed training: True
    GPU number: 2
------------------------------------------------------------

04/11 08:34:48 - mmengine - INFO - Config:
lr = 0.0001
optim_wrapper = dict(
    type='OptimWrapper',
    optimizer=dict(
        type='AdamW', lr=0.0001, weight_decay=0.01, betas=(0.95, 0.99)),
    clip_grad=dict(max_norm=35, norm_type=2))
param_scheduler = [
    dict(type='LinearLR', start_factor=0.1, by_epoch=False, begin=0, end=1000),
    dict(
        type='CosineAnnealingLR',
        begin=0,
        T_max=40,
        end=40,
        by_epoch=True,
        eta_min=1e-05)
]
train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=12, val_interval=4)
val_cfg = dict(type='ValLoop')
test_cfg = dict(type='TestLoop')
auto_scale_lr = dict(enable=False, base_batch_size=16)
default_scope = 'mmdet3d'
default_hooks = dict(
    timer=dict(type='IterTimerHook'),
    logger=dict(type='LoggerHook', interval=50),
    param_scheduler=dict(type='ParamSchedulerHook'),
    checkpoint=dict(type='CheckpointHook', interval=-1),
    sampler_seed=dict(type='DistSamplerSeedHook'),
    visualization=dict(type='Det3DVisualizationHook'))
env_cfg = dict(
    cudnn_benchmark=False,
    mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
    dist_cfg=dict(backend='nccl'))
log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
log_level = 'INFO'
load_from = 'https://download.openmmlab.com/mmdetection3d/pretrain_models/mvx_faster_rcnn_detectron2-caffe_20e_coco-pretrain_gt-sample_kitti-3-class_moderate-79.3_20200207-a4a6a3c7.pth'
resume = False
voxel_size = [0.05, 0.05, 0.1]
point_cloud_range = [0, -40, -3, 70.4, 40, 1]
model = dict(
    type='DynamicMVXFasterRCNN',
    data_preprocessor=dict(
        type='Det3DDataPreprocessor',
        voxel=True,
        voxel_type='dynamic',
        voxel_layer=dict(
            max_num_points=-1,
            point_cloud_range=[0, -40, -3, 70.4, 40, 1],
            voxel_size=[0.05, 0.05, 0.1],
            max_voxels=(-1, -1)),
        mean=[102.9801, 115.9465, 122.7717],
        std=[1.0, 1.0, 1.0],
        bgr_to_rgb=False,
        pad_size_divisor=32),
    img_backbone=dict(
        type='mmdet.ResNet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        norm_cfg=dict(type='BN', requires_grad=False),
        norm_eval=True,
        style='caffe'),
    img_neck=dict(
        type='mmdet.FPN',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        num_outs=5),
    pts_voxel_encoder=dict(
        type='DynamicVFE',
        in_channels=4,
        feat_channels=[64, 64],
        with_distance=False,
        voxel_size=[0.05, 0.05, 0.1],
        with_cluster_center=True,
        with_voxel_center=True,
        point_cloud_range=[0, -40, -3, 70.4, 40, 1],
        fusion_layer=dict(
            type='PointFusion',
            img_channels=256,
            pts_channels=64,
            mid_channels=128,
            out_channels=128,
            img_levels=[0, 1, 2, 3, 4],
            align_corners=False,
            activate_out=True,
            fuse_out=False)),
    pts_middle_encoder=dict(
        type='SparseEncoder',
        in_channels=128,
        sparse_shape=[41, 1600, 1408],
        order=('conv', 'norm', 'act')),
    pts_backbone=dict(
        type='SECOND',
        in_channels=256,
        layer_nums=[5, 5],
        layer_strides=[1, 2],
        out_channels=[128, 256]),
    pts_neck=dict(
        type='SECONDFPN',
        in_channels=[128, 256],
        upsample_strides=[1, 2],
        out_channels=[256, 256]),
    pts_bbox_head=dict(
        type='Anchor3DHead',
        num_classes=3,
        in_channels=512,
        feat_channels=512,
        use_direction_classifier=True,
        anchor_generator=dict(
            type='Anchor3DRangeGenerator',
            ranges=[[0, -40.0, -0.6, 70.4, 40.0, -0.6],
                    [0, -40.0, -0.6, 70.4, 40.0, -0.6],
                    [0, -40.0, -1.78, 70.4, 40.0, -1.78]],
            sizes=[[0.8, 0.6, 1.73], [1.76, 0.6, 1.73], [3.9, 1.6, 1.56]],
            rotations=[0, 1.57],
            reshape_out=False),
        assigner_per_size=True,
        diff_rad_by_sin=True,
        assign_per_class=True,
        bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder'),
        loss_cls=dict(
            type='mmdet.FocalLoss',
            use_sigmoid=True,
            gamma=2.0,
            alpha=0.25,
            loss_weight=1.0),
        loss_bbox=dict(
            type='mmdet.SmoothL1Loss',
            beta=0.1111111111111111,
            loss_weight=2.0),
        loss_dir=dict(
            type='mmdet.CrossEntropyLoss', use_sigmoid=False,
            loss_weight=0.2)),
    train_cfg=dict(
        pts=dict(
            assigner=[
                dict(
                    type='Max3DIoUAssigner',
                    iou_calculator=dict(type='BboxOverlapsNearest3D'),
                    pos_iou_thr=0.35,
                    neg_iou_thr=0.2,
                    min_pos_iou=0.2,
                    ignore_iof_thr=-1),
                dict(
                    type='Max3DIoUAssigner',
                    iou_calculator=dict(type='BboxOverlapsNearest3D'),
                    pos_iou_thr=0.35,
                    neg_iou_thr=0.2,
                    min_pos_iou=0.2,
                    ignore_iof_thr=-1),
                dict(
                    type='Max3DIoUAssigner',
                    iou_calculator=dict(type='BboxOverlapsNearest3D'),
                    pos_iou_thr=0.6,
                    neg_iou_thr=0.45,
                    min_pos_iou=0.45,
                    ignore_iof_thr=-1)
            ],
            allowed_border=0,
            pos_weight=-1,
            debug=False)),
    test_cfg=dict(
        pts=dict(
            use_rotate_nms=True,
            nms_across_levels=False,
            nms_thr=0.01,
            score_thr=0.1,
            min_bbox_size=0,
            nms_pre=100,
            max_num=50)))
dataset_type = 'KittiDataset'
data_root = 'data/kitti/'
class_names = ['Pedestrian', 'Cyclist', 'Car']
metainfo = dict(classes=['Pedestrian', 'Cyclist', 'Car'])
input_modality = dict(use_lidar=True, use_camera=True)
train_pipeline = [
    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),
    dict(
        type='RandomResize', scale=[(640, 192), (2560, 768)], keep_ratio=True),
    dict(
        type='GlobalRotScaleTrans',
        rot_range=[-0.78539816, 0.78539816],
        scale_ratio_range=[0.95, 1.05],
        translation_std=[0.2, 0.2, 0.2]),
    dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),
    dict(
        type='PointsRangeFilter', point_cloud_range=[0, -40, -3, 70.4, 40, 1]),
    dict(
        type='ObjectRangeFilter', point_cloud_range=[0, -40, -3, 70.4, 40, 1]),
    dict(type='PointShuffle'),
    dict(
        type='Pack3DDetInputs',
        keys=[
            'points', 'img', 'gt_bboxes_3d', 'gt_labels_3d', 'gt_bboxes',
            'gt_labels'
        ])
]
test_pipeline = [
    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),
    dict(type='LoadImageFromFile'),
    dict(
        type='MultiScaleFlipAug3D',
        img_scale=(1280, 384),
        pts_scale_ratio=1,
        flip=False,
        transforms=[
            dict(type='Resize', scale=0, keep_ratio=True),
            dict(
                type='GlobalRotScaleTrans',
                rot_range=[0, 0],
                scale_ratio_range=[1.0, 1.0],
                translation_std=[0, 0, 0]),
            dict(type='RandomFlip3D'),
            dict(
                type='PointsRangeFilter',
                point_cloud_range=[0, -40, -3, 70.4, 40, 1])
        ]),
    dict(type='Pack3DDetInputs', keys=['points', 'img'])
]
modality = dict(use_lidar=True, use_camera=True)
train_dataloader = dict(
    batch_size=1,
    num_workers=1,
    sampler=dict(type='DefaultSampler', shuffle=True),
    dataset=dict(
        type='RepeatDataset',
        times=2,
        dataset=dict(
            type='KittiDataset',
            data_root='data/kitti/',
            modality=dict(use_lidar=True, use_camera=True),
            ann_file='kitti_infos_train.pkl',
            data_prefix=dict(
                pts='training/velodyne_reduced', img='training/image_2'),
            pipeline=[
                dict(
                    type='LoadPointsFromFile',
                    coord_type='LIDAR',
                    load_dim=4,
                    use_dim=4),
                dict(type='LoadImageFromFile'),
                dict(
                    type='LoadAnnotations3D',
                    with_bbox_3d=True,
                    with_label_3d=True),
                dict(
                    type='RandomResize',
                    scale=[(640, 192), (2560, 768)],
                    keep_ratio=True),
                dict(
                    type='GlobalRotScaleTrans',
                    rot_range=[-0.78539816, 0.78539816],
                    scale_ratio_range=[0.95, 1.05],
                    translation_std=[0.2, 0.2, 0.2]),
                dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),
                dict(
                    type='PointsRangeFilter',
                    point_cloud_range=[0, -40, -3, 70.4, 40, 1]),
                dict(
                    type='ObjectRangeFilter',
                    point_cloud_range=[0, -40, -3, 70.4, 40, 1]),
                dict(type='PointShuffle'),
                dict(
                    type='Pack3DDetInputs',
                    keys=[
                        'points', 'img', 'gt_bboxes_3d', 'gt_labels_3d',
                        'gt_bboxes', 'gt_labels'
                    ])
            ],
            filter_empty_gt=False,
            metainfo=dict(classes=['Pedestrian', 'Cyclist', 'Car']),
            box_type_3d='LiDAR')))
val_dataloader = dict(
    batch_size=1,
    num_workers=1,
    sampler=dict(type='DefaultSampler', shuffle=False),
    dataset=dict(
        type='KittiDataset',
        data_root='data/kitti/',
        modality=dict(use_lidar=True, use_camera=True),
        ann_file='kitti_infos_val.pkl',
        data_prefix=dict(
            pts='training/velodyne_reduced', img='training/image_2'),
        pipeline=[
            dict(
                type='LoadPointsFromFile',
                coord_type='LIDAR',
                load_dim=4,
                use_dim=4),
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug3D',
                img_scale=(1280, 384),
                pts_scale_ratio=1,
                flip=False,
                transforms=[
                    dict(type='Resize', scale=0, keep_ratio=True),
                    dict(
                        type='GlobalRotScaleTrans',
                        rot_range=[0, 0],
                        scale_ratio_range=[1.0, 1.0],
                        translation_std=[0, 0, 0]),
                    dict(type='RandomFlip3D'),
                    dict(
                        type='PointsRangeFilter',
                        point_cloud_range=[0, -40, -3, 70.4, 40, 1])
                ]),
            dict(type='Pack3DDetInputs', keys=['points', 'img'])
        ],
        metainfo=dict(classes=['Pedestrian', 'Cyclist', 'Car']),
        test_mode=True,
        box_type_3d='LiDAR'))
test_dataloader = dict(
    batch_size=1,
    num_workers=1,
    sampler=dict(type='DefaultSampler', shuffle=False),
    dataset=dict(
        type='KittiDataset',
        data_root='data/kitti/',
        ann_file='kitti_infos_val.pkl',
        modality=dict(use_lidar=True, use_camera=True),
        data_prefix=dict(
            pts='training/velodyne_reduced', img='training/image_2'),
        pipeline=[
            dict(
                type='LoadPointsFromFile',
                coord_type='LIDAR',
                load_dim=4,
                use_dim=4),
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug3D',
                img_scale=(1280, 384),
                pts_scale_ratio=1,
                flip=False,
                transforms=[
                    dict(type='Resize', scale=0, keep_ratio=True),
                    dict(
                        type='GlobalRotScaleTrans',
                        rot_range=[0, 0],
                        scale_ratio_range=[1.0, 1.0],
                        translation_std=[0, 0, 0]),
                    dict(type='RandomFlip3D'),
                    dict(
                        type='PointsRangeFilter',
                        point_cloud_range=[0, -40, -3, 70.4, 40, 1])
                ]),
            dict(type='Pack3DDetInputs', keys=['points', 'img'])
        ],
        metainfo=dict(classes=['Pedestrian', 'Cyclist', 'Car']),
        test_mode=True,
        box_type_3d='LiDAR'))
val_evaluator = dict(
    type='KittiMetric', ann_file='data/kitti/kitti_infos_val.pkl')
test_evaluator = dict(
    type='KittiMetric', ann_file='data/kitti/kitti_infos_val.pkl')
launcher = 'pytorch'
work_dir = './work_dirs/mvxnet_fpn_dv_second_secfpn_8xb2-80e_kitti-3d-3class'

/home/yangkang/code/mmdetection3d/mmdet3d/models/dense_heads/anchor3d_head.py:92: UserWarning: dir_offset and dir_limit_offset will be depressed and be incorporated into box coder in the future
  warnings.warn(
/home/yangkang/code/mmdetection3d/mmdet3d/models/dense_heads/anchor3d_head.py:92: UserWarning: dir_offset and dir_limit_offset will be depressed and be incorporated into box coder in the future
  warnings.warn(
04/11 08:34:51 - mmengine - INFO - Hooks will be executed in the following order:
before_run:
(VERY_HIGH   ) RuntimeInfoHook                    
(BELOW_NORMAL) LoggerHook                         
 -------------------- 
before_train:
(VERY_HIGH   ) RuntimeInfoHook                    
(NORMAL      ) IterTimerHook                      
(VERY_LOW    ) CheckpointHook                     
 -------------------- 
before_train_epoch:
(VERY_HIGH   ) RuntimeInfoHook                    
(NORMAL      ) IterTimerHook                      
(NORMAL      ) DistSamplerSeedHook                
 -------------------- 
before_train_iter:
(VERY_HIGH   ) RuntimeInfoHook                    
(NORMAL      ) IterTimerHook                      
 -------------------- 
after_train_iter:
(VERY_HIGH   ) RuntimeInfoHook                    
(NORMAL      ) IterTimerHook                      
(BELOW_NORMAL) LoggerHook                         
(LOW         ) ParamSchedulerHook                 
(VERY_LOW    ) CheckpointHook                     
 -------------------- 
after_train_epoch:
(NORMAL      ) IterTimerHook                      
(LOW         ) ParamSchedulerHook                 
(VERY_LOW    ) CheckpointHook                     
 -------------------- 
before_val_epoch:
(NORMAL      ) IterTimerHook                      
 -------------------- 
before_val_iter:
(NORMAL      ) IterTimerHook                      
 -------------------- 
after_val_iter:
(NORMAL      ) IterTimerHook                      
(NORMAL      ) Det3DVisualizationHook             
(BELOW_NORMAL) LoggerHook                         
 -------------------- 
after_val_epoch:
(VERY_HIGH   ) RuntimeInfoHook                    
(NORMAL      ) IterTimerHook                      
(BELOW_NORMAL) LoggerHook                         
(LOW         ) ParamSchedulerHook                 
(VERY_LOW    ) CheckpointHook                     
 -------------------- 
after_train:
(VERY_LOW    ) CheckpointHook                     
 -------------------- 
before_test_epoch:
(NORMAL      ) IterTimerHook                      
 -------------------- 
before_test_iter:
(NORMAL      ) IterTimerHook                      
 -------------------- 
after_test_iter:
(NORMAL      ) IterTimerHook                      
(NORMAL      ) Det3DVisualizationHook             
(BELOW_NORMAL) LoggerHook                         
 -------------------- 
after_test_epoch:
(VERY_HIGH   ) RuntimeInfoHook                    
(NORMAL      ) IterTimerHook                      
(BELOW_NORMAL) LoggerHook                         
 -------------------- 
after_run:
(BELOW_NORMAL) LoggerHook                         
 -------------------- 
04/11 08:34:53 - mmengine - WARNING - "FileClient" will be deprecated in future. Please use io functions in https://mmengine.readthedocs.io/en/latest/api/fileio.html#file-io
04/11 08:34:53 - mmengine - WARNING - "HardDiskBackend" is the alias of "LocalBackend" and the former will be deprecated in future.
04/11 08:35:00 - mmengine - INFO - ------------------------------
04/11 08:35:00 - mmengine - INFO - The length of the dataset: 3712
04/11 08:35:00 - mmengine - INFO - The number of instances per category in the dataset:
+------------+--------+
| category   | number |
+------------+--------+
| Pedestrian | 2207   |
| Cyclist    | 734    |
| Car        | 14357  |
+------------+--------+
04/11 08:35:06 - mmengine - INFO - ------------------------------
04/11 08:35:06 - mmengine - INFO - The length of the dataset: 3769
04/11 08:35:06 - mmengine - INFO - The number of instances per category in the dataset:
+------------+--------+
| category   | number |
+------------+--------+
| Pedestrian | 2280   |
| Cyclist    | 893    |
| Car        | 14385  |
+------------+--------+
Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection3d/pretrain_models/mvx_faster_rcnn_detectron2-caffe_20e_coco-pretrain_gt-sample_kitti-3-class_moderate-79.3_20200207-a4a6a3c7.pth
Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection3d/pretrain_models/mvx_faster_rcnn_detectron2-caffe_20e_coco-pretrain_gt-sample_kitti-3-class_moderate-79.3_20200207-a4a6a3c7.pth
The model and loaded state dict do not match exactly

unexpected key in source state_dict: img_rpn_head.rpn_conv.weight, img_rpn_head.rpn_conv.bias, img_rpn_head.rpn_cls.weight, img_rpn_head.rpn_cls.bias, img_rpn_head.rpn_reg.weight, img_rpn_head.rpn_reg.bias, img_bbox_head.fc_cls.weight, img_bbox_head.fc_cls.bias, img_bbox_head.fc_reg.weight, img_bbox_head.fc_reg.bias, img_bbox_head.shared_fcs.0.weight, img_bbox_head.shared_fcs.0.bias, img_bbox_head.shared_fcs.1.weight, img_bbox_head.shared_fcs.1.bias

missing keys in source state_dict: pts_voxel_encoder.vfe_layers.0.0.weight, pts_voxel_encoder.vfe_layers.0.1.weight, pts_voxel_encoder.vfe_layers.0.1.bias, pts_voxel_encoder.vfe_layers.0.1.running_mean, pts_voxel_encoder.vfe_layers.0.1.running_var, pts_voxel_encoder.vfe_layers.1.0.weight, pts_voxel_encoder.vfe_layers.1.1.weight, pts_voxel_encoder.vfe_layers.1.1.bias, pts_voxel_encoder.vfe_layers.1.1.running_mean, pts_voxel_encoder.vfe_layers.1.1.running_var, pts_voxel_encoder.fusion_layer.lateral_convs.0.conv.weight, pts_voxel_encoder.fusion_layer.lateral_convs.0.conv.bias, pts_voxel_encoder.fusion_layer.lateral_convs.1.conv.weight, pts_voxel_encoder.fusion_layer.lateral_convs.1.conv.bias, pts_voxel_encoder.fusion_layer.lateral_convs.2.conv.weight, pts_voxel_encoder.fusion_layer.lateral_convs.2.conv.bias, pts_voxel_encoder.fusion_layer.lateral_convs.3.conv.weight, pts_voxel_encoder.fusion_layer.lateral_convs.3.conv.bias, pts_voxel_encoder.fusion_layer.lateral_convs.4.conv.weight, pts_voxel_encoder.fusion_layer.lateral_convs.4.conv.bias, pts_voxel_encoder.fusion_layer.img_transform.0.weight, pts_voxel_encoder.fusion_layer.img_transform.0.bias, pts_voxel_encoder.fusion_layer.img_transform.1.weight, pts_voxel_encoder.fusion_layer.img_transform.1.bias, pts_voxel_encoder.fusion_layer.img_transform.1.running_mean, pts_voxel_encoder.fusion_layer.img_transform.1.running_var, pts_voxel_encoder.fusion_layer.pts_transform.0.weight, pts_voxel_encoder.fusion_layer.pts_transform.0.bias, pts_voxel_encoder.fusion_layer.pts_transform.1.weight, pts_voxel_encoder.fusion_layer.pts_transform.1.bias, pts_voxel_encoder.fusion_layer.pts_transform.1.running_mean, pts_voxel_encoder.fusion_layer.pts_transform.1.running_var, pts_middle_encoder.conv_input.0.weight, pts_middle_encoder.conv_input.1.weight, pts_middle_encoder.conv_input.1.bias, pts_middle_encoder.conv_input.1.running_mean, pts_middle_encoder.conv_input.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer1.0.0.weight, pts_middle_encoder.encoder_layers.encoder_layer1.0.1.weight, pts_middle_encoder.encoder_layers.encoder_layer1.0.1.bias, pts_middle_encoder.encoder_layers.encoder_layer1.0.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer1.0.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer2.0.0.weight, pts_middle_encoder.encoder_layers.encoder_layer2.0.1.weight, pts_middle_encoder.encoder_layers.encoder_layer2.0.1.bias, pts_middle_encoder.encoder_layers.encoder_layer2.0.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer2.0.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer2.1.0.weight, pts_middle_encoder.encoder_layers.encoder_layer2.1.1.weight, pts_middle_encoder.encoder_layers.encoder_layer2.1.1.bias, pts_middle_encoder.encoder_layers.encoder_layer2.1.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer2.1.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer2.2.0.weight, pts_middle_encoder.encoder_layers.encoder_layer2.2.1.weight, pts_middle_encoder.encoder_layers.encoder_layer2.2.1.bias, pts_middle_encoder.encoder_layers.encoder_layer2.2.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer2.2.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer3.0.0.weight, pts_middle_encoder.encoder_layers.encoder_layer3.0.1.weight, pts_middle_encoder.encoder_layers.encoder_layer3.0.1.bias, pts_middle_encoder.encoder_layers.encoder_layer3.0.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer3.0.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer3.1.0.weight, pts_middle_encoder.encoder_layers.encoder_layer3.1.1.weight, pts_middle_encoder.encoder_layers.encoder_layer3.1.1.bias, pts_middle_encoder.encoder_layers.encoder_layer3.1.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer3.1.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer3.2.0.weight, pts_middle_encoder.encoder_layers.encoder_layer3.2.1.weight, pts_middle_encoder.encoder_layers.encoder_layer3.2.1.bias, pts_middle_encoder.encoder_layers.encoder_layer3.2.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer3.2.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer4.0.0.weight, pts_middle_encoder.encoder_layers.encoder_layer4.0.1.weight, pts_middle_encoder.encoder_layers.encoder_layer4.0.1.bias, pts_middle_encoder.encoder_layers.encoder_layer4.0.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer4.0.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer4.1.0.weight, pts_middle_encoder.encoder_layers.encoder_layer4.1.1.weight, pts_middle_encoder.encoder_layers.encoder_layer4.1.1.bias, pts_middle_encoder.encoder_layers.encoder_layer4.1.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer4.1.1.running_var, pts_middle_encoder.encoder_layers.encoder_layer4.2.0.weight, pts_middle_encoder.encoder_layers.encoder_layer4.2.1.weight, pts_middle_encoder.encoder_layers.encoder_layer4.2.1.bias, pts_middle_encoder.encoder_layers.encoder_layer4.2.1.running_mean, pts_middle_encoder.encoder_layers.encoder_layer4.2.1.running_var, pts_middle_encoder.conv_out.0.weight, pts_middle_encoder.conv_out.1.weight, pts_middle_encoder.conv_out.1.bias, pts_middle_encoder.conv_out.1.running_mean, pts_middle_encoder.conv_out.1.running_var, pts_backbone.blocks.0.0.weight, pts_backbone.blocks.0.1.weight, pts_backbone.blocks.0.1.bias, pts_backbone.blocks.0.1.running_mean, pts_backbone.blocks.0.1.running_var, pts_backbone.blocks.0.3.weight, pts_backbone.blocks.0.4.weight, pts_backbone.blocks.0.4.bias, pts_backbone.blocks.0.4.running_mean, pts_backbone.blocks.0.4.running_var, pts_backbone.blocks.0.6.weight, pts_backbone.blocks.0.7.weight, pts_backbone.blocks.0.7.bias, pts_backbone.blocks.0.7.running_mean, pts_backbone.blocks.0.7.running_var, pts_backbone.blocks.0.9.weight, pts_backbone.blocks.0.10.weight, pts_backbone.blocks.0.10.bias, pts_backbone.blocks.0.10.running_mean, pts_backbone.blocks.0.10.running_var, pts_backbone.blocks.0.12.weight, pts_backbone.blocks.0.13.weight, pts_backbone.blocks.0.13.bias, pts_backbone.blocks.0.13.running_mean, pts_backbone.blocks.0.13.running_var, pts_backbone.blocks.0.15.weight, pts_backbone.blocks.0.16.weight, pts_backbone.blocks.0.16.bias, pts_backbone.blocks.0.16.running_mean, pts_backbone.blocks.0.16.running_var, pts_backbone.blocks.1.0.weight, pts_backbone.blocks.1.1.weight, pts_backbone.blocks.1.1.bias, pts_backbone.blocks.1.1.running_mean, pts_backbone.blocks.1.1.running_var, pts_backbone.blocks.1.3.weight, pts_backbone.blocks.1.4.weight, pts_backbone.blocks.1.4.bias, pts_backbone.blocks.1.4.running_mean, pts_backbone.blocks.1.4.running_var, pts_backbone.blocks.1.6.weight, pts_backbone.blocks.1.7.weight, pts_backbone.blocks.1.7.bias, pts_backbone.blocks.1.7.running_mean, pts_backbone.blocks.1.7.running_var, pts_backbone.blocks.1.9.weight, pts_backbone.blocks.1.10.weight, pts_backbone.blocks.1.10.bias, pts_backbone.blocks.1.10.running_mean, pts_backbone.blocks.1.10.running_var, pts_backbone.blocks.1.12.weight, pts_backbone.blocks.1.13.weight, pts_backbone.blocks.1.13.bias, pts_backbone.blocks.1.13.running_mean, pts_backbone.blocks.1.13.running_var, pts_backbone.blocks.1.15.weight, pts_backbone.blocks.1.16.weight, pts_backbone.blocks.1.16.bias, pts_backbone.blocks.1.16.running_mean, pts_backbone.blocks.1.16.running_var, pts_neck.deblocks.0.0.weight, pts_neck.deblocks.0.1.weight, pts_neck.deblocks.0.1.bias, pts_neck.deblocks.0.1.running_mean, pts_neck.deblocks.0.1.running_var, pts_neck.deblocks.1.0.weight, pts_neck.deblocks.1.1.weight, pts_neck.deblocks.1.1.bias, pts_neck.deblocks.1.1.running_mean, pts_neck.deblocks.1.1.running_var, pts_bbox_head.conv_cls.weight, pts_bbox_head.conv_cls.bias, pts_bbox_head.conv_reg.weight, pts_bbox_head.conv_reg.bias, pts_bbox_head.conv_dir_cls.weight, pts_bbox_head.conv_dir_cls.bias

04/11 08:35:09 - mmengine - INFO - Load checkpoint from https://download.openmmlab.com/mmdetection3d/pretrain_models/mvx_faster_rcnn_detectron2-caffe_20e_coco-pretrain_gt-sample_kitti-3-class_moderate-79.3_20200207-a4a6a3c7.pth
04/11 08:35:09 - mmengine - INFO - Checkpoints will be saved to /home/yangkang/code/mmdetection3d/work_dirs/mvxnet_fpn_dv_second_secfpn_8xb2-80e_kitti-3d-3class.
/home/yangkang/code/mmdetection3d/mmdet3d/models/layers/fusion_layers/coord_transform.py:40: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
  torch.tensor(img_meta['pcd_rotation'], dtype=dtype, device=device)
/home/yangkang/code/mmdetection3d/mmdet3d/models/layers/fusion_layers/coord_transform.py:40: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
  torch.tensor(img_meta['pcd_rotation'], dtype=dtype, device=device)
/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  /opt/conda/conda-bld/pytorch_1639180588308/work/aten/src/ATen/native/TensorShape.cpp:2157.)
  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  /opt/conda/conda-bld/pytorch_1639180588308/work/aten/src/ATen/native/TensorShape.cpp:2157.)
  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/mmdet/models/task_modules/samplers/sampling_result.py:132: UserWarning: DeprecationWarning: pos_bboxes is deprecated, please use "pos_priors" instead
  warnings.warn('DeprecationWarning: pos_bboxes is deprecated, '
/home/yangkang/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/mmdet/models/task_modules/samplers/sampling_result.py:132: UserWarning: DeprecationWarning: pos_bboxes is deprecated, please use "pos_priors" instead
  warnings.warn('DeprecationWarning: pos_bboxes is deprecated, '
04/11 08:35:29 - mmengine - INFO - Epoch(train)  [1][  50/3712]  lr: 1.4414e-05  eta: 5:01:46  time: 0.4069  data_time: 0.0150  memory: 3581  grad_norm: 1017.7292  loss: 5.2735  loss_cls: 1.3306  loss_bbox: 3.7907  loss_dir: 0.1522
04/11 08:35:42 - mmengine - INFO - Epoch(train)  [1][ 100/3712]  lr: 1.8919e-05  eta: 4:03:22  time: 0.2502  data_time: 0.0054  memory: 3338  grad_norm: 1143.8220  loss: 5.7208  loss_cls: 1.2461  loss_bbox: 4.3252  loss_dir: 0.1495
04/11 08:35:55 - mmengine - INFO - Epoch(train)  [1][ 150/3712]  lr: 2.3423e-05  eta: 3:44:52  time: 0.2546  data_time: 0.0054  memory: 3695  grad_norm: 586.0938  loss: 4.2843  loss_cls: 1.1932  loss_bbox: 2.9449  loss_dir: 0.1462
... ...
... ...
04/11 11:08:16 - mmengine - INFO - Epoch(train)  [8][3600/3712]  lr: 9.3369e-05  eta: 1:15:27  time: 0.3661  data_time: 0.0064  memory: 3527  grad_norm: 11.8996  loss: 0.5054  loss_cls: 0.1603  loss_bbox: 0.3028  loss_dir: 0.0423
04/11 11:08:34 - mmengine - INFO - Epoch(train)  [8][3650/3712]  lr: 9.3369e-05  eta: 1:15:13  time: 0.3551  data_time: 0.0065  memory: 3461  grad_norm: 11.5050  loss: 0.3961  loss_cls: 0.1118  loss_bbox: 0.2494  loss_dir: 0.0349
04/11 11:08:51 - mmengine - INFO - Epoch(train)  [8][3700/3712]  lr: 9.3369e-05  eta: 1:15:00  time: 0.3566  data_time: 0.0071  memory: 3207  grad_norm: 11.6977  loss: 0.4557  loss_cls: 0.1268  loss_bbox: 0.2909  loss_dir: 0.0380
04/11 11:08:56 - mmengine - INFO - Exp name: mvxnet_fpn_dv_second_secfpn_8xb2-80e_kitti-3d-3class_20230411_083414
04/11 11:09:03 - mmengine - INFO - Epoch(val)  [8][  50/1885]    eta: 0:04:25  time: 0.1446  data_time: 0.0149  memory: 2703  
04/11 11:09:10 - mmengine - INFO - Epoch(val)  [8][ 100/1885]    eta: 0:04:15  time: 0.1412  data_time: 0.0107  memory: 1412  
... ...
... ...
[>>>>>>>>>>>>>>>>>>>>>>>>>> ] 3767/3769, 74.9 task/s, elapsed: 50s, ETA:     0s
[>>>>>>>>>>>>>>>>>>>>>>>>>> ] 3768/3769, 74.9 task/s, elapsed: 50s, ETA:     0s
[>>>>>>>>>>>>>>>>>>>>>>>>>>>] 3769/3769, 74.9 task/s, elapsed: 50s, ETA:     0s
Result is saved to /tmp/tmp5hevuojj/results/pred_instances_3d.pkl.
04/11 11:15:50 - mmengine - INFO - Results of pred_instances_3d:

----------- AP11 Results ------------

Pedestrian AP11@0.50, 0.50, 0.50:
bbox AP11:0.6278, 0.7970, 0.5497
bev  AP11:0.1443, 0.1443, 0.1443
3d   AP11:0.0928, 0.0928, 0.0928
aos  AP11:0.41, 0.45, 0.31
Pedestrian AP11@0.50, 0.25, 0.25:
bbox AP11:0.6278, 0.7970, 0.5497
bev  AP11:0.4009, 0.4530, 0.5045
3d   AP11:0.3711, 0.4277, 0.4496
aos  AP11:0.41, 0.45, 0.31
Cyclist AP11@0.50, 0.50, 0.50:
bbox AP11:0.0705, 0.0705, 0.0705
bev  AP11:0.0000, 0.0000, 0.0000
3d   AP11:0.0000, 0.0000, 0.0000
aos  AP11:0.02, 0.02, 0.02
Cyclist AP11@0.50, 0.25, 0.25:
bbox AP11:0.0705, 0.0705, 0.0705
bev  AP11:0.0191, 0.0324, 0.0324
3d   AP11:0.0142, 0.0291, 0.0291
aos  AP11:0.02, 0.02, 0.02
Car AP11@0.70, 0.70, 0.70:
bbox AP11:0.6061, 0.6061, 0.6061
bev  AP11:0.0850, 0.0842, 0.0842
3d   AP11:0.0602, 0.0598, 0.0598
aos  AP11:0.61, 0.61, 0.61
Car AP11@0.70, 0.50, 0.50:
bbox AP11:0.6061, 0.6061, 0.6061
bev  AP11:0.4730, 0.7576, 1.8182
3d   AP11:0.4049, 0.2472, 0.2918
aos  AP11:0.61, 0.61, 0.61

Overall AP11@easy, moderate, hard:
bbox AP11:0.4348, 0.4912, 0.4088
bev  AP11:0.0764, 0.0762, 0.0762
3d   AP11:0.0510, 0.0509, 0.0509
aos  AP11:0.34, 0.36, 0.31

----------- AP40 Results ------------

Pedestrian AP40@0.50, 0.50, 0.50:
bbox AP40:0.3481, 0.4552, 0.3718
bev  AP40:0.0165, 0.0198, 0.0207
3d   AP40:0.0192, 0.0150, 0.0161
aos  AP40:0.20, 0.26, 0.21
Pedestrian AP40@0.50, 0.25, 0.25:
bbox AP40:0.3481, 0.4552, 0.3718
bev  AP40:0.2352, 0.2570, 0.1928
3d   AP40:0.2070, 0.1641, 0.1738
aos  AP40:0.20, 0.26, 0.21
Cyclist AP40@0.50, 0.50, 0.50:
bbox AP40:0.0083, 0.0115, 0.0115
bev  AP40:0.0000, 0.0000, 0.0000
3d   AP40:0.0000, 0.0000, 0.0000
aos  AP40:0.00, 0.00, 0.00
Cyclist AP40@0.50, 0.25, 0.25:
bbox AP40:0.0083, 0.0115, 0.0115
bev  AP40:0.0052, 0.0089, 0.0089
3d   AP40:0.0000, 0.0067, 0.0067
aos  AP40:0.00, 0.00, 0.00
Car AP40@0.70, 0.70, 0.70:
bbox AP40:0.1132, 0.0963, 0.1418
bev  AP40:0.0178, 0.0181, 0.0227
3d   AP40:0.0126, 0.0098, 0.0109
aos  AP40:0.08, 0.06, 0.08
Car AP40@0.70, 0.50, 0.50:
bbox AP40:0.1132, 0.0963, 0.1418
bev  AP40:0.2990, 0.1687, 0.1875
3d   AP40:0.2177, 0.1190, 0.1433
aos  AP40:0.08, 0.06, 0.08

Overall AP40@easy, moderate, hard:
bbox AP40:0.1565, 0.1877, 0.1750
bev  AP40:0.0114, 0.0126, 0.0145
3d   AP40:0.0106, 0.0083, 0.0090
aos  AP40:0.09, 0.11, 0.10

Bug fix If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!

JingweiZhang12 commented 1 year ago

@ykqyzzs Hi, thanks for your feedback. We also found this bug and we're troubleshooting these days. I have found that the test of MVXNet had some problems. We'll continue to find out. If you have some new discoveries, feel free to post them here.

moshanghuakia commented 1 year ago

您好,感谢您的反馈。我们还发现了此错误,这些天我们正在进行故障排除。我发现MVXNet的测试存在一些问题。我们将继续寻找答案。如果您有一些新发现,请随时在此处发布。

I have run the training and test again these days, but the problem of low map value still occurs. May I ask if this problem has been fixed now?

wessam611 commented 1 year ago

@JingweiZhang12 Is there any update on that?

Cammen commented 11 months ago

@ykqyzzs您好,感谢您的反馈。我们也发现了这个错误,这些天我们正在排除故障。我发现MVXNet的测试有一些问题。我们将继续寻找答案。如果您有一些新发现,请随时发布在这里。 @JingweiZhang12 Please, is it fixed? The training was fine before in August, there was a weights file and the test results were all there. But recently, I have trained and tested again and it has always been 0. I am surprised, I took the previous weights file and tested it and the results were normal, so why does it not work again only training the new one? I have not changed the code in any way. Just trained a different number of cycles. Looking forward to your response, Thank you