Dela via


Självstudier: Extrahera avbildningsinformation med hjälp av API för bildsökning i Bing och C#

Varning

Den 30 oktober 2020 flyttade Bing-sökning API:er från Azure AI-tjänster till Bing-sökning Services. Den här dokumentationen tillhandahålls endast som referens. Uppdaterad dokumentation finns i dokumentationen för API:et för Bing-sökning. Anvisningar om hur du skapar nya Azure-resurser för Bing-sökning finns i Skapa en Bing-sökning resurs via Azure Marketplace.

Det finns flera slutpunkter tillgängliga via API för bildsökning i Bing. Slutpunkten /details accepterar en POST-begäran med en avbildning och kan returnera olika typer av information om avbildningen. Det här C#-programmet skickar en avbildning med hjälp av detta API och visar informationen som returneras av Bing, vilket är JSON-objekt, som t.ex. följande:

[JSON-resultat]

I den här självstudien beskrivs hur du:

  • Använda /details-slutpunkten för Bildsökning i en POST-begäran
  • Ange huvuden för begäran
  • Specificera resultet med hjälp av URL-parametrar
  • Ladda upp avbildningsdata och skicka POST-begäran
  • Skriv ut JSON-resultat till konsolen

Förutsättningar

Skapa en sökbegäran för avbildningsinformation

Följande är /details-slutpunkten, vilken godkänner POST-förfrågningar med avbildningsdata i brödtexten. Du kan använda den globala slutpunkten nedan eller den anpassade underdomänslutpunkten som visas i Azure Portal för resursen.

https://api.cognitive.microsoft.com/bing/v7.0/images/details

När du skapar sökbegärans URL följer modules-parametern slutpunkten ovan och anger vilka typer av information som resultatet kommer att innehålla:

  • modules=All
  • modules=RecognizedEntities (personer eller platser som visas på bilden)

Specificera modules=All i POST-begäran för att få JSON-text som innehåller följande:

  • bestRepresentativeQuery – en Bing-fråga som returnerar bilder som liknar den uppladdade bilden
  • detectedObjects – objekt funna i bilden
  • image – bildens metadata
  • imageInsightsToken – en token för senare GET-förfrågningar som hämtar RecognizedEntities (personer eller platser som visas på bilden) från bilden.
  • imageTags – taggar för bilden
  • pagesIncluding – webbsidor som inkluderar bilden
  • relatedSearches – sökningar som baseras på informationen i bilden.
  • visuallySimilarImages – liknande bilder på webben.

Specificera modules=RecognizedEntities i POST-begäran för att bara få imageInsightsToken, som kan användas i en efterföljande GET-begäran för att identifiera personer eller platser på bilden.

Skapa ett WebClient-objekt och ange huvuden för API-begäran

Skapa ett WebClient-objekt och konfigurera rubrikerna. Alla förfrågningar till API för sökning i Bing kräver en Ocp-Apim-Subscription-Key. En POST-begäran om att ladda upp en bild måste även specificera ContentType: multipart/form-data.

WebClient client = new WebClient();
client.Headers["Ocp-Apim-Subscription-Key"] = accessKey;
client.Headers["ContentType"] = "multipart/form-data";

Ladda upp bilden och visa resultaten

WebClient-klassens UpLoadFile()-metod formaterar data för POST-begäran, bl.a. för att formatera RequestStream och anropa HttpWebRequest.

Anropa WebClient.UpLoadFile() med /details-slutpunkten och den avbildningsfil som ska laddas upp. Använd JSON-svaret till att initiera en instans av SearchResult-strukturen och spara svaret.

const string uriBase = "https://api.cognitive.microsoft.com/bing/v7.0/images/details";
// The image to upload. Replace with your file and path.
const string imageFile = "your-image.jpg";
byte[] resp = client.UploadFile(uriBase + "?modules=All", imageFile);
var json = System.Text.Encoding.Default.GetString(resp);
// Create result object for return
var searchResult = new SearchResult()
{
    jsonResult = json,
    relevantHeaders = new Dictionary<String, String>()
};

Det här JSON-svaret kan sedan skrivas ut till konsolen.

Använda en avbildningsinsiktstoken i en begäran

Om du vill använda ImageInsightsToken som returnerades med resultatet av en POST, så kan du lägga till den i en GET begäran. Exempel:

https://api.cognitive.microsoft.com/bing/v7.0/images/details?InsightsToken="bcid_A2C4BB81AA2C9EF8E049C5933C546449*ccid_osS7gaos*mid_BF7CC4FC4A882A3C3D56E644685BFF7B8BACEAF2

Om det finns identifierbara personer eller platser på bilden returnerar begäran information om dem.

Nästa steg

Se även