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#
| Einzelhandel | Marktstraßen |
|---|---|
![]() | ![]() |
| Ultralytics YOLO Personenzählung in Regionen | Ultralytics 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:
# 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:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO-Modelldatei. |
region | list oder dict | None | Punkte, 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:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Legt 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. |
iou | float | 0.7 | Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] 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 Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung. |
Zusätzlich werden folgende Visualisierungseinstellungen unterstützt:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Falls 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_width | int or None | None | Gibt 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_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt 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:
- YOLO26-Tracking erkennt und verfolgt jedes Objekt im Bild
- Für jedes verfolgte Objekt berechnet die Lösung den BBox-Mittelpunkt und prüft, welche Regionspolygone ihn enthalten
- 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
regionals 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 einregion_counts-Wörterbuch, das Regionennamen auf deren Zählungen abbildet, zusammen mitplot_im(dem annotierten Frame) undtotal_tracks(der Anzahl der verfolgten Objekte). Gib das Ergebnisobjekt aus, um alle verfügbaren Felder zu inspizieren.Ja. Übergebe das Argument
classesmit den zu behaltenden Klassenindizes, zum Beispielclasses=[0], um nur Personen mit einem COCO-vorabtrainierten Modell zu zählen. Die vollständige Liste der trackingbezogenen Argumente befindet sich im AbschnittRegionCounter()Arguments.RegionCounterzeigt, 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. VerwendeRegionCounterfür die Live-Belegung einer oder mehrerer Zonen undObjectCounterfür die Ein- und Ausgangszählung; linienförmige Regionen werden nur vonObjectCounterunterstützt.

