Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Anomaly Detection

Обнаружение аномалий выявляет точки данных, события или области изображения, отклоняющиеся от нормальных закономерностей. Типы аномалий, основные методы, визуальный контроль и код.

Обнаружение аномалий — это задача выявления точек данных, событий или областей изображения, отклоняющихся от установленного шаблона нормального поведения. Её также называют обнаружением выбросов, а в промышленном компьютерном зрении часто называют обнаружением дефектов или автоматизированным визуальным контролем. Аномалии встречаются редко, отличаются друг от друга и часто имеют ранее неизвестный характер. Поэтому большинство методов учатся распознавать норму на преимущественно нормальных данных, присваивают каждому новому входному объекту оценку аномальности, отражающую его отклонение от нормы, и отмечают объекты, оценка которых превышает порог. Такие методы применяют для обнаружения царапин и вмятин на производственных линиях, мошеннических операций по банковским картам, сетевых вторжений, неисправностей оборудования и подозрительных находок при анализе медицинских изображений.

Типы аномалий#

  • Точечные аномалии: Отдельное значение или изображение, сильно отличающееся от остальных, например транзакция, сумма которой в 50 раз превышает обычные расходы клиента.
  • Контекстные аномалии: Значения, нормальные в одном контексте и аномальные в другом. Температура воздуха 30 °C обычна для июля в Нью-Йорке, но тревожна для января там же.
  • Коллективные аномалии: Последовательности или группы объектов, которые вместе выглядят аномально, хотя каждый объект по отдельности кажется нормальным. Например, множество попыток входа из разных стран за одну минуту, каждая из которых сама по себе не вызывает подозрений.

Как работает обнаружение аномалий#

Методы различаются тем, как они моделируют нормальные данные:

  • Статистические правила: Отмечают значения, отклоняющиеся от среднего более чем на заданное число стандартных отклонений, или выходящие за диапазон, определённый межквартильным размахом.
  • Расстояние и плотность: Отмечают точки, далёкие от ближайших соседей или находящиеся в разреженных областях, как это делает локальный фактор выброса.
  • Изоляция: Isolation Forest разделяет данные случайными разрезами; аномалии изолируются за меньшее число разрезов, чем нормальные точки.
  • Одноклассовые модели: Одноклассовый метод опорных векторов (SVM) обучается строить границу вокруг обучающих данных и отмечает точки за её пределами.
  • Реконструкция: Автоэнкодер, обученный только на нормальных данных, хорошо восстанавливает нормальные входные данные и плохо — аномальные. Поэтому ошибку реконструкции используют как оценку аномальности.
  • Визуальные методы на основе признаков: PatchCore сохраняет в банке памяти признаки фрагментов изображений без дефектов, извлечённые сетью с предварительным обучением на ImageNet, и оценивает каждый тестовый фрагмент по расстоянию до ближайшего сохранённого. На эталонном наборе MVTec AD метод достигает AUROC на уровне изображения до 99,6%.

scikit-learn различает обнаружение выбросов, когда в обучающих данных уже есть некоторые аномалии, и обнаружение новизны, когда обучающие данные чистые и оцениваются только новые входные данные. Скрипт ниже обучает Isolation Forest на показаниях исправного оборудования и оценивает четыре новых показания:

import numpy as np
from sklearn.ensemble import IsolationForest

# 1,000 readings from a healthy machine: temperature (C) and vibration (mm/s)
rng = np.random.default_rng(0)
normal = rng.normal([60, 2.0], [3, 0.3], size=(1000, 2))

# Learn what normal looks like, then score new readings
detector = IsolationForest(random_state=0).fit(normal)
new = np.array([[61, 2.1], [59, 1.8], [75, 2.0], [60, 4.5]])
labels = detector.predict(new)  # 1 = normal, -1 = anomaly
scores = detector.decision_function(new)  # below 0 = anomaly

for (temp, vibration), label, score in zip(new, labels, scores):
    status = "anomaly" if label == -1 else "normal"
    print(f"{temp:.0f} C, {vibration:.1f} mm/s -> {status} (score {score:+.3f})")

Два показания, близкие к среднему обучающей выборки, получают оценки +0,080 и +0,076 и проходят проверку. Показание при перегреве до 75 °C получает оценку −0,139, а показание, где вибрация более чем вдвое превышает норму, — −0,152, поэтому оба помечаются как аномальные, хотя модель не видела ни одного примера этих неисправностей.

Визуальное обнаружение аномалий#

Визуальный контроль выполняют одним из двух способов — в зависимости от того, можно ли собрать и разметить дефекты. Если типы дефектов известны и есть примеры, модели детекции объектов или сегментации экземпляров, обученные на классах вроде царапин, вмятин и трещин, находят каждый дефект и определяют его тип. Модель детекции или сегментации YOLO26, дообученная на таких классах, возвращает для каждого найденного на изображении дефекта рамку или маску, класс и оценку уверенности. Если дефекты редкие или непредсказуемые, методы с одним классом обучаются только на изображениях исправных деталей и отмечают всё, что от них отличается; это позволяет обнаруживать и типы дефектов, о которых никто не предполагал. Набор данных MVTec AD, включающий более 5000 изображений в 15 категориях объектов и текстур и только изображения без дефектов в обучающих наборах, служит стандартным бенчмарком для этого подхода. Ultralytics Platform также предоставляет его как набор данных для детекции при обучении с учителем. В библиотеках с открытым исходным кодом, например Anomalib, реализованы PatchCore и похожие методы.

Качество детекторов аномалий оценивают с помощью метрик, не зависящих от порога, например площади под ROC-кривой (AUC), а также точности и полноты при выбранном пороге, которые отражают ложные срабатывания и пропуски, с которыми столкнутся операторы. Поскольку аномалии редки, порог часто задают по оценкам на нормальных валидационных изображениях, например выбирают оценку, которую превышают только 1% исправных деталей.

  • Обнаружение объектов: Находит экземпляры из фиксированного набора размеченных классов. Детектор объектов, обученный обнаруживать дефекты, находит только те типы дефектов, на которых он обучался.
  • Сдвиг данных: Изменение распределения целого потока входных данных с течением времени, например неделя изображений с более низкой яркостью. Обнаружение аномалий оценивает входные данные по отдельности.
  • Обнаружение данных вне распределения (OOD): Отмечает входные данные, непохожие на обучающие данные модели, чтобы модель могла воздержаться от ответа или передать задачу человеку. Это обнаружение новизны, применённое к входным данным работающей модели.
  • Обнаружение изменений: Сравнивает изображения одной и той же сцены, сделанные в разное время, например спутниковые снимки до и после наводнения, чтобы найти изменения.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения