A Network Architecture for Point Cloud Classification via Automatic Depth Images Generation

论文原文链接:http://openaccess.thecvf.com/content_cvpr_2018/html/3120.html

来源:The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)2018

目录

Abstarct

Introduction

Main contributions of this paper

Related work

Overview

Result

Reference


Abstarct

提出一种新的点云分类网络架构。该方法的关键是将输入的3D无序点云自动转换成一系列有用的2D深度图,然后使用CNNs方法进行分类。本文提出的模型将点云转换成深度图,并能够结合任意神经网络结构来处理点云。将这些模型与目前最好的分类网络结合,其结果相比于state-of-the-art也是富有竞争力的。此外,由于网络框架能够自动地生成一些有用的2D图像来表示3D点云,因此在将来可以被用于点云可视化等其他方面。

Introduction

卷积神经网络(CNNs)在图像分类中取得了瞩目的效果,受此启发,本文构建了一个新的神经网络架构,该网络能够让处理2D图像的CNNs方法也能用到3D点云上。最近出现了一些新的方法(PointNet等等),可以直接对无序点云进行处理和分类,与该方法不同,我们设计了一些可将3D点云自动转换为2D图像的网络模型,然后在使用CNNs对其2D图像进行分类;另外,在一些3D格网模型分类中,以前有一些工作会事先对点云进行渲染生成图像操作,然而在我们的方法中,图像不会预处理阶段生成,而是在神经网络中学习得到。

首先,使用一个完全可微的网络结构从本质上预测出一个或多个有用的点云形状或特征视角。其次,另外一个可微的模型从这些视角进行渲染,生成相应的深度图。最终,第三个模块组合这些深度图并使用CNN进行分类。得益于生成的深度图和CNN网络,相比于当前同类研究,我们取得了有竞争力的分类结果。此外,在测试时,可以将这些视图作为额外的输出提取出来,用于点云的可视化。

Main contributions of this paper

提出一种新的用于点云分类的神经网络,相比于现在最好的研究,甚至在困难的噪声数据集上都取得了富有竞争力的结果。主要思想是将无序3D点云自动转换成有用的2D图像,然后使用目前研究得比较透彻的图像分类网络进行分类。

我们的方法通过预测有意义的视角方向,生成一个或一系列有用的点云深度图。我们举例说明了通过学习得到的视角方向及其相应的深度图能够用于其他的用途,例如一种点云的可视化。

我们提出一种完全可微的模型来生成深度图,通过集成一种点云筛选策略来表示完整的3D对象。这个模型能够用于将来的任务和点云架构中。

Related work

深度学习在点云数据上的应用 :        

点云是一种常见的3D数据,学者们提出来多种深度学习网络对其进行处理。最直接的方法是将点云转换成统一的体素网格,然后将CNNs方法应用到体素表达中。虽然在将点云转换成体素网络的过程中可以将常规的结构化数据加入其中,但是由于该计算方法成本过高,限制了点云的分辨率。尽管可以使用octree结构、field probing filter等方法解决这一问题,但是仍然存在体素网格分辨率低的问题。一些新的方法没有将点云转换成体素网格,而是直接处理无序点云。PointNet、PointNet++、Kd网络等。相比这些方法,我们首次抽取了一些列2D深度图,然后使用CNN网络对其进行分类。

利用3D数据的多视图 :      

很多深度学习方法使用多个2D视图来学习更多复杂的特征。例如MVCNN。相比这些方法,我们的方法可以自动学习到最有用的视图

使用CNNs进行图像识别 :         

我们的方法首次自动的提取2D图像使用CNNs方法进行分类。对于3D数据而言,难以获得像2D数据那样大的数据集,这正是为什么我们要从3D数据中抽取2D特征的原因。在本文中,我们使用ResNet对2D视图进行分类,使用ImageNet作为预训练数据集。

在神经网络中渲染深度图 :          

使用神经网络从3D几何物体中渲染2D图像是一件有趣的事情。空间转换网络STN可以得到3D体素网格的2D投影。OpenDR是一种三角几何体渲染器。我们的工作旨在直接从无序点云上生成深度图,此外,我们的工作主要集中学习内在的投影方向。

Overview

(图1)网络结构流程:输入点云数据P,指定视角数量K。第一个模型首先预测出K个最富含信息的点云视角,然后第二个模型渲染出这K个视角的深度图,最后使用第三个模型对K个深度图进行分类。上图给出了一个网络的示意图,其中K=2。

预测视角 :

第一个模型将点云作为输入,预测K个视角,其中K值由需要指定。本文基于PointNet进行视角预测。视角的预测需要顾及一些重要属性,例如数据输入排列不变性和变换不变性。PointNet通过最大池化层估计对称函数实现了输入排列不变性,通过预测仿射变换矩阵实现了变换不变性,最后一个全连接层构建的全局描述子用于分类。在本文中,每个视角都使用独立的PointNet进行预测,并将修改最后的全连接层,使之输出一个6D向量。使用6D向量构建旋转矩阵,将原始点云和旋转矩阵相乘,得到旋转之后的点云。

(图2)考虑内存限制,将输入点云进行降采样(采样比12.5%),然后使用PointNet进行视角预测,构建旋转矩阵,最后对原始点云进行旋转操作。


此部分目标主要是利用一些可微操作生成深度图。在【文献21】中,作者提出一种基于点云到图像平面的距离进行高斯插值来生成深度图的方法,这种方法最适合于一些小面积无重叠的点,但不适合于包含不同深度结构的点云。我们的方法使用双边滤波插值的方法,过滤那些属于离图像平面最远的平面上的点云。具体操作参见原文。生成深度图 :

(图3)上图中绿色点是插值点,红色点是被过滤掉的点。
【文献21】提出一种高斯插值方法会将所有点都插值,这会引起几何形状表达上的变形(上);
本文的插值方法会将一些红色点过滤,因为他们的深度值与像素值的最大值差异太大(下)。
(图4)不同σ生成的深度图,σ是本文方法中影响深度图光滑度的参数   
(图5)文献【21】高斯插值(上)与本文方法渲染结果(下)对比

 

基于图像的分类 :

最后一个模型,对之前生成的K个深度图进行分类。具体来说,我们使用K个ResNet50进行分类。ResNet50利用预训练权重作为初始值,采用ImageNet数据集作为训练样本集。

 

Result

(表1)视角方式对比:本文方法使用1个,2个,4个视角的结果和PointNet【文献17】结果对比。
旋转方式对比:数据集分别绕3轴随机旋转(3D)与仅绕y轴旋转(y-Axis)做对比。
评价指标对比:使用总体精度(overall)和类平均精度(class)作对比。

 

(表2)基于数据集增强的视角(Learned)和PCA变换视角(PCA)对比;
单个视角和多个视角对比;

 

(图6)上图展示了PCA视角通常是不明确的,很多重要的特征会被大的表面掩盖,PCA视角相当于是随机视角(详见原文附加材料)
(表3)三种视角对比:随机视角(Random)、基于数据集增强的3D旋转视角(3D Learned)、基于数据集增强的y轴视角(y-Axis Learned)
(图7)学习得到的视角的密度函数(上)
最不可能的视角的深度图(中)
最可能的视角的深度图(下)
(图8)学习得到的视角的密度函数及其分类概率最高的视角的深度图(lamps和beds)

 

(图9)上图是从两个视角生成的深度图的示例,相对于单一视角,两个视角互为补充提供了更多的信息

 

Reference

[17] C. R. Qi, H. Su, K. Mo, and L. J. Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. CoRR, abs/1612.00593, 2016. 1, 2, 3, 5, 6

[21] R. Roveri, A. C. O¨ ztireli, I. Pandele, and M. Gross. Point-ProNets: Consolidation of Point Clouds with Convolutional Neural Networks. Computer Graphics Forum, 2018. 1, 2, 3,4, 5

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值