В компьютерном зрении есть много интересных задач, одна из которых - обнаружение объектов и сегментация на изображении.

Обнаружение объектов пытается спрогнозировать ограничивающую рамку для каждого типа объекта, представленного в наборе данных, и его оценку (достоверность класса объекта). А сегментация предсказывает границы для объекта - маски.

Я хочу объяснить, как извлечь область интереса (ROI) с помощью операций объединения и согласования. И какая разница между этими двумя операциями.

Для начала вспомним весь конвейер в задачах обнаружения и разделения объектов:

  1. Передайте изображение в магистральную сеть (например, ResNet или VGG).
  2. Извлеките карту объектов (или карты объектов из сети Feature Pyramid Network).
  3. Передайте карту характеристик в сеть предложений региона (RPN).
  4. Используя предложения от RPN, возьмите область интереса (ROI) и верните карту объектов фиксированного размера с помощью операций объединения или выравнивания.
  5. Передайте карту функций фиксированного размера из объединения (или выравнивания) ROI в R-CNN, чтобы получить прогнозы ограничивающей рамки и оценки классов.
  6. Передайте карту функций фиксированного размера из объединения (или выравнивания) ROI в CNN, чтобы получить маску сегментации.

Рассмотрим 4-ю точку.

ROI пул

Когда RPN возвращает предложения региона, все предложения являются смещениями для каждой привязки. Используя их, мы можем получить предлагаемые ограничивающие рамки, где их координаты представлены на основе исходного размера изображения.

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

Данная карта функций была уменьшена в k раз по сравнению с исходным изображением (с помощью сверток). Это означает, что каждую координату можно уменьшить k раз.

  1. Во-первых, объединение ROI предлагает разделить каждую координату на k и взять целую часть: [x / k].

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

2. Квантование: для получения выходных данных фиксированного размера из пула рентабельности инвестиций обрезанная часть делится на интервалы. Такое деление дает сетку n x n. Причем из каждого бункера можно взять максимальное или среднее значение.

ROI выровнять

Выравнивание рентабельности инвестиций преследует ту же цель, что и объединение рентабельности инвестиций: охват интересующей области через предложения. Но эти два шага немного разные.

  1. ROI align делит каждую координату на k: x / k и НЕ принимает целую часть.

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

2. Тем не менее, обрезанная часть также делится на сетку, но для определения конкретных значений в этих ячейках ROI align регулярно выбирайте 4 точки в каждой ячейке с помощью билинейной интерполяция (как показано на рисунке выше). И из этих 4 точек берется максимальное или среднее значение из каждого бина.

Вот как операции объединения ROI или align возвращают новую карту функций фиксированного размера.

Но для чего выравнивать рентабельность инвестиций? Как видите, операция объединения грубая. Когда мы прогнозируем координаты ограничивающего прямоугольника, это не большая проблема, если мы сделали небольшое смещение на 2 пикселя, мы все равно правильно обнаруживаем объект на изображении. Но для задачи сегментации это большая проблема, когда мы делаем ненужные смещения при прогнозировании маски. Маска R-CNN показывает, что с выравниванием ROI точность намного выше, чем с объединением.