Vai al contenuto

MobileSAM Logo

Segmento Mobile Anything (MobileSAM)

Il documento MobileSAM è ora disponibile su arXiv.

Una dimostrazione dell'esecuzione di MobileSAM su una CPU è disponibile a questo link dimostrativo. La performance su una CPU Mac i5 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 una singola GPU con un dataset di 100.000 immagini (l'1% delle immagini originali) in meno di un giorno. Il codice per questo 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, Validazione, 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 una singola 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}
}


Creato 2023-11-12, Aggiornato 2024-01-16
Autori: glenn-jocher (7), ChaoningZhang (1), Laughing-q (1)

Commenti