Objekterkennung

Die HuskyLens ist eine KI-Kamera , die sieben verschiedene Computer Vision Algorithmen beinhaltet. Die Kamera wurde von DFRobots entwickelt und bietet einen einfachen Einstieg in die komplexe Thematik der künstlichen Intelligenz.

Kategorie Erweiterung
Schulstufe SEK1
Material HuskyLens,
Micro-USB-Kabel, Grove 4-Pin-Stecker, optional USB-Powerbank, ggf. M3-Schrauben und Muttern zum Befestigen
Schwerpunkte Variablen, Listen, Schleifen
+Los geht's

Vorbereitung

Bevor es mit der HuskyLens losgeht, müssen ein paar Dinge vorbereitet werden und die Firmware auf den neuesten Stand gebracht werden.

Verkabelung:

  1. Verbinde die HuskyLens mithilfe des Micro-USB-Kabels (1) mit dem Computer, um im nächsten Schritt die Firmware zu aktualisieren.
  2. Der Calliope mini wird über den Grove-Konnektor A0 mit dem Grove-Port (2) verbunden.
    Die Kabel der HuskyLens müssen folgendermassen verbunden werden:
    Schwarz -> Schwarz
    Rot -> Rot
    Grün -> Weiß
    Blau -> Gelb
  3. Um die HuskyLens transportabel zu machen, kann sie sowohl über den USB- als auch dem Grove-Port mit 3,3 - 5 V versorgt werden. Es empfiehlt sich, eine USB-Powerbank zu verwenden, um die HuskyLens möglichst lange zu betreiben.

Falls Mind+ als Programmiereditor verwendet wird, reicht es, den Calliope mini und die HuskyLens mit dem USB-Kabel zu verbinden. Die Kommunikation zwischen den beiden Geräten erfolgt über die Schnittstelle mit dem Computer.

Firmware installieren:


Objekte merken/anlernen

Im ersten Schritt wird die HuskyLens angelernt, damit sie später unterschiedliche Objekte erkennen kann. Mit dem ausgewählten Algorithmus, der in der HuskyLens integriert ist, werden die eingelesenen Objekte "gemerkt" und wieder erkannt.

  1. Drücke dazu auf das Rädchen (1) an der HuskyLens und drehe es zur Seite, bis der Algorithmus Object Recognition auftaucht. Drücke das Rädchen (1) erneut, um die Objekterkennung auszuwählen.
  1. Alles, was die Kamera als Gegenstand identifiziert, wird jetzt mit einem weißen Rechteck und einem Namen gekennzeichnet. Ungefähr 20 Objekte werden bereits schon von der Kamera dauerhaft erkannt und in englisch betitelt, wie z.B. bird, car, sofa, tvmonitor usw.

Diese Zuordnung ist nicht wirklich akkurat, so ist eine Kaffeetasse schnell ein Schaf oder eine Spiegelreflexkamera ein Hund. Diese Betitelung dient eher als Platzhalter und die Objekte können in der Programmierung neu benannt werden.

Um mehrere Objekte gleichzeitig zu erkennen, halte das Rädchen etwas länger gedrückt, bis das zweite Menü auftaucht. Wähle dort Multiple Select aus und speichere die Einstellungen.
Im Menü der Objekterkennung finden sich auch weitere Einstellungen, wie z.B. der Recognize Threshold, mit dem der Schwellenwert bestimmt wird, ab wann ein Gegenstand als solcher identifiziert wird.

  1. Damit die KI sich einen Gegenstand merkt, kann der rechte "Lern-Knopf" (2) kurz gedrückt werden, um dem Objekt eine ID zuzuordnen. Der Kasten sollte statt weiß eine Farbe bekommen und hinter dem Namensschild sollte ein :ID1 stehen. Anschließend sollte das gleiche Objekt wiedererkannt werden und dieselbe ID vergeben werden.

Indem der Knopf erneut gedrückt wird, bevor der Countdown abgelaufen ist, kann das Objekt wieder vergessen werden.

Tipp: Suche nach verschiedenen Bildern von Gegenständen im Internet und drucke sie aus oder lass die Objekte in der Klasse anlernen und erkennen. Jedes Mal, wenn statt einem weißen Kasten ein farbiger Kasten mit einer ID auftaucht, wurde dieser Gegenstand bereits gemerkt. Notiere die Namen der Gegenstände in einer Tabelle und ordne sie der jeweiligen ID zu. Diese Zuordnung benötigst du für die Programmierung.


Programm entwickeln

Schaue in den Programmablaufplan und entwickle ein Programm mit den folgenden Eigenschaften:

  • Es besitzt zwei Listen mit den Namen der trainierten Gegenstände in deutsch und einer weiteren Fremdsprache
  • Über eine Abfrage wird geprüft, ob das Objekt bereits angelernt wurde und falls ja, wird der zugehörige Name aus der Liste abgerufen sowie ein glücklicher Smiley angezeigt und falls nein, wird ein trauriger Smiley angezeigt
  • Außerdem können mit dem Drücken der Taste A die Namen der gelernten Gegenstände in eine andere Sprache übersetzt werden. Zum Beispiel Taste A für deutsch und Taste B für englisch - es kann aber auch nur ein Umschaltknopf sein, der die Sprache beim erneuten Drücken immer wieder wechselt
+Tipps und Hilfestellungen
+Ausprobieren und Weiterentwickeln

Übertrage deinen Code auf den Calliope mini und teste ihn. Durch das Drücken der Reset-Taste wird das Programm erneut ausgeführt.

  • Sind die HuskyLens und der Calliope mini mit Strom versorgt und richtig mit dem Grove-Kabel verbunden? Ist die Firmware der HuskyLens auf dem neuesten Stand (siehe Los geht's)?
  • Wurde der richtige Algorithmus ausgewählt und konnte mit dem ausgewählten Algorithmus im Editor die Einstellung auf die HuskyLens übertragen werden?
  • Konnten IDs trainiert und abgerufen werden?
  • Wurde der richtige Index ausgewählt, wenn Objektnamen aus Listen über die IDs abgerufen werden? Listen starten bei 0, HuskyLens IDs bei 1
  • Wieviele Gegenstände können auf einmal erkannt und abgefragt werden?
  • Welche Gegenstände werden von der Kamera leicht erkannt, welche schwer?
  • Können gleiche Gegenstände unterschiedlicher Farben trotzdem als dieselben identifiziert werden?

Hier gibt es ein großartiges Beispiel von Michael Klein:

Programm Code