# 基于 RetinaFace 的口罩人脸检测算法
# 一、题目
基于 RetinaFace 的口罩人脸检测算法
# 二、摘要
新型冠状病毒可以通过空气中的飞沫、气溶胶等载体进行传播,在公共场所下正确佩戴口罩可以有效地防止病毒的传播。本实验介绍了一种自然场景下人脸口罩佩戴检测方法,该方法对 RetinaFace 算法进行了改进,增加了口罩人脸识别检测任务,优化了损失函数。在特征金字塔网络中引入了一种改进的自注意力机制,增强了特征图的表达能力。建立了包含 3000 张图片的数据集,并进行手工标注,用于网络训练。实验结果表明该算法可以有效进行口罩佩戴检测,在自然场景视频中也取得了不错的检测效果。
# 三、引言
自 2019 年 12 月以来,在我国爆发了新型冠状病毒肺炎(COVID-19)传播疫情,到目前为止(2021 年 6 月 13 日),根据世界卫生组织发布的最新消息,全球最新数据 | 每日更新截至北京时间 6 月 13 日 16 时:全球累计确诊 176,302,983 例,累计死亡病例 3,805,609 例,现有确诊病例 12,204,415 例。新型冠状病毒具有极强的传染性,它可以通过接触或者空气中的飞沫、气溶胶等载体进行传播,而且在适宜环境下可以存活 5 天。因此勤洗手、佩戴口罩可以有效降低被病毒传染的机率。国家卫生健康委员会发布的《新型冠状病毒感染肺炎预防指南》中强调,个人外出前往公共场所、就医和乘坐公共交通工具时,佩戴医用外科口罩或 N95 口罩。因此在疫情期间公共场所佩戴口罩预防病毒传播是每个人的责任,这不仅需要个人自觉遵守,也需要采取一定的手段监督和管理。随着深度学习在计算机视觉领域的发展,基于神经网络的目标检测算法在行人目标检测、人脸检测、遥感图像目标检测、医学图像检测和自然场景文本检测等领域都有着广泛的应用,本实验介绍介绍一种有效的目标检测算法。
## 3.1 国内研究现状分析
随着新型冠状病毒的爆发和蔓延,越来越多的人们意识到传统人脸识别系统的局限性,其中一部分人已经开始研究在 iPhone 设置中再添加一个戴着口罩情况下的 FaceID 的方法,然而并未实现。与此同时,国内的汉王科技致力于打造出“人形识别 + 口罩检测 + 疫情上报 + 大数据联动”综合系统,并且采用“社区管理 + 门禁考勤”的模式,将 AI 贯彻落实到防疫工作中。此外,百度还宣布免费开源业内首个口罩人脸检测及分类模型,致力于缓解国内疫情现状。
## 3.2 国外研究现状分析
国外针对基于深度学习的人脸识别方法的研究成果颇丰。尼德.米勒研究小组首先将深度学习应用于人脸识别领域,并取得了一定的识别准确率,推进了当时的科学研究。最近几年,基于深度学习的人脸识别算法识别准确率得到了很大的提升。Facebook 提出了一种采用基于检测点的人脸检测方法,被称为 DeepFace;此外,Google 提出了 FaceNet 警技术,该技术再次刷新了 LFW 上人脸验证的效果记录。再者是国外对于基于深度学习的目标检测算法的研究,Girshick 等人首先提出了在 R-CNN 的模型,随后又在其基础上提出 FastR-CNN 模型,引入目标区域池化(ROI)和单层金字塔池化层解决了候选框重复计算的问题。近几年,国外通过构建精巧的区域建议网络(RegionProposalNetwork,RPN)取代时间开销大的选择性搜索方法,提出了 FasterR-CNN 模型,使实时检测识别成为可能。而上述三种模型都是基于区域建议的方法,还有一种方法是无区域建议的方法,此方法的标志性的算法有 SSD、YOLO,核心思想是用单一的卷积网络直接基于整幅图像来预测目标的位置及其属性,也称为 one-stage 目标检测。YOLO 和 SSD 是目前为止最先进的目标检测方案之二,能够在一幅图像中同时检测和分类对象,并且通过不断改进,能够在原有的基础上引用锚点(anchor)和残差网络,进一步提高模型的表现。
# 四、RetinaFace 算法原理
Retinaface 是来自 insightFace 的又一力作,基于 one-stage 的人脸检测网络。同时开源了代码与数据集,在 widerface 上有非常好的表现。实现的功能:检测人脸。Retinaface 与普通的目标检测算法类似,Retinaface 会在图片上预先设定好一些先验框,这些先验框密密麻麻的分布在图片的各处,网络的预测结果会判断这些先验框的内部是否包含人脸并对这些先验框进行调整获得最终的预测框。以以下图片为例:
![](https://www.writebug.com/myres/static/uploads/2022/7/27/7e6fc0e233c6440785aed16bbc186156.writebug)
这张图片有若干个先验框,四周的先验框并不包含人脸,在网络的预测结果当中,四周的先验框置信度就比较低,就可以对这些先验框进行剔除,而中间的先验框内部包含人脸,所以网络的预测结果中中间的先验框的置信度会比较高,就会把这些先验框保留下来,并对这些先验框进行调整获得最终的预测框。在 Retinaface 人脸检测算法中,我们不仅要获得人脸框之外,还需要获得五个人脸关键点的位置这五个关键点分别是左眼、右眼、鼻尖、左嘴角、右嘴角,其获得方式是对先验框中心进行偏移获得五个关键点的 x 轴、y 轴的坐标。
Retinaface 网络对待检测的图片 ① 首先使用 mobilenet0.25 或者 Resnet50 进行主干特征网络提取,② 然后使用 FPN(FeaturePyramidNetwork)和 SSH(SingleStageHeadless)进行加强特征提取,③ 其次使用 ClassHead、BoxHead、LandmarkHead 网络从特征获取预测结果,最后 ④ 对预测结果进行 decode 解码并 ⑤ 通过 NMS 非极大抑制去除重复检测值得出最终结果。
![](https://www.writebug.com/myres/static/uploads/2022/7/27/ca1db9e6634d39bae3b6631c319c344b.writebug)
## 4.1 预测部分
### 4.1.1 主干网络 Mobilene 介绍
- adepthwiseseparableconvolution(深度可分离卷积)
![](https://www.writebug.com/myres/static/uploads/2022/7/27/9da674469e028179e8dd04eadeead6c6.writebug)
Retinaface 在实际训练的时候使用两种网络作为主干特征提取网络。分别是 MobilenetV1-0.25 和 Resnet。使用 Resnet 可以实现更高的精度,使用 MobilenetV1-0.25 可以在 CPU 上实现实时检测。MobileNet 模型是 Google 针对手机等嵌入式设备提出的一种轻量级的深层神经网络,其使用的核心思想便是 depthwiseseparableconvolution。深度可分离卷积(depthwiseseparableconvolution)可以用一句话概括:对我们输入进来的特征层的每一个通道进行单独的卷积。
对于一个卷积点而言:假设有一个 3×3 大小的卷积层,其输入通道为 16、输出通道为 32。具体为,32 个 3×3 大小的卷积核会遍历 16 个通道中的每个数据,最后可得到所需的 32 个输出通道,所需参数为 16×32×3×3=4608 个。
应用深度可分离卷积,用 16 个 3×3 大小的卷积核分别遍历 16 通道的数据,得到了 16 个特征图谱。在融合操作之前,接着用 32 个 1×1 大小的卷积核遍历这 16 个特征图谱,所需参数为 16×3×3+16×32×1×1=656 个。可以看出来 depthwiseseparableconvolution 可以减少模型的参数。如下这张图就是 depthwiseseparableconvolution 的结构。
![](https://www.writebug.com/myres/static/uploads/2022/7/27/b2b492d54ecc208f8dba55259760e950.writebug)
在建立模型的时候,可以将卷积 group 设置成 in_filters 层实现深度可分离卷积,然后再利用 1x1 卷积调�
没有合适的资源?快使用搜索试试~ 我知道了~
基于 Python RetinaFace 的口罩人脸检测算法【100011491】
共17个文件
py:13个
docx:1个
license:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 46 浏览量
2023-04-03
10:01:06
上传
评论
收藏 3.83MB ZIP 举报
温馨提示
新型冠状病毒可以通过空气中的飞沫、气溶胶等载体进行传播,在公共场所下正确佩戴口罩可以有效地防止病毒的传播。本实验介绍了一种自然场景下人脸口罩佩戴检测方法,该方法对 RetinaFace 算法进行了改进,增加了口罩人脸识别检测任务,优化了损失函数。在特征金字塔网络中引入了一种改进的自注意力机制,增强了特征图的表达能力。建立了包含 3000 张图片的数据集,并进行手工标注,用于网络训练。实验结果表明该算法可以有效进行口罩佩戴检测,在自然场景视频中也取得了不错的检测效果。
资源推荐
资源详情
资源评论
收起资源包目录
100011491-基于 Python RetinaFace 的口罩人脸检测算法.zip (17个子文件)
retinaface
计科1803何元梅1033180311大作业.docx 3.73MB
call_xdd.py 966B
LICENSE 1KB
caffe_infer.py 6KB
mxnet_infer.py 6KB
pytorch_infer.py 6KB
tensorflow_infer.py 6KB
tensorflow_info.ipynb 158KB
load_model
mxnet_loader.py 3KB
MainModel.py 17KB
keras_loader.py 392B
mxnet_model_structure.py 3KB
caffe_loader.py 417B
tensorflow_loader.py 2KB
pytorch_loader.py 509B
README.md 36KB
keras_infer.py 6KB
共 17 条
- 1
资源评论
- weixin_472738442023-04-22这个资源值得下载,资源内容详细全面,与描述一致,受益匪浅。
- kerwin6666662024-03-25资源不错,内容挺好的,有一定的使用价值,值得借鉴,感谢分享。
神仙别闹
- 粉丝: 2674
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功