人脸识别——探索戴口罩对人脸识别算法的影响
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 作为同时识别遮挡和未遮挡面部图像的系统表现最佳。
在识别被遮挡的人脸图像时,在更多被遮挡的人脸图像上训练的模型的准确率呈上升趋势,但与此同时,在识别未被遮挡的图像时,准确率呈下降趋势。
相关文章:
人脸识别——探索戴口罩对人脸识别算法的影响
1. 概述 人脸识别是一种机器学习技术,广泛应用于各种领域,包括出入境管制、电子设备安全登录、社区监控、学校考勤管理、工作场所考勤管理和刑事调查。然而,当 COVID-19 引发全球大流行时,戴口罩就成了日常生活中的必需品。广泛使…...
磁盘管理后续——盘符漂移问题解决
之前格式化磁盘安装了文件系统,且对磁盘做了相应的挂载,但是服务器重启后挂载信息可能有问题,或者出现盘符漂移、盘符变化、盘符错乱等故障,具体是dev/sda, sdb, sdc 等等在某些情况下会混乱掉 比如sda变成了sdb或者sdc变成了sdb等…...
基于GO 写的一款 GUI 工具,M3u8视频下载播放器-飞鸟视频助手
M3u8视频下载播放器-飞鸟视频助手 M3u8视频飞鸟视频助手使用m3u8下载m3u8 本地播放 软件下载地址m3u8嗅探 M3u8视频 M3u8视频格式是为网络视频播放设计,视频网站多数采用 m3u8格式。如腾讯,爱奇艺等网站。 m3u8和 mp4的区别: 一个 mp4是一个…...
关于EasyExcel导入数据时表格日期格式识别为数字问题
参考官方地址 自定义日期转字符串转换器 /*** 自定义excel日期转换器** author li* date 2024-05-29*/ public class CustomStringDateConverter implements Converter<String> {Overridepublic Class<?> supportJavaTypeKey() {return String.class;}Overridep…...
高通Android 12/13打开省电模式宏开关
1、添加到SettingsProvider配置项宏开关 默认节电助手自动开启百分比battery saver frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java private void loadGlobalSettings(SQLiteDatabase db) {在该方法中添加 ......final i…...
2023年西安交通大学校赛(E-雪中楼)
E.雪中楼 如果算出按南北的序列,再转成从低到高的编号序列,岂不是太麻烦了,幸好,没有在这方面费长时间,而是意识到,本质就是要从低到高的编号序列,所以我就按样例模拟了一下,当a[i]0…...
如何在vue2中使用tailwind
查看官方文档,不要去看过时的文章! 使用官网推荐的第一个安装方法 Installation - Tailwind CSS vue版本:2.6.10 1. 安装tailwind的包 npm install -D tailwindcss npx tailwindcss init 2. tailwind.config.js 文件中的content是你需要…...
【OrangePi AIpro】开箱初体验以及OAK深度相机测试
1. 简介 Orangepi AIPRO 是一款采用昇腾AI技术路线,集成4核64位处理器AI处理器的单板计算机,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接eMMC模块,支持双4K高清输出。 Orange Pi AIpr…...
滑动窗口模板(Java)
题目描述 有一个长为 𝑛 的序列 𝑎,以及一个大小为 𝑘 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如,对于序列 [1,3,−1,−3,5,3,6,7] …...
transformers.BertTokenizer入门使用
教程link 示例代码 from transformers import OpenAIGPTLMHeadModel, GPT2LMHeadModel, BertTokenizer import torch tokenizer BertTokenizer.from_pretrained("thu-coai/CDial-GPT_LCCC-large") model OpenAIGPTLMHeadModel.from_pretrained("thu-coai/CD…...
快乐数-力扣
使用一个set来存储遇到的每个数,如果遇到的数在set中,那么说明这个数不是快乐数,否则一直循环下去,直到n 1结束循环,表示这个数是个快乐数。 需要注意的是,给定一个数 n, 怎样对这个数 n 进行每一位求和。…...
Git标签的使用
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
【uni-app】Pinia 持久化
小程序端 Pinia 持久化 说明:Pinia 用法与 Vue3 项目完全一致,uni-app 项目仅需解决持久化插件兼容性问题。 持久化存储插件 安装持久化存储插件: pinia-plugin-persistedstate pnpm i pinia-plugin-persistedstate插件默认使用 localStor…...
Flink 窗口
窗口(Window) 窗口是处理无限流的核心。 窗口将流分割成有限大小的“桶”,我们可以计算窗口中的数据。 窗口程序一般有键控流(keyed streams)的窗口程序 和 非键控流(non-keyed streams)的窗口…...
基于大模型和RAG技术实现的开源项目
基于大模型和RAG技术实现的开源项目 为解决大模型的不足,使用RAG技术增强大模型生成内容的针对性和可读性能力,有很多不错的开源项目。例如下面的项目。 1 ragflow 优点:可以对文档和知识库进行管理,构建不同的知识库ÿ…...
mac m1安装homebrew管理工具(brew命令)完整流程
背景 因为mac上的brew很久没用了,版本非常旧,随着mac os的更新,本机的homebrew大部分的功能都无法使用,幸好过去通过brew安装的工具比较少,于是决定重新安装一遍brew。 卸载旧版brew 法一:通过使用线上…...
Liunx学习随笔
Linux学习随笔 Linux学习随笔一.前期准备1.安装Vmware Workstation软件2.下载linux镜像3.安装操作系统4.配置静态ip5.下载安装远程连接工具 二.语法2.1 linux哲学思想(原则)2.2 小命令 夕阳无限好,只是近黄昏,时隔一年,重新提笔 没有比脚更远…...
mac中文件夹怎么显示.git隐藏文件
1. 打开终端应用程序,然后进入到包含.git文件夹的目录,可以使用以下命令来显示隐藏文件和文件夹: defaults write com.apple.finder AppleShowAllFiles YES 2. 然后重启 Finder: killall Finder...
【PB案例学习笔记】-13 徒手做个电子时钟
写在前面 这是PB案例学习笔记系列文章的第11篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…...
Java多线程——线程强制执行
Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞。 可以想象成插队。 代码演示: //测试Join方法 //想象为插队 public class TestJoin implements Runnable{Overridepublic void run() {for (int i 0; i < 1…...
【稀缺首发】Midjourney达达主义风格提示工程白皮书:含89组对比实验数据+12个独家种子编号(限前500名下载)
更多请点击: https://intelliparadigm.com 第一章:达达主义在AI图像生成中的哲学解构 达达主义并非技术流派,而是一场对逻辑、秩序与意义权威的激进质疑——这一精神正悄然渗透至当代AI图像生成的核心机制中。当Stable Diffusion接收“一只会…...
Unity游戏开发集成MCP协议:AI助手自动化操作指南
1. 项目概述:Unity游戏开发中的MCP革命如果你是一名Unity开发者,最近可能已经注意到一个名为“CoderGamester/mcp-unity”的项目在GitHub上悄然走红。这不仅仅是一个普通的插件或工具包,它代表了一种全新的工作流范式,旨在将大型语…...
Claude API企业准入最后窗口期:2024Q3起强制启用OAuth 2.1+硬件级密钥绑定,现在不升级将无法续签
更多请点击: https://intelliparadigm.com 第一章:Claude API企业准入政策的演进与合规紧迫性 随着Anthropic对Claude模型商用边界的持续收束,企业级API接入正从“技术可用性”转向“治理可验证性”。2024年Q2起,所有新注册企业账…...
DLP/SLA光固化3D打印技术解析与Ember打印机实战指南
1. DLP/SLA 3D打印技术深度解析:从光与树脂的对话说起如果你是从FDM(熔丝制造)打印转向树脂打印的,那感觉就像从开手动挡卡车换到了开精密数控机床。DLP(数字光处理)和SLA(立体光刻)…...
基于意图与技能解耦的智能对话系统构建指南
1. 项目概述:一个意图与技能驱动的AI对话引擎最近在折腾AI应用开发,特别是对话型AI助手时,发现一个核心痛点:如何让AI不仅能理解用户说了什么(意图识别),还能精准地调用相应的功能(技…...
开源AI代码助手实践:从数据到部署的全链路解析
1. 项目概述:从“copaw-code”看AI代码助手的开源实践最近在GitHub上看到一个挺有意思的项目,叫“QSEEKING/copaw-code”。光看这个名字,可能有点摸不着头脑。“copaw”这个词,听起来像是“co-pilot”(副驾驶ÿ…...
解锁Midjourney V6黑白摄影隐藏指令:5个未公开--stylize与--sref协同技法,92%用户至今不会用
更多请点击: https://intelliparadigm.com 第一章:Midjourney V6黑白摄影的美学本质与技术觉醒 黑白摄影在 Midjourney V6 中已超越简单的色彩剥离,成为一场基于对比度张力、纹理显影与光影叙事的深度建模重构。V6 的隐式扩散架构强化了灰阶…...
PowerInfer:基于稀疏激活的LLM推理引擎,消费级GPU运行百亿大模型
1. 项目概述:当大模型推理遇见“热点激活”最近在折腾本地大模型部署的朋友,可能都绕不开一个核心痛点:显存。动辄几十GB的模型,配上动辄几十GB的推理显存需求,让消费级显卡(比如我们常见的24GB显存的RTX 4…...
Cesium动态泛光效果实战:手把手教你用d3kit插件打造炫酷城市光效(附完整代码)
Cesium动态泛光效果实战:手把手教你用d3kit插件打造炫酷城市光效(附完整代码) 当夜幕降临,城市天际线被霓虹灯勾勒出流动的轮廓,这种视觉冲击力正是现代三维可视化项目的灵魂所在。本文将带你用d3kit这个轻量级插件&am…...
FTDI Friend:从USB转串口到AVR编程的嵌入式开发利器
1. 项目概述:为什么你需要一个FTDI Friend?在嵌入式开发和单片机玩家里,串口通信就像空气和水一样基础且不可或缺。无论是给Arduino上传代码,还是让树莓派和传感器模块“说上话”,亦或是调试一个自己焊的STM32最小系统…...
