MVCNN (ICCV2015)

Multi-view Convolutional Neural Networks for 3D Shape Recognition(MVCNN)

用于 3D 形状识别的多视图卷积神经网络

论文:Multi-view Convolutional Neural Networks for 3D Shape Recognition | IEEE Conference Publication | IEEE Xplore

代码(PyTorch):GitHub - jongchyisu/mvcnn_pytorch: MVCNN on PyTorch

摘要

  计算机视觉中一个长期存在的问题涉及用于识别的 3D 形状的表示:3D 形状应该用在其原生 3D 格式上运行的描述符表示,例如体素网格或多边形网格,还是可以用基于视图的描述符有效地表示? 我们在学习从 2D 图像上的渲染视图集合中识别 3D 形状的背景下解决了这个问题。 我们首先展示了一个标准的 CNN 架构,经过训练可以独立识别形状的渲染视图,并表明即使从单个视图中也可以识别 3D 形状,其准确度远高于使用最先进的 3D 形状 描述符。 当提供形状的多个视图时,识别率会进一步提高。 此外,我们提出了一种新颖的 CNN 架构,它将来自 3D 形状的多个视图的信息组合成单个紧凑的形状描述符,从而提供更好的识别性能。 可以应用相同的架构来准确识别人类手绘的形状草图。 我们得出结论,2D 视图的集合可以为 3D 形状识别提供大量信息,并且适用于新兴的 CNN 架构及其衍生物。

1.简介

  计算机视觉的基本挑战之一是从二维 (2D) 图像中推断出三维 (3D) 世界。 由于人们很少接触到 3D 对象模型,因此通常必须学习根据它们从各种角度的 2D 外观来识别和推理 3D 对象。 因此,计算机视觉研究人员通常从 2D 图像的 2D 特征开发对象识别算法,并使用它们对这些对象的新 2D 图片进行分类。

  但是,如果确实可以访问每个关注对象的 3D 模型呢? 在这种情况下,可以直接在 3D 特征上训练识别算法,例如体素占有率或表面曲率。由于引入了大型 3D 形状存储库,例如 3D Warehouse、TurboSquid 和 Shapeways,直接从 3D 表示构建此类 3D 形状分类器的可能性在最近已经出现。例如,当吴等人介绍了 ModelNet 3D 形状数据库,他们使用在体素表示上训练的深度信念网络架构提出了一个 3D 形状分类器。

  虽然直观地说,直接从 3D 模型构建 3D 形状分类器似乎是合乎逻辑的,但在本文中,我们提出了一个看似违反直觉的结果——通过从这些形状的 2D 图像渲染构建 3D 形状分类器,我们实际上可以大大优于直接构建的分类器 关于 3D 表示。 特别是,卷积神经网络 (CNN) 在一组固定的 3D 形状渲染视图上进行训练,并且在测试时仅提供一个视图,将类别识别准确率提高了 8%(77% → 85%)在 3D 表示上训练的最佳模型。 随着测试时提供的更多视图,其性能进一步提高。

  这个结果的一个原因是 2D 与 3D 表示的相对效率。 特别是,虽然全分辨率 3D 表示包含有关对象的所有信息,但为了在深度网络中使用基于体素的表示,可以在合理的时间内使用可用样本进行训练,看起来似乎 分辨率需要大大降低。 例如,3D ShapeNets 使用粗略的形状表示,即 30×30×30 的二进制体素网格。 相比之下,相同输入大小的 3D 模型的单个投影对应于 164×164 像素的图像,如果使用多个投影,则略小一些。 实际上,在增加显式深度信息(3D 模型)和增加空间分辨率(投影 2D 模型)之间存在固有的权衡。

  使用 2D 表示的另一个优点是我们可以利用 (i) 图像描述符的进步和 (ii) 大型图像数据库(例如 ImageNet)来预训练我们的 CNN 架构。 因为图像无处不在,而且有大量标记的数据集也很丰富,所以我们可以学习很多关于 2D 图像分类的通用特征,然后微调到关于 3D 模型投影的细节。虽然有可能某一天尽可能多的 3D训练数据将可用,目前这是我们表示的一个显著优势。

图 1. 用于 3D 形状识别的多视图 CNN(使用第一个相机设置说明)。 在测试时,从 12 个不同的视图渲染 3D 形状,并通过 CNN1 以提取基于视图的特征。 然后将这些跨视图汇集并通过 CNN2 以获得紧凑的形状描述符。

 

  尽管对视图进行独立分类的简单策略非常有效(第 3.2 节),但我们提出了如何使用称为多视图 CNN 的新架构将对象的多个 2D 视图中的信息“编译”成紧凑对象描述符的新想法 (图 1 和第 3.3 节)。 该描述符至少与对象的基于视图的描述符的完整集合相比,在分类方面提供的信息(并且在检索方面的信息略多)。 此外,它有助于使用类似的 3D 对象或简单的手绘草图进行有效检索,而无需采用基于图像描述符成对比较的较慢方法。 我们展示了 3D 对象分类、使用 3D 对象的 3D 对象检索和使用草图的 3D 对象检索(第 4 节)的最新结果。

  我们的多视图 CNN 与“抖动”相关,其中在训练期间添加数据的变换副本以学习对诸如旋转或平移等变换的不变性。 在 3D 识别的上下文中,视图可以被视为抖动的副本。 多视图 CNN 学习组合视图而不是平均,因此可以使用对象的更多信息视图进行预测而忽略其他视图。 我们的实验表明,这提高了性能(第 4.1 节),还让我们通过将网络的梯度反向传播到视图来可视化对象的信息视图(图 3)。 即使在传统的图像分类任务中,多视图 CNN 也可以更好地替代抖动。 例如,在草图识别基准上,在抖动副本上训练的多视图 CNN 比使用相同抖动副本训练的标准 CNN 表现更好(第 4.2 节)。

  预训练的 CNN 模型、数据和重现论文结果的完整源代码在http://vis-www.cs.umass.edu/mvcnn

2.相关工作

  我们的方法与先前关于 3D 对象和基于图像的 CNN 的形状描述符的工作有关。 接下来我们讨论这些领域的代表性工作。

  形状描述符。在计算机视觉和图形文献中,已经开发了一个大型的形状描述符语料库,用于绘制关于 3D 对象的推断。 形状描述符可以分为两大类:直接作用于对象的原生 3D 表示的 3D 形状描述符,例如多边形网格、基于体素的离散化、点云或隐式表面,以及描述物体形状的基于视图的描述符。 3D 对象在 2D 投影集合中的“外观”。

  除了 Wu 等人 最近的工作, 通过 3D 卷积网络从基于体素的对象表示中学习形状描述符,以前的 3D 形状描述符在很大程度上是根据形状表面或体积的特定几何属性“手工设计”的。 例如,形状可以用直方图或特征包模型来表示,这些模型由表面法线和曲率 、距离、角度、三角形区域或在采样表面点处收集的四面体体积、球面函数的属性定义 在体积网格中,在密集采样的表面点处测量的局部形状直径,多边形网格上的热核特征,或将 SIFT 和 SURF 特征描述符扩展到 3D 体素网格。 在此类 3D 形状描述符之上开发分类器和其他监督机器学习算法带来了许多挑战。 首先,与图像数据集相比,带有注释 3D 模型的有组织数据库的大小相当有限,例如,ModelNet 包含大约 150K 形状(其 40 类别基准包含大约 4K 形状)。 相比之下,ImageNet 数据库已经包含数千万张带注释的图像。其次,3D 形状描述符倾向于非常高维,由于所谓的“维度灾难”,使得分类器容易过度拟合。

  另一方面,基于视图的描述符具有许多理想的属性:它们相对低维、评估效率高,并且对 3D 形状表示伪影具有鲁棒性,例如孔洞、不完美的多边形网格镶嵌、嘈杂的表面。 渲染的形状视图也可以直接与其他 2D 图像、轮廓甚至手绘草图进行比较。 基于视图的方法的一个早期示例是 Murase 和 Nayar 的工作,它通过匹配对象在不同姿势和照明下的 3D 模型的大量 2D 渲染形成的参数特征空间中的外观来识别对象。 另一个在计算机图形设置中特别流行的示例是 LightField 描述符,它从从几个不同视点渲染的对象轮廓中提取一组几何和傅立叶描述符。 或者,可以将对象的轮廓分解为多个部分,然后用有向无环图(冲击图)表示 。 Cyr 和 Kimia定义了基于曲线匹配的相似性度量,并将相似视图分组,称为 3D 模型的纵横图。 艾茨等人将人体草图与基于局部 Gabor 滤波器的几种不同视图生成的 3D 模型的线条图进行了比较,而 Schneider 等人提出在 SIFT 特征上使用 Fisher 向量来表示人类的形状草图。 这些描述符很大程度上是“手工设计的”,有些描述符不能很好地概括不同的领域。

  卷积神经网络。我们的工作还与使用 CNN进行图像识别的最新进展有关。 特别是在 ImageNet 等大型数据集上训练的 CNN 已被证明可以学习用于许多视觉任务的通用图像描述符,例如对象检测、场景识别、纹理识别和细粒度分类。 我们表明,这些深层架构可以适应特定领域,包括 3D 对象的阴影插图、线条图和人体草图,以生成在各种设置中与其他基于视图或 3D 形状描述符相比具有卓越性能的描述符。 此外,它们紧凑且计算效率高。 现有的使用两个连接视图(双目图像)作为输入的 CNN 识别 3D 对象的工作。 相反,我们的网络学习了一种形状表示,它从任意数量的输入视图中聚合信息,没有任何特定的顺序,并且总是输出一个相同大小的紧凑形状描述符。 此外,我们利用图像和形状数据集来训练我们的网络。

  尽管在 3D 和 2D 形状描述符以及估计对象的信息视图(或方面图)方面有大量工作,但在学习结合基于视图的描述符进行 3D 形状识别方面的工作相对较少。大多数方法采用简单的策略,例如对从每个形状的不同视图中提取的描述符进行详尽的成对比较,或者从有序、一致的视图中连接描述符。 相比之下,我们的多视图 CNN 架构使用基于图像的 CNN 学习从形状视图中识别 3D 形状,但在其他视图的上下文中通过视图池层。 结果,来自多个视图的信息被有效地累积到单个紧凑的形状描述符中。

3.方法

  如上所述,我们在本文中的重点是为 3D 形状开发基于视图的描述符,这些描述符是可训练的,为识别和检索任务生成信息表示,并且计算效率高。

  我们基于视图的表示从由渲染引擎生成的 3D 形状的多个视图开始。 使用多个视图的一种简单方法是为每个视图生成一个 2D 图像描述符,然后根据某些投票或对齐方案直接使用各个描述符进行识别任务。 例如,一种朴素的方法是对各个描述符进行平均,将所有视图视为同等重要。 或者,如果视图以可重现的顺序呈现,也可以连接所有视图的 2D 描述符。 不幸的是,将 3D 形状与规范方向对齐是困难的,有时甚至是不明确的。 与上述简单方法相比,更需要组合来自多个视图的特征的聚合表示,因为它产生表示 3D 形状的单个紧凑描述符。

  我们的方法是学习使用包括视图池层的统一 CNN 架构来组合来自多个视图的信息(图 1)。 我们的 CNN 架构的所有参数都是有区别地学习的,以便为 3D 形状生成一个紧凑的描述符。 与 3D 形状的单视图表示之间的详尽成对比较相比,我们得到的描述符可以直接用于比较 3D 形状,从而显着提高计算效率。

3.1. 输入:多视图表示

  在线数据库中的 3D 模型通常存储为多边形网格,它们是与形成面的边相连的点的集合。 为了生成多边形网格的渲染视图,我们使用 Phong 反射模型。 网格多边形在透视投影下渲染,像素颜色通过插入多边形顶点的反射强度来确定。 形状被统一缩放以适应查看体积。

  要创建多视图形状表示,我们需要设置视点(虚拟相机)来渲染每个网格。我们尝试了两种相机设置。 对于第一个相机设置,我们假设输入形状沿一致的轴(例如 z 轴)垂直定向。 现代在线存储库中的大多数模型,例如 3D Warehouse,都满足这一要求,并且之前的一些识别方法也遵循相同的假设。 在这种情况下,我们通过在网格周围每隔 30 度放置 12 个虚拟摄像机来创建 12 个渲染视图(见图 1)。 摄像机从地平面升高 30 度,指向网格的质心。 质心计算为网格面中心的加权平均值,其中权重是面区域。 对于第二个相机设置,我们不使用关于形状一致直立方向的假设。 在这种情况下,我们从多个角度进行渲染,因为我们事先不知道哪些会产生良好的对象代表性视图。 渲染是通过在包围形状的二​​十面体的 20 个顶点放置 20 个虚拟摄像机来生成的。 所有相机都指向网格的质心。 然后我们从每个相机生成 4 个渲染视图,使用 0、90、180、270 度沿穿过相机和对象质心的轴旋转,总共产生 80 个视图。

  我们注意到,由于学习的滤波器对光照变化的不变性,使用不同的着色系数或光照模型不会影响我们的输出描述符,这在基于图像的 CNN 中也观察到。 添加更多或不同的视点是微不足道的,但是,我们发现上述相机设置已经足以实现高性能。 最后,在现代图形硬件上,从所有视点渲染每个网格不超过 10 毫秒。

3.2. 多视图表示的识别

  我们声称我们的多视图表示包含有关 3D 形状的丰富信息,并且可以应用于各种类型的任务。 在第一个设置中,我们直接利用现有的 2D 图像特征并为每个视图生成一个描述符。 这是利用多视图表示的最直接的方法。 但是,它会导致每个 3D 形状有多个 2D 图像描述符,每个视图一个,需要以某种方式集成以用于识别任务。

  图像描述符。 我们为每个 2D 视图考虑两种类型的图像描述符:基于具有多尺度 SIFT 的 Fisher 向量的最先进的“手工制作”图像描述符,以及 CNN 激活特征。Fisher 矢量图像描述符是使用 VLFeat实现的。 对于每个图像,多尺度 SIFT 描述符被密集提取。 然后使用 PCA 将这些投影到 80 维,然后使用具有 64 个分量、平方根和 L2归一化的高斯混合模型进行 Fisher 向量池化。

  对于我们的 CNN 特征,我们使用 VGG-M 网络,它主要由五个卷积层 conv1、...、5、三个全连接层 fc6、...、8 和一个 softmax 分类层组成。 倒数第二层 fc7(在 ReLU 非线性之后,4096 维)用作图像描述符。 该网络在来自 1k 个类别的 ImageNet 图像上进行了预训练,然后在训练集中 3D 形状的所有 2D 视图上进行了微调。 正如我们在实验中所展示的,微调可以显着提高性能。 与流行的 3D 形状描述符(例如,SPH、LFD)以及 3D ShapeNets相比,Fisher 向量和 CNN 特征在分类和检索方面都产生了非常好的性能。

  分类。 我们训练 one-vs-rest 线性 SVM(每个视图被视为一个单独的训练样本)以使用其图像特征对形状进行分类。 在测试时,我们简单地将所有 12 个视图的 SVM 决策值相加,并返回总和最高的类。 替代方法,例如平均图像描述符,会导致更差的准确性。

  检索。检索任务需要距离或相似性度量。 对于具有 nx 个图像描述符的形状 x 和具有 ny 个图像描述符的形状 y,它们之间的距离在方程式中定义。 1. 请注意,两个 2D 图像之间的距离定义为它们的特征向量之间的L2距离,即‖xi − yj‖2。

 

  为了解释这个定义,我们可以首先将 2D 图像 xi 和 3D 形状 y 之间的距离定义为 d(xi, y) = minj ‖xi - yj‖2。 然后给定 x 的 2D 投影和 y 之间的所有 nx 距离,这两个形状之间的距离通过简单的平均来计算。 在等式 (1),这个想法在两个方向上都适用,以确保对称。 我们研究了替代距离度量,例如所有 nx·ny 图像对之间的最小距离和平均图像描述符之间的距离,但它们都导致性能下降。

 

 3.3. 多视图 CNN:学习聚合视图

  尽管与现有的 3D 描述符相比,每个 3D 形状具有多个单独的描述符可以成功地进行分类和检索,但在许多情况下它可能不方便且效率低下。 例如,在方程 (1) 中,为了计算两个 3D 形状之间的距离,我们需要计算图像之间的所有 nx × ny 成对距离。 简单地平均或连接图像描述符会导致性能下降。在本节中,我们专注于学习聚合多个视图的问题,是为了将来自所有视图的信息合成为单个紧凑的 3D 形状描述符。

  

 

表 1. ModelNet40 数据集上的分类和检索结果。 顶部是使用最先进的 3D 形状描述符的结果。 即使在测试时只有一个视图可用(#Views = 1),我们基于视图的描述符(包括 Fisher 向量 (FV))也明显优于这些描述符。

当测试时有多个视图(#Views=12 或 80)可用时,基于视图的方法的性能会显着提高。 多视图 CNN (MVCNN) 架构优于基于视图的方法,尤其是在检索方面。

 

  我们在基于图像的 CNN 之上设计了多视图 CNN(MVCNN)(图 1)。 3D 形状的多视图表示中的每个图像分别通过网络的第一部分 (CNN1),在视图池层聚合,然后通过网络的其余部分 (CNN2) 发送。 网络第一部分的所有分支在 CNN1 中共享相同的参数。 我们在视图池层的视图中使用元素最大操作。 另一种方法是逐元素均值运算,但在我们的实验中并不那么有效。 视图池层可以放置在网络中的任何位置。 我们在实验中表明,它应该靠近最后一个卷积层(conv5)放置,以获得最佳分类和检索性能。 视图池化层与最大池化层和最大输出层密切相关,唯一的区别是它们的池化操作执行的维度。 MVCNN 是有向无环图,可以使用带有反向传播的随机梯度下降进行训练或微调。

  在 MVCNN 中使用 fc7(在 ReLU 非线性之后)作为聚合形状描述符,我们获得了比直接使用基于图像的 CNN 中的单独图像描述符更高的性能,特别是在检索方面(62.8% → 70.1%)。 也许更重要的是,聚合描述符很容易用于各种任务,例如形状分类和检索,并提供针对多个图像描述符的显著加速。

  MVCNN 也可以用作集成扰动图像样本(也称为数据抖动)的通用框架。 我们在 Sect 4.2. 的草图识别上下文中说明了 MVCNN 的这种能力。

  低秩马氏度量。我们的 MVCNN 针对分类进行了微调,因此检索性能没有直接优化。 尽管我们可以使用适合检索的不同目标函数对其进行训练,但我们发现更简单的方法可以很容易地产生显着的检索性能提升(参见表 1 中的第 12 行)。 我们学习了一个马氏度量 W,它直接将 MVCNN 描述符 φ ∈ Rd 投影到 W φ ∈ Rp,这样投影空间中的 L2 距离在同一类别的形状之间很小,否则很大。 我们使用 [32] 中的大边距度量学习算法和实现,其中 p < d 以使最终描述符紧凑(在我​​们的实验中 p = 128)。 我们可以很容易地在输出形状描述符上使用度量学习这一事实证明了使用 MVCNN 的另一个优势。

4. 实验

4.1. 3D 形状分类和检索

  我们在普林斯顿 ModelNet 数据集上评估我们的形状描述符。ModelNet 目前包含 来自 662 个类别的127,915个 3D CAD 模型。ModelNet 网站上提供了一个包含 40 个常见类别的 12,311 个形状的 40 类注释子集,ModelNet40。 对于我们的实验,我们使用与中相同的 ModelNet40 训练和测试拆分。

  我们的形状描述符与 Wu 等人的 3D ShapeNets,Kazhdan 等人的球面谐波描述符 (SPH),Chen 等人的 LightField 描述符 (LFD),以及在用作我们网络输入的形状的相同渲染视图上提取的 Fisher 向量进行了比较。

  形状分类和检索的结果总结在表1中。 图 2 中提供了精确召回曲线。值得注意的是,仅具有单个视图的 Fisher 向量基线实现了 78.8% 的分类准确度,优于最先进的学习 3D 描述符(77.3%)。 当测试时形状的所有 12 个视图都可用时(基于我们的第一个相机设置),我们还可以对这些视图的预测进行平均。 平均将 Fisher 向量的性能提高到 84.8%。 Fisher 向量的性能进一步支持了我们的主张,即使用基于视图的 2D 表示可以有效地表示 3D 对象。 形状检索的性能趋势是相似的。

  使用我们在 ImageNet 上训练的 CNN 基线又大大优于 Fisher 向量。 在 ModelNet40 的训练形状的渲染视图上微调 CNN,进一步提高了性能。 通过使用形状的所有 12 个视图,其分类准确率达到 88.6%,检索的平均平均精度 (mAP) 也提高到 62.8%。

  我们的 MVCNN 优于所有最先进的描述符以及 Fisher 向量和 CNN 基线。 通过对 ModelNet40 训练集进行微调,我们的模型使用第一个摄像头设置实现了 89.9% 的分类准确率和 70.1% 的 mAP。 如果我们不使用关于形状一致直立方向的假设(第二个摄像头设置),性能仍然保持不变,达到 90.1% 的分类准确率和 70.4% 的检索 mAP。 与最先进的学习 3D 形状描述符 [37] (77.3% → 90.1%) 相比,MVCNN 在分类准确度上的绝对增益为 12.8%。 同样,检索 mAP 提高了 21.2%(49.2% → 70.4%)。 最后,学习低秩 Mahalanobis 度量进一步提高了检索 mAP,而分类精度几乎保持不变,并且得到的形状描述符变得更加紧凑(d = 4096,p = 128)。

  我们考虑了将视池层放置在 MVCNN 中的不同位置。性能在后面的几层中(conv4∼fc7)不是很敏感; 然而,在 conv4 之前的任何位置都会显着降低分类精度。 我们发现 conv5 提供了更好的准确度(~1%),因此将它用于我们所有的实验。

  视图之间的显着性图。对于每个 3D 形状 S,我们的多视图表示由一组 K 2D 视图 {I1, I2 . . . IK }。 我们想对 2D 视图中的像素进行排名 w.r.t. 它们对网络的输出分数 Fc 的影响(例如,取自 fc8 层)的地面真实类 c。 根据[33],显着性图可以定义为 Fc w.r.t. 的导数。 形状的 2D 视图:

 

  对于 MVCNN,公式2中的 w。 可以在所有网络参数固定的情况下使用反向传播计算,然后可以重新排列以形成各个视图的显着图。 显着性图的示例如图 3 所示。

4.2. 草图识别:重新审视抖动

  鉴于我们的聚合描述符在 3D 对象的多个视图上的成功,有理由询问聚合 2D 图像的多个视图是否也可以提高性能。 在这里,我们通过在草图识别的背景下探索它与数据抖动的联系来证明情况确实如此。

  数据抖动或数据增强是一种从给定图像生成额外样本的方法。这是通过改变图像外观的变换来扰乱图像的过程,同时保持高级信息(类标签、属性等)完好无损。抖动可以在训练时应用以增加训练样本并减少过度拟合,或在测试时应用以提供更稳健的预测。 特别是,几位作者 [20, 3, 35] 已经使用数据抖动来提高 2D 图像分类任务的深度表示的性能。 在这些应用中,训练时的抖动通常包括随机图像平移(实现为随机裁剪)、水平反射和颜色扰动。 在测试时,抖动通常只包括一些裁剪(例如,四个在角落,一个在中心,以及它们的水平反射)。 我们现在检查是否可以通过使用我们为识别 3D 形状而开发的相同特征聚合方案从图像的抖动视图中获得更多好处。

 

图 3. 显着性最高的前三个视图以蓝色突出显示,每个视图的梯度能量的相对大小显示在顶部。 显着性图是通过视图池层将类别分数的梯度反向传播到图像上来计算的。 请注意,梳妆台的把手是最具辨别力的特征。 (为了可见性增强了数字。)
 
  人体素描数据集 [11] 包含 250 个对象类别的 20,000 张手绘素描,例如飞机、苹果、桥梁等。由于某些素描质量低,人类识别这些手绘的准确率仅为 73%。 Schneider 和 Tuytelaars [30] 通过删除人类难以识别的实例和类别来清理数据集。 这个清理过的数据集(SketchClean)包含 160 个类别,人类可以在这些类别上达到 93% 的识别准确率。 使用具有空间金字塔池化和线性 SVM 的 SIFT Fisher 向量,Schneider 和 Tuytelaars 在原始数据集上实现了 68.9% 的识别准确率,在 SketchClean 数据集上实现了 79.0%。 我们将 SketchClean 数据集随机分为训练集、验证集和测试集 ,并在 Tab 2 中报告测试集的分类准确度。
  使用现成的 CNN(来自 [3] 的 VGG-M),我们能够在没有任何网络微调的情况下获得 77.3% 的分类准确率。 通过对训练集进行微调,准确率可以进一步提高到 84.0%,明显超过 Fisher 向量方法。这些数字是 3 数据集没有附带标准的训练/验证/测试拆分。 通过使用网络中的倒数第二层(fc7)作为图像描述符和线性 SVM 来实现。
  尽管从 2D 图像中获得多个视图是不切实际的,但我们可以使用抖动来模拟视图的效果。 对于每个手绘草图,我们使用三个角度进行平面内旋转:-45°、0°、45°,以及水平反射(因此每张图像有 6 个样本)。 我们应用前面讨论的两种 CNN 变体(常规 CNN 和 MVCNN)来聚合 3D 形状的多个视图,并分别获得 85.5%(不带视图池的 CNN)和 86.3%(带 fc7 上的视图池的 MVCNN)的分类准确度。 后者还具有为每个手绘草图提供单一、更紧凑的描述符的优点。
  通过更深层次的网络架构(VGG-VD,一个来自 [34] 的具有 16 个权重层的网络),我们实现了 87.2% 的准确率,进一步提高了分类性能,并接近了人类的表现。
4.3. 基于草图的 3D 形状检索
  由于在线 3D 存储库的数量不断增加,已经研究了许多方法来执行有效的 3D 形状检索。 大多数在线存储库(例如 3D Warehouse、TurboSquid、Shapeways)仅提供基于文本的搜索引擎或用于 3D 形状检索的分层目录。 然而,仅使用文本描述很难传达风格和几何变化,因此基于草图的形状检索 [38,31,12] 已被提议作为用户检索具有所需 3D 形状的近似草图的形状的替代方案。 基于草图的检索具有挑战性,因为它涉及两个异构数据域(手绘草图和 3D 形状),并且草图可以高度抽象并且在视觉上与目标 3D 形状不同。 在这里,我们展示了 MVCNN 在基于草图的形状检索中的潜在优势。
  对于这个实验,我们构建了一个数据集,其中包含SketchClean 和 ModelNet40 中存在 10 个类别的 193 个草图和 790 个 CAD 模型。 在 [12] 之后,我们生成 3D 形状的渲染,其风格类似于手绘草图(见图 4)。 这是通过从 12 个视点检测深度缓冲区(也称为 z 缓冲区)上的 Canny 边缘来实现的。 然后将这些边缘图通过 CNN 传递以获得图像描述符。 描述符也以 Sect4.2. 中描述的方式从每个查询草图的 6 个扰动样本中提取。最后,我们对 3D 形状 w.r.t 进行排名。 “平均最小距离”(等式 1)到草图描述符。 代表性检索结果如图 5 所示。
  我们能够使用查询草图从同一类中检索 3D 对象,并且在视觉上相似,尤其是在前几个匹配项中。 我们在这个数据集上的表现是 36.1% 的 mAP。 在这里,我们使用在 ImageNet 上训练的 VGG-M 网络,没有对草图或 3D 形状进行任何微调。 通过优化手绘草图和 3D 形状之间的距离度量的微调程序,例如,通过使用连体网络 [6],可以进一步提高检索性能。
 

 

表 2. SketchClean 上的分类结果。 微调的 CNN 模型明显优于 Fisher 向量 [30]。 MVCNN 比使用数据抖动训练的 CNN 更好。 结果显示了两种不同的 CNN 架构——VGG-M(第 2-5 行)和 VGG-VD(第 6-9 行)。

 

 

图 4. 来自 3D 形状的线条绘制样式渲染。

 

 

5. 结论
  虽然世界充满了 3D 形状,但至少作为人类,我们知道世界主要是通过 2D 图像。我们查询检索到的前 10 个 3D 形状 图 5. 基于草图的 3D 形状检索示例。 显示每个查询的热门匹配项,错误以红色突出显示。 已经表明,使用形状图像作为现代学习架构的输入,我们可以获得比以前发布的任何结果更好的性能,包括那些对形状的直接 3D 表示进行操作的结果。
  虽然这些多个 2D 投影的 n̈aive 使用会产生令人印象深刻的辨别性能,但通过构建来自多个视图的信息聚合的描述符,我们可以实现紧凑性、效率和更好的准确性。 此外,通过将 3D 形状的内容与草图等 2D 表示相关联,我们可以使用草图以高精度检索这些 3D 形状,并利用其 2D 视图中包含的 3D 形状的隐含知识。
  未来的工作有很多方向可以探索。 一种是尝试不同的 2D 视图组合。 哪些观点信息量最大? 对于给定的准确度水平,需要多少视图? 可以动态选择信息视图吗?
  另一个明显的问题是,我们的视图聚合技术是否可用于为来自多个视图的真实世界 3D 对象或自动从视频构建紧凑且有区别的描述符,而不仅仅是用于 3D 多边形网格模型。 这样的研究可以立即应用于广泛研究的问题,例如对象识别和人脸识别。

 

posted @ 2022-06-21 16:14  Cherlie  阅读(1733)  评论(0编辑  收藏  举报