(57)【特許請求の範囲】
【請求項１】
カメラと、ディスプレイと、前記カメラによってキャプチャされたフレームをバッファするフレームバッファと、前記ディスプレイにオブジェクトを描画する描画制御手段とを有する情報装置において、
バックバッファを備えた前記描画制御手段から、フロントバッファを備えた前記ディスプレイへ、表示レートの周期タイミングで垂直同期させて転送するものであり、
前記描画制御手段からフレーム取得命令が発生した時刻ｔ1に、前記フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0に撮影されたフレームに対して、現カメラ姿勢を算出する現カメラ姿勢算出手段と、
時刻ｔ１後の姿勢予測遅延時間Δｔ2を取得し、予測カメラ姿勢の計算を開始してから次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3を、予測カメラ姿勢の算出可能時間以上であって且つ前記ディスプレイのリフレッシュレートの逆数の定数倍（≧１）に設定し、時刻ｔ0のフレームに対する現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する予測カメラ姿勢算出手段と、
前記予測カメラ姿勢によって前記オブジェクトを射影変換した予測オブジェクトを、前記描画制御手段へ出力する予測オブジェクト生成手段と
を有することを特徴とする情報装置。
【請求項２】
カメラ及びディスプレイを有する情報装置に搭載されたコンピュータを機能させるプログラムであって、前記カメラによってキャプチャされたフレームをバッファするフレームバッファと、前記ディスプレイにオブジェクトを描画する描画制御手段として機能させるプログラムにおいて、
バックバッファを備えた前記描画制御手段から、フロントバッファを備えた前記ディスプレイへ、表示レートの周期タイミングで垂直同期させて転送するものであり、
前記描画制御手段からフレーム取得命令が発生した時刻ｔ1に、前記フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0に撮影されたフレームに対して、現カメラ姿勢を算出する現カメラ姿勢算出手段と、
時刻ｔ１後の姿勢予測遅延時間Δｔ2を取得し、予測カメラ姿勢の計算を開始してから次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3を、予測カメラ姿勢の算出可能時間以上であって且つ前記ディスプレイのリフレッシュレートの逆数の定数倍（≧１）に設定し、時刻ｔ0のフレームに対する現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する予測カメラ姿勢算出手段と、
前記予測カメラ姿勢によって前記オブジェクトを射影変換した予測オブジェクトを、前記描画制御手段へ出力する予測オブジェクト生成手段と
してコンピュータを機能させることを特徴とするプログラム。
【請求項３】
カメラと、ディスプレイと、前記カメラによってキャプチャされたフレームをバッファするフレームバッファと、前記ディスプレイにオブジェクトを描画する描画制御部とを有する情報装置の描画制御方法において、
前記情報装置は、
バックバッファを備えた前記描画制御部から、フロントバッファを備えた前記ディスプレイへ、表示レートの周期タイミングで垂直同期させて転送するものであり、
前記描画制御部からフレーム取得命令が発生した時刻ｔ1に、前記フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0に撮影されたフレームに対して、現カメラ姿勢を算出する第１のステップと、
時刻ｔ１後の姿勢予測遅延時間Δｔ2を取得し、予測カメラ姿勢の計算を開始してから次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3を、予測カメラ姿勢の算出可能時間以上であって且つ前記ディスプレイのリフレッシュレートの逆数の定数倍（≧１）に設定し、時刻ｔ0のフレームに対する現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する第２のステップと、
前記予測カメラ姿勢によって前記オブジェクトを射影変換した予測オブジェクトを、前記描画制御部へ出力する第３ステップと
を実行することを特徴とする情報装置の描画制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＲ(Augmented Reality：仮想現実感）オブジェクトを、ディスプレイに描画する技術に関する。
【背景技術】
【０００２】
ＡＲは、現実空間の映像に、文字やＣＧ(Computer Graphics)のような仮想的なオブジェクトを重畳的に表示する技術である。具体的には、現実空間に設定された座標系に対するカメラ姿勢を推定する技術を用いる。カメラ姿勢の検知精度が不十分な場合、ＡＲオブジェクト自体が現実空間から離れて表示されるような、画像破綻が生じる。例えば、現実に映る机の上にＣＧキャラクタが載ったように表示しようとする際に、そのＣＧキャラクタが机の上から浮いたように見える場合がある。
【０００３】
ＡＲアプリケーションを実行する情報装置は、現実空間のプレビュー画像を撮影するカメラと、少なくともオブジェクトを表示するディスプレイとを要する。情報装置としては、例えば頭部に搭載するＨＭＤ（ヘッド・マウント・ディスプレイ）であってもよい。ＨＭＤは、ユーザの視線方向を撮影するカメラモジュールと、ユーザの視線の前に投影されるディスプレイを有する。また、カメラモジュールとディスプレイとを備えたスマートフォンやタブレットのような端末であってもよい。勿論、外部に接続された市販のＷｅｂカメラや固定型ディスプレイを用いる装置であってもよい。
【０００４】
ここで、ＡＲアプリケーションを実行する情報装置によれば、以下の２種類のフレームワークがある。
「ビデオシースルー型」：重畳対象がカメラによって撮影されたプレビュー画像
「光学式シースルー型」：重畳対象が実空間そのもの
【０００５】
「ビデオシースルー型」によれば、カメラのプレビュー画像が、重畳的に表示するオブジェクトの背景画像として用いられる。そのために、背景画像とオブジェクトとの位置合わせが必要となる。これは、一般に、ユーザの視界を完全に覆う没入型ＨＭＤ(Head Mounted Display)や、カメラとディスプレイとが表裏に配置されたスマートフォンやタブレットに適する。
「光学式シースルー型」によれば、装着者がＨＭＤスクリーンを通して観察する実空間に、オブジェクトのみを重畳的に表示する。カメラのプレビュー画像は、カメラ姿勢の算出のみに用いられる。算出されたカメラ姿勢を用いて、オブジェクトのみが、実空間の位置に合わせて表示される。これは、一般に、ユーザの視界の一部に仮想スクリーンを表示する光学式シースルー型ＨＭＤに適する。また、ＨＭＤの装着具合に応じてオブジェクトの重畳位置を補正する操作は、ＨＭＤのキャリブレーションと称される。
【０００６】
図１は、ビデオシースルー型のＡＲシステムにおける第１のフレームワークの説明図である。
【０００７】
図１によれば、横軸の経過時間に応じて、カメラによってキャプチャされたフレームが、周期的（例えば３０fps(frame per sec)）に入力されている。
（Ｓ１１）カメラによって、フレーム［１］がキャプチャされたとする。
（Ｓ１２）フレーム［１］に対するカメラ姿勢の計算に、一定時間を要する。
（Ｓ１３）カメラ姿勢の計算が終了した時点で、背景画像としてのフレーム［１］と、カメラ姿勢に基づいて射影変換したオブジェクト＜１＞とを同時に、ディスプレイに重畳的に表示する（例えば非特許文献１参照）。
【０００８】
図２は、ビデオシースルー型のＡＲシステムにおける第２のフレームワークの説明図である。
【０００９】
図２によれば、図１と同様に、カメラによってキャプチャされたフレームが、周期的に入力されている。
（Ｓ２１）カメラによって、フレーム［１］がキャプチャされたとする。そのフレーム［１］は直ぐにそのまま、重畳するオブジェクトの背景画像として、ディスプレイに表示される。
（Ｓ２２）フレーム［１］に対するカメラ姿勢の計算に、一定時間を要する。
（Ｓ２３）カメラ姿勢の計算が終了した際に、カメラ姿勢に基づいて射影変換したオブジェクト＜１＞を、その時点で表示されている背景画像に重畳的に表示する。この時点で、ディスプレイに表示されているプレビュー画像のフレームは、例えば［３］以降に進行している場合がある。
【００１０】
図３は、光学式シースルー型のＡＲシステムにおけるフレームワークの説明図である。
【００１１】
図３によれば、図２と同じ動作であるが、カメラによってキャプチャされたフレームは、カメラ姿勢を計算するためだけに使用される。従って、プレビュー画像をディスプレイに表示することはない。これは、ユーザが光学式シースルー型ＨＭＤを装着していることを想定しており、その視線の先には、ディスプレイ（仮想スクリーン）を透過した現実空間が見える（例えば非特許文献２参照）。一方で、カメラ姿勢に基づいて射影変換したオブジェクト＜１＞のみが、ディスプレイに表示される。
【００１２】
他の従来技術として、磁気センサを用いてカメラ姿勢を算出する技術もある（例えば非特許文献３参照）。この技術によれば、図１のフレームワークに磁気センサ取得のシーケンスが追加される。磁気センサの取得時刻と、カメラの取得時刻との時間差を測定することで、磁気センサから得られたカメラ姿勢からプレビュー画像取得時のカメラ姿勢を予測する。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】Hyung-Seok Jang, Jae-Yun Jeong, Young-Hyun Kim, Yeo-Jin Yoon, Sung-Jea Ko, "Augmented reality with high frame rate for low computational power devices,” 19th IEEE International Conference on Consumer Electronics, pp.274-275, 2011.
【非特許文献２】Makibuchi, N., Kato, H., Yoneyama, A., “Vision-based robust calibration for optical see-through head-mounted displays”, 20th IEEE International Conference on Image Processing, pp. 2177-2181, 2013.
【非特許文献３】Jacobs, Marco C., and Mark A. Livingston. "Managing latency in complex augmented reality systems." Proceedings of the 1997 symposium on Interactive 3D graphics. ACM, 1997.
【非特許文献４】"IS-600 Mark 2 Precision Motion Trackers"、[online]、「平成２６年７月８日検索］、インターネット＜URL:http://www.mindflux.com.au/products/isense/is600plus.pdf＞
【非特許文献５】FiatLux、「トラッキングセンサ Ascension社製 3D Guidance」、[online]、「平成２６年７月８日検索］、インターネット＜http://www.fiatlux.co.jp/product/virtual/3DGuidance/3dguidance-index.html＞
【非特許文献６】"ART"、[online]、「平成２６年７月８日検索］、インターネット＜http://www.ar-tracking.com/＞
【発明の概要】
【発明が解決しようとする課題】
【００１４】
図１及び非特許文献１、３に記載の技術によれば、カメラ姿勢の計算処理が終了する時点まで、フレームの表示を待機する。これは、プレビュー画像とオブジェクトとの間で位置ズレが生じないものの、カメラによるフレームの入力時点と、ディスプレイによるフレームの表示時点との間で、表示遅延が生じる。
【００１５】
図２に記載の技術によれば、図１と異なって、カメラ姿勢の計算処理が終了する時点まで、プレビュー画像の表示を待機しない。これは、カメラによるフレームの入力時点と、ディスプレイによるフレームの表示時点との間で、表示遅延が生じないものの、プレビュー画像とオブジェクトとの間で時間的な位置ズレが生じる。
【００１６】
図３及び非特許文献２に記載の技術によれば、現実空間とオブジェクトとの間で時間的な位置ズレが生じる。これは、カメラ姿勢の計算に基づくフレームがキャプチャされた入力時点が、既に過去のものとなっている。その過去のフレームから計算したカメラ姿勢は、その時点の現実空間とは既に位置ズレが生じている。
【００１７】
ビデオシースルー型のフレームワークによれば、プレビュー画像とオブジェクトとの位置合わせを優先して、図１の方式が採用するのが一般的である。しかしながら、現実空間に対して、そのディスプレイに映るプレビュー画像は、既に時間的な位置ズレが生じている。そのため、没入型ＨＭＤを装着したユーザの行動を困難にする恐れがある。また、図２及び図３の方式を採用した場合、現実空間に対して、オブジェクトが時間的な位置ズレを生じているので、それを視認するユーザにとって違和感がある。
【００１８】
そこで、本発明は、現実空間に対してオブジェクトの時間的な位置ズレができる限り小さくなるように、実時間に合わせて描画することができる情報装置、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本願の発明者らは、カメラによって連続的にキャプチャされた複数のフレームについて、過去のフレームの取得時刻とそのフレームについて計算されたカメラ姿勢とを用いて、短時間将来に映るフレームのカメラ姿勢を予測することもできる。予測カメラ姿勢を用いてオブジェクトを射影変換（投影）することによって、そのオブジェクト（以下「予測オブジェクト」と称する）は、短時間将来に生じる現実空間に対して、できる限り位置ズレを小さくすることができる。しかしながら、本願の発明者らは、できる限り短時間将来であって、何秒先のカメラ姿勢を予測するべきかが難しいと考えた。
【００２０】
本発明によれば、カメラと、ディスプレイと、カメラによってキャプチャされたフレームをバッファするフレームバッファと、ディスプレイにオブジェクトを描画する描画制御手段とを有する情報装置において、
バックバッファを備えた描画制御手段から、フロントバッファを備えたディスプレイへ、表示レートの周期タイミングで垂直同期させて転送するものであり、
描画制御手段からフレーム取得命令が発生した時刻ｔ1に、フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0に撮影されたフレームに対して、現カメラ姿勢を算出する現カメラ姿勢算出手段と、
時刻ｔ１後の姿勢予測遅延時間Δｔ2を取得し、予測カメラ姿勢の計算を開始してから次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3を、予測カメラ姿勢の算出可能時間以上であって且つディスプレイのリフレッシュレートの逆数の定数倍（≧１）に設定し、時刻ｔ0のフレームに対する現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する予測カメラ姿勢算出手段と、
予測カメラ姿勢によってオブジェクトを射影変換した予測オブジェクトを、描画制御手段へ出力する予測オブジェクト生成手段と
を有することを特徴とする。
【００２６】
本発明によれば、カメラ及びディスプレイを有する情報装置に搭載されたコンピュータを機能させるプログラムであって、カメラによってキャプチャされたフレームをバッファするフレームバッファと、ディスプレイにオブジェクトを描画する描画制御手段として機能させるプログラムにおいて、
バックバッファを備えた描画制御手段から、フロントバッファを備えたディスプレイへ、表示レートの周期タイミングで垂直同期させて転送するものであり、
描画制御手段からフレーム取得命令が発生した時刻ｔ1に、フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0に撮影されたフレームに対して、現カメラ姿勢を算出する現カメラ姿勢算出手段と、
時刻ｔ１後の姿勢予測遅延時間Δｔ2を取得し、予測カメラ姿勢の計算を開始してから次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3を、予測カメラ姿勢の算出可能時間以上であって且つディスプレイのリフレッシュレートの逆数の定数倍（≧１）に設定し、時刻ｔ0のフレームに対する現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する予測カメラ姿勢算出手段と、
予測カメラ姿勢によってオブジェクトを射影変換した予測オブジェクトを、描画制御手段へ出力する予測オブジェクト生成手段と
してコンピュータを機能させることを特徴とする。
【００２７】
本発明によれば、カメラと、ディスプレイと、カメラによってキャプチャされたフレームをバッファするフレームバッファと、ディスプレイにオブジェクトを描画する描画制御部とを有する情報装置の描画制御方法において、
情報装置は、
バックバッファを備えた描画制御部から、フロントバッファを備えたディスプレイへ、表示レートの周期タイミングで垂直同期させて転送するものであり、
描画制御部からフレーム取得命令が発生した時刻ｔ1に、フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0に撮影されたフレームに対して、現カメラ姿勢を算出する第１のステップと、
時刻ｔ１後の姿勢予測遅延時間Δｔ2を取得し、予測カメラ姿勢の計算を開始してから次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3を、予測カメラ姿勢の算出可能時間以上であって且つディスプレイのリフレッシュレートの逆数の定数倍（≧１）に設定し、時刻ｔ0のフレームに対する現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する第２のステップと、
予測カメラ姿勢によってオブジェクトを射影変換した予測オブジェクトを、描画制御部へ出力する第３ステップと
を実行することを特徴とする。
【発明の効果】
【００２８】
本発明の情報装置、プログラム及び方法によれば、現実空間に対してオブジェクトの時間的な位置ズレができる限り小さくなるように、実時間に合わせて描画することができる。
【図面の簡単な説明】
【００２９】
【図１】ビデオシースルー型のＡＲシステムにおける第１のフレームワークの説明図である。
【図２】ビデオシースルー型のＡＲシステムにおける第２のフレームワークの説明図である。
【図３】光学式シースルー型のＡＲシステムにおけるフレームワークの説明図である。
【図４】本発明における情報装置の機能構成図である。
【図５】本発明におけるシングルバッファリングのフレームワークの説明図である。
【図６】本発明におけるダブルバッファリング（垂直同期無し）のフレームワークの説明図である。
【図７】本発明におけるダブルバッファリング（垂直同期有り）のフレームワークの説明図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００３１】
図４は、本発明における情報装置の機能構成図である。
【００３２】
図４によれば、情報装置１は、カメラ１０１と、ディスプレイ１０２とを有する。情報装置１は、例えばユーザの頭部に装着されるＨＭＤ(Head Mounted Display)であって、カメラ１０１は、人の視線方向に固定されている。そのカメラは、そのユーザの注視対象の映像を撮影することができる。以下では、情報装置１はＨＭＤであるとして説明するが、勿論、カメラ１０１を搭載したスマートフォンやタブレットのような端末であってもよい。また、ディスプレイ１０２は、パーソナルコンピュータやテレビの外部のディスプレイ、プロジェクタ、又はホログラムディスプレイであってもよい。
【００３３】
また、情報装置１は、描画制御部１１と、フレームバッファ１２と、現カメラ姿勢算出部１３と、予測カメラ姿勢算出部１４と、予測オブジェクト生成部１５とを有する。これら機能構成部は、情報装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、情報装置における描画制御方法としても理解できる。
【００３４】
［描画制御部１１］
描画制御部１１は、ディスプレイ１０２に描画する画像を制御する。例えば光学式シースルー型ＨＭＤの場合、ユーザの視線の先には、ディスプレイ１０２を透過した現実空間が見える。この場合、描画制御部１１は、予測オブジェクト生成部１５から出力されたＡＲオブジェクトのみを描画する。尚、情報装置１がＨＭＤである場合、描画制御部１１は、ビデオシースルー型又は光学式シースルー型のいずれのフレームワークであってもよい。描画制御部１１は、以下の３つの描画方式のいずれであってもよい。
（方式１）シングルバッファリング            （後述する図５参照）
（方式２）ダブルバッファリング＋垂直同期無し（後述する図６参照）
（方式３）ダブルバッファリング＋垂直同期有り（後述する図７参照）
【００３５】
［フレームバッファ１２］
フレームバッファ１２は、カメラ１０１によってキャプチャされたフレームを連続的にバッファする。フレームバッファ１２は、フレームを描画制御部１１へ出力すると共に、現カメラ姿勢算出部１３から参照される。
【００３６】
［現カメラ姿勢算出部１３］
現カメラ姿勢算出部１３は、描画制御部１１から「フレーム取得命令」が発生した時刻ｔ1に、フレームバッファからバッファ時間Δｔ1前となる時刻ｔ0のフレームに対して、「現カメラ姿勢」を算出する。
Δｔ1＝フレーム取得命令の発生時刻ｔ1−フレームのキャプチャ時刻ｔ0
【００３７】
一般的に、デジタルカメラ（Ｗｅｂカメラ）モジュールのプレビュー画像処理について、フレーム取得命令時に取得されるフレームは、短時間であっても過去のフレームとなる。Δｔ1は、カメラの製品特性としての固定値であってもよい。勿論、高精度なデジタル時計を撮影することによって、Δｔ1を予め計測して記憶したものであってもよい。
【００３８】
カメラ姿勢は、カメラの内部パラメータと、実空間に設置した「マーカ」とから検出するものであってもよい。マーカの特徴画像は、情報装置内に予め記憶されており、既知の点を少なくとも４つ以上有し、カメラフレーム内との対応を計算できるものであればよい。また、点ではなく線分を用いたものや、事前に特徴を学習した自然画像を用いたものであってもよい。最小４組の点対応からカメラ姿勢を計算する処理については、ＡＲシステムでは一般的なものである。尚、カメラ姿勢の具体例については、後述する。また、光学式シースルー型ＨＭＤを用いる場合は、マーカから推定したカメラ姿勢にＨＭＤのキャリブレーションデータを適用する必要がある（例えば非特許文献２参照）。
【００３９】
［予測カメラ姿勢算出部１４］
予測カメラ姿勢算出部１４は、時刻ｔ1からの経過時間である姿勢予測遅延時間Δｔ2を取得し、時刻ｔ0のフレームに対する現カメラ姿勢から、少なくとも「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2」後に予測される予測カメラ姿勢を算出する。算出された予測カメラ姿勢は、予測オブジェクト生成部１５へ出力される。
【００４０】
姿勢予測遅延時間Δｔ2は、姿勢予測演算開始時刻をｔ2として、フレーム取得命令の発生時刻ｔ1からの経過時間を、以下の式によって算出する。
Δｔ2＝姿勢予測演算開始時刻ｔ2−フレーム取得命令の発生時刻ｔ1
尚、カメラキャプチャスレッドのフレームレートｆcによれば、姿勢予測遅延時間Δｔ2は、カメラ姿勢の計算に要した時間Δｔwを用いて、以下の範囲となる。
Δｔw  ≦  Δｔ2  ＜  １／ｆc＋Δｔw
【００４１】
本発明によれば、更に、予測カメラ姿勢の計算に要した「姿勢予測描画時間Δt3」を考慮することも好ましい。この場合、予測カメラ姿勢算出部１４は、現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する。
姿勢予測描画時間Δt3は、例えば以下のいずれであってもよい。
（１）１ステップ前のカメラ姿勢の予測計算とオブジェクトの描画処理に要した時間
（２）過去複数ステップのカメラ姿勢の予測計算とオブジェクトの描画処理に要した時間の平均時間
【００４２】
カメラ姿勢の予測アルゴリズムとして、様々な方式がある。例えば、過去２フレームのカメラ姿勢を利用する線形予測や、過去３フレームのカメラ姿勢を利用する２次予測であってもよいし、過去３フレーム以上を利用する直線回帰であってもよい。また、手ブレのような微細な運動を補正するために市販カメラで用いられる運動予測モデルを使用したものであってもよい。
あくまで、本発明によれば、予測カメラ姿勢を、「いつの時刻」のもので予測するか、が重要であって、予測アルゴリズムについては何ら限定するものではない。
【００４３】
［予測オブジェクト生成部１５］
予測オブジェクト生成部１５は、予測カメラ姿勢によってオブジェクトを射影変換した予測オブジェクトを、描画制御部１１へ出力する。
【００４４】
「オブジェクト」は、例えばＣＧキャラクタのようなものであって、情報装置内で予め記憶されたものであってもよい。例えば、カメラによってキャプチャされたフレーム内に、所定「マーカ」が映っているとする。このとき、現カメラ姿勢算出部１３は、そのマーカに基づくカメラ姿勢を算出する。また、予測カメラ姿勢算出部１４は、そのカメラ姿勢から予測カメラ姿勢を算出する。そして、予測オブジェクト生成部１５は、その予測カメラ姿勢に基づいて「オブジェクト」を射影変換し、描画制御部１１へ出力する。
【００４５】
＜（方式１）シングルバッファリング＞
図５は、本発明におけるシングルバッファリングのフレームワークの説明図である。
【００４６】
「シングルバッファリング」とは、ディスプレイ１０２のフロントバッファ（描画サーフェイス）に直接的に描画する方式である。図５によれば、姿勢予測描画時間Δt3は、予め設定された、又は、姿勢予測演算開始時に決定されたものである。予測カメラ姿勢は、現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後のカメラ姿勢が予測される。
姿勢予測描画時間Δt3＝
予測カメラ姿勢の算出時間Δｔ4＋予測オブジェクトの生成時間Δｔ5
【００４７】
尚、Δｔ4について、１ステップ前のカメラ姿勢の予測計算とオブジェクトの描画処理に要した時間を用いてもよいし、過去数ステップのカメラ姿勢の予測計算とオブジェクトの描画処理に要した時間の平均時間を用いてもよい。
【００４８】
また、予測オブジェクトの生成時間Δｔ5について、描画開始時の時刻をディスプレイに表示すると同時に、別のカメラを用いてディスプレイの表示内容を撮影しておき、表示完了時の時刻と描画開始時の時刻との差分によって検出したものであってもよい。但し、この別のカメラは、取得されたフレームと実時間との同期がとれている必要がある。
【００４９】
＜（方式２）ダブルバッファリング＋垂直同期無し＞
図６は、本発明におけるダブルバッファリング（垂直同期無し）のフレームワークの説明図である。
【００５０】
「ダブルバッファリング」とは、ディスプレイのフロントバッファと同じメモリ領域を有するバックバッファを有し、バックバッファに描画した後、一度にフロントバッファへ転送する方式である。図５によれば、姿勢予測描画時間Δt3は、予め設定された、又は姿勢予測演算開始時に決定されたものである。予測カメラ姿勢は、現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後のカメラ姿勢が予測される。
姿勢予測描画時間Δt3＝
予測カメラ姿勢の算出時間Δｔ4＋予測オブジェクトの生成時間Δｔ5
＋バックバッファからフロントバッファへの転送時間Δｔ6
【００５１】
尚、Δｔ4について、１ステップ前のカメラ姿勢の予測計算とオブジェクトの描画処理に要した時間を用いてもよいし、過去数ステップのカメラ姿勢の予測計算とオブジェクトの描画処理に要した時間の平均時間を用いてもよい。
【００５２】
また、Δｔ5＋Δｔ6については、描画開始時の時刻をディスプレイに表示すると同時に、別のカメラを用いてディスプレイの表示内容を撮影しておき、表示完了時の時刻と描画開始時の時刻との差分によって検出したものであってもよい。但し、この別のカメラは、取得されたフレームと実時間との同期がとれている必要がある。
【００５３】
＜（方式３）ダブルバッファリング＋垂直同期有り＞
図７は、本発明におけるダブルバッファリング（垂直同期有り）のフレームワークの説明図である。
【００５４】
「垂直同期（Vertical Synchronization：V-sync）」とは、バックバッファからフロントバッファへ転送するタイミングを、ディスプレイのリフレッシュレートと同期させることをいう。これよって、画像のちらつきを抑えて、カクカク感を無くし、滑らかに描画することができる。但し、垂直同期をオンにすることによって、リフレッシュレートに応じた遅延が生じることとなる。
ｆc[Hz]：カメラによってキャプチャされるフレームレート
ｆd[Hz]：垂直同期のリフレッシュレート
【００５５】
そのために、前述した「垂直同期無し」の場合、ディスプレイの表示更新が完了する前に、次のフレームが描画制御部（例えばＧＰＵ(Graphic Processor Unit)）から出力される。そのために、複数のフレームが混じり合った画面が表示される「ティアリング」という現象が発生する。
【００５６】
図７によれば、予測カメラ姿勢の算出可能時間Δｔ4以上であって、予測カメラ姿勢の計算の開始から次の周期タイミングでの転送終了までの姿勢予測描画時間Δt3が決定される。そして、現カメラ姿勢から、「バッファ時間Δｔ1＋姿勢予測遅延時間Δt2＋姿勢予測描画時間Δt3」後に予測される予測カメラ姿勢を算出する。
姿勢予測描画時間Δt3＝
予測カメラ姿勢の算出時間Δｔ4
＋予測オブジェクトの生成（バックバッファへの描画）時間Δｔ5
＋（垂直同期待ち＋バックバッファからフロントバッファへの転送）時間Δｔ6
尚、姿勢予測描画時間Δt3は、結果として１／ｆd（リフレッシュレート）となる。
Δｔ3＝１／ｆd
【００５７】
また、予測カメラ姿勢算出手段は、姿勢予測描画時間Δt3として、ディスプレイのリフレッシュレートの逆数の定数倍（≧１）を設定することも好ましい。予測カメラ姿勢の算出時間Δｔ4が、１／ｆdに収まらない場合があるためである。
Δｔ3＝α／ｆd
where  ((α-1))／ｆd  ≦  Δｔ4  ＜  α／ｆd  （α＝1,2,3・・・）
【００５８】
＜カメラ姿勢の算出方法＞
情報装置１が所定「マーカ」を予め記憶しており、カメラによってキャプチャされたフレーム内に、その「マーカ」が映っているとする。両者のマーカを比較することによって、カメラ姿勢を算出することができる。この場合、カメラ姿勢は、例えば平面射影変換行列である。以下の２つの処理ステップが実行される。
（ステップ１）点対応計算処理
（ステップ２）平面射影変換行列計算処理
【００５９】
［（ステップ１）点対応計算処理］
点対応計算処理は、カメラによってキャプチャされたフレーム画像から局所特徴量を抽出し、マーカ画像の特徴点ｐとフレーム画像の特徴点ｐ'との間の点対応Ｐ＝{(p, p')}を計算する。
【００６０】
局所特徴点の抽出アルゴリズムとしては、例えばＳＩＦＴ(Scale-Invariant Feature Transform)やＳＵＲＦ(Speeded Up Robust Features)、ＯＲＢ(Oriented FAST and Rotated BRIEF)が用いられる。これらの局所特徴点は、以下の要素によって記述される。
座標ｐ＝(x,y)、方向θ、局所特徴ベクトルf
尚、点対応を検出する画像間では、その特徴ベクトルについて同じ次元数である。
【００６１】
例えば、ＳＩＦＴの場合、１枚の画像からは１２８次元の特徴点集合が抽出される。ＳＩＦＴとは、スケールスペースを用いて特徴的な局所領域を解析し、そのスケール変化及び回転に不変となる特徴ベクトルを記述する技術である。一方で、ＳＵＲＦの場合、ＳＩＦＴよりも高速処理が可能であって、１枚の画像から６４次元の特徴点集合が抽出される。また、ＯＲＢは、バイナリコードによる特徴記述としてＢＲＩＥＦ(Binary Robust Independent Elementary Features)を用いて、１つのコンテンツから２５６ビットのバイナリ特徴ベクトルの集合を抽出する。特に、ＯＲＢによれば、ＳＩＦＴやＳＵＲＦと比較して、同等以上の精度を保持すると共に、数百倍の高速化を実現することができる。
【００６２】
次に、マーカ画像の特徴点集合とフレーム画像の特徴点集合とをマッチングし、局所特徴点を点対応させる。マーカ画像の特徴点ｐに対して、フレーム画像の特徴点ｐ'を対応付ける。２つの特徴点ｐ'とｐとの間の距離が短いほど、類似度が高い。
【００６３】
また、点対応計算処理は、点対応計算の精度や処理速度を向上させるために、以下の方法を用いることも好ましい。
（１）局所特徴点間の距離に基づいて点対応をソートし、距離が所定閾値以下の点対応のみを用いる。
（２）局所特徴点間の距離に基づいて点対応をソートし、距離が１番目に近いものと２番目に近いものを探索し、それらの距離の比（２番目との距離に対する１番目との距離）が所定閾値以下のものを用いる。
（３）その他、計算コストに優れるバイナリ特徴量や、ＳＳＤ(Sum of Squared Difference)、正規化相互相関（ＮＣＣ）等も用いることもできる。
【００６４】
そして、点対応計算処理は、マーカ画像とフレーム画像との間における特徴点の点対応を、平面射影変換行列計算処理へ出力する。
【００６５】
［（ステップ２）平面面射影変換行列計算処理］
平面射影変換行列計算処理は、点対応毎に、マーカ画像とフレーム画像との間の平面射影変換行列を計算する。
【００６６】
平面射影変換行列計算処理は、具体的は、点対応Ｐ＝{(p, p')}集合から、例えばＲＡＮＳＡＣ(RAndom SAmple Consensus)のようなロバスト推定アルゴリズムを用いて、フレーム画像をマーカ画像へ変換する平面射影変換行列を算出する。これによって、誤った点対応を除去することができる。変換行列は、好ましくは「Homography行列」であって、最低４組の点対応が必要である。４組全ての点対応が、inlierでなければ正解のHomography行列が得られない。
【００６７】
算出されたHomography行列を用いてフレーム画像の特徴点集合を射影し、マーカ画像の特徴点とのユークリッド距離が所定閾値以下の対応組を正(inlier)として判定し、それ以外を否(outlier)として判定する。正(inlier)と判定された対応組数が所定閾値以上である場合、当該マーカ画像が検出されたと判定し、そのHomography行列を採用する。逆に、正(inlier)と判定された対応組数が所定閾値よりも少ない場合、未検出と判定し、そのHomography行列を除去する。
【００６８】
平面射影変換行列であるHomography行列Ｈは、以下のように表される。これは、フレーム画像の特徴点ｐ'＝(ｘ1,ｙ1)と、マーカ画像の特徴点ｐ＝(ｘ2,ｙ2)との関係を表す。
【数１】
0006384856.tif 000002
【００６９】
Homography行列の算出には、マーカ画像の特徴点集合とフレーム画像の特徴点集合とが用いられる。Homography行列Ｈの未知パラメータ数は、８個（h0〜h7、h8=1）であり、一組の対応点は２個の制約式を与える。従って、この行列Ｈは、４組以上の対応点があれば、最小二乗法によって算出することができる。このようなカメラ姿勢を推定する技術は、ＡＲシステムでは一般的なものである。
【００７０】
そして、Homography行列Ｈを用いて、フレーム画像の特徴点を射影した際に、以下のように判定する。
（１）マーカ画像の特徴点に対して所定閾値以下の近くに射影されれば、inlierと判定する。
（２）逆に、所定閾値よりも遠くに射影されれば、outlierと判定する。
この処理を複数回実行した後、inlierの数が所定閾値以上となったHomography行列Ｈのみを採用する。
【００７１】
このような処理を、マーカ画像とフレーム画像とについて繰り返す。フレーム画像に映るマーカ画像として検出される毎に、その平面射影変換行列Ｈが出力される。
【００７２】
＜センサを用いたカメラ姿勢＞
前述したカメラ姿勢は、マーカ画像及びフレーム画像から算出されたものであるが、超音波センサ（例えば非特許文献４参照）や、磁気センサ（例えば非特許文献５参照）、赤外線センサ（例えば非特許文献６参照）から算出されたものであってもよい。  これらのセンサを使用する際は、ＨＭＤの筐体及び重畳対象のオブジェクトに各種センサを装着した上で、ＨＭＤとオブジェクトとの間の相対姿勢を算出するためのトランスミッタや赤外カメラを環境側に設置する必要がある。
【００７３】
尚、前述したマーカ画像を利用する方法や、各種センサを利用する方法のいずれについても、カメラ姿勢は対象のオブジェクトに対するＨＭＤの相対姿勢として定義され、射影変換行列により表現される。本発明は、カメラ姿勢の計算方法を何ら限定するものではない。
【００７４】
以上、詳細に説明したように、本発明の情報装置、プログラム及び方法によれば、現実空間に対してオブジェクトの時間的な位置ズレができる限り小さくなるように、実時間に合わせて描画することができる。
【００７５】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００７６】
１  情報装置
１０１  カメラ
１０２  ディスプレイ
１１  描画制御部
１２  フレームバッファ
１３  現カメラ姿勢算出部
１４  予測カメラ姿勢算出部
１５  予測オブジェクト生成部
【図１】
0006384856.tif 000003
【図２】
0006384856.tif 000004
【図３】
0006384856.tif 000005
【図４】
0006384856.tif 000006
【図５】
0006384856.tif 000007
【図６】
0006384856.tif 000008
【図７】
0006384856.tif 000009