基于深度学习的表情识别系统(YOLOv12完整代码+论文示例+多算法对比)
摘要:本文实现一套面向桌面端的表情识别系统,目标是在复杂光照、遮挡与多尺度人脸条件下完成可视化、可追溯的实时识别与对比评测。系统提供可下载的完整工程代码与训练数据,前端基于 PySide6/Qt 构建交互界面,支持图片/视频/本地摄像头三类输入,推理过程配套处理进度条与耗时统计,并可一键导出 CSV 结构化结果。对单帧与序列分别支持带框结果一键导出(PNG / AVI),同时将账户信息与检测记录写入本地 SQLite 以便检索与管理;登录/注册提供入口,并允许一次性跳过进入主流程。系统支持模型选择与本地权重加载,权重文件(.pt 热切换)后可同步刷新类别与可视化配色,实现多模型快速复查。算法层覆盖 YOLOv5–YOLOv12 共 8 种模型,统一训练与评测口径,对比 mAP、F1、PR 曲线与训练曲线等指标,为不同部署约束下的精度-速度权衡提供依据(工程实现细节与界面能力可参考 )。文末提供完整工程与数据集链接。
文章目录
1. 系统功能与效果
(1)登录注册:系统在入口处提供登录、注册与跳过三种路径,满足正式使用与快速体验两类需求;登录后的会话在本次使用周期内持续生效,用于统一加载个人偏好与历史记录。账户信息与校验逻辑面向本地安全场景设计,检测记录与账户数据通过本地 SQLite 进行归档与检索,避免多端同步带来的不确定性。跳过仅用于一次性进入主流程,便于演示与测试,但不影响后续补充登录后的完整管理能力。
(2)功能概况:主界面以“左侧控制—中央显示—右侧详情—底部记录与进度”为核心布局,用户进入后可快速理解当前输入源、阈值状态与推理反馈。整体动线围绕“概览—选择模型—开始检测—查看记录—导出复查”展开,关键交互集中在少量高频控件上,降低初次上手成本。底部记录区贯穿多个功能页,用于查看最近任务、定位同一素材的多次检测结果,并与 CSV 结果的检索与高亮联动。
(3)选择模型:系统支持在界面中直接选择本地权重文件切换当前 YOLO 模型,实现无需重启的权重热切换,并在切换后同步刷新类别信息与可视化配色。模型选择流程强调“可控与可复现”,用户能够明确当前模型版本、推理配置与输出口径,从而支撑多模型横向对比。对需要频繁试验的场景,该设计能把模型切换成本压缩到一次选择操作,使评测与复查更连贯。
(4)图片检测:图片导入后可即时完成推理,中央显示区叠加检测框并展示类别名与置信度,右侧详情区提供目标级信息以支持快速核验。系统允许在线调整 Conf/IoU 等阈值以控制误检与漏检的权衡,并支持对某一目标进行选择与高亮,便于在密集或遮挡场景下逐个核对。检测结果会同步写入底部记录区,方便同一图片在不同模型或不同阈值下的对照查看与导出。
(5)文件保存:系统对结果保存采用统一的时间戳命名与集中归档策略,便于溯源、批量管理与快速复查。结构化结果可导出为 CSV,用于后续统计分析或与实验指标对齐;可视化结果支持一键导出带框图片,确保“界面所见”与“落盘结果”一致。整体保存体验强调少步骤与强一致性,尽量把导出操作融入检测闭环而非额外负担。
2. 绪论
2.1 研究背景及意义
面部表情是人类非语言交流中信息密度最高的通道之一,表情识别不仅服务于人机交互与情感计算,也逐步进入在线教育、智能座舱、远程问诊与安防值守等需要“状态感知”的真实业务链路。1 (万方数据) 但在实际落地中,表情往往伴随头姿偏转、局部遮挡、光照剧变与表情幅度细微等因素,导致“同类差异大、异类相似高”的识别困境更加突出。2 (arXiv) 因此,系统层面除了给出类别预测,还需要提供稳定的实时推理、可追溯的记录管理与可解释的可视化证据,以支撑用户复核与数据闭环。9 (cjc.ict.ac.cn) 面向桌面端应用形态,将深度学习推理与交互界面紧耦合,能把模型选择、阈值调参、结果导出与本地入库统一到一条操作链路中,从而显著降低工程使用门槛并提升迭代效率。最后,若系统还支持统一导出格式与推理引擎优化,则能在有限算力下更接近“可用的实时性”,为部署推广提供现实可行的工程路径。18 (NVIDIA Docs)
2.2 国内外研究现状
在数据层面,近年来“自然场景表情识别(in-the-wild FER)”成为研究主战场,大规模互联网数据推动了算法从受控环境走向复杂真实环境。2 (arXiv) RAF-DB 通过对每张图像进行多次众包标注并进行可靠性筛选,揭示了真实表情中复合情绪与感知差异的普遍存在,从而使跨域泛化成为评测的核心议题之一。3 (CVF开放获取) FER+ 进一步以“多标注者标签分布”显式刻画标签噪声,使模型训练从硬标签拟合转向对不确定性的建模,成为后续鲁棒训练的重要参考。4 (arXiv) 国内综述工作也普遍指出,数据集的长尾分布、遮挡样本稀缺与标签主观性,是限制表情识别稳定落地的关键因素。1 (万方数据)
围绕上述难点,近期研究开始更系统地引入软标签与多情绪共存建模,以减少“单一类别”假设带来的误导并提升对复合表情的刻画能力。5 (arXiv) 与此同时,跨数据集评测逐渐成为检验泛化能力的常用方式,研究者在多基准之间对比发现模型往往在域迁移时出现显著性能退化,从而倒逼更稳健的特征学习与正则化策略。6 (SpringerLink) 对工程系统而言,这意味着仅追求单一数据集的高分并不足够,更需要把“失败模式”以可视化与记录的方式显式暴露,便于用户将误检漏检样本回流并持续修正数据分布。
在模型范式上,注意力与 Transformer 组件被广泛用于提升对局部关键肌肉群变化的敏感性,同时缓解复杂背景干扰与光照不均带来的表征偏移。7 (科学直接) 一类工作通过引入知识增强或表征变换机制,将“情绪语义”与“面部表征”进行对齐,从而在多个挑战数据集上提升鲁棒性并改善类别边界模糊问题。8 (arXiv) 另一类工作面向视频与多模态场景,把语音、文本与视觉线索纳入统一 Transformer 框架,提升对真实交互行为的综合判断能力,这对驾驶舱与在线课堂等场景尤为关键。10 (arXiv) 这些趋势共同指向:表情识别正在从静态分类走向“区域感知、时序建模与多源融合”的综合范式。
随着表情识别进入高频应用,解释性也从“研究附加项”转为“系统必需项”,国内针对表情识别可解释性的综述工作已开始系统梳理结果可解释、机理可解释与模型可解释等路径。9 (cjc.ict.ac.cn) 在通用视觉解释方法中,Grad-CAM 以类判别热力图的形式提供可视化证据,适合嵌入桌面端交互用于快速定位模型关注区域是否合理。11 (CVF开放获取) 因而,将可解释可视化与阈值调参、目标选择高亮、导出复核联合设计,更有助于形成“可复核、可回溯、可迭代”的工程闭环。
在系统实现所依赖的检测范式方面,表情识别常需要先稳定定位人脸区域,再完成表情分类或框级别联合预测;传统两阶段检测器以候选区域机制获得较强定位能力,但端到端延迟与链路复杂度限制了实时交互体验。12 (arXiv) 端到端 Transformer 检测器把检测表述为集合预测并弱化手工后处理组件,为工程链路简化提供了新的思路。13 (arXiv) 面向实时场景的 RT-DETR 进一步给出“端到端且可调速”的方向,使 Transformer 检测器在实时性上更贴近应用侧需求。14 (arXiv) 另一方面,YOLO 系列持续以工程可用为导向迭代,YOLOX 的 anchor-free 与解耦头等策略强化了速度精度平衡并形成成熟的部署生态。15 (arXiv) YOLOv6 与 PP-YOLOE 等工作在工业部署友好性、量化与推理吞吐方面给出可复现的指标与实践经验,为桌面端视频流推理提供了直接参考。16 (arXiv) 最近期的 YOLOv12 强调注意力中心架构以兼顾表征能力与实时性,但社区版本在训练稳定性与 CPU 吞吐方面仍需谨慎评估,这也提示系统需要保留多模型对比与可回退的选型机制。17 (Ultralytics Docs)
| 方法/数据集 | 范式/家族 | 代表性特征 | 指标示例(原文报告) | 适用点与局限 | 参考 |
|---|---|---|---|---|---|
| AffectNet | in-the-wild FER 数据集 | 百万级互联网采集,覆盖离散表情与连续维度 | 数据规模与标注方式见原文描述 | 覆盖面广但域偏移与噪声更显著 | 2 (arXiv) |
| RAF-DB | in-the-wild FER 数据集 | 多次众包标注并做可靠性筛选,含复合情绪 | 约 3 万图像、每图多次标注见原文 | 更贴近真实感知但类别边界更模糊 | 3 (CVF开放获取) |
| FER+ | 软标签 FER 数据集 | 以多标注者分布替代单一硬标签 | 每图 10 名标注者的标签分布见原文 | 有利于抗噪训练但仍受数据域限制 | 4 (arXiv) |
| RT-DETR | 端到端 Transformer 检测 | 端到端、可调速、减少 NMS 影响 | COCO 上 AP 与 FPS 指标见原文摘要 | 端到端简洁但部署依赖实现与算子支持 | 14 (arXiv) |
| YOLOX | 单阶段检测(YOLO 系) | anchor-free、解耦头、部署版本完善 | COCO 上 AP 与 FPS 指标见原文摘要 | 生态成熟但需按任务重训适配类别 | 15 (arXiv) |
| YOLOv6 | 单阶段检测(YOLO 系) | 工业化训练与量化优化、吞吐友好 | T4 上 AP 与 FPS 指标见原文摘要 | 高吞吐适合实时,但需关注显存与输入分辨率 | 16 (arXiv) |
| PP-YOLOE | 单阶段检测(工业 YOLO) | 部署友好与动态标签分配策略 | COCO mAP 与 TensorRT FP16 吞吐见原文摘要 | 工程链路友好但训练配置需对齐框架 | 16 (arXiv) |
| YOLOv12 | 注意力中心 YOLO | 引入注意力机制并强调实时性 | 贡献与定位见原文摘要 | 社区版本需评估训练稳定与 CPU 吞吐 | 17 (arXiv) |
2.3 要解决的问题及其方案
面向本文所实现的桌面端表情识别系统,核心矛盾集中在“真实场景鲁棒性”与“在线交互实时性”的统一,同时还要保证结果可追溯、可复核与可持续迭代。为此,本文将 YOLO 系列实时检测范式与 Qt 桌面端交互结合,在统一推理链路与评测协议下完成多版本模型对比,并把模型热切换、记录管理与导出归档纳入同一使用闭环。
要解决的问题包括:
(1)检测与识别的准确性与实时性难以兼顾,尤其在视频流与摄像头流下对延迟更敏感。
(2)模型对光照变化、遮挡、姿态偏转与表情幅度细微等环境因素的适应性与泛化能力不足。
(3)桌面端交互需要在多源输入、阈值调参、目标复核与结果导出之间保持直观一致,降低学习成本。
(4)批量处理下的数据组织、记录追溯与本地存储安全需要统一设计,避免结果分散与不可复现。
对应的解决方案包括:
(1)以 YOLOv12 为主线完成训练与推理,并在 YOLOv5 至 YOLOv12 的模型池中进行对比评测,以统一指标支撑精度速度权衡。17 (arXiv)
(2)在训练侧结合数据增强与迁移学习提升对遮挡与光照波动的鲁棒性,并以跨域评测思路检验泛化表现。6 (SpringerLink)
(3)以 PyTorch 推理链路对接 PySide6/Qt 桌面端,支持图片、视频与摄像头输入的统一交互,并提供阈值同步、目标选择高亮与可解释可视化辅助复核。11 (CVF开放获取)
(4)以时间戳命名与本地数据库记录形成可追溯闭环,导出 CSV 与带框结果用于复查与数据回流,并在需要时通过 ONNX 与 TensorRT 等方式进行推理加速以保证实时性。18 (NVIDIA Docs)
2.4 博文贡献与组织结构
本文的主要贡献体现在:
(1)围绕真实场景表情识别的关键难点给出系统化综述与工程化落点,覆盖数据噪声、域偏移与可解释交互等核心问题。1 (万方数据)
(2)构建以 YOLOv12 为主线、支持 YOLOv5 至 YOLOv12 多版本对比的训练与推理流程,为模型选型与部署提供统一口径的评测依据。17 (arXiv)
(3)实现 PySide6/Qt 桌面端交互闭环,将多源输入、阈值调节、目标复核、记录追溯与导出归档统一到一致的操作动线中。
(4)在系统层引入可解释可视化与可复核证据链,支持用户快速定位误检漏检模式并形成数据反馈闭环。9 (cjc.ict.ac.cn)
(5)提供完整工程与数据资源的组织方式,便于读者复现实验、替换权重并扩展到更多场景与类别。
全文组织如下:第 3 章介绍数据集处理、标注与增强策略;第 4 章阐述以 YOLOv12 为主线的模型原理与关键设计;第 5 章给出 YOLOv5 至 YOLOv12 的实验对比与分析;第 6 章说明桌面端系统的分层设计与实现,包括会话管理、推理调度、记录与导出;第 7 章总结全文并展望模型、系统与数据闭环的未来工作方向。
3. 数据集处理
本数据集共包含 9900 张精选图像,按 8001 张训练集、999 张验证集与 900 张测试集划分,整体比例约为 80.8%/10.1%/9.1%,可以兼顾训练规模与验证稳定性,并为最终测试留出独立评估口径。类别体系为 8 类表情:Anger(愤怒)、Contempt(轻蔑)、Disgust(厌恶)、Fear(恐惧)、Happy(快乐)、Neutral(中性)、Sad(悲伤)、Surprise(惊讶),与常见表情基准的离散类别设计一致;从类别柱状统计图看,各类别样本量整体接近,属于“弱长尾”或近似均衡分布,其中 Surprise 的样本数略低于其余类别,但差距不至于形成训练时的极端偏置,这种分布更适合在统一阈值与统一评测协议下开展多模型对比。标签及其对应中文名如下:
Chinese_name = {"Anger": "愤怒", "Contempt": "轻蔑", "Disgust": "厌恶", "Fear": "恐惧", "Happy": "快乐",
"Neutral": "中性", "Sad": "悲伤", "Surprise": "惊讶"}

从标注框的统计可视化来看,标注字段呈现出典型的归一化几何分布特征:目标中心点 (x,y) 主要聚集在图像中部附近,而宽高(w,h) 的取值整体偏大且二者呈明显正相关,这与“以人脸为目标、画面主体较集中”的数据形态相吻合,也侧面说明样例中存在多尺度、多目标与部分遮挡情形。基于这一数据特性,预处理通常应优先保证几何一致性与局部纹理不被破坏(例如等比例缩放与边缘填充优于非等比拉伸),并在清洗阶段重点排查越界框、重复框、空标签与严重模糊/过曝样本,以减少噪声对细粒度类别(如轻蔑、厌恶、愤怒之间的相似性)带来的混淆;而增强策略若要面向光照剧变与遮挡难点,宜采用“增强外观但不过度破坏局部肌肉纹理”的强度区间,并辅以适度遮挡与尺度扰动来提升对视频流与摄像头场景的鲁棒性——具体启用哪些增强、参数范围与是否做人脸裁剪/对齐,还需要你补充训练配置后才能在文稿中以确定口径写死。
4. 模型原理与设计
本文的表情识别采用“检测式”建模:把人脸视作目标,在同一次前向推理中同时输出人脸框与表情类别(Anger/Contempt/Disgust/Fear/Happy/Neutral/Sad/Surprise,对应中文为“愤怒/轻蔑/厌恶/恐惧/快乐/中性/悲伤/惊讶”),从而把“先检测人脸、再分类表情”的两段式流程压缩为单阶段端到端推理。基线范式沿用 YOLO 家族的分层特征抽取与多尺度预测思路:输入帧经统一尺度预处理后,主干网络逐级下采样获得多层语义特征,颈部网络进行跨层融合以兼顾小脸与大脸,检测头对不同尺度特征并行输出 class , bbox , score { \text{class}, \text{bbox}, \text{score} } class,bbox,score,在推理端再通过阈值筛选与后处理得到最终可视化框与类别置信度。该范式对表情任务的直接收益在于:框级监督能显式约束模型“看哪里”,对遮挡、侧脸与复杂背景更稳,同时类别预测与定位共享特征,使得桌面端实时推理与交互调参更容易形成闭环。
在结构设计上,本文默认以 YOLOv12 作为主线模型,其核心思路是“以注意力为中心的 YOLO”,在保持 YOLO 分层结构与实时推理习惯的前提下,引入更高效的注意力机制与更易优化的特征聚合模块。标准自注意力可写为
A t t n ( Q , K , V ) = S o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Attn}(Q,K,V)=\mathrm{Softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V, Attn(Q,K,V)=Softmax!(dQK⊤)V,
其中 Q , K , V Q,K,V Q,K,V 为查询/键/值投影, d d d 为通道维度;直接全局注意力在高分辨率下代价较高。YOLOv12 提出的区域注意力(Area Attention)将特征图按水平或垂直方向划分为 L L L 个区域,在区域内计算注意力以降低计算与访存压力,同时保留较大的感受野;配合 FlashAttention 等实现细节,可在速度可接受的前提下提升全局依赖建模能力。 另一方面,YOLOv12 通过 R-ELAN(Residual Efficient Layer Aggregation Networks)缓解注意力堆叠带来的优化困难,在层聚合结构中引入“块级残差 + 缩放因子”的稳定化策略,可抽象为
y = x + γ , F ( x ) , y = x + \gamma , F(x), y=x+γ,F(x),
其中 F ( ⋅ ) F(\cdot) F(⋅) 表示聚合变换, γ \gamma γ 为较小的缩放系数以抑制训练初期梯度震荡。 结合分层骨干、颈部多尺度融合与解耦检测头(分类与回归分支相对独立),该设计对表情识别中“类间细粒度差异大、表情局部肌肉变化微弱”的问题更友好。网络整体结构示意图可参考:
损失函数与任务建模方面,本文按 YOLO 的常规做法将训练目标拆分为定位与分类两部分,并通过加权求和实现多任务平衡。分类分支通常采用二元交叉熵(对多类可视作 one-hot 的多标签形式):
L ∗ c l s = − ∑ ∗ c = 1 C [ y c log σ ( p c ) + ( 1 − y c ) log ( 1 − σ ( p c ) ) ] , \mathcal{L}*{cls}=-\sum*{c=1}^{C}\Big[y_c\log\sigma(p_c)+(1-y_c)\log\big(1-\sigma(p_c)\big)\Big], L∗cls=−∑∗c=1C[yclogσ(pc)+(1−yc)log(1−σ(pc))],
其中 C C C 为类别数(本文 C = 8 C=8 C=8), p c p_c pc 为类别 logit, σ ( ⋅ ) \sigma(\cdot) σ(⋅) 为 Sigmoid。定位分支常以 IoU 系列损失刻画框重叠质量,典型的 CIoU 可写为
L ∗ C I o U = 1 − I o U + ρ 2 ( b , b ∗ ) c 2 + α v , \mathcal{L}*{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2}+\alpha v, L∗CIoU=1−IoU+c2ρ2(b,b∗)+αv,
其中 b , b ∗ \mathbf{b},\mathbf{b}^* b,b∗ 为预测框与真值框中心点, ρ \rho ρ 为欧氏距离, c c c 为最小外接框对角线长度, v v v 用于约束宽高比差异, α \alpha α 为自适应权重;在一些实现中也会用 EIoU 等形式进一步把宽高差显式分解。最终总损失可概括为
L = λ ∗ b o x L ∗ b o x + λ ∗ c l s L ∗ c l s + λ ∗ d L ∗ d , \mathcal{L}= \lambda*{box}\mathcal{L}*{box}+\lambda*{cls}\mathcal{L}*{cls}+\lambda*{d}\mathcal{L}*{d}, L=λ∗boxL∗box+λ∗clsL∗cls+λ∗dL∗d,
其中 L ∗ d \mathcal{L}*{d} L∗d 可对应分布式回归(如 DFL)等细化项, λ \lambda λ 为权重系数。对表情识别而言,IoU 类损失稳定框的几何一致性,避免“表情预测正确但框漂移”的可视化体验问题;而分类项更依赖细粒度纹理与局部结构差异,注意力与多尺度融合会直接影响其上限。
训练与正则化策略需要与“实时性 + 细粒度分类”同时对齐:一方面保持输入尺度(如 640 × 640 640\times640 640×640)与批量大小在显存可控范围内,使桌面端推理链路与训练分辨率一致,减少部署分布偏移;另一方面通过合适的数据增强(亮度/对比度扰动、仿射变换、随机遮挡等)提升对光照变化、遮挡与表情强度差异的鲁棒性。优化器与学习率调度通常采用带 warmup 的 SGD/AdamW 与线性或余弦衰减,以兼顾收敛速度与后期稳定;推理阶段通过置信度阈值(Conf)与重叠阈值(IoU)控制误检与漏检的权衡,尤其在“轻蔑 vs 中性、厌恶 vs 愤怒”等相似表情上,适当提高 Conf 可减少“低置信度抖动框”,而合理的 IoU/NMS 策略能避免同一张脸被重复预测,从而让 Qt 前端的高亮选择、记录统计与一键导出更一致、更可复查。
5. 实验结果与分析
本章实验旨在在同一数据集划分(训练 8001、验证 999、测试 900)与统一评测口径下,对比 YOLOv5–YOLOv12 共 8 种模型在表情检测识别任务上的精度与速度表现;评价指标包括 Precision、Recall、F1、mAP@0.5(记为 mAP50)与 mAP@0.5:0.95(记为 mAP50-95),并额外统计端到端推理链路的预处理、推理与后处理耗时。所有结果均在同一硬件环境 NVIDIA GeForce RTX 3070 Laptop GPU(8GB)下测试,便于从工程视角评估“可用精度”与“交互实时性”的权衡关系。
表 5-1 不同 YOLO 模型在 EmotionData 上的性能与时延对比(RTX 3070 Laptop GPU)
| 规模 | 模型 | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| n | YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 0.417 | 0.565 | 0.480 | 0.501 | 0.341 |
| n | YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 0.427 | 0.549 | 0.480 | 0.509 | 0.345 |
| n | YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 0.358 | 0.649 | 0.462 | 0.473 | 0.312 |
| n | YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 0.389 | 0.609 | 0.475 | 0.494 | 0.334 |
| n | YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 0.411 | 0.567 | 0.477 | 0.502 | 0.346 |
| n | YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 0.419 | 0.535 | 0.470 | 0.485 | 0.331 |
| n | YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 0.427 | 0.585 | 0.494 | 0.500 | 0.343 |
| n | YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 0.424 | 0.580 | 0.489 | 0.494 | 0.341 |
| s | YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 0.384 | 0.588 | 0.464 | 0.492 | 0.336 |
| s | YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 0.408 | 0.590 | 0.483 | 0.502 | 0.347 |
| s | YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 0.384 | 0.626 | 0.476 | 0.480 | 0.321 |
| s | YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 0.417 | 0.544 | 0.472 | 0.498 | 0.342 |
| s | YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 0.395 | 0.608 | 0.479 | 0.498 | 0.344 |
| s | YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 0.427 | 0.543 | 0.478 | 0.491 | 0.335 |
| s | YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 0.409 | 0.571 | 0.477 | 0.491 | 0.337 |
| s | YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 0.399 | 0.617 | 0.485 | 0.501 | 0.341 |

从 n 系列结果看,精度指标整体集中在 F1≈0.46–0.49、mAP50≈0.47–0.51 的窄区间内,说明该数据集在 8 类表情下对“细粒度类别边界”更敏感,模型结构迭代带来的收益会被数据噪声、遮挡与类间相似所部分抵消。YOLOv6n 在 mAP50(0.509)上取得该组最佳,同时也是纯推理耗时最低(6.78ms),体现了其在精度与速度上的均衡性;YOLOv11n 的 F1 最高(0.494),更适合以“整体查准查全平衡”为目标的交互式检索场景。值得注意的是,YOLOv7-tiny 的 Recall 明显更高(0.649)但 Precision 偏低(0.358),更像“尽量不漏检”的激进设置,落到桌面端体验上容易出现框抖动与误报增多,后续往往需要通过更严格的 Conf 阈值或更稳健的后处理来抑制误报。
从 s 系列结果看,模型参数量与计算量显著上升,但在该任务上的 mAP50 提升并不呈线性,反而更体现“结构与训练可优化性”差异:YOLOv6s 在 mAP50(0.502)与 mAP50-95(0.347)两项指标上均为该组最佳,属于更偏“定位质量与整体泛化”导向的选择;YOLOv12s 的 Recall 与 F1 分别达到 0.617 与 0.485,说明其更倾向于把潜在人脸目标“找全”,适合在后续由人工复核或二次筛选的工作流中使用。速度方面,YOLOv8s 的 InfTime 最低(7.66ms),在该硬件上更容易支撑视频流与摄像头流的稳定帧率;而 YOLOv7(非 tiny)虽然容量最大,但 InfTime 与 PostTime 明显更高,在桌面端交互场景下会直接放大等待感与进度条波动,不利于长时运行的体验一致性。
结合训练曲线与评估曲线,可以更直观看到性能差异背后的“训练动态”。mAP50 曲线在前 20 个 epoch 上升最快,约在 50–70 个 epoch 附近进入平台期,随后多模型出现轻微回落,通常对应学习率后段策略与过拟合倾向叠加,提示在该数据规模与噪声条件下更需要早停、增强强度再平衡或更强正则化。
F1-Confidence 曲线给出了全类最优点约在 Conf≈0.19(F1≈0.48),这意味着若桌面端默认 Conf 设为 0.25,会更偏保守并牺牲部分召回;在“以检索为主、允许人工复核”的模式下,将 Conf 下调到 0.20 左右往往更符合 F1 最大化目标。
PR 曲线与混淆矩阵也揭示了类别难点并非均匀分布:Happy、Fear 等类别更易分离,而 Anger、Disgust 等类别的曲线与混淆更不理想,常见原因包括表情幅度细微、遮挡导致局部肌肉群特征缺失、以及类间纹理相似造成的边界模糊;对应改进上,实践中更有效的路径往往是补充“困难样本”(侧脸、强光、遮挡、多人脸密集)、对易混类别做更严格的标注复核,并在训练侧引入更偏难样本聚焦的策略(如更稳健的重加权、类内对比约束或更细粒度的人脸对齐预处理),这样才能让后续模型结构升级真正转化为可观的 mAP 与 F1 增益。
6. 系统设计与实现
6.1 系统设计思路
本系统以“桌面端交互闭环”为牵引,采用分层架构组织实现,分别为表现与交互层(Qt 客户端)、业务与会话管理层、推理与任务调度层、数据持久化层。表现与交互层负责多源输入选择、阈值滑块联动、结果叠加显示与记录区呈现;业务与会话管理层负责源互斥、会话状态、参数维护、统计口径与导出编排;推理与任务调度层将媒体接入、帧分发、预处理、YOLO 推理与后处理串联为可复用流水线;数据持久化层则以本地 SQLite 与文件归档共同支撑可追溯性,保证“界面所见、记录所存、导出所得”三者一致。
在跨层协同上,系统将图片、视频与本地摄像头统一抽象为“帧流”,以事件驱动方式将帧到达事件推送至异步任务队列,从而避免 GUI 线程阻塞并稳定刷新节奏。帧进入推理链路后完成统一的 640×640 预处理(缩放、归一化与张量转换),再交由 YOLOv5–YOLOv12 任一模型执行推理,推理输出经过 Conf/IoU 过滤与 NMS 等后处理,并完成坐标还原以便与原始画面一致叠加显示。该设计使阈值参数在交互层与推理层保持同步语义,同时确保源切换互斥,避免多源并行导致的状态错乱,进度条与耗时统计也可基于帧序列自然更新,形成稳定的可视与可控体验。
在可扩展性方面,系统将模型权重管理与推理引擎解耦,支持权重热切换并触发类别信息与配色刷新,便于多模型横向对比与回滚;统计与导出被抽象为独立编排流程,能够在不侵入推理核心逻辑的前提下扩展更多报表字段与导出格式。主题与配置采用本地化持久保存,使不同账号或不同实验配置能够被一致复用;同时在任务调度与媒体接入处预留异常恢复策略,使视频中断、摄像头占用或推理失败等情况能回到可控状态,保证长时间运行的稳定性。

图 6-1 系统流程图(Draw.io XML)
图注:系统自初始化进入多源输入,完成预处理、YOLO 推理与界面联动,并在交互控制中形成闭环;突出 Conf/IoU 滑块、目标高亮选择、CSV/PNG/AVI 导出与时间戳命名。

图 6-2 系统设计框图(Draw.io XML)
图注:框图以分层模块划分边界,数据流从多源媒体接入进入推理链路,结果回流至交互层并沉淀到持久化层;业务与会话管理层负责源互斥、参数与统计的一致性维护。
6.2 登录与账户管理 — 流程图

图 6-3 登录与账户管理流程图(Draw.io XML)
图注:流程覆盖注册写库、口令校验与会话建立,并在登录成功后加载个性化配置与最近记录,从而与主检测流程在同一会话上下文中衔接。
登录与账户管理流程以本地化会话为核心:应用启动后进入登录界面,若用户未注册则完成信息填写并写入本地数据库形成账户记录,随后进入口令校验以建立有效会话;当校验成功时系统会载入与账号绑定的个性化配置(如主题偏好、默认模型与最近记录),从而在进入主界面后能够以一致的参数口径开展多源检测并将结果持续沉淀到本地记录中。该流程的价值不在于增加额外交互步骤,而在于将账号空间、历史记录与配置复用统一到同一会话上下文,使检测、复查与导出具有稳定的可追溯性,并在注销或切换账号时实现隔离与回滚,避免多次实验混用造成评测口径漂移。
7. 项目资源链接
若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件请见Gitee的简介处给出:➷➷➷
Gitee项目:https://gitee.com/matengo/FlowerRecognition
完整项目及文档: https://newtopmat.feishu.cn/wiki/SH2ywXxQziEk7Ik5oLecZIsHnLq?from=from_copylink
功能效果展示视频:基于深度学习的多种类花卉识别系统(代码讲解+论文示例)
环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程;
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程;
数据集标注教程(如需自行标注数据):数据标注合集
参考文献(GB/T 7714)
1 叶继华, 祝锦泰, 江爱文, 等. 人脸表情识别综述[J]. 计算机应用研究, 2020, 35(1): 21-34. (万方数据)
2 Mollahosseini A, Hasani B, Mahoor M H. AffectNet: A Database for Facial Expression, Valence, and Arousal Computing in the Wild[EB/OL]. arXiv:1708.03985, 2017. (arXiv)
3 Li S, Deng W, Du J. Reliable Crowdsourcing and Deep Locality-Preserving Learning for Expression Recognition in the Wild[C]//Proceedings of CVPR. 2017. (CVF开放获取)
4 Barsoum E, Zhang C, Ferrer C C, Zhang Z. Training Deep Networks for Facial Expression Recognition with Crowd-Sourced Label Distribution[EB/OL]. arXiv:1608.01041, 2016. (arXiv)
5 AffectNet+. AffectNet+: A Database for Enhancing Facial Expression Recognition with Soft-Labels[EB/OL]. arXiv:2410.22506, 2024. (arXiv)
6 Memon M A, et al. Comparative Analysis of Convolutional Neural Network Architectures for Facial Expression Recognition across FERPlus, CK+, and AffectNet[C]//(Springer Book Chapter). 2025. (SpringerLink)
7 Robust facial expression recognition with Transformer Block Enhancement[J/OL]. Neurocomputing / Expert Systems with Applications (ScienceDirect), 2023. (科学直接)
8 Knowledge-Enhanced Facial Expression Recognition with Emotional-to-Neutral Transformation[EB/OL]. arXiv, 2024. (arXiv)
9 张淼萱, 等. 人脸表情识别可解释性研究综述[J/OL]. 计算机学报, 2024. (cjc.ict.ac.cn)
10 Selvaraju R R, Cogswell M, Das A, et al. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization[C]//Proceedings of ICCV. 2017. (CVF开放获取)
11 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection (RT-DETR)[EB/OL]. arXiv:2304.08069, 2023. (arXiv)
12 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. arXiv:1506.01497, 2015. (arXiv)
13 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers (DETR)[EB/OL]. arXiv:2005.12872, 2020. (arXiv)
14 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. arXiv:2107.08430, 2021. (arXiv)
15 Li C, Li L, Jiang H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[EB/OL]. arXiv:2209.02976, 2022. (arXiv)
16 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
17 Ultralytics. YOLO12: Attention-Centric Object Detection[EB/OL]. (Ultralytics Docs)
18 NVIDIA. ONNX Conversion and Deployment — TensorRT Documentation[EB/OL]. (NVIDIA Docs)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)