Ultralytics YOLOv8 para la estimación de velocidad en proyectos de visión artificial
Descubre cómo puedes utilizar el modelo Ultralytics YOLOv8 para la estimación de velocidad en tus proyectos de visión artificial. Pruébalo tú mismo con un sencillo ejemplo de código.

Probablemente todos hemos visto señales de límite de velocidad en la carretera. Algunos de nosotros puede que hasta hayamos recibido una notificación automatizada de infracción por exceso de velocidad por correo postal o electrónico. Los sistemas de gestión de tráfico basados en inteligencia artificial (IA) pueden marcar infracciones por exceso de velocidad automáticamente gracias a la visión artificial. El metraje en tiempo real capturado por cámaras en semáforos y autopistas se utiliza para la estimación de velocidad y para reforzar la seguridad vial.
La estimación de velocidad no se limita solo a la seguridad en las autopistas. Se puede utilizar en deportes, vehículos autónomos y otras diversas aplicaciones. En este artículo, hablaremos sobre cómo puedes usar el modelo Ultralytics YOLOv8 para la estimación de velocidad en tus proyectos de visión artificial. También veremos paso a paso un ejemplo de código para que puedas probarlo tú mismo. ¡Empecemos!
Link to this sectionLa estimación de velocidad facilita la gestión del tráfico#
Según la Organización Mundial de la Salud (OMS), aproximadamente 1,19 millones de personas mueren anualmente en accidentes de tráfico como resultado del exceso de velocidad. Además, de 20 a 50 millones más sufren lesiones no mortales, de las cuales muchas resultan en discapacidad. La importancia de la seguridad vial no puede sobreestimarse, especialmente cuando la estimación de velocidad ayuda a prevenir accidentes, salva vidas y mantiene nuestras carreteras seguras y eficientes.
La estimación de velocidad mediante visión artificial implica detectar y rastrear objetos en los fotogramas de vídeo para calcular a qué velocidad se mueven. Algoritmos como YOLOv8 pueden identificar y rastrear objetos como vehículos a través de fotogramas consecutivos. El sistema mide la distancia que recorren estos objetos usando cámaras calibradas o puntos de referencia para medir distancias en el mundo real. Al cronometrar cuánto tiempo tardan los objetos en moverse entre dos puntos, el sistema calcula su velocidad utilizando la relación distancia-tiempo.

Fig 1. Estimación de velocidad usando el modelo Ultralytics YOLOv8.
Además de captar a los conductores que exceden el límite, los sistemas de estimación de velocidad integrados con IA pueden recopilar datos para hacer predicciones sobre el tráfico. Estas predicciones pueden apoyar tareas de gestión de tráfico, como la optimización de los tiempos de los semáforos y la asignación de recursos. Los conocimientos sobre los patrones de tráfico y las causas de la congestión pueden utilizarse para planificar nuevas carreteras con el fin de reducir el tráfico.
Link to this sectionAplicaciones de la estimación de velocidad en otras industrias#
Las aplicaciones de la estimación de velocidad van más allá de la vigilancia de carreteras. También puede ser útil para controlar el rendimiento de los atletas, ayudar a los vehículos autónomos a comprender la velocidad de los objetos que se mueven a su alrededor, detectar comportamientos sospechosos, etc. Dondequiera que se pueda usar una cámara para medir la velocidad de un objeto, se puede usar la estimación de velocidad mediante visión artificial.
Aquí tienes algunos ejemplos de dónde se utiliza la estimación de velocidad:
- Los coches autónomos de Tesla utilizan la estimación de velocidad basada en visión para evitar colisiones.
- La visión artificial y la estimación de velocidad se utilizarán en los Juegos Olímpicos de 2024 para mejorar el análisis del rendimiento en pruebas de atletismo.
- Las ciudades inteligentes están investigando el análisis de la marcha de los peatones para controlar la velocidad al caminar y aumentar la movilidad y seguridad urbana. Estos sistemas pueden alertar a los conductores sobre la presencia de peatones y evitar accidentes.
- Los sistemas de monitorización del comportamiento animal utilizan la estimación de velocidad para rastrear el movimiento de los animales y detectar signos de angustia o enfermedad.

Fig 2. La estimación de velocidad puede medir la velocidad al caminar de una persona.
Link to this sectionLos beneficios de estimar la velocidad usando visión artificial#
Los sistemas de estimación de velocidad basados en visión están sustituyendo a los métodos tradicionales basados en sensores debido a su mayor precisión, rentabilidad y flexibilidad. A diferencia de los sistemas que dependen de sensores caros como LiDAR, la visión artificial utiliza cámaras estándar para controlar y analizar la velocidad en tiempo real. Las soluciones de visión artificial para la estimación de velocidad pueden integrarse perfectamente en la infraestructura de tráfico existente. Además, estos sistemas pueden construirse para realizar una serie de tareas complejas, como la identificación del tipo de vehículo y el análisis de patrones de tráfico para mejorar el flujo y la seguridad general del mismo.
Link to this sectionPruébalo tú mismo: Estimación de velocidad con YOLOv8#
Ahora que tenemos una idea clara de la estimación de velocidad y sus aplicaciones, analicemos más de cerca cómo puedes integrar la estimación de velocidad en tus proyectos de visión artificial mediante código. Detectaremos vehículos en movimiento y estimaremos su velocidad utilizando el modelo YOLOv8.
Este ejemplo utiliza un vídeo de coches en una carretera descargado de Internet. Puedes utilizar el mismo vídeo o cualquier vídeo relevante. El modelo YOLOv8 identifica el centro de cada vehículo y calcula su velocidad basándose en la rapidez con la que este centro cruza una línea horizontal en el fotograma del vídeo.
Antes de empezar, es importante señalar que, en este caso, el cálculo de la distancia es aproximado y se basa en la Distancia Euclidiana. La calibración de la cámara no se tiene en cuenta, por lo que la estimación de la velocidad puede no ser totalmente precisa. Además, la velocidad estimada puede variar dependiendo de la velocidad de tu GPU.
Paso 1: Empezaremos instalando el paquete Ultralytics. Abre tu símbolo del sistema o terminal y ejecuta el comando que se muestra a continuación.
pip install ultralyticsEcha un vistazo a nuestra guía de instalación de Ultralytics para obtener instrucciones paso a paso y mejores prácticas sobre el proceso de instalación. Si tienes algún problema durante la instalación de los paquetes necesarios para YOLOv8, nuestra guía de problemas comunes tiene soluciones y consejos útiles.
Paso 2: A continuación, importaremos las bibliotecas necesarias. La biblioteca OpenCV nos ayudará a gestionar el procesamiento de vídeo.
import cv2
from ultralytics import YOLO, solutionsPaso 3: Después, podemos cargar el modelo YOLOv8 y recuperar los nombres de las clases que el modelo puede detectar.
model = YOLO("yolov8n.pt")
names = model.model.namesConsulta todos los modelos que soportamos para entender qué modelo se adapta mejor a tu proyecto.
Paso 4: En este paso, abriremos el archivo de vídeo de entrada usando el módulo VideoCapture de OpenCV. También extraeremos el ancho, el alto y los fotogramas por segundo (fps) del vídeo.
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))Paso 5: Aquí, inicializaremos el escritor de vídeo para guardar nuestros resultados finales de la estimación de velocidad. El archivo de vídeo de salida se guardará como “speed_estimation.avi”.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))Paso 6: A continuación, podemos definir los puntos de la línea para la estimación de velocidad. Para nuestro vídeo de entrada, esta línea se colocará horizontalmente en el centro del fotograma. No dudes en jugar con los valores para colocar la línea en las posiciones más adecuadas, dependiendo de tu vídeo de entrada.
line_pts = [(0, 360), (1280, 360)]Paso 7: Ahora, podemos inicializar el objeto de estimación de velocidad usando los puntos de línea definidos y los nombres de las clases.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)Paso 8: El núcleo del script procesa el vídeo fotograma a fotograma. Leemos cada fotograma y detectamos y rastreamos objetos. Se estima la velocidad de los objetos rastreados y el fotograma anotado se escribe en el vídeo de salida.
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)Paso 9: Finalmente, liberamos los objetos de captura y escritura de vídeo y cerramos cualquier ventana de OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Paso 10: Guarda tu script. Si estás trabajando desde tu terminal o símbolo del sistema, ejecuta el script usando el siguiente comando:
python your_script_name.pyLink to this sectionLos desafíos de la estimación de velocidad basada en visión#
También es importante entender los desafíos que implica la implementación de la estimación de velocidad mediante visión artificial. Las condiciones meteorológicas desfavorables como lluvia, niebla o nieve pueden causar problemas al sistema, ya que pueden obstruir la visibilidad de la carretera. Del mismo modo, las oclusiones causadas por otros vehículos u objetos pueden dificultar que estos sistemas rastreen y estimen con precisión la velocidad de un vehículo objetivo. Las condiciones de iluminación deficientes que provocan sombras o el resplandor del sol también pueden complicar aún más la tarea de estimación de velocidad.
Otro desafío tiene que ver con la potencia computacional. Para estimar la velocidad en tiempo real, tenemos que procesar una gran cantidad de datos visuales procedentes de cámaras de tráfico de alta calidad. Tu solución puede requerir hardware costoso para manejar todo esto y asegurar que todo funcione rápidamente sin retrasos.
Luego, está el tema de la privacidad. Los datos recopilados por estos sistemas pueden incluir los detalles del vehículo de un individuo, como la marca, el modelo y la información de la matrícula, que se recopilan sin su consentimiento. Algunas cámaras HD modernas pueden incluso capturar imágenes de los ocupantes dentro del coche. Dicha recopilación de datos puede plantear graves problemas éticos y legales que deben manejarse con el mayor cuidado.
Link to this sectionAcelerando hacia el futuro#
Usar el modelo Ultralytics YOLOv8 para la estimación de velocidad proporciona una solución flexible y eficiente para muchos usos. Aunque existen desafíos, como la precisión en condiciones difíciles y abordar los problemas de privacidad, las ventajas son múltiples. La estimación de velocidad habilitada por visión artificial es más rentable, adaptable y precisa en comparación con las formas antiguas. Es útil en diversos sectores como el transporte, los deportes, la vigilancia y los coches autónomos. Con todos los beneficios y aplicaciones, está destinado a ser una parte clave de los futuros sistemas inteligentes.
¿Te interesa la IA? ¡Conecta con nuestra comunidad! Explora nuestro repositorio de GitHub para aprender más sobre cómo estamos usando la IA para crear soluciones innovadoras en diversas industrias como la salud y la agricultura. ¡Colabora, innova y aprende con nosotros! 🚀






