← Voltar aos guias
InsightFacePythonInsightFace ServerDetecção de vivacidade RGB opcional

Ativar a deteção RGB de vivacidade no Python e no InsightFace Server

Adicione verificações antes do reconhecimento e receba status e pontuações por rosto. Configure o reconhecimento condicionado ao resultado de vivacidade ou o modo de observação para fluxos de detecção, comparação, busca e RTSP.

5 min de leitura

O que você vai construir

Análise facial em Python com detecção de vivacidade RGB opcional antes do reconhecimento e resultados por rosto.

Desativada por padrão. As verificações de cadastro têm uma configuração separada.

Antes de começar

  • O código-fonte atualizado do InsightFace 2 com python-package/docs/liveness.md, Python 3.10+ e as dependências do pacote instaladas. Este guia refere-se a essa versão do código; um pacote antigo pode não disponibilizar a API do complemento.
  • Um ficheiro local input.jpg com um rosto e área suficiente à sua volta, além de acesso para instalar o modelo base e o complemento de liveness. Respeite os termos fornecidos com cada modelo.
  • Para o Server: uma instalação Linux atualizada e em execução com o modelo base instalado. A instalação Web exige que o utilizador do Server (UID/GID 10001 no Compose) possa escrever no diretório montado dos complementos e em todo o diretório de configuração.

1. Ativar explicitamente a verificação no Python

A partir da raiz do repositório atualizado, instale o pacote Python no ambiente virtual ativo. Coloque input.jpg no diretório de trabalho antes de executar o exemplo. O exemplo para CPU seleciona deteção e reconhecimento; addons=['liveness'] ativa o modelo separado de liveness.

A primeira execução pode descarregar os modelos em falta. O complemento fica em ~/.insightface/addons/liveness.onnx e o SHA-256 é verificado antes do carregamento. Instalar o ficheiro não o ativa: indique addons=['liveness'] explicitamente. Sem addons, a verificação permanece desativada.

Instalar a partir do código-fonte atualizado
cd python-package
python -m pip install .
Exemplo para CPU com resultados por rosto
import cv2
from insightface.app import FaceAnalysis

image_bgr = cv2.imread("input.jpg")
if image_bgr is None:
    raise FileNotFoundError("input.jpg")

app = FaceAnalysis(
    name="buffalo_l",
    allowed_modules=["detection", "recognition"],
    addons=["liveness"],
    liveness_mode="normal",
    liveness_threshold=0.8,
    providers=["CPUExecutionProvider"],
)
app.prepare(ctx_id=-1, det_size=(640, 640))

for face in app.get(image_bgr):
    print(face.liveness)
    if face.liveness is not None:
        print(
            face.liveness.status,
            face.liveness.is_live,
            face.liveness.live_score,
        )

2. Ler os resultados e escolher a política de reconhecimento

No modo normal, o reconhecimento só ocorre quando is_live é True. Os restantes rostos ficam na lista com os resultados de deteção, mas sem embedding. O modo observe mantém o resultado e continua o reconhecimento perante uma classificação negativa ou entrada rejeitada. Falhas de modelo, alinhamento e inferência geram exceções em ambos os modos.

  • status='ok': is_live é True ou False e live_score é um número em [0, 1]. O limiar predefinido é 0.8; a igualdade também passa. Valide o limiar com entradas representativas e com o fornecedor de execução do seu ambiente.
  • status='input_rejected': is_live e live_score são None. Indica área insuficiente da imagem original à volta do rosto alinhado, não uma classificação de falsificação. Centre o rosto, afaste-se da câmara ou use uma imagem com um recorte menos apertado. reason explica o problema.
  • face.liveness é None se o complemento não tiver sido selecionado; sem rostos detetados, o resultado é []. Use status e is_live na lógica. O texto reason do Python/API está em inglês e não deve ser interpretado como um código de estado estável.

3. Instalar, reiniciar e verificar no Server

Sim. Instale e ative o complemento opcional de detecção de vivacidade RGB pela interface web do servidor. O modo normal condiciona o reconhecimento ao resultado de vivacidade; o modo de observação informa os resultados enquanto mantém o reconhecimento. A detecção de vivacidade fica desativada por padrão e o cadastro tem um controle separado. Consulte o guia para configurar a função e interpretar os resultados.

Abra System → Liveness e escolha Download and enable after restart. A ação descarrega o complemento publicado ou reutiliza uma cópia verificada, valida o SHA-256 e guarda ['liveness'] em inference.addons e addons.auto_download. Aguarde a instalação e a gravação bem-sucedidas antes de reiniciar.

Execute o comando de reinício a partir da raiz do repositório; use compose.cuda12.yml para CUDA. Em System, confirme enabled=true e restart_required=false. installed descreve o ficheiro verificado e configured_enabled a configuração do próximo arranque; nenhum confirma, por si só, a inferência em execução. Alterações aos volumes montados exigem recriar o contentor.

Liveness está desativado por predefinição. A ação Web não altera o registo: liveness_on_registration=false mantém-se. Defina-o separadamente como true para aplicar normal/observe durante o registo. Para desativar liveness, guarde listas vazias em inference.addons e addons.auto_download e reinicie.

Aplicar as definições guardadas à instalação CPU existente
docker compose -f server/deploy/compose.cpu.yml restart server

Precisa de ajuda com implantação em produção?

Fale com a InsightFace sobre licenciamento de modelos, otimização de runtime e suporte para o hardware alvo.

Enviar consulta corporativa