SAM 2: Segment Anything Model 2
SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Werkzeug für die umfassende Objektsegmentierung in Bildern und Videos. Es überzeugt durch eine einheitliche, prompt-basierte Modellarchitektur, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt, und bewältigt damit komplexe visuelle Daten mühelos.
SAM 2.1-Modelle treiben die Smart-Annotation-Funktion auf der Ultralytics Plattform an und ermöglichen eine klickbasierte Segmentierung für die schnelle Datensatz-Labeling. Details findest du im Annotation Guide.

Hauptmerkmale
Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉
Einheitliche Modellarchitektur
SAM 2 kombiniert Bild- und Videosegmentierung in einem einzigen Modell. Diese Vereinheitlichung vereinfacht die Bereitstellung und sorgt für eine konsistente Leistung über verschiedene Medientypen hinweg. Es nutzt eine flexible, prompt-basierte Schnittstelle, über die du interessante Objekte durch verschiedene Prompt-Typen wie Punkte, Bounding Boxes oder Masken festlegen kannst.
Echtzeit-Performance
Das Modell erreicht Echtzeit-Inferenzgeschwindigkeiten von etwa 44 Bildern pro Sekunde. Dadurch eignet sich SAM 2 für Anwendungen, die sofortiges Feedback erfordern, wie etwa Videobearbeitung und Augmented Reality.
Zero-Shot-Generalisierung
SAM 2 kann Objekte segmentieren, denen es zuvor noch nie begegnet ist, was eine starke Zero-Shot-Generalisierung demonstriert. Dies ist besonders nützlich in vielfältigen oder sich entwickelnden visuellen Domänen, in denen vordefinierte Kategorien nicht alle möglichen Objekte abdecken.
Interaktive Verfeinerung
Du kannst Segmentierungsergebnisse iterativ verfeinern, indem du zusätzliche Prompts bereitstellst, was dir eine präzise Kontrolle über die Ausgabe ermöglicht. Diese Interaktivität ist entscheidend für das Fine-Tuning von Ergebnissen in Bereichen wie Video-Annotation oder medizinischer Bildgebung.
Fortgeschrittener Umgang mit visuellen Herausforderungen
SAM 2 enthält Mechanismen zur Bewältigung häufiger Probleme bei der Videosegmentierung, wie etwa Objektverdeckung und Wiedererscheinen. Es nutzt einen ausgeklügelten Speicher-Mechanismus, um Objekte über Frames hinweg zu verfolgen und Kontinuität zu gewährleisten, selbst wenn Objekte vorübergehend verdeckt werden oder die Szene verlassen und wieder betreten.
Für ein tieferes Verständnis der Architektur und der Fähigkeiten von SAM 2 kannst du das SAM 2 Research Paper erkunden.
Performance und technische Details
SAM 2 setzt einen neuen Maßstab in diesem Bereich und übertrifft frühere Modelle bei verschiedenen Metriken:
| Metrik | SAM 2 | Früherer SOTA |
|---|---|---|
| Interaktive Videosegmentierung | Bestwert | - |
| Erforderliche menschliche Interaktionen | 3x weniger | Basislinie |
| Genauigkeit der Image Segmentation | Verbessert | SAM |
| Inferenzgeschwindigkeit | 6x schneller | SAM |
Modellarchitektur
Kernkomponenten
- Bild- und Video-Encoder: Nutzt eine Transformer-basierte Architektur, um hochgradige Merkmale aus Bildern und Video-Frames zu extrahieren. Diese Komponente ist für das Verständnis des visuellen Inhalts zu jedem Zeitschritt verantwortlich.
- Prompt-Encoder: Verarbeitet vom Benutzer bereitgestellte Prompts (Punkte, Boxen, Masken), um die Segmentierungsaufgabe zu steuern. Dies ermöglicht SAM 2, sich auf Benutzereingaben anzupassen und spezifische Objekte innerhalb einer Szene anzuzielen.
- Speichermechanismus: Beinhaltet einen Memory-Encoder, einen Memory-Bank und ein Memory-Attention-Modul. Diese Komponenten speichern und nutzen gemeinsam Informationen aus vergangenen Frames, wodurch das Modell eine konsistente Object Tracking über die Zeit aufrechterhalten kann.
- Masken-Decoder: Erzeugt die endgültigen Segmentierungsmasken basierend auf den enkodierten Bildmerkmalen und Prompts. Bei Videos nutzt er zusätzlich den Memory-Kontext, um eine genaue Verfolgung über Frames hinweg sicherzustellen.

Speichermechanismus und Umgang mit Verdeckungen
Der Speichermechanismus ermöglicht es SAM 2, temporale Abhängigkeiten und Verdeckungen in Videodaten zu handhaben. Während sich Objekte bewegen und interagieren, zeichnet SAM 2 ihre Merkmale in einer Memory-Bank auf. Wenn ein Objekt verdeckt wird, kann sich das Modell auf diesen Speicher stützen, um seine Position und sein Erscheinungsbild beim Wiedererscheinen vorherzusagen. Der Occlusion-Head behandelt speziell Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit einer Objektverdeckung voraus.
Auflösung von Multi-Masken-Mehrdeutigkeiten
In Situationen mit Mehrdeutigkeiten (z. B. überlappende Objekte) kann SAM 2 mehrere Maskenvorhersagen generieren. Diese Funktion ist entscheidend für die genaue Darstellung komplexer Szenen, in denen eine einzelne Maske die Nuancen der Szene möglicherweise nicht ausreichend beschreibt.
SA-V Datensatz
Der SA-V-Datensatz, der für das Training von SAM 2 entwickelt wurde, ist einer der größten und vielfältigsten verfügbaren Videosegmentierungsdatensätze. Er umfasst:
- 51.000+ Videos: Aufgenommen in 47 Ländern, was eine breite Palette an realen Szenarien bietet.
- 600.000+ Masken-Annotationen: Detaillierte räumlich-zeitliche Masken-Annotationen, sogenannte "Masklets", die ganze Objekte und Teile abdecken.
- Datensatz-Skalierung: Er bietet 4,5-mal mehr Videos und 53-mal mehr Annotationen als die bisher größten Datensätze und bietet eine beispiellose Vielfalt und Komplexität.
Benchmarks
Videosegmentierung
SAM 2 hat seine überlegene Leistung in wichtigen Benchmarks für die Videosegmentierung unter Beweis gestellt:
| Datensatz | J&F | J | F |
|---|---|---|---|
| DAVIS 2017 | 82.5 | 79.8 | 85.2 |
| YouTube-VOS | 81.2 | 78.9 | 83.5 |
Interaktive Segmentierung
Bei interaktiven Segmentierungsaufgaben zeigt SAM 2 bemerkenswerte Effizienz und Genauigkeit:
| Datensatz | NoC@90 | AUC |
|---|---|---|
| DAVIS Interactive | 1.54 | 0.872 |
Installation
Um SAM 2 zu installieren, verwende den folgenden Befehl. Alle SAM 2-Modelle werden bei der ersten Verwendung automatisch heruntergeladen.
pip install ultralyticsSo verwendest du SAM 2: Vielseitigkeit bei der Bild- und Videosegmentierung
Die folgende Tabelle beschreibt die verfügbaren SAM 2-Modelle, ihre vortrainierten Gewichte, unterstützten Aufgaben und die Kompatibilität mit verschiedenen Betriebsmodi wie Inference, Validation, Training und Export.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Inferenz | Validierung | Training | Exportieren |
|---|---|---|---|---|---|---|
| SAM 2 tiny | sam2_t.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2 small | sam2_s.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2 base | sam2_b.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2 large | sam2_l.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 tiny | sam2.1_t.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 small | sam2.1_s.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 base | sam2.1_b.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 large | sam2.1_l.pt | Instance Segmentation | ✅ | ❌ | ❌ | ❌ |
SAM 2 Vorhersagebeispiele
SAM 2 kann in einem breiten Spektrum von Aufgaben eingesetzt werden, einschließlich Echtzeit-Videobearbeitung, medizinischer Bildgebung und autonomen Systemen. Seine Fähigkeit, sowohl statische als auch dynamische visuelle Daten zu segmentieren, macht es zu einem vielseitigen Werkzeug für Forscher und Entwickler.
Segmentierung mit Prompts
Verwende Prompts, um spezifische Objekte in Bildern oder Videos zu segmentieren.
from ultralytics import SAM
# Load a model
model = SAM("sam2.1_b.pt")
# Display model information (optional)
model.info()
# Run inference with bboxes prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
# Run inference with single point
results = model(points=[900, 370], labels=[1])
# Run inference with multiple points
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])
# Run inference with multiple points prompt per object
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])
# Run inference with negative points prompt
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])Segmentierung von allem
Segmentiere den gesamten Bild- oder Videoinhalt ohne spezifische Prompts.
from ultralytics import SAM
# Load a model
model = SAM("sam2.1_b.pt")
# Display model information (optional)
model.info()
# Run inference
model("path/to/video.mp4")Video segmentieren und Objekte verfolgen
Segmentiere den gesamten Videoinhalt mit spezifischen Prompts und verfolge Objekte.
from ultralytics.models.sam import SAM2VideoPredictor
# Create SAM2VideoPredictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model="sam2_b.pt")
predictor = SAM2VideoPredictor(overrides=overrides)
# Run inference with single point
results = predictor(source="test.mp4", points=[920, 470], labels=[1])
# Run inference with multiple points
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])
# Run inference with multiple points prompt per object
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])
# Run inference with negative points prompt
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])- Dieses Beispiel demonstriert, wie SAM 2 genutzt werden kann, um den gesamten Inhalt eines Bildes oder Videos zu segmentieren, wenn keine Prompts (bboxes/Punkte/Masken) angegeben sind.
Dynamische interaktive Segmentierung und Verfolgung
SAM2DynamicInteractivePredictor ist eine fortschrittliche, trainingsfreie Erweiterung von SAM2, die dynamische Interaktion mit mehreren Bildern und kontinuierliche Lernfähigkeiten ermöglicht. Dieser Prädiktor unterstützt Echtzeit-Prompt-Updates und Speicherverwaltung für eine verbesserte Tracking-Leistung über Bildsequenzen hinweg. Im Vergleich zum ursprünglichen SAM2 baut SAM2DynamicInteractivePredictor den Inferenzfluss neu auf, um die vortrainierten SAM2-Modelle optimal zu nutzen, ohne dass zusätzliches Training erforderlich ist.

Hauptmerkmale
Es bietet drei wesentliche Verbesserungen:
- Dynamische Interaktion: Füge jederzeit während der Videoverarbeitung neue Prompts zum Zusammenführen oder für nicht getrackte neue Instanzen in folgenden Bildern hinzu
- Kontinuierliches Lernen: Füge neue Prompts für bestehende Instanzen hinzu, um die Modellleistung im Laufe der Zeit zu verbessern
- Unabhängige Unterstützung mehrerer Bilder: Verarbeite mehrere unabhängige Bilder (nicht unbedingt aus einer Videosequenz) mit gemeinsamer Speichernutzung und objektübergreifendem Tracking
Kernfunktionen
- Prompt-Flexibilität: Akzeptiert Bounding-Boxen, Punkte und Masken als Prompts
- Memory Bank Management: Verwaltet eine dynamische Memory Bank, um Objektzustände über Bilder hinweg zu speichern
- Multi-Objekt-Tracking: Unterstützt das gleichzeitige Tracking mehrerer Objekte mit individuellen Objekt-IDs
- Echtzeit-Updates: Ermöglicht das Hinzufügen neuer Prompts während der Inferenz, ohne vorherige Bilder neu verarbeiten zu müssen
- Unabhängige Bildverarbeitung: Verarbeite eigenständige Bilder mit gemeinsamem Speicherkontext für objektübergreifende Konsistenz
from ultralytics.models.sam import SAM2DynamicInteractivePredictor
# Create SAM2DynamicInteractivePredictor
overrides = dict(conf=0.01, task="segment", mode="predict", imgsz=1024, model="sam2_t.pt", save=False)
predictor = SAM2DynamicInteractivePredictor(overrides=overrides, max_obj_num=10)
# Define a category by box prompt
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)
# Detect this particular object in a new image
results = predictor(source="image2.jpg")
# Add new category with a new object ID
results = predictor(
source="image4.jpg",
bboxes=[[300, 300, 400, 400]], # New object
obj_ids=[1], # New object ID
update_memory=True, # Add to memory
)
# Perform inference
results = predictor(source="image5.jpg")
# Add refinement prompts to the same category to boost performance
# This helps when object appearance changes significantly
results = predictor(
source="image6.jpg",
points=[[150, 150]], # Refinement point
labels=[1], # Positive point
obj_ids=[1], # Same object ID
update_memory=True, # Update memory with new information
)
# Perform inference on new image
results = predictor(source="image7.jpg")Der SAM2DynamicInteractivePredictor wurde entwickelt, um mit SAM2-Modellen zu arbeiten und das Hinzufügen/Verfeinern von Kategorien durch alle von SAM2 nativ unterstützten Box-/Punkt-/Masken-Prompts zu ermöglichen. Er ist besonders nützlich für Szenarien, in denen Objekte im Laufe der Zeit erscheinen oder sich verändern, wie z. B. bei der Videokommentierung oder interaktiven Bearbeitungsaufgaben.
Argumente
| Name | Standardwert | Datentyp | Beschreibung |
|---|---|---|---|
max_obj_num | 3 | int | Die voreingestellte maximale Anzahl von Kategorien |
update_memory | False | bool | Ob der Speicher mit neuen Prompts aktualisiert werden soll |
obj_ids | None | List[int] | Liste der Objekt-IDs, die den Prompts entsprechen |
Anwendungsfälle
SAM2DynamicInteractivePredictor ist ideal für:
- Video-Annotations-Workflows, bei denen während der Sequenz neue Objekte erscheinen
- Interaktive Videobearbeitung, die eine Objekthinzufügung und -verfeinerung in Echtzeit erfordert
- Überwachungsanwendungen mit Bedarf an dynamischem Objekt-Tracking
- Medizinische Bildgebung zur Verfolgung anatomischer Strukturen über Zeitreihen hinweg
- Autonome Systeme, die eine adaptive Objekterkennung und -verfolgung erfordern
- Multi-Bild-Datensätze für konsistente Objektsegmentierung über unabhängige Bilder hinweg
- Bildersammlungsanalyse, bei der Objekte über verschiedene Szenen hinweg verfolgt werden müssen
- Cross-Domain-Segmentierung unter Nutzung von Speichern aus unterschiedlichen Bildkontexten
- Halbautomatische Annotation für effiziente Datensatzerstellung mit minimalem manuellen Aufwand
SAM-Vergleich vs. YOLO
Hier vergleichen wir Metas SAM 2-Modelle, einschließlich der kleinsten SAM2-t-Variante, mit Ultralytics-Segmentierungsmodellen, einschließlich YOLO26n-seg:
| Modell | Größe (MB) | Parameter (M) | Geschwindigkeit (CPU) (ms/im) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 41703 |
| Meta SAM2-b | 162 | 80.8 | 28867 |
| Meta SAM2-t | 78.1 | 38.9 | 23430 |
| MobileSAM | 40.7 | 10.1 | 23802 |
| FastSAM-s mit YOLOv8 Backbone | 23.9 | 11.8 | 58.0 |
| Ultralytics YOLOv8n-seg | 7.1 (11.0x kleiner) | 3.4 (11.4x weniger) | 24.8 (945x schneller) |
| Ultralytics YOLO11n-seg | 6.2 (12.6x kleiner) | 2.9 (13.4x weniger) | 24.3 (964x schneller) |
| Ultralytics YOLO26n-seg | 6.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 einzigartige automatische Segmentierungsfunktionen bietet, sind YOLO-Modelle, insbesondere YOLOv8n-seg, YOLO11n-seg und YOLO26n-seg, deutlich kleiner, schneller und recheneffizienter.
SAM-Geschwindigkeiten gemessen mit PyTorch, YOLO-Geschwindigkeiten gemessen mit ONNX Runtime. 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 diesen Test zu reproduzieren:
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)Auto-Annotation: Effiziente Datensatzerstellung
Auto-Annotation ist eine leistungsstarke Funktion von SAM 2, die es Benutzern ermöglicht, schnell und präzise Segmentierungsdatensätze zu erstellen, indem sie auf vortrainierte Modelle zurückgreifen. Diese Fähigkeit ist besonders nützlich für die Erstellung großer, qualitativ hochwertiger Datensätze ohne umfangreichen manuellen Aufwand.
So führst du Auto-Annotation mit SAM 2 durch
Watch: Auto Annotation with Meta's Segment Anything 2 Model using Ultralytics | Data Labeling
Um deinen Datensatz mit SAM 2 automatisch zu annotieren, befolge dieses Beispiel:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.pt")| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
data | str | erforderlich | Pfad zum Verzeichnis, das die Zielbilder für die Annotation oder Segmentierung enthält. |
det_model | str | 'yolo26x.pt' | Pfad zum YOLO-Detektionsmodell für die anfängliche Objekterkennung. |
sam_model | str | 'sam_b.pt' | Pfad zum SAM-Modell für die Segmentierung (unterstützt SAM, SAM2-Varianten und MobileSAM-Modelle). |
device | str | '' | Rechengerät (z. B. 'cuda:0', 'cpu' oder '' für automatische Geräteerkennung). |
conf | float | 0.25 | Konfidenzschwellenwert für die YOLO-Detektion zum Filtern schwacher Detektionen. |
iou | float | 0.45 | IoU-Schwellenwert für Non-Maximum Suppression zum Filtern überlappender Boxen. |
imgsz | int | 640 | Eingabegröße für die Bildskalierung (muss ein Vielfaches von 32 sein). |
max_det | int | 300 | Maximale Anzahl an Detektionen pro Bild für Speichereffizienz. |
classes | list[int] | None | Liste der Klassenindizes zur Erkennung (z. B. [0, 1] für Person & Fahrrad). |
output_dir | str | None | Speicherverzeichnis für Annotationen (standardmäßig './labels' relativ zum Datenpfad). |
Diese Funktion erleichtert die schnelle Erstellung hochwertiger Segmentierungsdatensätze und ist ideal für Forscher und Entwickler, die ihre Projekte beschleunigen möchten.
Einschränkungen
Trotz seiner Stärken hat SAM 2 gewisse Einschränkungen:
- Tracking-Stabilität: SAM 2 kann bei längeren Sequenzen oder signifikanten Blickwinkeländerungen den Überblick über Objekte verlieren.
- Objektverwechslung: Das Modell kann manchmal ähnlich aussehende Objekte verwechseln, insbesondere in überfüllten Szenen.
- Effizienz bei mehreren Objekten: Die Segmentierungseffizienz nimmt bei gleichzeitiger Verarbeitung mehrerer Objekte aufgrund fehlender Inter-Objekt-Kommunikation ab.
- Detail-Genauigkeit: Feinheiten können übersehen werden, insbesondere bei schnell bewegten Objekten. Zusätzliche Prompts können dieses Problem teilweise beheben, eine zeitliche Glätte ist jedoch nicht garantiert.
Zitate und Danksagungen
Wenn SAM 2 ein wesentlicher Bestandteil deiner Forschungs- oder Entwicklungsarbeit ist, zitiere es bitte unter Verwendung der folgenden Referenz:
@article{ravi2024sam2,
title={SAM 2: Segment Anything in Images and Videos},
author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
journal={arXiv preprint},
year={2024}
}Wir danken Meta AI für ihre Beiträge zur KI-Community mit diesem bahnbrechenden Modell und Datensatz.
FAQ
Was ist SAM 2 und wie verbessert es das ursprüngliche Segment Anything Model (SAM)?
SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Werkzeug für die umfassende Objektsegmentierung in Bildern und Videos. Es zeichnet sich durch die Verarbeitung komplexer visueller Daten aus, dank einer einheitlichen, promptbaren Modellarchitektur, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt. SAM 2 bietet gegenüber dem ursprünglichen SAM mehrere Verbesserungen, darunter:
- Einheitliche Modellarchitektur: Kombiniert Bild- und Videosegmentierungsfähigkeiten in einem einzigen Modell.
- Echtzeitleistung: Verarbeitet etwa 44 Bilder pro Sekunde und eignet sich damit für Anwendungen, die sofortiges Feedback erfordern.
- Zero-Shot-Generalisierung: Segmentiert Objekte, denen es noch nie zuvor begegnet ist, was in verschiedenen visuellen Bereichen nützlich ist.
- Interaktive Verfeinerung: Ermöglicht es Benutzern, Segmentierungsergebnisse durch zusätzliche Prompts iterativ zu verfeinern.
- Fortgeschrittene Handhabung visueller Herausforderungen: Bewältigt häufige Herausforderungen der Videosegmentierung wie Objektverdeckung und Wiedererscheinen.
Weitere Details zur Architektur und den Fähigkeiten von SAM 2 findest du in der SAM 2 Forschungsarbeit.
Wie kann ich SAM 2 für die Videosegmentierung in Echtzeit verwenden?
SAM 2 kann für die Videosegmentierung in Echtzeit genutzt werden, indem seine promptbare Schnittstelle und Echtzeit-Inferenzfähigkeiten verwendet werden. Hier ist ein grundlegendes Beispiel:
Verwende Prompts, um spezifische Objekte in Bildern oder Videos zu segmentieren.
from ultralytics import SAM
# Load a model
model = SAM("sam2_b.pt")
# Display model information (optional)
model.info()
# Segment with bounding box prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
# Segment with point prompt
results = model("path/to/image.jpg", points=[150, 150], labels=[1])Für eine umfassendere Nutzung, siehe den Abschnitt So verwendest du SAM 2.
Welche Datensätze werden zum Training von SAM 2 verwendet und wie verbessern sie dessen Leistung?
SAM 2 wurde mit dem SA-V-Datensatz trainiert, einem der größten und vielfältigsten verfügbaren Videosegmentierungsdatensätze. Der SA-V-Datensatz enthält:
- 51.000+ Videos: Aufgenommen in 47 Ländern, was eine breite Palette an realen Szenarien bietet.
- 600.000+ Masken-Annotationen: Detaillierte räumlich-zeitliche Masken-Annotationen, sogenannte "Masklets", die ganze Objekte und Teile abdecken.
- Datensatz-Skalierung: Bietet 4,5-mal mehr Videos und 53-mal mehr Annotationen als die bisher größten Datensätze und bietet eine beispiellose Vielfalt und Komplexität.
Dieser umfangreiche Datensatz ermöglicht es SAM 2, eine überlegene Leistung bei den wichtigsten Benchmarks für Videosegmentierung zu erzielen und verbessert seine Zero-Shot-Generalisierungsfähigkeiten. Weitere Informationen findest du im Abschnitt SA-V Datensatz.
Wie geht SAM 2 mit Verdeckungen und dem Wiedererscheinen von Objekten bei der Videosegmentierung um?
SAM 2 enthält einen ausgeklügelten Speichermechanismus zur Verwaltung zeitlicher Abhängigkeiten und Verdeckungen in Videodaten. Der Speichermechanismus besteht aus:
- Memory Encoder und Memory Bank: Speichert Merkmale aus vergangenen Bildern.
- Memory Attention Module: Nutzt gespeicherte Informationen, um ein konsistentes Objekt-Tracking über die Zeit aufrechtzuerhalten.
- Occlusion Head: Behandelt speziell Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit einer Objektverdeckung voraus.
Dieser Mechanismus sorgt für Kontinuität, selbst wenn Objekte vorübergehend verdeckt sind oder die Szene verlassen und wieder betreten. Weitere Details findest du im Abschnitt Speichermechanismus und Verdeckungshandhabung.
Wie schneidet SAM 2 im Vergleich zu anderen Segmentierungsmodellen wie YOLO26 ab?
SAM 2-Modelle, wie Metas SAM2-t und SAM2-b, bieten leistungsstarke Zero-Shot-Segmentierungsfähigkeiten, sind jedoch im Vergleich zu YOLO-Modellen deutlich größer und langsamer. Zum Beispiel ist YOLO26n-seg auf CPU etwa 24-mal kleiner und über 1145-mal schneller als SAM2-b. Während SAM 2 in vielseitigen, promptbasierten und Zero-Shot-Segmentierungsszenarien glänzt, ist YOLO26 auf Geschwindigkeit, Effizienz und Echtzeitanwendungen mit NMS-freier End-to-End-Inferenz optimiert, was es besser für den Einsatz in ressourcenbeschränkten Umgebungen macht.