Conceptos del reconocimiento facial

En este artículo se explica el concepto de reconocimiento facial, sus operaciones relacionadas y las estructuras de datos subyacentes. En términos generales, el reconocimiento facial hace referencia al método de comprobar o identificar a un individuo mediante su cara.

La comprobación es una coincidencia uno a uno que toma dos caras y devuelve si son la misma cara; por su parte, la identificación es una coincidencia de uno a varios que toma una sola cara como entrada y devuelve un conjunto de candidatos que coinciden. El reconocimiento facial es importante para implementar el escenario de verificación de identidad que las empresas y las aplicaciones pueden usar para comprobar que un usuario (remoto) es quien dice ser.

Las operaciones de reconocimiento usan principalmente las siguientes estructuras de datos. Estos objetos se almacenan en la nube y se puede hacer referencia a ellos por sus cadenas de identificador. Las cadenas de identificador siempre son únicas dentro de una suscripción, pero los campos de nombre pueden estar duplicados.

Nombre Descripción
DetectedFace Esta representación facial única se recupera mediante la operación de detección de caras. Su identificador expira 24 horas después de su creación.
PersistedFace Cuando se agregan objetos DetectedFace a un grupo, como FaceList o Person, se convierten en objetos PersistedFace. Se pueden recuperar en cualquier momento y no caducan.
FaceList o LargeFaceList Esta estructura de datos es una lista variada de objetos PersistedFace. Un objeto FaceList tiene un identificador único, una cadena de nombre y, opcionalmente, una cadena de datos de usuario.
Person Esta estructura de datos es una lista de objetos PersistedFace que pertenecen a la misma persona. Tiene un identificador único, una cadena de nombre y, opcionalmente, una cadena de datos de usuario.
PersonGroup o LargePersonGroup Esta estructura de datos es una lista variada de objetos Person. Tiene un identificador único, una cadena de nombre y, opcionalmente, una cadena de datos de usuario. Se debe entrenar un objeto PersonGroup antes de que se pueda utilizar en operaciones de reconocimiento.
PersonDirectory Esta estructura de datos es similar a LargePersonGroup, pero ofrece capacidad de almacenamiento adicional y otras características agregadas. Para más información, vea Uso de la estructura PersonDirectory.

Operaciones de reconocimiento

En esta sección se detalla cómo las operaciones subyacentes usan las estructuras de datos anteriores para identificar y comprobar una cara.

Creación y entrenamiento de PersonGroup

Debe crear un PersonGroup o LargePersonGroup para almacenar el conjunto de personas con las que realizar la coincidencia. PersonGroups contiene objetos Person, cada uno de los cuales representa a una persona individual y contiene un conjunto de datos faciales que pertenecen a esa persona.

La operación Entrenar prepara el conjunto de datos que se usará en las comparaciones de datos faciales.

Identificación

La operación Identificar toma uno o varios identificadores de la cara de origen (de un objeto DetectedFace o PersistedFace) y PersonGroup o LargePersonGroup. Devuelve una lista de los objetos Person a los que podría pertenecer cada cara de origen. Los objetos Person devueltos se encapsulan como objetos Candidate, que tienen un valor de confianza de predicción.

Comprobación

La operación Verify toma un identificador de cara único (de un objeto DetectedFace o PersistedFace) y un objeto Person. Determina si la cara pertenece a esa misma persona. La comprobación es una coincidencia uno a uno y se puede usar como comprobación final de los resultados de la llamada API de identificación. Sin embargo, opcionalmente puede pasar PersonGroup al que pertenece la persona candidata para mejorar el rendimiento de la API.

Datos de entrada

Utilice las siguientes sugerencias para asegurarse de que las imágenes de entrada proporcionan los resultados de reconocimiento más precisos:

  • Los formatos de imagen de entrada admitidos son JPEG, PNG, GIF(el primer fotograma) y BMP.
  • El tamaño del archivo de imagen no debe ser superior a 6 MB.
  • Cuando crea objetos Person, use las fotos que presentan distintos tipos de ángulos e iluminaciones.
  • Es posible que no se puedan reconocer algunas caras debido a desafíos técnicos como, por ejemplo:
    • Imágenes con iluminación extrema, por ejemplo, fuerte contraluz.
    • Obstáculos que bloquean uno o los dos ojos.
    • Diferencias en el tipo de pelo o vello facial.
    • Cambios en la apariencia facial debido a la edad.
    • Expresiones faciales extremas.
  • Puede utilizar el atributo qualityForRecognition en la operación de detección de caras al usar los modelos de detección aplicables como guía general de si la imagen es probable que tenga una calidad suficiente para intentar el reconocimiento facial. Solo se recomiendan imágenes de calidad "alta" para la inscripción de personas, y de una calidad "media" o superior en escenarios de identificación.

Pasos siguientes

Ahora que está familiarizado con los conceptos de reconocimiento facial, escriba un script que identifique las caras con un objeto PersonGroup entrenado.