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 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 :
- Extrait les pistes (boîtes englobantes, classes et masques) de l'image d'entrée
- Crée un annotateur pour dessiner des boîtes englobantes et des étiquettes
- Pour chaque objet détecté, dessine une étiquette de boîte et crée une ligne de vision à partir du point de vision
- 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 :
- Performance de pointe : Offre une haute 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 complète et communauté GitHub active pour le dépannage et les améliorations.
- 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.