Ir al contenido

Estimación de la velocidad mediante Ultralytics YOLO11 🚀

¿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. En Ultralytics YOLO11 ahora es posible calcular la velocidad de los objetos utilizando el seguimiento de objetos junto con datos de distancia y tiempo, lo que resulta crucial para tareas como el control y la vigilancia del tráfico. La precisión de la estimación de la velocidad influye directamente en la eficacia y fiabilidad de diversas aplicaciones, lo que la convierte en un componente clave para el avance de los sistemas inteligentes y los procesos de toma de decisiones en tiempo real.



Observa: Estimación de la velocidad mediante Ultralytics YOLO11

Visita nuestro blog

Para profundizar en la estimación de la velocidad, consulte nuestra entrada de blog: Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects (en inglés).

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 YOLO11 Estimación de la velocidad en puentes mediante Ultralytics YOLO11
Estimación de la velocidad en carretera mediante Ultralytics YOLO11 Estimación de la velocidad en puentes mediante Ultralytics YOLO11
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 y de factores ambientales.

Estimación de la velocidad mediante Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Pass region coordinates
yolo solutions speed region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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 points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    region=speed_region,  # pass region points
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

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

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = speedestimator(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

SpeedEstimator Argumentos

Aquí tiene una tabla con los SpeedEstimator argumentos:

Argumento Tipo Por defecto Descripción
model str None Ruta al archivo del modeloYOLO Ultralytics .
region list [(20, 400), (1260, 400)] Lista de puntos que definen la región de recuento.

En SpeedEstimator permite utilizar track parámetros:

Argumento Tipo Por defecto Descripción
tracker str 'botsort.yaml' Especifica el algoritmo de seguimiento a utilizar, por ejemplo, bytetrack.yaml o botsort.yaml.
conf float 0.3 Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos pero pueden incluir falsos positivos.
iou float 0.5 Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas.
classes list None Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] sólo rastrea las clases especificadas.
verbose bool True Controla la visualización de los resultados del rastreo, proporcionando una salida visual de los objetos rastreados.
device str None Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo.

Además, se admiten las siguientes opciones de visualización:

Argumento Tipo Por defecto Descripción
show bool False Si Truemuestra las imágenes o vídeos anotados en una ventana. Resulta útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_width None or int None Especifica el ancho de línea de los cuadros delimitadores. Si NoneEl ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.

PREGUNTAS FRECUENTES

¿Cómo puedo estimar la velocidad de un objeto utilizando Ultralytics YOLO11 ?

Estimar la velocidad de un objeto con Ultralytics YOLO11 implica combinar técnicas de detección y seguimiento de objetos. En primer lugar, es necesario detectar objetos en cada fotograma utilizando el modelo YOLO11 . A continuación, realizar un seguimiento de 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.

Por ejemplo:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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
speedestimator = solutions.SpeedEstimator(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

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

Para más detalles, consulte nuestra entrada oficial en el blog.

¿Cuáles son las ventajas de utilizar Ultralytics YOLO11 para estimar la velocidad en la gestión del tráfico?

La utilización de Ultralytics YOLO11 para la estimación de la velocidad ofrece importantes ventajas en la gestión del tráfico:

  • Mayor seguridad: Estime 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íciese de la capacidad de detección de objetos en tiempo real de YOLO11 para supervisar eficazmente el flujo de tráfico y los atascos.
  • Escalabilidad: Despliegue el modelo en varias configuraciones de hardware, desde dispositivos periféricos hasta servidores, lo que garantiza soluciones flexibles y escalables para implementaciones a gran escala.

Para más aplicaciones, consulte las ventajas de la estimación de la velocidad.

¿Puede YOLO11 integrarse con otros marcos de IA como TensorFlow o PyTorch?

Sí, YOLO11 puede integrarse con otros marcos de IA como TensorFlow y PyTorch. Ultralytics ofrece soporte para exportar modelos YOLO11 a varios formatos como ONNX, TensorRTy CoreMLgarantizando una interoperabilidad fluida con otros marcos de ML.

Para exportar un modelo YOLO11 al formato ONNX :

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

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 mediante Ultralytics YOLO11 ?

La precisión de la estimación de la velocidad mediante Ultralytics YOLO11 depende de varios factores, como la calidad del seguimiento del objeto, la resolución y la frecuencia 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: tenga siempre en cuenta el margen de error y valide las estimaciones con datos reales sobre el terreno cuando sea posible.

Si desea más consejos para mejorar la precisión, consulte el Argumentos SpeedEstimator sección.

Creado hace 1 año ✏️ Actualizado hace 8 días

Comentarios