Link to this sectionMappage d'objets VisionEye avec Ultralytics YOLO26 🚀#
Link to this sectionQu'est-ce que le mappage d'objets VisionEye ?#
Ultralytics YOLO26 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, tout comme l'œil humain observe les détails depuis un point de vue particulier.
# 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]"Link to this sectionArguments de VisionEye#
Voici un tableau avec les arguments de VisionEye :
| Argument | Type | Défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès vers un fichier de modèle YOLO d'Ultralytics. |
vision_point | tuple[int, int] | (20, 20) | Le point où la vision suivra les objets et dessinera des chemins en utilisant la Solution VisionEye. |
Tu peux également utiliser divers arguments track au sein de la solution VisionEye :
| Argument | Type | Défaut | Description |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Spécifie l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | 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.7 | Définit le seuil d'Intersection sur Union (IoU) pour filtrer les 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 de suivi, en fournissant une sortie visuelle des objets suivis. |
device | str | None | Spécifie le périphérique pour l'inférence (par ex. cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres dispositifs 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 | 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 lors du développement ou des tests. |
line_width | int or None | None | Spécifie l'épaisseur de ligne des boîtes englobantes. Si None, l'épaisseur de ligne est automatiquement ajustée en fonction de la taille de l'image. Offre 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. Permet une compréhension immédiate des objets détectés. |
Link to this sectionComment fonctionne VisionEye#
VisionEye fonctionne en établissant un point de vision fixe dans le cadre et en traçant des lignes depuis ce point vers les objets détectés. Cela simule la façon dont la vision humaine se concentre sur plusieurs objets depuis 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.
La méthode process dans la classe VisionEye effectue plusieurs opérations clés :
- Extrait les suivis (boîtes englobantes, classes et masques) de l'image d'entrée
- Crée un annotateur pour dessiner les boîtes englobantes et les étiquettes
- Pour chaque objet détecté, dessine une étiquette de boîte et crée une ligne de vision depuis le point de vision
- Renvoie 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 objets, telles que les systèmes de surveillance, la navigation autonome et les installations interactives.
Link to this sectionApplications de VisionEye#
Le mappage d'objets VisionEye a de nombreuses applications pratiques dans divers secteurs :
- Sécurité et Surveillance : Surveille plusieurs objets d'intérêt depuis une position de caméra fixe
- Analyse de la vente au détail : Suis les modèles de mouvement des clients par rapport aux présentoirs du magasin
- Analyse sportive : Analyse le positionnement et les mouvements des joueurs du point de vue d'un entraîneur
- Véhicules autonomes : Visualise comment un véhicule « voit » et priorise les objets dans son environnement
- Interaction Homme-Machine : Crée des interfaces plus intuitives qui répondent aux relations spatiales
En combinant VisionEye avec d'autres solutions Ultralytics comme le calcul de distance ou l' estimation de vitesse, tu peux construire des systèmes complets qui non seulement suivent les objets, mais comprennent aussi leurs relations spatiales et leurs comportements.
Link to this sectionRemarque#
Pour toute question, n'hésite pas à poster tes interrogations dans la section des problèmes Ultralytics ou dans la section de discussion mentionnée ci-dessous.
Link to this sectionFAQ#
Link to this sectionComment puis-je commencer à utiliser le mappage d'objets VisionEye avec Ultralytics YOLO26 ?#
Pour commencer à utiliser le mappage d'objets VisionEye avec Ultralytics YOLO26, tu dois d'abord installer le package Ultralytics YOLO via pip. Ensuite, tu peux utiliser l'exemple de code fourni dans la documentation pour configurer la détection d'objets avec VisionEye. Voici un exemple simple pour t'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="yolo26n.pt", # use any model that Ultralytics supports, e.g., 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 windowsLink to this sectionPourquoi devrais-je utiliser Ultralytics YOLO26 pour le mappage et le suivi d'objets ?#
Ultralytics YOLO26 est réputé pour sa vitesse, sa précision et sa facilité d'intégration, ce qui en fait un choix de premier ordre pour le mappage et le suivi d'objets. Ses avantages clés incluent :
- Performance de pointe : Offre une grande précision dans la détection d'objets en temps réel.
- Flexibilité : Prend en charge diverses tâches telles que la détection, le suivi et le calcul de distance.
- Communauté et support : Documentation étendue et communauté GitHub active pour le dépannage et les améliorations.
- Facilité d'utilisation : Une 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, consulte la documentation Ultralytics YOLO26.
Link to this sectionComment puis-je intégrer VisionEye avec d'autres outils d' apprentissage automatique comme Comet ou ClearML ?#
Ultralytics YOLO26 peut s'intégrer de manière transparente avec divers outils d'apprentissage automatique comme Comet et ClearML, améliorant le suivi des expériences, la collaboration et la reproductibilité. Suis les guides détaillés sur comment utiliser YOLOv5 avec Comet et intégrer YOLO26 avec ClearML pour commencer.
Pour une exploration plus approfondie et des exemples d'intégration, consulte notre Guide des intégrations Ultralytics.