Sdílet prostřednictvím


Kurz: Oříznutí obrázku pomocí sady SDK Vizuálního vyhledávání Bingu pro jazyk C#

Upozorňující

30. října 2020 se rozhraní API Bingu pro vyhledávání přesunula ze služeb Azure AI do služby Bing Search Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API Bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingu najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.

Sada SDK Vizuálního vyhledávání Bingu umožňuje oříznout obrázek před vyhledáním podobných online obrázků. Tato aplikace ořezá jednu osobu z obrázku obsahujícího několik lidí a pak vrátí výsledky hledání obsahující podobné obrázky nalezené online.

Úplný zdrojový kód pro tuto aplikaci je k dispozici s dalšími popisy chyb a poznámkami na GitHubu.

Tento kurz ukazuje, jak:

  • Odeslání požadavku pomocí sady SDK vizuálního vyhledávání Bingu
  • Oříznutí oblasti obrázku pro vyhledávání pomocí vizuálního vyhledávání Bingu
  • Přijetí a zpracování odpovědi
  • Vyhledání adres URL položek akcí v odpovědi

Požadavky

  • Libovolná edice sady Visual Studio 2019
  • Pokud používáte Linux nebo MacOS, je možné tuto aplikaci spustit pomocí Mono.
  • Nainstalovaný balíček NuGet pro vlastní vyhledávání.
    • V Průzkumník řešení v sadě Visual Studio klikněte pravým tlačítkem na projekt a v nabídce vyberte Spravovat balíčky NuGet. Nainstalujte balíček Microsoft.Azure.CognitiveServices.Search.CustomSearch. Při instalaci balíčku NuGet Custom Search se nainstalují také následující sestavení:
      • Microsoft.Rest.ClientRuntime
      • Microsoft.Rest.ClientRuntime.Azure
      • Newtonsoft.Json

Vytvoření prostředku Azure

Začněte používat rozhraní API Pro vizuální vyhledávání Bingu vytvořením jednoho z následujících prostředků Azure:

Prostředek Vyhledávání Bingu v7

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • Vyberte cenovou S9 úroveň.

Prostředek s více službami

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • Použijte stejný klíč a koncový bod pro vaše aplikace napříč několika službami Azure AI.

Zadání oblasti oříznutí obrázku

Tato aplikace ořezá oblast této image vedoucího týmu Microsoftu. Tato oblast oříznutí je definována pomocí souřadnic v levém horním a pravém dolním rohu, které jsou reprezentované jako procento celého obrázku:

Tým nejvyššího vedení Microsoftu

Tento obrázek je oříznut vytvořením objektu ImageInfo z oblasti oříznutí a načtením ImageInfo objektu do objektu VisualSearchRequest. Objekt ImageInfo obsahuje také adresu URL obrázku:

CropArea CropArea = new CropArea(top: (float)0.01, bottom: (float)0.30, left: (float)0.01, right: (float)0.20);
string imageURL = "https://learn.microsoft.com/azure/cognitive-services/Bing-visual-search/media/ms_srleaders.jpg";
ImageInfo imageInfo = new ImageInfo(cropArea: CropArea, url: imageURL);

VisualSearchRequest visualSearchRequest = new VisualSearchRequest(imageInfo: imageInfo);

Hledání obrázků podobných oblasti oříznutí

Proměnná VisualSearchRequest obsahuje informace o oblasti oříznutí obrázku a její adrese URL. Metoda VisualSearchMethodAsync() získá výsledky:

Console.WriteLine("\r\nSending visual search request with knowledgeRequest that contains URL and crop area");
var visualSearchResults = client.Images.VisualSearchMethodAsync(knowledgeRequest: visualSearchRequest).Result;

Získání dat adresy URL z ImageModuleAction

Výsledky vizuálního vyhledávání Bingu jsou ImageTag objekty. Každá značka obsahuje seznam objektů ImageAction. Každý ImageAction obsahuje Data pole, což je seznam hodnot, které závisí na typu akce.

Různé typy můžete vytisknout pomocí následujícího kódu:

Console.WriteLine("\r\n" + "ActionType: " + i.ActionType + " -> WebSearchUrl: " + i.WebSearchUrl);

Dokončená aplikace vrátí:

ActionType Adresa URL
PagesIncluding WebSearchURL
MoreSizes WebSearchURL
VisualSearch WebSearchURL
ImageById WebSearchURL
Související hledání WebSearchURL
Entita –> WebSearchUrl https://www.bing.com/cr?IG=E40D0E1A13404994ACB073504BC937A4& CID=03DCF882D7386A442137F49BD6596BEF&rd=1&h=BvvDoRtmZ35Xc_UZE4lZx6_eg7FHgcCkigU1D98NHQo&v=1&r=https%3a%2f%2fwww.bing.com%2fsearch%3fq%3dSatya%2bNadella&p=DevEx,5380.1
TopicResults –> WebSearchUrl https://www.bing.com/cr?IG=E40D0E1A13404994ACB073504BC937A4& CID=03DCF882D7386A442137F49BD6596BEF&rd=1&h=3QGtxPb3W9LemuHRxAlW4CW7XN4sPkUYCUynxAqI9zQ&v=1&r=https%3a%2f%2fwww.bing.com%2fdiscover%2fnadella%2bsatya&p=DevEx,5382.1
ImageResults –> WebSearchUrl https://www.bing.com/cr?IG=E40D0E1A13404994ACB073504BC937A4& CID=03DCF882D7386A442137F49BD6596BEF&rd=1&h=l-WNHO89Kkw69AmIGe2MhlUp6MxR6YsJszgOuM5sVLs&v=1&r=https%3a%2f%2fwww.bing.com%2fimages%2fsearch%3fq%3dSatya%2bNadella&p=DevEx 5384.1

Jak je znázorněno výše, Entity ActionType obsahuje vyhledávací dotaz Bingu, který vrací informace o rozpoznatelné osobě, místě nebo věci. Typy TopicResults a ImageResults obsahují dotazy pro související obrázky. Adresy URL v seznamu odkazují na výsledky vyhledávání Bingu.

Získání adres URL pro PagesIncluding ActionType obrázky

Získání skutečné adresy URL obrázku vyžaduje přetypování, které čte ActionType jako ImageModuleAction, obsahující element Data se seznamem hodnot. Každá hodnota je adresa URL obrázku. Následující přetypuje PagesIncluding typ ImageModuleAction akce na hodnoty a přečte je:

    if (i.ActionType == "PagesIncluding")
    {
        foreach(ImageObject o in (i as ImageModuleAction).Data.Value)
        {
            Console.WriteLine("ContentURL: " + o.ContentUrl);
        }
    }

Další kroky

Viz také

Co je rozhraní API Bingu pro vizuální vyhledávání?