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

news2024/11/20 15:35:58

        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.coloradmin.cn/o/1525153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 时间系统调用

UNIX及LinuxQ的时间系统是由「新纪元时间」Epoch开始计算起。Epoch是指定为1970年1月1日凌晨零点零分零秒,格林威治时间。目前大部份的UNX系统都是用32位来记录时间,正值表示为1970以后,负值则表示1970年以前。 对于当前时间到Epoch 我们用两…

刷题日记——干碎那个BFS!(含国科大机试2021)

例题小引——迷宫问题 问题描述: 迷宫由n行m列的单元格组成(n,m都小于等于50),每个单元格要么是空地,要么是障碍物。 现请你找到一条从起点到终点的最短路径长度。 分析——(迷宫问题BFS解法) 使用BFS…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridRow)

栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题,保证不同设备上各个模块的布局一致性。 栅格容器组件,仅可以和栅格子组件(GridCol)在栅格布局场景中使用。 说明: 该组件从API Version 9开始支持。后续版本…

实战!wsl 与主机网络通信,在 wsl 中搭建服务器。学了计算机网络,但只能刷刷面试题?那也太无聊了!这篇文章可以让你检测你的计网知识!

前言(碎碎念):每次发布文章时,我都是一个纠结的过程。因为我给自己写笔记时,只需要记录自己不清晰或者易忘的知识点就可以了,但一旦想要作为文章发布,那么我就得考虑到很多人是纯新手&#xff0…

1TGE120011R1111变频器全国发货质保一年

1TGE120011R1111 ABB ABB的1TGE120011R1111是一个属于其TGE系列的小型断路器(也称为微型断路器或MCB)。这个系列的断路器主要用于低压配电系统,为电路提供过载和短路保护。以下是这款断路器的一些特点: 紧凑设计:TGE系…

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

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

2、鸿蒙学习-申请调试证书和调试Profile文件

申请发布证书 发布证书由AGC颁发的、为HarmonyOS应用配置签名信息的数字证书,可保障软件代码完整性和发布者身份真实性。证书格式为.cer,包含公钥、证书指纹等信息。 说明 请确保您的开发者帐号已实名认证。每个帐号最多申请1个发布证书。 1、登录AppGa…

AI美图设计室试用,可以生成PPT,以及模特试衣

文章目录 美图设计室试用 美图设计室试用 美图设计室是美图秀秀的公司推出的AI图像处理工具,其功能涵盖图片编辑、抠图、海报设计、文生图等常用的AI功能。尽管很多功能需要开通会员使用,但一些免费功能的表现也还不错,值得一用。 美图设计…

【解读】NIST网络安全框架CSF 2.0

2014年,NIST(美国国家标准与技术研究所,类似于中国的工信部)首次发布了网络安全框架CSF(Cybersecurity Framework),十年后,在2024年2月26日发布了重大更新(CSF 2.0)&…

【蓝屏分析】WHEA_UNCORRECTABLE_ERROR 问题分析与解决

背景信息 电脑名字电脑类型厂商使用时间magicbook14 2020款 R5 4500U笔记本电脑荣耀HONOR3年9个月 内存CPUGPU硬盘焊死在主板上焊死在主板上集显PCIe 4.0 NVMe M.2 固态 软硬件错误源确定 电脑莫名频繁随机蓝屏,由于在软件环境上无迹可寻推测是硬件问题 蓝屏画面…

Pretrain-finetune、Prompting、Instruct-tuning训练方法的区别

来自:【多模态】28、LLaVA 第一版 | Visual Instruction Tuning 多模态模型的指令微调_多模态指令跟随数据-CSDN博客 几种模型训练方法的区别: 1、Pretrain-finetune:先在大量数据集上做预训练,然后针对某个子任务做 finetune 2…

Python图像处理指南:PIL与OpenCV的比较【第136篇—PIL】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python图像处理指南:PIL与OpenCV的比较 图像处理在计算机视觉和图像识别等领域…

实现悲观协议,除了锁还能咋办?

相对乐观和局部悲观是一体两面的关系,识别它的要点就在于是否有全局有效性验证,这也和分布式数据库的架构特点息息相关。但是关于悲观协议,还有很多内容没有提及,下面我们就来填补这一大块空白。 悲观协议的分类 要先跳出来&…

Word使用通配符替换

1.通配符替换 使用([通配替换文本]) M-MM12-00([0123456789])-0([0123456789])([0123456789])-0([0123456789])([0123456789]) 2.根据自定义格式替换 根据格式、样式替换,如只替换标题的内容,不替换征文

ASP.NET 服务器控件

目录 一、使用的软件 1、下载 2、新建文件(写一个简单的web网页) 二、相关知识点 1、Web窗体网页的组件 (1)可视化组件 (2)用户接口逻辑 2、Web Form网页的代码模型 (1)单文件…

STM32的USART能否支持9位数据格式话题

1、问题描述 STM32L051 这款单片机。平常的 USART 串口传输是 8 位数据,但是他的项目需要用串口传输 9 位数据。当设置为 8 位数据时,串口响应中断正常。但是,当设置为 9 位数据时,串口就不产生中断了。USART2 的 ISR 寄存器 RXN…

前端基础篇-深入了解 JavaScript(一)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 JavaScript 概述 2.0 JS - 引入方式 3.0 JS - 基础语法 4.0 JS - 数据类型 5.0 JS - 函数 6.0 JS - Array 数组 7.0 JS - String 字符串 1.0 JavaScript 概述…

Java推荐算法——特征加权推荐算法(以申请学校为例)

加权推荐算法 文章目录 加权推荐算法1.推荐算法的简单介绍2.加权推荐算法详细介绍3.代码实现4.总结 1.推荐算法的简单介绍 众所周知,推荐算法有很多种,例如: 1.加权推荐:分为简单的特征加权,以及复杂的混合加权。主要…

Qt文件读写

做一个简单的文件读写,我们把一个结构体内的数据写入到二进制文件中,并重新读取解析。代码结构如下: 项目名称随便起就好了。main.cpp是主函数;DataHandler实现文件的写与读,还要模拟过程;Definition.h放置…

蚁群算法实现 - 全局路径规划算法

参考博客: (1)【人工智能】蚁群算法(密恐勿入) (2)计算智能——蚁群算法 (3)蚁群算法(实例帮助理解) (4)【数之道 04】解决最优路径问题的妙招-蚁群ACO算法 (…