O projeto

Constituído pelos membros: Felipe Zechel, Leonardo Moreno, Luane Barbosa, Lucas Rodrigues, Matheus Barbosa e Mauro Yoshio, este projeto foi a criação de um sistema de reconhecimento facial com a finalidade de ser implementado na entrada da sede do ramo estudantil UNESP BAURU, de modo que fosse uma alternativa a chave da porta, mantendo o controle de quem entra ou está presente no ambiente ou de quem frequentou esse mesmo espaço.

Metodologia

A Equipe utilizou do método SCRUM de organização para distribuição das tarefas associadas aos indivíduos e desenvolvimento do projeto, com a finalidade de acelerar as atualizações e melhorias do projeto.

Linguagens e recursos utilizados

Foi utilizada a linguagem de programação python 3 juntamente com a biblioteca OpenCV para capturar, visualizar imagens da webcam, mudar a cor das imagens e da construção de figuras geométricas. Também utilizamos o módulo de Redes Neurais desta biblioteca.

Além das bibliotecas e recursos já citados também foram usadas bibliotecas de tratamento de imagem como pillow (PIL), imutils e scikit-learn.

As etapas do programa

O programa desenvolvido pode ser dividido em três etapas que são divididas entre três códigos: Proc_Image, Machlearning e Recon_Face.

• Proc_Image: Este é o código responsável pela primeira etapa: o cadastro. Essa etapa consiste no posicionamento da pessoa a ser cadastrada na frente de uma câmera ou da webcam do computador que executará o programa.

• Machlearning: Esta é a segunda etapa: se trata do treinamento do programa. Isso é feito através de três arquivos: embeddings, le e recognizer. Os dois últimos serão usado na terceira etapa.

• Recon_Face: Na terceira e última etapa do programa, o reconhecimento é realizado. Utilizando os dois arquivos gerados no fim da execução do machlearning (le e recognizer), o Recon_Face compara os dados vindos do feed da câmera com os vetores vindos o recognizer a fim de encontrar um que seja par com 90% ou mais de certeza. Tendo essa condição satisfeita, o programa desenha um box com o nome da pessoa em torno do rosto na cor verde e a porcentagem de certeza na identificação, do contrário o box será vermelho e no lugar do nome e da certeza haverá apenas a palavra "desconhecido" acima do box.

Resultados

Atualmente, o projeto se encontra numa primeira fase de testes, fase na qual ocorrem algumas atualizações para melhor funcionamento do programa em um computador. Porém uma segunda fase de testes é requerida para testar o funcionamento do programa no microcontrolador que será responsável por receber e executar o comando para abertura ou não da porta onde o sistema for instalado. É válido ressaltar que, a capacidade de processamento do microcontrolador que será utilizado é um fator de extrema importância, uma vez que trabalharemos com processamento de imagens em tempo real, de modo que será exigido muito do processador que irá executar o programa. Duas possibilidades de equipamentos que podem ser usados são o Arduino e o Rapberry Pi.

Apesar disso, nosso programa que hoje está sendo executado por nossos computadores já é capaz de cadastrar uma pessoa em seu banco de dados e após isso realizar o reconhecimento do mesmo. É possível também reconhecer múltiplos rostos ao mesmo tempo, desde que todos já tenham sido cadastrados. Com isso, é seguro dizer que em relação ao programa de reconhecimento já se possui um mínimo produto viável.