Skip to content

TrackZone utilisant Ultralytics YOLO11

Ouvrir TrackZone dans Colab

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
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

# 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 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 Trueaffiche 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 NoneLa 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.

yolo solutions trackzone source="path/to/video.mp4" show=True

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
)
📅C réé il y a 3 mois ✏️ Mis à jour il y a 8 jours

Commentaires