Ta bort bakgrunden i bilder
Viktigt!
Den här funktionen är nu inaktuell. Den 31 mars 2025 kommer Azure AI Image Analysis 4.0 Segment-API:et och tjänsten för bakgrundsborttagning att dras tillbaka. Alla begäranden till den här tjänsten misslyckas efter detta datum.
Segmenteringsfunktionen i Florence 2-modellen med öppen källkod kan uppfylla dina behov. Den returnerar en alfakarta som markerar skillnaden mellan förgrund och bakgrund, men den redigerar inte den ursprungliga bilden för att ta bort bakgrunden. Installera Florence 2-modellen och prova dess region till segmenteringsfunktion.
För fullständig bakgrundsborttagning bör du överväga ett verktyg från tredje part som BiRefNet.
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.
Viktigt!
Bakgrundsborttagning är endast tillgängligt i vissa Azure-regioner. Se Regiontillgänglighet
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 anropetcurl.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.
Autentisering till tjänsten
Om du vill autentisera till tjänsten Bildanalys behöver du en Visuellt innehåll nyckel och 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 Visuellt innehåll slutpunkts-URL. 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:
Vid ett lyckat bakgrundsborttagningsanrop är följande PNG-avbildning med fyra kanaler svaret för backgroundRemoval
läget:
Följande PNG-avbildning med en kanal är svaret för foregroundMatting
läget:
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
- 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
ellermultipart/form-data
- För en bild-URL ska innehållstyp vara
-
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
. Se avsnittet Bildkrav för bildformat som stöds.
-
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ängenmodel-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.