盲人出行辅助系统原型

我做了一个很有意义的盲人出行辅助系统原型,主要是结合现有导航OSRM/高德,实时感知前方潜在危险目标,辅助视障人士出行。 持续优化中(20260519),欢迎大家尝试,有一些想法也可以提出来。

开源地址:https://github.com/Lii-sir/Eye-Guide.git

1. 项目背景

对于视障人群来说,日常出行可以通过高德等等进行路线导航,但是在到达过程中最困难的是持续感知环境风险。传统导航软件可以告诉用户"往哪里走",但是没法告诉用户"前方是否有行人、障碍物、台阶或者车辆"。而纯视觉系统虽然能识别环境,却缺少路径导航和实时位置联动功能。

针对以上问题,我做了一个原型项目 **EyeGuide。**这个系统通将摄像头视觉感知、地图导航、GPS定位和语音播报串成一条完整链路,让系统不仅能"规划路线",还能"观察前方环境实时提醒用户"。

这个项目更偏向一个工程原型和技术验证系统,终点不是做成商业的最终产品,如果要商用,后面可以嵌入开发板。但是嵌入之前还有一些工作需要做,比如功能的完善、推理加速等等,这些内容我还在持续优化中。

2. 项目目标

项目核心目标:

  • 实时感知用户前方环境,识别潜在危险目标。
  • 支持步行导航,并结合当前GPS定位实时推进导航。
  • 通过语音播报,把环境信息和导航信息及时传递给用户。

3. 系统主要功能

界面目前比较简单,还请忽略我这个太草率了。后面功能完善之后会优化界面。

3.1 自由探索模式

在自由探索模式下,程序会调用摄像头实时读取画面,并进行目标识别。系统会重点关注以下几类对象:行人、汽车、摩托车、台阶/高度变化区域。

对于靠近用户、存在风险的目标,系统会进行语音提示,比如:"注意,正前方,行人,1.0米"

3.2 路线导航模式

在路线导航模式下,用户输入起点和终点后,系统会调用地图服务生成步行路线,并在导航过程中实时播报当前导航步骤以及前方的危险目标。

项目目前支持两类导航来源:

OSM:基于Nominatim + OSRM

高德:基于高德Web服务API

3.3 GPS定位接入

为了实现边走边导航,项目支持接入USB/NMEA GPS模块,读取串口中的定位信息。如果没有外接GPS,系统会尝试调用Windows自带定位服务作为补充。这样可以实现获取当前位置、自动将当前位置填入导航起点、根据实时位置动态推进路线步骤。

4. 核心技术方案

4.1 视觉感知:YOLO 与 OpenCV双路径检测

在视觉感知部分,项目优先采用 Ultralytics YOLO 进行目标检测与目标跟踪,用于识别行人、车辆、自行车、障碍物等目标;在深度模型可用时,再结合 Depth Anything V2 对目标距离进行估计。

与此同时,系统并不完全依赖 YOLO。为了保证在依赖不完整、模型不可用或部署环境受限时仍能运行,项目还实现了一套基于 OpenCV 的启发式检测方案,主要包括:

  • 行人检测
  • 地面障碍物检测
  • 台阶/高度变化风险检测

目前 YOLO 检测用的还是开源权重,后面可能会爬一些数据,针对盲人出行常会遇到的障碍再进行微调训练。

4.2 深度估计:Depth Anything V2

仅仅知道前面有什么肯定不够,所有引入了深度估计进行单目深度估计,用来辅助计算目标和用户之间的大致距离。这里的距离并不是激光雷达那种严格物理测距,而是基于深度模型对单帧图像做推理得到的近似值。这里的距离也会用于风险等级评估,比如估计距离为0.8m以内,那这个风险等级就比较高。

4.3 方位判断

方位判断目前采用的是比较直接但很实用的方法,根据目标框中心点在画面中的横向位置,把目标划分成几个区域:左侧、左前方、正前方、右前方、右侧。这样系统就可以播报更具体的提示,比如:"左前方,行人,1.2米"。

4.4 地图导航

导航采用了两种实现路线。

OSM路线

  • 使用 Nominatim 做地理编码与地点搜索
  • 使用 OSRM 的 foot 模式做步行路线规划

高德路线

  • 使用高德的 POI 搜索、地理编码和步行导航接口
  • 更适合中文地址场景,尤其是国内地点检索

此外,为了避免地址模糊匹配错误,系统对候选地点做了多结果展示,让用户自己确认终点,而不是强行只用第一条结果。

4.5 语音播报机制

语音播报使用 Windows 下的 SAPI / pyttsx3 作为输出后端。为了避免播报过于频繁和混乱,系统在语音层做了几项处理:

  • 去重
  • 冷却时间控制
  • 优先级控制
  • 队列替换策略

这样可以尽量减少"同一目标每一帧都播报一次"的问题,让播报更接近真实辅助场景。

5. 项目整体架构

整个系统大体可以分成四层:

感知层

负责摄像头读取、YOLO 检测、深度估计、障碍物识别与方位判断。

定位与导航层

负责 GPS 接入、当前位置更新、地址解析、路线规划和自动导航推进。

播报层

负责把检测事件与导航事件统一送入语音队列,再根据优先级和冷却策略进行播报。

界面层

使用桌面 GUI 展示控制面板,同时显示视频窗口、导航信息和运行日志。

6. 当前存在的问题

这个项目目前仍然是原型系统,还存在不少问题:

  • 单目深度估计的距离误差仍然比较明显
  • 复杂场景下目标检测稳定性还有提升空间
  • 语音播报策略还需要继续优化,避免漏报或重复播报
  • 导航与视觉提示的融合逻辑还不够细腻
  • 打包部署体积较大,依赖项较重

这些问题也说明,视障辅助出行系统并不是单一模型就能解决的,而是一个需要持续工程优化和多模块协同的复杂系统。

7. 后续优化方向(持续优化中)

后续我计划继续完善:

  • 优化 YOLO 与深度估计的推理效率
  • 进一步减少语音播报重复和队列冲突
  • 增强对台阶、坑洞、盲道、路沿等关键场景的识别能力
  • 提升路线跟踪与自动重规划能力
  • 做更轻量的部署方案,降低安装包体积
  • 进一步适配新电脑开箱即用的安装流程

8. 展示

高清视频:

https://live.csdn.net/v/527244https://live.csdn.net/v/527244

相关推荐
惊鸿一博1 小时前
Transformer模型图解(简单易懂版)
人工智能·深度学习·transformer
黎阳之光1 小时前
视听融合新范式!黎阳之光打破视觉边界,声影协同赋能全域智慧管控
大数据·人工智能·物联网·算法·数字孪生
Ian在掘金1 小时前
SSE 还是 WebSocket?从 AI 流式输出聊到实时通信选型
前端·人工智能
雨雨雨雨雨别下啦1 小时前
心理健康AI助手 - 项目总结
前端·javascript·vue.js·人工智能·信息可视化
PILIPALAPENG1 小时前
第4周 Day 3:多 Agent 协作——让 Agent 们"组队干活"
前端·人工智能·python
AI绘画哇哒哒1 小时前
Agent三种思考模式深度解析:CoT/ReAct/Plan-and-Execute,小白程序员必看,助你轻松掌握大模型精髓(收藏版)
人工智能·学习·ai·程序员·大模型·产品经理·转行
塔能物联运维2 小时前
存量机房降本增效:两相液冷技术解锁全生命周期成本优化密码
大数据·人工智能
这张生成的图像能检测吗2 小时前
(论文速读)STMNet: 基于单时间掩模的自监督高光谱变化检测网络
目标检测·自监督·掩码·高光谱检测·遥感检测
黎阳之光2 小时前
黎阳之光:视频孪生智慧厂网一体化解决方案|污水处理全场景智能化升级
大数据·人工智能·物联网·安全·数字孪生