一种基于大数据的检索方法

文档序号:9396968阅读:845来源:国知局
一种基于大数据的检索方法
【技术领域】
[0001] 本发明涉及大数据处理,特别涉及一种基于大数据的检索方法。
【背景技术】
[0002] 随着互联网和多媒体技术的蓬勃发展,图像检索逐渐成为用户获取信息的一种重 要方式。图像容量一般都较大。在很多领域的应用中会产生大量的图像文件,随着高清化 的普及,图像数据量势必会更大。需要对这些应用中产生的海量图像数据进行高效的存储 和快速精确的检索。然而,目前的B/S架构的检索系统检索速度慢,并发性较差,且当图像 数据和索引文件出现快速爆炸性增长时会造成性能瓶颈。

【发明内容】

[0003] 为解决上述现有技术所存在的问题,本发明提出了一种基于大数据的检索方法, 包括:
[0004] 采用分布式文件来存储图像的索引数据,将所有索引数据写入索引数据文件中, 然后将索引数据文件分布存储到分布式文件系统的各个节点;
[0005] 采用MapReduce并行编程模型实现索引数据的检索,将检索空间划分成多个子空 间,然后通过任务调度在各子空间进行并行检索,最后汇总形成最终检索结果。
[0006] 优选地,在图像写入阶段,将图像数据直接写入分布式文件系统,而索引数据采用 缓冲机制,当缓冲队列满或计时器时间到达时统一写入索引数据文件,并实现分布式存储; 在主节点内存中建立索引数据缓冲区,索引数据记录项以顺序写方式写入,缓冲区中以索 引数据记录为单位,索引数据以追加的方式写入缓冲,当缓冲队列满或计时器时间到达时, 以缓冲区为单位进行分布式位置分配,将整个缓冲区的索引数据记录通过对缓冲区头结构 中的标识信息作散列运算,找到索引数据文件在分布式文件系统中的对应存储节点,并将 索引数据文件存储到相应的节点上。
[0007] 优选地,所述通过任务调度在各子空间进行并行检索,还包括:
[0008] 指定索引数据的η个数值属性~的顺序,其中i e [1···η],并将数值属性A1值域 划分为D1个子域,建立多属性的排序层次树;
[0009] 第1层为根节点;第2层为属性A1的所有子域,按照从左到右由小到大排序;第3 层对第2层的每一个节点均按属性A2的子域从左到右由小到大排序;第(η+1)层对第η层 的每一个节点按属性总的子域从左到右由小到大排序,则第(η+1)层共有B个叶子节点,B 值计算公式为
[0010] 对所有叶子节点按照从左到右的顺序分别进行编号,对任意元组t在属性心、 A2、…、An上的取值均映射到图中的一个叶子节点,将该叶子节点的编号记作元组的排序值 Re [1…B],且任何包含属性六^^、…、An的检索条件也具有唯一的排序值W ;
[0011] 确定元组的排序之后,在每一个数据节点建立一个长度为B的叶节点索引,对本 地元组的存在情况进行指示,检查本地所有的元组,若至少存在一个排序值为R e [1…B] 的元组,则将叶节点索引的第R位设置为1,否则设为O ;
[0012] 检索进行时,首先根据检索条件在指定属性上的取值,生成检索条件的排序值 W,检索在数据节点进行时,通过指示叶节点索引来判断该数据节点是否满足检索条件的 元组记录,查找指示叶节点的第R'位,若为1,继续在该节点检索;若为0,直接返回空值。
[0013] 本发明相比现有技术,具有以下优点:
[0014] 本发明提出了一种基于大数据的检索方法,通过分布式系统对图像数据的存储和 检索过程进行了优化,提高了检索效率,克服了性能瓶颈。
【附图说明】
[0015] 图1是根据本发明实施例的基于大数据的检索方法的流程图。
【具体实施方式】
[0016] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权 利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节 以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中 的一些或者所有细节也可以根据权利要求书实现本发明。
[0017] 本发明的一方面提供了一种基于大数据的检索方法,实现海量图像大数据的分布 式存储和精确快速检索。图1是根据本发明实施例的基于大数据的检索方法流程图。
[0018] 针对海量图像数据的存储和检索需求,本发明组建计算机集群,在集群上搭建高 效、可靠、可扩展的Hadoop平台,组成Hadoop集群。Hadoop集群采用主从式结构,由一个主 节点和多个从节点构成。主节点用于集群中所有的任务调度和任务分配。从节点对主节点 分配的任务进行计算和数据存储。从节点周期性地向主节点报告心跳,若主节点在一定的 时间期限内未收到从节点的心跳信息,则视该节点为无效节点,然后自动对计算任务进行 重新部署和分配。
[0019] 在此架构之上,数据存储层利用分布式文件数据库的数据管理对海量图像数据进 行分布式存储和建立分布式访问索引,数据处理层采用MapReduce编程模型将图像数据进 行分块,在Hadoop集群中的节点上进行处理,提取图像特征、进行图像匹配等计算。这些对 用户是完全透明的,用户只需在客户端提交检索请求,Web服务器接收用户输入的实例或图 像特征,将其提交给Hadoop集群进行计算,然后通过Web服务器返回检索结果。
[0020] 图像检索系统主要由分布式特征提取、分布式检索和用户接口等部分组成。首 先将图像文件存储在HDFS分布式文件系统的图像库中。然后对图像文件进行预处理,将 图像数据分割成一个个元素,然后从元素中提取元素特征。对图像进行特征提取后,利用 MapReduce计算模型建立特征索引,并将索引文件和图像文件存储在分布式文件数据库上。 用户向系统提交查询请求,用户接口对提交的实例或图像特征进行特征提取,与特征索引 库中的图像特征进行相似度比较后将匹配结果发送给用户。因此,用户可以根据自己的满 意度向系统给出自己的反馈样本信息,将用户知识融入到查询中,系统根据反馈样本再次 进行检索,直至满足用户的图像检索需求。
[0021] 海量图像数据集的大小已经完全超过一台独立物理计算机的存储能力。本发明的 解决方案是先将图像上传至HDFS文件系统中,然后对图像进行预处理,再存储到分布式文 件数据库中。以HDFS分布式文件系统作为底层数据存储支持,用分布式文件数据库来实现 海量图像文件的分布式存储和高并发实时读写。
[0022] 本发明设计将一个图像的整体信息作为表的一行存储在分布式文件数据库中。将 行关键字(RowKey)和列关键字(ColumnKey)作为特征表的索引。将图像ID作为R〇wKey( BP 主键),图像属性保存两列:一列为原图像ID,另一列为图像快照;图像特征属性有三列,分 别为颜色特征、纹理特征和尺寸特征。在对图像进行存储时,按照建立时间来对数据进行排 序,建立时间用数字表示。也就是说,如果存储的数据进行修改,则旧版本数据和新版本数 据都会被存储在分布式文件数据库中,以建立时间来区分它们。查询时如果不提供建立时 间,则返回最近版本的数据。
[0023] 图像的具体存储过程为:
[0024] (1)将采集的图像文件上传到HDFS上,在上传时,每个图像文件会生成唯一的图 像ID,作为图像标识。
[0025] (2)检测图像文件是否被损坏,若被损坏,将该图像的ID标记为无效ID,并将无效 ID输出到HDFS文件系统中。通过读取这些文件来获知无法存储的图像文件。若没被损坏, 则允许正常上传。
[0026] (3)提取HDFS中的图像的特征,包括颜色、纹理、尺寸特征,并为每个图像生成图 像快照。
[0027] (4)将图像ID、图像快照、颜色特征、纹理特征、尺寸特征索引写入到分布式文件 数据库中。
[0028] 提取图像特征是实现基于内容的图像检索的如提,对于提尚图像检索效率有着非 常大的影响。从图像中提取图像特征的过程包括:
[0029] 首先进行图像结构分析:对图像进行分割,通过突变检测和渐变检测分离出元素, 此时,可以从元素中提取出图像的位置特征;然后根据预定的规则从分离出的元素里提取 能代表元素关键内容的关键像素点,本发明中关键像素点通过计算元素中所有像素的平均 值来获取,之后可以从关键
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1