DEV Community

Cover image for Face Api — Detectando Masks - ESP
Pablito Piova
Pablito Piova

Posted on • Edited on

Face Api — Detectando Masks - ESP

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)

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
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
Presionamos el botón Send ubicado arriba a la derecha y chequeamos que funcione nuestra llamada.

Image description
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.


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
Presionamos el botón Send ubicado arriba a la derecha y chequeamos nuestra llamada.

Image description

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.


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

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!!!.

Top comments (0)