
[ICCV 2025] Manipulationsschutz für unbefugte individuelle Bildgenerierung
Offizieller Code für das ICCV-2025-Paper
📄 Manipulationsschutz gegen unbefugte Generierung individueller Bilder
conda create --name ATP --file requirements.txt
conda activate ATP
Laden Sie die Datensätze CelebA-HQ und VGGFace2 herunter. Die Links zu den Datensätzen finden Sie unter CelebA-HQ, VGGFace2. Für das Training des Autorisierungsmodells sollte auch FFHQ heruntergeladen werden.
Laden Sie die Gewichte des Autorisierungsmodells und die Steuerungsmaske herunter.
Legen Sie den Pfad weights in configs/authorization.yaml und den Pfad mask in configs/protection.yaml fest.
Ausführen:
python perturb.py --device cuda:0 --input_dir path_to_cleanData --output_dir path_to_perturbedData --method CAAT --input-mask path_to_mask
Wir empfehlen, CAAT mit ATP zu integrieren, da dies eine gute Balance zwischen Generierungseffizienz und Schutzwirkung erreicht. Wir stellen jedoch auch Code für die Integration von MetaCloak, Anti-DreamBooth und AdvDM bereit.
output_dir/
├── Authorized/ # Authorized images
| ├ {id}/ # Authorized images separated by id
| ├ Authorization_messages/ # Authorization messages for each image
└── ATP_{method}/ # Protected Images by ATP+{method}
├ {id}/ # ATP Perturbed images separated by id
Legen Sie den Pfad weights in configs/verification.yaml fest.
✅ Ohne Reinigung: Ausführen:
cd authorization
python verify.py --message_dir path_to_authorization_messages --input_dir path_to_atp_protected_image --method CAAT
cd authorization
python verify.py --message_dir path_to_authorization_messages --input_dir path_to_atp_protected_image --method CAAT --noise-args 2 --noise-type Resize
cd authorization
python verify.py --message_dir path_to_authorization_messages --input_dir path_to_atp_protected_image --method CAAT --noise-args 70 --noise-type JPEG
cd authorization
python verify.py --message_dir path_to_authorization_messages --input_dir path_to_atp_protected_image --method GridPure
Beispielausgabe:
Average Bit-Error: 0.44984375 Unauthorized image Ratio: 1.0 Pass Verification Identity Num: 0
„Pass Verification Identity Num" kann zur Berechnung der Protect Success Rate (PSR) verwendet werden. Sobald die Reinigung stattfindet und die Identität die Verifizierung nicht besteht, betrachten wir dies als erfolgreichen Schutz.
Wenn die Bilder die Verifizierung bestehen, können sie für die Generierung verwendet werden.
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0
Die Ergebnisse werden im Verzeichnis „DREAMBOOTH" gespeichert.
Obwohl die gereinigten Bilder in unseren Experimenten aufgrund ihres vollständigen Scheiterns bei der Verifizierung nicht für die Generierung verwendet werden, stellen wir dennoch Code für die Basisalgorithmen bereit, um einen Vergleich zu ermöglichen.
Für JPEG und Resize ausführen:
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0 --purification naive
Für GridPure müssen Sie zuerst GridPure ausführen und dann mit den gereinigten Bildern Folgendes ausführen:
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0 --purification gridpure
Laden Sie die ID-Einbettungen von celebahq, vggface herunter.
Ändern Sie die in ./configs/metrics.yaml definierten Einstellungen. Sie müssen den Pfad zu den auszuwertenden Bildern (instance_dir) sowie den Pfad zum Verzeichnis für die Speicherung der Auswertungsergebnis-Datei (output_dir), den für die Generierung verwendeten Prompt und den Pfad zur ID-Einbettung (id_emb_path) festlegen.
Laden Sie LIQE.pt von der URL herunter. Platzieren Sie es in ./metrics/LIQE/checkpoints.
cd metrics
python eval_dir.py --dataset CelebA-HQ --method CAAT
Das Auswertungsergebnis wird in dem output_dir gespeichert, den Sie in der metrics.yaml festgelegt haben.
python show.py --path evaluation_results
Beispielausgabe:
CLIP-IQAC LIQE ISM FDFR PSR
-0.176525 1.033371 0.489084 0.406250 0.859375
(Durch Ändern des eval_dir.py-Codes von Zeile 67 bis Zeile 68 (auskommentiert) können Sie auch das gereinigte Generierungsergebnis der naiven Transformation auswerten.)
Sie können auch Ihr eigenes Autorisierungsmodell trainieren.
Ändern Sie die Einstellungen in ./configs/authorization.yaml.
cd authorization
bash scripts/train.sh
Für die Erstellung dieses Projekts haben wir Code von den folgenden Projekten übernommen: LIQE, GridPure, ANTIDB, METACLOAK, CAAT, HiDDeN, BasicSR.
Vielen Dank für ihre hervorragende Arbeit!
📌 Wenn Sie dieses Projekt für Ihre Forschung nützlich finden, ziehen Sie bitte in Betracht, unsere Arbeit zu zitieren.
© 2025 The Board of Trustees of the University of Illinois. Alle Rechte vorbehalten.
| Argument | Beschreibung | Beispiel |
|---|
--device | Legt fest, auf welcher GPU das Modell ausgeführt werden soll | cuda:0, cuda:1 |
--input_dir | Pfad zu den unveränderten Eingabebildern | ./data/clean/ |
--output_dir | Pfad zum Speichern der gestörten Bilder | ./data/perturbed/ |
--method | Störungsmethode zum Schutz | CAAT, ANTIDB, ADVDM,METACLOAK |
--input-mask | Pfad zur Maske | ./mask/050_mask.pt |
| Argument | Beschreibung | Beispiel |
|---|
--message_dir_dir | Pfad zum Verzeichnis der Autorisierungsnachrichten | ./data/Authorization_messages |
--input_dir | Pfad zu den zu verifizierenden Bildern | ./data/perturbed/ |
--method | Störungsmethode zum Schutz | CAAT, ANTIDB, ADVDM,METACLOAK |
--noise-args | Störungsmethode zum Schutz | 2, 50 |
--noise-type | Störungsmethode zum Schutz | JPEG, Resize |
| Argument | Beschreibung | Beispiel |
|---|
--dataset | Datensatz für die Auswertung | CelebA-HQ, VGGFace2 |
--method | Störungsmethode zum Schutz | CAAT, ANTIDB, ADVDM,METACLOAK |