HarmonyOS鸿蒙Next开发中,系统有人脸识别相关的API么?

HarmonyOS鸿蒙Next开发中,系统有人脸识别相关的API么?

7 回复
  1. 视觉服务套件

    • 使用CoreVision Kit中的FaceDetector模块可实现人脸检测功能,支持以下核心能力:
    • 检测图片或视频流中的人脸位置(矩形框坐标)
    • 定位五官关键点(左右眼、鼻尖、左右嘴角)
    • 获取头部姿态参数(俯仰角、偏航角、侧倾角)
    • 检测面部遮挡状态
  2. 生物特征认证

    • 通过@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模块调用相关接口,实现设备解锁、支付验证等场景的人脸识别功能。具体可参考官方文档中的人脸识别开发指南。

回到顶部