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