ubuntu 18.04 OpenPCDet pointpillar v0.5.2 环境搭建与问题解决

参考:

  1. PV-RCNN安装和环境配置link
  2. conda 创建/删除/重命名 环境link
  3. PointPillars与PointRCNN编译运行以及结果可视化(小白探索之路,清晰易懂)link
  4. Openpcdet-(1)环境配置及kitti数据集训练(**)link
  5. 基于Dockerfile构建深度学习模型(OpenPCdet)link

正文:
OpenPCDet 升级到 v0.5.2 ,支持了更多的数据。
ubuntu 18.04 OpenPCDet pointpillar v0.5.2 环境搭建与问题解决_第1张图片

  1. 先创建conda虚拟环境
$ conda create -n OpenPCDetv052 python=3.8
$ conda activate OpenPCDetv052
  1. 安装 spconv 包
    ubuntu 18.04 OpenPCDet pointpillar v0.5.2 环境搭建与问题解决_第2张图片
    spconv 不再依赖pytorch ,更重要的是 可以用pip 安装,告别过去痛苦的编译
    具体内容参考spconv 官网:
    根据cuda版本安装合适的spconv
$ cat /usr/local/cuda/version.txt
CUDA Version 10.2.89
$ python -m pip install spconv-cu102
  1. 安装 pytorch
$ conda install pytorch==1.8.1 torchvision==0.9.1 cudatoolkit=10.2 -c pytorch
  1. 从 GitHub OpenPCDet 克隆安装包
$ git clone https://github.com/open-mmlab/OpenPCDet.git
$ cd OpenPCDet
$ vim requirements.txt

去掉 torch>=1.1 torchvision 这两行,详细原因后面讲

$ cat requirements.txt
numpy
llvmlite
numba
tensorboardX
easydict
pyyaml
scikit-image
tqdm
SharedArray
$ python -m pip install -r requirements.txt
  1. 安装 pcdet 库
$ python setup.py develop
  1. 验证是否安装成功
    查看 配置OpenPCDet环境
$ python
#检验 pytorch
>>> import torch
>>> print(torch.__version__)
1.8.1
>>> torch.cuda.is_available()
True
#检验 spconv
>>> import spconv
#检验 pcdet
>>> import pcdet
>>> exit()

error:

  1. ImportError: numpy.core.multiarray failed to import
RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe
Traceback (most recent call last):
...
    import SharedArray
ImportError: numpy.core.multiarray failed to import
python -m pip install numpy==1.22.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.22.0 which is incompatible.

后续有问题了再把版本降下来。

  1. FAILED: /xxxx/OpenPCDet/build/temp.linux-x86_64-3.8/pcdet/ops/pointnet2/pointnet2_stack/src/voxel_query.o

    ninja: build stopped: subcommand failed.
    参考pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed.(个人趟坑)
    安装的torch版本太高了,而ninja更新速度好像没有torch快,所以即便是最新的ninja,也无法编译最新的torch,从而报错。
    所以降低pytorch 的版本
    具体安装参考 pytorch 官网
    同时参考 Ninja安装和基本使用
  2. numpy.core.multiarray failed to import解决办法
运行 python train.py --cfg_file cfgs/kitti_models/pointpillar.yaml 出现这个问题

只要把numpy 更新到合适的版本,试验得出 numpy==1.21.5

python -m pip install numpy==1.21.5
  1. pointnet2_stack_cuda.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN3c
运行 python train.py --cfg_file cfgs/kitti_models/pointpillar.yaml 出现这个问题

查看问题出自哪儿,参考:
动态库链接出现undefined symbol: _ZN16XXXXXXXD1Ev
undefined symbol问题的查找定位与解决方法
symbol lookup error问题问题的查找、定位与解决方法
其实还是 pytorch 版本问题,多次试验得出
pytorch1.8.1
torchvision
0.9.1

可以运行 train.py

大功告成!@!

你可能感兴趣的:(pointcloud,目标检测,深度学习)