7. Maschinelles Lernen

Die meisten Detektoren im Bild-Kapitel waren von Hand für ein bestimmtes Ziel codiert: handabgestimmte Farbbereiche für die Blob-Verfolgung, handabgeleitete Gewichtsmuster für Kantenfilter, feste geometrische Annahmen für die Linien- und Kreisfinder. Jeder Algorithmus deckte eine Art von Aufgabe ab, und ein neues Ziel hinzuzufügen bedeutete, einen neuen Algorithmus zu schreiben. Maschinelles Lernen verändert den Arbeitsablauf. Anstatt eines Algorithmus pro Ziel lädt die Anwendung ein trainiertes Modell – einen Stapel von Gewichten, der extern auf einem Desktop mit vielen Beispielbildern erzeugt wurde – und führt es auf der Kamera aus. Dieselbe Engine, die einen Gesichtsdetektor ausführt, führt einen Handposenschätzer, einen Körperposen-Tracker, einen Objektklassifizierer oder was auch immer aus, wofür ein Modell trainiert wurde.

Das ml-Modul ist das Werkzeugset. Jede Operation baut auf einem einzigen Model-Objekt auf, das eine Modelldatei aus dem Flash lädt, seine quantisierten Eingabe- und Ausgabetensoren verwaltet, jede Inferenz an die richtige Engine auf der Kamera weiterleitet und die resultierenden Tensoren durch einen optionalen Post-Prozessor leitet, der sie zurück in die Ergebnisform umwandelt, auf die die Anwendung reagieren kann – Rahmen, Schlüsselpunkte, Klassen oder wofür auch immer das Modell bestimmt ist.

Zusammenfassung