人脸识别——探索戴口罩对人脸识别算法的影响
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…...
AutoCut终极指南:如何用文本编辑器快速剪辑100个视频
AutoCut终极指南:如何用文本编辑器快速剪辑100个视频 【免费下载链接】autocut 用文本编辑器剪视频 项目地址: https://gitcode.com/GitHub_Trending/au/autocut 还在为手动剪辑视频而烦恼吗?AutoCut项目让你告别复杂的视频编辑软件,通…...
5分钟快速上手:使用res-downloader实现视频号批量下载的终极指南
5分钟快速上手:使用res-downloader实现视频号批量下载的终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader …...
终极qmcdump指南:5分钟掌握QQ音乐加密格式解密技巧
终极qmcdump指南:5分钟掌握QQ音乐加密格式解密技巧 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump qmcdump是…...
从开源物理拼图游戏学习Unity 2D物理引擎与游戏架构设计
1. 项目概述与核心价值 最近在GitHub上看到一个挺有意思的项目,叫“openclaw-puzzle-game”。光看名字,你可能会觉得这又是一个普通的开源拼图游戏,但点进去仔细研究后,我发现它的设计思路和实现方式,对于想学习游戏开…...
如何3分钟快速上手企业级后台管理系统:终极配置秘籍
如何3分钟快速上手企业级后台管理系统:终极配置秘籍 【免费下载链接】ant-design-vue3-admin 一个基于 Vite2 Vue3 Typescript tsx Ant Design Vue 的后台管理系统模板,支持响应式布局,在 PC、平板和手机上均可使用 项目地址: https://…...
开源技能图谱工具SkillPort:Go语言构建的知识管理利器
1. 项目概述:一个技能图谱与知识管理的开源利器 最近在整理个人技术栈和团队知识库时,我一直在寻找一个能直观展示技能关联、又能深度管理学习路径的工具。市面上的笔记软件要么太“平”,只能线性记录;要么太“重”,像…...
基于Stable Diffusion与LoRA技术打造个人AI头像:从原理到实战
1. 项目概述:当AI开始“自拍”——SelfyAI的定位与核心价值最近在AI图像生成领域,一个名为SelfyAI的项目引起了我的注意。它不是一个简单的文生图工具,而是瞄准了一个非常具体且高频的需求:生成高质量、风格一致的个人AI头像。简单…...
基于RAG的智能知识库问答系统:从原理到部署实战
1. 项目概述:当AI大模型遇见知识库,一个开源的智能问答解决方案 最近在折腾一个很有意思的开源项目,叫 zhimaAi/chatwiki 。光看名字,你大概能猜到它的核心: chat 代表对话, wiki 代表知识库。没错&a…...
基于GitHub Actions的自动化代码质量守护:CodeBuddy实战指南
1. 项目概述与核心价值最近在和一些团队做代码评审和协作时,我经常遇到一个痛点:大家写的代码风格各异,注释要么缺失要么过时,一些潜在的安全漏洞和性能问题在提交前很难被系统性地发现。虽然市面上有各种静态分析工具,…...
n8n-claw:在自动化工作流中实现零代码网页抓取
1. 项目概述与核心价值最近在折腾自动化工作流,发现了一个挺有意思的项目,叫freddy-schuetz/n8n-claw。乍一看名字,你可能会有点懵,“n8n”我知道,是那个开源的自动化工具,但这个“claw”是啥?爪…...
