Megosztás a következőn keresztül:


Oktatóanyag: Hasonló képek keresése korábbi keresésekből képelemzési jogkivonat használatával

Figyelmeztetés

2020. október 30-án a Bing Search API-k átkerültek az Azure AI-szolgáltatásokból a Bing Search Servicesbe. Ez a dokumentáció csak referenciaként szolgál. A frissített dokumentációt a Bing search API dokumentációjában találja. Az új Azure-erőforrások Bing-kereséshez való létrehozásával kapcsolatos útmutatásért lásd: Bing Search-erőforrás létrehozása a Azure Marketplace keresztül.

A Visual Search ügyféloldali kódtára lehetővé teszi, hogy a korábbi keresésekből származó képeket online keresse meg, amelyek egy ImageInsightsTokenértéket adnak vissza. Ez az alkalmazás lekéri az egyiket ImageInsightsToken , és a jogkivonatot egy későbbi keresés során használja. Ezután elküldi a Bingnek, ImageInsightsToken és olyan eredményeket ad vissza, amelyek Bing Search online talált hasonló képek URL-címeit és URL-címét tartalmazzák.

Az oktatóanyag teljes forráskódja további hibakezeléssel és széljegyzetekkel érhető el a GitHubon.

Előfeltételek

  • A Visual Studio 2019 bármely kiadása.
  • Ha Linux/MacOS rendszert használ, ezt az alkalmazást a Mono használatával futtathatja.
  • A NuGet Visual Search- és képkeresési csomagok.
    • A Visual Studio Megoldáskezelő kattintson a jobb gombbal a projektre, és válassza a Menü NuGet-csomagok kezelése parancsát. Telepítse a Microsoft.Azure.CognitiveServices.Search.CustomSearch csomagot és a Microsoft.Azure.CognitiveServices.Search.ImageSearch csomagot. A NuGet-csomagok telepítése a következőket is telepíti:
      • Microsoft.Rest.ClientRuntime
      • Microsoft.Rest.ClientRuntime.Azure
      • Newtonsoft.Json

Azure-erőforrás létrehozása

Kezdje el használni a Bing Visual Search API-t az alábbi Azure-erőforrások egyikének létrehozásával:

Bing Search v7-erőforrás

  • Az Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Válassza ki a tarifacsomagot S9 .

Többszolgáltatásos erőforrás

  • Az Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Használja ugyanazt a kulcsot és végpontot az alkalmazásokhoz több Azure AI-szolgáltatásban.

Az ImageInsightsToken lekérése a Bing Image Search ügyfélkódtárából

Ez az alkalmazás a ImageInsightsTokenBing Image Search ügyfélkódtárán keresztül beszerzett fájlt használ. Egy új C#-konzolalkalmazásban hozzon létre egy ügyfelet, amely meghívja az API-t a használatával ImageSearchClient(). Ezután használja SearchAsync() a következőt a lekérdezéssel:

var client = new ImageSearchClient(new Microsoft.Azure.CognitiveServices.Search.ImageSearch.ApiKeyServiceClientCredentials(subKey));
var imageResults = client.Images.SearchAsync(query: "canadian rockies").Result;
Console.WriteLine("Search images for query \"canadian rockies\"");

Tárolja az első keresési eredményt a használatával imageResults.Value.First(), majd tárolja a képelemzést ImageInsightsToken.

String insightTok = "None";
if (imageResults.Value.Count > 0)
{
    var firstImageResult = imageResults.Value.First();
    insightTok = firstImageResult.ImageInsightsToken;
}
else
{
    insightTok = "None found";
    Console.WriteLine("Couldn't find image results!");
}

Ezt ImageInsightsToken a rendszer egy kérésben küldi el a Bing Visual Searchnek.

Az ImageInsightsToken hozzáadása Visual Search-kérelemhez

Adja meg a ImageInsightsToken Visual Search-kérelmeket úgy, hogy létrehoz egy ImageInfo objektumot a ImageInsightsToken Bing Visual Search válaszaiban szereplő elemből.

ImageInfo ImageInfo = new ImageInfo(imageInsightsToken: insightsTok);

ImageInsightsTokenből származó képek keresése a Bing Visual Search használatával

Az VisualSearchRequest objektum információkat tartalmaz a keresendő képről ImageInfo . A VisualSearchMethodAsync() metódus az eredményeket kéri le. Nem kell bináris képet megadnia, mivel a képet a jogkivonat jelöli.

VisualSearchRequest VisualSearchRequest = new VisualSearchRequest(ImageInfo);

var visualSearchResults = client.Images.VisualSearchMethodAsync(knowledgeRequest: VisualSearchRequest).Result;

Iterálás a Visual Search eredményei között

A Visual Search eredményei ImageTag objektumok. Mindegy egyes címke ImageAction objektumok listáját tartalmazza. Mindegyik ImageAction tartalmaz egy Data mezőt, amely a művelet típusától függő értékek listája. Átvezetheti például a objektumokat a ImageTag fájlban visualSearchResults.Tags, és lekérheti benne a ImageAction címkét. Az alábbi minta a műveletek részleteit nyomtatja PagesIncluding ki:

if (visualSearchResults.Tags.Count > 0)
{
    // List of tags
    foreach (ImageTag t in visualSearchResults.Tags)
    {
        foreach (ImageAction i in t.Actions)
        {
            Console.WriteLine("\r\n" + "ActionType: " + i.ActionType + " WebSearchURL: " + i.WebSearchUrl);

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

PagesIncluding ActionTypes

A tényleges kép URL-címeinek a művelettípusokból való lekéréséhez olyan szereplőre van szükség, amely a következőt olvassa fel ActionType : ImageModuleAction, amely egy Data értéklistát tartalmazó elemet tartalmaz. Minden egyes érték egy kép URL-je. A következő a művelettípust a PagesIncluding következőre öntötte, ImageModuleAction és beolvassa az értékeket:

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

További információk ezekről az adattípusokról: Képek – Visual Search.

Visszaadott URL-címek

A teljes alkalmazás a következő URL-címeket adja vissza:

ActionType URL-cím
MoreSizes –> WebSearchUrl
VisualSearch –> WebSearchUrl
ImageById –> WebSearchUrl
RelatedSearches –> WebSearchUrl:
DocumentLevelSuggestions –> WebSearchUrl:
TopicResults –> WebSearchUrl https://www.bing.com/cr?IG=3E32CC6CA5934FBBA14ABC3B2E4651F9& CID=1BA795A21EAF6A63175699B71FC36B7C&rd=1&h=BcQifmzdKFyyBusjLxxgO42kzq1Geh7RucVVqvH-900&v=1&r=https%3a%2f%2fwww.bing.com%2fdiscover%2fcanadian%2brocky&p=DevEx,5823.1
ImageResults –> WebSearchUrl https://www.bing.com/cr?IG=3E32CC6CA5934FBBA14ABC3B2E4651F9& CID=1BA795A21EAF6A63175699B71FC36B7C&rd=1&h=PV9GzMFOI0AHZp2gKeWJ8DcveSDRE3fP2jHDKMpJSU8&v=1&r=https%3a%2f%2fwww.bing.com%2fimages%2fsearch%3fq%3doutdoor&p=DevEx,5831.1

Ahogy fent látható, a és ImageResults a TopicResults típusok a kapcsolódó képek lekérdezését tartalmazzák. Az URL-címek hivatkozása a Bing keresési eredményeire.

Következő lépések