
摘 要人员密集场所对口罩佩戴有持续监管需求人工巡查难全覆盖、易疏漏传统视觉方法在复杂环境下难以稳定区分细粒度佩戴状态故将基于深度学习的口罩佩戴状态分类作为研究选题。本文总览三分类任务完成EfficientNet模型设计与迁移学习实现含数据爬取与多格式导入、标注、异步训练部署及在线检测的B/S系统并开展实验与功能测试。在模型上依据EfficientNet复合缩放兼顾精度与计算量的思路选用EfficientNet-B0为骨干经全局平均池化、全连接与Softmax完成“正确佩戴”“未佩戴”“错误佩戴”三分类。以ImageNet预训练迁移学习配合随机裁剪、翻转、旋转与颜色抖动等增强交叉熵训练并可加权缓解类别不均衡。理论上概述卷积、池化与分类层及准确率、精确率、召回率与F1等指标。系统以Flask与PyTorch实现数据爬取、ZIP与MAFA/RMFD导入、标注与数据集管理、异步训练与模型部署、单张与批量检测及结果展示MySQL持久化业务数据。在给定数据与参数条件下实验表明模型在验证集与测试集上准确率与F1较高功能测试表明数据流与状态管理正确训练与检测衔接符合设计预期可满足课题对识别效果与系统可用性的要求为口罩佩戴监管场景提供可用的软件工具与后续扩展基础。关键词口罩佩戴状态分类EfficientNet卷积神经网络Flask1.3研究内容本课题的研究内容主要包括,在明确“正确佩戴”“未佩戴”“错误佩戴”三类定义的基础上选用EfficientNet作为主干网络设计并实现一套从数据采集与标注、模型训练、到单张与批量图像检测及结果可视化的完整系统。系统支持RMFD等公开数据集的导入与自定义数据集的整理采用交叉熵损失与常见数据增强进行训练并通过准确率、精确率、召回率、F1值等指标对模型进行评价。在实现层面采用Web应用形式集成数据爬取、数据集管理、训练任务调度、检测服务与历史记录管理等功能并设计相应数据库表结构以持久化用户、数据集、训练任务与检测结果便于实际使用与二次开发。2.4数据集2.4.1RMFD数据集RMFDReal-World Masked Face Dataset为面向真实场景的戴口罩人脸数据集包含大量在自然条件下采集的戴口罩与未戴口罩的人脸图像部分子集还提供了口罩遮挡程度或佩戴方式的标注。该数据集常被用于口罩检测、人脸识别 under 口罩遮挡、以及佩戴状态分类等研究。本系统在设计与实验部分参考RMFD的数据组织方式与类别划分支持将符合“按类别分目录”或“按标注文件”组织的数据导入系统。使用的为RMFD或其衍生版本可按照系统约定的三类正确佩戴、未佩戴、错误佩戴进行映射与划分用于训练与验证。官网下载URL地址https://github.com/X-zhangyang/Real-World-Masked-Face-Dataset。正确佩戴指口罩主体覆盖口鼻鼻梁条若有贴近鼻梁下颌处贴合度较好口罩上缘大致位于鼻梁与面颊过渡区域遮挡范围符合常见防疫佩戴规范该类样本在视觉上口罩边缘与面部轮廓关系相对稳定。如图2-5所示。错误佩戴指虽有口罩但佩戴不规范例如仅遮住下巴、口罩滑落露出鼻孔或口唇、口罩歪斜严重未覆盖口鼻等该类与“未佩戴”在局部纹理上可能接近与“正确佩戴”的差异主要体现在口鼻是否被有效遮盖属于细粒度分类中的难点类别。如图2-6所示。未佩戴指口鼻区域无口罩遮挡面部人中、鼻翼、口唇等关键区域可见便于与“有遮挡但遮挡不当”的样本区分该类图像在监控与门禁场景中对应未按规定佩戴口罩的情形。如图2-7所示。2.4.2数据集分析本节在2.4.1对RMFD等典型公开数据集介绍的基础上进一步面向本课题实际使用的口罩佩戴状态数据集展开分析目的是说明本文训练和评估所依赖的数据是如何被严格筛选、评估和构建的为后续实验结果的可信性提供数据层面的依据。具体从数据分布、图像质量、类别平衡性、类别相似度以及数据增强与划分策略等方面进行分析。1数据分布分析数据分布分析主要关注各类别样本数量的分布情况。理想的训练数据集应使各类别样本数量大致均衡避免类别不平衡导致的模型偏向多数类问题。设数据集包含C个类别第i个类别的样本数为ni则类别平衡度可以表示为Balancemin{ni}max{ni},i∈[1,C] (2-12)平衡度越接近1表示数据集越均衡。2图像质量分析图像质量直接影响模型训练与泛化效果需要从以下几方面考察。分辨率分布统计图像分辨率宽×高的分布情况确保分辨率满足模型输入要求如本系统统一缩放到 224×224并剔除尺寸过小、有效信息不足的样本。模糊度分布可使用拉普拉斯算子等评估图像清晰度过滤严重模糊的人脸或口罩图像。亮度分布分析图像亮度分布识别过曝或欠曝样本必要时通过预处理或数据增强进行校正。对比度分布评估图像对比度确保人脸与口罩区域、皮肤与口罩边界等细节清晰可见便于模型学习判别性特征。3类别相似度分析不同口罩佩戴状态类别之间可能存在视觉相似性容易导致模型混淆。例如“未佩戴”与“错误佩戴”如口罩仅遮住下巴在部分姿态或遮挡下较难区分“正确佩戴”与“错误佩戴”在口罩款式或佩戴松紧度上也可能存在边界样本。通过统计混淆矩阵或类间特征距离可识别潜在的易混类别进而采取针对性的数据增强、样本补充或损失加权等策略提升模型对易混类别的区分能力。4数据增强策略针对数据集的不足如样本量有限、姿态与光照单一可采用数据增强技术扩充有效样本、提高泛化能力。几何变换旋转、水平/垂直翻转、随机裁剪、缩放等使模型对人脸角度与构图变化更鲁棒。颜色变换亮度、对比度、饱和度、色调的随机调整如 ColorJitter模拟不同光照与拍摄条件。噪声添加在部分样本上添加高斯噪声或椒盐噪声增强对噪声的鲁棒性需控制强度以免破坏语义。混合增强如 Mixup、CutMix 等高级增强技术在图像或特征层面进行混合可进一步增加多样性。本系统在训练阶段采用了随机缩放裁剪、随机翻转、随机旋转与颜色抖动等验证与测试阶段不做随机增强以保证评估一致性。5数据集划分为客观评估模型性能需将数据集划分为训练集、验证集与测试集。训练集用于模型参数学习通常占总样本的 70%80%。验证集用于超参数调优、早停判断及训练过程监控通常占 10%15%。测试集仅用于最终性能评估不参与训练与调参通常占 10%15%。划分时应采用分层采样使各集合中各类别的比例与原始数据集保持一致避免因划分导致的类别分布偏移。本系统支持按“训练/验证/测试”子目录组织数据或在导入时指定划分比例并自动分层划分保证训练与评估的数据基础可靠。3.1算法/模型介绍本系统将口罩佩戴状态分类建模为三分类问题类别为“正确佩戴”“未佩戴”“错误佩戴”。算法采用以EfficientNet为骨干的卷积神经网络输入为固定尺寸的RGB图像经EfficientNet主干提取特征后由全局池化得到一维特征向量再经全连接层映射到三类 logits经 softmax 得到各类别概率取 argmax 得到预测类别。训练时采用交叉熵损失与梯度下降类优化器并可选用学习率调度与类别权重以应对不平衡数据。3.1.1特征提取部分介绍特征提取部分由EfficientNet主干承担输入为经预处理与数据增强后的图像张量如 224×224×3经过若干 MBConv 块含深度可分离卷积、Swish 激活、SE 注意力等逐层下采样并增加通道数最终得到高维特征图。本系统在该特征图后接全局平均池化GAP将每个通道的空间维度压成单个标量得到一维特征向量维度与最后一层通道数一致如 EfficientNet-B0 为 1280。该向量作为高层语义表示供后续分类层使用。若使用预训练权重主干参数在微调时通常仍参与更新以便适应口罩场景的分布。仅冻结部分底层或采用较小学习率也是常见做法。图3-2表示从输入图像到分类头之前、特征是如何被抽成固定长度向量的。左侧「主干」对应 EfficientNet 的多阶段Stage 17特征提取.预处理后的 RGB 图像如 224×224×3依次经过多个 MBConv 等模块在空间上逐步下采样、在通道上逐步加宽得到一张高通道、低空间分辨率的特征图图中用 Stage 串联概括这一过程强调网络由浅层到深层逐级形成从边缘纹理到更抽象语义的表示。主干末端接全局平均池化GAP对每一个通道在空间维度高×宽上取平均值把二维特征图压成每个通道一个标量从而得到长度为「最后一层通道数」的一维向量文中 EfficientNet-B0 为 1280 维。这样做的效果是无论特征图空间尺寸如何输出向量维度固定便于接全连接层做三分类同时相比直接展平整幅特征图参数量更可控并带有对空间位置的一定汇总与平移鲁棒性。图中「特征向量 1280-d」即送入后续全连接分类层与 Softmax 的输入。3.2数据预处理数据预处理与增强直接影响模型收敛速度与泛化能力。本系统在训练与推理阶段采用统一的归一化参数ImageNet 均值与标准差保证与预训练权重的统计一致性在训练阶段额外施加随机变换以增强数据多样性。3.2.1图像裁剪训练时使用随机缩放裁剪RandomResizedCrop在给定尺度范围内随机裁取一块区域并缩放到目标尺寸使模型适应不同构图与尺度验证与推理时采用中心裁剪或直接缩放到112×112不做随机性。3.2.2图像旋转训练时施加小角度随机旋转如 ±15°模拟拍摄时人脸或相机轻微倾斜提高对姿态变化的鲁棒性验证与推理阶段不旋转。3.2.3灰度图像转换本任务依赖颜色与纹理信息如口罩颜色、皮肤与口罩边界因此输入保持 RGB 三通道不做灰度化数据增强中的颜色抖动可间接改变色彩与对比度。3.2.4其他预处理技术训练阶段还采用随机水平翻转RandomHorizontalFlip、颜色抖动ColorJitter对亮度、对比度、饱和度、色调做小幅随机变化以进一步增加多样性所有增强仅在训练时启用验证与推理时仅做 Resize、ToTensor 与归一化保证评估一致性。3.2.5预处理流程训练时流程为“读取图像 → 随机缩放裁剪 → 随机水平翻转 → 随机旋转 → 颜色抖动 → 转 Tensor → 归一化”验证/推理时为“读取图像 → 缩放到 224×224 → 转 Tensor → 归一化”。归一化均使用 mean[0.485, 0.456, 0.406]、std[0.229, 0.224, 0.225]与 ImageNet 预训练一致。预处理与增强项汇总如下表。3.7系统功能模块系统功能模块包括用户与权限模块负责注册、登录、会话与管理员校验管理员可访问爬取、数据集导入、标注、训练等管理功能。系统功能模块图如图3-13所示。数据爬取模块支持按关键词从指定来源如百度图片爬取图像并写入本地与数据集表并可指定目标类别与最大数量。数据集导入模块支持从本地上传的 ZIP 中解压图像按目录或文件名规则自动推断类别与划分或按 MAFA/RMFD 等格式导入。数据集管理模块提供图像列表、预览、删除、修改划分train/val/test及统计信息。数据标注模块支持对未标注或待核对的图像进行类别标注与验证。模型训练模块支持创建训练任务、配置 backbone、epoch、批大小、学习率等任务在后台线程中执行并更新进度与指标支持取消、重新训练与将训练好的模型部署为当前检测模型。检测功能提供单张图像上传检测与多张图像批量检测结果写入检测记录表并返回类别与置信度支持结果图展示与导出。结果展示与历史模块按用户或任务展示检测记录、统计图表等。各模块通过 Flask 路由与模板组织前后端通过 JSON 接口交互检测与训练核心逻辑复用同一套 EfficientNet 与预处理配置保证一致性。实现效果展示在这里插入图片描述