Link to this sectionTrackZone mit Ultralytics YOLO26#
Link to this sectionWas ist TrackZone?#
TrackZone ist darauf spezialisiert, Objekte in definierten Bereichen eines Frames zu überwachen, anstatt den gesamten Frame zu erfassen. Basierend auf Ultralytics YOLO26 integriert es Objekterkennung und Tracking spezifisch innerhalb von Zonen für Videos und Live-Kamera-Feeds. YOLO26s fortschrittliche Algorithmen und Deep Learning-Technologien machen es zur idealen Wahl für Echtzeitanwendungen, da es präzises und effizientes Objekt-Tracking bei Einsatzszenarien wie Personenstromanalyse und Überwachung bietet.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this sectionVorteile der Objektverfolgung in Zonen (TrackZone)#
- Gezielte Analyse: Das Verfolgen von Objekten innerhalb spezifischer Zonen ermöglicht fokussiertere Erkenntnisse und erlaubt eine präzise Überwachung und Analyse von Interessenbereichen, wie z. B. Eingangspunkten oder gesperrten Zonen.
- Reduzierte Downstream-Arbeitslast: Indem Objekte außerhalb der Zone ignoriert werden, eliminiert TrackZone irrelevante Erkennungen, sodass weniger Objekte gezählt, protokolliert oder in der Logik, die du darauf aufbaust, ausgewertet werden müssen. Die Erkennung läuft weiterhin auf dem maskierten Vollbild-Frame statt auf einem engen Zuschnitt der Zone. Der Vorteil liegt also in einer saubereren, fokussierteren Ausgabe anstatt in einer schnelleren Modellinferenz.
- Erhöhte Sicherheit: Zonenbasiertes Tracking verbessert die Überwachung durch die Kontrolle kritischer Bereiche und unterstützt bei der frühzeitigen Erkennung ungewöhnlicher Aktivitäten oder Sicherheitsverletzungen.
- Skalierbare Lösungen: Die Möglichkeit, sich auf bestimmte Zonen zu konzentrieren, macht TrackZone anpassungsfähig an verschiedene Szenarien, vom Einzelhandel bis zu industriellen Umgebungen, und sorgt für nahtlose Integration und Skalierbarkeit.
Link to this sectionPraxisanwendungen#
| Landwirtschaft | Transportwesen |
|---|---|
| Pflanzenverfolgung auf dem Feld mit Ultralytics YOLO26 | Fahrzeugverfolgung auf der Straße mit Ultralytics YOLO26 |
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True
# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"TrackZone verlässt sich auf die region-Liste, um zu wissen, welcher Teil des Frames überwacht werden soll. Definiere das Polygon passend zur physischen Zone, die dich interessiert (Türen, Tore usw.), und behalte show=True während der Konfiguration bei, damit du überprüfen kannst, ob das Overlay mit dem Video-Feed übereinstimmt.
- Jeder Eintrag in
regionist eine(x, y)Pixel-Koordinate im Video-Frame. Liste die Punkte in der Reihenfolge auf, in der sie entlang des Umfangs des Bereichs, den du überwachen möchtest, verbunden werden sollen. - Koordinaten sind an die Frame-Auflösung gebunden, daher passt eine Region, die für einen 1280×720 Feed dimensioniert ist, nicht zu einem 640×480 Feed. Behalte
show=Truewährend der Konfiguration bei, um sicherzustellen, dass das Overlay mit deinem Feed übereinstimmt. TrackZonereduziert die Punkte auf ihre konvexe Hülle, sodass eine konkave Form auf das kleinste konvexe Polygon vereinfacht wird, das alle ihre Punkte enthält. Für nicht-konvexe Formen oder mehrere getrennte Bereiche verwende stattdessen die RegionCounter-Lösung.- Wenn du
regionkomplett weglässt, wird eine Standardzone von[(75, 75), (565, 75), (565, 285), (75, 285)]verwendet.
Link to this sectionTrackZone-Argumente#
Hier ist eine Tabelle mit den TrackZone-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 TrackZone-Lösung beinhaltet Unterstützung für track-Parameter:
| 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. |
Darüber hinaus stehen die folgenden Visualisierungsoptionen zur Verfügung:
| 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 sectionObjekte innerhalb der Zone zählen#
Jeder Aufruf des Trackers gibt ein SolutionResults-Objekt zurück, dessen Attribut total_tracks die Anzahl der derzeit innerhalb der Zone verfolgten Objekte enthält. Lese dies in jedem Frame aus, um die Live-Auslastung zu überwachen, beispielsweise um zu protokollieren, wie stark ein Zugangspunkt oder ein eingeschränkter Bereich belegt ist:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
print(f"Objects currently in zone: {results.total_tracks}") # live zone occupancy
cap.release()Link to this sectionFAQ#
Link to this sectionWie verfolge ich Objekte in einem bestimmten Bereich oder einer Zone eines Video-Frames mit Ultralytics YOLO26?#
Das Verfolgen von Objekten in einem definierten Bereich oder einer Zone eines Video-Frames ist mit Ultralytics YOLO26 unkompliziert. Verwende einfach den unten angegebenen Befehl, um das Tracking zu starten. Dieser Ansatz sorgt für eine effiziente Analyse und genaue Ergebnisse, was ihn ideal für Anwendungen wie Sicherheit, Besuchermanagement oder jedes Szenario macht, das zonenbasiertes Tracking erfordert.
yolo solutions trackzone source="path/to/video.mp4" show=TrueLink to this sectionWie kann ich TrackZone in Python mit Ultralytics YOLO26 verwenden?#
Mit nur wenigen Zeilen Code kannst du die Objektverfolgung in bestimmten Zonen einrichten, was die Integration in deine Projekte einfach macht.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
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("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
trackzone = solutions.TrackZone(
show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()Link to this sectionWie konfiguriere ich die Zonenpunkte für die Videoverarbeitung mit Ultralytics TrackZone?#
Die Konfiguration der Zonenpunkte für die Videoverarbeitung mit Ultralytics TrackZone ist einfach und anpassbar. Du kannst die Zonen direkt über ein Python-Skript definieren und anpassen, was eine präzise Kontrolle über die Bereiche ermöglicht, die du überwachen möchtest.
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# Initialize trackzone
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
)Denke daran, dass TrackZone die Punkte auf ihre konvexe Hülle reduziert. Liste sie daher in der Reihenfolge um den Umfang des Bereichs auf, den du überwachen möchtest.
Link to this sectionWann sollte ich TrackZone anstelle von ObjectCounter oder RegionCounter verwenden?#
Alle drei Lösungen arbeiten mit Regionen, beantworten aber unterschiedliche Fragen:
| Lösung | Verwende es, um | Typische Ausgabe |
|---|---|---|
| TrackZone | Objekte verfolgen und die Live-Auslastung innerhalb einer einzelnen konvexen Zone überwachen | Verfolgte IDs und total_tracks für die Zone |
| ObjectCounter | Objekte zählen, die eine Linie überqueren oder eine Region betreten und verlassen | Kumulative Ein- und Ausgangszählungen |
| RegionCounter | Objekte innerhalb einer oder mehrerer beliebiger (einschließlich nicht-konvexer) Regionen zählen | Objektanzahl pro Region |
Wähle TrackZone, wenn du eine kontinuierliche Verfolgung innerhalb eines Bereichs wünschst, und RegionCounter, wenn du mehrere Zonen oder eine nicht-konvexe Form benötigst.