(57)【要約】【課題】ＡＲアプリケーションをユーザに提供する際に、環境の認識が不安定となってＡＲアプリケーションの利用に支障が出てしまう事態を回避すること。【解決手段】撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、を備える画像処理装置を提供する。【選択図】図５
2013225245.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、
認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、
前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、
を備える画像処理装置。
【請求項２】
前記表示制御部は、閾値を上回る数の特徴点が前記入力画像に継続的に映るように、前記ユーザを前記誘導オブジェクトを用いて誘導する、請求項１に記載の画像処理装置。
【請求項３】
前記表示制御部は、前記入力画像の一部に特徴点が偏ることを回避するように、前記ユーザを前記誘導オブジェクトを用いて誘導する、請求項２に記載の画像処理装置。
【請求項４】
前記表示制御部は、前記入力画像に映る特徴点の数がより少ないほど、前記撮像装置がよりゆっくりと操作されるように、前記ユーザを前記誘導オブジェクトを用いて誘導する、請求項２に記載の画像処理装置。
【請求項５】
前記誘導オブジェクトは、拡張現実空間内で自律的に動作するエージェントであり、
前記エージェントは、撮像することが推奨される方向へ移動する、
請求項２に記載の画像処理装置。
【請求項６】
前記エージェントは、撮像することが推奨されない方向へ前記撮像装置が操作されようとしている場合に、当該操作を妨げるアクションを行う、請求項５に記載の画像処理装置。
【請求項７】
前記誘導オブジェクトは、撮像することが推奨されない前記実空間内の領域を前記ユーザに通知する標識である、請求項２に記載の画像処理装置。
【請求項８】
前記誘導オブジェクトは、前記入力画像に映る特徴点の数又は偏りに応じたスコアを前記ユーザに通知する標識である、請求項２に記載の画像処理装置。
【請求項９】
前記誘導オブジェクトは、拡張現実空間内で前記ユーザにより操作されるエージェントであり、
前記エージェントの移動可能領域は、撮像することが推奨される領域に制限される、
請求項２に記載の画像処理装置。
【請求項１０】
前記画像処理装置は、過去に検出された１つ以上の特徴点の前記実空間内での位置を示す特徴点マップを記憶する記憶部、をさらに備え、
前記表示制御部は、撮像されることにより前記認識処理が安定化する前記実空間内の領域を、前記特徴点マップを用いて判定する、
請求項１に記載の画像処理装置。
【請求項１１】
前記表示制御部は、第１の動作モードにおいて、前記認識処理が安定化するように前記ユーザを前記誘導オブジェクトを用いて誘導し、第２の動作モードにおいて、未知の特徴点が発見されるように前記ユーザを誘導する、請求項１に記載の画像処理装置。
【請求項１２】
前記表示制御部は、前記第２の動作モードにおいて、前記撮像装置により未だ撮像されていない未探索領域が撮像されるように前記ユーザを誘導する、請求項１１に記載の画像処理装置。
【請求項１３】
前記誘導オブジェクトが拡張現実空間内で自律的に動作するエージェントである場合に、当該エージェントは、前記第２の動作モードにおいて、前記未探索領域へ移動する、請求項１２に記載の画像処理装置。
【請求項１４】
前記記憶部は、前記特徴点マップ内の各特徴点に関するデータの登録時刻を当該データと関連付けて記憶し、
前記画像処理装置は、前記登録時刻からの経過時間に応じて前記データを破棄するマップ管理部、をさらに備える、
請求項１０に記載の画像処理装置。
【請求項１５】
前記画像処理装置は、前記撮像装置をさらに備える携帯端末である、
請求項１に記載の画像処理装置。
【請求項１６】
前記画像取得部、前記認識部、前記アプリケーション部及び前記表示制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、請求項１に記載の画像処理装置。
【請求項１７】
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得することと、
前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識処理を実行することと、
認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供することと、
前記認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳することと、
を含む画像処理方法。
【請求項１８】
画像処理装置を制御するコンピュータを、
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、
認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、
前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実空間に付加的な情報を重畳してユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。ＡＲ空間へのアノテーションの配置は、通常、画像に映る実空間の３次元構造の認識（以下、環境認識という）に基づいて行われる。環境認識のための手法としては、例えば、ＳＬＡＭ（Simultaneous  Localization  And  Mapping）法及びＳｆＭ（Structure  from  Motion）法が知られている。ＳＬＡＭ法の基本的な原理は、下記非特許文献１において説明されている。ＳＬＡＭ法では、入力画像の変化に応じて動的に更新される特徴点のセットを用いて、特徴点の位置の認識と環境内のカメラの位置及び姿勢の認識とが同時に実行される。ＳｆＭ法では、視点を変えながら撮像される複数の画像に映る特徴点の位置から視差が計算され、計算された視差に基づいて環境が認識される。下記特許文献１は、ＳＬＡＭ法において初期化の際に選択される特徴点の３次元位置をＳｆＭ法を用いて認識する手法を開示している。下記特許文献２は、ＳＬＡＭ法を応用して実現され得るＡＲアプリケーションの一例を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２３７８４５号公報
【特許文献２】特開２０１１−１５９１６２号公報
【非特許文献】
【０００４】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像内の特徴点群に基づく環境認識技術の精度は、画像内の特徴点の分布に依存する。特徴点の数がより多いほど、認識はより安定的になる。特徴点の数が少な過ぎれば、環境の追跡は実行不可能となり得る。また、画像内の特徴点の数が同じであれば、特徴点の分布の偏りが大きいほど、認識はより不安定になり得る。しかしながら、ＡＲアプリケーションを利用するユーザは、通常、このような環境認識技術の特性についての知識を有しない。よって、ＡＲアプリケーションをユーザに提供する際に、環境認識技術にとって好ましくない方向へユーザが端末（カメラ）を向ける結果として、環境の認識が不安定になり、ＡＲアプリケーションの利用に支障が出る事態に陥り易い。
【０００６】
従って、ＡＲアプリケーションをユーザに提供する際に、上述した事態を回避することのできる仕組みが提供されることが望ましい。
【課題を解決するための手段】
【０００７】
本開示によれば、撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、を備える画像処理装置が提供される。
【０００８】
また、本開示によれば、撮像装置を用いて実空間を撮像することにより生成される入力画像を取得することと、前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識処理を実行することと、認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供することと、前記認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳することと、を含む画像処理方法が提供される。
【０００９】
また、本開示によれば、画像処理装置を制御するコンピュータを、撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００１０】
本開示によれば、ＡＲアプリケーションをユーザに提供する際に、環境の認識が不安定となってＡＲアプリケーションの利用に支障が出てしまう事態を回避することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る画像処理装置の概要について説明するための説明図である。
【図２】環境認識のために使用される特徴点について説明するための説明図である。
【図３】特徴点の分布と環境認識の安定度との関係について説明するための説明図である。
【図４】一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図５】一実施形態に係る画像処理装置の論理的機能の構成の一例を示すブロック図である。
【図６】図５に例示したＳＬＡＭ演算部によるＳＬＡＭ演算処理の流れの一例を示すフローチャートである。
【図７】実物体上に設定される特徴点について説明するための説明図である。
【図８】特徴点の追加について説明するための説明図である。
【図９】予測モデルの一例について説明するための説明図である。
【図１０】特徴データの構成の一例について説明するための説明図である。
【図１１】特徴点の分布に従った誘導方向の決定の第１の手法について説明するための説明図である。
【図１２】特徴点の分布に従った誘導方向の決定の第２の手法について説明するための説明図である。
【図１３】自律動作型エージェントによる誘導の第１の例について説明するための説明図である。
【図１４】自律動作型エージェントによる誘導の第２の例について説明するための説明図である。
【図１５】自律動作型エージェントによる誘導の第３の例について説明するための説明図である。
【図１６】仮想標識による誘導の第１の例について説明するための説明図である。
【図１７】仮想標識による誘導の第２の例について説明するための説明図である。
【図１８】仮想標識による誘導の第３の例について説明するための説明図である。
【図１９】ユーザ操作型エージェントによる誘導の一例について説明するための説明図である。
【図２０】一実施形態に係る画像処理の全体的な流れの一例を示すフローチャートである。
【図２１】自律動作型エージェントが使用される場合の誘導制御処理の流れの一例を示すフローチャートである。
【図２２】仮想標識が使用される場合の誘導制御処理の流れの一例を示すフローチャートである。
【図２３】ユーザ操作型エージェントが使用される場合の誘導制御処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
また、以下の順序で説明を行う。
１．概要
２．一実施形態に係る装置の構成
２−１．ハードウェア構成
２−２．機能構成
２−３．誘導の例
２−４．処理の流れ
３．総括
【００１４】
＜１．概要＞
まず、図１〜図３を用いて、本開示に係る技術の概要を説明する。
【００１５】
図１は、一実施形態に係る画像処理装置１００の概要について説明するための説明図である。図１を参照すると、ユーザＵａが有する画像処理装置１００が示されている。画像処理装置１００は、実空間１０に向けられたレンズを有する撮像部１０２と、表示部１１０とを備える。図１の例において、実空間１０には、テーブル１４を含む様々な実物体（Real  Object）が存在している。画像処理装置１００の撮像部１０２は実空間１０を撮像し、表示部１１０は撮像された画像を表示し得る。画像処理装置１００は、拡張現実（ＡＲ）アプリケーションを動作させる制御部（図示せず）を備え得る。ＡＲアプリケーションは、撮像部１０２により撮像される画像を入力画像として受け取り、仮想オブジェクトの重畳された画像を表示部１１０へ出力する。図１の例では、仮想オブジェクトＶＯ１があたかもテーブル１４の上に存在するかのように、出力画像Ｉｍ０１において仮想オブジェクトＶＯ１が重畳されている。
【００１６】
図１では、画像処理装置１００の一例として携帯端末を示している。しかしながら、画像処理装置１００は、かかる例に限定されない。画像処理装置１００は、例えば、ＰＣ（Personal  Computer）、ＰＤＡ（Personal  Digital  Assistant）、スマートフォン、ゲーム端末、ＰＮＤ（Portable  Navigation  Device）、コンテンツプレーヤ又はデジタル家電機器などであってもよい。また、ＡＲアプリケーションは、ユーザにより操作される端末上で動作する代わりに、端末との間で通信可能な他の装置（例えば、アプリケーションサーバ）上で動作してもよい。
【００１７】
ＡＲアプリケーションにおいて仮想オブジェクトを適切に画像に重畳するためには、実空間と端末（特に、撮像部１０２）との間の相対的な位置及び姿勢を少なくともあるレベルを超える精度で認識することが重要である。そうした環境認識のための技術として、画像内の特徴点群に基づく技術が知られている。例えば、ＳＬＡＭ法では、入力画像の変化に応じて動的に更新される特徴点のセットを用いて、特徴点の位置の認識と環境内のカメラの位置及び姿勢の認識とが同時に実行される。ＳｆＭ法では、視点を変えながら撮像される複数の画像に映る特徴点の位置から視差が計算され、計算された視差に基づいて環境が認識される。
【００１８】
しかし、画像内の特徴点群に基づく環境認識の精度は、特徴点の分布に依存する。特徴点の数がより多いほど、認識はより安定的になる。特徴点の数が少な過ぎれば、環境の追跡は実行不可能となり、仮想オブジェクトをどこに重畳すべきかを決定することが困難となり得る。また、画像内の特徴点の数が同じであっても、特徴点の分布の偏りが大きければ、認識は不安定となり、仮想オブジェクトが不規則に動いてしまうなどの支障が生じ得る。
【００１９】
図２は、環境認識のために使用される特徴点について説明するための説明図である。図２において、図１に例示した実空間１０が再び示されている。図中の星印は、実空間１０において特徴点として検出される可能性の高い点を表している。図から理解されるように、領域１２ａ及び１２ｂには、特徴点が存在しない。従って、例えば領域１２ａ又は１２ｂのみが画像全体に映るように入力画像が撮像された場合、環境認識が失敗し、ＡＲアプリケーションが正常に動作しない事態が生じる。
【００２０】
特徴点の分布と環境認識の安定度との関係について、図３を用いてさらに説明する。図３では、抽象化された実空間１０が円形枠で、実空間１０内の特徴点が星印で示されている。ここで、現在のカメラアングルが円形枠の中央を向いているものとする。この時点で撮像される画像Ｉｍ１０には多数の特徴点が映っており、これら特徴点は画像全体にわたって比較的均一に分布している。よって、画像Ｉｍ１０を用いることにより、比較的安定的に環境を認識することができる。その後、ユーザがカメラアングルを上方へ動かすと、画像Ｉｍ１１が撮像される。ユーザがカメラアングルを下方へ動かすと、画像Ｉｍ１２が撮像される。画像Ｉｍ１１及びＩｍ１２の双方においても、複数の特徴点が画像全体にわたって比較的均一に分布している。これに対し、ユーザがカメラアングルを左方へ動かすと、画像Ｉｍ１３が撮像される。画像Ｉｍ１３には特徴点が映らない。この場合、環境認識は失敗し得る。また、ユーザがカメラアングルを右方へ動かすと、画像Ｉｍ１４が撮像される。画像Ｉｍ１４には複数の特徴点が映るが、それら特徴点は画像の上部に偏って分布する。この場合、環境認識は不安定になり得る（画像Ｉｍ１４の例では、ヨー方向のカメラの姿勢（回転角）は十分な精度で決定され得るが、ピッチ方向のカメラの姿勢の十分な精度が得られない）。よって、特徴点群に基づく環境認識技術を採用するＡＲアプリケーションにとっては、ユーザがカメラアングルを左方又は右方へ動かすよりも、ユーザがカメラアングルを上方又は下方へ動かす方が好ましい。
【００２１】
そこで、次節より詳細に説明する実施形態において、ＡＲアプリケーションを利用するユーザを、特徴点群に基づく環境認識が安定化するように誘導するための仕組みを提供する。
【００２２】
＜２．一実施形態に係る装置の構成＞
本節では、一実施形態に係る画像処理装置１００の構成の一例を説明する。ここでは、実空間と端末との間の相対的な位置及び姿勢がＳＬＡＭ法を利用して認識される例を主に説明する。しかしながら、かかる例に限定されず、以下に説明する実施形態は、特徴点群に基づいて環境を認識する他のいかなる技術と組み合わされてもよい。
【００２３】
［２−１．ハードウェア構成］
図４は、一実施形態に係る画像処理装置１００のハードウェア構成の一例を示すブロック図である。図４を参照すると、画像処理装置１００は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、通信部１１２、バス１１６及び制御部１１８を備える。
【００２４】
（１）撮像部
撮像部１０２は、画像を撮像するカメラモジュールである。撮像部１０２は、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を用いて実空間を撮像し、撮像画像を生成する。撮像部１０２により生成される撮像画像は、制御部１１８による画像処理の入力画像となる。なお、撮像部１０２は、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される撮像装置が撮像部１０２として扱われてもよい。
【００２５】
（２）センサ部
センサ部１０４は、測位センサ、加速度センサ及びジャイロセンサなどの様々なセンサを含み得る。センサ部１０４において得られる測定結果は、環境認識の支援、地理的な位置に特化したデータの取得、又はユーザ入力の検出などの様々な用途のために利用されてよい。なお、センサ部１０４は、画像処理装置１００の構成から省略されてもよい。
【００２６】
（３）入力部
入力部１０６は、ユーザが画像処理装置１００を操作し又は画像処理装置１００へ情報を入力するために使用される入力デバイスである。入力部１０６は、例えば、表示部１１０の画面上へのユーザによるタッチを検出するタッチセンサを含んでもよい。その代わりに（又はそれに加えて）、入力部１０６は、マウス若しくはタッチパッドなどのポインティングデバイスを含んでもよい。さらに、入力部１０６は、キーボード、キーパッド、ボタン又はスイッチなどのその他の種類の入力デバイスを含んでもよい。
【００２７】
（４）記憶部
記憶部１０８は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、画像処理装置１００による処理のためのプログラム及びデータを記憶する。記憶部１０８により記憶されるデータは、例えば、撮像画像データ、センサデータ及び後に説明する様々なデータベース（ＤＢ）内のデータを含み得る。なお、本明細書で説明するプログラム及びデータの一部は、記憶部１０８により記憶されることなく、外部のデータソース（例えば、データサーバ、ネットワークストレージ又は外付けメモリなど）から取得されてもよい。
【００２８】
（５）表示部
表示部１１０は、ＬＣＤ（Liquid  Crystal  Display）、ＯＬＥＤ（Organic  light-Emitting  Diode）又はＣＲＴ（Cathode  Ray  Tube）などのディスプレイを含む表示モジュールである。表示部１１０は、例えば、画像処理装置１００により生成されるＡＲアプリケーションの画像を表示するために使用される。なお、表示部１１０もまた、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される表示装置が表示部１１０として扱われてもよい。
【００２９】
（６）通信部
通信部１１２は、画像処理装置１００による他の装置との間の通信を仲介する通信インタフェースである。通信部１１２は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
【００３０】
（７）バス
バス１１６は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、通信部１１２及び制御部１１８を相互に接続する。
【００３１】
（８）制御部
制御部１１８は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサに相当する。制御部１１８は、記憶部１０８又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する画像処理装置１００の様々な機能を動作させる。
【００３２】
［２−２．機能構成］
図５は、図４に示した画像処理装置１００の記憶部１０８及び制御部１１８により実現される論理的機能の構成の一例を示すブロック図である。図５を参照すると、画像処理装置１００は、画像取得部１２０、データ取得部１２５、認識部１３０、マップデータベース（ＤＢ）１６０、マップ管理部１６５、アプリケーション部１７０及び表示制御部１８０を有する。
【００３３】
（１）画像取得部
画像取得部１２０は、撮像部１０２により生成される撮像画像を入力画像として取得する。画像取得部１２０により取得される入力画像は、実空間を映した画像である。当該入力画像は、典型的には、動画を構成する各フレームである。画像取得部１２０は、取得した入力画像を、認識部１３０及び表示制御部１８０へ出力する。
【００３４】
（２）データ取得部
データ取得部１２５は、認識部１３０による環境の認識及びアプリケーション部１７０によるＡＲアプリケーションの提供のために使用されるデータを取得する。例えば、データ取得部１２５は、センサ部１０４により生成されるセンサデータ、実物体に関するデータ及び仮想オブジェクトに関するデータなどを取得してよい。
【００３５】
（３）ＳＬＡＭ演算部
認識部１３０は、画像取得部１２０により取得される入力画像に映る１つ以上の特徴点の位置に基づいて、実空間と撮像部１０２との間の相対的な位置及び姿勢を認識する。本実施形態において、認識部１３０は、ＳＬＡＭ演算部１３５、物体ＤＢ１４０及び画像認識部１４５を含む。
【００３６】
ＳＬＡＭ演算部１３５は、ＳＬＡＭ法に従った演算を行うことにより、単眼カメラからの入力画像に映る実空間の３Ｄ構造と、撮像部１０２の位置及び姿勢とを動的に認識する。
【００３７】
まず、図６を用いて、ＳＬＡＭ演算部１３５によるＳＬＡＭ演算処理の全体的な流れについて説明する。次に、図７〜図１０を用いて、ＳＬＡＭ演算処理の詳細を説明する。
【００３８】
図６は、ＳＬＡＭ演算部１３５によるＳＬＡＭ演算処理の流れの一例を示すフローチャートである。図６において、ＳＬＡＭ演算処理が開始すると、ＳＬＡＭ演算部１３５は、まず、初期化処理を実行して状態変数を初期化する（ステップＳ１０）。本実施形態において、状態変数とは、カメラの位置及び姿勢（回転角）、当該カメラの移動速度及び角速度、並びに１つ以上の特徴点の位置を要素として含むベクトルである。また、ＳＬＡＭ演算部１３５には、画像取得部１２０により取得される入力画像が順次入力される（ステップＳ２０）。ステップＳ３０からステップＳ５０までの処理は、各入力画像について（即ち毎フレーム）繰り返され得る。
【００３９】
ステップＳ３０では、ＳＬＡＭ演算部１３５は、入力画像に映る特徴点を追跡する。例えば、ＳＬＡＭ演算部１３５は、予め取得される特徴点ごとのパッチ（Patch）（例えば特徴点を中心とする３×３＝９画素の小画像）を新たな入力画像と照合する。そして、ＳＬＡＭ演算部１３５は、入力画像内のパッチの位置、即ち特徴点の位置を検出する。ここで検出される特徴点の位置は、後の状態変数の更新の際に用いられる。
【００４０】
ステップＳ４０では、ＳＬＡＭ演算部１３５は、所定の予測モデルに基づいて、例えば１フレーム後の状態変数の予測値を生成する。また、ステップＳ５０では、ＳＬＡＭ演算部１３５は、ステップＳ４０において生成した状態変数の予測値と、ステップＳ３０において検出した特徴点の位置に応じた観測値とを用いて、状態変数を更新する。ＳＬＡＭ演算部１３５は、ステップＳ４０及びＳ５０における処理を、拡張カルマンフィルタの原理に基づいて実行する。
【００４１】
このような処理の結果として、毎フレーム更新される状態変数の値が出力される。以下、状態変数の初期化（ステップＳ１０）、特徴点の追跡（ステップＳ３０）、状態変数の予測（ステップＳ４０）、状態変数の更新（ステップＳ５０）の各処理の内容について、より具体的に説明する。
【００４２】
（３−１）状態変数の初期化
ＳＬＡＭ演算部１３５により使用される状態変数の要素のうち、カメラの位置、姿勢、移動速度及び角速度の初期値は、ゼロ又は他のいかなる値であってもよい。また、入力画像から複数の特徴点が選択される。ここで選択される特徴点は、例えば、画像内で動的に検出される点（例えば、テクスチャのエッジ又はコーナーなど）であってもよく、又は初期化のために予め設定されている既知の点であってもよい。特徴点の３次元位置は、例えば、ＳｆＭ法などの手法に従って計算されてもよい。ＳＬＡＭ演算部１３５は、このように初期化される要素を用いて、状態変数を構築する。
【００４３】
（３−２）特徴点の追跡
特徴点の追跡は、実空間内に存在し得る実物体の外観に現れる１つ以上の特徴点についてのパッチデータを用いて行われる。図８には、実物体の２つの例として、タンス（図中左）及びカレンダー（図中右）が示されている。各実物体上には、１つ以上の特徴点（ＦＰ）が設定されている。例えば、特徴点ＦＰ１はタンスに設定された特徴点であり、特徴点ＦＰ１と関連付けてパッチＰｔｈ１が定義されている。また、特徴点ＦＰ２はカレンダーに設定された特徴点であり、特徴点ＦＰ２と関連付けてパッチＰｔｈ２が定義されている。
【００４４】
ＳＬＡＭ演算部１３５は、初期化処理において選択された特徴点のパッチデータ、又はその後新たに選択される特徴点のパッチデータを、入力画像に含まれる部分画像と照合する。そして、ＳＬＡＭ演算部１３５は、照合の結果として、入力画像に含まれる特徴点の位置（例えば検出されたパッチの中心画素の位置）を特定する。
【００４５】
ＳＬＡＭ法の特色の１つは、追跡される特徴点が時間を追って動的に変化し得る点である。例えば、図８の例では、時刻Ｔ＝ｔ−１において、６つの特徴点が入力画像内で検出されている。次に、時刻Ｔ＝ｔにおいてカメラの位置又は姿勢が変化すると、時刻Ｔ＝ｔ−１において入力画像に映っていた６つの特徴点のうち２つのみが入力画像内に映っている。この場合に、ＳＬＡＭ演算部１３５は、入力画像内で特徴的な画素のパターンを有する位置に新たに特徴点を設定し、その新たな特徴点を後のフレームにおけるＳＬＡＭ演算処理に用いてよい。例えば、図８の例では、時刻Ｔ＝ｔにおいて、４つの新たな特徴点が実物体上に設定されている。かかる特色により、ＳＬＡＭ法では、特徴点の事前設定に要するコストを削減できると共に、追加される多数の特徴点を用いて認識の精度が高められる。
【００４６】
（３−３）状態変数の予測
本実施形態において、ＳＬＡＭ演算部１３５は、拡張カルマンフィルタを適用すべき状態変数として、次式に示す状態変数Ｘを用いる。
【００４７】
【数１】
2013225245.tif 000003
【００４８】
式（１）における状態変数Ｘの第１の要素は、次式の通り、実空間内のカメラの３次元位置を表す。
【００４９】
【数２】
2013225245.tif 000004
【００５０】
また、状態変数の第２の要素は、カメラの姿勢を表す回転行列に対応する四元数（クォータニオン）を要素として有する４次元ベクトルωである。なお、四元数の変わりにオイラー角を用いてカメラの姿勢が表されてもよい。また、状態変数の第３及び第４の要素は、カメラの移動速度及び角速度をそれぞれ表す。
【００５１】
さらに、状態変数の第５及びそれ以降の要素は、特徴点ＦＰｉ（ｉ＝１…Ｎ）の３次元位置ｐｉをそれぞれ表す。なお、上述したように、特徴点の数Ｎは、処理の間変化し得る。
【００５２】
【数３】
2013225245.tif 000005
【００５３】
ＳＬＡＭ演算部１３５は、ステップＳ１０において初期化された状態変数Ｘの値、又は前フレームにおいて更新された状態変数Ｘの値に基づいて、最新のフレームについての状態変数の予測値を生成する。状態変数の予測値は、次式に示す多次元正規分布に従った拡張カルマンフィルタの状態方程式に従って生成される。
【００５４】
【数４】
2013225245.tif 000006
【００５５】
ここで、Ｆはシステムの状態遷移に関する予測モデル、ａは予測条件である。また、ｗはガウシアンノイズであり、例えばモデル近似誤差や観測誤差等を含み得る。一般的に、ガウシアンノイズｗの平均はゼロとなる。
【００５６】
図９は、本実施形態に係る予測モデルの一例について説明するための説明図である。図９を参照すると、本実施形態に係る予測モデルにおける２つの予測条件が示されている。まず、第１の条件として、特徴点の３次元位置は変化しないものとする。即ち、時刻Ｔにおける特徴点ＦＰ１の３次元位置をｐＴとすると、次式の関係が成立する。
【００５７】
【数５】
2013225245.tif 000007
【００５８】
次に、第２の条件として、カメラの運動は等速運動であるものとする。即ち、時刻Ｔ＝ｔ−１から時刻Ｔ＝ｔにかけてのカメラの速度及び角速度について、次式の関係が成立する。
【００５９】
【数６】
2013225245.tif 000008
【００６０】
このような予測モデル及び式（４）に示した状態方程式に基づいて、ＳＬＡＭ演算部１３５は、最新のフレームについての状態変数の予測値を生成する。
【００６１】
（３−４）状態変数の更新
そして、ＳＬＡＭ演算部１３５は、観測方程式を用いて、例えば状態変数の予測値から予測される観測情報と、特徴点の追跡結果として得られる実際の観測情報との誤差を評価する。なお、式（８）におけるνがその誤差である。
【００６２】
【数７】
2013225245.tif 000009
【００６３】
ここで、Ｈは観測モデルを表す。例えば、特徴点ＦＰｉの撮像面（ｕ−ｖ平面）上の位置を、次式のように定義する。
【００６４】
【数８】
2013225245.tif 000010
【００６５】
ここで、カメラの位置ｘ、カメラの姿勢ω、及び特徴点ＦＰｉの３次元位置ｐｉは、いずれも状態変数Ｘの要素として与えられる。そうすると、ピンホールカメラモデルに従い、特徴点ＦＰｉの撮像面上の位置は次式を用いて導かれる。なお、λは正規化のためのパラメータ、Ａはカメラ内部パラメータ行列、Ｒωは状態変数Ｘに含まれるカメラの姿勢を表す四元数ωに対応する回転行列である。
【００６６】
【数９】
2013225245.tif 000011
【００６７】
従って、式（１１）を用いて導かれる予測される観測情報、即ち各特徴点の撮像面上の位置と、図６のステップＳ３０における特徴点の追跡結果との間の誤差を最小にする状態変数Ｘを探索することにより、尤もらしい最新の状態変数Ｘを得ることができる。
【００６８】
【数１０】
2013225245.tif 000012
【００６９】
ＳＬＡＭ演算部１３５は、このようにＳＬＡＭ法に従って動的に更新される状態変数Ｘに含まれる各パラメータの値を、マップ管理部１６５へ出力し、マップＤＢ１６０に記憶させる。
【００７０】
（４）物体ＤＢ
物体ＤＢ１４０は、実物体の特徴を表す特徴データを予め記憶しているデータベースである。物体ＤＢ１４０により記憶される特徴データは、画像認識部１４５による画像認識処理において使用される。図１０は、特徴データの構成の一例について説明するための説明図である。
【００７１】
図１０を参照すると、実物体ＲＯ１についての一例としての特徴データ１４１が示されている。特徴データ１４１は、物体ＩＤ１４２ａ、６方向から撮像した画像データ１４２ｂ、パッチデータ１４２ｃ及び３次元形状データ１４２ｄを含む。
【００７２】
物体ＩＤ１４２ａは、実物体ＲＯ１を一意に識別するための識別子である。画像データ１４２ｂは、実物体ＲＯ１を前・後・左・右・上・下の６方向からそれぞれ撮像した６つの画像データを含む。パッチデータ１４２ｃは、実物体に設定される特徴点ごとの、各特徴点を中心とする小画像の集合である。３次元形状データ１４２ｄは、実物体ＲＯ１のローカル座標系における各特徴点の３次元位置（即ち、実物体ＲＯ１内にローカルに定義される原点からの相対的な各特徴点の位置）を表す位置情報を含む。
【００７３】
（５）画像認識部
画像認識部１４５は、物体ＤＢ１４０により記憶されている上述した特徴データを用いて、入力画像にどの実物体が映っているかを認識する。より具体的には、例えば、画像認識部１４５は、画像取得部１２０により取得される入力画像に含まれる部分画像と、特徴データに含まれる各特徴点のパッチとを照合し、入力画像に含まれる特徴点を検出する。画像認識部１４５は、ＳＬＡＭ演算部１３５による特徴点の追跡結果を再利用してもよい。次に、画像認識部１４５は、画像内のある領域に１つの実物体に属する特徴点が高い密度で検出された場合には、当該領域にその実物体が映っていると認識し得る。画像認識部１４５は、検出された特徴点の間の位置関係と図１０に例示した３次元形状データとに基づいて、認識された実物体の位置及び姿勢をさらに認識し得る。画像認識部１４５により認識される実物体の位置及び姿勢と、ＳＬＡＭ演算部１３５により認識される撮像部１０２の位置及び姿勢とに基づいて、ＳＬＡＭ法の初期化後の実物体の位置及び姿勢の追跡が実現される。画像認識部１４５は、このように追跡される実物体の位置及び姿勢をマップ管理部１６５へ出力し、マップＤＢ１６０に記憶させる。
【００７４】
（６）マップ管理部
マップＤＢ１６０は、認識部１３０による環境認識の結果を記憶するデータベースである。マップＤＢ１６０は、例えば、ＳＬＡＭ演算部１３５により認識される撮像部１０２の位置及び姿勢、並びに画像認識部１４５により認識される実物体の位置及び姿勢を記憶する。後述するアプリケーション部１７０及び表示制御部１８０は、マップＤＢ１６０により記憶されるこれらデータを用いて、ＡＲ空間内の仮想オブジェクトの配置を決定し得る。
【００７５】
さらに、マップＤＢ１６０は、後に説明する特徴点マップを記憶してもよい。特徴点マップは、過去に検出された１つ以上の特徴点の実空間内での位置を示す。特徴点マップは、表示制御部１８０による誘導制御処理のために使用され得る。
【００７６】
マップ管理部１６５は、マップＤＢ１６０により記憶されるデータ並びに当該データの入力及び出力を管理する。例えば、マップ管理部１６５は、後に説明するように、マップＤＢ１６０により記憶されるデータに、その登録時刻（生成又は更新の時刻）を示すタイムスタンプを付し、登録時刻から一定の時間が経過したデータを破棄してもよい。
【００７７】
（７）アプリケーション部
アプリケーション部１７０は、認識部１３０による環境認識の結果に基づいて、ユーザに拡張現実（ＡＲ）アプリケーションを提供する。アプリケーション部１７０により提供されるＡＲアプリケーションは、娯楽、教育、ビジネス又はソーシャルコミュニケーションなどのいかなる目的を有するアプリケーションであってもよい。アプリケーション部１７０は、典型的には、その目的に応じて表示すべき仮想オブジェクト（アノテーション）を選択し、選択した仮想オブジェクトをＡＲ空間内に配置する。図１の例では、仮想オブジェクトＶＯ１が、あたかもテーブル１４の上に存在するかのように配置されている。画像内で仮想オブジェクトＶＯ１が重畳される２次元位置は、撮像部１０２とテーブル１４との間の相対的な位置関係と、ＡＲ空間内の仮想オブジェクトＶＯ１の配置とに基づいて計算され得る。
【００７８】
（８）表示制御部
表示制御部１８０は、表示部１１０を用いたＡＲアプリケーションの表示を制御する。また、表示制御部１８０は、認識部１３０により実行される認識処理が安定化するように、特徴点の分布に従って、画像処理装置１００を操作するユーザを誘導する。例えば、表示制御部１８０は、閾値を上回る数の特徴点が入力画像に継続的に映るように、ユーザを誘導してもよい。また、表示制御部１８０は、入力画像の一部に特徴点が偏ることを回避するように、ユーザを誘導してもよい。また、表示制御部１８０は、入力画像に映る特徴点の数がより少ないほど、画像処理装置１００がよりゆっくりと操作される（動かされる）ように、ユーザを誘導してもよい。
【００７９】
図１１は、特徴点の分布に従った誘導方向の決定の第１の手法について説明するための説明図である。図１１には、図３に例示した画像Ｉｍ１０が拡大されて示されている。画像Ｉｍ１０の上端部、下端部及び右端部の近傍には、ある量を超えるテクスチャが存在する。従って、表示制御部１８０は、ユーザがカメラアングルを上方、下方又は右方へ動かしたとしても、閾値を上回る数の特徴点が入力画像に継続的に映ると予測することができる。これに対し、画像Ｉｍ１０の左端部の近傍には、テクスチャが存在しない。従って、表示制御部１８０は、ユーザがカメラアングルを左方へ動かすと、入力画像に映る特徴点の数が減少すると予測することができる。このような予測に基づいて、表示制御部１８０は、ユーザがカメラアングルを上方、下方又は右方へ動かすように（又はユーザがカメラアングルを左方へ動かさないように）ユーザを誘導してもよい。第１の手法によれば、入力画像のみを用いて誘導が制御される。従って、追加的なメモリリソースを要することなく、少ない開発コストで本開示に係る技術を実現することができる。なお、表示制御部１８０は、より広い範囲がカメラアングル内に含まれるようにユーザにズームアウトを促すことにより、新たな特徴点の発見の可能性を高めてもよい。
【００８０】
図１２は、特徴点の分布に従った誘導方向の決定の第２の手法について説明するための説明図である。図１２には、マップＤＢ１６０により追加的に記憶され得る特徴点マップ１６２が概略的に示されている。ここでは、説明の簡明さのために２次元的に構成されるマップを示しているが、特徴点マップ１６２は、３次元的に構成されてもよい。図１２を参照すると、特徴点マップ１６２は、１つ以上の特徴点の位置をＸ−Ｙ座標系において示している。Ｘ−Ｙ平面は、碁盤目状に複数の領域に区分される。各領域は、Ｘ方向のラベル「Ａ」〜「Ｅ」及びＹ方向のラベル「１」〜「５」の組合せによって、領域Ａ１、Ａ２などのように識別され得る。図１２の例において、領域Ｂ４、Ｃ２〜Ｃ４、Ｄ２、Ｄ３、Ｅ３及びＥ４については、各領域内で比較的均一に分布する多数の特徴点が存在する。従って、これら領域にカメラが向けられる場合には、閾値を上回る数の特徴点が入力画像に映り、そらら特徴点は画像の一部に偏らない。本明細書では、このような領域を、安定認識領域という。表示制御部１８０は、このような特徴点マップ１６２を参照して安定認識領域を判定し、安定認識領域が継続的に撮像されるようにユーザを誘導することにより、認識部１３０による認識処理を安定化させてもよい。第２の手法によれば、入力画像に映っていない特徴点の存在及びその位置を特徴点マップを用いて判定することが可能となるため、実空間の状況に応じてユーザをより適切に誘導することができる。
【００８１】
表示制御部１８０は、上述した通り環境認識処理が安定化するようにユーザを誘導する第１の動作モードに加えて、特徴点マップに登録されている特徴点の数を増やすようにユーザを誘導する第２の動作モードで動作可能であってもよい。本明細書では、この第１の動作モードを通常モード、第２の動作モードを探索モードという。探索モードでは、表示制御部１８０は、安定認識領域よりもむしろ、安定認識領域以外の領域が撮像されるようにユーザを誘導し得る。
【００８２】
特徴点マップ１６２は、探索済み領域（explored  area）と未探索領域（unexplored  area）とが識別可能となるように構成されてもよい。探索済み領域とは、過去に既に撮像された領域であり、未探索領域とは、未だ撮像されていない領域である。図１２に示した特徴点マップ１６２の例では、領域Ａ１、Ａ２、Ｂ１及びＢ２が、未探索領域として識別されている。特徴点マップ１６２内で、未探索領域には特徴点は登録されていない。しかし、これは、未探索領域に特徴点が存在しないことを意味するのではなく、これら領域に特徴点が存在するか否かが知られていないことを意味する。このような未探索領域をユーザに撮像させることにより、表示制御部１８０は、新たな特徴点を発見し、安定認識領域を広げることができる。
【００８３】
［２−３．誘導の例］
表示制御部１８０による誘導は、誘導オブジェクトを入力画像に重畳することにより行われる。どのように誘導が行われるかは、誘導オブジェクトの種類に依存する。本項では、誘導オブジェクトの種類として、自律動作型エージェント、仮想標識（virtual  indication）、及びユーザ操作型エージェント（あるいはアバター）という３つの種類を例示する。なお、これら誘導オブジェクトは、ＡＲアプリケーションのための仮想オブジェクトと共通化されてもよく、又は誘導のための専用の仮想オブジェクトであってもよい。
【００８４】
（１）自律動作型エージェント
自律動作型エージェントは、ＡＲ空間内で自律的に動作する仮想オブジェクトである。表示制御部１８０は、例えば、通常モードにおいて、自律動作型エージェントを、撮像することが推奨される方向へ移動させてもよい。また、表示制御部１８０は、撮像することが推奨されない方向に向けて撮像部１０２が操作されようとしている場合に、当該操作を妨げるアクションを自律動作型エージェントに行わせてもよい。また、表示制御部１８０は、例えば、探索モードにおいて、自律動作型エージェントを、未探索領域へ移動させてもよい。
【００８５】
図１３は、自律動作型エージェントによる誘導の第１の例について説明するための説明図である。図１３を参照すると、実空間２０を拡張することにより形成されるＡＲ空間内に、自律動作型エージェントＶＯ２が存在する。実際には、エージェントＶＯ２は、エージェントＶＯ２が存在する場所をカメラで撮像することによって、初めて画面上でユーザにより視認される。ある時刻において、エージェントＶＯ２は、ＡＲ空間内の位置Ｐ１１に位置し、位置Ｐ１６へ移動しようとしているものとする。ここで、エージェントＶＯ２が位置Ｐ１１から位置Ｐ１６へ直線的に移動すると、ユーザがカメラアングル内にエージェントＶＯ２を維持しようとした場合に、特徴点の無い（又は少ない）位置Ｐ１９の近傍の領域で環境認識処理が失敗する可能性が高い。そこで、表示制御部１８０は、エージェントＶＯ２を位置Ｐ１６へ直線的に移動させる代わりに、十分な数の特徴点が存在する位置Ｐ１２、Ｐ１３、Ｐ１４及びＰ１５を辿るルートに沿ってエージェントＶＯ２を移動させる。結果として、ユーザがカメラアングル内にエージェントＶＯ２を維持しようとした場合にも、環境認識処理が失敗することなく、エージェントＶＯ２の位置Ｐ１６への移動は成功し得る。また、表示制御部１８０は、位置Ｐ１３と位置Ｐ１５との間の、近傍に存在する特徴点の数が減少する区間において、エージェントＶＯ２をゆっくりと移動させる。それにより、特徴点群のうち追跡に失敗する特徴点の割合を抑制し、一時的に減少する特徴点を有効に活用して、環境認識処理の精度の低下を防止することができる。
【００８６】
図１４は、自律動作型エージェントによる誘導の第２の例について説明するための説明図である。図１４を参照すると、安定認識領域から外れる方向へユーザがカメラアングルを動かそうとしている。表示制御部１８０は、環境認識処理の結果からこのような操作を認識し、その操作を妨げるアクションをエージェントＶＯ２に行わせる。図１４の例では、エージェントＶＯ２は、安定認識領域から外れる方向へ移動することを望まないことを示すメッセージＭＳＧをユーザに伝えている。メッセージＭＳＧは、仮想オブジェクトの１つであってもよく、又は音声メッセージであってもよい。また、ユーザによる操作を妨げるアクションは、図１４に例示したようなメッセージの代わりに、エージェントＶＯ２の何らかの表情又はジェスチャなどであってもよい。
【００８７】
図１５は、自律動作型エージェントによる誘導の第３の例について説明するための説明図である。上述した第１及び第２の例は、通常モードにおける誘導の例であるのに対し、第３の例は、探索モードにおける誘導の例である。図１５を参照すると、図１３と同様の実空間２０が再び示されており、自律動作型エージェントＶＯ２は位置Ｐ１１に位置する。探索モードにおいて、表示制御部１８０は、安定認識領域から外れる位置Ｐ１９の方向へエージェントＶＯ２を移動させる。ユーザは、カメラアングル内にエージェントＶＯ２を維持しようとするものとする。結果的に、位置Ｐ１９の近傍の領域に存在する実物体ＲＯ２及びＲＯ３が入力画像に映り、これら実物体上の特徴点が新たに発見される。そして、位置Ｐ１９の近傍の領域は、新たに安定認識領域として識別され得る。
【００８８】
なお、認識される実物体が動物体である場合には、当該動物体が動く結果として、特徴点マップに記憶されている特徴点の情報又は領域の情報が陳腐化する可能性がある。そこで、マップ管理部１６５は、特徴点マップに各特徴点の位置を登録する際に、各特徴点にタイムスタンプを付す（即ち、登録時刻を特徴点又は領域と関連付けて記憶させる）。そして、マップ管理部１６５は、登録時刻からの経過時間に応じて、特徴点マップ内のデータを破棄し得る。それにより、陳腐化した情報に基づく誘導を原因として、環境認識処理の安定度が却って低下してしまうことを防止することができる。
【００８９】
（２）仮想標識
仮想標識は、図形、アイコン又はテキストなどの簡易な仮想オブジェクトである。表示制御部１８０は、例えば、撮像することが推奨されない実空間内の領域をユーザに通知するための仮想標識を、入力画像に重畳してもよい。その代わりに又はそれに加えて、表示制御部１８０は、入力画像に映る特徴点の数又は偏りに応じたスコアをユーザに通知するための仮想標識を、入力画像に重畳してもよい。
【００９０】
図１６は、仮想標識による誘導の第１の例について説明するための説明図である。図１６を参照すると、実空間１０を映す画像を表示している画像処理装置１００が例示されている。画像処理装置１００の画面には、仮想標識Ｖ０３及びＶ０４が表示されている。仮想標識Ｖ０３は、安定認識領域とそれ以外の領域との間の境界を示す標識である。仮想標識Ｖ０４は、安定認識領域以外の領域を示す標識である。このような標識を見ることにより、ユーザは、安定認識領域が入力画像内に継続的に映るように、端末を操作することができる。また、ユーザは、探索モードにおいて、未探索領域を積極的に撮像することにより、安定認識領域を広げることもできる。
【００９１】
図１７は、仮想標識による誘導の第２の例について説明するための説明図である。図１７の例において、画像処理装置１００の画面には、仮想標識Ｖ０５が透過的に表示されている。仮想標識Ｖ０５は、一定のサイズの領域ごとに、特徴点の数又は特徴点の分布の偏りに応じたスコアを、領域の明るさ又は色などの属性によって示す標識である。図１７の例では、より高い安定度での環境認識が可能な第１の領域、より低い安定度での環境認識が可能な第２の領域、及び環境認識が困難な第３の領域のいずれかに、各領域が仮想標識Ｖ０５によって色分けされている。このような標識を見ることによっても、ユーザは、安定認識領域が入力画像内に継続的に映るように、端末を操作することができる。
【００９２】
図１８は、仮想標識による誘導の第３の例について説明するための説明図である。図１８の例において、画像処理装置１００の画面には、仮想標識Ｖ０６が表示されている。仮想標識Ｖ０６は、画像に映る特徴点の数又は特徴点の分布の偏りに応じたスコアの大きさを示すインジケータである。カメラアングルの変化に応じて、仮想標識Ｖ０６は、上述したスコアの変化をユーザに通知する。図１８の右の例では、スコアが低下したことが仮想標識Ｖ０６により示されていると共に、環境の認識が失敗する恐れがあることを通知するメッセージＶ０７もまた表示されている。このような標識が表示されることにより、ユーザの操作は間接的に妨げられ、環境認識の失敗又は環境認識処理の安定度の低下が回避される。
【００９３】
（３）ユーザ操作型エージェント
ユーザ操作型エージェントは、ＡＲ空間内でユーザにより操作される仮想オブジェクトである。表示制御部１８０は、例えば、ユーザ操作型エージェントの移動可能領域を撮像することが推奨される領域に制限することにより、ユーザを誘導してもよい。撮像することが推奨される領域とは、通常モードにおいては認識安定領域であってよく、探索モードにおいては認識安定領域及び未探索領域の双方を含み得る。
【００９４】
図１９は、ユーザ操作型エージェントによる誘導の一例について説明するための説明図である。図１９を参照すると、実空間１０を拡張することにより形成されるＡＲ空間内に、ユーザ操作型エージェントＶＯ８が存在する。エージェントＶＯ８の右下の領域は、特徴点の無い（又は少ない）領域である。ユーザは、例えば画面上でのドラッグ操作によってエージェントＶＯ８を操作する。しかし、図１９の状況において、表示制御部１８０は、ユーザが右下方向（図中の矢印Ａｒｒ１）へのドラッグを行ったとしても、当該方向へのエージェントＶＯ８の移動を妨げ、例えば右上方向（図中の矢印Ａｒｒ２）へエージェントＶＯ８を移動させる。このようにユーザ操作型エージェントの移動可能領域が制限されることで、安定認識領域が継続的に撮像されるようにユーザを誘導することができる。
【００９５】
［２−４．処理の流れ］
（１）全体的な流れ
図２０は、一実施形態に係る画像処理の全体的な流れの一例を示すフローチャートである。
【００９６】
図２０を参照すると、まず、画像取得部１２０は、実空間を撮像することにより生成される入力画像を取得する（ステップＳ１１０）。そして、画像取得部１２０は、取得した入力画像を、認識部１３０及び表示制御部１８０へ出力する。
【００９７】
次に、認識部１３０は、入力画像に映る１つ以上の特徴点の位置に基づいて環境認識処理を実行し、実空間と撮像装置との間の相対的な位置及び姿勢を認識する（ステップＳ１２０）。ここで実行される環境認識処理は、例えば、図６を用いて説明したＳＬＡＭ演算処理を含み得る。認識部１３０は、環境認識の結果、即ち、環境内のカメラの位置及び姿勢、特徴点の位置、並びに実物体の位置及び姿勢をマップＤＢ１６０に記憶させる。
【００９８】
次に、アプリケーション部１７０は、認識部１３０による環境認識の結果に基づいて、ＡＲアプリケーションの動作を実行する（ステップＳ１３０）。例えば、アプリケーション部１７０は、アプリケーションの目的に応じて選択される仮想オブジェクトを、入力画像に映るいずれかの実物体と関連付けて、ＡＲ空間内に配置する。
【００９９】
次に、表示制御部１８０は、環境認識処理が安定化するように、誘導制御処理を実行する（ステップＳ１４０）。ここで実行される誘導制御処理のより詳細な３つの例を、後にさらに説明する。
【０１００】
そして、表示制御部１８０は、アプリケーション部１７０により配置されたＡＲアプリケーションのための仮想オブジェクト、及び誘導オブジェクトを、入力画像に重畳する（ステップＳ１７０）。
【０１０１】
（２）誘導制御処理の第１の例
図２１は、自律動作型エージェントが使用される場合の誘導制御処理の流れの一例を示すフローチャートである。
【０１０２】
図２１を参照すると、まず、表示制御部１８０は、特徴点の分布をマップＤＢ１６０から取得する（ステップＳ１４１）。その後の処理は、動作モードが通常モード及び探索モードのいずれであるかに応じて分岐する（ステップＳ１４２）。動作モードが通常モードであれば、処理はステップＳ１４３へ進む。一方、動作モードが探索モードであれば、処理はステップＳ１４７へ進む。なお、探索モードは、例えばＡＲアプリケーションの初期化フェーズにおいてＡＲ空間を構築するために選択されてもよく、又はそれ以外のタイミングで選択されてもよい。
【０１０３】
通常モードの場合、表示制御部１８０は、環境認識処理の結果から、端末の動きを推定する（ステップＳ１４３）。そして、表示制御部１８０は、推奨されない領域（例えば、安定認識領域以外の領域）が撮像されようとしているかを判定する（ステップＳ１４４）。例えば、表示制御部１８０は、直近の数フレーム分の端末の動きがさらに継続された場合にカメラアングルが安定認識領域から外れると予測される場合に、推奨されない領域が撮像されようとしていると判定してもよい。推奨されない領域が撮像されようとしていると判定された場合には、処理はステップＳ１４５へ進む。一方、そうでない場合には、処理はステップＳ１４６へ進む。
【０１０４】
ステップＳ１４５では、表示制御部１８０は、ユーザによる操作を妨げるための自律動作型エージェントのアクションを決定する（ステップＳ１４５）。ここで決定されるアクションは、例えば、図１４を用いて説明したようなアクションであってよい。
【０１０５】
ステップＳ１４６では、表示制御部１８０は、特徴点の分布に従って、自律動作型エージェントの動きを決定する（ステップＳ１４６）。ここで決定される動きは、例えば、図１３を用いて説明したような、安定認識領域を辿る動きであってよい。
【０１０６】
ステップＳ１４７では、表示制御部１８０は、探索モードで動作しているため、未探索領域へ向かう自律動作型エージェントの動きを決定する（ステップＳ１４７）。
【０１０７】
ステップＳ１４５、Ｓ１４６又はＳ１４７において決定されたエージェントの動き（又はアクション）は、図２０に例示したステップＳ１７０において画面上で表示され、ユーザにより視認される。
【０１０８】
（３）誘導制御処理の第２の例
図２２は、仮想標識が使用される場合の誘導制御処理の流れの一例を示すフローチャートである。
【０１０９】
図２２を参照すると、まず、表示制御部１８０は、特徴点の分布をマップＤＢ１６０から取得する（ステップＳ１５１）。その後の処理は、動作モードが通常モード及び探索モードのいずれであるかに応じて分岐する（ステップＳ１５２）。動作モードが通常モードであれば、処理はステップＳ１５３へ進む。一方、動作モードが探索モードであれば、処理はステップＳ１５７へ進む。
【０１１０】
通常モードの場合、表示制御部１８０は、特徴点の分布に従って、１つ以上の仮想標識を生成する（ステップＳ１５３）。ここで生成される仮想標識は、例えば、図１６〜図１８を用いて説明したような標識であってよい。
【０１１１】
次に、表示制御部１８０は、環境認識処理の結果から、端末の動きを推定する（ステップＳ１５４）。そして、表示制御部１８０は、推奨されない領域が撮像されようとしているかを判定する（ステップＳ１５５）。推奨されない領域が撮像されようとしていると判定された場合には、表示制御部１８０は、ユーザに警告するために、仮想標識を追加的に生成し、又はステップＳ１５３において生成した仮想標識の属性を変更する（ステップＳ１５６）。
【０１１２】
ステップＳ１５７では、表示制御部１８０は、探索モードで動作しているため、例えば未探索領域をユーザに通知するための仮想標識を生成する（ステップＳ１５７）。
【０１１３】
ステップＳ１５３、Ｓ１５６又はＳ１５７において生成された仮想標識は、図２０に例示したステップＳ１７０において画面上で表示され、ユーザにより視認される。
【０１１４】
（４）誘導制御処理の第３の例
図２３は、ユーザ操作型エージェントが使用される場合の誘導制御処理の流れの一例を示すフローチャートである。
【０１１５】
図２３を参照すると、まず、表示制御部１８０は、特徴点の分布をマップＤＢ１６０から取得する（ステップＳ１６１）。また、表示制御部１８０は、エージェントを操作するために受け付けられるユーザ入力を取得する（ステップＳ１６２）。
【０１１６】
その後の処理は、動作モードが通常モード及び探索モードのいずれであるかに応じて分岐する（ステップＳ１６３）。動作モードが通常モードであれば、処理はステップＳ１６４へ進む。一方、動作モードが探索モードであれば、処理はステップＳ１６６へ進む。
【０１１７】
通常モードの場合、表示制御部１８０は、特徴点の分布に従ってＡＲ空間内の移動可能領域を決定する（ステップＳ１６４）。そして、表示制御部１８０は、決定した移動可能領域の範囲内で、ユーザ入力に応じたユーザ操作型エージェントの動きを決定する（ステップＳ１６５）。
【０１１８】
探索モードの場合、表示制御部１８０は、移動可能領域による制限を課すことなく、ユーザ入力に応じたユーザ操作型エージェントの動きを決定する（ステップＳ１６６）
【０１１９】
ステップＳ１６５又はＳ１６６において決定されたエージェントの動きは、図２０に例示したステップＳ１７０において画面上で表示され、ユーザにより視認される。
【０１２０】
＜３．総括＞
ここまで、図１〜図２２を用いて、本開示に係る技術の実施形態について詳細に説明した。上述した実施形態によれば、入力画像に映る特徴点の位置に基づいて環境が認識され、当該認識の結果を用いてＡＲアプリケーションが提供される際に、特徴点の分布に従って、環境認識処理が安定化するようにユーザが誘導される。従って、環境の認識が不安定となってＡＲアプリケーションの利用に支障が出てしまう事態を回避することができる。
【０１２１】
また、上述した実施形態によれば、例えば、閾値を上回る数の特徴点が入力画像に継続的に映るように、誘導オブジェクトを用いて誘導が行われる。従って、十分な数の特徴点が入力画像内に維持され得ることから、ＡＲアプリケーションが提供されている間、実空間と撮像装置との間の相対的な位置関係を継続的に認識して、アプリケーションの可用性を確保することができる。
【０１２２】
また、上述した実施形態によれば、例えば、入力画像の一部に特徴点が偏ることを回避するように、誘導オブジェクトを用いて誘導が行われる。従って、ＡＲアプリケーションが提供されている間、実空間と撮像装置との間の相対的な位置関係を安定的に高い精度で認識して、仮想オブジェクトが不適切な位置又は姿勢で配置されるなどの不具合を防止することができる。
【０１２３】
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵなどのプロセッサにより実行される。
【０１２４】
また、各装置の論理的機能の一部は、当該装置上に実装される代わりに、クラウドコンピューティング環境内に存在する装置上に実装されてもよい。その場合には、論理的機能の間でやり取りされる情報が、図４に例示した通信部１１２を介して装置間で送信され又は受信され得る。
【０１２５】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２６】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、
認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、
前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、
を備える画像処理装置。
（２）
前記表示制御部は、閾値を上回る数の特徴点が前記入力画像に継続的に映るように、前記ユーザを前記誘導オブジェクトを用いて誘導する、前記（１）に記載の画像処理装置。
（３）
前記表示制御部は、前記入力画像の一部に特徴点が偏ることを回避するように、前記ユーザを前記誘導オブジェクトを用いて誘導する、前記（２）に記載の画像処理装置。
（４）
前記表示制御部は、前記入力画像に映る特徴点の数がより少ないほど、前記撮像装置がよりゆっくりと操作されるように、前記ユーザを前記誘導オブジェクトを用いて誘導する、前記（２）又は前記（３）に記載の画像処理装置。
（５）
前記誘導オブジェクトは、拡張現実空間内で自律的に動作するエージェントであり、
前記エージェントは、撮像することが推奨される方向へ移動する、
前記（２）〜（４）のいずれか１項に記載の画像処理装置。
（６）
前記エージェントは、撮像することが推奨されない方向へ前記撮像装置が操作されようとしている場合に、当該操作を妨げるアクションを行う、前記（５）に記載の画像処理装置。
（７）
前記誘導オブジェクトは、撮像することが推奨されない前記実空間内の領域を前記ユーザに通知する標識である、前記（２）〜（４）のいずれか１項に記載の画像処理装置。
（８）
前記誘導オブジェクトは、前記入力画像に映る特徴点の数又は偏りに応じたスコアを前記ユーザに通知する標識である、前記（２）〜（４）のいずれか１項に記載の画像処理装置。
（９）
前記誘導オブジェクトは、拡張現実空間内で前記ユーザにより操作されるエージェントであり、
前記エージェントの移動可能領域は、撮像することが推奨される領域に制限される、
前記（２）〜（４）のいずれか１項に記載の画像処理装置。
（１０）
前記画像処理装置は、過去に検出された１つ以上の特徴点の前記実空間内での位置を示す特徴点マップを記憶する記憶部、をさらに備え、
前記表示制御部は、撮像されることにより前記認識処理が安定化する前記実空間内の領域を、前記特徴点マップを用いて判定する、
前記（１）〜（９）のいずれか１項に記載の画像処理装置。
（１１）
前記表示制御部は、第１の動作モードにおいて、前記認識処理が安定化するように前記ユーザを前記誘導オブジェクトを用いて誘導し、第２の動作モードにおいて、未知の特徴点が発見されるように前記ユーザを誘導する、前記（１）〜（１０）のいずれか１項に記載の画像処理装置。
（１２）
前記表示制御部は、前記第２の動作モードにおいて、前記撮像装置により未だ撮像されていない未探索領域が撮像されるように前記ユーザを誘導する、前記（１１）に記載の画像処理装置。
（１３）
前記誘導オブジェクトが拡張現実空間内で自律的に動作するエージェントである場合に、当該エージェントは、前記第２の動作モードにおいて、前記未探索領域へ移動する、前記（１２）に記載の画像処理装置。
（１４）
前記記憶部は、前記特徴点マップ内の各特徴点に関するデータの登録時刻を当該データと関連付けて記憶し、
前記画像処理装置は、前記登録時刻からの経過時間に応じて前記データを破棄するマップ管理部、をさらに備える、
前記（１０）に記載の画像処理装置。
（１５）
前記画像処理装置は、前記撮像装置をさらに備える携帯端末である、
前記（１）〜（１４）のいずれか１項に記載の画像処理装置。
（１６）
前記画像取得部、前記認識部、前記アプリケーション部及び前記表示制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、前記（１）〜（１５）のいずれか１項に記載の画像処理装置。
（１７）
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得することと、
前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識処理を実行することと、
認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供することと、
前記認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳することと、
を含む画像処理方法。
（１８）
画像処理装置を制御するコンピュータを、
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る１つ以上の特徴点の位置に基づいて、前記実空間と前記撮像装置との間の相対的な位置及び姿勢を認識する認識部と、
認識される前記相対的な位置及び姿勢を用いた拡張現実アプリケーションを提供するアプリケーション部と、
前記認識部により実行される認識処理が安定化するように、前記特徴点の分布に従って、前記撮像装置を操作するユーザを誘導する誘導オブジェクトを前記入力画像に重畳する表示制御部と、
として機能させるためのプログラム。
【符号の説明】
【０１２７】
１００    画像処理装置
１０２    撮像装置
１２０    画像取得部
１３０    認識部
１６２    特徴点マップ
１７０    アプリケーション部
１８０    表示制御部
【図１】
2013225245.tif 000013
【図２】
2013225245.tif 000014
【図３】
2013225245.tif 000015
【図４】
2013225245.tif 000016
【図５】
2013225245.tif 000017
【図６】
2013225245.tif 000018
【図７】
2013225245.tif 000019
【図８】
2013225245.tif 000020
【図９】
2013225245.tif 000021
【図１０】
2013225245.tif 000022
【図１１】
2013225245.tif 000023
【図１２】
2013225245.tif 000024
【図１３】
2013225245.tif 000025
【図１４】
2013225245.tif 000026
【図１５】
2013225245.tif 000027
【図１６】
2013225245.tif 000028
【図１７】
2013225245.tif 000029
【図１８】
2013225245.tif 000030
【図１９】
2013225245.tif 000031
【図２０】
2013225245.tif 000032
【図２１】
2013225245.tif 000033
【図２２】
2013225245.tif 000034
【図２３】
2013225245.tif 000035