YOLO Vision 2026:

Objektzählung in Regionen mit Ultralytics YOLO26#

Die RegionCounter solution in Ultralytics YOLO26 verfolgt Objekte über Videoframes hinweg und zählt in jedem Frame diejenigen Objekte, deren BBox-Zentrum innerhalb jeder von dir definierten Region liegt. Jede Region wird mit ihrem eigenen Live-Zähler auf dem Frame eingezeichnet, sodass du mehrere Zonen wie Ladenbzw., Straßenbahnen oder Produktionsbereiche mit einem einzigen Python-Aufruf oder CLI-Befehl überwachen kannst.



Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions

Warum Regionszählung verwenden?#

  • Mehrere Zonen in einem Durchgang: Übergebe ein Wörterbuch benannter Polygone, und jede Zone erhält einen unabhängigen Zähler, der auf den Frame gezeichnet wird. So deckt ein Videostream alle Bereiche ab, die dich interessieren.
  • Integriertes Tracking: Die Lösung führt YOLO26-Erkennung und object tracking intern aus, sodass keine separate Tracking-Pipeline eingerichtet werden muss.
  • Programmgesteuert auslesbare Zähler: Jeder verarbeitete Frame gibt ein Ergebnisobjekt mit einem Wörterbuch der Regionszähler zurück, das für Dashboards, Warnmeldungen oder Protokollierungen bereitsteht.

Praxisanwendungen#

EinzelhandelMarktstraßen
Ultralytics YOLO zählt Personen innerhalb gezeichneter Polygon-Regionen in einem EinzelhandelsgeschäftUltralytics YOLO Regionszähler überlagert auf einer belebten Marktstraße
Ultralytics YOLO Personenzählung in RegionenUltralytics YOLO Crowd-Zählung in Regionen

So zählst du Objekte in Regionen mit Ultralytics YOLO#

Führe die RegionCounter-Lösung für eine Videoquelle über die CLI oder Python aus. Eine Region kann eine Liste von Punkten (eine einzelne Zone) oder ein Wörterbuch sein, das Zonennamen Punktlisten zuordnet. Das folgende Python-Beispiel zählt Objekte in zwei benannten Regionen und schreibt die verarbeiteten Frames in eine Ausgabevideodatei:

Regionszählung mit Ultralytics YOLO
# Run a region counting example
yolo solutions region show=True

# Pass a source video
yolo solutions region source="path/to/video.mp4"

# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

RegionCounter()-Argumente#

Hier ist eine Tabelle mit den RegionCounter-Argumenten:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
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.

Die RegionCounter-Lösung ermöglicht die Verwendung von Objekt-Tracking-Parametern:

ArgumentTypStandardBeschreibung
trackerstr'tracktrack.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Legt 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.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
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 folgende Visualisierungseinstellungen 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.
line_widthint or NoneNoneGibt die Linienstärke von Bounding Boxes an. Falls None, wird die Linienstärke automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassungsmöglichkeiten für mehr Klarheit.
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.

So funktioniert die Regionszählung#

Die RegionCounter solution verwandelt jede von dir übergebene Region in ein Polygon mit mindestens drei Punkten pro Region. Eine einfache Liste von Punkten wird zu einer einzigen Zone namens Region#01, während ein Wörterbuch deine eigenen Zonennamen beibehält; jede Zone wird in ihrer eigenen Farbe aus der Ultralytics-Palette gezeichnet. Jeder Frame wird dann in drei Schritten verarbeitet:

  1. YOLO26-Tracking erkennt und verfolgt jedes Objekt im Bild
  2. Für jedes verfolgte Objekt berechnet die Lösung den BBox-Mittelpunkt und prüft, welche Regionspolygone ihn enthalten
  3. Der Zähler jeder Region wird in deren Mitte gezeichnet und die Zähler werden vor dem nächsten Frame zurückgesetzt

Da die Zählungen in jedem Frame neu beginnen, ist die auf einer Region angezeigte Zahl deren aktuelle Belegung – das heißt, wie viele Objekte sich gerade darin befinden, und keine fortlaufende Gesamtsumme. Um Objekte, die eine Grenze überqueren, kumulativ zu zählen, verwende stattdessen die ObjectCounter solution.

Jeder Aufruf gibt zudem ein Ergebnisobjekt zurück, dessen plot_im-Attribut den annotierten Frame enthält und dessen region_counts-Wörterbuch Regionennamen auf deren Zählungen abbildet, sodass du die Zahlen in deine eigene Anwendungslogik einspeisen kannst.

Fazit#

Die Ultralytics YOLO26 RegionCounter solution überwacht Live-Objektzählungen in beliebig vielen benannten Zonen mit wenigen Zeilen Code. Um noch einen Schritt weiter zu gehen, zähle Grenzübertritte mit object counting, verfolge Objekte innerhalb einer einzelnen Zone mit TrackZone oder erkunde die anderen Ultralytics Solutions.

FAQ#

  • Ultralytics YOLO26 zählt Objekte in Regionen, indem jedes Objekt im Frame verfolgt und überprüft wird, ob sein BBox-Zentrum innerhalb jedes benutzerdefinierten Polygons liegt. Die auf einer Region angezeigte Anzahl ist die aktuelle Belegung für diesen Frame, keine kumulative Summe. Konfigurationsoptionen sind im Abschnitt RegionCounter() Arguments aufgeführt.

  • Übergebe das Argument region als Wörterbuch, das Zonennamen auf Punktlisten abbildet, wie im main example:

    from ultralytics import solutions
    
    region_points = {
        "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
        "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
    }
    regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)

    Jede benannte Zone wird in ihrer eigenen Farbe mit einem unabhängigen Zähler gezeichnet.

  • Das von jedem regioncounter(im0)-Aufruf zurückgegebene Objekt enthält ein region_counts-Wörterbuch, das Regionennamen auf deren Zählungen abbildet, zusammen mit plot_im (dem annotierten Frame) und total_tracks (der Anzahl der verfolgten Objekte). Gib das Ergebnisobjekt aus, um alle verfügbaren Felder zu inspizieren.

  • Ja. Übergebe das Argument classes mit den zu behaltenden Klassenindizes, zum Beispiel classes=[0], um nur Personen mit einem COCO-vorabtrainierten Modell zu zählen. Die vollständige Liste der trackingbezogenen Argumente befindet sich im Abschnitt RegionCounter() Arguments.

  • RegionCounter zeigt, wie viele Objekte sich auf dem aktuellen Frame in jeder polygonalen Zone befinden, während ObjectCounter Objekte kumulativ beim Überqueren einer Linie oder einer Regionsgrenze zählt und Ein- und Ausstiegssummen verfolgt. Verwende RegionCounter für die Live-Belegung einer oder mehrerer Zonen und ObjectCounter für die Ein- und Ausgangszählung; linienförmige Regionen werden nur von ObjectCounter unterstützt.

Kommentare