指定跟踪目标在起始帧的位置,跟踪目标在后续视频帧中的位置
API的输入、输出对象可参考VNN 数据结构
API的执行情况(是否成功、错误原因等)可参考 VNN_Result
对应的状态码表
指标 | 参数 |
---|---|
支持图片格式 | BGRA、RGBA、RGB、NV12、NV21、YUV420 |
支持架构 | armeabi-v7、arm64-v8a |
Android系统版本 | 5.0+ |
iOS系统版本 | 9.0+ |
最大跟踪目标数 | 1 |
vnn_objtracking.h
vnn_kit.h
vnn_define.h
object_tracking[1.0.0].vnnmodel
Android
libvnn_core.so
libvnn_kit.so
libvnn_objtracking.so
iOS
Accelerate.framework
CoreVideo.framework
Foundation.framework
vnn_core_ios.framework
vnn_kit_ios.framework
vnn_objtracking_ios.framework
调用 VNN_Apply_ObjTracking_CPU 后,SDK会动态申请内存,用于记录不确定个数的人脸位置信息。在信息处理完成后需调用 VNN_ObjCountDataArr_Free 以释放申请的内存,避免内存泄露。
说明: 输入模型路径,完成SDK的初始化,获得用于调用后续功能的Handle
VNN_Result VNN_Create_ObjTracking( VNNHandle * handle, const int argc, const void * argv[] )
参数 | 含义 |
---|---|
handle | 函数调用成功后记录合法的索引,用于调用后续功能,类型为VNN_Handle*,调用成功后handle数值大于0,输出 |
argc | 输入模型文件数,类型为const int,输入 |
argv | 每个模型文件的具体路径,类型为const char*[ ],输入 |
返回值: VNN_Result,具体值参见 状态码表
调用示例:
VNN_Handle _handle;
std::string model = _modelpath + "/object_tracking[1.0.0].vnnmodel";
const char* argv[] = {
model.c_str(),
};
const int argc = sizeof(argv)/sizeof(argv[0]);
VNN_Result ret = VNN_Create_ObjTracking(&_handle, argc, argv);
说明: 输入包含人脸的图像,输出检测结果
VNN_Result VNN_Apply_ObjTracking_CPU( VNNHandle handle, const void * input, void * output )
参数 | 含义 |
---|---|
handle | SDK实例索引,类型为 VNN_Handle,输入 |
input | 后续的视频帧,类型为const VNN_Image*,输入 |
output | 跟踪结果,类型为 VNN_ObjCountDataArr*,输出 |
返回值: VNN_Result,具体值参见 状态码表
调用示例:
// input: 后续的视频帧,类型VNN_Image
VNN_ObjCountDataArr tracking_result_bbox;
VNN_Apply_ObjTracking_CPU(_handle, &input, &tracking_result_bbox);
说明: 不再使用SDK,释放内存等资源
VNN_Result VNN_Destroy_ObjTracking(VNNHandle* handle)
参数 | 含义 |
---|---|
handle | SDK实例索引,成功释放资源后将被修改为0(无效值),类型为VNN_Handle*,输入&输出 |
返回值: VNN_Result,具体值参见 状态码表
调用示例:
VNN_Result ret = VNN_Destroy_ObjTracking(&_handle);
说明: 设定SDK实例的运行参数
VNN_Result VNN_Set_ObjTracking_Attr( VNNHandle handle, const char * name, const void * value )
参数 | 含义 |
---|---|
handle | SDK实例索引,类型为VNN_Handle,输入 |
name | 属性名,类型const char*,输入 |
value | 属性值,类型参见下表,输入 |
合法属性名和属性值
属性名 | 属性含义 | 属性值 | 属性值类型 |
---|---|---|---|
_targetImage | 起始帧 | 有效的VNN_Image对象的地址/指针 | VNN_Image* |
_objRect | 跟踪目标在起始帧中的坐标 | 有效的VNN_Rect2D对象的地址/指针 | VNN_Rect2D* |
返回值: VNN_Result,具体值参见 状态码表
调用示例:
// input:起始帧,类型 VNN_Image
// template_bbox:跟踪目标在起始帧中的坐标,类型 VNN_Rect2D
// 设置起始帧
VNN_Set_ObjTracking_Attr(_handle_objtracking, "_targetImage", &input);
// 设置跟踪目标
VNN_Set_ObjTracking_Attr(_handle_objtracking, "_objRect", &template_bbox);
说明: 获取SDK实例的运行参数
VNN_Result VNN_Get_ObjTracking_Attr( VNNHandle handle, const char * name, const void * value )
参数 | 含义 |
---|---|
handle | SDK实例索引,类型为VNN_Handle,输入 |
name | 属性名,类型const char*,输入 |
value | 属性值,类型参见下表,输出 |
合法属性名和属性值
属性名 | 属性含义 | 属性值 | 属性值类型 |
---|---|---|---|
暂时为空 |
返回值: 类型为VNN_Result,具体值参见 状态码表
调用示例:
//暂时为空
版本 | 日期 | 更新说明 |
---|---|---|
v1.0.0 | 2021.12.07 | 初次发布 |