Objektzählung mit Ultralytics YOLO26#
Was ist Objektzählung?#
Objektzählung mit Ultralytics YOLO26 umfasst die präzise Identifizierung und Zählung bestimmter Objekte in Videos und Kamerastreaming. YOLO26 zeichnet sich durch Echtzeitanwendungen aus und bietet dank seiner hochmodernen Algorithmen und Deep Learning-Funktionen eine effiziente und präzise Objektzählung für verschiedene Szenarien wie Menschenmengenanalyse und Überwachung.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
Vorteile der Objektzählung#
- Ressourcenoptimierung: Die Objektzählung ermöglicht ein effizientes Ressourcenmanagement durch genaue Zählungen und optimiert die Ressourcenzuweisung in Anwendungen wie der Bestandsverwaltung.
- Erhöhte Sicherheit: Die Objektzählung verbessert die Sicherheit und Überwachung durch präzises Verfolgen und Zählen von Entitäten und unterstützt so eine proaktive Bedrohungserkennung.
- Fundierte Entscheidungsfindung: Die Objektzählung bietet wertvolle Einblicke für die Entscheidungsfindung und optimiert Prozesse im Einzelhandel, im Verkehrsmanagement und in zahlreichen anderen Bereichen.
Praxisanwendungen#
| Logistik | Aquakultur |
|---|---|
![]() | ![]() |
| Paketzählung auf Förderband mit Ultralytics YOLO26 | Fischzählung im Meer mit Ultralytics YOLO26 |
Objekte mit YOLO26 zählen#
Definiere ein Zählungs-region — zwei Punkte für eine Linie oder drei oder mehr für ein Polygon — und übergib es an die ObjectCounter-Lösung. Der Zähler verfolgt jedes Objekt über Frames hinweg und erfasst EIN-/AUS-Zählungen, wenn verfolgte Objekte die Linie kreuzen oder den Bereich passieren, und gibt einen kommentierten Frame zurück, den du in ein Ausgabevideo schreiben kannst.
# Run a counting example
yolo solutions count show=True
# Pass a source video
yolo solutions count source="path/to/video.mp4"
# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"Das Argument region akzeptiert entweder zwei Punkte (für eine Linie) oder ein Polygon mit drei oder mehr Punkten. Definiere die Koordinaten in der Reihenfolge, in der sie verbunden werden sollen, damit der Zähler genau weiß, wo Ein- und Ausgänge stattfinden.
ObjectCounter-Argumente#
Hier ist eine Tabelle mit den ObjectCounter-Argumenten:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO-Modelldatei. |
show_in | bool | True | Flag zur Steuerung, ob die 'in'-Zähler im Videostream angezeigt werden sollen. |
show_out | bool | True | Flag zur Steuerung, ob die 'out'-Zähler im Videostream angezeigt werden sollen. |
region | list oder dict | None | Punkte, die die Region von Interesse definieren – entweder eine Liste von (x, y)-Tupeln oder ein Dictionary, das Regionsnamen auf Punktlisten für mehrere Regionen abbildet (nur RegionCounter). Wenn None, greifen Lösungen, die eine Region erfordern, auf einen vordefinierten Standardwert zurück. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählungen, die die Lösung zeichnet. |
verbose | bool | True | Aktiviert das pro-Frame-Protokoll der Lösung für Eingabeform, Klassenzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst verläuft immer im Hintergrund. |
Die ObjectCounter-Lösung ermöglicht die Verwendung mehrerer track-Argumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Legt den Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen. |
iou | float | 0.7 | Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung. |
Zusätzlich werden die unten aufgeführten Visualisierungsargumente unterstützt:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Falls True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
FAQ#
Um Objekte in einem Video mit Ultralytics YOLO26 zu zählen, kannst du folgende Schritte ausführen:
- Importiere die erforderlichen Bibliotheken (
cv2,ultralytics). - Definiere den Zählbereich (z. B. ein Polygon, eine Linie etc.).
- Richte die Videoaufnahme ein und initialisiere den Objektzähler.
- Verarbeite jeden Frame, um Objekte zu verfolgen und sie innerhalb des definierten Bereichs zu zählen.
Hier ist ein einfaches Beispiel für die Zählung in einem Bereich:
import cv2 from ultralytics import solutions def count_objects_in_region(video_path, output_video_path, model_path): """Count objects in a specific region within a video.""" cap = cv2.VideoCapture(video_path) assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = counter(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows() count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")Für fortgeschrittene Konfigurationen und Optionen schaue dir die RegionCounter-Lösung zum gleichzeitigen Zählen von Objekten in mehreren Regionen an.
- Importiere die erforderlichen Bibliotheken (
Der Einsatz von Ultralytics YOLO26 zur Objektzählung bietet mehrere Vorteile:
- Ressourcenoptimierung: Sie ermöglicht ein effizientes Ressourcenmanagement durch genaue Zählungen und trägt dazu bei, die Ressourcenzuweisung in Branchen wie der Bestandsverwaltung zu optimieren.
- Erhöhte Sicherheit: Sie verbessert die Sicherheit und Überwachung durch präzises Verfolgen und Zählen von Entitäten und unterstützt eine proaktive Bedrohungserkennung und Sicherheitssysteme.
- Fundierte Entscheidungsfindung: Es liefert wertvolle Einblicke für Entscheidungsprozesse und optimiert Abläufe in Bereichen wie Einzelhandel, Verkehrssteuerung und mehr.
- Echtzeitverarbeitung: Die Architektur von YOLO26 ermöglicht Echtzeit-Inferenz, wodurch sie sich für Live-Videostreams und zeitkritische Anwendungen eignet.
Erforsche für Implementierungsbeispiele und praktische Anwendungen die TrackZone-Lösung zur Verfolgung von Objekten in bestimmten Zonen.
Um spezifische Objektklassen mit Ultralytics YOLO26 zu zählen, musst du während der Verfolgungsphase die gewünschten Klassen angeben. Nachfolgend findest du ein Python-Beispiel:
import cv2 from ultralytics import solutions def count_specific_classes(video_path, output_video_path, model_path, classes_to_count): """Count specific classes of objects in a video.""" cap = cv2.VideoCapture(video_path) assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) line_points = [(20, 400), (1080, 400)] counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = counter(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows() count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])In diesem Beispiel bedeutet
classes_to_count=[0, 2], dass Objekte der Klassen0und2(z. B. Person und Auto im COCO-Datensatz) gezählt werden. Weitere Informationen zu Klassenindizes findest du in der COCO-Datensatz-Dokumentation.Ultralytics YOLO26 bietet mehrere Vorteile gegenüber anderen Objekterkennungsmodellen wie Faster R-CNN, SSD und früheren YOLO-Versionen:
- Geschwindigkeit und Effizienz: YOLO26 bietet Echtzeit-Verarbeitungsfunktionen und ist damit ideal für Anwendungen, die eine Hochgeschwindigkeitsinferenz erfordern, wie Überwachung und autonomes Fahren.
- Accuracy: Sie bietet eine erstklassige Erkennungs- und Tracking-Genauigkeit, reduziert Fehlalarme und verbessert die allgemeine Systemzuverlässigkeit.
- Einfache Integration: YOLO26 bietet eine nahtlose Integration mit verschiedenen Plattformen und Geräten, einschließlich Mobil- und Edge-Geräten, was für moderne KI-Anwendungen von entscheidender Bedeutung ist.
- Flexibilität: Unterstützt detection- und segmentation-Aufgaben mit einem aufgesetzten track mode sowie konfigurierbare Modelle, die spezifische Anforderungen an den Anwendungsfall erfüllen.
Sieh dir die Ultralytics YOLO26-Dokumentation an, um tiefer in seine Funktionen und Leistungsvergleiche einzutauchen.
Ja, Ultralytics YOLO26 eignet sich aufgrund seiner Echtzeit-Erkennungsfunktionen, Skalierbarkeit und Integrationsflexibilität perfekt für fortgeschrittene Anwendungen wie Crowd-Analyse und Verkehrssteuerung. Seine fortschrittlichen Funktionen ermöglichen eine hochpräzise Objektverfolgung, Zählung und Klassifizierung in dynamischen Umgebungen. Beispiel-Anwendungsfälle sind:
- Mengenanalyse: Überwache und verwalte große Ansammlungen, sorge für Sicherheit und optimiere den Personenfluss mit regionsbasierter Zählung.
- Verkehrsmanagement: Verfolge und zähle Fahrzeuge, analysiere Verkehrsmuster und verwalte Staus in Echtzeit mit Funktionen zur Geschwindigkeitsschätzung.
- Einzelhandelsanalytik: Analysiere Kundenbewegungsmuster und Produktinteraktionen, um Ladenlayouts zu optimieren und das Kundenerlebnis zu verbessern.
- Industrielle Automatisierung: Zähle Produkte auf Förderbändern und überwache Produktionslinien für Qualitätskontrolle und Effizienzsteigerungen.
Entdecke für spezialisiertere Anwendungen die Ultralytics Solutions für eine umfassende Reihe von Tools, die für reale Computer-Vision-Herausforderungen entwickelt wurden.

