| 支持平台 | 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
错误码请参考错误码表