当前位置: 首页 > news >正文

巧用多目标识别能力,帮助应用实现智能化图片解析

为了提升用户体验,各类应用正通过融合人工智能技术,致力于提供更智能、更高效的服务。应用不仅能通过文字和语音的方式与用户互动,还能深入分析图片内容,为用户提供精准的解决方案。
在解析图片之前,应用首先需要准确识别图片中包含的元素,基于此,HarmonyOS SDK 基础视觉服务(Core Vision Kit)提供了多目标识别功能,可以同时检测出给定图片中的各种物体,包括风景、动物、植物、建筑、树、人脸、表格、文本等位置,并框选出物体,在有需要的情况下,也可将识别结果展示在界面上。

多目标识别功能是一项应用范围较为广泛的基础能力,在搜索引擎应用场景中,应用可借助该能力实现图像的搜索和分类;在AR游戏中,多目标识别功能可以识别出摄像头前的玩家,从而与虚拟游戏内容产生互动;此外,多目标识别功能还可应用于安防监控系统中,通过识别行人、车辆等等目标进行安全分析和紧急响应。

开发步骤

1.在使用多目标识别时,将实现多目标识别相关的类添加至工程。

import { BusinessError } from '@kit.BasicServicesKit';
import { objectDetection, visionBase } from '@kit.CoreVisionKit';

2.简单配置页面的布局,并在Button组件添加点击事件,拉起图库,选择图片。

Button('选择图片')
.type(ButtonType.Capsule)
.fontColor(Color.White)
.alignSelf(ItemAlign.Center)
.width('80%')
.margin(10)
.onClick(() => {
// 拉起图库,获取图片资源
this.selectImage();
})

3.通过图库获取图片资源,将图片转换为PixelMap。

private async selectImage() {let uri = await this.openPhoto()if (uri === undefined) {hilog.error(0x0000, 'objectDetectSample', "Failed to defined uri.");}this.loadImage(uri)
}private openPhoto(): Promise<string> {return new Promise<string>((resolve, reject) => {let photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();photoPicker.select({MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, maxSelectNumber: 1}).then(res => {resolve(res.photoUris[0])}).catch((err: BusinessError) => {hilog.error(0x0000, 'objectDetectSample', `Failed to get photo image uri. code:${err.code},message:${err.message}`);reject('')})})
}private loadImage(name: string) {setTimeout(async () => {let fileSource = await fileIo.open(name, fileIo.OpenMode.READ_ONLY);this.imageSource = image.createImageSource(fileSource.fd);this.chooseImage = await this.imageSource.createPixelMap();}, 100)

4.实例化Request对象,并传入待检测图片的PixelMap,调用多目标识别的实现多目标识别功能。

// 调用多目标检测接口
let request: visionBase.Request = {inputData: { pixelMap: this.chooseImage }
};
let data: objectDetection.ObjectDetectionResponse = await (await objectDetection.ObjectDetector.create()).process(request);

5.(可选)如果需要将结果展示在界面上,可以使用下列代码。

let objectJson = JSON.stringify(data);
hilog.info(0x0000, 'objectDetectSample', `Succeeded in face detect:${objectJson}`);
this.dataValues = objectJson;

了解更多详情>>

访问基础视觉服务联盟官网

获取多目标识别开发指导文档

http://www.lryc.cn/news/526019.html

相关文章:

  • 算法中的移动窗帘——C++滑动窗口算法详解
  • AcWing 3585:三角形的边 ← sort() 函数
  • 阿里云-银行核心系统转型之业务建模与技术建模
  • MySQL核心知识:春招面试数据库要点
  • Hive之加载csv格式数据到hive
  • Java web与Java中的Servlet
  • kafka常用目录文件解析
  • RV1126+FFMPEG推流项目源码
  • ANSYS SimAI
  • hedfs和hive数据迁移后校验脚本
  • 蓝桥杯单片机(八)定时器的基本原理与应用
  • 刷题总结 回溯算法
  • C++ 静态变量static的使用方法
  • Langchain+文心一言调用
  • 20250124 Flink中 窗口开始时间和結束時間
  • Android Studio安装配置
  • 设计模式Python版 单例模式
  • 7-Zip高危漏洞CVE-2025-0411:解析与修复
  • python实现http文件服务器访问下载
  • 《一文讲透》第4期:KWDB 数据库运维(6)—— 容灾与备份
  • ArcGIS10.2 许可License点击始终启动无响应的解决办法及正常启动的前提
  • Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250124
  • 概率密度函数(PDF)分布函数(CDF)——直方图累积直方图——直方图规定化的数学基础
  • YOLOv5训练自己的数据及rknn部署
  • 计算机图形学:实验四 带纹理的OBJ文件读取和显示
  • SQL Server 使用SELECT INTO实现表备份
  • 【线性代数】基础版本的高斯消元法
  • Python标准库 threading 的 start 和 join 的使用
  • 无公网IP 外网访问媒体服务器 Emby
  • 【数据结构】_顺序表