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

news2024/11/16 1:38:51

一、文章摘要

恶意的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.3612471

Update (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.coloradmin.cn/o/1403712.html

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

相关文章

Git Docker 学习笔记

注意:该文章摘抄之百度,仅当做学习笔记供小白使用,若侵权请联系删除! 目录 列举工作中常用的几个git命令? 提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的? git的4个…

【VUE】如何有效管理重复请求

【VUE】如何管理重复请求 需求 重复的HTTP请求可能对应用程序性能造成很大影响,尤其是在用户快速点击或多次触发同一操作时。在Vue应用中,我们可以使用axios的请求拦截器(interceptors)配合AbortController来取消重复的HTTP请求…

【漏洞复现】CloudPanel makefile接口远程命令执行漏洞(CVE-2023-35885)

文章目录 前言声明一、CloudPanel 简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 CloudPanel 是一个基于 Web 的控制面板或管理界面,旨在简化云托管环境的管理。它提供了一个集中式平台,用于管理云基础架构的各个方面,包括 &a…

【开源】基于JAVA语言的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

k8s集群异常恢复

前提、我自己的k8s采用的是单master节点两个从节点部署,我针对单master情况进行恢复说明 场景一:正常开关虚拟机,可直接重启kubelet进行恢复 1、1、一般重启后三个节点都需要检查,输入命令检查kubelet: systemctl s…

计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

文章目录 OSI与TCP/IPOSI与TCP/IP相同点OSI与TCP/IP不同点5层参考模型5层参考模型的数据封装与解封装小结 OSI与TCP/IP OSI:先理论,但没有实践 TCP/IP:先实践,再理论 TCP/IP:基于协议栈而分层 网络接口层:…

IDEA 2023.3.2 安装教程

1.下载2023.3.2版本IDEA 链接:https://pan.baidu.com/s/1RkXBLz6qxsd8VxXuvXCEMA?pwd5im6 提取码:5im6 2.安装 3.解压文件,进入,选择方式3 4.将下面文件夹复制到任意位置(不要有中文路径) 5.进入下面文…

CmakeList教程

一、CmakeList介绍: cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译 二、CmakeList的常用指令 1.指定…

DevOps系列文章之 GitLab Runner

Runner Runner就像一个个的工人,而Gitlab-CI就是这些工人的一个管理中心,所有工人都要在Gitlab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,Gitlab-CI就会通知相应的工人执行软件集成脚本。如下图所…

优维全面可观测产品能力分解①:架构可观测

2023年,基于客户需求的洞察,历经1年的潜心优化,优维在第四季度推出集大成产品——「全面可观测解决方案」,涵盖架构可观测、故障可观测、变更可观测、用户可观测、应用服可观测、资源可观测、运维状态可观测等不同场景的可观测能力…

使用 Vector 在 Kubernetes 中收集日志

多年来,我们一直在使用 Vector 在我们的 Kubernetes 平台中收集日志,并成功地将其应用于生产中以满足各种客户的需求,并且非常享受这种体验。因此,我想与更大的社区分享它,以便更多的 K8s 运营商可以看到潜力并考虑他们…

Multisim14.0仿真(三十八)基于74ls190的电子计时器设计

一、仿真原理图: 二、仿真效果: 三、时钟源按所需调整。

[python]使用pyqt5搭建yolov8钢筋计数一次性钢材计数系统

【官方框架地址】 github地址:https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8是一种先进的深度学习模型,用于目标检测和识别。在钢筋计数任务中,Yolov8可以有效地识别和计数图像中的钢筋。下面是对如何使用Yolov8实现钢筋…

一本满是错误的Go语言书,凭什么1000万人都在读

犯错是每个人生活的一部分。正如爱因斯坦曾说过:一个从未犯过错的人从未尝试过新东西。 最重要的不是我们犯了多少错误,而是我们从错误中学到了多少东西。 这个观点同样适用于编程领域。 我们从一门编程语言中获取经验不是一个神奇的过程,…

Rocky Linux 8.9 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

【大数据处理技术实践】期末考查题目:集群搭建、合并文件与数据统计可视化

集群搭建、合并文件与数据统计可视化 实验目的任务一:任务二: 实验平台实验内容及步骤任务一:搭建具有3个DataNode节点的HDFS集群集群环境配置克隆的方式创建 Slave 节点修改主机名编辑 hosts 文件生成密钥免认证登录修改 hadoop 的配置文件编…

CentOS 7 安装配置MySQL

目录 一、安装MySQL​编辑​编辑 1、检查MySQL是否安装及版本信息​编辑 2、卸载 2.1 rpm格式安装的mysql卸载方式 2.2 二进制包格式安装的mysql卸载 3、安装 二、配置MySQL 1、修改MySQL临时密码 2、允许远程访问 2.1 修改MySQL允许任何人连接 2.2 防火墙的问题 2…

Linux操作系统IPC之—SYSTEM V共享内存

文章目录 共享内存的简介共享内存示意图 共享内存数据结构共享内存用到的函数具体的代码最终运行图 共享内存的简介 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过…

请你来了解一下Mysql-InnoDB中事务的两段式提交

欢迎订阅专栏,了解更多Mysql的硬核知识点,原创不易,求打赏 ACID:事务的四个特性 A:原子性 原子性表示把一个事务中所有的操作视为一个整体,要么全部成功,要么全部失败,是事务模型区…

《WebKit 技术内幕》学习之七(3): 渲染基础

3 渲染方式 3.1 绘图上下文(GraphicsContext) 上面介绍了WebKit的内部表示结构,RenderObject对象知道如何绘制自己,但是,问题是RenderObject对象用什么来绘制内容呢?在WebKit中,绘图操作被定…