搜索相似图片的方法及系统与流程

文档序号:23469825发布日期:2020-12-29 13:10阅读:230来源:国知局
搜索相似图片的方法及系统与流程

本发明涉及大数据技术领域,具体涉及搜索相似图片的方法及系统。



背景技术:

以图搜图服务在大数据图像检索、互联网图片素材搜索、购物搜索等多种领域都有广泛应用。以图搜图,是通过输入一张图片来搜索相似的图片的一种技术,为用户提供相关图形图像资料检索的搜索技术。涉及了数据库、数据缓存、计算机视觉、图像处理、信息检索等诸多学科。其重点技术在于特征表示和相似性度量。

当针对大数据量进行以图搜图服务时,往往会因为搜索数据量过大而导师搜索速度缓慢。



技术实现要素:

本发明要解决的技术问题在于,克服现有的技术的不足,提供搜索相似图片的方法及系统,能够针对大数据量的图片实现快速的以图搜图服务。

为达到上述技术目的,一方面,本发明提供的搜索相似图片的方法,包括:

将各图片输入至分类器,得到每张图片的特征向量和分属不同类别的概率;

根据各图片分属不同类别的概率,从各类别中为每张图片匹配备选类别;

搜索备选类别与目标图片备选类别之间满足预定条件的图片,作为目标图片的备选图片;

选取特征向量与目标图片特征向量的距离小于预设距离阈值的备选图片,作为目标图片的相似图片。

另一方面,本发明提供的搜索相似图片的系统,包括:

分类器,用于将各图片输入后,得到每张图片的特征向量和分属不同类别的概率;

匹配单元,用于根据各图片分属不同类别的概率,从各类别中为每张图片匹配备选类别;

数据库,用于搜索备选类别与目标图片备选类别之间满足预定条件的图片,作为目标图片的备选图片;

选取单元,用于选取特征向量与目标图片特征向量的距离小于预设距离阈值的备选图片,作为目标图片的相似图片。

在本发明中,通过图片分属不同类别的概率来寻找到相似图片,可以提高搜索图片的效率。另外,通过图片的特征向量来返回相似图片,可以提高搜索图片的相似程度。由此,本发明能够针对大数据量的图片实现快速的以图搜图服务。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例的方法流程示意图;

图2为本发明实施例的结构示意图;

图3为本发明实施例中行键构建和存储图片的流程示意图;

图4为本发明实施例中搜索图片的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明所述的搜索相似图片的方法,包括:

101、将各图片输入至分类器,得到每张图片的特征向量和分属不同类别的概率;

102、根据各图片分属不同类别的概率,从各类别中为每张图片匹配备选类别;

103、搜索备选类别与目标图片备选类别之间满足预定条件的图片,作为目标图片的备选图片;

104、选取特征向量与目标图片特征向量的距离小于预设距离阈值的备选图片,作为目标图片的相似图片。

所述根据各图片分属不同类别的概率,从各类别中为每张图片匹配备选类别,具体包括:

针对当前图片:

1021、将该图片分属不同类别的概率进行降序排列;

1022、选取前n个概率对应的类别作为该图片的备选类别,其中,n≥1。

所述将各图片输入至分类器之前,还包括:

105、将分类器进行训练;

所述从各类别中为每张图片匹配备选类别之后,还包括:

106、根据每张图片的备选类别,将各图片存储至数据库中。

所述根据每张图片的备选类别,将各图片存储至数据库中,具体包括:

针对当前图片:

1061、将该图片的各备选类别的名称按照对应的概率降序排列的顺序拼接成备选标识;

1062、将该图片存储至非关系型分布式数据库hbase中,将备选标识作为该图片的行键,在行键对应的列值中存入该图片的特征向量和图片id。

所述搜索备选类别与目标图片备选类别之间满足预定条件的图片,作为目标图片的备选图片,具体包括:

当n=1,或者,n>1且目标图片备选类别中顺序相邻的类别对应的概率之间的差值大于预设概率阈值时:

1031a、搜索各图片的行键,确定与目标图片的行键相同的图片id;

1033a、根据确定出的图片id,获取对应图片作为目标图片的备选图片;

当n>1,且目标图片备选类别中顺序相邻的类别对应的概率之间的差值小于等于预设概率阈值时:

1031b、将目标图片备选类别的名称修改顺序拼接成改序标识;

1032b、用目标图片的改序标识更新对应的行键;

1033b、搜索各图片的行键,分别确定与目标图片更新前的行键相同的图片id,以及与目标图片更新后的行键相同的图片id;

1034b、根据确定出的图片id,获取对应图片作为目标图片的备选图片。

所述选取特征向量与目标图片特征向量的距离小于预设距离阈值的备选图片,作为目标图片的相似图片,具体包括:

1041、根据目标图片的各备选图片的图片id,获取对应的特征向量;

1042、分别计算每张备选图片的特征向量与目标图片特征向量的距离;

1043、将所述距离小于预设距离阈值的备选图片作为目标图片的相似图片。

如图2所示,本发明所述的搜索相似图片的系统,包括:

分类器21,用于将各图片输入后,得到每张图片的特征向量和分属不同类别的概率;

匹配单元22,用于根据各图片分属不同类别的概率,从各类别中为每张图片匹配备选类别;

搜索单元23,用于搜索备选类别与目标图片备选类别之间满足预定条件的图片,作为目标图片的备选图片;

选取单元24,用于选取特征向量与目标图片特征向量的距离小于预设距离阈值的备选图片,作为目标图片的相似图片。

所述匹配单元22,具体用于:

针对当前图片:

将该图片分属不同类别的概率进行降序排列;

选取前n个概率对应的类别作为该图片的备选类别,其中,n≥1。

所述系统还包括训练单元25、存储单元26和数据库27,其中:

所述训练单元25,用于将分类器进行训练;

所述存储单元26,用于根据每张图片的备选类别,将各图片存储至数据库中。

所述数据库27为hbase;

所述存储单元26,具体用于:

针对当前图片:

将该图片的各备选类别的名称按照对应的概率降序排列的顺序拼接成备选标识;

将该图片存储至非关系型分布式数据库hbase中,将备选标识作为该图片的行键,在行键对应的列值中存入该图片的特征向量和图片id。

所述搜索单元23,具体用于:

当n=1,或者,n>1且目标图片备选类别中顺序相邻的类别对应的概率之间的差值大于预设概率阈值时:

搜索各图片的行键,确定与目标图片的行键相同的图片id;

根据确定出的图片id,获取对应图片作为目标图片的备选图片;

当n>1,且目标图片备选类别中顺序相邻的类别对应的概率之间的差值小于等于预设概率阈值时:

将目标图片备选类别的名称修改顺序拼接成改序标识;

用目标图片的改序标识更新对应的行键;

搜索各图片的行键,分别确定与目标图片更新前的行键相同的图片id,以及与目标图片更新后的行键相同的图片id;

根据确定出的图片id,获取对应图片作为目标图片的备选图片。

所述选取单元24,具体用于:

根据目标图片的各备选图片的图片id,获取对应的特征向量;

分别计算每张备选图片的特征向量与目标图片特征向量的距离;

将所述距离小于预设距离阈值的备选图片作为目标图片的相似图片。

本发明中通过图片分属不同类别的概率来寻找到相似图片,可以提高搜索图片的效率。另外,通过图片的特征向量来返回相似图片,可以提高搜索图片的相似程度。由此,本发明能够针对大数据量的图片实现快速的以图搜图服务。

以下结合应用实例对本发明实施例上述技术方案进行详细说明:

在本实施例中,分类器选用卷积神经网络中的vgg16网络;数据库选用hbase。hbase是一个分布式的、面向列的开源数据库,是一个结构化数据的分布式存储系统。

如图4所示,本实施例所述的搜索相似图片的方法,包括:

索引构建和图片存储:

step1、将vgg16网络进行训练;

在本实施例中,vgg16网络可分类类别数为1000类。

step2、将所有图片,包括待搜索图片和目标图片,输入至vgg16网络中,输出得到每张图片的特征向量和分属不同类别的概率;

vgg16网络生成的各特征向量都是512维度的,生成的类别有1000类别。由此,每张图片输入至vgg16网络后,都会对应生成一个512维度的的各特征向量,以及,1000个概率。

例如,图片a生成的特征向量是a,1000分类的所属分类概率值是p(代表1000个概率值)。

step3、针对当前图片,根据对应的1000个概率,从1000个类别中匹配当前图片的备选类别;

step3.1、将当前图片对应输出的1000个概率按照概率值进行降序排列;

将图片a生成的p中的1000个概率值由大到小进行排序;

step3.2、选取前两个概率对应的类别作为当前图片的备选类别;

在本实施例中,选取的备选类别为分属概率最大的两个类别,即表明该图片最可能所属的两个类别;

取p中前两个概率对应的类别作为图片a的备选类别,并对名称进行记录:class1和class2。

step4、根据当前图片的备选类别,将当前图片存储至hbase中;

step4.1、将该图片的各备选类别的名称按照对应的概率降序排列的顺序拼接成备选标识;

将图片a的class1和class2按照其大小顺序进行拼接,形成备选标识:class1-class2;

step4.2、将该图片的备选标识作为对应rowkey(行键),value(列值)保存该图片的特征向量和id;

将class1-class2作为图片a的rowkey,将a和a(表示图片a的id)存入图片a的value中。

同理,将每张图片存入至hbase中,由此,rowkey的最大数量为1000*1000=100万。如果此时图库中各图片类别分布均匀的话,1亿的数据量对应的value差不多平均100条。

如果某一类别的图片特别多或特别少时,灵活调节作为rowkey的类别数量,将step3.2中由前二分类改为前一分类或前三分类。

在本实施例中,value保存的图片id可以为图片的pid(进程识别符)。

到此,各图片已经完成存储,并且索引也构建完成。在本实施例中,以hbase的rowkey为索引。

本实施例所述的搜索相似图片的方法,包括:搜索:

step5、在hbase中,利用目标图片的rowkey进行搜索,满足预定条件的备选类别所对应的图片为目标图片的备选图片;

建立完成上述索引和存储后,当用户输入一个要搜索的图片b(目标图片)后,得出图片的特征向量a2和前两个分类class1和class2,即,目标图片b的rowkey为class1-class2;

当目标图片的两个备选类别的概率差值大于预设概率阈值时:

step5.1a、检索各图片的rowkey,返回与目标图片为同一rowkey的图片id;

根据class1-class2去hbase中get相应的value值,返回所有rowkey为class1-class2的图片id;

step5.2a、根据确定出的图片id,获取对应图片作为目标图片的备选图片;

根据step5.1a返回的id获取图片b的备选图片;

当目标图片的两个备选类别的概率差值小于等于预设概率阈值时:

step5.1b、将目标图片两个备选类别的名称修改顺序拼接成改序标识;

step5.2b、用目标图片的改序标识更新对应rowkey;

将图片b的rowkey修改为class2-class1;

step5.3b、搜索各图片的行键,分别确定与目标图片更新前的行键相同的图片id,以及与目标图片更新后的行键相同的图片id;

先根据class1-class2去hbase中get相应的value值,返回所有rowkey为class1-class2的图片id;再根据class2-class1去hbase中get相应的value值,返回所有rowkey为class2-class1的图片id;

step5.4b、根据确定出的图片id,获取对应图片作为目标图片的备选图片;

根据step5.3b中两次返回的id,得到图片b的备选图片。

若在step5中返回的备选图片的数量没有满足预设数量阈值,则返回step3.2将class1-class3作为图片b的rowkey去检索,直至满足返回备选图片的需求数量。

在本实施例中,目标图片的两个备选类别的概率差值较小时,表明该图片的分类在两个备选类别之间摇摆,所以为了增加召回的图片数量,可以将两个备选类别的顺序改变后修改目标图片的rowkey进行再次搜索返回图片。

step6、在当前目标图片对应的各备选图片中,选取特征向量与目标图片特征向量的距离小于预设距离阈值的,作为该目标图片的相似图片;

step6.1、根据该目标图片对应的各备选图片的id,获取各备选图片的特征向量;

step6.2、分别计算每张备选图片的特征向量与目标图片特征向量的距离;

step6.3、将所述距离小于预设距离阈值的备选图片作为目标图片的相似图片。

在本实施例中,根基特征向量之间的距离选取相似图片,也可以直接进行向量化点积运行,取出点积运算后,较大的k个结果的图片id,进行图片展现。

本实施例通过训练一个分类卷积神经网络模型,然后将图库中的各图片通过该模型提取特征向量化,将向量化后的前两个主要类别作为hbase的rowkey;然后根据目标图片前两个类别去完全匹配,将得到的结果进行距离比较。由此,本实施例所述方法可以针对大数据量的图片实现快速的以图搜图服务。

本发明实施例提供了搜索相似图片的系统,可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1