Link to this sectionTrackZone utilisant Ultralytics YOLO26#
Link to this sectionQu'est-ce que TrackZone ?#
TrackZone se spécialise dans la surveillance d'objets au sein de zones définies d'une image plutôt que sur l'image entière. Basé sur Ultralytics YOLO26, il intègre la détection d'objets et le suivi spécifiquement au sein de 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 des cas d'utilisation en temps réel, offrant un suivi d'objets précis et efficace dans des applications comme la surveillance de foule.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this sectionAvantages du suivi d'objets dans des 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, telles que les points d'entrée ou les zones restreintes.
- Charge de travail en aval réduite : En ignorant les objets situés en dehors de la zone, TrackZone supprime les détections non pertinentes, ce qui réduit le nombre d'objets à compter, enregistrer ou signaler dans la logique que tu construis par-dessus. La détection s'exécute toujours sur une image masquée en taille réelle plutôt que sur un recadrage serré de la zone, l'avantage est donc une sortie plus propre et mieux ciblée plutôt qu'une inférence de modèle plus rapide.
- Sécurité renforcée : Le suivi zonal améliore la surveillance en contrôlant les zones critiques, aidant à 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 commerciaux aux environnements industriels, assurant une intégration fluide et une grande scalabilité.
Link to this sectionApplications dans le monde réel#
| Agriculture | Transports |
|---|---|
| Suivi de plantes dans un champ utilisant Ultralytics YOLO26 | Suivi de véhicules sur la route utilisant 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 repose sur la liste region pour savoir quelle partie de l'image surveiller. Définis le polygone pour correspondre à la zone physique qui t'intéresse (portes, portails, etc.) et garde show=True activé pendant la configuration afin de pouvoir vérifier que la superposition s'aligne avec le flux vidéo.
- Chaque entrée dans
regionest une coordonnée de pixel(x, y)dans l'image vidéo. Liste les points dans l'ordre dans lequel ils doivent être connectés autour du périmètre de la zone que tu souhaites surveiller. - Les coordonnées sont liées à la résolution de l'image, donc une région dimensionnée pour un flux 1280×720 ne s'alignera pas avec un flux 640×480. Garde
show=Truependant la configuration pour pouvoir confirmer que la superposition correspond à ton flux. TrackZoneréduit les points à leur enveloppe convexe, une forme concave est donc simplifiée en le plus petit polygone convexe contenant tous ses points. Pour des formes non convexes ou plusieurs zones distinctes, utilise plutôt la solution RegionCounter.- Si tu omet
regionentièrement, une zone par défaut de[(75, 75), (565, 75), (565, 285), (75, 285)]est utilisée.
Link to this sectionArguments 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 YOLO d'Ultralytics. |
region | list | '[(20, 400), (1260, 400)]' | Liste de points définissant la région 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. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Définit le seuil de confiance pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets, mais peuvent inclure des faux positifs. |
iou | float | 0.7 | Définit le seuil d'Intersection sur Union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
verbose | bool | True | Contrôle l'affichage des résultats de suivi, en fournissant une sortie visuelle des objets suivis. |
device | str | None | Spécifie le périphérique pour l'inférence (par ex. 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. Offre 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. Permet une compréhension immédiate des objets détectés. |
Link to this sectionCompter les objets à l'intérieur de la zone#
Chaque appel au tracker renvoie un objet SolutionResults dont l'attribut total_tracks contient le nombre d'objets actuellement suivis à l'intérieur de la zone. Lis-le sur chaque image pour surveiller l'occupation en direct, par exemple pour enregistrer à quel point un point d'entrée ou une zone restreinte est fréquenté :
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 sectionComment suivre des objets dans une zone spécifique d'une image vidéo avec Ultralytics YOLO26 ?#
Suivre des objets dans une zone 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, la rendant 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=TrueLink to this sectionComment 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 l'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))
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 sectionComment configurer les points de zone pour le traitement vidéo en utilisant 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 des 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
)N'oublie pas que TrackZone réduit les points à leur enveloppe convexe, liste-les donc dans l'ordre autour du périmètre de la zone que tu souhaites surveiller.
Link to this sectionQuand dois-je utiliser TrackZone au lieu d'ObjectCounter ou de RegionCounter ?#
Les trois solutions fonctionnent avec des régions, mais elles répondent à des questions différentes :
| Solution | Utilise-le pour | Sortie typique |
|---|---|---|
| TrackZone | Suivre des objets et surveiller l'occupation en direct au sein d'une seule zone convexe | IDs suivis et total_tracks pour la zone |
| ObjectCounter | Compter les objets qui franchissent une ligne ou entrent et sortent d'une région | Comptages cumulatifs des entrées et sorties |
| RegionCounter | Compter les objets à l'intérieur d'une ou plusieurs régions arbitraires (y compris non convexes) | Comptages d'objets par région |
Choisis TrackZone quand tu veux un suivi continu au sein d'une seule zone, et RegionCounter quand tu as besoin de zones multiples ou d'une forme non convexe.