HarmonyOS鸿蒙Next开发中,系统有人脸识别相关的API么?
HarmonyOS鸿蒙Next开发中,系统有人脸识别相关的API么?
7 回复
-
视觉服务套件
- 使用
CoreVision Kit
中的FaceDetector
模块可实现人脸检测功能,支持以下核心能力: - 检测图片或视频流中的人脸位置(矩形框坐标)
- 定位五官关键点(左右眼、鼻尖、左右嘴角)
- 获取头部姿态参数(俯仰角、偏航角、侧倾角)
- 检测面部遮挡状态
- 使用
-
生物特征认证
- 通过
@ohos.userIAM.faceAuth
模块实现活体检测与身份验证
- 通过
更多关于HarmonyOS鸿蒙Next开发中,系统有人脸识别相关的API么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你好,鸿蒙系统有Core Vision Kit,支持人脸检测,活体检测等功能
用户认证(人脸识别)
1.开启权限
ohos.permission.ACCESS_BIOMETRIC
2.指定认证类型(UserAuthType)和认证等级(AuthTrustLevel),调用getAvailableStatus接口查询当前的设备是否支持相应的认证能力。
认证可信等级的详细介绍请参见认证可信等级划分原则。
import { BusinessError } from '@kit.BasicServicesKit';
import { userAuth } from '@kit.UserAuthenticationKit';
// 查询认证能力是否支持
try {
userAuth.getAvailableStatus(userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1);
console.info('current auth trust level is supported');
} catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`current auth trust level is not supported. Code is ${err?.code}, message is ${err?.message}`);
}
demo(权限要开,手机要录人脸)
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { userAuth, UserAuthIcon } from '@kit.UserAuthenticationKit';
// API version 10
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
rand = cryptoFramework.createRandom();
len: number = 16;
randData: Uint8Array = this.rand?.generateRandomSync(this.len)?.data;
authParam: userAuth.AuthParam = {
challenge: this.randData,
authType: [userAuth.UserAuthType.FACE, userAuth.UserAuthType.PIN],
authTrustLevel: userAuth.AuthTrustLevel.ATL3
};
widgetParam: userAuth.WidgetParam = {
title: '请进行身份认证'
};
build() {
Row() {
Column() {
UserAuthIcon({
authParam: this.authParam,
widgetParam: this.widgetParam,
iconHeight: 200,
iconColor: Color.Blue,
onIconClick: () => {
console.info('The user clicked the icon.');
try {
const rand = cryptoFramework.createRandom();
const len: number = 16; // Generate a 16-byte random number.
const randData: Uint8Array = rand?.generateRandomSync(len)?.data;
// 设置认证参数
const authParam: userAuth.AuthParam = {
challenge: randData,
authType: [userAuth.UserAuthType.PIN, userAuth.UserAuthType.FACE],
authTrustLevel: userAuth.AuthTrustLevel.ATL3,
};
// 配置认证界面
const widgetParam: userAuth.WidgetParam = {
title: '请进行身份认证',
};
// 获取认证对象
const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
console.info('get userAuth instance success');
// 订阅认证结果
userAuthInstance.on('result', {
onResult(result) {
console.info(`userAuthInstance callback result: ${JSON.stringify(result)}`);
// 可在认证结束或其他业务需要场景,取消订阅认证结果
userAuthInstance.off('result');
}
});
console.info('auth on success');
userAuthInstance.start();
console.info('auth start success');
} catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`);
}
},
onAuthResult: (result: userAuth.UserAuthResult) => {
console.info(`Get user auth result, result = ${JSON.stringify(result)}`);
}
})
}
}
}
}
可通过 Core Vision Kit 和 生物识别框架 实现
参考代码如下
import { faceDetector } from '@kit.CoreVisionKit';
import image from '@ohos.multimedia.image';
// 加载图片生成 PixelMap
async function detectFaces(imageUri: string) {
try {
const pixelMap = await image.createPixelMapFromUri(imageUri);
const faceInfos = await faceDetector.detect(pixelMap);
faceInfos.forEach((face, index) => {
console.log(`人脸 ${index + 1} 坐标:${face.rect}`);
console.log(`左眼坐标:${face.landmarks}`);
});
} catch (err) {
console.error(`检测失败:${err.code}`);
}
}
参考地址
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/core-vision-face-detector
HarmonyOS Next提供了人脸识别能力。通过@ohos.multimodalInput.facialAuth组件实现人脸采集、注册和认证功能。主要接口包括FacialAuthManager用于管理认证流程,支持本地人脸特征比对。需在module.json5中声明ohos.permission.USE_BIOMETRIC权限。认证结果通过回调返回识别状态。
是的,HarmonyOS Next提供了人脸识别相关的API,支持人脸检测、活体检测等能力。开发者可通过@ohos.multimodalInput.facialAuth
模块调用相关接口,实现设备解锁、支付验证等场景的人脸识别功能。具体可参考官方文档中的人脸识别开发指南。