Objektzählung mit Ultralytics YOLO26#
Was ist Objektzählung?#
Die Objektzählung mit Ultralytics YOLO26 umfasst die präzise Erkennung und Zählung bestimmter Objekte in Videos und Kamerastreams. YOLO26 eignet sich hervorragend für Echtzeitanwendungen und ermöglicht dank modernster Algorithmen und Deep Learning eine effiziente und präzise Objektzählung in verschiedenen Einsatzbereichen wie der Menschenmengenauswertung und Überwachung.
Ansehen: So zählst du Objekte in Echtzeit mit Ultralytics YOLO26 🚀
Vorteile der Objektzählung#
- Ressourcenoptimierung: Die Objektzählung erleichtert ein effizientes Ressourcenmanagement durch präzise Zählungen und optimiert die Ressourcenzuweisung in Anwendungen wie der Bestandsverwaltung.
- Erhöhte Sicherheit: Die Objektzählung verbessert Sicherheit und Überwachung, indem sie Objekte präzise verfolgt und zählt und so eine proaktive Bedrohungserkennung unterstützt.
- Fundierte Entscheidungsfindung: Die Objektzählung liefert wertvolle Erkenntnisse für die Entscheidungsfindung und optimiert Prozesse im Einzelhandel, im Verkehrsmanagement und in vielen weiteren Bereichen.
Anwendungen in der Praxis#
| Logistik | Aquakultur |
|---|---|
![]() | ![]() |
| Paketzählung auf einem Förderband mit Ultralytics YOLO26 | Fischzählung im Meer mit Ultralytics YOLO26 |
Objekte mit YOLO26 zählen#
Lege eine Zähl-region fest — zwei Punkte für eine Linie oder drei oder mehr für ein Polygon — und übergib sie an die Lösung ObjectCounter. Der Zähler verfolgt jedes Objekt über die Frames hinweg und zählt Ein- und Austritte, wenn verfolgte Objekte die Linie überqueren oder den Bereich durchlaufen. Anschließend gibt er einen annotierten 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 mindestens drei Punkten. Lege die Koordinaten in der Reihenfolge fest, in der sie verbunden werden sollen, damit der Zähler genau weiß, wo Ein- und Austritte erfolgen.
Argumente für ObjectCounter#
Hier ist eine Tabelle mit den Argumenten für ObjectCounter:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics-YOLO-Modelldatei. |
show_in | bool | True | Steuert, ob die Eingangsanzahl im Videostream angezeigt wird. |
show_out | bool | True | Steuert, ob die Ausgangsanzahl im Videostream angezeigt wird. |
region | list oder dict | None | Punkte, die den Interessenbereich festlegen: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das bei mehreren Bereichen deren Namen den jeweiligen Punktelisten zuordnet (nur RegionCounter). Bei None verwenden Lösungen, die einen Bereich benötigen, einen vordefinierten Standardbereich. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden. |
verbose | bool | True | Aktiviert das Protokoll der Lösung für jedes Bild, das Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit enthält. Der Tracking-Aufruf selbst gibt grundsätzlich keine Meldungen aus. |
Die Lösung ObjectCounter unterstützt mehrere Argumente für track:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Legt den zu verwendenden Verfolgungsalgorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen. |
iou | float | 0.7 | Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern. |
classes | list | None | Filtert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Legt das Gerät für die Inferenz fest (z. B. cpu, cuda:0 oder 0). So kannst du für die Modellausführung zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten wählen. |
imgsz | int or tuple | 640 | Zielbildgröße für die Inferenz: eine Ganzzahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formen werden an den Modellschritt angepasst. |
max_det | int | 300 | Maximale Anzahl der Erkennungen, die pro Bild vor der Verfolgung beibehalten werden. Dadurch wird die Anzahl der Objekte begrenzt, die eine Lösung in dichten Szenen verarbeitet. |
quantize | int or str | None | Inferenzgenauigkeit: 16 (FP16) oder 32/nicht festgelegt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate verwenden die Genauigkeit, die durch ihr Artefakt und ihre Laufzeitumgebung festgelegt wird. Ersetzt das veraltete Flag half. |
Zusätzlich werden die folgenden Visualisierungsargumente unterstützt:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True aktiviert ist, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder beim Testen. |
show_conf | bool | True | Zeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist. |
show_labels | bool | True | Zeigt für jede Erkennung eine Bezeichnung in der visuellen Ausgabe an. So lassen sich erkannte Objekte sofort erkennen. |
Häufig gestellte Fragen#
Um Objekte in einem Video mit Ultralytics YOLO26 zu zählen, gehe wie folgt vor:
- Importiere die erforderlichen Bibliotheken (
cv2,ultralytics). - Definiere den Zählbereich (z. B. ein Polygon, eine Linie usw.).
- Richte die Videoaufnahme ein und initialisiere den Objektzähler.
- Verarbeite jedes Frame, um Objekte zu verfolgen und sie innerhalb des festgelegten Bereichs zu zählen.
Hier 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")Weitere Konfigurationsmöglichkeiten und Optionen findest du in der RegionCounter-Lösung, mit der du Objekte gleichzeitig in mehreren Bereichen zählen kannst.
- Importiere die erforderlichen Bibliotheken (
Ultralytics YOLO26 bietet mehrere Vorteile für die Objektzählung:
- Ressourcenoptimierung: Das Verfahren erleichtert ein effizientes Ressourcenmanagement durch präzise Zählungen und hilft, die Ressourcenzuweisung in Branchen wie der Bestandsverwaltung zu optimieren.
- Erhöhte Sicherheit: Das Verfahren verbessert Sicherheit und Überwachung, indem es Objekte präzise verfolgt und zählt. Dadurch unterstützt es die proaktive Bedrohungserkennung und Sicherheitssysteme.
- Fundierte Entscheidungsfindung: Das Verfahren liefert wertvolle Erkenntnisse für die Entscheidungsfindung und optimiert Prozesse in Bereichen wie dem Einzelhandel, dem Verkehrsmanagement und vielen weiteren.
- Echtzeitverarbeitung: Die Architektur von YOLO26 ermöglicht Echtzeit-Inferenz und eignet sich daher für Live-Videostreams und zeitkritische Anwendungen.
Implementierungsbeispiele und praktische Anwendungen findest du in der TrackZone-Lösung, mit der du Objekte in bestimmten Zonen verfolgen kannst.
Um mit Ultralytics YOLO26 bestimmte Objektklassen zu zählen, musst du beim Verfolgen die gewünschten Klassen angeben. Hier 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 Klassen0und2gezählt werden (z. B. Personen und Autos im COCO-Datensatz). Weitere Informationen zu Klassenindizes findest du in der Dokumentation zum COCO-Datensatz.Ultralytics YOLO26 bietet gegenüber anderen Modellen zur Objekterkennung wie Faster R-CNN, SSD und früheren YOLO-Versionen mehrere Vorteile:
- Geschwindigkeit und Effizienz: YOLO26 ermöglicht die Verarbeitung in Echtzeit und eignet sich daher ideal für Anwendungen, die eine schnelle Inferenz erfordern, etwa Überwachung und autonomes Fahren.
- Genauigkeit: Das Modell bietet eine Objekterkennung und -verfolgung auf dem neuesten Stand der Technik. Dadurch werden falsch positive Ergebnisse reduziert und die Zuverlässigkeit des Gesamtsystems verbessert.
- Einfache Integration: YOLO26 lässt sich nahtlos in verschiedene Plattformen und Geräte integrieren, darunter Mobilgeräte und Edge-Geräte. Das ist für moderne KI-Anwendungen entscheidend.
- Flexibilität: Unterstützt Aufgaben zur Objekterkennung und Segmentierung, ergänzt durch den Track-Modus, sowie konfigurierbare Modelle für spezifische Anforderungen.
Einen genaueren Einblick in Funktionen und Leistungsvergleiche bietet die YOLO26-Dokumentation von Ultralytics.
Ja, Ultralytics YOLO26 eignet sich dank Echtzeit-Erkennung, Skalierbarkeit und flexibler Integration hervorragend für anspruchsvolle Anwendungen wie die Menschenmengenauswertung und das Verkehrsmanagement. Die erweiterten Funktionen ermöglichen eine präzise Objektverfolgung, -zählung und -klassifizierung in dynamischen Umgebungen. Beispiele für Anwendungsfälle:
- Auswertung von Menschenansammlungen: Überwache und steuere größere Menschenansammlungen, um die Sicherheit zu gewährleisten und den Personenfluss mithilfe der bereichsbasierten Zählung zu optimieren.
- Verkehrsmanagement: Verfolge und zähle Fahrzeuge, analysiere Verkehrsmuster und steuere Staus in Echtzeit mithilfe der Geschwindigkeitsschätzung.
- Einzelhandelsanalysen: Analysiere Bewegungsmuster von Kunden und deren Interaktion mit Produkten, um die Gestaltung von Geschäften zu optimieren und das Einkaufserlebnis zu verbessern.
- Industrielle Automatisierung: Zähle Produkte auf Förderbändern und überwache Produktionslinien, um die Qualitätskontrolle zu unterstützen und die Effizienz zu steigern.
Für speziellere Anwendungen findest du unter Ultralytics Solutions eine umfassende Sammlung von Werkzeugen für reale Herausforderungen der Computer Vision.

