Welcome file

Uso de servicios cognitivos

Cognitive Service : Faces

Microsoft Face service, un servicio basado en la nube que proporciona los algoritmos faciales más avanzados en el mercado. Face Service tiene dos funciones principales: detección de rostros con atributos y reconocimiento facial.

Reconocimiento Facial

El reconocimiento de rostros se usa ampliamente en muchos escenarios, incluida la seguridad, la interfaz de usuario natural, el análisis y la administración de contenido de imágenes, las aplicaciones móviles y la robótica. Se proporcionan cuatro funciones de reconocimiento facial: verificación facial, búsqueda de rostros similares, agrupamiento facial e identificación de la persona.

Ejemplo de uso del servicio

Lenguaje de programación: Javascript - NodeJS

'use strict';

const request = require('request');

//Este valor corresponde al ID de suscripción de azure al momento de adquirir los servicios de cognitiva.
const subscriptionKey = 'abcdefg1234567';

// Debe usar la misma ubicación en su llamada REST que utilizó para obtener sus claves de suscripción. 
//Por ejemplo, si obtuvo sus claves de suscripción de westus, reemplace "westcentralus" en la siguiente URL con "westus".
const uriBase = 'https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect';

// URL de la imagen a la cual se le requiere realizar la detección
const imageUrl =
    'https://upload.wikimedia.org/wikipedia/commons/3/37/Dagestani_man_and_woman.jpg';

// Parametros de la solitud.
// corresponden a los datos que serán devueltos en la respuesta (JSON)
const params = {
    'returnFaceId': 'true',
    'returnFaceLandmarks': 'false',
    'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,' +
        'emotion,hair,makeup,occlusion,accessories,blur,exposure,noise'
};

Ensamblado del cuerpo de la petición:

// Aqui se arma el cuerpo y las cabeceras de la petición HTTP 
// hacia los servicios cognitivos de microsoft
const options = {
    uri: uriBase,
    qs: params,
    body: '{"url": ' + '"' + imageUrl + '"}',
    headers: {
        'Content-Type': 'application/json',
        'Ocp-Apim-Subscription-Key': subscriptionKey
    }
};

// Se realiza la petición de tipo POST hacia los servicios de cognitiva de Microsoft
request.post(options, (error, response, body) => {
	// se verifica que no existan errores en la respuesta
    if (error) {
        console.log('Error: ', error);
        return;
    }
    let jsonResponse = JSON.stringify(JSON.parse(body), null, ' ');
    // de lo contrario obtengo la respuesta de parte de los servicios
    // de Microsoft en formato JSON
    console.log('JSON Response\n');
    console.log(jsonResponse);
});

Respuesta de parte de Microsoft Cognitive Service

Los servicios de Microsoft responden nuestra petición de acuerdo a la imagen enviada previamente con el siguiente JSON para cada una de las personas detectadas en la fotografía:

Fotografia enviada en la petición

[{
        "faceId": "ae8952c1-7b5e-4a5a-a330-a6aa351262c9",
        "faceRectangle": {
            "top": 621,
            "left": 616,
            "width": 195,
            "height": 195
        },
        "faceAttributes": {
            "smile": 0,
            "headPose": {
                "pitch": 0,
                "roll": 6.8,
                "yaw": 3.7
            },
            "gender": "male",
            "age": 37,
            "facialHair": {
                "moustache": 0.4,
                "beard": 0.4,
                "sideburns": 0.1
            },
            "glasses": "NoGlasses",
            "emotion": {
                "anger": 0,
                "contempt": 0,
                "disgust": 0,
                "fear": 0,
                "happiness": 0,
                "neutral": 0.999,
                "sadness": 0.001,
                "surprise": 0
            },
            "blur": {
                "blurLevel": "high",
                "value": 0.89
            },
            "exposure": {
                "exposureLevel": "goodExposure",
                "value": 0.51
            },
            "noise": {
                "noiseLevel": "medium",
                "value": 0.59
            },
            "makeup": {
                "eyeMakeup": true,
                "lipMakeup": false
            },
            "accessories": [],
            "occlusion": {
                "foreheadOccluded": false,
                "eyeOccluded": false,
                "mouthOccluded": false
            },
            "hair": {
                "bald": 0.04,
                "invisible": false,
                "hairColor": [{
                        "color": "black",
                        "confidence": 0.98
                    },
                    {
                        "color": "brown",
                        "confidence": 0.87
                    },
                    {
                        "color": "gray",
                        "confidence": 0.85
                    },
                    {
                        "color": "other",
                        "confidence": 0.25
                    },
                    {
                        "color": "blond",
                        "confidence": 0.07
                    },
                    {
                        "color": "red",
                        "confidence": 0.02
                    }
                ]
            }
        }
    },
    {
        "faceId": "b1bb3cbe-5a73-4f8d-96c8-836a5aca9415",
        "faceRectangle": {
            "top": 693,
            "left": 1503,
            "width": 180,
            "height": 180
        },
        "faceAttributes": {
            "smile": 0.003,
            "headPose": {
                "pitch": 0,
                "roll": 2,
                "yaw": -2.2
            },
            "gender": "female",
            "age": 56,
            "facialHair": {
                "moustache": 0,
                "beard": 0,
                "sideburns": 0
            },
            "glasses": "NoGlasses",
            "emotion": {
                "anger": 0,
                "contempt": 0.001,
                "disgust": 0,
                "fear": 0,
                "happiness": 0.003,
                "neutral": 0.984,
                "sadness": 0.011,
                "surprise": 0
            },
            "blur": {
                "blurLevel": "high",
                "value": 0.83
            },
            "exposure": {
                "exposureLevel": "goodExposure",
                "value": 0.41
            },
            "noise": {
                "noiseLevel": "high",
                "value": 0.76
            },
            "makeup": {
                "eyeMakeup": false,
                "lipMakeup": false
            },
            "accessories": [],
            "occlusion": {
                "foreheadOccluded": false,
                "eyeOccluded": false,
                "mouthOccluded": false
            },
            "hair": {
                "bald": 0.06,
                "invisible": false,
                "hairColor": [{
                        "color": "black",
                        "confidence": 0.99
                    },
                    {
                        "color": "gray",
                        "confidence": 0.89
                    },
                    {
                        "color": "other",
                        "confidence": 0.64
                    },
                    {
                        "color": "brown",
                        "confidence": 0.34
                    },
                    {
                        "color": "blond",
                        "confidence": 0.07
                    },
                    {
                        "color": "red",
                        "confidence": 0.03
                    }
                ]
            }
        }
    }

Analizando los datos obtenidos:

Como podemos observar la respuesta se compone de un Array de Objetos

El primer objeto corresponde al rostro del caballero situado a la izquierda. Veamos algunos de los datos arrojados:

// los valores son evaluados en una escala del 0.000 al 1 
// siendo 1 el maximo valor.
"faceAttributes": {
            "smile": 0, //Sonrisa: valor del 0 al 1. siendo "1" una persona sonriente.
            "gender": "male", // Genero de la persona
            "age": 37, // edad aproximada
            "facialHair": { // vello facial 
                "moustache": 0.4, //bigote
                "beard": 0.4,  // barba
                "sideburns": 0.1 //barba en mejillas
            },
            "glasses": "NoGlasses", // Utiliza lentes?
            "emotion": { // expresión Facial 
                "anger": 0, // Enojo
                "contempt": 0, // desprecio
                "disgust": 0, // disgusto
                "fear": 0,  // miedo
                "happiness": 0, // felicidad
                "neutral": 0.999, // neutral
                "sadness": 0.001, // tristeza
                "surprise": 0 // sorpresa
            },
            "noise": { // tamaño de la nariz
                "noiseLevel": "medium", // media
                "value": 0.59
            }

En este array de objetos se encuentra cada una de las personas detectadas en la fotografía.

Utros usos de este servicio

Identificación:

Face API se puede utilizar para identificar personas en función de una cara detectada y una base de datos de personas (definida como LargePersonGroup / PersonGroup). una base de datos de rostros que se puede actualizar a lo largo del tiempo.

La siguiente imagen es un ejemplo de LargePersonGroup / PersonGroup llamado “Amigos”. Cada grupo puede contener hasta 1,000,000 / 10,000 objetos de personas. Mientras tanto, cada objeto de persona puede tener hasta 248 caras registradas.

enter image description here

Chat en línea
Chat en línea
Preguntas, dudas , problemas ? estamos para ayudarte
Conectando...
Déjenos un mensaje, en un momento le atenderemos.
En un momento le atenderemos
:
:
:
Tienes una consulta? Escríbenos!
:
:
Esta sesión de chat ha terminado
¿Ha sido útil esta conversación? Vota esta sesión de chat.
Bueno Malo