視線認識を利用したターンテイキング
会話でシステムがいつ喋るべきかを決めることが案外難しい問題だということは, “言語・韻律情報による柔軟なターンテイキング” の紹介でも説明しました.喋る順番を決めるためのヒントは,音声だけに含まれているわけではありません.人と人が面と向かって話をする際には,身振り手振り,頭の動き,視線の動きなどを使って,(意図的かどうかは別として)視覚的に様々な情報を伝達しています.
ターンテイキングにおいては,視線の動きが重要であることが分かっています.一通りのことを喋り終わった時の,喋った人の視線の位置に着目してみましょう.視線の先に他の会話の参加者がいれば,少なくともその人に向かって喋っているということが考えられますが,さらに言えばその人に喋って欲しい(発話権を渡したい)という意志の表明と捉えることもできます.逆に,視線の先に会話の参加者がいない,つまり視線をそらしている場合は,喋っている人がまだ喋り続けようとしているということの表明と捉えられます.
そこで,ロボットの目に取り付けられたカメラから得られるユーザの顔画像を処理し,視線を認識することで,ロボットに視線が向けられていればシステムが喋る番,そうでなければシステムはユーザの更なる発話を待つ,といったシステムを構築しました.顔の姿勢はAAM(Active Appearance Models)という顔のモデルをフィッティングさせて推定し,そこから得られる目の部分画像からカメラに向かって視線が向いているか否かを認識しています.
頭部ジェスチャ認識
頷く,首を傾げる,首を横に振る,といった動作を頭部ジェスチャと呼びます.これらの動作も,やはり意識的かどうかということは別となりますが,会話中の人の意志を伝達する役割を果たします.頷くことは相手の言っていることを理解している,あるいは意見に賛成である,といった肯定的な意志を伝達しますし,首を傾げたり横に振ったりすることは,理解をしていない,意見に反対である,といった否定的な意志を伝達するものと考えられます.
そこで,画像から頭部ジェスチャを認識する仕組みを実現しました.頭部ジェスチャ認識は,頭部の動きを認識しなければなりませんから,特徴量や認識手法も動的な情報をうまく扱えるものを選ばなければなりません.そのため,特徴量はオプティカル・フローと呼ばれる画像中の画素の動きを表すものを使って計算されたもの用い,認識のための確率モデルとしては音声認識で広く用いられている隠れマルコフモデル(HMM; Hidden Markov Model)を利用することにしました.オプティカル・フローは,画素の動きを捉えるのに適した値ですが,ロボットのように動くものに取り付けられたカメラで撮影した映像では,カメラ自身が動いてしまうため,多くのノイズを含んでしまいます.ロボット頭部の動きをロボット制御のプログラムから取得し,その情報にしたがって確率モデルを切り替えることで,動きによるノイズに頑健な認識を実現することができました.
関連する研究業績
- Shinya Fujie, Toshihiko Yamahata, and Tetsunori Kobayashi, “Conversation robot with the function of gaze recognition,” Proc. 2006 IEEE-RAS Int’l Conf. on Humanoid Robots, Humanoids 2006, pp.364-369, Dec. 2006.
- 中島 慶,江尻 康,藤江真也,小川哲司,松坂要佐,小林哲則,”対話ロボットの動作に頑健な頭部ジェスチャ認識,” 電子情報通信学会論文誌(D),vol.J89-D,no.7,pp.1514-1522,2006.