(57)【要約】【課題】  より少ない指標を用いてＭＲ画像を生成し、生成したＭＲ画像をユーザに提示する為のシステムの構成を、より簡易な構成で実現するための技術を提供すること。【解決手段】  指標抽出部２０９は、複数の指標が配された現実空間を撮像する撮像ユニット２０４による撮像画像から指標を検出する。収束演算部２１１は、検出された指標に基づいて撮像ユニット２０４の位置姿勢情報を求める。ＣＧ描画部２１２は、位置姿勢情報に基づいて仮想空間画像を生成する。撮像画像切り出し部２０８は、撮像画像において表示対象領域内の画像を表示画像として抽出する。画像合成部２１４は、抽出された表示画像と、生成された仮想空間画像とを合成することで合成画像を生成する。表示ユニット２１６は、合成画像を表示する。【選択図】  図２
2010092436.tif 000002
【特許請求の範囲】
【請求項１】
複数の指標が配された現実空間を撮像する撮像手段と、
前記撮像手段による撮像画像から前記指標を検出する検出手段と、
前記検出手段により検出された指標に基づいて前記撮像手段の位置姿勢情報を求める計算手段と、
前記計算手段が求めた位置姿勢情報に基づいて仮想空間画像を生成する生成手段と、
前記撮像画像において表示対象領域内の画像を表示画像として抽出する抽出手段と、
前記抽出手段により抽出された表示画像と前記生成手段が生成した仮想空間画像とを合成することで合成画像を生成する合成手段と、
前記合成手段による合成画像を表示する表示手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像処理装置は、前記撮像手段と前記表示手段とを有する装置と、前記検出手段と前記計算手段と前記生成手段と前記抽出手段と前記合成手段とを有する装置とで構成されているシステムであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記計算手段は、
前記検出手段により検出されたそれぞれの指標に優先度を設定する設定手段を有し、
優先度の高い指標ほど優先的に用いて前記位置姿勢情報を求めることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記設定手段は、前記撮像画像の中心位置に近い指標ほど高い優先度を設定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記設定手段は、前記撮像画像において表示対象領域内の指標の優先度を、表示対象領域外の指標の優先度よりも高く設定することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記設定手段は、前記撮像画像内の動き量が閾値以上であれば、指標に対する優先度の設定は行わないことを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記計算手段は、前記撮像画像内の動き量に基づいて前記位置姿勢情報を補正することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記抽出手段は、前記撮像画像のうち、前記表示手段で表示可能な範囲内の画像を前記表示画像として抽出することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記抽出手段は、前記撮像画像内の動き量に基づいて前記撮像画像から表示対象領域を特定し、特定した表示対象領域内の画像を表示画像として抽出することを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記撮像手段は右目用の撮像手段と左目用の撮像手段とからなり、
前記検出手段は前記右目用の撮像手段による撮像画像から前記指標を検出する右目用の検出手段と、前記左目用の撮像手段による撮像画像から前記指標を検出する左目用の検出手段とからなり、
前記右目用の検出手段による検出結果、前記左目用の検出手段による検出結果、前記撮像画像内の動き量、に基づいて、前記右目用の撮像画像による撮像画像、前記左目用の撮像手段による撮像画像のうち何れか１つを選択する選択手段を更に有し、
前記計算手段は、前記選択手段が選択した撮像画像から抽出された指標に基づいて前記位置姿勢情報を求め、
前記抽出手段は、前記右目用の撮像画像による撮像画像、前記左目用の撮像手段による撮像画像のうち何れか１つから表示対象領域内の画像を抽出する
ことを特徴とする請求項３乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記選択手段は、前記動き量が閾値よりも小さい場合には、優先度が高い指標がより多く検出された方の撮像画像を選択することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記選択手段は、前記動き量が閾値以上である場合には、それぞれの撮像画像のうち、前記動き量が示す動きの方向の端部から最も近い指標を含む撮像画像を選択することを特徴とする請求項１０に記載の画像処理装置。
【請求項１３】
前記生成手段は、指標の位置に仮想物体を配置した仮想空間の画像を生成する場合、当該指標の優先度に応じて当該仮想物体の透明度、若しくは明るさを制御することを特徴とする請求項１乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
複数の指標が配された現実空間を撮像手段によって撮像する撮像工程と、
前記撮像手段による撮像画像から前記指標を検出する検出工程と、
前記検出工程で検出された指標に基づいて前記撮像手段の位置姿勢情報を求める計算工程と、
前記計算工程で求めた位置姿勢情報に基づいて仮想空間画像を生成する生成工程と、
前記撮像画像において表示対象領域内の画像を表示画像として抽出する抽出工程と、
前記抽出工程で抽出された表示画像と前記生成工程で生成した仮想空間画像とを合成することで合成画像を生成する合成工程と、
前記合成工程による合成画像を表示する表示工程と
を備えることを特徴とする画像処理方法。
【請求項１５】
コンピュータを、請求項１乃至１３の何れか１項に記載の画像処理装置が有する各手段として機能させるためのコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像と仮想空間の画像との合成画像をユーザに提示するための技術に関するものである。
【背景技術】
【０００２】
近年、現実世界と仮想世界をリアルタイムかつシームレスに融合させる技術として複合現実感、いわゆるＭＲ（Ｍｉｘｅｄ Ｒｅａｌｉｔｙ）技術が知られている。ＭＲ技術の１つに、次のような技術が知られている。即ち、ビデオシースルー型ＨＭＤ（Ｈｅａｄ Ｍｏｕｎｔｅｄ Ｄｉｓｐｌａｙ）に備わっているビデオカメラなどによって、観察者の瞳位置から観察される被写体と略一致する被写体を撮像する。そして、その撮像画像にＣＧ（Ｃｏｍｐｕｔｅｒ Ｇｒａｐｈｉｃｓ）を重畳表示した画像を観察者に提示する。
【０００３】
ビデオシースルー型ＨＭＤでは、ＣＣＤ等の電荷結合素子により被写体を撮像して、この被写体のデジタル画像データを得、このデジタル画像データにＣＧ画像を重畳したＭＲ画像（複合現実画像）を生成する。そしてその後、液晶素子等の表示デバイスを介してこのＭＲ画像を、装着者に表示する。
【０００４】
ＣＧ画像の描画および撮像画像への重畳は、ＨＭＤに備わっているビデオカメラなどの撮像装置の位置姿勢情報、すなわちＨＭＤ装着者の頭部の位置姿勢情報を基に行う。位置姿勢情報を生成するための代表的な手法として以下の二種類がある。
【０００５】
一つ目は、磁気センサやジャイロセンサ（加速度、角速度）などの三次元位置姿勢センサによって位置姿勢情報を取得・生成する方法である。磁気センサには周囲の電磁波の影響を受けやすい特徴が、またジャイロセンサには出力電圧が変動するドリフト現象が生じる特徴がある。このように三次元位置姿勢センサのみでは安定した位置姿勢情報を生成することは難しい。
【０００６】
二つ目は、現実空間中に配置された指標の情報を取得し、その情報を基に位置姿勢情報を生成する方法である。指標には特徴的な形状のマーカや赤外ＬＥＤを用いる場合などがあり、その指標の情報は、カメラや赤外カメラ等を用いて取得する。取得した指標の大きさや位置、マーカの場合はさらに形状によって位置姿勢情報を生成する。
【０００７】
指標情報を取得するためのカメラを設置する場所は大きく分けて以下の２種類ある。
【０００８】
一つ目は、指標情報を取得するための構成をＨＭＤに配置する方法である。係る方法は、ＨＭＤに撮像装置を装着し、この撮像装置でもって指標の情報を取得する方法を含むものである。ＭＲ画像を生成するために用いる現実空間画像を撮像するための撮像装置の近傍に赤外カメラを設置し、その赤外カメラで現実空間中に配置した赤外マーカを撮像して位置姿勢情報を生成する手法が非特許文献１に開示されている。
【０００９】
二つ目は、指標情報を取得するための撮像装置を、ＨＭＤ装着者の周囲を鳥瞰できる位置に配置する方法である。この方法では、撮像装置の数や配置によっては、ＨＭＤに撮像装置を設ける場合よりも広い領域の指標情報を取得することが可能である。
【００１０】
ＨＭＤが有する撮像装置によって取得されるマーカ情報の他に、周囲を鳥瞰できる赤外カメラで取得されるＨＭＤ付属の赤外マーカ情報を用いて位置姿勢情報を生成する手法が特許文献１に開示されている。
【特許文献１】特開２００５−３５１８８６号公報
【非特許文献１】Ｆｒａｎｋ  Ｓａｕｅｒ，Ｆａｂｉａｎ  Ｗｅｎｚｅｌ，Ｓｅｂａｓｔｉａｎ  Ｖｏｇｔ，Ｙｉｙａｎｇ  Ｔａｏ，Ｙａｋｕｐ  Ｇｅｎｃ，Ａｌｉ  Ｂａｎｉ−Ｈａｓｈｅｍｉ，Ｓｉｅｍｅｎｓ  Ｃｏｒｐｏｒａｔｅ  Ｒｅｓｅａｒｃｈ，Ａｕｇｍｅｎｔｅｄ  Ｗｏｒｋｓｐａｃｅ：ｄｅｓｉｇｎｉｎｇ  ａｎ  ＡＲ  ｔｅｓｔｂｅｄ，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  ａｎｄ  ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ  ２０００  ｐｐ．４７−５３
【発明の開示】
【発明が解決しようとする課題】
【００１１】
広い空間からの情報を元に位置姿勢情報を安定的に取得しようとすると、現実空間中に設置する指標の数を多くする必要がある。また、ＨＭＤの光学系の画角は撮像系の画角よりも広くすることは技術的に困難であるため、同じ画角に一致させるビデオシースルー型ＨＭＤでは、撮像系の画角は表示系の画角に律束される。表示系と撮像系を同じ画角にすると、指標が撮像画像中に現れた途端ＣＧが表示されることになり、ＣＧ表示の連続性が失われる場合もある。ＨＭＤの表示系が表示可能な範囲よりも広い範囲における領域内の指標情報を得ることができれば、設置する指標の数を少なくすることができる。しかし、上述した技術のように、HMDの撮像装置とは別の撮像装置を設けることは、システム構成の規模の増大や複雑化につながる。
【００１２】
本発明は以上の問題に鑑みて成されたものであり、より少ない指標を用いてＭＲ画像を生成し、生成したＭＲ画像をユーザに提示する為のシステムの構成を、より簡易な構成で実現するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１４】
即ち、複数の指標が配された現実空間を撮像する撮像手段と、
前記撮像手段による撮像画像から前記指標を検出する検出手段と、
前記検出手段により検出された指標に基づいて前記撮像手段の位置姿勢情報を求める計算手段と、
前記計算手段が求めた位置姿勢情報に基づいて仮想空間画像を生成する生成手段と、
前記撮像画像において表示対象領域内の画像を表示画像として抽出する抽出手段と、
前記抽出手段により抽出された表示画像と前記生成手段が生成した仮想空間画像とを合成することで合成画像を生成する合成手段と、
前記合成手段による合成画像を表示する表示手段と
を備えることを特徴とする。
【００１５】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１６】
即ち、複数の指標が配された現実空間を撮像手段によって撮像する撮像工程と、
前記撮像手段による撮像画像から前記指標を検出する検出工程と、
前記検出工程で検出された指標に基づいて前記撮像手段の位置姿勢情報を求める計算工程と、
前記計算工程で求めた位置姿勢情報に基づいて仮想空間画像を生成する生成工程と、
前記撮像画像において表示対象領域内の画像を表示画像として抽出する抽出工程と、
前記抽出工程で抽出された表示画像と前記生成工程で生成した仮想空間画像とを合成することで合成画像を生成する合成工程と、
前記合成工程による合成画像を表示する表示工程と
を備えることを特徴とする。
【発明の効果】
【００１７】
本発明の構成により、より少ない指標を用いてＭＲ画像を生成し、生成したＭＲ画像をユーザに提示する為のシステムの構成を、より簡易な構成で実現することができる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１９】
［第１の実施形態］
図１は、本実施形態に係るシステムに適用可能なシステムの外観例を示す図である。図１に示したシステムは、ＨＭＤ１０１、コントローラ１０２、画像処理装置１０３、により構成されている。
【００２０】
ここで、現実空間と仮想空間とをリアルタイムかつシームレスに融合させる技術である複合現実感技術、いわゆるＭＲ技術では、撮像機能付表示装置を利用する。ここで、以下の説明では、撮像機能付表示装置をＨＭＤと略す。ただし、双眼鏡のような手持ちタイプの装置でもよく、頭部装着型の装置に限らない。ＭＲ技術では、ＨＭＤが有する撮像装置により取得した装着者視点からの現実空間の背景画像に、装着者視点の位置、方向などの三次元位置姿勢情報に基づいて生成されたＣＧ画像を重畳し、ＨＭＤの表示部に表示する。これにより、ＨＭＤ装着者は、ＣＧで描画されたオブジェクトが、観察している現実空間内にあたかも存在しているかのような複合現実感を体感することができる。
【００２１】
ＨＭＤ１０１は、現実空間を撮像するための撮像部と、コントローラ１０２を介して画像処理装置１０３から受信した画像を表示するための表示部とを有する。ＨＭＤ１０１はコントローラ１０２と通信可能であり、撮像部が撮像した現実空間の画像は、このコントローラ１０２に送出する。なお、ＨＭＤ１０１は、コントローラ１０２からの電源供給を受けて駆動することも、バッテリーで駆動することも可能な構成となっている。
【００２２】
コントローラ１０２は、ＨＭＤ１０１から受信した画像に対して各種の処理を施した後、この画像を画像処理装置１０３に送信する。
【００２３】
画像処理装置１０３は、コントローラ１０２と通信可能であり、コントローラ１０２から受信した現実空間の画像に基づいて仮想空間の画像を生成する生成部と、生成した仮想空間の画像を現実空間の画像と合成して合成画像を生成する合成部とを有する。そしてこの合成部は、生成した合成画像をコントローラ１０２に送信する。
【００２４】
コントローラ１０２は、画像処理装置１０３から受けた合成画像に対して各種の処理を施した後、この合成画像をＨＭＤ１０１に送出する。なお、コントローラ１０２は、ＨＭＤ１０１や画像処理装置１０３から受けた画像に対して、解像度変換、色空間変換、光学系の歪み補正等の各種画像処理や、伝送フォーマット変換等を行うための機能を備えている。
【００２５】
ＨＭＤ１０１の表示部には、コントローラ１０２から送出された合成画像が表示される。
【００２６】
なお、図１では、画像処理装置１０３とコントローラ１０２とは別個の装置としているが、画像処理装置１０３とコントローラ１０２とを一体化して１つの装置としても良い。また、コントローラ１０２の機能の一部または全部をＨＭＤ１０１側に備えさせるようにしても良い。また、それぞれの装置間は無線で通信しても良いし、有線で通信しても良い。
【００２７】
以下では、説明を簡単にするために、コントローラ１０２とＨＭＤ１０１とを一体化させたものを１つのＨＭＤとして説明する。
【００２８】
図２は、本実施形態に係るシステムの機能構成例を示すブロック図である。図２に示す如く、本実施形態に係るシステムは、ＨＭＤ２０１と画像処理装置２０２とで構成されている。
【００２９】
先ず、ＨＭＤ２０１について説明する。ＨＭＤ２０１は所謂ビデオシースルー型の頭部装着型表示装置の一例としての表示装置である。ＨＭＤ２０１は、現実空間を撮像する撮像ユニット２０４、画像処理装置２０２から送出された画像を表示する表示ユニット２１６を有する。更には、ＨＭＤ２０１は、撮像ユニット２０４から受けた画像に対して各種の処理を施す撮像画像処理部２０７、画像処理装置２０２から受けた画像に対して各種の処理を施す表示画像処理部２１５を有する。
【００３０】
撮像ユニット２０４は、ＨＭＤ２０１を頭部に装着した装着者の目の位置姿勢と略一致する位置姿勢から見える現実空間の画像を撮像するためのもので、撮像光学系２０５、撮像素子２０６を有する。撮像光学系２０５は、外光の光束を撮像素子２０６へ結像させるためのものである。撮像素子２０６は、ＣＣＤやＣＭＯＳのエリアセンサであり、撮像光学系２０５による結像の結果として画像を構成する。この画像が撮像画像（現実空間画像）であり、この撮像画像は、撮像画像処理部２０７に送出される。
【００３１】
撮像画像処理部２０７は、撮像ユニット２０４から送出された撮像画像のうち、表示ユニット２１６において表示されない領域（表示対象領域外、非表示領域）のデータ量を削減することで、この撮像画像を更新する。もちろん、撮像画像において表示ユニット２１６で表示可能な領域を特定するための情報は既知であり、この情報は、ＨＭＤ２０１と画像処理装置２０２の何れか若しくは両方で保持されているものとする。そして撮像画像処理部２０７は、この更新した撮像画像を、通信路２０３を介して画像処理装置２０２に送信する。
【００３２】
この通信路２０３は、有線であっても良いし、無線であっても良い。
【００３３】
表示画像処理部２１５は、この通信路２０３を介して画像処理装置２０２から送信された合成画像（ＭＲ画像）を受信する。そして、この合成画像の解像度やフレーム周波数を表示素子２１７に合せて変換したり、この合成画像に対して表示光学系２１８が有する歪みをキャンセルする歪補正を行い、その後、モアレ除去等を行うためにローパスフィルタをかける処理を行う。そして表示画像処理部２１５は、このような各種の画像処理済みの合成画像を、表示ユニット２１６に送出する。
【００３４】
表示ユニット２１６は、表示画像処理部２１５から受けた合成画像を表示するためのもので、ＨＭＤ２０１を頭部に装着した装着者の眼前に位置するようにＨＭＤ２０１に取り付けられたものである。表示ユニット２１６は表示素子２１７、表示光学系２１８を有する。
【００３５】
表示素子２１７は、小型液晶ディスプレイやＭＥＭＳによる網膜スキャンタイプのデバイス等であり、表示画像処理部２１５から受けた合成画像を表示することで、この合成画像を構成する各画素に対応する光を照射する。
【００３６】
表示光学系２１８は、表示素子２１７から照射される光を拡大すると共に、ある程度の太さの光束として装着者の眼球に導く為のものである。これにより、装着者の眼前には、表示素子２１７が表示した合成画像が拡大されて投影されることになる。
【００３７】
次に、画像処理装置２０２について説明する。画像処理装置２０２は、指標抽出部２０９、指標優先度設定部２１０、収束演算部２１１、ＣＧ描画部２１２、ＣＧコンテンツデータベース２１３、画像合成部２１４、撮像画像切り出し部２０８を有する。
【００３８】
指標抽出部２０９は、ＨＭＤ２０１から送出された撮像画像を受信すると、この撮像画像中に映っているそれぞれの指標を検出する処理を行う。本実施形態では、現実空間中には複数の指標が配されているので、当然、撮像画像中には１以上の指標が映っていることになる。従って指標抽出部２０９は、このように撮像画像中に映っている指標を検出する処理を行う。なお、撮像画像から指標を検出するための技術については周知の技術であるので、これについての説明は省略する。
【００３９】
指標優先度設定部２１０は、指標抽出部２０９において検出されたそれぞれの指標に対して優先度を設定する。優先度が高い指標ほど後段の収束演算部２１１で優先的に使用される。
【００４０】
収束演算部２１１は、指標抽出部２０９において検出されたそれぞれの指標と、それぞれの指標について指標優先度設定部２１０で設定された優先度と、を用いて、撮像ユニット２０４の位置姿勢情報を求める（計算する）。
【００４１】
ＣＧコンテンツデータベース２１３には、仮想空間を構成する各仮想物体のデータや、仮想空間の環境情報などが予め登録されている。例えば、仮想物体の形状情報や位置姿勢情報、動作則情報、仮想空間中に配される光源の位置姿勢情報や光源の種類情報などがＣＧコンテンツデータベース２１３に予め登録されている。
【００４２】
ＣＧ描画部２１２は先ず、ＣＧコンテンツデータベース２１３に登録されているデータを用いて仮想空間を構築する。そして構築した仮想空間を、収束演算部２１１において求めた位置姿勢情報が示す位置姿勢を有する視点から見た場合の画像を、仮想空間画像として生成する。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成するための技術については周知ものであるので、これについての説明は省略する。
【００４３】
撮像画像切り出し部２０８は、ＨＭＤ２０１から送出された撮像画像のうち、表示ユニット２１６において表示可能な範囲内（表示対象領域内）の画像を表示画像として切り出し、切り出した表示画像を画像合成部２１４に送出する。
【００４４】
画像合成部２１４は、ＣＧ描画部２１２が生成した仮想空間画像と、撮像画像切り出し部２０８から受けた表示画像とを合成することで上記ＭＲ画像としての合成画像を生成する。なお、ＭＲ画像を得るための仮想空間画像と表示画像との合成方法については従来から様々な技術が提案されており、本実施形態ではどの技術を用いてそれぞれの画像を合成しても良い。
【００４５】
そして画像合成部２１４は、生成した合成画像を、通信路２０３を介してＨＭＤ２０１に送出する。
【００４６】
次に、現実空間中に配される指標について説明する。図５は、現実空間中に配されている指標としてのマーカを示す図である。図５において５０１は撮像画像、５０２はマーカ、５０３はマーカを基準とする座標系（マーカ座標系）、５０４は、マーカ５０２を配したテーブルの輪郭線を示している。
【００４７】
指標抽出部２０９は、このような撮像画像５０１をＨＭＤ２０１から受信すると、撮像画像５０１からマーカ５０２を検出する。そして、マーカ５０２の大きさや形、塗りつぶしのパターンなどの情報から、マーカ５０２の設置位置に関する情報と、マーカ５０２を観察している視点の情報とが生成される。ここでは例として、マーカ５０２の中心部を原点とする座標系５０３を想定しているが、座標系の原点はマーカ５０２上に設定する必要はなく、座標系の原点とマーカ５０２との位置関係が既知であれば、任意の位置に座標系を設定することができる。また、ここでは１つのマーカのみを用いているが、複数のマーカを同時に用いることも可能である。複数のマーカを同時に用いる場合、各マーカの位置関係をあらかじめ定義しておくことによって、それらの位置関係から、マーカを見ている方向を算出することが可能となる。従って、図５に示したような内部の塗りつぶしパターンによって方向まで識別が可能なマーカではなく、例えば、カラーマーカや、ＬＥＤなどの発光素子のような方向性のないマーカを利用することも可能となる。
【００４８】
また、マーカではなく、テーブルの輪郭線５０４のような撮像画像中の特徴点や、撮像画像中の特定の色などを抽出し、それらを用いて位置姿勢情報を生成することもできる。同一種類のマーカを複数個用いたり、数種類のマーカを同時に用いたり、マーカ情報と撮像画像中の特徴点の情報を組み合わせて用いたりすることによって、より高い精度で広範囲の空間における位置姿勢情報を生成することができる。さらに、複数個のマーカや特徴点の位置関係が対応付けられているため、全てのマーカや特徴点が撮像画像内に表示されていなくても、それぞれのマーカや特徴点の位置を推定することも可能である。
【００４９】
もちろん、マーカを用いて視点の位置姿勢情報を求めるための構成についてはこれに限定するものではない。
【００５０】
次に、撮像画像と表示画像との関係について説明する。図６は、撮像画像と表示画像との対応関係を示す図である。図６において６０１は、撮像ユニット２０４において撮像可能な画像領域であり、撮像画像の全体領域に相当する。６０２は画像領域６０１のうち表示ユニット２１６において表示可能な領域、６０３は画像領域６０１のうち表示ユニット２１６において表示不可能な領域を示す。
【００５１】
画像領域６０１は、表示ユニット２１６で表示可能な領域６０２よりも大きくなるように設定されている。本実施形態では図６に示すように、領域６０２の中心位置が画像領域６０１の中心位置と重なるように、撮像光学系２０５、表示光学系２１８のそれぞれの軸が構成されているものとする。これは、撮像画像は撮像光学系２０５のレンズ歪みの影響によって外縁部に近い程歪んでいるため、歪みの少ない中央部を表示するためである。また、領域６０３内は指標の抽出に使用できれば良いので、撮像画像処理部２０７は、通信路２０３を介してＨＭＤ２０１から画像処理装置２０２に撮像画像を送信する際には、この領域６０３内のデータ量を削減するようにしても良い。データ量を削減するための処理には様々なものがあるが、例えば、領域６０３内の各画素については輝度情報のみを残すようにしても良いし、領域６０３内の画素を間引いて解像度を落としても良い。これにより、ＨＭＤ２０１と画像処理装置２０２との間でやり取りするデータの量を減らすことができ、帯域を確保することが出来る。
【００５２】
次に、指標優先度設定部２１０が行う優先度設定処理について説明する。図７は、２種類の優先度設定方法について示す図である。
【００５３】
先ず、図７（ａ）に示した優先度設定方法について説明する。図７（ａ）において７０１ａは撮像画像で、領域７０２ａと領域７０３ａとに分割されている。本実施形態では、画像の中心位置に近い指標ほど高い優先度を設定するので、図７（ａ）の場合、領域７０２ａ内に位置している指標に対する優先度を、領域７０３ａ内に位置している指標に対する優先度よりも高く設定する。具体的には、領域７０２ａ内には指標７０６ａが位置しており、領域７０３ａ内には指標７０８ａが位置しているので、指標７０６ａに対する優先度を、指標７０８ａに対する優先度よりも高く設定する。
【００５４】
次に、図７（ｂ）に示した優先度設定方法について説明する。図７（ｂ）において７０１ｂは撮像画像で、領域７０２ｂ、領域７０３ｂ、領域７０４ｂ、領域７０５ｂに分割されている。本実施形態では、画像の中心位置に近い指標ほど高い優先度を設定する。従って図７（ｂ）の場合、領域７０２ｂ内に位置している指標に対する優先度が最も高く、次に領域７０３ｂ内に位置している指標に対する優先度が高い。そして次に領域７０４ｂ内に位置している指標に対する優先度が高く、領域７０５ｂ内に位置している指標に対する優先度が最も低い。図７（ｂ）の場合、指標７０６ｂに対する優先度が最も高く、次に指標７０７ｂに対する優先度が高く、次に指標７０８ｂに対する優先度が高く、指標７０９ｂに対する優先度が最も低い。
【００５５】
このようにして、撮像画像内のそれぞれの指標に対する優先度を決定する。なお、画像の中心位置に近い指標ほど高い優先度を設定することができるのであれば、優先度の設定方法は図７に示した方法に限定するものではない。
【００５６】
ここで、撮像画像７０１ａ、７０１ｂは、撮像光学系２０５のレンズ歪みの影響によって外縁部に近い程歪んでいる。そのため、画像の中央に近い指標を用いた方が精度の高い位置姿勢情報を生成することができる。画像の中央に近い指標を優先して用いるためには、指標優先度設定部２１０は撮像画像を図７（ａ）や図７（ｂ）に示したように複数の領域に分割し、指標がどの領域内に含まれているのか判断して優先度を設定する。
【００５７】
このようにして各指標について優先度を設定すると、収束演算部２１１は、最も優先度の高い指標を用いて収束演算を行い、位置姿勢情報を生成する。あるいは、優先度に応じて各指標に重み付けを行い、それら複数の指標を用いて位置姿勢情報を生成しても良い。また、指標が複数の領域間で跨っている場合には次のような処理を行えばよい。
【００５８】
例えば指標Ｘが領域Ｐ、領域Ｑ、領域Ｒに跨って位置しており、且つ各領域がこの順でより画像中心位置に近い場合、位置姿勢情報の精度を高くすることを考えるならば、指標Ｘは領域Ｒに属するものとして判断しても良い。もちろん、逆に領域Ｐに属するものとして判断しても良い。また、領域Ｐ、領域Ｑ、領域Ｒのうち、指標Ｘの中心位置が属している領域を、この指標Ｘが属している領域として判断しても良い。
【００５９】
また、前述の通り、撮像画像には外縁部に近い程大きくなる歪みがある。この歪みは信号処理によって補正することができるが、画像の歪みが大きい程、補正時の誤差が大きくなる。表示画像の画質を考えた場合、領域６０２は撮像画像の中央に位置させるのが望ましい。これは位置姿勢情報生成についても同じであり、撮像画像の中央の指標を基にすることが高い精度の位置姿勢情報生成につながる。よって、領域６０２と優先度が高い領域を中央に近い同じ位置で一致させることが望ましい。また、領域６０３のデータ量を減らす場合、領域６０３の画質は損なわれ、位置姿勢情報生成の精度がある程度減少する。この場合においても領域６０２を優先させ、領域６０３の優先度を下げることに意味がある。そのため、領域６０２を優先度が最も高い領域（７０２ａ、７０２ｂ）に設定したり、領域６０２を領域６０３よりも高い優先度に設定し、かつ領域６０２の中でさらに画像中心位置に近いほど高い優先度を設定したりすることが望ましい。また、指標が領域６０２と領域６０３とに跨っている場合は前述したように、領域６０２、領域６０３の何れかの優先度に設定する。
【００６０】
このように撮像画像の画像中央の指標に高い優先度を与えて優先的に用いることで、精度の高い位置姿勢情報の算出が可能となる。
【００６１】
図８は、撮像ユニット２０４、撮像画像処理部２０７による処理のフローチャートである。なお、図８に示したフローチャートに従った処理は、１フレーム分の撮像画像について行う処理であるので、実際には係るフローチャートに従った処理を各フレームの撮像画像について行うことになる。
【００６２】
先ず、ステップＳ８０１では、撮像ユニット２０４は１フレーム分の現実空間の画像を撮像し、撮像した画像を後段の撮像画像処理部２０７に送出する。
【００６３】
次に、ステップＳ８０２では、撮像画像処理部２０７は、撮像ユニット２０４から受けた撮像画像のうち、表示ユニット２１６において表示されない部分（非表示部分）に該当する領域内のデータ量を削減する処理を行うことで、この撮像画像を更新する。
【００６４】
次に、ステップＳ８０３では、撮像画像処理部２０７は、ステップＳ８０２において更新した撮像画像を、通信路２０３を介して画像処理装置２０２に送出する。
【００６５】
そして処理をステップＳ８０１に戻し、次のフレームについて以降の処理を行う。
【００６６】
図９は、表示画像処理部２１５、表示ユニット２１６による処理のフローチャートである。なお、図９に示したフローチャートに従った処理は、１フレーム分の合成画像について行う処理であるので、実際には係るフローチャートに従った処理を各フレームの合成画像について行うことになる。
【００６７】
先ず、ステップＳ９０１では、表示画像処理部２１５は、通信路２０３を介して画像処理装置２０２から送信された合成画像を取得する。
【００６８】
次に、ステップＳ９０２では、表示画像処理部２１５は、ステップＳ９０１において受信した合成画像に対して各種の処理を行う。例えば、合成画像の解像度やフレーム周波数を、表示素子２１７に合せて変換する処理や、合成画像について表示光学系２１８が有する歪みをキャンセルする処理を行い、その後モアレ除去等を行うためにローパスフィルタをかける処理を行う。
【００６９】
次に、ステップＳ９０４では、表示画像処理部２１５は、ステップＳ９０２による画像処理済みの合成画像を、表示ユニット２１６に送出する。これにより、表示ユニット２１６には、表示画像処理部２１５による画像処理済みの合成画像が表示される。
【００７０】
そして処理をステップＳ９０１に戻し、次のフレームについて以降の処理を行う。
【００７１】
図１０は、画像処理装置２０２が行う処理のフローチャートである。なお、図１０に示したフローチャートに従った処理は、１フレーム分の画像について行う処理であるので、実際には係るフローチャートに従った処理を各フレームの画像について行うことになる。
【００７２】
先ず、ステップＳ１００１では、指標抽出部２０９、撮像画像切り出し部２０８は、通信路２０３を介してＨＭＤ２０１から送信された撮像画像を取得する。
【００７３】
次に、ステップＳ１００２では、指標抽出部２０９は、ステップＳ１００１において取得した撮像画像から指標を検出する。
【００７４】
次に、ステップＳ１００３では、指標優先度設定部２１０は、ステップＳ１００２において指標抽出部２０９が抽出したそれぞれの指標の検出位置に基づいて、それぞれの指標に対して優先度を設定する。ステップＳ１００３における処理の詳細については図１１を用いて後述する。
【００７５】
次にステップＳ１００４では、収束演算部２１１は、ステップＳ１００２において指標抽出部２０９が抽出したそれぞれの指標と、ステップＳ１００３においてそれぞれの指標に対して設定した優先度と、を用いて、撮像ユニット２０４の位置姿勢情報を求める。
【００７６】
次に、ステップＳ１００５では、ＣＧ描画部２１２は先ず、ＣＧコンテンツデータベース２１３に登録されているデータを用いて仮想空間を構築する。次に、ＣＧ描画部２１２は、ステップＳ１００４において求めた位置姿勢情報が示す位置姿勢を有する視点から見える仮想空間の画像を生成する。
【００７７】
次に、ステップＳ１００６では、画像合成部２１４は、撮像画像切り出し部２０８が切り出した表示画像と、ステップＳ１００５においてＣＧ描画部２１２が生成した仮想空間の画像と、を合成することで合成画像を生成する。
【００７８】
次に、ステップＳ１００７では、画像合成部２１４は、ステップＳ１００６において生成した合成画像を、通信路２０３を介してＨＭＤ２０１に送出する。
【００７９】
図１１は、上記ステップＳ１００３における処理の詳細を示すフローチャートである。
【００８０】
先ず、ステップＳ１１０１では、指標優先度設定部２１０は、撮像画像を複数の領域に分割する。分割の方法については特に限定するものではなく、図７（ａ）に示したように２つに分割しても良いし、図７（ｂ）に示したように４つに分割しても良い。そして次に、それぞれの分割領域に対して優先度を設定する。これは、画像の中心位置に近い領域ほど高い優先度を設定する。なお、ステップＳ１１０１における処理は、予め行い、それぞれの分割領域を特定する為の情報と、それぞれの分割領域に対する優先度情報とを指標優先度設定部２１０が管理しておくようにしても良い。
【００８１】
次に、ステップＳ１１０２では、指標優先度設定部２１０は、上記ステップＳ１００２で検出されたそれぞれの指標の位置を参照し、それぞれの指標がどの分割領域内に属しているのかを判断する。
【００８２】
次に、ステップＳ１１０３では、指標優先度設定部２１０は、それぞれの指標について、属している分割領域に設定されている優先度を設定する。例えば指標Ｘが分割領域Ｐに属しているとステップＳ１１０２において判断された場合には、ステップＳ１１０３では、分割領域Ｐに対してステップＳ１１０１で設定された優先度を、この指標Ｘに対して設定する。
【００８３】
以上の説明により、本実施形態によれば、撮像画像の一部を表示用の画像とする（撮像画角を表示画角よりも広くする）ことで、表示用の画像には存在しない指標を用いて位置姿勢情報を求めることができる。
【００８４】
また、撮像画像においてより歪みの少ない中央に近い指標を優先的に用いるので、より精度の高い位置姿勢情報を求めることができる。
【００８５】
なお、本実施形態では、撮像画像切り出し部２０８、指標抽出部２０９、指標優先度設定部２１０、収束演算部２１１は何れも画像処理装置２０２が有するものとして説明した。しかし、これに限定するものではなく、ＨＭＤ２０１がこれらの各部を有するように構成しても良い。
【００８６】
［第２の実施形態］
本実施形態の特徴は、撮像から表示までの時間遅れを低減してリアルタイム性を高めることを実現する点にある。第１の実施形態では画像合成部は画像処理装置側に備わっていたが、本実施形態ではこの画像合成部をＨＭＤ側に持たせる。これにより、画像処理装置側で撮像画像を取得するために要していた処理時間を短縮する。
【００８７】
また、本実施形態では、位置姿勢情報の生成に用いる指標の数を限定し、収束演算の処理負荷による遅延を低減する。
【００８８】
さらに本実施形態では、撮像画像の動きに基づいて次の撮像位置をＨＭＤ側で予測し、予測方向の画像を切り出して提示する構成を取ることで、撮像から表示までにかかる遅延時間を隠蔽する。また、頭部の動きに応じて指標の優先度を設定することで、位置姿勢情報の生成に用いる指標が頻繁に切り替わることによる仮想空間画像の描画位置のずれを軽減する点も併せて特徴とする。
【００８９】
図１２は、本実施形態に係るシステムの機能構成例を示すブロック図である。なお、図１２に示した各部のうち、図２に示したものと同じものについては同じ参照番号を付しており、その説明は省略する。即ち、以下の説明では、本実施形態が第１の実施形態と異なる点のみについて説明し、説明しない点については第１の実施形態で説明した技術を用いる。
【００９０】
図１２に示す如く、本実施形態に係るシステムは、ＨＭＤ１２０１と画像処理装置１２０２とで構成されている。
【００９１】
先ず、ＨＭＤ１２０１について説明する。ＨＭＤ１２０１は所謂ビデオシースルー型の頭部装着型表示装置の一例としての表示装置である。本実施形態に係るＨＭＤ１２０１は、複数の撮像画像に基づいて、現フレームにおける撮像画像内の動き量（例えば動きベクトル）を求め、求めた動き量に基づいて、この撮像画像から切り出す表示画像の領域を特定する。そして特定した領域内の画像を表示画像として切り出す。また、本実施形態に係るＨＭＤ１２０１は、求めた動き量に基づいてそれぞれの指標に対する優先度設定を制御すると共に、位置姿勢情報の生成処理を制御する。そしてあとは第１の実施形態と同様に、表示画像と仮想空間画像との合成処理を行い、その結果としての合成画像を表示する。
【００９２】
次に、ＨＭＤ１２０１を構成する各部のうち、第１の実施形態と異なる部分について説明する。
【００９３】
撮像ユニット２０４による撮像画像は、フレームバッファ１２１０、動き検出部１２０７、指標抽出部２０９に送出される。
【００９４】
フレームバッファ１２１０には、撮像ユニット２０４から送出された各フレームの撮像画像が蓄積される。
【００９５】
動き検出部１２０７は、撮像ユニット２０４から撮像画像（現フレーム）を受けると、この現フレームの撮像画像と、フレームバッファ１２１０に蓄積されている過去のフレームの撮像画像とを用いて、現フレームの撮像画像内の動き量を求める。この動き量とは、撮像ユニット２０４の動き量に相当する。なお、複数フレームの画像を用いて、現フレーム内における動き量を求めるための技術については周知の技術であるので、これについての説明は省略する。
【００９６】
動き予測部１２０８は、現フレームの撮像画像から第１の実施形態で説明したように切り出される表示画像の領域を、上記動き量に基づいて移動させた領域を特定する。このように、現フレームの撮像画像内の任意の領域が、将来どこに移動するのかを特定するための処理については周知の技術であるので、これについての説明は省略する。
【００９７】
撮像画像切り出し部１２０９は、現フレームの撮像画像において動き予測部１２０８が特定した領域内の画像を表示画像として切り出す。
【００９８】
指標優先度設定部１２１２は、指標抽出部２０９が抽出したそれぞれの指標に対して優先度を設定する。優先度の設定は基本的には第１の実施形態と同様にして行うのであるが、本実施形態では、動き予測部１２０８による動き量を更に参酌する点が第１の実施形態に係る優先度設定処理と異なる。本実施形態に係る優先度設定処理については図１４を用いて後述する。
【００９９】
収束演算部１２１３は、第１の実施形態と同様の処理を行うことで、撮像ユニット２０４の位置姿勢情報を求めるのであるが、本実施形態では、収束演算の処理負荷による遅延を低減するために、優先度の高い方から特定の指標だけを収束演算に用いる。
【０１００】
位置姿勢情報補正部１２１４は、収束演算部１２１３が求めた位置姿勢情報に基づいて、画像合成時の位置姿勢情報を予測して求める。これにより、仮想空間画像の生成に要する時間に起因して生じる、仮想空間画像と撮像画像との間の位置姿勢のギャップを隠蔽することができる。なお、画像合成時の位置姿勢情報を予測する代わりに、表示時の位置姿勢情報を予測しても良い。その場合、撮像画像に関しては、取得から表示まで若干のタイムラグが生じるが、仮想空間画像に関しては予測が大幅にずれない限りリアルタイム性を保証しているように見せることができる。
【０１０１】
なお、現フレームにおける位置姿勢情報から、将来の任意のフレームにおける位置姿勢情報を予測するためには、例えば、次のような処理を行えばよい。即ち、現時点の位置姿勢情報と、過去の複数フレームの位置姿勢情報群とを用いて周知の線形／非線形予測技術を参酌すれば、任意のフレームにおける位置姿勢情報を求めることができる。
【０１０２】
なお、本実施形態では、この位置姿勢情報補正部１２１４をＨＭＤ１２０１側に備えさせているが、画像処理装置１２０２側に備えさせても良い。また、仮想空間画像の遅れを厭わない場合は、位置姿勢情報補正部１２１４は省略しても良い。
【０１０３】
ＣＧ描画部１２１５は、収束演算部１２１３が求めた位置姿勢情報を直接用いるのではなく、位置姿勢情報補正部１２１４が補正した位置姿勢情報を用いること以外については、第１の実施形態と同様の処理を行う。即ち、ＣＧ描画部１２１５は先ず、ＣＧコンテンツデータベース２１３に登録されているデータを用いて仮想空間を構築する。そして、この構築した仮想空間を、位置姿勢情報補正部１２１４が補正した位置姿勢情報が示す位置姿勢を有する視点から見た画像を、仮想空間画像として生成する。そしてＣＧ描画部１２１５は、この生成した仮想空間画像を、通信路２０３を介してＨＭＤ１２０１に送出する。
【０１０４】
画像合成部２１４は、通信路２０３を介して画像処理装置１２０２から送信された仮想空間画像と、撮像画像切り出し部１２０９が切り出した表示画像との合成を行い、合成画像を生成する。係る合成画像は、表示画像処理部２１５によって画像処理され、画像処理済みの合成画像は表示ユニット２１６において表示される。
【０１０５】
以上の処理によって、撮像から表示までの時間遅れを低減してリアルタイム性を高めることが可能となる。
【０１０６】
次に、撮像画像から表示画像を切り出すための処理について説明する。
【０１０７】
図１３は、撮像画像から表示画像を切り出すための処理について説明する図である。
【０１０８】
図１３（ａ）において１３０１ａは、撮像ユニット２０４が撮像した現フレームの撮像画像であり、１３０２ａは、現フレームの撮像画像１３０１ａにおける表示領域である。一方、図１３（ｂ）において１３０１ｂは、現フレーム以降のある時点におけるフレーム（後続フレーム）の撮像画像である。現フレームから後続フレームまでの間に撮像ユニット２０４の位置姿勢が変化すると、当然ながら撮像画像内のコンテンツも画像内で移動していることになる。係る点は、領域１３０２ａ内のコンテンツと同じものは、撮像画像１３０１ｂでは領域１３０２ｂ内に移動していることで明らかである。ここで１３０３は、撮像画像１３０１ｂにおいて領域１３０２ａと位置的に対応する領域である。
【０１０９】
ここで、後続フレームに基づいて仮想空間画像を生成する処理には時間を要するので、後続フレームの撮像画像内で仮想空間画像と合成すべき領域は、後続フレームの撮像画像から第１の実施形態の如く切り出した領域（領域１３０３）からずれてしまっている。
【０１１０】
本実施形態では係る点を鑑み、動き予測部１２０８は以下のような処理を行う。
【０１１１】
先ず、動き検出部１２０７は、撮像画像１３０１ｂ内の動き量ΔＤを求めるのであるが、係る動き量ΔＤは、領域１３０２ａと領域１３０３との位置ずれ量（位置ずれ方向も含む）であるので、この位置ずれ量を動き量ΔＤとして求める。そして、現フレームと後続フレームとの間の時間をΔＴ、後続フレームから合成時までの時間をΔｔとすると、撮像画像１３０１ｂに基づいて生成される仮想空間画像と合成する、撮像画像１３０１ｂ上の領域Ｒは次のようにして求める。即ち、領域Ｒは、ΔＤの大きさにΔｔ／ΔＴを掛け合わせた量だけ、ΔＤが示す方向とは逆の方向に領域１３０３を移動させた場合に得られる領域となる。この領域Ｒが即ち、領域１３０４となる。
【０１１２】
そして撮像画像切り出し部１２０９は撮像画像１３０１ｂにおいて領域１３０４内の画像を表示画像として切り出し、画像合成部２１４に送出する。
【０１１３】
次に、指標優先度設定部１２１２が行う処理についてより詳細に説明する。
【０１１４】
図１４は、動き量に基づいて優先度設定を行う場合の処理を説明する図である。
【０１１５】
１４０１ａはあるフレーム（フレーム１）における撮像画像であり、１４０１ｂはフレーム１の後のフレーム（フレーム２）における撮像画像である。また、１４０１ｃはフレーム２の後のフレーム（フレーム３）における撮像画像であり、１４０１ｄはフレーム２の後のフレーム（フレーム４）における撮像画像である。
【０１１６】
１４０２ａ、１４０２ｂ、１４０２ｃ、１４０２ｄは何れも表示領域、１４０３ａ、１４０３ｂ、１４０３ｃ、１４０３ｄは何れも非表示領域である。上述の通り、表示領域内の指標に対する優先度は、非表示領域内の指標に対する優先度よりも高い。
【０１１７】
ここで、位置姿勢情報の算出に優先的に用いている指標を他の指標に変更すると、処理時間が一定ではなくなるという問題や、演算時差によって仮想空間画像の描画位置がずれてしまうという問題がある。例えば、ＨＭＤ装着者が動いた場合、第１の実施形態（図７）において説明した優先度設定処理を行うと、指標の優先度が頻繁に変更される場合があり、結果として位置姿勢情報の算出に用いる指標が度々変更される状態になる。この状態を軽減するため、動きが一定値以上ある場合は、現在用いている指標の優先度の変更は行わないようにする。
【０１１８】
例えば、撮像画像１４０１ａにおいて指標１４０４ａに対する優先度は、指標１４０５ａに対する優先度よりも高いので、この場合には、収束演算部１２１３は、指標１４０４ａのみを用いて位置姿勢情報の演算処理を行う。
【０１１９】
次に、撮像画像１４０１ａを撮像した後で装着者の頭部が動き、撮像画像１４０１ｂが撮像されたとする。この場合、撮像画像１４０１ｂでは、指標１４０４ａが表示領域１４０２ｂ内から非表示領域１４０３ｂ内に移動したので、第１の実施形態に係る優先度設定処理によれば、指標１４０４ａの優先度は低い値に更新される。本実施形態では、撮像画像１４０１ｂ内の動き量が閾値以上であれば、この指標１４０４ａの優先度の変更は行わない。また、撮像画像１４０１ｂでは、指標１４０５ｂは非表示領域１４０３ｂから表示領域１４０２ｂ内に移動したので、本実施形態においても、指標１４０５ｂの優先度は高い値に更新される。なお、本実施形態では、位置姿勢情報の算出に用いている指標が指標１４０４ａのみであるので、動き量が閾値以上であれば、この指標１４０４ａの優先度の変更は行わないようにしている。しかし、位置姿勢情報の算出に指標１４０５ａも用いている場合には、動き量が閾値以上であれば、この指標１４０５ａの優先度の変更についても行わないようにする。
【０１２０】
次に、撮像画像１４０１ｂが撮像された後で撮像画像１４０１ｃが撮像されたとする。そして更に、撮像画像１４０１ｂを撮像してから撮像画像１４０１ｃを撮像するまでに装着者の頭部が殆ど動かなかったとする。この場合には、第１の実施形態と同様の処理を行う。この場合、指標１４０４ａについては非表示領域１４０３ｃ内に位置しているので、この指標１４０４ａの優先度を非表示領域１４０３ｃに応じた優先度に変更する。また、指標１４０５ａについては表示領域１４０２ｃ内に位置しているので、この指標１４０５ａの優先度を表示領域１４０２ｃに応じた優先度に変更する。
【０１２１】
また、撮像画像１４０１ｂが撮像された後で装着者の頭部が右側に向き、その後、撮像画像１４０１ｄが撮像されたとする。指標１４０４ａが撮像画像１４０１ｄの端部に極めて近い位置に存在したり、あるいは撮像画像１４０１ｄから外れたりした場合は、指標１４０４ａの優先度を変更対象から外す。この場合は動き方向に近く、動きが続いても画面から外れずに使用し続けることが可能な指標１４０６ｄの優先度を高くするように変更を行う。
【０１２２】
図１５は、ＨＭＤ１２０１において、表示画像を確定すると共に、位置姿勢情報を生成して画像処理装置１２０２に送信する為の処理のフローチャートである。なお、図１５に示したフローチャートに従った処理は、１フレーム分の合成画像を生成するために行う処理であるので、実際には係るフローチャートに従った処理を各フレームについて行うことになる。
【０１２３】
先ず、ステップＳ１５０１では、撮像ユニット２０４は現実空間の画像を撮像し、撮像した画像をフレームバッファ１２１０、動き検出部１２０７、指標抽出部２０９に送出する。
【０１２４】
次に、ステップＳ１５０２では、動き検出部１２０７、動き予測部１２０８により、ステップＳ１５０１において取得した撮像画像から切り出す表示画像を確定させる。ステップＳ１５０２における処理の詳細については図１８を用いて後述する。
【０１２５】
次に、ステップＳ１５０３では、指標抽出部２０９は、撮像ユニット２０４から取得した撮像画像から指標を検出する。なお、ステップＳ１５０２とステップＳ１５０３とは並行して行っても良い。
【０１２６】
次に、ステップＳ１５０４では、指標優先度設定部１２１２は、指標抽出部２０９が抽出したそれぞれの指標に対して優先度を設定する。ステップＳ１５０４における処理の詳細については図１９を用いて後述する。
【０１２７】
次に、ステップＳ１５０５では、収束演算部１２１３は、第１の実施形態と同様の処理を行うことで、撮像ユニット２０４の位置姿勢情報を求めるのであるが、本実施形態では、優先度の高い方から特定の指標だけを収束演算に用いる。
【０１２８】
次に、ステップＳ１５０６では、位置姿勢情報補正部１２１４は、ステップＳ１５０５において収束演算部１２１３が求めた位置姿勢情報を上述のようにして補正する。
【０１２９】
次に、ステップＳ１５０７では、位置姿勢情報補正部１２１４は、ステップＳ１５０６において補正した位置姿勢情報を、通信路２０３を介して画像処理装置１２０２に送信する。
【０１３０】
そして、処理をステップＳ１５０１に戻し、次のフレームについて以降の処理を行う。
【０１３１】
図１６は、ＨＭＤ１２０１において、１フレーム分の合成画像を生成して表示する処理のフローチャートである。なお、図１６に示したフローチャートに従った処理は、１フレーム分の合成画像について行う処理であるので、実際には係るフローチャートに従った処理を各フレームについて行うことになる。
【０１３２】
先ず、ステップＳ１６０１では、画像合成部２１４は、通信路２０３を介して画像処理装置１２０２から送信された仮想空間画像を受信する。
【０１３３】
次に、ステップＳ１６０２では、撮像画像切り出し部１２０９は、上記ステップＳ１５０１において取得した撮像画像から、上記ステップＳ１５０２において動き予測部１２０８によって特定された領域内の画像を表示画像として切り出す。
【０１３４】
次に、ステップＳ１６０３では、画像合成部２１４は、ステップＳ１６０２において撮像画像切り出し部１２０９によって切り出された表示画像と、ステップＳ１６０１において画像処理装置１２０２から受信した仮想空間画像とを合成し、合成画像を生成する。
【０１３５】
次に、ステップＳ１６０４では、表示画像処理部２１５は、ステップＳ１６０３において生成した合成画像に対して、第１の実施形態と同様の画像処理を行う。
【０１３６】
次に、ステップＳ１６０５では、表示ユニット２１６は、ステップＳ１６０４において画像処理済みの合成画像を表示する。
【０１３７】
図１７は、画像処理装置１２０２が行う処理のフローチャートである。なお、図１７に示したフローチャートに従った処理は、１フレーム分の仮想空間画像を生成するための処理であるので、実際には、図１７のフローチャートに従った処理を、各フレームについて行うことになる。
【０１３８】
先ず、ステップＳ１７０１では、ＣＧ描画部１２１５は、通信路２０３を介してＨＭＤ１２０１から受信した位置姿勢情報を受信する。
【０１３９】
次に、ステップＳ１７０２では、ＣＧ描画部１２１５は、第１の実施形態と同様にして、ＣＧコンテンツデータベース２１３に登録されているデータと、ステップＳ１７０１で受信した位置姿勢情報とを用いて、仮想空間画像を生成する。
【０１４０】
次に、ステップＳ１７０３では、ＣＧ描画部１２１５は、ステップＳ１７０２で生成した仮想空間画像を、通信路２０３を介してＨＭＤ１２０１に送信する。
【０１４１】
図１８は、上記ステップＳ１５０２における処理の詳細を示すフローチャートである。  先ず、ステップＳ１８０１では、動き検出部１２０７は、ステップＳ１５０１で取得した現フレームの撮像画像と、フレームバッファ１２１０に蓄積されている、現フレームの直前の撮像画像と、を用いて、現フレームの撮像画像における動き量を求める。
【０１４２】
次に、ステップＳ１８０３では、動き予測部１２０８は、上記処理を行うことで、現フレームの撮像画像において、表示画像を切り出すための領域を特定する。
【０１４３】
図１９は、上記ステップＳ１５０４における処理の詳細を示すフローチャートである。なお、上述の通り、ステップＳ１５０４における処理は、指標優先度設定部１２１２において行われるので、当然の如く、図１９に示した各ステップにおける処理は全て指標優先度設定部１２１２が行う。
【０１４４】
先ず、ステップＳ１９０１では、現在、位置姿勢情報の生成に用いられている（用いる）指標があるのか否か（トラッキングされている指標があるか否か）を判断する。この判断の結果、トラッキングされている指標がある場合には処理をステップＳ１９０２に進め、トラッキングされている指標が無い場合には処理をステップＳ１９０６に進める。
【０１４５】
次に、ステップＳ１９０２では、撮像ユニット２０４の動きにより前段で確認したトラッキング対象となる指標が撮像画像外へ外れた場合を考慮し、撮像画像内にトラッキング対象の指標があるか否かを判断する。ある場合は処理をステップＳ１９０３に進め、ない場合は処理をステップＳ１９０６に進める。
【０１４６】
次に、ステップＳ１９０３では、動き検出部１２０７で求めた動き量が閾値以上であるか否かを判断する。この判断の結果、動き量が閾値以上であれば、処理をステップＳ１９０４に進める。一方、動き量が閾値よりも小さい場合には、処理をステップＳ１９０６に進める。
【０１４７】
ステップＳ１９０４では、トラッキング対象の指標が撮像画像の端部から一定以上離れているか否かを判断することで、さらに動きがあっても撮像画像から外れずに使用し続けることが可能か否かを判断する。可能と判断された場合は処理をステップＳ１９０５に進め、可能ではないと判断された場合は処理をステップＳ１９０７に進める。
【０１４８】
次に、ステップＳ１９０５では、トラッキングされている指標の優先度については変更しないようにする。
【０１４９】
一方、ステップＳ１９０６では、第１の実施形態と同様に、トラッキングされている各指標に対して優先度を設定する。
【０１５０】
一方、ステップＳ１９０７では、動き検出部１２０７求めた動き量が示す撮像ユニット２０４の動き方向への画像の一端に近い指標をトラッキング対象に設定し、優先度を再設定する。
【０１５１】
以上の説明により、本実施形態によれば、撮像から表示までの時間遅れを低減してリアルタイム性を高める構成において、位置姿勢情報の生成に用いる指標が頻繁に切り替わることによる仮想空間画像の描画位置のずれを軽減することができる。
【０１５２】
なお、本実施形態では、動き検出を撮像画像を用いて行う手法で説明してきたが、ジャイロセンサや磁気センサなどの装置に取り付けられた三次元位置姿勢センサを用いたり、併用したりする手法を用いても良い。その場合は、三次元位置姿勢センサをＨＭＤに装着し、このセンサによる動き情報を動き予測部１２０８に送って動き予測を行う。センサ単体で動き予測を行う場合は、動き検出部１２０７とフレームバッファ１２１０は不要となる。
【０１５３】
［第３の実施形態］
本実施形態に係るシステムは、装着者の右目近傍から見える現実空間を撮像する為の撮像ユニットと、左目近傍から見える現実空間を撮像する為の撮像ユニットを有する。ここで、それぞれの撮像ユニットの視界は重なり合わないようにする。即ち、それぞれの撮像ユニットによる撮像画像には重なって同じ風景が写らないようにする。これにより、指標を検出する為の視界をさらに広げることができる。
【０１５４】
図２０は、本実施形態に係るシステムの機能構成例を示すブロック図である。なお、図２０に示した各部において、図１２に示したものと同じものについては同じ参照番号を付している。図２０に示す如く、本実施形態に係るシステムは、画像処理装置１２０２とＨＭＤ２００１とを有する。即ち、本実施形態に係るシステムは、ＨＭＤ２００１のみが第２の実施形態と異なる。従って、以下では、ＨＭＤ２００１について説明する。
【０１５５】
ＨＭＤ２００１は、ＨＭＤ１２０１の構成を下記のように修正したものとなっている。先ず、図１２に示した撮像ユニット２０４、指標抽出部２０９、指標優先度設定部１２１２は、ＨＭＤ２００１では右目用と左目用とに分けられている。図２０において、Ｒが付いた参照番号は、装着者の右目に対しての構成を指し示しており、Ｌが付いた参照番号は、装着者の左目に対しての構成を指し示している。
【０１５６】
更に、ＨＭＤ２００１は、ＨＭＤ１２０１に、撮像画像選択部２０１１、位置姿勢情報格納部２０２１が加わっている。また、収束演算部２０１２の動作については収束演算部１２１３と同じであるが、撮像画像選択部２０１１が選択した方の撮像画像からの指標の情報に基づいて位置姿勢情報を求める点が、第２の実施形態とは異なる。
【０１５７】
なお、撮像画像切り出し部１２０９、ＣＧ描画部１２１５、画像合成部２１４、表示画像処理部２１５、表示ユニット２１６については右目、左目で共有しているが、それぞれの目について設けるようにしても良い。
【０１５８】
以下に、ＨＭＤ２００１の特徴的な構成について説明する。なお、以下において特に説明していない点については第２の実施形態と同じであるものとする。
【０１５９】
撮像ユニット２０４Ｌ、２０４Ｒのそれぞれは、撮像ユニット２０４と同様の処理を行うことで、それぞれの視界内の現実空間画像を撮像することになる。ここで、上述の通り、より広く現実空間を撮像し、少しでも多くの指標を視界内に納めるべく、撮像ユニット２０４Ｌ、２０４Ｒのそれぞれの視界が重複することがないようにそれぞれの撮像ユニット２０４Ｌ、２０４Ｒの光軸を予め調整しておく。
【０１６０】
撮像ユニット２０４Ｌは、撮像した画像を、後段の指標抽出部２０９Ｌに送出する。撮像ユニット２０４Ｒは、撮像した画像を、後段の指標抽出部２０９Ｒ、動き検出部１２０７、フレームバッファ１２１０に送出する。
【０１６１】
指標抽出部２０９Ｒ、２０９Ｌはそれぞれ、撮像ユニット２０４Ｒ，２０４Ｌから受けた撮像画像から、第１の実施形態と同様にして指標を検出する。
【０１６２】
指標優先度設定部１２１２Ｌ、１２１２Ｒはそれぞれ、第２の実施形態と同様にして、それぞれの指標に対して優先度を設定する。
【０１６３】
撮像画像選択部２０１１は、指標抽出部２０９Ｒ，２０９Ｌ及び指標優先度設定部１２１２Ｒ，１２１２Ｌがそれぞれ左右の撮像画像について求めた指標の数（検出結果）や優先度、動き検出部１２０７が求めた動き量に基づいて、次のような判断処理を行う。即ち、右目用の撮像画像（撮像ユニット２０４Ｒが撮像した画像）、左目用の撮像画像（撮像ユニット２０４Ｌが撮像した画像）のうち、収束演算部２０１２が位置姿勢情報を求めるために用いる撮像画像を選択する。なお、この撮像画像選択部２０１１を無くし、収束演算部２０１２が左右両方の撮像画像を用いて位置姿勢情報を算出する構成も考えられるが、遅延の原因となる演算処理のプロセスが増えるのと同時に回路規模も増える。そのため、本実施形態では撮像画像選択部２０１１は必要として考える。
【０１６４】
位置姿勢情報格納部２０２１には、位置姿勢情報補正部１２１４が過去の各フレームにおいて求めたそれぞれの位置姿勢情報が蓄積される。
【０１６５】
本実施形態が第２の実施形態と大きく異なる点は、左右の撮像ユニットでそれぞれ現実空間画像を撮像し、撮像画像選択部２０１１で位置姿勢情報の生成に左右の撮像画像のどちらを用いるかを選択する点である。
【０１６６】
図２１は、左右の撮像画像中における表示領域を説明するための図である。２１０１Ｌは左目用の撮像画像、２１０１Ｒは右目用の撮像画像である。２１０２Ｌは、左目用の撮像画像２１０１Ｌ中の表示領域、２１０２Ｒは、右目用の撮像画像２１０１Ｒ中の表示領域である。
【０１６７】
２１０５Ｌは、撮像画像２１０１Ｌの上端から表示領域２１０２Ｌの上端までの距離を示し、２１０６Ｌは、撮像画像２１０１Ｌの下端から表示領域２１０２Ｌの下端までの距離を示す。２１０３Ｌは、撮像画像２１０１Ｌの左端から表示領域２１０２Ｌの左端までの距離を示し、２１０４Ｌは、撮像画像２１０１Ｌの右端から表示領域２１０２Ｌの右端までの距離を示す。
【０１６８】
２１０５Ｒは、撮像画像２１０１Ｒの上端から表示領域２１０２Ｒの上端までの距離を示し、２１０６Ｒは、撮像画像２１０１Ｒの下端から表示領域２１０２Ｒの下端までの距離を示す。２１０３Ｒは、撮像画像２１０１Ｒの左端から表示領域２１０２Ｒの左端までの距離を示し、２１０４Ｒは、撮像画像２１０１Ｒの右端から表示領域２１０２Ｒの右端までの距離を示す。
【０１６９】
表示画角と撮像画角が等しいビデオシースルー型ＨＭＤでは、装着者が融像できるように左右の撮像画像がある程度の視距離でオーバーラップするように光学系の軸が設計されるのが一般的である。一方、本実施形態では、撮像画像が表示画像よりも大きく、左右の撮像画像で非表示領域をオーバーラップさせる必要が無いため、左右で、撮像画像中の表示領域の位置を異ならせても良い。例えば、図２１に示す如く、距離２１０３Ｌ＞距離２１０３Ｒというように、撮像画像の中の表示領域の位置を左右の撮像画像で異ならせても良い。距離２１０３Ｒ＜距離２１０３Ｌ、距離２１０４Ｌ＜距離２１０４Ｒとすることで、指標を検出することが可能なエリアを左右方向に広くとることができる。また、距離２１０５Ｌ、距離２１０６Ｌについては、例えば、下方向に多くの指標を配置する環境下での使用が想定されるならば、距離２１０５Ｌ＜距離２１０６Ｌとすれば良い。これは、距離２１０５Ｒ、２１０６Ｒについても同じである。
【０１７０】
このように、撮像画像中の表示領域の位置については左右で予め適宜決めておく。
【０１７１】
図２２は、ＨＭＤ２００１において、表示画像を確定すると共に、位置姿勢情報を生成して画像処理装置１２０２に送信する為の処理のフローチャートである。なお、図２２に示したフローチャートに従った処理は、１フレーム分の合成画像を生成するために行う処理であるので、実際には係るフローチャートに従った処理を各フレームについて行うことになる。
【０１７２】
先ず、ステップＳ２２０１では、撮像ユニット２０４Ｌ、２０４Ｒはそれぞれ現実空間の画像を撮像し、撮像した画像をフレームバッファ１２１０、動き検出部１２０７、指標抽出部２０９Ｌ、２０９Ｒに送出する。
【０１７３】
次に、上記ステップＳ１８０１における処理を行うことで、動き量を求める。
【０１７４】
次に、ステップＳ２２０３では、指標抽出部２０９Ｌ，２０９Ｒはそれぞれ、撮像ユニット２０４Ｌ，２０４Ｒから取得した撮像画像から指標を検出する。なお、ステップＳ２２０２とステップＳ２２０３とは並行して行っても良い。
【０１７５】
次に、ステップＳ２２０４では、指標優先度設定部１２１２Ｌ，１２１２Ｒはそれぞれ、指標抽出部２０９Ｌ，２０９Ｒが抽出したそれぞれの指標に対して優先度を設定する。本ステップにおける処理は、上記ステップＳ１５０４における処理を左右の撮像画像に対して行うものである。
【０１７６】
次に、ステップＳ２２０５では、撮像画像選択部２０１１は、左右の何れか１つの撮像画像を選択する処理を行う。ステップＳ２２０５における処理の詳細については、図２５を用いて後述する。
【０１７７】
次に、ステップＳ１８０３では、動き検出部１２０７、動き予測部１２０８により、ステップＳ２２０５で選択した撮像画像について、切り出す表示画像を確定させる。
【０１７８】
次にステップＳ２２０６では、収束演算部２０１２は、撮像画像選択部２０１１が右目用の撮像画像を選択した場合には、右目用の撮像画像から抽出された指標を用いて第２の実施形態と同様の処理を行うことで、撮像ユニット２０４Ｒの位置姿勢情報を求める。一方、収束演算部２０１２は、撮像画像選択部２０１１が左目用の撮像画像を選択した場合には、左目用の撮像画像から抽出された指標を用いて第２の実施形態と同様の処理を行うことで、撮像ユニット２０４Ｌの位置姿勢情報を求める。
【０１７９】
次に、ステップＳ２２０７では、位置姿勢情報補正部１２１４は、ステップＳ２２０６において収束演算部２０１２が求めた位置姿勢情報を上述のようにして補正する。
【０１８０】
次に、ステップＳ２２０８では、位置姿勢情報補正部１２１４は、ステップＳ２２０７において補正した位置姿勢情報を、通信路２０３を介して画像処理装置１２０２に送信する。
【０１８１】
そして、処理をステップＳ２２０１に戻し、次のフレームについて以降の処理を行う。  図２３は、ＨＭＤ装着者に動きがある場合に、位置姿勢情報生成に用いる撮像画像の選択制御を説明する為の図である。
【０１８２】
２３０１Ｌは左目用の撮像画像である。２３０２Ｌは撮像画像２３０１Ｌ内で優先度が高い（領域２３０３Ｌに比べて）領域であり、２３０３Ｌは撮像画像２３０１Ｌ内で優先度が低い（領域２３０２Ｌに比べて）領域である。２３０５Ｌは撮像画像２３０１Ｌ内の表示領域の枠部を示している。２３０４Ｌは撮像画像２３０１Ｌ内に写っている指標で、図２３では、この指標２３０４Ｌは、優先度が高い領域２３０２Ｌ内で且つ表示領域２３０５Ｌ内に位置している。
【０１８３】
一方、２３０１Ｒは右目用の撮像画像である。２３０２Ｒは撮像画像２３０１Ｒ内で優先度が高い（領域２３０３Ｒに比べて）領域であり、２３０３Ｒは撮像画像２３０１Ｒ内で優先度が低い（領域２３０２Ｒに比べて）領域である。２３０５Ｒは撮像画像２３０１Ｒ内の表示領域の枠部を示している。２３０４Ｒは撮像画像２３０１Ｒ内に写っている指標で、図２３では、この指標２３０４Ｒは、優先度が低い領域２３０３Ｒ内で且つ表示領域２３０５Ｒ内に位置している。
【０１８４】
位置姿勢情報の算出に用いる為の左右撮像画像の切り替えは、仮想空間画像の描画位置のずれの発生の原因となるため、なるべく切り替えが起こらないことが望ましい。ＨＭＤ２００１が動く場合、位置姿勢情報の算出に用いる左右どちらかの撮像画像中の指標が撮像画像から外に出やすい位置にあると、継続して同じ撮像画像を用いることができない。そのためＨＭＤ２００１に一定以上の動きがある場合は、撮像画像選択部２０１１は、指標が動き方向に近い方の撮像画像を選択する。
【０１８５】
動き方向が左方向の場合、優先度が高い領域内に指標が位置しているのは撮像画像２３０１Ｌの方であるが、撮像画像の左端（動き方向が左であるため。動き方向が右であれば右端）に指標が近いのは撮像画像２３０１Ｒである。従って、撮像画像選択部２０１１は、撮像画像２３０１Ｒを選択する。逆に動き方向が右方向の場合は、動き方向である右に指標２３０４が近い右側の撮像画像を選択する。
【０１８６】
図２４は、位置姿勢情報の生成に用いる撮像画像の選択制御として別の例を説明するための図である。
【０１８７】
２４０１Ｌは左目用の撮像画像である。２４０２Ｌは撮像画像２４０１Ｌ内で優先度が高い（領域２４０３Ｌに比べて）領域であり、２４０３Ｌは撮像画像２４０１Ｌ内で優先度が低い（領域２４０２Ｌに比べて）領域である。２４０５Ｌは撮像画像２４０１Ｌ内の表示領域の枠部を示している。２４０４Ｌは撮像画像２４０１Ｌ内に写っている指標で、図２４では、この指標２４０４Ｌは、優先度が高い領域２４０２Ｌ内で且つ表示領域２４０５Ｌ内に位置している。
【０１８８】
一方、２４０１Ｒは右目用の撮像画像である。２４０２Ｒは撮像画像２４０１Ｒ内で優先度が高い（領域２４０３Ｒに比べて）領域であり、２４０３Ｒは撮像画像２４０１Ｒ内で優先度が低い（領域２４０２Ｒに比べて）領域である。２４０５Ｒは撮像画像２４０１Ｒ内の表示領域の枠部を示している。２４０４Ｒは撮像画像２４０１Ｒ内に写っている指標で、図２４では、この指標２４０４Ｒは、優先度が低い領域２４０３Ｒ内で且つ表示領域２４０５Ｒ内に位置している。
【０１８９】
前述したように、撮像領域の中央に近い指標を用いた方が精度の高い位置姿勢情報を生成することができるため、より中央に近い指標を有する撮像画像を位置姿勢情報の算出に用いるのが望ましい。そこで、左右の撮像画像の指標２４０４Ｌ、２４０４Ｒの優先度がそれぞれ異なる場合、優先度が高い指標が存在する方の撮像画像を用いる。図２４では上述の通り、指標２４０４Ｌは優先度が高い領域２４０２Ｌ内に位置しており、指標２４０４Ｒは優先度が低い領域２４０３Ｒ内に位置しているので、指標２４０４Ｌを含む撮像画像２４０１Ｌを、位置姿勢情報生成に用いる画像として選択する。
【０１９０】
また、存在する指標の数が多い撮像画像を用いた方が、位置姿勢情報の算出に用いる左右撮像画像の切り替えの頻度を抑えられるため、優先度が高い指標が数多く存在する方の撮像画像を用いても良い。優先度が高い指標が同数の場合は、次に優先度が高い指標の数の多い方の撮像画像を用いる。
【０１９１】
図２５は、上記ステップＳ２２０５における処理の詳細を示すフローチャートである。
【０１９２】
ステップＳ２５０１では、撮像画像選択部２０１１は、指標抽出部２０９Ｒが検出した指標の数、指標抽出部２０９Ｌが検出した指標の数を参照し、何れかの数が１以上であるのか否かをチェックする。即ち、右目用の撮像画像、左目用の撮像画像の少なくとも一方に１以上の指標が映っているのか否かを判断する。係る判断の結果、右目用の撮像画像、左目用の撮像画像の少なくとも一方に１以上の指標が映っている場合には処理をステップＳ２５０３に進め、何れの撮像画像にも指標が映っていない場合には処理をステップＳ２５０２に進める。
【０１９３】
ステップＳ２５０２では、位置姿勢情報格納部２０２１に格納されている位置姿勢情報と、動き予測部１２０８が求めた動き量と、を用いて、位置姿勢情報を生成するよう、収束演算部２０１２，位置姿勢情報補正部１２１４に指示する。
【０１９４】
一方、ステップＳ２５０３では、右目用の撮像画像、左目用の撮像画像の一方のみに１以上の指標が映っているのか否かを判断する。係る判断処理は、指標抽出部２０９Ｒが検出した指標の数、指標抽出部２０９Ｌが検出した指標の数を参照し、一方の数が０、他方の数が１以上であるか否かを判断することで行うことができる。係る判断の結果、一方の撮像画像のみに１以上の指標が映っている場合には処理をステップＳ２５０４に進め、両方の撮像画像内に１以上の指標が映っている場合には、処理をステップＳ２５０７に進める。
【０１９５】
ステップＳ２５０４では、左目用の撮像画像のみに１以上の指標が映っているのか否かを判断する。係る判断処理は、指標抽出部２０９Ｒが検出した指標の数が０、指標抽出部２０９Ｌが検出した指標の数が１以上であるか否かを判断することで行うことができる。係る判断の結果、左目用の撮像画像のみに１以上の指標が映っている場合には処理をステップＳ２５０５に進め、右目用の撮像画像のみに１以上の指標が映っている場合には、処理をステップＳ２５０６に進める。
【０１９６】
ステップＳ２５０５では、位置姿勢情報の生成に用いる撮像画像として、左目用の撮像画像を選択する。
【０１９７】
一方、ステップＳ２５０６では、位置姿勢情報の生成に用いる撮像画像として、右目用の撮像画像を選択する。
【０１９８】
一方、ステップＳ２５０７では、動き予測部１２０８が求めた動き量が閾値以上であるか否かを判断する。係る判断の結果、動き量が閾値以上であれば、処理をステップＳ２５０８に進め、閾値よりも小さければ、処理をステップＳ２５１１に進める。
【０１９９】
ステップＳ２５０８では、現在、位置姿勢情報の生成に用いている方の撮像画像内に、使用が続行できる指標があるか否かを判断する。係る判断処理は上述の通り、現在使用している撮像画像の指標が他方の撮像画像の指標よりも動き検出部１２０７で検出した動き方向の端部に近いか否かを判断することで行う。係る判断処理で、使用が続行できる指標があると判断した場合には、処理をステップＳ２５０９に進め、ないと判断した場合には、処理をステップＳ２５１０に進める。
【０２００】
ステップＳ２５０９では、現在、位置姿勢情報の生成に用いている撮像画像を選択する。
【０２０１】
一方、ステップＳ２５１０では、現在、位置姿勢情報の生成に用いていない方の撮像画像を選択する。
【０２０２】
一方、ステップＳ２５１１では、撮像画像選択部２０１１は、指標抽出部２０９Ｒが検出した指標のうち優先度が高い領域から検出した指標の数ｘと、指標抽出部２０９Ｌが検出した指標のうち優先度が高い領域から検出した指標の数ｙとを比較する。そして、ｙ≧ｘであるのか否かを判断する。ｘ＝ｙの場合は次に優先度の高い領域の指標の数を比較する。これも同数の場合は指標の数に違いがあるまで比較を繰り返す。
【０２０３】
係る判断の結果、ｙ≧ｘである場合には処理をステップＳ２５１２に進め、ｙ＜ｘであれば処理をステップＳ２５１３に進める。
【０２０４】
ステップＳ２５１２では、位置姿勢情報の生成に用いる撮像画像として、左目用の撮像画像を選択する。
【０２０５】
一方、ステップＳ２５１３では、位置姿勢情報の生成に用いる撮像画像として、右目用の撮像画像を選択する。
【０２０６】
以上の説明により、本実施形態によれば、指標を検出することが可能なエリアをさらに広くするので、現実空間に配置する指標の間隔を広くすることができる。
【０２０７】
［第４の実施形態］
本実施形態に係るシステムは、撮像画像内の指標の位置に応じて仮想物体の描画処理を制御することで、仮想物体が表示画像内に出入りする際の違和感を軽減する。係る構成は特に、各指標にそれぞれ異なる仮想物体の座標空間が適用される場合に効果的である。
【０２０８】
なお、本実施形態には、第１乃至３の実施形態の何れのシステムを用いても良い。
【０２０９】
図２６は、各指標（マーカ）にそれぞれ異なる仮想物体が対応づけられており、それぞれの指標の位置に、対応する仮想物体が配されている様子を示す図である。
【０２１０】
２６０１ａ、２６０１ｂ、２６０１ｃは２次元バーコードが記されているマーカである。２６０２ａ、２６０２ｂ、２６０２ｃはそれぞれ、マーカ２６０１ａ、２６０１ｂ、２６０１ｃを基準とする座標系（三次元座標軸）である。２６０３ａ、２６０３ｂ、２６０３ｃはそれぞれ、座標系２６０２ａ、２６０２ｂ、２６０２ｃ内に配された仮想物体である。
【０２１１】
それぞれの座標系２６０２ａ、２６０２ｂ、２６０２ｃは独立しているため、それぞれの仮想物体２６０３ａ、２６０３ｂ、２６０３ｃは、対応するマーカ以外のマーカの影響を受けない。本実施形態ではこのように、それぞれの仮想物体がそれぞれ異なる指標に対応することを前提として説明する。
【０２１２】
図２７は、撮像画像内の指標の位置に配置する仮想物体の描画処理を、係る位置に基づいて制御する処理を説明する為の図である。
【０２１３】
２７０１は撮像画像である。２７０２は撮像画像２７０１内で優先度が高い（領域２７０３に比べて）領域であり、表示領域でもある。２７０３は撮像画像２７０１内で優先度が低い（領域２７０２に比べて）領域である。２７０６は、表示領域内の仮想空間画像を示している。２７０４，２７０５は撮像画像２７０１内に映っている指標で、この位置に仮想物体を配置するので、仮想空間画像２７０６に示す如く、指標２７０４の位置には仮想物体２７０７が配されており、指標２７０５の位置には仮想物体２７０８が配されている。
【０２１４】
第１乃至第３の実施形態で説明してきたように、撮像領域を表示領域よりも広くしても、仮想物体のサイズが大きい場合、撮像領域に指標が出現したり消えたりした途端、これに合わせて仮想物体も急に表示されたり消えたりする現象が発生することがある。この現象は観察者の違和感につながる。本実施形態では、この違和感を軽減するために、撮像画像内の指標の位置に応じて、この指標の位置に配置する仮想物体の描画処理を制御する。以下に、係る処理を、図２７を例として用いて説明する。
【０２１５】
撮像画像２７０１の中で表示領域に近い方から優先度が高い領域２７０２、優先度が低い領域２７０３に分ける。ここでは領域を２つに分けているが、３つ以上の領域に分けても良い。優先度の低い領域２７０３内に位置している指標２７０５に対応する仮想物体２７０８は目立たなくなるような処理で描画をする。例えば、透明度を高くしたり、明るさを低くしたりすることが想定される。一方、優先度が高い領域２７０２内に位置している指標２７０４に対応する仮想物体２７０７は、目立たなくなるような処理を行わないか、目立たなくなる度合いを、仮想物体２７０８よりも低くする。
【０２１６】
仮想物体が表示領域のどこに存在するかによって仮想物体の描画方法を変更するこの処理は、表示領域の外側部分には観察者の注意が向いていないことを想定して行うものである。表示領域に対する仮想物体の相対的なサイズが大きい場合は、指標が表示領域の外側にあっても、表示領域中央に描画される可能性があるため、サイズを考慮して処理の適用を加減する。すなわち、表示領域中央付近に描画される場合は目立たなくなる処理を適用しないか、同一の仮想物体であっても外側へいくに従って目立たなくなる処理を段階的に適用する。
【０２１７】
図２８は、本実施形態に係る仮想物体描画処理のフローチャートである。ここでは、第１の実施形態において、係る仮想物体描画処理を行う場合について説明する。従ってこの場合、図２８に示したフローチャートに従った処理は、上記ステップＳ１００５において実行されることになる。
【０２１８】
ステップＳ２８０３では、それぞれの指標の位置に対応する仮想物体を配置する場合、指標の優先度を参照し、優先度がより低い指標の位置に配する仮想物体ほど、より目立たなくなるような描画方法でもって描画する。即ち、描画の際に優先度に応じて目立つ度合いを制御する以外は、第１の実施形態と同様にして仮想空間画像を生成する。もちろん、上述の通り、優先度が低い指標の位置に配置する仮想物体のサイズが表示領域に比べて大きい場合には、目立つ度合いをあまり下げないようにする。
【０２１９】
以上の説明により、本実施形態によれば、仮想物体が表示領域に出入りする場合の違和感を軽減することが可能である。
【０２２０】
なお、第１乃至第４の実施形態では、ＨＭＤをビデオシースルー型ＨＭＤとして説明してきたが、光学シースルー型ＨＭＤに置き換えても良い。この場合、表示する画像は仮想物体画像となるので、画像合成部は省いても良い。
【０２２１】
［第５の実施形態］
第１乃至３の実施形態ではそれぞれ、図２，１２，２０に示した画像処理装置を構成する各部は全てハードウェアで構成されているものとして説明した。しかし、ＣＧコンテンツデータベース２１３についてはメモリで構成し、それ以外の各部をソフトウェアでもって構成しても良い。この場合、画像処理装置には、係るソフトウェアを実行するためのＣＰＵと、係るメモリとを有するコンピュータを適用することができる。
【０２２２】
図３は、第１乃至３の実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【０２２３】
ＣＰＵ３０１は、ＲＡＭ３０２やＲＯＭ３０３に格納されているコンピュータプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、第１乃至３の実施形態において画像処理装置が行うものとして上述した各処理を実行する。
【０２２４】
ＲＡＭ３０２は、外部記憶装置３０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）３０７を介してＨＭＤから受信した様々なデータを一時的に記憶するためのエリアを有する。更には、ＲＡＭ３０２は、ＣＰＵ３０１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ３０２は、各種のエリアを適宜提供することができる。
【０２２５】
ＲＯＭ３０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。
【０２２６】
操作部３０４は、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ３０１に対して入力することができる。
【０２２７】
表示部３０５は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ３０１による処理結果を画像や文字などでもって表示することができる。
【０２２８】
外部記憶装置３０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置３０６には、ＯＳ（オペレーティングシステム）や、第１乃至３の実施形態において画像処理装置が行うものとして説明した各処理をＣＰＵ３０１に実行させるためのコンピュータプログラムやデータが保存されている。係るコンピュータプログラムには、図２，１２，２０において、ＣＧコンテンツデータベース２１３以外の各部の機能をＣＰＵ３０１に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置３０６には、ＣＧコンテンツデータベース２１３も登録されている。外部記憶装置３０６に保存されているコンピュータプログラムやデータは、ＣＰＵ３０１による制御に従って適宜ＲＡＭ３０２にロードされ、ＣＰＵ３０１による処理対象となる。
【０２２９】
Ｉ／Ｆ３０７は、上記通信路２０３に本コンピュータを接続するためのもので、本コンピュータは、このＩ／Ｆ３０７を介して通信路２０３上のＨＭＤとのデータ通信を行う。
【０２３０】
３０８は、上述の各部を繋ぐバスである。
【０２３１】
次に、第１乃至３の実施形態において説明したＨＭＤには、例えば、図４に示したハードウェア構成例を示すＨＭＤを適用することができる。図４は、第１乃至３の実施形態に係るＨＭＤに適用可能なＨＭＤのハードウェア構成例を示すブロック図である。
【０２３２】
撮像ユニット４０１は、上記撮像ユニット２０４（２０４Ｒ，２０４Ｌ）に対応するものである。
【０２３３】
表示ユニット４０２は、上記表示ユニット２１６に対応するものである。
【０２３４】
ＲＡＭ４０３は、Ｉ／Ｆ４０７を介して画像処理装置から取得したデータを一時的に記憶するためのエリアを有すると共に、上記フレームバッファ１２１０、位置姿勢情報格納部２０２１としても機能する。更にＲＡＭ４０３は、ＣＰＵ４０６が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ４０３は各種のエリアを適宜提供することができる。
【０２３５】
ＲＯＭ４０４には、ＨＭＤの設定データや、図２，１２，２０において、撮像ユニット、表示ユニット、フレームバッファ１２１０、位置姿勢情報格納部２０２１を除く各部の機能をＣＰＵ４０６に実行させるためのコンピュータプログラムが格納されている。
【０２３６】
ＣＰＵ４０６は、ＲＯＭ４０４やＲＡＭ４０３に格納されているコンピュータプログラムやデータを用いてＨＭＤ全体の制御を行うと共に、ＨＭＤが行うものとして第１乃至３の実施形態において説明した上述の各処理を実行する。
【０２３７】
Ｉ／Ｆ４０７は、上記通信路２０３にＨＭＤを接続するためのもので、ＨＭＤは、このＩ／Ｆ４０７を介して通信路２０３上の画像処理装置とのデータ通信を行う。
【０２３８】
４０８は上述の各部を繋ぐ、バスである。
【０２３９】
なお、上記各実施形態は適宜組み合わせて用いても良い。
【０２４０】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコード（コンピュータプログラム）を記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０２４１】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４３】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０２４４】
【図１】本発明の第１の実施形態に係るシステムに適用可能なシステムの外観例を示す図である。
【図２】本発明の第１の実施形態に係るシステムの機能構成例を示すブロック図である。
【図３】第１乃至３の実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図４】第１乃至３の実施形態に係るＨＭＤに適用可能なＨＭＤのハードウェア構成例を示すブロック図である。
【図５】現実空間中に配されている指標としてのマーカを示す図である。
【図６】撮像画像と表示画像との対応関係を示す図である。
【図７】２種類の優先度設定方法について示す図である。
【図８】撮像ユニット２０４、撮像画像処理部２０７による処理のフローチャートである。
【図９】表示画像処理部２１５、表示ユニット２１６による処理のフローチャートである。
【図１０】画像処理装置２０２が行う処理のフローチャートである。
【図１１】ステップＳ１００３における処理の詳細を示すフローチャートである。
【図１２】本発明の第２の実施形態に係るシステムの機能構成例を示すブロック図である。
【図１３】撮像画像から表示画像を切り出すための処理について説明する図である。
【図１４】動き量に基づいて優先度設定を行う場合の処理を説明する図である。
【図１５】ＨＭＤ１２０１において、表示画像を確定すると共に、位置姿勢情報を生成して画像処理装置１２０２に送信する為の処理のフローチャートである。
【図１６】ＨＭＤ１２０１において、１フレーム分の合成画像を生成して表示する処理のフローチャートである。
【図１７】画像処理装置１２０２が行う処理のフローチャートである。
【図１８】ステップＳ１５０２における処理の詳細を示すフローチャートである。
【図１９】ステップＳ１５０４における処理の詳細を示すフローチャートである。
【図２０】本発明の第３の実施形態に係るシステムの機能構成例を示すブロック図である。
【図２１】左右の撮像画像中における表示領域を説明するための図である。
【図２２】ＨＭＤ２００１において、表示画像を確定すると共に、位置姿勢情報を生成して画像処理装置１２０２に送信する為の処理のフローチャートである。
【図２３】ＨＭＤ装着者に動きがある場合に、位置姿勢情報生成に用いる撮像画像の選択制御を説明する為の図である。
【図２４】位置姿勢情報の生成に用いる撮像画像の選択制御として別の例を説明するための図である。
【図２５】ステップＳ２２０５における処理の詳細を示すフローチャートである。
【図２６】各指標（マーカ）にそれぞれ異なる仮想物体が対応づけられており、それぞれの指標の位置に、対応する仮想物体が配されている様子を示す図である。
【図２７】撮像画像内の指標の位置に配置する仮想物体の描画処理を、係る位置に基づいて制御する処理を説明する為の図である。
【図２８】本発明の第４の実施形態に係る仮想物体描画処理のフローチャートである。
【図１】
2010092436.tif 000003
【図２】
2010092436.tif 000004
【図３】
2010092436.tif 000005
【図４】
2010092436.tif 000006
【図５】
2010092436.tif 000007
【図６】
2010092436.tif 000008
【図７】
2010092436.tif 000009
【図８】
2010092436.tif 000010
【図９】
2010092436.tif 000011
【図１０】
2010092436.tif 000012
【図１１】
2010092436.tif 000013
【図１２】
2010092436.tif 000014
【図１３】
2010092436.tif 000015
【図１４】
2010092436.tif 000016
【図１５】
2010092436.tif 000017
【図１６】
2010092436.tif 000018
【図１７】
2010092436.tif 000019
【図１８】
2010092436.tif 000020
【図１９】
2010092436.tif 000021
【図２０】
2010092436.tif 000022
【図２１】
2010092436.tif 000023
【図２２】
2010092436.tif 000024
【図２３】
2010092436.tif 000025
【図２４】
2010092436.tif 000026
【図２５】
2010092436.tif 000027
【図２６】
2010092436.tif 000028
【図２７】
2010092436.tif 000029
【図２８】
2010092436.tif 000030