pointRCNN使用(关闭)

pointRCNN网址
该算法主要是对3D点云数据进行直接处理,在KITTI的测试服务器上,当时取得了较好的表现。本文主要记录在使用过程遇到的问题及解决方式。

python3.6

正如github的说明页指出的,该算法基于python3.6+实现。在运行下面这行代码时,
sh build_and_install.sh
可能会报错,提示 ‘No module named torch.utils.cpp_extension’ 。
输入 pip3 list
可以看到,我们已经安装了Pytorch,在list里可以找到torch。此时,可以想到,可能是由于Ubuntu默认的python是3.5.2或2.7.2,输入 python即可确定默认的版本号。
修改方式:

#设置python2为默认,优先级为100,越高越优先
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
#设置python3为默认,优先级为150
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
#可以任意切换版本了
sudo update-alternatives --config python

需要注意的是,按照之前的博客安装的python3.6并不在usr/bin中,而是 /usr/local/bin/python3.6,可能是因为python3.6我是下载了安装包再安装的吧。奇怪的是,我也搜索不到python3.6,也是偶然才发现他的路径。

git clone 速度提升

git config --global http.postBuffer 524288000

可以尝试下这条命令,可能有帮助。
以及,git clone是克隆到当前目录下,最好事先决定好克隆位置,事后拷贝有可能会有影响。

数据集

数据集是KITTI的激光雷达的数据集。总大小约40G,从这一点来讲,不建议放在虚拟机或者小的固态里跑。
由于是墙外资源,不是无法下载的。若后续有人有需要,可以上传至百度云。

安装PointRCNN

如果直接运行sh build_and_install.sh这条命令,可能会提示权限不足。这是因为,要安装这个库,意味着要安装在python3.6默认的/usr/local/lib里,这似乎是一个系统文件,因此需要 加 sudo
除了上一个博客安装的依赖库以外,还需要 fire、numba、pyyaml。

修改软链接

不知道是否是因为安装的问题,运行快速demo时,eval_rcnn.py无法准确定位我cuda的所在。报错为:不存在/usr/local/cuda/bin/nvvm/lib64,我去该路径查看后,发现nvmm其实和bin是同级目录。由于nvmm中的东西有9G,直接复制虽然简单,但后续会导致本来就吃紧的128G SSD更不够用,因此考虑使用软链接实现。
为了在bin中放一个指向 nvmm的软链接,使用如下命令。

sudo ln -s /usr/local/cuda/nvvm /usr/local/cuda/bin

成功后,打开bin文件,应当可以看到一个带有转移箭头的文件夹nvvm,双击将会指引到源nvmm,

显存

终于可以运行以后,尝试了下github介绍中的 Quick demo 大概3769个数据文件吧,结果直接报错表示CUDA out of memory.
pointRCNN使用(关闭)_第1张图片
我的显卡是GEFORCE GTX 950M,显存2G。已在github里面提交issue了,等回复吧。我想知道得需要多大的显存才能跑得动quick demo和完整的程序。

显存查看

Windows下:win+R调出运行,输入dxdiag,并确定。在打开的DirectX诊断工具里点击【显示】即可看到显存大小。
Ubuntu下:nvidia-smi

显存实时观测

#1代表的是每秒刷新一次
watch -n 1 nvidia-smi

此外,也可以pip install gpustat ,不过由于需要依赖,因此还需运行sudo apt-get install libncurses5-dev,关于该命令以及神经网络中显存的计算见于知乎-神经网络中显存计算

watch --color -n1 gpustat -cpu

这里又引出我的另一个问题,即多个python环境下,包安装路径的问题。
已在知乎提问,等待帮助:问题链接

你可能感兴趣的:(SLAM相关)