Overslaan naar inhoud

MobileSAM Logo

Mobiel Segment Alles (MobileSAM)

De MobileSAM paper is nu beschikbaar op arXiv.

A demonstration of MobileSAM running on a CPU can be accessed at this demo link. The performance on a Mac i5 CPU takes approximately 3 seconds. On the Hugging Face demo, the interface and lower-performance CPUs contribute to a slower response, but it continues to function effectively.

MobileSAM is geïmplementeerd in verschillende projecten, waaronder Grounding-SAM, AnyLabeling en Segment Anything in 3D.

MobileSAM is getraind op een enkele GPU met een dataset van 100k (1% van de originele afbeeldingen) in minder dan een dag. De code voor deze training zal in de toekomst beschikbaar worden gesteld.

Beschikbare modellen, ondersteunde taken en bedrijfsmodi

Deze tabel toont de beschikbare modellen met hun specifieke voorgetrainde gewichten, de taken die ze ondersteunen en hun compatibiliteit met verschillende bedrijfsmodi zoals Inferentie, Validatie, Training en Exporteren, aangegeven met ✅ emoji's voor ondersteunde modi en ❌ emoji's voor niet-ondersteunde modi.

Type model Voorgetrainde gewichten Ondersteunde taken Inferentie Validatie Training Exporteer
MobileSAM mobiel_sam.pt Instance segmentatie

Aanpassen van SAM aan MobileSAM

Omdat MobileSAM dezelfde pijplijn heeft als het origineel SAM, hebben we de voorbewerking, nabewerking en alle andere interfaces van het origineel overgenomen. Hierdoor kunnen mensen die momenteel het originele SAM gebruiken met minimale inspanning overstappen naar MobileSAM .

MobileSAM presteert vergelijkbaar met de originele SAM en behoudt dezelfde pijplijn met uitzondering van een wijziging in de afbeeldingsencoder. We vervangen de originele zware ViT-H encoder (632M) door een kleinere Tiny-ViT (5M). Op een enkele GPU werkt MobileSAM met ongeveer 12 ms per afbeelding: 8 ms op de afbeeldingsencoder en 4 ms op de maskerdecoder.

De volgende tabel geeft een vergelijking van op ViT gebaseerde beeldcoders:

Afbeeldingencoder Origineel SAM MobileSAM
Parameters 611M 5M
Snelheid 452 ms 8 ms

Zowel de originele SAM als MobileSAM maken gebruik van dezelfde promptgestuurde maskerdecoder:

Masker Decoder Origineel SAM MobileSAM
Parameters 3.876M 3.876M
Snelheid 4 ms 4 ms

Hier is de vergelijking van de hele pijplijn:

Hele pijplijn (Enc+Dec) Origineel SAM MobileSAM
Parameters 615M 9.66M
Snelheid 456 ms 12 ms

De prestaties van MobileSAM en het originele SAM worden gedemonstreerd met zowel een punt als een doos als aanwijzingen.

Afbeelding met punt als aanwijzing

Afbeelding met kader als aanwijzing

Met zijn superieure prestaties is MobileSAM ongeveer 5 keer kleiner en 7 keer sneller dan het huidige FastSAM. Meer details zijn beschikbaar op de MobileSAM projectpagina.

Test MobileSAM in Ultralytics

Net als de originele SAM bieden we een eenvoudige testmethode in Ultralytics, inclusief modi voor zowel punt- als boxvragen.

Model downloaden

Je kunt het model hier downloaden.

Punt Prompt

Voorbeeld

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

Tekstvak

Voorbeeld

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

We hebben MobileSAM en SAM met behulp van dezelfde API. Zie voor meer gebruiksinformatie de SAM pagina.

Citaten en Erkenningen

Als je MobileSAM nuttig vindt in je onderzoek of ontwikkelingswerk, overweeg dan om ons artikel te citeren:

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

FAQ

Wat is MobileSAM en hoe verschilt het van het originele SAM model?

MobileSAM is een lichtgewicht, snel segmentatiemodel voor afbeeldingen, ontworpen voor mobiele toepassingen. Het behoudt dezelfde pijplijn als het originele SAM , maar vervangt de zware ViT-H encoder (632M parameters) door een kleinere Tiny-ViT encoder (5M parameters). Door deze verandering is MobileSAM ongeveer 5 keer zo klein en 7 keer zo snel als het origineel SAM. MobileSAM werkt bijvoorbeeld met ongeveer 12 ms per afbeelding, vergeleken met de 456 ms van de originele SAM. Je kunt hier meer te weten komen over de implementatie van MobileSAM in verschillende projecten.

Hoe kan ik MobileSAM testen met Ultralytics?

Het testen van MobileSAM in Ultralytics kan op een eenvoudige manier. Je kunt Point en Box prompts gebruiken om segmenten te voorspellen. Hier is een voorbeeld van een Point prompt:

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

Je kunt ook de sectie Testen MobileSAM raadplegen voor meer informatie.

Waarom zou ik MobileSAM gebruiken voor mijn mobiele applicatie?

MobileSAM is ideaal voor mobiele toepassingen vanwege zijn lichtgewicht architectuur en snelle inferentiesnelheid. Vergeleken met het originele SAM is MobileSAM ongeveer 5 keer kleiner en 7 keer sneller, waardoor het geschikt is voor omgevingen waar rekenkracht beperkt is. Deze efficiëntie zorgt ervoor dat mobiele apparaten real-time beeldsegmentatie kunnen uitvoeren zonder noemenswaardige vertraging. Bovendien zijn de modellen van MobileSAM, zoals Inference, geoptimaliseerd voor mobiele prestaties.

Hoe is MobileSAM getraind en is de trainingscode beschikbaar?

MobileSAM was trained on a single GPU with a 100k dataset, which is 1% of the original images, in less than a day. While the training code will be made available in the future, you can currently explore other aspects of MobileSAM in the MobileSAM GitHub repository. This repository includes pre-trained weights and implementation details for various applications.

Wat zijn de primaire gebruikssituaties voor MobileSAM?

MobileSAM is ontworpen voor snelle en efficiënte beeldsegmentatie in mobiele omgevingen. Primaire gebruikssituaties zijn onder andere:

  • Real-time objectdetectie en segmentatie voor mobiele toepassingen.
  • Beeldverwerking met lage latentie op apparaten met beperkte rekenkracht.
  • Integratie in AI-gestuurde mobiele apps voor taken als augmented reality (AR) en real-time analytics.

Zie het gedeelte Aanpassen van SAM naar MobileSAM voor meer gedetailleerde gebruikssituaties en prestatievergelijkingen.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (13), ChaoningZhang (1), Laughing-q (1)

Reacties