一种以图搜图的方法及系统
技术领域
本发明涉及图像搜索
技术领域
,尤其是涉及一种以图搜图的方法及系统。背景技术
随着互联网中的图像数据信息日益增大,用户对图像搜索的需求也在不断提升,以图搜图的搜索方式应用越来越广泛,用户可以通过输入图像在图库中搜索相似图像。
以图搜图的方法是将待搜索图像输入图库,在图库中检索出与待搜索相同或相似的图像。现有技术中,以图搜图的方法需要将待搜索图像和图库中的每张图像进行相似度比较,选择相似度高的图像作为目标图像。当图库中的图像数据较多时,存在耗费算力资源较多、搜索时间较长的问题。
目前,以图搜图方法通常是将待搜索图像与图库中的每张图像依次进行相似度比较,选择相似度较高的图像作为目标图像。当图库中的图像数量达到数万甚至更多时,利用传统以图搜图查的方法查找目标图像,需要耗费大量算力资源(一般需采用配置GPU的图片处理服务器),存在搜索时间较长、搜索效率较低的问题,不能满足用户的需求。
发明内容
本发明的目的是提供一种以图搜图的方法及系统,以解决现有以图搜图的方法中存在耗费算力资源较多、搜索时间较长的技术问题。
本发明的目的,可以通过如下技术方案实现:
获取待搜索图像;
分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度;其中,所述预设图库划分为多个所述类别组,每个所述类别组中包含一个标准图和除标准图外的其他图像;
根据所述相似度确定满足预设条件的若干个目标类别组;
根据所述目标类别组和数据库得到所述目标类别组对应的图像的编号序列;其中,图像的编号、图像所在的类别组及图像与所在类别组的标准图间的相似度作为记录保存在所述数据库中,所述编号序列中各图像编号的排序顺序是基于各图像与所在类别组的标准图间的相似度确定的;
根据所述图像的编号序列,依次从所述预设图库中读取对应的图像作为图像搜索结果。
可选地,所述预设图库的更新过程包括:
分别计算待添加图像与所述预设图库中每个类别组的标准图间的相似度,比较所述相似度与预设的相似度阈值的大小:
若所述相似度大于等于所述相似度阈值,将所述相似度的最大值对应的类别组作为所述待添加图像所在的类别组;
否则,新建一个类别组,将所述待添加图像存入缓冲区并将所述待添加图像作为新建的类别组的标准图,将新建的类别组作为所述待添加图像所在的类别组。
可选地,还包括:
将所述待添加图像的编号、所述待添加图像所在的类别组及对应的所述相似度作为记录保存在所述数据库中。
可选地,分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度包括:
根据图像识别算法对所述图像进行特征分析并提取其特征值,分别对比所述图像的特征值与预设图库中每个类别组的标准图的特征值得到相似度;其中,每个类别组的标准图的特征值是根据图像识别算法对所述标准图进行特征分析并提取得到的。
可选地,根据所述相似度确定满足预设条件的若干个目标类别组包括:
根据所述相似度的大小对类别组进行降序排列,选择前若干个类别组作为目标类别组。
可选地,根据所述目标类别组和数据库得到对应的图像的编号序列包括:
根据所述目标类别组在所述数据库中查找记录,得到所述目标类别组对应图像的编号及所述相似度;
根据所述相似度对所述记录进行降序排序,得到对应的图像的编号序列。
可选地,所述相似度阈值为80%。
本发明还提供了一种以图搜图的系统,包括:
图像获取模块,用于获取待搜索图像;
相似度计算模块,用于分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度;其中,所述预设图库划分为多个所述类别组,每个所述类别组中包含一个标准图和除标准图外的其他图像;
目标类别组确定模块,用于根据所述相似度确定满足预设条件的若干个目标类别组;
编号序列确定模块,用于根据所述目标类别组和数据库得到所述目标类别组对应的图像的编号序列;其中,图像的编号、图像所在的类别组及图像与所在类别组的标准图间的相似度作为记录保存在所述数据库中,所述编号序列中各图像编号的排序顺序是基于各图像与所在类别组的标准图间的相似度确定的;
图像读取模块,用于根据所述图像的编号序列,依次从所述预设图库中读取对应的图像作为图像搜索结果。
可选地,分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度包括:
根据图像识别算法对所述图像进行特征分析并提取其特征值,分别对比所述图像的特征值与预设图库中每个类别组的标准图的特征值得到相似度;其中,每个类别组的标准图的特征值是根据图像识别算法对所述标准图进行特征分析并提取得到的。
可选地,根据所述相似度确定满足预设条件的若干个目标类别组包括:
根据所述相似度的大小对类别组进行降序排列,选择前若干个类别组作为目标类别组。
本发明提供了一种以图搜图的方法及系统,其中方法包括:获取待搜索图像;分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度;其中,所述预设图库划分为多个所述类别组,每个所述类别组中包含一个标准图和除标准图外的其他图像;根据所述相似度确定满足预设条件的若干个目标类别组;根据所述目标类别组和数据库得到所述目标类别组对应的图像的编号序列;其中,图像的编号、图像所在的类别组及图像与所在类别组的标准图间的相似度作为记录保存在所述数据库中,所述编号序列中各图像编号的排序顺序是基于各图像与所在类别组的标准图间的相似度确定的;根据所述图像的编号序列,依次从所述预设图库中读取对应的图像作为图像搜索结果。
有鉴于此,本发明带来的有益效果为:
本发明中的预设图库划分为多个类别组,根据待搜索图像在预设图库中进行以图搜图时,不需要将待搜索图像与图库中的每张图像依次进行相似度比对,仅需将待搜索图像与每个类别组的标准图进行相似度对比,比较次数为预设图库中的类别组个数,减少了所需耗费的算力资源,缩短了搜索图像的时间,提高了图像搜索的效率;本发明通过类别组对大容量图库中的图像进行分类和批量管理,进行以图搜图时,能实现利用小算力资源对大容量图库进行快速搜索。
附图说明
图1为本发明一种以图搜图的方法流程示意图;
图2为本发明一种以图搜图的系统结构示意图。
具体实施方式
本发明实施例提供了一种以图搜图的方法及系统,以解决现有以图搜图的方法中存在耗费算力资源较多、搜索时间较长的技术问题。
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,以下为本发明一种以图搜图的方法的实施例,包括:
S100:获取待搜索图像;
S200:分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度;其中,所述预设图库划分为多个所述类别组,每个所述类别组中包含一个标准图和除标准图外的其他图像;
S300:根据所述相似度确定满足预设条件的若干个目标类别组;
S400:根据所述目标类别组和数据库得到所述目标类别组对应的图像的编号序列;其中,图像的编号、图像所在的类别组及图像与所在类别组的标准图间的相似度作为记录保存在所述数据库中,所述编号序列中各图像编号的排序顺序是基于各图像与所在类别组的标准图间的相似度确定的;
S500:根据所述图像的编号序列,依次从所述预设图库中读取对应的图像作为图像搜索结果。
在步骤S100中,获取用户输入的待搜索图像,用户可以从网络或本地选择一张图像作为待搜索图像,也可以选择预设图库中的图像作为待搜索图像。
本实施例中,在进行以图搜图前,需将预设图库划分为多个类别组,每个类别组中包含一个标准图和除标准图外的其他图像。将图像添加到预设图库中,可以利用闲时算力资源,通过轮询处理对预设图库中的每张图像进行特征分析,并提取其特征值,分别计算图像与预设图库中每个类别组的标准图间的相似度,比较相似度与预设的相似度阈值的大小:
(1)当相似度大于等于预设的相似度阈值时,将相似度的最大值对应的类别组作为图像所在的类别组;同时,将图像的编号、图像所在的类别组及对应的相似度作为记录保存在数据库中,但不将该图像存入SDK或服务器的缓存区;
(2)当相似度小于预设的相似度阈值时,新建一个类别组,将图像作为该类别组的标准图,将新建的类别组作为图像所在的类别组,将图像存入SDK或服务器的缓冲区;同时,将图像的编号、图像所在的类别组、对应的相似度作为记录保存在数据库中。
值得说明的是,由于记录中的相似度是其他图像(同一个类别组中除标准图外的图像)与标准图间的相似度,当某图像作为新建类别组的标准图时,该图像对应记录的相似度值为100%。
下面结合具体例子说明将图库划分为多个类别组的过程:
①当图库中只有一张图像即图像1时,利用图像识别算法对图像1进行特征分析并提取其特征值T1,此时图库中还没有类别组,因此需新建一个类别组FaceID1,将图像1作为类别组FaceID1的标准图,将FaceID1作为图像1所在的类别组,将图像的编号、图像所在的类别组、对应的相似度作为记录保存在数据库中;
值得说明的是,图库中的每个类别组均只有1个标准图,且类别组的标准图一旦确定之后不再变化,类别组FaceID1中只有一个标准图即图像1。
②当图库中有两张图像即图像1和图像2时,首先将图像1划分到类别组FaceID1,接下来需将图像2划分到分类组中;利用图像识别算法对图像2进行特征分析并提取其特征值T2,将T2与类别组FaceID1的标准图的特征值进行比对得到相似度S1:
若S1≥相似度阈值(如80%),因此时图库中只有1个类别组,不需继续进行相似度对比,即图像2所在的类别组为FaceID1,将图像2的编号、所在类别组FaceID1、相似度S1保存到本地数据库中;
若S1<相似度阈值(如80%),则新建一个类别组FaceID2,将图像2作为类别组FaceID2的标准图,图像2所在的类别组为FaceID2;值得说明的是,此时将相似度S1赋值为100%;将图像2的编号、所在类别组FaceID2、相似度S1保存到本地数据库中。
③当图库中有三张图像即图像1、图像2和图像3时,前面已经将图像1、图像2划分到对应的分类组中,接下来需将图像3划分到分类组中。此时有两种可能的情况:
情况1、图像1和图像2属于同一个类别组FaceID1,即当前图库中只有1个类别组FaceID1;
情况2、图像1和图像2分别属于类别组FaceID1和FaceID2,即当前图库中有2个类别组FaceID1和FaceID2;
对于情况1,采用②的方法,将图像3与类别组FaceID1的标准图进行比对得到对应的相似度并进行判断;
对于情况2,将图像3分别与类别组FaceID1、FaceID2的标准图进行相似度比对,具体的,利用图像识别算法对图像3进行特征分析并提取其特征值T3,将T3分别与类别组FaceID1的标准图的特征值T1、FaceID2的标准图的特征值T2进行比对,得到对应的相似度分别为S1和S2:
若S1≥相似度阈值(如80%)且S2≥相似度阈值(如80%),取S1与S2中的最大值,将对应的类别组作为图像3所在的类别组;也就是说,当S1>S2时,图像3所在的类别组为FaceID1,否则,图像3所在的类别组为FaceID2;
若S1≥相似度阈值(如80%)且S2<相似度阈值(如80%),则图像3所在的类别组为FaceID1;
若S1<相似度阈值(如80%)且S2≥相似度阈值(如80%),则图像3所在的类别组为FaceID2;
若S1<相似度阈值(如80%)且S2<相似度阈值(如80%),则新建一个类别组FaceID3,将图像3作为类别组FaceID3的标准图,图像3所在的类别组为FaceID3。
以此类推,按照这种方法,能确定图库中每张图像所在的类别组,假设将图库中的图像分为K个类别组。
值得说明的是,所有添加到图库中的每张图像都有其对应的类别组,每张图像的编号、类别组及对应的相似度作为记录保存在本地数据库中。
在步骤S200中,分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度;其中,所述预设图库划分为多个所述类别组,每个所述类别组中包含一个标准图和除标准图外的其他图像。
本实施例中,获取用户输入的待搜索图像,此时图库中已有K个类别组,每个类别组有一个标准图,图库中的每张图像分属于其中一个类别组。分别计算待搜索图像与预设图库中每个类别组的标准图间的相似度,具体为:根据图像识别算法对待搜索图像进行特征分析并提取其特征值,将该特征值与每个类别组对应的标准图的特征值进行比对,得到对应的K个相似度。
值得说明的是,在新建类别组时,将该类别组的标准图保存在SDK或服务器缓冲区,并保存该类别组的标准图的特征值;其中,类别组的标准图的特征值是根据图像识别算法进行特征分析并提取得到的。
S300:根据所述相似度确定满足预设条件的若干个目标类别组。
在步骤S300中,可以根据相似度的大小对得到的K个相似度进行降序排列,利用TOP N机制选择相似度较大的前M个类别组作为目标类别组;其中,M为自然数且1≤M≤K。
可以理解的是,用户还可以根据实际需要,设置以图搜图时的查询阈值来控制所选择的目标类别组数量。例如,设置查询阈值为50,表示选择的目标类别组个数最多为50个,当图库中满足预设条件的目标类别组个数少于50时,则选择实际数量的目标类别组个数,即有多少个类别组满足预设条件就选择这些类别组作为目标类别组。
S400:根据所述目标类别组和数据库得到所述目标类别组对应的图像的编号序列;其中,图像的编号、图像所在的类别组及图像与所在类别组的标准图间的相似度作为记录保存在所述数据库中,所述编号序列中各图像编号的排序顺序是基于各图像与所在类别组的标准图间的相似度确定的。
在步骤S400中,根据TOP N机制得到的M个目标类别组,已经是根据待搜索图像与类别组的标准图间的相似度降序排列的;对于同一个目标类别组中的图像,根据其他图像(同一个类别组中除标准图之外的图像)与类别组的标准图间的相似度大小进行降序排列,得到M个目标类别组对应的图像的编号序列。
S500:根据所述图像的编号序列,依次从所述预设图库中读取对应的图像作为图像搜索结果。
本实施例中,在进行以图搜图查找时,将用户输入的待搜索图像只需要与每个类别组FaceIDi(1≤i≤K)的标准图比较,返回相似度较大的前M个类别组作为目标类别组,根据目标类别组在数据库中检索出目标类别组所对应的记录,根据记录中的相似度大小对记录进行降序排列,从排好序的记录中选择对应的图像的编号,得到M个目标类别组对应的图像的编号序列。本实施例通过合理地限制类别组的数量,利用千百个类别组也可以实现对万个以上的图像进行管理,可以大量节省算力资源,实现了利用小算力资源对大容量图库进行快速搜索。
本实施例提供的以图搜图的方法,充分利用服务器闲时的算力资源将图库中的图像划分为多个类别组,每个类别组包含一个标准图,一个类别组中包含一个或多个图像,根据待搜索图像在预设图库中进行以图搜图时,不需要将待搜索图像与图库中的每张图像依次进行相似度比对,仅需将待搜索图像与每个类别组的标准图进行相似度对比,比较次数仅为预设图库中的类别组个数,减少了所需耗费的算力资源,缩短了搜索图像的时间,提高了图像搜索的效率。本实施例通过类别组对大容量图库中的图像进行分类和批量管理,进行以图搜图时,能实现利用小算力资源对大容量图库进行快速搜索。
本实施例中,通过类别组可以对大容量图库中的图像进行分类和批量管理,避免了每张图像都在服务器的缓存区中占用库容量的问题,缓解了算法库容量限制的问题,能充分利用的算法服务器闲时的算力资源,实现了各时间段内的纵向负载均衡。
请参阅图2,本发明还提供了一种以图搜图的系统的实施例,包括:
图像获取模块,用于获取待搜索图像;
相似度计算模块,用于分别计算所述待搜索图像与预设图库中每个类别组的标准图间的相似度;其中,所述预设图库划分为多个所述类别组,每个所述类别组中包含一个标准图和除标准图外的其他图像;
目标类别组确定模块,用于根据所述相似度确定满足预设条件的若干个目标类别组;
编号序列确定模块,用于根据所述目标类别组和数据库得到所述目标类别组对应的图像的编号序列;其中,图像的编号、图像所在的类别组及图像与所在类别组的标准图间的相似度作为记录保存在所述数据库中,所述编号序列中各图像编号的排序顺序是基于各图像与所在类别组的标准图间的相似度确定的;
图像读取模块,用于根据所述图像的编号序列,依次从所述预设图库中读取对应的图像作为图像搜索结果。
本实施例通过图像获取模块获取待搜索图像,通过相似度计算模块分别计算待搜索图像与预设图库中每个类别组的标准图间的相似度,通过目标类别组确定模块得到若干个目标类别组,通过编号序列确定模块在数据库中进行查找得到对应的图像的编号序列,通过图像读取模块从图库中读取相应的图像作为图像搜索结果。
本实施例中的预设图库划分为多个类别组,根据待搜索图像在预设图库中进行以图搜图时,不需要将待搜索图像与图库中的每张图像依次进行相似度比对,仅需将待搜索图像与每个类别组的标准图进行相似度对比,比较次数为预设图库中的类别组个数,减少了所需耗费的算力资源,缩短了搜索图像的时间,提高了图像搜索的效率;本发明通过类别组对大容量图库中的图像进行分类和批量管理,进行以图搜图时,能实现利用小算力资源对大容量图库进行快速搜索。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。