Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Precaución
El acceso al servicio Face se limita en función de los criterios de idoneidad y uso para apoyar nuestros principios de inteligencia artificial responsable. El servicio Face solo está disponible para Microsoft clientes y asociados administrados. Utilice el formulario de admisión de reconocimiento facial para solicitar acceso. Para obtener más información, consulte la página Acceso limitado de Face .
En esta guía se muestra cómo especificar un modelo de reconocimiento facial para la detección de caras, la identificación y la búsqueda de similitud mediante el servicio Azure Face.
El servicio Face usa modelos de aprendizaje automático para realizar operaciones en caras humanas visibles en imágenes. Seguimos mejorando la precisión de nuestros modelos en función de los comentarios de los clientes y los avances en la investigación, y ofrecemos estas mejoras como actualizaciones del modelo. Los desarrolladores pueden especificar qué versión del modelo de reconocimiento facial quieren usar, eligiendo el modelo que mejor se adapte a su caso de uso.
Requisitos previos
Debe estar familiarizado con los conceptos de detección e identificación de rostros de IA. Si no lo está, consulte primero estas guías:
Compatibilidad del modelo
El servicio Azure Face tiene cuatro modelos de reconocimiento disponibles. Los modelos recognition_01 (publicados en 2017), recognition_02 (publicados en 2019) y recognition_03 (publicados en 2020) se admiten continuamente para garantizar la compatibilidad con versiones anteriores para los clientes que usan FaceLists o PersonGroupcreados con estos modelos.
FaceList o PersonGroup siempre usan el modelo de reconocimiento con el que se creó y las caras nuevas se asocian a este modelo cuando se agregan. Esto no se puede cambiar después de la creación y los clientes deben usar el modelo de reconocimiento correspondiente con faceList o PersonGroup correspondiente.
Puede pasar a modelos de reconocimiento posteriores a su propia comodidad; Sin embargo, deberá crear nuevas FaceLists y PersonGroups con el modelo de reconocimiento que prefiera.
Recomendaciones de modelo
El modelo recognition_04 (publicado en 2021) es el modelo más preciso disponible actualmente. Si es un cliente nuevo, use este modelo. Recognition_04 proporciona una precisión mejorada para comparaciones de similitud y comparaciones de coincidencia de personas. Recognition_04 mejora el reconocimiento de los usuarios inscritos que usan fundas faciales (máscaras quirúrgicas, máscaras N95, máscaras de tela). Puede crear experiencias de usuario seguras y sin problemas que usen el modelo de detection_03 más reciente para detectar si un usuario inscrito usa una cubierta facial y, a continuación, usar el modelo de recognition_04 más reciente para reconocer su identidad. Cada modelo funciona independientemente de los demás y no se pretende comparar un umbral de confianza establecido para un modelo en los otros modelos de reconocimiento.
En las secciones siguientes se explica cómo especificar un modelo seleccionado en diferentes operaciones de Face, a la vez que se evitan conflictos de modelos. Si es un usuario avanzado y desea determinar si debe cambiar al modelo más reciente, vaya a la sección Evaluar modelos diferentes para evaluar el nuevo modelo y comparar los resultados mediante el conjunto de datos actual.
Detección de caras con el modelo especificado
La detección de rostros identifica los rasgos visuales de los rostros humanos y encuentra sus ubicaciones delimitadas. También extrae las características de la cara y las almacena temporalmente durante hasta 24 horas para su uso en la identificación. Toda esta información forma la representación de una cara.
El modelo de reconocimiento se usa cuando se extraen las características faciales, por lo que puede especificar una versión del modelo al realizar la operación Detectar.
Al usar detect API, asigne la versión del modelo con el recognitionModel parámetro . Los valores disponibles son:
recognition_01recognition_02recognition_03recognition_04
Opcionalmente, puede especificar el parámetro returnRecognitionModel (valor predeterminado false) para indicar si recognitionModel debe devolverse en respuesta. Por lo tanto, una dirección URL de solicitud para la API DE REST Detectar tendrá este aspecto:
https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}
Si usa la biblioteca cliente, puede asignar el valor de recognitionModel pasando una cadena que representa la versión. Si lo deja sin asignar, se usará una versión de modelo predeterminada de recognition_01. Consulte el ejemplo de código siguiente para la biblioteca cliente de .NET.
string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;
Nota
El parámetro returnFaceId debe establecerse true en para habilitar los escenarios de reconocimiento facial en pasos posteriores.
Identificación de caras con el modelo especificado
El servicio Face puede extraer datos de caras de una imagen y asociarlos a un objeto Person (a través de la llamada add Person Group Person Face API, por ejemplo) y varios objetos Person se pueden almacenar juntos en un objeto PersonGroup. A continuación, se puede comparar una nueva cara con un PersonGroup (con la llamada Identificar desde un PersonGroup) y se puede identificar la persona correspondiente dentro de ese grupo.
Un objeto PersonGroup debe tener un modelo de reconocimiento único para todas las personasy puede especificarlo mediante el recognitionModel parámetro al crear el grupo (Crear grupo de personas o Crear grupo de personas grandes). Si no especifica este parámetro, se usa el modelo original recognition_01 . Un grupo siempre usará el modelo de reconocimiento con el que se creó y las caras nuevas se asociarán a este modelo cuando se agreguen a él. Esto no se puede cambiar después de la creación de un grupo. Para ver con qué modelo está configurado personGroup , use la API Get Person Group con el parámetro returnRecognitionModel establecido como true.
Consulte el ejemplo de código .NET siguiente.
// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}
En este código, se crea un PersonGroup con un ID mypersongroupid, y se configura para usar el modelo recognition_04 para extraer las características faciales.
En consecuencia, debe especificar qué modelo se va a usar al detectar caras para compararlas con este PersonGroup (a través de la Detect API). El modelo que use siempre debe ser coherente con la configuración de PersonGroup; De lo contrario, se producirá un error en la operación debido a modelos incompatibles.
No hay ningún cambio en la API de Identificar desde Grupo de Personas; solo tiene que especificar la versión del modelo en la detección.
Búsqueda de caras similares con el modelo especificado
También puede especificar un modelo de reconocimiento para la búsqueda de similitud. Puede asignar la versión del modelo con recognitionModel al crear FaceList con Create Face List API o Create Large Face List. Si no especifica este parámetro, el recognition_01 modelo se usa de forma predeterminada.
FaceList siempre usará el modelo de reconocimiento con el que se creó y las caras nuevas se asociarán a este modelo cuando se agreguen a la lista; No se puede cambiar después de la creación. Para ver qué modelo tiene configurado FaceList, use la API Get Face List con el parámetro returnRecognitionModel establecido como true.
Consulte el ejemplo de código .NET siguiente.
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}
Este código crea una FaceList llamada My face collection, utilizando el modelo recognition_04 para la extracción de características. Al buscar en este FaceList caras similares a una nueva cara detectada, esa cara debe haber sido detectada (Detectar) usando el modelo recognition_04. Como en la sección anterior, el modelo debe ser coherente.
No hay ningún cambio en find similar API; solo se especifica la versión del modelo en la detección.
Comprobación de caras con el modelo especificado
Verify Face To Face API comprueba si dos caras pertenecen a la misma persona. No hay ningún cambio en verify API con respecto a los modelos de reconocimiento, pero solo se pueden comparar caras detectadas con el mismo modelo.
Evaluación de modelos diferentes
Si desea comparar los rendimientos de diferentes modelos de reconocimiento en sus propios datos, deberá hacer lo siguiente:
- Cree cuatro PersonGroupmediante recognition_01, recognition_02, recognition_03 y recognition_04 respectivamente.
- Use los datos de imagen para detectar caras y registrarlas en Persons dentro de estos cuatro PersonGroups.
- Entrene sus PersonGroup con la API Train Person Group (Entrenar grupo de personas).
- Pruebe con Identificar desde el grupo de personas en los cuatro PersonGroup y compare los resultados.
Si normalmente especifica un umbral de confianza (un valor entre cero y otro que determina la confianza que debe tener el modelo para identificar una cara), es posible que tenga que usar umbrales diferentes para diferentes modelos. Un umbral para un modelo no está pensado para compartirse con otro y no producirá necesariamente los mismos resultados.
Paso siguiente
En este artículo, ha aprendido a especificar el modelo de reconocimiento que se va a usar con las diferentes APIs del servicio Face. A continuación, siga un tutorial rápido para empezar a trabajar con la detección de caras.