文章:Total Denoising: Unsupervised Learning of 3D Point Cloud Cleaning
代码:https://github.com/phermosilla/TotalDenoising
1 环境配置:
1.1 系统环境
ubuntu18.04
python3.7
tensorflow1.13.1
1.2 终端下安装conda环境并下载相关依赖包
1.2.1 创建conda虚拟环境并激活
# 创建名为Py37TotalDenoising的虚拟环境
conda create -n Py37TotalDenoising python=3.7
# 激活
conda activate Py37TotalDenoising
1.2.2 安装tensorflow-gpu并指定版本
# 安装指定版本的tensorflow-gpu,下载速度慢的话可以选择镜像源
pip install tensorflow-gpu==1.13.1 -i https://pypi.mirrors.ustc.edu.cn/simple/
1.2.3 验证tenssortflow版本
# 进入python编程环境
python
# 执行脚本
import tensorflow as tf
# 查看tf版本
tf.__version__
# 查看gpu是否可用
# print(tf.test.is_gpu_available()) # ---- tf 1.x 版本测试
print(tf.config.list_physical_devices("GPU")) # ---- tf 2.x 版本测试
# 查看tf相关库(包括头文件库和库文件)
tf.__path__
结果路径类似于:
/home/username/anaconda3/envs/Py37TotalDenoising/lib/python3.7/site-packages/tensorflow
至此,我们需要手动安装的环境就搞定了,接下来按照官方提供操作步骤来操作
2 编译算子
2.1 安装MCCNN库并编译
首先,将MCCNN文件存放在源码的根目录下(…/TotalDenoising/MCCNN),然后进入到MCCNN目录并编译算子
cd tf_ops
python genCompileScript.py --cudaFolder *path_to_cuda*
sh compile.sh
# 或者
./compile.sh
1.path_to_cuda修改为安装cuda的文件位置,一般为/usr/local/cuda;
2.此外如果g++的版本太高(一般大于4.8.0的话),则需要通过vi或者vim编辑(通过3.第二行命令生成的compile.sh)compile.sh并将-D_GLIBCXX_USE_CXX11_ABI=0 改成 -D_GLIBCXX_USE_CXX11_ABI=1即可,不然会报错:symbol not define…;
4.最后在当前目录下会生成一些.o(目标文件)和.so(共享库文件)文件
2.2 编译源码算子
然后,回到源码目录下(…/TotalDenoising),创建进入到tf_ops目录(…/TotalDenoising/tf_ops),在该目录下手动创建build文件夹
mkdir build
tf_ops目录下的文件
其次,编译算子执行compile.sh命令,再该执行命令之前,需要修改一些里面的内容
vim compile.sh
圈出来的地方:
1.如果报symbol not define…的错误还是要将-D_GLIBCXX_USE_CXX11_ABI=0 改成 -D_GLIBCXX_USE_CXX11_ABI=1
2.相关路径需要改成你的tensorflow的路径(tf.__path__的输出结果)
修改完后,在执行脚本
sh compile.sh
# 或者
./compile.sh
同样会生成.o和.so文件(在build文件夹下)
3 训练
准备工作已经做完了,现在可以开始训练了,训练之前需要先下载官网的数据集。由于数据集RueMadame的官网连接失效,只能选择提供的另一个数据集NoisyDataSets下载解压到…/TotalDenoising目录下,然后使用命令
# 官网提供的命令--dataset 3是用于RueMadame数据集的,没有3则默认为dataset0,即使用的NoisyDataSets/NoisyColoredGaussianDataSet下的数据集
python Train.py --dataset
开始训练:
训练完成后生成的log文件夹下的log.txt文件的训练过程
生成的模型位于log文件夹下
4 测试
测试数据是TestMeshes下的点.off格式的文件,需要先将其转为.vox体素格式的文件
# 运行生成体素文件的代码
python GenerateVoxelMeshes.py
TestMeshes下会生成.vox文件
然后,运行测试脚本命令
# 选择官网给的命令,也可以自行选择相关参数
python3 Test.py --gaussFilter --dataset 0 --saveModels
生成的测试结果数据位于dnTestModels文件夹下
参考链接:https://blog.csdn.net/Meet_csdn/article/details/119615049