点云3D检测算法-Point pillar踩坑日记

news2024/11/26 17:50:24

工程地址:

https://github.com/nutonomy/second.pytorch

1.环境搭建,跟着官网的教程走

1.1注意官网上的这条语句,存在一些坑

conda install pytorch torchvision -c pytorch

它会重新安装cudatoolkit和cudnn,版本可能很老旧;

其次,有些情况下,安装的torch是cpu 版本的。得确认安装的cuda版本是否有问题。比如nvidia-smi会显示当前驱动支持的cuda最高版本,而你自己安装的cuda版本可能相差的很大。建议cuda的版本接近nvidia-smi推荐的版本,越接近越好。

1.2 配置SparseConvNet

如果bash build.sh 或者 bash develop.sh 都失败了。说明安装的pytorch肯定有问题,得确认cuda,cudnn, pytorch-gpu版本是否兼容。

2.point pillar 执行时遇到的一些问题

2.1 无法找到‘second’module

当导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。但目前无法找到‘second’module,而‘second’在上一层目录,因此需要添加该路径,使得程序可以成功import second。在python脚本中添加如下内容

import sys
sys.path.append("..")

2.2关于c++ 的一些问题

缺少c++库

#在头文件中 /home/xxx/second.pytorch/second/core/cc/nms/nms_cpu.h 添加以下内容
#include <iostream>

 2.3 找不到数据文件

手动查看了一下,这个文件是存在的 。执行脚本的时候,把KITTI_DATASET_ROOT改成你自己的绝对路径

python create_data.py create_kitti_info_file --data_path=/home/xxx/dataset/kitti

其次,下载的kitti数据集,解压的时候,可能出现破损文件,请一一排查,具体请看2.5。

2.4 把create_data.py 脚本中以下路径改了,改成你自己的 目录

2.5 OSError: unrecognized data stream contents when reading image file

 根据网上的资料,并没有起作用。raise OSError(message“whenreadingimagefile“)OSError:codec configquration error when reading image_做个好男人!的博客-CSDN博客1.问题描述:2.原因分析根据报错提示,是PIL库报错如果排除非法使用PIL库函数,则有可能是PIL库出了问题,卸载重装即可。3.卸载pip3 uninstall pillow安装pip3 install pillowhttps://blog.csdn.net/t18438605018/article/details/112276449接着我将train.txt,val.txt,trainval.txt,test.txt中的内容只改为一行。运行成功

说明原先 train.txt,val.txt,trainval.txt,test.txt中的内容,某些地方肯定有问题。

经排查,以下索引的图像文件破损,在train.txt,val.txt,trainval.txt,test.txt中删除即可。

000348,000565,000690,001112,001672,002099,004965,005526,006790,006883,001008,002079,004485,005542,006026,007266,005768,004341,005991,003225,004929,005870,001992,006985,005995,003990,005692,001567。

2.6 OSError('./libllvmlite.so: cannot open shared object file

pip install numba==0.49.1 --ignore-installed llvmlite
#注意numba的版本是和numpy的版本捆绑的,如果你更改了numpy的版本,那么numba的使用可能会出问题

 2.7pycharm调试代码的时候,出现以下两个问题。

TypeError: Caught TypeError in DataLoader worker process 0.

TypeError: expected dtype object, got 'numpy.dtype[bool_]'

已解决 TypeError: expected dtype object, got ‘numpy.dtype[int64]‘_typeerror: expected dtype object, got 'numpy.dtype_xiao黄的博客-CSDN博客

 根据网上资料,可能跟高性能计算库numba有关

#numba版本不对,更新
pip install numba==0.53

2.8 ImportError: cannot import name 'builder' from 'google.protobuf.internal'

更换版本3.20.0

pip install protobuf==3.20.0

2.9 没有发现有用的cuda核可以正常使用。

查了一堆资料,cuda的版本过低了。升级到了cuda=11.1后,可以训练。训练完成后,可以看到精度指标

2.10训练完成,测试的时候。另外报错,numpy版本不兼容问题。

TypeError: 'numpy.float64' object cannot be interpreted as an intege

报错原因:当前版本的numpy不支持使用浮点数作为步长,需要更换numpy版本。

pip install numpy==1.17.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

然而numpy版本还是不对,又报了以下错误

ModuleNotFoundError: No module named 'numpy.random._bit_generator'

原因:numpy版本更换会影响numba的使用。

对应numba的版本也要降

pip install  numba==0.53.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

接下来可以正常测试了。

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

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

相关文章

libtorch 调用模型方法

libtorch 是 pytorch 的 C 版本&#xff0c;支持 CPU 端和 GPU 端的模型部署。相较于用 tensorrt 部署 pytorch 模型&#xff0c;用 libtorch的优势在于&#xff1a;pytorch 和 libtorch 同属一个生态&#xff0c;API 语句比较接近&#xff0c;并且不会出现某网络层不支持的问题…

面试官:请求转发和请求重定向有什么区别?

在 Java 中&#xff0c;跳转的实现方式有两种&#xff1a;请求转发和请求重定向&#xff0c;但二者是完全不同的&#xff0c;所以我们今天就来盘它。请求转发和请求重定向主要区别&#xff0c;包含以下 5 点&#xff1a; 定义不同 跳转方不同 数据共享不同 最终 URL 地址不同…

路径规划算法:基于侏儒猫鼬优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于侏儒猫鼬优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于侏儒猫鼬优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

常见面试题之List集合

1. 数组 1.1 数组概述 数组&#xff08;Array&#xff09;是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 int[] array {22,33,88,66,55,25};我们定义了这么一个数组之后&#xff0c;在内存的表示是这样的&#xff1a; 现在假如&#xff0c;我们通过arrar[1]…

Java基础---传递拷贝

目录 Java是值传递还是引用传递 什么是深拷贝和浅拷贝 浅拷贝案例解析 BeanUtils的浅拷贝 实现深拷贝 深拷贝案例解析 Java是值传递还是引用传递 编程语言中需要进行方法间的参数传递&#xff0c;这个传递的策略叫做求值策略在程序设计中&#xff0c;求值策略有很多种&am…

【PHP面试题33】include和require的区别及用法

文章目录 一、前言二 、include和require的区别三、include和require的用法介绍3.1 include的用法3.2 require的用法及示例 四、include和require的用法示例4.1 包含文件4.2 包含文件并将结果赋值给变量4.3 动态包含文件4.4 使用绝对路径包含文件4.5 包含文件失败处理4.6 包含文…

数据库--->MySQL(1)【MySQL索引】

文章目录 MySQL的优点视图MySQL的存储过程与函数触发器MySQL的基本架构MySQL的引擎InnoDBMyISAM总结 索引什么是索引&#xff1f;索引的优缺点索引底层数据结构索引的分类创建索引的原则 MySQL的优点 MySQL 主要具有下面这些优点&#xff1a; 成熟稳定&#xff0c;功能完善。开…

分布式应用之Zookeeper和Kafka

分布式应用之Zookeeper和Kafka 一、Zookeeper 1.定义 分布式系统管理框架&#xff0c;主要用来解决分布式集群中应用系统的一致性问题 相当于各种分布式应用服务的 注册中心 文件系统 通知机制2.特点 &#xff08;1&#xff09;Zookeeper&#xff1a;一个领导者&#…

Qt| There‘s no Qtversion assigned to project... 解决方法

问题&#xff1a; 原因&#xff1a;相同工程在不同电脑下qt配置不一致导致&#xff0c;该项目qt setting设置有误。 解决方法&#xff1a;右键项目打开属性 找到Qt Project Settings->Qt Installation&#xff0c;切换到当前电脑所使用的qt版本即可。

【学习笔记】在Android使用Frida进行https抓包

最近需要在Android进行https抓包&#xff0c;对数据解密&#xff0c;找了很多方法&#xff0c;终于成功了&#xff0c;不过原文一些步骤对于我这个小白还是有点不理解的地方&#xff0c;在此记录一下。 1. 前提条件 一台root手机frida环境 2. frida环境搭建 该步骤全程参考&…

基于springboot或ssm的红色新闻系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【已解决】VMware安装MacOS苹果虚拟机,开机后卡在苹果图标位置不动

我的计算机硬件与软件信息&#xff1a; Win11系统&#xff0c;VMware17&#xff0c;MacOS12 最近在VMware17上安装MacOS12苹果虚拟机时&#xff0c;前期所有内容都配置好之后&#xff0c;在开机时碰到了一个问题&#xff1a;开机后卡在苹果图标位置不动&#xff0c;即使等了一…

2023年Mac上有哪些优质的工具(一)

Downie 4 专门用来下载视频的&#xff0c;各大视频网站上的视频只要粘贴地址就可以直接下载&#xff0c;并且可以选择清晰度&#xff0c;再也不用受百度云的气了&#xff0c;下载速度非常快&#xff0c;让工作效率大大提高。 Xmind 大家熟知的一款思维导图软件&#xff0c;他…

day34-servlet 分页

0目录 servlet 1.分页 分页逻辑1&#xff1a;数据库中20条记录&#xff0c;要求每页5条数据&#xff0c;则一共有4页 分页逻辑2&#xff1a;数据库中21条记录&#xff0c;要求每页5条数据&#xff0c;则一共有5页 分页逻辑3&#xff1a;数据库中19条记录&#xff0c;要求每页…

pytorch构建深度网络的基本概念——随机梯度下降

文章目录 随机梯度下降定义一个简单的模型定义Loss什么是梯度随机梯度下降 随机梯度下降 现在说说深度学习中的权重更新算法&#xff1a;经典算法SGD&#xff1a;stochastic gradient descent&#xff0c;随机梯度下降。 定义一个简单的模型 假设我们的模型就是要拟合一根直…

基于深度学习的高精度课堂人脸检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度课堂人脸检测系统可用于日常生活中或野外来检测与定位课堂人脸目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的课堂人脸目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标…

力扣876. 链表的中间结点

题目 给你单链表的头结点head&#xff0c;请你找出并返回链表的中间结点。如果有两个中间结点&#xff0c;则返回第二个中间结点。 题解 设置快慢指针slow和fast&#xff0c;slow每次走一步&#xff0c;fast每次走两步&#xff0c;当fast走完时&#xff0c;slow刚好指到链表中间…

Vue从小白到入门(保姆级教学)

文章目录 &#x1f34b;Vue是什么?&#x1f34b;MVVM思想 &#x1f34b;vue2快速入门&#x1f34b;注意事项 &#x1f34b;数据单向渲染&#x1f34b;数据双向渲染&#x1f34b;作业布置 &#x1f34b;事件绑定&#x1f34b;事件处理机制&#x1f34b;注意事项和细节&#x1f…

西门子S7300以太网模块labview软件介绍

借助捷米特ETH-S7300-JM01以太网模块&#xff0c;通过NetS7 OPC和NI OPC Servers&#xff0c;西门子S7-300与测控软件NI LABVIEW实现以太网通讯和监控。 功能简介 LabVIEW是一种程序开发环境&#xff0c;由美国国家仪器&#xff08;NzI&#xff09;公司研制开发&#xff0c;类…

Redis 宕机了,如何避免数据丢失?

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…