(57)【要約】【課題】  線分が多いシーンにおいても精度良く三次元座標を求めることができる。【解決手段】  第一の撮像装置による現実空間の撮像に基づいて取得される第一の画像と、前記第一の撮像装置と異なる第二の撮像装置による前記現実空間の撮像に基づいて取得される第二の画像とを入力する画像入力手段と、前記第一の画像から検出される特徴点に対応する対応点を、前記第二の画像から探索する探索手段と、前記検出される特徴点と前記探索される対応点とに基づいて、前記特徴点または前記対応点の奥行き情報を導出する導出手段と、前記導出手段で導出された前記特徴点または前記対応点の奥行き情報を出力する出力手段とを備え、前記出力手段は、前記第一の画像から検出される特徴点の近傍領域における画素値の勾配の方向が所定の条件を満たす場合に、前記特徴点または前記対応点の奥行き情報の出力を行わない。【選択図】  図１
2017037426.tif 000002
【特許請求の範囲】
【請求項１】
第一の撮像装置による現実空間の撮像に基づいて取得される第一の画像と、前記第一の撮像装置と異なる第二の撮像装置による前記現実空間の撮像に基づいて取得される第二の画像とを入力する画像入力手段と、
前記第一の画像から検出される特徴点に対応する対応点を、前記第二の画像から探索する探索手段と、
前記検出される特徴点と前記探索される対応点とに基づいて、前記特徴点または前記対応点の奥行き情報を導出する導出手段と、
前記導出手段で導出された前記特徴点または前記対応点の奥行き情報を出力する出力手段とを備え、
前記出力手段は、前記第一の画像から検出される特徴点の近傍領域における画素値の勾配の方向が所定の条件を満たす場合に、前記特徴点または前記対応点の奥行き情報の出力を行わないことを特徴とする情報処理装置。
【請求項２】
前記探索手段は、前記第一の画像から検出される特徴点の近傍領域における画素値の勾配の方向が所定の条件を満たす場合に、前記探索を行わないことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記導出手段は、前記第一の画像から検出される特徴点の近傍領域における画素値の勾配の方向が所定の条件を満たす場合に、前記導出を行わないことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記所定の条件は、前記第一の画像において、前記画素値の勾配の方向が前記第一の撮像装置と前記第二の撮像装置との間の配置関係に基づき決定されるエピポーラ線の方向に略直交している場合であることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記探索手段は、前記第二の画像において、前記第一の撮像装置と前記第二の撮像装置との間の配置関係及び前記第一の画像における前記特徴点の位置に基づき決定されるとを結ぶエピポーラ線に基づいて決定される範囲で前記対応点を探索することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第一の撮像装置と前記第二の撮像装置の配置関係は既知であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第一の撮像装置および前記第二の撮像装置は、頭部装着型表示装置に備えつけられていることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
更に、前記現実空間の特徴の三次元情報を保持する三次元情報保持手段と、
前記三次元情報と前記出力手段により出力された結果とに基づいて、前記第一の撮像装置または前記第二の撮像装置の位置姿勢を導出する位置姿勢導出手段と、
前記第一の画像と前記第二の画像のうち少なくともいずれかに基づいて前記三次元情報を更新する更新手段とを備える請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記三次元情報保持手段は、前記現実空間に存在する特徴の三次元座標と、前記現実空間を前記第一の撮像装置または前記第二の撮像装置により撮像した複数の参照画像と、前記複数の参照画像それぞれを撮像した時の前記現実空間における前記第一の撮像装置または前記第二の撮像装置の位置及び姿勢を保持し、
前記更新手段は、前記複数の参照画像から前記位置姿勢導出手段によって導出された位置姿勢と撮像時の位置姿勢の差が最も小さい参照画像を選択し、
前記第一の撮像装置及び前記第二の撮像装置のうち、撮像時の位置が前記参照画像を撮像した時の位置との差が大きい方の撮像装置が撮像した画像を用いて前記三次元情報保持手段が保持する特徴の三次元座標を更新することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記三次元情報保持手段は、前記現実空間に存在する特徴の三次元座標と、前記シーンを前記第一の撮像装置または前記第二の撮像装置により撮像した複数の参照画像と、前記複数の参照画像それぞれを撮像した時の前記現実空間における前記前記第一の撮像装置または前記第二の撮像装置の位置及び姿勢を保持し、
前記更新手段は、前記複数の参照画像から前記位置姿勢導出手段によって導出された位置姿勢との差が最も小さい位置姿勢を有する参照画像を選択し、
前記選択された参照画像上の特徴点について、前記参照画像上の勾配の方向と前記第一の撮像装置または前記第二の撮像装置のエピポーラ線の方向に基づいて前記第一の撮像装置または前記第二の撮像装置のいずれか一方の撮像装置を選択し、
前記探索手段は、前記選択された参照画像上で検出される特徴点に対応する点を前記選択された撮像装置が撮像した画像上で探索し、前記選択された撮像装置が撮像した画像上で探索した点に対応する点を他方の撮像装置が撮像した画像上で探索し、
前記対応する点を用いて前記三次元情報を更新することを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
更に、前記導出される位置姿勢に基づいて仮想画像を生成する仮想画像生成手段を備えることを特徴とする請求項８に記載の情報処理装置。
【請求項１２】
第一の撮像装置による撮像に基づいて取得される第一の画像と、前記第一の撮像装置と異なる第二の撮像装置による撮像に基づいて取得される第二の画像とを入力する画像入力工程と、
前記第一の画像から検出される特徴点に対応する対応点を、前記第二の画像から探索する探索工程と、
前記検出される特徴点と前記探索される対応点とに基づいて、前記特徴点または前記対応点の奥行き情報を導出する導出工程と、
前記導出手段で導出された前記特徴点または前記対応点の奥行き情報を出力する出力工程とを備え、
前記出力工程は、前記第一の画像から検出される特徴点の近傍領域における画素値の勾配の方向が所定の条件を満たす場合に、前記特徴点または前記対応点の奥行き情報の出力を行わないことを特徴とする情報処理方法。
【請求項１３】
コンピュータを、請求項１乃至１１のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は撮像装置の位置及び姿勢を計測する方法に関する。
【背景技術】
【０００２】
画像を用いてシーンの三次元マップ作成と撮像装置の位置及び姿勢計測を同時に行うＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）技術は、ロボットや自動車の自己位置推定、拡張／複合現実感における現実空間と仮想物体との位置合わせ等に利用される。
【０００３】
非特許文献１には、単眼カメラによって撮影された画像をもとに三次元マップ作成と撮像装置の位置及び姿勢の計測を行う方法が開示されている。この方法では、単眼カメラの動きに基づくステレオによって三次元マップの生成・更新を行っている。すなわち、同一の単眼カメラで異なる時刻で撮影された二枚の画像をステレオペアとして特徴点の三次元座標を算出している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｊ．Ｅｎｇｅｌ，Ｔ．ｓｃｈｏｅｐｓ，Ｄ．Ｃｒｅｍｅｒｓ，“ＬＳＤ−ＳＬＡＭ：Ｌａｒｇｅ−Ｓｃａｌｅ  Ｄｉｒｅｃｔ  Ｍｏｎｏｃｕｌａｒ  ＳＬＡＭ，”  Ｐｒｏｃ．１３ｔｈ  Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ（ＥＣＣＶ２０１４），２０１４．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１では、線分が多いシーンでは精度よく三次元座標が算出できる点が少なくなり位置及び姿勢計測の安定性が低下するという課題がある。
【０００６】
本願発明は、上記課題に鑑みてなされたものであり、線分が多いシーンにおいても精度良く三次元座標を求めることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の情報処理装置は、例えば、第一の撮像装置による現実空間の撮像に基づいて取得される第一の画像と、前記第一の撮像装置と異なる第二の撮像装置による前記現実空間の撮像に基づいて取得される第二の画像とを入力する画像入力手段と、前記第一の画像から検出される特徴点に対応する対応点を、前記第二の画像から探索する探索手段と、前記検出される特徴点と前記探索される対応点とに基づいて、前記特徴点または前記対応点の奥行き情報を導出する導出手段と、
前記導出手段で導出された前記特徴点または前記対応点の奥行き情報を出力する出力手段とを備え、前記出力手段は、前記第一の画像から検出される特徴点の近傍領域における画素値の勾配の方向が所定の条件を満たす場合に、前記特徴点または前記対応点の奥行き情報の出力を行わないことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、線分が多いシーンにおいても精度良く三次元座標を求めることができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態における情報処理装置１の構成を示す図である。
【図２】第１の実施形態における位置及び姿勢算出、三次元マップ更新の処理手順を示すフローチャートである。
【図３】第１の実施形態における位置及び姿勢算出の詳細な処理手順を示すフローチャートである。
【図４】第１の実施形態における三次元マップ更新の詳細な処理手順を示すフローチャートである。
【図５】第２の実施形態における三次元マップ更新の詳細な処理手順を示すフローチャートである。
【図６】第３の実施形態における三次元マップ更新の詳細な処理手順を示すフローチャートである。
【図７】第３の実施形態における対応探索の処理手順を示すフローチャートである。
【図８】変形例の適用場面を説明する図である。
【図９】本発明の情報処理装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１０】
本発明にかかる各実施形態を説明するのに先立ち、各実施形態に示す情報処理装置が実装されるハードウェア構成について、図９を用いて説明する。
【００１１】
図９は、本実施形態における情報装置のハードウェア構成図である。同図において、ＣＰＵ９１０は、バス９００を介して接続する各デバイスを統括的に制御する。ＣＰＵ９１０は、読み出し専用メモリ（ＲＯＭ）９２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ９２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）９３０に一時記憶され、ＣＰＵ９１０によって適宜実行される。また、入力Ｉ／Ｆ９４０は、外部の装置（表示装置や操作装置など）から情報処理装置１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ９５０は、外部の装置（表示装置）へ表示装置が処理可能な形式で出力信号として出力する。
【００１２】
（第１の実施形態）
第１の実施形態では、現実空間に仮想物体を重ね合わせて表示する複合現実感システムにおいて仮想物体を描画するために必要な現実空間におけるカメラの位置及び姿勢の計測に本発明の方法を適用した場合について説明する。ここでは、複合現実感を体験するユーザは頭部装着型表示装置ＨＭＤ（Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）を装着し、ＨＭＤを通して仮想物体が重畳された現実空間を観察するものとする。本実施形態において、カメラの位置姿勢とは、世界座標系におけるカメラの撮像視点位置の位置座標（ｘ、ｙ、ｚ）の３パラメータおよび、カメラの姿勢、すなわちカメラ座標系のＸ軸、Ｙ軸、Ｚ軸の方向を表す３パラメータを合わせた６パラメータのことをいう。本実施形態において、姿勢を表す３パラメータは、世界座標系における回転軸の傾きを表す２パラメータと、該回転軸まわりの回転角を表す１パラメータであるとする。なお、姿勢を表す３パラメータはこれに限るものではなく、ロール角・ピッチ角・ヨー角によって表してもよいし、オイラー角によって表してもよい。
【００１３】
本実施形態では、ＨＭＤに備えつけられたステレオカメラによるステレオ画像の撮影を行い、後述する三次元マップに保持されるキーフレーム画像とステレオ画像を構成する各画像とのステレオペアを作成する。そして、キーフレーム画像とステレオ画像の各画像のステレオペア毎に別々にキーフレーム画像上の点の三次元座標を算出する。そして、算出された三次元座標を用いて該点の既存の三次元座標を更新する。これにより、単眼カメラの動きに基づくステレオでは高精度に三次元座標を算出できない点であっても、精度よく三次元座標が算出できるようになる。
【００１４】
図１は、本実施形態における情報処理装置１の構成を示す図である。情報処理装置１は、三次元情報保持部１０、画像入力部２０、カメラパラメータ保持部３０、位置姿勢算出部４０、三次元情報更新部５０、対応探索部６０から構成されている。画像入力部２０はステレオカメラ８０と接続されている。
【００１５】
三次元情報保持部１０は、位置姿勢算出部４０で利用するシーンの三次元マップを保持する。本実施形態では、三次元マップはキーフレーム画像の集合として保持されるものとする。キーフレーム画像とは、画像上の特徴点の奥行き値（またはその逆数）および該奥行き値（またはその逆数）の分散を保持し、該キーフレーム画像を撮像した時のカメラの世界座標系における位置及び姿勢が属性として付与された画像である。本実施形態では、非特許文献１と同様に、キーフレーム画像上において輝度勾配が一定閾値以上の点を特徴点とする。キーフレーム画像が保持する特徴点の奥行き値はカメラ座標系を基準とした値である。特徴点の世界座標系を基準とした三次元座標は、特徴点の画像座標と奥行き値、カメラの位置及び姿勢を用いて算出可能である。
【００１６】
画像入力部２０は、ステレオカメラ８０が撮像するカラー画像を位置姿勢算出部４０に入力する。本実施形態では、ステレオカメラはＨＭＤに内蔵されており、左右のカメラで撮像した夫々の画像に仮想物体を重畳してＨＭＤに表示することを想定しているため、ステレオカメラ８０が撮像（取得）する画像はカラー画像としている。なお、ロボットや自動車の自己位置推定ではユーザは撮像した画像を観察する必要はないため、入力する画像は濃淡画像であってもよい。画像入力部２０はステレオカメラ８０から時系列に画像を入力し、情報処理装置１は画像入力部２０から入力される各々のステレオ画像にを撮像した時の世界座標系におけるステレオカメラの位置及び姿勢を計測する。ステレオカメラ８０を構成する２台のカメラの内部パラメータ（焦点距離、画像中心位置、レンズ歪みパラメータ）は既知であるとする。カメラの内部パラメータは、例えばＺｈａｎｇの方法（Ｚ．Ｚｈａｎｇ，“Ａ  ｆｌｅｘｉｂｌｅ  ｎｅｗ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｃａｍｅｒａ  ｃａｉｌｂｒａｔｉｏｎ，”  ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，ｖｏｌ．２２，ｎｏ．１１，ｐｐ．１３３０−１３３４，２０００．）によって事前に校正する。また、ステレオカメラ８０を構成する二台のカメラ間の相対的な位置及び姿勢である外部パラメータも既知であるとする。ステレオカメラの外部パラメータは、例えば三次元形状が既知のパターンを同時に左右のカメラで撮像し、撮像された画像をもとに算出されるパターンを基準とした各カメラの位置及び姿勢をステレオカメラの左カメラを基準とした位置及び姿勢に変換して求める。ステレオカメラ８０を構成する２台のカメラの内部パラメータと外部パラメータはカメラパラメータ保持部３０に保持される。
【００１７】
位置姿勢算出部４０は、画像入力部２０によって入力されたステレオ画像、三次元情報保持部１０が保持するマップデータに基づいてステレオ画像を撮像した時の世界座標系におけるステレオカメラの位置及び姿勢を算出する。本実施形態では、非特許文献１と同様に位置及び姿勢の算出を三次元マップの更新と並列に実行する。算出されたステレオカメラの位置及び姿勢を仮想物体のＣＧのレンダリングとともに、三次元マップの更新にも利用する。
【００１８】
対応探索部６０は、画像入力部２０によって入力されたステレオ画像をもとに三次元マップを更新するために、三次元マップ中のキーフレーム画像上の点とステレオ画像の各画像上の点の対応付けを行い、点のキーフレーム画像上の座標とステレオ画像の各画像上の座標とのペアを生成する。
【００１９】
三次元情報更新部５０は、対応探索部６０から得られる座標のペアをもとにキーフレーム画像上の点の三次元座標を算出し三次元マップを更新する。前述したように、三次元マップの更新は位置及び姿勢の算出と並行して行う。また、さらに逐次更新される三次元マップの幾何的な整合をとるために三次元マップの最適化（以下、マップ最適化と呼ぶ）を行ってもよい。マップ最適化の処理は、非特許文献１と同様に、位置及び姿勢算出、三次元マップ更新の処理と並列に実行される。
【００２０】
これらの各機能部は、ＣＰＵ９１０が、ＲＯＭ９２０に格納されたプログラムをＲＡＭ９３０に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ９１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２１】
次に、本実施形態における位置及び姿勢算出、三次元マップ更新の処理手順について説明する。図２は、本実施形態における位置及び姿勢計測、三次元マップ更新の処理手順を示すフローチャートである。前述したとおり、位置及び姿勢計測、三次元マップ更新は並列に実行される。説明を簡単にするため、図２のフローチャートでは位置及び姿勢の計測が終わった後に三次元マップを更新するものとしている。
【００２２】
ステップＳ１０１０では、位置姿勢算出部４０は、初期化フラグＦをＴＲＵＥに設定する。初期化フラグＦがＴＲＵＥの場合、ステレオカメラの位置及び姿勢は不明であり、三次元マップも存在しない。
【００２３】
ステップＳ１０２０では、画像入力部２０は、ステレオカメラ８０が撮像したステレオ画像を入力する。入力されたステレオ画像は、カメラパラメータ保持部３０に保持する内部パラメータ、外部パラメータを用いて、レンズ歪みの影響を除去した上で平行化されたステレオ画像に変換する。すなわちステレオ画像上の各画素のエピポーラ線が画像のスキャンラインに平行になるようにする。これによって後述するステップＳ１０７０におけるステレオマッチングが高速化される。
【００２４】
ステップＳ１０３０において初期化フラグＦがＴＲＵＥであればステップＳ１０７０に、ＦＡＬＳＥであればステップＳ１０４０に進む。
【００２５】
ステップＳ１０７０では、対応探索部６０は、三次元マップの初期化を行う。そして、対応探索部６０は、ステップＳ１０２０で入力されたステレオ画像のうち左側カメラで撮像した画像内で一定値以上の輝度勾配を有する特徴点を検出する。そして、該左側カメラ画像内の特徴点に対応する右側カメラ画像上の点（以下、対応点と呼ぶ）をステレオマッチングにより探索する。左側カメラ画像内の特徴点と探索された右側カメラ画像内の点を対応点ペアとし、左側カメラ画像内の特徴点について三角測量により左側カメラ座標系基準の三次元座標を算出する。右側カメラ画像内で該特徴点の対応点を探索する前に、左側カメラ画像における該特徴点の近傍領域に基づき輝度勾配を求め、該輝度勾配の方向ベクトルがステレオカメラのエピポーラ線の方向ベクトルと直交または略直交（所定の条件）する場合には、右側カメラ画像での対応点の探索処理を行わない。なぜならば、輝度勾配の方向ベクトルがエピポーラ線の方向ベクトルと直交するような特徴点は、対応点の探索が曖昧になるためである。この処理は輝度勾配の方向ベクトルとステレオカメラのエピポーラ線の方向ベクトルとの内積を計算し、該内積の絶対値がα以内である場合に直交または略直交と判定すればよい。なお、αは事前に決めておく定数である。例えば、なお、本実施形態では三次元マップの初期化を行う際のステレオカメラの左側カメラのカメラ座標系を世界座標系にとる。三次元マップの初期化に用いられたステレオ画像のうち左側カメラの画像はキーフレーム画像として三次元マップに追加される。なお、エピポーラ線の方向ベクトルは、ステレオカメラの幾何配置（配置関係）によって決定される。本実施形態では、ステレオカメラはＨＭＤに備え付けられて配置が固定されているため、エピポーラ線の方向ベクトルは固定値であり、かつ既知である。
【００２６】
ステップＳ１０４０では、位置姿勢算出部４０は、ステレオカメラ８０によって撮影されたステレオ画像および三次元情報保持部１０が保持する三次元マップに基づいて世界座標系におけるステレオカメラの位置及び姿勢を算出（導出）する。位置及び姿勢の算出方法については後述する。ステップＳ１０４０で算出された位置及び姿勢と位置及び姿勢算出に利用したステレオ画像はステップＳ１０５０におけるマップ更新で利用する。
【００２７】
ステップＳ１０５０では、三次元情報更新部５０は、ステレオ画像とステレオカメラの位置及び姿勢とに基づいて三次元情報保持部１０が保持する三次元マップの更新を行う。三次元マップの更新方法については後述する。位置及び姿勢算出とマップ更新を並列で行う場合には、マップ更新のプロセスはステップＳ１０５０の処理を繰り返すものとする。
【００２８】
ステップＳ１０６０では、位置及び姿勢の計測処理を終了するか否かの判定を行う。マウスやキーボードなどを介してユーザから位置及び姿勢計測を終了するコマンドが入力されている場合、位置及び姿勢計測を終了する。そうでない場合は位置及び姿勢の計測処理を継続するためステップＳ１０２０に戻る。
【００２９】
（ステップＳ１０４０の処理の詳細）
次に、ステップＳ１０４０における位置及び姿勢算出処理について詳細に説明する。図３は、ステップＳ１０４０における処理手順を示すフローチャートである。
【００３０】
ステップＳ１１１０では、位置姿勢算出部４０は、前フレームで算出された位置及び姿勢を現フレームの位置及び姿勢の予測値として、予測値に最も近い位置及び姿勢を属性として持つキーフレーム画像を選択する。本実施形態では、予測値の姿勢との差が閾値Ｔｒ以内の姿勢を属性とするキーフレーム画像のうち、予測値の位置との差が最小となる位置を属性とするキーフレーム画像を選択する。予測値の姿勢との差がＴｒ以内の姿勢を持つキーフレーム画像がない場合は閾値Ｔｒを増やして再度選択する。閾値Ｔｒを増やしても見つからない場合、前フレームで用いたキーフレーム画像を利用する。本実施形態では、姿勢の予測値とキーフレーム画像の属性である姿勢から算出される相対姿勢を回転軸・回転角で表した時の回転角を姿勢の差として算出する。。
【００３１】
ステップＳ１１２０では、位置姿勢算出部４０は、ステップＳ１１１０で選択したキーフレーム画像から、位置及び姿勢の算出に利用する特徴点を選択する。複合現実感システムには実時間処理が要求されるため、位置及び姿勢の算出に利用できる時間は限られている。また、位置及び姿勢の算出にかかる時間は位置及び姿勢の算出に利用する特徴点の数に依存する。そのため、予め位置及び姿勢の算出に利用する特徴点の数の最大値Ｐｍａｘを定めておき、選択したキーフレーム画像からＰｍａｘ個の特徴点を選択することで実時間での位置及び姿勢の算出を行えるようにする。選択する特徴点の個数は、処理時間などに応じて決定したり、ユーザがＧＵＩなどで予め設定してもよい。選択された特徴点が画像上で満遍なく分布するように、キーフレーム画像上で三次元座標が算出済みの特徴点に固有の識別番号を割り振っておき、識別番号に相当する乱数を発生させることにより特徴点の選択を行う。なお、キーフレーム画像上で三次元座標が算出済みの特徴点の数がＰｍａｘより小さい場合には全ての特徴点を利用する。
【００３２】
ステップＳ１１３０では、位置姿勢算出部４０は、ステップＳ１１２０で選択された特徴点を用いて位置及び姿勢の算出を行う（位置姿勢導出）。本実施形態では、非特許文献１と同様の方法により位置及び姿勢の算出を行う。すわなち、推定対象である位置及び姿勢を用いて三次元マップ中の特徴点のステレオ画像上の位置を算出した時に、算出された位置の輝度値と三次元マップ中の特徴点のキーフレーム画像上の輝度値との誤差が小さくなるように位置及び姿勢を算出する。なお、非特許文献１では単眼カメラによって撮影された一枚の画像を用いて位置及び姿勢を算出するのに対し、本実施形態ではステレオ画像を用いて位置及び姿勢を算出する。より具体的には、本実施形態では、ステップＳ１１２０で選択された特徴点を２分割し、一方をステレオカメラの左カメラの画像、他方を右カメラの画像に割り振って位置及び姿勢の算出を行う。
【００３３】
ステップＳ１１４０では、位置姿勢算出部４０は、位置及び姿勢算出の収束判定を行う。収束判定は、例えば前述の輝度値の誤差が十分小さくなったかどうかに基づき行う（例えば、誤差が閾値よりも小さくなったかどうかに基づいて判断する）。また、例えば、前回のループで算出された誤差との差分値が閾値よりも小さくなったかどうかに基づいて判断してもよい。もし、収束したと判断されない時は、ステップＳ１１３０に処理を戻し、収束したと判断された時は、その時の位置および姿勢に基づいてＣＧを含む仮想画像を生成（仮想画像生成）し、ステレオ画像それぞれと合成処理をする。そして、合成処理された画像をＨＭＤの表示部に表示することにより、ユーザに提供する。そして、図３のフローチャートの処理を終了する。
【００３４】
（ステップＳ１０５０の処理の詳細）
次に、ステップＳ１０５０におけるマップ更新処理について詳細に説明する。図４は、ステップＳ１０５０における処理手順を示すフローチャートである。
【００３５】
ステップＳ１２１０では、三次元情報更新部５０は、ステップＳ１０２０で入力された画像を、三次元情報保持部１０に保持される三次元マップに新たにキーフレーム画像として追加するか否かの判断を行う。まず、入力されたステレオ画像を撮像した時の撮像装置の位置及び姿勢と差分量が最も小さい位置及び姿勢を属性として持つ三次元マップ中のキーフレーム画像（以下、最近傍キーフレーム画像）を選択する。キーフレーム画像の選択は、ステップＳ１１１０で説明した方法と同じ方法により行う。本実施形態では、６パラメータ全ての差分量の和を求めるが、一部のパラメータのみの差分量としてもよい。次に、最近傍キーフレーム画像における特徴点の位置に対応する、入力されたステレオ画像の左側カメラの画像上の位置を算出する。算出された画像上の位置が左側カメラ画像内である特徴点の割合Ｒｉｎを算出する。Ｒｉｎが閾値Ｔｉｎ未満の場合、最近傍キーフレーム画像とのオーバーラップが少ないためキーフレーム画像の追加を行う。また、ＲｉｎがＴｉｎ以上であっても、撮影時のカメラの位置の差が閾値Ｔｐｏｓより大きい場合には新規にキーフレーム画像を追加する。これは、最近傍キーフレーム画像撮影時よりもステレオ画像撮影時のカメラが特徴点から遠ざかる場合に最近傍はキーフレーム画像と同様に特徴点を観察できない場合があるためである。キーフレーム画像を追加する場合はステップＳ１２４０に進み、それ以外の場合にはステップＳ１２２０に進む。
【００３６】
ステップＳ１２４０では、三次元情報更新部５０は、非特許文献１と同様の方法により最近傍キーフレーム画像上の特徴点を新たに追加されるキーフレーム画像に伝播させる。具体的には、入力されたステレオ画像の左側カメラの画像を新キーフレーム画像として、新キーフレーム画像上での最近傍キーフレーム画像上の特徴点の位置を算出することで、最近傍キーフレーム画像上の特徴点の三次元座標を新キーフレーム画像の画素に伝播させる。さらに非特許文献１と同様に、最近傍キーフレーム画像上の特徴点の奥行きの分散に予め決められた予測誤差に基づく分散を加えて新キーフレーム画像上の奥行きの分散とする。
【００３７】
ステップＳ１２５０では、三次元情報更新部５０は、ステップＳ１２４０で三次元座標が伝播されなかった新キーフレーム画像上での画素を対象として、ステップＳ１０７０と同様に、ステレオカメラの左右の画像のステレオマッチングにより三次元座標を算出する。
【００３８】
ステップＳ１２６０では、ステップＳ１２４０、三次元情報更新部５０は、ステップＳ１２５０で得られた新キーフレーム画像を三次元マップに追加する。この際、ステップＳ１０４０で算出したステレオ画像を撮像した時の左側カメラの位置及び姿勢を属性として新キーフレーム画像に追加する。
【００３９】
ステップＳ１２２０では、三次元情報更新部５０は、入力されたステレオ画像の左側カメラの画像を用いて最近傍キーフレーム画像上の特徴点の三次元座標を更新する。非特許文献１と同様に、エピポーラ線上の輝度値を用いてキーフレーム画像上の特徴点の対応点を左側カメラの画像上で探索し、三角測量によって三次元座標を算出する。すなわち、最近傍キーフレーム画像内の特徴点と、左側カメラ画像内で探索された特徴点とをペアにして、最近傍キーフレーム画像内の特徴点の三次元座標を求めて、更新する。なお、本実施形態における三次元座標の算出は奥行き値の算出であるとする。これは注目する特徴点の画像上での位置から、カメラの視点位置から三次元空間における特徴点までのベクトルが算出可能であり、三次元座標はこのベクトルに奥行き値を乗じることで得られるためである。奥行き値とともに推定された奥行き値の分散を算出する。このとき、最近傍キーフレーム画像上での特徴点の位置における輝度勾配の方向（画素値の勾配の方向）と、エピポーラ線の方向とが直交する場合には、対応点を正しく見つけることができないため、対応点の探索や奥行き値の推定は行わない。ステップＳ１０７０と異なり、本ステップでは、ペアとする特徴点が属する画像はＨＭＤのステレオカメラではないため、エピポーラ線の方向は、ステップＳ１０７０と異なる。本ステップのエピポーラ線の方向は、最近傍キーフレームの属性である位置姿勢と、Ｓ１０４０で算出された左側カメラの位置姿勢とに基づいて求められる。
【００４０】
これらの奥行き値、奥行き値の分散を用いて、予め特徴点が保持していた奥行き値と奥行き値の分散を更新する。なお、キーフレーム画像上の対応点の探索は対応探索部６０が行い、奥行き値の推定や更新は三次元マップ更新部５０が行う。
【００４１】
続いてステップＳ１２３０では、入力されたステレオ画像の右側カメラの画像を用いて最近傍キーフレーム画像上の特徴点の三次元座標を更新する。更新方法はステップＳ１２２０と同一であるので説明を省略する。
【００４２】
以上述べたように第１の実施形態では、ステレオ画像を用いて三次元マップ中の特徴点の三次元座標を更新することで、単眼カメラの動きに基づくステレオでは高精度に三次元座標を算出できない点であっても、精度よく三次元座標を算出できるようになる。
【００４３】
なお、入力画像を撮影するカメラはステレオカメラに限るものではなく、カメラ間の相対的な位置及び姿勢が既知であれば三台以上のカメラであってもよい。
【００４４】
三次元情報保持部１０が保持する三次元マップに保持される特徴点の三次元座標は、世界座標系における三次元座標に変換できる表現形態であればキーフレーム画像のカメラ座標系を基準とした三次元座標でなくてもよい。例えば、世界座標系における三次元座標自体を保持してもよい。また、三次元マップに保持される特徴点は輝度勾配が一定である点に限るものではなく、画像上で検出可能であればいかなる特徴点であってもよい。例えば、公知の特徴点検出器であるＨａｒｒｉｓコーナー検出器やＦＡＳＴコーナー検出器などによって検出される特徴点であってもよい。
【００４５】
位置姿勢算出部４０は、画像と三次元マップに基づいて位置及び姿勢を算出するものであれば何でもよい。必ずしもステレオ画像の二枚の画像を用いる必要はなく、どちらか一方の画像を用いるものであってもよい。また、輝度値の誤差に基づく方法である必要は必ずしもなく、特徴点の画像上での位置の誤差（再投影誤差）に基づく方法であってもよい。
【００４６】
位置及び姿勢の算出における現フレームの位置及び姿勢の予測値は、前フレームの位置及び姿勢に限るものではない。例えば、等速度運動や等加速度運動などの運動モデルを仮定し、運動モデルに基づいて前フレームの位置及び姿勢を更新してもよい。さらには、ステレオカメラに別途位置や姿勢を計測するセンサを装着し、センサの計測値に基づいて現フレームの位置及び姿勢の予測値を得てもよい。
【００４７】
位置及び姿勢の算出におけるキーフレーム画像からの特徴点選択は、所望の点数の特徴点を選択可能な方法であれば他の方法であってもよい。例えば、スキャンライン順に特徴点を探索しながら間引きを行ってもよい。
【００４８】
位置及び姿勢を算出する際の最近傍キーフレーム画像の選択方法は、最近傍キーフレーム画像上の特徴点がステレオ画像上で十分に観察可能であれば他の方法であってもよい。例えば、ステレオカメラの右側カメラの位置及び姿勢の予測値との差が最小となる位置及び姿勢を属性として持つキーフレーム画像を選択してもよい。また、ステレオカメラの左側カメラ、右側カメラ夫々で別々に最近傍キーフレーム画像を選択し、夫々の最近傍キーフレーム画像から位置及び姿勢の算出に用いる特徴点を選択してもよい。
【００４９】
キーフレーム画像を三次元マップに追加するか否かを判断する方法は、位置や姿勢の適切な間隔を設定する方法であればいかなる方法であってもよい。例えば、姿勢の差が閾値を超える場合にキーフレーム画像を追加してもよい。また、キーフレーム追加のための閾値は適応的に変更してもよい。例えば、最近傍キーフレーム画像に含まれる特徴点の奥行き値をもとに撮像位置の差の閾値を変更してもよい。
【００５０】
さらには、まず短時間で計算可能な位置の差に基づいて追加の判断を行い、追加しないと判断された場合のみに計算時間のかかるステレオカメラの画像内に存在する特徴点の割合Ｒｉｎを計算することで追加判断を高速化してもよい。
【００５１】
なお、三次元座標の算出方法は上記の方法に限るものではなく、キーフレーム画像上の座標とステレオ画像のそれぞれの画像上の座標の対応に基づく方法であればいかなる方法であってもよい。例えば、ステレオ画像の左右の画像について個別に三次元座標を算出するのではなく、キーフレーム画像上の特徴点の座標とそれに対応するステレオ画像のそれぞれの画像上の座標を用いて同時に三次元座標を算出してもよい。
【００５２】
対応点探索部において、対応点が正しく見つからない可能性が高いために対応点の探索を行わないと判断する基準は、必ずしも輝度勾配の方向とエピポーラ線の方向の角度でなくてもよい。エピポーラ線上に類似した特徴ベクトルを持つ特徴点が存在するなど、輝度情報とエピポーラ線の情報に基づいて対応付け結果に曖昧性があるか否かを判断する基準であればいかなる方法であってもよい。
【００５３】
（第２の実施形態）
第１の実施形態では、ステレオ画像の二枚の画像を用いて三次元マップ中の特徴点の三次元座標を更新していた。第２の実施形態では、ステレオ画像の二枚の画像のうち、撮像位置がキーフレーム画像から遠い方の画像を利用することで精度を保ちつつ処理を高速化する。
【００５４】
第２の実施形態における情報処理装置の構成は第１の実施形態で説明した情報処理装置１と同一であるため説明を省略する。また第２の実施形態における位置及び姿勢算出、三次元マップ更新の処理手順も第１の実施形態と同一であるため説明を省略する。第１の実施形態と第２の実施形態で異なる部分は、図２のフローチャートにおけるステップＳ１０５０である。
【００５５】
図５は、第２の実施形態のステップＳ１０５０における処理手順を示すフローチャートである。ここでステップＳ２２１０、Ｓ２２４０、Ｓ２２５０、Ｓ２２６０における処理は第１の実施形態で説明したステップＳ１２１０、Ｓ１２４０、Ｓ１２５０、Ｓ１２６０の処理と同一であるので説明を省略する。
【００５６】
ステップＳ２２２０では、ステレオ画像を撮像した時のステレオカメラの左カメラの位置Ｔｌ、右カメラの位置Ｔｒのうち、最近傍キーフレーム画像を撮像した時のカメラ位置Ｔｋからの距離が大きい方を選択し、該当するカメラの画像を三次元マップ更新に利用する。三次元マップ更新に利用できる計算時間が少ない場合には、第１の実施形態のようにステレオ画像の両方の画像を利用すると計算時間がかかるため、どちらか一方の画像のみを利用することで計算時間を短縮することができる。三角測量では、カメラ間の距離が大きいほど高精度に奥行き値を算出できるため、ここではＴｋからの距離が大きい撮像位置を持つカメラの画像を選択している。
【００５７】
ステップＳ２２３０では、三次元情報更新部５０は、ステップＳ２２２０で選択された画像を用いて最近傍キーフレーム画像上の特徴点の三次元座標を更新する。三次元座標を更新方法は第１の実施形態のステップＳ１２２０と同一であるので説明を省略する。
【００５８】
以上述べたように、第２の実施形態では、ステレオ画像の二枚の画像のうち、撮像位置がキーフレーム画像から遠い方の画像を利用することで精度を保ちつつ処理を高速化する。
【００５９】
（第３の実施形態）
第１の実施形態、第２の実施形態では、キーフレーム画像上の特徴点から直接ステレオ画像上の点の対応を探索した。第３の実施形態では、キーフレーム画像上の特徴点から直接対応探索をせず、ステレオ画像のどちらか一方の画像で対応探索を行って、次にステレオ画像同士での対応探索を行う。これにより、特徴点が線分上にありエピポーラ線と輝度勾配が直交する場合のようにキーフレーム画像上の特徴点から直接対応探索することが難しい場合であっても対応探索を行うことが可能となり、高精度に三次元座標を計測できる点が増える。
【００６０】
第３の実施形態における情報処理装置１の構成は、第１の実施形態で説明した情報処理装置１と同一であるため説明を省略する。また第３の実施形態における位置及び姿勢算出、三次元マップ更新の処理手順も第１の実施形態と同一であるため説明を省略する。第１の実施形態と第３の実施形態で異なる部分は、図２のフローチャートにおけるステップＳ１０５０である。
【００６１】
図６は、第３の実施形態のステップＳ１０５０における処理手順を示すフローチャートである。ここでステップＳ３２１０、Ｓ３２４０、Ｓ３２５０、Ｓ３２６０における処理は第１の実施形態で説明したステップＳ１２１０、Ｓ１２４０、Ｓ１２５０、Ｓ１２６０の処理と同一であるので説明を省略する。
【００６２】
ステップＳ３２２０では、最近傍キーフレーム画像上における特徴点毎に、ステレオ画像の左右の画像において対応する点を探索する。それによって得られた特徴点の最近傍キーフレーム画像上の座標、ステレオ画像の左右の画像上の座標を用いて特徴点の三次元座標を更新する。以下で本ステップの詳細な処理について説明する。
【００６３】
図７は、ステップＳ３２２０における処理手順を示すフローチャートである。ここで最近傍キーフレーム画像に含まれる特徴点の数をＮとする。
【００６４】
ステップＳ３３１０では、三次元情報更新部５０は、ｉに１をセットする。ｉは最近傍キーフレーム画像における特徴点の識別番号である。本実施形態では、特徴点の識別番号はスキャンライン順であるとする。
【００６５】
ステップＳ３３２０では、三次元情報更新部５０は、識別番号ｉの特徴点について、ステレオ画像を撮像した時の左右のカメラの位置及び姿勢をもとに、最近傍キーフレーム画像上でのエピポーラ線方向ｄL、ｄRを算出する。ここでは左カメラに相当する最近傍キーフレーム画像上でのエピポーラ線方向ｄＬの算出方法について説明する。左カメラに相当するエピポーラ線は、最近傍キーフレーム画像上の特徴点と左カメラに相当するエピポールを通る直線である。エピポールは次のように算出する。最近傍キーフレーム画像を撮像したカメラのカメラ座標ＸＫとステレオカメラの左カメラのカメラ座標ＸＬの関係は数１のように表すことができる。
ＸＫ＝ＲＫＬＸＬ＋ｔＫＬ      （数１）
ここでＲＫＬは姿勢を表す３×３回転行列であり、ｔＫＬは位置を表す３次元ベクトルである。ＲＫＬ、ｔＫＬは、位置姿勢算出手段４０が算出するステレオカメラの位置及び姿勢、最近傍キーフレーム画像が属性として持つ撮像時のカメラの位置及び姿勢から算出する。エピポールはＸＫがｔＫＬである点を画像に投影した点であるため、最近傍キーフレーム画像上での座標（ｕｅ、ｖｅ）を以下の式２から計算する。
【００６６】
【数１】
2017037426.tif 000003
但し、ｔＫＬ＝［ｔｘ  ｔｙ  ｔｚ］ｔであり、ｆはカメラの焦点距離、ｐｘ、ｐｙはカメラの画像中心位置である。実際にはカメラの内部パラメータはカメラによって異なる。ここでは説明を簡単にするため、ステレオカメラを構成する全てのカメラの内部パラメータ（ｆ、ｐｘ、ｐｙ）は同一であるとする。最近傍キーフレーム画像上の特徴点の座標を（ｕｆ、ｖｆ）として、エピポーラ線方向ｄＬを以下の式３から計算する。
【００６７】
【数２】
2017037426.tif 000004
右カメラに相当する最近傍キーフレーム画像上でのエピポーラ線方向ｄＲも同様に算出できる。
【００６８】
ステップＳ３３３０では、ステップＳ３３２０で算出したエピポーラ線方向ｄＬ、ｄＲと最近傍キーフレーム画像上の特徴点における輝度勾配の方向ｇを比較する。まず式４によりエピポーラ線方向ｄＬ、ｄＲと輝度勾配方向ｇのなす角度θＬ、θＲを算出する。
【００６９】
【数３】
2017037426.tif 000005
次に角度θＬ、θＲを比較しθＲ＜θＬの場合には右側画像を、それ以外の場合には左側画像を選択する。このような画像の選択を行うのは、特徴点が線分上の点であり、エピポーラ線方向と輝度勾配方向のなす角が略直交する場合に線分上の任意の点と対応付くことを回避するためである。
【００７０】
ステップＳ３３４０では、三次元情報更新部５０は、ステップＳ３３３０で選択した画像（以下、画像Ａとする）における最近傍キーフレーム画像上の特徴点に対応する点を探索する。探索は、例えば第１の実施形態のステップＳ１２２０で述べた方法により行う。これによって、最近傍キーフレーム画像上の特徴点に対応する画像Ａ上の点の画像座標を求める。
【００７１】
ステップＳ３３５０では、三次元情報更新部５０は、ステップＳ３３３０で選択されなかった画像（以下、画像Ｂとする）において該特徴点に対応する点を探索する。ここでは、ステップＳ３３４０で求めた画像Ａ上の画像座標に相当する画像Ｂ上のエピポーラ線を探索する。なお、探索の際には画像Ａにおける対応点近傍の輝度値のパターンと類似した点を画像Ｂ上のエピポーラ線上で探索する。これによって、最近傍キーフレーム画像から画像Ｂ上での対応点を直接探索することが難しい場合であっても、画像Ａを介して対応探索を行うことが可能である。
【００７２】
ステップＳ３３６０では、三次元座標の算出を行う。この時点で、識別番号ｉの特徴点について、最近傍キーフレーム画像上の座標、画像Ａ上の座標、画像Ｂ上の座標が得られている。この中で、撮像時のカメラ位置が最も離れている座標の組を選択し、三角測量により三次元座標を算出する。このような選択を行う理由は、三角測量による三次元座標の算出の精度はカメラ間の距離が大きいほど高くなるためである。さらに算出した三次元座標を用いた既存の三次元座標の更新は第１の実施形態のステップＳ１２２０と同一の方法で行う。
【００７３】
ステップＳ３３７０では、三次元情報更新部５０は、識別番号ｉを１インクリメントする。ステップＳ３３８０においてｉ＞Ｎの場合は最近傍キーフレームにおける全ての特徴点の処理が完了しているため処理を終了し、そうでない場合にはステップＳ３３２０に戻る。
【００７４】
以上述べたように、第３の実施形態では、キーフレーム画像上の特徴点についてステレオ画像のどちらか一方の画像で対応探索を行って、次にステレオ画像同士での対応探索を行ことで、高精度に三次元座標を計測できる点を増やすことができる。
【００７５】
なお、三次元座標の算出方法は上記の方法に限るものではなく、キーフレーム画像とステレオ画像のいずれかの画像の対応に基づく方法であればいかなる方法であってもよい。例えば、必ずしも撮像時のカメラ位置が最も離れている座標の組を選択する必要はなく、任意の組を選択してよい。また、一つの組を選択する必要はなく、複数の組を選択して夫々三次元座標を算出し、既存の三次元座標を逐次更新してもよい。また、得られた座標の複数の組から一つの三次元座標を算出してもよい。
【００７６】
また、画像Ｂ上での対応探索をする必要は必ずしもなく、キーフレーム画像と画像Ａとの対応が得られた時点で三次元座標を算出してもよい。
【００７７】
（変形例）
第３の実施形態では、特徴点が線分上にある場合にステレオ情報を使うことで正確に対応探索を行えるようにした。本変形例では、特徴点が線分上の点ではない場合に本発明を適用する方法について説明する。
【００７８】
図８に示すように、ある画像上（以下、参照画像と呼ぶ）で検出された特徴点Ａに対応する点をステレオ画像上で探索する場合、エピポーラ線上に特徴ベクトルが類似した特徴点（エピポーラ線１における特徴点Ａ’）があると対応探索を誤る可能性がある。そこで、各特徴点について、ステレオ画像の左右の画像のうち、エピポーラ線上に類似した特徴点がない画像を選択して特徴点の三次元座標を算出する。
【００７９】
本変形例における三次元マップ更新の処理手順は基本的には実施例３の図８のフローチャートと同一である。実施例３と本変形例で異なる部分は、図８のフローチャートにおけるステップＳ３３３０、Ｓ３３４０である。
【００８０】
（ステップＳ３３３０に相当する処理）
本変形例では、最近傍キーフレーム画像における特徴点の輝度勾配方向とエピポーラ線の方向を比較するのではなく、最近傍キーフレーム画像における特徴点の特徴ベクトルと最近傍キーフレーム画像上のエピポーラ線上の点の特徴ベクトルを比較する。ここでは、特徴ベクトルとして、最近傍キーフレーム画像における特徴点を中心としたＭ×Ｍ画素の範囲の輝度値を用いる。該特徴点を起点として、エピポーラ線方向に１画素ずつ移動しながら特徴ベクトルを算出し、類似度を求める。類似度としては正規化相互相関（ＮＣＣ）を利用する。ステレオカメラの左右のカメラに相当するエピポーラ線上の画素についてＮＣＣを算出しエピポーラ線毎に最大値を保持する。そして最大値が小さい方のカメラに相当するエピポーラ線上の方が類似した特徴点が存在する確率が小さいとして、画像Ａとして選択する。
【００８１】
（ステップＳ３３４０に相当する処理）
前述した方法により選択した画像Ａにおける最近傍キーフレーム画像上の特徴点に対応する点を探索する。探索は、例えば前述の特徴ベクトルを画像Ａ上の画素について算出し、ＮＣＣが最大となる点を探索することにより行う。
【００８２】
なお、特徴点を表す特徴ベクトルは、特徴点を中心としたＭ×Ｍ画素の範囲の輝度値に限るものではなく、特徴点の特性を表す特徴ベクトルであればいかなるものであってもよい。例えば、ＳＩＦＴ記述子（Ｄ．Ｇ．Ｌｏｗｅ，“Ｄｉｓｔｉｎｃｔｉｖｅ  Ｉｍａｇｅ  Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｋｅｙｐｏｉｎｔｓ，”Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，ｖｏｌ．６０，ｎｏ．２，ｐｐ．９１−１１０，２００４．）であってもよい。
【００８３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。
【００８４】
即ち、上述した各実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００８５】
また、このプログラム及び当該プログラムを記憶したコンピュータ読み取り可能な記憶媒体は、本発明に含まれる。
【００８６】
＜効果のまとめ＞
本発明により、ステレオ画像を用いて三次元マップ中の特徴点の三次元座標を更新することで、単眼カメラの動きに基づくステレオでは高精度に三次元座標を算出できない点であっても、精度よく三次元座標を算出できるようになる。
【００８７】
また、ステレオ画像の二枚の画像のうち、撮像位置がキーフレーム画像から遠い方の画像を利用することで精度を保ちつつ処理を高速化する。
【００８８】
さらに、キーフレーム画像上の特徴点についてステレオ画像のどちらか一方の画像で対応探索を行って、次にステレオ画像同士での対応探索を行ことで、高精度に三次元座標を計測できる点を増やすことができる。
【００８９】
＜定義のまとめ＞
本発明における三次元マップ更新部は、三次元マップに含まれる参照画像上の特徴点に対応する点をステレオ画像において探索し、特徴点の参照画像上の座標とステレオ画像上の座標のペアを用いて特徴点の三次元座標を算出する。三次元マップ更新部は、参照画像上の特徴点に対応する点をステレオ画像の夫々の画像において探索し、夫々得られる画像座標のペアをもとに三次元座標を算出し、既存の三次元座標を更新する。また、三次元マップ更新部は、ステレオ画像のうち撮像位置が参照画像の撮像位置より遠いカメラで撮影された画像において参照画像上の特徴点に対応する点を探索する。さらに三次元マップ更新部は、エピポーラ線と輝度情報に基づいてステレオ画像のうち対応付けを高精度に行える画像において対応点を探索した後で、他方の画像において対応点を探索する。
【図１】
2017037426.tif 000006
【図２】
2017037426.tif 000007
【図３】
2017037426.tif 000008
【図４】
2017037426.tif 000009
【図５】
2017037426.tif 000010
【図６】
2017037426.tif 000011
【図７】
2017037426.tif 000012
【図８】
2017037426.tif 000013
【図９】
2017037426.tif 000014