Saltar al contenido

Estimaci贸n de la velocidad mediante Ultralytics YOLOv8 馃殌

驴Qu茅 es la estimaci贸n de la velocidad?

La estimaci贸n de la velocidad es el proceso de c谩lculo de la velocidad de movimiento de un objeto dentro de un contexto determinado, a menudo empleado en aplicaciones de visi贸n por ordenador. Con Ultralytics YOLOv8 ahora puedes calcular la velocidad de un objeto utilizando el seguimiento del objeto junto con los datos de distancia y tiempo, algo crucial para tareas como el tr谩fico y la vigilancia. La precisi贸n de la estimaci贸n de la velocidad influye directamente en la eficacia y fiabilidad de diversas aplicaciones, por lo que es un componente clave en el avance de los sistemas inteligentes y los procesos de toma de decisiones en tiempo real.



Observa: Estimaci贸n de la velocidad mediante Ultralytics YOLOv8

驴Ventajas de la estimaci贸n de la velocidad?

  • Control eficaz del tr谩fico: La estimaci贸n precisa de la velocidad ayuda a gestionar el flujo de tr谩fico, mejorar la seguridad y reducir la congesti贸n en las carreteras.
  • Navegaci贸n aut贸noma precisa: En sistemas aut贸nomos como los coches autoconducidos, una estimaci贸n fiable de la velocidad garantiza una navegaci贸n segura y precisa del veh铆culo.
  • Seguridad de vigilancia mejorada: La estimaci贸n de la velocidad en los an谩lisis de vigilancia ayuda a identificar comportamientos inusuales o amenazas potenciales, mejorando la eficacia de las medidas de seguridad.

Aplicaciones en el mundo real

Transporte Transporte
Estimaci贸n de la velocidad en carretera mediante Ultralytics YOLOv8 Estimaci贸n de la velocidad en un puente mediante Ultralytics YOLOv8
Estimaci贸n de la velocidad en carretera mediante Ultralytics YOLOv8 Estimaci贸n de la velocidad en un puente mediante Ultralytics YOLOv8

Estimaci贸n de la velocidad mediante YOLOv8 Ejemplo

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 velocidad es una estimaci贸n

La velocidad ser谩 una estimaci贸n y puede no ser completamente exacta. Adem谩s, la estimaci贸n puede variar en funci贸n de la velocidad de la GPU.

Argumentos SpeedEstimator

Nombre Tipo Por defecto Descripci贸n
names dict None Diccionario de nombres de clase.
reg_pts list [(20, 400), (1260, 400)] Lista de puntos de la regi贸n para la estimaci贸n de la velocidad.
view_img bool False Si mostrar la imagen con anotaciones.
line_thickness int 2 Grosor de las l铆neas para dibujar cajas y pistas.
region_thickness int 5 Grosor de las l铆neas de la regi贸n.
spdl_dist_thresh int 10 Umbral de distancia para el c谩lculo de la velocidad.

Argumentos model.track

Nombre Tipo Por defecto Descripci贸n
source im0 None directorio fuente de im谩genes o v铆deos
persist bool False persistencia de pistas entre fotogramas
tracker str botsort.yaml M茅todo de seguimiento 'bytetrack' o 'botsort'
conf float 0.3 Umbral de confianza
iou float 0.5 Umbral del pagar茅
classes list None filtrar los resultados por clase, es decir, classes=0, o classes=[0,2,3]
verbose bool True Mostrar los resultados del seguimiento de objetos


Creado 2024-01-05, Actualizado 2024-05-18
Autores: glenn-jocher (4), Burhan-Q (1), RizwanMunawar (2), AyushExel (1)

Comentarios