PointPainting 复现

一、下载源码库

下载链接:pointpainting下载

二、安装依赖库

2.1 创建虚拟环境

conda create -n pp python=3.7  # 创建python3.7环境
conda activate pp # 激活环境
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio=0.7.0 cudatoolkit=10.2 -c pytorch
#必要时需要升高torch版本
#pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

2.2 安装OpenPCDet

OpenPCDet 是一个开源的 LiDAR 检测框架。 它支持许多流行的数据集,如 Kitti、Nuscenes 等。我们使用 OpenPCDet 作为 LiDAR 检测器。 要安装 OpenPCDet,请先安装它的requirements。 作者修改了 OpenPCDet 的某些部分(包括数据集加载器和训练配置)以支持绘制的 Kitti 数据集,您可以直接在./detector 中使用修改后的版本。 作者给出的运行命令为:

cd PointPainting/detector
python setup.py develop

但是openpcdet的依赖配置很复杂,尤其涉及点云卷积库spconv的部分,因此可以参考:

OpenPCDet安装及其3D检测算法实现

2.3 安装mmsegmentation

对于基于图像的语义分割,我们使用mmsegmentation (OpenLab V3+) 。 要安装此软件包,mmcv与cuda、pytorch版本兼容有要求,因此您可能需要在安装 mmcv-full时更改地址以匹配您的 torch 和 CUDA 版本(https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html),若此链接中没有自己对应的版本,就参考备注(2)中的网址选择具体命令进行安装。

pip install terminaltables
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.7.0/index.html

您可能会注意到./painting/mmseg 中有一个文件夹,因此您不必手动克隆其存储库。

注:(1)在下载的文件 ./painting/mmseg 中有一个文件夹,作者已经下载了,因此您不必手动克隆其存储库。
(2)mmcv与cuda、pytorch版本兼容有要求,见mmcv官方文档https://mmcv.readthedocs.io/zh_CN/latest/get_started/installation.html根据自己的版本情况选择合适的mmcv:

在这里插入图片描述

(3)对于mmcc-full的下载,有时pip 的安装有时会有问题,可以直接下载手动安装:
在这里插入图片描述

2.4 安装 Hierarchical Multi-Scale Attention for Semantic Segmentation

此工程还支持用于语义分割的分层多尺度注意力。 虽然我们已经在 ./painting/hma 下为您克隆了他们的 github 存储库(进行了一些修改以处理 kitti 数据集),但请参阅上面的github链接以安装其依赖项。

三、下载数据集

目前我们只支持 Kitti 数据集,我们预计未来会更新对 Nuscenes 数据集的支持。 对于 Kitti 数据集,您可能需要如下所示管理数据集。 Kitti 数据集可以在这里找到。 您可能还需要下载 OpenPCDet 提供的planes

detector
├── data
│   ├── kitti
│   │   │── ImageSets
│   │   │── training
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── image_3
│   │   │   ├── label_2
│   │   │   ├── velodyne
│   │   │   ├── planes
│   │   │   ├── painted_lidar (keep it empty)
│   │   │── kitti_infos_train.pkl
│   │   │── kitti_info_val.pkl

注:请注意,我们已经为您生成了 train 和 val 信息。 所以在kitti官网下载好对应数据集后,一定只能将 Kitti 原始数据放入上表相应的文件夹中。

四、进行painting

进行painting,需要依赖具体的语义分割模型。作者提供了三个网络:DeepLabV3 / HMA / DeeplabV3+ 。我们建议使用 DeepLab V3+,这是默认设置。

4.1 DeepLab V3+

当您按如下所示管理数据时,绘画应该非常容易。 首先检查painting.py 脚本并选择您要使用的分割网络索引!
要使用 DeepLab V3+ 需要下载模型的权重,可以运行./painting 下的脚本get_deeplabv3plus_model.sh

cd painting
sudo sh get_deeplabv3plus_model.sh

在这里插入图片描述

在这里插入图片描述
然后你可以运行以下命令:

cd painting
python painting.py

painting 过程可能需要数小时,具体取决于您的计算设备性能。 完成绘画后,您可以继续进行 LiDAR Detector 培训!
成功后为:
在这里插入图片描述

此时,出现的报错(一):
在这里插入图片描述
这是因为MMCV的版本过高,只能兼容1.1.4-1.4.0之间的版本,可以选择1.4.0

在这里插入图片描述

下载后手动安装:
在这里插入图片描述
报错(二):
在这里插入图片描述
这是mmsegmentation部分缺少权重文件:
在这里插入图片描述
需要运行指令:
在这里插入图片描述

报错(三):
在这里插入图片描述
参考:
pytorch学习路上遇到的坑

4.2 HMA-based Painting

除了使用 DeepLab V3+,您还可以基于 HMA 生成分割分数。 如果你想使用 HMA,请在 ./painting 下运行以下命令。 它将下载所需的权重并处理整个分割过程。 同样,可能需要几个小时才能完成。

$ sh generate_hma_score.sh

分割分数将保存在./detector/data/kitti/training/score_hma/下。 当你运行完脚本后,查看painting.py脚本并设置SEG_NET = 2。然后参考Painting进行后续步骤。

五、雷达点云训练

对于训练部分,您应该运行以下命令以基于绘制的点云开始训练。

cd detector
python -m pcdet.datasets.kitti.painted_kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/painted_kitti_dataset.yaml

此时,出现的报错:
在这里插入图片描述
解决方法:

对该命令执行的源码文件/home/ypx/ws/PointPainting_ws/detector/pcdet/datasets/kitti/painted_kitti_dataset.py进行修改:

在这里插入图片描述
参考:TypeError: load() missing 1 required positional argument: ‘Loader‘

成功后,结果为:
在这里插入图片描述

cd tools
python train.py --cfg_file cfgs/kitti_models/pointpillar_painted.yaml

运行结果:
在这里插入图片描述

六、可视化

使用经过训练的权重,您可以运行演示以根据绘制的点云推断结果。 我们使用 OpenPCDet 提供的演示脚本并稍微修改visualize_utils.py 。 要运行演示,请尝试执行以下命令:

pip install mayavi
cd tools
python demo.py --cfg_file cfgs/kitti_models/pointpillar_painted.yaml --ckpt ${your trained ckpt} --data_path ${painted .npy file} --ext .npy
python  demo.py --cfg_file /home/ypx/ws/PointPainting-main/detector/output/kitti_models/pointpillar_painted/default/pointpillar_painted.yaml --ckpt /home/ypx/ws/PointPainting-main/detector/output/kitti_models/pointpillar_painted/default/ckpt/checkpoint_epoch_80.pth --data_path /home/ypx/ws/PointPainting-main/detector/data/kitti/training/painted_lidar/000019.npy --ext .npy

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

查看训练参数:

pip install tensorboardX
pip install tensorflow

需要安装确定版本的open3d:

pip install open3d==0.9.0.0
pip install open3d-python

在这里插入图片描述
然后进行到events.out.tfevents.1678719850.ypx所在的路经/home/ypx/ws/PointPainting-main/detector/output/kitti_models/pointpillar_painted/default/tensorboard执行命令:

tensorboard --logdir=/home/ypx/ws/PointPainting-main/detector/output/kitti_models/pointpillar_painted/default/tensorboard

在这里插入图片描述
在这里插入图片描述

报错一:
在这里插入图片描述

报错二:Segmentation fault (core dumped)

先安装部分依赖:

pip install traitsui==6.1.0
pip install traits==6.2.0
pip install pyqt5==5.12.0
pip install vtk==9.2.2

执行可视化命令试试;
在已安装PyQT5的情况下依然报错,在终端输入:

export ETS_TOOLKIT=qt
export QT_API=pyqt5

然后接着执行可视化命令。

关于mayavi的安装使用,最麻烦的就是其依赖的功能包及虚拟环境,我本次的虚拟环境依赖如下(安装这些依赖的时候,注意其安装路径):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值