IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 沖電気工業株式会社の特許一覧

特開2024-114228情報処理装置、情報処理方法およびプログラム
<>
  • 特開-情報処理装置、情報処理方法およびプログラム 図1
  • 特開-情報処理装置、情報処理方法およびプログラム 図2
  • 特開-情報処理装置、情報処理方法およびプログラム 図3
  • 特開-情報処理装置、情報処理方法およびプログラム 図4
  • 特開-情報処理装置、情報処理方法およびプログラム 図5
  • 特開-情報処理装置、情報処理方法およびプログラム 図6
  • 特開-情報処理装置、情報処理方法およびプログラム 図7
  • 特開-情報処理装置、情報処理方法およびプログラム 図8
  • 特開-情報処理装置、情報処理方法およびプログラム 図9
  • 特開-情報処理装置、情報処理方法およびプログラム 図10
  • 特開-情報処理装置、情報処理方法およびプログラム 図11
  • 特開-情報処理装置、情報処理方法およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024114228
(43)【公開日】2024-08-23
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
   G06F 3/04815 20220101AFI20240816BHJP
   G06T 19/00 20110101ALI20240816BHJP
【FI】
G06F3/04815
G06T19/00 A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023019865
(22)【出願日】2023-02-13
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100140958
【弁理士】
【氏名又は名称】伊藤 学
(74)【代理人】
【識別番号】100137888
【弁理士】
【氏名又は名称】大山 夏子
(74)【代理人】
【識別番号】100190942
【弁理士】
【氏名又は名称】風間 竜司
(72)【発明者】
【氏名】松宮 正太
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050AA10
5B050BA09
5B050BA13
5B050EA09
5B050EA27
5B050FA02
5B050FA05
5E555AA04
5E555BA08
5E555BB08
5E555BC17
5E555BE16
5E555CA42
5E555CB66
5E555CC03
5E555CC24
5E555CC25
5E555CC26
5E555CC27
5E555DC26
5E555DC27
5E555FA00
(57)【要約】
【課題】より直感的かつ簡易的な三次元空間における視点指定操作を可能とする技術が提供されることが望まれる。
【解決手段】センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出する算出部と、前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成する生成部と、を備える、情報処理装置が提供される。
【選択図】図1
【特許請求の範囲】
【請求項1】
センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出する算出部と、
前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成する生成部と、
を備える、情報処理装置。
【請求項2】
前記算出部は、前記センサ座標系の位置と前記三次元空間の位置との関係と、前記センサ座標系における前記所定部位の位置とに基づいて、前記三次元空間における前記仮想カメラの位置を算出する、
請求項1に記載の情報処理装置。
【請求項3】
前記三次元空間における前記仮想カメラの位置は、前記センサ座標系における前記所定部位の位置に対応する前記三次元空間における前記所定部位の位置と一致する、
請求項2に記載の情報処理装置。
【請求項4】
前記三次元空間における前記仮想カメラの位置を示すパラメータは、前記センサ座標系における前記所定部位の位置に対応する前記三次元空間における前記所定部位の位置を示すパラメータに定数を乗じて得られるパラメータである、
請求項3に記載の情報処理装置。
【請求項5】
前記オブジェクトのスケールが大きいほど、前記定数は大きい、
請求項4に記載の情報処理装置。
【請求項6】
前記算出部は、前記センサ座標系の姿勢と前記三次元空間の姿勢との関係と、前記センサ座標系における前記所定部位の姿勢とに基づいて、前記三次元空間における前記仮想カメラの姿勢を算出する、
請求項1に記載の情報処理装置。
【請求項7】
前記三次元空間における前記仮想カメラの姿勢は、前記三次元空間における前記仮想カメラの撮像方向と前記三次元空間における前記所定部位の所定方向とが一致するように、前記三次元空間における前記所定部位の姿勢が回転した姿勢である、
請求項6に記載の情報処理装置。
【請求項8】
前記算出部は、前記三次元空間における前記仮想カメラの位置から前記オブジェクトの位置への方向を算出し、前記方向に従って前記三次元空間における前記仮想カメラの姿勢を補正する、
請求項1に記載の情報処理装置。
【請求項9】
前記算出部は、前記三次元空間における前記所定部位の姿勢と前記仮想カメラの姿勢との差分が閾値以下であることに基づいて、前記三次元空間における前記仮想カメラの姿勢を補正する、
請求項8に記載の情報処理装置。
【請求項10】
前記算出部は、前記ユーザによる所定の開始ジェスチャが検出されたことに基づいて、前記三次元空間における前記仮想カメラの位置および姿勢を算出する、
請求項1に記載の情報処理装置。
【請求項11】
前記所定部位は、前記ユーザの手部である、
請求項1に記載の情報処理装置。
【請求項12】
センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出することと、
前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成することと、
を含む、コンピュータにより実行される情報処理方法。
【請求項13】
コンピュータを、
センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出する算出部と、
前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成する生成部と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
近年、3D CAD(3 Dimension Computer Aided Design)などを代表として、ディスプレイに三次元空間およびオブジェクト(例えば、三次元オブジェクト)の映像を出力するソフトウェアが数多く存在する。
【0003】
一般的に、このような三次元空間およびオブジェクトを操作するソフトウェアでは、ディスプレイに映像を出力するにあたって、三次元空間内のある一つの位置に仮想カメラが配置され、配置された仮想カメラを視点とする映像が出力される。ユーザは、仮想カメラの位置および姿勢を操作することが可能であるため、様々な視点からの三次元空間およびオブジェクトの映像を見ることが可能である。
【0004】
しかし、仮想カメラの位置および姿勢を指定する操作(以下、「視点指定操作」とも言う。)によく使用されるマウスなどの入力機器は、二次元的な操作を前提とした機器であるため、三次元空間における視点指定操作には必ずしも適していない。したがって、二次元的な操作により三次元空間における視点を自由に指定するには、このような視点指定操作に対する慣れが必要であり、このような視点指定操作は初学者にとって難しい。
【0005】
そのため、より直感的な視点指定操作を可能とする技術として、特許文献1に開示された技術が提案されている。特許文献1に開示された技術では、マウスなどのポインティングデバイスによって制御するカーソルの形状を、座標系の3つの軸(X,Y,Z)を表す形状にすることにより、直感的な操作を実現している。
【0006】
より具体的に、特許文献1に開示された技術では、この形状のカーソルを移動させるドラッグ操作により、カーソルの移動方向に最も近い軸が操作軸として自動的に選択される。そして、選択された操作軸に沿った拡大または縮小、平行移動、回転といった処理のいずれか一つが実行され得る。これにより、操作軸を選択する操作を別途入力しなくても、簡単なドラッグ操作により視点指定操作が可能となり、高速かつ直感的な視点指定操作が可能となる。
【0007】
また、このような視点指定操作に使用される入力機器として3Dマウスが挙げられる。3Dマウスを使用する場合には、一般的なマウスを使用する場合とは異なり、ユーザは二次元的な操作(すなわち、2自由度の操作)ではなく、一例として6自由度の操作を入力することができる。6自由度の操作は、3方向の平行移動および3方向の回転それぞれを指定するための視点指定操作に割り当てることができる。そのため、3Dマウスを使用すれば、一般的なマウスを使用した場合よりも、入力と出力との対応付けを理解しやすい方法によって視点指定を行うことが可能となる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2018-106715号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1に開示された技術では、ディスプレイに表示されたカーソルを動かす操作(例えば、ドラッグ操作など)によって三次元空間における視点指定操作を行う必要がある。カーソルを動かす操作は、マウスなどのポインティングデバイスを二次元的に動かす操作によって実現される。そのため、二次元的な操作により三次元空間における視点を指定することに対する慣れがやはり必要であり、このような視点指定操作は初学者にとってやはり難しい。
【0010】
また、上記したように、3Dマウスを使用する場合には、ユーザは、一例として6自由度の操作を入力することができる。そのため、3Dマウスを使用する場合には、一般的なマウスなどのポインティングデバイスを使用する場合と比較して、入力の自由度が大きくなってしまう。したがって、3Dマウスを使用して三次元空間における視点を指定することに対する慣れがやはり必要となってしまう。
【0011】
そこで、本発明は上記の問題点を解決するものであり、より直感的かつ簡易的な三次元空間における視点指定操作を可能とする技術が提供されることが望まれる。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本発明のある観点によれば、センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出する算出部と、前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成する生成部と、を備える、情報処理装置が提供される。
【0013】
前記算出部は、前記センサ座標系の位置と前記三次元空間の位置との関係と、前記センサ座標系における前記所定部位の位置とに基づいて、前記三次元空間における前記仮想カメラの位置を算出してもよい。
【0014】
前記三次元空間における前記仮想カメラの位置は、前記センサ座標系における前記所定部位の位置に対応する前記三次元空間における前記所定部位の位置と一致してもよい。
【0015】
前記三次元空間における前記仮想カメラの位置を示すパラメータは、前記センサ座標系における前記所定部位の位置に対応する前記三次元空間における前記所定部位の位置を示すパラメータに定数を乗じて得られるパラメータであってもよい。
【0016】
前記オブジェクトのスケールが大きいほど、前記定数は大きいことでもよい。
【0017】
前記算出部は、前記センサ座標系の姿勢と前記三次元空間の姿勢との関係と、前記センサ座標系における前記所定部位の姿勢とに基づいて、前記三次元空間における前記仮想カメラの姿勢を算出してもよい。
【0018】
前記三次元空間における前記仮想カメラの姿勢は、前記三次元空間における前記仮想カメラの撮像方向と前記三次元空間における前記所定部位の所定方向とが一致するように、前記三次元空間における前記所定部位の姿勢が回転した姿勢であってもよい。
【0019】
前記算出部は、前記三次元空間における前記仮想カメラの位置から前記オブジェクトの位置への方向を算出し、前記方向に従って前記三次元空間における前記仮想カメラの姿勢を補正してもよい。
【0020】
前記算出部は、前記三次元空間における前記所定部位の姿勢と前記仮想カメラの姿勢との差分が閾値以下であることに基づいて、前記三次元空間における前記仮想カメラの姿勢を補正してもよい。
【0021】
前記算出部は、前記ユーザによる所定の開始ジェスチャが検出されたことに基づいて、前記三次元空間における前記仮想カメラの位置および姿勢を算出してもよい。
【0022】
前記所定部位は、前記ユーザの手部であってもよい。
【0023】
また、上記課題を解決するために本発明の別の観点によれば、センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出することと、前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成することと、を含む、コンピュータにより実行される情報処理方法が提供される。
【0024】
また、上記課題を解決するために本発明の別の観点によれば、コンピュータを、センサデータに基づいて計測された、センサ座標系におけるユーザの身体の所定部位の位置および姿勢に基づいて、オブジェクトが存在する三次元空間における仮想カメラの位置および姿勢を算出する算出部と、前記三次元空間における前記オブジェクトの位置と、前記仮想カメラの位置および姿勢とに基づいて、前記オブジェクトが前記仮想カメラによって撮像されて得られる画像を生成する生成部と、として機能させるプログラムが提供される。
【発明の効果】
【0025】
以上説明したように本発明によれば、より直感的かつ簡易的な三次元空間における視点指定操作を可能とする技術が提供される。
【図面の簡単な説明】
【0026】
図1】本発明の第1の実施形態に係る情報処理システムの機能構成例を示す図である。
図2】本発明の第1の実施形態に係る制御部120の動作例の概要について説明するための図であり、現実空間における手部計測センサ部20と手部との位置姿勢の関係、および、三次元空間におけるオブジェクトと仮想カメラとの位置姿勢の関係の例を示す図である。
図3】本発明の第1の実施形態に係る制御部120の動作例の概要について説明するための図であり、仮想カメラ映像出力部30によって表示される映像の例を示す図である。
図4】本発明の第1の実施形態における情報処理システム1の全体的な動作例を示すフローチャートである。
図5図4に示された視点移動処理の詳細な動作例を示すフローチャートである。
図6】本発明の第1の実施形態および本発明の第2の実施形態それぞれに係る制御部120の動作例の違いについて説明するための図であり、現実空間における手部計測センサ部20と手部との位置姿勢の関係、および、三次元空間におけるオブジェクトと仮想カメラとの位置姿勢の関係の例を示す図である。
図7】本発明の第1の実施形態および本発明の第2の実施形態それぞれに係る制御部120の動作例の違いについて説明するための図であり、仮想カメラ映像出力部30によって表示される映像の例を示す図である。
図8】本発明の第2の実施形態における情報処理システム1の全体的な動作例を示すフローチャートである。
図9図8に示された視点移動処理の詳細な動作例を示すフローチャートである。
図10図9に示した仮想カメラ移動処理の詳細な動作例を示す図である。
図11】行列R vcを回転行列に変換するための補正の例について説明するための図である。
図12】本発明の実施形態に係る情報処理装置10の例としての情報処理装置900のハードウェア構成を示す図である。
【発明を実施するための形態】
【0027】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0028】
(0.概要)
以下に説明するように、本発明の実施形態においては、より直感的かつ簡易的な三次元空間における視点指定操作を可能とする技術について主に提案する。なお、三次元空間は、コンピュータ内の三次元空間を意味し得る。例えば、本発明の実施形態には、以下に説明する、本発明の第1の実施形態および本発明の第2の実施形態が含まれ得る。
【0029】
本発明の第1の実施形態においては、センサから得られるユーザの身体の所定部位の位置および姿勢に基づいて、仮想カメラの位置および姿勢が決定される。そして、オブジェクトが存在する三次元空間に、仮想カメラの位置および姿勢に従って仮想カメラが配置され、三次元空間に配置された仮想カメラによる撮像によって得られた映像が画面に出力される。
【0030】
これにより、ユーザの身体の所定部位の動きにより、三次元空間における視点指定操作が行われ得る。このような視点指定操作により、視点指定操作の高速化が実現され得るとともに、ユーザは、自身の身体の所定部位に三次元空間に存在するオブジェクトを撮像させているかのように、直感的かつ簡易的な視点指定操作を行うことが可能となる。
【0031】
本発明の第2の実施形態においては、仮想カメラによる撮像方向を三次元空間に存在するオブジェクトに向かせる処理が追加される。これによって、画面に表示される映像内にオブジェクトを常に位置させることが可能となる。
【0032】
なお、以下の説明においては、所定部位が手部である場合を主に想定する。しかし、所定部位は、ユーザの身体を構成する部位であればどの部位であってもよい。例えば、所定部位は、ユーザの顔であってもよいし、ユーザの目であってもよいし、ユーザの足などであってもよい。
【0033】
また、オブジェクトは、三次元空間に存在する三次元オブジェクトであってよい。三次元オブジェクトは、三次元的な仮想オブジェクトであってよく、仮想オブジェクトは、「仮想物体」とも換言され得る。また、以下の説明においては、映像が動画像である場合を主に想定する。しかし、映像は、静止画像であってもよい。また、以下の説明においては、「位置および姿勢」を単に「位置姿勢」と表記する場合がある。
【0034】
(1.第1の実施形態)
続いて、本発明の第1の実施形態について説明する。
【0035】
(1-1.情報処理システムの構成)
まず、図1を参照しながら、本発明の第1の実施形態に係る情報処理システムの構成例について説明する。図1は、本発明の第1の実施形態に係る情報処理システムの機能構成例を示す図である。図1に示されるように、情報処理システム1は、情報処理装置10と、手部計測センサ部20と、仮想カメラ映像出力部30とを有する。
【0036】
(手部計測センサ部20)
手部計測センサ部20は、物理的なセンサを有しており、物理的なセンサによりユーザの手部のセンサデータを検出する。さらに、手部計測センサ部20は、センサデータに基づいて手部計測センサ部20による現実空間の検知範囲を規定する座標系(以下、「センサ座標系」とも言う。)におけるユーザの手部の位置姿勢を計測する処理を行う。また、手部計測センサ部20は、センサデータに基づいて手部の形状が所定の形状にされていることを所定のジェスチャとして検出する。
【0037】
ここで、所定のジェスチャは、ユーザが片手で簡易に作ることが可能であるのが望ましいが、ユーザが両手で作ることが可能であってもよい。例えば、所定のジェスチャには、視点移動開始ジェスチャおよび視点移動終了ジェスチャが含まれる。視点移動開始ジェスチャと視点移動終了ジェスチャとは、同じジェスチャであってもよいし、異なるジェスチャであってもよい。
【0038】
手部計測センサ部20は、情報処理装置10と通信インタフェースを介して接続されており、センサ座標系におけるユーザの手部の位置姿勢を、通信インタフェースを介して情報処理装置10に出力する。さらに、手部計測センサ部20は、ジェスチャを検出した場合に、ジェスチャが検出されたことを、通信インタフェースを介して情報処理装置10に出力する。
【0039】
ここで、センサの種類は特に限定されない。例えば、センサは、赤外線センサであってもよい。例えば、センサは、赤外線ステレオカメラであり、複数のLED(Light Emitting Diode)によって手部に照射された赤外線の反射を、センサデータとして赤外線ステレオカメラによって検出してもよい。あるいは、センサは、RGB(Red,Green,Blue)カメラなどであってもよい。
【0040】
ユーザの手部の位置姿勢を計測する手法も特に限定されない。例えば、手部計測センサ部20は、センサデータに基づいて、手部の骨格の各位置を示す三次元座標(以下、「手部の三次元骨格情報」とも言う。)を検出し得る。
【0041】
具体的に、三次元座標が検出される手部の骨格の各位置には、指先、指関節、手のひらを構成する多角形の頂点、手のひらを構成する頂点群の重心それぞれの位置が含まれ得る。手部計測センサ部20は、このような手部の三次元骨格情報に基づいて、センサ座標系におけるユーザの手部の位置姿勢を計測してもよい。
【0042】
手部の位置は、センサ座標系における三次元情報によって表現される。ここでは、手部の位置が、一例として手のひらを構成する頂点群の重心位置のセンサ座標系における三次元座標(X,Y,Z)によって表現される場合を主に想定する。しかし、手部の位置は、手部の骨格の他の位置のセンサ座標系における三次元座標によって表現されてもよい。
【0043】
手部の姿勢は、センサ座標系における三次元情報によって表現される。ここでは、手部の姿勢が、一例として手部の姿勢に沿った3方向(x軸方向、y軸方向、z軸方向)のセンサ座標系における座標軸(X軸、Y軸、Z軸)に対する回転行列によって表現される場合を主に想定する。しかし、手部の姿勢は、後にも説明するように、他の形式によって表現されてもよい。
【0044】
手部の姿勢に沿った3方向は、互いに直交し合う3方向であってよい。以下の説明においては、手のひらの向く方向がz軸方向であり、z軸方向と直交するとともに互いに直交する2方向のうち、一方がx軸方向であり、他方がy軸方向である場合を主に想定する。しかし、手部の姿勢に沿った3方向は、このような3方向に限定されない。
【0045】
(情報処理装置10)
情報処理装置10は、コンピュータによって実現される。図1に示されるように、情報処理装置10は、制御部120と記憶部130とを備える。情報処理装置10は、手部計測センサ部20と通信インタフェースを介して有線または無線により接続されており、手部計測センサ部20から、通信インタフェースを介して、手部の位置姿勢と、ジェスチャの検出結果とを取得し得る。さらに、情報処理装置10は、仮想カメラ映像出力部30とも通信インタフェースを介して有線または無線により接続されている。
【0046】
(制御部120)
制御部120は、各種の演算処理を行う。例えば、制御部120は、CPU(Central Processing Unit)などの演算装置を含み、ROM(Read Only Memory)により記憶されているプログラムが演算装置によりRAMに展開されて実行されることにより、その機能が実現され得る。このとき、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。あるいは、これらのブロックは、専用のハードウェアにより構成されていてもよいし、複数のハードウェアの組み合わせにより構成されてもよい。
【0047】
演算装置による演算に必要なデータは、記憶部130によって適宜記憶される。図1に示されるように、制御部120は、初期化部121と、仮想カメラ位置姿勢計算部122と、仮想カメラ配置部123と、仮想カメラ映像生成部124とを備える。
【0048】
(初期化部121)
初期化部121は、三次元空間に存在するオブジェクトと手部計測センサ部20との位置姿勢の関係の初期化を行う。さらに、初期化部121は、三次元空間に存在するオブジェクトと仮想カメラとの位置姿勢の関係の初期化を行う。初期化のさらに具体的な処理については後に説明する。なお、オブジェクトは、三次元空間における所定の位置および所定の姿勢に配置される。したがって、オブジェクトの位置姿勢を基準とする座標系(以下、「オブジェクト座標系」とも言う。)は、三次元空間を規定する座標系にも該当し得る。
【0049】
(仮想カメラ位置姿勢計算部122)
仮想カメラ位置姿勢計算部122は、手部計測センサ部20によって計測された手部の位置姿勢に基づいて、オブジェクト座標系における仮想カメラの位置姿勢を算出する。
【0050】
例えば、センサ座標系の位置を基準としたオブジェクト座標系の相対位置があらかじめ決められている場合が想定される。このとき、仮想カメラ位置姿勢計算部122は、かかる相対位置とセンサ座標系における手部の位置とに基づいて、オブジェクト座標系における仮想カメラの位置を算出する。オブジェクト座標系における仮想カメラの位置の具体的な算出例については後に説明する。
【0051】
また、例えば、センサ座標系の姿勢を基準としたオブジェクト座標系の相対姿勢があらかじめ決められている場合が想定される。このとき、仮想カメラ位置姿勢計算部122は、かかる相対姿勢とセンサ座標系における手部の姿勢とに基づいて、オブジェクト座標系における仮想カメラの姿勢を算出する。オブジェクト座標系における仮想カメラの姿勢の具体的な算出例については後に説明する。
【0052】
(仮想カメラ配置部123)
仮想カメラ配置部123は、仮想カメラ位置姿勢計算部122によって算出された、オブジェクト座標系における仮想カメラの位置姿勢に従って、三次元空間に仮想カメラを配置する。なお、仮想カメラの位置姿勢を基準とする座標系は、「カメラ座標系」とも表記される。
【0053】
仮想カメラの位置は、オブジェクト座標系における三次元情報によって表現される。ここでは、仮想カメラの位置が、一例として仮想カメラの焦点位置のオブジェクト座標系における三次元座標(X,Y,Z)によって表現される場合を主に想定する。しかし、仮想カメラの位置は、仮想カメラの焦点位置以外の位置のオブジェクト座標系における三次元座標によって表現されてもよい。
【0054】
仮想カメラの姿勢は、オブジェクト座標系における三次元情報によって表現される。ここでは、仮想カメラの姿勢が、一例として仮想カメラの姿勢に沿った3方向(x軸方向、y軸方向、z軸方向)のオブジェクト座標系における座標軸(X軸、Y軸、Z軸)に対する回転行列によって表現される場合を主に想定する。しかし、仮想カメラの姿勢は、後にも説明するように、他の形式によって表現されてもよい。
【0055】
仮想カメラの姿勢に沿った3方向は、互いに直交し合う3方向であってよい。以下の説明においては、仮想カメラの撮像方向(すなわち、光軸方向)がz軸方向であり、z軸方向と直交するとともに互いに直交する2方向のうち、一方がx軸方向であり、他方がy軸方向である場合を主に想定する。しかし、仮想カメラの姿勢に沿った3方向は、このような3方向に限定されない。
【0056】
(仮想カメラ映像生成部124)
仮想カメラ映像生成部124は、オブジェクトが仮想カメラによって撮像されて得られる映像を生成する。より具体的に、仮想カメラ映像生成部124は、オブジェクト座標系におけるオブジェクトに関する情報と、オブジェクト座標系における仮想カメラの位置姿勢とに基づいて、オブジェクトが仮想カメラによって撮像されて得られる映像を生成する。オブジェクトに関する情報は、オブジェクトの位置、姿勢、サイズおよび形状の少なくともいずれか一つを含んでもよい。
【0057】
例えば、仮想カメラ映像生成部124によって生成される映像は、オブジェクトの二次元映像であってもよい。このとき、仮想カメラ映像生成部124は、オブジェクトに関する情報に基づいて、三次元空間におけるオブジェクトの三次元的な領域を判定し、オブジェクトの三次元的な領域をあらかじめ決められた射影式によって射影することによって、オブジェクトの二次元映像を生成する。例えば、かかる射影式は、正射影(平行投影)を示す式であってよい。
【0058】
あるいは、仮想カメラ映像生成部124によって生成される映像は、オブジェクトの三次元映像であってもよい。このとき、仮想カメラ映像生成部124は、オブジェクトに関する情報と、仮想カメラの位置姿勢とに基づいて、仮想カメラを基準としたオブジェクトの見え方を算出し、算出した見え方に基づいて、オブジェクトの三次元映像を生成してもよい。
【0059】
(記憶部130)
記憶部130は、制御部120を動作させるためのプログラムおよびデータを記憶することが可能なメモリである。また、記憶部130は、制御部120の動作の過程で必要となる各種データを一時的に記憶することもできる。例えば、記憶部130は、不揮発性メモリであってよい。
【0060】
(仮想カメラ映像出力部30)
仮想カメラ映像出力部30は、物理的なディスプレイによって構成され、仮想カメラ映像生成部124によって生成された映像の表示を行う機能を有する。
【0061】
例えば、仮想カメラ映像出力部30は、液晶ディスプレイ(LCD)装置であってもよいし、OLED(Organic Light Emitting Diode)装置であってもよい。また、仮想カメラ映像出力部30は、ユーザの頭部に装着されるヘッドマウントディスプレイであってもよいし、設置型のディスプレイであってもよい。
【0062】
例えば、仮想カメラ映像出力部30は、二次元ディスプレイによって構成されてもよい。このとき、仮想カメラ映像生成部124によって生成されたオブジェクトの二次元映像を表示し得る。あるいは、仮想カメラ映像出力部30は、三次元ディスプレイによって構成されてもよい。このとき、仮想カメラ映像生成部124によって生成されたオブジェクトの三次元映像を表示し得る。
【0063】
以上、本発明の第1の実施形態に係る情報処理システム1の構成例について説明した。
【0064】
(1-2.情報処理システムの動作)
本発明の第1の実施形態に係る情報処理システム1は、ユーザが三次元空間における仮想カメラの位置姿勢を映像の視点として指定し、その視点からの映像を視認しながら、モデリング作業を行ったり、映像を楽しんだりするために用いられ得る。そのため、本発明の第1の実施形態に係る情報処理システム1は、三次元空間における映像の視点を指定することが求められる様々なシステムに適用される。
【0065】
本項、すなわち「1-2.情報処理システムの動作」の項においては、制御部120の動作例について主に説明する。より詳細には、本項においては、三次元空間における映像の視点がユーザによって指定される場合における情報処理システム1の動作例について主に説明する。まず、図2および図3を参照しながら、本発明の第1の実施形態に係る制御部120の動作例の概要について説明する。
【0066】
図2は、本発明の第1の実施形態に係る制御部120の動作例の概要について説明するための図であり、現実空間における手部計測センサ部20と手部との位置姿勢の関係、および、三次元空間におけるオブジェクトと仮想カメラとの位置姿勢の関係の例を示す図である。図2を参照すると、現実空間における手部計測センサ部20の位置が「センサ位置S」として示されている。なお、図2に示された例では、センサ位置Sに存在する円柱形状の立体が手部計測センサ部20であるが、手部計測センサ部20の形状は特に限定されない。
【0067】
手部計測センサ部20は、現実空間においてユーザの手部の位置姿勢を計測する。図2に示された例において、位置姿勢H1~H4それぞれは、手部計測センサ部20によって計測された手部の位置姿勢である。一例として、位置姿勢H1~H4それぞれは、センサ位置Sを原点とするセンサ座標系における手部の位置および姿勢であり、6次元のベクトルによって表現される。センサ位置Sは、センサ座標系の原点である。
【0068】
また、図2を参照すると、三次元空間におけるオブジェクトの位置が「オブジェクト位置O」として示されている。なお、図2に示された例では、オブジェクト位置Oに存在する直方体形状の立体がオブジェクトであるが、オブジェクトの形状は特に限定されない。
【0069】
制御部120は、センサ座標系における手部の位置姿勢と、センサ座標系における手部と三次元空間における仮想カメラとの位置姿勢の関係に基づいて、三次元空間における仮想カメラの位置姿勢を算出する。そして、制御部120は、算出した仮想カメラの位置姿勢に仮想カメラを配置する。一例として、位置姿勢C1~C4それぞれは、オブジェクト座標系における仮想カメラの位置および姿勢であり、6次元のベクトルによって表現される。オブジェクト位置Oは、オブジェクト座標系の原点である。
【0070】
図2に示された例において、センサ座標系における手部の位置姿勢が位置姿勢H1である場合における、オブジェクト座標系における仮想カメラの位置姿勢は位置姿勢C1である。同様に、センサ座標系における手部の位置姿勢が位置姿勢H2である場合における、オブジェクト座標系における仮想カメラの位置姿勢は位置姿勢C2である。
【0071】
さらに、センサ座標系における手部の位置姿勢が位置姿勢H3である場合における、オブジェクト座標系における仮想カメラの位置姿勢は位置姿勢C3である。センサ座標系における手部の位置姿勢が位置姿勢H4である場合における、オブジェクト座標系における仮想カメラの位置姿勢は位置姿勢C4である。
【0072】
センサ座標系における手部とオブジェクト座標系における仮想カメラとの位置姿勢の関係は、あらかじめ決められている。一例として、オブジェクト座標系における仮想カメラの位置姿勢C1~C4は、センサ座標系における手部の位置姿勢H1~H4と一致してもよい。これにより、センサ位置Sと手部の位置姿勢H1~H4との位置姿勢の関係と、オブジェクト位置Oと仮想カメラの位置姿勢C1~C4との位置姿勢の関係とが同一となる。
【0073】
図3は、本発明の第1の実施形態に係る制御部120の動作例の概要について説明するための図であり、仮想カメラ映像出力部30によって表示される映像の例を示す図である。仮想カメラ映像出力部30は、制御部120によって配置された仮想カメラにより三次元空間に存在するオブジェクトが撮像されて得られる映像を表示する。
【0074】
図3(および図2)に示された例において、オブジェクト座標系における位置姿勢C1に配置された仮想カメラによってオブジェクトが撮像されて得られる映像は映像D1である。同様に、オブジェクト座標系における位置姿勢C2に配置された仮想カメラによってオブジェクトが撮像されて得られる映像は映像D2である。
【0075】
さらに、オブジェクト座標系における位置姿勢C3に配置された仮想カメラによってオブジェクトが撮像されて得られる映像は映像D3である。オブジェクト座標系における位置姿勢C4に配置された仮想カメラによってオブジェクトが撮像されて得られる映像は映像D4である。
【0076】
例えば、ユーザが現実空間において位置姿勢H1から位置姿勢H2に手部を移動させた場合を想定する。かかる場合には、現実空間における手部の移動に伴って、仮想カメラが三次元空間において位置姿勢C1から位置姿勢C2に移動する。そして、三次元空間における仮想カメラの移動に伴って、仮想カメラの位置姿勢を視点とする映像は、映像D1から映像D2に変更される。
【0077】
このように、ユーザは手部の位置を変更することによって、映像の視点の位置を変更し、様々な位置を視点とする映像を視認することが可能である。
【0078】
続いて、ユーザが現実空間において手部をセンサ位置Sに近づけ、手部を位置姿勢H2から位置姿勢H3に移動させた場合を想定する。かかる場合には、現実空間における手部の移動に伴って、仮想カメラが三次元空間においてオブジェクト位置Oに近づき、位置姿勢C2から位置姿勢C3に移動する。そして、三次元空間における仮想カメラの移動に伴って、仮想カメラの位置姿勢を視点とする映像は、映像D2から映像D3に拡大される。
【0079】
このように、ユーザは手部の位置をセンサ位置Sに近づけることによって、映像を拡大させることが可能である。同様に、ユーザは手部の位置をセンサ位置Sから遠ざけることによって、映像を縮小させることが可能である。
【0080】
一方、ユーザが手部をセンサ位置Sに近づけるのではなく、手部の姿勢を変更した場合を想定する。かかる場合には、現実空間における手部の姿勢の変更に伴って、仮想カメラの姿勢が変化し、仮想カメラの位置姿勢が、三次元空間において位置姿勢C1から位置姿勢C4に変更される。そして、三次元空間における仮想カメラの姿勢の変更に伴って、仮想カメラの位置姿勢を視点とする映像は、映像D1から映像D4に回転する。
【0081】
このように、ユーザは手部の姿勢を変更することによって、映像の視点の向きを変更することが可能である。
【0082】
図2および図3を参照しながら説明したように、本発明の第1の実施形態に係る情報処理システム1によれば、ユーザは、自身の手部の動きのみによって、映像の視点位置の変更、映像の拡大または縮小、映像の回転といった、映像の視点変更操作を行うことが可能となる。続いて、図4および図5を参照しながら、映像の視点がユーザによって指定される場合における情報処理システム1の動作例について説明する。
【0083】
図4は、本発明の第1の実施形態における情報処理システム1の全体的な動作例を示すフローチャートである。また、図5は、図4に示された視点移動処理の詳細な動作例を示すフローチャートである。
【0084】
ユーザは、三次元空間に存在する1または複数のオブジェクトのうち、視認したいオブジェクトを選択する操作を入力する。そして、制御部120は、かかる操作に従ってオブジェクトを選択する(S111)。ここでは、オブジェクト位置O(図2)に存在するオブジェクトがユーザによって選択されたとする。なお、オブジェクトを選択する操作は限定されない。一例として、オブジェクトを選択する操作は、マウスなどのポインティングデバイスを用いてカーソルを動かし、カーソルの位置に存在するオブジェクトを選択する操作によって実現されてもよい。
【0085】
続いて、初期化部121は、選択したオブジェクトの位置姿勢とセンサ座標系の位置姿勢との関係を設定する(S112)。本発明の第1の実施形態においては、センサ座標系におけるユーザの手部の動きに応じて、選択されたオブジェクトを基準として仮想カメラを動かすことによって、映像の視点移動を実現することを想定する。そのため、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係を設定する必要がある。
【0086】
例えば、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係を示すパラメータがあらかじめ記憶されている場合が想定される。かかる場合には、初期化部121は、パラメータが示す関係を満たすように、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係を設定する。これにより、パラメータが示す関係を満たすように、センサ座標系がオブジェクト座標系に配置される。
【0087】
例えば、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係として、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との一致を示すパラメータが記憶されている場合、オブジェクト座標系の位置姿勢と一致する位置姿勢に従って、センサ座標系がオブジェクト座標系に配置される。
【0088】
なお、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係を示すパラメータは、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との一致を示さなくてもよい。一例として、パラメータは、オブジェクト位置Oから離れた位置へのセンサ座標系のオブジェクト座標系への配置を示してもよいし、オブジェクト座標系の姿勢と異なった姿勢に従ったセンサ座標系のオブジェクト座標系への配置を示してもよい。
【0089】
オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係は、どのような形式で表現されてもよい。例えば、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢との関係は、オブジェクト座標系の位置姿勢を基準としたセンサ座標系の相対的な位置姿勢により表現されてもよいし、センサ座標系の位置姿勢を基準としたオブジェクト座標系の相対的な位置姿勢により表現されてもよい。
【0090】
以下の説明においては、説明を簡略化するため、オブジェクト座標系の位置姿勢と一致する位置姿勢に従って、センサ座標系がオブジェクト座標系に配置されることを前提として説明を続ける。
【0091】
なお、センサ座標系における手部の位置は、センサ座標系における三次元座標(X,Y,Z)によって表現されてもよい。また、センサ座標系における手部の姿勢は、手部の姿勢に沿った3方向(x軸方向、y軸方向、z軸方向)のセンサ座標系における座標軸(X軸、Y軸、Z軸)に対する回転行列によって表現される場合を主に想定する。しかし、センサ座標系における手部の姿勢は、後にも説明するように、他の形式によって表現されてもよい。
【0092】
続いて、初期化部121は、オブジェクト座標系における仮想カメラの位置姿勢の初期化を行う(S113)。より詳細に、オブジェクト座標系における仮想カメラの初期段階の位置姿勢を示すパラメータがあらかじめ記憶されている場合には、初期化部121は、オブジェクトが選択されたことに基づいて、オブジェクト座標系におけるパラメータが示す位置姿勢に仮想カメラの初期段階の位置姿勢を設定する。なお、この仮想カメラの初期段階の位置姿勢は、後に仮想カメラ位置姿勢計算部122によって仮想カメラの位置姿勢が算出されるときにも用いられる。
【0093】
例えば、オブジェクトの正面に仮想カメラの位置が設定され、仮想カメラの撮像方向が仮オブジェクトに向くように仮想カメラの姿勢が設定された場合、オブジェクトが選択された後、仮想カメラ映像出力部30によって最初に表示される映像はオブジェクトを正面から見た映像となる。
【0094】
オブジェクト座標系における仮想カメラの初期段階の位置姿勢は、どのような形式で表現されてもよい。例えば、オブジェクト座標系における仮想カメラの初期段階の位置姿勢は、オブジェクト座標系の位置姿勢を基準としたカメラ座標系の相対的な位置姿勢により表現されてもよいし、カメラ座標系の位置姿勢を基準としたオブジェクト座標系の相対的な位置姿勢により表現されてもよい。
【0095】
なお、オブジェクト座標系における仮想カメラの初期段階の位置は、オブジェクト座標系における三次元座標(X,Y,Z)によって表現されてもよい。また、オブジェクト座標系における仮想カメラの初期段階の姿勢は、仮想カメラの姿勢に沿った3方向(x軸方向、y軸方向、z軸方向)のオブジェクト座標系における座標軸(X軸、Y軸、Z軸)に対する回転行列によって表現される場合を主に想定する。しかし、オブジェクト座標系における仮想カメラの初期段階の姿勢は、後にも説明するように、他の形式によって表現されてもよい。
【0096】
その後、手部計測センサ部20によって視点移動開始ジェスチャが検出されない限り(S114において「NO」)、仮想カメラ映像出力部30は、仮想カメラ映像生成部124によって生成された、固定した位置姿勢からの映像を表示し続ける(S115)。一方、手部計測センサ部20によって視点移動開始ジェスチャが検出された場合(S114において「YES」)、視点移動処理に動作が移行される(S116)。
【0097】
すなわち、視点移動開始ジェスチャが検出されなければ、手部計測センサ部20による検知範囲内においてユーザが手部を移動させたとしても、視点変更は行われず、固定した位置姿勢からの映像が表示され続ける。例えば、視点移動開始ジェスチャは、手部の形状が所定の形状にされていることであってよく、所定の形状は、片手の全指をすべて曲げた形状であってもよいし、人差し指を伸ばして他の指を曲げた形状などであってもよい。ただし、所定の形状はどのような形状であってもよい。
【0098】
図5を参照しながら、視点移動開始ジェスチャが検出された場合に実行される視点移動処理の詳細な動作例について説明する。
【0099】
まず、仮想カメラ位置姿勢計算部122は、手部計測センサ部20によって計測された手部の位置姿勢を取得する(S121)。続いて、仮想カメラ位置姿勢計算部122は、手部計測センサ部20によって計測された手部の位置姿勢に基づいて、オブジェクト座標系における仮想カメラの位置姿勢を算出する(S122)。
【0100】
例えば、センサ座標系における手部の位置姿勢と、オブジェクト座標系における仮想カメラの位置姿勢との関係が、あらかじめ決められている場合が想定される。このとき、仮想カメラ位置姿勢計算部122は、かかる関係とセンサ座標系における手部の位置姿勢とに基づいて、オブジェクト座標系における仮想カメラの位置姿勢を算出する。
【0101】
センサ座標系における手部の位置姿勢と、オブジェクト座標系における仮想カメラの位置姿勢との関係は、どのような関係であってもよい。ただし、より直感的な視点指定操作を実現するためには、オブジェクト座標系における仮想カメラの姿勢は、オブジェクト座標系における手部の所定方向と、オブジェクト座標系における仮想カメラの撮像方向とが一致するように、オブジェクト座標系における手部の姿勢が回転した姿勢であるのが望ましい。
【0102】
オブジェクト座標系における仮想カメラの位置姿勢との関係がこのような関係であれば、ユーザ自身で仮想カメラを動かしながら仮想カメラにオブジェクトを撮像させるような視点指定操作が実現され得る。
【0103】
例えば、手部の所定方向は、手のひらの向く方向であってよく、手部の姿勢に沿った方向であってよい。一方、仮想カメラの撮像方向は、仮想カメラの姿勢に沿った方向であってよい。図2に示された例では、手部の位置姿勢H1~H4に対応する手のひらの向く方向(z軸方向)と、仮想カメラの位置姿勢C1~C4に対応する撮像方向(z軸方向)とが一致している。
【0104】
ここで、仮想カメラの位置姿勢の算出例として、以下に回転行列を用いた例を示す。
【0105】
オブジェクト座標系における仮想カメラの位置は、センサ座標系における手部の位置に対応する三次元空間における手部の位置と一致してもよい。あるいは、オブジェクト座標系における仮想カメラの位置を示すパラメータは、センサ座標系における手部の位置に対応するオブジェクト座標系における手部の位置を示すパラメータに定数を乗じて得られるパラメータであってもよい。
【0106】
すなわち、オブジェクト座標系における仮想カメラの位置Pvc=[Xvc,Yvc,Zvcは、定数sとオブジェクト座標系における手部の位置Phc=[Xhc,Yhc,Zhcとを用いて、下記の式(1)により算出される。
【0107】
vc=sPhc ・・・(1)
【0108】
定数sは、手部の移動のスケールと仮想カメラの移動のスケールとの関係を調節するためのパラメータに該当する。例えば、s=0.1に設定されている場合には、仮想カメラの移動のスケールは、手部の移動のスケールの1/10になる。sは、任意に設定可能であり、選択されたオブジェクトのスケールに応じて変化してもよい。一例として、選択されたオブジェクトのスケールが大きいほど、sは大きくてもよい。
【0109】
オブジェクト座標系における仮想カメラの姿勢を算出するためのパラメータR vc(回転行列)は、センサ座標系における手部の姿勢を算出するためのパラメータR (回転行列)と、あらかじめ設定されたセンサ座標系とオブジェクト座標系との関係を示すパラメータR vc(回転行列)を用いて、下記の式(2)により算出される。
【0110】
vc=R vc ・・・(2)
【0111】
なお、上記したように、センサ座標系とオブジェクト座標系との関係を示すパラメータR vcは、オブジェクト座標系における手部の所定方向(例えば、手のひらの向く方向)と、オブジェクト座標系における仮想カメラの撮像方向とが一致するように設定されているのが望ましい。これにより、ユーザは、手のひらが向く方向を変化させることによって、仮想カメラの撮像方向を変化させることが可能となる。
【0112】
続いて、仮想カメラ配置部123は、仮想カメラ位置姿勢計算部122によって算出された、オブジェクト座標系における仮想カメラの位置姿勢に従って、三次元空間に仮想カメラを移動する(S123)。そして、仮想カメラ映像生成部124は、仮想カメラの配位置姿勢からの映像を生成し、仮想カメラ映像出力部30は、生成された映像を表示する(S124)。
【0113】
制御部120は、手部計測センサ部20によって視点移動終了ジェスチャが検出されたかを判定する(S125)。
【0114】
制御部120は、視点移動終了ジェスチャが検出されていないと判定した場合には(S125において「NO」)、S121に戻り、視点移動処理を継続する。例えば、視点移動終了ジェスチャは、視点移動開始ジェスチャと同様に、手部の形状が所定の形状にされていることであってよい。上記したように、視点移動開始ジェスチャと視点移動終了ジェスチャとは、同じジェスチャであってもよいし、異なるジェスチャであってもよい。
【0115】
一方、制御部120は、視点移動終了ジェスチャが検出されたと判定した場合には(S125において「YES」)、仮想カメラの位置姿勢を固定し(S126)、S114に動作を移行させる(S126)。すなわち、ユーザは、視点移動終了ジェスチャを行うことによって、映像の視点を固定することが可能である。
【0116】
以上、本発明の第1の実施形態に係る情報処理システム1の動作例について説明した。
【0117】
(1-3.効果)
以上により、本発明の第1の実施形態によれば、コンピュータ内の三次元空間上の仮想カメラの位置姿勢を、現実空間で計測した手部の位置姿勢から計算することによって、手部の動きのみで映像の視点指定操作が可能である。これにより、ユーザ自身が対象のオブジェクトをカメラで撮像しているように視点指定操作を行うことが可能となり、より直感的な視点指定操作が実現され得る。
【0118】
また、一般的には、マウスに対するクリック操作と、カーソル位置を移動させるドラッグ操作との組み合わせにより視点指定操作が実現される。一方、本発明の第1の実施形態によれば、手部の移動のみによって視点変更操作が実現されるため、より連続的な視点変更操作が可能となり、かつ、視点変更操作が高速化されることが期待され得る。
【0119】
以上、本発明の第1の実施形態に係る情報処理システム1が奏する効果について説明した。
【0120】
(2.第2の実施形態)
続いて、本発明の第2の実施形態について説明する。本発明の第1の実施形態においては、手部の位置姿勢を計測し、計測した手部の位置姿勢に基づいて仮想カメラを動かすことによって、手部の動きのみで視点指定操作が可能となった。しかし、かかる本発明の第1の実施形態には、改善すべき点がある。図6および図7を参照しながら、本発明の第1の実施形態が備える改善すべき点について説明する。
【0121】
図6は、本発明の第1の実施形態および本発明の第2の実施形態それぞれに係る制御部120の動作例の違いについて説明するための図であり、現実空間における手部計測センサ部20と手部との位置姿勢の関係、および、三次元空間におけるオブジェクトと仮想カメラとの位置姿勢の関係の例を示す図である。
【0122】
図6に示された例において、位置姿勢H5~H6それぞれは、センサ位置Sを原点とするセンサ座標系における位置および姿勢であり、6次元のベクトルによって表現される。また、位置姿勢C5~C6それぞれは、オブジェクト座標系における仮想カメラの位置および姿勢であり、6次元のベクトルによって表現される。
【0123】
図6には、本発明の第1の実施形態において、センサ座標系における手部の位置姿勢が位置姿勢H5である場合における、オブジェクト座標系における仮想カメラの位置姿勢が位置姿勢C5として示されている。また、本発明の第2の実施形態において、センサ座標系における手部の位置姿勢が位置姿勢H6である場合における、オブジェクト座標系における仮想カメラの位置姿勢が位置姿勢C6として示されている。
【0124】
図7は、本発明の第1の実施形態および本発明の第2の実施形態それぞれに係る制御部120の動作例の違いについて説明するための図であり、仮想カメラ映像出力部30によって表示される映像の例を示す図である。仮想カメラ映像出力部30は、制御部120によって配置された仮想カメラにより三次元空間に存在するオブジェクトが撮像されて得られる映像を表示する。
【0125】
図7(および図6)には、本発明の第1の実施形態において、オブジェクト座標系における位置姿勢C5に配置された仮想カメラによってオブジェクトが撮像されて得られる映像が映像D5として示されている。また、本発明の第2の実施形態において、オブジェクト座標系における位置姿勢C6に配置された仮想カメラによってオブジェクトが撮像されて得られる映像が映像D6として示されている。
【0126】
ここで、図6の上図に示すように、本発明の第1の実施形態においては、手部の位置姿勢H5および仮想カメラの位置姿勢C5を参照すると、手のひらの向きがセンサ位置Sに向いていないため、仮想カメラの撮像方向もオブジェクト位置Oに向いていない。これにより、オブジェクトBが映像D5からも外れてしまう。また、映像D5からは、オブジェクトBが上方向に外れているが、手部の姿勢によっては、オブジェクトBが映像D5の左右方向または下方向に外れてしまう可能性もある。
【0127】
本発明の第1の実施形態が備える、このような改善すべき点を克服するために、本発明の第2の実施形態においては、手部の位置姿勢H6および仮想カメラの位置姿勢C6に示されるように、手のひらの向きがセンサ位置Sに向いていないとしても、常にオブジェクトに仮想カメラが向くような処理を新たに加える。この処理を加えることにより、常にオブジェクトBが映像D6の中央に位置するようになる。
【0128】
(2-1.情報処理システムの構成)
続いて、本発明の第2の実施形態に係る情報処理システムの構成例について説明する。本発明の第2の実施形態に係る情報処理システムの全体的な構成は、本発明の第1の実施形態に係る情報処理システムの全体的な構成と変わらない。しかし、仮想カメラ位置姿勢計算部122によって実行される処理が変化する。
【0129】
本発明の第1の実施形態においては、仮想カメラの位置姿勢は、式(2)に示されるように、あらかじめ設定されたセンサ座標系とオブジェクト座標系との関係を示すパラメータR vcを用いて計算される例について説明した。本発明の第2の実施形態においては、仮想カメラがオブジェクトを常に向くように仮想カメラの位置姿勢が計算される。
【0130】
より詳細には、仮想カメラ位置姿勢計算部122は、オブジェクト座標系における仮想カメラの位置からオブジェクトの位置への方向を算出し、算出した方向に従ってオブジェクト座標系における仮想カメラの姿勢を補正する。なお、所定の条件が満たされる場合には、仮想カメラの姿勢は補正されてもよく、所定の条件が満たされない場合には、仮想カメラの姿勢は補正されなくてもよい。
【0131】
例えば、仮想カメラ位置姿勢計算部122は、オブジェクト座標系における手部の姿勢と仮想カメラの姿勢との差分が閾値以下である場合には、オブジェクト座標系における仮想カメラの姿勢を補正してもよい。一方、仮想カメラ位置姿勢計算部122は、オブジェクト座標系における手部の姿勢と仮想カメラの姿勢との差分が閾値を上回る場合には、オブジェクト座標系における仮想カメラの姿勢を補正しなくてもよい。
【0132】
仮想カメラの位置姿勢のさらに具体的な計算方法および処理手順については、「2-2.情報処理システムの動作」の項において説明する。
【0133】
以上、本発明の第2の実施形態に係る情報処理システム1の構成例について説明した。
【0134】
(2-2.情報処理システムの動作)
本発明の第2の実施形態における全体的な動作例は、本発明の第1の実施形態における全体的な動作例と変わらない。ただし、本発明の第2の実施形態においては、本発明の第1の実施形態における、仮想カメラの位置姿勢の算出S122(図5)に相当する処理方法が変わる。したがって、本項においては、本発明の第2の実施形態における仮想カメラの位置姿勢の算出方法について詳細に説明する。
【0135】
図8は、本発明の第2の実施形態における情報処理システム1の全体的な動作例を示すフローチャートである。また、図9は、図8に示された視点移動処理の詳細な動作例を示すフローチャートである。図10は、図9に示した仮想カメラ移動処理の詳細な動作例を示す図である。なお、フローチャートにおいて、本発明の第1の実施形態におけるステップと共通するステップには同一の符号を付し、そのステップの詳細説明を省略する。
【0136】
図8を参照すると、本発明の第2の実施形態においては、本発明の第1の実施形態における視点移動処理S116(図4)が視点移動処理S118に置き換わっている。視点移動処理S118の詳細な動作例が、図9に示されている。図9を参照すると、S122およびS123(図5)が仮想カメラ移動処理S128に置き換わっている。そこで、本発明の第2の実施形態の特徴の一つである仮想カメラ移動処理S128について詳細に説明する。
【0137】
まず、仮想カメラ位置姿勢計算部122は、オブジェクト座標系における仮想カメラの位置の算出を行う(S201)。本発明の第2の実施形態においても、仮想カメラ位置姿勢計算部122は、本発明の第1の実施形態と同様に、オブジェクト座標系における仮想カメラの位置を算出し得る。より詳細に、仮想カメラ位置姿勢計算部122は、上記の式(1)を用いてオブジェクト座標系における仮想カメラの位置を算出してよい。
【0138】
続いて、仮想カメラ位置姿勢計算部122は、仮想カメラの姿勢の算出を行う。本発明の第1の実施形態においては、下記の式(3)に示すように仮想カメラの姿勢を算出するためのパラメータR vcが回転行列によって表現される例について説明した。
【0139】
【数1】
【0140】
ここで、a、b、cそれぞれは、R vcの各列の成分であり、三次元のベクトルである。回転行列の性質よりa、b、cは、手部に設定された座標系の座標軸(x,y,z)を表し、上記の式(2)によって算出される。しかし、上記したように、R vcを用いたとしても、仮想カメラの姿勢が必ずしもオブジェクトの方向に向くように算出されるとは限らない。したがって、仮想カメラ位置姿勢計算部122は、R vcを補正して、常に仮想カメラがオブジェクトに向くような処理を行う。
【0141】
より詳細に、仮想カメラ位置姿勢計算部122は、オブジェクト座標系における仮想カメラの位置を基準としたオブジェクトの方向を向く、正規化された方向ベクトルVoz=[Xoz,Yoz,Zozを算出する(S202)。なお、本発明の実施形態において「正規化」は、ベクトルの大きさを1にする処理を意味し得る。
【0142】
ここで、Vozは仮想カメラを基準としたオブジェクトの方向を示している。また、上記したように、本発明の実施形態においては、仮想カメラの撮像方向がz軸方向である場合を主に想定している。したがって、仮想カメラ位置姿勢計算部122は、Vozの方向に仮想カメラのz軸を向けることにより、常に仮想カメラがオブジェクトに向く状態にすることが可能となる。
【0143】
ここで、仮想カメラ位置姿勢計算部122は、センサ座標系における手部の位置Phcに対応するオブジェクト座標系における手部の位置に「-1」を乗算し、乗算した結果に対して正規化を施すことにより、オブジェクト座標系における仮想カメラの位置を基準としたオブジェクトの方向を向く、正規化された方向ベクトルVozを得る。
【0144】
なお、S112において、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢とを一致させた場合が想定される。かかる場合には、仮想カメラ位置姿勢計算部122は、センサ座標系における手部の位置Phcに「-1」を乗算して得られる「-Phc」をVozとして得ればよい。
【0145】
一方、S112において、オブジェクト座標系の位置姿勢とセンサ座標系の位置姿勢とを一致させなかった場合も想定される。かかる場合には、仮想カメラ位置姿勢計算部122は、センサ座標系を基準としたオブジェクト座標系の相対的な位置姿勢を「-Phc」に足すことによりVozを得ればよい。
【0146】
次に、仮想カメラ位置姿勢計算部122は、Vozと実際のセンサデータであるCとの成す角を計算する。そして、仮想カメラ位置姿勢計算部122は、VozとCとの成す角が閾値を上回る場合には(S203において「NO」)、S201およびS202において算出した仮想カメラの位置姿勢を保持し、S204およびS205における仮想カメラの位置姿勢の算出を行わない。
【0147】
すなわち、オブジェクト座標系において手部の所定方向(例えば、手のひらの向く方向)と仮想カメラの撮像方向との誤差が大きい場合には、仮想カメラが固定され(すなわち、視点移動が行われずに)、映像が表示される。このような制御は、オブジェクト座標系において手部の所定方向(例えば、手のひらの向く方向)と仮想カメラの撮像方向との誤差が大きい場合に、回転行列の補正S205による誤差も大きくなり、直感的な操作が不可能となることを防ぐために行われる。なお、この閾値は任意に設定可能である。
【0148】
一方、仮想カメラ位置姿勢計算部122は、VozとCとの成す角が閾値以下である場合には(S203において「YES」)、Vozを用いて仮想カメラがオブジェクトに向くような姿勢を表現する行列を算出する(S204)。
【0149】
より詳細に、本発明の第2の実施形態において、仮想カメラの姿勢は、以下に説明するように回転行列により表現される。ここで、本発明の第1の実施形態では、a、b、cから構成される回転行列R vcは、オブジェクト座標系における手部の姿勢であった。一方、本発明の第2の実施形態では、手部の姿勢に依らず、仮想カメラは常にオブジェクトに向いていなければならない。したがって、仮想カメラ位置姿勢計算部122は、仮想カメラの撮像方向をz軸方向とする場合には、式(3)中のcを置き換える。
【0150】
ここで、式(3)中の、R vcにおけるcは、仮想カメラのz軸方向のオブジェクト座標系における方向ベクトルを表している。また、上記したように、Vozは、オブジェクト座標系における仮想カメラの位置を基準としたオブジェクトの方向を向く、正規化された方向ベクトルである。そこで、仮想カメラ位置姿勢計算部122が、cをVozに置き換える。これによりR vc=[a,b,Voz]となり、仮想カメラのz軸方向は、常にオブジェクトに向くことになる。これにより、常に仮想カメラによって撮像される映像の中心にオブジェクトが位置するようになる。
【0151】
なお、仮想カメラの撮像方向が仮想カメラのz軸方向ではない場合も想定される。例えば、仮想カメラ位置姿勢計算部122は、仮想カメラの撮像方向が仮想カメラのx軸方向である場合には、cではなくaをVozに置き換えればよい。同様に、仮想カメラ位置姿勢計算部122は、仮想カメラの撮像方向が仮想カメラのy軸方向である場合には、cではなくbをVozに置き換えればよい。
【0152】
次に、仮想カメラ位置姿勢計算部122は、求めるべき行列が回転行列であるという条件に則り、R vcを補正する(S205)。S204においてcをVozに置き換えたことにより、R vc=[a,b,Voz]は回転行列ではなくなる。そこで、R vcを回転行列に変換するための補正を行う必要があるが、Vozは仮想カメラが常にオブジェクトに向くように設定された値であるため、Vozを変えることはできない。したがって、仮想カメラ位置姿勢計算部122は、a、bを、Vozに合わせて補正する。
【0153】
図11は、R vcを回転行列に変換するための補正の例について説明するための図である。まず、仮想カメラ位置姿勢計算部122は、bをVoyに補正する。より詳細に、Voyは、回転行列の性質より、Vozと垂直である必要がある。そこで、仮想カメラ位置姿勢計算部122は、図11に示されるように、Vozを法線とする平面に、bを射影することにより、bを補正する。これにより、仮想カメラ位置姿勢計算部122は、bの成分のうちVozと垂直な方向の成分を抜き出すことができる。
【0154】
ozを法線とする平面にbが射影されて得られる方向ベクトルb’は、下記の式(4)に示されるように表現される。
【0155】
b’=b-(b・Voz)Voz ・・・(4)
【0156】
さらに、仮想カメラ位置姿勢計算部122は、b’を正規化することにより、bの補正後のベクトルであるVoyを得る。
【0157】
続いて、仮想カメラ位置姿勢計算部122は、aをVoxに補正する。より詳細に、Voxは、回転行列の性質から、VoyとVozとの外積となるため、下記の式(5)により算出され得る。
【0158】
ox=Voy×Voz ・・・(5)
【0159】
仮想カメラ位置姿勢計算部122は、上記のように算出されたVoxにより、上記の式(3)のaを置き換え、上記のように算出されたVoyにより、上記の式(3)のbを置き換える補正によって、仮想カメラの姿勢を表現する回転行列R vcを得る。R vcは、下記の式(6)に示される通りとなる
【0160】
vc=[Voz,Voz,Voz] ・・・(6)
【0161】
以上の処理により、R vcの各成分は補正され、仮想カメラの撮像方向(z軸方向)がオブジェクト位置Oに常に向くようになる。そして、仮想カメラ配置部123は、本発明の第1の実施形態と同様に、仮想カメラ位置姿勢計算部122によって算出された仮想カメラの位置姿勢に従って、仮想カメラを移動させる(S206)。
【0162】
以上、本発明の第2の実施形態に係る情報処理システム1の動作例について説明した。
【0163】
(2-3.効果)
以上により、本発明の第2の実施形態によれば、仮想カメラが常にオブジェクトに向くような処理を加えることにより、オブジェトを常に映像の中央に配置しながら視点指定操作を行うことが可能となる。
【0164】
本発明の第1の実施形態においては、計測される手部の姿勢によっては、映像からオブジェクトが外れてしまう状況が生じ得る。そのため、ユーザは、映像の中央にオブジェクトを配置するには、常に手のひらをセンサに向けつつ視点指定操作を行う必要がある。
【0165】
一方、本発明の第2の実施形態においては、手部の姿勢によらず、常に映像の中央にオブジェクトが配置された状態で、視点変更操作が可能となった。これにより、ユーザは意識して手のひらをセンサに向ける必要がなくなり、より簡単に視点指定操作を行うことが可能である。
【0166】
以上、本発明の第2の実施形態に係る情報処理システム1が奏する効果について説明した。
【0167】
(3.ハードウェア構成例)
続いて、本発明の実施形態に係る情報処理装置10のハードウェア構成例について説明する。
【0168】
以下では、本発明の実施形態に係る情報処理装置10のハードウェア構成例として、情報処理装置900のハードウェア構成例について説明する。なお、以下に説明する情報処理装置900のハードウェア構成例は、情報処理装置10のハードウェア構成の一例に過ぎない。したがって、情報処理装置10のハードウェア構成は、以下に説明する情報処理装置900のハードウェア構成から不要な構成が削除されてもよいし、新たな構成が追加されてもよい。
【0169】
図12は、本発明の実施形態に係る情報処理装置10の例としての情報処理装置900のハードウェア構成を示す図である。情報処理装置900は、CPU(Central Processing Unit)901と、ROM(Read Only Memory)902と、RAM(Random Access Memory)903と、ホストバス904と、ブリッジ905と、外部バス906と、インタフェース907と、入力装置908と、出力装置909と、ストレージ装置910と、通信装置911と、を備える。
【0170】
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバス等から構成されるホストバス904により相互に接続されている。
【0171】
ホストバス904は、ブリッジ905を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス906に接続されている。なお、必ずしもホストバス904、ブリッジ905および外部バス906を分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
【0172】
入力装置908は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバー等ユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU901に出力する入力制御回路等から構成されている。情報処理装置900を操作するユーザは、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0173】
出力装置909は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置、ランプ等の表示装置およびスピーカ等の音声出力装置を含む。
【0174】
ストレージ装置910は、データ格納用の装置である。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置等を含んでもよい。ストレージ装置910は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置910は、ハードディスクを駆動し、CPU901が実行するプログラムや各種データを格納する。
【0175】
通信装置911は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置911は、無線通信または有線通信のどちらに対応してもよい。
【0176】
以上、本発明の実施形態に係る情報処理装置10のハードウェア構成例について説明した。
【0177】
(4.まとめ)
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0178】
例えば、本発明の第1の実施形態においては、上記の式(2)に示されるように、仮想カメラの姿勢が回転行列によって表現される場合について主に想定した。しかし、仮想カメラの姿勢の表現には、オイラー角(三次元)、クォータニオン(四次元)といった、他の回転表現が用いられてもよい。かかる場合には、上記の式(2)は、その回転表現に適した式に適宜変更されてよい。
【0179】
また、本発明の第2の実施形態においては、センサから得られる手部の姿勢が回転行列によって算出される場合について主に想定した。しかし、他の姿勢表現であっても回転行列に変換可能な姿勢表現であれば、手部の姿勢の表現に適用され得る。例えば、手部の姿勢の表現には、オイラー角(三次元)、クォータニオン(四次元)といった、他の回転表現が用いられてもよい。
【0180】
また、本発明の第2の実施形態においては、手のひらの向く方向と仮想カメラの向きとが一致する場合について主に想定した。しかし、上記の式(2)におけるR vcの値によっては、手のひらの向く方向と仮想カメラの向きとが一致しなくてもよい。
【符号の説明】
【0181】
1 情報処理システム
10 情報処理装置
120 制御部
121 初期化部
122 仮想カメラ位置姿勢計算部
123 仮想カメラ配置部
124 仮想カメラ映像生成部
130 記憶部
20 手部計測センサ部
30 仮想カメラ映像出力部


図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12