Appearance
使用方法
安卓百度离线人脸识别UTS原生组件,支持UVC/USB外接摄像头,支持在线激活,离线激活,批量激活,单个人脸注册,批量注册,相机人脸注册等,插件使用灵活识别速度快,插件支持自定义数据存储目录,支持UVC/USB外接摄像头识别和注册。插件支持uniapp和uniappx
注意事项
- 当前插件为
1.x版本的升级版,同时支持uniapp和uniappx - 当前
2.*版本更新内容较多,使用方法有重大更新,如果您当时使用的是1.*版本请移步至1.*版本文档 1.*版本不再更新,后期将直接更新2.*版本- 如果您在使用插件的过程中有任何问题,可以联系作者,作者将全力协助您使用插件
- 本文档同时提供了uniapp的用法示例和uniappx的用法示例,插件市场导入的示例项目仅为uniapp的用法示例,如果您需要uniappx的示例项目可以通过下方的链接下载示例
- 组件只能在nvue/uvue页面中使用,不支持vue页面
相关链接
- 安卓百度OCR图文证件识别原生插件
- 安卓百度人脸识别RK356x专用版UTS原生插件
- 安卓百度地图和定位UTS原生插件,支持息屏定位,离线地图下载,多地图等
- 安卓百度识图UTS原生插件
- 安卓百度离线人脸识别UTS原生组件
- 安卓百度语音合成UTS原生插件
使用流程
- 在线激活
- 初始化SDK
- 注册人脸
- 识别人脸
SDK版本
V8.6.0.2026.04.15
联系作者

关注微信公众号可联系作者
官方文档
https://ai.baidu.com/ai-doc/FACE/pk37c1mqu
插件地址
https://ext.dcloud.net.cn/plugin?id=24993
演示程序

进群下载演示程序
演示程序仅打包了arm64-v8a设备支持的apk,如需演示可下载apk后在手机上演示
权限
- android.permission.CAMERA
- android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.READ_EXTERNAL_STORAGE
API用法
用法
在需要使用插件的页面加载以下代码
js
import * as module from "@/uni_modules/leven-uts-bdUvcFace"js
import * as module from "@/uni_modules/leven-uts-bdUvcFace"示例
vue
<template>
<view style="padding: 16px;">
<uni-card title="设置">
<uni-grid>
<uni-grid-item>
<view class="grid-box" @click="toPage('manager')">
<view style="margin-bottom: 5px;">
<uni-icons type="staff-filled" size="36"></uni-icons>
</view>
<view>人脸管理</view>
</view>
</uni-grid-item>
</uni-grid>
</uni-card>
<uni-card title="UVC摄像头">
<uni-grid>
<uni-grid-item>
<view class="grid-box" @click="toPage('register')">
<view style="margin-bottom: 5px;">
<uni-icons type="personadd-filled" size="36"></uni-icons>
</view>
<view>人脸注册</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box" @click="toPage('fullScreen')">
<view style="margin-bottom: 5px;">
<uni-icons type="person-filled" size="36"></uni-icons>
</view>
<view>全屏识别</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box">
<view style="margin-bottom: 5px;" @click="toPage('round')">
<uni-icons type="contact-filled" size="36"></uni-icons>
</view>
<view>圆形识别</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box">
<view style="margin-bottom: 5px;" @click="toPage('circle')">
<uni-icons type="circle" size="36"></uni-icons>
</view>
<view>自定义圆角</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box" @click="toPage('identity')">
<view style="margin-bottom: 5px;">
<uni-icons type="images" size="36"></uni-icons>
</view>
<view>人证核验</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box" @click="toPage('attribute')">
<view style="margin-bottom: 5px;">
<uni-icons type="person-filled" size="36"></uni-icons>
</view>
<view>属性模式</view>
</view>
</uni-grid-item>
</uni-grid>
</uni-card>
<uni-card title="设备自带摄像头">
<uni-grid>
<uni-grid-item>
<view class="grid-box" @click="toDevicePage('register')">
<view style="margin-bottom: 5px;">
<uni-icons type="personadd-filled" size="36"></uni-icons>
</view>
<view>人脸注册</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box" @click="toDevicePage('fullScreen')">
<view style="margin-bottom: 5px;">
<uni-icons type="person-filled" size="36"></uni-icons>
</view>
<view>全屏识别</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box">
<view style="margin-bottom: 5px;" @click="toDevicePage('round')">
<uni-icons type="contact-filled" size="36"></uni-icons>
</view>
<view>圆形识别</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box">
<view style="margin-bottom: 5px;" @click="toDevicePage('circle')">
<uni-icons type="circle" size="36"></uni-icons>
</view>
<view>自定义圆角</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box" @click="toDevicePage('identity')">
<view style="margin-bottom: 5px;">
<uni-icons type="images" size="36"></uni-icons>
</view>
<view>人证核验</view>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-box" @click="toDevicePage('attribute')">
<view style="margin-bottom: 5px;">
<uni-icons type="person-filled" size="36"></uni-icons>
</view>
<view>属性模式</view>
</view>
</uni-grid-item>
</uni-grid>
</uni-card>
</view>
</template>
<script>
import * as module from "@/uni_modules/leven-uts-bdUvcFace"
export default {
data() {
return {
}
},
mounted() {
this.$nextTick(() => {
//初始化sdk
this.initSdk();
})
},
methods: {
//显示消息
showMessage(message) {
uni.showToast({
title: message,
icon: "none"
})
},
toPage(type) {
switch (type) {
case "register":
uni.navigateTo({
url: "/pages/index/uvc/register"
})
break
case "fullScreen":
uni.navigateTo({
url: "/pages/index/uvc/fullScreen"
})
break
case "round":
uni.navigateTo({
url: "/pages/index/uvc/round"
})
break
case "circle":
uni.navigateTo({
url: "/pages/index/uvc/circle"
})
break
case "identity":
uni.navigateTo({
url: "/pages/index/uvc/identity"
})
break
case "attribute":
uni.navigateTo({
url: "/pages/index/uvc/attribute"
})
break
case "manager":
uni.navigateTo({
url: "/pages/index/manager"
})
break
}
},
toDevicePage(type) {
switch (type) {
case "register":
uni.navigateTo({
url: "/pages/index/device/register"
})
break
case "fullScreen":
uni.navigateTo({
url: "/pages/index/device/fullScreen"
})
break
case "round":
uni.navigateTo({
url: "/pages/index/device/round"
})
break
case "circle":
uni.navigateTo({
url: "/pages/index/device/circle"
})
break
case "identity":
uni.navigateTo({
url: "/pages/index/device/identity"
})
break
case "attribute":
uni.navigateTo({
url: "/pages/index/device/attribute"
})
break
}
},
//初始化sdk
initSdk() {
module.initSdk({
params: {
//最大人脸个数检查
maxDetectNum: 10,
//人脸大小检测,默认为60px。可传入大于50px的数值,小于此大小的人脸不予检测
minFaceSize: 60,
//人脸置信度,用于表征被检测到的物体是人脸的概率,该阈值设置越高检测越严格,建议在0.3-0.8区间内调整阈值
faceThreshold: 0.5
},
complete: (res) => {
console.log(res)
if (res.code == 0) {
let data = res.data || {};
let type = data.type;
if (type == "initModelSuccess") {
this.showMessage("模型加载成功,欢迎使用")
} else if (type == "initModelFail") {
this.showMessage("模型加载失败,请尝试重启应用")
} else if (type == "initDbComplete") {
this.showMessage("数据库加载完成")
} else if (type == "initDbFail") {
this.showMessage("数据库加载失败")
}
} else {
this.showMessage(res.message)
}
}
})
}
}
}
</script>
<style>
.grid-box {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
</style>vue
<template>
<!-- #ifdef APP -->
<scroll-view style="flex:1">
<!-- #endif -->
<lux-card title="设置">
<rice-grid :column-num="3">
<rice-grid-item text="人脸管理" icon="peoples" @click="toPage('manager')"></rice-grid-item>
</rice-grid>
</lux-card>
<lux-card title="UVC摄像头">
<rice-grid :column-num="3">
<rice-grid-item text="人脸注册" icon="plus" @click="toPage('register')"></rice-grid-item>
<rice-grid-item text="全屏识别" icon="scan" @click="toPage('fullScreen')"></rice-grid-item>
<rice-grid-item text="圆形识别" icon="checked-circle" @click="toPage('round')"></rice-grid-item>
<rice-grid-item text="自定义圆角" icon="info" @click="toPage('circle')"></rice-grid-item>
<rice-grid-item text="人证核验" icon="file-success" @click="toPage('identity')"></rice-grid-item>
<rice-grid-item text="属性模式" icon="user" @click="toPage('attribute')"></rice-grid-item>
</rice-grid>
</lux-card>
<lux-card title="设备自带摄像头">
<rice-grid :column-num="3">
<rice-grid-item text="人脸注册" icon="plus" @click="toDevicePage('register')"></rice-grid-item>
<rice-grid-item text="全屏识别" icon="scan" @click="toDevicePage('fullScreen')"></rice-grid-item>
<rice-grid-item text="圆形识别" icon="checked-circle" @click="toDevicePage('round')"></rice-grid-item>
<rice-grid-item text="自定义圆角" icon="info" @click="toDevicePage('circle')"></rice-grid-item>
<rice-grid-item text="人证核验" icon="file-success" @click="toDevicePage('identity')"></rice-grid-item>
<rice-grid-item text="属性模式" icon="user" @click="toDevicePage('attribute')"></rice-grid-item>
</rice-grid>
</lux-card>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<script setup>
import * as module from "@/uni_modules/leven-uts-bdUvcFace"
import { LevenResult, LevenOptions } from "@/uni_modules/leven-uts-bdUvcFace"
function showMessage(message : string) {
uni.showToast({
title: message,
icon: "none"
})
}
function toPage(type : string) {
switch (type) {
case "register":
uni.navigateTo({
url: "/pages/baiduFaceUvc/uvc/register"
})
break
case "manager":
uni.navigateTo({
url: "/pages/baiduFaceUvc/manager"
})
break
case "fullScreen":
uni.navigateTo({
url: "/pages/baiduFaceUvc/uvc/fullScreen"
})
break
case "round":
uni.navigateTo({
url: "/pages/baiduFaceUvc/uvc/round"
})
break
case "circle":
uni.navigateTo({
url: "/pages/baiduFaceUvc/uvc/circle"
})
break
case "identity":
uni.navigateTo({
url: "/pages/baiduFaceUvc/uvc/identity"
})
break
case "attribute":
uni.navigateTo({
url: "/pages/baiduFaceUvc/uvc/attribute"
})
break
}
}
function toDevicePage(type : string) {
switch (type) {
case "register":
uni.navigateTo({
url: "/pages/baiduFaceUvc/device/register"
})
break
case "fullScreen":
uni.navigateTo({
url: "/pages/baiduFaceUvc/device/fullScreen"
})
break
case "round":
uni.navigateTo({
url: "/pages/baiduFaceUvc/device/round"
})
break
case "circle":
uni.navigateTo({
url: "/pages/baiduFaceUvc/device/circle"
})
break
case "identity":
uni.navigateTo({
url: "/pages/baiduFaceUvc/device/identity"
})
break
case "attribute":
uni.navigateTo({
url: "/pages/baiduFaceUvc/device/attribute"
})
break
}
}
//初始化sdk
function initSdk() {
module.initSdk({
params: {
//最大人脸个数检查
maxDetectNum: 10,
//人脸大小检测,默认为60px。可传入大于50px的数值,小于此大小的人脸不予检测
minFaceSize: 60,
//人脸置信度,用于表征被检测到的物体是人脸的概率,该阈值设置越高检测越严格,建议在0.3-0.8区间内调整阈值
faceThreshold: 0.5
},
complete: (res : LevenResult) => {
if (res.code == 0) {
let data = res.data;
let type = data.getString("type")!;
if (type == "initModelSuccess") {
showMessage("模型加载成功,欢迎使用")
} else if (type == "initModelFail") {
showMessage("模型加载失败,请尝试重启应用")
} else if (type == "initDbComplete") {
showMessage("数据库加载完成")
} else if (type == "initDbFail") {
showMessage("数据库加载失败")
}
} else {
showMessage(res.message)
}
}
})
}
onMounted(() => {
initSdk()
})
</script>
<style>
</style>人脸注册组件
用法
在使用插件的地方引入以下代码:
vue
<leven-uts-baiduFaceUvc-CameraRegister ref="refLevenRegister"
style=" position: fixed; left: 0; right: 0; bottom: 0; top: 0;" :config="config" @onEvent="onEvent"
@onError="onError" @onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-CameraRegister>vue
<leven-uts-baiduFaceUvc-CameraRegister ref="refLevenRegister" style="flex:1;" :configX="config" @onEvent="onEvent"
@onError="onError" @onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-CameraRegister>
//组件的引用
const refLevenRegister = ref<LevenUtsBaiduFaceUvcCameraRegisterElement | null>(null)页面示例
vue
<template>
<view>
<leven-uts-baiduFaceUvc-CameraRegister ref="refLevenRegister"
style=" position: fixed; left: 0; right: 0; bottom: 0; top: 0;" :config="config" @onEvent="onEvent"
@onError="onError" @onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-CameraRegister>
<cover-view style="position: fixed; right: 16px; bottom: 16px;">
<button type="primary" size="mini" @click="openRegister">开始注册</button>
</cover-view>
<uni-popup ref="refPop">
<view style="width: 600rpx; height: 250px; background-color: #FFFFFF; border-radius: 8px;">
<view
style="height: 50px; border-bottom: 1px solid #f2f2f2; flex-direction: row; justify-content: center; align-items: center;">
<text>注册人脸</text>
</view>
<view style=" padding: 16px;">
<view style="margin-bottom: 16px;">
<uni-easyinput v-model="params.id" placeholder="请输入用户id"></uni-easyinput>
</view>
<view style="margin-bottom: 16px;">
<uni-easyinput v-model="params.name" placeholder="请输入用户名"></uni-easyinput>
</view>
<button type="primary" @click="register">确定</button>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
export default {
data() {
return {
config: {
//rgb摄像头旋转角度,可传入0、90、180、270四个选项
rgbVideoDirection: 0,
//rbg人脸检测角度 默认为0。可传入0、90、180、270四个选项。
rgbDetectDirection: 0,
// rbg人脸检测镜像 0:RGB无镜像,1:有镜像
mirrorDetectRGB: 1,
//rgb摄像头是否镜像,0:RGB无镜像,1:有镜像
mirrorVideoRGB: 1,
//是否显示圆形识别区
// isFaceRoundView: false,
//自定义识别区域外颜色
// outAreaBgColor: "#f2f2f2",
//是否开启openGL渲染,打开usb摄像头时需要开启
isOpenGl: true,
//摄像头位置
rbgCameraId: -1,
},
params: {
id: "1234",
name: "leven"
}
}
},
methods: {
//显示消息
showMessage(message) {
uni.showToast({
title: message,
icon: "none"
})
},
register() {
this.$refs.refPop.close()
this.$refs.refLevenRegister.register(this.params);
},
openRegister() {
this.$refs.refPop.open()
},
onEvent(e) {
console.log("onEvent:" + JSON.stringify(e.detail))
},
onError(e) {
console.log("onError:" + JSON.stringify(e.detail))
},
onEventMethod(e) {
console.log("onEventMethod:" + JSON.stringify(e.detail))
let detail = e.detail;
let type = detail.type;
if (type == "register") {
//注册
let data = detail.data;
if (data.code != 0) {
this.showMessage(data.message)
} else {
let resultData = data.data;
if (resultData.type == "success") {
this.showMessage("注册成功")
}
}
}
}
}
}
</script>
<style>
</style>vue
<template>
<view style="flex: 1;">
<leven-uts-baiduFaceUvc-CameraRegister ref="refLevenRegister" style="flex:1;" :configX="config" @onEvent="onEvent"
@onError="onError" @onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-CameraRegister>
</view>
<view style="position: fixed; right: 16px; bottom: 16px;">
<button type="primary" size="mini" @click="openRegister">开始注册</button>
</view>
<!-- 注册弹窗 -->
<rice-popup v-model:show="popShow" position="center" radius="8px" :closeable="false">
<view style="width: 600rpx; height: 250px;">
<view
style="height: 50px; border-bottom: 1px solid #f2f2f2; flex-direction: row; justify-content: center; align-items: center;">
<text>注册人脸</text>
</view>
<view style=" padding: 16px;">
<view style="margin-bottom: 16px;">
<rice-input v-model="params.id" placeholder="请输入用户id"></rice-input>
</view>
<view style="margin-bottom: 16px;">
<rice-input v-model="params.name" placeholder="请输入用户名"></rice-input>
</view>
<button type="primary" @click="register">确定</button>
</view>
</view>
</rice-popup>
</template>
<script lang="uts" setup>
import JSONObject from 'com.alibaba.fastjson.JSONObject'
//组件引用
const refLevenRegister = ref<LevenUtsBaiduFaceUvcCameraRegisterElement | null>(null)
//弹窗显示状态
const popShow = ref(false)
//初始化配置
const config = ref({
//rgb摄像头旋转角度,可传入0、90、180、270四个选项
rgbVideoDirection: 0,
//rbg人脸检测角度 默认为0。可传入0、90、180、270四个选项。
rgbDetectDirection: 0,
// rbg人脸检测镜像 0:RGB无镜像,1:有镜像
mirrorDetectRGB: 1,
//rgb摄像头是否镜像,0:RGB无镜像,1:有镜像
mirrorVideoRGB: 1,
//是否显示圆形识别区
// isFaceRoundView: false,
//自定义识别区域外颜色
// outAreaBgColor: "#f2f2f2",
//是否开启openGL渲染,打开usb摄像头时需要开启
isOpenGl: true,
//摄像头位置
rbgCameraId: -1,
})
//注册参数
type RegisterParams = {
id : string,
name : string
}
const params = ref<RegisterParams>({
id: "1234",
name: "leven"
})
//显示消息
function showMessage(message : string) {
uni.showToast({
title: message,
icon: "none"
})
}
function openRegister() {
popShow.value = true
}
function register() {
popShow.value = false
let registerParams : JSONObject = JSONObject.parse(JSON.stringify(params.value)) as JSONObject
refLevenRegister.value?.register(registerParams)
}
function onEventMethod(e : JSONObject) {
console.log("onEventMethod:" + JSON.stringify(e))
let type : string = e.getString("type");
let data : JSONObject = e.getJSONObject("data");
if (type == "register") {
let code = data.getInteger("code");
let message : string = data.getString("message");
if (code != 0) {
showMessage(message)
} else {
let resultData : JSONObject = data.getJSONObject("data");
let resultType = resultData.getString("type");
if (resultType == "success") {
showMessage("注册成功")
}
}
}
}
function onError(e : JSONObject) {
console.log("onError:" + JSON.stringify(e))
}
function onEvent(e : JSONObject) {
console.log("onEvent:" + JSON.stringify(e))
}
</script>
<style>
</style>识别组件
用法
在使用插件的地方引入以下代码:
vue
<leven-uts-baiduFaceUvc-Recognition style="position: fixed; left: 0; right: 0; bottom: 0; top: 0;"
ref="refLevenRegister" :config="config" @onEvent="onEvent" @onError="onError"
@onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-Recognition>vue
<leven-uts-baiduFaceUvc-Recognition style="position: fixed; left: 0; right: 0; bottom: 0; top: 0;"
ref="refLevenRegister" :configX="config" @onEvent="onEvent" @onError="onError"
@onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-Recognition>
//组件的引用
const refLevenRegister = ref<LevenUtsBaiduFaceUvcRecognitionElement | null>(null)页面示例
vue
<template>
<view>
<leven-uts-baiduFaceUvc-Recognition style="position: fixed; left: 0; right: 0; bottom: 0; top: 0;"
ref="refLevenRegister" :config="config" @onEvent="onEvent" @onError="onError"
@onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-Recognition>
<cover-view style="position: fixed; right: 16px; bottom: 16px;">
<button type="primary" size="mini" @click="selectImage">选择图片</button>
</cover-view>
</view>
</template>
<script>
export default {
data() {
return {
config: {
//rgb摄像头旋转角度,可传入0、90、180、270四个选项
rgbVideoDirection: 0,
//rbg人脸检测角度 默认为0。可传入0、90、180、270四个选项。
rgbDetectDirection: 0,
//是否显示圆形识别区
isFaceRoundView: false,
//关闭人脸识别功能
isRecognition: false,
// rbg人脸检测镜像 0:RGB无镜像,1:有镜像
mirrorDetectRGB: 1,
//rgb摄像头是否镜像,0:RGB无镜像,1:有镜像
mirrorVideoRGB: 1,
//是否开启属性检测
attribute: true,
//是否开启openGL渲染,打开usb摄像头时需要开启
isOpenGl: true,
//摄像头位置
rbgCameraId: -1,
}
}
},
methods: {
selectImage() {
uni.chooseImage({
count: 1,
sourceType: ['album'],
success: (res) => {
let realPath = plus.io.convertLocalFileSystemURL(res.tempFilePaths[0]);
this.startIdentify(realPath)
}
})
},
//开始人证核检
startIdentify(url) {
this.$refs.refLevenRegister.startIdentify({
url: url
})
},
//显示消息
showMessage(message) {
uni.showToast({
title: message,
icon: "none"
})
},
onEvent(e) {
// console.log("onEvent:" + JSON.stringify(e.detail))
},
onError(e) {
console.log("onError:" + JSON.stringify(e.detail))
},
onEventMethod(e) {
// console.log("onEventMethod:" + JSON.stringify(e.detail))
let detail = e.detail || {};
let type = detail.type;
let data = detail.data || {};
if (type == "startIdentify") {
if (data.code == 0) {
this.showMessage("核检通过");
//结束核检
this.$refs.refLevenRegister.endIdentify();
} else {
//如果未调用结束核检的方法会一直核检,这里开发者可以做其他的逻辑处理
//比如核检超过10次或20次自动结束核检
this.showMessage(data.message)
}
}
}
}
}
</script>
<style>
</style>vue
<template>
<!-- #ifdef APP -->
<scroll-view style="flex:1">
<!-- #endif -->
<leven-uts-baiduFaceUvc-Recognition style="flex: 1;" ref="refLevenRegister" :configX="config" @onEvent="onEvent"
@onError="onError" @onEventMethod="onEventMethod"></leven-uts-baiduFaceUvc-Recognition>
<view style="position: fixed; right: 16px; bottom: 16px;">
<button type="primary" size="mini" @click="selectImage">选择图片</button>
</view>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<script lang="uts" setup>
import JSONObject from 'com.alibaba.fastjson.JSONObject'
const refLevenRegister = ref<LevenUtsBaiduFaceUvcRecognitionElement | null>(null)
//初始化配置
const config = ref({
//rgb摄像头旋转角度,可传入0、90、180、270四个选项
rgbVideoDirection: 0,
//rbg人脸检测角度 默认为0。可传入0、90、180、270四个选项。
rgbDetectDirection: 0,
//是否显示圆形识别区
isFaceRoundView: false,
//关闭人脸识别功能
isRecognition: false,
// rbg人脸检测镜像 0:RGB无镜像,1:有镜像
mirrorDetectRGB: 1,
//rgb摄像头是否镜像,0:RGB无镜像,1:有镜像
mirrorVideoRGB: 1,
//是否开启属性检测
attribute: true,
//是否开启openGL渲染,打开usb摄像头时需要开启
isOpenGl: true,
//摄像头位置
rbgCameraId: -1,
})
//显示消息
function showMessage(message : string) {
uni.showToast({
title: message,
icon: "none"
})
}
//开始人证核检
function startIdentify(url : string) {
let options = {
url: url
};
let params = JSONObject.parse(JSON.stringify(options)) as JSONObject
refLevenRegister.value?.startIdentify(params)
}
function selectImage() {
uni.chooseImage({
count: 1,
sourceType: ['album'],
success: (res) => {
let realPath = res.tempFilePaths[0].replace("file://", "");
startIdentify(realPath)
}
})
}
function onEventMethod(e : JSONObject) {
console.log("onEventMethod:" + JSON.stringify(e))
let type : string = e.getString("type");
let data : JSONObject = e.getJSONObject("data");
if (type == "startIdentify") {
if (data.getInteger("code")! == 0) {
showMessage("核检通过");
//结束核检
refLevenRegister.value?.endIdentify();
} else {
//如果未调用结束核检的方法会一直核检,这里开发者可以做其他的逻辑处理
//比如核检超过10次或20次自动结束核检
showMessage(data.getString("message"))
}
}
}
function onError(e : JSONObject) {
console.log("onError:" + JSON.stringify(e))
}
function onEvent(_e : JSONObject) {
// console.log("onEvent:" + JSON.stringify(e))
}
</script>
<style>
</style>演示界面

在线激活

离线激活

批量激活

演示程序首页

相机人脸注册

人脸管理

批量注册

单个注册

设备摄像头全屏识别

设备摄像头圆形识别

设备摄像头自定义圆角

设备摄像头人证核检

设备摄像头人脸属性

批量注册进度

删除人脸

UVC摄像头全屏识别

UVC摄像头圆形识别

UVC摄像头自定义圆角

UVC摄像头人证核检

UVC摄像头人脸属性
