目前二维深度学习取得了很大的进步而且应用范围愈来愈广,随着三维设备的发展,三维深度学习获得了很大的关注。网络
最近接触了三维深度学习方面的研究,从pointnet入手,对此有了一点点了解但愿记录下来并分享,如有误但愿指正~持续更新学习
如下全部的解读基于点云分类。
spa
1、三维深度学习简介.net
2、点云存在的问题orm
3、pointnet网络结构详解blog
4、pointnet代码详解
图片
1、三维深度学习简介ip
2、点云存在的问题ci
咱们但愿获得的效果以下图右边:N表明点云个数,D表明每一个点的特征维度。不论点云顺序怎样,但愿获得相同的特征提取结果。
咱们知道,网络的通常结构是:提特征-特征映射-特征图压缩(降维)-全链接。get
下图中x表明点云中某个点,h表明特征提取层,g叫作对称方法,r表明更高维特征提取,最后接一个softmax分类。g能够是maxpooling或sumpooling,也就是说,最后的D维特征对每一维都选取N个点中对应的最大特征值或特征值总和,这样就能够经过g来解决无序性问题。pointnet采用了max-pooling策略。
2.旋转性:相同的点云在空间中通过必定的刚性变化(旋转或平移),坐标发生变化,以下图所示:
咱们但愿不论点云在怎样的坐标系下呈现,网络都能正确的识别出。这个问题能够经过STN(spacial transform netw)来解决。二维的变换方法能够参考这里,三维不太同样的是点云是一个不规则的结构(无序,无网格),不须要重采样的过程。pointnet经过学习一个矩阵来达到对目标最有效的变换。
3、pointnet网络结构详解
先来看网络的两个亮点:
再来看网络结构:
其中,mlp是经过共享权重的卷积实现的,第一层卷积核大小是1x3(由于每一个点的维度是xyz),以后的每一层卷积核大小都是1x1。即特征提取层只是把每一个点链接起来而已。通过两个空间变换网络和两个mlp以后,对每个点提取1024维特征,通过maxpool变成1x1024的全局特征。再通过一个mlp(代码中运用全链接)获得k个score。分类网络最后接的loss是softmax。
4、pointnet代码详解
好像也没有特别须要讲的……重点我都框出来了
网络模型部分
变换矩阵部分,以第一个STN为例