Краткий обзор алгоритма YOLO для обнаружения объектов

Вступление

Прогуляйтесь по улицам Лос-Анджелеса, и я готов поспорить, что пять баксов Model 3 будет проезжать каждую минуту или около того. Самый продаваемый автомобиль Tesla продается по «выгодной» цене чуть менее 40 тысяч долларов и пользуется популярностью по ряду причин. Компания гордится тем, что первой стала популяризировать «умный» электромобиль. Кроме того, сильной стороной Tesla является автопилот. Эта функция позволяет, казалось бы, обычному автомобилю двигаться автономно без участия людей-водителей - технология, которую тогда обычно представляли футуристы. Как они этого добиваются? Проще говоря, их автомобили оснащены камерами и датчиками для сбора необходимых данных об окружающей среде. Эти данные бывают разных форм, но пока давайте просто посмотрим на изображения, поступающие с камеры. Затем это изображение будет пропущено через алгоритмы, предназначенные для обработки изображения, которые, по словам Теслы, построены на основе «глубокой нейронной сети».

Во-первых, я должен извиниться, потому что я не буду вдаваться в подробности об автопилоте Tesla (и я уверен, что некоторые из вас уже заболели Tesla, этой Tesla). Вместо этого то, что будет обсуждаться дальше, будет касаться обработки изображений, а точнее, обработки цифровых изображений. Чакраворти (2018) и Гонсалес (2018) определяют обработку изображений как использование цифровых компьютеров для обработки цифровых изображений с помощью алгоритма. Общие этапы обработки изображений:

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

Возвращаясь к предыдущему определению, акцент делается на слове «алгоритм». Классические подходы к обработке изображений можно найти в форме морфологических алгоритмов, алгоритмов Гаусса, преобразования Фурье, обнаружения краев и вейвлет-алгоритмов. Хотя эти подходы по-прежнему актуальны для понимания концепций, современная техника обработки изображений основана на использовании нейронных сетей (NN). Две наиболее распространенные модели NN - это Generative Adversarial Network (GAN) с ее моделями генератора и дискриминатора и популярная сверточная нейронная сеть (CNN) с несколькими слоями, напоминающими нейроны в человеческом мозгу.

Однако у этих подходов есть несколько серьезных недостатков. Одна из самых примечательных - они не могут работать в реальном времени или, по крайней мере, не могут выполнить свою работу за один запуск. Это создает проблему для реальных случаев, когда нам нужно почти мгновенное обнаружение, например, обнаружение автомобилей на дороге для смены полосы движения или предотвращения столкновения. Чтобы решить эту проблему, группа ученых создала подход под названием YOLO еще в 2016 году. Со временем этот подход стал более популярным и превратился в более зрелую версию, последняя из которых - YOLOv4, выпущенная в 2020 году (также доступны многие дополнительные работы, включая неофициальный YOLOv5).

ЙОЛО

YOLO - это аббревиатура от «You Only Look Once». Из статьи, опубликованной его создателями, YOLO использует проблему регрессии для выполнения задач обнаружения объектов, таких как разделение ограничивающих рамок и связывание вероятностей классов. По своей сути YOLO - это тип CNN, работающий в одной сети. Благодаря этому его можно легко оптимизировать для достижения лучшей производительности. Имейте в виду, что YOLO полагается на регрессию, а не на проблемы классификации, используемые в CNN. YOLO имеет три основных преимущества по сравнению с традиционными моделями обнаружения объектов:

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

Мы подошли к сути алгоритма YOLO: как он работает. YOLO построен на трех основных методах. Это остаточные блоки, регрессия ограничивающего прямоугольника и пересечение с объединением (IOU).

Остаточные блоки

Сначала алгоритм берет входное изображение и разбивает его на несколько ячеек или сеток. Классификация и локализация объектов выполняются независимо в каждой ячейке. Если какой-либо объект найден, структура затем прогнозирует ограничивающие рамки и назначает вероятности классов соответствующим объектам. Оценка достоверности для каждой ячейки рассчитывается путем умножения вероятностей на Intersection Over Union (IOU) между предсказанной ячейкой и основной истиной. Мы рассмотрим долговые расписки более подробно позже в этой статье.

Ограничивающие рамки

Как указывалось ранее, объект, идентифицированный в определенной ячейке, будет отмечен ограничивающей рамкой. Каждый ограничивающий прямоугольник состоит из 5 атрибутов прогноза:

  1. bh: высота поля
  2. bw: ширина рамки
  3. bx, by: центр поля
  4. c: класс объекта
  5. pc: уверенность в представлении объекта

Координаты (bx, by) представляют центр поля относительно границ ячейки. Ширина и высота прогнозируются относительно всего изображения. Каждая ячейка также предсказывает, присутствует объект или нет. Это показано предсказанием достоверности p c, которое представляет долговую расписку между предсказанным блоком и любым наземным блоком истинности. Если предполагается, что объект присутствует, модель затем определит, к какому классу c принадлежит объект.

Пересечение через союз (IOU)

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

Все сразу

Выполнение YOLO с первого взгляда можно увидеть на иллюстрации выше. Во-первых, он делит изображение на сетку S × S, и для каждой ячейки сетки прогнозируются ограничивающие прямоугольники B, достоверность для этих прямоугольников и C вероятности классов. Судя по изображению, можно выделить три возможных класса: собаки, велосипеды и автомобили. Граничные рамки формируются в сетках с наличием объектов. Для определения окончательных результатов модель использует долговую расписку, чтобы гарантировать, что предсказанные ограничивающие прямоугольники равны реальным прямоугольникам объектов. Это явление устраняет ненужные ограничивающие рамки, не соответствующие характеристикам объектов. Конечный результат будет состоять из уникальных ограничивающих рамок, идеально подходящих к объектам. В этом случае собака представлена ​​синей коробкой, велосипед - желтой. и машина с красной коробкой.

Заключение

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

Эта статья написана кем-то, кто плохо знаком с глубоким обучением в образовательных целях. Не стесняйтесь вносить поправки или озвучивать свое мнение, связавшись со мной!

Ссылка

Дж. Редмон, С. Диввала, Р. Гиршик и А. Фархади, «Вы посмотрите только один раз: унифицированное обнаружение объектов в реальном времени», Конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 2016 г. , 2016, стр. 779–788, DOI: 10.1109 / CVPR.2016.91.