一、项目简介本项目为《基于YOLOv8的行人车辆检测系统》围绕“行人”和“车辆”两类目标完成了从数据集整理、模型训练、参数调优、训练结果可视化到检测系统集成与交互界面开发的一整套流程。项目不仅实现了基于YOLOv8的目标检测训练还基于PyQt6开发了桌面端检测系统支持图片识别、视频识别、摄像头识别、检测历史管理、模型管理和训练指标展示等功能能够体现深度学习项目从算法到应用落地的完整过程。二、项目目标构建一个面向行人与车辆检测任务的多目标检测系统。基于 YOLOv8 完成目标检测模型训练与评估。将训练完成的最佳权重集成到桌面系统中实现可视化检测。支持中文路径环境下的数据加载、模型训练和结果保存。三、数据集构建与处理3.1 数据集类别本项目数据集共包含 2 个检测类别类别编号类别名称中文含义0person行人1car车辆3.2 数据集结构数据集按照 YOLO 目标检测标准目录组织data/ ├── data.yaml ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/3.3 数据集规模经统计本项目数据集规模如下数据划分图片数量标注数量图片格式训练集train44634463.jpg验证集val496496.jpg总计49594959.jpg训练集与验证集比例约为9:1适合进行模型训练与验证评估。3.4 标注格式标注采用标准 YOLO 格式每个标签文件对应一张图片每一行表示一个目标class_id x_center y_center width height说明坐标均为相对归一化坐标。class_id0表示行人class_id1表示车辆。标签文件与图片文件一一对应便于训练时自动匹配。3.5 数据处理特点使用data/data.yaml统一配置数据集路径与类别信息。训练脚本运行时会自动生成临时yaml配置文件将相对路径转换为绝对路径。针对 Windows 中文路径场景做了兼容处理避免因路径中含中文导致数据集加载失败。训练集与验证集分目录管理便于训练、评估和后续扩展。四、模型训练过程4.1 训练模型本项目采用YOLOv8n作为基础模型使用官方预训练权重yolov8n.pt进行迁移学习训练。选择YOLOv8n的原因模型轻量推理速度快。适合桌面端系统集成与实时检测。在中小规模数据集上能够较好平衡精度与效率。4.2 训练流程项目训练流程如下整理数据集目录准备images/train、images/val、labels/train、labels/val。编写data/data.yaml定义数据路径与类别名称。在config/train_config.py中配置训练超参数。在train.py中调用ultralytics.YOLO启动训练。将所有训练产物统一保存到train_result/目录下。训练结束后读取results.csv生成各项指标可视化图。使用最佳权重best.pt集成到 PyQt6 检测系统中。4.3 训练参数核心训练参数如下参数值模型yolov8n.pt训练轮数100批次大小16输入尺寸640数据加载线程4优化器AdamW初始学习率lr00.001最终学习率系数lrf0.01权重衰减0.0005早停轮数patience50保存周期104.4 数据增强策略为提升模型泛化能力训练阶段启用了以下增强参数增强方式参数值Mosaic1.0MixUp0.0随机旋转degrees0.0平移translate0.1缩放scale0.5垂直翻转flipud0.0水平翻转fliplr0.5HSV-H0.015HSV-S0.7HSV-V0.44.5 训练耗时根据results.csv最后一轮记录100 轮训练总耗时约为3449.3 s约57.5 分钟五、模型训练结果与指标分析5.1 最佳结果根据训练结果文件train_result/pedestrian_vehicle_detection/results.csv最佳结果出现在第87轮指标数值Precision0.7015Recall0.5335mAP0.50.5988mAP0.5:0.950.3167Val Box Loss1.30381Val Cls Loss0.673135.2 指标说明Precision预测为目标的结果中真正为目标的比例反映误检情况。Recall所有真实目标中被模型成功检测出来的比例反映漏检情况。mAP0.5在 IoU0.5 条件下的平均精度是目标检测中常用核心指标。mAP0.5:0.95在更严格的多个 IoU 阈值下的平均精度更全面反映模型检测能力。Box Loss边界框回归误差。Cls Loss分类误差。DFL Loss分布焦点损失帮助边界框定位更准确。5.3 结果分析模型在mAP0.5上达到0.5988说明在行人和车辆检测任务上已具备较好的检测能力。Precision高于Recall说明当前模型整体误检控制较好但仍存在一定漏检空间。mAP0.5:0.95明显低于mAP0.5表明模型在更严格定位精度下仍有进一步优化空间。从训练曲线看损失整体稳定下降指标在中后期趋于平稳训练过程基本收敛。六、训练结果可视化图说明项目基于训练结果生成了独立指标图保存在train_result/pedestrian_vehicle_detection/metric_charts/当前生成的图包括文件名含义01_box_loss.png训练集与验证集Box Loss变化趋势02_cls_loss.png训练集与验证集Cls Loss变化趋势03_dfl_loss.png训练集与验证集DFL Loss变化趋势04_precision.pngPrecision 随 Epoch 变化趋势05_recall.pngRecall 随 Epoch 变化趋势06_mAP50.pngmAP0.5 随 Epoch 变化趋势07_mAP50_95.pngmAP0.5:0.95 随 Epoch 变化趋势08_learning_rate.png学习率衰减曲线这些图的作用如下观察损失是否稳定下降判断训练是否收敛。观察Precision、Recall、mAP的变化趋势分析模型效果。通过学习率曲线辅助理解优化器在训练过程中的调整情况。为后续参数调优、模型替换和实验对比提供可视化依据。七、系统功能设计本项目在训练完成后将最佳模型权重集成到桌面端检测系统中形成完整应用。当前系统主要功能包括登录/注册界面。图片检测加载单张图片显示检测结果、类别统计、置信度分布、检测详情表格。视频检测对视频逐帧检测显示实时检测结果与累计统计。摄像头检测实时打开摄像头进行目标检测并支持截图保存。检测历史记录并查看图片、视频、摄像头检测历史。模型管理切换模型权重、设置置信度阈值与 IoU 阈值。指标展示可视化展示训练曲线与核心指标。八、系统集成过程本项目不仅完成了深度学习训练还完成了检测系统的集成开发主要体现为以下几个阶段8.1 数据集构建与处理阶段整理图片与标签目录。配置类别和路径。处理中文路径兼容问题。统一训练与验证集结构。8.2 模型训练与调优阶段基于 YOLOv8n 预训练权重进行迁移学习。设置训练轮数、批次大小、输入尺寸、优化器与学习率。使用数据增强提高泛化能力。通过results.csv和指标图分析模型表现。根据 Precision、Recall、mAP 等指标选择最佳权重。8.3 系统集成与功能开发阶段将best.pt封装为检测器模块。使用PyQt6构建可交互桌面界面。使用OpenCV处理图像、视频和摄像头数据流。使用Matplotlib展示训练指标与置信度分布。使用SQLite保存用户信息和检测历史。九、项目技术栈本项目采用的主要技术如下类别技术开发语言Python 3.9深度学习框架PyTorch检测模型Ultralytics YOLOv8图形界面PyQt6图像/视频处理OpenCV数值计算NumPy数据分析Pandas可视化Matplotlib配置解析PyYAML本地数据存储SQLite十、项目结构项目主要结构如下c150/ ├── app.py ├── train.py ├── visualize.py ├── config/ │ └── train_config.py ├── data/ │ ├── data.yaml │ ├── images/ │ │ ├── train/ │ │ └── val/ │ └── labels/ │ ├── train/ │ └── val/ ├── train_result/ │ └── pedestrian_vehicle_detection/ │ ├── weights/ │ │ ├── best.pt │ │ └── last.pt │ ├── results.csv │ ├── args.yaml │ └── metric_charts/ ├── ui/ │ ├── login_window.py │ ├── main_window.py │ └── pages/ │ ├── image_page.py │ ├── video_page.py │ ├── camera_page.py │ ├── history_page.py │ ├── model_page.py │ └── metrics_page.py └── utils/ ├── db.py ├── detector.py ├── mpl_zh.py ├── styles.py └── workers.py各模块职责train.py负责训练入口与训练产物保存。visualize.py负责根据results.csv生成独立指标图。config/train_config.py集中管理训练超参数。utils/detector.py封装 YOLOv8 推理与结果绘制。ui/实现系统界面与功能页面。train_result/保存权重、训练日志、图表和指标结果。十一、运行说明11.1 模型训练python train.py11.2 指标图生成python visualize.py11.3 系统启动python app.py十二、总结本项目完成了一个较完整的深度学习目标检测应用开发流程既包括数据集组织、模型训练、参数调优、训练结果分析也包括桌面系统的功能开发与模型集成。通过将 YOLOv8 训练结果与 PyQt6 可视化界面结合项目实现了“算法训练 应用落地”的完整闭环具有较好的工程实践意义与展示价值。
基于YOLOv8的行人车辆检测系统
一、项目简介本项目为《基于YOLOv8的行人车辆检测系统》围绕“行人”和“车辆”两类目标完成了从数据集整理、模型训练、参数调优、训练结果可视化到检测系统集成与交互界面开发的一整套流程。项目不仅实现了基于YOLOv8的目标检测训练还基于PyQt6开发了桌面端检测系统支持图片识别、视频识别、摄像头识别、检测历史管理、模型管理和训练指标展示等功能能够体现深度学习项目从算法到应用落地的完整过程。二、项目目标构建一个面向行人与车辆检测任务的多目标检测系统。基于 YOLOv8 完成目标检测模型训练与评估。将训练完成的最佳权重集成到桌面系统中实现可视化检测。支持中文路径环境下的数据加载、模型训练和结果保存。三、数据集构建与处理3.1 数据集类别本项目数据集共包含 2 个检测类别类别编号类别名称中文含义0person行人1car车辆3.2 数据集结构数据集按照 YOLO 目标检测标准目录组织data/ ├── data.yaml ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/3.3 数据集规模经统计本项目数据集规模如下数据划分图片数量标注数量图片格式训练集train44634463.jpg验证集val496496.jpg总计49594959.jpg训练集与验证集比例约为9:1适合进行模型训练与验证评估。3.4 标注格式标注采用标准 YOLO 格式每个标签文件对应一张图片每一行表示一个目标class_id x_center y_center width height说明坐标均为相对归一化坐标。class_id0表示行人class_id1表示车辆。标签文件与图片文件一一对应便于训练时自动匹配。3.5 数据处理特点使用data/data.yaml统一配置数据集路径与类别信息。训练脚本运行时会自动生成临时yaml配置文件将相对路径转换为绝对路径。针对 Windows 中文路径场景做了兼容处理避免因路径中含中文导致数据集加载失败。训练集与验证集分目录管理便于训练、评估和后续扩展。四、模型训练过程4.1 训练模型本项目采用YOLOv8n作为基础模型使用官方预训练权重yolov8n.pt进行迁移学习训练。选择YOLOv8n的原因模型轻量推理速度快。适合桌面端系统集成与实时检测。在中小规模数据集上能够较好平衡精度与效率。4.2 训练流程项目训练流程如下整理数据集目录准备images/train、images/val、labels/train、labels/val。编写data/data.yaml定义数据路径与类别名称。在config/train_config.py中配置训练超参数。在train.py中调用ultralytics.YOLO启动训练。将所有训练产物统一保存到train_result/目录下。训练结束后读取results.csv生成各项指标可视化图。使用最佳权重best.pt集成到 PyQt6 检测系统中。4.3 训练参数核心训练参数如下参数值模型yolov8n.pt训练轮数100批次大小16输入尺寸640数据加载线程4优化器AdamW初始学习率lr00.001最终学习率系数lrf0.01权重衰减0.0005早停轮数patience50保存周期104.4 数据增强策略为提升模型泛化能力训练阶段启用了以下增强参数增强方式参数值Mosaic1.0MixUp0.0随机旋转degrees0.0平移translate0.1缩放scale0.5垂直翻转flipud0.0水平翻转fliplr0.5HSV-H0.015HSV-S0.7HSV-V0.44.5 训练耗时根据results.csv最后一轮记录100 轮训练总耗时约为3449.3 s约57.5 分钟五、模型训练结果与指标分析5.1 最佳结果根据训练结果文件train_result/pedestrian_vehicle_detection/results.csv最佳结果出现在第87轮指标数值Precision0.7015Recall0.5335mAP0.50.5988mAP0.5:0.950.3167Val Box Loss1.30381Val Cls Loss0.673135.2 指标说明Precision预测为目标的结果中真正为目标的比例反映误检情况。Recall所有真实目标中被模型成功检测出来的比例反映漏检情况。mAP0.5在 IoU0.5 条件下的平均精度是目标检测中常用核心指标。mAP0.5:0.95在更严格的多个 IoU 阈值下的平均精度更全面反映模型检测能力。Box Loss边界框回归误差。Cls Loss分类误差。DFL Loss分布焦点损失帮助边界框定位更准确。5.3 结果分析模型在mAP0.5上达到0.5988说明在行人和车辆检测任务上已具备较好的检测能力。Precision高于Recall说明当前模型整体误检控制较好但仍存在一定漏检空间。mAP0.5:0.95明显低于mAP0.5表明模型在更严格定位精度下仍有进一步优化空间。从训练曲线看损失整体稳定下降指标在中后期趋于平稳训练过程基本收敛。六、训练结果可视化图说明项目基于训练结果生成了独立指标图保存在train_result/pedestrian_vehicle_detection/metric_charts/当前生成的图包括文件名含义01_box_loss.png训练集与验证集Box Loss变化趋势02_cls_loss.png训练集与验证集Cls Loss变化趋势03_dfl_loss.png训练集与验证集DFL Loss变化趋势04_precision.pngPrecision 随 Epoch 变化趋势05_recall.pngRecall 随 Epoch 变化趋势06_mAP50.pngmAP0.5 随 Epoch 变化趋势07_mAP50_95.pngmAP0.5:0.95 随 Epoch 变化趋势08_learning_rate.png学习率衰减曲线这些图的作用如下观察损失是否稳定下降判断训练是否收敛。观察Precision、Recall、mAP的变化趋势分析模型效果。通过学习率曲线辅助理解优化器在训练过程中的调整情况。为后续参数调优、模型替换和实验对比提供可视化依据。七、系统功能设计本项目在训练完成后将最佳模型权重集成到桌面端检测系统中形成完整应用。当前系统主要功能包括登录/注册界面。图片检测加载单张图片显示检测结果、类别统计、置信度分布、检测详情表格。视频检测对视频逐帧检测显示实时检测结果与累计统计。摄像头检测实时打开摄像头进行目标检测并支持截图保存。检测历史记录并查看图片、视频、摄像头检测历史。模型管理切换模型权重、设置置信度阈值与 IoU 阈值。指标展示可视化展示训练曲线与核心指标。八、系统集成过程本项目不仅完成了深度学习训练还完成了检测系统的集成开发主要体现为以下几个阶段8.1 数据集构建与处理阶段整理图片与标签目录。配置类别和路径。处理中文路径兼容问题。统一训练与验证集结构。8.2 模型训练与调优阶段基于 YOLOv8n 预训练权重进行迁移学习。设置训练轮数、批次大小、输入尺寸、优化器与学习率。使用数据增强提高泛化能力。通过results.csv和指标图分析模型表现。根据 Precision、Recall、mAP 等指标选择最佳权重。8.3 系统集成与功能开发阶段将best.pt封装为检测器模块。使用PyQt6构建可交互桌面界面。使用OpenCV处理图像、视频和摄像头数据流。使用Matplotlib展示训练指标与置信度分布。使用SQLite保存用户信息和检测历史。九、项目技术栈本项目采用的主要技术如下类别技术开发语言Python 3.9深度学习框架PyTorch检测模型Ultralytics YOLOv8图形界面PyQt6图像/视频处理OpenCV数值计算NumPy数据分析Pandas可视化Matplotlib配置解析PyYAML本地数据存储SQLite十、项目结构项目主要结构如下c150/ ├── app.py ├── train.py ├── visualize.py ├── config/ │ └── train_config.py ├── data/ │ ├── data.yaml │ ├── images/ │ │ ├── train/ │ │ └── val/ │ └── labels/ │ ├── train/ │ └── val/ ├── train_result/ │ └── pedestrian_vehicle_detection/ │ ├── weights/ │ │ ├── best.pt │ │ └── last.pt │ ├── results.csv │ ├── args.yaml │ └── metric_charts/ ├── ui/ │ ├── login_window.py │ ├── main_window.py │ └── pages/ │ ├── image_page.py │ ├── video_page.py │ ├── camera_page.py │ ├── history_page.py │ ├── model_page.py │ └── metrics_page.py └── utils/ ├── db.py ├── detector.py ├── mpl_zh.py ├── styles.py └── workers.py各模块职责train.py负责训练入口与训练产物保存。visualize.py负责根据results.csv生成独立指标图。config/train_config.py集中管理训练超参数。utils/detector.py封装 YOLOv8 推理与结果绘制。ui/实现系统界面与功能页面。train_result/保存权重、训练日志、图表和指标结果。十一、运行说明11.1 模型训练python train.py11.2 指标图生成python visualize.py11.3 系统启动python app.py十二、总结本项目完成了一个较完整的深度学习目标检测应用开发流程既包括数据集组织、模型训练、参数调优、训练结果分析也包括桌面系统的功能开发与模型集成。通过将 YOLOv8 训练结果与 PyQt6 可视化界面结合项目实现了“算法训练 应用落地”的完整闭环具有较好的工程实践意义与展示价值。