(57)【要約】【課題】カメラトラッキングのロストから効率よく復帰できるようにすること。【解決手段】カメラトラッキング装置１は、カメラの撮影した撮影画像と撮影時の位置および姿勢に関する情報とを対応付けて構成され、３次元モデル空間における画像データとして形成される基準画像を予め複数記憶する記憶部Ｆ１３と、所定のタイミングが到来すると、記憶部に記憶された各基準画像の中からカメラの撮影した撮影画像に類似する所定の基準画像を選択する基準画像選択部Ｆ１４と、撮影画像と所定の基準画像とを重畳して表示する重畳表示部Ｆ１５と、重畳表示部により重畳表示される撮影画像と所定の基準画像とが一致するか否か判定し、一致すると判定した場合は、カメラトラッキング処理の実行を指示する判定部Ｆ１６と、を備える。【選択図】図１
2018014579.tif 000002
【特許請求の範囲】
【請求項１】
現実空間と３次元モデル空間を位置合わせするカメラトラッキング装置であって、
カメラの撮影した撮影画像と撮影時の位置および姿勢に関する情報とを対応付けて構成され、３次元モデル空間における画像データとして形成される基準画像を予め複数記憶する記憶部と、
所定のタイミングが到来すると、前記記憶部に記憶された前記各基準画像の中から前記カメラの撮影した撮影画像に類似する所定の基準画像を選択する基準画像選択部と、
前記撮影画像と前記所定の基準画像とを重畳して表示する重畳表示部と、
前記重畳表示部により重畳表示される前記撮影画像と前記所定の基準画像とが一致するか否か判定し、一致すると判定した場合は、カメラトラッキング処理の実行を指示する判定部と、
を備えるカメラトラッキング装置。
【請求項２】
前記所定のタイミングは、前記カメラトラッキング処理が中断した場合である、
請求項１に記載のカメラトラッキング装置。
【請求項３】
前記基準画像選択部は、前記記憶部に記憶された前記各基準画像の中から前記カメラの撮影した撮影画像に類似すると判断した基準画像を前記所定の基準画像として一つ選択する第１選択部を備える、
請求項２に記載のカメラトラッキング装置。
【請求項４】
前記基準画像選択部は、前記記憶部に記憶された前記各基準画像の中から前記カメラの撮影した撮影画像に類似すると判断した基準画像候補を複数選択し、前記複数の基準画像候補をユーザに提示し、前記複数の基準画像候補のうちユーザにより指定された一つの基準画像候補を前記所定の基準画像として選択する第２選択部を備える、
請求項２に記載のカメラトラッキング装置。
【請求項５】
前記第２選択部は、前記カメラトラッキング処理が中断する直前における前記カメラの位置および姿勢に基づいて、前記記憶部に記憶された前記各基準画像の中から前記基準画像候補を少なくとも一つ選択する、
請求項４に記載のカメラトラッキング装置。
【請求項６】
前記基準画像選択部は、
前記記憶部に記憶された前記各基準画像の中から前記カメラの撮影した撮影画像に類似すると判断した基準画像を前記所定の基準画像として一つ選択する第１選択部と、
前記記憶部に記憶された前記各基準画像の中から前記カメラの撮影した撮影画像に類似すると判断した基準画像候補を複数選択し、前記複数の基準画像の候補をユーザに提示し、前記複数の基準画像の候補のうちユーザにより指定された基準画像の候補を前記所定の基準画像として選択する第２選択部とを備え、
所定の条件に従って、前記第１選択部と前記第２選択部とを切替使用する、
請求項２に記載のカメラトラッキング装置。
【請求項７】
前記所定の条件とは、前記第１選択部を使用して選択された前記所定の基準画像と前記カメラで撮影した撮影画像とが一致しない場合であり、前記第１選択部を使用して選択された前記所定の基準画像と前記カメラで撮影した撮影画像とが一致しない場合には、前記第１選択部から前記第２選択部へ切り替える、
請求項６に記載のカメラトラッキング装置。
【請求項８】
前記重畳表示部は、前記カメラから周期的に取り込まれる前記撮影画像と前記所定の基準画像とをリアルタイムで重畳表示することで前記撮影画像と前記所定の基準画像との位置調整を支援する第１調整モードを備える、
請求項１〜７のいずれか一項に記載のカメラトラッキング装置。
【請求項９】
前記重畳表示部は、前記所定の基準画像を画面内で操作することで前記撮影画像と前記所定の基準画像との位置調整を支援する第２調整モードを備える、
請求項１〜７のいずれか一項に記載のカメラトラッキング装置。
【請求項１０】
前記第２調整モードでは、前記撮影画像上に指定される第１特徴点と、前記所定の基準画像上に指定される第２特徴点とが一致するように前記所定の基準画像を操作する、
請求項９に記載のカメラトラッキング装置。
【請求項１１】
前記所定のタイミングは、前記カメラトラッキング処理の初期化時である、
請求項１に記載のカメラトラッキング装置。
【請求項１２】
現実空間と３次元モデル空間を位置合わせするカメラトラッキング方法であって、
カメラの撮影した撮影画像と撮影時の位置および姿勢に関する情報とを対応付けて構成され、３次元モデル空間における画像データとして形成される基準画像を記憶部に予め複数記憶するステップと、
所定のタイミングが到来すると、前記記憶部に記憶された前記各基準画像の中から前記カメラの撮影した撮影画像に類似する所定の基準画像を選択するステップと、
前記撮影画像と前記所定の基準画像とを重畳して表示するステップと、
前記重畳表示部により重畳表示される前記撮影画像と前記所定の基準画像とが一致するか否か判定するステップと、
重畳表示される前記撮影画像と前記所定の基準画像とが一致すると判定した場合は、カメラトラッキング処理の実行を指示するステップと、
を備えるカメラトラッキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラトラッキング装置および方法に関する。
【背景技術】
【０００２】
拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：ＡＲ）とは、現実環境を撮影した画像に、現実環境に対応する画像や文字などの情報を付加する技術である。ユーザは、現実環境の画像と付加画像とが合成された画像を見ることにより、付加画像として表示されている物体または画像があたかも実際に存在しているかのような感覚を得る。
【０００３】
ＡＲの応用は、教育、娯楽、広告、ナビゲーション、医療など多岐にわたるが、その応用の一つに、設備プラントの保守や建築の支援があげられる。
【０００４】
近年、海外で設備プラントの保守や建設の計画が進む一方、熟練者不足のため、経験の浅いユーザの割合が増加すると予測されている。そこで、ＡＲを応用して作業者を支援する技術が期待されている。ＡＲをプラントの保守や建設現場で応用することにより、機器の状態や内部構造を可視化し、状態把握を補助することができる。これにより、効率的に作業を支援することができる。
【０００５】
ＡＲにおいて最も重要な課題の１つは、現実空間と仮想空間との位置合わせである。すなわち、撮像に用いるカメラの位置及び姿勢をいかに正確かつロバストに求めるかが重要である。このように、カメラの位置姿勢を連続的に求める処理は、カメラトラッキング処理と呼ばれている。この課題に対処するため、様々な方法が開発されている。
【０００６】
カメラの位置や姿勢を推定する第１の方法として、ＧＰＳおよび電子コンパスを用いた方法がある。下記特許文献１では、ＧＰＳと電子コンパスと焦点距離とに基づき、カメラの地図情報空間上での位置を取得し、３Ｄ−ＣＡＤ上での視野空間を求め、その視野空間中に存在する構造物の属性情報をカメラで得た画像に重畳表示する。しかしながら、プラント保守などのように屋内においてＡＲを実現する場合に、ＧＰＳや電子コンパスは使用できないか、使用できたとしても精度が低下する。
【０００７】
カメラの位置や姿勢を推定する第２の方法として、下記特許文献２がある。この特許文献では、情報提供したい箇所に２次元コードを記述した表示物を予め設置し、表示物上の２次元コードをカメラで読み取ってその位置を認識し、その位置に情報を提示する。しかしながら、２次元コードを作業場所に予め配置するには手間がかかり、場所によっては２次元コードの設置自体が困難なことがある。
【０００８】
以上のような問題を解決する方法として、２次元コードを用いない、画像を用いたカメラの位置および姿勢を推定する方法、すなわちマーカレスカメラトラッキング方法が提案されている。
【０００９】
マーカレスでカメラの位置と姿勢を推定する方法として、下記特許文献３には、モデルベースの方法が提案されている。モデルベースの方法では、３次元ＣＡＤによって設計した物体のように形状が既知である物体に対し、仮想カメラを用いて画像を生成する。以下、既知の形状から生成される画像をＣＧ画像と呼ぶ。ＣＧ画像がカメラで撮像されたカメラ画像と類似しているならば、そのＣＧ画像を生成するときに用いた仮想カメラの位置および姿勢は、実際のカメラの位置および姿勢に対応していると考えられる。
【００１０】
マーカレスでカメラの位置と姿勢を推定する第２の方法として、下記特許文献４および非特許文献１には、画像特徴量を用いた方法が提案されている。これらの方法では、カメラトラッキングの前処理として、トラッキング対象を様々な方向から撮影し、３次元再構成処理によってトラッキング対象の３次元構造を復元する。さらに、撮影した各画像のカメラの位置・姿勢、および画像特徴点と特徴量とを求めて、データベースに保存する。カメラトラッキング処理では、撮影された入力画像の特徴点とデータベース上の特徴点とを比較することで、カメラの位置と姿勢を推定する。
【００１１】
さらに画像だけでなく、奥行き画像を用いたカメラトラッキング方法として、下記非特許文献２には、点群から３次元構造を表現するボリュームデータを作成することでカメラトラッキングを行う方法が提案されている。
【００１２】
なお、後述するキーフレーム画像の生成などに関する技術としては、非特許文献３〜５が知られている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１０−２６７６７１号公報
【特許文献２】特開２００２−２２８４４２号公報
【特許文献３】特開平０７−１４６１２１号公報
【特許文献４】特開２０１１−１４５８５６号公報
【非特許文献】
【００１４】
【非特許文献１】大江統子、他３名、「幾何学的位置合わせのための自然特徴点ランドマークデータベースを用いたカメラ位置・姿勢推定」、日本バーチャルリアリティ学会論文誌、Ｖｏｌ．１０、Ｎｏ．３、２００５
【非特許文献２】R. A. Newcombe, A. J. Davison, S. Izadi, P. Kohli, O. Hilliges, J. Shotton, D. Molyneaux, S. Hodges, D. Kim, and A. Fitzgibbon, “KinectFusion: Real-time dense surface mapping and tracking,” in Mixed and augmented reality (ISMAR), 2011 10th IEEE international symposium on, 2011, pp. 127-136.
【非特許文献３】Y. Furukawa, B. Curless, S. M. Seitz, and R. Szeliski, “Towards internet-scale multi-view stereo,” CVPR 2010, pp. 1434-1441, 2010.
【非特許文献４】B. Glocker, J. Shotton, A. Criminisi, and S. Izadi, “Real-Time RGB-D Camera Relocalization via Randomized Ferns for Keyframe Encoding,” Visualization and Computer Graphics, IEEE Transactions on, vol. 21, no. 5, pp. 571-583, 2015.
【非特許文献５】G. Csurka, C. Dance, L. Fan, J. Willamowski, and C. Bray, “Visual categorization with bags of keypoints,” in Workshop on statistical learning in computer vision, ECCV, 2004, vol. 1, pp. 1-2.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
画像ベースのカメラトラッキング方法では、直前のフレームのカメラの位置姿勢を初期値として、収束計算などによって現在の画像からのカメラの位置姿勢を推定する。しかしながら、カメラの急激な移動や遮蔽物の存在、カメラのぼけやブラーなどの理由で、カメラの位置や姿勢の推定に失敗（破綻）する場合がある。このような失敗をＡＲの分野ではロストと呼ぶ。ロストはＡＲ処理ではしばしば発生する。実用的なＡＲアプリケーションを実現するためには、ロストからの回復が重要である。
【００１６】
しかしながら、ロストからの回復は難しい課題である。モデルベースのトラッキング方法では、様々な視点から生成されるＣＧ画像は無数に存在するため、ＣＧ画像と入力カメラ画像とのマッチングには膨大な時間がかかる。画像特徴量を用いる方法では、データベース上の特徴量と入力画像上の特徴点とのマッチングが必要であるため、計算量が膨大となる。奥行き画像を用いた方法においても、奥行き画像と３次元構造を表すボリュームデータとのマッチングには膨大な計算が必要となる。
【００１７】
以上のようにトラッキングのロストからの復帰には多くの計算量が必要となるという問題がある。
【００１８】
さらに、ロストからの回復だけでなく、トラッキングの最初のフレームでは直前のフレームのカメラの位置姿勢の情報が存在しないため、初期値の推定はロストからの復帰と同様困難な課題である。
【００１９】
以上のようにカメラトラッキングのロストからの復帰、最初のフレームでの初期化を効率よく実現する方法が求められている。
【００２０】
本発明は上述の課題に鑑みてなされたもので、その目的は、カメラトラッキングのロストから効率よく復帰できるようにしたカメラトラッキング装置および方法を提供することにある。
【課題を解決するための手段】
【００２１】
上記課題を解決すべく、本発明に従うカメラトラッキング装置は、現実空間と３次元モデル空間を位置合わせするカメラトラッキング装置であって、カメラの撮影した撮影画像と撮影時の位置および姿勢に関する情報とを対応付けて構成され、３次元モデル空間における画像データとして形成される基準画像を予め複数記憶する記憶部と、所定のタイミングが到来すると、記憶部に記憶された各基準画像の中からカメラの撮影した撮影画像に類似する所定の基準画像を選択する基準画像選択部と、撮影画像と所定の基準画像とを重畳して表示する重畳表示部と、重畳表示部により重畳表示される撮影画像と所定の基準画像とが一致するか否か判定し、一致すると判定した場合は、カメラトラッキング処理の実行を指示する判定部と、を備える。
【発明の効果】
【００２２】
本発明によれば、予め用意された複数の基準画像の中から、カメラの撮影した撮影画像に類似する所定の基準画像を選択することができ、撮影画像と所定の基準画像とを重畳表示して両者が一致するか否か判定し、一致した場合はカメラトラッキング処理の実行を指示することができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態の全体概要を示す説明図である。
【図２】一つのコンピュータから成るＡＲシステムのハードウェア図である。
【図３】クライアント・サーバ型のＡＲシステムのハードウェア図である。
【図４】ＨＭＤ（Head Mounted Display）型のＡＲシステムの概要図である。
【図５】タブレット型のＡＲシステムの概要図である。
【図６】ＡＲシステムのメモリに格納されるデータ類の説明図である。
【図７】キーフレームデータの構成例を示す図である。
【図８】キーフレーム画像とカメラで撮影した実際の画像とを重畳表示する様子を示す説明図である。
【図９】カメラの位置や姿勢を動かすことでキーフレーム画像と実際の画像との位置調整を行う様子を示す説明図である。
【図１０】第１実施例に係り、キーフレームデータを生成して保存する処理を示すフローチャートである。
【図１１】カメラトラッキング処理のフローチャートである。
【図１２】第２実施例に係り、実際の画像上の特徴点とキーフレーム画像上の特徴点とが一致するようにキーフレーム画像を操作して、実際の画像に一致させる様子を示す説明図である。
【図１３】カメラトラッキング処理のフローチャートである。
【図１４】第３実施例に係り、複数のキーフレーム画像の候補をユーザへ提示し、ユーザにより選択させる様子を示す説明図である。
【図１５】カメラトラッキング処理のフローチャートである。
【図１６】第４実施例に係り、カメラトラッキング処理のフローチャートである。
【発明を実施するための形態】
【００２４】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本実施形態の全体概要を示す説明図である。図１に示す構成は、本発明の理解および実施に必要な程度で本実施形態の概要を示しており、本発明の範囲は図示の構成に限定されない。図１から一部の構成を除いた構成も本発明の範囲に含まれる。
【００２５】
カメラトラッキング装置１は、カメラで撮影した現実空間の画像（実際の画像）と３次元モデル空間とを位置合わせし、追従させるコンピュータシステムである。カメラトラッキング装置１は、例えば、撮像部Ｆ１１、キーフレーム生成部Ｆ１２、キーフレーム記憶部Ｆ１３、キーフレーム選択部Ｆ１４、重畳表示部Ｆ１５、判定部Ｆ１６、ＡＲ処理部Ｆ１７を備える。
【００２６】
撮像部Ｆ１１は、後述のカメラ１４，１５（図２，図３参照）を用いて、現実空間の実際の画像を撮影し、画像データとして出力する機能である。
【００２７】
キーフレーム生成部Ｆ１２は、対象とする物体について後述のキーフレームデータＤ４（図７参照）を生成し、保存する機能である。対象物体とは、カメラトラッキング処理の対象となる物体、ＡＲ処理の対象となる物体である。キーフレーム生成部Ｆ１２は、撮像部Ｆ１１の撮影画像から３次元空間モデルを復元してキーフレームデータを生成することもできるし、３次元ＣＡＤなどの３次元モデルデータを用いてキーフレームデータを生成することもできる。キーフレーム画像は「基準画像」に該当する。
【００２８】
キーフレーム記憶部Ｆ１３は、キーフレーム生成部Ｆ１２で生成されたキーフレームデータをメモリ１５，３４または補助記憶装置１７，３７へ保存する機能である。キーフレーム記憶部Ｆ１３は「記憶部」に該当する。
【００２９】
キーフレーム選択部Ｆ１４は、キーフレーム記憶部Ｆ１３に格納された複数のキーフレーム画像の中から、撮像部Ｆ１１の撮影画像に類似する所定のキーフレーム画像を選択する機能である。キーフレーム選択部Ｆ１４は「基準画像選択部」に該当し、キーフレーム選択部Ｆ１４の選択するキーフレーム画像は「所定の基準画像」に該当する。
【００３０】
キーフレーム選択部Ｆ１４は、以下に述べる複数の方法のうち少なくともいずれか一方または両方を用いて、所定のキーフレーム画像を選択する。第１の方法は、第１選択部Ｆ１４１を用いる。第１選択部Ｆ１４１は、キーフレーム記憶部Ｆ１３に格納されたキーフレーム画像の中から、撮像部Ｆ１１の撮影画像に類似する所定のキーフレーム画像を一つ選択する。第２の方法は、第２選択部Ｆ１４２を用いる。第２選択部Ｆ１４２は、キーフレーム記憶部Ｆ１３に格納されたキーフレーム画像の中から、撮像部Ｆ１１の撮影画像に類似するキーフレーム画像の候補を複数選択してユーザへ提示し、ユーザの指定したキーフレーム画像を所定のキーフレーム画像として選択する。
【００３１】
キーフレーム選択部Ｆ１４は、第１選択部Ｆ１４１または第２選択部Ｆ１４２のいずれか一つを用いて所定のキーフレーム画像を選択することもできるし、所定の条件に基づいて第１選択部Ｆ１４１と第２選択部Ｆ１４２を切り替えて使用することもできる。
【００３２】
重畳表示部Ｆ１５は、キーフレーム選択部Ｆ１４で選択された所定のキーフレーム画像と撮像部Ｆ１１の撮影画像とを重ねて表示する機能である。さらに、重畳表示部Ｆ１５は、撮影画像と所定のキーフレーム画像とが一致するように、位置や姿勢を調整する複数のモードを備える。
【００３３】
第１調整モードＦ１５１は、実際のカメラ１４，２４の位置や姿勢を変化させることで所定のキーフレーム画像に一致させるモードである。第１調整モードＦ１５１では、撮像部Ｆ１１から撮影画像を読み込むたびに、所定のキーフレーム画像と撮影画像とを重畳表示する。したがって、例えばユーザは、カメラ１４，２４の位置や姿勢を変えながら撮影を続けることで、所定のキーフレーム画像と一致させることができる。第２の調整モードＦ１５２では、所定のキーフレーム画像の位置や姿勢を操作することで、撮影画像に一致させるモードである。第２の調整モードＦ１５２では、位置合わせ用の特徴点を指定するなどして、所定のキーフレーム画像の位置や姿勢を対話的に操作する。
【００３４】
判定部Ｆ１６は、重畳表示部Ｆ１５により重畳表示された撮影画像と所定のキーフレーム画像とが一致しているか否かを判定する機能である。ここで、撮影画像と所定のキーフレーム画像とが一致するとは、両方の画像の相違が所定の誤差の範囲内に収まることを意味する。判定部Ｆ１６は、撮影画像と所定のキーフレーム画像とが一致すると判定すると、カメラ１４，２４の位置と姿勢の推定が完了したと判断し、「カメラトラッキング処理部」としてのＡＲ処理部Ｆ１７へ実行を指示する。
【００３５】
これにより、ＡＲ処理部Ｆ１７は、カメラの位置や姿勢の変化に追従しながら、撮影画像に対してテキストやコンピュータグラフィックスなどのＡＲ情報を重ね合わせる。カメラ１４，２４の位置と姿勢の推定処理が完了した場合、つまりロスト状態ではなく、カメラで撮影した画像を３次元モデル空間内で正確にトラッキングできた場合、撮影画像に重ねられていた所定のキーフレーム画像は表示部１３，２３から消去される。位置と姿勢の調整が完了した後は、キーフレーム画像を重畳表示する必要はなく、作業時の視認性が低下するためである。
【００３６】
なお、ＡＲ処理部Ｆ１７は、カメラトラッキング装置１の内部に設けてもよいし、外部に設けてもよい。
【００３７】
図１の下側には、実際の画像である撮影画像Ｇｒと所定のキーフレーム画像Ｇｖとを重ね合わせることで、重畳表示画像Ｇｓを得る様子が示されている。実際の撮影画像Ｇｒには、装置などのオブジェクトＯＢＪ１が映っている。所定のキーフレーム画像Ｇｖには、実際のオブジェクトＯＢＪ１に対応する３次元空間モデルでのオブジェクトＯＢＪ２が映っている。撮影画像Ｇｒと所定のキーフレーム画像Ｇｖとを重ね合わせたときに、両方の画像が一致しているならば、カメラトラッキング処理を開始し、ＡＲ画像を表示部１３，２３（図２，図３参照）に表示させることができる。３次元空間モデルが現実空間（撮影対象の実際の空間）に追従している限り、ＡＲ処理を行うことができる。
【００３８】
このように構成される本実施形態によれば、ＡＲ対象の物体についての複数のキーフレーム画像を予め用意し、それら複数のキーフレーム画像の中からカメラで撮影した撮影画像に類似する所定のキーフレーム画像を選択し、撮影画像と所定のキーフレーム画像が一致するか判定する。したがって本実施形態によれば、キーフレーム画像の中から撮影画像に類似する所定のキーフレーム画像を抽出して、撮影画像との一致を判定するだけで、カメラトラッキングのロストから短時間かつ効率的に回復することができ、ＡＲ処理の使い勝手を向上できる。また、本実施形態によれば、カメラトラッキング処理の初期化時においても、速やかに対象物との位置合わせを完了して、カメラトラッキング処理を開始することができる。
【実施例１】
【００３９】
図２〜図１１を用いて第１実施例を説明する。まず最初に、カメラトラッキング装置１のハードウェア構成について説明する。
【００４０】
図２のハードウェア構成図に示すように、カメラトラッキング装置１は、単一のコンピュータシステムとして構成することができる。カメラトラッキング装置１は、例えば、マイクロプロセッサ（以下、ＣＰＵ：Central Processing Unit）１１、入力部１２、表示部１３、カメラ１４、メモリ１５、通信部１６、補助記憶装置１７を備える。
【００４１】
ＣＰＵ１１は、カメラトラッキング装置１の動作を制御する。ＣＰＵ１１は、補助記憶装置１７に記憶された所定のコンピュータプログラムＰ１１〜Ｐ１３をメモリ１５に読み込んで実行することで、カメラトラッキング装置１の各機能を実現する。なお、コンピュータプログラムの一部または全部は、メモリ１５に格納されていてもよい。
【００４２】
入力部１２は、ユーザがカメラトラッキング装置１へ指示や情報を入力するための装置である。入力部１２は、例えば、手動スイッチ、操作ボタン、操作コントローラ、タッチパネル、動作検出スイッチ、音声認識装置などのように構成される。表示部１３は、カメラトラッキング装置１からユーザへ情報を提供する装置であり、ディスプレイ装置として構成される。
【００４３】
カメラ１４は、例えばＣＣＤ（Charge Coupled Device）カメラ、ＣＭＯＳ（Complementary MOS）カメラのようなカラーデジタルカメラとして構成されており、撮影した画像をデジタルデータとして出力する。カメラ１４は、投射したレーザー光が対象物から戻ってくるまでの時間、あるいはパターンの照射やステレオカメラの原理などに基づいて、対象物までの距離を測定する機能を備えることができる。
【００４４】
メモリ１５は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）を含む記憶装置である。メモリ１５の記憶内容は、図６で後述する。
【００４５】
通信部１６は、外部装置と無線通信あるいは有線通信するための装置である。通信部１６は、例えば、インターネットやＬＡＮ（Local Area Network）などの通信ネットワークに接続し、テキストメッセージ、コンピュータプログラム、イメージファイルなどを送受信する。通信部１６は、近距離無線通信機能を備えてもよい。この場合、入力部１２または表示部１３の少なくともいずれか一方をコンピュータ本体とは別に構成し、近距離無線通信でコンピュータ本体と接続することができる。
【００４６】
補助記憶装置１７は、例えばハードディスク、フラッシュメモリデバイスのような比較的大容量の不揮発性記憶装置である。補助記憶装置１７は、着脱可能な記録媒体を備えてもよい。補助記憶装置１７には、カメラ１４で撮影した画像や重畳表示された画面などを作業記録として保存することができる。なお、補助記憶装置１７は、コンピュータプログラムを記憶してもよい。例えば、キーフレーム生成部Ｐ１１、カメラトラッキング処理部Ｐ１２、ＡＲ処理部Ｐ１３を実現するコンピュータプログラムを補助記憶装置１７へ格納してもよい。
【００４７】
図３のハードウェア構成図に示すように、カメラトラッキング装置１Ａは、クライアント・サーバ型のコンピュータシステムとして構成することもできる。
【００４８】
カメラトラッキング装置１Ａは、現場端末２とサーバ３とから構成されており、現場端末２はサーバ３と通信ネットワークＣＮを介して通信可能に接続されている。クライアント・サーバ型のカメラトラッキング装置１Ａでは、現場端末２で撮影した画像をサーバ３で処理し、その処理結果を現場端末２へ送信して表示させる。
【００４９】
現場端末２は、例えば、ＣＰＵ２１、入力部２２、表示部２３、カメラ２４、メモリ２５、通信部２６、補助記憶装置２７を備えることができる。
【００５０】
サーバ３は、例えば、ＣＰＵ３１、入力部３２、表示部３３、メモリ３５、通信部３６、補助記憶装置３７を備えることができる。現場端末２もサーバ３も、入力部、表示部、カメラ、メモリ、通信部、補助記憶装置については、図２の構成と基本的に同様であるため、その説明を省略する。
【００５１】
相違点を述べると、上述の通り、クライアント・サーバ型のカメラトラッキング装置１Ａでは、現場端末２とサーバ３とで役割を分担するため、それぞれの役割に応じたコンピュータプログラムを保持する。
【００５２】
例えば、現場端末２は、撮影画像と所定のキーフレーム画像とを表示部２３に重畳表示する画像処理部Ｐ２１、サーバ３との間でデータを送受信するデータ送受信部Ｐ２２を実現するためのコンピュータプログラムを有する。
【００５３】
例えば、サーバ３は、キーフレーム画像を事前に生成して登録するためのキーフレーム生成部Ｐ３１、カメラトラッキング処理部Ｐ３２、ＡＲ処理部Ｐ３３を実現するためのコンピュータプログラムを備える。
【００５４】
図４は、ＨＭＤ型のカメラトラッキング装置１Ｂを示す説明図である。このカメラトラッキング装置１Ｂは、図２で述べたように現場に持ち運び可能な単一のコンピュータシステムとして構成してもよいし、図３で述べたようにクライアント・サーバ型システムで使用する現場端末２として構成してもよい。
【００５５】
ＨＭＤ型カメラトラッキング装置１Ｂは、例えば、ユーザ４の頭部にカメラ１４，２４と表示部１３，２３を着脱可能に装着し、タブレットや携帯端末として構成されるコンピュータ本体（ＣＰＵ１１，２１、メモリ１５，２５、入力部１２，２２などを含む）とカメラおよび表示部とを無線または有線で接続してもよい。
【００５６】
ユーザは、入力部１２，２２を操作することで、表示部１３，２３にＡＲ情報を表示させ、ＡＲ情報を見ながら作業等を行う。カメラ１４，２４から得られたカラーの撮影画像や奥行き情報は、カメラトラッキング処理部Ｐ１２，Ｐ３２により処理される。これにより、カメラトラッキング装置１Ｂは、ユーザ頭部に装着されたカメラ１４，２４の位置と姿勢を推定する。
【００５７】
そして、カメラトラッキング装置１Ｂは、推定した情報に基づいて、カメラ１４，２４から入力される画像（実際の撮影画像）に対応するキーフレーム画像をＣＧ（Computer Graphics）データとして、カメラ１４，２４からの入力画像に重畳し、表示部１３，２３に表示する。入力画像と対応するキーフレーム画像（所定のキーフレーム画像）とが一致すると、カメラ１４，２４の位置と姿勢の調整が完了し、カメラトラッキングを開始するための準備が整う。カメラトラッキング装置１Ｂは、ＡＲ情報とカメラ１４，２４で撮影している画像とが重なるようにして表示部１３，２３に表示する。ユーザは、ＡＲ情報を参照しながら作業を行う。
【００５８】
ところでユーザ４の作業中にカメラ１４，２４の位置や姿勢を推定できなくなると（ロスト時）、カメラトラッキング装置１Ｂは、キーフレーム画像との照合により位置や姿勢を推定し、ロストから回復する。
【００５９】
図５は、タブレット型のカメラトラッキング装置１Ｃを示す。いわゆるタブレット型コンピュータとして構成されるカメラトラッキング装置１Ｃは、その背面にカメラ１４，２４が設けられており、表示部１３，２３と入力部１２，２２とはタブレット表面に設けられている。
【００６０】
最初にユーザが、タブレット型のカメラトラッキング装置１ＣをＡＲ対象物へ向けて操作すると、図４のＨＭＤ型カメラトラッキング装置１Ｂで述べたと同様の初期設定が行われる。すなわちカメラトラッキング装置１Ｃは、カメラ１４，２４で撮影された画像に対し、その画像に対応するキーフレーム画像を重畳表示する。両方の画像が一致すると、カメラトラッキング処理の初期化が完了する。そして、カメラ１４，２４で撮影している画像に対してＡＲ情報が重ねられて、表示部１３，２３に表示される。
【００６１】
図６は、メモリ１５に記憶されたデータを示す。以下では、単一のコンピュータシステムからカメラトラッキング装置１を構成する場合を例に挙げて説明する。
【００６２】
メモリ１５は、例えば、入力画像Ｇｒ、カメラの位置と姿勢の推定データＤ１、入力画像の画像特徴量Ｄ２、３次元モデルＤ３、キーフレーム画像Ｇｖ、重畳画像Ｇｓ、キーフレームデータＤ４を記憶する。
【００６３】
入力画像Ｇｒとは、カメラ１４で実際に撮影された画像データである。カメラトラッキング装置１へ入力される画像データであるため、入力画像Ｇｒと呼ぶ。入力画像Ｇｒは、ＲＧＢ画像データの場合でもよいし、さらに奥行き情報を含むＲＧＢ−Ｄ画像データであってもよい。
【００６４】
カメラの位置と姿勢の推定データＤ１は、カメラ１４の位置および姿勢の推定値を示すデータである。カメラトラッキング処理とは、カメラ１４の位置および姿勢の推定値を高精度に求める処理のことである。
【００６５】
入力画像の画像特徴量Ｄ２は、入力画像Ｇｒから求めた画像特徴量のデータである。画像特徴量の詳細については後述する。
【００６６】
３次元モデルＤ３は、３次元再構成によって生成される、トラッキング対象の３次元モデルのデータである。３次元モデルは、３次元再構成で求める場合には点群で表現される場合が多いが、ポリゴンやボリュームデータで３次元モデルを表現してもよい。３次元モデルＤ３は3次元再構成によって生成されるだけでなく、３次元ＣＡＤデータから生成することも可能である。
【００６７】
キーフレーム画像Ｇｖは、カメラトラッキング処理で使用するキーフレーム画像のデータであり、後述のように、入力画像ＧｒとキーフレームデータＤ４とから求める。
【００６８】
重畳画像Ｇｓは、入力画像Ｇｒにキーフレーム画像Ｇｖを重畳表示した画像のデータである。
【００６９】
キーフレームデータＤ４は、入力画像Ｇｒに対応するカメラの位置および姿勢のデータの組が格納されている。キーフレームデータＤ４の詳細な例は、図７で後述する。
【００７０】
図７を用いて、キーフレームデータＤ４の詳細を説明する。キーフレームデータＤ４は、Ｎ個のキーフレーム（キーフレーム１、キーフレーム２、…、キーフレームＮ）を有するデータベースである。
【００７１】
各キーフレームは、入力画像Ｇｒから得られる画像データＤ４１と、その入力画像Ｇｒを撮影したときのカメラ１４の位置および姿勢を示すデータＤ４２と、その入力画像Ｇｒの画像特徴量と、を備える。画像データＤ４１は、実際の画像である入力画像Ｇｒから生成されるキーフレーム画像Ｇｖのデータである。
【００７２】
カメラの位置および姿勢を示すデータＤ４２は、世界座標系におけるカメラ１４の位置（Ｘ，Ｙ，Ｚ）と方向とから構成される。カメラ１４の方向の記述方法には様々な方法が存在するが、例えばＸ軸、Ｙ軸、Ｚ軸周りの回転角度（θx, θy, θz）でカメラ１４の方向を記述することができる。
【００７３】
図８を用いて、本実施例のカメラトラッキング装置１の利用シーンを説明する。図８の最上部には、カメラ１４の入力画像Ｇｒの例が示されている。ここでは、図８の最上部に示すような室内のシーンをカメラトラッキングしているものとする。そして、図８の入力画像Ｇｒに対してカメラトラッキングが失敗（ロスト）し、カメラトラッキングの復帰処理を実行する場合を説明する。
【００７４】
カメラ１４は室内の装置ＯＢＪ１を撮影しており、入力画像Ｇｒには装置ＯＢＪ１が含まれている。この装置ＯＢＪ１を活用して、カメラトラッキングの復帰および初期化を行うことを考える。
【００７５】
本実施例では、カメラ１４で撮影した画像Ｇｒとカメラ１４の位置および姿勢とを対応付けた複数のキーフレームを予め記憶するキーフレームデータＤ４を備えている。このキーフレームデータＤ４に含まれている複数枚のキーフレーム画像と、現在のカメラ１４からの入力画像Ｇｒとを比較し、カメラ１４の入力画像Ｇｒと類似したキーフレーム画像を求める。この処理の詳細は後述する。入力画像Ｇｒに類似するとして求められたキーフレーム画像Ｇｖの例を図８の最下部に示す。
【００７６】
カメラトラッキング装置１は、キーフレーム画像Ｇｖに対応したカメラ１４の位置および姿勢を初期値として、カメラ１４の位置および姿勢を推定する。この推定処理が成功した場合はロストからの復帰は成功であるため、カメラトラッキングを継続し、対象物にＡＲ情報を重ねるなどのＡＲ処理を実行する。以下、カメラの位置と姿勢のことを、「位置姿勢」と呼ぶ場合がある。
【００７７】
上述のキーフレーム画像Ｇｖに対応したカメラ１４の位置姿勢を初期値としたロストからの復帰が失敗した場合、カメラ１４の現在の位置姿勢とカメラ１４の位置姿勢の推定値とが十分に類似していないことが考えられる。
【００７８】
このため、カメラ１４の現在の位置姿勢と、カメラ１４の位置姿勢の推定値とを近づける必要がある。カメラ１４の現在の位置姿勢と、カメラ１４の位置姿勢の推定値とを近づける方法として、以下の２つの方法がある。
【００７９】
第１の方法は、カメラ１４の現在の位置姿勢をカメラ１４の位置姿勢の推定値（キーフレームでのカメラの位置姿勢の推定値）に近づける方法である。第２の方法は、カメラ１４の現在の位置姿勢に、カメラ１４の位置姿勢の推定値を近づける方法である。
【００８０】
すなわち、第１の方法では、実際の画像である入力画像Ｇｒがキーフレーム画像Ｇｖに近づくようにする。第２の方法では、キーフレーム画像Ｇｖが入力画像Ｇｒに近づくようにする。第１実施例では、第１の方法を用いる。後述の第２実施例では、第１の方法に加えて、第２の方法も用いる場合を説明する。なお、第２の方法のみを用いる場合も、本発明の範囲に含まれる。
【００８１】
ユーザがカメラ１４の位置姿勢を更新する第１の方法の場合には、重畳画像Ｇｓにおいて、キーフレーム画像Ｇｖ中の装置ＯＢＪ２は固定であり、入力画像Ｇｒ中の装置ＯＢＪ１がカメラ１４の現在の位置姿勢に対応して変更される。
【００８２】
図８の中央部に位置する重畳画像Ｇｓに示すように、入力画像Ｇｒに重畳するキーフレーム画像Ｇｖは、入力画像Ｇｒに類似している。このため、ユーザは容易に、キーフレーム画像Ｇｖと入力画像Ｇｒとがより類似するように、カメラ１４の位置姿勢を変化させることができる。
【００８３】
カメラ１４の移動は、図４に示すＨＭＤを用いたシステム構成の場合、ユーザ自体の移動に対応する。図５に示すタブレット端末を用いたシステム構成の場合、タブレットの移動がカメラの移動に対応する。
【００８４】
カメラ１４の位置姿勢が更新されると、カメラトラッキング装置１は、キーフレーム画像Ｇｖに対応したカメラ１４の位置姿勢を初期値として、カメラ１４の位置姿勢の推定処理を行う。この推定処理が成功した場合はロストからの復帰は成功であり、カメラトラッキングを継続し、ＡＲ処理を実行する。なお、一定時間ロストからの復帰が成功しない場合、ＡＲ処理は終了するものとする。
【００８５】
図９は、ＨＭＤを用いたカメラトラッキング装置１（ＡＲシステム）の場合に、ユーザ４がその位置や姿勢を動かすことで、実際のトラッキング対象装置ＯＢＪ１と３次元モデルの装置ＯＢＪ２とを一致させる様子を示す。
【００８６】
ユーザが４（１）から４（２）または４（３）のいずれかに移動すると、ＨＭＤに組み込まれたカメラ１４の位置や姿勢も変化する。これにより、実際のトラッキング対象装置ＯＢＪ１と３次元モデルの装置ＯＢＪ２との重なり方もＧｓ（１）〜Ｇｓ（３）のように変化する。重畳画像Ｇｓ（３）に示すように、実際のトラッキング対象装置ＯＢＪ１と３次元モデルの装置ＯＢＪ２とのずれが所定範囲内に収まると、カメラ１４の位置姿勢が一致したものと推定される。
【００８７】
次に、図８で述べた本実施例の利用シーンを実現するための方法を説明する。本実施例は、オフラインでの前処理と、リアルタイムのカメラトラッキング処理（およびＡＲ処理の実行）との２つから構成される。
【００８８】
前処理では、事前にトラッキング対象の３次元モデルＤ３を復元し、キーフレームデータＤ４を構築する。リアルタイムのカメラトラッキング処理では、３次元モデルＤ３とキーフレームデータＤ４とを用いて、カメラ１４の位置姿勢をリアルタイムで推定し、推定した位置姿勢Ｄ１を用いて、カメラ１４の入力画像ＧｒにさまざまなＡＲ情報（例えばＣＧ映像）を重畳する。
【００８９】
図１０は、オフラインの前処理としての、キーフレームデータＤ４を生成して保存する処理を示すフローチャートである。
【００９０】
カメラトラッキング装置１は、トラッキング対象を複数枚撮影する（Ｓ１０）。この撮影に使用するカメラは、ＡＲシステムで使用するカメラ１４であってもよいし、別のカメラシステムでもよい。
【００９１】
カメラトラッキング装置１は、ステップＳ１０で取得した複数の画像から、公知のＳｆＭ処理（Structure from Motion）処理（非特許文献１）によって、各画像でのカメラの位置姿勢を推定する（Ｓ１１）。さらに、カメラトラッキング装置１は、ＳｆＭ処理および３次元復元処理（非特許文献３）によって、トラッキング対象の３次元モデルＤ３を復元する（Ｓ１２）。
【００９２】
上述の例では、画像特徴点を用いた３次元復元（ＳｆＭ）を想定して説明したが、これに代えて、非特許文献２に記載のように、ＲＧＢ−Ｄデータを用いて密な点群として３次元形状を復元してもよい。
【００９３】
カメラトラッキング装置１は、入力された複数の画像から特徴的な画像を選択し、キーフレームデータＤ４の画像データＤ４１として登録する。このために、カメラトラッキング装置１は、各入力画像に対して画像特徴量を算出する。
【００９４】
ここで、画像特徴量とは、各画像を少ないデータで記述したものであり、２つの画像の特徴量の距離が近い場合にはその２つの画像が類似しているようなデータである。画像特徴量には様々なものが存在するが、非特許文献４のrandomized fernsや非特許文献５のbag of keypointsなどが利用できる。画像特徴量は多次元ベクトルで表現され、ベクトル間の距離を求めることで画像間の非類似度を求めることが可能である。
【００９５】
カメラトラッキング装置１は、各画像について画像特徴量およびカメラの位置姿勢を求めると、これらを用いてキーフレーム画像を選択し、キーフレームデータＤ４を生成する（Ｓ１４）。すなわち、カメラトラッキング装置１は、画像特徴量およびカメラの位置姿勢が類似している画像をキーフレームから除外する。これにより、キーフレームデータＤ４が構築される。
【００９６】
図１１のフローチャートを用いて、リアルタイムのカメラトラッキング処理およびＡＲ処理の実行方法を説明する。
【００９７】
カメラトラッキング装置１は、カメラ１４から画像Ｇｒを取り込む（Ｓ２０）。カメラトラッキング装置１は、入力されたカメラ画像Ｇｒと、３次元モデルＤ３と、１フレーム前のカメラの位置姿勢データとを用いて、カメラ１４の位置姿勢を推定する処理（カメラトラッキング）を実行する（Ｓ２１）。
【００９８】
カメラトラッキングに非特許文献１の方法を用いてもよい。その場合、入力画像Ｇｒから特徴点を抽出し、３次元モデルＤ３の画像特徴点とのマッチングを行うことでカメラ１４の位置姿勢を推定する。この過程で、１フレーム前のカメラ１４の位置姿勢データを用いる。また、非特許文献２の方法を用いる場合、入力画像Ｇｒの奥行きと３次元モデル３Ｄから得られた奥行きとを適合させることで、カメラ１４の位置姿勢を推定する。
【００９９】
カメラトラッキング装置１は、カメラ１４の位置姿勢の推定に成功したか判定する（Ｓ２２）。カメラトラッキング装置１は、３次元モデルＤ３と推定されたカメラの位置姿勢Ｄ１とから生成される２次元画像と入力画像Ｇｒとの類似度が閾値以上の場合に、カメラ１４の位置姿勢の推定が成功と判断し（Ｓ２２：ＹＥＳ）、閾値以下の場合に推定は失敗と判断する（Ｓ２２：Ｎｏ）。
【０１００】
カメラトラッキング装置１は、カメラトラッキングに成功すると、カメラの位置姿勢の推定値Ｄ１を用いて、ＡＲ処理部Ｐ１２による処理を実行させる（Ｓ２３）。ＡＲ処理では、入力画像Ｇｒに対してＣＧ映像や文字などを重畳表示する。カメラトラッキング装置１は、ＡＲ処理が終了するか判定し（Ｓ２４）、終了と判定すると（Ｓ２４：ＹＥＳ）、ＡＲ処理部Ｐ１２の動作を停止させる。ＡＲ処理が終了しない場合（Ｓ２４：ＮＯ）、ステップＳ２０へ戻る。
【０１０１】
カメラトラッキング装置１は、カメラトラッキングに失敗したと判定した場合（Ｓ２２：ＮＯ）、予め登録されているキーフレーム画像Ｇｖの中から、入力画像Ｇｒに類似した所定のキーフレーム画像Ｇｖを１つ選択する（Ｓ２５）。
【０１０２】
ステップＳ２５の処理は、以下のように実行する。まずカメラトラッキング装置１は、入力画像Ｇｒから画像特徴量Ｄ２を求め、この画像特徴量Ｄ２とキーフレームデータＤ４に保存されている各キーフレーム画像Ｇｖとの距離を求める。カメラトラッキング装置１は、この距離が最小のキーフレーム画像Ｇｖを求める。
【０１０３】
カメラトラッキング装置１は、入力画像Ｇｒに類似するキーフレーム画像Ｇｖを選出できたか判定する（Ｓ２６）。カメラトラッキング装置１は、ステップＳ２５で抽出したキーフレーム画像ＧｖとステップＳ２０で取得した入力画像Ｇｒとの距離が閾値以下である場合、適切なキーフレーム画像Ｇｖが選出されたと判断し（Ｓ２６：ＹＥＳ）、ステップＳ３０へ進む。
【０１０４】
カメラトラッキング装置１は、抽出したキーフレーム画像Ｇｖと入力画像Ｇｒとの距離が閾値以上である場合（Ｓ２６：ＮＯ）、入力画像Ｇｒに類似するキーフレーム画像Ｇｖの選出に失敗したと判断する（Ｓ２６：ＮＯ）。カメラトラッキング装置１は、次の画像がカメラ１４から入力されるのを待って（Ｓ２７）、ステップＳ２５へ戻る。
【０１０５】
カメラトラッキング装置１は、入力画像Ｇｒに類似するキーフレーム画像Ｇｖの選出に成功すると、そのキーフレーム画像Ｇｖと入力画像Ｇｒとを重畳表示した画像Ｇｓを表示部１３に表示させる（Ｓ３０）。重畳画像Ｇｓの一例は図８に示した通りである。
【０１０６】
ユーザは、図９で述べたように、重畳画像Ｇｓを見ながら、カメラ１４を移動させることで、カメラ１４の位置姿勢と３次元モデル空間におけるカメラ（仮想カメラ）の位置姿勢の推定値とを近づける。このために、カメラトラッキング装置１は、カメラ１４から最新の画像を取得する（Ｓ３１）。カメラ画像入力はリアルタイムで更新される。
【０１０７】
カメラ画像入力が更新されると（Ｓ３１）、カメラトラッキング装置１は、カメラ１４の位置姿勢を推定する処理を実行する（Ｓ３３）。ステップＳ３３は、ステップＳ２１と同様の処理である。
【０１０８】
次にカメラトラッキング装置１は、カメラ１４の位置姿勢の推定に成功したか判定する（Ｓ３４）。このステップＳ３４は、ステップＳ２２と同様の処理である。カメラトラッキング装置１は、カメラ１４の位置姿勢の推定に成功した場合（Ｓ３４：ＹＥＳ）、カメラトラッキングに成功したと判定し、ステップＳ２０へ戻る。これにより、カメラトラッキングはロストから復帰し、ステップＳ２１，Ｓ２２を経てステップＳ２３へ進み、ＡＲ処理が実行される。
【０１０９】
これに対し、カメラ１４の位置姿勢の推定に失敗した場合（Ｓ３４：ＮＯ）、カメラトラッキング装置１は、ステップＳ３０に戻って重畳画像Ｇｓを表示する。そして、カメラトラッキング装置１は、再びカメラ１４から最新画像を取込み（Ｓ３１）、カメラ１４の位置姿勢を推定し直し（Ｓ３３）、その推定に成功したか判定する（Ｓ３４）。
【０１１０】
なお、図示は省略するが、カメラ１４の位置姿勢を推定する処理（Ｓ３３）が予め定められた一定時間内に成功しない場合、カメラトラッキング装置１は、カメラトラッキング処理に失敗したと判定し、本処理を終了する。
【０１１１】
このように構成される本実施例によれば、カメラトラッキングの初期化時やロスト時に、カメラ１４の入力画像Ｇｒに類似するキーフレーム画像Ｇｖを自動的に抽出して重畳表示し、両方の画像が一致するときにカメラの位置姿勢の推定に成功したと判定する。したがって、本実施例では、事前に登録された複数のキーフレーム画像の中から入力画像Ｇｒに類似するキーフレーム画像Ｇｖを選択するだけで、カメラの位置姿勢の推定を効率よく速やかに行うことができ、ＡＲシステム（カメラトラッキング装置１）の使い勝手が向上する。
【実施例２】
【０１１２】
図１２，図１３を用いて第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に相当するため、第１実施例との相違を中心に説明する。本実施例では、実際のカメラ１４の位置姿勢と、カメラの位置姿勢の推定値（３次元モデル空間での仮想カメラの位置姿勢）とを近づける方法として、キーフレーム画像Ｇｖの位置や向きを変化させる方法（上述の第２の方法）も使用する。
【０１１３】
ユーザがカメラの位置姿勢の推定値を更新する第２の方法の場合には、重畳画像Ｇｓの入力画像Ｇｒを固定し、キーフレーム画像Ｇｖを対話的に更新することで、カメラの位置姿勢を推定する。キーフレーム画像Ｇｖは、トラッキング対象をカメラの位置姿勢で撮影した画像である。トラッキング対象の３次元モデルを用いることで、カメラの位置姿勢を変更した場合の画像を生成することができる。
【０１１４】
本実施例では、ユーザは、キーフレーム画像Ｇｖに対応するカメラの位置姿勢から、マウスやタッチパネル等を用いて操作することにより重畳画像Ｇｓを更新し、ＣＧ画像Ｇｖと入力画像Ｇｒとを類似させる。
【０１１５】
なお、実際のカメラの位置姿勢の更新（第１の方法）、カメラの位置姿勢の推定値の更新（第２の方法）の２つを別々に実行してもよいし、同時に実行してもよい。
【０１１６】
図１２は、固定された入力画像Ｇｒに対して、キーフレーム画像Ｇｖをユーザが動かして一致させる例を示す。図８の最上部に示すように、ユーザは、入力画像Ｇｒ上の特徴的な点Ｍ１１〜Ｍ１４をマウスポインタ等で指定する。ここでは、ユーザは、実際の装置ＯＢＪ１の四隅を特徴点Ｍ１１〜Ｍ１４として指定したものとする。特徴点Ｍ１１〜Ｍ１４は「第１特徴点」に該当する。
【０１１７】
図８の最下部に示すように、ユーザは、入力画像Ｇｒ上の特徴点Ｍ１１〜Ｍ１４に対応させるべく、キーフレーム画像Ｇｖ上の特徴点Ｍ２１〜Ｍ２４を指定する。ここでは、ユーザは、３次元モデル空間内の装置ＯＢＪ２の四隅を特徴点Ｍ２１〜Ｍ２４として指定したものとする。特徴点Ｍ２１〜Ｍ２４は「第２特徴点」に該当する。
【０１１８】
カメラトラッキング装置１は、ユーザによって特徴点Ｍ１１〜Ｍ１４，Ｍ２１〜Ｍ２４が指定されると、重畳画像Ｇｓにおいて、対応する特徴点同士が重なり合うように、キーフレーム画像Ｇｖの位置や姿勢を自動的に変化させる。図８の中央部に示す重畳画像Ｇｓは、キーフレーム画像Ｇｖを入力画像Ｇｒに重ねた瞬間を示しており、両画像Ｇｖ，Ｇｒは未だ一致していない。
【０１１９】
このように、ユーザが入力画像Ｇｒおよびキーフレーム画像Ｇｖの両方において特徴的な点を指定することで、キーフレーム画像Ｇｖの位置や姿勢を入力画像Ｇｒへ自動的に一致させることができる。特徴点のペアは少なくとも３つあればよい。
【０１２０】
自動的にキーフレーム画像Ｇｖの位置や姿勢を変化させる方法に限らず、ユーザがマウス等でキーフレーム画像Ｇｖの位置や姿勢を手動で変化させることもできる。
【０１２１】
図１３は、本実施例によるカメラトラッキング処理およびＡＲ処理の実行方法を示すフローチャートである。本フローチャートは、図１１で述べたステップＳ２０〜Ｓ２７，Ｓ３０，Ｓ３１，Ｓ３３，Ｓ３４を全て含んでいる。さらに本実施例のフローチャートは、ステップＳ３１とステップＳ３３との間で、新規なステップＳ３２を実行する。
【０１２２】
カメラトラッキング装置１は、カメラ１４の入力画像Ｇｒとキーフレーム画像Ｇｖとを重畳した画像Ｇｓを表示する（Ｓ３０）。ユーザは、重畳画像Ｇｓを見ながら、カメラ１４を移動させたり姿勢を変えたりすることができる（Ｓ３１）。
【０１２３】
さらに、ユーザは、重畳されているキーフレーム画像Ｇｖをマウス等を用いて対話的に操作し、キーフレーム画像Ｇｖを移動させたり回転させたりして、カメラの位置姿勢の推定値を更新させる（Ｓ３２）。入力画像Ｇｒとキーフレーム画像Ｇｖとは、リアルタイムで更新される。
【０１２４】
入力画像Ｇｒが更新されるか、あるいはカメラ位置姿勢の推定値Ｄ１が更新されるかのいずれかの場合、カメラ位置姿勢を推定する処理が実行される（Ｓ３３）。カメラトラッキング装置１は、カメラ位置姿勢の推定が成功した場合（Ｓ３４：ＹＥＳ）、カメラトラッキングが成功し、ロストからの復帰は成功と判定し、ステップＳ２０へ移る。
【０１２５】
カメラ位置姿勢の推定に失敗した場合（Ｓ３４：ＮＯ）、カメラトラッキング装置１は、ステップＳ３０へ戻る。
【０１２６】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例によれば、ユーザは、入力画像Ｇｒをキーフレーム画像Ｇｖに一致させるか（Ｓ３１）、あるいは、キーフレーム画像をＧｖを入力画像Ｇｒに一致させるか（Ｇ３２）、のいずれか一つまたは両方の方法を選択することができる。したがって、ユーザは、状況やトラッキング対象の形状などに応じて、適切な方法を採用することができる。この結果、本実施例は、第１実施例に比べて使い勝手がさらに向上する。
【実施例３】
【０１２７】
図１４，図１５を用いて第３実施例を説明する。本実施例では、入力画像Ｇｒに類似するキーフレーム画像Ｇｖの候補（キーフレーム画像候補）を複数個ユーザへ提示し、ユーザにキーフレーム画像Ｇｖを選択させる。これにより、本実施例では、ロストからの回復の成功率をさらに高める。
【０１２８】
図１４の上側に示すように、カメラトラッキング装置１は、入力画像Ｇｒに類似するキーフレーム画像候補を複数（ここでは４個）選択して、ユーザへ提示する。図１４の例では、カメラトラッキング装置１は、４個のキーフレーム画像候補Ｇｖｃ１〜Ｇｖｃ４を表示部１３に表示させる。
【０１２９】
図１４の下側に示すように、ユーザは、キーフレーム画像候補を提示されると、例えば周囲を見回し、現実のトラッキング対象に最も類似するキーフレーム画像候補を一つ選択する。ここでは、キーフレーム画像候補Ｇｖｃ１が選択されたものとする。図１４では、選択されたことが明確にわかるように、強調表示５を付している。ユーザは、入力部１２を用いて、複数提示されたキーフレーム画像候補の中から任意のキーフレーム画像候補を一つ選択することができる。
【０１３０】
図１５のフローチャートを用いて、第３実施例によるリアルタイムのカメラトラッキング処理およびＡＲ処理の実行方法を説明する。図１５のフローチャートは、図１１で述べたフローチャートと共通のステップＳ２０〜Ｓ２７，Ｓ３０，Ｓ３１，Ｓ３３，Ｓ３４を全て含んでいる。
【０１３１】
また、本実施例では、新規なステップＳ２８，Ｓ２９を備える。さらに、図１１のステップＳ２５に代わる本実施例のステップＳ２５Ａでは、複数のキーフレーム画像候補を選出する。また、図１１のステップＳ２６に代わる本実施例のステップＳ２６Ａでは、適切なキーフレーム画像候補が選出されたか判定する。
【０１３２】
カメラトラッキング装置１は、カメラの位置姿勢の推定に失敗すると（Ｓ２２：ＮＯ）、入力画像Ｇｒに類似するキーフレーム画像の候補をｍ個選択する（Ｓ２５Ａ）。ステップＳ２５Ａの処理は、例えば以下のように実行する。カメラトラッキング装置１は、入力画像Ｇｒから画像特徴量Ｄ２を求める。続いて、カメラトラッキング装置１は、画像特徴量Ｄ２とキーフレームデータＤ４に保存されている各キーフレームの画像特徴量Ｄ４３との距離を求める。そして、カメラトラッキング装置１は、その距離が小さいキーフレームに含まれている画像データＤ４１をキーフレーム画像候補としてｍ個抽出する。
【０１３３】
カメラトラッキング装置１は、所定数ｍの適切なキーフレーム画像候補を選出できたか判定する（Ｓ２６Ａ）。適切なキーフレーム画像候補とは、入力画像Ｇｒに類似する画像である。
【０１３４】
カメラトラッキング装置は、上位ｍ個のキーフレームが持つ画像データＤ４１（キーフレーム画像候補）の画像特徴量Ｄ４３と入力画像Ｇｒの画像特徴量Ｄ２との距離が所定の閾値以下である場合、適切なキーフレーム画像候補が選出されたと判定する（Ｓ２６：ＹＥＳ）。
【０１３５】
これに対し、カメラトラッキング装置１は、画像特徴量Ｄ４３と画像特徴量Ｄ２との距離が所定の閾値以上である場合、キーフレーム画像候補の選出に失敗したと判定する（Ｓ２６Ａ：ＮＯ）。選出失敗の場合は、新たな画像がカメラ１４から入力されるのを待って（Ｓ２７）、キーフレーム画像候補を再び選出する（Ｓ２５Ａ）。
【０１３６】
カメラトラッキング装置１は、ｍ個のキーフレーム画像候補の選出に成功すると（Ｓ２６Ａ：ＹＥＳ）、キーフレーム画像候補を表示部１３に提示する（Ｓ２８）。表示部１３は、図１４で述べたように、ｍ個のキーフレーム画像候補を表示する。ユーザは、周囲を見回し、トラッキング対象に最も類似すると考えるキーフレーム画像候補を一つ選択して、キーフレーム画像とする（Ｓ２９）。
【０１３７】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。
さらに本実施例では、カメラトラッキング装置１が自動的に抽出した複数のキーフレーム画像候補をユーザへ提示することで、ユーザがトラッキング対象に最も類似するキーフレーム画像を手動で選択するため、カメラトラッキングのロストから回復する可能性を第１実施例よりも高めることができる。
【０１３８】
なお、上述のステップＳ２５Ａでは、入力画像Ｇｒの画像特徴量Ｄ２とキーフレームデータＤ４の特徴量Ｄ４３との間の距離に基づいて、入力画像Ｇｒに類似したキーフレーム画像候補を複数選出する場合を述べたが、本実施例はこの方法に限定されない。
【０１３９】
例えば、他の一つの方法として、カメラトラッキングがロストする直前のカメラ１４の位置姿勢を用いる方法がある。この方法では、カメラの位置姿勢を推定するステップＳ２１において、カメラ位置姿勢の推定精度を評価する。そして、カメラの位置姿勢の推定値と推定精度のログを記録しておく。これにより、カメラトラッキングがロストした場合（Ｓ２２：ＮＯ）、そのログを用いて、ロスト直前でありかつ、推定精度が所定の閾値以上であるカメラの位置姿勢の推定値を求める。
【０１４０】
なお、ステップＳ２５Ａでは、画像特徴量を用いた距離だけでなく、カメラの位置姿勢間の距離も加算することで、キーフレーム画像候補を選択してもよい。さらに、カメラトラッキングのロスト時だけでなく、カメラトラッキングの開始時（初期化時）においても、複数のキーフレーム画像候補をユーザに提示して選択させてもよい。
【０１４１】
なお，ステップＳ２５Ａ，ステップＳ２６Ａではｍ個のキーフレーム画像候補の選出に成功することを判定の条件としていたが、１個以上のキーフレーム画像候補の選出に成功することを判定の条件とすることも可能である。この場合には，ユーザに提示するキーフレーム画像候補の数は選出されたキーフレーム画像となり，所定数ｍ個が提示されるわけではない。
【実施例４】
【０１４２】
図１６を用いて第４実施例を説明する。本実施例では、入力画像Ｇｒに類似するキーフレーム画像（所定のキーフレーム画像）Ｇｖを選択する方法を複数用意し、状況に応じて切り替える。すなわち、本実施例では、最初はカメラトラッキング装置１により自動的に一つのキーフレーム画像を選択するが（Ｓ２５）、自動的に選択したキーフレーム画像ではカメラトラッキングを開始できない場合に、キーフレーム画像候補を複数個ユーザへ提示し、その中からキーフレーム画像をユーザに選択させる（Ｓ３５〜Ｓ３７）。
【０１４３】
図１６のフローチャートを用いて、第４実施例によるリアルタイムのカメラトラッキング処理およびＡＲ処理の実行方法を説明する。図１６のフローチャートは、図１１で述べたフローチャートと共通のステップＳ２０〜Ｓ２７，Ｓ３０，Ｓ３１，Ｓ３３，Ｓ３４を全て含んでいる。さらに、図１６のフローチャートは、新規なステップＳ３５〜Ｓ３６を備えている。
【０１４４】
最初は、第１実施例と同様に、カメラトラッキング装置１が入力画像Ｇｒに類似するキーフレーム画像を自動的に一つ選択して（Ｓ２５，Ｓ２６）、カメラの位置姿勢を推定する（Ｓ３０，Ｓ３１，Ｓ３３）。
【０１４５】
しかし、自動的に選択されたキーフレーム画像ではカメラの位置姿勢の推定に成功しない場合（Ｓ３４：ＮＯ）、カメラトラッキング装置１は、第３実施例で述べた選択方法に切り替える。
【０１４６】
カメラトラッキング装置１は、入力画像Ｇｒに類似するキーフレーム画像候補を所定数だけ抽出し（Ｓ３５）、表示部１３を介してユーザへ提示する（Ｓ３６）。ユーザは、入力部１２を使用して、提示された各キーフレーム画像候補の中からトラッキング対象に最も似ていると考えるキーフレーム画像候補を一つ選択する（Ｓ３７）。カメラトラッキング装置１は、ユーザの選択したキーフレーム画像候補をキーフレーム画像として使用し、カメラの位置姿勢を推定する（Ｓ３３）。
【０１４７】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、最初はカメラトラッキング装置１がキーフレーム画像を自動的に選択してカメラの位置姿勢を推定し、カメラの位置姿勢の推定に失敗した場合には、キーフレーム画像候補を複数抽出してユーザへ提示し、ユーザにキーフレーム画像を選択させる。したがって、自動的なキーフレーム画像選択と手動によるキーフレーム画像選択とを状況に応じて切り替えることができ、ユーザの使い勝手がさらに向上する。
【０１４８】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
【０１４９】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０１５０】
なお、キーフレーム画像の選択方法としては、ロスト直前のカメラの位置姿勢に最も近いキーフレーム画像を選択する方法や、ジャイロセンサやコンパスなどのセンサからカメラ１４の位置姿勢を推定し、その推定した位置姿勢に最も近いキーフレーム画像を選択する方法などが考えられる。これらの方法を採用するカメラトラッキング装置も、本発明の範囲に含まれる。
【符号の説明】
【０１５１】
１，１Ａ，１Ｂ，１Ｃ：カメラトラッキング装置、１２，２２：入力部、１３，２３：表示部、１４，２４：カメラ、Ｆ１１：撮像部、Ｆ１２：キーフレーム生成部、Ｆ１３：キーフレーム記憶部、Ｆ１４：キーフレーム選択部、Ｆ１５：重畳表示部、Ｆ１６：判定部、Ｆ１７：ＡＲ処理部、Ｇｒ：カメラで撮影した実際の画像、Ｇｖ：キーフレーム画像、Ｇｓ：重畳画像
【図１】
2018014579.tif 000003
【図２】
2018014579.tif 000004
【図３】
2018014579.tif 000005
【図４】
2018014579.tif 000006
【図５】
2018014579.tif 000007
【図６】
2018014579.tif 000008
【図７】
2018014579.tif 000009
【図８】
2018014579.tif 000010
【図９】
2018014579.tif 000011
【図１０】
2018014579.tif 000012
【図１１】
2018014579.tif 000013
【図１２】
2018014579.tif 000014
【図１３】
2018014579.tif 000015
【図１４】
2018014579.tif 000016
【図１５】
2018014579.tif 000017
【図１６】
2018014579.tif 000018