著录项信息
专利名称 | 一种用于基于内容的海量图片快速检索的索引构建方法 |
申请号 | CN200510073464.6 | 申请日期 | 2005-05-30 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2005-10-26 | 公开/公告号 | CN1687932 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 北大方正集团有限公司;北京北大方正技术研究院有限公司 | 申请人地址 | 北京市海淀区城府路298号方正大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北大方正集团有限公司,北京北大方正技术研究院有限公司 | 当前权利人 | 北大方正集团有限公司,北京北大方正技术研究院有限公司 |
发明人 | 杨建武;吴於茜;陈晓鸥;刘灿 |
代理机构 | 北京英赛嘉华知识产权代理有限责任公司 | 代理人 | 田明;王达佐 |
摘要
本发明涉及一种用于基于内容的海量图片快速检索的索引构建方法,属于智能信息处理技术。现有技术中,对海量图片进行基于内容的检索时,系统响应的时间长,检索效率低,且系统的健壮性不够强。本发明针对基于内容的海量图片快速检索的效率与系统健壮性问题,在平衡多路查找树的索引结构基础上,引入聚类调整机制并提出最小完备子树更新策略和非线性特征量化算法。采用本发明所述的方法将大大提高索引结构的性能,降低检索响应时间,增强系统健壮性,对基于内容的海量图片快速检索系统具有重要的应用价值。
1.一种用于基于内容的海量图片快速检索的索引构建方法,包括以下步骤: 1)读取图片文件,并对图片特征进行分析,图片特征分析结果为一组实数; 2)对图片特征进行量化:将在步骤1中得到的一组实数形式的图片特征分析结果量化为一组整数; 3)检查索引结构树是否在内存中,如果不在内存中则从磁盘文件中读取,如果磁盘中不存在相关索引文件则创建一个新的索引文件; 4)根据量化的图片特征信息检测该图片应该插入到索引树的哪个叶子节点中; 5)如果该叶子节点未满则将新图片信息加入该叶子节点,并跳转到第10步; 6)如果该叶子节点已满则考虑新图片和原叶子节点中包含的所有图片,将节点分裂形成两个叶子节点; 7)考察该节点的父节点是否已满,如果未满则跳转到第10步; 8)如果该节点的父节点已满,则检查该节点是否经过聚类,如果经过聚类调整则对该节点进行分裂,并返回转到第7步考察其父节点; 9)如果该节点没有经过聚类调整,进行聚类调整; 10)修改该节点及其祖先节点的覆盖半径; 11)考察当前内存中被修改而未存盘的节点数是否达到上限,如果达到上限则将部分被修改而未存盘的节点进行存盘,结束该图片的索引插入过程。
2. 如权利要求1所述的一种用于基于内容的海量图片快速检索的索引构 建方法,其特征在于:步骤1中所述的图片特征包括图片的颜色、紋理和布 局。
3. 如权利要求1或2所述的一种用于基于内容的海量图片快速检索的索 引构建方法,其特征在于:在第2步进行图片特征量化时,将图片特征分析 结果量化为0到255之间的整数,并用l个计算机字节表示。
4. 如权利要求3所述的一种用于基于内容的海量图片快速检索的索引构 建方法,其特征在于:步骤2中对图片特征进行量化的方式采用非线性的量 化方式,所述的非线性量化即非均匀地量化,即各量化区间的取值范围是不 相等的,量化中各区间的取值范围是根据图片特征取值的分布来决定的。
5. 如杈利要求4所速的 一种用子基子内容的海量图片快速检索的索引构 建方法,其特征在于:在第9步进行聚类调整时,将待聚类调整的节点的子 节点的所有数据项看作一个数据集进行聚类分析,将分析后形成的每个数据 簇组成一个当前节点的子节点。
6. 如权利要求5所述的一种用于基于内容的海量图片快速检索的索引构 建方法,其特征在于:步骤9中,进行聚类调整的算法采用K-Means算法。
7. 如权利要求1或2所述的一种用于基于内容的海量图片快速检索的索引 构建方法,其特征在于:在第11步进行选择存盘时,依据最小完备子树更新 策略进行选择存盘,即查找新插图片所在叶子节点的最近的未被修改的祖先 节点,并将该祖先节点所有修改而未存盘的子孙节点进行存盘。
8. 如权利要求6所述的一种用于基于内容的海量图片快速检索的索引构 建方法,其特征在于:在第11步进行选择存盘时,依据最小完备子树更新策 略进行选择存盘,即查找新插图片所在叶子节点的最近的未被修改的祖先节 点,并将该祖先节点所有修改而未存盘的子孙节点进行存盘。
一种用于基于内容的海重图片快速检索的索引构建方法技术领域本发明属于智能信息处理技术,具体涉及的是一种用于基于内容的海量 图片快速检索的索引构建方法。背景技术基于内容的图像检索方式可以避免人工标注,克服用文字描述图像的主 观性和信息损失,从而成为当前图像检索的主要技术手段。随着数字图像的 大量增加,图片库变得越来越庞大,釆用"顺序查找"的方法进行检索时需 要将查询样例图片与图片库中的每个图片进行比较,难以满足实际应用中的 快速响应的要求。为此,人们采用相似搜索的索引结构来提高检索的速度。目前,主要的相似搜索索引结构主要有K-D-B树、R-树、SS-树、SR-树、TV-树、M-树、A-树、CI index和iDistance等。(1) K-D-B-树K-D-B树是一种与B+树相似的平衡树,用于多维点数据的索引结构。它 通过递归的采用垂直于坐标轴的坐标平面对搜索空间进行切割来构建树形索 引结构,每个内部节点和叶子节点都对应一个空间区域,并存储到同一物理 存储块。它的最大特点是在树的同一层节点对应的子空间是互相没有重叠的, 从而使得任意一个点查询的路径对应唯一的一条从根到叶子的路径。然而,这种没有空间重叠的分割会引起空节点或包含很少的数据的节点 产生,在对空间块数据进行搜索时,须对数据块进行强制切割,从而降低存 储的利用率和相似搜索的效率。(2) R-树及其变种R-树是为多维矩形块数据设计的一种索引结构。是一种采用矩形空间嵌 套的平衡树,它的每个节点对应一个矩形区域。在树的构建中,保持矩形具 有最小的边界。与K-D-B-树的不同之处在于,R-树的节点对应空间矩形,矩 形之间可以有重叠。这种重叠会使得搜索需要更多的时间,但存储效率更高。 虽然它是为多维矩形数据设计的,但也可应用于点数据。R'-树是R-树的变形树。R'-树通过修改R-树的插入、分裂算法并引入强 制重新插入机制,使性能得以提高。VAMSplit R-树通过优化分裂算法,使得分裂后所使用磁盘数据块的数目 最少。\nTV-树根据多维数据中各维具有不同重要性,对维进行了减少与压缩,从 而相对于R'-树提高了性能。X-树是R'-树的变种,它引入新的分裂机制和超节点机制,使得节点分裂后,搜索空间被分成象K-D-B-tree那样没有重叠的区域。性能得以提高。(3) SS-树及其变种SS-树是一种为多维点数据相似搜索而设计的索引结构。它是在R'-树的 基础上进行了修改:首先,它采用球形边界代替R'-树的矩形边界。在数据 插入时,通过比较新数据与球心距离来决定新数据该插入树中的哪个节点。 当节点满了的时候,节点进行分裂,分裂算法是通过计算各维坐标跨度,选 择跨度最大的维,进行数据的分割。采用球形边界还可以使得边界描述信息 减少(只需要球心与半径),从而提高节点的扇出数,降低树的高度。其次, SS-树修改了 R'-树的强制重新插入机制,当节点满的时候,R'-树重新插入优 先于分裂,除非在树的同一层已经做过强制重新插入;而在SS-树需进行重 新插入,除非在同一节点已经进行过重新插入。SR-树综合了球形边界和矩形边界,节点被交替的使用球形边界和矩形边 界,从而使得近邻可被分割到更小的区域并降低重叠度,增强了相似搜索效 率。SS+-树采用了一种近似最小等距包络算法,使得每个节点的边界更紧密。 并使用了 k-means聚类算法进行节点分裂,并在构建树的过程中引入本地重 构规则,从而减少节点间的空间重叠。(4) M-树与A-树M-树是为对非特定度量空间(a generic "metric space")的数据集进 行搜索而设计。在这一空间中,对象的相似度由其距离函数定义,距离函数 只须满足"非负,,、"对称"和"三角不等,,这三个基本条件,不必考虑对 象在多维空间中的绝对位置,及维之间的相关性等问题。M-树是一棵平衡树,可动态处理数据文件,并且不需要定期重组。M-树 是用距离函数进行对象的索引,它对度量空间的特性要求大大降低,从而使 得搜索的应用场合大大扩大。△-树类似于M-树,其主要特点在于通过主成分分析实现对索引树内部 节点特征的降维,从而减小计算量并降低内部节点的空间占用量,使得更多 的节点能放入内存。其缺点在于数据需要进行主成分分析,数据动态更新后 需要进行索引树的重构。(5) CI indexClindex (CLustering for INDEXing)主要用于对离线的静态数据集进行 分析,数据集首先被分为"相似"的聚类,每个聚类被存储在一个顺序文件 中,并为索引聚类建立一张一维映射表。对于一个查询,将查询点附近的聚\n类提取到内存中,并通过计算各点与查询点的距离,而获得结果。这一方法 大大提高了搜索的召回率及性能。现有技术的基本步骤是:1) 读取图片文件:从图片库中读入一个未加入索引库的图片文件;2) 特征分析:对图片的特征进行提取(包括颜色、紋理、布局等信息);3) 检查索引结构树是否在内存中,如果不在内存中则从磁盘文件中读取, 如果磁盘中不存在相关索引文件则创建一个新的索引文件;4) 根据图片特征信息检测该图片应该插入到索引树的哪个叶子节点中;5) 如果该叶子节点未满则将新图片信息加入该叶子节点,并跳转到第9步;6) 如果该叶子节点已满则考虑新图片和原叶子节点中包含的所有图片, 将节点分裂形成两个叶子节点;7) 考察该节点的父节点是否已满,如果未满则跳转到第9步;8) 对该节点进行分裂,并返回转到第7步考察其父节点;9) 修改该节点及其祖先节点的覆盖半径;10) 结束该图片的索引插入过程。基于内容的海量图片快速检索存在以下特点,使得现有技术在实际使用 中不够理想:(1) 图片库是高维海量数据。图片库的图片数量通常是百万量级,使得 顺序查找的方法不可行。每个图片的图像特征量通常在一百维以上,使得按 数据维进行数据分割的R-树及其变种等非常低效。(2) 图片库的图片是动态更新的。图片库中的图片通常是每天不断增加, 这种动态更新的特性使得Clindex等静态分析方法不能适用,△-树因需要重 构也难以满足应用需求。(3) 索引系统的健壮性要求。在实际使用环境下,系统断电等异常终止 的情况偶有发生,在这种情况下一个健壮实用的系统当系统重新启动后应该 仍能正常继续工作,而不应出现索引系统被破坏等问题,现在这方面还没有 公开的技术手段。发明内容根据基于内容的海量图片快速检索存在上述特点,针对现有技术中存在 的缺陷,本发明的目的是为基于内容的海量图片快速检索提供一种动态、高 效、健壮的索引方法。该发明技术对基于内容的海量图片快速检索具有重要 的实用价值。\n为达到以上目的,本发明采用的技术方案是: 一种用于基于内容的海量图 片快速检索的索引构建方法,包括以下步骤:1) 读取图片文件,并对图片特征进行分析,图片特征分析结果为一组实数;2) 对图片特征进行量化:将在步骤l中得到的一组实数形式的图片特 征分析结果量化为一组整数;3) 检查索引结构树是否在内存中,如果不在内存中则从磁盘文件中读 取,如果磁盘中不存在相关索引文件则创建一个新的索引文件;4) 根据量化的图片特征信息检测该图片应该插入到索引树的哪个叶子 节点中;5) 如果该叶子节点未满则将新图片信息加入该叶子节点,并跳转到第 10步;6) 如果该叶子节点已满则考虑新图片和原叶子节点中包含的所有图片, 将节点分裂形成两个叶子节点;7) 考察该节点的父节点是否已满,如果未满则跳转到第IO步;8) 如果该节点的父节点已满,则检查该节点是否经过聚类,如果经过 聚类调整则对该节点进行分裂,并返回转到第7步考察其父节点;9) 如果该节点没有经过聚类调整,进行聚类调整;10) 修改该节点及其祖先节点的覆盖半径;11) 考察当前内存中被修改而未存盘的节点数是否达到上限,如果达到 上限则将部分被修改而未存盘的节点进行存盘,结束该图片的索引插入过程。更进一步,步骤1中所述的图片特征包括图片的颜色、紋理和布局。更进一步,为了使本发明具有更好的效果,在第2步进行图片特征量化 时,将图片特征分析结果量化为0到255之间的整数,并用l个计算机字节 表示;对图片特征进行量化的方式最好采用非线性的量化方式,所述的非线 性量化即非均匀地量化,即各量化区间的取值范围是不相等的,量化中各区 间的取值范围是根据图片特征取值的分布来决定的。再进一步,在本发明第9步进行聚类调整时,将待聚类调整的节点的子 节点的所有数据项看作一个数据集进行聚类分析,采用K-Means聚类算法,\n将分析后形成的每个数据簇组成一个当前节点的子节点。再进一步,在本发明第11步进行选择存盘时,依据最小完备子树更新策 略进行选择存盘,即查找新插图片所在叶子节点的最近的未被修改的祖先节 点,并将该祖先节点所有修改而未存盘的子孙节点进行存盘。本发明的效果在于:本发明由于对图片特征进行了非线性的量化,以整 数替代原实数类型,在几乎不降低准确度的情况下使得索引构建与检索的计 算速度大为增加,且存储量减少。通过对索引方法中引入聚类调整机制使得 在数据动态更新的情况下索引结构仍能保持较为合理的状态。通过采用最小 完备子树更新的策略使得系统的健壮性大为抬高。实验表明,在普通PC环境 下(CPU为P4 2. 0G,内存为1.0GB),在一百万张图片的图片库中找出与指定 图片相似的20张图片仅需2秒左右,而且在断电等异常情况出现后,索引库 不被破坏,当系统重起后仍能继续工作。本发明之所以具有以上的效果,是因为本发明相对现有技术增加了一下 三个步骤:1) 第2步,对图片特征进行量化,量化后的图片特征以一个特定范围 的整数表示,相对原始的浮点数方式不但大大加快了计算的速度,而且内存 与磁盘的占用量降低,同时由于根据特征取值的分布信息进行非线性的量化, 使得检索结果的准确性方面影响不大;2) 第9步,对节点进行聚类分析,实际应用系统中图片库中的图片是 不断加入的,现有技术的索引树往往会因为新数据项的不断加入使得索引树 节点分布变得不够紧凑,降低索引与检索的效率,本方法通过引入聚类调整 机制采用聚类分析进行调整使得节点分布变得更为合理;3) 第ll步,现有技术中有些是每次修改都进行存盘,有些是定期完整 更新未存盘节点,还有一些是根据最近最少使用策略进行存盘。对第一种方 式需要经常进行磁盘操作,效率低,第二种方式在异常情况下会有大量数据 丟失,且更新时间长而影响检索使用;第三种方式会在异常情况发生时,索 引数据不一致而导致索引文件被破坏。而本发明所述方法的第12步克服了现 有技术上述的缺点,特别是本发明所提出的最小完备子树更新策略具有很好 的实用性。附困说明图1是本发明所述方法的流程图。 具体实施方式下面结合附图对本发明的具体实施方式做进一步的描述。如图1所示, 一种用于基于内容的海量图片快速检索的索引构建方法,包括以下步骤:1) 读取图片文件:从图片库中读入一个未加入索引库的图片文件; 对图片特征进行分析:对图片的特征进行提取,图片的特征包括颜色、紋理、布局等信息;2) 对图片特征进行非线性的量化:根据图片特征取值的分布信息,将 步骤2中得到的图片特征分析结果(即一組实数)采用非线性方法量化为1 到255之间的整数,并用1个计算机字节(Byte)表示;3) 检查索引结构树是否在内存中,如果不在内存中则从磁盘文件中读 取,如果磁盘中不存在相关索引文件则创建一个新的索引文件;4) 根据量化的图片特征信息检测该图片应该插入到索引树的哪个叶子 节点中;5) 如果该叶子节点未满则将新图片信息加入该叶子节点,并跳转到第 10步;6) 如果该叶子节点已满则考虑新图片和原叶子节点中包含的所有图片, 将节点分裂形成两个叶子节点;7) 考察该节点的父节点是否已满,如果未满则跳转到第IO步;8) 否则(该节点满),检查该节点是否经过聚类,如果经过聚类调整 则对该节点进行分裂,并返回转到第7步考察其父节点;9) 否则(没有经过聚类调整),进行聚类调整:将待聚类调整的节点 的子节点的所有数据项看作一个数据集进行聚类分析,本实施例中采用 K-Means聚类算法,将分析后形成的每个数据簇组成一个当前节点的子节点;所述的K-Means聚类算法(又称为K均值聚类算法)是一种常用的基于划 分的聚类算法,其基本思想是计算每个聚类中对象的平均值,并作为新的聚 类种子重新进行聚类对象划分,直到稳定的聚类结果。10) 修改该节点及其祖先节点的覆盖半径;11) 考察当前内存中被修改而未存盘的节点数是否达到上限,如果达到 上限,则查找新插图片所在叶子节点的最近的未被修改的祖先节点,并将该 祖先节点所有修改而未存盘的子孙节点进行存盘,结束该图片的索引插入过程。实际应用过程中,第IO步中在进行聚类调整时,还可以采用BIRCH聚类 算法、CLARANS聚类算法、AHC聚类算法等其他聚类方法;第12步中,还可 以采用完整更新方法或采用最近最少使用算法的更新方法或其他更新策略的 方法。因此,本发明所述的方法并不限于具体实施方式中所述的实施例,只 要是本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于 本发明的技术创新范围。
法律信息
- 2022-09-27
专利权的转移
登记生效日: 2022.09.15
专利权人由北大方正集团有限公司变更为新方正控股发展有限责任公司
地址由100871 北京市海淀区城府路298号方正大厦变更为519031 广东省珠海市横琴新区华金街58号横琴国际金融中心大厦3007
专利权人由北京北大方正技术研究院有限公司 变更为北京北大方正技术研究院有限公司
- 2008-02-27
- 2005-12-21
- 2005-10-26
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |