基于深度学习的口罩人脸识别研究进展

        MTCNN模型训练输入的所有图像都是正样本(戴口罩的照片),没有负样本作为模型输入。在后续的识别任务模块中,导入MTCNN模型检测结果,对特征点进行编码比较进行识别。

        基于MTCNN的口罩人脸识别框架可分为四个阶段:

        人脸检测;面部与面罩对齐;带面具的人脸编码;戴口罩人脸对应的身份识别。

         如图1所示,在训练过程中,同一目标首先需要两组输入图像(未遮蔽的人脸图像和遮蔽的人脸图像)。机器自动为未蒙版图像添加蒙版,然后将其放入样本库中与蒙版图像进行特征比较。

这个过程分为两条链:

        第一条链是首先使用MTCNN技术的三个子网络并从粗到精地提取人脸部分,然后使用MobileNet组件进行掩模检测。如果发现输入是原始图像(无掩模),则在口鼻特征点区域添加掩模,并将处理后的“掩模人脸图像”输入到识别样本数据库中。

        第二条链是MTCNN的级联校正。将采集到的蒙版人脸图像裁剪为与初始样本库相同的像素大小。然后并行将两个链接添加到样本库中,进行比较(将自动处理的蒙版人脸与原始蒙版人脸进行比较)来预测最终的人脸信息。

        在创建识别样本数据库时收集未遮蔽的人脸图像,在执行识别时收集遮蔽的人脸图像。之后,将遮罩添加到未遮罩的人脸图像中,然后将遮罩的人脸与手动处理的遮罩人脸和收集的遮罩人脸进行比较。最后输出该人的身份信息。

        对于MTCNN网络,简单调整P/R/O-Net的阈值。三个阈值控制裁剪框输出高精度的面部信息。Faceplus-mask程序主要应用脸部的68个关键点。如图2所示,为人脸添加蒙版的主要部分如下:

        (1)搜索面部68个关键点。

        (2)确定人的鼻子和面部轮廓。

        (3)根据面部轮廓确定面部左侧点、面部下侧点和面部右侧点。

        (4)从鼻子到面部底点的高度、口罩尺寸中心线确定。

        (5)将口罩左右均匀分开;使用最左侧面部点与中心轴之间的距离作为宽度来调整蒙版左侧的大小。调整右蒙版,宽度为面部右侧点到中心轴的距离。将左蒙版和右蒙版合并为一个新蒙版。

        (6) 以中心轴相对于Y轴的旋转角度调整并旋转新的掩模,最终将掩模放置在图像上的适当位置。

最后基于FaceNet开源模块对两组数据进行对比识别。

1 蒙面人脸检测部分

        正样本图片(戴口罩的人脸图片)的输入样本库使用统一尺寸的图片,因为获取的图片中可能存在手臂、肩膀等身体部位,这对于训练来说可能会产生较多的噪声,MTCNN方法是用于裁剪蒙版图片的人脸区域;而MTCNN,是一种多任务卷积神经网络,其网络模型,主要通过三个级联网络进行人脸分框,即P/R/O-Net。

        (1)P-net用于快速生成面部拦截窗口。执行过程如下:对输入特征进行三层卷积后,利用人脸分类器、边界回归和人脸关键点定位来初步选择人脸区域。然后,P-Net 的主要选择将被馈送到 R-Net 进行下一步。

        (2)R-Net 用于以更精细的方式过滤从上一步截取的面部区域。其过程是:将P-Net得到的所有候选窗口输入R-Net,淘汰较少的有效候选窗口,通过边缘回归和非极大值抑制得到进一步的预测窗口。

        (3)O-Net的作用是生成最终的识别边界和人脸的关键点。运行过程与R-Net类似,但增加了人脸特征点位置的回归预测。最后输出人脸的5个人脸特征点。

2 佩戴口罩时的面部对准部分

        主要调用“Dlib”开源库提取128个特征点,输入戴口罩的人脸图片,针对鼻子和嘴巴两个部位,在口罩遮盖下,模型自动补足特征点人脸特征点提取;深度学习部分采用Face-net模型。该模型通过提取其中一层作为特征来学习从图像到欧几里得空间的编码方法。该算法主要直接应用已建立的CNN模型(例如GoogleNet等)并在此基础上改变损失函数,以方便将人脸图像映射到高层空间层次结构。利用损失函数来优化人脸之间的欧氏距离,使得同一个人的人脸图片的误差距离最小,不同人的人脸图片的误差距离最大。根据获取的特征向量,计算“欧氏距离”进行人脸识别。网络结构如图4所示。经过这一步,人脸缺失的特征点将被填充并参与识别。

3 佩戴口罩人脸编码部分

        获取人脸128个点的特征编码,并根据人脸编码信息矩阵计算不同人脸之间的距离。

4 佩戴口罩的人脸识别部分

        所有计算距离的方法都安排好之后,就进行最后一步的人脸识别。计算数据库中的人脸数据,将信息编码后的图片存入已知人脸信息列表中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/465613.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构试卷第九套

1.时间复杂度 2.树,森林,二叉树的转换 2.1树转二叉树 给所有的兄弟节点之间加一条连线;去线,只保留当前根节点与第一个叶子节点的连线,删除它与其他节点之间的连线;然后根据左孩子右兄弟进行调整&#xf…

C#装箱和拆箱

一,装箱 装箱是指将值类型转化为引用类型。 代码如下: 装箱的内部过程 当值类型需要被装箱为引用类型时,CLR(Common Language Runtime)会为值类型分配内存,在堆上创建一个新的对象。值类型的数据会被复…

Adobe Illustrator 2024 v28.3 (macOS, Windows) - 矢量绘图

Adobe Illustrator 2024 v28.3 (macOS, Windows) - 矢量绘图 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adobe XD 请访…

【机器学习】详细解析Sklearn中的StandardScaler---原理、应用、源码与注意事项

【机器学习】详细解析Sklearn中的StandardScaler—原理、应用、源码与注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x…

QT UI窗口常见操作

MainWidget::MainWidget(QWidget *parent): QWidget(parent), ui(new Ui::MainWidget) {ui->setupUi(this);// 设置主窗口背景颜色QPalette plt;plt.setColor(QPalette::Window,QColor(180,220,130));this->setPalette(plt);// 禁止窗口最大化按钮setWindowFlags(windowF…

基于多源遥感图像多级协同融合的舰船识别算法

源自:电子工程与电子技术 作者:张亚丽 冯伟 全英汇 邢孟道 “人工智能技术与咨询” 发布 摘 要 针对极化合成孔径雷达(polarimetric synthetic aperture radar, PolSAR)图像存在斑点噪声严重、可视性差、直接影响目标识别精度的问题, 提出一种基…

SpringBoot实现邮件发送

一.准备 引入starter <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>二.邮件发送需要的配置 因为各大邮件都有其对应安全系统&#xff0c;不是项目中想用就…

【晴问算法】入门篇—贪心算法—区间不相交问题

题目描述 给定n个开区间&#xff0c;从中选择尽可能多的开区间&#xff0c;使得这些开区间两两没有交集。 输入描述 输出描述 输出一个整数&#xff0c;表示最多选择的开区间个数。 样例1输入 4 1 3 2 4 3 5 6 7 输出 3 解释 最多选择(1,3)、(3,5)、(6,7)三个区间&#xff0c;它…

【IEDM2023】背势垒电荷运动诱导GaN HEMT随时间的非稳态击穿

分享一篇2023年IEDM上GaN HEMT&#xff08;高电子迁移率晶体管&#xff09;的研究论文&#xff0c;标题为“Charge Movement in Back Barrier Induced Time-Dependent On-State Breakdown of GaN HEMT”。论文讨论了在GaN HEMT中&#xff0c;由于背栅&#xff08;Back Barrier&…

【数据库】数据库基本知识

1.数据库的四个基本概念 1.1 数据&#xff1a;描述事务的符号记录 1.2 数据库&#xff1a;概括的说&#xff0c;数据库数据具有永久存储、有组织的、可共享的大量数据的集合&#xff0c;数据库中的数据按一定的数据模型组织、描述和储存&#xff0c;具有较小的冗余度、较高的…

ubuntu16.04上pycharm卡住关不了

在使用pycharm的过程中&#xff0c;突然卡住&#xff0c;黑屏&#xff0c;手动界面关闭失败&#xff0c;可尝试以下方法解决。 输入以下命令&#xff0c;查看所有和pycharm有关的进程 ps -ef | grep pycharm得到以下结果 根据相应的PID&#xff0c;输入以下命令&#xff0c;强…

Java基础入门day16

day16 回顾二分查找 思路&#xff1a; 对于一个已经排好序的数组&#xff0c;在该数组中查找指定的元素&#xff0c;将要查找的元素与排好序之后的数组中的中间数值进行比对 如果一致&#xff0c;则直接返回&#xff0c;一次性可以得到要查找元素的下标 如果要查找的元素比中间…

Perl下载器:一步步教你抓取Amazon网站数据

引言&#xff1a;掌握数据&#xff0c;掌握未来 在这个信息爆炸的时代&#xff0c;数据就是新石油。但如何有效地获取和利用这些数据呢&#xff1f;爬虫技术是关键。今天&#xff0c;我们将深入探讨如何使用Perl语言编写一个下载器&#xff0c;以Amazon网站为例&#xff0c;教…

.Net使用ElasticSearch

文章目录 前言主体内容一.Kibana中ElasticSearch的基础操作1.GET&#xff08;查询&#xff09;1.POST&#xff08;新增&#xff09;1.PUT&#xff08;修改&#xff09;1.DELET&#xff08;删除&#xff09; 二.在.Net中&#xff0c;对ElasticSearch进行基础操作1.DotNet连接Ela…

【爬虫逆向】Python逆向采集猫眼电影票房数据

进行数据抓包&#xff0c;因为这个网站有数据加密 !pip install jsonpathCollecting jsonpathDownloading jsonpath-0.82.2.tar.gz (10 kB)Preparing metadata (setup.py) ... done Building wheels for collected packages: jsonpathBuilding wheel for jsonpath (setup.py) .…

Acwing-基础算法课笔记之动态规划(区间DP)

Acwing-基础算法课笔记之动态规划&#xff08;区间DP&#xff09; 一、石子合并1、定义2、闫氏DP分析法3、模拟过程4、代码示例 一、石子合并 1、定义 设有 N N N堆石子排成一排&#xff0c;其编号为 1 1 1&#xff0c; 2 2 2&#xff0c; 3 3 3&#xff0c;…&#xff0c; N…

SAP前台处理:销售业务集成<VA03/VL03N/VLPOD/VF03) 02/02

接上一章节&#xff1a; 下方&#xff1a;按照行项目显示&#xff1a;物料信息、数量信息、地点信息&#xff08;工厂、移动类型、库位&#xff09;、批次信息、科目分配信息&#xff08;科目分配对象&#xff09; 点击FI凭证&#xff0c;跳转到成本结转凭证或发出商品凭证界…

微信小程序的页面制作---常用组件及其属性

微信小程序里的组件就是html里的标签&#xff0c;但其组件都自带UI风格和特定的功能效果 一、常用组件 view&#xff08;视图容器&#xff09;、text&#xff08;文本&#xff09;、button&#xff08;按钮&#xff09;、image&#xff08;图片&#xff09;、form&#xff08…

大数据 - Spark系列《十三》- spark调度流程(运行过程)

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

完美解决 RabbitMQ可视化界面Overview不显示折线图和队列不显示Messages

问题场景&#xff1a; 今天使用docker部署了一个RabbitMQ&#xff0c;浏览器打开15672可视化页面发送消息后不显示Overview中的折线图&#xff0c;还有队列中的Messages&#xff0c;因为我要看队列中的消息数量。 解决方案&#xff1a; 进入容器内部 docker exec -it 容器id…