TrackZone utilisant Ultralytics YOLO11
Qu'est-ce que TrackZone ?
TrackZone est spécialisé dans la surveillance des objets dans des zones désignées d'une trame au lieu de la trame entière. Construit sur Ultralytics YOLO11, il intègre la détection et le suivi d'objets spécifiquement dans les zones pour les vidéos et les flux de caméras en direct. Les algorithmes avancés de YOLO11 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 telles que la surveillance des foules et la surveillance.
Regarder : Comment suivre des objets dans une région en utilisant Ultralytics YOLO11 | 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 |
---|---|
![]() |
![]() |
Suivi des plantes dans un champ à l'aide de Ultralytics YOLO11 | Suivi de véhicules sur route à l'aide d'Ultralytics YOLO11 |
TrackZone utilisant Ultralytics YOLO
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"
# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
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 | Par défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au 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.3 |
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.5 |
Définit le seuil Intersection sur 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 |
None or int |
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 suivre des objets dans une zone spécifique d'une trame vidéo en utilisant Ultralytics YOLO11 ?
Le suivi d'objets dans une zone définie d'une trame vidéo est simple avec Ultralytics YOLO11. Utilisez 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 des foules ou tout scénario nécessitant un suivi zonal.
yolo solutions trackzone source="path/to/video.mp4" show=True
Comment puis-je utiliser TrackZone en Python avec Ultralytics YOLO11 ?
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="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 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
)