{"id":28276405,"url":"https://github.com/marcosalves90/comparar-rostos-api","last_synced_at":"2025-07-19T16:13:27.283Z","repository":{"id":294534624,"uuid":"987286177","full_name":"MarcosAlves90/comparar-rostos-api","owner":"MarcosAlves90","description":"API que compara semelhança entre dois rostos em imagens","archived":false,"fork":false,"pushed_at":"2025-05-20T21:39:20.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T23:38:20.710Z","etag":null,"topics":["docker","fastapi","html","python","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarcosAlves90.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-20T21:15:11.000Z","updated_at":"2025-05-21T07:12:57.000Z","dependencies_parsed_at":"2025-05-20T22:47:06.146Z","dependency_job_id":"cfa8f171-402d-45a8-9482-8e506cebfecd","html_url":"https://github.com/MarcosAlves90/comparar-rostos-api","commit_stats":null,"previous_names":["marcosalves90/comparar-rostos-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MarcosAlves90/comparar-rostos-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosAlves90%2Fcomparar-rostos-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosAlves90%2Fcomparar-rostos-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosAlves90%2Fcomparar-rostos-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosAlves90%2Fcomparar-rostos-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarcosAlves90","download_url":"https://codeload.github.com/MarcosAlves90/comparar-rostos-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosAlves90%2Fcomparar-rostos-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265962442,"owners_count":23856339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","fastapi","html","python","tailwindcss"],"created_at":"2025-05-21T05:10:35.181Z","updated_at":"2025-07-19T16:13:27.275Z","avatar_url":"https://github.com/MarcosAlves90.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Comparador de Rostos com FastAPI e DeepFace\n\n![GitHub repo size](https://img.shields.io/github/repo-size/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![GitHub language count](https://img.shields.io/github/languages/count/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![GitHub forks](https://img.shields.io/github/forks/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![Bitbucket open issues](https://img.shields.io/bitbucket/issues/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![Bitbucket open pull requests](https://img.shields.io/bitbucket/pr-raw/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![GitHub License](https://img.shields.io/github/license/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![GitHub last commit](https://img.shields.io/github/last-commit/MarcosAlves90/comparar-rostos-api?style=for-the-badge)\n![Open Source Love](https://img.shields.io/badge/Open%20Source-%E2%9D%A4-red?style=for-the-badge)\n\nEste 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.\n\n## Funcionalidades\n\n- **Comparação de rostos:** Recebe duas imagens e verifica se os rostos são semelhantes.\n- **Interface web simples:** Frontend em HTML/Tailwind para upload e visualização do resultado.\n- **API REST:** Endpoint para integração com outros sistemas.\n- **Execução via Docker:** Pronto para rodar em container.\n\n## Tecnologias Utilizadas\n\n![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge\u0026logo=fastapi)\n![DeepFace](https://img.shields.io/badge/DeepFace-4B8BBE?style=for-the-badge\u0026logo=python\u0026logoColor=white)\n![Uvicorn](https://img.shields.io/badge/Uvicorn-222c37?style=for-the-badge\u0026logo=uvicorn)\n![Python 3.11](https://img.shields.io/badge/Python-3.11-blue?style=for-the-badge\u0026logo=python\u0026logoColor=yellow)\n![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n\n- [FastAPI](https://fastapi.tiangolo.com/)\n- [DeepFace](https://github.com/serengil/deepface)\n- [Uvicorn](https://www.uvicorn.org/)\n- [Python 3.11](https://www.python.org/)\n- [Docker](https://www.docker.com/)\n\n## Como Executar Localmente\n\n### 1. Pré-requisitos\n\n- Python 3.11+\n- pip\n- (Opcional) Docker\n\n### 2. Instalação sem Docker\n\n```bash\npip install deepface tf-keras fastapi uvicorn onnxruntime pillow\n```\n\n### 3. Executando a API\n\n```bash\nuvicorn api_rostos:app --reload\n```\n\nAcesse: [http://localhost:8000](http://localhost:8000)\n\n### 4. Executando com Docker\n\n```powershell\ndocker build -t comparador-rostos .\ndocker run -p 8000:8000 comparador-rostos\n```\n\nAcesse: [http://localhost:8000](http://localhost:8000)\n\n## Como Usar\n\n1. Abra a interface web em `/` (raiz do servidor).\n2. Faça upload de duas imagens (JPG, PNG, etc).\n3. Clique em \"Comparar Rostos\".\n4. Veja o resultado na tela, incluindo se os rostos são semelhantes e a distância calculada.\n\n## Estrutura dos Arquivos\n\n- `api_rostos.py`: Código principal da API.\n- `static/index.html`: Interface web para upload e comparação.\n- `Dockerfile`: Configuração para execução em container.\n- `temp_imgs/`: Pasta temporária para imagens recebidas (criada automaticamente).\n\n## Endpoints da API\n\n### `POST /comparar-rostos`\n\nRecebe um JSON com duas imagens em base64:\n\n```json\n{\n  \"imagem1\": \"\u003cbase64 da imagem 1\u003e\",\n  \"imagem2\": \"\u003cbase64 da imagem 2\u003e\"\n}\n```\n\n**Resposta:**\n\n```json\n{\n  \"resultado\": true,\n  \"distancia\": 0.3456\n}\n```\n\n- `resultado`: `true` se os rostos são semelhantes, `false` caso contrário.\n- `distancia`: valor numérico da distância de similaridade (quanto menor, mais semelhantes).\n\n## Observações\n\n- O modelo utilizado é o \"ArcFace\" do DeepFace.\n- O parâmetro `enforce_detection=False` permite comparar imagens mesmo que não seja detectado um rosto perfeitamente.\n- As imagens recebidas são removidas após o processamento.\n\n## Contribuição\n\nPull requests são bem-vindos! Para grandes mudanças, abra uma issue primeiro para discutir o que você gostaria de modificar.\n\n## Licença\n\nEste projeto está sob a licença MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosalves90%2Fcomparar-rostos-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcosalves90%2Fcomparar-rostos-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosalves90%2Fcomparar-rostos-api/lists"}