
[ICCV 2025] Защита от несанкционированного вмешательства при неавторизованной генерации изображений конкретных лиц
Официальный код для статьи ICCV 2025
📄 Защита от несанкционированного вмешательства при несанкционированной генерации изображений отдельных лиц
conda create --name ATP --file requirements.txt
conda activate ATP
Загрузите наборы данных CelebA-HQ и VGGFace2. Ссылки на наборы данных можно найти в CelebA-HQ, VGGFace2. Для обучения модели авторизации также необходимо загрузить FFHQ
Загрузите веса модели авторизации и направляющую маску
Укажите путь к weights в configs/authorization.yaml и путь к mask в configs/protection.yaml
Запустите
python perturb.py --device cuda:0 --input_dir path_to_cleanData --output_dir path_to_perturbedData --method CAAT --input-mask path_to_mask
Мы рекомендуем комбинировать CAAT с ATP, что обеспечивает хороший баланс между эффективностью генерации и качеством защиты. Мы также предоставляем код для интеграции MetaCloak, Anti-DreamBooth и AdvDM.
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
Укажите путь к weights в configs/verification.yaml
✅ Без очистки (Purification): Запустите
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
Пример вывода:
Average Bit-Error: 0.44984375 Unauthorized image Ratio: 1.0 Pass Verification Identity Num: 0
«Pass Verification Identity Num» можно использовать для расчёта показателя успешной защиты (Protect Success Rate, PSR). Если после очистки личность не проходит проверку, мы считаем это успешной защитой.
Если изображения проходят проверку, они могут использоваться для генерации.
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0
Результаты сохраняются в каталоге «DREAMBOOTH».
Хотя очищенные изображения не использовались для генерации в наших экспериментах из-за полного провала проверки, мы всё же включили код для базовых алгоритмов, чтобы обеспечить возможность сравнения.
Для JPEG и Resize выполните:
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0 --purification naive
Для Gridpure сначала необходимо запустить GridPure, а затем использовать очищенные изображения для выполнения:
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0 --purification gridpure
Измените настройки, определённые в ./configs/metrics.yaml. Необходимо указать путь к оцениваемым изображениям (instance_dir) и путь к каталогу для хранения файла записи результатов оценки (output_dir), промпт, используемый для генерации, и путь к ID-эмбеддингу(id_emb_path).
Загрузите LIQE.pt по ссылке. Поместите его в ./metrics/LIQE/checkpoints
cd metrics
python eval_dir.py --dataset CelebA-HQ --method CAAT
Результат оценки будет сохранён в output_dir, указанном в metrics.yaml
python show.py --path evaluation_results
Пример вывода:
CLIP-IQAC LIQE ISM FDFR PSR
-0.176525 1.033371 0.489084 0.406250 0.859375
(Изменив код в eval_dir.py со строки 67 по строку 68 (закомментировано), вы также можете оценить результат генерации после наивной очистки.)
Вы также можете обучить собственную модель авторизации.
Измените настройки в ./configs/authorization.yaml
cd authorization
bash scripts/train.sh
При создании этого проекта мы использовали код из: LIQE, GridPure, ANTIDB, METACLOAK, CAAT, HiDDeN, BasicSR.
Спасибо им за отличную работу!
📌 Если вы находите этот проект полезным для своих исследований, пожалуйста, рассмотрите возможность цитирования нашей статьи.
© 2025 The Board of Trustees of the University of Illinois. All Rights Reserved.
| Аргумент | Описание | Пример |
|---|
--device | Определяет, на каком GPU запускать модель | cuda:0, cuda:1 |
--input_dir | Путь к исходным чистым изображениям | ./data/clean/ |
--output_dir | Путь для сохранения изменённых изображений | ./data/perturbed/ |
--method | Метод защитного возмущения | CAAT, ANTIDB, ADVDM,METACLOAK |
--input-mask | Путь к маске | ./mask/050_mask.pt |
| Аргумент | Описание | Пример |
|---|
--message_dir_dir | Путь к каталогу с сообщениями авторизации | ./data/Authorization_messages |
--input_dir | Путь к изображениям для проверки | ./data/perturbed/ |
--method | Метод защитного возмущения | CAAT, ANTIDB, ADVDM,METACLOAK |
--noise-args | Параметры шума | 2, 50 |
--noise-type | Тип шума | JPEG, Resize |
| Аргумент | Описание | Пример |
|---|
--dataset | Набор данных для оценки | CelebA-HQ, VGGFace2 |
--method | Метод защитного возмущения | CAAT, ANTIDB, ADVDM,METACLOAK |