BEVfusion环境配置笔记

2023-11-04 01:59
文章标签 配置 笔记 环境 bevfusion

本文主要是介绍BEVfusion环境配置笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文文章:BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation
论文代码:bevfusion

下载项目

原文推荐用nvidia docker,其实可以不用,直接:

cd home && git clone https://github.com/mit-han-lab/bevfusion && cd bevfusion
python setup.py develop

环境搭建

这个环境可能与新的mmdetection3d冲突,最好创建一个新的虚拟环境。
新环境不知道要下载什么,可以用sublime打开Dockerfile,对着来下载就可以了

注意:只用管pipconda就可以了。但是OpenMPI是不能用pipconda下载的,需要参考这篇文章下载

数据预处理

项目的数据预处理不能直接用mmdet3d处理好的,要用它自己tools/create_data.py重新处理一次。之前直接用mmdetection3d(版本v1.0.0rc4)处理好的数据来训练,直接报错
请添加图片描述
但是按照它的预处理代码来的话,还是会报错:

File "bevfusion/tools/data_converter/create_gt_database.py", line 275, in create_groundtruth_databaseimage_idx = example["sample_idx"]
KeyError: 'sample_idx'

这里参考了github上别人的帖子,在mmdet3d/datasets/nuscenes_dataset.py里面get_data_info函数的实现里头添加sample_idx=info['token']即可。见下图红框:

请添加图片描述

假如还有camera_intrinsics关键字错误的话,请参考github的帖子。
最后把数据集文件夹data/放在bevfusion/下面,可以创建软链接。

关于训练

这么下来之后,训练单模态应该是没问题的。参考了另外一篇文章(感谢这位老哥),它里面有多模态训练命令,但用的是自己写的单gpu训练文件。参考他的命令,得到了自己的多模态模型训练命令:

torchpack dist-run -np 1 python tools/train.py configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml --run-dir bev_result/

在运行的过程中会报错:
请添加图片描述
参考这个帖子里面作者说他们用的是spconv-1.2.0,如果下的是spconv 2.x版本的话会不行。建议在没有spconv 2.x的环境下重新编译:

python setup.py develop

这个方法对于我来说不行。后来我在里面看到有位老哥的方法,试了下成功了:
请添加图片描述
具体做法是:把mmdet3d/ops/spconv/src/indice_cuda.cu文件里面所有的4096改为256

我的CUDA是11.3,没有用docker。更改之后进行编译,最后代码跑通。

这篇关于BEVfusion环境配置笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342449

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.