深度学习在几何空间中的应用(一):三维可视化
前言目前点云方面的研究是一个热门方向,点云分类、零件分割、语义分割等研究正处于热门研究时期;
深度学习大热以来,渐渐地把二维世界里的框架,或移植,或改进,运用到三维世界中来,那么如何将点云可视化呢?This is a question.
下面让我们一起来探索。
可视化
点云数据准备
如无特别说明,本系列使用的数据是ModelNet40,ModelNet40包含了来自40类的12311个三维形状,其中9843个文件用来训练,2468个文件用来测试。
系统环境操作系统:ubuntu16.04或者windows10,建议在Ubuntu下开发
编程软件:PyCharm
语言环境:Python3.6
python包依赖
使用python3.6读取点云文件,需要提取安装numpy、h5py、mayavi、matplotlib,其中安装mayavi的方法如下(前提:python3.x和64位系统):1
2pip install mayavi
pip install PyQt5 # GUI
故所需要的包有:1
2
3
4
5
6
7import os
import sys
import numpy as np
import h5py
from mayavi import mlab
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
在线方式(ubuntu16.04系统下)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 当前py文件所在的路径
print(BASE_DIR) # 显示py文件当前路径
sys.path.append(BASE_DIR) # 加入到系路径里
# download modelnet40 dataset
# 将数据集下载到当前py文件所处路径里的data文件夹里,假设当前py文件在
# BASE_DIR=E:/PointCloud路径里,那么数据集将下载到E:/PointCloud
DATA_DIR = os.path.join(BASE_DIR, 'data')
if not os.path.exists(DATA_DIR): # 如果不存在此文件夹
os.mkdir(DATA_DIR) # 新建data文件夹
# 数据集应在BASE_DIR/data/modelnet40_ply_hdf5_2048里,如果不存在
# BASE_DIR/data/modelnet40_ply_hdf5_2048文件夹,则下载数据集
# modelnet40_ply_hdf5_2048.zip并解压,且输出.zip文件
if not os.path.exists(os.path.join(DATA_DIR, 'modelnet40_ply_hdf5_2048')):
# 数据集文件网址
www = 'https://shapenet.cs.stanford.edu/media/modelnet40_ply_hdf5_2048.zip'
# 返回path最后的文件名,即zipfile=modelnet40_ply_hdf5_2048.zip
zipfile = os.path.basename(www)
os.system('wget %s; unzip %s' % (www, zipfile)) # wget:下载,unzp: 解压
# zipfile=modelnet40_ply_hdf5_2048.zip
# zipfile[:-4]=modelnet40_ply_hdf5_2048</