更新记录
1.0(2023-10-22)
百度离线人脸识别,人脸收集,属性(性别年龄)识别等(暂支持安卓),安卓minSDK最低22
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.1 - 9.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
插件说明:
百度离线人脸识别,人脸收集,属性(性别年龄)识别等,目前只支持安卓端!
另:该插件支持的功能为属性识别,即当人脸出现在摄像头前时,会返回性别,年龄,活体得分,是否戴眼镜等信息,
不包含其它功能如:支付模式,闸机模式,考勤模式下的人脸认证。
人脸识别成功后保存人脸图片功能为预留功能,如有需请联系作者QQ453503875,微信bylss311(扣扣:四五三五零三八七五)!
1.使用方法:
- 1.引入插件:
const fd = uni.requireNativePlugin("YL-FaceDetect");
- 2.初始化(注意:需要自己在百度后台申请设备授权码,个人用户会有两个免费测试授权码),初始化成功后会直接启动摄像头进行识别,识别成功会持续返回识别结果
fd.init(this.inputValue, res => {
this.content = JSON.stringify(res);
});
- 3.停止、销毁:
fd.destroy();
注意:使用以上方式,可在vue中使用,但启动摄像头后不会显示摄像头预览画面,插件内部默认了为1像素,以满足大部分用户的无感知识别需求。
如果想显示预览画面,插件为你提供了view的方式,但必须使用nvue:
<yl-face-view ref="fd" style="width: 300;height: 600;"></yl-face-view>
然后使用ref初始化:
this.$refs.fd.init(this.inputValue, res => {
this.content = JSON.stringify(res);
});
如果你想使用vue引入插件,并且要显示预览画面,或者有其它方面的需求,可联系本人!
代码示例:
<template>
<div style="padding: 20rpx;">
<input placeholder="输入lisenseId" style="height: 100rpx;padding: 0 20rpx;border: 1px solid red;margin: 20rpx 0;"
v-model="inputValue" />
<button type="primary" style="margin: 20rpx 0;" plain="true" @click="init()">开始识别</button>
<button type="primary" style="margin: 20rpx 0;" plain="true" @click="stop()">停止识别</button>
<view class="text" style="margin: 20rpx 0;">
<text>{{content}}</text>
</view>
</div>
</template>
<script>
// 获取 module
const fd = uni.requireNativePlugin("YL-FaceDetect");
export default {
data() {
return {
inputValue: "",
content: ""
}
},
mounted() {
},
beforeDestroy() {
this.stop();
},
methods: {
init() {
fd.init(this.inputValue, res => {
this.content = JSON.stringify(res);
});
},
stop() {
fd.destroy();
}
}
}
</script>
<style>
.text {
line-height: 1.5;
text-align: justify;
word-wrap: break-word;
}
</style>