RandLA-Net网络在Semantic3D数据集分割复现

最近一直在看些大场景点云分割的文章,它们的方法无非就是对邻域的点云信息进行编码学习特征,然后利用注意力等加权学习特征,最后在利用各种方法去聚合特征。有的网络比较复杂的还在结合上下文信息时去添加注意力模块或者融合不同尺度的的点云特征获取更好的分割效果。今天给大家复现一下RandLA-Net的Semantic3D数据集的训练过程。
首先,RandLA-Net中的复现环境是Ubuntu16.04,tf1.11,CUDA9.0版本的。但是我的电脑是Ubuntu18.04的,所以我尝试使用tf1.14去复现。
首先根据电脑的显卡去安装驱动,根据英伟达的驱动官网(https://www.nvidia.cn/geforce/drivers/)去下载和你电脑匹配的显卡驱动。
RandLA-Net网络在Semantic3D数据集分割复现_第1张图片
下载完驱动,进行安装,这里参考别人的博客进行安装,实测可以(https://blog.csdn.net/hxj0323/article/details/109021889)。
装完驱动后,因为我想使用的tensorflow是gpu-1.14的,所以我安装的CUDA是10.0,CUDNN是7.6.0,这里安装方法也可以参考上面博主的文章,并且如果电脑里面没有Anaconda的最好也去装一下。
装完后在电脑里面利用终端指令nvidia-smi查看是否安装了显卡驱动,利用指令nvcc -V查看安装的CUDA版本型号,软件安装完成之后,进行tf的安装。
RandLA-Net网络在Semantic3D数据集分割复现_第2张图片
打开终端,利用conda安装一个虚拟环境,python的版本采用3.7,装完环境之后,利用语句conda activate randla激活环境,进入环境之后,安装Tf,使用语句conda install tensorflow-gpu==1.14,里面一直yes就行,装完之后可以使用conda list指令查看安装的情况,并且按照要求安装的库去安装所需要安装的库。
RandLA-Net网络在Semantic3D数据集分割复现_第3张图片
首先去Semantic3d的官网去下载数据集,我们使用的是reduced-8,一共15个训练集+4个测试集,下载完之后,解压放到根目录的data下的制定文件夹中,解压完之后一共34个文件。
RandLA-Net网络在Semantic3D数据集分割复现_第4张图片
上图的另外两个文件夹是对数据集进行预处理得到的另外的文件,下面我们讲述这个过程。首先利用conda activate randla进入我们的虚拟环境中。然后cd RandLA-Net-master(我们创建的文件夹名字)/utils/cpp_wrappers/cpp_subsampling/进入到我们的这个文件夹中,然后使用指令python setup.py build_ext --inplace编译该模块。如果报错,可能你的电脑没有安装gcc,可以百度查询怎么安装,按此步骤继续编译nearest文件夹中的setup文件,编译好之后。它会在他们各自的文件夹中生成build文件夹和so文件。之后,在虚拟环境中运行data_prepare_semantic3d.py,这时可能会报错,如果一步一步来的话,修改helper_tool.py中的第1行改为import open3d,第15行改为import nearest_neighbors。修改完之后运行,可以得到下采样的点云(就是上述两个文件夹里面的数据)。
RandLA-Net网络在Semantic3D数据集分割复现_第5张图片
按照我们数据集的地址去修改上述路径,修改完之后,可以修改helper_tool.py文件中的epoch,batch_size等参数,然后运行main_Semantic3D.py进行训练。本人也是程序实践小白,所以都是自己一步一步进行摸索,如果有问题,可以评论区交流。

你可能感兴趣的:(计算机视觉,深度学习)