Microsofts Maschinelles Sehen-API mit Powershell nutzen

In diesem Beitrag zeige ich auf, wie man mittels eines API-Calls über Powershell ein Bild an die Microsoft Cognitive Services API sendet – und anschließend eine Tag-Wolke zu diesem Bild zurück erhält.

Für wen ist dieser Beitrag relevant?

  • Du möchtest Bilder automatisch verschlagworten bzw. ausgewertet bekommen…
  • …oder: du möchtest informiert werden, wenn eines deiner Hühner ein Ei gelegt hat.

Der Ablauf in Kürze

  • Ich gehe davon aus, dass du bereits ein JPG vorliegen hast, dass ausgewertet werden soll.
  • Du brauchst einen kostenlosen Testzugang bei Microsoft Azure.
  • Du lädst per API Call ein Bild hoch…
  • …und bekommst ein paar Sekunden später einen JSON-String mit einer Tag-Cloud zurück.

Powershell Code Snippet für Microsofts Maschinelles Sehen API

# Set API URL
$vision = 'https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze'
$features = 'Categories,Tags,Color'

# Set image file
$InFile = "D:\test\file.JPG"
$bytes = [System.IO.File]::ReadAllBytes($InFile)

# Upload image
$response = Invoke-WebRequest `
 -Uri "$($vision)?visualFeatures=$($features)" `
 -Body $bytes `
 -ContentType "application/octet-stream" `
 -Headers @{'Ocp-Apim-Subscription-Key' = '<Enter-your-API-Key-here'} `
 -Method 'Post' `
 -ErrorAction Stop `
 -UseBasicParsing | ConvertFrom-Json

# Show all tags
$resonse.tags

9 Eierbilder im Test

Um die KI zu testen, habe ich 9 Fotos erstellt, sie zeigen ein oder mehrere rohe Eier. Mein Ziel war, zu erfahren, ob in dem Bild ein Ei enthalten ist. Das Resultat war überraschend: in nur 2 von 9 Fällen wurden die Eier erkannt. Was stattdessen erkannt wurde, siehst du beim Durchklicken der Fotos.

 

Lessons Learned: KI kann nicht zählen

Zugegeben: ein neuronales Netz zur Kontrolle der heimischen Hühnereierproduktion mag dem ein oder anderen etwas überdimensioniert erscheinen. Aber hey, es ist ein Hobby 😉

Doch zurück zur Sache:

  • Microsoft erkennt in 2 von 9 Fällen Eier auf einem Teller. Da ist noch Luft nach oben.
  • Ob die Konkurrenz von Google (Tensorflow) oder IBM (Watson) oder gar OpenCV von Intel die Aufgabe besser erledigt, habe ich noch nicht getestet.
  • Selbst wenn die KI mal ein Ei erkennt, zählen kann sie nicht. Glaubt man der Doku, könnte ich dem System zwar beibringen, Bilder mit zwei, drei oder vier Eiern zu erkennen, selber „hochzählen“ und ein Bild mit 256 Eiern erkennen kann sie dann immer noch nicht.
  • Was auch immer die Microsoft Cloud meint, auf dem Foto erkannt zu haben: sie liefert das Ergebnis auf Englisch zurück. Für die Eiersuche ist das kein Problem, bei der automatischen Foto-Verschlagwortung ist das aber sicherlich nicht jedermanns Sache.

Mein Fazit: für die Erkennung „Ei da / Ei weg“ reicht die KI schon. Immerhin etwas. Wie es weitergeht im digitalen Hühnerstall erfahrt ihr stets aus erster Hand auf Twitter, Hashtag #Hühnerfarm.

Credits to Pavel Veller, Image Tagging Automation with Computer Vision!

One Reply to “Microsofts Maschinelles Sehen-API mit Powershell nutzen”

  1. Pingback: Recap zum IBM Watson Summit 2017 in Frankfurt – Andreas W. Ditze

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert