Face Api — Detectando Masks - ESP
Tags: azure, ai, spanish, tutorial
Published: 2022-03-07 16:30:52

En un post anterior vimos el servicio cognitivo de Vision — Face API, creamos el recurso en el portal de Microsoft Azure y probamos el servicio utilizando la herramienta Postman agregando parámetros para que nos retorne algunos atributos como la edad, el vello facial, si detecta lentes, emoción y cabello. Les dejo el link para que lo revisen. ([link](https://dev.to/ppiova/microsoft-azure-cognitive-services-face-api-spanish-1bh9))

Ahora vamos a ver como utilizando este servicio podemos detectar el atributo máscara en la cara, además si cubre nariz y boca.

Utilizando el ejemplo anterior como base teniendo nuestro endPoint y autorización configurada en nuestra llamada al servicio en Postman vamos a realizar unas modificaciones en los parámetros.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5gqbbob3acnbez42pyu9.PNG)
**Parametros:**

- **returnfaceAttributes:** _**mask**_. Si cada cara está usando una máscara. El tipo de máscara devuelve ‘noMask’, ‘faceMask’, ‘otherMaskOrOcclusion’ o ‘uncertain’. Value devuelve un booleano ‘noseAndMouthCovered’ que indica si la nariz y la boca están cubiertas.

- **recognitionModel**: **_recognition_04_**. El valor predeterminado es recognition_01, Se recomienda “recognition_04” ya que se mejora su precisión en las caras que usan máscaras en comparación con “recognition_03”, y su precisión general se mejora en comparación con “recognition_01” y “recognition_02”.

- **detectionModel**: **_detection_03_**. El ‘detectionModel’ asociado a los faceIds detectados. Los valores de ‘detectionModel’ admitidos incluyen “detection_01”, “detection_02” y “detection_03”. El valor predeterminado es “detection_01”.

En la pestaña **Body** seleccionamos la opción **raw** como tipo de contenido y proporcionamos un JSON que contenga la URL de la imagen que queremos detectar. Puede usar el almacenamiento de Blobs de Azure como lo hago en el ejemplo o sino utilizar una imagen de acceso público. También puede utilizar una imagen de su ordenador seleccionando la opción **binary**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wlwz55bosxp51g7lbzme.PNG)
Presionamos el botón **Send** ubicado arriba a la derecha y chequeamos que funcione nuestra llamada.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zam2q1u9xdh14e3kk2t.png)
**Respuesta:**

- **faceRectangle**: Rectángulo dentro del cual se puede encontrar una cara.

- **faceAttributes**: ‘mask’: nos indica que detectó faceMask y que nariz y boca están cubiertas.

**[Link de la imagen de prueba](https://demosai.blob.core.windows.net/faceapi/PiovaMask.jpg)**.

---

Ahora vamos a probar el servicio con otra imagen de mi amigo Juan, utilizando mascara, pero de manera incorrecta sin tener tapada la nariz.
Modificamos nuestra URL de la imagen.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h1yrsvz7nexypw2eps85.png)
Presionamos el botón **Send** ubicado arriba a la derecha y chequeamos nuestra llamada.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0s8cgqkflil092arxdkv.png)

**Respuesta:**

- **faceRectangle**: Rectángulo dentro del cual se puede encontrar una cara.

- **faceAttributes**: ‘mask’: nos indica que detectó faceMask y que nariz y boca NO están cubiertas con el valor false.

[Link de la imagen de prueba.](https://demosai.blob.core.windows.net/faceapi/MaskJuanchi-02.jpg)

---

Les comparto algunos links de imágenes para que puedan probar el servicio:

- [Personas en avión](https://demosai.blob.core.windows.net/faceapi/MaskPlane.png)

- [Personas en aeropuerto](https://demosai.blob.core.windows.net/faceapi/AeropuertoMask.jpg)

- [Personas](https://demosai.blob.core.windows.net/faceapi/personas-barbijos.jpg)

## **Conclusión**

En este post pudimos ver cómo utilizar el servicio de Face API para detectar si las caras de las personas contienen máscaras y si las mismas tienen cubierto nariz y boca. Realmente es muy potente esta funcionalidad para implementar en nuestras aplicaciones y detectar controles en lugares cerrados de uso obligatorio de barbijos.

Muchas gracias por leer. Si tienes alguna pregunta de como realizar lo mencionado no dudes en escribirme.

Happy coding!!!.