APP下载

双层CNN三维刚性与非刚性模型相似性分析

2019-07-08罗林阮文静庄济滔

软件导刊 2019年6期

罗林 阮文静 庄济滔

摘 要:三维模型相似性分析是计算机视觉中的重点问题,如何构建其形状特征和对比函数是难点。随着深度学习出现,通过神经网络自动提取模型特征成为研究热点。构建了双层CNN网络,首先利用热核特征函数分别构建带有颜色的刚性和非刚性训练集与测试集,其次将数据集通过双层CNN网络进行模型训练,第一层实现类别初步判定,第二层实现同一模型刚性与非刚性形变区分。为了提高分类准确度,对初步分类错误的模型引入阈值判定,将其直接排除。通过实验分析,双层CNN网络刚性与非刚性的判别准确率达到99%。实验证明,该方法在模型相似性分析上是鲁棒的,且提取的特征不受人工干扰。

关键词:三维模型;相似性分析;形状特征;CNN;热核特征

DOI:10. 11907/rjdk. 182493

中图分类号:TP301

文献标识码:A文章编号:1672-7800(2019)006-0029-06

Abstract: Three-dimensional (3D) model similarity analysis is a key issue in computer vision. How to construct the shape feature and analysis function of the 3D model is a challenging problem. With the advent of deep learning, it is a hot topic to extract model features automatically through the neural network. Therefore, the paper proposes a two-layer CNNs. Firstly, we construct a rigid and non-rigid training set and test set with color by the heat kernel signature (HKS). Then a two-layer CNNs with the constructed training set is trained. The first layer of CNN implements the preliminary classification for 3D models, and the second layer achieves the distinction between the rigid and non-rigid deformation of the same model. Finally, in order to improve the accuracy of classification, the threshold is presented for excluding the 3D models directly,by which they have an error classification after the preliminary classification. The two-layer CNNs constructed in our paper has an accuracy of 99% in classification of rigid and non-rigid deformation through the experiments. The proposed method is robust in the similarity analysis of the model, and the extracted features are not subject to artificial interference.

Key Words:three-dimensional model; similarity analysis; shape feature; CNN; HKS

0 引言

近年来,随着多媒体技术飞速发展,三维模型广泛应用于工业产品设计、虚拟现实、影视动画。例如,医疗行业用三维模型制作器官的精确模型、建筑行业用三维模型展示建筑物或者风景表现等[1-2]。每天都有大量三维模型产生和传播,因此对三维模型進行分析、匹配与检索存在迫切需求[3]。由于存在拓扑关系,三维模型在变形时会导致模型发生变异。因此,其相似性分析主要分为刚性模型和非刚性模型两大类。刚性模型主要变换有旋转、平移、缩放以及映射等,变换前后模型内部点的相对位置不发生改变,而非刚性模型则具有铰链结构,模型的形状变化也会多种多样,不仅能进行旋转、平移、缩放等刚性形变,还能发生连接关系改变,因此非刚性模型相似性分析存在更高的技术难度[4]。目前,比较成熟且常见的检索系统主要针对刚性模型,而近年来非刚性模型相似性以及检索系统研究也越来越受到学者关注[5]。

目前常用的三维模型相似性分析算法有形状直方图、扩展高斯图像和函数分析等[6-8]。随着深度学习技术出现,人工提取特征的局限性越来越明显,上述算法不再适合三维模型相似性分析。但是,仍有许多研究将其应用在模型预处理等工作上。例如,Chen等[9]提出基于视觉的三维模型检索系统,首先将视点布置在正十二面体上,然后通过旋转正十二面体得到不同视角下的二维投影图像,通过比较不同模型所得图像进行相似性分析。二维投影确实可以表达三维模型的整体形状,但是不能较精确地表达三维模型的局部信息。因此,Hang 等[10]提出了多视角下CNN网络构建方法,通过多个视点,构建多张视角图片作为CNN网络的输入向量,将二维图像特征通过CNN网络提取为更丰富的高级特征,从而提高模型检索准确度。李重等[11]提出基于骨架的蛋白质三维模型相似性分析方法,通过提取模型拓扑骨架,获取比较特征值,基于距离函数对模型进行相似性分析。该类算法的核心是通过提取三维模型某一方面特征(如形状、拓扑和二维投影等),将其映射到特征向量空间。由于这些方法提取的是三维模型的整体特征,所以只能在整体级别上对三维模型进行较为粗糙的比较,无法实现精确的局部细节特征级别相似性比较。针对模型的局部特征问题,Smeets 等[12]将二维尺度不变特征转换(Scale Invariant Feature Transform,SIFT)特征描述方法扩展到三维网格空间,提出了基于MeshSIFT的三维模型局部特征提取方法。因此,目前众多研究人员开始关注如何构建更加高级且丰富的模型特征,从而在检索中提高其准确度。结合深度学习技术进行三维模型形状相似性分析引发了众多科研工作者关注,例如,Wang等[13]提出基于八叉树CNN网络的三维模型形状分析方法,通过八叉树表征三维模型数据,输入到CNN网络中对模型进行分析。Masci等[14]提出GCNN方法,直接将三维形状看成二维流形(Manifold),顶点之间的距离不再是欧氏距离,而是在极坐标系下定义的测地线距离,该网络结构可以在流形上进行任意变化,模型检索结果较好。

但是,上述方法对于模型的非刚性变化基本无效。结合深度学习进行非刚性模型检索的优秀文章目前极少,大多数研究仍然采用人工特征提取方法进行非刚性模型分析。例如,万雅娟[15]提出基于几何特征的非刚性三维模型检索方法,因测地线距离的几何特征具备等距不变性,该特性适用于非刚性三维模型检索。但是,该算法需要在模型表面进行采样点选取, 如果采样点不均衡,提取到的模型特征不足以充分描述该模型形状,其检索度将会降低。因此,该作者针对该问题提出了基于形状特征的兴趣点均衡选取算法,首先均匀选取采样点,然后计算其测地线距离,统计分布直方图,最后根据直方图进行匹配检索。赖龙等[16]提出一种多特征融合的非刚性三维模型匹配算法,先计算待融合特征的信息熵,将该信息熵转化成权值,对单一特征下模型间相似度进行加权融合,将最终得到的相似度作为新的模型间相似度。

面对非刚性变化的丰富多样性,现有特征提取算法都有其适应性以及局限性,如果只是人工提取特征,其局限性和特征提取的不完整性终会导致检索准确度降低。针对非刚性模型的这一难点,本文考虑刚性和非刚性模型特性,提出基于双层CNN对三维模型进行相似性分析,而传统CNN网络只支持二维图片输入,因此如何构建合适的输入特征以及分析函数是重点和难点。同时,不同输入特征也决定了网络层数的深度和广度,面对众多三维模型,不可能每天都进行训练和学习。因此本文在三维模型相似性分析上,不仅能在模型形变基础上对模型进行识别,还能对该模型是发生了刚性形变还是非刚性形变进行判断,同时训练时间较短,识别效果较优,研究具有一定实践意义。

1 数据集构建

如何构建适合深度学习CNN网络的输入特征,是本文研究重点,因此从建立三维模型的数据集出发,结合热核特征等距不变性,对三维模型进行着色处理。将模型着色处理后,采取不同视点角度,在x0y平面上得到不同二维图像,将其作为数据集。二维图像可以很好地表达模型的整体特征,而通过热核特征计算的颜色特征可以描述模型的拓扑变化以及局部特性,不同视角下的图片表征了三维模型的视角变化。

热核特征(HKS)由Sun等[17]在2009年提出,它是基于Laplace-Beltrami算子的形状描述子。因为HKS对于三维模型的变化比较敏感,当三维模型进行非刚性变化后,对应模型的点的HKS值会有较大变化,相应的颜色填充较刚性形变模型也会发生较大变化,如图1所示。该特点能够很好地对三维模型刚性变化与非刚性变化进行区分,对于三维模型刚性和非刚性相似性分析有较好鲁棒性。根据文献[17]中HKS特征计算公式得到三维模型的HKS特征值,按照HKS特征值自定义区间颜色范围,对各区间用不同颜色进行着色处理,如图1所示。

由圖2可以看到,当模型进行刚性变化后,其颜色与原模型颜色接近一致,图2(a)的RGB值为[127,83,80],图2(b)的RGB值为[128,85,76],两个模型RGB值非常接近。而非刚性变化后的模型颜色差异比较明显,图2(c)的RGB值为[173,111,25],因此3个模型通过颜色能够更加直观地进行分析,为后续CNN网络模型训练提供了保证。最后将三维模型置于不同视点下,使用Matlab得到不同角度下三维模型的二维视图,如图3所示。本文采用的三维模型为McGill模型集[18],构建的数据集有刚性数据集(图3左)和非刚性数据集(图3右),数据集中每张图片的数值表示为三维模型在[i, j, k]方位角下的二维图片。

2 双层CNN网络构建

深度学习技术出现之前,人工对图片识别保持着较高准确度,但存在耗费大量人力以及效率低的问题[19]。而深度学习的出现很大程度上解决了该问题,其网络结构能够对输入到网络中的数据集进行分析并学习数据的分布性特征,通过加深网络中的层数使得网络能够学习到更抽象的数据特征,训练完成后的深度学习网络具有自动分析识别数据能力。

首先,利用数据集构建方法,构建两分类(钳子和飞机模型)的颜色数据集,如图4所示。同时上文已构建了钳子的刚性和非刚性数据集,如图3所示。本文在两类数据集基础上,构建双层CNN网络,每层CNN网络层数都为6,如图5所示。其次,根据两类数据集分别训练2层CNN网络模型,将两分类颜色数据集放入单层CNN网络中进行模型训练,直至可以准确地将不同模型进行分类;分别将两分类模型的刚性和非刚性数据集放入另一单层CNN网络中进行相应模型训练,直至可以准确地将两分类模型的刚性和非刚性形变模型分别分出。最后,随意输入一张模型图片到网络中,图片通过CNN网络初步确认模型类别,根据类别再次放入训练好的刚性判别CNN网络中,从而最终得到模型形变结果,流程如图6所示。

但是,如果输入任意模型图片,并非两类模型中的一种,CNN网络总会将图片分为最相似一类,即便通过双层CNN网络仍会被分为两类中的一类,而多类分类亦如此。因此本文在CNN网络基础上,提出了阈值判定分类算法。该算法结合传统CNN结构和孪生网络的特征,通过阈值判定,将非两类模型图片排除出去,如图7所示,通过阈值W进行最终判定。

图5中输出向量output1是为阈值计算服务的,图7中基准向量input为图5中向量output1的平均值。首先,选取颜色数据集中n张同一类模型图片放入单层CNN网络中,会得到n个输出向量output1, 计算n个向量的平均值,作为基准向量input。其次,随机放入一个模型任意视角下的m张图片到CNN网络中,通过已训练好的CNN网络得到m个输出向量output1,再次计算基准向量input与输出向量output1之间的欧式距离W,然后将W的平均值作为该类别阈值,意味着多分类就有多个阈值。最后,随机输入一张调色后的图片,通过单层CNN网络得到输出向量,通过输出向量初步确认类别,与该类别基准向量进行计算得到一个值W,与该类别阈值进行比较,最终决定输入网络中的模型属于哪一类或完全不相似。具体流程如图8所示。