TrackZone utilisant Ultralytics YOLO11
Qu'est-ce que TrackZone ?
TrackZone est spécialisé dans la surveillance d'objets dans des zones désignées d'un cadre plutôt que dans l'ensemble du cadre. Construit sur Ultralytics YOLO11TrackZone intègre la détection et le suivi d'objets dans des zones spécifiques pour les vidéos et les flux de caméras en direct. YOLO11 Les algorithmes avancés et les technologies d'apprentissage profond de TrackZone en font un choix parfait pour les cas d'utilisation en temps réel, offrant un suivi d'objet précis et efficace dans des applications telles que le suivi de foule et la surveillance.
Regarder : Comment suivre des objets dans une région en utilisant Ultralytics YOLO11 | TrackZone 🚀
Avantages du suivi d'objets par zones (TrackZone)
- Analyse ciblée : Le suivi d'objets dans des zones spécifiques permet d'obtenir des informations plus ciblées, de surveiller et d'analyser avec précision les zones d'intérêt, telles que les points d'entrée ou les zones d'accès restreint.
- Efficacité accrue : En limitant la portée du suivi à des zones définies, TrackZone réduit la charge de calcul, ce qui garantit 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 permet de détecter rapidement les activités inhabituelles ou les failles de sécurité.
- Des solutions évolutives : La possibilité de se concentrer sur des zones spécifiques permet à TrackZone de s'adapter à différents scénarios, des espaces de vente au détail aux environnements industriels, garantissant une intégration et une évolutivité sans faille.
Applications dans le monde réel
Agriculture | Transport |
---|---|
![]() |
![]() |
Suivi des plantes sur le terrain à l'aide de Ultralytics YOLO11 | Suivi des véhicules sur la route à l'aide de Ultralytics YOLO11 |
TrackZone utilise Ultralytics YOLO
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="yolo11n.pt", # use any model that Ultralytics support, i.e. 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 | Défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier modèleYOLO d'Ultralytics . |
region |
list |
[(20, 400), (1260, 400)] |
Liste des points définissant la région de comptage. |
La solution TrackZone prend en charge track
paramètres :
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.3 |
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.5 |
Définit le seuil d'intersection sur l'union (IoU) pour le filtrage des 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 du suivi, fournissant une sortie visuelle des objets suivis. |
device |
str |
None |
Spécifie le dispositif d'inférence (par ex, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle. |
En outre, 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 d'information visuel immédiat pendant le développement ou les tests. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes de délimitation. Si les None La largeur de la ligne est automatiquement ajustée en fonction de la taille de l'image. Permet une personnalisation visuelle pour plus de clarté. |
FAQ
Comment suivre des objets dans une zone spécifique d'une image vidéo à l'aide de Ultralytics YOLO11 ?
Le suivi d'objets dans une zone définie d'une image vidéo est très simple avec Ultralytics YOLO11 . Il suffit d'utiliser la commande 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 des foules ou tout autre scénario nécessitant un suivi de zone.
Comment puis-je utiliser TrackZone dans Python avec Ultralytics YOLO11 ?
En quelques lignes de code, vous pouvez mettre en place le suivi des objets dans des zones spécifiques, ce qui facilite son 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="yolo11n.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 de 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 par le biais d'un script Python , ce qui permet un contrôle précis des 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
)