以下、図面を参照しながら本発明の実施形態について詳しく説明する。
[第1の実施形態]
<電子制御装置1の概要>
図1は、本発明の実施形態に係る電子制御装置1の一例を表す概略図である。電子制御装置1は、図1に示すように、部屋Rの天井SLに設置されている。この電子制御装置1は、照射部14を備えている。照射部14は、光を照射することにより画像を生成する投射装置(プロジェクタ)として機能する。具体的には、照射部14は、部屋R内の面の表示領域DAに光を照射することにより、この表示領域DAに画像を表示する。表示領域DAの一例として、部屋Rの壁面WL1に設定される表示領域DA1と、壁面WL2に設定される表示領域DA2と、部屋Rの壁面WL3に設定される表示領域DA3と、部屋Rに置かれている机TBLの上面に設定される表示領域DA5とがある。この例において、照射部14は、これら表示領域DA1〜DA3とDA5に光を照射することにより画像を表示する。このように、電子制御装置1は、照射部14によって、部屋Rの壁面WLや机TBLの上面に光を照射することによって、部屋Rの内部に画像を表示する。また、電子制御装置1は、表示する画像を変化させることにより、部屋Rを模様替えするように、部屋Rの内部の様子を変化させることもできる。
ここで、電子制御装置1が、部屋Rの壁面WLなどに表示する画像の具体例について説明する。この電子制御装置1が表示する画像とは、ユーザの属性に応じた画像である。この電子制御装置1が設置される部屋Rの一例としては、家庭の居室や、会社の執務室(オフィス)、学校の教室、店舗(例えば、カラオケ店)の個室などがある。ここでは、部屋Rがユーザの自宅の居室である場合を一例に説明する。
この電子制御装置1は、部屋Rの中にいるユーザの動作の特徴量に基づいた画像を表示領域DAに表示する。このユーザの動作とは、ユーザの身振りや手振りなどの行動によるものである。このユーザの動作には、電話を掛ける動作や腕を組む動作などの日常動作が含まれる。例えば、電子制御装置1は、動作の特徴量に基づいて、ユーザの身振りや手振りを検出し、検出したユーザの動作に応じた画像を表示領域DAに表示する。以下、図2を参照して、ユーザの動作の一例について説明する。
<電子制御装置1が検出する動作の特徴量について>
図2は、本実施形態の電子制御装置1が検出する動作の特徴量の一例について示す模式図である。図2(a)は、電話を掛ける動作を示す。ユーザU1が電話を掛ける動作を行う場合、一方の腕(この例においては、左腕)の掌が腰付近の体側で静止している状態から、肘が徐々に曲がることによって、掌が耳元まで移動して静止している状態に変化する。この肘の角度とは、肩の点P11と肘の点P12とを通る線分と、肘の点P12と掌の点P13とを通る線分とのなす角A11の角度である。一例において、電話を掛ける動作において、肘の角A11は、約180°から約30°に変化する。すなわち、ユーザU1が電話を掛ける姿勢に姿勢を変える動作の特徴量は、動作を開始する前の時点において一方の腕の掌が体側にあること、姿勢を変えている動作中において肘の角度A11が約180°から約30°に変化すること、姿勢を変える動作を経た後、電話をする姿勢(動作)を開始する時点において掌が耳元にあることである。電子制御装置1は、肩の点P11、肘の点P12、および掌の点P13を検出した結果に基づいて掌の位置および肘の角度を推定する。また、電子制御装置1は、推定した掌の位置および肘の角度が示す動きの特徴量と、予め記憶されている電話を掛ける動きの特徴量とを比較することにより、ユーザU1の動作が電話を掛ける姿勢に姿勢を変える動作であるか否かを判定する。又は、電子制御装置1は、推定した掌の位置および肘の角度が示す動きの特徴量と、予め記憶されている電話を掛ける動きの特徴量とを比較することにより、ユーザU1の動作が電話を掛けている動作であるか否かを判定する。他の例において、別の角度が設定可能である。
図2(b)は、腕組みをする動作を示す。ユーザU1が腕組みをする動作を行う場合、一方の腕(この例においては、左腕)の掌が左の腰付近の体側で静止している状態から、左肘が徐々に曲がることによって、掌が胸元まで移動して静止している状態に変化する。また、他方の腕(この例においては、右腕)の掌が右の腰付近の体側で静止している状態から、右肘が徐々に曲がることによって、掌が胸元まで移動して静止している状態に変化する。この左肘の角度とは、左肩の点P11と左肘の点P12とを通る線分と、左肘の点P12と左掌の点P13とを通る線分とのなす角A11の角度である。右肘の角度とは、右肩の点P14と右肘の点P15とを通る線分と、右肘の点P15と右掌の点P16とを通る線分とのなす角A12の角度である。
腕組みをする動作において、左肘の角A11は、例えば、約180°から約80°に変化する。腕組みをする姿勢に姿勢を変える動作において、右肘の角A12は、例えば、約180°から約80°に変化する。すなわち、ユーザU1が腕組みをする動作の特徴量は、動作開始時点において左掌が左の腰付近の体側にあること、動作中において左肘の角度A11が約180°から約80°に変化すること、動作終了時点において左掌が胸元にあることである。ユーザU1が腕組みをする姿勢に姿勢を変える動作の特徴量は、動作開始時点において右掌が右の腰付近の体側にあること、動作中において右肘の角度A12が約180°から約80°に変化すること、動作終了時点において右掌が胸元にあることである。電子制御装置1は、左肩の点P11、左肘の点P12、および左掌の点P13を検出した結果に基づいて左掌の位置および左肘の角度を推定する。また、電子制御装置1は、右肩の点P14、右肘の点P15、および右掌の点P16を検出した結果に基づいて右掌の位置および右肘の角度を推定する。また、電子制御装置1は、推定した左右の掌の位置および左右の肘の角度が示す動きの特徴量と、予め記憶されている腕組みをする動きの特徴量とを比較することにより、ユーザU1の動作が腕組みをする姿勢に姿勢を変える動作であるか否かを判定する。または、電子制御装置1は、推定した左右の掌の位置および左右の肘の角度が示す動きの特徴量と、予め記憶されている腕組みをする動きの特徴量とを比較することにより、ユーザU1の動作が腕組みをした姿勢をとっている動作であるか否かを判定する。他の例において、別の角度が設定可能である。
図2(c)は、聴衆に対する情報の提示(プレゼンテーション)をする動作を示す。ユーザU1がプレゼンテーションをする動作を行う場合、一方の腕(この例においては、右腕)の掌が右の腰付近の体側で静止している状態から、右肘が徐々に曲がることによって、右の掌が体幹の右前方まで移動して静止している状態に変化する。また、他方の腕(この例においては、左腕)の掌が左の腰付近の体側で静止している状態から変化しない。ここで右肘の角度とは、右肩の点P31と右肘の点P32とを通る線分と、右肘の点P32と右掌の点P33とを通る線分とのなす角A31の角度である。左肘の角度とは、左肩の点P34と左肘の点P35とを通る線分と、左肘の点P35と左掌の点P36とを通る線分とのなす角A32の角度である。
プレゼンテーションをする姿勢に姿勢を変える動作において、右肘の角A32は、例えば、約180°から約60°に変化する。また、プレゼンテーションをする姿勢に姿勢を変える動作において、左肘の角A31は、例えば、約180°から実質的に変化しない。すなわち、ユーザU1がプレゼンテーションをする姿勢に姿勢を変える動作の特徴量は、動作開始時点において右掌が右の腰付近の体側にあること、姿勢を変える動作中において右肘の角度A32が約180°から約60°に変化すること、姿勢を変える動作終了時点において右掌が体幹の右前方にあることである。また、ユーザU1がプレゼンテーションをする動作の特徴量は、姿勢を変える動作開始時点から動作終了時点までにおいて左掌の位置が変化しないことである。電子制御装置1は、右肩の点P34、右肘の点P35、および右掌の点P36を検出した結果に基づいて右掌の位置および右肘の角度を推定する。また、電子制御装置1は、左肩の点P31、左肘の点P32、および左掌の点P33を検出した結果に基づいて左掌の位置および左肘の角度を推定する。また、電子制御装置1は、推定した左右の掌の位置および左右の肘の角度が示す動きの特徴量と、予め記憶されているプレゼンテーションをする動きの特徴量とを比較することにより、ユーザU1の動作がプレゼンテーションをする姿勢に姿勢を変える動作であるか否かを判定する。又は、電子制御装置1は、推定した左右の掌の位置および左右の肘の角度が示す動きの特徴量と、予め記憶されているプレゼンテーションをする動きの特徴量とを比較することにより、ユーザU1の動作がプレゼンテーションをしている動作であるか否かを判定する。他の例において、別の角度が設定可能である。
<身振りによる制御の例>
上記に例示したように、ユーザの身振りによる動作の特徴量を用いて、室内の状態を制御する処理について説明する。
例えば、図1に示す部屋Rの中にいるユーザU1が、ある行動を起こした場合に、電子制御装置1は、ユーザU1の行動に適した環境になるように部屋Rの環境を制御する。例えば、部屋Rで音楽(BGM)、テレビやラジオの音声などを聞きながらユーザU1が作業をしている際にユーザU1が電話を受ける場合を想定する。このような場合に、部屋Rに流していた音楽(BGM)、テレビやラジオの音声などの音量を下げることにより、部屋Rの環境が、通話がしやすい環境になる。そこで、電子制御装置1は、ユーザU1の電話をする身振りや手振りを検出して、通話をしやすい環境にするように、ユーザU1の身振りや手振りを検出した結果に応じて部屋Rの環境を整える。例えば、電子制御装置1は、部屋Rの環境を整えるために、部屋Rに流していた音楽(BGM)やテレビの音声の音量を自動的に調整したり、部屋Rに流す音を自動的に止めたりする。これによりユーザU1は、自ら部屋Rの環境を調整するための操作を行うことなく、適切な音量に調整された環境のもとで通話を開始することができる。
上記のように音声のみで通話する場合に限られず、更に通話先に画像を送るテレビ電話を利用して通話をする場合にも適用できる。例えば、テレビ電話を利用して通話をする場合、ユーザU1の背景に好みの画像が自動的に映り込むようにすることで、ユーザU1が通話する楽しみを高めたり、ユーザU1と通話している相手に好印象を与えたりすることができる。この場合、電子制御装置1は、ユーザU1の背景になる側の壁面に所望の画像を表示する。例えば、ユーザU1が壁面WL3に背を向けている場合、電子制御装置1は、壁面WL3に設定される表示領域DA3に、ユーザU1が好む所望の画像を表示する。これにより、ユーザU1は、表示領域DA3に表示した画像を背景にして、テレビ電話を行うことができる。
さらに、表示する画像の候補を複数用意しておくことにより、候補として用意した画像の中から選択した画像を表示させることができる。電子制御装置1は、ユーザの身振りや手振りを検出した結果に応じて画像を選択したり、適宜切り替えたりしてもよい。例えば、電子制御装置1は、通話の相手、通話の内容を検出して、ユーザU1が置かれている状況を推定し、推定した状況を前述の検出した状況に代えてもよい。さらに、電子制御装置1は、在宅中に掛ってきた電話又は掛ける電話の相手先に応じて表示する画像を選択してもよい。例えば、予め登録されている連絡先に対応させて判定フラグを記憶部200に設定しておき、設定した判定フラグに基づいて表示する画像を選択する。これにより、電話の相手先が連絡先に登録されている友人や親せきなどのように比較的かしこまらずに対応できる人と、連絡先に登録されているがかしこまって対応する人、連絡先に登録されていない人などを区別して、表示する画像を選択してもよい。
また、例えば、部屋Rの中にいるユーザU1が会社員である場合には、電子制御装置1は、会社の執務室(オフィス)の画像を表示領域DAに表示する。一例として、ユーザU1が会社員であって、あるプロジェクト(例えば、プロジェクトP1)に携わっている場合、電子制御装置1は、プロジェクトP1の資料が収納されている本棚の画像を表示領域DA1に、プロジェクトP1に関連する文章や図形が描かれたホワイトボードの画像を表示領域DA2と表示領域DA3にそれぞれ表示する。この場合、電子制御装置1は、プロジェクトP1に関連する資料の画像を表示領域DA5に表示する。これにより、ユーザU1は、あたかも会社の執務室の中に居るように感じることができ、また、机TBLの上に表示されている資料を読むことができる。このような状況の作業をしているユーザU1に電話がかかってきた場合に、電子制御装置1は、プロジェクトP1などの業務に関連する表示を中断して、一般的な壁紙などの他の画像を表示してもよい。
<動作の特徴量の検出について>
これまで、電子制御装置1が、ユーザU1の動作の特徴量に基づいて画像を調整する具体例について説明した。次に、電子制御装置1が、ユーザU1の動作の特徴量を検出する仕組みの概要について説明する。この電子制御装置1は、ユーザU1の動作の特徴量を検出することにより、ユーザU1の動作の特徴量に基づいた画像を表示領域DAに表示する。この電子制御装置1は、様々な方法によってユーザU1の動作の特徴量を検出することができる。電子制御装置1がユーザU1の動作の特徴量を検出する方法の具体例について以下説明する。
一例として、電子制御装置1は、部屋Rの中にいるユーザU1の画像に基づいて、ユーザU1の動作の特徴量を検出する。一例において、電子制御装置1は、図1に示すように、撮像部10を備える。この撮像部10とは、例えば、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等の固体撮像素子を利用したカメラである。この撮像部10は、部屋R内の面の撮像領域IAを撮像して、撮像領域IA内の画像を生成する(イメージをキャプチャーする)。撮像領域IAの一例として、図1に示すように、部屋Rの壁面WL1に設定される撮像領域IA1と、壁面WL2に設定される撮像領域IA2と、壁面WL3に設定される撮像領域IA3と、部屋Rに置かれている机TBLの上面に設定される撮像領域IA5とがある。また、撮像領域IAの一例として、床面FLに設定される撮像領域IA4がある。この例において、撮像部10は、これら撮像領域IA1〜IA5が撮像範囲に含まれるようにして、撮像領域IA1〜IA5の画像を撮像する。撮像部10が撮像した画像の中に、ユーザU1の画像が含まれている場合には、この画像に基づいてユーザU1の動作の特徴量を検出することができる。以下、撮像部10が撮像した画像の中に、ユーザU1の画像が含まれている場合について説明する。
電子制御装置1は、撮像部10が撮像したユーザU1の画像を、モーションキャプチャ技術やパターンマッチング技術等によって処理することにより、ユーザU1の動作の特徴量を検出する。例えば、ユーザU1の特徴量は、3次元座標空間における位置、速度、加速度、角度、角速度などの情報として抽出する。その情報は、スカラー、ベクトルの何れか又は複数の組合せとする。
<電子制御装置1が提供する機能について>
次に、電子制御装置1がユーザに対して提供する機能の一例について説明する。この電子制御装置1は、表示領域DAに所望の画像を表示する。この電子制御装置1が表示する画像を選択するオブジェクト選択機能について、表示領域DA1にプロジェクトP1の資料が収納されている本棚の画像が表示されている場合を例にして説明する。例えば、ユーザU1が本棚の資料の画像を指すように手を動かすと、電子制御装置1は、このユーザU1の動作を検出して、資料の画像を机TBL上に表示する。これにより、電子制御装置1は、ユーザU1が資料を選択する動作をした場合に、あたかもユーザU1が資料を本棚から取り出して机の上に置いたかのようにして、選択された資料の画像を表示することができる。このように、電子制御装置1は、資料の画像などのオブジェクトを選択して、選択したオブジェクトの画像を表示するオブジェクト選択機能を提供する。
この電子制御装置1が提供する情報は、上記のように画像を提供するだけに留まらない。前述のとおり、電子制御装置1は、音楽(BGM)、テレビやラジオの音声などを部屋Rに流すことができる。
<電子制御装置1の構成例について>
図3は、本実施形態に係る電子制御装置1の構成を示す概略ブロック図である。図3に示すように、電子制御装置1は、撮像部10、音入力部12、制御部100、記憶部200、通信部13、照射部14、音出力部15、および電力供給部16を備えている。
撮像部10は、例えばカメラを備えており、実空間を撮像して、撮像した画像を制御部100へ出力する。ここで、実空間とは、ある広さの面を有する空間であり、仮想空間に対する現実の空間である。この実空間には、屋外広場などの開空間や、屋内施設などの閉空間が含まれる。ある広さの面とは、画像が表示可能な表示面である。この面には、2次元の平面や、3次元の曲面が含まれる。音入力部12は、例えばマイクを備えており、周囲の音を収音してデータに変換し、変換したデータを制御部100へ出力する。通信部13は、有線又は無線によって、他の装置と通信を行う。
照射部14は、例えばプロジェクタを備えており、制御部100による制御に基づいて、光を照射する。なお、上述した撮像部10と照射部14とは、一体に構成されてもよい(図10参照)。
音出力部15は、例えばスピーカを備えており、制御部100による制御に基づいて、音を出力する。なお、音出力部15は、指向性スピーカを備えていてもよい。この場合には、音出力部15は、所定の指向特性を有する音を出力する。
電力供給部16は、内部又は外部の電源から電力を取得し、取得した電力を電子制御装置1の各部に供給する。電力供給部16は、例えば部屋Rの壁面WLに設置されているコンセントや、天井SLに設置されている照明器具取り付け用ソケットを介して、電力を取得する。
記憶部200は、HDD(Hard Disk Drive)などの記憶装置や半導体メモリなどの記憶素子を備えている。この記憶部200は、制御部100による演算結果を一時的に記憶する。また、この記憶部200は、制御部100による演算に用いられるデータテーブル等の情報を記憶している。
例えば、記憶部200は、ユーザテーブル210、特徴検出履歴DB220、クラスタ情報DB230、コマンドテーブル240、命令テーブル250、及び、案内情報テーブル260を記憶する。
制御部100は、例えば、CPU(Central Processing Unit:中央演算処理装置)及び/又は(回路(circuitry))を備えており、撮像部10及び音入力部12から入力されたデータに基づいて情報処理を行う。例えば、制御部100は、撮像部10が撮像した画像に含まれる文字を認識する文字認識処理や、撮像部10が撮像した画像に含まれるユーザを認識するパターンマッチング処理を行う。また、制御部100は、通信部13を介して他の装置と通信を行い、通信で取得した情報に基づいて情報処理を行う。制御部100は、これらの情報処理の結果に基づいて、照射部14及び音出力部15を制御する。この制御部100の詳細な構成の詳細について、図4を参照して説明する。
なお、制御部100は、通信部13を介して外部の装置から制御指令を取得して、取得した制御指令に応じた処理を行う。例えば、取得した制御指令に応じた処理として、電子制御装置1にコマンドを設定するための準備処理などが挙げられる。コマンドを設定する設定処理の詳細については後述する。
<制御部100について>
図4は、本実施形態に係る制御部100の構成を示す概略ブロック図である。図4に示すように、制御部100は、抽出部110、動作決定部120、関連付け部130、提示部140、命令実行部150、識別部160、選択部170、及び、設定処理部180を備えている。なお、動きの特徴量の判定をユーザ毎に行う必要が無い場合には、識別部160を必ずしも備えていなくてもよい。
抽出部110は、撮像部10が撮像した画像から被写体の動きの特徴量を抽出する。例えば、被写体としてユーザU1(図2)を例示する。抽出部110は、撮像部10が撮像した画像からユーザU1の身振りや手振りを検出する。抽出部110は、検出されたユーザU1の動きの特徴量を抽出して、抽出したユーザU1の動きの特徴量を記憶部200に記憶させる。また、抽出部110は、撮像部10が撮像した画像からユーザU1の動きの特徴量を抽出して、抽出したユーザU1の動きの特徴量を動作決定部120に供給する。
動作決定部120は、抽出部110によって抽出された複数の特徴量の出現頻度に基づいて、入力動作を決定する。上記の「入力動作」とは、ユーザが入力手段に触れて電子制御装置1を操作することに代えて、ユーザが電子制御装置1に指令(制御指令)を送り、電子制御装置1を制御するための動作を示す。動作決定部120は、予め定められた動作を検出して、その検出結果を入力動作として出力する。例えば、動作決定部120は、入力動作を決定する機能として、目的が異なる2種類の機能を備えている。第1の機能は、動作決定部120が入力動作を決定しやすくするための初期化処理をする機能である。例えば初期化処理には、動作決定部120のトレーニング処理などが含まれる。第2の機能は、第1の機能による初期化処理の結果に基づいて、実時間で入力動作を決定する機能である。
例えば、上記の第1の機能として、動作決定部120は、抽出部110によって抽出された後、記憶部200に記憶されている複数の特徴量を読み出して、読み出した複数の特徴量の出現頻度に基づいて、検出すべき特徴量を選択する。動作決定部120は、選択した特徴量に入力動作を対応付けることにより、入力動作を決定できるようにする初期化情報を生成する。例えば、上記の特徴量を選択する際に、動作決定部120は、前記複数の特徴量のうち、時系列での類似度が所定以上となる特徴量を、同じ特徴量として出現頻度を計数してもよい。類似度の判定として、クラスタ分析などの手法を利用してもよい。なお、読み出した複数の特徴量の出現頻度に基づいて、入力動作を決定する方法についての詳細は後述する。動作決定部120は、決定した入力動作に係るデータを記憶部200に記憶させる。
また、例えば、上記の第2の機能として、動作決定部120は、記憶部200に記憶されている入力動作に係るデータに基づいて、抽出部110によって抽出された複数の特徴量から、その複数の特徴量に対応する入力動作を決定する。動作決定部120は、決定した入力動作を命令実行部150に供給する。
関連付け部130は、入力動作と、予め定められた複数の命令のいずれかとを関連付けて記憶部200に記憶させる。例えば、命令とは、電子制御装置1の動作状態を制御するコマンド(指令)のことである。電子制御装置1の各部はその命令に応じた処理を実施する。例えば、動作決定部120における第1の機能により決定された入力動作と予め定められた複数の命令は記憶部200に記憶されている。関連付け部130は、決定された入力動作と予め定められた複数の命令とを関連付けて、その結果を記憶部200に記憶させる。
提示部140は、関連付け部130が前記入力動作と関連付ける前記命令の候補を提示する。例えば、提示部140によって命令の候補が提示された場合に、関連付け部130は、前記入力動作と、前記提示部140が提示した前記命令の候補から選択された命令とを関連付けて記憶部200に記憶させる。ここで記憶させた命令が、電子制御装置1を制御するために利用できるものとなる。
命令実行部150は、撮像部10から撮像された画像に前記入力動作が含まれる場合、記憶部200に記憶されている複数の前記命令のうち、前記入力動作に関連付けられている命令を実行する。例えば、前述のとおり関連付け部130によって、動作決定部120により決定された入力動作と、予め定められた複数の命令のいずれかとを関連付けて記憶部200に記憶されている。ここで、撮像部10から撮像された画像から前記入力動作が動作決定部120の第2の機能により検出された場合、命令実行部150は、関連付け部130によって入力動作に関連付けられている命令を実行する。
なお、命令実行部150は、記憶部200に記憶されている複数の前記命令のうち、前記識別された前記被写体を示す前記識別情報と、撮像部10が撮像した画像に含まれる入力動作とに関連付けられている命令を実行してもよい。
識別部160は、撮像部10が撮像した画像の前記被写体を識別する。例えば、識別部160は、撮像部10が撮像した画像のユーザU1を識別してもよい。撮像部10によって撮像された画像のユーザU1を識別する場合、関連付け部130は、識別部160によって識別された前記被写体を示す識別情報と、前記入力動作と、前記命令とを関連付けて記憶部200に記憶させてもよい。
選択部170は、前記入力動作に基づいて、前記複数の命令のなかから前記入力動作に対応する命令を選択する。例えば、記憶部200に記憶されている複数の命令には、対応させる入力動作を選択するための入力動作の候補が命令ごとに予め定められている。選択部170は、当該入力動作に適する命令とされる入力動作の候補の内から、前記入力動作に対応する命令を選択する。ここで、選択部170によって入力動作に対応する命令が選択された場合に、関連付け部130は、前記入力動作と、前記選択された前記命令とを関連付けて記憶部200に記憶させてもよい。
設定処理部180は、音入力部12によって検出された音声、又は、通信部13を介して取得した制御指令に応じて、電子制御装置1の各部を機能させるためのデータを設定する。設定処理部180は、上記の設定の処理を実施するに当たり、提示部140を制御して、設定の処理に必要とされる所望の情報を照射部14によって表示するように制御する。
<電子制御装置1の処理の概要について>
図1から図8を参照して、電子制御装置1において実施される処理の概要について説明する。図5は、本実施形態に係る電子制御装置1の処理の概略を示すフローチャートである。図5に示されるように、電子制御装置1は、次の2つのステップに分けて処理をする。
先に、電子制御装置1は、コマンドを登録する処理を実施する(ステップS10)。このステップS10は、後段の処理を実施するために、電子制御装置1に必要な情報を設定する。必要な情報に、次段で使用するコマンドの登録が含まれる。次に、電子制御装置1は、ステップS10において登録したコマンドの処理を、ユーザの動作に基づいて実施する(ステップS20)。以下、電子制御装置1において実施される各種処理について説明する。
<電子制御装置1にコマンドを登録する処理の概要について>
図4に示す電子制御装置1にコマンドを登録する処理の概要について説明する。図6は、本実施形態に係る電子制御装置1にコマンドを登録する処理の概略を示すフローチャートである。制御部100は、次の手順に従って、記憶部200にコマンドを登録する。制御部100は、ユーザの操作に応じてコマンドの登録準備の処理をする(ステップS110)。制御部100は、撮像部10が撮像した画像から被写体の動きの特徴量を抽出する(ステップS130)。制御部100は、抽出した特徴量からユーザの動作を分類する(ステップS150)。制御部100は、分類結果の入力動作をコマンドに関連付ける(ステップS170)。制御部100は、記憶部200にコマンドを登録する(ステップS190)。
<電子制御装置1にコマンドを登録する処理の詳細について>
次に、図4に示す電子制御装置1にコマンドを登録する際の各ステップの処理の詳細な一例について説明する。
(ステップS110:コマンドの登録準備の処理について)
コマンドの登録準備の処理について説明する。制御部100は、通信部13を介して外部の装置から制御指令を取得して、取得した制御指令に応じた処理を行う。例えば、制御部100は、取得した制御指令に応じて、各データテーブルの初期化処理を実施する。その初期化処理として、制御部100は、ユーザテーブル210にユーザを識別するためのデータを、コマンドテーブル240に命令(コマンド)を示すデータを、及び、案内情報テーブル260にユーザに提供する画面を表示させるためのデータをそれぞれ記憶させる。
(ステップS130:コマンドを登録する際のユーザの特徴量を抽出する処理について)
図7及び図8を参照して、ユーザの特徴量を抽出する処理について説明する。抽出部110は、撮像部10が撮像した画像から被写体の動きの特徴量を抽出して、抽出した被写体の動きの特徴量を記憶部200に記憶させる。例えば、被写体をユーザU1にした場合を例示する。抽出部110は、撮像部10が撮像した画像からユーザU1の身振りや手振りを検出する。抽出部110は、検出されたユーザU1の動きの特徴量を抽出して、抽出したユーザU1の動きの特徴量を記憶部200(特徴抽出履歴DB220)に記憶させる。なお、抽出部110は、各部の特徴量を3次元空間のデータとして扱えるように変換処理をして、ユーザU1の動きの特徴量を3次元にモデル化してもよい。記憶部200(特徴抽出履歴DB220)に記憶する特徴量は、3次元にモデル化して検出された特徴量としてもよい。
図7は、本実施形態の記憶部200の特徴抽出履歴DB220が記憶する特徴抽出情報の一例を示す表である。図7に示すように、特徴抽出履歴DB220は、ユーザID、日時、各特徴量(A11、A12、P13、P16)、及び、推定動きIDを関連付けて記憶している。このユーザIDとは、ユーザを識別する情報である。この日時とは、特徴を検出した日時を示す情報である。この各特徴量とは、ユーザの身振りによって値が変化する部分を特徴点として定め、その特徴点の状態を示す情報である。例えば、この特徴量には、前述の図2に示したように左肘の角A11、右肘の角A12、並びに、左掌の点P13、右掌の点P16の状態を示す情報が含まれる。推定動きIDとは、各特徴量の値から推定される動きを示す識別情報である。例えば、ユーザIDをU1とするユーザのXX年YY月ZZ日のXX時YY分と同日のXX時ZZ分の情報が例として示されている。このXX時YY分において、左肘の角A11が175度、左掌の点P13が体側で静止した状態が記憶されている。また、XX時ZZ分において、左肘の角A11が32度、左掌の点P13が体側で静止した状態が記憶されている。なお、XX時YY分からXX時ZZ分までの時間は、例えば1分から数分程度とする。このように記録された時系列データから所望の特徴量が含まれている時間帯を抽出する。他の例において、別の角度、別の時間間隔が設定可能である。
図8は、本実施形態の特徴量を規定する情報の一例を示す表である。図8に示すように、特徴量を規定する情報として、識別番号(No)、姿勢、各特徴量(A11、A12、P13、P16)、及び、動きIDが関連付けられている。
図8に示す表は、前述の図2に示す身振りを特徴として検出する場合を例示するものである。識別番号の#1から#6に、前述の図2に示す身振りを検出するための要件を対応付けている。例えば、#1、#3、#5に、基本姿勢A、B、Cをそれぞれ対応付けている。また、#2に、前述の図2(a)に示した電話をしている姿勢、#4に、前述の図2(b)に示した腕を組む姿勢、#6に、前述の図2(c)に示したプレゼンテーションをする姿勢をそれぞれ対応付けている。各特徴量の値については、前述の図2を参照する。なお、この特徴量の値は、初期値として予め定めることができる。また、制御部100によって、同値を実際に検出されたユーザの身振りに基づいて設定してもよい。
ここで、動きIDを下記のように定義する。#1の基本姿勢Aから#2の電話をかける姿勢に変化する場合の動きIDをMV01にする。#3の基本姿勢Bから#4の腕組みをする姿勢に変化する場合の動きIDをMV02にする。#5の基本姿勢Cから#6のプレゼンテーションをする姿勢に変化する場合の動きIDをMV03にする。
図8に示すように、各特徴量の変化に対応する動きIDを規定したことにより、ユーザの身振りから特定の特徴量の変化を検出した際に、検出した特徴量の変化を動きIDを用いて示すことができる。
前述の図7に例示した場合によれば、動作決定部120は、抽出部110によって抽出されたXX時YY分からXX時ZZ分までの情報によって示される動作を、MV01の動きIDに対応する動作として検出する。
(ステップS150:コマンドを登録する際の特徴量から動作を分類する処理について)
動作決定部120は、抽出部110によって抽出された後、記憶部200の特徴抽出履歴DB220に記憶されている複数の特徴量を読み出して、読み出した複数の特徴量の出現頻度に基づいて、動作を分類する。例えば、動作の分類の処理には、ステップS130において検出した動作の動きIDに対してクラスタリング処理の手法を適用する。選択する手法に応じて、詳細の手順が若干異なる。
ここでは、動作を分類する際のクラスタの数を予め指定できる場合を例に挙げて説明する。上記の場合には、k平均法として知られているクラスタリングの手法を適用する。例えば、予定するコマンドの数より大きい値をkの値にする。例えば、動作決定部120は、k平均法により、k個のクラスタに、動作の特徴に応じて分類する。動作決定部120は、同じクラスタに分類された特徴量には、同じラベルを付与して、検出された特徴量に付与されたラベルの値を検出された特徴量ごとに関連付けて、特徴抽出履歴DB220に記憶させる。また、同じクラスタに分類されたそれぞれの動作の特徴量に基づいて、そのクラスタを代表する特徴量の値を算出する。例えば、この代表する特徴量の値を、当該クラスタに分類された各動作の平均値にする。動作決定部120は、算出した代表値、同じクラスタと判定するための範囲を定めるデータをクラスタ情報DB230に記憶させる。
なお、特徴量からの動作の分類にあたり、クラスタリング処理による手法を一例として例示したが、特徴量に対する機械学習を実施する他の手法を適用してもよい。例えば、他の手法として、Adaboostなどの識別器を用いる手法、ディープラーニングなどのニューラルネットワークを用いる手法、サポートベクタマシンによる手法、ランダムフォレストによる手法などが挙げられる。Adaboostなどの識別器を用いる手法では、例えば、識別器が正しく識別した結果が間違っていた場合には、間違って識別した標本の重みづけを調整し、次回以降の識別処理の正解率を高めることができる。ディープラーニングなどのニューラルネットワークを用いる手法では、階層的な処理により特徴量を抽出する処理を実施できる。サポートベクタマシンによる手法では、分類された特徴量(標本)に基づいて、上記の分類を最も正しく判定する面(平面、線)を規定して、規定した面等に基づいた判定を実施できる。ランダムフォレストによる手法では、特徴量を識別するための決定木を定義して、決定木の各ノードで選択する属性をランダムに選択する処理を実施できる。上記のとおり各手法には、それぞれの特徴がある。幾つかの手法を試用して、正しく分類できるものを選択してもよい。動作決定部120を複数の手法を実施できるように構成し、最も正しく分類できた手法を、動作決定部120が選択するように構成してもよい。
また、動作決定部120は、上記のように分類された各クラスタに含まれる要素の数を算出する。ここで、動作決定部120は、要素の数が多い複数のクラスタをコマンドに割り付ける動作の候補として選択する。
(ステップS170:コマンドを登録する際の入力動作をコマンドに関連付ける処理について)
関連付け部130は、上記のようにして動作決定部120により決定された入力動作と、予め定められた複数の命令(コマンド)のいずれかとを関連付ける。予め定められた複数の命令(コマンド)は、記憶部200のコマンドテーブル240に記憶されている。
図9は、本実施形態のコマンドを規定する情報の一例を示す表である。図9に示すコマンドテーブル240には、コマンドを規定する情報として、コマンドIDとコマンドを示す情報とが関連付けられている。コマンドIDとは、後述のコマンドを識別する識別情報である。コマンドを示す情報とは、電子制御装置1に実行させる処理を示す情報であり、予め定められている。例えば、識別情報をCM01とするコマンドは、「電話に適した環境にする」こととして定められている。図9に示される他の識別情報に対応するコマンドも同様に定められている。
(ステップS190:コマンドを登録する際の入力動作をコマンドに関連付ける処理について)
関連付け部130は、上記のようにして動作決定部120により決定された入力動作と、コマンドテーブル240に予め定められた複数の命令(コマンド)のいずれかとを関連付けて、関連付けた結果を命令テーブル250に記憶させる。
<電子制御装置1にコマンドを実行させる処理の概要について>
次に、図4に示す電子制御装置1にコマンドを実行させる際の各種処理について説明する。図10は、本実施形態に係る電子制御装置1にコマンドを実行させる処理の概略を示すフローチャートである。
制御部100は、次の手順に従って、記憶部200にコマンドを登録する。制御部100は、ユーザの操作に応じてコマンドの実行準備処理をする(ステップS210)。制御部100は、撮像部10が撮像した画像から被写体の動きの特徴量を抽出する(ステップS230)。制御部100は、抽出した特徴量からユーザの動作を分類する(ステップS250)。制御部100は、分類結果の入力動作をコマンドに関連付ける(ステップS270)。制御部100は、記憶部200に登録されたコマンドを実行する(ステップS290)。
<電子制御装置1にコマンドを実行させる処理の詳細について>
次に、図4に示す電子制御装置1にコマンドを実行させる際の各ステップの処理の詳細な一例について説明する。
(ステップS230:コマンドを実行させる際のユーザの特徴量を抽出する処理について)
抽出部110は、撮像部10が撮像した画像からユーザU1の動きの特徴量を抽出して、抽出したユーザU1の動きの特徴量を動作決定部120に供給する。
(ステップS250:コマンドを実行させる際の入力動作をコマンドに関連付ける処理について)
動作決定部120は、選択したクラスタに対応する入力動作を決定して、決定した入力動作を命令実行部150に供給する。例えば、前述のとおり記憶部200のクラスタ情報DB230には、入力動作に係るデータであるクラスタを代表する特徴量の値が記憶されている。動作決定部120は、クラスタ情報DB230に記憶されているクラスタを代表する特徴量の値に基づいて、抽出部110によって抽出された複数の特徴量から、その複数の特徴量に対応するクラスタを選択する。動作決定部120は、選択したクラスタに対応する入力動作を決定して、決定した入力動作を命令実行部150に供給する。
(ステップS270:登録されたコマンドを実行させる処理について)
命令実行部150は、動作決定部120において決定された入力動作に応じて、記憶部200に記憶されている複数の前記命令のうち、前記入力動作に関連付けられている命令を実行する。例えば、コマンドを登録する処理において、関連付け部130によって、動作決定部120により決定された入力動作と、予め定められた複数の命令のいずれかとを関連付けて記憶部200に記憶されている。命令実行部150は、関連付け部130によって入力動作に関連付けられている命令を、記憶部200に記憶されているコマンドに応じた処理を実行する。
<時系列データの類似性の判定処理について>
動作決定部120は、時系列データとして検出した複数の特徴量のうちから、時系列での類似度が所定以上となる特徴量を検出する。その類似度が所定以上となる特徴量の検出について説明する。
特徴抽出履歴DB220は、ユーザU1の動きの特徴量のデータを時系列データとして記憶する。例えば、特徴抽出履歴DB220は、前述の図2に示したように左肘の角A11、右肘の角A12、並びに、左掌の点P13、右掌の点P16について、それぞれの状態を示す情報を1分周期でサンプリングされた時系列データとして記憶する。
ここで、図11を参照して、単変数を検出対象にした場合について、左肘の角A11を例にして説明する。図11は、所定の期間の左肘の角A11の変化と頻度分布の関係を示す図である。一例において、図11(a)に示すように左肘の角A11が、時刻t11までの期間において、左肘の角A11が180度近傍の値を示し、時刻t12からt13において、左肘の角A11が30度近傍の値を示す。その後、左肘の角A11が、時刻t21までの期間において、左肘の角A11が180度近傍の値を示し、時刻t22からt23において、80度近傍の値を示している。例えば、図11(a)に示す例は、時刻t12からt13までの間に電話をかけていた場合、時刻t22からt23までの間に腕組みをしていた場合に対応する。時刻t12からt13、又は、時刻t22からt23のように同じ姿勢をとっていた期間にあたり、その期間の標本点が示す数値の変化が少なくなっている。このように、同じ姿勢をとっている期間を、標本点が示す数値の変化が少なくなる期間を検出することにより抽出できる。例えば、図11(b)に示すように、動作決定部120は、連続する複数の標本点が示す数値から分散(又は標準偏差)を算出して、算出した分散(又は標準偏差)の値が、予め定めた所定の値より小さくなった期間を検出することにより、上記の期間を抽出するようにしてもよい。又は、動作決定部120は、標本値の分類結果に応じて、ある分類から他の分類に遷移したことを検出することにより、上記のような分類間の遷移を検出するようにしてもよい。
上記の図11(a)に示す動作が検出された場合の各標本点の頻度分布を図11(c)に示す。図11(c)の縦軸に左肘の角A11の値、横軸に同値を検出した度数を示す。図11(c)に示されるように、30度近傍と80度近傍と180度近傍の数値をとる標本点が検出された度数が高いことが分かる。そこで、ある閾値を定め、その閾値以上の度数を示す角度領域を抽出する。ここでは、前述の30度と80度近傍と180度近傍の数値をとる標本点を含む角度領域が抽出される。抽出した角度領域のそれぞれにおいて、各角度領域のうちで局所的に頻度が高い角度、各角度領域の標本点が示す数値の平均値、又は、各角度領域の中央値などを当該角度領域の代表値にする。上記のように定めた代表値を基準にして、代表値から所定の範囲に含まれる標本点について、互いの類似度が所定以上になった標本点とする。このような方法により、動作決定部120は、時系列での類似度が所定以上となる特徴量について判定することができ、その判定の結果から、同じ特徴量とみなした標本点の出現頻度を計数することができる。
次に、図12を参照して、多変数を検出対象にした場合について説明する。以下の説明において、説明を簡略化するために2変数の場合として、左肘の角A11と右肘の角A12を例に挙げて説明する。図12は、時系列データとして記憶した左肘の角A11と右肘の角A12の組を変数とする標本点の散布図である。図12において、領域Z121からZ126に示す領域に標本点の密度が高くなる領域が生じている。例えば、領域Z121は、左肘の角A11が30度近傍を示し、右肘の角A12が130度近傍から180度近傍までの範囲を示す。領域Z122は、左肘の角A11が30度近傍を示し、右肘の角A12が80度近傍から120度近傍までの範囲を示す。領域Z123は、右肘の角A12が30度近傍を示し、左肘の角A11が130度近傍から180度近傍までの範囲を示す。領域Z124は、右肘の角A12が30度近傍を示し、左肘の角A11が80度近傍から120度近傍までの範囲を示す。領域Z125は、左肘の角A11と右肘の角A12がともに70度近傍から100度近傍までの範囲を示す。領域Z126は、左肘の角A11と右肘の角A12がともに180度近傍の値を示す範囲を示す。
領域Z121からZ126の各領域は、例えば、次の動作に対応する。領域Z121と領域S122は、左手で受話器(携帯端末)を支持して電話をする動作に対応する。領域Z123と領域S124は、右手で受話器(携帯端末)を支持して電話をする動作に対応する。領域Z125は、腕組みをする動作に対応する。領域Z126は、手を下げた状態に対応する。
受話器(携帯端末)を支持する手として左手を多く利用するか右手を多く利用するかは、ユーザの習慣やユーザの利き手に依存する。図12に示す例では、主に左手で受話器(携帯端末)を支持するユーザの場合を示している。
また、受話器(携帯端末)を支持して電話をする際に、ユーザが立った姿勢で電話をする場合には、領域Z121又は領域Z123に標本点が分布する。一方、ユーザが机を前にして着席した姿勢で電話をする場合には、領域Z122又は領域Z124に標本点が分布する。例えば、電話をしながら机上でメモをとる場合の姿勢が挙げられる。
図12に示すように、標本点の密度が高くなる領域を動作の履歴情報を用いて抽出することにより、抽出した領域に対応する動作をユーザが繰り返し実施していることを検出できる。また、領域Z121からZ126のように領域を定義することにより、時系列データを示す標本点の散布図上の位置が、時系列順に連続して互いに同じ領域内に留まる場合には、同標本点が示す動作の特徴量の時系列での類似度が所定以上となっているとみなすことができる。動作決定部120は、時系列での類似度が所定以上となる特徴量について判定して、その判定の結果から、同じ特徴量とみなした標本点の出現頻度を計数する。
例えば、動作履歴データに基づいた各標本点のデータに対してクラスタリング処理をすることにより、図12に示す領域を抽出することができる。動作決定部120は、クラスタリング処理を実施して、その結果に基づいて、ユーザが多く実施する動作を抽出してもよい。動作決定部120は、クラスタリング処理により得られた各クラスタの範囲を示すデータを利用して、当該クラスタに対応する動作であるか否かを判定する動作の検出処理を実施することができる。例えば、時刻t11の標本点が領域Z126に含まれており、時刻t12の標本点が領域Z121からZ124の何れかの領域に含まれていることが検出できた場合、ユーザが電話をかける動作を行ったものと判定することができる。
上記のように、多変数による処理にしたことにより、ユーザの動作の分類を実施しやすくできる。なお、上記の説明において、2つの変数を用いる処理について示したが、変数の個数や種類に制限はなく、検出する動作に応じて適したものを選択できる。
また、上記のようにして、抽出した角度領域の値が検出された場合に、その姿勢に対応する命令を関連付ける。動作決定部120は、抽出された特徴量の出現頻度に応じて入力動作を決定するが、抽出された特徴量の出現頻度が第1のしきい値以上である場合に、前記入力動作を決定したことにより、抽出された特徴量が所定の頻度を超える場合に、動きとコマンドとをタグ付けすることができる。
このような判定処理を実施することにより、ユーザがあまりとらない身振りや、検出しにくい身振りに対しては、コマンドを選択するための候補から外すことができる。
(第1の実施形態の第1変形例)
上記の実施形態において、動作決定部120は、前記抽出された特徴量の出現頻度が第1のしきい値以上である場合に、前記入力動作を決定している。上記の実施形態の第1変形例として、動作決定部120は、前記抽出された特徴量の出現頻度が前記第1のしきい値よりも大きい第2のしきい値未満である場合に、前記入力動作を決定してもよい。このように、抽出された特徴量の出現頻度が前記第1のしきい値よりも大きい第2のしきい値未満である場合に、前記入力動作を決定することにより、ありふれた動作(頻度が高すぎる動作)を除外することができる。例えば、図12の散布図において、領域Z126にあたる動作は、両手を下げた姿勢に当たり、ユーザが立った姿勢であればというるものである。このような領域Z126は、図11(c)の180度近傍の領域に当たる。
そこで、単変数の場合は、図11(c)に示すように2つの閾値を定義して、180度近傍の領域を動作の候補から外して、30度近傍と80度近傍の数値をとる標本点を検出対象とする。
また、多変数の場合は、図12に示す領域(クラスタ)のうちで、それぞれの領域に含まれる標本点の個数が第1の閾値より多く、第1の閾値より大きい第2の閾値未満の領域(クラスタ)については、動作決定部120は、入力動作を割り付ける候補にする。それとともに、動作決定部120は、標本点の個数が第2の閾値以上の領域(クラスタ)については入力動作を割り付ける候補から外す。上記の処理により、図12に示す領域(クラスタ)のうちで入力動作を割り付ける候補にする領域(クラスタ)は、領域Z121からZ125にする。
なお、多変数の場合において、互いに同期するあるタイミングに標本化された各標本値を纏めて、状態ベクトルとして扱うようにしてもよい。この場合、散布図に示す標本点は、各タイミングの状態ベクトルになる。
(第1の実施形態の第2変形例)
上記の第1の実施形態、同実施形態の第1変形例において、ユーザの身振りに基づいてコマンドを実行させる構成の一例について説明した。上記の第1の実施形態の第2変形例として、ユーザの手振りに基づいてコマンドを実行させる構成の一例について説明する。
図13と図14を参照して、ユーザの手振りによる動作の特徴量の一例について説明する。
図13は、本実施形態の電子制御装置1が検出する動作の特徴量の他の一例について示す模式図である。図14は、図13に例示した手振りによる種々の動作の特徴量を示す説明図である。
このうち図13(a)は、壁面を指差す動作を示す図である。ユーザが壁面を指差す動作を行う場合、手H11の親指T11が線L11に沿って伸ばされ、人差し指F11が線L12に沿って伸ばされる。この線L11とは、線L12とのなす角度が角R11である線である。また線L12とは、手H11から壁面に向かう線である。例えば、図13(a)に示す手振りの特徴量を、線L11に向かう単位ベクトルと線L12に向かう単位ベクトルの内積IP11にする。
図13(b)は、机上を指差す動作を示す図である。ユーザが机上を指差す動作を行う場合、手H21の親指T21が線L21に沿って伸ばされ、人差し指F21が線L22に沿って伸ばされる。この線L21および線L22とは、手H21から机上に向かう線である。例えば、図13(b)に示す手振りの特徴量を、線L21に向かう単位ベクトルと線L22に向かう単位ベクトルの内積IP21にする。
図13(c)は、手に物を載せる動作を示す図である。ユーザが手に物を載せる動作を行う場合、手H31の親指T31が線L31に沿って伸ばされ、人差し指F31が線L32に沿って伸ばされる。また、ユーザが手に物を載せる動作を行う場合、中指F32が線L33に、薬指F33が線L34に、小指F34が線L35にそれぞれ沿って伸ばされる。例えば、図13(c)に示す手振りの特徴量を、線L31に向かう単位ベクトルと線L32に向かう単位ベクトルの内積IP3にする。さらに、図13(c)に示す手振りの特徴量として、必要に応じて、線L31に向かう単位ベクトルと線L33、線L34に向かう単位ベクトルの内積IP33,IP34を付加してもよい。
図13(d)は、手で物をつかむ動作を示す図である。ユーザが手で物をつかむ動作を行う場合、手H41の親指T41が線L41に沿って伸ばされ、人差し指F41が線L42に沿って伸ばされる。また、ユーザが手で物をつかむ動作を行う場合、中指F42が線L43に、薬指F43が線L44に、小指F44が線L45にそれぞれ沿って伸ばされる。例えば、図13(d)に示す手振りの特徴量を、線L41に向かう単位ベクトルと線L42に向かう単位ベクトルの内積IP41にする。さらに、図13(d)に示す手振りの特徴量として、必要に応じて、線L41に向かう単位ベクトルと線L43、線L44に向かう単位ベクトルの内積IP43,IP44を付加してもよい。
上記の図13にそれぞれ示すように、手振りによる種々の動作の特徴量は、各指が伸ばされる(または、握られる)方向によって表すことができる。例えば、手振りによる種々の動作の特徴量を、各指が伸ばされる(または、握られる)方向を示すベクトルの内積としてもよい。以下の説明では、親指が指す方向を示す単位ベクトルと、親指と同じ手にある他の指が指す方向を示す単位ベクトルの内積を用いて説明する。より具体的には、親指が指す方向を示す単位ベクトルに対し、人差し指が指す方向を示す単位ベクトルの内積IP1と、中指が指す方向を示す単位ベクトルの内積IP2と、薬指が指す方向を示す単位ベクトルの内積IP3と、小指が指す方向を示す単位ベクトルの内積IP4とを用いて説明する。
上記の図13に示す何れか又は複数の動作の特徴量を変数にして、第1の実施形態と同様の方法により、ユーザの動作に基づいて、電子制御装置1を制御することができる。
(第1の実施形態の第3変形例)
上記の第1の実施形態、同実施形態の第1変形例と第2変形例とにおいて、各コマンドをユーザの身振り又は手振りに基づいて登録する構成の一例について説明した。前述の図1から図16を参照して、上記の第1実施形態の第3変形例として、ユーザの操作に基づいてコマンドを登録する構成の一例について説明する。
図15は、本実施形態に係る記憶部200が記憶している画像ファイルに基づいた表示画像の一例を示す図である。図15に示す1500は、表示領域を示す。表示領域1500には、ユーザに操作を促すメッセージ1510と、選択ボタン1520と1530が表示されている。
ここで、選択ボタン1520には「電話に適した環境にする」と示されており、選択ボタン1530には「メモ帳を起動する」と示されている。各操作ボタンに表示される内容は、前述の図9に示す「コマンド」の項目に対応するものである。
また、表示領域1500において、選択ボタン1520と1530の上方には、ユーザに操作を促すメッセージ1510として、「コマンドの候補を提示します。動作に関連付けたいコマンドを選択してください。」という表示がされるように構成されている。
図4と図16を参照して、コマンドを登録する構成例について説明する。図16は、本実施形態のコマンドを登録する命令テーブルの一例を示す図である。図16に示す命令テーブル250には、ユーザを識別する識別情報(ユーザID)に、動きID、出現頻度、関連付け候補コマンドID、コマンドIDを示す各情報を関連づけて記憶する。
ユーザを識別する識別情報(ユーザID)は、前述の図7を参照する。動きIDは、前述の図8を参照する。出現頻度は、動きIDに対応する動作を識別した回数を示す。関連付け候補コマンドIDは、動きIDに対応する動作に対応付けられたコマンドの候補を識別する識別情報を示す。コマンドIDは、関連付け候補コマンドIDに対応するコマンドの候補に基づいて設定されたコマンドの識別情報を示す。
一例において、図16に示すように、ユーザIDをU1に対応するユーザについて、電話をする動作(MV01)が20回検出され、腕組みする動作(MV02)が5回検出され、プレゼンテーションをする動作(MV03)が1回検出されたことが記憶されている。
電話をする動作(MV01)、腕組みする動作(MV02)、及びプレゼンテーションをする動作(MV03)には、関連付け候補コマンドIDによりCM01,CM02、CM03として識別されるコマンドの候補が対応づけられている。
関連付け部130が入力動作と命令(コマンド)とを関連付けることは前述したとおりである。提示部140は、前述の図15に示した表示画像のように、入力動作と命令(コマンド)とを関連付けるための候補を提示する。
ここで、前述の図15に示す画面の案内に従って、ユーザがコマンドを選択する操作を行うことにより、関連付け部130は、ユーザの指示に従って、関連付け候補コマンドIDにより示されるコマンドの候補を実際に使用するコマンドとして登録する。例えば、図15に示す画面の案内に従って動きID(MV01)に対応する動作のコマンドを設定するにあたり、選択ボタン1520が操作され、コマンドの候補(CM01)として抽出されていたコマンドがユーザによって選択された場合には、関連付け部130は、コマンドの候補とされていたコマンドと同じコマンド(CM01)を実際に使用可能なコマンドとして命令テーブル250登録する。
(第1の実施形態の第4変形例)
制御部100は、撮像部10の光学系と照射部14の光学系を共通にして一体に構成してもよい(一体に構成された装置を撮像照射装置C1と称する)。例えば、制御部100は、撮像部10の光軸と照射部14の光軸を同じにしてもよい。
図17は、本実施形態の変形例4に係る撮像照射装置C1の構成の一例を示す構成図である。図17において、撮像照射装置C1は、照射光生成部C112、入出光分離部C131、光学部C132、及び固体撮像部C141を備える。
照射光生成部C112は、制御部100からの制御に基づいて、照射する画像を表す光を生成し、生成した光を出力する。
入出光分離部C131は、光学部C132と照射光生成部C112の間の光路上であって、光学部C132と固体撮像部C141の間の光路上、に設けられている。入出光分離部C131は、撮像照射装置C1が外部へ出射する出射光と、外部から撮像照射装置C1へ入射する入射光の光路を分離する。例えば、入出光分離部C131は、照射光生成部C112から入射された光の少なくも一部を透過し、光学部C132から入射された光の少なくも一部を反射する。入出光分離部C131は、例えばハーフミラーであり、入射した光の一部を反射し、一部を透過する。これにより、撮像照射装置C1は、照射と撮像で光学部C132を共通にできる。また、撮像照射装置C1は、照射と撮像の光軸を同じにできる。
光学部C132は、例えば複数枚のレンズで構成される。固体撮像部C141は、例えば、CMOS(相補性金属酸化膜半導体)イメージセンサである。
照射光生成部C112から出力された光は、入出光分離部C131を透過し、光学部C132を介して照射される。一方、撮像照射装置C1の外部から光学部C132へ入射された光は、入出光分離部C131で反射された後、反射部C140で反射される。反射部C140で反射された光は、固体撮像部C141へ入射し、光電変換によって画像を示すデータに変換される。
以上のように、撮像照射装置C1は、照射と撮像で光軸を同じできる。これにより、制御部100は、照射したスポットを同じ光軸の撮像画像でそのまま認識できるので、スポットの調整を容易にできる。また、撮像照射装置C1は、光学系を共通にするので、光学系を共通にしない場合と比較して、スペースを省くことができ、また、コストを下げることができる。また、ユーザは、光学系から光が照射されているので、撮像されていることに気づき難い場合がある。これにより、ユーザは、カメラで撮影されていることを意識することなく、電子制御装置1を利用できる。
なお、撮像照射装置C1において、照射と撮像で、独立して焦点を合わせる機能を有してもよい。例えば、撮像照射装置C1は、光学部C132と照射光生成部C112の間の光路上に可動レンズが設けられてもよい。また、撮像照射装置C1は、光学部C132と固体撮像部C141の間の光路上に可動レンズが設けられてもよいし、固体撮像部C141が可動である構成であってもよい。これにより、撮像照射装置C1は、照射と撮像各々で、焦点を合わせることができる。
なお、光学部C132は、例えば魚眼レンズであってもよい。これにより、電子制御装置1は、広範囲に照射でき、広範囲で撮像できる。
以上の実施形態において示したように、電子制御装置1は、ユーザの動きに応じたユーザの意図を推定できる
(第2の実施形態)
第1の実施形態の電子制御装置について、身振り又は手振りの何れか一方を利用する処理を例示した。この第2の実施形態では、前述の図1から図10、図12から図15などを参照して、身振りと手振りの双方を組み合わせて利用する処理の一例について説明する。
例えば、コマンドの種類が多い場合、又は、1つのコマンドを選択するために複数のステップを要する場合などでは、身振り又は手振りの何れか一方を利用して構成することができるコマンドの数が不足することが生じ得る。或いは、身振りと手振りを組み合わせることにより、動作の検出精度を高めることができる。
身振りに基づいた動作の特徴量によるn個の変数を有する状態ベクトルXBkと、手振りに基づいた動作の特徴量によるm個の変数を有する状態ベクトルXHkとを、式(1)と式(2)にそれぞれ示す。状態ベクトルXBkと状態ベクトルXHkのそれぞれの変数は、タイミングkに同期して標本化されたものとする。
XBk=[xb1 ・・・ xbn]T ・・・(1)
上記式(1)において、(xb1、・・・、xbn)(但し、nは自然数)は、前述の図2に示したように左肘の角A11、右肘の角A12、並びに、左掌の点P13、右掌の点P16などの変数に対応し、タイミングk時点の数値を示す。添え字の「T」は、転置ベクトルを示す。
XHk=[xh1 ・・・ xhm]T ・・・(2)
上記式(2)において、(xh1、・・・、xhn)(但し、mは自然数)は、前述の図13に示したように各指が伸ばされる(または、握られる)方向を示すものとする。例えば、タイミングk時点の各指が伸ばされる(または、握られる)方向を示すベクトルを検出して、上記の各変数を、そのベクトルの内積にする。上記のとおり、内積を変数にした場合、状態ベクトルXHkの各変数をスカラーにすることができる。
ここで、状態ベクトルXBkと状態ベクトルXHkを合成した合成状態ベクトルXMkを、例えば式(3)のように定義する。
XMk=[XBk XHk]T ・・・(3)
上記のように定義したことにより、合成状態ベクトルXMkの次数は、(n+m)次になる。
合成状態ベクトルXMkを用いる場合には、状態ベクトルXBkや状態ベクトルXHkを単独で用いる場合に比べてベクトルの次数が高くなるが、第1の実施形態に示した多変数の場合の処理と同様の手法を用いて処理することができる。
上記の本実施形態に示したようにベクトルの次数が高くなると、それに応じて演算処理の負荷が高くなる。ただし、上記に応じて各データを組み合わせて判定できるようになり、所望の動作を検出する精度を高めることができる。
(第3の実施形態)
第1の実施形態と第2の実施形態では、ユーザの動作を検出するにあたり、ユーザを特定することなく、各ユーザに共通の処理を実施していた。この第3の実施形態においては、前述の図1から図10、図12から図18などを参照して、ユーザを特定する処理の一例について説明する。
<ユーザ認証処理について>
前述の図4に戻り、識別部160は、画像変換部120から入力された撮像画像に基づいて、撮像画像中のユーザを識別する。すなわち、識別部160は、撮像部10が撮像した画像に基づいてユーザを識別する。以下、識別部160が行うユーザ識別処理の具体例について説明する。
識別部160は、撮像部10が撮像した画像にユーザの画像が含まれている場合に、そのユーザの画像と、記憶部200が記憶しているユーザの特徴量を示す情報とに基づいて、ユーザを識別する。
図18は、本実施形態のユーザの特徴量を規定する情報の一例を示す表である。図18に示すコマンドテーブル240には、ユーザを識別する識別情報(ユーザID)に、ユーザの特徴を示す情報を関連づけて記憶する。図18に示すように、ユーザの特徴を示すデータには、個人を特定するためのデータ(特徴量A)と、コマンドを検出するための対象にする特徴量(特徴量B)とが含まれる。例えば、個人を特定するためのデータには、性別、利き手、年齢、身長、顔の特徴などの項目が含まれる。コマンドを検出するための対象にする特徴量には、前述の各特徴量(A11、A12、P13、P16等)が含まれており、動きIDに各データが関連付けられている。
上述したように、記憶部200が記憶している特徴量は、1つであってもよく複数であってもよい。画像変換部120から撮像画像が入力されると、識別部160は、この撮像画像からユーザの画像を抽出して、特徴量を算出する。次に、識別部160は、算出した特徴量と、記憶部200が記憶しているユーザの特徴量との一致度を判定する。この一致度が高いほど、撮像部10が撮像したユーザが、登録済みのユーザである確率が高い。識別部160は、この一致度が所定のしきい値よりも高いと判定した場合には、この特徴量を示す情報に関連付けられているユーザIDを提示部140に出力する。また、識別部160は、この一致度が所定のしきい値以下であると判定した場合には、ユーザIDを提示部140に出力しない。また、記憶部200が記憶している特徴量が、例えば、特徴量A、特徴量Bのように複数ある場合には、識別部160は、これらの特徴量毎に、算出した特徴量との一致度を判定する。このようにして、識別部160は、部屋Rを利用するユーザが、登録済みのユーザであること識別する。これにより、電子制御装置1は、部屋Rの中に登録済みのユーザがいない場合には、画像を表示しないようにすることができる。この識別部160によれば、上述した具体例において、部屋Rの机TBLにプロジェクトP1の資料が置いてある場合であっても、ユーザU1が部屋Rの中にいない場合には、プロジェクトP1に関連する画像を表示しないようにすることができる。このように識別部160を備えることによって、電子制御装置1は、識別されないユーザに対して画像を表示しないようにすることができる。
なお、識別部160は、登録されていないユーザについてはユーザIDを出力しない例について説明したがこれに限られない。例えば、識別部160は、登録されていないユーザが部屋Rの中にいる場合には、このユーザを新規に登録することもできる。具体的には、識別部160は、撮像画像から抽出されたユーザの特徴量と、記憶部200が記憶しているユーザの特徴量との一致度が所定のしきい値以下であると判定した場合には、新たなユーザIDを生成する。次に、識別部160は、生成したユーザIDと撮像画像から抽出されたユーザの特徴量を示す情報とを関連付けて記憶する。さらに識別部160は、生成したユーザIDを取得部123に出力する。これにより、電子制御装置1は、ユーザが操作を行うことなく、登録されていないユーザを登録することができる。
なお、上記実施形態(変形例含む)において、抽出部110は、撮像部10が撮像した画像から被写体の動きの特徴量を抽出する。動作決定部120は、複数の特徴量の出現頻度に基づいて、入力動作を決定する。関連付け部130は、前記入力動作と予め定められた複数の命令のいずれかとを関連付けて記憶部200に記憶させる。命令実行部150は、撮像部10から撮像された画像に前記入力動作が含まれる場合、前記記憶部200に記憶されている複数の前記命令のうち、前記入力動作に関連付けられている命令を実行する。上記のように構成した電子制御装置1において、記憶部200に記憶されている複数の前記命令には、少なくとも入力動作に関連付けられている命令がある。撮像部10から撮像された画像に前記入力動作が含まれる場合、電子制御装置1は、記憶部200に記憶されている複数の前記命令のうち、前記入力動作に関連付けられている命令を実行することにより、ユーザの動きに応じたユーザの意図を推定して、推定した意図に応じた処理を実施することができる。
また、上記のように構成した電子制御装置1において、識別部160は、前記撮像部10が撮像した画像の前記被写体を識別する。関連付け部130は、識別部160によって識別された前記被写体を示す識別情報と、前記入力動作と、前記命令とを関連付けて記憶部200に記憶させる。命令実行部150は、記憶部200に記憶されている複数の前記命令のうち、前記識別された前記被写体を示す前記識別情報と、撮像部10が撮像した画像に含まれる入力動作とに関連付けられている命令を実行する。これにより、電子制御装置1は、ユーザIDなどの識別情報に基づいて、ユーザ毎に異なる入力動作に関連付けられている命令を実行することができる。
また、上記のように構成した電子制御装置1において、動作決定部120は、前記複数の特徴量のうち、時系列での類似度が所定以上となる特徴量を、同じ特徴量として出現頻度を計数する。これにより、時系列での類似度が所定以上となる特徴量の頻度を検出することができる。
また、上記のように構成した電子制御装置1において、動作決定部120は、前記抽出された特徴量の出現頻度が第1のしきい値以上である場合に、前記入力動作を決定する。これにより、時系列での類似度が所定以上となる特徴量の頻度を抽出し、前記抽出された特徴量の出現頻度が第1のしきい値以上である場合の特徴量に基づいて入力動作を決定することができる。
また、上記のように構成した電子制御装置1において、動作決定部120は、前記抽出された特徴量の出現頻度が前記第1のしきい値よりも大きい第2のしきい値未満である場合に、前記入力動作を決定する。これにより、ありふれた姿勢に対応する特徴量を、抽出対象の特徴量から除くことができ、入力動作の検出を容易にすることができる。
また、上記のように構成した電子制御装置1において、提示部140は、関連付け部130が前記入力動作と関連付ける前記命令の候補を提示する。関連付け部130は、前記入力動作と、提示部140が提示した前記命令の候補から選択された命令とを関連付けて記憶部200に記憶させる。これにより、ユーザは、提示部140が提示した表示により、その表示が示す命令の候補に、前記入力動作と関連付けることができる。
また、上記のように構成した電子制御装置1において、選択部170は、前記入力動作に基づいて、前記複数の命令のなかから前記入力動作に対応する命令を選択する。関連付け部130は、前記入力動作と、前記選択された前記命令とを関連付けて記憶部200に記憶させる。これにより、電子制御装置1は、前記入力動作に基づいて、選択部170が複数の命令のなかから選択した命令を、入力動作に対応する命令として自動でタグ付けすることができる。
なお、具体例として、電子制御装置1が部屋Rの天井SLに設置されている場合について説明したが、これに限られない。例えば、電子制御装置1は、部屋Rの壁面WL(例えば、壁面WL3)や、机TBLの上面などに設置されていてもよい。
また、撮像領域IAの例として、撮像領域IA1〜IA5について説明したが、これに限られない。天井SLや、部屋R内の不図示の他の壁面WL、または部屋R内の不図示の物体が撮像領域IAであってもよい。
また、表示領域DAの例として、表示領域DA1〜DA3について説明したが、これに限られない。天井SLや、部屋R内の不図示の他の壁面WL、または部屋R内の不図示の物体が表示領域DAであってもよい。
なお、上述した実施形態における電子制御装置1の一部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、電子制御装置1に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。また、上述した実施形態における電子制御装置1の一部、または全部を、LSI(Large Scale Integration)等の集積回路(回路(circuitry))として実現してもよい。電子制御装置1の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、一の実施形態と別の実施形態とを適宜組み合わせ可能である。
例えば、図12に示した散布図は、2つの変数を用いる場合について示したものであり、3つ以上の変数を用いる場合には変数の個数に応じた空間の座標を定義して、同空間における標本点の分布から動作の特徴量の類似度を判定することができる。
また、本発明の一態様は、コンピュータに、画像を撮像する撮像ステップと、前記撮像ステップにおいて撮像された画像から被写体の動きの特徴量を抽出する抽出ステップと、前記特徴量を複数取得して記憶する記憶ステップと、出現頻度が予め定められた第1のしきい値以上である前記特徴量に対応する前記被写体の動きを、新たに入力動作として設定することを決定する動作決定ステップと、前記入力動作と、予め定められた複数の命令のいずれかの命令とを関連付けて記憶部に記憶させる関連付けステップと、前記撮像された画像に前記入力動作が含まれる場合、前記記憶部に記憶されている複数の前記命令のなかから、前記入力動作に関連付けられている命令を実行する命令実行ステップと、を実行させるための電子制御プログラムである。