基于Windows11系统进行的RandLA-Net点云语义分割

前情提要:之前用了云服务器成功进行了RandLa-Net点云语义分割,并取得了分类精度达61.33%的良好效果,但是云服务器无法进行可视化,转入到本地也比较麻烦。

然后我估计着也有很多朋友想要用Windows系统进行点云分割,所以我就先踩个坑了。

 

一、数据集准备

还是老样子S3DIS数据集,我就只训练Area1~Area4了,因为5和6有点问题。

 

二、环境配置

1、环境介绍

因为是Windows系统,所以我们需要装好CUDA、cuDNN、Anaconda、Pycharm、TensorFlow和Git(git等下有妙用),我相信对想到进行RandLA-Net点云语义分割的朋友来说,环境配置肯定不是问题,

在这里我就不过多进行阐述了,主要介绍一下我的配置和版本,安装教程网上都有。

我的环境:

显卡:RTX3060Latop (学生党没钱买台式显卡QAQ)

CUDA:12.6

cuDNN:8

Python:3.7

Anaconda:无所谓,别太老就行

Pycharm:无所谓

Git:无所谓

TensorFlow:去官网下载适合python3.7的本地安装包,注意是GPU版本的,别下错了!

 

 2、进行配置环境

1.打开Anaconda Prompt,创建虚拟环境randlanet_win

代码:conda create -n randlanet_win

成功创建!

2.激活虚拟环境并安装相应的包

激活虚拟环境:conda activate randlanet_win

安装Python3.7:conda install python=3.7

安装TensorFlow:

先cd到你下载的TensorFlow包的目录下 

 然后进行pip安装:pip install tensorflow_gpu-2.6.0-cp37-cp37m-win_amd64.whl

成功安装!

接下来要安装各种库和包了:

安装open3d,记得分开输入代码执行

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

 

 安装open3d时报错,与TensorFlow冲突,后面我查看发现,官网上只更新到2.6(有点坑人了),所以我们需要重新安装TensorFlow2.7,在这里我用清华云安装吧

pip install tensorflow-gpu==2.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple             (直接安装就可以了,Anaconda会自己卸载掉2.6版本的)

 有点大,需要稍微等一会。

成功安装!并且没有冲突了

 接下来安装helper_requirements.txt里面的包

先cd到项目路径下,再通过pip进行安装

pip install -r helper_requirements.txt

 成功安装!接下来可以开始尝试跑代码了

三、运行代码

1、为pycharm添加Conda解释器

打开pycharm,加载项目:

 打开设置,找到项目,添加本地解释器,选择我们刚刚配置好的rnadlanet_win:

 需要稍等一会,因为windows环境下pycharm检查软件包会比较慢。(吃个饭先。。。。。。)

 

2.接下来是GIT的妙用

 由于windows下pycharm的终端无法直接使用sh文件,所以我们需要调用GIT去运行。

同样是打开设置,找到工具——终端

 看到Shell路径,我们找到Git的下载目录——bin——sh.exe,将其设置为Shell路径。

这样我们就能在pycharm的终端运行compile_op.sh了

用指令 ./compile_op.sh即可运行。

 3.在randla-net-tf2-main目录新建data文件夹,在data文件夹新建S3DIS文件夹,将数据集放进去

 4.由于我的Area5和Area6数据集有点问题,需要作修改,所以数据集没问题的朋友可以跳过这一步。

打开randla-net-tf2-main/utils/meta/anno_paths.txt,将里面关于5和6的索引删除。

 5.更改数据路径,将路径改为绝对路径

打开randla-net-tf2-main/utils/data_prepare_s3dis.py

更改数据集路径为:

 打开randla-net-tf2-main/main_S3DIS.py,同理:

 6.进行数据预处理

在pycharm终端输入代码python utils/data_prepare_s3dis.py

 报错:找不到sklearn,说明编译器没找到scikit-learn库

但我们明明已经安装了scikit-learn库

 

 首先考虑版本不对应,尝试更换scikit-learn库的版本

首先通过python -V知道了我的python版本是3.7.16,直接问DeepSeek看看

 可以看到deepseek推荐安装scikit-learn1.0

尝试一下

 安装成功并且没有与其它库发生冲突!

 但是还是没什么用,考虑直接在pycharm软件库中搜索

 然而没有什么用

但关闭pycharn重新打开后运行换了一个报错

 应该是由于open3d的版本原因,考虑换成0.12.0版本的

open3d问题解决了,又出现了新报错:

 是由于C++的编译没有成功导致的,考虑使用终端直接cd进目录进行编译,指令:python setup.py build_ext --inplace

(randlanet_win) PS H:\Github\randla-net-tf2-main\utils\nearest_neighbors>           python setup.py build_ext --inplace

 

 已经生成!


 

PS:方法错了,改代码改到红温了,等我这几天把调剂的事情弄好再继续更新吧

 

posted @ 2025-04-02 10:36  穿西装的Tom  阅读(337)  评论(2)    收藏  举报