Wie Entwickler die neuen Cognitive Services von Microsoft in ihren Projekten nutzen können

Cognitive Services – endlich können Entwickler Katzen erkennen!
Kommentare

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.

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.

Cognitive Services: attraktiv aufgrund der 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 im Windows Developer 8.2016 vorgestellte LUIS (Language Understanding Intelligent Service) 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 Tangramvorlage 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.

Image Upload

Abb. 1: Image-Upload

Im ersten Schritt erstellt man ein Projekt auf 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 Tangramerkennungsservice testbereit.

Erkennung von Teilen

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 Tangramteilen 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).

katze erkennung

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).

iterationen zur verbesserung

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.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -