图像处理之《用于统一源跟踪和深度伪造检测的深度可分离水印SepMark》论文精读

一、文章摘要

恶意的Deepfakes导致了一场关于区分真脸和伪造脸的激烈冲突。尽管已经制定了许多事后检测Deepfakes的对策,但毫无疑问,在可预见的操作之前,被动取证没有考虑对原始人脸采取任何预防措施。为了完成这个取证生态系统,我们提出了名为SepMark的主动式解决方案,该解决方案为源跟踪和Deepfake检测提供了统一的框架。SepMark源自基于编码器-解码器的深度水印,但具有两个可分离的解码器。SepMark首次提出了深度可分离水印,为已建立的深度水印研究带来了一种新的范式,即单个编码器优雅地嵌入一个水印,而两个解码器可以在不同的鲁棒性水平上分别提取水印。抗各种失真的鲁棒解码器Tracer可能具有过高的鲁棒性,使水印在Deepfake之前和之后都能存活。称为Detector的半鲁棒检测器对恶意失真选择性敏感,使水印在Deepfake之后消失。只有由Tracer和Detector组成的SepMark才能可靠地追踪被标记人脸的可信来源,并检测其自被标记以来是否发生了更改;两者都无法单独做到这一点。大量实验证明了所提出的SepMark在典型Deepfakes上的有效性,包括人脸交换、表情重现和属性编辑。代码将在https://github.com/sh1newu/SepMark。

二、文章提出的方法

2.1 问题陈述

SepMark致力于事先确保哪些是真实的,并追踪其可信来源,而不是事后检测哪些是伪造的。这种主动取证应该提前对原始人脸进行处理,其中“原始”意味着SepMark在本文中没有对人脸进行处理。在现实世界中,一个值得信赖的内容出版商会将他/她的原始面孔上传到社交网络上,并向任何人公开。不幸的是,一些敌对的个人可能会下载人脸并操纵它来传播错误信息,这会对社会信任和公众利益造成严重影响。此外,依靠事后取证,Deepfakes的传播在得到证实之前无法立即阻断。

这是一个关于图3所示的建议的主动取证的更具说明性的例子。为了为原始人脸提供预防措施和更可靠的证据,SepMark提前在人脸中嵌入了一个水印(图3-a),如发布者标识和时间戳,可以识别标记人脸的可信来源,同时表明已由SepMark处理。随后,嵌入的水印可以在不同的鲁棒性级别上被单独提取。具体来说,在对图像语义影响不大的常见失真下,鲁棒和半鲁棒水印都可以正确提取(图3-b),如JPEG压缩、调整大小、对比度调整等。相反,在本文主要解决的Deepfake等恶意失真下(图3-c),鲁棒水印仍然可以正确提取,而半鲁棒图像被错误地提取,这意味着人脸图像自被标记以来已经被改变。通过这种方式,任何个人或社交网络都可以验证人脸的原始来源是否来自值得信赖的出版商。此外,即使在不知道原始水印的情况下,也可以比较两个提取的水印,以确定标记的人脸在发布后是否被操纵,并阻止具有不匹配水印的可疑图像的进一步传播。总之,SepMark在不知道原始图像的情况下完成了Deepfake的来源跟踪和盲检测。

图3 主动取证的说明性例子。(a)值得信赖的发布者Alice将她的身份嵌入到发布的人脸中。(b)围观演员Bob在不影响内容语义的情况下转发了这张脸。©对手演员Eve操纵这张脸来歪曲事实

根据图4,让我们详细制定SepMark。给定任意一张原始人脸(也称为封面图像Ico),编码器En将编码信息Men嵌入到图像Ico中,从而获得编码图像Ien。之后,可分离示踪器Tr和探测器 De分别从常见或恶意失真的图像Ino中提取消息Mtr和Mde。因此,根据可分离的解码器Tr和De,我们可以将主动取证分为以下几种情况。

情况1:如果鲁棒解码器Tr可用,则无论标记的图像是否受到普通或恶意失真的噪声,都期望提取的Mtr始终与嵌入的Men相同,以可靠地跟踪可信源。

情况2:如果有半鲁棒解码器De,它可以从常见的失真图像中提取正确的信息,但从恶意失真的图像中提取错误的信息,以区分失真的类型。

情况3:只有当解码器Tr和De同时可用时,才能同时实现对可信源的跟踪和恶意失真的检测。更具体地说,如果Mde≈Men或Mde≈Mtr,SepMark将表明该脸是真实的,并且来自可信来源Mtr。否则,如果MdeMen或MdeMtr,则该人脸自被标记以来已被伪造,必要时可从来源Mtr进一步获取可信的原件。
在这里插入图片描述
图4 SepMark的整体架构。编码器En接收封面图像Ico和编码后的消息Men作为输入,产生编码后的图像Ien。随机前向噪声池RFNP在分离的前向传播中对不同类型的伪噪声gap进行采样,并在标准的前向和后向传播中与Ien相互作用,从而产生常见或恶意失真的图像Ino。示踪器Tr从任意失真的图像中提取与Men相同的信息Mtr。该检测器De从常见的失真图像中提取正确的信息,但从恶意失真图像中提取错误的信息。此外,还使用PatchGAN Ad来区分每个原始和编码的图像patch。

2.2 模型架构

为了实现深度可分离水印的端到端训练,我们提出的SepMark由单个编码器En,一个随机前向噪声池RFNP,两个可分离的解码器Tr和De,以及一个额外的对手判别器Ad组成,如图4所示。简而言之,1)En接收一批Ico∈RB×3×H×W和一批Men∈{-a,a}B×L生产Ien;2)RFNP随机抽取不同的失真作为伪噪声,并与Ien相互作用,得到Ino;3)Tr和De分别从Ino中提取出不同鲁棒性水平的Mtr和Mde;4)Ad为Ien的每个图像片段相对于Ico进行原始或编码分类。

三、实现细节

3.1 数据集

实验主要在CelebA-HQ上进行[37,39],其中使用了24183/2993/2824张人脸图像进行训练、评估和测试,参考了CelebA[50]的官方拆分。此外,采用CelebA的测试集(包含19962张人脸图像)和COCO[46]的评估集(包含5000张常见物体图像)来评估泛化性。除特别说明外,否则由于计算资源的限制,所有图像都调整为128 × 128和256 × 256两种分辨率。恶意失真选择SimSwap[8]、GANimation[60]和StarGAN[10],因为它们是典型的Deepfakes,分别属于代表性的人脸交换、表情再现和属性编辑。其中,用于交换的目标人脸是从CelebA的评估集中随机选择的,用于再现的目标表情是从驾驶图像“eric_andre”中随机选择的,我们编辑的属性集是{Male,Young,BlackHair, BlondHair, BrownHair},所有这些都是基于他们发布的预训练模型来实现的,从而得到令人信服的Deepfakes。注意,只有在测试GANimation时,OpenFace[3]才会进一步去除人脸图像的背景,以匹配输入的要求。不失一般性,一组常见的扭曲是{Identity,JpegTest,Resize,GaussianBlur,MedianBlur,Brightness,Contrast,Saturation,Hue,Dropout,SaltPepper,GaussianNoise}。上述失真的详细参数如图5底部所示。请注意,裁剪不包括在集合中,因为它很难理解为整个脸部的常见失真
在这里插入图片描述
图5 典型失真下的主观视觉质量。从上到下是封面图片Ico,编码图像Ien,噪声图像Ino,N(|Ico-Ien|)和N(|Ino-Ien|)的残余信号,其中N(I)=(I -min(I))/(max(I)-min(I))。每一列对应一种失真。图像大小:128 ×128。有关更多恶意失真,请参见附录A.1

3.2 实验参数

我们的SepMark由PyTorch[58]实现,并在NVIDIA RTX 4090上执行。由于我们解决了许多失真而不是特定的一个,因此SepMark使用组合训练方式,其中噪声池由所有常见失真和恶意失真组成,即SimSwap, GANimation和StarGAN(男性)。整个训练持续了100个epoch,批大小为16,根据经验,我们调整了Adam优化器[38],其中lr=0.0002,β1 =0.5用于稳定的对抗训练。此外,在我们的训练中,公式(11)中的λ1,λ2,λ3,λ4,λ5分别被设置为0.1,1,10,10,10。直观地说,我们的SepMark中的消息范围a设置为0.1,我们显示a对于消融研究中视觉质量和鲁棒性之间的权衡至关重要。

3.3 基线

据我们所知,这是关于深度可分离水印的第一次工作,因此我们必须采用鲁棒的水印方法,如MBRS [34], CIN [52], PIMoG[16]和脆弱的水印方法FaceSigns[56]作为我们的基线。两个独立的模型,一个对大小为128 × 128的图像和长度为30的消息进行训练,另一个对大小为256 × 256的图像和长度为128的消息进行训练,与基线的预训练模型进行比较,以证明SepMark的有效性。

3.4 评价指标

为了评估客观视觉质量,我们报告了整个测试集中编码图像的平均PSNR、 SSIM和LPIPS[84]。对于鲁棒性检验,使用平均误码率(BER)作为默认的评估指标。在我们的SepMark中,半鲁棒检测器在恶意失真下的误码率应该接近50%;在其他情况下,示踪剂和检测器的误码率应接近0%。假设嵌入的消息ME和提取的消息MD,形式上:
在这里插入图片描述

请注意,我们严格调整了基准的B(·),使其与原始设置相同,避免影响基准的性能。

四、汇报PPT

4.1 相关工作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 方法学
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.3 实验结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.4 创新点
在这里插入图片描述
五、代码运行

  • pip install pyyaml
  • pip install easydict
  • pip install kornia
  • 注释DW_EncoderDecoder.py中的第四行语句:from .Noise import Noise
  • pip install opencv-python
  • pip install dlib
  • pip install lpips
  • pip install scikit-image
  • 运行test_Dual_Mark.py(注意修改cfg\test_DualMark.yaml的noise_layer参数-常见失真和恶意失真(需要特殊处理))
  • 修改\results\Dual_watermark_256_128_0.1_0.0002_0.5_se_se_1_10_10_10_0.1_2023_04_18_16_29_54\train_DualMark.yaml中的数据集地址为:
    dataset_path: /root/SepMark-main/home/likaide/sda4/wxs/Dataset/dual_watermark/
    运行成功会在
  • \results\Dual_watermark_256_128_0.1_0.0002_0.5_se_se_1_10_10_10_0.1_2023_04_18_16_29_54\images生成一张图像,yaml文件和txt文件

注意参考开源代码的ReadMe文件,根据所给网址需要下载许多文件(大约几十个G)

The implementation of the paper "SepMark: Deep Separable Watermarking for Unified Source Tracing and Deepfake Detection".
Paper Link: https://doi.org/10.1145/3581783.3612471Update (11/3/2023) We have put all the noise layers and datasets into Google Drive due to the file sizes; see the README file please. Hopefully, all goes well, but we never guarantee that you'll be able to run it directly without any Debug. How to replicate/use the code? For me, when everything above is ready, it is enough to modify the configuration file in the cfg folder and run the test/main file successfully. So, Debug is all you need! If there are any missing uploads, please feel free to contact me.We provide the models of SepMark that were trained using SimSwap(), GANimation(), and StarGAN (Male) here. Due to license agreements, we are unable to distribute their codes ourselves. However, we believe that you can re-implement them or other Deepfakes on your own. Here are some links to their repositories, including SimSwap, GANimation, StarGAN, FaceSwap, Roop, and MobileFaceSwap. Best Wishes.The code is strictly for non-commercial academic use only.
Contact: xinliao@hnu.edu.cn / shinewu@hnu.edu.cn

论文地址:SepMark: Deep Separable Watermarking for Unified Source Tracing and Deepfake Detection

开源代码:SepMark

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

月薪2W的软件测试工程师,到底是做什么的?

在生活中,我们常常会遇到以下几种窘迫时刻: 准备骑共享单车出行,却发现扫码开锁半天,车子都没有反应;手机导航打车,却发现地图定位偏差很大,司机总是跑错地方;买个水,却…

Redis实战之-分布式锁-redission

一、分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题: 重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都…

​第14节-高质量简历写作求职通关-在线测试

在线测试主要包括性格测试、综合能力测试、技能测试三类 性格测试 性格测试主要用于考察个人与工岗位的匹配程度 考察内容包含性格、能力、动机、价值观等,考察形式一般为给出相应的工作场景,让你选择最喜欢或者最不喜欢的答案 技能考试 这类测试一般是针…

SpringMVC第一天

简介 SpringMVC技术与Servlet技术功能等同&#xff0c;均属于web层开发技术 SpringMVC是一种基于java实现的MVC模型的轻量级Web框架 优点 使用简单,开发便捷(相比于Servlet) 灵活性强 入门案例 第一步、导入SpringMVC与Servlet坐标 <?xml version"1.0" encod…

(Bean工厂的后处理器入门)学习Spring的第七天

一 . Bean工厂的后处理器入门 : 直接上图 BeanDefinitionRegistyPostProcessor 为 BeanFactoryProcessor的子接口 , 前者先执行(图里只有Bean工厂的后处理器第一个类型) 如下图 : 这两个接口可改变两个Map(BeanDefinitionMap , singletonObject)里的信息 (黑马只讲了BeanFact…

打造更智能的应用 - 机器学习和Andorid

打造更智能的应用 - 机器学习和Andorid 一、关于机器学习和Andorid二、使用 Gemini 让您的 Android 应用如虎添翼2.1 Gemini API2.2 Android AICore 三、现成可用的还是自定义的机器学习3.1 机器学习套件 SDK 的常见用户流3.2 高性能自定义机器学习 四、机器学习套件 SDK&#…

透明拼接屏生产商:如何选择合格供应商

随着透明拼接屏市场的不断扩大&#xff0c;越来越多的生产商加入其中。对于需求方而言&#xff0c;选择一家合格的生产商至关重要。本文将围绕如何选择透明拼接屏生产商展开讨论&#xff0c;同时结合对尼伽OLED显示屏的了解&#xff0c;为您推荐这一领域的优质供应商。 一、透明…

鸿蒙开发笔记(二十二): 页面路由(router),组件导航 Navigation, Tabs

1. 页面路由 router 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块&#xff0c;通过不同的url地址&#xff0c;可以方便地进行页面路由&#xff0c;轻松地访问不同的页面。本文将从页面跳转、页面返回和页面返回前增加一个询问框几个方…

和平精英如何针对伏地魔

我的办法是开启颜色反转 一般安卓手机有这种功能 比如我是橘子系统4.0 橘子系统永远得神。 开启颜色反转 进入设置–快捷与辅助/更多设置–无障碍/辅助功能–颜色反转–打开开关即可。 注&#xff1a;颜色反转即增强显示内容的对比度&#xff0c;使对低对比度内容识别力差的人…

基于Pytorch做深度学习,但是代码水平很低,应该如何学习呢?

PyTorch是一个Python程序库&#xff0c;有助于构建深度学习项目。它强调灵活性&#xff0c;并允许用深度学习领域惯用的Python来表示深度学习模型。它的易用性使得它在研究社区中有了早期的使用者&#xff0c;并且在第1次发布之后的几年里&#xff0c;它已经成为应用程序中使用…

机器学习实验报告——EM算法

目录 一、算法介绍 1.1算法背景 1.2算法引入 1.3算法假设 1.4算法原理 1.5算法步骤 二、算法公式推导 2.1数学基础 2.2EM算法推导 三、算法实现 3.1关于EM聚类 3.2EM工具包的使用 3.3 实例测试 四、算法讨论 4.1EM算法的优缺点 4.2EM算法的应用 4.3对于EM算法…

信息安全概述

信息安全&#xff1a;防止任何对数据进行未授权访问的措施&#xff0c;或者防止造成信息有意无意泄漏、破坏、丢失等问题的发生&#xff0c;让数据处于远离危险、免于威胁的状态或特性。 网络安全&#xff1a;计算机网络环境下的信息安全。 信息安全现状及挑战 数字化时代威…

7.12、中间人攻击(ARP欺骗)

一、ARP协议原理 地址解析协议(Address Resolution Protocol&#xff0c;ARP)&#xff0c;负责把目的主机的IP 地址解析成目的MAC地址&#xff0c;地址解析的目标就是发现逻辑地址与物理地址的映射关系。网络中的计算机、交换机、路由器等都会定期维护自己的ARP缓存表。 为什么…

第6章 SpringBoot缓存管理

学习目标 了解SpringBoot的默认缓存 熟悉SpringBoot中Redis的缓存机制及实现 掌握SpringBoot整合Redis的缓存实现 缓存是分布式系统中的重要组件&#xff0c;主要解决数据库数据的高并发访问问题。在实际开发中&#xff0c;尤其是用户访问量较大的网站&#xff0c;为了提高服…

HarmonyOS SDK,助力开发者打造焕然一新的鸿蒙原生应用

鸿蒙生态千帆启航仪式于1月18日正式启动。从2019年HarmonyOS正式发布到2020年“没有人能够熄灭漫天星光”&#xff0c;今天&#xff0c;满天星光终汇成璀璨星河&#xff0c;HarmonyOS NEXT鸿蒙星河版重磅发布&#xff0c;带来了全新架构、全新体验、全新生态。作为支撑鸿蒙原生…

Spring--@Async解析

一、Async 简介 从Spring3开始提供了Async注解&#xff0c;被该注解标注的方法&#xff0c;Spring底层会新建一个线程池或者使用已有的线程池中的线程去异步的执行被标注的方法。 二、Async 工作原理 Async与Transactional 工作原理基本是一样的&#xff0c;也是通过Spring …

100天精通鸿蒙从入门到跳槽——第11天:TypeScript 知识储备:装饰器

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

代码随想录 Leetcode150. 逆波兰表达式求值

题目&#xff1a; 代码(首刷看解析 2024年1月21日&#xff09;&#xff1a; class Solution { public:int evalRPN(vector<string>& tokens) {stack<long long> st; for (int i 0; i < tokens.size(); i) {if (tokens[i] "" || tokens[i] &qu…

AP5191 降压恒流 双灯 12V5A 一切一LED车灯汽车大灯驱动方案

AP5191是一款PWM工作模式,高效率、外围简 单、内置功率MOS管&#xff0c;适用于4.5-150V输入的高 精度降压LED恒流驱动芯片。输出功率150W&#xff0c; 电流6A。 AP5191可实现线性调光和PWM调光&#xff0c;线性调 光脚有效电压范围0.55-2.6V. AP5191 工作频率可以通过RT 外部…

win 下使用 cmd 运行 jar 包

1、使用 Win R 输入 cmd 命令打开命令提示符 2、在 cmd 窗口中输入以下命令 java -jar xxxxxx.jar 运行 jar 包&#xff0c;控制台出现中文乱码 原因是 windows 默认使用 GBK 编码格式&#xff0c;程序使用 UTF-8 编码格式 将编码格式改为 UTF-8 编码&#xff0c;在 cmd 窗…