A、云平台安装和本地安装的差异:
之前在几个云平台上的1w算力豆已经用光了,所以这次本地选择本地安装Pcdet。
两者安装过程有很大差异,因为九天毕昇云平台使用的是CUDA10.1,且没办法改动,导致pcdet 只能安装0.3.2,且只能选择较低的版本的第三方库:torch1.6.0,spconv:1.2.1(相当难安装)。
九天毕昇云平台安装过程,详见我之前的博客:
九天毕昇”云平台:python3.7+CUDA10.1+torch1.6.0+spconcv1.2.1安装OpenPCDet全流程_空持千百偈,不如吃茶去的博客-CSDN博客主要在云平台上搭建OpenPCDet环境https://blog.csdn.net/weixin_44013732/article/details/126030624
B、改动:
本地安装可以选择更多的CUDA版本,本次安装遵循以下博客做以改动(因为他安装的是pcdet0.5.2,咱们是pcdet0.6.0):
ubuntu 18.04 从零开始复现 OpenPCDet 训练kitti数据集并评估 可视化 损失函数 https://blog.csdn.net/jin15203846657/article/details/122735375
本文全程记录安装过程,部分过程可能因为手滑而关掉对话框,没有记录到,或者有其他问题,需要各位自己去搜一下(ง •_•)ง。
废话不多说,现在开始准备安装:
显卡:4090和1660s(两个环境都安装了,没有问题)
CUDA :11.1
spconv:spconv-cu111 2.1.25
python:3.8(最低要求)
torch:1.9.1+cu111 (最低要求)
torchvision:0.10.1+cu111 (最低要求)
配置时,需要注意以下几点:
①不能使用python3.7安装:我尝试过python3.7安装pcdet,但是里面第三方库‘av2’最少需要python3.8版本以上:
提示到:Requires-Python >=3.8,说明没有适配python3.7的‘av2’。
②不能使用torch1.9.1以下的版本安装,否则安装korina时会遇到如下提示:
上面是安装完torch1.8.1的提示:kornia 0.6.12 requires torch>=1.9.1。是因为它的requirement.txt文件中要求torch>=1.9.1。
当然,你也可以选择安装低版本的kornia进行安装,我没有尝试过。
本次所有相关的安装文件都打包好了,省的跳来跳去:
百度云https://pan.baidu.com/s/1POcv5KO-nQQgBcKra1mdIg?pwd=6666
有些文件是用不到的,你们看着选就可以,下面会讲到。
参照:Ubuntu安装详细教程
Ubuntu镜像文件在这里:Ubuntuhttps://pan.baidu.com/s/1xoy4Kp995B7E6Q4LXyqW4g?pwd=6666%C2%A0
镜像官网:Ubuntu桌面系统镜像
这里,我安装的Win11+Ubuntu22.04双系统。
(1)检查驱动
首先检查一下自己的电脑,是否可以使用驱动,命令如下:
nvidia-smi
如果显示是这样的,可以直接跳过整个步骤2:
报错结果如果没有驱动,则报错结果大致如下:
NVIDIA-SMI has failed because it couldn’t communicate with the NIVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.
(2)安装驱动driver
我们使用Ubuntu自带的:“软件与更新”去安装:
①进入“软件与更新”。
②附加驱动中,可以选择nvidia-driver-525。
具体多少得试,如果driver版本过高,可能会导致WiFi适配器不能使用,具体可参照:④。
③重启一下,就可以用啦( ̄▽ ̄)"
参考:Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)
④报错:没有WIFI适配器
如果driver安装完后,发现WIFI适配器不见了:
说明driver安装的版本过高,WIFI驱动与driver不适配。因为没网了,所以需要重新安装Ubuntu,选择合适的版本的driver再次尝试。
我参考了非常多的博客,结果都没有成功,目前想到最快的方法就是重装了(。﹏。*)。
(1)检测
使用以下指令,检查是否有gcc编译器:
gcc -v
如果有,确保gcc版本在1.10.0以下:
例如gcc-9就可以。
有些小伙伴可能使用的是系统提示的指令:
sudo apt-get install gcc
这会安装成最新版本gcc-13版本。
注:若不是10版本以下的,则后面很可能会报错(并不是百分之百会报错,因人而异)。现在选择不安装也没关系,等后面出问题了再说。
当然,如果没有安装gcc的话,可以跟着下面的步骤先安装一下。
(2)安装gcc和gcc++
安装gcc-9:
sudo apt-get install gcc-9
安装g++-9:
sudo apt-get install g++-9
这里不采用系统提示的指令去安装:
sudo apt-get install gcc
sudo apt-get
这样安装固然方便,但是apt-get会自动安装最新的版本,这样会和pcdet0.6.0冲突。
详情见:安装OpenPCDet遇到的问题的第32号问题:安装pcdet时报错:subprocess.CalledProcessError: Command ‘[‘which‘, ‘g++‘]‘ returned non-zero exit status 1.
(3)软链接
sudo ln -s /usr/bin/gcc-7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-7 /usr/bin/g++
(4)检查版本
使用以下指令,检查是否有gcc编译器:
gcc -v
跳转到第(1)步。
(1)下载Anconda文件
百度云:
这个文件夹下的就是anconda文件。
(2)进入安装包所在目录,使用bash指令进行anaconda安装:
bash Anaconda3-5.3.1-Linux-x86_64.sh
(3)查看安装结果:
conda info
(4)官方安装文件及参考
清华源镜像:
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
参考博客:
ubuntu系统安装Anaconda与使用入门_ubuntu安装anaconda_张维鹏的博客-CSDN博客
(1)下载CUDA文件
进入百度云网盘,CUDA文件位置如下所示:
这里就放着CUDA安装文件:cuda_11.1.0_455.23.05_linux.run
如果不想用百度云,下面是官方网站:
CUDA官方网站:CUDA Toolkit Archive | NVIDIA Developer
CUDA文件官方下载地址:
https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
(2)运行安装程序
sudo sh cuda_11.1.0_455.23.05_linux.run
接着按下contine:
开始安装,输入accept:
最后在选择安装项目的时候,不要选择driver,因为我们已经在第1步安装过了,免得driver又需要重新适配一下。
若出现下面的问题:
Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.
加入--override即可,例如:
sudo sh cuda_10.2.89_440.33.01_linux.run --override
参考:Linux安装CUDA GCC版本不兼容_cuda 10.2 gcc_氵文大师的博客-CSDN博客
(3)配置环境变量
①查看环境配置文件:
vim ~/.bashrc
②加入配置变量
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
以上变量都需要加,如果不加变量,nvcc -V查不出来cuda版本,而且后续安装可能还有各种各样的错误。
③更新
source ~/.bashrc
④最后用nvcc -V检查版本,得到以下界面
注意:如果仍然显示:找不到命令 “nvcc”,
下面可能会提示:
sudo apt install nvidia-cuda-toolkit
尽量不要用上面的命令去安装,有人踩过坑。
上面这个问题,说明没有更新source ~/.bashrc,抑或是没有采用合适的软链接,大家可以根据各自情况来查询。
(4)cudnn安装
①解压
文件也在百度云,解压指令:
tar zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
②进入到cuda文件夹下
③ 执行指令进行复制文件:
sudo cp include/cudnn*.h /usr/local/cuda/include/ #没*的话后面会报错
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
④建立软链接
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.8.0.5
sudo ln -sf libcudnn.so.8.0.5 libcudnn.so.8
sudo ln -sf libcudnn.so.8 libcudnn.so
sudo ldconfig
若是有下面的错误:
对于不是符号链接的文件,执行以下操作:
sudo mv /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.org
sudo mv /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.org
sudo mv /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.org
sudo mv /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.org
sudo mv /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.org
sudo mv /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.org
然后执行:
sudo ldconfig
⑤查看cudnn版本
执行下面指令,进行查看
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
如果出现下面的情况:
解决办法是用下面的命令即可正确查看cudnn版本:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
如果显示:
(5)参考博客
ubuntu 18.04 从零开始复现 OpenPCDet 训练kitti数据集并评估 可视化 损失函数
(1)创建虚拟环境(无需安装包,Anconda自动安装python):
conda create -n Openpcdet python=3.8
(2)激活环境
conda activate Openpcdet
(3)安装torch、torchvision
①下载文件
百度云:找到以下文件夹,放着torch、torchvision安装包。
②安装
使用pip指令实现本地安装:
pip install torch-1.9.1+cu111-cp38-cp38-linux_x86_64.whl torchvision-0.10.1+cu111-cp38-cp38-linux_x86_64.whl
③测试
先输入python进入环境,输入以下指令:
import torch # 如正常则静默
torch.__version__ #查看torch版本
import torchvision
torchvision.__version__ #查看torchvision版本
torch.cuda.is_available() #正常的话返回“True”
a = torch.Tensor([1.]) # 如正常则静默
a.cuda() # 如正常则返回"tensor([ 1.], device='cuda:0')"
from torch.backends import cudnn # 如正常则静默
cudnn.is_acceptable(a.cuda()) # 如正常则返回 "True"
显示可以正常使用:
④官方下载网站
如果不想用百度云,下面是官方下载网站:
torch下载网站:https://download.pytorch.org/whl/torch_stable.html
torch 1.9.1(python3.8):https://download.pytorch.org/whl/cu111/torch-1.9.1%2Bcu111-cp38-cp38-linux_x86_64.whl
torchvision 0.10.1(python3.8):
https://download.pytorch.org/whl/cu111/torchvision-0.10.1%2Bcu111-cp38-cp38-linux_x86_64.whl
(4)安装sponcv稀疏卷积库
安装spconv2.0+,直接使用清华源安装即可:
pip install spconv-cu111
(5)安装pcdet第三方库
①下载Openpcdet-master
②配置 requirement.txt
进入到\OpenPCDet-master文件夹下,根据requirement.txt文件,下载第三方库:
pip install -r requirements.txt
我更改了requirement.txt里的参数(原因后面讲到):
整体下来应该没有任何报错:
③安装pcdet
执行以下指令:
python set.py develop
当安装过程是这种奇奇怪怪的颜色的代码时:
且过程中没有报错,说明它在build。
安装完成:
(6)报错
下来是“美好的”报错时间o( ̄┰ ̄*)ゞ:
你们中间遇到的各种问题,可以参考我写的另一篇博客:
安装OpenPCDet遇到的问题https://blog.csdn.net/weixin_44013732/article/details/130658821
用法:Ctrl+F,搜索你们想问的问题即可,如果没有的话,就是目前我没有碰到。
有数据集的可以用自己的数据集,没有数据集的,我给你们提供一个编译好的小数据集:
kitti小型数据集https://pan.baidu.com/s/175VowZs0goXZe8ZKUJ5XDg?pwd=6666
和大数据集:
kitti大型数据集https://pan.baidu.com/s/1C1gz9GmYIaFUHlA4C--Q0w?pwd=6666
①进入到tools文件夹下:
/PointCloudDet3D/tools
②执行:
python train.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml
开始训练喽~
③可选择训练的模型
可以通过tools文件夹下的cigs目录找到想要训练的模型,以pointpillars举例。
路径:/OpenPCDet-master/tools/cfgs/kitti_models/
接着改变一下输入指令就行:
python train.py --cfg_file cfgs/kitti_models/pointpillars.yaml
①下载文件
说明:如果训练完后,会生成一个pth文件,在
/home/xyy/OpenPCDet-master/output/kitti_models/pv_rcnn/default/ckpt/里面。
为方便大家直接测试功能,我给大家下载了PVRCNN的权重文件供大家测试:
pv-rcnn训练权重http://xn--https-bl8js66z7n7i//pan.baidu.com/s/1t5IkmrcLM-xtUMElTlnrSg?pwd=6666%20%20%E6%8F%90%E5%8F%96%E7%A0%81%EF%BC%9A6666%20%20--%E6%9D%A5%E8%87%AA%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E8%B6%85%E7%BA%A7%E4%BC%9A%E5%91%98V5%E7%9A%84%E5%88%86%E4%BA%AB下载文件后将文件pv_rcnn.pth放到
/OpenPCDet-master/output/kitti_models/pv_rcnn/default/ckpt/pv_rcnn_.pth
目录下:
②测试推理
使用指令:
python test.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --batch_size 1 --ckpt /home/xyy/OpenPCDet-master/output/kitti_models/pv_rcnn/default/ckpt/pv_rcnn_.pth --save_to_file
说明:
a.路径
test是在训练完成的基础上进行的,通过对训练的pth文件进行加载并测试数据,路径为/OpenPCDet-master/output/kitti_models/pv_rcnn/default/ckpt/checkpoint_epoch_*.pth
b.指令格式
指令格式为:python test.py --cfg_file +cig中预训练模型位置(yaml文件) --batch_size 1 --ckpt +预训练权重位置(pth文件) --save_to_file
除了yaml路径外,还需要加入pth数据的位置,一般都放在output中(train后才会生成,否则木有文件数据)
测试结果为:
③下载预训练权重
可以下载其他模型的权重文件,以pointpillars举例:
网址:https://github.com/open-mmlab/OpenPCDet
找到你想要的模型去下载下来,放到上面的文件夹里就行。
①安装
利用pip指令进行安装:
pip install open3d
没有报错就是可以使用,如果是因为版本的问题,也会出现奇奇怪怪的bug:
例如,上面这个是使用open3d-0.11报出的bug,最后默认系统安装最新版本open3d-0.17.0就没啥毛病。
②测试
执行指令:
python demo.py --cfg_file /home/xyy/OpenPCDet-master/tools/cfgs/kitti_models/pv_rcnn.yaml --ckpt /home/xyy/OpenPCDet-master/output/kitti_models/pv_rcnn/default/ckpt/pv_rcnn_.pth --data_path /home/xyy/OpenPCDet-master/data/kitti/testing/velodyne/000001.bin
说明:
a.指令格式
指令格式为:python test.py --cfg_file +cig中预训练模型位置(yaml文件) --batch_size 1 --ckpt +预训练权重位置(pth文件) --data_path +点云bin文件的位置
测试结果:
①安装
用pip指令进行安装:
pip install vtk # vtk用的9.2.6
pip install mayavi #mayavi用的4.8.1
pip install PyQt5 # 5.15.9
②测试
python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt /output/kitti_models/pv_rcnn/default/pv_rcnn_.pth --data_path ../data/kitti/testing/velodyne/000008.bin
说明:
a.指令格式
指令格式为:python test.py --cfg_file +cig中预训练模型位置(yaml文件) --batch_size 1 --ckpt +预训练权重位置(pth文件) --data_path +点云bin文件的位置
测试结果:
①进入到/OpenPCDet-master/tools/demo.py文件下:
②将里面的import部分做以改动:
a. 如果要使用open3d,则不用改动
b. 如果使用mayavi,则把“try”到”except“部分删掉,并取消首行缩进即可。
安装mayavi:三维目标检测之OpenPCDet环境配置及demo测试
Open3D和mayavi切换:OpenPCDet安装及其3D检测算法实现
4090安装和实现过程与1660一致,我用了同样的方法安装了4090上的Pcdet0.6.0,也可以跑。
你们中间遇到的各种问题,可以参考我写的另一篇博客:
安装OpenPCDet遇到的问题https://blog.csdn.net/weixin_44013732/article/details/130658821
用法:Ctrl+F,搜索你们想问的问题即可,如果没有的话,就是目前我没有碰到。