Captura facial

La captura facial se realiza con el Selphi Component.

Este componente se encarga de realizar la captura de un selfie del usuario y de la posterior extracción de las características faciales más importantes. Sus principales procesos son:

· Gestión interna de cámaras y permisos.

· Asistente en los procesos de captura de la cara del usuario.

· Generación de las plantillas con las características faciales y de la imagen del usuario.

En el apartado de Lanzamiento simplificado se detallan los pasos necesarios para la integración básica del SDK. En esta sección se añade la información para el lanzamiento de este componente.

Dependencias

Para evitar conflictos y problemas de compatibilidad, en caso de querer instalar el componente en un proyecto que contenga una versión antigua de las librerías de Facephi (Widgets), éstos deberán eliminarse por completo antes de la instalación de los componentes de la SDKMobile.

Cocoapods

  • Actualmente las librerías de FacePhi se distribuyen de forma remota a través de diferentes gestores de dependencias, en este caso Cocoapods. Las dependencias obligatorias que deberán haberse instalado previamente (añadiéndolas en el fichero Podfile del proyecto) son:

  pod 'FPHISDKMainComponent', '~> 2.3.0'
  pod 'zipzap'
  • Para instalar el componente de Selphi deberá incluirse la siguiente entrada en el Podfile de la aplicación:

  pod 'FPHISDKSelphiComponent', '~> 2.3.0'

SPM

  • Las dependencias obligatorias que deberán haberse instalado previamente son:

  • Para instalar el componente de SELPHI deberá incluirse en los módulos del proyecto:

Controladores disponibles

Controlador

Descripcion

SelphiController

Controlador principal de reconocimiento facial

RawTemplateController

Controlador para generar un RawTemplate a partir de una imagen

SignatureSelphiController

Controlador para firmar un proceso con una Captura

Lanzamiento simplificado

Una vez iniciado el SDK y creada una nueva operación se podrá lanzar el componente. Se podrá hacer uso de cualquiera de sus controladores para ejecutar su funcionalidad.

Recepción del resultado

El lanzamiento devolverá la información en formato SdkResult.

  • selphiResult.errorType

  • selphiResult.finishStatus

  • selphiResult.data

Recepción de errores

finishStatus: Que nos indicará si la operación ha finalizado correctamente. Posibles valores:

errorType: Errores propios del widget.

  • SPI_APPLICATION_CONTEXT_ERROR: El contexto de aplicación necesario es nulo.

  • SPI_BAD_EXTRACTOR_CONFIGURATION_ERROR: Widget: Configuración del extractor incorrecta.

  • SPI_CAMERA_PERMISSION_DENIED: El usuario ha rechazado los permisos.

  • SPI_CANCEL_BY_USER: El usuario ha cancelado el proceso.

  • SPI_COMPONENT_LICENSE_ERROR: La licencia del componente no es correcta.

  • SPI_EMPTY_LICENSE: El String de licencia está vacío.

  • SPI_EXTRACTION_LICENSE_ERROR: Widget: Error de licencia.

  • SPI_HARDWARE_ERROR: Widget: Error de hardware.

  • SPI_INITIALIZATION_ERROR: Error de inicialización.

  • SPI_MANAGER_NOT_INITIALIZED: Los managers son nulos.

  • SPI_NO_DATA_ERROR: Los datos de entrada son nulos.

  • SPI_OPERATION_NOT_CREATED: No hay ninguna operación en curso.

  • SPI_RESOURCES_FILE_NOT_FOUND: No se ha encontrado el zip de recursos.

  • SPI_SETTINGS_PERMISSION_ERROR: Widget: Error de permisos.

  • SPI_TEMPLATE_ERROR:

  • SPI_TIMEOUT: Timeout en el proceso.

  • SPI_UNEXPECTED_CAPTURE_ERROR: Widget: Error en la captura.

  • SPI_UNKNOWN_ERROR: Error desconocido.

  • SPI_WIDGET_RESULT_DATA_ERROR: Error en los datos de salida del widget.

Recepción de ejecución correcta - data

El campo data es variable y dependerá de qué componente se ha devuelto el resultado. En el caso de este componente, los campos devueltos son los siguientes:

template

Devuelve la plantilla que se genera después del proceso de extracción. Válida para el proceso de AUTHENTICATION.

templateRaw

Devuelve la plantilla en bruto que se genera después del proceso de extracción. Válida para el proceso de AUTHENTICATION.

bestImageData

Devuelve la mejor imagen extraída del proceso de autenticación en formato array de bytes. Esta imagen es la imagen con el tamaño original extraída de la cámara. Válido para el proceso de liveness.

bestImageCroppedData

Devuelve una imagen recortada centrada en la cara del usuario en formato array de bytes. Esta imagen se obtiene a partir de la bestImage. Ésta es la imagen que se deberá utilizar como imagen característica del usuario que realizó el proceso a modo de avatar.

QrData

Devuelve la información proveniente de la lectura del QR en formato String

bestImageTokenized

Devuelve la mejor imagen extraída del proceso cifrada. Válido para el proceso de liveness.


Información avanzada

Este apartado amplía la información del componente

Controladores adicionales

SignatureSelphiController

Se utiliza de la misma manera que SelphiController con la diferencia de que genera un fichero de firma en la plataforma.

RawTemplateController

Controlador para generar un RawTemplate a partir de una imagen (bitmap).

Ejemplo de uso:

o

Configuración avanzada

Para lanzar el componente actual, se deberá crear un objeto SelphiConfigurationData que será la configuración del controlador del componente.

A continuación, se detallan todos los campos que forman parte de esta clase.

resourcesPath

Establece la ruta donde se encuentra el archivo de recursos del widget. Este archivo contiene tanto los recursos gráficos como los recursos de localización. Esta ruta debe especificarse relativa a la carpeta ‘Resources’ de la aplicación principal.

showTutorial

Esta propiedad permite mostrar el tutorial previo al proceso de captura.

showDiagnostic

Si se le da valor true, al producirse un error o una falta de permisos, el sdk mostrará una pantalla con el error devuelto por el widget.

showResultAfterCapture

Indica si mostrar o no una pantalla con la imagen capturada del documento después del proceso de análisis. En esta pantalla se le da al usuario la posibilidad de repetir el proceso de captura si la imagen que se obtuvo del documento no fuera correcta.

debug

Activación del modo depuración del componente.

fullscreen

Indica si la vista va a tener prioridad para mostrarse en pantalla completa, si el sistema lo permite.

cropPercent

Permite modificar el porcentaje de recortado de la cara. Cuanto mayor sea el número mayor será el recorte del rectángulo con respecto a la cara.

livenessMode

Establece el modo liveness del widget. Los valores permitidos son:

  • SelphiFaceLivenessMode.NONE: Indica que no debe activarse el modo detección de foto en los procesos de autenticación.

  • SelphiFaceLivenessMode.PASSIVE: Indica que la prueba de vida pasiva se realiza en el servidor, enviando para tal fin la “BestImage” o el “TemplateRaw” correspondiente.

  • SelpiFaceLivenessMode.MOVE: Indica que el test de liveness es activo, mostrando unas instrucciones durante la captura, y devolviendo el correspondiente resultado del proceso.

stabilizationMode

Establece un modo de estabilización previo a cualquier proceso de autenticación en el widget. Con este modo se obliga al widget a no empezar ningún proceso si el usuario no se encuentra con la cabeza mirando al frente y sin moverla.

templateRawOptimized

Indica si el template (templateRaw) generado tras el selfie debe optimizarse o no.

qrMode

Booleano que indica si se quiere o no activar la lectura de QR previo al proceso de autenticación.

videoFilename

Establece la ruta absoluta del nombre del archivo en el que se grabará un video del proceso de captura. La aplicación es la responsable de solicitar los permisos necesarios al teléfono en caso de que esa ruta requiera de permisos adicionales. El widget, por defecto, no realizará ningún proceso de grabación a menos que se especifique una ruta de archivo mediante este método.

cameraFlashEnabled

Indica si se activa el flash de la cámara del dispositivo.

translationsContent

Esta propiedad avanzada permite, mediante una cadena en formato xml, configurar la traducción de los literales que se muestran durante el proceso.

viewsContent

Esta propiedad avanzada permite, mediante una cadena en formato xml, configurar las vistas del widget.

vibrationEnabled

Si se le da valor true, se activa la vibración en errores y si la respuesta del widget es OK

Personalización del componente

Aparte de los cambios que se pueden realizar a nivel de SDK (los cuales se explican en el documento de Personalización del SDK), este componente en concreto permite la modificación de su interfaz.

Textos

Los textos pueden ser customizados sobreescribiendo el valor de las siguientes claves en un Localizable.strings, ubicado en la carpeta Resource de la aplicacion.

Las claves que contienen el sufijo _alt son los literales utilizados en las etiquetas de accesibilidad necesarias para la funcionalidad de voice over.

Name

Value

selphi_component_tutorial_message_1

Coloca tu cara en el centro y mira de frente a la cámara.

selphi_component_tutorial_message_2

Retira cualquier objeto que cubra tu cara.

selphi_component_tutorial_message_3

Busca un entorno bien iluminado, sin sombras sobre tu rostro.

selphi_component_tip_message

Coloca tu cara en el centro del círculo

selphi_component_tip_title

Reconocimiento facial

selphi_component_tip_button

COMENZAR

selphi_component_tip_button_alt

Comenzar captura de rostro

selphi_component_tip_anim_alt

Una persona muestra su cara dentro del círculo y la aplicación le hace una foto.

selphi_component_tip_move_anim_alt

Animación de una pantalla de móvil con la cámara frontal activada. En el centro de la pantalla aparece un círculo. Una persona muestra su cara dentro del círculo, la mueve ligeramente hacia un lado y la aplicación le hace una foto.

selphi_component_tutorial_1_anim_alt

La foto se realiza cuando la persona está en el centro.

selphi_component_tutorial_2_anim_alt

Una persona se quita las gafas de sol y se retira el pelo de los ojos.

selphi_component_tutorial_3_anim_alt

La imagen aparece oscura y una persona enciende la luz.

selphi_component_tip_move_message

Coloca tu cara en el centro del círculo y sigue las indicaciones.

selphi_component_timeout_title

Tiempo superado

selphi_component_timeout_desc

No hemos podido identificarte. Inténtalo de nuevo

De este modo, si se desea modificar por ejemplo el texto “COMENZAR” de la clave selphi_component_tip_button_message para el idioma es-MX, se deberá ir al archivo Localizable.strings de la carpeta es-MX.lproj si es que existe (si no, se deberá crear) y ahí, añadir:

"selphi_component_tip_button_message"="EMPEZAR";

Si un mensaje no se especifica en el fichero del idioma, este se rellenará con el mensaje por defecto.

Animaciones

Las animaciones del Tip Previo y Tutoriales son lotties (json) las cuales pueden ser sustituidas por otras siempre respetando el nombre.

Para sustituirlas es necesario añadirlas en la carpeta Resources de la aplicación, siempre respetando el nombre, como se ha dicho anteriormente.

En caso de no sustituir dichas animaciones, se mostraran las animaciones por defecto.

Las animaciones son las siguientes:

Nombre
Función

selphi_anim_tip

Animación LivenessMode: None, Passive

selphi_anim_tip_move

Animación LivenessMode: Move

selphi_anim_tuto_1

Primera animación del tutorial

selphi_anim_tuto_2

Segunda animación del tutorial

selphi_anim_tuto_3

Tercera animación del tutorial

Last updated