Teilen über


Entfernen des Hintergrunds in Bildern

In diesem Artikel wird beschrieben, wie die Bildanalyse 4.0-API aufgerufen wird, um ein Bild zu segmentieren (den Vordergrund vom Hintergrund zu trennen). Außerdem wird gezeigt, wie Sie die zurückgegebenen Informationen parsen.

Wichtig

Die Entfernung des Hintergrunds ist nur über direkte REST-API-Aufrufe verfügbar. Sie ist nicht über die SDKs verfügbar.

Voraussetzungen

In diesem Leitfaden wird davon ausgegangen, dass Sie die auf der Schnellstartseite beschriebenen Schritte erfolgreich ausgeführt haben. Das bedeutet:

  • Sie haben eine Vision-Ressource erstellt und einen Schlüssel sowie eine Endpunkt-URL erhalten.
  • Sie haben erfolgreich einen curl.exe-Aufruf an den Dienst durchgeführt (oder ein alternatives Tool verwendet). Sie ändern den curl.exe-Aufruf basierend auf den hier aufgeführten Beispielen.

Im Schnellstart sehen Sie, wie Sie visuelle Features aus einem Bild extrahieren. Die Konzepte ähneln jedoch der Entfernung des Hintergrunds. Daher profitieren Sie vom Beginnen mit dem Schnellstart und dem Durchführen von Änderungen.

Wichtig

Die Hintergrundentfernung ist nur in den folgenden Azure-Regionen verfügbar: „USA, Osten“, „Frankreich, Mitte“, „Südkorea, Mitte“, „Europa, Norden“, „Asien, Südosten“, „Europa, Westen“, „USA, Westen“.

Authentifizierung beim Dienst

Um sich beim Bildanalysedienst zu authentifizieren, benötigen Sie einen Schlüssel für maschinelles Sehen und eine Endpunkt-URL.

Tipp

Fügen Sie den Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich. Im Artikel zur Azure KI Services-Sicherheit finden Sie weitere Authentifizierungsoptionen, wie zum Beispiel Azure Key Vault.

Die Authentifizierung erfolgt durch Hinzufügen des HTTP-Anforderungsheaders Ocp-Apim-Subscription-Key und Festlegen auf Ihren Vision-Schlüssel. Der Aufruf erfolgt an die URL <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview, wobei <endpoint> Ihre eindeutige Endpunkt-URL für maschinelles Sehen ist. Eine andere Abfragezeichenfolge, die Sie dieser URL hinzufügen, finden Sie im Abschnitt Auswählen eines Modus.

Wählen des zu analysierenden Bilds

Der Code in diesem Leitfaden verwendet Remotebilder, auf die über URL verwiesen wird. Möglicherweise möchten Sie selbst verschiedene Bilder ausprobieren, um das ganze Potenzial der Bildanalysefeatures zu erfahren.

Beim Analysieren eines Remotebilds geben Sie die URL des Bilds an, indem Sie den Anforderungstext wie folgt formatieren: {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}. Der Content-Type sollte application/json sein.

Zur Analyse eines lokalen Bilds platzieren Sie die binären Bilddaten im HTTP-Anforderungstext. Der Content-Type sollte application/octet-stream oder multipart/form-data sein.

Auswahl eines Modus

Legen Sie den Abfragezeichenfolgemodus auf einen dieser beiden Werte fest. Diese Abfragezeichenfolge ist obligatorisch, wenn Sie eine Bildsegmentierung durchführen wollen.

URL-Parameter Wert BESCHREIBUNG
mode backgroundRemoval Gibt ein Bild des erkannten Vordergrundobjekts mit einem transparenten Hintergrund aus.
mode foregroundMatting Gibt ein Graustufen-Alpha Matte-Bild aus, das die Deckkraft des erkannten Vordergrundobjekts zeigt.

Eine aufgefüllte URL für backgroundRemoval würde wie folgt aussehen: <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval

Abrufen von Ergebnissen aus dem Dienst

Dieser Abschnitt zeigt Ihnen, wie Sie den API-Aufruf ausführen und die Ergebnisse parsen.

Der Dienst gibt bei Erfolg eine 200-HTTP-Antwort mit Content-Type: image/png zurück, und der Textkörper enthält das zurückgegebene PGN-Bild in Form eines Binärdatenstroms.

Nehmen Sie beispielsweise an, dass die Hintergrundentfernung für das folgende Bild ausgeführt wird:

Foto einer Stadt in der Nähe von Wasser.

Bei einem erfolgreichen Aufruf zum Entfernen des Hintergrunds ist das folgende Vier-Kanal-PNG-Bild die Antwort für den backgroundRemoval-Modus:

Foto einer Stadt in der Nähe von Wasser mit transparentem Himmel.

Das folgende Ein-Kanal-PNG-Bild ist die Antwort für den foregroundMatting-Modus:

Alpha.-Matte einer Skyline einer Stadt.

Die API gibt ein Bild zurück, das für den foregroundMatting-Modus die gleiche Größe wie das Original hat, für den backgroundRemoval-Modus jedoch höchstens 16 Megapixel aufweist (unter Beibehaltung des Bildseitenverhältnisses).

Fehlercodes

Bei einem Fehler enthält die Antwort des Bildanalysediensts eine JSON-Payload, die einen Fehlercode und eine Fehlermeldung enthält. Es kann auch andere Details in Form eines innerem Fehlercodes und einer inneren Fehlermeldung enthalten. Beispiel:

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

Im Folgenden finden Sie eine Liste häufiger Fehler und deren Ursachen. Listenelemente werden im folgenden Format dargestellt:

  • HTTP-Antwortcode
    • Fehlercode und Fehlermeldung in der JSON-Antwort
      • [Optional] Interner Fehlercode und interne Fehlermeldung in der JSON-Antwort

Liste der häufigen Fehler:

  • 400 Bad Request
    • InvalidRequest - Image URL is badly formatted or not accessible. Stellen Sie sicher, dass die Bild-URL gültig und öffentlich zugänglich ist.
    • InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes. Verringern Sie die Größe des Images, indem Sie es komprimieren und/oder die Größe ändern, und senden Sie Ihre Anforderung erneut.
    • InvalidRequest - The feature 'Caption' is not supported in this region. Das Feature wird nur in bestimmten Azure-Regionen unterstützt. Die Liste der unterstützten Azure-Regionen finden Sie unter Voraussetzungen für den Schnellstart.
    • InvalidRequest - The provided image content type ... is not supported. Der HTTP-Header Content-Type in der Anforderung ist kein zulässiger Typ:
      • Für eine Bild-URL sollte Content-Type den Wert application/json haben
      • Für binäre Bilddaten sollte Content-Type den Wert application/octet-stream oder multipart/form-data haben
    • 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. Informationen zu unterstützten Bildformaten finden Sie im Abschnitt Bildanforderungen.
    • InvalidRequest - Analyze query is invalid
      • NotSupportedVisualFeature - Specified feature type is not valid. Stellen Sie sicher, dass die Feature-Abfragezeichenfolge einen gültigen Wert aufweist.
      • NotSupportedLanguage - The input language is not supported. Stellen Sie sicher, dass die Sprache-Abfragezeichenfolge einen gültigen Wert für das ausgewählte visuelle Feature aufweist, basierend auf der folgenden Tabelle.
      • 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. Der Dienst konnte das benutzerdefinierte Modell basierend auf dem von der model-name-Abfragezeichenfolge angegebenen Namen nicht finden.

Tipp

Bei der Verwendung von Azure KI Vision kann es zu vorübergehenden Fehlern kommen. Diese können auf durch den Dienst erzwungene Ratengrenzwerte oder andere vorübergehende Probleme (etwa Netzwerkausfälle) zurückzuführen sein. Informationen zur Behandlung solcher Fehler finden Sie im Leitfaden für Cloudentwurfsmuster unter Wiederholungsmuster sowie unter dem dazugehörigen Trennschalter-Muster.

Nächste Schritte

Konzepte zum Entfernen des Hintergrunds