Meet YOLO26: next-gen vision AI.

MobileSAM leichtgewichtiges Bildsegmentierungsmodell-Logo

Link to this sectionMobile Segment Anything (MobileSAM)#

MobileSAM ist ein kompaktes, effizientes Bildsegmentierungsmodell, das speziell für mobile Geräte und Edge-Geräte entwickelt wurde. MobileSAM wurde konzipiert, um die Leistung des Segment Anything Model (SAM) von Meta in Umgebungen mit begrenzter Rechenleistung verfügbar zu machen, und liefert nahezu sofortige Segmentierung bei gleichzeitiger Kompatibilität mit der ursprünglichen SAM-Pipeline. Egal, ob du Echtzeitanwendungen oder leichtgewichtige Implementierungen entwickelst, MobileSAM bietet beeindruckende Segmentierungsergebnisse bei einem Bruchteil der Größen- und Geschwindigkeitsanforderungen seiner Vorgänger.



Watch: How to Run Inference with MobileSAM using Ultralytics | Step-by-Step Guide 🎉

MobileSAM wurde in einer Vielzahl von Projekten eingesetzt, darunter Grounding-SAM, AnyLabeling und Segment Anything in 3D.

MobileSAM wurde auf einer einzelnen GPU unter Verwendung eines 100k-Bilddatensatzes (1 % der ursprünglichen Bilder) in weniger als einem Tag trainiert. Der Trainingscode wird in der Zukunft veröffentlicht.

Link to this sectionVerfügbare Modelle, unterstützte Aufgaben und Betriebsmodi#

Die folgende Tabelle gibt einen Überblick über das verfügbare MobileSAM-Modell, seine vortrainierten Gewichte, unterstützte Aufgaben sowie die Kompatibilität mit verschiedenen Betriebsmodi wie Inference, Validation, Training und Export. Unterstützte Modi sind mit ✅ und nicht unterstützte Modi mit ❌ gekennzeichnet.

ModelltypVortrainierte GewichteUnterstützte AufgabenInferenceValidationTrainingExportieren
MobileSAMmobile_sam.ptInstance Segmentation

Link to this sectionMobileSAM-Vergleich vs. YOLO#

Der folgende Vergleich hebt die Unterschiede zwischen Metas SAM-Varianten, MobileSAM und Ultralytics-Segmentierungsmodellen hervor, einschließlich YOLO26n-seg:

ModellGröße
(MB)
Parameter
(M)
Geschwindigkeit (CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s mit YOLOv8 backbone23,911.858.0
Ultralytics YOLOv8n-seg7.1 (11.0x kleiner)3.4 (11.4x weniger)24.8 (945x schneller)
Ultralytics YOLO11n-seg6.2 (12.6x kleiner)2.9 (13.4x weniger)24.3 (964x schneller)
Ultralytics YOLO26n-seg6.7 (11.7x kleiner)2.7 (14.4x weniger)25.2 (930x schneller)

Dieser Vergleich demonstriert die erheblichen Unterschiede in Modellgröße und Geschwindigkeit zwischen SAM-Varianten und YOLO-Segmentierungsmodellen. Während SAM-Modelle einzigartige automatische Segmentierungsfunktionen bieten, sind YOLO-Modelle—insbesondere YOLOv8n-seg, YOLO11n-seg und YOLO26n-seg—deutlich kleiner, schneller und recheneffizienter.

SAM-Geschwindigkeiten wurden mit PyTorch gemessen, YOLO-Geschwindigkeiten mit ONNX Runtime. Die Tests wurden auf einem 2025 Apple M4 Air mit 16 GB RAM unter Verwendung von torch==2.10.0, ultralytics==8.4.31 und onnxruntime==1.24.4 durchgeführt. Um diese Ergebnisse zu reproduzieren:

Beispiel
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models (ONNX)
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    onnx_path = model.export(format="onnx", dynamic=True)
    model = YOLO(onnx_path)
    model(ASSETS)

Link to this sectionAnpassung von SAM an MobileSAM#

MobileSAM behält die gleiche Pipeline wie das ursprüngliche SAM bei, einschließlich Vorverarbeitung, Nachverarbeitung und aller Schnittstellen. Das bedeutet, dass du mit minimalen Änderungen an deinem Workflow von SAM zu MobileSAM wechseln kannst.

Der wesentliche Unterschied ist der Image Encoder: MobileSAM ersetzt den ursprünglichen ViT-H Encoder (637M Parameter) durch einen wesentlich kleineren Tiny-ViT Encoder (5M Parameter). Auf einer einzelnen GPU verarbeitet MobileSAM ein Bild in etwa 12ms (8ms für den Encoder, 4ms für den Mask Decoder).

Link to this sectionVergleich des ViT-basierten Bild-Encoders#

Bild-EncoderOriginal SAMMobileSAM
Parameter637M5M
Geschwindigkeit452ms8ms

Link to this sectionPrompt-gesteuerter Masken-Decoder#

Masken-DecoderOriginal SAMMobileSAM
Parameter3.876M3.876M
Geschwindigkeit4ms4ms

Link to this sectionGesamt-Pipeline-Vergleich#

Gesamt-Pipeline (Enc+Dec)Original SAMMobileSAM
Parameter641M9.66M
Geschwindigkeit456ms12ms

Die Leistung von MobileSAM und dem ursprünglichen SAM wird unten unter Verwendung von Punkt- und Box-Prompts veranschaulicht.

Bild mit Punkt als Prompt

Bild mit Box als Prompt

MobileSAM ist etwa 7-mal kleiner und 5-mal schneller als FastSAM. Weitere Details findest du auf der MobileSAM-Projektseite.

Link to this sectionTesten von MobileSAM in Ultralytics#

Genau wie das ursprüngliche SAM bietet Ultralytics eine einfache Schnittstelle zum Testen von MobileSAM, die sowohl Punkt- als auch Box-Prompts unterstützt.

Link to this sectionModell-Download#

Lade die vortrainierten MobileSAM-Gewichte von den Ultralytics-Assets herunter.

Link to this sectionPunkt-Prompt#

Beispiel
from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a single point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

# Predict multiple segments based on multiple points prompt
model.predict("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Predict a segment based on multiple points prompt per object
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Predict a segment using both positive and negative prompts.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Link to this sectionBox-Prompt#

Beispiel
from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a single box prompt
model.predict("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])

# Predict multiple segments based on multiple box prompts
model.predict("ultralytics/assets/zidane.jpg", bboxes=[[439, 437, 524, 709], [114, 196, 313, 708]])

Sowohl MobileSAM als auch SAM nutzen dieselbe API. Für weitere Nutzungsdetails siehe die SAM-Dokumentation.

Link to this sectionAutomatische Erstellung von Segmentierungsdatensätzen unter Verwendung eines Erkennungsmodells#

Um deinen Datensatz automatisch mit dem Ultralytics-Framework zu annotieren, verwende die Funktion auto_annotate wie unten gezeigt:

Beispiel
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="mobile_sam.pt")
ArgumentTypStandardBeschreibung
datastrerforderlichPfad zum Verzeichnis mit Zielbildern für Annotation oder Segmentierung.
det_modelstr'yolo26x.pt'YOLO-Detektionsmodellpfad für die anfängliche Objekterkennung.
sam_modelstr'sam_b.pt'SAM-Modellpfad für Segmentierung (unterstützt SAM, SAM 2, MobileSAM und SAM 3 Gewichte).
devicestr''Berechnungsgerät (z. B. 'cuda:0', 'cpu' oder '' für automatische Geräteerkennung).
conffloat0.25YOLO-Erkennungs-Konfidenzschwellenwert zum Filtern schwacher Erkennungen.
ioufloat0.45IoU-Schwellenwert für die Non-Maximum Suppression zum Filtern überlappender Boxen.
imgszint640Eingabegröße für die Bildskalierung (muss ein Vielfaches von 32 sein).
max_detint300Maximale Anzahl an Erkennungen pro Bild zur Speichereffizienz.
classeslist[int]NoneListe der Klassenindizes zur Erkennung (z. B. [0, 1] für Person & Fahrrad).
output_dirstrNoneSpeicherverzeichnis für Annotationen (Standard: Unterordner <data>_auto_annotate_labels).

Link to this sectionZitate und Danksagungen#

Wenn MobileSAM in deiner Forschung oder Entwicklung hilfreich ist, ziehe bitte in Betracht, das folgende Paper zu zitieren:

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

Lies das vollständige MobileSAM-Paper auf arXiv.

Link to this sectionFAQ#

Link to this sectionWas ist MobileSAM und wie unterscheidet es sich vom ursprünglichen SAM-Modell?#

MobileSAM ist ein leichtgewichtiges, schnelles image segmentation Modell, das für mobile und Edge-Anwendungen optimiert wurde. Es behält die gleiche Pipeline wie das ursprüngliche SAM bei, ersetzt aber den großen ViT-H Encoder (637M Parameter) durch einen kompakten Tiny-ViT Encoder (5M Parameter). Dies führt dazu, dass MobileSAM etwa 5-mal kleiner und 7-mal schneller als das ursprüngliche SAM ist und mit etwa 12ms pro Bild im Vergleich zu 456ms bei SAM arbeitet. Erfahre mehr über die Implementierung von MobileSAM im MobileSAM GitHub repository.

Link to this sectionWie kann ich MobileSAM mit Ultralytics testen?#

Das Testen von MobileSAM in Ultralytics ist unkompliziert. Du kannst Punkt- und Box-Prompts verwenden, um Segmente vorherzusagen. Zum Beispiel mit einem Punkt-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])

Weitere Details findest du im Abschnitt Testen von MobileSAM in Ultralytics.

Link to this sectionWarum sollte ich MobileSAM für meine mobile Anwendung verwenden?#

MobileSAM ist aufgrund seines leichtgewichtigen Designs und seiner schnellen Inferenzgeschwindigkeit ideal für mobile und Edge-Anwendungen. Im Vergleich zum ursprünglichen SAM ist MobileSAM etwa 5-mal kleiner und 7-mal schneller, was es für die Echtzeit-Segmentierung auf Geräten mit begrenzten Rechenressourcen geeignet macht. Seine Effizienz ermöglicht es mobilen Geräten, eine Echtzeit-Bildsegmentierung ohne nennenswerte Latenz durchzuführen. Zudem unterstützt MobileSAM den für mobile Performance optimierten Inference-Modus.

Link to this sectionWie wurde MobileSAM trainiert und ist der Trainingscode verfügbar?#

MobileSAM wurde auf einer einzelnen GPU mit einem 100k-Bilddatensatz (1 % der ursprünglichen Bilder) in weniger als einem Tag trainiert. Obwohl der Trainingscode in der Zukunft veröffentlicht wird, kannst du derzeit auf vortrainierte Gewichte und Implementierungsdetails über das MobileSAM-GitHub-Repository zugreifen.

Link to this sectionWas sind die primären Anwendungsfälle für MobileSAM?#

MobileSAM ist für eine schnelle, effiziente Bildsegmentierung in mobilen und Edge-Umgebungen konzipiert. Zu den primären Anwendungsfällen gehören:

  • Echtzeit-Objekterkennung und Segmentierung für mobile Apps
  • Bildverarbeitung mit geringer Latenz auf Geräten mit begrenzter Rechenleistung
  • Integration in KI-gestützte mobile Anwendungen für Augmented Reality (AR), Analytik und mehr

Weitere Details zu Anwendungsfällen und Leistung findest du unter Anpassung von SAM an MobileSAM und im Ultralytics-Blog zu MobileSAM-Anwendungen.

Kommentare