説明

姿勢判定方法、プログラム、装置、システム

【課題】本発明は、ユーザおよび用途を限定しないNUI(Natural User Interface)を提供することを目的とする。
【解決手段】本発明においては、予め定義された基準姿勢とユーザがとった姿勢の間の類似度を各姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を用いた評価関数によって計算し、所定の閾値に基づいて姿勢の類似度を判定する。本発明においては、2つのパラメータ(基準姿勢の3次元ベクトルおよび類似度の閾値)をユーザが自由に設定することができるので、それぞれのユーザの条件(身体条件・環境条件)および用途に合致したNUIを容易に構築することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人体の姿勢を判定する技術に関し、より詳細には、当該技術を利用したNUI(Natural User Interface)に関する。
【背景技術】
【0002】
近年、手や指など身体を使ったジェスチャー(ユーザの姿勢や動作)によって、コンピュータや家電などの電子機器をハンズフリーで直観的に操作するための方法が種々検討されている。このような手法は、NUI(Natural User Interface)と呼ばれ、従来のコマンドライン入力(CUI)やグラフィカルユーザ入力(GUI)に続く、次世代の機器操作方法として注目を集めている。
【0003】
この点につき、特開2010−184600号公報(特許文献1)は、運転者の手の動き(ジェスチャー)をステレオカメラで撮影し、取得された画像と操作動作の標準パターン画像との間でパターンマッチングを行うことにより、操作の種類や操作量を判定する車載用ジェスチャースイッチ装置を開示する。しかし、このような2次元画像マッチング技術を用いた従来の手法は、計算負荷が膨大な上に、正確な空間認識が困難であるため、その精度およびリアルタイム性において実用レベルに達するものではなかった。
【0004】
一方、最近になって、テレビゲーム用に開発されたマイクロソフト社製のKINECT(登録商標)が注目を集めている。KINECT(登録商標)は、赤外線のランダムパターンを対象に照射し、その画像を解析することによって対象の奥行き情報を得る、いわゆるLight Coding技術をベースに開発されたモーションセンサデバイスであり、現在、KINECT(登録商標)の応用ソフトウェアのオープン開発が急速に進んでいる。そのような応用ソフトウェアのひとつとして、「Skelton Tracking」と呼ばれるアプリケーションが既に市場に流通している。これは、KINECT(登録商標)が取得した赤外線画像に基づいて人体の骨格姿勢(ボーンキネマティクス)をリアルタイムで推定・追跡するためのアプリケーションであり、KINECT(登録商標)の登場により、これまで商用ベースでは不可能であった3次元骨格姿勢のリアルタイム追跡を、エンドユーザが手軽に利用できる環境が整ってきている。
【0005】
このような状況を受けて、上述した人体の3次元骨格姿勢をリアルタイムに追跡する技術を、先に説明したNUI(Natural User Interface)へ応用展開することが検討されている。この点につき、図18に基づいて説明する。図18(a)は、ユーザの3次元骨格姿勢を利用した非接触型ポインティング・システム500を示す。非接触型ポインティング・システム500は、ユーザの手の3D画像情報(奥行き値を含む)を取得するための撮像装置502と、撮像装置502から転送される3D画像情報に基づいて所定の演算を実行する情報処理装置(図示せず)とを含んで構成されている。
【0006】
図18(a)に示すように、ディスプレイ装置504の画面上にはテンキー(GUI)が表示されている。ユーザは、テンキーの中から入力したい数を表示したキーを指さす。このとき、情報処理装置は、撮像装置502から転送される3D画像情報に基づいて、ユーザの手のボーンキネマティクスを取得し、ユーザがどのキーを指さしているのかを判定する。
【0007】
一見すると、このような機能を実現するためのプログラムを設計することは、さほど難しくないようにも思える。なぜなら、ユーザの人差し指がさしているディスプレイ画面上の座標は、ユーザの人差し指を構成する骨の3次元ベクトル(始点と方向)を外挿することによって簡単に判定することができるからである(図18(a)に示す場合、ユーザの人差し指は、数字「4」に対応する座標範囲をさしている)。
【0008】
しかし、残念ながらそう簡単に事は運ばない。なぜなら、ユーザの空間認識能力には、無視できない個体差があり、図18(b)に示すように、ユーザの人差し指が実際に指している位置(座標)と、ユーザが意図している位置(願望)が必ずしも一致しているとは限らないからである。この他にも、ユーザの身体条件(身長や座高等)、環境条件(ディスプレイに対するユーザの相対位置等)など、考慮しなければならない検討項目は多岐にわたる。
【0009】
したがって、これまでの手法では、ユーザの個体差(身体的・環境的)を吸収するためのアルゴリズムを設計するために、膨大な数のモデルを使ってデータを取得・解析する必要があり、デバイスに認識させたい内容(すなわち、ユーザのジェスチャーの種類)が増加するに従って、その開発コストは、膨大なものとなっていった。
【0010】
かくして、多大なリソースを投入した末に、膨大な数のパラメータによって動く非常に複雑なプログラムが出来上がる。しかし、どのような設計思想をもってしても、汎用性の向上に主眼をおく限り、一部のユーザは必ず取り残される運命にある。これまでの手法は、このような不幸なユーザを救済する術を持たなかった。そして、当然のことながら、これまでの手法は、開発者が予め設定したシチュエーション(例えば、「ユーザはディスプレイ装置に対面している」といったシチュエーション)にしか対応することできず、その用途は限定的なものにならざるを得なかった。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2010−184600号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、ユーザおよび用途を限定しないNUI(Natural User Interface)を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明者らは、ユーザおよび用途を限定しないNUI(Natural User Interface)の構成につき鋭意検討した結果、基準姿勢とユーザがとった姿勢の間の類似度を各姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を用いた評価関数によって計算し、所定の閾値に基づいて姿勢の類似度を判定する方法の着想を得た。本発明者らは、この着想をNUIに応用するべく、鋭意研究を行った結果、本発明に至ったのである。
【0014】
すなわち、本発明によれば、予め定義された基準姿勢の3次元骨格モデルを電子機器の制御コマンド名に紐付けて管理する基準3次元骨格モデル管理部と、モーションキャプチャデータから取得されるユーザの3次元骨格モデルと前記基準姿勢の3次元骨格モデルの間の類似度を判定する姿勢類似度判定部と、前記姿勢類似度判定部から前記制御コマンド名を通知されたことに応答して該制御コマンド名に対応する制御コマンドを生成する制御コマンド生成部とを含み、前記姿勢類似度判定部は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルのなす角度に基づいて前記類似度を計算し、該類似度が予め設定された閾値以上である場合に、該基準姿勢の3次元骨格モデルに紐付けられた前記制御コマンド名を前記制御コマンド生成部に通知する、電子機器制御装置が提供される。
【発明の効果】
【0015】
上述したように、本発明によれば、ユーザおよび用途を限定しない新規なNUI(Natural User Interface)が提供される。
【図面の簡単な説明】
【0016】
【図1】本発明の原理を説明するための概念図。
【図2】本発明の原理を説明するための概念図。
【図3】本実施形態の電子機器操作システムの機能ブロック図。
【図4】本実施形態の電子機器操作システムを適用した部屋の様子を示す図。
【図5】基準骨格モデルを登録するデータベースのデータ構造を示す図。
【図6】セットアップ・モード時に実行される処理のフローチャート。
【図7】本実施形態における操作機器選択画面を示す図。
【図8】本実施形態の電子機器操作システムを適用した部屋の様子を示す図。
【図9】通常動作モード時に実行される処理のシーケンス図。
【図10】本実施形態の電子機器操作システムを適用した部屋の様子を示す図。
【図11】本実施形態の電子機器操作システムを適用した部屋の様子を示す図。
【図12】本実施形態の電子機器操作システムを適用した部屋の様子を示す図。
【図13】本実施形態における閾値設定画面を示す図。
【図14】ユーザの機器指定姿勢に続く操作内容指定姿勢を示す図。
【図15】ユーザの機器指定姿勢に続く操作内容指定姿勢を示す図。
【図16】デジタル制御量を指定するための姿勢を示す図。
【図17】アナログ制御量を指定するための姿勢を示す図。
【図18】ユーザの3次元骨格姿勢を利用した従来の非接触型ポインティング・システムを示す図。
【発明を実施するための形態】
【0017】
以下、本発明を図面に示した実施の形態をもって説明するが、本発明は、図面に示した実施の形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【0018】
本発明は、予め定義された基準姿勢とユーザが実際にとっている姿勢の間の類似度を判定するための新規な方法を提供する。ここでは、まず、本発明が採用する姿勢の類似度を判定するための新しい指標(評価関数)について説明する。
【0019】
(姿勢の類似度を判定するための評価関数について)
本発明における姿勢判定は、人体の3次元骨格モデル(ボーンキネマティクス)に基づいて行われる。ここで、人体の3次元骨格モデルは、モーションキャプチャデータから既知の推定手法を用いて取得することができる。現在、専用のマーカを用いるモーションキャプチャ(光学式・磁気式・機械式等)の他、画像を利用するビデオ式モーションキャプチャなど種々のモーションキャプチャ技術も用いて骨格モデルを推定する方法が既に確立されており、また、その他の手法についても引き続き検討がなされている。本発明の方法は、現在および将来において用いられるであろう適切な3次元骨格モデル取得手段を前提とするものであり、3次元骨格モデルを取得するための具体的な構成に限定されるものではないことを念のため申し添えておく。
【0020】
図1は、適切な3次元骨格モデル取得手段によって取得された3次元骨格モデルを示す。3次元骨格モデルは、人体の骨の軸線に相当する複数の直線リンクと、各直線リンクを接続する複数の関節からなる3次元リンク機構モデルとして参照されるものである。なお、図1には、15個のリンクで構成される3次元骨格モデルを例示したが、モデルの詳細度は、用途に応じて適切なレベルを選択すればよく、より多くのリンクで構成される複雑なモデルを採用してもよいし(この場合、指などの小さな骨もリンクとして表現される)、より単純化されたモデルを採用してもよい(最低でも1つのリンクが定義できれば本発明は実現することができる)。
【0021】
図1(a)は、予め定義された基準姿勢について取得された3次元骨格モデル300(以下、基準骨格モデル300という)を示す。基準骨格モデル300は、15本のリンク(T〜T15)からなる。一方、図1(b)は、ユーザが実際に取った姿勢について取得された3次元骨格モデル400(以下、ユーザ骨格モデル400という)を示す。ユーザ骨格モデル400も同じく15本のリンク(V〜V15)からなる。ここで、図1(a)と図1(b)を比較すれば、2つの3次元骨格モデルが類似していることを感覚的に理解することはできるであろう。ここで、コンピュータによって姿勢判定を行うにあたり、2つの3次元骨格モデルの類似度を定量的に評価するアルゴリズムが必要になる。この点につき、本発明は、以下の方法を採用する。
【0022】
3次元骨格モデルの直線リンクは、3次元座標上の2点を結ぶ線分として参照されるが、本発明において使用する3次元骨格モデルは、各線分に対して適切な規則に従って方向を定義した3次元ベクトル(有向線分)から構成される。本発明においては、使用する3次元骨格モデル取得手段が3次元ベクトルを定義する場合には、そのデータをそのまま使用すればよいし、仮にそうでない場合には、適切な方法によって、各直線リンクを3次元ベクトル(有向線分)に変換する。ここで、基準骨格モデル300とユーザ骨格モデル400が完全に一致する場合には、基準骨格モデル300を構成する各ベクトルと、これに対応するユーザ骨格モデル400のベクトルのなす角度θは、全て「0」になるはずである。
【0023】
そこで、図1に示した基準骨格モデル300とユーザ骨格モデル400とを図2に示すように重ね合わせてみると、ベクトルTとベクトルV、ベクトルTとベクトルV、ベクトルTとベクトルV、ベクトルTとベクトルV、ベクトルT12とベクトルV12、ベクトルT13とベクトルV13、ベクトルT14とベクトルV14、ベクトルT15とベクトルV15のそれぞれについて、角度θ、角度θ、角度θ、角度θ、角度θ12、角度θ13、角度θ14、角度θ15が得られる。図2を参照すれば、2つの3次元骨格モデルの類似度が小さくなるほど(類似度が大きくなるほど)、2つの3次元骨格モデルの対応するベクトルのなす角度θの合計の値が大きくなる(角度θの合計の値が小さくなる)こと、すなわち、2つの3次元骨格モデルの対応するベクトルのなす角度θの大きさと姿勢の類似度との間に負の相関関係があることは理解されるところであろう。本発明は、この点に着目し、2つの3次元骨格モデルによって定義される角度θの大きさを正規化するための新規な評価関数fを定義する。下記式(1)に評価関数fの一例を示す。
【0024】
【数1】

【0025】
上記式(1)において、(Ti・Vi )は、対応するベクトルの内積(=|Ti|・|Vi|cosθ)を示し、(‖Ti‖‖Vi‖)は、各ベクトルの大きさの積を示し、kは、3次元骨格モデルを構成するベクトルの要素数を示す。つまり、上記式(1)に示した評価関数fによれば、2つの3次元骨格モデルの対応するベクトルのなす角度θの余弦(=cosθ)の平均値が得られることになる。ここで、2つの3次元骨格モデルの対応するベクトルが完全一致する場合(角度θ=0)は、cosθ=1になり、2つの3次元骨格モデルの対応するベクトルの方向が逆向きになる場合(角度θ=180°)は、cosθ=-1になるので、評価関数fの値の取り得る範囲は、-1≦f≦+1となる。この場合、たとえば、評価関数fの値の範囲(-1≦f≦+1)を百分率の値(0〜100%)にリニアに割り当てれば、類似度を百分率で表現することができる。
【0026】
ここで、予め定義された基準姿勢について取得する3次元骨格モデルは、必ずしも全身の骨格モデルである必要はなく、用途に応じて、身体の一部に対応する3次元骨格モデルのみを取得するようにしてもよい。例えば、上腕骨に対応する1つの3次元ベクトル(k=1)のみを3次元骨格モデルとして取得する場合も理論的には想定できるであろう。
【0027】
ここで、上記式(1)における内積の計算(行列演算)の負荷は、非常に小さいため、評価関数fを用いた本発明の手法によれば、姿勢の類似度を定量的な評価値として実時間で計算することが可能になる。本発明の姿勢判定方法においては、上述した手順で計算した類似度が予め定義された閾値以上である場合に、予め定義された基準姿勢がユーザによってとられたことを判定する。以上、本発明が採用する姿勢の類似度を判定するための新しい評価関数について説明してきたが、続いて、当該評価関数を用いた本発明の新規な姿勢判定方法の応用展開について説明する。
【0028】
本発明の姿勢判定方法は、電子機器をハンズフリーで制御する装置またはシステムに応用することができる。すなわち、電子機器の各種制御コマンドに対応する基準姿勢を予め登録しておき、ユーザが当該基準姿勢をとったことに応答して、対応する制御コマンドを電子機器に対して出力するといった構成である。この点につき、本発明の実施形態である電子機器制御システムに基づいて説明する。
【0029】
図3は、本実施形態の電子機器制御システム100の機能ブロック図を示す。電子機器制御システム100は、3次元骨格モデル取得手段12と、パーソナル・コンピュータなどとして参照される情報処理装置14と、赤外線発信器などとして参照される操作信号発信器80とを含んで構成されている。
【0030】
情報処理装置14は、適切なセンシングデバイス10から転送されるモーションキャプチャデータを解析して人体の3次元骨格モデルを推定する3次元骨格モデル推定エンジン20と、操作対象となる電子機器90ごとに起動する姿勢類似度判定部30と、基準骨格モデル登録部35と、類似度の閾値を設定するための閾値設定部40と、基準骨格モデルを格納・管理する基準骨格モデル管理部50と、アナログ制御量取得部60と、制御コマンド生成部70と、制御コマンドデータベース72とを含んで構成されている。
【0031】
図3に示す例においては、情報処理装置14に接続されたセンシングデバイス10と情報処理装置14内の3次元骨格モデル推定エンジン20の総体を3次元骨格モデル取得手段12として参照することができる。なお、先に説明したように、本実施形態における3次元骨格モデル取得手段12は、ユーザ骨格モデルをリアルタイムに推定・追跡することができる手段であればどのような構成であってもよく、電子機器制御システム100は、3次元骨格モデル取得手段12の具体的構成に限定されるものではない。また、上述した各機能部は、情報処理装置14の筐体内に一体的に設ける構成の他、一部の機能部をネットワーク上に分散配置したネットワークシステムとして構成してもよく、いずれの態様も本発明の作用・効果を奏する限り、本発明の範囲に含まれる。以上、本実施形態の電子機器制御システム100の構成要素について概説してきたが、次に、図3に示した各機能部の果たす機能を具体的な適用例に基づいて詳細に説明する。
【0032】
図4は、電子機器制御システム100を適用した部屋200の様子を示す。なお、図4(a)は、部屋200の上面図を示し、図4(b)は、部屋200の側面図を示す(以下、図8、10、11、12において同様)。部屋200の紙面右奥には、部屋全体をセンシングできる適切な位置にセンシングデバイス10が設置されており、センシングデバイス10から転送されるデータに基づいて制御コマンドを生成するためのパーソナル・コンピュータ14(PC14)が部屋200の隅の机の上に置かれている。一方、部屋200の紙面左奥の壁の上部には、制御対象となるエアコン90が設置されている。なお、制御信号発信器80の設置位置は特に示さないが、部屋200の中の適切な位置に設置されているものとして参照されたい。
【0033】
ここで、ユーザがエアコン90を指さしたことに応答して自動的に電源がONするといったNUIを構築することを検討してみよう。従来の設計思想は、汎用性の高いシステムを構築することに主眼をおいており、膨大な数のデータに基づいて「ユーザがエアコンを指さすときにとる姿勢」を一般化した上で、そのようなモデルに基づいてさまざまなパラメータを設定するといったアプローチをとっていた。これに対し、本発明によれば、ディベロッパーにパラメータをプリセットさせるのではなく、ユーザ自身が自分の身体条件や環境条件に合致したパラメータを適応的に設定することができる。この点につき、本実施形態の電子機器制御システム100は、各種制御コマンドに対応付けるための基準骨格モデルをユーザが自ら登録するためのセットアップ・モードを有する。
【0034】
(セットアップ・モード)
セットアップ・モードにおいては、電子機器の制御コマンドに対応付けて基準骨格モデルを登録する。ここで、電子機器の制御コマンドとしては、(1)制御対象機器を指定するためのコマンド、(2)制御内容を指定するためのコマンド、(3)デジタル制御量を指定するためのコマンド、を想定することができるであろう。この点につき、基準骨格モデル管理部50は、図5に示すデータ構造を有するデータベース1000を備える。
【0035】
データベース1000においては、1つの機器指定用コマンド名に対して少なくとも1つの制御内容指定用コマンド名が対応付けられ、1つの制御内容指定用コマンド名に対して、0または少なくとも1つの制御量指定用コマンド名が対応付けられており、各コマンド名に紐付けて少なくとも1つの3D骨格モデル(3次元ベクトル情報)を登録することができるように構成されている。図5(a)に示す例においては、機器指定用コマンド名「エアコン」に対して、制御内容指定用コマンド名(「電源ON」、「電源OFF」、「風量調節」…)が対応付けられており、制御内容指定用コマンド名「風量調節」に対しては、デジタル制御量(「強・弱」)が対応付けられている。一方、機器指定用コマンド名「テレビ」に対しては、制御内容指定用コマンド名(「電源ON」、「電源OFF」、「音量調節」…)が対応付けられており、制御内容指定用コマンド名「音量調節」に対応する制御量指定用コマンド名に対して「アナログ制御」を示すフラグが立っている(アナログ制御量については、後述する)。
【0036】
図6は、セットアップ・モード時に実行される処理のフローチャートを示す。セットアップ・モードにおいては、まず、ユーザが制御対象機器の選択画面を呼び出す。これを受けて、PC14のUI部42は、制御対象機器の選択画面(GUI)を表示する(ステップ101)。ユーザは、制御機器選択画面を介して基準姿勢(基準骨格モデル)を登録したい電子機器を選択する。図7は、ユーザによって「エアコン」が選択された制御機器選択画面202を例示する。
【0037】
制御対象機器の選択が完了すると(ステップ102、Yes)、UI部42は、制御対象機器を指定する姿勢を要求する音声アナウンス(例:「セットアップするエアコンを指さしてください」)を出力する(ステップ103)。音声アナウンスが終了すると、ユーザは、図8に示すように、音声アナウンスに従って部屋200の中の所望の位置でエアコン90を指さす姿勢を取る。一方、基準骨格モデル登録部35は、音声アナウンス終了後の適切な期間(フレーム)において3次元骨格モデル推定エンジン20から3次元骨格モデルを取得する(ステップ104)。
【0038】
なお、制御対象機器を指定する姿勢は、必ずしも、機器を指さす姿勢に限定する必要はなく、ユーザ自身が決めた好きな姿勢を登録してもなんら差し支えない(この点については、その他の姿勢についても同様)。基準骨格モデル登録部35は、図5(b)に示すように、取得した3次元骨格モデル(#0001)を機器指定用コマンド名に紐付けてデータベース1000に登録する(ステップ105)。
【0039】
続いて、UI部42は、エアコンに対して予め対応付けられている制御内容を指定する姿勢を要求する音声アナウンス(例:「風量調節の姿勢を取ってください」)を出力する(ステップ106)。この場合も、基準骨格モデル登録部35は、ステップ105と同様の手順で、3次元骨格モデルを取得し(ステップ107)、図5(b)に示すように、取得した3次元骨格モデル(#0002)を機器指定用コマンド名(「風量調節」)に紐付けてデータベース1000に登録する(ステップ108)。
【0040】
さらに続いて、UI部42は、制御内容(例:「風量調節」)に対して予め対応付けられているデジタル制御量を指定する姿勢を要求する内容の音声アナウンス(例:「強の姿勢を取ってください」)を出力する(ステップ109)。この場合も、基準骨格モデル登録部35は、ステップ104、106と同様の手順で、3次元骨格モデルを取得し(ステップ110)、図5(b)に示すように、取得した3次元骨格モデル(#0003)を制御量指定用コマンド名(「強」)に紐付けてデータベース1000に登録する(ステップ111)。
【0041】
ここで、制御内容指定用コマンド名(例:「風量調節」)に対応付けられた他の制御量指定用コマンド名(例:「弱」)がある場合は(ステップ112、No)、ステップ109に戻り、ステップ109〜111を繰り返して定義された全ての制御量指定用コマンド名について3次元骨格モデルを登録する(ステップ112、Yes)。1つの制御内容指定用コマンド名について全ての3次元骨格モデルの登録が完了した後(ステップ113、Yes)、機器指定用コマンド名(例:「エアコン」)以外に選択された機器指定用コマンド名(例:「テレビ」)がある場合には(ステップ114、No)、ステップ103に戻り、ステップ103〜113を繰り返す。
【0042】
その後、選択された全ての機器指定用コマンド名ならびにこれに対応付けられている制御内容指定用コマンド名および制御量指定用コマンド名のそれぞれについて3次元骨格モデルの登録が全て完了すると(ステップ114、Yes)、セットアップ・モードを終了する。上述したセットアップ・モードを経て、ユーザ自身が定義した姿勢(基準骨格モデル)と電子機器の各種制御コマンドが紐付けられる。ここには、ユーザの個体差が問題となる余地はない。なぜなら、ユーザの姿勢を判定するための基準となる基準骨格モデル(パラメータ)は、いわば、ユーザ自身だからである。
【0043】
(通常動作モード)
続いて、電子機器制御システムの通常動作モードについて、図9に基づいて説明する。図9は、通常動作モード時に実行される処理のシーケンス図を示す。通常動作モードにおいては、バックグラウンドで、3次元骨格モデル推定エンジン20が時々刻々と変化するモーションキャプチャデータからユーザ骨格モデルを推定・追跡する処理を継続的に実行する。
【0044】
姿勢類似度判定部30は、基準骨格モデル管理部50から機器指定用コマンド名に紐付けられた3次元骨格モデル(以下、機器指定用ターゲットという)をロードする(S1)。ここで、基準骨格モデル管理部50にn個の機器指定用ターゲットが登録されていた場合には、n個の姿勢類似度判定部30(1〜n)が機器ごとに展開され、以下に示す一連の手順を並行処理で実行する。
【0045】
姿勢類似度判定部30は、3次元骨格モデル推定エンジン20から時々刻々と変化するユーザ骨格モデルをリアルタイムで取得する(S2)、姿勢類似度判定部30の類似度計算部32は、3次元骨格モデル推定エンジン20から取得したユーザ骨格モデル(3次元ベクトル情報)とロードした機器指定用ターゲット(3次元ベクトル情報)に基づいて行列演算を実行し、先に説明した評価関数fを用いて定義されるところの類似度を計算する(S3)。姿勢類似度判定部30は、算出された類似度が予め設定された閾値以上になったか否を監視する。
【0046】
先のセットアップ・モードの説明において、ユーザの姿勢を判定するための基準となる基準骨格モデルがユーザ自身によって設定されるパラメータであることについて触れたが、閾値設定部40によって姿勢類似度判定部30にセットされるところの類似度の閾値は、ユーザ自身によって設定される2つ目の重要なパラメータである。以下、本発明における類似度の閾値の設定について説明する。
【0047】
類似度の閾値は、これを高く設定するほど、操作感度は低くなり、これを低く設定するほど、操作感度は高くなる。一方で、操作感度の高さと誤動作のリスクはトレードオフの関係にある。ここでは、図10において矢印で示す「登録姿勢」に基づいて機器指定用ターゲットがセットされたと仮定する。「登録姿勢」では、ユーザは、エアコン90から比較的離れた位置に立ち、且つ、エアコン90に対してほぼ正面に向き合った状態でエアコン90を指さしている。しかし、実際の使用においては、ユーザは、より近い位置からエアコン90を指さしたり、部屋200の壁際からエアコン90を指さしたりすることがあるので、その際のユーザの姿勢は、当然のことながら「登録姿勢」と一致しない。したがって、仮に、ユーザが、部屋200のどの場所から指さしてもエアコン90が反応するようにしたいのであれば、類似度の閾値をある程度低めに設定する必要がある。図10に示す例の場合、部屋200の中の制御対象機器がエアコン90だけなので、類似度の閾値をかなり低く設定してもさほど問題は生じないであろう。
【0048】
一方、図11に示すように、部屋200の中に制御対象機器としてエアコン90aとテレビ90bが設置されているといった状況(制御対象機器が複数存在する状況)においては、類似度の閾値の設定を低くしすぎると、エアコン90aを操作するつもりでとった姿勢にテレビ90bが反応してしまうといった誤動作が起こる可能性がある。したがって、このような環境においては、2つの機器の操作を同時最適化することのできる適切な閾値を探す必要が出てくるであろう。
【0049】
とはいえ、部屋200の直交する2つの壁に沿ってそれぞれに制御対象機器が設置されているような状況(すなわち、各制御対象機器の設置位置が空間的に大きく離れている状況)においては、多くの場合、機器を指定する姿勢(3次元骨格モデル)の可分性は担保されるので、閾値の設定はそれほど難しくはないであろう。
【0050】
一方、図12に示すように、部屋の同じ壁側にエアコン90aとテレビ90bが設置されているような状況(すなわち、各制御対象機器の設置位置が空間的に近い状況)においては、誤動作を防止するために、類似度の閾値を相当程度高く設定する必要が出てくるであろう。なお、このような場合は、近接する制御対象機器の登録姿勢を異ならしめるなどの工夫をする(例えば、エアコン90aは1本の手で指さし、テレビ90bは2本の手で指さす等)ことによって、閾値が極端に高くなること(すなわち、感度が極端に悪くなること)を回避することができる。
【0051】
以上、類似度の閾値の設定について説明してきたが、本発明において、重要なことは、この閾値をユーザ自らが適応的に設定できる点にある。ユーザは、スライダーなどのGUIを介して、類似度の閾値を設定した後、実際に電子機器を操作してみて、その際の使用感・操作性を確認し、その結果を受けて、さらに、閾値を設定し直すといったことを繰り返すことによって、自身の環境向けに最適化されたパラメータを直感的に設定することができる。図13は、UI部42によって提供されるスライダーを含む閾値設定画面204を例示する。閾値設定画面204を介して決定された閾値は、閾値設定部40によって対応する姿勢類似度判定部30の閾値保持部34にセットされる。
【0052】
なお、閾値の設定方法は、上述した態様に限定されるのではなく、適切な関数を使用して閾値を理論的に導出してもよい。たとえば、先に説明したセットアップ・モードの基準姿勢取得ステップ(ステップ103→ステップ104・等)をn回繰り返し実行し(例:アナウンス「指定動作をしてください」→データ取得→アナウンス「もういちど指定動作をしてください」→データ取得…)、その結果得られたn個の3次元骨格モデルの間の差分を所定の関数にセットすることによって閾値が自動的に設定されるように構成してもよい。
【0053】
再び、図9に戻って説明を続ける。姿勢類似度判定部30は、類似度計算部32が算出した類似度が設定された閾値以上になるまで、上述した一連の処理をループする。なお、本実施形態においては、ユーザの意図しない自然動作に起因する誤動作を防止するために、類似度が閾値を超える状態が所定時間(例えば、1秒間)継続することをループの脱出条件とすることが好ましい。
【0054】
類似度計算部32が算出した類似度が設定された閾値以上になると、姿勢類似度判定部30は、機器指定用コマンド名(例えば「テレビ」)をセットする(S4)。続いて、姿勢類似度判定部30は、基準骨格モデル管理部50から当該機器指定用コマンド名(「テレビ」)に関連付けられた制御内容指定用コマンド名に紐付けられる3次元骨格モデル(以下、制御内容指定用ターゲットという)をロードした後(S5)、3次元骨格モデル推定エンジン20から時々刻々と変化するユーザ骨格モデルをリアルタイムに取得する(S6)。姿勢類似度判定部30の類似度計算部32は、3次元骨格モデル推定エンジン20から取得したユーザ骨格モデルの3次元ベクトル情報とロードした制御内容指定用ターゲット(3次元ベクトル情報)に基づいて類似度を計算する(S7)。姿勢類似度判定部30は、算出された類似度が予め設定された閾値以上になるまで上述した処理をループし、類似度が閾値以上になったことに応答して、制御内容指定用コマンド名(例えば「電源ON」)をセットする(S8)。
【0055】
ここで、S4でセットされた制御内容指定用コマンド名に制御量、制御内容指定用コマンド名が対応付けられていない場合(例えば、「電源ON」という操作には制御量という概念はない)、姿勢類似度判定部30は、S4でセットされた機器指定用コマンド名(「テレビ」)と、S8でセットされた制御内容指定用コマンド名(「電源ON」)を紐付けて、制御コマンド生成部70に通知する(S16)。制御コマンド生成部70は、通知された機器指定用コマンド名および制御内容機器指定用コマンド名をキーとして制御コマンドデータベース72を検索し、対応する制御コマンド(「テレビの電源ON」に対応する制御コマンド)を生成した後、当該制御コマンドの送信を制御信号発信器80に依頼する(S17)。
【0056】
図14(a)は、ユーザがテレビ90bを指定する姿勢をとった後、引き続き、電源ONを指定する姿勢をとった場合を示す。この2つの姿勢が判定されたことに応答して、電子機器制御システム100は、制御対象機器がテレビ90bであり、その制御内容が「電源ON」であると判断し、テレビ90bの電源をONする。また、図14(b)は、ユーザがテレビ90bを指定する姿勢をとった後、引き続き、電源OFFを指定する姿勢をとった場合を示す。この2つの姿勢が判定されたことに応答して、電子機器制御システム100は、制御対象機器がテレビ90bであり、その制御内容が「電源OFF」であると判断し、テレビ90bの電源をOFFする。
【0057】
一方、S4でセットされた制御内容指定用コマンド名(「音量調整」)に制御量指定用コマンド名(「小」「中」「大」)が対応付けられている場合を考える。図15(a)(b)は、ユーザがテレビ90bを指定する姿勢をとった後、引き続いて、音量調整を指定する姿勢をとった場合を示す。この場合、姿勢類似度判定部30は、基準骨格モデル管理部50から制御内容指定用コマンド名「音量調整」に関連付けられた制御量指定用コマンド名(「小」「中」「大」)に紐付けられる3つの3次元骨格モデル(以下、制御量指定用ターゲットという)をロードした後(S9)、3次元骨格モデル推定エンジン20から時々刻々と変化するユーザ骨格モデルをリアルタイムに取得する(S10)。姿勢類似度判定部30の類似度計算部32は、3次元骨格モデル推定エンジン20から取得したユーザ骨格モデルの3次元ベクトル情報とロードした制御量指定用ターゲット(3次元ベクトル情報)に基づいて類似度を計算する(S11)。姿勢類似度判定部30は、算出された類似度が予め設定された閾値以上になるまで上述した処理をループし、類似度が閾値以上になったことに応答して、制御量指定用コマンド名(例えば「大」)をセットする(S12)。
【0058】
姿勢類似度判定部30は、S4でセットされた機器指定用コマンド名(「テレビ」)と、S8でセットされた制御内容指定用コマンド名(「音量調整」)と、S12でセットされた制御量指定用コマンド名(例えば「大」)を紐付けて、制御コマンド生成部70に通知する(S16)。制御コマンド生成部70は、通知された機器指定用コマンド名、制御内容指定用コマンド名、制御量指定用コマンド名をキーとして制御コマンドデータベース72を検索し、対応する制御コマンド(「テレビの音量を大にする」に対応する制御コマンド)を生成した後、当該制御コマンドの送信を制御信号発信器80に依頼する(S17)。
【0059】
デジタル制御量を指定するための姿勢は種々想定することができるが、ここでは、図16にその一例を3次元骨格モデルとともに示す。図16(a)〜(c)は、それぞれ、デジタル制御量「小」、「中」、「大」を指定するための姿勢を示す。
【0060】
一方、S4でセットされた制御内容指定用コマンド名に対応付けられている制御量指定用コマンド名に「アナログ制御量」のフラグが設定されている場合、姿勢類似度判定部30は、アナログ制御量取得部60に対してアナログ制御量の取得を依頼する(S13)。アナログ制御量取得部60は、これを受けて、3次元骨格モデル推定エンジン20から時々刻々と変化するユーザ骨格モデルをリアルタイムに取得し、これに基づいてアナログ制御量を取得する(S14)。アナログ制御量を定義するためのアルゴリズムは種々想定することができるが、ここでは、図17を参照してその一例を紹介する。
【0061】
図17(a)〜(c)は、アナログ制御量を指定するための一連の動作をその3次元骨格モデルとともに例示する。アナログ制御量取得部60は、図17(a)に示す姿勢を基準として、予め指定されたベクトル(ベクトルV)を追跡し、基準ラインからの見た所定時間内の角変化量(および回転方向)を取得する。ベクトルVと基準ラインのなす角度が図17(b)に示すような態様で変化した場合は、アナログ量をその角変化量に応じて増加させ、ベクトルVと基準ラインのなす角度が図17(c)に示すような態様で変化した場合は、アナログ量をその角変化量に応じて減少させる。
【0062】
アナログ制御量取得部60は、上述した手順で取得したアナログ制御量を姿勢類似度判定部30に通知する。姿勢類似度判定部30は、これを受けて当該アナログ制御量をセットする(S15)。なお、本実施形態におけるアナログ制御量としては、この他に、全自動掃除用ロボットの進行方向(操舵角度)や扇風機の風向き(首振り角度)などの角度量を挙げることができる。また、「制御内容を指示する姿勢」が維持される時間によってアナログ制御量を定義するアルゴリズムを採用することもできる。
【0063】
姿勢類似度判定部30は、S4でセットされた機器指定用コマンド名(「テレビ」)と、S8でセットされた制御内容指定用コマンド名(「音量調整」)と、S12でセットされたデジタル制御量またはS15でセットされたアナログ制御量を紐付けて、制御コマンド生成部70に通知する(S16)。制御コマンド生成部70は、通知された機器指定用コマンド名、制御内容指定用コマンド名、制御量指定用コマンド名/アナログ制御量をキーとして制御コマンドデータベース72を検索し、対応する制御コマンド(例えば、「テレビの音量を大にする」、「テレビの音量を現在の値からn量増加させる」に対応する制御コマンド)を生成した後、当該制御コマンドの送信を制御信号発信器80に依頼する(S17)。
【0064】
以上、説明したように、本実施形態の電子機器制御システム100を構築するにあたり、ディベロッパーは、従来のように複雑なプログラムを設計する必要がなく、ユーザの使用環境を想定する必要もない。一方、ユーザは、2つのパラメータ(基準骨格モデルおよび類似度の閾値)を自分の環境に合わせて自らカスタマイズすることができるので、全てのユーザが本システムの利益を享受することができる。
【0065】
なお、上述した説明においては、部屋の中に設置された家電をリモコン操作する例をもって電子機器制御システム100の機能を解説してきたが、本発明の電子機器制御システムは、当然にして、制御対象の種類を限定するものではなく、自動車の車外ミラーやワイパーの操作、工事現場におけるクレーン等の重機の遠隔操作、各種ヒューマノイド・ロボットの姿勢同期制御、ディスプレイ画面上のGUIや商品注文パネルをポインティングしたり、あるいは、仮想2次元面上の所定位置をポインティングしたりして情報や命令を入力する各種情報入力装置の制御など、種々の適用範囲を想定することができる。また、上述した実施形態においては、複数の電子機器に対して、1台のセンシングデバイスを設置した例について説明したが、1台の電子機器に対して固有のセンシングデバイスを用意してもよい。また、上述した実施形態においては、1つの制御コマンドに対して1つの基準骨格モデルを紐付ける態様について説明したが、1つの制御コマンドに対して、複数の基準骨格モデルを登録し、複数条件(閾値)の論理和をもって姿勢を判定するように構成してもよい。
【0066】
以上、本発明を電子機器制御システムの実施形態をもって説明してきたが、本発明の応用範囲は、当然のことながらこれに限定されるものではない。
【0067】
例えば、本発明の姿勢判定方法は、プレーヤーの没入感を高めることを特徴としたバーチャル・リアリティ(VR)体感型ゲームにおいて、プレーヤーの姿勢とゲームキャラクタの姿勢を同期させるゲーム・アプリケーションに適用することができる。本発明の姿勢判定処理は、計算負荷が非常に小さいので、「ユーザの動きにキャラクタがついてこない」といった従来のゲームの問題を解決することができる。また、ユーザに対して類似度の閾値を設定させることで、姿勢同期の難易度を自在に変更できるモードを用意して、ゲームの興趣性を向上させるなど、種々の応用が期待できる。
【0068】
以上、説明したように、本発明の手法によれば、2つのパラメータ(基準骨格モデルおよび類似度の閾値)をユーザが自由に設定することによって、ユーザが所望するあらゆる姿勢を判定することが可能になり、且つ、その判定をユーザの用途に応じた最適な精度で行うことが可能になる。このような本発明の手法が用途展開において無限の可能性を秘めていることを当業者であれば容易に理解するであろう。
【0069】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、基準骨格モデルをディベロッパー側でプリセットしておき、ユーザが類似度の閾値を設定することによって使用感を微調整するように構成してもよいし、用途によっては、基準骨格モデルおよび類似度の閾値の両方をディベロッパー側でプリセットしてもよい。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【0070】
なお、上述した実施形態の各機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【符号の説明】
【0071】
10…センシングデバイス
12…3次元骨格モデル取得手段
14…情報処理装置
20…3次元骨格モデル推定エンジン
30…姿勢類似度判定部
32…類似度計算部
34…閾値保持部
35…基準骨格モデル登録部
40…閾値設定部
42…UI部
50…基準骨格モデル管理部
60…アナログ制御量取得部
70…制御コマンド生成部
72…制御コマンドデータベース
80…制御信号発信器
90…電子機器
100…電子機器制御システム
200…部屋
202…制御機器選択画面
204…閾値設定画面
300…基準骨格モデル
400…ユーザ骨格モデル
500…非接触型ポインティング・システム
502…撮像装置
504…ディスプレイ装置

【特許請求の範囲】
【請求項1】
予め定義された基準姿勢の3次元骨格モデルを電子機器の制御コマンド名に紐付けて管理する基準3次元骨格モデル管理部と、
モーションキャプチャデータから取得されるユーザの3次元骨格モデルと前記基準姿勢の3次元骨格モデルの間の類似度を判定する姿勢類似度判定部と、
前記姿勢類似度判定部から前記制御コマンド名を通知されたことに応答して該制御コマンド名に対応する制御コマンドを生成する制御コマンド生成部と
を含み、
前記姿勢類似度判定部は、
前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルのなす角度に基づいて前記類似度を計算し、該類似度が予め設定された閾値以上である場合に、該基準姿勢の3次元骨格モデルに紐付けられた前記制御コマンド名を前記制御コマンド生成部に通知する、
電子機器制御装置。
【請求項2】
前記姿勢類似度判定部は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を用いた評価関数によって前記類似度を計算する、請求項1に記載の電子機器制御装置。
【請求項3】
前記評価関数は、下記式に示す評価関数fである、請求項2に記載の電子機器制御装置。
【数1】

(上記式において、(Ti・Vi )は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を示し、(‖Ti‖‖Vi‖)は、各3次元ベクトルの大きさの積を示し、kは、該3次元骨格モデルを構成する3次元ベクトルの要素数を示す。)
【請求項4】
ユーザからの入力に応答して前記閾値を設定する閾値設定部をさらに含む、請求項1〜3のいずれか一項に記載の電子機器制御装置。
【請求項5】
さらに、所定の姿勢をとったユーザの3次元骨格モデルを前記電子機器の制御コマンド名に紐付けて前記基準3次元骨格モデル管理部に登録する基準3次元骨格モデル登録部をさらに含む、請求項1〜4のいずれか一項に記載の電子機器制御装置。
【請求項6】
コンピュータに対して姿勢の類似度を判定させるコンピュータ実行可能な方法であって、
前記コンピュータに対し、
予め定義された基準姿勢の3次元骨格モデルを管理する機能手段と、
モーションキャプチャデータから取得されるユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルのなす角度に基づいて前記類似度を計算する機能手段と
を実現する方法。
【請求項7】
前記類似度は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を用いた評価関数によって計算される、請求項6に記載の方法。
【請求項8】
前記評価関数は、下記式に示す評価関数fである、請求項7に記載の方法。
【数2】

(上記式において、(Ti・Vi )は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を示し、(‖Ti‖‖Vi‖)は、各3次元ベクトルの大きさの積を示し、kは、該3次元骨格モデルを構成する3次元ベクトルの要素数を示す。)
【請求項9】
請求項6〜8のいずれか一項に記載の方法を実行するためのコンピュータ実行可能なプログラム。
【請求項10】
予め定義された基準姿勢の3次元骨格モデルを電子機器の制御コマンド名に紐付けて管理する基準3次元骨格モデル管理手段と、
モーションキャプチャデータから取得されるユーザの3次元骨格モデルと前記基準姿勢の3次元骨格モデルの間の類似度を判定する姿勢類似度判定手段と、
前記姿勢類似度判定手段から前記制御コマンド名を通知されたことに応答して該制御コマンド名に対応する制御コマンドを生成する制御コマンド生成手段と
を含み、
前記姿勢類似度判定手段は、
前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルのなす角度に基づいて前記類似度を計算し、該類似度が予め設定された閾値以上である場合に、該基準姿勢の3次元骨格モデルに紐付けられた前記制御コマンド名を前記制御コマンド生成手段に通知する、
電子機器制御システム。
【請求項11】
前記姿勢類似度判定手段は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を用いた評価関数によって前記類似度を計算する、請求項10に記載の電子機器制御システム。
【請求項12】
前記評価関数は、下記式に示す評価関数fである、請求項11に記載の電子機器制御システム。
【数3】

(上記式において、(Ti・Vi )は、前記ユーザの3次元骨格モデルを構成する3次元ベクトルとこれに対応する前記基準姿勢の3次元骨格モデルを構成する3次元ベクトルの内積を示し、(‖Ti‖‖Vi‖)は、各3次元ベクトルの大きさの積を示し、kは、該3次元骨格モデルを構成する3次元ベクトルの要素数を示す。)

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate