Partager via


Supprimer l’arrière-plan dans les images

Cet article montre comment appeler l’API Analyse d’image 4.0 pour segmenter une image (séparer le premier plan de l’arrière-plan). Il montre également comment analyser les informations retournées.

Important

La suppression de l'arrière-plan n'est possible que par le biais d'appels directs à l'API REST. Il n’est pas disponible via les kits SDK.

Prérequis

Ce guide considère que vous avez suivi avec succès les étapes mentionnées dans la page Démarrage rapide. Cela implique :

  • Vous avez créé une ressource Vision et obtenu une clé ainsi qu’une URL de clé et de point de terminaison.
  • Vous avez réussi à passer un appel curl.exe au service (ou utilisé un autre outil). Vous pouvez modifiez l’appel curl.exe en vous basant sur les exemples présentés ici.

Le guide de démarrage rapide vous montre comment extraire des fonctionnalités visuelles d’une image. Toutefois, les concepts sont similaires à la suppression d’arrière-plan. Par conséquent, vous bénéficiez de commencer par le démarrage rapide et d’apporter des modifications.

Important

La suppression de l’arrière-plan est uniquement disponible dans certaines régions Azure. Consultez Disponibilité dans les régions.

S’authentifier auprès du service

Pour vous authentifier auprès du service Analyse d’image, vous avez besoin d’une clé Vision par ordinateur et d’une URL de point de terminaison.

Conseil

N’incluez pas la clé directement dans votre code et ne la publiez jamais publiquement. Pour découvrir d’autres options d’authentification telles qu’Azure Key Vault, veuillez consulter l’article sur la sécurité d’Azure AI services.

L’authentification s’effectue en ajoutant l’en-tête de requête HTTP Ocp-Apim-Subscription-Key et en y définissant votre clé de vision. L’appel est effectué à l’URL <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview, où <endpoint> est votre URL de point de terminaison Vision par ordinateur unique. Consultez la section Sélectionner un mode pour ajouter une autre chaîne de requête à cette URL.

Sélectionner l’image à analyser

Le code de ce guide utilise des images distantes référencées par URL. Vous souhaiterez peut-être essayer différentes images pour observer toutes la puissance des fonctionnalités d’Analyse d’image.

Lors de l’analyse d’une image distante, vous spécifiez l’URL de l’image en mettant en forme le corps de la demande comme ceci : {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}. Le Content-Type doit être application/json.

Pour analyser une image locale, vous placez les données d’image binaire dans le corps de la demande HTTP. Le Content-Type doit être application/octet-stream ou multipart/form-data.

Sélectionner un mode

Définissez la chaîne de requête mode sur l’une de ces deux valeurs. Cette chaîne de requête est obligatoire si vous souhaitez effectuer une segmentation d’image.

Paramètre d’URL Valeur Description
mode backgroundRemoval Génère une image de l’objet de premier plan détecté avec un arrière-plan transparent.
mode foregroundMatting Génère une image alpha mate, en nuances de gris, montrant l’opacité de l’objet de premier plan détecté.

Une URL renseignée pour backgroundRemoval ressemble à celle-ci : <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval

Obtenir les résultats du service

Cette section montre comment effectuer l’appel d’API et analyser les résultats.

Le service retourne une réponse HTTP 200 en cas de succès avec Content-Type: image/png, et le corps contient l’image PNG retournée sous forme de flux binaire.

Par exemple, supposons que la suppression d’arrière-plan est exécutée sur l’image suivante :

Photo d’une ville près de l’eau.

En cas de succès de l’appel de suppression d’arrière-plan, l’image PNG à quatre canaux ci-dessous est la réponse pour le mode backgroundRemoval :

Photo d’une ville près de l’eau ; le ciel est transparent.

L’image PNG à un canal ci-dessous est la réponse pour le mode foregroundMatting :

Couche alpha d’un horizon de ville.

L’API retourne une image de la même taille que l’image d’origine pour le mode foregroundMatting, mais avec un maximum de 16 mégapixels (en conservant les proportions de l’image) pour le mode backgroundRemoval.

Codes d’erreur

En cas d’erreur, la réponse du service Analyse d’image contient une charge utile JSON qui comprend un code d’erreur et un message d’erreur. Elle peut également fournir d’autres détails sous la forme d’un code et d’un message d’erreur interne. Par exemple :

{
    "error":
    {
        "code": "InvalidRequest",
        "message": "Analyze query is invalid.",
        "innererror":
        {
            "code": "NotSupportedVisualFeature",
            "message": "Specified feature type is not valid"
        }
    }
}

Voici une liste d’erreurs courantes et leurs causes. Les éléments de la liste se présentent sous la forme suivante :

  • Code de réponse HTTP
    • Code et message d’erreur dans la réponse JSON
      • [Facultatif] Code et message d’erreur interne dans la réponse JSON

Liste d’erreurs courantes :

  • 400 Bad Request
    • InvalidRequest - Image URL is badly formatted or not accessible. Vérifiez que l’URL de l’image est valide et accessible publiquement.
    • InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes. Réduisez la taille de l’image en la compressant et/ou en la dimensionnant, puis soumettez de nouveau votre demande.
    • InvalidRequest - The feature 'Caption' is not supported in this region. La fonctionnalité n’est prise en charge que dans certaines régions Azure spécifiques. Consultez les prérequis du Démarrage rapide pour obtenir la liste des régions Azure prises en charge.
    • InvalidRequest - The provided image content type ... is not supported. L’en-tête HTTP Content-Type dans la demande n’est pas un type autorisé :
      • Pour une URL d’image, Content-Type doit être application/json
      • Pour des données d’image binaire, Content-Type doit être application/octet-stream ou multipart/form-data
    • InvalidRequest - Either 'features' or 'model-name' needs to be specified in the query parameter.
    • InvalidRequest - Image format is not valid
      • InvalidImageFormat - Image format is not valid. Consultez la section Exigences relatives aux images pour connaître les formats d’image pris en charge.
    • InvalidRequest - Analyze query is invalid
      • NotSupportedVisualFeature - Specified feature type is not valid. Vérifiez que la valeur de la chaîne de requête features est valide.
      • NotSupportedLanguage - The input language is not supported. Vérifiez que la valeur de la chaîne de requête language est valide pour la caractéristique visuelle sélectionnée, d’après le tableau suivant.
      • BadArgument - 'smartcrops-aspect-ratios' aspect ratio is not in allowed range [0.75 to 1.8]
  • 401 PermissionDenied
    • 401 - Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.
  • 404 Resource Not Found
    • 404 - Resource not found. Le service n’a pas trouvé le modèle personnalisé basé sur le nom fourni par la chaîne de requête model-name.

Conseil

Quand vous utilisez Azure AI Vision, vous pouvez rencontrer des défaillances temporaires causées par des limites de taux imposées par le service ou d’autres problèmes passagers comme des pannes du réseau. Pour plus d’informations sur la gestion de ces types d’échecs, consultez le modèle Nouvelle tentative dans le guide des modèles de conception de cloud et le modèle Disjoncteur connexe.

Étapes suivantes

Concepts liés à la suppression d’arrière-plan