Сборник интервью по компьютерному зрению - Обнаружение целей (1)

интервью

Сеть Faster-Rcnn

1. Знакомство с принципом более быстрого RCNN, пожалуйста, подробно нарисуйте картинку.

1.png

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

2. Роль и детали реализации сети RPN (сеть региональных предложений)

**Роль сети RPN: **RPN специально используется для извлечения кадров-кандидатов.С одной стороны, RPN занимает меньше времени, а с другой стороны, RPN можно легко объединить в Fast RCNN, чтобы получить единое целое.

Детали реализации сети RPN: карта объектов (общедоступная карта объектов Faster RCNN) обрабатывается с помощью скользящего окна для получения 256-мерных объектов, и для каждого вектора объектов выполняются две операции полного соединения: одна для получения 2 оценок, а другая для получения 4 координат. {затем дважды выполнить полное подключение, чтобы получить результат 2k баллов и 4k координат [k относится к K блокам, сгенерированным якорем (K блоков привязки)]}

2 балла, т.к. РПН кадр-кандидат, а о категории судить не надо, поэтому надо только различать объект это или нет, то есть два балла, балл переднего плана (объекта), и оценка фона, 4 координаты являются парами указателей Смещение исходных координат изображения должно сначала запомниться как исходное изображение;

Заранее есть 9 комбинаций, поэтому k равно 9, и, наконец, наш результат для этих 9 комбинаций, поэтому есть результаты H x W x 9, что составляет 18 баллов и 36 координат.

Запишите функцию потерь RPN (потеря многозадачности: потеря двух классов + потеря SmoothL1)

При обучении сети RPN для каждого якоря мы определяем бинарную метку (является объектом или нет).

В следующих двух случаях якорь рассматривается как положительная метка образца:

1. Якоря и самая высокая прямоугольная область перекрытия между якорями и аннотациями.

2. Или индикатор области перекрытия (IOU) привязок и аннотаций> 0,7

3.png

4.png

Как рассчитывается входная переменная регрессионной потери части потери RPN?(Обратите внимание, регрессия - это не координаты и ширина и высота, а рассчитанное по ним смещение)

5.png

​ ti и ti* — прогнозируемое значение сети и цель регрессии соответственно.

6.png

Цель t* должна быть подготовлена ​​при обучении RPN. Он рассчитывается с помощью поля наземной истины (целевого реального поля) и поля привязки (поля привязки, сгенерированного в соответствии с определенными правилами), которые представляют отношение преобразования между полем истинности на земле и полем привязки. Используйте это для обучения rpn, тогда rpn в конечном итоге научится выводить хорошее отношение преобразования t. И это отношение конверсии между прогнозируемым блоком и блоком привязки. С помощью этого t и поля привязки можно вычислить реальные координаты поля предсказания.

Как выбирается поле привязки в RPN?

Точка отображения центра скользящего окна в исходном пространстве пикселей называется привязкой, и эта привязка является центром для создания k (по умолчанию k = 9, 3 масштаба и 3 соотношения сторон/разные размеры и разные соотношения сторон на бумаге). ) предложения. Три размера области (128 ^ 2, 256 ^ 2, 512 ^ 2), а затем под каждым размером области выберите три разных соотношения сторон (1: 1, 1: 2, 2: 1)

Зачем предлагать якорную коробку?

Есть две основные причины: окно может обнаруживать только одну цель и не может решать многомасштабные задачи.

В настоящее время существует три основных способа выбора размера поля привязки: выбор человеческого опыта, кластеризация k-средних и обучение в качестве гиперпараметра.

Зачем использовать разные размеры и разные соотношения сторон? Чтобы получить больший коэффициент пересечения (IOU).

3. Расскажите, как работает RoI Pooling? Что случилось? каков эффект

Процесс RoI Pooling заключается в отображении блоков разных размеров в прямоугольные блоки фиксированного размера (w * h).

конкретная операция: (1) В соответствии с входным изображением сопоставьте ROI с соответствующей позицией на карте объектов (2) Разделите отображаемую область на секции одинакового размера (количество секций такое же, как и размер выходных данных); (3) Выполнить максимальное объединение в каждой секции;

Таким образом, соответствующие карты объектов фиксированного размера могут быть получены из блоков разных размеров. Стоит отметить, что размер выходных карт признаков не зависит от размера ROI и сверточных карт признаков. Самым большим преимуществом объединения ROI является то, что оно значительно повышает скорость обработки. (В процессе объединения необходимо вычислить диапазон, занимаемый результатом объединения, соответствующим карте признаков, а затем взять максимальное или среднее значение в этом диапазоне.)

**Преимущества** 1. Позволяет повторно использовать карты объектов в CNN 2. Может значительно ускорить обучение и тестирование 3. Обеспечивает сквозное обучение систем обнаружения целей.

**Недостатки:** Поскольку RoIPooling использует интерполяцию ближайшего соседа (т.е. INTER_NEAREST), при изменении размера, для случая, когда координаты после масштабирования не могут быть просто целыми числами, десятичное число грубо округляется, что эквивалентно выбору ближайшего к целевая точка. точка, теряющая определенную пространственную точность.

Два процесса округления (квантования): 1. xywh в предложении региона обычно представляет собой десятичное число, но для удобства оно будет округлено. 2. Разделите целочисленную граничную область на k x k единиц поровну и выполните целочисление на границе каждой единицы. //После вышеупомянутых двух раундов целочисления кадр-кандидат в это время имеет определенное отклонение от возвращенного исходного положения, и это отклонение повлияет на точность обнаружения или сегментации.

Как сделать маппинг:Правило сопоставления относительно простое, то есть деление каждой координаты на «отношение размера входного изображения к карте объектов».

Разница между ROI Pooling и ROI Align (Mask R-CNN)

ROI Align:Идея ROI Align очень проста: отмените операцию квантования и используйте метод билинейной интерполяции для получения значения изображения в точке пикселя, координаты которой являются числами с плавающей запятой, чтобы преобразовать весь процесс агрегации признаков в непрерывный процесс. 1. Обходим каждую область-кандидат, сохраняя границы с плавающей запятой без квантования. 2. Разделите область-кандидат на k x k единиц, причем границы каждой единицы не квантуются. 3. Вычислите и зафиксируйте четыре позиции координат в каждом блоке, используйте билинейную интерполяцию для вычисления значений этих четырех позиций, а затем выполните операцию максимального объединения.

разница:ROI Align отказывается от метода квантования приблизительных целых чисел в пикселях и использует билинейную интерполяцию, чтобы определить, соответствуют ли координаты карты объектов позициям пикселей в исходном изображении. ROI Align решает проблему, вызванную двумя квантованиями в операции ROI Pooling. регионов.

Для обнаружения крупных целевых объектов на снимке разница между двумя схемами невелика, а если на снимке много мелких целевых объектов, которые необходимо обнаружить, предпочтительнее RoiAlign, который является более точным.

Специальный метод билинейной интерполяции для расчета значения пикселя в RoI Align

Математически билинейная интерполяция представляет собой расширение линейной интерполяции интерполяционной функции с двумя переменными Основная идея состоит в том, чтобы выполнить линейную интерполяцию в двух направлениях соответственно.

7.png

Предположим, мы хотим получить значение неизвестной функции f в точке P = (x, y), пусть нам известна функция f в точках Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1) и Q22 = (x2, y2) значения четырех точек. В наиболее распространенном случае f — это значение пикселя в пикселе. Сначала выполните линейную интерполяцию в направлении x, чтобы получить

8.png

9.png

Затем линейно интерполируйте в направлении y, чтобы получить

10.png

Комбинация является конечным результатом билинейной интерполяции:

11.png

Поскольку билинейная интерполяция изображения использует только 4 соседние точки, знаменатель приведенной выше формулы равен 1.

Собственное значение каждой точки дискретизации получается путем билинейной разности значений пикселей четырех соседних целочисленных собственных точек.

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

4. Расскажите о немаксимальном подавлении (NMS) (не максимальное подавление) Детали реализации NMS Рукописный код NMS

полезность: Суть в поиске локальных максимумов и подавлении немаксимальных элементов.

принцип: NMS не максимально максимальное подавление, которое используется для подавления резервных коробок во время обнаружения.

Грубый алгоритмЧтобы: 1. Отсортировать достоверность всех блоков прогнозов в порядке убывания 2. Выбрать блок прогнозов с наибольшей достоверностью, подтвердить, что это правильный прогноз, и рассчитать долговую расписку между ним и другими блоками прогнозов 3. Удалить перекрытие в соответствии с долговая расписка, рассчитанная в 2. Высокий, долговая расписка > пороговое значение и удаление 4. Остальные поля предсказания возвращаются к шагу 1, пока их больше не останется.

(Примечание: Немаксимальное подавление обрабатывает одну категорию за раз. Если имеется N категорий, Немаксимальное подавление необходимо выполнить N раз.)

Предполагая, что две цели находятся очень близко, они будут распознаны как bbox.В чем проблема и как ее решить?

Когда две цели находятся очень близко, поле низкой достоверности будет подавлено полем высокой достоверности, так что, когда две цели очень близки, они будут распознаны как bbox. Для решения этой проблемы можно использовать softNMS (Основная идея: заменить исходную оценку чуть более низкой оценкой вместо прямой установки нуля)

5. Как Faster R-CNN решает проблему несбалансированных положительных и отрицательных образцов?

Соотношение положительных и отрицательных образцов ограничено 1: 1. Если положительных образцов недостаточно, для их дополнения используются отрицательные образцы.Этот метод мало используется в более поздних исследованиях. Обычно проблема дисбаланса классов может быть решена путем корректировки количества выборок или изменения веса потерь.Обычно используемые методы: OHEM, OHNM, сбалансированные потери классов и фокусные потери.

Как Faster RCNN фильтрует положительные и отрицательные привязки

Мы назначаем положительную метку двум типам привязок: (i) привязке с наибольшим коэффициентом перекрытия (IoU) с фактической ограничивающей рамкой,

(ii) Якоря с более чем 0,7 IoU перекрываются с фактической ограничивающей рамкой. Коэффициент IoU ниже 0,3, и мы присваиваем отрицательную метку неположительным якорям.

6. Какая формула используется для регрессии bbox в более быстром rcnn и как сеть возвращается к bbox?

12.png

Где x, y, w, h — координаты центральной точки bbox, ширины и высоты соответственно. Это предсказанный блок, якорный блок и реальный блок.13.pngПервые две строки — это смещение и масштаб предсказанного прямоугольника относительно привязки, а последние две строки — это смещение и масштабы реального прямоугольника и привязки. Цель возврата очевидна, то есть сделать14.pngкак можно ближе. Функция регрессионных потерь использует гладкую функцию L1, определенную в Fast-RCNN, которая менее чувствительна к выбросам:

15.png

16.png

Функция потерь оптимизирует вес W, чтобы bbox мог получить лучший перевод (смещения) и масштабы (масштабы) после операции W во время теста. на исходном bbox прогноза, чтобы получить лучшие результаты прогноза.

Зачем делать регрессию с ограничительной рамкой?

Регрессия ограничительной рамки используется для точной настройки области/поля-кандидата, чтобы точно настроенная рамка была ближе к базовой истине.

7. Кратко опишите процесс прямого расчета более быстрого rcnn. Кратко опишите этапы обучения более быстрого rcnn.

Введите изображение, которое необходимо обнаружить -> vgg16 network conv Layers, чтобы извлечь особенности всего изображения, выведите ввод карты объектов в начало RPN и сеть Fast RCNN -> сеть RPN, чтобы получить предложение области, и отправьте эту информацию о кадре-кандидате в Fast RCNN В начале сети -> использовать карту объектов, отправленную кадром-кандидатом, для извлечения объектов и получить карту объектов указанного размера через слой ROI Pooling -> отправить эти карты объектов в сеть Fast RCNN для классификации и координаты регрессии, и, наконец, получить требуемое обнаружение.Координаты объекта.

Кратко опишите этапы обучения более быстрому rcnn

Первым шагом является обучение RPN, которое инициализируется с помощью предварительно обученной модели ImageNet и полностью настраивается для создания предложений по регионам;

Второй шаг заключается в обучении Fast R-CNN, инициализированном моделью imageNet, и использовании предложений регионов, сгенерированных RPN на первом этапе, в качестве входных данных для обучения Fast R-CNN в качестве отдельной сети обнаружения. две сети не имеют общей свертки Floor;

Третий шаг — настроить RPN, использовать модель fast-rcnn второго шага, чтобы снова инициализировать RPN для обучения, но исправить общий сверточный слой и только точно настроить уникальный слой RPN, теперь две сети совместно используют сверточный слой;

Четвертый шаг - настроить Fast R-CNN, Сеть fast-RCNN инициализируется моделью RPN на третьем этапе, а входными данными являются предложения, сгенерированные на третьем этапе. Держите общие сверточные слои фиксированными и точно настраивайте слои fc Fast R-CNN. Таким образом, две сети используют одни и те же сверточные слои, образуя единую сеть.

8. Есть ли у Faster rcnn недостатки? Как улучшить?

Улучшения: 1. Лучшая функциональная сеть ResNet и т. д. 2. Более точная RPN: сетевую архитектуру FPN можно использовать для проектирования сети RPN 3. Улучшенный метод классификации ROI: например, ROI выполняет ROI-Pooling для conv4 и conv5 соответственно. классификация выполняется после слияния, так что количество вычислений в основном не увеличивается, и можно использовать более высокое разрешение conv4 4. Используйте softNMS вместо NMS;

Сравните точки улучшения FasterRCNN в серии RCNNРПН извлекает РП

использованная литература

Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. arXiv preprint arXiv:1506.01497, 2015.

Ссылка на ссылку

zhuanlan.zhihu.com/p/137735486

zhuanlan.zhihu.com/p/137736076

blog.CSDN.net/Идеальное обслуживание клиентов/Ariti…