MapTR代码复现-nucenes数据集

news2025/1/16 17:26:24

前言

本节将对环视车道线MapTR算法进行复现,使用nuscenes-mini数据集!

一、环境配置

1、基础环境:

ubuntu20.04,pytorch1.10.0,python3.8,cuda11.3

2、源码下载

下载地址:

git clone https://github.com/hustvl/MapTR.git

3、环境安装

# 1 下载torch
pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html


pip install mmcv-full==1.4.0 mmdet==2.14.0 mmsegmentation==0.14.1 timm==0.9.5

# 2 安装mmdetection3d
cd mmdetection3d
export CUDA_HOME=/usr/local/cuda-11.3
pip install -v e .

# 3 其他功能包
cd ./
pip install -r requirement.txt 

# 4 安装maptr相关的插件
cd ./projects/mmdet3d_plugin/maptr/modules/ops/geometric_kernel_attn
python setup.py build install
'''
 终端显示:Processing dependencies for GeometricKernelAttention==1.0
          Finished processing dependencies for GeometricKernelAttention==1.0 
'''

# 5 更新networkx,numpy,setuptools版本,2.2在maptr-v2运行时会报错
pip install networkx==2.3 numpy==1.22.2 setuptools==58.2.0

# 6 spconv-cu113可以不安装, 本人没有安装
pip install spconv-cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple


(1)在安装pip install mmcv-full==1.4.0出现以下报错

报错:ap/mmcv-full_aab08f9dc5e94beea857df9c1022f8b4/mmcv/ops/csrc/common -I/root/miniconda3/lib/python3.8/site-packages/torch/include -I/root/miniconda3/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/root/miniconda3/lib/python3.8/site-packages/torch/include/TH -I/root/miniconda3/lib/python3.8/site-packages/torch/include/THC -I/root/miniconda3/include/python3.8 -c ./mmcv/ops/csrc/pytorch/assign_score_withk.cpp -o build/temp.linux-x86_64-3.8/./mmcv/ops/csrc/pytorch/assign_score_withk.o -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    gcc: fatal error: Killed signal terminated program cc1plus
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /root/miniconda3/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-p5i_7fap/mmcv-full_aab08f9dc5e94beea857df9c1022f8b4/setup.py'"'"'; __file__='"'"'/tmp/pip-install-p5i_7fap/mmcv-full_aab08f9dc5e94beea857df9c1022f8b4/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-mnfvty4w/install-record.txt --single-version-externally-managed --compile --install-headers /root/miniconda3/include/python3.8/mmcv-full Check the logs for full command output.

解决:

可以把pip安装换成mim安装,先来安装mim

pip install -U openmim
pip install mmcv-full==1.4.0

解决:

4、查看版本号

(1)mmlab相关

pip list | grep mm

( 2)torch相关

pip list | grep torch

二、制作数据集

1、下载can bus

下载地址:nuscenes.org/download

2020 年 2 月,官方发布了 CAN 总线扩展。它包含有关车辆路线、IMU、姿势、转向角反馈、电池、制动器、档位、信号、车轮速度、油门、扭矩、太阳能传感器、里程计等的低级车辆数据。点击US下载:

2、下载nuscenes-mini

文件目录结构如下:

data
├── can_bus
└── nuscenes
    ├── maps
    ├── nuscenes_gt_database
    ├── samples
    ├── sweeps
    └── v1.0-mini

3、生成训练数据集

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

报错:ModuleNotFoundError: No module named 'tools'

Traceback (most recent call last):
  File "tools/create_data.py", line 10, in <module>
    from data_converter import indoor_converter as indoor
  File "/root/MapTR/tools/data_converter/indoor_converter.py", line 6, in <module>
    from tools.data_converter.s3dis_data_utils import S3DISData, S3DISSegData
ModuleNotFoundError: No module named 'tools'

解决:在终端执行

export PYTHONPATH=./

成功运行!

三、训练train

(1)以下两种权重文件皆可使用

mkdir ckpts
cd ckpts
# 1 下载resnet50预训练权重
wget https://download.pytorch.org/models/resnet50-19c8e357.pth

# 2 下载resnet18预训练权重
wget https://download.pytorch.org/models/resnet18-f37072fd.pth

(2)修改projects/configs/maptr/maptr_nano_r18_110e.py配置文件中相关参数

# 1. 预训练权重
pretrained=dict(img='ckpts/resnet18-f37072fd.pth'),

# 2. BN层修改 单卡BN,多卡用SyncBN
# norm_cfg=dict(type='SyncBN', requires_grad=True), # 多卡BN层
norm_cfg=dict(type='BN', requires_grad=True),    # 单卡BN层

# 3. 数据集位置
data_root = 'data/nuscenes/'

# 4. samples_per_gpu和workers_per_gpu
samples_per_gpu=8,
workers_per_gpu=4,

# 训练周期
total_epochs = 100

# 5训练  单卡训练代码最后跟个`1`,八卡最后跟个`8`
./tools/dist_train.sh ./projects/configs/maptr/maptr_nano_r18_110e.py 1

(3)运行train指令

chmod +x ./tools/dist_train.sh
./tools/dist_train.sh ./projects/configs/maptr/maptr_nano_r18_110e.py 1

报错:

TypeError: FormatCode() got an unexpected keyword argument 'verify'
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 1401) of binary: /root/miniconda3/bin/python3

解决:

pip install yapf==0.40.1

开始运行:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础IO(下)

基础IO 1. 磁盘1.1 磁盘的物理结构1.2 磁盘的逻辑抽象结构 2. 理解文件系统2.1 前言2.2 文件系统2.3 文件的新建和删除2.4 文件的查找2.5 理解软硬链接 3. 动态库和静态库3.1 生成静态库3.2 生成动态库3.3 动态库加载 实际上&#xff0c;大部分文件都不是被打开的&#xff08;当…

pikachu靶场通关全流程

目录 暴力破解&#xff1a; 1.基于表单的暴力破解&#xff1a; 2.验证码绕过(on server)&#xff1a; 3.验证码绕过(on client)&#xff1a; token防爆破&#xff1a; XSS&#xff1a; 1.反射型xss(get)&#xff1a; 2.反射性xss(post)&#xff1a; 3.存储型xss&#…

一道初中一年级几何题解析

来看一个初中一年级的几何题目&#xff1a; 直接看第三问。 拿到题后直接解的话就是在 BC 上截取 BP 等于 CE&#xff0c;就直接得出 PBD 和 ECD 全等&#xff0c;加上角 EDF 等于 45 度&#xff0c;就能得到角 EDF 等于角 PDF&#xff0c;于是 PDF 与 EDF 全等&#xff0c;…

自定义组件——ABManager(AB包管理器)

需求描述 在Unity3D引擎中&#xff0c;AB包作为常用的游戏资源存储格式之一。而对于资源管理我们就不得不谈到集中管理的优势了&#xff0c;通过统一的接口加载和卸载AB包及其中的资源将进一步提升我们的编程效率。本文将围绕这个需求进行尝试。 功能描述 1. AB包的加载包括同…

代码随想录算法训练营第五十五 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离

583. 两个字符串的删除操作 https://programmercarl.com/0583.%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C.html class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>> d…

遇到的状态308问题

前端用的vue.config.js做的代理,请求后端的地址https://n6118lr7-10010.usw3.devtunnels.ms 在请求的时候会308 是因为本地是http而请求地址是https 前端代理允许https接口代理即可

电脑缺失d3dx9_43.dll是怎么回事,总结5种实测有效的解决方法

电脑在使用过程中偶尔会遇到一些问题&#xff0c;其中之一就是缺失d3dx9_43.dll文件。那么&#xff0c;电脑缺失d3dx9_43.dll​是怎么回事呢&#xff1f;本文将从多个方面进行详细描述&#xff0c;帮助大家更好地了解这个问题。 一&#xff0c;d3dx9_43.dll文件的概述 d3dx9_4…

Python中的钩子函数(hooks)介绍使用

什么是hook&#xff1f; 钩子函数&#xff0c;顾名思义&#xff0c;就是把我们自己实现的自定义函数在某一时刻挂接到目标挂载点上去执行。 1. hook函数&#xff0c;就是我们自己实现的函数&#xff0c;函数类型与挂载点匹配&#xff08;返回值&#xff0c;参数列表&#xff0…

virtual box安装invalid installation directory

问题原因 看官方文档Chapter 2. Installation Details 第2.1.2所示&#xff0c;安装目录需要满足两个条件&#xff1a; 一是&#xff1a;需要安装目录的所有父目录都要满足以下访问控制条件 Users S-1-5-32-545:(OI)(CI)(RX) Users S-1-5-32-545…

添加L1/L2损失函数,以及AttributeError: ‘NoneType‘ object has no attribute ‘data‘

添加L1/L2损失函数&#xff0c;以及解决报错 1.添加L1 loss2.添加L2 loss3.代码报错&#xff1a;AttributeError: NoneType object has no attribute data 1.添加L1 loss # 方式1&#xff1a;添加到损失函数中 def l1_regularization(model, l1_alpha):l1_loss []for module …

健康节能台灯的设计电子实践

1.1 功能描述 根据主要功能要求&#xff0c;该设计利用 51 单片机实现了电子时钟、温度的显示以 及整点报时等功能。具体可分为一下几种&#xff1a; 1) 显示当前的日期及时间&#xff0c;24 时制的时、分、秒&#xff1b; 2) 可调节时间&#xff1b; 3) 整点报时并响铃。 4) 能…

SpringCloud微服务架构(eureka、nacos、ribbon、feign、gateway等组件的详细介绍和使用)

一、微服务演变 1、单体架构&#xff08;Monolithic Architecture&#xff09; 是一种传统的软件架构模式&#xff0c;应用程序的所有功能和组件都集中在一个单一的应用中。 在单体架构中&#xff0c;应用程序通常由一个大型的、单一的代码库组成&#xff0c;其中包含了所有…

C/C++ 进阶(6)红黑树

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 目录 一、概念 性质 二、操作 插入 情况一&#xff1a;cur为红、p为红、g为黑&#xff0c;如果u存在且为红 步骤&#xff1a; 情况二&#xff1a;cur为红、p为红、g为黑&#xff0c;如果u不存在或…

京东网页html+css简单制作1(附带源码和素材)

一.代码效果展示 代码html骨架结构分为头部top,颈部banner&#xff0c;中间部分main,腿部fortet-image,尾部fortter&#xff0c;五部分组成&#xff0c;从上至下&#xff0c;从左到右结构。&#xff08;总体因为没设计版心&#xff0c;所以位置比较乱&#xff09; 其中中部mai…

迷宫最短路径求解--c++

【代码】 #include<iostream> #include<queue> #include<stack> using namespace std; #define ROW 8 #define COL 8 //测试迷宫数据 int maze[ROW][COL] {{0,0,0,1,0,0,0,0},{0,1,0,1,0,1,0,1},{0,1,0,0,0,1,0,1},{0,1,0,1,1,1,0,1},{0,1,0,1,1,0,0,0},{0…

第一百零四节 Java面向对象设计 - Java内部类成员

Java面向对象设计 - Java内部类成员 内部类可以访问其所有实例成员&#xff0c;实例字段和其封闭类的实例方法。 class Outer {private int value 2014;public class Inner {public void printValue() {System.out.println("Inner: Value " value);}} // Inner …

这三款思维导图工具,真的很好用

XMIND XMIND是优秀的国产思维导图和头脑风暴软件&#xff0c;非常符合国人的使用要求&#xff0c;旨在帮助用户理清思路、捕捉创意&#xff0c;并提高工作和生活效率。支持Linux、IOS、Android、MAC平台。 提供了非常多精美的结构图&#xff0c;例如鱼骨图、逻辑图、括号图、树…

Django DeleteView视图

Django 的 DeleteView 是一个基于类的视图&#xff0c;用于处理对象的删除操作。 1&#xff0c;添加视图函数 Test/app3/views.py from django.shortcuts import render# Create your views here. from .models import Bookfrom django.views.generic import ListView class B…

点云分割报告整理(未完成版-每天写一点)

体积占用网格表示对点进行体素化&#xff0c;然后使用3d卷积神经网络来学习体素级语义。由于点云的稀疏性&#xff0c;体素化效率低&#xff0c;为避免较高的计算成本而忽略了细节。此外&#xff0c;由于同一体素内的所有点都被赋予了相同的语义标签&#xff0c;因此精度受到限…

详解MySQL中的PERCENT_RANK函数

目录 1. 引入1. 基本使用2&#xff1a;分组使用3&#xff1a;处理重复值4. 使用优势4.1 手动计算百分等级4.2 使用 PERCENT_RANK 的优势4.3 使用 PERCENT_RANK 5. 总结 在 MySQL 中&#xff0c;PERCENT_RANK 函数用于计算一个值在其分组中的百分等级。 它的返回值范围是从 0 …