位置: IT常识 - 正文
[3D检测系列-PointRCNN] 复现PointRCNN代码
1.下载代码
2.准备数据集
(1)使用官网提供的数据集格式
(2)使用软连接
3.检测结果
4.结果可视化
(1)仅显示 LiDAR
(2)显示 LiDAR 和图像
(3)显示具有特定索引的 LiDAR 和图像
(4)显示带有modified LiDAR file附加点云标签/标记的 LiDAR 作为第 5 维
推荐整理分享[3D检测系列-PointRCNN]复现PointRCNN代码,并实现PointRCNN3D目标检测可视化,包含预训练权重下载链接(从0开始以及各种报错的解决方法)(3d检测软件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:3d检测仪,3d检测技术,3d检测原理是什么,3d检测仪操作视频,3d检测仪,3d检测仪,3d检测仪的功用是什么,3d检测是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!
先附上环境配置:
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/PointRCNNPytorch版本的代码、直接进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数据集的路径) objectobject代表的是创建的文件夹名字,最好就取这个名字,不然要修改代码。 而且数据集的路径是包含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)仅显示 LiDARpython kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis此时可能出现以下错误:
错误1:ModuleNotFoundError: No module named 'vtkIOParallelPython'
解决方法:
conda install jsoncpp=1.8.3pip 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赞谢谢~~上一篇:原生JS实现FlappyBird游戏 超详细解析 快来做一个自己玩吧(原生js实现promise.all)
友情链接: 武汉网站建设