☰
安全帽佩戴检测系统-YOLOv8+CNN
2026/10/15 15:14:31 网站建设 项目流程

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。

一、项目描述

安全帽佩戴检测系统,采用两阶段视觉架构:YOLOv8 检测施工场景中的人物框,裁剪头部区域后送入自训练的 CNN 进行二分类(已佩戴 / 未佩戴 / 不确定)。整体从数据准备、模型训练、性能基准到端到端视频推理形成完整闭环,并提供 Gradio Web 界面供交互式使用。

二、项目功能

– 人物检测 :基于 YOLOv8n-seg(person 专用版)输出人物边界框与置信度
– 头部裁剪 :依据人物框宽高比动态插值计算头部占比(1/5~2/3),自适应站立/近景/蹲姿
– 安全帽分类 :三层 CNN(32→64→128 卷积 + 全连接)对 96×96 头部图二分类,测试集准确率 97.17%
– 视频推理 :每隔 N 帧运行 YOLO 复用检测结果,中间帧仍执行 CNN 标注,RTX 3060 上 86.6 fps
– 训练与评估 :超参集中配置,产出训练曲线/样本图/最佳权重,支持单图推理与评估脚本
– Web 交互 :Gradio 上传视频 → 自动检测 → 输出 H.264 标注视频(浏览器可播放)与统计表
– 可视化标注 :绿色=已佩戴、红色=未佩戴、黄色=不确定,低于阈值判为不确定

三、运行环境

– 操作系统:Windows
– Python:3.11
– 关键依赖:torch 2.14.0(CPU 版,可选 CUDA)、torchvision、opencv-python 5.0.0、ultralytics 8.4.161、gradio 6.29.1、imageio-ffmpeg 0.6.0、huggingface_hub、numpy
– 推理设备:CPU 即可运行,CUDA 可选(提升 YOLO 速度)
– 模型权重:已就位(YOLO PT/ONNX、CNN best_model.pt),无需下载
– 启动入口:`python src/app.py` 启动 Web 界面( http://127.0.0.1:7860);`python src/main.py` 命令行视频推理;` python train/main.py` 训练

四、项目技术

– 检测 :YOLOv8n-seg 人物专用预训练模型(从 HuggingFace 拉取),支持 PT/ONNX 双后端
– 分类 :自研 HelmetCNN(4,812,610 参数),输入 96×96,三通道均值/方差标准化
– 训练栈 :PyTorch + torchvision,Adam 优化器,batch_size=64,10 epochs,seed=42
– 图像处理 :OpenCV 填充 1:1 + 缩放,动态头部裁剪策略
– 视频处理 :OpenCV VideoWriter(mp4v)+ ffmpeg 转码 H.264(yuv420p + faststart)适配浏览器
– Web 框架 :Gradio 6.x Blocks + Soft 主题 + 自定义 CSS(靛蓝主调)
– 架构模式 :两阶段流水线(检测→分类),模块化解耦(tools/train/src 分层),全局懒加载模型避免重复初始化
以上系统源码经过技术整理与调试,确保能正常运行

五、项目截图

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询