Skip to content

Calcul de la distance à l'aide de Ultralytics YOLO11

Qu'est-ce que le calcul de la distance ?

La mesure de l'écart entre deux objets est connue sous le nom de calcul de la distance dans un espace spécifié. Dans le cas de Ultralytics YOLO11le centroïde de la boîte englobante est utilisé pour calculer la distance pour les boîtes englobantes mises en évidence par l'utilisateur.



Regarder : Calcul de la distance à l'aide de Ultralytics YOLO11

Visuels

Calcul de la distance à l'aide de Ultralytics YOLO11
Ultralytics YOLO11 Calcul de la distance

Avantages du calcul de la distance ?

  • Précision de la localisation : Améliore la précision du positionnement spatial dans les tâches de vision par ordinateur.
  • Estimation de la taille : Permet d'estimer la taille de l'objet pour une meilleure compréhension du contexte.
  • Compréhension de la scène : Améliore la compréhension des scènes en 3D pour une meilleure prise de décision dans des applications telles que les véhicules autonomes et les systèmes de surveillance.
  • Prévention des collisions : Permet aux systèmes de détecter les collisions potentielles en surveillant les distances entre les objets en mouvement.
  • Analyse spatiale : Facilite l'analyse des relations et des interactions entre les objets dans l'environnement surveillé.
Calcul de la distance
  • Cliquez avec le bouton gauche de la souris sur deux boîtes de délimitation quelconques pour calculer la distance.
  • Le clic droit de la souris supprime tous les points dessinés
  • Le clic gauche de la souris peut être utilisé pour dessiner des points.
La distance est estimée
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

Calcul de la distance avec Ultralytics YOLO

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

# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
    model="yolo11n.pt",  # path to the YOLO11 model file.
    show=True,  # display the output
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = distancecalculator(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

DistanceCalculation() Arguments

Voici un tableau avec les DistanceCalculation arguments :

Argument Type Défaut Description
model str None Chemin d'accès au fichier modèleYOLO d'Ultralytics .

Vous pouvez également utiliser divers track dans le DistanceCalculation 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, les arguments de visualisation suivants sont disponibles :

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

Détails de la mise en œuvre

Le DistanceCalculation fonctionne en suivant les objets dans les images vidéo et en calculant la distance euclidienne entre les centroïdes des boîtes de délimitation sélectionnées. Lorsque vous cliquez sur deux objets, la solution :

  1. Extrait les centroïdes (points centraux) des boîtes de délimitation sélectionnées.
  2. Calcule la distance euclidienne entre ces centroïdes en pixels
  3. Affiche la distance sur le cadre avec une ligne de connexion entre les objets.

La mise en œuvre utilise l'option mouse_event_for_distance pour gérer les interactions avec la souris, ce qui permet aux utilisateurs de sélectionner des objets et d'effacer les sélections si nécessaire. La méthode process gère le traitement image par image, le suivi des objets et le calcul des distances.

Applications

Le calcul de la distance avec YOLO11 a de nombreuses applications pratiques :

  • Analyse du commerce de détail : Mesure de la proximité des clients par rapport aux produits et analyse de l'efficacité de l'agencement des magasins
  • Sécurité industrielle : Contrôler les distances de sécurité entre les travailleurs et les machines
  • Gestion du trafic : Analyse de l'espacement entre les véhicules et détection des files d'attente
  • Analyse sportive : Calculez les distances entre les joueurs, le ballon et les positions clés sur le terrain.
  • Soins de santé : Assurer une bonne distanciation dans les salles d'attente et surveiller les mouvements des patients
  • Robotique : Permettre aux robots de maintenir des distances appropriées par rapport aux obstacles et aux personnes

FAQ

Comment calculer les distances entre les objets en utilisant Ultralytics YOLO11 ?

Calculer les distances entre les objets à l'aide de Ultralytics YOLO11vous devez identifier les centroïdes de la boîte englobante des objets détectés. Ce processus implique l'initialisation du DistanceCalculation de Ultralytics' solutions et en utilisant les données de suivi du modèle pour calculer les distances.

Quels sont les avantages de l'utilisation du calcul de la distance avec Ultralytics YOLO11 ?

L'utilisation du calcul de distance avec Ultralytics YOLO11 offre plusieurs avantages :

  • Précision de la localisation : Fournit un positionnement spatial précis des objets.
  • Estimation de la taille : Aide à estimer les tailles physiques, contribuant ainsi à une meilleure compréhension du contexte.
  • Compréhension de la scène : Améliore la compréhension des scènes en 3D, ce qui permet d'améliorer la prise de décision dans des applications telles que la conduite autonome et la surveillance.
  • Traitement en temps réel : Effectue des calculs à la volée, ce qui le rend adapté à l'analyse vidéo en direct.
  • Capacités d'intégration : Fonctionne de manière transparente avec d'autres solutions YOLO11 telles que le suivi d'objets et l'estimation de la vitesse.

Puis-je effectuer un calcul de distance dans des flux vidéo en temps réel avec Ultralytics YOLO11 ?

Oui, vous pouvez calculer la distance dans des flux vidéo en temps réel avec Ultralytics YOLO11 . Le processus consiste à capturer des images vidéo à l'aide de OpenCV, en cours d'exécution YOLO11 détection d'objetset en utilisant le DistanceCalculation pour calculer les distances entre les objets dans des images successives. Pour une implémentation détaillée, voir la page exemple de flux vidéo.

Comment supprimer les points dessinés lors du calcul de la distance à l'aide de Ultralytics YOLO11 ?

Pour effacer les points dessinés pendant le calcul de la distance avec Ultralytics YOLO11 , vous pouvez utiliser un clic droit de la souris. Cette action effacera tous les points que vous avez dessinés. Pour plus de détails, reportez-vous à la section note sous l'exemple de calcul de distance.

Quels sont les arguments clés pour initialiser la classe DistanceCalculation dans Ultralytics YOLO11 ?

Les arguments clés pour l'initialisation du DistanceCalculation dans Ultralytics YOLO11 incluent :

  • model: Chemin d'accès au fichier du modèle YOLO11 .
  • tracker: Algorithme de suivi à utiliser (la valeur par défaut est "botsort.yaml").
  • conf: Seuil de confiance pour les détections.
  • show: Drapeau pour afficher la sortie.

Pour une liste exhaustive et les valeurs par défaut, voir les arguments de DistanceCalculation.

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

Commentaires