体素神经网络:
区别多通道2D卷积 和3D卷积,主要区别体现在卷积核滑动的方向;
代表的有voxnet,它的基本架构如下:
github https://github.com/Vectorized/VoxNet-Tensorflow tensorflow版本
点云神经网络:
点云对应的物体识别的特点
• 无序
点云是点坐标的集合,集合内的元素没有次序
• 刚体运动不变性
对旋转、平移不变
• 可变性
• 点云分布疏密程度差异、位置噪声、离群点噪声、微小畸变
点云预处理函数ℎ(∗)和𝛾 ∗ 可以用MLP(代码中是坐标x/y/z的线性变换)实现;
𝑔 ∗ 可以用max pooling实现(论文中尝试了average pooling等降采样方法,发现max pooling最好)
对特征使用max pooling,可以证明max pooling能够使得参考点云基础上增加或者删除部分点的条件下,得到相同的网络输出
这样对点云的疏密就不敏感;
下图中x代表点云中某个点,h代表特征提取层,g叫做对称方法,r代表更高维特征提取,最后接一个softmax分类。g可以是maxpooling或sumpooling,也就是说,最后的D维特征对每一维都选取N个点中对应的最大特征值或特征值总和,这样就可以通过g来解决无序性问题。pointnet采用了max-pooling策略
pointnet 架构:
这个T-Net 就是一个3*3的矩阵,就相当于对点云做了一次旋转变换;
空间变换网络解决旋转问题:三维的STN可以通过学习点云本身的位姿信息学习到一个最有利于网络进行分类或分割的DxD旋转矩阵(D代表特征维度,pointnet中D采用3和64)。至于其中的原理,我的理解是,通过控制最后的loss来对变换矩阵进行调整,pointnet并不关心最后真正做了什么变换,只要有利于最后的结果都可以。pointnet采用了两次STN,第一次input transform是对空间中点云进行调整,直观上理解是旋转出一个更有利于分类或分割的角度,比如把物体转到正面;第二次feature transform是对提取出的64维特征进行对齐,即在特征层面对点云进行变换。
原文链接:https://blog.csdn.net/qq_15332903/article/details/80224387