[3D检测系列-PointRCNN]复现PointRCNN代码,并实现PointRCNN3D目标检测可视化,包含预训练权重下载链接(从0开始以及各种报错的解决方法)

[3D检测系列-PointRCNN]  复现PointRCNN代码

1.下载代码

2.准备数据集

(1)使用官网提供的数据集格式

(2)使用软连接

3.检测结果

4.结果可视化

(1)仅显示 LiDAR

(2)显示 LiDAR 和图像

 (3)显示具有特定索引的 LiDAR 和图像

(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赞谢谢~~


  • 28
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 50
    评论
Pointrcnn是一种用于三维目标检测深度学习算法,可以在点云数据上实现对目标的检测和定位。下面是一个关于如何复现Pointrcnn的简要步骤: 首先,需要准备点云数据集以及对应的目标标签。可以使用公开的点云数据集,如KITTI、SUN RGB-D等,并使用相应的标注工具对目标进行标注。 然后,搭建Pointrcnn的网络架构。Pointrcnn网络主要由三个模块组成:PointNet,RPN和RCNNPointNet用于提取点云的局部特征,RPN用于生成候选框,RCNN作为分类器和回归器。可以根据论文中的网络结构图来搭建这些模块,并使用TensorFlow或PyTorch等深度学习框架进行实现。 接下来,训练网络模型。将点云数据输入模型进行训练,使用交叉熵损失函数和平滑的L1损失函数对模型进行优化。此外,可以采用数据增强技术来增加训练集的多样性,如旋转、平移、缩放等。 在训练过程中,可以使用GPU加速计算以提高训练速度,同时监控网络的训练损失和精度,以便及时调整超参数。 最后,对测试集进行测试和评估。使用训练好的模型对测试集中的点云数据进行目标检测和定位,并根据预测结果和真实标签进行评估,如计算精确度、召回率和平均准确度等指标。 总结来说,复现Pointrcnn需要准备点云数据集和目标标签,搭建网络架构,训练网络模型,并对测试集进行测试和评估。这只是一个简要的概述,实际的复现过程可能还涉及一些细节和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 50
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Callme_TeacherPi℡

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值