Ultralytics YOLO27:

SAM 2: Segment Anything Model 2#

Die Entwicklung von SAM

SAM 2 baut auf dem ursprünglichen SAM auf und bietet Funktionen zur Videosegmentierung. Informationen zur Promptable Concept Segmentation mit Text- und Bildbeispiel-Prompts findest du unter SAM 3.

Inference with Segment Anything 2 In Colab

SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Werkzeug für die umfassende Objek||||segmentierung in Bildern und Videos. Dank einer einheitlichen, promptbasierten Modellarchitektur, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt, verarbeitet es komplexe visuelle Daten besonders gut.

SAM 2 auf der Ultralytics Platform

SAM 2.1-Modelle bilden die Grundlage der Funktion für intelligente Annotationen auf der Ultralytics Platform und ermöglichen eine klickbasierte Segmentierung zur schnellen Kennzeichnung von Datensätzen. Weitere Informationen findest du im Leitfaden zur Annotation.

Beispielergebnisse von SAM 2

Wichtige Funktionen#



Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉

Einheitliche Modellarchitektur#

SAM 2 vereint die Funktionen zur Bild- und Videosegmentierung in einem einzigen Modell. Diese Vereinheitlichung vereinfacht die Bereitstellung und ermöglicht eine konsistente Leistung über verschiedene Medientypen hinweg. Die flexible promptbasierte Schnittstelle ermöglicht es dir, interessante Objekte mithilfe verschiedener Prompt-Typen wie Punkten, Begrenzungsrahmen oder Masken anzugeben.

Echtzeitleistung#

Das Modell erreicht Inferenzgeschwindigkeiten in Echtzeit und verarbeitet etwa 44 Bilder pro Sekunde. Dadurch eignet sich SAM 2 für Anwendungen, die sofortiges Feedback erfordern, etwa Videobearbeitung und erweiterte Realität.

Zero-Shot-Generalisierung#

SAM 2 kann Objekte segmentieren, denen es zuvor noch nicht begegnet ist, und zeigt damit eine ausgeprägte Zero-Shot-Generalisierung. Das ist besonders nützlich in vielfältigen oder sich verändernden visuellen Bereichen, in denen vordefinierte Kategorien möglicherweise nicht alle möglichen Objekte abdecken.

Interaktive Verfeinerung#

Du kannst die Segmentierungsergebnisse iterativ verfeinern, indem du zusätzliche Prompts angibst. So erhältst du präzise Kontrolle über die Ausgabe. Diese Interaktivität ist entscheidend für die Feinabstimmung von Ergebnissen in Anwendungen wie Videoannotation oder medizinischer Bildgebung.

Fortgeschrittene Verarbeitung visueller Herausforderungen#

SAM 2 enthält Mechanismen zur Bewältigung typischer Herausforderungen bei der Videosegmentierung, etwa Verdeckung und erneutes Auftreten von Objekten. Ein ausgefeilter Speichermechanismus verfolgt Objekte über mehrere Bilder hinweg und gewährleistet Kontinuität, selbst wenn Objekte vorübergehend verdeckt werden oder die Szene verlassen und wieder betreten.

Ein tiefergehendes Verständnis der Architektur und Funktionen von SAM 2 erhältst du im Forschungsbeitrag zu SAM 2.

Leistung und technische Details#

SAM 2 setzt neue Maßstäbe in diesem Bereich und übertrifft frühere Modelle bei verschiedenen Metriken:

KennzahlSAM 2Früherer SOTA
Interaktive VideosegmentierungAm besten-
Erforderliche Interaktionen mit Menschen3-mal wenigerAusgangswert
Genauigkeit der BildsegmentierungVerbessertSAM
Inferenzgeschwindigkeit6-mal schnellerSAM

Modellarchitektur#

Zentrale Komponenten#

  • Bild- und Video-Encoder: Verwendet eine auf einem Transformer basierende Architektur, um übergeordnete Merkmale aus Bildern und Videobildern zu extrahieren. Diese Komponente ist dafür zuständig, den visuellen Inhalt zu jedem Zeitpunkt zu erfassen.
  • Prompt-Encoder: Verarbeitet vom Nutzer bereitgestellte Prompts (Punkte, Boxen, Masken), um die Segmentierungsaufgabe zu steuern. Dadurch kann SAM 2 auf deine Eingaben reagieren und bestimmte Objekte innerhalb einer Szene anvisieren.
  • Speichermechanismus: Umfasst einen Speicher-Encoder, eine Speicherbank und ein Speicheraufmerksamkeitsmodul. Diese Komponenten speichern und nutzen gemeinsam Informationen aus vergangenen Bildern und ermöglichen dem Modell ein konsistentes Objekt-Tracking über die Zeit.
  • Masken-Decoder: Erzeugt die endgültigen Segmentierungsmasken auf Grundlage der codierten Bildmerkmale und Prompts. Bei Videos nutzt er zusätzlich den Speicherkontext, um ein präzises Tracking über mehrere Bilder hinweg sicherzustellen.

Diagramm der SAM-2-Architektur

Speichermechanismus und Umgang mit Verdeckungen#

Der Speichermechanismus ermöglicht es SAM 2, zeitliche Abhängigkeiten und Verdeckungen in Videodaten zu verarbeiten. Während sich Objekte bewegen und miteinander interagieren, zeichnet SAM 2 ihre Merkmale in einer Speicherbank auf. Wird ein Objekt verdeckt, kann sich das Modell auf diese Informationen stützen, um seine Position und sein Erscheinungsbild beim erneuten Auftreten vorherzusagen. Der Verdeckungs-Head verarbeitet speziell Situationen, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit einer Verdeckung voraus.

Auflösung von Mehrmasken-Mehrdeutigkeiten#

Bei mehrdeutigen Situationen, etwa bei sich überlappenden Objekten, kann SAM 2 mehrere Maskenvorhersagen erzeugen. Diese Funktion ist entscheidend für die präzise Darstellung komplexer Szenen, in denen eine einzelne Maske die Feinheiten der Szene möglicherweise nicht ausreichend beschreibt.

SA-V-Datensatz#

Der für das Training von SAM 2 entwickelte SA-V-Datensatz ist einer der größten und vielfältigsten verfügbaren Datensätze zur Videosegmentierung. Er umfasst:

  • Über 51.000 Videos: Aufgenommen in 47 Ländern und daher mit einer großen Bandbreite realer Szenarien.
  • Über 600.000 Maskenannotationen: Detaillierte räumlich-zeitliche Maskenannotationen, sogenannte „Masklets“, die vollständige Objekte und Objektteile abdecken.
  • Umfang des Datensatzes: Er enthält 4,5-mal mehr Videos und 53-mal mehr Annotationen als die bisher größten Datensätze und bietet damit eine beispiellose Vielfalt und Komplexität.

Benchmarks#

Objektsegmentierung in Videos#

SAM 2 hat bei wichtigen Benchmarks zur Videosegmentierung eine überlegene Leistung gezeigt:

DatensatzJ&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

Interaktive Segmentierung#

Bei Aufgaben zur interaktiven Segmentierung zeigt SAM 2 eine deutlich höhere Effizienz und Genauigkeit:

DatensatzNoC@90AUC
DAVIS Interactive1.540.872

Installation#

Installiere SAM 2 mit dem folgenden Befehl. Alle SAM-2-Modelle werden bei der ersten Verwendung automatisch heruntergeladen.

pip install ultralytics

So verwendest du SAM 2: Vielseitigkeit bei der Bild- und Videosegmentierung#

Die folgende Tabelle enthält Details zu den verfügbaren SAM-2-Modellen, ihren vortrainierten Gewichten, den unterstützten Aufgaben und der Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export.

ModelltypVortrainierte GewichteUnterstützte AufgabenTrainingValidierungInferenzExport
SAM 2 tinysam2_t.ptInstanzsegmentierung
SAM 2 smallsam2_s.ptInstanzsegmentierung
SAM 2 basesam2_b.ptInstanzsegmentierung
SAM 2 largesam2_l.ptInstanzsegmentierung
SAM 2.1 tinysam2.1_t.ptInstanzsegmentierung
SAM 2.1 smallsam2.1_s.ptInstanzsegmentierung
SAM 2.1 basesam2.1_b.ptInstanzsegmentierung
SAM 2.1 largesam2.1_l.ptInstanzsegmentierung

Beispiele für Vorhersagen mit SAM 2#

SAM 2 kann in einer breiten Palette von Aufgaben eingesetzt werden, darunter Videobearbeitung in Echtzeit, medizinische Bildgebung und autonome Systeme. Die Fähigkeit, sowohl statische als auch dynamische visuelle Daten zu segmentieren, macht SAM 2 zu einem vielseitigen Werkzeug für Forschende und Entwickler.

Segmentierung mit Prompts#

Segmentierung mit Prompts

Verwende Prompts, um bestimmte 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]])

Alles segmentieren#

Alles segmentieren

Segmentiere den gesamten Bild- oder Videoinhalt ohne bestimmte 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#

Video segmentieren

Segmentiere den gesamten Videoinhalt mit bestimmten Prompts und verfolge Objekte.

from ultralytics.models.sam import SAM2VideoPredictor

# Create SAM2VideoPredictor
overrides = {"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 zeigt, wie SAM 2 den gesamten Inhalt eines Bildes oder Videos segmentieren kann, wenn keine Prompts (bboxes/Punkte/Masken) bereitgestellt werden.

Dynamische interaktive Segmentierung und Tracking#

SAM2DynamicInteractivePredictor ist eine fortgeschrittene, trainingsfreie Erweiterung von SAM 2, die dynamische Interaktion mit mehreren Frames sowie kontinuierliche Lernfunktionen ermöglicht. Dieser Prädiktor unterstützt Echtzeit-Prompt-Aktualisierungen und Speicherverwaltung für eine verbesserte Tracking-Leistung über eine Bildersequenz hinweg. Verglichen mit dem ursprünglichen SAM 2 baut SAM2DynamicInteractivePredictor den Inferenz-Workflow so um, dass vortrainierte SAM 2-Modelle optimal genutzt werden, ohne dass zusätzliches Training erforderlich ist.

Beispielergebnisse von SAM 2

Wichtige Funktionen#

Die Erweiterung bietet drei wesentliche Verbesserungen:

  1. Dynamische Interaktion: Füge jederzeit während der Videoverarbeitung neue Prompts hinzu, um neue Instanzen in nachfolgenden Bildern zusammenzuführen oder zu verfolgen.
  2. Kontinuierliches Lernen: Füge neue Prompts für bestehende Instanzen hinzu, um die Modellleistung mit der Zeit zu verbessern.
  3. Unterstützung unabhängiger Mehrfachbilder: Verarbeite mehrere unabhängige Bilder, die nicht zwingend aus einer Videosequenz stammen müssen, mit gemeinsamem Speicher und bildübergreifendem Objekt-Tracking.

Kernfunktionen#

  • Prompt-Flexibilität: Akzeptiert Begrenzungsrahmen, Punkte und Masken als Prompts.
  • Verwaltung der Speicherbank: Verwaltet eine dynamische Speicherbank zum Speichern von Objektzuständen über mehrere Bilder hinweg.
  • Multi-Objekt-Tracking: Unterstützt das gleichzeitige Verfolgen mehrerer Objekte mit individuellen Objekt-IDs.
  • Echtzeitaktualisierungen: Ermöglicht das Hinzufügen neuer Prompts während der Inferenz, ohne vorherige Frames erneut zu verarbeiten
  • Unabhängige Bildverarbeitung: Verarbeitet eigenständige Bilder mit gemeinsamem Speicherkontext, um eine konsistente Objekterkennung über mehrere Bilder hinweg zu gewährleisten
Dynamisches Hinzufügen von Objekten
from ultralytics.models.sam import SAM2DynamicInteractivePredictor

# Create SAM2DynamicInteractivePredictor
overrides = {"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")
Hinweis

Der SAM2DynamicInteractivePredictor ist für die Arbeit mit SAM 2-Modellen konzipiert und unterstützt das Hinzufügen sowie Verfeinern von Kategorien mit allen Box-, Punkt- und Masken-Prompts, die SAM 2 von Haus aus unterstützt. Er ist besonders nützlich für Szenarien, in denen Objekte im Laufe der Zeit auftauchen oder sich verändern, wie etwa bei der Videoannotation oder bei interaktiven Bearbeitungsaufgaben.

Argumente#

NameStandardwertDatentypBeschreibung
max_obj_num3intVoreingestellte maximale Anzahl von Kategorien
update_memoryFalseboolGibt an, ob der Speicher mit neuen Prompts aktualisiert werden soll
obj_idsNoneList[int]Liste der Objekt-IDs, die den Prompts entsprechen

Anwendungsfälle#

SAM2DynamicInteractivePredictor eignet sich ideal für:

  • Videoannotationsabläufe, bei denen während der Sequenz neue Objekte erscheinen
  • Interaktive Videobearbeitung, die das Hinzufügen und Verfeinern von Objekten in Echtzeit erfordert
  • Überwachungsanwendungen mit Bedarf an dynamischer Objektverfolgung
  • Medizinische Bildgebung zur zeitlichen Verfolgung anatomischer Strukturen
  • Autonome Systeme, die eine adaptive Objekterkennung und -verfolgung erfordern
  • Datensätze mit mehreren Bildern für eine konsistente Objektsegmentierung über unabhängige Bilder hinweg
  • Analyse von Bildsammlungen, bei der Objekte über verschiedene Szenen hinweg verfolgt werden müssen
  • Domänenübergreifende Segmentierung unter Nutzung des Speichers aus vielfältigen Bildkontexten
  • Teilautomatische Annotation zur effizienten Erstellung von Datensätzen mit minimalem manuellem Aufwand

SAM-Vergleich mit YOLO#

Hier vergleichen wir Metas SAM 2-Modelle, einschließlich der kleinsten Variante SAM2-t, mit den Segmentierungsmodellen von Ultralytics, einschließlich YOLO26n-seg:

ModellGröße
(MB)
Parameter
(M)
Geschwindigkeit (CPU)
(ms/Bild)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s mit Backbone von YOLOv823.911.858.0
Ultralytics YOLOv8n-seg7,1 (11,0-mal kleiner)3,4 (11,4-mal weniger)24,8 (945-mal schneller)
Ultralytics YOLO11n-seg6.2 (12.6-mal kleiner)2,9 (13,4-mal weniger)24.3 (964-mal schneller)
Ultralytics YOLO26n-seg6,7 (11,7-mal kleiner)2.7 (14.4-mal weniger)25,2 (930-mal schneller)

Dieser Vergleich zeigt die deutlichen Unterschiede bei Modellgrößen und Geschwindigkeiten zwischen SAM-Varianten und YOLO-Segmentierungsmodellen. Während SAM einzigartige Funktionen zur automatischen Segmentierung bietet, sind YOLO-Modelle, insbesondere YOLOv8n-seg, YOLO11n-seg und YOLO26n-seg, deutlich kleiner, schneller und recheneffizienter.

Die Geschwindigkeiten von SAM wurden mit PyTorch gemessen, die Geschwindigkeiten von YOLO mit ONNX Runtime. Die Tests wurden auf einem Apple M4 Air aus dem Jahr 2025 mit 16 GB RAM unter Verwendung von torch==2.10.0, ultralytics==8.4.31 und onnxruntime==1.24.4 durchgeführt. So kannst du diesen Test 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, nms=False)  # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11
    model = YOLO(onnx_path)
    model(ASSETS)

Automatische Annotation: Effiziente Datensatzerstellung#

Die automatische Annotation ist eine leistungsstarke Funktion von SAM 2. Sie ermöglicht es, durch die Nutzung vortrainierter Modelle schnell und präzise Segmentierungsdatensätze zu erstellen. Diese Funktion ist besonders nützlich, um große, hochwertige Datensätze ohne umfangreichen manuellen Aufwand zu erstellen.

So annotierst du mit SAM 2 automatisch#



Watch: Auto Annotation with Meta's Segment Anything 2 Model using Ultralytics | Data Labeling

Um deinen Datensatz mit SAM 2 automatisch zu annotieren, folge diesem Beispiel:

Beispiel für automatische Annotation
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.pt")
ArgumentTypStandardwertBeschreibung
datastrerforderlichPfad zu dem Verzeichnis mit den Zielbildern für Annotation oder Segmentierung.
det_modelstr'yolo26x.pt'Pfad zum YOLO-Erkennungsmodell für die anfängliche Objekterkennung.
sam_modelstr'sam_b.pt'Pfad zum SAM-Modell für die Segmentierung (unterstützt Gewichte von SAM, SAM 2, MobileSAM und SAM 3).
devicestr''Rechengerät (z. B. „cuda:0“, „cpu“ oder „“ für die automatische Geräteerkennung).
conffloat0.25Konfidenzschwellenwert der YOLO-Erkennung zum Herausfiltern unsicherer Erkennungen.
ioufloat0.45IoU-Schwellenwert für die Unterdrückung nichtmaximaler Werte zum Herausfiltern überlappender Boxen.
imgszint640Eingabegröße für die Größenanpassung von Bildern (muss ein Vielfaches von 32 sein).
max_detint300Maximale Anzahl von Erkennungen pro Bild zur effizienten Speichernutzung.
classeslist[int]NoneListe der zu erkennenden Klassenindizes (z. B. [0, 1] für Person und Fahrrad).
output_dirstrNoneSpeicherverzeichnis für Annotationen (Standard: benachbartes Verzeichnis zu <data>_auto_annotate_labels).

Diese Funktion ermöglicht die schnelle Erstellung hochwertiger Segmentierungsdatensätze und eignet sich ideal für Forschende und Entwickler, die ihre Projekte beschleunigen möchten.

Einschränkungen#

Trotz seiner Stärken weist SAM 2 einige Einschränkungen auf:

  • Stabilität der Verfolgung: SAM 2 kann Objekte während längerer Sequenzen oder bei erheblichen Änderungen des Blickwinkels aus den Augen verlieren.
  • Verwechslung von Objekten: Das Modell kann gelegentlich ähnlich aussehende Objekte verwechseln, insbesondere in überfüllten Szenen.
  • Effizienz bei mehreren Objekten: Die Segmentierungseffizienz nimmt ab, wenn mehrere Objekte gleichzeitig verarbeitet werden, da keine Kommunikation zwischen den Objekten stattfindet.
  • Detail-Genauigkeit: Feine Details können übersehen werden, insbesondere bei sich schnell bewegenden 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 anhand der folgenden Referenz:

Zitat
@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 herzlich für den Beitrag zur KI-Community mit diesem wegweisenden Modell und Datensatz.

FAQ#

  • SAM 2, der Nachfolger von Metas Segmentierungsmodell (SAM), ist ein hochmodernes Werkzeug für die umfassende Objektsegmentierung in Bildern und Videos. Es zeichnet sich durch die Verarbeitung komplexer visueller Daten mit einer einheitlichen, durch Prompts steuerbaren Modellarchitektur aus, die Echtzeitverarbeitung und Zero-Shot-Verallgemeinerung unterstützt. SAM 2 bietet gegenüber dem ursprünglichen SAM mehrere Verbesserungen, darunter:

    • Einheitliche Modellarchitektur: Kombiniert die Bild- und Videosegmentierung in einem einzigen Modell.
    • Echtzeitleistung: Verarbeitet etwa 44 Frames pro Sekunde und eignet sich damit für Anwendungen, die sofortiges Feedback erfordern.
    • Zero-Shot-Verallgemeinerung: Segmentiert Objekte, denen es zuvor noch nicht begegnet ist, und eignet sich damit für vielfältige visuelle Domänen.
    • Interaktive Verfeinerung: Ermöglicht es dir, Segmentierungsergebnisse iterativ durch zusätzliche Prompts zu verfeinern.
    • Fortschrittlicher Umgang mit visuellen Herausforderungen: Bewältigt gängige Herausforderungen der Videosegmentierung wie Verdeckungen und das erneute Erscheinen von Objekten.

    Weitere Informationen zur Architektur und den Funktionen von SAM 2 findest du im Forschungspapier zu SAM 2.

  • SAM 2 kann für die Videosegmentierung in Echtzeit eingesetzt werden, indem seine durch Prompts steuerbare Schnittstelle und seine Inferenzfunktionen in Echtzeit genutzt werden. Hier ist ein einfaches Beispiel:

    Segmentierung mit Prompts

    Verwende Prompts, um bestimmte 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])

    Eine umfassendere Anleitung findest du im Abschnitt SAM 2 verwenden.

  • SAM 2 wird mit dem SA-V-Datensatz trainiert, einem der größten und vielfältigsten verfügbaren Datensätze für die Videosegmentierung. Der SA-V-Datensatz umfasst:

    • Über 51.000 Videos: Aufgenommen in 47 Ländern und daher mit einer großen Bandbreite realer Szenarien.
    • Über 600.000 Maskenannotationen: Detaillierte räumlich-zeitliche Maskenannotationen, sogenannte „Masklets“, die vollständige Objekte und Objektteile abdecken.
    • Umfang des Datensatzes: Enthält 4,5-mal mehr Videos und 53-mal mehr Annotationen als die zuvor größten Datensätze und bietet dadurch eine beispiellose Vielfalt und Komplexität.

    Dieser umfangreiche Datensatz ermöglicht SAM 2 eine überragende Leistung bei wichtigen Benchmarks für die Videosegmentierung und verbessert seine Fähigkeiten zur Zero-Shot-Verallgemeinerung. Weitere Informationen findest du im Abschnitt SA-V-Datensatz.

  • SAM 2 verfügt über einen ausgeklügelten Speichermechanismus zur Verwaltung zeitlicher Abhängigkeiten und Verdeckungen in Videodaten. Der Speichermechanismus besteht aus:

    • Speicher-Encoder und Speicherbank: Speichern Merkmale aus vergangenen Frames.
    • Speicheraufmerksamkeitsmodul: Nutzt gespeicherte Informationen, um eine konsistente Objektverfolgung im Zeitverlauf aufrechtzuerhalten.
    • Verdeckungsmodul: Behandelt speziell Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit voraus, dass ein Objekt verdeckt ist.

    Dieser Mechanismus gewährleistet Kontinuität, selbst wenn Objekte vorübergehend verdeckt werden oder die Szene verlassen und wieder in sie eintreten. Weitere Informationen findest du im Abschnitt Speichermechanismus und Umgang mit Verdeckungen.

  • SAM 2-Modelle wie Metas SAM2-t und SAM2-b bieten leistungsstarke Zero-Shot-Segmentierungsfunktionen, sind jedoch im Vergleich zu YOLO-Modellen deutlich größer und langsamer. Beispielsweise ist YOLO26n-seg auf der CPU etwa 24-mal kleiner und mehr als 1145-mal schneller als SAM2-b. Während SAM 2 bei vielseitigen, Prompt-basierten und Zero-Shot-Segmentierungsszenarien überzeugt, ist YOLO26 für Geschwindigkeit, Effizienz und Echtzeitanwendungen mit End-to-End-Inferenz ohne NMS optimiert und eignet sich daher besser für den Einsatz in Umgebungen mit begrenzten Ressourcen.

Kommentare