Skip to main content

函数:release

总体说明

在图像检索场景,通常使用深度学习算法处理目标等感兴趣的图像,提取出高维特征向量,并将一组感兴趣的图像提取得到的特征向量作为底库,待搜索的特征向量与底库中的向量依次进行相似度计算,按相似度排序返回检索结果。为了进一步降低存储和计算的开销,对浮点型长特征向量进行量化处理、转换为短特征再进行检索比对的技术被广泛应用。

昇腾AI处理器支持基于硬件加速的PQ短特征检索,提供特征底库的添加/删除接口,特征向量的修改/删除接口、以及执行检索接口,支持长度为32 Byte的短特征向量,支持设置返回TOP结果的数量,支持1:N和N:M检索模式。用户需要自行准备短特征底库,以及生成待检索向量的ADC表,流程如下:

图1 流程示意

检索比对过程示意图如下所示:

ADC表是大小为32KByte的查找表,使用时需要将表的内容以无符号字符的格式传入对应接口。

父主题: 特征向量检索

函数:init

C函数原型aclError **aclfvInit(**aclfvInitPara *initPara)
Python函数ret = acl.fv.init(init_para)
函数功能初始化特征检索模块。同步接口。与 acl.fv.release接口配套使用。 Atlas 200/500 A2推理产品不支持该接口。
输入说明init_para:int,指定特征向量检索的初始化参数。
- 调用acl.fv.create_init_para接口创建aclfvInitPara类型的数据。
- 1:N场景下调用acl.fv.set_1n_top_num接口设置返回的topK结果数量的最大值,不设置时,默认返回的topK结果数量的最大值为4800。
- N:M场景下调用acl.fv.set_nm_top_num接口设置返回的topK结果数量的最大值,不设置时,默认返回的topK结果数量的最大值为500。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明一个进程内只能调用一次acl.fv.init接口。

父主题: 特征向量检索

函数:release

C函数原型aclError aclfvRelease()
Python函数ret = acl.fv.release()
函数功能特征检索模块去初始化,释放内存空间,与acl.fv.init接口配套使用。同步接口。 Atlas 200/500 A2推理产品不支持该接口。
输入说明
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 特征向量检索

函数:repo_add

C函数原型aclError aclfvRepoAdd(aclfvSearchType type, aclfvFeatureInfo *featureInfo)
Python函数ret = acl.fv.repo_add(type, feature_info)
函数功能添加底库或向已存在底库中添加特征。该章节描述的1:N表示“检索请求的个数:底库的数量”,N:M用于碰撞两个库的相似性。同步接口。 Atlas 200/500 A2推理产品不支持该接口。
输入说明- type:int,检索类型,请参见aclfvSearchType处说明。
- feature_info:int,指针地址,指定特征描述信息。 需提前调用acl.fv.create_feature_info接口创建aclfvFeatureInfo类型的数据。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明- 1:N添加时,对于每个库,用户需要保证aclfvFeatureInfo结构体中的offset连续,N:M添加时,offset不为0会报错。
- 非线程安全,N:M场景不允许多线程同时添加\检索\删除。
- 调用本接口,内部会默认创建一个Stream,用于接口内任务同步执行,在接口执行完成后,该Stream资源会被自动释放。 受硬件限制,Stream总数有限,请参见函数:create_stream处的说明。

父主题: 特征向量检索

函数:repo_del

C函数原型aclError aclfvRepoDel(aclfvSearchType type, aclfvRepoRange *repoRange)
Python函数ret = acl.fv.repo_del(type, repo_range)
函数功能删除底库。同步接口。 Atlas 200/500 A2推理产品不支持该接口。
输入说明- type:int,检索类型,请参见aclfvSearchType处说明。
- repo_range:int,指针地址,指定特征删除范围。需提前调用acl.fv.create_repo_range接口创建aclfvRepoRange类型的数据。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明- 非线程安全,N:M场景不允许多线程同时添加\检索\删除。
- 调用本接口,内部会默认创建一个Stream,用于接口内任务同步执行,在接口执行完成后,该Stream资源会被自动释放。 受硬件限制,Stream总数有限,请参见函数:create_stream处的说明。

父主题: 特征向量检索

在线提单