zoukankan      html  css  js  c++  java
  • TSINGSEE青犀视频开发大华sdk以图搜图功能简介

    大家知道我们最近一直在开发EasyCVR的智能识别功能,为了能够将不同的格式及SDK都与我们EasyCVR进行适配,我们也开始对此进行了研究。本文主要是分享一下我们在开发智能识别功能时,涉及到大华SDK以图搜图功能的简介。

    该功能的实现主要是先从外部导入一张图片和相似度值,IVSS、NVR等设备通过这张图检索历史库或人脸库是否已经存在匹配的人脸,并返回在相似度之上的图片结果。

    下面简述下调用过程:

    1、调用 CLIENT_Init 完成 SDK 初始化流程。
    2、初始化成功后,调用 CLIENT_LoginEx2 登录设备。
    3、调用 CLIENT_StartFindFaceRecognition 设置人脸查询条件。
    4、查看以上步骤中的返回值,若接口出参结构体中 nTotalCount 返回的是-1,需要等待设备查询完成。
    5、调用 CLIENT_AttachFaceFindState 订阅人脸查询状态。然后等待进度回调函数中的返回进度为 100 时即搜索完成。搜索完成后调用 CLIENT_DetachFaceFindState 取消订阅查询进度。
    6、调用 CLIENT_DoFindFaceRecognition 接口获取查询结果。
    7、调用 CLIENT_StopFindFaceRecognition 接口结束查询。
    8、业务使用完后,调用 CLIENT_Logout 登出设备。
    9、SDK 功能使用完后,调用 CLIENT_Cleanup 释放 SDK 资源。

    代码示例:

    // 查询进度回调函数 
    void CALLBACK FaceFindState(LLONG lLoginID, LLONG lAttachHandle, NET_CB_FACE_FIND_STATE* 
    pstStates, int nStateNum, LDWORD dwUser) 
    { 
    if (pstStates->nProgress== 100) //表示查询进度 100% 
    { 
    // 停止人脸查询进度的订阅 
    CLIENT_DetachFaceFindState(lAttachHandle); 
    // 开始查询 
    DoFind(); 
    } 
    return; 
    } 
    // 配置查询条件 
    NET_IN_STARTFIND_FACERECONGNITION stuInParam = { sizeof(stuInParam) }; 
    NET_OUT_STARTFIND_FACERECONGNITION stuOutParam = { sizeof(stuOutParam) }; 
    stuInParam.stFilterInfo.dwSize = sizeof(stuInParam.stFilterInfo); 
    stuInParam.stMatchOptions.dwSize = sizeof(stuInParam.stMatchOptions); 
    stuInParam.bPersonExEnable = TRUE; 
    stuInParam.nChannelID = 0; 
    stuInParam.stMatchOptions.nSimilarity = 80; 
    stuInParam.stFilterInfo.stStartTime = startTime; 
    stuInParam.stFilterInfo.stEndTime = endTime; 
    stuInParam.nBufferLen = nPicBufLen; 
    stuInParam.pBuffer = strPicBuf; // 图片 Buffer 
    stuInParam.stPersonInfoEx.wFacePicNum = 1; 
    stuInParam.stPersonInfoEx.szFacePicInfo[0].dwOffSet = 0; 
    stuInParam.stPersonInfoEx.szFacePicInfo[0].dwFileLenth = nLength; 
    BOOL bRet = CLIENT_StartFindFaceRecognition(m_lLoginId, &stuInParam, &stuOutParam, 5000); 
    if (!bRet) 
    { 
    printf("CLIENT_StartFindFaceRecognition: failed! Error code %x.
    ", CLIENT_GetLastError()); 
    return -1; 
    } 
    m_lFindHandle = stuOutParam.lFindHandle; 
  • 相关阅读:
    JsBridge踩坑之WebViewJavascriptBridge is undefined,找不到Bridge对象
    Android踩坑之couldn't find "libClingSDK.so"
    GDM, KDM, LightDM, SDDM的区别和安装配置
    安装完ubuntu需要做得事
    apt vs snap
    在shell下执行命令的方法
    Vimmer一套全语言支持的完美Vim配置——附Monaco字体
    Ubuntu gnome安装Monaco字体,FontForge module is probably not installed
    Ubuntu全方位美化,定制教程
    stm32--FatFs调试过程(SPIFlash)
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/15384850.html
Copyright © 2011-2022 走看看