CN111190893B - 建立特征索引的方法和装置 - Google Patents
建立特征索引的方法和装置 Download PDFInfo
- Publication number
- CN111190893B CN111190893B CN201811360671.3A CN201811360671A CN111190893B CN 111190893 B CN111190893 B CN 111190893B CN 201811360671 A CN201811360671 A CN 201811360671A CN 111190893 B CN111190893 B CN 111190893B
- Authority
- CN
- China
- Prior art keywords
- information
- feature
- dimension
- layer
- cluster
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000015654 memory Effects 0.000 claims description 82
- 238000010586 diagram Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 237
- 238000013461 design Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了建立特征索引的方法和装置,所述方法包括:接收输入的索引规则信息;其中,索引规则信息包括特征类型信息和算法类型信息中的一种或多种;根据索引规则信息为特征集合建立特征索引;将建立的特征索引作为特征集合的当前特征索引。本申请能通过在线变更特征索引的结构来满足检索需求,动态变化范围覆盖当前支持的所有特征类型和算法类型的组合,避免需要每次检索需求变更都需要离线建立和添加特征索引的问题,减少了维护成本。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种建立特征索引的方法和装置。
背景技术
在基于特征的场景中,由于每种算法格式、字段个数、字段类型、字段长度不同,传统数据库的数据存储引擎在设计之前检索需求,无法对应检索需求频繁发生变更的情况。例如:当前的检索需求是提高查全率,采用的检索方法为将多种算法得到的检索结果取并集,然后业务需求变更后减少检索时间,采用的检索方法为:将多种算法中的某个算法的检索结果为准,从而能达到提高检索速度的效果,此时当前的提高查全率的业务需求的特征索引需要重新进行设计,在特征索引重新设计后,需要暂停当前的系统,通过离线的方式将新的特征索引添加到检索系统中,然后重新启动系统加载新的特征索引以执行新的检索任务。
综上所述,目前的特征索引的结构在面对检索需求变化的情况下,每次检索需求变更都需要重新设计特征索引,离线开发和重加载特征索引的耗时较长,不便于维护。
发明内容
本发明实施例所要解决的技术问题在于,提供一种生成特征索引的方法和装置,实现了通过在线的方式根据检索需求建立特征集合的特征索引,以适应检索需求的频繁变更。
第一方面,本申请提供了一种建立特征索引的方法,包括:接收输入的索引规则信息,索引规则信息包括特征类型信息和算法类型信息中的一种或多种,根据索引规则信息为特征集合建立特征索引,将建立的特征索引作为特征集合的当前特征索引。
其中,特征用于表示图片的属性,特征的表现形式可以是一个向量或矩阵,通常利用特征的相似度来进行图像识别。特征可以由多个子特征构成,子特征为特征的一个子集,例如:特征为颜色、大小和纹理,子特征为颜色。特征类型信息表示建立特征索引时使用的特征类型,;算法类型信息表示建立特征索引时使用的算法类型,例如:现有的不同类型的聚类算法。通过特征类型和算法类型的组合来检索特征索引,可以满足不同的检索需求。特征索引是一个树状图,父节点的所有子节点构成一种特征索引结构,用于快速的从父节点特征索引到对应的子节点,然后子节点之后的所有字节点再次构成一个特征索引结构,逐层的从根节点到叶子节点检索,最终检索到所需的特征。其中,特征索引的叶子节点中存储有一个指针,指针用于指向存放多个特征的内存空间,多个特征属于同一聚类。
其中,在为特征集合建立特征索引之后,可以将当前的特征索引指针指向建立的特征索引,这样在下次进行检索操作是,使用建立的特征索引进行检索,以满足变更后的检索需求。
在一种可能的设计中,特征索引为一个树状图,特征索引包括维度信息层和聚类信息层,维度信息层包括多个维度节点,维度节点包括特征类型信息和算法类型信息中的一种或多种,不同的维度节点中的特征类型信息和算法类型信息可以相同或不相同。聚类信息层包括多个聚类信息,聚类信息为特征索引的叶子节点,聚类信息对应一个聚类,聚类信息中存储有指针,指针指向存放该聚类中的多个特征的特征辅助信息的内存区域,特征辅助信息包括摄像头标识、拍摄日期、目标标识中的一种或多种。所述特征索引层为聚类信息层的上层。维度节点下的聚类信息的数量可以相同,也可以不相同。对于拥有相同的父节点的多个维度节点而言,多个维度节点的内容是不相同的。
通过以上的描述,可以通过输入特征类型信息和算法类型信息自定义特征索引的维度信息层,可以在面对多样化的检索需求时,通过在线变更特征索引的结构来满足检索需求,动态变化范围覆盖当前支持的所有特征类型和算法类型的组合,避免需要每次检索需求变更都需要离线建立和添加特征索引的问题,减少了维护成本。
在一种可能的设计中,维度节点还包括逻辑关系信息,逻辑关系信息表示具有相同的父节点的维度节点之间的逻辑关系,通过具有相同的父节点的维度节点下的子节点(聚类信息)得到的检索结果根据该逻辑关系进行运算。
在一种可能的设计中,特征索引的层数为两层,维度节点还包括一个或多个特征辅助信息,特征辅助信息包括但不限于摄像头标识、拍摄日期中的一种或多种。
在一种可能的设计中,特征索引还包括一个或多个特征辅助信息层,特征辅助信息层为维度信息层的上层。特征辅助信息层之间,以及特征辅助信息层和维度信息层之间通过哈希映射的方式进行关联。
在一种可能的设计中,特征索引为树状图,特征索引包括特征辅助信息层和聚类信息层,特征辅助信息层为聚类信息层的上层,即特征辅助信息层中的节点的子节点位于聚类信息层中。特征辅助信息层包括多个特征辅助信息节点,特征辅助信息节点包括特征辅助信息和N个维度信息,维度信息包括算法类型信息、聚类数量信息、维度地址信息中的一种或多种,维度地址信息用于表示维度信息对应的多个聚类信息的地址范围。聚类信息层的聚类信息存储指针,指针用于指示存储多个特征的特征辅助信息的内存空间,多个特征为聚类信息对应的聚类中的节点。
在一种可能的设计中,维度信息还包括逻辑关系信息,逻辑关系信息表示维度信息对应的多个聚类信息之间的运算关系。
在一种可能的设计中,特征索引为树状图,特征索引包括特征辅助信息层、维度信息层和聚类信息层,特征辅助信息层包括多个辅助节点,特征辅助信息节点包括特征辅助信息和N个第一维度信息,第一维度信息包括算法类型信息、特征类型信息和逻辑关系信息中的一种或多种;所述特征辅助信息节点下具有N个维度节点,N个维度节点和N个第一维度信息一一对应,维度节点包括聚类数量信息。
在一种可能的设计中,特征索引为树状图,特征索引包括维度定义层、特征辅助信息层、维度信息层和聚类信息层,维度定义层包括多个维度定义节点,同一个维度定义节点下的特征辅助信息节点的映射相同的多个维度节点。
在一种可能的设计中,对于具有同一父节点的多个维度节点来说,磁盘中包括特征索引表,特征索引表行包括特征标识和特征在多个维度节点中各个维度节点中所属的聚类的标识信息,父节点对应M个特征,特征索引表存储的每行存储一个特征,特征索引表具有M行,每行还存储特征在不同的维度节点下所属的聚类。
在一种可能的设计中,算法类型信息可以用比特组来表示。
第二方面,本申请提供了一种建立特征索引的装置(简称装置),该装置具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
在一个可能的设计中,终端设备的结构中包括收发器和处理器,所述收发器被配置为接收输入的索引规则信息;其中,所述索引规则信息包括特征类型信息和算法类型信息中的一种或多种。所述处理器根据所述索引规则信息为特征集合建立特征索引;将建立的所述特征索引作为所述特征集合的当前特征索引。
本申请又一方面提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面至第一方面的各个可能的实施方式中任意一项所述的方法。
本申请又一方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面至第一方面的各个可能的实施方式中任意一项所述的方法。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是本发明实施例提供的一种媒体内容检索系统的架构图图;
图2是本发明实施例提供的一种特征索引的结构示意图;
图3是本发明实施例提供的一种特征索引的又一结构示意图;
图4是本发明实施例提供的一种特征索引的又一结构示意图;
图5是本发明实施例提供的一种更新特征索引的流程示意图;
图6是本发明实施例提供的一种建立特征索引的方法的流程示意图;
图7是本发明实施例提供的一种特征索引的又一结构示意图
图8是本发明实施例提供的一种特征索引的又一结构示意图;
图9是本发明实施例提供的一种特征索引的又一结构示意图;
图10是本发明实施例提供的一种特征索引的又一结构示意图;
图11是本发明实施例提供的一种特征索引的又一结构示意图;
图12是本发明实施例提供的一种特征索引的又一结构示意图;
图13是本发明实施例提供的一种特征索引的又一结构示意图;
图14是本发明实施例提供的一种特征索引的又一结构示意图;
图15是本发明实施例提供的一种特征索引的又一结构示意图;
图16是本发明实施例提供的一种特征索引的又一结构示意图;
图17是本发明实施例提供的一种特征索引的又一结构示意图;
图18是本发明实施例提供的一种特征索引的又一结构示意图;
图19是本发明实施例提供的一种特征索引的又一结构示意图;
图20是本发明实施例提供的一种特征索引的又一结构示意图;
图21是本发明实施例提供的一种装置的结构示意图;
图22是本发明实施例提供的一种装置的另一结构示意图。
具体实施方式
图1是本发明实施例提供的媒体内容检索(media content search,MCS)系统的结构示意图,在本发明实施例中,MCS系统包括MCS业务层、存储检索系统、数据存储引擎和数据分析系统。MCS业务层支持多种业务:特征提取、检索、碰撞和聚类等,特征提取和聚类为检索和碰撞提供数据。检索是直接与用户进行交互的,通过输入的图片特征与特征集合中的特征进行匹配查询到最相似的图片。碰撞是一种特殊的检索,输入是特征集合中所有的图片。MCS适配器是MCS系统的接口层,用于连接业务层和存储检索系统,MCS业务层可以通过MCS适配器对存储检索系统进行插入(insert)、扫描(scan)、检索(search)和管理(manage)等操作。存储检索系统包括分布式检索系统和数据存储引擎,分布式检索系统包括多个分布式节点,分布式系统的主要用于多引擎管理和集群管理等功能,数据存储引擎主要用于维护特征集合中的特征索引,包括特征索引的建立、更新和删除等操作。特征集合可以数据库的形式来表示。
其中,特征集合用于存储多个特征,不同的图片具有不同的特征,特征集合可以位于磁盘中。图片的相似程度可以用特征的相似度来衡量。
其中,特征索引为层次化的索引,即特征索引为树状图,特征索引包括K个特征辅助信息层和聚类信息层,K≥0且K为整数,特征辅助信息层包括一个或多个特征辅助信息;聚类信息层中包括一个或多个聚类信息,聚类信息为特征索引的叶子节点。特征索引中的节点存储在内存空间中,内存空间的大小可根据需要进行设置,本实施例不作限制。特征辅助信息包括但不限于特征的摄像头ID、拍摄时间和地理位置信息等。聚类信息用于指示一个聚类中的一个或多个特征。聚类信息层为特征索引的最后一层,聚类信息为特征索引的叶子节点。
其中,K=0时,特征索引的层数仅为1,在这种情况下,一个或多个特征辅助信息层可以耦合在聚类信息层中,即聚类信息还包括一个或多个特征辅助信息。在本发明的实施例中,特征索引可以位于内存中。层次化是索引的一种常用的表现形式,在需要检索时,通过特征索引的最上层,一层的往下检索,最终检索到特征索引中的叶子节点(即聚类信息),输出聚类信息指示的聚类中的一个或多个特征。
参见图2,为本发明实施例提供的一种特征索引的结构示意图,在本实施例中K=2,特征索引包括摄像头标识层、日期层和聚类信息层,摄像头标识层和日期层为特征辅助信息层,摄像头标识层中包括n个摄像头ID:摄像头ID1~摄像头IDn。日期层中包括多个日期,其中,摄像头ID2映射m个日期:日期1~日期m,其他摄像头ID映射的一个或多个日期未画出。聚类信息层中包括多个聚类信息,聚类信息存储在特征索引内存单元阵列,特征索引内存单元阵列为内存中的形成多行列的内存单元的阵列。如图2所示,日期1映射特征索引内存单元阵列,特征索引内存单元阵列的每行对应一个聚类,每列对应一个算法(例如:聚类算法或检索算法),该特征索引内存单元阵列中包含16×1024个内存单元,每个内存单元对应1个聚类,例如:第一行第一列的内存单元对应采用算法1的聚类1。内存单元中存储指针,指针指向用于存储聚类中的一个或多个特征的存储属性信息的内存空间,例如:第一行第一列的内存单元中的指针指向用于存储聚类1中的一个或多个特征的存储属性信息的内存空间,存储属性信息包括但不限于目标标识、时间戳和磁盘地址信息中的一种或多种,磁盘地址信息表示聚类1中的一个或多个特征在磁盘中的地址。进一步的,内存单元中还存储有特征内存空间大小和特征数量等信息,特征内存空间大小表示用于存储聚类中的一个或多个特征的存储属性信息的内存空间的大小,特征数量表示聚类中的一个或多个特征的数量。
下面针对图3中具体的实施例来说明本发明实施例的检索过程:特征索引包括摄像头标识层、日期层和聚类信息层,摄像头标识层包括摄像头ID1~摄像头ID4,日期层包括多个日期,其中摄像头ID2映射日期1~日期4,摄像头ID3映射日期1~日期4,聚类信息层包括多个聚类信息,其中,摄像头ID2下的日期1映射16×1024个聚类信息:1cl1~1cl1024、2cl2~2cl1024、…、16cl1~16cl1024,聚类信息层中的聚类信息以连续的形式分布。聚类信息为叶子节点,聚类信息用iclj来表示,i表示算法的序号,clj表示聚类的序号,例如:1cl2表示算法1的聚类2。
利用图3的特征索引进行检索,假设输入图片的特征辅助信息为摄像头ID2和日期1,然后经过算法1~算法16进行聚类运算后得到16个聚类信息,16个聚类信息对应16个聚类,每个聚类包含一个或多个特征,在算法1、3、…、16中对应聚类1,算法1、3~16的聚类1包含特征10和特征15,算法2中也对应聚类1,算法2中的聚类1包含特征10、特征15和特征17,将算法1~算法16对应的聚类中包含的特征取并集得到最终的检索结果为特征10、特征15、特征17,然后将上述3个特征根据与输入图片的特征距离进行排序。
其中,如果发现算法1~算法16的检索结果取并集之后的特征的数量太多,检索过程耗时较长,经过测试发现算法1对检索结果的影响最大,决定以算法1的检索结果为准进行检索,以提高检索速度,此时需要重新设计特征索引,重新设计的特征索引如图4所示,然后通过离线的方式将新的特征索引添加到内存中,利用新的特征索引进行检索。检索需求发生变更时生成特征索引的过程可参照图5所示。
根据上面的描述可以看出,在检索需要发生变更时生成特征索引的过程存在以下问题:
1、图5中的每个步骤都比较耗时,离线的开发和安装都需要开发者参与,维护代价大。
2、如果需要支持多种不同检索需求时,磁盘中还存储多种不同的特征索引,由于磁盘容量的限制,磁盘中不能存储太多的特征索引,在磁盘中存储的特征索引的数量过多时,需要卸载不常用的特征索引,由于磁盘容量等原因,系统中不可能同时存在太多聚类索引类型,所以新的需求所对应的聚类索引开发完成后,可能会需要卸载掉当前不常用的聚类索引,所以当前方案不能用于业务太频繁的微调的场景。但实际场景往往是一个业务频繁微调的过程,而现在系统只能通过这种离线的方式达成目标,频繁微调可能导致业务长时间不可用,所以需要新的方案去适应业务频繁微调的场景。
3、由于业务微调可能是需要涉及所有的算法和特征组合,而算法和特征的组合往往存在千万种以上,这种设计无法涵盖当前所有的可能的算法和特征组合(设计千万种以上的存储引擎不切实际)。
为了解决上述问题,本发明实施例提供了一种建立特征索引的方法,参见图6至图7的实施例。
参见图6,为本发明实施例提供的一种建立特征索引的方法的流程示意图,在本发明实施例中,所述方法包括:
S601、接收输入索引规则信息,索引规则信息包括特征类型信息和算法类型信息中的一种或多种。
具体的,特征用来描述图片属性,特征的表现形式可以是一个向量矩阵或张量。特征可以有多个子特征构成,子特征为特征的一个子集;例如:图片的特征为颜色、大小和纹理,子特征为颜色。特征类型信息表示建立特征索引时使用的特征类型,特征类型可以是一个或多个子特征,特征类型根据检索需求来确定。算法类型信息表示建立特征索引时使用的算法类型,算法类型可以聚类算法或检索算法。通过不同的算法类型和特征类型的组合可满足不同的检索需求。
在一种可能的实施方式中,可采用直接的方式输入索引规则信息,例如:通过字符串的方式在输入算法类型信息、特征类型信息和逻辑关系信息。在另一种可能的方式中,可通过间接的方式输入检索需求信息,然后根据预设的转换规则将检索需求信息转换为索引规则信息,例如:显示一个图形界面,图形界面上包括检索图片数、检索时间等可配置项,可配置项可表现为一个滑块,用户通过拖动滑块选择具体的检索图片数和检索时间中的一种或多种,然后根据预设的转换规则得到选择的检索图片数和检索时间对应的索引特征规则信息。
S602、根据索引规则信息为特征集合建立特征索引。
具体的,特征索引为一个树状图,特征索引的层数至少为两层,算法类型信息可以是单独的层,也可以与其他特征辅助信息耦合成一个层。其中,特征类型信息可以位于一个单独的层,也可以与其他特征辅助信息耦合成一个层。或者,特征类型信息和算法类型信息可以耦合成一个层。特征辅助信息表示特征的相关信息,例如:摄像头标识、日期和地理位置信息中的一种或多种。
其中,特征索引包括聚类信息层,聚类信息层包括多个聚类信息,聚类信息为特征索引的叶子节点,不同的聚类信息对应不同的聚类,每个聚类中包含一个或多个特征。聚类信息中存储有指针和对应的聚类中的特征的数量,指针指向用于存储该聚类中的一个或多个特征的存储属性信息的内存空间,存储属性信息包括该一个或多个特征的磁盘地址信息。
在一种可能的实施方式中,数据存储引擎中还设置有特征索引列表,特征索引列表用于存储一个或多个特征索引,特征索引列表可设置内存或磁盘中。在检索需求发生变更时,首先根据检索需求在内存的特征索引列表中查询是否存在索引规则信息对应的特征索引,若没有继续在磁盘的特征索引列表中查询是否存在索引规则信息对应的特征索引,若没有则根据索引规则信息建立特征索引,将建立的特征索引添加到内存和磁盘中的特征索引列表中,然后将特征索引指针指向建立的特征索引列表。其中,若在内存的特征索引列表中查询到与索引规则信息对应的特征索引,直接将当前的特征索引指针指向内存中的特征索引;若在磁盘的特征索引列表中查询到与索引规则信息对应的特征索引,将磁盘中的特征索引缓存到内存中,然后将特征索引指针指向内存中的特征索引。
其中,由于内存中不可能存储数量太多的特征索引,本发明实施例记录内存中的各个特征索引的最近使用时间和使用频率,在需要淘汰内存中的特征索引时,根据最近使用时间和使用频率淘汰一个或多个特征索引,内存中的淘汰算法可参照现有的最少最近使用算法、先进先出算法、最近未使用算法等,本发明不作限制。
其中,特征集合中插入特征或删除特征时,当前的特征索引相应的需要相应的进行重构,根据特征索引中的从上到下依次进行更新。在配置特征索引列表的情况下,需要将特征索引列表中的各个特征索引进行更新。
下面对特征索引的几种结构进行说明:
实施例a:特征索引包括维度信息层和聚类信息层,维度信息层为聚类信息层的上层,聚类信息层中的节点为叶子节点;维度信息层包括一个或多个维度信息,维度信息包括包括特征类型信息和算法类型信息中的一种或多种;聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征。
具体的,聚类信息为特征索引的叶子节点,每个聚类信息对应一个聚类,聚类中包含一个或多个特征,聚类信息用于指示该聚类中的一个或多个特征。例如:聚类信息包括指针,指针指向用于存储该聚类中的一个或多个特征的存储属性信息的内存空间,即指针为一个内存地址信息,存储属性信息包括磁盘地址信息。进一步的,聚类信息还包括该内存空间的大小,聚类中的特征数量等信息。其中,不同的维度信息映射的聚类信息的数量可能相同,也可能不相同。例如:维度信息1映射1024个聚类信息,表示对应1024个聚类;维度信息2映射256个聚类信息,表示对应256个聚类。
其中,特征辅助信息包括摄像头标识、日期和地址位置信息中的任意一种,或其他的信息,本实施例不作限制。
其中,特征索引中的父节点还包括映射的一个或多个子节点的内存地址信息,父节点和子节点之间可采用hashmap的方式来映射,即内存地址信息为通过哈希运算得到的地址信息。例如:维度信息1映射聚类信息1~聚类信息1024,那么维度信息1还包括聚类信息1~聚类信息1024的内存地址信息,聚类信息1~聚类信息1024在内存中采用连续的方式进行排列,该内存地址信息可采用首地址+偏移量的方式来表示。
举例说明,图片的总特征为F=[F1,F2],F1和F2为子特征。数据存储引起支持的聚类算法类型为C1~C16,一共16中聚类算法。在维度信息中没有指定逻辑关系信息时,维度之间的逻辑关系可以为or。
参见图7,为本发明实施例提供的一种特征索引的结构示意图,特征索引包括维度信息层和聚类索引层,维度信息层包括的维度信息包括2个维度信息:or(C1,[F1,F2])、or(C2,[F1,F2]),聚类索引层包括2028个聚类信息,or(C1,[F1,F2])映射cl1~cl1024,or(C2,[F1,F2])映射cl1`~cl1024`。该特征索引偏重于召回率的设计,维度信息or(C1,[F1,F2])表示算法类型为C1,特征类型为F1和F2,逻辑关系为or。or(C2,[F1,F2])表示算法类型为C2,特征类型为F1和F2,逻辑关系为or,经过两个维度信息的搜索结果取并集。
参见图8,为本发明实施例的另一种特征索引的结构示意图,特征索引包括维度信息层和聚类信息层,维度信息层包括两个维度信息:and(C1,F1)和and(C1,F2),聚类信息层包括2048个聚类信息,and(C1,F1)映射cl1~Cl1024,and(C1,F2)映射cl1`~cl1024`。该特征索引偏重于快速检索的设计。and(C1,F1)表示算法类型为C1,特征类型为F1,逻辑关系为and;and(C1,F2)表示算法类型为C1,特征类型为C2,逻辑关系为and,经过两个维度信息的检索结果之间取交集。
参见图9,为本发明实施例提供的另一种特征索引的结构示意图,特征索引包括维度信息层和聚类信息层,维度信息层包括17个维度信息:or(C1,F1)~or(C16,F1)、or(C1,F2),聚类信息层包括多个聚类信息,其中,or(C1,F1)~or(C16,F1)分别映射1024个聚类信息,or(C1,F2)映射256个聚类信息,例如:or(C1,F1)映射cl1~cl1024,or(C1,F2)映射cl1`~cl1024`。该特征索引偏重于提高特征F1的召回率和准确率。
参见图10,为本发明实施例提供的另一种特征索引的结构示意图,特征索引包括维度信息层和聚类信息层,维度信息层包括48个维度信息:(F1,C1)~(F1,C16)、(F2,C1)~(F2,C16)、([F1,F2],C1)~([F1,F2],C16)。聚类信息层包括多个聚类信息,每个维度信息映射1024个聚类信息,例如:(F1,C1)映射cl1~cl1024,(F2,C1)映射cl1`~cl1024`。该特征索引偏重于最高召回率的设计,在维度信息中,(F1,C1)等价于(C1,F1),即维度信息中的多种类型的信息满足交换律。
在本发明的实施例中,维度信息层中的多个维度信息可使用一个唯一的key来表示,例如:对于16-1中的维度信息层,key=((C1,[F1,F2])or(C2,[F1,F2])),其中,维度信息层的不同类型的参数的排序最好保持一致,即维度信息中统一的定义为(F,C)或(C,F),不要出现(F,C)和(C,F)同时出现的情况,以减少识别维度信息层所消耗的时间。
在一种可能的实施方式中,特征索引的层数为两层,即特征索引仅包含维度信息层和聚类信息层,维度信息除包括算法类型信息、特征类型信息和逻辑关系信息中的一种或多种,还可以包括一个或多个特征辅助信息,例如:维度信息还包括摄像头ID、日期和地址位置信息中的一种或多种。
在一种可能的实施方式中,特征索引还包括:一个或多个特征辅助信息层,特征辅助信息层包括特征辅助信息,特征辅助信息包括摄像头标识、日期和地址位置信息的一种或多种。一个或多个特征辅助信息层为维度信息的上层。
例如:参将图11所示,为本发明实施例提供的一种特征索引的结构示意图,在该特征索引中,特征索引从上到下的层次关系为:摄像头标识层、日期层、维度信息层和聚类信息层,摄像头标识层包括摄像头ID1、摄像头ID2、摄像头ID3和摄像头ID4,日期层包括多个日期,其中摄像头ID2映射日期1、日期2、日期3和日期4,摄像头ID3映射日期1、日期2、日期3和日期4。维度信息层包括多个维度信息,其中,日期1映射维度信息1~维度信息n,日期2映射维度信息1~维度信息n1,n和n1为大于0的整数。聚类信息层包括多个聚类信息,其中,维度1映射c11~cl1024,维度n映射cl1`~cl1024`。
在一种可能的实施方式中,特征集合中插入新的特征数据或删除已有的特征数据时,当前的特征索引需要进行重构。在设置有特征索引列表的情况下,特征索引列表中的各个特征索引也相应的需要进行重构。
参见图12,图12以插入摄像头ID2对应的多个特征为例,根据插入的特征的数量分配内存空间,重构当前的特征索引的过程进行说明:首选在摄像头ID层中插入摄像头ID2,然后日期层中插入摄像头ID对应的日期1~日期4,在维度信息层中插入日期1~日期4。同一特征索引中每个日期映射相同的一个或多个维度信息,即摄像头ID3下的日期1映射维度信息1~维度信息n,摄像头ID2下的日期1~日期4也映射维度信息1~维度信息n。根据上述的规则,在维度信息层中为摄像头ID2下的日期1~日期4均映射维度信息1~维度信息n,对于每个维度信息,根据维度信息指示的算法类型、特征类型和逻辑关系中的一种或多种进行聚类运算得到特征所属的聚类,根据特征所属的聚类生成聚类信息,将生成的聚类信息添加到聚类信息层中。
其中,删除特征的过程可插入类似,只需要删除内存和磁盘中的特征和特征辅助信息,并重构特征索引。
参见图13,图13描述了根据特征索引进行检索的过程,假设在检索时输入的特征的辅助信息为:摄像头ID2和日期1,根据摄像头ID2和日期1查询到对应的维度信息为:or(C1,F1)和or(C2,F1),or(C1,F1)表示算法类型为F1,特征类型为C1,逻辑关系为或;or(C2,F1)表示特征算法类型为C1,特征类型为F1,逻辑关系为或。将输入的特征根据算法类型C1和特征类型F1进行聚类运算后得到该特征属于聚类cl2,然后将输入的特征根据算法类型C2和特征F2进行聚类运算后得到该特征属于聚类cl1`,聚类cl2包含特征1、特征4和特征9,聚类cl1`包含特征3、特征1和特征10,将两个聚类cl2和聚类cl1`求与后得到最终的检索结果为特征1、特征4、特征9、特征3和特征10,分别计算检索结果中的5个特征与输入的特征的距离,根据距离进行升序或降序排列。
实施例b:特征索引采用隐式的方式设置维度信息层,特征索引包括特征辅助信息层和聚类信息层,特征辅助信息层包括一个或多个混合信息,混合信息包括特征辅助信息和N个维度信息,N个维度信息包括算法类型信息和特征类型信息中的一种或多种;聚类信息层包括一个或多个聚类信息,聚类信息用于指示一个聚类中的一个或多个特征,混合信息映射的多个聚类信息划分为N组聚类信息,N个维度信息和所述N组聚类信息为一一对应的关系,N为大于0的整数。
举例说明,图片的总特征为F=[F1,F2],数据存储引擎支持的算法类型为C1~C16,可根据不同的检索需求组合特征类型和算法类型。
图14为本发明实施例提供的一种特征索引的结构示意图,在本发明实施例中,所述特征索引包括摄像头标识层、日期层和聚类信息层,摄像头标识层包括两个摄像头ID:摄像头ID1和摄像头ID2,日期层包括多个混合信息,其中摄像头ID1映射混合信息1。聚类信息层包括多个聚类信息,混合信息1映射两组聚类信息:cl1~cl1024和cl1`~cl1024`。混合信息1包括两组维度信息,两组维度信息分别映射cl1~cl1024和cl1`~cl1024`。两组维度信息的具体形式可参照图21中的描述,两组维度信息中的参数描述如下:
key-ptr表示一个指向key(索引规则信息)的指针,key表示算法类型信息和特征类型信息,可通过key来表示两组维度信息中的算法类型信息和特征类型信息。算法类型信息和特征类型信息分别表示为:(C1,F1)和(C1,F2)。
key-val-ptr表示一个指向聚类(中心)数量的指针,映射的两组聚类信息中聚类数量分别为1024个和256个。
index-ptr表示一个指向维度信息映射的一组聚类信息的指针,指针可采用首地址+地址偏移量来表示,或者采用地址区间来表示,本实施例不作限制。
logic-ptr表示指向两个维度信息之间的逻辑关系的指针,两个维度信息之间的逻辑关系为or。其中,维度信息中也可以不包括逻辑关系信息,在这种情况下,维度信息之间的逻辑关系信息为默认的逻辑关系,例如:求并集或求合集。
其中,混合信息中还可以包括索引类型和索引列表,索引类型表示维度信息层的索引类型,而索引列表表示聚类信息层的索引类型,索引类型hashmap或连续存储等。
图14中的特征索引未明确设置维度信息层,实际上隐含着维度信层,参见图15,图15是一个等价于图14的以显示方式建立的特征索引,该特征索引的维度信息层用key来表示为:key=((C1,1024),[F1])or((C1,256),[F2])。图13中的特征索引包括摄像头标识层、日期层、维度信息层和聚类信息层,摄像头标识层包括摄像头ID1和摄像头ID2,日期层包括日期1和日期2,维度信息层包括两个维度信息:“or(C1,1024),[F1]”和“or(C1,256),[F2]”。聚类信息层包括多个聚类信息,其中,“or(C1,1024)”映射cl1~cl1024,“or(C1,256),[F2]”映射cl1`~cl1024`。
实施例c:特征索引采用混杂方式设置维度信息层,所述特征索引为树状图,所述特征索引包括特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次顺序为:特征辅助信息层、维度信息层和聚类信息层;所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个第一维度信息;所述维度信息层包括一个或多个第二维度信息,所述混合信息映射N个第二维度信息,所述混合信息中的N个第一维度信息和所述N个第二维度信息为一一对应的关系;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征。辅助信息层和维度信息中均可隐藏一些自定义的信息。
举例说明,参见图16,为本发明实施例提供的一种特征索引的结构示意图,特征索引包括摄像头标识层、日期层、维度信息层和聚类信息层,其中摄像头标识层包括摄像头ID1和摄像头ID2,日期层包括多个混合信息,例如:混合信息1包括日期1和两个第一维度信息,两个第一维度信息的标识形式参见图16所示,维度信息层包括多个第二维度信息,其中,混合信息1映射两个第二维度信息:“C1,[F1]”和“C1,[F2]”。聚类信息层包括多个聚类信息,其中,C1,[F1]映射cl1~cl1024,C1,[F2]映射cl1`~cl1024`。其中,两个第二维度信息中还可以包括聚类中心数量。需要说明的是,摄像头标识层中的节点除包括摄像头ID之外,还可以包括其他信息,例如:算法类型信息、特征类型信息、逻辑关系信息、聚类中心数量中的一种或多种。另外,日期层中的节点除包括日期之外,同样也可以包括算法类型信息、特征类型信息、逻辑关系信息、聚类中心数量中的一种或多种。维度信息层的节点除包括算法类型信息、逻辑关系信息和特征类型信息之外,还可以包括其他信息,例如:聚类中心数量等。
两个维度信息的表现形式如下:
key-val表示指向聚类中心的数量的指针,“C1,[F1]”下聚类中心的数量为1024,“C1,[F2]”下聚类中心的熟练为256。
key-ptr表示指向key的指针,key包括算法类型信息和特征类型信息,两组算法类型信息和特征类型信息分别于映射的两个第二维度信息一一对应。
logic-ptr表示指向逻辑关系信息的指针,逻辑关系信息表示映射的两个第二维度信息之间的逻辑关系为或。
实施例d:特征索引包括维度定义信息层、特征辅助信息层、维度信息层和聚类信息层,特征索引从上到下的层次关系为:维度定义信息层、特征辅助信息层、维度信息层和聚类信息层。维度定义信息层包括一个或多个维度定义信息,所述维度定义信息包括N组维度信息;所述特征辅助信息层包括一个或多个特征辅助信息,所述维度信息层包括一个或多个维度信息,所述聚类信息层包括一个或多个聚类信息,所述N组维度信息与所述特征辅助信息映射的N个维度信息为一一映射的关系,每个维度定义信息对应一个子索引。一个维度定义信息下,不同的特征辅助信息映射的一个或多个维度信息都是相同的。
举例说明,图片的特征为F=[F1,F2],数据存储引擎支持的算法类型为C1~C16,一共16种算法,通过算法和特征的组合确定不同的特征索引规则,以满足不同的检索需求。逻辑关系信息如果不指定的话,可使用默认的逻辑关系进行运算。图17中,维度定义信息层包括维度定义信息层、摄像头标识层、日期层、维度信息层和聚类信息层。维度定义信息层包括两个维度定义信息:维度定义信息1和维度定义信息2,维度定义信息1对应子索引1,维度定义信息2对应子索引2,摄像头标识层包括多个摄像头标识,其中,维度定义信息1映射摄像头标识1和摄像头标识2,维度定义信息2映射摄像头标识1和摄像头标识2。日期层包括多个日期,维度信息层包括多个维度信息,聚类信息层包括多个聚类信息。维度定义信息1下,日期1映射的维度信息和日期2映射的维度信息相同,不存维度信息下不同的日期映射的维度信息不同的情况。
其中,维度定义信息中的各个参数的含义为:
1.camera-ptr:指向摄像头标识层的指针,用于根据key索引到对应的摄像头标识。
2.key-ptr:指向当前维度定义信息的key(索引规则信息)的指针;
3.in-mem:表示当前维度定义信息对应的子索引是否在内存中,如果为false则表示不在内存中,此时camera-ptr为空指针。
4.priority:当前维度定义信息的优先级,用于特征索引的删除和淘汰机制。
其中,除了维度定义信息的数据结构,还需存在一个index-ptr指向当前使用的维度定义所对应的子索引,图14所示表示index-ptr和camera-ptr指向同一地址。
以上维度定义信息的数据结构、key、以及index-ptr都持久化在单独的一个文件中,与特征以及特征索引的持久化在磁盘上的结构以及区域相独立。
在一种可能的设计中,M个维度信息拥有同一个父节点,父节点在磁盘中关联有一个标识列表,标识列表有多个行,多个行各种对应不同的特征,行中存储有集群信息,集群信息包括行对应的特征在所述M个维度信息中所属的聚类的标识。
具体的,不同的聚类中特征的数量会存在不均衡的现象,例如:聚类1中包含1024个特征,聚类2中包含1个特征,这样会存在不同的聚类信息指示的内存空间的大小差异很大的情况,即存在数据倾斜的情况。为解决数据倾斜的问题,本发明实施例的存储方式为:在内存中为M个维度信息设置一个ID列表,ID列表中包括多个行,行的数量等于父节点对应的特征的数量,每行中存储有行对应的特征分别在M个维度信息中所属的聚类的标识,这样ID列表的每行包括特征标识和M个聚类的标识。
举例说明,参见图18,特征索引包括摄像头标识层、日期层、维度信息层和聚类信息层,摄像头标识层包括摄像头ID1~摄像头ID4,日期层包括多个日期,其中,摄像头ID1映射日期1~日期4,摄像头ID3映射日期1~日期4。维度信息层包括多个维度信息,其中,日期1映射维度信息1~维度信息16,日期2映射维度信息1~维度信息16,聚类信息层包多个聚类信息,每个维度信息映射1024个聚类信息,聚类信息指示一个聚类,聚类信息指示聚类中的一个或多个特征。例如:聚类信息包括指针,指针指向一个内存空间,内存空间用于存储聚类中的一个或多个特征的存储属性信息,存储属性信息包括磁盘地址信息。
日期1在内存中关联ID列表1,ID列表1包括3行,对于ID列表1的第一行,第一行中存储有特征1在维度信息1中属于聚类1的标识,特征1在维度信息2中数据聚类10的标识,…特征1在维度16中属于聚类102的标识。ID列表1中的行中还包括特征辅助信息,例如:摄像头ID、时间戳、目标ID和特征版本中的一种或多种。
其中,ID列表中还存储有日期下的所有特征,这些特征可采用列存的方式进行存储,例如日期1下所有的特征为特征1~特征m1,特征1~特征m1采用列存储的方式进行存储。
通过上述的存储方式,ID列表的每一行的长度都相等,且能覆盖所有的聚类,解决了数据倾斜的问题,每个聚类信息指示的内存区域的大小相等。同时该存储方式磁盘中需要存储的聚类信息和内存中存储的聚类信息的大小相等,不会引入额外的冗余信息。
参见表1所示,表1中定了个特征索引中的各个信息:摄像头标识、时间戳、集群信息、目标标识、特征版本和长特征的相关属性,上述信息可以由用户输入的信息来决定,即上述的信息可以自定义。
表1
其中,假设特征索引如实施例d中图17的特征索引,下面说明特征索引的管理过程:
情况1:输入的key(维度定义信息)为预先定义的且对应的子索引在内存中时,执行如下操作:
1.修改index-ptr指向camera-ptr所指向的摄像头ID;
2.增加优先级(priority)并持久化到磁盘中。
情况2:输入的key为预先定义的但对应的子不在内存中时,执行如下操作:
1.优先级(priority)排序,释放in-mem为true中priority最小的维度定义所对应camera-ptr所指向的索引空间,in-mem置为false并持久化;
2.key所对应的in-men置为true,增加优先级,并持久化到磁盘;
3.读取key所对应的磁盘空间中子索引到内存;
4.根据磁盘中的内容生成key对应的内存中的子索引;
5.修改index-ptr指向该维度(camera-ptr)所指向的子索引。
情况3:输入的key未定义(假设超过了允许的最大特征索引数,不超过则只需要执行以下步骤中的部分步骤):
(1)预处理
1.优先级(priority)排序,删除最小的priority所对应的维度定义在磁盘中的列表;
2.删除最小的priority在磁盘中的全部特征索引信息;
3.删除最小的priority在内存中的全部特征索引信息;
4.释放in-mem为true中priority最小的维度定义所对应camera-ptr所指向的索引空间,in-mem置为false并持久化到磁盘。
(2)开始创建新的特征索引:如图19所示,在维度定义信息层中创建维度定义信息3。
1.初始化结构体:key-ptr指向key值,priority=(当前priority的平均值),in-mem=true,Camera-ptr=null;
2.插入到维度定义信息层hashmap中;
3.建立当前cameraID与date这两层索引(可直接从其它in-mem=true的特征索引拷贝过来);
4.解析key建立维度信息层并记录每个维度信息的逻辑关系;
5.遍历所有分区(date),对每个date执行以下操作:
A.读取date对应分区的特征,读取任意一个特征索引到内存中X区域;
B.对维度信息层的每个信息维度分别执行聚类算法,根据特征以及X,建立聚类信息层,并更新X中的Cl-inf与新的聚类结果一致;
C.建立key在date分区上的索引文件,将X写入文件。
6.修改index-ptr指向该维度(camera-ptr)所指向的摄像头标识。
实施例e:特征索引中的不同辅助信息可采用不同的维度信息的标识方法,例如:一个辅助信息下采用实施例a中的显示方式来表示维度信息,另一个辅助信息下采用实施例b中的隐式方式来表示维度信息。
具体说明,参见图20所示,日期1下的维度信息采用显示的维度信息层来,日期2直接映射聚类信息层,维度信息采用隐式的方式来表示,进一步的,拥有同一父节点的多个维度信息可采用不同的算法,例如:日期1下的两个子节点来说,C1为聚类算法,而C2为基于短特征的查表法,基于短特征的查表法是基于特征的降维的算法,算法的具体事项实现可参见相关算法文档,此处只介绍该算法一个基本的索引方式:SF-ptr指向了加速卡(GPU等)的缓存区域,mem-ptr指向的是SF的存储空间,SF-num为短特征的数量。
其中,特征索引信息还可以用比特位来表示,比特位划分为两个部分,通过两个部分的比特位的值来表示不同的算法类型和不同的特征类型,例如:特征索引信息的表示形式为:11110011,一共8个比特位,前面4个比特位表示算法类型信息,后面4个比特位表示特征类型信息,4个比特位一共有16个不同的取值,对应16中不同的算法类型或特征类型。
S603、将建立的特征索引作为特征集合的当前特征索引。
具体的,特征索引指针用于指向当前特征索引,在建立特征索引后,将特征索引指针指向该建立的特征索引。在一种可能的实施方式中,数据存储引擎中还设置有特征索引列表,特征索引列表中包括一个或多个特征索引,数据存储引擎可以将建立的特征索引添加到特征索引列表中。其中,特征索引列表中的特征索引的数量是有限制的,在特征索引列表中的数量超过预设数量时,根据预设的淘汰机制淘汰特征索引列表中的特征索引。
上述详细阐述了本发明实施例的方法,下面提供了本发明实施例的装置的结构示意图,以下简称装置21,装置21包括处理单元2101和收发单元2102,该装置21用于执行图6中的步骤。
收发单元2102,用于接收输入的索引规则信息;其中,所述索引规则信息包括特征类型信息和算法类型信息中的一种或多种。
处理单元2101,用于根据所述索引规则信息为特征集合建立特征索引;
处理单元2101,还用于将建立的所述特征索引作为所述特征集合的当前特征索引。
在一种可能的实施方式中,所述特征索引为树状图,所述特征索引包括维度信息层和聚类信息层,所述维度信息层为所述聚类信息层的上层,所述聚类信息层中的节点为叶子节点;所述维度信息层包括一个或多个维度信息,所述维度信息包括特征类型信息和算法类型信息中的一种或多种;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征。
在一种可能的实施方式中,所述维度信息还包括逻辑关系信息,逻辑关系信息表示拥有同一父节点的多个维度信息之间的逻辑关系。
在一种可能的实施方式中,所述特征索引的层数为两层,所述维度信息还包括一个或多个特征辅助信息。
在一种可能的实施方式中,所述特征索引还包括一个或多个特征辅助信息层,所述一个或多个特征辅助信息层为所述维度信息层的上层,特征辅助信息层包括一个或多个特征辅助信息。
在一种可能的实施方式中,所述特征索引为树状图,所述特征索引包括特征辅助信息层和聚类信息层,所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个维度信息,所述N个维度信息包括算法类型信息和特征类型信息中的一种或多种;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征,所述聚类信息为子节点,所述辅助信息层为所述聚类信息层的上层;所述混合信息映射的多个聚类信息划分为N组聚类信息,所述N个维度信息与所述N组聚类信息为一一对应的关系,N为大于0的整数。
在一种可能的实施方式中,所述N个维度信息还包括逻辑关系信息,所述逻辑关系信息表示所述N组聚类信息之间的逻辑关系。
在一种可能的实施方式中,所述特征索引为树状图,所述特征索引包括特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次顺序为:特征辅助信息层、维度信息层和聚类信息层;所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个第一维度信息;所述维度信息层包括一个或多个第二维度信息,所述混合信息映射N个第二维度信息,所述混合信息中的N个第一维度信息和所述N个第二维度信息为一一对应的关系;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征。
在一种可能的实施方式中,所述特征索引包括维度定义信息层、特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次关系为:维度定义信息层、特征辅助信息层、维度信息层和聚类信息层;所述维度定义层包括一个或多个维度定义信息,所述维度定义信息包括N组维度信息;所述特征辅助信息层包括一个或多个特征辅助信息,所述维度信息层包括一个或多个维度信息,所述聚类信息层包括一个或多个聚类信息;所述N组维度信息与所述特征辅助信息映射的N个维度节点为一一对应的关系。
在一种可能的实施方式中所述索引规则信息是通过图形界面输入的检索结果数量、检索时间和特征优先级中的一种或多种确定所述索引规则信息确定的;或
所述索引规则信息是通过以字符串形式输入的算法类型信息、逻辑关系信息和特征类型信息中的一种或多种确定的。
在一种可能的实施方式中,M个维度信息拥有同一个父节点;所述父节点在磁盘中关联有一个标识列表,所述标识列表有多个行,每个行对应一个特征,所述行中存储有集群信息,所述集群信息包括所述行对应的特征在所述M个维度节点中所属的聚类的标识。
在一种可能的实施方式中,所述聚类信息包括指针,所述指针指向用于存储所述聚类中的一个或多个特征的存储属性信息的内存空间,所述存储属性信息包括磁盘地址信息。
在一种可能的实施方式中,算法类型信息和特征类型信息用字符型来表示,不同的值对应不同的算法特征和特征类型。
上述装置实施例仅列出了模块之间的逻辑功能,具体的执行过程与有益效果请参照其对应的方法实施例。
所述装置21也可以为实现相关功能的现场可编程门阵列(field-programmablegate array,FPGA),专用集成芯片,系统芯片(system on chip,SoC),中央处理器(centralprocessor unit,CPU),网络处理器(network processor,NP),数字信号处理电路,微控制器(micro controller unit,MCU),还可以采用可编程控制器(programmable logicdevice,PLD)或其他集成芯片。
本发明实施例和图6的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图6的方法实施例的描述,此处不再赘述。
图22为本发明实施例提供的一种装置结构示意图,以下简称装置22,如图22所示,该装置包括:存储器2202、处理器2201、收发器2203。
存储器2202可以是独立的物理单元,与处理器2201和收发器2203可以通过总线连接。存储器2202、处理器2201、收发器2203也可以集成在一起,通过硬件实现等。
存储器2202用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器221调用该程序,执行以上方法实施例的操作。
可选地,当上述实施例的建立特征索引的方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
上述实施例中,发送模块或发射器执行上述各个方法实施例发送的步骤,接收模块或接收器执行上述各个方法实施例接收的步骤,其它步骤由其他模块或处理器执行。发送模块和接收模块可以组成收发模块,接收器和发射器可以组成收发器。
本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的建立特征索引的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的建立特征索引的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (18)
1.一种建立特征索引的方法,其特征在于,包括:
接收输入的索引规则信息;其中,所述索引规则信息包括特征类型信息和算法类型信息中的一种或多种;
根据所述索引规则信息为特征集合建立特征索引;
将建立的所述特征索引作为所述特征集合的当前特征索引;
其中,所述特征索引为树状图,所述特征索引包括维度信息层和聚类信息层,所述维度信息层为所述聚类信息层的上层,所述聚类信息层中的节点为叶子节点;所述维度信息层包括一个或多个维度信息,所述维度信息包括特征类型信息和算法类型信息中的一种或多种;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征;
或者,
所述特征索引为树状图,所述特征索引包括特征辅助信息层和聚类信息层,所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个维度信息,所述N个维度信息包括算法类型信息和特征类型信息中的一种或多种;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征,所述聚类信息为子节点,所述辅助信息层为所述聚类信息层的上层;所述混合信息映射的多个聚类信息划分为N组聚类信息,所述N个维度信息与所述N组聚类信息为一一对应的关系,N为大于0的整数;
或者,
所述特征索引为树状图,所述特征索引包括特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次顺序为:特征辅助信息层、维度信息层和聚类信息层;所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个第一维度信息;所述维度信息层包括一个或多个第二维度信息,所述混合信息映射N个第二维度信息,所述混合信息中的N个第一维度信息和所述N个第二维度信息为一一对应的关系;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征
或者,
所述特征索引包括维度定义信息层、特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次关系为:维度定义信息层、特征辅助信息层、维度信息层和聚类信息层;所述维度定义层包括一个或多个维度定义信息,所述维度定义信息包括N组维度信息;所述特征辅助信息层包括一个或多个特征辅助信息,所述维度信息层包括一个或多个维度信息,所述聚类信息层包括一个或多个聚类信息;所述N组维度信息与所述特征辅助信息映射的N个维度节点为一一对应的关系。
2.根据权利要求1所述的方法,其特征在于,所述维度信息还包括逻辑关系信息,逻辑关系信息表示拥有同一父节点的多个维度信息之间的逻辑关系。
3.根据权利要求1或2所述的方法,其特征在于,所述特征索引的层数为两层,所述维度信息还包括一个或多个特征辅助信息。
4.根据权利要求1或2所述的方法,其特征在于,所述特征索引还包括一个或多个特征辅助信息层,所述一个或多个特征辅助信息层为所述维度信息层的上层,特征辅助信息层包括一个或多个特征辅助信息。
5.根据权利要求1所述的方法,其特征在于,所述N个维度信息还包括逻辑关系信息,所述逻辑关系信息表示所述N组聚类信息之间的逻辑关系。
6.根据权利要求1-5中任意一项所述的方法,其特征在于,
所述索引规则信息是通过图形界面输入的检索结果数量、检索时间和特征优先级中的一种或多种确定所述索引规则信息确定的;或
所述索引规则信息是通过以字符串形式输入的算法类型信息、逻辑关系信息和特征类型信息中的一种或多种确定的。
7.根据权利要求2-5中任意一项所述的方法,其特征在于,M个维度信息拥有同一个父节点;所述父节点在磁盘中关联有一个标识列表,所述标识列表有多个行,每个行对应一个特征,所述行中存储有集群信息,所述集群信息包括所述行对应的特征在所述M个维度节点中所属的聚类的标识。
8.根据权利要求1所述的方法,其特征在于,所述聚类信息包括指针,所述指针指向用于存储所述聚类中的一个或多个特征的存储属性信息的内存空间,所述存储属性信息包括磁盘地址信息。
9.根据权利要求1-8任意一项所述的方法,其特征在于,算法类型信息和特征类型信息用字符型来表示,不同的值对应不同的算法特征和特征类型。
10.一种建立特征索引的装置,其特征在于,包括:
收发单元,用于接收输入的索引规则信息;其中,所述索引规则信息包括特征类型信息和算法类型信息中的一种或多种;
处理单元,用于根据所述索引规则信息为特征集合建立特征索引;
所述处理单元,还用于将建立的所述特征索引作为所述特征集合的当前特征索引;
其中,所述特征索引为树状图,所述特征索引包括维度信息层和聚类信息层,所述维度信息层为所述聚类信息层的上层,所述聚类信息层中的节点为叶子节点;所述维度信息层包括一个或多个维度信息,所述维度信息包括特征类型信息和算法类型信息中的一种或多种;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征;
或者,
所述特征索引为树状图,所述特征索引包括特征辅助信息层和聚类信息层,所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个维度信息,所述N个维度信息包括算法类型信息和特征类型信息中的一种或多种;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征,所述聚类信息为子节点,所述辅助信息层为所述聚类信息层的上层;所述混合信息映射的多个聚类信息划分为N组聚类信息,所述N个维度信息与所述N组聚类信息为一一对应的关系,N为大于0的整数;
或者,
所述特征索引为树状图,所述特征索引包括特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次顺序为:特征辅助信息层、维度信息层和聚类信息层;所述特征辅助信息层包括一个或多个混合信息,所述混合信息包括特征辅助信息和N个第一维度信息;所述维度信息层包括一个或多个第二维度信息,所述混合信息映射N个第二维度信息,所述混合信息中的N个第一维度信息和所述N个第二维度信息为一一对应的关系;所述聚类信息层包括一个或多个聚类信息,所述聚类信息用于指示一个聚类中的一个或多个特征
或者,
所述特征索引包括维度定义信息层、特征辅助信息层、维度信息层和聚类信息层,所述特征索引从上到下的层次关系为:维度定义信息层、特征辅助信息层、维度信息层和聚类信息层;所述维度定义层包括一个或多个维度定义信息,所述维度定义信息包括N组维度信息;所述特征辅助信息层包括一个或多个特征辅助信息,所述维度信息层包括一个或多个维度信息,所述聚类信息层包括一个或多个聚类信息;所述N组维度信息与所述特征辅助信息映射的N个维度节点为一一对应的关系。
11.根据权利要求10所述的装置,其特征在于,所述维度信息还包括逻辑关系信息,逻辑关系信息表示拥有同一父节点的多个维度信息之间的逻辑关系。
12.根据权利要求10或11所述的装置,其特征在于,所述特征索引的层数为两层,所述维度信息还包括一个或多个特征辅助信息。
13.根据权利要求10或11所述的装置,其特征在于,所述特征索引还包括一个或多个特征辅助信息层,所述一个或多个特征辅助信息层为所述维度信息层的上层,特征辅助信息层包括一个或多个特征辅助信息。
14.根据权利要求10所述的装置,其特征在于,所述N个维度信息还包括逻辑关系信息,所述逻辑关系信息表示所述N组聚类信息之间的逻辑关系。
15.根据权利要求10-14中任意一项所述的装置,其特征在于,
所述索引规则信息是通过图形界面输入的检索结果数量、检索时间和特征优先级中的一种或多种确定所述索引规则信息确定的;或
所述索引规则信息是通过以字符串形式输入的算法类型信息、逻辑关系信息和特征类型信息中的一种或多种确定的。
16.根据权利要求11-14中任意一项所述的装置,其特征在于,M个维度信息拥有同一个父节点;所述父节点在磁盘中关联有一个标识列表,所述标识列表有多个行,每个行对应一个特征,所述行中存储有集群信息,所述集群信息包括所述行对应的特征在所述M个维度节点中所属的聚类的标识。
17.根据权利要求10所述的装置,其特征在于,所述聚类信息包括指针,所述指针指向用于存储所述聚类中的一个或多个特征的存储属性信息的内存空间,所述存储属性信息包括磁盘地址信息。
18.根据权利要求10-17任意一项所述的装置,其特征在于,算法类型信息和特征类型信息用字符型来表示,不同的值对应不同的算法特征和特征类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811360671.3A CN111190893B (zh) | 2018-11-15 | 2018-11-15 | 建立特征索引的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811360671.3A CN111190893B (zh) | 2018-11-15 | 2018-11-15 | 建立特征索引的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111190893A CN111190893A (zh) | 2020-05-22 |
CN111190893B true CN111190893B (zh) | 2023-05-16 |
Family
ID=70707122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811360671.3A Active CN111190893B (zh) | 2018-11-15 | 2018-11-15 | 建立特征索引的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190893B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307035B (zh) * | 2020-11-26 | 2024-01-05 | 深圳云天励飞技术股份有限公司 | 一种特征值id的管理方法、装置、电子设备及存储介质 |
CN112883375A (zh) * | 2021-02-03 | 2021-06-01 | 深信服科技股份有限公司 | 恶意文件识别方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134594A (ja) * | 1999-11-08 | 2001-05-18 | Nippon Telegr & Teleph Corp <Ntt> | 類似特徴量の検索方法,その検索装置およびその検索プログラム記録媒体 |
WO2007085187A1 (fr) * | 2006-01-25 | 2007-08-02 | Huawei Technologies Co., Ltd. | Procédé d'extraction de données, procédé de production de fichiers d'index et moteur de recherche |
CN102004786A (zh) * | 2010-12-02 | 2011-04-06 | 上海交通大学 | 图像检索系统中的加速方法 |
CN103390015A (zh) * | 2013-01-16 | 2013-11-13 | 华北电力大学 | 基于统一索引的海量数据联合存储方法及检索方法 |
CN108664583A (zh) * | 2018-05-04 | 2018-10-16 | 北京物灵智能科技有限公司 | 一种索引树建立方法以及图像检索方法 |
-
2018
- 2018-11-15 CN CN201811360671.3A patent/CN111190893B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134594A (ja) * | 1999-11-08 | 2001-05-18 | Nippon Telegr & Teleph Corp <Ntt> | 類似特徴量の検索方法,その検索装置およびその検索プログラム記録媒体 |
WO2007085187A1 (fr) * | 2006-01-25 | 2007-08-02 | Huawei Technologies Co., Ltd. | Procédé d'extraction de données, procédé de production de fichiers d'index et moteur de recherche |
CN102004786A (zh) * | 2010-12-02 | 2011-04-06 | 上海交通大学 | 图像检索系统中的加速方法 |
CN103390015A (zh) * | 2013-01-16 | 2013-11-13 | 华北电力大学 | 基于统一索引的海量数据联合存储方法及检索方法 |
CN108664583A (zh) * | 2018-05-04 | 2018-10-16 | 北京物灵智能科技有限公司 | 一种索引树建立方法以及图像检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111190893A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11132388B2 (en) | Efficient spatial queries in large data tables | |
US7668817B2 (en) | Method and system for data processing with spatial search | |
US6438562B1 (en) | Parallel index maintenance | |
US20170337229A1 (en) | Spatial indexing for distributed storage using local indexes | |
US6012069A (en) | Method and apparatus for retrieving a desired image from an image database using keywords | |
US8099421B2 (en) | File system, and method for storing and searching for file by the same | |
US20080228783A1 (en) | Data Partitioning Systems | |
US5367677A (en) | System for iterated generation from an array of records of a posting file with row segments based on column entry value ranges | |
CN110134681B (zh) | 数据存储与查询方法、装置、计算机设备及存储介质 | |
EP2836928B1 (en) | Full text search using r-trees | |
CN106294374A (zh) | 小文件合并的方法和数据查询系统 | |
CN111190893B (zh) | 建立特征索引的方法和装置 | |
US20090106299A1 (en) | Shared-memory multiprocessor system and information processing method | |
CN116992887A (zh) | 一种元数据的数据目录处理方法、装置以及处理设备 | |
CN109739854A (zh) | 一种数据存储方法及装置 | |
KR20020001800A (ko) | 컬러 영상 처리 방법 | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
CN110321435B (zh) | 一种数据源划分方法、装置、设备和存储介质 | |
KR20220099745A (ko) | 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치 | |
CN111309704A (zh) | 数据库操作方法和数据库操作系统 | |
CN117540056B (zh) | 数据查询的方法、装置、计算机设备和存储介质 | |
CN112783895B (zh) | 面向软件定义卫星的数据库访问处理方法、装置及设备 | |
CN117932120B (zh) | 图数据库的数据存储方法及装置 | |
CN114911886B (zh) | 一种遥感数据的切片方法、装置和云服务器 | |
KR101815813B1 (ko) | 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치 |
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 |