Servicio en línea "Análisis de velocidad en accidentes por video"


En la versión de prueba, se lanzó un servicio en línea que muestra la velocidad actual de los objetos que nos interesan (automóviles y otros vehículos) utilizando grabaciones de cámaras de video en las intersecciones.

El problema de visualizar la distancia al conducir un automóvil y su velocidad actual es enfrentado tanto por los estudiantes en las escuelas de manejo como por los conductores con mucha experiencia.

Pero hay una solución: el análisis de estos datos en cuadros de video previamente grabados y su procesamiento en varios servicios pagos y gratuitos, accesibles y cerrados.



Uno de estos servicios recientemente aparecidos se discutirá más a fondo.

Enlace al servicio en línea "Análisis de velocidad en accidentes por video".

La página principal del servicio (hasta ahora muy simple):



El autor de la idea y la implementación es el programador ruso y Khabrovchanin - Ilya Alexandrovich Volkov .

Esta publicación fue escrita en Habré con su permiso.

Por el momento, el servicio no funciona automáticamente, cada video primero debe estar preparado para el procesamiento manual por parte del operador del servicio (ahora es el autor de una persona o un nuevo usuario, instrucciones para trabajar con el servicio al final de la publicación).





Etapas del procesamiento de cuadros de video:

- en la primera etapa, las distorsiones ópticas de la cámara se compensan, es decir, todas las líneas rectas del mundo real deben ser rectas y en el video procesado por el servicio (la corrección de la distorsión de la cámara ya funciona automáticamente en el servicio);

- en la segunda etapa, se lleva a cabo la ubicación vinculante al plano de la carretera, para esto el operador debe marcar el rectángulo en el marco como en el mundo real e ingresar dos (o más) segmentos con longitudes previamente medidas (generalmente esto: el ancho de la carretera, el ancho de una franja separada entre las líneas de marcado, la distancia entre calzadas o señales, distancia entre ejes de automóviles);









- en la tercera etapa, el operador del servicio en cada cuadro debe establecer el punto donde se encuentra el objeto de interés (marcar su trayectoria) y, como resultado, el servicio nos mostrará la velocidad actual del objeto y su cambio durante el movimiento.









El reproductor de servicio tiene la herramienta Regla, con la que puede medir la distancia en el video:



La precisión del servicio depende en gran medida de la calidad y los parámetros del video.



Ahora el servicio solo funciona con cuadros de video obtenidos con cámaras estacionarias (estáticas), la base de datos de estos registros se complementa y desarrolla.

En el proceso de finalizar la funcionalidad del servicio, el autor planea agregar un análisis de los registros obtenidos con la ayuda de grabadoras de video al mover y detener automóviles.

El autor del servicio planea analizar una gran cantidad de videos de accidentes que involucran a peatones y analizar las estadísticas de datos sobre las velocidades de los vehículos en el momento de la colisión.





Esto es lo que el autor planea hacer para desarrollar este servicio:

  • agregar seguimiento automático de puntos;
  • agregar etiquetas geográficas;
  • introducir un filtro de Kalman para suavizar los errores de observación;
  • usar visión por computadora;
  • agregar funcionalidad para calcular la velocidad de varios objetos;
  • Está previsto introducir el aprendizaje automático para el servicio a fin de minimizar el trabajo del operador en la preparación de la grabación de video.



Realmente espero que esta publicación interese a Khabrovites y ayude al autor del servicio en su desarrollo y trabajo actual.

Logré contactar al autor de este servicio, Ilya Volkov , hablar con él sobre la funcionalidad del servicio y obtener respuestas a varias preguntas sobre este proyecto específicamente para Habr.

Entrevista con el autor del servicio "Análisis de velocidad en accidentes por grabación de video":

Pregunta: ¿La idea de implementar tal servicio surgió hace mucho tiempo?
La respuesta de Ilya: Hace unos cuatro meses vi un video de un accidente y se volvió interesante a qué velocidad (al menos aproximadamente) se movía uno de los participantes. Se volvió interesante no solo para mí: en los comentarios al video hubo mucha controversia y se llamó a una variedad de clasificaciones. Fue entonces cuando pensé que tal herramienta sería útil.

Pregunta: ¿Cuánto tiempo ha pasado desde la idea de que "usted puede hacer esto" hasta el primer lanzamiento funcional del servicio?
La respuesta de Ilya: Bueno, durante cuatro meses, se ha tratado. Pero no me apresuraría a llamar a la versión actual de la que funciona, todavía está húmeda :)

Pregunta: ¿Qué idiomas y plataformas usa en el servicio y cuáles planea usar más?
La respuesta de Ilya: El proyecto está alojado en Firebase, esto es una gran cosa para un inicio rápido de casi cualquier proyecto. Autorización, alojamiento, base de datos, almacenamiento de archivos: todo está listo para usar. API conveniente, completamente gratis al principio.

Frontend - Vue.js, también una herramienta simple para aprender desde cero. Al dibujar en el lienzo con Konva.js, los sombreadores son responsables de la distorsión de la óptica.

Casi todo el código (excepto los sombreadores) está escrito en JavaScript. No hay reclamos especiales para la pila, continuaré trabajando con ella.

Pregunta: ¿ Cuándo será posible que los usuarios comunes suban su video y trabajen con el servicio?
La respuesta de Ilya: en principio, esto se puede hacer ahora, escribí instrucciones sobre cómo hacerlo.

Pregunta: ¿Eres tú quien está haciendo el proyecto o hay un equipo de programadores?
La respuesta de Ilya: El equipo aún es pequeño. Soy mi amigo, que tiene competencias en desarrollo front-end.

Pregunta: ¿Planea continuar el desarrollo del servicio y espera ayuda de colegas / miembros del foro para este proyecto?
La respuesta de Ilya: El desarrollo del servicio definitivamente está planeado, porque el prototipo parece muy interesante. Las ideas de desarrollo están llenas, el deseo también está presente.
La ayuda siempre es bienvenida, especialmente los consejos.

Pregunta: ¿Será un servicio gratuito o hay algún plan de monetización?
La respuesta de Ilya: las perspectivas de monetización siguen siendo bastante vagas. Quizás se aclaren en el futuro.

Pregunta: ¿Han aparecido organizaciones o comunidades interesadas en el servicio? Por ejemplo, ¿clubes de motos o escuelas de manejo?
La respuesta de Ilya: las comunidades no me escribieron, pero algunos expertos automotrices estaban interesados ​​en el proyecto.

Pregunta: ¿Cuál es la precisión de determinar la velocidad usando el servicio ahora? ¿En qué diferirán estos datos si se ingresan los parámetros necesarios para medir la ruleta desde una carretera real o usar servicios geográficos en los que el ancho de la calzada se mide con una regla incorporada?
La respuesta de Ilya: en un video de muy buena calidad y sin distorsión de la óptica, la precisión no es mala, las pruebas en un conjunto de datos abierto muestran un error de hasta el 3%. La precisión disminuye con el deterioro de la calidad del video y una velocidad de cuadro inestable.

En cuanto a las mediciones con ruleta y con la ayuda de geoservicios, la ruleta, por supuesto, es más confiable. No se puede confiar ciegamente en los datos de un geoservicio, pero se puede y se debe verificar dos veces.

En general, tengo un gran deseo de negarme a ajustar el terreno a puntos de referencia y apegarme en base a las distancias entre ejes de los automóviles y otras distancias conocidas con precisión.

Pregunta: ¿Será posible seleccionar unidades de medida (km \ h, m \ s, millas \ hora) y guardar datos de telemetría de alta velocidad en un archivo de registro separado?
La respuesta de Ilya: Sí, ya que no es tan difícil de hacer. Pero cuándo se realizará, no puedo decirlo.

Pregunta: ¿Los videos en invierno serán más difíciles de procesar en su servicio debido a la capa de nieve en la carretera?
La respuesta de Ilya: Sí, la nieve se suma a las dificultades: algunos puntos de referencia no son visibles, a veces incluso cambia la geometría de la carretera. Pero, en principio, la velocidad también se calcula en videos nevados.

Pregunta: ¿Está previsto utilizar redes neuronales en el servicio?
La respuesta de Ilya: definitivamente no es una perspectiva para el futuro cercano, pero el tema es definitivamente muy interesante. Sería genial entrenar la red neuronal para seleccionar los factores de distorsión de la cámara. Muchas ideas para usar redes neuronales listas para usar. Pero por ahora, hay mucho que hacer sin ellos :)

Pregunta: Ahora el servicio está alojado en Firebase, ¿estás buscando una alternativa?
La respuesta de Ilya: lo único que realmente no le gusta de Firebase es el precio. Por ejemplo, el precio de 1 GB de tráfico del almacenamiento de archivos es de aproximadamente 7 rublos, mientras que Yandex.Cloud solo tiene un rublo. Si bien este no es un problema muy grande, en el futuro buscaré formas de optimizarlo. Ahora estoy diseñando la arquitectura de tal manera que no me apegue mucho al proveedor de servicios.


¡Muchas gracias a Ilya por sus respuestas interesantes y detalladas!

Si es posible, el autor agrega nuevos videos al servicio:







Las instrucciones para trabajar con el servicio están aquí .

1. Para crear su proyecto necesita iniciar sesión. Si bien la autorización está disponible a través de las cuentas de Google y Facebook. Después de la autorización, el botón "Crear proyecto" estará disponible para usted.



2. Haga clic en el botón "Crear proyecto", aparecerá la página para crear un nuevo proyecto, en la que se propone descargar el archivo de video. Mientras que el tamaño máximo del archivo de video es de 3 megabytes. Puede recortar el video usando este servicio de video .



3. Descargue el archivo, después de una descarga exitosa, la página del proyecto se abrirá automáticamente.



4. Primero, eliminamos las distorsiones de la óptica de la cámara: usando los controles deslizantes k3, k4, Escala, ajustamos las distorsiones para que todas las líneas rectas del mundo real sean rectas y estén en la imagen.



5. Mueva el cuadrilátero para que coincida con el rectángulo del mundo real e indique 2 distancias (los segmentos no deben ser paralelos).



6. Puede usar Yandex.Maps para buscar distancias.



7. Dado que las distancias en Yandex.Maps pueden no ser completamente precisas, debemos asegurarnos de que la unión obtenida sea adecuada utilizando una regla. Por lo general, conocemos las distancias entre ejes de los automóviles. Por ejemplo, la base de VAZ-2114 es 2,46 metros, obtenemos 2,45.



8. La longitud del tranvía era de unos 16 metros, que también está cerca de la longitud real.



9. Ahora estamos listos para hacer directamente el cálculo de la velocidad del automóvil. Entramos en el modo de edición de los puntos del objeto y marcamos el punto del objeto en cada cuadro. Marcar puntos manualmente en cada cuadro puede ser agotador, por lo tanto, existe una herramienta de interpolación: marque un punto en un cuadro, luego marque un punto después de 5-15 cuadros, seleccione el intervalo entre cuadros en la línea de tiempo y presione el botón I: ahora el punto entre cuadros se mueve uniformemente rectilíneamente .



10. Por lo tanto, calculamos la velocidad del objeto.

Source: https://habr.com/ru/post/460185/


All Articles