Как видно из приведенной выше блок-схемы, подход, который использовали авторы, заключается в разделении модели на три подмодуля: (1) кодировщик изображений, (2) кодировщик подсказок (подсказка может быть точками/полями/текстами/частичными масками). (3) Декодер маски.

(1) Кодировщик изображений: это может быть любой механизм извлечения признаков, который мы обычно используем в задачах компьютерного зрения. Здесь, в этой работе, автор использовал предварительно обученный MAE Vision Transformer (ViT). Это запускается сразу после того, как мы загрузили/отдали изображение и до/во время, когда мы даем подсказки кодировщику подсказок.

(2) Кодировщик подсказок: если подсказки представляют собой точки и блоки (блок можно рассматривать как последовательность из четырех точек), их позиционные кодировки суммируются с изученными вложениями типа подсказки. А для текстовой подсказки в качестве кодировщика подсказок используется текстовый кодировщик от CLIP. Для масок они кодируются с помощью сверточных слоев, а результирующие функции суммируются по элементам с встраиванием изображения.

(3) Декодер маски: этот подмодуль принимает вложения обоих изображений, встраивания подсказок в качестве входных данных и генерирует маску. Эта архитектура декодера основана на двух блоках декодера Transformer, за которыми следует MLP для предсказания маски. Они сделали блок MLP для прогнозирования трех масок для каждого приглашения, чтобы справиться с неоднозначностями. Они обнаружили, что эти 3 маски часто представляют весь объект, его часть и часть. Чтобы заказать эти маски для…