YOLO, сокращение от You Only Look Once, - это сверточная архитектура нейронной сети, разработанная для обнаружения объектов. Существует 3 версии YOLO, а именно версия 1, версия 2 и версия 3. Последние две версии являются улучшением первой. В этой серии статей я расскажу о статье YOLO v1. Обратите внимание, что эта серия предназначена для выделения основных моментов документа с упрощенными пояснениями.

Введение:

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

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

  1. Используйте метод Region Proposal для создания потенциальных ограничивающих рамок на изображении
  2. Запустите классификатор на этих полях
  3. После классификации выполните постобработку, чтобы ужесточить границы ограничивающих рамок, удалить дубликаты.

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

Чем отличается YOLO?

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

  1. СКОРОСТЬ. YOLO чрезвычайно быстр по сравнению со своими предшественниками, поскольку использует единую сверточную сеть для обнаружения объектов. Свертка выполняется для всего входного изображения только один раз, чтобы получить прогнозы.
  2. МЕНЬШЕ ФОНОВЫХ ОШИБОК. YOLO выполняет свертку всего изображения, а не его частей, благодаря чему кодирует контекстную информацию о классах и их внешнем виде. Он делает меньше ошибок при прогнозировании фоновых пятен как объектов, поскольку он просматривает все изображение и рассуждает глобально, а не локально.
  3. ВЫСОКО ОБОБЩЕННЫЙ: YOLO изучает обобщаемые представления объектов, благодаря которым его можно без сбоев применять к новым доменам и неожиданным входам.

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

Сетевой дизайн

YOLO реализован в виде сверточной нейронной сети и был оценен в наборе данных обнаружения летучих органических соединений PASCAL. Он состоит из 24 сверточных слоев, за которыми следуют 2 полностью связанных слоя. Слои разделяются по своим функциям следующим образом:

  1. Первые 20 сверточных слоев, за которыми следуют средний слой объединения и полностью связанный слой, предварительно обучены на наборе данных классификации ImageNet 1000-class.
  2. Предварительная подготовка к классификации выполняется на наборе данных с разрешением 224 x 224
  3. Слои состоят из уменьшающих слоев 1x1 и сверточных слоев 3x3.
  4. Последние 4 сверточных слоя, за которыми следуют 2 полностью связанных слоя, добавляются для обучения сети обнаружению объектов.
  5. Обнаружение объектов требует более детальной детализации, поэтому разрешение набора данных увеличено до 448 x 448.
  6. Последний слой предсказывает вероятности классов и ограничивающие рамки.

Последний слой использует линейную активацию, тогда как другие сверточные слои используют активацию с утечкой ReLU.

Входными данными является изображение 448 x 448, а на выходе - предсказание класса объекта, заключенного в ограничивающую рамку.

Следующая часть серии YOLOv1 Part2 и Part3 расскажет о работе и ограничениях сети соответственно, так что следите за обновлениями :)

Если вам понравился пост или он оказался полезным, пожалуйста, оставьте аплодисменты!

Если вы обнаружите какие-либо ошибки или проблемы в этом сообщении, свяжитесь со мной по адресу [email protected], и я исправлю их.

Ссылка:

Https://arxiv.org/pdf/1506.02640.pdf