【论文精读】Multi-view Convolutional Neural Networks for 3D Shape Recognition

Multi-view Convolutional Neural Networks for 3D Shape Recognition

原文地址:Multi-view Convolutional Neural Networks for 3D Shape Recognition
代码和数据:Code and data

这篇文章使用三维物体Multi-view(多视角)的二位渲染图片作为训练数据,基于CNN对三维物体进行识别。作者在文中说,这样做的识别效果相较于直接使用三维数据的方法要好很多。

Introduction

目前的物体识别方法都是基于二维平面图象的,对于三维的模型来说,如何表示模型是一个问题,Wu等人使用深度信念网络(deep belief network,DBN)对三维像素点标识的物体进行了识别(效果可能不太理想)。直觉上,三维模型中包含物体所有的空间信息,直接通过三维模型来识别似乎效果会更好,但是,使用二维的图片识别却有很多好处,比如:数据量比较小,训练比较快;有许多已经预训练的CNN架构。

使用多视角的二维图像进行物体识别的一个问题就是怎样把多个二维视角中的信息整合起来,为此,作者提出了multi-view CNN(MVCNN)架构。MVCNN有点像常规CNN在训练前扩充数据的操作(如对图像系进行旋转平移等),文中称之为“jittering”。MVCNN尝试去结合多视角的数据而并非简单的平均,这样能获得更多有关物体的信息。

Related Work

这部分介绍了三维物体的表示方法和CNN。

Shape descriptors

  • 3D shape descriptors
    polygon meshes, voxel-based discretizations, point clouds, or implicit surfaces
  • view-based descriptors
    三维物体的二维投影

将三维形状描述的数据应用在机器学习中有一些难度。首先,相比二维图像的数据库,三维模型的数据库太少了;另外,三维数据特征维度容易很高,造成过拟合和维数灾难。

使用二维图像描述三维模型有很多优势,维度相对较低,对三维形状的描述也具有鲁棒性。然而目前的大部分方法都是人工设计的特征,泛化能力不强,很难跨领域使用。

Convolutional neural networks

CNN在图像识别领域已经功勋卓著,有人也使用CNN对双目相机拍摄的图像进行三维物体识别,但是,本文能够以无特定顺序的任意数量的图像作为输入提取出一致的形状的特征描述。

本文的贡献点:研究了如何使用二维view-based特征描述来识别三维物体,同时通过使用view-pooling layer将不同的视图结合,最终得到单一的,简洁的形状描述算子。

Method

使用一般的平均或者排序方法来处理多个视角图像得到的特征描述算子并不适用,作者希望找到能够结合多个视角特征的方法产生单一的简洁的形状特征描述算子。

【论文精读】Multi-view Convolutional Neural Networks for 3D Shape Recognition_第1张图片

Input: Multi-view Representation

获取渲染图有两种方式:

  1. 类似图1,围绕着z轴每个三十度取一张图片,虚拟相机向下倾斜三十度。
  2. 使用正二十面体包围三维模型,在每个面的中心放置虚拟相机,然后依次旋转0°,90°,180°,270°(这里不太懂怎么旋转的)抓取四张图片,总共获得80张渲染的图片。

Recognition with Multi-view Representations

这一步要考虑如何将所有的投影图的特征整合来描述三维特征,以便进行下面的识别任务。

Image descriptors

考虑了一下两类图像描述算子:

  1. 基于Fisher vectors with multi-scale SIFT
    使用VLFeat,使用PCA进行特征维度压缩,压缩至80维,然后Fisher vector pooling with a Gaussian mixture model with 64 components, square-root and l2 l 2 normalization。
  2. CNN特征
    包括5个卷积层,3个全连接层,最后用Softmax分类。倒数第二层经过ReLU激活后用来描述图像特征,共4096维。网络是在ImageNet上预练过的。

两种方法都能获得比较好的特征描述算子。

Classification

使用一对多线性SVM作为分类器,在测试时,作者把12个视图中置信度最高的那个类别返回效果较好,若使用所有试图置信度的平均值则效果不好,有可能因为有些视图中并不包含三维模型的主要特征信息。

Retrieval

这里作者用 l2 l 2 范数定义了两个三维形状之间距离的度量方式如公式1。

distance

Multi-view CNN: Learning to Aggregate Views

对于直接使用三维数据训练的方法,上面的使用多个分离特征描述算子的方法已经好很多了,然而在很多情况下这种方法显得效率不高。比如在公式1中要求出 nx×ny n x × n y 个距离。另外,简单的将这些特征进行组合,如求平均,效果会不好。因此需要对多个视图的特征进行结合以便形成单一的,简洁的特征。

作者设计了MVCNN如图1中所示,所有角度的视图首先被分别输入CNN1(他们权值共享)中,之后被一起放入view-pooling layer,这一层中采用按元素取最大值的方式(参考这篇博文),然后将view-pooling layer的输出再送入CNN2。MVCNN可以使用随机梯度下降进行后向传播的训练。使用MVCNN可以得到更快速更优异的结果。

Low-rank Mahalanobis metric

这里使用Mahalanobis metric作为检索的准则,首先将特征描述算子 ϕRd ϕ ∈ R d 映射到 WϕRp W ϕ ∈ R p ,这样相同类别的形状 l2 l 2 距离会比较小,不同类别的会比较大。

Experiments

3D Shape Classification and Retrieval

【论文精读】Multi-view Convolutional Neural Networks for 3D Shape Recognition_第2张图片

【论文精读】Multi-view Convolutional Neural Networks for 3D Shape Recognition_第3张图片

表1和图2分别展示了与其他state-of-the-art方法的对比,可以看出表现要远远好于其他方法。

Saliency map among views

为了看出不同视图中哪些像素对最后的输出影响最大(即对特征贡献最大),这里介绍了显著图,由公式2得到。

这里写图片描述

【论文精读】Multi-view Convolutional Neural Networks for 3D Shape Recognition_第4张图片

Sketch Recognition: Jittering Revisited

在使用更深的网络和Jittering的数据后,作者对手绘素描物体的识别也达到了很高的水平

Sketchbased 3D Shape Retrieval

在使用手绘素描图对三维物体的检索中也收到了不错的效果。

Conclusion

使用二维图像去理解三维物体比直接使用三维物体的效果要好。直接使用分离的二维投影图像的特征也能收到不错的效果,但是将所有二维投影的特征整合的特征来描述三维物体效果更好。

未来研究的方向:找出二维视图的不同组合,哪些视图信息量大一些?多少视图才够用?能不能动态地选择视图;这个方法能否用在现实世界的三维物体中,或者直接应用的视频中而并非三维多边形网络模型中。

你可能感兴趣的:(【论文精读】Multi-view Convolutional Neural Networks for 3D Shape Recognition)