当前位置: 首页 > 后端技术 > Node.js

虹软身份验证增值版-node.js调用C++SDK

时间:2023-04-03 11:14:45 Node.js

一、前言随着5G时代的到来,人脸识别技术越来越贴近我们的生活,对开发者来说是一个挑战,也是越来越难了。作为国内领先的人脸识别算法厂商之一,虹软提供多平台、多语言的人脸识别SDK,适用场景广泛。产品主要功能有:人脸检测、跟踪、特征提取、特征比对、属性检测、活体检测、图像质量检测等。此外,虹软提供了基于本地算法特征的离线识别SDK,提供离线支持所有平台。随着node.js的广泛应用,基于node.js的前后端框架越来越多,如:桌面跨平台应用框架:Electron;服务器端框架:express、koa、thinkjs、eggjs等。细心的朋友可能会发现官方并没有提供node.jsSDK。本文将介绍如何在node.js环境下调用虹软证人验证增值版WindowsX64位版本3.0C++SDK包。2.环境配置安装node.js>v10.0.0,我使用v12.19.1配置npm镜像npmconfigsetregistryhttps://registry.npm.taobao.org安装node-ffi编译工具:windows-build-tools安装process需要很长时间,请耐心等待,期间不要中断,控制台会显示全部success表示完成。该操作会自动配置node-gyp、python等npminstall-gwindows-build-tools3.框架引入打包好的npm包。npm包已经集成了所有的SDK方法,只需要调用对应的方法即可。npm包可以在electron、koa等框架下直接导入调用。有兴趣研究调用过程的可以直接参考代码。项目源码地址:github`npmiarcsoft-idcardpro--save`node.js调用C++动态库依赖node-ffi库,由于node-ffi支持的node版本太低,无法使用在更高版本的电子中;有一位国外作者提供了node-ffi-napi库来支持更高版本的node.js,推荐大家使用。npm包会自动下载需要的依赖:包括ffi-napi、ref-array-di、ref-napi、ref-struct-di和图像处理库jimp4.调用方法``用于配置和回调参数以下方法请参考Arcsoft官方文档``'usestruct';constpath=require('路径');constIdCardPro=require('arcsoft-idcardpro');constidcard=newIdCardPro();(asyncfunction(){//set引入文件路径,将libarcsoft_face.dll,libarcsoft_face_engine.dll,libarcsoft_idcardveri.dll,libarcsoft_idcardveri.lib放在你预设调用目录下的sdk下。process.env.PATH=`${process.env.PATH}${path.delimiter}${path.join(__dirname,'./dll')}`;try{//在线激活constonlineActivationRes=idcard.onlineActivation('libarcsoft_idcardveri',{appId:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",//请使用自己的sdkKey:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",//请使用自己的activeKey:'xxxx-xxxx-xxxx-xxxx'//请使用你自己的});console.log(onlineActivationRes);//离线激活constofflineActivationRes=idcard.offlineActivation('libarcsoft_idcardveri',path.join(__dirname,'../A621114C3133JNGR.dat'));控制台日志(offlineActivationRes);//获取激活文件信息constgetActiveFileInfoRes=idcard.getActiveFileInfo('libarcsoft_idcardveri');控制台日志(getActiveFileInfoRes);//配置初始化引擎constinitOpts={libFile:'libarcsoft_idcardveri',//检测属性配置:1:开启RGB活体检测,2:开启IR活体检测,3:开启画质检测,4:开启RGB+IR活体检测,5:开启RGB活体检测和画质检测,6:开启IR活体检测和画质检测,7:开启RGB+IR活体检测和画质检测combinedMask:1,imgQualityThreshold:0.4,//照片图像质量阈值modelThreshold_RGB:0.5,//RGB活体检测阈值modelThreshold_IR:0.7//IR活体检测};constinitRes=idcard.initialEngine(initOpts);if(initRes!==0){thrownewError('InitialEngineFailed!');}}//证件照比对constcompareOpts={type:0,//人脸数据类型1-视频0-静态图compareThreshold:0.5,//人证照比对阈值idcardFile:awaitidcard.parseImage(path.join(__dirname,'./img/f1.jpg')),faceFile:awaitidcard.parseImage(path.join(__dirname,'./img/faceA.jpg'))};constcompareRes=idcard.faceIdcardCompare(compareOpts);console.log(compareRes);}catch(err){console.error(err);}})();开源不易,转载请注明出处,谢谢~如果觉得本开发包对你有帮助,请点赞支持,谢谢~使用过程中有问题可以微信联系我了解更多人脸识别产品,请前往虹软视觉开放平台