HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别
在智能手机、平板和其他智能设备日益智能化的今天,视觉识别技术成为提升用户体验和智能交互的重要手段。HarmonyOS NEXT通过基础视觉服务(HMS Core Vision)提供了一套强大的视觉识别功能,其中多目标识别作为其关键技术之一,广泛应用于智能设备的图像处理与分析任务。本文将通过一个简单的技术实践示例,展示如何在HarmonyOS NEXT中实现基于基础视觉服务的多目标识别。

一、项目背景
1. 相关概念
基础视觉服务(HMS Core Vision):
HMS Core Vision是华为提供的视觉识别功能平台,涵盖了图像识别、目标检测、面部识别、文字识别等多种视觉分析能力。通过集成该服务,开发者能够快速实现图像内容的识别和处理,提升应用的智能化水平。基础视觉服务支持多种硬件设备,包括华为手机、平板及其他支持HarmonyOS的设备,能够提供强大的AI视觉功能,广泛应用于各类智能场景中。基础视觉服务(HMS Core Vision)的适用场景包括风景、动物、植物、建筑、树、人脸、表格、文本等。
多目标识别(Object Detection):
多目标识别是指在一张图片或视频流中同时识别出多个不同类别的目标,并标注出它们的位置和类别。该功能广泛应用于自动驾驶、安防监控、无人机导航、机器人视觉、智能购物等场景,帮助设备理解和分析周围环境中的多个目标物体。在HarmonyOS NEXT中,开发者可以通过@hms.ai.vision.objectDetection.d.ts接口实现这一功能。这一技术不仅能识别单一目标,还能同时分析多种目标物体,如行人、车辆、动物等,识别的结果可包括每个目标的位置坐标、类别标签等信息。
通过基础视觉服务,开发者可以轻松构建各种视觉感知能力。例如,在智慧家居应用中,摄像头可以通过多目标识别识别进入房间的物体,并判断它们是人、宠物、家具,进而实现智能化管理。在安防监控中,可以自动检测并追踪特定物体或人物,及时反馈异常情况,提升安全性。
2. 实现目标
在本示例中,我们将使用HarmonyOS NEXT的多目标识别接口@hms.ai.vision.objectDetection.d.ts,在应用中实现一张图片的多目标识别,并展示识别的结果。此示例通过一个简单的移动应用来进行演示,展示如何选择一张图片并启动多目标识别功能。用户可以通过点击“Select image”按钮选择一张图片,或通过相机拍摄照片,系统将通过“Start multi-object detection”按钮启动多目标识别功能。识别结果会以文本形式展示,用户能够清晰看到图像中所有被识别目标的位置信息和分类结果,进一步提高应用的互动性和智能化水平。
二、项目实现
1. 工程结构
├─ entry/src/main/ets
│ ├─ entryability
│ │ └─ EntryAbility.ets // 程序入口
│ ├─ entrybackupability
│ │ └─ EntryBackupAbility.ets
│ └─ pages
│ └─ Index.ets // 应用主界面
└─ entry/src/main/resources // 资源文件目录
2. 功能描述
应用的主界面展示了两个按钮:
- 选择图片:用户点击后可以从图库中选择一张图片或使用相机拍摄。
- 开始多目标识别:用户选择好图片后,点击此按钮进行多目标识别,识别结果通过文本形式展示在屏幕上。

3. 核心实现
本示例使用HMS Core提供的objectDetection API来实现多目标识别。具体的调用步骤如下:
3.1 导入多目标识别接口
首先,需要导入objectDetection接口,以便调用其提供的多目标识别功能:
import { objectDetection } from '@hms.ai.vision.objectDetection.d.ts';
3.2 选择图片并调用识别接口
用户选择图片后,通过以下代码启动多目标识别:
import { objectDetection } from '@hms.ai.vision.objectDetection.d.ts';function startObjectDetection(imageUri: string) {const request = {uri: imageUri, // 传入图片的URI// 可以传递额外的配置参数};objectDetection.process(request).then(response => {const detectionResults = response.objectList;displayResults(detectionResults); // 显示识别结果}).catch(error => {console.error('Error during object detection:', error);});
}function displayResults(detectionResults) {let resultText = '识别到的目标:\n';detectionResults.forEach((result, index) => {resultText += `目标 ${index + 1}: ${result.label}, 位置: (${result.rect.left}, ${result.rect.top}, ${result.rect.width}, ${result.rect.height})\n`;});// 显示在UI界面displayText(resultText);
}
process()方法将图片传递给HMS Core的多目标识别引擎,返回包含识别到的目标信息的结果。每个目标的信息包括标签、位置(矩形框)等。

3.3 用户界面与交互
在应用的UI部分,我们实现了图片选择和按钮交互的逻辑。以下是Index.ets中的代码示例,展示了UI部分如何与功能实现进行结合:
import { startObjectDetection } from './objectDetection';function onSelectImage() {// 选择图片或拍照let selectedImageUri = getImageUriFromGalleryOrCamera();startObjectDetection(selectedImageUri);
}function onStartDetection() {// 启动多目标识别startObjectDetection(selectedImageUri);
}// 绑定UI事件
<template><Button onClick={onSelectImage}>选择图片</Button><Button onClick={onStartDetection}>开始多目标识别</Button><Text id="resultText">识别结果将在这里显示</Text>
</template>

4. 权限与设备要求
本示例不涉及特殊权限配置,用户只需确保设备支持HMS Core的基础视觉服务即可。
支持设备包括华为手机、华为平板、2in1等。
系统版本要求:
- HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
- DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
- HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。
三、项目总结与前景展望
通过以上的实现,我们展示了如何利用HarmonyOS NEXT的基础视觉服务进行多目标识别。通过简单的API调用,开发者可以快速集成这一功能到自己的应用中,极大提升应用的智能化水平。
未来,随着AI技术的不断发展,HarmonyOS NEXT有望在多目标识别、图像处理和AI推理等方面提供更多功能。随着更多设备和应用接入HarmonyOS生态系统,跨平台、跨设备的智能体验将得到进一步优化,进而推动智能生活的全面发展。
多目标识别技术可以广泛应用于多个领域。在智能安防领域,HarmonyOS NEXT可以通过监控摄像头实时识别并跟踪多个目标,如人员、车辆、物品等,提高安全管理效率。在无人驾驶领域,HarmonyOS NEXT能够通过车载摄像头检测道路上的行人、车辆和障碍物,辅助自动驾驶系统做出反应。此外,在智能购物、仓储管理等场景中,设备能够自动识别和分类产品,大幅提高效率并降低人工成本。
本示例仅是一个简单的实践,开发者可以根据实际需求扩展功能,如支持更多的图像格式、增强识别精度、结合其他AI技术等。随着HMS Core服务的不断升级,未来会有更多创新的技术应用,值得开发者深入探索。
相关文章:
HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别
在智能手机、平板和其他智能设备日益智能化的今天,视觉识别技术成为提升用户体验和智能交互的重要手段。HarmonyOS NEXT通过基础视觉服务(HMS Core Vision)提供了一套强大的视觉识别功能,其中多目标识别作为其关键技术之一&#x…...
【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割
数据预处理 通过网盘分享的文件:银行流失预测数据和代码 链接: https://pan.baidu.com/s/1loiB8rMvZArfjJccu4KW6w?pwdpfcs 提取码: pfcs 非数值特征处理 目的:将非数值特征转换为数值型,以便模型能够处理。方法: 地理位置&am…...
使用 docker ps 查不到刚刚创建的容器
问题描述 docker创建mysql容器并实现本地目录挂载,虽然创建成功了,但是查看容器却不存在,删除重新创建还是同样的问题。 原因分析: 因为做本地目录挂载的时候在宿主机中创建了相关文件夹,并且还预先把数据库文件丢…...
vue2+element 前端表格下载
前台下载table表格 可下载fixed columns和普通平铺的表格 exportExcel() {const tableContainer document.querySelector(#table)const fixflg tableContainer ? tableContainer.querySelector(.el-table__fixed) : null// const fixflg document.querySelector(.el-table_…...
MySQL使用LOAD DATA INFILE方式导入文本文件
【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...
【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理
文章目录 一、软件下载安装1、Unity官网2、下载Unity Hub 二、修改Unity Hub配置1、设置Unity Hub中文语言2、修改默认存储目录 三、安装unity编辑器1、点击安装编辑器2、版本选择3、关于版本号4、安装模块选择5、等待下载完成自动安装即可6、追加unity和模块 四、许可证管理专…...
SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 云服务器的准备 2.0 Xshell 和 Xftp 软件 2.1 Xshell 介绍 2.2 Xftp 介绍 3.0 在云服务器进行环境配置 3.1 安装 JDK 3.2 安装 MySQL 3.3 安装 Nginx 4.0 SpringB…...
优化程序中的数据:从代数到向量解
前言 在前文笔者简单介绍了把数据迭代抽象为线性代数,并介绍了空间体、维度等概念。 数据复用 数据复用是一种提高程序执行效率与数据局部性的方法,分为自复用与组复用, 自复用:如果多个迭代访问同一个内存位置,那…...
【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)
最近在忙联通的安全准入测试,很少有时间看CTF了,今晚抽点时间回顾下上周线下的题(期末还没开始复习😢) 感觉做渗透测试一半的时间在和甲方掰扯&水垃圾洞,没啥惊喜感,还是CTF有意思 目录 Mountain ez_zhuawa 图…...
基于ceres优化的3d激光雷达开源算法
以下是一些基于CERES优化的开源激光雷达SLAM或相关算法: (1) LOAM (Lidar Odometry And Mapping) 简介: LOAM是一种经典的激光雷达里程计和建图算法,它通过提取特征点(角点和平面点),利用ICP(Iterative Cl…...
【FAQ】HarmonyOS SDK 闭源开放能力 — Vision Kit(2)
1.问题描述: 人脸活体检测返回上一页App由沉浸式变为非沉浸式多了上下安全区域。 解决方案: 检测结束后需要自己去设置沉浸式配置。 2.问题描述: Vision Kit文字识别是本地识别,还是上传至服务器,由服务器来识别文…...
【LeetCode】726、原子的数量
【LeetCode】726、原子的数量 文章目录 一、递归: 嵌套类问题1.1 递归: 嵌套类问题 二、多语言解法 一、递归: 嵌套类问题 1.1 递归: 嵌套类问题 遇到 ( 括号, 则递归计算子问题 遇到大写字母, 或遇到 ( 括号, 则清算历史, 并开始新的记录 记录由两部分组成: 大写字母开头的 …...
VMware虚拟机三种网络工作模式
vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。 打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那…...
14-zookeeper环境搭建
0、环境 java:1.8zookeeper:3.5.6 1、下载 zookeeper下载点击这里。 2、安装 下载完成后解压,放到你想放的目录里。先看一下zookeeper的目录结构,如下图: 进入conf目录,复制zoo_sample.cfg࿰…...
[搜广推]王树森推荐系统笔记——矩阵补充最近邻查找
视频合集链接 矩阵补充(工业界不常用) 模型结构 embedding可以把 用户ID 或者 物品ID 映射成向量输入用户ID 和 物品ID,输出向量的内积(一个实数),内积越大说明用户对这个物品越感兴趣模型中的两个embed…...
Unity3D * 粒子特效 * Particle System
(基于阿发教程做的重点笔记) 粒子 用于模拟一些流动的,没有形状的物质,例如 液体,烟雾,火焰,爆炸,魔法等效果 去除粒子外框 particle system 粒子发生器,有1个主模块和22个子模块࿰…...
【基础篇】1. JasperSoft Studio编辑器与报表属性介绍
编辑器介绍 Jaspersoft Studio有一个多选项卡编辑器,其中包括三个标签:设计,源代码和预览。 Design:报表设计页面,可以图形化拖拉组件设计报表,打开报表文件的主页面Source:源代码页码ÿ…...
数据结构:算法篇:快速排序;直接插入排序
目录 快速排序 直接插入排序 改良版冒泡排序 快速排序 理解: ①从待排序元素中选定一个基准元素; ②以基准元素将数据分为两部分:(可以将:大于基准元素放左,小于基准元素放右) ③对左半部分…...
WebAPI编程(第一天,第二天)
WebAPI编程(第一天,第二天) day01 - Web APIs 1.1. Web API介绍 1.1.1 API的概念1.1.2 Web API的概念1.1.3 API 和 Web API 总结 1.2. DOM 介绍 1.2.1 什么是DOM1.2.2. DOM树 1.3. 获取元素 1.3.1. 根据ID获取1.3.2. 根据标签名获取元素1.3.…...
查看MySQL存储引擎方法,表操作
修改数据库表存储引擎 show create table dept; show table status from itpux where name s2\G; select * from information_schema.TABLES where table_schemaitpux and table_names3; 查询整个mysql里面存储引擎是innodb/myisam的表 建表时候要写好存储引擎 -- 创建表 -- 表…...
DeepTutor云服务配置:利用云端资源提升AI性能
DeepTutor云服务配置:利用云端资源提升AI性能 【免费下载链接】DeepTutor "DeepTutor: Agent-Native Personalized Learning Assistant" 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor DeepTutor是一款强大的Agent-Native个性化学…...
终极指南:如何快速掌握 Tooltipster 提示框插件的完整教程
终极指南:如何快速掌握 Tooltipster 提示框插件的完整教程 【免费下载链接】tooltipster A jQuery tooltip plugin 项目地址: https://gitcode.com/gh_mirrors/to/tooltipster Tooltipster 是一个灵活且功能强大的 jQuery 提示框插件,专为现代 We…...
3步构建企业级认证系统实战指南:从0到1搭建安全认证中心
3步构建企业级认证系统实战指南:从0到1搭建安全认证中心 【免费下载链接】oauth2-server spring boot (springboot 3) oauth2 server sso 单点登录 认证中心 JWT,独立部署,用户管理 客户端管理 项目地址: https://gitcode.com/gh_mirrors/oau/oauth2-server …...
微信聊天记录数据备份与智能分析一站式解决方案
微信聊天记录数据备份与智能分析一站式解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg 你是否经…...
Spring AI 快速入门教程:基于VUE3与Spring AI技术实现的“流式聊天““打字机效果“功能
目录 前言 一、Spring AI 核心认知 1.1 技术定位与核心价值 1.2 版本支持与生态兼容性 1.3 与其他 AI 集成框架对比 二、效果展示 三、快速入门 3.1 环境准备 JDK 配置 AI 服务密钥准备 3.2 后端项目创建 主要技术栈 pom.xml 配置 application.yml 配置 Java 主…...
终极魔兽争霸III优化指南:WarcraftHelper 完整使用教程
终极魔兽争霸III优化指南:WarcraftHelper 完整使用教程 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 想让经典魔兽争霸III在现代电脑上流…...
5步解锁QueryExcel:让多Excel文件查询效率提升10倍的实战指南
5步解锁QueryExcel:让多Excel文件查询效率提升10倍的实战指南 【免费下载链接】QueryExcel 多Excel文件内容查询工具。 项目地址: https://gitcode.com/gh_mirrors/qu/QueryExcel 在数据驱动决策的时代,Excel表格已成为各行业存储和分析信息的标准…...
视频文件损坏如何修复?基于Untrunc的专业数据恢复方案
视频文件损坏如何修复?基于Untrunc的专业数据恢复方案 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 问题诊断…...
立创庐山派K230双系统实战:基于Linux+RT-Smart SDK的RTL8189FTV WiFi模块配网与脚本自动化
1. 立创庐山派K230开发板与双系统环境简介 第一次拿到立创庐山派K230开发板时,我就被它独特的双系统架构吸引了。这款开发板采用了LinuxRT-Smart的双系统设计,既能享受Linux丰富的软件生态,又能利用RT-Smart实时系统的优势。在实际项目中&am…...
什么是电商CRM系统?从入门到精通,全面解析其定义与功能模块
在电商行业竞争日益激烈的今天,如何高效管理客户关系、提升用户价值已成为品牌增长的关键。本文将带您全面了解电商CRM系统,从基础概念到功能模块,再到行业解决方案,助您掌握这一提升业绩的利器。一、电商CRM:数字化时…...
