今天刚刚得到消息,之前投给IROS 2017的文章收录了。很久很久没有写过博客,今天正好借这个机会来谈谈点云卷积网络的一些细节。
1、点云与三维表达
三维数据后者说空间数据有很多种表达方式,比如:RGB-D 图像,体素图像,三维点云等。这些三维数据的表达方式各有特点:RGB-D 图像可以直接从Kinect 读到,而且是规整的,适合直接用于现存的图像处理框架。体素图像更直观的展示物体的三维形貌,更直接的表达物体表面空间位置关系,同时,很容易将图像中成功的方法推广到体素图像中。而三维点云的表达更加紧凑,同样分辨考虑情况下,三维点云的表达占更小的空间(三维点云可以认为是体素图像的紧凑编码,即记录体素图像中 occupied voxel 的坐标)。同时,LiDAR 点云转RGB - D 会有很多空洞。所以,我们致力于设计一种通用的方法,利用点云来分析物体表面所传达的信息。
2、点云卷积
卷积神经网络是深度学习中具有代表性的一种模型,很成功的解决了图像分割,识别,检测,分析,caption,questioning等不同层次的问题。根据我们的理解,卷积网络的成功之处在于巨大的容量,可以容纳更多信息,在流形中容易形成更好的连续性;从局部到整体层级式的映射,卷积核经过多层映射后有巨大的接受域,模型既含有局部信息又含有物体的整体信息;去中心化的结构,卷积过程中对所有的像素都没有主观偏好性。最让我们感兴趣的,是卷积这种操作通过综合周边信息和非线性映射来优化局部的表达,又通过局部表达的综合来给出整体描述。同时,和卷积配合的池化操作可以给模型带来微小的局部不变性。这些优良的性质启发了我们将卷积这种操作用在三维数据上。
最容易实现的三维卷积网络是在体素图像上进行三维卷积操作。但体素图像往往都有其缺点:1、所谓三维往往是2.5维,物体的自遮挡是无法忽略的,2、三维卷积操作需要多搜索一个维度,3*3*3的三维卷积核计算量近大于在图像上进行5*5卷积核的操作。同时,100*100*100的三维体素图像尺寸上相当于1000*1000的二维图像,所以三维卷积是比较昂贵的操作。3、三维体素图像(binary, VoxNet)含有大量的空白,也就是0,物体自遮挡,内部信息都是无法访问的。所以大量的卷积操作都不是很划算。所以我们考虑将卷积这种操作移植到点云上。
点云本身具有无序性。也就是对点云进行随意排序它对物体的表达都是一致的。对无序序列进行训练本身似乎听起来是一件不太可能的事情。当前阶段的分类网络都是以泛化(generalization)为主,训练样本如果是无序的,那么同一件东西则有完全 非近似 的表达,遑论统一。所以,IROS的工作介绍了如何在点云上建立顺序、卷积操作、以及最后形成网络的方法。