1.本发明属于人工智能安全领域,涉及计算机视觉、深度伪造、主动防御等深度学习技术。
背景技术:2.随着深度学习技术的不断发展,对人脸图像和视频进行修改的技术:深度伪造(deepfake) 在互联网上爆发式流行。一般地,深度伪造技术通过属性修改或面部替换修改人脸,可以修改发色、脸型等外形特征,也可将人脸替换到其他的视频和图像上,使人物做出不符其身份的行为,或传达虚假信息。如stargan(stargan:unified generative adversarial networks formulti-domain image-to-image translation)可以由一张原始人脸图片生成不同面部特征和表情的人脸篡改图像;interfacegan(interpreting the latent space of gans for semantic face editing) 通过隐变量编辑,可以生成拍照角度可控的人脸图像。
3.许多短视频平台已经开始采取措施监管和禁止换脸视频。但目前平台针对深度伪造采取的措施主要是被动检测,也即训练检测器对已经制作发布的视频进行检测,判断是否为深度伪造内容。这种检测只能被动防御和事后取证,并不能阻止深度伪造内容的生成和传播,没有办法断绝虚假内容造成的恶劣影响;且面对日新月异的深度伪造模型,需要不断训练和更新检测器,成本代价十分高昂。
技术实现要素:5.为从断绝深度伪造带来的恶劣影响,本发明提出了一种针对深度伪造的主动防御方法、系统。
6.本发明提供的技术方案是:
7.一种针对深度伪造的主动防御方法,其特征在于,其步骤包括:
8.1)获得主动防御水印:准备多个深度伪造模型,已经训练好的深度伪造模型参数。具体包括:
9.1-1)将任意一张原始的训练图片和该图片加上防御水印(若为第一次训练,将水印初始化为随机噪音),输入到深度伪造模型中,得到原始图片和加上水印图片的篡改图片。
10.1-2)将损失在不同的深度伪造模型上回传,得到图片上的梯度序列。
11.1-3)综合各图片、各模型梯度序列,对其进行上下限约束后,得到一个防御水印。
12.1-4)每次训练时在上一次训练得到的防御水印的基础上更新水印,具体地,本次训练得到的水印需要乘上系数α(通常为0.01)和上一次的水印乘上系数1-α得到新的防御水印。
13.1-5)重复直至达到训练次数上限,得到可以使多个深度伪造模型的生成扭曲的主动防御水印。
14.2)训练水印嵌入和检测:具体包括:
15.2-1)准备一定数量的人脸图片;
16.2-2)训练一个训练编码器-解码器。其中,编码器将上一步得到的主动防御水印嵌入到输入图像中,通过损失函数确保嵌入信息的不可见。之后,解码器读取嵌入后的图片,并将编码的水印解码出来,通过损失函数确保解码信息的准确率。当训练完成后,生成相对应的编码器和解码器权重。
17.3)深度伪造检测:具体包括:
18.3-1)准备需要保护的人脸图片(或需要保护的视频按帧切分),以及需要防御的深度伪造模型;
19.3-2)使用上一步得到的编码器,将主动防御水印嵌入到人脸图片后,将人脸图片输入到深度伪造模型,得到伪造后的图片;
20.3-3)通过上一步得到的解码器,将编码的水印从伪造后的图片中解码出来,和最初的嵌入水印作比较,当二者间的bit差异大于等于设定的阈值(通常为0.4),则认为该图片经过了深度伪造。
21.一种针对深度伪造的主动防御系统,其特征在于,该系统包括:
22.1)深度伪造模型接口模块:包括用于向深度伪造模型输入图片、并获取生成结果的函数;
23.2)主动防御水印生成模块:用于生成从多个深度伪造模型保护人脸的防御水印;具体地,该模块首先完成深度伪造模型接入,并调用基础水印生成算法,结合水印融合技术生成模型通用的主动防御水印。
24.3)主动防御水印嵌入模块:该模块训练编码器—解码器,利用编码器将主动防御水印生成模块生成的通用水印嵌入人脸图片。
25.4)水印防御效果评估模块:用于评估水印使深度伪造模型输出的扭曲程度;
26.5)深度伪造检测模块:通过主动防御水印嵌入模块提供的解码器,检测嵌入了水印的图片,以判断是否有深度伪造模型对这些图片进行了修改。
27.本发明的有益效果:
28.本发明生成一种模型通用的主动防御水印,将该水印嵌入包含人脸信息的媒体后可使深度伪造模型的生成扭曲,并可通过该水印检测出该媒体内容是否经历过深度伪造,彻底防止深度伪造篡改。本发明对多种深度伪造模型具有防御能力,且无需深度伪造模型结构信息,即可达到防御效果。
附图说明
29.图1为本发明主动防御水印的生成的示意图;
30.图2为本发明主动防御水印的嵌入及深度伪造检测的示意图。
具体实施方式
31.本发明设计一种针对深度伪造的主动防御系统,该系统包括深度伪造模型接口、水印生成、水印嵌入、防御效果评估以及深度伪造检测五个模块。其中:
32.1)深度伪造模型接口模块:包括用于向深度伪造模型输入图片、并获取生成结果
的函数;
33.2)主动防御水印生成模块:用于生成从多个深度伪造模型保护人脸的防御水印;具体地,该模块首先完成深度伪造模型接入,并调用基础水印生成算法,结合水印融合技术生成模型通用的主动防御水印。
34.3)主动防御水印嵌入模块:该模块训练编码器-解码器,利用编码器将主动防御水印生成模块生成的通用水印嵌入人脸图片。
35.4)水印防御效果评估模块:用于评估水印使深度伪造模型输出的扭曲程度;
36.5)深度伪造检测模块:通过主动防御水印嵌入模块提供的解码器,检测嵌入了水印的图片,以判断是否有深度伪造模型对这些图片进行了修改。
37.为进一步说明本发明,下面通过实例描述其具体实施方式,但不以任何方式限制该方法的适用范围。
38.以大规模的人脸属性数据集celeba(celebfaces attributes dataset: http://mmlab.ie.cuhk.edu.hk/projects/celeba.html)以及在该数据集上训练的深度伪造模型hisd、 stargan、attgan、attentiongan作为攻击目标,采用pgd攻击算法作为攻击基础算法来说明如何生成主动防御水印,如何进行水印嵌入,以及如何进行深度伪造检测。
39.准备已经封装好的deepfake模型;读入干净的celeba数据集,将其缩放到256
×
256大小并进行标准化预处理,将celebaa数据集划分为训练集、验证集和测试集。
40.第一步,获得主动防御水印,如图1所示:
41.1)将任意一批原始的训练图片和该图片加上防御水印(若为第一次训练,将水印初始化为随机噪音),输入到深度伪造模型中,得到原始图片和加上水印图片的篡改图片。
42.2)将损失在不同的深度伪造模型上回传,得到输入图片上的梯度序列。其中损失为原始图片和加水印图片得到的深度伪造模型输出的损失函数:
43.loss
generation
=mse(g(i),g(i+w))
44.其中,i为原始图片,w为水印,g为深度伪造模型。
45.3)融合各图片、各模型梯度序列,对其进行上下限约束后,得到一个防御水印。具体地,综合各图片梯度序列时,对一个批的图片(8张)在一个模型上求得梯度后,将梯度进行平均得到g
avg
,并使用pgd算法在梯度的正方向上迭代更新10次,得到对抗扰动p:
[0046][0047][0048][0049]
融合各模型梯度序列时,在本模型上得到的对抗扰动p需要乘上系数α(通常为0.01)和之前的水印乘上1-α得到新的防御水印。
[0050]w′←
(1-α)w+αp
[0051]
4)重复,直至训练完128张图片,得到可以使深度伪造模型的生成扭曲的主动防御水印。
[0052]
第二步,训练水印嵌入和检测:
[0053]
1)使用celeba的训练集,训练一对基于卷积神经网络编码器-解码器。其中,编码器将上一步得到的主动防御水印嵌入到输入图像中,通过损失函数约束嵌入后的图片和原
图片之间足够接近,也即最小化均方误差,确保嵌入信息不可见。
[0054]
loss
encoding
=mse(e(i),e(i,w))
[0055]
其中,e是编码器,w是上一步得到的主动防御水印。
[0056]
2)之后,解码器读取嵌入后的图片,并将编码的水印解码出来,通过损失函数约束解码结果和原始水印之间的bit误差,也即最小化带logit的bce误差函数。
[0057]
loss
decoding
=bcewithlogitsloss9w,d(e(i,w)))
[0058]
其中,d是解码器。
[0059]
3)当训练完成后,生成相对应的编码器e和解码器权重。
[0060]
第三步,深度伪造检测,如图2所示:
[0061]
1)选择celeba测试集进行输入;
[0062]
2)使用上一步得到的编码器,将主动防御水印嵌入到人脸图片后,将人脸图片输入到各个深度伪造模型,得到伪造后的图片;
[0063]
通过上一步得到的解码器,将编码的水印从伪造后的图片中解码出来,和最初的嵌入水印作比较,当二者间的bit差异大于等于设定的阈值(0.4),则认为该图片经过了深度伪造。在celeba全测试集上,经过深度伪造模型的编码和未经伪造的最小编码改变率为41.0%,可以被检出。
[0064]
在模型结构未知的深度伪造模型攻击测试中,本发明获得了100%的深度伪造防御率。
[0065]
以上通过详细实施案例描述了本发明,本领域的研究人员和技术人员可以根据上述的步骤作出形式或内容方面的非实质性的改变而不偏离本发明实质保护的范围。因此,本发明不局限于以上实施例中所公开的内容,本发明的保护范围应以权利要求所述为准。
技术特征:1.一种针对深度伪造的主动防御方法,其特征在于,其步骤包括:1)获得主动防御水印;2)训练水印嵌入和检测:具体包括:2-1)准备一定数量的人脸图片;2-2)训练编码器-解码器,其中,编码器将上一步得到的主动防御水印嵌入到输入图像中,通过损失函数确保嵌入信息的不可见;解码器读取嵌入后的图片,并将编码的水印解码出来,通过损失函数确保解码信息的准确率;当训练完成后,生成相对应的编码器和解码器权重;3)深度伪造检测:具体包括:3-1)准备需要保护的人脸图片,以及需要防御的深度伪造模型;3-2)使用上一步得到的编码器,将主动防御水印嵌入到人脸图片后,将人脸图片输入到深度伪造模型,得到伪造后的图片;3-3)通过上一步得到的解码器,将编码的水印从伪造后的图片中解码出来,和最初的嵌入水印作比较,当二者间的bit差异大于等于设定的阈值,则认为该图片经过了深度伪造。2.如权利要求1所述的针对深度伪造的主动防御方法,其特征在于,步骤1)具体包括:1-1)将任意一张原始的训练图片和该图片加上防御水印,输入到深度伪造模型中,得到原始图片和加上水印图片的篡改图片;1-2)将损失在不同的深度伪造模型上回传,得到图片上的梯度序列;1-3)综合各图片、各模型梯度序列,对其进行上下限约束后,得到一个防御水印。3.如权利要求2所述的针对深度伪造的主动防御方法,其特征在于,每次训练时在上一次训练得到的防御水印的基础上更新水印,具体地,本次训练得到的水印需要乘上系数α和上一次的水印乘上系数1-α得到新的防御水印。4.如权利要求2所述的针对深度伪造的主动防御方法,其特征在于,所述损失为原始图片和加水印图片得到的深度伪造模型输出的损失函数:loss
generation
=mse(g(i),g(i+w))其中,i为原始图片,w为水印,g为深度伪造模型。5.如权利要求1所述的针对深度伪造的主动防御方法,其特征在于,步骤2-2)中训练一对基于卷积神经网络编码器-解码器,其中,编码器将上一步得到的主动防御水印嵌入到输入图像中,通过损失函数约束嵌入后的图片和原图片之间足够接近,也即最小化均方误差,确保嵌入信息不可见。6.如权利要求1所述的针对深度伪造的主动防御方法,其特征在于,步骤3-3)中设定的阈值为0.4。7.一种针对深度伪造的主动防御系统,其特征在于,该系统包括:1)深度伪造模型接口模块:包括用于向深度伪造模型输入图片、并获取生成结果的函数;2)主动防御水印生成模块:用于生成从多个深度伪造模型保护人脸的防御水印;3)主动防御水印嵌入模块:该模块训练编码器-解码器,利用编码器将主动防御水印生成模块生成的通用水印嵌入人脸图片;
4)水印防御效果评估模块:用于评估水印使深度伪造模型输出的扭曲程度;5)深度伪造检测模块:通过主动防御水印嵌入模块提供的解码器,检测嵌入了水印的图片,以判断是否有深度伪造模型对这些图片进行了修改。8.如权利要求7所述的针对深度伪造的主动防御系统,其特征在于,所述主动防御水印生成模块,该模块首先完成深度伪造模型接入,并调用基础水印生成算法,结合水印融合技术生成模型通用的主动防御水印。
技术总结本发明公开了一种针对深度伪造的主动防御方法、系统,属于人工智能安全领域。本发明生成一种模型通用的主动防御水印,将该水印嵌入包含人脸信息的媒体后可使深度伪造模型的生成扭曲,并可通过该水印检测出该媒体内容是否经历过深度伪造,彻底防止深度伪造篡改。本发明对多种深度伪造模型具有防御能力,且无需深度伪造模型结构信息,即可达到防御效果。即可达到防御效果。即可达到防御效果。
技术研发人员:王勇涛 黄灏 叶晓雨 汤帜
受保护的技术使用者:北京大学
技术研发日:2022.07.19
技术公布日:2022/11/1