Microsoft Cognitive Services: Computer Vision

with No Comments

Kognition är den process som i förhållande till erfarenheter omvandlar sinnesintryck till en uppfattning om verkligheten. Microsoft erbjuder ett öppet programgränssnitt (API) för kognitiva tjänster som bl.a. hanterar visuellt innehåll, tal, språk och kunskap, och det är svårt att inte imponeras över vad som kan åstadkommas! Programgränssnittet är ett REST-API och kan därför användas från i princip vilket språk som helst. Man skickar det data man vill analysera, tillsammans med en API-nyckel, till en webbadress som levererar JSON tillbaka.

Det är alltså bra att ha en JSON-parser att tillgå om man vill testa ett anrop från C#. Jag använder Newtonsofts Json.NET.

Install-Package Newtonsoft.Json

API-nyckeln kan erhållas från https://azure.microsoft.com/ och ett antal gratistransaktioner ingår.

För att experimentera med Computer Vision API, som är en del av det visuella programgränssnittet, använder jag ett av mina privata fotografier föreställande professor Richard Dawkins.

Sen bygger jag en enkel Windows Forms-applikation där man kan dra in en bild. Bilden visas på skärmen, och skickas även till Computer Vision-gränssnittet. Följande kod utrustar mitt formulär med möjligheten att dra in en bild från Utforskaren och visa dess innehåll. Det är funktionen AnalyzeImage som läser in bilden, både för visning på skärmen och för att skicka den till tjänsten.

Konstanten ApiKey ska inte innehålla XXX utan en korrekt API-nyckel. Här är den intressanta koden:

Det enda jag har beställt från tjänsten är en beskrivning. JSON-objektet som kommer tillbaka innehåller en bildtext som jag väljer att visa ovanpå bilden, men det finns mycket mer än så att hämta i JSON-objektet, som t.ex. en säkerhet uttryckt i procent och en lista över de ting som tjänsten ser i bilden. Bildtexten (som hämtas från arrayen captions med index 0) berättar inte bara att det är en man i kostym, utan även att den mannen är just Richard Dawkins!

Texten säger “Richard Dawkins wearing a suit and tie”. Här finns en lista över Microsofts kognitiva tjänster, och på Nuget finns även färdiga C#-bibliotek som förenklar användningen ytterligare: Project Oxford, som faktiskt fått sitt namn från det universitet där just Dawkins var verksam. Project Oxford ger dessutom starkt typade resultat. Här är några andra, mer eller mindre framgångsrika exempel (från bilder som inte är upphovsrättsskyddade):

“Mona Lisa standing in front of a mirror posing for the camera”.

“A man riding a skateboard down a street next to a car”.

“A chicken standing in the garden”.

Follow Anders Hesselbom:

Latest posts from

Leave a Reply