基于 YOLOv8 与 Faster R-CNN 的盲道障碍检测系统

本项目是一套基于 YOLOv8 与 Faster R-CNN 的盲道障碍检测系统,以 盲道与障碍物检测数据集 为数据基础,面向盲道及周边行人、车辆、路障等十六类目标完成模型训练、评估与系统应用。系统提供 Web 端和 PyQt5 桌面端,支持图片、视频和摄像头输入,并集成结果查看、历史查询、模型管理与训练指标展示,适用于项目设计、课程实践和答辩展示。

一、项目简介

面向无障碍出行相关图像,检测盲道及周边可能影响通行的行人、车辆和路障。系统提供 YOLOv8 与 Faster R-CNN 两套既有权重,通过相同输入查看检测差异,并结合目标定位、历史查询与报告输出整理结果。

组成 项目内容
数据集 盲道与障碍物检测数据集
模型 YOLOv8n / Faster R-CNN
识别任务 盲道及周边行人、车辆、路障等十六类目标
实验资料 训练参数、日志、权重与已有图表
应用端 桌面界面与浏览器操作界面

二、系统功能设计

2.1 登录与工作台

登录后通过侧栏进入概览、图片检测、批量、视频、摄像头、模型对比和历史页面。工作台汇总已有任务与检测结果,方便切换输入和模型。

2.2 图片检测与障碍统计

单图检测显示目标框、类别、置信度与坐标,支持结果导出。障碍物数量的汇总排除盲道本身,便于分别查看道路结构与周边目标。

2.3 目标定位与局部放大

点击结果可以定位到对应目标,并放大原图中的局部区域,观察道路边缘、遮挡物及小目标细节。浏览器还提供检测提示播报。

2.4 双模型对比

同一张图像分别调用 YOLOv8 与 Faster R-CNN 权重,左右展示检测框、目标数量、类别与实际推理耗时。该功能用于观察同一样本上的输出差异,完整评测仍应结合各自验证日志。

2.5 批量与视频任务

批量单次最多处理 50 张图像,支持进度、取消、失败项重试,以及标注图和 CSV 打包。视频在后台处理并导出标注视频;历史页可以筛选任务、查看详情并生成可打印报告。

2.6 模型与指标

模型页面管理两类算法的权重与检测参数,指标区读取各自训练日志,区分末轮与峰值。两套模型的训练轮数不同,文中分别呈现各自结果。

三、技术栈

类别 技术及用途
编程语言 Python、JavaScript
深度学习框架 PyTorch
模型训练与推理 Ultralytics YOLO;另含 torchvision Faster R-CNN
桌面界面 PyQt5
Web 服务 FastAPI
Web 前端 HTML、CSS、JavaScript
图像与视频处理 OpenCV、NumPy
训练日志与离线绘图 Matplotlib;CSV 训练记录
结果保存 Web 独立目录中的账号、任务、历史与结果文件

四、项目结构

项目将训练代码、界面、模型产物和 Web 服务分别组织,主要目录如下:

text 复制代码
c80/
├─ docs/
├─ gui.py
├─ history_manager.py
├─ login.py
├─ metrics_dashboard.py
├─ model_switcher.py
├─ README.md
├─ requirements.txt
├─ runs/
├─ theme.py
├─ train.py
├─ train_fasterrcnn.py
├─ voice_alert.py
└─ web/
   ├─ backend/  # 服务接口与推理任务
   ├─ frontend/              # 页面与交互
   └─ data/                  # Web 独立运行数据

本文对应的训练日志位于 runs/train/blindtrack_detection/results.csv。 数据集按实际配置定位;浏览器端的运行结果独立保存在 Web 数据目录。

五、数据集说明

5.1 数据集与识别任务

项目使用 盲道与障碍物检测数据集,面向盲道及周边行人、车辆、路障等十六类目标。每个目标由类别与边界框共同描述,模型输出位置及对应预测分数。

5.2 数据规模与划分

本地交付保留 16 类模型权重、训练参数、逐轮日志与验证样图,本文用已有标注样图展示数据形式。完整训练集未包含在当前项目目录,重新训练时需按原类别与数据配置准备对应数据。

5.3 类别与标注格式

类别编号 类别名称 中文含义
0 blind track 盲道
1 ashcan 垃圾桶
2 car 汽车
3 bicycle 自行车
4 person 行人
5 spherical_roadblock 球形路障
6 pole 立杆
7 fire_hydrant 消防栓
8 stop_sign 停车标志
9 truck 卡车
10 dog 狗
11 motorbike 摩托车
12 warning_column 警示柱
13 bus 公交车
14 tricycle 三轮车
15 reflective_cone 反光锥

YOLO 标注按每行一个目标组织:

text 复制代码
class_id center_x center_y width height

中心点坐标与宽高采用相对图像尺寸的归一化值,图像与 TXT 标注按文件名对应。

六、模型训练过程

6.1 训练流程

训练代码由 train.py、train_fasterrcnn.py 组织,先读取图像、类别与划分,再加载预训练模型进行训练,并保留逐轮日志与已有权重。

  1. 按当前数据目录读取图像及对应标签。
  2. 将输入调整为实验配置的尺寸,并应用训练预处理。
  3. 加载基础模型,在对应类别上进行训练。
  4. 在验证阶段计算指标并保存日志及权重。
  5. 使用已有训练图表分析结果,并在系统中加载权重开展推理。

6.2 模型与训练参数

参数 本次记录
基础模型 YOLOv8n / Faster R-CNN
配置轮数 100
日志实际轮数 100
输入尺寸 640 × 640
Batch Size 16
优化器配置 SGD
预热轮数 3.0
DataLoader Workers 8

数据增强与学习率调度以本次参数记录和逐轮 CSV 为准;配置值与实际日志中的学习率分别读取。

Faster R-CNN 使用独立训练流程:50 轮、Batch Size 2、学习率 0.005、StepLR(step_size=15、gamma=0.1),输入短边 640、长边上限 960。两类模型的损失组成不同,分别读取对应日志。

6.3 训练产物

  • args.yaml:本次实验参数。
  • results.csv:每一轮损失、检测指标和学习率。
  • weights/:已保存的模型权重。
  • 训练图表:原始产物中的曲线、分布或评估图,见第八节。

七、训练结果与核心指标

7.1 最后一轮结果

以下为当前实验 CSV 的第 100 轮验证结果:

指标 日志数值 百分比
Precision 0.78722 78.722%
Recall 0.63093 63.093%
mAP@0.5 0.70737 70.737%
mAP@0.5:0.95 0.51402 51.402%

7.2 各指标最高值

指标 最高值 对应轮次
Precision 0.79893 第 86 轮
Recall 0.65015 第 82 轮
mAP@0.5 0.7124 第 88 轮
mAP@0.5:0.95 0.51904 第 88 轮

单项峰值可能出现在不同轮次;末轮表用于查看同一轮完整结果,峰值表用于查看各指标在本次训练中的最高记录。

Faster R-CNN 第 50 轮的独立验证结果如下:

Precision Recall mAP@0.5 mAP@0.5:0.95
0.792618 0.806105 0.826112 0.563430

7.3 结果分析

两类模型的检测结果与损失曲线分别来自各自训练记录。单图对比便于观察输出差异,后续评估应统一数据、评测方法及运行环境。

八、可视化图表说明

以下图片直接采用源码目录已有的训练产物,保留原始图表内容与数值。

8.1 训练结果总览

集中展示训练过程中的多项损失和评测指标,便于结合完整实验查看收敛变化。

8.2 Precision--Recall 曲线

展示不同阈值下的精确率与召回率关系,用于观察各类目标的检测表现。

8.3 混淆矩阵

按原图中的类别与坐标轴查看真实标签和预测标签的对应关系,观察正确分类与易混淆类别。

本项目为个人原创项目,配套源码、模型权重、训练资料和项目说明,可用于毕业设计、课程实践、简历展示及个人学习。有项目成品或定制需求,可以通过主页联系作者。

相关推荐
别动我齐刘海1 小时前
机器人 C++ / 系统联调补强2——异常处理、Protobuf
linux·c++·人工智能·学习·算法·机器学习·机器人
不爱学英文的码字机器1 小时前
REMAC 论文解读:新动作算出来时,机器人已经走了两步
人工智能·机器人
俊哥V1 小时前
2026-10-21 AI 日报:开放权重性价比、Agent 治理立法、Physical AI 落地
人工智能·ai
云和数据.ChenGuang1 小时前
LLM大模型对接本地Ollama部署模型
开发语言·人工智能·python·langchain
星禾元亨1 小时前
用结构化数据与干净实体信号,让技术内容被 AI 搜索引擎稳定引用
数据库·人工智能·自动化·创业创新
清华kenny1 小时前
连锁门店选择晓得养AI系统进行标准化管理的依据
大数据·人工智能·安徽晓得养
荆棘鸟智能1 小时前
短历时洪水预报算法实践:水文模型与 LightGBM 残差订正融合
人工智能·算法·机器人
打不了嗝 ᥬ᭄1 小时前
Swin Transformer 详解:窗口注意力如何成为新一代视觉 backbone
深度学习·计算机视觉·自注意力机制·swintransformer
奈落242 小时前
数商云软文与科技要闻同页混排:从网易订阅聚合流的商业内容,到 linux.do 社区原文,AI 工程师的信息源要加一道“广告识别”工序
人工智能·科技·ai 办公