Captura facial com IAD - Selphi
Diferenças em relação à captura facial padrão
O Componente Selphi IAD é funcionalmente equivalente ao Componente Selphi padrão, incorporando controles adicionais de segurança voltados à detecção de ataques de injeção de vídeo e ambientes de captura não confiáveis.
A integração, configuração e fluxo de uso do componente são os mesmos. A principal diferença funcional é a inclusão do campo
iadno resultado (SelphiResult), que contém as informações da análise antifraude preparadas para verificação no servidor.Para seu uso, é necessária uma nova licença e substituir a dependência do componente padrão por:
implementation "com.facephi.androidsdk:selphi_iad_component:$version"
Este componente tem duas restrições importantes:
Dispositivos com mínimo de 3 GB de RAM.
Câmera frontal com preview de 1920x1080 ou superior.
Introdução
A captura facial com detecção de ataques de injeção de vídeo é realizada por meio do Componente Selphi IAD.
Este componente é responsável por capturar uma selfie do usuário e extrair suas características faciais mais relevantes, incorporando um conjunto de controles de segurança preventivos voltados para detectar ambientes não confiáveis. Durante o processo, são realizados, entre outros, os seguintes passos:
Gestão interna de câmeras e permissões.
Detecção de tentativas de suplantação por meio de vídeos ou fontes de câmera manipuladas.
Assistência guiada durante a captura facial.
Geração de templates biométricos e imagens do usuário.
Na seção Lançamento simplificado são descritos os passos básicos para a Integração do SDK. Nesta página são detalhadas as informações específicas necessárias para iniciar e configurar este componente.
Dependência
A dependência específica do componente é:
Controladores disponíveis
Este componente inclui vários controladores, cada um voltado para uma funcionalidade específica.
SelphiController
Controlador principal de Reconhecimento Facial
RawTemplateController
Geração de um RawTemplate a partir de uma imagem
SignatureSelphiController
Assinatura de um processo utilizando uma Captura Facial
Lançamento simplificado
Uma vez iniciado o SDK e criada uma nova operação, o componente pode ser iniciado utilizando qualquer um de seus controladores.
Configuração básica
Para iniciar o componente é necessário criar um objeto SelphiConfigurationData, que define o comportamento do Widget.
O componente permite os seguintes modos de detecção de vida:
SelphiFaceLivenessMode.NONESelphiFaceLivenessMode.PASSIVESelphiFaceLivenessMode.MOVE
Recebimento do resultado
O resultado da inicialização é retornado como um objeto SdkResult, que pode indicar um resultado correto ou um erro (nos dados do resultado virá o campo que contém as informações associadas ao IAD Recebimento do resultado correto - data)
Recebimento de erros
Os erros serão retornados como um objeto 'SelphiError'.
Lista de erros:
SPI_ACTIVITY_RESULT_ERROR: O resultado da activity está incorreto.
SPI_ACTIVITY_RESULT_MSG_ERROR: O resultado da activity recebido em msg está incorreto.
SPI_APPLICATION_CONTEXT_ERROR: O contexto de aplicação necessário é nulo.
SPI_BAD_EXTRACTOR_CONFIGURATION_ERROR: Widget: Configuração incorreta do extrator.
SPI_CAMERA_PERMISSION_DENIED: O usuário recusou as permissões.
SPI_CANCEL_BY_USER: O usuário cancelou o processo.
SPI_CANCEL_LAUNCH: Foi realizado um cancelamento geral do SDK.
SPI_COMPONENT_LICENSE_ERROR: A licença do componente não está correta.
SPI_CONTROL_NOT_INITIALIZATED_ERROR: Widget: Erro de inicialização.
SPI_EMPTY_LICENSE: A String da licença está vazia.
SPI_EXTRACTION_LICENSE_ERROR: Widget: Erro de licença.
SPI_FETCH_DATA_ERROR: Erro na coleta do resultado.
SPI_FLOW_ERROR: Erro no processo de fluxo.
SPI_HARDWARE_ERROR: Widget: Erro de hardware.
SPI_INITIALIZATION_ERROR: Erro de inicialização.
SPI_MANAGER_NOT_INITIALIZED: Os managers estão nulos.
SPI_NO_DATA_ERROR: Os dados de entrada estão nulos.
SPI_OPERATION_NOT_CREATED: Não há nenhuma operação em andamento.
SPI_RESOURCES_NOT_FOUND: Não foi encontrado o zip de recursos.
SPI_SETTINGS_PERMISSION_ERROR: Widget: Erro de permissões.
SPI_TEMPLATE_ERROR:
SPI_TIMEOUT: Timeout no processo.
SPI_UNEXPECTED_CAPTURE_ERROR: Widget: Erro na captura.
SPI_UNKNOWN_ERROR: Erro desconhecido.
SPI_WIDGET_RESULT_DATA_ERROR: Erro nos dados de saída do widget.
Recebimento do resultado correto - data
Quando o resultado é correto (SdkResult.Success), obtém-se um objeto SelphiResult.
As imagens são retornadas no formato SdkImage. É possível acessar o bitmap por meio de image.bitmap.
Para converter uma imagem para Base64:
Campos retornados
templateRawTemplate bruto gerado após a extração. Válido para processos de Matching.templateTemplate processado após a extração. Válido para processos de Matching.bestImageMelhor imagem capturada na resolução original. Esta imagem tem o tamanho original extraído da câmera. Válida para o processo de Liveness.bestImageCroppedImagem recortada centralizada no rosto do usuário. É obtida a partir da bestImage.logImagesLista com as 5 melhores imagens (requerlogImages = true).bestImageTokenizedMelhor imagem criptografada do processo. Válida para o processo de Liveness.bestImageTokenizedMelhor imagem criptografada do processo. Válida para o processo de Liveness.iadInformações obtidas na análise de ataques de injeção de vídeo, preparadas para envio ao serviço de verificação.livenessDiagnosticInformações do processo de verificação que confirmam que a pessoa está fisicamente presente e é real.
Informações avançadas
Controladores Adicionais
SignatureSelphiController
Funciona de forma equivalente a SelphiController, com a diferença de que gera um arquivo de assinatura na plataforma.
RawTemplateController
Permite gerar um RawTemplate a partir de uma imagem (Bitmap).
Exemplo de uso:
Configuração avançada
O comportamento do componente é definido por SelphiConfigurationData.
Parâmetros disponíveis
resourcesPathNome do arquivo ZIP de recursos (localizado emassets). Exemplo: “resources-selphi-2-0.zip“.

cropPercentPercentual de corte do rosto. Quanto maior o número, maior será o corte do retângulo em relação ao rosto.cropImageDebugMostra informações de depuração do corte.showResultAfterCaptureMostra uma tela de confirmação após a captura. É dada ao usuário a possibilidade de repetir o processo de captura se a imagem obtida não estiver correta.showTutorialAtiva a tela de tutorial. Explica de forma intuitiva como a captura é realizada.livenessModeModo de detecção de vida (NONE,PASSIVE,MOVE).SelphiFaceLivenessMode.NONE: Indica que o modo de detecção de foto não deve ser ativado nos processos de autenticação.
SelphiFaceLivenessMode.PASSIVE: Indica que o teste de vida passivo é realizado no servidor, enviando para esse fim a “BestImage” ou o “TemplateRaw” correspondente.
SelphiFaceLivenessMode.MOVE: Indica que o teste de vida é ativo, exibindo instruções durante a captura e retornando o resultado correspondente do processo.
stabilizationModeObriga o usuário a manter a cabeça estável antes da captura, olhando para a frente e sem mover a cabeça.cameraFlashEnabledAtiva o flash da câmera.fullscreenPrioriza a visualização em tela cheia.templateRawOptimizedOtimiza otemplateRawgerado.qrModeAtiva a leitura de Código QR prévia ao processo de autenticação.videoFilenameCaminho absoluto para gravar o vídeo do processo. A aplicação é responsável por solicitar as permissões necessárias ao telefone, caso sejam requeridas.viewsContentConfiguração avançada de views por meio de XML. Esta propriedade não altera o conteúdo do arquivo de recursos.showDiagnosticMostra telas de diagnóstico.logImagesRetorna as 5 melhores imagens capturadas.showPreviousTipMostra uma tela informativa antes da captura.extractionDurationDuração do processo de extração.cameraPreferredCâmera preferida (FRONT,BACK).vibrationEnabledFeedback de vibração ao finalizar.moveSuccessfulAttemptsTentativas permitidas em capturas corretas (por padrão 1).moveFailedAttemptsTentativas permitidas em capturas incorretas (por padrão 2).
Personalização do componente
Além das alterações que podem ser feitas no nível do SDK (explicadas em Personalização do SDK), este componente permite sua própria Personalização.
Textos
Os textos podem ser personalizados sobrescrevendo os valores em um arquivo XML de strings.
Name
Valor
selphi_component_timeout_title
Tempo esgotado
selphi_component_timeout_desc
Não conseguimos identificá-lo. Tente novamente
selphi_component_internal_error_title
Houve um problema técnico
selphi_component_internal_error_desc
Pedimos desculpas. Não foi possível fazer a captura
selphi_component_tip_message
Coloque seu rosto no centro do círculo
selphi_component_tip_message_alt
Coloque seu rosto no centro do círculo
selphi_component_tip_anim_alt
Uma pessoa mostra seu rosto dentro do círculo e a aplicação tira uma foto dela.
selphi_component_tip_title
Reconhecimento Facial
selphi_component_tip_button
COMEÇAR
selphi_component_tip_button_alt
Iniciar captura de rosto
selphi_component_tip_move_message
Coloque seu rosto no centro do círculo e siga as instruções
selphi_component_tip_move_message_alt
Coloque seu rosto no centro do círculo e siga as instruções
selphi_component_tip_move_anim_alt
Uma pessoa mostra seu rosto dentro do círculo, o move levemente para um lado e a aplicação tira uma foto dela.
selphi_component_tip_move_title
Reconhecimento Facial
selphi_component_tip_move_button
COMEÇAR
selphi_component_qr_tip_title
Escaneie o Código QR
selphi_component_qr_tip_message
Aponte o Código QR dentro da moldura
selphi_component_qr_tip_anim_alt
Aponte o Código QR dentro da moldura
selphi_component_qr_tip_button
Começar
selphi_component_tip_close_button_alt
Voltar
selphi_component_tip_info_button_alt
Ver dicas
selphi_component_tutorial_message_1
Coloque seu rosto no centro e olhe de frente para a câmera.
selphi_component_tutorial_message_2
Remova qualquer elemento que cubra seu rosto.
selphi_component_tutorial_message_3
Procure um ambiente bem iluminado, sem sombras sobre o seu rosto.
selphi_component_tutorial_1_anim_alt
A foto é tirada quando a pessoa está no centro.
selphi_component_tutorial_2_anim_alt
Uma pessoa tira os óculos de sol e afasta o cabelo dos olhos.
selphi_component_tutorial_3_anim_alt
A imagem aparece escura e uma pessoa acende a luz.
selphi_component_tutorial_close_button_alt
Voltar ao tutorial anterior
Animações
As animações Lottie podem ser sobrescritas adicionando os arquivos com o mesmo nome em res/raw/.
Atualizado