NAO Roboter + Computer Vision + 4 Schulkinder + 1,5 Stunden pro Woche = Roboterlehrer Englisch

Hallo alle zusammen! Dieser Artikel ist den Ergebnissen des ersten Jahres des Computer-Vision-Labors im Kinder-Technopark von Nowosibirsk (offiziell das Zentrum für die Entwicklung der Kreativität von Kindern und Jugendlichen) gewidmet. Das "Computer Vision Laboratory" klingt natürlich laut, aber wir haben es trotzdem geschafft, etwas zu tun.

Bild

Ideenentwicklung


Beginnen wir mit dem, was geplant war. In blauen Träumen sah ich einen NAO-Roboter (der Sie vom Bild aus ansah), der jeden Text vorlas, der in einer „speziellen Zone“ wie einem Barcodeleser in Supermärkten präsentiert wurde, eine Art bedingter Universalleser für diejenigen, die dies aus irgendeinem Grund nicht können das selbst. In einer profaneren Version wollte ich aus der NAO einen Bibliothekar-Roboter machen, der die Namen des Buches und seines Autors erkennt. Habe ich bei der Festlegung der ersten Aufgabe die Komplexität der Aufgabe und das Niveau der Schüler (und meinen Mangel an Erfahrung) berücksichtigt? Natürlich nicht. Infolgedessen haben wir natürlich eine weitere, wenn auch enge Aufgabe realisiert, die sich jedoch als noch besser herausstellte.

Eine kleine Klarstellung mit Antworten auf offensichtliche Fragen: Warum NAO? Es stellte sich heraus, dass es auf der Grundlage dieses Zentrums drei solcher Roboter gab, mit denen niemand arbeitete. Sie haben gute Kameras und einen eingebauten Sprachsynthesizer ( Hersteller sprechen sogar über spezielle Tools zum Erinnern von Gesichtern / Objekten und zum Erkennen von Live-Sprache, aber ich persönlich habe sie nicht verwendet), die API ist verständlich, sie versteht Python. Warum wird Text erkannt? Ich weiß nicht, aus irgendeinem Grund schien mir der Text zu dieser Zeit am nächsten zu sein (ein Bücherwurm, was ich von mir nehmen soll) .

Ich habe Ende Oktober letzten Jahres angefangen, mit Schulkindern zu arbeiten. Anfangs gab es nur zwei von ihnen: einen Jungen und ein Mädchen der 10. und 11. Klasse. Wenig später schlossen sich uns 2 Achtklässler an (ich erinnere Sie daran, dass das Wort "Integral" in der 8. Klasse wie viele andere Dinge jedoch unbekannt ist). Und dann stellte sich heraus, dass nicht alles so einfach ist. Das heißt, im Allgemeinen ist nicht alles einfach.

Nachdem die Roboter aufgehört hatten, sie akut zu stupsen, wurden sie in der grafischen Oberfläche beherrscht (wie man eine Verbindung herstellt, wie man steuert, wie man zwischen der oberen und unteren Kamera wechselt, wie man ein Foto macht, wie und wo man es speichert), konzentrierten wir uns auf die Bildverarbeitung.

Die erste Aufgabe bestand darin, ein Bild des Buches zu machen und zu versuchen, den Autor und den Titel als Standard zu finden, die mehrmals beschrieben wurdenStapelüberlauf , Methoden ( Farbkonvertierung , Filter, Verdickungen usw. usw.). Mit einigen Büchern war das Manöver ein Erfolg, mit einigen - nein. Zum Beispiel ist uns ein Buch über Hacker trotz seines unkonventionellen Designs gelungen.

Bild

Bild

Aber mit einer scheinbar weniger marginalen Veröffentlichung erlitten wir zahlreiche Fiaskos (die Geschichte hat darüber hinaus nicht gerettet). Im Allgemeinen wurde klar, dass wir nicht mehr so leben können, wir haben keine Zeit dafür und wir müssen die Aufgabe ändern.

Bild

Eine offensichtliche, aber nicht ganz diese Lösung wurde von den Jungs von TUSUR vorgeschlagen, die zu einer Veranstaltung gekommen waren und seit mehreren Jahren mit der NAO zusammenarbeiten. Sie schlugen ein weißes Blatt als gleichmäßigen weißen Hintergrund vor. OK.

Bild

Das Leben ist einfacher geworden, aber nicht sehr.

Bild

Nach ein wenig Schamanismus mit Filtern gelang es uns jedoch, Tesseract (genauer gesagt den Python-Wrapper Tesserwrap) anzuwenden, und die Angelegenheit bewegte sich: Der Roboter sprach. Zuerst durch die Kamera meines Mohns:




Und dann von selbst. Wir haben sogar Müll -Neujahrsgrüße gemacht (die ich irgendwie durch PhotoBooth gespiegelt habe und für die es keine rationale Erklärung gibt).



Falsch positive Ergebnisse blieben jedoch so "angenehm" wie falsche Pilze. Und dann stellte mir eines der Schulkinder eine Frage: "Und was hindert uns daran, ein Wörterbuch zu erstellen und nur das auszusprechen, was darin enthalten ist?"

Ja wirklich. Nachdenklich formulierte ich mit Schülern die endgültige Idee unseres Projekts: einen Roboter-Tutor der englischen Sprache. Unser Roboter kann immer noch nur Englisch (theoretisch könnte dies korrigiert werden), und ein Robotertutor, der mit einem Schüler / Schüler von Englisch übt, hat einen gewissen Zusammenhang mit der Realität. Nun, ich würde nicht auf einmal ablehnen. Darauf und blieb stehen.

Teamwork und das Ergebnis


Und dann kam der April. Oder März. Im Allgemeinen standen die Mai-Feiertage in der Nähe (mit Aktivitäten, die zu ihren Ehren abgesagt wurden), Kinder brachen immer wieder in die Olympischen Spiele ein, es tauchten Nachrichten über einige Robotik-Festivals auf, im Allgemeinen „der Winter ist nahe“, aber es gibt kein Projekt.

Zunächst haben wir den Algorithmus festgelegt: Taktile Kopfsensoren wählen die Spielstufe aus (entsprechend der Komplexität des Wörterbuchs), mit deren Hilfe das Spiel gestoppt werden kann; Der Roboter wählt zufällig ein Wort aus dem Wörterbuch aus, spricht es aus, nimmt Bilder von der oberen Kamera auf, erkennt den Text, analysiert ihn, prüft mit dem Wörterbuch, prüft mit dem gesprochenen Wort und nickt je nach Ergebnis positiv oder negativ mit dem Kopf.

Ich musste allen eine Aufgabe geben und mich freuen, dass in den ersten Klassen Github für Schüler geöffnet wurde. Zwei waren damit beschäftigt, Bewegungen von der grafischen Oberfläche zu exportieren (um uns nicht selbst zu schreiben) und sie zu bearbeiten, jemand schrieb einen zufälligen Auswahlcode, jemand schrieb ein Wörterbuch, und ich musste herumlaufen und es mir sagen, wenn es verstopfte. Nach einiger Zeit waren alle Abschnitte separat fertig, und es bleibt, sie miteinander zu verbinden. Diese Aufgabe wurde auch von einem der Studenten übernommen (mit dessen Pfosten wir uns mehrere Stunden hintereinander befassten, aber er war immer noch gut gemacht).

Ich werde nicht sagen, wie wir wegen dieser groben allgemeinen Version auf dem regionalen Festival der Robotik "geflogen" sind. Ich sage Ihnen besser, dass wir das Projekt bei Sh.U.T.T.R.I.K. eingereicht haben.Aus diesem Grund haben wir das Projekt abgeschlossen (4 Stunden volle Arbeit - und unsere Sensoren sind überhitzt, sodass Vision und Bewegungen in verschiedenen Videos wieder sichtbar wurden). Das Projekt wurde jedoch von S.U.ST.T.R.I.K.a übernommen, wie mir ein Freund sagte, der bei der Bekanntgabe der Ergebnisse in Tomsk anwesend war. Hurra.





Nun, heute war es auf der Ausstellung im Rahmen der Tage der Wissenschaft in Nowosibirsk endlich möglich, die Version zu debuggen und ein Video von allem zusammen aufzunehmen (kurze und schlechte Qualität, weil das Telefon).



Einige Studenten der Ausstellung (und dieses traurige Festival) mochten es jedoch sehr. Leider war es vielen peinlich, dass sie etwas nicht gehört und auf Englisch nicht verstanden hatten.

Bild

Zukunftspläne


Zuallererst: Beschleunigen Sie diese Version (bis jetzt machen wir einmal pro Sekunde ein Bild von der Kamera), machen Sie Karten mit Wörtern auf dem Karton (damit die Kinder sie nicht in ihren Händen biegen, wenn sie den Roboter zeigen), wiederholen Sie vielleicht die Implementierung und fügen Sie den Text in einige ein dann ein kontrastierender Rahmen, zum Beispiel rot; Bild drehen usw.

Nun, wenn wir das Projekt im nächsten akademischen Jahr fortsetzen (ich möchte), dann möchte ich ein russisch-englisches Wörterbuch erstellen, vielleicht Objektwörterbücher, vielleicht etwas anderes. Nicht die Tatsache, dass mit NAO.

Code, ohne die neueste Version, können Sie beobachten und schimpfen hier . Dort wird auch die neueste Version erscheinen, aber etwas später - wir arbeiten an Fehlern.

Literatur und Ausrüstung


- NAO-Roboter
- MacBook Pro
- Tesserwrap
- OpenCV Python
- Stackoverflow

All Articles