Skip to content

Estimation de la vitesse à l'aide de Ultralytics YOLOv8 🚀

Qu'est-ce que l'estimation de la vitesse ?

L'estimation de la vitesse est le processus de calcul de la vitesse de déplacement d'un objet dans un contexte donné, souvent utilisé dans les applications de vision par ordinateur. En utilisant Ultralytics YOLOv8 tu peux maintenant calculer la vitesse d'un objet en utilisant le suivi d'objet en même temps que les données de distance et de temps, ce qui est crucial pour des tâches telles que la circulation et la surveillance. La précision de l'estimation de la vitesse influence directement l'efficacité et la fiabilité de diverses applications, ce qui en fait un élément clé dans l'avancement des systèmes intelligents et des processus de prise de décision en temps réel.



Regarde : Estimation de la vitesse Ă  l'aide de Ultralytics YOLOv8

Jette un coup d'Ĺ“il Ă  notre blog

Pour en savoir plus sur l'estimation de la vitesse, consulte notre article de blog : Ultralytics YOLOv8 pour l'estimation de la vitesse dans les projets de vision par ordinateur.

Avantages de l'estimation de la vitesse ?

  • ContrĂ´le efficace du trafic : Une estimation prĂ©cise de la vitesse permet de gĂ©rer le flux de circulation, d'amĂ©liorer la sĂ©curitĂ© et de rĂ©duire les embouteillages sur les routes.
  • Navigation autonome prĂ©cise : Dans les systèmes autonomes comme les voitures auto-conduites, une estimation fiable de la vitesse garantit une navigation sĂ»re et prĂ©cise du vĂ©hicule.
  • AmĂ©lioration de la sĂ©curitĂ© de la surveillance : L'estimation de la vitesse dans l'analyse de la surveillance permet d'identifier les comportements inhabituels ou les menaces potentielles, ce qui amĂ©liore l'efficacitĂ© des mesures de sĂ©curitĂ©.

Applications dans le monde réel

Transport Transport
Estimation de la vitesse sur route Ă  l'aide de Ultralytics YOLOv8 Estimation de la vitesse sur un pont Ă  l'aide de Ultralytics YOLOv8
Estimation de la vitesse sur route Ă  l'aide de Ultralytics YOLOv8 Estimation de la vitesse sur un pont Ă  l'aide de Ultralytics YOLOv8

Estimation de la vitesse Ă  l'aide de YOLOv8 Exemple

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
names = model.model.names

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

line_pts = [(0, 360), (1280, 360)]

# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
La vitesse est une estimation

La vitesse est une estimation et peut ne pas ĂŞtre tout Ă  fait exacte. De plus, l'estimation peut varier en fonction de la vitesse de GPU .

Arguments SpeedEstimator

Nom Type DĂ©faut Description
names dict None Dictionnaire des noms de classes.
reg_pts list [(20, 400), (1260, 400)] Liste des points de la région pour l'estimation de la vitesse.
view_img bool False Permet d'afficher ou non l'image avec des annotations.
line_thickness int 2 Épaisseur des lignes pour dessiner les boîtes et les pistes.
region_thickness int 5 Épaisseur des lignes de la région.
spdl_dist_thresh int 10 Seuil de distance pour le calcul de la vitesse.

Arguments model.track

Nom Type DĂ©faut Description
source im0 None répertoire source pour les images ou les vidéos
persist bool False persistance des pistes entre les images
tracker str botsort.yaml MĂ©thode de suivi 'bytetrack' ou 'botsort'
conf float 0.3 Seuil de confiance
iou float 0.5 Seuil de reconnaissance de dette
classes list None filtre les résultats par classe, c'est-à-dire classes=0, ou classes=[0,2,3]
verbose bool True Affiche les résultats du suivi des objets

FAQ

Comment estimer la vitesse d'un objet Ă  l'aide de Ultralytics YOLOv8 ?

L'estimation de la vitesse des objets avec Ultralytics YOLOv8 implique de combiner les techniques de détection et de suivi des objets. Tout d'abord, tu dois détecter les objets dans chaque image à l'aide du modèle YOLOv8 . Puis, suivre ces objets d'une image à l'autre pour calculer leur mouvement dans le temps. Enfin, utilise la distance parcourue par l'objet entre les images et la fréquence des images pour estimer sa vitesse.

Exemple:

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
names = model.model.names

cap = cv2.VideoCapture("path/to/video/file.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
    reg_pts=[(0, 360), (1280, 360)],
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    tracks = model.track(im0, persist=True, show=False)
    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Pour plus de détails, reporte-toi à notre article de blog officiel.

Quels sont les avantages de l'utilisation de Ultralytics YOLOv8 pour l'estimation de la vitesse dans la gestion du trafic ?

L'utilisation de Ultralytics YOLOv8 pour l'estimation de la vitesse offre des avantages significatifs dans la gestion du trafic :

  • SĂ©curitĂ© renforcĂ©e: Estime avec prĂ©cision la vitesse des vĂ©hicules pour dĂ©tecter les excès de vitesse et amĂ©liorer la sĂ©curitĂ© routière.
  • Surveillance en temps rĂ©el: Profite de la capacitĂ© de dĂ©tection d'objets en temps rĂ©el de YOLOv8 pour surveiller efficacement le flux de circulation et les embouteillages.
  • ÉvolutivitĂ©: DĂ©ploie le modèle sur diverses configurations matĂ©rielles, des appareils pĂ©riphĂ©riques aux serveurs, ce qui garantit des solutions flexibles et Ă©volutives pour les mises en Ĺ“uvre Ă  grande Ă©chelle.

Pour plus d'applications, voir les avantages de l'estimation de la vitesse.

YOLOv8 peut-il être intégré à d'autres frameworks d'IA comme TensorFlow ou PyTorch?

Oui, YOLOv8 peut être intégré à d'autres frameworks d'IA tels que TensorFlow et PyTorch. Ultralytics prend en charge l'exportation des modèles YOLOv8 vers différents formats tels que ONNX, TensorRT, et CoreML, ce qui garantit une interopérabilité harmonieuse avec d'autres frameworks de ML.

Pour exporter un modèle YOLOv8 au format ONNX :

yolo export --weights yolov8n.pt --include onnx

Pour en savoir plus sur l'exportation des modèles, consulte notre guide sur l'exportation.

Quelle est la précision de l'estimation de la vitesse à l'aide de Ultralytics YOLOv8 ?

La précision de l'estimation de la vitesse à l'aide de Ultralytics YOLOv8 dépend de plusieurs facteurs, notamment de la qualité du suivi des objets, de la résolution et de la fréquence des images de la vidéo, ainsi que des variables environnementales. Bien que l'estimateur de vitesse fournisse des estimations fiables, il peut ne pas être précis à 100 % en raison des variations de la vitesse de traitement des images et de l'occlusion des objets.

Remarque: il faut toujours tenir compte de la marge d'erreur et valider les estimations avec les données de la vérité terrain lorsque c'est possible.

Pour d'autres conseils sur l'amélioration de la précision, consulte la rubrique Arguments SpeedEstimator section.

Pourquoi choisir Ultralytics YOLOv8 plutôt que d'autres modèles de détection d'objets comme TensorFlow Object Detection API ?

Ultralytics YOLOv8 offre plusieurs avantages par rapport à d'autres modèles de détection d'objets, tels que l'API de détection d'objets TensorFlow :

  • Performance en temps rĂ©el: YOLOv8 est optimisĂ© pour la dĂ©tection en temps rĂ©el, offrant une vitesse et une prĂ©cision Ă©levĂ©es.
  • FacilitĂ© d'utilisation: Conçu avec une interface conviviale, YOLOv8 simplifie la formation et le dĂ©ploiement du modèle.
  • Polyvalence: Prend en charge de multiples tâches, notamment la dĂ©tection d'objets, la segmentation et l'estimation de la pose.
  • CommunautĂ© et assistance: YOLOv8 est soutenu par une communautĂ© active et une documentation complète, ce qui garantit que les dĂ©veloppeurs disposent des ressources dont ils ont besoin.

Pour plus d'informations sur les avantages de YOLOv8, explore la page détaillée de notre modèle.



Créé le 2024-01-05, Mis à jour le 2024-07-05
Auteurs : glenn-jocher (7), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)

Commentaires