
Distanciamento social: uma abordagem de visão computacional
O distanciamento social provou ser uma das medidas mais eficazes contra a propagação do novo Coronavírus (COVID-19). Como parte da chamada 'Nova Normalidade', muitas instituições implementaram diferentes formas de controlar distâncias, desde adesivos no chão até aplicativos ou pulseiras de alarme. Esta postagem apresentará uma abordagem de visão computacional, que consiste em uma estimativa automática das distâncias interpessoais de uma imagem ou vídeo e um exemplo de implementação fácil de testar.

Neste post falaremos sobre:
- Detecção de pedestres: reconhecendo pedestres em um quadro de vídeo
- Adaptação de perspectiva: livre-se do viés de perspectiva
- Medição de distância: localizando os pedestres e estimando distâncias
- Índices de distanciamento social: útil para quantificar como as políticas de restrição de distância são atendidas
Depois de ler este post, você poderá experimentar uma implementação fácil do algoritmo apresentado com qualquer extrato de vídeo de sua escolha.
Detecção de pedestres
[caption id="attachment_355" align="alignnone” width="675"]

Créditos: analytics-vidhya [/caption] O primeiro passo é reconhecer as pessoas nos quadros da câmera. Existem vários algoritmos para detectar e classificar objetos a partir de imagens. Os detectores de objetos de última geração usam abordagens de aprendizado profundo (por exemplo. R-CNN mais rápido, YOLO), consistindo em redes neurais convolucionais profundas (CNN) pré-treinadas que detectam indivíduos com caixas delimitadoras em um determinado quadro de câmera monocular. Esses classificadores são treinados com grandes conjuntos de dados de imagens rotuladas, por exemplo COCO, Imagenet. Para limpar a saída, é comum aplicar algum pós-processamento, como supressão não máxima (NMS), o que elimina caixas delimitadoras duplicadas. Mas a medição de distância não pode ser feita facilmente usando apenas as caixas delimitadoras fornecidas pelo algoritmo de detecção, pois os tamanhos e as distâncias dos pixels dependem fortemente da visão em perspectiva da câmera.
Adaptação de perspectiva
Um “imperdível” ao lidar com grandes áreas, como estádios, estações de trem ou até mesmo shopping centers.

Como o vídeo de entrada pode ser obtido de uma perspectiva arbitrária, a distância em pixels entre dois objetos que estão mais próximos da câmera e entre dois outros objetos pode ser a mesma, mas as distâncias reais podem diferir fortemente, pois os tamanhos das caixas delimitadoras também mudam. A próxima etapa do pipeline é computar a transformação (chamada Homografia) que mapeia essa visão em perspectiva em uma visão panorâmica (de cima para baixo). As distâncias são medidas com mais precisão quando os pontos são vistos de cima. [caption id="attachment_366" align="alignnone” width="915"]

Esquerda: Visão da câmera. À direita: visão panorâmica. Créditos: The Ohio State University, EUA [/caption] Para calcular o mapeamento, precisamos definir a Região de Interesse (ROI), que pode ser determinada com quatro pontos no quadro da câmera -fixa-, e pode ser definida inicialmente e permanecer constante. Aqui, assumimos a planaridade na região de interesse. Supõe-se que esses pontos correspondam a um retângulo visto de cima. A próxima etapa é definir o limite de distância. Algumas implementações exigem defini-la manualmente, o que pode ser determinado pela altura de uma pessoa na imagem (aproximadamente 6 pés). Uma configuração mais precisa pode exigir definir o limite real no chão, pois é o plano no qual a homografia é feita. Outra abordagem comum é calibrar câmeras fixas observando o movimento de objetos dinâmicos, como pedestres. Recentemente, abordagens baseadas em aprendizado profundo tentam estimar diretamente a pose da câmera e os parâmetros intrínsecos em uma única imagem.
Medição de distância
Com a homografia definida, o próximo passo é mapear as caixas delimitadoras no plano “térreo” de visão aérea, transformando o centro dos pontos inferiores de cada caixa delimitadora, a fim de ter uma localização (x, y) para cada pessoa no nível do solo. Conhecendo o fator de escala de transformação (quantos pixels correspondem a 6 pés na vida real), agora é possível medir as distâncias euclidianas entre cada par de pontos e alertar a proximidade.
Índices de distanciamento social
Conforme mencionado anteriormente, os algoritmos de distanciamento social também não podem detectar violações de uma única distância, mas também computar parâmetros estatísticos para evitar a superlotação. Pesquisadores da Universidade Estadual de Ohio desenvolveram um “Sistema de Detecção de Densidade Crítica e Distanciamento Social Baseado na Visão” [1], que define uma métrica crítica de densidade social e recomenda não entrar no ROI se a densidade for maior que esse valor. O valor crítico da densidade social é obtido por técnicas de regressão que fornecem a densidade social em um quadro e o número de violações de distância nele.

Outros pesquisadores implementaram o índice de violação que representa a razão entre o número de pessoas e o número de grupos, onde um grupo significa um grupo de pessoas que não respeita a distância social. [2]. Outra abordagem envolve estimar mapas de contagem e densidade a partir de imagens de multidões usando a CNN treinada para esta tarefa. [3], conforme ilustrado na figura abaixo. [caption id="attachment_372" align="aligncenter” width="598"]

Créditos: Elsevier, 2017 [/legenda]
Exemplo de implementação
Há uma implementação gratuita e fácil de testar do algoritmo descrito em Python em: https://github.com/aqeelanwar/SocialDistancingAI. O projeto pede que o usuário marque 6 pontos no quadro, 4 deles correspondendo ao ROI (canto inferior esquerdo, canto inferior direito, canto superior esquerdo, canto superior direito) e 2 pontos considerados separados por 6 pés. O projeto usa um exemplo de vídeo e é fácil alterá-lo e experimentar novos cenários. A saída fornece as caixas delimitadoras do vídeo original e uma janela panorâmica para rastrear facilmente os pedestres.

Pesquisas adicionais
Uma pesquisa da Universidade de Trento, Itália [4], chegou a um método para detectar a presença de interações sociais em um cenário de vigilância, distinguindo entre interações casuais e intencionais, onde os eventos intencionais são subdivididos em comportamentos normais e anormais. Os recursos extraídos são analisados por meio de um SVM multiclasse. Ao longo da pesquisa, também encontrei um artigo sobre medição de distância que vale a pena dar uma olhada, mas considerando a distância da câmera ao objeto que ela fotografa. É baseado em aprendizado profundo e foi treinado usando uma técnica de aprendizado supervisionado em que os recursos de entrada eram calculados manualmente. Os parâmetros das caixas delimitadoras de objetos e as saídas eram as medidas precisas do scanner a laser 3D das distâncias aos objetos na cena gravada. Mais detalhes em [5].
Referências:
- [1]: 'Um sistema de detecção de densidade crítica e distanciamento social baseado em visão para o COVID-19 '
- [2]: 'Monitorando o distanciamento social da COVID-19 com detecção e rastreamento de pessoas por meio de técnicas aprimoradas do YOLO v3 e do Deepsort
- [3]: 'Uma pesquisa dos avanços recentes na contagem de multidões de imagens únicas e na estimativa de densidade com base na CNN'
- [4] :'Detecção em tempo real de interações sociais em vídeo de vigilância'
- [5] :'DisNet: Um novo método para estimativa de distância a partir de uma câmera monocular
- Além disso: IEEE, 'O problema de distanciamento social visual': vincular