Meet YOLO26: next-gen vision AI.

Link to this sectionCalcul de distance avec Ultralytics YOLO26#

Link to this sectionQu'est-ce que le calcul de distance ?#

Le calcul de distance est le processus de mesure de l'espace entre deux objets détectés dans une image ou une image vidéo. Dans le cas d'Ultralytics YOLO26, le centroïde de la bounding box est utilisé pour calculer la distance pour les boîtes englobantes sélectionnées par l'utilisateur.



Watch: How to estimate distance between detected objects with Ultralytics YOLO in Pixels 🚀

Link to this sectionVisuels#

Calcul de distance avec Ultralytics YOLO26
Calcul de distance avec Ultralytics YOLO26

Link to this sectionAvantages du calcul de distance#

  • Précision de localisation : Améliore le positionnement spatial précis dans les tâches de computer vision.
  • Estimation de la taille : Permet d'estimer la taille des objets pour une meilleure compréhension contextuelle.
  • Compréhension de la scène : Améliore la compréhension des scènes 3D pour une meilleure prise de décision dans des applications telles que les autonomous vehicles et les systèmes de surveillance.
  • Évitement de collision : Permet aux systèmes de détecter des 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 distance
  • Clique sur deux boîtes englobantes avec le bouton gauche de la souris pour calculer la distance.
  • Utilise le bouton droit de la souris pour supprimer tous les points dessinés.
  • Fais un clic gauche n'importe où dans l'image pour ajouter de nouveaux points.
La distance est une estimation

La distance est une estimation et peut ne pas être totalement précise car elle est calculée en utilisant des données 2D, qui manquent d'informations de profondeur.

Calcul de 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="yolo26n.pt",  # path to the YOLO26 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

Link to this sectionArguments de DistanceCalculation()#

Voici un tableau avec les arguments de DistanceCalculation :

ArgumentTypePar défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.

Tu peux aussi utiliser divers arguments track dans la solution DistanceCalculation.

ArgumentTypePar défautDescription
trackerstr'botsort.yaml'Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml.
conffloat0.1Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre plus d'objets mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil Intersection over Union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées.
verboseboolTrueContrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis.
devicestrNoneSpé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, les arguments de visualisation suivants sont disponibles :

ArgumentTypePar défautDescription
showboolFalseSi 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_widthint or NoneNoneSpé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_confboolTrueAffiche 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_labelsboolTrueAffiche les étiquettes pour chaque détection dans la sortie visuelle. Permet une compréhension immédiate des objets détectés.

Link to this sectionDétails de l'implémentation#

La classe DistanceCalculation fonctionne en suivant les objets à travers les images vidéo et en calculant la distance euclidienne entre les centroïdes des boîtes englobantes sélectionnées. Lorsque tu cliques sur deux objets, la solution :

  1. Extrait les centroïdes (points centraux) des boîtes englobantes sélectionnées
  2. Calcule la distance euclidienne entre ces centroïdes en pixels
  3. Affiche la distance sur l'image avec une ligne reliant les objets

L'implémentation utilise la méthode mouse_event_for_distance pour gérer les interactions à la souris, permettant aux utilisateurs de sélectionner des objets et d'effacer les sélections selon leurs besoins. La méthode process gère le traitement image par image, le suivi des objets et le calcul des distances.

Link to this sectionApplications#

Le calcul de distance avec YOLO26 a de nombreuses applications pratiques :

  • Analyse de détail : Mesurer la proximité des clients avec les produits et analyser l'efficacité de l'aménagement du magasin
  • Sécurité industrielle : Surveiller les distances de sécurité entre les travailleurs et les machines
  • Gestion du trafic : Analyser l'espacement entre les véhicules et détecter le non-respect des distances de sécurité
  • Analyse sportive : Calculer les distances entre les joueurs, le ballon et les positions clés sur le terrain
  • Santé : Assurer une distanciation appropriée dans les salles d'attente et surveiller les déplacements des patients
  • Robotique : Permettre aux robots de maintenir des distances appropriées par rapport aux obstacles et aux personnes

Link to this sectionFAQ#

Link to this sectionComment calculer les distances entre des objets en utilisant Ultralytics YOLO26 ?#

Pour calculer les distances entre des objets en utilisant Ultralytics YOLO26, tu dois identifier les centroïdes des boîtes englobantes des objets détectés. Ce processus implique d'initialiser la classe DistanceCalculation à partir du module solutions d'Ultralytics et d'utiliser les sorties de suivi du modèle pour calculer les distances.

Link to this sectionQuels sont les avantages d'utiliser le calcul de distance avec Ultralytics YOLO26 ?#

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

  • Précision de localisation : Fournit un positionnement spatial précis pour les objets.
  • Estimation de la taille : Aide à estimer les tailles physiques, contribuant à une meilleure compréhension contextuelle.
  • Compréhension de la scène : Améliore la compréhension des scènes 3D, aidant à une meilleure prise de décision dans des applications comme la conduite autonome et la surveillance.
  • Traitement en temps réel : Effectue les 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 YOLO26 comme le object tracking et la speed estimation.

Link to this sectionPuis-je effectuer un calcul de distance dans des flux vidéo en temps réel avec Ultralytics YOLO26 ?#

Oui, tu peux effectuer un calcul de distance dans des flux vidéo en temps réel avec Ultralytics YOLO26. Le processus implique la capture d'images vidéo à l'aide d'OpenCV, l'exécution de l'object detection YOLO26, et l'utilisation de la classe DistanceCalculation pour calculer les distances entre les objets dans des images successives. Pour une implémentation détaillée, voir l'exemple de flux vidéo.

Link to this sectionComment supprimer les points dessinés pendant le calcul de distance avec Ultralytics YOLO26 ?#

Pour supprimer les points dessinés pendant le calcul de distance avec Ultralytics YOLO26, tu peux utiliser un clic droit de la souris. Cette action effacera tous les points que tu as dessinés. Pour plus de détails, réfère-toi à la section des notes sous l'exemple de calcul de distance.

Link to this sectionQuels sont les arguments clés pour initialiser la classe DistanceCalculation dans Ultralytics YOLO26 ?#

Les arguments clés pour initialiser la classe DistanceCalculation dans Ultralytics YOLO26 incluent :

  • model : Chemin vers le fichier de modèle YOLO26.
  • tracker : Algorithme de suivi à utiliser (par défaut est 'botsort.yaml').
  • conf : Seuil de confiance pour les détections.
  • show : Indicateur pour afficher la sortie.

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

Commentaires