Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Waarschuwing
Op 30 oktober 2020 zijn de Bing Search-API's verplaatst van Azure AI-services naar Bing Search Services. Deze documentatie wordt alleen ter referentie verstrekt. Zie de bing zoek-API-documentatie voor bijgewerkte documentatie. Voor instructies voor het maken van nieuwe Azure-resources voor Bing, zie Een Bing Search-resource maken via de Azure Marketplace.
Met de Visual Search-clientbibliotheek kunt u online afbeeldingen zoeken uit eerdere zoekopdrachten die een ImageInsightsToken
retourneren. Deze toepassing haalt een ImageInsightsToken
en gebruikt het token in een volgende zoekopdracht. Vervolgens wordt de ImageInsightsToken
naar Bing verzonden en worden er resultaten geretourneerd die Bing Search-URL's en URL's van vergelijkbare afbeeldingen die online zijn gevonden bevatten.
De volledige broncode voor deze zelfstudie vindt u met aanvullende foutafhandeling en aantekeningen op GitHub.
Vereiste voorwaarden
- Een versie van Visual Studio 2019.
- Als u Linux/MacOS gebruikt, kunt u deze toepassing uitvoeren met Mono.
- De NuGet Visual Search- en Image Search-pakketten.
- Klik in Solution Explorer in Visual Studio met de rechtermuisknop op uw project en selecteer in het menu NuGet-pakketten beheren. Installeer het
Microsoft.Azure.CognitiveServices.Search.CustomSearch
pakket en hetMicrosoft.Azure.CognitiveServices.Search.ImageSearch
pakket. Als u de NuGet-pakketten installeert, wordt ook het volgende geïnstalleerd:- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
- Klik in Solution Explorer in Visual Studio met de rechtermuisknop op uw project en selecteer in het menu NuGet-pakketten beheren. Installeer het
Een Azure-resource maken
Begin met het gebruik van de Bing Visual Search-API door een van de volgende Azure-resources te maken:
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Selecteer de
S9
prijscategorie.
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, in meerdere Azure AI-services.
Het ImageInsightsToken ophalen uit de Bing Image Search-clientbibliotheek
Deze toepassing maakt gebruik van een ImageInsightsToken
verkregen via de Bing Image Search-clientbibliotheek. Maak in een nieuwe C#-consoletoepassing een client om de API aan te roepen met behulp van ImageSearchClient()
.
SearchAsync()
Gebruik deze vervolgens met uw query:
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\"");
Sla het eerste zoekresultaat op met behulp van imageResults.Value.First()
, en sla vervolgens het inzicht van de afbeelding op met 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!");
}
Dit ImageInsightsToken
wordt verzonden naar Bing Visual Search in een aanvraag.
ImageInsightsToken toevoegen aan een Visual Search-aanvraag
Geef het ImageInsightsToken
op voor een Visual Search-aanvraag door een ImageInfo
object te maken op basis van de ImageInsightsToken
antwoorden van Bing Visual Search.
ImageInfo ImageInfo = new ImageInfo(imageInsightsToken: insightsTok);
Bing Visual Search gebruiken om afbeeldingen te zoeken uit een ImageInsightsToken
Het VisualSearchRequest
object bevat informatie over de afbeelding in ImageInfo
om te worden doorzocht. De VisualSearchMethodAsync()
methode haalt de resultaten op. U hoeft geen binaire afbeelding op te geven, omdat de afbeelding wordt vertegenwoordigd door het token.
VisualSearchRequest VisualSearchRequest = new VisualSearchRequest(ImageInfo);
var visualSearchResults = client.Images.VisualSearchMethodAsync(knowledgeRequest: VisualSearchRequest).Result;
De resultaten van Visual Search doorlopen
Visual Search-resultaten zijn ImageTag
objecten. Elke tag bevat een lijst met ImageAction
-objecten. Elk object van het type ImageAction
bevat een Data
-veld. Dit is een lijst met waarden die afhankelijk zijn van het type actie. U kunt bijvoorbeeld door de ImageTag
objecten in visualSearchResults.Tags
itereren en de ImageAction
tag erin ophalen. In het onderstaande voorbeeld worden de details van PagesIncluding
acties afgedrukt:
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 Actietypen
Voor het ophalen van de werkelijke afbeeldings-URL's van actietypen is een cast vereist waarmee een ActionType
als ImageModuleAction
wordt gelezen, die een Data
element met een lijst met waarden bevat. Elke waarde is de URL van een afbeelding. Het volgende cast het actietype PagesIncluding
naar ImageModuleAction
en leest de waarden:
if (i.ActionType == "PagesIncluding")
{
foreach(ImageObject o in (i as ImageModuleAction).Data.Value)
{
Console.WriteLine("ContentURL: " + o.ContentUrl);
}
}
Zie Afbeeldingen - Visual Search voor meer informatie over deze gegevenstypen.
Geretourneerde URL's
De volledige toepassing retourneert de volgende URL's:
Actietype | URL |
---|---|
MoreSizes -> WebZoekUrl | |
VisualSearch -> WebSearchUrl | |
ImageById -> WebSearchURL | |
GerelateerdeZoeken -> WebZoekUrl: | |
DocumentNiveauSuggesties -> WebZoekUrl: | |
OnderwerpResultaten -> WebZoekUrl | 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 |
AfbeeldingResultaten -> WebZoekUrl | 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 |
Zoals hierboven wordt weergegeven, bevatten de typen TopicResults
en ImageResults
query's voor gerelateerde afbeeldingen. De URL's zijn gekoppeld aan zoekresultaten van Bing.