Usuwanie tła na obrazach

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żna curl.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 następujących regionach świadczenia usługi Azure: Wschodnie stany USA, Francja Środkowa, Korea Środkowa, Europa Północna, Azja Południowo-Wschodnia, Europa Zachodnia, Zachodnie stany USA.

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-previewpunktu 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:

Zdjęcie miasta w pobliżu wody.

Po pomyślnym wywołaniu usuwania tła następujący obraz PNG z czterema kanałami jest odpowiedzią dla backgroundRemoval trybu:

Zdjęcie miasta w pobliżu wody; niebo jest przezroczyste.

Następujący obraz PNG z jednym kanałem jest odpowiedzią dla foregroundMatting trybu:

Alfa matowy panoramy miasta.

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

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 lub 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. 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 podanej model-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.

Następne kroki

Pojęcia dotyczące usuwania w tle