Найти в Дзене

Принцип работы нейронной сети YOLO (You Only Look Once)

YOLO – это семейство алгоритмов распознавания объектов на изображениях и видео, которые отличаются высокой скоростью работы. В основе нейронной сети YOLO лежит принцип прямого предсказания ограничивающих рамок и классов объектов за один проход нейронной сети, что отличает её от других нейронных сетей, основанных на нескольких этапах, таких как предварительное выделение областей с возможным расположением искомых объектов, уточнение данных областей, и в последствие – классификацию областей. Каждая рамка описывается 5 значениями – координата центра рамки (x, y), ширина рамки (w), высота рамки (h) и вероятность наличия объекта в рамке (p0). Вероятность наличия объекта в рамке называется, как Objectness Score, и обозначается как p0. Bounding Boxe(s) – ограничивающая прямоугольная рамка, в которой находится искомый объект. B – это количество bounding boxes, которые предсказывает каждая ячейка. C – это количество различных классов, к которым относятся распознанные объекты. p1, p2, …, pc – это
Оглавление
Присоединяйтесь к образовательному курсу YOLO: https://stepik.org/a/202357
Присоединяйтесь к образовательному курсу YOLO: https://stepik.org/a/202357
YOLO – это семейство алгоритмов распознавания объектов на изображениях и видео, которые отличаются высокой скоростью работы. В основе нейронной сети YOLO лежит принцип прямого предсказания ограничивающих рамок и классов объектов за один проход нейронной сети, что отличает её от других нейронных сетей, основанных на нескольких этапах, таких как предварительное выделение областей с возможным расположением искомых объектов, уточнение данных областей, и в последствие – классификацию областей.
YOLO делит входное изображение на сетку из ячеек
YOLO делит входное изображение на сетку из ячеек

Коротко о главном. Как работает YOLO?

  1. Разделение изображения. Входное изображение делится на сетку из ячеек.
  2. Предсказание для каждой ячейки. Каждая ячейка отвечает за предсказание определённого количества ограничивающих прямоугольных рамок (bounding boxes). Такое количество рамок обозначается как B. Каждая ячейка также отвечает за предсказание вероятностей принадлежности объекта в каждой рамке к различным классам. Количество различных классов обозначается как C и определяется решаемой задачей, например 3 класса – лимон, лайм, апельсин. При этом C содержит в себе: p1, p2, …, pc.
  3. Выбор рамок с высокой вероятностью. Применяется заранее заданный порог вероятности, чтобы отфильтровать рамки с низкой вероятностью наличия объекта в рамке – сравниваются значения вероятности p0 каждой рамки.
  4. Объединение перекрывающихся рамок для одного и того же объекта с помощью алгоритма Non-Maximum Suppression. Алгоритм позволяет удалить избыточно перекрывающиеся рамки, оставляя только наиболее подходящую рамку для одного и того же объекта.
Каждая рамка описывается 5 значениями – координата центра рамки (x, y), ширина рамки (w), высота рамки (h) и вероятность наличия объекта в рамке (p0). Вероятность наличия объекта в рамке называется, как Objectness Score, и обозначается как p0.

Основные обозначения

Bounding Boxe(s) – ограничивающая прямоугольная рамка, в которой находится искомый объект.
B – это количество bounding boxes, которые предсказывает каждая ячейка.
C – это количество различных классов, к которым относятся распознанные объекты.
p1, p2, …, pc – это вероятности соответствия объекта определённому классу.
p0 – это вероятность наличия объекта в рамке, Objectness Score.
x, y – это координаты центра рамки по ширине и высоте.
w – это ширина рамки.
h – это высота рамки.

В чём преимущества YOLO?

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

Глобальный контекст. YOLO рассматривает все изображение целиком при распознавании, что позволяет нейронной сети учитывать контекст и лучше обнаруживать объекты в сложных сценах.

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

В чём недостатки YOLO?

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

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

Какие существуют версии YOLO?

Существуют различные версии YOLO, которые были разработаны для улучшения точности и скорости алгоритма. Некоторые из наиболее популярных версий включают YOLOv4, YOLOv5, YOLOv7 и YOLOv8. Каждая новая версия – YOLOv9, YOLOv10 и YOLOv11 – предлагает улучшения в архитектуре нейронной сети и методах обучения нейросети.

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

🖐 Продолжайте учиться!

🎓 Присоединяйтесь к образовательному курсу YOLO: https://stepik.org/a/202357