(58)【調査した分野】(Int.Cl.,DB名)
前記変更手段は、前記特徴検出手段によって、前記第1の特徴の検出が継続する一方、前記第2の特徴が検出されなくなった場合に、前記第1の特徴の仮想オブジェクトの関連付けの前記変更を維持する、
請求項1に記載の情報処理プログラム。
前記変更手段は、前記特徴検出手段による前記第2の特徴の検出が中断し、再開された場合には、前記第2の特徴に関連付けられている仮想オブジェクトを、さらに前記第1の特徴に関連付ける、
請求項1から3のいずれか一項に記載の情報処理プログラム。
前記変更手段は、前記特徴検出手段による前記第2の特徴の検出が継続する間、所定周期で、前記第2の特徴に関連付けられている仮想オブジェクトを前記第1の特徴に関連付けられている仮想オブジェクトに追加する、
請求項1から3のいずれか一項に記載の情報処理プログラム。
前記変更手段は、前記第2の特徴に関連付けられている仮想オブジェクトを前記第1の特徴に関連付けた後、前記第2の特徴と該仮想オブジェクトとの関連付けを削除する、
請求項1から3のいずれか一項に記載の情報処理プログラム。
前記変更手段は、前記第1の特徴に予め関連付けられている第1の仮想オブジェクトに加え、前記第2の特徴に関連付けられている仮想オブジェクトを追加し、前記第1の特徴の仮想オブジェクトの関連付けを変更し、
前記画像生成手段は、第1の仮想オブジェクト及び前記仮想オブジェクトを前記第1の特徴に基づいて仮想空間に配置する、
請求項1から6のいずれか一項に記載の情報処理プログラム。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態を、図面に基づいて説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態毎に具体的構成が適宜採用されてよい。例えば、本発明は、携帯可能な情報処理装置のコンピュータにおいて実行される情報処理プログラム、情報処理装置、1または複数の情報処理装置を有する情報処理システムおよび情報処理方法等に適用することが出来る。
【0021】
<システムの構成>
図1は、第1実施形態に係る情報処理システム100の構成の一例を示す図である。情報処理システム100には、情報処理装置1、カード2A、2Y(但し、カードの種類を区別しない場合には、単に「カード2」と称する)が含まれる。
【0022】
情報処理装置1は、例えば、携帯ゲーム機、スマートフォン、携帯電話端末、タブレット端末等の携帯型のコンピュータである。情報処理装置1は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12、ROM(Read Only Memory)
13、補助記憶装置14、前面撮像装置15A、背面撮像装置15B、ディスプレイ(表示装置)16、および各種ボタンやタッチパネル等の入力装置17が電気的に接続された情報処理装置である。なお、情報処理装置1の具体的なハードウェア構成に関しては、実施の形態毎に適宜構成要素の省略や置換、追加が行われてよい。例えば、情報処理装置1が、据え置き型のゲーム装置である場合には、撮像装置、ディスプレイ16、入力装置17等はそれぞれ独立した装置であり、周辺装置として情報処理装置1に接続される。
【0023】
CPU11は、中央処理装置であり、RAM12およびROM13等に展開された命令及びデータを処理することで、RAM12、補助記憶装置14等の、情報処理装置1に備えられた各構成要素を制御する。また、RAM12は、主記憶装置であり、CPU11に
よって制御され、各種命令やデータが書き込まれ、読み出される。即ち、CPU11、RAM12、およびROM13は、情報処理装置1の制御部を構成する。
【0024】
補助記憶装置14は、不揮発性の記憶装置であり、主に情報処理装置1の電源を落としても保持したい情報、例えば、RAM12にロードされる情報処理装置1のOS(Operating System)や、後述する処理を実行するための各種プログラム、情報処理装置1によって使用される各種データ、等が書き込まれ、読み出される。補助記憶装置14としては、例えば、EEPROM(Electrically Erasable Programmable ROM)やHDD(Hard Disk Drive)等を用いることが出来る。また、補助記憶装置14として、情報処理装置1に
対して着脱可能に装着される可搬媒体が用いられてもよい。可搬媒体の例としては、EEPROM等によるメモリーカード、CD(Compact Disc)、DVD(Digital Versatile Disc)およびBD(Blu-ray(登録商標) Disc)等が挙げられる。可搬媒体による補助記憶装置14と、可搬型ではない補助記憶装置14とは、組み合わせて用いることも可能である。
【0025】
前面撮像装置15A、背面撮像装置15Bは、それぞれ、前面カメラ15A、背面カメラ15Bともいう。情報処理装置1の前面とは、例えば、ディスプレイ16の表示画面と同じ面をいう。情報処理装置1の背面とは、例えば、ディスプレイ16の表示画面の対向する面をいう。前面カメラ15Aは、例えば、情報処理装置1の前面に、撮像方向がディスプレイ16の表示画面の向きと同じになるように設置されている。背面カメラ15Bは、例えば、情報処理装置1の背面に、撮像方向が前面カメラ15Aと逆方向になるように設置されている。背面カメラ15Bは、例えば、立体視用に2つ備えられてもよい。なお、前面撮像装置15A、背面撮像装置15Bを特に区別しない場合には、単に、撮像装置15と称する。
【0026】
カード2A、2Yには、印刷等の方法で互いに異なるマーカ3A、3Y(但し、マーカの種類を区別しない場合には、単に「マーカ3」と称する)が付されている。これらマーカ3は、情報処理装置1によって表示される仮想オブジェクトと対応付けられており、該マーカ3に対応付けられた仮想オブジェクトが表示される際の位置の基準を示す指標である。
図1においてカード2は2枚示されているが、用いられるカード2は1枚であってもよいし、2枚以上であってもよい。
【0027】
マーカ3Aは、例えば、情報処理装置1によって、所定のキャラクタを模した仮想オブジェクトと対応付けられている。また、マーカ3Aは、例えば、対応付けられている仮想オブジェクトの形態との関連がユーザから認識できる特徴を含む。マーカ3Aは、例えば、対応付けられている仮想オブジェクトの形態の少なくとも一部を模した図形である。具体的には、例えば、マーカ3Aは、対応付けられた仮想オブジェクトの原型となるキャラクタの顔である。ただし、図面上では、便宜上、マーカ3Aは、アルファベットで示されている。また、マーカ3Aが印刷されているカード2Aは、例えば、紙のカード、プリペイドカード等であってもよい。
【0028】
マーカ3Yは、例えば、情報処理装置1によって、所定の仮想オブジェクトと対応付けられている。また、マーカ3Yは、例えば、マーカ3Aとは異なり、対応付けられている仮想オブジェクトの形態との関連がユーザから視認できる特徴を含まない。マーカ3Yは、例えば、紙のカード、マーカ3Aが印刷されているプリペイドカードの台紙等である。以降、マーカ3Yは、基準マーカ3Yと称することもある。
【0029】
第1実施形態において、仮想オブジェクトは、情報処理装置1のディスプレイ16において、撮像画像内の対応付けられたマーカ3に対して所定位置に配置されて撮像画像に対して合成表示される。また、仮想オブジェクトは、上下、前後、および左右の方向を有す
る。そのため、マーカ3は、仮想オブジェクトの表示姿勢を特定することが可能なものであることが好ましい。即ち、マーカ3は、撮像装置15を用いて撮像されることで、撮像装置15に対する位置および姿勢を特定可能な記号、文字、図形、絵、およびそれらの組み合わせ等であることが好ましい。なお、第1実施形態において、姿勢は、直交する3軸によって構成される座標系において特定される。
【0030】
図2は、第1実施形態に係る情報処理装置1の第1のAR処理の一例を示す図である。第1のAR処理では、背面カメラ15Bによるマーカの検出が所定時間中断し、再開される度に、該マーカに対応してディスプレイ16に表示される仮想オブジェクトが変化する。
【0031】
例えば、背面カメラ15Bによるマーカ3Aの初回の検出時には、マーカ3Aに対応する所定の位置に仮想オブジェクト4A−1が表示される。例えば、カード2Aを背面カメラ15Bの撮像範囲から一旦外して戻す、カード2Aを手で隠す等のユーザの行為により、背面カメラ15Bによるマーカ3Aの検出が中断され再開された場合には、マーカ3Aに基づく所定の位置に仮想オブジェクト4A−2が表示される。さらに、同様の行為が行われた場合には、マーカ3Aに対応する所定の位置に表示される仮想オブジェクトは、仮想オブジェクト4A−3に変化する。
【0032】
すなわち、第1のAR処理では、情報処理装置1は、前回のマーカ3の検出と今回のマーカ3の検出との間隔が所定時間以上である場合には、前回表示された仮想オブジェクトとは異なる仮想オブジェクトをマーカ3に基づく所定の位置に表示する。所定時間は、例えば、1秒である。
【0033】
上記第1のAR処理を実現するための情報処理装置1が備える機能について説明する。第1実施形態に係る情報処理装置1は、所謂AR機能を備えた情報処理装置である。情報処理装置1は、撮像装置15を用いて撮像された実空間の撮像画像に、仮想カメラを用いて描画(レンダリング)された仮想空間内の仮想オブジェクトを合成して、ディスプレイ16に表示する機能を有する。本実施形態において、仮想オブジェクトは、3次元の画像データである。但し、仮想オブジェクトは、2次元の画像データであってもよい。
【0034】
図3は、第1実施形態に係る情報処理装置1の機能構成の一例を示す図である。情報処理装置1は、CPU11が、RAM12に展開された各種プログラムを解釈および実行することで、撮像画像取得部21、特徴検出部22、姿勢検出部23、表示基準情報記憶部24、オブジェクト決定部25、画像生成部26、及び表示制御部27を備える情報処理装置として機能する。第1実施形態では、これらの機能がいずれも汎用のCPU11によって実行される例について説明しているが、これらの機能は、その一部または全部が、1または複数の専用のプロセッサによって実現されてもよい。
【0035】
撮像画像取得部21は、撮像装置15によって撮像された撮像画像を取得する。撮像画像は、例えば、撮像装置15の撮像レートで取得される。例えば、撮像装置15の撮像レートが60fps(frame per second)である場合には、撮像画像取得部21は、60分の1秒毎に撮像画像を取得する。なお、前面撮像装置15Aと背面撮像装置15Bとは、両方が起動することはなく、いずれか一方が起動している場合には、もう一方は無効となる。また、前面撮像装置15Aと背面撮像装置15Bとの有効又は無効の状態の情報は、例えば、フラグで管理される。このフラグは、例えば、各撮像装置15に対してそれぞれ準備されてもよい。例えば、フラグが1である場合には、対応する撮像装置15は有効であることが示される。このフラグによって撮像画像がいずれの撮像装置15によって撮像されたかを判定することが可能となる。
【0036】
特徴検出部22は、撮像装置15によって撮像された画像に対して、例えばパターンマッチング等の画像処理を行うことによって、当該画像に含まれるマーカ3を検出することができる。マーカ3の検出は、例えば、画像認識エンジンを用いて行われる。また、特徴検出部22は、撮像された画像に含まれるマーカ3の検出とともに、該マーカ3の位置情報も検出することができる。マーカ3の位置情報は、例えば、ディスプレイ16の画面内のマーカ3の座標等である。
【0037】
姿勢検出部23は、検出されたマーカ3に基づいて、該マーカ3の撮像画像に撮像された空間における位置および姿勢を検出し、表示基準情報を生成する。表示基準情報記憶部24は、仮想空間に配置される仮想オブジェクトの位置および姿勢を決定するための表示基準情報を記憶する。表示基準情報記憶部24は、例えば、RAM12の記憶領域に作成される。第1実施形態において、表示基準情報とは、仮想空間内における仮想オブジェクトの位置および姿勢を示すために用いられる基準である。但し、表示基準情報は、仮想空間内における仮想オブジェクトの位置および姿勢の何れか一方のみを示すために用いられる基準であってもよい。第1実施形態の姿勢検出部23は、表示基準情報として、マーカ3の中心点を原点とし、互いに直交する3軸を用いたマーカ座標系を、マーカ3毎に取得する。ただし、表示基準情報として、撮像画像そのもの等、マーカ座標系以外のものが用いられてもよい。また、複数のマーカ3間で、1つのマーカ座標系を共有して用いることも可能である。実空間に配置されたマーカ3を基準として仮想空間の座標系が定義されることにより、実空間と仮想空間とを対応付けることができる。なお、実空間と仮想空間との対応付けには、マーカ座標系を用いる方法以外の方法が採用されてもよい。
【0038】
姿勢検出部23は、撮像画像が取得される度に、該撮像装置内のマーカ3の位置及び姿勢を検出し、表示基準情報記憶部24に記憶される表示基準情報を更新する。したがって、第1実施形態では、撮像装置15の移動や、マーカ3の移動とともに変化する撮像装置15に対する最新のマーカ3の位置および姿勢の変化に従って、表示基準情報記憶部24によって記憶されている表示基準情報が更新される。
【0039】
第1実施形態において、仮想空間に配置される仮想オブジェクトは、当該仮想オブジェクトが関連付けられたマーカ3のマーカ座標系に配置される。姿勢検出部23は、撮像画像に含まれるマーカ3の見え方から、撮像装置15に対するマーカ3の位置および姿勢を算出することで、マーカ座標系を取得することができる。マーカ座標系における仮想カメラの位置および姿勢は、実空間の撮像装置15の位置および姿勢と一致される。このため、マーカ3に基づいて仮想空間が定義され、当該仮想空間において、撮像装置15の位置や撮像方向を変化させると、ディスプレイ16に表示される仮想空間の画像も変化する。
【0040】
オブジェクト決定部25は、検出されたマーカ3に基づく所定の位置に配置される仮想オブジェクトを決定する。オブジェクト決定部25は、例えば、マーカの認識状況に応じて、背面カメラ対応情報を参照し、検出されたマーカ3に基づく所定の位置に配置される仮想オブジェクトを決定する。マーカの認識状況は、例えば、前回の検出から今回の検出までの経過時間が所定範囲内にあるか否か、前回の検出から今回の検出までの経過時間が所定範囲内にある検出の回数等である。詳細は後述される。
【0041】
画像生成部26は、仮想空間に、表示基準情報記憶部24によって記憶されている表示基準情報に従った位置および姿勢で仮想オブジェクトを配置し、仮想カメラから見た仮想空間の画像を生成することで、仮想空間画像を描画(レンダリング)する。そして、第1実施形態に係る情報処理装置1は、上記説明したAR機能のために、撮像画像取得部21によって取得された撮像画像と、画像生成部26によって生成された仮想オブジェクトを含む仮想空間画像と、を重畳した合成画像を生成する。
【0042】
表示制御部27は、生成された合成画像を、表示装置であるディスプレイ16によって表示させる。このようにすることで、ユーザは、現実空間に、実際に仮想オブジェクトが存在するかのような感覚を得ることが出来る。
【0043】
次に、情報処理装置1が保持する情報について説明する。情報処理装置1は、補助記憶装置14に、マーカ情報、オブジェクト情報、背面カメラ対応情報、前面カメラ対応情報、一時的対応情報、姿勢対応情報を保持する。なお、前面カメラ対応情報、一時的対応情報、姿勢対応情報については、第2実施形態以降で説明する。
【0044】
マーカ情報は、マーカ3に関する情報である。マーカ情報には、例えば、マーカ3を識別するためのマーカID、マーカ画像、マーカサイズ、マーカ3に対する仮想オブジェクトの配置位置、オブジェクトの表示サイズ等が含まれる。マーカ画像は、マーカ3の外観を示す画像である。また、マーカサイズは、マーカ3の縦横の長さ等、マーカ3の大きさを示す情報である。マーカ3に対する仮想オブジェクトの配置位置は、例えば、マーカ3に対する仮想オブジェクトを配置する位置であって、例えば、マーカ3と仮想オブジェクトとの距離である。マーカ情報は、情報
処理システム100において使用される各マーカ3に対して存在する。
【0045】
オブジェクト情報は、仮想オブジェクトに関する情報である。オブジェクト情報には、例えば、仮想オブジェクトを識別するためのオブジェクトIDおよびオブジェクトのデータが含まれる。オブジェクト情報は、情報処理システム100において使用される各オブジェクトについて存在する。
【0046】
図4は、第1実施形態に係る背面カメラ対応情報の一例を示す図である。背面カメラ対応情報は、マーカ3と仮想オブジェクトとの関連付けの情報であり、検出されたマーカ3に基づく所定の位置に配置される仮想オブジェクトの決定の際に参照される情報である。
【0047】
背面カメラ対応情報には、例えば、マーカID、仮想オブジェクトID、ポインタが含まれる。第1実施形態において、背面カメラ対応情報では、1つのマーカに対して、複数の仮想オブジェクトが関連付けられており、ポインタが指し示す仮想オブジェクトが、該当するマーカ3に基づく所定の位置に配置される。ポインタは、例えば、該当マーカの前回の検出から今回の検出までの経過時間が所定範囲内の時間である場合に、オブジェクト決定部25によって別の仮想オブジェクトに移動される。詳細は後述する。ポインタの移動先は、例えば、ランダムであってもよいし、仮想オブジェクトのリストに従って決定されてもよい。ポインタが仮想オブジェクトのリストの並び順に移動する場合には、ポインタは循環的に移動するようにしてもよい。すなわち、ポインタがリストの最後にたどり着いた場合には、ポインタは、次に、リストの最初の仮想オブジェクトに移動するようにしてもよい。
【0048】
なお、第1実施形態では、背面カメラ対応情報は、情報処理システム100内で用いられる全てのマーカ3についての情報が保持される。基準マーカ3Yの仮想オブジェクトとの関連付けの情報も背面カメラ対応情報に保持される。ただし、全てのマーカ3に対して複数の仮想オブジェクト4が関連付けられていなくともよく、1つのマーカ3に関連付けられる仮想オブジェクトは1つであってもよい。例えば、基準マーカ3Yに関連付けられる仮想オブジェクトは、仮想オブジェクト4Yの1つである。
【0049】
<処理の流れ>
次に、第1実施形態において実行される処理の流れを説明する。なお、第1実施形態に係るフローチャートに示された処理の具体的な内容および処理順序は、本発明を実施するための一例である。具体的な処理内容および処理順序は、本発明の実施の形態毎に適宜選
択されてよい。
【0050】
図5は、第1のAR処理のフローチャートの一例である。
図5に示されるフローチャートは、情報処理装置1において、AR機能を起動するユーザ操作が受け付けられたことを契機として開始される。
【0051】
OP1では、撮像画像取得部21は、撮像装置15によって撮像された撮像画像を取得する。これによって、
図5に示されるフローチャートは、撮像装置15の撮像レート(例えば60fps)で取得される各撮像画像について実行されることになる。OP2では、特徴検出部22が、撮像画像から、撮像された空間における特徴として、マーカ情報に含まれるマーカ画像に該当するマーカ3を検出する。マーカが検出された場合には(OP2:YES)、処理がOP3に進む。マーカ3の検出は、一般的な画像認識エンジンを用いて行うことが可能である。マーカが検出されない場合には(OP2:NO)、
図5に示される処理が終了する。
【0052】
OP3では、オブジェクト決定部25は、処理対象マーカ3の前回の検出から今回の検出までの計測経過時間が第1の時間閾値以上であるか否かを判定する。第1の時間閾値は、例えば、1秒である。処理対象マーカ3の前回の検出から今回の検出までの計測経過時間が第1の時間閾値以上である場合には(OP3:YES)、処理がOP4に進む。処理対象マーカ3の前回の検出から今回の検出までの計測経過時間が第1の時間閾値未満である場合には(OP3:NO)、処理がOP6に進む。
【0053】
なお、オブジェクト決定部25は、特徴検出部22によって検出された各マーカ3について、検出からの経過時間を計測し、計測経過時間としてメモリに記録する。計測経過時間は、該当マーカ3が撮像画像から検出される度にリセットされる。例えば、撮像画像が60fpsのレートで取得され、マーカ3が連続して検出される場合には、撮像画像が取得される度に該マーカ3の計測経過時間がリセットされる。なお、最後の検出から該当の
マーカ3の検出がないまま所定時間(例えば、5分)経過すると、オブジェクト決定部25は、該当のマーカ3の計測経過時間を削除する。処理OP3において、処理対象のマーカ3の計測経過時間が記録されていない場合には、オブジェクト決定部25は、処理対象マーカ3の計測
経過時間が第1の時間閾値未満である(OP3:NO)、と判定する。
【0054】
OP4では、オブジェクト決定部25は、処理対象マーカ3の計測経過時間が第2の時間閾値以上であるか否かを判定する。第2の時間閾値は、第1の時間閾値よりも長く、例えば、3〜10秒である。処理対象マーカ3の計測経過時間が第2の時間閾値以上である場合には(OP4:YES)、処理がOP6に進む。処理対象マーカ3の計測経過時間が第2の時間閾値未満である場合には(OP4:NO)、処理がOP5に進む。
【0055】
OP5では、オブジェクト決定部25は、処理対象マーカ3の背面カメラ対応情報内のポインタ位置を移動させる。ポインタの移動先は、ランダムであってもよいし、リスト内で現在ポインタ位置の次に位置する仮想オブジェクトであってもよい。次に処理がOP6に進む。
【0056】
OP6では、オブジェクト決定部25は、処理対象マーカ3の背面カメラ対応情報内のポインタが指し示す仮想オブジェクトを取得する。次に処理がOP7に進む。撮像画像から検出されたマーカ3が複数の場合には、各マーカ3についてOP3〜OP6の処理が実行される。
【0057】
OP7では、画像生成部26は、取得された仮想オブジェクトを、関連付けられているマーカ3に基づく所定の位置に配置する。マーカ3の位置及び姿勢は、マーカ3の検出と
ともに姿勢検出部23によって表示基準情報として検出されており、画像生成部26は、表示基準情報に従ってマーカ3に基づく所定の位置に仮想オブジェクトを配置する。次に処理がOP8に進む。
【0058】
OP8では、画像生成部26は、仮想空間の画像を生成する。画像生成部26は、マーカ座標系に配置された1または複数の仮想オブジェクトを含む仮想空間の画像を、マーカ座標系において撮像装置15と同一の位置に配置された仮想カメラの視点から描画する。仮想オブジェクトを描画するためのオブジェクトのデータは、オブジェクト情報から取得される。なお、仮想オブジェクトは、1または数フレーム毎に変化することでアニメーションしてもよい。アニメーションは、例えば、仮想オブジェクトのキャラクタが表情を変えたり、動いたりするものとすることが出来る。その後、処理はOP9に進む。
【0059】
OP9では、表示制御部27は、撮像画像に仮想空間の画像を重畳した合成画像を生成し、この合成画像をディスプレイ16に出力し、表示させる。
【0060】
図5に示されるフローチャートにおいて、第1の時間閾値及び第2の時間閾値は、手で一旦マーカ3を隠し、その後、手をどかして該マーカ3を検出し直させたり、カード2を撮像範囲から外して、その後、再度撮像範囲内に戻して該マーカを検出し直させる、といったユーザ行為を検出するためのものである。前回の検出から今回の検出までの計測経過時間が第1の時間閾値以上第2の時間閾値未満である場合には、上記のようなユーザ行為があったことが判定され、処理がOP5に進み、該当マーカ3の背面カメラ対応情報内のポインタが移動される。これによって、マーカ3を手で隠す等のユーザ行為が行われ、該マーカ3が再度検出された場合には、前回の検出時に表示されていた仮想オブジェクトとは異なる仮想オブジェクトが表示されることになる。これによって、ユーザに変化に富んだ拡張現実を提供することができ、ユーザを飽きさせないサービスを提供することができる。
【0061】
例えば、上記のようなユーザ行為がなく、連続して撮像装置15の撮像レート(例えば、60fps)で撮像された画像からマーカ3が検出される場合には、前回の検出から今回の検出までの計測経過時間が1/60秒となる。これは第1の時間閾値(例えば、1秒)よりも短いため(OP3:NO)、処理がOP6に進み、該当マーカ3の背面カメラ対応情報のポインタの移動もなく、該当マーカ3の対応する所定の位置には前回の検出時と同じ仮想オブジェクトが表示される。なお、情報処理装置1が初めてマーカ3を検出した場合には、オブジェクト決定部25は、計測経過時間が記録されていないので、前回の検出から第1の時間閾値経過していないと判定し(OP3:NO)、処理がOP6に進む。
【0062】
例えば、情報処理装置1が省電力状態に移行したり、ユーザによってマーカ3が撮像範囲から外されたままになったり等、例えば1分以上マーカ3が検出されずに再度マーカ3が検出された場合には、前回の検出からの計測経過時間が第2の
時間閾値以上であると判定され(OP4:YES)、処理がOP6に進み、前回の検出時と同じ仮想オブジェクトが表示されることとなる。
【0063】
ただし、第1のAR処理は、
図5に示されるフローチャートに限定されない。例えば、OP4の処理は省略することもできる。OP4の処理が省略される場合には、マーカ3の前回の検出から今回の検出までの時間が第2の
時間閾値以上である場合にも、OP5の処理に進み、背面カメラ対応情報中のポインタが移動され、前回の検出時とは異なる仮想オブジェクトが表示される。
【0064】
また、オブジェクト決定部25は、マーカ3の検出からの計測経過時間が、例えば、所定時間(例えば、5分)以上になると、該マーカ3の計測経過時間の記録を削除する。こ
の場合に、
図5に示されるフローチャートの処理では、次に該当のマーカ3が検出された場合には、背面カメラ対応情報中のポインタが指し示す仮想オブジェクト、すなわち、前回の該当のマーカ3の検出時に表示された仮想オブジェクトと同じ仮想オブジェクトが表示されることになる。これに代えて、オブジェクト決定部25は、マーカ3の計測経過時間の記録の削除に伴い、該マーカ3の背面カメラ対応情報中のポインタの位置を初期設定に戻すようにしてもよい。背面カメラ対応情報中のポインタの初期設定の位置は、例えば、該当のマーカ3に関連付けられる複数の仮想オブジェクトのリストの先頭である。
【0065】
<第1実施形態の作用効果>
第1実施形態の第1のAR処理では、マーカ3の認識状況に応じて、該マーカ3に対応する位置に配置される仮想オブジェクトが変化する。これによって、AR処理を視覚的変化に富んだエンターテイメント性の高いものとすることができる。
【0066】
<第1のAR処理の変形例>
第1のAR処理では、マーカ3の前回の検出からの経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内で今回の検出が発生する度に、マーカ3に基づく所定の位置に配置される仮想オブジェクトが変化する。これに代えて、マーカ3が連続して検出される時間又は回数に応じて、マーカ3に基づく所定の位置に配置される仮想オブジェクトが変化するようにしてもよい。
【0067】
例えば、オブジェクト決定部25は、マーカ3の最初の検出から連続して検出される時間又は回数を計数し、所定時間又は所定回数に達した場合に、該当マーカ3の背面カメラ対応情報のポインタを移動させるようにする。これによって、マーカ3が検出される間、時間経過に応じて、マーカ3に基づく所定の位置に表示される仮想オブジェクトが変化する。マーカ3が検出されない場合や、マーカ3の最初の検出から連続して検出される時間又は回数が所定時間又は所定回数に達した場合には、該マーカ3の最初の検出から連続して検出される時間又は回数のカウンタはリセットされる。
【0068】
また、マーカ3の前回の検出からの計測経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内で発生する検出の回数に応じて、マーカ3に基づく所定の位置に配置される仮想オブジェクトが変化するようにしてもよい。すなわち、例えば、ユーザが撮像範囲にマーカ3を出し入れしたりするような、情報処理装置1にマーカ3を認識し直させるユーザ行為の回数に応じて、該マーカ3に基づく所定の位置に配置される仮想オブジェクトが変化するようにしてもよい。この場合には、オブジェクト決定部25は、検出される各マーカ3について、前回の検出からの計測経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内で発生する検出の回数を計数する。該検出の回数のカウンタは、例えば、マーカ3の前回の検出からの計測
経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内で検出が発生した場合に1加算され、該当マーカ3の前回の検出からの計測経過時間が第2の
時間閾値以上である検出が発生した場合にリセットされる。例えば、前回の検出からの計測経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内で発生する検出の回数が、2回ごとに、すなわち、情報処理装置1にマーカ3を認識し直させるユーザ行為が2回行われる毎に、オブジェクト決定部25は、該当マーカ3の背面カメラ対応情報のポインタを移動させる。
【0069】
また、第1のAR処理では、マーカ3の前回の検出からの計測経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内での検出が発生する度に、マーカ3に基づく位置に配置される仮想オブジェクトが変化するが、これに代えて、仮想オブジェクトの状態、動作等の態様が変化してもよい。例えば、仮想オブジェクトが所定のキャラクタである場合には、マーカ3の前回の検出からの計測経過時間が第1の時間閾値以上第2の時間閾値未満の範囲内での検出が発生する度に、該キャラクタの表情、服装などの外観が変化したり、
該キャラクタの姿勢やポーズなどが変わったり、眠ったり走ったりという動作が変化したりしてもよい。
【0070】
これらは、例えば、背面カメラ対応情報において、マーカ3と仮想オブジェクトとの関連付けに、さらに態様を関連付けておき、オブジェクト決定部25が仮想オブジェクトの決定とともに、該仮想オブジェクトに該態様を設定することで実現可能である。背面カメラ対応情報では、例えば、マーカ3には、態様として、仮想オブジェクトに実行させる命令のファイルの識別情報が関連付けられる。仮想オブジェクトの制御は、例えば、専用のプログラムによって行われており、該プログラムは、背面カメラ対応情報の態様に対応する命令を実行することによって仮想オブジェクトに該態様を実行させる。
【0071】
また、第1のAR処理は、撮像画像が、背面カメラ15Bで撮像されている場合でも、前面カメラ15Aで撮像されている場合でも、いずれの場合でも実行されるようにしてもよい。
【0072】
<第2実施形態>
第2実施形態では、情報処理装置は、第2のAR処理を行う。第2のAR処理では、現実空間の撮像手段に応じて、表示される仮想オブジェクトが変化する。第2実施形態では、第1実施形態と重複する説明は省略される。
【0073】
図6A及び
図6Bは、第2実施形態に係る情報処理装置1の第2のAR処理の一例を示す図である。第2のAR処理では、画像が前面カメラ15A又は背面カメラ15Bのいずれで撮像されたかによって、マーカ3Aに基づく位置に配置される仮想オブジェクトが変化する。
【0074】
図6Aは、背面カメラ15Bでマーカ3Aを撮像した場合の画面表示例を示す図である。背面カメラ15Bでマーカ3Aを撮像した場合には、ディスプレイ16の画面のマーカ3Aに基づく所定の位置には、仮想オブジェクト4A−1が表示される。
【0075】
図6Bは、前面カメラ15Aでマーカ3Aを撮像した場合の画面表示例を示す図である。前面カメラ15Aでマーカ3Aを撮像した場合には、
図6Aの例と同一のマーカ3Aに基づく所定の位置には、背面カメラ15Bで撮像した場合に表示される仮想オブジェクト4A−1とは異なる仮想オブジェクト4A−4が表示される。
【0076】
第2のAR処理を実行する情報処理装置1のハードウェア構成、機能構成は、ともに、第1実施形態と同様である(
図1、
図3参照)。第2のAR処理では、オブジェクト決定部25は、検出されたマーカ3に基づく所定の位置に配置される仮想オブジェクトの決定に、背面カメラ対応情報と前面カメラ対応情報とを用いる。
【0077】
図6Cは、第2実施形態に係る背面カメラ対応情報と前面カメラ対応情報との一例を示す図である。背面カメラ対応情報は、撮像画像が背面カメラ15Bによって撮像されている場合に参照される情報である。前面カメラ対応情報は、撮像画像が前面カメラ15Aで撮像されている場合に参照される情報である。背面カメラ対応情報と前面カメラ対応情報とには、マーカIDと仮想オブジェクトIDとが含まれており、1つのマーカ3に1つの仮想オブジェクトが関連付けられている。
【0078】
なお、第2実施形態では、背面カメラ対応情報は、情報処理システム100内で用いられる全てのマーカ3について用意されており、前面カメラ対応情報は、情報処理システム100内で用いられる全てのマーカ3について用意されていなくてもよい。例えば、オブジェクト決定部25は、前面カメラ15Aで撮像されて、前面カメラ対応情報に検出され
たマーカ3の情報が保持されていない場合には、背面カメラ対応情報を参照して、仮想オブジェクトを決定する。ただし、これに限られず、前面カメラ対応情報が情報処理システム100内で用いられる全マーカ3について用意されており、背面カメラ対応情報は、全てのマーカ3について用意されていなくてもよい。または、背面カメラ対応情報及び前面カメラ対応情報のいずれも、全てのマーカ3について用意されていなくてもよい。撮像画像から検出されたマーカ3に該当する情報が、背面カメラ対応情報及び前面カメラ対応情報のいずれにもない場合には、該マーカ3に基づく所定の位置には仮想オブジェクトが表示されない。
【0079】
<処理の流れ>
図7は、第2のAR処理のフローチャートの一例である。
図7に示されるフローチャートは、情報処理装置1において、AR機能を起動するユーザ操作が受け付けられたことを契機として開始される。
【0080】
OP11では、撮像画像取得部21は、撮像装置15によって撮像された撮像画像を取得する。これによって、
図7に示されるフローチャートは、撮像装置15の撮像レート(例えば60fps)で取得される各撮像画像について実行されることになる。OP12では、特徴検出部22が、撮像画像から、撮像された空間における特徴として、マーカ情報に含まれるマーカ画像に該当するマーカ3を検出する。マーカ3が検出された場合には(OP12:YES)、処理がOP13に進む。マーカ3が検出されない場合には(OP12:NO)、
図7に示される処理が終了する。
【0081】
OP13では、オブジェクト決定部25は、撮像画像が前面カメラ15Aによって撮像されたものであるか否かを判定する。撮像画像が前面カメラ15Aによって撮像されたものである場合には(OP13:YES)、処理がOP14に進む。撮像画像が背面カメラ15Bによって撮像されたものである場合には(OP13:NO)、処理がOP18に進む。
【0082】
OP14では、オブジェクト決定部25は、撮像画像が前面カメラ15Aによって撮像されたものであるので、前面カメラ対応情報から、検出されたマーカ3に関連付けられている仮想オブジェクトを取得する。なお、第2実施形態において、前面カメラ対応情報に、検出されたマーカ3の情報がない場合には、オブジェクト決定部25は、該当マーカ3の背面カメラ対応情報のポインタが指し示す仮想オブジェクトを取得する。次に処理がOP15に進む。
【0083】
OP18では、オブジェクト決定部25は、撮像画像が背面カメラ15Bによって撮像されたものであるので、背面カメラ対応情報から、検出されたマーカ3に関連付けられている仮想オブジェクトを取得する。次に処理がOP15に進む。
【0084】
OP15〜OP17は、
図5のOP7〜OP9の処理と同様である。OP15〜OP17では、取得された仮想オブジェクトがマーカ3に基づく所定の位置に配置され、仮想空間画像が生成され、撮像画像と仮想空間画像との合成画像が生成され、該合成画像がディスプレイ16に表示される。
【0085】
例えば、前面カメラ対応情報において、背面カメラ対応情報ではいずれのマーカ3にも関連付けられていない仮想オブジェクトを関連付けておくことによって、該仮想オブジェクトを前面カメラ15Aで撮像した際に背面カメラ15Bで撮像している間には表示されなかったキャラクタが表示されるようにすることができる。ARマーカを撮像する際には背面カメラ15Bが用いられることが多く、前面カメラ15Aを用いてARマーカを撮像することは少ない。そのため、前面カメラ15Aでマーカ3を撮像した際に、背面カメラ
15Bで撮像している間には表示されなかった仮想オブジェクトが表示されることによって、該仮想オブジェクトを隠しキャラクタとしてユーザに提示することができ、ユーザに驚き、興奮等を与えることができる。
【0086】
<第2実施形態の作用効果>
第2のAR処理では、マーカ3の検出手段が前面カメラ15A、背面カメラ15Bのいずれであるかによって、該マーカ3に対応する位置に配置される仮想オブジェクトが変化する。これによって、AR処理を視覚的変化に富んだエンターテイメント性の高いものとすることができる。
【0087】
<第2のAR処理の変形例>
第2のAR処理では、前面カメラ15A、背面カメラ15Bのいずれで撮像されたかによって、マーカ3に基づく所定の位置に配置される仮想オブジェクトが変化する。前面カメラ15A、背面カメラ15Bが、それぞれ複数備えられる場合には、各撮像装置について対応情報を用意することで、いずれの撮像装置で撮像されたかによって、マーカ3に対応する位置に表示される仮想オブジェクトを切り替えることができる。例えば、立体視用に、背面カメラ15Bが、右目用カメラと左目用カメラとを備える場合に、右目用カメラ対応情報と、左目用カメラ対応情報とを用意することで、右目用カメラで撮像された場合と、左目用カメラで撮像された場合とで、マーカ3に基づく所定の位置に表示される仮想オブジェクトを切り替えることができる。
【0088】
また、第2のAR処理では、前面カメラ15A又は背面カメラ15Bのいずれで撮像されたかによって、マーカ3に基づく所定の位置に表示される仮想オブジェクトが変化する。これに代えて、前面カメラ15A又は背面カメラ15Bのいずれで撮像されたかによって、マーカ3に基づく所定の位置に表示される仮想オブジェクトの態様を変化させてもよい。これは、例えば、前面カメラ対応情報において、背面カメラ対応情報において該当マーカ3に関連付けられている仮想オブジェクトと同じ仮想オブジェクトに背面カメラ対応情報とは異なる態様を示す命令を関連付けることによって、実現可能である。仮想オブジェクトの態様は、第1実施形態で説明されたものと同様である。
【0089】
また、第2のAR処理は、第1のAR処理と組み合わせることも可能である。第1のAR処理と第2のAR処理とを組み合わせる場合には、例えば、背面カメラ対応情報、前面カメラ対応情報のいずれか一方、又は、両方を、第1実施形態に係る背面カメラ対応情報と同様の構成にし、
図7のOP14、OP18のいずれか一方又は両方の処理を、
図5のOP2〜OP6の処理に置き換えることによって実現される。これによって、撮像画像が背面カメラ15B又は前面カメラ15Aのいずれによって撮像されたかに応じて、マーカ3の対応する位置に表示される仮想オブジェクトが変化するとともに、該マーカ3を認識し直させるユーザ行為に応じても該マーカ3の対応する位置に表示される仮想オブジェクトが変化するようになる。
【0090】
また、第2のAR処理を利用して、例えば、前面カメラ15Aの起動時に、前面カメラ15Aに対応して表示される仮想オブジェクトが配置された状態で仮想空間の更新を停止してその時点での仮想空間画像を保持し、背面カメラ15Bに切り替えられた際に、背面カメラ15Bで撮像される現実空間の撮像画像に、保持されている前面カメラ15Aに対応する仮想オブジェクトを含む仮想空間画像を重畳してディスプレイ16に表示することも可能である。仮想空間の更新の停止は、例えば、操作ボタンの押下等ユーザ操作によって行われてもよいし、前面カメラ15Aから背面カメラ15Bに切り替わることを契機に行われてもよい。仮想空間の更新の停止は、例えば、特徴検出部22、姿勢検出部23の処理、すなわち、撮像画像からのマーカ検出の処理、表示基準情報の更新を無効にすることによって達成される。これによって、前面カメラ15Aでマーカ3を撮像した場合に表
示される仮想オブジェクトを、背面カメラ15Bで撮像することができる。また、同様にして、背面カメラ15Bでマーカ3を撮像した場合に表示される仮想オブジェクトを、前面カメラ15Aで撮像することも可能である。
【0091】
<第3実施形態>
第3実施形態では、情報処理装置1は、第3のAR処理を実行する。第3のAR処理では、基準マーカ3Yが検出されることによって、基準マーカ3Y以外の検出されたマーカ3に関連付けられていた仮想オブジェクトが、基準マーカ3Yに関連付けられる。第3実施形態では、第1、第2実施形態と重複する説明は省略される。
【0092】
図8は、第3実施形態に係る情報処理装置1の第3のAR処理の一例を示す図である。第3のAR処理では、基準マーカ3Yとマーカ3Aとを一緒に撮像した場合に、ディスプレイ16の画面では、基準マーカ3Yに対応する位置に、マーカ3Aに対応付けられている仮想オブジェクトが移動する。以降、基準マーカ3Yに対して、基準マーカではないマーカ3Aを、ノーマルマーカと称する。
【0093】
図8では、ディスプレイ16の画面には、基準マーカ3Yに基づく所定の位置には、基準マーカ3Yに関連付けられている仮想オブジェクト4Yが表示される。仮想オブジェクト4Yは、木を模したオブジェクトである。
【0094】
ノーマルマーカ3Aに基づく所定の位置には、ノーマルマーカ3Aに関連付けられている仮想オブジェクト4A−1が表示され、該仮想オブジェクト4A−1は、その後、基準マーカ3Yに基づく所定の位置に移動する。
【0095】
第1のAR処理と同様に、ノーマルマーカ3Aを一旦撮像範囲から外して再度撮像範囲内に戻す等のユーザ行為が行われると、その都度、ノーマルマーカ3Aに基づく所定の位置には前回とは異なる仮想オブジェクト4A−2、4A−3が表示される。これらの仮想オブジェクト4A−2、4A−3も基準マーカ3Yに基づく所定の位置に移動する。このとき、既に表示されている仮想オブジェクト4A−1も画面中に残ったままで表示される。結果として、第3のAR処理では、基準マーカ3Yに、ノーマルマーカ3Aの所定の位置に表示された仮想オブジェクト4A−1、4A−2、4A−3が集まってくることとなる。
【0096】
第3のAR処理では、情報処理装置1は、基準マーカ3Yとともに撮像されるノーマルマーカ3Aに対応する所定の位置に表示された仮想オブジェクトを基準マーカ3Yに関連付ける。これによって、撮像範囲からノーマルマーカ3Aが外れても基準マーカ3Yが撮像範囲内にある場合には、当初ノーマルマーカ3Aに基づく所定の位置に表示された仮想オブジェクト4は画面上の基準マーカ3Yに対応する所定の位置に表示され続ける。また、ノーマルマーカ3Aに対して第1のAR処理と同様に撮像画像から検出される度に表示される仮想オブジェクトが変化する処理が行われる場合には、ノーマルマーカ3Aに関連付けられている複数の仮想オブジェクトが同じ画面上で表示されることになる。
【0097】
図9は、一時的対応情報の一例を示す図である。一時的対応情報は、基準マーカ3Yとともにノーマルマーカ3が検出された場合に参照される情報であって、初期状態では、空である。
図9に示される例は、基準マーカ3Yとともにノーマルマーカ3Aが検出された場合の一時的対応情報である。
【0098】
一時的対応情報には、基準マーカ3Yとノーマルマーカ3Aとがともに撮像画像から検出された場合に、検出された基準マーカ3Yとノーマルマーカ3Aとの情報が背面カメラ対応情報からコピーされる。ノーマルマーカ3Aの情報において、ポインタが指し示す仮想オブジェクトIDは、基準マーカ3Yの情報に書き込まれる。これによって、該仮想オブジェ
クトが基準マーカ3Yに関連付けられ、基準マーカ3Yに関連付けられる仮想オブジェクトが増える。
【0099】
なお、一時的対応情報において、ノーマルマーカ3Aと、基準マーカ3Yに新たに関連付けられた仮想オブジェクトとの関連付けは、維持されてもよいし、該仮想オブジェクトの基準マーカ3Yとの関連付けを契機に解消されてもよい。ノーマルマーカ3Aと基準マーカ3Yに新たに関連付けられた仮想オブジェクトとの関連付けが解消される場合には、ノーマルマーカ3Aの検出の度に、元々ノーマルマーカ3Aに関連付けられていた仮想オブジェクトが基準マーカ3Yとの関連付けに移動してしまうので、最終的に、ノーマルマーカ3Aが検出されてもノーマルマーカ3Aの対応する位置に仮想オブジェクトが表示されなくなる。
【0100】
<処理の流れ>
図10A及び
図10Bは、第3のAR処理のフローチャートの一例である。
図10A及び
図10Bに示されるフローチャートは、情報処理装置1において、AR機能を起動するユーザ操作が受け付けられたことを契機として開始される。
【0101】
OP21では、撮像画像取得部21は、撮像装置15によって撮像された撮像画像を取得する。これによって、
図10A及び
図10Bに示されるフローチャートは、撮像装置15の撮像レート(例えば60fps)で取得される各撮像画像について実行されることになる。OP22では、特徴検出部22が、撮像画像から、撮像された空間における特徴として、マーカ情報に含まれるマーカ画像に該当するマーカ3を検出する。マーカが検出された場合には(OP22:YES)、処理がOP23に進む。マーカが検出されない場合には(OP22:NO)、
図10A及び
図10Bに示される処理が終了する。
【0102】
OP23では、特徴検出部22によって検出されたマーカ3が複数である場合には(OP23:YES)、処理がOP24に進む。特徴検出部22によって検出されたマーカ3が1つである場合には(OP23:NO)、処理がOP25に進み、第1または第2のAR処理(
図5のOP3〜OP9、又は、
図7のOP13〜OP18の処理)が実行される。その後、
図10A及び
図10Bに示される処理が終了する。
【0103】
OP24では、オブジェクト決定部25は、検出された複数のマーカ3の中に、基準マーカ3Yが含まれるか否かを判定する。基準マーカ3Yが、検出されたマーカ3の中に含まれている場合には(OP24:YES)、処理がOP31に進む。基準マーカ3Yが検出された複数のマーカの中に含まれていない場合には(OP24:NO)、処理がOP25に進み、第1または第2のAR処理(
図5のOP3〜OP9、又は、
図7のOP13〜OP18の処理)が実行される。その後、
図10A及び
図10Bに示される処理が終了する。
【0104】
OP31では、オブジェクト決定部25は、基準マーカ3Yの前回の検出からの計測経過時間が所定時間以上であるか否かを判定する。所定時間は、例えば、3秒以上である。また、所定時間は、第1のAR処理の第2の時間閾値であってもよい。基準マーカ3Yの前回の検出からの計測経過時間が所定時間未満である場合には(OP31:NO)、処理がOP34に進む。基準マーカ3Yの前回の検出からの計測経過時間が所定時間以上である場合には(OP31:YES)、処理がOP32に進む。
【0105】
OP32では、オブジェクト決定部25は、一時的対応情報を初期化する。一時的対応情報の初期状態は、空である。次に処理がOP33に進む。
【0106】
OP33では、オブジェクト決定部25は、検出された基準マーカ3Y及びノーマルマーカ3の背面カメラ対応情報を一時的対応情報にコピーする。次に処理がOP34に進む。
【0107】
OP34では、オブジェクト決定部25は、ノーマルマーカ3に対応する位置に配置される仮想オブジェクトを決定する。OP34の処理は、参照する情報が一時的対応情報である点以外は、第1のAR処理の
図5のOP3〜OP6の処理と同様である。すなわち、オブジェクト決定部25は、ノーマルマーカ3の前回の検出からの計測経過時間が第1の時間閾値未満、又は、第2の時間閾値以上である場合には、ノーマルマーカ3の一時的対応情報内のポインタが指し示す仮想オブジェクトを、ノーマルマーカ3に基づく所定の位置に配置される仮想オブジェクトに決定する。オブジェクト決定部25は、ノーマルマーカ3の前回の検出からの計測経過時間が第1の時間閾値以上第2の時間閾値未満である場合には、ノーマルマーカ3の一時的対応情報内のポインタを移動させ、移動先の仮想オブジェクトを、ノーマルマーカ3に基づく所定の位置に配置される仮想オブジェクトに決定する。次に、処理がOP35に進む。
【0108】
OP35では、オブジェクト決定部25は、一時的対応情報において、OP34で新たに決定されたノーマルマーカ3に基づく所定の位置に配置される仮想オブジェクトを、基準マーカ3Yに関連付ける。次に処理がOP36に進む。
【0109】
OP36では、オブジェクト決定部25は、基準マーカ3Yに対応付けられる仮想オブジェクトを一時的対応情報から取得する。次に処理がOP37に進む。
【0110】
OP37〜OP39では、
図5のOP7〜OP9と同様の処理が行われる。すなわち、取得された仮想オブジェクトがそれぞれ基準マーカ3Yに基づく所定の位置に配置され、仮想空間画像が生成され、撮像画像と仮想空間画像との合成画像が生成され、該合成画像がディスプレイ16に表示される。その後、
図10A及び
図10Bに示される処理が終了する。ただし、仮想オブジェクトが、基準マーカ3Yに新たに関連付けられたものである場合には、該仮想オブジェクトは、基準マーカ3Yに基づく所定の位置として、まず、ノーマルマーカ3に基づく所定の位置に配置され、基準マーカ3Yに基づく他の所定の位置へと移動するように設定される。この仮想オブジェクトの動作は、該仮想オブジェクトが、基準マーカ3Yに新たに関連づけられ、基準マーカ3Yに基づいて配置される仮想オブジェクトとして取得されるときに、オブジェクト決定部25によって、該仮想オブジェクトに設定される。また、仮想オブジェクトの制御は、例えば、専用のプログラムによって行われており、仮想オブジェクトの上記動作は、該プログラムによって制御される。
【0111】
OP35において、ノーマルマーカ3に基づく所定の位置に配置されることが決定された仮想オブジェクトは、一時的対応情報において、基準マーカ3Yに関連付けられる。これによって、例えば、該ノーマルマーカ3が撮像範囲から外れて検出されなくなっても、ノーマルマーカ3に関連付けられていた該仮想オブジェクトは、一時的対応情報において基準マーカ3Yに関連付けられているので、表示され続けることになる。
【0112】
また、ノーマルマーカ3については、第1のAR処理と同様の処理が行われるため、基準マーカ3Yが撮像されている間に、ノーマルマーカ3を撮像範囲に出し入れすることによって、ノーマルマーカ3に関連付けられている複数の仮想オブジェクトが次々に基準マーカ3Yに関連付けられることになる。ディスプレイ16の画面では、画面中の仮想オブジェクトが増えていくことなり、最終的には、ノーマルマーカ3に関連付けられているすべての仮想オブジェクトが基準マーカ3Yに対応する所定の位置に集合するようになる。
【0113】
また、仮想オブジェクトが基準マーカ3Yに新たに関連付けられた後も、該仮想オブジ
ェクトと、ノーマルマーカ3との関連付けが維持される場合には、ノーマルマーカ3を情報処理装置1に認識し直させるユーザ行為の繰り返しによって、該仮想オブジェクトと同じ仮想オブジェクトが表示されることになる。これによって、同じ画面上に、同じ仮想オブジェクトが複数表示させることができる。
【0114】
第3のAR処理によって、ノーマルマーカ3に関連付けられている仮想オブジェクトが基準マーカ3Yに関連付けられるので、一つのノーマルマーカ3に関連付けられている複数の仮想オブジェクトを同じ画面上に表示させることができる。
【0115】
<第3実施形態の作用効果>
第3のAR処理では、基準マーカ3Yとノーマルマーカ3とがともに検出されることによって、ノーマルマーカ3に関連付けられる仮想オブジェクトが基準マーカ3Yに関連付けられる。これによって、AR処理を視覚的変化に富んだエンターテイメント性の高いものとすることができる。
【0116】
<第3のAR処理の変形例>
第3のAR処理において、基準マーカ3Yに基づく仮想オブジェクトの配置ポイントがあらかじめ複数設定されており、ノーマルマーカ3に基づく所定の位置に配置される仮想オブジェクトに、最寄りの配置ポイントに移動させる命令を実行させるようにしてもよい。すでに、最寄りの配置ポイントに別の仮想オブジェクトが配置されている場合には、空いている配置ポイントのうちノーマルマーカ3に基づく所定の位置に最も近い配置ポイントに移動させるようにする。また、ノーマルマーカ3に基づく所定の位置に配置される仮想オブジェクトが最寄りの配置ポイントへ移動中に、撮像画像内での基準マーカ3Yの位置が変わり、移動先であった最寄りの配置ポイントも移動した場合には、新たに仮想オブジェクトから最寄りの配置ポイントを検出して、該検出した配置ポイントを該仮想オブジェクトの移動先としてもよい。仮想オブジェクトの制御は、例えば、専用のプログラムによって行われており、該プログラムに最寄りの配置ポイントに移動させる命令を実行させる。
【0117】
また、第3のAR処理において、基準マーカ3Yは、背面カメラ対応情報又は前面カメラ対応情報において、いずれの仮想オブジェクトとも関連付けられていなくともよい。基準マーカ3Yとノーマルマーカ3とがともに検出された場合には、ノーマルマーカ3に関連付けられた仮想オブジェクトが表示されることになる。
【0118】
また、第3実施形態では、第3のAR処理において、ノーマルマーカ3については、個別に第1のAR処理が実行されていたが、これに限られない。例えば、第3のAR処理において、ノーマルマーカ3には複数の仮想オブジェクトが関連付けられておらず、1つの仮想オブジェクトが関連付けられていてもよい。この場合には、例えば、撮像範囲にノーマルマーカ3を出し入れするたびに、基準マーカ3Yに関連付けられる、ノーマルマーカ3に関連付けられる仮想オブジェクトの数が増えるようにしてもよい。または、第3のAR処理において、ノーマルマーカ3は、連続して検出される時間に応じて、仮想オブジェクトを変化させるようにしてもよい。
【0119】
また、第3実施形態では、一時的対応情報において、ノーマルマーカ3に関連付けられている仮想オブジェクトの基準マーカ3Yへの対応付けは、該仮想オブジェクトが所定の位置に配置される前に行われる(
図10B参照)。これに限られず、一時的対応情報におけるノーマルマーカ3に関連付けられている仮想オブジェクトの基準マーカ3Yへの対応付けは、例えば、該仮想オブジェクトをノーマルマーカ3に対応する所定の位置に配置し、所定時間経過後に行われてもよい。
【0120】
この場合には、例えば、
図10Bのフローチャートの、OP34とOP35との処理の間に、該当のノーマルマーカ3が連続して検出される回数又は時間が所定回数又は所定時間に達しているか否かの判定を追加することによって実現可能である。該当のノーマルマーカ3が連続して検出される回数又は時間が所定回数又は所定時間に達している場合には、処理がOP35に進み、該ノーマルマーカ3に関連付けられている仮想オブジェクトの基準マーカ3Yへの対応付けが行われる。該当のノーマルマーカ3が連続して検出される回数又は時間が所定回数又は所定時間に達していない場合には、処理がOP36に進む。
【0121】
これによって、ディスプレイ16の画面上では、ノーマルマーカ3と基準マーカ3Yとが撮像された場合に、ノーマルマーカ3に対応する所定の位置に、所定時間、ノーマルマーカ3に関連付けられている仮想オブジェクトが表示される。例えば、所定時間経過後、該仮想オブジェクトが基準マーカ3Yへ対応付けられることによって、ディスプレイ16の画面上では、該仮想オブジェクトが基準マーカ3Yの所定の配置ポイントに移動する。
【0122】
<第4実施形態>
第4実施形態では、情報処理装置は、第4のAR処理を行う。第4のAR処理では、マーカ3の姿勢に応じて、表示される仮想オブジェクトの態様が変化する。第4実施形態では、第1〜第3実施形態と重複する説明は省略される。
【0123】
図11A及び
図11Bは、第4のAR処理の一例を示す図である。
図11A及び
図11Bの画面では、同一のマーカ3Aが表示されており、双方の画面には同一の仮想オブジェクト4A−1が表示されている。
図11Aと
図11Bとでは、マーカ3Aの姿勢が異なり、それに応じて、仮想オブジェクト4A−1の動作も異なる。
図11Aでは、マーカ3Aは、ディスプレイ16の表示画面の水平方向及び垂直方向に対して所定の角度で傾いて認識されて、仮想オブジェクト4A−1は、カード2Aを坂に見立てて滑り下りる動作を行っている。
図11Bでは、マーカ3Aは、ディスプレイ16の表示画面の水平方向の傾きがない状態で認識されて、仮想オブジェクト4A−1は、カード2Aを壁に見立てて登っている。
【0124】
第4のAR処理を実行する情報処理装置1のハードウェア構成、機能構成はともに、第1実施形態と同様である(
図1、
図3参照)。第4のAR処理では、オブジェクト決定部25は、検出されたマーカ3に基づく所定の位置に配置される仮想オブジェクトの決定に、姿勢対応情報を用いる。
【0125】
図12は、姿勢対応情報の一例を示す図である。姿勢対応情報は、マーカ3と仮想オブジェクトとの関連付けと、該マーカ3の姿勢と該仮想オブジェクトの動作との関連付けと、を保持する。姿勢対応情報において、動作は、仮想オブジェクトに所定の動作を実行させるための命令が記載されたファイルの識別情報が保持される。姿勢対応情報とは別に、例えば、補助記憶装置14には、各姿勢の、互いに直交する3軸で構成される共通座標系の原点を始点とするベクトルでの定義が保持されている。姿勢対応情報において、姿勢は、例えば、該姿勢の定義が記載されるファイル等の識別情報が保持される。姿勢を定義するベクトルの値は、該姿勢を検出する基準となるベクトルであって、姿勢の検出の際には、定義されたベクトルに所定範囲が加味されて、最も近いものが検出される。
【0126】
なお、
図12では、態様の例として、動作を姿勢に関連付けているが、これに限られず、例えば、キャラクタの表情、服装等の外観の一部が関連付けられてもよい。また、姿勢対応情報とは別に、例えば、補助記憶装置14には、態様の識別情報と、該態様を仮想オブジェクトに実行させるための命令を含むファイルとの対応付けの定義が保持されている。
【0127】
図13は、第4のAR処理のフローチャートの一例である。
図13に示されるフローチャートは、情報処理装置1において、AR機能を起動するユーザ操作が受け付けられたことを契機として開始される。
【0128】
OP41では、撮像画像取得部21は、撮像装置15によって撮像された撮像画像を取得する。これによって、
図13に示されるフローチャートは、撮像装置15の撮像レート(例えば60fps)で取得される各撮像画像について実行されることになる。OP42では、特徴検出部22が、撮像画像から、撮像された空間における特徴として、マーカ情報に含まれるマーカ画像に該当するマーカ3を検出し、マーカが検出された場合には(OP42:YES)、処理がOP43に進む。マーカが検出されない場合には(OP42:NO)、
図13に示される処理が終了する。
【0129】
OP43では、姿勢検出部23は、検出されたマーカ3の姿勢を検出する。次に処理がOP44に進む。
【0130】
OP44では、オブジェクト決定部25は、姿勢対応情報から、検出されたマーカ3に関連付けられる仮想オブジェクトと、検出された姿勢に関連付けられる動作とを取得する。次に処理がOP45に進む。検出されたマーカ3が複数の場合には、各マーカ3についてOP43〜OP44の処理が実行される。
【0131】
OP45では、画像生成部26は、取得された仮想オブジェクトを関連付けられるマーカ3に対応する所定の位置に配置し、取得された動作を実行するように設定する。マーカ3の位置及び姿勢は、マーカ3の検出とともに姿勢検出部23によって表示基準情報として検出されており、画像生成部26は、表示基準情報に従ってマーカ3の対応する所定の位置に仮想オブジェクトを配置する。次に処理がOP46に進む。
【0132】
OP46では、画像生成部26は、仮想空間の画像を生成する。OP47では、表示制御部27は、撮像画像に仮想空間の画像を重畳した合成画像を生成し、この合成画像をディスプレイ16に出力し、表示させる。
【0133】
<第4実施形態の作用効果>
第4実施形態では、検出されたマーカ3の姿勢に応じて、表示される仮想オブジェクトの態様が変化する。これによって、視覚的変化に富んだAR処理を提供することができる。また、ユーザに対して、マーカ3の姿勢変化への探究心を煽ることができる。
【0134】
第4実施形態では、検出されたマーカ3の姿勢に応じて、表示される仮想オブジェクトの態様が変化したが、これに代えて、マーカ3の姿勢に応じて、表示される仮想オブジェクト自体が変化してもよい。これは、姿勢対応情報において、姿勢と仮想オブジェクトとの関連付けを保持することによって実現可能である。
【0135】
また、第1実施形態と第4実施形態とは組み合わせて実施することも可能である。その場合には、例えば、姿勢対応情報には、マーカ3と仮想オブジェクトとの組み合わせを含めず、マーカ3に関連付けられた仮想オブジェクトは背面カメラ対応情報又は前面カメラ対応情報から取得し、取得した仮想オブジェクトの態様を姿勢対応情報から取得することによって実現可能である。
【0136】
<実施形態のバリエーション>
上記説明した実施形態において、表示制御部27は、撮像画像に仮想空間の画像を重畳した合成画像を表示装置に表示させることで、ユーザが、仮想空間の画像が現実空間に重畳されて視認可能とする。但し、表示制御部27は、仮想空間の画像が現実空間に重畳さ
れてユーザから視認されるように、表示装置に画像を表示させればよく、合成画像を表示する方式に限定されない。例えば、本発明は、HUD(Head−Up Display)や、ユーザが装着しているメガネに仮想空間画像を映写する方式等、ユーザの視界に仮想空間画像を映写することで仮想空間の画像が現実空間に重畳されてユーザから視認されるタイプの拡張現実技術に適用されてもよい。
【0137】
上述した実施形態において、情報処理装置1は、単体で上述の処理を行ったが、これに限られない。上述した実施形態の処理は、複数の情報処理装置で分散して行われてもよい。例えば、
背面カメラ対応情報は、ネットワーク上のデータベースに配置されており、情報処理装置1が該データベースにアクセスして
背面カメラ対応情報を取得してもよい。また、例えば、画像生成部26の処理を、ネットワーク上のサーバに実行させるように設計することによって、情報処理装置1がマーカ3の検出結果をサーバに送信し、該サーバが仮想空間画像を生成して情報処理装置1に送信するようにしてもよい。