支持平台 | Android、iOS |
---|---|
支持输入格式 | RGBA8888, BGRA8888 |
内存占用 | <42M (测试设备OPPO R11) |
检测速度 | <5ms(测试设备OPPO R11) |
详细接口说明查看头文件:bef_effect_ai_object_tracking.h
BEF_SDK_API bef_effect_result_t bef_ai_object_tracking_create(bef_ai_object_tracking_handle *handle);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle* | 创建的物体检测算法句柄 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API void bef_ai_object_tracking_get_default_param(bef_ai_object_tracking_handle handle, bef_ai_object_tracking_param* param);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle | 物体检测算法句柄 |
param | bef_ai_object_tracking_param* | 待返回的默认算法参数 |
BEF_SDK_API bef_effect_result_t bef_ai_object_tracking_init(bef_ai_object_tracking_handle handle, const char* modelPath, bef_ai_object_tracking_param *param);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle* | 物体检测算法句柄 |
modelPath | const char* | 算法模型路径 |
param | bef_ai_object_tracking_param* | 物体检测算法输入参数 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
需要在应用层框选出待跟踪物体,且开始跟踪后单次调用
BEF_SDK_API bef_ai_object_tracking_init_bbox_status bef_ai_object_tracking_set_initial_bbox(bef_ai_object_tracking_handle handle, const unsigned char* image, bef_ai_pixel_format format, int width, int height, int channels, int imageStride, bef_ai_object_tracking_bbox* initialBox);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle | 物体检测算法句柄 |
image | const unsigned char* | 输入图像 |
format | bef_ai_pixel_format | 输入图像格式 |
width | int | 输入图像宽度 |
height | int | 输入图像高度 |
channels | int | 输入图像通道数 |
imageStride | int | 输入图像stride |
initialBox | bef_ai_object_tracking_bbox* | 输入的跟踪物体包围框 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_ai_object_tracking_track_frame(bef_ai_object_tracking_handle handle, const unsigned char* image, bef_ai_pixel_format format, int width, int height, int channels, int imageStride, float timeStamp, bef_ai_object_tracking_bbox* result);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle | 物体检测算法句柄 |
image | const unsigned char* | 输入图像 |
format | bef_ai_pixel_format | 输入图像格式 |
width | int | 输入图像宽度 |
height | int | 输入图像高度 |
channels | int | 输入图像通道数 |
imageStride | int | 输入图像stride |
timeStamp | float | 传入时间戳 |
initialBox | bef_ai_object_tracking_bbox* | 返回的跟踪物体包围框 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
/// check license offline /// @param bef_ai_object_tracking_handle handle /// @param licensePath license path BEF_SDK_API bef_effect_result_t bef_ai_object_tracking_check_license(bef_ai_object_tracking_handle handle, const char* licensePath); #endif /// check license online /// @param bef_ai_object_tracking_handle handle /// @param licensePath license path BEF_SDK_API bef_effect_result_t bef_ai_object_tracking_check_online_license(bef_ai_object_tracking_handle handle, const char *licensePath);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle | 物体检测算法句柄 |
licensePath | const char * | 授权文件路径 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_ai_object_tracking_destroy(bef_ai_object_tracking_handle handle);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_ai_object_tracking_handle | 物体检测算法句柄 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
接口说明
详细接口说明查看文件:com.effectsar.labcv.effectsdk.ObjectTracking.java
public int init( Context context, TaintDetectParam param, String licensePath, boolean onlineLicense); public int init( Context context, String modelPath, String licensePath, boolean onlineLicense)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
context | Context | 安卓context |
modelPath | String | 算法模型路径 |
licensePath | String | 授权文件路径 |
onlineLicense | boolean | 配置在线授权或离线授权 |
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
public int setInitBox(ByteBuffer buffer, int image_width, int image_height, int image_stride, int image_channels, int pixel_format, ObjectTrackingBoundBox boundBox)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
buffer | ByteBuffer | 输入buffer |
image_width | int | 输入图像宽度 |
image_height | int | 输入图像高度 |
image_stride | int | 输入图像步长 |
image_channels | int | 输入图像通道数 |
pixel_format | int | 输入图像格式 |
boundBox | ObjectTrackingBoundBox | 输入buffer |
备注
关于ObjectTrackingBoundBox可参考com.effectsar.labcv.effectsdk.ObjectTracking.java,并且其定义与C接口bef_ai_object_tracking_bounding_box保持一致。
public int trackFrame(ByteBuffer buffer, int image_width, int image_height, int image_stride, int image_channels, int pixel_format, double time_stamp, ObjectTrackingBoundBox result)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
buffer | ByteBuffer | 输入buffer |
image_width | int | 输入图像宽度 |
image_height | int | 输入图像高度 |
image_stride | int | 输入图像步长 |
image_channels | int | 输入图像通道数 |
pixel_format | int | 输入图像格式 |
time_stamp | double | 传入时间戳 |
boundBox | ObjectTrackingBoundBox | 输入buffer |
备注
关于ObjectTrackingBoundBox可参考com.effectsar.labcv.effectsdk.ObjectTracking.java,并且其定义与C接口bef_ai_object_tracking_bounding_box保持一致。
public int destroy()
答:建议首先查看以下tag输出Error类型的日志:
bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK
错误码请参考错误码表