Passer au contenu

TrackZone utilisant Ultralytics YOLO11

Ouvrir TrackZone dans Colab

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


📅 Créé il y a 9 mois ✏️ Mis à jour il y a 4 mois

Commentaires