MeshCNN: A Network with an Edge 阅读笔记


论文于2018年9月发表

paper

code

Abstract:

多边形网格为三维形状提供了一种有效的表示方法,它明确地捕捉了形状表面和拓扑信息。非均匀的多边形网格可以表示大型平面区域以及尖锐、复杂特征,但这种不均匀、不规则性抑制了“结合CNN与池化操作的神经网络”进行网格分析的能力。本文提出一种专门处理三角网格的神经网络MeshCNN。与经典CNN类似,MeshCNN也使用了特殊的卷积层与池化层,通过利用它们内在的测地线(曲面上的两点之间的最短距离)连接在网格边缘上操作。卷积应用于边以及边所在的两个三角形的另外四条边,池化是通过保留表面拓扑的边折叠操作来应用的,从而为后续的卷积生成新的网格连接。MeshCNN学习哪些边要折叠,从而形成一个任务驱动的过程,其中网络暴露并扩展重要的特征,同时丢弃冗余的特征。

Introduction

网格是一种有效的、不均匀的三维形状表示。一方面可以使用少量多边形来表示大而简单的表面,另一方面表示的灵活性也支持使用更高的分辨率来表示复杂的几何形状。点云表示简单且与常见的数据采集技术(扫描)直接相关,但当需要更高质量和保存尖锐形状特征时,点云表示就会出现不足。
MeshCNN之前,其他在三维图形中使用卷积的方式都是绕过了网格的不规则性,例如采用体素表达方式,对体素进行卷积,或如PointNet对点云进行处理。为了挖掘原生网格表示的潜力,作者提出一个专门处理网格的神经网络MeshCNN。MeshCNN直接在不规则三角形网格上操作,执行卷积和池化操作,与独特的网格特点一致。== 我们利用一致面法线来应用对称卷积操作 ==,该操作学习对旋转、缩放和平移变换不变性的边特征。
MeshCNN的一个关键特征是独特的池化操作,mesh pooling,它在不规则结构上操作,并在空间上适应任务。在cnn中,池化向下采样网络中特征的数量,从而学习消除信息量较小的特征。由于特征在边缘,一种直观的下采样方法是使用著名的网格简化技术边缘折叠算法。然而,与传统的边缘折叠不同的是,mesh pooling 学习折叠对特征贡献最小的边,边折叠算法则是删除了引入最小几何失真的边缘。如图1,上面一行训练花瓶是否有把手,下面一行训练花瓶是否有瓶颈。
在这里插入图片描述

	为了增加灵活性和支持各种可用数据,每个池化层将网格简化为预先确定的常数数量的边。

OVERVIEW: APPLYING CNN ON MESHES:

作者故意将卷积和池化操作直接应用于网格结构,并避免转换为规则和统一的表示。

  • Invariant convolutions :假定所有形状都表示为流形网格,可能带有边界边。这样的假设保证了每条边最多与两个面(三角形)相连,因此与两个或四个其他边相邻。一个面的顶点是逆时针排列的,为每条边的四个邻居定义了两种可能的顺序。如图4在这里插入图片描述
    e的 the 1-ring neighbors可以排序为(a,b,c,d)或(c,d, a,b),这取决于哪个面定义了第一邻居。作者采取了两个措施来保证仿射变换不变性。第一,作者仔细设计了边的输入描述符?,使其仅包含相对几何特征,这些特征对仿射变换具有固有的不变性。第二,作者将4条1环边聚合成具有模糊性的两对边(例如,a和c,以及b和d),通过对每对边应用简单的对称函数(例如,sum(a,c))来生成新的特征。卷积应用于新的对称特征,从而消除任何顺序模糊。
  • Input features :输入边缘特征是每条边的5维向量如图所示:两个面的夹角、两个内角和以及每个面中的高与底之比。在这里插入图片描述
    作者对两个基于面的特征(内角和边长比)进行排序,从而解决了排序的模糊性并保证了不变性。观察到这些特征都是相对的,他们关于平移、旋转、放缩都有不变性。
  • Global ordering: 数据是按一个特定顺序输入网络的,但因为卷积作用于邻域输入顺序在卷积阶段不产生影响。进一步说,分割任务也不受它的影响。对于需要全局特征聚合的任务,例如分类,作者遵循Qi 等人在PointNet中提出的常用做法,并在卷积部分和网络的全连接部分之间放置一个全局平均池化层。这样做保证了结果与输入顺序无关,也保证了转换不变性。
  • Pooling:网格池化是通过边折叠实现的,如下图,5条边被折叠为了两条。该算子根据边特征(最小范数)进行优先级排序,从而允许网络选择网格的哪些部分进行简化。简化本质的一个显著优势是,在池化层到达最终的全连接层之前,它提供了关于池化层输出维度的灵活性。池化也能提高初始网格三角化的鲁棒性。

在这里插入图片描述

Method:

基于网格的表示可以很方便地在单个矩阵中提供连通性与特征。但由于不规则网格不属于这种格式,我们必须将特征与连通性分开来定义。
一个网格由(V,F)定义,其中V={v1,v2,…}是顶点坐标集合,F是face定义连通性,三个点组成一个面,给定(V,F),网格连通性也可以由边E定义。
所有的网格元素V, F和E都可以与各种特征(如法线或颜色)相关联。在本次工作中,E也有一组特征,E特征一开始是一组相似不变的几何特征,随着它们在神经网络中层次的加深,特征变为更加高维抽象。
在作者的设置中,网格为网络提供了两个属性:卷积邻居的连通性和初始几何输入特征。一旦输入特征被提取出来,网格顶点就没有意义了。边缘折叠操作后的新顶点位置对分类和分割任务没有影响,它们仅用于可视化目的。
接下来是对mesh convolution网格卷积、mesh pooling网格池化、mesh unpooling 网格反池化的讲解。

Mesh Convolution:

作者为定义了一个边的卷积算子,它的近邻是另外四条边,前面提到过。那么卷积可以写为
在这里插入图片描述
其中ej是e的第j个近邻的特征,如上面Fig4,四个近邻的顺序要么是(a,b,c,d)要么是(c,d,a,b)这样每个滤波器值最多作用于两个可能的边(例如a或c上的k1)。?? 为了保证卷积对输入顺序的不变性,作者使用了一组简单的对称函数。这将生成一组新的卷积近邻,这些近邻保证是不变的。作者设置中e的感受野由下列公式定义
在这里插入图片描述
在这里插入图片描述
多通道张量与核的卷积可以用通用矩阵乘法(GEMM)实现:通过将图像展开(或展开)为列矩阵(即im2col [Jia 2014])。同样,我们构建一个展开矩阵来有效地执行卷积操作。在实践中,我们可以通过将所有边缘特征聚合为nc × ne × 5特征张量来使用高度优化的批运算符(例如conv2D),其中ne是边的数量,nc是特征通道的数量,5是边缘和卷积邻居(公式2)。这个矩阵乘以使用标准GEMM的卷积权重矩阵。在卷积操作之后,会生成一个新的批特征张量,其中新的特征数量等于卷积核的数量(就像在图像中一样)。请注意,在每个池化阶段之后,新的连接将为下一个卷积定义新的卷积邻居。

Mesh Pooling:

以下3个核心操作定义了Mesh Pooling的概念:
1)定义给定邻接的池化区域
2)合并每个池化区域中的特征
3)重新定义合并特征的邻接关系
网格池化是广义池化的另一种特殊情况,其中邻接关系由拓扑结构决定。作者将网格池化定义为一系列的边折叠操作,其中每个边折叠将5条边转换为2条边。因此,可以通过添加一个超参数来定义池化网格中目标边缘的数量,从而在每个池化操作之后控制网格的期望分辨率。
根据边缘特征的大小对边折叠顺序(使用优先队列)进行优先级排序,允许网络选择网格的哪些部分与解决任务相关。这使得网络能够非均匀地折叠某些对损失影响最小的区域。通过对每个特征通道取平均值,每个面三个边缘的每个特征被合并为一个新的边缘特征。
根据边的特征强度对边折叠进行优先级排序,该特征强度作为边折叠的L2范数。如图5所示,特征被聚合,其中有两个合并操作,一个针对最小边特征e的每个关联三角形,产生两个新的特征向量(表示为p和q)。边在每个i通道中的特征p由以下公式给出
在这里插入图片描述

在这里插入图片描述
边折叠后,将更新半边数据结构以用于后续边折叠。
值得注意的是,并不是所有的边都可以折叠。在作者的设置中,不允许产生非流形面的边缘折叠,因为它违反了四个卷积邻居的假设。

Mesh Unpooling:

反池化是池化操作的(部分)逆。池化层降低了特征激活的分辨率(编码或压缩信息),而非池化层增加了特征激活的分辨率(解码或压缩信息)。池化操作记录了合并操作(例如,最大位置)的历史,并使用它们来扩展特征激活。因此,反池化没有可学习的参数,通常与卷积相结合,以恢复池化操作中丢失的原始分辨率。与卷积的结合有效地使反池化操作成为一种可学习的操作。
每个网格反池化层与一个网格池化层配对,以对网格拓扑和边缘特征进行上采样。反池化层通过存储池化之前的连通性,恢复上采样拓扑(在网格池化之前)。请注意,对连通性进行上采样是一个可逆的操作(就如同在图像中一样)。对于未池化的边缘特征计算,作者保留一个图,其中存储从原始边缘(池化前)到新边缘(池化后)的邻接关系。每个非池化边缘特征都是池化边缘特征的加权组合。图5演示了平均反池化的情况。

My Thinking:

本文提出了一种直接在不规则三角网格上使用神经网络的通用方法MeshCNN。本文工作的关键贡献是针对不规则和非均匀结构定制的卷积和池化操作的定义和应用。作者通过利用三角网格特有的对称性,消除邻居排序对偶的歧义,以实现变换的不变性的构思很巧妙。作者通过边折叠的方式来进行池化,通过池化聚合了局部特征信息,也通过边折叠的方式在最小化损失信息的基础上,将卷积的邻域扩大了,在更大的尺度上聚合特征信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值