Skip to main content

SAM 2: Segment Anything Model 2

SAM Evolution

SAM 2 baut auf dem ursprünglichen SAM mit Videosegmentierungsfunktionen auf. Für Promptable Concept Segmentation mit Text- und Bildbeispiel-Prompts siehe oder .

Inference with Segment Anything 2 In Colab

SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Tool, das für die umfassende Objektsegmentierung in Bildern und Videos entwickelt wurde. Es zeichnet sich durch die Handhabung komplexer visueller Daten aus, dank einer einheitlichen, promptbaren Modellarchitektur, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt.

SAM 2 auf der Ultralytics Plattform

SAM 2.1 Modelle treiben die Smart Annotation Funktion auf an, oder verwende die an, die eine klickbasierte Segmentierung für eine schnelle Datensatz-Labeling ermöglicht. Siehe den Annotation Guide für Details.

SAM 2 Beispielergebnisse

Hauptmerkmale



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

Einheitliche Modellarchitektur

SAM 2 kombiniert die Fähigkeiten der Bild- und Videosegmentierung in einem einzigen Modell. Diese Vereinheitlichung vereinfacht die Bereitstellung und ermöglicht eine konsistente Leistung über verschiedene Medientypen hinweg. Es nutzt eine flexible, promptbasierte Schnittstelle, die es dir ermöglicht, interessante Objekte über verschiedene Prompt-Typen wie Punkte, Bounding Boxes oder Masken zu spezifizieren.

Echtzeitleistung

Das Modell erreicht Echtzeit-Inferenzgeschwindigkeiten und verarbeitet etwa 44 Bilder pro Sekunde. Damit 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, die es noch nie zuvor gesehen hat, und beweist damit eine starke Zero-Shot-Generalisierung. Dies ist besonders nützlich in vielfältigen oder sich entwickelnden visuellen Bereichen, in denen vordefinierte Kategorien möglicherweise nicht alle möglichen Objekte abdecken.

Interaktive Verfeinerung

Du kannst die Segmentierungsergebnisse iterativ durch zusätzliche Prompts verfeinern und so eine präzise Kontrolle über die Ausgabe erhalten. Diese Interaktivität ist entscheidend für das Feintuning der Ergebnisse in Anwendungen wie Videoannotation oder medizinischer Bildgebung.

Erweiterte Handhabung visueller Herausforderungen

SAM 2 enthält Mechanismen zur Bewältigung gängiger Herausforderungen bei der Videosegmentierung, wie etwa Objektverdeckung und Wiedererscheinen. Es verwendet einen ausgeklügelten Speichermechanismus, um Objekte über verschiedene 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, erkunde das SAM 2 Forschungspapier.

Leistung und technische Details

SAM 2 setzt einen neuen Maßstab in diesem Bereich und übertrifft frühere Modelle bei verschiedenen Metriken:

MetrikSAM 2Vorheriger SOTA
Interaktive VideosegmentierungBestwert-
Erforderliche menschliche Interaktionen3x wenigerBaseline
Bildsegmentierung GenauigkeitVerbessertSAM
Inferenzgeschwindigkeit6x schnellerSAM

Modellarchitektur

Kernkomponenten

  • Bild- und Video-Encoder: Nutzt eine transformer-basierte Architektur, um High-Level-Features 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 es SAM 2, sich an Benutzereingaben anzupassen und spezifische Objekte innerhalb einer Szene zu adressieren.
  • Speichermechanismus: Enthält einen Speicher-Encoder, eine Memory Bank und ein Memory-Attention-Modul. Diese Komponenten speichern und nutzen gemeinsam Informationen aus vergangenen Frames, wodurch das Modell eine konsistente Objektverfolgung über die Zeit hinweg aufrechterhalten kann.
  • Masken-Decoder: Generiert die endgültigen Segmentierungsmasken basierend auf den enkodierten Bildmerkmalen und Prompts. Bei Videos nutzt er auch den Speicherkontext, um eine genaue Verfolgung über Frames hinweg sicherzustellen.

SAM 2 Architekturdiagramm

Speichermechanismus und Handhabung von Verdeckungen

Der Speichermechanismus ermöglicht es SAM 2, mit zeitlichen Abhängigkeiten und Verdeckungen in Videodaten umzugehen. Wenn sich Objekte bewegen und interagieren, zeichnet SAM 2 deren Merkmale in einer Memory Bank auf. Wenn ein Objekt verdeckt wird, kann sich das Modell auf diesen Speicher verlassen, um dessen Position und Aussehen vorherzusagen, wenn es wieder erscheint. Der Okklusions-Head handhabt speziell Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit einer Verdeckung vorher.

Auflösung von Multi-Masken-Mehrdeutigkeiten

In Situationen mit Mehrdeutigkeit (z. B. überlappende Objekte) kann SAM 2 mehrere Maskenvorhersagen generieren. Diese Funktion ist entscheidend, um komplexe Szenen präzise darzustellen, bei 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 Datensätze für Videosegmentierung. Er beinhaltet:

  • 51.000+ Videos: Aufgenommen in 47 Ländern, was eine breite Palette an realen Szenarien abdeckt.
  • 600.000+ Maskenannotationen: Detaillierte räumlich-zeitliche Maskenannotationen, genannt "Masklets", die ganze Objekte und Teile abdecken.
  • Datensatz-Umfang: 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

Videiobjektsegmentierung

SAM 2 hat bei den wichtigsten Benchmarks für Videosegmentierung eine überlegene Leistung gezeigt:

DatensatzJ&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

Interaktive Segmentierung

Bei interaktiven Segmentierungsaufgaben zeigt SAM 2 eine signifikante Effizienz und Genauigkeit:

DatensatzNoC@90AUC
DAVIS Interactive1.540.872

Installation

Um SAM 2 zu installieren, verwende den 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 beschreibt die verfügbaren SAM 2 Modelle, ihre vortrainierten Gewichte, unterstützte Aufgaben und die Kompatibilität mit verschiedenen Betriebsmodi wie Inference, Validierung, Training, und Export.

ModelltypVortrainierte GewichteUnterstützte AufgabenInferenceValidierungTrainingExport
SAM 2 tinysam2_t.ptInstanz-Segmentierung
SAM 2 smallsam2_s.ptInstanz-Segmentierung
SAM 2 basesam2_b.ptInstanz-Segmentierung
SAM 2 largesam2_l.ptInstanz-Segmentierung
SAM 2.1 tinysam2.1_t.ptInstanz-Segmentierung
SAM 2.1 smallsam2.1_s.ptInstanz-Segmentierung
SAM 2.1 basesam2.1_b.ptInstanz-Segmentierung
SAM 2.1 largesam2.1_l.ptInstanz-Segmentierung

SAM 2 Vorhersage-Beispiele

SAM 2 kann für ein breites Spektrum an Aufgaben eingesetzt werden, darunter Echtzeit-Videobearbeitung, medizinische Bildgebung und autonome Systeme. Die 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

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

Video segmentieren

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 zeigt, wie SAM 2 verwendet werden kann, um den gesamten Inhalt eines Bildes oder Videos zu segmentieren, wenn keine Prompts (Bboxen/Punkte/Masken) bereitgestellt werden.

Dynamisches interaktives Segmentieren und Verfolgen

SAM2DynamicInteractivePredictor ist eine fortschrittliche, trainingsfreie Erweiterung von SAM2, die eine dynamische Interaktion mit mehreren Frames sowie kontinuierliche Lernfähigkeiten ermöglicht. Dieser Prädiktor unterstützt Echtzeit-Prompt-Updates und Speicherverwaltung für eine verbesserte Tracking-Leistung über eine Sequenz von Bildern hinweg. Im Vergleich zum ursprünglichen SAM2 baut der SAM2DynamicInteractivePredictor den Inferenz-Fluss neu auf, um die vortrainierten SAM2-Modelle optimal zu nutzen, ohne dass zusätzliches Training erforderlich ist.

SAM 2 Beispielergebnisse

Hauptmerkmale

Er bietet drei wesentliche Verbesserungen:

  1. Dynamisch interaktiv: Füge jederzeit während der Videoverarbeitung neue Prompts hinzu, um neue Instanzen in den folgenden Frames zusammenzuführen oder nicht verfolgte Instanzen zu erfassen
  2. Kontinuierliches Lernen: Füge neue Prompts für bestehende Instanzen hinzu, um die Modellleistung im Laufe der Zeit zu verbessern
  3. Unabhängige Unterstützung für mehrere Bilder: Verarbeite mehrere unabhängige Bilder (nicht notwendigerweise aus einer Videosequenz) mit Speicherfreigabe und objektübergreifender Verfolgung über Bilder hinweg

Kernfähigkeiten

  • Prompt-Flexibilität: Akzeptiert Bounding Boxes, Punkte und Masken als Prompts
  • Memory Bank-Verwaltung: Verwaltet eine dynamische Memory Bank, um Objektzustände über Frames hinweg zu speichern
  • Multi-Objekt-Tracking: Unterstützt die gleichzeitige Verfolgung mehrerer Objekte mit individuellen Objekt-IDs
  • Echtzeit-Updates: Ermöglicht das Hinzufügen neuer Prompts während der Inferenz, ohne vorherige Frames erneut verarbeiten zu müssen
  • Unabhängige Bildverarbeitung: Verarbeite einzelne Bilder mit gemeinsamem Speicherkontext für objektübergreifende Konsistenz über Bilder hinweg
Dynamisches Hinzufügen von Objekten
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")
Note

Das SAM2DynamicInteractivePredictor wurde für die Arbeit mit SAM2-Modellen entwickelt und unterstützt das Hinzufügen/Verfeinern von Kategorien durch alle von SAM2 nativ unterstützten box/point/mask Prompts. Es ist besonders nützlich für Szenarien, in denen Objekte erscheinen oder sich im Laufe der Zeit verändern, wie z. B. bei der Videokommentierung oder bei interaktiven Bearbeitungsaufgaben.

Argumente

NameStandardwertDatentypBeschreibung
max_obj_num3intDie voreingestellte maximale Anzahl an Kategorien
update_memoryFalseboolOb der Speicher mit neuen Prompts aktualisiert werden soll
obj_idsNoneList[int]Liste der Objekt-IDs, die den Prompts entsprechen

Anwendungsfälle

SAM2DynamicInteractivePredictor ist ideal für:

  • Workflows zur Videokommentierung bei denen während der Sequenz neue Objekte erscheinen
  • Interaktive Videobearbeitung die ein Hinzufügen und Verfeinern von Objekten in Echtzeit erfordert
  • Überwachungsanwendungen mit Bedarf an dynamischer Objektverfolgung
  • Medizinische Bildgebung zur Verfolgung anatomischer Strukturen über Zeitreihen hinweg
  • Autonome Systeme die eine adaptive Objekterkennung und -verfolgung erfordern
  • Multi-Bild-Datensätze für eine konsistente Objektsegmentierung über unabhängige Bilder hinweg
  • Bildersammlungsanalyse bei der Objekte über verschiedene Szenen hinweg verfolgt werden müssen
  • Domänenübergreifende Segmentierung unter Nutzung des Speichers aus verschiedenen Bildkontexten
  • Halbautomatische Kommentierung für eine effiziente Datensatzerstellung mit minimalem manuellen Eingriff

SAM-Vergleich vs YOLO

Hier vergleichen wir die SAM 2-Modelle von Meta, einschließlich der kleinsten SAM2-t-Variante, mit den Ultralytics Segmentierungsmodellen, 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 zeigt 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 effizienter in der Berechnung.

SAM-Geschwindigkeiten wurden mit PyTorch gemessen, YOLO-Geschwindigkeiten mit ONNX Runtime. Die Tests wurden auf einem 2025 Apple M4 Air mit 16GB RAM durchgeführt unter Verwendung von torch==2.10.0, ultralytics==8.4.31, und onnxruntime==1.24.4. Um diesen Test 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)

Auto-Annotation: Effiziente Datensatzerstellung

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

So nutzt du Auto-Annotation mit SAM 2



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:

Beispiel für Auto-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, das Zielbilder für die Annotation oder Segmentierung enthält.
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-, SAM2-Varianten und MobileSAM-Modelle).
devicestr''Berechnungsgerät (z. B. 'cuda:0', 'cpu' oder '' für automatische Geräteerkennung).
conffloat0.25Konfidenzschwelle für die YOLO-Erkennung zum Filtern schwacher Erkennungen.
ioufloat0.45IoU-Schwellenwert für Non-Maximum Suppression zum Filtern überlappender Boxen.
imgszint640Eingabegröße für die Skalierung von Bildern (muss ein Vielfaches von 32 sein).
max_detint300Maximale Anzahl an Erkennungen pro Bild für Speichereffizienz.
classeslist[int]NoneListe der Klassenindizes zur Erkennung (z. B. [0, 1] für Person & Fahrrad).
output_dirstrNoneSpeicherverzeichnis für Annotationen (standardmäßig './labels' relativ zum Datenpfad).

Diese Funktion erleichtert die schnelle Erstellung hochwertiger Segmentierungsdatensätze, 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, besonders 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, besonders bei schnell bewegten Objekten. Zusätzliche Prompts können dieses Problem teilweise beheben, aber zeitliche Glätte ist nicht garantiert.

Zitate und Danksagungen

Wenn SAM 2 ein wesentlicher Bestandteil deiner Forschungs- oder Entwicklungsarbeit ist, zitiere es bitte mit 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 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 durch eine einheitliche, promptbare Modellarchitektur aus, 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 Videosegmentierungsfunktionen in einem einzigen Modell.
  • Echtzeitleistung: Verarbeitet etwa 44 Bilder pro Sekunde, was es für Anwendungen geeignet macht, die sofortiges Feedback erfordern.
  • Zero-Shot-Generalisierung: Segmentiert Objekte, die es zuvor noch nie gesehen hat, nützlich in verschiedenen visuellen Domänen.
  • Interaktive Verfeinerung: Ermöglicht Benutzern, Segmentierungsergebnisse durch zusätzliche Prompts iterativ zu verfeinern.
  • Erweiterte Handhabung visueller Herausforderungen: Bewältigt häufige Herausforderungen bei der Videosegmentierung wie Objektverdeckung und Wiedererscheinen.

Für weitere Details zur Architektur und den Fähigkeiten von SAM 2 erkunde die SAM 2 Forschungspapier.

Wie kann ich SAM 2 für Echtzeit-Videosegmentierung verwenden?

SAM 2 kann durch seine promptbare Schnittstelle und Echtzeit-Inferenzfähigkeiten für die Echtzeit-Videosegmentierung genutzt werden. Hier ist ein grundlegendes 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])

Für eine umfassendere Nutzung schau dir das So verwendest du SAM 2 section.

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 Datensätze für Videosegmentierung. Der SA-V-Datensatz beinhaltet:

  • 51.000+ Videos: Aufgenommen in 47 Ländern, was eine breite Palette an realen Szenarien abdeckt.
  • 600.000+ Maskenannotationen: Detaillierte räumlich-zeitliche Maskenannotationen, genannt "Masklets", die ganze Objekte und Teile abdecken.
  • Datensatz-Umfang: Enthält 4,5-mal mehr Videos und 53-mal mehr Annotationen als bisherige größte Datensätze, was eine beispiellose Vielfalt und Komplexität bietet.

Dieser umfangreiche Datensatz ermöglicht es SAM 2, eine überragende Leistung bei wichtigen Benchmarks für Videosegmentierung zu erzielen und verbessert seine Zero-Shot-Generalisierungsfähigkeiten. Weitere Informationen findest du unter SA-V Datensatz section.

Wie geht SAM 2 bei der Videosegmentierung mit Verdeckungen und wieder erscheinenden Objekten um?

SAM 2 enthält einen ausgeklügelten Speichermechanismus, um zeitliche Abhängigkeiten und Verdeckungen in Videodaten zu verwalten. Der Speichermechanismus besteht aus:

  • Memory Encoder und Memory Bank: Speichert Merkmale aus vergangenen Bildern.
  • Memory Attention Module: Nutzt gespeicherte Informationen, um die Objektverfolgung über die Zeit hinweg konsistent zu halten.
  • Occlusion Head: Behandelt spezifisch Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit einer Objektverdeckung voraus.

Dieser Mechanismus gewährleistet Kontinuität, selbst wenn Objekte vorübergehend verdeckt sind oder die Szene verlassen und wieder betreten. Weitere Details findest du im Speichermechanismus und Handhabung von Verdeckungen section.

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-Segmentierungsfunktionen, sind aber im Vergleich zu YOLO-Modellen deutlich größer und langsamer. Zum Beispiel YOLO26n-seg ist etwa 24-mal kleiner und über 1145-mal schneller als SAM2-b auf einer CPU. Während SAM 2 in vielseitigen, promptbasierten und Zero-Shot-Segmentierungsszenarien glänzt, ist YOLO26 für Geschwindigkeit, Effizienz und Echtzeitanwendungen mit NMS-freier End-to-End-Inferenz optimiert, was es besser für den Einsatz in ressourcenbeschränkten Umgebungen macht.

Kommentare