Wywołanie interfejsu API analizy obrazów

W tym artykule pokazano, jak wywołać interfejs API analizy obrazów w celu zwrócenia informacji o funkcjach wizualnych obrazu.

W tym przewodniku przyjęto założenie, że utworzono już zasób przetwarzanie obrazów zasobu usługi przetwarzanie obrazów i uzyskano klucz subskrypcji oraz adres URL punktu końcowego. Jeśli tak nie jest, postępuj zgodnie z daniem szybkiego startu, aby rozpocząć pracę.

Przesyłanie danych do usługi

Do interfejsu API analizy przesyłasz obraz lokalny lub zdalny. W przypadku plików lokalnych dane obrazu binarnego należy umieścić w treści żądania HTTP. W przypadku połączenia zdalnego należy określić adres URL obrazu przez sformatowanie treści żądania w następujący sposób: {"url":"http://example.com/images/test.jpg"} .

Określanie sposobu przetwarzania danych

Wybieranie funkcji wizualnych

Interfejs API analizy zapewnia dostęp do wszystkich funkcji analizy obrazów usługi. Należy określić, których funkcji chcesz użyć, ustawiając parametry zapytania adresu URL. Parametr może mieć wiele wartości rozdzielonych przecinkami. Każda określana funkcja będzie wymagać dodatkowego czasu obliczeń, więc określ tylko potrzebne informacje.

Parametr adresu URL Wartość Opis
visualFeatures Adult wykrywa, czy obraz jest z natury erotyczny (przedstawia nagość lub czyn płciowy), czy jest erotyczny (przedstawia skrajne chłoniaki lub we krwi). Wykrywana jest również zawartość o charakterze seksualnym (z erotyką).
Brands wykrywa różne marki na obrazie, w tym przybliżoną lokalizację. Argument Marki jest dostępny tylko w języku angielskim.
Categories kategoryzowanie zawartości obrazu zgodnie z taksonomią zdefiniowaną w dokumentacji. Jest to wartość domyślna visualFeatures .
Color Określa kolor akcentu, dominujący kolor i to, czy obraz jest czarny&biały.
Description Opisuje zawartość obrazu z kompletnym zdaniem w obsługiwanych językach.
Faces wykrywa, czy twarze są obecne. Jeśli jest obecny, wygeneruj współrzędne, płeć i wiek.
ImageType wykrywa, czy obraz jest obiektem clipart, czy rysunkiem liniowym.
Objects wykrywa różne obiekty na obrazie, w tym przybliżoną lokalizację. Argument Obiekty jest dostępny tylko w języku angielskim.
Tags Taguje obraz za pomocą szczegółowej listy słów powiązanych z zawartością obrazu.
details Celebrities identyfikuje osobistości, jeśli zostaną wykryte na obrazie.
Landmarks Identyfikuje punkty orientacyjne, jeśli zostaną wykryte na obrazie.

Wypełniony adres URL może wyglądać następująco:

https://{endpoint}/vision/v2.1/analyze?visualFeatures=Description,Tags&details=Celebrities

Określanie języków

Można również określić język zwracanych danych. Następujący parametr zapytania adresu URL określa język. Wartość domyślna to en.

Parametr adresu URL Wartość Opis
language en Angielski
es Hiszpański
ja japoński
pt Portugalski
zh Chiński uproszczony

Wypełniony adres URL może wyglądać następująco:

https://{endpoint}/vision/v2.1/analyze?visualFeatures=Description,Tags&details=Celebrities&language=en

Uwaga

Wywołania interfejsu API o zakresie

Niektóre funkcje analizy obrazów można wywołać bezpośrednio, a także za pośrednictwem wywołania interfejsu API Analizowanie. Na przykład możesz wykonać analizę tylko tagów obrazów w zakresie, żądać do https://{endpoint}/vision/v3.2/tag . Zapoznaj się z dokumentacją referencyjną dotyczącą innych funkcji, które mogą być wywoływane oddzielnie.

Uzyskiwanie wyników z usługi

Usługa zwraca odpowiedź HTTP, a treść zawiera zwrócone dane w 200 postaci ciągu JSON. Poniżej przedstawiono przykład odpowiedzi JSON.

{  
  "tags":[  
    {  
      "name":"outdoor",
      "score":0.976
    },
    {  
      "name":"bird",
      "score":0.95
    }
  ],
  "description":{  
    "tags":[  
      "outdoor",
      "bird"
    ],
    "captions":[  
      {  
        "text":"partridge in a pear tree",
        "confidence":0.96
      }
    ]
  }
}

W poniższej tabeli przedstawiono objaśnienia pól w tym przykładzie:

Pole Typ Zawartość
Tagi object Obiekt najwyższego poziomu dla tablicy tagów.
tags[].Name string Słowo kluczowe klasyfikatora tagów.
tags[].Score number Ocena ufności z przedziału od 0 do 1.
description (opis) object Obiekt najwyższego poziomu dla opisu obrazu.
description.tags[] string Lista tagów. Jeśli nie ma wystarczającej pewności co do możliwości tworzenia napisów, tagi mogą być jedynymi informacjami dostępnymi dla wywołującego.
description.captions[].text string Fraza opisująca obraz.
description.captions[].confidence number Ocena ufności dla frazy.

Kody błędów

Zobacz następującą listę możliwych błędów i ich przyczyn:

  • 400
    • InvalidImageUrl — adres URL obrazu jest niepoprawnie sformatowany lub nie jest dostępny.
    • InvalidImageFormat — dane wejściowe nie są prawidłowym obrazem.
    • InvalidImageSize — obraz wejściowy jest zbyt duży.
    • NotSupportedVisualFeature — określony typ funkcji jest nieprawidłowy.
    • NotSupportedImage — nieobsługiwany obraz, np. obraz podrzędny.
    • InvalidDetails — nieobsługiwana detail wartość parametru.
    • NotSupportedLanguage — żądana operacja nie jest obsługiwana w określonym języku.
    • BadArgument — w komunikacie o błędzie podano dodatkowe szczegóły.
  • 415 — Błąd nieobsługiwanego typu nośnika. Typ zawartości nie znajduje się w dozwolonych typach:
    • W przypadku adresu URL obrazu: element Content-Type powinien mieć rozmiar application/json
    • W przypadku danych obrazu binarnego: typ zawartości powinien być typu application/octet-stream lub multipart/form-data
  • 500
    • FailedToProcess
    • Limit czasu — u limit czasu przetwarzania obrazów.
    • InternalServerError

Następne kroki

Aby wypróbować interfejs API REST, przejdź do tematu Image Analysis API Reference (Dokumentacja interfejsu API analizy obrazów).