【RandLA-Net】基于自建数据训练大场景语义分割网络RandLA-Net
【RandLA-Net】基于自建数据训练大场景语义分割网络RandLA-Net
文章目录
- 【RandLA-Net】基于自建数据训练大场景语义分割网络RandLA-Net
- 0. 相关文章
- 1. 实验条件
- 2. 代码
- 3. 数据集
- 4. 环境搭建
- 5. 训练模型
- 5.1 修改数据相关文件
- 5.2 修改main_S3DIS脚本
- 5.3 helper_tool脚本
- 5.4 数据预处理
- 5.5 训练模型
- 6. 测试模型
- 7. 可视化测试结果
- 8.可能会遇到的问题
0. 相关文章
PointNet模型搭建
基于自建数据训练PointNet分割网络
【PointNet++】PointNet++复现(PyTorch版本)
【PointNet++】基于自建数据训练PointNet++场景语义分割网络
【RandLA-Net】大场景语义分割网络RandLA-Net复现
1. 实验条件
Ubuntu 22.04,RTX 3090
2. 代码
仓库地址:https://github.com/QingyongHu/RandLA-Net/tree/master
可选的下载方式:
git clone --depth=1 https://github.com/QingyongHu/RandLA-Net.git
目录结构:
3. 数据集
采用自采自建的隧道数据集,数据集及数据制作过程参考【PointNet++】基于自建数据训练PointNet++场景语义分割网络
4. 环境搭建
python3.6.13 + tensorflow1.14.0 + cuda12.1
-
初始化环境
conda create -n myrandlanet python=3.6 conda activate myrandlanet
-
安装相关依赖
pip install numpy==1.19.5 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install h5py~=3.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install cython==0.29.15 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install open3d-python==0.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install pandas==1.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install scipy==1.5.4 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install scikit-learn==0.21.3 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install PyYAML==6.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 pip install tensorflow-gpu==1.14 -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120 conda install cudatoolkit=11.2 cudnn=8.1 -c=conda-forge pip install keras==2.6.0
-
编译相关函数
cd 路径/myrandlanet sh compile_op.sh
-
数据集预处理
cd 路径/myrandlanet/utils python data_prepare_s3dis.py
5. 训练模型
5.1 修改数据相关文件
-
data_utils/meta/anno_paths.txt文件修改
在anno_paths.txt文件中写入数据集Annotations文件夹路径即可,本文采用新建my_anno_paths.txt文件的方式,文件内容如图所示:
-
data_utils/meta/class_names.txt文件修改
在class_names.txt文件中添加场景的语义类别,本文采用新建my_class_names.txt文件的方式,在文件中写入数据集所使用的语义类别,文件内容如图所示:
-
data_prepare_s3dis文件修改
修改anno_paths和gt_class路径:
修改dataset_path路径:
5.2 修改main_S3DIS脚本
数据集名称、数据集路径、数据集类别
5.3 helper_tool脚本
我们使用的是S3DIS数据集,因此只需要修改对应的class即可,如图所示圈出的部分为数据集中的数据类数量,根据自己数据集自行修改,其他配置项根据实验设备性能进行调整
此外,还有类别权重需要修改,根据自己的标签数量修改,也可新添加一个分支
5.4 数据预处理
cd 路径/myrandlanet/utils
python data_prepare_s3dis.py
5.5 训练模型
cd 路径/myrandlanet
python -B main_S3DIS.py --gpu 0 --mode train --test_area 1
6. 测试模型
cd 路径/myrandlanet
python -B main_S3DIS.py --gpu 0 --mode test --test_area 2
7. 可视化测试结果
在可视化之前首先需要对6_fold_cv脚本进行修改:
-
修改路径
base_dir路径中是test测试之后生成的.ply文件目录路径,original_data_dir是预处理后的生成的original_ply目录路径
-
修改标签数量
最后运行6_fold_cv脚本
python utils/6_fold_cv.py
可视化的结果如下:
原始数据:
标注数据:
预测数据:
8.可能会遇到的问题
tensorflow版本问题
tensorflow版本问题
其他问题,这个本文在训练时出现,通过排查是数据集路径构建错了,传入的数据为空,所以这样的报错