Meet YOLO26: next-gen vision AI.

Logotipo do modelo de segmentação de imagem leve MobileSAM

Link to this sectionMobile Segment Anything (MobileSAM)#

O MobileSAM é um modelo de segmentação de imagem compacto e eficiente, desenvolvido especialmente para dispositivos móveis e de borda (edge). Projetado para levar o poder do Segment Anything Model (SAM) da Meta a ambientes com computação limitada, o MobileSAM oferece segmentação quase instantânea, mantendo a compatibilidade com o pipeline original do SAM. Estejas a desenvolver aplicações em tempo real ou implementações leves, o MobileSAM oferece resultados de segmentação impressionantes com uma fração dos requisitos de tamanho e velocidade dos seus predecessores.



Watch: How to Run Inference with MobileSAM using Ultralytics | Step-by-Step Guide 🎉

O MobileSAM foi adotado em diversos projetos, incluindo Grounding-SAM, AnyLabeling e Segment Anything in 3D.

O MobileSAM foi treinado numa única GPU utilizando um conjunto de dados de 100 mil imagens (1% das imagens originais) em menos de um dia. O código de treino será lançado no futuro.

Link to this sectionModelos Disponíveis, Tarefas Suportadas e Modos de Operação#

A tabela abaixo apresenta o modelo MobileSAM disponível, os seus pesos pré-treinados, as tarefas suportadas e a compatibilidade com diferentes modos de operação, tais como Inference, Validation, Training e Export. Os modos suportados são indicados por ✅ e os não suportados por ❌.

Tipo de ModeloPesos Pré-treinadosTarefas SuportadasInferênciaValidaçãoTreinamentoExportar
MobileSAMmobile_sam.ptSegmentação de instâncias

Link to this sectionComparação entre MobileSAM e YOLO#

A seguinte comparação destaca as diferenças entre as variantes do SAM da Meta, o MobileSAM e os modelos de segmentação da Ultralytics, incluindo o YOLO26n-seg:

ModeloTamanho
(MB)
Parâmetros
(M)
Velocidade (CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s com backbone YOLOv823.911.858.0
Ultralytics YOLOv8n-seg7.1 (11.0x menor)3.4 (11.4x menos)24.8 (945x mais rápido)
Ultralytics YOLO11n-seg6.2 (12.6x menor)2.9 (13.4x menos)24.3 (964x mais rápido)
Ultralytics YOLO26n-seg6.7 (11.7x menor)2.7 (14.4x menos)25.2 (930x mais rápido)

Esta comparação demonstra as diferenças substanciais no tamanho e na velocidade do modelo entre as variantes do SAM e os modelos de segmentação YOLO. Embora os modelos SAM ofereçam capacidades de segmentação automática únicas, os modelos YOLO — especialmente o YOLOv8n-seg, YOLO11n-seg e YOLO26n-seg — são significativamente menores, mais rápidos e mais eficientes computacionalmente.

Velocidades do SAM medidas com PyTorch, velocidades do YOLO medidas com ONNX Runtime. Testes realizados num Apple M4 Air de 2025 com 16GB de RAM usando torch==2.10.0, ultralytics==8.4.31 e onnxruntime==1.24.4. Para reproduzir estes resultados:

Exemplo
from ultralytics import ASSETS, SAM, YOLO, FastSAM

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

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

# Profile YOLO models (ONNX)
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    onnx_path = model.export(format="onnx", dynamic=True)
    model = YOLO(onnx_path)
    model(ASSETS)

Link to this sectionAdaptar do SAM para o MobileSAM#

O MobileSAM retém o mesmo pipeline que o SAM original, incluindo pré-processamento, pós-processamento e todas as interfaces. Isto significa que podes transitar do SAM para o MobileSAM com alterações mínimas no teu fluxo de trabalho.

A principal diferença é o codificador de imagem: o MobileSAM substitui o codificador ViT-H original (637M parâmetros) por um codificador Tiny-ViT muito menor (5M parâmetros). Em uma única GPU, o MobileSAM processa uma imagem em cerca de 12ms (8ms para o codificador, 4ms para o decodificador de máscara).

Link to this sectionComparação de Codificadores de Imagem Baseados em ViT#

Codificador de ImagemSAM OriginalMobileSAM
Parâmetros637M5M
Velocidade452ms8ms

Link to this sectionDescodificador de Máscara Guiado por Prompt#

Descodificador de MáscaraSAM OriginalMobileSAM
Parâmetros3.876M3.876M
Velocidade4ms4ms

Link to this sectionComparação do Pipeline Completo#

Pipeline Completo (Enc+Dec)SAM OriginalMobileSAM
Parâmetros641M9.66M
Velocidade456ms12ms

O desempenho do MobileSAM e do SAM original é ilustrado abaixo usando prompts de ponto e caixa.

Imagem com Ponto como Prompt

Imagem com Caixa como Prompt

O MobileSAM é aproximadamente 7 vezes menor e 5 vezes mais rápido que o FastSAM. Para mais detalhes, visita a página do projeto MobileSAM.

Link to this sectionTestar o MobileSAM na Ultralytics#

Assim como o SAM original, a Ultralytics fornece uma interface simples para testar o MobileSAM, suportando prompts de Ponto e Caixa.

Link to this sectionTransferência do Modelo#

Descarrega os pesos pré-treinados do MobileSAM a partir dos ativos da Ultralytics.

Link to this sectionPrompt de Ponto#

Exemplo
from ultralytics import SAM

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

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

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

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

# Predict a segment using both positive and negative prompts.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Link to this sectionPrompt de Caixa#

Exemplo
from ultralytics import SAM

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

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

# Predict multiple segments based on multiple box prompts
model.predict("ultralytics/assets/zidane.jpg", bboxes=[[439, 437, 524, 709], [114, 196, 313, 708]])

Tanto o MobileSAM como o SAM partilham a mesma API. Para mais detalhes de utilização, vê a documentação do SAM.

Link to this sectionConstruir Automaticamente Conjuntos de Dados de Segmentação Usando um Modelo de Deteção#

Para anotar automaticamente o teu conjunto de dados com a estrutura da Ultralytics, usa a função auto_annotate como mostrado abaixo:

Exemplo
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="mobile_sam.pt")
ArgumentoTipoPredefiniçãoDescrição
datastrobrigatórioCaminho para o diretório contendo as imagens alvo para anotação ou segmentação.
det_modelstr'yolo26x.pt'Caminho do modelo de deteção YOLO para a deteção inicial de objetos.
sam_modelstr'sam_b.pt'Caminho do modelo SAM para segmentação (suporta pesos SAM, SAM 2, MobileSAM e SAM 3).
devicestr''Dispositivo de computação (ex: 'cuda:0', 'cpu', ou '' para deteção automática de dispositivo).
conffloat0.25Limiar de confiança de deteção YOLO para filtrar deteções fracas.
ioufloat0.45Limiar de IoU para Non-Maximum Suppression para filtrar caixas sobrepostas.
imgszint640Tamanho de entrada para redimensionar imagens (deve ser múltiplo de 32).
max_detint300Número máximo de deteções por imagem para eficiência de memória.
classeslist[int]NoneLista de índices de classe para detetar (ex: [0, 1] para pessoa e bicicleta).
output_dirstrNoneDiretório de salvamento para anotações (padrão: <data>_auto_annotate_labels irmão).

Link to this sectionCitações e Agradecimentos#

Se o MobileSAM for útil na tua investigação ou desenvolvimento, por favor considera citar o seguinte artigo:

Citação
@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}
}

Lê o artigo completo sobre o MobileSAM no arXiv.

Link to this sectionFAQ#

Link to this sectionO que é o MobileSAM e como difere do modelo SAM original?#

O MobileSAM é um modelo leve e rápido de segmentação de imagem otimizado para aplicações móveis e de borda. Ele mantém o mesmo pipeline do SAM original, mas substitui o grande codificador ViT-H (637M parâmetros) por um codificador Tiny-ViT compacto (5M parâmetros). Isso resulta no MobileSAM sendo cerca de 5 vezes menor e 7 vezes mais rápido que o SAM original, operando a aproximadamente 12ms por imagem contra 456ms do SAM. Explore mais sobre a implementação do MobileSAM no repositório GitHub do MobileSAM.

Link to this sectionComo posso testar o MobileSAM usando a Ultralytics?#

Testar o MobileSAM na Ultralytics é simples. Podes usar prompts de Ponto e Caixa para prever segmentos. Por exemplo, usando um prompt de Ponto:

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])

Para mais detalhes, vê a secção Testar o MobileSAM na Ultralytics.

Link to this sectionPor que devo usar o MobileSAM para a minha aplicação móvel?#

O MobileSAM é ideal para aplicações móveis e de borda devido ao seu design leve e velocidade de inferência rápida. Comparado ao SAM original, o MobileSAM é cerca de 5 vezes menor e 7 vezes mais rápido, tornando-o adequado para segmentação em tempo real em dispositivos com recursos computacionais limitados. A sua eficiência permite que dispositivos móveis realizem segmentação de imagem em tempo real sem latência significativa. Além disso, o MobileSAM suporta o modo Inference otimizado para desempenho móvel.

Link to this sectionComo o MobileSAM foi treinado, e o código de treino está disponível?#

O MobileSAM foi treinado numa única GPU com um conjunto de dados de 100 mil imagens (1% das imagens originais) em menos de um dia. Embora o código de treino seja lançado no futuro, podes atualmente aceder aos pesos pré-treinados e aos detalhes de implementação a partir do repositório GitHub do MobileSAM.

Link to this sectionQuais são os principais casos de uso para o MobileSAM?#

O MobileSAM foi projetado para segmentação de imagem rápida e eficiente em ambientes móveis e de borda. Os principais casos de uso incluem:

  • Detecção e segmentação de objetos em tempo real para aplicativos móveis
  • Processamento de imagem de baixa latência em dispositivos com computação limitada
  • Integração em aplicativos móveis baseados em IA para realidade aumentada (AR), análise e muito mais

Para mais detalhes sobre casos de uso e desempenho, veja Adaptação de SAM para MobileSAM e o blog da Ultralytics sobre aplicações de MobileSAM.

Comentários