以下、図面を参照してこの発明に係わる実施形態を説明する。
[第1の実施形態]
(構成)
図1は、この発明の第1の実施形態に係る、通行者の検出に応じて当該通行者に対して画像情報または音声情報を出力する情報出力装置1の一例を示す図である。
情報出力装置1は、例えば、通行者に画像情報または音声情報を出力してサービスの利用を呼び掛けるバーチャルロボットインタラクティブサイネージ等である。図1では、情報出力装置1、顔認識センサ2、距離測定センサ3、ディスプレイ4、およびスピーカ5が一体となっている例を図示しているが、これらの各々は別個の装置として分離されていてもよく、また、これらのうちの任意の組み合わせが一体となっていてもよい。
情報出力装置1は、例えばカメラ等である顔認識センサ2から、通行者に係る顔向きデータを経時的に取得する。また、情報出力装置1は、例えば超音波距離センサや赤外線距離センサ等である距離測定センサ3から、情報出力装置1と通行者との間の距離データを経時的に取得する。当該取得される顔向きデータおよび距離データに基づいて、情報出力装置1は、画像情報または音声情報を出力するか否かを判定する。そして、出力すると判定された場合に、画像情報および音声情報をそれぞれディスプレイ4およびスピーカ5を用いて出力する。
さらに、情報出力装置1は、画像情報または音声情報の出力期間中または出力期間後に、上記顔向きデータおよび距離データに基づいて、当該画像情報または音声情報の出力による呼び掛けが成功したか否かを判定する。
図2は、図1に示した情報出力装置1の機能構成を示すブロック図である。
情報出力装置1は、ハードウェアとして、制御ユニット11と、記憶ユニット12と、入出力インタフェースユニット13とを備えている。
入出力インタフェースユニット13は、例えば1つ以上の有線または無線の通信インタフェースユニットを含んでいる。入出力インタフェースユニット13は、顔認識センサ2から、通行者に係る顔向きデータを取得し、距離測定センサ3から、情報出力装置1と通行者との間の距離データを取得し、当該取得される顔向きデータおよび距離データを制御ユニット11に出力する。また、入出力インタフェースユニット13は、制御ユニット11から出力される画像情報および音声情報をそれぞれディスプレイ4およびスピーカ5に出力する。
記憶ユニット12は、記憶媒体として例えばHDD(Hard Disc Drive)またはSSD(Solid State Drive)等の随時書き込みおよび読み出しが可能な不揮発メモリを使用したもので、本実施形態を実現するために、頭状態ログテーブルH記憶部121と、体状態ログテーブルB記憶部122と、対象別ログテーブル記憶部123と、行動価値テーブル記憶部124とを備えている。
頭状態ログテーブルH記憶部121は、頭状態ログテーブルHを記憶している。頭状態ログテーブルHは、顔認識センサ2から取得される、1以上の通行者に係る顔向きデータを記憶する。
体状態ログテーブルB記憶部122は、体状態ログテーブルBを記憶している。体状態ログテーブルBは、距離測定センサ3から取得される、情報出力装置1と1以上の通行者との間の距離データを記憶する。
対象別ログテーブル記憶部123は、通行者別に顔向きデータと距離データとを統合した、通行者別の1以上の対象別ログテーブルを記憶させるために使用される。
行動価値テーブル記憶部124は、行動価値テーブルを記憶している。行動価値テーブルは、1以上の通行者の各々に対応して、情報出力装置1への当該通行者の注視状態および情報出力装置1と当該通行者との近接状態と、当該注視状態および近接状態の組み合わせに対応付けられた画像情報または音声情報を出力する複数種類の動作と、当該各動作の行動価値の値とを記憶する。
制御ユニット11は、CPU(Central Processing Unit)等のハードウェアプロセッサと、プログラムメモリとを備え、本実施形態における処理機能を実行するために、顔向きデータ取得部111と、距離データ取得部112と、対象別ログテーブル生成部113と、注視判定部114と、近接判定部115と、出力制御部116と、呼び掛け成否判定部117と、行動価値テーブル初期化部118と、行動価値テーブル更新部119とを備えている。これらの各部における処理機能はいずれも、プログラムメモリに格納されたプログラムを上記ハードウェアプロセッサに実行させることによって実現される。
顔向きデータ取得部111は、入出力インタフェースユニット13を介して顔認識センサ2から、1以上の通行者に係る顔向きデータを経時的に取得し、取得された顔向きデータを、頭状態ログテーブルHに書き込む処理を実行する。
距離データ取得部112は、入出力インタフェースユニット13を介して距離測定センサ3から、情報出力装置1と1以上の通行者との間の距離データを経時的に取得し、取得された距離データを、体状態ログテーブルBに書き込む処理を実行する。
対象別ログテーブル生成部113は、先ず、頭状態ログテーブルHおよび体状態ログテーブルBから、顔向きデータおよび距離データを読み出す。そして、対象別ログテーブル生成部113は、通行者別に顔向きデータと距離データとを統合して、通行者別の1以上の対象別ログテーブルをそれぞれ生成し、生成された1以上の対象別ログテーブルを、記憶ユニット12の対象別ログテーブル記憶部123に記憶させる処理を実行する。
注視判定部114は、記憶ユニット12の対象別ログテーブル記憶部123から、通行者別の1以上の対象別ログテーブルを読み出す。そして、注視判定部114は、上記読み出された通行者別の1以上の対象別ログテーブルに記憶される顔向きデータに基づいて、1以上の通行者の各々に対して、当該通行者の顔が情報出力装置1を含む所定の範囲を向いている時間が第1の時間以上であるか否かを判定する処理を実行して、1以上の通行者の注視状態を判定する。
近接判定部115も、記憶ユニット12の対象別ログテーブル記憶部123から、通行者別の1以上の対象別ログテーブルを読み出す。そして、近接判定部115は、上記読み出された通行者別の1以上の対象別ログテーブルに記憶される距離データに基づいて、1以上の通行者の各々に対して、情報出力装置1から所定の距離内に当該通行者が存在する時間が第2の時間以上であるか否かを判定する処理を実行して、1以上の通行者の近接状態を判定する。
出力制御部116は、上記行動価値テーブルを参照し、1以上の通行者の各々に対する注視判定部114および近接判定部115における判定結果に基づいて、行動価値テーブルに記憶される動作の中から情報出力装置1が実行する動作を選択することによって、画像情報または音声情報を出力するか否かを判定する。そして、出力制御部116は、画像情報または音声情報を出力すると判定された場合に、当該画像情報または音声情報を、入出力インタフェースユニット13を介してディスプレイ4またはスピーカ5から出力させる処理を実行する。
呼び掛け成否判定部117は、画像情報または音声情報の出力期間中または出力期間後に注視判定部114および近接判定部115により得られる判定結果に基づいて、当該画像情報または音声情報の出力による通行者への呼び掛けが成功したか否かを判定する処理を実行する。
行動価値テーブル初期化部118は、記憶ユニット12の行動価値テーブル記憶部124に記憶される行動価値テーブルを初期化する処理を実行する。
行動価値テーブル更新部119は、呼び掛け成否判定部117における判定結果に基づいて、行動価値テーブルにおける、出力制御部116において選択された動作の行動価値の値を増加または減少させる処理を実行する。
(動作)
次に、以上のように構成された情報出力装置1の動作を説明する。
(1)計測データの具体例
先ず、情報出力装置1において取得される顔向きデータおよび距離データについて説明する。
図3は、図1に示した距離測定センサ3によって取得される距離データの一例を示す図である。なお、世界座標系の基準軸として、例えば、情報出力装置1のディスプレイ4上に距離測定センサ3が設置されている位置からディスプレイ4の平面に沿って右側へ向かう方向を正の向きとするX軸、ディスプレイ4の平面に沿って下側へ向かう方向を正の向きとするY軸、および、ディスプレイ4の平面から垂直にディスプレイ4の正面方向へ向かう方向を正の向きとするZ軸を用いる。
図3に示されるように、情報出力装置1は距離測定センサ3から、距離データとして、時刻tと、Y軸を中心としてX軸の正の向きから通行者の中心座標の方向までの角度θpと、ディスプレイ4上の距離測定センサ3が設置されている位置と通行者の中心座標との間の距離Rpとを取得する。距離測定センサ3による距離データの計測は、定期的にまたは不定期に継続して実行される。
図4は、図1に示した顔認識センサ2によって取得される顔向きデータの一例を示す図である。なお、顔認識センサ2は、例えば、撮像素子を平面上に並べたものであり、当該撮像素子が並ぶ平面が上記Z軸と垂直となるように設置されているとする。
図4の(a)は、顔認識センサによって撮影可能な画角θcを図示している。図4の(b)は、顔認識センサ2によって撮影される、画像の幅の大きさWと、撮影画像の左上の点を基準とした顔検出枠の左上の座標(x,y)と、顔検出枠の幅の大きさwとを図示している。なお、当該大きさおよび座標は、例えばピクセル単位である。図4の(c)は、通行者の中心座標を通りY軸に平行な直線を中心として、上記X軸の正の向きから通行者の顔の正面方向までの角度θhを図示している。なお、θhは、通行者の顔がディスプレイ4と反対の側を向いている場合に正の値、通行者の顔がディスプレイ4側を向いている場合には負の値とする。
情報出力装置1は、顔認識センサ2によって撮影される画像から、顔向きデータとして、時刻tと、顔検出枠の左上の座標(x,y)と、顔検出枠の幅の大きさwと、角度θhとを取得する。
(2)画像情報または音声情報を出力する動作の具体例
次に、情報出力装置1によって画像情報または音声情報を出力する各動作について説明する。
図5は、図1に示した情報出力装置1が通行者の検知に応じて実行可能な、画像情報または音声情報を出力する動作の一例を示す図である。図5は、情報出力装置1が実行可能な3種類の動作a1,a2,a3を図示している。
動作a1は、ディスプレイ4に、手招きをしながら誘導する人の画像情報を出力し、スピーカ5から、「こちらへどうぞ」という呼び掛けの言葉に対応する音声情報を出力する動作である。
動作a2は、ディスプレイ4に、手招きをしながら誘導する人の画像情報を出力し、スピーカ5から、「こちらに来てください」という呼び掛けの言葉に対応する音声情報と、通行者の注意を引くための効果音に対応する音声情報とを出力する動作である。なお、効果音に対応する音声情報の音量は、例えば、呼び掛けの言葉に対応する上述した2種類の音声情報の音量よりも大きい。
動作a3は、ディスプレイ4に、待機する人の画像情報を出力する動作である。
(3)情報出力装置1が行動価値テーブルを初期化する動作
図6は、図2に示した情報出力装置1の制御ユニット11によって実行される行動価値テーブル初期化処理の一例を示すフロー図である。
情報出力装置1は、行動価値テーブルに基づいて、画像情報または音声情報を出力する動作を選択する。行動価値テーブルは、1以上の通行者の各々に対応して、情報出力装置1への当該通行者の注視状態および情報出力装置1と当該通行者との近接状態と、当該注視状態および近接状態の組み合わせに対応付けられた画像情報または音声情報を出力する複数種類の動作と、当該各動作の行動価値の値とを記憶する。
先ず、ステップS101において、制御ユニット11は、行動価値テーブル初期化部118の制御の下、記憶ユニット12の所定の設定記憶領域にアクセスして、行動価値テーブルの初期化フラグflagが不定値であるか否かを判定する。初期化フラグflagが不定値であると判定された場合には、行動価値テーブルを初期化するためにステップS102からステップS105までの処理が実行される。
ステップS102において、制御ユニット11は、行動価値テーブル初期化部118の制御の下、記憶ユニット12の所定の設定記憶領域にアクセスして、計測人数の最大値Nとして例えば20を書き込む。これにより、情報出力装置1が取得する顔向きデータおよび距離データから得られる通行者の計測人数が20人となるまで、行動価値テーブルは対応できるものとなる。
ステップS103において、制御ユニット11は、行動価値テーブル初期化部118の制御の下、記憶ユニット12の所定の設定記憶領域にアクセスして、学習回数ベクトルKの各要素の値として例えば5を書き込む。なお、K={K1,K2,・・・,KN}であり、K1は、計測人数が1のときに使用する学習回数を示すものであり、K2は、計測人数が2のときに使用する学習回数を示すものであり、以下同様である。当該学習回数ベクトルKの各要素は、例えば、行動価値テーブル更新部119の制御下で行動価値テーブルを更新させる際に、行動価値の値を増減させる尺度を定めるものである。例えば、学習回数ベクトルKの各要素の値が増加するにつれ、行動価値テーブルが更新される際の行動価値の値の増減は小さいものとなる。
ステップS104において、制御ユニット11は、行動価値テーブル初期化部118の制御の下、行動価値テーブルにおける行動価値の値Qを初期化する。当該初期化は、例えば記憶ユニット12に記憶される初期化データに基づいていてもよい。
ステップS105において、制御ユニット11は、行動価値テーブル初期化部118の制御の下、記憶ユニット12の所定の設定記憶領域にアクセスして、行動価値テーブルの初期化フラグflagにTrueを書き込む。当該行動価値テーブルの初期化フラグflagがTrueであることは、行動価値テーブルが既に初期化されていることを示す。
(4)情報出力装置1が通行者を検知して通行者の状態を判定する動作
以下では、情報出力装置1の動作を、図7および図8に示すフロー図を用いて、図9から図14に示すログテーブルの例を参照しながら説明する。
図7は、図2に示した情報出力装置1の制御ユニット11によって実行される計測値取得処理の一例を示すフロー図である。
先ず、ステップS201において、制御ユニット11は、頭状態ログテーブルHと体状態ログテーブルBをそれぞれ初期化する。
次に、ステップS202において、制御ユニット11は、現在時刻t´を取得し、記憶ユニット12の所定の領域に記憶させる。
ステップS203において、制御ユニット11は、顔向きデータ取得部111の制御の下、顔認識センサ2から、1以上の通行者に係る顔向きデータとして、例えば、計測値t,m,x,y,w,θhを取得する。計測値mは、同時刻に複数の通行者に係る顔向きデータが取得される場合に、mの値によって計測値x,y,w,θhのパラメータセットを通行者別に区分けして記憶させておくための指標であり、以下でも同様である。
ステップS204において、制御ユニット11は、顔向きデータ取得部111の制御の下、取得される計測値t,m,x,y,w,θhを、頭状態ログテーブルH記憶部121に記憶される頭状態ログテーブルHに行を追加して書き込む。なお、図9に、頭状態ログテーブルH記憶部121に記憶される頭状態ログテーブルHの一例を示している。
一方、ステップS205において、制御ユニット11は、距離データ取得部112の制御の下、距離測定センサ3から、情報出力装置1と1以上の通行者との間の距離データとして、例えば、計測値t,m,Rp,θpを取得する。
ステップS206において、制御ユニット11は、距離データ取得部112の制御の下、取得される計測値t,m,Rp,θpを、体状態ログテーブルB記憶部122に記憶される体状態ログテーブルBに行を追加して書き込む。なお、図10に、体状態ログテーブルB記憶部122に記憶される体状態ログテーブルBの一例を示している。
ステップS203およびステップS204における処理と、ステップS205およびステップS206における処理は、定期的にまたは不定期に継続して実行される。
ステップS207において、制御ユニット11は、時刻t´から現在時刻tまでに経過した時間であるt−t´が、所定の時間Tより大きいか否かを判定する。経過時間t−t´がTを越えていない場合、ステップS203およびステップS205の計測値取得処理が継続される。経過時間t−t´がTを越えている場合には、図8に示す、通行者別に顔向きデータと距離データとを統合した、通行者別の1以上の対象別ログテーブルを生成し、当該対象別ログテーブルに基づいて通行者の状態を判定する処理が実行される。なお、人間が視覚刺激を認知し反応する時間Taは約200ミリ秒であると知られているが、上記所定の時間Tとして、例えば、Taより長い時間である0.5秒程度の時間を用いる。
図8は、図2に示した情報出力装置1の制御ユニット11によって実行されるユーザ状態判定処理の一例を示すフロー図である。
先ず、ステップS301において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH記憶部121に記憶される頭状態ログテーブルHを読み出し、読み出された頭状態ログテーブルHにidH列を付与する。当該idH列の付与では、計測値t,m,x,y,w,θhの各パラメータセットに対して、同一の通行者のパラメータセットには同一のidH値が付与され、異なる通行者のパラメータセットには異なるidH値が付与される。
ステップS302において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、体状態ログテーブルB記憶部122に記憶される体状態ログテーブルBを読み出し、読み出された体状態ログテーブルBにidB列を付与する。当該idB列の付与では、計測値t,m,Rp,θpの各パラメータセットに対して、同一の通行者のパラメータセットには同一のidB値が付与され、異なる通行者のパラメータセットには異なるidB値が付与される。なお、ステップS301における処理と、ステップS302における処理は、任意の順序で実行してよい。
次に、ステップS303において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、idH列が付与された頭状態ログテーブルHと、idB列が付与された体状態ログテーブルBとの間でマッチングを実行し、同一の通行者を示しているidH値とidB値との対応付けをする。
ステップS304において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルHにidH列が付与された頭状態ログテーブルH´と、体状態ログテーブルBにidB列が付与された体状態ログテーブルB´とにおいて、idH値とidB値との上記対応付けに基づいて、idH値およびidB値と置き換えて、同一の通行者のパラメータセットには同一の値のidM値を付与し、異なる通行者のパラメータセットには異なる値のidM値を付与し、頭状態ログテーブルH´´と体状態ログテーブルB´´とを生成する。その後、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH´´と体状態ログテーブルB´´とを組み合わせて、統合ログテーブルMを生成する。
図11に、図9に示した頭状態ログテーブルHから生成された頭状態ログテーブルH´´の一例を示しており、図12に、図10に示した体状態ログテーブルBから生成された体状態ログテーブルB´´の一例を示している。なお、図11に示す頭状態ログテーブルH´´にはRp列とθp列が値をすべてNAで埋めて追加されており、図12に示す体状態ログテーブルB´´にはx列、y列、w列、θh列が値をすべてNAで埋めて追加されている。また、図13に、図11に示した頭状態ログテーブルH´´と図12に示した体状態ログテーブルB´´とを組み合わせて生成された統合ログテーブルMの一例を示している。
ステップS305において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、統合ログテーブルMをidM値を基準に分割して、通行者別に顔向きデータと距離データとを統合した、通行者別の1以上の対象別ログテーブルM1,M2,・・・を生成し、生成された1以上の対象別ログテーブルM1,M2,・・・を対象別ログテーブル記憶部123に記憶させる。なお、図14に、図13に示した統合ログテーブルMから生成された対象別ログテーブルM1,M2の一例を示している。
最後に、ステップS306において、制御ユニット11は、注視判定部114の制御の下、対象別ログテーブル記憶部123に記憶される1以上の対象別ログテーブルM1,M2,・・・を読み出し、読み出された1以上の対象別ログテーブルM1,M2,・・・に記憶される顔向きデータに基づいて、idM値に対応する通行者毎に、当該通行者の顔が情報出力装置1を含む所定の範囲を向いている時間が第1の時間以上であるか否かを判定する注視判定処理を実行する。また、制御ユニット11は、近接判定部115の制御の下、対象別ログテーブル記憶部123に記憶される1以上の対象別ログテーブルM1,M2,・・・を読み出し、読み出された1以上の対象別ログテーブルM1,M2,・・・に記憶される距離データに基づいて、idM値に対応する通行者毎に、情報出力装置1から所定の距離内に当該通行者が存在する時間が第2の時間以上であるか否かを判定する近接判定処理を実行する。
(5)注視判定処理および近接判定処理の具体例
上述したように、通行者の状態は、注視判定処理と近接判定処理によって2種類の観点で判定される。すなわち、通行者の状態“s
id”は、近接判定処理の判定結果“isNear(M
id)”と、注視判定処理の判定結果“isLooking(M
id)”とにより次式で表される。
図15は、図8のステップS306において実行される近接判定処理の一例を示す図である。
上述したように、当該近接判定処理は、距離測定センサ3から取得され通行者別に対象別ログテーブルM1,M2,・・・のいずれかに記憶される距離データに基づいて、idM値に対応する通行者毎に、情報出力装置1から所定の距離内に当該通行者が存在する時間が第2の時間以上であるか否かを判定する処理である。
上記所定の距離RBとして、例えば、ロボットと人間における個人的距離と社会的距離の境目として知られている100cmを用いてもよい。また、上記第2の時間T2として、例えば、計測時間の半分の時間を用いてもよい。なお、上記所定の距離RBおよび上記時間T2は、任意の値であってもよい。
上記近接判定処理は、例えば、情報出力装置1のディスプレイ4からの距離R
B以内に通行者が時間T
2以上の時間いる場合にTrue、そうではない場合にFalseを返す、次式で表される関数を用いて実行される。当該関数は、距離測定センサ3から取得される情報出力装置1と通行者との間の距離の計測値R
pに関する条件を規定する関数である。なお、次式では、時間T
2が、計測時間の基準とする時間の半分の時間である(t−t´)/2である場合を示している。また、次式では、積分記号は台形則などの数値積分を表すものであり、 欠損値は値として無視するものとする。R
p(t)がすべて欠損値ならば計算不能としてotherwiseの条件が適用される。以下でも同様である。
なお、上記の式中のUは単位ステップ関数であり、以下のように表される。
図16は、図8のステップS306において実行される注視判定処理の一例を示す図である。
上述したように、当該注視判定処理は、顔認識センサ2から取得され通行者別に対象別ログテーブルM1,M2,・・・のいずれかに記憶される顔向きデータに基づいて、idM値に対応する通行者毎に、当該通行者の顔が情報出力装置1を含む所定の範囲を向いている時間が第1の時間以上であるか否かを判定する処理である。
上記通行者の顔が情報出力装置1を含む所定の範囲を向いているか否かを判定する基準として、本実施形態では例えば角度を用いる。人間が頭を動かさずに刺激を捉えることができる視野角2θaは、22.0度であると知られている。したがって、例えば、注視判定の上記基準角度として、視野角2θaの22.0度を用いてもよい。また、上記第1の時間T1として、例えば、計測時間の半分の時間を用いてもよい。なお、上記基準角度および上記時間T1は、任意の値であってもよい。
上記注視判定処理は、例えば、情報出力装置1のディスプレイ4の中心側を通行者が時間T
1以上の時間向いている場合にTrue、そうでない場合にFalseを返す、次式で表される関数を用いて実行される。当該関数は、顔認識センサ2から取得される上記で説明した計測値x,w,θ
hに関する条件を規定する関数である。なお、次式では、時間T
1が、計測時間の基準とする時間の半分の時間である(t−t´)/2である場合を示している。なお、次式では、θ
h,θ
a,θ
p(t)はラジアンを単位として表している。
なお、顔認識センサ2からの計測値x,w,θhから、計測値x,wにより上記の式で算出されたθpを用いて注視判定処理を実行する代わりに、距離測定センサ3からの計測値θpをそのまま用いて上記注視判定処理を実行してもよい。
(6)情報出力装置1が出力制御する動作
図17は、図2に示した情報出力装置1の制御ユニット11によって実行される出力制御処理の一例を示すフロー図である。
先ず、ステップS401において、制御ユニット11は、出力制御部116の制御の下、記憶ユニット12の所定の設定領域にアクセスして、0から1の範囲で乱数を計算して書き込む。
次に、ステップS402において、制御ユニット11は、出力制御部116の制御の下、書き込まれた乱数がεより小さいか否かを判定する。
ステップS402において書き込まれた乱数がεより小さくはないと判定された場合、ステップS403において、制御ユニット11は、出力制御部116の制御の下、記憶ユニット12の所定の設定領域にアクセスして、0から1の範囲で乱数を計算して書き込む。
ステップS404において、制御ユニット11は、出力制御部116の制御の下、書き込まれた乱数がεより小さいか否かを判定する。
ステップS404において書き込まれた乱数がεより小さくはないと判定された場合、ステップS405において、制御ユニット11は、出力制御部116の制御の下、行動価値テーブル記憶部124に記憶される行動価値テーブルを参照し、図8のステップS306における注視判定処理および近接判定処理の判定結果に対応付けられた上記1以上の通行者と複数種類の動作の組み合わせの中から、行動価値の値Qが最も高い動作に対応する通行者のidM値と動作aiとの組み合わせを選択する。
ステップS404において書き込まれた乱数がεより小さいと判定された場合、制御ユニット11は、出力制御部116の制御の下、図8のステップS306における注視判定処理および近接判定処理の判定結果に対応付けられた上記1以上の通行者と複数種類の動作の組み合わせの中から、ステップS406において、動作aiをランダムに選択し、ステップS407において、上記1以上の通行者のうち当該選択された動作aiの行動価値の値Qが最も高い通行者のidM値を選択する。
一方、ステップS402において書き込まれた乱数がεより小さいと判定された場合、ステップS408において、制御ユニット11は、出力制御部116の制御の下、記憶ユニット12の所定の設定領域にアクセスして、0から1の範囲で乱数を計算して書き込む。
ステップS409において、制御ユニット11は、出力制御部116の制御の下、書き込まれた乱数がεより小さいか否かを判定する。
ステップS409において書き込まれた乱数がεより小さくはないと判定された場合、制御ユニット11は、出力制御部116の制御の下、図8のステップS306における注視判定処理および近接判定処理の判定結果に対応付けられた上記1以上の通行者と複数種類の動作の組み合わせの中から、ステップS410において、通行者のidM値をランダムに選択し、ステップS411において、上記複数種類の動作のうち当該選択された通行者のidM値に対応付けられた行動価値の値Qが最も高い動作aiを選択する。
ステップS409において書き込まれた乱数がεより小さいと判定された場合、制御ユニット11は、出力制御部116の制御の下、図8のステップS306における注視判定処理および近接判定処理の判定結果に対応付けられた上記1以上の通行者と複数種類の動作の組み合わせの中から、ステップS412において、動作aiをランダムに選択し、ステップS413において、通行者のidM値をランダムに選択する。
ステップS405において、ステップS406およびステップS407において、ステップS410およびステップS411において、あるいは、ステップS412およびステップS413において、動作aiおよび通行者のidM値が選択された後、ステップS414において、制御ユニット11は、選択された動作ai、選択されたidM値を示す信号、選択されたidM値に関する対象別ログテーブルMidを出力する。これにより、例えば、選択されたidM値に関する対象別ログテーブルMidにおける位置情報等を用いて、選択されたidM値に対応する通行者に対して、選択された動作aiに対応する画像情報または音声情報を出力することもできる。
図18は、当該動作aiおよび通行者のidM値の選択処理において参照される行動価値テーブルの一例を示す図である。当該行動価値テーブルにおける行動価値の値が、例えば、図6のステップS104の行動価値テーブル初期化処理において設定される初期値となっている例を示している。なお、図18に示される行動価値テーブルに記憶される動作a1,a2,a3は、図5で定義した動作a1,a2,a3に一致している。
行動価値テーブルは、例えば、情報出力装置1が取得する顔向きデータおよび距離データから得られる通行者の計測人数に応じて定められている。図18の(a)は、通行者の計測人数が0の場合に参照される行動価値テーブルの一例を示しており、図18の(b)は、通行者の計測人数が1の場合に参照される行動価値テーブルの一例を示している。
例えば図18の(a),(b)に示されているように、行動価値テーブルでは、各々、通行者毎に、当該通行者に対する近接判定処理の判定結果“isNear(Mid)”および注視判定処理の判定結果“isLooking(Mid)”の組み合わせの各々に対して、画像情報または音声情報を出力する3種類の動作a1,a2,a3と、当該各動作a1,a2,a3の行動価値の値が記憶されている。
すなわち、行動価値テーブルは、通行者の人数、着目する通行者のidM値、当該通行者に対する近接判定処理の判定結果“isNear(Mid)”、当該通行者に対する注視判定処理の判定結果“isLooking(Mid)”、および動作aiの種類に応じて、当該動作の行動価値の値Qを返すテーブルである。すなわち、行動価値の値Qは、Q(n,idM,isNear(Mid),isLooking(Mid),ai)で表すことができる。
ここでは計測人数が0または1の場合の、行動価値の値を初期値で表している行動価値テーブルの例を示したが、例えば、計測人数が2からNまでのテーブルは、次式によって定まる行動価値の値Qを初期値として用いて生成することができる。
なお、通行者に対する近接判定処理の判定結果“isNear(Mid)”および注視判定処理の判定結果“isLooking(Mid)の各組合せに対して、対応付けられている各動作a1,a2,a3の行動価値の値を調節することによって、通行者の近接判定処理の判定結果“isNear(Mid)”および注視判定処理の判定結果“isLooking(Mid)の各組合せに応じて実行されやすい動作を定めることができる。
例えば、近接判定処理の判定結果“isNear(Mid)”がFalse、および、注視判定処理の判定結果“isLooking(Mid)”がFalseの組み合わせに対しては、誘導を実行しない動作a3が選択される確率を高くするために、任意の通行者に対して当該動作a3の行動価値の値を高い値に設定していてもよい。
また、近接判定処理の判定結果“isNear(Mid)”がFalse、および、注視判定処理の判定結果“isLooking(Mid)”がTrueである組み合わせに対しては、誘導を実行する動作a2が選択される確率を高くするために、任意の通行者に対して当該動作a2の行動価値の値を高い値に設定していてもよい。
さらに、近接判定処理の判定結果“isNear(Mid)”がTrue、および、注視判定処理の判定結果“isLooking(Mid)”がTrueまたはFalseである組み合わせに対しては、誘導を実行する動作ではあるが、出力される音声に通行者の注意を引くための効果音が含まれずゆえに音量が小さいものとなっている動作a1が選択される確率を高くするために、任意の通行者に対して当該動作a1の行動価値の値を高い値に設定していてもよい。
なお、上述した行動価値の値の設定は一例に過ぎず、例えば、近接判定処理の判定結果“isNear(Mid)”がTrue、および、注視判定処理の判定結果“isLooking(Mid)”がTrueである組み合わせに対してのみ、誘導を実行する動作a1,a2が選択される確率が高くなるように、各動作の行動価値の値の設定をしてもよい。さらに、動作a1,a2,a3は、図5において、いずれも画像情報を出力するものとして定義したが、例えば、画像情報と音声情報のいずれも出力しないような動作であってもよい。
(7)情報出力装置1が行動価値テーブルを更新する動作
図19は、図2に示した情報出力装置1の制御ユニット11によって実行される行動価値テーブル更新処理の一例を示すフロー図である。
先ず、ステップS501において、制御ユニット11は、図17のステップS414における処理によって動作aiに対応する画像情報または音声情報が例えば出力された際の通行者の人数nが0より大きいか否かを判定する。
通行者の人数nが0より大きいと判定された場合、ステップS502において、制御ユニット11は、図17に示した情報出力装置1の出力制御処理の際に使用したidM値のセットを、idM´値のセットとして記憶ユニット12の所定の領域に記憶させる。
また、ステップS503において、制御ユニット11は、図17に示した情報出力装置1の出力制御処理の際に使用した通行者の人数nの値を、n´の値として記憶ユニット12の所定の領域に記憶させる。
次に、ステップS504において、制御ユニット11は、所定の時間、計測値取得処理を停止する。当該所定の時間は、例えば情報出力装置1によって出力される画像情報または音声情報の再生時間に対応するものであってもよい。例えば、当該再生時間が10秒以上の時間の場合には当該所定の時間を10秒間とすることによって、情報出力装置1が上記計測値取得処理の停止後に次に計測値取得処理を開始する時刻が、上記画像情報または音声情報の出力期間中の時刻にあたるようにしてもよい。なお、当該所定の時間は、情報出力装置1が上記計測値取得処理の停止後に次に計測値取得処理を開始する時刻が、上記画像情報または音声情報の再生時間が終わっている時刻にあたるようにしてもよい。
ステップS505において、制御ユニット11は、顔向きデータ取得部111および距離データ取得部112の制御の下、通行者に係る顔向きデータおよび距離データを経時的に取得する。当該取得処理は、例えば、図7のステップS207における処理と同一の所定の時間Tを基準に実行してもよい、あるいは、図7のステップS207における処理と異なる時間を基準に実行してもよい。なお、当該取得処理は、上記画像情報または音声情報の出力期間中または出力期間後に実行される。
次に、ステップS506において、制御ユニット11は、図8のステップS301からステップS306における処理と同様の処理を実行する。すなわち、制御ユニット11は、注視判定部114の制御の下、ステップS505における処理において取得された顔向きデータに基づいて、新たに付与されるidM値に対応する通行者毎に、当該通行者の顔が情報出力装置1を含む所定の範囲を向いている時間が第1の時間以上であるか否かを判定する。また、制御ユニット11は、近接判定部115の制御の下、ステップS505における処理において取得された距離データに基づいて、idM値に対応する通行者毎に、情報出力装置1から所定の距離内に当該通行者が存在する時間が第2の時間以上であるか否かを判定する。
ステップS507において、制御ユニット11は、呼び掛け成否判定部117の制御の下、ステップS506における注視判定処理および近接判定処理により得られる判定結果に基づいて、上記画像情報または音声情報の出力による通行者への呼び掛けに応じて通行者が装置を利用したか否かを判定する。
上記画像情報または音声情報の出力による通行者への呼び掛けに応じて通行者が装置を利用したか否かは、次の判定式によって判定される。
すなわち、少なくとも1の通行者に対して、当該通行者の顔が情報出力装置1を含む所定の範囲を向いている時間が第1の時間以上であり、かつ、情報出力装置1から所定の距離内に当該通行者が存在する時間が第2の時間以上であると判定された場合に、上記画像情報または音声情報の出力による通行者への呼び掛けが成功して通行者が装置を利用したと判定される。なお、ステップS506およびステップS507の上記説明では、当該注視判定処理および近接判定処理において、図8のステップS306において基準とした第1の時間および第2の時間と同一の時間を基準にして処理を実行するものとして説明したが、図8のステップS306において基準とした第1の時間および第2の時間と各々異なる時間を基準にして処理を実行するものとしてもよい。
ステップS507において、画像情報または音声情報の出力による通行者への呼び掛けが成功して通行者が装置を利用したと判定された場合、ステップS508において、制御ユニット11は、行動価値テーブル更新部119の制御の下、実行された動作aiの行動価値の値Qを増加させる。
一方、ステップS507において、画像情報または音声情報の出力による通行者への呼び掛けが成功せずに通行者が装置を利用しなかったと判定された場合は、ステップS509において、制御ユニット11は、行動価値テーブル更新部119の制御の下、実行された動作aiの行動価値の値Qを減少させる。
なお、ステップS508およびステップS509における行動価値の値Qを増減させる処理は、例えば、次の漸化式にしたがって実行される。
すなわち、通行者への呼び掛けが成功したと判定された場合には、上記出力制御処理の際の通行者の人数nに対応する行動価値テーブルにおいて、通行者の各々に対して、当該通行者に対する注視判定処理および近接判定処理における判定結果に対応付けられた、実行された動作aiの行動価値の値Qが増加される。
一方、通行者への呼び掛けが失敗したと判定された場合には、上記出力制御処理の際の通行者の人数nに対応する行動価値テーブルにおいて、通行者の各々に対して、当該通行者に対する注視判定処理および近接判定処理における判定結果に対応付けられた、実行された動作aiの行動価値の値Qが減少される。
なお、上記漸化式は、通行者の数n´のときに呼び掛けした際に、当該呼び掛けに応じて利用した割合(利用回数/呼びかけ回数)という意味がある。
最後に、ステップS510において、制御ユニット11は、記憶ユニット12の所定の設定記憶領域にアクセスして、学習回数ベクトルKの要素Kn´の値を1インクリメントする。
(8)統合ログテーブル生成処理の具体例
ここでは、図8のステップS301からステップS304において実行される、頭状態ログテーブルHと体状態ログテーブルBとを通行者情報を追加した上で組み合わせて、統合ログテーブルMを生成させる処理について詳しく説明する。
図20は、情報出力装置1において取得される顔向きデータおよび距離データの計測値の各パラメータセットに、最近傍法を利用して通行者情報を追加するトラッキング処理の概念図である。各パラメータセットについて、時間的に隣接する各パラメータセットとの距離を算出し、算出された距離が最も小さいパラメータセットを同一の通行者に係るパラメータセットであると判定する。ただし、距離が最も近いパラメータセットであっても、当該距離が所定の値より大きい場合には、異なる通行者に係るパラメータセットであると判定するようにする。
本実施形態では、頭状態ログテーブルHに記憶される1以上の通行者に係る顔向きデータにおいて、最近傍法を利用して通行者情報を追加するトラッキング処理を実行し、同一の通行者のパラメータセットには同一のidH値が付与されるようにし、異なる通行者のパラメータセットには異なるidH値が付与されるようにする。また、体状態ログテーブルBにおいても同様の処理を実行し、各パラメータセットにidB値が付与される。
図21は、図8のステップS301において実行される、頭状態ログテーブルHの各パラメータセットに通行者情報であるidH値を付与して頭状態ログテーブルH´を生成させる処理の一例、ならびに、図8のステップS302において実行される、体状態ログテーブルBの各パラメータセットに通行者情報であるidB値を付与して体状態ログテーブルB´を生成させる処理の一例を示すフロー図である。
以下では、例として、頭状態ログテーブルHから頭状態ログテーブルH´を生成する例について詳細に説明する。
当該頭状態ログテーブルH´および体状態ログテーブルB´の生成処理は、図20に図示したトラッキング処理によって実行される。
ステップS601において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH記憶部121に記憶される頭状態ログテーブルHを読み出す。
ステップS602において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、読み出された頭状態ログテーブルHに計測開始時刻とともに記憶されているパラメータセットにidH値を付与する。なお、計測開始時刻とともに記憶されているパラメータセットが複数ある場合には、各パラメータセットに対して各々異なるidH値を付与する。
ステップS603において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、idH値の付与処理の基準時刻として、先ず計測開始時刻を選択する。
ステップS604において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、idH値の付与処理の基準idH値として、上記選択された計測開始時刻とともに記憶されているパラメータセットに各々付与されたidH値の中から開始idH値を選択する。ここでは、例として、開始idH値として1が選択されたとして説明する。
次に、ステップS605において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルHに記憶されている、上記基準時刻より後の時間的に隣接するパラメータセット(x
track,y
track,w
track)のうちに、上記基準時刻とともに記憶され基準id
H値である1が付与されているパラメータセット(x
row,y
row,w
row)との距離が、所定の空間距離内のものがあるか否かを判定する。なお、当該所定の空間距離は、例えば、固定の値でも、パラメータセット間の時間差に比例するものであってもよい。なお、上記空間距離は、次式を用いて算出される。
ステップS605において所定の空間距離内のパラメータセットがあると判定された場合、ステップS606において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、当該所定の空間距離内のパラメータセットのうち空間距離が最も小さいパラメータセットに、idH値として基準idH値と同一の値である1を付与する。
ステップS605において所定の空間距離内のパラメータセットがないと判定された場合、あるいは、ステップS606における処理の後に、ステップS607において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、基準時刻とともに記憶されている各パラメータセットに付与されているすべてのidH値を基準として、ステップS605およびステップS606の処理が完了したか否かが判定される。基準時刻とともに記憶されている各パラメータセットに付与されているすべてのidH値を基準としてステップS605およびステップS606の処理が完了していないと判定された場合、ステップS608において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、基準idH値を、基準時刻とともに記憶されているパラメータセットに付与されているidH値の範囲の次のidH値にインクリメントし、ステップS605からの処理が繰り返される。
基準時刻とともに記憶されている各パラメータセットに付与されているすべてのidH値を基準としてステップS605およびステップS606の処理が完了したと判定された場合、ステップS609において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、上記基準時刻より後の時間的に隣接するパラメータセットのうち未だidH値が付与されていないパラメータセットに対して、いずれかのパラメータセットに既に付与されているidH値とは異なる新たなidH値を付与する。
ステップS610において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、計測されたすべての時刻を基準時刻としてステップS604からステップS609までの処理が完了したか否かを判定する。計測されたすべての時刻を基準時刻としてステップS604からステップS609までの処理が完了していないと判定された場合は、ステップS611において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、基準時刻をインクリメントし、ステップS604からステップS609までの処理が繰り返される。
計測されたすべての時刻を基準時刻としてステップS604からステップS609までの処理が完了したと判定された場合、ステップS612において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルHに記憶されるすべてのパラメータセットにidH値が付与されたログテーブルH´を出力し、記憶ユニット12の所定の領域に記憶させる。
上記では頭状態ログテーブルHから頭状態ログテーブルH´を生成する例について詳細に説明したが、体状態ログテーブルBから体状態ログテーブルB´も同様の方法で生成される。
ただし、体状態ログテーブルB´を生成する場合には、ステップS605における空間距離は、パラメータセット(R
p,θ
p)を用いて、
によって算出される。
図22は、図8のステップS303において実行される、同一の通行者を示しているidH値とidB値とを対応付けるマッチリストを生成させる処理の一例を示すフロー図である。
ステップS701において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、記憶ユニット12に記憶される頭状態ログテーブルH´と体状態ログテーブルB´とを読み出す。
ステップS702において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH´に記憶される、同一のidH値が付与されたパラメータセットの時系列データと、体状態ログテーブルB´に記憶される、同一のidB値が付与されたパラメータセットの時系列データとの間のDTW(Dynamic Time Warping)距離を、idH値とidB値との各組合せに対して算出する。
ステップS703において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、算出されたDTW距離のうち最も小さいものを選択する。
ステップS704において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、選択されたDTW距離の値が所定の値より小さいか否かを判定する。
選択されたDTW距離の値が所定の値より小さいと判定された場合、ステップS705において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、選択されたDTW距離に対応するidH値およびidB値を対応付ける。
ステップS706において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、idH値とidB値の両方において、上記対応付けがされていないものがあるか否かを判定する。
idH値とidB値の両方において、上記対応付けがされていないものがあると判定された場合、ステップS707において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、既に対応付けがされたidH値およびidB値を除くidH値とidB値との各組合せに対して算出されたDTW距離のうち最も小さいものを選択する。選択されたDTW距離について、ステップS704からの処理が繰り返される。
ここで、ステップS704において、最も小さいものとして選択されたDTW距離の値が所定の値より大きいと判定された場合、あるいは、ステップS706において、すべてのidH値またはすべてのidB値について上記対応付けがされていると判定された場合に、idH値とidB値との間のマッチングは完了し、ステップS708において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、idH値とidB値との対応付けを示すマッチリストを出力し、記憶ユニット12の所定の領域に記憶させる。
図23は、図8のステップS304において実行される、頭状態ログテーブルH´と体状態ログテーブルB´とをマッチリストを利用して組み合わせて、統合ログテーブルMを生成させる処理の一例を示すフロー図である。
ステップS801において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、記憶ユニット12に記憶される頭状態ログテーブルH´と体状態ログテーブルB´とマッチリストとを読み出す。
ステップS802において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、読み出された頭状態ログテーブルH´および体状態ログテーブルB´を各々複製した、頭状態ログテーブルH´´および体状態ログテーブルB´´を生成する。
ステップS803において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、マッチリストからidH値とidB値との対応付けの1つを選択する。
ステップS804において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH´´に記憶されるパラメータセットのうち、選択された対応付けに関するidH値が付与されたパラメータセットと、体状態ログテーブルB´´に記憶されるパラメータセットのうち、選択された対応付けに関するidB値が付与されたパラメータセットとに、いずれかのパラメータセットに既に付与されているidM値とは異なる新たなidM値を付与する。
ステップS805において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、マッチリストにおけるidH値とidB値とのすべての対応付けについてステップS804の処理が完了したか否かを判定する。idH値とidB値とのすべての対応付けについてステップS804の処理が完了していないと判定された場合、ステップS806において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、マッチリストから未処理のidH値とidB値との対応付けの1つを選択する。その後、ステップS804からの処理が繰り返される。
ステップS805において、idH値とidB値とのすべての対応付けについてステップS804の処理が完了したと判定された場合、ステップS807において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH´´においてidH列を削除し、体状態ログテーブルB´´においてidB列を削除する。
ステップS808において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH´´において、Rp列とθp列を、値をすべてNAで埋めて追加する。なお、当該処理後の頭状態ログテーブルH´´は、図11に示した頭状態ログテーブルH´´の例に対応する。一方、ステップS809において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、体状態ログテーブルB´´において、x列、y列、w列、θh列を、値をすべてNAで埋めて追加する。なお、当該処理後の体状態ログテーブルB´´は、図12に示した体状態ログテーブルB´´の例に対応する。なお、ステップS808とステップS809との処理の順序は問わない。
ステップS810において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルH´´と体状態ログテーブルB´´とを組み合わせて統合ログテーブルMを生成する。
ステップS811において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、統合ログテーブルMからm列を削除する。
ステップS812において、制御ユニット11は、対象別ログテーブル生成部113の制御の下、統合ログテーブルMを出力し、記憶ユニット12の所定の領域に記憶させる。なお、当該統合ログテーブルMは、図13に示した統合ログテーブルMの例に対応する。
(効果)
以上詳述したように、この発明の第1の実施形態では、以下のような効果が奏せられる。
(1)顔向きデータ取得部111の制御の下、顔認識センサ2から、1以上の通行者に係る顔向きデータが経時的に取得され、頭状態ログテーブルH記憶部121に記憶される頭状態ログテーブルHに書き込まれる。一方、距離データ取得部112の制御の下、距離測定センサ3から、情報出力装置1と1以上の通行者との間の距離データが取得され、体状態ログテーブルB記憶部122に記憶される体状態ログテーブルBに書き込まれる。その後、対象別ログテーブル生成部113の制御の下、頭状態ログテーブルHと体状態ログテーブルBとから、通行者別に顔向きデータと距離データとを統合した、通行者別の1以上の対象別ログテーブルが生成される。その後、注視判定部114の制御の下、通行者別の1以上の対象別ログテーブルに基づいて、通行者毎に、当該通行者の顔が情報出力装置1を含む所定の範囲を向いている時間が第1の時間以上であるか否かが判定される注視判定処理が実行される。また、近接判定部115の制御の下、通行者別の1以上の対象別ログテーブルに基づいて、通行者毎に、情報出力装置1から所定の距離内に当該通行者が存在する時間が第2の時間以上であるか否かが判定される近接判定処理が実行される。その後、出力制御部116の制御の下、行動価値テーブルが参照され、通行者毎の注視判定処理および近接判定処理の判定結果に基づいて、情報出力装置1が画像情報または音声情報を出力することにより実行する動作aiと、当該動作aiの対象とする通行者のidM値とが選択され、選択された動作ai、選択されたidM値を示す信号、選択されたidM値に関する対象別ログテーブルMidが出力される。
顔向きは視線に方向がおおよそ一致するものであり、それゆえ通行者の顔向きは、情報出力装置1と通行者との間の距離と同様に、通行者が情報出力装置1に興味を示しているか否かを判断するために有用である。したがって、上述したように情報出力装置1と通行者との間の距離に加えて通行者の顔向きを基準として用いることにより、例えば情報出力装置1に対して確かに興味を示している通行者を対象として、画像情報または音声情報を出力することが可能となる。
また、上記選択されたidM値を示す信号、選択されたidM値に関する対象別ログテーブルMidを利用して、例えば、idM値が選択された通行者の方向にディスプレイ4の正面が向くようにディスプレイ4の角度を調節して画像情報を出力したり、idM値が選択された通行者の方向にスピーカ5の正面が向くようにスピーカ5の向きを調節して音声情報を出力したりするようにしてもよい。このようにすると、idM値が選択された通行者が画像情報または音声情報の提供をより一層受けやすくなり、当該画像情報または音声情報の出力による通行者の呼び掛けが成功する確率が高くなる。
(2)呼び掛け成否判定部117の制御の下、上記選択された動作aiに対応する画像情報または音声情報の出力期間中または出力期間後に注視判定処理および近接判定処理により得られる判定結果に基づいて、当該画像情報または音声情報の出力による呼び掛けが成功したか否かが判定される。行動価値テーブル更新部119の制御の下、呼び掛け成否判定部117における判定結果に基づいて、行動価値テーブルにおける、出力制御部116において選択された動作aiの行動価値の値が増加または減少される。
呼び掛けが成功したか否かの判定を画像情報または音声情報の出力期間中に行うと、例えば、当該画像情報または音声情報の出力条件を満たす通行者がいなくなっている場合には、当該画像情報または音声情報の出力を停止して無駄な電力消費を抑えることができる。さらに、呼び掛けが成功したか否かの情報により、画像情報または音声情報の出力条件を見直すこともできるし、オペレータが情報出力装置の設置される環境を変えることを判断することもできる。
また、行動価値テーブルにおける行動価値の値を上述のように更新すると、行動価値の値を基準に情報出力装置1が実行する動作を選択する場合に、呼び掛けが成功した動作が次回以降に選択されやすくなり、呼び掛けが失敗した動作が次回以降に選択されにくくなる。すなわち、情報出力装置1は、設置された環境に対応できるように自律的に逐次学習する。
(3)上記出力制御部116の制御では、行動価値テーブルが参照される。その結果、idM値に対応する通行者毎の注視判定処理および近接判定処理における判定結果に対応付けられた上記1以上の通行者と複数種類の動作の組み合わせの中から、行動価値の値Qが最も高い動作に対応する通行者のidM値と動作aiとの組み合わせが選択される。あるいは、上記1以上の通行者と複数種類の動作の組み合わせの中から、動作aiがランダムに選択され、上記1以上の通行者のうち当該選択された動作aiの行動価値の値Qが最も高い通行者のidM値が選択される。あるいは、上記1以上の通行者と複数種類の動作の組み合わせの中から、通行者のidM値がランダムに選択され、上記複数種類の動作のうち当該選択された通行者のidM値に対応付けられた行動価値の値Qが最も高い動作aiが選択される。あるいは、上記1以上の通行者と複数種類の動作の組み合わせの中から、動作aiがランダムに選択され、通行者のidM値がランダムに選択される。
このように、行動価値の値の高さという基準で動作を選択すれば、例えば、予め保証されている成功率の確度で、選択された通行者を呼び止められる可能性があるという利点がある。また、複数の通行者の中から少なくとも1人を呼び止められる可能性が最も高くなる手法で、通行者に対して画像情報または音声情報を出力することによる呼び掛けをすることができる。
また、例えば、行動価値の値を基準にして動作を選択する場合には、初期の段階で行動価値の値が低く設定された動作が殆ど選択されないことが生じ得る。しかしながら、行動価値の値が低く設定された動作のうちにも、実際には当該動作による呼び掛けが成功する確率がそれ程低くないものも含まれ得る。上述したようにランダムに動作を選択するようにすることによって、このような動作による呼び掛けが成功するか否かの情報を取得することができ、当該情報は、例えば、初期の段階の行動価値の値の設定が適切であるか否かを見直すことに利用することができる。
さらに、動作と通行者とのランダムな選択の中に、動作と通行者との一方をランダムに選択し他方はその中で行動価値の値が最も高くなるような選択を含めるようにして、当該選択に基づいて動作を実行し、当該動作による呼び掛けが成功したか否かの情報を取得すると、例えば、行動価値の値が最も高い動作に対応する通行者と動作との組み合わせを基準にした、通行者を変更することによる行動価値の値の変化への寄与の割合や、動作を変更することによる行動価値の値の変化への寄与の割合等を解析することができる。
(4)行動価値テーブルにおいて、例えば、近接判定処理の判定結果“isNear(Mid)”がFalse、および、注視判定処理の判定結果“isLooking(Mid)”がFalseの組み合わせに対しては、誘導を実行しない動作a3が選択される確率を高くするために、任意の通行者に対して当該動作a3の行動価値の値を高い値に設定していてもよい。また、近接判定処理の判定結果“isNear(Mid)”がFalse、および、注視判定処理の判定結果“isLooking(Mid)”がTrueである組み合わせに対しては、誘導を実行する動作a2が選択される確率を高くするために、任意の通行者に対して当該動作a2の行動価値の値を高い値に設定していてもよい。さらに、近接判定処理の判定結果“isNear(Mid)”がTrue、および、注視判定処理の判定結果“isLooking(Mid)”がTrueまたはFalseである組み合わせに対しては、誘導を実行する動作ではあるが、出力される音声に通行者の注意を引くための効果音が含まれずゆえに音量が小さいものとなっている動作a1が選択される確率を高くするために、任意の通行者に対して当該動作a1の行動価値の値を高い値に設定していてもよい。
情報出力装置1に近寄らずに情報出力装置1を眺めているような通行者は、情報出力装置1に興味がある可能性が高いかもしれないが、情報出力するか否かを距離だけを基準に判定していた従来技術では情報出力の対象とすることができなかった。しかしながら、上述した行動価値テーブルの構成により、そのような通行者に対しても、画像情報または音声情報が出力される確率が上がるようにすることができる。
また、上述したような音量調節を行うことによって、例えば、情報出力装置1の近くにいる通行者に大きな音量の音声情報を出力して不快感を与えてしまうことを防ぐことができる。
[他の実施形態]
なお、この発明は上記第1の実施形態に限定されるものではない。例えば、上記第1の実施形態では、情報出力装置が画像情報または音声情報を出力する装置である例について説明した。しかしながら、情報出力装置は、対象物を駆動するための駆動制御情報または音声情報を出力する装置であってもよい。例えば、情報出力装置は、ヒト型のロボットであり、対象物としての左手部分の可動部を駆動するための駆動制御情報を出力し、それに応じて左手部分を回転させて通行者にジェスチャを提示することが可能な装置であってもよい。なお、上記対象物は複数あってもよく、駆動制御情報は、複数の対象物のうちの任意のものを駆動するための情報であってもよい。
図24は、情報出力装置が通行者の検知に応じて実行可能な、駆動制御情報または音声情報を出力する動作の一例を示す図である。図24に図示される3種類の動作a1,a2,a3はそれぞれ、図5に関連して図示して説明した動作a1,a2,a3に対応している。
動作a1は、左手部分の可動部を駆動させることにより、手招きをしながら誘導するジェスチャを実行し、スピーカから、「こちらへどうぞ」という呼び掛けの言葉に対応する音声情報を出力する動作である。
動作a2は、左手部分の可動部を駆動させることにより、手招きをしながら誘導するジェスチャを実行し、スピーカから、「こちらに来てください」という呼び掛けの言葉に対応する音声情報と、通行者の注意を引くための効果音に対応する音声情報とを出力する動作である。なお、効果音に対応する音声情報の音量は、例えば、呼び掛けの言葉に対応する上述した2種類の音声情報の音量よりも大きい。
動作a3は、左手部分の可動部を駆動させずに情報出力装置を待機させる動作である。すなわち、駆動制御情報と音声情報のいずれも出力しない動作である。
図24の例の場合は、図18に示した行動価値テーブルは、各々、通行者毎に、当該通行者に対する近接判定処理の判定結果“isNear(Mid)”および注視判定処理の判定結果“isLooking(Mid)”の組み合わせの各々に対して、駆動制御情報または音声情報を出力する3種類の動作a1,a2,a3と、当該各動作a1,a2,a3の行動価値の値とを記憶するようにすればよい。なお、行動価値テーブルに記憶される動作a1,a2,a3は、図24で定義した動作a1,a2,a3に一致させるようにすればよい。
なお、情報出力装置は、上述したような、画像情報または音声情報を出力する装置や、駆動制御情報または音声情報を出力する装置に限定されない。すなわち、情報出力装置は、画像情報と音声情報と駆動制御情報とのうちの少なくとも1つを出力可能であり、出力可能なこれらの情報を任意の組み合わせで出力可能な装置であってもよい。この場合、上述したのと同様に動作a1,a2,a3を、出力可能な情報の任意の組み合わせで定義し、行動価値テーブルも上述したのと同様に適宜設計すればよい。なお、例えば、上述したのと同様に、選択された通行者の方向に向かって、可動部を駆動してジェスチャを提示するようにすれば、可動部により実行されるジェスチャを、選択された通行者がより一層受けやすくなり、当該画像情報と音声情報と駆動制御情報とのうちの少なくとも1つの出力による通行者の呼び掛けが成功する確率が高くなる。
また、顔認識センサおよび距離測定センサから取得される計測データは上記で示したものと異なるものであってもよく、その場合、注視判定処理および近接判定処理も上記で示したのとは異なる関数を用いて実行されるようにしてもよい。また、上記では、頭状態ログテーブルHおよび体状態ログテーブルBにid値を付与する際のトラッキング処理について、最近傍法を利用するものとして説明したが、トラッキング処理はこれに限定されるものではない。さらに、idH値とidB値とを対応付けるマッチリストを生成させる処理について、DTW距離を利用するものとして説明したが、マッチリストを生成させる処理もこれに限定されるものではない。
その他、情報出力装置の種類とその構成、ならびに、各ログテーブルや行動価値テーブルの構成や、注視判定処理および近接判定処理の詳細等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
要するにこの発明は、上記第1の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記第1の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、上記第1の実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。