Ir al contenido

Estimación de Velocidad usando Ultralytics YOLO26 🚀

¿Qué es la estimación de velocidad?

La estimación de velocidad es el proceso de calcular la tasa de movimiento de un objeto dentro de un contexto dado, frecuentemente empleada en aplicaciones de visión por computadora. Con Ultralytics YOLO26 ahora se puede calcular la velocidad de los objetos utilizando el seguimiento de objetos junto con datos de distancia y tiempo, crucial para tareas como la monitorización del tráfico y la vigilancia. La precisión de la estimación de velocidad influye directamente en la eficiencia y fiabilidad de diversas aplicaciones, convirtiéndola en un componente clave en el avance de los sistemas inteligentes y los procesos de toma de decisiones en tiempo real.



Ver: Estimación de Velocidad usando Ultralytics YOLO26

Visite nuestro blog

Para obtener información más detallada sobre la estimación de velocidad, consulte nuestra entrada de blog: Ultralytics YOLO para la Estimación de Velocidad en Proyectos de Visión por Computadora

Ventajas de la Estimación de Velocidad

  • Control de tráfico eficiente: La estimación precisa de la velocidad ayuda a gestionar el flujo de tráfico, mejorando la seguridad y reduciendo la congestión en las carreteras.
  • Navegación autónoma precisa: En sistemas autónomos como los coches autónomos, 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 el análisis de vigilancia ayuda a identificar comportamientos inusuales o amenazas potenciales, lo que mejora la eficacia de las medidas de seguridad.

Aplicaciones en el mundo real

TransporteTransporte
Estimación de Velocidad en Carretera usando Ultralytics YOLO26Estimación de Velocidad en Puente usando Ultralytics YOLO26
Estimación de Velocidad en Carretera usando Ultralytics YOLO26Estimación de Velocidad en Puente usando Ultralytics YOLO26
La velocidad es una estimación

La velocidad será una estimación y puede no ser completamente precisa. Además, la estimación puede variar según las especificaciones de la cámara y los factores relacionados.

Estimación de la velocidad utilizando Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

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

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
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))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo26n.pt",  # path to the YOLO26 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # 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 el SpeedEstimator argumentos:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo Ultralytics YOLO.
fpsfloat30.0Fotogramas por segundo utilizados para los cálculos de velocidad.
max_histint5Puntos históricos máximos para track por objeto para los cálculos de velocidad/dirección.
meter_per_pixelfloat0.05Factor de escala utilizado para convertir la distancia en píxeles a unidades del mundo real.
max_speedint120Límite de velocidad máximo en superposiciones visuales (utilizado en alertas).

El SpeedEstimator la solución permite el uso de track parámetros:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml.
conffloat0.1Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersección sobre Unión (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas.
verboseboolTrueControla la visualización de los resultados del seguimiento, proporcionando una salida visual de los objetos rastreados.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de cálculo para la ejecución del modelo.

Adicionalmente, se admiten las siguientes opciones de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_widthint or NoneNoneEspecifica el ancho de línea de los cuadros delimitadores. Si None, el ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto con la etiqueta. Ofrece información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.

Preguntas frecuentes

¿Cómo estimo la velocidad de objetos utilizando Ultralytics YOLO26?

La estimación de la velocidad de objetos con Ultralytics YOLO26 implica la combinación de técnicas de detección y seguimiento de objetos. Primero, es necesario detect objetos en cada fotograma utilizando el modelo YOLO26. Luego, se realiza un seguimiento de estos objetos a través de los fotogramas para calcular su movimiento a lo largo del tiempo. Finalmente, se utiliza la distancia recorrida por el objeto entre fotogramas y la tasa de fotogramas para estimar su velocidad.

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(
    model="yolo26n.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 obtener más detalles, consulta nuestra publicación oficial en el blog.

¿Cuáles son los beneficios de usar Ultralytics YOLO26 para la estimación de velocidad en la gestión del tráfico?

El uso de Ultralytics YOLO26 para la estimación de velocidad ofrece ventajas significativas en la gestión del tráfico:

  • Seguridad mejorada: Estime con precisión la velocidad de los vehículos para detectar excesos de velocidad y mejorar la seguridad vial.
  • Monitorización en Tiempo Real: Benefíciese de la capacidad de detección de objetos en tiempo real de YOLO26 para monitorizar eficazmente el flujo de tráfico y la congestión.
  • Escalabilidad: Implemente el modelo en diversas 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, consulta las ventajas de la estimación de velocidad.

¿Puede YOLO26 integrarse con otros frameworks de IA como TensorFlow o PyTorch?

Sí, YOLO26 puede integrarse con otros frameworks de IA como TensorFlow y PyTorch. Ultralytics ofrece soporte para exportar modelos YOLO26 a varios formatos como ONNX, TensorRT y CoreML, asegurando una interoperabilidad fluida con otros frameworks de ML.

Para exportar un modelo YOLO26 al formato ONNX:

yolo export model=yolo26n.pt format=onnx

Obtenga más información sobre la exportación de modelos en nuestra guía sobre la exportación.

¿Qué tan precisa es la estimación de velocidad usando Ultralytics YOLO26?

La precisión de la estimación de velocidad usando Ultralytics YOLO26 depende de varios factores, incluyendo la calidad del seguimiento de objetos, la resolución y la tasa de fotogramas del video, y las variables ambientales. Aunque el estimador de velocidad proporciona estimaciones fiables, puede no ser 100% preciso debido a las variaciones en la velocidad de procesamiento de los fotogramas y la oclusión de objetos.

Nota: Siempre considere el margen de error y valide las estimaciones con datos reales cuando sea posible.

Para obtener más consejos sobre cómo mejorar la precisión, consulta el Argumentos SpeedEstimator sección.



📅 Creado hace 2 años ✏️ Actualizado hace 7 días
glenn-jocherRizwanMunawarMatthewNoyceRizwanMunawaraaurelions@gmail.comleonnilUltralyticsAssistantIvorZhu331Burhan-QAyushExel

Comentarios