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

有 AI,无障碍,AIoT 设备为视障人群提供便利

据世界卫生组织统计,全球共 22 亿人视力受损,包含 2.85 亿视障人群和 3,900 万全盲人群。而且,这一数字将随老龄化加剧不断增加。
虽然视障人群面临着诸多不便,但是针对视障人群的辅助设备却存在成本高、维护困难、操作复杂等问题,很难满足他们的生活需求。
为此,广东技术师范大学和武汉科技大学的研究者基于智慧物联网共同开发了一套视障辅助设备,通过 AI 算法和传感器为视障人群的生活带来便利。

作者 | 雪菜

编辑 | 三羊、铁塔

2019 年,世界卫生组织 (WHO) 发布了第一份「世界视力报告」。报告称,全球至少有 22 亿视力受损者,其中 2.85 亿人为视障人群,3,900 万人彻底失明。受全球人口增长和人口老龄化的影响,视障人群的数量在 2040 年可能会增长 3 倍。

![](https://img-blog.csdnimg.cn/img_convert/df37da58b69793dffed98258850eb7e9.jpeg

图 1:全球视力受损者估计人数

视障者无法通过视觉系统接收外界的信息,在日常生活中面临着诸多不便。他们很难躲避附近的障碍物,也无法从书籍或是屏幕中获取信息。

然而,对视障人群进行长期健康监护成本很高,而现有的视障人群辅助设备价格昂贵、比较笨重且交互性差,也很难满足他们的日常需求。

为解决上述问题,广东技术师范大学和武汉科技大学的研究者基于智慧物联网 (AIoT, Artificial Intelligence of Things) 开发了一套视障辅助设备

这套设备主要包括智能眼镜和智能盲杖,总造价约 480 元。它可以通过多种传感器监测使用者和环境的状态,帮助使用者与环境进行交互并在危险状况下发出警报。这一成果已发表于「Electronics」。

在这里插入图片描述

这一成果已发表于 「Electronics」

论文链接:

https://www.mdpi.com/2079-9292/12/18/3760

设备设计

AIoT 架构:感知与交互

视障辅助设备的 AIoT 架构包括 3 层:

1、感知层,即收集外部数据的传感器及模组;

2、网格层,使用窄带物联网 (NB-IoT) 进行数据连接,并使用 HTTP 和 MQTT 协议进行数据传输;

3、应用层,主要通过 APP 和蓝牙音频设备与用户进行交互。

在这里插入图片描述

图 2:AIoT 的架构示意图

智能眼镜YOLO v5 + OCR

视障辅助设备应兼具便利和可靠性,以满足视障人群的日常需要。为此,研究人员通过双目相机收集图像,随后通过轻量级网格模型 YOLO v5 对物体及其距离进行分析,或是通过光学字符识别 (OCR) 阅读文字。

在这里插入图片描述

图 3:智能眼镜的结构示意图

物体识别过程中,YOLO v5 算法会将图片划分为网格,随后预测每个网格单元的边界框,并在创建边界框的同时识别出图片中的不同物体

YOLO v5 网格主要分为 4 层,包括:

1、input:用于对输入图像进行初始定义;

2、backbone:利用卷积神经网络 (CNN) 提取图像特征;

3、neck:整合图像特征,并连接 backbone 层和 output 层;

4、output:利用边界框输入对图像中物体的预测。

在这里插入图片描述

图 4:本研究中 YOLO v5 算法架构

除图像识别外,YOLO v5 算法还能通过对比双目相机的图像计算用户与障碍物之间的距离。

在这里插入图片描述

图 5:YOLO v5 计算障碍物距离的方法

在这里插入图片描述

图 6:YOLO v5 计算障碍物距离的公式

公式中,B 为相机左右镜头间距,f 为相机焦距,d 为对应左右点的视差。

智能眼镜的 OCR 功能通过调用百度 OCR 的 API 实现。OCR 过程包括图像获取、降噪、二值化 (Binarizatoin)、文字区域提取、字符分割、字符识别、优化及音频输出。

在这里插入图片描述

图 7:OCR过程示意图

智能盲杖健康监测与环境感知

智能盲杖的主要功能之一是健康监测,因此在盲杖上集成了心率、体温等传感器和数据收集模组。为实现非接触测量,心率传感器使用光体积变化描记图法 (PPG, Photoplethysmography) 进行监测,体温传感器使用红外辐射进行监测。

在这里插入图片描述

图 8:智能盲杖的结构示意图

此外,为增强视障者对环境的感知,盲杖上还集成了温度、湿度和姿势传感器。姿势传感器由加速度计和陀螺仪组成,通过计算使用者的组合加速度 (ACLR),监测其是否有跌倒的风险。

如果使用者距离障碍物过近,或是姿势传感器察觉到使用者可能会跌倒,盲杖将通过震动和蜂鸣器发出警报。

在这里插入图片描述

图 9:用于跌倒监测的 3 维坐标系

实验结果

图像识别物体与距离

研究人员在常见室内外环境中对设备的物体识别能力进行了 20 次测试。结果显示,室内外环境下 YOLO v5 算法均能比较准确地识别出环境中的物体,并对物体与使用者之间的距离作出判断。

在这里插入图片描述

图 10:室内环境下的测试结果

在这里插入图片描述

图 11:室外环境下的测试结果

然而,随着图像中物体数量增加,错误率会随之提高,尤其是对于具有相似特征的物体,比如电视与显示器,或是自行车与摩托车等。最终,智能眼镜的识别准确率为 92.16%。

即使 YOLO v5 算法认错了物体,它依然能对距离作出判断。与商用的 APP 相比,YOLO v5 算法判断距离的偏离率在 0.28-6.32% 之间,随着距离的增加而增加。

基于这一判断,当使用者与物体之间的距离小于 0.7 m 时,智能盲杖会发出警报,同时接管微控制器以避开障碍物。

OCR正确率接近 100%

同时,研究人员用 10 段文本测试了智能眼镜的 OCR 性能。测试状态下,智能眼镜的 OCR 正确率为 100%。虽然阅读过程中头部移动会导致些许识别错误,但整体 OCR 正确率仍有 99.91%。

在这里插入图片描述

图 12:智能眼镜的 OCR 结果

健康监测:心率与体温

心率监测模组通过 PPG 对用户的心率进行实时记录。测试中,智能盲杖分别记录了不同年龄的被试在静止和行走状态下的心率,结果与商用手环的偏离率在 0.72-3.52% 之间

在这里插入图片描述

表 1:不同实验组的心率监测结果

体温测试中,与医用的前额温度计相比,测试模组的最大偏离率为 0.19% 。这一结果说明即使在智能盲杖上,红外体温传感器也能够准确监测使用者体温,不会受到环境的干扰。
在这里插入图片描述

表 2:不同实验组的体温监测结果

姿势监测行走、上楼与下楼

智能盲杖可以通过加速度计和陀螺仪对使用者的姿势进行监测,并在可能跌倒时发出警报。实验测试了使用者在行走、上楼与下楼时盲杖的监测结果, 并将结果分为 3 类:

1、正确:盲杖监测的结果和使用者状态一致;

2、不正确:盲杖监测到了跌倒风险,但使用者仍为正常状态;

3、无响应:盲杖显示正常状态,但使用者有跌倒风险。

在这里插入图片描述

表 3:不同实验条件下的跌倒监测准确率

在不同场景下,智能盲杖的平均监测正确率为 87.33% ,说明这一设备可以在多数情况下对使用者的状态作出正确判断。

万物互联APP + 蓝牙

最终,所有数据会传输到手机上,并通过 APP 整合。同时,蓝牙音频会将这些数据播报给使用者,帮助他们了解自己的健康状态和外部环境。

在这里插入图片描述

图 13:集成的 APP 界面

关注普遍的眼健康

虽然无障碍设施正在多个场景不断普及,但这些设备更多针对行动不便的人群。对于身处黑暗的视障人群而言,他们需要更多的无障碍设施。

但由于 群体小、设施成本高,这些设施很难普及。盲道、盲文等便利视障人群的设施,则会因缺乏维护和管理,无法发挥效用。

然而,已有相当多的个人和企业参与到了帮助视障人群的行动中。目前绝大多数主流手机品牌已经有了专为视障人群设计的操作方式。

在北京、昆明等城市,开设了专为视障人群讲述电影的「心目影院」,帮助视障人群观赏院线大片。

在「我的世界」、「炉石传说」等游戏社区中,也有热心玩家开发了无障碍的模组 (Mod) 帮助改善视障人群的游戏体验。

在这里插入图片描述

图 14:「心目影院」中的盲人观众

2023 年 6 月 6 日是第 28 个全国爱眼日,主题为「关注普遍的眼健康」。今天是第 23 个世界视力日,希望大家能够关注视力健康,同时向身边的视障人群贡献一臂之力,与 AI 携手构建无障碍世界。

参考链接:

[1]https://www.who.int/zh/news/item/08-10-2019-who-launches-first-world-report-on-vision

[2]https://bjo.bmj.com/content/96/5/614.short

[3]https://www.bilibili.com/video/BV1fs4y1K7Q7

相关文章:

有 AI,无障碍,AIoT 设备为视障人群提供便利

据世界卫生组织统计,全球共 22 亿人视力受损,包含 2.85 亿视障人群和 3,900 万全盲人群。而且,这一数字将随老龄化加剧不断增加。 虽然视障人群面临着诸多不便,但是针对视障人群的辅助设备却存在成本高、维护困难、操作复杂等问题…...

数据结构学习笔记——数据结构概论

目录 一、数据与数据元素二、数据类型和抽象数据类型三、数据结构的定义(一)逻辑结构(二)存储结构(物理结构)1、顺序存储结构2、链式存储结构3、索引存储结构4、散列存储结构 (三)数…...

关于 打开虚拟机出现“...由VMware产品创建,但该产品与此版VMwareWorkstateion不兼容,因此无法使用” 的解决方法

文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133678951 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…...

windows的最佳选项卡式窗口管理器软件TidyTabs

下载: https://jmj.cc/s/z1t3kt?pucodeS1wc https://download.csdn.net/download/mo3408/88420433 TidyTabs是一款Windows应用程序,它可以将多个打开的窗口整理成一个选项卡式的界面,使得用户可以更加方便地切换和管理不同的窗口。 Tidy…...

【Python 千题 —— 基础篇】浮点数转为整数

题目描述 题目描述 给出一个浮点数,请将这个浮点数转换成整数。 输入描述 输入一个浮点数。 输出描述 程序将浮点数转换为整数并输出。 示例 示例 ① 2.333输出: 2代码讲解 下面是本题的代码: # 描述: 给出一个浮点数&#xff0c…...

【Linux--进程间通信】

进程间通信介绍 进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或一组进程发送消息。通知它(它们)发生了某种事件(如…...

Linux C文件操作

文章目录 文件操作函数文件系统调用系统调用与标准函数c的调用的区别文件的读取位置标准c函数系统调用空洞文件 文件的内存映射操作文件目录 linux下的文件操作包括两种,一种是使用C函数,一种是使用系统调用。 gcc 常用来实现c程序的编译gcc filename.c …...

基于Cucumber的行为驱动开发(BDD)实例

本篇介绍 Cucumber 的基本使用, 因为Cucumber是BDD的工具, 所以首先需要弄清楚什么是BDD,而在介绍BDD之前,先看看常见的软件开发方法。 常见的软件开发方法 面向过程开发(Procedural Development)&#x…...

十六、代码校验(2)

本章概要 前置条件 断言(Assertions)Java 断言语法Guava 断言使用断言进行契约式设计检查指令前置条件后置条件不变性放松 DbC 检查或非常严格的 DbCDbC 单元测试 前置条件 前置条件的概念来自于契约式设计(Design By Contract, DbC), 利用断言机制…...

安卓 kotlin-supportFragmentManager报红

如果你继承baseActivity 请查看 是不是继承 AppCompatActivity...

linux中安装RocketMQ以及dashboard

前提: 需要安装jdk8 上传下面的文件到服务器中 新建目录 mkdir rocketmq 将下载后的压缩包上传到阿里云服务器或者虚拟机中去,并解压 unzip rocketmq-all-4.9.2-bin-release.zip 配置环境变量 vim /etc/profile 配置内容: export NAM…...

Android kotlin内联函数(inline)的详解与原理

一、介绍 在kotlin中,有一种函数叫内联函数,这种函数标识符是inline,但是好多人对这个函数的理解只停留在八股文中,内容函数的用法和普通函数没有区别,但是在编译原理上是有,对程序的性能有一定的影响。 二…...

林沛满---一个面试建议

在应聘一个技术职位之前,做好充分的准备无疑能大大提高成功率。这里所说的准备并不是指押题,因为有经验的面试官往往准备了海量的题库,押中的概率太低。比如我有位同事的题库里有上百道题,内容涵盖了编程、操作系统、网络、存储……...

CMake教程-第 5 步:安装和测试

CMake教程-第 5 步:安装和测试 1 CMake教程介绍2 学习步骤Step 1: A Basic Starting PointStep 2: Adding a LibraryStep 3: Adding Usage Requirements for a LibraryStep 4: Adding Generator ExpressionsStep 5: Installing and TestingStep 6: Adding Support f…...

移动应用-Android开发基础\核心知识点

Android开发基础 知识点 1 介绍了解2 系统体系架构3 四大应用组件4 移动操作系统优缺点5 开发工具6 配置工具7 下载相关资源8JDK下载安装流程9配置好SDK和JDK环境10 第一个Hello word11 AS开发前常用设置12模拟器使用运行13 真机调试14 AndroidUI基础布局15 加载展示XML布局16…...

Java读取并转换字符串中的浮点数

在写Android接收蓝牙数据的时候,由于传过来的蓝牙数据转换后都为字符串格式,但是需要从其中提取出来浮点数,所以通过查阅资料写出了从字符串中提取并转换为浮点数的方法,特记录下来以供参考。 目录 原始数据内容 提取字符串中的…...

SQL: 索引原理与创建索引的规范

SQL 索引是一种数据结构,用于加速数据库查询操作。它通过在表的列上创建索引,提供了一种快速查找数据的方法,减少了数据库的扫描和比较操作,从而提高了查询性能。索引根据其实现方式可以分为多种类型,如 B-树索引、哈希…...

基于STM32_DS18B20单总线传感器驱动

基于STM32_DS18B20单总线传感器驱动 文章目录 基于STM32_DS18B20单总线传感器驱动前言一、BS18B20?二、原理1.复位与检验2.基本命令3.唯一ROM识别码4.温度转换 三、驱动代码四、注意事项 前言 本文以一款典型的单总线传感器及其驱动——DS18B20为例,简单…...

目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(三)

前言 目标识别如今以及迭代了这么多年,普遍受大家认可和欢迎的目标识别框架就是YOLO了。按照官方描述,YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性…...

springboot线程池创建与使用

/*** author: zcs* Title: TaskPoolConfig* Description: 线程池配置* date: 2023/10/11 17:52*/ Component public class TaskPoolConfig {Bean(name "threadPoolTaskExecutor")public Executor taskExecutor() {ThreadPoolTaskExecutor taskExecutor new ThreadP…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...