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

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

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

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("