[Обнаружение цели (2)] SPP Net - пусть расчет свертки делится

глубокое обучение компьютерное зрение
[Обнаружение цели (2)] SPP Net - пусть расчет свертки делится

[Обнаружение цели (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

1. Мотивация: результаты расчета общей свертки

существуетПредыдущий RCNNВо введении подробно изложен принцип работы алгоритма RCNN.В то же время у RCNN есть и весьма явные недостатки: время обучения и время вывода слишком велико.Главной причиной этого фатального недостатка является наличие большого количество повторяющихся сверточных вычислений. В RCNN метод выборочного поиска используется для генерации почти 2000 предложений по регионам на исходном изображении, а затем изменения размера до фиксированного размера и ввода его в сеть CNN, то есть исходное изображение должно выполнить 2000 расчетов прямого вывода. , и существует большое количество повторяющихся избыточных вычислений. Основными вкладами SPP Net являются: совместное вычисление свертки и объединение пространственных пирамид (объединение пространственных пирамид), так что для каждого изображения требуется только один раз выполнить расчет прямого вывода сети CNN. Как показано на рисунке ниже, первая строка указывает на то, что размер блока изображения необходимо изменить до фиксированного размера в RCNN, что неизбежно вызовет деформацию и искажение.Вторая строка — это процесс RCNN, и каждый блок изображения необходимо ввод в сеть.Третья линия - метод SPP, который значительно сокращает объем вычислений. Конкретный способ реализации и процесс будут подробно описаны ниже.

image.png

2. Принцип сети SPP

2.1 Pipeline

SPP Net в основном состоит из следующих частей:

  • Selective Search
  • Сеть CNN + полносвязный уровень FC
  • SVM-классификатор
  • LR Возврат ограничивающей рамки

Внешне ничем не отличается от RCNN.На самом деле, основное отличие состоит в том, что хотя выборочный поиск SPP Net генерирует кадры-кандидаты на исходном изображении, он извлекается после conv5 сети CNN. Здесь будет две проблемы: размер исходного изображения и размер карты признаков отличаются, как с этим быть? Размер карты объектов для каждого кадра-кандидата также отличается, как с ним справиться в едином измерении?

Для первой проблемы из-за разных размеров необходимо зависеть от соответствия между картой признаков, полученной после свертки, и пикселями исходного изображения.Кадр-кандидат на исходном изображении может быть сопоставлен с соответствующей позицией карта признаков, полученная с помощью conv5, то есть исходное изображение.Для каждой области кадра-кандидата на карте можно получить небольшой блок карты признаков. Что касается второй проблемы, модуль объединения пространственных пирамид работает с небольшими картами объектов, так что карты объектов любого размера могут генерировать тензоры фиксированных размеров.

2.2 Преобразование координат (отображение) в вычислении общей свертки

Вверху слева: x'=(x/S)+1
Внизу справа: x'=(x/S)-1

Среди них x' – координата карты объектов, x – исходная координата изображения, а S – шаг. Причина добавления единицы или вычитания единицы в левом верхнем и правом нижнем углу связана с заполнением, что сделает координаты более близкими. до центральной точки. Подробный вывод см. в этом техническом блоге:blog.CSDN.net/Майкл Киллс…

2.3 Spatial Pyramid Pooling

После преобразования сопоставления слева кадр-кандидат на исходном изображении может быть сопоставлен с картой объектов conv5, но таким образом, поскольку размер кадра-кандидата не фиксирован, размер карты объектов сопоставлен с conv5. не является фиксированным, поэтому его нельзя ввести в полносвязный слой. SPP решает эту проблему:

image.png

Для карт объектов любого размера его можно поровну разделить на4*4、2*2和1*1Небольшие блоки выполняют операцию максимального поиска в каждом маленьком блоке, в то время как количество каналов остается неизменным, и, наконец, объединяют эти функции в качестве функции кадра-кандидата, а его размер фиксирован, то есть(16 + 4 + 1) * 256размерность, которая вводится в полносвязный слой FC.

2.4 Процесс обучения и процесс вывода

image.png

Процесс обучения: используйте предварительно обученную модель AlexNet ImageNet, введите изображение для прямого вывода, получите функции conv5 и используйте алгоритм выборочного поиска для получения кадров-кандидатов на исходном изображении, а затем сопоставьте эти кадры-кандидаты на карте признаков conv5 с извлеките соответствующий признак SPP, а затем выполните точную настройку полносвязного слоя признака SPP (сверточный слой не настраивается), чтобы получить свойства полносвязного слоя. После этого, в соответствии с RCNN, признаки полносвязного слоя вводятся в классификатор SVM для классификации, а LR-модель ограничивающего прямоугольника обучается с помощью признаков SPP для исправления положения прямоугольника-кандидата.

Процесс рассуждения: в соответствии с процессом обучения исходное изображение вводится в сеть CNN, и после выборочного поиска функция SPP получается путем сопоставления, а затем функция классификации получается через полносвязный слой, который вводится в сеть. Классификатор SVM, а функция SPP вводится в ограничивающую рамку в модели LR.

3. Анализ эффекта и преимуществ и недостатков SPP Net

3.1 Чистый эффект SPP и основной вклад

image.png

  • С точки зрения точности mAP точность одномасштабной оценки SPP составляет 54,5 %, а точность RCNN — 55,1 %, что также снижается на 0,6 %. полносвязный уровень.
  • С точки зрения скорости при тех же аппаратных условиях графического процессора SPP для вывода в 102 раза быстрее, чем RCNN, что также является основным вкладом SPP.

3.2 Недостатки сети SPP

  • Невозможно точно настроить параметры сверточного слоя, что влияет на точность. (Это решается с помощью функции многозадачных потерь и ROI Pooling в Fast RCNN позже)
  • Это по-прежнему многоэтапный процесс обучения, выборочный поиск + CNN + FC + SVM + Bounding Box LR, никаких улучшений.
  • Функции по-прежнему необходимо хранить на жестком диске, что занимает много места.

Reference:

  1. АР Вест V.org/PDF/1406.47…
  2. zhuanlan.zhihu.com/p/68027807
  3. blog.CSDN.net/Чай Пингпинг0607/…