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.
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.
cd python-package
python -m pip install .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.
docker compose -f server/deploy/compose.cpu.yml restart serverPrecisa 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