Kein Smartphone ohne Smart-App – Ein Blick auf MLKit

Machine Learning ist ein komplexes und möglicherweise schwer zugängliches Thema, da es eine gewisse Expertise verlangt. Mit dem auf der Google I/O 2018 angekündigten Firebase MLKit stellt Google ein Framework zur Verfügung, das Machine Learning Funktionalität für mobile Apps einfacher umsetzbar machen soll.

Warum Machine Learning in Apps

Software wird immer intelligenter und personalisierter und in vielen Fällen sind die Ergebnisse davon so selbstverständlich für uns, dass wir uns keine Gedanken mehr darüber machen wie das überhaupt funktionieren kann. Die Antwort ist in dem Fall – Machine Learning. Riesige Mengen an Daten werden gesammelt, Algorithmen werden darauf angewandt und ein Modell wird erstellt, das einem Stück Software schlussendlich die Möglichkeit gibt, mir zu sagen, welche TV Show mir als nächstes gefallen könnte.

Die Frage, warum Machine Learning in einer mobilen App überhaupt Sinn macht, wird am besten mit konkreten Beispielen erklärt. Grundsätzlich kann Machine Learning in Apps dafür eingesetzt werden, um eine personalisiertere Benutzererfahrung anbieten zu können oder um eine App einfach intelligenter zu machen. Alles was die Benutzer dafür tun müssen ist: die App benutzen. Hier ein paar Beispiele:

Netflix

Auf Basis von Bewertungen, angesehenen Filmen etc. werden den Benutzern Vorschläge geliefert, die genau auf deren Vorlieben zugeschnitten sind.

Google Maps

Anhand der Daten darüber, wie lange gewisse Benutzer an gewissen Orten benötigen, um einen Parkplatz zu finden, kann die App brauchbare Parkplätze vorschlagen.

Uber

Machine Learning wird hier dafür verwendet, um genauere Ankunftszeiten eines bestellten Ubers zu liefern.

Google Photos

Bilder werden analysiert, um den Benutzern die Möglichkeit zu geben, ihre Bilder nach darauf abgebildeten Dingen zu durchsuchen.

Die Thematik ist für Apps bereits sehr relevant und wird in Zukunft immer relevanter, deshalb werfen wir lieber ganz schnell einen Blick auf MLKit.

Was ist MLKit?

Wie zuvor schon kurz erwähnt, basiert die Funktionalität einer Machine Learning Anwendung auf einem geeigneten Modell. Diese Modelle werden auf gewisse Daten (z.B. Bilder von Katzen) trainiert, um danach auf unbekannte Daten (Bilder von unbekannten Katzen) angewandt zu werden. Welche Ergebnisse geliefert werden, hängt davon ab, worauf das Modell ausgelegt wurde (z.B. für wie süß die Katze auf einer Skala von 1-10 befunden wird). Das Erstellen solcher Modelle kann in vielen Fällen ein sehr aufwändiger Prozess sein. MLKit stellt daher bereits fertige Modelle für gewisse Standardanwendungen zur Verfügung. Da diese Modelle von Google kommen, muss an dieser Stelle nicht erwähnt werden, dass sie mit ausreichend Daten gefüttert wurden und daher ohne jegliche Anpassungen sehr solide Ergebnisse liefern (mehr dazu weiter unten).

Ein großes Plus von MLKit ist die Tatsache, dass es über Firebase angeboten wird und damit sowohl für Android als auch für iOS verfügbar ist. Modelle können entweder offline (am Gerät) oder in Firebase als cloud-basierte Lösung verwaltet werden. Eigene Modelle (zum Beispiel mit Tensorflow erstellt) können somit ebenfalls direkt auf Firebase gehostet und in MLKit verwendet werden.

Was kann MLKit?

Neben der Möglichkeit eigene Modelle einzubinden, liefert MLKit einige Grundfunktionalitäten direkt mit. Eine weitere Anwendung ist bereits in Entwicklung. Das lässt darauf schließen, dass sich die unten angeführte Liste in Zukunft noch weiter vergrößern wird. Die APIs, die bereits mitgeliefert werden, sind die Folgenden:

Gesichtserkennung

Die Gesichtserkennung erkennt Augen, Ohren, Nase, Mund und Wangen und liefert deren Position. Zusätzlich dazu werden Daten zum Gesichtsausdruck wie Augenöffnung oder Lächeln geliefert. Die in einem Bild erkannten Gesichter werden mit einer konkreten ID zurückgeliefert, die über mehrere Frames mit dem konkreten Gesicht verknüpft bleiben. Somit kann ein Gesicht im Live Kamerabild eindeutig verfolgt werden. Für die Gesichtserkennung gibt es keine cloud-basierte Variante, hier wird alles direkt am Gerät durchgeführt.

Bild-Labeling

Hierfür existiert eine offline Variante, die über 400 Labels unterstützt, sowie eine cloud-basierte, mir der über 10 000 verschiedene Labels geliefert werden. Wie man in den unteren Beispielbildern erkennen kann sind die erkannten Labels in der offline Variante ebenfalls bereits sehr brauchbar.

Texterkennung (OCR)

Auch die Texterkennung ist offline sowie cloud-basiert verwendbar, wobei die offline Variante natürlich etwas eingeschränkter ist. Mit der cloud-basierten Lösung kann nicht nur eine höhere Genauigkeit in der Erkennung des Texts selbst erzielt werden – man kann sogar die Sprache des Textes bestimmen. Beide Varianten liefern auch die Bounding-Box der erkannten Textbausteine.

Barcode-Erkennung

Als reine offline API unterstützt die Barcode Erkennung die gängigen Formate wie EAN und QR-Codes. Es wird nicht nur der Code entziffert, sondern auch erkannt, um welche Art von Code es sich handelt. Auch strukturierte Daten wie WLAN Verbindungsinfos oder Geolocation-Infos werden entsprechend unterstützt.

Erkennung von Sehenswürdigkeiten

Hierbei handelt es sich um eine reine cloud-basierte Lösung, für die die Cloud-Vision API von Google benötigt wird. Hiermit können dann bekannte Sehenswürdigkeiten erkannt werden. Neben dem eigentlichen Namen der Sehenswürdigkeit liefert die API auch die geografischen Koordinaten zurück.

Fazit

Mit MLKit können bereits einige der häufigsten Anwendungen für Machine Learning ohne viel Zusatzaufwand abgedeckt werden. Natürlich wird das für viele Anwendungen dann schlussendlich doch nicht ausreichen, aber auch hier eilt MLKit zu Hilfe und unterstützt die Verwendung von eigenen Modellen, die direkt in Firebase gehostet werden können.

Was ich noch gar nicht erwähnt habe ist, dass MLKit aktuell erst als Beta Version verfügbar ist. Wenn man den Stand der Funktionalitäten betrachtet, deutet das auf eine sehr vielversprechende Zukunft für das Framework hin. Die Nutzung über Firebase und die damit verbundene Verfügbarkeit für iOS sowie Android macht das Ganze natürlich noch attraktiver. Ich bin gespannt!