Unravel

Link: klassenkarte.de/unravel

Dieses Tool dient dazu, Schülerinnen und Schülern beizubringen, wie Bilderkennungssysteme, basierend auf neuronalen Netzen, arbeiten. Dabei werden alle Schritte (Vorverarbeitung, Merkmalsextraktion, Training, Klassifikation) anhand echter Daten, die in Echtzeit erfasst werden, durchgespielt. Unravel läuft in aktuellen Browsern (getestet mit Firefox, Chrome, Edge und Opera) und wurde in JavaScript entwickelt. Für die Implementierung des neuronalen Netzes wurde Brain.js (https://brain.js.org/ , Source-Code steht unter MIT-Lizenz) als Thirdparty-Komponente verwendet.

Ein didaktisches Konzept wird noch erarbeitet. Grundlegende Idee ist, dass die Schülerinnen und Schüler ein System trainieren, das verschiedene Arten von Obst erkennen soll (andere Dinge sind aber auch möglich).

Eine Webcam, die idealerweise HD-Auflösung (wichtig: 16:9 Format) liefert, soll dabei so justiert werden, dass die Kamera von oben auf einen Tisch ausgerichtet ist. Der Hintergrund muss dabei möglichst homogen erscheinen. Ideal wäre ein blaues Din A3 oder Din A2-Blatt. Bei der Vorverarbeitung wird der einfarbige Hintergrund entfernt. Blau eignet sich besonders gut, da die Farbe bei Früchten nicht vorkommt. Ein Schwellwert, der einstellt, wie empfindlich die Segmentierung durchgeführt werden soll, muss per Hand über einen Schieberegler justiert werden.

Es stehen verschiedene Merkmale zur Verfügung:

  • Farbe: Alle Pixelintensitäten werden in den HSI-Raum konvertiert und dann der Durchschnitt aller H-Komponenten (Farbwinkel) berechne
  • Fläche: Es werden die Pixel des Objekts gezählt.
  • Kreis: Es wird das Quadrat der Anzahl der Punkte, die die Silhouette bilden, durch die Anzahl der Objektpunkte dividiert. Bei Kreisen ist der Wert 4*pi. Je weniger das Objekt im Bild kreisförmig erscheint, desto größer wird der Wert. Kleiner als 4*pi ist nicht möglich. Das Merkmal gibt also an, wie „ähnlich“ die Figur einem Kreis ist.
  • Kanten: Es wird ein Kantenbild (Sobel-Operator) gebildet und die Kantenwerte aufsummiert und durch die Anzahl der Pixel dividiert.
  • Varianz: Es wird die Standardabweichung der Grauwertintensitäten berechnet.
  • Entropie: Es wird ein zweidimensionales Histogramm der Farbkomponenten im YUV-Raum berechnet und daraus dann die Entropie der Verteilung. Einfarbige Objekte haben minimale Entropie, während Objekte mit vielen Farben eine hohe Entropie besitzen.

Der Merkmalsraum wird visualisiert, aber nur für maximal zwei Dimensionen. Das neuronale Netz kann hingegen für beliebig viele Merkmale trainiert werden. Bezüglich des neuronalen Netzes macht es nicht viel Sinn, mehr als eine versteckte Schicht zu verwenden, es werden aber bis zu drei Schichten (mit je maximal 15 Neuronen) unterstützt.

Eine Bemerkung zum Datenschutz
Das Programm läuft rein clientseitig und würde auch ohne Verbindung zum Internet funktionieren. Der Internetzugriff erfolgt lediglich nur um die Programmdaten vom Webserver auf den Clientcomputer herunterzuladen.