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:
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