Skip to content

ecodelearn/webface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Reconhecimento Facial WebFace

Este projeto implementa um sistema de reconhecimento facial usando Python, PHP e JavaScript. O sistema permite capturar imagens faciais, gerar embeddings, armazená-los em um banco de dados MySQL e realizar comparações para reconhecimento.

Estrutura do Projeto

  • index.html: Página inicial do sistema
  • captura.html: Interface para capturar imagens e salvar embeddings
  • reconhecer.html: Interface para realizar o reconhecimento facial
  • salvar_embedding.py: Script Python para gerar e salvar embeddings faciais
  • comparar_embedding.py: Script Python para comparar embeddings e identificar faces
  • websocket_server.php: Servidor WebSocket para comunicação em tempo real
  • 000-default.conf: Configuração do Apache para o servidor web

Pré-requisitos

  • Python 3.10.12
  • PHP com extensão Swoole
    • Para instalar a extensão Swoole, você pode usar o Composer:
      composer require swoole/swoole
      
    • Ou, se preferir usar PECL:
      pecl install swoole
      
  • MySQL
  • Apache2
  • Bibliotecas Python: opencv-python, opencv-python-headless, numpy, mtcnn, deepface, tensorflow, mysql-connector-python

Configuração

  1. Clone este repositório:

    git clone https://github.com/ecodelearn/webface.git
    
  2. Instale as dependências Python:

    pip install -r requirements.txt
    
  3. Configure o banco de dados MySQL:

    • Crie um banco de dados chamado camera
    • Crie um usuário camera com a senha Senha@123 (ou atualize as credenciais nos scripts)
    • Crie uma tabela embeddings com colunas para nome e embedding
  4. Configure o Apache:

    • Copie o arquivo 000-default.conf para /etc/apache2/sites-available/
    • Ative o site e o módulo de reescrita:
      sudo a2ensite 000-default.conf
      sudo a2enmod rewrite
      sudo systemctl restart apache2
      
  5. Inicie o servidor WebSocket:

    php websocket_server.php
    

Uso

  1. Abra index.html no navegador
  2. Para registrar uma face:
    • Clique em "Gravar Face"
    • Na página captura.html, insira um nome e clique em "Capturar Imagem"
    • Posicione o rosto na frente da câmera e capture a imagem
  3. Para reconhecer uma face:
    • Clique em "Fazer Reconhecimento"
    • Na página reconhecer.html, posicione o rosto na frente da câmera
    • Clique em "Reconhecer"

Arquivos Principais

index.html

Página inicial com opções para gravar face ou fazer reconhecimento.

captura.html

Interface para capturar imagens e salvar embeddings. Permite inserir um nome, capturar uma imagem e salvar o embedding correspondente.

reconhecer.html

Interface para capturar imagem e realizar o reconhecimento facial.

salvar_embedding.py

Script Python que gera e salva embeddings faciais no banco de dados.

comparar_embedding.py

Script Python que compara embeddings e identifica faces.

websocket_server.php

Servidor WebSocket em PHP que gerencia conexões em tempo real e processa solicitações.

000-default.conf

Configuração do Apache para o servidor web. Inclui regras de reescrita para redirecionar o tráfego HTTP para HTTPS.

Segurança

  • O servidor está configurado para usar HTTPS (verifique as regras de reescrita no arquivo 000-default.conf)
  • Certifique-se de proteger o acesso ao banco de dados e aos scripts do servidor
  • Considere implementar autenticação de usuário para maior segurança

Contribuições

Contribuições são bem-vindas! Por favor, abra uma issue para discutir mudanças propostas ou envie um pull request.

Licença

Copyright [2024] Daniel Dias e Souza - inarte.com.br

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Apache 2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Troubleshooting

Se encontrar problemas:

  1. Verifique se todos os serviços (Apache, MySQL, WebSocket) estão em execução
  2. Confira os logs do Apache em /var/log/apache2/error.log
  3. Certifique-se de que as permissões dos arquivos estão corretas
  4. Verifique se as credenciais do banco de dados estão corretas em todos os scripts

Para problemas específicos, por favor, abra uma issue no GitHub.

About

Funcionalidade de reconhecimento facial desenvolvido para https://www.lanchebem.com/

Resources

Stars

Watchers

Forks

Packages

No packages published