Mappage d'objets avec VisionEye utilisant Ultralytics YOLO26 🚀
Qu'est-ce que le mappage d'objets VisionEye ?
VisionEye d'Ultralytics YOLO26 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 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]"Arguments 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 Ultralytics YOLO. |
vision_point | tuple[int, int] | (20, 20) | Le point où la vision suivra les objets et dessinera les 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, par exemple bytetrack.yaml ou botsort.yaml. |
conf | float | 0.1 | Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre davantage d'objets mais peuvent inclure des faux positifs. |
iou | float | 0.7 | Définit le seuil Intersection over 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 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. 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 fonctionne VisionEye
VisionEye fonctionne en établissant un point de vision fixe dans l'image 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 point de vue unique. 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 pistes (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 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 diverses industries :
- Sécurité et surveillance : Surveille plusieurs objets d'intérêt depuis une position de caméra fixe
- Analyse de 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 hiérarchise les objets dans son environnement
- Interaction humain-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.
Remarque
Pour toute demande, n'hésite pas à poster tes questions dans la section des problèmes Ultralytics ou dans la section de discussion mentionnée ci-dessous.
FAQ
Comment 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 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="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 windowsPourquoi devrais-je utiliser Ultralytics YOLO26 pour le mappage et le suivi d'objets ?
Ultralytics YOLO26 est renommé 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 d'Ultralytics YOLO26.
Comment 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 ainsi le suivi des expériences, la collaboration et la reproductibilité. Suis les guides détaillés sur comment utiliser YOLOv5 avec Comet et comment 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.