Este projeto implementa um sistema avançado para a criação de identidades digitais, permitindo interações seguras em sistemas descentralizados interplanetários. Utilizando reconhecimento facial, o sistema gera credenciais e autentica usuários para transações financeiras que exigem provas de autenticidade (2FA). Com o uso de técnicas de aprendizado de máquina e processamento de imagens e vídeos, o sistema é capaz de detectar rostos, reconhecer usuários cadastrados e registrar suas interações (logins) ou presença, armazenando essas informações em uma planilha Excel ou em um banco de dados.
- ✅ Facial: Reconhecimento de rostos através de imagens ou vídeos.
- Íris: Análise da íris do olho para identificação individual.
- Digital: Leitura e comparação de impressões digitais.
- Voz: Análise das características únicas da voz de uma pessoa.
O projeto está estruturado em vários arquivos e classes principais:
- main.py: Implementa uma interface gráfica simples usando Tkinter para interação com o sistema.
- train.py: Contém a lógica para o treinamento do reconhecedor facial utilizando imagens de um diretório específico.
- CNNmodel.py: Define uma rede neural convolucional para processamento de imagens.
- create_excel_files.py: Cria arquivos Excel para registro de alunos e presenças.
- DetectImage.py: Realiza a detecção de rostos em tempo real utilizando um classificador Haar Cascade e o reconhecedor LBPH.
- tree_structure.txt: Arquivo que descreve a estrutura do projeto.
- trained.yml: Arquivo que armazena o modelo treinado do reconhecedor facial.
Este projeto implementa um sistema automatizado para geração de credenciais. O sistema funciona da seguinte forma:
- 📄 O usuário preenche um formulário HTML com as informações pessoais.
- ✅ As informações do formulário são validadas.
- 💾 Os dados do formulário são salvos no formato JSON em um banco de dados criptografado.
- 📋 O modelo da Certidão é preenchido com as informações validadas.
- 🖨️ O layout de impressão da Certidão é exibido para o usuário.
- 📥 O usuário pode clicar em um botão para gerar um PDF para a impressão da Certidão e da Carteirinha.
Este projeto depende das seguintes bibliotecas Python:
- OpenCV (cv2): Utilizada para processamento de imagens e vídeos. OpenCV
- Pillow (PIL): Utilizada para operações com imagens. Pillow
- openpyxl: Utilizada para criar e manipular arquivos Excel. openpyxl
- numpy: Utilizada para operações matemáticas e manipulação de arrays. numpy
- tkinter: Utilizada para criar interfaces gráficas de usuário (GUI). tkinter
- Face Recognition Database: Base de dados para reconhecimento facial. Face Recognition Database
As dependências podem ser instaladas executando o seguinte comando:
pip install -r requirements.txt
- Funcionalidades Principais
- Treinamento do Reconhecedor Facial: Utiliza imagens de um diretório para treinar um modelo de reconhecimento facial.
- Detecção de Rostos em Tempo Real: Utiliza um classificador Haar Cascade para detectar rostos em vídeo ao vivo.
- Registro de Presença: Registra a entrada e saída de indivíduos reconhecidos em uma planilha Excel.
- Melhorias Potenciais
- Modularização do Código: Separação mais clara das funcionalidades em módulos reutilizáveis.
- Documentação Aprofundada: Explicação detalhada das funções e classes em comentários no código.
- Tratamento de Erros Robusto: Implementação de tratamento de exceções para melhor robustez.
- Testes Unitários: Criação de testes para verificar o funcionamento correto das funcionalidades.
- Configurabilidade: Adição de opções para configurar parâmetros como caminhos de diretório e arquivos.
- Segurança: Consideração de medidas adicionais para proteger dados sensíveis e prevenir vulnerabilidades.
## Execução no Linux/macOS
Para configurar o ambiente e executar o projeto:
Configuração do Ambiente Virtual:
```bash
python3 -m venv env
source env/bin/activate
Instalação de Dependências:
```bash
pip install -r requirements.txt
Treinamento do Modelo:
```bash
python train.py
Atualização das Dependências:
```bash
pip freeze > requirements.txt
Estrutura do Projeto:
```bash
tree --prune -I 'env' > tree_structure.txt