Esta é a minha tentativa de fazer um sistema de reconhecimento de rosto para a sala de aula ou a participação no escritório. O sistema é baseado em um tipo especial de arquitetura da CNN conhecida como rede siamesa. Essa rede é treinada para gerar um vetor 128 muito preciso e quase exclusivo, uma vez que as imagens de face que A são alimentadas à rede estão alinhadas e cortadas adequadamente.
Em seguida, outra rede neural densa é treinada obtendo a entrada dessas incorporações. A segunda rede neural é apenas para fins de classificação. Em seguida, a pessoa que é identificada pelo sistema, sua participação no sistema é incrementada em 1.
Quando o sistema é fechado, um arquivo do Excel que consiste na participação de todos os alunos é gerado.
retirado de deeplearning.ai.
Você pode assistir a esses vídeos. O professor Andrew Ng oferece uma excelente explicação para essas redes.
Eu baixei o modelo FaceNet pré-treinado de Nyoki-Mtl Githubu
Essa rede é pré -treinada em um conjunto de dados bastante grande e produz um vetor 128 dimensional exclusivo para uma face específica, dado que as imagens alimentadas são cortadas apenas para a região do rosto e são alinhadas. O tamanho de entrada da imagem para este netowrk é 160x160x3
A detecção de rosto é alcançada usando cascatas de Haar de OpenCV. A detecção de rosto HaarcaScade é usada para detectar a face e essa região detectada é alimentada ao gerador de incorporação.
A segunda rede neural possui uma arquitetura densa e é usada para classificação. A segunda rede neural assume a entrada do vetor 128 dimensional e osputs a probabilidade de o rosto ser um dos alunos. A arquitetura da segunda rede neural é 
O banco de dados usado é o MongoDB. Pymongo é usado para adicionar, excluir registros e também aumentar a participação de um aluno em particular. 
Após o fechamento do aplicativo, um arquivo do Excel é gerado. Este arquivo do Excel contém a participação de todo o aluno.
Inicie seu terminal do CMD, dependendo do seu sistema operacional.
Se você possui uma GPU da NVIDIA, verifique se você possui a instalação pré -requisita para a TensorFlow GPU (consulte o site oficial). Em seguida, use este Commmand
pip install -r requisitos_gpu.txt
Caso você não tenha uma GPU, use este comando
pip install -r requirements_cpu.txt
1) Instale todos os requisitos
2) Faça uma pasta chamada "pessoas" sem cotações
3) Agora execute generation_training_data.py, quando isso executa insere o nome da pessoa seguida por um índice a partir de zero, por exemplo, se eu quiser gerar dados para "ravi", escreverei "ravi0" e, para o próximo nome, gravar "SecondName1", apenas verifique se o índice dado a todos está em aumento. Agora coloque todas essas pastas na pasta das pessoas 
4) Agora, no treinador.py, altere o número de classes de acordo com o número de pasta e depois execute o treinador.py
5) O modelo será treinado.
6) Agora crie um banco de dados usando o MongoDB. Digite todos os nomes com a participação deles. Isso pode ser alcançado por
a) Crie uma base de dados chamada "Novo"
b) Crie uma coleção chamada "PA"
c) Adicione as entradas. Para por exemplo, db.pa.insert ({"name": "satinder", "atendimento": 0})

7) Agora abre o reconhecimento.py e altere o dicionário "A" e as pessoas de acordo com seus dados. A chave de matriz "A" é o índice das pessoas e os dados é uma variável indicadora que é usada para indicar que em uma sessão específica, se a participação da pessoa foi levada.
8) O dicionário "pessoas" é auto -explicativo.
9) Execute o reconhecimento.py para reconhecer as pessoas. A participação deles será registrada no banco de dados MongoDB.


Se você gostou, certamente também vai gostar dos meus outros repositórios. Você também pode dar uma olhada no meu canal do YouTube "Reactor Science". Se você tiver alguma dúvida, pode entrar em contato comigo na minha página do Facebook "Science Reactor"
1) Aprendizagem profunda com Python por François Chollet
2) Keras.io
3) Deeplearning.ai por Coursera (Prof. Andrew Ng)
4) CS231N por Stanford
5) Pyimagesearch.com (Adrian Rosenberg)
6) Brandon Amos (Github: https: //github.com/bamos)