Zum Inhalt springen

SAM 2: Segment Irgendwas Modell 2

SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Tool für die umfassende Segmentierung von Objekten in Bildern und Videos. Es zeichnet sich bei der Verarbeitung komplexer visueller Daten durch eine einheitliche, abrufbare Modellarchitektur aus, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt.

SAM 2 Beispielergebnisse

Hauptmerkmale

Einheitliche Modellarchitektur

SAM 2 vereint die Fähigkeiten der Bild- und Videosegmentierung in einem einzigen Modell. Diese Vereinheitlichung vereinfacht den Einsatz und ermöglicht eine konsistente Leistung bei unterschiedlichen Medientypen. Es nutzt eine flexible, auf Eingabeaufforderungen basierende Schnittstelle, die es den Nutzern ermöglicht, Objekte von Interesse durch verschiedene Arten von Eingabeaufforderungen wie Punkte, Begrenzungsrahmen oder Masken anzugeben.

Leistung in Echtzeit

Das Modell erreicht eine Echtzeit-Inferenzgeschwindigkeit und verarbeitet etwa 44 Bilder pro Sekunde. Damit eignet sich SAM 2 für Anwendungen, die sofortiges Feedback erfordern, wie z. B. Videobearbeitung und Augmented Reality.

Null-Schuss-Verallgemeinerung

SAM 2 ist in der Lage, Objekte zu segmentieren, denen es noch nie zuvor begegnet ist, und zeigt damit eine starke Generalisierung bei Nullschüssen. Dies ist besonders nützlich in vielfältigen oder sich entwickelnden visuellen Bereichen, in denen die vordefinierten Kategorien nicht alle möglichen Objekte abdecken können.

Interaktive Verfeinerung

Die Benutzer können die Segmentierungsergebnisse iterativ verfeinern, indem sie zusätzliche Eingabeaufforderungen geben, die eine genaue Kontrolle über das Ergebnis ermöglichen. Diese Interaktivität ist wichtig für die Feinabstimmung der Ergebnisse in Anwendungen wie Videoanmerkungen oder medizinische Bildgebung.

Fortgeschrittener Umgang mit visuellen Herausforderungen

SAM 2 enthält Mechanismen zur Bewältigung gängiger Herausforderungen bei der Videosegmentierung, wie z. B. das Verdecken und Wiederauftauchen von Objekten. Es verwendet einen ausgeklügelten Speichermechanismus, um Objekte über mehrere Frames hinweg zu verfolgen und die Kontinuität zu gewährleisten, auch wenn Objekte vorübergehend verdeckt sind oder die Szene verlassen und wieder betreten.

Ein tieferes Verständnis der Architektur und der Möglichkeiten von SAM 2 findest du im ForschungspapierSAM 2.

Leistung und technische Details

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

Metrisch SAM 2 Vorherige SOTA
Interaktive Video-Segmentierung Beste -
Menschliche Interaktionen erforderlich 3x weniger Basislinie
Bildsegmentierungsgenauigkeit Verbessert SAM
Inferenz Geschwindigkeit 6x schneller SAM

Modell Architektur

Kernkomponenten

  • Bild- und Video-Encoder: Verwendet eine transformatorbasierte Architektur, um High-Level-Merkmale aus Bildern und Videoframes zu extrahieren. Diese Komponente ist dafür verantwortlich, den visuellen Inhalt in jedem Zeitschritt zu verstehen.
  • Prompt-Encoder: Verarbeitet vom Nutzer bereitgestellte Eingabeaufforderungen (Punkte, Kästchen, Masken), um die Segmentierungsaufgabe zu steuern. So kann sich SAM 2 an die Benutzereingaben anpassen und bestimmte Objekte in einer Szene anvisieren.
  • Speichermechanismus: Er besteht aus einem Speicher-Encoder, einer Speicherbank und einem Modul für die Speicheraufmerksamkeit. Diese Komponenten speichern und nutzen gemeinsam Informationen aus vergangenen Bildern und ermöglichen es dem Modell, die Objektverfolgung über die Zeit aufrechtzuerhalten.
  • Masken-Decoder: Generiert die endgültigen Segmentierungsmasken auf der Grundlage der kodierten Bildmerkmale und Aufforderungen. Bei Videos nutzt er außerdem den Speicherkontext, um eine genaue Verfolgung über mehrere Bilder hinweg zu gewährleisten.

SAM 2 Architektur-Diagramm

Speichermechanismus und Umgang mit Okklusion

Der Speichermechanismus ermöglicht es SAM 2, mit zeitlichen Abhängigkeiten und Verdeckungen in Videodaten umzugehen. Wenn sich Objekte bewegen und interagieren, speichert SAM 2 ihre Merkmale in einer Speicherbank. Wenn ein Objekt verdeckt wird, kann das Modell auf diesen Speicher zurückgreifen, um seine Position und sein Aussehen vorherzusagen, wenn es wieder auftaucht. Der Okklusionskopf behandelt speziell Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit voraus, dass ein Objekt verdeckt ist.

Multi-Mask Ambiguity Resolution

In Situationen mit Mehrdeutigkeit (z. B. bei sich überlappenden Objekten) kann SAM 2 mehrere Maskenvorhersagen erstellen. Diese Funktion ist entscheidend für die genaue Darstellung komplexer Szenen, in denen eine einzige 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 die Segmentierung von Videos. Er umfasst:

  • 51.000+ Videos: In 47 Ländern aufgenommen, bieten sie eine breite Palette von realen Szenarien.
  • Über 600.000 Maskenanmerkungen: Detaillierte räumlich-zeitliche Maskenkommentare, die sogenannten "Masklets", die ganze Objekte und Teile abdecken.
  • Umfang des Datensatzes: Er enthält 4,5 Mal mehr Videos und 53 Mal mehr Anmerkungen als die bisher größten Datensätze und bietet eine noch nie dagewesene Vielfalt und Komplexität.

Benchmarks

Segmentierung von Videoobjekten

SAM 2 hat bei den wichtigsten Benchmarks zur Videosegmentierung eine überragende Leistung gezeigt:

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 eine hohe Effizienz und Genauigkeit:

Datensatz NoC@90 AUC
DAVIS Interaktiv 1.54 0.872

Installation

Um SAM 2 zu installieren, benutze den folgenden Befehl. Alle SAM 2 Modelle werden bei der ersten Verwendung automatisch heruntergeladen.

pip install ultralytics

SAM 2: Vielseitigkeit bei der Segmentierung von Bildern und Videos

In der folgenden Tabelle sind die verfügbaren SAM 2 Modelle, ihre vortrainierten Gewichte, unterstützte Aufgaben und die Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export aufgeführt.

Modell Typ Vortrainierte Gewichte Unterstützte Aufgaben Inferenz Validierung Ausbildung exportieren
SAM 2 winzig sam2_t.pt Instanz-Segmentierung
SAM 2 kleine sam2_s.pt Instanz-Segmentierung
SAM 2 Basis sam2_b.pt Instanz-Segmentierung
SAM 2 groß sam2_l.pt Instanz-Segmentierung

SAM 2 Beispiele für Vorhersagen

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

Segment mit Prompts

Segment mit Prompts

Verwende Aufforderungen, 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])

Segment Alles

Segment Alles

Segmentiere den gesamten Bild- oder Videoinhalt ohne spezifische Aufforderungen.

from ultralytics import SAM

# Load a model
model = SAM("sam2_b.pt")

# Display model information (optional)
model.info()

# Run inference
model("path/to/video.mp4")
# Run inference with a SAM 2 model
yolo predict model=sam2_b.pt source=path/to/video.mp4
  • Dieses Beispiel zeigt, wie SAM 2 verwendet werden kann, um den gesamten Inhalt eines Bildes oder Videos zu segmentieren, wenn keine Eingabeaufforderungen (bboxes/points/masks) vorhanden sind.

SAM 2 comparison vs YOLOv8

Here we compare Meta's smallest SAM 2 model, SAM2-t, with Ultralytics smallest segmentation model, YOLOv8n-seg:

Modell Size
(MB)
Parameters
(M)
Speed (CPU)
(ms/im)
Meta SAM-b 375 93.7 161440
Meta SAM2-b 162 80.8 121923
Meta SAM2-t 78.1 38.9 85155
MobileSAM 40.7 10.1 98543
FastSAM-s mit YOLOv8 backbone 23.7 11.8 140
Ultralytics YOLOv8n-seg 6.7 (11.7x smaller) 3.4 (11.4x less) 79.5 (1071x faster)

Dieser Vergleich zeigt, wie groß die Unterschiede in den Modellgrößen und Geschwindigkeiten zwischen den Modellen sind. Während SAM einzigartige Möglichkeiten für die automatische Segmentierung bietet, ist es kein direkter Konkurrent für die YOLOv8 Segmentmodelle, die kleiner, schneller und effizienter sind.

Tests run on a 2023 Apple M2 Macbook with 16GB of RAM using torch==2.3.1 und ultralytics==8.3.82. To reproduce this test:

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 YOLOv8n-seg
model = YOLO("yolov8n-seg.pt")
model.info()
model(ASSETS)

Auto-Annotation: Effiziente Datensatzerstellung

Die automatische Beschriftung ist eine leistungsstarke Funktion von SAM 2, die es den Nutzern ermöglicht, schnell und genau Segmentierungsdatensätze zu erstellen, indem sie vorab trainierte Modelle nutzt. Diese Funktion ist besonders nützlich, um große, hochwertige Datensätze ohne großen manuellen Aufwand zu erstellen.

Auto-Annotieren mit SAM 2

Um deinen Datensatz mit SAM 2 automatisch zu annotieren, befolge dieses Beispiel:

Beispiel für Auto-Anmerkungen

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model="sam2_b.pt")
Argument Typ Beschreibung Standard
data str Pfad zu einem Ordner mit Bildern, die mit Anmerkungen versehen werden sollen.
det_model str, optional Vorgeprüftes YOLO Erkennungsmodell. Die Voreinstellung ist 'yolov8x.pt'. 'yolov8x.pt'
sam_model str, optional Vortrainiertes SAM 2 Segmentierungsmodell. Der Standardwert ist "sam2_b.pt". 'sam2_b.pt'
device str, optional Gerät, auf dem die Modelle ausgeführt werden sollen. Der Standardwert ist eine leere Zeichenkette (CPU oder GPU, falls verfügbar).
output_dir str, None, optional Verzeichnis zum Speichern der kommentierten Ergebnisse. Standardmäßig wird der Ordner "labels" im selben Verzeichnis wie "data" gespeichert. None

Diese Funktion erleichtert die schnelle Erstellung von hochwertigen Segmentierungsdatensätzen, ideal für Forscher und Entwickler, die ihre Projekte beschleunigen wollen.

Einschränkungen

Trotz seiner Stärken hat SAM 2 gewisse Einschränkungen:

  • Verfolgungsstabilität: SAM 2 kann die Verfolgung von Objekten bei längeren Sequenzen oder erheblichen Blickwinkeländerungen verlieren.
  • Objektverwirrung: Das Modell kann manchmal ähnlich aussehende Objekte verwechseln, besonders in überfüllten Szenen.
  • Effizienz bei mehreren Objekten: Die Effizienz der Segmentierung nimmt ab, wenn mehrere Objekte gleichzeitig verarbeitet werden, weil die Kommunikation zwischen den Objekten fehlt.
  • Detailgenauigkeit: Möglicherweise werden feine Details übersehen, besonders bei sich schnell bewegenden Objekten. Zusätzliche Aufforderungen können dieses Problem teilweise beheben, aber die zeitliche Glätte ist nicht garantiert.

Zitate und Danksagungen

Wenn SAM 2 ein wichtiger Teil deiner Forschungs- oder Entwicklungsarbeit ist, zitiere ihn bitte mit 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 bedanken uns bei Meta AI für ihren Beitrag zur KI-Gemeinschaft 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 Tool für die umfassende Segmentierung von Objekten in Bildern und Videos. Es zeichnet sich bei der Verarbeitung komplexer visueller Daten durch eine einheitliche, prompte Modellarchitektur aus, die die Verarbeitung in Echtzeit und die Verallgemeinerung in Nullkommanichts unterstützt. SAM 2 bietet mehrere Verbesserungen gegenüber dem Original SAM, darunter:

  • Vereinheitlichte Modellarchitektur: Kombiniert Bild- und Videosegmentierungsfunktionen in einem einzigen Modell.
  • Leistung in Echtzeit: Verarbeitet ca. 44 Bilder pro Sekunde und ist damit für Anwendungen geeignet, die ein sofortiges Feedback erfordern.
  • Zero-Shot Generalization: Sie segmentiert Objekte, die sie noch nie zuvor gesehen hat, was in verschiedenen visuellen Bereichen nützlich ist.
  • Interaktive Verfeinerung: Ermöglicht es den Nutzern, die Segmentierungsergebnisse iterativ zu verfeinern, indem sie zusätzliche Eingabeaufforderungen erhalten.
  • Fortschrittlicher Umgang mit visuellen Herausforderungen: Bewältigt gängige Herausforderungen bei der Videosegmentierung wie Objektverdeckung und Wiederauftauchen.

Weitere Einzelheiten über die Architektur und die Möglichkeiten von SAM 2 findest du im ForschungspapierSAM 2.

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

SAM 2 kann für die Videosegmentierung in Echtzeit verwendet werden, indem man die promptable Schnittstelle und die Echtzeit-Inferenzfunktionen nutzt. Hier ist ein einfaches Beispiel:

Segment mit Prompts

Verwende Aufforderungen, 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 ausführliche Beschreibung der Verwendung findest du im Abschnitt Verwendung von SAM 2.

Welche Datensätze werden zum Trainieren von SAM 2 verwendet und wie verbessern sie die Leistung des Systems?

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

  • 51.000+ Videos: In 47 Ländern aufgenommen, bieten sie eine breite Palette von realen Szenarien.
  • Über 600.000 Maskenanmerkungen: Detaillierte räumlich-zeitliche Maskenkommentare, die sogenannten "Masklets", die ganze Objekte und Teile abdecken.
  • Umfang des Datensatzes: Enthält 4,5 Mal mehr Videos und 53 Mal mehr Anmerkungen als die bisher größten Datensätze und bietet eine noch nie dagewesene Vielfalt und Komplexität.

Dank dieses umfangreichen Datensatzes erreicht SAM 2 eine überragende Leistung bei den wichtigsten Videosegmentierungs-Benchmarks und verbessert seine Fähigkeiten zur Generalisierung von Nullschüssen. Weitere Informationen findest du im Abschnitt SA-V-Datensatz.

Wie geht SAM 2 mit Verdeckungen und dem Wiederauftauchen von Objekten bei der Segmentierung von Videos 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 aufrechtzuerhalten.
  • Verdeckungskopf: Er befasst sich speziell mit Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit voraus, dass ein Objekt verdeckt ist.

Dieser Mechanismus gewährleistet die Kontinuität, auch wenn Objekte vorübergehend verdeckt werden oder die Szene verlassen und wieder betreten. Weitere Einzelheiten findest du im Abschnitt Speichermechanismus und Umgang mit Verdeckungen.

Wie schneidet SAM 2 im Vergleich zu anderen Segmentierungsmodellen wie YOLOv8 ab?

SAM 2 und Ultralytics YOLOv8 dienen unterschiedlichen Zwecken und zeichnen sich in verschiedenen Bereichen aus. Während SAM 2 für eine umfassende Objektsegmentierung mit erweiterten Funktionen wie Zero-Shot-Generalisierung und Echtzeitleistung entwickelt wurde, ist YOLOv8 auf Geschwindigkeit und Effizienz bei der Objekterkennung und -segmentierung optimiert. Hier ist ein Vergleich:

Modell Size
(MB)
Parameters
(M)
Speed (CPU)
(ms/im)
Meta SAM-b 375 93.7 161440
Meta SAM2-b 162 80.8 121923
Meta SAM2-t 78.1 38.9 85155
MobileSAM 40.7 10.1 98543
FastSAM-s mit YOLOv8 backbone 23.7 11.8 140
Ultralytics YOLOv8n-seg 6.7 (11.7x smaller) 3.4 (11.4x less) 79.5 (1071x faster)

For more details, see the SAM 2 comparison vs YOLOv8 section.


📅 Created 1 month ago ✏️ Updated 10 days ago

Kommentare