【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行

【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行

提示:最近开始在三维深度学习方面进行研究,从PointNet开始入手,对这个系列的网络进入深入学习,记录相关知识点,分享学习中遇到的问题已经解决的方法。


文章目录

  • 【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行
  • 前言
  • 一、数据集说明
    • 1.点云数据
    • 2.ModelNet10/40【点云分类】
    • 3.ShapeNet 【部件分割】
  • 二、PointNet模型运行
    • 1.下载源码并安装环境
    • 2.下载并编译可视化工具
    • 3.Classification【分类】
      • 训练
      • 测试
    • 4.Segmentation【分割】
      • 训练
      • 测试
  • 总结


前言

PointNet是由斯坦福大学的Charles R. Qi等人在《PointNet:Deep Learning on Point Sets for 3D Classification and Segmentation》【论文地址】一文中提出的模型,是点云神经网络的鼻祖,它提出了一种网络结构,可以直接从点云中学习特征。
在详细解析PointNet网络之前,首要任务是搭建PointNet【Pytorch-demo地址】所需的运行环境,并模型完成训练和测试工作,展开后续工作才有意义。


一、数据集说明

CloudCompare是一个三维点云(网格)编辑和处理软件,百度云链接【提取码:q56f】。
解压运行"CloudCompare.exe"安装完成。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第1张图片

1.点云数据

点云中每个点都包含了空间坐标信息,这些信息之间构成一定的集合空间特性:

  1. 点云数据是无序的,排列顺序并不改变其指代的信息 ;
  2. 扫描与视角不同导致点云数据近密远疏;
  3. 点云是非结构化数据,不同于图像像素的结构化,因此不利于CNN进行卷积操作。

如何对点云数据进行特征提取是需要解决的任务

2.ModelNet10/40【点云分类】

ModelNet10/40是一个基础的3d点云图像分类的数据集,它里面全部都是CAD手工绘制的点云数据,在pointnet和pointnet++都有使用这个数据集进行分类。官网下载(部分可直接下载,其它需要邮件作者):
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第2张图片
百度云链接【提取码:ca89】:
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第3张图片

3.ShapeNet 【部件分割】

ShpaeNet是一个大规模的3d点云部件分割的形状数据集,在pointnet和pointnet++都有使用这个数据集进行部件分割。官网下载需注册审核才能下载,审核较慢):
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第4张图片
百度云链接【提取码:evqi 】
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第5张图片


二、PointNet模型运行

1.下载源码并安装环境

在Windows10环境下,建议安装安装anaconda环境,方便搭建专用于PointNet模型的虚拟环境。

# 创建虚拟环境
conda create -n PointNet-Pytorch python==3.7.4
# 查看新环境是否安装成功
conda env list
# 激活环境
activate PointNet-Pytorch
# 下载githup源代码到合适文件夹,并cd到代码文件夹内
cd pointnet.pytorch-master
# 通过清华源,下载所需的第三方包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .
# 查看所有安装的包
pip list
conda list

提示(我也是第一次接触,感觉挺有用,分享大佬博客供大家参考)
pip install -e . 解析
setup.py 解析

最终的安装的所有包。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第6张图片
检查torch版本发现安装的是torch-cpu版本

# 查看pytorch版本
import torch
print(torch.__version__)
# 查看cuda版本
print(torch.version.cuda)
# 查看cuda是否可用
print(torch.cuda.is_available())
# 查看可用cuda数量
print(torch.cuda.device_count())

【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第7张图片
卸载torch-cpu版本,手动安装符合主机的torch-gpu版本,解决后续会出现的“AssertionError: Torch not compiled with CUDA enabled”问题。
1.打开cmd,执行下面的指令查看CUDA版本号:

nvidia-smi

【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第8张图片
2.安装GPU版本的torch:【官网】
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第9张图片
conda/pip安装都行:

# 通过清华源,下载所需的第三方包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117

检查新的torch版本
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第10张图片
测试过程需要安装的包

# 安装opencv
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
# 安装matplotlib
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

2.下载并编译可视化工具

win10系统下还是有点麻烦,需要保证主机安装了以下环境!!!【可跳过到本小节最后我会提供需要编译得到的dll和数据集】

win10配置GCC/G++运行环境
win10配置wget
win10配置gitbash
Windows下需打开修改build.sh 文件内容,因为.so文件是Linux动态链接库,相对应Windows的动态链接库则是.dll。

g++ -std=c++11 $SCRIPTPATH/../utils/render_balls_so.cpp -o $SCRIPTPATH/../utils/render_balls_so.so -shared -fPIC -O2 -D_GLIBCXX_USE_CXX11_ABI=0 
#修改为
g++ -std=c++11 $SCRIPTPATH/../utils/render_balls_so.cpp -o $SCRIPTPATH/../utils/render_balls_so.dll -shared -fPIC -O2 -D_GLIBCXX_USE_CXX11_ABI=0 
# 打开gitbash进入到pointnet的script文件夹内
cd script
#编译可视化工具
bash build.sh 
# 下载数据集
bash download.sh

打开gitbash在script目录下执行上述命令。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第11张图片
可能执行完、"bash build.sh "后没有产生dll文件,原因是因为gcc/g++编译过程缺少"libisl-*.dll"文件。
解决方式是下载x86_64-4.9.1-release-posix-seh-rt_v3-rev0.7z文件【百度云链接 提取码:mh6n】,解压后将所有文件拷贝/替换到MinGW的安装路径之下。【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第12张图片
正确编译后产生render_balls_so.dll文件,或者通过提供的百度云链接下载解压。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第13张图片
用命令下载完成的数据集,或者通过提供的百度云链接下载解压。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第14张图片
跳到这里的朋友 需要分别把下列文件放到正确的文件夹
render_balls_so.dll 百度云链接【提取码:8oam】
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第15张图片
ShapeNet 百度云链接【提取码:evqi】下载解压
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第16张图片

3.Classification【分类】

训练

# pointnet.pytorch-master/utils文件夹下
cd utils
# 训练
python train_classification.py --dataset=E:\deep-learning-for-image-processing-master\3dPointCloud\pytorch\pointnet.pytorch-master\shapenetcore_partanno_segmentation_benchmark_v0\ --nepoch=4 --dataset_type=shapenet

【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第17张图片
解决出现的“RuntimeError: An attempt has been made to start a new process…”问题:
1.关闭多线程: 设置train_classification.py中的workers=0。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第18张图片
2.加上if name==‘main’: 将要运行的部分放进if name==‘main’:中【强烈推荐】。
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第19张图片

测试

# pointnet.pytorch-master/utils文件夹下
cd utils
# 测试 cls_model_3.pth是训练好的模型
python show_cls.py --model cls/cls_model_3.pth 

【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第20张图片

解决出现的“FileNotFoundError: [Errno 2] No such file or directory: 'shapenetcore_partanno_segmentation_…synsetoffset2category.txt’”问题:
1.修改show_cls.py中root中的路径:
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第21张图片
2.修改和添加部分代码【强烈建议】:
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第22张图片
同时测试命令增加dataset路径

python show_cls.py --model cls/cls_model_3.pth --dataset=E:\deep-learning-for-image-processing-master\3dPointCloud\pytorch\pointnet.pytorch-master\shapenetcore_partanno_segmentation_benchmark_v0\

4.Segmentation【分割】

训练

# pointnet.pytorch-master/utils文件夹下
cd utils
# 训练
python train_segmentation.py --dataset=E:\deep-learning-for-image-processing-master\3dPointCloud\pytorch\pointnet.pytorch-master\shapenetcore_partanno_segmentation_benchmark_v0\ --nepoch=5 --class_choice=Chair

出现的“RuntimeError: An attempt has been made to start a new process…”问题,解决方法如上。

测试

# pointnet.pytorch-master/utils文件夹下
cd utils
# 测试 cls_model_3.pth是训练好的模型
python show_seg.py --model seg/seg_model_Chair_4.pth --dataset=E:\deep-learning-for-image-processing-master\3dPointCloud\pytorch\pointnet.pytorch-master\shapenetcore_partanno_segmentation_benchmark_v0\ --class_choice Earphone

【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第23张图片
【三维深度学习】Pytorch-PointNet系列之win10下环境安装与demo运行_第24张图片

界面交互快捷键 功能
q 程序是死循环的, 退出程序
t+q 变换颜色
q 放大
m 缩小
r 恢复原状
s 保存图片

总结

尽可能简单、详细的介绍PointNet的安装流程以及解决了安装过程中可能存在的问题。后续会根据自己学到的知识结合个人理解讲解PointNet的原理和代码。

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