图 1:用于保护个人图像的对抗性扰动生成的图示。 |
欢迎来到论文《编辑消失,我的脸不会留下:针对恶意生成编辑的个人生物识别防御》的官方存储库。
扩散模型的最新进展使生成图像编辑比以往任何时候都更容易。虽然这些发展允许用户轻松进行创意编辑,但它们也引起了重大的道德问题,特别是对威胁个人隐私和身份安全的人物肖像的恶意编辑。现有的通用图像保护方法主要侧重于生成对抗性扰动以消除编辑效果。然而,这些方法通常表现出不稳定性,以防止不同的编辑请求。在这项工作中,我们介绍了个人肖像保护免受恶意编辑的新颖视角。与旨在防止编辑生效的传统方法不同,我们的方法FaceLock优化了对抗性扰动,以确保原始生物特征信息(例如面部特征)在编辑后被破坏或发生实质性改变,从而将主体呈现在编辑后的输出在生物特征上无法识别。我们的方法创新地将面部识别和视觉感知因素集成到扰动优化过程中,确保针对各种编辑尝试提供强大的保护。此外,我们还阐明了图像编辑中常用评估指标的几个关键问题,并揭示了可以轻松操纵这些指标的作弊方法,从而导致对保护的欺骗性评估。通过大量的实验,我们证明FaceLock在针对各种恶意编辑的防御性能方面显着优于所有基准。此外,我们的方法还对纯化技术表现出很强的鲁棒性。我们的工作不仅推进了生物识别防御领域的最先进技术,而且还为图像编辑中更安全和隐私保护的实践奠定了基础。
我们提供了一个 conda env 文件用于环境设置。
conda env create -f 环境.yml conda 激活面部锁
我们首先介绍应用于单个输入图像的图像编辑和防护代码。
python edit.py --input_path=${输入图像路径} --prompt=${编辑图像时使用的指令提示} [--num_inference_steps=100 --image_guidance_scale=1.5 --guidance_scale=7.5 --help]
参数解释:
input_path
要编辑的图像的路径
prompt
用于编辑图像的指令提示
num_inference, image_guidance_scale, guidance_scale
配置用于指导图像编辑过程
help
查看图像编辑的其他参数
python后卫.py --input_path=${输入图像路径} --defend_method=${选择的防御方法} [--attack_budget=0.03 --step_size=0.01 --num_iters=100 --help]
参数解释:
input_path
要保护的图像的路径
defend_method
选择的防御方法,我们提供[encoder/vae/cw/facelock]
之间的选项
防御过程的attack_budget, step_size, num_iters
超参数
help
查看捍卫单个图像的其他论点
接下来,我们扩展它来演示处理跨多个图像的图像编辑和防御的代码。
python main_edit.py --src_dir=${输入图像目录} --edit_dir=${输出图像目录} [--num_inference_steps=100 --image_guidance_scale=1.5 --guidance_scale=7.5 --help]
参数解释:
src_dir
要编辑的源图像目录的路径
edit_dir
包含生成的编辑图像的目录路径
其他参数与单图编辑版本类似,使用help
查看更多详细信息
python main_defend.py --image_dir=${输入图像目录} --output_dir=${输出图像目录} --defend_method=${选择的防御方法} [--attack_budget=0.03 --step_size=0.01 --num_iters=100 - 帮助]
参数解释:
image_dir
要保护的源图像目录的路径
output_dir
包含生成的受保护图像的目录的路径
其他参数与单图防御版本类似,使用help
查看更多细节
我们提供了计算论文中提到的PSNR, SSIM, LPIPS, CLIP-S, CLIP-I, FR
指标的评估代码。
cd评估# PSNR metricpython eval_psnr.py --clean_edit_dir=${干净编辑的路径} --defend_edit_dirs ${受保护编辑的路径序列} --seed=${用于在SSIM上编辑和评估的种子}# SSIM metricpython eval_ssim.py --clean_edit_dir=${干净编辑的路径} --defend_edit_dirs ${受保护的路径序列edits} --seed=${用于编辑和评估的种子}# LPIPS metricpython eval_lpips.py --clean_edit_dir=${干净编辑的路径} --defend_edit_dirs ${受保护编辑的路径序列} -- seed=${用于编辑和评估的种子}# CLIP-S metricpython eval_clip_s.py --src_dir=${源图像的路径} --defend_edit_dirs ${受保护编辑的路径序列} --seed=${用于编辑和评估的种子} [--clean_edit_dir=${干净编辑的路径}]# CLIP-I metricpython eval_clip_i.py --src_dir=${源图像的路径} --defend_edit_dirs ${受保护编辑的路径序列} --seed=${用于编辑的种子并评估} [--clean_edit_dir=${干净编辑的路径}]# FR metricpython eval_facial.py --src_dir=${源图像的路径} --defend_edit_dirs ${受保护编辑的路径序列} - -seed=${用于编辑和评估的种子} [--clean_edit_dir=${干净编辑的路径}]
对于PSNR
、 SSIM
和LPIPS
,计算是在受保护图像的编辑和干净图像的编辑之间执行的。因此,需要输入defend_edit_dirs
和clean_edit_dir
。
对于CLIP-S
,计算涉及源图像、编辑后的图像和编辑提示。要处理您的独特指令,您可以修改utils.py
。这需要源图像目录src_dir
的额外输入。如果提供clean_edit_dir
,还将计算对不受保护的图像进行编辑的CLIP-S
结果。
对于CLIP-I
和FR
,计算使用源图像和编辑后的图像,共享与CLIP-S
相同的输入设置。
如果您发现此存储库对您的研究有帮助,请考虑引用我们的工作:
@article{wang2024editawayfacestay, title={编辑消失,我的脸不会留下:针对恶意生成编辑的个人生物识别防御}, 作者={王汉辉、张一华、白锐正、赵越、刘思佳、屠正中},期刊={arXiv预印本arXiv:2411.16832}, }