【点云目标检测】 SECOND 调试记录

一. 参考

1. 开源代码

感谢作者的开源~

2. 相关博客

二. 遇到的问题

首先看自己电脑配置:

  • 系统:Ubuntu 16.04
  • 显卡:1080ti
  • 环境:已装ROS kinetic, Anaconda 3
  • cuda:9.0
  • python : 3.6

我一开始想要复现最原始的开源的second代码 second,其实博客 [1] 已经说明的很完整了,照着是应该能复现出来的,但是我在复现的时候,一直遇到了很多问题,导致一直没有复现出来,后来我是参考 PCDet 进行复现,在这里记录一下我在复现过程中遇到的问题。

1. cmake 版本

注意cmake的版本,因为我自己的电脑上安装了ros,ros里带的cmake版本是3.5,是不满足的,所以首先就要升级cmake,我一开始还怕升级cmake之后,我的ros可能使用会有问题,但是实测是没有问题的,所以先升级cmake,升级的具体方法可以参考[1] [4]

2. 新建虚拟环境

最好之后的操作都是在anaconda的虚拟环境中进行,也为了避免产生其他的冲突。新建虚拟环境,python 版本 3.6 即可

conda create -n pc python=3.6

3. 安装依赖

安装依赖项参考 [1] , 记得加上清华的源,会安装的很快

  • 这里注意numpy安装的版本,需要 numpy==1.14.0

这里我给的建议是依次这么安装:

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

再安装 torch 1.1.0 和 torchvision 0.3.0, 这两个的安装包也可以在[1] 中博主给的百度云盘里找到

其他的依赖,就同理安装就可以了,这个不难

4. 安装 spconv

这一步应该是最难的了,首先我说一下我遇到的问题:

踩坑 1 : spconv 应该是有两个版本,现在 spconv新版,直接clone编译的话,(如何编译还是参考 [1] ) 是需要 cuda 10 和 python 3.7, torch 1.3.0 , 但是我的电脑里装的是cuda9.0 ,直接编译的话,会停止在终端很久,然后报一堆错误… 于是放弃,找老版本的spconv

踩坑 2 : PCDet 中也说明了需要使用老版本的 spconv v1.0spconv v1.0 的链接在这里,你可以直接clone下来,然后编译,但是,又会遇到一个问题,还是编译不过…我检查了一下在clone下来的源码,spconv/third_party/pybind11 这个文件夹中,是空的,所以还是编译有问题…那怎么解决呢?

解决办法:

  1. 还是感谢 [1] , 博主提供了 编译好的 spconv 包, 但是这是博主在他的环境下编译好的, 需要把 build, dist, spconv.egg-info 这几个文件夹删除掉,然后 重新编译,我是这样做的。

  2. 在 clone 的时候 加上 – recursive , 应该直接就可以了。

踩坑 3 : 之后直接编译spconv 又提示会有问题:
在这里插入图片描述
解决办法:
参考 [3] , 在这里 No CMAKE_CUDA_COMPILER could be found (solved) 有解决的办法,需要添加一些路径到bashrc中,就可以成功编译。

踩坑 4 : 编译完之后,应该就可以跑second了,但是在跑的过程中,会报错:

cannot import name 'VoxelGeneratorV2'

这是因为现在用的是 旧版的spconv , VoxelGeneratorV2 这个是在新版的 spconv 中的, 编译要求是要cuda 10 , torch 1.3 ,我电脑是整不了了,于是放弃了复现原版的second,但是可以直接使用新开源的 PCDet 框架,同样支持 second 并且安装等都友好了许多,只需要安装老版的 spconv 就可以了 ,其他的步骤参考 PCDet 就可以了。

三. 使用PCDet复现

注意事项:
安装完 spconv 之后, 不要忘记:

python setup.py develop

要不然会出现报错.

之后准备数据 在 pcdet/datasets/kitti 目录下:

python kitti_dataset.py create_kitti_infos

测试和训练的指令记录:

python test.py --cfg_file cfgs/second.yaml --batch_size 4 --ckpt pre_models/second.pth

python test.py --cfg_file cfgs/second.yaml --batch_size 4 --eval_all

python train.py --cfg_file cfgs/second.yaml --batch_size 1

pre_models 是自己新建的文件夹,用来存放下载的模型

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值