Human-Robot Joint Attention Computer Vision (Sehseminar) SS09, Universität Ulm Paul Schell∗ Zusammenfassung Gemeinsame Aufmerksamkeit auf das selbe Objekt. Ein Mensch lernt dies in seinen ersten 3 Lebesjahre und wendet das Erlernte sein Leben lang unbewusst an. Wie dieser Lernprozess bei einem Menschen funktioniert, kann man bis jetzt noch nicht genau sagen. Man kann aber mit Hilfe von verschiedenen Modellen, mit denen man an Robotern experimentiert, grob sagen, wie es bei einem Menschen sein könnte. Dieses Thema hilf also raus zu finden, wie ein Mensch so etwas erlernt, und gleichzeitig hat man einem Roboter beigebracht, die Interaktion zwischen Roboter und Menschen natürlicher zu gestalten. Keywords: joint attention, visual attention 1 Abbildung 2.1: Roboter Aufbau und Steuerung der Kamera, [Yukie Nagai 2003]. Einleitung Übersetzt heißt ”Human-Robot Joint Attention” soviel wie ”Gemeinsame Aufmerksamkeit zwischen Roboter und Menschen”. Die Aufmerksamkeit richtet sich hier auf ein Objekt. Es könnte ein Objekt von mehreren sein der gefunden werden muss. Grob gesagt heißt es, der Roboter soll das selbe Objekt anschauen, welches auch sein Interaktionspartner, hier der Mensch, gerade ansieht. Wie auch bei vielen anderen Themen, so auch hier, kommt man auf dieses Thema durch die Natur. In diesem Fall ist es der Mensch, der in den ersten 3 Lebensjahren dieses erlernt und unbewusst sein Leben lang anwendet. Wozu braucht man das überhaupt? Die Antwort ist einfach. Man möchte die Interaktion zwischen einem Roboter und einem Menschen so natürlich wie möglich machen, und dazu muss der Roboter die ”Gemeinsame Aufmerksamkeit” beherrschen, was bei einem Menschen selbstverständlich ist. 2 Roboter und die Kamera-Steuerung Aus was so ein Roboter besteht kann man grob der Abbildung 2.1 entnehmen. Um die Kamera des Roboters zu Steuern braucht man zwei Motoren wobei ein Motor die Kamera hoch und runter bewegt mit einem bestimmten Winkel ∆θtilt , und der andere Motor die Kamera um ihre Achse dreht mit dem Winkel ∆θ pan . Der Roboter berechnet ein Vektor mit zwei Werten für die Motorsteuerung ∆θ = [∆θ pan , ∆θtilt ] die von den Bildern I und der aktuellen Motordrehung θ = [θ pan , θtilt ] abhängen. 3 Modell der Joint Attention Man versuchte das Problem mit vielen verschiedenen Modellen zu lösen. Ein von denen wurde von Yukie Nagai vogeschlagen. Der Aufbau dieses Modells kann man an der Abbildung 3.1 sehen. ∗ e-mail: [email protected] Abbildung 3.1: Übersicht über den Aufbau des Modells von Joint Attention und LernModul mit Selbst-Evaluierung, [Yukie Nagai 2003]. Dieses Modell besitzt einen Lern-Mechanismus mit SelbstEvaluierung. Dies bedeutet, dass das Modell selber erkennt, ob nach einer Interaktion das richtige Objekt angesehen wurde und somit automatisch mit jeder Interaktion immer mehr dazu lernt und danach genauer arbeitet. Das Modell besteht aus Modulen die weiter unten genauer erläutert werden. 3.1 Visual Attention Visual Attention“ extrahiert auffällige Objekte aus Bild” Informationen. Die Bild-Informationen kommen von der Kamera des Roboters. Dieses Modul besteht aus ”salient feature detector” und einem ”visual feedback controller”. 3.1.1 Salient feature detector Salient feature detector“ sucht im Bild nach auffälligen Merkma” len und ordnet diese Objekten zu. Die Suche wird mit Hilfe von verschiedenen Detektoren ausgeführt. 1. color1 : Suche von ähnlichen Farben im Bild Wert: Die Größe der Flächen von ähnlichen Farben. 2. edge2 : Suchen nach Kanten im Bild Wert: Die Komplexität der Kanten. 3. motion3 : Suche nach Bewegungsinformation in Bildern Wert: Die Bewegungsstärke. 4. face4 : Suchen nach dem Gesicht der Interaktionsperson 3.2.1 Internal evaluator Internal evaluator“ berechnet die Entfernung des Camerabildmit” telpunktes zum gesuchten Objekt und bestimmt mit Hilfe eines Schwellwertes dth ob das Objekt durch den vom Learning module“ ” berechneten Motorbefehl richtig erfasst wurde: p (xi − cx)2 + (yi − cy)2 < dth Internal Evaluator“ sagt aus ob ein Objekt gefunden und angese” hen wurde, also ob Visual attention“ 5 erfolgreich verlaufen ist. ” Den Erfolg von Joint Attention“ 6 , also ob dieses Objekt auch ” von der Interaktionsperson angesehen wird, kann mit diesem Modul nicht bestimmt werden. Wert: Keins Diese Detektoren liefern jeweils eine gefundene Anzahl an Objekten (i = 1, ..., n) und deren Werte. 3.2.2 Danach wird das interessanteste Objekt itrg bestimmt, indem die Summe der Werte aller Detektoren für jedes Objekt vergleicht und das Objekt mit dem höchsten Wert ausgewählt wird: Learning module“ besteht aus einem Neuronalen Netz mit drei ” Schichten (Abbildung 3.2). Es bekommt als Eingabe ein Bild vom Gesicht der Interaktionsperson und die aktuellen Winkel der Motoren der Kamera θ . edg itrg = argmaxi (αc ficol + αe fi + αm fimot ) Die Alphas sind Konstanten, welche für die Gewichtung der verschiedenen Detektoren dienen. Die fi sind die verschiedenen Werte der einzelnen Detektoren für alle Objekte. Gleichzeitig sucht der ”face”-Detektor nach Gesichtern im Bild und vergleicht diese mit gespeicherten Mustern anhand deren die grobe Richtung des Blickes bestimmt wird welche später für einen Zusammenhang zwischen Blickrichtung und Drehrichtung der Kamera steht. Diese extrahierten Informationen werden an den ”visual feedback controller” und an das ”learning module” weiter geschickt. 3.1.2 Learning module Die Ausgabe ist ein Motorbefehl LM ∆θ der zum Gate“ weiter ge” geben wird. Der Lernprozess wird durch den Internal evaluator“ gesteuert. Das ” Lernen erfolg mit Hilfe von Backpropagation7 . Da der Internal evaluator“ nur den Erfolg von Visual attention“ ” ” bestimmt, aber nicht den Erfolg von Joint Attention“, liefert er ” auch bei nicht erfolgreicher Joint Attention“ ein JA“ zurück. Das ” ” bedeutet, dass der Lernprozess auch falsche Daten speichern wird. Dies kann man verhindern, indem man den Zusammenhang zwischen dem Blick der Interaktionsperson und dem gefundenen Objekt überprüft. Bei erfolgreicher Joint Attention“ existiert ein Zu” sammenhang, so erfolgt das Lernen. Bei nicht erfolgreicher Joint ” Attention“ existiert kein Zusammenhang, so wird der Lernprozess nicht ausgeführt. Visual feedback controller Dieses Modul bekommt die Merkmale des ausgewählten Objekts itrg und generiert den Befehl für die Motorsteuerung. Zuerst wird die Position des Objekts im Bild bestimmt (xi , yi ) und danach der Befehl für die Motorsteuerung V F ∆θ berechnet: VF ∆θ pan V F ∆θ = = g xyii −cx V F ∆θ −cy tilt Hier ist g ein Skalar für die Verstärkung der Motorbefehle und (cx, cy) ist das Zentrum des Kamerabildes. Der berechnete Befehl für die Motorsteuerung V F ∆θ wird an das Gate“ Modul geschickt. ” 3.2 Learning with self-evaluation Learning with self-evaluation“ ist für das automatische Lernen der ” Joint Attention“ zuständig. ” Dieses Modul besteht aus Learning module“ und Internal evalua” ” tor“. 1 Farb-Detektor 2 Kanten-Detektor 3 Bewegungs-Detektor 4 Gesichts-Detektor Abbildung 3.2: Lern Modul - Lernt mit Hilfe von Backpropagation, [Yukie Nagai 2003]. 3.2.3 Gate Das Gate“ Modul wählt einen Motorbefehl von V F ∆θ und LM ∆θ ” aus der dann ausgeführt wird. 5 Visuelle Aufmerksamkeit Aufmerksamkeit 7 Das Lernen wird ausgeführt, indem das Ist-Ergebnis mit einem SollErgebnis verglichen und der Fehler bestimmt wird. Dieser Fehler wird zurück durch das Neuronale Netz geschickt und somit werden die zugehörigen Gewichte im Netz angepasst. Danach sollte bei gleicher Eingabe der Fehler kleiner sein. [Wik a] 6 Gemeinsame Die Auswahl erfolgt mit Hilfe einer Funktion, in diesem Fall ist es die Sigmoid“ 8 Funktion. ” Am Anfang ist die Wahrscheinlichkeit höher, dass der Motorbefehl von Visual feedback controller“ V F ∆θ ausgewählt wird als der ” von Learning module“ LM ∆θ . Mit immer mehr Inteaktionen ändert ” sich diese Wahrscheinlichkeit, bis es soweit ist, dass zum größten Teil nur die Motorbefehle von Learning module“ ausgewählt wer” den. Dies macht man deshalb so, da am Anfang der Learning module“ ” noch nicht richtig ausgereift ist, und somit die Motorbefehle von Visual feedback controller“ genauer sind als die von Learning ” ” module“. Da aber die Genauigkeit vom Learning module“ mit der ” Anzahl an Interaktionen steigt, wird dessen Motorbefehl auch immer öfter ausgewählt. 3.2.4 Vorgang einer Interaktion Wie läuft eine Interaktion ab wird hier in kürze erklärt: 1. Der Roboter schaut auf die Interaktionsperson welche ein Objekt ansieht. Die Eingangsdaten hier sind I und θ . 2. Wenn ein auffälliger Objekt sich in I befindet. Wird dieser durch den Salient feature detector“ gefunden und ein Motor” befehl V F ∆θ berechnet um die Kamera zum Objekt zu drehen. 3. Zur gleichen Zeit wird ein anderer Motorbefehl LM ∆θ von dem Learning module“ bestimmt. ” 4. Gate“ wählt jetzt anhand von der Auswahlrate zwischen ”F V ∆θ und LM ∆θ . Ein Motorbefehl wird bestimmt ∆θ =V F ∆θ oderLM ∆θ Abbildung 4.1: Erweiterung des Modells, [Nagai 2005]. • Image feature detector“ ” • Learning module“ ” • Coordinator“ ” 4.1 Image feature detector Image feature detector“ extrahiert Merkmale aus den Bildern. ” Um die Motorsteuerung aus dem statischen Bild zu bestimmten, benutzt man hier die Kantendetektion, was eine Änderung zum oberen Modell ist. Die gefundenen Kanten edge image“ E (Abbildung ” 4.2) werden an den Learning module“ geschickt und dort in Mo” torbefehl umgewandelt. 5. Nachdem sich die Kamera gedreht hat, wird bestimmt ob ein Objekt in der Mitte des Kamerabildes sich befinden, und mit Hilfe von Internal evaluator“ wird der Learning module“ be” ” arbeitet. 6. Der Roboter lernt jetzt die Koordination im Learning modu” le“ mit Hilfe von Backpropagation anhand von dem Motorbefehl ∆θ . Dies geschieht aber nur, wenn ein Objekt in der Mitte des Kamerabildes ist. 7. Wiederhole die oberen Schritte 4 Erweiterung des Modells Eine Erweiterung des oben beschriebenen Modells ist diese mit Bewegungsinformation des Gesichtes der Interaktionsperson auszustatten. Im oberen Modell hat man zwar die Bewegungsinformation mit dem motion-Detektor“ genutzt, diese galt aber nur für die Suche ” nach Objekten. Jetzt nutzt man die Bewegungsinformation des Gesichtes der Interaktionsperson um sofort entscheiden zu können wie sich die Kamera drehen soll und in die selbe Richtung zu schauen in die auch die Interaktionsperson sich gedreht hat. Diese Erweiterung beschleunigt das Lernen in der Anfangsphase und verbessert die Genauigkeit des Learning modules“. ” Die Erweiterung betrifft nur das Learning module“ des oberen Mo” dells (Abbildung 4.1) Diese Erweiterung besteht aus zwei Modulen: 8 P(t) = 1 1−e−t [Wik b] Abbildung 4.2: Kantenbild, die Farben entsprechen hier den verschiedenen Richtungen der Kantendetektion. Hier wurden vier Richtungen gewählt, [Nagai 2005]. Die Erweiterung hier ist die Auswertung der Bewegungsinformation (Abbildung 4.3) des Gesichtes. Die Bewegungsinformation wird ähnlich dem MPEG Verfahren ermittelt. Man teilt das Bild in kleine Blöcke, und vergleicht die Blöcke zwischen aufeinander folgenden Bildern. So wird für jeden Block bestimmt, in welche Richtung und wie weit sich dieser Block bewegt hat optical flow“ F, indem man ” jeden Block im nächsten Bild sucht. In diesem Paper [Nagai 2005] benutzt man jedes 10 Bild für diese Berechnung. Abbildung 4.3: Bewegungsinformationen, die Farben entsprechen hier den verschiedenen Richtungen der Bewegung. Hier hat man 8 Bewegungsrichtungen, [Nagai 2005]. 4.2 Learning module Learning module“ bekommt die im Image feature detector“ be” ” rechneten Daten und berechnet aus diesen Motorbefehle. Für statisches Bild sowie für die Bewegungsinformation werden jeweils eigene Motorbefehle E ∆θ und F ∆θ berechnet welche dann an den Coordinator“ geschickt werden. ” Der Teil für die statischen Bilder besteht aus einem drei schichtigem neuronalem Netz. (Abbildung 4.4) abläuft, kann ich jetzt nicht sagen, aber es wird daran weiter geforscht, und mit den heutigen Prozessoren kann man es sich leisten die Modelle mit weiteren Bildverarbeitungs Verfahren auszustatten um die Genauigkeit der Joint Attention“ zu erhöhen. ” Literatur NAGAI , Y. 2005. The Role of Motion Information in Learnung Human-Robot Joint Attention. National Institute of Information and Communications Technology. Backpropagation http: // de. wikipedia. org/ wiki/ Backpropagation . Wikipedia. Sigmoidfunktion http: // de. wikipedia. org/ wiki/ Sigmoidfunktion . Wikipedia. Y UKIE NAGAI , KOH H OSODA , A. M. M. A. 2003. A constructive model for the development of joint attention. A K Peters, Ltd. Abbildung 4.4: Verarbeitung des Kantenbildes, [Nagai 2005]. Bewegungsinformationen werden von einem zwei schichtigem neuronalem Netz verarbeitet. (Abbildung 4.5) Abbildung 4.5: Verarbeitung der Bewegungsinformationen, [Nagai 2005]. Diese beiden neuronale Netze sind unabhängig von einander. 4.3 Coordinator Der Coordinator“ berechnet hier den Motorbefehl ∆θ indem er den ” Mittelwert der Motorbefehle von E ∆θ und F ∆θ bildet. 5 Fazit Wie man hier erkennen kann, ist es möglich mit einfachen Mitteln der Bildverarbeitung den Roboter dazu zu bringen dem Menschlichen Blick zu folgen und ein entsprechendes Objekt zu finden. Getestet wurden diese Verfahren in einer konstruierten Umgebung und mit nur einer Interaktionsperson. In dieser Umgebung funktionierte dieses Modell gut. Wie dies aber in einer realen Umgebung