YOLO Vision 2026:

Objektzählung mit Ultralytics YOLO26#

Was ist Objektzählung?#

Objektzählung in Colab öffnen

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#

LogistikAquakultur
Conveyor Belt Packets Counting Using Ultralytics YOLO26Fish Counting in Sea using Ultralytics YOLO26
Paketzählung auf Förderband mit Ultralytics YOLO26Fischzä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.

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)]"

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:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
show_inboolTrueFlag zur Steuerung, ob die 'in'-Zähler im Videostream angezeigt werden sollen.
show_outboolTrueFlag zur Steuerung, ob die 'out'-Zähler im Videostream angezeigt werden sollen.
regionlist oder dictNonePunkte, 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_widthint2Linienstärke für die Boxen, Keypoints und Zählungen, die die Lösung zeichnet.
verboseboolTrueAktiviert 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:

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt 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.
ioufloat0.7Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneGibt 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:

ArgumentTypStandardBeschreibung
showboolFalseFalls 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_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt 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:

    1. Importiere die erforderlichen Bibliotheken (cv2, ultralytics).
    2. Definiere den Zählbereich (z. B. ein Polygon, eine Linie etc.).
    3. Richte die Videoaufnahme ein und initialisiere den Objektzähler.
    4. 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.

  • Der Einsatz von Ultralytics YOLO26 zur Objektzählung bietet mehrere Vorteile:

    1. 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.
    2. 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.
    3. Fundierte Entscheidungsfindung: Es liefert wertvolle Einblicke für Entscheidungsprozesse und optimiert Abläufe in Bereichen wie Einzelhandel, Verkehrssteuerung und mehr.
    4. 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 Klassen 0 und 2 (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:

    1. Geschwindigkeit und Effizienz: YOLO26 bietet Echtzeit-Verarbeitungsfunktionen und ist damit ideal für Anwendungen, die eine Hochgeschwindigkeitsinferenz erfordern, wie Überwachung und autonomes Fahren.
    2. Accuracy: Sie bietet eine erstklassige Erkennungs- und Tracking-Genauigkeit, reduziert Fehlalarme und verbessert die allgemeine Systemzuverlässigkeit.
    3. 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.
    4. 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.

Kommentare