BEVDet-Tiny复现Nuscenes-Mini数据集

news/2025/3/10 21:15:44/文章来源:https://www.cnblogs.com/giperx/p/18508954

论文地址:https://arxiv.org/abs/2112.11790
项目地址:https://github.com/HuangJunJie2017/BEVDet


在anaconda中创建虚拟环境并启动

conda create bevdet_ckpt python=3.7 -y

进入虚拟环境

conda activate bevdet_ckpt

阅读论文,想要复现BEVDet的Tiny版本,在原作者的Github最新branch分支中,./configs/bevdet下已经没有tiny的py文件了。查看另外5个brach发现,在checkpoint和master分支下还保留了tiny文件。

通过git进行clone为dev3.0的最新分支,所以通过zip下载。

https://github.com/HuangJunJie2017/BEVDet/archive/refs/heads/checkpoint.zip

解压后进入bevdet-checkpoint文件夹。

安装相关依赖

pip install -c pytorch pytorch torchvision -y
pip install mmcv-full==1.3.13
pip install mmdet==2.14.0
pip install mmsegmentation==0.14.1
pip install -v -e .

进入nuscenes官网注册账号登陆后https://www.nuscenes.org/nuscenes#download下载mini数据集

将mini dataset下载后的v1.0-mini.tgz解压出来可得到名为v1.0-mini的文件夹,改名为nuscenes,并移动到项目根目录下的./data文件夹中;

Map expansion下载解压后将文件移动到nuscenes解压出来的Map文件夹中,作为地图扩展;

对nuscenes中的v1.0-mini复制一份并改名为v1.0-trainval

预处理nuscenes数据集

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

如果数据集不在data文件夹下,需要替换--root-path为相应文件路径,并且在后续训练测试时需要修改config文件。

直接开始训练

# single-gpu 
python tools/train.py ${CONFIG_FILE} [optional arguments]# multi-gpu 
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]

单gpu和多gpu分别使用上面的命令;本次复现通过单gpu进行测试:

python tools/train.py ./configs/bevdet/bevdet-sttiny.py

如果数据集并不在./data/nuscenes中,需要修改bevdet-sttiny.py中的相关代码为数据集路径:


运行后出现报错,查找相关解决方案:

通过运行pip install yapf==0.40.1解决,并重新进行训练,继续出现报错,查找相关解决方案:

通过运行pip install setuptools==59.5.0解决,并重新进行训练。

测试如下:

# single-gpu testing
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show] [--show-dir ${SHOW_DIR}]# multi-gpu testing
./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]

使用单gpu进行测试:

python tools/test.py ./configs/bevdet/bevdet-sttiny.py work_dirs/bevdet-sstiny/latest.pth --eval mAP

测试结果

可视化:

因为checkpoint分支下的./tools/analysis_tools中没有vis.py文件,所以从别的分支中下载vis.py文件并移动至./tools/analysis_tools中。

https://github.com/HuangJunJie2017/BEVDet/raw/refs/heads/master/tools/analysis_tools/vis.py

可视化前需要得到json文件,所以重新运行:

python ./tools/test.py ./configs/bevdet/bevdet-sttiny.py work_dirs/bevdet-sttiny/latest.pth --format-only --eval-options jsonfile_prefix=$savepath

./pts_bbox中得到results_nusc.json

运行

python tools/analysis_tools/vis.py ./pts_bbox/results_nusc.json

在根目录下出现vis文件夹,里面为mp4视频文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/822920.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.7(学号:3025)

import numpy as np 定义系数矩阵A和常数项向量b A = np.array([[4, 2, -1], [3, -1, 2], [11, 3, 0]]) b = np.array([2, 10, 8]) 使用numpy的lstsq求解最小二乘解 x, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None) print("最小二乘解为:") print(x) 打…

BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View阅读小结

BEVDet是一种模块化设计的3D目标检测框架,以鸟瞰视图 (Bird-Eye-View, BEV) 执行3D目标检测,通过现有模块构建其框架,并通过定制数据增强策略和优化非极大值抑制策略,大幅提升检测性能。BEVDet在nuScenes验证集上表现出色,BEVDet-Tiny版本仅占用215.3 GFLOPs,速度比FCOS3…

2.2(学号:3025)

import numpy as np import matplotlib.pyplot as plt from scipy.integrate import quad def fun(t, x): return np.exp(-t) * (t ** (x - 1)) x = np.linspace(0, 10, 100) # x 的范围 y = [quad(fun, 0, np.inf, args=i)[0] for i in x] # 计算积分 plt.plot(x, y) plt.xl…

[ACTF新生赛2020]usualCrypt

[ACTF新生赛2020]usualCrypt 总体分析 点进byte_40E0E4函数界面,大概就能猜到解密与base64解密有关了点进sub_401080()函数确实是常见的base64加密 但这里有两个自定义函数 sub_401000() 和sub_401030(a) sub_401000() int sub_401000() {int i; // eaxchar v1; // clfor ( i …

20222303 2024-2025-1 《网络与系统攻防技术》实验三实验报告

一、实验内容 1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件; 2.能够使用veil,加壳工具; 3.能够使用C + shellcode编程; 4.能够通过组合应用各种技术实现恶意代码免杀; 5.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版…

服务器和操作系统是什么关系

服务器是具有高性能、稳定性和安全性的硬件设备,用于托管网络应用并提供网络服务,而操作系统则是服务器上的软件部分,它管理和协调服务器硬件与软件资源的使用,提供用户和应用程序的接口,使得用户能够有效地使用和控制服务器。服务器硬件通常包括处理器、内存、硬盘等主要…

SaaS层的多租户和PaaS的多租户在实现技术上有什么区别

SaaS层的多租户和PaaS的多租户在实现技术上存在明显的区别。SaaS层多租户主要关注1、应用层的租户隔离,确保各租户的数据和应用逻辑分离;2、用户界面和体验的定制化;3、数据安全与合规性。而PaaS多租户则侧重于1、资源层的隔离和优化,确保平台上各租户的计算和存储资源分配…

2024-2025-1 20241327 《计算机基础与程序设计》第五周学习总结

作业信息 |2024-2025-1-计算机基础与程序设计)| |-- |- |2024-2025-1计算机基础与程序设计第五周作业)| |快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 |作业正文|https://www.cnblogs.com/shr060414/p/18…

项目管理需要注意哪些要素

项目管理涉及多个关键要素,包括:一、项目目标;二、项目范围;三、项目计划和进度;四、资源分配与管理;五、质量控制;六、风险管理;七、变更管理。其中,项目目标是项目的核心,必须明确、具体且与组织的战略目标相一致。一、项目目标 项目目标是项目存在的意义和预期成果…

充电宝电池容量和额定容量有什么区别

充电宝的电池容量和额定容量是两个经常被混淆的概念,但它们之间存在明显的差异:1.定义不同;2.测试标准与方法有异;3.对用户实际使用的影响;4.标识方式不同;5.如何选择合适的充电宝。了解两者的区别可以帮助消费者更明智地购买和使用充电宝。1、定义不同 电池容量,通常指…

什么是无代码开发平台

无代码开发平台是一种提供了可视化操作和拖拽式组件的软件开发平台,旨在使应用程序的开发变得更加简单和快速,无需编写传统的代码。这类平台的目标是让非技术背景的用户也能够通过简单的操作和配置来创建应用程序,降低了软件开发的门槛,加速了应用开发的速度。一、无代码开…