(57)【特許請求の範囲】
【請求項１】
実空間を映した入力画像を取得する画像取得部と、
前記入力画像に仮想オブジェクトを重畳して表示する表示制御部と、
ユーザ入力を検出する検出部と、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、
を備える端末装置であって、
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定され、
前記検出部は、前記仮想オブジェクトが表示される画面上でのドラッグをユーザ入力として検出し、
前記操作制御部は、前記端末装置と前記領域との間の距離に応じて、前記画面上でのドラッグ量に対する前記仮想オブジェクトの動きの量の割合を変化させる、
端末装置。
【請求項２】
前記仮想オブジェクトは、所定の情報を表示する略平面状のオブジェクトであり、
前記仮想オブジェクトの動きは、前記仮想オブジェクトの移動、拡大、縮小又はスクロールである、
請求項１に記載の端末装置。
【請求項３】
前記表示制御部は、前記仮想オブジェクトの前記領域内での可動方向を表現する補助的なオブジェクトを、前記入力画像にさらに重畳する、請求項１に記載の端末装置。
【請求項４】
前記画像取得部は、所定のユーザ入力が検出された場合に、撮像装置により撮像されるスナップショットを入力画像として取得し、
前記表示制御部は、前記仮想オブジェクトの動きを前記スナップショット上で表現する、
請求項１に記載の端末装置。
【請求項５】
実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置におけるオブジェクト制御方法であって、
ユーザ入力を検出するステップと、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定するステップと、
を含み、
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定され、
前記ユーザ入力は、前記仮想オブジェクトが表示される画面上でのドラッグを含み、
前記オブジェクト制御方法は、前記端末装置と前記領域との間の距離に応じて、前記画面上でのドラッグ量に対する前記仮想オブジェクトの動きの量の割合を変化させるステップ、をさらに含む、
オブジェクト制御方法。
【請求項６】
実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置を制御するコンピュータを、
ユーザ入力を検出する検出部と、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、
として機能させ、
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定され、
前記検出部は、前記仮想オブジェクトが表示される画面上でのドラッグをユーザ入力として検出し、
前記操作制御部は、前記端末装置と前記領域との間の距離に応じて、前記画面上でのドラッグ量に対する前記仮想オブジェクトの動きの量の割合を変化させる、
プログラム。
【請求項７】
実空間を映した入力画像を取得する画像取得部と、
前記入力画像に仮想オブジェクトを重畳して表示する表示制御部と、
ユーザ入力を検出する検出部と、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、
を備える端末装置であって、
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定され、
前記検出部は、前記端末装置の動きをセンサを用いてユーザ入力として検出し、
前記操作制御部は、前記端末装置の動きを表す第１のベクトルに対応する前記領域内の第２のベクトルを算出し、算出した当該第２のベクトルから前記仮想オブジェクトの動きを決定する、
端末装置。
【請求項８】
実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置におけるオブジェクト制御方法であって、
ユーザ入力を検出するステップと、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定するステップと、
を含み、
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定され、
前記ユーザ入力は、センサを用いて検出される前記端末装置の動きを含み、
前記仮想オブジェクトの動きを決定する前記ステップは、前記端末装置の動きを表す第１のベクトルに対応する前記領域内の第２のベクトルを算出し、算出した当該第２のベクトルから前記仮想オブジェクトの動きを決定すること、を含む、
オブジェクト制御方法。
【請求項９】
実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置を制御するコンピュータを、
ユーザ入力を検出する検出部と、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、
として機能させ、
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定され、
前記検出部は、前記端末装置の動きをセンサを用いてユーザ入力として検出し、
前記操作制御部は、前記端末装置の動きを表す第１のベクトルに対応する前記領域内の第２のベクトルを算出し、算出した当該第２のベクトルから前記仮想オブジェクトの動きを決定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、オブジェクト制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実世界に付加的な情報を重畳してユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。
【０００３】
ＡＲ技術は、ユーザとのインタラクションを伴うアプリケーションにおいても活用され得る。例えば、広告又はナビゲーションなど、情報提供を目的とするアプリケーションでは、ＡＲの仮想オブジェクトをユーザに操作させることで、ユーザのニーズに見合う情報を効果的にユーザに提供することができる。ＡＲの仮想オブジェクトの操作に関する文献としては、例えば下記特許文献１が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２３８０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載された技術では、ユーザにより操作される仮想オブジェクトの動きが、実世界の状況とは無関係に決定される。そのため、ＡＲ技術の利点の１つである空間へのユーザの没入感が損なわれやすい。
【０００６】
従って、ＡＲの仮想オブジェクトの操作をＡＲ空間へのユーザの没入感を損なうことなく実現できる仕組みが提供されることが望ましい。
【課題を解決するための手段】
【０００７】
本開示によれば、実空間を映した入力画像を取得する画像取得部と、前記入力画像に仮想オブジェクトを重畳して表示する表示制御部と、ユーザ入力を検出する検出部と、前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、を備える端末装置が提供される。
【０００８】
また、本開示によれば、実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置におけるオブジェクト制御方法であって、ユーザ入力を検出するステップと、前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定するステップと、を含む、オブジェクト制御方法が提供される。
【０００９】
また、本開示によれば、実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置を制御するコンピュータを、ユーザ入力を検出する検出部と、前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００１０】
以上説明したように、本開示によれば、ＡＲの仮想オブジェクトの操作をＡＲ空間へのユーザの没入感を損なうことなく実現することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る端末装置の概要について説明するための説明図である。
【図２】一実施形態に係る端末装置のハードウェア構成の一例を示すブロック図である。
【図３】一実施形態に係る端末装置の論理的機能の構成の一例を示すブロック図である。
【図４】画像認識の結果の一例について説明するための説明図である。
【図５Ａ】一実施形態において設定される拘束領域の第１の例を示す説明図である。
【図５Ｂ】一実施形態において設定される拘束領域の第２の例を示す説明図である。
【図５Ｃ】一実施形態において設定される拘束領域の第３の例を示す説明図である。
【図６】タッチセンサを介する仮想オブジェクトの操作について説明するための第１の説明図である。
【図７】タッチセンサを介する仮想オブジェクトの操作について説明するための第２の説明図である。
【図８】モーションセンサを介する仮想オブジェクトの操作について説明するための第１の説明図である。
【図９】モーションセンサを介する仮想オブジェクトの操作について説明するための第２の説明図である。
【図１０】モーションセンサを介する仮想オブジェクトの操作について説明するための第３の説明図である。
【図１１】モーションセンサを介する仮想オブジェクトの操作について説明するための第４の説明図である。
【図１２】一実施形態に係るオブジェクト制御処理の流れの一例を示すフローチャートである。
【図１３】一実施形態に係る画像取得処理の詳細な流れの一例を示すフローチャートである。
【図１４Ａ】仮想オブジェクトの操作の第１のシナリオについて説明するための第１の説明図である。
【図１４Ｂ】仮想オブジェクトの操作の第１のシナリオについて説明するための第２の説明図である。
【図１５Ａ】仮想オブジェクトの操作の第２のシナリオについて説明するための第１の説明図である。
【図１５Ｂ】仮想オブジェクトの操作の第２のシナリオについて説明するための第２の説明図である。
【図１６Ａ】仮想オブジェクトの操作の第３のシナリオについて説明するための第１の説明図である。
【図１６Ｂ】仮想オブジェクトの操作の第３のシナリオについて説明するための第２の説明図である。
【図１７】仮想オブジェクトの可動方向を表現する補助オブジェクトについて説明するための説明図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
また、以下の順序で説明を行う。
１．概要
２．一実施形態に係る端末装置の構成例
２−１．ハードウェア構成
２−２．機能構成
３．処理の流れ
４．操作シナリオ
４−１．第１のシナリオ
４−２．第２のシナリオ
４−３．第３のシナリオ
４−４．補助的なオブジェクトの表示
５．まとめ
【００１４】
＜１．概要＞
図１は、本明細書で開示する技術の一実施形態の概要について説明するための説明図である。図１を参照すると、実空間１内でユーザにより携帯されている端末装置１００が示されている。
【００１５】
端末装置１００は、ユーザとのインタラクションを伴うＡＲアプリケーションをユーザに提供する装置である。端末装置１００は、例えば、スマートフォン、ＰＣ（Personal  Computer）、ＰＤＡ（Personal  Digital  Assistant）、ゲーム端末又は携帯用音楽プレーヤなどであってよい。
【００１６】
実空間１は、ＡＲアプリケーションが利用され得る空間の一例である。実空間１内には、物体１２ａ、１２ｂ及び１２ｃが存在する。物体１２ａは、案内用の看板である。物体１２ａには、シンボルマーク１３ａが付されている。物体１２ｂは、情報表示用の掲示板である。物体１２ｃは、広告用のポスターである。端末装置１００は、このような実空間１を撮像した画像を入力画像として取得する。そして、端末装置１００は、入力画像に映る物体の認識結果に基づいて、ＡＲのための仮想オブジェクトを入力画像に重畳する。仮想オブジェクトを通じてユーザに呈示される情報は、ナビゲーション情報、広告情報、店舗情報、ニュース、天気予報又は列車の運行情報など、任意の情報であってよい。ユーザは、端末装置１００の画面上に表示される仮想オブジェクトを操作し、ＡＲアプリケーションをインタラクティブに利用する。
【００１７】
図１には示していないが、実空間１には、仮想オブジェクト又は仮想オブジェクトを通じてユーザに呈示すべき情報についてのデータベースを有するデータサーバが設けられてもよい。端末装置１００は、例えば無線接続によってデータサーバと通信し、端末装置１００の所在位置と関連付けられる最新のデータを当該データサーバからダウンロードしてもよい。
【００１８】
＜２．一実施形態に係る端末装置の構成例＞
［２−１．ハードウェア構成］
図２は、本実施形態に係る端末装置１００のハードウェア構成の一例を示すブロック図である。図２を参照すると、端末装置１００は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１２、通信部１１４、バス１１８及び制御部１２０を備える。
【００１９】
（撮像部）
撮像部１０２は、画像を撮像するカメラモジュールである。撮像部１０２は、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を用いて実空間を撮像し、撮像画像を生成する。撮像部１０２は、映像入力のための撮像回路と静止画入力のための撮像回路の双方又はいずれか一方のみを有していてもよい。
【００２０】
（センサ部）
センサ部１０４は、端末装置１００の位置及び姿勢の認識を支援し、又は端末装置１００への一部のユーザ入力を検出するセンサ群である。例えば、センサ部１０４は、ＧＰＳ（Global  Positioning  System）信号を受信して端末装置１００の緯度、経度及び高度を測定するＧＰＳセンサを含んでもよい。また、センサ部１０４は、無線アクセスポイントから受信される無線信号の強度に基づいて端末装置１００の位置を測定する測位センサを含んでもよい。また、センサ部１０４は、端末装置１００の３軸加速度を測定する加速度センサ又は傾き角を測定するジャイロセンサなどのモーションセンサを含んでもよい。
【００２１】
（入力部）
入力部１０６は、ユーザが端末装置１００を操作し又は端末装置１００へ情報を入力するために使用される入力デバイスである。入力部１０６は、典型的には、表示部１１２の画面上へのユーザによるタッチを検出するタッチセンサを含む。その代わりに（又はそれに加えて）、入力部１０６は、マウス若しくはタッチパッドなどのポインティングデバイス、画像に映るユーザのジェスチャを認識するジェスチャ認識モジュール、又はＨＭＤ（Head  Mounted  Display）を装着したユーザの視線方向を検出する視線検出モジュールを含んでもよい。さらに、入力部１０６は、キーボード、キーパッド、ボタン又はスイッチなどのその他の種類の入力デバイスを含んでもよい。
【００２２】
（記憶部）
記憶部１０８は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、端末装置１００による処理のためのプログラム及びデータを記憶する。記憶部１０８により記憶されるデータには、例えば、撮像部１０２により生成される画像データ及びセンサ部１０４により生成されるセンサデータが含まれ得る。また、記憶部１０８により記憶されるデータには、例えば、端末装置１００による画像認識の際に用いられる特徴量データ及び仮想オブジェクトを定義するオブジェクトデータなども含まれ得る。
【００２３】
（表示部）
表示部１１２は、ＬＣＤ（Liquid  Crystal  Display）、ＯＬＥＤ（Organic  light-Emitting  Diode）又はＣＲＴ（Cathode  Ray  Tube）などにより構成される表示モジュールである。表示部１１２は、例えば、撮像部１０２により撮像される画像、又は制御部１２０により実現されるＡＲアプリケーションの画像を画面上に表示する。表示部１１２は、ユーザにより把持される端末装置１００の画面であってもよく、又はユーザにより装着されるシースルー型若しくは非シースルー型のＨＭＤであってもよい。
【００２４】
（通信部）
通信部１１４は、端末装置１００による他の装置（例えば、上述したデータサーバ）との間の通信を仲介する通信インタフェースである。通信部１１４は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
【００２５】
（バス）
バス１１８は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１２、通信部１１４及び制御部１２０を相互に接続する。
【００２６】
（制御部）
制御部１２０は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサに相当する。制御部１２０は、記憶部１０８又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する端末装置１００の様々な機能を動作させる。
【００２７】
［２−２．機能構成］
図３は、図２に示した端末装置１００の記憶部１０８及び制御部１２０により実現される論理的機能の構成の一例を示すブロック図である。図３を参照すると、端末装置１００は、画像取得部１１０、フレームメモリ１１２、画像認識部１３０、特徴量データベース（ＤＢ）１３２、拘束領域設定部１４０、検出部１５０、操作制御部１６０、データ取得部１７０、オブジェクトＤＢ１７２及び表示制御部１９０を含む。
【００２８】
（１）画像取得部
画像取得部１１０は、実空間を映した画像を入力画像として取得する。本実施形態において、画像取得部１１０は、リアルタイムモード及びスナップショットモードという２つの入力モードをサポートする。リアルタイムモードでは、画像取得部１１０は、撮像部１０２からの映像入力の最新のフレームを入力画像として順次取得する。スナップショットモードでは、画像取得部１１０は、まず、スナップショットモードの開始時に、撮像部１０２により撮像されるスナップショットをフレームメモリ１１２に記憶させる。撮像部１０２が映像入力のための撮像回路と静止画入力のための撮像回路とを有する場合には、スナップショットは、静止画入力のための撮像回路によって撮像される画像であってもよい。その後、画像取得部１１０は、フレームメモリ１１２により記憶されたスナップショットを継続的に入力画像として取得する。リアルタイムモードとスナップショットモードとの間の切り替えは、入力部１０６を介する所定のユーザ入力によって行われてよい。画像取得部１１０は、このように取得される入力画像を画像認識部１３０へ出力する。
【００２９】
（２）画像認識部
画像認識部１３０は、画像取得部１１０から入力される入力画像にどの物体が映っているかを認識する。また、画像認識部１３０は、入力画像に映っている物体の実空間内での位置及び姿勢を認識する。より具体的には、例えば、画像認識部１３０は、入力画像の特徴量を抽出する。そして、画像認識部１３０は、抽出した特徴量を、特徴量ＤＢ１３２に予め記憶されている既知の様々な物体画像の特徴量と照合することにより、入力画像に映る物体を識別し、当該物体の位置及び姿勢を認識する。画像認識部１３０が用いる特徴量抽出アルゴリズムは、例えば、“Fast  Keypoint  Recognition  using  Random  Ferns”（Mustafa  Oezuysal，IEEE  Transactions  on  Pattern  Analysis  and  Machine  Intelligence,  Vol.32,  Nr.3,  pp.448-461,  March  2010）に記載されたRandom  Ferns法、又は“SURF:  Speeded  Up  Robust  Features”（H.Bay,  A.Ess,  T.Tuytelaars  and  L.V.Gool,  Computer  Vision  and  Image  Understanding(CVIU),  Vol.110,  No.3,  pp.346--359,  2008）に記載されたＳＵＲＦ法などであってよい。その代わりに、画像認識部１３０は、既知の図形若しくは記号（例えば、図１に示した物体１２ａのシンボルマーク１３ａのような、案内看板に画一的に付されるマーク）、物体に付される人工マーカ（例えば、バーコード若しくはＱＲコード）又は自然マーカなどを用いて入力画像に映る物体を識別し、入力画像内での当該物体のサイズ及び形状からその位置及び姿勢を認識してもよい。
【００３０】
図４は、画像認識部１３０による画像認識の結果の一例について説明するための説明図である。図４を参照すると、画像認識部１３０へ入力される一例としての入力画像Ｉｍ１が示されている。画像認識部１３０による画像認識の結果として、入力画像Ｉｍ１に映る物体１２ａの位置Ｘａ及び姿勢Ｗａ、物体１２ｂの位置Ｘｂ及び姿勢Ｗｂ、並びに物体１２ｃの位置Ｘｃ及び姿勢Ｗｃが認識されている。各物体の位置Ｘは、３次元のグローバル座標系（ｘ，ｙ，ｚ）によって、各物体の基準点の位置として与えられ得る。グローバル座標系は、例えば、端末装置１００の位置を原点とする相対的な位置座標を表す座標系であってもよい。その代わりに、グローバル座標系は、実空間内に固定的に定義される座標系であってもよい。各物体の姿勢Ｗは、グローバル座標系を基準とした各物体の回転を表す回転行列又はクォータニオン（四元数）として与えられ得る。なお、本明細書では、説明の簡明さのために各物体の位置Ｘ及び姿勢Ｗを別個の変量として説明する。しかしながら、各物体の位置Ｘ及び姿勢Ｗは、グローバル座標系と各物体のモデル座標系との間の変換を表す４行４列の１つの同次変換行列によって統合的に表現されてもよい。その場合には、各物体の位置Ｘ及び姿勢Ｗは、１つの同次変換行列から必要に応じて抽出され用いられ得る。画像認識部１３０は、このように認識した入力画像に映る各物体の識別子、位置及び姿勢を、拘束領域設定部１４０、データ取得部１７０及び表示制御部１９０へ出力する。
【００３１】
（３）拘束領域設定部
拘束領域設定部１４０は、画像認識部１３０により認識される物体の姿勢に基づいて、入力画像に映る実空間内に、ユーザ入力に応じて操作される仮想オブジェクトの動きを拘束する拘束領域を設定する。拘束領域は、線又は面によって表現される高々２次元の領域である。拘束領域設定部１４０は、典型的には、操作可能な仮想オブジェクトと関連付けられる物体ごとに拘束領域を設定し得る。拘束領域は、例えば、入力画像内で認識される物体の表面に沿って設定されてもよい。この場合、仮想オブジェクトが略平面状のオブジェクトであれば、当該仮想オブジェクトは、関連付けられる物体の表面に沿って配置され、その表面に沿って移動、拡大、縮小又はスクロールし得る。拘束領域は、例えば、入力画像内で認識される物体との間に所定のオフセットを有する位置に設定されてもよい。なお、略平面状のオブジェクトとは、その形状が必ずしも完全な平面状に限定されず、多少の凹凸や厚みの変化などを有する平面状のオブジェクトを含むものとする。
【００３２】
図５Ａは、本実施形態において拘束領域設定部１４０により実空間１内に設定される拘束領域の第１の例を示す説明図である。図５Ａを参照すると、物体１２ａと関連付けて設定される一例としての拘束領域１４ａが示されている。拘束領域１４ａは、物体１２ａの表面に沿って設定される平面状の領域である。物体１２ａと関連付けられる仮想オブジェクトの動きは、このような拘束領域１４ａにより拘束される（例えば、拘束領域１４ａから離れて移動しない）。
【００３３】
図５Ｂは、本実施形態において拘束領域設定部１４０により実空間１内に設定される拘束領域の第２の例を示す説明図である。図５Ｂを参照すると、物体１２ｂと関連付けて設定される一例としての拘束領域１４ｂが示されている。拘束領域１４ｂは、物体１２ｂの中央を通り、物体１２ｂの上下方向に沿って設定される線状の領域である。物体１２ｂと関連付けられる仮想オブジェクトの動きは、このような拘束領域１４ｂにより拘束される（例えば、拘束領域１４ｂに沿った上下方向にのみスクロール可能である）。
【００３４】
図５Ｃは、本実施形態において拘束領域設定部１４０により実空間１内に設定される拘束領域の第３の例を示す説明図である。図５Ｃを参照すると、物体１２ｃと関連付けて設定される一例としての拘束領域１４ｃが示されている。拘束領域１４ｃは、物体１２ｃの表面に沿って設定される曲面状の領域である。このように、拘束領域の形状は、平面状又は直線状に限定されず、曲面状、多面的な形状、曲線状又は折れ線状などであってもよい。
【００３５】
（４）検出部
検出部１５０は、ユーザ入力を検出し、ユーザ入力情報を操作制御部１６０へ出力する。検出部１５０により検出されるユーザ入力は、例えば、図２に示した入力部１０６のタッチセンサへの様々なタッチ入力（例えば、タッチ、タップ、ダブルタップ、ドラッグ、フリック、ピンチイン及びピンチアウトなど）を含み得る。また、検出部１５０により検出されるユーザ入力は、例えば、図２に示したセンサ部１０４のセンサ群により測定される端末装置１００の動き（例えば、傾き又は揺れなど）をも含み得る。
【００３６】
（５）操作制御部
操作制御部１６０は、端末装置１００の画面上に表示される仮想オブジェクトのユーザによる操作を制御する。より具体的には、操作制御部１６０は、検出部１５０によりユーザ入力が検出されると、まず、操作対象の仮想オブジェクトを特定する。次に、操作制御部１６０は、特定した仮想オブジェクトの動きを、ユーザ入力に応じて、当該仮想オブジェクトに対応する物体と関連付けられる拘束領域内で決定する。そして、操作制御部１６０は、決定した仮想オブジェクトの動きを表示制御部１９０に通知して、仮想オブジェクトの画面上での配置、サイズ又はスクロール位置などを表示制御部１９０により変更させる。それにより、仮想オブジェクトの移動、拡大、縮小又はスクロールなどといった動きが可視化される。
【００３７】
（５−１）タッチセンサでのユーザ入力
図６及び図７は、操作制御部１６０により制御される、タッチセンサを介する仮想オブジェクトの操作について説明するための説明図である。図６を参照すると、実空間内に設定される平面状の拘束領域１４、及び撮像装置の撮像面１０３が示されている。拘束領域１４の位置Ｘ０及び姿勢Ｗ０は、拘束領域１４と関連付けられる物体の位置及び姿勢と等しくてもよく、又は当該物体の位置及び姿勢との間で所定のオフセットを有していてもよい。タッチセンサへのユーザ入力の入力位置Ｃｉｎは、撮像面１０３上のカメラ座標系（ｕ，ｖ，１）により与えられる。操作制御部１６０は、例えば、以下のようなピンホールモデルに従って、入力位置Ｃｉｎに対応する拘束領域１４内の位置Ｘｉｎを算出し得る。
【００３８】
【数１】
0005724543.tif 000002
【００３９】
式（１）において、Ｃ０は拘束領域１４の基準位置Ｘ０に対応する撮像面上の位置、Ａはカメラ内部パラメータ、λは正規化のためのパラメータである。カメラ内部パラメータＡは、撮像部１０２の特性に応じて、予め次式のように与えられる。
【００４０】
【数２】
0005724543.tif 000003
【００４１】
ここで、ｆは焦点距離、θは画像軸の直交性（理想値は９０°）、ｋｕは撮像面の縦軸のスケール（実空間の座標系からカメラ座標系へのスケール変化率）、ｋｖは撮像面の横軸のスケール、（ｕｏ，ｖｏ）は撮像面の中心位置である。
【００４２】
例えばドラッグのようなベクトルを指定するユーザ入力については、操作制御部１６０は、ベクトルの始点及び終点に対応する２つの入力位置Ｃｉｎ１及びＣｉｎ２に基づいて、次式のように、拘束領域１４内の仮想オブジェクトの動きベクトルＶｉｎを決定し得る：
【００４３】
【数３】
0005724543.tif 000004
【００４４】
式（３）において、Ｘｉｎ１及びＸｉｎ２は、入力位置Ｃｉｎ１及びＣｉｎ２にそれぞれ対応する拘束領域内の位置である。なお、拘束領域が曲面状又は多面的な形状である場合にも、操作制御部１６０は、同様に、ユーザ入力の入力位置を拘束領域に投影することにより、各入力位置に対応する拘束領域内の位置を決定することができる。また、拘束領域が線状である場合には、操作制御部１６０は、ユーザ入力の入力位置を１次元の当該拘束領域に投影する。
【００４５】
上述した式（３）のようにユーザ入力の入力位置を拘束領域に投影して動きベクトルＶｉｎを決定する際、拘束領域１４と端末装置１００との間の距離が大きい場合には、ユーザ入力に対して動きベクトルＶｉｎの大きさが過度に大きくなり得る。そこで、操作制御部１６０は、端末装置１００と拘束領域１４との間の距離に応じて、画面上の入力ベクトルの大きさに対する動きベクトルＶｉｎの大きさの割合を変化させてもよい。それにより、仮想オブジェクトの動きをユーザが微調整することがより容易となる。入力ベクトルの大きさとは例えば画面上でのドラッグ量、動きベクトルＶｉｎの大きさとは例えば仮想オブジェクトの動きの量にそれぞれ対応する。
【００４６】
例えば、図７の例において、操作制御部１６０は、入力位置Ｃｉｎ１からＣｉｎ２へのドラッグが検出された場合に、入力位置Ｃｉｎ１及びＣｉｎ２にそれぞれ対応する拘束領域１４内の位置Ｘｉｎ１及びＸｉｎ２を算出する。ここで、端末装置１００と拘束領域１４との間の距離Ｄは、所定の閾値Ｔｈを上回る。そこで、操作制御部１６０は、位置Ｘｉｎ１からＸｉｎ２への動きベクトルＶｉｎに係数ｋ（ｋ＜１）を乗じることにより、仮想オブジェクトの修正後の動きベクトルＶ´ｉｎを算出する。係数ｋは、例えば、端末装置１００と拘束領域１４との間の距離が増加するにつれて減少するような係数であってもよい。
【００４７】
（５−２）モーションセンサでのユーザ入力
図８〜図１１は、操作制御部１６０により制御される、モーションセンサを介する仮想オブジェクトの操作について説明するための説明図である。
【００４８】
図８を参照すると、端末装置１００の加速度センサのセンサ座標系（ａ１，ａ２，ａ３）が示されている。一例として、ａ１軸は端末装置１００の画面の水平方向、ａ２軸は当該画面の垂直方向、ａ３軸は当該画面の奥行き方向に沿った軸である。ここで、例えばユーザが入力位置Ｃｉｎ３をタッチしながら端末装置１００の画面の水平方向の左に向けて端末装置１００を振ったものとする。すると、加速度センサからのセンサデータにおいてａ１軸成分に大きな値を有する加速度ベクトルＡｉｎ３が生じる。操作制御部１６０は、このようなセンサデータが検出部１５０から入力されると、加速度ベクトルＡｉｎ３に対応する拘束領域内の動きベクトルを算出する。図９の例では、加速度ベクトルＡｉｎ３に対応する動きベクトルＶｉｎ３が、加速度ベクトルＡｉｎ３を拘束領域１４の平面に投影することにより算出される様子が示されている。
【００４９】
図１０を参照すると、端末装置１００のジャイロセンサにより測定される傾き角についてのセンサ座標系（ｗ１，ｗ２，ｗ３）が示されている。ここで、例えばユーザが入力位置Ｃｉｎ４をタッチしながら端末装置１００の画面に垂直な軸の周り（ｗ１方向）に端末装置１００を傾けたものとする。すると、ジャイロセンサからのセンサデータにおいてｗ１軸成分の値が増加する。操作制御部１６０は、このようなセンサデータが検出部１５０から入力されると、端末装置１００に重力Ｇの水平方向成分Ｇｉｎ４が加わっていることを認識する。そこで、操作制御部１６０は、重力Ｇの水平方向成分Ｇｉｎ４に対応する拘束領域内の動きベクトルを算出する。図１１の例では、水平方向成分Ｇｉｎ４に対応する動きベクトルＶｉｎ４が、水平方向成分Ｇｉｎ４を拘束領域１４の平面に投影することにより算出される様子が示されている。
【００５０】
なお、ここでは主にタッチセンサ又はモーションセンサを介するユーザ入力について説明した。しかしながら、操作制御部１６０は、例えばユーザの所定のジェスチャなど、上述した例とは異なる種類のユーザ入力に応じて、仮想オブジェクトの操作を制御してもよい。ユーザのジェスチャは、ユーザに向けられる（入力画像を撮像する装置と別の）撮像装置によって撮像される画像から認識されてもよい。その代わりに、ユーザのジェスチャは、例えばＨＭＤを用いる場合のように、ユーザの視線方向に向けられる撮像装置によって撮像される画像から認識されてもよい。
【００５１】
（５−３）操作対象の特定
操作制御部１６０は、操作対象の仮想オブジェクトをユーザ入力の入力位置に応じて決定してもよい。例えば、タッチセンサ上のタッチ又はドラッグの開始により操作対象の仮想オブジェクトが選択される場合には、入力位置とカメラの焦点位置とを結ぶ投影線上に判定域が存在する仮想オブジェクトが、操作対象として決定される。本明細書において、判定域とは、仮想オブジェクトと関連付けられ、ユーザにより指定されることで当該仮想オブジェクトが操作対象であると判定される画面上の領域をいう。投影線上に複数の仮想オブジェクトの判定域が存在する場合には、端末装置１００の最も近くに位置する仮想オブジェクトが操作対象とされてよい。仮想オブジェクトの判定域は、必ずしも仮想オブジェクトが表示されている領域と一致していなくてもよい。また、操作制御部１６０は、判定域によらず、端末装置１００の画面上で最も大きく表示されている仮想オブジェクト、端末装置１００の最も近くに位置する仮想オブジェクト、又は端末装置１００の画面に正対している仮想オブジェクトなどを操作対象として特定してもよい。
【００５２】
（５−４）仮想オブジェクトの動きの例
本実施形態において、仮想オブジェクトの動きは、ユーザ入力の種類と、ユーザ入力に応じて決定される拘束領域内の位置又は動きベクトルとに応じて決定され得る。
【００５３】
例えば、仮想オブジェクトが所定の情報を表示する略平面状のオブジェクトであるものとする。所定の情報とは、例えば、ナビゲーション情報、広告情報、店舗情報、ニュース、天気予報又は列車の運行情報などであってよい。この場合、操作制御部１６０は、例えば、上記略平面状の仮想オブジェクトがユーザによりドラッグされると、ドラッグ方向に応じて決定される拘束領域内の動きベクトルの方向に沿って、表示されている情報を３次元空間内でスクロールさせる。スクロール量は、動きベクトルの大きさに相当し得る。また、操作制御部１６０は、上記略平面状の仮想オブジェクトがユーザによりピンチイン又はピンチアウトされると、ピンチイン又はピンチアウトに対応する拘束領域内の動きベクトルの大きさに応じて、表示されている情報を縮小し又は拡大してもよい。また、操作制御部１６０は、上記略平面状の仮想オブジェクトが特定されている状態で画面上のいずれかの位置がタップされると、タップ位置に対応する拘束領域内の位置に、当該仮想オブジェクトを移動させてもよい。また、操作制御部１６０は、上記略平面状の仮想オブジェクトが特定されている状態で端末装置１００に加速度が加えられると、発生した加速度ベクトルに対応する拘束領域内の動きベクトルの方向に沿って、表示されている情報を３次元空間内でスクロールさせてもよい。このような仮想オブジェクトの動きのいくつかの例について、後に図面を用いてさらに説明する。
【００５４】
なお、上述した例に限定されず、仮想オブジェクトは、例えば立体的なオブジェクト（ナビゲーション用の案内板、広告の対象である商品のポリゴンなど）であってもよい。その場合にも、仮想オブジェクトの配置又はサイズなどが、ユーザ入力の種類と、ユーザ入力に応じて決定される拘束領域内の位置又は動きベクトルとに応じて決定され得る。
【００５５】
（６）データ取得部
データ取得部１７０は、表示制御部１９０により入力画像に重畳される仮想オブジェクトに関するデータを取得する。データ取得部１７０により取得されるデータは、仮想オブジェクトを定義するオブジェクトデータを含む。オブジェクトデータは、例えば、仮想オブジェクトの種類、関連付けられる物体の識別子、当該物体からの相対的な表示位置、及びユーザに呈示される情報の内容などを定義し得る。ユーザに呈示される情報の内容は、テキスト形式で与えられてもよく、又はイメージ形式で与えられてもよい。データ取得部１７０は、オブジェクトＤＢ１７２により予め記憶されるオブジェクトデータを取得してもよい。その代わりに、データ取得部１７０は、実空間内に設置されるデータサーバから通信部１１４を介して最新のオブジェクトデータを取得してもよい。データサーバから提供されるオブジェクトデータは、例えば、センサ部１０４により測定される端末装置１００の位置に応じて異なるデータであってもよい。データ取得部１７０は、このようなオブジェクトデータを表示制御部１９０へ出力する。
【００５６】
（７）表示制御部
表示制御部１９０は、入力画像に仮想オブジェクトを重畳することにより出力画像を生成する。より具体的には、例えば、表示制御部１９０には、画像認識部１３０により入力画像に映っていると認識された物体と関連付けられている仮想オブジェクトのオブジェクトデータが、データ取得部１７０から入力される。表示制御部１９０は、かかるオブジェクトデータに基づいて、仮想オブジェクトのオブジェクト画像を生成する。表示制御部１９０により生成されるオブジェクト画像は、典型的には、３次元の実空間内に仮想的に配置される仮想オブジェクトを（例えば上述したピンホールモデルに従って）端末装置１００の撮像面に投影した画像である。実空間内での仮想オブジェクトの位置及び姿勢は、関連付けられる物体の位置及び姿勢、並びにオブジェクトデータでの定義に従って決定され得る。そして、表示制御部１９０は、生成した出力画像を表示部１１２へ出力することにより、ＡＲアプリケーションの画像を表示する。
【００５７】
また、表示制御部１９０は、仮想オブジェクトの状態（位置、姿勢、サイズ又はスクロール位置など）を、操作制御部１６０により決定される仮想オブジェクトの動きに応じて変更する。表示制御部１９０は、例えば、リアルタイムモードにおいては、画像取得部１１０により順次取得される各入力画像に、ユーザ入力に応じて時々刻々と状態が変化する仮想オブジェクトのオブジェクト画像を重畳する。それにより、リアルタイムで更新される出力画像において、仮想オブジェクトの動きが表現される。また、表示制御部１９０は、スナップショットモードにおいては、画像取得部１１０によりフレームメモリ１１２から取得される入力画像のスナップショットを複数のフレーム分複製し、複製されたスナップショットの各々に仮想オブジェクトの動きを表現するオブジェクト画像を重畳する。それにより、静止画のスナップショット上での仮想オブジェクトの動きが表現される。
【００５８】
また、表示制御部１９０は、仮想オブジェクトの拘束領域内での可動方向を表現する補助的なオブジェクトを、入力画像にさらに重畳してもよい。また、表示制御部１９０は、各仮想オブジェクトの判定域を表現する補助的なオブジェクトを、入力画像にさらに重畳してもよい。表示制御部１９０により表示される補助的なオブジェクトの例について、後に図面を用いて説明する。
【００５９】
＜３．処理の流れ＞
図１２は、本実施形態に係る端末装置１００によるオブジェクト制御処理の流れの一例を示すフローチャートである。
【００６０】
図１２を参照すると、まず、画像取得部１１０は、撮像部１０２により撮像され又はフレームメモリ１１２により記憶されている入力画像を取得する（ステップＳ１０２）。次に、画像認識部１３０は、取得された入力画像に映る物体、並びに当該物体の位置及び姿勢を認識する（ステップＳ１０４）。次に、データ取得部１７０は、認識された物体に関するオブジェクトデータをオブジェクトＤＢ１７２又は外部のデータサーバから取得する（ステップＳ１０６）。
【００６１】
次に、操作制御部１６０は、仮想オブジェクトを操作するためのユーザ入力が検出部１５０により検出されたか否かを判定する（ステップＳ１０８）。ここで、検出部１５０によりユーザ入力が検出された場合には、処理はステップＳ１１０へ進む。一方、ユーザ入力が検出されていない場合には、処理はステップＳ１１８へ進む。
【００６２】
ユーザ入力が検出された場合には、操作制御部１６０は、当該ユーザ入力の入力位置、仮想オブジェクトの画面上での大きさ又は仮想オブジェクトと端末装置１００との距離などの基準に基づいて、操作対象の仮想オブジェクトを特定する（ステップＳ１１０）。次に、操作制御部１６０は、特定した仮想オブジェクトと関連付けて拘束領域設定部１４０により設定される拘束領域を認識する（ステップＳ１１２）。次に、操作制御部１６０は、ユーザ入力の入力位置又は入力ベクトルに対応する拘束領域内の３次元的な位置又はベクトルを算出する（ステップＳ１１４）。そして、操作制御部１６０は、算出した拘束領域内の位置又はベクトルとユーザ入力の種類とに基づいて、操作対象の仮想オブジェクトの動きを決定する（ステップＳ１１６）。
【００６３】
ステップＳ１１８では、表示制御部１９０は、実空間内に仮想的に配置される仮想オブジェクトを撮像面に投影することにより、仮想オブジェクトのオブジェクト画像を生成し、生成したオブジェクト画像を入力画像に重畳する（ステップＳ１１８）。ここでの仮想オブジェクトの状態は、当該仮想オブジェクトが操作されていない場合には、初期状態である（初期状態は、オブジェクトデータにより定義され得る）。一方、仮想オブジェクトの状態は、当該仮想オブジェクトが操作されている場合には、操作制御部１６０により決定される動きに従って変更された状態である。次に、表示制御部１９０は、各仮想オブジェクトの拘束領域内での可動方向を表現する補助的なオブジェクトを、入力画像にさらに重畳する（ステップＳ１２０）。そして、仮想オブジェクト及び補助的なオブジェクトが重畳された出力画像が、画面上に表示される（ステップＳ１２２）。
【００６４】
図１２に示したオブジェクト制御処理は、リアルタイムモードにおいては、撮像部１０２により撮像される各フレームについて繰り返され得る。また、スナップショットモードにおいては、上記オブジェクト制御処理は、画像取得部１１０によりフレームメモリ１１２から取得されるスナップショットを入力画像として用いて行われ得る。スナップショットモードでは、１回（あるいは１ストローク）のユーザ入力についてステップＳ１１８〜Ｓ１２２の処理が複数回繰り返して行われることにより、仮想オブジェクトの動きがアニメーションとして表現され得る。
【００６５】
図１３は、図１２のステップＳ１０２における画像取得処理の詳細な流れの一例を示すフローチャートである。
【００６６】
図１３を参照すると、画像取得部１１０は、まず、現在のモードがスナップショットモードかリアルタイムモードかを判定する（ステップＳ１３２）。ここで、現在のモードがリアルタイムモードである場合には、画像取得部１１０は、撮像部１０２から最新の入力画像を取得する（ステップＳ１３４）。一方、現在のモードがスナップショットモードである場合には、画像取得部１１０は、スナップショットを新たに取得すべきか否かを判定する（ステップＳ１３６）。例えば、スナップショットモードが新たに開始される場合、又はスナップショットのリフレッシュがユーザにより指示された場合には、画像取得部１１０は、スナップショットを新たに取得すべきであると判定する。ここで、スナップショットを新たに取得すべきであると判定された場合には、画像取得部１１０は、撮像部１０２から最新の入力画像を取得し（ステップＳ１３８）、取得した入力画像をスナップショットとしてフレームメモリ１１２に記憶させる（ステップＳ１４０）。一方、スナップショットを新たに取得しなくてよいと判定された場合には、画像取得部１１０は、フレームメモリ１１２に記憶されているスナップショットを入力画像として取得する（ステップＳ１４２）。
【００６７】
＜４．操作シナリオ＞
次に、上述した端末装置１００を用いて実現され得る仮想オブジェクトの操作の例示的な３つのシナリオについて説明する。
【００６８】
［４−１．第１のシナリオ］
図１４Ａ及び図１４Ｂは、仮想オブジェクトの操作の第１のシナリオについて説明するための説明図である。
【００６９】
図１４Ａを参照すると、実空間に存在する物体１２ｄが映っている画像が、端末装置１００の画面に表示されている。物体１２ｄは、駅に設置される案内用の看板である。端末装置１００のデータ取得部１７０は、入力画像に物体１２ｄが映っていることが画像認識部１３０により認識されると、物体１２ｄと関連付けられている仮想オブジェクト１６ｄのオブジェクトデータを取得する。仮想オブジェクト１６ｄは、例えば、駅の見取り図、出口案内、及び時刻表などを表示する略平面状のオブジェクトである。図１４Ａの例では、仮想オブジェクト１６ｄの一部のみが物体１２ｄに重畳されている。仮想オブジェクト１６ｄの拘束領域は、例えば、物体１２ｄの表面に沿った領域である。拘束領域設定部１４０は、物体１２ｄの位置及び姿勢に基づいて、仮想オブジェクト１６ｄの拘束領域を設定する。そして、例えば、ユーザが端末装置１００の画面上で物体１２ｄを左上方向（図中の矢印参照）に向けてドラッグしたものとする。
【００７０】
図１４Ｂを参照すると、上述したドラッグの結果、仮想オブジェクト１６ｄが左奥の方向へスクロールしている。そして、ドラッグの前には表示されていなかった仮想オブジェクト１６ｄの時刻表の部分が、物体１２ｄに重畳されている。
【００７１】
［４−２．第２のシナリオ］
図１５Ａ及び図１５Ｂは、仮想オブジェクトの操作の第２のシナリオについて説明するための説明図である。
【００７２】
図１５Ａを参照すると、実空間に存在する物体１２ｅが映っている画像が、端末装置１００の画面に表示されている。物体１２ｅは、地図が描かれた案内板である。端末装置１００のデータ取得部１７０は、入力画像に物体１２ｅが映っていることが画像認識部１３０により認識されると、物体１２ｅと関連付けられている仮想オブジェクト１６ｅのオブジェクトデータを取得する。仮想オブジェクト１６ｅは、例えば、地図情報を表示する略平面状のオブジェクトである。地図情報の初期の表示内容は、物体１２ｅに実際に描かれている地図と同様の内容であってよい。仮想オブジェクト１６ｅの拘束領域は、例えば、物体１２ｅの表面に沿った領域である。拘束領域設定部１４０は、物体１２ｅの位置及び姿勢に基づいて、仮想オブジェクト１６ｅの拘束領域を設定する。そして、例えば、ユーザが端末装置１００の画面上の地図部分でピンチアウトを行ったものとする。
【００７３】
図１５Ｂを参照すると、上述したピンチアウトの結果、仮想オブジェクト１６ｅにより表示されている地図が拡大している。但し、当該地図は、単純に画面内で拡大されているのではなく、物体１２ｅの姿勢に応じて物体１２ｅの表面に沿った平面内で拡大されている。
【００７４】
なお、操作制御部１６０は、例えば、地図部分においてピンチイン又はピンチアウトが行われた場合には拘束領域内で地図を縮小又は拡大させ、地図部分以外の部分においてピンチイン又はピンチアウトが行われた場合には画像全体を撮像面と平行に縮小又は拡大させてもよい。
【００７５】
［４−３．第３のシナリオ］
図１６Ａを参照すると、図１４Ｂの例と同様、端末装置１００の画面に表示された物体１２ｄ及び仮想オブジェクト１６ｄが再び示されている。ここで、例えば、ユーザが端末装置１００の本体を右へ傾けたものとする。
【００７６】
図１６Ｂを参照すると、端末装置１００が傾けられた結果、仮想オブジェクト１６ｄが右手前の方向へスクロールしている。そして、図１６Ｂの例において物体１２ｄに重畳されていた仮想オブジェクト１６ｄの時刻表の部分が画面外へ消え、仮想オブジェクト１６ｄの出口案内の部分が物体１２ｄに重畳されている。
【００７７】
これらシナリオの例のように、本実施形態では、仮想オブジェクトは、ユーザ入力に応じて単純に画面内で上下左右に動くのではなく、関連付けられている物体の姿勢に応じてあたかも３次元の実空間内で動くかのように操作され得る。それにより、ユーザがまさに拡張された実空間内にいるという感覚、即ちＡＲ空間へのユーザの没入感を損なうことなく、ＡＲの仮想オブジェクトをユーザに操作させることができる。
【００７８】
なお、ここでは、入力画像に映る物体の表面に仮想オブジェクトが重畳される例について主に説明したが、仮想オブジェクトは、物体の表面から離れた位置に重畳されてもよい。また、表示制御部１９０は、入力画像のテクスチャなどに基づいて仮想オブジェクトを重畳すべき面を認識してもよい。例えば、建物の壁面、通路の床面など、入力画像内で一様なテクスチャを有する平面が、仮想オブジェクトを重畳すべき面として認識されてもよい。
【００７９】
［４−４．補助的なオブジェクトの表示］
図１７は、仮想オブジェクトの可動方向を表現する補助オブジェクトについて説明するための説明図である。
【００８０】
図１７を参照すると、端末装置１００の画面上に３つの物体１２ａ、１２ｂ及び１２ｃが表示されている。物体１２ａには、仮想オブジェクト１６ａが重畳されている。仮想オブジェクト１６ａの左端には、仮想オブジェクト１６ａが左手前方向へスクロール可能であることを表現する補助オブジェクト１７ａ（シャドウグラデーション）が表示されている。また、物体１２ｂには、仮想オブジェクト１６ｂが重畳されている。仮想オブジェクト１６ｂの下方には、仮想オブジェクト１６ｂが下方向へスクロール可能であることを表現する補助オブジェクト１７ｂ（矢印）が表示されている。物体１２ｃには、仮想オブジェクト１６ｃが重畳されている。仮想オブジェクト１６ｃの四隅には、仮想オブジェクト１６ｃが物体１２ｃの表面に沿って拡大可能であることを表現する補助オブジェクト１７ｃ（三角形のツメ）が表示されている。
【００８１】
このように、仮想オブジェクトの可動方向を表現する補助オブジェクトを仮想オブジェクトと関連付けて表示することで、仮想オブジェクトをどのように操作し得るかをユーザに容易に把握させることができる。
【００８２】
また、図１７の例において、仮想オブジェクト１６ａは、端末装置１００の最も近くに位置する仮想オブジェクトである。仮想オブジェクト１６ａには、太線枠である補助オブジェクト１８ａが重畳されている。補助オブジェクト１８ａは、いわゆるフォーカスを表現するオブジェクトである。複数の仮想オブジェクトのいずれも特にユーザに指定されることなく何らかのユーザ入力が行われた場合には、このようにフォーカスが当てられている仮想オブジェクトが操作制御部１６０により操作対象として特定され得る。
【００８３】
＜５．まとめ＞
ここまで、図１〜図１７を用いて、一実施形態に係る端末装置１００について詳細に説明した。本実施形態によれば、ユーザ入力に応じて操作されるＡＲの仮想オブジェクトの動きが、入力画像内で認識される物体の姿勢に基づいて実空間内に設定される拘束領域内で決定される。従って、仮想オブジェクトは、実世界の状況と無関係に操作されるのではなく、実世界に存在する物体の姿勢に即して３次元的に動くかのように操作され得る。それにより、仮想オブジェクトの操作に際して、ＡＲ空間へのユーザの没入感を損なうことなく、自然な操作及び表示を実現することができる。
【００８４】
また、本実施形態によれば、上記拘束領域は、入力画像内で認識される物体の表面に沿って設定され得る。そして、仮想オブジェクトは、所定の情報を表示する略平面状のオブジェクトであって、上記物体の表面に沿って移動、拡大、縮小又はスクロールされ得る。従って、ユーザは、あたかも実世界の物体上に表された情報を直接操作するかのような現実感を持ちながら、より豊富に与えられる情報を自在に閲覧することができる。
【００８５】
なお、本明細書において説明した端末装置１００による処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【００８６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本技術はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００８７】
なお、本技術は以下のような構成も取ることができる。
（１）
実空間を映した入力画像を取得する画像取得部と、
前記入力画像に仮想オブジェクトを重畳して表示する表示制御部と、
ユーザ入力を検出する検出部と、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、
を備える端末装置。
（２）
前記領域は、前記入力画像内で認識される前記物体の表面に沿って設定される、前記（１）に記載の端末装置。
（３）
前記仮想オブジェクトは、所定の情報を表示する略平面状のオブジェクトであり、
前記仮想オブジェクトの動きは、前記仮想オブジェクトの移動、拡大、縮小又はスクロールである、
前記（２）に記載の端末装置。
（４）
前記検出部は、前記仮想オブジェクトが表示される画面へのユーザ入力を検出し、
前記操作制御部は、前記画面上の入力位置に対応する前記領域内の位置を算出し、算出した当該位置から前記仮想オブジェクトの動きを決定する、
前記（２）又は（３）に記載の端末装置。
（５）
前記検出部は、前記画面上でのドラッグをユーザ入力として検出し、
前記操作制御部は、前記端末装置と前記領域との間の距離に応じて、前記画面上でのドラッグ量に対する前記仮想オブジェクトの動きの量の割合を変化させる、
前記（４）に記載の端末装置。
（６）
前記検出部は、前記端末装置の動きをセンサを用いてユーザ入力として検出し、
前記操作制御部は、前記端末装置の動きを表す第１のベクトルに対応する前記領域内の第２のベクトルを算出し、算出した当該第２のベクトルから前記仮想オブジェクトの動きを決定する、
前記（２）又は（３）に記載の端末装置。
（７）
前記表示制御部は、前記仮想オブジェクトの前記領域内での可動方向を表現する補助的なオブジェクトを、前記入力画像にさらに重畳する、前記（１）〜（６）のいずれか１項に記載の端末装置。
（８）
前記画像取得部は、所定のユーザ入力が検出された場合に、撮像装置により撮像されるスナップショットを入力画像として取得し、
前記表示制御部は、前記仮想オブジェクトの動きを前記スナップショット上で表現するする、
前記（１）〜（７）のいずれか１項に記載の端末装置。
（９）
実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置におけるオブジェクト制御方法であって、
ユーザ入力を検出するステップと、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定するステップと、
を含む、オブジェクト制御方法。
（１０）
実空間を映した入力画像を取得し、前記入力画像に仮想オブジェクトを重畳して表示する端末装置を制御するコンピュータを、
ユーザ入力を検出する検出部と、
前記ユーザ入力に応じて操作される前記仮想オブジェクトの動きを、前記入力画像内で認識される物体の姿勢に基づいて前記実空間内に設定される高々２次元の領域内で決定する操作制御部と、
として機能させるためのプログラム。
【符号の説明】
【００８８】
１００    端末装置
１１０    画像取得部
１５０    検出部
１６０    操作制御部
１９０    表示制御部
【図１】
0005724543.tif 000005
【図２】
0005724543.tif 000006
【図３】
0005724543.tif 000007
【図４】
0005724543.tif 000008
【図５Ａ】
0005724543.tif 000009
【図５Ｂ】
0005724543.tif 000010
【図５Ｃ】
0005724543.tif 000011
【図６】
0005724543.tif 000012
【図７】
0005724543.tif 000013
【図８】
0005724543.tif 000014
【図９】
0005724543.tif 000015
【図１０】
0005724543.tif 000016
【図１１】
0005724543.tif 000017
【図１２】
0005724543.tif 000018
【図１３】
0005724543.tif 000019
【図１４Ａ】
0005724543.tif 000020
【図１４Ｂ】
0005724543.tif 000021
【図１５Ａ】
0005724543.tif 000022
【図１５Ｂ】
0005724543.tif 000023
【図１６Ａ】
0005724543.tif 000024
【図１６Ｂ】
0005724543.tif 000025
【図１７】
0005724543.tif 000026