(57)【要約】【課題】カメラポーズの推定処理の精度低下を抑えつつ継続性を向上させること。【解決手段】第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定部と、第一の推定方法よりも広範囲の空間に関してカメラポーズの推定が可能な第二の推定方法によって、画像に基づき撮像装置のカメラポーズを推定する第二推定部と、第一推定部によってカメラポーズの推定結果が得られた場合には当該推定結果を出力し、第一推定部によってカメラポーズの推定結果が得られなかった場合には第二推定部による推定結果を出力する選択部と、を備える。【選択図】図３
2014092984.tif 000002
【特許請求の範囲】
【請求項１】
第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定部と、
前記第一の推定方法よりも広範囲の空間に関して前記カメラポーズの推定が可能な第二の推定方法によって、前記画像に基づき前記撮像装置のカメラポーズを推定する第二推定部と、
前記第一推定部によって前記カメラポーズの推定結果が得られた場合には当該推定結果を出力し、前記第一推定部によって前記カメラポーズの推定結果が得られなかった場合には前記第二推定部による推定結果を出力する選択部と、
を備える推定装置。
【請求項２】
前記第一推定部及び前記第二推定部は、それぞれ推定結果の推定誤差を算出し、
前記選択部は、前記第一推定部によって前記カメラポーズの推定結果が得られた場合であって且つ前記第一推定部における前記推定誤差が前記第二推定部における前記推定誤差よりも小さい場合には前記第一推定部による推定結果を出力し、前記第一推定部によって前記カメラポーズの推定結果が得られた場合であって且つ前記第一推定部における前記推定誤差が前記第二推定部における前記推定誤差よりも大きい場合には前記第二推定部による推定結果を出力し、前記第一推定部によって前記カメラポーズの推定結果が得られなかった場合には前記第二推定部による推定結果を出力する
請求項１に記載の推定装置。
【請求項３】
前記第一推定部及び前記第二推定部は、再投影誤差を観測点数で正規化することによって前記推定誤差を算出する、請求項２に記載の推定装置。
【請求項４】
前記第一推定部及び前記第二推定部は、処理時点のカメラポーズと、以前のカメラポーズとの変動量を前記推定誤差として算出する、請求項２に記載の推定装置。
【請求項５】
第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定ステップと、
前記第一の推定方法よりも広範囲の空間に関して前記カメラポーズの推定が可能な第二の推定方法によって、前記画像に基づき前記撮像装置のカメラポーズを推定する第二推定ステップと、
前記第一推定ステップによって前記カメラポーズの推定結果が得られた場合には当該推定結果を出力し、前記第一推定ステップによって前記カメラポーズの推定結果が得られなかった場合には前記第二推定ステップによる推定結果を出力する選択ステップと、
を備える推定方法。
【請求項６】
第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定ステップと、
前記第一の推定方法よりも広範囲の空間に関して前記カメラポーズの推定が可能な第二の推定方法によって、前記画像に基づき前記撮像装置のカメラポーズを推定する第二推定ステップと、
前記第一推定ステップによって前記カメラポーズの推定結果が得られた場合には当該推定結果を出力し、前記第一推定ステップによって前記カメラポーズの推定結果が得られなかった場合には前記第二推定ステップによる推定結果を出力する選択ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影された画像に基づいて撮像装置の位置又は姿勢を推定する技術に関する。
【背景技術】
【０００２】
撮像装置が実空間を撮像することによって得られる画像（以下、「撮像画像」という。）に基づいて、撮像装置の位置及び姿勢を示すカメラポーズを推定する技術がある。得られたカメラポーズは、例えば撮像画像上にコンピュータグラフィクス（Computer Graphics：ＣＧ）等を合成する際にに使用される。
【０００３】
例えば非特許文献１には、黒い正方形の平面マーカを用いた技術が記載されている。平面マーカ上には、識別用のパターンが描かれている。平面マーカを撮像した画像に基づいて、平面マーカを基準座標系としたカメラポーズを算出することが可能である。
例えば非特許文献２には、予め３次元座標が計測された実空間内の点を既知３次元点として用いた技術が記載されている。まず、現在の撮像画像で観測された既知３次元点に対応する画像上の観測点を決定する。そして、既知３次元点の座標と画像上の観測点座標とを用いることで、平面マーカを用いることなくカメラポーズを算出することが可能である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】加藤博一,“拡張現実感システム構築ツールARToolKitの開発,” 信学技報告，PRMU2001-232, pp. 79-86,Oct. 2002.
【非特許文献２】“Parallel Tracking and Mapping for Small AR Workspaces”，Georg Klein and David Murray，In Proc. International Symposium on Mixed and Augmented Reality (ISMAR'07, Nara)，pp. 225-234，2007
【発明の概要】
【発明が解決しようとする課題】
【０００５】
平面マーカを用いた技術では、撮像画像内においてマーカに相当する観測点の特定が容易となる。そのため、カメラを動かしながら撮像したような動画像においても高い精度でカメラポーズを推定できる。しかしながら、カメラを動かすことによって撮像画像内から平面マーカがフレームアウトした場合は、カメラポーズの推定を継続できない。また、撮像装置が平面マーカにほぼ正対した位置で撮像した場合、局所解に陥りカメラポーズの推定精度が低下してしまう。
【０００６】
既知３次元点を用いた技術では、観測点が多い場合に高い精度でカメラポーズを推定することが可能である。また、実空間中で広範囲にわたって多数の既知３次元点を設定しておくことによって、カメラを種々の方向に動かしてもカメラポーズを継続的に算出することが可能となる。しかしながら、一般的に実空間内に実在する点が既知３次元点として使用される。そのため、既知３次元点の周辺に類似のパターンが存在した場合かつ観測点が少ない場合には、カメラポーズの推定精度が低下してしまう。
【０００７】
上記事情に鑑み、本発明は、カメラポーズの推定処理の精度低下を抑えつつ継続性を向上させる技術の提供を目的としている。
【課題を解決するための手段】
【０００８】
本発明の一態様は、第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定部と、前記第一の推定方法よりも広範囲の空間に関して前記カメラポーズの推定が可能な第二の推定方法によって、前記画像に基づき前記撮像装置のカメラポーズを推定する第二推定部と、前記第一推定部によって前記カメラポーズの推定結果が得られた場合には当該推定結果を出力し、前記第一推定部によって前記カメラポーズの推定結果が得られなかった場合には前記第二推定部による推定結果を出力する選択部と、を備える推定装置である。
【０００９】
本発明の一態様は、上記の推定装置であって、前記第一推定部及び前記第二推定部は、それぞれ推定結果の推定誤差を算出し、前記選択部は、前記第一推定部によって前記カメラポーズの推定結果が得られた場合であって且つ前記第一推定部における前記推定誤差が前記第二推定部における前記推定誤差よりも小さい場合には前記第一推定部による推定結果を出力し、前記第一推定部によって前記カメラポーズの推定結果が得られた場合であって且つ前記第一推定部における前記推定誤差が前記第二推定部における前記推定誤差よりも大きい場合には前記第二推定部による推定結果を出力し、前記第一推定部によって前記カメラポーズの推定結果が得られなかった場合には前記第二推定部による推定結果を出力する。
【００１０】
本発明の一態様は、上記の推定装置であって、前記第一推定部及び前記第二推定部は、再投影誤差を観測点数で正規化することによって前記推定誤差を算出する。
【００１１】
本発明の一態様は、上記の推定装置であって、前記第一推定部及び前記第二推定部は、処理時点のカメラポーズと、以前のカメラポーズとの変動量を前記推定誤差として算出する。
【００１２】
本発明の一態様は、第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定ステップと、前記第一の推定方法よりも広範囲の空間に関して前記カメラポーズの推定が可能な第二の推定方法によって、前記画像に基づき前記撮像装置のカメラポーズを推定する第二推定ステップと、前記第一推定ステップによって前記カメラポーズの推定結果が得られた場合には当該推定結果を出力し、前記第一推定ステップによって前記カメラポーズの推定結果が得られなかった場合には前記第二推定ステップによる推定結果を出力する選択ステップと、を備える推定方法である。
【００１３】
本発明の一態様は、第一の推定方法によって、撮像された画像に基づき撮像装置のカメラポーズを推定する第一推定ステップと、前記第一の推定方法よりも広範囲の空間に関して前記カメラポーズの推定が可能な第二の推定方法によって、前記画像に基づき前記撮像装置のカメラポーズを推定する第二推定ステップと、前記第一推定ステップによって前記カメラポーズの推定結果が得られた場合には当該推定結果を出力し、前記第一推定ステップによって前記カメラポーズの推定結果が得られなかった場合には前記第二推定ステップによる推定結果を出力する選択ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【００１４】
本発明により、カメラポーズの推定処理の精度低下を抑えつつ継続性を向上させることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】平面マーカ３０の具体例を示す図である。
【図２】本実施形態における座標系及び用語を説明するための図である。
【図３】推定装置１０の機能構成を表す概略ブロック図である。
【図４】平面マーカ情報の具体例を示す図である。
【図５】既知３次元点情報の具体例を示す図である。
【図６】第一動作例における推定装置１０の処理の流れを示すフローチャートである。
【図７】第二動作例における推定装置１０の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態の具体例について説明する。
まず、実施形態において用いる座標系及び用語について説明する。
図１は、平面マーカ３０の具体例を示す図である。図１に示される平面マーカ３０は、矩形のシートであり、その表面の四隅にはそれぞれ異なるパターンが描かれている。このように、平面マーカ３０の表面には複数の識別性の高いパターン（例えば幾何学模様）が描かれている。平面マーカ３０に用いられるパターンは、図１に示すものに限定される必要は無い。また、平面マーカ３０の形状は図１に示すものに限定される必要は無い。
【００１７】
図２は、本実施形態における座標系及び用語を説明するための図である。図２において、符号２０は既知３次元点を表し、符号４０は撮像画像を表す。ワールド座標系は、空間全体を表す任意に設定された基準座標系である。ワールド座標系の原点は、例えば平面マーカ３０の中心位置に設定される。既知３次元点２０は、ワールド座標系における３次元座標が既知の点である。カメラポーズは、ワールド座標系におけるカメラ位置の位置と回転とを表す。
【００１８】
図３は、推定装置１０の機能構成を表す概略ブロック図である。推定装置１０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行により、推定装置１０は、画像入力部１０１、情報入力部１０２、第一推定部１０３、第二推定部１０４及び選択部１０５を備える装置として機能する。なお、推定装置１０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されても良い。推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。
【００１９】
画像入力部１０１は、推定装置１０に対して入力される画像のデータを受け付ける。画像入力部１０１は、例えばＣＤ−ＲＯＭやＵＳＢメモリ（Universal Serial Bus Memory）等の記録媒体に記録された画像のデータを読み出しても良い。また、画像入力部１０１は、スチルカメラやビデオカメラによって撮像された画像を、カメラから受信しても良い。また、推定装置１０がスチルカメラやビデオカメラ若しくはカメラを備えた情報処理装置に内蔵されている場合は、画像入力部１０１は撮像された画像又は撮像前の画像をバスから受信しても良い。また、画像入力部１０１は、ネットワークを介して他の情報処理装置から画像のデータを受信しても良い。画像入力部１０１は、画像のデータの入力を受けることが可能な構成であれば、さらに異なる態様で構成されても良い。画像入力部１０１によって入力が受け付けられた画像を、「入力画像」という。
【００２０】
情報入力部１０２は、推定装置１０に対して入力される各情報を表すデータ（以下、「入力データ」という。）を受け付ける。推定装置１０に対して入力される各情報とは、例えば平面マーカ情報、既知３次元点情報、カメラパラメータである。情報入力部１０２は、例えばＣＤ−ＲＯＭやＵＳＢメモリ等の記録媒体に記録された入力データを読み出しても良い。また、情報入力部１０２は、キーボードやポインティングデバイス等の入力装置によって入力された入力データを、入力装置から受信しても良い。また、推定装置１０が入力装置を備えた情報処理装置に内蔵されている場合は、情報入力部１０２は入力された入力データをバスから受信しても良い。また、情報入力部１０２は、ネットワークを介して他の情報処理装置から入力データを受信しても良い。情報入力部１０２は、入力データの入力を受けることが可能な構成であれば、さらに異なる態様で構成されても良い。情報入力部１０２は、予め入力された入力データを記憶することで保持しても良い。
【００２１】
平面マーカ情報には、平面マーカ３０のパターンに対応するワールド座標系における３次元座標が登録されている。既知３次元点情報には、各既知３次元点２０に対応するワールド座標系における３次元座標が登録されている。カメラパラメータは、画像を撮影した撮像装置の焦点距離、レンズ歪み量などを示すパラメータである。カメラポーズは、撮像装置の位置及び姿勢を示す情報である。
【００２２】
第一推定部１０３は、入力画像及び入力データに基づいて、ワールド座標系におけるカメラポーズを推定する。
第二推定部１０４は、入力画像及び入力データに基づいて、第一推定部１０３とは異なる推定技術でワールド座標系におけるカメラポーズを推定する。第二推定部１０４に適用される推定技術は、第一推定部１０３に適用される推定技術よりも広範囲の空間に関してカメラポーズの推定が可能な技術である。
【００２３】
本実施形態では、第一推定部１０３は平面マーカ３０を用いた技術でカメラポーズを推定し、第二推定部１０４は既知３次元点２０を用いた技術でカメラポーズを推定する。平面マーカ３０を用いてカメラポーズを推定する技術として、例えば非特許文献１に記載の技術が第一推定部１０３に実装されても良い。既知３次元点２０を用いてカメラポーズを推定する技術として、例えば以下に示す文献に記載の技術が第二推定部１０４に実装されても良い。
文献名：出口光一郎,“射影幾何学によるPnPカメラ補正問題の統一的解法,” 情報処理学会コンピュータビジョン'90ビジョンと環境理解シンポジュウム論文集 90, pp.41-50, 1990
【００２４】
選択部１０５は、第一推定部１０３による推定結果と、第二推定部１０４による推定結果と、を比較していずれか一方又はエラー情報を選択する。選択部１０５は、選択した推定結果（カメラポーズ又はエラー情報）を出力する。
【００２５】
図４は、平面マーカ情報の具体例を示す図である。平面マーカ情報は、例えば複数のレコード６１を有するテーブルとして構成されても良い。この場合、各レコード６１は、ＩＤ、３次元座標、パターン情報の各値を有する。ＩＤは、レコード６１毎に割り当てられる識別情報である。３次元座標は、ワールド座標系で表される位置情報であり、パターンが配置された位置（例えばパターンの中心位置）を表す。パターン情報は、平面マーカ３０上に示される各パターンの特徴を示す情報である。パターン情報は、例えばパターンの画像のデータであっても良いし、パターンの輪郭を表すベクトルデータであっても良いし、その他のデータであっても良い。
【００２６】
図５は、既知３次元点情報の具体例を示す図である。既知３次元点情報は、例えば複数のレコード６２を有するテーブルとして構成されても良い。この場合、各レコード６２は、ＩＤ、３次元座標、パターン情報の各値を有する。ＩＤは、レコード６２毎に割り当てられる識別情報である。３次元座標は、ワールド座標系で表される位置情報であり、既知３次元点２０の位置（例えば既知３次元点２０の中心位置）を表す。パターン情報は、既知３次元点２０の形状の特徴を示す情報である。パターン情報は、例えば既知３次元点２０の画像のデータであっても良いし、既知３次元点２０の輪郭を表すベクトルデータであっても良いし、その他のデータであっても良い。
以下、推定装置１０の動作の流れとして第一動作例及び第二動作例について説明する。なお、推定装置１０の動作の流れは、以下に示す第一動作例及び第二動作例に限定される必要は無い。
【００２７】
［第一動作例］
図６は、第一動作例における推定装置１０の処理の流れを示すフローチャートである。
まず、情報入力部１０２は、撮像画像、平面マーカ情報、既知３次元点情報及びカメラパラメータを入力する（ステップＳ１０１）。なお、平面マーカ情報、既知３次元点情報及びカメラパラメータは、推定処理を行う度に入力される必要は無い。
【００２８】
次に、第一推定部１０３は、第一推定処理を行う（ステップＳ１０２）。第一推定処理の具体例は以下の通りである。まず、第一推定部１０３は、平面マーカ情報のパターン情報に基づいて、撮像画像４０から平面マーカ３０上のパターンを検出する。第一推定部１０３は、検出されたパターンを観測点として特定する。このような観測点の特定は、例えば撮像画像４０に対して全てのパターン情報についてパターンマッチングを行う事によって実現できる。
【００２９】
次に、第一推定部１０３は、それぞれの観測点の２次元座標（イメージ座標）及び３次元座標（レコード６１に登録されているワールド座標）に基づいて、カメラポーズを推定する。第一推定部１０３は、推定結果（以下、「平面マーカカメラポーズ推定結果」という。）を選択部１０５に出力する。
なお、平面マーカ３０を用いてカメラパラメータを推定する処理では、少なくとも４つ以上の観測点が必要である。そのため、撮像画像４０において平面マーカ３０のパターンが４つ以上検出されない場合、第一推定部１０３はカメラポーズの推定結果を出力できない。したがって、観測点の検出数が４つ未満の場合には、第一推定部１０３はカメラポーズの推定に失敗したことを示す信号を出力する。本実施形態の第一推定部１０３は、失敗したことを示す信号として“ＮＵＬＬ”を出力する。
【００３０】
次に、第二推定部１０４は、第二推定処理を行う（ステップＳ１０３）。第二推定処理の具体例は以下の通りである。まず、第二推定部１０４は、既知３次元点情報のパターン情報に基づいて、撮像画像４０から既知３次元点２０のパターンを検出する。第二推定部１０４は、検出されたパターンを観測点として特定する。このような観測点の特定は、例えば撮像画像４０に対して全てのパターン情報についてパターンマッチングを行う事によって実現できる。
【００３１】
次に、第二推定部１０４は、それぞれの観測点の２次元座標及び３次元座標に基づいて、カメラポーズを推定する。第二推定部１０４は、推定結果（以下、「既知３次元点カメラポーズ推定結果」という。）を選択部１０５に出力する。
なお、既知３次元点２０を用いてカメラパラメータを推定する処理では、少なくとも６つ以上の観測点が必要である。そのため、撮像画像４０において既知３次元点２０のパターンが６つ以上検出されない場合、第二推定部１０４はカメラポーズの推定結果を出力できない。したがって、観測点の検出数が６つ未満の場合には、第二推定部１０４はカメラポーズの推定に失敗したことを示す信号を出力する。本実施形態の第二推定部１０４は、失敗したことを示す信号として“ＮＵＬＬ”を出力する。
【００３２】
次に、選択部１０５は、平面マーカカメラポーズ推定結果及び既知３次元点カメラポーズ推定結果に基づいて、推定結果を選択する。選択部１０５は、例えば以下のように動作する。まず、選択部１０５は、第一推定部１０３から平面マーカカメラポーズ推定結果を取得する。また、選択部１０５は、第二推定部１０４から既知３次元点カメラポーズ推定結果を取得する（ステップＳ１０４）。
【００３３】
選択部１０５は、平面マーカカメラポーズ推定結果が“ＮＵＬＬ”であるか否か判定する（ステップＳ１０５）。平面マーカカメラポーズ推定結果が“ＮＵＬＬ”でない場合（ステップＳ１０５-ＮＯ）、選択部１０５は、平面マーカカメラポーズ推定結果を最終的なカメラポーズとして選択し、出力する（ステップＳ１０６）。
【００３４】
一方、平面マーカカメラポーズ推定結果が“ＮＵＬＬ”である場合（ステップＳ１０５−ＹＥＳ）、選択部１０５は、既知３次元カメラポーズ推定結果が“ＮＵＬＬ”であるか否か判定する（ステップＳ１０７）。既知３次元点カメラポーズ推定結果が“ＮＵＬＬ”でない場合（ステップＳ１０７−ＮＯ）、選択部１０５は、既知３次元点カメラポーズ推定結果を最終的なカメラポーズとして選択し、出力する（ステップＳ１０８）。
【００３５】
一方、既知３次元点カメラポーズ推定結果が“ＮＵＬＬ”である場合（ステップＳ１０７−ＹＥＳ）、選択部１０５は、最終的なカメラポーズとして推定失敗を示す“ＮＵＬＬ”を選択し、出力する（ステップＳ１０９）。
【００３６】
このような第一動作例の処理によれば、第一推定処理による推定結果（平面マーカカメラポーズ推定結果）及び第二推定処理による推定結果（既知３次元点カメラポーズ推定結果）とが比較され、いずれか一方の推定結果又はエラーが選択される。そのため、たとえ第一推定処理による推定結果が精度良く得られなかった場合であっても、第二推定処理による推定結果を出力することによって、継続的にカメラポーズ推定を行う事ができる。例えば、平面マーカ３０がフレームアウトしても、既知３次元点２０を用いた推定処理によって継続的にカメラポーズ推定を行うことができる。
【００３７】
［第二動作例］
第一動作例の処理では、撮像装置の位置が平面マーカ３０にほぼ正対している場合に、局所解に陥ってしまい、カメラポーズ推定の精度が低下するおそれがある。第二動作例では、このような問題を解決する。具体的には、第二動作例では、平面マーカカメラポーズ推定結果及び既知３次元点カメラポーズ推定結果の誤差を比較することによって、より精度の高いカメラポーズの推定結果を選択し出力する。以下、第二動作例の詳細について説明する。
【００３８】
図７は、第二動作例における推定装置１０の処理の流れを示すフローチャートである。
まず、情報入力部１０２は、撮像画像、平面マーカ情報、既知３次元点情報及びカメラパラメータを入力する（ステップＳ２０１）。なお、平面マーカ情報、既知３次元点情報及びカメラパラメータは、推定処理を行う度に入力される必要は無い。
【００３９】
次に、第一推定部１０３は、第一推定処理を行う（ステップＳ２０２）。第一推定処理の具体例は、第一動作例における具体例と同じである。さらに、第一推定部１０３は、平面マーカカメラポーズ推定結果の推定誤差ｅｒｒを算出する。推定誤差ｅｒｒには、どのような誤差算出技術が適用されても良い。推定誤差ｅｒｒの具体例として、再投影誤差を観測点数で正規化した値や、以前の平面マーカカメラポーズ推定結果との差分値がある。
【００４０】
以下、再投影誤差について説明する。再投影誤差は、観測点の座標と再投影点の座標（ｘ，ｙ）とに基づいて、両者のユークリッド距離を計算することで算出できる。再投影点の座標（ｘ，ｙ）は、観測点に対応する三次元座標(Ｘ，Ｙ，Ｚ)を算出した平面マーカカメラポーズＭを用いて以下の式１で算出できる。
【数１】
2014092984.tif 000003
【００４１】
ただし、演算子“〜”は、その両辺が定数倍の違いを許して等しいことを表す。式１において、平面マーカカメラポーズＭは式２で表される。
【数２】
2014092984.tif 000004
【００４２】
式２におけるＲは３×３の回転行列を表し、Ｔは３×１の並進ベクトルを表す。
また、式（１）においてＡは、推定装置１０に入力されたカメラパラメータを表す。カメラパラメータＡは、３×３の行列であり、式３で表される。
【数３】
2014092984.tif 000005
式３において、ｆはカメラの焦点距離を表し、δu及びδvはそれぞれカメラの撮像素子の横方向及び縦方向の画素の物理的な間隔を表し、Cu及びCvは画像中心の位置を表す。
【００４３】
次に、以前の平面マーカカメラポーズ推定結果との差分値について説明する。
以前の平面マーカカメラポーズ推定結果Ｍ（ｔ−１）と、処理時点の平面マーカカメラポーズＭ（ｔ）との差分量（推定誤差ｅｒｒ）は、式４、あるいは式５のように算出できる。
【数４】
2014092984.tif 000006
【数５】
2014092984.tif 000007
【００４４】
ただし、Ｔ（ｔ−１）は、以前の平面マーカカメラポーズ推定結果の位置成分を表し、Ｔ（ｔ）は、処理時点の平面マーカカメラポーズ推定結果の位置成分を表す。以上で推定誤差ｅｒｒの具体例についての説明を終え、図７のフローチャートの説明に戻る。
【００４５】
ステップＳ２０２の処理の次に、第二推定部１０４は、第二推定処理を行う（ステップＳ２０３）。第二推定処理の具体例は、第一動作例における動作例と同じである。さらに、第二推定部１０４は、既知３次元点カメラポーズ推定結果の推定誤差ｅｒｒを算出する。推定誤差ｅｒｒの算出方法の原理は、第一推定部１０３が行う推定誤差の算出法と同じである。
【００４６】
次に、選択部１０５は、平面マーカカメラポーズ推定結果及び既知３次元点カメラポーズ推定結果と、それぞれの推定誤差とに基づいて、推定結果を選択する。選択部１０５は、例えば以下のように動作する。
まず、選択部１０５は、第一推定部１０３から平面マーカカメラポーズ推定結果及び推定誤差を取得する。また、選択部１０５は、第二推定部１０４から既知３次元点カメラポーズ推定結果及び推定誤差を取得する（ステップＳ２０４）。
【００４７】
選択部１０５は、平面マーカカメラポーズ推定結果が“ＮＵＬＬ”であるか否か判定する（ステップＳ２０５）。平面マーカカメラポーズ推定結果が“ＮＵＬＬ”でない場合（ステップＳ２０５−ＮＯ）、選択部１０５は、平面マーカカメラポーズ推定結果の推定誤差と、既知３次元点カメラポーズ推定結果の推定誤差とを比較する（ステップＳ２０６）。
【００４８】
平面マーカカメラポーズ推定結果の推定誤差の方が小さい場合（ステップＳ２０６−ＮＯ）、選択部１０５は、平面マーカカメラポーズ推定結果を最終的なカメラポーズとして選択し、出力する（ステップＳ２０７）。一方、既知３次元点カメラポーズ推定結果の推定誤差の方が小さい場合（ステップＳ２０６−ＹＥＳ）、選択部１０５は、既知３次元点カメラポーズ推定結果を最終的なカメラポーズとして選択し、出力する（ステップＳ２０９）。
【００４９】
ステップＳ２０５の処理において、平面マーカカメラポーズ推定結果が“ＮＵＬＬ”である場合（ステップＳ２０５−ＹＥＳ）、選択部１０５は、既知３次元点カメラポーズ推定結果が“ＮＵＬＬ”であるか否か判定する（ステップＳ２０８）。既知３次元点カメラポーズ推定結果が“ＮＵＬＬ”でない場合（ステップＳ２０８−ＮＯ）、選択部１０５は、既知３次元点カメラポーズ推定結果を最終的なカメラポーズとして選択し、出力する（ステップＳ２０９）。
【００５０】
一方、既知３次元点カメラポーズ推定結果が“ＮＵＬＬ”である場合（ステップＳ２０８−ＹＥＳ）、選択部１０５は、最終的なカメラポーズとして推定失敗を示す“ＮＵＬＬ”を選択し、出力する（ステップＳ２１０）。
【００５１】
このような第二動作例の処理によれば、平面マーカカメラポーズ推定結果及び既知３次元点カメラポーズ推定結果とが比較され、いずれか一方の推定結果又はエラーが選択される。そのため、平面マーカ３０がフレームアウトしても、既知３次元点２０を用いた推定処理によって継続的にカメラポーズ推定を行うことができる。
【００５２】
さらに、第二動作例の処理によれば、それぞれの推定結果の推定誤差が比較され、例え平面マーカカメラポーズ推定結果が“ＮＵＬＬ”でなかったとしても推定誤差が低ければその推定結果は出力されず、既知３次元点カメラポーズ推定結果が出力される。そのため、より高い精度を保ってカメラポーズ推定を継続することが可能となる。
【００５３】
＜変形例＞
第一推定部１０３が行う推定処理は、平面マーカ３０を用いた処理に限定される必要は無い。第二推定部１０４が行う推定処理は、既知３次元点２０を用いた処理に限定される必要は無い。
【００５４】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５５】
１０…推定装置，  １０１…画像入力部，  １０２…情報入力部，  １０３…第一推定部，  １０４…第二推定部，  １０５…選択部，  ２０…既知３次元点，  ３０…平面マーカ
【図１】
2014092984.tif 000008
【図２】
2014092984.tif 000009
【図３】
2014092984.tif 000010
【図４】
2014092984.tif 000011
【図５】
2014092984.tif 000012
【図６】
2014092984.tif 000013
【図７】
2014092984.tif 000014