首页> 中国专利> 一种识别重复图片的方法、图片搜索去重方法及其装置

一种识别重复图片的方法、图片搜索去重方法及其装置

摘要

本发明提供一种识别重复图片的方法、图片搜索去重方法及其装置,该方法中将待识别图片的Phash值分段,得到每个Phash分值,将每个Phash分值与拉链数据库中保存的每个图片的Phash分值进行比较,当命中拉链数据库中其他图片的Phash分值时,确定待识别图片是否与其他图片重复。由于在本发明实施例中将图片的Phash值进行分段得到了多个Phash分值,当某一Phash分值命中拉链数据库中其他图片的Phash分值时,比较该图片的Phash值及与命中的其他图片的Phash值,保证了重复图片识别的准确性,也能有效的提高重复图片的识别效率。

著录项

  • 公开/公告号CN103984776A

    专利类型发明专利

  • 公开/公告日2014-08-13

    原文格式PDF

  • 申请/专利号CN201410247778.2

  • 发明设计人 朱茂清;韩玉刚;

    申请日2014-06-05

  • 分类号G06F17/30(20060101);

  • 代理机构11448 北京中强智尚知识产权代理有限公司;

  • 代理人姜精斌;王书彪

  • 地址 100088 北京市西城区新街口外大街28号D座112室(德胜园区)

  • 入库时间 2023-12-17 00:35:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-17

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2014102477782 申请日:20140605 授权公告日:20170503

    专利权的终止

  • 2017-05-03

    授权

    授权

  • 2014-09-10

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140605

    实质审查的生效

  • 2014-08-13

    公开

    公开

说明书

技术领域

本发明涉及图片识别技术领域,尤其涉及一种识别重复图片的方法、图片 搜索去重方法及其装置。

背景技术

基于用户输入的图片进行搜索后,为了提高用户的体验,并提高搜索结果 的准确性,一般需要对搜索到的图片进行排重处理,即识别搜索结果中的相同 图片。

现有技术在识别搜索结果中的相同图片时,根据图片的内容是否相同,或 者根据图片的链接地址是否相同进行简单判断,但有时相同的图片其内容可能 不会,或者相同图片的链接地址也并不相同,因此采用上述方法不能达到很好 的识别效果。

为了达到较好的识别效果,可以对图片进行一系列的特征量化处理,进行 特征量化处理后再进行排重处理,该方法虽然可以达到比较理想的识别效果, 但是耗时较长,无法满足图片搜索、提供的实时性需求。

另外,在进行相同图片识别时,也可以通过比较图片的Phash值进行判断, 但是该方法需要将每两张图片的Phash值进行比较,对于海量搜索结果而言, 该方法也非常的耗费时间,无法保证图片搜索提供的实时性。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地 解决上述问题的一种识别重复图片的方法、图片搜索去重方法及其装置。

本发明实施例提供了一种识别重复图片的方法,该方法包括:

确定待识别图片的Phash值,对所述Phash值进行分段,得到分段后的每 个Phash分值;

判断所述待识别图片分段后的每个Phash分值是否命中拉链数据库中其他 图片分段后的Phash分值;

当待识别图片的Phash分值命中拉链数据库中其他图片的Phash分值时, 确定所述待识别图片与拉链数据库中的其他图片是否重复;

否则,将所述待识别图片的信息保存到所述拉链数据库中。

为了提高相同图片的识别准确性,所述确定所述待识别图片与拉链数据库 中的其他图片是否重复包括:

针对Phash分值被命中的拉链数据库中的每个其他图片,根据该待识别图 片的Phash值和每个其他图片Phash值的汉明距离,确定所述待识别图片与拉 链数据库中的其他图片是否重复。

为了提高相同图片的识别准确性,所述确定所述待识别图片与拉链数据库 中的其他图片是否重复包括:

确定所述待识别图片与所述每个其他图片的汉明距离,提取所述汉明距离 的最小值;

判断所述最小值是否小于设定的比较阈值;

当所述最小值小于设定的比较阈值时,确定所述待识别图片与拉链数据库 中的其他图片重复,否则,确定该待识别图片与拉链数据库中的其他图片不重 复。

为了提高相同图片的识别准确性,所述确定所述待识别图片与拉链数据库 中的其他图片是否重复包括:

针对每个其他图片中的第一图片,确定该待识别图片的Phash值与该第一 图片的Phash值的汉明距离,并判断该汉明距离是否小于设定的第一阈值;

当该汉明距离小于设定的第一阈值时,确定该待识别图片与该第一图片重 复;

当该汉明距离不小于设定的第一阈值时,判断所述汉明距离是否小于设定 的第二阈值,其中第一阈值小于第二阈值;

当所述汉明距离小于设定的第二阈值时,确定所述待识别图片与所述剩余 的每个其他图片的汉明距离,提取所述汉明距离的最小值,判断所述最小值是 否小于设定的第一阈值,当所述最小值小于设定的第一阈值时,确定所述待识 别图片与拉链数据库中的其他图片重复,否则,确定该待识别图片与所述其他 图片不重复。

为了提高相同图片的识别效率,所述将所述待识别图片的信息保存到所述 拉链数据库中包括:

将所述待识别图片的Phash分值及所述待识别图片的Phash值保存在所述 拉链数据库的头部,其中所述拉链数据库按照图片产生的时间,从前到后保存 各图片的信息。

进一步地,所述待识别图片包括新闻图片和热点图片。

进一步地,所述对所述Phash值进行分段包括:

将所述Phash值分为多个单元段,每个单元段采用不同的比特数;

采用顺序移位方法,得到每个Phash分值。

本发明实施例提供了一种图片搜索去重的方法,该方法包括:

接收用户输入的查询词,并搜索与用户输入的查询词相匹配的图片资源;

去除图片资源中的重复图片;

将去除重复图片后的图片资源结果返回给所述用户。

进一步地,所述去除图片资源中的重复图片可以通过采用上述识别重复图 片的方法得到。

本发明实施例提供了一种识别重复图片的装置,该装置包括:

分段模块,用于确定待识别图片的Phash值,对所述Phash值进行分段, 得到分段后的每个Phash分值;

拉链数据库,用于存储图片的Phash值及每个Phash分值;

判断模块,用于判断所述待识别图片分段后的每个Phash分值是否命中拉 链数据库中的其他图片分段后的Phash分值;

比较识别模块,用于当判断模块判断所述待识别图片的Phash分值命中拉 链数据库中其他图片的Phash分值时,确定所述待识别图片与拉链数据库中的 其他图片是否重复;当判断模块判断待识别图片的每个Phash分值未命中拉链 数据库中的其他图片的Phash分值时,将所述待识别图片的信息保存到所述拉 链数据库中。

为了提高相同图片的识别准确性,所述比较识别模块,具体用于针对Phash 分值被命中的拉链数据库中的每个其他图片,根据该待识别图片的Phash值和 每个其他图片Phash值的汉明距离,确定所述待识别图片与拉链数据库中的其 他图片是否重复。

为了提高相同图片的识别准确性,所述比较识别模块,具体用于确定所述 待识别图片与所述每个其他图片的汉明距离,提取所述汉明距离的最小值;判 断所述最小值是否小于设定的比较阈值;当所述最小值小于设定的比较阈值 时,确定所述待识别图片与拉链数据库中的其他图片重复,否则,确定该待识 别图片与拉链数据库中的其他图片不重复。

为了提高相同图片的识别准确性,所述比较识别模块,具体用于针对每个 其他图片中的第一图片,确定该待识别图片的Phash值与该第一图片的Phash 值的汉明距离;判断该汉明距离是否小于设定的第一阈值;当该汉明距离小于 设定的第一阈值时,确定该待识别图片与该第一图片重复;当该汉明距离不小 于设定的第一阈值时,判断所述汉明距离是否小于设定的第二阈值,其中第一 阈值小于第二阈值;当所述汉明距离小于设定的第二阈值时,确定所述待识别 图片与所述剩余的每个其他图片的汉明距离,提取所述汉明距离的最小值,判 断所述最小值是否小于设定的第一阈值,当所述最小值小于设定的第一阈值 时,确定所述待识别图片与拉链数据库中的其他图片重复,否则,确定该待识 别图片与所述其他图片不重复。

为了提高相同图片的识别效率,所述比较识别模块,具体用于将所述待识 别图片的Phash分值及所述待识别图片的Phash值保存在所述拉链数据库的头 部,其中所述拉链数据库按照图片产生的时间,从前到后保存各图片的信息。

进一步地,所述分段模块,具体用于将所述Phash值分为多个单元段,每 个单元段采用不同的比特数;采用顺序移位方法,得到每个Phash分值。

本发明实施例提供了一种图片搜索去重的装置,该装置包括:

接收搜索模块,用于接收用户输入的查询词,并搜索与用户输入的查询词 相匹配的图片资源;

去重模块,用于去除图片资源中的重复图片;

提供模块,用于将去除重复图片后的图片资源结果返回给所述用户。

进一步地,所述去重模块去除图片资源中的重复图片可以通过采用上述的 识别重复图片的装置得到。

本发明实施例提供了一种识别重复图片的方法、图片搜索去重方法及其装 置,该方法中将待识别图片的Phash值分段,得到每个Phash分值,将待识别 图片的每个Phash分值与拉链数据库中保存的每个图片的Phash分值进行比较, 当待识别图片的Phash分值命中拉链数据库中其他图片的Phash分值时,确定 待识别图片是否与其他图片重复。由于在本发明实施例中将图片的Phash值进 行分段得到了多个Phash分值,当某一Phash分值命中拉链数据库中其他图片 的Phash分值时,才比较该图片的Phash值及与其命中的其他图片的Phash值, 因此保证了重复图片识别的准确性,同时也能有效的提高重复图片的识别效 率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术 手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、 特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领 域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并 不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的 部件。在附图中:

图1为本发明实施例提供的一种识别重复图片的过程示意图;

图2为本发明实施例一提供的一种识别重复图片的过程示意图;

图3为本发明实施例二提供的一种识别重复图片的过程示意图;

图4为本发明实施例提供的一种图片搜索去重的过程示意图;

图5为本发明实施例提供的一种识别重复图片的装置结构示意图;

图6为本发明实施例提供的一种图片搜索去重的装置结构示意图。

具体实施方式

为了保证相同图片识别的准确性,并提高相同图片的识别效率,本发明实 施例提供了一种识别重复图片的方法、图片搜索去重的方法及其装置。

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了 本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被 这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本 公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

下面结合说明附图,对本发明实施例进行说明。

图1为本发明实施例提供的一种识别重复图片的过程示意图,该过程包括 以下步骤:

S101:确定待识别图片的Phash值,对所述Phash值进行分段,得到分段 后的每个Phash分值。

在相同图片识别的过程中,针对每张图片都采用该预设的方法对图片的 Phash值进行分段,这样可以保证每张图片的Phash值都采用相同的方式进行 分段,便于后续Phash分值的比较。

S102:判断所述待识别图片分段后的每个Phash分值是否命中拉链数据库 中其他图片分段后的Phash分值,当判断结果为是时,进行步骤S103,否则, 进行步骤S104。

所述待识别图片分段后的Phash分值命中拉链数据库中的其他图片分段后 的Phash分值包括:

所述待识别图片分段后的Phash分值与拉链数据库中的其他图片分段后的 Phash分值相同。

待识别图片的Phash值进行分段后,得到多个Phash分值,例如分别为P1、 P2、P3、……、Pn,相应的拉链数据库中的每张图片的也都对应的存在n个 Phash分值。在进行判断时,将待识别图片分段后的Phash分值P1分别与拉链 数据库中每张图片分段后的每个Phash分值分别进行比较,判断该待识别图片 分段后的Phash分值P1是否命中拉链数据库中其他图片分段后的Phash分值, 即判断该待识别图片分段后的Phash分值P1是否与拉链数据库中某一图片分 段后的某一Phash分值相同。当该待识别图片分段后的Phash分值P1与拉链 数据库中第二图片分段后的某一Phash分值相同时,确定该待识别图片分段后 的Phash分值P1命中拉链数据库中第二图片分段后的该Phash分值。

另外,针对待识别图片的其他Phash分值也采用上述过程,一一判断该待 识别图片每个Phash分值是否命中拉链数据库中其他图片的Phash分值。

S103:确定所述待识别图片与拉链数据库中的其他图片是否重复。

具体的,确定所述待识别图片与拉链数据库中的其他图片是否重复包括:

针对Phash分值被命中的拉链数据库中的每个其他图片,根据该待识别图 片的Phash值和每个其他图片Phash值的汉明距离,确定所述待识别图片与拉 链数据库中的其他图片是否重复。

在比较待识别图片的Phash值与命中图片的Phash值的汉明距离时,可以 设定比较阈值,当待识别图片的Phash值与命中图片的Phash值的汉明距离小 于设定的比较阈值时,确定待识别图片和命中图片为重复图片,否则,确定待 识别图片和命中图片不重复。

S104:将所述待识别图片的信息保存到所述拉链数据库中。

当待识别图片的每个Phash分值未命中拉链数据库中的每个图片的Phash 分值时,确定该拉链数据库中不存在与待识别图片重复的图片,或者,通过比 较汉明距离,确定待识别图片和命中图片不重复时,为了方便后续重复图片的 识别,将待识别图片的信息添加到拉链数据库中,该拉链数据库中保存的每张 图片都不重复。

由于在本发明实施例中将图片的Phash值进行分段得到了多个Phash分值, 当某一Phash分值命中拉链数据库中其他图片的Phash分值时,才比较该图片 的Phash值及与其命中的其他图片的Phash值,因此保证了重复图片识别的准 确性,同时也能有效的提高重复图片的识别效率。

本发明实施例中拉链数据库用于保存图片的信息,包括:图片的Phash值 及图片的Phash分值,该拉链数据库中还可以保存图片的标识信息,例如图片 在搜索结果中的序号,或者图片在整个的识别过程中的序号等等。

在针对每个图片搜索的结果进行重复图片识别之初,该拉链数据库为空, 在进行后续的识别过程中,根据识别的结果,将与拉链数据库中保存的图片不 重复的图片的信息保存到该拉链数据库中,因此可以认为该拉链数据库中保存 的每张图片都不同。具体的,该拉链数据库可以将每张图片的每个Phash分值 作为该图片的多个key值,将该图片的Phash值作为该图片的拉链数据保存。 并且该拉链数据库中为了具体的区分每张图片,并减小数据的存储量,还可以 保存搜索结果中该图片的ID,或者按照图片保存到拉链数据库的顺序,确定每 个图片在该拉链数据库中的ID。

基于用户的输入搜索到了多张图片后,针对每张图片,确定该图片的Phash 值,并按照预设的方法对该Phash值进行分段,得到分段后的每个Phash分值。 具体的在对图片的Phash值进行分段时,只要每张图片采用的是相同的分段方 式即可,无论是直接将Phash值分段,还是采用顺序移位的思想将Phash值分 段,或者是采用间隔提取的方式确定每个Phash分值都可以。另外分段后的 Phash分值包含多少bit也是可以任意确定的,只要针对不同图片,在确定每个 Phash分值时,采用了相同的确定方式即可。

具体的,图片的Phash值为一个64bit的数值,在本发明实施例中可以选 取Phash值21bit表示,为了减少比较的次数,将21bit分为3个单元段,每个 单元段分别为8bit、7bit和6bit,采用顺序移位思想,最终产生对应掩码数据 位512个,消重后的数据量为506,即每个数据最多分到506个拉链中,而产 生的最大拉链数为2^8*2^7*2^6=200w。

下面以一个具体的例子来说明,对Phash值进行分段的过程。

考虑到新闻数据时效性,预估最大量200w(数据会过期失效),选取phash 值21bit表示,为了减少比较次数,将21bit分成3个单元段,分别为8bit,7bit, 6bit,采用顺序移位思想,最终产生对应掩码数据为512个,消重后数据量为 506,即每个数据最多分到506个拉链中,而产生最大拉链数为 2^8*2^7*2^6=200w,每个拉链位于拉链数据库中。在本发明实施例中每个拉链 可以作为每个Phash分值的key值。

得到待识别的图片的每个Phash分值后,将该图片的每个Phash分值分别 与拉链数据库保存的每张图片的Phash分值进行比较,判断该待识别图片的每 个Phash分值是否命中拉链数据库中其他图片的Phash分值。拉链数据库中保 存有多张不同图片的信息,包括每张图片的Phash分值和Phash值。当将待识 别图片的每个Phash分值与拉链数据库中其他图片的Phash分值进行命中判断 时,具体针对待识别图片的每个Phash分值,判断该拉链数据库中保存的每张 图片的每个Phash分值是否与该待识别图片的该Phash分值相同,当相同时, 认为该待识别图片的该Phash分值命中拉链数据库中该其他图片的Phash分值。

拉链数据库中保存的每张图片的Phash分值存在多个,并且拉链数据库中 保存了多张图片的Phash分值,在针对每张待识别的图片,判断该图片的每个 Phash分值是否命中拉链数据库中其他图片的Phash分值时,很可能存在该待 识别图片的某一Phash分值命中拉链数据库中多个图片的Phash分值的情况, 例如该待识别图片的第一Phash分值命中第二图片的第一Phash分值,并命中 第三图片的第二Phash分值。也可能会存在,该待识别图片的多个Phash分值 在拉链数据库中都存在命中的Phash分值,例如待识别图片的第一Phash分值 在拉链数据库命中4张图片的Phash分值,第二Phash分值命中拉链数据库中 3张图片的Phash分值等。

确定了待识别图片的每个Phash分值在拉链数据库中命中的Phash分值后, 比较该待识别图片的Phash值及每个命中的Phash分值的图片的Phash值的汉 明距离,判断该待识别图片是否与该图片重复。

图2为本发明实施例一提供的一种识别重复图片的过程示意图,该过程包 括以下步骤:

S201:提取搜索结果中的待识别图片,确定该待识别图片的Phash值。

S202:按照预设的方法对该Phash值进行分段,得到分段后的每个Phash 分值。

S203:提取该待识别图片的每个Phash分值,将该每个Phash分值与拉链 数据库中每张图片的每个Phash分值进行比较,判断每个Phash分值是否命中 拉链数据库中其他图片的Phash分值,当判断结果为是时,进行步骤S204,否 则,进行步骤S207。

S204:比较该待识别图片的Phash值与命中图片的Phash值的汉明距离是 否小于设定的比较阈值,当判断结果为是时,进行步骤S205,否则,进行步骤 S206。

将拉链数据库中Phash分值与该待识别图片的Phash分值命中的图片称为 命中图片。

S205:确定该待识别图片与该命中图片为重复图片。

S206:当前命中图片是否为命中图片中的最后一张图片,判断结果为是时, 进行步骤S207,否则,针对该命中的下一张图片,进行步骤S204。

S207:将该待识别图片在搜索结果中的ID,该待识别图片的每个Phash 分值及Phash值添加到拉链数据库中。

或者,本发明实施例为了提高重复图片的识别效率,根据待识别图片的每 个Phash分值,确定了每个Phash分值命中的拉链数据库中其他图片的Phash 分值后,将该命中的Phash分值对应的其他图片作为命中图片。在确定该待识 别图片与拉链数据库中的命中图片是否重复时包括:

确定所述待识别图片与所述每个其他图片的汉明距离,提取所述汉明距离 的最小值;

判断所述最小值是否小于设定的比较阈值;

当所述最小值小于设定的比较阈值时,确定所述待识别图片与拉链数据库 中的其他图片重复,否则,确定该待识别图片与拉链数据库中的其他图片不重 复。

在具体实施时,可以依次确定该待识别图片和每个命中图片的汉明距离, 选择汉明距离最小值,判断该汉明距离的最小值是否小于设定的比较阈值,当 该汉明距离的最小值小于设定的比较阈值时,确定该待识别图片与该距离最小 值对应的图片为重复图片。

在本发明实施例中为了提高重复图片识别的准确性,所述确定所述待识别 图片与拉链数据库中的其他图片是否重复包括:

针对每个其他图片中的第一图片,确定该待识别图片的Phash值与该第一 图片的Phash值的汉明距离,并判断该汉明距离是否小于设定的第一阈值;

当该汉明距离小于设定的第一阈值时,确定该待识别图片与该第一图片重 复;

当该汉明距离不小于设定的第一阈值时,判断所述汉明距离是否小于设定 的第二阈值,其中第一阈值小于第二阈值;

当所述汉明距离小于设定的第二阈值时,确定所述待识别图片与所述剩余 的每个其他图片的汉明距离,提取所述汉明距离的最小值,判断所述最小值是 否小于设定的第一阈值,当所述最小值小于设定的第一阈值时,确定所述待识 别图片与拉链数据库中的其他图片重复,否则,确定该待识别图片与所述其他 图片不重复。

第一阈值可以作为可信阈值,当两张图片的汉明距离小于第一阈值时,可 以认为该两张图片为重复图片;第二阈值可以认为是中度可信阈值,当两张图 片的汉明距离大于第一阈值时,但小于第二阈值时,将该待识别图片添加到可 疑图片队列中,继续判断该待识别图片是否与其他命中图片的汉明距离,从而 确定该待识别图片是否与拉链数据库中的图片重复。

进一步的,为了提高重复图片的识别效率,也可以分别确定待识别图片与 命中图片的汉明距离,提取汉明距离的最小值,将该最小值与设定的第一阈值 和第二阈值进行比较,从而判断该待识别图片是否与拉链数据库中的图片重 复。

图3为本发明实施例二提供的一种识别重复图片的过程示意图,该过程包 括以下步骤:

S301:确定待识别图片的Phash值,并按照预设的方法对所述Phash值进 行分段,得到分段后的每个Phash分值。

S302:提取该待识别图片的每个Phash分值,将每个Phash分值分别与拉 链数据库中每个图片的Phash分值进行比较,判断每个Phash分值是否命中拉 链数据库中其他图片的Phash分值,当判断结果为是时,进行步骤S303,否则, 进行步骤S306。

S303:确定该待识别图片与每个命中图片的汉明距离,提取汉明距离的最 小值。

将拉链数据库中Phash分值与该待识别图片的Phash分值命中的图片称为 命中图片。

S304:判断该汉明距离的最小值是否小于设定的比较阈值,当判断结果为 是时,进行步骤S305,否则,进行步骤S306。

S305:该待识别图片在该拉链数据库中存在重复的图片。

S306:该待识别图片与拉链数据库中的图片都不重复,将该待识别图片的 信息保存到拉链数据库中。

在本发明实施例中确定了该待识别图片与其他图片的汉明距离后,将该汉 明距离与两个阈值进行比较,可以有效的保证重复图片识别的准确性,不影响 重复图片识别装置的召回。

为了有效的提高重复图片识别的效率,能够快速的查找到重复图片,在本 发明实施例中当确定待识别的图片与拉链数据库中的图片重复时,在将待识别 图片的信息保存到拉链数据库中时,将所述待识别图片的Phash分值及所述待 识别图片的Phash值保存在所述拉链数据库的头部,其中所述拉链数据库按照 图片产生的时间,从前到后保存各图片。

例如待识别图片可以是新闻图片和热点图片。这是因为基于同一事件的图 片会在同一时间出现,因此基于事件的临近性及出现的图片的临近性,在本发 明实施例中当确定待识别图片在拉链数据库中不存在重复图片时,将该待识别 图片的信息添加到拉链数据库的头部,即该拉链数据库的前面,因此在进行重 复图片识别时,可以首先判断拉链数据库头部的图片是否与该待识别图片重 复,从而提高重复图片识别的效率。

下面通过一个具体的实施例,说明本发明实施例的重复图片的识别过程。

待识别图片的Phash值为M,按照预设的方法对该Phash值进行分段后, 得到该待识别图片分段后的每个Phash值P1、P2、……、Pn。设定的第一阈值 为a,第二阈值为b,a<b。

将该待识别图片的Phash分值P1与拉链数据库中的其他图片的每个Phash 分值比较,判断该待识别图片的Phash分值P1是否命中拉链数据库中其他图 片的Phash分值,例如该待识别图片的Phash分值P1命中拉链数据库中图片1 的某一Phash分值,并命中图片2的某一Phash分值。将待识别图片的Phash 分值P2与拉链数据库中的其他图片的每个Phash分值比较,判断该待识别图 片的Phash分值P2是否命中拉链数据库中其他图片的Phash分值,例如该待 识别图片的Phash分值P2命中拉链数据库中图片1的另一Phash分值,并命 中图片3的某一Phash分值。

依次将该待识别图片的每个Phash分值,分别与拉链数据库中其他图片的 每个Phash分值进行比较,判断是否命中拉链数据库中其他图片的Phash分值, 从而确定该待识别图片命中的拉链数据库中的每个图片。如果待识别图片的每 个Phash分值都未命中拉链数据库中的其他图片的每个Phash分值时,则确定 该待识别图片与拉链数据库中的每张图片都不重复,将该待识别图片的标识信 息,该图片的每个Phash分值及Phash值保存到拉链数据库中,该待识别图片 的标识信息可以为该图片在搜索结果中的排序的序号,或者该图片整个重复图 片识别过程中的序号等。

确定了待识别图片在拉链数据库中命中的每个图片后,针对每个命中图 片,比较该待识别图片的Phash值与该命中图片的Phash值的汉明距离,判断 该汉明距离是否小于设定的第一阈值,当该汉明距离小于设定的第一阈值a时, 即该汉明距离位于[0,a)区间时,确定该待识别图片与拉链数据库中图片重复。

当该汉明距离大于设定的第一阈值a但小于设定的第二阈值b时,即该汉 明距离位于[a,b)区间时,其中a小于b,将该待识别图片添加到可以队列中。 比较该待识别图片与其他命中图片的汉明距离,识别该汉明距离的最小值,当 该最小值小于设定的第一阈值a时,确定该待识别图片与拉链数据库中图片重 复,否则,确定该待识别图片与拉链数据库中的图片都不重复,将该待识别图 片的标识信息,该图片的每个Phash分值及Phash值保存到拉链数据库中。

当该汉明距离大于设定的第二阈值b时,即该汉明距离位于[b,∞)区间时, 确定该待识别图片与拉链数据库中的图片都不重复,将该待识别图片的标识信 息,该图片的每个Phash分值及Phash值保存到拉链数据库中。

图4为本发明实施例提供的一种图片搜索去重的过程示意图,该过程包括:

S401:接收用户输入的查询词,并搜索与用户输入的查询词相匹配的图片 资源。

S402:确定图片资源中每张图片的Phash值,并按照预设的方法对所述 Phash值进行分段,得到分段后的每个Phash分值。

S403:提取该待识别图片的每个Phash分值,将每个Phash分值分别与拉 链数据库中每个图片的Phash分值进行比较,判断每个Phash分值是否命中拉 链数据库中其他图片的Phash分值,当判断结果为是时,进行步骤S404,否则, 进行步骤S409。

S404:确定该待识别图片与每个命中图片的汉明距离,提取汉明距离的最 小值。

S405:判断该汉明距离的最小值是否小于设定的比较阈值,当判断结果为 是时,进行步骤S406,否则,进行步骤S409。

S406:该待识别图片在该拉链数据库中存在重复的图片。

S407:判断该待识别图片是否为该图片资源相关信息中的最后一张图片, 当判断结果为是时,进行步骤S408,否则,将下一张图片作为待识别图片,进 行步骤S403。

S408:将去除重复图片后的拉链数据库中的图片返回给所述用户。

S409:该待识别图片与拉链数据库中的图片都不重复,将该待识别图片添 加到拉链数据库的前面。之后进行步骤S407。

由于在本发明实施例中将图片的Phash值进行分段得到了多个Phash分值, 当某一Phash分值命中拉链数据库中其他图片的Phash分值时,才比较该图片 的Phash值及与其命中的其他图片的Phash值,因此保证了重复图片识别的准 确性,同时也能有效的提高重复图片的识别效率。

图5为本发明实施例提供的一种识别重复图片的装置结构示意图,所述装 置包括:

分段模块51,用于确定待识别图片的Phash值,对所述Phash值进行分段, 得到分段后的每个Phash分值;

拉链数据库52,用于存储图片的Phash值及每个Phash分值;

判断模块53,用于判断所述待识别图片分段后的每个Phash分值是否命中 拉链数据库中的其他图片分段后的Phash分值;

比较识别模块54,用于当判断模块判断所述待识别图片的Phash分值命中 拉链数据库中其他图片的Phash分值时,确定所述待识别图片与拉链数据库中 的其他图片是否重复;当判断模块判断待识别图片的每个Phash分值未命中拉 链数据库中的其他图片的Phash分值时,将所述待识别图片的信息保存到所述 拉链数据库中。

所述比较识别模块54,具体用于针对Phash分值被命中的拉链数据库中的 每个其他图片,根据该待识别图片的Phash值和每个其他图片Phash值的汉明 距离,确定所述待识别图片与拉链数据库中的其他图片是否重复。

所述判断模块53,具体用于判断待识别图片的Phash分值与拉链数据库中 的其他图片的Phash分值是否相同。

所述比较识别模块54,具体用于确定所述待识别图片与所述每个其他图片 的汉明距离,提取所述汉明距离的最小值;判断所述最小值是否小于设定的比 较阈值;当所述最小值小于设定的比较阈值时,确定所述待识别图片与拉链数 据库中的其他图片重复,否则,确定该待识别图片与拉链数据库中的其他图片 不重复。

所述比较识别模块54,具体用于针对每个其他图片中的第一图片,确定该 待识别图片的Phash值与该第一图片的Phash值的汉明距离;判断该汉明距离 是否小于设定的第一阈值;当该汉明距离小于设定的第一阈值时,确定该待识 别图片与该第一图片重复;当该汉明距离不小于设定的第一阈值时,判断所述 汉明距离是否小于设定的第二阈值,其中第一阈值小于第二阈值;当所述汉明 距离小于设定的第二阈值时,确定所述待识别图片与所述剩余的每个其他图片 的汉明距离,提取所述汉明距离的最小值,判断所述最小值是否小于设定的第 一阈值,当所述最小值小于设定的第一阈值时,确定所述待识别图片与拉链数 据库中的其他图片重复,否则,确定该待识别图片与所述其他图片不重复。

所述比较识别模块54,具体用于将所述待识别图片的Phash分值及所述待 识别图片的Phash值保存在所述拉链数据库的头部,其中所述拉链数据库按照 图片产生的时间,从前到后保存各图片的信息。

所述分段模块51,具体用于将所述Phash值分为多个单元段,每个单元段 采用不同的比特数;采用顺序移位方法,得到每个Phash分值。

图6为本发明实施例提供的一种图片搜索去重的装置结构示意图,所述装 置包括:

接收搜索模块61,用于接收用户输入的查询词,并搜索与用户输入的查询 词相匹配的图片资源;

去重模块62,用于去除图片资源中的重复图片;

提供模块63,用于将去除重复图片后的图片资源结果返回给所述用户;

所述去重模块62去除图片资源中的重复图片通过采用上述识别重复图片 的装置得到。

本发明实施例提供了一种识别重复图片的方法、图片搜索去重方法及其装 置,该方法中将待识别图片的Phash值分段,得到每个Phash分值,将待识别 图片的每个Phash分值与拉链数据库中保存的每个图片的Phash分值进行比较, 当待识别图片的Phash分值命中拉链数据库中其他图片的Phash分值时,确定 待识别图片是否与其他图片重复。由于在本发明实施例中将图片的Phash值进 行分段得到了多个Phash分值,当某一Phash分值命中拉链数据库中其他图片 的Phash分值时,才比较该图片的Phash值及与其命中的其他图片的Phash值, 因此保证了重复图片识别的准确性,同时也能有效的提高重复图片的识别效 率。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有 相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构 造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程 语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且 上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发 明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细 示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或 多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一 起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法 解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确 记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发 明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式 的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为 本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适 应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实 施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它 们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的 至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要 求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有 过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、 摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征 来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它 实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意 味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求 书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器 上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解, 可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实 施例的通过相同图片的识别装置及搜索装置中的一些或者全部部件的一些或 者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全 部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现 本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号 的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供, 或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并 且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施 例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的 限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之 前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包 括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干 装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体 体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解 释为名称。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号