物联网智能视频服务(消费版) AI 模块

本模块主要实现用户将需要检测的图片上传至 COS,并请求 AI 后台完成推理,实现用户数据上云 AI 检测功能。

相关产品
物联网智能视频服务(消费版) 产品页,含版本规格、价格与购买入口。

一、使用流程

iv_ai_init |iv_ai_notify_event |iv_ai_start/iv_ai_stop |iv_ai_add_model_id / iv_ai_del_mode_id |iv_ai_upload_cos_result_cb // 收到sdk 处理回调 |iv_ai_deinit

二、接口参考

该功能模块提供以下接口:

·iv_ai_init():AI 模块初始化。

·iv_ai_deinit():AI 系统去初始化。

·iv_ai_start():启动 AI 推理。

·iv_ai_stop():停止 AI 推理。

·iv_ai_set_notify_event():通知 SDK 发生抓图等事件。

·iv_ai_add_model_id():添加模型 ID。

·iv_ai_del_model_id():删除模型 ID。

注意:用户需注册以下回调函数

注意:(*iv_ai_upload_cos_result_cb)() :SDK 结果处理回调。

三、iv_ai_init

函数原型

void *iv_ai_init(iv_ai_init_parm_s params);

功能描述
进行 AI 功能初始化的接口函数,返回 AI 处理的 handle。

参数说明

参数名称 类型 描述 输入/输出
params iv_ai_init_parm_s 初始化 AI 需要传入的参数。 输入

返回值
初始化成功,则返回对应的 handle,失败返回 NULL。

四、iv_ai_deinit

函数原型

int iv_ai_deinit(void **pp_handle);

功能描述
销毁 AI 功能。

参数说明

参数名称 类型 描述 输入/输出
pp_handle void ** 通过 iv_ai_init 初始化的 handle。 输入

返回值

返回值 描述
IV_ERR_NONE 成功。
IV_ERR_* 失败,对应相应 错误码。

五、iv_ai_start

函数原型

int iv_ai_start(void *handle);

功能描述
开始 AI 服务。

参数说明

参数名称 类型 描述 输入/输出
handle void * 通过 iv_ai_init 初始化的 handle。 输入

返回值

返回值 描述
IV_ERR_NONE 成功。
IV_ERR_* 失败,对应相应 错误码。

六、iv_ai_stop

函数原型

int iv_ai_stop(void *handle);

功能描述
停止 AI 服务。

参数说明

参数名称 类型 描述 输入/输出
handle void * 通过 iv_ai_init 初始化的 handle。 输入

返回值

返回值 描述
IV_ERR_NONE 成功。
IV_ERR_* 失败,对应相应 错误码。

七、iv_ai_notify_event

函数原型

int iv_ai_notify_event(void *handle, int evt_id, void *arg);

功能描述

通知 SDK 发生了相关的事件,例如抓图事件。

参数说明

参数名称 类型 描述 输入/输出
handle void * 通过 iv_ai_init 初始化的 handle。 输入
evt_id int 事件 ID,目前只支持抓图事件(IV_AI_EVENT_PIC_TRIG)。 输入
arg void * 事件相关的参数,例如抓图事件需要告知抓图的 ID,以便 SDK 获取图片路径。 输入

返回值

返回值 描述
IV_ERR_NONE 成功。
IV_ERR_* 失败,对应相应 错误码。

八、iv_ai_add_model_id

函数原型

int iv_ai_add_model_id(void *handle, int model_id);

功能描述

通过此接口动态添加 AI 的模型 ID。

参数说明

参数名称 类型 描述 输入/输出
handle void * 通过 iv_ai_init 初始化的 handle。 输入
model_id int 模型 ID,需要添加的推理模型 ID。 输入

返回值

返回值 描述
IV_ERR_NONE 成功。
IV_ERR_* 失败,对应相应 错误码。

九、iv_ai_del_model_id

函数原型

int iv_ai_del_mode_id(void *handle, int model_id);

功能描述
通过此接口动态删除 AI 的模型 ID。

参数说明

参数名称 类型 描述 输入/输出
handle void * 通过 iv_ai_init 初始化的 handle。 输入
model_id int 模型 ID,需要添加的推理模型 ID。 输入

返回值

返回值 描述
IV_ERR_NONE 成功。
IV_ERR_* 失败,对应相应 错误码。

十、iv_ai_upload_cos_result_cb

函数原型

int32_t (*iv_ai_upload_cos_result_cb)(char *file_path, int err_code);

功能描述

·上传图片结束回调,并通知上传结果。

·在收到对应图片回调前不得回收图片资源,否则 SDK 上传图片可能失败。

参数说明

参数名称 类型 描述 输入/输出
file_path 上传图片绝对路径 上传对应图片的文件路径。 输出
err_code int 上传图片的结果。 输出

返回值
无

十一、数据结构

该模块提供以下数据结构:

iv_ai_init_parm_s :初始化 AI 需要传入的参数 。

十二、iv_ai_init_parm_s

参数说明

名称 类型 描述
work_dir char * 需要 AI 推理图片存储路径,需要 AI 推理图片存储路径,长度限定为128字节。
model_id int AI 模型 ID,目前只支持1 – 128,1为人形检测模型。
iv_ai_upload_cos_result_cb void (*) (char *, int) 用来处理 COS 上传的结果,参数为上传 COS 的图片路径和上传的结果。

返回值
初始化成功,则返回对应的 handle,失败返回 NULL。

十三、注意事项

上传图片要求如下:

·图片 base64 编码后大小不可超过5M。

·图片分辨率不得超过 1920 * 1080 。

·建议图片存储于腾讯云,从而保障 URL 更高的下载速度和稳定性;非腾讯云存储的 URL 速度和稳定性可能受一定影响。

·支持 PNG、JPG、JPEG、BMP,不支持 GIF 图片。

十四、示例代码

//AI模块初始化#define CLOUDAI_TEST_ID (1)#define cloudai_work_dir ("./demo_media/ai_pic/")static void test_upload_cos_result_cb(char *file_path, int result) { if(IV_AI_UPLOAD_COS_SUCCESS == result) { printf("Upload file [%s] to COS successful!\\n", file_path); } else { printf("Failed to upload file [%s]!\\n", file_path); }}iv_ai_init_parm_s params = {cloudai_work_dir, CLOUDAI_MODEL_ID, test_upload_cos_result_cb};ai_handle = iv_ai_init(params);if (!ai_handle) { Log_d("Failed to initialize cloudai client"); return IV_ERR_CLOUDAI_INIT_FAIL;;}//通知sdk抓图#define CLOUDAI_TEST_ID (1)int cur_id = CLOUDAI_TEST_ID;ret = iv_ai_notify_event(ai_handle, IV_AI_EVENT_PIC_TRIG, &cur_id);if(0 != ret) { Log_e("send event failed!");}

赞 (0)
上一篇 4天前
下一篇 4天前