前言

刚开始接触OpenPCDet这个库,配置环境好久都不成功,后面看到这篇博文
【OpenPCDet】Kitti数据集下训练PointPillars并评估&可视化
给我提供了思路,本文主要记录一下安装过程中出现的错误

环境

ubuntu20.04+ CUDA Version: 11.5

安装torch

创建虚拟环境

conda create -n OpenPCDet python==3.8

激活环境

conda activate OpenPCDet

通过nvidia-smi命令查看CUDA版本
在这里插入图片描述

然后在Pytorch官网安装对应版本,我对应版本的指令为

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

注:使用pip命令没有安装cudatoolkit,后续在测试的时候报错

numba.cuda.cudadrv.error.NvvmSupportError: No supported GPU compute
capabilities found. Please check your cudatoolkit version matches your
CUDA version.

解决方法,安装对应的cudatoolkit工具

conda install cudatoolkit=11.3 -c pytorch

其中, -c pytorch是表示从pytorch官网安装。

安装pcdet

参照这一篇
OpenPCDet安装和快速演示

安装spconv

pip install spconv-cu113

安装完查看版本

spconv-cu113                  2.1.21

后续跟着这篇博文安装即可
【OpenPCDet】Kitti数据集下训练PointPillars并评估&可视化

报错解决

错误1: kornia选择合适版本安装

后续可能会出现ModuleNotFoundError: No module named ‘kornia‘提示
安装合适的kornia版本,,当前最新是0.7.0,我这里是选择

pip install kornia==0.6.8

否则可能会出现错误
在这里插入图片描述

normalize the input quaternion
quaternion_norm: torch.Tensor = normalize_quaternion(quaternion)
HERE

unpack the normalized quaternion components
‘quaternion_to_rotation_matrix’ is being compiled since it was called
from ‘quat_to_mat’ File
“/root/OpenPCDet/pcdet/datasets/argo2/argo2_utils/so3.py”, line 19
(…,3,3) 3D rotation matrices. “”" return
C.quaternion_to_rotation_matrix( quat_wxyz,
order=C.QuaternionCoeffOrder.WXYZ
HERE
)

Expected a value of type ‘float’ for argument ‘p’ but instead found type ‘int’.

错误2:AssertionError:assert img_file.exists()

image_info = {‘image_idx’: sample_idx, ‘image_shape’: self.get_image_shape(sample_idx)}
File “/projectdata/OpenPCDet/pcdet/datasets/kitti/kitti_dataset.py”, line 69, in get_image_shape
assert img_file.exists()
AssertionError

在这里插入图片描述

原因:kitti数据集划分有问题或文件出错
kiti dataset info

下面出现的这个问题应该也是数据集没有划分成功

File “train.py”, line 113, in main total_epochs=args.epochs File
“…/pcdet/datasets/init.py”, line 50, in build_dataloader dataset =
all[dataset_cfg.DATASET]( AttributeError: ‘EasyDict’ object has no
attribute ‘DATASET’

参考这个博客下载数据集

错误3:No module named ‘av2’

Traceback (most recent call last):
File “/home/qingyuhan/code/OpenPCDet/OpenPCDet/tools/train.py”, line 7, in
from test import repeat_eval_ckpt
File “/home/qingyuhan/code/OpenPCDet/OpenPCDet/tools/test.py”, line 14, in
from eval_utils import eval_utils
File “/home/qingyuhan/code/OpenPCDet/OpenPCDet/tools/eval_utils/eval_utils.py”, line 8, in
from pcdet.models import load_data_to_gpu
File “…/pcdet/models/init.py”, line 6, in
from .detectors import build_detector
File “…/pcdet/models/detectors/init.py”, line 12, in
from .mppnet import MPPNet
File “…/pcdet/models/detectors/mppnet.py”, line 9, in
from pcdet.datasets.augmentor import augmentor_utils, database_sampler
File “…/pcdet/datasets/init.py”, line 15, in
from .argo2.argo2_dataset import Argo2Dataset
File “…/pcdet/datasets/argo2/argo2_dataset.py”, line 7, in
from av2.utils.io import read_feather
ModuleNotFoundError: No module named ‘av2’

pip install av2==0.2.0

issue

错误4:KeyError: ‘road_plane’

File “…/pcdet/datasets/augmentor/database_sampler.py”, line 372, in
add_sampled_boxes_to_scene
sampled_gt_boxes, data_dict[‘road_plane’], data_dict[‘calib’]
KeyError: ‘road_plane’

解决办法:
find tools/cfgs/*.yaml,
then change “USE_ROAD_PLANE: True” to “USE_ROAD_PLANE: False”
这里看你需要运行的yaml文件

在这里插入图片描述

补充:运行PointRCNN时对应的yaml没有这个选项

在这里插入图片描述

仔细查看后发现其基础配置是kitti_dataset.yaml文件,更改这个即可

在这里插入图片描述

运行成功截图

在这里插入图片描述

安装open3d进行可视化

我这里python版本是3.8,需要安装对应的版本
版本不匹配,可能会出现
在这里插入图片描述

安装open3d

pip install open3d==0.11.2

报错
在这里插入图片描述

安装sklearn即可

pip install scikit-learn

然后下载pointrcnn_7870.pth进行可视化

python demo.py --cfg_file ./tools/cfgs/kitti_models/pointrcnn.yaml --ckpt /home/qiyu/code/pointrcnn_7870.pth --data_path ../data/kitti/testing/velodyne/007491.bin

可视化截图
在这里插入图片描述

参考

【OpenPCDet】Kitti数据集下训练PointPillars并评估&可视化

OpenPCDet安装和快速演示

spconv版本更迭导致的Bug:AttributeError: module ‘spconv‘ has no attribute ‘SparseModule‘

open3d安装的诸多问题

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐