一、项目简介
本项目面向无障碍出行场景,基于 YOLOv8 构建盲道障碍物目标检测模型,并使用 PyQt5 开发可视化桌面端。系统可对盲道及其周边常见障碍物进行检测,为盲人出行辅助、道路巡检和课程项目演示提供直观参考。
项目将模型推理、图片与视频处理、摄像头实时检测、用户认证和检测历史管理整合在同一应用中,形成从模型训练到桌面端使用的完整流程。
二、主要功能
1. 用户登录与注册
支持用户注册、登录与安全问题找回密码。用户信息保存在本地 users.json 中,密码使用 SHA-256 哈希方式保存。
2. 图片、视频与摄像头检测
支持导入图片和本地视频进行目标检测,也支持调用摄像头实时识别。检测结果会绘制目标类别、置信度和边界框,便于快速查看盲道周边的障碍情况。
3. 检测历史管理
系统将检测记录保存到本地 history.json,可刷新、删除或清空历史记录,方便回溯不同图片、视频和摄像头任务的检测结果。
4. 可视化界面与模型自动加载
桌面端提供浅蓝、深蓝、绿色和橙色等主题风格,并使用侧边栏组织功能入口。应用会自动查找 runs/train/ 下最新训练结果中的 best.pt 权重,减少手动配置步骤。
三、检测类别
模型覆盖 16 类盲道及周边常见目标,既可识别盲道本身,也能识别可能影响通行的车辆、行人和路障。
| 类别标识 | 中文名称 |
|---|---|
| blind track | 盲道 |
| pole | 立杆 |
| ashcan | 垃圾桶 |
| fire_hydrant | 消防栓 |
| car | 汽车 |
| stop_sign | 停车标志 |
| bicycle | 自行车 |
| truck | 卡车 |
| person | 行人 |
| dog | 狗 |
| spherical_roadblock | 球形路障 |
| motorbike | 摩托车 |
| warning_column | 警示柱 |
| bus | 公交车 |
| tricycle | 三轮车 |
| reflective_cone | 反光锥 |
四、项目技术栈
| 类别 | 技术 / 工具 | 用途 |
|---|---|---|
| 目标检测 | YOLOv8 / Ultralytics | 模型训练、验证与推理 |
| 深度学习框架 | PyTorch | 模型运行环境 |
| 桌面界面 | PyQt5 | 可视化应用与交互界面 |
| 图像与视频处理 | OpenCV-Python、NumPy | 媒体读取、摄像头采集与结果绘制 |
| 数据存储 | JSON | 用户信息与历史记录持久化 |
五、项目结构
c80/
├── gui.py # 主界面与检测功能入口
├── login.py # 登录、注册与密码找回
├── theme.py # 界面主题配置
├── history_manager.py # 检测历史管理
├── train.py # YOLOv8 模型训练入口
├── requirements.txt # 依赖清单
├── users.json # 用户信息
├── history.json # 检测历史
├── data/
│ └── data.yaml # 数据集配置
└── runs/train/blindtrack_detection/weights/best.pt
六、运行说明
建议使用 Python 3.8 及以上版本,在安装依赖并准备好训练权重后启动桌面应用。
pip install -r requirements.txt
python gui.py
七、模型训练结果
训练过程会生成损失曲线、Precision / Recall 曲线、混淆矩阵等可视化结果,便于评估模型在盲道障碍检测任务上的表现。
本项目为个人原创,结构清晰,功能完整,适合计算机视觉方向课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。