YOLO — это алгоритм «вы только посмотрите один раз», используемый для обнаружения объектов в реальном времени. В этой статье мы подробно обсудим YOLO.

Он превзошел другие методы обнаружения, включая DPM, R-CNN и Fast-RCNN. DPM использует метод скользящего окна, а RCNN использует метод предложения региона, чтобы сначала сгенерировать x no. потенциальных ограничивающих рамок, а затем запустить классификатор в этих предложенных ограничивающих рамках. В то время как YOLO может предсказывать класс и ограничивающую рамку одновременно.

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

Описание YOLO

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

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

Каждый вывод и метка будут относиться к ячейке. Каждая ограничивающая рамка для каждой ячейки будет иметь [x, y, w, h], где x, y — центр объекта 1, а h, w — высота и ширина ограничивающей рамки. x,y всегда будет меньше единицы, тогда как h,w может быть больше 1.

Фактический результат

Ниже приведена фактическая форма вывода для каждой ячейки, где c1…c20 — классы, которые присутствуют в конкретной ячейке сетки, pc1 — вероятность любого объекта в этой сетке, а x, y — центр объекта, а w, h — высота и ширина объекта.

Target(cell) = [c1, c2, ……,c20,pc1, x, y, w, h] #shape будет s * s * 25.

Прогнозируемый результат

Pred(cell) = [c1, c2, ……,c20, pc1, x, y, w, h, pc2, x, y, w, h] #shape будет s * s * 30.

Наша модель YOLO будет предсказывать в формате pred (cell), где каждая ячейка сетки будет выводить две ограничивающие рамки: одну для горизонтального объекта, а другую для вертикального объекта.

Дизайн сети

Архитектура YOLO основана на модели GoogLeNet для классификации изображений. Наша сеть имеет 24 сверточных слоя, за которыми следуют 2 полносвязных слоя. Вместо начальных модулей, используемых GoogLeNet, мы просто используем слои сокращения 1 × 1, за которыми следуют сверточные слои 3 × 3. Последний слой использует линейную активацию, тогда как другие сверточные слои используют активацию ReLU с утечкой.

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

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

Ссылка:

https://arxiv.org/pdf/1506.02640.pdf