Blog

BASTA! Blog

BASTA! – Konferenz für .NET, Windows & Open Innovation
24. - 28. September 2018 | Mainz

Jun 1, 2017

Letztes Jahr wurden die Cognitive Services im Rahmen der Build-Konferenz vorgestellt: verschiedenste APIs, die künstliche Intelligenz und Machine Learning nutzen, um unseren Apps das Sehen, Hören, Sprechen und Verstehen zu erlauben. Dieses Jahr war wieder ein guter Teil der Build 2017 Keynote den Neuerungen auf diesem Sektor gewidmet.

 

Neuigkeiten zu den Cognitive Services

Die Cognitive Services sind wahrlich ein gutes Beispiel für gelungene Developer Experience. Zunächst die technischen Möglichkeiten: Nur einen REST-Aufruf entfernt bietet sich dem Entwickler eine Welt voller Möglichkeiten, die unweigerlich begeistern muss. Foto machen, uploaden, und das Gesicht wird identifiziert, Emotionen werden erkannt und das Alter wird bestimmt. Kostenpunkt: 0,001 Euro pro Abfrage, 30 000 Abfragen pro Monat sind gratis. Entwickeln Sie so etwas einmal selbst.
Mindestens genauso wichtig ist der absolute Fokus auf rasches Ausprobieren. Die Website der Cognitive Services ermöglicht fast überall ein Testen mit Demodaten – und es fällt schwer, sich loszureißen, wenn man die ersten Services einmal ausprobiert hat.

Anpassbarkeit

Viele der Services sind deshalb attraktiv, weil sie bereits „angelernt“ sind: Das Computer-Vision-API nimmt jedes beliebige Foto entgegen und erkennt beispielsweise Personen, Tiere, Großstädte und Gegenstände aufgrund der unzähligen Testdaten. Wir müssen nichts bereitstellen, keine Modelle trainieren, es funktioniert einfach.

Schon bisher gab es aber auch Services, die einen individuellen Endpunkt mit spezifisch angelernten Daten zur Verfügung stellen, um domänenspezifisch zu unterstützen. So war beispielsweise der Language Understanding Intelligent Service (LUIS) dafür optimiert, zuvor eingelernte Sätze zu verstehen und auch in abgewandelter Form wiederzuerkennen. Nicht alle Sätze, sondern speziell angelernte Sätze für die eigene Domäne.

Drei der vier neuen Services, die nun auf der Build 2017 vorgestellt wurden, tragen den Begriff „Custom“ im Namen und zeigen damit, wohin die Reise geht.

Custom Vision Service

Der Custom Vision Service ist wie LUIS für Bilder: Über das API oder das webbasierte Portal lädt man Beispielbilder hoch und vergibt Tags. Anschließend lässt man den Service trainieren und erhält einen REST-Endpunkt, dem neue Bilder zur Analyse übergeben werden können. Das Ergebnis ist eine Einschätzung, zu viel Prozent welcher Tag auf das Bild zutrifft.

Wie gut funktioniert das in der Praxis? Vor einiger Zeit haben wir uns für eine Software aus dem Therapiebereich mit der automatisierten Erkennung des „Tangram“-Spiels beschäftigt. Mithilfe von sieben geometrischen Formen (fünf Dreiecke, ein Quadrat, ein Parallelogramm) müssen vorgegebene Bilder gelegt werden, nahezu die gesamte Tierwelt ist als Tangram-Vorlage verfügbar. Es war damals eine große technische Herausforderung, diese Erkennung zu implementieren. In vielen Manntagen wurden von hochqualifizierten Softwareentwicklern komplizierte Algorithmen implementiert und verschiedenste Lösungsansätze versucht. Vielleicht würden wir heute anders an die Sache herangehen.

Abb. 1: Image-Upload

Im ersten Schritt erstellt man ein Projekt auf https://www.customvision.ai und fügt die ersten Fotos hinzu (Abb. 1). In meinem Fall habe ich mit mehreren Hunde- und Katzentangrams gestartet und sie auf verschiedenen Untergründen und aus verschiedenen Winkeln fotografiert. Die Bilder müssen manuell getagt werden, pro Tag sind mindestens fünf Bilder notwendig (in der Dokumentation ist teilweise noch von dreißig Bildern die Rede – je mehr, desto besser). Anschließend startet man den ersten Trainingslauf, und nach wenigen Sekunden ist der Tangram-Erkennungsservice testbereit.

Abb. 2: Erste Erkennung

Nach der ersten Euphorie („Meine Katze wird erkannt!“) folgte sogleich die Ernüchterung: Selbst die lieblos am Tisch verstreuten Tangramteile wurden als Katze erkannt. Eigentlich war alles Katze (Abb. 2). Offenbar hatte der Service etwas Falsches gelernt, das kommt in den besten Familien vor (siehe dazu auch den kuriosen angeblichen Versuch des Pentagons, feindliche Panzer mit neuronalen Netzwerken zu erkennen).

Also nächster Durchgang: Bilder von zufällig angeordneten Tangram-Teilen hochladen und als „Tangramteile“ klassifizieren. Nicht Hund, nicht Katze. Und siehe da: die Erkennungsrate ging rasch nach oben, die Bilder wurden nun zuverlässig erkannt (Abb. 3).

Abb. 3: Katzen werden (endlich) erkannt

Nach demselben Schema können neue Fotos und neue Tags angelegt werden, der Service wird schrittweise verbessert. In einer eigenen „Performance“-Ansicht kann überprüft werden, ob die Erkennungsrate im Vergleich zur Vorgängerversion verbessert wurde (Abb. 4).

 


Abb. 4: Schrittweise Verbesserung

Natürlich ist das gezeigte Szenario noch nicht perfekt: Zum Beispiel erkennt es Katzentangrams auch dann, wenn ein Teil fehlt. Das ist im Sinne einer intelligenten Bilderkennung vielleicht erwünscht, im Fall von Tangrams jedoch falsch. Aber es zeigt: Mit Möglichkeiten wie dem Custom Vision Service können manche Problemstellungen auf eine komplett andere Art als bisher gelöst werden, Machine Learning und künstliche Intelligenz stehen dem normalen Entwickler zur Verfügung. Anstatt Algorithmen zu entwickeln, vertraut man einer Blackbox, die mit erstaunlich wenigen Testdaten in kürzester Zeit bereits verblüffende Erkennungsraten erzielen kann. Und mit der Weboberfläche ist das Erstellen dieser ausgeklügelten Logik auch für Nichtentwickler eine machbare Aufgabe. Denken Sie darüber nach.

 

Weitere Neuigkeiten

Neben dem Custom Vision Service wurde auf der BUILD auch der Custom Decision Service vorgestellt. Dahinter verbirgt sich ein – etwas missverständlich benannter – Zusammenschluss mehrerer existierender Cognitive Services, um personalisierte Inhalte anbieten zu können. Öffnet ein Benutzer auf Ihrer Website einen Artikel, wird durch Text- und Bildanalyse der Inhalt analysiert und dieses Profil genutzt, um andere Inhalte empfehlen zu können.

Auch die Bing Custom Search ist als Preview-Version verfügbar und bietet die Möglichkeit, unter einem individuellen Endpoint auf eine für die eigenen Bedürfnisse optimierte Bing-Suche zuzugreifen.

Der vierte Service trägt den Namen Video Indexer und verspricht die Analyse von Videoinhalten:

Wer ist zu sehen?
Was wurde gesprochen?
Wo war besonders viel Emotion zu sehen?

Spannend für alle Medien und Videoplattformen. Und für das Kürzen des nächsten Sommerurlaubfilms, Ihre Freunde werden’s Ihnen danken.

 

 

Ihr aktueller Zugang zur .NET- und Microsoft-Welt.
Der BASTA! Newsletter:

Behind the Tracks

.NET Framework & C#
Visual Studio, .NET, Git, C# & mehr

Agile & DevOps
Agile Methoden, wie Scrum oder Kanban und Tools wie Visual Studio, Azure DevOps usw.

Web Development
Alle Wege führen ins Web

Data Access & Storage
Alles rund um´s Thema Data

JavaScript
Leichtegewichtig entwickeln

UI Technology
Alles rund um UI- und UX-Aspekte

Microservices & APIs
Services, die sich über APIs via REST und JavaScript nutzen lassen

Security
Tools und Methoden für sicherere Applikationen

Cloud & Azure
Cloud-basierte & Native Apps