[Обнаружение цели (7)] YOLOv3 - Комплексное улучшение точности

глубокое обучение компьютерное зрение
[Обнаружение цели (7)] YOLOv3 - Комплексное улучшение точности

[Обнаружение цели (1)] Подробное объяснение RCNN - новаторская работа по обнаружению целей с помощью глубокого обучения
[Обнаружение цели (2)] SPP Net - пусть расчет свертки делится
[Обнаружение цели (3)] Быстрый RCNN — пусть модель RCNN будет обучена от начала до конца
[обнаружение цели (4)] Faster RCNN - сеть RPN вместо выборочного поиска
[Обнаружение цели (5)] YOLOv1 - открытие главы по одноэтапному обнаружению цели
[Обнаружение цели (6)] YOLOv2 - Представляем якорь, лучше, быстрее, сильнее
[Обнаружение цели (7)] YOLOv3 - Комплексное улучшение точности
[Обнаружение цели (8)] В этой статье подробно рассматривается функция потери поля регрессии обнаружения цели - принципы IoU, GIoU, DIoU, CIoU и код Python.
[Обнаружение цели (9)] Подробное объяснение FPN - многомасштабное слияние функций через сеть функциональных пирамид
[Обнаружение цели (10)] Подробное объяснение RetinaNet — функция «Потеря очага» доводит одноэтапный алгоритм до пика
[Обнаружение цели (11)] CenterNet — без привязки, без NMS
[Обнаружение цели (12)] FCOS — использование идеи сегментации экземпляра для обнаружения цели Anchor Free

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

  • Backbride Network: выключатель Darknet-19 до Darknet-53.
  • Три выходных векторных слоя с разными масштабами используются для лучшей адаптации к обнаружению мелких объектов.
  • Увеличено количество якорей.
  • Функция потерь: переключение с кросс-энтропийной потери softmax на бинарную кросс-энтропийную потерю.

1. Структура сети Даркнет-53

Как показано на рисунке ниже, Darknet-53 представляет собой классификационную сеть, разработанную автором.Основой YOLOv3 является ряд3*3и1*1Сверточная композиция, за каждым сверточным слоем будет следовать слой BN и функция активации LeakyReLU. Автор считает последний полносвязный слой слоем свертки, всего 53 слоя свертки. Автор также опирается на идею остаточной структуры ResNet, Каждый прямоугольник на рисунке ниже представляет собой остаточную структуру. используется следующий рисунок256*256Вход используется для сети классификации, а обнаружение цели используется416*416Разрешение используется в качестве входных данных сети.Во второй главе ниже в основном рассказывается о том, какие 3 карты функций делать прогнозы.

2. Структура модели YOLOv3

Признаки, изученные мелкой сетью, представляют собой более подробные признаки углов и краев, в то время как признаки, изученные глубокой сетью, более склонны к абстрактным семантическим признакам. В то же время мелкая сеть имеет маленькое рецептивное поле, которое больше подходит для обнаружения мелких объектов, а глубокая сеть имеет большое рецептивное поле, которое больше подходит для предсказания крупных объектов. Подобно идее FPN, автор также использует функции нескольких измерений для предсказания в YOLOv3.

В YOLOV2 автор объединяет более мелкие детали и объединяет их вместе, чтобы сделать окончательный прогноз. YOLOv3 использует Darknet-53 в качестве основы и удаляет полностью связанный слой.Автор выбирает карту объектов, полученную после последних трех остаточных слоев, в качестве трех масштабов карты объектов, которые52*52*256(маленькая цель),26*26*512(средняя цель) и13*13*1024(большая цель). Слияние этих трех слоев характеристик достигается за счет серии сверточных слоев и слоев повышения дискретизации, а функции высокой размерности и функции низкой размерности объединяются и объединяются. Я видел здесь картинку, на которой это было очень ясно сказано, и она была передвинута, как показано ниже.

image.png

Три тензора окончательного выходного прогноза на приведенном выше рисунке имеют размеры:52*52*255,26*26*255и13*13*255, это выполняется в задаче COCO, всего имеется 80 категорий, каждый якорь выводит только прогноз координат и прогноз достоверности одного блока, и каждая позиция генерирует 3 разных якоря, а именно255=3×(80+4+1).

3. Anchor

YOLOV3 используется вместе с механизмом привязки Yolov2, вам необходимо понять взаимосвязь между якорем, предсказанными блоками и блоками GT, вы можете обратиться кПредыдущий YOLOv2середина2.3.3глава. Количество привязок в YOLOv3 увеличилось больше, главным образом потому, что соответствующие привязки генерируются для каждой шкалы на трех шкалах (соотношение размеров получается путем кластеризации в наборе данных coco).

image.png

4. Дизайн функции потерь

Автор не дает четкой функции потери потери в статье.Следующая функция потери в основном основана на авторском описании и коде воспроизведения.Она в основном состоит из трех частей: потеря локализации цели, потеря достоверности и потеря классификации.

image.png

4.1 Потеря доверия

Целевую уверенность можно понимать какconfidence=P(obj)*IOU, включая то, является ли предсказанный кадр целевым, степень совпадения между предсказанным кадром и реальным кадром.iУказывает, есть ли реальная цель в ограничивающей рамке прогнозируемой цели i, 1 означает, что цель есть, 0 означает, что цели нетiявляется IOU прогнозируемой целевой ограничивающей рамки и реальной целевой ограничивающей рамки), где прогнозируемое значение вероятности обрабатывается сигмоидом.

4.2 Потеря классификации

Здесь также используется двухкатегориальная кросс-энтропия.Автор считает, что одна и та же цель может быть отнесена к нескольким категориям одновременно.Например,кошки могут быть классифицированы как кошки и животные,которые могут иметь дело с более сложными сценами ( но я лично считаю, что в общем целеуказании такой ситуации не бывает. ). О в формулеijУказывает, действительно ли j-я цель существует в прогнозируемой ограничивающей рамке цели i, 0 означает отсутствие существования, 1 означает существование, а значение вероятности в формуле также обрабатывается сигмоидой.

4.3 Потеря локализации ограничивающей рамки

Эта часть согласуется с YOLOv2. Он использует метод квадрата ошибки для расчета, выполняет регрессию смещения и вычисляет только ситуацию, когда текущая область имеет цель. Определение смещения выглядит следующим образом:{о(txp)=bxCx,о(typ)=byCytwp=log(wpwa'),thp=log(hpha')txg=gxfloor(gx),tyg=gyfloor(gy)twg=log(wgwa'),thg=log(hgha')\begin{cases} σ(t_x^p) = b_x - C_x, σ(t_y^p) = b_y - C_y\\ t_w^p = log(\frac{w_p}{w_a'}), t_h^p = log (\frac{h_p}{h_a'})\\ t_x^g = g_x - пол(g_x), t_y^g = g_y - пол(g_y)\\ t_w^g = log(\frac{w_g}{w_a' }), t_h^g = log(\frac{h_g}{h_a'}) \end{cases}

от13*13Взяв масштаб в качестве примера, σ в приведенной выше формуле представляет собой сигмовидную функцию;bx,byе[0,13]b_x, b_y ∈ [0, 13]- центральная координата блока, сопоставленная с измерением 0-13;(Cx,Cy)(C_x, C_y),Даbx,byb_x, b_yближайшая дискретная целая точка,wa',ha'е[0,13]w_a', h_a' ∈ [0, 13], — ширина и высота привязки, сопоставленные с размерами 0–13,gx,gyе[0,13]g_x, g_y ∈ [0, 13], — координата центральной точки GT Box, сопоставленная с измерением 0–13;gw,ghе[0,13]g_w, g_h ∈ [0, 13]То же самое справедливо.

5. Эффект и вклад YOLOv3

  • магистраль: YOLOv3 заменил магистральную сеть более высокой производительностью, что повысило точность.
  • Эффект мелких целей стал лучше: YOLOv3 тянет многослойные ветки, а самая большая карта признаков достигает 52×52, что облегчает обнаружение мелких целей.
  • Уровень точности был дополнительно повышен, а скорость вывода также достигла уровня реального времени, превосходя другие модели за тот же период.
  • По сравнению с Faster RCNN уровень точности в отрасли все еще немного ниже, чем у двухэтапного алгоритма.

image.png

Reference:

  1. АР Вест V.org/PDF/1804.02…
  2. blog.CSDN.net/QQ_37541097…
  3. Чжан Сюй.blog.CSDN.net/article/decent…