【MMDetection3D】MVXNet踩坑笔记

这篇具有很好参考价值的文章主要介绍了【MMDetection3D】MVXNet踩坑笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mvxnet,3d,python,深度学习

原文
代码
MVXNet(CVPR2019)
最近许多关于3D target detection的工作都集中在设计能够使用点云数据的神经网络架构上。虽然这些方法表现出令人鼓舞的性能,但它们通常基于单一模态,无法利用其他模态(如摄像头和激光雷达)的信息。尽管一些方法融合了来自不同模式的数据,这些方法要么使用复杂的pipeline来顺序处理模式,要么执行晚期融合,无法在早期阶段学习不同模式之间的相互作用。在这项工作中,我们提出了点融合和VoxelFusion:两种简单而有效的早期融合方法,通过利用最近引入的VoxelNet架构,将RGB和点云模式结合起来。对KITTI数据集的评估表明,与仅使用点云数据的方法相比,KITTI数据集在性能上有显著改进。此外,所提出的方法提供了与最先进的多模态算法竞争的结果,通过使用简单的单级网络,在KITTI基准的6个鸟瞰图和3D检测类别中的5个获得前2名的排名。

本文在复现过程中借鉴了@嗜睡的篠龙的这篇文章,下文引用也多出于这篇文章,在此向作者致谢!

模型框架
mvxnet,3d,python,深度学习

检测结果
mvxnet,3d,python,深度学习
mvxnet,3d,python,深度学习

1. 搭建环境

搭建环境,直接无脑follow 官方的INSTALL.md。

conda create --name openmmlab python=3.8 -y
conda activate openmmlab
# GPU环境
conda install pytorch torchvision -c pytorch
# or CPU环境
conda install pytorch torchvision cpuonly -c pytorch

pip install openmim
mim install mmcv-full
mim install mmdet
mim install mmsegmentation
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
pip install -e .

2. 制作数据集

本文使用KITTI数据集。有很多分析KITTI数据的文章,我们不再赘述,简单列一下基本信息。

该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。

场景:Road、City、Residential、Campus、Person
类别:Car、Van、Truck、Pedestrian、Person_sitting、Cyclist、Tram、Misc、DontCare,其中DontCare标签表示该区域没有被标注

3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。具体来看,下图蓝色框标记的为我们需要的数据,分别是

彩色图像数据(12GB)
点云数据(29GB)
相机矫正数据(16MB)
标签数据(5MB)
其中彩色图像数据、点云数据、相机矫正数据均包含training(7481)和testing(7518)两个部分,标签数据只有training部分。
mvxnet,3d,python,深度学习

按照官方文档组织数据集在./mmdetection3d/data/

mmdetection3d
├── mmdet3d
├── tools
├── configs
├── data
│   ├── kitti
│   │   ├── ImageSets
│   │   ├── testing
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── velodyne
│   │   ├── training
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── label_2
│   │   │   ├── velodyne
│   │   │   ├── planes (optional)

P.S.这里我最近学到一个技巧,一般/home的硬盘容量不会很大,我们把数据集保存在最大的硬盘/data,可以通过下方命令实现软连接。

ln -s /data/kitti /home/mmdetection3d/data/kitti

下面开始创建 KITTI 点云数据,首先需要加载原始的点云数据并生成相关的包含目标标签和标注框的数据标注文件,同时还需要为 KITTI 数据集生成每个单独的训练目标的点云数据,并将其存储在 data/kitti/kitti_gt_database 的 .bin 格式的文件中,此外,需要为训练数据或者验证数据生成 .pkl 格式的包含数据信息的文件。

通过运行下面的命令来创建最终的 KITTI 数据:

# 进入mmdetection3d主目录
cd mmdetection3d
# 创建文件夹
mkdir ./data/kitti/ && mkdir ./data/kitti/ImageSets

# Download data split
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/test.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/test.txt
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/train.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/train.txt
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/val.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/val.txt
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/trainval.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/trainval.txt

python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti --with-plane

处理完成之后的目录如下:

kitti
├── ImageSets
│   ├── test.txt
│   ├── train.txt
│   ├── trainval.txt
│   ├── val.txt
├── testing
│   ├── calib
│   ├── image_2
│   ├── velodyne
│   ├── velodyne_reduced
├── training
│   ├── calib
│   ├── image_2
│   ├── label_2
│   ├── velodyne
│   ├── velodyne_reduced
│   ├── planes (optional)
├── kitti_gt_database
│   ├── xxxxx.bin
├── kitti_infos_train.pkl
├── kitti_infos_val.pkl
├── kitti_dbinfos_train.pkl
├── kitti_infos_test.pkl
├── kitti_infos_trainval.pkl
├── kitti_infos_train_mono3d.coco.json
├── kitti_infos_trainval_mono3d.coco.json
├── kitti_infos_test_mono3d.coco.json
├── kitti_infos_val_mono3d.coco.json

3. 修改config

要想成功训练MVXNet我们还需要配置一下configs/_base_/schedules/cosine.py文件,将learning rate调小到0.0003以下

# lr = 0.003  # max learning rate
lr = 0.0001

否则会出现如下报错

Traceback (most recent call last):
  File "tools/train.py", line 265, in <module>
    main()
  File "tools/train.py", line 254, in main
    train_model(
  File "/data/run01/scz3687/openmmlab/mmdetection3d/mmdet3d/apis/train.py", line 344, in train_model
    train_detector(
  File "/data/run01/scz3687/openmmlab/mmdetection3d/mmdet3d/apis/train.py", line 319, in train_detector
    runner.run(data_loaders, cfg.workflow)
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run
    epoch_runner(data_loaders[i], **kwargs)
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 51, in train
    self.call_hook('after_train_iter')
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/mmcv/runner/base_runner.py", line 309, in call_hook
    getattr(hook, fn_name)(self)
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/mmcv/runner/hooks/optimizer.py", line 56, in after_train_iter
    runner.outputs['loss'].backward()
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/torch/_tensor.py", line 363, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/torch/autograd/__init__.py", line 173, in backward
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/torch/autograd/function.py", line 253, in apply
    return user_fn(self, *args)
  File "/HOME/scz3687/.conda/envs/openmmlab/lib/python3.8/site-packages/mmcv/ops/scatter_points.py", line 51, in backward
    ext_module.dynamic_point_to_voxel_backward(
RuntimeError: CUDA error: an illegal memory access was encountered

4. 训练

首先,使用命令python tools/train.py -h查看训练参数:

usage: train.py [-h] [--work-dir WORK_DIR] [--resume-from RESUME_FROM]
                [--auto-resume] [--no-validate]
                [--gpus GPUS | --gpu-ids GPU_IDS [GPU_IDS ...] | --gpu-id
                GPU_ID] [--seed SEED] [--diff-seed] [--deterministic]
                [--options OPTIONS [OPTIONS ...]]
                [--cfg-options CFG_OPTIONS [CFG_OPTIONS ...]]
                [--launcher {none,pytorch,slurm,mpi}]
                [--local_rank LOCAL_RANK] [--autoscale-lr]
                config

Train a detector

positional arguments:
  config                train config file path

optional arguments:
  -h, --help            show this help message and exit
  --work-dir WORK_DIR   the dir to save logs and models
  --resume-from RESUME_FROM
                        the checkpoint file to resume from
  --auto-resume         resume from the latest checkpoint automatically
  --no-validate         whether not to evaluate the checkpoint during training
  --gpus GPUS           (Deprecated, please use --gpu-id) number of gpus to
                        use (only applicable to non-distributed training)
  --gpu-ids GPU_IDS [GPU_IDS ...]
                        (Deprecated, please use --gpu-id) ids of gpus to use
                        (only applicable to non-distributed training)
  --gpu-id GPU_ID       number of gpus to use (only applicable to non-
                        distributed training)
  --seed SEED           random seed
  --diff-seed           Whether or not set different seeds for different ranks
  --deterministic       whether to set deterministic options for CUDNN
                        backend.
  --options OPTIONS [OPTIONS ...]
                        override some settings in the used config, the key-
                        value pair in xxx=yyy format will be merged into
                        config file (deprecate), change to --cfg-options
                        instead.
  --cfg-options CFG_OPTIONS [CFG_OPTIONS ...]
                        override some settings in the used config, the key-
                        value pair in xxx=yyy format will be merged into
                        config file. If the value to be overwritten is a list,
                        it should be like key="[a,b]" or key=a,b It also
                        allows nested list/tuple values, e.g.
                        key="[(a,b),(c,d)]" Note that the quotation marks are
                        necessary and that no white space is allowed.
  --launcher {none,pytorch,slurm,mpi}
                        job launcher
  --local_rank LOCAL_RANK
  --autoscale-lr        automatically scale lr with the number of gpus

  • configs:必选参数,训练模型的参数配置文件
  • work-dir:可选参数,训练日志及权重文件保存文件夹,默认会新建work-dirs文件夹,并保存在以configs文件名命名的文件夹中
  • gpu-id:使用的GPU个数

单GPU训练

python tools/train.py configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py

多GPU训练

CUDA_VISIBLE_DEVICES=0,1,2,3 tools/dist_train.sh configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py 4
2022-11-08 10:51:31,649 - mmdet - INFO - Epoch [1][50/928]	lr: 1.441e-05, eta: 4:37:44, time: 0.450, data_time: 0.054, memory: 6653, loss_cls: 1.4217, loss_bbox: 3.9761, loss_dir: 0.1595, loss: 5.5573, grad_norm: 1373.2281
2022-11-08 10:51:48,514 - mmdet - INFO - Epoch [1][100/928]	lr: 1.891e-05, eta: 4:02:44, time: 0.337, data_time: 0.007, memory: 6736, loss_cls: 1.1844, loss_bbox: 2.9370, loss_dir: 0.1458, loss: 4.2673, grad_norm: 743.8485
2022-11-08 10:52:04,932 - mmdet - INFO - Epoch [1][150/928]	lr: 2.341e-05, eta: 3:49:02, time: 0.328, data_time: 0.007, memory: 6736, loss_cls: 1.1656, loss_bbox: 2.0739, loss_dir: 0.1407, loss: 3.3801, grad_norm: 380.4805
...
2022-11-08 10:56:18,483 - mmdet - INFO - Saving checkpoint at 1 epochs
[                                                  ] 0/3769, elapsed: 0s, ETA:
[                                ] 1/3769, 0.4 task/s, elapsed: 2s, ETA:  8539s
[                                ] 2/3769, 0.9 task/s, elapsed: 2s, ETA:  4269s
...

[>>>>>>>>>>>>>>>>>>>>>>>>> ] 3768/3769, 260.8 task/s, elapsed: 14s, ETA:     0s
[>>>>>>>>>>>>>>>>>>>>>>>>>>] 3769/3769, 260.8 task/s, elapsed: 14s, ETA:     0s
Result is saved to /tmp/tmpvzpmdfvd/resultspts_bbox.pkl.
2022-11-08 11:04:55,700 - mmdet - INFO - Results of pts_bbox:

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

Pedestrian AP11@0.50, 0.50, 0.50:
bbox AP11:22.9431, 19.6280, 18.6389
bev  AP11:26.2247, 21.6366, 19.8992
3d   AP11:14.9756, 12.1538, 11.6735
aos  AP11:10.18, 8.75, 8.27
Pedestrian AP11@0.50, 0.25, 0.25:
bbox AP11:22.9431, 19.6280, 18.6389
bev  AP11:39.5001, 35.3343, 32.7441
3d   AP11:39.1213, 34.2670, 31.7966
aos  AP11:10.18, 8.75, 8.27
Cyclist AP11@0.50, 0.50, 0.50:
bbox AP11:9.9306, 7.9863, 8.3425
bev  AP11:4.0278, 3.4255, 3.4084
3d   AP11:1.1849, 1.3387, 1.3626
aos  AP11:3.31, 2.91, 3.02
Cyclist AP11@0.50, 0.25, 0.25:
bbox AP11:9.9306, 7.9863, 8.3425
bev  AP11:10.6039, 8.3722, 8.3490
3d   AP11:9.9899, 7.9064, 7.9410
aos  AP11:3.31, 2.91, 3.02
Car AP11@0.70, 0.70, 0.70:
bbox AP11:75.9377, 67.8962, 66.4752
bev  AP11:70.0417, 64.4884, 61.9631
3d   AP11:28.9216, 27.3963, 24.5591
aos  AP11:72.03, 63.01, 61.01
Car AP11@0.70, 0.50, 0.50:
bbox AP11:75.9377, 67.8962, 66.4752
bev  AP11:88.4258, 86.7206, 79.9050
3d   AP11:85.1207, 79.3290, 77.9177
aos  AP11:72.03, 63.01, 61.01

Overall AP11@easy, moderate, hard:
bbox AP11:36.2705, 31.8368, 31.1522
bev  AP11:33.4314, 29.8502, 28.4236
3d   AP11:15.0274, 13.6296, 12.5317
aos  AP11:28.51, 24.89, 24.10

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

Pedestrian AP40@0.50, 0.50, 0.50:
bbox AP40:22.5011, 18.9615, 18.0096
bev  AP40:25.9403, 21.0708, 19.7923
3d   AP40:14.2027, 11.5243, 10.5772
aos  AP40:9.94, 8.44, 7.97
Pedestrian AP40@0.50, 0.25, 0.25:
bbox AP40:22.5011, 18.9615, 18.0096
bev  AP40:40.4494, 35.8287, 33.2829
3d   AP40:39.9180, 34.3863, 31.8323
aos  AP40:9.94, 8.44, 7.97
Cyclist AP40@0.50, 0.50, 0.50:
bbox AP40:9.6635, 7.9641, 7.9617
bev  AP40:4.1145, 3.2324, 3.0399
3d   AP40:1.0719, 1.0088, 1.0162
aos  AP40:3.21, 2.90, 2.88
Cyclist AP40@0.50, 0.25, 0.25:
bbox AP40:9.6635, 7.9641, 7.9617
bev  AP40:10.8334, 8.5479, 8.2732
3d   AP40:9.7111, 7.8380, 7.6383
aos  AP40:3.21, 2.90, 2.88
Car AP40@0.70, 0.70, 0.70:
bbox AP40:76.0322, 70.1343, 65.6697
bev  AP40:70.1388, 63.4255, 60.4669
3d   AP40:24.2739, 22.6836, 20.7413
aos  AP40:71.62, 64.28, 59.54
Car AP40@0.70, 0.50, 0.50:
bbox AP40:76.0322, 70.1343, 65.6697
bev  AP40:91.1145, 88.5165, 84.1039
3d   AP40:86.1016, 82.8727, 78.3102
aos  AP40:71.62, 64.28, 59.54

Overall AP40@easy, moderate, hard:
bbox AP40:36.0656, 32.3533, 30.5470
bev  AP40:33.3979, 29.2429, 27.7664
3d   AP40:13.1828, 11.7389, 10.7782
aos  AP40:28.26, 25.21, 23.46

训练结束后,我们可以在work_dirs/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class文件夹中看到训练结果,包括日志文件(.log)、权重文件(.pth)以及模型配置文件(.py)等。

5. 推理

首先使用命令查看测试函数有哪些可传入参数:python tools/test.py -h

usage: test.py [-h] [--out OUT] [--fuse-conv-bn]
               [--gpu-ids GPU_IDS [GPU_IDS ...]] [--gpu-id GPU_ID]
               [--format-only] [--eval EVAL [EVAL ...]] [--show]
               [--show-dir SHOW_DIR] [--gpu-collect] [--tmpdir TMPDIR]
               [--seed SEED] [--deterministic]
               [--cfg-options CFG_OPTIONS [CFG_OPTIONS ...]]
               [--options OPTIONS [OPTIONS ...]]
               [--eval-options EVAL_OPTIONS [EVAL_OPTIONS ...]]
               [--launcher {none,pytorch,slurm,mpi}] [--local_rank LOCAL_RANK]
               config checkpoint

MMDet test (and eval) a model

positional arguments:
  config                test config file path
  checkpoint            checkpoint file

optional arguments:
  -h, --help            show this help message and exit
  --out OUT             output result file in pickle format
  --fuse-conv-bn        Whether to fuse conv and bn, this will slightly
                        increasethe inference speed
  --gpu-ids GPU_IDS [GPU_IDS ...]
                        (Deprecated, please use --gpu-id) ids of gpus to use
                        (only applicable to non-distributed training)
  --gpu-id GPU_ID       id of gpu to use (only applicable to non-distributed
                        testing)
  --format-only         Format the output results without perform evaluation.
                        It isuseful when you want to format the result to a
                        specific format and submit it to the test server
  --eval EVAL [EVAL ...]
                        evaluation metrics, which depends on the dataset,
                        e.g., "bbox", "segm", "proposal" for COCO, and "mAP",
                        "recall" for PASCAL VOC
  --show                show results
  --show-dir SHOW_DIR   directory where results will be saved
  --gpu-collect         whether to use gpu to collect results.
  --tmpdir TMPDIR       tmp directory used for collecting results from
                        multiple workers, available when gpu-collect is not
                        specified
  --seed SEED           random seed
  --deterministic       whether to set deterministic options for CUDNN
                        backend.
  --cfg-options CFG_OPTIONS [CFG_OPTIONS ...]
                        override some settings in the used config, the key-
                        value pair in xxx=yyy format will be merged into
                        config file. If the value to be overwritten is a list,
                        it should be like key="[a,b]" or key=a,b It also
                        allows nested list/tuple values, e.g.
                        key="[(a,b),(c,d)]" Note that the quotation marks are
                        necessary and that no white space is allowed.
  --options OPTIONS [OPTIONS ...]
                        custom options for evaluation, the key-value pair in
                        xxx=yyy format will be kwargs for dataset.evaluate()
                        function (deprecate), change to --eval-options
                        instead.
  --eval-options EVAL_OPTIONS [EVAL_OPTIONS ...]
                        custom options for evaluation, the key-value pair in
                        xxx=yyy format will be kwargs for dataset.evaluate()
                        function
  --launcher {none,pytorch,slurm,mpi}
                        job launcher
  --local_rank LOCAL_RANK

可以看到有两个必选参数configcheckpoint,分别为模型配置文件和训练生成的权重文件,其他参数:

  • eval:使用的评价指标,取决于数据集(“bbox”, “segm”, “proposal” for COCO, and “mAP”,
    “recall” for PASCAL VOC),这里直接沿用了2D检测中常用的几个评价标准
  • show:是否对测试结果进行可视化,要安装open3d库(没有的话,直接pip install open3d即可)
  • out_dir:测试结果的保存目录

推理命令

python tools/test.py configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py work_dirs/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class/latest.pth --eval mAP --options 'show=True' 'out_dir=./outputs/mvxnet_kitti_40e/show_results'
Results of pts_bbox:

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

Pedestrian AP11@0.50, 0.50, 0.50:
bbox AP11:70.1468, 69.8552, 67.5935
bev  AP11:61.7130, 59.7591, 54.4875
3d   AP11:55.2002, 51.7164, 48.7937
aos  AP11:50.48, 50.90, 49.56
Pedestrian AP11@0.50, 0.25, 0.25:
bbox AP11:70.1468, 69.8552, 67.5935
bev  AP11:82.5062, 80.8104, 74.7787
3d   AP11:82.2919, 80.5613, 74.7055
aos  AP11:50.48, 50.90, 49.56
Cyclist AP11@0.50, 0.50, 0.50:
bbox AP11:79.2859, 62.7941, 60.1390
bev  AP11:77.9760, 58.1716, 53.9886
3d   AP11:75.0365, 54.7113, 52.1551
aos  AP11:67.32, 52.85, 50.56
Cyclist AP11@0.50, 0.25, 0.25:
bbox AP11:79.2859, 62.7941, 60.1390
bev  AP11:79.3707, 61.5301, 58.6243
3d   AP11:79.3707, 61.5301, 58.5899
aos  AP11:67.32, 52.85, 50.56
Car AP11@0.70, 0.70, 0.70:
bbox AP11:90.7570, 89.5158, 88.2763
bev  AP11:88.7920, 84.3963, 78.6534
3d   AP11:85.2131, 75.0201, 73.3129
aos  AP11:90.62, 88.91, 87.12
Car AP11@0.70, 0.50, 0.50:
bbox AP11:90.7570, 89.5158, 88.2763
bev  AP11:90.8033, 90.0717, 89.3336
3d   AP11:90.8033, 90.0010, 89.1923
aos  AP11:90.62, 88.91, 87.12

Overall AP11@easy, moderate, hard:
bbox AP11:80.0632, 74.0550, 72.0030
bev  AP11:76.1603, 67.4423, 62.3765
3d   AP11:71.8166, 60.4826, 58.0872
aos  AP11:69.47, 64.22, 62.41

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

Pedestrian AP40@0.50, 0.50, 0.50:
bbox AP40:71.9609, 70.4772, 66.4975
bev  AP40:62.7407, 59.0257, 54.7834
3d   AP40:53.9636, 50.5281, 47.3376
aos  AP40:48.71, 48.51, 46.11
Pedestrian AP40@0.50, 0.25, 0.25:
bbox AP40:71.9609, 70.4772, 66.4975
bev  AP40:84.5872, 82.2898, 77.6695
3d   AP40:84.4899, 82.1420, 77.5182
aos  AP40:48.71, 48.51, 46.11
Cyclist AP40@0.50, 0.50, 0.50:
bbox AP40:80.7629, 62.9149, 59.8806
bev  AP40:78.4166, 57.0115, 53.6624
3d   AP40:76.0136, 54.6230, 51.4158
aos  AP40:67.56, 51.30, 48.72
Cyclist AP40@0.50, 0.25, 0.25:
bbox AP40:80.7629, 62.9149, 59.8806
bev  AP40:80.9367, 61.2030, 58.1168
3d   AP40:80.9363, 61.1954, 58.1059
aos  AP40:67.56, 51.30, 48.72
Car AP40@0.70, 0.70, 0.70:
bbox AP40:96.0206, 92.5778, 89.9424
bev  AP40:91.4854, 85.1145, 82.7408
3d   AP40:86.6862, 75.2104, 72.2740
aos  AP40:95.83, 91.92, 88.72
Car AP40@0.70, 0.50, 0.50:
bbox AP40:96.0206, 92.5778, 89.9424
bev  AP40:96.2136, 95.1219, 92.6852
3d   AP40:96.1896, 93.1893, 92.4519
aos  AP40:95.83, 91.92, 88.72

Overall AP40@easy, moderate, hard:
bbox AP40:82.9148, 75.3233, 72.1068
bev  AP40:77.5476, 67.0505, 63.7289
3d   AP40:72.2211, 60.1205, 57.0091
aos  AP40:70.70, 63.91, 61.18
# model settings
voxel_size = [0.05, 0.05, 0.1]
point_cloud_range = [0, -40, -3, 70.4, 40, 1]

Others:点云中继特征向量尺寸计算:

# model settings
voxel_size = [0.05, 0.05, 0.1]
point_cloud_range = [0, -40, -3, 70.4, 40, 1]

mvxnet,3d,python,深度学习文章来源地址https://www.toymoban.com/news/detail-801801.html

到了这里,关于【MMDetection3D】MVXNet踩坑笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 新版mmdetection3d将3D bbox绘制到图像

    使用 python mmdet3d/utils/collect_env.py 收集环境信息 以前写过mmdetection3d中的可视化,但mmdetection3d更新后代码已经不适用了,正好我把我的工作全转移到新版mmdetection3d上来了,因此重新写了一下推理结果可视化。整体思路还是构建模型、构建数据、推理、绘制,下面分步讲解 我用

    2024年04月15日
    浏览(47)
  • MMDetection3D库中的一些模块介绍

    本文目前仅包含2个体素编码器、2个中间编码器、1个主干网络、1个颈部网络和1个检测头。如果有机会,会继续补充更多模型。 若发现内容有误,欢迎指出。   MMDetection3D的点云数据一般会经历如下步骤/模块:   下面分别介绍每个部分的一些典型模型。   在介绍体素

    2023年04月17日
    浏览(48)
  • MMdetection3D学习系列(一)——环境配置安装

    MMdetion3D是是mmlab在3d目标检测方面提供的相关检测模型,可以实现点云、图像或者多模态数据上的3D目标检测以及点云语义分割。 GitHub地址:https://github.com/open-mmlab/mmdetection3d/ 目前mmdetection3d 支持21种不同的算法,100多个预训练模型,7个数据集: mmdetection3D安装比较简单,之前

    2024年02月01日
    浏览(48)
  • mmdetection3d系列--(1)安装步骤(无坑版)

      最近在看一些基于点云3d目标检测的文章,需要复现甚至修改一些算法,就找到了mmlab开源的mmdetection3d目标检测框架,方便后续学习。     在安装的时候遇到一点坑,比如环境问题,安装完能跑demo但是不能跑训练测试问题等。在解决问题后还是完成了安装。在这里记录一

    2024年02月02日
    浏览(40)
  • 3D目标检测框架 MMDetection3D环境搭建 docker篇

    本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。 需要大家提前安装好docker,并且docker版本= 19.03。 1、下载MMDetection3D源码 https://github.com/open-mmlab/mmdetection3d  git clone https://github.com/ope

    2024年02月08日
    浏览(48)
  • mmdetection3d可视化多模态模型推理结果

    参考文献: 带你玩转 3D 检测和分割 (三):有趣的可视化 - 知乎 (zhihu.com) Welcome to MMDetection3D’s documentation! — MMDetection3D 1.0.0rc4 文档 让我们看一下ChatGPT的回答[手动狗头]: mmdetection3D是基于PyTorch框架的3D目标检测工具包,它是mmdetection的3D扩展版本。它提供了一个灵活且高效的

    2024年02月16日
    浏览(44)
  • 点云检测框投影到图像上(mmdetection3d)

    原模型检测时候只有点云的检测框,本文主要是将demo文件中的pcd_demo.py中的代码,将点云检测出的3d框投影到图像上面显示。   

    2024年02月13日
    浏览(40)
  • 零基础熟悉mmdetection3d数据提取、模型搭建过程

    本图文从介绍配置文件开始,逐步构建一个新的配置文件,并依次构建相关模型,最终使用一条点云数据简单走了一下处理流程 关于mmdetection3d的安装,参考官方文档安装 — MMDetection3D 1.0.0rc4 文档 1.1 mmdetection3d配置文件的组成 官方文档:教程 1: 学习配置文件 — MMDetection3D 1.

    2024年02月05日
    浏览(67)
  • 【MMDetection3D】基于单目(Monocular)的3D目标检测入门实战

    本文简要介绍单目(仅一个摄像头)3D目标检测算法,并使用MMDetection3D算法库,对KITTI(SMOKE算法)、nuScenes-Mini(FCOS3D、PGD算法)进行训练、测试以及可视化操作。   单目3D检测,顾名思义,就是只使用一个摄像头采集图像数据,并将图像作为输入送入模型进,为每一个感兴

    2024年02月03日
    浏览(49)
  • 【利用MMdetection3D框架进行单目3D目标检测(smoke算法】

    mmdetection3d是OpenMMLab开发的3D目标检测开源工具箱,里面包含了许多经典的3D目标检测算法,包含了单目3D目标检测、多目3D目标检测、点云3D目标检测、多模态3D目标检测等各个方向。我们只需要把相应的算法权重下载下来,并调用相应接口即可进行检测。 mmdetection3d的安装需要

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包