Búsqueda de rostros en una colección - Amazon Rekognition

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Búsqueda de rostros en una colección

Amazon Rekognition le permite usar un rostro de entrada para buscar coincidencias en una colección de rostros almacenados. Empiece por almacenar la información sobre los rostros detectados en contenedores del lado del servidor denominados “colecciones”. Las colecciones almacenan rostros individuales y de usuarios (varios rostros de la misma persona). Los rostros individuales se almacenan como vectores faciales, una representación matemática del rostro (no una imagen real del rostro). Se pueden usar diferentes imágenes de la misma persona para crear y almacenar varios vectores de rostros en la misma colección. A continuación, puede agregar varios vectores faciales de la misma persona para crear un vector de usuario. Los vectores de usuario pueden ofrecer una mayor precisión en la búsqueda de rostros con representaciones más robustas, que contienen distintos grados de iluminación, nitidez, pose, apariencia, etc.

Una vez que haya creado una colección, puede usar un rostro de entrada para buscar vectores de usuario o vectores de rostros coincidentes en una colección. La búsqueda en vectores de usuarios puede mejorar considerablemente la precisión en comparación con la búsqueda en vectores de rostros individuales. Puede utilizar rostros detectados en imágenes, videos almacenados y videos en streaming para buscar en los vectores de rostros almacenados. Puede utilizar los rostros detectados en las imágenes para buscar en los vectores de usuario almacenados.

Para almacenar la información del rostro, tiene que hacer lo siguiente:

  1. Crear una colección: para almacenar información facial, primero debe crear (CreateCollection) una colección de rostros en una de las AWS regiones de su cuenta. Esta colección de rostros se especifica cuando se llama a la operación IndexFaces.

  2. Indexar rostros: la IndexFacesoperación detecta los rostros de una imagen, extrae y almacena los vectores faciales de la colección. Puede usar esta operación para detectar rostros en una imagen y conservar la información sobre los rasgos faciales que se detecten en una colección. Este es un ejemplo de una operación de API con almacenamiento porque el servicio almacena la información de vectores faciales en el servidor.

Para crear un usuario y asociarle varios vectores faciales, debe hacer lo siguiente:

  1. Crear un usuario: primero debe crear un usuario con CreateUser. Puede mejorar la precisión de la coincidencia de rostros agregando varios vectores faciales de la misma persona en un vector de usuario. Puede asociar hasta 100 vectores faciales a un vector de usuario.

  2. Asociar caras: después de crear el usuario, puede añadir vectores faciales existentes a ese usuario con la AssociateFacesoperación. Los vectores faciales deben residir en la misma colección que un vector de usuario para poder asociarse a ese vector de usuario.

Tras crear una colección y almacenar los vectores faciales y de usuario, puede utilizar las siguientes operaciones para buscar coincidencias faciales:

  • SearchFacesByImage- Para buscar rostros individuales almacenados con un rostro de una imagen.

  • SearchFaces- Para buscar rostros individuales almacenados con un identificador facial suministrado.

  • SearchUsers- Para buscar usuarios almacenados con un identificador facial o un seudónimo proporcionados.

  • SearchUsersByImage- Para buscar usuarios almacenados con un rostro de una imagen.

  • StartFaceSearch- Para buscar rostros en un vídeo almacenado.

  • CreateStreamProcessor- Para buscar rostros en un vídeo en streaming.

nota

Las colecciones almacenan vectores de rostros, que son representaciones matemáticas de rostros. Las colecciones no almacenan imágenes de rostros.

Los siguientes diagramas muestran el orden de las operaciones de llamadas, en función de tus objetivos de uso de las colecciones:

Para una máxima precisión de coincidencia con los vectores de usuario:

Para una coincidencia de alta precisión con vectores faciales individuales:

Puede utilizar las colecciones en diversas situaciones. Por ejemplo, puede crear una colección de rostros que almacene los rostros detectados a partir de las imágenes escaneadas de las tarjetas de los empleados y de los documentos de identidad emitidos por el gobierno mediante las operaciones IndexFaces y AssociateFaces. Cuando un empleado entra en el edificio, se captura una imagen del rostro del empleado y se envía a la operación SearchUsersByImage. Si el rostro coincidente produce una puntuación de similitud lo suficientemente alta (por ejemplo, un 99%), se puede autenticar al empleado.

Administración de colecciones

La colección de rostros es el principal recurso de Amazon Rekognition y cada colección de rostros que se crea tiene un nombre de recurso de Amazon (ARN) único. Creas cada colección de rostros en una AWS región específica de tu cuenta. Cuando se crea una nueva colección, está asociada a la versión más reciente del modelo de detección de rostros. Para obtener más información, consulte Control de versiones del modelo.

Puede realizar las siguientes operaciones de administración en una colección:

Administración de rostros en una colección

Una vez creada una colección de rostros, puede almacenar rostros en ella. Amazon Rekognition ofrece las siguientes operaciones para la administración de los rostros de una colección:

Administrar usuarios en una colección

Después de almacenar varios vectores de rostros de la misma persona, puede mejorar la precisión asociando todos esos vectores faciales en un vector de usuario. Puede utilizar las siguientes operaciones para administrar sus usuarios:

  • CreateUser- La operación crea un nuevo usuario en una colección con un ID de usuario único proporcionado.

  • AssociateUsers- Añade de 1 a 100 identificadores faciales únicos a un seudónimo. Después de asociar al menos un identificador facial a un usuario, puede buscar coincidencias con ese usuario en su colección.

  • ListUsers- Muestra los usuarios de una colección.

  • DeleteUsers- Elimina un usuario de una colección con el ID de usuario proporcionado.

  • DisassociateFaces- Elimina uno o más identificadores faciales de un usuario.

Uso de umbrales de similitud para asociar rostros

Es importante asegurarse de que los rostros asociados a un usuario sean todos de la misma persona. Como ayuda, el parámetro UserMatchThreshold especifica el nivel mínimo de confianza de coincidencia del usuario necesario para que el nuevo rostro se asocie con un UserID que ya contenga al menos un FaceID. Esto ayuda a garantizar que FaceIds esté asociado con el UserID correcto. El valor oscila entre 0 y 100 y el valor predeterminado es 75.

Guía de uso IndexFaces

A continuación se presentan las directrices para usar IndexFaces en situaciones comunes.

Aplicaciones críticas o de seguridad pública

  • Llame a IndexFaces con imágenes que contengan un solo rostro por imagen y asocie el ID de rostro devuelto con el identificador del sujeto de la imagen.

  • Puede utilizar DetectFaces antes de la indexación para comprobar que solo haya un rostro en la imagen. Si se detecta más de un rostro, vuelva a enviar la imagen después de revisarla y con solo un rostro presente en ella. Esto impide indexar varios rostros y asociárselos a la misma persona involuntariamente.

Aplicaciones de uso compartido de fotografías y redes sociales

  • Debe realizar una llamada a IndexFaces sin restricciones respecto a las imágenes que contienen varios rostros en casos de uso como los álbumes de familia. En estos casos, se debe identificar a cada persona en cada foto y utilizar esa información para agrupar las fotos en función de las personas que aparecen en ellas.

Uso general

  • Indexe varias imágenes diferentes de la misma persona, especialmente con diferentes atributos faciales (posturas, vello, etc.), crear un usuario y asociar los distintos rostros a ese usuario para mejorar la calidad de los resultados coincidentes.

  • Incluya un proceso de revisión que permita indexar las coincidencias erróneas con el identificador facial correcto, para mejorar la capacidad de encontrar coincidencias de rostros en lo sucesivo.

  • Para obtener información sobre la calidad de las imágenes, consulte Recomendaciones para la comparación de rostros en las imágenes de entrada.

Búsqueda de rostros y usuarios dentro de una colección

Después de crear una colección de rostros y almacenar vectores faciales o vectores de usuario, puede buscar rostros coincidentes en una colección de rostros. Con Amazon Rekognition puede buscar rostros en una colección que coincidan con:

Puede usar la operación CompareFaces para comparar un rostro de la imagen de origen con los rostros de la imagen de destino. El ámbito de esta comparación se limita a los rostros que se detectan en la imagen de destino. Para obtener más información, consulte Comparación de rostros en imágenes.

Las distintas operaciones de búsqueda que se muestran en la siguiente lista comparan un rostro (identificado mediante un FaceId o una imagen de entrada) con todos los rostros almacenados en una colección de rostros determinada:

Uso de umbrales de similitud para que coincidan con rostros

Le permitimos controlar los resultados de todas las operaciones de búsqueda (CompareFaces, SearchFaces, SearchFacesByImage, SearchUsers, SearchUsersByImage) proporcionando un umbral de similitud como parámetro de entrada.

FaceMatchThreshold, el atributo de entrada del umbral de similitud para SearchFaces y SearchFacesByImage, controla la cantidad de resultados que se devuelven en función de la similitud con el rostro que se hace coincidir. El atributo de entrada del umbral de similitud para SearchUsers y SearchUsersByImage es UserMatchThreshold controla la cantidad de resultados que se devuelven en función de la similitud con el vector de usuario que se hace coincidir. El atributo de umbral es SimilarityThreshold para CompareFaces.

Las respuestas con un valor de atributo de respuesta Similarity inferior al umbral no se devuelven. Este umbral es importante para calibrar su caso de uso, porque puede determinar la cantidad de falsos positivos que se incluyen en los resultados de coincidencia. Esto controla la exhaustividad de los resultados de la búsqueda; mientras más bajo sea el umbral, mayor será la exhaustividad.

Todos los sistemas de machine learning son probabilísticos. Debe utilizar su buen juicio al establecer el umbral de similitud correcto, en función de su caso de uso. Por ejemplo, si desea crear una aplicación de fotografía para identificar a miembros de la familia parecidos, puede elegir un umbral más bajo (como, por ejemplo, un 80 %). Por otra parte, para muchos casos de uso para cumplimiento de la ley, le recomendamos utilizar un valor de umbral alto del 99 % o superior para reducir las identificaciones erróneas accidentales.

Además de FaceMatchThreshold y UserMatchThreshold, puede utilizar el atributo de respuesta Similarity como medio para reducir las identificaciones erróneas accidentales. Por ejemplo, puede optar por utilizar un umbral bajo (como el 80 %) para devolver más resultados. A continuación, puede utilizar el atributo de respuesta Similitud (porcentaje de similitud) para restringir la selección y filtrar por las respuestas correctas en la aplicación. Una vez más, usar una similitud superior (como, por ejemplo, del 99 % o más) reduce el riesgo de identificación errónea.