📤 04 - Cadastro Remoto em Massa (Cliente API)

Este script é uma ferramenta utilitária projetada para interagir com o Script 03 (Reconhecimento). Ele permite que você envie uma pasta inteira de fotos de uma nova pessoa para o sistema, cadastrando-

📋 Visão Geral

  • Função: Enviar múltiplas imagens localmente para o servidor de reconhecimento via API.

  • Entrada: Uma pasta local contendo fotos (dataset/Nome).

  • Destino: O script 03_reconhecer.py que deve estar rodando (na mesma máquina ou em outra na rede).

  • Benefício: Permite "treinar" novos usuários em tempo real, sem downtime (tempo de inatividade) do sistema de segurança.


🛠 Pré-requisitos

Você precisará da biblioteca requests para fazer as chamadas HTTP.

Bash

pip install requests

Importante: O script 03_reconhecer.py DEVE estar em execução para que este script funcione, pois ele é quem recebe e processa as fotos.


⚙️ Configuração

No início do arquivo cadastrar_remoto.py, ajuste as variáveis para corresponder aos seus dados:

Variável

Descrição

Exemplo

url

O endereço IP do computador onde o Script 03 está rodando, seguido de :5000/api/cadastrar_direto.

"http://192.168.1.10:5000/api/cadastrar_direto"

pasta_imagens

O caminho local onde estão as fotos que você quer enviar.

"dataset/Eva"

nome_cliente

O nome da pessoa que será registrado no sistema.

"Eva Barros"

Dica de IP: Se você estiver rodando este script no mesmo computador que o Script 03, pode usar http://127.0.0.1:5000/... ou localhost. Se estiver em computadores diferentes, use o IP da rede local da máquina servidora.


🚀 Como Usar

  1. Prepare as Fotos:

    Coloque as fotos da nova pessoa em uma pasta (ex: dataset/NovoUsuario).

  2. Configure o Script:

    Edite o nome_cliente e o caminho da pasta no código.

  3. Execute:

    Bash

  4. Acompanhe o Log:

    O terminal mostrará o progresso envio a envio:

    • [1/5] Enviando foto1.jpg... Sucesso!

    • [2/5] Enviando foto2.jpg... Falha: Rosto não encontrado


🔬 Entendendo o Código

Este script simula um formulário web sendo enviado várias vezes.

  1. Iteração de Arquivos:

    Ele varre a pasta definida em pasta_imagens procurando por arquivos com extensão .jpg, .jpeg ou .png.

  2. Montagem da Requisição:

    Para cada foto, ele abre o arquivo em modo binário (rb) e cria um dicionário de dados contendo:

    • files: O arquivo da imagem propriamente dito.

    • data: O campo nome com o nome da pessoa.

  3. Envio (POST):

    Utiliza requests.post(url, ...) para enviar os dados.

  4. Tratamento de Resposta:

    O script verifica o código de status HTTP retornado pelo servidor (Script 03):

    • 201 (Created): Sucesso, a IA detectou o rosto e gerou o encoding.

    • 400 (Bad Request): Geralmente significa que a IA do servidor não conseguiu encontrar nenhum rosto na foto enviada.


⚠️ Solução de Problemas

  • Erro Connection refused (Conexão recusada):

    • O script 03_reconhecer.py não está rodando.

    • O IP ou a porta na variável url estão errados.

    • Firewall do Windows/Linux pode estar bloqueando a porta 5000.

  • Falha: "Rosto não encontrado":

    • A foto enviada pode estar muito escura, borrada ou o rosto está virado. O servidor (Script 03) rejeita fotos onde a biblioteca face_recognition não consegue garantir a detecção.

  • Erro "Pasta não encontrada":

    • Verifique se o caminho em pasta_imagens está correto relativo a onde você está rodando o script.

Atualizado