zl程序教程

您现在的位置是:首页 >  其它

当前栏目

工程 (七) ——PolarSeg点云语义分割

工程 分割 点云 语义
2023-09-11 14:18:27 时间

目录

一、基本原理

1.1 极坐标划分

1.2 网络特征提取

二、工程目录

三、环境配置

四、semantic-kitti数据集介绍

4.1 文件目录

4.2 yaml文件

4.3 semantic-kitti-api官方工具包

四、代码运行

4.1 训练

4.2 验证

五、代码解析


一、基本原理

1.1 极坐标划分

点云有越远越稀疏的特性,相对于传统的BEV视角,点云分割更加的均匀。

1.2 网络特征提取

二、工程目录

data:数据集

dataloader:数据集下载

imgs:论文配图

network:主网络和相关代码

out:模型结果

pretrained_weight: 模型预训练权重

semantic-kitti-api:semantic-kitti数据集工具包

其他文件为使用文件

三、环境配置

git clone https://github.com/AbangLZU/PolarSeg.git
#1 激活环境
conda activate polarnet

#2 安装pytorch
conda install pytorch torchvision cudatoolkit=11.3 -c pytorch

#3 pytorch >= 1.8.0 安装pytorch-scatter
conda install pytorch-scatter -c pyg

#4 安装其他工具包 将文件中的pytorch相关删除
pip install -r requirement.txt
pip install vispy
pip install matplotlib

四、semantic-kitti数据集介绍

4.1 文件目录

 sequences下包含了一系列的数据集

 

velodyne为64线激光雷达的数据

labels 为点云的标注文件

poses.txt 为里程计的信息

4.2 yaml文件

split: # sequence numbers
  train:
    - 0
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 9
    - 10
  valid:
    - 8
  test:
    - 11
    - 12
    - 13
    - 14
    - 15
    - 16
    - 17
    - 18
    - 19
    - 20
    - 21

 将数据集的序号分成train val test,以及语义分割的类别和对应的点云颜色

4.3 semantic-kitti-api官方工具包

Semantic-kitti 本身开源了一个工具包以供可视化

git clone https://github.com/AbangLZU/semantic-kitti-api.git
cd semantic-kitti-api
pip install -r requirements.txt

# 可视化
python visualize.py --dataset /path/to/your/kitti/dataset --sequence 00

四、代码运行

4.1 训练

python train_SemanticKITTI.py --data ./data/kitti/dataset

 训练时需要等一段时间,统计完所有的训练数据集,不要急。统计完之后开始训练。

训练完成后,权重保存在与train.py同目录下的SemKITTI_PolarSeg.pt中

4.2 验证

python test_pretrain_SemanticKITTI.py -d ./data/kitti/dataset/ -p ./pretrained_weight/SemKITTI_PolarSeg.pt

通过yaml文件可以知道,11到21为测试集,代码也直接生成这些数据集的预测文件

会生成out文件夹,里面存放的预测出来的label文件,将这个文件代替原本数据集的labels,即可进行可视化。

python visualize.py  --dataset ./data/kitti/dataset --sequence 13

五、代码解析