华为创新赛获奖复盘:把手机变成“AI 哨兵”,Core Vision 实时物体检测开发实战(附危险品预警源码)

KylinOS 离线安装 MinIO【图文步骤】 在国产操作系统 KylinOS 中安装 MinIO,详细步骤... 阅读详情

华为创新赛获奖复盘:把手机变成“AI 哨兵”,Core Vision 实时物体检测开发实战(附危险品预警源码)

前言:在《智伴》的“智能看护”模块中,我们需要解决一个家长极其关注的痛点:孩子看屏幕是不是太近了? 传统的解决方案往往依赖专用的距离传感器,而《智伴》利用 HarmonyOS Core Vision Kit 的 多目标检测 (Object Detection) 能力,仅凭一颗普通的前置摄像头,就实现了精准的人体检测与距离预警。


一、 原理:AI 如何“看见”距离?

objectDetection 是 HarmonyOS 提供的一项端侧 AI 能力,它能从图像中识别出 80 多种常见物体(支持 15 类标签输出),包括人、猫、狗、植物等。

对于“距离监测”,我们并不需要测量精确的物理距离(如 30cm),而是通过**“人体/人脸在画面中的占比”**来估算相对距离。

  • 当孩子离屏幕远时,人脸 BoundingBox 较小。
  • 当孩子离屏幕近时,人脸 BoundingBox 变大。

通过设定一个阈值,当 BoundingBox 面积超过画面一定比例时,即可判定为“距离过近”。


二、 实战:构建后台监控组件 (MonitorComponent)

我们将深入 entry/src/main/ets/pages/look/MonitorComponent.ets,解析这一功能的实现。

1. 核心流程

  1. 开启相机:获取前置摄像头的预览流。
  2. 获取帧数据:通过 ImageReceiver 实时获取图像帧。
  3. AI 推理:调用 ObjectDetector 对图像进行分析。
  4. 业务判定:根据检测结果(Label, BoundingBox)触发警告。

2. 初始化检测器

import { objectDetection } from '@kit.CoreVisionKit';

private detector?: objectDetection.ObjectDetector;

async initDetector() {
  try {
    // 异步创建检测器实例
    this.detector = await objectDetection.ObjectDetector.create();
  } catch (error) {
    console.error(`检测器创建失败: ${error.code}`);
  }
}

3. 数据流转:从 Camera 到 AI

这是最关键的一步。我们需要将相机输出的 Image 对象转换为 AI 引擎可接受的 PixelMap,并进行必要的旋转处理(因为前置摄像头图像通常是旋转的)。

// 相机数据回调
private onImageArrivalCallback = async () => {
  // 1. 获取最新一帧图像
  let image = await this.imageReceiver.readNextImage();
  if (!image) return;

  // 2. 转换为 PixelMap
  let component = await image.getComponent(image.ComponentType.JPEG);
  let pixelMap = await image.createPixelMap(component.byteBuffer, ...);

  // 3. 处理图像旋转 (前置摄像头通常需要旋转 270 度并镜像)
  if (this.isFontCamera) {
    await pixelMap.rotate(270); 
    await pixelMap.flip(true, false); // 镜像翻转
  }

  // 4. 构建 AI 请求
  let request: visionBase.Request = {
    inputData: { pixelMap: pixelMap }
  };

  // 5. 执行推理
  if (this.detector) {
    let response = await this.detector.process(request);
    this.analyzeResult(response, pixelMap.getImageInfoSync().size);
  }
  
  image.release(); // 务必释放资源
}

4. 业务逻辑:你是谁?你在哪?

ObjectDetectionResponse 返回一个 objects 数组。我们需要从中筛选出“人”。

private analyzeResult(data: objectDetection.ObjectDetectionResponse, imgSize: image.Size) {
  // 标签 ID 13 代表 "人体" (Human)
  // 标签 ID 5 代表 "人脸" (Face) - 具体 ID 需查阅官方文档或枚举
  const persons = data.objects.filter(item => item.labels.includes(13));

  if (persons.length === 0) {
    // 无人:暂停播放视频,节省电量并防止空放
    this.onKidChange(KidType.NONE);
    return;
  }

  // 获取置信度最高的目标
  const person = persons[0];
  if (person.score < 0.5) return; // 过滤低置信度结果

  // 计算 BoundingBox 在画面中的占比
  const box = person.boundingBox;
  const boxArea = box.width * box.height;
  const screenArea = imgSize.width * imgSize.height;
  const ratio = boxArea / screenArea;

  // 判定距离
  if (ratio > 0.4) {
    // 占比超过 40%,判定为距离过近 -> 触发全屏弹窗警告
    this.showTooCloseWarning();
  } else {
    this.onKidChange(KidType.ONE);
  }
}

三、 性能优化:平衡算力与功耗

在后台持续运行 AI 检测非常耗电。我们在 MonitorComponent 中做了一个重要的优化:降频检测。

const CHECK_INTERVAL = 250; // 检测间隔 250ms (即每秒 4 帧),注意如果设备不支持NPU则需要设置每秒3帧左右。
private lastTime: number = 0;

private onImageArrivalCallback = () => {
  // ... 获取 image ...
  
  // 只有当距离上次检测超过 250ms 时才进行 AI 处理
  if (Date.now() - this.lastTime >= CHECK_INTERVAL) {
    this.lastTime = Date.now();
    // ... 执行 AI 检测 ...
  }
  
  // ... 释放 image ...
}

对于“看护”场景,每秒 4 次的检测频率完全足够判断坐姿变化,同时将 NPU 和 CPU 的负载降低了 80% 以上。


四、 总结

通过 objectDetection,《智伴》实现了一个隐形的“电子保姆”。它不需要昂贵的硬件,只需要调用几行 ArkTS API,就能利用设备自带的 AI 算力守护孩子的视力健康。

这种“软件定义硬件能力”的思路,正是 HarmonyOS 开发的魅力所在。

下一篇,我们将进入更具挑战性的领域——骨骼点检测,看看《智伴》是如何实现酷炫的体感游戏的。

计算机控制技术及应用 《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。 立即下载

相关推荐

ChipCamp探索系列 -- 7A. 开源CPU之BOOM的来龙去脉

本文梳理一下Berkeley的乱序超标量CPU项目----Berkeley Out of Order Machine (BOOM),作为探索7系的首篇(7A)。

ChipCamp的博客---https://chipcamp.blog.youkuaiyun.com/ 1558

华为昇腾910B4(A2)服务器环境搭建笔记

Qwen3.5 默认支持思考模式。首次测试建议关闭思考模式,更容易判断模型是否成功回答。我建议把模型统一存放在宿主机的 /data/models 目录中。这样即使删除 Docker 容器,模型文件也不会丢失。这里先进行单卡测试,确保容器能正确调用 NPU。安装ModelScope 用于下载模型。继续在刚才的容器内部执行。

guoqingru0311的博客 296

ArcGIS栅格数据像元值与坐标值提取及Excel导出全流程解析

本文详细解析了使用ArcGIS将栅格数据批量提取像元值与坐标值并导出至Excel的全流程。通过“栅格转点”、“添加XY坐标”和“表转Excel”三大核心步骤,无需编程即可自动化处理遥感、环境等领域的空间数据,有效提升数据分析效率。

zeta9的博客 365

IPD咨询洞察:华为项目管理:分析价值创造的来源

华为项目管理中,价值交付不是笼统的完成任务,而是从两个角度拆解:价值的形态和归属。价值有三个维度——当期商业价值、未来战略目标、整体能力提升。价值归属四类对象:客户、企业、伙伴、团队。先定义价值,再对齐对象,项目才算真正交付了价值。

weixin_58096508的博客 202

ICT模拟零件测试方法--电容测试

通常,小到 100 pF 的电容需要补偿,因为夹具和系统的电容(20 到 50 pF)相对于被测设备的值是显著的。软件在需要补偿的电容测试中加入 comp 选项,而在不需要补偿的电容测试中加入 nocomp 选项。在调试期间,通过向电容语句添加 pc 选项验证您的电容测试。在测试单独的电容时,从测量结果中减去学到的值,然后与测试限制进行比较以决定通过或失败。请注意,如果用于需要补偿的电容测试上的感应总线使用了单独的探针,测量将无效。在测试电容时,应注意两个方面:电容的电阻元件,以及夹具和系统本身的电容。

可可南木的博客 1216

保姆级教程:用torch.profiler给你的vLLM推理做个“全身体检”(附Perfetto可视化分析)

本文提供了一份详细的vLLM推理性能分析教程,通过torch.profiler和Perfetto工具链实现从数据采集到可视化分析的全流程。文章涵盖了环境配置、性能数据采集、trace文件解析以及Perfetto可视化分析,帮助开发者优化大模型推理服务的性能,显著降低计算资源消耗。

weixin_29041767的博客 357

IPD咨询洞察:华为项目文化:让胜利成为一种信仰

华为“让胜利成为信仰”的本质是使命必达,落地为五项内核:开放创新、勇于担当、团队协同、契约精神、善思善结。使命必达不能停留在墙面标语,须转化为可落地、可考核的行为准则,胜利才能真正成为团队习惯。

weixin_58096508的博客 103

创客学院嵌入式驱动开发——学习资料汇总

1.创客学院知识巩固-01C语言回顾_C/C++_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431050 2.创客学院知识巩固-02数据结构_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431087 3.创客学院知...

snaking616 5116

手头只有华为配置,新设备是华三?粘进来自动翻

手头有华为配置,新设备是华三?用「跨厂商转换」工具,粘贴配置后自动识别源厂商,一键转成目标厂商语法,支持华为、华三、锐捷、迈普、思科等主流设备。精准处理VLAN、access/trunk口、SVI IP、VTY/SSH等差异,避免手动修改时漏改“拼写级”错误。转换后需人工核对核心项与独有特性,建议结合备份、比对与模拟验证,确保安全上机。

qq_42614669的博客 389

华为OD机试真题 新系统2026-04-15 Java&Go 实现【小猫钓鱼纸牌游戏】

有两名玩家甲和乙,他们玩一种“小猫钓鱼”扑克牌游戏。扑克牌为A、2、3、....J、Q、K,不考虑花色都用1-13来表示,然后给甲,乙两人各发n张牌,按给定顺序排成队列,这些牌背面朝上,正面朝下放置,队列的第一个元素是背面的第一张牌。 游戏规则如下:

MISAYAONE的博客 351

TC8:IPv4_HEADER_05-09

所有主机都必须准备好接受最多576个字节的数据报我们知道最大传输单元MTU通常是1500个字节,也就是说一条IP数据报的Header+payload最大1500,那为什么这条测试用例又要求主机准备好接受最多576个字节的IP数据报呢。

jasonj333 512

【2026-11-06】华为研发机试三道编程题解

本文整理了华为11月6日研发岗三道编程题解法:第一题为按列填充句子,通过枚举行数模拟列宽计算,求最小行数;第二题为生鲜库存优化,利用动态分配思想,预处理“采购-销售”成本,贪心选择最便宜来源满足需求;第三题涉及AC自动机与动态规划结合的序列化奖励问题。代码均以Java实现,思路清晰,适合笔试刷题参考。关注公众号【TechGuide】获取更多真题解析。

试问道几许 360

AIPex:AI + 自然语言驱动的浏览器自动化扩展

AIPex是一款革命性的Chrome扩展,通过AI技术实现自然语言驱动的浏览器自动化。它支持30多种自动化工具,包括智能标签页管理(分组、切换、批量操作)、页面内容提取(文本、链接、元数据)、交互元素操作(点击、滚动)以及表单智能填写等功能。用户只需用自然语言下达指令,即可快速完成复杂的浏览器操作,大幅提升工作效率。AIPex特别适合需要处理大量重复性网页操作的用户,如数据分析师、产品经理等。

blues_C的博客 1127

鸿蒙手机远程控制Windows电脑:华为手机控电脑实操完全指南

对于鸿蒙(HarmonyOS)用户来说,用华为手机/平板远程控制Windows电脑,ToDesk是目前最佳选择

球球!? 207

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为HCIP网络工程师认证—网络管理与运维

随着网络的规模越来越庞大,网络中的设备种类繁多,如何对越来越复杂的网络进行有效的管理,从而提供高质量的网络服务,已成为网络管理所面临的巨大挑战。网络的管理与运维手段多样,本博客将对几种网络管理与运维手段展开介绍。网络管理与运维,就是让你从“一台一台跑去敲命令的消防员”,变成“坐在总控室看大屏的指挥官”的一套技术体系。 它的核心目标就四个字:可视、可控——你得先“看见”网络在发生什么,然后才能“控制”它不出事。网络管理与运维,在 HCIP 里不像 OSPF、VLAN 那样需要算得很深,但它是一个“框架性”……

极客园地 248

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

HUAWEI HiCar 认证申报材料清单与资料规范说明

华为对资料的版本一致性和完整性盯得很紧,材料公司名、产品型号、规格前后对不上,或者模板版本老了,都会被打回重来。产品规格书:写清连接模式(有线、无线或双模)、主控芯片型号、蓝牙与 Wi-Fi 模块型号及固件版本、车机系统版本、适配车型清单、适配的 HiCar SDK 版本。文档版本必须和送测样机一致。测试机选用当年或前一年发布的 Mate 或 P 系列旗舰商用机型,机型与系统版本不对,测试结果不予认可Huawei Dev...。软硬件配置清单:单独列一份,记录核心元器件信息,供等效测试评审用,参数要填准。

BlueAsia_TechSvc的博客 464

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

华为VXLAN OVER EVPN(EBGP)

本文基于 eNSP Pro 模拟器,完整复现 Spine-Leaf 架构下 VXLAN over EVPN 的二层互通实验。实验目标是:通过 EBGP 在 Spine 与 Leaf 之间建立 Underlay 路由,再借助 BGP EVPN 承载 VXLAN 隧道,最终实现跨 Leaf 的同一子网二层互通,并验证头端复制(Head-End Replication)方式的 BUM 流量转发。

257

华为云云硬盘 EVS:挂载、初始化与快照回滚,一块数据盘的完整生命周期

一块云硬盘的生命周期是「买 → 挂 → 初始化 → 用 → 卸 → 再挂」。Windows 靠磁盘管理初始化、靠脱机保证能换机;Linux 靠。

xbzb的博客 707

YOLOv11m 部署华为 Atlas 300I Pro

部署到的全过程拆成可照抄的步骤:装驱动固件 → 装 CANN toolkit 与算子包 → 装 Ultralytics / ais_bench → 导出 ONNX → ATC 编译成.om→ 命令行/Python 推理 → CPU 端解码 NMS。给出两条路线(一键导出 / 手工 ATC)、完整可运行的预处理与后处理代码、报错排查表和验收清单。先认清硬件:300I Pro 到底是颗什么芯片部署总览:软件栈与两条技术路线环境与软件清单(开工前先对齐)

巽视达的专栏 576

变相解决华为Mate 8锁屏后无法建立入站网络连接

当你的华为Mate 8手机锁屏时,拒绝一切入站网络连接……

xyzzklk的博客 366

存储 HCIE 是什么:华为存储认证三级体系与 V4.0 考纲变化

华为存储HCIE-V4.0于2026年9月30日起正式适用,聚焦AI驱动的存储应用与运维,新增AIFabric智能预测性维护等AI内容,实验考试增设15分故障排查模块(含预置与动态场景故障)。三大能力模块为CCSS、CCSN、CDPS,知识框架升级。备考需按官方考纲清单化训练,实验在云端限时演练。V3.0预计2027年3月30日下线,期间可选考。

262

华为VPLS over SRV6

IGP IPv6:在 P 与 PE 上启用 IS-IS Level-2 和 IPv6 拓扑,并在物理接口与 LoopBack0 上使能 IS-IS IPv6,打通底层 IPv6 可达性。BGP 邻居:以 LoopBack0 为源建立 IBGP 邻居,P 作为反射器,为 EVPN 路由传递提供通道。EVPN 对等体:在 l2vpn-family evpn 下使能邻居并声明 SRv6 封装类型,确保 EVPN 路由可正常收发。locator 与 SID 动态分配。

277

鸿蒙远程控制软件哪个好?华为远程PC、ToDesk、向日葵三款实测

综合来看,本次横测最终更推荐ToDesk:它在支持跨品牌连接的基础上,外接鼠标、全屏远控、移动设备协助和多屏功能覆盖更完整,更适合作为主力远控工具。

2401_85083137的博客 341

华为CE设备配置EVPN OVER VXLAN

本文基于华为 CE 交换机,完整演示 EVPN 与 RFC 5549 的配置过程。全文以 IPv6 链路本地地址建立 EBGP 邻居,无需配置互联接口 IP,即可用 IPv6 下一跳转发 IPv4 地址;随后通过 EBGP 发布环回地址,并用 IPv6 环回地址建立 EVPN 邻居。内容依次覆盖接口配置、BGP unnumbered、EVPN BGP 邻居、EVPN VXLAN、分布式网关与 TYPE5 路由引入、三层 VPC 模拟,以及 TYPE2/TYPE5 路由与三层 VPN 路由表的查看验证。

29

兰亭妙微ui设计公司分享移动端UI设计:手机UI动效怎样从漂亮展示走向可讨论的原型

移动端UI动效设计需超越“视觉好看”,聚焦用户理解与交互逻辑。通过卡片展开、手势响应等动效,强化页面间内容连续性,保留关键视觉线索。设计应明确动效触发条件、结束状态及中途打断处理,结合静态图层与动态原型并行展示,提升评审效率。强调组件一致性、真实内容测试与清晰任务引导,让动效成为可推敲的协作工具,而非仅作演示素材。

lanlanwork12的博客 5

MDM 销售工作手机横向测评:云客、鱼汛、剪流、无障碍录屏方案,技术选型该怎么判断?

表格方案底层底座核心优势短板更适合的团队云客原生 MDM系统审计、私有化、硬件管控、取证可靠AI 为事后质检,缺少实时谈单辅助大型集团、金融、强合规审计,对实时 AI 需求低鱼汛 AI 销冠原生 MDM线索派单、跟进时效管控、标准化工单集群调度弱,档案结构化一般广告付费线索多、以线索流转考核为主的团队剪流 AI 员工手机华为 HEM 原生 MDM实时 AI 异议陪谈、客户档案串联、错峰集群风控需要 2–4 周灰度试点磨合。

Anchor368的博客 159
上一篇: 华为创新赛获奖复盘:告别“傻瓜式”问答,基于 Core Speech Kit 打造媲美真人的全双工语音交互
下一篇: 华为创新赛获奖复盘:丢掉手柄!用 HarmonyOS 骨骼检测 (Skeleton Detection) 徒手搓一个体感游戏
秦城季
博客等级 码龄10年 46粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值