简介
RandLA-Net目前应该是三维点云语义分割领域的一篇新的主流框架,在大场景三维点云语义分割算法RandLA-net中,原论文代码的环境是python3.5+tensorflow1.11+cuda9,而cuda9是不能在显卡RTX3080上跑通的,所以我的复现环境:python3.6+tensorflow-gpu2.6+cuda11.4+cudnn
博主亲测过,不过cuda和cudnn安装的版本要和ubuntu版本对应🙉。
1.下载代码
git clone --depth=1 https://github.com/luckyluckydadada/randla-net-tf2.git
2.创建环境
conda create -n randlanet python=3.6
3.进入环境
conda activate randlanet
tensorflow根据服务器版本安装对应的cuda和cudnn,注意cuda安装在服务器上跟cudnn,虚拟环境安装可能存在一定的问题,建议装服务器外面。一般问题就出现在环境上面,多花点功夫。
4.安装需要支持
注意路径进入randla-net-tf2文件夹,这里是安装一些工具。【打开helper_requirements.txt可看】
pip install -r helper_requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120
如果下载速度可以的话,不需要使用镜像源
5.注意路径进入randla-net-tf2文件夹下,再运行:
sh compile_op.sh
进行编译相关函数
6.数据集介绍和下载:
大场景室内点云标注数据集S3DIS介绍
点云数据集
下载后数据集存放位置:家目录/data/S3DIS下。
ls ~/data/S3DIS/Stanford3dDataset_v1.2_Aligned_Version
同上皆是环境内,randla-net-tf2文件夹下运行:
7.运行代码生成需要文件
python utils/data_prepare_s3dis.py # 通过Stanford3dDataset_v1.2_Aligned_Version 生成input_0.040和original_ply
python utils/data_prepare_s3dis.py
这是经过栅格采样处理后的点云中间格式文件
8.训练 area2~5 :
python -B main_S3DIS.py --gpu 0 --mode train --test_area 1
python -B main_S3DIS.py --gpu 0 --mode train --test_area 1
9.预测area1
python -B main_S3DIS.py --gpu 0 --mode test --test_area 1
python -B main_S3DIS.py --gpu 0 --mode test --test_area 1
然后进行6倍交叉验证,将生成的val_preds文件放到data下自创的result文件中
放到如下result:
然后执行指令:python utils/6_fold_cv.py
python utils/6_fold_cv.py
10.可视化操作:
python vis_S3DIS.py #在vis_S3DIS.py文件里2处把家目录后面的用户名文件目录改成自己的🙉
python vis_S3DIS.py