“ID + Selfie”: mejora de la verificación de identidad digital mediante AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

“ID + Selfie”: mejora de la verificación de identidad digital mediante AWS

La pandemia global de COVID-19 ha acelerado la necesidad de verificar e incorporar usuarios en línea en varias industrias, como servicios financieros, seguros y atención médica. Cuando se trata de la experiencia del usuario, es crucial proporcionar una transacción sin fricciones manteniendo un alto estándar para la verificación de identidad. La pregunta es, ¿cómo verificas a las personas reales en el mundo digital?

Reconocimiento de amazonas proporciona capacidades de análisis y reconocimiento facial previamente entrenadas para la verificación de identidad de sus aplicaciones en línea, como banca, beneficios, comercio electrónico y mucho más.

En esta publicación, presentamos el patrón de diseño de verificación de identidad "ID + Selfie" y Código de muestra puede usar para crear su propio punto final REST de verificación de identidad. Este es un patrón de diseño común que puede incorporar en soluciones existentes o nuevas que requieren verificación de identidad basada en el rostro. El usuario presenta una forma de identificación como una licencia de conducir o pasaporte. El usuario captura una selfie en tiempo real con la aplicación. Luego comparamos la cara del documento con la selfie en tiempo real tomada en su dispositivo.

La API CompareFaces de Amazon Rekognition

En el núcleo del patrón de diseño "ID + Selfie" se encuentra la comparación del rostro en el selfie con el rostro en el documento de identificación. Para ello utilizamos Amazon Rekognition CompareFaces API. La API compara un rostro en la imagen de entrada de origen con un rostro o rostros detectados en la imagen de entrada de destino. En el siguiente ejemplo, comparamos una licencia de conducir de muestra (izquierda) con una selfie (derecha).

Fuente Target
“ID + Selfie”: mejora de la verificación de identidad digital mediante AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El siguiente es un ejemplo del código API:

response = client.compare_faces(SimilarityThreshold=80,
                              SourceImage={'Bytes': s_bytes},
                              TargetImage={'Bytes': t_bytes})

for faceMatch in response['FaceMatches']:
    position = faceMatch['Face']['BoundingBox']
    similarity = str(faceMatch['Similarity'])

Se devuelven varios valores en el Respuesta de la API CompareFaces. Nos enfocamos en el Similarity valor devuelto en FaceMatches para validar la selfie coincide con la identificación proporcionada.

Comprensión de los parámetros de ajuste clave

SimilarityThreshold está configurado en 80 % de manera predeterminada y solo arrojará resultados con una puntuación de similitud mayor o igual al 80 %. Ajuste el valor especificando el SimilarityThreshold parámetro.

QualityFilter es un parámetro de entrada para filtrar las caras detectadas que no cumplen con una barra de calidad requerida. La barra de calidad se basa en una variedad de casos de uso comunes. Usar QualityFilter para establecer la barra de calidad especificando LOW, MEDIUMo HIGH. Si no desea filtrar rostros de mala calidad, especifique NONE. El valor predeterminado es NONE.

Resumen de la solución

Puede crear una API "ID + Selfie" para la verificación de identidad digital implementando los siguientes componentes:

  • Una API REST con método POST que nos permite enviar el payload de selfie e identificación y devuelve una respuesta, en este caso la puntuación de similitud
  • Una función para recibir la carga útil, convertir las imágenes al formato adecuado y llamar a Amazon Rekognition compare_faces API.

Implementamos Puerta de enlace API de Amazon para la funcionalidad de la API REST y AWS Lambda para la función.

El siguiente diagrama ilustra la arquitectura y el flujo de trabajo de la solución.

“ID + Selfie”: mejora de la verificación de identidad digital mediante AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El flujo de trabajo contiene los siguientes pasos:

  1. El usuario carga el documento de identificación requerido y una selfie.
  2. El cliente envía el documento de identificación y la selfie al punto final REST.
  3. El extremo REST devuelve una puntuación de similitud al cliente.
  4. Se realiza una evaluación a través de la lógica empresarial en su aplicación. Por ejemplo, si la puntuación de similitud es inferior al 80 %, falla la verificación de identidad digital; de lo contrario, pasa la verificación de identidad digital.
  5. El cliente envía el estado al usuario.

Código lambda

La función Lambda convierte la carga útil entrante de base64 a byte para cada imagen y luego envía el origen (selfie) y el destino (identificación) a Amazon Rekognition. compare_faces API y devuelve la puntuación de similitud recibida en el cuerpo de la respuesta API. Ver el siguiente código:

import boto3
import sys
import json
import base64


def lambda_handler(event, context):

  client = boto3.client('rekognition')

  payload_dict = json.loads(json.loads(event['body']))
  selfie = payload_dict['selfie']
  dl = payload_dict['dl']

  # convert text to base64
  s_base64 = dl.encode('utf-8')
  t_base64 = selfie.encode('utf-8')
  #convert base64 to bytes
  s_bytes = base64.b64decode(s_base64)
  t_bytes = base64.b64decode(t_base64)
  response = client.compare_faces(SimilarityThreshold=80,
                                SourceImage={'Bytes': s_bytes},
                                TargetImage={'Bytes': t_bytes})

  for faceMatch in response['FaceMatches']:
      position = faceMatch['Face']['BoundingBox']
      similarity = str(faceMatch['Similarity'])

  return {

    'statusCode': response['ResponseMetadata']['HTTPStatusCode'],

    'body': similarity

  }

Implementar el proyecto

Este proyecto está disponible para implementar a través de Muestras de AWS con el Kit de desarrollo en la nube de AWS (CDK de AWS). Puede clonar el repositorio y utilizar el siguiente proceso de CDK de AWS para implementarlo en su cuenta de AWS.

  1. Configure un usuario que tenga permisos para implementar mediante programación los recursos de la solución a través del CDK de AWS.
  2. Configura el Interfaz de línea de comandos de AWS (CLI de AWS). Para obtener instrucciones, consulte Configuración de la AWS CLI.
  3. Si es la primera vez que utiliza el CDK de AWS, complete los requisitos previos que se enumeran en Trabajar con AWS CDK en Python.
  4. Clona el Repositorio GitHub.
  5. Crear el entorno virtual. El comando que use depende de su sistema operativo:
    1. Si usa Windows, ejecute el siguiente comando en la ventana de su terminal desde la fuente del repositorio clonado:
      ..venvScriptsactivate

    2. Si usa Mac o Linux, ejecute el siguiente comando en la ventana de su terminal desde la fuente del repositorio clonado:
      .venv/bin/activate

  6. Después de activar el entorno virtual, instale las dependencias estándar de la aplicación:
    python -m pip install -r requirements.txt

  7. Ahora que el entorno está configurado y se cumplen los requisitos, podemos emitir el comando de implementación de AWS CDK para implementar este proyecto en AWS:
    CDK Deploy

Realizar llamadas a la API

Necesitamos enviar la carga útil en formato base64 al punto final REST. Usamos un archivo de Python para realizar la llamada a la API, lo que nos permite abrir los archivos de origen y de destino, convertirlos a base64 y enviar la carga útil a API Gateway. Este código está disponible en el repositorio.

Tenga en cuenta que SOURCE y TARGET las ubicaciones de los archivos estarán en su sistema de archivos local y la URL es la URL de API Gateway generada durante la creación del proyecto.

import requests
from base64 import b64encode
from json import dumps

TARGET = '.png'
SOURCE = .png'
URL = "https://.execute-api..amazonaws.com//ips"
ENCODING = 'utf-8'
JSON_NAME = 'output.json'

# first: reading the binary stuff
with open(SOURCE, 'rb') as source_file:
    s_byte_content = source_file.read()
with open(TARGET, 'rb') as target_file:
    t_byte_content = target_file.read()

# second: base64 encode read data
s_base64_bytes = b64encode(s_byte_content)
t_base64_bytes = b64encode(t_byte_content)

# third: decode these bytes to text
s_base64_string = s_base64_bytes.decode(ENCODING)
t_base64_string = t_base64_bytes.decode(ENCODING)

# make raw data for json
raw_data = {
    " dl ": s_base64_string,
    " selfie ": t_base64_string
}

# now: encoding the data to json
json_data = dumps(raw_data, indent=2)

response = requests.post(url=URL, json=json_data)
response.raise_for_status()

print("Status Code", response.status_code)
print("Body ", response.json())

Limpiar

Usamos AWS CDK para construir este proyecto, por lo que podemos abrir nuestro proyecto localmente y emitir el siguiente comando de AWS CDK para limpiar los recursos:

CDK Destroy

Conclusión

Ahí lo tienes, el patrón de diseño “ID + Selfie” con una API simple que puedes integrar con tu aplicación para realizar la verificación de identidad digital. En la próxima publicación de nuestra serie, ampliamos aún más este patrón extrayendo texto del documento de identificación y buscando una colección de rostros para evitar la duplicación.

Para obtener más información, consulte el Guía para desarrolladores de Amazon Rekognition en la detección y el análisis de rostros.


Acerca de los autores

“ID + Selfie”: mejora de la verificación de identidad digital mediante AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai. mike ames es un Arquitecto Principal de Soluciones Aplicadas de IA/ML con AWS. Ayuda a las empresas a utilizar el aprendizaje automático y los servicios de inteligencia artificial para combatir el fraude, el desperdicio y el abuso. En su tiempo libre, puedes encontrarlo montando bicicleta de montaña, haciendo kickboxing o tocando la guitarra en una banda de metal de los 90.

“ID + Selfie”: mejora de la verificación de identidad digital mediante AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.noah donaldson es un arquitecto de soluciones en AWS que brinda apoyo a organizaciones financieras federales. Está entusiasmado con la tecnología AI/ML que puede reducir los procesos manuales, mejorar las experiencias de los clientes y ayudar a resolver problemas interesantes. Fuera del trabajo, disfruta pasar tiempo en el hielo con su hijo, jugar al hockey, cazar con su hija mayor y jugar al baloncesto con su hija menor.

Sello de tiempo:

Mas de Aprendizaje automático de AWS