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
Use FaceAnalysis para rostos ou PersonAnalysis para combinar detecção de pessoas, comparação facial e ReID corporal.
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.
- Use a instalação do guia Docker e a configuração existente. Os contentores já usam root com diretórios de modelos e configuração graváveis. A CLI pode ativar a funcionalidade antes do primeiro arranque.
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.
Opcional: ativar a deteção RGB de vivacidade
Sim. Acrescente --enable-liveness ao instalar o modelo ou ative a função em Sistema na Web UI; depois inicie ou reinicie o Server. normal controla o reconhecimento; observe regista os resultados e continua o reconhecimento. Está desativada por predefinição e o registo tem um interruptor separado.
Numa instalação nova, acrescente --enable-liveness ao comando de instalação do modelo do guia Docker. Os modelos necessários são verificados e a ativação é guardada antes do primeiro arranque.
Num serviço em execução, use o comando correspondente abaixo e reinicie depois. A instalação normal e models addons install liveness não ativam a funcionalidade.
Também pode escolher a transferência com ativação após reinício em Sistema → Deteção de vivacidade. Web e CLI verificam o modelo e acrescentam liveness às duas listas, preservando os restantes ajustes. Uma falha na transferência não ativa nada; aguarde a gravação bem-sucedida.
Inicie uma instalação nova após a preparação; reinicie um serviço existente com o comando CPU/CUDA correspondente abaixo. Confirme enabled=true e restart_required=false. installed descreve o ficheiro verificado e configured_enabled o ajuste guardado. Mudar montagens exige 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 run --rm models install buffalo_l --accept-license --enable-livenessdocker compose -f server/deploy/compose.cuda12.yml run --rm models install buffalo_l --accept-license --enable-livenessdocker compose -f server/deploy/compose.cpu.yml restart serverdocker compose -f server/deploy/compose.cuda12.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