基于YOLOv8的盲道障碍检测系统

简介: 基于 YOLOv8 深度学习模型与 PyQt5 桌面框架构建,旨在实时检测盲道上的常见障碍物,为视障人士的出行安全提供辅助。系统提供直观的可视化操作界面,支持图片、视频文件和实时摄像头三种检测模式,并集成了完整的用户认证与历史记录功能。

基于 YOLOv8 深度学习模型与 PyQt5 桌面框架构建,旨在实时检测盲道上的常见障碍物,为视障人士的出行安全提供辅助。系统提供直观的可视化操作界面,支持图片、视频文件和实时摄像头三种检测模式,并集成了完整的用户认证与历史记录功能。


主要功能

用户认证系统

  • 登录 / 注册:支持用户名与密码的账号体系,密码经 SHA-256 加密后存储于本地 users.json
  • 找回密码:通过安全问题验证身份后重置密码(需注册时设置安全问题)。

多模式障碍物检测

  • 图片识别:上传单张图片,系统识别后以标注图和详情表格(类别、置信度、坐标)的形式展示结果,支持一键保存。
  • 视频识别:逐帧处理本地视频文件,实时显示检测画面、用时、目标数量及进度条。
  • 摄像头识别:调用本地摄像头进行实时画面捕捉和障碍物检测,支持多设备切换。

历史识别记录

  • 每次完成图片、视频或摄像头识别后,系统自动将识别时间、来源类型、文件名、目标数量和用时写入本地 history.json
  • 在"历史记录"页面可查看所有记录(按时间倒序排列),支持刷新删除选中清空全部操作。

可视化界面

  • 浅色渐变主题:默认采用清爽的蓝色渐变主题,同时内置深蓝、绿色、橙色等多种主题可切换。
  • 左侧导航栏:在图片识别、视频识别、摄像头识别、历史记录四个模块间快速切换。
  • 自动加载权重:启动时自动寻找 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

反光锥


🛠️ 技术栈

类别

技术

深度学习模型

Ultralytics YOLOv8

深度学习框架

PyTorch

图形用户界面

PyQt5

图像处理

OpenCV-Python

数值计算

NumPy


📁 文件结构

├── gui.py                # 主程序 GUI 界面与核心推理逻辑
├── login.py              # 登录、注册、找回密码模块
├── theme.py              # 主题管理器(浅色渐变 / 深蓝 / 绿色 / 橙色)
├── history_manager.py    # 历史识别记录读写管理
├── train.py              # 模型训练脚本
├── requirements.txt      # Python 依赖清单
├── users.json            # 用户数据库(运行后自动生成)
├── history.json          # 历史记录数据库(运行后自动生成)
├── data/                 # 数据集目录
│   └── data.yaml         # 数据集配置文件
└── runs/                 # YOLOv8 训练 / 推理输出目录
    └── train/
        └── blindtrack_detection/
            └── weights/
                └── best.pt   # 训练好的最优权重(自动加载)

🚀 快速开始

1. 环境准备

  • Python 3.8+
  • (可选但推荐)NVIDIA 显卡 + CUDA,用于 GPU 加速推理

2. 安装依赖

# 建议先创建虚拟环境
python -m venv venv
venv\Scripts\activate        # Windows
# source venv/bin/activate   # Linux / macOS
pip install -r requirements.txt

3. 准备模型权重

  • 自动加载:将训练好的权重目录(含 best.pt)放在 runs/train/ 下,启动时自动识别最新权重。
  • 手动选择:在"图片识别"页面点击"选择权重"按钮手动指定 .pt 文件。

4. 启动程序

python gui.py

首次运行会弹出登录窗口,请先注册账号再登录。


📖 使用指南

用户认证

  1. 点击"注册账号",填写用户名(≥3字符)和密码(≥6字符)完成注册。
  2. 登录后进入主界面。

图片识别

  1. 确认顶部权重路径已加载(或手动选择 best.pt)。
  2. 调整置信度阈值(默认 0.25)。
  3. 点击"打开图片",选择图片后系统自动检测。
  4. 右侧面板展示目标列表;点击"保存结果"导出标注图。

视频识别

  1. 点击"选择视频"选择 .mp4 / .avi / .mov / .mkv 文件。
  2. 点击"开始"逐帧检测,进度条实时更新;点击"停止"终止。
  3. 识别结束后自动写入历史记录。

摄像头识别

  1. 点击"刷新设备"扫描可用摄像头并在下拉列表中选择。
  2. 点击"开始"进行实时检测;点击"停止"结束并写入历史记录。

历史记录

  • 点击左侧导航"历史记录"可查看所有历史。
  • 支持选中行后点击"删除选中",或"清空全部"一键清除。

📊 模型训练

使用 train.py 对自定义数据集进行训练:

python train.py

训练完成后,结果输出至 runs/train/ 目录,包含以下关键文件:

文件

说明

weights/best.pt

验证集上表现最优的权重,供推理使用

results.csv / results.png

各 epoch 的损失、精确率、召回率、mAP 变化曲线

confusion_matrix.png

混淆矩阵,对角线越亮分类越准确

PR_curve.png

精确率-召回率曲线,曲线下面积越大越好

F1_curve.png

F1 分数曲线,用于寻找最优置信度阈值

labels.jpg

数据集类别与标注框分布可视化

val_batchN_pred.jpg

验证集批次预测效果直观展示


本项目为个人原创,结构清晰,功能完整,适合计算机视觉方向课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
人工智能技术介绍
【10月更文挑战第14天】 人工智能技术介绍
|
开发工具
npm install 卡死问题解决
npm install 卡死问题解决
1823 0
|
存储 算法 数据库
阿里云InfluxDB®基于TSI索引的数据查询流程
简介 时间序列数据库是目前技术发展最快的数据库类型之一。作为业界最为流行的时序数据库InfluxDB,其部署运行十分简洁方便,支持高性能时序数据的读写,在应用程序监控、物联网(IoT)领域有着广泛的应用。
4560 1
|
2月前
|
存储 文字识别 运维
企业DLP系统如何与云桌面结合?
随着云桌面普及,数据集中云端却仍面临复制、截图、外发等泄露风险。Ping64 DLP 深度融合阿里云云桌面,以内容识别、分类分级、行为审计与外发控制为核心,实现“数据不出云、明文不离端、风险可追溯”的一体化防护,助力企业合规与安全协同落地。
|
4月前
|
弹性计算 安全 Ubuntu
2026年便宜购买阿里云服务器全流程指南:从账号注册到领取优惠券以及购买云服务器图文教程
2026年,个人开发者或企业用户如何低价选购阿里云服务器成为关注焦点。本文提供从账号注册、实名认证到领取优惠券、购买云服务器的全流程指南。首先,通过手机号注册阿里云账号并完成实名认证,个人认证简便,企业认证可享更多优惠。其次,成功注册后领取新客满减券、企业专属补贴券等优惠券。最后,通过官方活动页面选购,如4核8G配置的云服务器,并在结算时使用优惠券实现价格最小化。
2026年便宜购买阿里云服务器全流程指南:从账号注册到领取优惠券以及购买云服务器图文教程
|
8月前
|
关系型数据库 MySQL Serverless
阿里云企业用户注册账号、优惠券领取、云服务器购买详细步骤流程(图文)
阿里云账号怎么注册?阿里云服务器怎么购买?好多同学都不清楚,今天写一篇文章进行系统性的介绍。最新阿里云企业用户注册流程,一键注册阿里云账号、快速通过企业实名认证,免费领取企业上云补贴折扣券、代金券、抵扣金、算力补贴及免费试用机会,这篇文章整理阿里云企业用户注册流程、所需材料及问题解答FAQ。
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
8月前
|
数据采集 分布式计算 监控
Airflow 做 ETL,真不是“排个 DAG 就完事儿”:那些年我踩过的坑与悟出的道
Airflow 做 ETL,真不是“排个 DAG 就完事儿”:那些年我踩过的坑与悟出的道
602 4
Airflow 做 ETL,真不是“排个 DAG 就完事儿”:那些年我踩过的坑与悟出的道
|
8月前
|
存储 运维 Oracle
【服务器数据恢复】RAID5阵列双盘离线导致Oracle数据库 OA系统崩溃数据恢复案例 - 金海境科技
广东省某市政务服务数据管理局OA系统因RAID5阵列崩溃导致业务中断,金海境科技通过磁盘镜像、RAID重组、数据修复及系统复原,成功恢复全部政务数据与运行环境,24小时内完成应急恢复,保障了政务服务连续性,并为政务数据安全提供重要警示。
384 3
|
机器学习/深度学习 监控 数据可视化
基于YOLOv8的人脸表情识别项目【完整源码数据集+PyQt5界面+完整训练流程+开箱即用】
本项目基于YOLOv8开发人脸表情识别系统,集成PyQt5图形界面,支持图片、文件夹、视频及摄像头等多种输入方式的表情检测。具备开箱即用的特性,包含完整源码、预训练模型权重与数据集,适合毕业设计、科研及行业应用。功能涵盖单张/批量图片检测、视频实时分析、摄像头流处理等,并可保存结果。项目附带详细训练与部署流程,助力快速构建情绪识别系统。