需要安装的工具
| Anaconda3 |
|---|
| cuda_11.1.1_455.32.00_linux.run(安装cuda) |
| cudnn-11.2-linux-x64-v8.1.1.33.tgz(安装cudann) |
安装cuda 和cudann请参考这篇博客
https://blog.csdn.net/w1520039381/article/details/120726135#t5
一、建立Oenpcdet的环境:准备工作安装pytorch
| torch | 1.9.1 |
|---|---|
| torchaudio | 0.9.1 |
| torchvision | 0.10.1 |
| cudatoolkit | 11.1 |
conda create -n Openpcdet python=3.81.2环境建好后激活
conda activate Openpcdet1.3安装pytorch
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
注意:安装pytorch1.90或者1.90以上清华源是没有的需要自行添加来源,加入-c pytorch是官方源可能导致下载变慢
例如pytorch1.9.1
pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html conda install cudatoolkit=11.1
注意pytorch与cudatoolkit的对应关系
| cudatoolkit | torch1.5 | torch1.6 | torch1.7 | torch1.8 | torch1.9 | torch1.10 | torch1.11 |
|---|---|---|---|---|---|---|---|
| 9.2 | 1 | 1 | 1 | ||||
| 10.1 | 1 | 1 | 1 | 1 | |||
| 10.2 | 1 | 1 | 1 | 1 | 1 | 1 | |
| 11.0 | 1 | ||||||
| 11.1 | 1 | 1 | 1 | ||||
| 11.3 | 1 | 1 | 1 | 1 |
python
import torch as t
device = t.device('cuda' if t.cuda.is_available() else 'cpu')
print(device)
如果不是cuda请检查pytorch是否安装为cpu版本(检查很重要!!!!)
1.5安装spconvpip install spconv-cu111 #我的cuda是11.1,根据cuda版本来选择spconv版本1.5.1更新cmake版本工作
查看版本
cmake --version
没有的话
pip install Cmake1.5.2验证spconv
import spconv.pytorch as spconv二、下载安装Openpcdet 2.1安装
我保存的位置是在我创建的环境中的
(Open3d) huangmang@huangmang-Lenovo-ThinkBook-16p-Gen-2:~/anaconda3/envs/Open3d$
#1.选择你要保存的路径 #2.cd 进去 #3.安装所需的包 git clone https://github.com/open-mmlab/OpenPCDet.git cd OpenPCDet pip install -r requirements.txt
安装需要的包后
cd OpenPCDet sudo python setup.py develop
是不是以为大功告成?
不会的接下来是解决报错的过程
2.2安装报错问题2.2.1[subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1]
解决办法:
将anaconda环境下的 lib/python3.8/dist-packages/torch/utils/cpp_extension.py文件
将**[‘ninja’,’-v’]改成[‘ninja’,’–version’]**
如果你是python3.9也在相应路径去找
2.2.2fatal error: cuda_runtime.h: No such file or directory
查看你的~/.bashrc 文件
sudo gedit ~/.bashrc
看是否有以下路径(我的是cuda11.1)
export PATH=$PATH:/usr/local/cuda-11.1.0/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
没有就添加以上路径
然后添加软连接
sudo ln -s /usr/local/cuda-11.1 /usr/local/cuda
如果还不行,并且locate cuda_runtime.h 能找到正确位置
那么试试这个命令
sudo apt-get install nvidia-cuda-toolkit
2.2.3没有mayavi或着Open3d
mayavi安装失败,卡在Building wheel for mayavi (setup.py)
使用pip安装mayavi的依赖库vtk的时候,如果没有指定vtk的版本号,就自动安装了 最新版本,最新的版本好像和mayavi不兼容。注意:vtk版本maya版本python版本不一致都会导致mayavi安装失败
安装open3d
直接安装open3d也会失败后面添加网址则成功
pip install open3d -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完后Openpcdet后测试
# 命令行输入 python import pcdet # 如果可以import说明安装成功三、使用KITTI数据集进行演示 3.1下载数据集
klitti官网:
http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
kitti官网下载数据集速度很慢这里我贴出我的云盘供下载
https://pan.baidu.com/s/1YxUnfZoWNEn_nGCq012RXQ
提取码:g5n5
文件内容如下
-
data_object_calib
-
data_object_image_2
-
data_object_label_2
-
data_object_velodyne
-
data_load
-
devkit_object
使用说明
1、这里每个文件的内容被分成多个压缩包主要是因为百度云对上传文件的大小有限制,另外一方面压缩后的文件确实比原始文件小很多。以雷达数据(data_object_velodyne)为例,解压后的实际大小为26.7G,实际上传的文件大小只有15.77G。
2、对于不同内容的压缩包,只需要解压对应的xxx.zip文件。
3、若出现解压后文件被损坏,可能是下载的时候数据被破坏了,或者使用的解压软件不对,我这里使用的是Bandizip软件,大家可以参考。
在openpcdet文件夹下进入 tools
python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt pv_rcnn_8369.pth --data_path data/kitti/training/velodyne/000008.bin
其中:
–cfg_file: .yaml配置文件 –ckpt:为训练好的.path 模型文件 –data_path:为检测的数据.bin文件
报错问题1
File "demo.py", line 103, inmain() File "demo.py", line 83, in main model.load_params_from_file(filename=args.ckpt, logger=logger, to_cpu=True) File "/home/xie/OpenPCDet/pcdet/models/detectors/detector3d_template.py", line 325, in load_params_from_file raise FileNotFoundError FileNotFoundError
原因是缺少pv_rcnn_8369.pth预训练模型文件
pv_rcnn_8369.pth模型下载链接:https://pan.baidu.com/s/1MmybKnxtgMXO321056TerQ 提取码:fvm5
报错问题2
找不到bin文件
我们把下载好的velodyne点云文件放到/home/huangmang/anaconda3/envs/Open3d/OpenPCDet/data文件夹下
官方提供路径:–data_path data/kitti/training/velodyne/000008.b
经测试使用相对文件路径会报错要使用绝对路径,将上面的–data_path data/kitti/training/velodyne/000008.bin改为下面的路径
-data_path /home/huangmang/anaconda3/envs/Open3d/OpenPCDet/data/kitti/training/velodyne/000050.bin
耗费四天终于成功了!!!
conda create -n myenv python=3 # 创建一个名为myenv的环境并指定python版本为3 conda remove -n myenv --all # 删除环境及下属所有包 activate myenv # 切换到myenv环境 deactivate myenv # 推出环境myenv activate # 进入默认的base环境 conda env list # 列出所有环境 conda list # 列出当前环境的所有包 # 以pandas为例,安装,卸载,更新 conda search pandas # 查找可安装的包 conda install pandas # 安装包 conda remove pandas # 卸载包 conda update pandas # 更新包 #cuda,cudnn 在conda环境里 conda install cudatoolkit=11.1 conda install cudnn=8.1.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge # 删除环境 conda env remove --name 环境名删除cuda 和cudann
#删除cuda cd /usr/local/cuda-11.0/bin/ sudo ./cuda-uninstaller sudo rm -rf /usr/local/cuda-11.0 # 删除cudann sudo rm -rf /usr/local/cuda/include/cudnn.h sudo rm -rf /usr/local/cuda/lib64/libcudnn* sudo rm -rf /usr/include/cudnn.h sudo rm -rf /usr/lib/x86_64-linux-gnu/libcudnn*
2、gcc降级
Ubuntu20.04自带的gcc版本为9.7.0,需要添加gcc7才可安装cuda10.2,输入命令安装gcc7 sudo apt-get install gcc-7 g++-7 查看gcc版本,可以看到目前系统中存在7和9两个版本
使用update-alternatives进行版本切换,输入以下命令: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 此时输入sudo update-alternatives --config gcc命令查看gcc的默认版本,可以看到当前默认gcc版本为7,即切换成功。
参考文章
https://blog.csdn.net/weixin_42423743/article/details/111173137
https://blog.csdn.net/weixin_43678195/article/details/117352908
https://blog.csdn.net/u013086672/article/details/103910266
https://blog.csdn.net/sini2018/article/details/120820407
https://blog.csdn.net/uzwuzw/article/details/116091495
https://blog.csdn.net/jin15203846657/article/details/122735375



