DEV Community

Cover image for Rastreamento de Contatos por Visão Computacional
Rafael Rocha
Rafael Rocha

Posted on • Updated on

Rastreamento de Contatos por Visão Computacional

Introdução

Devido a situação pandêmica vivenciada desde o inicio do ano de 2020, diversas estratégias surgiram para realizar o rastreamento de contatos de pessoas infectadas com o vírus SARS-CoV-2.

Aqui é apresentado um rascunho de rastreamento de contatos por visão computacional, onde considera-se um ambiente de trabalho fechado (um escritório, por exemplo), com um número limitado de pessoas e câmeras disponíveis em locais específicos para realizar a análise. Esse exemplo visa detectar as pessoas através de detecção de faces, e com base nas distâncias euclidianas (em pixels) entre as faces, avaliar e gerar um alerta informando que determinada pessoa esteve próxima/teve contato com uma pessoa que está com o vírus.

Etapa 1

A primeira etapa da aplicação tem como objetivo detectar todos as faces em uma determinada cena/imagem. Para isso, é utilizado o algoritmo Viola-Jones para detectar as faces, onde utiliza-se um arquivo XML treinado com as características (features) Haar para detecção de faces frontais.

Faces detectadas pelo algoritmo Viola-Jones.

Através dos bounding boxes gerados na detecção das faces, são calculados os pontos centrais destes, que são utilizados na obtenção da distância euclidiana entre as faces na imagem.

Etapa 2

A segunda etapa visa classificar, através de uma rede neural convolucional, as faces detectadas na etapa anterior, cujo objetivo real seria identificar as pessoas (faces) na imagem, possibilitando assim o rastreamento de contatos. Utilizou-se o dataset VGGFace, que possui faces rotuladas de 8631 celebridades. Para a classificação, foi usado o modelo pré-treinado ResNet50.

Imagem de entrada e mapas de características da ResNet50.
Os resultados da classificação são mostrados abaixo:

Detecção 1
Edinson Cavani: 98.043%, Juliano Cazarre: 0.075%, Tino Costa: 0.075%

Detecção 2
Anthony Ogogo: 99.913%, Brahim Asloum: 0.007%, Scott Quigg: 0.006%

Detecção 3
Sharon Stone: 97.929%, Noelle Reno: 0.985%, Tina Maze: 0.092

Os resultados mostram que todas as três pessoas foram classificadas corretamente, com distribuições de probabilidades superiores a 95%.

Etapa 3

Por fim, a etapa final, que visa obter as distâncias euclidianas entre as combinações de pessoas (faces) detectadas na imagem. A Tabela abaixo mostra as distâncias euclidianas entre as pessoas na imagem.

Distância euclidiana entre as pessoas na imagem.
Ao considerar o limiar (threshold) da distância entre as pessoas como 500 pixels, e considerando Edinson Cavani com o vírus, a pessoa que teve um contato mais próximo dele é Sharon Stone, sendo necessário alertar essa pessoa para as medidas e precauções cabíveis.


O código com o rascunho do rastreamento de contatos por visão computacional pode ser encontrado em: https://github.com/rlrocha/pdi. Um melhor detalhamento do código desenvolvido encontra-se em: https://youtu.be/RJd7ufq_tZU. Siga o blog se o post for útil para você.

Top comments (0)