[ ICLR 24 ] AnomalyCLIP: التعلم السريع الحيادي للكائنات للكشف عن الحالات الشاذة بدون إطلاق النار
بواسطة كيهانغ تشو*، غوانسونغ بانغ*، يو تيان، شيبو هي، جيمينغ تشين.
03.19.2024 : تم إصدار الكود !!!
08.08.2024 : تحديث الكود الخاص باختبار صورة واحدة.
يتطلب الكشف عن الحالات الشاذة بدون إطلاق النار (ZSAD) نماذج كشف مدربة باستخدام البيانات المساعدة لاكتشاف الحالات الشاذة دون أي عينة تدريب في مجموعة البيانات المستهدفة. إنها مهمة حاسمة عندما لا يمكن الوصول إلى بيانات التدريب بسبب مخاوف مختلفة، على سبيل المثال، خصوصية البيانات، ومع ذلك فهي صعبة نظرًا لأن النماذج تحتاج إلى التعميم على الحالات الشاذة عبر مجالات مختلفة حيث يظهر ظهور الكائنات الأمامية والمناطق غير الطبيعية وميزات الخلفية، مثل العيوب/الأورام في المنتجات/الأعضاء المختلفة، يمكن أن تختلف بشكل كبير. أظهرت نماذج لغة الرؤية الكبيرة المدربة مسبقًا (VLMs) مؤخرًا، مثل CLIP، قدرة قوية على التعرف على اللقطات الصفرية في مهام الرؤية المختلفة، بما في ذلك الكشف عن الحالات الشاذة. ومع ذلك، فإن أداء ZSAD الخاص بها ضعيف نظرًا لأن VLMs تركز بشكل أكبر على نمذجة دلالات الفئة للكائنات الأمامية بدلاً من الشذوذ/الحالة الطبيعية في الصور. في هذه الورقة نقدم نهجًا جديدًا، وهو AnomalyCLIP، لتكييف CLIP من أجل ZSAD الدقيق عبر مجالات مختلفة. تتمثل الفكرة الرئيسية لـ AnomalyCLIP في تعلم مطالبات النص الحيادية للكائنات التي تلتقط الحالة الطبيعية العامة والشذوذ في الصورة بغض النظر عن الكائنات الأمامية. يسمح هذا لنموذجنا بالتركيز على مناطق الصورة غير الطبيعية بدلاً من دلالات الكائن، مما يتيح التعرف على الحالة الطبيعية المعممة والتعرف على الشذوذ في أنواع متنوعة من الكائنات. تُظهر التجارب واسعة النطاق التي أجريت على 17 مجموعة بيانات للكشف عن الحالات الشاذة في العالم الحقيقي أن AnomalyCLIP يحقق أداءً فائقًا بدون إطلاقة للكشف عن الحالات الشاذة وتقسيمها في مجموعات البيانات ذات دلالات فئة متنوعة للغاية من مختلف مجالات فحص العيوب والتصوير الطبي. يتم إجراء جميع التجارب في PyTorch-2.0.0 باستخدام NVIDIA RTX 3090 24GB واحد.
قم بتنزيل مجموعة البيانات أدناه:
المجال الصناعي: MVTec، VisaA، MPDD، BTAD، SDD، DAGM، DTD-Synthetic
المجال الطبي: HeadCT، BrainMRI، Br35H، COVID-19، ISIC، CVC-ColonDB، CVC-ClinicDB، Kvasir، Endo، TN3K.
رابط Google Drive (مجموعة البيانات المطلوبة بشكل متكرر): SDD، Br35H، COVID-19
خذ MVTec AD على سبيل المثال (مع فئات شذوذ متعددة)
هيكل مجلد MVTec:
mvtec/ │ ├── meta.json │ ├── bottle/ │ ├── ground_truth/ │ │ ├── broken_large/ │ │ │ └── 000_mask.png | | | └── ... │ │ └── ... │ └── test/ │ ├── broken_large/ │ │ └── 000.png | | └── ... │ └── ... │ └── ...
مؤتمر نزع السلاح generator_dataset_json بيثون mvtec.py
خذ SDD على سبيل المثال (مع فئة شذوذ واحدة)
هيكل مجلد SDD:
SDD/ │ ├── electrical_commutators/ │ └── test/ │ ├── defect/ │ │ └── kos01_Part5_0.png | | └── ... │ └── good/ │ └── kos01_Part0_0.png │ └── ... │ └── meta.json
مؤتمر نزع السلاح generator_dataset_json بيثون SDD.py
حدد البرنامج النصي المقابل وقم بتشغيله (نحن نقدم كافة البرامج النصية لمجموعات البيانات التي أبلغ عنها AnomalyCLIP). يقوم JSON الذي تم إنشاؤه بتخزين جميع المعلومات التي يحتاجها AnomalyCLIP.
قم بإنشاء برنامج نصي JSON جديد في الطية generator_dataset_json وفقًا لبنية الطية لمجموعات البيانات الخاصة بك.
أضف المعلومات ذات الصلة بمجموعة البيانات الخاصة بك (على سبيل المثال، اسم مجموعة البيانات وأسماء الفئات) في البرنامج النصي dataset.py
بداية سريعة (استخدم الأوزان المدربة مسبقًا)
اختبار باش.sh
تدريب الأوزان الخاصة بك
باش قطار.sh
نشكرك على مستودع الأكواد: open_clip، وDualCoOp، وCLIP_Surgery، وVAND.
إذا وجدت هذه الورقة والمستودع مفيدًا، فيرجى الاستشهاد بمقالتنا.
@inproceedings{zhou2023anomalyclip, title={AnomalyCLIP: Object-agnostic Prompt Learning for Zero-shot Anomaly Detection}, author={Zhou, Qihang and Pang, Guansong and Tian, Yu and He, Shibo and Chen, Jiming}, booktitle={The Twelfth International Conference on Learning Representations}, year={2023} }