Назад в библиотеку

Обзор актуальных методов глубокого обучения для обнаружения объектов на изображении

Автор: Колбасов С.Ю., Орлов Ю.К.
Источник: Программная инженерия: методы и технологии разработки информационно-вычислительных систем (ПИИВС-2020): сборник научных трудов III научно-практической конференции (студенческая секция), Том 2, 25-26 ноября 2020 г. - Донецк: ДонНТУ, 2020. - с. 189-193.

Аннотация

Колбасов С.Ю., Орлов, Ю.К. Обзор актуальных методов глубокого обучения для обнаружения объектов на изображении Данная статья посвящена обзору нескольких актуальных методов глубокого обучения, которые могут быть использованы для обнаружения объектов на изображении. Рассмотрены принципы работы этих методов, их преимущества и недостатки.

Введение

Одним из важных направлений искусственного интеллекта является компьютерное зрение. Компьютерное зрение – это наука о компьютерах и системах программного обеспечения, которые могут распознавать и понимать изображения и сцены. Компьютерное зрение также делится на различные области, такие как обнаружение объектов, распознавание образов, генерация изображений и многое другое. Обнаружение объектов, скорее всего, является наиболее глубоким и сложным аспектом компьютерного зрения в виду огромного количества практических случаев.

Сегодня основным инструментом решения проблемы обнаружения объектов являются сверточные нейронные сети (СНС), которые широко используются для решения различных проблем компьютерного зрения. Наиболее эффективными сетями для обнаружения объектов являются сети R-CNN, YOLO, SSD и другие, которые используют различные методики для более быстрого и эффективного обнаружения. В данной работе рассмотрены основные принципы работы сетей R-CNN, YOLO и SSD и их различия.

R-CNN

Region Based Convolutional Neural Network (R-CNN) – это алгоритм, который делит изображение примерно на 2000 регионов, а затем к каждому региону применяет сверточную нейронную сеть (см.рис. 1) [1]. Для извлечения регионов используется алгоритм выборочного поиска:

Каждый регион деформируется в квадрат и передается в СНС, которая выдает вектор признаков в качестве выходных данных.

Обнаружение объектов с R-CNN

Рисунок 1 - Обнаружение объектов с R-CNN

Сверточная нейронная сеть в данном случае действует как средство извлечения признаков и выходной полносвязный слой состоит из признаков, извлеченных из изображения. Извлеченные признаки передаются в метод опорных векторов для классификации присутствия объекта в регионе. В дополнение к прогнозированию присутствия объекта в предложенном регионе также прогнозируется четыре значения, которые являются значениями смещения, чтобы повысить точность ограничительной рамки (см.рис. 2). Например, алгоритм мог бы предсказать присутствие человека в регионе, но лицо этого человека будет обрезано. Таким образом, значения смещений помогают в настройке ограничительной рамки предложения региона.

Выходные данные R-CNN

Рисунок 2 – Выходные данные R-CNN

Хотя R-CNN показывает одни из лучших результатов в обнаружении объектов, можно выделить основные проблемы, с которым сталкивается данный метод.

  1. Обучение сети занимает огромное количество времени, поскольку необходимо классифицировать приблизительно 2000 предложенных регионов для каждого изображения из набора данных.
  2. Алгоритм не может быть реализован в режиме реального времени, поскольку для каждого тестового изображения требуется около 47 секунд.
  3. Алгоритм выборочного поиска является фиксированным алгоритмом. Следовательно, на этом этапе обучения не происходит. Это может привести к генерации плохих регионов-кандидатов.

Также существуют некоторые модификации R-CNN, которые затрачивают меньше времени на каждое изображение. К таким модификациям относятся сети Fast R-CNN и Faster R-CNN. Однако R-CNN является базовой сетью, которая использует регионы для обнаружения объектов.

Single Shot Detector

Single Shot MultiBox Detector (SSD) был разработан в 2016 году. Метод достиг новых рекордов с точки зрения производительности и точности для задачи обнаружения объектов, набрав более 74% средней точности со скоростью 59 кадров в секунду на стандартных наборах данных, таких как PascalVOC и COCO. Single Shot в названии означает, что задачи локализации и классификации объектов выполняются за один прямой проход сети [2]. MultiBox – это название методики регрессии ограничивающей рамки, разработанной авторами статьи. Detector означает, что данная сеть является детектором объектов, который также классифицирует эти обнаруженные объекты.

Методика MultiBox заключается в том, что изображение проходит определенное количество сверток для извлечения признаков, в результате чего получается слой признаков размером m x n (количество местоположений) с p каналами, например, 8 x 8 или 4 x 4 (см.рис. 3). К этому слою признаков размером m x n x p применяется свертка размером 3 x 3. Для каждого местоположения получается k ограничительных рамок. Эти k ограничительных рамок имеют разные размеры и пропорции. Для каждой ограничительной рамки вычисляется c оценок класса и 4 смещения относительно исходной формы ограничительной рамки по умолчанию. Таким образом, получается (c + 4)kmn выходов.

Функция потерь методики MultiBox также объединила два важнейших компонента, которые вошли в SSD:

Методика MultiBox

Рисунок 3 – Методика MultiBox

Архитектура SSD основана на архитектуре VGG-16, однако отбрасывает полносвязные слои (см.рис. 4). Причина, по которой VGG-16 была использован в качестве базовой сети, заключается в ее высокой производительности в задачах классификации изображений высокого качества. Вместо оригинальных полносвязных слоев VGG был добавлен набор вспомогательных сверточных слоев (начиная от Сonv6), что позволяет извлекать признаки в нескольких масштабах и постепенно уменьшать размер входных данных для каждого последующего слоя. Сама сеть VGG-16 является классической сверточной нейронной сетью со сверточными слоями и слоями пулинга.

Также можно обратить внимание, что после прохода через нейронную сеть будет сгенерировано 8732 ограничивающие рамки. Для того, чтобы сократить это количество, в конце используется методика подавление немаксимумов (Non-Maximum Suppression), которая отбросит неподходящие рамки по какому-либо критерию. Это гарантирует, что в сети сохранятся только наиболее вероятные прогнозы.

Архитектура SSD сети

Рисунок 4 – Архитектура SSD сети

В результате различных соревнований и тестов было выяснено, что SSD работает хуже, чем R-CNN (и её модификации) на маленьких объектах. В SSD маленькие объекты могут быть обнаружены только в слоях с более высоким разрешением (крайние левые слои), но эти слои содержат низкоуровневые признаки, такие как края или цветные пятна, которые менее информативны для классификации. Однако, в среднем, точность и скорость SSD превосходит R-CNN на несколько процентов, что делает эту сеть хорошим выбором для решения задачи обнаружения объектов на изображении или видео.

You Only Look Once

По сравнению с другими сетями, которые выполняют обнаружение по различным регионам (R-CNN, Fast R-CNN и др.) и, таким образом, выполняют многократное прогнозирование для различных регионов на изображении, архитектура YOLO (You Only Look Once) больше похожа на полную сверточную нейронную сеть (Fully Convolutional Neural Network, FCNN), то есть передает изображение размером n x n один раз через FCNN, и на выходе получается прогноз размером m x m.

Суть работы YOLO заключается в том, что берется входное изображение и разделяется на сетку размером S x S, каждая ячейка сетки предсказывает m ограничительных рамок и оценки уверенности (достоверности) для этих ячеек (см.рис. 5). Эти оценки уверенности отражают то, насколько модель уверена в том, что рамка содержит объект, а также то, насколько точной она считает предсказанную рамку. Если в ячейке нет объектов, оценки достоверности должны быть равны нулю. Для каждой рамки сеть выводит вероятности классов и значения смещения для ограничивающей рамки. Рамки, имеющие вероятность класса выше порогового значения, выбираются и используются для определения местоположения объекта на изображении [3].

Работа сети YOLO

Рисунок 5 – Работа сети YOLO

Всего сеть имеет 24 сверточных слоя (Conv. Layer), за которыми следуют 2 полносвязных слоя (Conn. Layer). Используются чередующиеся сверточные слои размером 1 x 1, которые уменьшают пространственные характеристики признаков от предыдущих слоев (см.рис. 6).

Архитектура сети YOLO

Рисунок 6 – Архитектура сети YOLO

Также существует более быстрая версия – Fast YOLO, которая использует нейронную сеть с меньшим количеством сверточных слоев (9 вместо 24) и меньшим количеством фильтров в этих слоях. За исключением размера сети, все параметры обучения и тестирования одинаковы для YOLO и Fast YOLO.

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

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

Выводы

В ходе написания были рассмотрены наиболее известные методы, использующие сверточные нейронные сети: R-CNN, Single Shot Detector и YOLO. Каждый из рассмотренных методов обладает своими достоинствами и недостатками, а также различными вариациями, которые созданы для улучшения некоторых качеств сетей.

R-CNN обычно показывает высокие значения точности, но являются более медленными. Данный метод следует использовать, если нужно достичь максимальной точности.

Метод SSD является быстрым и часто превосходит R-CNN в точности, однако имеет некоторые проблемы с обнаружением маленьких объектов. Данный метод может эффективно справляться с обнаружением в реальном времени.

Метод YOLO является хорошим выбором из-за скорости обнаружения объектов, однако обычно не превосходит R-CNN в точности. Также YOLO плохо справляется с группами маленьких объектов. Данный метод будет хорошим выбором для обработки в реальном времени и в случае ограниченных вычислительных мощностей.

Литература

  1. Girshick R. Rich feature hierarchies for accurate object detection and semantic segmentation / R. Girshick, J. Donahue, T. Darrell, J. Malik // 2014 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). – IEEE, 2014. – P. 580-587
  2. Liu, W. SSD: Single Shot MultiBox Detector / W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.Y. Fu, A.C. Berg // Computer Vision – ECCV 2016. – Springer, 2016. – P. 21-37
  3. Redmon, J. You Only Look Once: Unified, Real-Time Object Detection / J. Redmon, S. Divvala, R. Girshick, A. Farhadi // 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). – IEEE, 2016. – P. 779-788