Inicio rápido: Detección de caras en una imagen mediante Face REST API y PythonQuickstart: Detect faces in an image using the Face REST API and Python

En esta guía de inicio rápido, usará la API REST de Azure Face con Python para detectar caras humanas en una imagen.In this quickstart, you will use the Azure Face REST API with Python to detect human faces in an image. El script dibujará marcos alrededor de las caras y superpondrá información de género y edad en la imagen.The script will draw frames around the faces and superimpose gender and age information on the image.

Un hombre y una mujer, cada uno con un rectángulo dibujado alrededor de sus caras y mostrando información sobre la edad y el sexo en la imagen.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

Ejecutar Jupyter NotebookRun the Jupyter notebook

Puede ejecutar esta guía de inicio rápido como una instancia de Jupyter Notebook en MyBinder.You can run this quickstart as a Jupyter notebook on MyBinder. Para iniciar Binder, seleccione el botón siguiente.To launch Binder, select the button below. Después, siga las instrucciones del Notebook.Then follow the instructions in the notebook.

BinderBinder

Creación y ejecución del ejemploCreate and run the sample

Como alternativa, puede ejecutar este inicio rápido desde la línea de comandos con los pasos siguientes:Alternately, you can run this quickstart from the command line with the following steps:

  1. Copie el código siguiente en un editor de texto.Copy the following code into a text editor.
  2. Realice los siguientes cambios en el código donde sea necesario:Make the following changes in code where needed:
    1. Reemplace el valor de subscription_key por la clave de suscripción.Replace the value of subscription_key with your subscription key.
    2. Edite el valor de face_api_url para incluir la dirección URL del punto de conexión del recurso de Face API.Edit the value of face_api_url to include the endpoint URL for your Face API resource.
    3. También puede reemplazar el valor de image_url por la dirección URL de una imagen diferente que desee analizar.Optionally, replace the value of image_url with the URL of a different image that you want to analyze.
  3. Guarde el código como un archivo con la extensión .py.Save the code as a file with an .py extension. Por ejemplo, detect-face.py.For example, detect-face.py.
  4. Abra una ventana de símbolo del sistema.Open a command prompt window.
  5. En el símbolo del sistema, utilice el comando python para ejecutar el ejemplo.At the prompt, use the python command to run the sample. Por ejemplo, python detect-face.py.For example, python detect-face.py.
import requests
import json

# set to your own subscription key value
subscription_key = None
assert subscription_key

# replace <My Endpoint String> with the string from your endpoint URL
face_api_url = 'https://<My Endpoint String>.com/face/v1.0/detect'

image_url = 'https://upload.wikimedia.org/wikipedia/commons/3/37/Dagestani_man_and_woman.jpg'

headers = {'Ocp-Apim-Subscription-Key': subscription_key}

params = {
    'returnFaceId': 'true',
    'returnFaceLandmarks': 'false',
    'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise',
}

response = requests.post(face_api_url, params=params,
                         headers=headers, json={"url": image_url})
print(json.dumps(response.json()))

Examen de la respuestaExamine the response

Se devuelve una respuesta correcta en JSON.A successful response is returned in JSON.

[
  {
    "faceId": "e93e0db1-036e-4819-b5b6-4f39e0f73509",
    "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": "37c7c4bc-fda3-4d8d-94e8-b85b8deaf878",
    "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
          }
        ]
      }
    }
  }
]

Pasos siguientesNext steps

A continuación, explore la documentación de referencia de Face API para más información sobre los escenarios admitidos.Next, explore the Face API reference documentation to learn more about the supported scenarios.