Skip to content

VisionEye View Object Mapping using Ultralytics YOLO11 🚀

Qu'est-ce que la cartographie d'objets VisionEye ?

Ultralytics YOLO11 VisionEye permet aux ordinateurs d'identifier et de pointer des objets, en 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, de la même manière que l'œil humain observe des détails à partir d'un point de vue particulier.

VisionEye View Object Mapping with Object Tracking using Ultralytics YOLO11

Cartographie VisionEye à l'aide d'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 Défaut Description
model str None Chemin d'accès au fichier modèleYOLO d'Ultralytics .
vision_point tuple[int, int] (50, 50) Le point où la vision suivra les objets et dessinera des trajectoires à l'aide de la solution VisionEye.

Vous pouvez également utiliser divers track à l'intérieur du VisionEye solution :

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

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

Comment fonctionne VisionEye

VisionEye fonctionne en établissant un point de vision fixe dans le cadre et en traçant des lignes à partir 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 entre les images, créant ainsi une représentation visuelle de la relation spatiale entre l'observateur (point de vision) et les objets de la scène.

Le process de la classe VisionEye effectue plusieurs opérations clés :

  1. Extraction de pistes (boîtes de délimitation, classes et masques) à partir de l'image d'entrée
  2. Crée un annotateur pour dessiner des boîtes de délimitation 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 connaissance de l'espace 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

La cartographie d'objets VisionEye a de nombreuses applications pratiques dans divers secteurs d'activité :

  • Sécurité et surveillance: Surveillance de plusieurs objets d'intérêt à partir d'une position de caméra fixe
  • Analyse de la vente au détail: Suivi des mouvements des clients par rapport aux étalages des magasins
  • Analyse sportive: Analyser le positionnement et le mouvement des joueurs du point de vue de l'entraîneur.
  • Véhicules autonomes: Visualiser 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 la distance ou l'estimation de la vitesse, vous pouvez construire des systèmes complets qui ne se contentent pas de suivre les objets, mais qui comprennent également leurs relations spatiales et leurs comportements.

Note

Pour toute question, n'hésitez pas à poster vos questions dans la section "Ultralytics Issue Section" 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 paquet Ultralytics YOLO via pip. Ensuite, vous pouvez utiliser le code d'exemple fourni dans la documentation pour configurer la détection d'objets avec VisionEye. Voici un exemple simple pour commencer :

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 utiliser Ultralytics YOLO11 pour la cartographie et le suivi d'objets ?

Ultralytics YOLO11 est réputé pour sa rapidité, sa précision et sa facilité d'intégration, ce qui en fait un choix de premier ordre pour la cartographie et le suivi d'objets. Ses principaux avantages sont les suivants

  1. Des performances de pointe: Détection d'objets en temps réel d'une grande précision.
  2. Flexibilité: Prise en charge de diverses tâches telles que la détection, le suivi et le calcul de la 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, ce qui permet un déploiement et une itération rapides.

Pour plus d'informations sur les demandes et les avantages, consultez la documentationUltralytics YOLO11 .

Comment puis-je intégrer VisionEye avec d'autres outils d'apprentissage automatique 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 une exploration plus approfondie et des exemples d'intégration, consultez notre guide des intégrationsUltralytics .

📅C réé il y a 1 an ✏️ Mis à jour il y a 8 jours

Commentaires