Als ich gehört habe, dass es das „WWDC Scholarships“ Programm gibt, war ich begeistert und habe mich dazu entschieden, teilzunehmen. Ich wusste schnell, dass ich etwas mit Machine Learning machen wollte. Ich habe die neusten Änderungen angeschaut und bin auf CreateML gestossen. Mit CreateML kann man auf einem Mac ein Modell erstellen, welches dann später mit CoreML und Vision auf macOS und iOS verwendet werden kann. In den Weihnachtsferien im Dezember habe ich mit dem Projekt begonnen. Ich habe mit CreateML und CoreML herumexperimentiert und geschaut, was man damit alles machen kann. Zuerst habe ich Tiere erkannt aber dann begann ich mit der Erkennung von Handschrift. Daraufhin habe ich mit dem MNIST Dataset herumgespielt und einige Zahlen erkannt. Da man aber keine öffentlichen Ressourcen verwenden sollte, konnte ich MNIST nicht verwenden. Ich habe mich dazu entschieden, Zahlen und Operatoren zu erkennen um einen handschriftlichen Taschenrechner zu erstellen. Dafür brauchte ich für jedes Zeichen (0-9, +, -, *, /, =) möglichst viele Bilder.
Meine erste Idee war es, den Nutzer jedes Zeichen zeichnen zu lassen, dann das Modell trainieren und dieses dann direkt verwenden. Leider ist es nicht sehr toll, mit einer Maus zu schreiben. Deshalb habe ich mich dazu entschieden, diese Idee nicht umzusetzen.
Die andere Möglichkeit, welche es gibt, ist es, das Training des Modells auf einem Mac durchzuführen, das Modell dann auf ein iPad kopieren und dort die Handschrift zu erkennen. Ich habe mich für diese Möglichkeit entschieden, da es besser ist auf einem Touchscreen zu zeichnen und da das Training eine Weile dauern kann und so besser im Voraus durchgeführt wird.
Die erste Version welche ich entwickelt habe, war eine Zeichnungsfläche, ein „Erkennen“-Button und ein Label in dem das Resultat stehen wird. Man konnte so eine Zahl oder einen Operator zeichnen und dieser wurde dann ins Label geschrieben.
Dann habe ich noch einen „Berechnen“-Button hinzugefügt. Wenn dieser gedrückt wurde, wurde die Rechnung im Label ausgerechnet und das Resultat ausgegeben.
Die erste Version hat zwar funktioniert, war aber das Programm war weder genau bei der Erkennung, noch besonders performant, noch besonders nutzerfreundlich. Deshalb wollte ich einige Änderungen vornehmen. Ich habe herausgefunden, dass ich mit Vision nicht nur die Bilder klassifizieren kann, sondern auf deutlich mehr. Vision kann erkennen, wo in einem Bild Texte sind und wo die einzelnen Buchstaben sind (siehe Bild unten).