iOS

BCC Face é uma biblioteca destinada a ser integrada em uma aplicação iOS a partir de um .framework arquivo.

Ele usa a câmera do dispositivo para tirar uma foto de um rosto para fins biométricos. Fornece um teste simples de vivacidade ativa, 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 falar as instruções, facilitando o fluxo de trabalho para os usuários. Além disso, fornece um teste de vivacidade passiva que pode ser usado para verificar se a foto foi tirada de uma pessoa real sem exigir interação do usuário.

Este manual é atualizado para a versão do BCC Face Mobile iOS 4.8.0.

circle-exclamation

Requisitos

Instalação

Instalando Dependências

1 - Adicione os seguintes Pods às dependências da aplicação no Podfile:

pod 'GoogleMLKit/FaceDetection'
circle-info

Se a aplicação não possuir um Podfile, ele pode ser criado na pasta raiz do seu projeto Xcode usando o comando pod init no terminal. O Podfile não aparecerá diretamente no Xcode; ele será criado no diretório do projeto.

É preferível usar frameworks dinâmicos. Isso pode ser indicado usando a flag use_frameworks! no Podfile.

Um exemplo de Podfile com um target chamado BCCs-Sample é mostrado abaixo:

platform :ios, '15.0'

target 'BCCs-Sample' do
	use_frameworks!

	pod 'GoogleMLKit/FaceDetection', '~> 6.0.0'
	pod 'lottie-ios', '~> 4.5.0'
end

post_install do |installer|
	installer.pods_project.targets.each do |target|
		target.build_configurations.each do |config|
			config.build_settings['DEVELOPMENT_TEAM'] = "YOUR_DEVELOPMENT_TEAM_KEY"
			config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
		end
	end
end
circle-exclamation
circle-exclamation

2 - Feche o projeto Xcode, abra um terminal e vá para a pasta onde o Podfile está, e então execute:

Após a execução terminar, um arquivo com a .xcworkspace extensão será criado na mesma pasta.

3 - Abra o novo .xcworkspace arquivo.

circle-exclamation

Importando e Configurando

Importando o Projeto

  • Abra o projeto usando o .xcworkspace arquivo.

  • Adicione o BCCFace.framework arquivo ao projeto, então adicione-o à lista de frameworks da sua aplicação.

    • Mova o .framework arquivo para a árvore de arquivos do projeto.

      Se já houver uma pasta de frameworks, é recomendado mover o arquivo para lá.

    • Abra as configurações do projeto.

    • Vá para a aba Geral .

    • Clique e arraste o .framework para a árvore do projeto na seção Frameworks, Libraries, etc.

  • Altere a BCCFace.framework configuração de Do not embed para Embed & Sign.

  • Altere a versão alvo do seu projeto para um mínimo de iOS 15.

circle-info

É recomendado desabilitar iPad como target.

Configuração Inicial

Esta versão não possui dependências do Firebase, nem de uma configuração inicial chamada pelo AppDelegate. A única configuração inicial necessária é que a aplicação deve solicitar permissão de uso da câmera. Para isso, adicione a seguinte chave no info.plist arquivo, na Information Property List:

O valor da chave é uma mensagem a ser mostrada ao usuário quando solicitada a permissão de uso da câmera. Este valor pode ficar em branco ou ser preenchido com uma mensagem personalizada.

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:

  • hostVC: UIViewController - View controller que chama a tela de captura.

  • delegate: BCCFaceDelegate - Interface responsável por notificar eventos de captura (por exemplo, falha ou sucesso).


O initializeCapture o método também aceita um parâmetro opcional, como mostrado abaixo:

Se você quiser que a navegação ocorra através de um navigation controller, você deve fornecê-lo ao chamar o método.


O BCCFaceBuilder a classe é responsável por lidar com 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(with smileProbability: ClosedRange<Float> = 0.5...1.0) - Adiciona o sorriso para o teste de vivacidade e define o limiar de aceitação. Esse recurso é habilitado por padrão.

  • removeSmileCheck() - Remove o sorriso do teste de vivacidade.

  • buildRotationCheck(_ rotationChecks: [HeadRotationCheck], headRotationAngle: ClosedRange<Float> = -6.0...6.0) - Define uma lista de testes de vivacidade para rotação da cabeça e o ângulo máximo de rotação. Esse recurso é habilitado por padrão. As opções de rotação de cabeça são:

  • removeHeadRotation() - Remove a rotação de cabeça do teste de vivacidade.

  • addPassiveLiveness() - Adiciona o teste de vivacidade passiva. Esse recurso é usado para verificar se a foto capturada é de uma pessoa real sem exigir qualquer interação do usuário. Para usar esse recurso, VOCÊ DEVE desabilitar os checagens de vivacidade ativas (removeSmileCheck() e removeHeadRotation()) 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 do áudio entre 0.0 e 1.0.

    • startsMuted - Define se as instruções começam silenciadas ou não (true para mudo).

    • pitch - Define a entonação da voz para as instruções entre 0.5 (baixo) e 2.0 (alto).

    • speed - Define a velocidade da voz para as instruções. Este valor deve ser positivo.

    Os valores pré-definidos podem ser acessados através da variável estática:

  • removeSpeech() - Remove a fala de acessibilidade.

  • setReviewEnable(_ enable: Bool) - Define se a tela de revisão da captura biométrica está habilitada ou desabilitada.

  • setInstructionEnable(_ enable: Bool) - Define se a tela de instruções está habilitada ou desabilitada.

  • forceLanguage(_ language: BCCLanguages?) - Força as instruções a serem mostradas 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.

Para referência, aqui está uma lista completa de parâmetros e valores padrão:

circle-exclamation

Aqui está um trecho de código para inicializar uma captura usando apenas o teste de vivacidade passiva:

Valores de Retorno

Os resultados da última captura facial podem ser recuperados usando o faceCaptureDidFinish método do BCCFaceDelegate interface:

O data o objeto contém 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 (Data) - Conteúdo do arquivo da coleção para vivacidade passiva. Está presente apenas se capturado com sucesso. É o retorno da coleta para vivacidade passiva como JPEG Data. Esses dados podem ser salvos/exportados diretamente para um arquivo ou enviados pela rede (para envio na rede: a codificação do sistema pode ser feita facilmente, por exemplo, string Base64).

Se o usuário abortar a captura, fechando antes de capturar os biométricos, o método faceCaptureDidAbort será chamado. Você pode implementar este método para tratar esse cenário.

Projeto de Exemplo

Este é um projeto de exemplo funcional para captura facial usando o BCC Mobile Face iOS:

Last updated

Was this helpful?