(57)【特許請求の範囲】
【請求項１】
第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータを指定する前記ユーザ入力を検出する検出部と；
実空間内に存在する１つ以上の通信装置の位置を表現する環境マップにおいて前記第１の通信装置の下方に位置する通信装置を前記ユーザ入力により指定された前記データの送信先となるべき第２の通信装置として前記環境マップから選択する選択部と；
前記第１の通信装置から前記第２の通信装置へ、前記第１の通信装置が有する前記データを送信させる通信制御部と；
を備える通信制御装置。
【請求項２】
前記選択部は、前記環境マップにおいて、前記第１の通信装置の下方に位置する通信装置が複数存在する場合には、当該複数の通信装置のうち前記第１の通信装置から最も近くに位置する通信装置を、前記第２の通信装置として選択する、請求項１に記載の通信制御装置。
【請求項３】
前記ユーザ入力は、前記第１の通信装置が有する画面上での当該画面に表示されたアイコンについてのクリックまたはタップであり、いずれのアイコンがユーザによりクリックまたはタップされたかに応じて、前記第１の通信装置から送信されるべき前記データが特定される、請求項１に記載の通信装置。
【請求項４】
通信制御装置により実行される通信制御方法において：
第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータを指定する前記ユーザ入力を検出するステップと；
実空間内に存在する１つ以上の通信装置の位置を表現する環境マップにおいて前記第１の通信装置の下方に位置する通信装置を前記ユーザ入力により指定された前記データの送信先となるべき第２の通信装置として前記環境マップから選択するステップと；
前記第１の通信装置から前記第２の通信装置へ、前記第１の通信装置が有する前記データを送信させるステップと；
を含む、通信制御方法。
【請求項５】
通信制御装置を制御するコンピュータを：
第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータを指定する前記ユーザ入力を検出する検出部と；
実空間内に存在する１つ以上の通信装置の位置を表現する環境マップにおいて前記第１の通信装置の下方に位置する通信装置を前記ユーザ入力により指定された前記データの送信先となるべき第２の通信装置として前記環境マップから選択する選択部と；
前記第１の通信装置から前記第２の通信装置へ、前記第１の通信装置が有する前記データを送信させる通信制御部と；
として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、通信制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実空間を撮影して得られる画像を加工した上でユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においては、コンピュータが実空間の状況を把握することが重要である。実空間の状況の把握を目的とした技術としては、例えば、下記特許文献１に、カメラの位置や姿勢とカメラの画像に映る特徴点の位置とを同時に推定可能なＳＬＡＭ（Simultaneous  Localization  And  Mapping）とよばれる技術を応用して、実空間内に存在する物体の３次元位置を表現する環境マップを動的に生成する手法が記載されている。また、単眼カメラを用いたＳＬＡＭ技術の基本的な原理は、下記非特許文献１において説明されている。
【０００３】
ところで、情報通信技術が一般ユーザの間に広く普及した現在において、相互に通信可能な複数の通信装置を保有するユーザは少なくない。例えば、ＰＣ（Personal  Computer）からプリンタへの印刷データの送信、デジタルカメラからＰＣへの画像データの送信、デスクトップＰＣと携帯端末との間のデータ交換及び無線機器間の接続データの交換などは、いずれも相互に通信可能な通信装置間の通信である。このような通信装置間の通信に際してのユーザの利便性を向上するための技術は、例えば下記特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３０４２６８号公報
【特許文献２】特開２００１−１４２８２５号公報
【非特許文献】
【０００５】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に、上述した通信装置間でデータを交換する際、ユーザは、送信元又は送信先のいずれかの装置の画面上で送信したいデータと相手方の装置とを指定し、データ送信コマンドを発行する。データ送信コマンドの発行のやり方は、アイコンのドラッグ、メニューの選択又はテキストベースのコマンド入力など様々である。しかしながら、いずれのやり方においても、ユーザは、相手方の装置を表すアドレス、識別名又はアイコンなどを知っておかなければならない。かかる点は、ユーザにとって煩雑であり、直感的な操作を阻害していた。また、上記特許文献２に記載された「Ｐｉｃｋ  ａｎｄ  Ｄｒｏｐ」は、直感的なユーザインタフェースによる装置間のデータ交換を指向した手法である。しかしながら、「Ｐｉｃｋ  ａｎｄ  Ｄｒｏｐ」は、送信元及び送信先の双方の装置が特別なインタフェースを備えておくことが求められるため、ユーザが十分な利便性を享受し得るものではなかった。
【０００７】
これに対して、上述した環境マップは、実空間内に存在する通信装置の位置をコンピュータが的確に把握することを可能とする。そのため、環境マップを応用したユーザインタフェースによって、より直感的に装置間のデータ送信の指示を与えることが可能となるものと期待される。
【０００８】
そこで、本発明は、環境マップを応用することにより装置間のデータ送信のための直感的なユーザインタフェースを提供する、新規かつ改良された通信制御装置、通信制御方法及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００９】
ある実施形態によれば、第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータと方向とを指定する上記ユーザ入力を検出する検出部と、実空間内に存在する１つ以上の通信装置の位置を表現する環境マップから、上記ユーザ入力により指定された上記方向に基づいて、指定された上記データの送信先となるべき第２の通信装置を選択する選択部と、上記第１の通信装置から上記第２の通信装置へ、上記第１の通信装置が有する上記データを送信させる通信制御部と、を備える通信制御装置が提供される。
【００１０】
かかる構成によれば、データ送信元の第１の通信装置に対するユーザ入力が検出されると、ユーザ入力により指定された方向に基づいて環境マップから選択される第２の通信装置へ、第１の通信装置から指定されたデータが送信される。
【００１１】
また、上記選択部は、上記環境マップにおいて、上記第１の通信装置を基準として上記ユーザ入力により指定された上記方向に位置する通信装置を、上記第２の通信装置として選択してもよい。
【００１２】
また、上記選択部は、上記環境マップにおける上記第１の通信装置の位置及び姿勢並びに上記ユーザ入力により指定された上記方向に基づいて、上記第１の通信装置を起点とする１つの直線を特定し、当該直線の少なくとも近傍に位置する通信装置を上記第２の通信装置として選択してもよい。
【００１３】
また、上記選択部は、上記環境マップにおいて、上記第１の通信装置を基準として上記ユーザ入力により指定された上記方向に位置する通信装置が複数存在する場合には、当該複数の通信装置のうち上記第１の通信装置から最も近くに位置する通信装置を、上記第２の通信装置として選択してもよい。
【００１４】
また、上記通信制御装置は、上記第１の通信装置から上記第２の通信装置へ上記データが送信される際に、データ送信を表すアニメーションを表示装置に表示させる表示制御部、をさらに備えてもよい。
【００１５】
また、上記ユーザ入力は、上記第１の通信装置が有する画面上での当該画面に表示されたアイコンについてのドラッグであり、いずれのアイコンがユーザによりドラッグされたかに応じて、上記第１の通信装置から送信されるべき上記データが特定されてもよい。
【００１６】
また、別の実施形態によれば、通信制御装置により実行される通信制御方法において、第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータと方向とを指定する上記ユーザ入力を検出するステップと、実空間内に存在する１つ以上の通信装置の位置を表現する環境マップから、上記ユーザ入力により指定された上記方向に基づいて、指定された上記データの送信先となるべき第２の通信装置を選択するステップと、上記第１の通信装置から上記第２の通信装置へ、上記第１の通信装置が有する上記データを送信させるステップと、を含む、通信制御方法が提供される。
【００１７】
また、別の実施形態によれば、通信制御装置を制御するコンピュータを、第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータと方向とを指定する上記ユーザ入力を検出する検出部と、実空間内に存在する１つ以上の通信装置の位置を表現する環境マップから、上記ユーザ入力により指定された上記方向に基づいて、指定された上記データの送信先となるべき第２の通信装置を選択する選択部と、上記第１の通信装置から上記第２の通信装置へ、上記第１の通信装置が有する上記データを送信させる通信制御部と、として機能させるための、プログラムが提供される。
【００１８】
また、別の実施形態によれば、第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータを指定する上記ユーザ入力を検出する検出部と、実空間内に存在する１つ以上の通信装置の位置を表現する環境マップにおける上記第１の通信装置の位置に基づいて、上記ユーザ入力により指定された上記データの送信先となるべき第２の通信装置を上記環境マップから選択する選択部と、上記第１の通信装置から上記第２の通信装置へ、上記第１の通信装置が有する上記データを送信させる通信制御部と、を備える通信制御装置が提供される。
【００１９】
また、上記選択部は、上記環境マップにおいて上記第１の通信装置の下方に位置する通信装置を上記第２の通信装置として選択してもよい。
【００２０】
また、別の実施形態によれば、通信制御装置により実行される通信制御方法において、第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータを指定する上記ユーザ入力を検出するステップと、実空間内に存在する１つ以上の通信装置の位置を表現する環境マップにおける上記第１の通信装置の位置に基づいて、上記ユーザ入力により指定された上記データの送信先となるべき第２の通信装置を上記環境マップから選択するステップと、上記第１の通信装置から上記第２の通信装置へ、上記第１の通信装置が有する上記データを送信させるステップと、を含む、通信制御方法が提供される。
【００２１】
また、別の実施形態によれば、通信制御装置を制御するコンピュータを、第１の通信装置に対するユーザ入力であって、当該第１の通信装置が有するいずれかのデータを指定する上記ユーザ入力を検出する検出部と、実空間内に存在する１つ以上の通信装置の位置を表現する環境マップにおける上記第１の通信装置の位置に基づいて、上記ユーザ入力により指定された上記データの送信先となるべき第２の通信装置を上記環境マップから選択する選択部と、上記第１の通信装置から上記第２の通信装置へ、上記第１の通信装置が有する上記データを送信させる通信制御部と、として機能させるための、プログラムが提供される。
【発明の効果】
【００２２】
以上説明したように、本発明に係る通信制御装置、通信制御方法及びプログラムによれば、装置間のデータ送信のための直感的なユーザインタフェースを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】一実施形態に係るシステムの概要について説明するための模式図である。
【図２】一実施形態に係る通信制御装置において取得され得る入力画像の一例を示す説明図である。
【図３】一実施形態に係る通信装置の構成の一例を示すブロック図である。
【図４】一実施形態に係る通信制御装置の構成の一例を示すブロック図である。
【図５】一実施形態に係る自己位置検出処理の流れの一例を示すフローチャートである。
【図６】オブジェクト上に設定される特徴点について説明するための説明図である。
【図７】特徴点の追加について説明するための説明図である。
【図８】予測モデルの一例について説明するための説明図である。
【図９】特徴データの構成の一例について説明するための説明図である。
【図１０】一実施形態に係るオブジェクト認識処理の流れの一例を示すフローチャートである。
【図１１】一実施形態に係る通信装置に対するユーザ入力について説明するための説明図である。
【図１２】一実施形態に係る送信先の選択について説明するための第１の説明図である。
【図１３】一実施形態に係る送信先の選択について説明するための第２の説明図である。
【図１４】一実施形態に係る送信先選択処理の流れの一例を示すフローチャートである。
【図１５】一実施形態に係るデータ送信に関するアニメーションの一例を示す説明図である。
【図１６】一実施形態に係る通信制御処理の流れの一例を示すフローチャートである。
【図１７】一変形例に係る送信先の選択について説明するための説明図である。
【図１８】一変形例に係る送信先選択処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２５】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．システムの概要
２．一実施形態に係る通信装置の構成
３．一実施形態に係る通信制御装置の構成
３−１．撮像部
３−２．環境マップ生成部
３−３．通信処理部
３−４．表示制御部
３−５．通信制御処理の流れ
４．変形例
５．まとめ
【００２６】
＜１．システムの概要＞
まず、図１及び図２を用いて、本発明の一実施形態に係るシステムの概要について説明する。図１は、本発明の一実施形態に係るシステムの概要について説明するための模式図である。図２は、図１に例示した一実施形態に係る通信制御装置１００において取得され得る入力画像の一例を示す説明図である。
【００２７】
図１を参照すると、通信制御装置１００が使用され得る一例としての環境１が示されている。環境１の内部には、テーブル１０、並びに通信装置２０ａ、２０ｂ、２０ｃ及び２０ｄが存在している。テーブル１０は、環境１の底面である床に設置されている。通信装置２０ａは、例えば、スマートフォンなどの携帯端末に相当し、ユーザにより把持されている。通信装置２０ｂは、例えば、ノートブックＰＣ（Personal  Computer）に相当し、テーブル１０の上に位置している。通信装置２０ｃは、例えば、デジタルカメラに相当し、テーブル１０の上に位置している。通信装置２０ｄは、例えば、プリンタに相当し、床に設置されている。これら通信装置２０ａ、２０ｂ、２０ｃ及び２０ｄは、有線又は無線による通信接続を介して、相互に通信することができる。
【００２８】
通信制御装置１００は、ユーザＵａに装着されるカメラ及びＨＭＤ（Head  Mounted  Display）１０４を有する通信装置である。通信制御装置１００の本体は、必ずしもユーザＵａに装着されなくてもよい。通信制御装置１００もまた、有線又は無線による通信接続を介して、通信装置２０ａ、２０ｂ、２０ｃ及び２０ｄと通信することができる。通信制御装置１００は、図１に示した一例としての環境１を撮影し、一連の入力画像を取得する。そして、通信制御装置１００は、取得した入力画像に基づいて、後に説明する環境マップを構築する。さらに、通信制御装置１００は、環境１の内部に存在する通信装置２０ａ、２０ｂ、２０ｃ及び２０ｄのいずれかに対する、データの送信に関するユーザ入力を検出する。そして、通信制御装置１００は、検出したユーザ入力に基づいて、１つの装置から他の装置へのデータの送信を制御する。
【００２９】
図２は、通信制御装置１００により取得される一例としての入力画像１０６を示す説明図である。図２を参照すると、入力画像１０６には、図１に示した通信装置２０ａ及び２０ｄが映っている。また、通信装置２０ａの画面上には、通信装置２０ａが有するデータにそれぞれ対応する２つのアイコンが表示されている。本実施形態では、例えば、ユーザＵａがかかるアイコンに対して後に説明するユーザ入力を行うことにより、通信制御装置１００の制御の下に、通信装置２０ａから他の通信装置へのデータ送信が行われる。
【００３０】
なお、本明細書において、通信装置２０ａ、２０ｂ、２０ｃ及び２０ｄを互いに区別する必要がない場合には、符号の末尾のアルファベットを省略することにより、これら装置を通信装置２０と総称する。また、その他の要素についても同様とする。
【００３１】
＜２．一実施形態に係る通信装置の構成＞
図３は、本発明の一実施形態に係る通信装置２０の構成の一例を示すブロック図である。図３を参照すると、通信装置２０は、記憶部４０、表示部４２、ユーザインタフェース（Ｉ／Ｆ）４４、通信インタフェース（Ｉ／Ｆ）４６及び制御部４８を備える。
【００３２】
記憶部４０は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、データを記憶する。記憶部４０により記憶されるデータは、アプリケーションデータ、テキストデータ、画像データ、音声データ又はプログラムデータなど、任意の種類のデータであってよい。
【００３３】
表示部４２は、制御部４８による制御に応じて、通信装置２０に設けられる画面上に情報を表示する。例えば、表示部４２は、図２に例示したように、記憶部４０に記憶されているデータにそれぞれ対応するアイコンを画面上に表示する。また、表示部４２は、記憶部４０に記憶されている個々のデータを格納するデータファイルのファイル名の一覧などを画面上に表示してもよい。これらアイコン又はファイル名は、ユーザが通信装置２０から他の装置へデータを送信しようとする際、送信すべきデータを特定するために用いられる。
【００３４】
ユーザＩ／Ｆ４４は、ユーザが通信装置２０に情報を入力し又は指示を与えるための入力手段を提供する。本実施形態において、ユーザＩ／Ｆ４４は、通信装置２０の画面上の任意の位置をユーザが指定することのできるポインティングデバイスを含む。ポインティングデバイスとは、例えば、表示部４２と一体に構成されるタッチパネルであってもよく、その代わりに、マウス又はタッチパッドなどであってもよい。さらに、ユーザＩ／Ｆ４４は、キーボード、ボタン又はホイールなどを追加的に含んでもよい。
【００３５】
通信Ｉ／Ｆ４６は、通信装置２０による他の装置（通信制御装置１００及び他の通信装置２０を含む）との間の通信を仲介する。通信Ｉ／Ｆ４６は、例えば、無線ＬＡＮ（Local  Area  Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）若しくはＷｉＭａｘ（登録商標）などの無線通信インタフェースであってもよく、又は有線ＬＡＮ若しくはＵＳＢ（Universal  Serial  Bus）などの有線通信インタフェースであってもよい。
【００３６】
制御部４８は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサを用いて、通信装置２０の動作全般を制御する。例えば、制御部４８は、記憶部４０に格納されるプログラムを実行することにより、通信装置２０の固有の機能（ＰＣの情報処理機能、スマートフォンの通話機能又はその他のアプリケーション機能など）を動作させる。また、制御部４８は、例えば、記憶部４０に記憶されているデータにそれぞれ対応するアイコン等を表示部４２により表示させる。さらに、本実施形態において、制御部４８は、例えば、ユーザＩ／Ｆ４４を介してデータの送信に関する所定のユーザ入力を検知すると、当該ユーザ入力の内容を通知するユーザ入力信号を、通信Ｉ／Ｆ４６を介して通信制御装置１００へ送信する。なお、データの送信に関するユーザ入力については、後により具体的に説明する。
【００３７】
さらに、制御部４８は、通信制御装置１００からの指示に応じて、ユーザにより指定されたデータを記憶部４０から読み出し、当該データを通信Ｉ／Ｆ４６を介して他の通信装置へ送信する。通信装置２０からのデータの送信は、例えば、ＦＴＰ（File  Transfer  Protocol）、ＨＴＴＰ（Hyper-Text  Transfer  Protocol）又はＳａｍｂａなどの仕組みを用いて実現され得る。また、データの送信先は、通信制御装置１００により選択される。
【００３８】
通信制御装置１００は、このような通信装置２０から他の通信装置へのデータの送信を制御するための装置である。次節では、本実施形態に係る通信制御装置１００の構成について具体的に説明する。
【００３９】
＜３．一実施形態に係る通信制御装置の構成＞
図４は、本発明の一実施形態に係る通信制御装置１００の構成の一例を示すブロック図である。図４を参照すると、通信制御装置１００は、撮像部１０２、環境マップ生成部１１０、通信処理部１８０及び表示制御部１９０を備える。
【００４０】
［３−１．撮像部］
撮像部１０２は、例えば、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を有するカメラとして実現され得る。撮像部１０２は、通信制御装置１００の外部に設けられてもよい。撮像部１０２は、図１に例示した環境１などの実空間を撮影することにより取得した画像を、入力画像として環境マップ生成部１１０及び表示制御部１９０へ出力する。
【００４１】
［３−２．環境マップ生成部］
環境マップ生成部１１０は、撮像部１０２から入力される入力画像、及びデータ記憶部１３０により記憶されている後述するオブジェクトの特徴データに基づいて、実空間内に存在する１つ以上の物体の位置等を表現する環境マップを生成する。図４に示しているように、本実施形態において、環境マップ生成部１１０は、自己位置検出部１２０、データ記憶部１３０、画像認識部１４０、環境マップ構築部１５０、及び環境マップ記憶部１５２を含む。
【００４２】
（１）自己位置検出部
自己位置検出部１２０は、撮像部１０２から入力される入力画像、及びデータ記憶部１３０により記憶されている特徴データに基づいて、入力画像を映したカメラの位置を動的に検出する。例えば、自己位置検出部１２０は、上記非特許文献１に記載されているＳＬＡＭ技術を応用することにより、カメラが単眼カメラである場合にも、当該カメラの位置及び姿勢、並びにカメラの撮像面における特徴点の位置を、フレームごとに動的に決定することができる。
【００４３】
まず、図５を用いて、自己位置検出部１２０によるＳＬＡＭ技術を応用した自己位置検出処理の全体的な流れについて説明する。次に、図６〜図８を用いて、自己位置検出処理の詳細を説明する。
【００４４】
図５は、自己位置検出部１２０によるＳＬＡＭ技術を応用した自己位置検出処理の流れの一例を示すフローチャートである。図５において、自己位置検出処理が開始すると、自己位置検出部１２０は、まず、状態変数を初期化する（ステップＳ１０２）。本実施形態において、状態変数とは、カメラの位置及び姿勢（回転角）、当該カメラの移動速度及び角速度、並びに１つ以上の特徴点の位置を要素として含むベクトルである。そして、自己位置検出部１２０は、撮像部１０２から入力画像を順次取得する（ステップＳ１１２）。ステップ１１２からステップＳ１１８までの処理は、各入力画像について（即ち毎フレーム）繰り返され得る。
【００４５】
ステップＳ１１４では、自己位置検出部１２０は、入力画像に映る特徴点を追跡する。例えば、自己位置検出部１２０は、データ記憶部１３０により予め記憶されている特徴点ごとのパッチ（例えば特徴点を中心とする３×３＝９画素の小画像）を入力画像から検出する。ここで検出されたパッチの位置、即ち特徴点の位置は、後の状態変数の更新の際に用いられる。
【００４６】
ステップＳ１１６では、自己位置検出部１２０は、所定の予測モデルに基づいて、例えば１フレーム後の状態変数の予測値を生成する。また、ステップＳ１１８では、自己位置検出部１２０は、ステップＳ１１６において生成した状態変数の予測値と、ステップＳ１１４において検出した特徴点の位置に応じた観測値とを用いて、状態変数を更新する。自己位置検出部１２０は、ステップＳ１１６及びＳ１１８における処理を、拡張カルマンフィルタの原理に基づいて実行する。
【００４７】
このような処理の結果として、毎フレーム更新される状態変数の値が出力される。以下、特徴点の追跡（ステップＳ１１４）、状態変数の予測（ステップＳ１１６）、状態変数の更新（ステップＳ１１８）の各処理の内容について、より具体的に説明する。
【００４８】
（１−１）特徴点の追跡
本実施形態において、データ記憶部１３０は、実空間内に存在し得る物体（通信装置２０及びその他の物体）に対応するオブジェクトの特徴を表す特徴データを予め記憶している。特徴データには、例えば、各オブジェクトの外観の特徴を表す１つ以上の特徴点についての小画像、即ちパッチ（Patch）が含まれる。パッチとは、例えば、特徴点を中心とする３×３＝９画素よりなる小画像であってよい。
【００４９】
図６は、オブジェクトの２つの例、並びに各オブジェクト上に設定される特徴点（ＦＰ：Feature  Point）及びパッチの例を示している。図６の左のオブジェクトは、ＰＣを表すオブジェクトである（６ａ参照）。当該オブジェクト上には、特徴点ＦＰ１を含む複数の特徴点が設定されている。さらに、特徴点ＦＰ１と関連付けて、パッチＰｔｈ１が定義されている。一方、図６の右のオブジェクトは、カレンダーを表すオブジェクトである（６ｂ参照）。当該オブジェクト上には、特徴点ＦＰ２を含む複数の特徴点が設定されている。さらに、特徴点ＦＰ２と関連付けて、パッチＰｔｈ２が定義されている。
【００５０】
自己位置検出部１２０は、撮像部１０２から入力画像を取得すると、入力画像に含まれる部分画像と、データ記憶部１３０に予め記憶されている図６に例示した特徴点ごとのパッチとを照合する。そして、自己位置検出部１２０は、照合の結果として、入力画像に含まれる特徴点の位置（例えば検出されたパッチの中心画素の位置）を特定する。
【００５１】
なお、特徴点の追跡（図５のステップＳ１１４）において、追跡される全ての特徴点に関するデータが予めデータ記憶部１３０に記憶されていなくてもよい。例えば、図７の例では、時刻Ｔ＝ｔ−１において、４つの特徴点が入力画像内で検出されている（７ａ参照）。次に、時刻Ｔ＝ｔにおいてカメラの位置又は姿勢が変化すると、時刻Ｔ＝ｔ−１において入力画像に映っていた４つの特徴点のうち２つのみが入力画像内に映っている。この場合に、自己位置検出部１２０は、入力画像内で特徴的な画素のパターンを有する位置に新たに特徴点を設定し、その新たな特徴点を後のフレームにおける自己位置検出処理に用いてもよい。例えば、図７の例では、時刻Ｔ＝ｔにおいて、３つの新たな特徴点がオブジェクト上に設定されている（７ｂ参照）。かかる点は、ＳＬＡＭ技術の１つの特長であり、それにより、予め全ての特徴点を設定しておくコストを削減できると共に、追加される多数の特徴点を用いて処理の精度を高めることができる。
【００５２】
（１−２）状態変数の予測
本実施形態において、自己位置検出部１２０は、拡張カルマンフィルタを適用すべき状態変数として、次式に示す状態変数Ｘを用いる。
【００５３】
【数１】
0005488011.tif 000002
（１）
【００５４】
式（１）における状態変数Ｘの第１の要素は、次式の通り、実空間に設定される座標系である世界座標系（ｘ，ｙ，ｚ）でのカメラの３次元位置を表す。
【００５５】
【数２】
0005488011.tif 000003
（２）
【００５６】
また、状態変数の第２の要素は、カメラの姿勢を表す回転行列に対応する四元数（クォータニオン）を要素として有する４次元ベクトルωである。なお、四元数の変わりにオイラー角を用いてカメラの姿勢が表されてもよい。また、状態変数の第３及び第４の要素は、カメラの移動速度及び角速度をそれぞれ表す。
【００５７】
さらに、状態変数の第５及びそれ以降の要素は、次式の通り、世界座標系での特徴点ＦＰｉ（ｉ＝１…Ｎ）の３次元位置ｐｉをそれぞれ表す。なお、上述したように、特徴点の数Ｎは、処理の間変化し得る。
【００５８】
【数３】
0005488011.tif 000004
（３）
【００５９】
自己位置検出部１２０は、ステップＳ１０２において初期化された状態変数Ｘの値、又は前フレームにおいて更新された状態変数Ｘの値に基づいて、最新のフレームについての状態変数の予測値を生成する。状態変数の予測値は、次式に示す多次元正規分布に従った拡張カルマンフィルタの状態方程式に従って生成される。
【００６０】
【数４】
0005488011.tif 000005
【００６１】
ここで、Ｆはシステムの状態遷移に関する予測モデル、ａは予測条件である。また、ｗはガウシアンノイズであり、例えばモデル近似誤差や観測誤差等を含み得る。一般的に、ガウシアンノイズｗの平均はゼロとなる。
【００６２】
図８は、本実施形態に係る予測モデルの一例について説明するための説明図である。図８を参照すると、本実施形態に係る予測モデルにおける２つの予測条件が示されている。まず、第１の条件として、特徴点の世界座標系における３次元位置は変化しないものとする。即ち、時刻Ｔにおける特徴点ＦＰ１の３次元位置をｐＴとすると、次式の関係が成立する。
【００６３】
【数５】
0005488011.tif 000006
（５）
【００６４】
次に、第２の条件として、カメラの運動は等速運動であるものとする。即ち、時刻Ｔ＝ｔ−１から時刻Ｔ＝ｔにかけてのカメラの速度及び角速度について、次式の関係が成立する。
【００６５】
【数６】
0005488011.tif 000007
（６）
0005488011.tif 000008
（７）
【００６６】
このような予測モデル及び式（４）に示した状態方程式に基づいて、自己位置検出部１２０は、最新のフレームについての状態変数の予測値を生成する。
【００６７】
（１−３）状態変数の更新
そして、自己位置検出部１２０は、観測方程式を用いて、例えば状態変数の予測値から予測される観測情報と、特徴点の追跡結果として得られる実際の観測情報との誤差を評価する。なお、式（８）におけるνがその誤差である。
【００６８】
【数７】
0005488011.tif 000009
【００６９】
ここで、Ｈは観測モデルを表す。例えば、特徴点ＦＰｉの撮像面（ｕ−ｖ平面）上の位置を、次式のように定義する。
【００７０】
【数８】
0005488011.tif 000010
【００７１】
ここで、カメラの位置ｘ、カメラの姿勢ω、及び特徴点ＦＰｉの３次元位置ｐｉは、いずれも状態変数Ｘの要素として与えられる。そうすると、ピンホールモデルに従い、特徴点ＦＰｉの撮像面上の位置は次式を用いて導かれる。
【００７２】
【数９】
0005488011.tif 000011
（１１）
【００７３】
ここで、λは正規化のためのパラメータ、Ａはカメラ内部パラメータ、Ｒωは状態変数Ｘに含まれるカメラの姿勢を表す四元数ωに対応する回転行列である。カメラ内部パラメータＡは、入力画像を撮影するカメラの特性に応じて、予め次式のように与えられる。
【００７４】
【数１０】
0005488011.tif 000012
（１２）
【００７５】
ここで、ｆは焦点距離、θは画像軸の直交性（理想値は９０°）、ｋｕは撮像面の縦軸のスケール（世界座標系から撮像面の座標系へのスケール変化率）、ｋｖは撮像面の横軸のスケール、（ｕｏ，ｖｏ）は撮像面の中心位置である。
【００７６】
従って、式（１１）を用いて導かれる予測される観測情報、即ち各特徴点の撮像面上の位置と、図５のステップＳ１１４における特徴点の追跡結果との間の誤差を最小にする状態変数Ｘを探索することにより、尤もらしい最新の状態変数Ｘを得ることができる。
【００７７】
【数１１】
0005488011.tif 000013
【００７８】
自己位置検出部１２０は、このようにＳＬＡＭ技術を応用して動的に更新したカメラの位置ｘ及び姿勢ωを、環境マップ構築部１５０、通信処理部１８０及び表示制御部１９０へ出力する。
【００７９】
（２）データ記憶部
データ記憶部１３０は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。図４では、データ記憶部１３０が環境マップ生成部１１０の一部である例を示しているが、かかる例に限定されず、データ記憶部１３０は環境マップ生成部１１０の外部に設けられてもよい。図９は、特徴データの構成の一例について説明するための説明図である。
【００８０】
図９を参照すると、オブジェクトＯｂｊ１についての一例としての特徴データＦＤ１が示されている。特徴データＦＤ１は、オブジェクト名称ＦＤ１１、６方向から撮影した画像データＦＤ１２、パッチデータＤＦ１３、３次元形状データＦＤ１４、及びオントロジーデータＦＤ１５を含む。
【００８１】
オブジェクト名称ＦＤ１１は、“スマートフォンＡ”など、対応するオブジェクトを特定することのできる名称である。
【００８２】
画像データＦＤ１２は、例えば、対応するオブジェクトを前・後・左・右・上・下の６方向からそれぞれ撮影した６つの画像データを含む。パッチデータＦＤ１３は、各オブジェクト上に設定される１つ以上の特徴点ごとの、各特徴点を中心とする小画像の集合である。画像データＦＤ１２及びパッチデータＦＤ１３は、後述する画像認識部１４０によるオブジェクト認識処理のために使用され得る。また、パッチデータＦＤ１３は、前述した自己位置検出部１２０による自己位置検出処理のために使用され得る。
【００８３】
３次元形状データＦＤ１４は、対応するオブジェクトの形状を認識するためのポリゴン情報、及び特徴点の３次元的な位置情報を含む。３次元形状データＦＤ１４は、後述する環境マップ構築部１５０による環境マップ構築処理のために使用され得る。
【００８４】
オントロジーデータＦＤ１５は、例えば、環境マップ構築部１５０による環境マップ構築処理を支援するために使用され得るデータである。図９の例では、オントロジーデータＦＤ１５は、スマートフォンであるオブジェクトＯｂｊ１が、テーブルに対応するオブジェクトに接する可能性が高いこと、及び本棚に対応するオブジェクトに接する可能性が低いことを表している。
【００８５】
（３）画像認識部
画像認識部１４０は、データ記憶部１３０により記憶されている上述した特徴データを用いて、入力画像に映っている物体がそれぞれどのオブジェクトに対応するかを特定する。
【００８６】
図１０は、画像認識部１４０によるオブジェクト認識処理の流れの一例を示すフローチャートである。図１０を参照すると、まず、画像認識部１４０は、撮像部１０２から入力画像を取得する（ステップＳ２１２）。次に、画像認識部１４０は、入力画像に含まれる部分画像と、特徴データに含まれる各オブジェクトの１つ以上の特徴点のパッチとを照合し、入力画像に含まれる特徴点を抽出する（ステップＳ２１４）。なお、画像認識部１４０によるオブジェクト認識処理に用いられる特徴点と、自己位置検出部１２０による自己位置検出処理に用いられる特徴点とは、必ずしも同じでなくてもよい。但し、双方の処理で用いられる特徴点が共通している場合には、画像認識部１４０は、自己位置検出部１２０による特徴点の追跡結果を再利用してもよい。
【００８７】
次に、画像認識部１４０は、特徴点の抽出結果に基づいて、入力画像に映っているオブジェクトを特定する（ステップＳ２１６）。例えば、画像認識部１４０は、ある領域内で１つのオブジェクトに属す特徴点が高い密度で抽出された場合には、当該領域にそのオブジェクトが映っていると認識し得る。そして、画像認識部１４０は、特定したオブジェクトのオブジェクト名称（又は識別子）及びそのオブジェクトに属す特徴点の撮像面上の位置を、環境マップ構築部１５０へ出力する（ステップＳ２１８）。
【００８８】
（４）環境マップ構築部
環境マップ構築部１５０は、自己位置検出部１２０から入力されるカメラの位置及び姿勢、画像認識部１４０から入力される特徴点の撮像面上の位置、及びデータ記憶部１３０に記憶されている特徴データを用いて、環境マップを構築する。本明細書において、環境マップとは、実空間内に存在する１つ以上の物体の位置及び姿勢を表現するデータの集合である。特に、本実施形態では、環境マップは、実空間内に存在する物体としての２つ以上の通信装置２０の位置及び姿勢を表現するデータを含む。また、環境マップには、例えば、物体に対応するオブジェクト名称、当該物体に属す特徴点の３次元位置、及び当該物体の形状を構成するポリゴン情報などが含まれ得る。環境マップは、例えば、画像認識部１４０から入力される特徴点の撮像面上の位置から、上述したピンホールモデルに従って各特徴点の３次元位置を求めることにより構築され得る。
【００８９】
式（１１）に示したピンホールモデルの関係式を変形すると、特徴点ＦＰｉの世界座標系における３次元位置ｐｉは、次式により求められる。
【００９０】
【数１２】
0005488011.tif 000014
（１４）
【００９１】
ここで、ｄはカメラと各特徴点との間の世界座標系における距離を表す。環境マップ構築部１５０は、かかる距離ｄを、オブジェクトごとに少なくとも４つの特徴点の撮像面上の位置、及び当該特徴点間の距離に基づいて、算出することができる。特徴点間の距離は、図９を用いて説明した特徴データに含まれる３次元形状データＦＤ１４として、予めデータ記憶部１３０により記憶されている。なお、式（１４）における距離ｄの算出処理については、上記特許文献１において詳しく説明されている。
【００９２】
距離ｄが算出されると、式（１４）における右辺の残りの変数は、自己位置検出部１２０から入力されるカメラの位置及び姿勢、並びに画像認識部１４０から入力される特徴点の撮像面上の位置であり、いずれも既知となる。そこで、環境マップ構築部１５０は、式（１４）に従って、画像認識部１４０から入力される各特徴点について、世界座標系における３次元位置を計算する。そして、環境マップ構築部１５０は、算出した特徴点ごとの３次元位置に応じて最新の環境マップを構築し、構築した環境マップを環境マップ記憶部１５２に記憶させる。なお、このとき、環境マップ構築部１５０は、図９を用いて説明した特徴データに含まれるオントロジーデータＦＤ１５を用いて、環境マップのデータの正確性を向上させてもよい。
【００９３】
環境マップ記憶部１５２は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、環境マップ構築部１５０により構築される環境マップを記憶する。さらに、本実施形態では、環境マップ記憶部１５２において、各通信装置２０に関するデータは、予め登録される各通信装置２０の識別情報（例えば、ＩＰアドレス、ホスト名又はＭＡＣアドレスなど）と関連付けられる。
【００９４】
［３−３．通信処理部］
通信処理部１８０は、環境マップ生成部１１０により生成される環境マップを使用し、通信装置２０から受信されるユーザ入力に応じて、１つの通信装置２０から他の装置へのデータの送信を制御する。図４に示しているように、本実施形態において、通信処理部１８０は、通信Ｉ／Ｆ１８２、検出部１８４、選択部１８６及び通信制御部１８８を含む。
【００９５】
（１）通信Ｉ／Ｆ
通信Ｉ／Ｆ１８２は、通信制御装置１００による通信装置２０との間の通信を仲介する。通信Ｉ／Ｆ１８２は、例えば、通信装置２０の通信Ｉ／Ｆ４６と同様の無線通信インタフェース又は有線通信インタフェースであってよい。通信Ｉ／Ｆ１８２は、通信装置２０から受信される信号を、検出部１８４及び通信制御部１８８へ出力する。また、通信Ｉ／Ｆ１８２は、通信制御部１８８から入力される信号を通信装置２０へ送信する。
【００９６】
（２）検出部
検出部１８４は、通信Ｉ／Ｆ１８２により受信される信号を監視することにより、ユーザによる通信装置２０に対するユーザ入力であって、当該通信装置２０が有するいずれかのデータと方向とを指定するユーザ入力を検出する。通信装置２０が有するいずれかのデータと方向とを指定するユーザ入力は、例えば、通信装置２０においてユーザ入力信号ＩＮに変換され、通信装置２０から通信制御装置１００へ送信される。検出部１８４は、かかるユーザ入力信号ＩＮが通信Ｉ／Ｆ１８２により受信されたことを検出すると、ユーザ入力の内容を選択部１８６へ通知し、ユーザ入力信号ＩＮの送信元の通信装置２０からのデータの送信先とすべき装置を選択部１８６に選択させる。
【００９７】
図１１は、検出部１８４によって検出される通信装置２０に対するユーザ入力について説明するための説明図である。図１１を参照すると、通信制御装置１００のカメラにより撮像される一例としての入力画像Ｉｍ１が示されている。また、入力画像Ｉｍ１には、通信装置２０ａ、２０ｂ及び２０ｃが映っている。さらに、通信装置２０ａの画面上には、データＤ１及びＤ２をそれぞれ表す２つのアイコンが表示されている。
【００９８】
図１１のような状況において、例えば、データＤ２を通信装置２０ｂへ送信することを希望するユーザは、データＤ２を表すアイコンを通信装置２０ｂが存在する方向（図中の右方向）へドラッグする。そうすると、通信装置２０ａは、ドラッグイベントを検知し、ユーザ入力により指定されたアイコンとドラッグ方向とを認識する。そして、通信装置２０ａは、指定されたアイコンに対応するデータＤ２を特定するための情報（例えばデータファイルのパス）とドラッグ方向とを内容とするユーザ入力信号ＩＮを、通信制御装置１００へ送信する。通信制御装置１００の検出部１８４は、通信Ｉ／Ｆ１８２により受信される信号を監視し、かかるユーザ入力信号ＩＮを検出する。
【００９９】
なお、検出部１８４は、例えば、通信装置２０から送信されるユーザ入力信号ＩＮを検出する代わりに、撮像部１０２から入力される一連の入力画像を監視し、入力画像に映るユーザの動作を画像認識することにより、通信装置２０に対するユーザ入力を検出してもよい。
【０１００】
（３）選択部
選択部１８６は、ユーザ入力により指定された方向に基づいて、指定されたデータの送信先となるべき通信装置を、環境マップ生成部１１０により生成される環境マップから選択する。本実施形態において、選択部１８６は、例えば、環境マップにおいて、ユーザ入力信号ＩＮの送信元の通信装置２０を基準とし、ユーザ入力により指定された方向に位置する通信装置を、データ送信先の装置として選択する。また、選択部１８６は、当該方向に位置する通信装置が複数存在する場合には、例えば、それら複数の装置のうち送信元の通信装置２０から最も近くに位置する装置を、データ送信先の装置として選択し得る。
【０１０１】
図１２及び図１３は、本実施形態に係る選択部１８６による送信先の選択について説明するための説明図である。
【０１０２】
図１２を参照すると、環境マップに含まれる通信装置２０ａ、２０ｂ及び２０ｃが示されている。このうち、通信装置２０ａの位置は、環境マップの世界座標系（ｘ，ｙ，ｚ）における３次元位置Ｘｓとして、環境マップに保持されている。また、通信装置２０ａの姿勢は、環境マップの世界座標系（ｘ，ｙ，ｚ）における回転行列に対応する四元数ωｓとして、環境マップに保持されている。通信装置２０ａの姿勢ωｓは、通信装置２０ａの画面の法線の回転角に対応する。これら、通信装置２０ａの位置Ｘｓ及び姿勢ωｓに加えて、ユーザ入力信号ＩＮに含まれる通信装置２０ａの画面上のドラッグ方向（ｕ，ｖ）が定まると、位置Ｘｓを起点とし、ユーザがドラッグにより指定した方向に沿う直線Ｌ１を、環境マップの世界座標系において一意に特定することができる。
【０１０３】
選択部１８６は、このように直線Ｌ１を特定し、直線Ｌ１上又は直線Ｌ１の少なくとも近傍に位置する通信装置２０を、データ送信先の装置として選択する。図１２の例では、通信装置２０ｂが通信装置２０ａの位置Ｘｓを起点とする直線Ｌ１上に位置する。一方、通信装置２０ｃは、直線Ｌ１から離れた位置にいる。そこで、選択部１８６は、通信装置２０ｂを通信装置２０ａからのデータ送信先の装置として選択する。
【０１０４】
図１３を参照すると、環境マップに含まれる通信装置２０ａ、２０ｂ及び２０ｃが示されている。但し、これら装置は、図１２の例とは異なる位置関係にある。この場合にも、選択部１８６は、環境マップにおける通信装置２０ａの位置Ｘｓ及び姿勢ωｓ、ユーザ入力により指定されたドラッグ方向（ｕ，ｖ）に基づいて、通信装置２０ａを起点とする直線Ｌ１を特定する。図１３の例では、直線Ｌ１上に通信装置２０ｂ及び２０ｃが共に位置する。このとき、選択部１８６は、例えば、通信装置２０ｂ及び２０ｃのうち、通信装置２０ａのより近くに位置する通信装置２０ｂを、通信装置２０ａからのデータ送信先の装置として選択することができる。その代わりに、選択部１８６は、例えば、ユーザにいずれかの装置（通信装置２０ｂ又は２０ｃ）を指定させるためのメッセージを表示し、ユーザによる指定の結果に応じて、いずれかの装置をデータ送信先の装置として選択してもよい。
【０１０５】
図１４は、本実施形態に係る選択部１８６による送信先選択処理の流れの一例を示すフローチャートである。
【０１０６】
図１４を参照すると、選択部１８６は、まず、環境マップから各通信装置の位置及び姿勢を取得する（ステップＳ３０２）。次に、選択部１８６は、送信元の通信装置２０の位置を起点とし、ユーザ入力により指定された方向に沿った直線Ｌ１を特定する（ステップＳ３０４）。
【０１０７】
次に、選択部１８６は、特定した直線Ｌ１の少なくとも近傍に（即ち、直線Ｌ１上に又は直線Ｌ１の近傍に）他の通信装置が存在するか否かを判定する（ステップＳ３０６）。例えば、直線Ｌ１との間の距離が予め設定される閾値よりも小さい装置は、直線Ｌ１の近傍に位置すると判断され得る。ここで、選択部１８６は、直線Ｌ１の近傍に位置する他の通信装置が存在しない場合には、通信制御部１８８にエラーを出力し（ステップＳ３１４）、処理を終了する。一方、直線Ｌ１の少なくとも近傍に他の通信装置が存在する場合には、処理はステップＳ３０８へ進む。
【０１０８】
次に、選択部１８６は、直線Ｌ１の少なくとも近傍に複数の他の通信装置が存在するか否かを判定する（ステップＳ３０８）。ここで、直線Ｌ１の少なくとも近傍に複数の他の通信装置が存在する場合には、選択部１８６は、送信元の通信装置２０の最も近くに位置する通信装置を、データ送信先の装置として選択する（ステップＳ３１０）。一方、直線Ｌ１の少なくとも近傍に位置する他の通信装置が１つのみである場合には、選択部１８６は、当該他の通信装置を、データ送信先の装置として選択する（ステップＳ３１２）。
【０１０９】
選択部１８６は、このような送信先選択処理により選択したデータ送信先の装置を識別するための識別情報を、通信制御部１８８へ出力する。なお、選択部１８６により選択されるデータ送信先の装置は、必ずしも本実施形態に係る通信装置２０と同等の構成を有していなくてもよい。例えば、ユーザ入力信号ＩＮを通信制御装置１００へ送信する機能を有しない一般的な通信装置であっても、環境マップ生成部１１０により生成される環境マップにおいて認識され得る装置であれば、選択部１８６によりデータ送信先の装置として選択されることができる。
【０１１０】
（４）通信制御部
通信制御部１８８は、検出部１８４によりユーザ入力が検出された場合に、ユーザ入力の対象となった通信装置２０から他の通信装置へ、ユーザ入力により指定されたデータを送信させる。より具体的には、通信制御部１８８は、例えば、１つの通信装置２０からユーザ入力信号ＩＮが受信されると、データ送信を指示する指示信号ＳＩＧを、通信Ｉ／Ｆ１８２を介して当該１つの通信装置２０へ送信する。指示信号ＳＩＧは、ユーザ入力により指定されたデータを、上述した送信先選択処理に従って選択部１８６により選択された他の通信装置へ送信すべきことを指示する信号である。その結果、上記１つの通信装置２０から、ユーザ入力により指定された方向に位置する他の通信装置へ、ユーザ入力により指定されたデータが送信される。
【０１１１】
さらに、通信制御部１８８は、指示信号ＳＩＧを送信すると共に、データ送信元の装置及びデータ送信先の装置を識別するための識別情報を、表示制御部１９０へ出力する。
【０１１２】
［３−４．表示制御部］
表示制御部１９０は、データ送信元の装置からデータ送信先の装置へデータが送信される際に、データ送信を表すアニメーションを表示装置の画面上に表示させる。例えば、表示制御部１９０は、撮像部１０２から入力される入力画像にデータ送信を表すアニメーションを重畳することにより、出力画像を生成する。そして、表示制御部１９０は、生成した出力画像をＨＭＤ１０４に表示させる。データ送信を表すアニメーションは、例えば、データ送信元の装置からデータ送信先の装置へ何らかの仮想的なオブジェクト（図形、記号、又はキャラクターなど）が動くようなアニメーションであってよい。
【０１１３】
より具体的には、例えば、表示制御部１９０は、アニメーションを入力画像に重畳すべき位置を、環境マップ生成部１１０から取得されるカメラの位置及び姿勢を用いて、ピンホールモデルの式（１１）に従って算出する。例えば、式（１１）における右辺の特徴点ＦＰｉの３次元位置ｐｉにデータ送信元の装置の３次元位置を代入することにより、アニメーションの起点の表示位置が算出される。また、式（１１）における右辺の特徴点ＦＰｉの３次元位置ｐｉにデータ送信先の装置の３次元位置を代入することにより、アニメーションの終点の表示位置が算出される。そして、表示制御部１９０は、起点の表示位置と終点の表示位置との間をオブジェクトが動くようなアニメーションを一連の入力画像にわたって重畳する。
【０１１４】
図１５は、本実施形態に係るデータ送信に関するアニメーションの一例を示す説明図である。図１５を参照すると、データ送信を表す一連のアニメーション１９２ａ〜１９２ｃが重畳された出力画像Ｉｍ２ａ〜Ｉｍ２ｃが、便宜的に１つの説明図に表されている。実際には、時間軸に沿って、出力画像Ｉｍ２ａにアニメーション１９２ａ、出力画像Ｉｍ２ｂにアニメーション１９２ｂ、出力画像Ｉｍ２ｃにアニメーション１９２ｃが順に重畳され得る。図１５に示したアニメーションは、矢印の形状をしている。このように、アニメーション１９２ａ〜１９２ｃが順に表示されることにより、ユーザは、通信装置２０ａ０から通信装置２０ｄへデータが送信されていることを把握することができる。なお、データ送信先の装置は、環境マップにおいてその位置が認識されている限り、必ずしも入力画像又は出力画像に映っていなくてもよい。即ち、ユーザ入力により指定された方向に位置する通信装置であって、画面の範囲外に位置する装置へ、データが送信されてもよい。
【０１１５】
［３−５．通信制御処理の流れ］
図１６は、本実施形態に係る通信制御装置１００による通信制御処理の流れの一例を示すフローチャートである。
【０１１６】
図１６を参照すると、まず、検出部１８４により、通信装置２０に対する所定のユーザ入力の有無が監視される（ステップＳ３５２）。そして、検出部１８４により、例えば通信装置２０に対するいずれかのデータアイコンと方向とを指定するユーザ入力（ドラッグなど）が検出されると、処理はステップＳ３５４へ進む。
【０１１７】
次に、選択部１８６は、環境マップ生成部１１０により生成される環境マップを取得する（ステップＳ３５４）。ここで取得される環境マップには、検出部１８４により検出されたユーザ入力の対象となった通信装置２０に対応するオブジェクト、及び他の通信装置に対応するオブジェクトが含まれる。
【０１１８】
次に、選択部１８６により、図１４を用いて説明した送信先選択処理が行われる（ステップＳ３５６）。それにより、ユーザ入力の対象となった通信装置２０からのデータ送信先の装置が選択される。
【０１１９】
次に、通信制御部１８８により、選択結果におけるデータ送信先の装置の有無が判定される（ステップＳ３５８）。例えば、ユーザ入力により指定された方向に通信装置が存在しない場合には、選択部１８６から通信制御部１８８へエラーが出力される。その場合、通信制御部１８８は、表示制御部１９０に指示をして画面上にエラーメッセージを表示させる（ステップＳ３６０）。
【０１２０】
一方、選択部１８６による選択結果においてデータ送信先の装置が存在する場合には、通信制御部１８８は、ユーザ入力の対象となった通信装置２０へ指示信号ＳＩＧを送信し、選択部１８６により選択されたデータ送信先の装置へデータを送信させる（ステップＳ３６２）。また、データ送信が行われている間、表示制御部１９０は、ＨＭＤ１０４の画面上にデータ送信を表すアニメーションを表示させる（ステップＳ３６４）。
【０１２１】
＜４．変形例＞
上述した実施形態では、通信制御装置１００の選択部１８６によって、ドラッグなどのユーザ入力により指定された方向に基づいて、データの送信先となるべき装置が環境マップから選択される。それにより、ユーザは、通信装置間のデータ送信に際して、送信先の指定を直感的に行うことができる。これに対し、送信先の直感的な指定は、他の手法によっても行われ得る。本節では、上述した実施形態の一変形例として、送信先の直感的な指定を可能とする他の手法について説明する。
【０１２２】
図１７は、一変形例に係る選択部１８６による送信先の選択について説明するための説明図である。
【０１２３】
図１７を参照すると、環境マップに含まれる通信装置２０ａ、２０ｂ及び２０ｃが示されている。また、通信装置２０ａの画面上には、データＤ１及びＤ２をそれぞれ表す２つのアイコンが表示されている。図１７のような状況において、例えば、データＤ２を通信装置２０ｂへ送信することを希望するユーザは、実世界において通信装置２０ｂの上方で通信装置２０ａを把持し、データＤ２を表すアイコンをクリック又はタップする。そうすると、通信装置２０ａは、当該ユーザ入力を検知し、ユーザ入力信号ＩＮを通信制御装置１００へ送信する。通信制御装置１００の検出部１８４は、かかるユーザ入力信号ＩＮを検出する。
【０１２４】
このとき、通信装置２０ａの位置は、環境マップの世界座標系（ｘ，ｙ，ｚ）における３次元位置Ｘｓとして、環境マップに保持されている。そこで、選択部１８６は、通信装置２０ａの位置Ｘｓを起点とし、鉛直線に沿って下方へ伸びる直線Ｌ２を、環境マップの世界座標系において特定する。そして、選択部１８６は、直線Ｌ２上又は直線Ｌ２の少なくとも近傍に位置する通信装置２０を、データ送信先の装置として選択する。図１７の例では、通信装置２０ｂが直線Ｌ２上に位置する。一方、通信装置２０ｃは、直線Ｌ２から離れた位置にいる。そこで、選択部１８６は、通信装置２０ｂを通信装置２０ａからのデータ送信先の装置として選択する。
【０１２５】
図１８は、一変形例に係る選択部１８６による送信先選択処理の流れの一例を示すフローチャートである。
【０１２６】
図１８を参照すると、選択部１８６は、まず、環境マップから各通信装置の位置を取得する（ステップＳ４０２）。次に、選択部１８６は、送信元の通信装置２０の位置を起点とし、鉛直線に沿って下方へ伸びる直線Ｌ２を特定する（ステップＳ４０４）。
【０１２７】
次に、選択部１８６は、直線Ｌ２の少なくとも近傍に（即ち、直線Ｌ２上に又は直線Ｌ２の近傍に）他の通信装置が存在するか否かを判定する（ステップＳ４０６）。例えば、直線Ｌ２との間の距離が予め設定される閾値よりも小さい装置は、直線Ｌ２の近傍に位置すると判断され得る。ここで、選択部１８６は、直線Ｌ２の近傍に位置する他の通信装置が存在しない場合には、通信制御部１８８にエラーを出力し（ステップＳ４１４）、処理を終了する。一方、直線Ｌ２の少なくとも近傍に他の通信装置が存在する場合には、処理はステップＳ４０８へ進む。
【０１２８】
次に、選択部１８６は、直線Ｌ２の少なくとも近傍に複数の他の通信装置が存在するか否かを判定する（ステップＳ４０８）。ここで、直線Ｌ２の少なくとも近傍に複数の他の通信装置が存在する場合には、選択部１８６は、送信元の通信装置２０の最も近くに位置する通信装置を、データ送信先の装置として選択する（ステップＳ４１０）。一方、直線Ｌ２の少なくとも近傍に位置する他の通信装置が１つのみである場合には、選択部１８６は、当該他の通信装置を、データ送信先の装置として選択する（ステップＳ４１２）。
【０１２９】
このような変形例に係る送信先選択処理によれば、ユーザは、通信装置２０が有するデータを重力を利用して落下させるような感覚で、直感的に他の通信装置へ送信させることができる。
【０１３０】
＜５．まとめ＞
ここまで、図１〜図１８を用いて、本発明の一実施形態に係る通信装置２０及び通信制御装置１００、並びに通信制御装置１００の変形例について詳細に説明した。通信制御装置１００によれば、実空間を撮影した入力画像に基づいて、複数の通信装置２０に対応する複数のオブジェクトを含む環境マップが動的に構築される。そして、データ送信元の通信装置２０に対するユーザ入力が検出されると、当該ユーザ入力により指定された方向に基づいて環境マップから選択されるデータ送信先の装置へ、指定されたデータが送信される。また、ユーザ入力により指定される方向の代わりに、重力の働く方向に基づいてデータ送信先の装置を選択することもできる。それにより、ユーザは、ＰＣからプリンタへ、デジタルカメラからＰＣへ、又は携帯端末からＰＣへなどといった様々な形態のデータ送信を、送信元の装置に対する単純なユーザ入力（例えばドラッグ又はクリックなどの簡易な操作）により直感的に行うことができる。
【０１３１】
また、データ送信先として選択される装置は、環境マップにおいて、データ送信元の装置を基準としてユーザ入力により指定された方向又は重力の働く方向に位置する装置であってよい。通信制御装置１００は、環境マップにおけるデータ送信元の装置の位置等の情報に基づいて、上記データ送信先の装置を選択する。即ち、環境マップを応用したデータ送信先の装置の選択により、実世界における通信装置の位置関係に応じた直感的なユーザインタフェースを提供することができる。その際、指定された方向又は重力の働く方向に複数の通信装置が存在する場合には、通信制御装置１００は、データ送信元の装置の最も近くに位置する装置をデータ送信先として選択し得る。即ち、実空間に対応する環境マップを応用することにより、複数の通信装置が存在する環境においても、データ送信先を一意に選択することができる。
【０１３２】
また、通信制御装置１００は、データ送信元の装置からデータ送信先の装置へのデータ送信の際に、データ送信を表すアニメーションを表示装置に表示させてもよい。通信制御装置１００は、環境マップにおけるデータ送信元の装置及びデータ送信先の装置の位置に基づいて上記アニメーションを表示することにより、いずれの装置間でデータが送信されているかを、ユーザに分かり易く示すことができる。
【０１３３】
なお、本明細書では、通信装置２０と通信制御装置１００とが物理的に別体に構成される例について主に説明した。しかしながら、カメラ及びＨＭＤを除く通信制御装置１００の諸機能は、データ送信元の通信装置２０と物理的に同一の装置に実装されてもよい。
【０１３４】
また、本明細書において説明した通信装置２０及び通信制御装置１００による一連の処理は、典型的には、ソフトウェアを用いて実現される。一連の処理を実現するソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時に各装置のＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵなどのプロセッサにより実行される。
【０１３５】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１３６】
２０      通信装置
１００    通信制御装置
１３０    データ記憶部
１５０    環境マップ構築部
１８４    検出部
１８６    選択部
１８８    通信制御部
１９０    表示制御部
【図１】
0005488011.tif 000015
【図２】
0005488011.tif 000016
【図３】
0005488011.tif 000017
【図４】
0005488011.tif 000018
【図５】
0005488011.tif 000019
【図６】
0005488011.tif 000020
【図７】
0005488011.tif 000021
【図８】
0005488011.tif 000022
【図９】
0005488011.tif 000023
【図１０】
0005488011.tif 000024
【図１１】
0005488011.tif 000025
【図１２】
0005488011.tif 000026
【図１３】
0005488011.tif 000027
【図１４】
0005488011.tif 000028
【図１５】
0005488011.tif 000029
【図１６】
0005488011.tif 000030
【図１７】
0005488011.tif 000031
【図１８】
0005488011.tif 000032