基于YOLOv3的口罩检测及人脸识别系统研究
1. 相关工作概述
随着新冠疫情在全球的迅速蔓延,佩戴口罩成为一项至关重要的任务,因此口罩检测系统对于控制病毒传播以及保障许多场所(如实验室、医院和工作场所)的人员健康与安全至关重要。目前,在口罩检测领域已经有了不少研究成果,主要集中在图像分类和目标检测两种方法上。
1.1 图像分类方法
- 基于HOG和SVM的方法 :Abdulmajeed等人构建了一个软件工具,用于检测戴口罩和未戴口罩的人脸。该工具分两个阶段实现,首先使用方向梯度直方图(HOG)进行特征提取,然后使用支持向量机(SVM)进行分类。该模型在多个数据集上进行训练,取得了一定的准确率,但数据集规模较小,若增加数据集规模,结果可能不理想。Catindoy同样使用了HOG和SVM技术,但更侧重于口罩的正确和不正确佩戴情况,在30个训练周期中达到了99%的准确率,但缺乏对未戴口罩人脸的检测。
- 基于CNN的方法 :Md. Shahriar等人提出了一个基于卷积神经网络(CNN)的模型,该模型在图像预处理、裁剪和分类三个层面上工作,使用Leaky ReLU作为激活函数,Softmax层作为输出层,准确率达到0.98。Kaur等人也提出了一个CNN模型,并引入了检测特征,使结果图像带有一个带有准确率的框,但该研究缺少参数和性能指标。
1.2 目标检测方法
由于图像分类方法存在局限性,研究转向了更可靠的目标检测方法来识别和定位人脸。
-
YOLOv3及组合模型
:Addagarla等人提出了两个模型,一个使用YOLOv3,另一个使用Resnet、ssd和nasnet mobile算法的组合。比较两个模型,组合模型的召回率达到98%,优于YOLOv3的91.7%。
-
定制模型
:Peishu等人提出了一个定制模型,使用修改后的Res2Net结构进行特征提取,EnPAN进行检测,该模型的平均精度均值(mAP)达到0.575,但模型复杂度较高。
-
Faster RCNN模型
:Razavi等人提出了一种使用Faster RCNN和Inception Resnet V2进行检测的方法,准确率达到99.8%。
-
YOLOv3 Tiny模型
:Cheng等人提出了一个轻量级的YOLOv3 Tiny模型,该模型速度快,实时性能好,但准确率存在噪声。
1.3 方法比较
从上述讨论可以看出,图像分类和目标检测都可用于口罩检测,但目标检测在实时性、准确性和速度方面更具优势。大多数研究存在数据集有限、仅关注戴口罩和未戴口罩情况、缺乏除准确率之外的性能指标等问题。高精度的模型往往复杂度较高,定制模型通常具有更好的准确率。
2. 实验设计
2.1 数据集描述
口罩数据集包含3416张图像,这些图像来自RMFD、FMD和IMFD数据集,共检测到4984个人脸。数据集分为三个类别:
- 戴口罩(1784张人脸)
- 未戴口罩(1655张人脸)
- 戴错口罩(1545张人脸)
2.2 数据标注
数据标注是将图像与其相应的类别进行标记,并在目标对象周围形成边界框,然后根据相应的类别进行标注的过程。使用Visual Object Tagging Tool(VoTT)软件创建标注,标注文件包含图像名称、边界框坐标(x_min, y_min, x_max, y_max)和类别标签。在3416张图像的数据集中,1784个标签属于戴口罩类别,1655个标签属于未戴口罩类别,1545个标签属于戴错口罩类别,这些标注以CSV格式保存。在训练和检测过程中,所有图像都被重新调整为416×416的大小。
2.3 独立变量和因变量
- 独立变量 :模型中的独立变量包括图像数量(3416)、标注数量、所需标签的方向以及图像的通道数(初始为3)。
- 因变量 :因变量包括每个卷积层后的特征图、每个尺度后每个类别的置信度、边界框的坐标以及目标存在分数(目标位于边界框内的可能性)。
2.4 性能指标
为了检查模型的正确性,使用了平均精度和召回率等性能指标,同时还计算了精度、召回率、平均精度均值(mAP)和F1分数。
2.5 验证方法
采用训练/测试分割方法对模型进行验证,将数据集分为两部分,一部分用于训练,另一部分用于验证。训练和验证集共包含3075张图像,按照9:1的比例划分,其中90%的图像用于训练集,10%的图像用于验证集。
3. 模型架构
3.1 整体流程
YOLOv3模型的训练过程如下:
1. 构建输入层,输入一批128张大小为416×416的图像。
2. 初始时,冻结252层中的249层,进行51个周期的训练。
3. 解冻所有层,再次进行51个周期的训练。
4. 将输入传递到卷积层,创建卷积核,用于对图像进行卷积操作,实现浮雕、模糊、锐化、边缘检测等功能。
5. 将卷积层的输出传递到批量归一化层,将输入转换为标准化形式,即均值为0,标准差为1。
6. 使用Leaky ReLU层作为激活函数,解决了传统ReLU函数的“死亡ReLU”问题,并加快了训练过程。
7. 经过第二个卷积层,重复上述过程,得到特征图。
8. 将特征图传递到检测层,在三个不同尺度上进行检测,分别对应不同大小的特征图,步长分别为32、16和8。
3.2 层分布
| 层名称 | 数量 |
|---|---|
| InputLayer | 1 |
| Conv2D | 75 |
| BatchNormalization | 72 |
| LeakyReLU | 72 |
| ZeroPadding2D | 5 |
| Add | 23 |
| UpSampling2D | 2 |
| Concatenate | 2 |
3.3 检测过程
在YOLOv3网络中,检测在三个不同尺度上进行,输入图像可以分别缩放到13×13、26×26和52×52的大小。在每个尺度上,使用9个锚框(预定义的边界框)进行边界框预测,每个尺度使用3个锚框。在每个尺度上,每个单元格预测3个边界框,选择与真实边界框交并比(IOU)较高的边界框。IOU定义为模型预测的边界框与实际边界框的交集面积与并集面积之比。
3.4 检测核形状
检测核的形状可以通过以下公式计算:
[1 \times 1 \times (B \times (5 + C))]
其中,B是单个单元格可以预测的边界框数量,“5”表示一个目标置信度和4个边界框属性,C是类别数量。在本模型中,B = 3,C = 3,因此检测核的形状为1×1×24。
3.5 训练过程
在训练过程中,模型的参数不断调整,损失函数的值被优化到最小。使用Adam优化器,学习率为0.001,如果损失在每3个周期内保持不变,则学习率将降低为原来的0.1倍。模型的可训练参数总数为61,529,119,超参数包括学习率系数、周期数、核大小、批量大小、激活函数和架构层数等。
4. 实验结果
4.1 训练损失
模型在51个周期内进行了两次训练,分别使用了128和16的批量大小。训练的停止条件是监控验证损失,训练集和验证集的损失分别为14.3942和16.1282。
4.2 测试评估
模型使用341张图像进行测试,预测边界框并进行评估。通过计算预测边界框与真实边界框的IOU,确定真阳性、真阴性、假阳性和假阴性。在置信度阈值从0.01到0.99的范围内,计算每个类别的精度和召回率,并绘制精度-召回曲线。
4.3 性能指标
| 类别 | 平均精度 | 召回率 |
|---|---|---|
| Mask | 0.94 | 0.95 |
| Without mask | 0.93 | 0.96 |
| Bad mask | 0.95 | 0.98 |
总体性能指标如下:
| 指标 | 值 |
| ---- | ---- |
| Precision | 0.93 |
| Recall | 0.95 |
| F1-score | 0.94 |
| mAP | 0.93 |
4.4 结果分析
分析结果表明,模型在检测戴错口罩的对象方面表现较好,在单张图像中检测到的戴错口罩对象数量较多(100个中有95个),其次是戴口罩对象(100个中有94个),未戴口罩对象的检测数量最少(100个中有93个)。三个类别的精度和召回率略有差异,这是由于不同类别的数据集质量和特征差异造成的。
4.5 与原始YOLOv3模型比较
计算得到的mAP为0.93,高于原始YOLOv3模型在COCO数据集上的训练结果(约0.51 - 0.58)。
5. 结论与未来展望
5.1 研究总结
本研究提出了一种基于YOLOv3目标检测模型的方法,用于识别戴口罩、未戴口罩和不正确佩戴口罩的人脸。该研究利用了最新和流行的深度学习算法和计算机视觉技术,YOLOv3是一种广泛使用的目标检测技术。使用Microsoft VoTT构建了自定义数据集,分为戴口罩、未戴口罩和戴错口罩三个类别。使用Adam优化器加快了学习过程,在第二轮训练中改变批量大小从128到16,有效降低了损失并使其保持稳定。尽管数据集规模较小,但模型的精度和召回率表现良好,分别为0.93和0.95。
5.2 未来工作
为了进一步提高模型的准确性和其他性能指标,需要在更大的数据集上进行训练,可以通过数据增强技术增加数据集的规模。未来,可以将研究扩展到视频剪辑中的检测,使其成为一个实时检测模型,能够在视频和网络摄像头中高精度地检测戴口罩、未戴口罩或戴错口罩的人脸。这将为安全解锁系统、自动违规检测系统等提供软件解决方案。
5.3 流程图
graph LR
A[构建输入层] --> B[初始冻结层训练]
B --> C[解冻层训练]
C --> D[卷积层]
D --> E[批量归一化层]
E --> F[Leaky ReLU层]
F --> G[第二个卷积层]
G --> H[特征图]
H --> I[检测层]
I --> J[计算IOU]
J --> K[确定性能指标]
K --> L[评估模型]
5.4 总结列表
- 本研究提出了基于YOLOv3的口罩检测方法,利用深度学习和计算机视觉技术。
- 使用Microsoft VoTT构建自定义数据集,分为三个类别。
- Adam优化器和批量大小调整提高了训练效率和稳定性。
- 模型在小数据集上表现良好,但需在大数据集上进一步训练。
- 未来可扩展到视频实时检测,为相关系统提供解决方案。
6. 人脸识别系统概述
6.1 人脸识别的定义与原理
人脸识别是一种通过利用面部属性来识别个体的高效机制。人工智能被广泛应用于在不同环境中识别面部属性,大多数人脸识别系统能够分析和比较各种面部模式的属性,以有效地验证个人身份。它是生物识别识别系统的一个组成部分。
6.2 深度学习算法在人脸识别中的应用
有许多深度学习算法被提出用于提取面部特征,例如特征脸(Eigen Fisher faces),它能够提取主成分并将不同的人脸区分开来。在当前的疫情背景下,人们需要佩戴口罩,这给人脸识别带来了挑战,因为部分面部特征不可见。然而,深度神经网络(DNN)的应用有助于以所需的精度识别个人。当一个人佩戴口罩或眼镜时,只有少数面部特征可见,如眉毛、额头和脸型。
6.3 不同技术在人脸识别中的作用
许多技术有助于基于图像的特征、颜色、形状、姿态变化、表情变化、二维图像、三维图像、RGB和黑白图像来识别图像。以下是一些常见的技术:
-
基于特征的识别技术
:通过提取图像的特征来进行识别,如边缘、纹理等。
-
基于颜色的识别技术
:利用图像的颜色信息进行识别。
-
基于形状的识别技术
:根据图像的形状特征进行识别。
6.4 人脸识别面临的挑战
由于口罩的佩戴,部分面部特征被遮挡,使得传统的人脸识别方法面临挑战。然而,DNN等技术的应用在一定程度上解决了这个问题,但仍需要进一步提高识别的准确性。
7. 特征提取与分类技术
7.1 特征提取方法
- 整体方法 :如特征脸(Eigen Fisher faces),通过提取主成分来分离不同的人脸。
- 局部方法 :关注面部的局部特征,如眼睛、鼻子等。
7.2 分类方法
- 支持向量机(SVM) :一种常用的分类方法,通过寻找最优的超平面来进行分类。
- 卷积神经网络(CNN) :在图像识别领域取得了很好的效果,能够自动提取图像的特征。
- AdaBoost :一种集成学习方法,通过组合多个弱分类器来构建一个强分类器。
- 神经网络 :具有强大的学习能力,能够处理复杂的模式。
7.3 不同方法的比较
| 方法 | 优点 | 缺点 |
|---|---|---|
| 支持向量机(SVM) | 对小样本数据有较好的分类效果 | 计算复杂度较高 |
| 卷积神经网络(CNN) | 能够自动提取特征,分类准确率高 | 需要大量的训练数据和计算资源 |
| AdaBoost | 能够提高弱分类器的性能 | 对噪声数据比较敏感 |
| 神经网络 | 具有强大的学习能力 | 训练过程复杂,容易过拟合 |
8. 口罩对人脸识别的影响及解决方案
8.1 口罩对人脸识别的影响
口罩的佩戴遮挡了部分面部特征,使得人脸识别系统的准确性下降。一些传统的人脸识别方法可能无法准确识别佩戴口罩的人脸。
8.2 解决方案
- 使用DNN :深度神经网络能够学习到面部的抽象特征,即使部分特征被遮挡,也能够以较高的准确性识别个人。
- 结合其他特征 :除了面部特征外,还可以结合其他特征,如眉毛、额头等,来提高识别的准确性。
9. 总结与展望
9.1 研究总结
本文介绍了基于YOLOv3的口罩检测方法以及人脸识别系统的相关技术。在口罩检测方面,通过构建自定义数据集,使用Adam优化器和调整批量大小,模型在小数据集上取得了较好的精度和召回率。在人脸识别方面,介绍了多种特征提取和分类方法,并分析了口罩对人脸识别的影响及解决方案。
9.2 未来展望
- 大数据集训练 :进一步提高模型的准确性和其他性能指标,需要在更大的数据集上进行训练,可以通过数据增强技术增加数据集的规模。
- 实时检测 :将研究扩展到视频剪辑中的检测,使其成为一个实时检测模型,能够在视频和网络摄像头中高精度地检测戴口罩、未戴口罩或戴错口罩的人脸。
- 多模态识别 :结合多种生物特征,如指纹、虹膜等,提高识别的准确性和安全性。
9.3 流程图
graph LR
A[输入图像] --> B[特征提取]
B --> C{是否戴口罩}
C -- 是 --> D[使用DNN识别]
C -- 否 --> E[传统人脸识别方法]
D --> F[输出识别结果]
E --> F
9.4 总结列表
- 口罩检测方面,基于YOLOv3的模型在小数据集上表现良好,可通过大数据集训练进一步提升性能。
- 人脸识别中,多种特征提取和分类方法各有优劣,需根据具体情况选择。
- 口罩对人脸识别有影响,可通过DNN和结合其他特征来解决。
- 未来可朝着大数据集训练、实时检测和多模态识别方向发展。
超级会员免费看

被折叠的 条评论
为什么被折叠?



