(57)【要約】【課題】仮想オブジェクト表示において、人物や物体といったものが原因により撮像画像中の特徴となる領域が隠れてしまった場合や、撮像画像の色の変化が少ないため撮像画像から特徴となる領域を検出しづらい環境の場合、仮想オブジェクトの表示を正しく行えない問題がある。【解決手段】仮想オブジェクト表示装置が参照する位置データベースとして、ＧＰＳおよび方向センサを用いたセンサデータベースと、撮影した画像中の特徴点から位置を特定する特徴点データベースとを用意する。特徴点から位置を特定できる場合には特徴点データベースを用い、できない場合にはセンサデータベースを用いて被写体の位置を特定し、その位置に関連付けた仮想オブジェクトを重畳して表示する。【選択図】図６
2015005220.tif 000002
【特許請求の範囲】
【請求項１】
情報表示装置であって、
被写体を撮影して画像データを取得する画像取得手段と、
撮影した画像データに基づく前記情報表示装置の位置を記憶する第１の情報記憶手段と、
位置検知手段により検知した位置を記憶する第２の情報記憶手段と、
前記画像取得手段により取得した画像データおよび前記第１の情報記憶手段に記憶された画像データに基づいて前記情報表示装置の位置を特定できる場合には前記第１の情報記憶手段を参照し、特定できない場合には前記第２の情報記憶手段を参照して前記情報表示装置の位置を特定する位置特定手段と、
前記位置特定手段により特定された位置に応じて、保持されている仮想オブジェクトを前記画像データに重畳して表示する表示手段と
を有することを特徴とする情報表示装置。
【請求項２】
前記画像取得手段により取得した画像データから特徴点を抽出する抽出手段を更に有し、
前記第１の情報記憶手段は、画像データから抽出した前記特徴点の位置と、当該特徴点に関連付けられた前記情報表示装置の位置とを記憶し、
前記位置特定手段は、前記抽出手段により抽出された特徴点および前記第１の情報記憶手段に記憶された特徴点に基づいて前記情報表示装置の位置を特定できる場合には前記第１の情報記憶手段を参照することを特徴とする請求項１に記載の情報表示装置。
【請求項３】
前記位置特定手段により前記第１の情報記憶手段を参照した場合には、前記抽出手段により抽出した特徴点と前記位置特定手段により特定した前記情報表示装置の位置とにより前記第１の情報記憶手段に記憶された位置を更新することを特徴とする請求項２に記載の情報表示装置。
【請求項４】
前記位置特定手段による、前記特徴点および前記第１の情報記憶手段に記憶された特徴点に基づいて前記情報表示装置の位置を特定できるか否かの判定は、前記抽出手段により抽出した特徴点の数に基づいて行うことを特徴とする請求項２又は３に記載の情報表示装置。
【請求項５】
前記位置特定手段は、前記第１の情報記憶手段を参照する場合には、前記抽出手段により抽出した特徴点と、前記第１の情報記憶手段に記憶した特徴点とを対応付け、その対応関係に基づいて前記情報表示装置の移動ベクトルを求め、当該移動ベクトルにより前記情報表示装置の位置を更新することを特徴とする請求項２乃至４のいずれか一項に記載の情報表示装置。
【請求項６】
前記位置特定手段は、前記第１の情報記憶手段を参照する場合には、前記抽出手段により抽出した特徴点と、前記第１の情報記憶手段に記憶した特徴点とを対応付け、その対応関係および前記情報表示装置の位置に基づいて、前記特徴点の３次元座標を算出して前記第１の情報記憶手段に特徴点の情報として記憶することを特徴とする請求項２乃至５のいずれか一項に記載の情報表示装置。
【請求項７】
前記位置特定手段はさらに、前記第２の情報記憶手段をいったん参照した場合には、その後に所定回数連続して前記第２の情報記憶手段を参照し、その後で、前記画像取得手段により取得した画像データおよび前記第１の情報記憶手段に記憶された画像データに基づいて前記情報表示装置の位置を特定できる場合には前記第１の情報記憶手段を参照することを特徴とする請求項２乃至６のいずれか一項に記載の情報表示装置。
【請求項８】
前記位置特定手段は、前記所定回数にわたり取得した画像データから抽出した特徴点の、１つの画像データあたりの数が閾値より大きい場合に、前記第１の情報記憶手段を参照することを特徴とする請求項７に記載の情報表示装置。
【請求項９】
前記情報表示装置の位置は、前記情報表示装置の方向を示す情報を含むことを特徴とする請求項１乃至８のいずれか一項に記載の情報表示装置。
【請求項１０】
前記画像取得手段は、定期的に画像データを取得し、前記位置特定手段による位置の特定及び更新と、前記表示手段による表示は、画像データの取得のつど行われることを特徴とする請求項１乃至９のいずれか一項に記載の情報表示装置。
【請求項１１】
前記位置検知手段は、位置センサ、ジャイロセンサ、加速度センサおよび地磁気センサの少なくともいずれかを含むことを特徴とする請求項１乃至１０のいずれか一項に記載の情報表示装置。
【請求項１２】
情報表示装置により撮影した画像データに基づく前記情報表示装置の位置を記憶する第１の情報記憶手段と、位置検知手段により検知した位置を記憶する第２の情報記憶手段とを有する情報表示装置による情報表示方法であって、
撮像手段により被写体を撮影して画像データを取得する画像取得工程と、
前記画像取得工程により取得した画像データおよび前記第１の情報記憶手段に記憶された画像データに基づいて前記情報表示装置の位置を特定できる場合には前記第１の情報記憶手段を参照し、特定できない場合には前記第２の情報記憶手段を参照して前記情報表示装置の位置を特定する位置特定工程と、
前記位置特定工程により特定された位置に応じて、保持されている仮想オブジェクトを前記画像データに重畳して表示手段により表示する表示工程と
を有することを特徴とする情報表示方法。
【請求項１３】
コンピュータを、
撮影した画像データに基づく前記コンピュータの位置を記憶する第１の情報記憶手段と、
位置検知手段により検知した位置を記憶する第２の情報記憶手段と、
被写体を撮影して画像データを取得する画像取得手段と、
前記画像取得手段により取得した画像データおよび前記第１の情報記憶手段に記憶された画像データに基づいて前記コンピュータの位置を特定できる場合には前記第１の情報記憶手段を参照し、特定できない場合には前記第２の情報記憶手段を参照して前記情報表示装置の位置を特定する位置特定手段と、
前記位置特定手段により特定された位置に応じて、保持されている仮想オブジェクトを前記画像データに重畳して表示する表示手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば拡張現実表示システムなどの情報表示装置及び情報表示方法に関する。
【背景技術】
【０００２】
近年において、ＡＲ（Ａｕｇｕｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：拡張現実）技術を用いたサービスが開発・提供されている。ＡＲは主にカメラ等で撮影された現実空間の画像に対して仮想オブジェクトを重畳表示するものである。ＡＲを提示するデバイスとしては、携帯端末や、ＨＭＤ（Ｈｅａｄ‐ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）等が利用される。このようなＡＲを利用したサービスとして、頓智ドット株式会社が提供する「セカイカメラ」やオランダのＳＰＲＸｍｏｂｉｌｅ社が提供する「Ｌａｙｅｒ」がある（「セカイカメラ」、「Ｌａｙｅｒ」は各社の商標または登録商標である）。これらのサービスでは、ＧＰＳ(Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ)で得られる位置情報を利用し、カメラで撮影している風景に関連付けられた情報が重畳して表示される。また、特定のパターン（マーカ）を認識し、ＡＲ表示するマーカを用いた技術や、撮像画像から特徴点を抽出し特徴点の情報から自己位置を推定することでＡＲ表示を決定するマーカーレス技術も見られる。さらに、このようなマーカや特徴点が隠れることにより、パターンを正しく認識できなかった場合に撮像画像を画像処理することによってパターンを推定し、ＡＲ表示を行う技術がある。例えば、仮想オブジェクトを正しく表示できている時点の現実空間のマーカを含む撮像画像を登録しておき、マーカを正しく検出できなくなった場合に、登録した撮像画像と現在の撮像画像との間における画像の変化を取得し、変化に応じて仮想オブジェクトの表示様態を決定する技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１０３７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
マーカや特徴点といったＡＲを表示するために必要な特徴となるパターンが一部分だけ撮像画像に含まれている場合、画像処理による推定が可能であるが、このようなパターンが人物や物体によって撮像画像から完全に隠れてしまう場合、撮像画像から自己位置を推定することができない。さらに、撮像画像から特徴点を抽出する際にホワイトボードや白い壁など色の変化の少ない物体が撮像画像に含まれていると、特徴点を抽出できず自己位置を推定できない。そのためＡＲ表示を正しく継続して表示できないという問題点があった。
【０００５】
本発明は、上記問題点に鑑みてなされたものであり、何らかの原因により特徴となる領域が隠れたりあるいは抽出できなかった場合においても、ＡＲを表示し続けることが可能な情報表示装置及び情報表示方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、情報表示装置であって、
情報表示装置により撮影した画像データに基づく前記情報表示装置の位置を記憶する第１の情報記憶手段と、
位置検知手段により検知した位置を記憶する第２の情報記憶手段と、
被写体を撮影して画像データを取得する画像取得手段と、
前記画像取得手段により取得した画像データおよび前記第１の情報記憶手段に記憶された画像データに基づいて前記情報表示装置の位置を特定できる場合には前記第１の情報記憶手段を参照し、特定できない場合には前記第２の情報記憶手段を参照して前記情報表示装置の位置を特定する位置特定手段と、
前記位置特定手段により特定された位置に応じて、保持されている仮想オブジェクトを前記画像データに重畳して表示する表示手段とを有することを特徴とする。
【発明の効果】
【０００７】
撮像画像から特徴となる領域が取得できなくなった場合でも、撮影画像に関連付けた仮想オブジェクトを表示し続けることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】仮想オブジェクト表示装置の機能構成を示すブロック図
【図２】仮想オブジェクト表示装置のハードブロック図
【図３】特徴点データベースの図
【図４】センサデータベースの図
【図５】仮想オブジェクトデータベースの図
【図６】実施例１におけるシステム全体のフローチャート
【図７】特徴点データベース更新処理のフローチャート
【図８】センサデータベース更新処理のフローチャート
【図９】（Ａ）３次元座標系における表示装置と仮想オブジェクトの図、（Ｂ）仮想オブジェクトの表示例の図
【図１０】実施形態２におけるシステム全体のフローチャート
【図１１】実施形態２におけるデータベース移行判定処理を示すフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１０】
［実施形態１］
図１は、本実施形態に係る情報表示装置、例えば仮想オブジェクト表示装置０１００の機能構成を示すブロック図である。本実施形態の仮想オブジェクト表示装置０１００は、撮像手段により取得された現実空間の画像から特徴点を検出し、検出した特徴点から自己位置を算出することにより仮想オブジェクトを現実画像に重畳して表示する手段を有する装置である。また、本実施形態の仮想オブジェクト表示装置０１００は別の表示手段として、オブジェクト表示装置の位置情報とセンサにより取得した向き情報を用いて仮想オブジェクトを現実画像に重畳して表示する手段を有する。仮想オブジェクト表示装置は、ハードウェア資源として少なくとも、画像を撮影するカメラと、撮影した情報を処理するプロセッサと、撮影した画像と仮想オブジェクトとを重畳して表示するディスプレイとを有しており、その一例として、携帯端末やＨＭＤなどが挙げられる。仮想オブジェクトは、現実空間の画像に重畳表示することによって、仮想オブジェクト表示装置０１００を閲覧するユーザに対して情報を提供するものである。特徴点は、撮像画像から画像処理によって抽出される点であり、主に撮像画像内の物体の境目や角といった色の濃淡が大きく変化する点が特徴点として抽出される。特徴点の抽出方法についてはＳＩＦＴ（Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）などの技術が広く知られている。仮想オブジェクトを表示するためにマーカを用いた手法もあるが、マーカから特徴点を抽出できるため、本提案では特徴点を用いた手法の一種として説明する。
【００１１】
図１の仮想オブジェクト表示装置０１００の各機能について詳細に説明する。カメラ０１０１は、現実空間の画像を撮影する撮像手段である。撮像画像は画像取得部０１０４に送出する。画像取得部０１０４は、カメラ０１０１により撮影された画像を画像データとして取得する。取得した画像データは、特徴点取得部０１０５に送出する。特徴点取得部０１０５は、撮影した画像データからＳＩＦＴなどの手法により特徴点を抽出し、特徴点を３次元座標に変換する処理を行う部分である。特徴点を３次元座標に変換する処理とは、例えば抽出した特徴点のそれぞれの３次元空間における相対的な位置を決定し、その相対位置と、その相対位置と大域的な位置との関係から、各特徴点の大域的な位置を決定する処理などである。大域的な位置とは、例えば経緯度および標高など、後述の仮想オブジェクト情報が一意に関連付けられた位置である。変換結果は特徴点データベース（すなわち特徴点情報記憶部）０１０９に送出する。センサ０１０２は、装置の方向すなわちカメラ０１０１の方向を検知するセンサを有しており、さらに位置を検知するＧＰＳなどの位置センサを有していてもよい。センサ値取得部０１０６は、センサ０１０２から仮想オブジェクト表示装置０１００の位置や向き情報を取得する。取得した情報は、センサデータベース（すなわちセンサ情報記憶部）０１１０に送出する。参照データベース決定部０１０７は、取得した特徴点の数に応じて特徴点データベース０１０９を参照するか、それともセンサデータベース０１１０を参照するかを決定する。参照データベース決定部０１０７はまた、参照先のデータベースの決定後、参照するデータベースから得られた撮影対象物の位置情報を仮想オブジェクト表示決定部０１０８に送出する。仮想オブジェクト表示決定部０１０８は、仮想オブジェクトデータベース０１１１を参照し、撮影対象物の位置情報に応じた仮想オブジェクトを表示部０１０３に重畳表示する。なお特徴点データベース０１０９を第１の情報記憶部、センサデータベース０１１０を第２の情報記憶部とよぶこともある。また撮影対象物の位置情報は、特徴点データベース０１０９を参照した場合にはその特徴点から特定することもできるが。センサデータベース０１１０を参照した場合には、仮想オブジェクト表示装置１００の位置とカメラの方向とから撮影対象物の位置特定、少なくとも撮影範囲の特定を行うことができる。
【００１２】
図２は、仮想オブジェクト表示装置０１００のハードウェアブロック図である。仮想オブジェクト表示装置０１００は、ディスプレイ０２０１、カメラ０１０１、ＣＰＵ０２０２、センサ０１０２、ネットワークインタフェース０２０３、バッテリ０２０４、フラッシュメモリ０２０５、メインメモリ０２０６、グラフィックコントローラ０２０７、ＨＤＤ０２０８を有する。各要素はシステムバス０２０９で接続される。フラッシュメモリ０２０５にはブートローダプログラム及び表示装置制御プログラムが格納されている。ブートローダプログラムはコールドスタート時などにシステムプログラムをメモリにロードするためのプログラムであるが、本発明との関わりは薄いため詳しい説明は割愛する。メインメモリ０２０６は揮発性メモリであり、高速アクセスが可能であるので、フラッシュメモリ０２０５に記憶されている情報や一時的に使用する情報はここに格納される。仮想オブジェクト表示装置０１００の電源投入時には、ＣＰＵ０２０２がブートローダプログラムを読み出して実行し、フラッシュメモリ０２０５に格納されている表示装置制御プログラムを取り出し、メインメモリ０２０６に格納する。そして、ＣＰＵ０２０２がメインメモリ０２０６に格納されている表示装置制御プログラムを実行し、仮想オブジェクト表示装置０１００の備える各機能を実行する。仮想オブジェクト表示装置０１００はユーザに情報を提示する際にはディスプレイ０２０１に情報を表示する。グラフィックコントローラ０２０７はディスプレイ０２０１への表示を制御する。カメラ０１０１は、撮像画像をデジタル画像データに変換する。バッテリ０２０４は表示装置全体に電力を供給する。ネットワークインタフェース０２０３は、接続している機器間で情報の授受を行う。ＨＤＤ０２０８は、情報の記憶や一時的な情報を格納する。
【００１３】
図３は、撮像画像から抽出した特徴点の位置を保持する特徴点データベース０１０９である。特徴点データベース０１０９は、ＨＤＤ０２０８に保持される。図３に示すように、特徴点データベース０１０９は、特徴点の３次元座標位置３０１と特徴点から算出した仮想オブジェクト表示装置０１００の位置情報３０２とを保持する。ｋ番目に取得された特徴点の位置は（ｐkx，ｐky，ｐkz）、位置情報は（Ｐx，Ｐy，Ｐz，Ｐθ）として保持される。特徴点データベース０１０９の更新処理については図７に示している。
【００１４】
図４は、仮想オブジェクト表示装置０１００の位置情報と向き情報とを保持するセンサデータベース０１１０である。センサデータベース０１１０は、ＨＤＤ０２０８に保持される。仮想オブジェクト表示装置０１００の位置情報は、ＧＰＳなどの位置検知ユニットで取得することができる。向きは、仮想オブジェクト表示装置０１００のセンサ０１０２から取得できる。センサ０１０２は、例えば加速度センサや地磁気センサを含み、これらのセンサから取得される加速度や地磁気の方向に関する情報から表示装置の向きを算出する。なおセンサデータベース０１１０の位置情報４０１は位置（Ｓx，Ｓy，Ｓz）に加えて向き情報Ｓθを含むものとし、（Ｓx，Ｓy，Ｓz，Ｓθ）として保持される。センサデータベース０１１０の更新処理については図８に示している。
【００１５】
図５は、表示する仮想オブジェクトに関する情報を保持する仮想オブジェクトデータベース０１１１である。仮想オブジェクトデータベース０１１１は、ＨＤＤ０２０８に保持される。図５に示すように、仮想オブジェクトデータベースは仮想オブジェクトのドキュメント名と当該ドキュメントの表示位置（ｄkx，ｄky，ｄkz）とを保持する仮想オブジェクト情報５０１と、後述する更新処理後の仮想オブジェクト表示装置０１００の位置情報５０２とを含む。仮想オブジェクト情報に関しては、予め表示装置内部に保存しておいてよい。また、仮想オブジェクト表示システム実行中の任意のタイミングで追加・削除してもよい。
【００１６】
＜仮想オブジェクト表示処理＞
図６は、本実施形態のシステム全体の処理を示すフローチャートである。Ｓ０６００で、ＨＤＤ０２０８に保持された特徴点データベース０１０９（図３）の更新処理を行う。処理として、撮像画像から特徴点を抽出し、特徴点を３次元座標に変換し、結果を特徴点データベース０１０９に格納する。Ｓ０６０１で、センサデータベース０１１０（図４）の更新処理を行う。処理として、仮想オブジェクト表示装置０１００のセンサ０１０２から取得した値から仮想オブジェクト表示装置０１００の位置と向きとを計算し、センサデータベース０１１０を更新する。Ｓ０６０２で、抽出された特徴点が閾値より多いか判定する。ただしこれは特徴点全てが、直前に抽出した特徴点と対応付けできることを前提している。対応付けができない場合もあり得ることを考慮すれば、図７で詳述するＳ０６００の処理において対応付けができた特徴点の数をＳ０６０２における判定の対象としてもよい。閾値は、たとえば位置決定のために８点アルゴリズム（後述）を用いる場合には、７とし、特徴点が８以上であるかを判定する。抽出された特徴点の数が閾値よりも多い場合、特徴点データベース０１０９（図３）を参照して仮想オブジェクトデータベース０１１１（図５）の位置情報５０２を更新する（Ｓ０６０３）。そうでない場合、センサデータベース０１１０（図４）を参照して仮想オブジェクトデータベース０１１１の位置情報５０２を更新する（Ｓ０６０４）。位置情報５０２の更新は、ステップＳ０６０３では以下の式（１）で示した４式を、ステップＳ０６０４では式（２）で示した４式を用いてそれぞれ行う。
Ｄx＝ｋp・Ｐx，
Ｄy＝ｋp・Ｐy，
Ｄz＝ｋp・Ｐz，
Ｄθ＝Ｐθ        ...  （１）
Ｄx＝ｋs・Ｓx，
Ｄy＝ｋs・Ｓy，
Ｄz＝ｋs・Ｓz，
Ｄθ＝Ｓθ        ...  （２）
【００１７】
ここで係数ｋpは特徴点の座標系から仮想オブジェクトの表示座標系に変換するための定数である。また係数ｋsはセンサで得られた座標系から仮想オブジェクトの表示座標系に変換するための定数である。これらの値は予め設定しておく。
【００１８】
Ｓ０６０５で、更新した仮想オブジェクトデータベース０１１１を基に、位置情報５０２により特定された被写体の位置に該当する仮想オブジェクトを、現在表示している画面に重畳して表示するＡＲ表示処理を行う。例えば位置情報５０２により特定されるカメラの撮影位置と撮影方向とから撮影対象の範囲が特定される。その範囲に含まれる仮想オブジェクトの位置を仮想オブジェクト情報５０１から検索し、該当する仮想オブジェクトデータベース０１１１内の仮想オブジェクト情報５０１に記述されたファイル名を仮想オブジェクト表示座標系に配置する。仮想オブジェクトデータベース０１１１内の位置情報を用いてレンダリングすることで、表示部（０１０３）に重畳表示される。
【００１９】
このように、特徴点データベース０１０９とセンサデータベース０１１０という２つのデータベースを常に更新することで、特徴点が取得できなくなった場合やＧＰＳからの位置が取得できない場合など、一方のデータベースで特定される位置情報が利用できない場合あるいは信頼できない場合でも、別のデータベースを参照することで仮想オブジェクトの表示をし続けることができ、スムーズにＡＲ表示方法を切替えることができる。
【００２０】
＜特徴点データベースの更新処理＞
図７は、特徴点データベース０１０９の更新処理（図６のＳ０６００）を示すフローチャートである。Ｓ０７００で、仮想オブジェクト表示装置０１００に内蔵するカメラ０１０１から撮像画像を画像取得部０１０４にて取得する。Ｓ０７０１で、取得した撮像画像から特徴点を抽出する。Ｓ０７０２で、現在の撮像画像で抽出された特徴点と前回登録された撮像画像で抽出された特徴点とを対応付ける処理を行う。対応する特徴点を求める方法の一例として、各特徴点周辺のピクセル値の差分の値が最小となる点を対応した特徴点として判定する方法がある。あるいは各特徴点周辺のピクセル間の相関演算をおこなって相関値のピークで判定する方法などもある。
【００２１】
Ｓ０７０３で、仮想オブジェクト表示装置０１００の位置を算出する。表示装置の位置を求める手法として、８点アルゴリズムと呼ばれる手法がある。８点アルゴリズムは撮像画像上の特徴点８点を観測し、前回登録された撮像画像との特徴点の対応関係から表示装置の運動パラメータあるいは移動ベクトルを求める手法である。したがってこの手法であれば、対応付けできた特徴点が８以上あれば、算出した運動パラメータを用いて、現在の表示装置の位置と向き情報とを運動パラメータに従って更新する。
【００２２】
Ｓ０７０４で、抽出された特徴点を３次元座標に変換する処理を行う。Ｓ０７０２において算出した視差画像の対応点に対して三角測量の原理を用いることで各特徴点の距離情報を求めることができる。各特徴点の方向は画像から特定できるので、各特徴点の位置は表示装置の位置を原点とする極座標で示すことができ、これを大局的な３次元の直交座標系、たとえば経緯度および標高に変換することで特徴点を３次元座標に変換できる。Ｓ０７０５で、特徴点データベース０１０９の更新処理を行う。更新処理として、Ｓ０７０３とＳ０７０４で算出した値でデータベースを更新する。すなわち書き換える。Ｓ０７０６で、撮像画像を前回の画像としてＨＤＤ０２０８に保持しておく。保持した画像は次のフレームの処理で用いる。
【００２３】
なおＳ０７０２で所定数の特徴点の対応付けができなかった場合、あるいは、位置情報３０２に有効な位置情報が記録されていない場合には、たとえばＳ０７０３における表示装置の位置情報３０２の更新をセンサで検知したカメラの撮影方向およびＧＰＳで検知した位置情報を用いて行うことで、Ｓ０７０４の特徴点の３次元座標化も可能である。
【００２４】
＜センサデータベースの更新処理＞
図８は、センサデータベース０１１０の更新処理（図６のＳ０６０１）を示すフローチャートである。Ｓ０８００で、仮想オブジェクト表示装置０１００の位置を算出する。仮想オブジェクト表示装置０１００の位置情報は、ＧＰＳなどを用いることで取得できる。Ｓ０８０１で、仮想オブジェクト表示装置０１００の向きを算出する。算出は、表示装置に内蔵するセンサ０１０２からセンサ値取得部０１０６でセンサ値を取得することで実現する。仮想オブジェクト表示装置０１００として、加速度センサや地磁気センサ、ジャイロセンサを用いて取得できる。これらのセンサから取得される加速度や地磁気の方向に関する情報から表示装置の向きをセンサ値取得部０１０６において算出する。Ｓ０８０２で、センサ値取得部０１０６で取得した値を用いてセンサデータベース０１１０の更新処理を行う。
【００２５】
図９（Ａ）は、３次元空間における仮想オブジェクト表示装置０１００と仮想オブジェクトの配置を示した図である。ユーザが仮想オブジェクト表示装置０１００を用いて仮想オブジェクトを閲覧している図を示している。仮想オブジェクト０９０１の位置は、仮想オブジェクトデータベースにおける仮想オブジェクト情報、すなわち位置（ｄx，ｄy，ｄz）及び当該位置に関連付けたファイルを用いる。ユーザが所有する仮想オブジェクト表示装置０１００の位置は、仮想オブジェクトデータベース０１１１の変換後の位置情報（Ｄx，Ｄy，Ｄz，Ｄθ）を用いる。
【００２６】
図９（Ｂ）は、仮想オブジェクトを撮像画像に重畳表示した場合を示した図である。ユーザは仮想オブジェクト表示装置０１００の表示部０１０３において、撮像画像に重畳表示された仮想オブジェクト０９０１を閲覧することができる。
【００２７】
本実施形態によれば、図６の手順はフレームが取得されるごとに実行される。たとえば動画を実時間で表示している場合には一定時間おきに定期的にフレームが取得されるため、図６の手順もフレームが取得されるごとに実行される。たとえば毎秒３０フレームの画像がカメラから取得されるのであれば、図６の手順も毎秒３０回実行される。その場合３０分の１秒間でのフレーム内のオブジェクトの移動、すなわち特徴点の移動も小さな距離であると考えられるから、画像の連続性が保持される限り、特徴点データベースを用いた仮想オブジェクトの表示を行うことができる。ところが新たなシーンの撮影を開始したときや、障害物などで突然シーンが変化したときなどには、特徴点の対応付けが困難になると考えられ、その場合にはセンサデータベースを用いた仮想オブジェクトの表示が行われる。
【００２８】
このように本実施形態により、撮像画像内の特徴となる領域が人物や物体によって隠れてしまう場合であっても、表示方式を切替えることによって仮想オブジェクトを表示し続けることが可能となる。さらに、色の変化の少ない撮像画像のように特徴となる領域を検出しづらい環境であっても、仮想オブジェクトを表示し続けることが可能となる。また、複数の仮想オブジェクト表示方式を処理することによって、別の表示方式に切替える必要が生じた場合でも、スムーズに移行することができる。
【００２９】
［実施形態２］
撮像画像から特徴点を抽出するが、撮影する環境によっては抽出される特徴点が閾値付近の数しか取得できない場合がある。このような場合、特徴点を用いた仮想オブジェクト表示とセンサを用いた仮想オブジェクトの表示方式の切り替えが頻繁に起こる可能性がある。実施形態２では、２つの表示手法が頻繁に切り替わらないような処理の一例について示す。
【００３０】
図１０は、実施例２におけるシステム全体の処理のフローチャートである。Ｓ１０００で、特徴点データベース更新処理を行う。処理は、実施形態１におけるＳ０６００と同様である。Ｓ１００１で、センサデータベース更新処理を行う。処理は、実施形態１におけるＳ０６０１と同様である。Ｓ１００２で、変数ＦｒａｍｅＣｏｕｎｔが０以上か判定する。変数ＦｒａｍｅＣｏｕｎｔは、データベース移行判定（Ｓ１００３）を行った回数を保持するものであり、データベース移行判定（Ｓ１００３）の処理で使用する。初期値は０より小さい値、例えば−１である。変数ＦｒａｍｅＣｏｕｎｔが０以上であるとＳ１００３に分岐する。データベース移行判定（Ｓ１００３）は、図１１で詳細に説明する。一方変数ＦｒａｍｅＣｏｕｎｔが０より小さいとＳ１００４に分岐して、Ｓ１００４で、特徴点の数が閾値より大きいか判定する。閾値は実施形態１と同じ値で良い。特徴点の数が閾値以下の場合、センサデータベース０１１０を参照して仮想オブジェクトデータベース０１１１を更新する（Ｓ１００９）。特徴点の数が閾値より大きい場合、Ｓ１００５で、前回のＡＲ表示処理でセンサデータベース０１１０を使用していたか判定する。前回の処理でセンサデータベース０１１０を使用していない場合、特徴点データベース０１０９で仮想オブジェクトデータベース０１１１を更新する（Ｓ１００８）。センサデータベース０１１０を使用していた場合、変数ＦｒａｍｅＣｏｕｎｔに所定の値例えば３０を代入し（Ｓ１００６）、センサデータベース０１１０を参照して仮想オブジェクトデータベース０１１１を更新する（Ｓ１００７）。
【００３１】
すなわち、センサデータベース０１１０から特徴点データベース０１０９に移行する場合、すぐに移行せず、Ｓ１００６で設定したＦｒａｍｅＣｏｕｎｔ分（ただし図１０ではＳ１００６でもセンサデータベースを用いるため、Ｓ１００６で設定したＦｒａｍｅＣｏｕｎｔ＋１となる）だけ連続したフレームでセンサデータベースを用いて仮想オブジェクトデータベースの位置情報を更新する。その後に、特徴点の数を用いてデータベース移行判定を行う。本実施形態では、一例としてＦｒａｍｅＣｏｕｎｔに３０を代入しているが、変更可能であり、この限りではない。Ｓ１００７、Ｓ１００８、Ｓ１００９は、実施形態１のＳ０６０３、Ｓ０６０４と同様である。Ｓ１０１０で、ＡＲ表示処理を行う。
【００３２】
図１１は、実施形態２におけるデータベース移行判定処理（Ｓ１００３）を示すフローチャートである。Ｓ１１００で、ＦｒａｍｅＣｏｕｎｔの値を判定する。ＦｒａｍｅＣｏｕｎｔが０より大きい場合、撮像画像の特徴点の数を特徴点総数に加え（Ｓ１１０５）、センサデータベース０１１０を参照して仮想オブジェクトデータベース０１１１を更新し（Ｓ１１０６）、ＦｒａｍｅＣｏｕｎｔの値を１減じて更新する（Ｓ１１０７）。ＦｒａｍｅＣｏｕｎｔが０になるまで処理が続くため、特徴点総数はＦｒａｍｅＣｏｕｎｔ分の撮像画像における特徴点の総数となる。ＦｒａｍｅＣｏｕｎｔが０以下の場合、移行判定を行う。移行判定では、特徴点総数を、Ｓ１００６でＦｒａｍｅＣｏｕｎｔにセットした数、すなわちＳ１００３のデータベース移行判定を行った回数で割り、その商の値と所定の閾値とを比較する（Ｓ１１０１）。閾値より大きい場合、特徴点データベース０１０９で仮想オブジェクトデータベース０１１１を更新し（Ｓ１１０２）、そうでない場合、センサデータベース０１１０を参照して仮想オブジェクトデータベース０１１１を更新する（Ｓ１１０３）。ここでＳ１１０１の閾値は、本実施形態の趣旨からいって、Ｓ１００４の閾値と同じ値か、あるいはその値よりも大きい値が用いられる。またＳ１１０３では、Ｓ１００５における判定のために、センサデータベースを使用した旨の情報を記録し、Ｓ１１０２ではセンサデータベースを使用していない旨の情報を記録する。最後にＦｒａｍｅＣｏｕｎｔを初期値たとえば−１に更新し（Ｓ１１０４）、処理を終了する。
【００３３】
本実施形態により、いったんセンサデータベースを参照して仮想オブジェクトデータベースの位置情報を更新すると、ＦｒａｍｅＣｏｕｎｔにセットした所定回数連続して（すなわちセットしたフレーム数続けて）センサデータベースを参照する。そしてその間に抽出した１フレームあたりの平均の特徴点数が特徴点データベースを用いるのに十分な数であるかをその後改めて判定する。そして十分な数の特徴点が抽出できていると推定できる場合に、特徴点データベースを参照した位置情報の更新に移行する。これにより、検出される特徴点の数が閾値付近を遷移する際の仮想オブジェクト表示方法の頻繁な切り替えを抑えることができる。
【００３４】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015005220.tif 000003
【図２】
2015005220.tif 000004
【図３】
2015005220.tif 000005
【図４】
2015005220.tif 000006
【図５】
2015005220.tif 000007
【図６】
2015005220.tif 000008
【図７】
2015005220.tif 000009
【図８】
2015005220.tif 000010
【図９】
2015005220.tif 000011
【図１０】
2015005220.tif 000012
【図１１】
2015005220.tif 000013