Supprimer l’arrière-plan dans les images
Important
Cette fonctionnalité est désormais déconseillée. Le 10 janvier 2025, l’API de segmentation Image Analysis 4.0 d’Azure AI et le service de suppression de l’arrière-plan seront mis hors service. Après cette date, toutes les demandes adressées à ce service seront rejetées.
Pour assurer le bon fonctionnement de vos modèles, installez le modèle open source Florence 2 et utilisez sa fonctionnalité Segmentation par région qui permet une opération de suppression de l’arrière-plan similaire.
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’appelcurl.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 :
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
:
L’image PNG à un canal ci-dessous est la réponse pour le mode foregroundMatting
:
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
- Code et message d’erreur 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
oumultipart/form-data
- Pour une URL d’image, Content-Type doit être
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êtemodel-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.