SAM 2.1
Wir haben gerade die Unterstützung für das genauere SAM2.1-Modell hinzugefügt. Bitte probieren Sie es aus!
SAM 2: Segment Anything Model 2
SAM 2, der Nachfolger von Metas Segment Anything Model (SAM), ist ein hochmodernes Tool für die umfassende Objektsegmentierung in Bildern und Videos. Es zeichnet sich durch die Verarbeitung komplexer visueller Daten mithilfe einer einheitlichen, promptfähigen Modellarchitektur aus, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt.
Hauptmerkmale
Ansehen: So führen Sie Inferenz mit Meta's SAM2 mit Ultralytics aus | Schritt-für-Schritt-Anleitung 🎉
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, aufforderungsbasierte Schnittstelle, die es Benutzern ermöglicht, Objekte von Interesse durch verschiedene Aufforderungstypen wie Punkte, Begrenzungsrahmen oder Masken zu spezifizieren.
Echtzeit-Performance
Das Modell erreicht Echtzeit-Inferenzgeschwindigkeiten und verarbeitet etwa 44 Bilder pro Sekunde. Dies macht SAM 2 für Anwendungen geeignet, die ein sofortiges Feedback erfordern, wie z. B. Videobearbeitung und Augmented Reality.
Zero-Shot-Generalisierung
SAM 2 kann Objekte segmentieren, denen es noch nie zuvor begegnet ist, und demonstriert so 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
Benutzer können die Segmentierungsergebnisse iterativ verfeinern, indem sie zusätzliche Prompts bereitstellen, was eine präzise Kontrolle über die Ausgabe ermöglicht. Diese Interaktivität ist entscheidend für die Feinabstimmung von Ergebnissen in Anwendungen wie Videoannotation oder medizinischer Bildgebung.
Erweiterte Handhabung visueller Herausforderungen
SAM 2 enthält Mechanismen zur Bewältigung häufiger Herausforderungen bei der Videosegmentierung, wie z. B. Objektverdeckung und Wiederauftauchen. Es verwendet einen ausgeklügelten Speichermechanismus, um Objekte über Frames hinweg zu verfolgen und so die 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 erkunden Sie das SAM 2 Forschungspapier.
Leistung und technische Details
SAM 2 setzt einen neuen Maßstab in diesem Bereich und übertrifft frühere Modelle in verschiedenen Metriken:
Metrik | SAM 2 | Vorheriges SOTA |
---|---|---|
Interaktive Videosegmentierung | Beste | - |
Menschliche Interaktion erforderlich | 3x weniger | Ausgangswert |
Image Segmentation Genauigkeit | Verbessert | SAM |
Inferenzgeschwindigkeit | 6x schneller | SAM |
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 Zeitpunkt verantwortlich.
- Prompt Encoder: Verarbeitet benutzerdefinierte Prompts (Punkte, Boxen, Masken), um die Segmentierungsaufgabe zu steuern. Dies ermöglicht es SAM 2, sich an die Eingaben des Benutzers anzupassen und bestimmte Objekte innerhalb einer Szene zu erfassen.
- Speichermechanismus: Beinhaltet einen Memory 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 im Laufe der Zeit aufrechterhalten kann.
- Masken-Decoder: Generiert die finalen Segmentierungsmasken basierend auf den kodierten Bildmerkmalen und Prompts. Im Video verwendet er auch den Speicherkontext, um eine genaue Verfolgung über die Frames hinweg zu gewährleisten.
Speichermechanismus und Okklusionsbehandlung
Der Speichermechanismus ermöglicht es SAM 2, temporale Abhängigkeiten und Okklusionen in Videodaten zu verarbeiten. Wenn sich Objekte bewegen und interagieren, zeichnet SAM 2 ihre Merkmale in einem Speicherbereich auf. Wenn ein Objekt verdeckt wird, kann sich das Modell auf diesen Speicher verlassen, um seine Position und sein Aussehen vorherzusagen, wenn es wieder auftaucht. Der Okklusions-Head befasst sich speziell mit Szenarien, in denen Objekte nicht sichtbar sind, und prognostiziert die Wahrscheinlichkeit, dass ein Objekt verdeckt wird.
Multi-Mask Ambiguitätsauflösung
In Situationen mit Mehrdeutigkeit (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
Das SA-V-Dataset, das für das Training von SAM 2 entwickelt wurde, ist eines der größten und vielfältigsten verfügbaren Datasets für die Videosegmentierung. Es beinhaltet:
- 51.000+ Videos: Aufgenommen in 47 Ländern, wodurch eine große Bandbreite an realen Szenarien geboten wird.
- 600.000+ Masken-Annotationen: Detaillierte räumlich-zeitliche Masken-Annotationen, bezeichnet als "Masklets", die ganze Objekte und Teile abdecken.
- Dataset-Größe: Es bietet 4,5-mal mehr Videos und 53-mal mehr Annotationen als bisher größte Datasets und bietet somit eine beispiellose Vielfalt und Komplexität.
Benchmarks
Video-Objektsegmentierung
SAM 2 hat eine überlegene Leistung über wichtige Video-Segmentierungs-Benchmarks hinweg demonstriert:
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 deutliche Effizienz und Genauigkeit:
Datensatz | NoC@90 | AUC |
---|---|---|
DAVIS Interaktiv | 1.54 | 0.872 |
Installation
Um SAM 2 zu installieren, verwende den folgenden Befehl. Alle SAM 2-Modelle werden beim ersten Gebrauch automatisch heruntergeladen.
pip install ultralytics
So verwenden Sie SAM2: Vielseitigkeit in 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, Validierung, Training und Export.
Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Inferenz | Validierung | Training | Export |
---|---|---|---|---|---|---|
SAM 2 winzig | sam2_t.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2 klein | sam2_s.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2 Basis | sam2_b.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2 groß | sam2_l.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2.1 winzig | sam2.1_t.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2.1 klein | sam2.1_s.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2.1 Basis | sam2.1_b.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2.1 groß | sam2.1_l.pt | Instanzsegmentierung | ✅ | ❌ | ❌ | ❌ |
SAM 2 Vorhersagebeispiele
SAM 2 kann in einem breiten Spektrum von Aufgaben eingesetzt werden, darunter Echtzeit-Videobearbeitung, 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.
Segmentieren mit Anweisungen
Segmentieren mit Anweisungen
Verwenden Sie 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
Segmentieren Sie den gesamten Bild- oder Videoinhalt ohne spezifische Anweisungen.
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")
# Run inference with a SAM 2 model
yolo predict model=sam2.1_b.pt source=path/to/video.mp4
Video segmentieren und Objekte verfolgen
Video segmentieren
Segmentieren Sie den gesamten Videoinhalt mit spezifischen Anweisungen und verfolgen Sie 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 (bboxes/Punkte/Masken) bereitgestellt werden.
Dynamisches interaktives Segment und Tracking
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-Updates und Speicherverwaltung für eine verbesserte Verfolgungsleistung über eine Reihe von Bildern. Im Vergleich zum ursprünglichen SAM2 baut SAM2DynamicInteractivePredictor den Inferenzfluss neu auf, um die vortrainierten SAM2 optimal zu nutzen, ohne dass zusätzliches Training erforderlich ist.
Hauptmerkmale
Sie bietet drei wesentliche Verbesserungen:
- Dynamisch interaktiv: Hinzufügen neuer Aufforderungen zum Zusammenführen/Unterbrechen neuer Instanzen in den folgenden Frames zu jeder Zeit während der Videoverarbeitung
- Kontinuierliches Lernen: Hinzufügen neuer Prompts für bestehende Instanzen, um die Leistung des Modells im Laufe der Zeit zu verbessern
- Unabhängige Unterstützung für mehrere Bilder: Verarbeitung mehrerer unabhängiger Bilder (nicht unbedingt aus einer Videosequenz) mit gemeinsamer Speichernutzung und bildübergreifender Objektverfolgung
Kernkompetenzen
- Flexibilität der Eingabeaufforderung: Akzeptiert Begrenzungsrahmen, Punkte und Masken als Eingabeaufforderung
- Speicherbank-Verwaltung: Verwaltet eine dynamische Speicherbank, um Objektzustände über Rahmen hinweg zu speichern
- Multi-Objekt-Verfolgung: 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 erneute Verarbeitung der vorherigen Frames
- Unabhängige Bildverarbeitung: Verarbeitung eigenständiger Bilder mit gemeinsamem Speicherkontext für bildübergreifende Objektkonsistenz
Dynamische Objektaddition
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.inference(img="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[1], 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=[2], # New object ID
update_memory=True, # Add to memory
)
# Perform inference
results = predictor.inference(img="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=[2], # Same object ID
update_memory=True, # Update memory with new information
)
# Perform inference on new image
results = predictor(source="image7.jpg")
Hinweis
Die SAM2DynamicInteractivePredictor
ist für die Arbeit mit SAM2 konzipiert und unterstützt das Hinzufügen/Verfeinern von Kategorien durch alle Box/Punkt/Maske Eingabeaufforderungen die SAM2 nativ unterstützt. Es ist besonders nützlich für Szenarien, in denen Objekte erscheinen oder sich im Laufe der Zeit verändern, wie z. B. bei Videoanmerkungen oder interaktiven Bearbeitungsaufgaben.
Argumente
Name | Standardwert | Datentyp | Beschreibung |
---|---|---|---|
max_obj_num |
3 |
str |
Die voreingestellte maximale Anzahl von Kategorien |
update_memory |
False |
bool |
ob der Speicher mit neuen Aufforderungen aktualisiert werden soll |
obj_ids |
None |
List[int] |
Liste der Objekt-IDs, die den Eingabeaufforderungen entsprechen |
Anwendungsfälle
SAM2DynamicInteractivePredictor
ist ideal für:
- Videokommentar-Workflows, bei denen neue Objekte während der Sequenz erscheinen
- Interaktive Videobearbeitung, die das 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
- Mehrbilddatensätze für konsistente Objektsegmentierung über unabhängige Bilder hinweg
- Analyse von Bildsammlungen, bei denen Objekte über verschiedene Szenen hinweg verfolgt werden müssen
- Bereichsübergreifende Segmentierung durch Nutzung des Gedächtnisses aus verschiedenen Bildkontexten
- Halbautomatische Beschriftung zur effizienten Erstellung von Datensätzen mit minimalem manuellen Eingriff
SAM 2 Vergleich vs YOLO
Hier vergleichen wir die SAM2-Modelle von Meta, einschließlich der kleinsten SAM2-t-Variante, mit dem kleinsten Segmentierungsmodell von Ultralytics, YOLO11n-seg:
Modell | Größe (MB) |
Parameter (M) |
Geschwindigkeit (CPU) (ms/Bild) |
---|---|---|---|
Meta SAM-b | 375 | 93.7 | 49401 |
Meta SAM2-b | 162 | 80.8 | 31901 |
Meta SAM2-t | 78.1 | 38.9 | 25997 |
MobileSAM | 40.7 | 10.1 | 25381 |
FastSAM-s mit YOLOv8 Backbone | 23.7 | 11.8 | 55.9 |
Ultralytics YOLOv8n-seg | 6.7 (11,7x kleiner) | 3.4 (11,4x weniger) | 24.5 (1061x schneller) |
Ultralytics YOLO11n-seg | 5.9 (13.2x kleiner) | 2.9 (13.4x weniger) | 30.1 (864x schneller) |
Dieser Vergleich demonstriert die erheblichen Unterschiede in Modellgrößen und -geschwindigkeiten zwischen SAM-Varianten und YOLO-Segmentierungsmodellen. Während SAM einzigartige automatische Segmentierungsfunktionen bietet, sind YOLO-Modelle, insbesondere YOLOv8n-seg und YOLO11n-seg, deutlich kleiner, schneller und recheneffizienter.
Tests, die auf einem 2025 Apple M4 Pro mit 24 GB RAM laufen, verwenden torch==2.6.0
und ultralytics==8.3.90
. So reproduzieren Sie diesen 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 YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt"]:
model = YOLO(file_name)
model.info()
model(ASSETS)
Automatische Annotation: Effiziente Datensatzerstellung
Die automatische Annotation ist eine leistungsstarke Funktion von SAM 2, die es Benutzern ermöglicht, schnell und genau Segmentierungsdatensätze zu erstellen, indem sie vortrainierte Modelle nutzen. Diese Funktion ist besonders nützlich für die Erstellung großer, qualitativ hochwertiger Datensätze ohne umfangreiche manuelle Arbeit.
Wie man mit SAM 2 automatisch annotiert
Ansehen: Automatische Annotation mit dem Segment Anything 2 Modell von Meta unter Verwendung von Ultralytics | Datenbeschriftung
Um Ihr Dataset mit SAM 2 automatisch zu annotieren, folgen Sie diesem Beispiel:
Beispiel für automatische Annotation
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam2_b.pt")
Argument | Typ | Standard | Beschreibung |
---|---|---|---|
data |
str |
erforderlich | Pfad zum Verzeichnis mit den Zielbildern für Annotation oder Segmentierung. |
det_model |
str |
'yolo11x.pt' |
YOLO-Erkennungsmodellpfad für die anfängliche Objekterkennung. |
sam_model |
str |
'sam_b.pt' |
SAM-Modellpfad für die Segmentierung (unterstützt SAM, SAM2-Varianten und mobile_sam-Modelle). |
device |
str |
'' |
Rechengerät (z. B. 'cuda:0', 'cpu' oder '' für automatische Geräteerkennung). |
conf |
float |
0.25 |
YOLO-Erkennungsschwellenwert für die Filterung schwacher Erkennungen. |
iou |
float |
0.45 |
IoU-Schwellenwert für Non-Maximum Suppression, um überlappende Boxen zu filtern. |
imgsz |
int |
640 |
Eingangsgröße für die Größenänderung von Bildern (muss ein Vielfaches von 32 sein). |
max_det |
int |
300 |
Maximale Anzahl von Erkennungen pro Bild für Speichereffizienz. |
classes |
list[int] |
None |
Liste der zu erkennenden Klassenindizes (z. B. [0, 1] für Personen & Fahrräder). |
output_dir |
str |
None |
Speicherverzeichnis für Anmerkungen (standardmäßig './labels' relativ zum Datenpfad). |
Diese Funktion ermöglicht die schnelle Erstellung von hochwertigen Segmentierungsdatensätzen, ideal für Forscher und Entwickler, die ihre Projekte beschleunigen möchten.
Einschränkungen
Trotz seiner Stärken weist SAM 2 gewisse Einschränkungen auf:
- Tracking-Stabilität: SAM 2 kann die Verfolgung von Objekten während längerer Sequenzen oder erheblicher Änderungen des Blickwinkels verlieren.
- Objektverwechslung: Das Modell kann manchmal ä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.
- Detailgenauigkeit: Kann feine Details übersehen, besonders bei sich schnell bewegenden Objekten. Zusätzliche Prompts können dieses Problem teilweise beheben, aber die zeitliche Glätte ist nicht garantiert.
Zitate und Danksagungen
Wenn SAM 2 ein wichtiger 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 bedanken uns bei 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 Tool für die umfassende Objektsegmentierung in Bildern und Videos. Es zeichnet sich durch die Verarbeitung komplexer visueller Daten mithilfe einer einheitlichen, promptfähigen Modellarchitektur aus, die Echtzeitverarbeitung und Zero-Shot-Generalisierung unterstützt. SAM 2 bietet mehrere Verbesserungen gegenüber dem ursprünglichen SAM, darunter:
- Einheitliche Modellarchitektur: Kombiniert Bild- und Videosegmentierungsfunktionen in einem einzigen Modell.
- Echtzeit-Performance: Verarbeitet etwa 44 Bilder pro Sekunde und eignet sich somit für Anwendungen, die eine sofortige Rückmeldung 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, die Segmentierungsergebnisse iterativ zu verfeinern, indem sie zusätzliche Prompts bereitstellen.
- Fortschrittlicher Umgang mit visuellen Herausforderungen: Bewältigt gängige Herausforderungen bei der Videosegmentierung wie Objektverdeckung und Wiederauftauchen.
Für weitere Details zur Architektur und den Fähigkeiten von SAM 2, erkunden Sie das SAM 2 Forschungspapier.
Wie kann ich SAM 2 für die Echtzeit-Videosegmentierung verwenden?
SAM 2 kann für die Echtzeit-Videosegmentierung genutzt werden, indem es seine promptfähige Schnittstelle und Echtzeit-Inferenzfunktionen nutzt. Hier ist ein einfaches Beispiel:
Segmentieren mit Anweisungen
Verwenden Sie 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 lesen Sie den Abschnitt So verwenden Sie SAM 2.
Welche Datensätze werden verwendet, um SAM 2 zu trainieren, und wie verbessern sie seine Leistung?
SAM 2 wird auf dem SA-V-Datensatz trainiert, einem der größten und vielfältigsten verfügbaren Datensätze für die Videosegmentierung. Der SA-V-Datensatz beinhaltet:
- 51.000+ Videos: Aufgenommen in 47 Ländern, wodurch eine große Bandbreite an realen Szenarien geboten wird.
- 600.000+ Masken-Annotationen: Detaillierte räumlich-zeitliche Masken-Annotationen, bezeichnet als "Masklets", die ganze Objekte und Teile abdecken.
- Dataset-Größe: Bietet 4,5-mal mehr Videos und 53-mal mehr Annotationen als bisher größte Datasets und bietet somit eine beispiellose Vielfalt und Komplexität.
Dieser umfangreiche Datensatz ermöglicht es SAM 2, eine überlegene Leistung über wichtige Video-Segmentierungs-Benchmarks hinweg zu erzielen und verbessert seine Zero-Shot-Generalisierungsfähigkeiten. Weitere Informationen finden Sie im Abschnitt SA-V-Datensatz.
Wie behandelt SAM 2 Okklusionen und das Wiederauftauchen von Objekten bei der Videosegmentierung?
SAM 2 enthält einen ausgeklügelten Speichermechanismus, um zeitliche Abhängigkeiten und Okklusionen in Videodaten zu verwalten. Der Speichermechanismus besteht aus:
- Memory Encoder und Memory Bank: Speichert Merkmale aus vergangenen Frames.
- Memory Attention Module: Nutzt gespeicherte Informationen, um eine konsistente Objektverfolgung über die Zeit aufrechtzuerhalten.
- Occlusion Head: Behandelt speziell Szenarien, in denen Objekte nicht sichtbar sind, und sagt die Wahrscheinlichkeit voraus, dass ein Objekt verdeckt ist.
Dieser Mechanismus gewährleistet die Kontinuität, selbst wenn Objekte vorübergehend verdeckt sind oder die Szene verlassen und wieder betreten. Weitere Informationen finden Sie im Abschnitt Speichermechanismus und Okklusionsbehandlung.
Wie schneidet SAM 2 im Vergleich zu anderen Segmentierungsmodellen wie YOLO11 ab?
SAM 2-Modelle, wie z. B. Meta's SAM2-t und SAM2-b, bieten leistungsstarke Zero-Shot-Segmentierungsfunktionen, sind aber deutlich größer und langsamer als YOLO11-Modelle. Zum Beispiel ist YOLO11n-seg etwa 13-mal kleiner und über 860-mal schneller als SAM2-b. Während SAM 2 sich in vielseitigen, promptbasierten und Zero-Shot-Segmentierungsszenarien auszeichnet, ist YOLO11 auf Geschwindigkeit, Effizienz und Echtzeitanwendungen optimiert, wodurch es besser für den Einsatz in ressourcenbeschränkten Umgebungen geeignet ist.