https://github.com/marcosalves90/comparar-rostos-api
API que compara semelhança entre dois rostos em imagens
https://github.com/marcosalves90/comparar-rostos-api
docker fastapi html python tailwindcss
Last synced: 12 months ago
JSON representation
API que compara semelhança entre dois rostos em imagens
- Host: GitHub
- URL: https://github.com/marcosalves90/comparar-rostos-api
- Owner: MarcosAlves90
- License: mit
- Created: 2025-05-20T21:15:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-20T21:39:20.000Z (about 1 year ago)
- Last Synced: 2025-06-17T23:38:20.710Z (about 1 year ago)
- Topics: docker, fastapi, html, python, tailwindcss
- Language: HTML
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Comparador de Rostos com FastAPI e DeepFace








Este projeto é uma API para comparar a semelhança entre dois rostos em imagens, utilizando o framework FastAPI e a biblioteca DeepFace. A aplicação recebe duas imagens em formato base64, realiza a comparação facial e retorna se os rostos são semelhantes, além da distância de similaridade.
## Funcionalidades
- **Comparação de rostos:** Recebe duas imagens e verifica se os rostos são semelhantes.
- **Interface web simples:** Frontend em HTML/Tailwind para upload e visualização do resultado.
- **API REST:** Endpoint para integração com outros sistemas.
- **Execução via Docker:** Pronto para rodar em container.
## Tecnologias Utilizadas





- [FastAPI](https://fastapi.tiangolo.com/)
- [DeepFace](https://github.com/serengil/deepface)
- [Uvicorn](https://www.uvicorn.org/)
- [Python 3.11](https://www.python.org/)
- [Docker](https://www.docker.com/)
## Como Executar Localmente
### 1. Pré-requisitos
- Python 3.11+
- pip
- (Opcional) Docker
### 2. Instalação sem Docker
```bash
pip install deepface tf-keras fastapi uvicorn onnxruntime pillow
```
### 3. Executando a API
```bash
uvicorn api_rostos:app --reload
```
Acesse: [http://localhost:8000](http://localhost:8000)
### 4. Executando com Docker
```powershell
docker build -t comparador-rostos .
docker run -p 8000:8000 comparador-rostos
```
Acesse: [http://localhost:8000](http://localhost:8000)
## Como Usar
1. Abra a interface web em `/` (raiz do servidor).
2. Faça upload de duas imagens (JPG, PNG, etc).
3. Clique em "Comparar Rostos".
4. Veja o resultado na tela, incluindo se os rostos são semelhantes e a distância calculada.
## Estrutura dos Arquivos
- `api_rostos.py`: Código principal da API.
- `static/index.html`: Interface web para upload e comparação.
- `Dockerfile`: Configuração para execução em container.
- `temp_imgs/`: Pasta temporária para imagens recebidas (criada automaticamente).
## Endpoints da API
### `POST /comparar-rostos`
Recebe um JSON com duas imagens em base64:
```json
{
"imagem1": "",
"imagem2": ""
}
```
**Resposta:**
```json
{
"resultado": true,
"distancia": 0.3456
}
```
- `resultado`: `true` se os rostos são semelhantes, `false` caso contrário.
- `distancia`: valor numérico da distância de similaridade (quanto menor, mais semelhantes).
## Observações
- O modelo utilizado é o "ArcFace" do DeepFace.
- O parâmetro `enforce_detection=False` permite comparar imagens mesmo que não seja detectado um rosto perfeitamente.
- As imagens recebidas são removidas após o processamento.
## Contribuição
Pull requests são bem-vindos! Para grandes mudanças, abra uma issue primeiro para discutir o que você gostaria de modificar.
## Licença
Este projeto está sob a licença MIT.