最新YOLO实现的疲劳驾驶实时检测平台(Flask+SocketIO+HTML/CSS/JS)
摘要
本文面向“疲劳驾驶”场景,构建基于 YOLOv5–YOLOv12(共 8 种模型)的实时检测与对比平台,以 Flask + Flask-SocketIO/HTML/CSS/JS 搭建Web 网页界面,支持图片/视频/浏览器摄像头多源输入,提供即时双画面对比(原图/检测图)与视频进度控制(暂停/继续/停止/跳转)。平台内置模型选择/权重上传、Conf/IoU 调节与类别筛选,自动统计 mAP、F1、PR 并展示训练曲线、混淆矩阵;结果可CSV 导出、带框结果一键下载并写入SQLite,同时支持**登录/注册(可跳过)**以管理个性化配置与历史记录。系统面向“打哈欠、闭眼、打瞌睡、低头与分神”等疲劳征象的检测,强调端到端实时性优化与部署可复现性;文中对 YOLOv5–YOLOv12 的速度/精度/参数量进行系统对比,给出轻量化与加速策略的工程复盘。文末提供完整工程与数据集下载链接。
讲解视频地址:https://www.bilibili.com/video/BV1HJQFBcEMX/
文章目录
1. 网页功能与效果
(1)登录注册提供账户登录、快速注册与一次性跳过三种入口,会话在当前浏览器与同域多页生效并按超时策略自动失效;凭据采用口令哈希与最小化权限策略保存。进入系统后即载入个性化配置与历史记录,未登录的临时会话仅在本次使用内有效以兼顾演示与安全。
(2)功能概况聚合图片、视频与浏览器摄像头三类输入,支持原图与检测结果的即时双画面对比与16:9自适应缩放;平台内置Conf/IoU调节与类别筛选,并可CSV导出与带框图片/视频一键下载。检测明细、会话事件与统计指标实时写入SQLite,模型选择与权重上传在同一界面完成。
(3)视频检测以双帧同步呈现原视频与检测叠加帧,提供进度拖动、暂停、继续与停止控制,关键帧定位用于精确回看;推理过程采用低延迟缓冲并支持将缓存片段导出为MP4。运行中可即时调整阈值与筛选类别,底部记录区跨页共享以保证溯源一致。
(4)更换模型支持直接上传权重文件或从候选列表中切换,当前模型即刻生效并同步刷新类别映射、输入尺寸与推理参数;切换过程保留历史版本以便回滚。页面标题、品牌与主题可编辑并本地保存,跨平台路径规范与数据库自动迁移确保持续可用。
(5)概览界面以单页总览当前会话状态、最近任务与关键指标,包含最近一次图片/视频/摄像头检测的缩略图、时间戳与告警计数;mAP、F1与PR等评测摘要及训练曲线预览用于快速研判模型表现。支持按文件名或标签快速高亮定位,常用入口按“图片/视频/摄像头检测→模型选择→导出视图”的顺序组织以降低操作成本。
2. 绪论
2.1 研究背景与意义
疲劳驾驶是道路运输与网约车、矿区/港口专用车等高风险场景中的重要致因之一,面向驾驶员面部与上半身的非接触式视觉监测可在不中断驾驶的前提下持续评估闭眼、哈欠、低头与视线偏移等征象,公开的 NTHU Driver Drowsiness Detection(DDD)视频基准覆盖日/夜、是否佩戴墨镜等复杂工况,为视觉疲劳检测提供了统一的数据基础与任务刻画[1]。在车端与边缘端资源受限、延迟敏感的前提下,实时检测平台须在精度与速度间取得平衡,并提供可解释可视化与可追溯记录;国内综述指出,视觉方法已成主流路线,但仍受光照变化、遮挡与类间相似等因素制约,这进一步凸显“模型—系统—数据”三位一体平台化研究的必要性[2]。
2.2 国内外研究现状
围绕“车内摄像头实时检测疲劳征象”的具体任务,现有方法普遍面临类间相似(眨眼 vs 闭眼)、小尺度五官、遮挡(口罩/墨镜)、强光/低照和长尾分布等挑战;Anchor-free 单阶段检测器(如 FCOS、CenterNet)以像素/点级建模减少先验与匹配复杂度,对小目标与长尾更友好,而两阶段方法(Faster R-CNN)在复杂背景与遮挡下具备精度优势但工程延迟较高,Transformer 路线(RT-DETR)通过端到端范式移除 NMS 并兼顾速度与精度[3][4][5][6]。
YOLO 家族近三年快速迭代:YOLOv7 以可训练“bag-of-freebies”和 E-ELAN 改进刷新速度—精度边界;YOLOv9 通过可编程梯度信息(PGI)增强训练稳定性与特征表征;YOLOv10 在一致性双指派与端到端 NMS-free 推理上进一步降低时延;Ultralytics 的 YOLO11 强调工程易用与生态集成;YOLO12 将注意力置于核心以提高上限但在显存与 CPU 吞吐上存在工程权衡[7][8][9][10][11]。
工业级单阶段方法如 YOLOX(解耦头、SimOTA)与 PP-YOLOE(Anchor-free、ET-Head、TAL)在部署友好性与 TensorRT 加速下表现出色;RT-DETR 报告在中端 GPU 上可达百帧级并提供通过解码层数调节的速度—精度自适应能力[12][13][6]。
此外,Focal Loss 有效缓解前景—背景失衡以提升密集检测鲁棒性,EfficientDet 通过 BiFPN 与复合缩放在多尺度与效率间取得平衡,适合算力受限的车载场景[14][15]。
方法对比(面向疲劳驾驶任务的代表性检测器/策略)
| 方法 | 范式/家族 | 数据集 | 关键改进 | 优势与局限 | 代表指标(原文/官方) | 适配任务难点 | 参考 |
|---|---|---|---|---|---|---|---|
| YOLOX-L | 单阶段/Anchor-free | COCO | 解耦头、SimOTA | 精度高、生态完善;需 NMS | 50.0 AP @ 68.9 FPS(V100) | 小目标五官、实时性 | [12] |
| PP-YOLOE-l | 单阶段/Anchor-free | COCO | CSPRepRes、ET-Head、TAL | 部署友好;TRT 加速显著 | 51.4 mAP;V100 78.1 FPS;TRT 149.2 FPS | 实时性、部署易用 | [13] |
| RT-DETR-R50 | Transformer/端到端 | COCO/Objects365 | 混合编码器、IoU-aware 查询 | 免 NMS、端到端;中高算力更优 | 53%+ AP,约百帧级 | 遮挡、端到端一致性 | [6] |
| YOLOv10-S/X | 单阶段/YOLO | COCO | 一致性双指派、NMS-free | 同精度下较端到端基线更快 | 文内对比给出加速比 | 低时延在线检测 | [9] |
| FCOS | 单阶段/Anchor-free | COCO | 点级回归、中心度 | 去锚简化匹配;对小目标友好 | 44.7% AP(ICCV’19) | 小目标与长尾样本 | [3] |
| YOLOv7 | 单阶段/YOLO | COCO | E-ELAN、训练策略 | 速度—精度均衡;生态成熟 | 文内优于同代实时器 | 复杂背景与实时性 | [7] |
| YOLOv12 | 单阶段/YOLO | COCO | 注意力中心化架构 | 上限更高;显存/CPU 权衡 | 官方建议生产优先 YOLO11 | 研究验证/离线评测 | [11] |
在疲劳驾驶专项研究中,结合姿态/关键点与注意力的轻量化 YOLO 方案可在车载算力上实现近实时告警;例如改进的 YOLOv8n-Pose 在保持精度的前提下降低参数量,适配夜间与遮挡工况;亦有工作在 YOLOv7 框架内引入注意力与损失改进以提升眼部状态判别鲁棒性[16][17]。
2.3 要解决的问题及其方案
(1)准确性与实时性:在低照度、逆光与遮挡下,闭眼与眨眼、哈欠与说话等类别边界易混淆,需要在延迟可控的前提下稳定检测。方案:以 YOLO12/YOLO11 为核心对比 YOLOv5–YOLOv10,多尺度特征与解耦头结合注意力先验,辅以混合精度与 ONNX/TensorRT 导出和 INT8/FP16 量化,保证车端/后端低时延[11][18]。
(2)环境适应与泛化:跨日/夜、是否佩戴眼镜与摄像头角度变化会引发分布漂移。方案:构建包含日/夜与遮挡的样本集并引入分层增强与域随机化;结合 RT-DETR 与 YOLOv10 的端到端一致性训练与双指派策略,降低后处理中不一致的误差传播[6][9]。
(3)网页端交互与可视化:需要支持图片/视频/摄像头三源输入、原/检双画面对比、阈值调节与视频进度控制,并形成 CSV 导出、带框结果下载与 SQLite 入库的可追溯链。方案:基于 Flask+SocketIO 构建同步双帧推送与参数会话化,统一落库与一键导出,实现跨页共享与审计。
(4)工程加速与稳定性:推理链路需跨 PyTorch→ONNX→TensorRT 稳定导出,量化需可回滚与可监控。方案:遵循 ONNX Runtime 量化与 TensorRT INT8 校准流程,建立自动化导出、基线比对与回滚机制,并用吞吐/延迟/显存计数器做连续监测[19][18]。
2.4 博文贡献与组织结构
(1)综合文献综述:系统梳理疲劳驾驶检测的任务难点与主流方法,覆盖 YOLOv5–YOLOv12、YOLOX、PP-YOLOE、RT-DETR 等代表性路线,并给出可追溯指标对比表[13][6]。
(2)模型选择与优化:在多模型统一训练/评测基线上,结合注意力先验、解耦头与端到端 NMS-free 策略,并通过 ONNX/TensorRT 量化与加速验证实时性边界[9][18]。
(3)美观友好的网页设计:实现原/检双画面对比、视频进度与阈值控制、CSV/带框导出与 SQLite 入库,支撑在线评估与溯源。
(4)算法效果对比分析:提供 mAP、F1、PR 与训练曲线的统一看板,定位误检/漏检成因并提出改进建议。
(5)完整数据与代码资源:提供平台工程与数据使用说明,便于快速复用与二次开发;示例数据覆盖日/夜与遮挡场景,支持一键评测脚本[1]。
3. 数据集处理
本研究使用的疲劳驾驶检测数据集共计 16,246 张图片,其中训练集 13,719 张、验证集 1,380 张、测试集 1,147 张;类别为四类:Yawn(打哈欠)、close(闭眼)、noYawn(未打哈欠)、open(睁眼),对应的中文映射已统一({'Yawn':'打哈欠','close':'闭眼','noYawn':'未打哈欠','open':'睁眼'})。标注采用 YOLO 格式,即每个目标以归一化的中心点 ( x , y ) (x,y) (x,y) 与宽高 ( w , h ) (w,h) (w,h) 记录;从您提供的成对直方图/二维密度分布可见,目标中心在 x ! ≈ ! 0.5 x!\approx!0.5 x!≈!0.5 处呈明显集中, w , h w,h w,h 多为小尺度且呈“长尾”延展,符合车内摄像头拍摄的人脸/眼部以小目标为主的特征。样例网格图显示存在强遮挡(墨镜、侧脸)、低照与运动模糊,以及极近距离特写,这些都将导致边界框尺寸分布两极化与正负样本不均。
Chinese_name = {'Yawn': '打哈欠', 'close': '闭眼','noYawn': '未打哈欠','open': '睁眼'}

为提升训练的稳健性与泛化能力,数据预处理采用统一分辨率与 Letterbox 填充(默认 640 × 640 640\times640 640×640,对齐步长 32),并进行色彩与几何增强:随机 HSV 抖动与亮度/对比度调整以拟合昼夜与逆光变化,随机水平翻转与轻量仿射(旋转/缩放/平移/切变)以覆盖姿态差异;Mosaic 与 MixUp 在训练早期启用以增加小目标密度与复杂背景组合,后期逐步衰减以稳定收敛;可选应用随机遮挡(Cutout/随机矩形遮挡)与轻度高斯模糊,模拟挡光板、雨夜噪声与对焦失衡。验证与测试阶段关闭强增广,仅保留尺度与 Letterbox,以保证评测一致性。考虑到四类样本可能存在不均衡,训练时使用类别重采样或基于类别频次的权重,以缓解长尾带来的偏置;对于视频抽帧形成的图片样本,尽量按片段划分到同一子集以避免泄漏。
在数据清洗与质检方面,先对标注文件进行规范化处理,剔除空标注与退化框(面积接近 0、超出边界或严重重叠的重复框),统一 EXIF 方向并校正旋转;对相同画面高相似度连拍(如连续帧)进行去重或降权,减少过拟合风险。借助您提供的 ( x , y , w , h ) (x,y,w,h) (x,y,w,h) 分布图对极端值与异常模式进行定位(如 w w w 或 h h h 在 0 或 1 附近的尖峰),结合网格可视化抽查修正;数据划分采用您给定的固定划分,并在训练脚本中固化随机种子(例如 42)以确保结果可复现。最终产出包含数据清单、类别映射、增广策略与清洗日志的元数据文件,作为后续模型训练、Web 端溯源与 SQLite 入库的一致依据。
4. 模型原理与设计
本平台以 YOLOv12 为主线,沿用“骨干(Backbone)—颈部(Neck)—解耦检测头(Head)”的三段式范式。骨干采用轻量 C2f/残差瓶颈提取多尺度特征;颈部以 PAN/FPN 融合在 P 3 – P 5 P_3\text{–}P_5 P3–P5 等尺度间双向聚合上下文,从而兼顾眼睛等小目标与口部等尺度变化大区域;Head 采用解耦结构并默认 anchor-free 表达,分类与回归分支并行优化。针对“闭眼/睁眼”高度相似与夜间弱光,本实现在颈部与头部分别插入轻量注意力门(通道/坐标注意力)与高分辨率的小尺度分支,使 P 3 P_3 P3 的有效感受野更贴近眼睑纹理与瞳孔对比,从而提升可分性与召回率。网络整体架构图如下:
在信息选择机制上,采用标准缩放点积注意力对多尺度候选区域进行相关性重加权:
Attention ( Q , K , V ) = softmax ! ( Q K ⊤ d k ) V \operatorname{Attention}(Q,K,V)=\operatorname{softmax}!\left(\frac{QK^{\top}}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax!(dkQK⊤)V
其中 Q , K , V ∈ R n × d Q,K,V\in\mathbb{R}^{n\times d} Q,K,V∈Rn×d 分别为查询、键、值, d k d_k dk 为键的维度;在检测网络中,这等价于让与眼部/口部纹理更相关的特征在融合时获得更高权重。工程侧可用窗口化/近邻注意力与低秩投影近似以降低计算与显存开销。
在损失与任务建模方面,边界框采用 CIoU 以同时约束重叠、中心距与宽高比:
L ∗ C I o U = 1 − IoU + ρ 2 ! ( b , b g t ) c 2 + α , v \mathcal{L}*{\mathrm{CIoU}}=1-\operatorname{IoU}+\frac{\rho^{2}!\left(b,b^{gt}\right)}{c^{2}}+\alpha,v L∗CIoU=1−IoU+c2ρ2!(b,bgt)+α,v
v = 4 π 2 ! ( arctan ! w g t h g t − arctan ! w h ) 2 , α = v ( 1 − IoU ) + v v=\frac{4}{\pi^{2}}!\left(\arctan!\frac{w^{gt}}{h^{gt}}-\arctan!\frac{w}{h}\right)^{2},\qquad \alpha=\frac{v}{(1-\operatorname{IoU})+v} v=π24!(arctan!hgtwgt−arctan!hw)2,α=(1−IoU)+vv
其中 IoU \operatorname{IoU} IoU 为交并比, b , b g t b,b^{gt} b,bgt 为预测/真值框中心, ρ ( ⋅ ) \rho(\cdot) ρ(⋅) 为欧氏距离, c c c 为最小外接矩形对角线长度, w , h w,h w,h 与 w g t , h g t w^{gt},h^{gt} wgt,hgt 为宽高。小目标与长尾分布下的分类采用 Focal Loss 抑制易样本:
L ∗ f o c a l = − , α t , ( 1 − p t ) γ log p t \mathcal{L}*{\mathrm{focal}}=-,\alpha_{t},(1-p_{t})^{\gamma}\log p_{t} L∗focal=−,αt,(1−pt)γlogpt
其中 p t p_t pt 为目标类别概率, γ > 0 \gamma>0 γ>0 控制难例聚焦强度, α t ∈ ( 0 , 1 ) \alpha_t\in(0,1) αt∈(0,1) 抵消类不平衡;并结合标签平滑缓解过拟合:
y l s ∗ k = ( 1 − ε ) , 1 [ k = y ] + ε K , L ∗ C E l s = − ∑ k = 1 K y l s ∗ k log p ∗ k y^{\mathrm{ls}}*{k}=(1-\varepsilon),\mathbf{1}[k=y]+\frac{\varepsilon}{K},\qquad \mathcal{L}*{\mathrm{CE}}^{\mathrm{ls}}=-\sum_{k=1}^{K} y^{\mathrm{ls}}*{k}\log p*{k} yls∗k=(1−ε),1[k=y]+Kε,L∗CEls=−k=1∑Kyls∗klogp∗k
必要时可启用 DFL(分布式边界回归)以对四个边界量进行离散分布建模,提升小尺度框的回归稳定性:
L ∗ D F L = 1 4 ! ∑ ∗ u ∈ l , t , r , b CE ! ( q u , p u ) , q u , i = 1 − r , ; q u , i + 1 = r ; ; ( i = ⌊ y u ⌋ , ; r = y u − i ) \mathcal{L}*{\mathrm{DFL}}=\tfrac{1}{4}!\sum*{u\in{l,t,r,b}}\operatorname{CE}!\big(q_{u},p_{u}\big), \quad q_{u,i}=1-r,;q_{u,i+1}=r;;(i=\lfloor y_u\rfloor,;r=y_u-i) L∗DFL=41!∑∗u∈l,t,r,bCE!(qu,pu),qu,i=1−r,;qu,i+1=r;;(i=⌊yu⌋,;r=yu−i)
在训练与推理策略上,采用 Cosine 学习率退火与 EMA 提升收敛与泛化:
η t = η min + 1 2 ( η 0 − η min ) ! ( 1 + cos ! π t T ) , θ ( t ) ∗ E M A = β , θ ( t − 1 ) ∗ E M A + ( 1 − β ) , θ ( t ) \eta_t=\eta_{\min}+\tfrac{1}{2}(\eta_{0}-\eta_{\min})!\left(1+\cos!\frac{\pi t}{T}\right),\qquad \theta^{(t)}*{\mathrm{EMA}}=\beta,\theta^{(t-1)}*{\mathrm{EMA}}+(1-\beta),\theta^{(t)} ηt=ηmin+21(η0−ηmin)!(1+cos!Tπt),θ(t)∗EMA=β,θ(t−1)∗EMA+(1−β),θ(t)
配合 Warmup、同步 BN 与阶段性衰减 Mosaic/MixUp。推理阶段可在 NMS-free(若采用端到端检测头)与标准 NMS/Soft-NMS 间切换,其阈值 τ I o U \tau_{\mathrm{IoU}} τIoU 与置信度门限 t c o n f t_{\mathrm{conf}} tconf 与网页控件实时联动,便于在夜间/逆光快速调参。结合第 3 章所示数据特性(中心分布偏中、 w , h w,h w,h 长尾且存在极小框),我们在 P 3 P_3 P3 提高特征分辨率并于颈部加入跨层残差缓解梯度衰减,同时采用 IoU-aware 分配与难例挖掘降低误检,最终在浏览器端实现“双画面对比 + 阈值/IoU 联动 + 一键导出”的人机协同闭环。
5. 实验结果与分析
本节在 NVIDIA GeForce RTX 3070 Laptop GPU(8 GB) 上,以同一训练/评测脚本与输入分辨率(默认 640)对 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n 与对应的 s 型号进行统一对比;统计 Pre/Infer/Post 三段耗时并给出端到端延迟(E2E=Pre+Infer+Post)、Precision、Recall、F1、mAP@0.5、mAP@0.5:0.95。
整体来看,YOLOv12n/YOLOv12s 在 mAP@0.5 上最优(0.685/0.694),而 YOLOv7-tiny/YOLOv7 的 F1 最高(0.667/0.672) 但延迟较大;若以端到端实时性为目标,**YOLOv8n(10.17 ms)与 YOLOv6n(10.34 ms)**表现最优,适合作为 Web 实时演示的默认模型。与此相对,YOLOv11n/11s在精度与延迟间取得均衡,适合面向生产的稳健设定。
表 5-1 统一评测结果(端到端 E2E=Pre+Infer+Post)
| Model | Params(M) | FLOPs(G) | E2E (ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 10.94 | 0.484 | 0.788 | 0.600 | 0.653 | 0.431 |
| YOLOv6n | 4.3 | 11.1 | 10.34 | 0.493 | 0.778 | 0.604 | 0.659 | 0.444 |
| YOLOv7-tiny | 6.2 | 13.8 | 21.08 | 0.539 | 0.875 | 0.667 | 0.655 | 0.370 |
| YOLOv8n | 3.2 | 8.7 | 10.17 | 0.490 | 0.718 | 0.583 | 0.633 | 0.431 |
| YOLOv9t | 2.0 | 7.7 | 19.67 | 0.481 | 0.778 | 0.595 | 0.661 | 0.452 |
| YOLOv10n | 2.3 | 6.7 | 13.95 | 0.492 | 0.692 | 0.575 | 0.632 | 0.432 |
| YOLOv11n | 2.6 | 6.5 | 12.97 | 0.501 | 0.717 | 0.590 | 0.676 | 0.456 |
| YOLOv12n | 2.6 | 6.5 | 15.75 | 0.507 | 0.714 | 0.593 | 0.685 | 0.463 |
| YOLOv5su | 9.1 | 24.0 | 12.24 | 0.474 | 0.783 | 0.590 | 0.653 | 0.435 |
| YOLOv6s | 17.2 | 44.2 | 12.26 | 0.492 | 0.725 | 0.586 | 0.649 | 0.450 |
| YOLOv7 | 36.9 | 104.7 | 29.52 | 0.530 | 0.920 | 0.672 | 0.692 | 0.421 |
| YOLOv8s | 11.2 | 28.6 | 11.39 | 0.480 | 0.796 | 0.599 | 0.669 | 0.441 |
| YOLOv9s | 7.2 | 26.7 | 22.17 | 0.502 | 0.719 | 0.591 | 0.687 | 0.467 |
| YOLOv10s | 7.2 | 21.6 | 14.19 | 0.515 | 0.704 | 0.595 | 0.675 | 0.457 |
| YOLOv11s | 9.4 | 21.5 | 13.47 | 0.506 | 0.728 | 0.597 | 0.686 | 0.460 |
| YOLOv12s | 9.3 | 21.4 | 16.74 | 0.493 | 0.717 | 0.584 | 0.694 | 0.466 |
图 5-1 双条形图:n-系列模型的 F1 与 mAP@0.5
图注:蓝色表示 F1,橙色表示 mAP@0.5;可以直观看到 YOLOv7-tiny 的 F1 突出而 mAP@0.5 与 YOLOv12n/11n 接近,YOLOv12n 在 mAP@0.5 上最高。
图 5-2 双条形图(s 系):F1 与 mAP50 对比
结合混淆矩阵与多组 PR/训练曲线,可见若将整体 Confidence 门限设置在 0.03–0.05 附近,全类 F1 达到峰值(示意曲线“all classes 0.57 @ 0.027”);其中 Yawn/close/open 的对角准确率较高(Yawn≈1.00、open≈0.99、close≈0.90),而 noYawn 与背景之间存在一定混淆,这与车内弱光下的嘴部与颊部纹理相似、以及极小框的检测难度一致。平均 PR 曲线显示 YOLOv12n/12s、YOLOv11n/11s 的高召回段更平滑,说明注意力与解耦头在小尺度细节上带来稳定收益;YOLOv7-tiny/YOLOv7 的高 F1 则主要来自更高的召回,但对应 PostTime 较大(NMS 开销),在视频流下会透支帧率,需要配合批量 NMS 或阈值上调缓解。
从端到端延迟角度,n 系列更适合浏览器摄像头实时推理:YOLOv8n/YOLOv6n 的 E2E ≈10 ms(约 98–100 FPS 理论上限),在双帧推送与 CSV 导出并行时仍能维持流畅;若追求离线标注或批量评测的精度上限,可选 YOLOv12s/YOLOv12n,其在 mAP@0.5 与 mAP@0.5:0.95 上均占优,但需要更激进的张量并行与混合精度以控制吞吐。对平衡型生产部署,YOLOv11n/11s 的表现更均衡:mAP@0.5(0.676/0.686)与 E2E 延迟(13 ms 级)在多场景下更易稳定。
误检/漏检分析与改进建议包括:其一,“close↔background” 的混淆提示需要补充 硬负样本(眼周皮肤纹理、空车厢)并对 close 类做 边界重加权;其二,加强 夜间/逆光增强(随机曝光、Gamma、色彩漂移)与 小目标采样(复制-粘贴到干扰背景)以提升眼睑极小框的可分性;其三,视频端启用 时序一致性(帧间指数平滑或轻量时序头)与 告警滞后抑制,可明显削减“闪烁告警”;其四,在 Web 端默认 Conf=0.03、NMS IoU=0.6–0.7、类别筛选=四类全开,并提供“一键回放误检段落”的导出入口,便于迭代数据集与权重。
总体而言,本平台在统一硬件与脚本下给出了速度—精度—复杂度可复现的横向基线:若以实时交互优先,优选 YOLOv8n/6n;若以精度上限优先,优选 YOLOv12s/12n;若以稳定生产优先,优选 YOLOv11n/11s。这些结论已与前端“模型热切换—双画面对比—进度/阈值控制—CSV/带框导出—SQLite 入库”形成闭环,可直接指导后续的在线评估与持续数据反馈。
6. 系统设计与实现
6.1 系统设计思路
本系统采用分层解耦架构,包括表现与交互层(浏览器端)、业务与会话管理层、推理与任务调度层与数据持久化层。浏览器端以 HTML/CSS/JS 构建检测与概览页面,借助 Flask-SocketIO 建立低延迟的全双工通道,统一承载参数同步(Conf/IoU/类别筛选与视频进度)、双画面推送(原帧/检测帧)与导出触发;与传统轮询不同,事件驱动的推送避免冗余开销,并使得同一会话下多标签页可以共享状态与缓存。业务层集中处理身份校验、会话 Token 与权限检查(登录、注册、一次性跳过的差异化约束),维护“任务控制器—参数仓库—指标汇聚”的最小闭环:用户在前端修改阈值或拖动进度条,会被原子化地写入参数仓库并广播给推理侧,所有变更被写入审计日志以保障可追溯性。
推理与任务调度层围绕“多源输入→预处理→YOLO 推理→后处理/统计→可视化输出”的流水线组织,图片/视频/摄像头三类输入通过统一的适配器收敛为帧序列;预处理采用 Letterbox 与轻量增强(在线模式仅做尺度与归一化),模型端支持 PyTorch、ONNX Runtime 与 TensorRT 的无缝切换,权重热切换由“模型管理器”保证加载与显存复用不影响在途任务。后处理阶段按配置选择 NMS 或 NMS-free 解码,随后进入“双帧缓冲器”进行时间戳对齐与同步推送,确保原帧与叠加帧在浏览器端以相同节拍呈现;统计器在后台持续累计 Precision/Recall/F1、告警次数与耗时分布,并将摘要回传概览页用于在线评估。为了平衡吞吐与延迟,系统引入轻量任务队列与背压策略:当摄像头帧率高于推理速率时,优先丢弃过期原帧而保留最近关键帧,避免排队拖慢端到端响应。
数据持久化层以 SQLite 记录账户、会话、任务、检测结果与导出元数据,导出的带框图片、CSV 与缓冲 MP4 统一落在对象存储目录并通过哈希与时间戳实现溯源;版本迁移时由迁移器完成表结构演进以保障长期可用。整体一致性依赖三点:其一,参数同步在业务层单点写入、全域广播;其二,同步双帧在推理层由统一缓冲控制;其三,权限与会话约束在业务层集中裁决。该设计既满足网页端的实时交互体验,又为模型热切换、统计导出与日志审计保留清晰的扩展点。
图 6-1 系统流程图

图注:系统自前端参数事件触发,经“参数同步器—推理链路—双帧缓冲”形成实时闭环;所有任务、结果与导出元数据写入 SQLite 并由日志/监控侧持续观测与审计。
图 6-2 系统设计框图

图注:四层架构明确模块边界;数据与控制流从 UI 出发经业务层统一裁决,再进入推理流水线,结果回写 UI 与数据层,日志与监控对关键链路实施旁路观测。
6.2 登录与账户管理

说明:用户可选择登录、注册或一次性跳过进入临时会话;凭据采用口令哈希与 HTTPOnly Token 管控,会话在同域页面内共享并受超时策略约束。进入主界面后自动载入个性化配置与历史记录,资料修改与账户切换在不影响当前检测任务一致性的前提下进行,所有变更及导出操作在 SQLite 中留痕以支持溯源与审计。
7. 结论与未来工作
本文面向疲劳驾驶场景,构建了基于 Flask+Flask-SocketIO/HTML/CSS/JS 的实时检测平台,并在同一评测规程下对 YOLOv5–YOLOv12 八类模型进行了端到端对比与网页化集成。实验显示:在 3070 Laptop GPU 上,n 系列中 YOLOv12n 的 mAP@0.5 最高(0.685)、YOLOv7-tiny 的 F1 最优(0.667),而 YOLOv8n 与 YOLOv6n 的端到端时延最低(≈10 ms),s 系列中 YOLOv12s 的 mAP@0.5 达到 0.694;结合混淆矩阵与 PR/F1-Confidence 曲线,“打哈欠/闭眼/睁眼”在高召回区保持较好分离,但 noYawn 与背景仍存在可见混淆,提示需要更强的硬负样本与时序约束。平台在工程侧实现了模型热切换、原/检双画面对比、进度/阈值控制、CSV 导出与带框结果一键下载、SQLite 入库与登录/注册(可跳过)的闭环,并通过参数会话化与同步双帧缓冲保障了低延迟与一致性。总体而言,本文方案在实时性、可视化与可复现实验之间取得了平衡,具备向车规级 DMS 及其他人机安全场景(如驾驶分心监测、工位疲劳预警)迁移的潜力。
未来工作将围绕模型、系统与数据三个方向推进。模型侧:继续探索更轻量的骨干与颈部设计(如稀疏化剪枝、低秩注意力、Neural Architecture Search),在保证精度的前提下结合蒸馏+量化(INT8/FP16)与结构化剪枝压缩部署体积;引入时序建模(帧间注意力/轻量 TCN)与多模态融合(人脸关键点、头姿、PERCLOS、可选音频/红外),并研究端到端 NMS-free在车端上的稳健性与回滚策略。系统侧:完成 Docker 化与一键部署,引入 分布式任务队列(离线评测与批量导出)、对象存储与溯源索引、WebRTC 实时推流以降低摄像头输入时延,完善 RBAC 角色权限、审计日志、告警策略与健康度监控,并支持 i18n 与多租户隔离以服务多项目协同。数据侧:构建“主动学习—在线评估—半自动标注—持续训练”闭环,对夜间/逆光、墨镜/口罩、极小框与长尾样本进行定向采集与增广;上线数据治理与漂移监测,当出现域偏移(如摄像头位置调整或车内照明变化)时自动触发再训练建议与告警;同时加强隐私与合规(人脸与车牌区域脱敏、最小化存储),确保平台在实际道路与企业环境中的可落地性。随着这些改进的引入,平台预计将在更低延迟、更高鲁棒与更强可运维三个维度持续迭代,并为行业复用提供稳定的工程基线与开放的研究载体。
参考文献(GB/T 7714)
[1] NTHU CVLab. Driver Drowsiness Detection Dataset (DDD)[EB/OL]. 2016-.
[2] 张瑞, 朱天军, 邹志亮, 等. 驾驶员疲劳驾驶检测方法研究综述[J]. 计算机工程与应用, 2022, 58(21):53-66.
[3] Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[EB/OL]. 2019.
[4] Zhou X, Wang D, Krähenbühl P. Objects as Points (CenterNet)[EB/OL]. 2019.
[5] Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. 2015.
[6] Lv W, Xu S, Wang X, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. 2023.
[7] Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[EB/OL]. 2022.
[8] Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[C]//ECCV, 2024.
[9] Wang A, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. 2024.
[10] Ultralytics. YOLO11 Documentation[EB/OL]. 2024-.
[11] Ultralytics. YOLO12: Attention-Centric Object Detection[EB/OL]. 2025-.
[12] Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. 2021.
[13] Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022.
[14] Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[EB/OL]. 2017.
[15] Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[C]//CVPR, 2020.
[16] 朱晨, 等. 基于改进 YOLOv8n-Pose 的疲劳驾驶检测[J/OL]. 车载显示, 2024-.
[17] (中文条目)基于改进 YOLOv7 的驾驶员疲劳检测[J/OL]. Journal of Real-Time Image Processing, 2024-04-13.
[18] NVIDIA. TensorRT Documentation — Working with Quantized Types[EB/OL]. 2025-.
[19] ONNX Runtime. Quantize ONNX Models[EB/OL]. 2025-.
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/SOXkwaWTBiodZTkQcn6cUFbWnOd
讲解视频地址:https://www.bilibili.com/video/BV1HJQFBcEMX/
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)