CenterPoint 工程复现

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

CenterPoint 工程复现

注意:本文中使用版本:BEVerse工程下的mmdet3d (MMDet3d v0.17.3)版本,MMDetection3D中其他版本的使用大同小异
欢迎有疑问的同学在下方留言,如果觉得有用的话,可以点赞+收藏,再次表示感谢!

参考
1. nuscenes官方使用举例
2. CenterPoint 论文速读
3. BEVerse 论文速读

一. 下载和安装工程

详细参考:MMdet3d官方文档

pip install openmim
mim install mmcv-full   # 此时1.6.1版本
mim install mmdet
mim install mmsegmentation
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
pip install -e .

注意
如果需要安装特定版本的mmcv可以参考如下命令,详细请看mmcv官方文档,mmdet3d_v1.1.0

pip install mmcv==2.0.0rc1 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.12.0/index.html

二. 准备nuscenes数据集

参考之前文章Nuscenes 完整版数据集批量下载,如果只是玩玩可以下载nuscenes v1.0-mini版本,但用mini版本数据量太小,训练结果一定不理想。

三. 数据预处理及坐标系变换

python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --version v1.0-mini

注意
1)如果使用mmdet3d官方的 master分支代码,生成过程中报错FileNotFoundError: NuScenesDataset: [Errno 2] No such file or directory, 原因在于–out-dir路径问题,需要设置./data/nuscenes, 不能自定义路径,为了保证原数据与预处理后数据在一个路径下,即

mmdetection3d
├── mmdet3d
├── tools
├── configs
├── data
│   ├── nuscenes
│   │   ├── maps
│   │   ├── samples
│   │   ├── sweeps
│   │   ├── v1.0-test
|   |   ├── v1.0-trainval
│   │   ├── nuscenes_database
│   │   ├── nuscenes_infos_train.pkl
│   │   ├── nuscenes_infos_trainval.pkl
│   │   ├── nuscenes_infos_val.pkl
│   │   ├── nuscenes_infos_test.pkl
│   │   ├── nuscenes_dbinfos_train.pkl
│   │   ├── nuscenes_infos_train_mono3d.coco.json
│   │   ├── nuscenes_infos_trainval_mono3d.coco.json
│   │   ├── nuscenes_infos_val_mono3d.coco.json
│   │   ├── nuscenes_infos_test_mono3d.coco.json

2)v1.0.x 以后的MMDet3d版本需要坐标系重构
数据需要进行坐标系重构,尤其是nuscenes数据集,v1.0以后的mmdet3d版本尤其注意,因为官方为了避免歧义,已经将坐标系进行了统一
具体可以参考Coordinate system refactoring,执行脚本如下,新文件保存到/data/nuscenes_convert_infos/下面。

python tools/update_data_coords.py nuscenes --root-dir ./data/nuscenes_infos/ --out-dir ./data/nuscenes_convert_infos/

四. 模型训练

4.1 配置文件名说明
centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py为例

`{model}`: 模型类型 `centerpoint`.
`{model setting}`:体素尺寸和体素类型 ,如 `01voxel`, `02pillar`.
`{backbone}`: 主干网路,如 `second`.
`{neck}`: neck类型,如 `secfpn`.
`[dcn]`: 是否使用可变卷积.
`[circle]`: 是否使用循环nms
`[batch_per_gpu x gpu]`: 每个gpu上batch数目*gpu数目 , 默认4x8,即4batch×8gpu
`{schedule}`: 训练计划, 可选项 1x, 2x, 20e, etc. 1x = 12epochs , 2x = 24 epochs , 20e = 20 epochs. 对于 1x/2x, 初始化学习率在 8/16th and 11/22th epochs 衰减到0.1 . 对于 20e, 初始化学习率在16th and 19th epochs 衰减到0.1.
`{dataset}`: 数据集,如 nus-3d, kitti-3d, lyft-3d, scannet-3d, sunrgbd-3d. 我们也可制定类别或者使用单一类别,如 kitti-3d-3class and kitti-3d-car。

注意:训练时候使用centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus_novelo.py会在数据采样器位置报除数为0的bug,暂时不是太明确novelo含义?

4.2 执行训练脚本

CUDA_VISIBLE_DEVICES=0,1,2,3 bash tools/dist_train.sh configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py 8

注意: 默认采用 4batch × 8gpu 的方式,如果并非此配置训练,对应可能需要修改相应的超参,如学习率等。


五. 模型评测

5.1 执行评测脚本

注意: 官方在configs/centerpoint/metafile.yml提供了一些预训练模型的下载,可以根据需要自行下载并测试

5.1.1 查看mAP, NDS等测评指标
bash tools/dist_test.sh configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_
cyclic_20e_nus.py work_dirs/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus/epoch_20.pth 4 --eval mAP

注意: 如果一个GPU ,去掉 --mtl
评估指标截图(centerpoint_0075voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus_20200925_230905-358fbe3b.pth):
CenterPoint 工程复现

5.1.2 可视化
  1. 离线可视化,适用于服务器
    先在服务器上生成结果文件,再拷贝到本地查看,详情查看可视化。
## 生成pkl检测结果文件
python tools/test.py configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py work_dirs/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus/epoch_50.pth --eval 'mAP' --eval-options 'show=False' --out './eval_visualize/mini_test.pkl'

## 针对pkl结果文件进行本地可视化
python tools/misc/visualize_results.py configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py --result ./data/mini_test.pkl --show-dir ./figs/

可视化pkl检测效果:
CenterPoint 工程复现

  1. 第二种思路是实时可视化,适用于本机,支持GUI显示,而非服务器,但只能显示预测值
python tools/test.py configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py checkpoints/centerpoint_epoch_50.pth --show --show-dir ./figs

在线可视化效果:
CenterPoint 工程复现

5.2 评测结果异常可能原因汇总

  1. 预处理数据后,是否执行坐标系重构脚本,非常老的老版本不需要进行坐标系重构。
  2. 注意使用所属数据集版本,如果使用mini版本评测结果,会出现许多类别AP为0的情况,导致最后的mAP比文中的低6-8个点

六. Bug调试可能遇到的问题

Q1: mmdet3d/ops/spconv/src/indice_cuda.cu 124
A1:ops 算子错误

Q2: ImportError: /opt/conda/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol:
A2: 通常是mmcv版本与torch版本不对应,先卸载mmcv,再重新安装,注意修改下面torch(gpu)后面的版本号。

pip uninstall mmcv-full 
pip install mmcv==2.0.0rc1 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.12.0/index.html

Q3: 测试过程中出现 TypeError: ‘DataContainer’ object is not iterable
A3: mmcv版本不对,可以根据区间要求,挨个尝试,推荐mmcv-full 1.6.0,参考Q2安装。

Q4: fatal error: THC/THC.h: No such file or directory
A4: torch版本需要降级。

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.1 -f https://download.pytorch.org/whl/torch_stable.html

Q5:ImportError: cannot import name ‘ball_query_ext’ from partially initialized module ‘mmdet3d.ops.ball_query’
A5: 忘记torch重新安装后,需要重新编译算子

cd mmdetection3d
python setup.py develop

Q6:mportError: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory 并且 returned non-zero exit status 1
A6:服务器问题,有时候torch 没有安装成功,退出虚拟环境,重新进入安装文章来源地址https://www.toymoban.com/news/detail-427005.html

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.1 -f https://download.pytorch.org/whl/torch_stable.html 

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

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

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

相关文章

  • 【三维目标检测】CenterPoint(一)

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。         CenterPoint是一种anchor free的三维目标检测算法模型,发表在CVPR 2021,论文名称为《Center-based 3D Objec

    2024年02月08日
    浏览(41)
  • CenterPoint 源码流程解读(一)

    参考 : 1.论文速读 – CenterPoint 2.激光雷达点云的3D目标检测入门(CenterPoint源码分析) 3.CenterPoint 在mmdetection3d中的实现 4. centerpoint 原文完整翻译 本文使用配置页 : mmdetection3d工程中的configs/centerpoint模型: centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py 1. LoadPointsFromFile 1.1 功能

    2024年02月08日
    浏览(56)
  • 一些研发工程师在Springboot注意点

    1. 正确设计代码目录结构 虽然您有很大的自由度,但有一些基本规则值得遵循来设计您的源代码结构。 避免使用默认包。确保所有内容(包括入口点)都在命名良好的包中,这样您就可以避免与组装和组件扫描相关的意外情况; 将 Application.java(应用程序的入口类)放在顶

    2024年02月08日
    浏览(47)
  • aoa_android工程编译注意事项

    1. android studio 版本 : 3.0.0 Android Studio 下载文件归档  |  Android 开发者  |  Android Developers (google.cn) 下载地址: https://redirector.gvt1.com/edgedl/android/studio/install/3.0.0.18/android-studio-ide-171.4408382-windows.exe 2. build.gradle(app) 修改: build.gradle完整修改如下: 3.build.gradle(aoa_android)修改如下:

    2024年02月15日
    浏览(41)
  • 机器学习21:机器学习工程落地注意事项-I

    目录  1.静态训练与动态训练 1.1 如何选择训练方式? 2.静态与动态推理

    2024年02月12日
    浏览(51)
  • 3D检测:从pointnet,voxelnet,pointpillar到centerpoint

    记录centerpoint学习笔记。目前被引用1275次,非常高。 地址:Center-Based 3D Object Detection and Tracking (thecvf.com) GitHub - tianweiy/CenterPoint CenterPoint:三维点云目标检测算法梳理及最新进展(CVPR2021)_哔哩哔哩_bilibili 作者解释。 CenterPoint 是一种用于激光点云的3D目标检测与跟踪算法框架

    2024年04月22日
    浏览(40)
  • IC设计工程师,参加IC面试应该注意哪些细节?

    秋招已至,诸多IC设计企业,比如联发科、长鑫、大疆、燧原、地平线、复旦微、兆易创新、百度昆仑芯等,都已经陆续开启了提前批招聘。 很多人对各种关于秋招、面试、简历的比较感兴趣,所以今天就来跟大家分享关于秋招求职面试中的一些技巧和注意事项,这份求职攻

    2024年02月15日
    浏览(50)
  • 英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意

    此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文 ,并对相应的SCI期刊进行介绍,帮助大家解

    2024年02月19日
    浏览(50)
  • 机器学习22:机器学习工程落地注意事项-II(公平-Fairness)

    负责任地评估机器学习模型需要做的不仅仅是计算损失指标。在将模型投入实际应用之前,审核训练数据并评估偏见( Bias )对预测至关重要。 本文内容着眼于解读训练数据中可能存在的不同类型的人类偏见,同时提供了识别它们并评估其影响的策略。 目录 1.偏见的类型(

    2024年02月12日
    浏览(53)
  • UE4工程升级UE5教程及注意事项

    原文链接:https://mp.weixin.qq.com/s/vSVu0VsNub0J62Nz7vM6cA 虚幻引擎5迁移指南 | 虚幻引擎5.3文档 (unrealengine.com) 官方教程应该是从英文直接翻译过来的,过多词汇没修改,本篇重新整理修改一下,供各位参考。 本教程介绍,如何将虚幻引擎4 (UE4) 项目升级到 虚幻引擎5 (UE5) ,并总结了

    2024年01月17日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包