用于辅助视障人士检测人行道障碍物的 TinyML 模型

news2024/11/15 3:40:56

这篇论文的标题为《A TinyML model for sidewalk obstacle detection: aiding the blind and visually impaired people》,发表在《Multimedia Tools and Applications》上。以下是论文的主要内容概述:

摘要:

  • 论文介绍了在资源受限的物联网(IoT)设备上实施深度学习进行实际应用的先驱研究。
  • 提出了一个TinyML模型,专为辅助视觉障碍人士检测人行道障碍物而设计。
  • 研究重点是将传统的计算密集型深度学习模型适应于内存和处理能力显著受限的IoT系统。
  • 所提出的模型具有非常小的1.93 MB内存占用和50%的稳健平均精度(mAP),非常适合轻量级IoT设备。
  • 在标准CPU上展示了96.2毫秒的卓越推理速度,这标志着在辅助技术中实时处理迈出了重要一步。

关键词:

  • 视障人士(BVIP)
  • 计算机视觉(CV)
  • 深度学习(DL)
  • 物联网(IoT)
  • 目标检测
  • 微型机器学习(TinyML)

1. 引言:

  • 机器学习(ML)正成为改变医疗保健景观的关键工具,提高诊断精度,优化治疗路径,并以无与伦比的效率管理患者护理。

2. 相关工作:

  • 论文回顾了在计算机视觉和目标识别领域,特别是在自动驾驶汽车和视频监控方面的最新进展。

3. 方法论:

  • 论文描述了使用多阶段设计方法开发机器学习模型的过程,这种方法通常被称为机器学习生命周期。

论文中提出的方法是开发一个机器学习模型,使用多阶段设计方法,通常被称为机器学习生命周期。以下是该方法论的详细步骤:

3.1 数据收集和注释

数据收集和注释通常是研究中最耗时的任务之一,由于在积极收集大量数据或从外部来源(如现有的数据集)策划足够大的数据集方面的困难而具有挑战性。同时,解决和最小化数据集中的潜在偏见至关重要。为了满足我们应用的规格,我们创建了一个名为Sidewalk Obstacle Detection (SOD)的个性化图像数据集。SOD数据集收集包括从多个平台(如Pixel、Pixabay和Open Images)来源的图像,此外,我们还通过智能手机积极捕获了新图像。我们在不同的格式(txt、json、xml和csv)中提供了SOD数据集,它包括10,000张图像、30,834个对象实例和22个不同类别。我们使用Roboflow平台进行图像的注释和重新注释,为感兴趣的对象创建了真实的标签。注释过程涉及在图像中的每个对象周围绘制边界框,并将它们分配给相应的类别标签。我们确定了22种可能阻碍视障人士的不同类型障碍物。

3.2 数据预处理

我们执行预处理步骤以准备模型的数据;这通常包括调整图像到特定大小、将像素值归一化到标准化范围,并使用数据增强策略来提高模型的鲁棒性。数据增强是指通过将各种变换应用于现有数据集来从现有数据集中生成新的和多样化的训练样本的过程。这些变换的目标是人为地扩展数据集,并模拟机器学习模型在现实世界场景中可能遇到的变异性,而无需收集更多数据。我们实施了三种操作(BBox剪切、噪声和旋转),这将初始训练子集的大小增加了三倍。

3.3 目标检测方法

目标检测是一项计算机视觉任务,涉及使用深度学习架构来识别和定位数字图像或视频中一个或多个类别的对象实例。这项任务的特点是通过使用边界框或分割掩模同时识别对象是什么(分类)以及它们在图像空间中的位置(定位)。卷积神经网络(CNN)在带有标记示例的大型数据集上进行训练,以学习表明各种对象类别的特征表示和模式。一旦训练完成,这些网络就可以推断新图像中对象的存在和位置,使这项技术成为需要视觉感知的领域的基石,如自动驾驶、监控、医学成像和增强现实。

3.4 训练

我们的研究使用了包含10,000张标记图像的定制图像数据集,我们将这些图像分为训练(7000张图像)、验证(2000张图像)和测试(1000张图像)子集。我们增加了训练子集的大小到21,000张图像来训练四个目标检测模型,然后使用验证和测试集评估系统的性能。使用PyTorch框架,我们在Tesla NVIDIA V100 GPU服务器上训练模型大约100个周期。在训练过程中,我们采用了16的批处理大小、0.937的动量、0.0005的权重衰减、0.01的初始学习率,并使用了SGD优化器。我们根据模型的准确性、复杂性和推理速度来评估模型。我们测量了平均精度(AP)指标,该指标量化了识别对象的精确度和召回率。此外,我们通过检查推理所需的参数和操作数量来评估模型复杂性。最后,我们测量了每个模型的推理时间,特别是在Raspberry Pi 4平台上。

3.5 评估指标

在目标检测领域,通常使用几种性能指标来评估模型的准确性和有效性。这些基本指标包括交并比(IoU)、精确度、召回率、F1分数、平均精度(AP)和平均平均精度(mAP)。

3.6 模型优化

优化技术对于在资源受限的设备上部署机器学习模型尤为重要,如IoT节点、移动电话或边缘设备,这些设备的内存和计算能力有限。在我们的应用场景中,关键是要确保模型能够适应嵌入式设备,同时保持快速响应时间以实现实时交互。我们必须在不牺牲准确性或精度的情况下实现这种平衡。通过使用几种技术,如模型蒸馏、剪枝/稀疏性、量化以及实施无损压缩方法(尤其是霍夫曼编码),可以实现这些目标。

3.7 模型部署

由于其紧凑的外形尺寸和集成功能,微控制器(MCU)是嵌入式机器学习应用的常见选择。微控制器是一个紧凑的集成电路,它控制嵌入式系统中的特定操作或任务。典型的MCU包括处理器(CPU)、内存(SRAM、Flash)和输入/输出(I/O)外设,所有这些都集成在单个芯片上。我们可以扩展其组件,包括数字I/O、模拟I/O、定时器和通信接口。在软件方面,嵌入式框架是一套用于微控制器的开发工具,通常作为低级API、软件开发工具包(SDK)和硬件抽象层(HAL)的某种组合。例如,Arm Cortex Microcontroller Software Interface Standard (CMSIS) 是一个标准化的软件接口,它提供了一种一致的方法来访问Arm Cortex-M微控制器的基本处理器功能、外设和互连。

4. 提出的模型:

  • 目标是利用深度学习(DL)和计算机视觉(CV)技术识别和区分人行道上的常见物体,以帮助视障人士安全导航。

论文中提出的模型旨在利用深度学习(DL)和计算机视觉(CV)技术来识别和区分人行道上的常见物体。该模型的主要目标是帮助视障人士在进行日常活动时安全导航,通过检测他们外出时可能遇到的任何潜在障碍物。提出的模型包括四个关键组件:图像提供者、目标检测模型、目标识别器和音频反馈模块。模型的总体设计如图6所示。

图像提供者: 在预处理阶段,图像传感器将从Raspberry Pi相机捕获数据帧。然后,将图像调整和格式化为适合神经网络处理的大小。

目标检测模型: 准备好输入数据后,使用神经网络模型进行预测(推理)。这里调用的模型包括Yolov5n、Yolov5s、Yolov8n和Yolov8s。

目标识别器: 在后处理阶段,目标识别器模块分析来自神经网络模型的数据,生成一个包含识别对象标签、它们的边界框和表示检测准确性的置信度分数的张量对象。

音频反馈模块: 系统还集成了一个音频反馈模块,为用户通过音频信号和非视觉提示提供帮助,以辅助识别和定位检测到的对象。

模型的主要贡献包括:

  1. 为帮助视障人士检测人行道障碍物的TinyML模型的开发和部署提供一步步的方法。
  2. 为人行道上的目标检测提供一个新的基准图像数据集,以协助视障和视觉受损人士。
  3. 对轻量级目标检测模型进行比较研究和性能分析。
  4. 对各种压缩技术和推理加速运行时进行性能评估。

5. 结果和讨论:

  • 论文报告了初步研究结果,分析了数据集和模型的鲁棒性,并比较了不同的优化方法。

6. 结论和未来工作:

  • 论文提出了一个用于检测人行道障碍物的TinyML模型,该模型使用YOLOv5和YOLOv8的轻量级版本进行训练和验证。
  • 论文还讨论了如何通过使用量化和权重修剪等压缩技术,以及像OpenVINO和ONNX Runtime这样的软件加速框架来提高这些模型的效率。
  • 论文指出YOLOv8s实现了最高的平均精度,而YOLOv5n是最紧凑的模型,具有1.93 MB的大小和最快的推理性能。

数据可用性声明:

  • SOD-v2图像数据集可在指定的网址获取,训练脚本和部署代码也可在GitHub上获得。

利益冲突声明:

  • 作者声明在本文的研究、作者身份或出版过程中没有潜在的竞争利益。

论文的主要贡献包括开发了一个TinyML模型,用于辅助视障人士检测人行道上的障碍物,并通过使用轻量级深度学习模型和优化技术,实现了在资源受限设备上的实时推理。论文还提出了未来的研究方向,包括探索语义图像和视频分割模型以及实时导航系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言程序设计 笔记代码梳理 重制版

前言 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute) 2.C语言编写代码到运行 都是先编译,后链接,最后运行。(.c ---> .obj --->.exe)这个过…

热老化的行业应用

热老化应用行业:深度解析与图像呈现 热老化,作为一种重要的材料测试方法,在众多行业中扮演着关键角色。它通过模拟产品在高温环境下的长期使用,提前发现潜在的材料缺陷、性能衰退等问题,从而提高产品的可靠性&#xf…

打造个性化时装购物平台:Spring Boot框架的实践

第1章 绪论 1.1背景及意义 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对时装购物系统方面的要求也在不断提高,喜欢购物的人数更是不断增加,使得时装购物系统的开发成为必需而且紧迫的…

顶刊精析|METI:整合细胞形态与空间转录组学的肿瘤微环境分析框架·24-09-06

小罗碎碎念 本期精读文献:《METI: Deep profiling of tumor ecosystems by integrating cell morphology and spatial transcriptomics》 今天分享的这篇文献于2023年8月25日发表在Nat Commun,目前IF14.7。 作者类型作者姓名单位名称(中文&am…

【免费分享】25秋招提前批25秋招信息表

秋招,即秋季校园招聘,通常是指每年秋季(大约从9月到11月)企业在各大高校举办的招聘活动。这是许多公司为了吸引优秀应届毕业生而进行的招聘活动,也是许多学生毕业后进入职场的重要途径。以下是秋招的一些关键点&#x…

手机TF卡格式化后数据恢复:方法、挑战与预防措施

在现代生活中,‌手机已经成为我们不可或缺的一部分,‌而TF卡(‌即MicroSD卡)‌作为手机存储的扩展,‌更是承载了我们大量的重要数据。‌然而,‌不慎的格式化操作往往导致数据丢失,‌给用户带来不…

集成电路学习:什么是RAM随机存取存储器

RAM:随机存取存储器 RAM(Random Access Memory,随机存取存储器)是计算机中用于临时存储数据和程序指令的重要存储设备。以下是关于RAM的详细解析: 一、RAM的定义与功能 RAM是一种内部存储器,与CPU直接交换…

(pycharm)安装python库函数Matplotlib步骤

1.在pycharm下面找到terminal,双击输入pip install Matplotlib,进行Matplotlib库函数的安装。 现在,当你运行pip --version或python.exe -m pip --version时,你应该会看到pip的版本已经更新为24.2。

mhtml图片提取 百度图片下载

如果你需要找一些图片,可以先去百度一下,待相关网页加载完成后,点击保存,即可得到一个mhtml文件。这个文件里的图片会用base64进行存储,只需要找到他们并转化就可以。目前在美篇之类的网站上效果还一般,需要…

如何确定 npm 依赖需要的 Node.js 版本?

目录 1,前言2,问题3,解决4,其他 1,前言 有的 npm 依赖会对 Node.js 的版本有要求,主要的原因有几点: 使用了新特性,npm 包使用了新版 Node.js 引入的新 API 或 JavaScript 的新语法…

etcdctl defrag 剔除、添加etcd节点

零、准备工作 find / -name etcdctl cp /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/12/fs/usr/local/bin/etcdctl /usr/local/bin/etcdctlalias ec"etcdctl --endpointshttps://127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --…

常用网络协议理解

1、概念 OSI网络模型由七层组成,从上到下分别是 其中需要用到的且理解的只有应用层、网络层、传输层 2、常见网络协议 协议的作用,就是用于双方规范数据格式,以及规定数据如何在网络中传输 ①应用层协议: HTTP协议&#xff1…

【苍穹外卖】Day 7 地址簿、下单、定时处理

1 地址簿模块 地址簿实体对象: package com.sky.entity;import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;/*** 地址簿*/ Data Builder NoArgsConstructor AllArgsCon…

docker基础知识-docker0网桥

文章目录 示意图Docker 网桥的工作原理Docker 网桥的优势Docker 网桥的局限性自定义网桥网络 Docker 网桥(Docker bridge network)是 Docker 默认的一种网络模式,它允许 Docker 容器之间通过一个虚拟的交换机进行通信。Docker 网桥网络为容器…

Java并发编程实战 03 | Java线程状态

在本文中,我们将深入探讨 Java 线程的六种状态以及它们之间的转换过程。其实线程状态之间的转换就如同生物生命从诞生、成长到最终死亡的过程一样。也是一个完整的生命周期。 首先我们来看看操作系统中线程的生命周期是如何转换的。 操作系统中的线程状态转换 线…

Web安全之GroovyShell讲解:错误与正确示范,安全问题与解决方案

1. 引言 Groovy 是一门基于 Java 虚拟机(JVM)的动态语言,而 GroovyShell 是 Groovy 提供的一个灵活强大的脚本执行工具。通过 GroovyShell,开发者可以在运行时动态执行 Groovy 脚本,它的灵活性非常适合那些需要动态编…

本地使用Docker部署Nexus Maven私有仓库工具结合内网穿透实现远程管理

文章目录 前言1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus 前言 本文主要介绍在Linux中使用Docker来一键部署Nexus Maven私有仓库工具并结合Cpolar内网穿透实现远程访问Nex…

【Python】应用:pyproj地理计算库应用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍pyproj地理计算库应用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下…

中国传媒业人工智能应用发展图谱2024

易观分析:传媒产业是指以传播各类信息、知识为核心,通过多种媒介形式进行内容生产、发布和分发的综合性产业。技术的进步和应用对于传媒产业发展变革起到了核心驱动力的作用,2022年生成式AI进入应用爆发期,不仅带动了人工智能产业…

APP中断测试知多少

中断测试有助于移动测试人员识别与系统或用户行为相关的潜在风险,以便在发生流量干扰时能够识别出可能导致意想不到或不期望结果的问题。 让我们深入探讨中断测试的细节及其手动或程序化实现方式。本文还介绍了用于自动化测试过程、加快测试执行速度并向用户提供高…