Meet YOLO26: next-gen vision AI.

Link to this sectionSegment Anything Model (SAM)#

SAM-Entwicklung

Dies ist das ursprüngliche SAM-Modell von Meta. Für verbesserte Funktionen siehe SAM 2 für Videosegmentierung oder SAM 3 für prompt-basierte Konzeptsegmentierung mit Text- und Bildbeispiel-Prompts.

So verwendest du Segment Anything in Colab

Willkommen an der Spitze der Bildsegmentierung mit dem Segment Anything Model, kurz SAM. Dieses revolutionäre Modell hat die Spielregeln verändert, indem es prompt-basierte Bildsegmentierung mit Echtzeitleistung eingeführt und neue Maßstäbe in diesem Bereich gesetzt hat.

Link to this sectionEinführung in SAM: Das Segment Anything Model#

Das Segment Anything Model, oder SAM, ist ein hochmodernes Bildsegmentierungsmodell, das eine prompt-basierte Segmentierung ermöglicht und eine beispiellose Vielseitigkeit bei Bildanalyseaufgaben bietet. SAM bildet das Herzstück der Segment Anything-Initiative, einem bahnbrechenden Projekt, das ein neuartiges Modell, eine neue Aufgabe und einen neuen Datensatz für die Bildsegmentierung einführt.

Das fortschrittliche Design von SAM ermöglicht es ihm, sich ohne vorheriges Wissen an neue Bildverteilungen und Aufgaben anzupassen, eine Funktion, die als Zero-Shot-Transfer bekannt ist. Trainiert auf dem umfangreichen SA-1B-Datensatz, der mehr als 1 Milliarde Masken auf 11 Millionen sorgfältig kuratierten Bildern enthält, hat SAM eine beeindruckende Zero-Shot-Leistung gezeigt und in vielen Fällen bisherige vollständig überwachte Ergebnisse übertroffen.

SA-1B-Datensatzbeispiel mit automatischen Segmentierungsmasken SA-1B Beispielbilder. Datensatzbilder mit überlagerten Masken aus dem neu eingeführten SA-1B-Datensatz. SA-1B enthält 11 Mio. vielfältige, hochauflösende, lizenzierte und datenschutzfreundliche Bilder sowie 1,1 Mrd. hochwertige Segmentierungsmasken. Diese Masken wurden von SAM vollautomatisch annotiert und sind, wie durch menschliche Bewertungen und zahlreiche Experimente bestätigt, von hoher Qualität und Vielfalt. Die Bilder sind zur Visualisierung nach der Anzahl der Masken pro Bild gruppiert (es gibt im Durchschnitt ∼100 Masken pro Bild).

Link to this sectionHauptfunktionen des Segment Anything Model (SAM)#

  • Prompt-basierte Segmentierungsaufgabe: SAM wurde für eine prompt-basierte Segmentierungsaufgabe entwickelt, die es ermöglicht, gültige Segmentierungsmasken aus jedem gegebenen Prompt zu generieren, wie z. B. räumliche oder textuelle Hinweise, die ein Objekt identifizieren.
  • Fortschrittliche Architektur: Das Segment Anything Model verwendet einen leistungsstarken Bild-Encoder, einen Prompt-Encoder und einen leichtgewichtigen Masken-Decoder. Diese einzigartige Architektur ermöglicht flexibles Prompting, Maskenberechnung in Echtzeit und Mehrdeutigkeitserkennung bei Segmentierungsaufgaben.
  • Der SA-1B-Datensatz: Der vom Segment Anything-Projekt eingeführte SA-1B-Datensatz enthält über 1 Milliarde Masken auf 11 Millionen Bildern. Als bisher größter Segmentierungsdatensatz bietet er SAM eine vielfältige und groß angelegte Trainingsdatenquelle.
  • Zero-Shot-Leistung: SAM zeigt eine hervorragende Zero-Shot-Leistung bei verschiedenen Segmentierungsaufgaben, was es zu einem gebrauchsfertigen Werkzeug für vielfältige Anwendungen mit minimalem Bedarf an Prompt Engineering macht.

Für einen tieferen Einblick in das Segment Anything Model und den SA-1B-Datensatz besuche bitte das Segment Anything GitHub und schau dir das Forschungspapier Segment Anything an.

SAM auf der Ultralytics Plattform

SAM betreibt die intelligente Annotationsfunktion auf der Ultralytics Plattform und ermöglicht klickbasiertes intelligentes Maskieren für eine schnelle Datensatzbeschriftung. Siehe das Annotationshandbuch für Details.

Link to this sectionVerfügbare Modelle, unterstützte Aufgaben und Betriebsmodi#

Diese Tabelle zeigt die verfügbaren Modelle mit ihren spezifischen vortrainierten Gewichten, die von ihnen unterstützten Aufgaben und ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inference, Validation, Training und Export, gekennzeichnet durch ✅-Emojis für unterstützte Modi und ❌-Emojis für nicht unterstützte Modi.

ModelltypVortrainierte GewichteUnterstützte AufgabenInferenceValidationTrainingExportieren
SAM basesam_b.ptInstance Segmentation
SAM largesam_l.ptInstance Segmentation

Link to this sectionSo verwendest du SAM: Vielseitigkeit und Leistung bei der Bildsegmentierung#

Das Segment Anything Model kann für eine Vielzahl von Downstream-Aufgaben eingesetzt werden, die über seine Trainingsdaten hinausgehen. Dazu gehören Kantenerkennung, Objekterzeugungsvorschläge, Instance Segmentation und vorläufige Text-zu-Maske-Vorhersagen. Mit Prompt Engineering kann sich SAM schnell an neue Aufgaben und Datenverteilungen im Zero-Shot-Verfahren anpassen, was es zu einem vielseitigen und leistungsstarken Werkzeug für all deine Bildsegmentierungsanforderungen macht.

Link to this sectionSAM-Vorhersagebeispiel#

Segmentierung mit Prompts

Segmentiere Bilder mit gegebenen Prompts.

from ultralytics import SAM

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

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

# Run inference with bboxes prompt
results = model("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])

# 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

Segmentiere das gesamte Bild.

from ultralytics import SAM

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

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

# Run inference
model("path/to/image.jpg")
  • Die Logik hier ist, das gesamte Bild zu segmentieren, wenn du keine Prompts (bboxes/points/masks) übergibst.
SAMPredictor-Beispiel

Auf diese Weise kannst du das Bild einmal festlegen und Prompt-Inference mehrfach ausführen, ohne den Bild-Encoder mehrfach auszuführen.

import cv2

from ultralytics.models.sam import Predictor as SAMPredictor

# Create SAMPredictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)

# Set image
predictor.set_image("ultralytics/assets/zidane.jpg")  # set with image file
predictor.set_image(cv2.imread("ultralytics/assets/zidane.jpg"))  # set with np.ndarray
results = predictor(bboxes=[439, 437, 524, 709])

# Run inference with single point prompt
results = predictor(points=[900, 370], labels=[1])

# Run inference with multiple points prompt
results = predictor(points=[[400, 370], [900, 370]], labels=[1, 1])

# Run inference with negative points prompt
results = predictor(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

# Reset image
predictor.reset_image()

Segmentiere alles mit zusätzlichen Argumenten.

from ultralytics.models.sam import Predictor as SAMPredictor

# Create SAMPredictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)

# Segment with additional args
results = predictor(source="ultralytics/assets/zidane.jpg", crop_n_layers=1, points_stride=64)
Hinweis

Alle zurückgegebenen results in den obigen Beispielen sind Results-Objekte, die einen einfachen Zugriff auf vorhergesagte Masken und das Quellbild ermöglichen.

Link to this sectionSAM-Vergleich vs. YOLO#

Hier vergleichen wir das SAM-b-Modell von Meta mit Ultralytics-Segmentierungsmodellen, einschließlich YOLO26n-seg:

ModellGröße
(MB)
Parameter
(M)
Geschwindigkeit (CPU)
(ms/im)
Meta SAM-b37593.741703
MobileSAM40.710.123802
FastSAM-s mit YOLOv8 backbone23.911.858.0
Ultralytics YOLOv8n-seg7.1 (52.8x kleiner)3.4 (27.6x weniger)24.8 (1682x schneller)
Ultralytics YOLO11n-seg6.2 (60.5x kleiner)2.9 (32.3x weniger)24.3 (1716x schneller)
Ultralytics YOLO26n-seg6.7 (56.0x kleiner)2.7 (34.7x weniger)25.2 (1655x 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, YOLO11n-seg und YOLO26n-seg, deutlich kleiner, schneller und recheneffizienter.

SAM-Geschwindigkeiten wurden mit PyTorch gemessen, YOLO-Geschwindigkeiten mit ONNX Runtime. Tests wurden auf einem 2025 Apple M4 Air mit 16GB RAM unter Verwendung von torch==2.10.0, ultralytics==8.4.31 und onnxruntime==1.24.4 durchgeführt. Um diesen Test zu reproduzieren:

Beispiel
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM-b, MobileSAM
for file in ["sam_b.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)

Link to this sectionAuto-Annotation: Ein schneller Weg zu Segmentierungsdatensätzen#

Auto-Annotation ist eine Schlüsselfunktion von SAM, die es Benutzern ermöglicht, einen Segmentierungsdatensatz unter Verwendung eines vortrainierten Detektionsmodells zu erstellen. Diese Funktion ermöglicht eine schnelle und genaue Annotation einer großen Anzahl von Bildern, ohne dass zeitaufwendiges manuelles Beschriften erforderlich ist.

Link to this sectionGeneriere deinen Segmentierungsdatensatz mit einem Detektionsmodell#

Um deinen Datensatz mit dem Ultralytics-Framework automatisch zu annotieren, verwende die auto_annotate-Funktion wie unten gezeigt:

Beispiel
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")
ArgumentTypStandardBeschreibung
datastrerforderlichPfad zum Verzeichnis mit Zielbildern für Annotation oder Segmentierung.
det_modelstr'yolo26x.pt'YOLO-Detektionsmodellpfad für die anfängliche Objekterkennung.
sam_modelstr'sam_b.pt'SAM-Modellpfad für Segmentierung (unterstützt SAM, SAM 2, MobileSAM und SAM 3 Gewichte).
devicestr''Berechnungsgerät (z. B. 'cuda:0', 'cpu' oder '' für automatische Geräteerkennung).
conffloat0.25YOLO Konfidenzschwellenwert zur Filterung schwacher Detektionen.
ioufloat0.45IoU-Schwellenwert für Non-Maximum Suppression zum Filtern überlappender Boxen.
imgszint640Eingabegröße für das Skalieren von Bildern (muss ein Vielfaches von 32 sein).
max_detint300Maximale Anzahl an Detektionen pro Bild für Speichereffizienz.
classeslist[int]NoneListe der Klassenindizes zur Detektion (z. B. [0, 1] für Person & Fahrrad).
output_dirstrNoneSpeicherverzeichnis für Annotationen (Standard: Geschwisterverzeichnis <data>_auto_annotate_labels).

Die auto_annotate-Funktion nimmt den Pfad zu deinen Bildern entgegen, mit optionalen Argumenten zur Angabe der vortrainierten Detektions- und SAM-Segmentierungsmodelle, des Geräts zur Ausführung der Modelle und des Ausgabeverzeichnisses zum Speichern der annotierten Ergebnisse.

Die Auto-Annotation mit vortrainierten Modellen kann die Zeit und den Aufwand für die Erstellung hochwertiger Segmentierungsdatensätze drastisch reduzieren. Dieses Feature ist besonders vorteilhaft für Forscher und Entwickler, die mit großen Bildsammlungen arbeiten, da es ihnen ermöglicht, sich auf die Modellentwicklung und -evaluierung statt auf manuelle Annotationen zu konzentrieren.

Link to this sectionZitate und Danksagungen#

Wenn du SAM in deiner Forschungs- oder Entwicklungsarbeit nützlich findest, ziehe bitte in Erwägung, unser Paper zu zitieren:

Zitat
@misc{kirillov2023segment,
      title={Segment Anything},
      author={Alexander Kirillov and Eric Mintun and Nikhila Ravi and Hanzi Mao and Chloe Rolland and Laura Gustafson and Tete Xiao and Spencer Whitehead and Alexander C. Berg and Wan-Yen Lo and Piotr Dollár and Ross Girshick},
      year={2023},
      eprint={2304.02643},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Wir möchten Meta AI unseren Dank dafür aussprechen, diese wertvolle Ressource für die Computer Vision Community geschaffen und gepflegt zu haben.

Link to this sectionFAQ#

Link to this sectionWas ist das Segment Anything Model (SAM) von Ultralytics?#

Das Segment Anything Model (SAM) von Ultralytics ist ein revolutionäres Bildsegmentierungsmodell, das für prompt-basierte Segmentierungsaufgaben entwickelt wurde. Es nutzt eine fortschrittliche Architektur, bestehend aus Bild- und Prompt-Encodern kombiniert mit einem leichtgewichtigen Masken-Decoder, um hochwertige Segmentierungsmasken aus verschiedenen Prompts wie räumlichen oder textuellen Hinweisen zu generieren. Trainiert auf dem umfangreichen SA-1B Datensatz, zeichnet sich SAM durch exzellente Zero-Shot-Leistung aus und passt sich ohne vorheriges Wissen an neue Bildverteilungen und Aufgaben an.

Link to this sectionWie kann ich das Segment Anything Model (SAM) für die Bildsegmentierung verwenden?#

Du kannst das Segment Anything Model (SAM) für die Bildsegmentierung nutzen, indem du die Inferenz mit verschiedenen Prompts wie Bounding Boxes oder Punkten ausführst. Hier ist ein Beispiel mit Python:

from ultralytics import SAM

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

# Segment with bounding box prompt
model("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])

# Segment with points prompt
model("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

# Segment with multiple points prompt
model("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Segment with multiple points prompt per object
model("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Segment with negative points prompt.
model("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Alternativ kannst du die Inferenz mit SAM über das Command Line Interface (CLI) ausführen:

yolo predict model=sam_b.pt source=path/to/image.jpg

Für detailliertere Anweisungen zur Verwendung besuche den Segmentierungsabschnitt.

Link to this sectionWie schneiden SAM und YOLO Modelle im Vergleich ab?#

Im Vergleich zu YOLO Modellen sind SAM-Varianten wie SAM-b, MobileSAM und FastSAM-s typischerweise größer und langsamer, bieten jedoch einzigartige Zero-Shot-Segmentierungsfähigkeiten. Zum Beispiel ist YOLO26n-seg 56x kleiner und über 1650x schneller als Metas ursprüngliches SAM-b Modell auf der CPU. Dies macht YOLO Modelle ideal für Anwendungen, die schnelle, leichtgewichtige und recheneffiziente Segmentierung erfordern, während SAM Modelle bei flexiblen, prompt-basierten und Zero-Shot-Segmentierungsaufgaben glänzen.

Link to this sectionWie kann ich meinen Datensatz mit SAM auto-annotieren?#

Ultralytics SAM bietet eine Auto-Annotationsfunktion, die es ermöglicht, Segmentierungsdatensätze mithilfe eines vortrainierten Detektionsmodells zu generieren. Hier ist ein Beispiel in Python:

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")

Diese Funktion verwendet den Pfad zu deinen Bildern und optionale Argumente für vortrainierte Detektions- und SAM-Segmentierungsmodelle sowie Angaben zum Gerät und Ausgabeverzeichnis. Eine vollständige Anleitung findest du unter Auto-Annotation.

Link to this sectionWelche Datensätze werden zum Training des Segment Anything Model (SAM) verwendet?#

SAM wurde auf dem umfangreichen SA-1B Datensatz trainiert, der über 1 Milliarde Masken in 11 Millionen Bildern umfasst. SA-1B ist der bisher größte Segmentierungsdatensatz und bietet qualitativ hochwertige und vielfältige Trainingsdaten, die eine beeindruckende Zero-Shot-Leistung bei verschiedenen Segmentierungsaufgaben gewährleisten. Für weitere Details besuche den Datensatz-Abschnitt.

Kommentare