鸿蒙AI功能开发【hiai引擎框架-人脸识别】 根本视觉服务-人脸查抄 ...

打印 上一主题 下一主题

主题 1721|帖子 1721|积分 5163

介绍

本示例展示了使用hiai引擎框架提供的人脸识别能力。
本示例模拟了在应用里,选择一张图片,识别其多个人脸信息并展示出来。包罗人脸框、五官点位、置信度、人脸朝向(欧拉角)
必要使用hiai引擎框架通用笔墨识别接口@hms.ai.face.faceDetector。
效果预览


使用说明:

  • 在手机的主屏幕,点击”faceDetectorDemo“,启动应用。
  • 点击“选择图片”按钮,默认自带一张图片,用户可以在图库中选择图片,大概通过相机拍照。
  • 点击“开始识别”按钮,识别人脸信息,结果通过文本展示。
具体实现

本示例展示的控件在@@hms.ai.face.faceDetector.d.ets定义了笔墨识别API:


  • function detect(visionInfo: VisionInfo): Promise;
业务使用时,必要先进行import导入faceDetector 调用通用人脸识别接口,并传入想要识别的图片,吸收处理返回的结果(笔墨信息)。参考:
  1. import { faceDetector } from '@kit.CoreVisionKit';
  2. import { image } from '@kit.ImageKit';
  3. import { hilog } from '@kit.PerformanceAnalysisKit';
  4. import { BusinessError } from '@kit.BasicServicesKit';
  5. import { picker, fileIo } from '@kit.CoreFileKit';
  6. @Entry
  7. @Component
  8. struct Index {
  9.   private imageSource: image.ImageSource | undefined = undefined;
  10.   @State chooseImage: PixelMap | undefined = undefined
  11.   @State dataValues: string = ''
  12.   build() {
  13.     Column() {
  14.       Image(this.chooseImage)
  15.         .objectFit(ImageFit.Fill)
  16.         .height('60%')
  17.       Text(this.dataValues)
  18.         .copyOption(CopyOptions.LocalDevice)
  19.         .height('15%')
  20.         .margin(10)
  21.         .width('60%')
  22.       Button('选择图片')
  23.         .type(ButtonType.Capsule)
  24.         .fontColor(Color.White)
  25.         .alignSelf(ItemAlign.Center)
  26.         .width('80%')
  27.         .margin(10)
  28.         .onClick(() => {
  29.           // 拉起图库
  30.           this.selectImage()
  31.         })
  32.       Button('开始识别')
  33.         .type(ButtonType.Capsule)
  34.         .fontColor(Color.White)
  35.         .alignSelf(ItemAlign.Center)
  36.         .width('80%')
  37.         .margin(10)
  38.         .onClick(async () => {
  39.           if(!this.chooseImage) {
  40.             hilog.error(0x0000, 'faceDetectorSample', `Failed to choose image. chooseImage: ${this.chooseImage}`);
  41.             return;
  42.           }
  43.           // 调用人脸识别接口
  44.           let visionInfo: faceDetector.VisionInfo = {
  45.             pixelMap: this.chooseImage,
  46.           };
  47.           let data:faceDetector.Face[] = await faceDetector.detect(visionInfo);
  48.           let faceString = data.toString();
  49.           hilog.info(0x0000, 'faceDetectorSample', `Succeeded in face detect:${faceString}`);
  50.           this.dataValues = faceString;
  51.         })
  52.     }
  53.     .width('100%')
  54.     .height('100%')
  55.     .justifyContent(FlexAlign.Center)
  56.   }
  57.   private async selectImage() {
  58.     let uri = await this.openPhoto()
  59.     if (uri === undefined) {
  60.       hilog.error(0x0000, 'faceDetectorSample', "Failed to defined uri.");
  61.     }
  62.     this.loadImage(uri)
  63.   }
  64.   private openPhoto(): Promise<string> {
  65.     return new Promise<string>((resolve, reject) => {
  66.       let photoPicker = new picker.PhotoViewPicker()
  67.       photoPicker.select({
  68.         MIMEType: picker.PhotoViewMIMETypes.IMAGE_TYPE, maxSelectNumber: 1
  69.       }).then(res => {
  70.         resolve(res.photoUris[0])
  71.       }).catch((err: BusinessError) => {
  72.         hilog.error(0x0000, 'faceDetectorSample', `Failed to get photo image uri. code:${err.code},message:${err.message}`);
  73.         reject('')
  74.       })
  75.     })
  76.   }
  77.   private loadImage(name: string) {
  78.     setTimeout(async () => {
  79.       let fileSource = await fileIo.open(name, fileIo.OpenMode.READ_ONLY);
  80.       this.imageSource = image.createImageSource(fileSource.fd);
  81.       this.chooseImage = await this.imageSource.createPixelMap();
  82.     }, 100)
  83.   }
  84. }
复制代码
以上就是本篇文章所带来的鸿蒙开发中一小部门技术教学;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
下面是鸿蒙的完整学习门路,展示如下:

除此之外,根据这个学习鸿蒙全栈学习门路,也附带一整套完整的学习【文档+视频】,内容包罗如下
   内容包罗了:(ArkTS、ArkUI、Stage模子、多端摆设、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速发展!
  鸿蒙【北向应用开发+南向体系层开发】文档

鸿蒙【根本+实战项目】视频

鸿蒙面经


为了克制大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表