Usuwanie tła na obrazach
Ważne
Ta funkcja jest teraz przestarzała. 10 stycznia 2025 r. interfejs API analizy obrazów sztucznej inteligencji platformy Azure 4.0 i usługa usuwania w tle zostaną wycofane. Wszystkie żądania do tej usługi nie powiedzą się po tej dacie.
Aby zachować bezproblemową obsługę modeli, zainstaluj model open source Florence 2 i użyj jej regionu do segmentacji funkcji, która umożliwia podobne operacje usuwania w tle.
W tym artykule pokazano, jak wywołać interfejs API analizy obrazów 4.0 w celu segmentowania obrazu (oddziel pierwszy plan od tła). Przedstawiono również sposób analizowania zwróconych informacji.
Ważne
Usuwanie w tle jest dostępne tylko za pośrednictwem bezpośrednich wywołań interfejsu API REST. Nie jest ona dostępna za pośrednictwem zestawów SDK.
Wymagania wstępne
W tym przewodniku założono, że pomyślnie wykonano kroki wymienione na stronie szybkiego startu. Składają się na to następujące elementy:
- Utworzono zasób usługi Vision i uzyskano klucz i adres URL punktu końcowego.
- Pomyślnie wykonano
curl.exe
wywołanie usługi (lub użyto alternatywnego narzędzia). Wywołanie możnacurl.exe
zmodyfikować na podstawie przykładów w tym miejscu.
W przewodniku Szybki start pokazano, jak wyodrębnić funkcje wizualne z obrazu. Jednak koncepcje są podobne do usuwania w tle. W związku z tym możesz zacząć od przewodnika Szybki start i wprowadzać modyfikacje.
Ważne
Usuwanie w tle jest dostępne tylko w niektórych regionach świadczenia usługi Azure. Zobacz Dostępność regionów
Uwierzytelnianie w usłudze
Aby uwierzytelnić się w usłudze Analizy obrazów, potrzebujesz klucza przetwarzanie obrazów i adresu URL punktu końcowego.
Napiwek
Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
Uwierzytelnianie odbywa się przez dodanie nagłówka żądania HTTP Ocp-Apim-Subscription-Key i ustawienie go na klucz przetwarzania obrazów. Wywołanie jest wykonywane pod adresem URL , gdzie <endpoint>
jest unikatowym adresem URL <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview
punktu końcowego przetwarzanie obrazów. Zobacz Sekcję Wybierz tryb dla innego ciągu zapytania dodanego do tego adresu URL.
Wybierz obraz do przeanalizowania
Kod w tym przewodniku używa zdalnych obrazów, do których odwołuje się adres URL. Możesz chcieć samodzielnie wypróbować różne obrazy, aby zobaczyć pełną możliwość funkcji analizy obrazów.
Podczas analizowania obrazu zdalnego należy określić adres URL obrazu, formatując treść żądania w następujący sposób: {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}
. Typ zawartości powinien mieć wartość application/json
.
Aby przeanalizować obraz lokalny, należy umieścić dane obrazu binarnego w treści żądania HTTP. Typ zawartości powinien mieć wartość application/octet-stream
lub multipart/form-data
.
Wybieranie trybu
Ustaw tryb ciągu zapytania na jedną z tych dwóch wartości. Ten ciąg zapytania jest obowiązkowy, jeśli chcesz przeprowadzić segmentację obrazu.
Parametr adresu URL | Wartość | Opis |
---|---|---|
mode |
backgroundRemoval |
Wyprowadza obraz wykrytego obiektu pierwszego planu z przezroczystym tłem. |
mode |
foregroundMatting |
Generuje obraz matowy alfa w skali szarej przedstawiający nieprzezroczystość wykrytego obiektu pierwszego planu. |
Wypełniony adres URL dla backgroundRemoval wygląda następująco: <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval
Pobieranie wyników z usługi
W tej sekcji pokazano, jak wykonać wywołanie interfejsu API i przeanalizować wyniki.
Usługa zwraca 200
odpowiedź HTTP na powodzenie z wartością Content-Type: image/png
, a treść zawiera zwrócony obraz PNG w postaci strumienia binarnego.
Załóżmy na przykład, że usuwanie tła jest uruchamiane na poniższej ilustracji:
Po pomyślnym wywołaniu usuwania tła następujący obraz PNG z czterema kanałami jest odpowiedzią dla backgroundRemoval
trybu:
Następujący obraz PNG z jednym kanałem jest odpowiedzią dla foregroundMatting
trybu:
Interfejs API zwraca obraz o takim samym rozmiarze jak oryginalny dla foregroundMatting
trybu, ale co najwyżej 16 megapikseli (zachowanie współczynnika proporcji obrazu) dla backgroundRemoval
trybu.
Kody błędów
Po błędzie odpowiedź usługi Image Analysis Service zawiera ładunek JSON zawierający kod błędu i komunikat o błędzie. Może również zawierać inne szczegóły w postaci i wewnętrznego kodu błędu i komunikatu. Na przykład:
{
"error":
{
"code": "InvalidRequest",
"message": "Analyze query is invalid.",
"innererror":
{
"code": "NotSupportedVisualFeature",
"message": "Specified feature type is not valid"
}
}
}
Poniżej znajduje się lista typowych błędów i ich przyczyn. Elementy listy są prezentowane w następującym formacie:
- Kod odpowiedzi HTTP
- Kod błędu i komunikat w odpowiedzi JSON
- [Opcjonalnie] Wewnętrzny kod błędu i komunikat w odpowiedzi JSON
- Kod błędu i komunikat w odpowiedzi JSON
Lista typowych błędów:
400 Bad Request
InvalidRequest - Image URL is badly formatted or not accessible
. Upewnij się, że adres URL obrazu jest prawidłowy i dostępny publicznie.InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes
. Zmniejsz rozmiar obrazu, kompresując go i/lub zmieniając rozmiar i ponownie przesyłając żądanie.InvalidRequest - The feature 'Caption' is not supported in this region
. Ta funkcja jest obsługiwana tylko w określonych regionach świadczenia usługi Azure. Zobacz Wymagania wstępne szybkiego startu, aby zapoznać się z listą obsługiwanych regionów świadczenia usługi Azure.InvalidRequest - The provided image content type ... is not supported
. Typ zawartości nagłówka HTTP w żądaniu nie jest dozwolonym typem:- W przypadku adresu URL obrazu typ zawartości powinien mieć wartość
application/json
- W przypadku danych obrazu binarnego typ zawartości powinien mieć wartość
application/octet-stream
lubmultipart/form-data
- W przypadku adresu URL obrazu typ zawartości powinien mieć wartość
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
. Zobacz sekcję Wymagania dotyczące obrazów, aby zapoznać się z obsługiwanymi formatami obrazów.
InvalidRequest - Analyze query is invalid
NotSupportedVisualFeature - Specified feature type is not valid
. Upewnij się, że ciąg zapytania funkcji ma prawidłową wartość.NotSupportedLanguage - The input language is not supported
. Upewnij się, że ciąg zapytania języka ma prawidłową wartość dla wybranej funkcji wizualizacji na podstawie poniższej tabeli.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
. Usługa nie może odnaleźć modelu niestandardowego na podstawie nazwy podanejmodel-name
przez ciąg zapytania.
Napiwek
Podczas pracy z usługą Azure AI Vision mogą wystąpić przejściowe błędy spowodowane przez limity szybkości wymuszane przez usługę lub inne przejściowe problemy, takie jak awarie sieci. Aby uzyskać informacje na temat obsługi takich błędów, zobacz temat Wzorzec ponawiania w przewodniku po wzorcach projektowych opartych na chmurze i powiązany temat Wzorzec wyłącznika.