APP下载

基于胶囊网络的三维网格模型分类方法

2021-06-22赵杰煜俞书世

关键词:曲面顶点胶囊

郑 阳,赵杰煜,2*,陈 瑜,唐 晨,俞书世

(1.宁波大学信息科学与工程学院,浙江 宁波 315211;2.浙江省移动网络应用技术重点实验室,浙江 宁波 315211)

卷积神经网络(convolutional neural network,CNN)作为目前深度学习技术领域中非常具有代表性的神经网络之一,在图像分类和语义分割等热门任务上取得了众多突破性的进展.而三维图像数据相比于二维图像包含的信息更为丰富,具有更好的光照不变性和姿态不变性,因此如何将深度学习应用到三维模型表示,已成为数字几何领域的研究热点[1].

目前三维模型识别方法的数据格式主要集中在体素表示、点云表示和三维网格表示.

对于点云表示,由于点云数据的无序性,通常的网络框架不适合直接应用于点云数据.Qi等[2]提出PointNet,通过一个对称函数解决了该问题,但它忽略了点云的局部信息.Qi等[3]之后又提出了PointNet的改进版PointNet++,添加了与邻居的聚合操作来解决此问题.由于点云数据结构过于简单,对于两个紧凑的非连接局部表面无法单纯通过欧氏距离进行判别,所以无法很好地表示复杂模型.

网格表示作为点、面、边的集合,通过三角面片进行拓扑组合,数据较为复杂,但能够准确表达点的邻域信息,具有表达物体复杂表面的天然优势.由于普通的卷积操作无法直接应用于网格模型,近两年为解决网格模型难以处理问题的深度学习方法逐渐增多.2019年Hanocka等[4]提出网格CNN(MeshCNN),以边为中心定义卷积,将一条边上的两个三角形各自的二面角(此为2维特征向量)、内角、三角形的高与底边的比值作为5维特征向量,通过边折叠进行池化,从而将卷积网络应用到网格结构上.2019年Feng等[5]提出网格网络(MeshNet),将三角面片作为最小单元,提取其中心点坐标、法向量、邻域多边形索引等多种特征,设计CNN进行分类,在ModelNet40数据集中达到91.9%的识别率.2020年Yang等[6]提出基于网格的卷积框架PFCNN,通过使用多个方向的平行标架场编码曲面上的平面连接来构造一种新的平移结构,保证了卷积的平移共变性,在精细尺度特征学习方面比基于表面的CNN精度更高.2020年Wang等[7]提出首个通过风格转换进行网格姿态转换的方法,通过空间自适应实例归一化(SPAdaIN)来模拟图像像素和网格顶点,学习源网格中每个顶点的姿态特征并使用从目标网格顶点学习的仿射变换对其进行变换,从而有效地将源网格的姿态迁移到目标网格上.Qiao等[8]提出LaplacianNet,在拉普拉斯谱聚类的基础上进行多尺度池化,在池化后使用网格池化块来利用全局信息,并引入一个相关网络来计算相关矩阵,该矩阵通过与聚类特征的矩阵相乘来聚合全局特征,在ShapeNet和COSEG数据集上取得较好的效果.Litany等[9]提出了一种基于学习的方法来完成三维图形生成补全.通过训练一个图卷积变分自动编码器来构造参考形状与隐空间参数,推断时只使用解码器及部分缺失的形状作为输入,并与参考形状对应,重建人体和面部网格.

上述方法大多采用CNN完成分类分割或其他任务,尽管CNN在大多数任务上获得成功,但也存在一些局限性,主要是由于在数据前向传播的过程中,CNN通过诸如最大池化或平均池化之类的操作来获得图像变换的不变性、更紧凑的表征、更好的噪声和聚类的鲁棒性[10].这些池化操作会丢弃高层特征层其他参数信息和编码特征间的相对位置关系,例如对于图像识别中的“毕加索问题”(具有所有正确部分但不具有正确空间关系的图像),CNN仍旧会识别出人脸,而不会在乎构成人脸的部位之间的结构关系组成.

为克服CNN中的上述问题,Hinton等[11]提出了一种称为胶囊网络的新算法,用向量特征代替CNN的标量特征,通过类似聚类的方法,对输出向量根据内积进行多次路由以替换CNN中的最大池化下采样,保存了不同维度的特征信息,并重用其中一些胶囊的输出,以形成更稳定的高阶胶囊表示[12],更好地保留了特征的空间信息.目前已有实验验证了胶囊网络较CNN在二维图像分类上更具优势[13].在应用方面,Iesmantas等[14]将基于二进制分类的胶囊网络应用于乳腺癌的检测.Jaiswal等[15]设计了基于胶囊的生成式对抗网络(generative adversarial networks,GAN).Yang等[16]将胶囊网络应用到文本域.Nguyen等[17]将胶囊网络应用于数字媒体取证.这些研究证明胶囊网络在多个领域的有效性,但由于三维网格模型数据较为复杂,至今还未有胶囊网络应用于三维网格处理中.

本文提出一种基于胶囊网络的三维网格分类方法(3D mesh capsule networks,MeshCaps),以扩展胶囊网络的应用领域.MeshCaps类似于传统的多层神经网络,可以直接在不规则网格上运行,并且可以通过多层网络结构提取高层特征.

在MeshCaps中,通过设计好的卷积模板对网格表面进行卷积.由于多项式可有效表达一个曲面且表示方式更为简洁,将卷积核设计为一个高阶方程,窗口内采用多项式拟合曲面方式,将高阶方程参数作为窗口曲面的局部特征,这使得本方法能够按曲面单元来解决网格的复杂性和不规则性问题.

此外,考虑到三维网格模型输入大小不一致的问题,引入共享姿态矩阵权值的胶囊网络,并将胶囊网络的概念扩展到三维网格模型中.基于这些想法,本文设计了一个网络结构,其中包括一个用于学习面片单元特征描述符的多项式模板卷积核以及一个用于聚集相邻隐层特征并分类的胶囊网络.与最新的基于边折叠进行卷积池化方法MeshCNN相比,有望通过改进的胶囊网络在更具表达性的多项式特征下达到更好的分类效果.

1 二维网格胶囊网络

胶囊网络由多个胶囊层组成,其中胶囊作为一个独立的逻辑单元,通过向量来表示一个整体或整体的部分.传统的CNN输入输出为标量形式,而胶囊网络的输入输出为矢量形式,其特征向量的每一维都可以表示为一个特征模式(如形变、姿势、反射率、纹理等),用特征向量的范数表示实体存在的置信度,不仅可以根据统计信息进行特征检测,还可以学习到部件与整体的位置关系并能理解特征向量中维度的表示模式.

图中胶囊输出向量的方向蕴含图像的位置、大小、形状和姿态等特征信息.图1 胶囊内运算过程Fig.1 Calculation process in capsule

与CNN的最大池化不同,胶囊网络不会丢弃有关实体在区域内的精确位置信息,在胶囊传递到下一层之前,都要进行一个姿态矩阵W的变换,W通过梯度下降学习参数,以使网络具有多角度标识特征的能力.对于低级胶囊,位置信息被编码,随着层次结构提升,越来越多的位置信息被压缩编码到胶囊输出矢量的实值分量中.

2 三维网格胶囊网络

本节将详细介绍MeshCaps的设计.首先介绍整体的网络架构,根据网格数据的特性,为了直接将卷积应用在网格数据上,同时考虑到参数方程表达的简洁性,将卷积模板设计为参数方程的形式,通过多项式卷积核提取特征重新组织输入数据,根据顶点在局部空间中的相对位置来计算相应的权重值,以捕获网格局部区域精细的几何变化.经过改进的多层胶囊网络结构对融合形状与姿态的特征进行分类.

N表示窗口曲面数量;K表示曲面内点数量;d表示初级胶囊维度;C表示类别数量.图2 网络框架图Fig.2 Network framework

2.1 MeshCaps框架设计

MeshCaps网络结构如图2所示,训练分为两个阶段:1) 卷积特征映射阶段.以多项式模板作为卷积核对整个模型进行特征提取操作,最终生成该阶段的卷积特征映射F(X,Y,Z).2) 胶囊网络的训练阶段.胶囊网络由胶囊组成层、初级胶囊层和Mesh胶囊层构成,最终输出用于分类.与普通的胶囊网络相比,MeshCaps增加了一个胶囊组成层,将多项式参数特征映射到初级胶囊层以提取更具代表性的特征;对于胶囊层之间的姿态变换矩阵采用权值共享进行训练,不再依赖于输入模型的大小.

2.2 局部形状特征提取

本文尝试将一种更具表达性的特征提取方法应用到网络模型中.给定一个三维形变目标的网格模型,以网格模型顶点为窗口中心,采用广度优先搜索获取其前K-1个邻域顶点,选中的顶点和顶点间的边构成连通的局部网格曲面即为局部曲面窗口

Mwin={Vwin,Ewin},

其中:

Vwin={vj|(xj,yj,zj)},j=1,2,…,K,

(1)

Ewin={(va,vb)|va,vb∈Vwin}.

(2)

其中,xj,yj,zj为点vj的坐标.

首先,为避免刚性变换以及非刚性变换的影响,在窗口中建立局部坐标系并将窗口内顶点的绝对坐标转换为局部坐标系内的坐标表示.然后,考虑到窗口内局部曲面较为简单,因此在窗口局部坐标系下采用高阶多项式对其形状进行描述,如式(3):

Mwin={v|F(xv,yv,zv,dv|θ)=0}.

(3)

其中:F是用于描述局部网格窗口形状的连续函数;θ=(θ0,θ1,…,θ9)是网格的参数表示向量;xv,yv和zv是局部坐标系下窗口中顶点的相对坐标.在实验过程中,当局部窗口尺寸设置得非常小时,网格形状基本相同,而当K增加时,窗口中的网格变得更加复杂.仅仅通过顶点的局部Mwin-估计坐标信息xv,yv和zv不足以描述网格形状.因此,一般引入测地距离以改进多项式函数的表达.但测地距离的计算较为耗时,会影响整个网络的性能,因此采用街区距离dv作为测地距离的近似表达.

dv=|xv-xm|+|yv-ym|+|zv-zm|,

(4)

其中,卷积窗口中顶点(x,y,z)的街区距离表示为该点与曲面单元中心点(xm,ym,zm)的街区距离.

对于一个网格窗口,假设窗口中顶点的位置特征vc=(xv,yv,zv,dv),窗口曲面的拟合函数如式(5):

F(vc|θ)=z-(θ0+θ1x+θ2y+θ3d+θ4x2+

θ5y2+θ6d2+θ7xy+θ8xd+θ9yd).

(5)

窗口曲面的拟合函数F(vc|θ),即为所求卷积特征映射F(X,Y,Z),令其等于0用于描述局部窗口形状的连续函数.对局部三角形集合信息进行编码,描述面片的局部形状,捕获网格窗口的形状变换.z为网格上点的z轴坐标,用于度量拟合误差.拟合后的整个函数F便可作为局部网格的近似表示.

曲面拟合结果如图3所示,蓝色的散点图表示网格窗口中顶点的分布,红色的表面表示使用多项式函数拟合的结果.拟合误差为面片所有顶点的误差均值Lf.

图3 网格形状与二阶多项式的拟合Fig.3 Fitting of mesh shape and second order polynomial

(6)

在拟合过程中,为避免曲面不同位置与姿态对特征层的影响,首先对网格进行正定操作,使其中心点与三维坐标系原点对齐,法向量与三维坐标系z轴平行.方程参数θ=(θ0,θ1,…,θ9)通过广义最小二乘法(GLS)求解.

从图4可以看到,每个模型通过窗口滑动卷积后可以用n个参数方程表示,参数θ可以作为该窗口下某片网格碎片的形状特征描述符.同时,为引入曲面姿态信息,在提取网格曲面形状特征后,加入曲面中心点坐标与法向量,使得网络能够学习到曲面的方向信息.

图4 网格模型多项式特征提取Fig.4 Polynomial feature extraction of grid model

2.3 Mesh胶囊网络

传统胶囊网络首先利用卷积层进行特征提取,然后通过胶囊层逐步将其整合成更深层的特征并用于分类结果.但由于在前文中特征提取的结果为浅层特征,保留有一定的空间信息,且包含语义信息较少,所以在特征提取模块后,加入一个胶囊组成层将方程参数特征向量输出映射到初级胶囊层.对于卷积后的特征层,每个面片表示为一个带有10维参数的多项式.通过3个一维卷积,不断增加通道数,提取更高维度的特征,同时每个卷积后通过一个归一化层来加快网络的训练和收敛速度.

如图3所示,初级胶囊层的胶囊个数由窗口曲面数决定,取N,每个胶囊维度为d.将胶囊组成层得到的特征向量U∈RN×d映射到初级胶囊层,设U=(ui),则每个初级胶囊层的胶囊表示为ui,i=1,2,…,N,ui∈Rd.

通过姿态矩阵不仅可以学习到实体的组成,而且能够保证三维模型在经过非刚性变换后父胶囊与子组件的姿态信息相匹配.但由于该矩阵为两个相邻胶囊层间胶囊的全连接,会增加整个网络的参数量从而导致运算量过大.

(7)

(8)

(9)

其中bij是胶囊i与胶囊j的耦合概率,初始bij设为先验概率.

作为衡量一个矢量特征的显著程度,胶囊网络通过一个压缩函数进行归一化,将胶囊值映射到[0,1]范围,使得胶囊向量的模长可以代表这个特征的概率,同时保留向量中每一维的特征值,其表达式为

(10)

其中,v是胶囊的输出向量,s是Mesh胶囊层的输入向量.MeshCaps的动态路由算法与原始公式中的路由算法相同.

MeshCaps只应用于三维网格分类,因此在训练与预测过程中舍弃了传统胶囊网络中的重构模块及重构损失,降低了模型的复杂度,有助于提高模型的训练效率.损失函数为:

(11)

Lc=Tc(max(0,m+-‖vc‖))2+λ(1-Tc)·

(max(0,‖vc‖-m-))2.

(12)

其中:c是类别;vc表示最终输出的胶囊向量;Tc是分类的指示函数,如果正确预测了类c,则Tc等于1,否则为0;m+作为上界,即预测c类存在但真实不存在并且识别错误;m-作为下界,即预测c类不存在但真实存在,未识别出来;λ是比例系数,用于调整Tc中两者比重.具体参数设置如下:m+=0.9,m-=0.1,λ=0.5.总损失是对C个类的单独损失函数的和.

3 实验及结果分析

为验证本文方法的有效性,在标准三维形变网格模型数据集SHREC15上进行实验验证.实验所用计算机配置为 Intel(R)Xeon(R)处理器64 GB内存.SHREC15数据集包括 50个类别1 200个三维网格模型,每类24个模型,每类模型均有刚体变换和非刚体变换.训练分类器时在每类中随机抽取20个三维模型作为训练样本,其余作为测试样本.

3.1 模型细节

实验基于Pytorch框架设计,模型先经过特征提取模块,随机采样模型85%的点,以顶点为中心取卷积窗口曲面大小为152,卷积后的多项式参数特征经过胶囊组成层,包括3个20维、30维、40维的卷积层,然后通过胶囊维度为40的输入胶囊层,再经过胶囊数量为类别数50、胶囊维度为16的输出胶囊层获得最终分类输出.以Mesh胶囊层每个胶囊的模长作为模型属于类别的概率获得最终结果.整个网络训练期间学习率最低不小于0.001,批量大小取10,使用一个图形处理器(GPU)加速计算,训练总耗时2 158 s.

3.2 分类性能

为了对比提出方法的分类性能的优越性,本文比较了基于传统手工特征进行分类的方法SPH[18]和MeshNet[5]以及MeshCNN[4]直接应用深度学习对三维网格分类的方法.表 1给出了对于不同数据集类别下的分类结果和平均准确率.可以看出,本文提出的MeshCaps算法的分类性能高于其他对比的方法,在SHREC15数据集上,平均准确率达到93.8%,与对比方法的最好结果相比较,提高了2.1个百分点,表明提出的MeshCaps可以在三维网格数据分类中得到更好的结果.

为进一步证明MeshCaps的有效性,对比不同方法的收敛性能,通过图5的曲线可以直观地观察到MeshCaps方法具有较好的收敛性,在第15轮迭代时准确率达到86.63%,较早达到收敛拐点及最终收敛点,证明了胶囊网络中动态路由对矢量特征进行无监督聚类,使整个网络快速收敛的特性.

图5 各方法最终收敛图Fig.5 The final convergence chart of each method

由于SHREC15数据集中的类别过多,所以仅显示13个类别的混淆矩阵. 从图6可以看出,MeshCaps已经能够识别大多数模型.但是,还有几种识别准确率较低的型号,例如眼镜. 我们猜测由于眼镜的尾巴与钳子更相似,在多项式特征提取时,将模型分割为曲面单元,曲面单元形状近似,所以在识别这两种类型的模型时将导致模型具有较高的误识别率.

图6 SHREC15数据集上的识别混淆矩阵Fig.6 Confusion matrix on SHREC15

3.3 卷积窗口大小的影响

为了验证MeshCaps中卷积窗口大小对结果的影响,分别将卷积窗口设置为32~1 024,用于训练,图7表示窗口大小,即取不同邻域点数量作为计算单元对分类准确率的影响.

图7 卷积窗口大小实验Fig.7 Experiment of convolution window size

由图7可知,在其他参数取值固定的前提下,最优卷积窗口大小在140~160范围内.当窗口大小为32,512和1 024时,分类准确率分别为67.9%,85.7%,54.3%.这是由于当局部窗口尺寸设置得非常小时,网格形状基本相同,各种网格间的差异性过小,影响了特征聚类的效果;而当卷积窗口设置过大时,窗口中的网格变得更加复杂,增加了网络复杂度和参数量,使得网络容易过拟合.对于该范围内窗口大小进行实验,因不同数据集的点数量级不同,对于SHREC15数据集实验验证卷积窗口大小最优值为152,即按广度优先搜索取顶点周围151个点作为一个计算窗口时分类准确率最高,达到93.8%.

3.4 参数量对比

表2将网络的时间和空间复杂性与基于分类任务的其他代表性方法进行了比较.标记为#params的列显示了网络中的参数总数,标记为FLOPs/sample的列显示了对每个输入样本执行的浮点操作数,分别代表了空间和时间复杂度.其中,MeshCaps由于胶囊网络采用动态路由多次迭代的方式进行特征聚类,所以在操作数方面较高,但同时也使得整个网络能够快速地收敛,如图5所示,训练中仅仅几轮迭代就可以达到较高的分类准确率.

表2 参数量比较试验Tab.2 Comparative experiment of parameter

3.5 影响因素实验

为了验证MeshCaps特征提取模块中特征融合的有效性和分类模块中胶囊网络的有效性,分别将胶囊网络替换成三层CNN和LeNet进行试验,在SHREC15数据集进行分类准确率对比,Feature+3层CNN、Feature+LeNet和MeshCaps的分类准确率分别为89.9%,90.8%,93.8%.

在采用同样特征方法的情况下,相比于不同的分类网络模型,MeshCaps达到93.8%的准确率,说明MeshCaps在SHREC15数据集分类任务上的优越性,对于复杂数据而言,胶囊网络对比多层CNN结构具有一定的优势.直接对多项式参数特征通过3层CNN进行分类,平均准确率也能达到89.9%,高于SPH方法88.2%的准确率,也进一步验证了特征提取方法的有效性.

由于MeshCaps与MeshCNN和MeshNet网络结构不同,网络中无池化操作,而是直接选取顶点按照广度优先搜索方式获取局部曲面作为一个输入单元,所以在训练时通过对顶点随机采样方式进行简化,当采样点占比分别为70%,75%,80%,85%,90%,95%,100%时平均准确率依次为87.4%,85.8%,91.8%,93.8%,89.5%,79.1%,80.4%.

最优采样比为85%,这是因为一个面片单元由一顶点周围多个点组成,采样百分比过高不免出现面片重叠的现象,影响整个网络训练,而采样比过低模型容易欠拟合.最终选取随机抽样模型总顶点数85%的顶点为输入.

网络设计中对中心点坐标、法向量与多项式参数进行了特征融合,且加入了胶囊组成层用于特征映射,对于胶囊组成层及特征融合的影响做了对比实验,结果如表3所示.

表3 MeshCaps特征融合与组成层影响实验Fig.3 Influence experiment of feature fusion and composition layer of meshcaps

在不进行特征融合且无胶囊组成层的MeshCaps分类中平均精度仍达到91.2%,高于通过CNN方法得到的结果,证明了胶囊网络对于复杂数据模型有一定优势.在融合特征后分类准确率有所提升说明了特征融合的有效性,但其低于有胶囊组成层且未融合特征的准确率,验证了胶囊组成层在整个网络结构中的重要性.

4 结 论

本文提出了一种基于改进胶囊网络的三维网格模型识别算法MeshCaps,将卷积直接应用到不规则三维网格模型,通过多项式拟合方式提取网格特征参数,加入胶囊组成层,提取更高层特征,同时改进胶囊网络中的共享权重的姿态矩阵来适应不同模型输入尺寸上的差异,经过训练在原始测试集上达到93.8%的平均分类准确率.通过与传统CNN网络进行对比实验,验证了胶囊网络的有效性;同时经过与基于网格模型的其他深度学习对比,验证了MeshCaps收敛速度上的优势.在后续的研究中,可以进一步开发该网络以用于三维网格分割,或与网格生成算法相结合执行更多计算机视觉任务.

猜你喜欢

曲面顶点胶囊
国家药监局批准七蕊胃舒胶囊上市
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
时光胶囊
时光胶囊
参数方程曲面积分的计算
参数方程曲面积分的计算
第二型曲面积分的中值定理
关于第二类曲面积分的几个阐述
数学问答