基于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:方法错了,改代码改到红温了,等我这几天把调剂的事情弄好再继续更新吧

浙公网安备 33010602011771号