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 |
---|
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
- Cliquez avec le bouton gauche de la souris sur deux boîtes de délimitation quelconques 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 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.
Arguments DistanceCalculation()
Name |
Type |
Default |
Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier modèle Ultralytics YOLO |
line_width |
int |
2 |
Épaisseur du trait pour les cadres de délimitation. |
show |
bool |
False |
Indicateur permettant de contrôler l'affichage ou non du flux vidéo. |
Arguments model.track
Argument | Type | DĂ©faut | Description |
---|---|---|---|
source |
str |
None |
Spé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. |
persist |
bool |
False |
Permet un suivi persistant des objets entre les images, en conservant les identifiants sur l'ensemble des séquences vidéo. |
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. |
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. Vous pouvez vous 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 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.
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 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.