基于深度学习的穿戴识别系统设计与实现
1. 项目概述
本系统是一个基于深度学习(YOLOv8)与 Web 技术(Django + Vue3)相结合的智能安全检测平台。本项目旨在解决工业现场及特定场所的安全规范管理问题,以帽子(安全帽/普通帽)与鞋子(安全鞋/普通鞋)的识别检测为例,展示了如何利用计算机视觉技术实时监测人员的穿戴合规情况。
系统集成了图像采集、智能识别、逻辑判断(如是否佩戴安全帽、是否穿着合规鞋履)、违规报警、数据统计、历史记录查询以及用户管理等功能,形成了一个闭环的安全管理解决方案。
2. 算法与模型详解
本项目核心检测算法采用 YOLOv8 (You Only Look Once Version 8),这是目前也是工业界最先进的目标检测算法之一,以其高精度和快速度著称。
2.1 数据集与类别
为了实现对帽子和鞋子等穿戴装备的精准识别,模型针对以下类别进行了专项训练:
- Person (人): 基础目标,用于定位人员主体。
- Head (头部防护) :
- Hat: 普通帽子。
- Helmet: 工业安全帽。
- Feet (足部防护) :
- Footwear / Boot: 各类鞋履(含安全鞋)。
- High heels / Sandal: 高跟鞋、凉鞋(通常视为违规穿着)。
- Body (身体防护): Jacket, Coat, Suit (用于辅助判断整体着装,如反光衣或工装)。
- Face (面部防护): Goggles (护目镜), Glasses。
数据分布分析

上图展示了训练集中各类别的数量分布(直方图)以及目标在图像中的位置分布(散点图)。可以看到数据集充分覆盖了不同角度、不同大小的帽子和鞋子样本,有利于模型处理遮挡和小目标检测问题。
2.2 模型评估与指标分析
在模型训练完成后,我们通过一系列指标来评估其性能,重点关注在头部和足部小目标上的表现。
2.2.1 训练结果总览

- Loss (损失函数): 左侧图表显示了训练集和验证集的 Box Loss(定位损失)、Cls Loss(分类损失)和 Dfl Loss。随着 Epoch 增加,损失值呈现下降趋势,表明模型正在有效学习帽子和鞋子的特征。
- Metrics (指标): 右侧显示了 Precision, Recall, mAP50, mAP50-95 的变化曲线,均呈现上升并趋于平稳的态势,说明模型性能在不断提升。
2.2.2 精确率 (Precision) 与 召回率 (Recall)
- 精确率 (Precision): 预测为正样本中实际为正样本的比例。即"预测对了多少"。
- 召回率 (Recall): 实际正样本中被正确预测的比例。即"找出了多少"。

BoxP_curve: 展示了不同置信度阈值下的精确率。通常置信度越高,精确率越高。

BoxR_curve: 展示了不同置信度阈值下的召回率。通常置信度越高,召回率越低(因为过滤掉了更多疑似目标)。

BoxPR_curve: Precision-Recall 曲线。该曲线下面积 (AUC) 即为 mAP (mean Average Precision)。曲线越靠近右上角,模型性能越好。可以看到模型在大部分类别上都取得了极高的 mAP (接近 0.99),说明检测非常准确。
2.2.3 F1 Score
F1 Score 是精确率和召回率的调和平均数,用于综合评估模型性能。

BoxF1_curve: 展示了不同阈值下的 F1 分数。峰值代表了最佳的置信度阈值选择,此时模型在漏检和误检之间达到了最佳平衡。
2.3 混淆矩阵 (Confusion Matrix)
混淆矩阵用于详细分析模型在各个类别上的分类表现,特别是易混淆的类别(如不同类型的鞋子)。


- 对角线: 代表预测正确的数量或比例。颜色越深(数值越大),说明该类别的识别准确率越高。
- 非对角线: 代表误检(将A类识别为B类)或漏检(Background)。
- 从图中可以看出,模型在绝大多数类别上的识别准确率极高,误检率很低。
验证集采样

这是模型在验证集上的实际检测效果抽样,可以看到模型能够精准地框选出人员及其佩戴的装备。
3. 系统架构与技术栈
3.1 技术栈
- 前端: Vue 3, Vite, Element Plus, Axios, ECharts, Vue Router。
- 后端: Python 3.12, Django 5.x, Django REST Framework (DRF)。
- 算法: PyTorch, Ultralytics YOLOv8, OpenCV。
- 数据库: SQLite (轻量级,适合嵌入式或中小型应用,可无缝迁移至 MySQL/PostgreSQL)。
3.2 架构设计
系统采用经典的 前后端分离 (RESTful API) 架构:
- 前端: 负责页面展示、用户交互、摄像头流处理、图表渲染。通过 HTTP 请求与后端通信。
- 后端 API: 提供认证、数据增删改查、图像处理接口。
- 算法引擎 : 后端接收图片 -> OpenCV 预处理 -> YOLOv8 推理 -> 空间逻辑判断 (判断帽子是否在头部区域,鞋子是否在足部区域) -> 返回结果。
4. 数据库设计详解
数据库主要包含两个核心表:User (用户表) 和 DetectionRecord (检测记录表)。
4.1 用户表 (auth_user)
使用 Django 内置的认证系统表。
| 字段名 | 类型 | 长度 | 非空 | 唯一 | 说明 |
|---|---|---|---|---|---|
| id | Integer | 11 | 是 | 是 | 主键,自增 |
| username | Varchar | 150 | 是 | 是 | 用户名,登录凭证 |
| password | Varchar | 128 | 是 | 否 | 加密存储的密码哈希 |
| Varchar | 254 | 否 | 否 | 电子邮件地址 | |
| is_staff | Boolean | 1 | 是 | 否 | 是否为管理员 (True则可登录后台/管理用户) |
| is_active | Boolean | 1 | 是 | 否 | 账户是否启用 |
| date_joined | DateTime | - | 是 | 否 | 注册时间 |
4.2 检测记录表 (api_detectionrecord)
用于存储每一次的检测历史。
| 字段名 | 类型 | 长度 | 非空 | 唯一 | 说明 |
|---|---|---|---|---|---|
| id | Integer | 11 | 是 | 是 | 主键,自增 |
| user_id | Integer | 11 | 是 | 否 | 外键,关联到 User 表 (操作员) |
| original_image | Varchar | 100 | 是 | 否 | 原始上传图片的存储路径 |
| result_image | Varchar | 100 | 否 | 否 | 检测后绘制了边框的图片路径 |
| result_json | JSON/Text | - | 否 | 否 | 详细检测数据的 JSON 字符串 (包含所有目标的坐标、类别、置信度) |
| is_safe | Boolean | 1 | 是 | 否 | 本次检测是否合规 (True=合规, False=违规) |
| created_at | DateTime | - | 是 | 否 | 检测发生的时间,自动生成 |
5. 系统功能与界面详解
5.1 登录与注册
系统提供安全的身份验证机制。用户必须登录后才能使用检测功能。
- 功能: 用户名/密码登录,新用户注册。
- 技术: JWT 或 Token 认证,密码 Hash 加密传输。

5.2 智能检测 (核心功能)
这是系统的主工作台,支持两种模式。
- 本地上传: 拖拽或选择本地图片文件进行检测。
- 摄像头实时检测: 调用浏览器媒体流 (WebRTC),截取帧发送至后端进行分析。
- 界面展示: 左侧为操作区,右侧实时显示检测结果(包含渲染后的图片和详细的合规/违规列表)。
- 逻辑 : 后端不仅识别物体,还会计算物体间的空间关系(如:安全帽是否在人头上方,安全鞋是否在脚部),从而判定是否合规。

5.3 历史记录
用户可以查看过往所有的检测记录。
- 功能: 列表展示,支持按"合规/违规"状态筛选,支持按日期范围搜索。
- 交互: 点击列表项可查看大图对比(原图 vs 结果图)。
- 权限: 普通用户只能看自己的记录,管理员可查看所有人的记录。

5.4 数据统计
直观的数据看板,帮助管理者了解整体安全状况。
- 指标: 总检测次数、合规次数、违规次数、整体合规率。
- 图表 :
- 饼图: 展示合规与违规的比例分布。
- 折线图: 展示近7天的检测数量趋势。

5.5 模型监控
专为技术人员或管理员设计的页面,用于监控 AI 模型的运行指标。
- 展示内容: 实时读取后端配置的模型评估指标 (mAP, Precision, Recall) 以及训练过程中的 Loss 曲线。
- 意义: 确保系统使用的模型处于最佳状态,便于后续的模型迭代更新。

5.6 用户管理 (管理员专属)
仅限拥有管理员权限 (is_superuser/is_staff) 的账号访问。
- 功能: 查看系统所有用户,添加新用户,编辑用户信息(如重置密码、修改权限),删除用户。
- 安全: 实现了 RBAC (基于角色的访问控制) 的雏形。

6. 总结
本系统通过先进的计算机视觉技术,设计并实现了一个以帽子与鞋子检测为核心的智能穿戴规范检测系统。从底层的 YOLOv8 算法训练,到中间层的 Django 业务逻辑,再到前端 Vue3 的可视化交互,构建了一套完整、高效、易用的解决方案。该系统不仅能有效识别是否佩戴安全帽和安全鞋,还具备良好的扩展性,可进一步应用于更多安全防护装备的检测场景。