Overslaan naar inhoud

MobileSAM Logo

Mobiel Segment Alles (MobileSAM)

De MobileSAM paper is nu beschikbaar op arXiv.

Een demonstratie van MobileSAM op een CPU kun je bekijken via deze demo-link. De prestaties op een Mac i5 CPU duren ongeveer 3 seconden. Op de Hugging Face demo dragen de interface en CPU's met lagere prestaties bij aan een langzamere reactie, maar het blijft effectief werken.

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


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

Reacties