Vehículo contando desde un video

10

Descargo de responsabilidad : publiqué esta pregunta en StackOverFlow pero aprendí que aquí es más adecuada.

Soy un poco nuevo en el procesamiento de imágenes, por lo que me gustaría preguntarle si puede encontrar la solución óptima para mi problema, no ayuda para el código. Todavía no podía pensar en una buena idea, así que quería pedirle su consejo.

Estoy trabajando en un proyecto usando OpenCV para contar los vehículos desde un archivo de video o una cámara en vivo. Otras personas que trabajan en un proyecto de este tipo generalmente siguen los objetos en movimiento y luego los cuentan, pero en lugar de eso, quería trabajar con un punto de vista diferente; pidiendo al usuario que establezca un ROI (Región de interés) en la ventana de video y trabaje solo para esta región (por algunas razones, como no tratar con el marco completo y un aumento en el rendimiento), como se ve a continuación. (El usuario puede establecer más de un ROI y se le pide al usuario que establezca la altura del ROI aproximadamente dos veces de un automóvil normal por sentido de proporción).

Foto 1

He realizado algunos progresos básicos hasta ahora, como la actualización de fondo, los filtros morfológicos, el umbral y la obtención del objeto en movimiento como una imagen binaria, como se muestra a continuación.

picture2

Después de hacerlos, traté de contar los píxeles blancos del marco frontal de umbral final y estimar si era un automóvil o no, verificando el número total de píxeles blancos (establecí un límite inferior mediante un cálculo estático al conocer la altura del ROI) . Para ilustrar, dibujé un gráfico de muestra:

cuadro3

Como puede ver, fue fácil calcular los píxeles blancos y verificar si dibuja una curva por el tiempo y determinar si un automóvil o algo así como el ruido.

Problema

Tuve bastante éxito hasta que dos autos pasaron por mi ROI juntos al mismo tiempo. Mi algoritmo los contó incorrectamente como un automóvil. Probé diferentes enfoques para este problema y similares a este, como los vehículos largos, pero no he encontrado una solución satisfactoria.

Pregunta

¿Es posible manejar esta tarea con este enfoque de conteo de valores de píxeles? Si no, ¿qué sugieres?

Horizon1710
fuente
Su problema es la razón por la cual las personas usan el seguimiento. Además, ¿desea que los automóviles que se mueven juntos (por ejemplo, un automóvil con remolque) se cuenten como uno o dos?
Emre
En primer lugar, gracias por la edición. No espero una precisión del 100%, los autos con remolques pueden ser ignorados. pero si son dos autos separados que se acercan mucho, necesito hacer que el programa los distinga a ambos, pero no tengo idea.
Horizon1710

Respuestas:

5

Puede realizar un seguimiento de los últimos 10-15 cuadros y contar el número de píxeles blancos de estos cuadros. Puede diferenciar si es un vehículo o no, ya que el gráfico será alto para 10-15 cuadros, podrá decir que es un vehículo, de lo contrario es ruido.

Para contar varios autos en varios carriles de lado a lado, puede verificar la columna de píxeles sabiamente, quiero decir verticalmente. Por el momento, debe verificar los píxeles horizontalmente en busca de píxeles blancos.

Ruhi Akaboy
fuente
Sí, tienes razón al verificar las líneas verticales, pero ¿cómo? ¿Puedo determinar el punto de entrada de los vehículos marcando la primera línea de mi ROI?
Horizon1710