本发明涉及跨模态检索的
技术领域:
,尤其是指一种基于草图检索三维模型的跨模态检索方法。
背景技术:
:近年来,由于三维模型具有较强的视觉刺激性和更广的应用场景,三维模型数据呈爆发式增长。随着三维扫描、三维打印等技术的发展,人们可以更高效地获取三维数据。为了帮助用户轻松获取所需的三维模型,并且能够对三维模型进行复用与共享,三维模型检索技术已经成为计算机图形学的热门话题。触屏设备和手写设备的广泛普及以及表情包的流行,使得人们开始尝试用手绘草图来代替文字或语言进行抽象表达。通过草图,用户可以更加快速准确的表达自己的想法,输入的随意性和创造性也得到了极大的施展。手绘草图作为一种方便快捷的交互方式可以更好的表达用户的查询意向。与基于关键字和基于样例方式相比,草图是一种更适合三维模型检索的交互方式。尽管基于草图检索的方法具有方便和容易获取的优点,但它仍然存在很多棘手的问题。首先,草图和三维模型属于两种不同的模态,而不同模态的特征遵循不同的分布规律所以二者存在很大的语义鸿沟。其次,草图线条比较简单且同一物体的不同表达也不尽相同。技术实现要素:本发明的目的在于克服现有技术的缺点与不足,提出了一种基于草图检索三维模型的跨模态检索方法,以视图作为中介,尽可能缩小三维模型与草图的语义差距,利用三维模型的多个视图来表征三维模型的信息,构建了一个新颖的草图检索三维模型的网络结构,在shrec2013和shrec2014上取得了非常好的分类准确率,和当前最好的方法相当,实验结果充分表明,我们的网络框架完全可以通过草图检索到对应的三维模型。为实现上述目的,本发明所提供的技术方案为:一种基于草图检索三维模型的跨模态检索方法,该方法是以三元网络为基本结构,训练跨域的分类器,不断缩小跨域模态之间的差异,提高检索精度,其包括以下步骤:1)数据集选取数据集选用标准的shrec2013、shrec2014数据集,每个数据集包括三维模型数据子集和草图数据子集;2)原数据集预处理对数据集中的三维模型数据进行渲染,一个三维模型得到多个二维视图,这些二维视图用来表示三维模型,草图数据统一尺寸成256×256;3)训练草图分类器和视图分类器对于草图分类器,将二维视图通过边缘提取转换成草图,以原始草图为anchor,转换得到的草图划分为正例和负例,送到三元网络中训练,以网络的参数作为草图分类器的输出;对于视图分类器,将原始草图通过gan网络转换成视图,以这个视图为anchor,三维模型的视图划分为正例和负例,送到三元网络训练,以网络的参数作为视图分类器的输出;4)构建深度度量学习空间以原始数据集中的草图和视图作为网络的输入,将草图和视图分类器得到的参数作为网络的参数,通过训练达到检索目标。在步骤1)中,选用数据集为shrec2013和shrec2014,shrec2013数据集包含1258个三维模型和7200张草图,共计90类,每类草图包括50个训练样本和30个测试样本,共计80个样本;shrec2014数据集包含8987个三维模型和13680张草图,共171类,每类草图包括50张训练样本和30张测试样本,共计80张样本。在步骤2)中,数据集内所有三维模型进行正则化摆放,通过在三维空间设定的位置放置虚拟摄像机来渲染二维视图,同时为了更明显地突出三维模型表面的深度信息,渲染时还添加了光照,用渲染的二维视图的明暗信息来表征三维模型表面的深度信息;将草图尺寸调整为与网络所需尺寸相适应的大小,其目的在于对数据图像正则化以减少参数量,使得网络更加高效运行。在步骤3)中,以三元网络为基本结构,对于每一个分支采用alexnet网络,具体如下:在草图分类器中,需要在草图域中得到草图和视图的联系,因此要将二维视图先转换成草图,通常对于跨域转换gan网络是一个很好的选择,但是使用的数据集中三维模型渲染的视图数量远远高于草图数量,通过实验发现使用gan网络将视图转为草图效果不理想,故需要使用另外一种方法进行处理:首先,利用canny算子提取视图的边缘信息,然后进行膨胀和高斯滤波处理得到草图,在构建三元网络时,以原始数据集中的草图作为anchor,以边缘提取操作转换的草图数据集中选择和anchor同类别的作为正例,和anchor不同类别的作为负例,不同分支之间共享参数,构建三元网络的损失,来让跨域特征分布有相关性,损失函数表示为:式中,lsketch表示草图分类器的损失,目的是为了使anchor和正例的距离越来越近,anchor和负例的距离越来越远,代表作为anchor的草图及转换得到的视图中的正例与负例,fs()是通过网络训练得到的特征,α表示正样本对和负样本对之间的约束,通过不断优化使损失达到最小,草图分类器就训练完成;在视图分类器中,需要在视图域中得到草图和视图的联系,草图的纹理信息比视图少,视图具有丰富的纹理信息,使用现有的数学工具很难从无到有将草图转换成视图;而gan网络能够将一种类型的图像转换成另一种类型的图像,使用cyclegan作为草图转视图的工具,由于三维模型渲染的视图数据集远远大于原始草图数据集,因此在构建三元网络时,以草图转换到的视图作为anchor,在视图数据集中选择和anchor同类别的作为正例,和anchor不同类别的作为负例,不同分支之间共享参数,构建三元损失,来学习跨域特征分布的相关性,损失函数表示为:式中,lview表示视图分类器的损失,分别表示通过gan转换得到作为anchor的视图及三维模型渲染得到的视图中的正例和负例,fv()表示经过网络训练到的特征,通过对网络不断迭代优化,使anchor和正例的距离越来越近,anchor和负例的距离越来越远,网络的参数即代表样本之间的相关性和区分性。在步骤4)中,多模态数据构造度量空间,该空间须在语义特征上同类尽近似,异类相远,在语义层面上草图和视图有共通的层次;入口为草图和视图,但是出口都是特征,即在语义上有通相性,网络是否在某一层能够达到共享,因此考虑权值共享问题,以原始数据集中的草图和三维模型渲染得到的视图作为输入,以草图作为anchor,在视图集中选择正例与负例,使用草图分类器和视图分类器得到的参数作为网络的参数,这两个分类器的参数代表了草图域和视图域中不同模态之间的关系,和分类器网络训练过程一样,正例和负例网络分支共享权值,不断优化得到所需的检索网络,基于草图的三维模型检索依赖于草图特征和多视图特征之间的距离度量,对于最后的检索网络提取到的草图和视图的特征描述符,通过wasserstein距离来度量它们之间的距离,距离越近则表示越相似,相似度度量如下:式中,为三维模型中第m个模型和第n个视图的特征,为第i个草图的特征,d(mm,si)越小,表明草图si和三维模型视图mm越相似。本发明与现有技术相比,具有如下优点与有益效果:1、本发明为了弥补草图和三维模型之间的语义鸿沟,以视图为中介来建立草图和三维模型之间的相关性。2、传统方法都会选择三维模型的最佳视角,最佳视角的选择往往具有主观性,本发明不需要最佳视角的选择,直接使用三元网络来进行跨域学习。3、本发明使用了gan网络进行草图到视图的跨域转换,gan在图像翻译方面有着非常好的效果,这样使两者分别得到跨模态的数据,进一步扩大可见信息缩小草图和视图的语义差异。4、本发明构建了两个域分类器,来学习草图和视图之间的语义相关性,减小草图和视图的语义差异。5、本发明第一次使用三元损失,可以有效的缩小同类样本之间的距离,增大不同样本之间的距离,提高检索精度。6、本发明第一次使用了wasserstein距离来进行相似度衡量,相比于传统使用的欧氏距离衡量,wasserstein距离更能精确衡量相似度。7、本发明在草图检索三维模型方面有着更好的准确度,操作简单,实用性强,具有很好的利用前景。附图说明图1为多层次迭代度量学习示意图。图2为两种不同的视图获取对比图。图3为triplet网络结构图。具体实施方式下面结合具体实施例对本发明作进一步说明。本实施例所提供的基于草图检索三维模型的跨模态检索方法,是以三元网络为基本结构,训练跨域的分类器,不断缩小跨域模态之间的差异,提高检索精度,如图3所示,展示了我们的整体网络结构,anchor锚点和正例负例之间部分权值共享,通过卷积、池化等操作提取特征,通过三元网络完成检索任务。其包括以下步骤:1)数据集选取数据集选用标准的shrec2013、shrec2014数据集,每个数据集包括三维模型数据子集和草图数据子集;shrec2013数据集包含1258个三维模型和7200张草图,共计90类,每类草图包括50个训练样本和30个测试样本,共计80个样本;shrec2014数据集包含8987个三维模型和13680张草图,共171类,每类草图包括50张训练样本和30张测试样本,共计80张样本。2)原数据集预处理对数据集中的三维模型数据进行渲染,如图2所示,在第一种方式中,我们假设模型方向一致的放置在平面上(如垂直于水平线),在模型周围均匀的放置12个虚拟摄像机,可得到12个不同的视图;在第二种方式中,模型可随意放置,我们用一个正12面体包裹三维模型,并将模型质心与正12面体的中心对齐,然后在12面体的20个定点上面向模型中心放置20个虚拟摄像机,每个摄像机以自己的中心和模型的中心的连线为轴旋转0°、90°、180°、270°得到四个不同旋转角度的视图,20个虚拟摄像机一共得到80个不同角度的二维视图。与第二种方式相比,人们观察物体时更加倾向于选择第一种方式,所以本文采用了第一种视图渲染方式。一个三维模型得到多个二维视图,这些二维视图用来表示三维模型,草图数据统一尺寸成256×256;数据集内所有三维模型进行正则化摆放,通过在三维空间设定的位置放置虚拟摄像机来渲染二维视图,同时为了更明显地突出三维模型表面的深度信息,渲染时还添加了光照,用渲染的二维视图的明暗信息来表征三维模型表面的深度信息;将草图尺寸调整为与网络所需尺寸相适应的大小,其目的在于对数据图像正则化以减少参数量,使得网络更加高效运行。本文给定原始草图大小为1111×1111,将其大小缩放为256×256,给定三维模型,我们沿用了mvcnn的视图获取方法,通过在三维空间设定的位置放置虚拟摄像机来渲染二维视图,同时为了更明显地突出三维模型表面的深度信息,渲染时还添加了光照,用渲染的二维视图的明暗信息来表征三维模型表面的深度信息,这些二维视图反映了不同视角下三维模型表面的几何信息(如曲面、平面、棱角等)、结构信息以及由明暗表征的深度信息,最后一个三维模型渲染得到12个视图表示。3)训练草图分类器和视图分类器以三元网络为基本结构,对于每一个分支采用alexnet网络,实验表明alexnet在提取二维图像特征方面有着很好的效果。具体情况如下:在草图分类器中,我们需要在草图域中得到草图和视图的联系,因此我们要将二维视图先转换成草图,通常对于跨域转换gan网络是一个很好的选择,但是我们使用的数据集中三维模型渲染的视图数量远远高于草图数量,通过实验发现使用gan网络将视图转为草图效果不理想,所以我们考虑使用另外一种方法进行处理:首先,利用canny算子提取视图的边缘信息,然后进行膨胀和高斯滤波等处理得到草图,在构建三元网络时,以原始数据集中的草图作为anchor,以边缘提取等操作转换的草图数据集中选择和anchor同类别的作为正例,和anchor不同类别的作为负例,不同分支之间共享参数,构建三元网络的损失,来让跨域特征分布有相关性。对于草图和视图翻译成的草图在网络中提取得到的草图特征表示为fs(s)和fs(yv)。在草图度量学习中,我们从中随机选择作为anchor(表示草图度量学习中第k个anchor样本),从中选择与同类的作为positive(表示草图度量学习中第k个positive样本),选择与不同类的作为negative(表示草图度量学习中第k个negative样本)。损失函数表示为:式中,lsketch表示草图分类器的损失,目的是为了使anchor和正例的距离越来越近,anchor和负例的距离越来越远,代表作为anchor的草图及转换得到的视图中的正例与负例,fs()是通过网络训练得到的特征,α表示正样本对和负样本对之间的约束,通过不断优化使损失达到最小,草图分类器就训练完成。在视图分类器中,我们需要在视图域中得到草图和视图的联系,草图具有比较少的纹理信息,视图具有很丰富的纹理信息,使用现有的数学工具很难从无到有将草图转换成视图;gan网络能够将一种类型的图像转换成另一种类型的图像;我们使用cyclegan作为草图转视图的工具,由于三维模型渲染的视图数据集远远大于原始草图数据集,因此我们在构建三元网络时,以草图转换到的视图作为anchor,在视图数据集中选择和anchor同类别的作为正例,和anchor不同类别的作为负例,不同分支之间共享参数,构建三元损失,来学习跨域特征分布的相关性。对于草图,我们定义为nsketch为训练集中草图的个数。对于三维模型渲染得到的视图,我们定义为nview为训练集中视图的数目(nview=nm×nv),nm为数据库中三维模型的个数,nv为每个三维模型渲染得到的视图个数。对于草图s和三维模型的视图v两个领域,使用{s}{v}表示两个领域的图像集合。cyclegan翻译的目的就是学习从草图s到视图v的映射。我们假设草图到视图的映射为x:s→v;视图到草图的映射为y:v→s。草图s经过生成器g生成视图x(s),x(s)经过判别器之后得到图像dv(x(s))。同理视图经过生成器g生成草图y(v),y(v)经过判别器之后得到图像ds(y(v))。x:s→v的判别器损失为:y:v→s的判别器损失为:x:s→v和y:v→s两次生成的损失为:跨模态翻译的最终损失函数为:l(x,y,ds,dv)=lgan-x(x,dv,s,v)+lgan-y(y,ds,v,s)+lcyc(x,y)跨模态翻译过程中,经过草图和视图的不断学习、相互翻译,最终可得到草图翻译成的视图同时得到视图翻译成的草图对于视图和草图翻译成的视图在网络中提取得到的视图特征表示为fv(xs)和fv(v)。在视图度量学习中,我们从中随机选择作为anchor(表示视图度量学习中第k个anchor样本),从中选择与同类的作为positive(表示视图度量学习中第k个positive样本),选择与不同类的作为negative(表示视图度量学习中第k个negative样本)。损失函数表示为:式中,lview表示视图分类器的损失,分别表示通过gan转换得到作为anchor的视图及三维模型渲染得到的视图中的正例和负例,fv()表示经过网络训练到的特征,通过对网络不断迭代优化,使anchor和正例的距离越来越近,anchor和负例的距离越来越远,网络的参数即代表样本之间的相关性和区分性。4)构建深度度量学习空间以原始数据集中的草图和视图作为网络的输入,将草图和视图分类器得到的参数作为网络的参数,通过训练达到检索目标,如图1所示,展示了我们的检索网络框架,三维模型首先通过mvcnn得到多个二维视图,随机选取其中的一部分作为正例和负例(正例是和anchor锚点草图同类的视图,负例是和anchor锚点草图异类的视图),通过卷积神经网络提取视图和草图的特征,最后通过相似性度量完成检索任务。具体如下:多模态数据构造度量空间,该空间须在语义特征上同类尽近似,异类相远,在语义层面上草图和视图有共通的层次。入口为草图和视图,但是出口都是特征(在语义上有通相性),网络是否在某一层能够达到共享,因此考虑权值共享问题,以原始数据集中的草图和三维模型渲染得到的视图作为输入,同样的,我们仍然以草图作为anchor,在视图集中选择正例与负例,使用草图分类器和视图分类器得到的参数作为该网络的参数,这两个分类器的参数代表了草图域和视图域中不同模态之间的关系,和分类器网络训练过程一样,正例和负例网络分支共享权值,不断优化得到我们的检索网络,基于草图的三维模型检索依赖于草图特征和多视图特征之间的距离度量,对于最后的检索网络提取到的草图和视图的特征描述符,我们通过wasserstein距离来度量它们之间的距离,距离越近则表示越相似。本文使用欧氏距离度量手绘草图和三维模型渲染视图之间的相似性。(nm为数据库中三维模型的个数,nv为每个三维模型渲染得到的视图个数)为三维模型视图的集合,为草图的集合,表示草图si和三维模型视图之间的欧氏距离。相似度度量如下:式中,为三维模型中第m个模型和第n个视图的特征,为第i个草图的特征,d(mm,si)越小,表明草图si和三维模型视图mm越相似。实验配置:本文实验的硬件环境为intelcorei72600k+gtx10708g+8gram,软件环境为windows7x64+cuda8.0+cudnn5.1+caffe+python.本文使用alexnet提取图像特征,使用python处理数据,使用matlab完成检索指标评价及部分可视化效果,使用python存储图像特征完成检索实验。数据集:本文实验所用数据集为shrec草图检索专题的2013、2014标准数据集,简称shrec2013、shrec2014。shrec每年的数据会有较大的变化,不仅三维模型的数量和草图数量有所增加,三维模型的分类复杂度也随之提高。另外,三维模型的种类较多,每类的数量不一致且有些类别数量特别少。本文算法克服了不同数据集对检索结果的影响,在不同数据集测试下均表现了良好的性能。shrec2013数据集包含1258个三维模型和7200个草图,共90类。每类草图包括50个训练样本和30个测试样本,共80个样本。三维模型在每类中的数量都不相同,平均每类14个模型。shrec2014数据集包含8987个三维模型和13680个草图,共171类。每类草图包括50个训练样本和30个测试样本,共80个样本。表1给出了本文选用数据集的基本信息。表1本文选用数据集的基本信息数据集模型数目类的数目各类草图数目shrec201312589080shrec2013898717180以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。当前第1页12