Installer et exécuter des conteneurs d’API VisageInstall and run Face containers

L’API Visage d’Azure Cognitive Services fournit un conteneur Linux standardisé pour Docker qui détecte les visages humains dans des images.Azure Cognitive Services Face provides a standardized Linux container for Docker that detects human faces in images. Cette API identifie également les attributs, y compris les caractéristiques comme le nez et les yeux, le sexe, l’âge et d’autres caractéristiques du visage prévues par la machine.It also identifies attributes, which include face landmarks such as noses and eyes, gender, age, and other machine-predicted facial features. En plus de ces capacités de détection, l’API Visage peut vérifier si deux visages dans la même image ou dans des images différentes sont identiques à l’aide d’un score de confiance.In addition to detection, Face can check if two faces in the same image or different images are the same by using a confidence score. L’API Visage peut également comparer les visages par rapport à une base de données pour voir si un visage paraissant similaire ou identique existe déjà.Face also can compare faces against a database to see if a similar-looking or identical face already exists. Elle peut également regrouper des visages similaires à l’aide de caractéristiques visuelles partagées.It also can organize similar faces into groups by using shared visual traits.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

PrérequisPrerequisites

Vous devez respecter les prérequis suivants avant d’utiliser les conteneurs de l’API Visage.You must meet the following prerequisites before you use the Face API containers.

ObligatoireRequired ObjectifPurpose
Moteur DockerDocker Engine Le moteur Docker doit être installé sur un ordinateur hôte.The Docker Engine must be installed on a host computer. Docker fournit des packages qui configurent l’environnement Docker sur macOS, Windows et Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Pour apprendre les principes de base de Docker et des conteneurs, consultez la vue d’ensemble de Docker.For a primer on Docker and container basics, see the Docker overview.

Vous devez configurer Docker pour permettre aux conteneurs de se connecter à Azure et de lui envoyer des données de facturation.Docker must be configured to allow the containers to connect with and send billing data to Azure.

Sur Windows, vous devez également configurer Docker pour prendre en charge les conteneurs Linux.On Windows, Docker also must be configured to support Linux containers.

Bonne connaissance de DockerFamiliarity with Docker Vous avez besoin de connaissances de base des concepts Docker, telles que les registres, les référentiels, les conteneurs et les images conteneur.You need a basic understanding of Docker concepts, such as registries, repositories, containers, and container images. Vous devez également connaître les commandes docker de base.You also need knowledge of basic docker commands.
Ressource visageFace resource Pour utiliser le conteneur, vous devez disposer des éléments suivants :To use the container, you must have:

Une ressource Visage Azure, la clé API associée et l’URI de point de terminaison.An Azure Face resource and the associated API key and the endpoint URI. Les deux valeurs sont disponibles sur les pages Vue d’ensemble et Clés de la ressource.Both values are available on the Overview and Keys pages for the resource. Elles sont nécessaires au démarrage du conteneur.They're required to start the container.

{API_KEY}  : L’une des deux clés de ressource disponibles à la page Clés{API_KEY}: One of the two available resource keys on the Keys page

{ENDPOINT_URI}  : le point de terminaison tel qu'il est fourni à la page Vue d’ensemble{ENDPOINT_URI}: The endpoint as provided on the Overview page

Collecte des paramètres requisGathering required parameters

Il existe trois paramètres principaux pour tous les conteneurs de Cognitive Services requis.There are three primary parameters for all Cognitive Services' containers that are required. Le contrat de licence utilisateur final (CLUF) doit être présent avec une valeur de accept.The end-user license agreement (EULA) must be present with a value of accept. En outre, une URL de point de terminaison et une clé API sont nécessaires.Additionally, both an Endpoint URL and API Key are needed.

URL du point de terminaison {ENDPOINT_URI}Endpoint URI {ENDPOINT_URI}

La valeur URI du point de terminaison est disponible sur la page Vue d’ensemble du portail Azure de la ressource Cognitive Service correspondante.The Endpoint URI value is available on the Azure portal Overview page of the corresponding Cognitive Service resource. Accédez à la page Vue d’ensemble, pointez sur le point de terminaison et une icône Copy to clipboard s’affiche.Navigate to the Overview page, hover over the Endpoint, and a Copy to clipboard icon will appear. Copiez et utilisez si nécessaire.Copy and use where needed.

Collecter l’URI de point de terminaison pour une utilisation ultérieure

Clés {API_KEY}Keys {API_KEY}

Cette clé est utilisée pour démarrer le conteneur et est disponible sur la page Clés de la ressource Cognitive Service correspondante sur le portail Azure.This key is used to start the container, and is available on the Azure portal's Keys page of the corresponding Cognitive Service resource. Accédez à la page Clés, puis cliquez sur l’icône Copy to clipboard .Navigate to the Keys page, and click on the Copy to clipboard icon.

Obtenir l’une des deux clés pour une utilisation ultérieure

Important

Ces clés d’abonnement sont utilisées pour accéder à votre API Cognitive Service.These subscription keys are used to access your Cognitive Service API. Ne partagez pas vos clés.Do not share your keys. Stockez-les en toute sécurité, par exemple, à l’aide de Azure Key Vault.Store them securely, for example, using Azure Key Vault. Nous vous recommandons également de régénérer ces clés régulièrement.We also recommend regenerating these keys regularly. Une seule clé est nécessaire pour effectuer un appel d’API.Only one key is necessary to make an API call. Lors de la régénération de la première clé, vous pouvez utiliser la deuxième clé pour un accès continu au service.When regenerating the first key, you can use the second key for continued access to the service.

Demander l’accès au registre de conteneurs privéRequest access to the private container registry

Complétez et envoyez le formulaire de demande de conteneurs Cognitive Services Vision pour demander un accès au conteneur.Fill out and submit the Cognitive Services Vision Containers Request form to request access to the container. Le formulaire demande des informations sur vous, votre entreprise et le scénario d’utilisateur pour lequel vous allez utiliser le conteneur.The form requests information about you, your company, and the user scenario for which you'll use the container. Une fois que vous avez envoyé le formulaire, l’équipe Azure Cognitive Services vérifie que vous remplissez bien les critères d’accès au registre de conteneurs privé.After you submit the form, the Azure Cognitive Services team reviews it to make sure that you meet the criteria for access to the private container registry.

Important

Vous devez utiliser une adresse e-mail associée à un compte Microsoft (MSA) ou à un compte Azure Active Directory (Azure AD) dans le formulaire.You must use an email address associated with either a Microsoft Account (MSA) or an Azure Active Directory (Azure AD) account in the form.

Si votre demande est approuvée, vous recevrez un e-mail contenant des instructions pour obtenir vos informations d’identification et un accès au registre de conteneurs privé.If your request is approved, you receive an email with instructions that describe how to obtain your credentials and access the private container registry.

Se connecter au registre de conteneurs privéLog in to the private container registry

Il existe plusieurs façons de s’authentifier auprès du registre de conteneurs privé pour les conteneurs Cognitive Services.There are several ways to authenticate with the private container registry for Cognitive Services containers. Nous vous recommandons d’utiliser la méthode de ligne de commande avec l’interface de ligne de commande Docker (CLI).We recommend that you use the command-line method by using the Docker CLI.

Utilisez la commande docker login, comme dans l’exemple suivant, pour vous connecter à containerpreview.azurecr.io, qui est le registre de conteneurs privé pour les conteneurs Cognitive Services.Use the docker login command, as shown in the following example, to log in to containerpreview.azurecr.io, which is the private container registry for Cognitive Services containers. Remplacez <username> par le nom de l’utilisateur et <password> par le mot de passe fourni dans les informations d’identification envoyées par l’équipe Azure Cognitive Services.Replace <username> with the user name and <password> with the password provided in the credentials you received from the Azure Cognitive Services team.

docker login containerpreview.azurecr.io -u <username> -p <password>

Si vous avez sécurisé vos informations d’identification dans un fichier texte, vous pouvez concaténer le contenu de ce fichier texte dans la commande docker login.If you secured your credentials in a text file, you can concatenate the contents of that text file to the docker login command. Utilisez la commande cat, comme dans l’exemple suivant.Use the cat command, as shown in the following example. Remplacez <passwordFile> par le chemin et le nom du fichier texte qui contient le mot de passe.Replace <passwordFile> with the path and name of the text file that contains the password. Remplacez <username> par le nom d’utilisateur indiqué dans vos informations d’identification.Replace <username> with the user name provided in your credentials.

cat <passwordFile> | docker login containerpreview.azurecr.io -u <username> --password-stdin

L’ordinateur hôteThe host computer

L’hôte est un ordinateur x64 qui exécute le conteneur Docker.The host is a x64-based computer that runs the Docker container. Il peut s’agir d’un ordinateur local ou d’un service d’hébergement Docker dans Azure, comme :It can be a computer on your premises or a Docker hosting service in Azure, such as:

Exigences et suggestions relatives au conteneurContainer requirements and recommendations

Le tableau suivant décrit la quantité minimale et recommandée de cœurs de processeur et de mémoire à allouer pour chaque conteneur de l’API Visage.The following table describes the minimum and recommended CPU cores and memory to allocate for each Face API container.

ConteneurContainer MinimaleMinimum RecommandéRecommended Transactions par secondeTransactions per second
(Minimum, maximum)(Minimum, maximum)
FaceFace 1 cœur, 2 Go de mémoire1 core, 2-GB memory 1 cœur, 4 Go de mémoire1 core, 4-GB memory 10, 2010, 20
  • Chaque cœur doit être cadencé à au moins 2,6 GHz.Each core must be at least 2.6 GHz or faster.
  • Transactions par seconde (TPS).Transactions per second (TPS).

Le nombre de cœurs et la quantité de mémoire correspondent aux paramètres --cpus et --memory qui sont utilisés dans le cadre de la commande docker run.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Obtenir l’image conteneur avec docker pullGet the container image with docker pull

Des images conteneur sont disponibles pour l’API Visage.Container images for the Face API are available.

ConteneurContainer RéférentielRepository
FaceFace containerpreview.azurecr.io/microsoft/cognitive-services-face:latest

Conseil

Vous pouvez utiliser la commande docker images pour lister vos images conteneurs téléchargées.You can use the docker images command to list your downloaded container images. Par exemple, la commande suivante liste l’ID, le référentiel et la balise de chaque image conteneur téléchargée dans un tableau :For example, the following command lists the ID, repository, and tag of each downloaded container image, formatted as a table:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Commande docker pull du conteneur VisageDocker pull for the Face container

docker pull containerpreview.azurecr.io/microsoft/cognitive-services-face:latest

Utiliser le conteneurUse the container

Une fois que le conteneur est sur l’ordinateur hôte, appliquez la procédure suivante pour utiliser le conteneur.After the container is on the host computer, use the following process to work with the container.

  1. Exécutez le conteneur avec les paramètres de facturation requis.Run the container with the required billing settings. D’autres exemples de commande docker run sont disponibles.More examples of the docker run command are available.
  2. Interrogez le point de terminaison de prédiction du conteneur.Query the container's prediction endpoint.

Exécuter le conteneur avec docker runRun the container with docker run

Utilisez la commande docker run pour exécuter le conteneur.Use the docker run command to run the container. Pour plus d’informations sur la façon d’obtenir les valeurs {ENDPOINT_URI} et {API_KEY}, consultez Collecte des paramètres requis.Refer to gathering required parameters for details on how to get the {ENDPOINT_URI} and {API_KEY} values.

Exemples de la commande docker run sont disponibles.Examples of the docker run command are available.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
containerpreview.azurecr.io/microsoft/cognitive-services-face \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Cette commande :This command:

  • Exécute un conteneur Visage à partir de l’image conteneur.Runs a face container from the container image.
  • Alloue un cœur de processeur et 4 Go de mémoire.Allocates one CPU core and 4 GB of memory.
  • Expose le port TCP 5 000 et alloue un pseudo TTY pour le conteneur.Exposes TCP port 5000 and allocates a pseudo TTY for the container.
  • Supprime automatiquement le conteneur après sa fermeture.Automatically removes the container after it exits. L’image conteneur est toujours disponible sur l’ordinateur hôte.The container image is still available on the host computer.

D’autres exemples de commande docker run sont disponibles.More examples of the docker run command are available.

Important

Vous devez spécifier les options Eula, Billing et ApiKey pour exécuter le conteneur, sinon il ne démarrera pas.The Eula, Billing, and ApiKey options must be specified to run the container or the container won't start. Pour plus d'informations, consultez Facturation.For more information, see Billing.

Exécuter plusieurs conteneurs sur le même hôteRun multiple containers on the same host

Si vous envisagez d’exécuter plusieurs conteneurs avec les ports exposés, veillez à exécuter chaque conteneur avec un port exposé différent.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Par exemple, exécutez le premier conteneur sur le port 5000 et le second conteneur sur le port 5001.For example, run the first container on port 5000 and the second container on port 5001.

Vous pouvez avoir ce conteneur, et un autre conteneur Azure Cognitive Services qui s’exécutent ensemble sur l’hôte.You can have this container and a different Azure Cognitive Services container running on the HOST together. Vous pouvez également disposer de plusieurs conteneurs du même conteneur Cognitive Services en cours d’exécution.You also can have multiple containers of the same Cognitive Services container running.

Interroger le point de terminaison de prédiction du conteneurQuery the container's prediction endpoint

Le conteneur fournit des API de point de terminaison de prédiction de requête basées sur REST.The container provides REST-based query prediction endpoint APIs.

Utilisez l’hôte, http://localhost:5000, pour les API de conteneur.Use the host, http://localhost:5000, for container APIs.

Valider l’exécution d’un conteneurValidate that a container is running

Il existe plusieurs façons de confirmer que le conteneur s’exécute.There are several ways to validate that the container is running. Recherchez l’adresse IP externe et le port exposé du conteneur en question, puis ouvrez le navigateur web de votre choix.Locate the External IP address and exposed port of the container in question, and open your favorite web browser. Utilisez les différentes URL de requête ci-dessous pour vérifier que le conteneur est en cours d’exécution.Use the various request URLs below to validate the container is running. Les exemples d’URL de requête listés ci-dessous sont http://localhost:5000, mais votre conteneur spécifique peut varier.The example request URLs listed below are http://localhost:5000, but your specific container may vary. N’oubliez pas que vous devez vous fier à l’adresse IP externe de votre conteneur et au port exposé.Keep in mind that you're to rely on your container's External IP address and exposed port.

URL de la demandeRequest URL ObjectifPurpose
http://localhost:5000/ Le conteneur fournit une page d’accueil.The container provides a home page.
http://localhost:5000/status Demandée avec HTTP GET, pour confirmer que le conteneur est en cours d’exécution sans provoquer de requête de point de terminaison.Requested with an HTTP GET, to validate that the container is running without causing an endpoint query. Cette requête peut être utilisée pour les probes liveness et readiness de Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger Le conteneur fournit un ensemble complet de documentation pour les points de terminaison et une fonctionnalité Essayer.The container provides a full set of documentation for the endpoints and a Try it out feature. Avec cette fonctionnalité, vous pouvez entrer vos paramètres dans un formulaire HTML basé sur le web, et constituer la requête sans avoir à écrire du code.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Une fois la requête retournée, un exemple de commande CURL est fourni pour illustrer les en-têtes HTTP, et le format du corps qui est nécessaire.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Page d’accueil du conteneur

Arrêter le conteneurStop the container

Pour arrêter le conteneur, dans l’environnement de ligne de commande où le conteneur est en cours d’exécution, sélectionnez Ctrl+C.To shut down the container, in the command-line environment where the container is running, select Ctrl+C.

Résolution de problèmesTroubleshooting

Si vous exécutez le conteneur avec un montage de sortie et que la journalisation est activée, il génère des fichiers journaux utiles pour résoudre les problèmes qui se produisent lors du démarrage ou de l’exécution du conteneur.If you run the container with an output mount and logging is enabled, the container generates log files that are helpful to troubleshoot issues that happen while you start or run the container.

Conseil

Pour plus d’informations et de conseils sur la résolution des problèmes, consultez les questions fréquentes sur les conteneurs Cognitive Services.For more troubleshooting information and guidance, see Cognitive Services containers frequently asked questions (FAQ).

FacturationBilling

Les conteneurs de l’API Visage envoient des informations de facturation à Azure à l’aide d’une ressource API Visage sur votre compte Azure.The Face API containers send billing information to Azure by using a Face API resource on your Azure account.

Les requêtes sur le conteneur sont facturées au niveau tarifaire de la ressource Azure utilisée pour <ApiKey>.Queries to the container are billed at the pricing tier of the Azure resource that's used for the <ApiKey>.

Les conteneurs Azure Cognitives Services ne sont pas concédés sous licence dans le but de s’exécuter sans être connectés au point de terminaison de facturation pour le contrôle.Azure Cognitive Services containers aren't licensed to run without being connected to the billing endpoint for metering. Vous devez configurer les conteneurs de manière à ce qu’ils communiquent les informations de facturation au point de terminaison de facturation à tout moment.You must enable the containers to communicate billing information with the billing endpoint at all times. Les conteneurs Cognitive Services n’envoient pas de données client, telles que l’image ou le texte analysé, à Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Connexion à AzureConnect to Azure

Le conteneur a besoin des valeurs d’arguments de facturation pour s’exécuter.The container needs the billing argument values to run. Ces valeurs permettent au conteneur de se connecter au point de terminaison de facturation.These values allow the container to connect to the billing endpoint. Le conteneur crée des rapports sur l’utilisation toutes les 10 à 15 minutes.The container reports usage about every 10 to 15 minutes. Si le conteneur ne se connecte pas à Azure dans la fenêtre de temps imparti, il continue de s’exécuter, mais ne traite pas les requêtes tant que le point de terminaison de facturation n’est pas restauré.If the container doesn't connect to Azure within the allowed time window, the container continues to run but doesn't serve queries until the billing endpoint is restored. Une tentative de connexion est effectuée 10 fois, toutes les 10 à 15 minutes.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. S’il ne parvient pas à se connecter au point de terminaison de facturation au cours de ces 10 essais, le conteneur arrête son exécution.If it can't connect to the billing endpoint within the 10 tries, the container stops running.

Arguments de facturationBilling arguments

Pour que la commande docker run démarre le conteneur, des valeurs valides doivent spécifier les trois options suivantes :For the docker run command to start the container, all three of the following options must be specified with valid values:

OptionOption DescriptionDescription
ApiKey Clé API de la ressource Cognitive Services utilisée pour le suivi des informations de facturation.The API key of the Cognitive Services resource that's used to track billing information.
La valeur de cette option doit être définie sur une clé API pour la ressource provisionnée spécifiée dans Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing Point de terminaison de la ressource Cognitive Services utilisé pour le suivi des informations de facturation.The endpoint of the Cognitive Services resource that's used to track billing information.
La valeur de cette option doit être définie sur l’URI de point de terminaison d’une ressource Azure provisionnée.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indique que vous avez accepté la licence pour le conteneur.Indicates that you accepted the license for the container.
La valeur de cette option doit être définie sur accepter.The value of this option must be set to accept.

Pour plus d’informations sur ces options, consultez Configurer des conteneurs.For more information about these options, see Configure containers.

Billets de blog :Blog posts

Exemples de développementDeveloper samples

Des exemples de développement sont disponibles sur notre dépôt GitHub.Developer samples are available at our GitHub repository.

Voir le webinaireView webinar

Rejoignez le webinaire pour savoir :Join the webinar to learn about:

  • Comment déployer Cognitive Services sur une machine à l’aide de DockerHow to deploy Cognitive Services to any machine using Docker
  • Comment déployer Cognitive Services sur AKSHow to deploy Cognitive Services to AKS

RésuméSummary

Dans cet article, vous avez découvert des concepts et le flux de travail pour le téléchargement, l’installation et l’exécution des conteneurs de l’API Visage.In this article, you learned concepts and workflow for how to download, install, and run Face API containers. En résumé :In summary:

  • Des images conteneur sont téléchargées à partir d’Azure Container Registry.Container images are downloaded from the Azure Container Registry.
  • Les images conteneurs s’exécutent dans Docker.Container images run in Docker.
  • Vous pouvez utiliser l’API REST ou le Kit de développement logiciel (SDK) pour appeler des opérations dans les conteneurs de l’API Visage en spécifiant l’URI hôte du conteneur.You can use either the REST API or the SDK to call operations in Face API containers by specifying the host URI of the container.
  • Vous devez spécifier les informations de facturation lors de l’instanciation d’un conteneur.You must specify billing information when you instantiate a container.

Important

Les conteneurs Cognitives Services ne sont pas concédés sous licence pour s’exécuter sans être connectés à Azure pour le contrôle.Cognitive Services containers aren't licensed to run without being connected to Azure for metering. Les clients doivent configurer les conteneurs de manière qu’ils communiquent les informations de facturation au service de contrôle à tout moment.Customers must enable the containers to communicate billing information with the metering service at all times. Les conteneurs Cognitive Services n’envoient pas de données client, telles que l’image ou le texte analysé, à Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Étapes suivantesNext steps