Bessere Interaktion – die Cognitive-Services-Reihe

Cognitive Services – das Vision-API von Microsoft
Keine Kommentare

Nachdem wir in der letzten Ausgabe die Sprach-APIs vorgestellt haben, legen wir diesmal den Fokus auf das Kapitel Vision der Cognitive Services. Unter „Vision“ fasst Microsoft viele spannende APIs zur Analyse von Bildern und Videos zusammen.

Kennen Sie www.how-old.net? Die Website hat sich nach der Build Keynote 2015 rasend schnell verbreitet und für Begeisterung gesorgt: Nach dem Upload eines Porträts wurden das Geschlecht und Alter der abgebildeten Person geschätzt (Abb. 1). Für manche schmeichelnd, für viele erschreckend genau. Technologisch steckten dahinter bereits die Vorläufer jener APIs, die jetzt für alle Entwickler unter dem Namen „Cognitive Services“ (früher: Project Oxford) zur Verfügung stehen.

Abb. 1: Alterserkennung im Bild (Quelle: Microsoft)

Abb. 1: Alterserkennung im Bild (Quelle: Microsoft)

Computer-Vision-API

Die meisten von uns werden Bildanalyse schnell mit hoch mathematischen Formeln und Mustererkennungsalgorithmen in Verbindung bringen. Das Computer-Vision-API setzt aber auf einem ganz anderen Abstraktionslevel auf. Wenn man ein Bild von einem Eichhörnchen an den Service sendet, kommt als Antwort „a squirrel is sitting on a rock“ und eine prozentuale Wahrscheinlichkeit, wie sehr man der Aussage Vertrauen schenken darf. Darüber hinaus können Tags und Kategorien (Animal, Outdoor etc.), Gesichter inkl. deren Position sowie dominierende Farbwerte abgefragt werden. Für Portale, bei denen Bilder von Benutzern hochgeladen werden, ist die Markierung von potenziell rassistischen oder nicht jugendfreien Inhalten hilfreich.

Der Start mit dem Vision-API ist denkbar einfach: Zur Kommunikation wird eine Subscription benötigt, die hier beantragt werden kann. Fünftausend Requests pro Monat (und maximal zwanzig pro Minute) sind kostenlos, ein darüber hinausgehendes Preismodell gibt es bisher aber noch nicht. Mit dem Subscription Key kann die Funktionalität entweder online mittels Testkonsole, über REST-Services oder in C# mithilfe des NuGet Packages Microsoft.ProjectOxford.Vision angesprochen werden. In Listing 1 sehen Sie, wie wenige Zeilen Code dafür notwendig sind.

string fileName = @"squirrel.jpg";
VisionServiceClient service = new VisionServiceClient("xxx");

using (var stream = File.OpenRead(fileName))
{
  var visualFeatures = new [] { VisualFeature.Adult, VisualFeature.Categories, VisualFeature.Color, VisualFeature.Description, VisualFeature.Faces, VisualFeature.ImageType, VisualFeature.Tags };

  var result = await service.AnalyzeImageAsync(stream, visualFeatures);
}

Neben der – im direkten Vergleich fast unspektakulären – OCR-Erkennung (Optical Character Recognition), die ebenfalls als Service angeboten wird, sticht ein sehr praktisches API heraus: der Thumbnail-Service. Aus einem beliebigen Bild wird ein Thumbnail in der gewünschten Größe erzeugt und dabei versucht, den besten Ausschnitt zu wählen. Wird ein Logo erkannt, bleibt das Bild zur Gänze erhalten und wird nur verkleinert. Bei Fotos bleiben Gesichter und dominante Objekte möglichst gut im Bild, während der Rest abgeschnitten wird.

Emotion-API

Wer von der Erkennung des Alters und Geschlechts schon begeistert war, der sollte das Emotion-API gesehen haben. Gesichter können hinsichtlich des Gefühlsausdrucks analysiert werden: Zu wie viel Prozent sieht die Person verärgert, empört, verängstigt, glücklich, neutral, traurig oder überrascht aus? Der Service funktioniert für Bilder gleichermaßen wie für Videos und steht ebenfalls in einer limitierten kostenlosen Variante zur Verfügung (dreißigtausend Bildanfragen, dreihundert Videouploads pro Monat). Die kostenpflichtigen Pakete liegen zwischen 0,10 und 0,25 Dollar pro tausend Transaktionen.

Face-API

Weniger um den Ausdruck als um die Identifikation von Gesichtern kümmert sich das Face-API. Während vorhin die Position des Gesichts erkannt wurde, liefert dieses API zusätzlich Informationen über die Augen und Augenbrauen, die Nase und die Mundwinkel. Es wird erkannt, ob die Person einen Bart trägt oder eine Brille auf hat. Diese Daten sind wiederum relevant, um Gesichter zu identifizieren. Das Face-API kann ermitteln, ob zwei Fotos dieselbe Person zeigen oder nicht – und wie überall mit einer Wahrscheinlichkeit unterlegen. Die Erkennung funktioniert dabei erstaunlich gut, auch wenn die Gesichter teilweise überdeckt sind oder nicht genau in die Kamera blicken.

Dem API können auch Personen vorgestellt werden: Das Modell merkt sich den Namen und trainiert anhand von bereitgestellten Porträts. Lädt man anschließend ein weiteres Foto hoch, antwortet das API mit dem Namen der dargestellten Person. Wer eine große Verwandtschaft hat, wird dieses Feature lieben (die ersten dreißigtausend Transaktionen im Monat sind kostenlos, das dürfte auch für Großfamilien reichen).

Video-API

Das Vision-API wird schließlich durch einige Videoservices abgerundet. Angefangen von Bildstabilisatoren und dem bereits beschriebenen Erkennen von Gesichtern, steht auch hier ein Thumbnail-Service zur Ermittlung möglichst aussagekräftiger Vorschaubilder zur Verfügung. Außerdem können mittels „Motion detection“ Sequenzen erkannt werden, in denen eine Bewegung stattfindet – ob das für die selbstgebaute Alarmanlage zuverlässig genug ist, müssen Sie selbst entscheiden.

Fazit

„Wozu brauche ich das Ganze?“ könnten Sie fragen. Vielleicht zurecht – die Reisekostendatenbank kommt vermutlich auch weiterhin ohne Cognitive Services aus. Aber gerade im Webbereich bei Userportalen ist der ein oder andere Service mit Sicherheit spannend. Das Vision-API beinhaltet Möglichkeiten, die bis vor Kurzem nur für teures Geld oder überhaupt nicht zur Verfügung standen. Gönnen Sie sich daher ein paar Minuten Spielerei auf der Website – vielleicht bekommt Ihre nächste App ja Augen.

 

API Summit 2018

Moderne APIs mit ASP.NET Core MVC und SignalR – End-to-End

mit Sebastian Gingter und Manuel Rauber (Thinktecture AG)

Azure in Action: Pragmatische Cloud-Lösungen für alle

mit Thorsten Hans und Christian Weyer (Thinktecture AG)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -