【実施例1】
【0074】
図8は、実施例1における仮想3Dオブジェクトの移動操作の例を示す図である。
図8では、3D座標空間の各軸がX軸、Y軸及びZ軸として示されており、仮想データ生成部24により生成される仮想3Dオブジェクトデータに対応する仮想3Dオブジェクトが符号VOで示される。また、仮想3DオブジェクトVOを基準とする所定3D範囲が符号OAで示される。
【0075】
図8の例では、所定3D範囲OA内で対象者の片手が握られた状態でその片手がX軸の負の方向に移動されている。この片手の動作は、或る物を握ってその方向にその物を移動させるジェスチャであると言える。所定3D範囲OA内でそのジェスチャを認識すると、表示側装置20は、その片手の直線移動量に対応する距離分、X軸の負の方向に仮想3DオブジェクトVOを移動させる。
【0076】
対象者は、上述のように、物を片手で握って、或る方向に移動させるジェスチャを行うことで、仮想3Dオブジェクトを移動させることができる。このジェスチャとその仮想3Dオブジェクト操作とは、現実世界における物に対する操作と同じであるため、両者は当然に直感的に結び付く。
【0077】
また、対象者の片手が所定3D範囲OA内で握られた状態でその片手が一定期間動かされないことを検出すると、表示側装置20は、仮想3Dオブジェクトと共に、他の機能を呼び出すためのメニュー画面を表示させ、そのメニュー画面に対するユーザ操作を可能とする。
【0078】
表示側装置20は、所定3D範囲OA内で対象者の両手が握られた状態を検出すると、仮想3Dオブジェクトに対する拡大、縮小、回転の操作を有効とする。この状態で、表示側装置20は、いずれか一方の手が開かれた状態となることを検出すると、仮想3Dオブジェクトに対する拡大、縮小、回転の操作を無効とする。
【0079】
図9は、実施例1における仮想3Dオブジェクトの縮小操作の例を示す図である。
図9では、
図8と同様に、X軸、Y軸及びZ軸の3D座標空間、仮想3DオブジェクトVO、所定3D範囲OAが示されている。
図9の例では、対象者の両手が所定3D範囲OA内で握られた状態のまま、片手が図面斜め左下方向に移動されている。この手を用いた動作は、物を両手で握ってその物をその両手間で縮めるジェスチャであると言える。所定3D範囲OA内でこのジェスチャを認識すると、表示側装置20は、両手間の距離の短縮度合いに対応する縮小率で仮想3DオブジェクトVOを縮小させる。このとき、表示側装置20は、仮想3DオブジェクトVOに対する拡大、縮小、回転の操作が有効とされた時点で、初めに握られたほうの手を縮小処理の基準点とする。
【0080】
図9には示されないが、対象者の両手が所定3D範囲OA内で握られた状態のまま、両手が離れる方向に一方の手が動かされたことを検出すると、表示側装置20は、両手間の距離の伸長度合いに対応する拡大率で仮想3DオブジェクトVOを拡大させる。当該動作は、物を両手で握ってその物をその両手で引き伸ばすジェスチャであると言える。
【0081】
対象者は、上述のように、物を両手で握って縮ませる又は引き伸ばすジェスチャを行うことで、仮想3Dオブジェクトを縮小又は拡大させることができる。このジェスチャとその仮想3Dオブジェクト操作とについても、現実世界における物に対する操作と近似するため、両者は直感的に結び付く。
【0082】
図10は、実施例1における仮想3Dオブジェクトの回転操作の例を示す図である。
図10では、
図8や
図9と同様に、X軸、Y軸及びZ軸の3D座標空間、仮想3DオブジェクトVO、所定3D範囲OAが示されている。
図10の例では、所定3D範囲OA内において対象者の両手が握られた状態で、かつ、両手間を結ぶ線分が元から異なる角度方向に片手が移動されている。この手を用いた動作は、物を両手で握って、物の一部を留め置きながら、他の一部を或る方向に引っ張るジェスチャであると言える。このジェスチャを認識すると、表示側装置20は、各操作が有効とされた時点での両手間を結ぶ直線と片手を移動させた後の両手間を結ぶ直線との立体角変化量で仮想3DオブジェクトVOを回転させる。このとき、表示側装置20は、各操作が有効とされた時点で、初めに握られたほうの手を回転の軸に設定する。
【0083】
表示側装置20は、拡大、縮小、回転の操作を有効にすると、握られた両手間を結ぶベクトル(線分)の変化により、拡大及び縮小か、回転かを決定する。具体的には、表示側装置20は、両手を握った時点、つまり拡大、縮小、回転の操作を有効にした時点のベクトルを正規化した単位ベクトルと、その後のベクトルの単位ベクトルとを比較して、近似していれば、そのベクトルの大きさの変化に対応した拡大処理又は縮小処理を行う。一方、表示側装置20は、それぞれの単位ベクトルが近似していなければ、回転処理を行う。
【0084】
対象者は、上述のように、物を両手で握って、物の一部を留め置きながら、他の一部を或る方向に引っ張るジェスチャを行うことで、仮想3Dオブジェクトを回転させることができる。このジェスチャとその仮想3Dオブジェクト操作とについても、現実世界における物に対する操作と近似するため、両者は直感的に結び付く。
【0085】
[変形例]
上述の第1実施形態及び第2実施形態では、
図3に示されるように、HMD9が、対象者(ユーザ)の両目に対応して、視線カメラ9a及び9b、並びに、ディスプレイ9c及び9dを有したが、視線カメラ及びディスプレイを1つずつ持つようにしてもよい。この場合、1つのディスプレイは、対象者の片目の視野を覆うように配置されてもよいし、対象者の両目の視野を覆うように配置されてもよい。この場合、表示側装置20の仮想データ生成部24は、仮想3D空間に含まれる表示物を3DCGで表示させることができるように、周知の3DCG技術を用いて仮想3Dオブジェクトデータを生成すればよい。
【0086】
また、上述の第1実施形態及び第2実施形態では、視線画像を得るためにビデオシースルー型のHMD9が用いられたが、光学シースルー型のHMD9が用いられてもよい。この場合には、HMD9にはハーフミラーのディスプレイ9c及び9dが設けられ、このディスプレイ9c及び9dに仮想3Dオブジェクトが表示されるようにすればよい。但し、この場合、対象者の視線方向で共通実オブジェクトを検出するための画像を得るためのカメラがHMD9の対象者の視野を遮らない箇所に設けられる。
【0087】
また、上述の第1実施形態及び第2実施形態では、
図1に示されるように、センサ側装置10と表示側装置20とが別々に設けられ、対象者の視線画像に仮想3Dオブジェクトが合成されたが、センサ側装置10で得られる3D情報に含まれる2次元画像に仮想3Dオブジェクトが合成された画像が表示されるようにしてもよい。
【0088】
図11は、変形例における3D−UI装置1のハードウェア構成例を概念的に示す図である。3D−UI装置1は、処理装置50、3Dセンサ8、及び、表示装置51を有する。処理装置50は、CPU2、メモリ3、入出力I/F5等を有し、入出力I/F5は、3Dセンサ8及び表示装置51に接続される。表示装置51は、合成画像を表示する。
【0089】
図12は、変形例における3D−UI装置1の処理構成例を概念的に示す図である。変形例における3D−UI装置1は、上述の各実施形態におけるセンサ側装置10に含まれる3D情報取得部11、位置算出部14及び状態取得部15を有し、上述の各実施形態における表示側装置20に含まれる仮想データ生成部24、操作特定部25、オブジェクト処理部26、画像合成部27及び表示処理部28を有する。これら各処理部については以下の点を除き、上述の各実施形態と同様である。
【0090】
位置算出部14は、3D情報取得部11により3Dセンサ8から得られる3次元情報から直接的に、対象者の特定部位の3次元位置情報を得る。操作特定部25は、位置算出部14により算出されるカメラ座標系の3次元位置情報と状態取得部15により得られる状態情報とに基づいて、所定処理を特定する。画像合成部27は、3D情報取得部11により得られる3次元情報に含まれる2次元画像と、オブジェクト処理部26により所定処理が施された仮想3Dオブジェクトデータとを合成する。
【0091】
この変形例では、対象者は、自身の視線方向以外の方向から撮像された自身の映像を見ながら、仮想3Dオブジェクトを操作することになる。よって、この変形例では、対象者自身の視線画像を用いる上述の各実施形態に比べて、直感性は低下する可能性があるが、特定部位を用いた3Dジェスチャにより仮想3Dオブジェクトを操作できるため、操作の分かり易さは十分に実現することができる。
【0092】
なお、上述の説明で用いたフローチャートでは、複数の工程(処理)が順番に記載されているが、本実施形態で実行される工程の実行順序は、その記載の順番に制限されない。本実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
【0093】
上記の各実施形態及び各変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。
【0094】
(付記1)
3次元センサから3次元情報を取得する3次元情報取得部と、
前記3次元情報取得部により取得される3次元情報を用いて、対象者の特定部位に関する3次元座標空間上の3次元位置情報を算出する位置算出部と、
前記3次元座標空間に配置される仮想3次元オブジェクトを示す仮想3次元オブジェクトデータを生成する仮想データ生成部と、
前記対象者の前記特定部位の状態情報を取得する状態取得部と、
前記状態取得部により取得される状態情報と前記3次元位置情報の変化との組み合わせに基づいて、複数の所定処理の中から実行されるべき所定処理を特定する操作特定部と、
前記仮想3次元オブジェクトデータに対して、前記操作特定部により特定される前記所定処理を施すオブジェクト処理部と、
前記所定処理が施された仮想3次元オブジェクトデータに対応する仮想3次元オブジェクトを表示部に表示させる表示処理部と、
を備える3次元ユーザインタフェース装置。
【0095】
(付記2)
前記操作特定部は、前記位置算出部により算出される3次元位置情報から、前記仮想3次元オブジェクトを基準とした所定3次元範囲内に前記対象者の前記特定部位が存在しているか否かを判定し、該判定結果に応じて、前記オブジェクト処理部による前記所定処理の実行の可否を決定する、
付記1に記載の3次元ユーザインタフェース装置。
【0096】
(付記3)
前記位置算出部は、前記対象者の特定部位として前記対象者の片手の3次元位置情報を算出し、
前記状態取得部は、前記対象者の特定部位として前記対象者の前記片手の状態情報を取得し、
前記操作特定部は、前記所定処理として、前記対象者の前記片手が特定状態を維持している間における該片手の直線移動量に対応する距離分、移動させる処理を特定する、
付記1又は2に記載の3次元ユーザインタフェース装置。
【0097】
(付記4)
前記操作特定部は、前記対象者の前記片手が特定状態を維持している間における該片手の移動前後において、前記仮想3次元オブジェクトの特定点からの距離が変わらない場合には、前記所定処理として、前記対象者の前記片手と前記仮想3次元オブジェクトの特定点とを結ぶ線分の立体角変化量で前記仮想3次元オブジェクトの該特定点を基準点とした回転処理を特定する、
付記3に記載の3次元ユーザインタフェース装置。
【0098】
(付記5)
前記操作特定部は、前記所定処理として、前記所定3次元範囲内から前記所定3次元範囲外への前記対象者の前記特定部位の移動を検出し、該移動前後における前記所定3次元範囲内の位置と前記所定3次元範囲外の位置との間の距離及び方向に応じた移動処理又は回転処理を特定する、
付記2に記載の3次元ユーザインタフェース装置。
【0099】
(付記6)
前記位置算出部は、前記対象者の複数の特定部位に関する3次元座標空間上の各3次元位置情報をそれぞれ算出し、
前記状態取得部は、前記対象者の前記複数の特定部位に関する各状態情報をそれぞれ取得し、
前記操作特定部は、前記位置算出部により算出される前記複数の特定部位に関する複数の3次元位置情報から前記複数の特定部位間の位置関係を算出し、該算出された位置関係の変化及び前記状態取得部により取得される前記複数の状態情報に基づいて、複数の所定処理の中から前記所定処理を特定する、
付記1から5のいずれか1つに記載の3次元ユーザインタフェース装置。
【0100】
(付記7)
前記位置算出部は、前記複数の特定部位として前記対象者の両手の3次元位置情報を算出し、
前記状態取得部は、前記複数の特定部位として前記対象者の両手の状態情報を取得し、
前記操作特定部は、前記所定処理として、前記両手の状態が特定状態を維持した状態での前記両手間の距離の変化量に対応する拡大率又は縮小率で前記対象者の片手の位置を基準点とした拡大処理又は縮小処理、若しくは、前記両手の状態が特定状態を維持した状態での前記両手間を結ぶ線分の立体角変化量で前記対象者の片手の位置を基準点とした回転処理を特定する、
付記6に記載の3次元ユーザインタフェース装置。
【0101】
(付記8)
前記操作特定部は、前記状態取得部により取得される状態情報と前記3次元位置情報とが変化しない期間を計測し、該計測された期間が所定期間を超える場合に、前記所定処理として、前記仮想3次元オブジェクトが配置される仮想3次元空間のデータに機能メニューの表示データを付加する処理を特定する、
付記1から7のいずれか1つに記載の3次元ユーザインタフェース装置。
【0102】
(付記9)
前記3次元情報から既知の共通実オブジェクトを検出する第1オブジェクト検出部と、
前記第1オブジェクト検出部により検出される前記共通実オブジェクトに基づいて、前記3次元座標空間を設定し、かつ、前記3次元センサの位置及び向きを算出する第1基準設定部と、
前記3次元センサとは異なる位置及び異なる向きに配置される撮像部から前記対象者の前記特定部位が写る視線画像を取得する視線画像取得部と、
前記視線画像取得部により取得される視線画像から既知の前記共通実オブジェクトを検出する第2オブジェクト検出部と、
前記第2オブジェクト検出部により検出される前記共通実オブジェクトに基づいて、前記3次元座標空間を共有し、かつ、前記撮像部の位置及び向きを算出する第2基準設定部と、
前記第2基準設定部により算出される前記撮像部の位置及び向き並びに前記3次元座標空間に基づいて、前記撮像部により撮像される前記視線画像に前記仮想3次元オブジェクトを合成する画像合成部と、
を備え、
前記位置算出部は、前記第1基準設定部により算出される前記3次元センサの位置及び向き並びに前記3次元座標空間に基づいて、前記3次元情報取得部により取得される3次元情報から取得される前記対象者の特定部位に関する3次元位置情報を変換することにより、前記3次元座標空間上の前記3次元位置情報を算出し、
前記表示処理部は、前記画像合成部により得られる画像を前記表示部に表示させる、
付記1から8のいずれか1つに記載の3次元ユーザインタフェース装置。
【0103】
(付記10)
少なくとも1つのコンピュータにより実行される3次元操作方法において、
3次元センサから3次元情報を取得し、
前記取得された3次元情報を用いて、対象者の特定部位に関する3次元座標空間上の3次元位置情報を算出し、
前記3次元座標空間に配置される仮想3次元オブジェクトを示す仮想3次元オブジェクトデータを生成し、
前記対象者の前記特定部位の状態情報を取得し、
前記取得された状態情報と前記3次元位置情報の変化との組み合わせに基づいて、複数の所定処理の中から実行されるべき所定処理を特定し、
前記仮想3次元オブジェクトデータに対して、前記特定される前記所定処理を施し、
前記所定処理が施された仮想3次元オブジェクトデータに対応する仮想3次元オブジェクトを表示部に表示させる、
ことを含む3次元操作方法。
【0104】
(付記11)
前記算出される3次元位置情報から、前記仮想3次元オブジェクトを基準とした所定3次元範囲内に前記対象者の前記特定部位が存在しているか否かを判定し、
前記判定結果に応じて、前記所定処理の実行の可否を決定する、
ことを更に含む付記10に記載の3次元操作方法。
【0105】
(付記12)
前記3次元位置情報の算出は、前記対象者の特定部位として前記対象者の片手の3次元位置情報を算出し、
前記状態情報の取得は、前記対象者の特定部位として前記対象者の前記片手の状態情報を取得し、
前記所定処理の特定は、前記所定処理として、前記対象者の前記片手が特定状態を維持している間における該片手の直線移動量に対応する距離分、移動させる処理を特定する、
付記10又は11に記載の3次元操作方法。
【0106】
(付記13)
前記所定処理の特定は、前記対象者の前記片手が特定状態を維持している間における該片手の移動前後において、前記仮想3次元オブジェクトの特定点からの距離が変わらない場合には、前記所定処理として、前記対象者の前記片手と前記仮想3次元オブジェクトの特定点とを結ぶ線分の立体角変化量で前記仮想3次元オブジェクトの該特定点を基準点とした回転処理を特定する、
付記12に記載の3次元操作方法。
【0107】
(付記14)
前記所定処理の特定は、前記所定処理として、前記所定3次元範囲内から前記所定3次元範囲外への前記対象者の前記特定部位の移動を検出し、該移動前後における前記所定3次元範囲内の位置と前記所定3次元範囲外の位置との間の距離及び方向に応じた移動処理又は回転処理を特定する、
付記11に記載の3次元操作方法。
【0108】
(付記15)
前記3次元位置情報の算出は、前記対象者の複数の特定部位に関する3次元座標空間上の各3次元位置情報をそれぞれ算出し、
前記状態情報の取得は、前記対象者の前記複数の特定部位に関する各状態情報をそれぞれ取得し、
前記所定処理の特定は、前記算出される前記複数の特定部位に関する複数の3次元位置情報から前記複数の特定部位間の位置関係を算出し、該算出された位置関係の変化及び前記取得された複数の状態情報に基づいて、複数の所定処理の中から前記所定処理を特定する、
付記10から14のいずれか1つに記載の3次元操作方法。
【0109】
(付記16)
前記3次元位置情報の算出は、前記複数の特定部位として前記対象者の両手の3次元位置情報を算出し、
前記状態情報の取得は、前記複数の特定部位として前記対象者の両手の状態情報を取得し、
前記所定処理の特定は、前記所定処理として、前記両手の状態が特定状態を維持した状態での前記両手間の距離の変化量に対応する拡大率又は縮小率で前記対象者の片手の位置を基準点とした拡大処理又は縮小処理、若しくは、前記両手の状態が特定状態を維持した状態での前記両手間を結ぶ線分の立体角変化量で前記対象者の片手の位置を基準点とした回転処理を特定する、
付記15に記載の3次元操作方法。
【0110】
(付記17)
前記所定処理の特定は、前記取得された状態情報と前記3次元位置情報とが変化しない期間を計測し、該計測された期間が所定期間を超える場合に、前記所定処理として、前記仮想3次元オブジェクトが配置される仮想3次元空間のデータに機能メニューの表示データを付加する処理を特定する、
付記10から16のいずれか1つに記載の3次元操作方法。
【0111】
(付記18)
前記3次元情報から既知の共通実オブジェクトを検出し、
前記検出された共通実オブジェクトに基づいて、前記3次元座標空間を設定し、かつ、前記3次元センサの位置及び向きを算出し、
前記3次元センサとは異なる位置及び異なる向きに配置される撮像部から前記対象者の前記特定部位が写る視線画像を取得し、
前記得された視線画像から既知の前記共通実オブジェクトを検出し、
前記検出された共通実オブジェクトに基づいて、前記3次元座標空間を共有し、かつ、前記撮像部の位置及び向きを算出し、
前記算出された前記撮像部の位置及び向き並びに前記3次元座標空間に基づいて、前記撮像部により撮像される前記視線画像に前記仮想3次元オブジェクトを合成する、
ことを更に含み、
前記3次元位置情報の算出は、前記算出された前記3次元センサの位置及び向き並びに前記3次元座標空間に基づいて、前記取得された3次元情報から取得される前記対象者の特定部位に関する3次元位置情報を変換することにより、前記3次元座標空間上の前記3次元位置情報を算出し、
前記仮想3次元オブジェクトの表示は、前記得られた画像を前記表示部に表示させる、
付記10から17のいずれか1つに記載の3次元操作方法。
【0112】
(付記19)
付記10から18のいずれか1つに記載の3次元操作方法を少なくとも1つのコンピュータに実行させるプログラム。
【0113】
(付記20)
付記19に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【0114】
この出願は、2012年7月27日に出願された日本特許出願特願2012−167040を基礎とする優先権を主張し、その開示の全てをここに取り込む。