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

Consulta nuestro blog

Para profundizar en la estimaci贸n de la velocidad, consulta nuestra entrada del blog: Ultralytics YOLOv8 para la estimaci贸n de la velocidad en proyectos de visi贸n por ordenador

驴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 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

PREGUNTAS FRECUENTES

驴C贸mo puedo estimar la velocidad de un objeto utilizando Ultralytics YOLOv8 ?

Estimar la velocidad de un objeto con Ultralytics YOLOv8 implica combinar t茅cnicas de detecci贸n y seguimiento de objetos. En primer lugar, tienes que detectar objetos en cada fotograma utilizando el modelo YOLOv8 . Despu茅s, rastrea estos objetos a trav茅s de los fotogramas para calcular su movimiento en el tiempo. Por 煤ltimo, utiliza la distancia recorrida por el objeto entre fotogramas y la frecuencia de fotogramas para estimar su velocidad.

Ejemplo:

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()

Para m谩s detalles, consulta la entrada oficial de nuestro blog.

驴Cu谩les son las ventajas de utilizar Ultralytics YOLOv8 para estimar la velocidad en la gesti贸n del tr谩fico?

Utilizar Ultralytics YOLOv8 para estimar la velocidad ofrece importantes ventajas en la gesti贸n del tr谩fico:

  • Seguridad mejorada: Estima con precisi贸n la velocidad de los veh铆culos para detectar el exceso de velocidad y mejorar la seguridad vial.
  • Supervisi贸n en tiempo real: Benef铆ciate de la capacidad de detecci贸n de objetos en tiempo real de YOLOv8 para controlar eficazmente el flujo y la congesti贸n del tr谩fico.
  • Escalabilidad: Despliega el modelo en varias configuraciones de hardware, desde dispositivos de borde a servidores, garantizando soluciones flexibles y escalables para implementaciones a gran escala.

Para m谩s aplicaciones, consulta las ventajas de la estimaci贸n de la velocidad.

驴Puede integrarse YOLOv8 con otros marcos de IA como TensorFlow o PyTorch?

S铆, YOLOv8 puede integrarse con otros marcos de IA como TensorFlow y PyTorch. Ultralytics proporciona soporte para exportar modelos de YOLOv8 a varios formatos como ONNX, TensorRT y CoreML, garantizando una interoperabilidad sin problemas con otros marcos de ML.

Para exportar un modelo de YOLOv8 al formato ONNX :

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

Obt茅n m谩s informaci贸n sobre la exportaci贸n de modelos en nuestra gu铆a sobre exportaci贸n.

驴Cu谩l es la precisi贸n de la estimaci贸n de la velocidad utilizando Ultralytics YOLOv8 ?

La precisi贸n de la estimaci贸n de la velocidad mediante Ultralytics YOLOv8 depende de varios factores, como la calidad del seguimiento del objeto, la resoluci贸n y la velocidad de fotogramas del v铆deo, y las variables ambientales. Aunque el estimador de velocidad proporciona estimaciones fiables, puede no ser preciso al 100% debido a las variaciones en la velocidad de procesamiento de fotogramas y a la oclusi贸n de objetos.

Nota: Ten siempre en cuenta el margen de error y valida las estimaciones con datos reales sobre el terreno cuando sea posible.

Para obtener m谩s consejos de mejora de la precisi贸n, consulta Argumentos SpeedEstimator secci贸n.

驴Por qu茅 elegir Ultralytics YOLOv8 en lugar de otros modelos de detecci贸n de objetos como TensorFlow API de Detecci贸n de Objetos?

Ultralytics YOLOv8 ofrece varias ventajas sobre otros modelos de detecci贸n de objetos, como la API de detecci贸n de objetos TensorFlow :

  • Rendimiento en tiempo real: YOLOv8 est谩 optimizado para la detecci贸n en tiempo real, proporcionando alta velocidad y precisi贸n.
  • Facilidad de uso: Dise帽ado con una interfaz f谩cil de usar, YOLOv8 simplifica la formaci贸n y la implantaci贸n de modelos.
  • Versatilidad: Admite m煤ltiples tareas, como la detecci贸n de objetos, la segmentaci贸n y la estimaci贸n de la pose.
  • Comunidad y asistencia: YOLOv8 est谩 respaldado por una comunidad activa y una amplia documentaci贸n, lo que garantiza que los desarrolladores dispongan de los recursos que necesitan.

Para m谩s informaci贸n sobre las ventajas de YOLOv8, explora nuestra p谩gina de modelos detallados.



Creado 2024-01-05, Actualizado 2024-07-05
Autores: glenn-jocher (7), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)

Comentarios