[ ICLR 24 ] AnomalyCLIP: Объектно-независимое быстрое обучение для обнаружения аномалий с нулевым выстрелом
Цихан Чжоу*, Гуаньсун Пан*, Ю Тянь, Шибо Хэ, Цзиминь Чен.
19.03.2024 : Код вышел!!!
08.08.2024 : Обновил код для тестирования одного образа.
Для обнаружения аномалий с нулевым выстрелом (ZSAD) требуются модели обнаружения, обученные с использованием вспомогательных данных для обнаружения аномалий без какой-либо обучающей выборки в целевом наборе данных. Это важнейшая задача, когда обучающие данные недоступны из-за различных проблем, например, конфиденциальности данных, однако она является сложной, поскольку модели необходимо обобщать на аномалии в различных областях, где появление объектов переднего плана, аномальных областей и фоновых особенностей, такие как дефекты/опухоли на разных продуктах/органах, могут существенно различаться. Недавно большие предварительно обученные модели языка видения (VLM), такие как CLIP, продемонстрировали сильную способность распознавания нулевого кадра в различных задачах зрения, включая обнаружение аномалий. Однако их производительность ZSAD слаба, поскольку VLM больше фокусируются на моделировании семантики классов объектов переднего плана, а не на аномалиях/нормальности изображений. В этой статье мы представляем новый подход, а именно AnomalyCLIP, для адаптации CLIP для точного ZSAD в различных областях. Основная идея AnomalyCLIP заключается в изучении объектно-независимых текстовых подсказок, которые фиксируют общую нормальность и аномальность изображения независимо от его объектов на переднем плане. Это позволяет нашей модели сосредоточиться на аномальных областях изображения, а не на семантике объекта, обеспечивая обобщенное распознавание нормальности и аномалий для различных типов объектов. Крупномасштабные эксперименты с 17 реальными наборами данных для обнаружения аномалий показывают, что AnomalyCLIP обеспечивает превосходную производительность при обнаружении и сегментации аномалий в наборах данных с самой разнообразной семантикой классов из различных областей проверки дефектов и медицинской визуализации. Все эксперименты проводятся в PyTorch-2.0.0 с одной видеокартой NVIDIA RTX 3090 24 ГБ.
Загрузите набор данных ниже:
Промышленный домен: MVTec, VisA, MPDD, BTAD, SDD, DAGM, DTD-Synthetic.
Медицинская область: КТ головы, МРТ головного мозга, Br35H, COVID-19, ISIC, CVC-ColonDB, CVC-ClinicDB, Квасир, Эндо, TN3K.
Ссылка на Google Диск (часто запрашиваемый набор данных): SDD, Br35H, COVID-19.
Возьмем, к примеру, MVTec AD (с несколькими категориями аномалий).
Структура папки MVTec:
mvtec/ │ ├── meta.json │ ├── bottle/ │ ├── ground_truth/ │ │ ├── broken_large/ │ │ │ └── 000_mask.png | | | └── ... │ │ └── ... │ └── test/ │ ├── broken_large/ │ │ └── 000.png | | └── ... │ └── ... │ └── ...
компакт-дискgenerate_dataset_json Python mvtec.py
Возьмем, к примеру, SDD (с одной категорией аномалий).
Структура папки SDD:
SDD/ │ ├── electrical_commutators/ │ └── test/ │ ├── defect/ │ │ └── kos01_Part5_0.png | | └── ... │ └── good/ │ └── kos01_Part0_0.png │ └── ... │ └── meta.json
компакт-дискgenerate_dataset_json Python SDD.py
Выберите соответствующий скрипт и запустите его (мы предоставляем все скрипты для наборов данных, о которых сообщил AnomalyCLIP). Сгенерированный JSON хранит всю информацию, необходимую AnomalyCLIP.
Создайте новый скрипт JSON в папке свертыванияgenerate_dataset_json в соответствии со структурой сгиба ваших собственных наборов данных.
Добавьте соответствующую информацию о вашем наборе данных (т. е. имя набора данных и имена классов) в скрипт dataset.py.
Быстрый старт (используйте предварительно обученные веса)
Баш test.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} }