Серия YOLO — очень классическая структура в области обнаружения целей.Хотя существует множество более качественных и сложных сетей, структура YOLO по-прежнему может вдохновить инженеров-алгоритмов. Глядя на эти 3 статьи, создается впечатление, что это руководство по настройке параметров, в котором вас учат использовать различные приемы для повышения точности сети обнаружения целей в вашей руке.
Источник: Заметки по разработке алгоритмов Xiaofei Public Account.
YOLOv1
Тезис: Ты смотришь только один раз: Унифицированное обнаружение объектов в реальном времени
- Адрес бумаги:АР Вест V.org/ABS/1506.02…
Introduction
YOLO очень прост. Одна сеть может классифицировать и находить несколько объектов одновременно. Нет концепции предложения. Интернет
Unified Detection
Разделите ввод наЕсли центральная точка ГТ находится в решетке, то за предсказание этой ГТ отвечает решетка:
- Прогноз для каждой сетки
bboxes, каждое из которых предсказывает 5 значений:
и доверие, которые являются координатами центральной точки и шириной и высотой bbox соответственно.Координаты центральной точки являются относительными значениями ребер сетки, а ширина и высота являются относительными значениями всего изображения. Достоверность может отражать, содержит ли сетка объекты, и вероятность наличия объектов, которая определяется как
, 0, если объекта нет, и долговая расписка, если есть
- Прогноз для каждой сетки
Условные вероятности классов
, обратите внимание, что прогноз выполняется по сетке, а не по блоку
При тестировании умножьте индивидуальную вероятность bbox на условную вероятность класса, чтобы получить вероятность конечного класса, объединяя точность класса и местоположения
Для PASCAL VOC установите,
,общий
класс, окончательный прогноз
данные
Network Design
Магистральная сеть имеет в общей сложности 24 слоя свертки и 2 полносвязных слоя, модуль обхода, аналогичный начальному модулю, отсутствует.свертка, за которой следует
Свертка для уменьшения размерности. Кроме того, сеть фаст YOLO сокращена до 9 слоев.
Training
Первые 20 уровней магистральной сети подключены к уровню объединения средних значений и полностью подключенному уровню для предварительной подготовки ImageNet.увеличить до
, последний слой использует ReLU, а остальные слои используют дырявый ReLU.
Функция потерь показана в уравнении 3, и один GT соответствует только одному bbox. Так как во время обучения много нецелей и меньше обучающих выборок для позиционирования, используются веса.и
Для повышения детализации обучения позиционированию оно состоит из 3 частей:
- Первая часть - это координатная регрессия, в которой используется потеря квадрата разницы.Чтобы модель уделяла больше внимания небольшой ошибке маленькой цели, а не небольшой ошибке большой цели, потеря квадратного корня используется для замаскируйте ширину и высоту. здесь
Относится к тому, отвечает ли текущий bbox за предсказание GT. Необходимо выполнить два условия: во-первых, центральная точка GT находится в сетке, соответствующей bbox, и, во-вторых, bbox должен находиться в соответствующей сетке.
Самая большая IoU с GT в каждой коробке
- Вторая часть — это регрессия уверенности в bbox,
Как указано выше,
ибо не
Блоку bbox присваивается низкий вес из-за большого количества отрицательных образцов. Если есть цель,
На самом деле это долговая расписка, хотя многие реализации напрямую занимают 1
- Третья часть - это достоверность классификации по отношению к сетке,
Указывает, находится ли центр GT в сетке
Inference
Для PASCAL VOC прогнозируется всего 98 bbox, а результаты обрабатываются с немаксимальным подавлением
Experiments
Суммировать
Новаторский одноэтапный детектор, за которым следуют два полностью подключенных слоя к сверточной сети для локализации и достоверного прогнозирования, а также разработана новая облегченная магистральная сеть, хотя точность имеет определенное расстояние от SOTA, но модель действительно быстрая
Автор упомянул несколько ограничений YOLO:
- Каждая сетка предсказывает только одну категорию и два поля, что не очень хорошо для плотных сцен.
- Сильная зависимость от данных, невозможность обобщения на объекты с необычным соотношением сторон, слишком сильное понижение дискретизации, что приводит к слишком грубым характеристикам
- Функция потерь не делает различий между большими и маленькими объектами и должна уделять больше внимания ошибкам малых объектов, поскольку они оказывают большее влияние на долговую расписку, а ошибки позиционирования являются основным источником ошибок модели.
YOLOv2
Тезис: YOLO9000: лучше, быстрее, сильнее
- Адрес бумаги:АР Вест V.org/ABS/1612.08…
Introduction
Основанный на YOLOv1, YOLOv2 добавляет ряд популярных методов продвижения, более быстрый и точный алгоритм одноэтапного обнаружения целей. Кроме того, автор также предлагает YOLO9000 в сочетании с иерархическим softmax, общей сетью, которая может обнаруживать 9000 типов объектов. Для введения модели она разделена на Better/Faster/Stronger, которые соответственно вводят хитрость для повышения точности, метод ускорения сети и реализацию супермультиклассификации.
Better
YOLOv1 по-прежнему является довольно простой идеей, поэтому автор добавил множество методов для повышения точности в YOLOv2, которая представляет собой полную сеть после тщательного рассмотрения.Добавлены конкретные методы, такие как таблица 2.
-
Batch Normalization
Слой BN может хорошо ускорить конвергенцию сети, добавление слоя BN YOLO может увеличить mAP на 2%, а отсев можно отбросить для обучения
-
High Resolution Classifier
Использование оригинальной магистральной сети YOLOВвод предварительно обучен, а затем напрямую используется
Проведите обучение обнаружению, которое требует, чтобы сеть одновременно адаптировалась к изучению новых пикселей и обнаружению объектов. Чтобы сделать его более плавным, в статье сначала выполняется магистральная сеть перед обучением обнаружению.
Введено 10 тонких настроек эпохи, что привело к увеличению mAP на 4%.
-
Convolutional With Anchor Boxes
YOLOv1 напрямую предсказывает bbox, ссылаясь на Faster R-CNN, используя предустановленную привязку для достижения хороших результатов, YOLOv2 удаляет полносвязный слой и начинает использовать achor
Сначала удалите последний объединяющий слой, чтобы результат оставался высоким, измените входное разрешение на 416, чтобы карта объектов была нечетной, это гарантирует, что будет только одна центральная сетка, что удобно для прогнозирования больших объектов, и окончательный карта признаков - это ввод 1/32 раза, т.е.. После добавления якоря механизм предсказания преобразуется из привязки к сетке в привязку к якорю, и каждый якорь предсказывает
В результате достоверность объектности предсказывает долговую расписку, а достоверность класса предсказывает условную вероятность классификации. После использования привязки уровень точности снизился.Конкретная причина заключается в том, что выводится больше ящиков, увеличивается скорость отзыва и снижается относительная скорость точности.
-
Dimension Clusters
В настоящее время якорь устанавливается вручную, что может быть неоптимальной настройкой.Используйте метод k-средних, чтобы сгруппировать блоки обучающего набора, чтобы получить более точную предустановленную якорь. Кластеризация использует IOU для расчета расстояния, в частности2, как видно из рисунка 2, 5 кластеров являются наиболее рентабельными, что также является параметром, используемым YOLOv2.
-
Direct location prediction
После использования ачора начальная тренировка YOLOv2 очень нестабильна, в основном с центральной точкиПолученная ошибка, метод предложения области использует отношение ширины и высоты относительной привязки к смещению центральной точки, Поскольку ограничения нет, центральная точка может находиться где угодно на графике, что приводит к нестабильному начальному обучению.
Таким образом, YOLOv2 продолжает использовать стратегию YOLO для прогнозирования положения центра относительно ширины и высоты сетки и использует логистическую регрессию, чтобы ограничить значение в пределахИнтервал, а также ширина и высота меняются на соотношение ширины и высоты якоря. Следовательно, каждая сетка предсказывает 5 bbox, каждый bbox содержит 5 содержимого, а центральная точка должна быть дополнена координатами левого верхнего угла сетки. После ограничения центрального положения увеличено mAP на 5%
-
Fine-Grained Features
ПоследнийКарты признаков достаточно для прогнозирования крупных целей, но для обнаружения мелких целей необходимы более мелкие функции.Более быстрые R-CNN и SSD используют карты признаков разных слоев для предсказания, в то время как YOLOv2 предлагает сквозной слой, который объединяет более ранние слои
Объекты выбираются через определенные промежутки времени, и исходный
Карты признаков выбираются как
(то есть разделение карты объектов на несколько
Небольшая сетка, а затем значения всех позиций сетки 1, 2, 3 и 4 объединяются в новую карту объектов), а затем объединяются с окончательной картой объектов для прогнозирования, что дает 1% mAP улучшение
-
Multi-Scale Training
Поскольку YOLOv2 является полностью сверточной сетью, размер входных данных может быть изменен произвольно.Во время обучения входное разрешение произвольно переключается каждые 10 пакетов, а разрешение-кандидат кратно 32, например. В реальных условиях для удовлетворения различных требований к точности и скорости могут использоваться разные разрешения Результаты показаны в таблице 3.
-
Main Result
Faster
Для ускорения YOLOv2 использует новую магистральную сеть Darknet-19, содержащую 19 слоев свертки и 5 слоев пула, используясвертка в пару
Сжимайте результаты свертки, используйте слои BN для стабилизации обучения, ускорения сходимости и регуляризации модели, используйте глобальное объединение для прогнозирования
Stronger
YOLOv2 предлагает совместные данные классификации и данные обнаружения для обучения, чтобы получить модель с супермультиклассификацией
-
Hierarchical classification
Степень детализации меток ImangeNet и COCO различна, поэтому для данных требуется многометочная маркировка, аналогичная делению видов, классов и ворот, и строится WordTree.
Например, норфолк-терьер и другие охотничьи собаки относятся к более низкой классификации узла охотничьей собаки, а вероятность классификации норфолк-терьера является произведением вероятностей всех узлов на пути от корневого узла к текущему узлу.
После того, как ImageNet1k перемаркирован, WordTree имеет в общей сложности 1369 узлов, каждая классификация того же уровня использует softmax и переобучает Darknet-19 на основе WordTree, достигая 71,9% точности топ-1, что лишь немного ниже. Судя по результатам, большинство ошибок являются мелкими ошибками. Например, неправильные результаты также предполагают, что текущим объектом является собака, но порода собаки неверна, поэтому эта иерархическая классификация должна способствовать извлечению направляющих признаков. .
-
Dataset combination with WordTree
Объедините COCO и ImageNet, чтобы получить WordTree на рис. 6, в общей сложности 9418 категорий.
-
Joint classification and detection
Передискретизация набора данных COCO в 4 раза из-за слишком большого количества данных ImageNet. Когда входным изображением являются данные обнаружения, выполняется обратное распространение функции полной потери, а обратное распространение классификации ограничивается уровнем метки и выше GT. Когда входное изображение представляет собой классифицированные данные, берется наивысшая достоверность () блока для обратного распространения классификационной части функции потерь
Training
YOLOv2 аналогичен YOLOv1.Во-первых, GT присваивается bbox с наибольшим IOU в соответствующей сетке по центральной точке (некоторые реализации в Интернете используют якорь с наибольшим IOU, а авторская реализация — bbox, чтобы быть проверенным) Расчет потерь состоит из 3-х частей:
- IOU самого большого bbox в соответствующей сетке меньше, чем у thresh bbox, и возвращается только к объектности, что приводит к 0
- Для bbox с GT вернуть все потери
- Для всех блоков в первых 12 800 итерациях координаты предустановленных блоков регрессируют. Это связано с тем, что регрессий координат очень мало. На ранней стадии пусть прогноз сначала соответствует якорю, чтобы стабилизировать обучение.
Суммировать
YOLOv2 интегрирует некоторые относительно методы работы на основе YOLO и вносит множество улучшений:
- Присоединиться к пакетной нормализации
- Точная настройка с высоким разрешением для обучения магистральной сети
- Присоединитесь к механизму якорной коробки
- Используйте k-mean, чтобы помочь установить якорь
- Используйте метод YOLO, чтобы исправить центральную точку привязки.
- Используйте сквозной слой для объединения низкоразмерных объектов
- Использование мультимасштабного обучения для повышения точности
- Предложите даркнет-19 для ускорения
- Использование иерархической классификации для сверхмногоцелевой классификации
YOLOv3
Документ: YOLOv3: постепенное улучшение
- Адрес бумаги:АР Вест V.org/ABS/1804.02…
Introduction
Публикация YOLOv3 не является полной статьей, это работа автора по организации небольшой работы, в основном с добавлением некоторых эффективных приемов
Bounding Box Prediction
Общая координатная регрессия YOLOv3 аналогична YOLOv2.Функция логистической регрессии по-прежнему используется для прогнозирования объектности якоря.Каждый GT назначает только якорь с наибольшим IOU для генерации всех потерь (в статье написано, что ограничивающая рамка Prior не является ограничивающей рамкой, то есть предустановленной рамкой. Таким образом, можно найти рассчитанный уровень, и общий эффект аналогичен исходному, но ограничивающая рамка, используемая автором, должна быть проверена), другие привязки с GT IOU больше 0,5 не вызывают никаких потерь, а GT с IOU менее 0,5 Anchors вызывают только потерю объектности
Class Prediction
Для поддержки нескольких меток используйте независимую логистическую классификацию для прогнозирования классов и используйте двоичную функцию перекрестной энтропийной потери для обучения.
Predictions Across Scales
YOLOv3 выполняет предсказание bbox на 3 различных картах объектов. Эти карты объектов используют метод, аналогичный FPN, для использования функций высокого уровня, а затем объединяются с функциями низкого уровня. Каждая карта объектов имеет 3 привязки для конкретного использования, сначала с несколькими свертками Слой обрабатывает объединенную карту объектов, а затем прогнозирует трехмерный тензор, содержащий информацию о местоположении, информацию об объектности и информацию о категории соответственно. Например, в COCO размер тензораДанные, то есть канал 255
Feature Extractor
YOLOv3 предлагает новую магистральную сеть Darknet-53, которая объединяет DarkNet-19 и остаточную сеть.свертка и
Добавьте быстрое соединение в комбинацию свертки
Точность DarkNet-53 аналогична текущей сети классификации SOTA, но намного быстрее
Main Result
Суммировать
YOLOv3 — неофициальная версия. Автор внес несколько улучшений, в основном интегрировав некоторые методы для повышения точности:
- Изменить прогнозы достоверности класса на логически независимую классификацию
- В сочетании со структурой FPN для многоуровневого прогнозирования
- Предложить Darknet-53 добавить ярлыки подключения к сети
Conclusion
Серия YOLO — очень классическая структура в области обнаружения целей.Хотя было много более качественных и сложных сетей, структура YOLO по-прежнему может вдохновлять инженеров-алгоритмов. После прочтения этих трех статей возникает ощущение, что это мануал по настройке параметров, обучающий тому, как повысить точность сети обнаружения целей в ваших руках.Различные приемы очень достойны прочтения.
Если эта статья была вам полезна, ставьте лайк или смотрите~
Для получения дополнительной информации, пожалуйста, обратите внимание на общедоступную учетную запись WeChat [Примечания по разработке алгоритмов Xiaofei].