Если вы хотите объяснить видео, пожалуйста, обратите внимание на мой личный паблик WeChat: small confetti
Пожалуйста, поставьте мне лайк, это то, что заставляет меня хорошо выглядеть и писать!
YOLOv1 — это первый одноэтапный алгоритм обнаружения объектов после Faster R-CNN, создающий новый жанр алгоритмов обнаружения объектов.Начиная с YOLOv1, обнаружение объектов в основном делится на два жанра: один этап и два этапа.
На рисунке ниже координаты YOLO на протяжении всей истории алгоритмов обнаружения объектов.
задний план
Можно видеть, что YOLOv1 был предложен после Faster R-CNN, но, глядя на время, когда arXiv был впервые загружен (см. рисунок ниже), YOLOv1 и Faster R-CNN в основном были предложены одновременно, поэтому, когда автор YOLO начал писать, Fast R-CNN — это SOTA (современное), Faster R-CNN еще не родился, поэтому основным объектом сравнения авторов YOLO является Fast R-CNN. Разумеется, автор добавит результаты сравнения с Faster R-CNN для справки.
Ниже приводится краткий анализ принципа Fast R-CNN.
Быстрый R-CNN в основном состоит из четырех частей (как показано на рисунке ниже), во-первых, это общий экстрактор признаков, а затем традиционный алгоритм предложения региона. Извлеченная карта объектов помещается в соответствующую часть ROI, которая вырезается, и после объединения ROI она преобразуется в карту объектов с фиксированным разрешением и вводится в часть обнаружения объекта, чтобы вернуться к категории объекта и ограничивающей рамке для завершения. весь процесс обнаружения объекта.
Поскольку Fast R-CNN разделен на два процесса: «Извлечение функции» и «Предложение региона», это два этапа, что часто приводит к высокой точности Fast R-CNN, но скорость не может достичь производительности в реальном времени.
Предложение YOLO состоит в том, чтобы устранить недостатки Fast R-CNN и объединить два этапа в один для достижения производительности в реальном времени.
Idea
Как YOLO объединяет два этапа в один?
1) Сначала разделите входное изображение на сетку 7x7
Видно, что ячейка предсказывает два ящика, но при выводе может быть выведен только один результат предсказания.Как правило, в качестве результата предсказания этой ячейки берется поле предсказания с большим значением достоверности C, а категория ящика категория с наибольшим значением p_ci. 3) Поскольку в ячейке есть два поля предсказания, как рассчитать основную истину каждого поля предсказания? Во-первых, ячейке, в которой расположен ее центр, назначается поле Истина на земле.Как показано на рисунке ниже, зеленое поле Истина на земле велосипеда назначается розовой ячейке.
Во-вторых, в ячейке Ground Truth будет назначен предиктору с наибольшим IOU, как показано на рисунке ниже, два поля предсказания в розовой ячейке — это красные поля, а зеленое поле GT будет назначено широкому и короткое красное поле предсказания.
С выходом и GT, а затем спроектировать структуру сети, то есть отображение от входа к выходу, вы можете использовать градиентный спуск для обучения.
Network
На следующем рисунке показана упрощенная версия структуры сети.
На следующем рисунке показана подробная структура сети,
Видно, что изображение сначала проходит через 24-слойный Feature Extractor, разработанный автором для извлечения признаков, а затем проходит через два полносвязных слоя, чтобы получить окончательный вывод 7x7x30.
Следует отметить, что смысл этого вывода 7x7 заключается в том, что автор сказал разделить сетку на сетки 7x7.
Loss
Потеря в основном делится на три части: потеря местоположения, потеря уверенности и потеря категории.
1) Потеря позиции
2) Потеря доверия
Ci предсказывает Pr(object)*IOU, что всесторонне отражает вероятность того, что блок предсказания имеет объект, а также размер долгового обязательства блока предсказания и истинность. Таким образом, метод расчета метки C_i ячейки:
3) Потеря категории
Прогнозируемая p_ci — это условная вероятность, то есть вероятность Class_i, когда объект известен.Если категория GT равна ci, метка p_ci равна 1, а метка других p_ci равна 0.
Training
В обучении модели YOLO используются следующие техники: 1) Увеличение данных Включая случайное масштабирование, случайное кадрирование, случайную настройку экспозиции и насыщенности. 2) отсев Подсчитано, что это полностью подключенный слой с использованием отсева, а коэффициент отсева составляет 0,5. 3) Оптимизатор Используется оптимизатор импульса, а бета гиперпараметра принимается равной 0,9. 4) распад веса Распад веса используется с коэффициентом 0,0005. 5) Размер партии 64 6) скорость обучения
Experiments
Error Analysis
Автор также провел анализ ошибок на YOLO и сравнил источники ошибок Fast R-CNN и YOLO. Во-первых, автор делит результаты распознавания на пять категорий:
- Правильная классификация: класс правильный, IOU>0,5
- Неверная позиция: класс правильный, 0,1
- Ошибка аппроксимации: класс определен как приблизительный класс, IOU>0,1
- Другие ошибки: ошибка категории, IOU>0,1
- Фоновая ошибка: IOU
Состав ошибок Fast R-CNN и YOLO следующий:
Видно, что в Fast R-CNN преобладают фоновые ошибки, а в YOLO преобладают ошибки положения.
в заключении
YOLO впервые применил одношаговый алгоритм, обеспечивающий обнаружение в реальном времени и высокую точность.