Loss функции GIoU, DIoU, CIoU

Тут указано, как рассчитывается мера точности IoU. Данная мера точности применяется в задачах детектирования объектов и сегментации. Основным недостатком IoU является то, что он принимает нулевое значение, когда нет перекрытия (между блоками), но не может указать, насколько далеко эти блоки отделены друг от друга. Если использовать меру IoU в качестве loss функции для обучения, то из-за того, что IoU = 0, результатом будет проблема исчезающего градиента и, следовательно, никакого обучения. Чтобы преодолеть этот недостаток, был введен новый способ доступа (GIoU).

 GIoU(Generalized Intersection over Union)

Мера GloU состоит в следующем. Для двух областей A и B мы находим наименьшую область (скажем, C), которая охватывает обе A и B. Затем мы вычисляем соотношение между объемом, занимаемым C, за исключением AUB (A объединение B), и делим его на общую площадь, занимаемую C. С помощью этой техники модель может работать на пустом расстоянии между двумя блоками и, таким образом, приближает предсказанный блок к истинной действительности за счет уменьшения пустого пространства. Ссылка на оригинальную статью (а ниже сам алгоритм): https://giou.stanford.edu/GIoU.pdf

1_Q51RfHXjIW7rNAOpWm4CGg

Как мы можем сделать на шаге 5 выше: самый маленький прямоугольник («C») будет включать в себя как предсказанные, так и истинные блоки. Подобно IoU, GIoU также масштабируется инвариантно.

 DIoU(Distance Intersection over Union

DIoU за счет включения нормализованного расстояния между предсказанным блоком и целевым блоком, которое сходится намного быстрее при обучении, чем потери IoU и GIoU. Ниже на рисунке представлена регрессия ограничивающей рамки для GIoU (первая строка) и DIoU (вторая строка). Зеленый прямоугольник - это целевой, а черный - якорный (anchor) (про якорные блоки можно почитать тут https://d2l.ai/chapter_computer-vision/anchor.html). Синий прямоугольник - предсказанный прямоугольник для GIoU, а красный - соответственно для DIoU

2021-11-18_15-22-46

Оригинальная статья:  https://arxiv.org/abs/1911.08287

GIoU будет сходиться к IoU в случае включения ограничивающих рамок. Был введен еще один новый критерий оценки (например, DIoU), где к IoU добавляется штрафной член, чтобы уменьшить нормализованное расстояние между центральными точками двух ограничивающих прямоугольников, что приводит к более быстрой сходимости по сравнению с потерями GIoU.

Замечено, что предсказанный блок сходится (с использованием DIoU) к истинному блоку всего за 120 итераций, в то время как GIoU терпит схождение даже после 400 итераций.

DIoU также использовался в пути NMS для подавления сильно перекрывающихся ограничивающих рамок вывода.

Потери DIoU хорошо обрабатываются в сценарии неперекрывающихся ограничивающих рамок (истинность относительно предсказанного), аналогично GIoU.

Когда два блока идеально совпадают, тогда потеря (IoU) = потеря (GIoU) = потеря (DIoU) = 0. В то время как, когда два блока находятся далеко, потеря (GIoU) = потеря (DIoU) = 2.

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

Когда есть включение, т.е. один блок заключен в другой, DIoU сходится намного быстрее по сравнению с GIoU. 

 CIoU(Complete Intersection over Union)

CIoU - это вариант DIoU с дополнительными метриками, представляющим соотношение сторон, площади перекрытия и расстоянием до центра. Описана в той же статье, что и GIoU, но математически довольно сложна, поэтому я не привожу ее тут