Vídeo identificación

Introducción

La captura facial se realiza con el VideoID Component.

Este componente se encarga de realizar la grabación de un usuario identificándose, mostrando la cara y su documento de identidad.

  • Gestión interna de cámaras, micro y permisos.

  • Conexión con los servicios.

  • Lectura del OCR y captura del documento.

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.

Dependencia

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

  • Las dependencias obligatorias que deberán haberse instalado previamente (añadiéndolas en el fichero Podfile del proyecto) son:

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

pod 'FPHISDKVideoIDComponent', '~> 2.3.0'

SPM

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

  • Para instalar el componente de Vídeo identificación deberá incluirse en los módulos del proyecto:

Controladores disponibles

Controlador

Descripción

VideoIdController

Controlador principal de video identificación

SignatureVideoIdController

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.

Lanzamiento:

Configuración básica

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

La configuración básica necesaria para es la siguiente:

Los diferentes modos son:

  • .ONLY_FACE

  • .FACE_DOCUMENT_FRONT

  • .FACE_DOCUMENT_FRONT_BACK

Recepción del resultado

Los controllers devolverán la información necesaria en formato SdkResult.

Recepción de errores

En la parte del error, dispondremos del enumerado común ErrorType:

  • VID_CANCEL_BY_USER: El usuario ha cancelado el proceso

  • VID_CANCEL_LAUNCH: Se ha hecho una cancelación general del SDK

  • VID_COMPONENT_LICENSE_ERROR: La licencia del componente no es correcta

  • VID_EMPTY_LICENSE: El String de licencia está vacío

  • VID_FACE_DETECTION_TIMEOUT: No se ha detectado cara

  • VID_INITIALIZATION_ERROR: Error de inicialización

  • VID_MANAGER_NOT_INITIALIZED: Los managers son nulos

  • VID_NETWORK_CONNECTION: Error en la conexión a internet

  • VID_NO_DATA_ERROR: Los datos de entrada son nulos

  • VID_OPERATION_NOT_CREATED: No hay ninguna operación en curso

  • VID_PERMISSION_DENIED: El usuario ha rechazado los permisos

  • VID_SOCKET_ERROR: Error en la conexión de los servicios

  • VID_TIMEOUT: Timeout en el proceso

  • VID_VIDEO_ERROR: Error en el procesamiento del vídeo

  • VID_VIDEO_RECORDING_ACTIVE: No se puede iniciar porque el proceso de vídeo grabación está activo

Recepción de ejecución correcta - data

En la parte de SdkResult.Success - data, dispondremos de la clase VideoIdResult.

El resultado devuelve las imágenes en formato SdkImage, es posible extraer el bitmap accediendo a image.bitmap. Si se quisiera convertir a base64 se puede utilizar la función:

Base64.encodeToString(this.toByteArray(), Base64.NO_WRAP)

Los campos devueltos en el resultado son los siguientes:

frontDocumentData

Datos del frente del documento. Incluye:

  • documentImage: Imagen del documento

  • documentFullImage: Imagen completa capturada

  • documentFaceImage: Si se ha encontrado una cara en el documento se devuelve la imagen de la misma.

  • iqaOverExposure: Valor numérico entre 0 y 1 que indica el nivel de sobreexposición de la imagen; un valor alto sugiere que la imagen está demasiado iluminada, lo que puede dificultar la lectura del documento.

  • iqaReadable: Valor numérico entre 0 y 1 que indica la legibilidad del texto del documento; valores más altos implican que el texto es más claro y fácil de reconocer.

  • iqaSharpness: Valor numérico entre 0 y 1 que indica la nitidez de la imagen del documento; valores altos reflejan una imagen más enfocada, lo que mejora la capacidad de extracción de datos.

  • documentFaceImageTokenized: Si se ha encontrado una cara en el documento se devuelve la imagen cifrada de la misma.

backDocumentData

Datos del reverso del documento. Incluye:

  • documentImage: Imagen del documento

  • documentFullImage: Imagen completa capturada

  • documentFaceImage: Si se ha encontrado una cara en el documento se devuelve la imagen de la misma.

  • iqaOverExposure: Valor numérico entre 0 y 1 que indica el nivel de sobreexposición de la imagen; un valor alto sugiere que la imagen está demasiado iluminada, lo que puede dificultar la lectura del documento.

  • iqaReadable: Valor numérico entre 0 y 1 que indica la legibilidad del texto del documento; valores más altos implican que el texto es más claro y fácil de reconocer.

  • iqaSharpness: Valor numérico entre 0 y 1 que indica la nitidez de la imagen del documento; valores altos reflejan una imagen más enfocada, lo que mejora la capacidad de extracción de datos.

  • documentFaceImageTokenized: Si se ha encontrado una cara en el documento se devuelve la imagen cifrada de la misma.

faceImage

Imagen del usuario capturada en la primera sección del proceso.

ocrMap

Mapa del OCR extraído del documento.

ocrDiagnostic

Diccionario con el diagnóstico OCR del documento. Las claves son los campos a validar y los valores son instancias de OcrDiagnostic.

Diagnóstico OCR extraído del documento.

  • OK: El OCR es correcto.

  • NOT_FOUND: No se encuentra la clave OCR.

  • TOLERANCE_ERROR: El OCR no es correcto.

  • WARNING: El OCR no es correcto, pero es solo una advertencia porque es un campo opcional.

matchingSidesScore

Valor numérico entre 0 y 1 que estima el nivel de coincidencia entre las caras del documento (frontal y trasera).

documentType

Tipo de documento obtenido.

personalData

Conjunto reducido de datos obtenidos del usuario:

  • issuer

  • documentNumber

  • issueDate

  • expiryDate

  • name

  • surname

  • fullName

  • gender

  • birthDate

  • birthPlace

  • nationality

  • address

  • nfcKey

  • numSupport

  • mrz

speechText

Texto que el usuario deberá pronunciar durante la grabación del video.

faceImageTokenized

Imagen cifrada del usuario capturada en la primera sección del proceso.

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

video_id_component_init_message_face_content_desc

Coloca tu rostro y el frente de tu documento en las marcas

video_id_component_finish_message

¡Video grabación finalizada!

video_id_component_finish_button

FINALIZAR

video_id_component_restart_button

REPETIR GRABACIÓN

video_id_component_ready_button

CONTINUAR

video_id_component_exit_alert_cancel

Cancelar

video_id_component_exit_alert_question

¿Seguro que quiere finalizar el proceso?

video_id_component_exit_alert_finish

Finalizar

video_id_component_exit_alert_accept

Aceptar

video_id_component_timeout_title

Tiempo superado

video_id_component_timeout_desc

No pudimos hacer la grabación a tiempo. Probemos de nuevo.

video_id_component_internal_error_title

Se ha producido un error

video_id_component_internal_error_desc

Probemos de nuevo.

video_id_component_close_button_alt

Cerrar

video_id_component_back_button_alt

Atrás

video_id_component_logo_alt

Logo

video_id_component_document_front_message

Coloca el frente de tu documento en las marcas

video_id_component_document_front_message_readable

Mantén el frente de tu documento en las marcas

video_id_component_document_front_message_not_readable

Acerca el frente de tu documento a las marcas

video_id_component_document_back_message

Ahora coloca el reverso de tu documento

video_id_component_document_back_message_readable

Mantén el reverso de tu documento en las marcas

video_id_component_document_back_message_not_readable

Acerca el reverso de tu documento a las marcas

video_id_component_switch_camera_message

Prepara el documento mientras se procede al cambio de cámara

video_id_component_face_message

Coloca tu cara dentro del marco.

video_id_component_multiple_face_message

Varias caras detectadas. Coloca solo tu cara dentro del marco

video_id_component_speech_message

Di en voz alta: "Yo (nombre y apellidos) acepto los términos y condiciones".

video_id_component_front_document_captured_message

Frente del documento capturado correctamente

video_id_component_document_back_finish_message

Reverso del documento capturado correctamente

video_id_component_face_timeout_title

No hemos detectado tu rostro

video_id_component_face_timeout_desc

Por favor, coloca tu rostro en la marca para iniciar el proceso

video_id_component_ocr_error_desc

El documento no se ha podido leer. Por favor, revisa la iluminación y la distancia a la cámara

Animaciones

Si se desea modificar las animaciones (lottie) de la SDK habría que incluir las animaciones con el mismo nombre en la carpeta res/raw/ de la aplicación.

Last updated