虹软(免费版)人脸识别

您所在的位置:网站首页 人脸模板采集需要下载吗 虹软(免费版)人脸识别

虹软(免费版)人脸识别

2024-07-11 02:34| 来源: 网络整理| 查看: 265

更新记录 1.0.18(2024-06-24)

替换sdk内核

1.0.17(2023-08-07)

替换识别内核

1.0.16(2022-08-08)

更新虹软SDK为V3.0

查看更多 平台兼容性 Android Android CPU类型 iOS 适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 14 原生插件通用使用流程: 购买插件,选择该插件绑定的项目。 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。 开发完毕后正式云打包

付费原生插件目前不支持离线打包。 Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择

前言

虹软(免费版)人脸识别组件,支持活体识别、离线识别、图片人脸特征识别、图片是否同一人对比、相机人脸识别或对比,虹软收费版请使用https://ext.dcloud.net.cn/plugin?id=5785 新版本已经迁移到https://ext.dcloud.net.cn/plugin?id=11612

功能 支持活体识别、离线识别 图片人脸特征识别(年龄、性别、3DAngle) 两张图片是否是同一人对比 相机活体识别出人脸,用于人脸注册保存到本地,便于后面身份鉴定时作对比 相机活体人脸对比,用于鉴定身份,常用于支付前活体人脸身份鉴定 激活引擎

使用之前需要激活引擎,虹软官方https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/login注册账号,获取appid、sdkkey,虹软免费版暂不支持高版本的android{好像是Android10以后就不支持免费版了}、iOS系统,激活时报错(错误码:28677),高版本的系统请使用虹软增值收费版请使用https://ext.dcloud.net.cn/plugin?id=5785 激活错误码查询:https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/help

如果是老用户,一年时期到了不能识别,请登陆虹软开发者中心重新添加SDK,生成新的SDK_KEY,使用新的SDK_KEY,然后重新自定义基座打包 var arcface = uni.requireNativePlugin("wrs-arcfacefree"); var options = {}; options.appid = "xxxxx"; switch (uni.getSystemInfoSync().platform) { case 'android': options.sdkkey = 'xxx'; break; case 'ios': options.sdkkey = 'xxx'; break; default: break; } arcface.activeEngine(options, (resp) => { if (resp.result) { console.log("激活成功"); } else { console.log("激活失败"); } this.showMsg("引擎激活结果:" + JSON.stringify(resp)) }); 获取图片人脸信息(年龄、性别、3DAngle) var options = { url: “” // 本地图片地址或网络图片 }; arcface.getImageFaceFeature(options, (resp) => { if (resp.result) { console.log("识别成功"); } else { console.log("识别失败"); } this.showMsg("图片识别结果:" + JSON.stringify(resp)) }); 设置相机检测角度

如果识别不到人脸(一般手机app开发都不用设置,某些Android嵌入式摄像头需要设置),可以尝试调整这个参数,取值为[0, 90, 180, 270, all],类型为字符串,分表表示检测0度、90度、180度、270度、全方位角度

arcface.setVideoAngle({ videoAngle: "all" // 0:仅检测0度 90:仅检测90度 180:仅检测180度 270:仅检测270度 all:检测0、90、270、180全角度 }); 判断2个人脸图是否是同一个人 var options = { url1: “”, // 图片1地址,本地图片地址或网络图片 url2: ”“ // 图片2地址 }; arcface.getSimilarity(options, (resp) => { if (resp.result) { var similarity = resp.similarity; if (similarity >= 0.80) { // 一般相似度大于0.8基本上就是同一个人了 console.log("是同一个人"); } else { console.log("不是同一个人"); } } this.showMsg("获取相似度结果:" + JSON.stringify(resp)) }); 判断权限 switch (uni.getSystemInfoSync().platform) { case 'android': arcface.checkPermission((resp) => { this.showMsg("授权结果:" + JSON.stringify(resp)); }); break; case 'ios': arcface.checkVideoPermission((resp) => { this.showMsg("授权结果:" + JSON.stringify(resp)); }); break; } 摄像机人脸识别或人脸身份对比鉴定 config: { bgColor: "#000000", // 背景颜色 anchorFrame: { bgImage: frameImage, // 人脸框图片 left: left, // 人脸框左边距,单位 dp top: top, // 人脸框上边距 width: frameWidth,// 人脸框宽度 height: frameHeight // 人脸框高度 } }

config属性:

bgColor: 背景颜色 anchorFrame: 人脸框 anchorFrame.bgImage: 人脸框图片 anchorFrame.left: 人脸框左边距,单位 dp anchorFrame.top:人脸框上边距 anchorFrame.width: 人脸框宽度 anchorFrame.height: 人脸框高度

方法: 停止摄像头

this.$refs.arcfacevideo.stop();

开始摄像头,组件默认已经开启摄像头

this.$refs.arcfacevideo.start();

开始识别人脸,需要在组件事件onLoadView中或之后调用

var params = {}; var params = { mode: "compare", // 模式,支持recognize、compare,recognize表示从摄像头识别人脸,一般用于人脸注册保存到本地,compare表示从摄像头识别出某个人,一般用于身份鉴权 compareImage: { type: 'url', // 类型,支持url、base64、faceFeatureData,url表示图片地址,支持本地地址,base64表示图片base64的字符串,faceFeatureData表示人脸特征数据的字符串 value: saveImageFilePath, name: "张三" }, // 比较图片地址 similarity: 0.8, // 相似度,大于这个相似度表示是同一个人 liveness: false, // 是否活体识别 faceNeedInRect: false, // 人脸是否需要在anchorFrame人脸框内 needBase64Image: false, // 识别到的图片是否需要进行base64编码返回,base64编码在Android上比较慢 needFaceFeatureData: false, // 是否需要人脸特征base64后返回 cropAnchorFrameImage: false, // 返回的base图片或保存saveImageFilePath的图片是否只需要裁剪人脸大小 cropAnchorFrameImageBestRect: false // 为了美观,裁剪人脸大小是否扩大人脸图,仅对Android生效 }; this.$refs.arcfacevideo.startFace(params);

params参数:

mode: 模式,支持recognize、compare,recognize表示从摄像头识别人脸,一般用于人脸注册保存到本地,compare表示从摄像头识别出某个人,一般用于身份鉴权 compareImage 人脸对图片,用于mode为recognize识别对比模式时作相机对比图片 compareImage.type: 图片类型,值为:url、base64,url表示图片地址,支持本地地址和网络地址,base64表示图片base64的字符串 compareImage.value:图片类型对应的值 similarity: 相似度,用于mode为recognize模式时相似度大于这个值时认为是同一个人 liveness: 是否需要活体识别 faceNeedInRect: 人脸是否需要在anchorFrame人脸框内 needBase64Image: 识别到的图片是否需要进行base64编码返回,base64编码在Android上比较慢 saveImageFilePath: 识别到的图片是否需要保存为文件,如果不需要saveImageFilePath值不用传或传空 needFaceFeatureData: 是否需要人脸特征base64后返回

切换相机前后摄像头

this.$refs.arcfacevideo.switchCamera()

识别对比过程中,动态增加对比图片,增加到图片是放到内存

var params = {}; params.images = [ { type: 'url', // 类型,支持url、base64、faceFeatureData,url表示图片地址,支持本地地址,base64表示图片base64的字符串,faceFeatureData表示人脸特征数据的字符串 value: "http://192.168.11.10:8086/image/video_compare_local_image.png", name: "张三" } ]; this.$refs.arcfacevideo.addCompareImage(params);

识别对比过程中,动态删除对比中的图片

var params = {}; params.names = [ { name: "张三" } ]; this.$refs.arcfacevideo.deleteCompareImage(params);

识别对比过程中,动态删除对比中的所有图片

this.$refs.arcfacevideo.cleanCompareImage();

事件

@resultCallback mode模式为recognize时,识别到人时回调 mode模式为compare时,识别到人,且大于等于相似度时回调

如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,您的关注就是我们创作的动力!


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3