YOLO Vision 2026:

MobileSAM lightweight image segmentation model logo

Mobile Segment Anything (MobileSAM)#

MobileSAM è un modello di segmentazione di immagini compatto ed efficiente, creato appositamente per dispositivi mobili ed edge. Progettato per portare la potenza del Segment Anything Model (SAM) di Meta in ambienti con risorse di calcolo limitate, MobileSAM offre una segmentazione quasi istantanea mantenendo la compatibilità con la pipeline originale di SAM. Che tu stia sviluppando applicazioni in tempo reale o distribuzioni leggere, MobileSAM garantisce risultati di segmentazione impressionanti con una frazione dei requisiti di dimensioni e velocità dei suoi predecessori.



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

MobileSAM è stato adottato in vari progetti, tra cui Grounding-SAM, AnyLabeling e Segment Anything in 3D.

MobileSAM è stato addestrato su una singola GPU utilizzando un dataset di 100k immagini (l'1% delle immagini originali) in meno di un giorno. Il codice di addestramento verrà rilasciato in futuro.

Modelli disponibili, attività supportate e modalità operative#

La tabella seguente elenca il modello MobileSAM disponibile, i suoi pesi pre-addestrati, i task supportati e la compatibilità con diverse modalità operative come Inference, Validation, Training ed Export. Le modalità supportate sono indicate da ✅ e quelle non supportate da ❌.

Tipo di modelloPesi pre-addestratiAttività supportateAddestramentoValidazioneInferenzaEsportazione
MobileSAMmobile_sam.ptSegmentazione di istanze

Confronto MobileSAM vs YOLO#

Il seguente confronto evidenzia le differenze tra le varianti SAM di Meta, MobileSAM e i modelli di segmentazione Ultralytics, incluso YOLO26n-seg:

ModelloDimensioni
(MB)
Parametri
(M)
Velocità (CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s con YOLOv8 backbone23.911.858.0
Ultralytics YOLOv8n-seg7.1 (11.0x più piccolo)3.4 (11.4x in meno)24.8 (945x più veloce)
Ultralytics YOLO11n-seg6.2 (12.6x più piccolo)2.9 (13.4x in meno)24.3 (964x più veloce)
Ultralytics YOLO26n-seg6.7 (11.7x più piccolo)2.7 (14.4x in meno)25.2 (930x più veloce)

Questo confronto dimostra le sostanziali differenze nelle dimensioni e nella velocità del modello tra le varianti SAM e i modelli di segmentazione YOLO. Mentre i modelli SAM offrono capacità di segmentazione automatica uniche, i modelli YOLO—specialmente YOLOv8n-seg, YOLO11n-seg e YOLO26n-seg—sono significativamente più piccoli, più veloci e più efficienti dal punto di vista computazionale.

Velocità di SAM misurate con PyTorch, velocità di YOLO misurate con ONNX Runtime. Test eseguiti su un Apple M4 Air del 2025 con 16GB di RAM utilizzando torch==2.10.0, ultralytics==8.4.31 e onnxruntime==1.24.4. Per riprodurre questi risultati:

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

Adattamento da SAM a MobileSAM#

MobileSAM mantiene la stessa pipeline del SAM originale, inclusi pre-elaborazione, post-elaborazione e tutte le interfacce. Ciò significa che puoi passare da SAM a MobileSAM con modifiche minime al tuo flusso di lavoro.

La differenza principale è l'encoder dell'immagine: MobileSAM sostituisce l'encoder originale ViT-H (637M parametri) con un encoder Tiny-ViT molto più piccolo (5M parametri). Su una singola GPU, MobileSAM elabora un'immagine in circa 12ms (8ms per l'encoder, 4ms per il decoder delle maschere).

Confronto Encoder Immagini Basato su ViT#

Encoder ImmaginiSAM OriginaleMobileSAM
Parametri637M5M
Velocità452ms8ms

Decodificatore di Maschere Guidato da Prompt#

Decodificatore di MaschereSAM OriginaleMobileSAM
Parametri3.876M3.876M
Velocità4ms4ms

Confronto Intera Pipeline#

Intera Pipeline (Enc+Dec)SAM OriginaleMobileSAM
Parametri641M9.66M
Velocità456ms12ms

Le prestazioni di MobileSAM e del SAM originale sono illustrate di seguito utilizzando sia prompt di tipo punto che di tipo riquadro.

Image with Point as Prompt

Image with Box as Prompt

MobileSAM è circa 7 volte più piccolo e 5 volte più veloce di FastSAM. Per ulteriori dettagli, visita la MobileSAM project page.

Testare MobileSAM in Ultralytics#

Proprio come il SAM originale, Ultralytics fornisce una semplice interfaccia per testare MobileSAM, supportando prompt sia a punto che a riquadro.

Download del Modello#

Scarica i pesi pre-addestrati di MobileSAM da Ultralytics assets.

Prompt Punto#

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

Prompt Riquadro#

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

Sia MobileSAM che SAM condividono la stessa API. Per maggiori dettagli sull'utilizzo, consulta la SAM documentation.

Costruisci Automaticamente Dataset di Segmentazione Usando un Modello di Rilevamento#

Per annotare automaticamente il tuo dataset con il framework Ultralytics, usa la funzione auto_annotate come mostrato di seguito:

Esempio
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="mobile_sam.pt")
ArgomentoTipoPredefinitoDescrizione
datastrobbligatorioPercorso della directory contenente le immagini target per l'annotazione o la segmentazione.
det_modelstr'yolo26x.pt'Percorso del modello di rilevamento YOLO per il rilevamento iniziale degli oggetti.
sam_modelstr'sam_b.pt'Percorso del modello SAM per la segmentazione (supporta pesi SAM, SAM 2, MobileSAM e SAM 3).
devicestr''Dispositivo di calcolo (es. 'cuda:0', 'cpu' o '' per il rilevamento automatico del dispositivo).
conffloat0.25Soglia di confidenza del rilevamento YOLO per filtrare i rilevamenti deboli.
ioufloat0.45Soglia IoU per la Soppressione Non Massima (Non-Maximum Suppression) per filtrare i riquadri sovrapposti.
imgszint640Dimensione di input per ridimensionare le immagini (deve essere un multiplo di 32).
max_detint300Numero massimo di rilevamenti per immagine per l'efficienza della memoria.
classeslist[int]NoneElenco degli indici di classe da rilevare (ad es., [0, 1] per persona e bicicletta).
output_dirstrNoneDirectory di salvataggio per le annotazioni (predefinita: <data>_auto_annotate_labels correlata).

Citazioni e riconoscimenti#

Se MobileSAM ti è utile nella tua ricerca o sviluppo, ti preghiamo di considerare di citare il seguente paper:

Citazione
@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}
}

Leggi il MobileSAM paper on arXiv completo.

FAQ#

  • MobileSAM è un modello di image segmentation leggero e veloce, ottimizzato per applicazioni mobili ed edge. Mantiene la stessa pipeline del SAM originale ma sostituisce il grande encoder ViT-H (637M parametri) con un encoder Tiny-ViT compatto (5M parametri). Di conseguenza, MobileSAM è circa 5 volte più piccolo e 7 volte più veloce del SAM originale, operando a circa 12ms per immagine rispetto ai 456ms di SAM. Scopri di più sull'implementazione di MobileSAM nel MobileSAM GitHub repository.

  • Testare MobileSAM in Ultralytics è semplice. Puoi usare prompt di tipo Punto e Riquadro per prevedere i segmenti. Ad esempio, usando un prompt di tipo Punto:

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

    Per ulteriori dettagli, consulta la sezione Testing MobileSAM in Ultralytics.

  • MobileSAM è ideale per applicazioni mobili ed edge grazie al suo design leggero e alla rapida velocità di inferenza. Rispetto al SAM originale, MobileSAM è circa 5 volte più piccolo e 7 volte più veloce, rendendolo adatto alla segmentazione in tempo reale su dispositivi con risorse di calcolo limitate. La sua efficienza consente ai dispositivi mobili di eseguire la real-time image segmentation senza una latenza significativa. Inoltre, MobileSAM supporta Inference mode ottimizzata per le prestazioni mobili.

  • MobileSAM è stato addestrato su una singola GPU con un dataset di 100k immagini (1% delle immagini originali) in meno di un giorno. Sebbene il codice di addestramento verrà rilasciato in futuro, attualmente puoi accedere ai pesi pre-addestrati e ai dettagli di implementazione dal MobileSAM GitHub repository.

  • MobileSAM è progettato per una segmentazione di immagini veloce ed efficiente in ambienti mobile ed edge. I principali casi d'uso includono:

    • object detection and segmentation in tempo reale per app mobili
    • Elaborazione immagini a bassa latenza su dispositivi con risorse di calcolo limitate
    • Integrazione in applicazioni mobile basate sull'IA per realtà aumentata (AR), analisi e altro

    Per maggiori dettagli sui casi d'uso e sulle prestazioni, consulta Adapting from SAM to MobileSAM e l'Ultralytics blog on MobileSAM applications.

Commenti