更新记录
1.0.1(2025-09-03)
- 增加相机录入人脸、相机识别,开启活体、切换摄像头等
- 增加人脸库管理
- 增加对比两张图片是否是同一个人,获取图片人的年龄、性别等信息
1.0.0(2025-09-03)
- 人脸识别
平台兼容性
uni-app(4.08)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
- |
- |
√ |
√ |
5.0 |
- |
- |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(4.07)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
- |
- |
5.0 |
- |
- |
- |
其他
虹软人脸识别离线识别-人脸识别免费版
开发文档
- 注册登录虹软开发后台
- 创建应用后,右上角点击“添加SDK”按钮,选择“人脸识别 免费”(不要选择到其他版本),选择V3.0版本,然后选择Android平台,java语言等
- 集成插件,集成插件步骤请参考
https://www.cnblogs.com/wenrisheng/p/18323027
- 下载demo,拷贝demo里的uni_modules/wrs-uts-arcfacefree-so文件夹到项目对应目录,然后在项目里导入:
import {
UTSArcFaceFreeSo
} from "@/uni_modules/wrs-uts-arcfacefree-so"
- 删除本地基座和手机上以安装的app,重新自定义基座运行
版本
虹软SDK版本号: Android:V3.0,最高支持Android 10
组件
<wrs-uts-arcfacefree ref="arcfacefree" :style="'width:'+width+'px;height:'+height+'px;'" @onLoadView="onLoadView"
@onArcfaceEvent="onArcfaceEvent"></wrs-uts-arcfacefree>
- 使用了改组件的页面要使用nvue或uvue
- 从相机录入人脸到本地人脸裤
let userName = "张三"
this.$refs["arcfacefree"].startRegister(userName)
this.$refs["arcfacefree"].startCompare()
this.$refs["arcfacefree"].switchCamera()
let open = true
this.$refs["arcfacefree"].setLivenessDetect(open)
- onLoadView,视图加载事件
- onArcfaceEvent,人脸注册/识别事件
onArcfaceEvent(e) {
console.log(JSON.stringify(e))
let dynamicJSONFields = e.detail.dynamicJSONFields
let opt = dynamicJSONFields.opt
switch (opt) {
case "onRegisterFinished":
let success = dynamicJSONFields.success
if (success) {
this.showToast("注册成功!userName:" + this.userName)
// uni.navigateBack()
} else {
this.showToast("注册失败")
}
break;
case "onRegisterExcept":
this.showToast("注册异常")
break;
case "onRecognized":
let compareResult = dynamicJSONFields.compareResult.dynamicJSONFields
let similar = compareResult.similar
if(similar > 0.8) {
let userName = compareResult.userName
this.showToast("识别成功:" + userName)
}
break;
default:
break;
}
}
接口
import {
UTSArcFaceFree,
UTSFaceEngine
} from "@/uni_modules/wrs-uts-arcfacefree"
let faceEngine = new UTSFaceEngine()
UTSArcFaceFree.activeEngine(this.appId, this.sdkKey, (resp) => {
let code = resp.code
if (code == 0) {
this.showMsg("引擎激活成功")
} else if (code == 90114) {
this.showMsg("引擎已经激活")
} else if (code == 98309) { // 该激活码已被其他设备使用
this.showMsg("该激活码已被其他设备使用");
} else { // 激活失败
// 在https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/help查询激活失败原因
this.showMsg("激活失败, code:" + code +
" 在https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/help查询失败原因");
}
})
- 设置识别角度,一些外接到摄像头需要配置识别角度才能识别到人脸
let array = ["0", "90", "180", "270", "all"]
this.showActionSheet(array, (index) => {
UTSArcFaceFree.setFtOrient(array[index])
})
人脸库管理
UTSArcFaceFree.initFaceServer()
UTSArcFaceFree.getAllFaces((resp) => {
console.log(JSON.stringify(resp))
let data = resp.data
if (data) {
this.dataArray.push(...data)
}
})
let localImagePath = UTSArcFaceFree.getResourcePath("/static/test.jpg")
let remoteImagePath = "http://192.168.2.248:8080/file/test.jpg"
let userName = "" + new Date().getTime()
let params = {}
params.data = [{
url: localImagePath,
userName: userName + "_1"
}, {
url: remoteImagePath,
userName: userName + "_2"
}]
UTSArcFaceFree.registerMoreFace(params, (resp) => {
this.refreshFaceData()
this.showMsg(JSON.stringify(resp))
})
// 通过用户名删除
let userName = "张三"
UTSArcFaceFree.deleteByUserName(userName, ()=>{
})
UTSArcFaceFree.clearAllFaces((resp) => {
})
faceEngine.initEngine()
faceEngine.unInitEngine()
let path = "/xxxxx/xx.jpg"
faceEngine.getBitmapPersonInfo(path, (resp) => {
// {"info":{"face3DAngles":[{"status":0,"yaw":1.9461840391159058,"pitch":0.8821629285812378,"roll":0.6858348250389099}],"faceInfos":[{"faceId":-1,"orient":1}],"genderInfos":[{"gender":0}],"ageInfos":[{"age":44}]}}
this.showMsg(JSON.stringify(resp))
})
let path1 = "/xxxxx/xx1.jpg"
let path2 = "/xxxxx/xx2.jpg"
faceEngine.compareBitmap(path1, path2, (resp) => {
let score = resp.score
if(score >= 0.8) {
this.showToast("同一个人")
} else {
this.showToast("不是同一个人")
}
this.showMsg(JSON.stringify(resp))
})
虹软的免费版sdk有效期只有一年,一年以后需要重新下载sdk更新项目,可以联系作者更新或者自己手动更新,自己手动更新步骤如下:
- 解压imageutil/ArcsoftImageUtil.zip文件
- 将imageutil/ArcsoftImageUtil/libs/arcsoft_image_util.jar文件拷贝到libs下
- 将imageutil/ArcsoftImageUtil/libs/arm64-v8a/libarcsoft_image_util.so文件拷贝到libs/arm64-v8a下
- 将imageutil/ArcsoftImageUtil/libs/armeabi-v7a/libarcsoft_image_util.so文件拷贝到libs/armeabi-v7a下
- 将libs下的所有文件都拷贝到uni_modules/wrs-uts-arcfacefree-so/utssdk/app-android/libs下
- 修改uni_modules/wrs-uts-arcfacefree-so/utssdk/app-android/config.json文件:
删除dependencies下的"com.gitee.uniapp_uts.arc-face-free-lib-demo:module_arcfacefree_so:1.0.9",最终改为:
{
"minSdkVersion": "19"
}
- 删除本地基座和手机app,重新自定义基座运行
- 采用新的appId、sdkKey激活引擎