Visión por computador. Cálculo del flujo de clientes





La tarea consistía en analizar y calcular el flujo de clientes en la oficina. Hay muchas soluciones para tareas similares, como el uso de la red neuronal de convolución (CNN), como YOLO (solo mira una vez), SSD (detección de disparo único), R-CNN, etc. Pero como los datos de entrada eran fragmentos de video de varias resoluciones y formatos, según el modelo de grabadora y la configuración establecida, se decidió probar el método de sustracción de fondo. También quería probar este algoritmo, porque no lo había encontrado antes y era interesante de lo que es capaz.







Este método se basa en un trasfondo, como sugiere el nombre. La base es comparar el siguiente cuadro con los anteriores para detectar cambios. Es decir, si el fondo no ha cambiado o no hay cambios fuertes (balanceo de follaje, movimiento de nubes, etc.), entonces este método no seleccionará estas áreas en el cuadro y el video. También hay una gran cantidad de algoritmos internos en los que se basa la resta de fondo, que determinan los cambios de diferentes maneras. Algunos algoritmos son muy sensibles a los cambios, es decir, lluvia ligera, no cambios fuertes en las copas de los árboles debido al viento, todos estos objetos serán visibles en la máscara del algoritmo. Otros algoritmos construyen máscaras de manera muy aproximada, combinando muchos píxeles en un objeto, es decir, dos personas moviéndose una al lado de la otra, se definirán como una sola persona,por lo tanto, es importante elegir el algoritmo adecuado para su tarea y probar diferentes configuraciones (el número de cuadros para comparar, el borde para cortar áreas, etc.)











También hay varias configuraciones dentro del algoritmo que pueden mejorar la calidad, y la máscara final se ve mucho mejor para identificar objetos.







Después de configuraciones adicionales y escribir código adicional para resaltar áreas variables y contar aún más el flujo de clientes, resultó que se logró un buen resultado en términos de contar el número de personas, ya que fue la primera experiencia con los métodos de la biblioteca de Python CV2, sin usar redes neuronales.



Desafortunadamente, este método tiene sus inconvenientes, es la selección de algunos artefactos, además de que tiene una funcionalidad limitada y un ámbito de uso estrecho, pero como experiencia y familiaridad con las capacidades de Computer Vision, una excelente oportunidad.



Propongo utilizar mi experiencia en el uso de herramientas y servicios de código abierto para resolver problemas de visión por computadora.



All Articles