CN110413813B - 一种相同或相似图像搜索方法 - Google Patents

一种相同或相似图像搜索方法 Download PDF

Info

Publication number
CN110413813B
CN110413813B CN201910552322.XA CN201910552322A CN110413813B CN 110413813 B CN110413813 B CN 110413813B CN 201910552322 A CN201910552322 A CN 201910552322A CN 110413813 B CN110413813 B CN 110413813B
Authority
CN
China
Prior art keywords
image
vector
max
document
docid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910552322.XA
Other languages
English (en)
Other versions
CN110413813A (zh
Inventor
赵炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Network Chaodi Information Technology Co ltd
Ningbo Tuda Information Technology Co ltd
Original Assignee
Nanjing Network Chaodi Information Technology Co ltd
Ningbo Tuda Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Network Chaodi Information Technology Co ltd, Ningbo Tuda Information Technology Co ltd filed Critical Nanjing Network Chaodi Information Technology Co ltd
Priority to CN201910552322.XA priority Critical patent/CN110413813B/zh
Publication of CN110413813A publication Critical patent/CN110413813A/zh
Application granted granted Critical
Publication of CN110413813B publication Critical patent/CN110413813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种相同或相似图像搜索方法,属于图像处理技术领域。方法包括步骤S01,提取查询图像的图像描述符向量Vs和图像描述符量化向量Qs;步骤S02,选取图像描述符向量的顶部最大值T,并确定顶部T分量值和第一关键字;步骤S03,利用第一关键字查询量化值文档对应查询表,获得相似或相同图像的文档ID;步骤S04,利用文档ID作为第二关键字查询文档图像向量对应查询表,获得每个文档对应的候选图像描述符向量Vj;步骤S05,比较查询图像的图像描述符向量Vs和候选图像描述符向量Vj两者的相似匹配度;步骤S06,对相似匹配度结果排序,对照文档图像向量对应查询表获取相同或相似图像名称。本发明能够显著提高相同或相似图像检索效率。

Description

一种相同或相似图像搜索方法
技术领域
本发明属于图像处理技术领域,具体涉及一种相同或相似图像搜索方法。
背景技术
相同或相似图像搜索引擎:使用查询图像作为输入,基于来自图像集的图像内容,搜索相同或相似图像。这种引擎搜索***也称为基于内容的图像搜索***或CBIR***。
大部分建立基于内容的图像检索***包括如下描述的两个步骤:第一步是索引。此步骤是从每个图像集中提取独特的图像信息,称为图像描述符,通常是一个N维向量。例如,某一图像描述符可以是颜色直方图向量。这里还存在基于图像形状和纹理的其他类型的图像描述符。第二步是图像查询搜索。首先,从输入图像中提取查询图像描述符的向量。之后,将查询图像描述符的向量与图像集中的每个图像描述符的向量比较。最通用的比较方法是使用向量L2距离测量。当距离为0时,则查询图像与图像集相匹配。当距离大于0时,则表示图像之间不同程度的相似性。最终,基于距离测量的查询图像的检索结果被排序。例如,给定2个N维图像描述符向量P = <p1, p2, …pN>和Q = <q1, q2, …qN>,之后,L2距离如下方式计算:distance(P, Q) = [(p– q1)2 + (p2 – q2)2 + …+ (pN – qN)2]1/2
如果图像集小的话,上述方案是有效的。但是,如果图像集的数量非常大,如数百万甚至数十亿,上述方案变得不高效。因为每个查询需要大成本地L2距离计算、比较、排序图像集中的所有图像。这个过程中涉及庞大的数据运算,大大影响了搜索效率。
发明专利申请CN 201710358857.4公开了一种图像相似块快速搜索方法,并具体公开了方法包括:步骤1:利用各像素及其邻域像素,确定各像素所对应的图像块;步骤2:利用邻域内图像块的相似度及图像块的灰度值,确定表示各图像块的特征向量;步骤3:通过对整幅图像的像素进行均匀下采样,确定一个小规模的索引图像块集合;步骤4:利用索引图像块集合,构造一棵表示该图像块集合的K维树,记为索引K维树;步骤5:将整幅图像无重叠地等分成9幅子图;步骤6:利用每幅子图所含的图像块,构造一棵表示该子图的K维树,记为子图K维树;步骤7:对待搜索图像块,确定索引K维树中与其相似的图像块;步骤8:确定含有相似图像块数目最多的子图K维树,称为目标子图K维树;步骤9:在步骤7所确定的目标子图K维树中搜索出与其相似的图像块,所述相似图像块即为与待搜索图像块相似的图像块。该发明是针对图像滤波处理时存在图像块处理慢的问题提出的,通过实现图像内部相似图像块的快速搜索来提高图像滤波处理效率。该发明并未解决在图像集中搜索相似或相同图像的搜索数据庞大、搜索效率低的问题。
发明内容
本发明针对现有技术存在的问题,提出了一种相同或相似图像搜索方法,能显著提高相同或相似图像检索效率,应用于检索引擎。
本发明是通过以下技术方案得以实现的:
本发明提供一种相同或相似图像搜索方法,一种相同或相似图像搜索方法,包括:
步骤S01,提取查询图像的图像描述符向量Vs和图像描述符量化向量Qs,其中Vs =<vs1, vs2,..vsi …vsN>,Qs = <qs1, qs2, …qsi…qsN>;
步骤S02,选取图像描述符向量的顶部最大值T,并确定顶部T分量值qmax qmax-1 qmax-2 ,… qmax-T+1和第一关键字<i, l>max <i, l>max-1 <i, l>max-2 ,… <i, l>max-T+1,其中 i是N维空间指数, i∈ (0, 1, …N-1), l是其中一量化级, l ∈ (0, 1, …L-1);
步骤S03,利用第一关键字查询量化值文档对应查询表,获得相似或相同图像的文档ID docidj
步骤S04,利用文档ID docidj作为第二关键字查询文档图像向量对应查询表,获得每个文档对应的候选图像描述符向量Vj,其中Vj = <vj1, vj2, …vji…vjN>;
步骤S05,比较查询图像的图像描述符向量Vs和候选图像描述符向量Vj两者的相似匹配度;
步骤S06,对相似匹配度结果排序,对照文档图像向量对应查询表获取相同或相似图像名称。
该方法是基于相似图像的观察,由于图像描述符向量的顶部分量值通常彼此接近。基于此点,仅需要对图像集的预选子集计算相似度,这样不需要多所有数据进行相似度计算,查询速度显著提高。
作为优选,方法还包括:在步骤S01前,构建文档图像向量对应查询表和量化值文档对应查询表。
作为优选,所述文档图像向量对应查询表构建过程如下:
计算每个图像Ij的N维图像描述符向量Vj = <vj1, vj2,..vji …vjN>,Vj具有文档IDdocidj。docidj是一个从0至最大数docidmax的顺序增量的整数;
计算图像描述符量化向量Qj = <qj1, qj2, …qji…qjN>,其中qji ∈ (0, 1, 2…L-1), vji被映射到L级量化值qji中的一个;
将每个图像docidj作为关键字,将图像描述符向量Vj、图像描述符量化向量Qj和图像名称作为内容,构建文档图像向量对应查询表。
作为优选,所述计算图像描述符量化向量的具体步骤为:
确定图像描述符向量Vj的最高限值vmax和最低限值vmin
利用线性化量化计算公式计算图像描述符量化向量:qji = integer( L • (vji -vmin)/( vmax - vmin)),其中公式integer()表示将浮点结果转化为有效量化值最接近的整数。
作为优选,所述量化值文档对应查询表构建过程如下:
计算第一关键字key = <i, l>;
计算每个图像文档docid的位图数组,位图数组具有M字节或M/8+1字节,M是图像文档的总量,位图数组设置位置n的位表示具有docidj为n的图像文档,并且图像文档中相应图像具有相应的图像描述符量化值;
将第一关键字作为关键字,将位图数组作为内容,构建量化值文档对应查询表。
作为优选,所述步骤S03具体包括:
步骤S31,选择最大量化值的所有图像文档docid,并形成相关的第一位图数组,并将第一位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S32,选择最大量化值小于1的所有图像文档docid,使用第一关键字查询量化值文档对应查询表,获得第二位图数组,并将第二位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S33,选择最大量化值大于1的所有图像文档docid,使用第一关键字查询量化值文档对应查询表,获得第三位图数组,并将第三位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S34,通过最终位图数组的每个位获取相似或相同图像的文档ID docidj
其中,步骤S32中第一关键字<i, l>max的l为l-1,步骤S33中第一关键字的l为l+1。
作为优选,所述步骤S31在选择最大量化值的所有图像文档docid并形成相关第一位图数组前,还包括设置docidBitMapArraymax docidBitMapArraymax-1 docidBitMapArraymax-2 ,… docidBitMapArraymax-i… docidBitMapArray max-(T-1)为与顶部T分量值qmax qmax-1 qmax-2 ,… qmax-T+1相关的docid位图数组。
作为优选,所述步骤S05具体包括:计算查询图像的图像描述符向量Vs和候选图像描述符向量Vj之间的向量距离:distance(Vs, Vj) = [(vs1 – vj1)2 + (vs2 – vj2)2 + …+(vsN – vjN)2]1/2,其中,N为向量维度;当距离为0时,则查询图像与图像集匹配,当距离小于0时,距离代表图像之间不同程度的相似性。
作为优选,所述步骤S06具体为:对距离结果进行降序排序,对照文档图像向量对应查询表获取相同或相似图像名称。
本发明具有以下有益效果:
本发明一种相同或相似图像搜索方法,利用图像描述符向量的顶部分量值彼此接近的原则选取图像预选子集,经针对图像预选子集进行相似度对比,简化了比对数据数量,大大提高了运算速率,进而提高了相同或相似图像搜索效率。
附图说明
图1为本发明一种相同或相似图像搜索方法的流程图;
图2为图1中步骤S03的子流程图;
图3为每个图像docid的位图数组的示例图;
图4为i的索引和相关的docid位图数组的所有量化值0…6,7的示例图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
如图1,本发明一种相同或相似图像搜索方法包括:
步骤S01,提取查询图像的图像描述符向量Vs和图像描述符量化向量Qs,其中Vs =<vs1, vs2,..vsi …vsN>,Qs = <qs1, qs2, …qsi…qsN>;
步骤S02,选取图像描述符向量的顶部最大值T,并确定顶部T分量值qmax qmax-1 qmax-2 ,… qmax-T+1和第一关键字<i, l>max <i, l>max-1 <i, l>max-2 ,… <i, l>max-T+1,其中 i是N维空间指数, i∈ (0, 1, …N-1), l是其中一量化级, l ∈ (0, 1, …L-1);
步骤S03,利用第一关键字查询量化值文档对应查询表,获得相似或相同图像的文档ID docidj
步骤S04,利用文档ID docidj作为第二关键字查询文档图像向量对应查询表,获得每个文档对应的候选图像描述符向量Vj,其中Vj = <vj1, vj2, …vji…vjN>;
步骤S05,比较查询图像的图像描述符向量Vs和候选图像描述符向量Vj两者的相似匹配度;
步骤S06,对相似匹配度结果排序,对照文档图像向量对应查询表获取相同或相似图像名称。
在步骤S01中,当该方法应用于搜索引擎时,搜索引擎中键入查询图像,此时针对查询图像提取图像描述符向量Vs和图像描述符量化向量Qs。图像描述符向量是将图像的特征转化为特征向量。所述图像描述符量化向量Qs基于图像描述符向量Vs获得,如采用线性量化计算方法计算图像描述符量化向量Qs:确定图像描述符向量Vj的最高限值vmax和最低限值vmin;Qj = <qj1, qj2, …qji…qjN>,其中qji ∈ (0, 1, 2…L-1), vji被映射到L级量化值qji中的一个。例如,如果L为8,之后qji将为0-7之间的某个整数。这里有不同用于量化的映射方法。线性量化是简单、有效量化方法中的一个。下述公式用于利用线性量化计算的量化向量计算图像描述符量化向量:qji = integer( L • (vji - vmin)/( vmax - vmin)),其中公式integer()表示将浮点结果转化为有效量化值最接近的整数。
在步骤S02中,将N个向量分量值qs1, qs2, …qsi…qsN降序排列,以获得顶部T的最大值。例如,一种可能选择是将T选择为3。令顶部T分量值为qmax qmax-1 qmax-2 ,… qmax-T+1,并令量化值文档对应查询表quantizationValueToDocidTable的相关关键字为keymax keymax -1 keymax-2 ,… keymax-T+1 或者<i, l>max <i, l>max-1 <i, l>max-2 ,… <i, l>max-T+1
如图2,所述步骤S03具体包括:
步骤S31,选择最大量化值的所有图像文档docid,并形成相关的第一位图数组,并将第一位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S32,选择最大量化值小于1的所有图像文档docid,使用第一关键字查询量化值文档对应查询表,获得第二位图数组,并将第二位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S33,选择最大量化值大于1的所有图像文档docid,使用第一关键字查询量化值文档对应查询表,获得第三位图数组,并将第三位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S34,通过最终位图数组的每个位获取相似或相同图像的文档ID docidj
所述步骤S31在选择最大量化值的所有图像文档docid并形成相关第一位图数组前,还包括设置docidBitMapArraymax docidBitMapArraymax-1 docidBitMapArraymax-2 ,…docidBitMapArraymax-i… docidBitMapArray max-(T-1)为与顶部T分量值qmax qmax-1 qmax-2 ,…qmax-T+1相关的docid位图数组。另外,还设置docidBitMapArrayFinal为最终docid位图数组,其中包括输入查询图像的所有图像docid相关相似图像的候选图像。在步骤S31中,docidBitMapArraymax包含每个图像docid所有相应位置位,这样图像描述符量化向量在相同指数和量化级或<i, l>max下具有相同的最大量化值。这可通过收集第一位图数组docidBitMapArraymax中的所有位置位并通过按位OR逻辑运算转移到最终位图数组docidBitMapArrayFinal。
在步骤S32中,如果存在最大量化值小于1,则选择最大量化值小于1的所有图像文档docid,则使用第一关键字key=<i, l-1>max查询量化值文档对应查询表quantizationValueToDocidTable,获得第二位图数组docidBitMapArraymax。这个docidBitMapArraymax包含每个docid所有相应位置位,这样图像量化向量在相同指数和量化级或<i, l-1>max .下,具有小于1的相同最大量化值。这可通过收集第二位图数组docidBitMapArraymax中的所有位置位并通过按位OR逻辑运算转移到最终位图数组docidBitMapArrayFinal。
在步骤S33中,如果存在最大量化值大于1,则选择最大量化值大于1的所有图像文档docid,使用关键数组key=<i, l+1>max获得第三位图数组docidBitMapArraymax,来查询量化值文档对应查询表quantizationValueToDocidTable。这个第三位图数组docidBitMapArraymax包含每个docid所有相应位置位,这样图像量化向量在相同指数和量化级或<i, l+1>max下,具有大于1的相同最大量化值。这可通过收集第三位图数组docidBitMapArraymax中的所有位置位并通过按位OR逻辑运算转移到最终位图数组docidBitMapArrayFinal。
上述步骤S31-步骤S33,针对docidBitMapArraymax docidBitMapArraymax-1 docidBitMapArraymax-2 ,… docidBitMapArraymax-i… docidBitMapArray max-(T-1)都执行一遍。也就是说,前述以docidBitMapArraymax为例,依次执行步骤S31-步骤S33,,之后对docidBitMapArraymax-1 docidBitMapArraymax-2 ,… docidBitMapArraymax-i…docidBitMapArray max-(T-1)重复上述步骤S31-步骤S33。按照惯例,T可以选择为3或4。当docidBitMapArraymax docidBitMapArraymax-1 docidBitMapArraymax-2 ,…docidBitMapArraymax-i… docidBitMapArray max-(T-1)所有执行完上述步骤S31-步骤S33后,方根据最终位图数组获取相似或相同图像的文档ID docidj
在步骤S04中,利用步骤S03获得的候选图像的docid,对照文档图像向量对应查询表,获得每个文档对应的候选图像描述符向量Vj,这样可利用候选图像描述符向量与查询图像的图像描述符向量进行比较,进入步骤S05进行图像相似度匹配比对,进而搜索出相同或相似图像。
所述步骤S05具体包括:计算查询图像的图像描述符向量Vs和候选图像描述符向量Vj之间的向量距离:distance(Vs, Vj) = [(vs1 – vj1)2 + (vs2 – vj2)2 + …+ (vsN-1 –vjN)2]1/2,其中,N为向量维度;当距离为0时,则查询图像与图像集匹配,当距离小于0时,距离代表图像之间不同程度的相似性。
所述步骤S06具体为:对步骤S05的距离结果进行降序排序,对照文档图像向量对应查询表获取相同或相似图像名称。
其中,文档图像向量对应查询表为以图像docidj作为关键字,图像描述符向量Vj、图像描述符量化向量Qj和图像名称作为内容的查询表。量化值文档对应查询表为第一关键字作为关键字,位图数组作为内容的查询表。
本发明还包括在步骤S01前的索引建立步骤,具体包括构建文档图像向量对应查询表和量化值文档对应查询表。
所述文档图像向量对应查询表构建过程如下:
步骤1,计算每个图像Ij的N维图像描述符向量Vj = <vj1, vj2,..vji …vjN>,Vj具有文档ID docidj。docidj是一个从0至最大数docidmax的顺序增量的整数;
在图像索引建立步骤期间,每个图像文档被分配一个文档ID docid (>= 0 整数)。
步骤2,计算图像描述符量化向量Qj = <qj1, qj2, …qji…qjN>,其中qji ∈ (0, 1,2…L-1), vji被映射到L级量化值qji中的一个;
所述计算图像描述符量化向量的具体步骤为:确定图像描述符向量Vj的最高限值vmax和最低限值vmin;利用线性化量化计算公式计算图像描述符量化向量:qji = integer( L• (vji - vmin)/( vmax - vmin)),其中公式integer()表示将浮点结果转化为有效量化值最接近的整数。
步骤3,将每个图像docidj作为关键字,将图像描述符向量Vj、图像描述符量化向量Qj和图像名称作为内容,构建文档图像向量对应查询表。在此查询表下,给定一图像docidj,就能快速简单的获取图像描述符向量、量化向量以及其他图像信息,如图像名称。
下述是关于映射查找表docidToImageVectorTable的部分数据结构:
class ImageVectorInfo{
String imageName;
  int docid;
float[N] vector;
 int[N] quantizedVector; };
HashMap<Integer docid, ImageVectorInfo imageInfo>
所述量化值文档对应查询表构建过程如下:
步骤1,计算第一关键字key = <i, l>;
给定docidmax-1图像的一图像集,假定图像描述符的维度为N,以及量化级为L,对于0-N-1索引的每个向量分量,存在N个量化值。我们将维持文档映射查找表的量化值,以追踪所有图像,使得这些图像具有相应的量化值。所述文档映射查找表的第一关键字key是如下两个参数的结合:key = <i, l> , 其中 i是N维空间指数, i∈ (0, 1, …N-1), l是其中一量化级, l ∈ (0, 1, …L-1)。
下述是映射查找表quantizationValueToDocidTable的部分数据结构:classBitmapForDocid{ byte[NumOfImages/8] bitmapArray; };
HashMap<String key, BitmapForDocid bitmap>
下述是所有可能的关键数组,假定有8个量化级(L=8)和图像描述维度为N。
映射查找表quantizationValueToDocidTable的内容是一个有每个图像docid的位图数组(如图3),使得这些图像具有相应的量化值。
步骤2,计算每个图像文档docid的位图数组,位图数组具有M字节或M/8+1字节,M是图像文档的总量,位图数组设置位置n的位表示具有docidj为n的图像文档,并且图像文档中相应图像具有相应的图像描述符量化值;
图4图标示出了i的索引和相关的docid位图数组的所有量化值0…6,7 。例如,对于索引i的量化值7,相应的位图数组包含所有图像docid,使得这些图像在索引位置i处具有7的量化向量值。
步骤3,将第一关键字作为关键字,将位图数组作为内容,构建量化值文档对应查询表。
下述是部分软件代码,示出相关数据结构和功能。
     /**
   * Define number of images 定义图像数量
   */
  public static final int NumOfImages = 1000000;
  /**
   * A map to get byte by which bit is on
   */
byte[] bitOnByteMapLittleEndian = {0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, (byte) 0x80};
  class BitmapForDocid{
     public byte[] bitmapArray;
  }
  /**
   * Function to generate an initial bitmap 建立一个初始位图数组
   * @param numberOfImages - total number of images
   * @param initAsOne - if true, will init as all ones
   * @return BitmapForDocid
   */
  BitmapForDocid createNewBitmapForDocid(int numberOfImages, booleaninitAsOne){
     BitmapForDocid bitmap = new BitmapForDocid();
     bitmap.bitmapArray = new byte[numberOfImages/8];
     for(int i = 0; i < bitmap.bitmapArray.length ; i++){
        if(initAsOne == true){
          bitmap.bitmapArray[i] = 1;
        }else{
           bitmap.bitmapArray[i] = 0;
        }
     }
     return bitmap;
  }
  /**
   * Function to generate key = <i, l> , where i is the index of N-dimension space, i∈ (0, 1, …N-1), 建立第一关键字
   * l is the one of the quantization level, l ∈ (0, 1, …L-1)
   * @param index - index position of the vector
   * @param value - value of the vector
   * @return key
   */
  String buildQuantizationMapTableKey(int i, int l){
     String key = null;
     key = new String(i+"-"+l);
     return key;
  }
  /**
   * Function to create initial quantization values to docid mappinglookup table 建立初始量化值文档对应查询表
   * @param vectorDimension - dimension of the image descriptorvector
   * @param numberOfQuantizationLevel - number of quantization levels
   * @param numberOfImages - total number of images
   * @return mapTable
   */
  HashMap<String, BitmapForDocid> initQuantizationValueToDocidMapTable(int vectorDimension,
        int numberOfQuantizationLevel, int numberOfImages){
     HashMap<String, BitmapForDocid> mapTable = new HashMap<String,BitmapForDocid>();
     for(int i = 0; i < vectorDimension; i++){
        for(int l = 0; l < numberOfQuantizationLevel; l++){
          String key = i + "-" + l;
          BitmapForDocid bitmap = createNewBitmapForDocid(numberOfImages, false);
          mapTable.put(key, bitmap);
        }
     }
     return mapTable;
  }
  /**
   * A function to update Quantization Value To Docid Map Table,given docid, vector index, and  更新量化值文档对应查询表
   * quantization value
   *
   * @param docid
   * @param index
   * @param value
   * @param mapTable
   * @return mapTable
   */
  HashMap<String, BitmapForDocid> addDocidToQuantizationValueToDocidMapTable(int docid, int index, int value,
        HashMap<String, BitmapForDocid> mapTable){
     String key = index + "-" + value;
     BitmapForDocid bitmap = mapTable.get(key);
     if(bitmap != null){
        int bitIndex = docid%8;
        byte bit = bitOnByteMapLittleEndian[bitIndex];
        bitmap.bitmapArray[byteIndex] = (byte) (bitmap.bitmapArray[byteIndex] | bit);
     }
     return mapTable;
  }
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。

Claims (8)

1.一种相同或相似图像搜索方法,其特征在于,包括:
步骤S01,提取查询图像的图像描述符向量Vs和图像描述符量化向量Qs,其中Vs = <vs1,vs2,..vsi …vsN>,Qs = <qs1, qs2, …qsi…qsN>;
步骤S02,选取图像描述符向量的顶部最大值T,并确定顶部最大值T分量值qmax qmax-1 qmax-2 ,… qmax-T+1和第一关键字<i, l>max <i, l>max-1 <i, l>max-2 ,… <i, l>max-T+1,其中 i是N维空间指数, i∈ (0, 1, …N-1), l是其中一量化级, l ∈ (0, 1, …L-1);
步骤S03,利用第一关键字查询量化值文档对应查询表,获得相似或相同图像的文档IDdocidj; 所述量化值文档对应查询表是以第一关键字作为关键字,将位图数组作为内容构建的;所述步骤S03具体包括:
步骤S31,选择最大量化值的所有图像文档docid,并形成相关的第一位图数组,并将第一位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S32,选择最大量化值小于1的所有图像文档docid,使用第一关键字查询量化值文档对应查询表,获得第二位图数组,并将第二位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S33,选择最大量化值大于1的所有图像文档docid,使用第一关键字查询量化值文档对应查询表,获得第三位图数组,并将第三位图数组中所有位置位按位OR逻辑运算后转移到最终位图数组;
步骤S34,通过最终位图数组的每个位获取相似或相同图像的文档ID docidj;
其中,步骤S32中第一关键字<i, l>max的l为l-1,步骤S33中第一关键字的l为l+1;
步骤S04,利用文档ID docidj作为第二关键字查询文档图像向量对应查询表,获得每个文档对应的候选图像描述符向量Vj,其中Vj = <vj1, vj2, …vji…vjN>;所述文档图像向量对应查询表是以第二关键字作为关键字,将候选图像描述符向量Vj、候选图像描述符量化向量Qj和图像名称作为内容构建的;
步骤S05,比较查询图像的图像描述符向量Vs和候选图像描述符向量Vj两者的相似匹配度;
步骤S06,对相似匹配度结果排序,对照文档图像向量对应查询表获取相同或相似图像名称。
2.根据权利要求1所述的一种相同或相似图像搜索方法,其特征在于,还包括:在步骤S01前,构建文档图像向量对应查询表和量化值文档对应查询表。
3.根据权利要求2所述的一种相同或相似图像搜索方法,其特征在于,所述文档图像向量对应查询表构建过程如下:
计算每个图像Ij的N维候选图像描述符向量Vj = <vj1, vj2,..vji …vjN>,Vj具有文档IDdocidj,docidj是一个从0至最大数docidmax的顺序增量的整数;
计算候选图像描述符量化向量Qj = <qj1, qj2, …qji…qjN>,其中qji∈ (0, 1, 2…L-1), vji被映射到L级量化值qji中的一个;
将每个图像docidj作为关键字,将候选图像描述符向量Vj、候选图像描述符量化向量Qj和图像名称作为内容,构建文档图像向量对应查询表。
4.根据权利要求3所述的一种相同或相似图像搜索方法,其特征在于,所述计算候选图像描述符量化向量的具体步骤为:
确定图像描述符向量Vj的最高限值vmax和最低限值vmin
利用线性化量化计算公式计算图像描述符量化向量:qji= integer( L • (vji- vmin)/( vmax - vmin)),其中公式integer()表示将浮点结果转化为有效量化值最接近的整数。
5.根据权利要求3所述的一种相同或相似图像搜索方法,其特征在于,所述量化值文档对应查询表构建过程如下:
计算第一关键字key = <i, l>;
计算每个图像文档docid的位图数组,位图数组具有M字节或M/8+1字节,M是图像文档的总量,位图数组设置位置n的位表示具有docidj为n的图像文档,并且图像文档中相应图像具有相应的图像描述符量化值;
将第一关键字作为关键字,将位图数组作为内容,构建量化值文档对应查询表。
6.根据权利要求1所述的一种相同或相似图像搜索方法,其特征在于,所述步骤S31在选择最大量化值的所有图像文档docid并形成相关第一位图数组前,还包括设置docidBitMapArraymax docidBitMapArraymax-1 docidBitMapArraymax-2 ,…docidBitMapArraymax-i… docidBitMapArray max-(T-1)为与顶部最大值T分量值qmax qmax-1 qmax-2 ,… qmax-T+1相关的docid位图数组。
7.根据权利要求1所述的一种相同或相似图像搜索方法,其特征在于,所述步骤S05具体包括:计算查询图像的图像描述符向量Vs和候选图像描述符向量Vj之间的向量距离:distance(Vs, Vj) = [(vs1 – vj1)2 + (vs2 – vj2)2 + …+ (vsN– vjN)2]1/2,其中,N为向量维度;当距离为0时,则查询图像与图像集匹配,当距离小于0时,距离代表图像之间不同程度的相似性。
8.根据权利要求7所述的一种相同或相似图像搜索方法,其特征在于,所述步骤S06具体为:对距离结果进行降序排序,对照文档图像向量对应查询表获取相同或相似图像名称。
CN201910552322.XA 2019-06-25 2019-06-25 一种相同或相似图像搜索方法 Active CN110413813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910552322.XA CN110413813B (zh) 2019-06-25 2019-06-25 一种相同或相似图像搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910552322.XA CN110413813B (zh) 2019-06-25 2019-06-25 一种相同或相似图像搜索方法

Publications (2)

Publication Number Publication Date
CN110413813A CN110413813A (zh) 2019-11-05
CN110413813B true CN110413813B (zh) 2023-05-12

Family

ID=68359708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910552322.XA Active CN110413813B (zh) 2019-06-25 2019-06-25 一种相同或相似图像搜索方法

Country Status (1)

Country Link
CN (1) CN110413813B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114329006A (zh) * 2021-09-24 2022-04-12 腾讯科技(深圳)有限公司 图像检索方法、装置、设备、计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521366A (zh) * 2011-12-16 2012-06-27 华中科技大学 融合分类与全局索引的图像检索方法和图像检索***
CN103336795A (zh) * 2013-06-09 2013-10-02 华中科技大学 基于多特征的视频索引方法
CN103617217A (zh) * 2013-11-20 2014-03-05 中国科学院信息工程研究所 一种基于层次索引的图像检索方法及***
CN105518668A (zh) * 2013-09-04 2016-04-20 沙祖拉公司 基于内容的图像检索
CN105956203A (zh) * 2016-06-30 2016-09-21 湖州亿联信息技术有限公司 一种信息存储方法、信息查询方法、搜索引擎装置
CN108154526A (zh) * 2016-12-06 2018-06-12 奥多比公司 突发模式图像的图像对准
CN108959567A (zh) * 2018-07-04 2018-12-07 武汉大学 一种云环境下适用于大规模图像的安全检索方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521366A (zh) * 2011-12-16 2012-06-27 华中科技大学 融合分类与全局索引的图像检索方法和图像检索***
CN103336795A (zh) * 2013-06-09 2013-10-02 华中科技大学 基于多特征的视频索引方法
CN105518668A (zh) * 2013-09-04 2016-04-20 沙祖拉公司 基于内容的图像检索
CN103617217A (zh) * 2013-11-20 2014-03-05 中国科学院信息工程研究所 一种基于层次索引的图像检索方法及***
CN105956203A (zh) * 2016-06-30 2016-09-21 湖州亿联信息技术有限公司 一种信息存储方法、信息查询方法、搜索引擎装置
CN108154526A (zh) * 2016-12-06 2018-06-12 奥多比公司 突发模式图像的图像对准
CN108959567A (zh) * 2018-07-04 2018-12-07 武汉大学 一种云环境下适用于大规模图像的安全检索方法

Also Published As

Publication number Publication date
CN110413813A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
Wang et al. Enhancing sketch-based image retrieval by cnn semantic re-ranking
CN107256262B (zh) 一种基于物体检测的图像检索方法
CN106951551B (zh) 联合gist特征的多重索引图像检索方法
Tiakas et al. MSIDX: multi-sort indexing for efficient content-based image search and retrieval
CN105183746B (zh) 从多相关图片中挖掘显著特征实现图像检索的方法
CN110413813B (zh) 一种相同或相似图像搜索方法
Yahiaoui et al. Shape-based image retrieval in botanical collections
Sheikh et al. A content based image retrieval system for marine life images
Sun et al. Search by detection: Object-level feature for image retrieval
Hong et al. Realtime and robust object matching with a large number of templates
Tian et al. Deep image retrieval of large-scale vessels images based on BoW model
Gopal et al. Content based image retrieval using enhanced surf
Seth et al. A review on content based image retrieval
An et al. Classification of feature set using k-means clustering from histogram refinement method
Chathurani et al. Content-based image (object) retrieval with rotational invariant bag-of-visual words representation
Wan et al. Incorporating Spatial Distribution Feature with Local Patterns for Content‐Based Image Retrieval
Vijayashanthi et al. Survey on recent advances in content based image retrieval techniques
Berezsky et al. Biomedical Image Search and Retrieval Algorithms
Li et al. Image Hashing Based on SIFT Features
Davis et al. Asymmetric sparse kernel approximations for large-scale visual search
Janet et al. Vector quantization based index cube model for image retrieval
Khan et al. A Fused LBP Texture Descriptor-Based Image Retrieval System
Liu et al. Person re-identification by local feature based on super pixel
WO2023071577A1 (zh) 特征提取模型训练方法、图片搜索方法、装置及设备
Zhang A New Three-dimensional Integrated Multi-index Method for CBIR System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant