Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Филиппов / КЗ Филиппов.docx
Скачиваний:
28
Добавлен:
18.08.2022
Размер:
13.81 Mб
Скачать

Что такое задача детекции объектов на изображении? Опишите архитектуру yolo. Как обучают yolo?

Грубо говоря, задача детекции – найти объекты, классифицировать и

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

Архитектура (из лекций)

Берем сеть для классификации и отрезаем полносвязные слои (и global average pooling если он есть)

Добавляем 1x1 свертку, которая отображает вектор детектора в вектор с

координатами объекта, его размерами и классом

Компоненты вектора:

- Вероятность того, что в окрестности ячейки есть объект, функция активации сигмоида [0,1]

- Смещение центра объекта по x и y внутри окрестности, функция активации сигмоида [0,1]

- Высота и ширина объекта - положительные числа, функция активации exp()

- C-компонент – вероятности классов, функция активации SoftMax [0,1]

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

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

выполняется оценка вероятностей наличия в нем объектов каждого рассматриваемого класса.

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

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

Сеть обучают с составным лоссом, например:

- Бинарная кросс-энтропия для индикатора «есть ли объект»

- Бинарная кросс-энтропия (или квадрат разности) для смещения объекта внутри ячейки

- Квадрат разности для ширины и высоты (для стабильности градиентов обычно берут логарифм высоты/ширины или квадратный корень)

- Кросс-энтропия для вероятностей классов

В таком лоссе есть гиперпараметры – доля каждой из компонент.

Что такое якоря в контексте архитектур yolo, Faster и Mask rcnn?

Проблема: что, если в окрестности одной ячейки есть несколько объектов?

Решение: вместо одного вектора (для одного бокса) предсказываем для N

боксов с разным масштабом и пропорциями - такие боксы называются

якорями.

Что делает YOLO, когда учится на данных (простыми словами):

Шаг 1: Обычно картинки решейпят под размер 416x416 перед началом обучения нейронной сети, чтобы можно было их подавать батчами (для ускорения обучения).

Шаг 2: Делим картинку (пока что мысленно) на клетки размером axa. В YOLOv3-4 принято делить на клетки размером 13x13.

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

Соседние файлы в папке Филиппов