GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition

1、四个问题

  1. 要解决什么问题?

    • 3D shape recognition。
  2. 用了什么方法解决?
    • 采用多视图(multi-view)的方法。
    • 在MVCNN的基础之上,提出了group-view convolutional neural network(GVCNN)。
    • 主要创新之处是将不同视角下CNN提取得到的视觉描述子进行分组,将相类似的划分为一组。因为类似视角下提取到的特征也是相似的
  3. 效果如何?
    • 效果是SOTA的。MVCNN在modelnet40上的准确率是91%,这篇文章的GVCNN的准确率达到了93%。
  4. 还存在什么问题?
    • 由于需要将3维模型投影到多视角下,分别用CNN提取特征,计算量比较大,所提取的特征冗余性也很强。

2、论文概述

2.1、简介

  • 3D shape recognition中,虽然有基于体素的方法,还有PointNet类直接处理点云,但是目前准确率最高的还是基于多视图的方法,比如MVCNN。
  • MVCNN的做法就是模拟相机从若干不同的角度拍摄三维物体,得到投影的二维图像,然后分别利用ImageNet下预训练的网络提取特征,随后通过view pooling,即全局最大池化将各视角下的特征聚合起来,再接分类网络。
  • 虽然存在大量的计算冗余,但是MVCNN的做法更近似于对各个视角的图片做ensemble,在准确率上理所当然会有更好的效果。而且对于旋转也能有不错的鲁棒性。
  • 但是作者认为,MVCNN并没有将多视角下特征之间的关系有效地利用起来,这也会在一定程度上限制最后的特征描述子的可区分力
    • 一方面,一些视角彼此相类似,然后有一些则差异较大。这些相似的视角对于3D物体形状的表示所起到的作用应该是同等的。
    • 另一方面,有一部分视角则能提取到更有用的特征。
  • 也正是为了解决上述的问题,才提出了GVCNN。

2.2、方法

2.2.1、基本网络结构

  • 图1中是整个GVCNN的网络架构。

    • GVCNN采用GoogLeNet作为基础网络。
    • "FCN"是GoogleNet的前5个卷积层。
    • 中间的"CNN"指的是也是GoogLeNet。
    • "FC"是全连接层。
  • GVCNN首先从若干不同视角拍摄三维模型的二维图像,每个视角的图像都被送入了第一部分的"FCN"中提取视觉描述子。随后,第二部分的CNN网络进一步提取视觉特征,group模块再根据判别力评分将不同视角的特征子进行分组。最后将各个组的视觉特征描述子通过view pooling(全局池化)聚合到一起。再接上分类网络进行分类。

2.2.2、多视角视觉特征

  • 多视角图像的获取方式有两种,如上图所示。

    • 一种是取8个视角,相邻两个视角之间间隔45度。
    • 另一种是取12个视角,相邻两个视角之间间隔30度。
  • 相比于深层CNN,浅层网络保留有更多的位置信息。在对不同视角特征进行分组时,需要用到这些信息。所以利用浅层网络提取的特征进行grouping。
  • 而深层网络提取的特征,则具有更多的内容信息,能更好地表示视角下的特征。所以将深层网络提取的特征,先分组再做view pooling。

2.2.3、Grouping模块

  • Grouping模块主要是为了挖掘不同视角之间的潜在关系,对其进行归类辅助多视角下特征的聚合。
  • ξ(Ii)=sigmoid⁡(log⁡(abs⁡(OIi)))\xi\left(I_{i}\right)=\operatorname{sigmoid}\left(\log \left(\operatorname{abs}\left(O_{I_{i}}\right)\right)\right)ξ(Ii​)=sigmoid(log(abs(OIi​​)))
    • 给定不同视角下的图像:S={I1,I2,⋯ ,IN}S=\left\{I_{1}, I_{2}, \cdots, I_{N}\right\}S={I1​,I2​,⋯,IN​}。
    • {OI1,OI2,⋯ ,OIN}\left\{O_{I_{1}}, O_{I_{2}}, \cdots, O_{I_{N}}\right\}{OI1​​,OI2​​,⋯,OIN​​}是"FCN"层的输出。
    • 观察到:在输入大于5或小于-5时,sigmoid函数的输出会很接近0或1。作者额外加入了abs和log函数。
    • ξ(Ii)\xi\left(I_{i}\right)ξ(Ii​)是对第i个视角的判别力评分。
  • 判别力评分的取值范围是(0,1)(0, 1)(0,1),将其N等分。并认为,判别力评分在同一区间范围内的视角属于同一组。
  • 接将总计N个视角划分为M个组:{G1,G2,⋯ ,GM}\left\{G_{1}, G_{2}, \cdots, G_{M}\right\}{G1​,G2​,⋯,GM​},且1≤M≤N1 \leq M \leq N1≤M≤N。
  • 我们不需要人为地调整视角数N和组数M,可以让算法自行灵活地调整。
  • 可能也会存在某些组,其中没有任何视角属于它,但并不影响其他组的特征提取。
  • grouping模块除了可以作为分组的依据,也可以作为融合时每个组的特征所对应的权重,换句话说即attention机制。
  • 组GjG_jGj​的权重为:
    • ξ(Gj)=Ceil⁡(ξ(Ik)×∣Gj∣)∣Gj∣Ik∈Gj\xi\left(G_{j}\right)=\frac{\operatorname{Ceil}\left(\xi\left(I_{k}\right) \times\left|G_{j}\right|\right)}{\left|G_{j}\right|} \quad I_{k} \in G_{j}ξ(Gj​)=∣Gj​∣Ceil(ξ(Ik​)×∣Gj​∣)​Ik​∈Gj​

2.2.4、组内视角池化(Intra-Group View Pooling)

  • D(Gj)=∑i=1NλiDIi∑i=1Nλiλi={1Ii∈Gj0Ii∉Gj\begin{array}{l}{D\left(G_{j}\right)=\frac{\sum_{i=1}^{N} \lambda_{i} D_{I_{i}}}{\sum_{i=1}^{N} \lambda_{i}}} \\ {\lambda_{i}=\left\{\begin{array}{ll}{1} & {I_{i} \in G_{j}} \\ {0} & {I_{i} \notin G_{j}}\end{array}\right.}\end{array}D(Gj​)=∑i=1N​λi​∑i=1N​λi​DIi​​​λi​={10​Ii​∈Gj​Ii​∈/​Gj​​​

    • DIiD_{I_{i}}DIi​​是视角IiI_iIi​的视觉特征描述子,而DGjD_{G_{j}}DGj​​是组GjG_{j}Gj​的组视觉特征描述子,计算公式如下。

2.2.5、组间特征融合

  • 类似于attention机制,对不同组之间的视觉特征进行融合。
  • D(S)=∑j=1Mξ(Gj)D(Gj)∑j=1Mξ(Gj)D(S)=\frac{\sum_{j=1}^{M} \xi\left(G_{j}\right) D\left(G_{j}\right)}{\sum_{j=1}^{M} \xi\left(G_{j}\right)}D(S)=∑j=1M​ξ(Gj​)∑j=1M​ξ(Gj​)D(Gj​)​
    • D(S)D(S)D(S)是最终的3D形状描述子。
    • 整个流程符合一个"view-group-shape"的结构。

2.2.5、分类和检索任务

  • 分类任务:

    • 给定CCC个类,在前面的GVCNN输出特征描述子之后接上分类器(全连接层)进行分类。
  • 检索任务:
    • 使用GVCNN提取特征后,接上一些全连接层输出特征向量。使用深度度量学习的方法训练网络,添加上欧氏距离度量的约束。
    • d(X,Y)=∥x−y∥2d(X, Y)=\|x-y\|_{2}d(X,Y)=∥x−y∥2​

2.3、实验

3、参考资料

  1. GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition相关推荐

  1. 论文阅读:Multi-view Convolutional Neural Networks for 3D Shape Recognition

    Preface 今天阅读一篇ICCV2015的论文:<Multi-view Convolutional Neural Networks for 3D Shape Recognition>, ...

  2. 每天一篇论文 323/365 Designing Energy-Efficient Convolutional Neural Networks using Energy-Aware Pruning

    每天一篇论文汇总list Designing Energy-Efficient Convolutional Neural Networks using Energy-Aware Pruning 摘要 ...

  3. 详译:RESIDUAL AND PLAIN CONVOLUTIONAL NEURAL NETWORKS FOR 3D BRAIN MRICLASSIFICATION

    论文题目:RESIDUAL AND PLAIN CONVOLUTIONAL NEURAL NETWORKS FOR 3D BRAIN MRI  CLASSIFICATION 三维脑MRI分类的残差和平 ...

  4. 论文笔记:Group Equivariant Convolutional Networks

    Group Equivariant Convolutional Networks 1.四个问题 要解决什么问题? 对卷积神经网络进行扩展,并提出一个在特定的变换(旋转.平移等,也可表示为一个特殊的群) ...

  5. 论文学习笔记:CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes

    CSRNet是2018年提出来的人群计数模型,其论文发表于CVPR会议. 论文链接:CSRNet Abstract 摘要 我们提出了一个拥挤场景识别网络CSRNet,它提供了一种数据驱动的深度学习方法 ...

  6. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  7. 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  8. 笔记[M-SFANet]Encoder-Decoder Based Convolutional Neural Networks with Multi-Scale-Aware Modules...

    @[TOC]( [M-SFANet] Encoder-Decoder Based Convolutional Neural Networks with Multi-Scale-Aware Module ...

  9. 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile VisionApplications【v1, 2017.4】

    文章目录 Abstract 1. Introduction 2. Prior Work 3. MobileNet Architecture 3.1. Depthwise Separable Convo ...

最新文章

  1. 推荐一款 Spring Boot 的 HTTP 客户端框架
  2. 请编程实现:产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复(百度了一下,get一种高性能算法,非递归)...
  3. C# 内存法图像处理
  4. powerbi内部部署安装指导
  5. linux修改key文件夹,linux 中如何根据xml文件的key来修改value呢?
  6. 关于JSTL的简单说明
  7. Linux x86_64内核中断初始化
  8. python等比例压缩图片_Python批量按比例缩小图片脚本分享
  9. php商城拍卖逻辑,thinkphp商城购物车逻辑思路
  10. HTML5期末大作业:基于HTML+CSS+JavaScript茶文化中国水墨风格绿色茶叶销售(5页) 学生网页设计作业源码
  11. 面对爱情,相当真诚的星座,将心比心,单纯善良
  12. hau 3037 Saving Beans【Lucas定理】
  13. 工业智能机器人数量缺口大 核心技术要突破!
  14. 技术探究|Apache Pulsar 认证与鉴权实践指南
  15. Flink窗口+触发器 ,实现定时、定量批量写入Hbase不同的表
  16. 【计算机网络】一、概论
  17. 掌握这些图片无损压缩工具,轻松搞定图片压缩
  18. Filter的使用场景:敏感词过滤
  19. (第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  20. Delaunay三角形的算法之逐点插入算法

热门文章

  1. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们
  2. Effective C++ --8 定制new和delete 9杂谈讨论
  3. MFC对话框退出程序所调用的函数
  4. 安装开源在线教育平台edX的一个简单方法
  5. MIT自然语言处理第三讲:概率语言模型(第四、五、六部分)
  6. Day 15:Meteor —— 从零开始创建一个 Web 应用
  7. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.4. 重点回顾)
  8. 《大话数据结构》第9章 排序 9.6 希尔排序(下)
  9. 大话设计模式(六 关于Flex的争论)
  10. Tensorflow入门——训练结果的保存与加载