这个人是GAN生成的?瞳孔形状判断下吧

2023-11-23 12:10
文章标签 判断 生成 形状 gan 瞳孔

本文主要是介绍这个人是GAN生成的?瞳孔形状判断下吧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“机器学习与生成对抗网络”,关注星标

获取有趣、好玩的前沿干货!


  新智元报道  

来源:arXiv 编辑:好困 新智元 

【新智元导读】定「睛」一看,就能区分照片真假?近日,来自纽约州立大学的华人研究员提出了一种全新的检测方法,可以根据眼睛形状判断人像的真假。不过,前提是你能把图放得了这么大才行。

现在,利用GAN生成的人脸几乎真实到让「肉眼」检测都达到了瓶颈。

比如说,https://thispersondoesnotexist.com/,在这上每刷新一次都会生成一幅让你真假难辨的人脸。

 

不过,既然这些人脸是基于深度学习生成的,那我们就用魔法去打败魔法!

 

真实的人像(左),GAN生成的人像(右)

 

最近的研究表明,基于深度学习模型的检测方法确实可以提供了不少可行的方案。

 

然而,这些方法通常面临两个挑战:

  1. 检测结果缺乏可解释性;

  2. 由于过拟合导致在不同的合成方法中,泛化的稳健性很低。

 

为了消除这些限制并探索一个更稳健的模型,来自纽约州立大学奥尔巴尼和布法罗分校的华人研究员提出了一种全新的方法,通过不规则的瞳孔形状检测出GAN生成的人脸。

 

论文地址:https://arxiv.org/pdf/2109.00162.pdf

 

结果表明,从两只眼睛中提取瞳孔并分析它们的形状,可以有效区分GAN生成的人脸和真实的人像照片。

 

真实的人眼(左4),GAN生成的人眼(右4)

 

论文的主要贡献有三个方面:

 

  1. 发现不规则的瞳孔形状广泛存在于高质量的StyleGAN生成的人脸中,这与真实的人类瞳孔不同。

 

  1. 提出了一种新的基于生理学的方法,可以使用不规则的瞳孔形状作为检测GAN生成的人脸的依据,并且简单而有效。

 

  1. 提出的方法不仅可以用于设计自动检测方法,而且也给利用「肉眼」区分GAN生成的人脸提供了一个新的线索。

 

眼睛不会骗人

作者从人眼的主要解剖部位着手进行研究,眼睛的中心是虹膜和瞳孔,而白色区域是巩膜。

 

 

对于一个普遍意义上健全的人来说,瞳孔的形状是近乎圆形的。然而,在GAN生成的眼睛部分,可以观察到明显的伪影和不一致,如瞳孔的边界不是椭圆形的。

 

人眼的解剖结构

真实的眼睛(左),瞳孔为明显的圆形或椭圆形(黄色);GAN生成的眼睛(右),瞳孔为不规则的形状(红色)

 

这种现象普遍存在于GAN生成的人脸上,其中一个根本原因是,目前的GAN模型缺乏对人眼解剖学的理解,特别是瞳孔的几何形状。

 

方法实现

作者利用模型对两只眼睛的瞳孔进行自动提取,并在之后评估这些瞳孔的形状是否为椭圆形。

 

1. 瞳孔分割和边界检测

 

首先通过人脸检测器来定位人脸,然后用提取器获得人脸的landmark。

 

在对两只眼睛对应的区域进行适当裁剪之后,使用EyeCool提取瞳孔的掩码及其边界。

 

(a)输入的高分辨率人脸图像;(b)裁剪的眼睛图像;(c)图像(b)的预测瞳孔掩码;(d)对(c)进行椭圆拟合后的瞳孔掩码

 

EyeCool是一个改进的基于U-Net的模型,可以同时对瞳孔和虹膜、内部和外部边界进行分割。

 

其中EfficientNet-B5被用作编码器,并在解码器中添加了一个边界注意块,以提高模型关注物体边界的能力。

 

此外,Dice损失和MSE损失都被用来训练模型,其中Dice损失被用来评估分割部分,MSE被用来计算边界热图的回归损失。

 

2. 椭圆拟合的瞳孔

 

利用基于最小平方的椭圆拟合方法可用于预测瞳孔掩码的外部边界,以估计椭圆拟合的瞳孔边界。

 

u为预测的瞳孔掩码的外边界上的点的坐标,利用最小二乘法找到一组参数θ,使数据点和椭圆之间的距离测量最小:

 

 

并通过最小化N个数据点上的代数距离平方之和来确定椭圆的大小:

 

 

3. 测量不规则瞳孔的形状

 

Boundary IoU(BIoU)可以用来对边界质量敏感的图像分割。

 

相比于平等对待所有像素的Mask IoU,BIoU计算的是预测和基准真相之间的边界轮廓在一定距离内掩码像素的IoU。

 

因此,作者使用BIoU来评估距离瞳孔外边界d像素范围内的瞳孔掩码像素。

 

其中P表示预测的瞳孔掩码,F表示椭圆的瞳孔掩码,参数d是距离边界的距离,控制测量对边界的敏感性。

 

左:预测的瞳孔掩码P和椭圆的瞳孔掩码F;

中:Pd和Fd是距离边界d以内的掩码像素(蓝色和黄色);

右:预测的瞳孔掩码和椭圆修正的瞳孔掩码的距离参数d之间的边界IoU计算。

 

此外,当把d放大到足以包括掩码内的所有像素时,BIoU就等于掩码IoU。为了使BIoU对边界质量更加敏感,可以减少参数d以忽略掩码内部像素。

 

预测的瞳孔掩码和椭圆的瞳孔掩码之间的BIoU得分的范围是[0, 1],较大的值表明瞳孔的边界与椭圆的形状更相似,那么人脸也更可能是真实的;否则就是用GAN模型生成的。

 

结果分析

数据集

 

真实人脸图像来自FlickrFaces-HQ(FFHQ)数据集,GAN生成的人脸由StyleGAN2创建。每个类别有1000张图像,分辨率为1024×1024。

 

结果

 

真实的人的瞳孔是清晰的椭圆形,这可以从预测的瞳孔掩码和椭圆的瞳孔掩码之间较高的BIoU分数中反映出来。然而,不规则瞳孔形状的伪影导致BIoU得分明显降低。

 

真实的人眼

 

GAN生成的人眼

 

此外,真实的人脸和GAN生成的人脸在BIoU得分的分布上有明显的区别。

 

真实的人脸和GAN生成的人脸在边界IoU上得分的分布情况

 

接收者操作特征(ROC)曲线,对应的AUC(ROC曲线下的面积)为0.94。

 

ROC曲线是基于边界IoU的得分,d=4

 

由此表明,不规则的瞳孔形状能有效地识别GAN生成的人脸,并用来与真实的人脸进行区分。

 

超参数分析

 

BIoU测量法有一个基本参数d,它表示与边界的距离。当d足够大时,BIoU将减少到Mask IoU,从而对边界不那么敏感,这就是为什么AUC分数随着d的增加而减少。

 

x轴表示超参数d的变化,y轴为AUC得分

 

局限性

 

  1. 当真实面孔的形状为非椭圆形时,可能会出现假阳性。例如瞳孔和虹膜区域的疾病。

 

由于瞳孔和虹膜区域的疾病和感染,导致的非椭圆形异常瞳孔

 

  1. 瞳孔上的遮挡或瞳孔分割失败也可能导致错误的预测。

 

遮挡和瞳孔周围的噪声以及瞳孔分割失败

 

整体而言,论文提出利用瞳孔进行区分的方法是非常有效的。

 

不过,前提是图像的分辨率足够高……

参考资料:

https://arxiv.org/pdf/2109.00162.pdf

猜您喜欢:

等你着陆!【GAN生成对抗网络】知识星球!  

CVPR 2021 | GAN的说话人驱动、3D人脸论文汇总

CVPR 2021 | 图像转换 今如何?几篇GAN论文

【CVPR 2021】通过GAN提升人脸识别的遗留难题

CVPR 2021生成对抗网络GAN部分论文汇总

经典GAN不得不读:StyleGAN

最新最全20篇!基于 StyleGAN 改进或应用相关论文

超100篇!CVPR 2020最全GAN论文梳理汇总!

附下载 | 《Python进阶》中文版

附下载 | 经典《Think Python》中文版

附下载 | 《Pytorch模型训练实用教程》

附下载 | 最新2020李沐《动手学深度学习》

附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 | 超100篇!CVPR 2020最全GAN论文梳理汇总!

附下载 |《计算机视觉中的数学方法》分享

这篇关于这个人是GAN生成的?瞳孔形状判断下吧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Python如何判断字符串中是否包含特殊字符并替换

《Python如何判断字符串中是否包含特殊字符并替换》这篇文章主要为大家详细介绍了如何使用Python实现判断字符串中是否包含特殊字符并使用空字符串替换掉,文中的示例代码讲解详细,感兴趣的小伙伴可以了... 目录python判断字符串中是否包含特殊字符方法一:使用正则表达式方法二:手动检查特定字符Pytho

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五