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.
Guarda: How to Run Inference with MobileSAM using Ultralytics | Step-by-Step Guide 🎉
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.
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
Box Prompt
Esempio
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:
DOMANDE FREQUENTI
Cos'è MobileSAM e in cosa differisce dal modello originale SAM ?
MobileSAM is a lightweight, fast image segmentation model designed for mobile applications. It retains the same pipeline as the original SAM but replaces the heavyweight ViT-H encoder (632M parameters) with a smaller Tiny-ViT encoder (5M parameters). This change results in MobileSAM being approximately 5 times smaller and 7 times faster than the original SAM. For instance, MobileSAM operates at about 12ms per image, compared to the original SAM's 456ms. You can learn more about the MobileSAM implementation in various projects here.
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:
- Real-time object detection and segmentation for mobile applications.
- 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.