
[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
| الوسيط | الوصف | مثال |
|---|---|---|
--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 |
نوصي بدمج 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
✅ بدون تنقية: شغّل
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
| الوسيط | الوصف | مثال |
|---|---|---|
--message_dir_dir | المسار إلى دليل رسائل التخويل | ./data/Authorization_messages |
--input_dir | المسار إلى الصور المطلوب التحقق منها | ./data/perturbed/ |
--method | طريقة تشويش الحماية | CAAT, ANTIDB, ADVDM,METACLOAK |
--noise-args | طريقة تشويش الحماية | 2, 50 |
--noise-type | طريقة تشويش الحماية | JPEG, Resize |
مثال على المخرجات:
Average Bit-Error: 0.44984375 Unauthorized image Ratio: 1.0 Pass Verification Identity Num: 0
يمكن استخدام Pass Verification Identity Num لحساب معدل نجاح الحماية (PSR). وبمجرد حدوث التنقية وعدم تمكن الهوية من اجتياز التحقق، نعتبر ذلك حماية ناجحة.
إذا اجتازت الصور التحقق، يمكن استخدامها في التوليد.
cd generation
python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0
يتم حفظ النتائج في مجلد "DREAMBOOTH".
على الرغم من أن الصور المنقّاة لم تُستخدم في التوليد في تجاربنا بسبب فشلها التام في اجتياز التحقق، إلا أننا ما زلنا ندرج كودًا للخوارزميات الأساسية (baseline) لتمكين المقارنة.
بالنسبة إلى 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), والموجه (prompt) المستخدم للتوليد، ومسار تضمين الهوية(id_emb_path).
قم بتنزيل LIQE.pt من الرابط. ضعه في ./metrics/LIQE/checkpoints
cd metrics
python eval_dir.py --dataset CelebA-HQ --method CAAT
| الوسيط | الوصف | مثال |
|---|---|---|
--dataset | مجموعة البيانات المستخدمة في التقييم | CelebA-HQ, VGGFace2 |
--method | طريقة تشويش الحماية | CAAT, ANTIDB, ADVDM,METACLOAK |
سيتم حفظ نتيجة التقييم في 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. جميع الحقوق محفوظة.