Ultralytics YOLO27:
Get Started

Objektzählung mit Ultralytics YOLO26#

Was ist Objektzählung?#

Open Object Counting In Colab

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#

LogistikAquakultur
Paketzählung auf einem Förderband mit Ultralytics YOLO26Fischzählung im Meer mit Ultralytics YOLO26
Paketzählung auf einem Förderband mit Ultralytics YOLO26Fischzä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.

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 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:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics-YOLO-Modelldatei.
show_inboolTrueSteuert, ob die Eingangsanzahl im Videostream angezeigt wird.
show_outboolTrueSteuert, ob die Ausgangsanzahl im Videostream angezeigt wird.
regionlist oder dictNonePunkte, 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_widthint2Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden.
verboseboolTrueAktiviert 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:

ArgumentTypStandardBeschreibung
trackerstr'tracktrack.yaml'Legt den zu verwendenden Verfolgungsalgorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen.
ioufloat0.7Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern.
classeslistNoneFiltert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneLegt 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.
imgszint or tuple640Zielbildgröß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_detint300Maximale 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.
quantizeint or strNoneInferenzgenauigkeit: 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:

ArgumentTypStandardBeschreibung
showboolFalseWenn 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_confboolTrueZeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist.
show_labelsboolTrueZeigt 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:

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

  • Ultralytics YOLO26 bietet mehrere Vorteile für die Objektzählung:

    1. Ressourcenoptimierung: Das Verfahren erleichtert ein effizientes Ressourcenmanagement durch präzise Zählungen und hilft, die Ressourcenzuweisung in Branchen wie der Bestandsverwaltung zu optimieren.
    2. 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.
    3. Fundierte Entscheidungsfindung: Das Verfahren liefert wertvolle Erkenntnisse für die Entscheidungsfindung und optimiert Prozesse in Bereichen wie dem Einzelhandel, dem Verkehrsmanagement und vielen weiteren.
    4. 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 Klassen 0 und 2 gezä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:

    1. 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.
    2. 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.
    3. 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.
    4. 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.

Kommentare