Grounded SAM 2: Когда компьютерное зрение видит и понимает всё, что движется
Репозиторий давно не обновлялся
Последнее обновление было 8 месяцев назад.
Представьте ситуацию: вы смотрите видео, и вам нужно не просто понять, что происходит на экране, а точно определить каждый движущийся объект, отследить его перемещение и даже выделить его контур. Звучит как задача для команды высококвалифицированных специалистов по компьютерному зрению, не так ли? Что ж, благодаря проекту Grounded SAM 2 от IDEA-Research, эта задача становится удивительно доступной даже для одного разработчика.
Что это за проект и кому он нужен?
Grounded SAM 2 — это не просто очередная нейросеть, а целый пайплайн или, если хотите, мощный конструктор для работы с визуальными данными. Он объединяет в себе несколько передовых моделей-фундаментов, таких как SAM 2 (Segment Anything Model 2), Grounding DINO (и его улучшенные версии 1.5, 1.6), DINO-X и Florence-2. Главная идея — дать вам возможность «заземлять» (grounding) текстовые описания на реальные объекты в изображениях и видео, а затем точно их сегментировать и отслеживать.
Кому это будет интересно? В первую очередь, разработчикам и исследователям в области компьютерного зрения, которые сталкиваются с задачами:
- Обнаружения и сегментации объектов в открытом мире (то есть, не только тех, на которых модель обучалась).
- Отслеживания движущихся объектов на видео.
- Автоматического аннотирования больших объемов изображений и видео.
- Создания интеллектуальных систем для анализа контента, безопасности или робототехники.
Проект выделяется тем, что, в отличие от своего предшественника Grounded SAM, он фокусируется на максимальном упрощении кода и удобстве использования, делая сложные технологии доступными.
Ключевые возможности: Что умеет Grounded SAM 2?
Давайте разберем, какие конкретные задачи Grounded SAM 2 помогает решать.
«Вижу всё, что скажешь»: Сегментация и детекция по тексту
Представьте, что вы можете просто написать «красный автомобиль» или «человек в шляпе», и система не только найдет эти объекты на изображении, но и точно выделит их контуры. Именно это и делает Grounded SAM 2, используя связку Grounding DINO (или DINO-X) для понимания текстового запроса и SAM 2 для точной сегментации. Это открывает двери для создания гибких систем, которые не требуют переобучения для каждого нового типа объекта.
python grounded_sam2_hf_model_demo.py
# Или с локальной моделью
python grounded_sam2_local_demo.py
«Слежу за каждым движением»: Отслеживание объектов на видео
Это, пожалуй, одна из самых впечатляющих возможностей. Grounded SAM 2 позволяет отслеживать заданные объекты на протяжении всего видео. Вы указываете, что искать (например, «бегемот»), и система будет следить за ним, кадр за кадром, выделяя его маской.
Кстати, проект поддерживает несколько типов подсказок для отслеживания:
- По точкам (Point Prompt): Для стабильной сегментации система может брать равномерно распределенные точки из предсказанной маски.
- По рамкам (Box Prompt): Просто используйте ограничивающие рамки от Grounding DINO.
- По маскам (Mask Prompt): Используйте результаты сегментации SAM 2 как маску для предсказателя видео.
И, что особенно удобно, вы можете подавать на вход собственные видеофайлы:
python grounded_sam2_tracking_demo_custom_video_input_gd1.5.py
«Вижу детали, даже в 4K»: Работа с изображениями высокого разрешения
Сталкивались с тем, что на больших изображениях (например, 4K) с множеством мелких объектов обычные модели «теряются»? Grounded SAM 2 решает эту проблему благодаря интеграции с SAHI (Slicing Aided Hyper Inference). Эта технология разбивает изображение на мелкие перекрывающиеся участки, обрабатывает их по отдельности, а затем объединяет результаты. В итоге — высокая точность даже для самых плотных и детализированных сцен.
| Текстовый запрос | Исходное изображение | Grounded SAM 2 | Grounded SAM 2 с SAHI |
|:----:|:----:|:----:|:----:|
| Person |
|
|
|
«Понимаю контекст»: Интеграция с Florence-2 для комплексных задач
Проект не ограничивается только детекцией и сегментацией. Благодаря интеграции с Florence-2 от Microsoft, Grounded SAM 2 может выполнять более сложные задачи понимания изображений, используя текстовые подсказки:
- Обнаружение объектов: Классическая детекция.
- Плотное описание регионов (Dense Region Caption): Описание каждого значимого региона на изображении.
- Привязка фраз (Phrase Grounding): Поиск объектов, упомянутых в развернутом описании.
- Сегментация по выражению (Referring Expression Segmentation): Выделение объекта, наиболее точно соответствующего текстовому запросу.
- Автоматическое аннотирование (Auto-Labeling): Florence-2 может сначала сгенерировать описание изображения, а затем использовать его для автоматической разметки объектов, что невероятно полезно для подготовки датасетов.
# Пример: Обнаружение и сегментация объектов
python grounded_sam2_florence2_image_demo.py \
--pipeline object_detection_segmentation \
--image_path ./notebooks/images/cars.jpg
# Пример: Автоматическое аннотирование
python grounded_sam2_florence2_autolabel_pipeline.py \
--image_path ./notebooks/images/groceries.jpg \
--pipeline caption_to_phrase_grounding \
--caption_type detailed_caption
«Всегда в курсе»: Отслеживание новых объектов и непрерывные ID
Разработчики активно работают над функцией непрерывного отслеживания объектов, которая позволяет системе не только следить за уже найденными объектами, но и обнаруживать новые по ходу видео, присваивая им уникальные ID. Это критически важно для систем видеонаблюдения или анализа поведения. Более того, уже реализована возможность отслеживания в реальном времени с камеры или видеопотока!
python grounded_sam2_tracking_camera_with_continuous_id.py
Технические детали: Как это работает под капотом?
Grounded SAM 2 — это, по сути, оркестратор, который умело связывает воедино мощь нескольких «фундаментальных» моделей. В основе лежит идея «заземления» (grounding), где текстовые запросы (например, «кошка») преобразуются в координаты объектов на изображении с помощью Grounding DINO или DINO-X. Затем эти координаты передаются в SAM 2, который специализируется на высокоточной сегментации любых объектов, даже тех, которые он никогда не видел.
Для видео SAM 2 обладает встроенными возможностями отслеживания, которые Grounded SAM 2 эффективно использует, инициализируя отслеживание на первом кадре с помощью Grounding DINO, а затем поддерживая его на протяжении всего ролика. А интеграция с Florence-2 добавляет еще один уровень понимания, позволяя модели не просто находить объекты, но и описывать их, понимать отношения и выполнять более сложные, контекстно-зависимые задачи.
Разработчики уделили особое внимание упрощению установки и использования, предлагая как локальную установку, так и готовый Docker-образ, что значительно снижает порог входа.
Практическое применение: Где это можно использовать?
Возможности Grounded SAM 2 открывают широкий спектр применений:
- Автоматическая разметка данных: Значительно ускоряет создание обучающих выборок для других моделей компьютерного зрения, что особенно ценно для редких или специфических объектов.
- Системы безопасности и видеонаблюдения: Обнаружение и отслеживание подозрительных объектов или людей в реальном времени, анализ поведения.
- Анализ спортивных событий: Автоматическое отслеживание игроков, мячей, подсчет статистики.
- Робототехника и автономные системы: Помогает роботам «видеть» и взаимодействовать с окружающим миром, распознавая объекты по текстовым командам.
- Медицинская диагностика: Выделение аномалий на медицинских изображениях (хотя здесь требуется осторожность и валидация).
- Контент-анализ и медиа: Автоматическое тегирование видеоконтента, поиск определенных сцен или объектов в больших архивах.
Выводы: Стоит ли попробовать?
Безусловно! Grounded SAM 2 — это впечатляющий шаг вперед в области компьютерного зрения. Он демонстрирует, как комбинация мощных моделей-фундаментов может значительно упростить решение сложных задач детекции, сегментации и отслеживания объектов.
Если вы разработчик, который:
- Работает с видеоаналитикой и нуждается в надежном отслеживании.
- Ищет гибкий инструмент для сегментации объектов по текстовым запросам.
- Занимается автоматической разметкой данных.
- Хочет экспериментировать с передовыми моделями компьютерного зрения без глубокого погружения в их внутреннее устройство.
Тогда Grounded SAM 2 определенно заслуживает вашего внимания. Проект активно развивается, постоянно добавляются новые возможности (например, непрерывное отслеживание ID), что делает его еще более привлекательным для изучения и внедрения в собственные проекты. Загляните в репозиторий, попробуйте демо и убедитесь сами в его возможностях!

