Skip to content

Speed Estimation using Ultralytics YOLO11 🚀

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

Speed estimation is the process of calculating the rate of movement of an object within a given context, often employed in computer vision applications. Using Ultralytics YOLO11 you can now calculate the speed of object using object tracking alongside distance and time data, crucial for tasks like traffic and surveillance. The accuracy of speed estimation directly influences the efficiency and reliability of various applications, making it a key component in the advancement of intelligent systems and real-time decision-making processes.



Regarde : Speed Estimation using Ultralytics YOLO11

Jette un coup d'Ĺ“il Ă  notre blog

For deeper insights into speed estimation, check out our blog post: Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects

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
Speed Estimation on Road using Ultralytics YOLO11 Speed Estimation on Bridge using Ultralytics YOLO11
Speed Estimation on Road using Ultralytics YOLO11 Speed Estimation on Bridge using Ultralytics YOLO11

Speed Estimation using YOLO11 Example

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

speed_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

speed = solutions.SpeedEstimator(model="yolo11n.pt", region=speed_region, show=True)

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

    if success:
        out = speed.estimate_speed(im0)
        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.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
model str None Path to Ultralytics YOLO Model File
region list [(20, 400), (1260, 400)] Liste des points définissant la région de comptage.
line_width int 2 Épaisseur du trait pour les boîtes de délimitation.
show bool False Drapeau permettant de contrôler l'affichage ou non du flux vidéo.

Arguments model.track

Argument Type DĂ©faut Description
source str None Specifies the source directory for images or videos. Supports file paths and URLs.
persist bool False Enables persistent tracking of objects between frames, maintaining IDs across video sequences.
tracker str botsort.yaml Specifies the tracking algorithm to use, e.g., bytetrack.yaml ou botsort.yaml.
conf float 0.3 Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives.
iou float 0.5 Sets the Intersection over Union (IoU) threshold for filtering overlapping detections.
classes list None Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes.
verbose bool True Controls the display of tracking results, providing a visual output of tracked objects.

FAQ

How do I estimate object speed using Ultralytics YOLO11?

Estimating object speed with Ultralytics YOLO11 involves combining object detection and tracking techniques. First, you need to detect objects in each frame using the YOLO11 model. Then, track these objects across frames to calculate their movement over time. Finally, use the distance traveled by the object between frames and the frame rate to estimate its speed.

Exemple:

import cv2

from ultralytics import solutions

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(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = speed_obj.estimate_speed(im0)
    video_writer.write(im0)

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

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

What are the benefits of using Ultralytics YOLO11 for speed estimation in traffic management?

Using Ultralytics YOLO11 for speed estimation offers significant advantages in traffic management:

  • 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.
  • Real-Time Monitoring: Benefit from YOLO11's real-time object detection capability to monitor traffic flow and congestion effectively.
  • É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.

Can YOLO11 be integrated with other AI frameworks like TensorFlow or PyTorch?

Yes, YOLO11 can be integrated with other AI frameworks like TensorFlow and PyTorch. Ultralytics provides support for exporting YOLO11 models to various formats like ONNX, TensorRT, and CoreML, ensuring smooth interoperability with other ML frameworks.

To export a YOLO11 model to ONNX format:

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

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

How accurate is the speed estimation using Ultralytics YOLO11?

The accuracy of speed estimation using Ultralytics YOLO11 depends on several factors, including the quality of the object tracking, the resolution and frame rate of the video, and environmental variables. While the speed estimator provides reliable estimates, it may not be 100% accurate due to variances in frame processing speed and object occlusion.

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.

Why choose Ultralytics YOLO11 over other object detection models like TensorFlow Object Detection API?

Ultralytics YOLO11 offers several advantages over other object detection models, such as the TensorFlow Object Detection API:

  • Real-Time Performance: YOLO11 is optimized for real-time detection, providing high speed and accuracy.
  • Ease of Use: Designed with a user-friendly interface, YOLO11 simplifies model training and deployment.
  • Polyvalence: Prend en charge de multiples tâches, notamment la dĂ©tection d'objets, la segmentation et l'estimation de la pose.
  • Community and Support: YOLO11 is backed by an active community and extensive documentation, ensuring developers have the resources they need.

For more information on the benefits of YOLO11, explore our detailed model page.


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

Commentaires