Android
BCC Face é uma biblioteca Android destinada a ser integrada a um aplicativo Android.
Utiliza a câmera do dispositivo para tirar uma foto de um rosto para fins biométricos. Fornece um simples teste de vivacidade ativo, exigindo que a pessoa sorria por cerca de um segundo e/ou olhe para a direita ou esquerda. O teste de vivacidade inclui uma opção para reproduzir as instruções por voz, facilitando o fluxo para os usuários. Além disso, fornece um teste de vivacidade passivo que pode ser usado para verificar se a foto foi tirada de uma pessoa real sem exigir interação do usuário.
Este manual está atualizado para a versão BCC Face Mobile Android 4.8.0.
O teste de vivacidade passivo está disponível somente a partir da versão 4.4.0 em diante.
Requisitos
BCC Face é uma biblioteca Android e deve ser importada para o projeto alvo.
Versão mínima do Android: Android 6.0 (SDK 23), "Marshmallow".
O dispositivo móvel deve possuir câmera.
O aplicativo nativo deve ser construído com tecnologia Android.
Ambiente de desenvolvimento: é necessário um IDE Android, como Android Studio (recomendado).
Dependências externas adicionais:
Google ML Kit, detecção facial versão 16.0.2;
Lottie, versão 3.0.0;
Libyuv-android, versão 1.0.0;
Serviços externos:
Firebase, do Google. É necessária uma conta, mas não serão aplicadas cobranças já que a biblioteca usa apenas APIs no dispositivo.
Instalação
Adicionando a Biblioteca no Projeto do App
BCC Face é fornecido pela Griaule como um .aar arquivo.
Para adicionar as bibliotecas, vá até o diretório do seu projeto, abra a pasta app e crie os diretórios: libs/bccface. Em seguida, adicione a dependência bccfacelib-release.aar A estrutura de pastas deve ser similar a esta:

O próximo passo é tornar esses arquivos visíveis às dependências do gradle. Para isso, adicione a seguinte linha no arquivo build.gradle (:app), no objeto dependencies:
Dentro do build.gradle (:app) arquivo, também adicione as opções de compilação e defina Source Compatibility e Target Compatibility para usar 1.8 (Java 8):
Configurando o Google ML Kit
Recomenda-se seguir as instruções fornecidas em "Opção 1: Use o fluxo de configuração do console do Firebase" da documentação do Firebase para Android: Adicionar o Firebase ao seu projeto Android.
É necessária uma conta, mas não serão aplicadas cobranças já que a biblioteca usa apenas APIs no dispositivo: Veja detalhes de preços do Firebase.
Se Opção 1 foi escolhida, certifique-se de gerar o arquivo google-services.json e colocá-lo em android/app/ diretório.
Faça alterações nos seguintes arquivos:
android/build.gradleandroid/app/build.gradle, adicione ao final do arquivo:
Configurando todas as dependências
Faça alterações nos seguintes arquivos:
android/build.gradleandroid/app/build.gradle
Uso
Parâmetros e Construtor
Para usar corretamente a biblioteca BCC Face, existem alguns parâmetros obrigatórios.
Um exemplo simples de uso da biblioteca é mostrado abaixo:
O BCCFaceBuilder o construtor da classe recebe os seguintes parâmetros:
context: Context- O contexto da aplicação.delegate: BCCFaceDelegate- Interface responsável por notificar eventos de captura (por exemplo, falha ou sucesso).
O BCCFaceBuilder a classe é responsável por controlar a configuração de uso para BCCFace. Os seguintes parâmetros são aceitos para configurar a captura biométrica e o comportamento do software:
buildSmileCheck(smileProbability: Float = 0.8f)- Adiciona o sorriso para o teste de vivacidade e define o limiar de aceitação. Este recurso está habilitado por padrão.removeSmileCheck()- Remove o sorriso do teste de vivacidade.buildRotationCheck(livenessConfigList: List<HeadRotationCheck>, headRotationAngle: Float = 20f)- Define uma lista de testes de vivacidade para rotação da cabeça e ângulo máximo de rotação. Este recurso está habilitado por padrão. As opções de rotação da cabeça são:removeHeadRotation()- Remove a rotação da cabeça do teste de vivacidade.addPassiveLiveness()- Adiciona o teste de vivacidade passivo. Este recurso é usado para verificar se a foto capturada é de uma pessoa real sem exigir qualquer interação do usuário. Para usar este recurso, VOCÊ DEVE desabilitar os testes de vivacidade ativos (removeSmileCheck()eremoveHeadRotation()) que são adicionados por padrão.buildSpeechSettings(speechSettings: SpeechSettings?)- Define os critérios para fala de acessibilidade, usando os seguintes parâmetros:volume- O volume de áudio entre0.0e1.0.startsMuted- Define se as instruções começam silenciadas ou não (truepara silenciado).pitch- Define o timbre/altura da voz para as instruções entre0.5(baixo) e2.0(alto).speed- Define a velocidade da voz para as instruções. Este valor deve ser positivo.
Os valores predefinidos podem ser acessados através da variável estática:
removeSpeech()- Remove a fala de acessibilidade.setReviewEnable(enable: Boolean)- Define se a tela de revisão da captura biométrica está habilitada ou desabilitada.setInstructionEnable(enable: Boolean)- Define se a tela de instruções está habilitada ou desabilitada.forceLanguage(language: BCCFaceAPI.BCCLanguages?)- Força as instruções a serem exibidas em um único idioma. Se o idioma do dispositivo não for suportado, o inglês será usado. Os idiomas suportados são:removeLanguage()- Remove o idioma forçado.enableFlipCameraButton(enable: Boolean)- Ativa (true) ou desativa (false) o botão de alternância da câmera (câmera frontal ou traseira). Padrão: habilitado (true).setCameraInitialDirection(CameraFacingDirection.<FRONT or BACK>)- Define a direção inicial da câmera, escolha entre:CameraFacingDirection.FRONT- Câmera frontal (configuração padrão).CameraFacingDirection.BACK- Câmera traseira.
Todas as configurações de direção da câmera são obtidas através da combinação dos métodos enableFlipCameraButton e setCameraInitialDirection Por exemplo:
Começar com a câmera frontal e habilitar o botão de alternância da câmera:
Começar com a câmera traseira e desabilitar o botão de alternância da câmera:
Para referência, aqui está a lista completa de parâmetros e valores padrão:
O teste de vivacidade ativo (usando sorriso e rotação aleatória da cabeça) está habilitado por padrão. Para usar somente o teste de vivacidade passivo, antes de adicioná-lo, é necessário remover os métodos de vivacidade ativos do construtor:
Aqui está um trecho de código para inicializar uma captura usando apenas o teste de vivacidade passivo:
Valores de Retorno
Os resultados da última captura facial podem ser recuperados usando o método faceCaptureDidFinish do BCCFaceDelegate interface:
O data o objeto contém ambas as imagens capturadas durante o processo:
As propriedades retornadas são:
originalPhoto(imagem) - A foto original tirada pela câmera.croppedPhoto(imagem) - A foto recortada, que é a imagem do rosto recortada da foto original.passiveResult(ByteArray) - Conteúdo do arquivo da coleta para vivacidade passiva. Está presente apenas se capturado com sucesso. É o retorno da coleta para vivacidade passiva como JPEG ByteArray. Esses dados podem ser salvos/exportados diretamente para um arquivo ou enviados pela rede (para envio em rede: a codificação do sistema pode ser facilmente feita, por exemplo, string Base64).
O originalPhoto e croppedPhoto propriedades retornam null quando a captura é realizada apenas para testes passivos (ou seja, sem incluir um teste ativo).
Se o usuário abortar a captura, fechando antes de capturar a biometria, o método faceCaptureDidAbort será chamado. Você pode implementar esse método para tratar esse cenário.
Projeto de Exemplo
Este é um projeto de exemplo funcional para captura de rosto usando BCC Mobile Face Android:
Last updated
Was this helpful?

