[Серия алгоритмов обнаружения целей] 2. Алгоритм SPP-Net

глубокое обучение

В прошлый раз мы представилиR-CNNалгоритмnuggets.capable/post/684490…

Представьте это времяSPP-Netалгоритм

Алгоритм SPP-Net улучшен на основе R-CNN

Мы знаем, что алгоритм R-CNN имеет несколько недостатков:

1. Поскольку размер входного изображения фиксируется сетью CNN, для 2000 областей-кандидатов, генерируемых каждым изображением, требуются такие операции, как масштабирование, искажение и т. д., чтобы изменить размер входного размера (224 * 224), требуемый сети CNN. Вызывает потерю и изменение некоторых функций, что влияет на точность

2. В алгоритме R-CNN при извлечении признаков через сеть CNN 2000 областей-кандидатов каждого изображения необходимо обрабатывать отдельно, и в этих областях-кандидатах много повторяющихся частей, поэтому будет много повторяющихся операций. серьезно влияет на скорость обнаружения RCNN

SPP-Net внесла соответствующие улучшения в две вышеупомянутые проблемы RCNN, тем самым повысив точность и скорость модели.

1. Исправлена ​​проблема размера ввода в сети CNN.

Мы знаем, что в RCNN размер входного кадра-кандидата должен быть установлен на 224 * 224. Зачем нам его ограничивать?

Глубокая сверточная сеть содержит два больших модуля, один — модуль свертки, а другой — полносвязный модуль.Для модуля свертки нет необходимости ограничивать размер входного изображения, потому что для всех фильтров в модуле свертки они все выполняют локальные операции свертки с изображением.Различные размеры входного изображения не влияют на размер и количество фильтров, поэтому слой свертки не ограничивает размер изображения, а только изображения разных размеров, и, наконец, передает модуль свертки После этого размер выходной карты признаков (карты признаков) отличается, и, наконец, генерируются векторы признаков разной длины.

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

2. Объединение пространственных пирамид

Из приведенного выше описания мы знаем, что на самом деле это полносвязный слой в сверточной сети, для которого требуется фиксированный размер входных данных. Следовательно, мы не можем зафиксировать размер входного изображения в начале сети CNN, а только зафиксировать длину вектора признаков, введенного последующим полносвязным слоем. В этом случае нам нужно преобразовать карту объектов, выдаваемую сверточным слоем с разными размерами входного изображения, в вектор признаков того же размера и ввести его в полносвязный слой.Как его преобразовать? Это нужно использоватьОбъединение пространственных пирамид

В SPP-Net слой объединения пространственных пирамид добавляется в конце сверточного слоя сети CNN для преобразования различных карт признаков в векторы признаков одинаковой длины.



В статье автор использует карту признаков, выдаваемую модулем свертки, для извлечения признаков через три блока разного размера: 4*4, 2*2 и 1*1. Предположим, что всего выведено m карт объектов. Размер каждой карты объектов составляет w*h*256 (256 – это количество каналов каждой карты объектов, которая в конечном итоге выводится, то есть количество фильтров в последнем сверточном слое).

Для блока 4 * 4 для карты объектов он будет разделен на блоки 4 * 4. Для каждого блока функция извлекается путем максимального объединения, и всего извлекается 16 * 256 функций. Аналогично, для 2 Блок *2 извлекается 4*256 признаков, а для блока 1*1 извлекается 1*256 признаков. Следовательно, после того, как карта объектов проходит через слой объединения пространственных пирамид, извлекается 21*256 объектов, затем они преобразуются в векторы объектов и вводятся в последующий полносвязный слой. Поэтому, независимо от размера входного изображения, длина вектора признаков, сгенерированного после окончательного слоя объединения пространственных пирамид, остается постоянной. Это решает проблему потери и изменения функций, вызванных масштабированием и искажением изображения в RCNN, чтобы обеспечить согласованность входного размера.

3. Сопоставление карты объектов и исходного изображения

Благодаря характеристикам свертки мы знаем, что после того, как объект на изображении подвергся многослойной свертке, его относительное положение на карте признаков остается неизменным по сравнению с относительным положением на исходном изображении. Точно так же для кадра-кандидата в изображении после нескольких слоев свертки положение остается неизменным относительно исходного изображения.

Как упоминалось выше, в RCNN существует очевидная проблема, заключающаяся в том, что 2000 кадров-кандидатов каждого изображения необходимо передать в сеть CNN для извлечения карты признаков.Будет много повторяющихся операций, поэтому мы подумали, можем ли мы напрямую Все изображение напрямую передается в сеть CNN для создания карты объектов, а затем из карты объектов находится положение на карте объектов, соответствующее соответствующему кадру-кандидату.Из описания в приведенном выше абзаце мы знаем, что это решение возможно, нам нужно. Что вы знаете, так это то, как сопоставить кадр-кандидат в исходном изображении с соответствующей картой признаков.

Пусть (X', Y') будет точкой на карте объектов, которая в основном соответствует точке координат на входном изображении как (X, Y), тогда существует следующее отношение отображения:

При этом S присутствует во всех шагах CNN (шагах) продукта (этапы включают в себя объединенные свертки)

В-четвертых, сводка SPP-NET

Выше приведены основные оптимизации, сделанные SPP-Net.В этом разделе процесс SPP-Net полностью описан:

  1. Благодаря выборочному поиску для каждого изображения, подлежащего обнаружению, создается 2000 полей-кандидатов.

  2. Непосредственно введите исходное изображение в сеть CNN, выполните извлечение признаков и получите соответствующие карты признаков Затем с помощью соответствующего сопоставления найдите области, соответствующие всем кадрам-кандидатам в картах признаков, и сгенерируйте соответствующие различные области через пирамиду Слой объединения пространства.

  3. Выполните классификацию SVM и регрессию с граничной рамкой


Добро пожаловать, чтобы обратить внимание на мою личную общедоступную учетную запись AI Computer Vision Workshop, Эта общедоступная учетная запись иногда выдвигает связанные статьи о машинном обучении, глубоком обучении, компьютерном зрении и т. д. Приветствую всех, кто учится и общается со мной.