(57)【要約】【課題】位置姿勢の推定を不安定にすることなく、排除可能なマーカを容易に認識可能にする。【解決手段】情報処理装置であって、撮像部により現実空間を撮像して得られた画像から１以上のマーカを検出するマーカ検出部と、画像から特徴を検出する特徴検出部と、マーカ検出部による検出結果と、特徴検出部による検出結果とに基づいて、撮像部の位置姿勢を推定する推定部と、１以上のマーカのうち一部のマーカを排除した場合の位置姿勢の推定の安定度を取得する安定度取得部と、安定度に基づいて一部のマーカが排除可能であることを示す情報を出力する出力部とを備える。【選択図】  図２
2018091667.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により現実空間を撮像して得られた画像から１以上のマーカを検出するマーカ検出手段と、
前記画像から特徴を検出する特徴検出手段と、
前記マーカ検出手段による検出結果と、前記特徴検出手段による検出結果とに基づいて、前記撮像部の位置姿勢を推定する推定手段と、
前記１以上のマーカのうち一部のマーカを排除した場合の前記位置姿勢の推定の安定度を取得する安定度取得手段と、
前記安定度に基づいて前記一部のマーカが排除可能であることを示す情報を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記一部のマーカに内包されない特徴に基づいて前記撮像部の第２の位置姿勢を推定する第２の推定手段をさらに備え、
前記安定度取得手段は、前記推定手段により推定された前記位置姿勢と、前記第２の推定手段により推定された前記第２の位置姿勢とに基づいて前記安定度を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記一部のマーカを前記画像中から領域を指定して削除することによりマーカ領域削除画像を生成するマーカ領域削除手段と、
前記推定手段により推定された前記位置姿勢を含む複数の位置姿勢で前記現実空間を撮像して得られた複数の画像を取得する多視点画像取得手段と、をさらに備え、
前記安定度取得手段は、前記マーカ領域削除画像と前記複数の画像との類似度に基づいて前記安定度を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記安定度取得手段は、前記一部のマーカの外側の特徴の分布に基づいて前記安定度を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記安定度取得手段は、前記一部のマーカから所定の距離範囲に含まれる特徴に基づいて前記安定度を取得することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記マーカ検出手段により検出された前記１以上のマーカの大きさに基づいて前記一部のマーカを選択する選択手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記マーカ検出手段により検出された前記１以上のマーカの前記撮像部からの距離に基づいて前記一部のマーカを選択する選択手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記マーカ検出手段により検出された前記１以上のマーカの分布に基づいて前記一部のマーカを選択する選択手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記出力手段は、前記一部のマーカが排除可能であることを示す情報を表示部へ出力することを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
情報処理装置の制御方法であって、
撮像部により現実空間を撮像して得られた画像から１以上のマーカを検出するマーカ検出工程と、
前記画像から特徴を検出する特徴検出工程と、
前記マーカ検出工程での検出結果と、前記特徴検出工程での検出結果とに基づいて、前記撮像部の位置姿勢を推定する推定工程と、
前記１以上のマーカのうち一部のマーカを排除した場合の前記位置姿勢の推定の安定度を取得する安定度取得工程と、
前記安定度に基づいて前記一部のマーカが排除可能であることを示す情報を出力する出力工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、 情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、現実空間に仮想情報やＣＧ（Computer Graphics）モデルを合成する拡張現実感（ＡＲ：Augmented Reality）や複合現実感（ＭＲ：Mixed Reality）に関する技術が注目されている。現実空間への合成は、多くの場合、カメラで撮像した画像から現実空間の3次元形状を認識することにより行われる。現実空間の３次元形状の認識の代表的な手法として、形状が既知のテクスチャを持つマーカ（以下では単にマーカと呼ぶ）を画像から検出する手法やＳＬＡＭ（Simultaneous Localization And Mapping）がある。ＳＬＡＭの基本原理は非特許文献１で述べられている。ＳＬＡＭではカメラが動きながら撮影した画像から検出される現実空間中の特徴的な点（以下では特徴と呼ぶ）を毎フレーム追跡することにより、現実の3次元空間における特徴の３次元座標とカメラの位置姿勢が逐次推定される。
【０００３】
特許文献１は、マーカとＳＬＡＭとを併用することにより推定の精度を向上させる技術を開示している。特許文献１では、現実空間にマーカを配置して撮影した画像群Φから特徴を検出してＳＬＡＭで推定した結果をマップとして保存し、マーカを取り除いて撮影した画像群ΦＣから検出した特徴とマップとを対応付けることにより高精度にＳＬＡＭを行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１１２０５６号公報
【非特許文献】
【０００５】
【非特許文献１】Andrew J.Davison, "Real-Time Simultaneous Localization and Mapping with a Single Camera"，Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2, 2003, pp.1403-1410
【非特許文献２】河合 紀彦，佐藤 智和，横矢 直和: "テクスチャの明度変化と局所性を考慮したパターン類似度を用いたエネルギー最小化による画像修復",電子情報通信学会論文誌, Vol.J91-D, No.9 pp. 2293-2304, Sep. 2008.
【非特許文献３】J. Sivic and A. Zisserman. "Video google: A text retrieval approach to object matching in videos", Proc. ICCV2003, Vol.2, pp.1470-1477, 2003
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載の技術では、ユーザはマーカをいつ取り除けば良いか判断することができない。画像群Φ中の特徴の分布が不十分なままマーカを取り除いてしまうと画像群ΦＣ中の特徴との対応付けが不十分になり、ＳＬＡＭの推定が不安定になってしまうという課題がある。
【０００７】
本発明は、上記の課題に鑑みてなされたものであり、位置姿勢の推定を不安定にすることなく、排除可能なマーカを容易に認識するための技術を提供する。
【課題を解決するための手段】
【０００８】
上記の目的を達成する本発明に係る情報処理装置は、
撮像部により現実空間を撮像して得られた画像から１以上のマーカを検出するマーカ検出手段と、
前記画像から特徴を検出する特徴検出手段と、
前記マーカ検出手段による検出結果と、前記特徴検出手段による検出結果とに基づいて、前記撮像部の位置姿勢を推定する推定手段と、
前記１以上のマーカのうち一部のマーカを排除した場合の前記位置姿勢の推定の安定度を算出する算出手段と、
前記安定度に基づいて前記一部のマーカが排除可能であることを示す情報を出力する出力手段と、
を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、位置姿勢の推定を不安定にすることなく、排除可能なマーカを容易に認識することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る情報処理装置の構成を説明するためのブロック図。
【図２】実施形態１に係る情報処理装置の処理手順を示すフローチャート。
【図３】実施形態１に係るマーカ情報を記述したテキストファイルを示す図。
【図４】実施形態１に係るマーカコーナー点を示す図。
【図５】実施形態１に係る特徴点の検出と対応付けを示す図。
【図６】実施形態１に係るＭＲ画像を示す図。
【図７】実施形態２に係る情報処理装置の構成を説明するためのブロック図。
【図８】実施形態２に係る情報処理装置の処理手順を示すフローチャート。
【図９】実施形態２に係るマーカ領域削除画像と多視点画像を示す図。
【図１０】実施形態２に係るテキスト重畳画像を示す図。
【図１１】実施形態３に係る情報処理装置の構成を説明するためのブロック図。
【図１２】実施形態３に係る情報処理装置の処理手順を示すフローチャート。
【図１３】実施形態３に係る現実空間のマーカの分布を示す図。
【図１４】実施形態３に係るマップ中の特徴点の分布を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態を説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１２】
（実施形態１）
＜概要＞
実施形態１では、ＳＬＡＭの推定の安定度を算出するためにマーカの大きさに基づいてマーカを１つ選択し、マーカの有無によるＳＬＡＭの推定結果の差異を算出する例について説明する。
【００１３】
＜装置構成＞
図１は、本実施形態に係る情報処理装置１００の構成例を示すブロック図である。情報処理装置１００は、外部の撮像部１Ａ 及び表示部１Ｃと、映像ケーブル（ＵＳＢ（Universal Serial Bus）ケーブルなど）を介して接続されている。また、情報処理装置１００は、外部記憶装置１ＢとＳＡＴＡ（Serial Advanced Technology Attachment）ケーブルなどを介して接続されている。
【００１４】
情報処理装置１００は、画像取得部１０１と、マーカ情報取得部１０２と、マーカ検出部１０３と、特徴検出部１０４と、マップ取得部１０５と、特徴対応付け部１０６とを備える。また、情報処理装置１００は、マーカ選択部１０７と、第１の位置姿勢推定部１０８と、第２の位置姿勢推定部１０９と、安定度取得部１１０と、排除マーカ提示部１１１とを備えている。情報処理装置１００の各構成要素の機能は、不図示の制御部（ＣＰＵ）が不図示のメモリからプログラムを読み出して実行することにより実現される。
【００１５】
外部の撮像部１Ａは、撮像装置（カラーカメラ）であり、撮像した画像データを逐次画像取得部１０１へ転送する。外部記憶装置１Ｂは、ＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などで構成される。外部の表示部１Ｃは、液晶ディスプレイ装置であり、出力されたＭＲ画像を表示する。 
画像取得部１０１は、撮像部１Ａが転送する画像データを入力画像として取得し、不図示のメモリに格納する。
【００１６】
マーカ情報取得部１０２は、マーカのＩＤと、マーカのＩＤに対応する四角形マーカの４つのコーナー点の仮想空間における３次元座標とを、外部記憶装置１Ｂに予め記憶されているテキストファイルから読み込み、不図示のメモリに格納する。
【００１７】
マーカ検出部１０３は、入力画像から画像処理により四角形マーカを検出し、検出した四角形マーカの４つのコーナー点の画像座標と、そのＩＤとを不図示のメモリに格納する。
【００１８】
特徴検出部１０４は、画像処理によって入力画像に写る現実空間中の特徴点を検出し、検出した特徴点の画像座標と、特徴記述ベクトル（ディスクリプタ）とを不図示のメモリに格納する。
【００１９】
マップ取得部１０５は、現実空間中の特徴点を示すマップデータを外部記憶装置１Ｂから取得し、不図示のメモリに格納する。マップデータは、特徴点の３次元座標、撮像部１Ａを用いて特徴点を事前に複数箇所で撮像したカメラの画像、当該カメラの位置姿勢、そして当該画像中の特徴点の画像座標及び特徴記述ベクトル（ディスクリプタ）など、特徴点に関する情報を含む。
【００２０】
特徴対応付け部１０６は、不図示のメモリに格納された入力画像の特徴点とマップ中の特徴点とを、特徴記述ベクトル（ディスクリプタ）の類似度に基づいて対応付け、当該対応付け情報を不図示のメモリに格納する。
【００２１】
マーカ選択部１０７は、マーカ検出部１０３により入力画像から検出されたマーカのうち、最も画像上の面積が小さいマーカを１つ選択し、当該マーカのＩＤを不図示のメモリに格納する。
【００２２】
第１の位置姿勢推定部１０８は、特徴対応付け部１０６により対応付けられた特徴点のインデックス情報と、マーカ検出部１０３により検出されたマーカのＩＤと、マーカ情報取得部１０２により取得されたマーカのコーナー点の３次元座標とに基づいて、画像処理により外部の撮像部１Ａの位置姿勢を算出し、不図示のメモリに格納する。
【００２３】
第２の位置姿勢推定部１０９は、特徴対応付け部１０６により対応付けられた特徴点のインデックス情報と、マーカ検出部１０３により検出されたマーカのＩＤと、マーカ情報取得部１０２により取得されたマーカのコーナー点の３次元座標とに基づいて、マーカ選択部１０７により選択されたマーカと当該マーカに内包される特徴点とを除外して、画像処理により外部の撮像部１Ａの位置姿勢を算出し、不図示のメモリに格納する。
【００２４】
安定度取得部１１０は、第１の位置姿勢推定部１０８および第２の位置姿勢推定部１０９の推定結果を比較して安定度を算出して取得し、不図示のメモリに格納する。安定度の算出方法の詳細は後述する。
【００２５】
排除マーカ提示部１１１は、安定度取得部１１０により算出された安定度に基づいて、マーカ検出部１０３により検出されて選択部１０７により選択されたマーカに対して排除可能であるかどうかをユーザに対して提示するＭＲ画像を生成し、外部の表示部１Ｃへ出力する。
【００２６】
＜処理＞
続いて、図２のフローチャートを参照しながら、本実施形態に係る情報処理装置１００が実施する処理の手順を説明する。特に、本実施形態に係る安定度の算出方法、排除マーカの提示方法を詳細に説明する。
【００２７】
（ステップＳ１００１：画像取得処理）
ステップＳ１００１では、画像取得部１０１は、外部の撮像部１Ａから画像データを入力画像として取得してメモリに格納する。画像データは、ＲＧＢそれぞれのチャネルの画素ごとの輝度値を記述したものである。
【００２８】
（ステップＳ１００２：マーカ情報取得処理）
ステップＳ１００２では、マーカ情報取得部１０２は、図３の表に示されるような、２次元コードパターンを持つ四角形マーカの４つのコーナー点の仮想空間における３次元座標とマーカのＩＤとを、外部記憶装置１Ｂに予め記憶されているテキストファイルから複数読み込み、メモリに格納する。
【００２９】
（ステップＳ１００３：マーカ検出処理）
ステップＳ１００３では、マーカ検出部１０３は、図４に示されるように、入力画像からマーカ検出処理により四角形マーカのコーナー点を検出するとともに、マーカの内部の画素の輝度値からマーカのＩＤを認識する。四角形マーカのコーナー点は、エッジ検出、ハフ変換による公知の線分検出を経て、線分同士の交点から算出される。また、マーカＩＤは、コーナー点の画像座標をホモグラフィ変換によって正対した四角形の画像に変換し、その内部を走査して公知のパターンマッチングによりＩＤを対応付けることによって認識される。マーカ検出部１０３は、マーカごとにＩＤと、算出した入力画像上のコーナー点の画像座標とを対応付けて、マーカ検出結果としてメモリに格納する。
【００３０】
（ステップＳ１００４：マーカ検出結果判定処理）
ステップＳ１００４では、マーカ検出部１０３は、マーカ検出結果を参照し、マーカが少なくとも１つ以上検出されたか否かを判定する。少なくとも１つ以上のマーカが検出されている場合、ステップＳ１００５へ進む。一方、マーカが検出されていない場合、処理を終了する。
【００３１】
（ステップＳ１００５：特徴検出処理）
ステップＳ１００５では、特徴検出部１０４は、入力画像に写る現実空間中の特徴点を検出する。特徴点検出アルゴリズムは公知のＨａｒｒｉｓ特徴やＳＩＦＴ特徴を用いる。ここで、図５（ａ）は、本実施形態に係る特徴点の検出の様子を示す図である。特徴点として、入力画像中のコーナー点が三角形で示すように複数検出される。検出した特徴点の特徴情報を、ＳＩＦＴなどの公知の特徴記述ベクトル（ディスクリプタ）算出アルゴリズムを用いて算出し、特徴点の入力画像上での画像座標と併せてメモリに格納する。
【００３２】
（ステップＳ１００６：マップ取得処理）
ステップＳ１００５では、マップ取得部１０５は、予め作成・記憶された現実空間中の特徴点を示すマップデータを外部記憶装置１Ｂから取得する。マップデータは、前述したように特徴点の３次元座標、特徴点を撮像部１Ａを用いて事前に複数箇所で撮像したカメラの画像、当該カメラの位置姿勢、そして、当該画像中の特徴点の画像座標及び特徴記述ベクトル（ディスクリプタ）により構成される。ここで、図５（ｂ）は、マップデータ中に含まれる画像の一例を示しており、入力画像に写るものと同じ現実空間が写っている。
【００３３】
以下では、カメラの位置姿勢を、３次元空間における並進位置ベクトル
2018091667.tif 000003
および回転ベクトル
2018091667.tif 000004
を合わせた６パラメータのベクトル
2018091667.tif 000005
として表す。
【００３４】
（ステップＳ１００７：特徴対応付け処理）
ステップＳ１００７では、特徴対応付け部１０６は、ステップＳ１００５で算出された入力画像上の特徴点のディスクリプタと、ステップＳ１００６で取得しされたマップデータ中の特徴点のディスクリプタとのベクトルの内積を算出することにより、類似度の高い特徴点同士を対応付ける。例えば、類似度が閾値０．８を超える場合、類似度が高いと判定して特徴点同士を対応付けてもよい。
【００３５】
図５（ａ）および図５（ｂ）には、入力画像中の特徴点と、マップデータ中の画像の特徴点との対応付けの一例が示されている。現実空間中の同一の特徴点が両画像間で対応付けられている。対応付け情報は、マップ中の画像ＩＤと、当該画像中の特徴点のＩＤと、入力画像上の特徴点のＩＤとを併せて記述する。対応付け情報はメモリに格納される。
【００３６】
（ステップＳ１００８：マーカ選択処理）
ステップＳ１００７では、マーカ選択部１０７は、ステップＳ１００３で検出されたマーカの大きさに基づいて、これらのマーカのうち少なくとも一部のマーカを選択する。例えば、ステップＳ１００３で検出されたマーカのうち、入力画像上で最も面積の小さいマーカを選択する。また、選択したマーカのＩＤを内部メモリに格納する。なお、ステップＳ１００８では、マーカを排除した際に位置姿勢推定への影響を小さくするため、入力画像上で最も面積が小さいマーカを１つ選択する例を説明しているが、反対に最も面積の大きいマーカを選択してもよいし、複数のマーカを選択してもよい。
【００３７】
（ステップＳ１００９：第１の位置姿勢推定処理）
ステップＳ１００９では、第１の位置姿勢推定部１０８は、ステップＳ１００３で検出されたマーカの情報に基づいて、撮像部１Ａのカメラ位置姿勢
2018091667.tif 000006
を推定する。さらに、第１の位置姿勢推定部１０８は、ステップＳ１００７で算出された対応付け情報を用いてカメラ位置姿勢
2018091667.tif 000007
を再度推定する。推定したカメラ位置姿勢
2018091667.tif 000008
の情報はメモリに格納する。以下、カメラ位置姿勢
2018091667.tif 000009
、
2018091667.tif 000010
の推定方法を説明する。
【００３８】
＜カメラ位置姿勢
2018091667.tif 000011
の推定＞
現実空間におけるマーカのコーナー点の３次元座標を
2018091667.tif 000012
とすると、ピンホールカメラモデルによってその点がカメラ投影面の画像座標
2018091667.tif 000013
に投影される座標変換は、同次座標系表現で次式のように表される。
【００３９】
【数１】
2018091667.tif 000014
【００４０】
ここで
2018091667.tif 000015
は、撮像部１Ａの内部パラメータ
2018091667.tif 000016
（３×３行列）と、
2018091667.tif 000017
から一意に定義される回転行列
2018091667.tif 000018
（３×３行列）および並進ベクトル
2018091667.tif 000019
とを用いて、以下のように定義される。
【００４１】
【数２】
2018091667.tif 000020
【００４２】
また、
2018091667.tif 000021
は両辺のベクトルが長さを除いて等しいことを示す。以上の定式化に基づき、事前に校正した撮像部１Ａのカメラの内部パラメータ
2018091667.tif 000022
、および、マーカのコーナー点の３次元座標
2018091667.tif 000023
とその投影座標
2018091667.tif 000024
から、カメラの位置姿勢を表す
2018091667.tif 000025
及び
2018091667.tif 000026
を最小二乗法により求める。すなわち、反復処理のある時点での推定値
2018091667.tif 000027
を、適切に定めた更新量
2018091667.tif 000028
を使って
2018091667.tif 000029
のように更新し、収束するまで反復することで解を求める。最小二乗法には、本実施形態ではガウス・ニュートン法を用いる。反復計算のコスト関数
2018091667.tif 000030
は、
2018091667.tif 000031
から求められる
2018091667.tif 000032
の再投影誤差である。
【００４３】
＜カメラ位置姿勢
2018091667.tif 000033
の推定＞
マーカ検出結果を用いて
2018091667.tif 000034
を推定した後、
2018091667.tif 000035
を初期値として、同様の処理を行うことにより
2018091667.tif 000036
を推定する。このとき、ステップＳ１００７で対応付けられたマップ中の特徴点の３次元座標を
2018091667.tif 000037
、入力画像上の特徴点の画像座標を
2018091667.tif 000038
として定義する。推定した
2018091667.tif 000039
はメモリに格納する。
【００４４】
なお、ステップＳ１００９では、説明の単純化のためマーカによる位置姿勢推定と、特徴点による位置姿勢推定との２段階に分けて位置姿勢推定処理を説明した。しかし、対応付けに重みを付けて一度に推定してもよいし、マーカによる位置姿勢推定を行わなくてもよい。（ステップＳ１０１０：第２の位置姿勢推定処理）
ステップＳ１０１０では、第２の位置姿勢推定部１０９は、ステップＳ１００８で選択されたマーカの検出結果と同マーカに内包される特徴点の対応付け情報とを除外して、ステップＳ１００９と同様にカメラ位置姿勢
2018091667.tif 000040
を推定し、メモリに格納する。
【００４５】
（ステップＳ１０１１：安定度取得処理）
ステップＳ１０１１では、安定度取得部１１０は、ステップＳ１００９で推定されたカメラ位置姿勢
2018091667.tif 000041
と、ステップＳ１０１０で推定されたカメラ位置姿勢
2018091667.tif 000042
との差異を算出する。そして、当該差異に基づいてステップＳ１００８で選択されたマーカを用いずにカメラ位置姿勢を推定した場合の安定度を算出する。
2018091667.tif 000043
および
2018091667.tif 000044
はいずれも上述したように並進位置ベクトルおよび回転ベクトルで表されるため、それぞれの差分ベクトルを安定度として算出してメモリに格納する。
【００４６】
（ステップＳ１０１２：安定度取得結果判定処理）
ステップＳ１０１２では、安定度取得部１１０は、並進位置ベクトルの差分ベクトルの長さが所定の閾値（例えば１ｍｍ）より大きいか否かを判定し、且つ／又は、回転ベクトルの差分ベクトルの長さが所定の閾値（例えば０．１ｍｍ）より大きいか否かを判定する。これらの少なくとも一方が閾値よりも大きい場合は、差異が大きい、すなわち安定度が閾値未満であると判定できるため、処理を終了する。一方、これらが両方とも閾値以下である場合は、差異が小さい、すなわち安定度が閾値以上であると判定できるため、ステップＳ１０１３へ進む。なお、これらの一方の条件を充足するか否かで判定を行ってもよい。
【００４７】
（ステップＳ１０１３：排除マーカ提示処理）
ステップＳ１０１３では、排除マーカ提示部１１１は、ステップS１００８で選択されたマーカが排除可能であることをユーザに提示するためにＭＲ画像を生成して、生成したＭＲ画像を提示する。例えば、図６に示されるように、ＭＲ画像の生成処理では、入力画像上にステップＳ１００８で選択されたマーカに対して、ステップＳ１００３で検出された際の画像座標を用いて、四角形の枠線と「排除可能」の文字とを重畳描画する。排除マーカ提示部１１１は、生成したＭＲ画像のデータを、外部の表示部１Ｃに出力してユーザに提示する。
【００４８】
なお、ＭＲ画像の生成方法は、入力画像に写る選択マーカが排除可能であることがユーザに提示できれば図６の例に限定されない。枠線や文字の一方を用いてもよいし、これらを用いずに、排除可能であることを示すためにマーカを点滅させてもよい。
【００４９】
以上で一連の処理が終了し、取得した画像に対する排除可能なマーカの情報が出力される。以上説明したように、本実施形態では、ＳＬＡＭの推定の安定度を算出するためにマーカの大きさに基づいてマーカを１つ選択し、当該マーカの有無に応じたＳＬＡＭの推定結果の差異を算出し、当該差異に基づいてマーカを排除可能かどうか判定する例を説明した。これにより、撮像部１Ａが一定周期で撮像する場合に、最新の現実空間を撮像した入力画像が入力され、排除可能なマーカがあれば逐次１つずつユーザに提示することができる。
【００５０】
本実施形態によれば、排除対象の最も小さいマーカが自動選択され、ユーザは選択されたマーカが排除可能かどうかを、画像が入力されるたびにＭＲ表示によって知ることができ、ＳＬＡＭの推定を不安定にすることなくマーカを排除することが可能となる。
【００５１】
（実施形態２）
＜概要＞
実施形態１では、ＳＬＡＭの推定の安定度を算出するためにマーカの大きさに基づいてマーカを１つ選択し、当該マーカの有無に応じたＳＬＡＭの推定結果の差異を算出し、当該差異に基づいてマーカを排除可能かどうか判定する例を説明した。これに対して、本実施形態では、撮像部からの距離に基づきマーカを１つ選択し、マーカの有無による画像検索結果の位置の差異を判定して（マーカを排除可能であることを示す）テキスト重畳画像を提示する例を説明する。
【００５２】
＜装置構成＞
以下、実施形態１と重複する内容については説明を省略する。図７は、本実施形態に係る情報処理装置２００の構成例を示すブロック図である。図１に示した情報処理装置１００の構成要素と同じ構成要素については同じ参照符号を付しており、詳細な説明は省略する。
【００５３】
マーカ選択部７０１は、マーカ検出結果及び第１の位置姿勢推定結果に基づいてマーカを１つ選択し、不図示のメモリに格納する。マーカ領域削除部７０２は、入力画像からマーカ選択部７０１により選択されたマーカの画像領域を削除してマーカ領域削除画像を生成し、不図示のメモリに格納する。
【００５４】
多視点画像取得部７０３は、外部記憶装置１Ｂから現実空間を複数の視点で撮像した画像とその視点の位置姿勢とをセットで多視点画像として取得し、不図示のメモリに格納する。安定度取得部７０４は、マーカ領域削除画像をクエリとして多視点画像の中から最も類似する画像を画像検索によって選び、第１の位置姿勢推定の結果と多視点画像の位置姿勢とを比較して安定度を算出し、不図示のメモリに格納する。
【００５５】
排除マーカ提示部７０５は、安定度取得部７０４で算出された安定度に基づき、マーカ検出部１０３で検出されてマーカ選択部７０１で選択されたマーカに対して排除可能であることをユーザに対して提示するテキスト重畳画像を生成し、外部の表示部１Ｃへ出力する。
【００５６】
＜処理＞
続いて、図８のフローチャートを参照しながら、本実施形態に係る情報処理装置２００が実施する処理の手順を説明する。特に、本実施形態に係る安定度の算出方法、排除マーカの提示方法を詳細に説明する。ステップＳ２００１〜ステップＳ２００８の各処理は、実施形態１で図２を参照して説明したステップＳ１００１〜ステップＳ１００７、ステップＳ１００９の各処理とそれぞれ同様である。
【００５７】
（ステップＳ２００９：マーカ選択処理）
ステップＳ２００９では、マーカ選択部７０１は、ステップＳ２００３で検出されたマーカのうち、撮像部１Ａからの距離が最も近いもマーカを選択する。マーカの３次元座標はステップＳ２００２で取得した情報を用い、撮像部１Ａの３次元座標はステップＳ２００８で推定した情報を用いる。マーカ選択部７０１は、選択したマーカのＩＤをメモリに格納する。
【００５８】
なお、本実施形態に係るマーカ選択方法は、ユーザが情報処理装置２００を手に持ち、マーカが排除可能かどうかを確認することを前提としているため、撮像部１Ａからの距離が最も近いマーカを選択している。しかし、ユーザと情報処理装置２００との位置関係によっては撮像部１Ａからの距離が１ｍ〜２ｍの間で最も近いマーカを選択するように構成してもよいし、これらに限定されない。また、距離でソートして近い順や遠い順、ランダムにマーカを複数選択するように構成してもよい。
【００５９】
（ステップＳ２０１０：マーカ領域削除処理）
ステップＳ２０１０では、マーカ領域削除部７０２は、ステップＳ２００９で選択されたマーカの画像領域を入力画像から削除（輝度値をすべて０にする）して、図９（ａ）に示されるようなマーカ領域削除画像を生成する。そして、生成したマーカ領域削除画像をメモリに格納する。
【００６０】
なお、本実施形態に係るマーカ領域削除方法は、選択したマーカが存在しない場合の現実空間を簡易な方法で仮想的に再現するためにマーカの画像領域を削除（輝度値をすべて０にする）した。しかし、当該方法に限定されるものではなく、特定の輝度値を指定したり、周囲の画素の輝度値から補間したり、非特許文献２に記載のインペインティングアルゴリズムを用いたりしてもよい。
【００６１】
（ステップＳ２０１1）
ステップＳ２０１１では、多視点画像取得部７０３は、外部記憶装置１Ｂから現実空間を複数の視点で撮像した画像とその位置姿勢とをセットで多視点画像として取得し、不図示のメモリに格納する。図９（ｂ）及び図９（ｃ）は多視点画像の一例を示す。図９（ｂ）は、入力画像と同じ現実空間を別の視点から撮像した画像であり、図９（ｃ）は、入力画像と類似しているが入力画像と異なる現実空間を撮像した画像である。
【００６２】
（ステップＳ２０１２：安定度取得処理）
ステップＳ２０１２では、安定度取得部７０４は、ステップＳ２００９で選択されたマーカを排除した場合のＳＬＡＭの復帰（リローカライズ）処理の安定度を算出する。すなわち、マーカ領域削除画像をクエリとして多視点画像の中から最も類似する画像を画像検索によって選び、第１の位置姿勢推定の結果と多視点画像の位置姿勢とを比較することにより画像検索によるＳＬＡＭのリローカライズ処理の安定度を算出する。
【００６３】
ここで、リローカライズ処理とは、ＳＬＡＭの推定に失敗した場合に、多視点画像から画像検索して入力画像と最も類似する画像を選ぶことにより位置姿勢を取得し、ＳＬＡＭ処理を復帰させるための処理である。安定度は、第１の位置姿勢推定の結果得られる３次元位置と多視点画像の３次元位置との２点間の３次元距離として算出する。
【００６４】
画像検索方法は非特許文献３に記載のＢｏＦ（Bag of Words）を用いた２画像間の類似度算出方法を用いる。すなわち、２画像中に映る特徴点を特徴ごとに振り分けて生成されるヒストグラムが類似していれば、２つの画像は類似すると判定する方法である。例えば、図９（ｂ）に示す多視点画像のように入力画像と近い位置で撮影した画像が選ばれた場合、安定度は５ｃｍのように得られる。また、図９（ｃ）に示す多視点画像のように入力画像には類似するが撮影した位置が異なる画像が選ばれた場合、安定度は３００ｃｍのように得られる。
【００６５】
（ステップＳ２０１３：安定度取得結果判定処理）
ステップＳ２０１３では、安定度取得部７０４は、ステップＳ２０１２で算出された安定度（３次元距離）が閾値以上（例えば１０ｃｍ以上）であるか否かを判定する。安定度が閾値以上である場合、マーカを排除した場合にリローカライズ処理が不安定になると判定して処理を終了する。一方、安定度が閾値未満である場合、ステップＳ２０１４へ進む。
【００６６】
（ステップＳ２０１４：排除マーカ提示処理）
ステップＳ２０１４では、排除マーカ提示部７０５は、ステップＳ２０１３での判定結果に基づいて、ステップＳ２００９で選択されたマーカを排除可能であることをユーザに提示するために、入力画像にテキストを重畳表示したテキスト重畳画像を生成する。ここで、図１０にテキスト重畳画像の一例を示す。排除マーカ提示部７０５は、排除マーカ提示部１１１は、生成したテキスト重畳画像のデータを、外部の表示部１Ｃに出力してユーザに提示する。
【００６７】
以上説明したように、本実施形態では、撮像部からの距離に基づいてマーカを１つ選択し、マーカの有無による画像検索結果の位置の差異を判定して（マーカを排除可能であることを示す）テキスト重畳画像を提示する例を説明した。本実施形態によれば、ユーザに最も近いマーカを選択して排除可能か提示することができる。また、ＳＬＡＭの推定に失敗した場合の復帰（リローカライズ）処理の安定度を算出することができる。また、位置姿勢推定を二度行う実施形態１と比較して、より少ない計算処理で安定度の算出を行うことができる。
【００６８】
（実施形態３）
＜概要＞
実施形態１では、ＳＬＡＭの推定の安定度を算出するためにマーカの大きさに基づいてマーカを１つ選択し、当該マーカの有無に応じたＳＬＡＭの推定結果の差異を算出し、当該差異に基づいてマーカを排除可能かどうか判定する例を説明した。また、実施形態２では、撮像部からの距離に基づいてマーカを１つ選択し、マーカの有無による画像検索結果の位置の差異を判定して（マーカを排除可能であることを示す）テキスト重畳画像を提示する例を説明した。
【００６９】
これに対して、本実施形態では、マーカの分布に基づいてマーカを１つ選択し、入力画像上の特徴点の分布に基づいて安定度を算出し、当該安定度に基づいてＭＲ画像を提示する例を説明する。
【００７０】
＜装置構成＞
以下、実施形態１と重複する内容については説明を省略する。図１１は、本実施形態に係る情報処理装置３００の構成例を示すブロック図である。図１に示した情報処理装置１００の構成要素と同じ構成要素については同じ参照符号を付しており、詳細な説明は省略する。
【００７１】
マーカ選択部１１０１は、マーカ検出部１０３により検出されたマーカの分布に基づいてマーカを１つ選択し、当該マーカのＩＤを不図示のメモリに格納する。安定度取得部１１０２は、マップ取得部１０５により取得された特徴点とマーカ選択部１１０１により選択されたマーカの分布に基づいて安定度を算出し、不図示のメモリに格納する。
【００７２】
＜処理＞
続いて、図１１のフローチャートを参照しながら、本実施形態に係る情報処理装置３００が実施する処理の手順を説明する。特に、本実施形態に係る安定度の算出方法、排除マーカの提示方法を詳細に説明する。ステップＳ３００１〜ステップＳ３００８、ステップＳ３０１２の各処理は、実施形態１で図２を参照して説明したステップＳ１００１〜ステップＳ１００７、ステップＳ１００９、ステップS１０１３の各処理とそれぞれ同様である。
【００７３】
（ステップＳ３００９：マーカ選択処理）
ステップＳ３００９では、マーカ選択部１１０１は、ステップＳ３００２で取得された現実空間のマーカの位置の情報に基づいてマーカの分布を算出し、最も密に配置されており且つ小さいマーカを選択する。ここで、図１３は、本実施形態に係る現実空間中のマーカの分布を示した図である。現実空間中のＸ−Ｚ平面に四角形の平面マーカが分布している様子を示している。このＸ−Ｚ平面を５００ｍｍ四方のグリッドで分割したそれぞれの領域に含まれるマーカ中心座標の個数をカウントする。マーカ中心座標がグリッドの境界線上にある場合は座標値を切り上げる。図１３の例ではグリッドｇ１１中のマーカ数が４で最大となり、グリッドｇ１１に含まれる４つのマーカのうち、座標系原点に最も近いマーカを選択する。
【００７４】
なお、ここではマーカ選択は１つだけ選択しているが、マーカ数が最大のグリッド中から複数のマーカを選択したり、マーカ数が多い順にグリッドをソートしてそれぞれのグリッドから複数のマーカを選択したりしてもよい。
【００７５】
（ステップＳ３０１０：安定度取得処理）
ステップＳ３０１０では、安定度取得部１１０２は、マップ取得部１０５により取得された特徴点を用いて、ステップＳ３００９で選択されたマーカの外側の特徴点の分布に基づき撮像部１Ａのカメラの位置姿勢推定の安定度を算出する。
【００７６】
安定度の算出に当たり、選択されたマーカの外側であり且つ当該マーカの所定の距離範囲（例えば半径５００ｍｍ以内）の特徴点の数をカウントする。図１４は、本実施形態に係る選択マーカ周囲のマップ中の特徴点の分布を示した図である。選択マーカの外側であり且つ半径５００ｍｍ以内の特徴点はｉ＝３個存在し、この場合の安定度は次式によって算出される。
【００７７】
【数３】
2018091667.tif 000045
【００７８】
（ステップＳ３０１１：安定度取得結果判定処理）
ステップＳ３０１１では、安定度取得部１１０２は、ステップＳ３０１０で算出された安定度が閾値以上（例えば０．９５以上）であるか否かを判定する。安定度が閾値以上である場合、ステップＳ３０１２へ進む。一方、安定度が閾値未満である場合、処理を終了する。
【００７９】
以上説明したように、本実施形態では、マーカの分布に基づいてマーカを１つ選択し、入力画像上の特徴点の分布に基づいてＳＬＡＭの推定の安定度を算出し、当該安定度に基づいてＭＲ画像を提示する。
【００８０】
これにより、撮像部の位置姿勢によらずにマーカを選択し、入力画像上の特徴点の分布に基づいて安定度を算出することができる。
【００８１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８２】
１００：情報処理装置、１０１：画像取得部、１０２：マーカ情報取得部、１０３：マーカ検出部、１０４：特徴検出部、１０５：マップ取得部、１０６：特徴対応付け部、１０７：マーカ選択部、１０８：第１の位置姿勢推定部、１０９：第２の位置姿勢推定部、１１０：安定度取得部、１１１：排除マーカ提示部
【図１】
2018091667.tif 000046
【図２】
2018091667.tif 000047
【図３】
2018091667.tif 000048
【図４】
2018091667.tif 000049
【図５】
2018091667.tif 000050
【図６】
2018091667.tif 000051
【図７】
2018091667.tif 000052
【図８】
2018091667.tif 000053
【図９】
2018091667.tif 000054
【図１０】
2018091667.tif 000055
【図１１】
2018091667.tif 000056
【図１２】
2018091667.tif 000057
【図１３】
2018091667.tif 000058
【図１４】
2018091667.tif 000059