HarmonyOS NEXT AI基础视觉服务-人脸识别

简介: 这是一个基于AI基础视觉服务的人脸识别案例,通过调用设备相册选择图片,利用MediaLibraryKit、ImageKit和CoreVisionKit等模块完成图像处理与人脸检测,并展示结构化结果。核心功能包括:相册访问授权、图像数据转换、人脸位置及特征点检测,最终以弹窗形式输出检测信息。代码涵盖模块导入、功能实现与UI构建,适合学习AI视觉应用开发流程。

案例描述

这是一个基于AI基础视觉服务实现的人脸识别案例,通过调用设备相册选择图片后检测图像中的人脸信息并展示结构化识别结果。

实现步骤:

1. 模块导入

// 导入功能模块
import {
    photoAccessHelper } from '@kit.MediaLibraryKit';
import {
    fileIo } from '@kit.CoreFileKit';
import {
    image } from '@kit.ImageKit';
import {
    faceDetector } from '@kit.CoreVisionKit';
import {
    promptAction } from '@kit.ArkUI';
import {
    JSON } from '@kit.ArkTS';

2. 相册选择功能

// 创建相册选择器实例
const photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
// 设置选择参数
const photoResult = await photoPicker.select({
   
  MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
  maxSelectNumber: 1
})
// 获取选中图片URI
const photoUri = photoResult.photoUris[0]

3. 图像处理流程

// 打开图片文件句柄
const fileSource = await fileIo.open(photoUri, fileIo.OpenMode.READ_ONLY);
// 创建图像数据源
const imageSource = image.createImageSource(fileSource.fd);
// 生成像素图格式数据
const chooseImage = await imageSource.createPixelMap();

4. 人脸检测核心实现

// 初始化人脸检测器
faceDetector.init();
// 配置视觉识别参数
const visionInfo: faceDetector.VisionInfo = {
   
  pixelMap: chooseImage
};
// 执行人脸检测
const visionResult = await faceDetector.detect(visionInfo)
// 是否包含人脸
this.isFace = visionResult.length > 0

5. 检测结果展示

// 弹窗显示结构化检测结果
promptAction.showDialog({
   
  message: JSON.stringify(visionResult)
})

落地代码:

1. UI组件定义

@Entry
@ComponentV2
struct FaceDetector {
   
  @Local isFace: boolean = false

2. 主功能方法

async checkFace() {
   
  // 整合相册选择、图像处理、人脸检测完整逻辑
}

3. 界面构建

build() {
   
  Column() {
   
    Button('选择相册 人脸识别')
      .onClick(() => {
   
        this.checkFace()
      })
  }
  .height('100%')
  .width('100%')
}

总结梳理:

核心点

  1. 相册访问需要用户授权权限
  2. 图像处理需通过MediaLibraryKit和ImageKit协作完成
  3. 检测结果包含人脸位置、特征点等结构化数据

完整代码

import {
    photoAccessHelper } from '@kit.MediaLibraryKit';
import {
    fileIo } from '@kit.CoreFileKit';
import {
    image } from '@kit.ImageKit';
import {
    faceDetector } from '@kit.CoreVisionKit';
import {
    promptAction } from '@kit.ArkUI';
import {
    JSON } from '@kit.ArkTS';

@Entry
@ComponentV2
struct FaceDetector {
   
  @Local isFace: boolean = false

  async checkFace() {
   
    const photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
    const photoResult = await photoPicker.select({
   
      MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
      maxSelectNumber: 1
    })
    const photoUri = photoResult.photoUris[0]

    const fileSource = await fileIo.open(photoUri, fileIo.OpenMode.READ_ONLY);
    const imageSource = image.createImageSource(fileSource.fd);
    const chooseImage = await imageSource.createPixelMap();

    faceDetector.init();
    const visionInfo: faceDetector.VisionInfo = {
   
      pixelMap: chooseImage
    };
    const visionResult = await faceDetector.detect(visionInfo)
    this.isFace = visionResult.length > 0

    promptAction.showDialog({
   
      message: JSON.stringify(visionResult)
    })
  }

  build() {
   
    Column() {
   
      Button('选择相册 人脸识别')
        .onClick(() => {
   
          this.checkFace()
        })
    }
    .height('100%')
    .width('100%')
  }
}
相关文章
|
3天前
|
编解码 Java 开发工具
【HarmonyOS Next之旅】DevEco Studio的安装与环境配置
本教程详细介绍了使用DevEco Studio进行OpenHarmony开发的全流程,包括下载与安装、环境配置、项目准备及实用技巧。首先,以Windows环境为例,说明了DevEco Studio的运行要求、下载和安装步骤;接着,通过设置环境变量和配置SDK完成开发环境搭建;然后,讲解了项目创建、预览器和虚拟机的使用方法;最后,分享了中文插件安装和简化工程目录栏等小技巧,帮助开发者高效上手OpenHarmony开发。
63 0
|
3天前
|
存储 安全 JavaScript
【HarmonyOS Next之旅】HarmonyOS概述(二)
HarmonyOS是面向万物互联时代的分布式操作系统,支持多种终端设备,提供全场景业务能力。其三大特征包括超级终端融合、一次开发多端部署及统一OS弹性部署。技术架构分为内核层、系统服务层、框架层和应用层,确保系统灵活性与高效性。同时,HarmonyOS通过分布式多端协同身份认证、可信运行环境和数据全生命周期保护,保障系统安全,实现“正确的人、正确的设备、正确地使用数据”。
32 0
|
8天前
|
人工智能 自然语言处理 语音技术
|
7天前
|
人工智能 自然语言处理 安全
HarmonyOS NEXT+AI打造智能助手APP(适配DeepSeek)
华为仓颉编程语言与HarmonyOS NEXT结合AI大模型,开创智能助手APP开发新纪元。仓颉语言以自然化编程降低门槛,HarmonyOS NEXT提供流畅安全的系统支持,AI大模型赋予助手强大交互能力。实战课程覆盖智能对话、写作、画图等6大核心业务,模块化开发助你掌握全流程技能。参考资料及开源教程助力学习,开启智能应用开发新篇章。
55 10
HarmonyOS NEXT+AI打造智能助手APP(适配DeepSeek)
|
13天前
|
人工智能 JavaScript 安全
【HarmonyOS NEXT+AI】问答05:ArkTS和仓颉编程语言怎么选?
本文针对学员关于“鸿蒙主推开发语言是ArkTS,为何课程使用仓颉语言”的疑问进行解答。文章回顾了鸿蒙编程语言的发展历程:从早期支持JS和C/C++,到HarmonyOS 2引入Java,再到HarmonyOS 3推出ArkTS,直至HarmonyOS 5(NEXT)引入仓颉语言。仓颉作为华为自研的现代编程语言,具备高效编程、安全可靠、轻松并发和卓越性能等特性,适用于高性能高并发场景及未来AI原生应用开发。文章还探讨了仓颉与ArkTS的关系、应用场景以及是否需要重写现有应用等问题,为开发者选择编程语言提供了参考依据。
76 13
【HarmonyOS NEXT+AI】问答05:ArkTS和仓颉编程语言怎么选?
|
4天前
|
前端开发 开发工具 Android开发
小红书APP的全新鸿蒙NEXT端性能优化技术实践
从 2023 年开始,鸿蒙的优势愈发明显,已经成为可与 iOS、安卓媲美的第三大移动操作系统。从一些抖音视频中也可以看出,鸿蒙在流畅性方面甚至在某些层面上超过了 iOS。本次分享的主题是小红书在鸿蒙平台上的工程实践,主要聚焦于性能优化和探索。
38 10
|
2天前
|
存储 JavaScript 安全
【HarmonyOS Next之旅】HarmonyOS开发基础知识(二)
本文主要介绍了HarmonyOS应用的配置文件说明、应用数据管理和应用安全管理三大核心内容。在配置文件说明部分,详细解析了“config.json”中app、deviceConfig和module三个关键组成部分的结构与功能,涵盖版本管理、设备配置及模块定义等细节。应用数据管理部分阐述了本地数据存储、分布式数据服务、文件共享及搜索服务等功能,确保跨设备数据一致性。应用安全管理则从开发准备、编码安全、权限使用到发布分发全流程,提供了保障应用安全的最佳实践。内容全面覆盖了HarmonyOS应用开发的核心环节,为开发者提供了详尽指导。
20 1
|
10天前
|
人工智能 弹性计算 智能设计
🎨 三步打造AI创意工坊 | 通义万相图像生成服务极速部署指南
🚀 从零到大师 | 通义万相智能创作系统部署指南
|
8天前
|
网络协议 Java 网络安全
全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT
全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT
53 4
|
10天前
|
JSON 缓存 程序员
玩转HarmonyOS NEXT网络请求:从新手到高手的实战秘籍
本文以通俗易懂的方式讲解了HarmonyOS网络请求的核心知识,从基础概念到实战技巧,再到进阶优化,帮助开发者快速上手。通过“点外卖”的类比,形象解释了HTTP请求方法(如GET、POST)和JSON数据格式的作用。同时,提供了封装工具类的示例代码,简化重复操作,并分享了常见问题的解决方法(如权限配置、参数格式、内存泄漏等)。最后,还探讨了如何通过拦截器、缓存机制和重试机制提升请求功能。无论你是新手还是进阶开发者,都能从中受益,快动手实现一个新闻App试试吧!
35 5