TSINGSEE青犀视频开发AI识别对接大华AI设备以通道或者库为对象布控的流程介绍

目前TSINGSEE青犀视频正在对不同AI设备的功能进行对接测试,本文分享一下大华AI设备以通道或者库为对象布控的流程。

定义说明:

以通道为对象进行布控,即一个通道可布控一个或者多个人脸库。
以库为对象进行布控,即一个人脸库可布控一个或者多个通道。

两种方式都为人脸库的布控。

流程步骤

步骤1 调用 CLIENT_Init 完成 SDK 初始化流程
步骤2 初始化成功后,调用 CLIENT_LoginEx2 登录设备
步骤3 选择不同人脸库的布控方式,有以库为对象进行布控,以通道为对象进行布控

  • 以库为对象布控
    选择以库为对象,调用 CLIENT_FaceRecognitionPutDisposition 对库进行布控
    业务使用完后,调用 CLIENT_FaceRecognitionDelDisposition 对库进行撤控
  • 以通道为对象布控
    选择以通道为对象,调用 CLIENT_SetGroupInfoForChannel 对通道布控

步骤4 业务使用完后,调用 CLIENT_Logout 登出设备
步骤5 SDK 功能使用完后,调用 CLIENT_Cleanup 释放 SDK 资源

注意

以通道为对象或者以库为对象布控都是人脸库布控的方式。

以通道为对象布控时,可将多个人脸库部署到一个通道上。以库为对象布控时,可将一个人脸库部署到多个通道上。
以通道为对象布控时,接口 CLIENT_SetGroupInfoForChannel 布控方式为覆盖方式,即总是人脸检测与人脸识别。

以最新的布控配置为主。撤控操作为将空的配置布控下去即可。

以库为对象撤控时,接口 CLIENT_FaceRecognitionDelDisposition 可对人脸库已经部署的部分 通道做撤防,例如:人脸库已经部署在 3 个通道上,撤控的时候可对其部署通道的其中 2 个通道撤控,剩余一个通道保持原样。

参考代码

// 输入参数 
NET_IN_SET_GROUPINFO_FOR_CHANNEL stInChannelDeploy = 
{ sizeof(NET_IN_SET_GROUPINFO_FOR_CHANNEL)}; 
stInChannelDeploy.nChannelID = 0; 
stInChannelDeploy.nGroupIdNum = 2; // 需要在该通道配置人脸库的个数 
strncpy(stInChannelDeploy.szGroupId[0], strGroupId1, DH_COMMON_STRING_64-1); // 对人脸库 ID 进行 拷贝 
strncpy(stInChannelDeploy.szGroupId[1], strGroupId2, DH_COMMON_STRING_64-1); 
stInChannelDeploy.nSimilaryNum = 2;// 相似度阈值个数,与人员组数相同 
stInChannelDeploy.nSimilary[0] = 85; // 第一个人脸库的人脸相似度阈值 
stInChannelDeploy.nSimilary[1] = 90; // 第二个人脸库的人脸相似度阈值 
// 输出参数 
NET_OUT_SET_GROUPINFO_FOR_CHANNEL stOutChannelDeploy = 
{ sizeof(NET_OUT_SET_GROUPINFO_FOR_CHANNEL)}; 
// 以库为对象布控 
BOOL bRet = CLIENT_SetGroupInfoForChannel(lLoginHandle, &stInChannelDeploy, &stOutChannelDeploy); 
if (flase == bRet) 
{ 
printf("CLIENT_SetGroupInfoForChannel: failed! Error code: %x.
", CLIENT_GetLastError()); 
} 
// 以通道为对象撤控,将空的布控信息下发 
if (NULL != lRealHandle) 
{ 
memset(stInChannelDeploy, 0, sizeof(NET_IN_SET_GROUPINFO_FOR_CHANNEL)); 
memset(stOutChannelDeploy, 0, sizeof(NET_OUT_SET_GROUPINFO_FOR_CHANNEL)); 
stInChannelDeploy.dwSize = sizeof(NET_IN_SET_GROUPINFO_FOR_CHANNEL); 
stOutChannelDeploy.dwSize = sizeof(NET_OUT_SET_GROUPINFO_FOR_CHANNEL); 
CLIENT_SetGroupInfoForChannel(lLoginHandle, &stInChannelDeploy, &stOutChannelDeploy); 
}

 

原文地址:https://www.cnblogs.com/TSINGSEE/p/15162532.html