Skip to content

Latest commit

 

History

History
176 lines (110 loc) · 8.75 KB

File metadata and controls

176 lines (110 loc) · 8.75 KB

GitHub repo size

Chamada_Escolar_com_Reconhecimento_Facial

Autores

Alisson Fantin Rodrigues
Victor Monteiro de Oliveira
Isabela Rosa

Objetivos

O Projeto tem como objetivo automatizar o processo de chamada escolar utilizando o reconhecimento facial.

Benefícios

  • Erradicar o uso de papel nesse processo
  • Tornar automático a Chamada Escolar
  • Diminuir o tempo da chamada e melhorar o aproveitamento de aula

Como Usar

Banco de dados

Para começar a usar o aplicativo importe o esquema de banco de dados para um aplicativo de hosteamento local (wamp, xamp, etc). Ao implementar este projeto é necessário uma carga de dados feita pela instituição, com informações sobre os cursos, professores, grade de horários, alunos etc. o banco de dados deste repositório ja contem algumas informações simulando esta carga inicial de dados.

Esquema Banco de dados

Crud C#

A pincipal função desse aplicativo é administar os dados do banco, podendo atualizar, inserir, e deletar. Nele também é possivel visualizar as faltas dos alunos.

para utilizar o aplicativo é necessário ter um registro de login (presente na tabela login do banco de dados), tendo dois tipos de liberdade para acesso: consulta (onde o usuário pode apenas consultar os dados existentes) e administrador (onde é possível adicionar, atualizar, excluir e consultar os dados)

Login Consulta: secretaria

senha: 123

Login admin: admin

senha: 123

Login

Para adicionar algum dado, basta preencher as informações e clicar em adicionar. Pode ocorrer erros na hora de adicionar os dados, então para cadastrar algo devemos olhar o relacionamento das tabelas do banco.

Para Atualizar informe a primary key e preencha todos os campos com as modificações e clique em atualizar.

Para Deletar informe a primary key e clique em deletar.

Primary key = RA Aluno

Primary key Cursos = curso

Primary key Disciplinas = Disciplina

Primary key Professores = chapa Aluno

Primary key = id

Aluno

Para visualizar as faltas dos alunos, vá até a aba frequencia, marque o tipo de consulta (Curso, Data, RA), e preencha o campo correspondente e clique em consulta.

Consulta RA Consulta-RA

Consulta Data Consulta-Data

Consulta Curso Consulta-Curso

é possivel gerar dois relatórios um por data, que mostra a quantidade de falta dos alunos em cada matéria daquela data. ou relaório geral que mostrar as matérias que determinado aluno faltou.

Relatorio Data (preencher data) Relatorio-Data

Relatorio Geral (preencher RA) Relatorio-Geral

Reconhecimento Facial com Python

- IMPORTANTE:
Por decisão dos autores do projeto, o codigo fonte nao sera disponibilizado visando tranforma-lo em um produto no futuro. 
O executavel em python ficou maior que 50mb, o que impede de postar no github.
Para testar o software entre no link e faça dowloado do arquivo rar. 
Link do executavel: https://mega.nz/file/H912gSwa#nAgZWqNHQG4KbpLQdYaCmy7soK7rW6jlRqQNW77S-60

caso seu objetivo seja aprender sobre reconhecimento facial indicamos que leia nosso Relatorio de pesquisa. 
Tambem indicamos o curso de Reconhecimento Facial da Udemy, graças a ele foi possivel desenvolver o projeto: 
link do curso: https://www.udemy.com/course/reconhecimento-facial-com-python-e-opencv/

Antes de começar, vale ressaltar que para o aplicativo funcionar você deve importar o banco de dados
descrito no primeiro tópico desse arquivo.

o primeiro passo muito importante para abrir o executável, é preencher o arquivo email.txt.
você deve preencher da seguinte maneira: email-do-remente;senha-desse-email; email-destinatario.
o Email funciona para contatar a secretaria quando um aluno chega atrasado ou não é reconhecido.
é importante ativar o Login por protocolo smtp no seu email, ou então não será possivel executar o aplicativo

Arquivo de email email

Outro passo importante é criar a pasta C:\cpdb\fotos para armazenar as fotos de treinamento do algoritmo.
crie a pasta "cpdb" no seu dico local, dentro da pasta cpdb crie e pasta "fotos".

Pasta Fotos Pasta-Fotos

Agora podemos utilizar o aplicativo, abra-o e então será mostrado as 3 funções: capturar, treinar e reconhecer.

Tela Principal
Tela-Principal

Capturar: Primeiro é necessário informar o RA do aluno, esse RA deve estar cadastrado no Banco de dados.

Tela Captura
Tela-Captura-Python

  • em seguida abrirá a janela da webcam, Capture 15 fotos do aluno.
  • as fotos são capturadas pela letra "q" do teclado.
  • para capturar a foto, o algoritmo deve detectar o rosto e os olhos do aluno.
  • é indicado no canto superior esquerdo a quantidade de fotos.
  • a letra "w" do teclado fecha a janela antes de capturar as fotos.

Capturar
Captura-Python

Treinamento: basta clicar no botão treinar, e então sera gerado um arquivo "classificadorEign.yml".
Só é possivel treinar, se na pasta C:\cpdb\fotos estiver 15 fotos de dois ou mais alunos.

Treinamento
Treinar-Python

Tela Reconhecimento: nessa opção simulamos um professor onde ele digita a sala que está dando aula e coloca o aplicativo para rodar.
Para reconhecer você insire a sala ao qual você foi cadastrado no banco de dados.
O aplicativo dá falta para todos os alunos e vai colocando presença conforme ele reconhece.

Tela Reconhecer
Tela-Reconhecer-Python

Após informar a sala abrirá a webcam, e então ao detectar o rosto o algoritmo já consegue reconhecer.

Reconhecer
Reconhecer-Python

Como ja dito anteriormente o algoritmo manda email caso o aluno esteja atrasado
para isso foi levado em conta que:
se o aluno for da turma A - entrada a sala 7h00 com 10 minutos de tolerância.
se o aluno for da turma B- Entrada 13h30 com 10 minutos de tolerância.

Email Aluno Atrasado
email-atrasado-Python

o algoritmo tambem captura foto do aluno nao reconhecido e envia um email.

Email Aluno não reconhecido
email-nãoRec-Python

Informações adicionais:

O aplicativo está na versão mais basica, ou seja a opção de medir a temperatura como mostra o video no youtube nao esta nessa versão.

O algoritmo de reconhecimento Facial foi treinado usando os parâmetros padrão, o que os torna menos eficaz.
Isso porque os parâmetros variam com cada situação: webcam utilizada, luminosidade, etc.
Para mais informações leia nosso relatório de pesquisa.