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.
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 Ă l'aide de YOLO11 Exemple
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video/file.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", # You can use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
# line_width=2, # Adjust the line width for bounding boxes and text display
# classes=[0, 2], # If you want to count specific classes i.e. person and car with COCO pretrained model.
)
# 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
im0 = trackzone.trackzone(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Argument TrackZone
Voici un tableau avec les TrackZone
arguments :
Nom | Type | DĂ©faut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier modèle Ultralytics YOLO |
region |
list |
[(150, 150), (1130, 150), (1130, 570), (150, 570)] |
Liste des points définissant la région de suivi de l'objet. |
line_width |
int |
2 |
Épaisseur du trait pour les cadres de délimitation. |
show |
bool |
False |
Indicateur permettant de contrôler l'affichage ou non du flux vidéo. |
Arguments model.track
Argument | Type | DĂ©faut | Description |
---|---|---|---|
source |
str |
None |
Spécifie le répertoire source pour les images ou les vidéos. Prend en charge les chemins d'accès aux fichiers et les URL. |
persist |
bool |
False |
Permet un suivi persistant des objets entre les images, en conservant les identifiants sur l'ensemble des séquences vidéo. |
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. |
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/file.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
im0 = trackzone.trackzone(im0)
video_writer.write(im0)
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)]
# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
show=True, # Display the output
region=region_points, # Pass region points
)