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 YOLO11, le centroïde de la boîte de délimitation est utilisé pour calculer la distance pour les boîtes de délimitation mises en évidence par l'utilisateur.



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

Visuels

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

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.
Calcul de la distance
  • Clique sur deux boîtes délimitées avec le bouton gauche de la souris pour calculer la distance.

Calcul de la distance à l'aide de YOLO11 Exemple

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)

# 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
    im0 = distance.calculate(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
Note
  • 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 une estimation
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.

Arguments DistanceCalculation()

NameTypeDefaultDescription
modelstrNoneChemin d'accès au fichier modèle Ultralytics YOLO
line_widthint2Épaisseur du trait pour les boîtes de délimitation.
showboolFalseDrapeau permettant de contrôler l'affichage ou non du flux vidéo.

Arguments model.track

ArgumentTypeDéfautDescription
sourcestrNoneSpécifie le répertoire source pour les images ou les vidéos. Prend en charge les chemins d'accès aux fichiers et les URL.
persistboolFalsePermet un suivi persistant des objets entre les images, en conservant les identifiants à travers les séquences vidéo.
trackerstrbotsort.yamlSpécifie l'algorithme de suivi à utiliser, par ex, bytetrack.yaml ou botsort.yaml.
conffloat0.3Dé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.
ioufloat0.5Définit le seuil d'intersection sur l'union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
verboseboolTrueContrôle l'affichage des résultats du suivi, en fournissant une sortie visuelle des objets suivis.

FAQ

Comment calculer les distances entre les objets à l'aide de Ultralytics YOLO11 ?

Pour calculer les distances entre les objets à l'aide de Ultralytics YOLO11Pour cela, tu dois identifier les centroïdes de la boîte de délimitation des objets détectés. Ce processus implique l'initialisation du DistanceCalculation classe de Ultralytics' solutions et en utilisant les données de suivi du modèle pour calculer les distances. Tu peux te référer à la mise en œuvre dans le exemple de calcul de distance.

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 pour les objets.
  • Estimation de la taille : Aide à estimer les tailles physiques, ce qui contribue à 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.

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

Oui, tu peux effectuer un calcul de distance dans les 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 supprimer les points dessinés pendant le calcul de la distance avec Ultralytics YOLO11, 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, reporte-toi à la section note sous l'exemple de calcul de distance.

Quels sont les principaux arguments en faveur de l'initialisation de la classe DistanceCalculation dans Ultralytics YOLO11 ?

Les arguments clés pour initialiser le DistanceCalculation dans Ultralytics YOLO11 sont les suivants :

  • model: Chemin du fichier modèle.
  • show: Drapeau indiquant si le flux vidéo doit être affiché.
  • line_width: Épaisseur de la boîte de délimitation et des lignes dessinées sur l'image.

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

📅 C réé il y a 10 mois ✏️ Mis à jour il y a 9 jours

Commentaires