図 1:個人の画像を保護するための敵対的摂動の生成の図。 |
論文「Edit Away and My Face Will not Stay: Personal Biometric Defense Against Malicious Generative Editing」の公式リポジトリへようこそ。
拡散モデルの最近の進歩により、生成画像編集はこれまで以上にアクセスしやすくなりました。これらの開発により、ユーザーは創造的な編集を簡単に作成できるようになりますが、特に個人のプライバシーとアイデンティティのセキュリティを脅かす人物のポートレートに対する悪意のある編集に関して、重大な倫理的懸念も生じます。既存の汎用画像保護方法は、編集効果を無効にするために敵対的な摂動を生成することに主に焦点を当てています。ただし、これらのアプローチは、多様な編集要求から保護するために不安定になることがよくあります。この研究では、個人の人物の肖像画を悪意のある編集から保護するための新しい視点を導入します。編集が有効になるのを防ぐことを目的とした従来の方法とは異なり、私たちの方法である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 detect.py --input_path=${入力画像パス} --defend_method=${選択された防御方法} [--攻撃予算=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=${選択された防御方法} [--攻撃予算=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 metricpython eval_ssim.py --clean_edit_dir=${クリーン編集へのパス} --defend_edit_dirs ${シーケンス保護された編集へのパス} --seed=${編集と評価に使用されるシード}# LPIPS metricpython eval_lpips.py --clean_edit_dir=${クリーンな編集へのパス} --defend_edit_dirs ${保護された編集へのパスのシーケンスedits} --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 ${sequence保護された編集へのパス} --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 preprint arXiv:2411.16832}、 }