尝试基于云服务器进行randla-net的点云分割

基于源码的RandLA-Net(走不通,省时间的话建议跳转到下面基于TensorFlow2.X的标题)

一、租赁云服务器

这一步就注意选用的python3.7.10,兼容性好

 二、环境配置

1、载入数据集,有两个:1.RandLA-Net源码  2.S3DIS数据集

 注意:每个人的数据代码不同,需要找到自己的代码

2、下载相关的包

注意:由于源码用的是python3.5,它的helper_requirements.txt里面的包已经与python3.7不适配了。所以我们要进行替换,步骤如下:

1.打开helper_requirements.txt

2.将里面的内容用

numpy==1.19.5
h5py==3.1.0
cython==0.29.36
open3d==0.13.0  
pandas==1.3.5
scikit-learn==0.24.2
scipy==1.6.3
PyYAML==5.4.1

予以替换。注:这些包是我找到的适配python3.7.10的包,可以放心用。

3. cd到RandLA-Net路径下

cd data/RandLA-Net     

安装并下载包:pip install -r helper_requirements.txt

 

 4. 进行编译            sh compile_op.sh

 报错,寻找解决方法。。。。。。。

解决方法:cd到各个目录下,直接执行

 

 三、执行代码

1. 修改main_S3DIS.py中的self.path路径,把self.path = '/data/S3DIS'中的/去掉,即

self.name = 'S3DIS'
self.path = 'data/S3DIS'

 

2. 修改  data_prepare_s3dis.py   中的  

dataset_path = '/data/S3DIS/Stanford3dDataset_v1.2_Aligned_Version'

为dataset_path = 'data/S3DIS/Stanford3dDataset_v1.2_Aligned_Version'

都是把 / 去掉

 

3.在RandLA-Net目录中,新建data/S3DIS,将数据集放入其中

即data/RandLA-Net/data/S3DIS/Stanford3dDataset_v1.2_Aligned_Version

4. 组织数据:

python utils/data_prepare_s3dis.py

 5.开始训练:

python -B main_S3DIS.py --gpu 0 --mode test --test_area 1

报错:

 原因分析,源代码是基于TensorFlow1.X编写的,与服务器的TensorFlow2.X不兼容。

解决方法:降级到TensorFlow1.X,经过查询,TensorFlow1.15.0可以使用。

降级:pip install tensorflow==1.15.0   

问题解决不了,原因是源代码是基于TensorFlow1.X编写的,与服务器的TensorFlow2.X不兼容。但是找到了基于TensorFlow2.x的代码,参考学习一下


 

基于TensorFlow2.6的RandLA-Net:

https://github.com/luckyluckydadada/randla-net-tf2.git

luckyluckydadada/randla-net-tf2: Python 3.6, Tensorflow 2.6, CUDA 11.4 and cudnn in RTX 3090

在这里非常非常感谢代码提供者@Lucky Li !!!

一、数据编辑

由于我的S3DIS数据集在area5和area6有问题,所以我只训练area1-area4

进入randla-net-tf2-main/utils/meta/anno_paths.txt

删去area5和area6

二、环境配置

1.下载相关的包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple cython==0.29.15
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple open3d==0.13.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple open3d-python==0.3.0

pip install -r helper_requirements.txt   (这个记得先cd进randla-net目录再运行)

 

helper_requirements.txt:(里面的内容)

numpy
h5py==2.10.0
cython==0.29.15
open3d-python==0.3.0
pandas
scikit-learn==0.21.3
scipy
PyYAML

 

2.编译sh
sh compile_op.sh

 

三、执行

1.数据预处理

python utils/data_prepare_s3dis.py

预处理完成

2.数据训练

python -B main_S3DIS.py --gpu 0 --mode train --test_area 1

 报错,原因:爆显存了

解决方法:

将 batch_size=6 改为 batch_size=4;将 train_steps=500 改为 train_steps=750

成功开始训练!!!

 -----------------------------------------------------分割线------------------------------------------------------

作为入门的深度学习新手,我相信大家常常为没有一块好的显卡来进行训练而发愁,而大多数实验室又很难满足需求(主要是经费不足QAQ)。

在这里我推荐Featurize!!!

之前各大平台的云服务器也多多少少用过,主要存在以下问题:

1.炼丹环境要自己配

2.价格比较昂贵

3.上传的数据集没有办法保存,每次炼丹都要重新上传

而这些问题在Featurize里都得到解决,环境已经帮我们配置好了,数据集和代码可以存在云盘里,价格有多种可选,有时还有活动。

噢,还有我个人觉得最重要的一点:Featurize界面非常简洁干净,这是很多厂商做不到的一件事。

如果有心动的伙伴可以点击下面的链接,这是我的邀请码,有感兴趣的兄弟可以试试。

https://featurize.cn?s=db3ee1bf052c476bb2c7288f12963cb8

------------------------------------------------------------------------------------------------------------------------

 训练结果:

最好的精度 Iou:61.233

达到要求!

 

踩坑:

若要进行可视化,在服务器上是不行的,需要在本地进行部署,所以打算重新进行训练。

下一篇博客将是基于Windows11系统的 RandLA-Net点云分割。(因为硬盘空间不够,不能安装Ubuntu系统了QAQ)

目标是实现分割结果可视化。

 

posted @ 2025-03-31 17:16  穿西装的Tom  阅读(119)  评论(0)    收藏  举报