TrackZone avec Ultralytics YOLO26
Qu'est-ce que TrackZone ?
TrackZone se spécialise dans la surveillance d'objets au sein de zones désignées d'une image plutôt que sur l'image entière. Construit sur Ultralytics YOLO26, il intègre la détection et le suivi d'objets spécifiquement au sein de zones pour les vidéos et les flux de caméras en direct. Les algorithmes avancés de YOLO26 et les technologies de deep learning en font un choix parfait pour les cas d'utilisation en temps réel, offrant un suivi d'objets précis et efficace dans des applications comme la surveillance de foules et la télésurveillance.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Avantages du suivi d'objets par zones (TrackZone)
- Analyse ciblée : Le suivi d'objets au sein de zones spécifiques permet des insights plus concentrés, facilitant une surveillance et une analyse précises des zones d'intérêt, comme les points d'entrée ou les zones restreintes.
- Efficacité améliorée : En réduisant le périmètre de suivi à des zones définies, TrackZone diminue la charge computationnelle, garantissant un traitement plus rapide et une performance optimale.
- Sécurité renforcée : Le suivi zonal améliore la surveillance en contrôlant les zones critiques, facilitant la détection précoce d'activités inhabituelles ou de failles de sécurité.
- Solutions évolutives : La capacité à 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 fluide et une évolutivité.
Applications dans le monde réel
| Agriculture | Transport |
|---|---|
| Suivi de plantes dans un champ avec Ultralytics YOLO26 | Suivi de véhicules sur la route avec 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 s'appuie sur la liste region pour savoir quelle partie de l'image surveiller. Définis le polygone pour qu'il corresponde à la zone physique qui t'intéresse (portes, portails, etc.), et garde show=True activé pendant la configuration pour pouvoir vérifier que la superposition est bien alignée avec le flux vidéo.
Arguments de TrackZone
Voici un tableau avec les arguments de TrackZone :
| Argument | Type | Défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès vers un fichier de modèle Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Liste de points définissant la zone de comptage. |
La solution TrackZone inclut la prise en charge des paramètres track :
| Argument | Type | 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 davantage d'objets mais peuvent inclure des 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 dispositifs de calcul pour l'exécution du modèle. |
De plus, les options de visualisation suivantes sont disponibles :
| Argument | Type | 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 lors du développement ou des tests. |
line_width | int or None | None | Spécifie l'épaisseur de ligne des boîtes englobantes. Si None, l'épaisseur 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 suivre des objets dans une zone ou une zone spécifique d'une image vidéo avec Ultralytics YOLO26 ?
Le suivi d'objets dans une zone ou une aire définie d'une image vidéo est simple avec Ultralytics YOLO26. Utilise simplement la commande fournie ci-dessous pour lancer le suivi. 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 de foule, ou tout scénario nécessitant un suivi zonal.
yolo solutions trackzone source="path/to/video.mp4" show=TrueComment puis-je utiliser TrackZone en Python avec Ultralytics YOLO26 ?
Avec seulement quelques lignes de code, tu peux configurer le suivi d'objets dans des zones spécifiques, ce qui facilite son intégration dans tes 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 avec Ultralytics TrackZone ?
La configuration des points de zone pour le traitement vidéo avec Ultralytics TrackZone est simple et personnalisable. Tu peux définir et ajuster directement les zones via un script Python, permettant un contrôle précis sur les zones que tu souhaites 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
)