TrackZone avec Ultralytics YOLO26
Qu'est-ce que TrackZone ?
TrackZone est spécialisé dans le monitoring d'objets au sein de zones désignées d'une trame, plutôt que sur l'ensemble de la trame. Basé sur Ultralytics YOLO26, il intègre la détection et le tracking d'objets spécifiquement dans des zones pour les vidéos et les flux de caméras en direct. Les algorithmes avancés et les technologies de deep learning de YOLO26 en font un choix parfait pour les cas d'utilisation en temps réel, offrant un tracking d'objets précis et efficace dans des applications comme le monitoring des foules et la surveillance.
Regarder : Comment track des objets dans une région en utilisant Ultralytics YOLO26 | TrackZone 🚀
Avantages du suivi d'objets dans les zones (TrackZone) ?
- Analyse ciblée : Le suivi des objets dans des zones spécifiques permet d’obtenir des informations plus ciblées, ce qui permet une surveillance et une analyse précises des zones d’intérêt, telles que les points d’entrée ou les zones réglementées.
- Efficacité améliorée : En réduisant la portée du suivi aux zones définies, TrackZone réduit la surcharge de calcul, assurant un traitement plus rapide et des performances optimales.
- Sécurité Renforcée : Le suivi zonal améliore la surveillance en contrôlant les zones critiques, ce qui facilite la détection précoce d'activités inhabituelles ou de failles de sécurité.
- Solutions évolutives : La capacité de se concentrer sur des zones spécifiques rend TrackZone adaptable à divers scénarios, des espaces de vente au détail aux environnements industriels, assurant une intégration et une évolutivité transparentes.
Applications concrètes
| Agriculture | Transport |
|---|---|
| Tracking de plantes sur le terrain en utilisant Ultralytics YOLO26 | Tracking de véhicules sur route en utilisant Ultralytics YOLO26 |
TrackZone utilisant Ultralytics YOLO
# 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 s'appuie sur le region liste pour savoir quelle partie de la trame surveiller. Définissez le polygone pour qu'il corresponde à la zone physique qui vous intéresse (portes, portails, etc.) et conservez show=True activé lors de la configuration afin que vous puissiez vérifier que la superposition s’aligne sur le flux vidéo.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# Video writer
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))
# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
model="yolo26n.pt", # use any model that Ultralytics supports, e.g., YOLOv9, YOLOv10
# line_width=2, # adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = trackzone(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
TrackZone Arguments
Voici un tableau avec les TrackZone arguments :
| Argument | Type | Par défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès à un fichier de modèle Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Liste des points définissant la région de comptage. |
La solution TrackZone inclut la prise en charge de track paramètres :
| Argument | Type | Par défaut | Description |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml. |
conf | float | 0.1 | Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre plus d'objets, mais peuvent inclure de faux positifs. |
iou | float | 0.7 | Définit le seuil Intersection over Union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées. |
verbose | bool | True | Contrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis. |
device | str | None | Spécifie le périphérique pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle. |
De plus, les options de visualisation suivantes sont disponibles :
| Argument | Type | Par défaut | Description |
|---|---|---|---|
show | bool | False | Si True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat pendant le développement ou les tests. |
line_width | int or None | None | Spécifie la largeur de ligne des boîtes englobantes. Si None, la largeur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté. |
show_conf | bool | True | Affiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection. |
show_labels | bool | True | Affiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des objets détectés. |
FAQ
Comment puis-je track des objets dans une zone ou une région spécifique d'une trame vidéo en utilisant Ultralytics YOLO26 ?
Le tracking d'objets dans une zone ou une région définie d'une trame vidéo est simple avec Ultralytics YOLO26. Utilisez simplement la commande fournie ci-dessous pour lancer le tracking. Cette approche garantit une analyse efficace et des résultats précis, ce qui la rend idéale pour des applications telles que la surveillance, la gestion des foules ou tout scénario nécessitant un tracking zonal.
yolo solutions trackzone source="path/to/video.mp4" show=True
Comment puis-je utiliser TrackZone en python avec Ultralytics YOLO26 ?
Avec seulement quelques lignes de code, vous pouvez configurer le suivi d'objets dans des zones spécifiques, ce qui facilite l'intégration dans vos projets.
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))
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
model="yolo26n.pt",
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Comment configurer les points de zone pour le traitement vidéo à l'aide d'Ultralytics TrackZone ?
La configuration des points de zone pour le traitement vidéo avec Ultralytics TrackZone est simple et personnalisable. Vous pouvez directement définir et ajuster les zones via un script python, permettant un contrôle précis sur les zones que vous souhaitez surveiller.
# 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
)