Passer au contenu

Mappage d’objets de vue VisionEye à l’aide d’Ultralytics YOLO11 🚀

Qu'est-ce que VisionEye Object Mapping ?

Ultralytics YOLO11 VisionEye offre aux ordinateurs la capacité d'identifier et de localiser des objets, simulant la précision d'observation de l'œil humain. Cette fonctionnalité permet aux ordinateurs de discerner et de se concentrer sur des objets spécifiques, un peu comme la façon dont l'œil humain observe les détails d'un point de vue particulier.

Mappage d’objets de vue VisionEye avec suivi d’objets à l’aide d’Ultralytics YOLO11

Mappage VisionEye utilisant Ultralytics YOLO

# Monitor objects position with visioneye
yolo solutions visioneye show=True

# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# 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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point, where vision will view objects and draw tracks
)

# 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 = visioneye(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

VisionEye Arguments

Voici un tableau avec les VisionEye arguments :

Argument Type Par défaut Description
model str None Chemin d'accès au fichier de modèle Ultralytics YOLO.
vision_point tuple[int, int] (20, 20) Le point où la vision suivra les objets et dessinera des chemins à l'aide de VisionEye Solution.

Vous pouvez également utiliser divers track arguments dans le VisionEye solution :

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, certains arguments de visualisation sont pris en charge, comme indiqué ci-dessous :

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.

Comment VisionEye fonctionne

VisionEye fonctionne en établissant un point de vision fixe dans le cadre et en traçant des lignes de ce point vers les objets détectés. Cela simule la façon dont la vision humaine se concentre sur plusieurs objets à partir d'un seul point de vue. La solution utilise le suivi d'objets pour maintenir une identification cohérente des objets à travers les images, créant une représentation visuelle de la relation spatiale entre l'observateur (point de vision) et les objets de la scène.

L'argument process la méthode dans la classe VisionEye effectue plusieurs opérations clés :

  1. Extrait les pistes (boîtes englobantes, classes et masques) de l'image d'entrée
  2. Crée un annotateur pour dessiner des boîtes englobantes et des étiquettes
  3. Pour chaque objet détecté, dessine une étiquette de boîte et crée une ligne de vision à partir du point de vision
  4. Retourne l'image annotée avec les statistiques de suivi

Cette approche est particulièrement utile pour les applications nécessitant une conscience spatiale et une visualisation des relations entre les objets, telles que les systèmes de surveillance, la navigation autonome et les installations interactives.

Applications de VisionEye

Le mappage d'objets VisionEye a de nombreuses applications pratiques dans divers secteurs :

  • Sécurité et surveillance: Surveiller plusieurs objets d'intérêt à partir d'une position de caméra fixe
  • Analyse de vente au détail : Suivez les schémas de déplacement des clients par rapport aux présentoirs en magasin
  • Analyse sportive : Analysez le positionnement et le mouvement des joueurs du point de vue d’un entraîneur
  • Véhicules autonomes : Visualisez comment un véhicule « voit » et hiérarchise les objets dans son environnement.
  • Interaction homme-machine : Créer des interfaces plus intuitives qui répondent aux relations spatiales

En combinant VisionEye avec d'autres solutions Ultralytics telles que le calcul de distance ou l'estimation de la vitesse, vous pouvez créer des systèmes complets qui non seulement suivent les objets, mais comprennent également leurs relations spatiales et leurs comportements.

Remarque

Pour toute question, n'hésitez pas à la poser dans la section Problèmes d'Ultralytics ou dans la section de discussion mentionnée ci-dessous.

FAQ

Comment commencer à utiliser VisionEye Object Mapping avec Ultralytics YOLO11 ?

Pour commencer à utiliser VisionEye Object Mapping avec Ultralytics YOLO11, vous devez d'abord installer le package Ultralytics YOLO via pip. Ensuite, vous pouvez utiliser l'exemple de code fourni dans la documentation pour configurer la détection d'objets avec VisionEye. Voici un exemple simple pour vous aider à démarrer :

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# 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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
)

# 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 = visioneye(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

Pourquoi devrais-je utiliser Ultralytics YOLO11 pour la cartographie et le suivi d'objets ?

Ultralytics YOLO11 est réputé pour sa vitesse, son exactitude et sa facilité d'intégration, ce qui en fait un choix de premier ordre pour la cartographie et le suivi d'objets. Les principaux avantages sont les suivants :

  1. Performance de pointe : Offre une haute précision dans la détection d'objets en temps réel.
  2. Flexibilité : Prend en charge diverses tâches telles que la détection, le suivi et le calcul de distance.
  3. Communauté et support : Documentation complète et communauté GitHub active pour le dépannage et les améliorations.
  4. Facilité d'utilisation : L'API intuitive simplifie les tâches complexes, permettant un déploiement et une itération rapides.

Pour plus d'informations sur les applications et les avantages, consultez la documentation Ultralytics YOLO11.

Comment puis-je intégrer VisionEye avec d'autres outils de machine learning comme Comet ou ClearML ?

Ultralytics YOLO11 peut s'intégrer de manière transparente à divers outils d'apprentissage automatique tels que Comet et ClearML, améliorant ainsi le suivi des expériences, la collaboration et la reproductibilité. Suivez les guides détaillés sur l'utilisation de YOLOv5 avec Comet et l'intégration de YOLO11 avec ClearML pour commencer.

Pour plus d'exemples d'exploration et d'intégration, consultez notre Guide d'intégration Ultralytics.



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

Commentaires