【点云训练】RandLA-Net Semantic3D

目录

 

1 编译

2 数据下载

3 数据预处理

4 训练

* Ubuntu18.04安装多个版本的GCC、G++

* ImportError: libcablas.so.9.0 No such file

* Distutils实现python的C/C++扩展


1 编译

这篇文章使用了C++代码,因此需要在本地进行编译。

sh compile_op.sh

运行后我报了:error: could not create 'build/temp.linux-x86_64-3.5'的错,网上的解决方法包括:

(1)chmod -R 777 xxx

(2)sudo python sh xxx

(3)python sh xxx --user

其中,sudo python使用的Python是系统默认的,需要修改usr/bin/python的软链接。

sudo rm -rf /usr/local/python
sudo ln -s ~/anaconda3/envs/randlanet/bin/python /usr/local/python

并将comple_op.sh和compile_wrappers.sh中的python xxx/python3 xxx前面添加sudo。修改后成功数据预处理。

 

2 数据下载

对于提前下载好的数据,修改download_semantic3d.sh文件中的BASE_DIR就好,这个地址是相对于RandLA-Net文件的。

 

3 数据预处理

我将helper_tool.py的引用函数部分修改为:

import utils.cpp_wrappers.cpp_subsampling.grid_subsampling as cpp_subsampling
import utils.nearest_neighbors.lib.python.nearest_neighbors as nearest_neighbors

修改后运行成功。

 

4 训练

报了ResourceExhaustedError的错,查下来是资源不足。在helper_tool.py中修改ConfigSemantic3D类中的batch_size和val_batch_size,运行成功。

 

* Ubuntu18.04安装多个版本的GCC、G++

参考:https://blog.csdn.net/liuweiyuxiang/article/details/81089609

gcc -v                      #查看当前gcc版本
ls /usr/bin/gcc*            #查看所有的gcc
sudo apt-get install gcc-5  #安装对应版本的gcc

sudo update-alternatives  --install  /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives  --install  /usr/bin/gcc gcc /usr/bin/gcc-7.5 40
sudo update-alternatives --config gcc

 

* ImportError: libcablas.so.9.0 No such file

tensorflow-gpu版本不符合

 

* Distutils实现python的C/C++扩展

C/C++通过编译和链接,生成Linux下的动态链接库文件.so,供python调用

ext_modules = [Extension(   # 每一个Extension实例描述一个独立的扩展模块
       "nearest_neighbors", # 指定扩展包名称
       sources=["knn.pyx", "knn_.cxx",],  # 指定源文件
       include_dirs=["./", numpy.get_include()], # 头文件
       language="c++",            
       extra_compile_args = [ "-std=c++11", "-fopenmp",], # 编译附加命令行选项
       extra_link_args=["-std=c++11", '-fopenmp'],
  )]

setup(
    name = "KNN NanoFLANN",  # 包名称
    ext_modules = ext_modules,
    cmdclass = {'build_ext': build_ext},
)

如RandLA中生成nearest_neighbors.xxx.so文件。调用时直接import nearest_neighbors as nearest_neighbors即可。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
在Win10系统下训练RandLA-Net点云语义分割模型,需要以下步骤: 1. 安装CUDA和CUDNN:RandLA-Net是基于深度学习框架PyTorch开发的,要在Win10系统上训练该模型,首先需要安装支持GPU计算的CUDA和CUDNN。 2. 安装Python和PyTorch:Python是深度学习常用的编程语言,安装Python后,通过pip安装PyTorch库。 3. 下载训练数据集:从相关资源网站下载点云语义分割数据集。常用的数据集有Semantic3D、S3DIS等。下载后,将数据集解压至指定目录。 4. 准备训练代码和配置文件:在下载好论文源码的基础上,将代码和配置文件放置在合适的文件夹中。根据具体需求调整配置文件中的参数,比如训练epoch数、批量大小、学习率等。 5. 数据预处理:对下载的数据集进行预处理,将点云数据转换为模型可接受的输入格式。预处理过程包括点云读取、数据标准化、特征提取等步骤。 6. 开始训练:运行训练代码,开始进行模型训练训练过程中,模型将根据配置文件中的参数进行前向传播、反向传播等操作,并根据损失函数进行模型参数的更新。 7. 模型评估和测试:训练完成后,可以对模型进行评估和测试。评估过程中,使用测试集对模型进行性能评估,如计算准确率、召回率、F1分数等指标。 8. 模型应用:经过训练的模型可以用于点云语义分割任务。将未标注点云数据输入模型,进行语义分割操作,得到点云中各个点的语义标签。 需要注意的是,训练模型所需的时间和计算资源与数据集的大小和复杂度有关。较大规模的数据集和复杂的模型需要更多的时间和计算资源来训练

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值