当前位置:网站首页>[3D检测系列-PointRCNN]复现PointRCNN代码,并实现PointRCNN3D目标检测可视化,包含预训练权重下载链接(从0开始以及各种报错的解决方法)
[3D检测系列-PointRCNN]复现PointRCNN代码,并实现PointRCNN3D目标检测可视化,包含预训练权重下载链接(从0开始以及各种报错的解决方法)
2022-07-30 02:33:00 【Callme_TeacherPi℡】
[3D检测系列-PointRCNN] 复现PointRCNN代码
(4)显示带有modified LiDAR file附加点云标签/标记的 LiDAR 作为第 5 维
先附上环境配置:
Ubuntu18.04
python3.6
pytorch 1.8.0 torchvision 0.9.0 cuda 11.1
(这几个先不急着装,后面有教程) mayavi 4.7.1 vkt 8.2.0 traits 6.2.0 traitsui 7.2.1 PyQt5 5.15.2
1.下载代码
https://github.com/sshaoshuai/PointRCNN
Pytorch版本的代码、直接进github下载,这一步应该不需要过多解释。
如果有不会下载的可以直接打开一个终端,输入一下代码
git clone https://github.com/sshaoshuai/PointRCNN
!!!!注意 !!!!
!!!代码下载完后是不完善的!!!
不然会报以下错误:No moudle named 'iou3d_cuda'
pointnet2_lib打开的话是空的,这个时候需要在github中把这个文件夹单独打开,把里面的东西下载下来,然后放在本地代码文件夹里面去。然后还需要运行以下代码来安装一些工具:
sh build_and_install.sh
错误1:
error: command 'gcc' failed with exit status 1
解决方法:进入一下目录:~/pointnet2_lib/pointnet2/src/ ----->将文件中所有cpp文件的的THCState_getCurrensStream(state) 全部改为 c10::cuda::getCurrentCUDAStream()
错误2:
解决方法:进入一下目录:~/lib/utils/roipool3d/src/roipool3d.cpp ----->将文件中的AT_CHECK 改为 TORCH_CHECK
2.准备数据集
(1)使用官网提供的数据集格式
首先需要下载KITTI数据集,官网的话大家就不用尝试了因为根本下不下来。有个大佬直接上传在百度云盘里面的大家可以在他里面下载一下。KITTI数据集下载(百度云)(作者都不容易大家可以给别人也点个赞支持支持!!)
然后官网的数据集结构如下:
可能有些小白不太明白(我尽量讲明白大佬们见谅,可自行跳过),可以参考我的如下:
(2)使用软连接
因为在跑PointRCNN之前,我先跑过PointPIllars所以为了避免重新拷贝一份,可以直接用软连接。将PointPillars里面的数据集直接连接到这里来。
在PointRCNN的data/KITTI文件夹下:
ln -s (PointPillars数据集的路径) object
object代表的是创建的文件夹名字,最好就取这个名字,不然要修改代码。 而且数据集的路径是包含training和testing的根目录。然后就会生成一个object文件就OK了。
3.检测结果
利用作者的预训练模型可以直接检测,将模型放在tools下面,他的是外网下载不下来。我上传到CSDN了:----PointRCNN预训练权值-----
接下里开始检测:
python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt PointRCNN.pth --batch_size 4 --eval_mode rcnn --set RPN.LOC_XZ_FINE false
错误1:
TypeError: load() missing 1 requered positional argument : ‘Loader’
解决方法:
pip install pyyaml==5.1
开始了!!!!现在就开始等!!
大约等10分钟后:
检测结果放在以下路径下:
PointRCNN/output/rcnn/default/eval/epoch_no_number/val/final_result/
4.结果可视化
克隆可视化工具:
git clone https://github.com/kuixu/kitti_object_vis.git
克隆后在data文件中也要像上面2.(2)一样设置一个软连接。可以把他的object删了后重新弄一次。接着需要一些依赖:(记得用镜像不然慢的不得鸟!!!)
pip install opencv-python pillow scipy matplotlib pyside2
然后需要使用conda来安装mayavi,这个不能用pip我也不知道为什么....但是这里确实用pip的话基本上用不了....不知道为什么
conda install mayavi
然后在kitti_object_vis文件中打开终端:
(1)仅显示 LiDAR
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis
此时可能出现以下错误:
错误1:ModuleNotFoundError: No module named 'vtkIOParallelPython'
解决方法:
conda install jsoncpp=1.8.3
pip install pyface==7.3.0
然后继续我们的代码出现一下界面:(大功告成!!)在终端按一次回车就可以查看下一张图
然后以下还有其他几种不同的显示方法:(具体的可查看源码的github kitti_object_vis)
(2)显示 LiDAR 和图像
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes
(3)显示具有特定索引的 LiDAR 和图像
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 1
(4)显示带有modified LiDAR file
附加点云标签/标记的 LiDAR 作为第 5 维
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --pc_label
自己写的所以有点复杂,但是至少能完成嘿嘿。如果各位有优化欢迎评论区讨论!!
大功告成!编写不易,大家成功后点个关注or赞谢谢~~
边栏推荐
- 博客搭建十:hugo博客添加友链
- 【内部资源】冲击年薪30W+的软件测试人员,这份资料必须领取
- Fudan-Washington University EMBA Kechuang's Ao E丨The Magical Materials and We Are Shaped
- 票房破7.9亿美元,最近这部恐龙爽片你看了吗?
- 复旦-华盛顿大学EMBA科创的奥E丨《神奇的材料》与被塑造的我们
- 自动配置和 thymeleaf模板引擎
- Leetcode.19 删链表倒数第 N 个结点(栈/先后指针)
- Linux Jenkins查找缓存文件及删除 (2022-07测试可用)
- 新型海上风电机组及压缩空气储能系统的建模与控制(Matlab代码实现)
- RAII Technology Learning
猜你喜欢
随机推荐
FL Studio官方20.9中文版无需汉化补丁,正确安装并设置切换
Oracle 迁移至Mysql
DAP数据加工流程梳理
English语法_不定代词 -some & any
A plastic bottle of ocean "fantasy drifting"
新手入门上位机开发 C#语言:PC串口发送数据
Fudan-Washington University EMBA Kechuang's Ao E丨The Magical Materials and We Are Shaped
consul 操作
go jwt use
一个塑料瓶的海洋“奇幻漂流”
计算机复试面试题总结
测试/开发程序员面试该如何谈薪资待遇呢?突破这个坎......
【机器学习】通俗易懂决策树(原理篇)
成功解决AttributeError: ‘PngImageFile‘ object has no attribute ‘imshow‘
详解轮播图二-通过left定位来轮播图片
自动配置和 thymeleaf模板引擎
JS Navigator appName appVersion userAgent platform
Not enough information to list load addresses in the image map. (STM32 compilation error)
SwiftUI SQLite Database Storage Tutorial Collection (2022 Edition)
CVPR 2022 Best Paper -- Learning to Solve Hard Minimal Problems