Ultralytics YOLO27:
Get Started

SAM 2: Segmentierungsmodell 2 für beliebige Objekte#

Entwicklung von SAM

SAM 2 baut auf dem ursprünglichen SAM auf und ergänzt ihn um Videosegmentierung. Informationen zur promptgesteuerten Konzeptsegmentierung mit Text- und Bildbeispiel-Prompts findest du unter SAM 3.

Inference with Segment Anything 2 In Colab

SAM 2, der Nachfolger von Metas Segmentierungsmodell für beliebige Objekte (SAM), ist ein hochmodernes Werkzeug für die umfassende Objektsegmentierung in Bildern und Videos. Die einheitliche, promptgesteuerte Modellarchitektur eignet sich hervorragend für komplexe visuelle Daten und unterstützt Echtzeitverarbeitung sowie Zero-Shot-Verallgemeinerung.

SAM 2 auf der Ultralytics Platform

SAM 2.1-Modelle ermöglichen die Funktion für intelligente Annotationen auf der Ultralytics Platform und damit eine klickbasierte Segmentierung für die schnelle Kennzeichnung von Datensätzen. Einzelheiten findest du in der Anleitung zur Annotation.

Beispielergebnisse von SAM 2

Wichtige Funktionen#



Ansehen: So führst du mit Metas SAM2 Inferenz über Ultralytics aus | Schritt-für-Schritt-Anleitung 🎉

Einheitliche Modellarchitektur#

SAM 2 vereint die Fähigkeiten zur Bild- und Videosegmentierung in einem einzigen Modell. Diese Vereinheitlichung vereinfacht die Bereitstellung und sorgt für gleichbleibende Leistung bei unterschiedlichen Medientypen. Die flexible, promptbasierte Schnittstelle ermöglicht es, interessante Objekte über verschiedene Prompt-Typen anzugeben, etwa Punkte, Begrenzungsrahmen oder Masken.

Echtzeitleistung#

Das Modell erreicht Inferenzgeschwindigkeiten in Echtzeit und verarbeitet ungefähr 44 Bilder pro Sekunde. Dadurch eignet sich SAM 2 für Anwendungen, die eine unmittelbare Rückmeldung erfordern, etwa Videobearbeitung und erweiterte Realität.

Zero-Shot-Verallgemeinerung#

SAM 2 kann Objekte segmentieren, denen das Modell noch nie zuvor begegnet ist, und zeigt damit eine starke Zero-Shot-Generalisierung. Das ist besonders nützlich in vielfältigen oder sich wandelnden visuellen Bereichen, in denen vordefinierte Kategorien möglicherweise nicht alle vorkommenden Objekte abdecken.

Interaktive Verfeinerung#

Du kannst die Segmentierungsergebnisse iterativ verfeinern, indem du zusätzliche Prompts bereitstellst und so die Ausgabe präzise steuerst. Diese Interaktivität ist entscheidend, um Ergebnisse in Anwendungen wie der Videoannotation oder der medizinischen Bildgebung fein abzustimmen.

Fortgeschrittener Umgang mit visuellen Herausforderungen#

SAM 2 verfügt über Mechanismen zum Umgang mit häufigen Herausforderungen bei der Videosegmentierung, etwa der Verdeckung und dem Wiederauftauchen von Objekten. Ein ausgefeilter Speichermechanismus verfolgt Objekte über mehrere Frames hinweg und sorgt für Kontinuität, auch wenn Objekte vorübergehend verdeckt werden oder die Szene verlassen und wieder betreten.

Weitere Einblicke in die Architektur und die Funktionen von SAM 2 findest du im Forschungspapier zu SAM 2.

Leistung und technische Details#

SAM 2 setzt neue Maßstäbe auf diesem Gebiet und übertrifft frühere Modelle bei verschiedenen Kennzahlen:

KennzahlSAM 2Bisheriger SOTA
Interaktive VideosegmentierungAm besten-
Erforderliche menschliche Interaktionen3-mal wenigerAusgangswert
Genauigkeit der BildsegmentierungVerbessertSAM
Inferenzgeschwindigkeit6-mal schnellerSAM

Modellarchitektur#

Kernkomponenten#

  • Bild- und Videoencoder: Nutzt eine auf Transformern basierende Architektur, um übergeordnete Merkmale aus Bildern und Videoframes 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, Begrenzungsrahmen, Masken), um die Segmentierungsaufgabe zu steuern. So kann SAM 2 auf Nutzereingaben reagieren und gezielt bestimmte Objekte innerhalb einer Szene auswählen.
  • Speichermechanismus: Umfasst einen Speicherencoder, eine Speicherbank und ein Speicheraufmerksamkeitsmodul. Diese Komponenten speichern und nutzen gemeinsam Informationen aus vorherigen Frames, sodass das Modell die Objektverfolgung über die Zeit hinweg konsistent fortsetzen kann.
  • Maskendecoder: Erstellt die endgültigen Segmentierungsmasken anhand der codierten Bildmerkmale und Prompts. Bei Videos nutzt er außerdem den Speicherkontext, um eine genaue Verfolgung über mehrere Frames hinweg zu gewährleisten.

Architekturdiagramm von SAM 2

Speichermechanismus und Umgang mit Verdeckungen#

Der Speichermechanismus ermöglicht SAM 2, zeitliche Abhängigkeiten und Verdeckungen in Videodaten zu verarbeiten. Während sich Objekte bewegen und miteinander interagieren, speichert SAM 2 ihre Merkmale in einer Speicherbank. Wird ein Objekt verdeckt, kann das Modell auf diese gespeicherten Informationen zurückgreifen, um seine Position und sein Aussehen beim Wiederauftauchen vorherzusagen. Der Verdeckungskopf behandelt gezielt Situationen, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit voraus, dass ein Objekt verdeckt ist.

Auflösung von Mehrdeutigkeiten bei mehreren Masken#

In mehrdeutigen Situationen, etwa bei überlappenden Objekten, kann SAM 2 mehrere Maskenvorhersagen erzeugen. Diese Funktion ist entscheidend für die genaue Darstellung komplexer Szenen, bei denen eine einzelne Maske die Feinheiten der Szene möglicherweise nicht ausreichend abbildet.

SA-V-Datensatz#

Der für das Training von SAM 2 entwickelte SA-V-Datensatz gehört zu den größten und vielfältigsten verfügbaren Datensätzen für die Videosegmentierung. Er umfasst:

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

Benchmarks#

Videosegmentierung von Objekten#

SAM 2 hat bei wichtigen Benchmarks zur Videosegmentierung eine überragende 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 deutliche Effizienz und Genauigkeit:

DatensatzNoC@90AUC
DAVIS Interactive1.540.872

Installation#

Verwende den folgenden Befehl, um SAM 2 zu installieren. 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 AufgabenTrainingValidierungInferenzExportieren
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 SAM-2-Vorhersagen#

SAM 2 lässt sich für zahlreiche Aufgaben einsetzen, darunter die Videobearbeitung in Echtzeit, die medizinische Bildgebung und autonome Systeme. Durch die Fähigkeit, sowohl statische als auch dynamische visuelle Daten zu segmentieren, ist SAM 2 ein vielseitiges 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

# Ein Modell laden
model = SAM("sam2.1_b.pt")

# Modellinformationen anzeigen (optional)
model.info()

# Inferenz mit Begrenzungsrahmen-Prompt ausführen
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# Inferenz mit einem einzelnen Punkt ausführen
results = model(points=[900, 370], labels=[1])

# Inferenz mit mehreren Punkten ausführen
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])

# Inferenz mit mehreren Punkt-Prompts pro Objekt ausführen
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Inferenz mit einem Negativpunkt-Prompt ausführen
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

# Ein Modell laden
model = SAM("sam2.1_b.pt")

# Modellinformationen anzeigen (optional)
model.info()

# Inferenz ausführen
model("path/to/video.mp4")
  • Dieses Beispiel zeigt, wie SAM 2 den gesamten Inhalt eines Bildes oder Videos segmentieren kann, wenn keine Prompts (Begrenzungsrahmen/Punkte/Masken) angegeben werden.

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)

# Inferenz mit einem einzelnen Punkt ausführen
results = predictor(source="test.mp4", points=[920, 470], labels=[1])

# Inferenz mit mehreren Punkten ausführen
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])

# Inferenz mit mehreren Punkt-Prompts pro Objekt ausführen
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])

# Inferenz mit einem Negativpunkt-Prompt ausführen
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])

Dynamische interaktive Segmentierung und Verfolgung#

SAM2DynamicInteractivePredictor ist eine fortschrittliche, trainingsfreie Erweiterung von SAM 2, die dynamische Interaktionen mit mehreren Frames und kontinuierliches Lernen ermöglicht. Dieser Prädiktor unterstützt Prompt-Aktualisierungen in Echtzeit und die Speicherverwaltung, um die Verfolgungsleistung über eine Bildsequenz hinweg zu verbessern. Im Vergleich zum ursprünglichen SAM 2 gestaltet SAM2DynamicInteractivePredictor den Inferenzablauf neu, damit vortrainierte SAM-2-Modelle optimal genutzt werden können, ohne zusätzliches Training zu erfordern.

Beispielergebnisse von SAM 2

Wichtige Funktionen#

Die Erweiterung bietet drei wichtige Verbesserungen:

  1. Dynamische Interaktion: Füge während der Videoverarbeitung jederzeit Prompts hinzu, um Instanzen in nachfolgenden Frames zusammenzuführen oder neue, nicht verfolgte Instanzen hinzuzufügen.
  2. Kontinuierliches Lernen: Füge bestehende Instanzen mit neuen Prompts hinzu, um die Modellleistung mit der Zeit zu verbessern.
  3. Unabhängige Unterstützung mehrerer Bilder: Verarbeite mehrere unabhängige Bilder, die nicht unbedingt aus einer Videosequenz stammen, mit gemeinsamem Speicher und bildübergreifender Objektverfolgung.

Kernfunktionen#

  • Flexible Prompts: Unterstützt Begrenzungsrahmen, Punkte und Masken als Prompts.
  • Verwaltung der Speicherbank: Verwaltet eine dynamische Speicherbank, in der Objektzustände über mehrere Frames hinweg gespeichert werden.
  • Verfolgung mehrerer Objekte: Unterstützt die gleichzeitige Verfolgung mehrerer Objekte mit individuellen Objekt-IDs.
  • Aktualisierungen in Echtzeit: Ermöglicht das Hinzufügen neuer Prompts während der Inferenz, ohne vorherige Frames erneut zu verarbeiten.
  • Unabhängige Bildverarbeitung: Verarbeite einzelne Bilder mit gemeinsamem Speicherkontext, um die Konsistenz von Objekten über mehrere Bilder hinweg sicherzustellen.
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)

# Kategorie mithilfe eines Begrenzungsrahmen-Prompts definieren
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)

# Dieses bestimmte Objekt in einem neuen Bild erkennen
results = predictor(source="image2.jpg")

# Neue Kategorie mit einer neuen Objekt-ID hinzufügen
results = predictor(
    source="image4.jpg",
    bboxes=[[300, 300, 400, 400]],  # Neues Objekt
    obj_ids=[1],  # Neue Objekt-ID
    update_memory=True,  # Zum Speicher hinzufügen
)
# Inferenz ausführen
results = predictor(source="image5.jpg")

# Verfeinerungs-Prompts derselben Kategorie hinzufügen, um die Leistung zu steigern
# Das ist hilfreich, wenn sich das Aussehen eines Objekts deutlich verändert
results = predictor(
    source="image6.jpg",
    points=[[150, 150]],  # Verfeinerungspunkt
    labels=[1],  # Positiver Punkt
    obj_ids=[1],  # Dieselbe Objekt-ID
    update_memory=True,  # Speicher mit neuen Informationen aktualisieren
)
# Inferenz auf einem neuen Bild ausführen
results = predictor(source="image7.jpg")
Hinweis

SAM2DynamicInteractivePredictor wurde für die Verwendung mit SAM 2-Modellen entwickelt und unterstützt das Hinzufügen und Verfeinern von Kategorien mit allen Prompts für Boxen, Punkte und Masken, die SAM 2 nativ unterstützt. Das ist besonders nützlich in Szenarien, in denen Objekte im Laufe der Zeit erscheinen oder sich verändern, etwa bei der Videoannotation oder interaktiven Bearbeitungsaufgaben.

Argumente#

NameStandardwertDatentypBeschreibung
max_obj_num3intDie voreingestellte Höchstzahl an 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:

  • Videoannotations-Workflows, in denen während der Sequenz neue Objekte erscheinen
  • Interaktive Videobearbeitung, bei der Objekte in Echtzeit hinzugefügt und verfeinert werden müssen
  • Überwachungsanwendungen mit Bedarf an dynamischer Objektverfolgung
  • Medizinische Bildgebung zur Verfolgung anatomischer Strukturen über Zeitreihen hinweg
  • Autonome Systeme, die 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, bei der der Speicher aus unterschiedlichen Bildkontexten genutzt wird
  • Teilautomatische Annotation für die effiziente Erstellung von Datensätzen mit minimalem manuellem Aufwand

Vergleich von SAM und YOLO#

Hier vergleichen wir die SAM 2-Modelle von Meta, einschließlich der kleinsten Variante SAM2-t, mit den Segmentierungsmodellen von Ultralytics, darunter 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 YOLOv8-Backbone23.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 erheblichen Unterschiede bei Modellgrößen und Geschwindigkeiten zwischen SAM-Varianten und YOLO-Segmentierungsmodellen. SAM bietet zwar einzigartige Möglichkeiten zur automatischen Segmentierung, doch YOLO-Modelle, insbesondere YOLOv8n-seg, YOLO11n-seg und YOLO26n-seg, sind deutlich kleiner, schneller und recheneffizienter.

Die Geschwindigkeiten von SAM wurden mit PyTorch gemessen, die von YOLO mit ONNX Runtime. Die Tests wurden auf einem Apple M4 Air aus dem Jahr 2025 mit 16 GB RAM und 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

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

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

# YOLO-Modelle profilieren (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)  # NMS-freier YOLO26-Head; für YOLOv8/YOLO11 ohne Funktion
    model = YOLO(onnx_path)
    model(ASSETS)

Automatische Annotation: effiziente Erstellung von Datensätzen#

Die automatische Annotation ist eine leistungsstarke Funktion von SAM 2. Mit vortrainierten Modellen können Nutzer damit schnell und präzise Segmentierungsdatensätze erstellen. Diese Funktion ist besonders nützlich, um große, hochwertige Datensätze ohne umfangreiche manuelle Arbeit zu erstellen.

So annotierst du mit SAM 2 automatisch#



Ansehen: Automatische Annotation mit Metas Segment Anything 2 über Ultralytics | Datenbeschriftung

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")
ArgumentTypStandardBeschreibung
datastrerforderlichPfad zum Verzeichnis mit den Zielbildern für die 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 SAM-, SAM 2-, MobileSAM- und SAM 3-Gewichte).
devicestr''Rechengerät (z. B. 'cuda:0', 'cpu' oder '' zur automatischen Geräteerkennung).
conffloat0.25Konfidenzschwelle der YOLO-Erkennung, um unsichere Erkennungen herauszufiltern.
ioufloat0.45IoU-Schwelle für Non-Maximum Suppression, um überlappende Boxen herauszufiltern.
imgszint640Eingabegröße für die Größenanpassung von Bildern (bei Bedarf auf das nächste Vielfache von 32 aufgerundet).
max_detint300Höchstzahl der 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 (standardmäßig ein Verzeichnis neben <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 hat SAM 2 gewisse Einschränkungen:

  • Stabilität der Verfolgung: Bei längeren Sequenzen oder erheblichen Änderungen des Blickwinkels kann SAM 2 die Spur von Objekten verlieren.
  • Verwechslung von Objekten: Das Modell kann ähnlich aussehende Objekte manchmal verwechseln, insbesondere in überfüllten Szenen.
  • Effizienz bei mehreren Objekten: Die Segmentierung wird weniger effizient, wenn mehrere Objekte gleichzeitig verarbeitet werden, da die Kommunikation zwischen Objekten fehlt.
  • Detailgenauigkeit Genauigkeit: Feine Details können übersehen werden, besonders bei sich schnell bewegenden Objekten. Zusätzliche Prompts können dieses Problem teilweise beheben, aber eine zeitliche Glätte ist nicht garantiert.

Zitate und Danksagungen#

Wenn SAM 2 ein wichtiger Bestandteil deiner Forschungs- oder Entwicklungsarbeit ist, zitiere das Modell bitte mit folgendem Literaturhinweis:

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

Häufig gestellte Fragen#

  • SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Werkzeug für die umfassende Objektsegmentierung in Bildern und Videos. Mit einer einheitlichen, promptgesteuerten Modellarchitektur, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt, bewältigt es komplexe visuelle Daten besonders gut. SAM 2 bietet mehrere Verbesserungen gegenüber dem ursprünglichen SAM, darunter:

    • Einheitliche Modellarchitektur: Vereint die Fähigkeiten zur Bild- und Videosegmentierung 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 das Modell zuvor noch nicht begegnet ist – nützlich in vielfältigen visuellen Domänen.
    • Interaktive Verfeinerung: Ermöglicht es Nutzern, Segmentierungsergebnisse iterativ durch zusätzliche Prompts zu verfeinern.
    • Fortgeschrittener Umgang mit visuellen Herausforderungen: Bewältigt gängige Herausforderungen der Videosegmentierung, etwa das Verdecken und Wiedererscheinen von Objekten.

    Weitere Einzelheiten zur Architektur und den Fähigkeiten von SAM 2 findest du in der SAM 2-Forschungsarbeit.

  • SAM 2 lässt sich mithilfe seiner promptgesteuerten Schnittstelle und Echtzeit-Inferenz für die Videosegmentierung in Echtzeit einsetzen. Hier ist ein einfaches Beispiel:

    Segmentierung mit Prompts

    Verwende Prompts, um bestimmte Objekte in Bildern oder Videos zu segmentieren.

    from ultralytics import SAM
    
    # Ein Modell laden
    model = SAM("sam2_b.pt")
    
    # Modellinformationen anzeigen (optional)
    model.info()
    
    # Mit einer Begrenzungsbox als Prompt segmentieren
    results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
    
    # Mit einem Punkt als Prompt segmentieren
    results = model("path/to/image.jpg", points=[150, 150], labels=[1])

    Eine umfassendere Anleitung zur Verwendung findest du im Abschnitt So verwendest du SAM 2.

  • 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 mit einer großen Bandbreite realer Szenarien.
    • Über 600.000 Maskenannotationen: Detaillierte räumlich-zeitliche Maskenannotationen, sogenannte „Masklets“, die ganze Objekte und Teile davon 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.

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

  • SAM 2 verfügt über einen ausgefeilten Speichermechanismus, um zeitliche Abhängigkeiten und Verdeckungen in Videodaten zu verarbeiten. Der Speichermechanismus besteht aus:

    • Speicher-Encoder und Speicherbank: Speichern Merkmale aus früheren Bildern.
    • Speicher-Aufmerksamkeitsmodul: Nutzt gespeicherte Informationen, um die konsistente Objektverfolgung im Zeitverlauf aufrechtzuerhalten.
    • Verdeckungsmodul: Behandelt gezielt Situationen, 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 betreten. Weitere Einzelheiten 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 deutlich größer und langsamer als YOLO-Modelle. So ist YOLO26n-seg auf einer CPU etwa 24-mal kleiner und über 1145-mal schneller als SAM2-b. Während SAM 2 bei vielseitigen, promptbasierten und Zero-Shot-Segmentierungsszenarien überzeugt, ist YOLO26 auf Geschwindigkeit, Effizienz und Echtzeitanwendungen mit durchgängiger Inferenz ohne NMS optimiert und daher besser für den Einsatz in Umgebungen mit begrenzten Ressourcen geeignet.

Kommentare