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.
index.html: Página inicial do sistemacaptura.html: Interface para capturar imagens e salvar embeddingsreconhecer.html: Interface para realizar o reconhecimento facialsalvar_embedding.py: Script Python para gerar e salvar embeddings faciaiscomparar_embedding.py: Script Python para comparar embeddings e identificar faceswebsocket_server.php: Servidor WebSocket para comunicação em tempo real000-default.conf: Configuração do Apache para o servidor web
- 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
- Para instalar a extensão Swoole, você pode usar o Composer:
- MySQL
- Apache2
- Bibliotecas Python: opencv-python, opencv-python-headless, numpy, mtcnn, deepface, tensorflow, mysql-connector-python
-
Clone este repositório:
git clone https://github.com/ecodelearn/webface.git -
Instale as dependências Python:
pip install -r requirements.txt -
Configure o banco de dados MySQL:
- Crie um banco de dados chamado
camera - Crie um usuário
cameracom a senhaSenha@123(ou atualize as credenciais nos scripts) - Crie uma tabela
embeddingscom colunas paranomeeembedding
- Crie um banco de dados chamado
-
Configure o Apache:
- Copie o arquivo
000-default.confpara/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
- Copie o arquivo
-
Inicie o servidor WebSocket:
php websocket_server.php
- Abra
index.htmlno navegador - 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
- Para reconhecer uma face:
- Clique em "Fazer Reconhecimento"
- Na página
reconhecer.html, posicione o rosto na frente da câmera - Clique em "Reconhecer"
Página inicial com opções para gravar face ou fazer reconhecimento.
Interface para capturar imagens e salvar embeddings. Permite inserir um nome, capturar uma imagem e salvar o embedding correspondente.
Interface para capturar imagem e realizar o reconhecimento facial.
Script Python que gera e salva embeddings faciais no banco de dados.
Script Python que compara embeddings e identifica faces.
Servidor WebSocket em PHP que gerencia conexões em tempo real e processa solicitações.
Configuração do Apache para o servidor web. Inclui regras de reescrita para redirecionar o tráfego HTTP para HTTPS.
- 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 são bem-vindas! Por favor, abra uma issue para discutir mudanças propostas ou envie um pull request.
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
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.
Se encontrar problemas:
- Verifique se todos os serviços (Apache, MySQL, WebSocket) estão em execução
- Confira os logs do Apache em
/var/log/apache2/error.log - Certifique-se de que as permissões dos arquivos estão corretas
- 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.