(57)【要約】【課題】拡張現実（ＡＲ）の特性を踏まえてＡＲコンテンツの投影を制御すること。【解決手段】撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、前記入力画像を用いて、前記実物体の位置を認識する認識部と、認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、を備える画像処理装置を提供する。【選択図】図５
2013235374.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、
前記入力画像を用いて、前記実物体の位置を認識する認識部と、
認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、
を備える画像処理装置。
【請求項２】
前記投影制御部は、前記投影の状態が基準状態に維持されるように、前記投影装置の固有の制御パラメータを制御する、請求項１に記載の画像処理装置。
【請求項３】
前記画像処理装置は、前記基準状態をユーザに調整させるためのユーザインタフェース部、をさらに備える、請求項２に記載の画像処理装置。
【請求項４】
前記制御パラメータは、投影スケールである、請求項２に記載の画像処理装置。
【請求項５】
前記投影制御部は、前記投影装置と前記実物体との間の距離の変動に関わらず、前記投影の状態が前記基準状態に維持されるように、前記投影スケールを制御する、請求項４に記載の画像処理装置。
【請求項６】
前記投影制御部は、前記距離の減少に応じて、前記投影スケールを拡大する、請求項５に記載の画像処理装置。
【請求項７】
前記投影制御部は、前記距離の増加に応じて、前記投影スケールを縮小する、請求項５に記載の画像処理装置。
【請求項８】
前記画像処理装置は、前記投影スケールの拡大又は縮小に応じて、投影される仮想オブジェクトの投影アングルに対する相対的なサイズを変化させるオブジェクト制御部、をさらに備える、請求項６に記載の画像処理装置。
【請求項９】
前記制御パラメータは、フォーカス位置であり、
前記投影制御部は、前記投影装置と前記実物体との間の距離の変動に関わらず、投影される仮想オブジェクトのフォーカス状態が維持されるように、前記フォーカス位置を制御する、
請求項２に記載の画像処理装置。
【請求項１０】
前記投影制御部は、所定のユーザ入力が検出されるまでの間、ユーザによる前記制御パラメータの調整に従って前記投影の状態を変化させ、前記所定のユーザ入力が検出された時点の前記投影の状態を前記基準状態として扱う、請求項２に記載の画像処理装置。
【請求項１１】
前記撮像装置と前記投影装置との間の相対的な位置及び姿勢は、前記画像処理装置にとって既知である、請求項１に記載の画像処理装置。
【請求項１２】
前記画像処理装置は、前記撮像装置及び前記投影装置をさらに備える携帯端末である、
請求項１に記載の画像処理装置。
【請求項１３】
前記画像取得部、前記表示制御部、前記認識部及び前記投影制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、請求項１に記載の画像処理装置。
【請求項１４】
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得することと、
前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させることと、
前記入力画像を用いて、前記実物体の位置を認識することと、
認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御することと、
を含む投影制御方法。
【請求項１５】
画像処理装置を制御するコンピュータを、
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、
前記入力画像を用いて、前記実物体の位置を認識する認識部と、
認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置、投影制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実空間に付加的な情報を重畳してユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においてユーザに呈示される情報は、テキスト、アイコン又はアニメーションなどの様々な形態の仮想オブジェクトを用いて可視化される。そして、仮想オブジェクトは、関連付けられる実物体の位置に応じて、ＡＲ空間内に配置される。仮想オブジェクトは、一般的には、携帯端末のディスプレイ、ヘッドマウントディスプレイ又は眼鏡型ディスプレイなどの画面上に表示される。しかし、これらディスプレイは、通常、単一のユーザが画像を見ることを前提として設計される。そのため、ユーザにどのようなＡＲコンテンツが提供されているかを第三者が知ることは難しい。
【０００３】
ところで、実空間に画像を投影可能な投影装置（いわゆるプロジェクタ）を有する端末もまた開発されている（例えば、下記特許文献１参照）。ＡＲコンテンツが投影装置を用いて投影されれば、どのようなＡＲコンテンツが提供されているかを第三者が知ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９３２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＡＲコンテンツを実空間内の何らかの投影面に単純に投影するだけでは、投影される仮想オブジェクトは、当該仮想オブジェクトと関連付けられる実物体とは直接的に関係のない投影面に映るだけとなる。この場合、“拡張現実感”、即ち現実世界が拡張されたかのような感覚は、第三者には与えられない。従って、ディスプレイ出力用のＡＲコンテンツと同じＡＲコンテンツを単純に投影するのではなく、拡張現実の特性を踏まえてＡＲコンテンツの投影を制御することのできる仕組みが提供されることが望ましい。
【課題を解決するための手段】
【０００６】
本開示によれば、撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、前記入力画像を用いて、前記実物体の位置を認識する認識部と、認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、を備える画像処理装置が提供される。
【０００７】
また、本開示によれば、撮像装置を用いて実空間を撮像することにより生成される入力画像を取得することと、前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させることと、前記入力画像を用いて、前記実物体の位置を認識することと、認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御することと、を含む投影制御方法が提供される。
【０００８】
また、本開示によれば、画像処理装置を制御するコンピュータを、撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、前記入力画像を用いて、前記実物体の位置を認識する認識部と、認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、として機能させるためのプログラムが提供される。
【発明の効果】
【０００９】
本開示に係る技術によれば、拡張現実の特性を踏まえてＡＲコンテンツの投影を制御することができる。
【図面の簡単な説明】
【００１０】
【図１】既存の手法におけるＡＲコンテンツの投影について説明するための説明図である。
【図２】一実施形態に係る画像処理装置の概要について説明するための説明図である。
【図３】一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図４】撮像部及び投影部の物理的配置の一例について説明するための説明図である。
【図５】一実施形態に係る画像処理装置の論理的機能の構成の一例を示すブロック図である。
【図６】コンテンツＤＢのデータ構成の一例を示す説明図である。
【図７Ａ】表示モードの第１の例について説明するための説明図である。
【図７Ｂ】表示モードの第２の例について説明するための説明図である。
【図７Ｃ】表示モードの第３の例について説明するための説明図である。
【図８】投影解像度に応じた仮想オブジェクトの制御について説明するための説明図である。
【図９Ａ】認識精度の低下を防止するための仮想オブジェクトの制御の第１の例について説明するための説明図である。
【図９Ｂ】認識精度の低下を防止するための仮想オブジェクトの制御の第２の例について説明するための説明図である。
【図１０Ａ】ユーザにより指定されるプライバシーレベルに従った仮想オブジェクトの制御の第１の例について説明するための説明図である。
【図１０Ｂ】ユーザにより指定されるプライバシーレベルに従った仮想オブジェクトの制御の第２の例について説明するための説明図である。
【図１１Ａ】投影の状態が不適切となり得る状況の第１の例について説明するための説明図である。
【図１１Ｂ】図１１Ａの状況において投影の状態を維持するための制御について説明するための説明図である。
【図１２Ａ】投影の状態が不適切となり得る状況の第２の例について説明するための説明図である。
【図１２Ｂ】図１２Ａの状況において投影の状態を維持するための制御について説明するための説明図である。
【図１３】投影制御パラメータを活用するために提供される得るユーザインタフェースの一例について説明するための説明図である。
【図１４】一実施形態に係る処理の全体的な流れの一例を示すフローチャートである。
【図１５】図１４に示した投影制御処理のより詳細な流れの一例を示すフローチャートである。
【図１６】図１５に示した投影オブジェクト制御処理のより詳細な流れの一例を示すフローチャートである。
【図１７】本開示に係る技術を応用することにより実現され得るＡＲアプリケーションの一例について説明するための説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
また、以下の順序で説明を行う。
１．概要
２．一実施形態に係る装置の構成
２−１．ハードウェア構成
２−２．プロジェクタ出力用の座標変換
２−３．機能構成
２−４．様々な表示モード
２−５．投影される仮想オブジェクトの制御
２−６．投影制御パラメータの活用
３．処理の流れ
３−１．全体的な流れ
３−２．投影制御処理
３−３．投影オブジェクト制御処理
４．応用例
５．まとめ
【００１３】
＜１．概要＞
まず、図１及び図２を用いて、本開示に係る技術の概要を説明する。
【００１４】
図１は、既存の手法におけるＡＲコンテンツの投影について説明するための説明図である。図１を参照すると、ユーザＵａが有する画像処理装置１０が示されている。画像処理装置１０は、画像を表示する表示部１１と、例えば表示部１１の背面に設けられ、実空間２０を撮像する撮像部（図示せず）と、画像を投影する投影部１３と、を備える。図１の例において、実空間２０には、実物体であるテーブル２１が存在している。画像処理装置１０の制御部（図示せず）は、撮像される画像を入力画像として受け取り、拡張現実（ＡＲ）アプリケーションを動作させる。表示部１１は、ＡＲアプリケーションによって仮想オブジェクトの重畳された画像を表示する。図１の例では、画像Ｉｍ０１が表示されており、テーブル２１の上に仮想オブジェクトＶ１があたかも存在するかのように、画像Ｉｍ０１に仮想オブジェクトＶ１が重畳されている。投影部１３は、このような画像Ｉｍ０１を実空間内の投影面（例えば、壁面、床面又は実物体の表面）に投影する。図１の例では、画像Ｉｍ０１が壁面に投影されている。
【００１５】
第三者、即ちユーザＵａ以外の人物は、投影された画像Ｉｍ０１を見ることにより、ユーザＵａにどのようなＡＲコンテンツが提供されているかを知ることができる。しかし、画像Ｉｍ０１内の仮想オブジェクトＶ１は、実空間２０内のテーブル２１の上には存在しない。従って、第三者には、“拡張現実感”、即ち現実世界が拡張されたかのような感覚は与えられない。
【００１６】
図２は、一実施形態に係る画像処理装置１００の概要について説明するための説明図である。図２を参照すると、図１と同様の実空間２０内でユーザＵａが有する画像処理装置１００が示されている。画像処理装置１００は、撮像部１０２、表示部１１０及び投影部１１２を備える。画像処理装置１００の制御部（図示せず）は、撮像部１０２により撮像される画像を入力画像として受け取り、ＡＲアプリケーションを動作させる。表示部１１０は、ＡＲアプリケーションによって仮想オブジェクトの重畳された画像（例えば、画像Ｉｍ０１）を表示する。投影部１１２は、表示部１１０により表示される画像Ｉｍ０１の代わりに、投影のために適合される画像Ｉｍ０２を投影する。図３の例では、ＡＲ空間内の仮想オブジェクトＶ１の表示位置に対応するテーブル２１上の３次元位置に、仮想オブジェクトＶ１を表現する画像Ｉｍ０２が投影されている。
【００１７】
第三者は、画像Ｉｍ０２を見ることにより、ユーザＵａと同様に、テーブル２１の上に仮想オブジェクトＶ１があたかも存在するかのような感覚を体験することができる。それにより、ユーザＵａと第三者との拡張現実感の共有が実現される。また、公共の場においてＡＲアプリケーションの対象物に仮想オブジェクトが投影されれば、カメラをかざすユーザの行動の意図を第三者に理解させることができる。それにより、第三者に不審な感情を与えることを防止し、又は第三者の興味を引き起こしてＡＲアプリケーションへの参加を促すことができる。
【００１８】
このような投影を実現するための装置の構成について、次節でより詳細に説明する。なお、拡張現実のための仮想オブジェクトの投影には、例えば、投影解像度、環境認識の精度、プライバシー、及び投影状態の安定化など、いくつかの特有の課題が伴う。それら課題への対策もまた、本開示において提供される。
【００１９】
図２では、画像処理装置１００の一例として携帯端末を示している。しかしながら、画像処理装置１００は、かかる例に限定されない。画像処理装置１００は、例えば、ＰＣ（Personal  Computer）、ＰＤＡ（Personal  Digital  Assistant）、スマートフォン、ゲーム端末、ＰＮＤ（Portable  Navigation  Device）、コンテンツプレーヤ又はデジタル家電機器などであってもよい。また、ＡＲアプリケーションは、ユーザにより操作される端末上で動作する代わりに、端末との間で通信可能な他の装置（例えば、アプリケーションサーバ）上で動作してもよい。
【００２０】
＜２．一実施形態に係る装置の構成＞
［２−１．ハードウェア構成］
図３は、一実施形態に係る画像処理装置１００のハードウェア構成の一例を示すブロック図である。図３を参照すると、画像処理装置１００は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、投影部１１２、通信部１１４、バス１１６及び制御部１１８を備える。
【００２１】
（１）撮像部
撮像部１０２は、画像を撮像するカメラモジュールである。撮像部１０２は、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を用いて実空間を撮像し、撮像画像を生成する。撮像部１０２により生成される撮像画像は、制御部１１８により実行される処理の入力画像となる。なお、撮像部１０２は、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される撮像装置が撮像部１０２として扱われてもよい。
【００２２】
（２）センサ部
センサ部１０４は、測位センサ（例えば、ＧＰＳ（Global  Positioning  System）モジュールなど）、地磁気センサ、加速度センサ及びジャイロセンサなどの様々なセンサを含み得る。測位センサは、端末の現在位置を測定する。地磁気センサは、端末の現在の姿勢（方位）を測定する。センサ部１０４において得られる測定結果は、地理的な位置に特化したデータの取得、環境認識の支援、又はユーザ入力の検出などの様々な用途のために利用されてよい。なお、センサ部１０４は、画像処理装置１００の構成から省略されてもよい。
【００２３】
（３）入力部
入力部１０６は、ユーザが画像処理装置１００を操作し又は画像処理装置１００へ情報を入力するために使用される入力デバイスである。入力部１０６は、例えば、表示部１１０の画面上へのユーザによるタッチを検出するタッチセンサを含んでもよい。その代わりに（又はそれに加えて）、入力部１０６は、マウス又はタッチパッドなどのポインティングデバイスを含んでもよい。さらに、入力部１０６は、キーボード、キーパッド、ボタン又はスイッチなどのその他の種類の入力デバイスを含んでもよい。
【００２４】
（４）記憶部
記憶部１０８は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、画像処理装置１００による処理のためのプログラム及びデータを記憶する。記憶部１０８により記憶されるデータは、例えば、撮像画像データ、センサデータ及び後に説明する様々なデータベース（ＤＢ）内のデータを含み得る。なお、本明細書で説明するプログラム及びデータの一部は、記憶部１０８により記憶されることなく、外部のデータソース（例えば、データサーバ、ネットワークストレージ又は外付けメモリなど）から取得されてもよい。
【００２５】
（５）表示部
表示部１１０は、ＬＣＤ（Liquid  Crystal  Display）、ＯＬＥＤ（Organic  light-Emitting  Diode）又はＣＲＴ（Cathode  Ray  Tube）などのディスプレイを含む表示モジュールである。表示部１１０は、例えば、画像処理装置１００により生成されるＡＲアプリケーションの画像を表示するために使用される。なお、表示部１１０もまた、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される表示装置が表示部１１０として扱われてもよい。
【００２６】
（６）投影部
投影部１１２は、液晶プロジェクタ、ＤＬＰ（Digital  Light  Processing）プロジェクタ（登録商標）又はＬＣＯＳ（Liquid  Crystal  On  Silicon）プロジェクタなどのプロジェクタモジュールである。投影部１１２は、例えば、画像処理装置１００により生成されるＡＲアプリケーションの仮想オブジェクトを実空間内の投影面に投影するために使用される。なお、投影部１１２もまた、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される投影装置が投影部１１２として扱われてもよい。
【００２７】
（７）通信部
通信部１１４は、画像処理装置１００による他の装置との間の通信を仲介する通信インタフェースである。通信部１１４は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
【００２８】
（８）バス
バス１１６は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、投影部１１２、通信部１１４及び制御部１１８を相互に接続する。
【００２９】
（９）制御部
制御部１１８は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサに相当する。制御部１１８は、記憶部１０８又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する画像処理装置１００の様々な機能を動作させる。
【００３０】
［２−２．プロジェクタ出力用の座標変換］
本実施形態において、撮像部１０２及び投影部１１２の物理的配置は予め校正されており、撮像部１０２と投影部１１２との間の相対的な位置及び姿勢が画像処理装置１００にとって既知であるものとする。図４は、撮像部１０２及び投影部１１２の物理的配置の一例を示している。
【００３１】
図４を参照すると、端末の筐体の一面に、撮像部１０２のレンズ及び投影部１１２のレンズが並置されている。撮像部１０２の光軸及び投影部１１２の光軸は、おおよそ同じ方向に向けられる。撮像部１０２のレンズの背後には、多数の撮像素子が配設される撮像面ＩＰが設置される。画像処理装置１００により入力画像内で認識される実物体の位置（及び姿勢）は、撮像面の座標系Ｕｃ（ｕ，ｖ）で２次元的に表現され、及び実空間の座標系Ｘｃ（ｘｃ，ｙｃ，ｚｃ）で３次元的に表現される。２次元座標系Ｕｃと３次元座標系Ｘｃとの間の関係は、例えば、いわゆるピンホールモデルに従って幾何的に与えられる。ＡＲアプリケーションは、実物体の位置及び姿勢に基づいて、仮想オブジェクトの３次元的な配置を決定する。決定された３次元的な配置から、仮想オブジェクトの２次元画像を生成することができる。ここで、投影部１１２が撮像部１０２と物理的に完全に同じ位置には設置されない点に留意すべきである。ディスプレイ出力用に生成される２次元画像をそのまま投影部１１２に投影させるのは、適切でない。そこで、画像処理装置１００は、座標変換パラメータＴｃ＿ｐ及びＲｃ＿ｐを用いて、ディスプレイ出力用の仮想オブジェクトの配置Ｖｃを、プロジェクタ出力用の配置Ｖｐに変換する。座標変換パラメータは、例えば、撮像部１０２を基準とする座標系Ｘｃ（ｘｃ，ｙｃ，ｚｃ）と投影部１１２を基準とする座標系Ｘｐ（ｘｐ，ｙｐ，ｚｐ）との間の変換（並進、回転及びスケーリング）を表す座標変換行列であってよい。座標変換パラメータの既定値は、撮像部１０２と投影部１１２との間の校正された相対的な位置関係に応じて予め決定され、例えば記憶部１０８により記憶される。
【００３２】
なお、投影部１１２は、一般的なプロジェクタモジュールと同様、投影スケール（ズーム率）及びフォーカス位置を調整するための固有の機構を有し得る。例えば、投影部１１２の当該機構が駆動されることにより投影スケールが変更されると、座標変換パラメータは、投影スケールの変化量に応じて再計算され得る。後に詳細に説明するように、画像処理装置１００は、投影の状態を良好に保つために、これら機構をも活用し得る。
【００３３】
［２−３．機能構成］
図５は、図３に示した画像処理装置１００の記憶部１０８及び制御部１１８により実現される論理的機能の構成の一例を示すブロック図である。図５を参照すると、画像処理装置１００は、画像取得部１２０、データ取得部１３０、環境認識部１４０、環境データベース（ＤＢ）１４５、オブジェクト制御部１５０、コンテンツＤＢ１５５、表示制御部１６０、投影制御部１７０及びユーザインタフェース部１８０を有する。
【００３４】
（１）画像取得部
画像取得部１２０は、撮像部１０２により生成される撮像画像を入力画像として取得する。画像取得部１２０により取得される入力画像は、実空間を映した画像である。当該入力画像は、静止画であってもよく、又は動画を構成する各フレームであってもよい。画像取得部１２０は、取得した入力画像を、環境認識部１４０及び表示制御部１６０へ出力する。
【００３５】
（２）データ取得部
データ取得部１３０は、環境の認識、及び仮想オブジェクトの表示又は投影の制御などの様々な目的のために使用されるデータを取得する。例えば、データ取得部１３０は、センサ部１０４により生成されるセンサデータ（例えば、位置データ及び姿勢データ）を取得してもよい。また、データ取得部１３０は、端末の現在位置の近傍に存在する実物体に関するデータを、端末の現在位置を用いて外部のデータサーバに問合せを行うことにより取得してもよい。
【００３６】
（３）環境認識部
環境認識部１４０は、入力画像に映る１つ以上の実物体を認識する。また、環境認識部１４０は、認識した実物体と撮像部１０２との間の相対的な位置関係（位置及び姿勢）を認識する。そして、環境認識部１４０は、環境認識の結果を環境ＤＢ１４５に記憶させる。
【００３７】
例えば、環境認識部１４０は、各実物体の識別子と実空間内の位置とを関連付けるマップデータを取得する。また、環境認識部１４０は、センサデータに基づいて撮像部１０２の位置及び姿勢を認識する。そして、環境認識部１４０は、撮像部１０２の位置及び姿勢から推定されるカメラアングルをマップデータと照合することにより、カメラアングル内のどこに実物体が存在するかを認識し得る。
【００３８】
その代わりに、環境認識部１４０は、より高度な環境認識技術を活用してもよい。例えば、環境認識部１４０は、実物体の特徴量を記述するモデルデータを取得する。そして、環境認識部１４０は、入力画像から抽出される特徴量とモデルデータにより記述される特徴量とを照合することにより、入力画像のどこにどのような姿勢で実物体が映っているかを認識し得る。公知の環境認識技術とは、例えば、ＳＵＲＦ法（H.Bay,  A.Ess,  T.Tuytelaars  and  L.V.Gool,  “Speeded-Up  Robust  Features  (SURF)”,  Computer  Vision  -  ECCV，2006参照）又はＳＬＡＭ法（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参照）などであってよい。
【００３９】
環境ＤＢ１４５は、環境認識部１４０による環境認識の結果を記憶するデータベースである。環境ＤＢ１４５により記憶される環境認識の結果は、例えば、撮像部１０２の位置及び姿勢を基準とする、認識された実物体の相対的な位置及び姿勢を含み得る。実物体の位置及び姿勢は、図４を用いて説明した３次元座標系Ｘｃで表現されてよい。
【００４０】
（４）オブジェクト制御部
オブジェクト制御部１５０は、環境認識部１４０により認識される実物体の位置及び姿勢に従って、当該実物体と関連付けられる拡張現実のための仮想オブジェクトの配置を決定する。より具体的には、オブジェクト制御部１５０は、例えば、認識された実物体と関連付けられている仮想オブジェクトのデータをコンテンツＤＢ１５５から取得する。また、オブジェクト制御部１５０は、当該実物体の位置及び姿勢を、環境ＤＢ１４５から取得する。そして、オブジェクト制御部１５０は、実物体の位置及び姿勢に従って、仮想オブジェクトの配置を決定する（図２の例では、テーブル２１の上に仮想オブジェクトＶ１が配置されている）。そして、オブジェクト制御部１５０は、表示すべき仮想オブジェクトの識別子とその３次元的な配置とを表示制御部１６０へ出力する。
【００４１】
また、オブジェクト制御部１５０は、後に詳細に説明する表示モードに応じて、仮想オブジェクトを変化させる。ある表示モードにおいて、仮想オブジェクトを重畳するための画像は、表示制御部１６０から表示部１１０へ出力される。他の表示モードにおいて、仮想オブジェクトを重畳するための画像は、表示制御部１６０から投影部１１２へ出力される。オブジェクト制御部１５０は、例えば、出力先が投影部１１２である場合に、出力先が表示部１１０である場合よりも簡易な仮想オブジェクトを、投影される仮想オブジェクトとして選択してもよい。また、オブジェクト制御部１５０は、出力先が投影部１１２である場合に、仮想オブジェクトの少なくとも１つの表示属性を、投影の解像度に応じて調整してもよい。また、オブジェクト制御部１５０は、投影される仮想オブジェクトを原因として環境認識部１４０による認識処理の精度が低下すると判定される場合に、当該仮想オブジェクトの少なくとも１つの表示属性を調整し、又は当該仮想オブジェクトの位置を移動させてもよい。さらに、オブジェクト制御部１５０は、投影される情報について予め設定され又は動的に指定されるプライバシーレベルに従って、仮想オブジェクトにより示される情報を変化させてもよい。
【００４２】
コンテンツＤＢ１５５は、各実物体と関連付けられる仮想オブジェクトについてのデータを蓄積しているデータベースである。図６は、コンテンツＤＢ１５５のデータ構成の一例を示す説明図である。図６を参照すると、コンテンツＤＢ１５５は、コンテンツＩＤ１５５ａ、カテゴリ１５５ｂ、関連物体１５５ｃ、既定の配置１５５ｄ、表示データ１５５ｅ及び投影データ１５５ｆという６つのデータ項目を有する。
【００４３】
コンテンツＩＤ１５５ａは、各仮想オブジェクトを一意に識別するための識別子である。カテゴリ１５５ｂは、各仮想オブジェクトの種類を表す。関連物体１５５ｃは、各仮想オブジェクトと関連付けられる実物体の識別子である。１つの実物体に、複数の仮想オブジェクトが関連付けられてもよい。既定の配置１５５ｄは、各仮想オブジェクトの既定の配置（関連付けられる実物体に対する相対的な位置、姿勢及びスケール）を表す。表示データ１５５ｅは、各仮想オブジェクトのディスプレイ出力用のデータの実体である。投影データ１５５ｆは、各仮想オブジェクトのプロジェクタ出力用のデータの実体である。個々のデータは、テキスト形式、イメージ形式又は外部のデータソースへのリンク形式など、いかなる形式で記述されてもよい。
【００４４】
図６の例において、コンテンツＩＤ＝“Ｃ４”を有する仮想オブジェクトのディスプレイ出力用のデータがレストランについてのレビューコメントのテキストを含む一方で、当該仮想オブジェクトのプロジェクタ出力用のデータはレーティングに対応する数の星印のアイコンイメージのみを含む。このように、プロジェクタ出力用のＡＲコンテンツをディスプレイ出力用のＡＲコンテンツよりも簡易な内容とすることで、表示画像よりも通常低い解像度しか期待できない投影画像においてＡＲコンテンツを判別することが困難となることを避けることができる。
【００４５】
図６から理解されるように、投影データ１５５ｆは、１つの仮想オブジェクトについて複数のデータの実体を格納することができる。これら複数のデータは、例えば、異なる投影解像度又は異なるプライバシーレベルに対応するデータであってよい。
【００４６】
オブジェクト制御部１５０は、このようなデータ構成を有するコンテンツＤＢ１５５を用いて、表示され又は投影される仮想オブジェクトを制御する。なお、図６の例のように１つの仮想オブジェクトについて複数のデータが予めデータベース内に記憶される代わりに、オブジェクト制御部１５０は、１つのデータから他のデータを動的に生成してもよい。オブジェクト制御部１５０による仮想オブジェクトの制御について、後にさらに説明する。
【００４７】
（５）表示制御部
表示制御部１６０は、第１の表示モードにおいて、仮想オブジェクトを重畳するための出力画像を表示部１１０へ出力し、表示部１１０の画面上に当該出力画像を表示させる。また、表示制御部１６０は、第２の表示モードにおいて、仮想オブジェクトを重畳するための出力画像を投影部１１２へ出力し、投影部１１２に実空間内の投影面へ当該出力画像を投影させる。表示部１１０及び投影部１１２へ並列的に画像が出力される第３の表示モードがサポートされてもよい。表示制御部１６０によりサポートされ得るこれら表示モードについて、後に図面を用いてさらに説明する。
【００４８】
仮想オブジェクトのＡＲ空間内の３次元的な配置は、環境認識の結果とコンテンツＤＢ１５５内のデータ（例えば、既定の配置１５５ｄ）とに基づいて、オブジェクト制御部１５０により決定される。表示制御部１６０は、例えばピンホールモデルに従って、仮想オブジェクトの３次元的な配置から、仮想オブジェクトの２次元画像を生成する。表示制御部１６０から表示部１１０へ出力される出力画像は、例えば、当該２次元画像を入力画像に重畳することにより生成され得る。また、表示制御部１６０は、上述した座標変換パラメータを用いて、仮想オブジェクトの配置を、投影部１１２への出力のために変換する。表示制御部１６０から投影部１１２へ出力される出力画像は、当該変換後の配置に従って生成される仮想オブジェクトの２次元画像であってよい。
【００４９】
（６）投影制御部
投影制御部１７０は、環境認識部１４０により認識される撮像部１０２の位置又は姿勢に基づいて、投影部１１２による投影を制御する。より具体的には、投影制御部１７０は、投影部１１２固有の制御パラメータ（以下、投影制御パラメータという）を通じて調整され得る基準状態に投影の状態が維持されるように、投影を制御する。以下の説明において、投影制御パラメータは、図４を用いて説明した投影スケール及びフォーカス位置を含むものとする。なお、かかる例に限定されず、投影制御パラメータは、台形補正及び輝度などのその他の種類のパラメータを含んでもよい。
【００５０】
投影の状態とは、投影面上の仮想オブジェクトの解像度、サイズ、完全性及びフォーカス状態などを含み得る。
【００５１】
例えば、他の条件が一定であれば、投影部１１２と投影面を有する実物体との間の距離が増加するにつれて、投影解像度は低下する。そこで、投影制御部１７０は、上記距離の増加に従って投影スケールを縮小することにより、投影解像度の低下を回避する。また、投影部１１２と投影面を有する実物体との間の距離が減少すると、仮想オブジェクトが投影アングル内に収まりきらず、仮想オブジェクトが欠損する（即ち、仮想オブジェクトの完全性が失われる）可能性がある。そこで、投影制御部１７０は、上記距離の減少に従って投影スケールを拡大することにより、仮想オブジェクトの欠損を回避する。いずれのケースでも、投影制御部１７０は、オブジェクト制御部１５０と連携することにより、投影面上の仮想オブジェクトの実サイズ（投影サイズ）の拡大又は縮小を相殺するように、仮想オブジェクトの投影アングルに対する相対的なサイズを変化させる。
【００５２】
また、仮想オブジェクトが鮮明に投影されるように一旦フォーカス位置が調整されたとしても、その後に投影部１１２と実物体との間の距離が変化すれば、フォーカスはズレた状態となり得る。そこで、投影制御部１７０は、上記距離の変動に関わらず、投影される仮想オブジェクトのフォーカス状態が維持されるように、フォーカス位置を制御する。
【００５３】
本実施形態において、投影制御部１７０による投影の制御は、調整フェーズと維持フェーズという２つのフェーズを含む。調整フェーズにおいて、投影の状態は、必ずしも維持されない。むしろ、ユーザによる投影制御パラメータの調整に従って、投影制御部１７０は、投影の状態を変化させる。例えば、ユーザは、ユーザインタフェースを介して投影スケールを調整することにより、仮想オブジェクトの投影サイズを拡大し又は縮小することができる。また、ユーザは、ユーザインタフェースを介してフォーカス位置を調整することにより、仮想オブジェクトフォーカス状態を変更することができる。所定のユーザ入力が検出されると、投影の制御は、調整フェーズから維持フェーズへと遷移する。上記ユーザ入力の検出の時点での投影の状態は、維持フェーズにおいて基準状態として扱われる。上記ユーザ入力の検出の時点での投影制御パラメータの値は、制御の基準値として保持され得る。維持フェーズにおいて、投影制御部１７０は、例えば投影部１１２と実物体との間の距離の変動に関わらず、投影の状態が基準状態に維持されるように、投影スケール及びフォーカス位置を制御する。なお、投影制御パラメータの既定値を制御の基準値として用いることにより、調整フェーズがスキップされてもよい。
【００５４】
投影制御部１７０は、このようにユーザにより調整され又は動的に制御される投影制御パラメータの値を投影部１１２に設定し、投影部１１２の固有の機構を駆動する。それにより、上述した投影の状態が維持される。投影制御部１７０により実行されるこのような投影制御の例について、後に図面を用いてさらに説明する。
【００５５】
（７）ユーザインタフェース部
ユーザインタフェース部１８０は、ＡＲアプリケーションのための様々なユーザインタフェース（ＵＩ）をユーザに提供する。例えば、ユーザインタフェース部１８０により提供されるＵＩは、複数のモードの間で表示モードを切り替えるためのＵＩ、プライバシーレベルをユーザに指定させるためのＵＩ、投影制御パラメータをユーザに調整させるためのＵＩ、及び投影制御のフェーズを遷移させるためのＵＩを含み得る。各ＵＩは、例えば、画面上に表示されるグラフィカルユーザインタフェース（ＧＵＩ）であってもよく、又はタッチセンサを用いて実現されるタッチＵＩであってもよい。各ＵＩは、スイッチ若しくはボタンなどの物理的なＵＩ、又は音声コマンドを認識することにより実現される音声ＵＩであってもよい。
【００５６】
［２−４．様々な表示モード］
図７Ａ〜図７Ｃは、表示制御部１６０によりサポートされ得る表示モードの３つの例をそれぞれ示している。
【００５７】
図７Ａに示した表示モードＭ１は、ディスプレイオンリーモードである。表示制御部１６０は、表示モードＭ１を指定するモード切替信号ＳＷが入力されると、ディスプレイオンリーモードに遷移し得る。モード切替信号ＳＷは、所定のユーザ入力に応じて生成され得る。ディスプレイオンリーモードにおいて、表示制御部１６０は、仮想オブジェクトを重畳するための画像を表示部１１０へ出力する一方で、投影部１１２へ画像を出力しない。
【００５８】
図７Ｂに示した表示モードＭ２は、デュアルモードである。表示制御部１６０は、表示モードＭ２を指定するモード切替信号ＳＷが入力されると、デュアルモードに遷移し得る。デュアルモードにおいて、表示制御部１６０は、仮想オブジェクトを重畳するための画像を表示部１１０へ出力すると共に、同じ仮想オブジェクト又は異なる仮想オブジェクトを重畳するための画像を、投影部１１２へ出力する。
【００５９】
図７Ｃに示した表示モードＭ３は、プロジェクタオンリーモードである。表示制御部１６０は、表示モードＭ３を指定するモード切替信号ＳＷが入力されると、プロジェクタオンリーモードに遷移し得る。プロジェクタオンリーモードにおいて、表示制御部１６０は、仮想オブジェクトを重畳するための画像を投影部１１２へ出力する一方で、表示部１１０へ画像を出力しない。
【００６０】
なお、これら表示モードは例に過ぎない。即ち、他の追加的な表示モードがサポートされてもよく、又はいずれかの表示モードがサポートされなくてもよい。
【００６１】
［２−５．投影される仮想オブジェクトの制御］
上述したように、オブジェクト制御部１５０は、画像の出力先が表示部１１０及び投影部１１２のいずれであるかに応じて、表示され又は投影される仮想オブジェクトを変化させる。なお、本明細書において、「仮想オブジェクトを変化させる」との用語は、ある仮想オブジェクトの代わりに他の仮想オブジェクトを用いることに加えて、ある仮想オブジェクトの配置、属性又は当該仮想オブジェクトにより示される情報を変更することをも含むものとする。
【００６２】
（１）簡易な仮想オブジェクトの投影
例えば、オブジェクト制御部１５０は、出力先が投影部１１２である場合には、出力先が表示部１１０である場合よりも簡易な仮想オブジェクトを、投影される仮想オブジェクトとして選択してよい。簡易な仮想オブジェクトとは、例えば、ＡＲアプリケーションにおいて注目されている場所（表示部１１０の画面上で仮想オブジェクトが重畳される場所）を第三者に単に通知するだけの標識（indication）であってもよい。当該標識は、例えば、仮想オブジェクトと関連付けられる実物体を囲む枠又は当該実物体を指し示すアイコンなどであってよい。このような簡易な仮想オブジェクトの投影によって、ＡＲアプリケーションのユーザがどの実物体に注目しているかを、第三者が知ることができる。また、ＡＲコンテンツの詳細を第三者に秘匿することにより、ユーザのプライバシーを保護することができる。
【００６３】
（２）投影解像度に応じた制御
また、オブジェクト制御部１５０は、出力先が投影部１１２である場合に、投影される仮想オブジェクトを、投影解像度に応じて変化させてもよい。
【００６４】
図８は、投影解像度に応じた仮想オブジェクトの制御について説明するための説明図である。図８を参照すると、実物体２２により近い位置ＰＴ０１に位置する画像処理装置１００、及び実物体２２からより遠い位置ＰＴ０２に位置する画像処理装置１００が示されている。実物体２２の一面は、仮想オブジェクトの投影面である。一般的に、投影面からの距離がより大きければ、投影解像度はより低くなる。本実施形態においても、特に調整フェーズでは、投影解像度を維持するように投影スケールが制御されないため、投影解像度の低下は避けられない。そして、仮想オブジェクトのグラフィックとしての空間解像度を投影解像度が下回ると、投影される仮想オブジェクトの細部が視認困難となる（例えば、文字つぶれが発生し得る）可能性がある。そこで、オブジェクト制御部１５０は、例えば環境認識部１４０による環境認識の結果を用いて、投影面を有する実物体と投影部１１２との間の距離を計算し、計算した距離に基づいて、投影解像度を推定する。上記距離と投影解像度との間のマッピングを示すデータが、予め記憶されていてもよい。そして、オブジェクト制御部１５０は、推定した投影解像度が仮想オブジェクトの空間解像度を下回る場合に、投影される仮想オブジェクトを変化させる。例えば、オブジェクト制御部１５０は、仮想オブジェクトのポリゴン数を削減し、又は複雑なグラフィックを有する仮想オブジェクトを簡易なアイコンなどに切り替えてもよい。図８の例では、仮想オブジェクトＶ２ｂが、位置ＰＴ０２に位置する画像処理装置１００により実物体２２へ投影されている。仮想オブジェクトＶ２ｂは、例えばポリゴンが削減された結果として、位置ＰＴ０１に位置する画像処理装置１００により投影される仮想オブジェクトＶ２ａよりも低い空間解像度を有する。
【００６５】
（３）認識精度の低下の防止
また、オブジェクト制御部１５０は、投影される仮想オブジェクトを原因として環境認識部１４０による認識処理の精度が低下すると判定される場合に、当該仮想オブジェクトの少なくとも１つの表示属性を調整し、又はその位置を移動させてもよい。ここでの表示属性とは、例えば、仮想オブジェクトの輝度、色又はコントラストを含み得る。
【００６６】
図９Ａは、認識精度の低下を防止するための仮想オブジェクトの制御の第１の例について説明するための説明図である。図９Ａを参照すると、表示部１１０により画面上に表示される画像Ｉｍ３１、及び投影部１１２により投影される画像Ｉｍ３２が示されている。画像Ｉｍ３１において、実物体２３に仮想オブジェクトＶ３ａが重畳されている。また、画像Ｉｍ３２により、実空間内の実物体２３に仮想オブジェクトＶ３ｂが重畳される。投影される仮想オブジェクトＶ３ｂの輝度は、画面上に表示される仮想オブジェクトＶ３ａの輝度よりも低減される。それにより、実物体２３に投影光が当たる結果として環境認識部１４０による実物体２３の認識が困難となることを防止することができる。オブジェクト制御部１５０は、輝度の代わりに、投影される仮想オブジェクトのコントラストを低減してもよく、又は、いわゆるカラーイコライゼーション処理によって仮想オブジェクトの色を投影面の色に合わせて調整してもよい。
【００６７】
図９Ｂは、認識精度の低下を防止するための仮想オブジェクトの制御の第２の例について説明するための説明図である。図９Ｂを参照すると、図９Ａと同様に画面上に表示される画像Ｉｍ３１、及び投影部１１２により投影される画像Ｉｍ３３が示されている。画像Ｉｍ３３により、実物体２３ではなく、実物体２３の近傍の投影面に仮想オブジェクトＶ３ｃが投影されている。即ち、仮想オブジェクトＶ３ｃの位置は、画面上に表示される仮想オブジェクトＶ３ａの表示位置から移動されている。この場合には、実物体２３に投影光が当たることが回避されるため、環境認識部１４０による実物体２３の認識が困難となることを防止することができる。なお、オブジェクト制御部１５０は、例えば画面上でのフリック又はドラッグなどのユーザ入力に応じて、仮想オブジェクトＶ３ｃの位置を移動させてもよい。
【００６８】
（４）プライバシーレベルに従った制御
また、オブジェクト制御部１５０は、出力先が投影部１１２である場合に、投影部１１２により投影される情報について予め設定され又は動的に指定されるプライバシーレベルに従って、投影される仮想オブジェクトを変化させてもよい。
【００６９】
図１０Ａ及び図１０Ｂは、ユーザにより指定されるプライバシーレベルに従った仮想オブジェクトの制御の２つの例を示している。図１０Ａの左には、実物体２４を撮像する画像処理装置１００が示されている。実物体２４は、カレンダーである。表示部１１０の画面上において、カレンダー２４に仮想オブジェクトＶ４ａが重畳されている。仮想オブジェクトＶ４ａは、カレンダー２４に記載された日付に関連付けられるスケジュールアイテムの詳細情報（例えば、ミーティングの場所、参加者など）を示している。一方、実空間内のカレンダー２４には仮想オブジェクトＶ４ｃが投影されている。仮想オブジェクトＶ４ｃは、カレンダー２４に記載された日付に関連付けられるスケジュールアイテムが存在することを単に通知する簡易なアイコンである。
【００７０】
ここで、例えばユーザインタフェース部１８０により所定のユーザ入力が検出されると、プライバシーレベルの設定が変更される。図１０Ａの例では、タッチジェスチャの一種であるピンチアウトが検出されている。本実施形態において、ピンチアウトは、プライバシーレベルの引き下げを意味し得る。ピンチアウトの検出に応じて、オブジェクト制御部１５０は、仮想オブジェクトＶ４ｃを仮想オブジェクトＶ４ｂに変更する。図１０Ａの右に示すカレンダー２４には、仮想オブジェクトＶ４ｂが投影されている。仮想オブジェクトＶ４ｂは、カレンダー２４に記載された日付に関連付けられるスケジュールアイテムの件名（例えば、“ミーティング”）を示している。図示された操作とは逆に、オブジェクト制御部１５０は、例えば、ピンチインの検出に応じてプライバシーレベルを引き上げ、仮想オブジェクトＶ４ｂを仮想オブジェクトＶ４ｃに変更してもよい。
【００７１】
図１０Ｂの左には、カレンダー２４を撮像する画像処理装置１００が再び示されている。表示部１１０の画面上において、カレンダー２４に仮想オブジェクトＶ４ａが重畳されている。一方、実空間内のカレンダー２４には仮想オブジェクトＶ４ｂが投影されている。画面の右端には、ユーザがプライバシーレベルを指定するためのＧＵＩであるスライダＵＩ０が表示されている。スライダＵ１０がユーザにより下方へドラッグされ、又はタップされると、プライバシーレベルの設定が引き下げられる。それに応じて、オブジェクト制御部１５０は、仮想オブジェクトＶ４ｂを仮想オブジェクトＶ４ａに変更する。図１０Ｂの右に示すカレンダー２４には、画面上に表示されているものと同じ仮想オブジェクトＶ４ａが投影されている。
【００７２】
このようなプライバシーレベルに従った制御によれば、ＡＲアプリケーションのユーザが、第三者とのＡＲコンテンツの共有レベルをプライバシーの観点で柔軟に指定することが可能となる。
【００７３】
本項で説明した投影される仮想オブジェクトの様々な制御は、どのような形で互いに組み合わされてもよい。
【００７４】
［２−６．投影制御パラメータの活用］
本開示に係る技術が携帯端末を用いて実現される場合、携帯端末の位置及び姿勢は、ユーザの意図に沿って又はその意図に反して、ＡＲアプリケーションの動作中に変動し得る。そして、環境認識部１４０による認識処理が適切に動作している限り、端末の位置及び姿勢の変動は正確に認識され、仮想オブジェクトの表示の状態は正常に保たれる。しかし、端末の位置及び姿勢の変動が正確に認識されていても、ある条件下で、仮想オブジェクトの投影の状態は不適切となり得る。そこで、投影制御部１７０は、上述したように、投影部１１２固有の投影制御パラメータを活用し、投影の状態が適切に維持されるように投影を制御する。
【００７５】
図１１Ａは、投影の状態が不適切となり得る状況の第１の例について説明するための説明図である。図１１Ａの左には、実物体２５を撮像する画像処理装置１００が示されている。実物体２５には、仮想オブジェクトＶ５ａが投影されている。この時点で、投影スケールＳｃの値は、Ｓｃ＝ｓｃ１であるものとする。投影アングルＰＡ１は、投影スケールの値に対応する。図１１Ａの右には、実物体２５からより遠くに位置する画像処理装置１００が示されている。環境認識部１４０は、実物体２５との間の距離の変化を認識する。それに応じて、オブジェクト制御部１５０は、投影アングルＰＡ１に対する仮想オブジェクトの相対的なサイズを縮小する。結果的に、実物体２５には、仮想オブジェクトＶ５ｂが投影されている。仮想オブジェクトＶ５ｂの投影サイズ（投影面上での実サイズ）は、仮想オブジェクトＶ５ａの投影サイズと等しい。しかし、投影アングルに対する仮想オブジェクトの相対的なサイズの縮小は、投影解像度の低下を招く。そして、仮想オブジェクトＶ５ｂが複雑なグラフィックを有する場合には、そのグラフィックの細部が視認困難となる（例えば、文字つぶれが起こる、など）可能性がある。特に、上述したような仮想オブジェクトの切り替えなどの対策が行われないようなケースでは、こうした投影解像度の低下は避けられることが望ましい。
【００７６】
図１１Ｂは、図１１Ａの状況において投影の状態を適切に維持するための制御について説明するための説明図である。図１１Ｂの左には、図１１Ａの右に示した通りの投影解像度が低下した状況が、再び示されている。図１１Ｂの右の画像処理装置１００の実物体２５からの距離は、図１１Ａの左における当該距離と等しい。投影制御部１７０は、環境認識の結果に基づいて取得される距離の増加に応じて、投影スケールＳｃの値を、ｓｃ１からｓｃ２へ縮小する。それに応じて、投影アングルＰＡ２は、投影アングルＰＡ１よりも狭くなる。投影アングルに対する仮想オブジェクトの相対的なサイズは、拡大される。結果的に、実物体２５には、仮想オブジェクトＶ５ｃが投影されている。仮想オブジェクトＶ５ｃの投影サイズは、仮想オブジェクトＶ５ａ及びＶ５ｂの投影サイズと等しい。投影アングルに対する仮想オブジェクトの相対的なサイズは拡大されるため、投影解像度は、距離の変動に関わらず維持される。
【００７７】
図１２Ａは、投影の状態が不適切となり得る状況の第２の例について説明するための説明図である。図１２Ａの左には、実物体２６を撮像する画像処理装置１００が示されている。実物体２６には、仮想オブジェクトＶ６ａが投影されている。この時点で、投影スケールＳｃの値は、Ｓｃ＝ｓｃ１であるものとする。投影アングルＰＡ１は、投影スケールの値に対応する。図１２Ａの右には、実物体２６からより近くに位置する画像処理装置１００が示されている。環境認識部１４０は、実物体２６との間の距離の変化を認識する。それに応じて、オブジェクト制御部１５０は、投影アングルＰＡ１に対する仮想オブジェクトの相対的なサイズを拡大する。結果的に、実物体２６には、仮想オブジェクトＶ６ｂが投影されている。しかし、仮想オブジェクトＶ６ｂは投影アングルＰＡ１内に収まりきらず、投影された仮想オブジェクトＶ６ｂの一部は欠損している。
【００７８】
図１２Ｂは、図１２Ａの状況において投影の状態を適切に維持するための制御について説明するための説明図である。図１２Ｂの左には、図１２Ａの右に示した通りの仮想オブジェクトの一部が欠損した状況が、再び示されている。図１２Ｂの右の画像処理装置１００の実物体２６からの距離は、図１２Ｂの左における当該距離と等しい。投影制御部１７０は、環境認識の結果に基づいて取得される距離の減少に応じて、投影スケールＳｃの値を、ｓｃ１からｓｃ３へ拡大する。それに応じて、投影アングルＰＡ３は、投影アングルＰＡ１よりも広くなる。投影アングルに対する仮想オブジェクトの相対的なサイズは、縮小される。結果的に、実物体２６には、仮想オブジェクトＶ６ｃが投影されている。仮想オブジェクトＶ６ｃの投影サイズは、仮想オブジェクトＶ６ａの投影サイズと等しく、かつ仮想オブジェクトＶ６ｃの完全性は維持されている（即ち、仮想オブジェクトＶ６ｃは欠損していない）。
【００７９】
投影制御部１７０は、維持フェーズにおいて、このように投影スケールを制御することにより、投影の状態を適切な状態に維持する。ここでの適切な状態とは、典型的には、調整フェーズにおけるユーザによる調整を経て決定される基準の状態であってよい。その代わりに、例えばコンテンツＤＢ１５５により予め記憶される既定の状態が、基準の状態として使用されてもよい。
【００８０】
図１３は、投影制御パラメータを活用するために提供される得るユーザインタフェースの一例について説明するための説明図である。図１３の左には、調整フェーズにおいて画像処理装置１００の画面上に表示されるスライダＵＩ１、スライダＵＩ２、ボタンＵＩ３及びボタンＵＩ４が示されている。スライダＵＩ１は、投影スケールＳｃを調整するためのユーザインタフェースである。ユーザは、スライダＵＩ１を左右にスライドさせることにより、投影スケールＳｃを拡大し又は縮小することができる。それにより、仮想オブジェクトの投影解像度及び投影サイズは変化し得る。スライダＵＩ２は、フォーカス位置Ｆｃを調整するためのユーザインタフェースである。ユーザは、スライダＵＩ２を左右にスライドさせることにより、フォーカス位置Ｆｃを奥行方向に動かすことができる。それにより、投影される仮想オブジェクトの鮮明度（ボケの程度）は変化し得る。ボタンＵＩ３及びボタンＵＩ４は、いずれもフェーズを維持フェーズへ遷移させるためのユーザインタフェースである。ボタンＵＩ３へのタッチが検出されると、投影制御部１７０は、その検出の時点の投影制御パラメータの値を基準値として記憶し、当該時点の投影の状態（即ち、基準状態）が維持されるように、その後の投影制御パラメータの値を制御する。ボタンＵＩ４へのタッチが検出されると、投影制御部１７０は、投影制御パラメータの既定の値をデータベースから読み出し、既定の投影の状態（即ち、基準状態）が維持されるように、その後の投影制御パラメータの値を制御する。図１３の右には、維持フェーズにおいて画像処理装置１００の画面上に表示されるボタンＵＩ５が示されている。ボタンＵＩ５は、フェーズを調整フェーズへ遷移させるためのユーザインタフェースである。
【００８１】
なお、調整フェーズにおいて、許容範囲を超えるパラメータ値がユーザにより指定された場合には、ユーザインタフェース部１８０は、警告メッセージを表示し又は投影してもよい。また、維持フェーズにおいて、投影の状態を維持し得ない位置に端末が移動した場合にも、ユーザインタフェース部１８０は、警告メッセージを表示し又は投影してよい。
【００８２】
図１３に示したユーザインタフェースは一例に過ぎない。図示されたユーザインタフェースの代わりに、他の種類のＧＵＩ、タッチＵＩ、物理的なＵＩ、又は音声ＵＩなどが使用されてもよい。
【００８３】
＜３．処理の流れ＞
次に、図１４〜図１６を用いて、一実施形態に係る処理の流れについて説明する。
【００８４】
［３−１．全体的な流れ］
図１４は、一実施形態に係る処理の全体的な流れの一例を示すフローチャートである。
【００８５】
図１４を参照すると、まず、画像取得部１２０は、撮像部１０２により生成される撮像画像を入力画像として取得する（ステップＳ１０）。次に、環境認識部１４０は、入力画像に映る１つ以上の実物体を認識する（ステップＳ１５）。その後の処理は、環境認識部１４０が少なくとも１つの実物体の認識に成功した場合に実行される（ステップＳ２０）。
【００８６】
実物体が認識された場合に、環境認識部１４０は、さらに、認識した実物体と撮像部１０２との間の相対的な位置関係（位置及び姿勢）を認識する（ステップＳ３０）。次に、オブジェクト制御部１５０は、認識された実物体と関連付けられている仮想オブジェクトのデータを、コンテンツＤＢ１５５から取得する（ステップＳ３５）。次に、オブジェクト制御部１５０は、実物体の位置及び姿勢に従って、仮想オブジェクトをＡＲ空間内に配置する（ステップＳ４０）。
【００８７】
その後の処理は、その時点の表示モードに依存して切り替えられる。表示モードがディスプレイオンリーモード又はデュアルモードであれば、ステップＳ５５及びＳ６０の処理が実行される（ステップＳ５０）。ステップＳ５５において、表示制御部１６０は、例えばピンホールモデルに従って生成される仮想オブジェクトの画像を入力画像に重畳することにより、ディスプレイ出力用の画像を生成する。そして、表示制御部１６０は、生成した画像を表示部１１０へ出力する（ステップＳ６０）。
【００８８】
表示モードがデュアルモード又はプロジェクタオンリーモードであれば、ステップＳ７５の投影制御処理が実行される（ステップＳ７０）。
【００８９】
［３−２．投影制御処理］
図１５は、図１４のステップＳ７０において実行される投影制御処理のより詳細な流れの一例を示すフローチャートである。
【００９０】
図１５を参照すると、まず、投影制御処理は、フェーズに依存して分岐する（ステップＳ１００）。調整フェーズでは、投影制御部１７０は、ユーザインタフェースを介して調整される投影制御パラメータ（例えば、投影スケール及びフォーカス位置）の値を取得する（ステップＳ１１０）。
【００９１】
一方、維持フェーズでは、投影制御部１７０は、プロジェクタの位置及び姿勢の変動に基づいて、投影制御パラメータの値を決定する（ステップＳ１２０）。例えば、維持フェーズへの遷移の後にプロジェクタの実物体からの距離が増加した場合には、投影制御部１７０は、投影スケールを基準値から縮小する。また、維持フェーズへの遷移の後に上記距離が減少した場合には、投影制御部１７０は、投影スケールを基準値から拡大する。投影制御部１７０は、上記距離の変動に関わらずフォーカス状態が維持されるように、フォーカス位置を変更してもよい。
【００９２】
次に、オブジェクト制御部１５０は、投影制御部１７０により取得され又は決定された投影制御パラメータの値に基づいて、座標変換パラメータを再計算する（ステップＳ１３０）。次に、オブジェクト制御部１５０は、投影オブジェクト制御処理を実行し、投影される仮想オブジェクトを変化させる（ステップＳ１４０）。
【００９３】
次に、表示制御部１６０は、図４を用いて説明したように、座標変換パラメータを用いて、投影される仮想オブジェクトの３次元的な配置を、プロジェクタ出力用の配置に変換する（ステップＳ１５０）。次に、表示制御部１６０は、座標変換後の仮想オブジェクトの３次元的な配置から、仮想オブジェクトのプロジェクタ出力用の画像を生成する（ステップＳ１６０）。
【００９４】
次に、投影制御部１７０は、ステップＳ１１０において取得し、又はステップＳ１２０において決定した投影制御パラメータの値を投影部１１２に設定し、投影部１１２の固有の機構を駆動する（ステップＳ１７０）。そして、表示制御部１６０は、プロジェクタ出力用の画像を投影部１１２へ出力する（ステップＳ１８０）。
【００９５】
［３−３．投影オブジェクト制御処理］
図１６は、図１５のステップＳ１４０において実行される投影オブジェクト制御処理のより詳細な流れの一例を示すフローチャートである。
【００９６】
図１６を参照すると、まず、オブジェクト制御部１５０は、例えば図１０Ａ又は図１０Ｂを用いて説明したように指定され得るプライバシーレベルに従って、投影される仮想オブジェクトを切り替える（ステップＳ１４１）。
【００９７】
次に、オブジェクト制御部１５０は、実物体と投影部１１２との間の距離、及び投影制御部１７０から供給される投影スケールの値に基づいて、投影解像度を推定する（ステップＳ１４２）。そして、オブジェクト制御部１５０は、推定した投影解像度が仮想オブジェクトの空間解像度を下回る場合に、仮想オブジェクトのグラフィックを調整する（ステップＳ１４３）。例えば、オブジェクト制御部１５０は、仮想オブジェクトのポリゴン数を削減してもよい。
【００９８】
また、オブジェクト制御部１５０は、投影される仮想オブジェクトを原因として環境認識部１４０による認識処理の精度が低下するリスクを判定する（ステップＳ１４４）。精度低下のリスクの高い仮想オブジェクトが、コンテンツＤＢ１５５において予め定義されていてもよい。認識処理の精度が低下するリスクが高い場合には、オブジェクト制御部１５０は、仮想オブジェクトの輝度、色又はコントラストなどの表示属性を調整し、又は仮想オブジェクトを移動させる（ステップＳ１４５）。
【００９９】
このように投影のために適合された仮想オブジェクトが、図１５の投影制御処理の結果として、投影部１１２から実空間内の投影面へ投影される。その後、処理は図１４のステップＳ１０へ戻り、次の入力画像について同様の処理が繰り返される。
【０１００】
なお、本節で説明した処理は、一例に過ぎない。上述したいくつかの処理ステップは省略されてもよく、他の処理ステップが追加的に実行されてもよい。また、いくつかの処理ステップが並列的に実行されてもよく、処理の順序が変更されてもよい。
【０１０１】
＜４．応用例＞
図１７は、本開示に係る技術を応用することにより実現され得るＡＲアプリケーションの一例について説明するための説明図である。
【０１０２】
図１７を参照すると、上述した画像処理装置１００と同等の構成を有する３つの画像処理装置１００ａ、１００ｂ及び１００ｃが示されている。画像処理装置１００ａ、１００ｂ及び１００ｃは、それぞれ異なるユーザ（図示せず）により保持される。画像処理装置１００ａ、１００ｂ及び１００ｃの撮像部１０２及び投影部１１２は、実空間内に存在するレストランのメニューブック２７に向けられている。画像処理装置１００ａにおいて動作するＡＲアプリケーションは、メニューブック２７に記載されたメニュー２８に注目しており、仮想オブジェクトＶ７ａをメニュー２８に投影する。同様に、画像処理装置１００ｂにおいて動作するＡＲアプリケーションもまた、メニュー２８に注目しており、仮想オブジェクトＶ７ｂをメニュー２８に投影する。仮想オブジェクトＶ７ａ及びＶ７ｂは、注目されている実物体の位置を通知する簡易な標識であってもよく、又はより複雑なグラフィックを有してもよい。画像処理装置１００ｃの環境認識部１４０は、メニュー２８を認識する。そして、画像処理装置１００ｃのオブジェクト制御部１５０は、メニュー２８に投影される投影光の強度に基づいて、メニュー２８に対する他のユーザの関心度を判定する。図１７の例では、オブジェクト制御部１５０は、メニュー２８が２人のユーザから関心を寄せられていると判定することができる。そして、オブジェクト制御部１５０は、例えば、判定した関心度に応じて、表示され又は投影される仮想オブジェクトを変化させる。図１７の例では、画像処理装置１００ｃの画面上で、メニュー２８に注目すべきことをユーザに通知する仮想オブジェクトＶ８が、メニュー２８に重畳されている。
【０１０３】
このように、ＡＲアプリケーションの仮想オブジェクトを、画面上で表示するだけでなく、表示位置に対応する実空間内の３次元位置に投影することにより、投影光が、入力画像を通じてＡＲアプリケーションにフィードバックされる。そのようなフィードバックを利用して、よりリッチな情報をＡＲアプリケーションが提供することが可能となる。
【０１０４】
＜５．まとめ＞
ここまで、図１〜図１７を用いて、本開示に係る技術の様々な実施形態を説明した。上述した実施形態によれば、ＡＲのための仮想オブジェクトの表示位置に対応する３次元位置に当該仮想オブジェクトが投影されるため、ＡＲアプリケーションのユーザのみならず、第三者にもいわゆる拡張現実感を与えることができる。即ち、ユーザと第三者との拡張現実感の共有が実現される。また、公共の場においてＡＲアプリケーションが利用される場合にも、カメラをかざすユーザの行動の意図を第三者に理解させることができる。また、第三者の興味を引き起こして、ＡＲアプリケーションへの参加を促すことができる。
【０１０５】
また、上述した実施形態によれば、入力画像を用いて認識される端末の位置又は姿勢に基づいて仮想オブジェクトの投影が制御されるため、仮想オブジェクトの投影の状態を適切に維持することができる。特に、投影スケールなどのプロジェクタ固有の制御パラメータが制御されることにより、アプリケーションレベルでの仮想オブジェクトの調整だけでは回避し得ないような投影の不具合を、効果的に防止することができる。
【０１０６】
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵなどのプロセッサにより実行される。
【０１０７】
また、各装置の論理的機能の一部は、当該装置上に実装される代わりに、クラウドコンピューティング環境内に存在する装置上に実装されてもよい。その場合には、論理的機能の間でやり取りされる情報が、図３に例示した通信部１１４を介して装置間で送信され又は受信され得る。
【０１０８】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１０９】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、
前記入力画像を用いて、前記実物体の位置を認識する認識部と、
認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、
を備える画像処理装置。
（２）
前記投影制御部は、前記投影の状態が基準状態に維持されるように、前記投影装置の固有の制御パラメータを制御する、前記（１）に記載の画像処理装置。
（３）
前記画像処理装置は、前記基準状態をユーザに調整させるためのユーザインタフェース部、をさらに備える、前記（２）に記載の画像処理装置。
（４）
前記制御パラメータは、投影スケールである、前記（２）又は前記（３）に記載の画像処理装置。
（５）
前記投影制御部は、前記投影装置と前記実物体との間の距離の変動に関わらず、前記投影の状態が前記基準状態に維持されるように、前記投影スケールを制御する、前記（４）に記載の画像処理装置。
（６）
前記投影制御部は、前記距離の減少に応じて、前記投影スケールを拡大する、前記（５）に記載の画像処理装置。
（７）
前記投影制御部は、前記距離の増加に応じて、前記投影スケールを縮小する、前記（５）に記載の画像処理装置。
（８）
前記画像処理装置は、前記投影スケールの拡大又は縮小に応じて、投影される仮想オブジェクトの投影アングルに対する相対的なサイズを変化させるオブジェクト制御部、をさらに備える、前記（６）又は前記（７）に記載の画像処理装置。
（９）
前記制御パラメータは、フォーカス位置であり、
前記投影制御部は、前記投影装置と前記実物体との間の距離の変動に関わらず、投影される仮想オブジェクトのフォーカス状態が維持されるように、前記フォーカス位置を制御する、
前記（２）〜（８）のいずれか１項に記載の画像処理装置。
（１０）
前記投影制御部は、所定のユーザ入力が検出されるまでの間、ユーザによる前記制御パラメータの調整に従って前記投影の状態を変化させ、前記所定のユーザ入力が検出された時点の前記投影の状態を前記基準状態として扱う、前記（２）〜（９）のいずれか１項に記載の画像処理装置。
（１１）
前記撮像装置と前記投影装置との間の相対的な位置及び姿勢は、前記画像処理装置にとって既知である、前記（１）〜（１０）のいずれか１項に記載の画像処理装置。
（１２）
前記画像処理装置は、前記撮像装置及び前記投影装置をさらに備える携帯端末である、
前記（１）〜（１１）のいずれか１項に記載の画像処理装置。
（１３）
前記画像取得部、前記表示制御部、前記認識部及び前記投影制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、前記（１）〜（１２）のいずれか１項に記載の画像処理装置。
（１４）
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得することと、
前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させることと、
前記入力画像を用いて、前記実物体の位置を認識することと、
認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御することと、
を含む投影制御方法。
（１５）
画像処理装置を制御するコンピュータを、
撮像装置を用いて実空間を撮像することにより生成される入力画像を取得する画像取得部と、
前記入力画像に映る実物体と関連付けられる仮想オブジェクトを重畳するための出力画像を投影装置へ出力し、前記実物体へ前記出力画像を投影させる表示制御部と、
前記入力画像を用いて、前記実物体の位置を認識する認識部と、
認識される前記実物体の位置に基づいて、前記投影装置による前記出力画像の投影を制御する投影制御部と、
として機能させるためのプログラム。
【符号の説明】
【０１１０】
１００    画像処理装置
１０２    撮像部（撮像装置）
１１０    表示部（表示装置）
１１２    投影部（投影装置）
１２０    画像取得部
１４０    環境認識部
１５０    オブジェクト制御部
１６０    表示制御部
１７０    投影制御部
１８０    ユーザインタフェース部
【図１】
2013235374.tif 000003
【図２】
2013235374.tif 000004
【図３】
2013235374.tif 000005
【図４】
2013235374.tif 000006
【図５】
2013235374.tif 000007
【図６】
2013235374.tif 000008
【図７Ａ】
2013235374.tif 000009
【図７Ｂ】
2013235374.tif 000010
【図７Ｃ】
2013235374.tif 000011
【図８】
2013235374.tif 000012
【図９Ａ】
2013235374.tif 000013
【図９Ｂ】
2013235374.tif 000014
【図１０Ａ】
2013235374.tif 000015
【図１０Ｂ】
2013235374.tif 000016
【図１１Ａ】
2013235374.tif 000017
【図１１Ｂ】
2013235374.tif 000018
【図１２Ａ】
2013235374.tif 000019
【図１２Ｂ】
2013235374.tif 000020
【図１３】
2013235374.tif 000021
【図１４】
2013235374.tif 000022
【図１５】
2013235374.tif 000023
【図１６】
2013235374.tif 000024
【図１７】
2013235374.tif 000025