圖 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 ${受保護編輯的路徑序列} --seed=${用於編輯和評估的種子}# LPIPS metricpython eval_lpips.py --clean_edit_diran_edit_diran_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}, }