Objektzählung mit Ultralytics YOLO26
Was ist Objekterkennung?
Die Objektzählung mit Ultralytics YOLO26 umfasst die genaue Identifizierung und Zählung spezifischer Objekte in Videos und Kamerastreams. YOLO26 zeichnet sich in Echtzeitanwendungen aus und bietet dank seiner hochmodernen Algorithmen und Deep-Learning-Fähigkeiten eine effiziente und präzise Objektzählung für verschiedene Szenarien wie Crowd-Analyse und Überwachung.
Ansehen: Wie man Echtzeit-Objektzählung mit Ultralytics YOLO26 durchführt 🍏
Vorteile der Objekterkennung
- Ressourcenoptimierung: Die Objektzählung ermöglicht ein effizientes Ressourcenmanagement durch die Bereitstellung genauer Zählungen und optimiert die Ressourcenzuweisung in Anwendungen wie dem Bestandsmanagement.
- Erhöhte Sicherheit: Die Objektzählung verbessert die Sicherheit und Überwachung durch die genaue Verfolgung und Zählung von Entitäten und unterstützt so die proaktive Bedrohungserkennung.
- Fundierte Entscheidungsfindung: Die Objektzählung bietet wertvolle Einblicke für die Entscheidungsfindung und optimiert Prozesse im Einzelhandel, im Verkehrsmanagement und in verschiedenen anderen Bereichen.
Anwendungen in der realen Welt
| Logistik | Aquakultur |
|---|---|
![]() | ![]() |
| Zählung von Paketen auf Förderbändern mit Ultralytics YOLO26 | Fischzählung im Meer mit Ultralytics YOLO26 |
Objektzählung mit Ultralytics YOLO
# 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)]"
Die region Argument akzeptiert entweder zwei Punkte (für eine Linie) oder ein Polygon mit drei oder mehr Punkten. Definieren Sie die Koordinaten in der Reihenfolge, in der sie verbunden werden sollen, damit der Zähler genau weiß, wo Ein- und Ausgänge stattfinden.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# region_points = [(20, 400), (1080, 400)] # line counting
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] # rectangular region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)] # polygon region
# Video writer
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("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize object counter object
counter = solutions.ObjectCounter(
show=True, # display the output
region=region_points, # pass region points
model="yolo26n.pt", # model="yolo26n-obb.pt" for object counting with OBB model.
# classes=[0, 2], # count specific classes, e.g., person and car with the COCO pretrained model.
# tracker="botsort.yaml", # choose trackers, e.g., "bytetrack.yaml"
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
ObjectCounter Argumente
Hier ist eine Tabelle mit den ObjectCounter Argumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO Modelldatei. |
show_in | bool | True | Flag zur Steuerung, ob die In-Zählungen im Videostream angezeigt werden sollen. |
show_out | bool | True | Flag zur Steuerung, ob die Out-Zählungen im Videostream angezeigt werden sollen. |
region | list | '[(20, 400), (1260, 400)]' | Liste der Punkte, die den Zählbereich definieren. |
Die ObjectCounter Lösung ermöglicht die Verwendung von mehreren track Argumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml. |
conf | float | 0.1 | Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern. |
iou | float | 0.7 | Legt den Intersection over Union (IoU)-Schwellenwert für das Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen. |
verbose | bool | True | Steuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen. |
Zusätzlich werden die unten aufgeführten Visualisierungsargumente unterstützt:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens. |
line_width | int or None | None | Gibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
FAQ
Wie zähle ich Objekte in einem Video mit Ultralytics YOLO26?
Um Objekte in einem Video mit Ultralytics YOLO26 zu zählen, können Sie diese Schritte befolgen:
- Importieren Sie die notwendigen Bibliotheken (
cv2,ultralytics), oder Auto-Modus mit angegebener Auslastungsfraktion ( - Definieren Sie den Zählbereich (z. B. ein Polygon, eine Linie usw.).
- Richten Sie die Videoerfassung ein und initialisieren Sie den Objektzähler.
- Verarbeiten Sie jeden Frame, um Objekte zu tracken und sie innerhalb des definierten Bereichs zu zählen.
Hier ist ein einfaches Beispiel zum Zählen in einer Region:
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 erweiterte Konfigurationen und Optionen sehen Sie sich die RegionCounter-Lösung an, um Objekte in mehreren Regionen gleichzeitig zu zählen.
Welche Vorteile bietet die Verwendung von Ultralytics YOLO26 für die Objektzählung?
Der Einsatz von Ultralytics YOLO26 zur Objektzählung bietet mehrere Vorteile:
- Ressourcenoptimierung: Sie ermöglicht ein effizientes Ressourcenmanagement durch die Bereitstellung genauer Zählungen und hilft so, die Ressourcenzuweisung in Branchen wie dem Bestandsmanagement zu optimieren.
- Erhöhte Sicherheit: Sie verbessert die Sicherheit und Überwachung durch die genaue Verfolgung und Zählung von Entitäten und unterstützt so die proaktive Erkennung von Bedrohungen und Sicherheitssysteme.
- Fundierte Entscheidungsfindung: Es bietet wertvolle Einblicke für die Entscheidungsfindung und optimiert Prozesse in Bereichen wie Einzelhandel, Verkehrsmanagement und mehr.
- Echtzeitverarbeitung: Die Architektur von YOLO26 ermöglicht Echtzeit-Inferenz, wodurch es sich für Live-Videostreams und zeitkritische Anwendungen eignet.
Für Implementierungsbeispiele und praktische Anwendungen erkunden Sie die TrackZone-Lösung zur Verfolgung von Objekten in bestimmten Zonen.
Wie kann ich spezifische Objektklassen mit Ultralytics YOLO26 zählen?
Um bestimmte Objektklassen mit Ultralytics YOLO26 zu zählen, müssen Sie die Klassen angeben, an denen Sie während der tracking-Phase interessiert sind. Nachfolgend finden Sie 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 classes_to_count=[0, 2] bedeutet, dass es Objekte der Klasse zählt 0 und 2 (z. B. Person und Auto im COCO-Datensatz). Weitere Informationen zu Klassenindizes finden Sie im COCO-Datensatz-Dokumentation.
Warum sollte ich YOLO26 gegenüber anderen Objekterkennungs-Modellen für Echtzeitanwendungen verwenden?
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-Verarbeitungsfähigkeiten, wodurch es ideal für Anwendungen ist, die eine Hochgeschwindigkeits-Inferenz erfordern, wie Überwachung und autonomes Fahren.
- Genauigkeit: Es bietet modernste Genauigkeit für Objekterkennungs- und Tracking-Aufgaben, wodurch die Anzahl falscher Positiver reduziert und die Gesamtzuverlässigkeit des Systems verbessert wird.
- Einfache Integration: YOLO26 bietet eine nahtlose Integration mit verschiedenen Plattformen und Geräten, einschließlich mobiler und Edge-Geräte, was für moderne KI-Anwendungen entscheidend ist.
- Flexibilität: Unterstützt verschiedene Aufgaben wie Objekterkennung, Segmentierung und Tracking mit konfigurierbaren Modellen, um spezifische Anwendungsfallanforderungen zu erfüllen.
Sehen Sie sich die Ultralytics YOLO26-Dokumentation an, um einen tieferen Einblick in seine Funktionen und Leistungsvergleiche zu erhalten.
Kann ich YOLO26 für fortgeschrittene Anwendungen wie Crowd-Analyse und Verkehrsmanagement verwenden?
Ja, Ultralytics YOLO26 ist aufgrund seiner Echtzeit-detect-Fähigkeiten, Skalierbarkeit und Integrationsflexibilität perfekt für fortgeschrittene Anwendungen wie Menschenmengenanalyse und Verkehrsmanagement geeignet. Seine erweiterten Funktionen ermöglichen eine hochpräzise Objekt-track, -zählung und -klassifizierung in dynamischen Umgebungen. Beispielanwendungsfälle sind:
- Crowd-Analyse: Überwachen und verwalten Sie große Versammlungen, um die Sicherheit zu gewährleisten und den Crowd-Flow mit regionsbasierter Zählung zu optimieren.
- Verkehrsmanagement: Verfolgen und Zählen von Fahrzeugen, Analysieren von Verkehrsmustern und Verwalten von Staus in Echtzeit mit Geschwindigkeitserkennung.
- Einzelhandelsanalytik: Analysieren Sie die Bewegungsmuster der Kunden und die Produktinteraktionen, um die Ladengestaltung zu optimieren und das Kundenerlebnis zu verbessern.
- Industrielle Automatisierung: Produkte auf Förderbändern zählen und Produktionslinien auf Qualitätskontrolle und Effizienzverbesserungen überwachen.
Für speziellere Anwendungen erkunden Sie die Ultralytics Lösungen, eine umfassende Sammlung von Tools, die für reale Computer-Vision-Herausforderungen entwickelt wurden.

