一种基于深度学习的矢量图检索方法及系统与流程

文档序号:26644300发布日期:2021-09-15 01:39阅读:279来源:国知局
一种基于深度学习的矢量图检索方法及系统与流程

1.本发明属于图像检索领域,特别涉及一种基于深度学习的矢量图检索方法及系统。


背景技术:

2.目前主流的图像检索方法是利用卷积神经网络提取图片特征,利用度量学习方法如欧式距离对图片特征进行计算距离,对图片距离进行排序,得到初级检索结果,再根据图片数据的上下文信息和流形结构对图像检索结果进行重排序,从而提高图像检索准确率,得到最终的检索结果。
3.此类方法在检索矢量图时的缺陷是:
4.1、耗时长:重排序过程增加了额外的处理时间;
5.2、检索准确率差:对于类内差异小的相同类别图像(机械制图等)检索,以及矢量图与位图在线条粗细、位置偏移、噪声、缩放等方面有较大差异时,直接采用该方法是很难获取感兴趣的目标图像;
6.3、标注难:矢量图分类难。


技术实现要素:

7.针对上述问题,本发明采用的技术方案是:一种基于深度学习的矢量图检索方法,所述检索方法包括以下步骤:
8.基于目标矢量图生成与所述目标矢量图一一对应的目标位图;
9.对所述目标矢量图和所述目标位图进行组合以形成带有标识符的多个文件流;
10.基于深度学习获取所述目标位图以及待检索图像的特征信息;
11.对比所述目标位图和所述待检索图像的特征信息,从所述目标位图中初步筛选出与所述待检索图像相关的多个目标图像;
12.根据矢量图和位图的特征差异,对所述目标图像进行相关度排序;
13.基于标识符从所述文件流中检索获取与所述目标图像对应的所述目标矢量图。
14.可选地,所述检索方法还包括步骤:创建特征库;
15.在获取所述目标位图的特征信息的步骤之后,将所述目标位图的特征信息传入所述特征库;
16.在对比所述目标位图和所述待检索图像的特征信息的步骤中,具体为:基于余弦距离对所述待检索图像的特征信息和所述特征库内的特征信息进行计算,从所述目标位图中初步筛选出与所述待检索图像相关的多个目标图像。
17.可选地,在对所述目标图像进行相关度排序的步骤中,具体为:
18.基于所述待检索图像对每个所述目标图像分别进行哈希编码;
19.基于哈希编码结果对所述目标图像通过汉明距离进行相关度排序。
20.可选地,矢量图与位图的特征差异包括线条粗细、位置偏移、噪声、缩放中的一项
或多项差异信息。
21.可选地,每一所述文件流的属性均包括文件信息、目标矢量图和对应的目标位图的字节信息,所述文件信息包括识别号、名称、大小。
22.可选地,在对所述目标矢量图和所述目标位图进行组合以形成带有标识符的文件流的步骤之后,还包括步骤:将所述文件流通过通信框架传入服务器,并以字节数组的形式存储于数据库。
23.以及,一种基于深度学习的矢量图检索系统,所述检索系统包括:
24.图像转换模块,用于生成与目标矢量图一一对应的目标位图;
25.组合模块,用于对所述目标矢量图和所述目标位图进行组合以形成带有标识符的多个文件流;
26.特征提取模块,用于基于深度学习获取所述目标位图以及待检索图像的特征信息;
27.筛选模块,用于对比所述目标位图和所述待检索图像的特征信息,以从所述目标位图中初步筛选出与所述待检索图像相关的多个目标图像;
28.排序模块,用于根据矢量图和位图的特征差异,对所述目标图像进行相关度排序;
29.调用模块,用于基于标识符从所述文件流中检索获取与所述目标图像对应的所述目标矢量图。
30.可选地,所述检索系统还包括特征库;所述特征库用于储存所述特征提取模块获取所述目标位图的特征信息,所述筛选模块用于对比所述待检索图像的特征信息和所述特征库内的特征信息。
31.可选地,所述排序模块包括:
32.哈希编码单元,用于基于所述待检索图像对每个所述目标图像分别进行哈希编码;
33.汉明排序单元,基于所述哈希编码单元处理后的结果对所述目标图像通过汉明距离进行相关度排序。
34.可选地,所述检索系统还包括通信框架和数据库,所述组合单元将所述目标矢量图和所述目标位图进行组合后形成所述文件流后,通过所述通信框架将所述文件流传入服务器,并以字节数组的形式存储于数据库。
35.可选地,所述特征提取模块包括深度学习模型,所述目标位图和所述待检索图像通过所述深度学习模型获取最后卷积层的特征信息。
36.本发明由于采用上述技术方案,使其具有以下有益效果:减少用户矢量图重复绘制,无需训练模型,可以快速部署,达到客户在较短时间内利用位图能够准确检索到服务端矢量图并下载至客户端的效果。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1示出了根据本发明实施例的基于深度学习的矢量图检索方法的流程图;
39.图2示出了resnet50神经网络的结构图;
40.图3示出了resnet50神经网络的残差块结构图;
41.图4示出了根据本发明实施例的网络结构图。
具体实施方式
42.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.本发明实施例的基于深度学习的矢量图检索系统,该检索系统包括windows通信框架、图像转换模块、组合模块、特征提取模块、筛选模块、排序模块、调用模块。
44.windows通信框架(以下简称wcf)是使用托管代码建立和运行面向服务(service oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的、安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。wcf是微软分布式应用程序开发的集大成者,它整合了.net平台下所有的和分布式系统有关的技术,例如:net remoting、asmx、wse和msmq。以通信(communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于internet;以宿主程序而论,可以以asp.net、exe、wpf、windows forms、nt service、com+作为宿主(host)。
45.其中,通过wcf达到以下作用:
46.1)服务端使用servicecontroller组件创建windows服务;
47.2)创建服务协定(servicecontract)与实现服务协定(operationcontract):文件流上传/下载、特征提取等;
48.3)创建通信协议绑定(nettcpbinding);
49.4)配置和承载服务:为服务建立servicehost对象(确保端口不冲突)并指定要寄存的服务类和服务基地址、终结点;
50.5)创建sqlserver文件并设置参数,使用sqlconnection连接splserver;
51.6)启用元数据交换,建立一个服务元数据行为对象;最后,启动/关闭宿主,开始/结束服务;
52.7)创建和使用客户端(windows窗体及控件);
53.8)为客户端添加指向服务基地址的服务引用以下载元数据;
54.9)客户端使用代理类调用服务操作(客户登录、文件流上传/下载、特征提取等)。
55.结合上述本发明实施例的基于深度学习的矢量图检索系统,如图1所示,进一步介绍本发明实施例的基于深度学习的矢量图检索方法,该检索方法包括以下步骤:
56.s1:通过图像转换模块基于目标矢量图生成与所述目标矢量图一一对应的目标位图。
57.在本实施例中,客户端通过批量解析矢量图visio文件中的group部件,生成具有关联的矢量图和位图。一个原始visio文件可以按照group解析成众多visio文件(pages[1].shapes[i].export)并保存为对应的位图。具体的,包括以下步骤:
[0058]
安装visio sdk(sdk,软件开发工具包,software development kit);
[0059]
调用visio的程序(microsoft.office.interop.visio.invisibleapp.documents.open(文件目录))打开一个visio文件,利用type.gettypefromprogid可避免调用系统app过程中的闪屏现象;
[0060]
获取shape对象(visio.document.pages[1].shapes[i]),以名称删除非感兴趣对象、以shape大小移除作图时间较少的shape对象等筛除操作;
[0061]
将筛除后的所有感兴趣shape对象保存为一个visio文件(矢量图)和png文件(位图)。
[0062]
s2:通过组合模块对所述目标矢量图和所述目标位图进行组合以形成带有标识符的多个文件流。
[0063]
在本实施例中,解析后形成的目标矢量图和目标位图组合形成带有guid信息的文件流通过wcf通信框架传入服务器,以字节数组的形式存储服务端数据库(sqlserver)。
[0064]
每一份文件流(vector_package)属性包含:文件信息(fileinfo:id、name、size等)以及解析后的一个visio文件(目标矢量图)和png文件(目标位图)转换的字节信息,使用streamutil来拷贝文件流(vector_package),然后利用服务协定(operationcontract)上传至服务器,将文件流转换成数据并添加至数据库(sqlserver)。其中,客户端将visio文件和png文件转换成字节数组,然后转换成文件流传入服务器,在服务器端通过将文件流转换成字节数组,并将字节数组添加至数据库。
[0065]
s3:特征提取模块基于深度学习获取所述目标位图以及待检索图像的特征信息。
[0066]
其中,检索系统中的特征提取模块包括特征库和深度学习模型,检索方法的步骤中还包括步骤:创建特征库;以及在获取所述目标位图的特征信息的步骤之后,将所述目标位图的特征信息传入所述特征库。
[0067]
所述深度学习模型采用已经训练完成的resnet50神经网络(python)或imagenet的resnet50网络模型,在本实施例中,采用imagenet的resnet50网络模型,达到无需训练模型,可以快速部署,以提高特征提取精度。其中,网络的深度对模型的性能至关重要,当增加网络层数后,网络可以进行更加复杂的特征模式的提取,所以当模型更深时理论上可以取得更好的结果。resnet50神经网络是参考了vgg19网络,在其基础上进行了修改,并通过短路机制加入了如图3所示的残差块。如图4所示,首先对输入做卷积操作,之后包含4个残差块(residualblock),最后进行全连接操作以便于进行分类任务,网络构成如图2所示,其中resnet50包含50个conv2d(二维卷积)操作。
[0068]
在本实施例中,采用h5py特征库,python深度学习常用h5py特征库,h5py库包含数据集(dataset)和组(group),dataset类似数组类的数据集合,group类似文件夹容器,group类似python中的字典,有键(key)和值(value),键(key)存储有guid信息,且与数据库(sqlserver)中的id相同,从而可实现检索出对应的visio文件(目标矢量图)和png文件(目标位图)。
[0069]
所述目标位图和所述待检索图像通过所述深度学习模型获取最后卷积层的特征信息。
[0070]
此外,在对待处理图像进行特征信息获取时,还包括步骤:获取待处理图像。一般情况下,通过截图获取待处理图像,截图后,感兴趣区域所占图像过小、噪声过多,通过前处
理将感兴趣区域适度占满整个图像区域,利用橡皮擦功能适当擦除过多的噪声。
[0071]
s4:对比所述目标位图和所述待检索图像的特征信息,通过筛选模块从所述目标位图中初步筛选出与所述待检索图像相关的多个目标图像。
[0072]
其中,在对比所述目标位图和所述待检索图像的特征信息的步骤中,具体为:基于余弦距离对所述待检索图像的特征信息和所述特征库内的特征信息进行计算,从所述目标位图中初步筛选出与所述待检索图像相关的多个目标图像。在本实施例中,无需对矢量图进行分类,且不用直接基于矢量图进行检索,而是通过将矢量图生成与之对应的位图进行检索,检索准确率更高。
[0073]
s5:根据矢量图和位图的特征差异,通过排序模块对所述目标图像进行相关度排序。
[0074]
矢量图与位图的特征差异包括线条粗细、位置偏移、噪声、缩放中的一项或多项差异信息。且在本实施例中,仅需进行一次排序,从而达到缩处理时长。
[0075]
其中,检索系统中的排序模块包括哈希编码单元和汉明排序单元。在对所述目标图像进行相关度排序的步骤中,具体为:
[0076]
基于所述待检索图像通过哈希编码单元对每个所述目标图像分别进行哈希编码,包括:缩小图片尺寸、将其化为灰度图、计算灰度均值、计算差异值得到二值图、将二值图按序组合成哈希值指纹;
[0077]
基于哈希编码结果通过汉明排序单元对所述目标图像top100通过汉明距离进行相关度排序。
[0078]
s6:调用模块基于guid信息从所述数据库的所述文件流中检索获取与所述目标图像对应的所述目标矢量图。
[0079]
s7:将调取的矢量图传给客户端并下载。
[0080]
需要说明的是,本说明书所述的s1、s2、s3等为便于阅读,并不表示执行s1后必须执行s2,并不排除s1和s2中执行有其他步骤。
[0081]
在本方案中,基于深度学习算法,使用wcf框架建立通信服务的矢量图检索系统以及实现矢量图检索方法,在类内差异小且相同类别的图像场景下,对通过余弦距离计算后的初级度量结果,再利用哈希编码和汉明距离重新排序的算法优化方案。实现基于位图形式的待检索图片检索出与之对应的矢量图,从而减少重复绘制矢量图的工作,且缩短检索耗时、提高检索准确率。此外,结合imagenet的resnet50网络模型,达到无需训练模型,可以快速部署的优势;并利用sqlserver存储所有数据信息,在海量数据快速变化的中从容响应。
[0082]
以上所述仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1