人脸防欺骗——基于皮肤斑块的快速安全的生物识别实现人脸识别防欺骗方法

本文主要是介绍人脸防欺骗——基于皮肤斑块的快速安全的生物识别实现人脸识别防欺骗方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 概述

深度学习的进步促使面部识别技术在许多领域得到应用,例如在线身份验证(eKYC)和电子设备的安全登录。面部识别是一种生物识别技术,对安全性要求很高。近年来,为了提高人脸识别技术的可靠性,人们引入了人脸防欺骗(FAS)技术。然而,现有方法在实践中存在一些问题。在服务器端部署 FAS 模型,集成多个组件,会引发隐私和安全问题。由于用户的面部图像是通过网络传输并存储在服务器上的,因此隐私泄露的风险很高。此外,发送图像的过程非常耗时,会影响用户体验。

本文提出了一种新型面部防欺骗(FAS)模型,利用面部图像中的皮肤斑块来解决这些问题。传统方法会将整个面部图像发送到服务器,因此存在隐私泄露的风险,而本文提出的模型只将特定区域的皮肤发送到服务器。此外,传统方法需要花费大部分处理时间对要发送的图像进行加密和解密,而建议的模型只发送不包含任何个人身份信息的皮肤斑块,因此无需对图像进行加密和解密。

为了评估新方法的有效性和鲁棒性,我们从准确性和延迟等多个方面进行了实验,结果发现,该方法在保持低延迟的同时,还能高精度地检测伪造信息。 在安卓设备上演示时,该方法能准确检测伪造攻击,延迟时间小于 100 毫秒。
论文地址:https://arxiv.org/pdf/2308.04798.pdf

2. 算法架构

如上所述,传统人脸防欺骗技术的主要风险来自传输和存储图像的过程。例如,一个模型的加密和解密耗时约 240 毫秒,而主要功能–卷积神经网络(CNN)推理–仅需 20 毫秒。传输整个面部图像会造成严重的延迟,而且在存储数据时还会引发隐私问题。

以往的研究已经探讨了在人脸防伪应用中分离人脸图像结构和纹理的方法。基于补丁的人脸伪造检测算法主要有两种方法。一种是提取特定面部特征(如眼睛、鼻子、嘴巴)的补丁图像作为输入特征,如下图所示。另一种方法是通过将人脸分割成多个子补丁来提取人脸作为输入特征。然而,这两种方法都会带来隐私风险。此外,第一种方法需要为每个面部部分使用四个不同的模型,可能会造成相当大的计算负担。

以往的研究表明,面部皮肤贴片可有效地用作各种深度学习分类任务的输入,因此我们假设面部皮肤贴片也可用于面部防欺骗。

研究建议采用以下方法

我们将人脸识别反欺骗定义为一项区分真假人脸的分类任务。我们设计了一个模型来从图像中确定这一点,并使用特定的阈值来确定人脸的真假。然后,需要大量的人脸图像数据来训练这个模型。本文使用了一个名为 CelebASpoofing 的大型高质量图像数据集。在每次迭代中,都会使用 RetinaFace 对原始图像中的人脸区域进行裁剪。然后将裁剪后的面部图像输入脸部模型,以获得面部地标。这些地标用于识别与面部特征不重叠的皮肤斑块。提取的皮肤斑块不会包含个人身份信息。最终收集了 10,000 多个皮肤斑块,包括真实样本和不同类型的攻击实例。为了从面部图像中提取面部补丁,我们还使用了一种名为 “补丁提取模块”(PEM)的技术。面网模型用于识别输入面部图像上的地标。然后对人脸图像进行对齐,以提取高质量的人脸补丁。候选区域的选择侧重于那些缺乏显著面部特征的区域,尤其是左脸颊、右脸颊和下颌区域。CNN 用于从提取的斑块中提取特征。该模型将两个不同的斑块结合起来,以做出更准确的判断。

3. 实验结果

评估人脸防欺骗模型性能的三个指标是:攻击呈现分类错误率(APCER)、真实呈现分类错误率(BPCER)和平均分类错误率(ACER)。误差率(BPCER)和平均分类误差率(ACER)。这些指标的计算方法如下。

  • apcer = fp / (tn + tp)
  • bpcer = fn / (fn + tp)
  • acer = (apcer + bpcer) / 2

请注意,TP(真阳性)表示被正确分类为假的人脸图像,TN(真阴性)表示被正确分类为真的人脸图像,FP(假阳性)表示被错误分类为假的人脸图像,FN(假阴性)表示被错误分类为真的人脸图像。负)代表被错误归类为真实的假人脸图像。

在对所提方法进行性能评估时,使用了三个测试数据集:Rose-Youtu、MSU 和 Mobile-Replay。结果如下表所示。在三个不同的数据集上,与各种算法相比,所提出的模型表现出了卓越的性能。特别是,虽然 CDC 在所有数据集上都表现最佳,但本文提出的模型与 CDC 相比更加轻量级,使其在后端基础设施中的部署非常方便和实用。

此外,与 FaceDs 和 FASNet 等最先进的模型相比,所提出的模型取得了不相上下的结果,并明显优于 LBP 和色彩纹理等传统算法。结果表明,所提出的模型能有效地应对面部防欺骗的挑战。

此外,还对延迟进行了实验。反欺骗的处理时间包括图像传输、加密和解密以及模型推理。对传统模式(resnet34)和建议模式(双流 resnet34)的延迟时间进行了评估,结果如下表所示。

拟议模型的传输和推理时间略大于传统模型,但总体延迟仅为传统模型的 28%。省略加密和解密部分加快了整个过程。

4. 总结

本文提出了一种新颖的面部防欺骗模型,利用面部皮肤斑块作为输入特征。该方法无需传输面部图像,也无需对面部图像进行加密和解密。与传统方法相比,它消除了个人数据泄露的风险,并将反欺骗过程的时间大幅缩短至约四分之一。

这篇关于人脸防欺骗——基于皮肤斑块的快速安全的生物识别实现人脸识别防欺骗方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010561

相关文章

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者