Dela via


Ta bort bakgrunden i bilder

Den här artikeln visar hur du anropar API:et för bildanalys 4.0 för att segmentera en bild (separera förgrunden från bakgrunden). Den visar också hur du parsar den returnerade informationen.

Viktigt!

Bakgrundsborttagning är endast tillgängligt via direkta REST API-anrop. Den är inte tillgänglig via SDK:erna.

Förutsättningar

Den här guiden förutsätter att du har följt stegen som nämns på snabbstartssidan. Detta innebär att:

  • Du har skapat en visionsresurs och fått en nyckel och en slutpunkts-URL.
  • Du har gjort ett curl.exe anrop till tjänsten (eller använt ett alternativt verktyg). Du ändrar anropet curl.exe baserat på exemplen här.

Snabbstarten visar hur du extraherar visuella funktioner från en bild. Begreppen liknar dock bakgrundsborttagning. Därför kan du dra nytta av att börja med snabbstarten och göra ändringar.

Viktigt!

Bakgrundsborttagning är endast tillgängligt i vissa Azure-regioner. Se Regiontillgänglighet

Autentisera mot tjänsten

Om du vill autentisera mot tjänsten Bildanalys behöver du en nyckel för visuellt innehåll och en slutpunkts-URL.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Autentiseringen görs genom att lägga till HTTP-begärandehuvudet Ocp-Apim-Subscription-Key och ange den till din visionsnyckel. Anropet görs till URL:en <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview, där <endpoint> är din unika slutpunkts-URL för visuellt innehåll. Se Avsnittet Välj ett läge för en annan frågesträng som du lägger till i den här URL:en.

Välj den bild som ska analyseras

Koden i den här guiden använder fjärrbilder som refereras till via URL. Du kanske vill prova olika bilder på egen hand för att se den fullständiga funktionen för bildanalysfunktionerna.

När du analyserar en fjärrbild anger du bildens URL genom att formatera begärandetexten så här: {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}. Innehållstypen ska vara application/json.

Om du vill analysera en lokal bild placerar du binära bilddata i HTTP-begärandetexten. Innehållstypen ska vara application/octet-stream eller multipart/form-data.

Välj ett läge

Ange frågesträngsläget till ett av dessa två värden. Den här frågesträngen är obligatorisk om du vill utföra bildsegmentering.

URL-parameter Värde beskrivning
mode backgroundRemoval Matar ut en bild av det identifierade förgrundsobjektet med en transparent bakgrund.
mode foregroundMatting Matar ut en alfa matt bild i gråskala som visar opaciteten för det identifierade förgrundsobjektet.

En ifylld URL för backgroundRemoval skulle se ut så här: <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval

Hämta resultat från tjänsten

Det här avsnittet visar hur du gör API-anropet och parsar resultatet.

Tjänsten returnerar ett 200 HTTP-svar vid lyckat resultat med Content-Type: image/png, och brödtexten innehåller den returnerade PNG-avbildningen i form av en binär dataström.

Anta till exempel att bakgrundsborttagning körs på följande bild:

Foto av en stad nära vatten.

Vid ett lyckat bakgrundsborttagningsanrop är följande PNG-avbildning med fyra kanaler svaret för backgroundRemoval läget:

Foto av en stad nära vatten; himlen är transparent.

Följande PNG-avbildning med en kanal är svaret för foregroundMatting läget:

Alfa matt av en stadssilhuett.

API:et returnerar en bild med samma storlek som originalet foregroundMatting för läget, men högst 16 megapixlar (bevara bildproportionsgraden) för backgroundRemoval läget.

Felkoder

Vid fel innehåller svaret från tjänsten Bildanalys en JSON-nyttolast som innehåller en felkod och ett felmeddelande. Den kan också innehålla annan information i form av och inre felkod och meddelande. Till exempel:

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

Följande är en lista över vanliga fel och deras orsaker. Listobjekt visas i följande format:

  • HTTP-svarskod
    • Felkod och meddelande i JSON-svaret
      • [Valfritt] Inre felkod och meddelande i JSON-svaret

Lista över vanliga fel:

  • 400 Bad Request
    • InvalidRequest - Image URL is badly formatted or not accessible. Kontrollera att bild-URL:en är giltig och offentligt tillgänglig.
    • InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes. Minska storleken på bilden genom att komprimera den och/eller ändra storlek och skicka din begäran igen.
    • InvalidRequest - The feature 'Caption' is not supported in this region. Funktionen stöds endast i specifika Azure-regioner. Se Krav för snabbstart för listan över Azure-regioner som stöds.
    • InvalidRequest - The provided image content type ... is not supported. HTTP-huvudets innehållstyp i begäran är inte en tillåten typ:
      • För en bild-URL ska innehållstyp vara application/json
      • För binära bilddata ska Innehållstyp vara application/octet-stream eller multipart/form-data
    • InvalidRequest - Either 'features' or 'model-name' needs to be specified in the query parameter.
    • InvalidRequest - Image format is not valid
    • InvalidRequest - Analyze query is invalid
      • NotSupportedVisualFeature - Specified feature type is not valid. Kontrollera att frågesträngen för funktioner har ett giltigt värde.
      • NotSupportedLanguage - The input language is not supported. Kontrollera att språkfrågesträngen har ett giltigt värde för den valda visuella funktionen, baserat på följande tabell.
      • 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. Det gick inte att hitta den anpassade modellen baserat på namnet som tillhandahålls av frågesträngen model-name .

Dricks

När du arbetar med Azure AI Vision kan du stöta på tillfälliga fel som orsakas av hastighetsbegränsningar som framtvingas av tjänsten eller andra tillfälliga problem som nätverksfel. Information om hur du hanterar dessa typer av fel finns i Återförsöksmönster i guiden för molndesignmönster och relaterade Kretsbrytarmönster.

Nästa steg

Begrepp för bakgrundsborttagning