Статьи · arXiv 2304.02643
Segment Anything
Опубликовано cs.CVcs.AIcs.LG arXivPDF
Кратко в трёх строках
- 🎯 Сегментация ранее невиданных визуальных концептов и адаптация к разнообразным прикладным задачам сегментации без специфического дообучения.
- 🔧 Представлены задача сегментации по промптам, модель Segment Anything Model (SAM) с амортизированным декодером масок реального времени и трёхэтапный data engine.
- 📈 Обученная на датасете SA-1B (1,1 млрд масок на 11 млн изображений), SAM переносится в режиме zero-shot на задачи детекции границ, генерации пропозалов объектов и инстанс-сегментации, превосходя интерактивные бейзлайны на 16 из 23 датасетов.
Аннотация
Мы представляем проект Segment Anything (SA): новую задачу, модель и датасет для сегментации изображений. Используя нашу эффективную модель в цикле сбора данных, мы создали крупнейший на сегодняшний день датасет сегментации, содержащий более 1 миллиарда масок на 11 миллионах лицензированных изображений с соблюдением конфиденциальности. Модель спроектирована и обучена принимать промпты, благодаря чему она способна выполнять zero-shot перенос на новые распределения изображений и задачи. Мы оцениваем её возможности на множестве задач и показываем, что её качество в режиме zero-shot впечатляет — зачастую оно сопоставимо с результатами предшествующих полностью контролируемых моделей или даже превосходит их. Мы публикуем модель Segment Anything Model (SAM) и соответствующий датасет (SA-1B), включающий 1 млрд масок и 11 млн изображений, на https://segment-anything.com, чтобы способствовать исследованиям в области базовых моделей для компьютерного зрения.
Оригинальная аннотация (англ.)
We introduce the Segment Anything (SA) project: a new task, model, and dataset for image segmentation. Using our efficient model in a data collection loop, we built the largest segmentation dataset to date (by far), with over 1 billion masks on 11M licensed and privacy respecting images. The model is designed and trained to be promptable, so it can transfer zero-shot to new image distributions and tasks. We evaluate its capabilities on numerous tasks and find that its zero-shot performance is impressive -- often competitive with or even superior to prior fully supervised results. We are releasing the Segment Anything Model (SAM) and corresponding dataset (SA-1B) of 1B masks and 11M images at https://segment-anything.com to foster research into foundation models for computer vision.
Разбор статьи
Проблема и мотивация
Базовые модели (foundation models), предобученные на веб-масштабных данных, произвели революцию в NLP и согласовании зрения и языка (например, CLIP), однако в общем компьютерном зрении всё ещё не хватало фундаментальной системы, способной к широкому zero-shot обобщению на различные задачи сегментации. Существующие датасеты для сегментации изображений малы по сравнению с массивами пар изображение-текст из сети, а классические архитектуры сегментации, как правило, привязаны к фиксированным семантическим классам или специализированным интерактивным сценариям.
Чтобы создать базовую модель компьютерного зрения для сегментации, авторы одновременно решают три ключевых вопроса:
- Задача: Какая целевая функция обеспечивает универсальный zero-shot перенос?
- Модель: Какая архитектура поддерживает гибкое задание промптов в реальном времени, разрешая при этом внутреннюю визуальную неоднозначность?
- Данные: Как получить веб-масштабные маски сегментации, если в интернете отсутствуют плотные разметки масок?
Ключевые идеи
- Promptable Segmentation Task (задача сегментации по промптам): Модель должна возвращать валидную маску сегментации по любому входному промпту — будь то точки переднего/заднего плана, bounding box, плотные маски или произвольный текст. При неоднозначности промпта (например, одна точка на рубашке) модель должна возвращать несколько правдоподобных иерархических масок (деталь, часть, целое).
- Асимметричная амортизированная архитектура (SAM): Тяжёлый энкодер изображений запускается один раз для каждого изображения и формирует эмбеддинг, в то время как легковесный энкодер промптов и двухслойный декодер на основе Transformer обрабатывают промпты за на CPU прямо в веб-браузере.
- Flywheel Data Engine: Трёхэтапный пайплайн разметки данных:
- С ручным ассистированием (assisted-manual): SAM помогает аннотаторам в браузере, сокращая время разметки одной маски с 34 до 14 секунд (собрано 4,3 млн масок).
- Полуавтоматический (semi-automatic): SAM детектирует маски с высокой уверенностью, направляя внимание аннотаторов на неразмеченные, менее заметные объекты (собрано ещё 5,9 млн масок).
- Полностью автоматический (fully automatic): SAM получает на вход равномерную сетку точек вместе с приближенными кропами изображений, генерируя 1,1 миллиарда масок в составе SA-1B.
Метод
Архитектура модели
SAM состоит из трёх компонентов:
- Image Encoder: Предобученный с помощью MAE Vision Transformer (по умолчанию ViT-H/16), модифицированный с использованием оконного внимания (windowed attention) и четырёх блоков глобального внимания; обрабатывает входы размера и выдаёт эмбеддинг с 256 каналами.
- Prompt Encoder:
- Разреженные промпты: Точки и bounding box проецируются в 256-мерные векторы с помощью позиционных кодирований, складываемых с обучаемыми эмбеддингами типов. Свободный текст кодируется с помощью текстового энкодера CLIP.
- Плотные промпты: Входные маски (в разрешении в меньше исходного) уменьшаются свертками со страйдом 2 и поэлементно складываются с эмбеддингом изображения.
- Mask Decoder: Двухслойный модифицированный декодер Transformer. Он обновляет токены промптов и эмбеддинги изображения за счёт чередования self-attention для промптов и двунаправленного cross-attention (от токенов к изображению и от изображения к токенам). Признаки изображения увеличиваются в раза с помощью транспонированных свёрток, а MLP проецирует выходной токен для получения динамического линейного классификатора, применяемого поточечно к увеличенным признакам.
Учёт неоднозначности и функция потерь
Один промпт часто описывает несколько вложенных структур. SAM разрешает неоднозначность, предсказывая одновременно 3 маски с соответствующими оценками IoU. Во время обучения обратное распространение ошибки применяется только к минимальному значению потерь среди кандидатов: Вспомогательная голова минимизирует среднеквадратичную ошибку между предсказанным и реальным IoU: При передаче нескольких промптов неоднозначность снимается, и SAM выводит одну маску, используя четвёртый выделенный выходной токен.
Результаты
- Zero-Shot перенос от точек к маске: На 23 разнообразных датасетах сегментации (включая эгоцентрические, подводные, аэро- и микроскопические снимки) SAM превосходит RITM на 16 из 23 датасетов при использовании лишь одной точки в центре объекта (разница достигает IoU). При устранении неоднозначности оракулом-селектором среди 3 предсказаний SAM обходит RITM на всех 23 датасетах. Экспертные оценки качества пользователями стабильно оценивают маски SAM существенно выше (от 7 до 9 из 10 баллов).
- Zero-Shot детекция границ (BSDS500): При оценке в режиме zero-shot с сеткой точек , фильтрацией Собеля и edge NMS модель SAM достигает ODS 0,768 и R50 0,928, конкурируя с контролируемыми моделями вроде HED (ODS 0,788, R50 0,923).
- Zero-Shot генерация пропозалов объектов (LVIS v1): SAM достигает 59,3 AR@1000 без надзора по классам, превосходя полностью контролируемый бейзлайн ViTDet-H на средних объектах (81,6 против 80,8), крупных объектах (86,9 против 87,0) и редких категориях (65,8 против 58,3).
- Zero-Shot инстанс-сегментация: При использовании bounding box от ViTDet в качестве промптов SAM достигает 46,5 AP на COCO и 44,7 AP на LVIS. В слепых тестах с участием людей разметчики стабильно называют маски SAM более чёткими и качественными, чем результаты полностью обученного ViTDet.
Ограничения и открытые вопросы
- Мелкие детали и сильный зум: SAM может упускать ультратонкие структуры или создавать мелкие несвязные фрагменты по сравнению с вычислительно тяжёлыми интерактивными методами, которые явно масштабируют фрагменты изображений.
- Задержка полного пайплайна: Хотя декодирование промптов работает в реальном времени (), выполнение тяжёлого энкодера изображений ViT-H не укладывается в режим real-time.
- Семантическое понимание: SAM генерирует немарочные (class-agnostic) маски; архитектура не предоставляет семантических или паноптических меток классов «из коробки» без подключения внешних классификаторов.
- Промптинг вида «текст в маску»: Пайплайн запуска по тексту через CLIP пока носит экспериментальный характер и более чувствителен к формулировкам по сравнению с геометрическими промптами.
Ключевые термины
- promptable segmentation task
- Задача, формулирующая цель вывода корректной маски сегментации по произвольным входным промптам, таким как точки, bounding box, маски или текст.
- SAM
- Segment Anything Model; модель компьютерного зрения, состоящая из тяжёлого ViT-энкодера изображений, энкодера промптов и амортизированного легковесного декодера масок реального времени.
- SA-1B
- Датасет Segment Anything 1-Billion, содержащий более 1,1 миллиарда автоматически сгенерированных масок на 11 миллионах изображений высокого разрешения с соблюдением конфиденциальности.
- data engine
- Трёхэтапная система разметки с моделью в контуре (assisted-manual, semi-automatic и fully automatic), применённая для масштабирования разметки масок до объёмов интернета.
- ambiguity-aware modeling
- Архитектурное решение, при котором декодер выдаёт 3 иерархические маски и предсказанные для них IoU на один промпт, а градиенты обучения рассчитываются только по предсказанию с наименьшей ошибкой.
- amortized real-time inference
- Вычисление тяжёлого эмбеддинга изображения один раз для файла, благодаря чему последующие декодирования масок по промптам выполняются за ~50 мс на CPU.
- zero-shot transfer
- Оценка предобученной модели на новых задачах и невиданных распределениях данных с помощью подбора промптов без дообучения весов.
- stable mask filtering
- Фильтр качества, отбирающий маски, бинарная форма которых практически не меняется при отсечении карты логитов вероятностей по порогам и .
Вопросы
Как SAM справляется с неоднозначностью, когда одна точка может относиться к нескольким объектам?
SAM выводит три маски одновременно (обычно представляющие деталь, часть и объект целиком) вместе с предсказанными оценками уверенности IoU. Во время обучения градиенты рассчитываются только по предсказанию с наименьшей ошибкой.
Были ли 1,1 миллиарда масок в SA-1B размечены вручную?
Нет, 99,1% масок в релизе SA-1B были сгенерированы полностью автоматически путём подачи на вход SAM регулярных сеток точек на 11 млн изображений с последующей строгой фильтрацией по уверенности и стабильности.
Может ли SAM сегментировать изображение на основе текстового описания?
Да, в рамках экспериментального подтверждения концепции. Во время обучения SAM получал эмбеддинги масок от CLIP в качестве токенов-промптов, что позволяет на этапе инференса передавать текстовые эмбеддинги из текстового энкодера CLIP.
Почему масочный AP у SAM ниже, чем у ViTDet на COCO, если люди оценивают маски SAM выше?
Модели с учителем перенимают специфические для датасета смещения полигонов, сглаживание границ и амодальные конвенции разметки COCO, тогда как zero-shot SAM формирует чёткие модальные визуальные границы; они точнее соответствуют человеческому восприятию, но штрафуются по метрике IoU на разметке с погрешностями.
Обзор на этой странице написан ИИ по тексту статьи и может содержать ошибки. Подробности смотрите в самой статье.