Подход на основе сверточного автокодировщика для полууправляемого обнаружения аномалий на изображениях.

В этой статье я буду обсуждать статью [1], в которой предлагается подход на основе AutoEncoder для задачи полууправляемого обнаружения аномалий. Если вы хотите напрямую посмотреть ссылку на репозиторий GitHub, результаты и заключение, прокрутите статью до конца.

Вступление

Обнаружение аномалий относится к задаче поиска необычных экземпляров, которые отличаются от обычных данных [1]. Несоответствующие шаблоны могут упоминаться с использованием разных имен в зависимости от области / домена приложения, таких как аномалии, выбросы, исключения, дефекты, ограничения и т. Д. [2] В некоторых приложениях эти выбросы или аномальные образцы представляют больший интерес. по сравнению с нормальными. В частности, в случае промышленной инспекции поверхностей и управления активами инфраструктуры обнаружение дефектов (аномальных областей) имеет чрезвычайно важное значение.

Но есть несколько проблем, которые усложняют эту задачу.

Проблемы обнаружения аномалий [2]

При обнаружении аномалий существует несколько проблем, и некоторые из основных из них описаны ниже.

  1. Определение нормальной области, которая включает в себя все возможные варианты нормального поведения, является чрезвычайно сложной задачей.
  2. Даже шум отличается от данных, но это не аномалии, и их не следует обнаруживать.
  3. Определение аномалии не только зависит от предметной области, но также может развиваться со временем.
  4. Получить доступ к достаточному количеству помеченных аномальных экземпляров сложно. Поскольку аномалии случаются редко, доступно меньше экземпляров.

Затем мы рассмотрим различные типы обнаружения аномалий в зависимости от наличия меток.

Типы обнаружения аномалий (на основе меток данных)

  1. Под контролем - ярлыки доступны как для нормального (неаномального), так и для аномального класса.
  2. Полу-контролируемый: ярлыки доступны только для обычного класса.
  3. Без учителя - для учебного класса нет ярлыков.

Сложность методов увеличивается вниз по списку, поскольку мы ослабляем допущения ярлыков одно за другим, пока у нас не будет доступа к каким-либо ярлыкам.

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

Обнаружение дефектов [3]

  • Обнаружение дефектов - это особый случай обнаружения аномалий, который находит применение в промышленных условиях и управлении активами инфраструктуры.
  • Дефект продукта - это любая характеристика, которая может помешать его использованию для той цели, для которой он был разработан и изготовлен. [Википедия]
  • Ручной осмотр для обнаружения этих дефектов по-прежнему является нормой и основан на предположении, что дефекты визуально отличаются от поверхности без дефектов.
  • Этот процесс подвержен ошибкам и имеет другие проблемы, такие как подверженность человеческому предубеждению, субъективность, трудоемкость, высокая стоимость, трудоемкость и т. Д.
  • Определение дефекта зависит от промышленного варианта использования, и поэтому опыт и знания, накопленные в одной отрасли, часто не могут быть напрямую перенесены на другую.
  • Иногда дефекты бывает трудно обнаружить, просто взглянув на них.

В результате автоматизация обнаружения дефектов стала предметом активных исследований.

С таким пониманием можно переходить к методологии.

Методология

В статье мы предложили сверточный автокодер, который похож на архитектуру UNet [4] и пытается оценить распределение нормальных данных. Я не буду вдаваться в подробности об автокодировщике, потому что это выходит за рамки данной статьи. Однако для тех из вас, кому это интересно, вы можете прочитать об этом в этом курсе: https://atcold.github.io/pytorch-Deep-Learning/en/week07/07-3/

Гипотеза. Гипотеза заключается в том, что автокодировщик будет изучать представления, которые годятся только для правильного кодирования и декодирования нормальных (бездефектных) областей, и не сможет восстановить аномальные области. Это должно вызвать большие остаточные значения для дефектных областей в остаточных картах, полученных путем вычитания восстановленного изображения из исходного изображения в соответствии со следующим уравнением.

R = X - AE (X), где R - остаток, X - входные данные, а AE (X) - это результат (реконструированное изображение) автокодировщика.

Сетевая архитектура: сетевая архитектура показана ниже.

Кодер (уровни от x1 до x5) использует постепенно уменьшающиеся размеры фильтра от 11x11 до 3x3. Уменьшение размера фильтра выбирается для обеспечения большего поля обзора без необходимости использования большого количества фильтров меньшего размера, что делает сеть излишне очень глубокой. Это связано с тем, что более глубокие сети имеют большую тенденцию к переобучению, если набор данных недостаточно велик, а также могут иметь плохую обобщенность. Декодер имеет размеры ядра в порядке, обратном кодировщику, и использует слои транспонированной свертки. Выходные данные уровней кодировщика объединяются с предыдущими уровнями перед переходом на уровни от x7 до x9.

После каждого слоя применяется пакетная нормализация с последующей активацией ReLU. Вход и выход имеют одинаковые размеры. Функция потерь представляла собой норму L2 или среднеквадратичную ошибку (MSE). Ярлыки были такими же, как и на входном изображении (поскольку это автокодировщик). Оптимизатор Adam использовался с настройками по умолчанию, и обучение проводилось за 50 эпох. Я сделал реализацию PyTorch доступной по адресу:

Https://github.com/msminhas93/anomaly-detection-using-autoencoders

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

Наборы данных

  1. DAGM [5] - это синтетический набор данных для промышленного оптического контроля, содержащий десять классов искусственно созданных текстур с аномалиями. Для этого исследования случайным образом был выбран класс 8 с дефектом трещины. Он (далее DAGMC8) содержит 150 изображений с одним дефектом на изображение и 1000 изображений без дефектов.
  2. RSDD (дискретные дефекты поверхности рельсов) [6] содержат изображения двух разных типов рельсов разного размера. Мы случайным образом выбрали категорию RSDD типа I (называемую RSDDsI), содержащую 67 изображений с экспресс-рельсов для экспериментов. Были доступны маски сегментации, которые использовались для извлечения участков размером 200 × 160 из изображений и были классифицированы на классы аномалий и нормальных явлений для построения обучающего и тестового набора данных.

Полученные результаты

Давайте посмотрим на несколько результатов на вышеуказанных наборах данных. Они были получены путем применения пороговой обработки к остаточным картам. Количественные результаты показаны в следующей таблице, а два примера сегментации показаны на рисунке 2.

Предложенный метод действительно хорошо работал с синтетическим набором данных, что подтверждается как высокими показателями F1, так и хорошо сегментированными результатами. Трещины (дефекты / аномалии) были обнаружены с очень небольшим количеством ложных срабатываний. Однако для набора данных RSDDsI мы видим, что производительность ниже по сравнению. Мы видим, что в результатах есть шум, а темные области по краям также определяются как дефекты (ложные срабатывания). Это может быть отчасти связано с различными условиями освещения и шумом в наборе данных. Здесь важно отметить, что, хотя геометрические формы и степень дефектов на изображениях различались, фактические формы аномалий были сегментированы. Это может быть полезно, когда помимо поиска аномалии также необходимо рассчитать определенные показатели, такие как размеры, площадь и т. Д. Однако отсутствие контроля над типами дефектов, которые может обнаружить сеть, снижает возможности нацеливания по сравнению с контролируемыми подходами.

Заключение и дальнейшая работа

  1. В этой работе был представлен метод полууправляемого обнаружения аномалий с использованием сверточных автокодировщиков.
  2. Предложенная сеть может быть обучена только на нормальных изображениях, не требуя каких-либо ручных аннотаций, поскольку входные изображения используются в качестве меток.
  3. Эксперименты, проведенные с двумя отдельными наборами данных, подтвердили нашу гипотезу о том, что автокодировщик не может восстановить аномальные области должным образом, что приводит к более высоким невязкам в этих областях.
  4. Такой подход привел к впечатляющему среднему баллу F1 0,885. Качественные результаты показали, что этот метод позволяет обнаруживать аномалии, которые могут различаться по форме, геометрии и т. Д.
  5. Однако этот метод чувствителен к выбору порога, а также подвержен ложным срабатываниям, если в обучающих данных слишком много шума.
  6. Для будущей работы можно рассмотреть наборы данных с более чем одним типом дефекта на изображение. Структурированный индекс подобия (SSIM) можно рассматривать как функцию потерь. Можно изучить различные стратегии сравнения восстановленных и входных изображений. Кроме того, необходимо изучить способы сделать сеть инвариантной по отношению к несущественным факторам, таким как освещенность.

Благодарности

Я выполнил эту работу, когда работал аспирантом в Лаборатории визуализации и обработки изображений компании Systems Design Engineering | Университет Ватерлоо (uwaterloo.ca ) под руководством Dr. Джон Зелек . Кроме того, я однозначно рекомендую нашу лабораторию всем, кто хочет быть на переднем крае глубокого обучения, компьютерного зрения, робототехники, медицинской визуализации и т. Д.

Я также хотел бы поблагодарить Министерство транспорта и NSERC (Национальный совет по науке и исследованиям) за предоставление средств, которые поддержали это исследование.

использованная литература

  1. Минхас, М. и Зелек, Дж. (2020) Полу-контролируемое обнаружение аномалий с использованием автоэнкодеров, Журнал компьютерных систем зрения и визуализации, 5 (1), стр. 3. Доступно по адресу: https://openjournals.uwaterloo.ca/index.php/vsl/article/view/1654.
  2. В. Чандола, А. Банерджи и В. Кумар, Обнаружение аномалий: обзор, ACM Computing Surveys (CSUR), vol. 41, нет. 3, стр. 15, 2009. Доступно по адресу: http://cucis.ece.northwestern.edu/projects/DMS/publications/AnomalyDetection.pdf
  3. Манприт Сингх Минхас (2019). Обнаружение аномалий на текстурированных поверхностях. UWSpace. http://hdl.handle.net/10012/15331
  4. О. Роннебергер, П. Фишер и Т. Брокс, U-net: сверточные сети для сегментации биомедицинских изображений, в Медицинских вычислениях изображений и компьютерном вмешательстве (MIC-CAI), сер. LNCS, т. 9351.Springer, 2015, стр. 234–241, (доступно на arXiv: 1505.04597 [cs.CV]). [Онлайн]. Доступно: http://lmb.informatik.uni-freiburg.de/Publications/2015/RFB15a
  5. Т. Х. Маттиас Вилер, Слабо контролируемое обучение для промышленного оптического контроля, https://hci.iwr.uni-heidelberg.de/node/3616.
  6. Дж. Ган, К. Ли, Дж. Ван и Х. Ю, «Система визуального контроля поверхности рельсов на основе иерархического экстрактора», IEEE Sensors Journal, vol. 17, нет. 23, стр. 7935–7944, декабрь 2017 г.