Visão computacional. Cálculo do fluxo do cliente





A tarefa era analisar e calcular o fluxo de clientes no escritório. Existem muitas soluções para tarefas semelhantes, como o uso de Convolution Neural Network (CNN), como YOLO (You Only Look Once), SSD (Detecção de disparo único), R-CNN, etc. Mas como os dados de entrada eram fragmentos de vídeo de várias resoluções e formatos, dependendo do modelo do gravador e das configurações definidas, decidiu-se tentar o método de Subtração de Fundo. Eu também queria tentar esse algoritmo, porque eu não tinha encontrado isso antes e era interessante o que ele é capaz.







Esse método depende de um fundo, como o nome sugere. A base é comparar o próximo quadro com os anteriores para alterações. Ou seja, se o plano de fundo não mudou ou não houve mudanças fortes (oscilação da folhagem, movimento das nuvens, etc.), este método não selecionará essas áreas no quadro e no vídeo. Há também um grande número de algoritmos internos nos quais a subtração de fundo é baseada, que determinam mudanças de maneiras diferentes. Alguns algoritmos são muito sensíveis a mudanças, ou seja, chuva leve, não mudanças fortes nas copas das árvores devido ao vento, todos esses objetos ficarão visíveis na máscara do algoritmo. Outros algoritmos constroem máscaras de maneira muito aproximada, combinando muitos pixels em um objeto, ou seja, duas pessoas se movendo lado a lado, serão definidas como uma pessoa,portanto, é importante escolher o algoritmo certo para sua tarefa e tentar configurações diferentes (número de quadros para comparação, borda para áreas de corte, etc.)











Existem também várias configurações dentro do algoritmo que podem melhorar a qualidade e a máscara final parece muito melhor para identificar objetos.







Após configurações adicionais e escrita de código adicional para destacar áreas variáveis ​​e contar ainda mais o fluxo do cliente, conseguiu-se um bom resultado em termos de contagem de pessoas, pois foi a primeira experiência com os métodos da biblioteca python CV2, sem o uso de redes neurais.



Infelizmente, esse método tem suas desvantagens, essa é a seleção de alguns artefatos, além de ter funcionalidade limitada e um escopo de uso estreito, mas como experiência e familiaridade com os recursos de Visão Computacional, uma excelente oportunidade.



Proponho usar minha experiência no uso de ferramentas e serviços de código aberto para resolver problemas de visão computacional.



All Articles