APP下载

基于图卷积网格自编码器的网格参数化

2020-10-28

网络安全与数据管理 2020年10期
关键词:编码器顶点卷积

高 晨

(中国科学技术大学 数学科学学院,安徽 合肥 230026)

0 引言

网格参数化在计算机图形学与数字几何处理有着广泛的应用,例如纹理贴图、细节映射、网格编辑、网格修复、重网格化、曲面拟合等。 因为三角形网格拥有着简单的几何特性,是网格曲面的一种主要表示形式,因此对于三角形网格的参数化也一直是参数化研究的热点。三角形网格的参数化是建立在流形曲面与参数域之间的一一映射,三角形网格被映射到参数域为二维平面的参数化,被称为平面参数化。

1963 年,TUTTE W T[1]提出重心映射定理,证明了网格模型中,一个顶点的坐标可以表示为其邻接顶点坐标的加权组合,这为网格参数化提供了理论基础,基于这个定理,ECK M 等人[2]和FLOATER M S[3]描述了一种简单的参数化方法,将每个内部顶点表示为其相邻顶点的凸组合。 使用不同的权重设置,获得了不同的参数化,著名的权值方法有余切权值和均值权值,然而,重心坐标法要求网格的边界固定在平面上的凸多边形上,这是一种任意的方法,通常会导致明显的失真。

若三角形网格在映射前后边长发生了变化,称之为等距失真,若三角形网格在映射前后角度发生了变化,则将其称之为共形失真。为了衡量这些失真,一些扭曲度量函数相继被提出,例如保形能量[4]和MIPS 能量[5],它们都是为保持映射前后的角度而设计的能量;格林-拉格朗日变形能量、ARAP 能量[6],则要求映射为等距映射,保持映射前后的长度。 考虑到失真度量大多是高度非线性函数,因此开始产生一些非线性的参数化方法,例如:基于角度的拍平化法[7]及其改进方法 ABF++[8]、基于最小二乘的保角参数化[4]、最等距参数化法[5]、局部全局参数化方法[6]等。

与此同时,卷积神经网络[9]自从被提出以来,已经在计算机视觉[10-11]、自然语言处理[12]、语音处理[13]等相关的大量问题中取得了最先进的结果,这得益于卷积神经网络的多尺度层次结构,使得网络模型能够学习平移不变的局部特征,但也使得卷积神经网络局限在具有欧几里得结构的数据上。 为了将卷积网络应用在非欧数据上,人们开始研究基于图结构和网格结构的图卷积神经网络模型。BRUNA J 等[14]利用图拉普拉斯基与傅里叶基之间的联系,首次提出了CNNs 在图上的泛化, 因此产生了泛化图卷积的谱滤波器。 随后,BOSCAINI D 等人[15]利用傅里叶变换在频率空间中对其进行了扩展。 为了降低谱图卷积的计算复杂度,DEFFERRARD M 等人[16]对这些特殊的滤波器进行了近似处理, 并对其进行了特征向量的显式计算,引入了高效的操作符集合。 KIPF N[17]使用Chebyshev 多项式对其进行了简化,提出了图卷积神经网络,ANURAG R[18]等利用图卷积网络在网格上建立了图卷积网格自动编码器,提出基于网格的池化层。 在此基础上,多种图卷积网络模型相继建立,并有了广泛而快速的发展。

在本文中,建立一类应用在网格上的参数化神经网络模型,针对一类人脸网格数据,根据不同的度量函数,获得相应的人脸网格参数化结果,具体如下:

(1)构建一类基于图卷积网格自编码器的参数化网络模型,它由网格卷积层、网格上采样层、网格下采样层构建而成,其中网格卷积层由一类快速局部化的卷积滤波器组成。

(2)使用参数化网络模型,针对不同的参数化扭曲度量函数,在人脸数据集上获得相应的人脸网格参数化结果。

(3)保证参数化效果,并使用建立的图卷积网络模型,可对人脸网格进行批量处理,更快地获得参数化结果。

1 图卷积网格自编码器

基于网格数据的图卷积自动编码器模型的建立主要依靠卷积操作的定义,来完成网格数据在网络层与层之间的传播,同时对应于图卷积网络的池化层,建立起网格上采样层与网格下采样层。

1.1 网格数据基本定义

给定一个三维网格,其网格数据形式可以表示为 F=(V,A),其中|V|=n 是三维欧几里得空间中网格的顶点集合,V∈Rn×3。 A 则是一个 n×n 的矩 阵,表示V 中顶点之间的邻接关系,若 V 中的点 i 和点j 之间存在一条边,则在 A 中,Aij=1,若 V 中的点 i和点 j 之间没有边相连,则在 A 中,Aij=0,考虑到网格结构中点的邻接关系不会过多,矩阵A 是一个对称稀疏邻接矩阵, 描述了网格数据的拓扑信息,由邻接矩阵的性质, 可以轻易地得到V 中一个点的度,, 即度为矩阵 A 中第 i 行的元素求和。网格上的 Laplacian 矩阵[19]可以定义为 L=D-A,其中 D 为 n×n 对角矩阵,主对角线上元素即为 V 中点的度。

Laplacian 矩阵 L 拥有良好的性质,是一个半正定堆成矩阵, 因此, 可以将 L 写成特征分解形式:L=UΛUT。 其中 U=[u0,u0,…,un-1]是 L 的正交特征向 量 。 Λ =diag(λ0,λ1,…, λn-1)∈ Rn×n, 则 是 由Laplacian 矩阵特征值组成的对角矩阵,其中特征值具有非负实值性质。 网格数据上的傅里叶变换可以定义为 xω=UTx,傅里叶逆变换则为 x=Uxω。

1.2 网格卷积操作

网格数据上的卷积公式在傅里叶空间由如下公式定义:

其中x、y为网格中的顶点 ,UTx、UTy 为 x、y 对 应 的傅里叶变换,⊙表示哈达马积,对于两个维度相同的向量、矩阵、张量进行对应位置的逐元素乘积运算。对于一个输入信号x,在网格数据上的卷积操作定义为,它和一个带有参数 θ 的滤波器 gθ在傅里叶空间的乘积:

其中 σ(·)是激活函数,gθ(λ)为对应的卷积核。 这样的参数定义存在弊端如下:

(1)每一次参数传播,都需要计算U、gθ(λ)、UT三者的矩阵乘积,计算复杂度很高。

(2)对于每个卷积核,都需要 n 个参数。

因此,KIPF N 等人[17]使用切比雪夫多项式对其进行拟合,使得卷积核可以表示为如下形式:

此时卷积核可被定义为如下形式:

yj是输 出 y∈Rn×Fout中的第 j 个特征,而输入 xi∈Rn×Fin拥有 Fin 个特征,则对于一个卷积核,其拥有 Fin×Fout 个参数,每个卷积层拥有 K×Fin×Fout 个参数,其中K 是切比雪夫多项式的阶,K 的值决定了每层卷积的作用范围,如图1 所示,K=1 时,卷积作用于节点的一阶邻居上,通过卷积作用,生成输出。通过这样的卷积核和输入数据的卷积,可以实现在图数据结构或者网格数据结构的局部参数共享。

图1 一阶图卷积示意图

1.3 网格采样操作

网格数据的采样操作包括上采样层和下采样层,其中下采样层移除网格中的点,以获得压缩后的网格数据,上采样层则通过还原来恢复网格数据。

考虑网格数据,一个拥有n 个顶点的网格数据输入可以表示为 n×F 的形式,其中 F 为每个顶点的特征个数。

1.3.1 网格下采样操作

定 义 一个变 换矩阵 Qd∈{0,1}m×n,n >m 用 于 完成图卷积网络中网格的下采样操作,下采样利用二次矩阵[20]迭代收缩顶点对,保持曲面误差逼近。 如图2 所示,深灰色点在下采样操作后被丢弃,留下的浅灰色点即为收缩后的顶点子集,记为Vd满足 Vd∈V。 变换矩阵则可定义为:∀p,Qd(p,q)=1表示第 q 个顶点被保留,Qd(p,q)=0 表示第 q 个顶点在下采样操作中被丢弃。

图2 网格采样层示意图

1.3.2 网格上采样操作

定义变换矩阵 Qu∈{0,1}n×m,n >m用于上采样操作,为了能获得和输入数据结构一致的数据结构,上采样操作矩阵是在下采样操作中同时建立的。如图3 所示,下采样后保留的顶点进行相应的卷积变换,获得输出网格数据,这些在下采样中被保留的顶点依旧在上采样中被保留,即有Qu(q,p)=1,当Qd(p,q)=1。 而对于那些在下采样操作中被丢弃的顶点,Vq∈V,即满足∀p,Qd(p,q)=1 的点的集合,在做下采样操作时考虑其所对应的重心坐标, 即在下采样网格中, 将 Vq中的点 vq投影到其相近的三角形(i,j,k)中,投影后的点用表示,由重心坐标性 质 有其 中 νi,νj,νk∈Vd,并满足 ωi+ωj+ωk=1。 则在对应的上采样矩阵 Qu中,可 定 义 Qu(q,i)=ωi,Qu(q,j)=ωj,Qu(q,k)=ωk,并 有Qu(q,l)=0,∀l≠i,j,k。 故 由此 可得 对应 于下采样操作矩阵Qd和下采样操作后的顶点集合Vd的上采样操作矩阵 Qu,同时,上采样后的顶点集合 Vu可以由Vu=QuVd给出。

图3 参数化网格模型示意图

2 搭建参数化网格模型

2.1 网络搭建

基于图卷积网格自编码器的参数化网格模型以图卷积神经网络为基本单元,首先获得输入网格数据的坐标信息,网格的拓扑连接关系则蕴含在神经网络的卷积中,通过Laplician 矩阵保证网格的拓扑结构不变。 网络的前半段为图卷积网格自编码器的编码部分,通过网格卷积层与网格下采样层,在潜在空间里学习到输入数据的特征信息,后半段则为自行建立的参数化解码过程,以网格卷积层与网格上采样层组成, 并通过一次额外卷积层获得输出。与自编码器不同,通过解码直接得出输入数据的参数化表示。 当训练完成后,得到的参数化网格模型相当于网格参数化过程。 如图3 所示,首先对输入数据进行一次卷积操作,之后每一个矩阵块之间均代表着一次卷积操作与网格下采样操作,下采样尺度为2,交替多次进行,在潜在空间学习到特征信息后, 再交替多次进行网格上采样操作与卷积操作,最后由一层卷积层构成整个网络。

2.2 数据集获取

图4 人脸数据集示例图

本文中使用的数据集由文献[18]中的数据集裁剪而成,共有20 465 个人脸三角网格,其中每个三角 网格 有 2 105 个点 ,4 148 个面。 按 照 10:1 的 比例划分训练集与测试集,训练集有18 415 个网格数据,测试集有2 050 个网格数据。其中训练集中分出1 000 个数据作为训练中的验证集。 图4 给出数据集中的一些数据集中的人脸数据。 本文中将使用此人脸数据集作为构造的基于图卷积网格自动编码器的参数化网格模型的输入。 同时,利用一个C++中的几何处理库,libigl 库中的SLIM(Scalable Locally Injective Mappings)算法[21]对原始数据集做基于对称Dirichlet 能量函数的参数化, 并将参数化结果作为网络中的标签进行训练,随后和本文中所使用的参数化网络模型的输出做对比。

2.3 模型调优

2.3.1 Dropout 与正则化

Dropout 可以作为训练深度神经网络的一种防止过拟合的方法供选择。 在每个批量训练中,通过忽略一定比例的的特征节点(即让一定比例的隐层节点值取为0),可以明显地减少过拟合现象。 这种方式可以减少隐层节点之间的相互作用。 网络工作流程如下:

(1)以概率p 随机地删除掉卷积网络中隐层的神经元,其中保持输入输出神经元保持不变(即将神经元经激活函数的输出值置为0)。

(2)使得输入数据通过修改后的卷积网络前向传播,得到的输出再进行反向传播。 每次批量的训练样本在执行此过程之后,在剩余的神经元上(即没有被删除的部分)按照随机梯度下降法或者其他参数更新方法更新对应的参数。

(3)恢复那些在第一步中被删除的神经元,然后从隐层神经元中再随机以概率p 选取一个节点集合,将其删除掉。对小批量训练数据,继续前向传播与网络反向传播,并通过随机梯度下降法更新对应的参数。

防止网络过拟合的方法还有正则化方法,即对损失函数添加惩罚项。 所谓惩罚是指对损失函数中的某些参数做一些限制。 常用的正则化有 L1 正则化和 L2 正则化。

在本文所采用的网络模型中,使用了dropout 方法,其中 drop 概率设置为 0.9(保留参数概率),同时使用L2 正则化,使网络模型中的权值参数值尽可能小,提高网络模型的抗扰动能力。

2.3.2 超参数优化

本文建立的参数化网络模型有两个重要的超参数,一个为网络深度(即网络的隐藏层个数),在本文中,并不直接使用隐藏层个数作为网络深度的定义,而是考虑到建立的参数化网络模型中卷积层与采样层交替的形式,与网格下采样层与上采样层一一对应的关系,本文分别测试了网络深度为2、3、4、5 时损失函数的下降趋势。 此外,另一个极为重要的参数为K 值,K 值是卷积层中使用的切比雪夫多项式的阶数,在网络传播中关系到一个节点的 K 阶邻居。 为此,本文分别选取 K=1,2,3 做实验对比,结论如图5 所示。 网络中 batchsize 设置为16,每经过200 次训练输出一次损失函数,记为一次step, 图中给出了每个网络前 200 step 所对应的验证集的损失函数,可以看出不论K 为多少,深度为2 和 3 时的网络训练效果不如网络深度为 4 和 5时的网络,而 K=1 时的网络也没有 K=2,3 时的网络效果好,但当网络深度设置过深时,训练速度会变得缓慢, 因此综合训练效果与时间上的考虑,本文中的网络深度取 4,并令K 值取 2。

图5 不同超参数对比图

通过构建模型与参数调优,最终得到应用于人脸数据集上的基于图卷积网格自编码器的参数化网格模型,在表1 中,列出了网络模型具体的层参数,可以看出,网络在编码部分与参数化表示部分均经过了 4 次下采样与 4 次上采样, 同时在卷积过程中,设置卷积核的 K 值为 2,并在编码过程中,依次采用了 16、16、32、64 个卷积核,在参数化表示过程中,依次采用了 64、32、16、16 个卷积核。 多个卷积核表示使得网络可以学习到尽可能多的特征表示。

表1 参数化网络模型具体层参数

3 实验分析

本文人脸数据集测试集内共有2 050 个数据,从中随机抽取了5 例数据,与经典参数化方法进行了对比,对比结果如图6 所示,本文实验在基于TensorFlow 深度学习框架的 Ubuntu 系统下进行。 网络初始学习率设置为0.008,优化时学习率采用了学习率指数衰减的方法,即学习率随着训练次数的增加而逐渐衰减,衰减步数为1 000,衰减率为 0.95。同时为了加快网络收敛速度, 网络中动量设置为0.9。选定L1 损失函数为网络优化目标函数,并使用小批量随机梯度下降算法进行训练,其中Batchsize 设置为 16。

图6 展示了网络模型与PP[22]算法在参数化结果上的效果对比,图中第一列为原始人脸网格,第二列是PP 算法的参数化结果,第三列为网络模型算法的参数化结果。 图中颜色表示对应三角形面上的度量损失,在这里,均对参数化结果做了对称Dirichlet度量函数的计算,从图中可以看出,网络模型取得了非常不错的参数化效果。 相比较PP 算法在部分区域陷入局部解的情况,网络模型表现更好。

图6 参数化结果示意图

除此之外,在本文中给出了网络模型与PP 算法、SLIM 算法之间的参数化时间对比,结果见表2。 可以看出,基于PP 算法的参数化处理单个网格平均用时为 1.009 s,基于SLIM 算法的参数化处理单个网格平均用时为0.382 6 s, 但基于图卷积网络的参数化处理单个用时只需 0.227 1 s。 相比 PP 算法和SLIM 算法的顺序处理,本文建立的参数化网络模型可以对数据集进行批量处理, 并拥有极高的效率, 处理全部测试集 (共 2 050 个网格数据) 仅需4.619 7 s。

表2 参数化算法运行时间比较

4 结论

当前,网格参数化已经取得了极为丰富的理论成果和应用技术,大多参数化方法都采用算法迭代求解非线性系统的方法,在本文中,设计了一类基于图卷积网格自编码器的参数化网络模型,并针对构造的人脸数据集进行了参数化处理。 深度学习方法的引入,对于网格参数化而言是一个全新的思考方向。 针对网格数据,图卷积网络展现了其强大的特征提取和表达能力,同时从参数化结果来看,也展现了构建的参数化网络模型的鲁棒性与快速处理能力,同时在需要批量处理参数化的应用中,网络模型展现了高效的应用能力。

猜你喜欢

编码器顶点卷积
融合CNN和Transformer编码器的变声语音鉴别与还原
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
设定多圈绝对值编码器当前圈数的方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
转炉系统常用编码器选型及调试
舞台机械技术与设备系列谈(二)
——编码器
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法