Серия обнаружения объектов глубокого обучения (1) R-CNN

искусственный интеллект глубокое обучение алгоритм Нейронные сети

Введение в R-CNN

R-CNN был предложен в 2014 году, и его следует рассматривать как пионерскую работу сверточных нейронных сетей в задачах обнаружения целей.Конечно, в том же году появился алгоритм overfeat, который здесь обсуждаться не будет.

В следующие несколько лет моделей CNN для задач обнаружения целей становилось все больше и больше, а производительность и точность в реальном времени становились все лучше и лучше, но самые классические модели все же стоит изучить.

Итак, приступим:

Для модели R-CNN лично я понимаю так.Он фактически объединяет 4 существующих алгоритма, применяемых к разным задачам, и в итоге добился хороших результатов в задаче обнаружения целей.Это сочетание больше похоже на это метод, который смещен в сторону инженерии , а не прорыв в алгоритме.Конечно, в последующих Fast-RCNN и Faster-RCNN модель постепенно совершенствуется и интегрируется в модель, но этого нет в R-CNN.

Итак, R-CNN состоит из 4 частей, это:

1. Алгоритм предложения региона (ss)

2. Алгоритм выделения признаков (AlexNet)

3. Линейный классификатор (линейный SVM)

4. Регрессионная модель коррекции ограничивающей рамки (Bounding box)

Алгоритм предложения региона:

Первый — это алгоритм Region Proposal, существовавший до CNN, и существует не один алгоритм, более известен алгоритм ss (выборочный поиск), а также EdgeBox, MSER, MCG и другие алгоритмы.

Итак, каково использование алгоритма ss в R-CNN? Это начинается с задачи обнаружения цели.Для выполнения задачи обнаружения цели на изображении одной из самых простых идей является создание скользящего окна и классификация изображений, извлеченных из каждого скользящего окна.Если результат классификации оказывается Если цель обнаружено, обнаружение достигнуто.Атрибут цели задается классификатором, а положение цели задается скользящим окном. Однако, учитывая, что количество субизображений, генерируемых скользящим обходом, не мало, а также имеются различные шаги и размеры окон, изображений, подлежащих классификации, на данный момент очень много, и очевидно, что этот метод не имеет практической ценности. , С помощью алгоритма ss, алгоритма, который генерирует рекомендуемые области на основе информации самого изображения, он будет генерировать около 1000-2000 потенциальных целевых областей.По сравнению с методом скользящего обхода, это количество значительно сократилось.

Алгоритм извлечения признаков:

Алгоритм извлечения признаков здесь на самом деле является сверточной нейронной сетью, AlexNet используется в R-CNN, но автор (Росс) не использовал AlexNet в качестве классификатора, а использовал только слой признаков сети в качестве выходных данных алгоритма ss. , Работает извлечение признаков изображения, затем признаки 7-го слоя передаются классификатору SVM, а пятый признак — регрессионной модели Bounding Box.

Линейный классификатор:

R-CNN использует линейный классификатор SVM.Об этом нечего сказать.Это очень хороший алгоритм в машинном обучении.Следует отметить,что задача обнаружения цели имеет функцию классификации.Например задача обнаружить кошки и собаки, то помимо обрамления позиций кошек и собак необходимо также определить, кошка это или собака, что также является ролью SVM в R-CNN. Итак, есть несколько категорий объектов, подлежащих обнаружению, тогда должно быть несколько двухклассовых классификаторов SVM.В приведенном выше примере необходимы два двухклассовых классификатора, а именно модель «кошка-не-кошка» и Non-dog», в R-CNN имеется 20 классификаторов, а его входными признаками являются признаки слоя fc7, извлеченные AlexNet.

Модель регрессии с поправкой на ограничительную рамку:

Ограничивающая рамка - тоже старая тема.В общих задачах компьютерного зрения есть задача позиционирования между классификацией и обнаружением.На изображении есть только одна цель, а затем цель обрамляется.Используется регрессия ограничительной рамки.Модель.

В R-CNN роль Ограничивающей рамки состоит в том, чтобы исправить границу области, рекомендованной ss.Входная функция является функцией пятого уровня AlexNet.Как и классификатор SVM, он также имеет модель для каждой категории, всего из 20.

Выше мы представили четыре части R-CNN и их функции соответственно.Как видите, это все предыдущие вещи, но успех R-CNN заключается в поиске способа обучения и тестирования.Четыре части объединяются, и причиной значительного повышения точности является введение CNN. Мы ссылаемся на метод HOG + SVM для обнаружения пешеходов.HOG — это ручная функция, которая заменена функцией извлечения CNN в R-CNN.

Так что мое личное мнение таково, что ключом к пониманию R-CNN являются не четыре упомянутых выше алгоритма, а то, как они обучаются и тестируются в R-CNN!

Обучение R-CNN

R-CNN обучил три модели CNN, SVM и Bounding box, потому что алгоритм ss не нуждается в обучении, ха-ха~~

После того, как ss сгенерирует 1000-2000 рекомендуемых областей, это не имеет отношения к обучающей задаче, обучающие выборки строятся из подграфов, сгенерированных областью ss.

И тренировка трех частей уникальна и не интегрирована.

1. Тренируйте CNN

CNN — это предварительно обученная модель AlexNet в ImageNet. Тонкая настройка выполняется в R-CNN. Процесс тонкой настройки заключается в изменении Softmax AlexNet на количество категорий, требуемых задачей, а затем использование его в качестве классификационная модель для обучения, обучения При построении выборок используются подграфы, сгенерированные ss. Когда IoU этих изображений и истинность фактической выборки больше или равна 0,5, это считается положительным выборка определенного класса, всего таких классов 20, IoU меньше 0,5 считается отрицательной выборкой. Затем вы можете сделать предварительное обучение с AlexNet, После предварительного обучения слой Softmax AlexNet выбрасывается, и остаются только параметры после обучения, и этот набор параметров используется для извлечения признаков.

2. Обучить SVM

Как упоминалось ранее, входная функция SVM является выходом AlexNet fc7, а затем SVM выполняет две классификации, одна из которых имеет 20 моделей SVM. Тогда для одного из классификаторов его положительные выборки — это признаки, выдаваемые всеми областями наземной истины после AlexNet, а отрицательные выборки — это признаки, которые выводятся после того, как AlexNet совпадает с областью наземной истины, IoU которой меньше 0,3. функции и Метка определена, и можно обучить SVM.

3. Обучите модель регрессии ограничивающей рамки

Есть также регрессионные модели с ограничительной рамкой 20. Возьмем одну из них в качестве примера.Его ввод является функцией AlexNet conv5.Обратите внимание, что 20 здесь относится к количеству классов, но для ограничительной рамки он имеет 4 набора параметров. Поскольку модель регрессии с ограничительной рамкой регрессирует 4 числа соответственно, эти 4 числа являются четырьмя значениями, представляющими ограничивающую рамку, а функция потерь модели выглядит следующим образом:

Где i — количество отсчетов, * — 4 числа, это x, y, w, h, где (x, y) — центральное положение, (w, h) — ширина и высота; P определяется как ss Область определяется четырьмя числами Px, Py, Pw и Ph. Эта область проходит через AlexNet, затем выводит признаки пятого слоя, а затем обучает параметр w перед каждым измерением признака. Набор признаков имеет набор w.Для 4 групп регрессии есть 4 группы w, последнее число t, у которого также есть 4 числа tx, ty, tw, th, которые вычисляются следующим образом:

А G — модифицированный ограничивающий прямоугольник, который по-прежнему состоит из четырех чисел Gx, Gy, Gw, Gh. Как видно из приведенной выше формулы, t — это смещение ограничивающей рамки.

Наконец, какую область ss можно использовать в качестве входных данных, здесь IoU больше 0,6.

Резюмируя модель регрессии с ограничительной рамкой в ​​одном предложении: для модели регрессии определенного класса область ss с IoU> 0,6 используется в качестве входного признака после свертки, и тот же набор признаков используется для обучения 4 наборам весов. соответствующий ему Четыре значения атрибута ограничивающей рамки регрессируются отдельно.

После вышеуказанных трех ** частей обучение R-CNN завершено.Как видите, это действительно очень хлопотно.Это не только отражается в медленной скорости, но и процесс чрезвычайно громоздкий, потому что каждый шаг требует восстановить образец.

Тестирование R-CNN

Обученную R-CNN можно использовать для тестирования, и процесс тестирования все еще может быть завершен за один раз Он состоит из следующих шагов:

1. Алгоритм ss извлекает 1000-2000 регионов;

2. Нормализовать все регионы, чтобы сеть CNN могла это принять;

3. Используйте сеть AlexNet, чтобы предложить два набора функций, один для уровня fc7 и один для уровня con5;

4. Для особенностей области fc7 передайте 20 классификаторов соответственно, чтобы увидеть, какой классификатор дает наивысший балл для определения категории области, и управляйте всеми областями одновременно;

5. Использовать операцию немаксимального подавления на всех отмеченных выше регионах для получения подмножества регионов без избыточности (перекрытия).После немаксимального подавления все оставшиеся регионы считаются кадрированными последними;

6. Получите функции слоя con5 в оставшейся области на шаге 5, отправьте их в модель ограничивающей рамки и внесите исправления в соответствии с выходными данными модели;

7. Разметить по результату SVM и нарисовать кадр по исправленному результату;

8. Конец! ! ! ! ! !

Оценка производительности R-CNN

Появление R-CNN сделало качественный скачок в карте оценки производительности задач обнаружения целей в компьютерном зрении:

Но у R-CNN есть и фатальный недостаток — длительное время обучения и тестирования:

Время обучения занимает 84 часа.Если время обучения не так важно, время тестирования одного изображения составляет целых 47 с.Этот дефект заставляет R-CNN терять свою практичность.Улучшение, мы упомянем об этом позже.

Пополнить

1. Здесь не вводится немаксимальное подавление;

2. Как внести исправления на основе вывода модели Bounding box:

Результатом модели является отклонение (пропорция) четырех значений, тогда окончательное положение можно получить по следующей формуле

Пятая формула — это модель ограничивающей рамки.

Серия обнаружения объектов глубокого обучения (2):All.Pull/статья/VIE…