(57)【要約】【課題】仮想オブジェクトの物理挙動計算に係る処理負荷を効果的に低減させる。【解決手段】情報処理装置１０は、実空間画像を取得する画像取得部１１と、実空間画像に含まれる現実物体Ｒを認識する画像認識部１２と、仮想オブジェクトＣが配置された仮想空間Ａに、現実物体Ｒに対応する操作オブジェクトＲ１を重畳させた重畳画像ＩＭを生成する重畳画像生成部１５と、仮想オブジェクトＣに、一以上の矩形状のブロックＢを含むテンプレートＴを関連付けるテンプレート設定部１６ａと、積分画像ＩＭ３を生成する積分画像生成部１６ｂと、積分画像ＩＭ３とブロックＢに対応する領域とに基づいて、ブロックＢと操作オブジェクトＲ１とが重なる領域の画素数を算出する画素数算出部１６ｃと、ブロックＢに割り付けられた力のベクトルと算出された画素数とに基づいて、仮想オブジェクトＣが受ける力を決定する物理挙動決定部１６ｄと、を有する。【選択図】図２
2020177442.tif 000002
【特許請求の範囲】
【請求項１】
現実物体を含む実空間画像を取得する画像取得部と、
前記実空間画像に含まれる前記現実物体を認識する画像認識部と、
仮想オブジェクトが配置された仮想空間に、前記画像認識部により認識された前記現実物体に対応する操作オブジェクトを重畳させた二次元画像である重畳画像を生成する重畳画像生成部と、
前記仮想オブジェクトが前記操作オブジェクトから受ける力を演算し、前記力に基づいて前記仮想空間内で前記仮想オブジェクトを動作させるオブジェクト制御部と、を備え、
前記オブジェクト制御部は、
前記仮想オブジェクトに、力のベクトルが割り付けられた一以上の矩形状のブロックを含むテンプレートを関連付けるテンプレート設定部と、
前記重畳画像において前記操作オブジェクトが存在する領域に含まれる画素の画素値を１とすると共にそれ以外の画素の画素値を０とした二値画像についての積分画像を生成する積分画像生成部と、
前記積分画像と前記ブロックに対応する領域とに基づいて、前記ブロックと前記操作オブジェクトとが重なる領域の画素数を算出する画素数算出部と、
前記ブロックに割り付けられた前記力のベクトルと前記画素数算出部により算出された前記画素数とに基づいて、前記仮想オブジェクトが受ける前記力を決定する物理挙動決定部と、を有する、情報処理装置。
【請求項２】
前記テンプレート設定部は、前記仮想オブジェクトに、前記仮想オブジェクトの画素領域よりも大きい前記テンプレートを関連付け、
前記テンプレートは、前記仮想オブジェクトが前記操作オブジェクトから受ける前記力を演算するためにのみ用いられる、請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、情報処理装置に関する。
【背景技術】
【０００２】
特許文献１には、実空間画像に含まれる現実物体（例えば被写体であるユーザの腕）に対応する操作オブジェクトを仮想空間内に表示し、当該操作オブジェクトによって仮想空間内に配置された仮想オブジェクトを操作する手法が開示されている。上記手法では、各仮想オブジェクトに対して、物理挙動を規定するパラメータ（力のベクトル）を割り付けたテンプレートが関連付けられる。そして、仮想空間内における操作オブジェクトと仮想オブジェクトのテンプレートとの重畳領域が検出され、テンプレートに割り付けられたパラメータと重畳領域の大きさとに基づいて、仮想オブジェクトの物理挙動が決定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１４３０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記手法において、仮想オブジェクトのリアルな物理挙動を実現し、仮想オブジェクトに対するインタラクションに関するユーザ体験の質を向上させるためには、上述した仮想オブジェクトの物理挙動をリアルタイムに決定する必要がある。すなわち、仮想空間内に存在する全ての仮想オブジェクトに対して、操作オブジェクトとテンプレートとの重畳領域を検出する処理を短時間のサイクルで繰り返し実行する必要がある。仮想空間内に配置される仮想オブジェクトが少数である場合には、上記の制約は特に問題とはならない。
【０００５】
しかし、仮想空間内に膨大な数（例えば数百〜数千）の仮想オブジェクトが配置される場合には、全ての仮想オブジェクトに対して上記処理を短時間で完了させるために、プロセッサ等のハードウェア資源に非常に大きい処理負荷がかかってしまう。このため、高性能且つ高価なコンピュータ装置を用意する必要が生じたり、処理落ち等の発生によりユーザ体験の質を損なったりするおそれがある。
【０００６】
そこで、本発明の一側面は、仮想オブジェクトの物理挙動計算に係る処理負荷を効果的に低減させることが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る情報処理装置は、現実物体を含む実空間画像を取得する画像取得部と、実空間画像に含まれる現実物体を認識する画像認識部と、仮想オブジェクトが配置された仮想空間に、画像認識部により認識された現実物体に対応する操作オブジェクトを重畳させた二次元画像である重畳画像を生成する重畳画像生成部と、仮想オブジェクトが操作オブジェクトから受ける力を演算し、当該力に基づいて仮想空間内で仮想オブジェクトを動作させるオブジェクト制御部と、を備え、オブジェクト制御部は、仮想オブジェクトに、力のベクトルが割り付けられた一以上の矩形状のブロックを含むテンプレートを関連付けるテンプレート設定部と、重畳画像において操作オブジェクトが存在する領域に含まれる画素の画素値を１とすると共にそれ以外の画素の画素値を０とした二値画像についての積分画像を生成する積分画像生成部と、積分画像とブロックに対応する領域とに基づいて、ブロックと操作オブジェクトとが重なる領域の画素数を算出する画素数算出部と、ブロックに割り付けられた力のベクトルと画素数算出部により算出された画素数とに基づいて、仮想オブジェクトが受ける力を決定する物理挙動決定部と、を有する。
【０００８】
本発明の一側面に係る情報処理装置によれば、仮想オブジェクトに、力のベクトルが割り付けられた矩形状のブロックを含むテンプレートを関連付けることにより、ブロックと操作オブジェクトとが重なる領域の画素数に基づいて、仮想オブジェクトが操作オブジェクトから受ける力を求めることができる。さらに、上記情報処理装置では、積分画像生成部により生成された積分画像を利用することにより、矩形状のブロックと操作オブジェクトとが重なる領域の画素数を算出するために必要な画素参照回数を格段に少なくすることができる。その結果、仮想オブジェクトの物理挙動計算に係る処理負荷を効果的に低減させることができる。
【発明の効果】
【０００９】
本発明の一側面によれば、仮想オブジェクトの物理挙動計算に係る処理負荷を効果的に低減させることが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る情報処理装置を含む情報処理システムの全体構成を示す図である。
【図２】情報処理装置の機能構成を示すブロック図である。
【図３】テンプレートの一例を示す図である。
【図４】操作オブジェクトとテンプレートとの位置関係に応じて決定される仮想オブジェクトの物理挙動の例を示す図である。
【図５】図３に示したテンプレートと等価なテンプレートの例を示す図である。
【図６】回転体である仮想オブジェクトに関連付けられるテンプレートの例を示す図である。
【図７】積分画像生成処理について説明するための図である。
【図８】積分画像生成処理について説明するための図である。
【図９】積分画像生成処理について説明するための図である。
【図１０】画素数算出処理について説明するための図である。
【図１１】情報処理装置の動作の一例を示すフローチャートである。
【図１２】仮想オブジェクト及びテンプレートの例を示す図である。
【図１３】情報処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の一実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明を省略する。
【００１２】
図１は、一実施形態に係る情報処理装置１０を含む情報処理システム１の全体構成を示す図である。情報処理システム１は、情報処理装置１０と、カメラ２０と、を備える。カメラ２０は、例えばＣＣＤカメラ等の撮像手段である。情報処理装置１０は、例えばプロセッサ、メモリ等のハードウェアを含むコンピュータ装置である。情報処理装置１０は、仮想空間Ａ内に配置された仮想的な物体である仮想オブジェクトＣを、カメラ２０により撮像された実空間画像から抽出された現実物体Ｒ（ここではユーザＵの腕）に対応する操作オブジェクトＲ１によって操作することを可能とする装置である。
【００１３】
図１を参照して、情報処理システム１の概要について説明する。まず、カメラ２０が実空間画像を取得する。一例として、カメラ２０は、所定のスクリーンＳを背景として所定時間間隔で現実物体Ｒ（ユーザＵの腕）の実空間画像を撮像し、撮像された実空間画像を逐次情報処理装置１０に出力する。情報処理装置１０は、入力された実空間画像から、背景であるスクリーンＳと現実物体Ｒとを認識し、背景以外の画像のみ（ここではユーザＵの腕の画像）を抽出する。続いて、情報処理装置１０は、一以上の仮想オブジェクトＣ（ここでは一例として、２つの仮想オブジェクトＣ１，Ｃ２）が配置された仮想空間Ａに操作オブジェクトＲ１を重畳させた二次元画像である重畳画像ＩＭを生成する。重畳画像ＩＭは、モニタ１０ａに表示される。
【００１４】
続いて、情報処理装置１０は、仮想オブジェクトＣ（具体的には、後述するテンプレートＴ）と操作オブジェクトＲ１との重なり具合に応じて、仮想オブジェクトＣの物理挙動（移動、回転等）を決定する。続いて、情報処理装置１０は、決定された物理挙動を仮想空間Ａ内の仮想オブジェクトＣに反映する。上述した情報処理装置１０及びカメラ２０による処理は、繰り返し実行される。この構成によれば、モニタ１０ａには、ユーザＵの腕の動きが反映された操作オブジェクトＲ１が表示されると共に、操作オブジェクトＲ１とのインタラクションに応じた物理挙動を行う仮想オブジェクトＣが表示される。その結果、あたかも現実に存在する物体を操作するような感覚で仮想オブジェクトＣを操作しているようなユーザ体験が、モニタ１０ａに表示される映像（重畳画像ＩＭ）を通して、ユーザＵに提供される。
【００１５】
図２に示されるように、情報処理装置１０は、上述したモニタ１０ａと、画像取得部１１と、画像認識部１２と、仮想空間画像生成部１３と、記憶部１４と、重畳画像生成部１５と、オブジェクト制御部１６と、を備える。
【００１６】
画像取得部１１は、現実物体Ｒを含む実空間画像を取得する。上述したように、本実施形態では一例として、現実物体ＲはユーザＵの腕であり、画像取得部１１は、カメラ２０により撮像された実空間画像を定期的に取得する。
【００１７】
画像認識部１２は、画像取得部１１により取得された実空間画像に含まれる現実物体Ｒを認識する。本実施形態では一例として、画像認識部１２は、スクリーンＳを背景とした実空間画像から、スクリーンＳに対応する部分を除去することにより、現実物体Ｒに対応する部分を抽出する。この処理により、仮想空間Ａに重畳表示するための操作オブジェクトＲ１の画像が取得される。ただし、画像認識部１２が現実物体Ｒを認識する方法は上記に限られない。例えば、画像認識部１２は、パターンマッチング等の他の公知の画像認識手法を用いることにより、現実物体Ｒに対応する部分を抽出してもよい。また、カメラ２０が被写体（ここではユーザＵの腕）までの距離（奥行き）を計測する機能を有するデプスカメラである場合、画像認識部１２は、実空間画像から、カメラ２０により計測された距離が予め定められた範囲内にある被写体のみを抽出することにより、現実物体Ｒに対応する部分を抽出してもよい。
【００１８】
仮想空間画像生成部１３は、仮想空間Ａを示す仮想空間画像を生成する。仮想空間画像は、仮想空間Ａの背景と仮想オブジェクトＣとを含む画像である。すなわち、仮想空間画像は、重畳画像ＩＭのうち操作オブジェクトＲ１が含まれない画像（すなわち、操作オブジェクトＲ１が重畳表示される前の状態の画像）である。仮想空間画像生成部１３は、記憶部１４に記憶された仮想空間Ａに関するデータに基づいて、仮想空間画像を生成する。記憶部１４には、仮想空間Ａの背景に関するデータ、仮想空間Ａに配置される仮想オブジェクトＣに関するデータ、仮想オブジェクトＣに関連付けられたテンプレート（詳しくは後述）に関するデータ等が記憶されている。仮想オブジェクトＣに関するデータは、仮想オブジェクトＣを描画するためのデザイン情報、並びに現時点の仮想オブジェクトＣの位置及び姿勢等を示す配置情報等を含んでいる。
【００１９】
重畳画像生成部１５は、上述した重畳画像ＩＭを生成する。具体的には、重畳画像生成部１５は、仮想オブジェクトＣが配置された仮想空間Ａに、画像認識部１２により認識された現実物体Ｒに対応する操作オブジェクトＲ１を重畳させた二次元画像である重畳画像ＩＭを生成する。すなわち、重畳画像生成部１５は、仮想空間画像生成部１３により生成された仮想空間画像に操作オブジェクトＲ１を重畳させることにより、重畳画像ＩＭを生成する。重畳画像生成部１５は、生成した重畳画像ＩＭをモニタ１０ａに出力する。
【００２０】
オブジェクト制御部１６は、仮想オブジェクトＣが操作オブジェクトＲ１から受ける力を演算し、当該力に基づいて仮想空間Ａ内で仮想オブジェクトＣを動作させる。このような仮想オブジェクトＣの動作は、例えば以下のようにして、重畳画像ＩＭに反映される。すなわち、オブジェクト制御部１６により仮想オブジェクトＣの位置及び姿勢等が変化させられると、記憶部１４に記憶されている仮想オブジェクトＣの配置情報が、上記変化後の仮想オブジェクトＣの配置情報に更新される。続いて、仮想空間画像生成部１３が、更新後の仮想オブジェクトＣの配置情報に基づいて、仮想空間画像を新たに生成（更新）する。また、重畳画像生成部１５が、新たに生成された仮想空間画像に操作オブジェクトＲ１を重畳させることにより、重畳画像ＩＭを更新する。以上により、ユーザＵは、重畳画像ＩＭを通して、操作オブジェクトＲ１から力を受けて仮想オブジェクトＣが動作する様子を確認することができる。
【００２１】
オブジェクト制御部１６は、上述した仮想オブジェクトＣの動作制御を実現するために、テンプレート設定部１６ａと、積分画像生成部１６ｂと、画素数算出部１６ｃと、物理挙動決定部１６ｄと、を有する。
【００２２】
テンプレート設定部１６ａは、仮想空間Ａに配置された仮想オブジェクトＣに、力のベクトル（力の大きさ及び方向）が割り付けられた一以上の矩形状のブロックを含むテンプレートを関連付ける。本実施形態では、テンプレート設定部１６ａは、記憶部１４を参照し、仮想オブジェクトＣ１，Ｃ２毎に予め用意されたテンプレートに関するデータを読み出し、各仮想オブジェクトＣ１，Ｃ２にそれぞれのテンプレートを関連付ける。
【００２３】
テンプレートは、操作オブジェクトＲ１とのインタラクションによって仮想オブジェクトＣに作用する力のベクトルが定義された情報である。本実施形態では、テンプレートは、重畳画像ＩＭにおいて、仮想オブジェクトＣと重畳する領域を有している。ここで、操作オブジェクトＲ１と仮想オブジェクトＣとの間のインタラクションとは、操作オブジェクトＲ１と仮想オブジェクトＣのテンプレートに含まれるブロックとが接触すること（すなわち、重畳画像ＩＭにおいて重なること）を意味する。以下、図３及び図４を参照して、テンプレートＴの詳細について説明する。ここでは、仮想オブジェクトＣ１に関連付けられるテンプレートＴ１を例に挙げて説明する。
【００２４】
図３に示されるように、仮想オブジェクトＣ１には、テンプレートＴ１が関連付けられている。テンプレートＴ１は、一又は複数のブロックＢ（ここでは、４つのブロックＢ１〜Ｂ４）を含む。ここで、ブロックＢは、同一の力のベクトルが割り付けられた複数の画素Ｐを含む矩形状の領域である。図３の例では、各ブロックＢ１〜Ｂ４は、１６画素（４画素×４画素）によって構成された正方形状の領域であり、それぞれテンプレートＴ１の右上部分、左上部分、左下部分、右下部分に配置されている。ブロックＢ１に含まれる各画素Ｐには、左下方向のベクトルが割り付けられている。ブロックＢ２に含まれる各画素Ｐには、右下方向のベクトルが割り付けられている。ブロックＢ３に含まれる各画素Ｐには、右上方向のベクトルが割り付けられている。ブロックＢ４に含まれる各画素Ｐには、左上方向のベクトルが割り付けられている。ここでは一例として、各画素Ｐに割り付けられたベクトルの大きさは同一である。
【００２５】
テンプレートＴ１の各ブロックＢ１〜Ｂ４は、仮想オブジェクトＣ１に仮想的に重畳される。すなわち、重畳画像ＩＭにおけるテンプレートＴ１（各ブロックＢ１〜Ｂ４）の位置は、当該テンプレートＴ１が関連付けられる仮想オブジェクトＣ１の位置に応じて変化する。図３の例では、仮想オブジェクトＣ１は、６４画素（８画素×８画素）からなる正方形状の領域であり、テンプレートＴ１は、仮想オブジェクトＣ１の存在領域に仮想的に重畳されている。なお、テンプレートＴ１は、通常、重畳画像ＩＭには表示されない。ただし、例えば管理者が操作オブジェクトＲ１による仮想オブジェクトＣ１の動作制御の試験を行う場合等には、設定を変更することにより、テンプレートＴ１を重畳画像ＩＭに表示してもよい。
【００２６】
仮想オブジェクトＣ１が操作オブジェクトＲ１から受ける力は、仮想オブジェクトＣ１のテンプレートＴ１（各ブロックＢ１〜Ｂ４）と操作オブジェクトＲ１との重なり具合によって決定される。具体的には、各ブロックＢ１〜Ｂ４と操作オブジェクトＲ１とが重なる領域に存在する画素Ｐに割り付けられたベクトルを合成した重畳ベクトルが、仮想オブジェクトＣ１が操作オブジェクトＲ１から受ける力に相当する。
【００２７】
図４を参照して、操作オブジェクトＲ１とテンプレートＴ１との位置関係に応じて決定される仮想オブジェクトＣ１の物理挙動の例について説明する。なお、図４の例では、仮想空間Ａ内には、現実の物理空間の重力に対応する下向きの所定の大きさの重力ベクトルが予め設定されている。この場合、仮想オブジェクトＣ１に作用する力は、操作オブジェクトＲ１から受ける力（重畳ベクトル）と重力ベクトルとを合成した合成ベクトルとして求まる。
【００２８】
時刻Ｔ［ｎ］において、仮想空間Ａ内の仮想オブジェクトＣ１の左下の一部と操作オブジェクトＲ１とが重畳している。この場合、仮想オブジェクトＣ１に重畳されているテンプレートＴ１におけるハッチングを施した画素が、重畳画素として検出される。ここでは、ブロックＢ３に含まれる１１個の画素とブロックＢ４に含まれる１個の画素とが、重畳画素として検出される。続いて、各重畳画素に割り付けられているベクトルを合成した重畳ベクトルが求まり、重畳ベクトルと重力ベクトルとを合成した合成ベクトルが求まる。そして、仮想オブジェクトＣ１は、当該合成ベクトルの大きさ分、当該合成ベクトルの方向（ここでは右上方向）に移動させられる。
【００２９】
続いて、時刻Ｔ［ｎ］における仮想オブジェクトＣ１の物理挙動（右上方向への移動）が反映された後の時刻Ｔ［ｎ＋１］においては、仮想オブジェクトＣ１が右上に移動したことにより、重畳画素が少なくなっている。ここでは、ブロックＢ３に含まれる５個の画素が、重畳画素として検出される。そして、時刻Ｔ［ｎ］の場合と同様にして合成ベクトルが求まり、仮想オブジェクトＣ１は、当該合成ベクトルの大きさ分、当該合成ベクトルの方向（ここでは右方向）に移動させられる。
【００３０】
続いて、時刻Ｔ［ｎ＋１］における仮想オブジェクトＣ１の物理挙動（右方向への移動）が反映された後の時刻Ｔ［ｎ＋２］においては、仮想オブジェクトＣ１が更に右に移動したことにより、操作オブジェクトＲ１とテンプレートＴ１とが重畳する領域が存在しない。この場合、重畳ベクトルは０であるため、合成ベクトルは重力ベクトルに等しくなる。その結果、仮想オブジェクトＣ１は、合成ベクトルの方向（ここでは下方向）に移動（落下）させられる。
【００３１】
なお、上述したテンプレートＴ１に代えて、図５に示されるブロックＢ１１〜Ｂ１４からなるテンプレートＴ１Ａが用いられてもよい。テンプレートＴ１ＡはテンプレートＴ１と等価である。ブロックＢ１１及びブロックＢ１２の各々は、３２画素（４画素×８画素）からなる横長の矩形状の領域であり、ブロックＢ１３及びＢ１４の各々は、３２画素（８画素×４画素）からなる縦長の矩形状の領域である。ブロックＢ１１〜Ｂ１４は、それぞれテンプレートＴ１Ａの上半分、下半分、左半分、右半分に配置されている。ブロックＢ１１に含まれる各画素には下方向のベクトルが関連付けられており、ブロックＢ１２に含まれる各画素には上方向のベクトルが関連付けられており、ブロックＢ１３に含まれる各画素には右方向のベクトルが関連付けられており、ブロックＢ１４に含まれる各画素には左方向のベクトルが関連付けられている。
【００３２】
テンプレートＴ１Ａの右上部分は、ブロックＢ１１とブロックＢ１４とが重なることにより、上述したブロックＢ１と等価となっている。テンプレートＴ１Ａの左上部分は、ブロックＢ１１とブロックＢ１３とが重なることにより、上述したブロックＢ２と等価となっている。テンプレートＴ１Ａの左下部分は、ブロックＢ１２とブロックＢ１３とが重なることにより、上述したブロックＢ３と等価となっている。テンプレートＴ１Ａの右下部分は、ブロックＢ１２とブロックＢ１４とが重なることにより、上述したブロックＢ４と等価となっている。テンプレートＴ１に代えてテンプレートＴ１Ａを用いた場合、重畳ベクトルの計算を水平方向（Ｘ方向）の力の成分の計算と垂直方向（Ｙ方向）の力の成分の計算とに分けることができるため、計算を単純化することができる。
【００３３】
また、図６に示されるように、回転体である仮想オブジェクトＣ３に関連付けられるテンプレートＴ３は、力のベクトルとして回転ベクトル（回転方向及び力の大きさ）が割り付けられたブロックＢ３１〜Ｂ３４を含んでもよい。図６の例では、仮想オブジェクトＣ３は円形状であり、仮想オブジェクトＣ３には、仮想オブジェクトＣ３を包含する６４画素（８画素×８画素）のテンプレートＴ３が関連付けられている。このように、テンプレートＴ（すなわち、テンプレートＴを構成するブロックＢの集合体）は、仮想オブジェクトＣが占める画素領域よりも広い範囲に設定されてもよい。或いは、テンプレートＴは、仮想オブジェクトＣが占める画素領域よりも狭い範囲に設定されてもよい。
【００３４】
各ブロックＢ３１〜Ｂ３４に含まれる各画素には、仮想オブジェクトＣ３の中心Ｍ周りの回転方向と力の大きさ（ここではいずれも同じ大きさ）とが割り付けられている。各ブロックＢ３１〜Ｂ３４は、１６画素（４画素×４画素）によって構成された正方形状の領域であり、それぞれテンプレートＴ３の右上部分、左上部分、左下部分、右下部分に配置されている。ブロックＢ３１及びブロックＢ３３に含まれる各画素には、中心Ｍを回転軸とする時計回り方向の回転ベクトルが割り付けられている。ブロックＢ３２及びブロックＢ３４に含まれる各画素には、中心Ｍを回転軸とする反時計回り方向の回転ベクトルが割り付けられている。図６において、時計回り方向の回転ベクトルを「＋」と表し、反時計回り方向の回転ベクトルを「−」と表している。
【００３５】
上述したように、テンプレートＴ（すなわち、テンプレートＴを構成するブロックＢ）は、仮想オブジェクトＣの種類及び特性等に応じて設定され得る。また、テンプレートＴに含まれるブロックＢの個数、種類、及び配置は特に限定されず、上述したテンプレートＴ１Ａのように複数のブロックＢ同士が互いに重なっていてもよい。また、上述した仮想オブジェクトＣ３において、中心Ｍが固定されておらず、仮想オブジェクトＣ３が回転移動だけでなく上下左右への移動も可能であることを表現したい場合には、テンプレートＴ３に上述したブロックＢ１〜Ｂ４（或いはブロックＢ１１〜Ｂ１４）を更に含めてもよい。
【００３６】
以上のように、仮想オブジェクトＣに関連付けられたテンプレートＴを利用することにより、操作オブジェクトＲ１からの作用によって時間と共に変化する仮想オブジェクトＣの様々な動作（移動及び回転等）を表現することができる。このような処理によれば、操作オブジェクトＲ１の動き（移動方向及び移動速度等）を解析する必要がなく、各時点における操作オブジェクトＲ１と仮想オブジェクトＣ（テンプレートＴに含まれるブロックＢ）との重畳箇所を検出するだけでよい。すなわち、操作オブジェクトＲ１とブロックＢとが重畳する重畳領域の画素数を計数するだけでよい。このため、操作オブジェクトＲ１の動きを解析し、その解析結果に基づいて仮想オブジェクトＣを動作させる場合と比較して、処理負荷を低減させることができる。また、合成ベクトルの算出も単純なベクトルの加算であることから、仮想オブジェクトＣの移動方向及び移動量を比較的小さい処理負荷で求めることができる。
【００３７】
ただし、重畳領域の画素数を計数する処理（以下「計数処理」という。）は、仮想オブジェクトＣ毎（具体的には、仮想オブジェクトＣに関連付けられたテンプレートＴに含まれるブロックＢ毎）に行う必要がある。また、仮想空間Ａ内には多くの仮想オブジェクトＣが配置される場合がある。例えば、液体等の流体の動作を表現するために、流体を構成する粒子（水粒子）単位で仮想オブジェクトＣを定義することが考えられる。このような場合、仮想空間Ａ内に膨大な数の仮想オブジェクトＣが配置されることになる。このような場合、上記計数処理に係る処理負荷が非常に大きくなってしまう。そこで、オブジェクト制御部１６は、後述する積分画像生成部１６ｂ及び画素数算出部１６ｃにより、上記計数処理に係る処理負荷を格段に低減する。
【００３８】
積分画像生成部１６ｂは、重畳画像ＩＭにおいて操作オブジェクトＲ１が存在する領域に含まれる画素の画素値を１とすると共にそれ以外の画素の画素値を０とした二値画像についての積分画像を生成する。以下、図７〜図９を参照して、積分画像生成部１６ｂの処理の一例について説明する。ここでは説明を簡単にするために、重畳画像ＩＭを２２５画素（１５画素×１５画素）からなる画像であるものとして説明を行う。
【００３９】
図７に示されるように、積分画像生成部１６ｂは、まず、重畳画像ＩＭにおいて操作オブジェクトＲ１が存在する領域ＰＡに含まれる画素の画素値を１とし、それ以外の画素の画素値を０とした二値画像ＩＭ１を生成する。
【００４０】
次に、図８に示されるように、積分画像生成部１６ｂは、上から下へと、対象画素の画素値に当該対象画素よりも１つ上の画素の画素値を加算する処理を順次行うことにより、中間画像ＩＭ２を生成する。すなわち、積分画像生成部１６ｂは、下記式１を用いることにより、中間画像ＩＭ２の各画素の画素値を算出する。下記式１において、「IM1(x,y)」は、二値画像ＩＭ１における座標(x,y)の画素の画素値である。同様に、「IM2(x,y)」は、中間画像ＩＭ２における座標(x,y)の画素の画素値である。なお、座標(x,y)が画像範囲外の画素である場合には、IM1(x,y)及びIM2(x,y)は「０」として扱われる。
（式１）IM2(x,y)=IM2(x,y-1)+IM1(x,y)
【００４１】
次に、図９に示されるように、積分画像生成部１６ｂは、左から右へと、対象画素の画素値に当該対象画素よりも１つ左の画素の画素値を加算する処理を順次行うことにより、積分画像ＩＭ３を生成する。すなわち、積分画像生成部１６ｂは、下記式２を用いることにより、積分画像ＩＭ３の各画素の画素値を算出する。下記式２において、「IM3(x,y)」は、積分画像ＩＭ３における座標(x,y)の画素の画素値である。なお、座標(x,y)が画像範囲外の画素である場合には、IM3(x,y)は「０」として扱われる。
（式２）IM3(x,y)=IM3(x-1,y)+IM2(x,y)
【００４２】
このような積分画像ＩＭ３を利用することにより、任意の矩形領域と操作オブジェクトＲ１とが重なる領域の画素数を４つの画素のみから算出することが可能となる。具体的には、矩形領域の左上隅、右上隅、左下隅、及び右下隅の座標が、(x1,y1)、(x2,y1)、(x1,y2)、及び(x2,y2)である場合、当該矩形領域と操作オブジェクトＲ１とが重なる領域の画素数Ｎは、下記式３により求まる。すなわち、画素数Ｎは、４つの座標(x2,y2)、(x1-1,y2)、(x2,y1-1)、及び(x1-1,y1-1)の画素値の加算又は減算のみによって求まる。
（式３）N=IM3(x2,y2)-IM3(x1-1,y2)-IM3(x2,y1-1)+IM3(x1-1,y1-1)
【００４３】
画素数算出部１６ｃは、積分画像ＩＭ３とテンプレートＴに含まれるブロックＢに対応する矩形領域とに基づいて、ブロックＢと操作オブジェクトＲ１とが重なる重畳領域の画素数を算出する。具体的には、画素数算出部１６ｃは、上記式３を用いた計算を実行することにより、ブロックＢ毎に重畳領域の画素数を算出する。
【００４４】
図１０を参照して、画素数算出部１６ｃによる計数処理について説明する。図１０の例では、ブロックＢＡ及びブロックＢＢは、操作オブジェクトＲ１と重なる領域を有しており、ブロックＢＣは、操作オブジェクトＲ１と重なる領域を有していない。ここで、積分画像ＩＭ３を利用せずに、各ブロックＢの重畳領域の画素数を算出する場合、各ブロックＢに含まれる全ての画素を参照（走査）する必要がある。すなわち、ブロックＢに含まれる各画素について、操作オブジェクトＲ１と重なる画素であるか否かを判定する必要がある。このため、ブロックＢＡについては２５回の画素参照が必要となり、ブロックＢＢについては１６回の画素参照が必要となり、ブロックＢＣについては９回の画素参照が必要となる。このような画素参照回数が大きい程、プロセッサ、メモリ等のハードウェア資源の処理負荷が大きくなる。
【００４５】
一方、画素数算出部１６ｃは、上記式３を利用することにより、各ブロックＢＡ，ＢＢ，ＢＣの重畳領域の画素数ＮＡ，ＮＢ，ＮＣを、それぞれ下記式４〜６のように４回の画素参照のみによって算出することができる。
（式４）NA=IM3(12,8)-IM3(7,8)-IM3(12,3)+IM3(7,3)=21-16-0+0=5
（式５）NB=IM3(7,13)-IM3(3,13)-IM3(7,9)+IM3(3,9)=40-20-24+12=8
（式６）NC=IM3(13,13)-IM3(10,13)-IM3(13,10)+IM3(10,10)=54-53-44+43=0
【００４６】
ここで、以下の状況について検討する。
・重畳画像ＩＭのサイズが４００００画素（２００画素×２００画素）である。
・仮想空間Ａ内の仮想オブジェクトＣの個数がｎ個である。
・各仮想オブジェクトＣにテンプレートＴ１Ａ（図５）が関連付けられている。
【００４７】
この場合、本実施形態の計数処理（積分画像生成部１６ｂ及び画素数算出部１６ｃによる処理）によれば、事前に積分画像ＩＭ３を作成する際に重畳画像ＩＭに含まれる全画素の参照が必要となるものの、仮想オブジェクトＣ毎の計算が、１６回の画素参照（ブロックＢ１１〜Ｂ１４についての上記式３を用いた計算）で済む。このため、全体で必要となる画素参照回数は「４００００＋１６ｎ」と表される。
【００４８】
一方、積分画像ＩＭ３を用いない従来の計数処理によれば、事前に積分画像ＩＭ３を作成する必要がない。ただし、仮想オブジェクトＣ毎の計算に、１２８回の画素参照（ブロックＢ１１に含まれる３２画素の参照、ブロックＢ１２に含まれる３２画素の参照、ブロックＢ１３に含まれる３２画素の参照、及びブロックＢ１４に含まれる３２画素の参照）が必要となる。このため、全体で必要となる画素参照回数は「１２８ｎ」と表される。
【００４９】
以上のように上記状況においては、本実施形態の計数処理によれば、従来の計数処理と比較して、仮想オブジェクトＣ毎の処理負荷（画素参照回数）を１／８に抑えることができる。このため、本実施形態の計数処理によれば、仮想空間Ａ内の仮想オブジェクトＣの個数が多い程、従来の計数処理と比較して処理負荷を効果的に低減できる。例えば、「ｎ＝１０００」の場合には、従来の計数処理の画素参照回数は「１２８０００回」となるのに対し、本実施形態の計数処理の画素参照回数は「５６０００回」に抑えられる。
【００５０】
さらに、ここでは一例としてサイズが６４画素（８画素×８画素）であるテンプレートＴ１Ａを例示したが、これよりも大きいサイズのテンプレートを用いることも当然考えられる。例えば、テンプレートＴ１Ａと同様のブロック構成（すなわち、テンプレートが上半分のブロック、下半分のブロック、左半分のブロック、右半分のブロックからなる構成）を維持したまま、サイズを４倍の２５６画素（１６画素×１６画素）としたテンプレートを用いる場合について考える。この場合、上述した従来の計数処理によれば、仮想オブジェクトＣ毎に必要となる画素参照回数は、ブロックに含まれる画素数の増大に応じて４倍（５１２回）となる。一方、本実施形態の計数処理によれば、上記式３を用いることにより、ブロックに含まれる画素数に関係なく、ブロック毎の画素参照回数を４回に抑えることができる。このように、積分画像ＩＭ３を用いる場合には、ブロック毎に必要となる画素参照回数は、テンプレートサイズ（すなわち、ブロックに含まれる画素数）の増大の影響を受けない。
【００５１】
物理挙動決定部１６ｄは、ブロックに割り付けられた力のベクトルと画素数算出部１６ｃにより算出された画素数とに基づいて、仮想オブジェクトＣが受ける力を決定する。例えば、図５に示されるテンプレートＴ１Ａが関連付けられた仮想オブジェクトＣについて、操作オブジェクトＲ１とブロックＢ１１〜Ｂ１４との重畳領域の画素数をそれぞれＮ１〜Ｎ４とする。また、ここでは、説明を簡単にするために、各ブロックＢ１１〜Ｂ１４に含まれる画素に割り付けられた力のベクトルの大きさは「１」であるものとする。この場合、仮想オブジェクトＣが操作オブジェクトＲ１から受ける力を表す重畳ベクトル（図４参照）の水平成分の大きさ（右方向を正方向とした場合の大きさ）は、「Ｎ３−Ｎ４」として求まる。また、重畳ベクトルの垂直成分の大きさ（下方向を正方向とした場合の大きさ）は、「Ｎ１−Ｎ２」として求まる。
【００５２】
また、上述したように仮想空間Ａ内に所定の物理空間ベクトル（例えば重力ベクトル）が予め設定されている場合には、物理挙動決定部１６ｄは、重畳ベクトルと物理空間ベクトルとを合成することにより、仮想オブジェクトＣ１に作用する合成ベクトルを決定する。この処理により、仮想オブジェクトＣが操作オブジェクトＲ１及び仮想空間Ａから受ける力（合成ベクトル）が求まる。
【００５３】
オブジェクト制御部１６は、物理挙動決定部１６ｄにより決定された力（合成ベクトル）に基づいて、仮想オブジェクトＣを動作させる。具体的には、オブジェクト制御部１６は、上記力（合成ベクトル）に応じた物理挙動（移動、回転等）後の仮想オブジェクトＣの位置及び姿勢を算出し、算出された仮想オブジェクトＣの位置及び姿勢を、仮想オブジェクトＣの最新の配置情報として記憶部１４に記憶する（すなわち、仮想オブジェクトＣの配置情報を更新する）。その結果、上述したように、仮想空間画像生成部１３によって物理挙動後の仮想オブジェクトＣの位置及び姿勢が反映された仮想空間画像が生成され、重畳画像生成部１５によって当該仮想空間画像に基づく重畳画像ＩＭが生成される。
【００５４】
次に、図１１を参照して、情報処理装置１０の動作の一例（本実施形態に係る情報処理方法）について説明する。
【００５５】
まず、画像取得部１１が、現実物体Ｒ（ここではユーザＵの腕）を含む実空間画像を取得する（ステップＳ１）。続いて、画像認識部１２が、画像取得部１１により取得された実空間画像に含まれる現実物体Ｒを認識する（ステップＳ２）。この処理により、仮想空間Ａに重畳表示するための操作オブジェクトＲ１の画像が取得される。また、仮想空間画像生成部１３は、記憶部１４に記憶されたデータに基づいて、仮想空間Ａを示す仮想空間画像を生成する（ステップＳ３）。続いて、重畳画像生成部１５が、仮想空間画像生成部１３により生成された仮想空間画像に操作オブジェクトＲ１を重畳させることにより、重畳画像ＩＭを生成する（ステップＳ４）。重畳画像生成部１５は、重畳画像ＩＭをモニタ１０ａに出力する。その結果、モニタ１０ａに重畳画像ＩＭが表示される（ステップＳ５）。
【００５６】
続いて、オブジェクト制御部１６が、仮想オブジェクトＣが操作オブジェクトＲ１から受ける力を演算し、当該力に基づいて仮想空間Ａ内で仮想オブジェクトＣを動作させる（ステップＳ６〜Ｓ１３）。
【００５７】
まず、テンプレート設定部１６ａが、仮想空間Ａに配置された各仮想オブジェクトＣに対して、一以上の矩形状のブロックＢを含むテンプレートＴを関連付ける（ステップＳ６）。
【００５８】
続いて、積分画像生成部１６ｂが、二値画像ＩＭ１についての積分画像ＩＭ３を生成する（ステップＳ７）。二値画像ＩＭ１は、重畳画像ＩＭにおいて操作オブジェクトＲ１が存在する領域に含まれる画素の画素値を１とすると共にそれ以外の画素の画素値を０とした画像である。
【００５９】
続いて、画素数算出部１６ｃが、各仮想オブジェクトＣについて、当該仮想オブジェクトＣに関連付けられるテンプレートＴに含まれるブロックＢ毎に、ブロックＢと操作オブジェクトＲ１とが重なる重畳領域の画素数を算出する（ステップＳ８〜Ｓ１１）。まず、画素数算出部１６ｃは、仮想空間Ａ内に配置された複数の仮想オブジェクトＣのうちから一の仮想オブジェクトＣを選択する（ステップＳ８）。そして、画素数算出部１６ｃは、選択した仮想オブジェクトＣに関連付けられたテンプレートＴに含まれる複数のブロックＢのうちから一のブロックＢを選択する（ステップＳ９）。そして、画素数算出部１６ｃは、積分画像ＩＭ３と選択したブロックＢに対応する矩形領域とに基づいて、当該ブロックＢと操作オブジェクトＲ１とが重なる重畳領域の画素数を算出する（ステップＳ１０）。画素数算出部１６ｃは、上述したステップＳ９〜Ｓ１０の処理を、ステップＳ８において選択された仮想オブジェクトＣに関連付けられたテンプレートＴに含まれる全てのブロックＢについて完了するまで繰り返す（ステップＳ１１：ＮＯ）。
【００６０】
上述したステップＳ９〜Ｓ１０の処理が、ステップＳ８において選択された仮想オブジェクトＣに関連付けられたテンプレートＴに含まれる全てのブロックＢについて完了すると（ステップＳ１１：ＹＥＳ）、物理挙動決定部１６ｄは、ステップＳ８において選択された仮想オブジェクトＣについて、当該仮想オブジェクトＣに関連付けられたテンプレートＴに含まれる各ブロックＢに割り付けられた力のベクトルと画素数算出部１６ｃにより算出された画素数とに基づいて、当該仮想オブジェクトＣが受ける力を決定する（ステップＳ１２）。上述したステップＳ８〜Ｓ１２の処理は、仮想空間Ａ内に配置された全ての仮想オブジェクトＣについて完了するまで繰り返される（ステップＳ１３：ＮＯ）。
【００６１】
ステップＳ１２において、具体的には、ステップＳ８で選択された仮想オブジェクトＣについて、上述した重畳ベクトル（仮想空間Ａ内に所定の物理空間ベクトルが予め設定されている場合には、重畳ベクトルと物理空間ベクトルとを合成した合成ベクトル）が決定される。その後、決定された重畳ベクトル（又は合成ベクトル）に応じた物理挙動（移動、回転等）後の仮想オブジェクトＣの位置及び姿勢が算出される。そして、算出された仮想オブジェクトＣの位置及び姿勢が、仮想オブジェクトＣの最新の配置情報として記憶部１４に記憶される。その後、仮想空間画像生成部１３が当該仮想オブジェクトＣの最新の配置情報に基づいて、仮想空間画像を更新する（ステップＳ３）。その後、重畳画像生成部１５によって更新後の仮想空間画像に基づく重畳画像ＩＭが生成され（ステップＳ４）、当該重畳画像ＩＭがモニタ１０ａに表示される（ステップＳ５）。このような一連の処理により、モニタ１０ａには、ユーザＵの腕の動きが反映された操作オブジェクトＲ１が表示されると共に、操作オブジェクトＲ１とのインタラクションに応じた物理挙動を行う仮想オブジェクトＣが表示される。
【００６２】
以上述べた情報処理装置１０によれば、仮想オブジェクトＣに、力のベクトルが割り付けられた矩形状のブロックＢを含むテンプレートＴを関連付けることにより、ブロックＢと操作オブジェクトＲ１とが重なる領域の画素数に基づいて、仮想オブジェクトＣが操作オブジェクトＲ１から受ける力を求めることができる。さらに、情報処理装置１０では、積分画像生成部１６ｂにより生成された積分画像ＩＭ３を利用することにより、矩形状のブロックＢと操作オブジェクトＲ１とが重なる領域（重畳領域）の画素数を算出するために必要な画素参照回数を格段に少なくすることができる。具体的には、上述したように、どのブロックＢについても、ブロックＢのサイズ（画素数）によらずに、４回の画素参照のみによって重畳領域の画素数を算出することができる。その結果、仮想オブジェクトＣの物理挙動計算に係る処理負荷を効果的に低減させることができる。このため、仮想空間Ａ内に多くの仮想オブジェクトＣが配置される場合であっても、仮想オブジェクトＣのリアルな物理挙動を実現するために、高性能且つ高価なコンピュータ装置が不要となる。また、処理落ち等の発生によりユーザ体験の質を損なうおそれを低減することができる。
【００６３】
上述したように、画素参照回数の低減効果は、仮想空間Ａ内に含まれる仮想オブジェクトＣの数が多い程、またテンプレートサイズ（ブロックに含まれる画素数）が大きい程、顕著となる。従って、本実施形態の情報処理装置１０は、上述したように、粒子単位で定義される複数の仮想オブジェクトＣによって流体を表現する場合等、仮想空間Ａ内に膨大な数の仮想オブジェクトＣを配置する場合において、特に有効である。
【００６４】
以上、一実施形態に係る情報処理装置１０について説明されたが、情報処理装置１０の構成は上記実施形態に限定されない。例えば、液体を表現する粒子（例えば水粒子）単位で定義される仮想オブジェクトＣを仮想空間Ａに配置する場合について考える。この場合、仮想オブジェクトＣ自体は非常に小さいもの（例えば、２画素×２画素の小領域）となる。一方、ブロックＢと操作オブジェクトＲ１との重畳領域の画素数に基づいて仮想オブジェクトＣに対する力（すなわち、仮想オブジェクトＣの移動方向）を適切に決定するためには、ある程度の大きさのテンプレートＴが必要となる。具体的には、図４に示したように、操作オブジェクトＲ１と仮想オブジェクトＣとの位置関係に応じて、互いに異なるベクトルが関連付けられた複数のブロックＢ１〜Ｂ４間で、重畳領域の画素数に差が生じるようにする必要がある。このように、ブロックＢ１〜Ｂ４間の重畳領域の画素数の差が生じることによって、仮想オブジェクトＣの移動方向が、仮想オブジェクトＣと操作オブジェクトＲ１との位置関係に応じて変化に富むものとなる。しかし、仮想オブジェクトＣのサイズが小さい場合に、テンプレートＴのサイズも仮想オブジェクトＣのサイズに合わせて小さく設定してしまうと、ユーザＵが腕を少し動かしただけで（すなわち、重畳画像ＩＭ上で操作オブジェクトＲ１の位置が少し動いただけで）、操作オブジェクトＲ１と仮想オブジェクトＣの全体（すなわち、テンプレートＴに含まれる全てのブロックＢ）とが重なってしまうことになる。その結果、テンプレートＴに含まれる複数のブロックＢ間で重畳領域の画素数に差が生じず、上述したような操作オブジェクトＲ１と仮想オブジェクトＣとの位置関係に応じた仮想オブジェクトＣの移動を実現することができない。
【００６５】
そこで、図１２に示されるように、テンプレート設定部１６ａは、仮想オブジェクトＣ１０，Ｃ２０に、仮想オブジェクトＣ１０，Ｃ２０の画素領域（ここでは一例として、２画素×２画素からなる矩形領域）よりも大きいテンプレートＴ１０，Ｔ２０（例えば、１６画素×１６画素からなる矩形領域）を関連付けてもよい。この構成によれば、上述した問題を解消することができる。
【００６６】
一方、このようにした場合、一の仮想オブジェクトＣ１０のテンプレートＴ１０と他の仮想オブジェクトＣ２０とが重なる状況が生じ得る。ここで、テンプレートＴに含まれるブロックＢは、仮想オブジェクトＣ同士の間で互いに作用する力を演算するためにも利用され得る。すなわち、上記のようにテンプレートＴ１０と仮想オブジェクトＣ２０とが重なる場合において、当該仮想オブジェクトＣ２０を操作オブジェクトＲ１と見做して上述したオブジェクト制御部１６の処理を実行することにより、仮想オブジェクトＣ１０が仮想オブジェクトＣ２０から受ける力を演算することが可能となる。しかし、仮想空間Ａ内に仮想オブジェクトＣ１０，Ｃ２０と同様のスケールの複数の仮想オブジェクトＣを密に配置した場合、このような重なりの数は膨大となる。その結果、テンプレートＴに含まれるブロックＢを、上述のように仮想オブジェクトＣ同士の間で互いに作用する力を演算するために利用してしまうと、その計算量は膨大なものとなり、現実的な時間で計算を完了させることが困難となる。
【００６７】
そこで、テンプレートＴは、操作オブジェクトＲ１から仮想オブジェクトＣに作用する力を演算するためにのみ用いられてもよい。すなわち、テンプレートＴは、複数の仮想オブジェクトＣ同士の間で作用する力を演算するためには用いられないように設定されてもよい。この構成によれば、上述した問題を解消することができる。
【００６８】
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック（構成部）は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した１つの装置を用いて実現されてもよいし、物理的又は論理的に分離した２つ以上の装置を直接的又は間接的に（例えば、有線、無線などを用いて）接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記１つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
【００６９】
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知（broadcasting）、通知（notifying）、通信（communicating）、転送（forwarding）、構成（configuring）、再構成（reconfiguring）、割り当て（allocating、mapping）、割り振り（assigning）などがあるが、これらに限られない。
【００７０】
例えば、本開示の一実施の形態における情報処理装置１０は、本開示の情報処理方法を行うコンピュータとして機能してもよい。図１３は、本開示の一実施の形態に係る情報処理装置１０のハードウェア構成の一例を示す図である。上述の情報処理装置１０は、物理的には、プロセッサ１００１、メモリ１００２、ストレージ１００３、通信装置１００４、入力装置１００５、出力装置１００６、バス１００７などを含むコンピュータ装置として構成されてもよい。
【００７１】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。情報処理装置１０のハードウェア構成は、図１３に示した各装置を１つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【００７２】
情報処理装置１０における各機能は、プロセッサ１００１、メモリ１００２などのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることによって、プロセッサ１００１が演算を行い、通信装置１００４による通信を制御したり、メモリ１００２及びストレージ１００３におけるデータの読み出し及び書き込みの少なくとも一方を制御したりすることによって実現される。
【００７３】
プロセッサ１００１は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ１００１は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）によって構成されてもよい。
【００７４】
また、プロセッサ１００１は、プログラム（プログラムコード）、ソフトウェアモジュール、データなどを、ストレージ１００３及び通信装置１００４の少なくとも一方からメモリ１００２に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、オブジェクト制御部１６は、メモリ１００２に格納され、プロセッサ１００１において動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、１つのプロセッサ１００１によって実行される旨を説明してきたが、２以上のプロセッサ１００１により同時又は逐次に実行されてもよい。プロセッサ１００１は、１以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
【００７５】
メモリ１００２は、コンピュータ読み取り可能な記録媒体であり、例えば、ＲＯＭ（Read  Only  Memory）、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  ＲＯＭ）、ＲＡＭ（Random  Access  Memory）などの少なくとも１つによって構成されてもよい。メモリ１００２は、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリ１００２は、本開示の一実施の形態に係る情報処理方法を実施するために実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００７６】
ストレージ１００３は、コンピュータ読み取り可能な記録媒体であり、例えば、ＣＤ−ＲＯＭ（Compact  Disc  ＲＯＭ）などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー（登録商標）ディスク、磁気ストリップなどの少なくとも１つによって構成されてもよい。ストレージ１００３は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ１００２及びストレージ１００３の少なくとも一方を含むデータベース、サーバその他の適切な媒体であってもよい。
【００７７】
通信装置１００４は、有線ネットワーク及び無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア（送受信デバイス）であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
【００７８】
入力装置１００５は、外部からの入力を受け付ける入力デバイス（例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど）である。出力装置１００６は、外部への出力を実施する出力デバイス（例えば、ディスプレイ、スピーカー、LEDランプなど）である。上述したモニタ１０ａは、出力装置１００６に含まれる。なお、入力装置１００５及び出力装置１００６は、一体となった構成（例えば、タッチパネル）であってもよい。
【００７９】
また、プロセッサ１００１、メモリ１００２などの各装置は、情報を通信するためのバス１００７によって接続される。バス１００７は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。
【００８０】
また、情報処理装置１０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ１００１は、これらのハードウェアの少なくとも１つを用いて実装されてもよい。
【００８１】
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
【００８２】
本開示において説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００８３】
入出力された情報等は特定の場所（例えば、メモリ）に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００８４】
判定は、１ビットで表される値（０か１か）によって行われてもよいし、真偽値（Boolean：true又はfalse）によって行われてもよいし、数値の比較（例えば、所定の値との比較）によって行われてもよい。
【００８５】
本開示において説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（例えば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００８６】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００８７】
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術（同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ：Digital  Subscriber  Line）など）及び無線技術（赤外線、マイクロ波など）の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
【００８８】
本開示において説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【００８９】
また、本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。
【００９０】
上述したパラメータに使用する名称はいかなる点においても限定的な名称ではない。さらに、これらのパラメータを使用する数式等は、本開示で明示的に開示したものと異なる場合もある。様々な情報要素は、あらゆる好適な名称によって識別できるので、これらの様々な情報要素に割り当てている様々な名称は、いかなる点においても限定的な名称ではない。
【００９１】
本開示で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking  up、search、inquiry)（例えば、テーブル、データベース又は別のデータ構造での探索）、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)（例えば、情報を受信すること）、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)（例えば、メモリ中のデータにアクセスすること）した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断（決定）」は、「想定する（assuming）」、「期待する（expecting）」、「みなす（considering）」などで読み替えられてもよい。
【００９２】
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【００９３】
本開示において使用する「第１の」、「第２の」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定しない。これらの呼称は、２つ以上の要素間を区別する便利な方法として本開示において使用され得る。したがって、第１及び第２の要素への参照は、２つの要素のみが採用され得ること、又は何らかの形で第１の要素が第２の要素に先行しなければならないことを意味しない。
【００９４】
本開示において、「含む（include）」、「含んでいる（including）」及びそれらの変形が使用されている場合、これらの用語は、用語「備える（comprising）」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「又は（or）」は、排他的論理和ではないことが意図される。
【００９５】
本開示において、例えば、英語でのa,  an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
【００９６】
本開示において、「ＡとＢが異なる」という用語は、「ＡとＢが互いに異なる」ことを意味してもよい。なお、当該用語は、「ＡとＢがそれぞれＣと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。
【符号の説明】
【００９７】
１０…情報処理装置、１１…画像取得部、１２…画像認識部、１５…重畳画像生成部、１６…オブジェクト制御部、１６ａ…テンプレート設定部、１６ｂ…積分画像生成部、１６ｃ…画素数算出部、１６ｄ…物理挙動決定部、Ａ…仮想空間、Ｂ，Ｂ１〜Ｂ４，Ｂ１１〜Ｂ１４，Ｂ３１〜３４，ＢＡ，ＢＢ，ＢＣ…ブロック、Ｃ，Ｃ１，Ｃ２，Ｃ３…仮想オブジェクト、ＩＭ…重畳画像、ＩＭ１…二値画像、ＩＭ３…積分画像、Ｒ…現実物体、Ｒ１…操作オブジェクト。
【図１】
2020177442.tif 000003
【図２】
2020177442.tif 000004
【図３】
2020177442.tif 000005
【図４】
2020177442.tif 000006
【図５】
2020177442.tif 000007
【図６】
2020177442.tif 000008
【図７】
2020177442.tif 000009
【図８】
2020177442.tif 000010
【図９】
2020177442.tif 000011
【図１０】
2020177442.tif 000012
【図１１】
2020177442.tif 000013
【図１２】
2020177442.tif 000014
【図１３】
2020177442.tif 000015