Link to this sectionObjektzählung in Regionen mit Ultralytics YOLO26#
Die RegionCounter-Lösung in Ultralytics YOLO26 verfolgt Objekte über Videoframes hinweg und zählt in jedem Frame die Objekte, deren BBox-Mittelpunkt innerhalb der von dir definierten Regionen liegt. Jede Region wird mit ihrem eigenen Live-Zähler auf den Frame gezeichnet, sodass du mehrere Zonen, wie z. B. Ladenregale, Fahrspuren oder Produktionsbereiche, mit einem einzigen Python-Aufruf oder CLI-Befehl überwachen kannst.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
Link to this sectionWarum 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 intern YOLO26-Erkennung und Objekt-Tracking aus, sodass kein separates Tracking-System 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.
Link to this sectionPraxisanwendungen#
| Einzelhandel | Marktstraßen |
|---|---|
![]() | ![]() |
| Ultralytics YOLO Personenzählung in Regionen | Ultralytics YOLO Crowd-Zählung in Regionen |
Link to this sectionSo 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)]"Link to this sectionRegionCounter() 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 den Interessenbereich definieren, entweder als Liste von (x, y)-Tupeln oder als 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 Objektverfolgungsparametern:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Legt den zu verwendenden Tracking-Algorithmus fest. 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 IoU-Schwellenwert für das 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 die Wahl 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 | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder Tests. |
line_width | int or None | None | Legt die Linienbreite der BBoxen fest. Wenn None, wird die Linienbreite 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. |
Link to this sectionSo funktioniert die Regionszählung#
Die RegionCounter-Lösung verwandelt jede übergebene Region in ein Polygon mit mindestens drei Punkten pro Region. Eine einfache Liste von Punkten wird zu einer einzelnen 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ähler bei jedem Frame neu starten, entspricht die auf einer Region angezeigte Zahl der aktuellen Belegung – also wie viele Objekte sich gerade jetzt darin befinden, nicht einer kumulativen Gesamtzahl. Um Objekte zu zählen, die eine Grenze überschreiten, verwende stattdessen die ObjectCounter-Lösung.
Jeder Aufruf gibt auch ein Ergebnisobjekt zurück, dessen plot_im-Attribut den annotierten Frame enthält und dessen region_counts-Wörterbuch Regionsnamen ihren Zählern zuordnet, sodass du die Zahlen in deine eigene Anwendungslogik einspeisen kannst.
Link to this sectionFazit#
Die Ultralytics YOLO26 RegionCounter-Lösung überwacht Live-Objektzähler in beliebig vielen benannten Zonen mit wenigen Zeilen Code. Um weiterzugehen, zähle Grenzübertritte mit Objektzählung, verfolge Objekte innerhalb einer einzelnen Zone mit TrackZone oder erkunde die anderen Ultralytics Solutions.
Link to this sectionFAQ#
Link to this sectionWie funktioniert die Objektzählung in Regionen in Ultralytics YOLO26?#
Ultralytics YOLO26 zählt Objekte in Regionen, indem es jedes Objekt im Frame verfolgt und testet, ob sein BBox-Mittelpunkt innerhalb jedes benutzerdefinierten Polygons liegt. Der auf einer Region angezeigte Zähler ist die aktuelle Belegung für diesen Frame, keine kumulative Summe. Konfigurationsoptionen sind im Abschnitt RegionCounter() Argumente aufgeführt.
Link to this sectionWie zähle ich Objekte in mehreren Regionen gleichzeitig?#
Übergebe das region-Argument als Wörterbuch, das Zonennamen Punktlisten zuordnet, wie im Hauptbeispiel:
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.
Link to this sectionWie erhalte ich die Regionszähler programmgesteuert?#
Das Objekt, das von jedem regioncounter(im0)-Aufruf zurückgegeben wird, enthält ein region_counts-Wörterbuch, das Regionsnamen ihren Zählern zuordnet, neben plot_im (der annotierte Frame) und total_tracks (die Anzahl der verfolgten Objekte). Gib das Ergebnisobjekt aus, um alle verfügbaren Felder zu untersuchen.
Link to this sectionKann ich in einer Region nur bestimmte Objektklassen zählen?#
Ja. Übergebe das classes-Argument mit den beizubehaltenden Klassenindizes, zum Beispiel classes=[0], um mit einem COCO-vorabtrainierten Modell nur Personen zu zählen. Die vollständige Liste der tracking-bezogenen Argumente findest du im Abschnitt RegionCounter() Argumente.
Link to this sectionWas ist der Unterschied zwischen RegionCounter und ObjectCounter?#
RegionCounter zeigt, wie viele Objekte sich im aktuellen Frame innerhalb einer polygonalen Zone befinden, während ObjectCounter Objekte kumulativ zählt, wenn sie eine Linie oder Regionsgrenze überqueren, und Ein- und Ausgänge 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.

