Microsoft Azure Cognitive Services Face API - ESP
Tags: azure, ai, spanish, tutorial
Published: 2022-03-07 16:12:24

Con Face API, no es necesario crear el reconocimiento facial desde cero. Con solo una única llamada a esta API para ofrecer esta funcionalidad en sus aplicaciones, detectando, identificando y analizando rostros en imágenes y videos.
Veremos como se puede detectar un rostro en una imagen, obtener sus propiedades, si que esta usando anteojos, que edad tiene esa persona y además otros atributos como el vello facial, etc. También podemos obtener los detalles de expresiones fáciles, si esta feliz, triste y cual es su emoción detectada. Les dejo más detalles en este [link](https://azure.microsoft.com/en-in/services/cognitive-services/face/).

Para comenzar debemos crear este recurso en el portal de Microsoft Azure.

## **Creación de la API Face en Azure Portal**

Inicie sesión en el portal de Azure y haga clic en **Crear un recurso**. Puede encontrar esta opción en el panel lateral izquierdo. En la pantalla, seleccione **AI + Machine Learning** y verá todas las ofertas de ML proporcionadas por Azure. Allí veremos una ofrenda con el nombre de **Face**. Seleccione esa opción.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xid1tv136lq5wjgw2vqw.JPG)

Una vez que haga clic en esa opción de **Create o Crear**, se le pedirá crear la API de Face. Seleccione la Subscripción en cual va a contener su recurso. Proporcione el Grupo de Recursos, en mi caso es “**FaceAPI-rg**” o seleccione algún grupo que ya haya creado anteriormente. _(Un grupo de recursos es solo para la separación lógica de sus recursos)_.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj8g35lm1jj7l7nz5rnl.JPG)

Luego seleccione la región y proporcione un nombre a su recurso de Face API, en mi caso utilicé “**APIFaceDemo**”.

Seleccione el **Pricing tier Free F0**, para detalles de precios les dejo este [link](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/face-api/). Y tilde el check certificando que este servicio que va a crear no es por o para un departamento de policía en los Estados Unidos.

**Presionan Review + Create**. Les aparecerá la sección de la validación de los datos para luego proseguir con la creación presionando en **_Create_**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e2c0zp5qbmwbknifuj3z.JPG)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mw4ojw98x3elyic1fu1k.JPG)
Si todo salió correctamente la creación del servicio será satisfactoria y presione **Go to resource**.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xhoon2immppo5hlae3qw.JPG)

En el panel lateral izquierdo, debajo de Administración de recursos, en la misma pantalla, puede encontrar la sección **Keys and Endpoint** como se muestra en la siguiente imagen. Copie el Endpoint en un bloc de notas ya que lo necesitaremos pronto cuando probemos la API. Y también puede encontrar la clave de seguridad. Copie eso también y colóquelo en el bloc de notas porque también lo vamos a necesitar.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9w6v7uz55kbn7ze4fgvo.JPG)


## **Probando nuestra Face API**

Podemos usar Postman para poder probar nuesta api ya que este servicio se comporta como un servicio REST. Si no tiene instalado Postman le dejo un enlace para que se pueda descargar la última version. [Link](https://www.postman.com/products/)

Utilizando Postman, copie el Endpoint que hemos dejado en nuestro bloc de notas y péguelo en **Enter Request URL** y cambie la solicitud a **POST**.

Agregue en la URL de nuestro EndPoint **/face/v1.0/detect**

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

Para poder autenticarnos debemos utilizar **Ocp-Apim-Subscription-Key** ya que Face API usa este Header para su autenticación. Pegamos nuestra **Key **que habíamos dejado en nuestro Bloc de notas.

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

En la pestaña de _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/ehyspxpvuogkn98qyua1.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/h6oz0itoitgwxa6y2tzl.png)

> El servicio nos detectó dos caras en nuestra imagen indicada en la URL en el body.

En la siguiente dirección URL, podrán ver todas las llamadas que puede realizar a la API de Face de Cognitive Servies. Les dejo el [link](https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236).

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

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cv7xp85x050elan47oyd.png)
Para finalizar vamos agregarles algunos parámetros a nuestra llamada. Para eso iremos en la pestaña de **Params** a la izquierda de la pestaña de **Authorization**.

Agregaremos que nos retorne por cada face detectada el **FaceId** y algunos atributos como la **edad**, el **vello facial**, si detecta **lentes**, **emoción** y **cabello**.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ordhcuj6r9dyzlmprgt3.png)
Presionamos nuevamente **Send** para realizar la llamada al servicio con nuestros parámetros.


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

> El servicio ha detectado mi cara y la de Satya Nadella. Aclaro que mi edad es mucho menor a 44 años ☺

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

## **Conclusión**
En este post pudimos ver cómo crear un servicio de Face API y probar nuestro servicio. Realmente es muy potente todas las funcionalidades que nos brinda. Recuerden ver el link de la definición del api del servicio para seguir probando más parámetros y combinando atributos.

Muchas gracias por leer y espero que les sea de utilidad. Si tienes alguna pregunta de como realizar lo mencionado no dudes en escribirme.

Happy coding!!!.