Ultralytics YOLO27:

Objektzählung in Regionen mit Ultralytics YOLO26#

Die RegionCounter-Lösung in Ultralytics YOLO26 verfolgt Objekte über Videobilder hinweg und zählt in jedem Bild die Objekte, deren Mittelpunkt der Bounding Box innerhalb der von dir definierten Region liegt. Jede Region wird mit ihrer eigenen Live-Zählung im Bild dargestellt, sodass du mehrere Bereiche wie Ladenpassagen, Fahrspuren 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 Durchlauf: Übergib ein Wörterbuch mit benannten Polygonen, und jede Zone erhält eine unabhängige Zählung, die im Bild dargestellt wird. So deckt ein Videostream alle für dich relevanten Bereiche ab.
  • Tracking integriert: Die Lösung führt die YOLO26-Erkennung und das Objekt-Tracking intern aus, sodass du keine separate Tracking-Pipeline einrichten musst.
  • Programmgesteuert auslesbare Zählungen: Jedes verarbeitete Bild gibt ein Ergebnisobjekt mit einem Wörterbuch der Regionszählungen zurück, das du direkt für Dashboards, Warnmeldungen oder Protokollierung verwenden kannst.

Anwendungen in der Praxis#

EinzelhandelMarktstraßen
Ultralytics YOLO zählt Personen innerhalb eingezeichneter Polygonregionen in einem EinzelhandelsgeschäftUltralytics YOLO mit eingeblendeten Regionszählungen auf einer belebten Marktstraße
Ultralytics YOLO: Personenzählung in RegionenUltralytics YOLO: Zählung von Menschenmengen in Regionen

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

Führe die RegionCounter-Lösung über die CLI oder Python mit einer Videoquelle aus. Eine Region kann eine Punkteliste (eine einzelne Zone) oder ein Wörterbuch sein, das Zonennamen auf Punktelisten abbildet. Das folgende Python-Beispiel zählt Objekte in zwei benannten Regionen und schreibt die verarbeiteten Bilder in eine Ausgabedatei für das Video:

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

Argumente von RegionCounter()#

Hier ist eine Tabelle mit den Argumenten von RegionCounter:

ArgumentTypStandardwertBeschreibung
modelstrNonePfad zu einer YOLO-Modell-Datei von Ultralytics.
regionlist oder dictNonePunkte zur Definition des Interessenbereichs: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das Bereichsnamen Punktelisten für mehrere Bereiche zuordnet (nur RegionCounter). Wenn None, greifen Lösungen, die einen Bereich benötigen, auf einen vordefinierten Standardwert zurück.
line_widthint2Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte.
verboseboolTrueAktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe.

Die Lösung RegionCounter ermöglicht die Verwendung von Parametern für das Objekt-Tracking:

ArgumentTypStandardwertBeschreibung
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 Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen.
ioufloat0.7Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Beispielsweise 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 die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung.
imgszint or tuple640Ziel-Inferenzbildgröße: eine ganze Zahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formate werden an die Modellschrittweite angepasst.
max_detint300Maximale Anzahl pro Frame beibehaltener Detektionen vor dem Tracking, wodurch die Objekte begrenzt werden, die eine Solution in dichten Szenen verarbeitet.
quantizeint or strNoneInferenzpräzision: 16 (FP16) oder 32/nicht gesetzt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Präzision, die ihr Artefakt und ihre Laufzeit auswählen. Ersetzt das veraltete half-Flag.

Zusätzlich werden die folgenden Einstellungen für die Visualisierung unterstützt:

ArgumentTypStandardwertBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
show_confboolTrueZeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte.

So funktioniert die Regionszählung#

Die RegionCounter-Lösung wandelt jede übergebene Region in ein Polygon mit mindestens drei Punkten pro Region um. Eine einfache Punkteliste wird zu einer einzelnen Zone namens Region#01, während ein Wörterbuch deine eigenen Zonennamen beibehält. Jede Zone wird in einer eigenen Farbe aus der Ultralytics-Palette dargestellt. Anschließend wird jedes Bild in drei Schritten verarbeitet:

  1. Die YOLO26-Verfolgung erkennt jedes Objekt im Bild und folgt ihm.
  2. Für jedes verfolgte Objekt berechnet die Lösung den Mittelpunkt der Bounding Box und prüft, in welchen Regionspolygonen er liegt.
  3. Die Zählung jeder Region wird an ihrem Mittelpunkt dargestellt, und die Zählungen werden vor dem nächsten Bild zurückgesetzt.

Da die Zählungen in jedem Bild neu beginnen, gibt die Zahl einer Region ihre aktuelle Belegung an, also wie viele Objekte sich gerade darin befinden, und nicht eine fortlaufende Gesamtsumme. Um Objekte, die eine Grenze überqueren, kumulativ zu zählen, verwende stattdessen die ObjectCounter-Lösung.

Jeder Aufruf gibt außerdem ein Ergebnisobjekt zurück, dessen Attribut plot_im das annotierte Bild enthält und dessen Wörterbuch region_counts die Regionsnamen auf ihre Zählungen abbildet. So kannst du die Zahlen in die Logik deiner eigenen Anwendung übernehmen.

Fazit#

Die Ultralytics YOLO26 RegionCounter-Lösung überwacht mit wenigen Codezeilen die Live-Zählungen von Objekten in beliebig vielen benannten Zonen. Wenn du weitergehen möchtest, zähle Grenzüberquerungen mit der Objektzählung, 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 Bild verfolgt und geprüft wird, ob sein Mittelpunkt der Bounding Box innerhalb jedes benutzerdefinierten Polygons liegt. Die für eine Region angezeigte Zählung entspricht ihrer aktuellen Belegung in diesem Bild und nicht einer kumulativen Gesamtsumme. Konfigurationsoptionen sind im Abschnitt RegionCounter() Arguments aufgeführt.

  • Übergib das Argument region als Wörterbuch, das Zonennamen auf Punktelisten abbildet, 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 einer eigenen Farbe mit einer unabhängigen Zählung dargestellt.

  • Das von jedem Aufruf von regioncounter(im0) zurückgegebene Objekt enthält ein Wörterbuch region_counts, das Regionsnamen auf ihre Zählungen abbildet, sowie plot_im (das annotierte Bild) und total_tracks (die Anzahl der verfolgten Objekte). Gib das Ergebnisobjekt aus, um alle verfügbaren Felder zu prüfen.

  • Ja. Übergib das Argument classes mit den beizubehaltenden Klassenindizes, zum Beispiel classes=[0], um mit einem auf COCO vortrainierten Modell nur Personen zu zählen. Die vollständige Liste der Tracking-bezogenen Argumente findest du im Abschnitt RegionCounter() Arguments.

  • RegionCounter zeigt, wie viele Objekte sich im aktuellen Bild innerhalb jeder polygonalen Zone befinden, während ObjectCounter Objekte kumulativ zählt, wenn sie eine Linie oder Regionsgrenze überqueren, und dabei Ein- und Austritte verfolgt. Verwende RegionCounter für die Live-Belegung einer oder mehrerer Zonen und ObjectCounter für die Zählung von Ein- und Austritten. Linienförmige Regionen werden ausschließlich von ObjectCounter unterstützt.

Kommentare