人脸识别——探索戴口罩对人脸识别算法的影响

1. 概述

人脸识别是一种机器学习技术,广泛应用于各种领域,包括出入境管制、电子设备安全登录、社区监控、学校考勤管理、工作场所考勤管理和刑事调查。然而,当 COVID-19 引发全球大流行时,戴口罩就成了日常生活中的必需品。广泛使用的人脸识别技术受到严重影响,传统人脸识别技术的性能显著下降。虽然在过去几年中已有报道称支持口罩的人脸识别模型达到了一定的准确度,但佩戴口罩对人脸识别的影响尚未得到充分研究。
因此,本文比较并评估了多种人脸识别模型在辨别 "蒙蔽 "和 "未蒙蔽 "人脸图像时的性能。本文使用了六种传统的机器学习算法:支持向量机(SVC)、K 近邻(KNN)、线性判别分析(LDA)、决策树(DT)、逻辑回归(LR)和天真贝叶斯(NB)。(深度学习模型尚未经过验证)。
它研究了蒙面人脸图像的最佳和最差性能模型。论文还根据一个蒙面和未蒙面人脸图像数据集以及一个半蒙面人脸图像数据集对性能进行了评估。与以往的研究相比,本文的独特之处在于研究了广泛的面具佩戴数据和机器学习模型。
论文地址:https://arxiv.org/pdf/2306.08549.pdf

2. 机器学习模型和数据集

本文评估了六种模型:支持向量机(SVC/Support Vector Classifier)、线性判别分析(LDA/Linear Discriminant Analysis)、K-近邻(KNN/K-Nearest Neighbours)、决策树(DT/Decision Trees)、逻辑回归(LR/Logistic Regression)和奈夫贝叶斯(NB/Naïve Bayes)。(DT/决策树)、逻辑回归(LR/逻辑回归)和奈夫贝叶斯(NB/奈夫贝叶斯)。

该数据集还使用了 (ORL),其中包含 41 个受试者和每个受试者 10 张图像,共计 410 张未掩盖的人脸图像。下图显示了 ORL 的样本数据。

本文使用开源软件 MaskTheFace 为 ORL 人脸图像添加面具,并制作出佩戴面具的人脸图像。佩戴的面具是从六个面具模板中随机选择并添加的。下图显示了添加面具后的样本数据。

2. 实验细节

本文使用上述机器学习模型和数据集进行了六项实验。请注意,在所有实验中,特征提取都使用了局部二进制模式(LBP)算法。

**(实验 1)**在为 41 名受试者每人准备的 10 幅图像中,有 9 幅被用作未戴面罩的人脸图像,并对 6 个机器学习模型进行训练。在为 41 名受试者每人准备的 10 张图像中,剩下的一张也用作无遮罩的人脸图像,并对每个机器学习模型进行测试。

(实验 2)在为 41 名受试者每人准备的 10 张图像中,9 张作为未戴面罩的人脸图像用于训练 6 个机器学习模型。在为 41 名受试者每人准备的 10 张图像中,剩下的一张图像将与 MaskTheFace 一起使用,作为戴面具的人脸图像对每个模型进行测试。图 3

(实验 3)在为 41 名受试者每人准备的 10 幅图像中,有 9 幅被用作戴了面具的人脸图像,并训练了 6 个机器学习模型。在为 41 名受试者每人准备的 10 张图像中,剩下的一张也被用作无面具人脸图像,用于测试每个机器学习模型。

(实验 4)在为 41 名受试者每人准备的 10 幅图像中,有 9 幅被用作戴上面具后的人脸图像,并训练了 6 个机器学习模型。然后,使用 MaskTheFace 将为 41 名受试者分别准备的 10 幅图像中的其余一幅图像作为戴上面具的人脸图像,对每个模型进行测试。图 4

(实验 5)在为 41 名受试者每人准备的 10 幅图像中,保留一幅图像用于测试,其余 9 幅图像中的 4 幅在 MaskTheFace 软件中组合为戴面具的人脸图像,4 幅为未戴面具的人脸图像,总共 8 幅人脸图像。这样就形成了一个半数人脸图像戴有面具的数据集。利用这个数据集,可以训练出六个机器学习模型,每个模型都要在一张未戴面具的人脸图像上进行测试。

**(实验 6)**使用实验 5 中创建的数据集训练了六个机器学习模型,该数据集由半张被遮挡的人脸图像组成,每个模型都在单张被遮挡的人脸图像上进行了测试。图 5

3. 实验结果

下表显示了六个机器学习模型在所有六个实验中的准确率。对于在未屏蔽人脸图像(UM)上训练并在屏蔽人脸图像(M)上测试的机器学习模型(UM/M),LDA 的准确率下降幅度最小,为 61%,而 KNN 的准确率下降幅度最大,为 24%。还可以看出,对于在蒙版人脸图像(M)上训练并在蒙版图像(M)上测试的机器学习模型,LR 的准确率最高,为 80%,而 KNN 的准确率最低,为 37%。

下表显示了六种机器学习模型在所有六次实验中的 F1 分数。对于在未遮挡人脸图像(UM)上训练并在遮挡人脸图像(M)上测试的机器学习模型,LDA 的 F1 分数最高,为 76%,KNN 的分数最低,为 39%。而对于一半在蒙蔽人脸图像(HM)上训练,一半在蒙蔽图像(M)上测试的模型,LR 的 F1 得分最高,为 89%,KNN 的得分最低,为 54%。在蒙蔽图像(M)上训练并在蒙蔽图像(M)上测试的模型中,LR 的 F1 得分最高,为 89%,DT 的得分最低,为 54%。

回顾下表(再次),我们可以看到,在未蒙面的人脸图像(UM)上训练和在未蒙面的人脸图像(UM)上测试时,最佳平均性能为 81%。这是很自然的结果,因为机器学习模型是基于人脸图像没有戴面具这一假设建立的。另一方面,当模型在未戴面具的人脸图像上训练并在戴面具的人脸图像上测试时,平均性能最低,仅为 45%。这表明,正如 Corona 灾难所报告的那样,在未戴面具的人脸图像上训练的模型并不适合识别戴面具的人脸图像。这与已报告的结果具有可重复性。

我们还发现,如果在一个由不戴面具的人脸图像或一半戴面具的人脸图像组成的数据集上进行训练,机器学习模型在蒙面人脸图像测试中的平均准确率会下降。如果机器学习模型在戴了面具的人脸图像上进行训练,则测试戴了面具的人脸图像的准确率会提高。

上表还显示,在所有三种类型的训练数据上,LR 在识别未蒙蔽人脸图像方面都优于其他模型。当在带有遮挡或半遮挡图像的数据集上进行训练时,LR 在识别遮挡图像方面优于其他模型。

对于需要识别遮挡和未遮挡面部图像的系统来说,最好在由半遮挡面部图像组成的数据集上进行训练,并使用 LR,如上表所示。

4. 总结

本文为了研究戴面具对机器学习模型的影响,使用支持向量机(SVC/Support Vector Classifier)、线性判别分析(LDA/Linear Discriminant Analysis)、K-近邻(KNN/K-Nearest NeighboursSVC/Support Vector Classifier)、线性判别分析(LDA/Linear Discriminant Analysis)、K-Nearest Neighbours(KNN/K-Nearest Neighbours)、决策树(DT/Decision Trees)、逻辑回归(Logistic Regression (LR/Logistic Regression)和奈夫贝叶斯(NB/Naïve Bayes),并使用六种机器学习模型进行了详尽的实验。

实验结果表明,在 "半遮挡和半未遮挡面部图像数据集 "上进行训练时,LR 作为同时识别遮挡和未遮挡面部图像的系统表现最佳。

在识别被遮挡的人脸图像时,在更多被遮挡的人脸图像上训练的模型的准确率呈上升趋势,但与此同时,在识别未被遮挡的图像时,准确率呈下降趋势。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go微服务: Grpc服务注册在Consul的示例(非Go-Micro)

概述 现在,我们使用consul客户端的api来把GRPC服务实现注册到consul上,非Go-Micro的形式其实,consul官方提供了对应的接口调用来实现,golang中的consul/api包对其进行了封装我们使用consul/api来进行展示 目录结构 gitee.com/g…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数,strstr()的使用介绍和模拟实现。 模拟实现这个函数,可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力,有兴趣的话就请往下看吧。 strstr函数介绍 函数功能: strstr函…

Hololens 2 新建自定义按钮

官方链接地址 1、创建Cube 2、添加PressableButton脚本,并点击AddNearin… 3、把Cube拖入到MovingButtonVisuals变量中 4、点击NearInteractionTouchable组件(这个组件是添加和上一个脚本绑定的,自动添加上来的)上的Fix… 5、…

网络之再谈体系结构

大家都知道的是网络的体系结构,现代软件常用的体系结构无非是TCP/IP协议栈,OSI因为实现复杂并且效率没有TCP/IP协议栈好,所以不用OSI,但是,最近在复习网络知识的时候,发现了一些奇怪的地方,那就…

ubuntu系统开启ssh密码登录

文章目录 前言 一、确认否有ssh服务 二、修改/etc/ssh/sshd_config配置文件 三、重启ssh服务 总结 前言 安装好ubuntu系统后,默认是无法通过密码远程shell连接的,需要修改配置文件。 一、确认否有ssh服务 我这边使用的是ubuntu 22.04 LTS的系统&a…

Java设计模式-活动对象与访问者

活动对象 Java设计模式中,活动对象是指一个对象始终处于活动的状态,该对象包括一个线程安全的数据结构以及一个活跃的执行线程。 如上所示,ActiveCreature类的构造函数初始化一个线程安全的数据结构(阻塞队列)、初始化…

算法练习——字符串

一确定字符串是否包含唯一字符 1.1涉及知识点 c的输入输出语法 cin>>s; cout<<"NO"; 如何定义字符串 切记&#xff1a;在[]中必须加数字——字符串最大长度&#xff0c;不然编译不通过 char s[101]; 如何获取字符串长度 char s[101];cin>>s;i…

深度学习:手撕 RNN(2)-RNN 的常见模型架构

本文首次发表于知乎&#xff0c;欢迎关注作者。 上一篇文章我们介绍了一个基本的 RNN 模块。有了 这个 RNN 模块后&#xff0c;就像搭积木一样&#xff0c;以 RNN 为基本单元&#xff0c;根据不同的任务或者需求&#xff0c;可以构建不同的模型架构。本节介绍的所有结构&#…

conda修改环境名称后,无法安装包,显示no such file

1问题描述 原本创建环境时设置的名字不太合适&#xff0c;但是因为重新创建环境很麻烦&#xff0c;安装很多包。。所以想直接对包名进行修改&#xff0c;本人采用的方式是直接找到conda环境的文件目录&#xff0c;然后修改文件名&#xff0c;简单粗暴。确实修改成功了&#xf…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十三)- 微服务(3)

6. Eureka 和 Nacos 对比 共同点 : 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 不同点 : 1.nacos支持服务端主动检测提供者状态&#xff0c;临时实例采用心跳模式&#xff0c;非临时实例采用主动检测模式 临时实例心跳不正常会被剔除&#xff0c;非临时实…

MySQL的安全性

给root用户设置密码 点击用户--下面三个账号双击--进行编辑 修改密码--修改完进行保存 关闭数据库后连接不上 重新编辑&#xff0c;设置密码 新建账号 填入信息--保存&#xff08;主机哪里要选择%&#xff09; 连接这个新的账号 点击连接--填写连接的名称&#xff0c;地址&…

安卓赤拳配音v1.0.2Ai配音神器+百位主播音色

Ai配音神器 本人自用版本&#xff01;超级稳定&#xff01;百位主播音色 登陆即可用 链接&#xff1a;https://pan.baidu.com/s/1WVsrYZqLaPAriHMMLMdPBg?pwdz9ru 提取码&#xff1a;z9ru

深度神经网络——什么是迁移学习?

1.概述 在练习机器学习时&#xff0c;训练模型可能需要很长时间。从头开始创建模型架构、训练模型&#xff0c;然后调整模型需要大量的时间和精力。训练机器学习模型的一种更有效的方法是使用已经定义的架构&#xff0c;可能具有已经计算出的权重。这是背后的主要思想 迁移学习…

从0开始带你成为Kafka消息中间件高手---第三讲

从0开始带你成为Kafka消息中间件高手—第三讲 实际上来说&#xff0c;每次leader接收到一条消息&#xff0c;都会更新自己的LEO&#xff0c;也就是log end offset&#xff0c;把最后一位offset 1&#xff0c;这个大家都能理解吧&#xff1f;接着各个follower会从leader请求同…

Facebook:连接世界,畅游社交之旅

作为全球最大的社交平台之一&#xff0c;Facebook不仅仅是一个网站&#xff0c;更是一个连接世界的桥梁&#xff0c;让人们可以轻松地与全球各地的朋友、家人和同事保持联系&#xff0c;分享生活、交流想法&#xff0c;畅游社交的无边界之旅。本文将带领读者探索Facebook的魅力…

php TP8 阿里云短信服务SDKV 2.0(跳大坑)

安装&#xff1a;composer require alibabacloud/dysmsapi-20170525 2.0.24 官方文档&#xff1a;短信服务_SDK中心-阿里云OpenAPI开发者门户 (aliyun.com) 特别注意&#xff1a;传入参数获得值形式 这样也不行 $sendSmsRequest new SendSmsRequest($addData); 还有一个大坑…

RFM模型-分析母婴类产品

1&#xff0c;场景描述 假设我们是某电商平台的数据分析师&#xff0c;负责分析母婴产品线的用户数据。母婴产品的购买行为具有一定的周期性和生命周期特征&#xff0c;如用户在不同怀孕阶段的需求不同&#xff0c;以及宝宝出生后的不同成长阶段需要不同的产品。 2&#xff0…

TCP/IP协议族

基于这张图片的一篇blog TCP/IP模型通常被分为四个层次&#xff1a;应用层、传输层、网络层和网络接口层。在这个模型中&#xff0c;不同的网络协议负责完成不同的任务&#xff0c;以确保数据可以在网络中高效、可靠地传输。以下是对这张图中每个协议的解释&#xff1a; 应用层…

【Linux】Socket中的心跳机制(心跳包)

Socket中的心跳机制(心跳包) 1. 什么是心跳机制&#xff1f;(心跳包) 在客户端和服务端长时间没有相互发送数据的情况下&#xff0c;我们需要一种机制来判断连接是否依然存在。直接发送任何数据包可以实现这一点&#xff0c;但为了效率和简洁&#xff0c;通常发送一个空包&am…

FPGA——eMMC验证

一.FPGA基础 1.FPGA烧录流程 (1) 加载流文件 —— bitfile (2) 烧录文件 —— cmm 二.MMC 1.基础知识 (1)jz4740、mmc、emmc、sd之间的关系&#xff1f; jz4740——处理器 mmc——存储卡标准 emmc——mmc基础上发展的高效存储解决方案 sd—— 三.eMMC和SD case验证 1.ca…