Especificación de un modelo de detección de caras

En esta guía se indica cómo especificar un modelo de detección de caras para el servicio Face de Azure AI.

El servicio Face emplea modelos de aprendizaje automático para realizar operaciones en caras humanas de imágenes. Seguimos mejorando la precisión de nuestros modelos gracias a los comentarios de los clientes y los avances en la investigación, y estas mejoras se ofrecen como actualizaciones del modelo. Los desarrolladores tienen la opción de especificar qué versión del modelo de detección de caras les gustaría usar; pueden elegir el modelo que mejor se adapte a sus casos de uso.

Siga leyendo para obtener información sobre cómo especificar el modelo de detección de caras en ciertas operaciones de caras. El servicio Face usa la detección de caras cada vez que convierte la imagen de una cara en otro tipo de datos.

Si no está seguro de si debe usar el modelo más reciente, vaya a la sección Evaluación de modelos diferentes para evaluar el nuevo modelo y comparar los resultados con el conjunto de datos actual.

Requisitos previos

Debe estar familiarizado con el concepto de detección de caras de inteligencia artificial. Si no lo está, consulte la guía conceptual de detección de caras o la guía paso a paso:

Evaluación de modelos diferentes

Los diferentes modelos de detección de caras están optimizados para llevar a cabo distintas tareas. En la tabla siguiente encontrará información general sobre las diferencias.

Modelo Descripción Notas sobre el rendimiento Atributos Puntos de referencia
detection_01 Opción predeterminada para todas las operaciones de detección de caras. No está optimizado para caras pequeñas, de perfil o borrosas. Devuelve los atributos principales de la cara (posición de la cabeza, edad, emociones, etc.) si se especifican en la llamada de detección. Devuelve puntos de referencia de la cara si se especifican en la llamada de detección.
detection_02 Publicado en mayo de 2019 y disponible de forma opcional en todas las operaciones de detección de caras. Precisión mejorada en caras pequeñas, de perfil o borrosas. No devuelve atributos de la cara. No devuelve puntos de referencia de la cara.
detection_03 Publicado en febrero de 2021 y disponible de forma opcional en todas las operaciones de detección de caras. Mayor precisión, también en caras más pequeñas (64 x 64 píxeles) y orientaciones de caras giradas. Devuelve los atributos "mask" y "head pose" si se especifican en la llamada de detección. Devuelve puntos de referencia de la cara si se especifican en la llamada de detección.

La mejor manera de comparar el rendimiento de los modelos de detección es usarlos en un conjunto de datos de ejemplo. Se recomienda llamar a la API Face - Detect con cada modelo de detección en varias imágenes diferentes, sobre todo en imágenes con muchas caras o con caras difíciles de ver. Preste atención al número de caras que devuelve cada modelo.

Detección de caras con el modelo especificado

La detección de caras encuentra las ubicaciones del cuadro delimitador de caras humanas e identifica sus puntos de referencia visuales. Extrae las características de la cara y las almacena para su uso posterior en operaciones de reconocimiento.

Al usar la API Face - Detect, puede asignar la versión del modelo con el parámetro detectionModel. Los valores disponibles son:

  • detection_01
  • detection_02
  • detection_03

Una dirección URL de solicitud para la API de REST Face - Detect tendrá este aspecto:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel][&detectionModel]&subscription-key=<Subscription key>

Si usa la biblioteca cliente, puede asignar el valor de detectionModel si pasa una cadena adecuada. Si lo deja sin asignar, la API usará la versión predeterminada del modelo (detection_01). Consulte el siguiente ejemplo de código de la biblioteca cliente .NET.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: false, returnFaceLandmarks: false, recognitionModel: "recognition_04", detectionModel: "detection_03");

Adición de una cara a un objeto Person con el modelo especificado

El servicio Face puede extraer datos de los rostros de una imagen y asociarlos a un objeto Person con la API PersonGroup Person - Add Face. En esta llamada API, puede especificar el modelo de detección igual que en Face - Detect.

Consulte el siguiente ejemplo de código de la biblioteca cliente .NET.

// Create a PersonGroup and add a person with face detected by "detection_03" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

string personId = (await faceClient.PersonGroupPerson.CreateAsync(personGroupId, "My Person Name")).PersonId;

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.PersonGroupPerson.AddFaceFromUrlAsync(personGroupId, personId, imageUrl, detectionModel: "detection_03");

Este código crea un objeto PersonGroup con el identificador mypersongroupid y le agrega un objeto Person. Después, agrega una cara a este objeto Person mediante el modelo detection_03. Si no se especifica el parámetro detectionModel, la API usará el modelo predeterminado (detection_01).

Nota

No es necesario usar el mismo modelo de detección para todas las caras en un objeto Person ni usar el mismo modelo de detección al detectar caras nuevas para compararlas con un objeto Person (en la API Face - Identify, por ejemplo).

Adición de una cara a un objeto FaceList con el modelo especificado

También puede especificar un modelo de detección al agregar una cara a un objeto FaceList existente. Consulte el siguiente ejemplo de código de la biblioteca cliente .NET.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.FaceList.AddFaceFromUrlAsync(faceListId, imageUrl, detectionModel: "detection_03");

Este código crea un objeto FaceList denominado My face collection y le agrega una cara con el modelo detection_03. Si no se especifica el parámetro detectionModel, la API usará el modelo predeterminado (detection_01).

Nota

No es necesario usar el mismo modelo de detección para todas las caras en un objeto FaceList ni usar el mismo modelo de detección al detectar caras nuevas para compararlas con un objeto FaceList.

Pasos siguientes

En este artículo, ha aprendido a especificar el modelo de detección que se debe usar con diferentes tipos de Face API. A continuación, siga un inicio rápido para empezar a trabajar con la detección y el análisis de caras.