Vai al contenuto

MobileSAM Logo

Segmento Mobile Anything (MobileSAM)

Il documento MobileSAM è ora disponibile su arXiv.

Una dimostrazione dell'esecuzione di MobileSAM su un CPU è disponibile a questo link demo. La performance su un Mac i5 CPU richiede circa 3 secondi. Nella demo di Hugging Face , l'interfaccia e le CPU meno performanti contribuiscono a rallentare la risposta, ma il programma continua a funzionare in modo efficace.

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

MobileSAM è stato addestrato su un singolo GPU con un dataset di 100k immagini (l'1% delle immagini originali) in meno di un giorno. Il codice per l'addestramento sarà reso disponibile in futuro.

Modelli disponibili, attività supportate e modalità operative

Questa tabella presenta i modelli disponibili con i loro pesi specifici pre-addestrati, i compiti che supportano e la loro compatibilità con diverse modalità operative come Inferenza, Convalida, Formazione ed Esportazione, indicate da ✅ emoji per le modalità supportate e ❌ emoji per le modalità non supportate.

Tipo di modello Pesi pre-addestrati Attività supportate Inferenza Convalida Formazione Esportazione
MobileSAM mobile_sam.pt Segmentazione dell'istanza

Adattarsi da SAM a MobileSAM

Poiché MobileSAM mantiene la stessa pipeline dell'originale SAM, abbiamo incorporato la preelaborazione, la postelaborazione e tutte le altre interfacce dell'originale. Di conseguenza, chi sta utilizzando l'originale SAM può passare a MobileSAM con il minimo sforzo.

MobileSAM ha prestazioni paragonabili a quelle del sito SAM originale e mantiene la stessa pipeline, ad eccezione di un cambiamento nel codificatore di immagini. In particolare, sostituiamo il pesante codificatore ViT-H originale (632M) con un più piccolo Tiny-ViT (5M). Su un singolo GPU, MobileSAM opera a circa 12ms per immagine: 8ms per l'encoder dell'immagine e 4ms per il decoder della maschera.

La tabella seguente fornisce un confronto tra i codificatori di immagini basati su ViT:

Codificatore di immagini Originale SAM MobileSAM
Parametri 611M 5M
Velocità 452ms 8ms

Sia il sito originale SAM che MobileSAM utilizzano lo stesso decodificatore di maschere guidato dai messaggi:

Decodificatore di maschere Originale SAM MobileSAM
Parametri 3.876M 3.876M
Velocità 4ms 4ms

Ecco il confronto dell'intera pipeline:

Intera pipeline (Enc+Dec) Originale SAM MobileSAM
Parametri 615M 9.66M
Velocità 456ms 12ms

Le prestazioni di MobileSAM e del sito originale SAM sono dimostrate utilizzando un punto e un riquadro come prompt.

Immagine con punto come promemoria

Immagine con riquadro come promemoria

Grazie alle sue prestazioni superiori, MobileSAM è circa 5 volte più piccolo e 7 volte più veloce dell'attuale FastSAM. Maggiori dettagli sono disponibili alla pagina del progettoMobileSAM .

Testare MobileSAM in Ultralytics

Come nel caso del sito originale SAM, anche in Ultralytics offriamo un metodo di verifica semplice, che include modalità per i prompt Point e Box.

Modello da scaricare

Puoi scaricare il modello qui.

Prompt a punti

Esempio

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

Esempio

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

Abbiamo implementato MobileSAM e SAM utilizzando la stessa API. Per ulteriori informazioni sull'utilizzo, consulta la sezione SAM pagina.

Citazioni e ringraziamenti

Se trovi utile MobileSAM nel tuo lavoro di ricerca o sviluppo, ti invitiamo a citare il nostro articolo:

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

DOMANDE FREQUENTI

Cos'è MobileSAM e in cosa differisce dal modello originale SAM ?

MobileSAM è un modello di segmentazione delle immagini leggero e veloce progettato per le applicazioni mobili. Mantiene la stessa pipeline dell'originale SAM ma sostituisce il pesante codificatore ViT-H (632M parametri) con un codificatore Tiny-ViT più piccolo (5M parametri). Questo cambiamento fa sì che MobileSAM sia circa 5 volte più piccolo e 7 volte più veloce dell'originale SAM. Ad esempio, MobileSAM opera a circa 12ms per immagine, rispetto ai 456ms dell'originale SAM. Puoi trovare maggiori informazioni sull'implementazione di MobileSAM in vari progetti qui.

Come posso testare MobileSAM utilizzando Ultralytics?

Il test di MobileSAM in Ultralytics può essere effettuato con metodi semplici. Puoi usare i prompt Punto e Casella per prevedere i segmenti. Ecco un esempio che utilizza un prompt 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])

Puoi anche consultare la sezione Test di MobileSAM per maggiori dettagli.

Perché dovrei usare MobileSAM per la mia applicazione mobile?

MobileSAM è ideale per le applicazioni mobili grazie alla sua architettura leggera e alla velocità di inferenza. Rispetto all'originale SAM, MobileSAM è circa 5 volte più piccolo e 7 volte più veloce, il che lo rende adatto ad ambienti in cui le risorse computazionali sono limitate. Questa efficienza garantisce che i dispositivi mobili possano eseguire la segmentazione delle immagini in tempo reale senza una latenza significativa. Inoltre, i modelli di MobileSAM, come l'inferenza, sono ottimizzati per le prestazioni dei dispositivi mobili.

Come è stato addestrato MobileSAM e il codice di addestramento è disponibile?

MobileSAM è stato addestrato su un singolo GPU con un set di dati di 100k, pari all'1% delle immagini originali, in meno di un giorno. Mentre il codice di addestramento sarà reso disponibile in futuro, al momento puoi esplorare altri aspetti di MobileSAM nel repository GitHub MobileSAM . Questo repository include pesi pre-addestrati e dettagli di implementazione per varie applicazioni.

Quali sono i principali casi d'uso di MobileSAM?

MobileSAM è stato progettato per una segmentazione veloce ed efficiente delle immagini in ambienti mobili. I casi d'uso principali includono:

  • Rilevamento e segmentazione degli oggetti in tempo reale per applicazioni mobili.
  • Elaborazione di immagini a bassa latenza in dispositivi con risorse computazionali limitate.
  • Integrazione nelle app mobili guidate dall'intelligenza artificiale per attività come la realtà aumentata (AR) e l'analisi in tempo reale.

Per casi d'uso più dettagliati e confronti di prestazioni, consulta la sezione Adattamento da SAM a MobileSAM.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (13), ChaoningZhang (1), Laughing-q (1)

Commenti