一种基于大数据的查询方法
【技术领域】
[0001] 本发明涉及大数据处理,特别涉及一种基于大数据的查询方法。
【背景技术】
[0002] 随着互联网和多媒体技术的蓬勃发展,图像检索逐渐成为用户获取信息的一种重 要方式。图像容量一般都较大。在很多领域的应用中会产生大量的图像文件,随着高清化 的普及,图像数据量势必会更大。需要对这些应用中产生的海量图像数据进行高效的存储 和快速精确的检索。然而,目前的B/S架构的检索系统检索速度慢,并发性较差,且当图像 数据和索引文件出现快速爆炸性增长时会造成性能瓶颈。
【发明内容】
[0003] 为解决上述现有技术所存在的问题,本发明提出了一种基于大数据的查询方法, 包括:
[0004] 将图像文件存储在分布式文件系统的图像库中;对图像文件进行预处理,然后提 取图像特征;对所提取的特征建立特征索引,将索引文件和图像文件存储在分布式文件数 据库上;当用户向系统提交查询请求时,用户接口对提交的实例或图像特征进行特征提取, 与特征索引库中的图像特征进行相似度比较后将匹配结果发送给用户。
[0005] 优选地,所述在将图像文件存储在分布式文件系统的图像库中之前,还包括:
[0006] 采用主从式结构搭建Hadoop集群,主节点用于集群中所有的任务调度和任务分 配,从节点对主节点分配的任务进行计算和数据存储,并周期性地向主节点报告心跳信 息;
[0007] 数据存储层利用分布式文件数据库对海量图像数据进行分布式存储和建立分布 式访问索引,采用MapReduce编程模型将图像数据进行分块,在Hadoop集群中的节点上进 行处理,提取图像特征、进行图像匹配等计算,Web服务器接收用户输入的实例或图像特征, 将其提交给Hadoop集群进行计算,然后通过Web服务器返回检索结果。
[0008] 优选地,所述在将图像文件存储在分布式文件系统的图像库中,进一步包括:
[0009] (1),在将采集的图像文件上传到分布式文件系统上时,为每个图像文件会生成唯 一的图像ID,作为图像标识;
[0010] (2)检测图像文件是否被损坏,若被损坏,将该图像的ID标记为无效ID,并将无效 ID输出到分布式文件系统中,若没被损坏,则允许正常上传;
[0011] (3)提取分布式文件系统中的图像的颜色、纹理、尺寸特征,并为每个图像生成图 像快照;
[0012] (4)将图像ID、图像快照、颜色特征、纹理特征、尺寸特征索引写入到分布式文件 数据库中。
[0013] 优选地,所述提取图像特征进一步包括:
[0014] 首先进行图像结构分析,对图像进行分割,通过突变检测和渐变检测分离出元素 从元素中提取出图像的位置特征;然后通过计算元素中所有像素的平均值,根据预定的规 则从分离出的元素里提取关键像素点,从关键像素点的集合中来提取颜色特征、形状特征、 纹理特征,共同构成描述图像内容的特征空间;在提取关键像素点后对图像进行聚类,计算 图像之间的相似度,根据相关性关系将元素重新进行组合;
[0015] 其中图像之间的相似度根据以下过程来计算:
[0016] 用P1Q e {1,2,…N})来表示库中的图像,N为图像数量,C1,G1,S1,M 1分别表示第 i个图像的颜色、纹理、形状、位置特征,用Pc表示用户提交的待检索的图像实例,其颜色、纹 理、形状、位置特征分别用C。,G。,S。,M。来表示,待检索图像与第i个图像的相似度用D(P。, Pi)表示:
[0017]
其中,Dc,De,D s,Dj 别为P〇, P1W个图像在颜色、纹理、形状、位置上的相似度,w P W2, W3, W4S各特征的权重,满 W1+W2+W3+W4 - 1〇
[0018] 本发明相比现有技术,具有以下优点:
[0019] 本发明提出了一种基于大数据的查询方法,通过分布式系统对图像数据的存储和 检索过程进行了优化,提高了检索效率,克服了性能瓶颈。
【附图说明】
[0020] 图1是根据本发明实施例的基于大数据的查询方法的流程图。
【具体实施方式】
[0021] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权 利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节 以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中 的一些或者所有细节也可以根据权利要求书实现本发明。
[0022] 本发明的一方面提供了一种基于大数据的查询方法,实现海量图像大数据的分布 式存储和精确快速检索。图1是根据本发明实施例的基于大数据的查询方法流程图。
[0023] 针对海量图像数据的存储和检索需求,本发明组建计算机集群,在集群上搭建高 效、可靠、可扩展的Hadoop平台,组成Hadoop集群。Hadoop集群采用主从式结构,由一个主 节点和多个从节点构成。主节点用于集群中所有的任务调度和任务分配。从节点对主节点 分配的任务进行计算和数据存储。从节点周期性地向主节点报告心跳,若主节点在一定的 时间期限内未收到从节点的心跳信息,则视该节点为无效节点,然后自动对计算任务进行 重新部署和分配。
[0024] 在此架构之上,数据存储层利用分布式文件数据库的数据管理对海量图像数据进 行分布式存储和建立分布式访问索引,数据处理层采用MapReduce编程模型将图像数据进 行分块,在Hadoop集群中的节点上进行处理,提取图像特征、进行图像匹配等计算。这些对 用户是完全透明的,用户只需在客户端提交检索请求,Web服务器接收用户输入的实例或图 像特征,将其提交给Hadoop集群进行计算,然后通过Web服务器返回检索结果。
[0025] 图像检索系统主要由分布式特征提取、分布式检索和用户接口等部分组成。首 先将图像文件存储在HDFS分布式文件系统的图像库中。然后对图像文件进行预处理,将 图像数据分割成一个个元素,然后从元素中提取元素特征。对图像进行特征提取后,利用 MapReduce计算模型建立特征索引,并将索引文件和图像文件存储在分布式文件数据库上。 用户向系统提交查询请求,用户接口对提交的实例或图像特征进行特征提取,与特征索引 库中的图像特征进行相似度比较后将匹配结果发送给用户。因此,用户可以根据自己的满 意度向系统给出自己的反馈样本信息,将用户知识融入到查询中,系统根据反馈样本再次 进行检索,直至满足用户的图像检索需求。
[0026] 海量图像数据集的大小已经完全超过一台独立物理计算机的存储能力。本发明的 解决方案是先将图像上传至HDFS文件系统中,然后对图像进行预处理,再存储到分布式文 件数据库中。以HDFS分布式文件系统作为底层数据存储支持,用分布式文件数据库来实现 海量图像文件的分布式存储和高并发实时读写。
[0027] 本发明设计将一个图像的整体信息作为表的一行存储在分布式文件数据库中。将 行关键字(RowKey)和列关键字(ColumnKey)作为特征表的索引。将图像ID作为R 〇wKey( BP 主键),图像属性保存两列:一列为原图像ID,另一列为图像快照;图像特征属性有三列,分 别为颜色特征、纹理特征和尺寸特征。在对图像进行存储时,按照建立时间来对数据进行排 序,建立时间用数字表示。也就是说,如果存储的数据进行修改,则旧版本数据和新版本数 据都会被存储在分布式文件数据库中,以建立时间来区分它们。查询时如果不提供建立时 间,则返回最近版本的数据。
[0028] 图像的具体存储过程为:
[0029] (1)将采集的图像文件上传到HDFS上,在上传时,每个图像文件会生成唯一的图 像ID,作为图像标识。
[0030] (2)检测图像文件是否被损坏,若被损坏,将该图像的ID标记为无效ID,并将无效 ID输出到HDFS文件系统中。通过读取这些文件来获知无法存储的图像文件。若没被损坏, 则允许正常上传。
[0031] (3)提取HDFS中的图像的特征,包括颜色、纹理、尺寸特征,并为每个图像生成图 像快照。
[0032] (4)将图像ID、图像快照、颜色特征、纹理特征、尺寸特征索引写入到分布式文件 数据库中。
[0033] 提取图像特征是实现基于内容的图像检索的如提,对于提尚图像检索效率有着非 常大的影响。从图像中提取图像特征的过程包括:
[0034] 首先进行图像结构分析:对图像进行分割,通过突变检测和渐变检测分离出元素, 此时,可以从元素中提取出图像的位置特征;然后根据预定的规则从