Skip to content

MobileSAM Logo

Mobile Segment Anything (MobileSAM)

L'article MobileSAM est maintenant disponible sur arXiv.

Une démonstration de MobileSAM fonctionnant sur une unité centrale est accessible sur ce lien de démonstration. La performance sur une unité centrale Mac i5 prend environ 3 secondes. Sur la démo Hugging Face , l'interface et les unités centrales moins performantes contribuent à une réponse plus lente, mais elle continue à fonctionner efficacement.

MobileSAM est mis en Ĺ“uvre dans divers projets, notamment Grounding-SAM, AnyLabeling, et Segment Anything in 3D.

MobileSAM est entraîné sur un seul GPU avec un ensemble de données de 100k (1% des images originales) en moins d'une journée. Le code de cette formation sera mis à disposition ultérieurement.

Modèles disponibles, tâches prises en charge et modes de fonctionnement

Ce tableau présente les modèles disponibles avec leurs poids spécifiques pré-entraînés, les tâches qu'ils prennent en charge et leur compatibilité avec différents modes de fonctionnement comme Inference, Validation, Training et Export, indiqués par des emojis ✅ pour les modes pris en charge et des emojis ❌ pour les modes non pris en charge.

Type de modèle Poids pré-entraînés Tâches prises en charge Inférence Validation Formation Exporter
MobileSAM mobile_sam.pt Segmentation des instances ✅ ❌ ❌ ❌

Adaptation de SAM Ă  MobileSAM

Puisque MobileSAM conserve le même pipeline que l'original SAM, nous avons incorporé le prétraitement, le post-traitement et toutes les autres interfaces de l'original. Par conséquent, les personnes qui utilisent actuellement l'original SAM peuvent passer à MobileSAM avec un minimum d'effort.

MobileSAM a des performances comparables à celles de l'original SAM et conserve le même pipeline, à l'exception d'un changement dans l'encodeur d'image. Plus précisément, nous remplaçons le lourd encodeur ViT-H d'origine (632M) par un encodeur Tiny-ViT plus petit (5M). Sur un seul GPU, MobileSAM fonctionne à environ 12 ms par image : 8 ms pour l'encodeur d'image et 4 ms pour le décodeur de masque.

Le tableau suivant présente une comparaison des encodeurs d'images basés sur le ViT :

Encodeur d'images Original SAM MobileSAM
Paramètres 611M 5M
La vitesse 452ms 8ms

L'original SAM et MobileSAM utilisent tous deux le même décodeur de masque guidé par l'invite :

DĂ©codeur de masque Original SAM MobileSAM
Paramètres 3.876M 3.876M
La vitesse 4ms 4ms

Voici la comparaison de l'ensemble de la canalisation :

Pipeline entier (Enc+Dec) Original SAM MobileSAM
Paramètres 615M 9.66M
La vitesse 456ms 12ms

Les performances de MobileSAM et de l'original SAM sont démontrées à l'aide d'un point et d'une boîte.

Image avec un point comme incitation

Image avec boîte en guise d'incitation

Grâce à ses performances supérieures, MobileSAM est environ 5 fois plus petit et 7 fois plus rapide que l'actuel FastSAM. Plus de détails sont disponibles sur la page du projetMobileSAM .

Tester MobileSAM dans Ultralytics

Tout comme l'original SAM, nous proposons une méthode de test simple dans Ultralytics, y compris des modes pour les messages-guides de type Point et Box.

Modèle à télécharger

Tu peux télécharger le modèle ici.

Point d'interrogation

Exemple

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

Prompt Ă  l'action

Exemple

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

Nous avons mis en place MobileSAM et SAM en utilisant la mĂŞme API. Pour plus d'informations sur l'utilisation, tu peux consulter le SAM page.

Citations et remerciements

Si tu trouves MobileSAM utile dans ton travail de recherche ou de développement, pense à citer notre article :

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


Créé le 2023-11-12, Mis à jour le 2024-01-16
Auteurs : glenn-jocher (7), ChaoningZhang (1), Laughing-q (1)

Commentaires