SAM 3: Сегментация всего с помощью концептов

Теперь доступно в Ultralytics

SAM 3 полностью интегрирована в пакет Ultralytics начиная с версии 8.3.237 (PR #22897). Установи или обнови пакет с помощью pip install -U ultralytics, чтобы получить доступ ко всем функциям SAM 3, включая текстовую сегментацию концептов, подсказки на основе примеров изображений и отслеживание видео.

Обзор сегментации концептов с подсказками в SAM 3

SAM 3 (Segment Anything Model 3) — это выпущенная Meta базовая модель для сегментации концептов с подсказками (PCS). Основываясь на SAM 2, SAM 3 внедряет принципиально новую возможность: обнаружение, сегментация и отслеживание всех экземпляров визуального концепта, заданного текстовыми подсказками, примерами изображений или и тем, и другим одновременно. В отличие от предыдущих версий SAM, которые сегментировали отдельные объекты по одной подсказке, SAM 3 может находить и сегментировать каждое вхождение концепта, появляющегося где угодно на изображениях или в видео, что соответствует целям работы с открытым словарем в современной сегментации экземпляров.



Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos

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

Обзор

SAM 3 достигает 2-кратного прироста производительности по сравнению с существующими системами в области сегментации концептов с подсказками, сохраняя и улучшая возможности SAM 2 для интерактивной визуальной сегментации. Модель отлично справляется с сегментацией с открытым словарем, позволяя тебе указывать концепты с помощью простых именных фраз (например, «желтый школьный автобус», «полосатый кот») или предоставляя примеры изображений целевого объекта. Эти возможности дополняют готовые к эксплуатации пайплайны, основанные на оптимизированных рабочих процессах predict и track.

Примеры сегментации SAM 3 с текстовыми подсказками

Что такое сегментация концептов с подсказками (PCS)?

Задача PCS принимает концептуальную подсказку на вход и возвращает маски сегментации с уникальными идентификаторами для всех соответствующих экземпляров объектов. Концептуальные подсказки могут быть следующими:

  • Текст: Простые именные фразы, такие как «красное яблоко» или «человек в шляпе», аналогично обучению с нулевым примером (zero-shot learning)
  • Примеры изображений: Ограничивающие рамки (bbox) вокруг объектов-примеров (положительные или отрицательные) для быстрой генерализации
  • Комбинированные: Как текст, так и примеры изображений вместе для точного контроля

Это отличается от традиционных визуальных подсказок (точки, рамки, маски), которые сегментируют только один конкретный экземпляр объекта, как это было популяризировано оригинальным семейством SAM.

Ключевые показатели производительности

МетрикаДостижение SAM 3
LVIS Zero-Shot Mask AP47.0 (против предыдущего лучшего показателя 38.5, улучшение на +22%)
Бенчмарк SA-Coв 2 раза лучше, чем существующие системы
Скорость вывода (GPU H200)30 мс на изображение с более чем 100 обнаруженными объектами
Производительность на видеоПочти в реальном времени для ~5 одновременных объектов
Бенчмарк MOSEv2 VOS60.1 J&F (+25.5% по сравнению с SAM 2.1, +17% по сравнению с предыдущим SOTA)
Интерактивное уточнениеУлучшение +18.6 CGF1 после 3 подсказок-примеров
Разрыв в производительности с человекомДостигает 88% от расчетного нижнего предела на SA-Co/Gold

Для получения контекста о метриках модели и компромиссах в продакшене см. аналитические данные по оценке моделей и метрики производительности YOLO.

Архитектура

SAM 3 состоит из детектора и трекера, которые разделяют общую основу зрения Perception Encoder (PE). Такая разделенная конструкция позволяет избежать конфликтов задач, обеспечивая при этом как обнаружение на уровне изображения, так и отслеживание на уровне видео, с интерфейсом, совместимым с использованием Python и использованием CLI от Ultralytics.

Основные компоненты

  • Детектор: Архитектура на базе DETR для обнаружения концептов на уровне изображения

    • Текстовый энкодер для подсказок в виде именных фраз
    • Энкодер примеров для подсказок на основе изображений
    • Энкодер слияния (Fusion encoder) для обусловливания признаков изображения подсказками
    • Новаторская голова присутствия (presence head), которая отделяет распознавание («что») от локализации («где»)
    • Голова маски для создания масок сегментации экземпляров
  • Трекер: Видеосегментация на основе памяти, унаследованная от SAM 2

    • Энкодер подсказок, декодер маски, энкодер памяти
    • Банк памяти для хранения внешнего вида объекта между кадрами
    • Временная дезамбигуация, дополненная такими методами, как фильтр Калмана в сценариях с несколькими объектами
  • Токен присутствия (Presence Token): Обучаемый глобальный токен, который предсказывает, присутствует ли целевой концепт на изображении/кадре, улучшая обнаружение за счет отделения распознавания от локализации.

Диаграмма архитектуры модели SAM 3

Ключевые инновации

  1. Разделение распознавания и локализации: Голова присутствия предсказывает наличие концепта глобально, в то время как запросы предложений фокусируются только на локализации, избегая конфликтующих целей.
  2. Унифицированные концептуальные и визуальные подсказки: Поддерживает как PCS (концептуальные подсказки), так и PVS (визуальные подсказки, такие как клики/рамки в SAM 2) в рамках одной модели.
  3. Интерактивное уточнение примерами: Ты можешь добавлять положительные или отрицательные примеры изображений для итеративного уточнения результатов, причем модель обобщает их до похожих объектов, а не просто исправляет отдельные экземпляры.
  4. Временная дезамбигуация: Использует оценки обнаружения masklet и периодические повторные подсказки для обработки перекрытий, многолюдных сцен и сбоев отслеживания в видео, что соответствует лучшим практикам сегментации экземпляров и отслеживания.

Набор данных SA-Co

SAM 3 обучена на Segment Anything with Concepts (SA-Co), крупнейшем и самом разнообразном наборе данных для сегментации от Meta на сегодняшний день, расширяющем возможности за пределы общепринятых бенчмарков, таких как COCO и LVIS.

Обучающие данные

Компонент набора данныхОписаниеМасштаб
SA-Co/HQВысококачественные данные изображений, аннотированные людьми с помощью 4-фазного движка данных5.2 млн изображений, 4 млн уникальных именных фраз
SA-Co/SYNСинтетический набор данных, размеченный ИИ без участия человека38 млн именных фраз, 1.4 млрд масок
SA-Co/EXT15 внешних наборов данных, обогащенных сложными негативными примерамиЗависит от источника
SA-Co/VIDEOАннотации видео с временным отслеживанием52.5 тыс. видео, 24.8 тыс. уникальных именных фраз

Данные бенчмарка

Бенчмарк SA-Co evaluation содержит 214 тыс. уникальных фраз на 126 тыс. изображений и видео, предоставляя более чем в 50 раз больше концептов, чем существующие бенчмарки. Он включает:

  • SA-Co/Gold: 7 доменов, тройная аннотация для измерения границ человеческой производительности
  • SA-Co/Silver: 10 доменов, одиночная человеческая аннотация
  • SA-Co/Bronze и SA-Co/Bio: 9 существующих наборов данных, адаптированных для сегментации концептов
  • SA-Co/VEval: Видео-бенчмарк с 3 доменами (SA-V, YT-Temporal-1B, SmartGlasses)

Инновации движка данных

Масштабируемый движок данных SAM 3 с участием человека и модели обеспечивает двукратную пропускную способность аннотирования за счет:

  1. ИИ-аннотаторы: Модели на базе Llama предлагают разнообразные именные фразы, включая сложные негативные примеры
  2. ИИ-верификаторы: Настроенные мультимодальные LLM проверяют качество маски и полноту почти с человеческой эффективностью
  3. Активная добыча данных (Active Mining): Фокусирует усилия человека на сложных случаях сбоев, где ИИ испытывает трудности
  4. На основе онтологии: Использует обширную онтологию, основанную на Wikidata для покрытия концептов

Установка

SAM 3 доступна в Ultralytics версии 8.3.237 и выше. Установи или обнови с помощью:

pip install -U ultralytics
Требуются веса модели SAM 3

В отличие от других моделей Ultralytics, веса SAM 3 (sam3.pt) не загружаются автоматически. Тебе необходимо сначала запросить доступ к весам модели на странице модели SAM 3 на Hugging Face, а затем, после одобрения, загрузить sam3.pt с этой страницы. Помести скачанный файл sam3.pt в рабочую директорию или укажи полный путь при загрузке модели.

`TypeError: 'SimpleTokenizer' object is not callable`

Если ты получаешь эту ошибку во время предсказания, это означает, что у тебя установлен неверный пакет clip. Установи правильный пакет clip, выполнив следующее:

pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.git

Как использовать SAM 3: Универсальность в сегментации концептов

SAM 3 поддерживает как задачи сегментации концептов с подсказками (PCS), так и задачи сегментации с визуальными подсказками (PVS) через различные интерфейсы предиктора:

Поддерживаемые задачи и модели

Тип задачиТипы подсказокРезультат
Сегментация концептов (PCS)Текст (именные фразы), примеры изображенийВсе экземпляры, соответствующие концепту
Визуальная сегментация (PVS)Точки, рамки, маскиОдиночный экземпляр объекта (в стиле SAM 2)
Интерактивное уточнениеИтеративное добавление/удаление примеров или кликовУточненная сегментация с повышенной точностью

Примеры сегментации концептов

Сегментация с текстовыми подсказками

Сегментация концептов на основе текста

Найди и сегментируй все экземпляры концепта с помощью текстового описания. Текстовые подсказки требуют интерфейса SAM3SemanticPredictor.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=True,
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")

# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])

# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Query with a single concept
results = predictor(text=["a person"])

Сегментация с примерами изображений

Сегментация на основе примеров изображений

Используй ограничивающие рамки (bounding boxes) как визуальные подсказки для поиска всех похожих экземпляров. Это также требует SAM3SemanticPredictor для сопоставления на основе концептов.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True, save=True)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image
predictor.set_image("path/to/image.jpg")

# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Multiple bounding boxes for different concepts
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

Вывод на основе признаков для эффективности

Повторное использование признаков изображения для нескольких запросов

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

import cv2

from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors

# Initialize predictors
overrides = dict(conf=0.50, task="segment", mode="predict", model="sam3.pt", verbose=False)
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Setup second predictor and reuse features
predictor2.setup_model()

# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualize results
if masks is not None:
    masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
    im = cv2.imread(source)
    annotator = Annotator(im, pil=False)
    annotator.masks(masks, [colors(x, True) for x in range(len(masks))])

    cv2.imshow("result", annotator.result())
    cv2.waitKey(0)

Сегментация концептов в видео

Отслеживание концептов в видео с помощью ограничивающих рамок

Отслеживание в видео с визуальными подсказками

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

from ultralytics.models.sam import SAM3VideoPredictor

# Create video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True)
predictor = SAM3VideoPredictor(overrides=overrides)

# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Process and display results
for r in results:
    r.show()  # Display frame with segmentation masks

Отслеживание концептов с помощью текстовых подсказок

Отслеживание в видео с семантическими запросами

Отслеживай все экземпляры концептов, заданных текстом, в кадрах видео.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialize semantic video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=640, model="sam3.pt", half=True, save=True)
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Process results
for r in results:
    r.show()  # Display frame with tracked objects

# Alternative: Track with bounding box prompts
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Positive labels
    stream=True,
)

Визуальные подсказки (совместимость с SAM 2)

SAM 3 сохраняет полную обратную совместимость с визуальными подсказками SAM 2 для сегментации одного объекта:

Визуальные подсказки в стиле SAM 2

Базовый интерфейс SAM работает точно так же, как SAM 2, сегментируя только конкретную область, указанную визуальными подсказками (точками, рамками или масками).

from ultralytics import SAM

model = SAM("sam3.pt")

# Single point prompt - segments object at specific location
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Multiple points - segments single object with multiple point hints
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Box prompt - segments object within bounding box
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
Визуальные подсказки против сегментации концептов

Использование SAM("sam3.pt") с визуальными подсказками (точками/рамками/масками) сегментирует только конкретный объект в этом месте, точно так же, как SAM 2. Чтобы сегментировать все экземпляры концепта, используй SAM3SemanticPredictor с текстовыми подсказками или подсказками на основе примеров, как показано выше.

Показатели производительности

Сегментация изображений

SAM 3 достигает лучших результатов в отрасли по нескольким бенчмаркам, включая реальные наборы данных, такие как LVIS и COCO for segmentation:

БенчмаркМетрикаSAM 3Предыдущий лучший результатУлучшение
LVIS (zero-shot)Mask AP47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zero-shot)Box AP53.552.2 (T-Rex2)+2.5%
ADE-847 (семантическая сег.)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (семантическая сег.)mIoU65.144.2 (APE-D)+47.3%

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

Производительность сегментации видео

SAM 3 демонстрирует значительные улучшения по сравнению с SAM 2 и предыдущими лучшими результатами в видео-бенчмарках, таких как DAVIS 2017 и YouTube-VOS:

БенчмаркМетрикаSAM 3SAM 2.1 LУлучшение
MOSEv2J&F60.147.9+25.5%
DAVIS 2017J&F92.090.7+1.4%
LVOSv2J&F88.279.6+10.8%
SA-VJ&F84.678.4+7.9%
YTVOS19J&F89.689.3+0.3%

Адаптация few-shot

SAM 3 отлично адаптируется к новым доменам с минимальным количеством примеров, что актуально для рабочих процессов data-centric AI:

Бенчмарк0-shot AP10-shot APПредыдущий лучший результат (10-shot)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

Эффективность интерактивного уточнения

Подсказки SAM 3 на основе концептов с использованием примеров сходятся намного быстрее, чем визуальные подсказки:

Добавлено подсказокОценка CGF1Прирост по сравнению с только текстомПрирост по сравнению с PVS Baseline
Только текст46.4базовыйбазовый
+1 пример57.6+11.2+6.7
+2 примера62.2+15.8+9.7
+3 примера65.0+18.6+11.2
+4 примера65.7+19.3+11.5 (плато)

Точность подсчета объектов

SAM 3 обеспечивает точный подсчет, сегментируя все экземпляры, что часто требуется при подсчете объектов:

БенчмаркТочностьMAEпротив лучшей MLLM
CountBench95.6%0.1192.4% (Gemini 2.5)
PixMo-Count87.3%0.2288.8% (Molmo-72B)

Сравнение SAM 3, SAM 2 и YOLO

Здесь мы сравниваем возможности SAM 3 с моделями SAM 2 и YOLO26:

ВозможностьSAM 3SAM 2YOLO26n-seg
Сегментация по концептам✅ Все экземпляры по тексту/примерам❌ Не поддерживается❌ Не поддерживается
Визуальная сегментация✅ Один экземпляр (совместимо с SAM 2)✅ Один экземпляр✅ Все экземпляры
Возможность Zero-shot✅ Открытый словарь✅ Геометрические подсказки❌ Закрытый набор
Интерактивное уточнение✅ Примеры + клики✅ Только клики❌ Не поддерживается
Отслеживание видео✅ Несколько объектов с идентификацией✅ Несколько объектов✅ Несколько объектов
LVIS Mask AP (zero-shot)47.0Н/ДН/Д
MOSEv2 J&F60.147.9Н/Д
Скорость (GPU, мс/изобр.)29218578.4
Размер модели3.45 ГБ162 МБ (базовая)6.4 МБ

Скорость протестирована на NVIDIA RTX PRO 6000 с использованием torch==2.9.1 и ultralytics==8.4.19.

Основные выводы:

  • SAM 3: Лучший выбор для сегментации по концептам с открытым словарем, позволяющий найти все экземпляры концепта с помощью текста или примеров
  • SAM 2: Лучший выбор для интерактивной сегментации отдельных объектов на изображениях и видео с помощью геометрических подсказок
  • YOLO26: Лучший выбор для высокоскоростной сегментации в реальном времени с выводом end-to-end без NMS, экспортируемый во множество форматов для развертывания на GPU, CPU и edge-устройствах

Сравнение SAM с YOLO

Сравнение SAM 3, SAM 2, SAM, MobileSAM и FastSAM с моделями сегментации Ultralytics YOLO (YOLOv8, YOLO11, YOLO26) по размеру, параметрам и скорости вывода на GPU:

МодельРазмер
(МБ)
Параметры
(М)
Скорость (GPU)
(мс/изобр.)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
FastSAM-s с бэкбоном YOLOv823.711.855.9
Ultralytics YOLOv8n-seg6.7 (в 515 раз меньше)3.4 (в 139.1 раз меньше)17.4 (в 167 раз быстрее)
Ultralytics YOLO11n-seg5.9 (в 585 раз меньше)2.9 (в 163.1 раз меньше)12.6 (в 231 раз быстрее)
Ultralytics YOLO26n-seg6.4 (в 539 раз меньше)2.7 (в 175.2 раз меньше)8.4 (в 347 раз быстрее)

Это сравнение демонстрирует существенные различия в размерах моделей и скорости между вариантами SAM и моделями сегментации YOLO. В то время как SAM предоставляет уникальные возможности автоматической сегментации, модели YOLO, особенно YOLOv8n-seg, YOLO11n-seg и YOLO26n-seg, значительно меньше, быстрее и вычислительно эффективнее.

Тесты проведены на NVIDIA RTX PRO 6000 с 96 ГБ VRAM с использованием torch==2.9.1 и ultralytics==8.4.19. Чтобы воспроизвести этот тест:

Пример
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM3, SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt", "sam3.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS)

Метрики оценки

SAM 3 представляет новые метрики, разработанные для задачи PCS, дополняющие привычные меры, такие как F1 score, precision и recall.

Classification-Gated F1 (CGF1)

Основная метрика, объединяющая локализацию и классификацию:

CGF1 = 100 × pmF1 × IL_MCC

Где:

  • pmF1 (Положительный макро F1): Измеряет качество локализации на положительных примерах
  • IL_MCC (Изображенческий коэффициент корреляции Мэтьюса): Измеряет точность бинарной классификации ("присутствует ли концепт?")

Почему именно эти метрики?

Традиционные метрики AP не учитывают калибровку, что затрудняет использование моделей на практике. Оценивая только предсказания с уверенностью выше 0.5, метрики SAM 3 обеспечивают хорошую калибровку и имитируют реальные сценарии использования в интерактивных циклах predict и track.

Ключевые абляции и инсайты

Влияние компонента Presence Head

Голова присутствия (presence head) отделяет распознавание от локализации, обеспечивая значительные улучшения:

КонфигурацияCGF1IL_MCCpmF1
Без присутствия57.60.7774.7
С присутствием63.30.8277.1

Голова присутствия дает прирост CGF1 на +5.7 (+9.9%), в основном улучшая способность распознавания (IL_MCC +6.5%).

Влияние трудных негативных примеров (Hard Negatives)

Трудные негативные примеры/ИзображениеCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Трудные негативные примеры критически важны для распознавания с открытым словарем, улучшая IL_MCC на 54.5% (0.44 → 0.68).

Масштабирование обучающих данных

Источники данныхCGF1IL_MCCpmF1
Только внешние30.90.4666.3
Внешние + Синтетические39.70.5770.6
Внешние + HQ51.80.7173.2
Все три54.30.7473.5

Высококачественная человеческая разметка дает значительные преимущества по сравнению с одними лишь синтетическими или внешними данными. Базовую информацию о методах обеспечения качества данных см. в разделе сбор и разметка данных.

Приложения

Возможность сегментации концептов в SAM 3 открывает новые сценарии использования:

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

SAM 3 Agent: расширенное языковое рассуждение

SAM 3 можно объединять с мультимодальными большими языковыми моделями (MLLM) для обработки сложных запросов, требующих рассуждения, что по духу близко к системам с открытым словарем, таким как OWLv2 и T-Rex.

Производительность в задачах на рассуждение

БенчмаркМетрикаSAM 3 Agent (Gemini 2.5 Pro)Предыдущий лучший результат
ReasonSeg (валидация)gIoU76.065.0 (SoTA)
ReasonSeg (тест)gIoU73.861.3 (SoTA)
OmniLabel (валидация)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

Примеры сложных запросов

SAM 3 Agent может обрабатывать запросы, требующие рассуждения:

  • "Люди, которые сидят, но не держат в руках подарочную коробку"
  • "Собака, которая находится ближе всех к камере и на которой нет ошейника"
  • "Красные объекты, которые больше кисти руки человека"

MLLM предлагает SAM 3 простые запросы в виде именных групп, анализирует возвращенные маски и итерирует до тех пор, пока результат не станет удовлетворительным.

Ограничения

Хотя SAM 3 представляет собой значительный шаг вперед, у него есть определенные ограничения:

  • Сложность фраз: лучше всего подходит для простых именных групп; длинные ссылочные выражения или сложные рассуждения могут потребовать интеграции с MLLM
  • Обработка двусмысленности: некоторые концепты остаются внутренне двусмысленными (например, "маленькое окно", "уютная комната")
  • Вычислительные требования: модель крупнее и медленнее, чем специализированные модели обнаружения, такие как YOLO
  • Область словаря: внимание сосредоточено на атомарных визуальных концептах; композиционное рассуждение ограничено без помощи MLLM
  • Редкие концепты: производительность может снижаться на крайне редких или узкоспециализированных концептах, недостаточно представленных в обучающих данных

Цитирование

Цитата
@inproceedings{sam3_2025,
  title     = {SAM 3: Segment Anything with Concepts},
  author    = {Anonymous authors},
  booktitle = {Submitted to ICLR 2026},
  year      = {2025},
  url       = {https://openreview.net/forum?id=r35clVtGzw},
  note      = {Paper ID: 4183, under double-blind review}
}

Часто задаваемые вопросы (FAQ)

Когда был выпущен SAM 3?

SAM 3 был выпущен компанией Meta 20 ноября 2025 года и полностью интегрирован в Ultralytics начиная с версии 8.3.237 (PR #22897). Полная поддержка доступна для режима предсказания и режима трекинга.

Интегрирован ли SAM 3 в Ultralytics?

Да! SAM 3 полностью интегрирован в пакет Ultralytics для Python, включая сегментацию концептов, визуальные подсказки в стиле SAM 2 и трекинг нескольких объектов на видео. SAM 3 также обеспечивает работу функции умной разметки на Ultralytics Platform, где ты можешь размечать изображения всего в несколько кликов.

Что такое сегментация концептов с подсказками (PCS)?

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

  • Текстовая подсказка: "желтый школьный автобус" → сегментирует все желтые школьные автобусы на сцене
  • Пример изображения: рамка вокруг одной собаки → сегментирует всех собак на изображении
  • Комбинированный: "полосатая кошка" + рамка-пример → сегментирует всех полосатых кошек, соответствующих примеру

См. сопутствующую информацию об обнаружении объектов и сегментации экземпляров.

Чем SAM 3 отличается от SAM 2?

ХарактеристикаSAM 2SAM 3
ЗадачаОдин объект на подсказкуВсе экземпляры концепта
Типы подсказокТочки, рамки, маскиТекстовые фразы, примеры изображений
Возможности обнаруженияТребуется внешний детекторВстроенный детектор с открытым словарем
РаспознаваниеТолько на основе геометрииТекстовое и визуальное распознавание
АрхитектураТолько трекерДетектор + трекер с головкой наличия объекта
Производительность Zero-ShotН/Д (требуются визуальные подсказки)47.0 AP на LVIS, в 2 раза лучше на SA-Co
Интерактивное уточнениеТолько кликиКлики + обобщение по примерам

SAM 3 сохраняет обратную совместимость с визуальными подсказками SAM 2, добавляя при этом возможности на основе концептов.

Какие наборы данных используются для обучения SAM 3?

SAM 3 обучен на наборе данных Segment Anything with Concepts (SA-Co):

Данные для обучения:

  • 5.2 млн изображений с 4 млн уникальных именных фраз (SA-Co/HQ) — высококачественные аннотации, выполненные людьми
  • 52.5 тыс. видео с 24.8 тыс. уникальных именных фраз (SA-Co/VIDEO)
  • 1.4 млрд синтетических масок для 38 млн именных фраз (SA-Co/SYN)
  • 15 внешних наборов данных, дополненных сложными негативными примерами (SA-Co/EXT)

Бенчмарк-данные:

  • 214 тыс. уникальных концептов для 126 тыс. изображений/видео
  • В 50 раз больше концептов, чем в существующих бенчмарках (например, в LVIS ~4 тыс. концептов)
  • Тройная аннотация в SA-Co/Gold для измерения границ производительности человека

Этот огромный масштаб и разнообразие обеспечивают превосходную zero-shot обобщающую способность SAM 3 по всем концептам с открытым словарем.

Как SAM 3 соотносится с YOLO26 в сегментации?

SAM 3 и YOLO26 предназначены для разных задач:

Преимущества SAM 3:

  • Открытый словарь: сегментирует любой концепт с помощью текстовых подсказок без необходимости дообучения
  • Zero-shot: сразу работает с новыми категориями
  • Интерактивность: уточнение на основе примеров обобщается на похожие объекты
  • На основе концептов: автоматически находит все экземпляры категории
  • Точность: 47.0 AP при zero-shot сегментации экземпляров на LVIS

Преимущества YOLO26:

  • Скорость: на порядки более быстрое выполнение вывода благодаря сквозному дизайну без NMS
  • Эффективность: модели в 539 раз меньше (6.4 МБ против 3.45 ГБ)
  • Легковесность: работает на периферийных устройствах и мобильных телефонах
  • Работа в реальном времени: оптимизировано для продакшн-развертывания

Рекомендация:

  • Используй SAM 3 для гибкой сегментации с открытым словарем, когда тебе нужно найти все экземпляры концептов, описанных текстом или примерами
  • Используй YOLO26 для высокоскоростного продакшн-развертывания, где категории известны заранее
  • Используй SAM 2 для интерактивной сегментации одного объекта с помощью геометрических подсказок

Может ли SAM 3 обрабатывать сложные языковые запросы?

SAM 3 разработан для простых именных фраз (например, «красное яблоко», «человек в шляпе»). Для сложных запросов, требующих рассуждения, используй SAM 3 вместе с MLLM как SAM 3 Agent:

Простые запросы (нативный SAM 3):

  • «желтый школьный автобус»
  • «полосатый кот»
  • «человек в красной шляпе»

Сложные запросы (SAM 3 Agent с MLLM):

  • «Люди, которые сидят, но не держат подарочную коробку»
  • «Собака, которая ближе всего к камере, без ошейника»
  • "Красные объекты, которые больше кисти руки человека"

SAM 3 Agent достигает 76.0 gIoU на валидации ReasonSeg (против 65.0 в предыдущем лучшем результате, улучшение на +16.9%), объединяя сегментацию SAM 3 с возможностями рассуждения MLLM.

Насколько точен SAM 3 по сравнению с результатами человека?

На бенчмарке SA-Co/Gold с тройной человеческой аннотацией:

  • Нижняя граница человека: 74.2 CGF1 (самый консервативный аннотатор)
  • Производительность SAM 3: 65.0 CGF1
  • Достижение: 88% от расчетной нижней границы производительности человека
  • Верхняя граница человека: 81.4 CGF1 (самый либеральный аннотатор)

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

Комментарии