CVPR 2017之#CNN论文精选, PointNet:端到端3D图像(点集)分类与分割

计算机科学很大程度上是权衡“现实”和“理想”的方法学 — David 9

3D图像的分类与分割问题,虽然理想上可以用3D卷积构造深度网络,但事实上, 其巨大计算开销不允许我们直接使用卷积对3D云图集进行训练.  试想2D卷积(GoogleNet, ResNet, Alexnet)训练时间就已经让人捉急了, 何况样本是3D云图:

幸运的是现实再残酷, 人类总能找到暂时解决问题的方法, PointNet就是一个权宜之计:它实现端到端3D图像(点集)分类与分割:

论文不使用3D卷积, 而是用深度网络模拟通用对称函数

来自:https://arxiv.org/pdf/1612.00593.pdf

输入总共n个点的无序云图点集({x1,x2 … , xn}), 通用函数f 输出该云图分类(汽车,书桌,飞机)。其中h函数用MLP网络模拟:

其中n就是云图的点个数,(64, 64)代表有两层mlp网络输出层,输出分别是64,64。

事实上mlp实现可以用2D卷积(shared局部临近点相关性)代替,见源码

# Point functions (MLP implemented as conv2d)
net = tf_util.conv2d(input_image, 64, [1,3],
                     padding='VALID', stride=[1,1],
                     bn=True, is_training=is_training,
                     scope='conv1', bn_decay=bn_decay)
net = tf_util.conv2d(net, 64, [1,1],
                     padding='VALID', stride=[1,1],
                     bn=True, is_training=is_training,
                     scope='conv2', bn_decay=bn_decay)

而上述通用对称函数中,g函数用最大池化层(max pool)模拟:

最后看看拼接在一起的PointNet分类网络架构全貌:

为了使输入云图对(平移,拉伸,翻转等)转换不敏感,文章在输入数据后,加入T-net转换网络:

实际上T-net也是一些2D卷积的堆叠, 见源码

至此, 该架构已经考虑到3D无序点集训练的以下3个特征:

1. 无序性,训练输入数据应该是3D无序点集

2. 相邻点之间的关联信息,3D云图中相邻点不是隔离无联系的,相邻点的交互信息必须考虑进去(通过共享的MLP或者2D卷积解决)

3. (平移,拉伸,翻转等)转换不不变性 (通过转换网络T-net解决)

这是3D图像分类的key idea,如果要实现图像分割还有一些小技巧在文中提到,这里就不一一分析。

总之,通过深度网络构造一个通用对称函数,模型最终学习到一些可以总结3D图像shape的散点,是2D卷积使用在3D问题上很有启发意义的文章。

 

参考文献:

  1. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
  2. https://github.com/charlesq34/pointnet
  3. https://en.wikipedia.org/wiki/Voxel

本文采用署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com

或直接扫二维码:

发布者

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

《CVPR 2017之#CNN论文精选, PointNet:端到端3D图像(点集)分类与分割》上有4条评论

  1. 大哥,你好!有几个问题想问一下,谢谢!
    1. 文章中“对齐”是什么意思呢?点云的transformations为什么会改变结构呢?
    2. 在训练对齐矩阵的时候,对点云进行对齐之后,为什么还要对特征点进行对齐呢?还有这个特征点的提取是怎么提取的呢?
    3. 对称函数中,x集合中的s代表什么意思呢?没有看懂,还有就是γ是什么呢?在网络中,f函数近似的那个不等式中,h函数输入的是1024维的向量xi,还是三维的呢?
    对于深度学习和点云,只了解一点,因此对于论文,感觉看的很吃力,问题可能比较低级。谢谢你的回答
    非常谢谢你的回复!

    1. 第三个问题,我当时看应该是3维的,前两个问题不是很明白你说的“对齐” ?
      如需进一步交流可以加我微信:david9ml

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注