Ultralytics YOLOv8 para estimar la velocidad en proyectos de visión artificial
Descubre cómo utilizar el modelo Ultralytics YOLOv8 para estimar la velocidad en tus proyectos de visión artificial. Pruébalo con un sencillo ejemplo de código.
Abirami Vina8 min de lectura
Probablemente todos hayamos visto señales de límite de velocidad. Algunos incluso habremos recibido por correo postal o electrónico una notificación automática por exceso de velocidad. Los sistemas de gestión del tráfico basados en inteligencia artificial (IA) pueden detectar automáticamente las infracciones por exceso de velocidad gracias a la visión artificial. Las imágenes en tiempo real captadas por cámaras en farolas y autopistas se utilizan para estimar la velocidad y mejorar la seguridad vial.
La estimación de velocidad no se limita a la seguridad en carretera. También puede utilizarse en deportes, vehículos autónomos y muchas otras aplicaciones. En este artículo, veremos cómo puedes utilizar el modelo Ultralytics YOLOv8 para estimar la velocidad en tus proyectos de visión artificial. También explicaremos paso a paso un ejemplo de código para que puedas probarlo.
La estimación de velocidad facilita la gestión del tráfico#
Según la Organización Mundial de la Salud (WHO), aproximadamente 1,16 millones de personas mueren cada año en accidentes de tráfico, y el exceso de velocidad es uno de los principales factores. Además, entre 20 y 50 millones de personas más sufren lesiones no mortales, muchas de las cuales provocan discapacidades. No se puede exagerar la importancia de la seguridad vial, especialmente cuando la estimación de velocidad ayuda a prevenir accidentes, salvar vidas y mantener nuestras carreteras seguras y eficientes.
La estimación de velocidad mediante visión artificial consiste en detectar y seguir objetos en fotogramas de vídeo para calcular a qué velocidad se mueven. Modelos como Ultralytics YOLOv8 pueden identificar y seguir objetos, como vehículos, en fotogramas consecutivos. El sistema mide la distancia que recorren estos objetos mediante cámaras calibradas o puntos de referencia para calcular distancias reales. Al medir el tiempo que tardan los objetos en desplazarse entre dos puntos, el sistema calcula su velocidad a partir de la relación entre distancia y tiempo.

Fig. 1. Estimación de velocidad con el modelo Ultralytics YOLOv8.
Además de detectar a quienes superan el límite de velocidad, los sistemas de estimación de velocidad con IA pueden recopilar datos para predecir el tráfico. Estas predicciones pueden contribuir a tareas de gestión del tráfico, como optimizar los tiempos de los semáforos y la asignación de recursos. La información sobre los patrones del tráfico y las causas de la congestión puede utilizarse para planificar nuevas carreteras y reducir los atascos.
Aplicaciones de la estimación de velocidad en otros sectores#
Las aplicaciones de estimación de velocidad van más allá de la vigilancia de carreteras. También puede ser útil para supervisar el rendimiento de los atletas, ayudar a los vehículos autónomos a conocer la velocidad de los objetos que se mueven a su alrededor, detectar comportamientos sospechosos, etc. Siempre que puedas usar una cámara para medir la velocidad de un objeto, puedes aplicar la estimación de velocidad mediante visión artificial.
Estos son algunos ejemplos de usos de la estimación de velocidad:
- Los coches autónomos de Tesla usan la estimación de velocidad basada en visión para evitar colisiones.
- Las ciudades inteligentes investigan el análisis de la marcha de los peatones para supervisar su velocidad al caminar y mejorar la movilidad y la seguridad urbanas. Estos sistemas pueden avisar a los conductores de la presencia de peatones y prevenir accidentes.
- Los sistemas de supervisión del comportamiento animal utilizan la estimación de velocidad para seguir los movimientos de los animales y detectar señales de estrés o enfermedad.

Fig. 2. La estimación de velocidad puede medir la velocidad de marcha de una persona.
Ventajas de estimar la velocidad mediante 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 gracias 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 supervisar y analizar la velocidad en tiempo real. Las soluciones de visión artificial para estimar la velocidad pueden integrarse en las infraestructuras de tráfico existentes. Además, estos sistemas pueden realizar varias tareas complejas, como identificar el tipo de vehículo y analizar los patrones de tráfico, para mejorar el flujo y la seguridad vial en general.
Pruébalo: estimación de velocidad con Ultralytics YOLOv8#
Ahora que ya entendemos la estimación de velocidad y sus aplicaciones, veamos cómo puedes integrarla en tus proyectos de visión artificial mediante código. Detectaremos vehículos en movimiento y estimaremos su velocidad con el modelo Ultralytics YOLOv8.
Este ejemplo utiliza un vídeo de coches en una carretera descargado de Internet. Puedes usar el mismo vídeo o cualquier otro que resulte pertinente. El modelo Ultralytics YOLOv8 detecta y sigue cada vehículo, y el estimador de velocidad convierte la distancia recorrida por cada vehículo seguido a lo largo de varios fotogramas en una velocidad, utilizando la frecuencia de fotogramas del vídeo y una escala de metros por píxel.
Antes de empezar, es importante tener en cuenta que, en este caso, el cálculo de la distancia es aproximado y se basa en la distancia euclídea en píxeles multiplicada por un valor estimado de metros por píxel. No se tiene en cuenta la calibración de la cámara, por lo que la estimación de velocidad puede no ser del todo precisa.
Paso 1: Empezaremos instalando el paquete Ultralytics. Abre el símbolo del sistema o el terminal y ejecuta el comando que aparece a continuación.
pip install ultralyticsConsulta nuestra guía de instalación de Ultralytics para ver instrucciones paso a paso y recomendaciones sobre el proceso de instalación. Si tienes algún problema al instalar los paquetes necesarios para YOLOv8, nuestra guía de problemas comunes incluye soluciones y consejos útiles.
Paso 2: A continuación, importaremos las bibliotecas necesarias. La biblioteca OpenCV nos ayudará a procesar el vídeo.
import cv2
from ultralytics import solutionsPaso 3: En este paso, abriremos el archivo de vídeo de entrada con el módulo VideoCapture de OpenCV. También extraeremos la anchura, la altura 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 4: Aquí inicializaremos el escritor de vídeo para guardar los 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 5: Ahora podemos inicializar el objeto de estimación de velocidad con el modelo Ultralytics YOLOv8 y la frecuencia de fotogramas del vídeo. El valor meter_per_pixel establece la escala del mundo real de la escena, así que puedes ajustarlo para que coincida con la configuración de tu cámara.
speed_obj = solutions.SpeedEstimator(
model="yolov8n.pt",
fps=fps,
meter_per_pixel=0.05,
show=True,
)Consulta todos los modelos que admitimos para saber cuál se adapta mejor a tu proyecto.
Paso 6: El núcleo del script procesa el vídeo fotograma a fotograma. Leemos cada fotograma y el estimador de velocidad detecta y sigue los objetos, calcula su velocidad y devuelve el fotograma anotado, que 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
results = speed_obj(im0)
video_writer.write(results.plot_im)Paso 7: Por último, liberamos los objetos de captura y escritura de vídeo y cerramos las ventanas de OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Paso 8: Guarda el script. Si trabajas desde el terminal o el símbolo del sistema, ejecuta el script con el siguiente comando:
python your_script_name.pyLos retos de la estimación de velocidad basada en visión#
También es importante entender los retos que implica implementar la estimación de velocidad mediante visión artificial. Las condiciones meteorológicas adversas, como la lluvia, la niebla o la nieve, pueden causar problemas al sistema, ya que reducen la visibilidad de la carretera. Del mismo modo, las oclusiones provocadas por otros vehículos u objetos pueden dificultar que estos sistemas sigan y calculen con precisión la velocidad de un vehículo objetivo. La mala iluminación, que provoca sombras o deslumbramientos del sol, también puede complicar aún más la estimación de velocidad.
Otro reto es la potencia de cálculo. Para estimar la velocidad en tiempo real, tenemos que procesar muchos datos visuales procedentes de cámaras de tráfico de alta calidad. Es posible que tu solución necesite hardware caro para gestionar todo esto y garantizar que funcione rápidamente y sin retrasos.
También está la cuestión de la privacidad. Los datos recopilados por estos sistemas pueden incluir información del vehículo de una persona, como la marca, el modelo y la matrícula, que podría obtenerse sin su consentimiento. Algunas cámaras HD modernas incluso pueden capturar imágenes de los ocupantes del coche. La recopilación de estos datos puede plantear graves problemas éticos y legales que deben tratarse con el máximo cuidado.
A toda velocidad hacia el futuro#
El uso del modelo Ultralytics YOLOv8 para estimar la velocidad ofrece una solución flexible y eficiente para muchos casos de uso. Aunque presenta retos, como mantener la precisión en condiciones difíciles y abordar los problemas de privacidad, sus ventajas son considerables. La estimación de velocidad mediante visión artificial es más rentable, adaptable y precisa que los métodos tradicionales. Resulta útil en sectores como el transporte, el deporte, la vigilancia y los coches autónomos. Con todas sus ventajas y aplicaciones, probablemente será una parte clave de los futuros sistemas inteligentes.
¿Te interesa la IA? ¡Conecta con nuestra comunidad! Explora nuestro repositorio de GitHub para saber más sobre cómo usamos la IA para crear soluciones innovadoras en sectores como la atención sanitaria y la agricultura. ¡Colabora, innova y aprende con nosotros!
Escrito por
Comentarios
Haz una pregunta, comparte tus resultados o ayuda a otra persona.










