Введение в быстрый R-CNN
В предыдущих двух статьях мы представили R-CNN и SPP-Net соответственно, поэтому в 2015 году RBG (Росс Б. Гиршик) и другие объединили общую идею вычисления свертки SPP-Net для создания R-CNN. так что есть Fast R-CNN. Во-первых, давайте кратко представим Fast R-CNN. По сравнению с двумя предыдущими алгоритмами Fast R-CNN предлагает:
Потеря многозадачности
Объединение областей интереса (уровень объединения областей интересов)
Он состоит из следующих частей: алгоритм сс
сеть CNN
SoftMax
bounding box
Во-первых, классификатор SVM, используемый в SPP-Net и R-CCN, был заменен на SoftMax, а SPP в SPP-Net был заменен пулом RoI.Введение многозадачной функции потерь интегрировало функцию потерь классификации сеть и регрессия ограничительной рамки.Функция потерь модели делает задачу не нужно обучать поэтапно.Региональное предложение по-прежнему генерируется с использованием алгоритма ss и извлекается на карте объектов после свертки (полностью общий расчет свертки). первоначальная модель была изменена с AlexNet на VGG16.
Объединение областей интереса
На приведенном выше рисунке показана разница между объединением SPP и RoI. На самом деле объединение RoI представляет собой упрощение SPP. Первоначально SPP представляет собой многомасштабную операцию объединения. Наконец, функции трех масштабов объединяются в виде полностью связанного уровня. Ввод, а RoI pooling выбирает только один из масштабов.Длина и ширина предложенного блока алгоритма ss после изменения координат делится на w частей и h частей в среднем, и в каждой части используется максимальное объединение, и Наконец, сгенерируйте ячейки w*h, которые имеют следующие преимущества:
1. Унифицируйте размер вывода, это обязательно.
2. По сравнению с SPP-Net, пул RoI имеет меньшее количество измерений.Предполагая, что пул RoI выбирает 4*4, размерность может быть уменьшена с 21 бина до 16 бинов, хотя кажется, что уменьшение невелико, но не забывайте что фича тоже имеет толщину.Если толщина 256 то уменьшение размерности значительное.
3. Объединение RoI больше не является многомасштабным объединением, поэтому градиентный возврат будет более удобным, что способствует Fast R-CNN для достижения сквозного обучения.
Gradient Backhaul для объединения областей интересаКак упоминалось выше, объединение RoI является одноуровневым SPP, то есть используется только один слой пирамиды, и в области выполняется максимальное объединение, поэтому как сказать, что при извлечении признаков на сверточном слое позиции признаков не перекрываются, и RoI Pooling является максимальным объединением, а возврат градиента одинаков Когда позиции перекрываются, возврат градиента изменится.
Итак, сначала объясните, что такое перекрытие:
Мы знаем, что предложение региона Fast R-CNN также генерируется алгоритмом ss, поэтому, когда изображение генерирует несколько блоков предложений (при условии, что 2), некоторые пиксели могут перекрываться, как показано ниже:
И в этом случае нет перекрытия:
Очевидно, что перекрывающиеся области также перекрываются на карте признаков свертки после того же преобразования координат, так как же следует рассчитывать градиенты перекрывающихся пикселей? представляет собой сумму частных производных нескольких областей:
На приведенном выше рисунке есть две области r0 и r1, каждая область генерирует 4 бина после объединения RoI, x23 означает 23-й пиксель, затем градиент положения x23 можно рассчитать в соответствии с формулой в левой части рисунка выше, где r — регион, содержащий эту точку, а j — все местоположения в пределах определенного региона.
Однако для вычисления градиента x23, очевидно, не требуется информация о градиенте всех позиций в пределах r0 и r1.Он должен включать только градиент x23 или градиент точки, которая вносит вклад в x23, поэтому здесь необходима пороговая функция —i* (r,j), его функция заключается в том, что если требуется градиент этой точки после объединения RoI, то i*(r,j)=1, иначе i*(r,j)=0.
Таким образом, возврат градиента слоя пула RoI нужно просто изменить только в пуле Max.
Функция потери многозадачности
Многозадачная потеря является наиболее важным улучшением Fast R-CNN, Он добавляет функцию потерь модели классификации и функцию потерь модели ограничивающей рамки вместе, так что поэтапное обучение больше не требуется, а реализуется от начала до конца. -конец.
Сначала классифицируйте потери модели:
где p — распределение вероятностей для каждой области интереса:
И u - категория наземной истины, очевидно, диапазон u равен (0,...,k)
Очевидно, это кросс-энтропия функции потерь, но сокращенно или в другом виде.
** Потеря модели регрессии ограничивающей рамки: ** Эта потеря ничем не отличается от потери ограничительной рамки в R-CNN, Оба используют фактическую информацию о ограничивающей рамке и информацию о ограничивающей рамке, предоставленную алгоритмом ss, для построения расстояния L1. следующее:
Конкретная форма уравнения сглаживания выглядит следующим образом:
Вещи в уравнении сглаживания такие же, как у R-CNN. Наконец, комбинированная функция многозадачных потерь:
вот один
, это функция индикатора, функция заключается в том, что фоновому классу не требуется коррекция ограничивающей рамки, и нет потерь регрессии.Быстрое обучение и тестирование R-CNN
На приведенном выше рисунке объясняется процесс обучения и тестирования Fast R-CNN, Первые две части иллюстрируют возврат градиента слоя объединения RoI и построение многозадачной функции потерь, поэтому можно передать градиент Fast R-CNN. вплоть до сверточного слоя. , чтобы обеспечить сквозное обучение.Кроме того, чтобы получить лучшие результаты в обучении, автор предлагает метод иерархической выборки.Если размер пакета равен 128, то 128 областей интереса состоят из 2 изображений, каждое из которых дает 64 области.
Процесс тестирования Fast R-CNN ничем не отличается от предыдущего.
Быстрая оценка производительности R-CNN
На приведенном выше рисунке сравнивается время обучения R-CNN, SPP-Net и Fast R-CNN, а также время тестирования и mAP одного изображения.Видно, что, поскольку Fast R-CNN можно обучать от начала до конца , его mAP выше, чем у R-CNN, поэтому не будет снижения mAP, как у SPP-Net, и, опять же, наблюдается значительное улучшение времени обучения и времени тестирования.
Итак, почему Fast R-CNN быстрее, чем SPP-Net, наиболее важной причиной является сквозное обучение, так что обучение больше не является поэтапным.
Проблемы с Fast R-CNN
Хотя на приведенном выше рисунке написано, что время тестирования одного изображения Fast R-CNN составляет 0,32 с, но нельзя сказать, что 0,32 для сравнения с 47,0 с R-CNN. Да, Fast R-CNN по-прежнему не отделен от алгоритма ss, но время алгоритма ss для запуска картинки составляет около 2 с, поэтому, если это имеет смысл, Fast R-CNN все еще не может удовлетворить требованиям обнаружения в реальном времени. К счастью, алгоритм ss в Faster R-CNN был заменен на RPN (сеть региональных предложений), о которой мы поговорим позже.
Оригинальная ссылка:All.Pull/статья/VIE…