本发明涉及数据管理,尤其涉及特征数据的管理方法及系统。
背景技术:
1、在图像识别、自然语言处理等领域,通常通过提取目标的特征向量,与数据库中的特征向量进行比对,根据比对结果得出处理结果;常规的特征比对方法是全库对比,即遍历特征库中所有记录,计算相似度,取得最相似的一个或多个结果。这种方法的比对结果可靠性高,但数据规模变大时,也面临一系列负面影响:检索效率和精度均存在不同程度的下降;删除数据导致原来连续的内存空间碎片化,处理碎片化的内存空间造成额外时间消耗的同时也带来了内存复用率不高等潜在问题。
2、当下常规的解决办法有:乘积量化、逆向文件系统、逆向文件系统量化等,在提高检索效率和降低内存占用率等方面进步明显,但高比对精度和低比对时延的应用效果依旧难以兼得。
技术实现思路
1、本发明的目的在于针对现有技术的不足提供特征数据的管理方法及系统,旨在解决在进行特征比对时速度与准确度不可兼得的问题。
2、本发明通过以下技术方案来实现上述目的:
3、一种特征数据的管理方法,包括:
4、构建对象步骤:为特征数据库中的每个特征数据创建包括特征标识、特征形成时间、存储地址、数据来源、数据描述字段及特征向量数据的特征数据对象得到库特征对象;
5、构建红黑树步骤:将所述库特征对象中除所述特征向量数据之外的其他属性作为所述库特征对象的查询索引key,将所述库特征对象的存储地址作为value,构建所述库特征对象对应的红黑树,红黑树节点即为库特征对象对应的库对象节点,并创建所述红黑树对应的指针容器;
6、查询步骤:接收到查询目标后,获取所述查询目标的与所述查询索引key对应的属性作为索引属性,从所述红黑树中查找与所述索引属性相匹配的所有所述查询索引key对应的库对象节点,并获取对应的value,根据所述value查找到库特征对象并输出;
7、删除步骤:接收到删除指令后,先查询到要删除的库特征对象,再将对应的库对象节点从所述红黑树中删除,将删除的库对象节点的value存入所述指针容器;
8、存储步骤:接收到存储指令后,创建被存储的特征数据对应的特征数据对象和红黑树节点分别得到待存特征对象和存储对象节点,从所述指针容器中查找空闲地址进行存储,若所述指针容器为空,则分配新的存储空间进行存储;
9、清空步骤:接收到清空指令后,遍历所述红黑树获取到每个库对象节点,释放所述库对象节点对应的库特征对象的存储空间,再将所述库对象节点的value值设为空,最后将所述库对象节点从红黑树中删除。
10、进一步的,所述构建红黑树步骤还包括:
11、将所述库特征对象的特征形成时间作为所述库特征对象的查询索引key;
12、创建存储所述库特征对象的存储地址的指针,将所述指针作为库特征对象的value,所述库特征对象为根据所述特征数据库中的特征数据创建的对象。
13、进一步的,所述查询步骤包括:
14、匹配索引步骤:根据库对象节点的查询索引选择所述查询目标的索引属性,从所述红黑树中查找到与所述索引属性匹配的查询索引key,并获取到对应的库特征对象的value;
15、计算相似度步骤:根据查询到的value获取到对应的库特征对象,计算所述库特征对象的特征向量数据与所述查询目标的特征向量数据的相似度,并排序;
16、输出查询结果步骤:根据特征向量数据的相似度由高到低,输出对应的预定数量的库特征对象作为查询结果。
17、进一步的,所述计算相似度步骤中,计算两个特征向量数据的余弦距离,经过归一化后的特征向量余弦距离计算公式:
18、d=x1·x2
19、d表示两个特征向量数据之间的余弦距离,x1表示查询目标的归一化后的特征向量数据,“·”表示点积或内积,x2表示由查询索引查询到的库特征对象的归一化后的特征向量数据。
20、进一步的,所述删除步骤包括:
21、查询删除目标步骤:从所述红黑树中查找要删除的库特征对象得到删除目标;
22、目标无效化步骤:为所述删除目标设置失效字段,所述失效字段表示:在查询到带有失效字段的库特征对象时将所述库特征对象跳过;
23、删除库特征节点步骤:将所述查询目标对应的库特征节点从红黑树中删除,并调整其余的红黑树节点之间的连接关系,调整红黑树至平衡状态;
24、存储指针步骤:将所述删除目标的value存入到所述指针容器。
25、进一步的,所述存储步骤包括:
26、准备步骤:构建要存储的特征数据对应的特征数据对象和红黑树节点得到待存特征对象和待存特征节点;
27、计算大小步骤:计算所述待存特征对象所需的存储空间的大小得到特征体积,所述特征体积表示所述待存特征对象所占存储空间的大小;
28、存储步骤:若所述指针容器不为空,则根据所述特征体积从指针容器中获取一个指针,将所述待存特征对象存储到获取的指针指向的存储空间,若所述指针为空,则为所述待存特征对象分配存储空间并存储;
29、加入红黑树步骤:将所述待存特征节点添加到红黑树中,所述待存特征对象即变为库特征对象,所述待存特征节点即成为库特征节点。
30、一种特征数据的管理系统,应用上述的特征数据管理方法,包括:
31、构建对象模块:为特征数据库中的每个特征数据创建包括特征标识、特征形成时间、存储地址、数据来源、数据描述字段及特征向量数据的特征数据对象得到库特征对象;
32、构建红黑树模块:将所述库特征对象中除所述特征向量数据之外的其他属性作为所述库特征对象的查询索引key,将所述库特征对象的存储地址作为value,构建所述库特征对象对应的红黑树,红黑树节点即为库特征对象对应的库对象节点,并创建所述红黑树对应的指针容器;
33、查询模块:接收到查询目标后,获取所述查询目标的与所述查询索引key对应的属性作为索引属性,从所述红黑树中查找与所述索引属性相匹配的所有所述查询索引key对应的库对象节点,并获取对应的value,根据所述value查找到库特征对象并输出;
34、删除模块:接收到删除指令后,先查询到要删除的库特征对象,再将对应的库对象节点从所述红黑树中删除,将删除的库对象节点的value存入所述指针容器;
35、存储模块:接收到存储指令后,创建被存储的特征数据对应的特征数据对象和红黑树节点分别得到待存特征对象和存储对象节点,从所述指针容器中查找空闲地址进行存储,若所述指针容器为空,则分配新的存储空间进行存储;
36、清空模块:接收到清空指令后,遍历所述红黑树获取到每个库对象节点,释放所述库对象节点对应的库特征对象的存储空间,再将所述库对象节点的value值设为空,最后将所述库对象节点从红黑树中删除。
37、进一步的,所述构建红黑树模块还包括:
38、将所述库特征对象的特征形成时间作为所述库特征对象的查询索引key;
39、创建存储所述库特征对象的存储地址的指针,将所述指针作为库特征对象的value,所述库特征对象为根据所述特征数据库中的特征数据创建的对象。
40、进一步的,所述查询模块包括:
41、匹配索引模块:根据库对象节点的查询索引选择所述查询目标的索引属性,从所述红黑树中查找到与所述索引属性匹配的查询索引key,并获取到对应的库特征对象的value;
42、计算相似度模块:根据查询到的value获取到对应的库特征对象,计算所述库特征对象的特征向量数据与所述查询目标的特征向量数据的相似度,并排序;
43、输出查询结果模块:根据特征向量数据的相似度由高到低,输出对应的预定数量的库特征对象作为查询结果。
44、本发明的有益效果是:本发明基于红黑树算法对特征数据中指定的属性字段建立索引,如:特征入库时间,以快速检索出满足属性条件的特征数据,进而提升特征比对、数据更新和删除的效率,同时,保持了与全库比对方法相同的比对精度;在删除特征库中指定的特征记录时,不释放被删除的特征数据所占内存空间,取而代之的是用标志量标识该内存段可以被复用,当有新数据插入时将优先使用带有复用标志量的内存空间,避免了高频率释放内存资源导致的性能消耗。