Перейти к содержимому

MobileSAM Логотип

Мобильный сегмент Anything (MobileSAM)

Статья MobileSAM теперь доступна на arXiv.

A demonstration of MobileSAM running on a CPU can be accessed at this demo link. The performance on a Mac i5 CPU takes approximately 3 seconds. On the Hugging Face demo, the interface and lower-performance CPUs contribute to a slower response, but it continues to function effectively.

MobileSAM реализована в различных проектах, включая Grounding-SAM, AnyLabeling и Segment Anything in 3D.

MobileSAM обучается на одном GPU с набором данных 100k (1% от исходных изображений) менее чем за сутки. Код для этого обучения будет доступен в будущем.

Доступные модели, поддерживаемые задачи и режимы работы

В этой таблице представлены доступные модели с их конкретными предварительно обученными весами, задачи, которые они поддерживают, и их совместимость с различными режимами работы, такими как Inference, Validation, Training и Export, обозначенные ✅ emojis для поддерживаемых режимов и ❌ emojis для неподдерживаемых режимов.

Тип модели Предварительно обученные веса Поддерживаемые задачи Заключение Валидация Тренировка Экспорт
MobileSAM mobile_sam.pt Сегментация экземпляров

Адаптация от SAM к MobileSAM

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

MobileSAM По производительности он сопоставим с оригинальным SAM и сохраняет тот же конвейер, за исключением изменения кодировщика изображений. В частности, мы заменили оригинальный тяжеловесный кодер ViT-H (632 М) на более компактный Tiny-ViT (5 М). На одном GPU, MobileSAM работает примерно 12 мс на изображение: 8 мс на кодер изображения и 4 мс на декодер маски.

В следующей таблице приведено сравнение кодировщиков изображений на базе ViT:

Кодировщик изображений Оригинал SAM MobileSAM
Параметры 611M 5M
Скорость 452 мс 8 мс

И в оригинальном SAM , и в MobileSAM используется один и тот же декодер масок, управляемый подсказками:

Декодер масок Оригинал SAM MobileSAM
Параметры 3.876M 3.876M
Скорость 4 мс 4 мс

Вот сравнение всего трубопровода:

Целый трубопровод (Enc+Dec) Оригинал SAM MobileSAM
Параметры 615M 9.66M
Скорость 456 мс 12 мс

Работа MobileSAM и оригинального SAM демонстрируется с использованием точки и коробки в качестве подсказок.

Изображение с точкой в качестве подсказки

Изображение с коробкой в качестве подсказки

Благодаря своей превосходной производительности MobileSAM примерно в 5 раз меньше и в 7 раз быстрее, чем текущий FastSAM. Больше подробностей можно узнать на странице проектаMobileSAM .

Проверка MobileSAM в Ultralytics

Как и в оригинальном SAM, в Ultralytics мы предлагаем простой метод тестирования, включающий режимы для подсказок типа Point и Box.

Скачать модель

Скачать модель можно здесь.

Побуждение к действию

Пример

from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

Box Prompt

Пример

from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a box prompt
model.predict("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])

Мы реализовали MobileSAM и SAM используя тот же самый API. Для получения дополнительной информации об использовании, пожалуйста, смотри SAM Страница.

Цитаты и благодарности

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

@article{mobile_sam,
  title={Faster Segment Anything: Towards Lightweight SAM for Mobile Applications},
  author={Zhang, Chaoning and Han, Dongshen and Qiao, Yu and Kim, Jung Uk and Bae, Sung Ho and Lee, Seungkyu and Hong, Choong Seon},
  journal={arXiv preprint arXiv:2306.14289},
  year={2023}
}

ВОПРОСЫ И ОТВЕТЫ

Что такое MobileSAM и чем она отличается от оригинальной модели SAM ?

MobileSAM это легкая и быстрая модель сегментации изображений, предназначенная для мобильных приложений. В ней сохранен тот же конвейер, что и в оригинальном SAM , но тяжелый кодер ViT-H (632 М параметров) заменен на более компактный кодер Tiny-ViT (5 М параметров). В результате этого изменения MobileSAM стал примерно в 5 раз меньше и в 7 раз быстрее, чем оригинальный SAM. Например, MobileSAM работает примерно 12 мс на изображение, по сравнению с 456 мс у оригинального SAM. Подробнее о реализации MobileSAM в различных проектах ты можешь узнать здесь.

Как протестировать MobileSAM с помощью Ultralytics?

Проверить MobileSAM в Ultralytics можно с помощью простых методов. Ты можешь использовать подсказки Point и Box для предсказания отрезков. Вот пример с использованием подсказки Point:

from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

За подробностями ты также можешь обратиться к разделу " Тестирование MobileSAM ".

Почему я должен использовать MobileSAM для своего мобильного приложения?

MobileSAM идеально подходит для мобильных приложений благодаря своей легковесной архитектуре и высокой скорости вычислений. По сравнению с оригинальным SAM, MobileSAM примерно в 5 раз меньше и в 7 раз быстрее, что делает его подходящим для сред, где вычислительные ресурсы ограничены. Такая эффективность гарантирует, что мобильные устройства смогут выполнять сегментацию изображений в реальном времени без значительных задержек. Кроме того, модели MobileSAM, такие как Inference, оптимизированы для работы на мобильных устройствах.

Как проходило обучение на сайте MobileSAM , и доступен ли обучающий код?

MobileSAM was trained on a single GPU with a 100k dataset, which is 1% of the original images, in less than a day. While the training code will be made available in the future, you can currently explore other aspects of MobileSAM in the MobileSAM GitHub repository. This repository includes pre-trained weights and implementation details for various applications.

Каковы основные сценарии использования MobileSAM?

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

  • Обнаружение и сегментация объектов в реальном времени для мобильных приложений.
  • Обработка изображений с низкой задержкой в устройствах с ограниченными вычислительными ресурсами.
  • Интеграция в мобильные приложения, управляемые ИИ, для таких задач, как дополненная реальность (AR) и аналитика в реальном времени.

Более подробные примеры использования и сравнения производительности ты найдешь в разделе Адаптация с SAM на MobileSAM.



Создано 2023-11-12, Обновлено 2024-07-04
Авторы: glenn-jocher (13), ChaoningZhang (1), Laughing-q (1)

Комментарии