(57)【要約】【課題】撮像装置が撮像した範囲中における移動物体の存否に関わらず、撮像装置の位置／姿勢の算出における精度及び安定性を向上する。【解決手段】情報処理装置は、現実空間の複数の特徴を複数の保持特徴として保持する保持部を有し、複数の保持特徴の各々には、第一の時刻に撮像装置によって撮像された第一の画像における位置と、前記撮像装置の位置／姿勢算出への利用可能性の情報とが関連付けられている。情報処理装置は、第一の時刻以降の第二の時刻に撮像装置によって撮像された第二の画像において検出された複数の検出特徴と、前記複数の保持特徴とを対応付け、対応付けられた保持特徴に関連付けられている利用可能性に基づいて、複数の検出特徴から、上記撮像装置の位置／姿勢の算出に用いる検出特徴を選択、または位置／姿勢の算出への寄与度を表す重みを調整する。【選択図】  図１Ａ
2018113021.tif 000002
【特許請求の範囲】
【請求項１】
現実空間の複数の特徴を複数の保持特徴として保持する保持手段と、
前記複数の保持特徴の各々には、第一の時刻に撮像装置によって撮像された第一の画像における位置と、前記撮像装置の位置／姿勢算出への利用可能性の情報とが関連付けられており、
前記第一の時刻以降の第二の時刻に前記撮像装置によって撮像された第二の画像において検出された複数の検出特徴と、前記複数の保持特徴とを対応付ける対応付け手段と、
前記対応付け手段によって対応付けられた保持特徴に関連付けられている利用可能性に基づいて、前記複数の検出特徴から前記撮像装置の位置／姿勢の算出に用いる検出特徴を選択、または、前記複数の検出特徴の各々の位置／姿勢の算出への寄与度を表す重みを調整する制御手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段が選択した検出特徴を用いて前記第二の画像を撮像したときの前記撮像装置の位置／姿勢を算出する算出手段と、
前記算出手段が算出した位置／姿勢に基づいて、前記保持手段が保持する利用可能性を更新する更新手段と、をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記更新手段は、前記複数の保持特徴に関連付けられている位置を前記第二の画像における位置に更新することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記算出手段が算出した位置／姿勢に基づいて前記複数の保持特徴を前記第二の画像に投影し、前記第二の画像における、前記検出特徴の位置と、前記対応付け手段により対応付けされた保持特徴の投影位置との距離である再投影誤差を取得する取得手段をさらに備え、
前記更新手段は、前記再投影誤差に基づいて前記複数の保持特徴に対応する利用可能性を小さくすることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記更新手段は、前記再投影誤差が大きいほど前記利用可能性を小さくすることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記更新手段は、前記再投影誤差に基づいて算出された利用可能性と前記保持手段に保持されている利用可能性とのうちの小さい方、平均または重み付き平均、を用いて、前記保持手段に保持されている利用可能性を更新することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記対応付け手段による対応付け結果に基づいて、前記保持手段が保持する利用可能性を更新する更新手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記更新手段は、前記対応付け手段による対応付け結果に基づいて、前記保持手段が保持する利用可能性を更新することを特徴とする請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
前記保持手段は、前記複数の保持特徴の各々に関して、前記対応付け手段が対応付けに連続して成功した回数を保持し、
前記更新手段は、画像特徴の前記回数が小さいほど前記保持手段が保持する該画像特徴の利用可能性を小さくすることを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記更新手段は、前記回数が所定回数以下の保持特徴の利用可能性を０に設定することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記算出手段が算出した位置／姿勢に基づいて前記複数の保持特徴を前記第二の画像に投影し、前記第二の画像における、前記検出特徴の位置と、前記対応付け手段により対応付けされた保持特徴の投影位置との距離である再投影誤差を取得する取得手段をさらに備え、
前記更新手段は、前記再投影誤差の値が所定回数以上にわたって連続して所定の閾値より小さい場合に、保持特徴に関連付けられた利用可能性を大きくすることを特徴とする請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項１２】
前記保持手段は、シーン中に存在する特徴の三次元幾何情報を含む三次元マップを保持し、
前記三次元マップが有する特徴を前記第一の画像へ投影し、前記制御手段により選択された検出特徴に対応する保持特徴と投影された特徴とを対応付け、対応付けられた保持特徴の位置を前記特徴の投影位置に変更する変更手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
前記対応付け手段により対応付けられた検出特徴のうち、利用可能性の値が所定の閾値より大きい検出特徴を前記三次元マップに追加する追加手段をさらに備えることを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記複数の検出特徴のうち利用可能性の値が所定の閾値より大きい検出特徴を選択する、または、利用可能性の値が所定の閾値より大きい検出特徴の位置／姿勢の算出への寄与度を表す重みの値を大きくすることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記制御手段は、前記複数の検出特徴のうち利用可能性の値が大きなものから順に所定個の特徴を選択する、または、利用可能性の値が大きいほど検出特徴の位置／姿勢の算出への寄与度を表す重みの値を大きくすることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１６】
前記制御手段は、前記第二の画像を小領域に区切り、小領域ごとに利用可能性が高い順に所定個の検出特徴を選択する、または、小領域ごとに利用可能性が高い順に検出特徴の位置／姿勢の算出への寄与度を表す重みの値を大きくすることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１７】
前記制御手段は、画像上の距離が所定の閾値よりも大きくなるように、かつ、利用可能性の値の大きな順に検出特徴を選択することを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１８】
前記算出手段が算出した前記撮像装置の位置／姿勢に基づいて仮想物体の像を前記第一の画像に合成する合成手段と、
前記合成手段が合成した画像を表示する表示手段と、をさらに備えることを特徴とする請求項２に記載の情報処理装置。
【請求項１９】
現実空間の複数の特徴を複数の保持特徴として保持する保持手段を有する情報処理装置の制御方法であって、
前記複数の保持特徴の各々には、第一の時刻に撮像装置によって撮像された第一の画像における位置と、前記撮像装置の位置／姿勢算出への利用可能性の情報とが関連付けられており、
前記第一の時刻以降の第二の時刻に前記撮像装置によって撮像された第二の画像において検出された複数の検出特徴と、前記複数の保持特徴とを対応付ける対応付け工程と、
前記対応付け工程によって対応付けられた保持特徴に関連付けられている利用可能性に基づいて、前記複数の検出特徴から、前記撮像装置の位置／姿勢の算出に用いる検出特徴を選択、または、前記複数の検出特徴の各々の位置／姿勢の算出への寄与度を表す重みを調整する制御工程と、を有することを特徴とする情報処理装置の制御方法。
【請求項２０】
コンピュータを、請求項１乃至１８の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は撮像装置の位置／姿勢を計測する情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
画像情報に基づく撮像装置の位置および／または姿勢の計測は、複合現実感／拡張現実感における現実空間と仮想物体の位置合わせ、ロボットや自動車の自己位置推定、物体や空間の三次元モデリングなど様々な目的で利用される。以下、位置および／または姿勢を位置／姿勢と記載する。
【０００３】
特許文献１では、現実空間に移動する物体が存在するシーンにおいて、画像から検出される特徴点を用いて画像撮像時の位置／姿勢を計測する方法が開示されている。この方法では、三次元マップ上の特徴点が移動物体上の特徴点か否かを判定し、移動物体上の特徴点であれば移動物体フラグを１とする。撮像装置が撮像した画像が入力されると、撮像画像から検出される特徴点に対応する三次元マップ中の特徴点が探索される。三次元マップ上の移動物体フラグが０である特徴点および対応づいた撮像画像から検出される特徴点のペア全てを用いたロバスト推定により撮像装置の位置／姿勢が算出される。ロバスト推定時に外れ値に判断された特徴点については、算出された位置／姿勢に基づいて撮像画像へ射影して移動ベクトルを求めることにより移動物体か否かが判定される。移動物体と判定された三次元マップ上の特徴点の移動物体フラグが１に更新される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許５５３０３９１号公報
【非特許文献】
【０００５】
【非特許文献１】Z. Zhang，"A flexible new technique for camera calibration，" IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 22, no. 11, pp. 1330-1334, 2000.（実施形態で参照される）
【非特許文献２】H. Kato and M. Billinghurst, "Marker tracking and hmd calibration for a video-based augmented reality conferencing system," International Workshop on Augmented Reality, 1999.（実施形態で参照される）
【非特許文献３】J. Shi and C. Tomasi, Good Features to Track, Proc. CVPR1994. （実施形態で参照される）
【非特許文献４】H. Badino and T. Kanade, "A Head-Wearable Short-Baseline Stereo System for the Simultaneous Estimation of Structure and Motion", Proc. MVA, 2011（実施形態で参照される）
【非特許文献５】G. Klein and D. Murray, "Parallel tracking and mapping for small AR workspaces," Proc. ISMAR, pp. 225-234, 2007（実施形態で参照される）
【非特許文献６】D. Kotake, K. Satoh, S. Uchiyama, and H. Yamamoto: "A fast initialization method for edge-based registration using an inclination constraint", Proc. ISMAR 2007（実施形態で参照される）
【非特許文献７】O. Korkalo, S. Kahn, "Real-time depth camera tracking with CAD models and ICP", JVRB, Vol.13, No. 1, 2016（実施形態で参照される）
【非特許文献８】D. G. Lowe: "Distinctive Image Features from Scale-Invariant Keypoints", International Journal of Computer Vision, Vol. 60, pp. 91-110, 2004（実施形態で参照される）
【非特許文献９】C. Tomasi and T. Kanade, "Detection and Tracking of Point Features", Carnegie Mellon University Technical Report CMU-CS-91-132, 1991（実施形態で参照される）
【非特許文献１０】E. Shelhamer, J. Long and T. Darrell, "Fully Convolutional Networks for Semantic Segmentation", IEEE Transaction on Pattern Analysis and Machine Intelligence, Vol. 39, pp. 640-651, 2017（実施形態で参照される）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、撮像装置が撮像した画像から検出される特徴点のうち、移動物体上の位置／姿勢算出に不適な特徴点が誤って三次元マップ中の移動物体フラグが０の特徴点と対応付けられ、位置／姿勢算出に用いられる可能性がある。結果として、位置／姿勢の精度及び安定性が低いという課題があった。
【０００７】
本発明は上記の課題に鑑みてなされたものであり、撮像装置が撮像した範囲中における移動物体の存否に関わらず、撮像装置の位置／姿勢の算出における精度及び安定性を向上することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明の一態様による情報処理装置は以下の構成を備える。すなわち、現実空間の複数の特徴を複数の保持特徴として保持する保持手段と、前記複数の保持特徴の各々には、第一の時刻に撮像装置によって撮像された第一の画像における位置と、前記撮像装置の位置／姿勢算出への利用可能性の情報とが関連付けられており、前記第一の時刻以降の第二の時刻に前記撮像装置によって撮像された第二の画像において検出された複数の検出特徴と、前記複数の保持特徴とを対応付ける対応付け手段と、前記対応付け手段によって対応付けられた保持特徴に関連付けられている利用可能性に基づいて、前記複数の検出特徴から前記撮像装置の位置／姿勢の算出に用いる検出特徴を選択、または、前記複数の検出特徴の各々の位置／姿勢の算出への寄与度を表す重みを調整する制御手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、撮像装置が撮像した範囲中における移動物体の存否に関わらず、撮像装置の位置／姿勢を精度よく、安定して算出することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】第１実施形態における情報処理装置の機能構成例を示すブロック図。
【図１Ｂ】第１実施形態における情報処理装置のハードウエア構成例を示すブロック図。
【図２】第１実施形態における画像特徴履歴情報保持部のデータ構造を示す図。
【図３】第１実施形態における処理手順を示すフローチャート。
【図４】利用可能性情報の更新処理の手順を示すフローチャート。
【図５】第１実施形態の変形例による情報処理装置の機能構成を示すブロック図。
【図６】第１実施形態の変形例の処理手順を示すフローチャート。
【図７】閾値を設定するためのＧＵＩの一例を示す図。
【図８】第４実施形態における情報処理装置の機能構成例を示すブロック図。
【図９】第４実施形態における処理手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しながら、本発明の実施形態について説明する。
【００１２】
＜第１実施形態＞
第１実施形態では、現実空間における撮像装置の位置／姿勢を撮像装置から得られる画像に基づいて計測する構成について説明する。計測された撮像装置の位置／姿勢は、例えば、複合現実感システムが、現実空間と仮想物体とを位置合わせして仮想物体を描画することによりユーザに複合現実感を提供するのに利用される。第１実施形態の構成では、現実空間中に移動物体が存在する場合にも高精度にかつ安定して撮像装置の位置／姿勢を計測することが可能となる。複合現実感を体験するユーザは、頭部装着型表示装置（以下、ＨＭＤ（Head-Mounted Display））を装着することにより、ＨＭＤを通して仮想物体が重畳された現実空間を観察する。ＨＭＤが搭載している撮像装置により撮像された画像上に、撮像装置の現実空間における位置／姿勢に基づいて仮想物体像が描画される。ＨＭＤは、撮像画像に仮想物体像が重畳された画像をユーザに提示する。
【００１３】
撮像装置の位置／姿勢の算出には、撮像装置が撮像した画像から検出された画像特徴が用いられる。本実施形態では画像特徴として画像中に存在する特徴点を用いる。「特徴点」とは、画像中の角などの幾何的な構造を指し示す点のことである。撮像装置の時刻ｔにおける位置／姿勢の算出の概要は次のとおりである。まず、時刻ｔに撮像された画像（現フレーム）上で検出した特徴点と、時刻ｔよりも以前の時刻ｔ−１に撮像された画像（前フレーム）上の特徴点とが対応付けられる。そして、前フレームの特徴点と現フレームの特徴点の画像上での二次元の位置および前フレームでの撮像装置の位置／姿勢を基に、現フレームの撮像装置の位置／姿勢が算出される。位置／姿勢の算出時には、安定して精度良く位置／姿勢を算出できる特徴点のみが選択され、利用される。各特徴点は、位置／姿勢の算出に利用すると安定性および精度が高くなるか低くなるかを表す指標である利用可能性情報を保持する。本実施形態においては、利用可能性情報とは当該特徴点が時刻ｔ−１以前に移動物体であったかどうかの判定結果の履歴である。具体的には、利用可能性情報は、算出された位置／姿勢に基づくカメラの動きに対する各特徴点の整合度合いを示す指標である。時刻ｔ−１以前にカメラの動きと整合していた特徴点のみを利用することで、高精度に、安定して位置／姿勢を算出することができる。
【００１４】
第１実施形態における撮像装置の位置／姿勢とは、現実空間中に規定された世界座標における撮像装置の位置を表す３パラメータと、撮像装置の姿勢を表す３パラメータとを合わせた６パラメータである。本実施形態では、撮像装置としてステレオカメラが用いられており、とくに断りがない限りステレオカメラのうち左側のカメラの位置／姿勢を撮像装置の位置／姿勢と呼ぶ。また、撮像装置の光軸をＺ軸、画像の水平方向をＸ軸、垂直方向をＹ軸とする、撮像装置上に規定される三次元の座標系をカメラ座標系と呼ぶ。本実施形態では、とくに断りがない限り、特徴点は左側のカメラの画像で検出した特徴点を指し、特徴点の位置は左側のカメラの画像の横軸をｘ軸、縦軸をｙ軸とする画像座標系の二次元位置を表す２パラメータで表わされる。また、本実施形態における移動物体とは例えば複合現実感を体験するユーザの手や他の体験者、机や椅子といった什器のことである。
【００１５】
図１Ａは、第１実施形態における画像処理システム１００の機能構成例を示すブロック図である。画像処理システム１００は、情報処理装置１、撮像装置１８０、画像合成部１９０、表示部１１００を有する。情報処理装置１は、画像入力部１１０、検出部１２０、対応付け部１３０、保持部１４０、選択部１５０、算出部１６０、更新部１７０を備える。画像入力部１１０はＨＭＤに搭載されている撮像装置１８０と接続されている。画像入力部１１０、算出部１６０は画像合成部１９０と接続されている。画像合成部１９０は表示部１１００と接続されている。
【００１６】
画像入力部１１０は、撮像装置１８０が撮像する画像を時系列（例えば毎秒６０フレーム）に取得し、取得した画像を、検出部１２０、対応付け部１３０、画像合成部１９０に提供する。検出部１２０は、画像入力部１１０から入力された画像上で特徴点を検出し、特徴点の位置を算出する。検出部１２０は、算出した特徴点の位置を対応付け部１３０に提供する。対応付け部１３０は、保持部１４０が利用可能性情報１４１として保持している前フレームの特徴点と、前フレームが撮像された時刻以降に撮像された現フレームから検出部１２０が検出した特徴点との対応関係を探索し、対応付けを行う。
【００１７】
保持部１４０は、各特徴点の幾何属性と位置／姿勢の算出への利用可能性を対応付けた利用可能性情報１４１を保持する。特徴点の幾何属性とは、例えば前フレームでの特徴点の位置である。利用可能性情報１４１のデータ構造の詳細については後述する。選択部１５０は、保持部１４０の保持する利用可能性情報を基に、現フレームについて検出された特徴点のうち位置／姿勢の算出に用いる特徴点を選択する。算出部１６０は、選択部１５０によって選択された特徴点と保持部１４０の保持する前フレームの特徴点との画像特徴対応付け部１３０の探索した対応関係を用いて撮像装置１８０の世界座標系における位置／姿勢を算出する。更新部１７０は、算出部１６０によって算出された撮像装置１８０の位置／姿勢と対応付け部１３０による特徴点の対応付け結果を基に、保持部１４０の保持する利用可能性情報１４１を更新する。
【００１８】
撮像装置１８０はステレオカメラであり、搭載した左右２つのカメラでシーンのカラー画像を撮像する。画像合成部１９０は、算出部１６０が算出した撮像装置１８０の位置／姿勢と撮像装置の内部・外部パラメータを用いて、仮想物体のＣＧ画像をレンダリングする。画像合成部１９０は、撮像されたステレオ画像上にＣＧ画像を重畳した画像を合成する。表示部１１００はＨＭＤ２（図１Ｂ）に設けられており、画像合成部１９０が合成した画像を表示する。本実施形態ではＨＭＤ２はステレオＨＭＤであり、左右の表示デバイスに異なる画像を表示することでユーザによる現実空間と仮想物体の立体視が可能であるとする。
【００１９】
図１Ｂは、本実施形態における画像処理システム１００のハードウエア構成例を示すブロック図である。情報処理装置１において、ＣＰＵ１１は、ＲＯＭ１２またはＲＡＭ１３に格納されたプログラムを実行することにより情報処理装置１の制御、各種処理、機能を実現する。ＲＯＭ１２は読み出し専用の不揮発性メモリであり、ＲＡＭ１３は随時に読み書きが可能な揮発性メモリである。記憶装置１４は、ハードディスクなどの大容量の記憶媒体である。インタフェース１５は、外部機器と情報処理装置１を接続する。以上の各構成は、バス１６により相互に通信が可能に接続されている。
【００２０】
一方、ＨＭＤ２において、ＣＰＵ２１は、メモリ２３に格納されているプログラムを実行することによりＨＭＤ２の制御、各種処理、機能を実現する。インタフェース２２は、外部機器とＨＭＤ２を接続する。撮像装置１８０、表示部１１００は、図１Ａに関して上述したとおりである。ＨＭＤ２における以上の各部は、バス２４を介して相互に通信可能に接続されている。インタフェース１５とインタフェース２２を接続する接続３０は、有線接続であってもよいし、無線接続であってもよい。また、接続３０は、有線ＬＡＮまたは無線ＬＡＮを介した接続であってもよい。
【００２１】
なお、図１Ａにおいて、画像入力部１１０、検出部１２０、算出部１６０、画像合成部１９０は情報処理装置１の内部の構成（機能）として示されているが、これらは、ＨＭＤ２など、情報処理装置１の外部の構成により実現されてもよい。
【００２２】
図２は、保持部１４０に保持される利用可能性情報１４１のデータ構造の例を示す図である。各特徴点の幾何属性と利用可能性の値が関連付けられ、保持されている。本実施形態においては、画像特徴の幾何属性は前フレームの特徴点の位置を表す二次元座標である。また、利用可能性は前フレームの処理時に各特徴点が移動物体であるかどうかの判定結果に基づいて算出した値であり、０から１の実数値が保持される。利用可能性は、位置／姿勢の算出に利用される可能性が低いほど０に近づく値である。
【００２３】
以上のような構成を備えた本実施形態の画像処理システム１００における処理手順について説明する。図３は、第１実施形態の画像処理システムによる処理手順を示すフローチャートである。
【００２４】
ステップＳ１１０（初期化処理）において、情報処理装置１は、撮像装置１８０の内部パラメータを読み込み、撮像装置１８０の初期位置及び初期姿勢を算出する。撮像装置１８０の内部パラメータ（焦点距離ｆｘ（画像の水平方向）、ｆｙ（画像の垂直方向）、画像中心位置ｃｘ（画像の水平方向）、ｃｙ（画像の垂直方向）、レンズ歪みパラメータ）は、Ｚｈａｎｇの方法（非特許文献１）によって事前に校正される。また、情報処理装置１は、ステレオカメラである撮像装置１８０を構成する２台のカメラ間の相対的な位置／姿勢（外部パラメータ）を、例えば以下のようにして求める。情報処理装置１は、三次元形状が既知のパターンを左右のカメラで同時に撮影して得られた画像からパターンを基準としたそれぞれのカメラの位置／姿勢を求める。そして、情報処理装置１は、右カメラの位置／姿勢を、左カメラを基準とした位置／姿勢に変換することで、２台のカメラ間の相対的な位置／姿勢を得る。撮像装置１８０の世界座標系に対する位置／姿勢の初期値ｔｗ→ｔ（ｔ＝０）、Ｒｗ→ｔ（ｔ＝０）は、例えば、サイズが既知の人工のマーカを用いたＫａｔｏらの手法（非特許文献２）によって算出される。
【００２５】
ステップＳ１２０（画像入力処理）において、画像入力部１１０は、撮像装置１８０が撮像したステレオ画像を入力する。本実施形態では、撮像装置１８０がカラー画像を撮像するため、画像入力部１１０は、入力された画像を濃淡画像に変換し、さらに左右のカメラの内部パラメータを用いてレンズ歪みの影響を除去した画像に変換する。ステップＳ１３０（特徴点検出処理）において、検出部１２０は、画像入力部１１０が入力した画像（現フレーム）上の特徴点を検出する。特徴点を検出するには、たええば、Ｓｈｉらの手法（非特許文献３）を用いることができる。
【００２６】
ステップＳ１４０（特徴点の対応付け処理）において、対応付け部１３０は、利用可能性情報１４１に記録されている前フレームの特徴点と、ステップＳ１３０で検出された現フレームの特徴点とを特徴点マッチングにより対応付ける。なお、以下では、利用可能性情報１４１に記録されている前フレームの特徴点を保持特徴点、ステップＳ１３０で検出された現フレームの特徴点を検出特徴点と称する場合もある。特徴点マッチングでは、保持特徴点と検出特徴点の周囲の画素の正規化相互相関（ＳＳＤ：差分二乗和）を算出し、算出された値が所定の閾値Ｍｔｈ以下であればそれら２つの特徴点は同一の物体上の同一の位置の特徴点であるとみなす。本実施形態では、以降、同一の位置であると見なすことを対応付けると呼び、画像上での特徴点の対応付けによって前フレームの特徴点と対応付いた現フレームの特徴点を対応特徴点と呼ぶ。
【００２７】
ステップＳ１５０（特徴点選択処理）において、選択部１５０は、保持部１４０が保持している利用可能性情報１４１に基づいて、位置／姿勢の算出に用いる対応特徴点を決定する。選択部１５０は、利用可能性の値が所定の閾値Ｖｔｈより大きい保持特徴点に対応する対応特徴点を選択する。こうして、複数の検出特徴点から、位置／姿勢の算出に用いられる特徴点が選択される。ステップＳ１６０（位置姿勢算出処理）において、算出部１６０は、ステップＳ１５０で選択された対応特徴点と保持部１４０が保持する保持特徴点とを用いて現フレームを撮影した撮像装置１８０の位置／姿勢を算出する。算出部１６０は、撮像装置１８０の位置／姿勢として、前フレームに対する現フレームの撮像装置１８０の位置を表す三次元ベクトルであるｔ（ｔ−１）→ｔと、姿勢を表す３×３回転行列であるＲ（ｔ−１）→ｔを算出する。撮像装置１８０の位置／姿勢の算出には、例えば、Ｂａｄｉｎｏらの手法（非特許文献４）を用いることができる。また、世界座標系に対する撮像装置１８０の位置／姿勢ｔｗ→ｔ、Ｒｗ→ｔは、前フレームで算出した世界座標系に対する撮像装置１８０の位置／姿勢ｔｗ→（ｔ−１）、Ｒｗ→（ｔ−１）に、前フレームのカメラ座標に対する撮像装置１８０の位置／姿勢ｔ（ｔ−１）→ｔ、Ｒ（ｔ−１）→ｔを積算することで算出される。
【００２８】
ステップＳ１７０（利用可能性情報の更新処理）において、更新部１７０は、保持部１４０が保持している利用可能性情報１４１（前フレームの特徴点の位置の履歴）を、ステップＳ１６０で算出された位置／姿勢を基に更新する。利用可能性情報１４１の更新処理について、図４のフローチャートを参照して詳細に説明する。図４は、ステップＳ１７０における利用可能性情報の更新処理の手順を示すフローチャートである。
【００２９】
ステップＳ１７１において、更新部１７０は、保持部１４０が保持する前フレームの特徴点（保持特徴点）の位置と、ステップ１６０で算出された位置／姿勢とを用いて、現フレームに保持特徴点を投影した位置（投影点）を算出する。より具体的には、まず、更新部１７０は、前フレームのステレオカメラの左右の画像でステレオマッチングを行い、保持特徴点の左右の画像での視差を求める。更新部１７０は、視差とカメラの外部パラメータを用いて、保持特徴点の奥行き方向の位置Ｄを算出する。更新部１７０は、前フレームの特徴点である保持特徴点の画像座標（ｕｔ−１，ｖｔ−１）、カメラの内部パラメータ（ｆｘ、ｆｙ、ｃｘ、ｃｙ）、奥行きＤを用いて、当該保持特徴点の前フレームのカメラ座標系における三次元座標（Ｘｔ−１，Ｙｔ−１，Ｚｔ−１）を数１により算出する。
【数１】
2018113021.tif 000003
【００３０】
次に、更新部１７０は、前フレームを撮影した撮像装置１８０の位置に対する現フレームを撮影した撮像装置１８０の位置／姿勢（ｔ（ｔ−１）→ｔ、Ｒ（ｔ−１）→ｔ）を用いて、現フレームのカメラ座標系における当該保持特徴点の三次元座標（Ｘｔ，Ｙｔ，Ｚｔ）を、数２により算出する。
【数２】
2018113021.tif 000004
【００３１】
次に、更新部１７０は、数３により現フレームのカメラ座標系における当該保持特徴点の三次元座標（Ｘｔ，Ｙｔ，Ｚｔ）を現フレームの画像座標（ｕｔ，ｖｔ）に変換する。
【数３】
2018113021.tif 000005
【００３２】
本実施形態では、数１から数３により示される処理を投影と呼ぶ。また、前フレームの特徴点の現フレーム上における投影位置（ｕｔ，ｖｔ）における点を投影点と呼ぶ。次に、更新部１７０は、対応特徴点と投影点との画像座標上における二次元のユークリッド距離（現フレームにおける対応特徴点の位置と投影位置との距離）を算出する。本実施形態では、算出されたユークリッド距離を再投影誤差と呼ぶ。
【００３３】
ステップＳ１７２において、更新部１７０は、ステップＳ１７１で算出された再投影誤差に基づいて利用可能性情報を更新する。具体的には、更新部１７０は、現フレームの利用可能性の値ｃｔを、前フレームの利用可能性の値ｃｔ−１と再投影誤差から求めた利用可能性の値ｃｃａｌｃのうちの小さい方となるように、利用可能性の値を更新する。すなわち、更新部１７０は、数４に示されるように、利用可能性の値を更新する。
【数４】
2018113021.tif 000006
但しｃｃａｌｃは数５のように定める。
【数５】
2018113021.tif 000007
【００３４】
但し、ｄはステップＳ１７１で算出された再投影誤差、ｄｔｈは利用可能性を０とする再投影誤差の所定の閾値とする。また、ステップＳ１７１において、更新部１７０は、次のフレームでの位置／姿勢の算出のために、保持部１４０が保持する利用可能性情報１４１の特徴点の幾何属性を、現フレームにおける特徴点の位置に更新する。
【００３５】
図３に戻り、ステップＳ１８０（画像合成・表示処理）において、画像合成部１９０は、ステップＳ１６０で算出された撮像装置１８０の位置／姿勢を用いて仮想物体のＣＧ画像をレンダリングする。そして、画像合成部１９０は、そのＣＧ画像を、撮像装置１８０により得られたステレオ画像の各画像に重畳合成してＨＭＤの表示部１１００に表示する。
【００３６】
ステップＳ１９０（終了判定処理）において、情報処理装置１は、システムを終了するか否かの判断を行う。マウスやキーボードなどを介して利用者からシステムを終了するコマンドが入力されている場合にはシステムを終了し、さもなければ処理はステップＳ１２０に戻り、位置／姿勢の計測処理が継続される。
【００３７】
以上に述べたように、第１実施形態によれば、第一の時刻に撮像装置によって撮像された第一の画像から取得され、保持された保持特徴と、第一の時刻以降の第二の時刻に撮像装置によって撮像された第二の画像において検出された検出特徴とが対応付けられる。そして、対応付けられた検出特徴のうち、対応する保持特徴の利用可能性が高いもの（所定閾値以上のもの）が、撮像装置の位置／姿勢の算出に用いられる。よって、保持特徴の利用可能性を適切に設定することで、より正確な位置／姿勢の算出が可能になる。さらに、第１実施形態によれば、利用可能性の値が再投影誤差に基づいて更新される（より具体的には、再投影誤差の大きな特徴点の利用可能性の値を小さくする）。このような利用可能性情報を用いて位置／姿勢算出時に用いる特徴点を選択することで、移動物体が存在するシーンや繰り返し構造などにより特徴点の誤対応が生じるような物体の存在するシーンでも高精度に、且つ安定して、位置／姿勢を算出することができる。
【００３８】
＜変形例１−１＞
なお、画像を撮像する撮像装置１８０はステレオカメラに限るものではなく、現実空間の画像を撮像するカメラであればよい。例えば、撮像装置１８０は、単眼カメラで構成されても良いし、相対的な位置／姿勢が既知な三台以上のカメラで構成されても良い。また、撮像装置１８０はカラー画像を撮像するカメラに限るものではなく、濃淡画像を撮像するカメラであっても良いし、奥行き情報を撮像するカメラであってもよい。但し、単眼カメラを用いる場合には、位置／姿勢の算出、再投影誤差の算出に当たっては奥行きが必要となるため、例えばＫｌｅｉｎらの手法（非特許文献５）を用いてカメラの動きから奥行きを算出することが必要になる。また、位置／姿勢を算出するための画像を撮像する撮像装置とＣＧが合成される画像を撮像する撮像装置は同一のものであってもよいし、別々のものであってもよい。
【００３９】
＜変形例１−２＞
第１実施形態では、画像特徴に特徴点を用いたがこれに限られるものではなく、画像特徴は画像の幾何情報から撮像装置１８０の位置／姿勢を算出できるものであれば良い。例えばＫｏｔａｋｅらの手法（非特許文献６）のように画像中のエッジを画像特徴として用いても良い。この場合、保持部１４０が保持する画像特徴の幾何属性は、例えば、画像上のエッジの両端点の二次元位置とすればよい。また、物体の三次元モデルを画像特徴とし、モデルと入力画像とを比較して撮像装置１８０の位置／姿勢を得るＫｏｒｋａｌｏらの手法（非特許文献７）が用いられてもよい。また、三次元モデルの代わりにマーカを画像特徴とし、マーカに基づく位置姿勢推定であるＫａｔｏらの手法（非特許文献２）が用いられても良い。
【００４０】
＜変形例１−３＞
第１実施形態では、画像特徴の対応付けに正規化相互相関を用いた（ステップＳ１４０）。しかしながら、画像特徴の対応付けに用いられ得る手法はこれに限られるものではなく、画像間での特徴点の対応関係を見つけることができるものであれば良い。例えば、Ｌｏｗｅの手法であるＳＩＦＴ特徴量のマッチング（非特許文献８）が用いられても良い。また、例えばＴｏｍａｓｉらの手法（非特許文献９）のように、前フレームの特徴点から直接現フレームの特徴点位置が算出（追跡）されても良い。
【００４１】
＜変形例１−４＞
また、第１実施形態では、利用可能性の値が所定の閾値Ｖｔｈ以上の特徴点を、撮像装置１８０の位置／姿勢の算出に使用する特徴点として選択している（ステップＳ１５０）。しかしながら、特徴点の選択方法はこれに限られるものではなく、利用可能性の値の大きな特徴点を選択するものであればよい。例えば、利用可能性の値が大きなものから順に所定個（Ｐｍａｘ個）を選択するようにしても良い。また、例えばすべての特徴点の利用可能性の値の中央値や平均値の値よりも大きな利用可能性の値をもつ特徴点を選択するようにしても良い。
【００４２】
＜変形例１−５＞
また、第１実施形態では、撮像装置１８０の位置／姿勢の算出に用いる特徴点を選択するための条件として、利用可能性の値が所定の閾値Ｖｔｈ以上であることを示したが、幾何属性（特徴点の位置）については考慮されていない。位置／姿勢の算出の精度を向上させるためには現フレーム上で密度が均一になるように特徴点が分布すると良い。したがって、例えば現フレームを格子上の小領域に区切り、各領域において利用可能性の値の大きい順に所定個（Ｐｍａｘ個）を選択するようにしても良い。また、例えば、既に選択された特徴点との画像上の距離が所定の閾値よりも大きい特徴点の中から利用可能性の値の大きな順に特徴点を選択するようにしても良い。すなわち、画像上の距離が所定の閾値よりも大きくなるように、かつ、利用可能性の値の大きな順に特徴点が選択されてもよい。
【００４３】
＜変形例１−６＞
第１実施形態では、複数の検出特徴点（対応特徴点）から、利用可能性の値をもとに位置／姿勢算出に用いる特徴点を選択したが、使用する特徴点を選択するのではなく、利用可能性の値に基づいて位置／姿勢の算出への重みを各特徴点に付与するようにしても良い。具体的には、利用可能性の値をそのまま重みとしても良いし、利用可能性の値が所定の閾値以下であれば重みを０とし閾値以上であれば利用可能性の値をそのまま重みとするよう定めても良い。位置／姿勢の算出においては、複数の検出特徴点（対応特徴点）の各々に付与された重みに基づいて特徴点の位置／姿勢の算出への寄与度が調整、変更される。
【００４４】
＜変形例１−７＞
第１実施形態のステップＳ１７０では、時刻ｔの利用可能性情報における利用可能性の値ｃｔは、前フレームの利用可能性の値ｃｔ−１とステップＳ１７１で求めた再投影誤差を基に算出した利用可能性の値ｃｃａｌｃとのうち小さい方の値で更新される（数４を参照）。しかしながら、利用可能性の値の更新の方法はこれに限られるものではなく、再投影誤差が大きい場合に利用可能性の値が小さくなるような更新を実現する方法であれば良い。例えば、前フレームの利用可能性の値ｃｔ−１と再投影誤差から求めた利用可能性の値ｃｃａｌｃの単純な平均値で利用可能性の値が更新されてもよい。また、利用可能性の値ｃｔ−１と利用可能性の値ｃｃａｌｃの重み付き平均で利用可能性の値が更新されても良い。また、算出した利用可能性の値ｃｃａｌｃが所定の閾値以下の場合に０を下回らない範囲で時刻ｔ−１の利用可能性の値ｃｔ−１から所定の値（例えば０．１）を減算した値を更新された利用可能性の値ｃｔとしてもよい。
【００４５】
＜変形例１−８＞
第１実施形態のステップＳ１７２では、再投影誤差から求めた利用可能性の値ｃｃａｌｃを、数５を用いて算出していたがこれに限られるものではない。再投影誤差が大きいほど利用可能性の値ｃｃａｌｃが小さくなるようないかなる算出方法も適用可能である。例えば、再投影誤差が所定の閾値以上であれば１、閾値未満であれば０としても良い。また、例えば、１を再投影誤差に１を加えた値で割った値としても良い。また、例えば、ネイピア数を底とし再投影誤差に負の符号をかけた値を指数とした値でも良い。
【００４６】
＜変形例１−９＞
第１実施形態では、利用可能性の値を０から１の実数値で保持していたが、２値や量子化した値でも良い。例えば、利用可能性の値を２値で保持する場合には、ステップＳ１７１で算出した再投影誤差が所定の閾値以上では０、閾値未満であれば１とすれば良い。また、量子化する場合は、例えば、所定の閾値を２つ定めておき、再投影誤差の大きさをＬ、２つの閾値をＡ，Ｂ（Ａ＞Ｂ）とした場合に、Ｌ≧Ａであれば０、Ａ＞Ｌ≧Ｂであれば０．５、Ｌ＜Ｂであれば１のように定めても良い。
【００４７】
＜変形例１−１０＞
第１実施形態では、保持部１４０は時刻ｔ−１に撮像した前フレームの画像特徴の幾何属性と利用可能性を利用可能性情報として保持していた。しかしながら、前フレームは時刻ｔ−１に限られるものではなく、複数の時刻の履歴が保持されても良い。この時、更新部１７０は、利用可能性情報を、複数の時刻の履歴を参照して更新するようにしても良い。例えば、更新部１７０は、数６に示されるように、過去ｎ個のフレームで算出した利用可能性の値の重み平均を用いて利用可能性の値を更新しても良い。
【数６】
2018113021.tif 000008
【００４８】
但し、ｃｔ−ｉは時刻ｔ−ｉの利用可能性の値であり、ｎは過去いくつまでの履歴情報を参照するかに関する値である。αｔは時刻ｔの利用可能性情報の重みを表す値であり、数７を満たす値である。
【数７】
2018113021.tif 000009
【００４９】
なお、過去のフレームで算出した利用可能性の値の重み平均の代わりに中央値が用いられても良い。また、過去ｎ個のフレームで算出した利用可能性の値が連続して所定の閾値以下であれば利用可能性の値を減少させるように定めても良い。
【００５０】
＜変形例１−１１＞
第１実施形態では、位置／姿勢の算出結果に基づいて（再投影誤差に基づいて）利用可能性情報を更新していた。しかしながら、利用可能性情報の更新は必須としない構成も可能である。以下に、利用可能性情報を更新しない画像処理システム１００の構成について図５、図６を参照して説明する。
【００５１】
図５は、変形例による画像処理システム１００の構成例を示すブロック図である。情報処理装置１ａは、図１の情報処理装置１から算出部１６０および更新部１７０が取り除かれた構成となっている。また、情報処理装置１ａの外部に算出部１１２０が接続されている。算出部１１２０は、情報処理装置１ａの選択部１５０が撮像装置１８０の位置／姿勢の算出に利用可能と判定した特徴点を用いてカメラの位置／姿勢を算出する。なお、算出部１１２０は情報処理装置１ａに組み込まれていてもよい。
【００５２】
図６は画像処理システム１００による処理手順を示したフローチャートである。第１実施形態の情報処理装置１による処理手順と異なる点は次のとおりである。すなわち、ステップＳ１７０の更新処理が除かれた点、ステップＳ１１０（初期化処理）において利用可能性情報が読み込まれる点、情報処理装置１ａの外部に接続された算出部１１２０がステップＳ１６０（位置姿勢算出処理）を実行する点である。ステップＳ１１０（初期化）において、保持部１４０は、不図示の入力部を介して利用可能性情報１４１を外部の記憶装置から読み込み、保持する。ステップＳ１６０において、情報処理装置１ａの外部に接続された算出部１１２０が、現フレームを撮影したカメラの位置／姿勢を算出する。この位置／姿勢の算出では、情報処理装置１ａの選択部１５０が選択した対応特徴点と、対応付け部１３０が対応付けた保持部１４０の保持する保持特徴点とが用いられる。
【００５３】
利用可能性情報の更新時における誤判定の可能性はゼロではない。あらかじめシーン中の移動物体上の画像特徴が既知であれば、利用可能性情報の更新を行わないことで利用可能性情報の更新における誤判定の影響を除去でき、高精度に位置／姿勢を算出できるようになる。また、このとき、「利用可能性情報」の更新が不必要になり計算速度の向上が見込まれる。
【００５４】
＜変形例１−１２＞
第１実施形態では、移動物体上の特徴点が位置／姿勢算出に利用されないように利用可能性情報を更新していた。しかしながら、テレビ画面に写る映像やプロジェクタが投影する像などといった、動く物体ではないが位置が変化する画像特徴もある。したがって、このような動く物体ではないが位置が変化する画像特徴が位置／姿勢算出に利用されないように利用可能性情を更新するようにしてもよい。具体的には、テレビ画面やプロジェクタが投影する領域などの動く物体ではないが位置が変化する画像特徴が現れる領域（以下、除外すべき領域）の情報を、ステップＳ１１０の初期化処理にて取得し、例えば保持部１４０に保持しておく。除外すべき領域を示す情報は、例えば、外部の記憶装置にデータベースとして記録されており、情報処理装置１はこのデータベースを読み込み、保持部１４０に保持する。もしくは、表示装置にＧＵＩを提示し、ユーザの入力した除外すべき領域を指定するようにしてもよい。除外すべき領域内で検出された画像特徴については、更新部１７０が保持部１４０の該当する利用可能性の値を減少させる。
【００５５】
＜変形例１−１３＞
第１実施形態で用いた各種の閾値をユーザが設定するための構成が設けられてもよい。ユーザ設定を可能とする閾値としては、例えば、
・画像上での特徴点対応付けにおいて同一の特徴点とみなすかどうか判定するための閾値Ｍｔｈ（ステップＳ１４０）、
・特徴点を位置／姿勢算出に利用するか否かを判定するための利用可能性の値の閾値Ｖｔｈ（ステップＳ１５０）、
・利用可能性情報を更新する際の再投影誤差の閾値ｄｔｈ（ステップＳ１７２）、などが挙げられる。
【００５６】
これらの閾値は、ステップＳ１１０の初期化処理において、例えば、情報処理装置１が外部の記憶装置から読み込むようにしてもよいし、所定のＧＵＩを介してユーザに設定させるようにしてもよい。そのようなＧＵＩは、例えば情報処理装置１が備えるディスプレイにより実現され得る。図７にＧＵＩの表示例を示す。ＧＵＩ７００は、利用可能性情報の利用の有無の切り替えや各種閾値を変更するためのＧＵＩの一例である。具体的には、ＧＵＩ７００は、利用可能性情報を利用するか否かを切り替える切り替えボタンＧ７１０、再投影誤差により利用可能性情報を更新するか否かの切り替えボタンＧ７２０を有する。また、ＧＵＩ７００は、位置／姿勢の算出に用いる特徴点の利用可能性の値の閾値Ｖｔｈの設定用のスライダーＧ７３０、特徴点マッチングの閾値Ｍｔｈの設定用のスライダーＧ７４０、再投影誤差の閾値ｄｔｈの設定用のスライダーＧ７５０を有する。ＧＵＩのボタン（Ｇ７１０，Ｇ７２０）の押下やスライダー（Ｇ７３０，Ｇ７４０，Ｇ７５０）の変化を検知すると、該当する処理の実行状態や該当する閾値の値を変化させる。
【００５７】
＜変形例１−１４＞
本実施形態では、本発明における情報処理装置１を、複合現実感を実現するためのＨＭＤの位置姿勢を算出する場合における適用方法について説明した。しかしながら、本発明を適応するアプリケーションは複合現実感を実現するための用途にとどまらない。例えば、移動ロボットの制御のためにロボットの位置／姿勢を算出する場合や、自動運転のために自動車の位置／姿勢を算出する場合にも適用してもよい。このような場合には、他の移動ロボットや自動車、歩行者が移動物体となりうる。
【００５８】
さらに、移動物体の種類が事前に判明している場合には、不図示の物体検出部が移動物体を画像入力部１１０が入力した画像中から検出し、当該領域中に存在する画像特徴の利用可能性の値を小さくしてもよい。なお、物体検出部は、例えば物体の有無を判定する物体検出学習モデルを用いて移動物体を物体検出してもよい。具体的には、物体検出学習モデルは例えば、入力した画像中の各画素が移動物体の領域に含まれていれば１を、含まれていなければ０を出力するようにＤｅｅｐ  Ｌｅａｒｎｉｎｇを用いて学習されたＳｈｅｌｈａｍｅｒらのニューラルネットワークのことである（非特許文献１０参照）。また、物体検出部は、不図示の記録手段に保持したあらかじめ移動物体の画像を切り出したテンプレート画像を入力画像とテンプレートマッチングしたときの正規化相互相関値が所定の閾値以下の領域を移動物体として検出してもよい。さらに、物体検出部が不図示の移動物体の三次元モデル（例えばＣＡＤデータ）を保持し、入力画像の微分である勾配画像とＣＡＤデータをさまざまな方向から観察したときのシルエットとの位置合わせを行うＬｉｎｅ２Ｄ法により入力画像中に写っている物体にＣＡＤモデルを位置合わせした領域を移動物体として検出してもよい。これにより、あらかじめ移動物体の種類が判明している場合に、移動物体上の画像特徴が位置／姿勢の算出に利用されなくなり、高精度に、且つ安定して、位置／姿勢を算出することができる。
【００５９】
＜第２実施形態＞
第１実施形態では、再投影誤差が大きい特徴点ほど利用可能性の値を小さくすることで、再投影誤差が大きい特徴点が位置／姿勢の算出へ利用されにくくなるようにしていた。第２実施形態では、前フレームと現フレームの特徴点の対応付けが連続して成功した回数が多い特徴点ほど利用可能性の値を大きくし、対応付けに失敗した特徴点は利用可能性の値を小さくする。このように、対応付けに連続して成功している特徴点を選択して用いることで高精度に、安定して撮像装置１８０の位置／姿勢を算出することができる。
【００６０】
第２実施形態における画像処理システムの構成は第１実施形態（図１）と同様である。但し、保持部１４０が保持する利用可能性情報１４１が第１実施形態と第２実施形態とで異なる。第２実施形態の利用可能性情報１４１は、第１実施形態（図２）で説明した各特徴点の幾何属性と、各特徴点の位置姿勢算出への利用可能性の値に加え、各特徴点の対応付けが成功した回数（以降、連続対応回数）に関する情報を有する。本実施形態では、連続対応回数に関する情報として整数値が用いられる。また、第２実施形態における画像処理システムの処理手順は、ステップＳ１４０（特徴点の対応付け処理）とステップＳ１７０（利用可能性情報の更新処理）を除いて、第１実施形態（図３）と同様である。
【００６１】
ステップＳ１４０において、対応付け部１３０は、第１実施形態と同様に前フレームの特徴点（保持特徴点）と現フレームの特徴点（検出特徴点）とを特徴点マッチングにより対応付ける。この対応付け処理の結果に応じて、対応付け部１３０は、保持部１４０が保持する利用可能性情報１４１の連続対応回数に関する情報を更新する。すなわち、対応付け部１３０は、対応関係が見つかった場合には、連続対応回数に関する情報の値に１を加え、対応関係が見つからなかった場合には、連続対応回数に関する情報の値を０にする。
【００６２】
また、ステップＳ１７０において、更新部１７０は、保持部１４０の保持する各保持特徴点の連続対応回数に基づいて、利用可能性情報１４１を更新する。具体的には、更新部１７０は、連続対応回数が小さいほど、保持特徴点の利用可能性を小さくする。本実施形態では、連続対応回数が所定回数以下の保持特徴の利用可能性を０に設定する。たとえば、更新部１７０は、連続対応回数をＭ回とすると、現フレームの利用可能性の値ｃｔを数８のように更新する。
【数８】
2018113021.tif 000010
但しＭｔｈは、特徴点が検出されてから位置／姿勢の算出に用いられるまでに連続して対応付けが成功しなければならない回数に関する閾値である。
【００６３】
以上に述べたように、第２実施形態では、連続対応回数の少ない画像特徴を位置／姿勢の算出に利用しないようにする。これにより、例えば近づいてくる移動物体上で新たに検出された画像特徴を位置／姿勢算出に利用せず、高精度に、安定に位置／姿勢を算出することができる。
【００６４】
＜変形例２−１＞
第２実施形態では、各特徴点の対応付けに成功した回数である連続対応回数を基に利用可能性の値を更新したがこれに限られるものではない。例えば、連続対応回数を基に算出した利用可能性の値と、第１実施形態で算出した再投影誤差に基づいて算出した利用可能性の値とを組み合わせた合成値を算出し、この合成値を用いて位置／姿勢に用いる特徴点を選択するようにしても良い。この場合、利用可能性情報１４１は連続対応回数を基に算出された利用可能性の値ｃｃと再投影誤差を基に算出された利用可能性の値ｃｐ、及び合成値ｃを保持する。そして、ステップＳ１５０において選択部１５０が、合成値ｃが所定の閾値以上である特徴点を選択する。なお、合成値ｃは、連続対応回数が小さいほど、または再投影誤差が大きいほど、減少するような値であれば良い。例えば、利用可能性の値ｃｃとｃｐのうち小さい値を合成値としても良いし、ｃｃとｃｐを積算した値や和算した値を合成値としても良い。
【００６５】
＜第３実施形態＞
第１実施形態では、再投影誤差が大きい特徴点ほど、その利用可能性を減少させることで位置／姿勢の算出に利用しにくくしていた。また、第２実施形態では、連続対応回数の少ない特徴点ほど、その利用可能性を減少させることで位置／姿勢の算出に利用しにくくしていた。第３実施形態では、利用可能性の値が低下した特徴点でも再投影誤差が連続して所定の閾値よりも小さければ利用可能性の値を向上させる。すなわち、再投影誤差の値が所定回数以上にわたって連続して所定の閾値より小さい保持特徴に関連付けられた利用可能性を大きくする。これにより、一度低下した利用可能性の値を向上させることができ、移動物体が静止した時にも高精度、高安定に位置／姿勢を算出することができる。なお、第３実施形態における移動物体が静止するというのは、例えば複合現実感体験中に机や椅子などの什器のレイアウトを変更するなどして移動させた場合や、自動運転において他の移動していた自動車が駐車し静止した場合に起こる現象である。
【００６６】
第３実施形態における画像処理システム１００の構成は第１実施形態（図１）と同様である。但し、第１実施形態と第３実施形態とでは、保持部１４０が保持する利用可能性情報１４１が異なる。第３実施形態の利用可能性情報１４１は、図２で示した幾何属性と利用可能性に加え、連続して再投影誤差が所定の閾値よりも小さかった回数（以降、連続整合回数）に関する情報を保持する。
【００６７】
第３実施形態の画像処理システムにおける処理手順は、ステップＳ１７０（利用可能性情報の更新処理）を除いて第１実施形態（図３）で説明した処理手順と同様である。第３実施形態におけるステップＳ１７０では、第１実施形態で説明した処理（再投影誤差に基づく利用可能性の値の更新）に加え、連続整合回数が考慮される。更新部１７０は、ステップＳ１７２において、各特徴点の再投影誤差を基に利用可能性情報１４１に含まれる連続整合回数を更新する。例えば、更新部１７０は、更新された連続整合回数が所定の閾値未満であれば利用可能性の値を０とし、更新された連続整合回数が所定の閾値以上であれば再投影誤差に応じて利用可能性の値を更新する。より具体的には、更新部１７０は、再投影誤差が所定の閾値ｄｔｈ未満であれば連続整合回数に１を加え、再投影誤差が閾値ｄｔｈ以上であれば連続整合回数を０にする。更新部１７０は、連続整合回数閾値未満であれば利用可能性の値ｃを０にし、連続整合回数が閾値以上であれば、利用可能性の値ｃを、再投影誤差値ｄを用いて数９のように更新する。
【数９】
2018113021.tif 000011
【００６８】
以上に述べたように、第３実施形態では、一度利用可能性の値が低下した特徴点についても、複数時刻で再投影誤差が小さければその利用可能性情報の値を増大させる。これにより、例えば一度動いた物体が静止した場合にはその物体上の特徴点も位置／姿勢算出に用いることが可能になり、高精度に、安定に位置／姿勢を算出することができる。
【００６９】
＜変形例３−１＞
第３実施形態では、連続整合回数が閾値以上であれば、数９のように利用可能性情報を更新していた。しかしながら、これに限られるものではなく、利用可能性情報の更新は連続整合回数が閾値以上の場合に利用可能性を増加させる方法であれば良い。例えば、利用可能性の値が１を超えない範囲で前フレームの利用可能性の値に所定の実数値を加算（例えば０．１）するようにしてもよい。あるいは、１を再投影誤差ｄに１を加えた値で割った値（ｃ＝１／（ｄ＋１））としても良いし、再投影誤差が所定の閾値以上であればｄ＝１、閾値未満であればｄ＝０としても良い。
【００７０】
＜変形例３−２＞
第３実施形態においては、連続整合回数をもとに利用可能性の値を算出していた。しかしながら、連続整合回数ではなく、連続して整合した時間をもとに利用可能性の値を算出してもよい。具体的には、各特徴点の再投影誤差が所定の時間所定の閾値未満であれば利用可能性の値を小さくしてもよい。これにより、移動物体が一定時間静止した場合にはその物体上の特徴点も位置／姿勢算出に用いることが可能になり、高精度に、安定に位置／姿勢を算出することができる。
【００７１】
＜第４実施形態＞
第１実施形態から第３実施形態では、世界座標系に対する前フレームのカメラの位置／姿勢に前フレームに対する現フレームのカメラの位置／姿勢を積算することで、現フレームの世界座標系に対するカメラの位置／姿勢を算出していた。このため、時間が経過すると位置／姿勢に蓄積誤差が生じる可能性がある。第４実施形態では、移動物体が存在するシーンにおいて位置／姿勢の算出の指標となる三次元マップを作成しつつ、作成した三次元マップと現フレーム上の特徴点との対応関係を基にマップに対する位置／姿勢を算出する。このとき、現フレーム上の特徴点の利用可能性の値が所定の閾値より小さければその特徴点を位置／姿勢の算出に使用しないようにすることで、高精度、安定にカメラの位置／姿勢が算出される。また、三次元マップ作成時には、利用可能性の値が所定の閾値より小さい特徴点を三次元マップに追加しないようにすることで、移動物体上の特徴点が三次元マップに追加されることを防ぎ、高精度、安定にカメラの位置／姿勢を算出する。
【００７２】
図８は、第４実施形態における画像処理システム１００の構成例を示すブロック図である。第１実施形態（図１）と同様の構成には、同一の参照番号を付してある。第４実施形態では、第１実施形態の情報処理装置１に三次元情報対応付け部２６０、三次元情報更新部２９０、三次元情報保持部２１００が追加されている。
【００７３】
三次元情報保持部２１００は、三次元マップを保持する。三次元マップは、シーン中に存在する特徴の三次元幾何情報を含む。本実施形態では、三次元マップは世界座標系における特徴点（マップ点）の位置を表す三次元ベクトル（Ｘｍａｐ、Ｙｍａｐ、Ｚｍａｐ）と、その特徴点を検出した時点での入力画像上の特徴点まわりの小領域の画素値（例えば縦横３０ピクセル）を保持している。三次元情報対応付け部２６０は、選択部１５０が選択した現フレーム上の特徴点と、三次元情報保持部２１００が保持するマップ点との対応関係を探索する。三次元情報更新部２９０は、保持部１４０が保持する利用可能性情報と、算出部１６０が算出した位置／姿勢とを基に、三次元情報保持部２１００の保持する三次元マップに現フレームの特徴点を追加する。
【００７４】
図９は第４実施形態における処理手順を示すフローチャートである。第１実施形態（図３）と同様の処理には同一のステップ番号を付してある。第１実施形態と第４実施形態で異なる処理は、ステップＳ２６０（三次元情報対応付け処理）とステップＳ２９０（三次元情報更新処理）である。以下、ステップＳ２６０とステップＳ２９０について説明する。
【００７５】
ステップＳ２６０において、三次元情報対応付け部２６０は、三次元情報保持部２１００が保持する三次元マップ中のマップ点を前フレームの位置／姿勢で投影する。次に、三次元情報対応付け部２６０は、特徴点マッチングにより投影されたマップ点と前フレームの特徴点とを対応付ける。そして、三次元情報対応付け部２６０は、対応付いた前フレームの特徴点の位置を、投影されたマップ点の位置に置き換える。より具体的には、まずマップ点の三次元位置と、世界座標系に対する前フレームのカメラの位置／姿勢を基に、前フレームの画像上でのマップ点（投影されたマップ点）の三次元座標を数１０により算出する。なお、数１０において、マップ点の三次元位置を（Ｘｍａｐ、Ｙｍａｐ、Ｚｍａｐ）、世界座標系に対する前フレームのカメラの位置／姿勢を（ｔｗ→（ｔ−１）、Ｒｗ→（ｔ−１））としている。また、前フレームの画像上でのマップ点（投影されたマップ点）の三次元座標を（Ｘｍａｐ（ｔ−１）、Ｙｍａｐ（ｔ−１）、Ｚｍａｐ（ｔ−１））としている。
【数１０】
2018113021.tif 000012
【００７６】
次に、数１１により前フレームのカメラ座標系における当該特徴点の三次元座標（Ｘｍａｐ（ｔ−１），Ｙｍａｐ（ｔ−１），Ｚｍａｐ（ｔ−１））を、前フレームの画像座標（ｕｍａｐ（ｔ−１），ｖｍａｐ（ｔ−１））に変換する。
【数１１】
2018113021.tif 000013
【００７７】
以上のようにして投影されたマップ点を以降、投影マップ点と呼ぶ。次に、三次元情報対応付け部２６０は、投影マップ点と前フレーム上の特徴点とを特徴点マッチングにより対応付ける。例えば、三次元情報対応付け部２６０は、投影マップ点と前フレームの特徴点との二次元ユークリッド距離が所定の閾値以下の場合に、投影マップ点と前フレームの特徴点の周囲の画素の正規化相互相関（ＳＳＤ）を算出する。そして、三次元情報対応付け部２６０は、算出したＳＳＤ値が閾値以下であれば、それら投影マップ点と前フレームの特徴点とが同一の物体上の同一の位置であるとみなし、対応付ける。三次元情報対応付け部２６０は、対応付いた前フレーム上の特徴点の位置を投影マップ点の位置に置き換える。ステップＳ１６０において、算出部１６０は、特徴点の置き換え後の位置を用いて撮像装置１８０の位置／姿勢を算出する。
【００７８】
ステップＳ２９０（三次元情報更新処理）において、三次元情報更新部２９０は、ステップＳ１６０で算出した撮像装置１８０の位置／姿勢及び利用可能性情報を基に現フレームの特徴点を三次元情報保持部２１００が保持する三次元マップに登録する。具体的には、まず、三次元情報更新部２９０は、利用可能性の値が所定の閾値より大きい対応特徴点を選択し、選択した特徴点を例えばＫｌｅｉｎらの手法（非特許文献５）によりマップに登録する。
【００７９】
以上に述べたように、第４実施形態では、三次元マップに登録されたマップ点と利用可能性情報に基づいて選択された特徴点とを対応付けることにより位置／姿勢が算出されるので、高精度、高安定に位置／姿勢を算出することができる。三次元マップに基づいて位置／姿勢を計算するので、位置／姿勢の誤差が蓄積されることを防止できる。さらに、第４実施形態によれば、利用可能性情報を用いて三次元マップ上に登録する特徴点が選択される。このため、移動物体上などで検出された特徴点がマップに登録されることが防止され、高精度、安定に位置／姿勢を算出することができる。
【００８０】
＜変形例４−１＞
第４実施形態では、前フレームと現フレームの対応特徴点、投影マップ点と前フレームの特徴点の対応マップ点の二つの関係を併用してカメラの位置／姿勢を算出していた。また、第１実施形態では、前フレームの特徴点と現フレームの対応特徴点の関係から位置／姿勢を算出していた。しかしながら、これらに限られるものではなく、Ｋｌｅｉｎらの手法（非特許文献５）のように、マップ点と現フレームの対応特徴点の関係のみを用いて位置／姿勢を算出するようにしても良い。具体的には、ステップＳ２６０で投影マップ点との対応関係が見つからなかった前フレームの特徴点を除外し、投影マップ点と現フレームの対応特徴点により位置／姿勢を算出するようにしても良い。
【００８１】
＜その他の実施形態＞
上記各実施形態では、複合現実感システムにおける現実空間と仮想物体との位置合わせに利用するための現実空間における撮像装置（カメラ）の位置／姿勢の計測に本発明を適用する例を説明したが、これに限られるものではない。例えば、移動物体が含まれるシーンの中で、ロボットや自動車の自己位置推定を行う場合や、物体や空間の三次元モデリングを行う場合などに本発明を適用することができる。
【００８２】
以上説明したように、第１実施形態では、再投影誤差の大きな特徴点の利用可能性の値を小さくすることで位置／姿勢算出に利用されにくくなる。この利用可能性情報を用いて位置／姿勢算出時に用いる特徴点を選択することにより、移動物体が存在するシーンや繰り返し構造などにより特徴点の誤対応が生じるような物体の存在するシーンでも、高精度、安定に位置／姿勢を算出することができる。
【００８３】
また、第２実施形態では、前フレームと現フレームにおける特徴点の対応付けが連続して成功した回数が多い特徴点ほど利用可能性の値を大きくし、対応付けに失敗した特徴点は利用可能性の値を小さくする。このように、対応付けに連続して成功し、過去に位置／姿勢算出に連続して利用されている特徴点を選択して用いることで高精度に、安定して位置／姿勢を算出することができる。
【００８４】
また、第３実施形態では、一度利用可能性情報の値が低下した画像特徴でも、複数時刻で再投影誤差が小さければ利用可能性情報の値を向上させる。これにより、例えば一度動いた物体が静止した場合にはその物体上の特徴点も位置／姿勢の算出に用いることができ、高精度に、安定に位置／姿勢を算出することができる。
【００８５】
更に、第４実施形態では、三次元マップに登録されたマップ点と、利用可能性情報に基づいて選択された特徴点と、を対応付けることで位置／姿勢を算出することで、高精度、高安定に位置／姿勢を算出することができる。さらに、利用可能性情報を用いて三次元マップ上に登録する特徴点を選択することでマップ上に移動物体上などで検出された特徴点が登録されることを防ぎ、高精度、安定に位置／姿勢を算出することができる。
【００８６】
なお、上記各実施形態では画像入力部１１０としてステレオカメラを用いたがこれに限られるものではなく、現実空間を撮像した画像を入力するものであればよい。例えば、単眼カメラが撮像した画像を入力しても良いし、ステレオカメラなど複数台のカメラ画像を入力しても良い。また、カラー画像の入力に限るものではなく、濃淡画像を入力しても良いし、奥行き情報を表す奥行き画像を入力してもよい。さらに、カメラが撮像した画像を直接入力しても良いし、ネットワークを介して入力しても良い。
【００８７】
検出部１２０は、画像特徴として特徴点を検出するものとしたがこれに限られるものではなく、位置／姿勢の算出に用いるための画像特徴を検出するものであれば良い。例えば、Ｓｈｉらの手法（非特許文献３）により特徴点を検出しても良いし、Ｋｏｔａｋｅらの手法（非特許文献６）でエッジを検出しても良い。或いは、Ｋａｔｏらの手法（非特許文献２）でマーカを検出しても良い。
【００８８】
対応付け部１３０は、画像間で画像特徴が同一のものであるかどうかという対応関係を探索できるものであれば良い。例えば、画像特徴周辺の小領域の画像の正規化相互相関に基づいて対応付けしても良いし、ＬｏｗｅのＳＩＦＴ特徴量を用いた特徴点マッチング手法（非特許文献８）を用いて対応付けても良い。また、ＴｏｍａｓｉらのＫＬＴを用いた特徴点追跡（非特許文献９）を用いても良い。
【００８９】
保持部１４０は、画像特徴の位置や向きを特定する幾何属性に関する情報と、各画像特徴を撮像装置の位置／姿勢の算出へ利用して良いか否かを表す利用可能性の情報の履歴を保持するものであれば良い。例えば、利用可能性の値は二値でも良いし、実数でも良い。また、複数の利用可能性の値が保持されても良い。また、幾何属性と利用可能性の情報は、過去のある一時刻のものであってもよいし、複数の時刻のものであってもよい。さらには、幾何属性及び利用可能性の履歴以外にも、画像特徴の対応付けが連続して成功した回数や再投影誤差が連続して所定の閾値未満であった回数といった履歴が保持されても良い。
【００９０】
選択部１５０は、保持部１４０が保持する利用可能性情報１４１を用いて位置／姿勢の算出に用いる特徴点を選択するものであれば良い。例えば、利用可能性の値が所定の閾値以上である特徴点を選択しても良いし、利用可能性の値が大きなものから順に所定数の特徴点を選択しても良い。また、利用可能性情報の値に基づいて、位置／姿勢算出時の各特徴点の寄与度である重みを付与しても良い。
【００９１】
算出部１６０は、選択部１５０が選択した特徴点を用いて撮像装置１８０の位置／姿勢を算出するものであれば良い。位置／姿勢の算出には、例えば、Ｂａｄｉｎｏらの手法（非特許文献４）、Ｋｏｔａｋｅらの手法（非特許文献６）、Ｋｏｒｋａｌｏらの手法（非特許文献７）、Ｋａｔｏらの手法（非特許文献２）を用いることができる。また、各特徴点に重みが付与されている場合には、重みに基づいた各特徴点の位置／姿勢の算出への寄与度で位置／姿勢を算出するようにしても良い。
【００９２】
更新部１７０は、特徴点の位置／姿勢算出への利用可能性の値を更新するものであれば良い。例えば、更新部１７０は、再投影誤差に基づいて利用可能性の値を更新しても良いし、画像特徴の対応付けが連続して成功した回数や再投影誤差が連続して所定の閾値未満であった回数に基づいて利用可能性の値を更新しても良い。さらには、複数の利用可能性情報を更新しても良い。
【００９３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９４】
１００：画像処理システム、１：情報処理装置、１１０：画像入力部、１２０：検出部、１３０：対応付け部、１４０：保持部、１５０：選択部、１６０：算出部、１７０：更新部、１８０：撮像装置、１９０：画像合成部、１１００：表示部
【図１Ａ】
2018113021.tif 000014
【図１Ｂ】
2018113021.tif 000015
【図２】
2018113021.tif 000016
【図３】
2018113021.tif 000017
【図４】
2018113021.tif 000018
【図５】
2018113021.tif 000019
【図６】
2018113021.tif 000020
【図７】
2018113021.tif 000021
【図８】
2018113021.tif 000022
【図９】
2018113021.tif 000023