我们往往需要数据的方法理解和处理三维数据,从而带来非常强烈的需求,在三位数据上的深度学习:3D Deep Learning。
3D 数据表达
我们往往需要数据的方法理解和处理三维数据, 通过深度传感器扫描得到的图像。
PointCloud
Mesh特别适合做建模和渲染。
Volumetric 是把空间划分成三维的网格(栅格)。
Multi-View Images RGB(D)使用图片的方式表达三维。往往用在可视化的方面。
为什么使用点云数据做3D深度学习
1)更接近原始的传感器数据。比如激光雷达(LiDAR)扫描到的数据,直接就是点云。Depth Sensor扫描到的图像也是点云,只不过是局部的点云。
2)数据表达更加简单
比较适合端到端的学习。数据结构简单,比如Mesh需要选择面片的形状和大小,Volumetric需要选择网格的大小。图像拍摄角度,另外对3d表达是不全面的,只能表达若干视角。
之前大部分工作都是集中在手工设计的点云特征上。针对特定的任务进行的假设,很难做通用型的工作,。所以更希望对特征进行深度学习的方法。
1)Irregular 不规则数据。不是定义在一个规则的网格上,数量也是任意数量。
栅格化:
所以之前有很多理论是把点云在均匀的分布在三位网格中(Voxelization)。然后通过3DCNN的拓展来处理这些数据。
缺点:
1)高算力: 3D的conv具有非常高的空间复杂度和时间复杂度。随着分辨率的增长都是3次方的增长。所以很多低分辨率,来降低复杂度。
投影:
讲3D数据投影成2D数据来计算,牺牲了3D表达信息。很多时候也需要决定投影角度,也不是一个简单的问题。
提取手工特征 + FC的方法。
网络数据性能,由手工提取特征来限制。
点云数据的特点:
1)Permutation Invariance 置换不变性。
点云数据表达上,是点的集合,跟顺序不相关。神经网络上对称函数是置换不变的。简单的置换函数有(MaxPool,sum,avg)等。
在这样的情况下,如何用神经网络来实现对称函数?
映射到更高维的空间,这样是个冗余的空间,因为冗余在对称操作中,可以保留信息。
h是复用到每一个电商,g是对称的。下面是个原始point。
MLP多层感知器,g取maxpooling。保证它是对称的。
实际上p