Модель RetinaNet
Модель RetinaNet [1] - метод детекции объектов на изображениях, который существенно обогнал в качестве работы модели YOLO v1 и SSD.
В этой модели использовалась нейросеть FPN для генерации представлений изображения в разном разрешении.
Используя эти представления, удалось производить детекцию как в малых, так и в больших пространственных разрешениях, эффективно выделяя как большие, так и малые объекты соответственно. Причём, что важно, детекторы на каждом слое работали над высокоуровневыми признаками.
Схема модели RetinaNet [1]:
К каждому слою декодера FPN-сети применялись две независимые сети:
-
детектор (классифицирующий рамки),
-
локализатор (корректирующий расположение рамок относительно шаблона, как в SSD).
Подсети детектора и локализатора работали со своими параметрами. Таким образом, локализация формально не зависела от детекции.
При этом к каждому декодировочному слою FPN применялся детектор с одними и теми же параметрами. То же касалось и локализатора.
Классификатор и локализатор представляли собой последовательное применение четырёх свёрток 3x3 с постобработкой функцией активации ReLU.
Классификаторы и локализаторы для каждой позиции применялись раз для шаблонных рамок (anchor boxes). Рассматривались рамки
-
малого, среднего и большого размера;
-
вытянутые вбок, квадратные и вытянутые вверх по форме.
Это давало вариантов для каждой пространственной позиции.
Выходы классификатора и локализатора
Последней нелинейностью в классификаторе была сигмоидная активация, чтобы выдавать вероятности каждого из детектируемых классов. Таким образом, кла ссификатор выдавал выходов. Если все активации были близки к нулю, то это трактовалось как отсутствие объекта.
Последней нелинейностью в локализаторе была тождественная функция, локализатор выдавал выходов: смещение по вертикали и горизонтали относительно центра шаблонной рамки, а также изменение её стандартной ширины и высоты.
Функция потерь
Сопоставление детекций
Поскольку в каждой пространственной позиции для шаблонных рамок предсказываются рамки и классы объектов, для расчёта функции потерь необходимо сопоставить предсказанные детекции с реальными.
Предсказанные детекции сопоставлялись реальным, если мера IoU их пересечения была выше 0.5. Если же она была ниже 0.4, то сопоставлялся фоновый класс (отсутствие объекта). Случаи IoU игнорировались.
Типы потерь
В модели RetinaNet, как и во всех других методах детекции объектов, использовалась функция потерь, равная сумме двух компонент:
-
функции потерь локализации (определение местоположения объектов)
-
функции потерь классификации (корректность определения класса)
В качестве функции потерь локализации использовалась функция потерь Хубера, как дифференцируемая и устойчивая к выбросам.
Классификатор выдавал независимых вероятностей классов (рейтингов, пропущенных через сигмоиду). Фоновому классу отвечала ситуация, когда вероятности всех выделяемых классов близки к нулю. Каждый выход классификатора можно было бы настраивать бинарной кросс-энтропийной функцией потерь: