以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
<1.本開示の一実施形態>
[1.1.システム構成例]
[1.2.機能構成例]
[1.3.表示制御例]
<2.ユーザインタフェースの具体例>
<3.ハードウェア構成例>
<4.まとめ>
<1.本開示の一実施形態>
[1.1.システム構成例]
まず、図面を参照しながら本開示の一実施形態に係る情報処理システムの構成例について説明する。図1は、本開示の一実施形態に係る情報処理システムの構成例を示す説明図である。以下、図1を用いて本開示の一実施形態に係る情報処理システムの構成例について説明する。
図1に示したように、本開示の一実施形態に係る情報処理システム100aは、入力部110aと、出力部130aと、を含んで構成される。図1に示した本開示の一実施形態に係る情報処理システム100aは、テーブル140aの天面に情報を表示し、テーブル140aに表示した情報に対して情報処理システム100aを使用するユーザに操作をさせるシステムである。図1のようにテーブル140aの天面に情報を表示する方式を「プロジェクション型」とも称する。
入力部110aは、情報処理システム100aを使用するユーザの操作内容や、テーブル140aに置かれている物体の形状や模様などを入力する装置である。図1に示した例では、入力部110aは、テーブル140aの上方に、例えば天井から吊り下げられた状態で設けられる。すなわち、入力部110aは、情報が表示される対象となるテーブル140aとは離隔して設けられる。入力部110aとしては、例えば1つのレンズでテーブル140aを撮像するカメラや、2つのレンズでテーブル140aを撮像して奥行き方向の情報を記録することが可能なステレオカメラ、情報処理システム100aを使用するユーザが発する音声や情報処理システム100aが置かれている環境の環境音を収音するためのマイク等が用いられ得る。
入力部110aとして、1つのレンズでテーブル140aを撮像するカメラが用いられる場合、情報処理システム100aは、そのカメラが撮像した画像を解析することで、テーブル140aに置かれた物体を検出することが出来る。また入力部110aとしてステレオカメラが用いられる場合、そのステレオカメラには、例えば可視光カメラや赤外線カメラ等が用いられ得る。入力部110aとしてステレオカメラが用いられることで、入力部110aは、深度情報を取得することが可能となる。入力部110aが、深度情報を取得することで、情報処理システム100aは、例えばテーブル140aの上に置かれた手や物体の検出が可能になる。また入力部110aが、深度情報を取得することで、情報処理システム100aは、テーブル140aへのユーザの手の接触、近接の検出やテーブル140aからの手の離脱の検出が可能となる。なお、以下の説明では、ユーザが情報の表示面に手等の操作体を接触または近接させることを、まとめて単に「接触」とも称する。
また入力部110aとしてマイクが用いられる場合、そのマイクは特定の方向の音声を収音するためのマイクアレイが用いられ得る。入力部110aとしてマイクアレイが用いられる場合、情報処理システム100aは、マイクアレイの収音方向を任意の方向に調整しても良い。
以下では、ユーザの操作が、入力部110aによって撮像された画像から検出される場合を主に説明するが、本開示は係る例に限定されるものではない。ユーザの操作は、ユーザの指等の接触を検出するタッチパネルによって検出されてもよい。また入力部110aが取得できるユーザ操作としては、この他にも、例えば情報の表示面に対するスタイラス操作、カメラに対するジェスチャ操作等が含まれ得る。
出力部130aは、入力部110aによって入力された、情報処理システム100aを使用するユーザの操作内容や、出力部130aが出力している情報の内容、テーブル140aに置かれている物体の形状や模様等の情報に応じて、テーブル140aに情報を表示したり、音声を出力したりする装置である。出力部130aとしては、例えばプロジェクタやスピーカ等が用いられる。図1に示した例では、出力部130aは、テーブル140aの上方に、例えば天井から吊り下げられた状態で設けられる。出力部130aがプロジェクタで構成される場合、出力部130aは、テーブル140aの天面に情報を投影する。出力部130aがスピーカで構成される場合、出力部130aは、音声信号に基づいて音声を出力する。出力部130aがスピーカで構成される場合、スピーカの数は1つで合っても良く、複数であっても良い。出力部130aが複数のスピーカで構成される場合、情報処理システム100aは、音声を出力するスピーカを限定したり、音声を出力する方向を調整したりしても良い。
また情報処理システム100aが図1に示したようなプロジェクション型である場合、出力部130aに、照明機器が含まれていても良い。出力部130aに照明機器が含まれる場合、情報処理システム100aは、入力部110aによって入力された情報の内容に基づいて、照明機器の点灯、消灯等の状態を制御しても良い。
情報処理システム100aを使用するユーザは、出力部130aがテーブル140aに表示する情報に対して、指などをテーブル140aに置いて操作することが出来る。また情報処理システム100aを使用するユーザは、テーブル140aに物体を置いて入力部110aに認識させることで、その認識させた物体に関する種々の操作を実行することが出来る。
なお図1には図示しないが、情報処理システム100aには他の装置が接続されていても良い。例えば情報処理システム100aには、テーブル140aを照らすための照明機器が接続されていても良い。情報処理システム100aにテーブル140aを照らすための照明機器が接続されていることで、情報処理システム100aは、情報の表示面の状態に応じて照明機器の点灯状態を制御することが可能となる。
本開示では、情報処理システムの形態は図1に示したものに限定されるものではない。図2〜図4は、本開示の一実施形態にかかる情報処理システムのさらなる別の形態の例を示す説明図である。
図2に示したのは、本開示の一実施形態に係る情報処理システム100bの構成例を示す説明図であり、テーブル140bの下から情報を出力部130aに照射させることで、テーブル140bの表面に情報を表示させるように構成されているものである。すなわち、図2に示した情報処理システム100bでは、情報の表示面はテーブル140bの天面となる。テーブル140bの面はガラス板や透明プラスチック板等の透明な材質で形成される。図2のようにテーブル140bの下から情報を出力部130aに照射させて、テーブル140bの天面に情報を表示する方式を「リアプロジェクション型」とも称する。図2に示した例では、テーブル140bの表面に入力部110bが設けられる構成を示しているが、図1に示した情報処理システム100aと同様に、入力部110bは、テーブル140bの下方にテーブル140bとは離隔して設けられても良い。
図3に示したのは、本開示の一実施形態に係る情報処理システム100cの構成例を示す説明図である。図3には、タッチパネル式のディスプレイがテーブル上に置かれている状態が示されている。このようにタッチパネル式のディスプレイの場合、入力部110c及び出力部130cは、タッチパネル式のディスプレイとして構成され得る。すなわち、図3に示した情報処理システム100cでは、情報の表示面はタッチパネル式のディスプレイとなる。図3に示した情報処理システム100cでは、図1に示した情報処理システム100aと同様に、タッチパネル式のディスプレイの上方に、ユーザの位置を検出するためのカメラが設けられても良い。
図4に示したのは、本開示の一実施形態に係る情報処理システム100dの構成例を示す説明図である。図4には、フラットパネル式のディスプレイがテーブル上に置かれている状態が示されている。すなわち、図4に示した情報処理システム100dでは、情報の表示面はフラットパネル式のディスプレイとなる。このようにフラットパネル式のディスプレイの場合、入力部110d及び出力部130dは、フラットパネル式のディスプレイとして構成され得る。この図4に示したフラットパネル式のディスプレイに、タッチパネルが設けられていても良い。
なお以下の説明では、図1に示したような、テーブル140aの上方に入力部110a及び出力部130aが設けられる情報処理システム100aの構成、すなわち、情報の表示面と離隔して入力部110a及び出力部130aが設けられる構成を例にして説明する。以下の説明では、情報処理システム100a、入力部110a、出力部130aを、単に情報処理システム100、入力部110、出力部130としても説明する。
[1.2.機能構成例]
続いて、本開示の一実施形態にかかる情報処理システムの機能構成例について説明する。図5は、本開示の一実施形態にかかる情報処理システムの機能構成例を示す説明図である。以下、図5を用いて本開示の一実施形態にかかる情報処理システムの機能構成例について説明する。
図5に示したように、本開示の一実施形態にかかる情報処理システム100は、入力部110と、制御部120と、出力部130と、を含んで構成される。
入力部110は、情報処理システム100を使用するユーザの情報処理システム100に対する操作内容や、出力部130が情報を出力する面(例えば図1に示したテーブル140a)に置かれている物体の形状や模様などを入力する。情報処理システム100を使用するユーザの情報処理システム100に対する操作内容には、情報処理システム100が情報の表示面に出力するGUIに対する操作内容を含む。入力部110が入力した、情報処理システム100に対する操作内容、物体の形状、模様等の情報は制御部120に送られる。
入力部110は、情報処理システム100がプロジェクション型である場合、例えば1つのレンズで構成されるカメラ、2つのレンズで構成されるステレオカメラ、マイク等で構成され得る。
制御部120は、情報処理システム100の各部の制御を実行する。例えば制御部120は、入力部110が入力した情報を用いて、出力部130から出力する情報を生成する。図5に示したように、制御部120は、検出部121と、出力制御部122と、を含んで構成される。検出部121は、情報処理システム100を使用するユーザの、情報処理システム100に対する操作内容や、出力部130が出力している情報の内容、出力部130が情報を出力する面(例えば図1に示したテーブル140a)に置かれている物体の形状や模様などを検出する処理を実行する。検出部121が検出した内容は出力制御部122に送られる。出力制御部122は、検出部121が検出した内容に基づいて、出力部130から出力する情報を生成する制御を実行する。出力制御部122が生成した情報は出力部130に送られる。
例えば情報処理システム100が図1に示したプロジェクション型の場合、情報の表示面の座標と、ユーザの手等の操作体の表示面への接触座標とが一致するように予め校正されることで、検出部121は、ユーザの手等の操作体が、GUIのどの部分に接触したかを検出することが可能になる。
制御部120は、例えばCPU(Central Processing Unit;中央演算処理装置)などで構成されていてもよい。制御部120がCPU等の装置で構成される場合は、かかる装置は電子回路で構成され得る。
また図5には図示しないが、制御部120は、他の装置との間で無線通信を行なうための通信機能や、情報処理システム100に接続される他の装置、例えば照明機器の動作を制御する機能を有してもよい。
出力部130は、入力部110によって入力された、情報処理システム100を使用するユーザの操作内容や、出力部130が出力している情報の内容、また出力部130が情報を出力する面(例えば図1に示したテーブル140a)に置かれている物体の形状や模様等の情報に応じて情報を出力する。出力部130は、出力制御部122が生成する情報に基づいて情報を出力する。出力部130が出力する情報には、情報の表示面に表示される情報や、スピーカ(図示せず)等から出力される音声などが含まれる。
図5に示した情報処理システム100は、単独の装置として構成されてもよく、一部または全部が別々の装置で構成されても良い。例えば、図5に示した情報処理システム100の機能構成例の内、制御部120が、入力部110及び出力部130とネットワーク等で接続されたサーバ等の装置に備えられていても良い。制御部120がサーバ等の装置に備えられる場合は、入力部110からの情報がネットワーク等を通じて当該サーバ等の装置に送信され、制御部120が入力部110からの情報に対して処理を行って、当該サーバ等の装置から、出力部130が出力するための情報がネットワーク等を通じて出力部130に送られる。
以上、図5を用いて本開示の一実施形態にかかる情報処理システム100の機能構成例について説明した。続いて、本開示の一実施形態にかかる情報処理システム100による情報の表示制御例について説明する。
[1.3.表示制御例]
図6は、本開示の一実施形態にかかる情報処理システム100の操作状況の例を示す説明図である。図6に示したように、本開示の一実施形態にかかる情報処理システム100は、複数のユーザが、例えばテーブル140aに表示される同一の画面上でそれぞれ独立したアプリケーションを実行することが出来るよう構成されたシステムである。図6に示したアプリケーションのGUI(Graphical User Interface)は、出力制御部122が生成し、出力部130が出力する。図6に示した符号1100は、アプリケーションを操作するためのメニューボタンである。
本開示の一実施形態にかかる情報処理システム100は、出力部130が情報の表示面に出力したアプリケーションのGUIに対するユーザの操作内容を入力部110で取得する。情報処理システム100は、ユーザにその表示面に対して手等の操作体を接触させたり、接触させたその操作体を表示面上で移動させたりすることによって、出力部130が情報の表示面に出力したアプリケーションのGUIの操作を受け付ける。
図7及び図8は、本開示の一実施形態にかかる情報処理システム100が表示するアプリケーションのGUIの例を示す説明図である。図7は、アプリケーションのウィンドウの隅(図7の例では左隅)を中心として扇型にボタンが配置されているGUIの例である。図8は、アプリケーションのウィンドウの一辺(図8の例では下の辺)に沿ってボタンが配置されているGUIの例である。図7に示した符号1100は、アプリケーションを操作するためのメニューボタンである。また図7に示した符号1110は、符号1100に示したメニューボタンにユーザが接触した際に表示される、または最初から表示されている、アプリケーションを操作するためのメニューボタン群である。同様に、図8に示した符号1100’は、アプリケーションを操作するためのメニューボタンである。また図8に示した符号1110’は、符号1100’に示したメニューボタンにユーザが接触した際に表示される、または最初から表示されている、アプリケーションを操作するためのメニューボタン群である。
情報処理システム100は、メニューボタン群1110の中の任意のメニューボタンにユーザが指等を接触させた状態で、ユーザがその指等を情報の表示面上でメニューボタン群1110の並びに沿って移動させると、メニューボタン群1110を、そのユーザの操作に追従してメニューボタン1100を中心に回転するよう表示させる。
図9及び図10は、本開示の一実施形態にかかる情報処理システム100が表示するアプリケーションのGUIの例を示す説明図であり、複数のウィンドウが表示されている状態を示す説明図である。図9及び図10には、情報処理システム100が実行するアプリケーションをユーザが起動するためのメニューであるグローバルメニューと、起動されたアプリケーションをユーザが操作するためのメニューであるローカルメニューと、が表示されている様子が示されている。図9には、グローバルメニュー及びローカルメニューが扇型に表示されるボタン形式で表示されている例が示されており、図10には、グローバルメニュー及びローカルメニューがバー形式で表示されている例が示されている。なお、図9においては、グローバルメニューがメニューボタン1100a及びメニューボタン群1110aであり、ローカルメニューがメニューボタン1100b及びメニューボタン群1110bである。また図10においては、グローバルメニューがメニューボタン1100’及びメニューボタン群1110’である。
図11〜図13は、本開示の一実施形態にかかる情報処理システム100が表示するアプリケーションのGUIの例を示す説明図である。図11の符号Aはカメラアプリケーションを起動するためのボタンアイコン1101の例であり、符号Bは情報処理システム100が管理しているデータを読み込むためのボタンアイコン1101の例であり、符号Cはフォルダを意味するボタンアイコン1101の例である。図11の符号Bに示した、情報処理システム100が管理しているデータを読み込むためのボタンアイコン1101をユーザが選択すると、情報処理システム100は、そのデータを読み込んで、当該データの種類に応じた動作を実行する。当該データが画像データであれば、情報処理システム100は、その画像データを出力部130から出力させる。当該データが楽曲データであれば、情報処理システム100は、その楽曲データを出力部130から再生させる。
図12は、図11の符号Aに示したカメラアプリケーションを起動するためのボタンアイコン1101を、情報処理システム100のユーザが選択した際の表示例を示す説明図である。また図13は、情報処理システム100のユーザがメニューボタン1100を、選択した際の表示例を示す説明図である。図13に示した例では、メニューボタン1100がユーザによって選択されると、メニューボタン1100に属する機能を実行させるためのメニューボタン群1110が表示されている。
本開示の一実施形態に係る情報処理システム100が、このようなGUIを出力しようとする場合、他のウィンドウの位置や、情報の表示面の状態、例えば図1に示したテーブル140aに置かれている物体の状態によっては、予め設定されている初期状態でメニューを表示させてしまうと様々な不都合が生じうる。例えば、ウィンドウの位置が表示領域の外にはみ出てしまうと、選択できないメニューが生じてしまう。また他のウィンドウに覆い隠されることによって、ウィンドウを最前面に移動させる操作をユーザが行わないと、選択できないメニューが生じてしまう。また図6のように、本開示の一実施形態に係る情報処理システム100は、様々な方向からユーザがメニューを操作することが出来るため、ユーザの位置や向きによってはメニューまでの位置が遠くなり、ユーザが触りづらくなる。また、図1のように出力部130aからテーブル140aに情報を表示させる場合、テーブル140aに物体が置かれている場所にメニューが重なってしまうことで、メニューが操作できなくなる。
そこで本開示の一実施形態に係る情報処理システム100は、他のウィンドウの位置や、情報の表示面の状態を検出し、その検出結果に基づいてメニューの位置を制御する。具体的には、本開示の一実施形態に係る情報処理システム100は、例えば図1に示したテーブル140aや、図2に示したテーブル140bに置かれている物体の状態を検出し、その検出結果に基づいてメニューの位置を制御する。情報の表示面の状態を検出し、その検出結果に基づいてメニューの位置を制御することで、本開示の一実施形態に係る情報処理システム100は、情報を表示しようとする環境に応じて、適切かつ効率的に情報を表示することが可能となる。以下、本開示の一実施形態に係る情報処理システム100によるメニューの位置の制御方法について説明する。
図14〜図16は、本開示の一実施形態に係る情報処理システム100の動作例を示す流れ図である。図14〜図16に示したのは、他のウィンドウの位置や、情報の表示面の状態を検出し、その検出結果に基づいてメニューの位置を制御する際の、情報処理システム100の動作例である。以下、図14〜図16を用いて、本開示の一実施形態に係る情報処理システム100の動作例について説明する。
情報処理システム100のユーザが、メニューを表示させるための所定の操作を実行すると、情報処理システム100は、そのメニューを表示するメニュー移動先を、現在のメニュー位置にセットする(ステップS1001)。ステップS1001の処理は例えば出力制御部122が実行する。続いて情報処理システム100は、ユーザの操作に応じて表示するウィンドウの状態が、メニュー位置に関係するかどうか判断する(ステップS1002)。この判断は例えば検出部121が実行する。具体的には、ステップS1002では、情報処理システム100はウィンドウが最大化されているかどうかの判定を実行し、ウィンドウが最大化されていれば、ウィンドウの状態がメニュー位置に関係すると判定する。なお、ウィンドウが最大化されているとは、出力部130によって表示が可能な最大の範囲でウィンドウが表示されていることを言う。
ステップS1002の判断の結果、ユーザの操作に応じて表示するウィンドウの状態が、メニュー位置に関係すれば(ステップS1002、Yes)、すなわちウィンドウが最大化されていれば、続いて情報処理システム100は、ウィンドウの状態に応じて、ステップS1001でセットしたメニュー位置にオフセットをかける処理を実行する(ステップS1003)。すなわち情報処理システム100は、メニュー位置を所定量ウィンドウの内側に寄せるようなオフセットを、ステップS1001でセットしたメニュー位置に与える。ステップS1003の処理は例えば出力制御部122が実行する。
図17は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、情報処理システム100が表示するアプリケーションのウィンドウが最大化されている状態が示されている。具体的には、ウィンドウが最大化されている状態であるので、ステップS1003では、図17に示したように、メニューボタン1100の位置をウィンドウの内側に所定量移動させる処理が情報処理システム100によって実行される。一方、ステップS1002の判断の結果、ユーザの操作に応じて表示するウィンドウの状態が、メニュー位置に関係しなければ(ステップS1002、No)、すなわちウィンドウが最大化されていなければ、情報処理システム100はステップS1003の処理をスキップする。
続いて情報処理システム100は、ステップS1001でセットされたメニュー移動先が、画面の内部、つまり出力部130によって表示が可能な画面の内部にあるかどうか判断する(ステップS1004)。この判断は例えば検出部121が実行する。
図18は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、メニューが画面内部にあるかどうかについて示す説明図である。図18において、破線で示した円は、メニューボタン1100のメニュー移動先が画面外部、つまり出力部130によって表示が可能な画面の外部にある場合のメニュー移動先の例であり、実線で示した円は、メニューボタン1100のメニュー移動先が画面内部、つまり出力部130によって表示が可能な画面の内部にある場合のメニュー移動先の例である。
ステップS1001でセットされたメニュー移動先が画面内部にあれば(ステップS1004、Yes)、続いて情報処理システム100は、ステップS1001でセットされたメニュー移動先が、情報処理システム100が表示する他のウィンドウに覆われていないかどうか判断する(ステップS1005)。この判断は例えば検出部121が実行する。
図19は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、メニューボタン1100が、情報処理システム100が表示する他のウィンドウに覆われている状態にあるかどうかについて示す説明図である。図19において、破線で示した円は、メニューボタン1100が他のウィンドウに覆われている場合のメニュー移動先の例であり、実線で示した円は、メニューボタン1100が他のウィンドウに覆われていない場合のメニュー移動先の例である。
ステップS1001でセットされたメニュー移動先が、情報処理システム100が表示する他のウィンドウに覆われていなければ(ステップS1005、Yes)、続いて情報処理システム100は、ステップS1001でセットされたメニュー移動先が、ユーザの位置やユーザの操作方向に応じて適切な位置にあるかどうか判断する(ステップS1006)。具体的には、情報処理システム100は、ステップS1001でセットされたメニュー移動先と、ユーザの位置やユーザの操作方向とを比較し、ステップS1001でセットされたメニュー移動先が、ユーザの位置やユーザの操作方向に応じて適切な位置にあるかどうか判断する。この判断は例えば検出部121が実行する。
図20は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、ステップS1001でセットされたメニュー移動先が、ユーザの位置やユーザの操作方向に応じて適切な位置にあるかどうかについて示す説明図である。図20において、破線で示した円は、メニューボタン1100の移動先がユーザの位置から遠いので、メニューボタン1100の移動先がユーザの位置やユーザの操作方向(画面下から上の方向)に応じて適切な位置に無い場合の例であり、実線で示した円は、メニューボタン1100の移動先がユーザの位置に近いので、メニューボタン1100の移動先がユーザの位置やユーザの操作方向(画面下から上の方向)に応じて適切な位置にある場合の例である。
ステップS1006の判断の結果、ステップS1001でセットされたメニュー移動先がユーザの位置やユーザの操作方向に応じて適切な位置にあれば(ステップS1006、Yes)、続いて情報処理システム100は、ステップS1001でセットされたメニュー移動先が、情報処理システム100が表示する情報の表示面に置かれている物体と干渉しないかどうか判断する(ステップS1007)。この判断は例えば検出部121が実行する。情報処理システム100が表示する情報の表示面としては、例えば、図1に示したテーブル140aの天面が挙げられる。メニュー移動先が物体と干渉するとは、メニュー移動先が物体の少なくとも一部と重なっていることを言うものとする。
図21は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、ステップS1001でセットされたメニューボタン1100の移動先が、情報の表示面に置かれている物体1200と干渉しないかどうかについて示す説明図である。図21において、破線で示した円は、メニューボタン1100の移動先が情報の表示面に置かれている物体1200と干渉している場合の例であり、実線で示した円は、メニューボタン1100の移動先が情報の表示面に置かれている物体1200と干渉していない場合の例である。なお、検出部121は、破線で示した円のように、メニューボタン1100の移動先が情報の表示面に置かれている物体1200に重なっている場合は一律に干渉していると判断してもよく、メニューボタン1100の移動先が情報の表示面に置かれている物体1200に重なっている場合であっても、そのメニューボタン1100の移動先が物体1200の平面上に位置している場合は、メニュー移動先が情報の表示面に置かれている物体と干渉していないと判断してもよい。
ステップS1001でセットされたメニュー移動先が情報の表示面に置かれている物体と干渉しない場合は(ステップS1007、Yes)、情報処理システム100は、ユーザによって呼び出されたメニューをステップS1001でセットされたメニュー移動先へ移動する(ステップS1008)。ステップS1008の処理は例えば出力制御部122が実行する。
一方、上記ステップS1004〜S1007の判断で、少なくともいずれかが条件を満たさない場合は(ステップS1004〜S1007、No)、続いて情報処理システム100は、全てのメニュー移動先を調べたかどうかを判断する(ステップS1009)。全てのメニュー移動先を調べたかどうかの判断は、例えば検出部121が実行する。
上記ステップS1009の判断の結果、全てのメニュー移動先を調べきっていなければ(ステップS1009、No)、情報処理システム100は、他のメニュー移動先について上記ステップS1004〜S1007の判断を実行する。まず情報処理システム100は、ユーザの位置が取れているかどうかを判断する(ステップS1010)。ユーザの位置が取れているかどうかの判断は、例えば検出部121が実行する。具体的には、ステップS1010では、例えばカメラによるユーザの体、顔、頭等の認識や、マイクによる音声の方向の認識などによって、ユーザの位置が取れているかどうかが判断される。
上記ステップS1010の判断の結果、ユーザの位置が取れていれば(ステップS1010、Yes)、続いて情報処理システム100は、メニュー移動先をユーザ位置に最も近い、かつ未調査の位置にセットする(ステップS1011)。ステップS1011の処理は例えば出力制御部122が実行する。そしてメニュー移動先をユーザ位置に最も近い未調査の位置にセットすると、続いて情報処理システム100は、上記ステップS1004〜S1007の判断を再度実行する。メニューが図7に示したようなボタン型の場合は、ウィンドウの4つの角の内、ユーザ位置に最も近い未調査の位置にメニュー移動先がセットされる。またメニューが図8に示したようなバー型の場合は、ウィンドウの4つの辺の内、ユーザ位置に最も近い未調査の位置にメニュー移動先がセットされる。
図22は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図22において、実線で示した円は、ステップS1001の処理で設定されたメニューボタン1100の移動先(初期メニュー位置)の例を示し、破線で示した円はメニューボタン1100の移動先の候補の例を示している。図22に示した例では、ユーザの位置に最も近いのはウィンドウの左下の角であり、2番目に近いのはウィンドウの右下の角であり、(初期メニュー位置を除いて)3番目に近いのはウィンドウの右上の角である。従って図22に示した例では、まず情報処理システム100は、ユーザ位置に最も近い未調査の位置として、ユーザの位置に最も近い、ウィンドウの左下の角にメニューボタン1100の移動先を設定する。
一方、上記ステップS1010の判断の結果、ユーザの位置が取れていなければ(ステップS1010、No)、続いて情報処理システム100は、ユーザがよく使用する物体を情報の表示面上で認識できているかどうか判断する(ステップS1012)。ユーザがよく使用する物体の情報の表示面上での認識は、例えば検出部121が実行する。ユーザがよく使用する物体は、例えば携帯電話、スマートフォン、タブレット端末、鍵、本、新聞、雑誌、食器、おもちゃ等、どのような物体であっても良い。そして情報処理システム100は、情報の表示面に置かれている物体を認識しておき、メニューを表示しようとしている時点で、情報の表示面に置かれている物体と、予め認識しておいた物体とを比較することで、ユーザがよく使用する物体の有無を判断しても良い。
情報処理システム100は、情報の表示面上に置かれた物体の履歴を、入力部110で取得された情報を保持しておくことで蓄えることが出来る。なお情報の表示面上に置かれた物体の履歴は、情報処理システム100とネットワーク等で接続される別の装置に蓄えられるようにしても良いことは言うまでもない。
情報処理システム100は、情報の表示面上に置かれた物体が、ユーザがよく使用する物体であるかの判断を、例えばその物体が所定の頻度を上回って情報の表示面上に置かれたかどうかで判断してもよく、また例えば、ユーザによってよく使用する物体であると登録された物体であるかどうかで判断してもよい。
上記ステップS1012の判断の結果、ユーザがよく使用する物体を情報の表示面上で認識できていれば(ステップS1012、Yes)、続いて情報処理システム100は、メニュー移動先をユーザがよく使用する物体の位置に最も近い、かつ未調査の位置にセットする(ステップS1013)。ステップS1013の処理は例えば出力制御部122が実行する。
図23は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図23において、実線で示した円は、ステップS1001の処理で設定されたメニューボタン1100の移動先(初期メニュー位置)の例を示し、破線で示した円はメニューボタン1100の移動先の候補の例を示している。図23に示した例では、ユーザがよく使用する物体の位置に最も近いのはウィンドウの左下の角であり、2番目に近いのはウィンドウの右下の角であり、(初期メニュー位置を除いて)3番目に近いのはウィンドウの右上の角である。従って図23に示した例では、まず情報処理システム100は、ユーザがよく使用する物体の位置に最も近い未調査の位置として、ユーザがよく使用する物体の位置に最も近い、ウィンドウの左下の角にメニューボタン1100の移動先を設定する。
一方、上記ステップS1012の判断の結果、ユーザがよく使用する物体を情報の表示面上で認識できていなければ(ステップS1012、No)、続いて情報処理システム100は、ユーザの操作履歴を利用してメニュー移動先を決定出来るかどうか判断する(ステップS1014)。ユーザの操作履歴を利用してメニュー移動先を決定出来るかどうかは、例えば検出部121が実行する。情報処理システム100は、ユーザの操作履歴を、入力部110で取得されたユーザ操作の情報を保持しておくことで蓄えることが出来る。なおユーザの操作履歴は、情報処理システム100とネットワーク等で接続される別の装置に蓄えられるようにしても良いことは言うまでもない。
上記ステップS1014の判断の結果、ユーザの操作履歴を利用してメニュー移動先を決定出来れば(ステップS1014、Yes)、続いて情報処理システム100は、メニュー移動先をユーザがよく操作する位置であって、かつ未調査の位置にセットする(ステップS1015)。ステップS1015の処理は例えば出力制御部122が実行する。
図24は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図24において、実線で示した円は、ステップS1001の処理で設定されたメニューボタン1100の移動先(初期メニュー位置)の例を示し、破線で示した円はメニューボタン1100の移動先の候補の例を示している。図24に示した例では、ユーザがよく操作する位置はウィンドウの右下の角であり、2番目によく操作する位置はウィンドウの左下の角であり、(初期メニュー位置を除いて)3番目によく操作する位置はウィンドウの右上の角である。従って図24に示した例では、まず情報処理システム100は、ユーザがよく操作する位置であってかつ未調査の位置として、ウィンドウの右下の角にメニューボタン1100の移動先を設定する。
一方、上記ステップS1014の判断の結果、ユーザの操作履歴を利用してメニュー移動先を決定出来れば(ステップS1014、No)、続いて情報処理システム100は、メニュー移動先を、元のメニュー位置に最も近い未調査の位置にセットする(ステップS1016)。ステップS1016の処理は例えば出力制御部122が実行する。
図25は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図25において、実線で示した円は、ステップS1001の処理で設定されたメニューボタン1100の移動先(初期メニュー位置)の例を示し、破線で示した円はメニュー移動先の候補の例を示している。図25に示した例では、初期メニュー位置に最も近いのはウィンドウの左下の角であり、2番目に近いのはウィンドウの左上の角であり、3番目に近いのはウィンドウの右下の角である。従って図25に示した例では、まず情報処理システム100は、元のメニュー位置に最も近い未調査の位置として、ウィンドウの右下の角にメニューボタン1100の移動先を設定する。
上記ステップS1009の判断の結果、全てのメニュー移動先を調べきっていれば(ステップS1009、Yes)、続いて情報処理システム100は、情報処理システム100が表示するウィンドウ内の任意の位置にメニューが移動可能な位置があるかどうか判断する(ステップS1017)。ステップS1017の処理は例えば検出部121が実行する。
上記ステップS1017の判断の結果、ウィンドウ内の任意の位置にメニューが移動可能な位置があれば(ステップS1017、Yes)、情報処理システム100は、上述の処理に当てはまらない位置であって、初期位置から最も近く、かつ画面に表示されるウィンドウ内の任意の位置にメニュー移動先を設定する(ステップS1018)。ステップS1018の処理は、例えば出力制御部122が実行する。
図26は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図26に示したのは、ウィンドウの四隅がいずれもメニュー移動先として相応しくない場合の、メニューボタン1100の移動先の設定例である。すなわち図26には、ウィンドウの左上の角及び左下の角は画面の外にはみ出てしまい、右上の角は情報の表示面に置かれている物体と干渉してしまい、右下の角は他のウィンドウに覆われてしまっている状態が示されている。このような場合、情報処理システム100は、メニューボタン1100の移動先として、初期位置(図26の例では、ウィンドウの左下の角)に最も近く、かつ画面に表示されるウィンドウ内のある位置を決定し、その位置にメニューボタン1100の移動先を設定する。
一方、上記ステップS1017の判断の結果、ウィンドウ内の任意の位置にメニューが移動可能な位置がなければ(ステップS1017、No)、続いて情報処理システム100は、画面内にウィンドウが1つしか無いかどうか判断する(ステップS1019)。ステップS1019の処理は例えば検出部121が実行する。
上記ステップS1019の判断の結果、画面内にウィンドウが1つしか無ければ(ステップS1019、Yes)、情報処理システム100は、他のウィンドウのメニューと混同するおそれが無いので、上述の処理に当てはまらない位置であって、初期位置から最も近く、かつ画面に表示されるウィンドウ外の任意の位置にメニュー移動先を設定する(ステップS1020)。ステップS1020の処理は、例えば出力制御部122が実行する。一方、上記ステップS1019の判断の結果、画面内にウィンドウが複数存在すれば、情報処理システム100は、メニュー移動先は変更せずに、そのまま処理を終了させる。
図27は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図27に示したのは、情報処理システム100が表示するウィンドウが全て物体1220に被っており、かつ、画面にウィンドウが1つしか表示されていない場合の、メニューボタン1100の移動先の設定例である。情報処理システム100が表示するウィンドウの中の任意の位置にメニューが移動可能な位置が無く、かつ、情報処理システム100によって画面にウィンドウが1つしか表示されていなければ、情報処理システム100は、メニューボタン1100の移動先として、初期位置(図27の例では、ウィンドウの左下の角)に最も近く、かつ画面に表示されるウィンドウ外のある位置を決定し、その位置にメニューボタン1100の移動先を設定する。
上述した一連の処理の実行により、情報処理システム100は、図6のような形態以外にも、メニューの位置を適切な位置に移動させる制御が可能になる。図28は、画面が地面に垂直になるような情報処理システム100dでのメニュー表示制御例を示す説明図である。図28には、画面にウィンドウが4つ表示されているが、上述した一連の処理の実行により、いずれのウィンドウにおいても、ウィンドウに付随するメニューバーが重なり合わないように表示されている状態が示されている。
図29は、図28と同様に、画面が地面に対して垂直になるような情報処理システム100dでのメニュー表示制御例を示す説明図である。図29には、画面にウィンドウが4つ表示されているが、上述した一連の処理の実行により、いずれのウィンドウにおいても、ウィンドウに付随するメニューバーが重なり合わないように表示されている状態が示されている。
図30は、ディスプレイをテーブルに置いて操作させるような情報処理システム100cでのメニュー表示制御例を示す説明図である。図30に示したのは、あるユーザ(ユーザXとする)が操作していたウィンドウを、そのユーザXの対面にいるユーザ(ユーザYとする)が操作しようと手を伸ばすと、そのユーザYが操作しやすいよう、メニューボタン1100を自動的にユーザYに近い位置に移動させる表示制御が実行されている例である。情報処理システム100cに、ユーザの位置を検出できるカメラ、マイクその他のセンサ装置が設けられることで、情報処理システム100cは、ユーザが画面に対してどの位置に存在するか、また、どの方向から操作しようとしているかを検出することが可能である。従って、上述した一連の処理の実行により、情報処理システム100cは、ユーザYが操作しやすいようにメニューボタン1100を自動的にユーザYに近い位置に移動させる表示制御を実行することが出来る。
図31は、メニューやウィンドウをテーブルに投影し、その投影したメニューやウィンドウに対して操作させるような情報処理システム100aでのメニュー表示制御例を示す説明図である。図31は、食卓で情報処理システム100aが利用される場合を例示したものである。食卓のような物が置かれやすい場においては、実物体の上にメニューが投影されるケースが多くなる可能性があり、ユーザがメニューに直接触れない場合や、触るのにユーザの心理的負荷が大きい場合が生じやすくなる。例えば図31には、情報処理システム100aが情報を表示する面に、ケーキ1201やコーヒー1202が置かれている状態が示されている。
ユーザが、食卓の上のメニューが投影されている実物体を、メニューが投影されていない場所に移動させれば、ユーザは投影されたメニューを操作することが出来る。また、ユーザが、実物体にメニューが投影されないような位置に投影されたウィンドウを移動させる操作を行えば、ユーザは投影されたメニューを操作することが出来る。しかし、これらの操作をユーザに強いるのは負担が大きい。
そこで情報処理システム100aは、上述した一連の処理の実行により、図31のように、食卓の上の実物体(ケーキ1201やコーヒー1202)の位置に重ならないように、メニューボタン1100の表示位置を自動的に変化させる。食卓の上の実物体の位置に重ならないようにメニューボタン1100の表示位置を自動的に変化させることで、情報処理システム100aは、ユーザの操作負担を軽減させることが出来る。
本開示の一実施形態に係る情報処理システム100は、上述した一連の処理を実行することで、他のウィンドウの位置や、情報の表示面の状態、例えば図1に示したテーブル140aに置かれている物体の状態を検出し、その検出結果に基づいてメニューの位置を適切な位置に移動させる制御を行なうことが出来る。
本開示の一実施形態に係る情報処理システム100は、上述した一連の処理を実行することで、ユーザがウィンドウの位置を移動させたり、情報の表示面に置かれている実物体を移動させたりするステップを要することなく、メニューを操作することが出来る。従って、本開示の一実施形態に係る情報処理システム100は、上述した一連の処理を実行することで、ユーザが目的の操作を行なうまでのステップ数及び時間が短縮される。
また本開示の一実施形態に係る情報処理システム100は、上述した一連の処理を実行することで、画面外へウィンドウが頻繁に移動する可能性がある、全方位から操作可能なウィンドウを有するGUIにおいて、画面外に追いやられたウィンドウに対するユーザの操作の手間を軽減させることが出来る。画面外に追いやられたウィンドウに対するユーザの操作の手間の軽減により、本開示の一実施形態に係る情報処理システム100は、画面を広く使用させることを可能とする。
また本開示の一実施形態に係る情報処理システム100は、複数のウィンドウがユーザによって画面に表示された場合であっても、常にメニューが見えるよう、メニューの表示位置が制御されることで、ユーザが目的のアプリケーションを特定しやすくなるという効果をもたらす。
また本開示の一実施形態に係る情報処理システム100は、図1に示したような、画面を投影する形態の場合に、実物体に操作を阻まれることが無くなる。従って本開示の一実施形態に係る情報処理システム100は、操作のためにユーザに実物体を移動させたり、ウィンドウの位置を移動させたり、また投影場所に実物体を置かないようしたりにする負荷を軽減させたりすることができるという効果をもたらす。
本開示の一実施形態に係る情報処理システム100が、例えば図1に示したような、テーブルに情報を投影して、その情報に対してユーザに操作させるような形態を採る場合、情報処理システム100は、テーブルの上にスマートフォン等の携帯端末との連携が可能になる。例えば、ユーザがテーブルの上にスマートフォン等の携帯端末を置き、その携帯端末を入力部110に認識させることで、本開示の一実施形態に係る情報処理システム100は、その携帯端末を識別し、識別した携帯端末との連携を可能にする。
しかし、複数のユーザが全く同じ携帯端末を所有しており、その同じ携帯端末を同時に、また別々にテーブルの上に置いて、情報処理システム100に認識させようとすると、情報処理システム100は、どちらの携帯端末に連携すれば良いか判断できなくなる。
そこで本開示の一実施形態では、複数のユーザが全く同じ携帯端末を所有しており、同じ携帯端末が同時に、また別々にテーブルの上に置かれた場合であっても、連携する携帯端末を容易に特定可能な情報処理システム100について説明する。
本開示の一実施形態に係る情報処理システム100は、検出部121が、画像認識技術を用いて、連携する携帯端末の識別を行なうとともに、識別した携帯端末の位置、姿勢、また入力部110からの距離を検出する。従って本開示の一実施形態に係る情報処理システム100は、携帯端末を識別するために必要な特徴量データを有する。また情報処理システム100に認識されようとする携帯端末は、情報処理システム100に発見される画像データを有する。
情報処理システム100と携帯端末との連携については、以下の様な手法が考えられる。例えば、携帯端末の所有者がそれぞれ好みの画像を選択し、予めその画像を情報処理システム100に認識させる方法がある。画像を認識させた後に、携帯端末の所有者が、所有している携帯端末に、その予め認識させた画像を表示させて、情報処理システム100に認識させることで、情報処理システム100と携帯端末との連携が可能になる。
また、携帯端末の所有者が、情報処理システム100に認識してもらうための画像データを含んだ認識専用のアプリケーションを、携帯端末に予めインストールしておく方法がある。係るアプリケーションに含まれる画像データの特徴量データを、予め情報処理システム100に持たせることで、情報処理システム100での検出処理の負荷を抑えることが出来る。
また、ロック画面やホーム画面など、携帯端末のシステムが生成する画面を、認識対象の画像として情報処理システム100に認識させる方法がある。携帯端末のシステムが生成する画面を情報処理システム100に認識させるには、専用のアプリケーションを介してもよいし、ユーザ自身が画面をキャプチャして、キャプチャした画像を情報処理システム100に認識させてもよい。
図32及び図33は、本開示の一実施形態に係る情報処理システム100及び情報処理システム100と連携する携帯端末の動作例を示す流れ図である。図32に示したのは情報処理システム100と連携する携帯端末の動作例であり、図33に示したのは情報処理システム100の動作例である。なお、図32及び図33に示した動作が行われる前に、携帯端末は予め任意の画像を情報処理システム100に登録しているものとする。以下、図32及び図33を用いて、本開示の一実施形態に係る情報処理システム100及び情報処理システム100と連携する携帯端末の動作例について説明する。
情報処理システム100と連携する携帯端末は、ユーザの所定の操作に応じ、情報処理システム100に認識させるための認識用画面を表示する(ステップS1101)。また情報処理システム100は、ユーザの所定の操作に応じ、携帯端末を認識するモード(以下「認識モード」とも称する)に移行する(ステップS1111)。
ユーザは、上記ステップS1101で情報処理システム100に認識させるための認識用画面を表示した携帯端末を、情報処理システム100に認識させるための認識可能エリア内に置く(ステップS1102)。この認識可能エリアは、情報処理システム100が任意の領域を設定し得る。例えばテーブルに情報を投影するシステムである場合、そのテーブルに情報が投影される領域全体が認識可能エリアであってもよく、または所定の一部の領域が認識可能エリアであってもよい。所定の一部の領域を認識可能エリアに設定する場合は、情報処理システム100は、認識可能エリアであることが分かるような表示を出力部130から出力しても良い。
また情報処理システム100は、上記ステップS1111で認識モードに移行すると、続いて、情報処理システム100に登録されている認識画像を検索する(ステップS1112)。この認識画像の検索処理は、例えば検出部121が実行する。情報処理システム100は、このステップS1112の検索処理を、画像認識用画面を表示した携帯端末が認識可能エリアに置かれたら開始しても良いし、携帯端末が認識可能エリアに置かれる前から開始していても良い。
上記ステップS1112の検索処理を開始すると、情報処理システム100は、上記ステップS1112の検索処理によって登録されている画像が見つかったかどうかを判断する(ステップS1113)。この判断処理は、例えば検出部121が実行する。そしてステップS1113の判断処理の結果、登録されている画像が見つからなければ(ステップS1113、No)、続いて情報処理システム100は、検索を開始してから一定時間が経過したかどうかを判断する(ステップS1114)。この判断処理は、例えば検出部121が実行する。ステップS1114の判断処理の結果、一定時間経過しても登録されている画像が見つからなければ(ステップS1114、Yes)、情報処理システム100は処理を終了し、認識モードから離脱する。一方ステップS1114の判断処理の結果、一定時間が経過して無ければ(ステップS1114、No)、再度ステップS1112の検索処理を実行する。
上記ステップS1113の判断処理の結果、登録されている画像が見つかれば(ステップS1113、Yes)、続いて情報処理システム100は、登録されている画像を発見したことを意味する効果を表示する(ステップS1115)。ステップS1115の表示処理は、例えば出力制御部122が実行する。登録されている画像を発見したことを意味する効果はどのようなものであっても良いが、一例を挙げれば、情報処理システム100は、例えば、携帯端末が置かれている場所を中心に波紋が広がるような表示を行っても良い。登録されている画像を発見したことを意味する効果が、携帯端末が表示している画像と重なってしまうと、情報処理システム100での認識処理に影響が出てしまうので、情報処理システム100は、登録されている画像を発見したことを意味する効果を、携帯端末に重ならないように出力することが望ましい。
図34は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図34に示したのは、情報処理システム100が表示する、登録されている画像を発見したことを意味する効果の例である。画像認識用画面を表示した携帯端末1300が認識可能エリアに置かれ、携帯端末1300が表示している画像が、情報処理システム100に登録されている画像であることを検出部121が認識すると、情報処理システム100は、携帯端末1300が置かれている場所を中心に、符号1301で示した波紋が広がるような表示を行っても良い。
なお、情報処理システム100が携帯端末の画像を認識している際に、携帯端末のディスプレイの輝度が明るすぎたり、また暗すぎたりすると、情報処理システム100での認識に影響が出る。情報処理システム100が認識モードにある場合は、例えば携帯端末のユーザは、携帯端末のディスプレイの輝度を調整することで、情報処理システム100に画像を認識させやすくしても良い。
上記ステップS1115で、登録されている画像を発見したことを意味する効果を表示すると、続いて情報処理システム100は、情報処理システム100で現在実行中のアプリケーションが、画像を認識し続ける必要があるアプリケーションかどうか判断する(ステップS1116)。この判断処理は、例えば検出部121が実行する。画像を認識し続ける必要があるアプリケーションには、例えば認識した画像に追従して情報を表示し続ける必要があるアプリケーションが挙げられる。
上記ステップS1116の判断の結果、情報処理システム100で現在実行中のアプリケーションが、画像を認識し続ける必要があるアプリケーションで無ければ(ステップS1116、No)、携帯端末は認識可能エリアに置かれ続ける必要がないので、続いて情報処理システム100は、認識した携帯端末を認識可能エリアから退かすように促す情報を表示する(ステップS1117)。ステップS1115の表示処理は、例えば出力制御部122が実行する。携帯端末を退かすように促す情報はどのようなものであっても良い。しかし、携帯端末を退かすように促す情報が、携帯端末が表示している画像と重なってしまうと、情報処理システム100での認識処理に影響が出てしまうので、情報処理システム100は、携帯端末を退かすように促す情報を、携帯端末に重ならないように出力することが望ましい。
図35は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図35に示したのは、携帯端末が表示した画像を認識した後に情報処理システム100が表示する情報の例である。情報処理システム100が現在実行中のアプリケーションが、画像を認識し続ける必要があるアプリケーションで無ければ、情報処理システム100は、例えば図35の符号1302で示したような、携帯端末1300を退かすように促す情報を表示する。情報処理システム100は、図35に示したような情報を表示することで、携帯端末1300のユーザに、携帯端末1300を認識可能エリアから退かす必要があることを気付かせることができる。携帯端末を退かすように促す情報が、携帯端末が表示している画像と重なってしまうと、情報処理システム100での認識処理に影響が出てしまう。従って情報処理システム100は、図35に示したように、携帯端末を退かすように促す情報を、携帯端末に重ならないように出力することが望ましい。
情報処理システム100は、上記ステップS1117で情報を表示した後に、情報処理システム100に登録されている画像が画面内(認識可能エリア内)から消えたかどうか判断する(ステップS1118)。この判断処理は、例えば検出部121が実行する。ステップS1118の判断処理の結果、情報処理システム100に登録されている画像が画面内(認識可能エリア内)から消えてなければ(ステップS1118、No)、情報処理システム100は、ステップS1117で表示した情報を表示し続ける。一方、図32のステップS1103で、携帯端末がユーザによって認識可能エリアから退かされ、情報処理システム100に登録されている画像が画面内(認識可能エリア内)から消えると(ステップS1118、Yes)、情報処理システム100は画像認識処理を停止する(ステップS1119)。
一方、上記ステップS1116の判断の結果、現在実行中のアプリケーションが、画像を認識し続ける必要があるアプリケーションであれば(ステップS1116、Yes)、情報処理システム100は、上記ステップS1117〜S1119の処理をスキップする。
上記ステップS1119で画像認識処理を停止すると、続いて情報処理システム100は、上記ステップS1113で発見した画像のIDを記録する(ステップS1120)。このステップS1120の処理は、例えば検出部121が実行する。そして情報処理システム100は、画像のIDのマッチングをして、その画像を表示していた携帯端末との通信処理を開始する(ステップS1121)。情報処理システム100と、携帯端末との間の通信は、例えばインターネット、Wi−Fi、Bluetooth(登録商標)等で行われる。また情報処理システム100は、上記ステップS1113で発見した画像の位置、姿勢、大きさを記録する(ステップS1122)。このステップS1122の処理は、例えば検出部121が実行する。
そして情報処理システム100は、上記ステップS1113で発見した画像の位置、姿勢、大きさの情報を利用して、携帯端末との接続状態を示す表示を情報の表示面に対して行なう(ステップS1123)。このステップS1123の表示処理は、例えば出力制御部122が実行する。このステップS1123での、携帯端末との接続状態を示す表示のことを、以下では「接続マーク」とも称する。情報処理システム100は、接続マークとして、例えば、認識した携帯端末が表示していた認識用画面と同じ画像を表示しても良い。接続マークとして、認識した携帯端末が表示していた認識用画面と同じ画像を表示することで、情報処理システム100は、どの接続マークがどの携帯端末に対応しているかをユーザに容易に把握させることが可能となる。
図36は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図36に示したのは、情報処理システム100が接続マークを表示面に表示している状態の例である。図36の符号1303は、接続マークの例であり、情報処理システム100が、図34、35に示した携帯端末1300と接続状態にあることが示されている。本開示の一実施形態にかかる情報処理システム100は、このような接続マークの表示面への表示により、ユーザが所有する携帯端末との連携が行われ、接続マークがデータのやり取りのインターフェースとして画面に表示されていることをユーザに提示することが出来る。後述するように、図36に示した接続マーク1303は、携帯端末からデータを取り出したり、また携帯端末にデータをコピーしたりするためのインターフェースとして用いられ得る。
また接続マーク1303は、図36に示したように、携帯端末のディスプレイに表示された画像は認識された際の位置、姿勢、大きさに基づいて表示面に表示される。従って接続マーク1303は、自ずとその携帯端末を置いたユーザの手元に、ユーザが接触しやすい向きで表示されることになり、複数ユーザや複数端末での機器連携の利便性の向上という効果をもたらす。
情報処理システム100と、携帯端末との接続状態は、ユーザの能動的な接続解除操作によって解除されてもよく、一定時間の間携帯端末や接続マークに対して操作が行われなかったら自動的に解除されるようにしてもよい。情報処理システム100と、携帯端末との接続状態が解除されると、情報処理システム100は、上記ステップS1123で表示させた接続マークを消去してもよい。情報処理システム100は、上記ステップS1123で表示させた接続マークを消去することで、接続状態が終了したことをユーザに提示することができる。
上述した一連の処理の実行によって接続マークを情報の表示面に表示させることで、本開示の一実施形態に係る情報処理システム100は、ユーザに対して様々な体験を提供することが出来る。以下、情報処理システム100が接続マークの表示によってユーザに提供できる体験の例を説明する。
情報処理システム100は、情報の表示面への接続マークの表示によって、携帯端末に保存されている画像データの共有を可能にする。図37は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図37に示したのは、接続マークの表示によって、携帯端末に保存されている画像データを共有する際の、情報処理システム100が実行するアプリケーションのGUIの例である。
図37には、情報処理システム100によって接続マーク1303、1304が情報の表示面に表示されている状態が示されている。例えば、ユーザに所定のメニューボタンを操作させて、写真を共有するためのアプリケーションを実行させると、情報処理システム100は、図37に示したように、接続マーク1303、1304に対応する携帯端末の画像フォルダなどから画像データを取得し、その接続マーク1303、1304の周囲に、画像フォルダから取得した画像を表示する。接続マーク1303、1304の周囲に表示された画像は、ユーザによってドラッグ操作が可能なように表示される。情報処理システム100は、情報処理システム100へのコピーを意味するアイコンその他の情報を出力し、表示した画像データを当該情報へユーザにドラッグさせることで、簡単なユーザ操作で、携帯端末が保持している画像データを情報処理システム100へコピーさせることが可能となる。
また、図37に示したように接続マーク1303、1304を情報の表示面に表示している状態で、例えば接続マーク1303に対応する携帯端末に保存されている画像データを、ユーザに接続マーク1304にドラッグさせることで、情報処理システム100を介した携帯端末間での画像データのコピーを可能にしてもよい。従って、情報処理システム100は、簡単なユーザ操作で、携帯端末が保持している画像データを別の携帯端末へコピーさせることが可能となる。
情報処理システム100が上述した一連の処理の実行によって接続マークを表示させた後は、ユーザは携帯端末を自由に持ち歩くことが出来る。従って、例えば情報処理システム100と連携した携帯端末で写真を撮像すると、その撮像した写真を情報処理システム100に表示させるようなアプリケーションも可能となる。図38は、情報処理システム100の使用例を示す説明図であり、情報処理システム100と連携した携帯端末を使用してユーザが写真を撮像する様子を示したものである。情報処理システム100と連携した携帯端末を使用してユーザが写真を撮像すると、情報処理システム100は、その携帯端末で撮像された写真が、接続マーク1303の周囲に表示されるようなアプリケーションも実現することが出来る。情報処理システム100は、携帯端末で撮像された写真を接続マーク1303の周囲に表示する際に、例えば接続マーク1303からその写真が現れてくるような効果を付けて表示しても良い。情報処理システム100は、携帯端末で撮像された写真を、そのような効果を付けて表示することで、どの携帯端末で撮像された写真であるかを明示化出来る。
情報処理システム100は、情報の表示面への接続マークの表示によって、携帯端末に保存されている楽曲データの共有を可能にする。図39は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図39に示したのは、接続マークの表示によって、携帯端末に保存されている楽曲データを共有する際の、情報処理システム100が実行するアプリケーションのGUIの例である。
図39には、情報処理システム100によって接続マーク1303、1304が表示されている状態が示されている。例えば、ユーザに所定のメニューボタンを操作させて、楽曲データを共有するためのアプリケーションを実行させると、情報処理システム100は、図39に示したように、接続マーク1303、1304に対応する携帯端末の音楽フォルダなどから楽曲データを取得し、その接続マーク1303、1304の周囲に、音楽フォルダから取得した楽曲データのジャケット画像を表示する。接続マーク1303、1304の周囲に表示されたジャケット画像は、ユーザによってドラッグ操作が可能なように表示される。情報処理システム100は、情報処理システム100へのコピーを意味するアイコンその他の情報を出力し、表示したジャケット画像を当該情報へユーザにドラッグさせることで、簡単なユーザ操作で、携帯端末が保持している楽曲データを情報処理システム100へコピーさせることが可能となる。
また、図39に示したように接続マーク1303、1304を表示している状態で、例えば接続マーク1303に対応する携帯端末に保存されている楽曲データのジャケット画像を、ユーザに接続マーク1304にドラッグさせることで、情報処理システム100を介した携帯端末間での楽曲データのコピーを可能にしてもよい。従って、情報処理システム100は、簡単なユーザ操作で、携帯端末が保持している楽曲データを別の携帯端末へコピーさせることが可能となる。
また図39には、情報処理システム100が楽曲データを再生するためのインターフェースを表示している状態が示されている。ユーザに、楽曲データを再生するためのインターフェースにジャケット画像をドラッグさせることで、情報処理システム100は、ジャケット画像に対応する楽曲データを再生したり、プレイリストを作成したりする処理を実行することが出来る。
情報処理システム100は、画像データや楽曲データ以外にも、様々なデータを情報処理システム100に連携させた携帯端末と共有することが出来る。情報処理システム100は、例えば情報処理システム100に連携させた携帯端末で表示していたウェブサイトや、ブラウザのブックマークについても、上述のGUIと同様に共有させることが出来る。また、情報処理システム100で表示していたウェブサイトを、情報処理システム100に連携させた携帯端末で引き続き表示させるために、情報処理システム100は、情報処理システム100が実行するブラウザの所定のメニューボタンを接続マークにドラッグさせる、という操作も提供することが出来る。
情報処理システム100は、情報の表示面への接続マークの表示によって、携帯端末に保存されている連絡先データの共有を可能にする。図40は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図40に示したのは、接続マークの表示によって、携帯端末に保存されている連絡先データを共有する際の、情報処理システム100が実行するアプリケーションのGUIの例である。
図40には、情報処理システム100によって接続マーク1303、1304が情報の表示面に表示されている状態が示されている。例えば、ユーザに所定のメニューボタンを操作させて、連絡先データを共有するためのアプリケーションを実行させると、情報処理システム100は、図40に示したように、情報の表示面に表示されている接続マーク1303、1304に対応する携帯端末から連絡先データを取得し、その接続マーク1303、1304の周囲に、携帯端末から取得した連絡先データを意味する画像を表示する。接続マーク1303、1304の周囲に表示された画像は、ユーザによってドラッグ操作が可能なように表示される。情報処理システム100は、情報処理システム100へのコピーを意味するアイコンその他の情報を出力し、ユーザに当該情報へ表示した画像をドラッグさせることで、簡単なユーザ操作で、携帯端末が保持している連絡先データを情報処理システム100へコピーさせることが可能となる。
また情報処理システム100は、図40に示したように接続マーク1303、1304を情報の表示面に表示している状態で、例えば接続マーク1303に対応する携帯端末に保存されている連絡先データを、ユーザに接続マーク1304にドラッグさせることで、情報処理システム100を介した携帯端末間での連絡先データのコピーを可能にしてもよい。従って、情報処理システム100は、簡単なユーザ操作で、携帯端末が保持している連絡先データを別の携帯端末へコピーさせることが可能となる。
情報処理システム100と連携される携帯端末は、様々なアプリケーションのインストールによって機能を追加することが出来る。情報処理システム100は、上述した処理によって接続マークを表示することによって、携帯端末間でアプリケーションの授受を可能にするようなGUIを実現することも出来る。
図41は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図41に示したのは、接続マークの表示によって、携帯端末に保存されているアプリケーションを表示する際の、情報処理システム100が実行するアプリケーションのGUIの例である。
図41には、情報処理システム100によって接続マーク1303、1304が情報の表示面に表示されている状態が示されている。例えば、ユーザに所定のメニューボタンを操作させて、携帯端末にインストールされているアプリケーションの一覧を表示するためのアプリケーションを実行させると、情報処理システム100は、図41に示したように、接続マーク1303、1304に対応する携帯端末から、携帯端末にインストールされているアプリケーションの情報を取得し、接続マーク1303、1304の周囲にアイコンその他の情報で表示する。図41には、接続マーク1303に対応する携帯端末にはアプリケーションが複数インストールされているが、接続マーク1304に対応する携帯端末にはアプリケーションが全くインストールされていない状態が示されている。ここで、接続マーク1304に対応する携帯端末のユーザが、好みのアプリケーションを接続マーク1303に対応する携帯端末にインストールされているものの中から見つけると、そのアプリケーションのアイコンを、接続マーク1304にドラッグさせる。このドラッグ操作によって、接続マーク1304に対応する携帯端末では、そのアプリケーションのダウンロード及びインストール処理が自動的に行われる。
本開示の一実施形態に係る情報処理システム100は、携帯端末が表示した画像を認識することで、携帯端末で専用のアプリケーションを起動させなくても、携帯端末の位置、姿勢、大きさなどを取得した上で、携帯端末と連携して通信を行なうことが出来る。
本開示の一実施形態に係る情報処理システム100は、携帯端末との機器連携に先立って、携帯端末で任意の画像を表示させて、その表示させた画像を登録しておく。本開示の一実施形態に係る情報処理システム100は、このような画像の登録処理を経ることで、ユーザに画像の選択の楽しみを与えることが出来る。また本開示の一実施形態に係る情報処理システム100は、携帯端末が表示した画像の認識が完了すると、その画像を接続マークとして画面に表示し続けることで、どのユーザの接続マークであるかをユーザに認識させやすくすることが出来る。
本開示の一実施形態に係る情報処理システム100は、携帯端末との機器連携に先立って、携帯端末で任意の画像を表示させて、その表示させた画像を登録しておくので、全く同じ機種の携帯端末が複数存在する場合であっても、認識用の画像の使い分けにより、携帯端末の一意な識別を可能にする。なお、複数のユーザがそれぞれ同じ機種を持っており、各ユーザが、たまたま全く同じ画像を認識用画像に選択する可能性が無いわけでは無い。そこで本開示の一実施形態に係る情報処理システム100は、携帯端末に、選択した認識用画像を情報処理システム100へ登録させてからでないと、携帯端末との連携が出来ないようにしても良い。携帯端末に、選択した認識用画像を情報処理システム100へ登録させることで、情報処理システム100は、携帯端末が選択した画像の重複の有無を判断することが出来る。
なお、全く同じ画像が認識用画像に選択された場合は、複数のユーザがそれぞれ同じ機種を持っている際に問題となり得るが、違う機種であっても、外観が似ていれば、全く同じ画像が認識用画像に選択されると同様に問題となり得る。従って情報処理システム100は、連携しようとする携帯端末に対して、全ての携帯端末について一意となるように認識用画像を選択させて、情報処理システム100に登録させても良い。
本開示の一実施形態に係る情報処理システム100は、例えば図6に示したように、複数のユーザからの、様々な方向からのメニューの操作を受け付けることが出来る。しかし、1つのメニューを複数のユーザが扱うと、誰かが使用している間は他のユーザはそのメニューを使用することができない。また複数のユーザからの、様々な方向からのメニューの操作を受け付けることが出来るために、メニューのカスタマイズが難しくなる。つまり、あるユーザが自分で使いやすくするためにカスタマイズしたメニューは、他のユーザにとって必ずしも使いやすいとは限らない。
複数のユーザからの、様々な方向からのメニューの操作を受け付けることで、複数のウィンドウが表示された状態では、自分が表示させたウィンドウがどれなのか判別しづらくなり易い。また1つのメニューからアプリケーションを起動させると、アプリケーションの立ち上げの際にユーザごとにログインの必要があり、ユーザが増えるほど煩わしくなる。
そこで本開示の一実施形態に係る情報処理システム100は、複数のユーザからの、様々な方向からのメニューの操作を受け付ける際の操作性及び利便性の向上を図るよう、以下で説明するようなユーザからの操作を受け付けられるようにする。
複数のユーザからの、様々な方向からのメニューの操作を受け付ける際の操作性及び利便性の向上を図る際の、情報処理システム100の動作例について説明する。図42は、本開示の一実施形態に係る情報処理システム100の動作例を示す流れ図である。図42に示したのは、図6等に示したメニューボタン1100や、メニューボタン群1110に対するドラッグ操作がユーザによって行われた際の、本開示の一実施形態に係る情報処理システム100の動作例である。以下、図42を用いて本開示の一実施形態に係る情報処理システム100の動作例について説明する。
以下、メニューボタン1100や、メニューボタン群1110に対するドラッグ操作のことを、単に、(メニューに対する)ドラッグ操作とも称する場合がある。
情報処理システム100は、情報処理システム100によって表示されているメニューに対して、ユーザがドラッグ操作を行ったことを検出すると(ステップS1201)、そのドラッグ操作が、1点でメニューを押さえ、もう1点でそのメニューに対してドラッグしているかどうかを判断する(ステップS1202)。上記ステップS1201、S1202の処理は、例えば検出部121が実行する。
上記ステップS1202の判断の結果、1点でメニューを押さえ、もう1点でそのメニューに対してドラッグしている操作であるならば(ステップS1202、Yes)、情報処理システム100は、そのドラッグされているメニューのコピーを作成する(ステップS1203)。ステップS1203のメニューのコピーの作成は、例えば出力制御部122が実行する。
図45は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図45に示したのは、上記ステップS1203のメニューのコピーの作成例である。例えば図45の様に、ユーザが左手の人差し指で、情報の表示面に表示されているメニューボタン群1110の中から1つのメニューボタン(B)を押さえ、右手の人差し指で同じメニューボタン(B)に対してドラッグ操作を行ったとする。情報処理システム100は、このようなユーザの操作に応じて、そのメニューボタン(B)のコピーのメニューボタン1111を作成する処理を実行する。
一方、上記ステップS1202の判断の結果、1点でメニューを押さえ、もう1点でそのメニューに対してドラッグしている操作でなければ(ステップS1202、No)、続いて情報処理システム100は、上記ステップS1201で検出したドラッグ操作が、2点でメニューを押さえ、もう1点でそのメニューに対してドラッグしているかどうかを判断する(ステップS1204)。ステップS1204の処理は、例えば検出部121が実行する。
上記ステップS1204の判断の結果、2点でメニューを押さえ、もう1点でそのメニューに対してドラッグしている操作であるならば(ステップS1204、Yes)、続いて情報処理システム100は、そのメニューがフォルダを意味するフォルダメニューであるかどうか判断する(ステップS1205)。ステップS1205の処理は、例えば検出部121が実行する。ステップS1205の判断の結果、ドラッグされているメニューがフォルダメニューでなければ(ステップS1205、No)、情報処理システム100は、1点でメニューを押さえ、もう1点でそのメニューに対してドラッグしている操作の場合と同様に、そのドラッグされているメニューのコピーを作成する(ステップS1203)。一方、ステップS1205の判断の結果、ドラッグされているメニューがフォルダメニューであれば(ステップS1205、Yes)、情報処理システム100は、そのメニュー(フォルダメニュー)のショートカットを作成する(ステップS1206)。ステップS1206のメニューのショートカットの作成は、例えば出力制御部122が実行する。ショートカットとは、別のメニューへの参照として機能する、実体のないメニューのことを言うものとする。
図46は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図46に示したのは、上記ステップS1206のメニューのショートカットの作成例である。例えば図46の様に、ユーザが左手の人差し指および中指の2点でメニューボタン群1110の中から1つのメニューボタン(B)を押さえ、右手の人差し指で同じメニューボタン(B)に対してドラッグ操作を行ったとする。情報処理システム100は、このようなユーザの操作に応じて、そのメニューボタン(B)のショートカットボタン1112を作成する処理を実行する。
情報処理システム100は、図45に示したメニューボタン(B)のコピーのメニューボタン1111と、図46に示したショートカットボタン1112とは、見た目を異ならせて作成しても良い。本実施形態では、メニューボタン1111は単なる円であり、ショートカットボタン1112は二重の円である。もちろんコピーのメニューボタン1111とショートカットボタン1112の形状は係る例に限定されるものではなく、情報処理システム100は、形状の違いだけでなく、色の違いによって見た目を異ならせるようにしてもよい。
メニューのコピーの作成とメニューのショートカットの作成の違いについて説明する。情報処理システム100は、ユーザの操作に基づいてメニューのコピーを作成した場合は、片方のメニュー(例えばコピー元のメニュー)に別のメニューを追加しても、他方のメニュー(例えばコピー先のメニュー)には、その追加されたメニューを追加しない。一方、情報処理システム100は、ユーザの操作に基づいてメニューのショートカットを作成した場合は、片方のメニュー(例えばショートカット元のメニュー)に別のメニューを追加すると、他方のメニュー(例えばショートカット先のメニュー)にも、その追加されたメニューを追加する。
図47及び図48は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、ユーザの操作に基づいてメニューのコピーを作成した場合のGUIの例である。図47のようにユーザの操作に基づいてメニューを作成した後に、図48のように片方のメニューに新たなメニュー(G)を追加しても、もう片方のメニューには、そのメニュー(G)は追加されない。
図49及び図50は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図であり、ユーザの操作に基づいてメニューのショートカットを作成した場合のGUIの例である。なお図49及び図50には、破線によって図49のようにユーザの操作に基づいてメニューのショートカットを作成した後に、図50のように片方のメニューに新たなメニュー(G)を追加すると、もう片方のメニューにも、その新たなメニュー(G)が追加される。
一方、上記ステップS1204の判断の結果、2点でメニューを押さえ、もう1点でそのメニューに対してドラッグしている操作でなければ(ステップS1204、No)、続いて情報処理システム100は、メニューの並びと、メニューのドラッグ方向とのなす角が規定値以上であるかどうか判断する(ステップS1207)。ステップS1207の処理は、例えば検出部121が実行する。
上記ステップS1207の判断の結果、メニューの並びと、ドラッグ方向とのなす角が規定値以上であれば(ステップS1207、Yes)、続いて情報処理システム100は、そのドラッグされているメニューが、メニューボタン群から分離可能なメニューかどうか判断する(ステップS1208)。ステップS1208の処理は、例えば検出部121が実行する。ステップS1208の判断の結果、ドラッグされているメニューがメニューボタン群から分離可能なメニューでなければ(ステップS1208、No)、情報処理システム100は、そのドラッグされているメニューのコピーを作成する(ステップS1203)。一方、ステップS1208の判断の結果、ドラッグされているメニューが分離可能なメニューであれば(ステップS1208、Yes)、情報処理システム100は、そのメニューをメニューボタン群から分離する(ステップS1209)。ステップS1209のメニューのメニューボタン群からの分離処理は、例えば出力制御部122が実行する。
図51は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図51に示したのは、ユーザによるメニューのドラッグ操作の一例である。符号1401は、円弧状に配置されたメニューボタン群1110の動径方向を示し、符号1402は、ユーザによってメニューボタンがドラッグされる方向を示し、符号1403は円弧状に配置されたメニューボタン群1110の円周方向を示している。符号1402に示したユーザによってメニューボタンがドラッグされる方向と、メニューの並びとのなす角が規定値以上であって、そのメニューボタンがメニューボタン群1110から分離可能なものであれば、情報処理システム100は、そのドラッグされるメニューボタンを、メニューボタン群1110から分離する。
図52は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図52に示したのは、ユーザによるメニューのドラッグ操作の一例である。ユーザが、メニューボタン群1110の中から1つのメニューボタンを指で接触し、そのメニューボタンに対してドラッグ操作を実行すると、情報処理システム100は、そのドラッグされるメニューボタンを、メニューボタン群1110から分離し、メニューボタン1111として独立させる。
一方、上記ステップS1207の判断の結果、メニューの並びと、ドラッグ方向とのなす角が規定値以上でなければ(ステップS1207、No)、情報処理システム100は、ユーザのドラッグ操作を通常の挙動にする(ステップS1210)。このステップS1210の処理は、例えば出力制御部122が実行する。通常の挙動とは、例えば、メニューボタン1100がユーザの操作に追従して移動することであったり、メニューボタン群1110がユーザの操作に追従してメニューボタン1100を中心に回転したりすることである。
本開示の一実施形態に係る情報処理システム100は、ユーザのメニューボタンのドラッグ操作の内容に応じて、上述したような動作を実行することで、ユーザに、簡易な操作でメニューをコピーさせたり、メニューのショートカットを作成させたり、メニューを分離させたりすることが出来る。
続いて、ユーザのメニューボタンのドロップ操作の内容に応じた情報処理システム100の動作例について説明する。図43及び図44は、本開示の一実施形態に係る情報処理システム100の動作例を示す流れ図である。図43及び図44に示したのは、図6等に示したメニューボタン1100や、メニューボタン群1110に対して、ユーザによってドラッグ操作がなされた後に、ユーザによってドロップ操作が行われた際の、本開示の一実施形態に係る情報処理システム100の動作例である。以下、図43及び図44を用いて本開示の一実施形態に係る情報処理システム100の動作例について説明する。
以下、メニューボタン1100や、メニューボタン群1110に対するドロップ操作のことを、単に、(メニューに対する)ドロップ操作とも称する場合がある。
情報処理システム100は、情報処理システム100によって表示されているメニューに対してユーザがドロップ操作を行ったことを検出すると(ステップS1211)、ユーザによってドラッグされた距離が規定距離以下かどうか判断する(ステップS1212)。上記ステップS1211、S1212の処理は、例えば検出部121が実行する。
上記ステップS1212の判断の結果、ユーザによってドラッグされた距離が規定距離以下であれば(ステップS1212、Yes)、情報処理システム100は、そのドロップされたメニューに割り当てられた機能を実行する(ステップS1213)。メニューに割り当てられた機能としては、例えばアプリケーションの起動、ウェブサイトの表示、画像データの表示、楽曲データの再生、等様々な機能があり、特定の機能に限定されるものではない。
一方、上記ステップS1212の判断の結果、ユーザによってドラッグされた距離が規定距離を超えていれば(ステップS1212、No)、情報処理システム100は、そのメニューが、別のメニューであって、ドラッグされた距離が規定距離以下であるメニューの上にドロップされたかどうか判断する(ステップS1214)。ステップS1214の判断は、例えば検出部121が実行する。
上記ステップS1214の判断の結果、ドロップしたメニューと別のメニューであって、ドラッグされた距離が規定距離以下であるメニューの上にドロップされた場合は(ステップS1214、Yes)、続いて情報処理システム100は、そのドロップされたメニューはドロップを受け付けるメニューであるかどうか判断する(ステップS1215)。ステップS1214の判断は、例えば検出部121が実行する。
上記ステップS1215の判断の結果、ドロップされたメニューはドロップを受け付けるメニューであれば(ステップS1215、Yes)、続いて情報処理システム100は、そのドロップされたメニューがフォルダメニューかどうか判断する(ステップS1216)。ステップS1215の判断は、例えば検出部121が実行する。
上記ステップS1216の判断の結果、ドロップされたメニューがフォルダメニューであれば(ステップS1216、Yes)、続いて情報処理システム100は、ドロップ先の下の階層のメニュー(子メニュー)にドロップされたメニューを追加する(ステップS1218)。ステップS1218の追加処理は、例えば出力制御部122が実行する。
一方上記ステップS1216の判断の結果、ドロップされたメニューがフォルダメニューでなければ(ステップS1216、No)、続いて情報処理システム100は、ユーザがドロップしたメニューに対応するアイテムをドロップされたメニューが扱えるかどうか判断する(ステップS1217)。ステップS1217の判断は、例えば検出部121が実行する。
上記ステップS1217の判断の結果、ユーザがドロップしたアイテムをドロップされたメニューが扱える場合は(ステップS1217、Yes)、続いて情報処理システム100は、ユーザがドロップしたメニューに紐付いた情報を、ドロップされたメニューに渡す(ステップS1219)。ステップS1219の処理は、例えば出力制御部122が実行する。
一方ステップS1217の判断の結果、ユーザがドロップしたアイテムをドロップされたメニューが扱えない場合は(ステップS1217、No)、続いて情報処理システム100は、ドロップ元のメニューと、ドロップ先のメニューとを子要素に持つ新たなメニューを作成する処理を行なう(ステップS1220)。ステップS1220の処理は、例えば出力制御部122が実行する。
上記ステップS1214の判断の結果、ドロップしたメニューと別のメニューであって、ドラッグされた距離が規定距離以下であるメニューの上にドロップされた場合で無ければ(ステップS1214、No)、続いて情報処理システム100は、ドロップしたメニューと別のメニューが1点で押さえられた状態で、そのメニューがドロップしたメニューと規定距離以下に近づいているかどうか判断する(ステップS1221)。ステップS1221の判断は、例えば検出部121が実行する。
上記ステップS1221の判断の結果、ドロップしたメニューと別のメニューが1点で押さえられた状態で、そのメニューがドロップしたメニューと規定距離以下に近づいていれば(ステップS1221、Yes)、続いて情報処理システム100は、ドロップしたメニューと、別のそのメニューとがマージ可能かどうか判断する(ステップS1222)。ステップS1222の判断は、例えば検出部121が実行する。
上記ステップS1222の判断の結果、ドロップしたメニューと、別のそのメニューとがマージ可能である場合は(ステップS1222、Yes)、続いて情報処理システム100は、ドロップしたメニューの子メニューと、別のそのメニューの子メニューとをマージする処理を実行する(ステップS1223)。ステップS1223の処理は、例えば出力制御部122が実行する。上記ステップS1222の判断の結果、ドロップしたメニューと、別のそのメニューとがマージ可能で無い場合は(ステップS1222、No)、続いて情報処理システム100は、ドロップしたメニューをドラッグ前の位置に戻す処理を実行する(ステップS1226)。ステップS1226の処理は、例えば出力制御部122が実行する。
上記ステップS1221の判断の結果、ドロップしたメニューと別のメニューが1点で押さえられた状態で、そのメニューがドロップしたメニューと規定距離以下に近づいている場合で無ければ(ステップS1221、No)、続いて情報処理システム100は、ドロップされたメニューが、同階層の2つのメニューからそれぞれ既定距離以内の場所にドロップされたかどうかを判断する(ステップS1224)。ステップS1224の判断は、例えば検出部121が実行する。
上記ステップS1224の判断の結果、ドロップされたメニューが、同階層の2つのメニューからそれぞれ既定距離以内の場所にドロップされた場合は(ステップS1224、Yes)、続いて情報処理システム100は、ドラッグ及びドロップされたメニューを、その2つのメニューの間に挿入する処理を実行する(ステップS1225)。ステップS1225の処理は、例えば出力制御部122が実行する。
一方、上記ステップS1224の判断の結果、ドロップされたメニューが、同階層の2つのメニューからそれぞれ既定距離以内の場所にドロップされた場合で無ければ(ステップS1224、No)、続いて情報処理システム100は、ドロップされるまで既定速度以上でそのメニューがドラッグされていたかどうかを判断する(ステップS1227)。ステップS1227の判断は、例えば検出部121が実行する。
上記ステップS1227の判断の結果、ドロップされるまで既定速度以上でそのメニューがドラッグされていた場合は(ステップS1227、Yes)、続いて情報処理システム100は、そのドロップされたメニューが削除可能かどうか判断する(ステップS1228)。ステップS1228の判断は、例えば検出部121が実行する。
上記ステップS1228の判断の結果、ドロップされたメニューが削除可能である場合は(ステップS1228、Yes)、続いて情報処理システム100は、ドラッグしていたメニューを削除する処理を実行する(ステップS1230)。ステップS1230の処理は、例えば出力制御部122が実行する。一方、上記ステップS1228の判断の結果、ドロップされたメニューが削除可能でない場合は(ステップS1228、No)、ドロップしたメニューをドラッグ前の位置に戻す処理を実行する(ステップS1226)。ステップS1226の処理は、例えば出力制御部122が実行する。
上記ステップS1227の判断の結果、ドロップされるまで既定速度未満でそのメニューがドラッグされていた場合は(ステップS1227、No)、続いて情報処理システム100は、ドロップされた場所が画面の外かどうか判断する(ステップS1229)。ステップS1229の判断は、例えば検出部121が実行する。
上記ステップS1229の判断の結果、ドロップされた場所が画面の外であれば(ステップS1229、Yes)、続いて情報処理システム100は、上記ステップS1228の、そのドロップされたメニューが削除可能かどうかの判断を実行する。一方、上記ステップS1229の判断の結果、ドロップされた場所が画面の外でなければ(ステップS1229、No)、続いて情報処理システム100は、ドロップされた場所に、そのメニューを移動させる処理を実行する(ステップS1231)。ステップS1231の処理は、例えば出力制御部122が実行する。
情報処理システム100は、上述した一連の処理を実行することで、ユーザがドロップしたメニューの状態を、ドロップされた位置、ドラッグの速度などに応じて変化させることが出来る。
具体的なGUIの例を示しながら上述の動作例についてさらに説明する。まず、メニューボタンを削除するGUIの例について説明する。図53は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図53に示したのは、ユーザによるメニューのドロップ操作の一例であり、メニューが既定速度以上でドラッグされていた場合のGUIの例である。ユーザが、メニューボタン群1110の中から1つのメニューボタン1111を既定速度v以上でドラッグさせた後、そのメニューボタン1111を画面内でドロップする(つまり、メニューボタン1111を放り投げるような動作を行なう)と、情報処理システム100は、そのメニューボタン1111を削除する処理を実行する。このようにメニューボタンを放り投げるような動作が行われたことの検出により、メニューボタンを削除する処理を実行することで、情報処理システム100は、ユーザに対して直感的に分かりやすいGUIを提供することが出来る。
なお、メニューボタンの削除は係る例に限定されるものではない。図54は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図54に示したのは、ユーザによるメニューのドロップ操作の一例であり、ユーザがメニューボタン1111をごみ箱メニュー1112にドロップする操作を行っている状態を示したものである。このように、ユーザがメニューボタン1111をごみ箱メニュー1112にドロップすると、情報処理システム100は、そのメニューボタン1111を削除する処理を実行する。
図55は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図55に示したのは、ユーザによるメニューのドロップ操作の一例であり、ユーザがメニューボタン1111を画面外まで移動させてドロップする操作を行っている状態を示したものである。このように、ユーザによって、メニューボタン1111が画面外まで移動されてドロップされた操作が行われたことを検出すると、情報処理システム100は、そのメニューボタン1111を削除する処理を実行する。
以上、メニューボタンを削除するGUIの例について説明した。続いて、メニューボタンをメニューボタン群の中に追加するGUIの例について説明する。
図56は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図56に示したのは、ユーザによるメニューのドロップ操作の一例であり、ユーザがメニューボタン群1110の中にメニューボタンを挿入する操作を行っている状態を示したものである。ユーザが、メニューボタン群1110が表示されている円弧上へメニューボタン1111をドラッグさせると、情報処理システム100は、メニューボタン群1110が表示される円弧上に、メニューボタン1111を挿入するための隙間を作成する。そしてユーザが、円弧上の隙間にメニューボタン1111をドロップすると、情報処理システム100は、その円弧上にドロップされたメニューボタン1111を表示する。このようにメニューボタンをドロップした動作が行われたことの検出により、メニューボタン群にメニューボタンを追加する処理を実行することで、情報処理システム100は、ユーザに対して直感的に分かりやすいGUIを提供することが出来る。
以上、メニューボタンをメニューボタン群の中に追加するGUIの例について説明した。続いて、ドロップ先のメニューの子項目にメニューを追加するGUIの例について説明する。
図57は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図57に示したのは、ユーザによるメニューのドロップ操作の一例であり、ユーザがメニューボタン群1110の中のあるメニューボタンにメニューボタンをドロップする操作を行っている状態を示したものである。ドロップ先のメニューがフォルダメニューの場合、情報処理システム100は、まずユーザがメニューボタンをドロップしようとしているメニューボタンの場所までドラッグさせると、図57に示したように、ドロップしようとしているメニューボタンを広げるよう表示する。そしてユーザが、その場所でメニューボタンをドロップすると、情報処理システム100は、図57に示したように、ドロップされたメニューボタンを、ドロップ先の子メニューに追加するよう表示する。情報処理システム100は、ドロップされたメニューボタンを、ドロップ先のメニューの子メニューの末尾に追加するよう表示してもよく、ドロップ先のメニューの最も近い位置に追加するよう表示してもよい。
図58は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図58に示したのは、ユーザによるメニューのドロップ操作の一例であり、ユーザがメニューボタン群1110の中のあるメニューボタンにメニューボタンをドロップする操作を行っている状態を示したものである。ドロップ先のメニューがアプリケーションまたはデータの場合、情報処理システム100は、まずユーザがメニューボタンをドロップしようとしているメニューボタンの場所までドラッグさせると、図58に示したように、ドロップしようとしているメニューボタンを広げるよう表示する。そしてユーザが、その場所でメニューボタンをドロップすると、情報処理システム100は、図58に示したように、今までドロップ先のメニューボタンが表示されていた場所に、フォルダメニューのメニューボタンを新たに表示し、ドロップしたメニューボタンと、ドロップ先のメニューボタンとを、そのフォルダメニューの子メニューとして表示する。つまり情報処理システム100は、ドロップしたメニューボタンと、ドロップ先のメニューボタンとをマージする処理を実行する。
以上、ドロップ先のメニューの子項目にメニューを追加するGUIの例について説明した。今まで示したのは、ドロップ先のメニューボタンがユーザの指で押さえられていなかった場合の例であるが、以下で説明するのは、ドロップ先のメニューボタンがユーザの指で押さえられている場合の例である。
図59は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図59に示したのは、ユーザによるメニューのドロップ操作の一例であり、ユーザがメニューボタン群1110の中のあるメニューボタンを指で押さえながら、そのメニューボタンに別のメニューボタン1111をドロップする操作を行っている状態を示したものである。ユーザがメニューボタン群1110の中のあるメニューボタンを指で押さえながら、そのメニューボタンに別のメニューボタン1111を規定距離以下に近づけると、情報処理システム100は、図59に示したようにメニューボタン同士が結合するように表示する。そしてユーザがメニューボタン群1110の中のあるメニューボタンを指で押さえながら、ドラッグしていたメニューボタン1111をドロップすると、2つのメニューボタンの子メニュー同士をマージする処理を実行する。情報処理システム100は、子メニュー同士をマージする際、メニューボタン群1110に表示されているメニューボタンをそのままにしてもよく、別のメニューボタンをメニューボタン群1110の円弧上に表示するようにしてもよい。
このように情報処理システム100は、ユーザがあるメニューボタンを指で押さえながら、そのメニューボタンに別のメニューボタンをドロップすることによって、メニューのマージを行なう。そのメニューのマージの例について説明する。図60は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図60に示したのは、ユーザがあるメニューボタンを指で押さえながら、そのメニューボタンに別のメニューボタンをドロップした際の、メニューのマージ例である。情報処理システム100は、マージの際に同じ子メニューが存在していれば、その子メニューは2つ作成するのではなく、1つだけにしても良い。例えば図60には、A、B、D、F、Gという子メニューと、A、C、D、E、Fという子メニューがあるメニューをマージする際に、双方で共通の子メニューA、D、Fは1つだけにする例が示されている。
以上、ドロップ先のメニューボタンがユーザの指で押さえられている場合の例について説明した。続いて、本開示の一実施形態に係る情報処理システム100のメニューの操作例について、具体例を挙げつつさらに説明する。
図61は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図61に示したのは、情報処理システム100が表示するアプリケーションでの、ユーザのドラッグ操作及びドロップ操作に応じた新たなメニューの作成例である。図61の様にメニューボタン1100及びメニューボタン群1110が表示されている状態で、ユーザがメニューボタン群1110の中の、あるメニューボタン1111を指で押さえたまま、もう一方の手の指でドラッグしたユーザ操作に応じ、情報処理システム100は、そのメニューボタン1111のコピーを作成する。
図61では、メニューボタン群1110の中の、メニューD、Eのコピーがユーザ操作に基づいて作成された例が示されている。そして、このメニューD、Eのコピーをマージするユーザ操作に応じ、情報処理システム100は、新たなメニューボタン1100及びメニューボタン群1110を作成する。
そして、新たに作成されたメニューボタン群1110へ向けて、また別のメニューボタン1111がドロップされると、情報処理システム100は、図61に示したように、その新たに作成されたメニューボタン群1110に、ドロップされたメニューボタン1111を追加する。
このようなユーザによるドラッグ操作やドロップ操作を受け付けることで、本開示の一実施形態に係る情報処理システム100は、メニューのカスタマイズの容易性を担保できる。またこのようなこのようなユーザによるドラッグ操作やドロップ操作を受け付けることで、本開示の一実施形態に係る情報処理システム100は、同一のメニューを複数のユーザで同時に使用させることを可能にする。
別の実施例を説明する。図62は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図62に示したのは、情報処理システム100が表示するアプリケーションでの、ユーザのドラッグ操作及びドロップ操作に応じたショートカットボタンの作成例である。例えば、メニューボタン1100から数えて2階層目にある、メニューボタン群1120の中のあるメニューボタンについて、通常の場合は、メニューボタン1100、メニューボタン群1110、メニューボタン群1120の順にユーザが3回の操作で順に選択していかなければ到達することが出来ない。しかし、情報処理システム100は、上述したようにユーザ操作に基づいてショートカットボタンを作成することで、そのメニューボタン群1120の中のあるメニューボタンへは、1回の操作で到達することが出来る。
例えば、複数のユーザによって頻繁に使用されるメニューについて、ユーザの数だけショートカットボタンが作成されることで、情報処理システム100は、どのユーザからでも、1回の操作でそのメニューに到達させることが出来る。
上述したようなメニューのコピーやショートカットの作成により、情報処理システム100は、例えば家族で共通のメニューを作成させたり、家族で別々のメニューを作成させたりすることを可能にする。
図63は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図63に示したのは、情報処理システム100が表示するアプリケーションでの、ユーザのドラッグ操作及びドロップ操作に応じた家族別のメニューの作成例である。
図63の右下に、メニューボタン1100及びメニューボタン群1110、1120が示されている。そして図63には、メニューボタン群1120に、父親用のメニューボタン、母親用のメニューボタン、及び子供用のメニューボタンが含まれている状態が示されている。このようにメニューボタン群1120が表示されている状態で、父親用のメニューボタン、母親用のメニューボタン、及び子供用のメニューボタンのショートカットボタンを作成する操作をユーザが実行すると、情報処理システム100は、それぞれのメニューボタンへのショートカットボタンを作成する。それぞれのメニューボタンへのショートカットボタンが作成されることで、父親、母親、子供は、そのショートカットボタンに指等の操作体を接触させるだけで、自分のためのメニューを使用し、また自分が使いやすいようにメニューをカスタマイズすることが出来る。また、ショートカットボタンの操作によって表示されるメニューへのカスタマイズが、元のメニューへも反映される。
上述したようなメニューのコピーの作成により、情報処理システム100は、例えばWebサイトのブックマークを直感的かつ容易にユーザに作成させることが出来る。
図64は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図64に示したのは、情報処理システム100が表示するアプリケーションでの、ユーザのドラッグ操作及びドロップ操作に応じたブックマークメニューの作成例である。
図64には、メニューボタン1100及びメニューボタン群1110、1120が情報処理システム100によって表示されている状態が示されている。また図64には、アプリケーションの例としてインターネットのWebサイトを表示するWebブラウザ1140が情報処理システム100によって表示されている状態が示されている。また図64には、Webブラウザ1140の左下部分に、現在表示しているWebページへ接続するためのメニューボタン1141が情報処理システム100によって表示されている状態が示されている。ユーザが、メニューボタン1141に対してコピーを作成する操作を実行したことを検出すると、情報処理システム100は、そのユーザ操作に応じて、メニューボタン1141のコピーを作成する。メニューボタン1141のコピーは、そのWebページのブックマークとして機能し得る。作成されたメニューボタン1141のコピーは、例えばユーザの操作によってメニューボタン群1120の中に追加される。本開示の一実施形態に係る情報処理システム100は、このような操作をユーザに提供することで、例えばWebページのブックマークを直感的かつ容易にユーザに作成させることが出来る。また本開示の一実施形態に係る情報処理システム100は、このような操作をユーザに提供することで、簡単な操作で複数のWebページのブックマークを1つのメニューボタン群にまとめさせることが出来る。
本開示の一実施形態に係る情報処理システム100は、複数のユーザからのメニュー操作を受け付けることが出来るよう構成されているので、同じアプリケーションや、似たようなアプリケーションが複数のユーザから起動され、同時に実行される状況が発生し得る。同じアプリケーションや、似たようなアプリケーションが複数のユーザから同時に実行されると、誰がどのアプリケーションを起動したのかがわかりにくくなる状況が発生し得る。そこで、本開示の一実施形態に係る情報処理システム100は、メニューとアプリケーションとの紐付けを行って、またその紐付けを簡単なユーザ操作で解除できる仕組みを提供する。
図65は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図65に示したのは、情報処理システム100が表示するアプリケーションとメニューとの紐付けを、ユーザの操作に応じて解除する際のGUIの例である。
例えば図65の左側のようにメニューボタン1100、メニューボタン群1110、1120及び、アプリケーションの例としてWebブラウザ1140が情報処理システム100によって表示されている状態で、情報処理システム100は、メニューボタン群1120の中の1つのメニューボタンと、Webブラウザ1140のメニューボタン1141とが紐付いているように表示してもよい。図65の例では、メニューボタン群1120の中の1つのメニューボタンと、Webブラウザ1140のメニューボタン1141との紐付けを破線で示しているが、本開示では紐付けの表示は係る例に限定されるものではない。
この紐付けの表示に対して、ユーザが所定の操作、例えばユーザが所定速度以上で紐を切るような操作を実行したことを検出すると、情報処理システム100は、メニューボタン群1120の中の1つのメニューボタンと、Webブラウザ1140のメニューボタン1141との紐付けを解除する処理を実行する。紐付けの解除の際には、情報処理システム100はWebブラウザ1140を終了させる処理を実行する。Webブラウザ1140を終了させる処理の際には、情報処理システム100は、図65に示したように、そのWebブラウザ1140を徐々に薄くしていき、最終的に表示が消えるような表示処理を実行してもよい。
本開示の一実施形態に係る情報処理システム100は、メニューとアプリケーションとの紐付けを行って、またその紐付けを簡単なユーザ操作で解除させることが出来る。
図64に示したようにメニューとアプリケーションとを紐付けることで、本開示の一実施形態に係る情報処理システム100は、その他にも様々な操作をユーザに提供することが出来る。例えば図1のようなプロジェクション型の情報処理システム100aは、テーブル140aのような面積の大きな表示面に情報を表示するので、ユーザが離れた位置にあるアプリケーションを手元にたぐり寄せたいという要求が発生し得る。そこで、メニューとアプリケーションとの紐付けの表示に対してユーザにその表示をたぐり寄せるような操作をさせることで、情報処理システム100は、アプリケーションのウィンドウを、そのユーザ操作に応じて移動させるような表示処理を実行してもよい。
図66は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図66に示したのは、情報処理システム100が表示するアプリケーションとメニューとの紐付けに対してユーザが操作する際のGUIの例である。
図66には、メニューボタン1100、メニューボタン群1110、1120及び、アプリケーションの例としてWebブラウザ1140が情報処理システム100によって表示されている。また図66には、メニューボタン群1120の中の1つのメニューボタンと、Webブラウザ1140のメニューボタン1141とが紐付いているよう情報処理システム100によって表示されている状態が示されている。このようにメニューボタンやウィンドウが情報処理システム100によって表示されている状態で、ユーザが、紐付けの線を手元に(メニューボタン群1120の方向へ)たぐり寄せるような操作を行うと、情報処理システム100は、その操作の検出に応じて、Webブラウザ1140をメニューボタン群1120に近付けるような表示処理を実行する。
このように、紐付けの表示に対してユーザが手元にたぐり寄せるような操作を実行したことに応じて、アプリケーションのウィンドウを移動させるような表示処理を実行することで、情報処理システム100は、ユーザ操作の利便性を高めることができる。なお図65には、ユーザがアプリケーションのウィンドウを手元にたぐり寄せるような操作を行った場合の例が示されているが、ユーザがアプリケーションのウィンドウを手元から遠ざけるような操作を実行した場合は、情報処理システム100は、逆にアプリケーションのウィンドウをメニューボタンから遠ざけるような表示処理を実行する。
図64に示したようにメニューとアプリケーションとを紐付けることで、本開示の一実施形態に係る情報処理システム100は、ユーザに、アプリケーションの操作をアプリケーションのウィンドウから離れた場所で行わせることが出来る。
図67は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図67に示したのは、情報処理システム100が表示するアプリケーションとメニューとが紐付けた状態でユーザが操作する際のGUIの例である。
図67には、メニューボタン1100、メニューボタン群1110、1120、1121及び、アプリケーションの例としてWebブラウザ1140が情報処理システム100によって表示されている。また図67には、メニューボタン群1120の中の1つのメニューボタンと、Webブラウザ1140のメニューボタン1141とが紐付いているよう情報処理システム100によって表示されている状態が示されている。また、メニューボタン群1121は、Webブラウザ1140を操作するためのメニューが並べられたものであるとする。このようにメニューボタンやウィンドウが情報処理システム100によって表示されている状態で、ユーザがメニューボタン群1121を操作すると、情報処理システム100は、その操作に応じたWebブラウザ1140に対する処理(例えば、ブックマークされているWebページを開く、前のページに戻る、先のページに進む、Webブラウザを終了する等の処理)を実行する。
このようにアプリケーションの操作をアプリケーションのウィンドウから離れた場所で行わせることが出来ることで、情報処理システム100は、ユーザ操作の利便性を高めることができる。例えば図1のようなプロジェクション型の情報処理システム100aは、テーブル140aのような面積の大きな表示面に情報を表示するので、ユーザが離れた位置にアプリケーションが表示されても紐付けによって遠隔操作が可能となり、ユーザ操作の利便性を高めることができる。
図67の例ではアプリケーションとしてWebブラウザ1140を示したが、遠隔操作できるアプリケーションは係る例に限定されるものではない。例えばアプリケーションが音楽再生ソフトであれば、アプリケーションとメニューボタンとの紐付けによって、音量の調整、楽曲のスキップ、早送り、早戻し等が、遠隔操作で可能になる。また例えばアプリケーションが動画像再生ソフトであれば、アプリケーションとメニューボタンとの紐付けによって、音量の調整、動画像のスキップ、早送り、早戻し等が、遠隔操作で可能になる。
ここまでの例では、メニューボタン1100を起点にして、メニューボタン群1110、1120を表示するGUIを表示する情報処理システム100を示したが、メニューボタン群1110、1120の起点はメニューボタン1100に限定されない。情報処理システム100は、例えば、ユーザが所有する携帯電話、スマートフォンその他の携帯端末を起点として、メニューボタン群1110、1120を表示するようにしてもよい。上述の例で情報処理システム100と携帯端末との連携例を示した。情報処理システム100は、情報処理システム100と連携させた携帯端末を起点として、メニューボタン群1110、1120を表示させることも出来る。
図68は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図68に示したのは、メニューボタン群1110、1120の表示の起点として、情報処理システム100と連携させた携帯端末1310が用いられる場合のGUIの例である。情報処理システム100と、携帯端末1310とを連携させて、所定の操作をユーザが実行すると、情報処理システム100は、図68に示したように携帯端末1310の周囲にメニューボタン群1110、1120を表示させても良い。
メニューボタン群1110、1120の情報を携帯端末1310に保存させることで、その携帯端末1310を別の情報処理システム100と連携させた場合にも、全く同じレイアウトでメニューボタン群1110、1120を表示することが可能となる。例えば、ユーザが自宅でメニューボタン群1110、1120のレイアウトを編集して携帯端末1310に保存し、その携帯端末1310を友人の家に持ち出して、ユーザが自宅で編集したメニューボタン群1110、1120を、友人の家の情報処理システム100で表示させることが出来る。
本開示の一実施形態に係る情報処理システム100は、図63に示したように、ショートカットボタンの作成によって、ユーザごと、例えば家族でそれぞれ異なるメニューを作成さることを可能にする。本開示の一実施形態に係る情報処理システム100は、そのようにユーザごとに作成させたメニューに対して、各ユーザのアカウントを紐付けるようにしても良い。
図69は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図69に示したのは、ユーザごとに作成させたメニューに、各ユーザのアカウントを紐付けた状態である。図69には、父親及び母親が使用するアプリケーションのウィンドウ1150と、そのアプリケーションを操作するためのメニューボタン1151と、が示されている。情報処理システム100は、ユーザごとに作成させたメニューに、各ユーザのアカウントを紐付けることで、例えば、ユーザごとに、WebブラウザのCookieを保存したり、Webページのログイン情報を記録したり、Webページヘのアクセス履歴を管理したりすることが出来る。
本開示の一実施形態にかかる情報処理システム100は、複数のユーザによって同時に使用される形態が想定され得る。従って、上述のようにユーザごとにカスタマイズされたメニューを作成すると、あるユーザが別のユーザのメニューを使用してしまう状況が発生し得る。ユーザのメニューに鍵が掛けられていなければ、誰もが簡単にそのユーザのメニューを使用できてしまう。
そこで本開示の一実施形態にかかる情報処理システム100は、認証を受けてからでないとメニューを使用できない仕組みを提供する。認証方式はパスワード方式であってもよく、ユーザが使用している携帯端末を用いた機器認証方式であっても良い。以下の例では、機器認証方式によってメニューへのアクセスを認証する仕組みを説明する。
図70は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図70に示したのは、ユーザが使用している携帯端末を用いた機器認証方式によってメニューへのアクセスを認証する際のGUIの例である。情報処理システム100は、例えば、父親が使用するメニューへは、その父親が使用している携帯端末を用いて認証を受けなければアクセスできないように、メニューへ鍵を掛けさせることを可能にする。情報処理システム100は、父親が使用するメニューに鍵が掛かっている状態では、ユーザがそのメニューを選択しても(例え選択したのが父親本人であっても)何も反応しないように制御する。
そして、父親が使用するメニューの近くにその父親が使用している携帯端末が置かれたことを検出すると、情報処理システム100は、その携帯端末を認識した上で、その携帯端末が父親のものであることを認識すれば、父親が使用するメニューの鍵を解除する。情報処理システム100は、携帯端末の認識を、上述した画像認識で行ってもよく、近接非接触通信(NFC)、Wi−Fi(登録商標)通信、Bluetooth(登録商標)通信等で行っても良い。情報処理システム100は、認証が完了すると、鍵を掛けていたメニューの鍵を解除し、ユーザがそのメニューにアクセスできるように制御する。
このように、機器認証方式を用いてメニューへのアクセスを認証する仕組みを用いることで、本開示の一実施形態にかかる情報処理システム100は、認証されていないユーザによるメニューへのアクセスを制限することが出来る。
本開示の一実施形態にかかる情報処理システム100は、上述したように、携帯端末を起点としてメニューボタンを表示することが出来る。ここで本開示の一実施形態にかかる情報処理システム100は、その携帯端末を起点として表示するメニューボタンによって、携帯端末での権限を制御する仕組みを提供する。
図71は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図71に示したのは、携帯端末を起点としてメニューボタンを表示する際に、そのメニューボタンによって、携帯端末での権限を制御する際のGUIの例である。
図71には、携帯端末1310、1320を起点として、それぞれメニューボタン群1110、1120が表示されている状態が示されている。そして図71には、メニューボタン群1120に、各携帯端末1310、1320での権限が表示されている状態が示されている。携帯端末1310、1320での権限としては、例えばアプリケーションの操作権限、携帯端末から遠隔操作する機器の操作権限、携帯端末を用いて代金を決済する際の決済権限等がある。
例えば、携帯端末1310を起点として表示されているメニューボタン群1120の中から、ある権限(例えば、1000円分の代金決済権限)を、携帯端末1320を起点として表示されているメニューボタン群1120へコピーする操作をユーザが行ったとする。情報処理システム100は、そのユーザ操作に応じて、携帯端末1310に保持されているその権限を、携帯端末1320へコピーする処理を実行する。
このようにメニューボタンの操作を介して、携帯端末間で権限をコピーさせることで、本開示の一実施形態にかかる情報処理システム100は簡単な操作で、携帯端末での権限の受け渡しを可能にする。
本開示の一実施形態にかかる情報処理システム100は、アプリケーションのウィンドウへのメニューボタンのドラッグ及びドロップ操作に基づいて、アプリケーションへデータを渡す機能を提供する。
図72は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図72に示したのは、アプリケーションのウィンドウへのメニューボタンのドラッグ及びドロップ操作に基づいて、アプリケーションへデータを渡す際のGUIの例である。
図72には、メニューボタン群1120に、Webページへアクセスするためのブックマークに対応するメニューボタンが存在する状態が示されている。メニューボタン群1120の中のあるメニューボタンを、Webブラウザ1140へドラッグ及びドロップする操作をユーザが実行すると、本開示の一実施形態にかかる情報処理システム100は、そのユーザ操作に応じて、ドロップされたメニューボタンに対応するWebページヘアクセスするようにWebブラウザ1140の動作を制御する。このように、ユーザによるドラッグ及びドロップ操作に応じて、アプリケーションへデータを受け渡すことで、本開示の一実施形態にかかる情報処理システム100は、ユーザに対して直感的な操作を提供することが出来る。
なお図72には、アプリケーションがWebブラウザである例を示したが、データの受け渡しの対象となるアプリケーションは係る例に限定されるものではない。例えば、アプリケーションが画像表示アプリケーションの場合、ユーザが画像データを意味するメニューボタンを画像表示アプリケーションにドロップすると、情報処理システム100は、その画像データを画像表示アプリケーションで表示する処理を実行する。また例えば、アプリケーションが楽曲再生アプリケーションの場合、ユーザが楽曲データを意味するメニューボタンを楽曲再生アプリケーションにドロップすると、情報処理システム100は、その楽曲データを楽曲再生アプリケーションで再生する処理を実行する。また例えば、アプリケーションが動画像再生アプリケーションの場合、ユーザが動画像データを意味するメニューボタンを動画像再生アプリケーションにドロップすると、情報処理システム100は、その動画像データを動画像再生アプリケーションで再生する処理を実行する。
図72では、アプリケーションのウィンドウへメニューボタンがドロップされたことに応じて、情報処理システム100が、そのアプリケーションへのデータの受け渡しを行なう例を説明した。続いて、任意の機能を提供するメニューボタンへ別のメニューボタンがドロップされたことに応じて、情報処理システム100が、ドロップされたメニューボタンに対応する機能を実行する例を説明する。
図73は、本開示の一実施形態にかかる情報処理システム100が情報の表示面に表示するアプリケーションのGUIの例を示す説明図である。図73に示したのは、任意の機能を提供するメニューボタンへの、別のメニューボタンのドラッグ及びドロップ操作に基づいて、ドロップされたメニューボタンに対応する機能が実行される際のGUIの例である。
図73には、メニューボタン群1120に、例えばソーシャル・ネットワーキング・サービス(SNS)へ投稿するためのメニューボタンが存在する状態が示されている。そのメニューボタン群1120の中のあるメニューボタンへ、ユーザが、例えば画像データを意味するメニューボタンをドロップしたとする。情報処理システム100は、そのユーザのドロップ操作に応じて、その画像データをSNSへ投稿する処理を実行する。
このように、ユーザによるドラッグ及びドロップ操作に応じて、ドロップされたメニューボタンに対応する機能を実行することで、本開示の一実施形態にかかる情報処理システム100は、ユーザに対して直感的な操作を提供することが出来る。
なお、図73におけるメニューボタン群1120の各メニューボタンが実行する機能は、SNSへの投稿に限られない。例えばメニューボタン群1120の各メニューボタンが実行する機能としては、連絡先として登録されている相手へのデータの送信、連携している機器へのデータの送信等、様々な機能が考えられ得る。
<2.ユーザインタフェースの具体例>
以下、上述した情報処理システム100により実現可能なユーザインタフェース(UI:User Interface)の具体例を説明する。以下では、プロジェクション型の情報処理システム100aを想定して説明するが、図1〜図4を参照して説明したどのタイプでも、以下に説明する具体例に係るUIを実現可能である。また、プロジェクション型の情報処理システム100aのうち、テーブル140aの上方に設けられる、プロジェクタ及びカメラ等が設けられる筐体を、本体とも称する。また、テーブル140aを、プロジェクタにより画像が投影される投影面(表示面)とも称する。
[具体例1]
本具体例に係る情報処理システム100は、操作オブジェクトの形状に応じて回転する半円状のメニューを提供する。操作オブジェクトの形状を考慮せずにメニューが表示される場合、例えばメニューが手に重なって表示され、視認性が低下する場合がある。そこで、本具体例に係る情報処理システム100は、操作オブジェクトが重なる領域以外の領域にメニューを表示する。以下、図74〜図76を参照して、本具体例について詳しく説明する。図74〜図76は、具体例1に係るユーザインタフェースを説明するための説明図である。
図74に示すように、本具体例に係る情報処理システム100は、表示面として機能するテーブル140a上に表示されたメニューボタン2001がユーザにより指でタッチされると、タッチした指の形状に応じてアイコン(メニュー項目)が半円状に配置されたメニュー2002を表示する。具体的には、情報処理システム100は、タッチした指の方向を中心として左右に広がる半円状のメニュー2002を、タッチした指にアイコンが重ならないように表示している。また、情報処理システム100は、アイコンの文字表示を、タッチした指の方向に応じてユーザに正対させている。メニューボタン2003がタッチされた場合も同様に、タッチした指の形状に応じて各項目が半円状に配置されたメニュー2003が表示される。
このような表示処理を行うために、まず、検出部121は、表示面に重なる操作オブジェクトを検出する。操作オブジェクトは、ユーザの指又は手等の体の一部であってもよいし、操作棒等のユーザにより操作される任意の物体であってもよいし、ロボットアーム等であってもよい。検出部121は、ステレオカメラにより得られる深度情報に基づいて、表示面に重なる操作オブジェクトの形状、長辺方向、短辺方向、及び高さを検出する。操作オブジェクトが指の場合、検出部121は、指が指す向きを検出してもよい。図74に示した例において、検出部121は、テーブル140a上に重なってメニューボタン2001、2003をタッチした指及び手を、操作オブジェクトとして検出するとともに、指が指す向きを検出する。
そして、出力制御部122は、検出部121により検出された操作オブジェクトが重なる領域が欠けた円状(半円状)のメニューを表示面に表示するよう出力部130を制御する。例えば、図74に示した例において、出力制御部122は、メニュー2001をタッチした指が重なる領域に、項目が配置されていないメニュー2002を表示する。
出力制御部122は、操作オブジェクトが重なる領域が欠けた円状のメニューを生成するための一手段として、操作オブジェクトが表示面に重なる領域の大きさに応じて、アイコンの表示個数又はアイコンの表示サイズの少なくともいずれかを増減させてもよい。例えば、出力制御部122は、メニューをタッチする手の大きさに応じて表示するアイコンの表示個数を増減させるよう出力部130を制御する。具体的には、出力制御部122は、図75に示すように、ユーザが指を1本伸ばしてメニューボタンにタッチした場合は9個のアイコンを表示し、ユーザが指を畳まずに広げてタッチした場合は7個のアイコンを表示している。
また、図76に示すように、出力制御部122は、指の太さに応じて、問題なくタッチすることができるサイズ及び個数の上限となるようアイコン表示を調整してもよい。具体的には、出力制御部122は、指が細い場合はアイコンサイズを小さくして多くのアイコンを表示し、指が太くなるにつれてアイコンサイズを大きくしてアイコン数を少なくする。なお、出力制御部122は、アイコンを配置する円の半径を増減させてもよい。例えば、表示サイズを固定すれば、半径の増減に応じて表示個数が増減される。また、表示個数を固定すれば、半径の増減に応じて表示サイズが増減される。
出力制御部122が、このような表示制御を行うことにより、ユーザの指にアイコンが重ならないので、ユーザはメニュー全体を容易に把握することができる。さらに、指が重なって表示されたアイコンに、意図せず指が触れてしまうことによる誤作動が回避される。また、出力制御部122は、手の大きさに合わせてメニュー表示を制御することにより、利用可能な面積を最大限活用してアイコンを表示することができる。アイコンの表示個数の調整は、表示個数を超えたとき、即ちすべてのアイコンを表示しきれないときに特に効果を発する。
また、出力制御部122は、操作オブジェクトの向きに応じて表示するメニューの方向を制御してもよい。詳しくは、出力制御部122は、検出部121により検出された操作オブジェクトの長辺方向に基づいて項目が配置されたメニューを表示面に表示するよう出力部を制御してもよい。例えば、図74に示した例においては、出力制御部122は、メニューボタン2001をタッチした指の方向に基づいて、タッチした指の方向を中心として左右に広がる半円状のメニュー2002を表示する。さらに、出力制御部122は、メニューボタン2001をタッチした指の方向に基づいて、当該指を有するユーザの方向を推定して、ユーザに文字表示及びメニュー配置が正対するように、メニュー2002を表示する。出力制御部122は、このような表示制御を行うことにより、ユーザがテーブル140aをどの方向からタッチしても、ユーザに正対するメニューを提供することができる。
なお、情報処理システム100は、検出部121による検出結果に応じて個人を識別して、識別した個人の操作履歴等に応じた個人化した出力を行うことも可能である。例えば、情報処理システム100は、指の太さに応じて個人を特定することができる。このため、例えば家庭内使用される情報処理システム100に、ユーザが家族共用アカウントでログインした状態であっても、カメラに顔を向けて顔認識による識別を行うことなく、ログインした家族に個人化した出力を行うことが可能である。例えば、情報処理システム100がプロジェクション型である場合に、ユーザは上を見ずとも個人化した出力の提供を受けることができる。また、情報処理システム100は、居酒屋等の不特定多数が触る環境下においても、個人化した出力を行うことが可能である。ただし、例えば雪山でグローブを付けた状態でタッチする場合など、同じ個人でも指の太さが変わる場合が考えられる。
[具体例2]
本具体例は、カメラ、マイク、プロジェクタ、スピーカが既知の場合に、手や指が観測された向きからユーザがいる方向を推定することで、入出力をユーザに最適化する形態である。マイクによる音声取得にユーザの位置が考慮されない場合、鮮明な音声を取得することが困難な場合があり、また、スピーカからの音声出力にユーザの位置が考慮されない場合、臨場感のある音声出力が困難な場合がある。そこで、本具体例に係る情報処理システム100は、ユーザの位置を推定して、ユーザの位置に最適化した入力および出力を行う。以下、図77〜図85を参照して、本具体例について詳しく説明する。図77〜図85は、具体例2に係るユーザインタフェースを説明するための説明図である。
一例として、ここでは入力部110として機能するマイクをユーザに最適化する例を説明する。本具体例に係る検出部121は、入力部110として機能するマイクの指向性を制御して、ユーザの口元にマイクの指向性を向ける。検出部121は、複数のマイクを組み合わせたマイクアレイを用いて、指向性を制御する。
図77は、4本のマイクを有するマイクアレイにより形成される指向性の一例を示している。検出部121は、各マイクに音声が届く時間差を利用して指向性を持たせる(ビームフォーミングを行う)ことで、指向性を持たせない方角からの生活雑音を排除することができる。なお、マイクの本数が増えると、より絞り込んだ指向性を持たせることが可能となる。
図78は、表示面にタッチされた指の位置に応じた指向性の制御の一例を示している。検出部121は、表示面にタッチしたユーザの指の位置に応じてユーザの位置を推定して、推定したユーザの位置にマイクの指向性を向ける。検出部121は、このようにしてマイクの指向性を制御することにより、マイクからユーザが離れている場合であっても、生活雑音を排除した鮮明なユーザ音声を取得することができ、例えば音声認識を行うことが可能となる。図79に示すように、例えばスマートフォンであればマイクと口元との距離が10cm(センチメートル)程度であることが求められるところ、本具体例に係る情報処理システム100は、100cm程度の距離があっても生活雑音を排除した鮮明なユーザ音声を取得することができる。
このような指向性制御を行うために、まず、検出部121は、操作オブジェクトを検出する。検出部121は、表示面に重なる操作オブジェクトの形状、長辺方向、短辺方向、及び高さを検出する。操作オブジェクトが指の場合、検出部121は、指が指す向きを検出してもよい。次いで、検出部121は、検出された操作オブジェクトに基づいて、操作オブジェクトを操作するユーザが位置する方向を推定する推定部として機能する。例えば、検出部121は、ユーザの手や指を操作オブジェクトとして検出して、手や指の位置及び向きに基づいてユーザが位置する方向を推定する。以下、具体的な推定方法について説明する。
例えば、図80に示した例では、検出部121は、投影面に投影されたアイコンの位置と、指でタッチされたアイコンの位置とを結ぶ直線上の、矢印方向にユーザが位置すると推定する。操作するアイコンがユーザの手元にあるという前提が成り立つ場合に有効な手法である。例えば、ユーザがアイコンを長押し後にドラッグすることで、自由にユーザの手元にアイコンを移動させることができる場合にこの前提は成り立つと考えられる。この手法によれば、検出部121は、指の向きを検出することに失敗した場合であっても、ユーザの方向を推定することができる。
例えば、図81に示した例では、検出部121は、アイコンをタッチした指の向きの反対側である、矢印方向にユーザが位置すると推定する。この手法は、検出部121が指の向きを検出することに成功した場合に有効である。
例えば、図82に示した例では、検出部121は、投影面として機能するテーブル140a上に置かれた手の位置及び向きに基づいて、左右の手の中央にユーザが位置するものとして、矢印方向にユーザが位置すると推定する。具体的には、検出部121は、同じ辺から検出された2本の手の向きの平均の向きを、ユーザが位置する方向であると推定する。この手法は、検出部121が手の向きを検出することに成功した場合に有効である。
例えば、図83に示した例では、検出部121は、アプリケーションを操作している指の向きからユーザが位置する方向を推定する。検出部121は、複数のアプリケーションについて、駆動時から操作する指の向きを推定及び蓄積しておき、蓄積された指の向きを統合することで、現在のユーザが位置する方向を推定してもよい。また、検出部121は、あるアプリケーションを操作する指の向きに、他のアプリケーションを操作する指の向きを統合・演算することで、ユーザが位置する方向を推定してもよい。
このようにして、検出部121は、ユーザが位置する方向を推定する。そして、検出部121は、推定したユーザが位置する方向に指向性を持たせた入力を行うよう入力部110を制御する。例えば、図79〜図83を参照して上記説明した例においては、検出部121は、推定したユーザが位置する方向からの音声を取得するためのビームフォーミングを行うようマイクを制御する。なお、検出部121が、各マイクから出力された音声に対してビームフォーミング処理を行ってもよい。これにより、検出部121は、生活雑音を排して鮮明なユーザ音声を取得することができる。他にも、検出部121は、推定したユーザが位置する方向の画像を取得するために、入力部110として機能するカメラの向きを制御してもよい。
また、出力制御部122は、検出部121により推定されたユーザが位置する方向に指向性を持たせた出力を行うよう、出力部130を制御する。例えば、出力制御部122は、ユーザが位置する方向に音声を出力するためのチャンネル構成を行うよう、出力部130として機能するスピーカを制御する。音声の他にも、出力制御部122は、例えば推定したユーザが位置する方向に向けて、ユーザに正対するように画像を出力するよう出力部130を制御してもよい。
図84は、プロジェクション型の情報処理システム100の本体を、下から見た場合の簡易な構成例および本体とユーザとの位置関係を示している。図84に示すように、本体の4隅にそれぞれスピーカが形成されている。なお、図中「R」は右チャンネル、「L」は左チャンネルを示している。図84上図に示すように、情報処理システム100を囲う形でユーザが複数いる場合、出力制御部122は、通常のチャンネル構成で音声を出力するようスピーカを制御する。一方で、図84下図に示すように、ユーザが一人である場合、出力制御部122は、推定されたユーザ位置に特化したチャンネル構成で音声を出力するようスピーカを制御する。
以上説明したように、本具体例によれば、ユーザの位置に応じてマイクの指向性を持たせることで、例えば生活雑音のような雑音環境下でも、また、マイクとユーザの位置が離れていても、音声認識や音声コマンドの成功率を向上させることが可能である。また、本具体例によれば、ユーザの位置に応じてスピーカのチャンネル構成を変化させることで、より臨場感がある音響空間を実現することが可能である。例えば、本具体例に係る情報処理システム100は、家庭用テレビにおいて利用されることを想定してチャンネル構成が設計されたコンテンツを、コンテンツ作成者の意図通りに再現することが可能である。他にも、本具体例によれば、情報処理システム100は、音声認識完了後に、Webブラウザなどのアプリケーションをユーザに正対するように表示することも可能である。
(写真アプリケーション)
ここで、図85を参照して、本具体例に係る情報処理システム100を用いたアプリケーションの一例として、写真アプリケーションについて説明する。本アプリケーションは、本体から見たテーブル140aおよびスピーカの位置を既知とし、本体およびテーブル140aの位置情報及び設置方角情報を利用して、多様な視覚効果及び効果音を出力する。なお、位置情報は、例えばGPS(Global Positioning System)により取得され、設置方角情報は例えば地磁気センサにより取得され得る。
例えば、本アプリケーションは、写真に付随するExif(Exchangeable image file format)情報から撮影位置を取得して、テーブル140aから見た撮影位置の方角を推定する。そして、本アプリケーションは、図85に示すように、推定した方角から写真が投影面に滑り込んでくるアニメーションを表示したり、対応する位置にあるスピーカから効果音を鳴らしたりする。効果音に関しては、対応する位置に音像が定位されてもよい。本アプリケーションは、例えば会議室に適用されて、遠隔地にある複数の会議室に設置されたテーブル140aにおいて会議資料をミラーリングして共有したり、会議室間の対話を実現したりしてもよい。
なお、写真アプリケーションにより投影面140aに表示された写真は、多方向から多人数により同時に操作・閲覧され得る。例えば、140aの4辺にいるユーザが、多方向から同時に写真を選択して方向を変えながら位置を移動させたり、写真を編集したり、新たな写真を追加したりすることが可能である。
[具体例3]
本具体例は、投影面の状態及び起動中のアプリケーションの状態を管理して、必要に応じて照明(電灯)制御を行う形態である。一般的に、プロジェクタ及び照明を利用する場合、投影された画像が照明の明るさで不鮮明になってしまう。このため、部屋の照明を消す、又は投影面付近だけ照明を消すなどの行為を人間が行っていた。本具体例に係る情報処理システム100は、プロジェクタ及び照明を利用する場合に、プロジェクタにより投影された画像が鮮明に映るように照明を制御することで、このような人間の手間を削減することができる。本具体例に係る情報処理システム100は、プロジェクション型であり、制御可能な照明部が本体と一体的に形成されている、又は分離して形成された照明部を遠隔制御可能であるものとする。また、照明部は、照射範囲及び照射方向を変更可能であるものとする。以下、図86〜図93を参照して、本具体例について詳しく説明する。図86〜図93は、具体例3に係るユーザインタフェースを説明するための説明図である。
図86に示すように、本具体例に係る情報処理システム100は、カメラ2011、投影部として機能するプロジェクタ2012、及びマトリクス状に配置された複数の照明部2010が設けられている。検出部121は、投影面に向けられたカメラ2011の撮像画像に基づいて、投影面の状態を検出し、投影面の状態の検出により得られる状態情報を取得する。投影面の状態とは、例えば投影面の明度、投影面に投影された画像のコントラスト比、および投影面上に物体が存在するか否か、投影面上の物体の種類、配置、大きさ、物体同士の組み合わせ等を意味する。そして、出力制御部122は、プロジェクタ2012により投影面に投影される画像、および検出部121により検出された状態に基づいた光量(照明強度)で投影面を照射するよう照明部2010を制御する。
例えば、図86のように、テーブル140aの投影面にプロジェクタ2012が何も投影していない場合、出力制御部122は、大きな光量で(明るく)投影面を照射するよう照明部2010を制御する。しかし、プロジェクタ2012が画像を投影する場合、出力制御部122は、小さな光量で(暗く)投影面を照射するよう照明部2010を制御する。もちろん、光量をゼロとして、照明を消してもよい。出力制御部122は、検出部121による投影画像のコントラスト比の検出結果を参照しながら光量を増減させることで、投影された画像のコントラスト比が閾値以上となる光量で投影面を照射するよう照明部2010を制御してもよい。投影された画像のコントラスト比を視認容易な値以上とすることで、出力制御部122は、明るさと視認性とを両立させることができる。
図87のように、テーブル140aの一部に物体が載置されて、投影面として用いられないような場合も考えられる。この場合、検出部121は、載置された物体を投影面の状態として検出して、出力制御部122は、検出された物体の周辺は大きな光量で照射し、その他の投影面として用いる部分は小さな光量で照射するよう照明部2010を制御する。
また、出力制御部122は、テーブル140aに載置された物体(オブジェクト)の種別に基づいて照明部2010を制御し得る。例えば、検出部121により投影面上に位置する物体が検出された場合、出力制御部122は、検出された物体が発光する発光体であるか、光を反射する(発光しない)反射体であるかに基づいた光量で投影面を照射するように照明部2010を制御してもよい。具体的には、出力制御部122は、発光体であれば小さな光量で、反射体であれば大きな光量で投影面を照射するよう照明部2010を制御する。以下、図88、図89を参照して、発光体としてのスマートフォン、反射体としての皿がテーブル140aに載置された場合の照明制御について説明する。
図88左図に示すように、まず、プロジェクタ2012が画像を投影する場合、出力制御部122は、小さな光量で投影面を照射するよう照明部2010を制御する。そして、図88中央図に示すように、テーブル140a上に物体が載置された場合、検出部121が物体を検出する。この場合、出力制御部122は、検出部による物体認識を可能にするために、物体が発光体であるか反射体であるかに拘らず大きな光量で投影面を照射するよう照明部2010を制御する。次いで、検出部121は、例えば投影面を撮像した画像をサーバに問い合わせることで、テーブル140aに載置された物体を認識する。
例えば、物体がスマートフォンであるとサーバに登録されていた場合、出力制御部122は、スマートフォンは表示部が発光する発光体であるため、図88右図に示すように元の小さな光量で投影面を照射するよう照明部2010を制御する。スマートフォンが発光するため、検出部121は、投影面が暗くてもスマートフォンを継続的に検出および追従することができる。また、光量が少ないため、照明部2010から照射された光がスマートフォンの表示部に写り込むこと(ハイライト)が回避される。これにより、検出部121は、容易にスマートフォンを検出することができる。
一方で、物体が皿であるとサーバに登録されていた場合、出力制御部122は、皿は発光部を有さない反射体であるため、図89左図に示すように大きな光量で投影面を照射するよう照明部2010を制御する。これにより、検出部121は、皿を継続的に検出および追従することができる。出力制御部122は、図89中央図に示すように、皿が位置する領域のみを明るくして、他の領域を暗くするよう照明部2010を制御してもよい。これにより、例えば、他の領域において、投影画像が視認可能に投影される。また、出力制御部122は、図89右図に示すように、照明部2010の照明を消した上で、物体の形状よりも少し大きめのスポットライトが当たるようにプロジェクタ2012を制御してもよい。プロジェクタによるスポットライトとは、例えば白一色の画像を所望の領域に投影することにより実現され得る。これにより、検出部121は、皿を容易に検出可能であるし、皿がスポットライトの範囲内で移動したとしても、継続的に検出および追従することができる。
なお、検出部121は、照明部2010による光量を調節しながら、カメラ2011による撮像画像を参照することで、物体が発光体であるか反射体であるかを検出してもよい。例えば、検出部121は、暗い状態でも検出可能であれば発光体であると認識し、明るい状態になってはじめて検出可能となった場合は反射体であると認識してもよい。このような手法によれば、検出部121は、サーバに問い合わせることなく、また、サーバに登録されていない物体であっても、発光体であるか反射体であるかを識別することができる。
また、情報処理システム100は、照明面積のコントロールによって物体の探索精度(検出精度)を向上させることができる。例えば、図90左図に示すように、検出部121は、物体(マーカー)の探索開始直後はテーブル140aの全体を照射するように照明部2010を制御する。ここで、マーカーは反射体であるものとする。マーカーが検出された場合、図90右図に示すように、検出部121は、マーカーが占める領域に徐々に照射範囲を絞るよう照明部2010を制御する。これにより、情報処理システム100は、テーブル140aに載置されたマーカーが認識されているか否か、およびどの程度マーカーの存在範囲が絞り込まれているかを明示的にユーザにフィードバックすることができる。さらに、照射範囲の絞り込み途中であれば、ユーザが対象を移動させたとしても、マーカーに照明が当たって反射されるため、検出部121はマーカーを検出および追従することができる。このとき、検出部121は、照射範囲を再度広げて改めて絞り込むよう照明部2010を制御してもよい。図91左図に示すように、マーカーが照射範囲から外れた場合、検出部121はマーカーの検出に失敗し得る。この場合、図91右図に示すように、検出部121は、照射範囲を再度広げて改めてマーカーの探索を行ってもよい。
また、情報処理システム100は、光量のコントロールによって物体の探索精度を向上させることができる。具体的には、検出部121は、マーカーの材質に応じて照明部2010の光量を調整する。例えば、マーカーがガラスおよびプラスチックのような光沢がある材質の場合、ハイライトが生じるとカメラ2011による撮像画像からマーカーを検出することが困難になり得る。このため、検出部121は、マーカーを検出可能な程度の小さな光量で投影面を照射するよう照明部2010を制御する。一方で、例えばマーカーが布、紙、及び木材のような光沢がない(マットな)材質の場合、明るい環境下であるほどマーカーの検出は容易となる。このため、検出部121は、可能な限り大きな光量で投影面を照射するよう照明部2010を制御する。なお、検出部121は、マーカーの材質を、例えばサーバに登録されたマーカーの材質を示す情報を参照することにより判定し得る。検出部121は、図92に示すように、照明の強弱を繰り返し変化させながらマーカーを探索することができる。この場合、検出部121は、多様な材質のマーカーを、サーバに問い合わせることなく、材質に適した照明環境下で検出することが可能となる。
また、情報処理システム100は、図93に示すように、照明部2010とカメラ2011とを連動させることにより、物体の探索精度を向上させることができる。図93は、薄暗い環境下で物体を検出する例を示しており、時間は左から右へ流れる。検出部121は、カメラ2011の撮影間隔と同期して発光するよう照明部2010を制御する。つまり、検出部121は、照明部2010を、一般的なカメラに取り付けられるストロボ(エレクトロニックフラッシュ)として機能させる。カメラ2011は、薄暗い環境下であっても、照明部2010による発光の反射光を撮像することができ、検出部121による検出精度が向上する。例えば、電源周波数が50Hzであれば、20ミリ秒間隔で撮影および発光がなされ得る。人間が認識できない間隔で発光するので、一瞬明るくなるものの、周囲が薄暗いままでも検出部121による物体の検出が可能となる。
以上説明したように、本具体例によれば、情報処理システム100は、投影面の状態に応じて照明部による照明強度、照明範囲を調整することで、鮮明な画像を投影面に投影することが可能となる。また、情報処理システム100は、必要な個所のみを照射するように照明範囲を調整することにより、部屋全体が意図せず暗くなったり明るくなったりするような周囲への影響を抑止することができる。また、情報処理システム100は、照明部による照明強度、照明範囲を調整することにより、テーブル140aに載置された物体の認識精度を向上させることができる。
[具体例4]
本具体例は、操作オブジェクトの認識可能数の超過をフィードバックする形態である。例えば、指でテーブル140aをタッチしても何らのフィードバックがない場合、タッチが認識されていないのか、タッチは認識されたがUIが反応しないのか、ユーザが操作に失敗したのかを、ユーザは判別することができない。ここで、認識可能な数を超過していた場合、情報処理システム100は、超過分のタッチの検出に失敗するため、ユーザにフィードバックすることが困難であった。
そこで、本具体例に係る情報処理システム100は、計算量上の操作オブジェクトの認識可能上限数マイナス1を、仕様上の認識可能上限数として定義する。計算量上の認識可能上限数とは、検出部121により検出可能な操作オブジェクトの上限数を意味する。つまり、1本分のバッファを持たせて仕様上の認識可能上限数が定義される。もちろん、バッファの数は1以外の任意の数であってもよい。情報処理システム100は、仕様上の認識可能上限数を1超えた場合、即ち計算量上の認識可能上限数に到達した場合に、ユーザに認識できない旨をフィードバックする。詳しくは、検出部121は、テーブル140aにタッチされた操作オブジェクトを検出する。出力制御部122は、検出部121により検出された操作オブジェクトの数が計算量上の認識可能上限数である場合に、警告を出力するよう出力部130を制御する。以下、図94を参照して具体的に説明する。図94は、具体例4に係るユーザインタフェースを説明するための説明図である。
図94は、計算量上の操作オブジェクトの認識可能数が4であった場合の、情報処理システム100によるフィードバック例を示している。この例においては、仕様上の認識可能上限数は、4マイナス1の3となる。このため、図94に示すように、タッチした指が1本〜3本である場合、出力制御部122は、タッチの検出に成功したことを示す効果音を出力するよう出力部130を制御する。そして、図94に示すように、タッチした指が4本となった場合、仕様上の認識可能上限数である3を超過したため、出力制御部122は、タッチの検出に失敗したことを示す効果音を出力するよう出力部130を制御する。
出力制御部122は、テーブル140aにタッチされた指の数がすでに仕様上の認識可能上限数に到達している場合、指がタッチする前の、例えば指がカメラの画角に入ってきたタイミングで、その指が認識可能/不可能であることをフィードバックしてもよい。さらに、出力制御部122は、例えば手を握った状態ではタッチを検出できず、利用できない旨をフィードバックしてもよい。出力制御部122は、検出部121の認識可能上限数以外にも、例えば二人用のゲームで1本ずつ指を使用すること、といったアプリケーションで規定されている認識可能上限数に応じて、フィードバックしてもよい。なお、例えば認識可能上限数が4本で、タッチされた指の本数が6本であり、2本が認識できない場合、走査の都合上左上が優先してフィードバックされ、空きが出来た場合も左上が優先して利用可能になり得る。もちろん、優先される位置は左上に限らず、製品設計に応じた任意の位置であってもよい。
本具体例によれば、操作オブジェクトの認識可能上限数を越えたことを、ユーザに明示的にフィードバックすることが可能になる。これにより、UIが反応しないと勘違いしたユーザがテーブル140aを連打することにより、かえって事態が悪化するような状態を予防することができる。
[具体例5]
本具体例は、操作しない方の手に応じて操作モードを切り替える形態である。ユーザは、指によりテーブル140aに投影された画像、テキスト、アプリケーション等を操作可能である。しかし、操作モードを切り替えるために、一旦作業を中断してメニューを開いて操作モードを選択する場合、シームレスな作業が困難であった。そこで、本具体例に係る情報処理システム100は、操作していない方の手の認識結果に基づいて、操作モードを切り替える。
詳しくは、検出部121は、ユーザの一対の手を検出する。例えば、検出部121は、同じ辺から検出された2本の手を、一対の手として検出する。出力制御部122は、検出部121により検出された一対の手のうち、一方の手を作用点として機能させた出力を行うよう出力部130を制御する。例えば、出力制御部122は、指でテーブル140aをタッチする右手を、テーブル140aに投影されたアプリケーションを操作するための作用点として機能させて、タッチされた位置に応じてスクロール等のインタラクションを表現する。また、出力制御部122は、他方の手を、手の形状に応じて作用点による作用の種別を切り替える切替器として機能させた出力を行うよう出力部130を制御する。例えば、出力制御部122は、左手の形状に応じて、右手による操作の操作モードを切り替える。もちろん、右手と左手の機能は逆であってもよい。以下、図95〜図97を参照して具体的に説明する。図95〜図97は、具体例5に係るユーザインタフェースを説明するための説明図である。
例えば、左手がじゃんけんのグーの形状である場合、検出部121は、撮像画像に基づいて左手の形状を認識し、出力制御部122は、操作モードを「文鎮モード」に切り替える。出力制御部122は、「文鎮モード」においては、図95上図に示すように、右手でタッチされた点に字を描画するよう出力部130を制御する。また、左手がじゃんけんのチョキの形状である場合、検出部121は、撮像画像に基づいて左手の形状を認識し、出力制御部122は、操作モードを「ハサミモード」に切り替える。出力制御部122は、「ハサミモード」においては、図95中央図に示すように、右手でタッチされた点で投影画像を切り取った表現を行うよう出力部130を制御する。また、左手がじゃんけんのパーの形状である場合、検出部121は、撮像画像に基づいて左手の形状を認識して、出力制御部122は、操作モードを「通常モード」に切り替える。出力制御部122は、「通常モード」においては、図95下図に示すように、右手でタッチされた点に応じてタップおよびドラッグなどの通常の操作を行うよう出力部130を制御する。また、図96に示すように、出力制御部122は、検出部121により検出された手の形状に応じて異なるメニューを出力するよう出力部130を制御してもよい。また、図97に示すように、出力制御部122は、検出部121により検出された手の形状に応じて異なるメディアのファイル一覧を出力するよう出力部130を制御してもよい。図97に示した例では、左手がじゃんけんのグーの形状である場合に音楽ファイルの一覧が出力され、左手がじぇんけんのパーの形状である場合にWebファイルの一覧が出力されている。
出力制御部122は、作用点として機能する右手または切替器として機能する左手のいずれかの上に、現在の操作モードを示す表示を投影することで、ユーザに明示的に操作モードをフィードバックしてもよい。例えば、出力制御部122は、ハサミモードであれば爪の上や手の甲にハサミのマークを投影するよう出力部130を制御する。また、出力制御部122は、作用点として機能する右手の形状に応じて作用点による作用の種別を切り替えてもよい。例えば、出力制御部122は、右手が1本指であれば細線を描画して、右手が2本指であれば太線を描画するよう出力部130を制御してもよい。また、出力制御部122は、切替器として機能する左手がテーブル140aから外れて検出部121が認識に失敗した場合であっても、操作モードを維持してもよい。例えば、ユーザが左手をチョキにして、ハサミモードとなった後に、ユーザが左手を引っ込めてしまっても、出力制御部122は、ハサミモードを維持してもよい。
以上説明したように、本具体例によれば、ユーザは、操作していない方の手で、操作モードを切り替えることができる。このため、ユーザは、現在の作業を中断することなく操作モードをシームレスに切り替えることができ、連続した作業が可能となる。また、ユーザは、直感的に操作モードを切り替えることができるため、操作モード切り替えに関する学習コストが低いものとなる。
[具体例6]
本具体例は、カメラ及びプロジェクタ等の構成要素をモジュール単位で形成して、規格化されたインターフェースにより接続可能とすることで、必要に応じたモジュールごとの入れ替えを可能とする形態である。情報処理システム100が一体型製品として形成された場合、機能拡張のためには情報処理システム100ごと買い替える以外の手段をとることが困難になり得る。そこで、本具体例に係る情報処理システム100は、構成要素のモジュール化及びモジュール単位の換装を可能にする。
具体的には、情報処理システム100を形成するCPU、カメラ、プロジェクタ、LEDライト、マイク、及びスピーカ等が、規格化されたモジュールに格納される。これらの構成要素は、個々に格納されてもよいし、複数が組み合わされてひとつのモジュールに格納されてもよい。なお、例えばCPU、プロジェクタ、カメラを格納するモジュールをコアモジュールとして、他の構成要素を格納するモジュールをサブモジュールとして捉えてもよい。これらの各モジュールが共通のインターフェースにより接続されることで、相互の通信及び給電が可能となり、接続されたモジュール全体で情報処理システム100として機能することが可能となる。なお、コアモジュールのみで、情報処理システム100として機能することも可能である。インターフェースは、無線通信により実現されてもよいし、有線通信により実現されてもよいし、端子により物理的に接続されるものであってもよい。以下、図98〜図99を参照して、本具体例について詳しく説明する。図98〜図99は、具体例6に係るユーザインタフェースを説明するための説明図である。
図98には、本具体例に係る情報処理システム100の本体の簡易な構成例が示されている。図98に示した構成例では、円筒状の容器の中に、プロジェクタ(Projector)が格納されたモジュールが最下層に、CPUが搭載された制御基板(MAIN PCB)が格納されたモジュールが中層に、スピーカ(Speaker)が格納されたモジュールが最上層に、それぞれ配置されている。また、制御基板に連結されて、円筒状の容器の左右にステレオカメラ(Stereo Camera)が配置されている。これらのモジュールは、例えば共通の端子によりそれぞれ接続されていてもよい。スピーカが格納されたモジュールと制御基板が格納されたモジュールとの間に隙間が設けられた場合、音質の向上および放熱効果が期待される。スピーカ側が天井に連結され、プロジェクタ側が床側を向くことにより、プロジェクション型の情報処理システム100が実現され得る。各モジュールは、図98に示したように縦方向に重なって配置されてもよいし、横方向に直線状に並べられてもよいし、平面上に並べられてもよいし、それぞれ分離・独立して任意な位置に配置されてもよい。図98に示したモジュールの他にも、照明及びスピーカ等のサブモジュールが任意に連結されてもよい。なお、情報処理システム100は、図99に示すように、天井から吊り下げられる形状の照明装置として形成されてもよいし、フロアスタンド型の照明装置として形成されてもよいし、デスクスタンド型の照明装置として形成されてもよい。
照明がコアモジュールから離れて設けられた場合、コアモジュールは、照明を順番に発光させながら画像認識により発光位置を特定することで、コアモジュールと照明との位置関係を認識してもよい。これにより、コアモジュールは、投影面の状態等に応じて適切な位置に設けられた照明を選択的に発光させることができる。他にも、コアモジュールは、照明が取り付けられた日時を記録しておき、例えば「そろそろこのライトが切れそうです」というメッセージを投影することで、寿命の到来をユーザに通知してもよい。また、広いレンジを有するスピーカが取り付けられた場合、コアモジュールは、そのスピーカを主に用いて音声出力を行い、他のスピーカをバランス調整のために用いてもよい。
本具体例によれば、製品全体ではなくモジュールごとの一部買い替えが可能となるので、製品の買い替えコストを抑制すると共に、資源が節約される。また、本具体例によれば、モジュールの入れ替えにより、機能の拡張を容易に実現することができる。また、例えばユーザはコアモジュールを入れ換えることで、CPU処理能力、カメラ解像度、認識精度等のパフォーマンスを向上させることができる。また、ユーザは、例えばサブモジュールを入れ換えることにより、豊富に展開されたスピーカ及び照明等のデザインバリエーションを楽しむことができる。
[具体例7]
本具体例は、同一のアプリケーションの画面を複数表示する際に、各画面間の表示を同期させる形態である。通常、アプリケーションは単一方向に向けて表示されるが、テーブル140aを複数のユーザが囲んでひとつのアプリケーションを使用することを想定すると、例えば逆方向に立つユーザにとって表示が見辛いものとなり得る。そこで、本具体例に係る情報処理システム100は、同一のアプリケーションの画面を複数表示すると共に、必要に応じて画面間の同期(ミラーリング)/非同期(ミラーリングの解除)を切り替える。
詳しくは、検出部121は、操作オブジェクトを検出する。出力制御部122は、検出部121により検出された操作オブジェクトに応じて、少なくとも2つの画面を表示面に表示するよう出力部130を制御する。例えば、出力制御部122は、検出部121により検出された指の方向に基づいて、テーブル140aを囲む複数のユーザに対してそれぞれ正対するように、同一アプリケーションの画面を表示する。画面を同期させる場合、出力制御部122は、検出部121により検出された操作オブジェクトによる一方の画面への操作を、他の画面にも同様に反映させた表示を行うよう出力部130を制御する。例えば、一方のユーザが指で画面をスクロールさせた場合に、他方のユーザに対して表示された画面も同様にスクロールする。以下、図100〜図103を参照して具体的に説明する。図100〜図103は、具体例7に係るユーザインタフェースを説明するための説明図である。
図100は、Webブラウザを1つの画面で表示する通常状態を示している。図101は、Webブラウザを2つの画面で同期して表示させた同期表示状態を示している。出力制御部122は、画面を同期させている間は、一方の画面への操作を他の画面にも反映させる。例えば、図101に示すように、出力制御部122は、一方のユーザが画面をクリックして画面遷移させる場合、他方の画面でも同一箇所をクリックされたものとして同様の画面遷移をするよう出力部130を制御する。図101では、表示面を上下2つに分割して同期表示する例を示したが、出力制御部122は、図102に示すように、表示面を左右2つに分割して同期表示するよう出力部130を制御してもよい。同期が解除された場合、出力制御部122は、図103に示すように、各ユーザが各画面に対して個々にスクロール等の操作を行った表示を行うよう出力部130を制御してもよい。出力制御部122は、再度の同期を行う場合、マスタとなるいずれか1つの画面の表示により、他の画面(スレーブ)の表示を統一する。
出力制御部122は、スクロール以外にも、例えば文字入力、地図アプリケーションへの目印の記入等を、同期表示により全ての画面で共有させることができる。他にも、出力制御部122は、例えばあるWebページ全体を複数のユーザが閲覧している場合に、他のユーザが表示させている領域の位置を矩形表示したり、その領域の方向を矢印で表示したりしてもよい。図100〜図103では、各画面が接した状態で表示される例を示したが、各画面はそれぞれ離間していてもよい。
出力制御部122は、ひとつの画面を2つに分けたり(分流)、2つの画面をひとつに統合したり(合流)してもよい。出力制御部122は、分流した複数の画面を同期表示してもよいし、非同期表示してもよい。また、出力制御部122は、分流した複数の画面を再度合流させてもよい。この場合、出力制御部122は、マスタとなるいずれかひとつの画面を、合流後の画面として表示する。
合流の際のマスタとなる画面の決定方法は、多様に考えられる。例えば、出力制御部122は、合流することを先に選択した画面をマスタ、他の画面をスレーブとしてもよい。このとき、出力制御部122は、「合流しますか?」というダイアログを他の画面で表示させて、合流することに同意した画面をスレーブとしてもよい。また、出力制御部122は、合流後に再度分流する場合、スレーブが元々表示していた画面を、当該スレーブの画面として表示してもよい。例えば、出力制御部122は、Webページ「A」を表示していたマスタ、Webページ「B」を表示していたスレーブを同期させて、ひとつのWebページ「A」を表示する例を想定する。この後、再度分流する場合、出力制御部122は、マスタにWebページ「A」を表示させ、スレーブにWebページ「B」を表示させてもよい。
分流及び合流の契機は多様に考えらえる。例えば、出力制御部122は、検出部121により検出された、ユーザによるメニュー項目の選択により、分流または合流を行うよう出力部130を制御してもよい。また、出力制御部122は、ひとつの画面をタッチした指を左右に引っ張るように動かす動作が検出部121により検出された場合に、分流を行ってもよい。他にも、出力制御部122は、ひとつの画面を2人がタッチして左右に引っ張って切るような動作が検出部121により検出された場合に、分流を行ってもよい。逆に、出力制御部122は、2つの画面をタッチした指を重ねるように動かす動作が検出部121により検出された場合に、合流を行ってもよい。なお、検出部121は、指の本数等に応じて、合流/分流を示す操作とピンチイン及びピンチアウトといった操作とを区別してもよい。出力制御部122は、合流するか否かの決定を、マスタにのみ許可してもよいし、スレーブにのみ許可してもよいし、スレーブを含めたすべての画面に許可してもよい。
以上説明したように、本具体例によれば、複数の画面をユーザの位置に応じた方向に表示することができるため、異なる方向からの高い視認性を実現することができる。また、本具体例によれば、複数の画面について必要に応じて同期/非同期を切り替えることが可能であるため、アプリケーションの状態に応じた臨機応変な表示/操作を実現することができる。また、本具体例によれば、画面が同期されている場合、他者の操作がフィードバックされるため、他者が何の操作を行い、アプリケーションがどのように動作しているかを、ユーザは容易に認識することができる。
[具体例8]
本具体例は、テーブル140a上の被写体を記録しておき、原寸大で再現する形態である。テーブル140a上の被写体とは、例えばテーブル140a上に載置された絵画、写真等の物体、テーブル140aに投影された画像などを意味する。本具体例に係る情報処理システム100は、ある時点におけるテーブル140a上の被写体を撮像しておき、後にテーブル140aに被写体が原寸大で表示されるように撮像画像をプロジェクタ(投影部)で投影する。ここで、状態が記録されてから再現されるまでの間に投影距離及び投影画角等の環境が変化した場合、情報処理システム100は、原寸大で状態を再現することが困難となる場合がある。そこで、本具体例に係る情報処理システム100は、記録した時点におけるプロジェクタとテーブル140aとの間の投影距離、及びプロジェクタの投影画角を保存しておき、再現する時点での投影距離及び投影画角に応じて投影サイズの変更(キャリブレーション)を行う。
このようなキャリブレーションのための前提処理として、制御部120は、カメラによる撮像サイズとプロジェクタによる投影サイズとを整合させる調整処理を行う。詳しくは、制御部120は、カメラによりテーブル140a上の被写体が撮像された画像を、プロジェクタによりテーブル140aに投影した場合に、被写体の投影サイズと実サイズとが一致するように調整を行う調整部として機能する。制御部120は、この調整処理として、例えばテーブル140a上の4点の位置合わせを行ったり、ホモグラフィ変換を行ったりする。このような調整処理がされたプロジェクタ、及びカメラ、テーブル140aから成る環境においては、情報処理システム100は、例えばテーブル140a上に載置された絵画を撮像しておき、後日に同じ大きさで投影することが可能となる。しかし、投影距離又は投影画角といったプロジェクタの設定が変化した場合、プロジェクタにより投影される画像の投影サイズも変化する。そこで、情報処理システム100は、撮像画像と設定情報とを対応付けて記憶しておき、設定情報の変化に応じて投影サイズを調整することにより、原寸大での被写体の投影を実現する。
詳しくは、まず、調整処理済みのある時点の環境(第1の環境)において、制御部120は、カメラ(第1の撮像部)によりテーブル140a(第1の投影面)上の被写体が撮像された撮像画像、およびプロジェクタの設定情報を記憶する。制御部120は、設定情報を記憶する記憶部として機能してもよい。設定情報とは、プロジェクタと投影面との距離である投影距離を示す情報を含む情報である。なお、投影距離は、プロジェクタと被写体との距離を示す情報であってもよい。設定情報は、さらにプロジェクタの画角である投影画角を示す情報を含んでいてもよい。
投影距離又は投影画角が変化した場合、まず、制御部120は、調整処理を行う。次いで、情報処理システム100は、調整処理済みの環境(第2の環境)において、変化後のプロジェクタ(第2の投影部)の設定情報と、記憶された変化前の設定情報とを比較する。そして、情報処理システム100は、この比較結果に基づいて、記憶された撮像画像の被写体が実サイズで投影されるようプロジェクタを制御する。以下、図104〜図110を参照して具体的に説明する。図104〜図110は、具体例8に係るユーザインタフェースを説明するための説明図である。
図104上図に示すように、テーブル140a上に絵画が載置された例を想定する。まず、検出部121は、載置された絵画を撮像するよう入力部110を制御して、撮像画像を取得する。次いで、制御部120は、取得された撮像画像と共に、投影距離100cm及び投影画角60°を設定情報として記憶する。この時点では、プロジェクタが撮像画像を投影すると、絵画が実サイズと同じサイズで投影される。
例えばテーブル140aを買い替えた場合など、投影距離が変化した場合、出力制御部122は、記憶された設定情報と変化後の設定情報を比較して、拡大または縮小表示を行うようプロジェクタを制御する。例えば、図104中央図に示すように、投影距離が100cmから50cmに変化した場合、出力制御部122は、通常の2倍のサイズに拡大して投影するようプロジェクタを制御する。これにより、絵画が実寸大で再現される。
プロジェクタを買い替えた場合など、投影画角が変化した場合、出力制御部122は、記憶された設定情報と変化後の設定情報を比較して、拡大または縮小表示を行うようプロジェクタを制御する。例えば、図104下図に示すように、投影画角が60°から120°に変化した場合、出力制御部122は、通常の0.5倍に縮小して投影するようプロジェクタを制御する。これにより、絵画が実寸大で再現される。なお、図104では、同一家庭内(同一の情報処理システム100)でプロジェクタの設定が変化する例を説明したが、異なる家庭に画像を送信する場合であっても同様にキャリブレーションが行われてもよい。キャリブレーションにより、環境の変化を吸収可能である。
このようなキャリブレーション機能を発火させるタイミングは多様に考えられる。例えば、図105に示すように、情報処理システム100は、ユーザにより卓上のスイッチが押下されたタイミングで、キャリブレーション機能を発火させてもよい。また、図106図に示すように、情報処理システム100は、掃除および模様替え等によりテーブル140aが変わったタイミングで、キャリブレーション機能を発火させてもよい。例えば、情報処理システム100は、最大平面までの距離(投影距離)が変化したことが検出部121により検出された場合に、自動的に発火させてもよい。また、図107に示すように、情報処理システム100は、昇降機能により高さ(投影距離)が変化したタイミングで、キャリブレーション機能を発火させてもよい。昇降機能は、例えば、モーターで動作する昇降装置により実現される。
なお、情報処理システム100は、昇降機能を用いて投影面を可能な限り広く利用する距離になるよう自動で高さの調整を行ってもよい。詳しくは、出力制御部122は、所定の図柄を投影するようプロジェクタを制御し、検出部121は、投影された画像を撮像するようカメラを制御する。そして、制御部120は、投影された所定の図柄が全てテーブル140aに収まった画像が撮像される高さになるよう、昇降機能を用いて高さを調整する。例えば、図108上図に示した例では、投影された図柄がテーブル140aからはみ出ているので、投影面までの距離が遠い。一方で、図108下図に示した例では、投影された図柄がテーブル140aに小さく映っているため、投影面までの距離が近い。そこで、制御部120は、図108中央図に示すように、投影された図柄がテーブル140aの領域全体に渡って映るような最適距離となるよう、高さの調整を行う。なお、制御部120は、深度センサ(ステレオカメラ)から取得される投影距離と合わせて、撮像画像に含まれる図柄の大きさから距離を測定することで、より確度の高い調整を実現してもよい。
また、情報処理システム100は、昇降機能による昇降中に、キャリブレーションを行ってもよい。例えば、制御部120は、図109上図に示すように、昇降中は投影サイズが一定になるようにプロジェクタを制御してもよい。また、制御部120は、図109下図に示すように、昇降完了後は、本来の投影サイズで投影するようプロジェクタを制御してもよい。情報処理システム100が昇降中の投影距離の変化に基づいて投影サイズを調整しながら昇降することにより、ユーザは、昇降中にも操作・閲覧を行うことができる。
以上説明したように、本具体例によれば、テーブル買い替え、設置場所変更、プロジェクタの変更といった環境の変化があった場合であっても、原寸大の表示を保つことが可能となる。これにより、例えば思い出の作品をそのまま記録/再現することが可能となる。
図1に示したようなプロジェクション式の場合、天井からステレオカメラ、プロジェクタ等の、情報処理システム100を構成する装置を吊り下げることになる。情報処理システム100を構成する装置は、ユーザによって任意の場所に移動させることが出来るが、ここで、各装置の吊り下げに用いる材質によっては、移動によって振動が生じ、その振動の収束までに要する時間が大きく左右される。
ここで、情報処理システム100を構成する装置の吊り下げに、以下の4つの材質を用いて、収束時間を測定した。鋼鉄製の鋼鉄シャフト、カーボンFRP(Fiber Reinforced Plastics)シャフト、電源線入りカーボンシャフトについては、図110に側面方向から見た外観例を示した。図110の符号1410は、鋼鉄シャフトの外観例であり、符号1420は、カーボンFRPシャフトの外観例であり、符号1430は、電源線入りカーボンシャフトの外観例である。電源線入りカーボンシャフトは2本で1組として構成され得る。
表1に示したように、情報処理システム100を構成する装置の吊り下げにカーボンシャフトを用いることで、実使用上問題のない収束時間が確認できた。また、電源線入りカーボンシャフトを2本用いることで、外径が細い材質であっても実使用上問題のない収束時間が確認できた。なお、シャフトの材料に用いられる繊維には、例えば、カーボンの他にも、グラス、アラミド、ボロン、竹、麻、PET(ポリエチレンテレフタラート)、PE(ポリエチレン)、PP(ポリプロピレン)等が用いられ得る。
[具体例9]
本具体例は、アプリケーションの起動場所を自動的に選択する形態である。アプリケーションが常に所定の場所に起動される場合、例えばテーブル140a上に載置された物が障害となってアプリケーション画面の全部を表示することが困難になり得る。また、アプリケーション画面を移動させようとしても、テーブル140a上に載置された物が障害となって、移動させることが困難になり得る。そこで、本具体例に係る情報処理システム100は、アプリケーション起動時にテーブル140a上の物体を認識して、アプリケーション毎に設定された制約条件(表示条件)を満たす位置を探索してアプリケーション画面を表示する。また、物体が移動したり新たな物体が載置されたりして、テーブル140a上の状態が変化した場合、情報処理システム100は、変化後の物体を自動的に避けるように、アプリケーション画面を移動させる。
詳しくは、まず、検出部121は、深度情報を取得することにより、テーブル140a上の物体(オブジェクト)を検出する。そして、出力制御部122は、検出部121により検出された物体が重なる領域以外の領域に画像を表示するように出力部130を制御する。これにより、物体が存在しない領域にアプリケーション画面が表示される。以下、図111〜図114を参照して具体的に説明する。図111〜図114は、具体例9に係るユーザインタフェースを説明するための説明図である。
例えば、図111に示した例においては、Webブラウザ2021と音楽プレイヤー2022とが、テーブル140a上の物体が重なる領域以外の領域に表示されている。出力制御部122は、アプリケーション毎に定義されている最小サイズを満たす平面にそれぞれが表示されるよう、出力部130を制御している。
また、検出部121は、手や指の位置及び向きに基づいて、ユーザの位置を推定する推定部として機能する。出力制御部122は、ユーザとの関係として設定された表示条件に応じて、推定されたユーザの位置に対応する位置に画像を表示するよう出力部130を制御する。例えば、表示条件として、ユーザの位置近くに表示すること、が設定されている場合、出力制御部122は、ユーザの位置近くにアプリケーション画面を表示するよう出力部130を制御する。なお、表示位置に関する表示条件を、アプリケーション画面に働く重力の設定として捉えてもよい。例えば、図111に示したアプリケーションの表示条件は、以下の通りであるものとする。なお、投影面のサイズは1920×1080であるものとする。
Webブラウザ2021
最小サイズ:800×600
重力:ユーザの近く
音楽プレイヤー2022
最小サイズ:400×400
重力:ユーザの近く
この表示条件に従い、出力制御部122は、図111に示すように、Webブラウザ2021、および音楽プレイヤー2022を、ユーザに近い位置であって、最小サイズを満たす平面にそれぞれ表示している。
また、物体が移動したことが検出部121により検出された場合、出力制御部122は、移動後のテーブル140a上の物体の位置関係に応じて、さらに表示条件に合致する位置に画像を表示してもよい。例えば、図111に示した例において、テーブル140a上の物体が移動した場合、出力制御部122は、ユーザにさらに近くなる位置を探索して、アプリケーション画面を移動させてもよい。
また、出力制御部122は、テーブル140a上の物体との関係として設定された表示条件に応じた位置に画像を表示するよう出力部130を制御してもよい。例えば、テーブル140a上の物体の端部(エッジ)に隣接して表示するように設定された場合、出力制御部122は、検出部121により検出された物体に隣接してアプリケーション画面が表示されるよう出力部130を制御する。例えば、図112に示すアプリケーションの表示条件は、以下の通りであるものとする。
せせらぎアプリケーション2023
最小サイズ:100×100×連続
重力:エッジに隣接
この表示条件に従い、出力制御部122は、図112に示すように、せせらぎアプリケーション2023を、テーブル140a上の物体の間を縫うようにエッジに沿って並べて表示することで、川の流れを表現することが可能となる。
また、出力制御部122は、テーブル140a(投影面)との関係として設定された表示条件に応じて、画像を表示するよう出力部130を制御してもよい。例えば、図113に示すアプリケーションの表示条件は、以下の通りであるものとする。
キャンドルアプリケーション2024
最小サイズ:200×200
重力:投影面中央
この表示条件に従い、出力制御部122は、図113に示すように、キャンドルアプリケーション2024を、テーブル140aの中央に表示させる。
適切な投影面の探索に失敗した場合の処理は、多様に考えられる。例えば、出力制御部122は、図114上図に示すように、物体を避けることなく、デフォルトの位置でそのまま画像を投影してもよい。また、出力制御部122は、図114中央図に示すように、デフォルトの位置でそのまま画像を投影しつつ、物体が重なる領域を透過させてもよい。また、出力制御部122は、図114下図に示すように、邪魔な物体を示す警告表示を行ってもよい。警告表示は、例えば物体の移動を促すメッセージであってもよい。他にも、検出部121が、料理が提供された時の撮像画像と現在の撮像画像との比較結果により料理を食べ終わったことを検出して、出力制御部122は、食べ終わった皿を優先的に排除するように促すメッセージを警告表示として表示してもよい。
本具体例によれば、アプリケーションごとに表示領域として適切な平面を自動で検出して表示することで、ユーザによる操作を要することなく、最適な表示を行うことができる。また、本具体例によれば、アプリケーション毎に定義されている最小サイズ、重力といった表示条件を満たす表示領域を動的に探索することで、最適な表示を自動的に行うことができる。
[具体例10]
本具体例は、テーブル140a上に表示された音源から音声が聞こえるように、音声出力の制御を行う形態である。プロジェクション型の情報処理システム100では、映像が下にある投影面(テーブル140a)に投影され、音が上にある本体から鳴るため、本体とテーブル140aとの距離が離れる程に映像と音との一体感が失われ得る。そこで、本具体例に係る情報処理システム100は、指向性スピーカにより投影面に反射させて、音をユーザに向けて発する。特に、情報処理システム100は、アプリケーションの特性に応じて、ユーザの位置および操作に合わせて反射させる位置を変化させることにより、映像と音との一体感を生み出す。
検出部121は、手や指の位置及び向きに基づいて、ユーザの位置を推定する推定部として機能する。そして、出力制御部122は、表示面に表示された画像に対して出力した音声が反射されて、前記推定部により推定されたユーザの位置に到達するようスピーカを制御する。本具体例に係る情報処理システム100には、複数の指向性スピーカが設けられており、各スピーカの向きおよび指向範囲が制御可能であるものとする。出力制御部122は、ユーザの位置およびアプリケーションが表示された位置との位置関係に基づいて、アプリケーション画面に向けて音を発した場合に反射した音がユーザに到達し得る位置に設けられたスピーカを選択して、音を発するよう制御する。以下、図115〜図117を参照して具体的に説明する。図115〜図117は、具体例10に係るユーザインタフェースを説明するための説明図である。
例えば、音楽プレイヤーのように音源であることが明確なアプリケーションの場合、図115に示すように、出力制御部122は、アプリケーション画面の中央に向けて音声を反射させて、ユーザに音声が到達するようにスピーカを制御してもよい。また、動画プレイヤーのようにLR(左右)のチャンネル構成を有するアプリケーションの場合、図116に示すように、出力制御部122は、アプリケーション画面の左右に、対応するチャンネルの音声を反射させて、それぞれユーザの左右の耳に到達するようにスピーカを制御してもよい。また、Webブラウザのように音声の発生源が明確ではないアプリケーションの場合、図117に示すように、出力制御部122は、例えばユーザがクリックした位置(例えばリンク)に音声を反射させて、ユーザに音声が到達するようにスピーカを制御してもよい。
指向性スピーカにより音声を投影面に反射させる以外にも、映像と音との一体感を生み出す方法は多様に考えられる。例えば、出力制御部122は、表示させるアプリケーションの位置に音像が定位するようにスピーカを制御してもよい。また、情報処理システム100は、複数のユーザにより複数のアプリケーションがそれぞれ使用されている場合、各ユーザに対して、そのユーザが使用しているアプリケーションの音声のみを発してもよい。他にも、情報処理システム100は、複数ユーザが同一の動画を鑑賞している場合、各ユーザに対して、そのユーザの母国語の音声を再生してもよい。また、情報処理システム100は、アプリケーション画面の手前側、即ち操作するユーザが通常位置するであろう方向に向けて音声を発してもよい。
以上説明したように、本具体例によれば、アプリケーションの表示位置に応じて音源位置を制御することにより、あたかもアプリケーション画面自体から音が鳴っているかのような感覚をユーザに与えることが可能である。また、本具体例によれば、ユーザの操作に応じて反射させる位置を制御することにより、Webブラウザのように音源についての事前情報がない状態であっても、映像と音との一体感を生み出すことができる。また、本具体例によれば、ユーザ位置に応じてLRのチャンネル構成を制御することにより、家庭用テレビを鑑賞している場合と同様の臨場感を生み出すことができる。
[具体例11]
本具体例は、テーブル140a上で特定条件を満たした場合に、予め設定された機能を発火する形態である。アプリケーションの機能を発火させる条件は、通常はそのアプリケーションを提供するベンダーのみが設定可能である。また、利用環境によっては、アプリケーションで定義された挙動では機能が発火しない場合もあった。そこで、本具体例に係る情報処理システム100では、発火させる機能と発火の条件とをユーザにより自由に設定可能にした。
ユーザは、表示面上の状態に関する条件に、出力指示を対応付けたプログラムを生成する。プログラムを受け付けた情報処理システム100は、表示面上の状態がプログラムにより規定された条件を満たした場合に、対応する出力指示に基づいた出力を行う。表示面上の状態に関する条件とは、例えばテーブル140a上に特定の物体が載置されたこと、テーブル140a上の温度、及び深度情報の変化などが挙げられる。以下では、表示面上の状態に関する条件を、出力条件とも称する。
まず、検出部121は、テーブル140aにタッチされた指などの操作オブジェクトを認識して、ユーザによるプログラミングを検出する。そして、制御部120は、検出部121によるプログラミングの検出結果に基づいて、出力条件に出力指示を対応付けたプログラムを記憶する。制御部120は、このようなプログラムを記憶する記憶部として機能してもよい。以下、図118を参照して具体的に説明する。図118は、具体例11に係るユーザインタフェースを説明するための説明図である。
プログラムの例としては例えば、テーブル140a上の温度を出力条件とするプログラムが考えられる。プログラムには、条件判定を行う領域が設定され得る。例えば、図118に示すように、ケーキが載置された領域を条件判定領域2031として、摂氏30度以下になることを出力条件とし、照明をONにすることを出力指示とするプログラムが考えられる。プログラムの他の例としては例えば、テーブル140a上の図柄を出力条件とするプログラムが考えられる。例えば、図118に示すように、条件判定領域2032においてジョーカーカードがオモテ向きに載置されたことを出力条件とし、所定のエフェクトを表示することを出力指示とするプログラムが考えられる。情報処理システム100は、投影面のタッチ操作によるプログラミングを受け付けてもよいし、有線/無線通信により外部装置からプログラムを受信してもよい。
その後、検出部121は、テーブル140a上の状態として、例えばテーブル140a上の物体、物体の表面の絵柄、温度、湿度などを検出する。そして、検出部121により検出されたテーブル140a上の状態が、記憶された出力条件を満たす場合に、出力制御部122は、その出力条件に対応付けて記憶された出力指示に応じた出力を行うよう出力部130を制御する。例えば、図118に示したプログラムに関しては、出力制御部122は、条件判定領域2031の温度が摂氏30度以下になったことが温度センサにより取得された場合に、点灯するよう照明を制御する。これにより、例えば誕生日ケーキに立てられた蝋燭が吹き消された場合に、自動的に照明が点く。また、図118に示したプログラムに関しては、出力制御部122は、条件判定領域2032に載置されたカードがジョーカーカードであることが撮像画像に写った絵柄から検出された場合に、プログラムされた映像エフェクトを表示するようプロジェクタを制御する。
プログラム例をさらに例示する。例えば、乳児のミルクの周囲に温度を表示しておき、摂氏36度〜37度程度の人肌の温度になった場合に、ユーザに通知するプログラムが考えられる。また、誕生日ケーキを監視しておき、蝋燭が吹き消されて温度が急激に減少した場合に、自動的に照明を点け、写真を撮影するプログラムが考えらえる。また、朝の時刻にユーザの前に黒い飲み物(コーヒーを想定)が載置された場合に、ニュースを表示するプログラムが考えられる。また、出力制御部122は、プログラムされている領域、即ち条件判定領域に、破線による矩形表示などの、何らかのプログラムがされていることを示す表示を行ってもよい。もちろん、サプライズ目的等の、プログラムの存在を隠したい場合にあっては、このような表示を行わないよう設定可能である。
上述した温度および絵柄の他にも、例えば深度の変化が出力条件として設定され得る。検出部121は、テーブル140a上に位置する物体(オブジェクト)を深度情報により検出して、出力制御部122は、検出されたオブジェクトの状態が出力条件を満たす場合に、対応付けて記憶された出力指示に応じた出力を行うよう出力部130を制御する。例えば、麻雀において手牌が倒されたことは深度情報の変化により検出可能である。そこで、例えば、麻雀において手牌が倒された場合に、手牌の状態である役を撮像画像に基づいて認識して自動的に点数計算を行うプログラムが考えられる。また、ケーキの蓋が外されて中身のケーキが現れたことも、深度情報の変化により検出可能である。そこで、例えばテーブル140aの中央に置いてあったバースデーケーキの箱の蓋が外された場合に、バースデーソングを再生するプログラムが考えられる。また、ボードゲームにおいて、実物のコマが特定のマスに止まったことも、深度情報の変化により検出可能である。そこで、例えば実物のコマが特定のマスに止まった場合に、エフェクトを表示するプログラムが考えられる。
本具体例によれば、アプリケーションを提供するベンダーによるプログラムだけでなく、ユーザによる自由かつ簡単なプログラムの設定が可能となる。これにより、テーブル140a上の細かい事情に即した機能発火が実現される。
[具体例12]
本具体例は、テーブル140a上に載置された物体の所属を判定する形態である。アプリケーションの用途によっては、テーブル140a上に載置された物体が、誰に所属するかが判別可能であることが求められ得る。そこで、本具体例では、テーブル140a上に物体を載置した手を検出して、検出した手と物体とを対応付けることにより、物体の所属を判定する。なお、ユーザは、そのユーザを所属先とする物体を所有しているとも捉えることができる。
まず、検出部121は、接触した状態で所定の領域に入ってきた操作オブジェクト及びオブジェクトが分離したことを検出する。例えば、検出部121は、深度情報に基づいて、手が物体を持ってテーブル140aに入ってきたこと、及び手と物体とが分離したことを検出する。以下、図119〜図123を参照して具体的に説明する。図119〜図123は、具体例12に係るユーザインタフェースを説明するための説明図である。
図119に示すように、手だけがテーブル140aに入ってきた場合、検出部121は、深度情報に基づいて、テーブル140aの辺に接する閉曲線を手として検出する。そして、図119に示すように、手が物体を持ってテーブル140aに入ってきて、物体がテーブル140a上に置かれた場合、検出部121は、手と物体とが分離したことを検出する。詳しくは、検出部121は、深度情報に基づいて、テーブル140aの辺に接しない閉曲線が現れたことを検出する。このとき、検出部121は、テーブル140aの辺に接しない閉曲線を手から分離した物体として検出する。
次いで、検出部121は、検出された操作オブジェクト及び当該操作オブジェクトから分離した物体を対応付けて認識する認識部として機能する。詳しくは、検出部121は、深度情報に基づいて、テーブル140aの辺に接する閉曲線が示す手と、この閉曲線から分離したテーブル140aの辺に接しない閉曲線が示す物体とを、対応付けて認識する。なお、検出部121は、物体が分離したときに、その物体に最も近い位置にある手を対応付けて認識してもよい。検出部121は、物体が対応付けられた手を、その物体の所属先として認識する。例えば、図119に示すように、検出部121は、テーブル140a上に置かれた物体とその物体を持っていた手とをペアリングする。検出部121は、物体の所属先を、手を示す閉曲線が接するテーブル140aの辺、即ち手が伸びてきた方向によって認識してもよい。これにより、図119に示すように、テーブル140a上に物体のみが検出される場合であっても、検出部121は、その物体の所属を認識することができる。
本具体例は、例えばルーレットゲームに適用可能である。検出部121は、テーブル140a上に置かれたチップの価値を、撮像画像から認識される柄、および深度情報から認識される高さにより検出すると共に、そのチップがどのユーザにより賭けられたかを検出する。そして、出力制御部122は、賭けに勝ったユーザの手元に、得られるチップ額を表示するよう出力部130を制御する。これにより、ユーザは、表示されたチップ額を参照して、自身でプールからチップを持ってくることが可能となる。ディーラーが不要となるため、全員でゲームに参加することが可能となる。
また、本具体例は、例えばボードゲームにも適用可能である。検出部121は、手が伸びてきた方向に基づいて、どのユーザがテーブル140a上のルーレットを回したかを検出する。そして、出力制御部122は、ルーレットの出目に応じて、自動的にルーレットを回したユーザのコマを進めた表示を行うよう出力部130を制御する。出力制御部122は、ユーザが順番を飛ばしてルーレットを回そうとした場合に、警告表示を行ってもよい。
また、出力制御部122は、持つべきでない物体を持ったときに警告を行ってもよい。例えば、図120上図に示すように、出力制御部122は、ユーザが自分に所属しないコップを持とうとした場合に警告表示を行い、そのユーザに所属するコップにユーザを誘導する表示を行ってもよい。また、図120下図に示すように、ユーザが内側のシルバーを取ろうとした場合に、外側から使うよう誘導する表示を行ってもよい。他にも、例えば焼肉において、検出部121は誰が置いた肉であるかを認識し、出力制御部122は、他人が焼いていた肉を取ろうとしたユーザに警告表示を行ってもよい。
検出部121は、所有権(所属先)の移り変わりを検出してもよい。移り変わりの規則としては、例えば、最初に触った人に所有権を固定する「先勝ち」、誰かが触った場合にそのまま触った者に所有権を移行する「後勝ち」が考えられる。他にも、移り変わりの規則として、ユーザの選択に応じて所有権を移行する「ユーザ選択」が考えられる。例えば、図121に示すように、ユーザAが最初に触って所有権を有する物体をユーザBが触ろうとしたことが検出された場合、出力制御部122は、所有権を移行させるか否かを選択させる表示を、所有者であるユーザAの手元に表示してもよい。また、移り変わりの規則として、物体が手渡しされた場合に所有権を移行する「手渡し」が考えられる。例えば、検出部121は、図122に示すように、ユーザXが物体を手に持ったままユーザYに手渡した場合に、所有権をユーザXからユーザYに移行させてもよい。
また、検出部121は、物体の分割に応じて所有権を設定してもよい。検出部121は、1つの閉曲線を1つの物体として検出し、1つの閉曲線から2つ以上の閉曲線が出現したことが検出された場合に、物体の分割を検出する。例えば、検出部121は、複数枚積層されて賭けられたコインが崩れた場合に、物体の分割を検出する。検出部121は、例えば図123に示すように、所有者が既に決まっている物体が複数に分割した場合、分割前の所有者に分割後の物体の所有権を設定してもよい。
以上説明したように、本具体例によれば、テーブル140a上に載置された物体の所属が識別可能となり、アプリケーション及びゲーム等での属性情報として取り扱うことが可能となる。これにより、例えば、出力制御部122は、物体の所有権に応じてゲームの進行を支援する出力を行うことができる。また、出力制御部122は、所有権を示す情報をユーザに提示することで、実世界において所属情報を可視化することができる。
[具体例13]
本具体例は、テーブル140a上に投影されたウィンドウを自在に操作可能にする形態である。テーブル140aを複数人で囲んでいる場合、およびユーザが位置を移動等した場合には、テーブル140a上に投影されたウィンドウが、ユーザの意図通りに移動、回転、拡大、縮小等されることが望まれる。そこで、本具体例では、ウィンドウの移動等のウィンドウ操作を受け付けるためのユーザインタフェースを提供する。以下、図124〜図127を参照してより具体的に説明する。図124〜図127は、具体例13に係るユーザインタフェースを説明するための説明図である。
図124に示す例では、情報処理システム100は、カレンダー、動画、地図といった複数の異なるアプリケーション画面を示すウィンドウをテーブル140aに投影している。投影されるアプリケーションは、ユーザにより任意に選択され得る。このような複数の異なるアプリケーション画面が同時に投影されることにより、例えば朝の忙しい時間帯に、ユーザは、テーブル140a上を自由に使って様々な情報を同時にチェックすることが可能となる。ここで、例えば、ユーザが図124左図に示したメニューから回転ボタンをタッチしたことが検出部121により検出された場合、出力制御部122は、図124右図に示すように、全ウィンドウをテーブル140aの対面向きに回転させるよう出力部130を制御する。
また、検出部121は、ウィンドウの外周をウィンドウ操作のためのハンドルとして捉え、ハンドルに対するユーザ操作を検出することによりウィンドウ操作を実現してもよい。例えば、情報処理システム100、ハンドルがタッチされたことが検出部121により検出された場合、操作モードをウィンドウ操作モードに切り替える。ウィンドウ操作モードとは、ユーザ操作をウィンドウ操作として検出する操作モードである。なお、ユーザ操作がスクロール等のアプリケーションに対する操作として検出される操作モードを、通常モードとも称する。
ウィンドウ操作モードに切り替わった場合、出力制御部122は、図125左図に示すように、ウィンドウ操作モードであることを示す表示として、ハンドル2041を表示するよう出力部130を制御する。ユーザは、このハンドル2041をタッチしたまま指をドラッグ、ピンチ、又は回転させることにより、ウィンドウを移動等させることができる。例えば、ユーザによりハンドル2041がタッチされたままドラッグされたことが検出部121により検出された場合、出力制御部122は、図125右図に示すように、ドラッグされた方向にウィンドウを移動させる。なお、ユーザがハンドルから指を離した場合、情報処理システム100は、操作モードをウィンドウ操作モードから通常モードに切り替えてもよい。
検出部121は、ウィンドウの外側から内側へドラッグされたことが検出部121により検出された場合、操作モードを通常モードからウィンドウ操作モードに切り替えてもよい。例えば、図126左図に示すように、ウィンドウの外側から内側に指がドラッグされたことが検出部121により検出された場合、出力制御部122は、操作モードをウィンドウ操作モードに切り替える。このため、出力制御部122は、図126右図に示すように、ドラッグされた方向にウィンドウを移動させる。
検出部121は、タッチする指の本数によって、通常モードからウィンドウ操作モードに切り替わってもよい。例えば、検出部121は、ウィンドウへの2本の指によるタッチが検出された場合、ウィンドウ操作モードに切り替えてもよい。具体的には、図127に示すように、指2本で回転されたことが検出部121により検出された場合、出力制御部122は、ウィンドウの表示を回転させる。また、指2本でドラッグされたことが検出部121により検出された場合、出力制御部122は、ドラッグされた方向にウィンドウを移動させてもよい。他にも、指2本が広げられたことが検出部121により検出された場合、出力制御部122は、ウィンドウの表示を拡大させてもよい。
本具体例によれば、ユーザによる自由なウィンドウ操作が可能となり、ユーザビリティが向上する。
[具体例14]
以下、上述した情報処理システム100の制御部120により実行可能なアプリケーションの具体例を説明する。
(A:カルタ補助アプリケーション)
カルタ補助アプリケーションは、テーブル140aに並べられたカルタ札を用いるカルタ遊びを補助するためのアプリケーションである。カルタ補助アプリケーションは、読み句の自動読み上げ機能、正解表示機能、およびヒント提供機能を有する。読み句の自動読み上げ機能は、事前に登録された読み句を順次に出力部130に音声出力させる機能である。正解表示機能は、撮像画像から各カルタ札を認識し、正解のカルタ札とユーザの手が重なった場合にエフェクト表示を発生させる機能である。ヒント提供機能は、読み句の読み上げから所定時間が経過しても正解が出ない場合に、図128に示したように正解のカルタ札を含むヒント範囲を示す表示を出力部130に投影させ、さらに、時間が経過するにつれて上記ヒント範囲を狭めてもよい。かかる構成により、カルタ遊びにおいて、読み手が不要となり、かつ、円滑な進行を補助することが可能となる。
(B:会話補助アプリケーション)
会話補助アプリケーションは、ユーザの会話中に雰囲気の盛り上げを補助するためのアプリケーションである。例えば、会話補助アプリケーションは、ユーザの会話を音声認識し、テキスト化された会話から構文解析によりキーワードを抽出し、キーワードに対応する画像を出力部130に投影させ得る。以下、図129を参照してより具体的に説明する。
図129は、会話補助アプリケーションの具体例を示した説明図である。例えば、二人のユーザXおよびYが、以下のような会話を行った場合を想定する。
X:「この間日本に旅行いったよ。」
Y:「飛行機でどれくらい?」
X:「5時間くらい。意外と都会だったよ」
Y:「富士山みたの?」
X:「富士山綺麗だったよ。御来光も見たよ。」
この場合、会話補助アプリケーションは、二人の会話からキーワードとして例えば「日本」、「飛行機」、および「富士山」を抽出し、図129に示したように、日本地図、飛行機および富士山を出力部130に投影させる。かかる構成により、ユーザの臨場感が高まり、会話の雰囲気を盛り上げることが可能である。
(C:投影面追従アプリケーション)
投影面追従アプリケーションは、投影面の状態に応じて適切な投影を行うアプリケーションである。例えば、投影面追従アプリケーションは、投影面が傾斜している、投影面に凹凸がある、といった投影面の状態に応じて、ユーザに投影画像が正対して表示されるよう投影画像を補正して投影する。以下、図130〜図133を参照してより具体的に説明する。
図130〜図133は、投影面追従アプリケーションの具体例を示した説明図である。図130に示すように、投影面追従アプリケーションは、作業台に斜めに立てられた投影面に、料理をするユーザから正対して見えるようにレシピを投影する。ユーザは、例えば作業台上の平面に投影されたWebブラウザよりレシピを検索しておき、作る際に投影面を作業台に斜めに立てることで、流しに立って料理を作りながらレシピを見ることができる。かかる構成により、任意な角度の投影面への投影が可能となるため、ユーザは、自由な位置から投影画像を見ることができる。
投影面追従アプリケーションは、投影面の状態に応じてユーザ操作を検出することも可能である。通常、投影面追従アプリケーションは、キャリブレーション時および製品起動時などの特定のタイミングで、最大の平面を投影面として検出しておき、投影面と指との高さの差分に基づいて、ユーザ操作を検出する。例えば、図131に示すように、投影面が平面である場合、投影面追従アプリケーションは、ユーザの指と平面との距離に応じて、投影面がタッチされたか否かを検出することでユーザ操作を検出する。また、投影面追従アプリケーションは、投影面上に立体物が載置された場合、ユーザの指と立体物との局所的な差分を検出することにより、ユーザ操作を検出してもよい。例えば、図132に示すように、平面上に半球状の立体物が載置された場合、投影面追従アプリケーションは、半球上の局所平面とユーザの指との距離に基づいて、ユーザ操作を検出する。図130に示したように投影面が傾斜した場合、投影面追従アプリケーションは、ユーザの指と傾斜した投影面との距離に応じて、ユーザ操作を検出してもよい。
また、投影面追従アプリケーションは、ミラー(鏡)を用いた個人用表示を実現することができる。個人用表示には、図133に示すミラーおよびスクリーンを有する周辺機器が用いられる。通常、平面に投影された画像は、周囲にいる人に見えてしまう。そこで、投影面追従アプリケーションは、投影光をミラーに反射させて、ユーザの手前に設けられたスクリーンに結像させることで、スクリーンに正対するユーザのみを対象とした表示を行うことができる。投影面追従アプリケーションは、ゲームの手札および場札など、個人向けの表示と全員向けの表示とを同時に実現することも可能である。なお、図133に示すように、投影面追従アプリケーションは、ユーザ操作を、Z軸方向ではなく、X軸Y軸方向で取得されるスクリーンと指との距離により検出可能である。
(D:食事補助アプリケーション)
食事補助アプリケーションは、ユーザの食事の進行を補助するためのアプリケーションである。例えば、食事補助アプリケーションは、料理が載せられる食器の空の状態を事前に記憶しておき、当該空の食器と、現在の食器とを比較することにより、食器にどれだけ料理が残っているか、すなわち、食事の進捗状況を認識する。そして、食事補助アプリケーションは、食事の進捗状況に応じた図柄またはメッセージなどを出力部130に投影させ得る。以下、図134および図135を参照してより具体的に説明する。
図134は、食事補助アプリケーションの具体例を示した説明図である。図134の上図に示したように、食事補助アプリケーションは、食事が終わると、食器の周りで電車が走るような表示を出力部130に投影させてもよい。あるいは、食事補助アプリケーションは、図134の下図に示したように、食事が進むにつれてランチョンマットのデザインを演出する表示を出力部130に投影させてもよい。
図135は、食事補助アプリケーションの他の具体例を示した説明図である。図135に示したように、食事補助アプリケーションは、食品に埋もれていた皿の底面の模様が食事の進捗に応じて露出していく様子を検出することにより、食事の進捗状況を認識する。このとき、食事補助アプリケーションは、食事の進捗状況に応じたメッセージを出力部130に投影させてもよい。例えば、食事の進捗が20%未満の時には「手を合わせていただきます!」、20%以上40%未満の時には「良く噛んで食べようね」、40%以上70%未満の時に「もう少しだよ!頑張って」、100%の時には「やったね!残さず食べられました」というメッセージが出力され得る。
上記のように、食事補助アプリケーションは、食事の進捗状況に応じた図柄またはメッセージなどを出力部130に投影させることにより、ユーザの食事へのモチベーションを高め、ユーザの食事の進行を補助することができる。
(E:動きエフェクトアプリケーション)
動きエフェクトアプリケーションは、テーブル140aに載置された絵に基づき、当該絵が動き出したかのようなアニメーションを出力部130に投影させ得る。例えば、図136に示したように、ユーザが紙に絵を書き、テーブル140aに置くと、動きエフェクトアプリケーションは、ユーザに書かれた絵が動き出したかのようなアニメーションおよび音を出力部130に投影させる。なお、動きエフェクトアプリケーションは、ユーザが絵をテーブル140aに置くたびに異なる音を出力部130に出力させてもよい。ここで、図137を参照し、アニメーションの生成方法について具体的に説明する。
図137は、動きエフェクトアプリケーションの具体例を示した説明図である。図137に示したように、動きエフェクトアプリケーションは、テーブル140aに載置された絵の撮像画像から絵の形状および色を認識し、絵と同じ色の光を出力部130に投影させることにより、テーブル140aに載置された絵を視覚的に消去する。そして、動きエフェクトアプリケーションは、認識した絵の形状に基づきアニメーションを生成し、出力部130に投影させる。かかる構成により、単なる落書きのような絵が動き出したかのような感覚をユーザに与えることが可能である。
(F:弁当作成支援アプリケーション)
弁当作成支援アプリケーションは、多様な絵柄をユーザが食材により表現することを支援するためのアプリケーションである。例えば、弁当作成補助アプリケーションは、ユーザにより対象画を指定されると、当該対象画の色構成を分析し、分析の結果に基づき、当該対象画を絵柄として表現するための食材、分量および配置を特定する。そして、弁当作成補助アプリケーションは、特定した食材、分量および配置を案内するためのガイド表示を出力部130に投影させる。ユーザは、ガイド表示に沿って食材を配置することにより、対象画を模した絵柄を表現する弁当を作成することが可能となる。以下、図138を参照してより具体的に説明する。
図138は、弁当作成支援アプリケーションの具体例を示した説明図である。図138の左図に示したように、キャラクター画が形成されたパッケージをユーザがテーブル140aに載置すると、入力部110により当該パッケージが撮像される。そして、ユーザが対象範囲としてキャラクター画が形成された範囲を指定すると、弁当作成支援アプリケーションは、キャラクター画を対象画として認識し、キャラクター画を絵柄として表現するための食材、分量および配置を特定する。そして、弁当作成支援アプリケーションは、特定した食材、分量および配置に基づき、図138の中2図に示したようなガイド表示を出力部130に投影させる。ユーザは、かかるガイド表示に沿って食材を配置することにより、図138の右図に示したように、キャラクターの絵柄を表現する弁当を作成することが可能となる。
なお、上記では対象画の指定方法として対象画が形成されたパッケージをテーブル140aに載置する例を説明したが、対象画の指定方法はかかる例に限定されない。例えば、ユーザは、出力部130によりテーブル140aに出力されるウェブサイトに含まれる画像を対象画として指定することも可能である。また、上記では対象画の一例としてキャラクター画を説明したが、対象画は、乗物、風景、地図またはおもちゃなどの画像であってもよい。
(G:日常補助アプリケーション)
日常補助アプリケーションは、学習、趣味および作業などユーザにより日常的に行われる行為を補助するためのアプリケーションである。例えば、日常補助アプリケーションは、実空間に存在する物体に、ユーザにとって有用な情報表示を出力部130に投影させることにより、ユーザによる行為を補助することができる。以下、図139〜図143を参照し、より具体的に説明する。
図139〜図143は、日常補助アプリケーションによるユーザ補助の具体例を示した説明図である。図139に示したように、日常補助アプリケーションは、熨斗袋にお手本となる文字を出力部130に投影させ得る。ユーザは、投影された文字を例えば筆ペンでなぞることにより、綺麗な文字を書くことができる。なお、お手本となる文字はユーザが自由に指定することが可能である。また、図140に示したように、日常補助アプリケーションは、ナイフやフォークが並べられたテーブル140aにナイフやフォークの使い方を示す情報表示を、皿に料理を示す表示を出力部130に投影させ得る。ユーザは、投影された情報表示に沿ってナイフやフォークを使うことにより、テーブルマナーを習得することができる。
また、図141に示したように、日常補助アプリケーションは、スケッチブック、絵の具および筆などが用意されたテーブル140aに、お手本となる絵および描画方法などを示す情報表示を出力部130に投影させ得る。ユーザは、投影された情報表示に沿って筆および絵の具により絵を描くことにより、上手な絵を完成させることができる。また、図142に示したように、日常補助アプリケーションは、ホールケーキを等分するための補助線を出力部130に投影させ得る。ユーザは、投影された補助線に沿ってホールケーキを切ることにより、等しい大きさのケーキを得ることができる。なお、日常補助アプリケーションは、ユーザにより指定された等分数、ホールケーキの形状および大きさに基づいて適切な補助線を特定してもよい。
また、図143に示したように、日常補助アプリケーションは、ユーザにより問題に対する答案が記載されたプリントや冊子などの媒体の撮像画像から、答案の自動採点を行い、採点結果を出力部130に投影させ得る。ユーザは、投影される採点結果に基づき、答案の正否および点数などを確認することが可能である。なお、日常補助アプリケーションは、媒体に形成された識別情報を認識し、当該識別情報に関連付けて記憶されている解答とユーザの答案を比較することにより、自動採点を実行してもよい。
(H:食卓演出アプリケーション)
食卓演出アプリケーションは、食卓を演出により彩るためのアプリケーションである。例えば、食卓演出アプリケーションは、食卓の撮像画像から食卓に存在する物体を認識し、物体に対して物体に応じた表示を出力部130に投影させ得る。以下、図144を参照して具体的に説明する。
図144は、食卓演出アプリケーションの具体例を示した説明図である。食卓演出アプリケーションは、食卓の例えば距離画像に基づき食卓に存在する物体を認識し、図144に示したように、例えば皿には「Happy Birthday!」という表示を出力部130に投影させ、テーブルには星の表示を出力部130に投影させてもよい。かかる構成により食卓の彩りを向上し、明るい食卓を支援することが可能となる。
(I:料理推薦アプリケーション)
料理推薦アプリケーションは、ユーザに料理を推薦するためのアプリケーションである。例えば、料理推薦アプリケーションは、食卓の撮像画像から食卓上の料理を認識し、認識結果に基づいて料理の栄養バランスを計算し、不足している栄養素を補う料理を推薦し得る。例えば、図145に示したように、食卓上の料理に野菜が不足している場合、料理推薦アプリケーションは、ビタミンおよび食物繊維などが不足していることを認識し、ビタミンおよび食物繊維などの栄養素を補い得るシーザーサラダを推薦する表示およびシーザーサラダの画像を出力部130に投影させてもよい。また、料理推薦アプリケーションは、コップに入った飲料の残量および料理の残量等を、深度情報を用いて認識することで、食事の進捗に応じて追加の料理を推薦してもよい。かかる構成により、ユーザによるバランスの良い食事を支援すると共に、飲食店などにおいては追加注文による売上げの向上が期待される。
(J:ムード演出アプリケーション)
ムード演出アプリケーションは、料理に応じた演出を出力部130に投影させるためのアプリケーションである。例えば、ムード演出アプリケーションは、食卓の撮像画像から食卓上の料理を認識し、料理と親和性のあるオブジェクトの画像を出力部130に投影させ得る。具体例として、食卓上の料理が御節料理である場合、ムード演出アプリケーションは松竹梅の画像を出力部130に投影させてもよい。また、食卓上の料理が素麺である場合、ムード演出アプリケーションは川床または小川の画像を出力部130に投影させてもよい。かかる構成により、料理に応じた食卓のムードを一層高めることが可能である。
(K:食器エフェクトアプリケーション)
食器エフェクトアプリケーションは、食卓への食器の載置に応じてエフェクトを発生させるためのアプリケーションである。例えば、食器エフェクトアプリケーションは、食卓に置かれた食器の種別を認識し、種別に応じた表示エフェクトおよび音を出力部130に出力させてもよい。以下、図146を参照してより具体的に説明する。
図146は、食器エフェクトアプリケーションの具体例を示した説明図である。図146に示したように、ユーザが食卓にコップを置くと、食器エフェクトアプリケーションは、出力部130にコップから広がる波紋の表示を出力部130に投影させ、出力部130にコップに応じた音を出力させてもよい。上述したように食器に応じて出力される音は異なるが、食器エフェクトアプリケーション、図146に示したように複数の食器が近接されると、出力部130に出力させる音を変化させてもよい。また、食器エフェクトアプリケーションは、泳ぐ魚の表示を出力部130に投影させており、ユーザが魚の表示を捉えるアクションを行うと、出力部130に所定の音を出力させてもよい。
上記のように、食器エフェクトアプリケーションは、食卓への食器の載置に応じてエフェクトを発生させることにより、食卓に新たな楽しみをもたらすことが可能である。
(L:部屋間連携アプリケーション)
部屋間連携アプリケーションは、複数の部屋に情報処理システム100が設置されている場合に、ユーザが使用していたアプリケーションを部屋間で共有及び連携するアプリケーションである。例えば、ユーザの自室に設置された情報処理システム100は、ユーザが居間で使用していたアプリケーションの情報を取得して、ユーザが自室に移動した後、居間での使用の続きからアプリケーションを使用可能にする。以下、図147を参照してより具体的に説明する。
図147は、部屋間連携アプリケーションの具体例を示した説明図である。図147に示すように、部屋間連携アプリケーションは、各アプリケーションの使用時刻、および使用場所(投影場所)の履歴情報を記憶しておき、記憶した履歴情報をユーザに提示する。図147に示した「All Apps」では、画面を投影する情報処理システム100にインストールされている全てのアプリケーションが列挙されている。「Your Apps」では、現時刻において、該投影面でユーザが使用する頻度が高いアプリケーションが列挙されている。「Recent Apps」では、他の部屋に設置された情報処理システム100も含めて、最近ユーザにより使用されたアプリケーションが列挙されている。ユーザは、図147に示した画面からアイコンを選択することで、所望のアプリケーションを起動することができる。部屋間連携アプリケーションは、このような画面を投影することにより、ユーザによるアプリケーションの選択を支援することができる。
また、部屋間連携アプリケーションは、部屋間でユーザの履歴情報を共有することが可能である。部屋間連携アプリケーションは、他の部屋で記憶された履歴情報を参照して、他の部屋で使用されていたアプリケーションを、ユーザが部屋を移動した後も継続して提供する。例えば、ユーザが居間に設置された情報処理システム100で料理レシピを選択した場合、ユーザがキッチンに移動するとキッチンに設置された情報処理システム100により、選択された料理レシピが投影される。これにより、ユーザは、部屋移動後も同一アプリケーションを継続して使用することができる。
[例1]
ここでは、投影面やアプリケーションの状態に応じた照明制御処理の例を説明する。
プロジェクタを使用して机やスクリーンなどの投影面に映像を投影する際に、照明や外部光の明るさといった環境的な要因により、プロジェクタの映像が不鮮明になる場合がある。プロジェクタの映像が不鮮明になった場合、映像を鮮明にするには、部屋全体を暗くしたり、投影面付近の照明だけを消したりするなどの作業をユーザに強いることになり、ユーザの利便性が損なわれる。
そこで以下においては、投影面やアプリケーションの状態を取得し、投影面の状況に応じて自動的に照明を制御することで、ユーザに照明を調整する作業を行わせること無く、プロジェクタの映像を投影面に鮮明に表示させる照明制御処理について説明する。
図148は、本開示の一実施形態にかかる情報処理システム100の動作例を示す流れ図である。以下、図148を用いて本開示の一実施形態にかかる情報処理システム100の動作例について説明する。なお以下の説明では、情報処理システム100aが図1に示したようなプロジェクション型である場合であり、かつ出力部130aに照明機器が含まれている場合について示す。また以下の例では、照明機器は、情報の表示を伴うプロジェクタとは異なり、情報の表示を伴わずに単純に照明としての機能を有する機器であるとして説明する。
最初に、図148に示した流れ図における用語の定義について説明する。照明マップとは、照明機器の照明制御可能単位をマップにしたものであり、照明機器の形態、例えば照明の数に応じてセル数が決定される。各セルの数値は照明強度で、0が照明出力無し、100が照明出力の最大値である。
図149は、照明マップの例を示す説明図である。図149には、3つのパターンが図示されている。図149に示されているのは、照明機器3010に照明が1つだけ設置されている場合、照明が正方形状に4つ設置されている場合、照明が長方形状に8つ並べて設置されている場合の、照明マップ3011の例である。
図149の例においては、照明機器3010に照明が1つだけ設置されている場合は、照明マップのセルの数は1つである。また照明機器3010に照明が正方形状に4つ設置されている場合は、照明マップのセルの数は4つである。また照明機器3010に照明が長方形状に8つ並べて設置されている場合は、照明マップのセルの数は8つである。もちろん照明機器3010の照明の配置パターンや、照明マップにおけるセルのパターンはかかる例に限定されるものではない。
環境マップとは、環境光の取得可能単位をマップにしたものであり、環境光の取得単位に応じてセル数が決定される。環境マップのセル数を規定する環境光の取得単位は、例えば照度センサの配置場所や、投影面を撮像する撮像装置の画素値等がある。
環境マップの各セルの数値は照明マップの各セルの数値に正規化される。環境マップの各セルの数値が照明マップの各セルの数値に正規化されることで、環境光の照度と、照明の明るさとが対応付けられる。
情報処理システム100は、環境光の照度の取得方法について様々な方法を採り得る。例えば、入力部110のカメラで投影面を撮像して得られる画像の画素値から環境光の照度を算出してもよく、入力部110に照度センサを設けて、照度センサの値から環境光の照度を得るようにしても良い。
図150は、環境マップの例を示す説明図である。図150には、3つのパターンが図示されている。図150に示されているのは、環境光を取得する照度センサ3020にセンサが1つだけ設置されている場合、照度センサ3020にセンサが正方形状に4つ設置されている場合、照度センサ3020にセンサが同一方向に3つ並べて設置されている場合の、環境マップ3021の例である。
図150の例においては、照度センサ3020にセンサが1つだけ設置されている場合、環境マップのセルの数は1つである。また照度センサ3020にセンサが正方形状に4つ設置されている場合、環境マップのセルの数は4つである。また照度センサ3020にセンサが同一方向に3つ並べて設置されている場合、環境マップのセルの数は3つである。もちろん照度センサ3020のセンサの配置パターンや、環境マップにおけるセルのパターンはかかる例に限定されるものではない。
照明マップと環境マップとの対応付けについて説明する。図151は、照明マップと環境マップとの対応付けの例を示す説明図である。
図151には、照明が長方形状に8つ並べて設置されている照明機器3010と、センサが同一方向に3つ並べて設置されている照度センサ3020との構成における、照明マップと環境マップとの対応付けの例が示されている。
照度センサ3020にセンサが同一方向に3つ並べて設置されている場合の、環境マップ3021のセルの数は3つであり、各セルをA00、A01、A02と規定する。本実施形態では、この環境マップのセルの数を、照明マップのセルの数に合わせることで、照明マップと環境マップとの対応付けを行う。変換後の環境マップ3021’では、セルが3つから8つに変換される。変換後の各セルをB00〜B03及びB10〜B13と規定する。この変換の際の変換式は、例えば以下のように規定され得る。
B00=B10=A00
B01=B11=0.5×A00+0.5×A01
B02=B12=0.5×A01+0.5×A02
B03=B13=A02
本開示の一実施形態にかかる情報処理システム100は、このように環境マップのセルの数を照明マップのセルの数に合わせることで、変換後の環境マップの各セルの値に基づいた照明機器3010の制御が可能になる。
続いて図148に示した流れ図の詳細な説明を行う。まず情報処理システム100は、照明マップの各セルに、システム設定の値を設定する(ステップS3001)。ステップS3001の処理は例えば制御部120が実行し得る。ステップS3001では、例えば図148に示した処理の開始時点で情報処理システム100のユーザによって設定された照明機器3010の照明の明るさが、0から100の範囲で照明マップの各セルに設定される。
上記ステップS3001で照明マップの各セルにシステム設定の値を設定すると、続いて情報処理システム100は、管理しているアプリケーションの実行状態を取得し、処理していないアプリケーションが存在するかを判定する(ステップS3002)。ステップS3002の判定は例えば制御部120が実行し得る。
上記ステップS3002の判定の結果、処理していないアプリケーションが存在する場合は(ステップS3002、Yes)、続いて情報処理システム100は、未処理アプリケーションのうち、一番奥に描画されているものを取得する(ステップS3003)。一番奥のものから処理を行うことで、情報処理システム100は、より手前のアプリケーションの値を照明マップへ反映することが可能となる。
上記ステップS3003の処理が終わると、続いて情報処理システム100は、アプリケーション照明対応表より、該当アプリケーションが定義されているかを確認する(ステップS3004)。ステップS3004の処理は例えば制御部120が実行し得る。
アプリケーション照明対応表は、情報処理システム100が実行するアプリケーションと、そのアプリケーションを実行する際の明るさ(照明機器3010の照明光と、環境光とを合わせて実現する明るさ)とが対応付けられた表である。アプリケーション照明対応表にアプリケーションが定義されていない場合は、そのアプリケーションが特別な照明制御を必要としておらず、システム設定や他のアプリケーションの照明設定下でも利用可能であることを意味している。
図152は、アプリケーション照明対応表の例を示す説明図である。情報処理システム100は、図152に示したアプリケーション照明対応表を参照することで、処理対象のアプリケーションを実行する際の照明機器3010の明るさを知ることが出来る。例えば、「シネマ動画プレーヤー」は、映画の没入感を演出するために明るさを0にすることが、図152に示したアプリケーション照明対応表から分かる。
またアプリケーション照明対応表は、各アプリケーションが、照明機器3010の明るさを制御する際にユーザへ通知するか否かの情報を有していても良い。例えば「シネマ動画プレーヤー」は、照明機器3010の明るさを制御する際にユーザへの通知は不要であるが、「子供動画プレーヤー」は、照明機器3010の明るさを制御する際にユーザへの通知が必要であることが、図152に示したアプリケーション照明対応表から分かる。
上記ステップS3004の判断の結果、該当アプリケーションがアプリケーション照明対応表に定義されていなかった場合は(ステップS3004、No)、情報処理システム100は、当該アプリケーションを処理済みにして、上記ステップS3002の処理に戻る。一方、上記ステップS3004の判断の結果、該当アプリケーションがアプリケーション照明対応表に定義されていた場合は(ステップS3004、Yes)、情報処理システム100は、アプリケーション照明対応表から当該アプリケーションの明るさの値を取得する(ステップS3005)。ステップS3005の処理は例えば制御部120が実行し得る。
上記ステップS3005の処理が終わると、続いて情報処理システム100は、プロジェクタによる表示領域におけるアプリケーションの表示エリアを取得する(ステップS3006)。ステップS3006の処理は例えば制御部120が実行し得る。ここで、アプリケーションが存在はするがアイコン化している場合など、表示エリアが存在しない場合は、情報処理システム100は、そのアプリケーションを処理対象としないようにしてもよい。
上記ステップS3006の処理が終わると、続いて情報処理システム100は、照明マップのうち、上記ステップS3006で取得した表示エリアに該当するセルに、アプリケーション対応表で取得された値を設定する(ステップS3007)。ステップS3007の処理は例えば制御部120が実行し得る。上記ステップS3007の処理が終わると、当該アプリケーションを処理済みにして、上記ステップS3002の処理に戻る。
上記ステップS3002の判定の結果、処理していないアプリケーションが存在しない場合は(ステップS3002、No)、続いて情報処理システム100は、環境光を取得し、環境マップへ値を設定する(ステップS3008)。ステップS3008の処理は例えば制御部120が実行し得る。
情報処理システム100は、ステップS3008の環境マップへの値の設定処理の際に、環境光(または照明機器3010の照度)の値を、照明出力(明るさ)の値へ正規化する。照明機器3010のどの照明をどの程度(0〜100%)で出力すれば、その照明の下がどの程度の照度になるかは、予め工場出荷時に対応付けが行われていてもよい。
上記ステップS3008の処理が終わると、続いて情報処理システム100は、照明マップの範囲に対して環境マップがどの程度の影響を及ぼしているかの対応付けを行う(ステップS3009)。ステップS3009の処理は例えば制御部120が実行し得る。この照明マップと環境マップとの対応付けは、上述したように照明マップのセルの数と環境マップのセルの数とを一致させることで行われる。なお、照明マップと環境マップとの対応付けは、予め工場出荷時に行われていてもよい。
上記ステップS3009の処理が終わると、続いて情報処理システム100は、照明マップの未処理セルが存在するかを判定する(ステップS3010)。ステップS3010の処理は例えば制御部120が実行し得る。照明マップの処理の順番は、例えば照明マップのセルに割り当てられた番号の若い順からであってもよい。
上記ステップS3010の判定の結果、未処理セルが存在していれば(ステップS3010、Yes)、情報処理システム100は、照明マップの処理対象のセルの値と、当該セルに対応する環境光の値(環境マップのセルの値)とを比較する。そして情報処理システム100は、照明マップの処理対象のセルに対応する環境光の値が照明マップの処理対象のセルの値以下であるかどうかを判定する(ステップS3011)。ステップS3010の処理は例えば制御部120が実行し得る。
上記ステップS3011の判定の結果、照明マップの処理対象のセルに対応する環境光の値が照明マップの処理対象のセルの値以下であれば(ステップS3011、Yes)、環境光だけではアプリケーションが必要な明るさに達していないことを意味するので、情報処理システム100は、照明マップの処理対象のセルの値から環境光の値を引いたものを、当該セルの新たな照明値として設定する(ステップS3012)。ステップS3010の処理は例えば出力制御部122が実行し得る。
一方、上記ステップS3011の判定の結果、照明マップの処理対象のセルに対応する環境光の値が照明マップの処理対象のセルの値より大きければ(ステップS3011、No)、環境光だけでアプリケーションが必要な明るさを超えてしまっていることを意味するので、情報処理システム100は、照明マップの処理対象のセルの値を0として設定する(ステップS3013)。ステップS3013の処理は例えば出力制御部122が実行し得る。
上記ステップS3013の処理が終わると、続いて情報処理システム100は、環境光だけでアプリケーションが必要な明るさを超えてしまっている場合に通知が必要なアプリケーションに対してのみ通知を行うため、アプリケーション照明対応表に、処理対象のアプリケーションについて通知設定がなされているかどうかの判定を行う(ステップS3014)。ステップS3014の処理は例えば出力制御部122が実行し得る。
上記ステップS3014の判定の結果、アプリケーション照明対応表に、処理対象のアプリケーションについて通知設定がなされていた場合は(ステップS3014、Yes)、続いて情報処理システム100は、処理対象のアプリケーションに対してアプリケーションに対して通知を行う(ステップS3015)。ステップS3015の処理は例えば出力制御部122が実行し得る。
上記ステップS3015で通知を受け取ったアプリケーションは、例えば「周囲が明るすぎます。環境を暗くしてください」、「想定より明るいため認識精度が落ちる可能性があります」などのメッセージを表示したり音声を出力したりするなどの通知処理を行う。
一方、上記ステップS3014の判定の結果、アプリケーション照明対応表に、処理対象のアプリケーションについて通知設定がなされていなかった場合は(ステップS3014、No)、情報処理システム100は、照明マップの処理対象のセルを処理済みにして、上記ステップS3010の処理に戻る。
上記ステップS3010の判定の結果、未処理セルが存在しなくなれば(ステップS3010、No)、続いて情報処理システム100は、上述の一連の処理によって設定された照明マップの値を出力部130に設定する(ステップS3016)。ステップS3016の処理は例えば出力制御部122が実行し得る。出力部130は、照明マップの値に基づいて、照明機器3010の各照明の明るさを制御する。
本開示の一実施形態に係る情報処理システム100は、上述した一連の動作を実行することで、実行されるアプリケーションや環境光の明るさといった投影面の状況に応じた照明制御を行うことが出来る。本開示の一実施形態に係る情報処理システム100は、投影面の状況に応じた照明制御を行うことで、ユーザの目的に応じて照明を最適化することができる。
図148に示した流れ図における、ステップS3008の環境光の取得処理は、情報処理システム100でのアプリケーションの起動時に一度実行されてもよく、情報処理システム100の起動中に定期的に実行されるようにしてもよい。
以下では、具体的なアプリケーションを例示して、実行されるアプリケーションや環境光の明るさといった投影面の状況に応じた照明制御について説明する。
(例1)シネマ動画プレーヤー
シネマ動画プレーヤーは、映画の没入感を演出するために、コンテンツの出力時に暗くなるアプリケーションである。図153は、情報処理システム100がシネマ動画プレーヤーを実行する際の照明マップ3011及び環境マップ3021’の値の例を示す説明図である。シネマ動画プレーヤーを実行しようとする際の照明マップ3011及び環境マップ3021’の各セルの値が図153の(1)で示す様に取得されたとする。
図152で示したアプリケーション照明対応表を参照すると、シネマ動画プレーヤーの明るさは0と規定されている。従って情報処理システム100は、照明機器3010の照明を消灯させることで、アプリケーション照明対応表で規定されているシネマ動画プレーヤーの明るさを実現する。照明機器3010の照明を消灯させた際の照明マップ3011及び環境マップ3021’の各セルの値は、例えば図153の(2)で示した様になる。
(例2)子供動画プレーヤー
子供動画プレーヤーは、アニメーションなどを子供に暗い所で見させないために、コンテンツの出力時に明るくなるアプリケーションである。図154は、情報処理システム100が子供動画プレーヤーを実行する際の照明マップ3011及び環境マップ3021’の例を示す説明図である。子供動画プレーヤーを実行しようとする際の照明マップ3011及び環境マップ3021’の各セルの値が図154の(1)で示す様に取得されたとする。
図152で示したアプリケーション照明対応表を参照すると、子供動画プレーヤーの明るさは80と規定されている。従って情報処理システム100は、照明機器3010の照明を点灯させることで、アプリケーション照明対応表で規定されている子供動画プレーヤーの明るさを実現する。照明機器3010の照明を点灯させた際の照明マップ3011及び環境マップ3021’の各セルの値は、例えば図154の(2)で示した様になる。
照明機器3010の照明を点灯させて明るさがアプリケーション照明対応表で規定された明るさになると、情報処理システム100は、明るさがアプリケーション照明対応表で規定された明るさになったことを子供動画プレーヤーに通知する。通知を受けた子供動画プレーヤーは、子供がコンテンツを見る際に安全な環境になった準備ができたと判断し、コンテンツの再生を開始する。
なお、図152で示したアプリケーション照明対応表を参照すると、子供動画プレーヤーは通知が「必要」と規定されている。従って照明機器3010を制御しても明るさが不足している場合は、情報処理システム100は、例えば子供動画プレーヤーに対して明るさが不足していることを通知し、通知を受けた子供動画プレーヤーは、「周囲を明るくしてね」等と表示することで、部屋の電気をつけるようにユーザに促す。
なお、窓から入ってくる外光が存在する場合は、情報処理システム100は、その外光を環境マップ3021’に反映させる。図155は、外光を環境マップ3021’に反映させた場合の例を示す説明図である。図155では、環境マップ3021’の左上部分が外光に影響を受けて値が大きくなっている例が示されている。
(例3)キャンドルアプリケーション
キャンドルアプリケーションは、テーブルなどの投影面上にキャンドルの映像を投影するアプリケーションである。図156は、情報処理システム100がキャンドルアプリケーションを実行する際の照明マップ3011及び環境マップ3021’の例を示す説明図である。キャンドルアプリケーションを実行しようとする際の照明マップ3011及び環境マップ3021’の各セルの値が図156の(1)で示す様に取得されたとする。
図152で示したアプリケーション照明対応表を参照すると、キャンドルアプリケーションの明るさは20と規定されている。従って情報処理システム100は、照明機器3010の照明を消灯させることで、アプリケーション照明対応表で規定されているキャンドルアプリケーションの明るさを実現する。照明機器3010の照明を点灯させた際の照明マップ3011及び環境マップ3021’の各セルの値は、例えば図154の(2)で示した様になる。
しかし図156で示した例では、照明機器3010の照明を消灯させても、環境マップ3021’の各セルの値が50となり、アプリケーション照明対応表で規定されているキャンドルアプリケーションの明るさを実現することが出来ない。図152で示したアプリケーション照明対応表を参照すると、キャンドルアプリケーションは通知が「必要」と規定されている。
従って照明機器3010を制御しても明るさがオーバーしている場合は、情報処理システム100は、例えばキャンドルアプリケーションに対して明るさがオーバーしていることを通知する。情報処理システム100からの通知を受けたキャンドルアプリケーションは、「周囲が明るすぎます。環境を暗くして下さい」等と表示することで、カーテンを閉める等して環境光を暗くするようにユーザに促す。
(例4)プロジェクションマッピングアプリケーション
プロジェクションマッピングアプリケーションは、部屋の壁面や物体に画像を投影することを目的としたアプリケーションである。プロジェクションマッピングアプリケーションを実行する際には、ユーザは投影面上に例えばミラー状の半球体を設置して、出力部130のプロジェクタから出力される画像をその半球体に反射させる。出力部130のプロジェクタから出力される画像をミラー状の半球体に反射させることで、部屋の壁面や物体に画像を投影することができる。
図152で示したアプリケーション照明対応表を参照すると、プロジェクションマッピングアプリケーションの明るさは0と規定されている。従って情報処理システム100は、照明機器3010の照明を消灯させることで、アプリケーション照明対応表で規定されているプロジェクションマッピングアプリケーションの明るさを実現する。
プロジェクションマッピングアプリケーションとしては、例えば部屋の壁面に星空の画像を投影するプラネタリウムアプリケーション、投影面上に設置した和紙に映像を投影することで走馬灯を実現する走馬灯アプリケーション等がある。以下ではプロジェクションマッピングアプリケーションとして、このプラネタリウムアプリケーション及び走馬灯アプリケーションを例に挙げて説明する。
図157は、アプリケーションの具体例を示す説明図であり、プラネタリウムアプリケーションについて説明する説明図である。図157の(a)は、出力部130のプロジェクタから出力される画像の一例を示している。図157の(b)及び(c)は、出力部130のプロジェクタから出力される画像が、投影面上に設置された、表面がミラー状の半球体3110に反射される様子を示している。図157の(d)は、出力部130のプロジェクタから出力される画像が半球体3110で反射され、部屋の壁面に投影されている状態の一例を示している。
図158は、アプリケーションの具体例を示す説明図であり、走馬灯アプリケーションについて説明する説明図である。図158の(a)は、出力部130のプロジェクタから出力される画像の一例を示している。図157の(b)、(c)、(d)は、出力部130のプロジェクタから出力される画像が、投影面上に設置された、表面がミラー状の半球体3110に反射され、和紙3120に投影される様子を示している。
(例5)地球儀アプリケーション
地球儀アプリケーションは、投影面に設置された半球体に画像を投影することで地球儀を表現することを目的としたアプリケーションである。地球儀アプリケーションを実行する際には、ユーザは投影面上に例えばマット状の半球体を設置して、出力部130のプロジェクタから出力される画像をその半球体に投影させる。出力部130のプロジェクタから出力される画像をマット状の半球体に投影させることで、その半球体で地球儀を表現することができる。
図159は、アプリケーションの具体例を示す説明図であり、地球儀アプリケーションについて説明する説明図である。図159の(a)は、出力部130のプロジェクタから出力される画像の一例を示している。図159の(b)は、出力部130のプロジェクタから出力される画像が、投影面上に設置された、表面がマット状の半球体3120に反射される様子を示している。図159の(c)は、出力部130のプロジェクタから出力される画像がマット状の半球体3120に投影されて、マット状の半球体3120が地球儀として表現されているとともに、地球儀と関連付けて様々な情報が投影面に投影されている状態の一例を示している。
(例6)モバイル端末の画面認識アプリケーション
モバイル端末の画面認識アプリケーションは、投影面に設置されたモバイル端末の画面を入力部110のカメラで認識し、認識した画面に応じた処理を実行するためのアプリケーションである。モバイル端末の画面を認識する際には、照明機器3010の照明を消灯して真っ暗にすると、入力部110のカメラで画面が認識しやすくなる。
しかし、照明機器3010の照明を消灯して真っ暗にしてしまうと、入力部110のカメラのダイナミックレンジによっては、画面が白飛びしてしまう。
従って本実施形態では、発光している画面を認識しやすくするために、照明機器3010の照明を消灯するのではなく、図152のアプリケーション照明対応表で示したように、ハイライト低減を目的として、照明機器3010の照明を暗めに設定している。
図160は、アプリケーションの具体例を示す説明図であり、モバイル端末の画面認識アプリケーションについて説明する説明図である。図160では、モバイル端末3130の画面を入力部110のカメラで認識し、そのモバイル端末3130の画面に応じた情報を出力部130のプロジェクタが投影している様子が示されている。
(例7)食品パッケージ認識アプリケーション
食品パッケージ認識アプリケーションは、投影面に設置された食品パッケージの表面を入力部110のカメラで認識し、認識した食品パッケージに応じた処理を実行するためのアプリケーションである。食品パッケージを認識する際には、照明機器3010の照明を点灯して明るくすると、入力部110のカメラで反射物である食品パッケージが認識しやすくなる。
図161は、アプリケーションの具体例を示す説明図であり、食品パッケージ認識アプリケーションについて説明する説明図である。図161では、食品パッケージ3140、3150の表面を入力部110のカメラで認識し、その食品パッケージ3140、3150の画面に応じた情報を出力部130のプロジェクタが投影している様子が示されている。
(例8)一般物体認識アプリケーション
一般物体認識アプリケーションは、投影面に設置された物体の表面を入力部110のカメラで認識し、認識した物体に応じた処理を実行するためのアプリケーションである。物体を認識する際には、投影面にどんな物体が置かれるか事前に分からないので、照明機器3010の照明を半分ぐらい明るくする。照明機器3010の照明を半分ぐらい明るくすることで、入力部110のカメラで物体の表面が認識しやすくなる。
図162は、アプリケーションの具体例を示す説明図であり、一般物体認識アプリケーションについて説明する説明図である。図162では、一般物体3160、3170の表面を入力部110のカメラで認識し、その一般物体3160、3170の画面に応じた情報を出力部130のプロジェクタが投影している様子が示されている。
本実施形態に係る情報処理システム100は、投影面の利用状況に応じて照明制御を行うことで、ユーザの目的毎に照明を最適化することが可能になる。本実施形態に係る情報処理システム100は、セルとして分割された環境マップ及び照明マップを用いて照明制御を行うことで、投影面の必要な箇所のみ照明を調整することが出来る。投影面の必要な箇所のみ照明を調整することで、複数のユーザが、出力部130のプロジェクタが投影面へ投影するコンテンツに対し、それぞれストレスなく異なる作業を行うことが可能になる。
本実施形態に係る情報処理システム100は、投影面でアプリケーションを実行している部分を検出し照明を調整することで、映像を鮮明化させることが可能になる。例えば、投影面において食事をしている部分を入力部110で検出し、照明機器3010の照明の明るさを調整することで、食事をしている周辺の明るさが暗くなることを防止できる。
本実施形態に係る情報処理システム100は、一般物体認識アプリケーションを実行する際に照明制御を行い、認識精度を向上させることが出来る。本実施形態に係る情報処理システム100は、認識対象の物体に応じて照明機器3010の制御方法を変化させることにより、投影面に置かれた物体の認識精度を向上させることが可能となる。
本実施形態に係る情報処理システム100は、出力部130から出力するコンテンツの属性情報やメタ情報に基づいて明るさを制御してもよい。例えば、出力するコンテンツの属性情報が子供向けのアニメーションであると設定されていれば、情報処理システム100は、明るくするように照明機器3010を制御し、大人向けの映画であると設定されていれば、情報処理システム100は、暗くするように照明機器3010の照明の明るさを制御してもよい。
情報処理システム100は、このように出力するコンテンツの属性情報やメタ情報に基づいて明るさを制御することで、同じアプリケーションであってもコンテンツごとに明るさを変化させることが可能になる。
情報処理システム100は、照明機器3010の照明の明るさを制御する際に、いきなり目的の明るさとなるような制御を行なっても良いが、その他にも、徐々に明るく、または暗くするようにして、最終的に目標の明るさに到達するように、制御を行なっても良い。
[例2]
ここでは、投影面において特定条件を満たした場合に、予め設定された機能を発火する処理の例を説明する。アプリケーションの機能を発火させる条件は、通常はそのアプリケーションを提供するベンダーのみが設定可能であった。また、利用環境によっては、アプリケーションで定義された挙動では機能が発火しない場合もあった。また、利用環境によっては、アプリケーションで定義された挙動では機能しない場合もあった。
そこで、本実施形態に係る情報処理システム100では、発火させる機能と発火の条件とをユーザにより自由に設定可能にした。本実施形態に係る情報処理システム100は、発火させる機能と発火の条件とをユーザにより自由に設定可能とすることで、様々な演出の表現が可能になる。
テーブル140aにはユーザごとに様々な物体が置かれ、様々なインタラクションがテーブル140a上で日々行われている。本実施形態に係る情報処理システム100は、そのインタラクションを機能発火のきっかけとしてユーザに利用させる。そして。本実施形態に係る情報処理システム100は、機能発火の際に使用されるデータを、インタラクションの発生に応じて、機能発火時に実行される処理(Action)に渡す。
本実施形態に係る情報処理システム100が機能発火の条件(トリガー)として用いるインタラクションは、例えば以下の様なものがある。もちろん、インタラクションは以下で示したものに限定されるものではない。
・テーブル面の音を拾う
・ユーザが作成したARマーカーを認識する
・デプス情報を認識する
・テーブル面の明るさを検知する
・テーブル面の手の状態を認識する
・テーブル面に置かれた機器を認識する
・所定時刻に達する
・温度を検知する
・二酸化炭素濃度を検知する
・匂いを検知する
・水蒸気を検知する
・湿度を検知する
テーブル面の音を拾う場合のトリガーの例としては次のようなものがある。
・音のパターンの検知(例えばユーザが「こつ、こつ、こつ」と3回拳でテーブル140aの面を叩いた音を録音する)
・音量の変化の検知(例えば所定の閾値以上の音を情報処理システム100が収音する)
・音の鳴動時間の検知(例えば無音時間が所定時間継続したことを情報処理システム100が検知する)
・音の鳴動方向の検知
音のパターンを検知する場合にActionに渡すデータとしては、例えば検知したパターンを識別するためのID情報がある。音量の変化、音の鳴動時間、音の鳴動方向を検知する場合にActionに渡すデータとしては、例えば音量、鳴動時間、鳴動方向等がある。
ユーザが作成したARマーカーを認識する場合のトリガーの例としては次のようなものがある。
・ARマーカーの発見(例えばユーザが登録したマーカーを、テーブル面全体の中のいずれか、または予め登録した領域で情報処理システム100が発見する)
・ARマーカーのロスト(例えばユーザが登録したマーカーを情報処理システム100が見失う)
ARマーカーの発見の場合にActionに渡すデータとしては、例えば発見したマーカーのID情報、発見した座標、発見した姿勢、発見した大きさ、発見した時刻などがある。発見していたARマーカーのロストの場合にActionに渡すデータとしては、例えば見失ったマーカーのID情報、マーカーを最後に見つけた座標、最後に見つけた姿勢、最後に見つけた大きさ、見失った時刻などがある。
デプス情報を認識する場合のトリガーの例としては次のようなものがある。
・塊の認識(例えば、テーブル面全体の中のいずれか、または予め登録した領域で所定量の塊が増えた、または減ったことを検出する)
・テーブル面上の物の配置の認識(例えば、事前に登録したデプスマップと一致した状態になったら、または一致した状態にならなくなったら。デプスマップはRGB画像と組み合わせられても良い)
・標準平面からの変化の検知(例えば、所定時間以上何も置かれていない状態になっていなかったら)
・動きの検出(例えば、テーブル面全体の中のいずれか、または予め登録した領域で活発に動いている物体を検出する)
塊の認識の場合にActionに渡すデータとしては、例えば発見した塊の場所、塊の面積、塊の体積、認識した時刻などがある。テーブル面上の物の配置の認識の場合にActionに渡すデータとしては、例えば配置に変化のあった場所、変化のあった時刻、変化量(面積または体積)などがある。標準平面からの変化の検知の場合にActionに渡すデータとしては、例えば標準状態から変化している物の外形、位置、面積、体積、その物が初めて置かれた日時などがある。動きの検出の場合にActionに渡すデータとしては、例えば動きの活発さ、主に動きのあった領域の座標や面積、動きのあった日時などがある。なお動きの活発さは、例えば動きのあった面積と、動きの速さとを乗じて求められる指標である。
テーブル面の明るさを検知する場合のトリガーの例としては次のようなものがある。
・明るさの変化の検出(例えば、予め設定された閾値以上に明るく、または暗くなったことを検出する)
明るさの変化の検出の場合にActionに渡すデータとしては、例えば明るさの情報がある。
テーブル面の手の状態を認識する場合のトリガーの例としては次のようなものがある。
・手の本数(例えば、手の本数が所定時間以上、所定本数を超えていることを検出する)
・手がテーブル面上に入っている時間
・手の位置(例えば、手が予め登録した領域に入っていることを検出する)
手の本数の認識の場合にActionに渡すデータとしては、例えば認識した手の本数、手の延べ本数、認識した手の位置などがある。
テーブル面に置かれた機器を認識する場合のトリガーの例としては次のようなものがある。
・機器の接続(例えば、情報処理システム100と機器とが接続されたこと、または情報処理システム100と機器との接続が解除されたことを検出する)
機器の接続の認識の場合にActionに渡すデータとしては、例えば認識した機器のID情報、機器の位置、機器の姿勢、機器の大きさなどがある。
所定時刻に達することを認識する場合のトリガーの例としては次のようなものがある。
・指定時刻に達する
・所定時間が経過する
指定時刻に達したことを認識する場合にActionに渡すデータとしては、例えば時刻情報などがある。所定時間が経過したことを認識する場合にActionに渡すデータとしては、例えば開始時刻、経過時間、現在時刻などがある。
温度を検知することを認識する場合のトリガーの例としては次のようなものがある。
・温度の変化(例えば、時間当たりの温度変化が所定量以上であったことを検出する)
温度の変化を検知する場合にActionに渡すデータとしては、例えば温度変化量、変化があった面積、絶対温度、検知した日時などがある。
二酸化炭素濃度を検知することを認識する場合のトリガーの例としては次のようなものがある。
・二酸化炭素濃度の変化(例えば、時間当たりの二酸化炭素濃度変化が所定量以上であったことを検出する)
二酸化炭素濃度の変化を検知する場合にActionに渡すデータとしては、例えば二酸化炭素濃度の変化量、絶対濃度、検知した日時などがある。
匂いを検知することを認識する場合のトリガーの例としては次のようなものがある。
・所定の匂い(化学物質)を検知する
匂いを検知する場合にActionに渡すデータとしては、例えば検知量、検知した日時などがある。
本開示の一実施形態に係る情報処理システム100が、上述したようなインタラクションに応じて実行する機能としては、例えば以下の様なものがある。
・映像や画像の投影
・音楽の再生
・その他アプリケーションの実行
・写真の撮像
・照明の調整
・投影画像の明るさの調整
・音量の調整
・アラートの表示
映像や画像の投影を実行する際のActionとしては、例えば投影面上への視覚効果(ビジュアルエフェクト)の投影がある。投影面上へ投影されるものとしては、例えば予め登録されたビジュアルエフェクト(爆発のエフェクトや、キラキラ光るようなエフェクトなど)の表示、ユーザによって作成されたビジュアルエフェクトの表示等がある。またビジュアルエフェクトの例としては、予めテーブル面上で録画したものであってもよく、テーブル面上でユーザが手や指を動かした軌跡に基づいて描画したものであってもよく、ペイントアプリケーションで描いたイラストやユーザがインターネットで検索して発見した画像を使用したものであってもよい。
投影面上への視覚効果(ビジュアルエフェクト)の投影のActionの実行の際にトリガーから渡されるデータの使われ方としては、例えばテーブル面を叩いた音の大きさに比例してビジュアルエフェクトの量が変化する、などがある。
音楽の再生を実行する際のActionとしては、例えば音や音楽の再生があり、具体的には、例えば予め登録された音声効果(音声エフェクト)の出力や、ユーザが登録したお気に入りの音楽の出力などがある。音や音楽の再生のActionの実行の際にトリガーから渡されるデータの使われ方としては、例えば、与えられるデータの増減を音の派手さに反映させる、などがある。
アプリケーションを起動する際のActionとしては、例えば一般的なアプリケーションの起動、引数を指定したアプリケーションの起動、複数のアプリケーションの起動、などがあり、一般的なアプリケーションの具体例としてはテレビを操作するアプリケーションや時計を表示するアプリケーションなどがあり、引数を指定したアプリケーションの起動としてはURLを指定したブラウザの起動などがあり、複数のアプリケーションの起動の具体例としては、記憶していた複数のアプリケーションの位置やウインドウサイズ、傾きを再現する、などがある。
写真を撮像する際のActionとしては、例えば投影面全体を撮像する、投影面の一部分を撮像する、などがある。写真を撮像するActionの実行の際にトリガーから渡されるデータの使われ方としては、例えば認識した手を中心とした所定の範囲を撮像する、などがある。
照明を調整する際や、投影画像の明るさを調整する際のActionとしては、例えば明るさを調整する、消灯する、などがある。明るさの調整の具体例としては、照明を明るくする、または暗くする、始点及び終点を指定してその間をある時間で移動する、などがある。照明を調整するActionの実行の際にトリガーから渡されるデータの使われ方としては、例えば渡された値を明るさに反映させる、環境光に応じて明るさを調整する、などがある。
音量を調整する際のActionとしては、例えば音量を調整する、消音する、などがある。音量の調整の具体例としては、音を大きくする、または小さくする、始点及び終点を指定してその間をある時間で移動する、などがある。音量を調整するActionの実行の際にトリガーから渡されるデータの使われ方としては、例えば渡された値を音量に反映させる、周囲の音量に応じて音量を調整する、などがある。
アラートを表示する際のActionとしては、例えばアラートメッセージを表示(投影)する、などがある。アラートを表示するActionの実行の際にトリガーから渡されるデータの使われ方としては、例えば認識した手の本数が閾値を超えると、新たに認識した手の周囲に「その手は操作できません」等のアラートメッセージを出力する、などがある。
このように、発火させる機能と発火の条件との関係は多岐に渡っており、発火させる機能と発火の条件とをユーザに簡単に設定できるようにすることが求められる。以下においては、発火させる機能と発火の条件とをユーザに設定させる際に、情報処理システム100が投影面に出力するGUIの例を説明する。
図163〜図171は、本開示の一実施形態に係る情報処理システム100が投影面に出力するGUIの例を示す説明図である。図163〜図171は、発火の条件をユーザに設定させる際のGUIの例であり、音楽のパターンを発火の条件として登録する場合のGUI3200の例である。
本開示の一実施形態に係る情報処理システム100は、発火の条件をユーザに設定させる際に、まず図163に示したように、どのチャンネルを発火の条件として使用するかをユーザに選択させるGUI3200を出力する。図163に示したGUI3200には、チャンネルとして音、マーカー、机面(テーブル140aの面)の物体が示されている。もちろん発火の条件をユーザに設定させる際に、チャンネルとして使用されるものは係る例に限定されるものではない。
ここでユーザがチャンネルとして音を選択すると、続いて情報処理システム100は、図164に示したように、ユーザにトリガーを選択させるGUI3200を出力する。図164には、トリガーとして音のパターン、音のボリューム、音の鳴動時間が示されている。もちろんトリガーとして使用されるものは係る例に限定されるものではない。
ここでユーザがトリガーとして音のパターンを選択すると、続いて情報処理システム100は、音のパターンをユーザに録音させるGUI3200を出力する。ユーザは、録音準備が整うと、図165に示した録音ボタンを触る。情報処理システム100は、ユーザの録音ボタンの操作に応じて録音を開始する。そして録音している間、情報処理システム100は、図166に示したようなGUI3200を出力する。
音の録音が完了すると、続いて情報処理システム100は、図167に示したようなGUI3200を出力する。図167に示したGUI3200は、録音が完了したこと及び録音した音をトリガーとして使用するかどうかユーザに決定させるためのGUIである。録音した音をトリガーとして使用することをユーザが選択すると、情報処理システム100は、図168に示したようなGUI3200を出力する。図168に示したGUI3200は、録音した音をユーザに再現させるためのGUIを出力する。
ユーザが録音した音を再現し、情報処理システム100がそのユーザが再現した音を音のパターンとして認識すると、情報処理システム100は、図169に示したようなGUI3200を出力する。図169に示したGUI3200は、情報処理システム100が音のパターンを認識できたことを示すGUIである。一方、ユーザが再現した音が音のパターンとして認識出来なかった場合は、情報処理システム100は、図170に示したようなGUI3200を出力する。図170に示したGUI3200は、ユーザが再現した音のパターンを情報処理システム100が認識できなかったことを示すGUIである。
音のパターンを認識できると、情報処理システム100は、図171に示したようなGUI3200を出力する。図171に示したGUI3200は、ユーザが登録した音のパターンを、情報処理システム100がトリガーとして登録したことを示すGUIである。
本開示の一実施形態に係る情報処理システム100は、図163〜図171に示したGUIを出力することで、発火させる機能と発火の条件とをユーザに簡単に設定させることが可能になる。
ここまでは、ユーザが発した音をトリガーとして登録する際の、情報処理システム100が出力するGUI3200の例を示した。続いて、ユーザが投影面に置いたマーカーをトリガーとして登録する際の、情報処理システム100が出力するGUIの例を示す。
図172〜図179は、本開示の一実施形態に係る情報処理システム100が投影面に出力するGUIの例を示す説明図である。図172〜図179は、発火の条件をユーザに設定させる際のGUIの例であり、テーブル面に物体が置かれたことを発火の条件として登録する場合のGUI3200の例である。
本開示の一実施形態に係る情報処理システム100は、発火の条件をユーザに設定させる際に、まず図172に示したように、どのチャンネルを発火の条件として使用するかをユーザに選択させるGUI3200を出力する。図172に示したGUI3200には、チャンネルとして音、マーカー、机面(テーブル140aの面)の物体が示されている。もちろんチャンネルとして使用されるものは係る例に限定されるものではない。
ここでユーザがチャンネルとしてマーカーを選択すると、続いて情報処理システム100は、図173に示したように、ユーザにトリガーを選択させるGUI3200を出力する。図173には、トリガーとして塊認識、物の配置、平面認識が示されている。もちろんトリガーとして使用されるものは係る例に限定されるものではない。
ここでユーザがトリガーとして塊認識を選択すると、続いて情報処理システム100は、図174に示した様な、認識を行うエリアをユーザに指定させるGUI3200を出力する。認識を行うエリアをユーザが指定すると、続いて情報処理システム100は、図175に示した様な、機能発火の条件をユーザに指定させるGUI3200を出力する。図175では、物体が机面に置かれた場合に機能を発火させるか、物体が机面から退けられた場合に機能を発火させるかをユーザに指定させるGUI3200が示されている。
図176は、認識を行うエリアをユーザに指定させるGUI3200の例を示す説明図である。情報処理システム100は、図176に示したようなGUI3200を出力することで、機能発火のトリガーとなる物体を認識するエリアをユーザに設定させることが出来る。この物体を認識するエリアは、ユーザの操作によって移動、拡大、縮小、回転、変形が可能である。
機能発火のトリガーとなる物体を認識するエリアをユーザが設定すると、続いて情報処理システム100は、図177に示すような、ユーザが設定したエリアに物体を実際に置かせて物体を認識させるためのGUI3200を出力する。ユーザは、物体を認識するエリアに任意の物体を置くと、情報処理システム100は、そのエリアに置かれた物体を入力部110のカメラで認識する。情報処理システム100は、物体を認識するエリアに置かれた物体を認識すると、図178に示したような、物体の認識が出来たことを示すGUI3200を出力する。
そして物体を認識するエリアに置かれた物体を認識すると、情報処理システム100は、図179に示したような、ユーザが机面に置いた物体をトリガーとして登録したことを示すGUI3200を出力する。
図180〜図184は、本開示の一実施形態に係る情報処理システム100が投影面に出力するGUIの例を示す説明図である。図180〜図184は、発火させる機能をユーザに設定させる際のGUIの例であり、発火させる機能として映像の再生を登録する場合のGUI3200の例である。
本開示の一実施形態に係る情報処理システム100は、発火させる機能をユーザに設定させる際に、まず図180に示したように、どのチャンネルを発火させる機能として使用するかをユーザに選択させるGUI3200を出力する。図180に示したGUI3200には、チャンネルとして絵・映像、音・音楽、アプリケーションの3種類が示されている。もちろんチャンネルとして使用されるものは係る例に限定されるものではない。
ここでユーザがチャンネルとして絵・映像を選択すると、続いて情報処理システム100は、図181及び図182に示したように、ユーザにアクション(発火させる機能)を選択させるGUI3200を出力する。
図182には、再生させる絵や映像として、エフェクトライブラリからのエフェクトの選択、机面の録画、机面を利用したペイント機能により描画した絵のいずれかをユーザに選択させるためのGUI3200が示されている。なお再生される絵や映像と利用されるのは、上述したものの組み合わせであってもよい。情報処理システム100は、例えば再生時間を10秒とした場合、エフェクトが5秒間、ペイント機能により描画した絵の再生が5秒間、それぞれ再生されるようにユーザに設定させても良い。
アクションをユーザが設定すると、続いて情報処理システム100は、図183に示すような、ユーザが設定したアクションをユーザに確認させるためのGUI3200を出力する。ユーザは、設定したアクションを確認し、問題がなければ情報処理システム100にその旨を指示する。情報処理システム100は、ユーザが設定したアクションについてユーザが確認すると、図184に示したような、アクションの登録が完了したことを示すGUI3200を出力する。
ユーザが上述したように発火させる機能と発火の条件とを登録した場合、その発火させる機能の効果や意味合いによって、発火させる機能の可視性がコントロールされることが望ましい。例えば、サプライズとして仕込んだ機能は、他人に気付かれないように隠しておくことが望ましい。
図185は、情報処理システム100が発火させる機能の可視性の例を示す説明図である。図185の(1)は、機能ごとにアイコンが置かれている様子を示したものである。図185の(2)は、登録した機能がまとめて配置される様子を示したものである。図185の(3)は、トリガーが発生するエリアだけを表示している様子を示したものである。図185の(4)は、発火させる機能を完全に隠している様子を示したものである。
上述したように、情報処理システム100は、ユーザによって様々な機能発火の条件を登録させることが出来る。しかし、ユーザは、同じような条件を別の機能に割り当てようとしてしまうことが考えられる。そこで、情報処理システム100は、ユーザが登録しようとした発火の条件が、既に登録されている条件と酷似していれば、その登録を棄却するようにしてもよい。
例えば、ユーザが机を叩くトリガーを登録する際に、リズムがわずかに違うが叩く回数は同じで登録しようとした場合や、机に物を置くトリガーを登録する際に、反応するエリアが以前登録したエリアと重複していた場合に、登録されている条件と酷似する、類似度の高いデータになってしまう。この他にも、例えばユーザが、模様や形状、色彩がわずかに違うような物体の認識を別の機能に割り当てようとしてしまうことが考えられる。このように、類似度の高い条件となりうるパターンは存在する。
そこで情報処理システム100は、類似度が十分に高いことが判明した時点で、類似度が高いことを知らせるインジケーションを表示したり、登録のやり直しまたはキャンセルを促したりするGUIを出力してもよい。
図186は、情報処理システム100が出力するGUIの例を示す説明図であり、ユーザが登録しようとした発火の条件が、既に登録されている条件と酷似していれば、その登録を棄却する際に出力するGUIの例を示したものである。
情報処理システム100は、ユーザに登録されたトリガーを複数組み合わせて新たなトリガーを生成してもよい。図187は、トリガーの組み合わせの例を示す説明図である。図187には「朝7時になったら」というトリガーと、「指定エリア内でユーザの腕が振られたら」というトリガーとを組み合わせる様子が示されている。
図188は、トリガーを複数組み合わせて新たなトリガーをユーザに生成させる際の、情報処理システム100が出力するGUIの例を示す説明図である。各トリガーが円で描画されており、ユーザは、トリガー同士を重ねあわせる操作(例えばドラッグアンドドロップ操作)を行う。情報処理システム100は、ユーザによってトリガー同士を重ねあわせる操作が行われると、その2つのトリガーを組み合わせて新たなトリガーを生成する。
ユーザが上述したように発火させる機能と発火の条件とを登録した場合、ユーザが設定した発火させる機能と発火の条件とを紐付ける際のGUIの例を示す。図189は、情報処理システム100が出力するGUIの例を示す説明図であり、ユーザが設定した発火させる機能と発火の条件とを紐付ける際のGUIの例を示したものである。
図189では、発火させる機能(アクション)と発火の条件(トリガー)とが円で描画されており、ユーザは、トリガーとアクションとを重ねあわせる操作(例えばドラッグアンドドロップ操作)を行う。情報処理システム100は、ユーザによってトリガーとアクションとを重ねあわせる操作が行われると、そのトリガーとアクションとを紐付け、紐付けた内容を保持する。
本実施形態に係る情報処理システム100は、発火させる機能と発火の条件とをユーザにより自由に設定可能とすることで、アプリケーションを提供するベンダーによるプログラムだけでなく、ユーザによる自由かつ簡単なプログラムの設定が可能となる。これにより、テーブル140a上の細かい事情に即した機能発火が実現される。
テーブル140aにはユーザごとに様々な物体が置かれ、様々なインタラクションが日々行われている。本実施形態に係る情報処理システム100は、発火させる機能と発火の条件とをユーザにより自由に設定可能とすることで、日常的に行われ得るインタラクションを機能発火のきっかけとしてユーザに利用させることが出来、ユーザの日常生活に溶け込んだ体験を作り出すことが可能となる。
[例3]
ここでは、情報処理システム100が表示するウィンドウのモード及び操作方法の例を説明する。
情報処理システム100が表示するウィンドウの内部には、画像、テキストその他のコンテンツが表示され得る。ウィンドウの内部に表示されるコンテンツには様々なものがあり、ウィンドウの領域で全て表示出来ないようなコンテンツも存在しうる。そのような場合、ユーザは、コンテンツに対するスクロール、移動、拡大・縮小操作を行うことによってコンテンツの閲覧を行うことになるが、情報処理システム100は、コンテンツに対するこれらの操作と、コンテンツを表示しているウィンドウに対する操作が正しく区別できなければならない。コンテンツに対する操作と、ウィンドウに対する操作とが正しく区別できなければ、ユーザはコンテンツに対する操作を行なっているにも関わらず、コンテンツではなくウィンドウに対する操作が行われてしまうようなケースが生じ得るからである。
図190は、情報処理システム100が表示するウィンドウ3300のモード及び操作方法の例を示す説明図である。ウィンドウ3300の中に画像やテキストその他のコンテンツが表示されている状態で、ユーザが単にコンテンツに対する操作を行うと、情報処理システム100はそのウィンドウに対してはコンテンツ操作モードとして動作する。またユーザがウィンドウ3300の中の所定の領域を長押しすると情報処理システム100はそのウィンドウに対してはウィンドウ操作モードとして動作する。
図191は、情報処理システム100が表示するウィンドウ3300のモード及び操作方法の例を示す説明図である。情報処理システム100は、コンテンツ操作モードではウィンドウ3300の中でのコンテンツのスクロールや回転、拡大縮小(拡縮)をユーザに行わせることが出来る。一方、情報処理システム100は、ウィンドウ操作モードではウィンドウ3300に対する移動、回転、拡縮をユーザに行わせることが出来る。
なおコンテンツ操作モードからウィンドウ操作モードに動作を切り替える際、情報処理システム100は、ウィンドウ3300がウィンドウ操作モードとなっていることを示す表示(例えばウィンドウ3300全体の色を変える等)を行なっても良い。
このようにウィンドウ3300の中の所定の領域を長押しすることでコンテンツ操作モードからウィンドウ操作モードに動作を切り替えるのは、ユーザにとって誤操作が少なくなるというメリットがある一方、ユーザにウィンドウ3300の中の所定の領域を長押しするという操作を行わせる必要がある。
図192、図193は、情報処理システム100が表示するウィンドウ3300のモード及び操作方法の例を示す説明図である。情報処理システム100は、例えばウィンドウ3300の周囲に外枠を設ける。図193に示したように、ウィンドウ3300の内部に表示されているコンテンツをユーザが操作した場合にはそのコンテンツに対する処理を実行し、ウィンドウ3300の外枠をユーザが操作した場合にはウィンドウ3300に対する動作を実行するようにしても良い。
このようにウィンドウ3300の周囲に外枠を設けることでコンテンツに対する操作とウィンドウ3300に対する操作とを区別する方法は、ユーザに長押しのような操作を強いることがないので1つの操作だけで区別できるメリットが有る一方、外枠を設けることによる操作エリアの干渉等による誤操作が生じ得る。
そこで以下の説明では、情報処理システム100が表示するウィンドウ3300をユーザに操作させる際に、複雑な操作を強いること無く、かつ誤操作の発生の可能性を低減させる技術の例を示す。
まず、コンテンツのスクロールが生じ得るウィンドウと、コンテンツのスクロールが生じないウィンドウの移動概念について示す。図194は、ウィンドウの操作例を示す説明図であり、コンテンツのスクロールが生じ得るウィンドウと、コンテンツのスクロールが生じないウィンドウの移動概念を示す説明図である。
図194の(1)はコンテンツのスクロールが生じないウィンドウであり、ユーザによるコンテンツに対する操作(例えばタップ操作、コンテンツに対する拡縮操作等)以外の操作はウィンドウに対する操作であるとする。
図194の(2)はコンテンツのスクロールが生じるウィンドウであり、例えばユーザによる片手での操作はコンテンツに対する操作とし、両手での操作はコンテンツに対する操作とする。またコンテンツに対する操作時に所定時間だけウィンドウの周囲に外枠を表示させ、その外枠に対する操作はコンテンツに対する操作とする。
図195は、ユーザの操作について示す説明図である。図195には、ユーザの1本または2本の手でコンテンツやウィンドウを移動させる移動操作、ユーザの1本または2本の手でコンテンツやウィンドウを回転させる回転操作、ユーザの1本または2本の手でコンテンツやウィンドウを拡縮させる拡縮操作の例が示されている。
図196は、本開示の一実施形態にかかる情報処理システム100の動作例を示す流れ図である。図196に示したのは、情報処理システム100が出力する、コンテンツが表示されたウィンドウに対する操作が行われる際の、情報処理システム100の動作例である。以下、図196を用いて本開示の一実施形態にかかる情報処理システム100の動作例について説明する。
まずユーザによるウィンドウへのタッチ操作が行われたことを検出すると(ステップS3301)、情報処理システム100は、続いてその操作が移動操作であるかどうか判断する(ステップS3302)。
ユーザによるウィンドウへのタッチ操作が移動操作であった場合は(ステップS3302、Yes)、続いて情報処理システム100は、続いてユーザによるウィンドウへのタッチ操作がウィンドウ内の操作かどうか判断する(ステップS3303)。
ユーザによるウィンドウへのタッチ操作がウィンドウ内の操作であった場合は(ステップS3303、Yes)、続いて情報処理システム100は、そのユーザ操作が2つの手による操作か、またはウィンドウに表示されているのがスクロールしないコンテンツであるかどう判断する(ステップS3304)。
ユーザ操作が2つの手による操作か、またはウィンドウに表示されているのがスクロールしないコンテンツである場合は(ステップS3304、Yes)、続いて情報処理システム100は、操作対象のウィンドウを移動させる処理を実行する(ステップS3305)。一方ユーザ操作が1つの手による操作か、またはウィンドウに表示されているのがスクロールするコンテンツである場合は(ステップS3304、No)、続いて情報処理システム100は、操作対象のウィンドウの中に表示されているコンテンツをスクロールさせる処理を実行する(ステップS3306)。
なおユーザによるウィンドウへのタッチ操作がウィンドウ内の操作でなかった場合は(ステップS3303、No)、続いて情報処理システム100は、操作対象のウィンドウを移動させる処理を実行する(ステップS3305)。
上記ステップS3302において、ユーザによるウィンドウへのタッチ操作が移動操作でなかった場合は(ステップS3302、No)、続いて情報処理システム100は、続いてユーザによるウィンドウへのタッチ操作が回転操作かどうか判断する(ステップS3307)。
ユーザによるウィンドウへのタッチ操作が回転操作であった場合は(ステップS3307、Yes)、続いて情報処理システム100は、続いてユーザによるウィンドウへのタッチ操作がウィンドウ内の操作かどうか判断する(ステップS3308)。
ユーザによるウィンドウへのタッチ操作がウィンドウ内の操作であった場合は(ステップS3308、Yes)、続いて情報処理システム100は、そのユーザ操作が2つの手による操作か、またはウィンドウに表示されているのがウィンドウ内で回転しないコンテンツであるかどう判断する(ステップS3309)。
ユーザ操作が2つの手による操作か、またはウィンドウに表示されているのがウィンドウ内で回転しないコンテンツである場合は(ステップS3309、Yes)、続いて情報処理システム100は、操作対象のウィンドウを回転させる処理を実行する(ステップS3310)。一方ユーザ操作が1つの手による操作か、またはウィンドウに表示されているのがウィンドウ内で回転するコンテンツである場合は(ステップS3309、No)、続いて情報処理システム100は、操作対象のウィンドウの中に表示されているコンテンツを回転させる処理を実行する(ステップS3311)。
なおユーザによるウィンドウへのタッチ操作がウィンドウ内の操作でなかった場合は(ステップS3308、No)、続いて情報処理システム100は、操作対象のウィンドウを回転させる処理を実行する(ステップS3310)。
上記ステップS3307において、ユーザによるウィンドウへのタッチ操作が回転操作でなかった場合は(ステップS3307、No)、続いて情報処理システム100は、続いてユーザによるウィンドウへのタッチ操作が拡縮操作かどうか判断する(ステップS3307)。
ユーザによるウィンドウへのタッチ操作が拡縮操作であった場合は(ステップS3312、Yes)、続いて情報処理システム100は、続いてユーザによるウィンドウへのタッチ操作がウィンドウ内の操作かどうか判断する(ステップS3313)。
ユーザによるウィンドウへのタッチ操作がウィンドウ内の操作であった場合は(ステップS3313、Yes)、続いて情報処理システム100は、そのユーザ操作が2つの手による操作か、またはウィンドウに表示されているのがウィンドウ内で拡縮しないコンテンツであるかどう判断する(ステップS3314)。
ユーザ操作が2つの手による操作か、またはウィンドウに表示されているのがウィンドウ内で拡縮しないコンテンツである場合は(ステップS3314、Yes)、続いて情報処理システム100は、操作対象のウィンドウを拡縮させる処理を実行する(ステップS3315)。一方ユーザ操作が1つの手による操作か、またはウィンドウに表示されているのがウィンドウ内で拡縮するコンテンツである場合は(ステップS3315、No)、続いて情報処理システム100は、操作対象のウィンドウの中に表示されているコンテンツを拡縮させる処理を実行する(ステップS3316)。
なおユーザによるウィンドウへのタッチ操作がウィンドウ内の操作でなかった場合は(ステップS3313、No)、続いて情報処理システム100は、操作対象のウィンドウを拡縮させる処理を実行する(ステップS3315)。
上記ステップS3312において、ユーザによるウィンドウへのタッチ操作が拡縮操作でなかった場合は(ステップS3312、No)、続いて情報処理システム100は、ユーザ操作に対して、実行中のアプリケーションに応じて対応する(ステップS3317)。ユーザによるウィンドウへのタッチ操作が、移動、回転、拡縮でも無い場合の例としては、例えばユーザによるタップ操作等がある。ユーザによるタップ操作が行われると、情報処理システム100は、タップ操作の対象となったコンテンツに対する処理(画像の表示、映像の再生、別のアプリケーションの起動等)を実行してもよい。
なお、ユーザによる移動操作、回転操作、拡縮操作は、同時に行われ得る。その場合、情報処理システム100は、例えば、ユーザによって行われている操作が、移動操作、回転操作、拡縮操作のどれに一番近いかを判断してもよい。
以上、図196を用いて本開示の一実施形態にかかる情報処理システム100の動作例について説明した。続いて、ユーザによるウィンドウに対する操作の具体例を挙げながら本開示の一実施形態にかかる情報処理システム100の動作例についてより詳細に説明する。
図197は、ユーザによるウィンドウに対する操作例を示す説明図であり、ウィンドウ内にスクロールしないコンテンツが表示されている場合の操作例である。ウィンドウ3300にスクロールしないコンテンツが表示されている場合、ユーザが移動操作を行うと、情報処理システム100は、そのウィンドウ3300全体を移動させるように表示制御を行う。
図198は、ユーザによるウィンドウに対する操作例を示す説明図であり、ウィンドウ内にスクロールしないコンテンツが表示されている場合の操作例である。ウィンドウ3300にスクロールしないコンテンツが表示されている場合、ユーザが図198の(1)や(2)のように回転操作を行うと、情報処理システム100は、そのウィンドウ3300全体を回転させるように表示制御を行う。また、ウィンドウ3300にスクロールしないコンテンツが表示されている場合、ユーザが図198の(3)や(4)のように拡縮操作を行うと、情報処理システム100は、そのウィンドウ3300全体を拡縮させるように表示制御を行う。
図199は、ユーザによるウィンドウに対する操作例を示す説明図であり、ウィンドウ内にスクロールするコンテンツが表示されている場合の操作例である。ウィンドウ3300にスクロールするコンテンツが表示されている場合、ユーザが図199の(1)や(2)のようにウィンドウ3300の外枠に対して回転操作を行うと、情報処理システム100は、そのウィンドウ3300全体を回転させるように表示制御を行う。また、ウィンドウ3300にスクロールするコンテンツが表示されている場合、ユーザが図199の(3)のように拡縮操作を行うと、情報処理システム100は、そのウィンドウ3300全体を拡縮させるように表示制御を行う。
情報処理システム100は、2つの指が同じ手であるのか違う手であるのかを検出することで、同じ回転や拡縮操作であってもウィンドウに対する表示制御か、コンテンツに対する表示制御かを区別してもよい。
図200は、ユーザによるウィンドウに対する操作例を示す説明図であり、ウィンドウ内にスクロールするコンテンツが表示されている場合の操作例を示した図である。ウィンドウ3300にスクロールするコンテンツが表示されている場合、ユーザが図200の(1)に示したように、1つの手で回転操作を行うと、情報処理システム100は、そのコンテンツを回転させるように表示制御を行う。一方、ユーザが図200の(2)に示したように、2つの手で回転操作を行うと、情報処理システム100は、そのウィンドウ3300全体を回転させるように表示制御を行う。
同様に、ユーザが図200の(1)に示したように、1つの手で拡縮操作を行うと、情報処理システム100は、そのコンテンツを拡縮させるように表示制御を行う。一方、ユーザが図200の(4)に示したように、2つの手で拡縮操作を行うと、情報処理システム100は、そのウィンドウ3300全体を拡縮させるように表示制御を行う。
ウィンドウ内にスクロールしないコンテンツが表示されている場合、そのコンテンツを回転または拡縮させることで、そのコンテンツがウィンドウ内でスクロールするようになる場合がある。そのようなウィンドウを表示しうるアプリケーションとしては、例えばイラストを描画させるアプリケーションや地図を表示させるアプリケーション等がある。
そのようなウィンドウの場合、情報処理システム100は、回転や拡縮後のウィンドウに対して、コンテンツがスクロールするウィンドウの処理に移行してもよい。
図201は、ユーザによるウィンドウに対する操作例を示す説明図である。図201の(1)は、ウィンドウ内にスクロールしないコンテンツが表示されている場合の操作例であり、ユーザによってコンテンツの拡大操作が行われる様子を示したものである。ウィンドウ内にスクロールしないコンテンツが表示されていた場合に、ユーザによってコンテンツの拡大操作が行われると、図201の(2)に示したように、スクロールの遊びが生じる。従って情報処理システム100は、ウィンドウ内にスクロールしないコンテンツが表示されていた場合に、ユーザによってコンテンツの拡大操作が行われると、そのウィンドウはスクロールするコンテンツが表示されているものとして表示制御を行う。
ウィンドウ内にスクロールしないコンテンツが表示されていた場合に、ユーザによってコンテンツの回転操作が行われると、図201の(3)に示したように、スクロールの遊びが生じる。従って情報処理システム100は、ウィンドウ内にスクロールしないコンテンツが表示されていた場合に、ユーザによってコンテンツの回転操作が行われると、そのウィンドウはスクロールするコンテンツが表示されているものとして表示制御を行う。
ウィンドウの回転操作の変形例を説明する。図202は、ユーザによるウィンドウに対する操作例を示す説明図である。図202の(1)は、ウィンドウの所定の位置をユーザがタッチして、そのまま移動させる操作を行なった場合の、情報処理システム100によるウィンドウの表示制御例である。この場合、情報処理システム100は、ウィンドウに対するタッチ位置は一定で、ユーザがウィンドウを引っ張る方向と、ウィンドウの中心からユーザのタッチ位置の方向との外積が0になるまでウィンドウを回転させるようにウィンドウを移動させる表示制御を行なっても良い。
情報処理システム100がこのような表示制御を行う際に、ユーザがウィンドウを180度回転させる場合を説明する。図202の(2)に示したように、まずユーザはウィンドウの右側(または左側)を右下(または左下方向)に引っ張って所定量回転させ、回転後のウィンドウの上側を右上(または左上方向)に引っ張って所定量回転させ、再度ウィンドウの右側(または左側)を右下(または左下方向)に引っ張って所定量回転させることで、ウィンドウを180度回転させることが出来る。
次にスクロールするコンテンツが表示されているウィンドウに対するユーザ操作に応じた表示制御例を示す。図203は、ユーザによるウィンドウに対する操作例を示す説明図である。図203の(1)は、ウィンドウ3300にスクロールするコンテンツが表示されている状態が示されている。
この状態で、ユーザがウィンドウの内側に対して操作を行うと、情報処理システム100は、図203の(2)に示したように、その操作をウィンドウに表示されているコンテンツに対して作用させる。例えばユーザがドラッグ操作を行うと、情報処理システム100は、コンテンツがウィンドウ3300の内側でスクロールするような表示制御を行い、ユーザがピンチ操作を行うと、情報処理システム100は、コンテンツがウィンドウ3300の内側で拡縮するような表示制御を行い、ユーザが回転操作を行うと、情報処理システム100は、コンテンツがウィンドウ3300の内側で回転するような表示制御を行う。
一方、ユーザがウィンドウの縁に対して操作を行うと、情報処理システム100は、図203の(3)に示したように、ウィンドウ3300を操作させるウィンドウハンドルをウィンドウ3300の周囲に表示させる。そしてウィンドウハンドルに対するユーザの移動操作を検出すると、情報処理システム100は、ユーザの移動操作に応じてウィンドウ3300を移動させるような表示制御を行う。
図204は、ユーザによるウィンドウに対する操作例を示す説明図であり、ウィンドウ内にスクロールするコンテンツが表示されている場合の操作例を示した図である。図204の(1)は、ウィンドウにスクロールするコンテンツが表示されている状態で、ユーザがコンテンツに対して回転操作を実行した場合の、情報処理システム100による表示制御例である。すなわちユーザが片手で回転操作を実行した場合、情報処理システム100は、ユーザの回転操作に応じてウィンドウの内部のコンテンツを回転させるような表示制御を行う。
図204の(2)は、ウィンドウにスクロールするコンテンツが表示されている状態で、ユーザがウィンドウに対して回転操作を実行した場合の、情報処理システム100による表示制御例である。すなわちユーザが両手で回転操作を実行した場合、情報処理システム100は、ユーザの回転操作に応じてウィンドウ全体を回転させるような表示制御を行う。
図204の(3)は、ウィンドウにスクロールするコンテンツが表示されている状態で、ユーザがコンテンツに対して拡縮操作を実行した場合の、情報処理システム100による表示制御例である。すなわちユーザが片手で拡縮操作を実行した場合、情報処理システム100は、ユーザの拡縮操作に応じてウィンドウの内部のコンテンツを拡縮させるような表示制御を行う。
図204の(4)は、ウィンドウにスクロールするコンテンツが表示されている状態で、ユーザがウィンドウに対して拡縮操作を実行した場合の、情報処理システム100による表示制御例である。すなわちユーザが両手で拡縮操作を実行した場合、情報処理システム100は、ユーザの拡縮操作に応じてウィンドウ全体を拡縮させるような表示制御を行う。
次にユーザ操作に応じてウィンドウが回転する表示制御例を示す。図205はユーザによるウィンドウに対する操作例を示す説明図である。ユーザがウィンドウをタッチし、そのウィンドウを引っ張るような移動操作を行うと、情報処理システム100は、ユーザによって引っ張られている方向に回転させた後に、ウィンドウを移動させるような表示制御を行なっても良い。ウィンドウの回転方向は、例えば指の入射方向であってもよく、ウィンドウの移動方向であっても良い。
情報処理システム100は、ウィンドウの周囲に外枠を設けて、その外枠に対するユーザの移動操作に応じてウィンドウを回転させながら移動させる表示制御を行なっても良い。図206はユーザによるウィンドウに対する操作例を示す説明図である。ユーザがウィンドウの外枠をタッチし、そのウィンドウを引っ張るような移動操作を行うと、情報処理システム100は、ユーザによって引っ張られている方向に回転させた後に、ウィンドウを移動させるような表示制御を行なっても良い。
情報処理システム100は、ユーザの特殊なジェスチャによってウィンドウを回転させながら移動させる表示制御を行なっても良い。例えば情報処理システム100は、コンテンツに対するタップ操作以外の操作はウィンドウに対する操作であるとして、ウィンドウに対する表示制御を行なっても良い。
情報処理システム100は、コンテンツがスクロールするウィンドウに対して、上述したように片手での操作はコンテンツに対する操作として、両手での操作はウィンドウに対する操作としてウィンドウに対する表示制御を行なっても良く、操作時に所定時間だけウィンドウの周囲に外枠を表示させて、その外枠に対する操作はウィンドウに対する操作としてウィンドウに対する表示制御を行なっても良い。
次に、画面外にウィンドウが存在するような場合の処理の例について説明する。図207は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザが、例えば図207の(1)のように、ウィンドウ3300に対して移動操作を行い、そのウィンドウ3300を画面(表示領域)の外側へ移動させるような移動操作を行うと、情報処理システム100は、図207の(2)のように、画面(表示領域)の外に出た量に応じた反力で画面(表示領域)の内側に戻ってくるような表示制御を行なっても良い。
図208は、ユーザによるウィンドウに対する操作例を示す説明図である。上述した反力よりも強い勢いで、ユーザがウィンドウ3300を画面(表示領域)の外側へ移動させるような移動操作を行い、ウィンドウ3300が画面(表示領域)の外側へ所定量以上出した後にユーザが指をウィンドウ3300から離すと、情報処理システム100は、図208のように、ウィンドウ3300を閉じたり、ウィンドウ3300を最小化させたりするような表示制御を行なっても良い。
また、上述した反力よりも強い勢いで、ユーザがウィンドウ3300を抑えている指を画面(表示領域)の所定の領域に移動させるような移動操作を行った後にユーザが指をウィンドウ3300から離すと、情報処理システム100は、図208のように、ウィンドウ3300を閉じたり、ウィンドウ3300を最小化させたりするような表示制御を行なっても良い。
図209は、ユーザによるウィンドウに対する操作例を示す説明図である。情報処理システム100は、上述したようなユーザ操作に応じて最小化させたウィンドウ3300は、そのウィンドウ3300を画面の内側に移動させるようなユーザ操作に応じて元の大きさに戻すような表示制御を行なっても良い。
情報処理システム100は、ウィンドウの表示制御の際に慣性の法則を利用した表示制御を行なっても良い。図210は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザが、ウィンドウ3300に対して指で勢いをつけて飛ばすような操作を行うと、情報処理システム100はそのユーザ操作を検出してウィンドウ3300を移動させるような表示制御を行なっても良い。そしてウィンドウ3300がユーザによって飛ばされて画面の外に出た場合、出た量が所定値以下の場合は反力で画面内に戻るような表示制御を、出た量が所定値を超えた場合はウィンドウを最小化または消去するような表示制御を行なっても良い。
図211は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザが、ウィンドウ3300に対して指で勢いをつけて画面の外に飛ばすような操作を行うと、情報処理システム100は、ユーザ操作に応じて、ウィンドウ3300が画面の辺に沿うように回転するような表示制御を行なっても良い。
続いてウィンドウ同士が干渉するような場合の表示制御例を示す。図212は、ユーザによるウィンドウに対する操作例を示す説明図であり、複数のウィンドウが干渉する(重なる)場合の例を示したものである。
2つのウィンドウが重なっている領域が所定量以下、または領域の割合が所定量の場合は、情報処理システム100は、図212の(1)に示したように、特別な制御を行わずに単にウィンドウ同士を重ねあわせるような表示制御を行なっても良い。一方、2つのウィンドウが重なっている領域が、図212の(2)に示したように所定量を超えた場合、または領域の割合が所定量を超えた場合は、情報処理システム100は特別な表示制御を行なっても良い。
情報処理システム100は、例えば図212の(3)及び(4)に示したように、各ウィンドウの中心同士で斥力が働いて、その斥力に基づいてウィンドウが自動的にアニメーション移動するような表示制御を行なっても良い。
図213は、ユーザによるウィンドウに対する操作例を示す説明図であり、複数のウィンドウが干渉する(重なる)場合の例を示したものである。ユーザがウィンドウを移動させて別のウィンドウに重ならせた場合、情報処理システム100は、図213の(1)に示すように、リアルタイムでその別のウィンドウが逃げていくようにアニメーション移動するような表示制御を行なっても良く、図213の(2)及び(3)に示すように、ユーザが指を話した時点で、その別のウィンドウが逃げていくようにアニメーション移動するような表示制御を行なっても良い。
図214は、ユーザによるウィンドウに対する操作例を示す説明図であり、複数のウィンドウが干渉する(重なる)場合の例を示したものである。ユーザがウィンドウを移動させて別のウィンドウに重ならせた場合、情報処理システム100は、図214に示すようにタブを表示させて、タブに対する操作に応じて前面に表示させるウィンドウを切り替えられるような表示制御を行なっても良い。
ユーザがウィンドウを移動させて別のウィンドウに重ならせた場合にリアルタイムでその別のウィンドウが逃げていくようにアニメーション移動するような表示制御を行なう場合、その別のウィンドウが画面(表示領域)の端部に移動させられると、情報処理システム100は、その別のウィンドウの大きさを小さくするような表示制御を行なっても良い。
図215は、ユーザによるウィンドウに対する操作例を示す説明図であり、複数のウィンドウが干渉する(重なる)場合の例を示したものである。ユーザが移動操作しているウィンドウから逃げるように移動するウィンドウが画面(表示領域)の端部に移動させられると、情報処理システム100は、図215に示したように、その別のウィンドウの大きさを小さくするような表示制御を行い、ユーザが移動操作しているウィンドウにさらに追いやられると、その別のウィンドウを最小化したり、消去したりするような表示制御を行ってもよい。
なおこのようにユーザが移動操作しているウィンドウから逃げるように移動する他のウィンドウが画面(表示領域)の端部に移動させられる場合、情報処理システム100は、ユーザが指を離した時点で当該他のウィンドウを最小化したり、消去したりするような表示制御を行ってもよい。またこのように移動する他のウィンドウが画面(表示領域)の端部に移動させられる場合、情報処理システム100は、当該他のウィンドウ回転させるような表示制御を行ってもよい。
図216は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザがウィンドウを操作する場合、情報処理システム100は、図216に示したように、画面(表示領域)の各辺に沿うように自動的に回転するような表示制御を行なっても良い。
また、ユーザの位置を情報処理システム100で検出できる場合、情報処理システム100は、そのユーザ位置に応じてウィンドウの動きを制御するようにしてもよい。図217は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザが画面(表示領域)に近づいた場合、情報処理システム100は、図217に示したように、そのユーザの位置を検出して、ユーザから見て正面になるように自動的に回転するような表示制御を行なっても良い。なお、このように表示制御を行う場合、2人目以降のユーザが画面(表示領域)に近づいても、情報処理システム100は、その新たなユーザの方には向かないような表示制御を行なっても良い。
図218は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザが画面(表示領域)に近づいた場合、情報処理システム100は、図218に示したように、そのユーザの位置を検出して、ユーザから見て正面になるように自動的に回転した上で、そのユーザに近づくような表示制御を行なっても良い。
この際に情報処理システム100は、画面(表示領域)に近づいたユーザに紐付いているウィンドウだけを、ユーザから見て正面になるように自動的に回転した上で、そのユーザに近づくような表示制御を行なっても良い。情報処理システム100は、ウィンドウとユーザとが紐付けられているかどうかを、例えば元々ユーザとウィンドウとが紐付けられている設定になっているかどうかで判断してもよく、最後にそのウィンドウを触ったユーザかどうか判断してもよい。
また、ユーザの位置を情報処理システム100で検出できる場合、情報処理システム100は、そのユーザ位置に応じてウィンドウの中に表示されるコンテンツの粒度を制御するようにしてもよい。図219は、ユーザによるウィンドウに対する操作例を示す説明図である。ユーザが画面(表示領域)に近づいた場合、情報処理システム100は、図219に示したように、そのユーザの位置を検出して、そのユーザ位置に応じてウィンドウの中に表示されるコンテンツの粒度を制御するようにしてもよい。
情報処理システム100は、ウィンドウの中に表示されるコンテンツの粒度として、例えば画像サイズ、文字のフォントサイズ等を制御してもよい。すなわち、情報処理システム100は、ユーザから近い位置にあるウィンドウでは画像サイズやフォントサイズを小さくし、ユーザから遠い位置にあるウィンドウでは画像サイズやフォントサイズを大きくするようにしてもよい。
続いてウィンドウが投影面に置かれている実際の物体に干渉する場合の表示制御例を説明する。図220は、ウィンドウが投影面に置かれている実際の物体に干渉する場合の表示制御例を示す説明図である。図220の(1)に示したように、ウィンドウ3300が投影面に置かれている実際の物体3310に干渉する場合、情報処理システム100は、図220の(2)に示したように、ウィンドウ3300の位置が、物体3310に干渉しない位置に自動的に移動するような表示制御を行なっても良い。
ウィンドウ3300の位置が、物体3310に干渉しない位置に自動的に移動するような表示制御を行う場合、情報処理システム100は、図220の(3)、(4)に示したように、ウィンドウ3300の中心位置と物体3310の中心位置との間で斥力が働くようにウィンドウ3300の位置が移動するような表示制御を行ってもよい。
[例4]
ここでは、情報処理システム100と他の機器との間の連携、及びその連携の際に情報処理システム100が出力するGUIの例を説明する。
上述したように、本開示の一実施形態に係る情報処理システム100が、例えば図1に示したような、テーブルに情報を投影して、その情報に対してユーザに操作させるような形態を採る場合、情報処理システム100は、テーブルの上にスマートフォン等の携帯端末との連携が可能になる。例えば、ユーザがテーブルの上にスマートフォン等の携帯端末を置き、その携帯端末を入力部110に認識させることで、本開示の一実施形態に係る情報処理システム100は、その携帯端末を識別し、識別した携帯端末との連携を可能にする。
しかし、複数のユーザが全く同じ携帯端末を所有しており、その同じ携帯端末を同時に、また別々にテーブルの上に置いて、情報処理システム100に認識させようとすると、情報処理システム100は、どちらの携帯端末に連携すれば良いか判断できなくなる。
また、物体認識を利用せずに機器との連携を行う場合、情報処理システム100と、連携する機器との位置関係の情報を利用できない。従って物体認識を利用せずに機器との連携を行う場合、どのような場所から情報処理システム100と連携を開始したとしても、その機器は同じように扱われることになる。例えば、全方位から複数のユーザが同時に情報を利用し得る場合、共有される情報を全て同じ向きや同じ位置で表示すると、情報の向きと、ユーザの向きとが正反対になるケースが発生し、ユーザは情報の取り扱いが困難になってしまう。
図221は、情報の表示例を示す説明図であり、全方位から複数のユーザが同時に情報を利用し得る場合、共有される情報を全て同じ向きや同じ位置で表示した場合の例を示す説明図である。共有される情報1、2、3を全て全て同じ向きで出力した場合、図221に示したように、情報の向きと、ユーザの向きとが正反対になるケースが発生し得る。
そこで上述したように、複数のユーザが全く同じ携帯端末を所有しており、同じ携帯端末が同時に、また別々にテーブルの上に置かれた場合であっても、連携する携帯端末を容易に特定可能な情報処理システム100について説明した。また、全方位から操作するユーザのそれぞれが使いやすい位置や向きに共有するコンテンツを表示可能な情報処理システム100について説明した。
本開示の一実施形態に係る情報処理システム100は、例えば図32、図33に示したような動作を実行することで、テーブルの上に置かれたスマートフォン等の携帯端末との連携が可能になる。例えば、ユーザがテーブルの上にスマートフォン等の携帯端末を置き、その携帯端末を入力部110に認識させることで、本開示の一実施形態に係る情報処理システム100は、その携帯端末を識別し、識別した携帯端末との連携を可能にする。
また本開示の一実施形態に係る情報処理システム100は、例えば図32、図33に示したような動作を実行することで、画面に接続マークを表示し、ユーザにその接続マークからコンテンツを取り出させることで、全方位から操作するユーザのそれぞれが使いやすい位置や向きに共有するコンテンツを表示可能にする。
以下では、情報処理システム100と、スマートフォン等の携帯端末との連携に際して情報処理システム100が出力するGUIの例を説明する。
図222は、情報処理システム100が出力するGUI3400の例を示す説明図である。例えば図32のステップS1111の処理で認識モードに移行すると、情報処理システム100は、図222の(1)に示すように、画面(表示領域)の四隅から波紋が現れるようなGUI3400を出力してもよい。この図222の(1)に示すGUI3400は、画面(表示領域)のどこでも認識対象領域であることを示している。
また認識モードに移行すると、情報処理システム100は、図222の(2)に示すように、画面(表示領域)の一部分だけ波紋が現れるようなGUI3400を出力してもよい。この図222の(2)に示すGUI3400は、画面(表示領域)の波紋が現れている領域が認識対象領域であることを示している。
また認識モードに移行すると、情報処理システム100は、図222の(3)に示すように、端末を持った手が、その端末を置く映像を出力したり、模式化されたイラストアニメーションを再生したりするようなGUI3400を出力してもよい。この図222の(3)に示すGUI3400は、ユーザに対してどのような動作を行えば機器の認識が可能になるかを提示するためのGUIである。
図223は、情報処理システム100が出力するGUI3400の例を示す説明図である。例えば図32のステップS1111の処理で認識モードに移行すると、情報処理システム100は、図222で示したGUIに加え、図223に示したように、所定の文言を加えて出力しても良い。そして情報処理システム100は、物体の認識に成功すると、物体を認識できたことを示すGUI(例えば、図34で示したような、認識した物体の周囲に波紋を表示させるようなGUI)を出力しても良い。
情報処理システム100は、物体を認識した後にその物体が退けられると、その物体との接続を示すためのGUIを表示する。図36には、情報処理システム100が接続マークを表示面に表示している状態の例を示したが、その他の表示例を示す。図224は、情報処理システム100が出力するGUI3400の例を示す説明図である。
図224の(1)は、認識した物体が退けられた後に、その物体が置かれていた場所と同じ場所に、認識のためのマーカと同じ画像を表示するGUI3400の例である。図224の(2)は、認識した物体が退けられた後に、その物体が置かれていた場所と同じ場所に、認識のためのマーカがアイコン化されたGUI3400の例である。図224の(2)は、認識した物体が退けられた後に、その物体が置かれていた場所と同じ場所に、認識のためのマーカがとは異なる画像が表示されたGUI3400の例である。
情報処理システム100は、物体を認識した後にその物体が退けられると、その物体と連携した処理をユーザに実行させるためのGUIを表示する。図37には、情報処理システム100が連携した機器が保存しているコンテンツを表示するGUIの例を示したが、その他の表示例を示す。図225、図226は、他の機器と連携した後に情報処理システム100が出力するGUI3400の例を示す説明図である。
図225の(1)は、認識のためのマーカと同じ画像の周囲にアイコンを表示させているGUI3400の例である。図225の(2)は、認識のためのマーカと同じ画像の周囲に、情報処理システム100が連携した機器が保存しているコンテンツのサムネイルを表示させているGUI3400の例である。図225の(3)は、認識のためのマーカと同じ画像に、任意のウィンドウを表示させているGUI3400の例である。
図226の(1)は、認識のためのマーカと同じ画像に隣接して、連携した機器において共有するコンテンツを選択するようユーザに促すメッセージを表示するGUI3400の例である。図226の(2)は、アイコン化された認識のためのマーカと、連携した機器が保存しているコンテンツのサムネイルとを組み合わせて表示させているGUI3400の例である。
もちろん情報処理システム100は、図225、226に示したGUI3400以外にも、様々なGUIを出力可能であることは言うまでもない。
続いて、連携した機器が保存しているコンテンツの操作性や視認性を向上させるためのGUIの例を示す。図227は、他の機器と連携した後に情報処理システム100が出力するGUI3400の例を示す説明図である。
例えば、既にテーブルの上に本、雑誌、食器その他の物体が置かれている場合、情報処理システム100は、その置かれている物体を認識し、その物体を避けてアイコンやサムネイル等を出力してもよい。図227の(1)は、テーブルの上に置かれている物体を避けて、連携した機器が保持しているアイコンやサムネイル等を出力するGUI3400の例である。
情報処理システム100は、他の機器と連携した後にその機器が有しているコンテンツを操作するためのGUIを出力する場合、機器が置かれた場所に応じて連携した機器が保持しているアイコンやサムネイル等を出力するGUIを変化させても良い。図227の(2)は、機器が置かれた場所に応じて連携した機器が保持しているアイコンやサムネイル等を出力するGUI3400を変化させた例である。
情報処理システム100は、例えば、通常は認識のためのマーカと同じ画像の右側に、コンテンツを表示する任意のウィンドウを表示させるが、機器が表示領域の右端に置かれた場合は、認識のためのマーカと同じ画像の左側に、コンテンツを表示する任意のウィンドウを表示させる。情報処理システム100は、このように機器が置かれた場所に応じてGUIを変化させることで、ユーザの操作性を向上させることが出来る。
続いて、物体認識の終了タイミングに関するGUIの例を示す。図228は、他の機器を認識した後に情報処理システム100が出力するGUI3400の例を示す説明図である。
テーブルなどの上に置かれた物体を認識した情報処理システム100は、認識直後からウィンドウのようなGUIを出力しても良い。図228の(1)は、テーブルなどの上に置かれた物体を認識した情報処理システム100が、認識直後からウィンドウを出力するGUI3400の例である。情報処理システム100は、図228の(1)のように認識直後からウィンドウを出力する場合、ユーザが物体の位置を移動させると、その移動に追従して出力するウィンドウの位置を変化させても良い。
テーブルなどの上に置かれた物体を認識した情報処理システム100は、その物体がテーブルの上に置かれている間は認識処理を継続してもよい。図228の(2)は、テーブルなどの上に置かれた物体を認識した情報処理システム100が、その物体がテーブルの上に置かれている間、認識処理を継続し続けている場合のGUI3400の例である。情報処理システム100は、物体がテーブルの上に置かれている間は認識処理を継続して、物体がテーブルから退けられると、認識処理を停止し、認識した物体に応じたウィンドウ等を出力しても良い。
機器から取り出して共有するコンテンツそのものの操作時には、物体を認識する処理は不要であるので、物体を認識する処理の計算コストの低減のために、情報処理システム100は、物体がテーブルから退けられると、認識処理を停止してもよい。
テーブルなどの上に置かれた物体を認識した情報処理システム100は、物体を認識した時点で認識処理を停止し、認識した物体に応じたウィンドウ等を出力しても良い。図228の(3)は、テーブルなどの上に置かれた物体を認識した情報処理システム100が、体を認識した時点で認識処理を停止し、認識した物体に応じたウィンドウ等を出力する場合のGUI3400の例である。
テーブルなどの上に置かれた物体を認識した情報処理システム100が、体を認識した時点で認識処理を停止することで、物体を認識する処理の計算コストを大きく低減させることが可能になる。
続いて連携した機器との接続を解除するためのGUIの例を示す。図229は、他の機器を認識した後に、連携した機器との接続を解除するために情報処理システム100が出力するGUI3400の例を示す説明図である。
図229の(1)は、連携した機器との接続をユーザに解除させるため、認識のためのマーカと同じ画像(接続マーク)に重畳して、または接続マークの周辺に、連携した機器との接続を解除するためのボタンを表示したGUI3400の例である。ユーザは、接続を解除するためのボタンに触れることで、情報処理システム100と、機器との接続を情報処理システム100に解除させることができる。
図229の(2)は、連携した機器との接続をユーザに解除させるため、認識のためのマーカと同じ画像(接続マーク)を画面(表示領域)の外へユーザに移動させるGUI3400の例である。ユーザは、接続マークを画面外に移動させることで、情報処理システム100と、機器との接続を情報処理システム100に解除させることができる。
図229の(3)は、連携した機器との接続をユーザに解除させるため、連携した機器から接続を解除する場合のGUI3400の例である。ユーザは、連携した機器から接続を解除するための所定の操作を実行することで、情報処理システム100と、機器との接続を情報処理システム100に解除させることができる。
図229に示したいずれのGUI3400においても、情報処理システム100と、機器との接続が解除されると、情報処理システム100は、表示していた接続マークを消去する。情報処理システム100は、表示していた接続マークを消去することで、情報処理システム100と、機器との接続が解除されたことをユーザにわかりやすく提示することが可能になる。
もちろん、情報処理システム100と携帯端末との連携に際して情報処理システム100が出力するGUIは、上述してきたものに限定されるものではない。
[例5]
本例は、上記説明した具体例2に関する実施例である。より具体的には、本例では特に音声に着目し、音声入出力をユーザに最適化するための表示を行う。以下では、プロジェクション型の情報処理システム100aを想定して説明するが、図1〜図4を参照して説明したどのタイプでも、以下に説明する例に係るUIを実現可能である。図230〜図265を参照して、本例について説明する。
(概要)
図230及び図231は、本例に係るユーザインタフェースの概要を説明するための説明図である。図230に示すように、テーブル140a(表示面)には、複数のアプリケーションウィンドウ4101(表示オブジェクト)と、マイクアイコン4102が表示されている。アプリケーションウィンドウ4101は、アプリケーションのウィンドウである。マイクアイコン4102は、情報処理システム100により音声入力が受け付けられていることを示す表示である。マイクアイコン4102そのもの、又はその周囲には、情報処理システム100により受け付けられた音声入力に関する情報が反映された表示がなされ得る。図230に示した例では、情報処理システム100の周囲に、音声を発するディスプレイ装置4103、及び会話する人々4104が存在している。このため、ユーザ4105が発した「ABC」という音声は、周囲の雑音に埋もれてしまい、情報処理システム100に認識されない。よって、情報処理システム100は、マイクアイコン4102から「聞き取れません」という表示を行っている。
そこで、図231に示すように、本例に係る情報処理システム100は、ビームフォーミングを行ってマイクに指向性を持たせる。詳しくは、情報処理システム100は、マイクアレイに入力された音声に、ユーザ方向の音を強調して取り出す音声処理を行うことで、音声認識の精度を向上させる。ここで、マイクアイコン4102の真上又はその付近にマイクが設けられているとすると、符号4106は、マイクがビームフォーミングを行って形成する指向性の範囲を示している。つまり、符号4106に示した範囲内でユーザ4105が発話した場合、情報処理システム100は精度よく音声認識を行うことが可能となる。図231に示した例では、情報処理システム100は、符号4106に示した範囲内でユーザ4105が発話した「ABC」という音声を認識して、マイクアイコン4102に「ABC」という表示を行っている。符号4106に示した範囲を、以下ではビームフォーミング範囲とも称する。
なお、マイクアイコン4102は、マイクの真下又はその付近に表示されてもよいし、画面又はテーブル140aの中央、その付近、又は任意の位置に表示されてもよい。また、以下ではマイクアイコン4102を中心点としてビームフォーミング範囲や音量等の各種表示を行う例を説明するが、本例はかかる例に限定されない。例えば、マイクアイコン4102以外の表示が中心点となってもよいし、中心点としての意味を有するオブジェクトが何ら表示されてなくてもよい。例えば、単にテーブル140aの任意の位置を中心として各種表示がなされてもよいし、マイクの真下又はその付近の位置を中心として各種表示がなされてもよい。
さらに、本例に係る情報処理システム100は、このビームフォーミング範囲を示す情報を表示する。これにより、ユーザは、音声入力に関するビームフォーミングが行われていることを知ることができる。例えば、ビームフォーミング範囲にユーザが位置している場合、ユーザは、周囲の雑音に埋もれないように大声を上げる等の必要が無いことを知ることができる。これにより、ユーザの心理的負荷が軽減され、また実際に大声を上げずに済むので肉体的負荷が軽減される。また、ビームフォーミング範囲にユーザが位置していない場合、ユーザは、なぜ自身の発話が音声認識されないかを知ることができるので、ユーザの心理的負荷が軽減される。さらに、ユーザは、ビームフォーミング範囲内に移動することができる。この場合、情報処理システム100による音声認識精度が向上する。
なお、本節では音声入力に関して詳細に説明するが、音声出力等の他の任意の出力に関しても、同様の応用がなされてもよい。例えば、情報処理システム100は、スピーカがビームフォーミングを行って音声出力する範囲を示す情報を表示してもよい。この場合、ユーザは、音声出力に関するビームフォーミングが行われていることを知ることができ、適切な音量調節や、ビームフォーミング範囲に移動することができる。また、音声入力以外の他の任意の入力に関しても、同様の応用がなされてもよい。
以上、本例に係る情報処理システム100の概要を説明した。続いて、本例に係る情報処理システム100に特徴的な構成を説明する。
(構成例)
(1)入力部110
本例に係る入力部110は、音声入力部としての機能を有する。例えば、入力部110の音声入力部としての機能は、マイク(マイクロホン)により実現される。特に、本例では、ビームフォーミングが可能なマイクとして、例えば複数のマイクを組み合わせたマイクアレイとして実現される。入力部110は、マイクロホンで得られた音声信号を増幅処理するマイクアンプ回路やA/D変換器、音声データに対してノイズ除去、音源分離等の処理を行う信号処理回路を有していてもよい。入力部110は、処理した音声データを制御部120へ出力する。
(2)検出部121
本例に係る検出部121は、音声入力部として機能するマイクの指向性を制御する、入力制御部としての機能を有する。例えば、検出部121は、図77及び図78を参照して上記説明したように、複数のマイクを組み合わせたマイクアレイを用いて、指向性を制御する。
また、検出部121は、音声入力を行うユーザの位置を推定する、ユーザ位置推定機能を有する。検出部121は、多様な手段でユーザの位置を推定し得る。以下では、図232〜図237を参照して、ユーザ位置推定機能の一例を説明する。
図232は、本例に係るユーザ位置推定機能の一例を説明するための説明図である。図232に示すように、入力部110は、テーブル140aよりも広い撮像領域4107を、監視対象として撮像している。テーブル140aには、音声入力開始を指示するための音声入力開始オブジェクト4108が表示されている。まず、検出部121は、撮像領域4107の撮像画像に基づいて、音声入力開始オブジェクト4108をタッチしたユーザ4105を特定する。そして、検出部121は、特定したユーザの位置4109を推定する。
図233は、本例に係るユーザ位置推定機能の一例を説明するための説明図である。図233の左図に示すように、入力部110は、音声入力開始オブジェクト4108をタッチしたユーザの腕の、肘から指先の部分を含む領域を、撮像領域4107としている。まず、検出部121は、音声入力開始オブジェクト4108へのタッチを検出した時点での撮像領域4107の撮像画像から、タッチした指又は腕の方向4110を検出する。そして、図233の右図に示すように、検出部121は、タッチした指又は腕の方向4110の延長線上であって、所定距離4111離れた位置として、ユーザ位置4109を推定する。本処理は、例えば撮像領域4107がテーブル140a上に限られる場合に用いられ得る。
図234は、本例に係るユーザ位置推定機能の一例を説明するための説明図である。図234の左図に示すように、入力部110は、音声入力開始オブジェクト4108をタッチしたユーザの腕を含む領域であって、テーブル140a上の領域を撮像領域4107としている。まず、検出部121は、音声入力開始オブジェクト4108へのタッチを検出した時点での撮像領域4107の撮像画像から、タッチした腕の形状を検出する。そして、検出部121は、検出した腕の形状を、腕の向きと顔の位置との関係を示すモデル4112に照合することで、顔の位置を推定する。このようにして、図234の右図に示すように、検出部121は、ユーザの顔の位置をユーザ位置4109として推定する。本処理は、例えば撮像領域4107がテーブル140a上に限られる場合に用いられ得る。
図235は、本例に係るユーザ位置推定機能の一例を説明するための説明図である。図235の左図に示すように、検出部121は、音声入力開始オブジェクト4108へのタッチを検出して、マイクアイコン4102からタッチ点への方向4113を検出する。そして、図235の右図に示すように、検出部121は、マイクアイコン4102からタッチ点への方向4113の延長線上にユーザが位置すると推定する。本処理は、例えば撮像領域4107がない、又は撮像領域4107においてユーザが検出されない場合に用いられ得る。
上記では、検出部121は、音声入力開始オブジェクト4108へのタッチを契機としてユーザ位置を推定したが、本機能はかかる例に限定されない。以下では、図236〜図237を参照して、ユーザ位置推定機能の他の一例を説明する。
図236は、本例に係るユーザ位置推定機能の一例を説明するための説明図である。図236に示すように、検出部121は、音声入力開始を指示するユーザのジェスチャを検出する。ジェスチャとしては、例えば円を描く、指を開く等が考えられる。そして、検出部121は、図235を参照して上記説明した技術と同様に、マイクアイコン4102からユーザのジェスチャが検出された位置への方向4114の延長線上にユーザが位置すると推定する。他にも、検出部121は、ユーザのジェスチャを契機として、図232〜図234を参照して上記説明した技術と同様にしてユーザ位置を推定してもよい。
図237は、本例に係るユーザ位置推定機能の一例を説明するための説明図である。図237に示すように、検出部121は、音声入力開始を指示するユーザの音声を検出する。検出部121は、例えば予め定められたキーワードを、音声入力開始を指示する音声として検出し得る。そして、検出部121は、図235を参照して上記説明した技術と同様に、マイクアイコン4102からユーザの音声が検出された方向4115の延長線上にユーザが位置すると推定する。他にも、検出部121は、ユーザ音声の検出を契機として、図232〜図234を参照して上記説明した技術と同様にしてユーザ位置を推定してもよい。
他にも、例えば、検出部121は、ユーザが音声入力開始オブジェクト4108を手元に引き寄せたことを契機としてユーザ位置を推定してもよい。この場合、検出部121は、引き寄せられた位置の付近、又はマイクアイコン4102から音声入力開始オブジェクト4108への方向の延長線上にユーザが位置すると推定し得る。
以上、ユーザ位置推定機能の一例を説明した。
検出部121は、推定したユーザ位置をビームフォーミング範囲に含むように、音声入力部を制御して指向性を形成する。検出部121は、複数のビームフォーミング範囲を形成するよう音声入力部を制御してもよい。例えば、複数のユーザごとにビームフォーミング範囲が形成される場合、各ユーザからの音声入力に関する音声認識精度を向上させることができる。
検出部121は、ユーザの位置の推定結果の更新に応じて、形成する指向性の範囲を更新してもよい。例えば、検出部121は、ユーザが移動した場合にビームフォーミング範囲をユーザに追随させる。他にも、検出部121は、ユーザの位置の推定結果が安定する場合、ユーザが同一の位置に留まっており且つ推定結果が正しいと予測されるので、ビームフォーミング範囲を狭めてもよい。これらの場合、音声認識精度が向上し得る。また、検出部121は、ユーザ入力に基づいて音声入力部の指向性の範囲を変更してもよい。例えば、検出部121は、ユーザ入力に応じて、音声入力部が形成する指向性の範囲を上下左右に移動させたり、広げたり、狭めたりする。
(3)出力制御部122
本例に係る出力制御部122は、音声入力部がビームフォーミングを行って形成する指向性の範囲(ビームフォーミング範囲)を示す表示を制御する表示制御部としての機能を有する。具体的には、出力制御部122は、音声入力部のビームフォーミング範囲を示す情報を表示するよう、出力部130を制御する。この表示は、検出部121により形成される指向性の範囲と同一であってもよいし、異なっていてもよい。例えば、出力制御部122は、検出部121により形成される指向性の範囲を、誇張、簡略化、又は拡縮等して変形した範囲を示す表示を行ってもよい。なお、出力制御部122は、音声出力部又は他の任意の入力部若しくは出力部のビームフォーミング範囲を示す表示を制御してもよい。また、出力制御部122は、表示以外にも、ビームフォーミング範囲を示す他の任意の出力を制御してもよい。以下、図238を参照して、ビームフォーミング範囲を示す表示の具体例について説明する。
図238は、本例に係るユーザインタフェースの一例を説明するための説明図である。図238に示すように、出力制御部122は、ビームフォーミング範囲を示す表示4120を表示する。この表示により、ユーザは、音声入力に関するビームフォーミングが行われていることを知ることができ、上述したようにユーザの心理的負荷及び肉体的負荷が軽減される。また、ビームフォーミング範囲を示す表示4120は、マイクアイコン4102を中心とする扇形である。ユーザ側からこの扇形を見ると、マイクアイコン4102に向かってビームフォーミング範囲が収束している。このため、自然とユーザはマイクアイコン4102に向かって発話するよう促され、マイクがマイクアイコン4102の真上又はその付近に設けられる場合には、音声認識の精度が向上する。ここで、ビームフォーミング範囲を示す表示4120は、マイクアイコン4102を中心とした360度方向の任意の範囲に表示される。これにより、ユーザがテーブル140aの周囲のどの位置にいたとしても、マイクアイコン4102に向かって発話することとなる。マイクがマイクアイコン4102の真上又はその付近に設けられる場合、ユーザは、テーブル140aの周囲のどの位置にいたとしてもマイクに向かって発話することとなり、音声認識の精度が向上する。
出力制御部122は、検出部121により推定されたユーザの位置を、ビームフォーミング範囲を示す表示の位置又は形状の少なくともいずれかに反映させてもよい。例えば、出力制御部122は、推定されたユーザ位置の付近にビームフォーミング範囲を示す表示を行ってもよいし、推定されたユーザ位置に向かって広がる又は狭まる形状でビームフォーミング範囲を示す表示を行ってもよい。以下、図239〜図240を参照して、本例に係るユーザ位置に応じたユーザインタフェースの一例を説明する。
図239は、本例に係るユーザインタフェースの一例を説明するための説明図である。図239の左図に示すように、ユーザが音声入力開始オブジェクト4108をタッチすると、検出部121は、上述したいずれかの処理を用いてユーザ位置4109を検出する。そして、図239の右図に示すように、出力制御部122は、マイクアイコン4102と推定したユーザ位置4109とを結ぶ線の左右に広がる、扇形状のビームフォーミング範囲を示す表示4120を表示する。このような、ユーザ位置が反映されたビームフォーミング範囲を示す表示により、ユーザは、自身を対象としたビームフォーミングが行われていることを知ることができる。例えば、ビームフォーミング範囲が自身の位置に適合している場合、上述したようにユーザの心理的負荷及び肉体的負荷が軽減される。
図240は、本例に係るユーザインタフェースの一例を説明するための説明図である。符号4105Aは、音声入力が開始された当初のユーザ位置を示し、符号4105Bは、移動後のユーザ位置を示している。図240に示すように、音声入力が開始された当初の位置(4105A)が、ビームフォーミング範囲を示す表示4120からずれている場合、ユーザは、自然とずれを解消する位置(4105B)に移動するよう促される。これにより、ユーザが、マイクが形成する指向性の範囲内に移動すれば、情報処理システム100による音声認識精度が向上する。
ビームフォーミング範囲を示すUIは多様に考えられる。UIのバリエーションについては、後に詳しく説明する。
出力制御部122は、音声入力部により得られた音声の音量を示す表示を制御してもよい。これにより、ユーザは、音声入力されている自身の音量を知ることができる上に、周囲の雑音の音量との比較を行うことができる。以下、図241を参照して、本例に係る音量を示すユーザインタフェースの一例を説明する。
図241は、本例に係るユーザインタフェースの一例を説明するための説明図である。図241を示した例では、情報処理システム100は、マイクアイコン4102の周囲に円弧状に広がる音量レベルにより、音量を示す表示4130を表示している。この表示により、ユーザは、各方向からの音量を知ることができる。
出力制御部122は、指向性の範囲を示す情報及び音量を示す情報を同時に表示させてもよい。例えば、出力制御部122は、ビームフォーミング範囲を示す表示と音量を示す表示とを、同一表示面上で同時に表示させてもよい。以下、図242を参照して、ビームフォーミング範囲を示す表示及び音量を示す表示が同時に表示される場合のユーザインタフェースの一例を説明する。
図242は、本例に係るユーザインタフェースの一例を説明するための説明図である。図242に示した例では、情報処理システム100は、ビームフォーミング範囲を示す表示4120と音量を示す表示4130とを同時に行っている。なお、本例では、音量を示す表示4130は、音量レベルに応じて表示色が変化する。
出力制御部122は、指向性の範囲内で得られた音声の音量を示す情報と指向性の範囲外で得られた音声の音量を示す情報とを、表示方法を区別して表示させてもよい。例えば、出力制御部122は、音量を示す表示に、ビームフォーミング範囲内/範囲外を示す情報を反映させてもよい。具合的には、出力制御部122は、ビームフォーミング範囲内から得られた音声の音量か範囲外から得られた音声の音量かで、色合い、濃淡、立体表示した際の高低、又は破線か実線か、といった表示方法を分けて音量を示す表示を行う。逆の観点から言えば、出力制御部122は、ビームフォーミング範囲を示す表示に、音量を示す情報を反映させてもよい。このように、出力制御部122は、ビームフォーミング範囲という位置範囲を示す2次元の表示に、音量という軸を追加した3次元的な表示を行うことができる。この場合、1つの表示で、ビームフォーミング範囲及び音量の2つの意味を表現することが可能となるので、表示面上の表示領域が節約されると共に、ユーザの理解がより容易になる。
ビームフォーミング範囲を示す表示と音量を示す表示とを同時に行うUIは多様に考えられる。UIのバリエーションについては、後に詳しく説明する。
出力制御部122は、音声入力部により取得された音声に基づく音声認識結果を示す情報を表示させてもよい。例えば、出力制御部122は、音声入力部により取得された音声に基づいて、ブラウザ等のアプリケーションを起動してもよいし、検索語の入力等のアプリケーションへの音声入力を行ってもよい。以下、図243を参照して、音声認識結果を示す表示に係るユーザインタフェースの一例を説明する。
図243は、本例に係るユーザインタフェースの一例を説明するための説明図である。図243に示した例では、出力制御部122は、ユーザによる音声入力に応じたアプリケーションウィンドウ4101を起動している。他にも、図230又は図231に示したように、出力制御部122は、音声入力の成功/失敗を示す情報、又は音声入力された文言をテキスト表示してもよい。
出力制御部122は、ビームフォーミング範囲を示す表示を複数表示してもよいし、ビームフォーミング範囲を示す表示を動的に変更してもよい。例えば、出力制御部122は、検出部121により複数のビームフォーミング範囲が形成された場合、それに応じてビームフォーミング範囲を示す表示を複数表示する。また、出力制御部122は、検出部121により動的にビームフォーミング範囲が変更された場合、それに応じてビームフォーミング範囲を変更し得る。UIのバリエーションについては、後に詳しく説明する。
(4)出力部130
本例に係る出力部130は、画像を表示する表示部としての機能を有する。例えば、出力部130は、図1〜図4に示したように、テーブル140aの上部又は下部からテーブル140aに向けて投影するプロジェクタ、タッチパネル式又はフラットパネル式のディスプレイにより実現される。他にも、出力部130は、スピーカ等の音声出力部としての機能を有していてもよい。
以上、本例に特徴的な情報処理システム100の構成例について説明した。
(UIのバリエーション)
・ビームフォーミング範囲を示す表示
以下では、本例に係るUIのバリエーションについて説明する。まず、図244〜図248を参照して、ビームフォーミング範囲を示す表示に係るユーザインタフェースのバリエーションについて説明する。
図244は、本例に係るユーザインタフェースの一例を説明するための説明図である。図244では、ビームフォーミング範囲を示す表示4120が、扇形状に表示されている。
図245は、本例に係るユーザインタフェースの一例を説明するための説明図である。図245では、ビームフォーミング範囲を示す表示4120が、矢印で表示されている。この表示では、音声入力部が形成する指向性の方向が、矢印の向きで表されている。
図246は、本例に係るユーザインタフェースの一例を説明するための説明図である。図246では、ビームフォーミング範囲を示す表示4120が、色合いで表現されている。より詳しくは、マイクアイコンの周囲に表示された環状のオブジェクトが表示されており、この環状のオブジェクトのうちビームフォーミング範囲に対応する箇所4120が、他とは異なる色で表示されている。
図247は、本例に係るユーザインタフェースの一例を説明するための説明図である。図247では、マイクアイコンと共に、音声認識結果を示す吹き出しが表示されている。この例では、マイクアイコン及び吹き出しが、ビームフォーミング範囲を示す表示4120として機能する。例えば、マイクアイコン及び吹き出しを示す表示4120が、マイクの指向性が向く方向に移動する。よって、マイクアイコン及び吹き出しを示す表示4120の表示位置によって、ビームフォーミング範囲が表現される。出力制御部122は、ユーザ位置とマイクアイコン及び吹き出しを示す表示4120とを結ぶ線の延長線上にマイクが位置するように表示位置を制御することで、音声認識精度を向上させることができる。
図248は、本例に係るユーザインタフェースの一例を説明するための説明図である。図248に示した例は、図247に示した例から、マイクアイコンの表示を省略した例である。
以上、ビームフォーミング範囲を示す表示に係るユーザインタフェースのバリエーションについて説明した。
・ビームフォーミング範囲及び音量を示す表示
続いて、図249〜図253を参照して、ビームフォーミング範囲を示す表示及び音量を示す表示の同時表示に係るユーザインタフェースのバリエーションについて説明する。
図249は、本例に係るユーザインタフェースの一例を説明するための説明図である。図249に示した例では、マイクアイコン4102の周囲に円弧状に広がる音量レベルにより、音量を示す表示がなされている。また、図249に示した例では、音声認識可能な大きさに達した音量レベルの色合いにより、ビームフォーミング範囲が表現されている。例えば、符号4140Aは、ビームフォーミング範囲から取得された、即ち音声認識対象のユーザから取得された音量を表している。また、符号4140Bは、ビームフォーミング範囲以外から取得された、即ち音声認識対象外の他のユーザ等から取得された雑音の音量を表している。このように、情報処理システム100は、ビームフォーミング範囲を示す表示及び音量を示す表示を、同時に表示させることができる。
図250は、本例に係るユーザインタフェースの一例を説明するための説明図である。図250では、図249に示した例に、さらにビームフォーミング範囲を示す表示4120が重畳的に表示されている。この例によれば、ユーザは、ビームフォーミング範囲をより簡易に知ることができる。
図251は、本例に係るユーザインタフェースの一例を説明するための説明図である。図251に示した例では、表示面の端部の内側に、ビームフォーミング範囲及び音量を示す表示4140(4140A及び4140B)が表示されている。この表示4140では、端部からの高さにより音量が表されている。また、この表示4140では、色合いによりビームフォーミング範囲が表現されている。例えば、符号4140Aは、ビームフォーミング範囲から取得された、即ち音声認識対象のユーザから取得された音量を表している。また、符号4140Bは、ビームフォーミング範囲以外から取得された、即ち音声認識対象外の他のユーザ等から取得された雑音の音量を表している。
図252は、本例に係るユーザインタフェースの一例を説明するための説明図である。図252に示した例は、図248に示した吹き出しを示す表示4120の中で、図251に示した表示を行う形態である。
図253は、本例に係るユーザインタフェースの一例を説明するための説明図である。図253に示した例では、マイクアイコンの周囲に、図251に示した例と同様のビームフォーミング範囲及び音量を示す表示4140が表示されている。この表示4140では、マイクアイコンからの高さにより音量が表されている。また、この表示4140では、色合いによりビームフォーミング範囲が表現されている。
以上、ビームフォーミング範囲を示す表示及び音量を示す表示の同時表示に係るユーザインタフェースのバリエーションについて説明した。
・複数のビームフォーミング範囲を示す表示
続いて、図254〜図261を参照して、ビームフォーミング範囲を示す表示の複数表示に係るユーザインタフェースのバリエーションについて説明する。
図254は、本例に係るユーザインタフェースの一例を説明するための説明図である。図254に示すように、音声入力を行うユーザがテーブル140aの周辺に複数存在し得る。この場合、検出部121は、各ユーザをそれぞれビームフォーミング範囲に含むように、音声入力部を制御して複数の指向性を形成する。出力制御部122は、ビームフォーミングが複数なされる場合に、指向性の範囲を示す表示を複数表示してもよい。例えば、出力制御部122は、複数形成された指向性の範囲にそれぞれ対応する、ビームフォーミング範囲を示す表示を複数表示する。図254に示した例では、ユーザ4105Aへのビームフォーミング範囲を示す表示4120A、及びユーザ4105Bへのビームフォーミング範囲を示す表示4120Bが表示されている。また、図254に示した例では、音声入力を受け付けるアプリケーションが複数あり、それぞれ異なるビームフォーミング範囲からユーザの音声入力を受け付けている。詳しくは、ユーザ4105Aの音声認識結果は、アプリケーションウィンドウ4101Aへの入力となり、ユーザ4105Bの音声認識結果は、アプリケーションウィンドウ4101Bへの入力となる。
図255は、本例に係るユーザインタフェースの一例を説明するための説明図である。図255に示すように、出力制御部122は、ユーザ4105Aへのビームフォーミング範囲を示す表示4120A、及びユーザ4105Bへのビームフォーミング範囲を示す表示4120Bを表示している。図255に示した例では、ひとつのアプリケーションが複数のビームフォーミング範囲から取得された音声入力を受け付けている。詳しくは、ユーザ4105A及び4105B音声認識結果は、アプリケーションウィンドウ4101への入力となる。
図256は、本例に係るユーザインタフェースの一例を説明するための説明図である。図256に示すように、複数のビームフォーミング範囲を示す表示は重複し得る。この場合、複数のユーザ音声が混じって情報処理システム100に入力され得るので、誤動作が生じる可能性がある。このため、出力制御部122は、複数表示される指向性の範囲を示す表示が重複する場合に警告表示を行ってもよい。図256に示した例では、ビームフォーミング範囲を示す表示4120A及び4120Bが重複する部分に、警告表示4150が表示されている。ユーザは、この警告表示4150に応じて、ユーザ同士が互いに離れるよう移動したり、ビームフォーミング範囲を移動又は狭めたりする操作を行うことで、誤動作を防止することができる。
ここで、図254に示した例のように、音声入力を受け付けるアプリケーションが複数ある場合、ビームフォーミング範囲と音声入力先のアプリケーションとの関連が明示されることが望ましい。このため、出力制御部122は、ビームフォーミング範囲を示す表示と、当該ビームフォーミング範囲を形成する音声入力部により入力される音声を受け付ける表示オブジェクトとを関連付ける表示を行ってもよい。以下、図257〜図259を参照して、関連付けの表示に係るユーザインタフェースのバリエーションについて説明する。
図257は、本例に係るユーザインタフェースの一例を説明するための説明図である。図257に示した例では、ビームフォーミング範囲を示す表示4120と、当該ビームフォーミング範囲から取得された音声の入力先であるアプリケーションウィンドウ4101の端部4151とが、同一の色合いによって関連付けが表現されている。
図258は、本例に係るユーザインタフェースの一例を説明するための説明図である。図258に示した例では、ビームフォーミング範囲を示す表示4120と、当該ビームフォーミング範囲から取得された音声の入力先であるアプリケーションウィンドウ4101とが、線4152で連結されることによって関連付けが表現されている。
図259は、本例に係るユーザインタフェースの一例を説明するための説明図である。図259に示した例では、一方のビームフォーミング範囲から取得された音声の音量レベルを示す表示4140Aと、当該ビームフォーミング範囲から取得された音声の入力先であるアプリケーションウィンドウ4101Aの端部4151Aとが、同一の色合いによって関連付けが表現されている。同様に、他方のビームフォーミング範囲から取得された音声の音量レベルを示す表示4140Bと、当該ビームフォーミング範囲から取得された音声の入力先であるアプリケーションウィンドウ4101Bの端部4151Bとが、同一の色合いによって関連付けが表現されている。
ここで、音声入力を受け付けるアプリケーションが複数ある場合、マイクアイコンが複数表示されてもよい。以下、図260及び図261を参照して、マイクアイコンの複数表示に係るユーザインタフェースのバリエーションについて説明する。
図260及び261は、本例に係るユーザインタフェースの一例を説明するための説明図である。図260に示す例では、音声入力を受け付けるアプリケーションウィンドウ4101A、4101B、4101Cごとに、マイクアイコン4102A、4102B、4102Cが表示されている。そして、各マイクアイコン4102A、4102B、4102Cから、ビームフォーミング範囲を示す表示4120A、4120B、4120Cが表示されている。
ただし、図261に示すように、例えばテーブル140aの中心(符号4153)の真上にマイクが設けられている場合には、マイクアイコン4102A、4102B、4102Cの真上にマイクが設けられないこととなる。このため、図261に示すように、ユーザがマイクアイコン4102に向かって発話すると、マイクが設けられた位置とは異なる方向へ向けて発話することとなり、音声認識の精度が向上するとは言い難い。しかしながら、発話された音声は広がるので、音声認識精度への影響は軽微であると考えられる。
以上、複数のビームフォーミング範囲を示す表示に係るユーザインタフェースのバリエーションについて説明した。
・ビームフォーミング範囲を示す表示の動的変化
続いて、図262〜図265を参照して、ビームフォーミング範囲を示す表示の動的変化に係るユーザインタフェースのバリエーションについて説明する。
図262は、本例に係るユーザインタフェースの一例を説明するための説明図である。例えば、検出部121が、ユーザ位置を誤って推定してしまい、その結果誤った方向4160Aにビームフォーミング範囲を形成する場合がある。この場合、図262の左図に示すように、出力制御部122は、ユーザ4105Aの位置からずれた、初期のビームフォーミング範囲を示す表示4120Aを表示する。しかし、検出部121は、ユーザの位置の推定結果の更新に応じて、形成する指向性の範囲を更新し得る。出力制御部122も同様に、ユーザの位置の推定結果の更新に応じて、ビームフォーミング範囲を示す表示を更新してもよい。図262の右図に示すように、検出部121は、ユーザ位置を推定し直すと、推定し直したユーザの方向4160Bにビームフォーミング範囲を形成する。この場合、出力制御部122は、ユーザ4105Aの位置に向けて、更新したビームフォーミング範囲を示す表示4120Bを表示する。これにより、ユーザは、自身の音声が正しく認識されていることを知り、安心感を覚えることができる。なお、検出部121は、初期のビームフォーミング範囲内又はその周辺でユーザが発話を継続する場合に、そのユーザに向けてビームフォーミング範囲を更新してもよい。この場合、図262の右図に示すように、ビームフォーミング範囲を示す表示4120Bは、当初のビームフォーミング範囲を示す表示4120Aの付近に位置していたユーザ4105Aに向けられることとなり、異なる方向に位置するユーザ4105Bには向けられない。
図263は、本例に係るユーザインタフェースの一例を説明するための説明図である。図263の左図に示すように、出力制御部122は、当初は幅の広いビームフォーミング範囲を示す表示4120を表示する。そして、その範囲内でユーザが発話を継続する場合に、出力制御部122は、ユーザの方向を中心としてビームフォーミング範囲を示す表示4120を狭める。これにより、ユーザは、自身の音声が正しく認識されていることを知り、安心感を覚えることができる。
上記では、情報処理システム100側でビームフォーミング範囲を示す表示を変更する例を説明したが、本技術はかかる例に限定されない。例えば、ユーザは、ビームフォーミング範囲を示す表示を変更させることができる。例えば、ユーザは、図256に示したような複数のビームフォーミング範囲を示す表示が重複する場合に、ビームフォーミング範囲の重複を解消するような操作を行うことができる。以下、図264及び図265を参照して、ユーザ操作に応じたビームフォーミング範囲を示す表示の動的変化に係るユーザインタフェースのバリエーションについて説明する。
図264は、本例に係るユーザインタフェースの一例を説明するための説明図である。図264の左図に示すように、ビームフォーミング範囲を示す表示4120A及び4120Bが重複し、警告表示4150が表示されている。図264の左図に示すように、ユーザが、ビームフォーミング範囲を示す表示4120Aに対して、右から左へスライドさせる操作を行った場合を想定する。本操作に応じて音声入力部のビームフォーミング範囲が右から左へ移動し、これに伴い、図264の右図に示すように、ビームフォーミング範囲を示す表示4120Aが右から左へ移動する。これにより、ビームフォーミング範囲の重複が解消されるので、誤作動が防止される。なお、図264の左図に示したビームフォーミング範囲を示す表示4120Aは、例えば、音声入力開始オブジェクト4108にタッチした際に一時的に表示されるプレビュー表示であってもよい。この場合、ユーザは、プレビュー表示された領域を移動させてから音声認識を開始させることができる。
図265は、本例に係るユーザインタフェースの一例を説明するための説明図である。図265の左図に示すように、ビームフォーミング範囲を示す表示4120A及び4120Bが重複し、警告表示4150が表示されている。図265の左図に示すように、ユーザが、ビームフォーミング範囲を示す表示4120Aに対して、表示領域を左右から狭める操作を行った場合を想定する。本操作に応じて音声入力部のビームフォーミング範囲が狭まり、これに伴い、図265の右図に示すように、ビームフォーミング範囲を示す表示4120Aが狭まる。これにより、ビームフォーミング範囲の重複が解消されるので、誤作動が防止される。
なお、図264及び図265に示した例では、ビームフォーミング範囲を変更するユーザ入力が、ビームフォーミング範囲を示す表示に対するユーザ操作であるものとして説明したが、本技術はかかる例に限定されない。例えば、キーボード又はリモートコントローラ等のハードウェアを介した入力であってもよいし、音声入力等であってもよい。
以上、本例に係るUIのバリエーションについて説明した。続いて、図266を参照して、本例に係る情報処理システム100において実行される動作処理について説明する。
(動作処理)
図266は、本例に係る情報処理システム100において実行される表示制御処理の流れの一例を示すフローチャートである。
図266に示すように、ステップS4102で、検出部121は、ユーザ位置を推定する。例えば、検出部121は、図232〜図237を参照して上記説明したユーザ位置推定機能を用いて、音声認識の対象となるユーザの位置を推定する。
次いで、ステップS4104で、検出部121は、ビームフォーミングを行う。例えば、検出部121は、推定したユーザ位置をビームフォーミング範囲に含むように、音声入力部を制御して指向性を形成する。
次に、ステップS4106で、出力制御部122は、ビームフォーミング範囲を示す表示を出力する。例えば、出力制御部122は、図238〜図261を参照して上記説明したように、検出部121により形成された音声入力部のビームフォーミング範囲を示す表示を行うよう出力部130を制御する。
次いで、ステップS4108で、出力制御部122は、ビームフォーミング範囲を示す表示を更新する。例えば、出力制御部122は、図262〜図265を参照して上記説明したように、検出部121により動的にビームフォーミング範囲が変更された場合、それに応じてビームフォーミング範囲を変更する。
次に、ステップS4110で、出力制御部122は、ビームフォーミング範囲を示す表示を終了するか否かを判定する。例えば、出力制御部122は、ビームフォーミング範囲を示す表示又はアプリケーション自体の終了を指示するユーザ操作の有無により、ビームフォーミング範囲を示す表示を終了するか否かを判定する。
終了しないと判定された場合(S4110/NO)、処理は再度ステップS4108へ進む。終了すると判定された場合(S4110/YES)、処理は終了する。
以上、本例に係る情報処理システム100において実行される動作処理について説明した。
[例6]
本例は、上記説明した具体例9に関する実施例である。本例では、図267〜図290を参照して、具体例9に係る内部処理について詳しく説明する。以下では、プロジェクション型の情報処理システム100aを想定して説明するが、図1〜図4を参照して説明したどのタイプでも、以下に説明する例に係るUIを実現可能である。
(概要)
図267は、本例に係るユーザインタフェースの概要を説明するための説明図である。本例に係る情報処理システム100は、実オブジェクト、既存の表示オブジェクト、及びユーザとの関係で、起動するアプリケーションの表示領域(位置、大きさ、及び傾き)を自動的に選択する。ここで、実オブジェクトとは、書籍や皿等の実際に存在する実物体を指す。表示オブジェクトとは、アイコン又はアプリケーションウィンドウ等の、テーブル140a上に表示される表示画像を指す。ユーザとは、起動するアプリケーションの対象者を指す。なお、既存の表示オブジェクトを、以下では既存ウィンドウとも称する。なお、本例では、表示面とテーブル140aとが一致しているものとして説明する。
図267の符号4211では、実物体4222及び既存ウィンドウ4223が混在するテーブル140a上で、ユーザがアプリケーションを起動させるための起動指示オブジェクト4224をタッチした様子を示している。情報処理システム100は、起動指示オブジェクト4224へのタッチを契機として、表示領域決定処理を開始する。具体的には、情報処理システム100は、既存ウィンドウ4223の表示領域(符号4212)、実物体4222が存在する存在領域(符号4213)、並びにユーザの位置及び向き(符号4214)を検出する。そして、情報処理システム100は、既存ウィンドウ4223との関係、実物体4222との関係、及びユーザとの関係で、起動指示に対応するアプリケーションの表示オブジェクト4221(以下、起動ウィンドウとも称する)の表示領域を決定する。例えば、情報処理システム100は、符号4215に示すように、既存ウィンドウの表示領域及び実物体の存在領域に重複せず且つユーザに近い場所に、ユーザの顔の向きに応じてユーザに正対するよう角度θ傾けて、起動ウィンドウ4221の表示領域を決定する。
プロジェクション型の情報処理システム100aでは、テーブル140a上に実物体が載置されたり、既存ウィンドウが表示されたりしている場合があり、またユーザ位置も流動的である。このため、適切な表示領域が決定されない場合、起動ウィンドウがユーザから遠くて届かない、起動ウィンドウを見やすく調整する手間が生じてしまう、又は既存ウィンドウが起動ウィンドウに隠れてしまう等の事態が生じ得る。
そこで、本例に係る情報処理システム100は、起動ウィンドウの表示領域を、実オブジェクト、表示オブジェクト、及びユーザとの関係に基づいて適切に決定する。これにより、起動ウィンドウがユーザから操作しやすい場所に表示されるので、ユーザは、起動後すぐに起動ウィンドウに対する操作を行うことができる。また、起動ウィンドウがユーザに正対するように表示される場合、ユーザは、何ら調整することなく起動ウィンドウの情報を確認できる。さらに、起動ウィンドウが既存ウィンドウを覆い隠さないように表示される場合、起動ウィンドウが既存ウィンドウへの操作を妨害することが防止される。本例では、このようにしてユーザの利便性が向上する。
(構成例)
図268は、本例に係る情報処理システム100の論理的な構成の一例を示すブロック図である。図268に示すように、本例に係る情報処理システム100は、入力部110、制御部120、及び出力部130を有する。
(1)入力部110
本例に係る入力部110は、例えば画像(静止画像又は動画像)を取得するカメラ、及び深度情報を取得するステレオカメラにより実現される。例えば、入力部110は、撮像した撮像画像及び取得した深度情報を、制御部120へ出力する。また、入力部110は、テーブル140aに設けられたタッチセンサや、リモートコントローラ等の任意の入力装置により実現されてもよく、音声入力やタッチ操作などのユーザ操作を取得して、制御部120へ出力し得る。
(2)出力部130
本例に係る出力部130は、画像を表示する表示部としての機能を有する。例えば、出力部130は、図1〜図4に示したように、テーブル140aの上部又は下部からテーブル140aに向けて投影するプロジェクタ、タッチパネル式又はフラットパネル式のディスプレイにより実現される。他にも、出力部130は、スピーカ等の音声出力部としての機能を有していてもよい。
(3)制御部120
本例に係る制御部120は、実オブジェクト、既存の表示オブジェクト、及びユーザとの関係で、アプリケーションの表示領域を決定するための各種処理を行う。図268に示すように、制御部120は、実オブジェクト認識部4201、表示オブジェクト認識部4202、及びユーザ認識部4203としての機能を有する検出部121、並びに出力制御部122を有する。
(3−1)実オブジェクト認識部4201
実オブジェクト認識部4201は、テーブル140a(表示面)上の実オブジェクトを認識する機能を有する。例えば、実オブジェクト認識部4201は、入力部110から出力された深度情報から、テーブル140a上の実オブジェクトの存在領域を認識する。以下、図269を参照して、実オブジェクト認識部4201による実オブジェクトの認識機能の一例を説明する。
図269は、本例に係る実オブジェクト認識機能の一例を説明するための説明図である。図269では、入力部110から出力される深度情報の一例であり、深度が濃淡で表現されている。符号4231は、テーブル140aのうち上に何も実物体がない領域の深度を示している。符号4232は、実物体が存在する領域の深度を示しており、符号4233は、ユーザの手が存在する領域の深度を示している。実オブジェクト認識部4201は、符号4232及び4233に示すように、テーブル140aのうち符号4231に示した領域よりも深度が小さい(本体までの距離が近い)領域を、実物体の存在領域として認識する。ただし、実オブジェクト認識部4201は、頻繁に動く領域(符号4233)については、実物体の存在領域として認識せず、動かない又は動きが少ない領域(符号4232)のみを、実物体の存在領域として認識してもよい。腕等は、起動ウィンドウの障害物には相当しないためである。実オブジェクト認識部4201は、深度情報の他に、例えば赤外線センシング結果に基づいて、実物体の存在領域を認識してもよい。
また、実オブジェクト認識部4201は、実物体の内容を認識してもよい。例えば、実オブジェクト認識部4201は、テーブル140a上の状態を撮像した撮像画像のうち実物体の存在領域に相当する部分を画像認識することで、テーブル140a上の実物体が何であるかを認識し得る。
(3−2)表示オブジェクト認識部4202
表示オブジェクト認識部4202は、テーブル140a上にすでに表示されている、既存の表示オブジェクトを認識する機能を有する。例えば、表示オブジェクト認識部4202は、出力制御部122による表示制御処理を監視して、既存の表示オブジェクトの表示領域及び内容(何のアプリケーションか)を認識する。
(3−3)ユーザ認識部4203
ユーザ認識部4203は、アプリケーションの起動対象者であるユーザを認識する機能を有する。例えば、ユーザ認識部4203は、入力部110から出力された撮像画像に基づいて、起動指示オブジェクト4224をタッチしたユーザの位置及び向きを認識する。ユーザ認識部4203による認識処理は多様に考えられる。ユーザ認識処理については、後に図275〜図279を参照して詳しく説明するため、ここでの説明は省略する。
(3−4)出力制御部122
出力制御部122は、起動ウィンドウの表示領域を決定して、決定した表示領域に起動ウィンドウを表示するよう出力部130を制御する、表示制御部として機能する。出力制御部122による表示領域決定処理は多様に考えられる。本明細書では、表示領域決定処理の一例を2つ挙げて説明する。
(1)第1の処理例
例えば、出力制御部122は、実オブジェクトとの関係、既存の表示オブジェクトとの関係、又はユーザとの関係の少なくともいずれかに基づいて、起動するアプリケーションの表示オブジェクト(起動ウィンドウ)の表示領域を決定する。例えば、出力制御部122は、位置、大きさ、又は角度の少なくともいずれかにより起動ウィンドウの表示領域を決定する。例えば、出力制御部122は、既存の表示オブジェクト及び実オブジェクトと重ならない領域を、ウィンドウ起動可能エリアとして決定する。なお、ウィンドウ起動可能エリアとは、内部に起動ウィンドウの表示領域を決定可能なエリアである。そして、出力制御部122は、ウィンドウ起動可能エリア内であって、ユーザに近い位置、既存の表示オブジェクト及び実オブジェクトと重ならない大きさ、及びユーザに正対する角度を、起動ウィンドウの表示領域として決定する。
・実オブジェクトとの関係
出力制御部122は、表示面上の実オブジェクトの情報に応じて、表示面に表示される起動ウィンドウの表示領域を決定する。例えば、出力制御部122は、実オブジェクトに重ならないように起動ウィンドウの表示領域を決定する。他にも、出力制御部122は、実オブジェクトに重なるように起動ウィンドウの表示領域を決定してもよい。
実オブジェクトの情報とは、実オブジェクトの存在領域を示す情報の他、例えば実オブジェクトの属性情報を含む情報である。属性情報は、多様な情報を含み得る。例えば、属性情報は、実オブジェクトを移動させる困難さに関する情報を含んでもよい。移動させる困難さは、例えば実オブジェクトの移動履歴、重さ、大きさ等から算出され得る。例えば、移動させる困難さが大きい場合、出力制御部122は、実オブジェクトに重ならないように起動ウィンドウの表示領域を決定する。一方で、移動させる困難さが小さい場合、出力制御部122は、実オブジェクトに重なるように起動ウィンドウの表示領域を決定して、ユーザに実オブジェクトの移動を促す。また、属性情報は、例えば起動ウィンドウとの関係性に関する情報を含んでもよい。例えば、テーブル140a上の料理を説明する情報の表示などの、実オブジェクトに関連する起動ウィンドウである場合、出力制御部122は、実オブジェクトの付近に、又は実オブジェクトに重なるように表示領域を決定する。これにより、ユーザの利便性が向上し得る。
以下、図270及び図271を参照して、実オブジェクトとの関係で決定される表示領域について説明する。
図270及び図271は、本例に係る表示領域決定処理の一例を説明するための説明図である。図270及び図271では、ユーザによる起動指示オブジェクト4224へのタッチを契機として、起動ウィンドウ4221が表示される例を示している。図270では、実オブジェクトに重ならないように表示領域が決定される例を示している。図270に示すように、ウィンドウ起動可能エリア4234は、テーブル140a上の実物体4222が存在する領域以外の領域となっており、その内部に起動ウィンドウ4221の表示領域が決定されている。図271では、実オブジェクトに重なるように表示領域が決定される例を示している。図271に示すように、ウィンドウ起動可能エリア4234は、テーブル140a上の実物体4222が存在する領域内の領域となっており、その内部に起動ウィンドウ4221の表示領域が決定されている。
・既存の表示オブジェクトとの関係
出力制御部122は、表示面にすでに表示されている他の表示オブジェクト(既存の表示オブジェクト)の情報にさらに応じて、起動ウィンドウの表示領域を決定してもよい。
例えば、出力制御部122は、既存の表示オブジェクトよりも前面に起動ウィンドウの表示領域を決定してもよい。これにより、ユーザは、起動ウィンドウを起動直後から閲覧し操作することができる。また、出力制御部122は、既存の表示オブジェクトの表示領域に重ならないよう起動ウィンドウの表示領域を決定してもよい。これにより、ユーザは、起動ウィンドウを起動直後から閲覧し操作することができる上、既存ウィンドウへの操作も継続することができる。また、出力制御部122は、起動ウィンドウの表示領域に重ならないよう既存ウィンドウの表示領域を変更してもよい。これにより、例えば既存の表示オブジェクトが起動ウィンドウのために場所を空けるよう移動するので、出力制御部122は、ユーザにとってより操作しやすい領域に起動ウィンドウを表示させることができる。
既存の表示オブジェクトの情報とは、既存の表示オブジェクトの表示領域を示す情報の他、例えば、起動ウィンドウとの関係性に関する情報を含む情報である。例えば、既存の表示オブジェクトに関連する情報が起動ウィンドウに含まれる場合、出力制御部122は、既存の表示オブジェクトの付近に起動ウィンドウの表示領域を決定する。これにより、ユーザの利便性が向上し得る。
以下、図272〜図274を参照して、既存の表示オブジェクトとの関係で決定される表示領域について説明する。
図272は、本例に係る表示領域決定処理の一例を説明するための説明図である。図272では、既存の表示オブジェクトとの関係におけるウィンドウ起動可能エリアの一例を示している。図272の上図に示すように、出力制御部122は、既存ウィンドウ4223の表示領域を含む全面をウィンドウ起動可能エリア4234としてもよい。また、図272の中央図に示すように、出力制御部122は、既存ウィンドウ4223の表示領域を除いた領域をウィンドウ起動可能エリア4234としてもよい。また、図272の下図に示すように、出力制御部122は、既存ウィンドウ4223の表示領域の中心部分を除く端部を含む領域をウィンドウ起動可能エリア4234としてもよい。
図273及び図274は、本例に係る表示領域決定処理の一例を説明するための説明図である。図273及び図274では、ユーザによる起動指示オブジェクト4224へのタッチを契機として、起動ウィンドウ4221が表示される例を示している。
図273では、既存の表示オブジェクトに重なることを許容して表示領域が決定される例を示している。図273に示すように、ウィンドウ起動可能エリア4234は、既存ウィンドウ4223の表示領域を含む全領域となっている。図273の左図では、既存ウィンドウ4223に重なるように起動ウィンドウ4221の表示領域が決定されている。一方、図273の右図では、既存ウィンドウ4223に重なるように起動ウィンドウ4221の表示領域が決定されると共に、起動ウィンドウ4221の表示領域に重ならないよう既存ウィンドウ4223の表示領域が変更されている。
図274では、既存の表示オブジェクトに重ならないように表示領域が決定される例を示している。図274に示すように、ウィンドウ起動可能エリア4234は、既存ウィンドウ4223の存在領域以外の領域となっている。図274の左図では、既存ウィンドウ4223に重ならないように、デフォルトの大きさで起動ウィンドウ4221の表示領域が決定されている。一方、図274の右図では、既存ウィンドウ4223に重ならないように、且つ大きさを縮小して起動ウィンドウ4221の表示領域が決定されている。このような縮小表示は、ユーザの位置に近い場所に空きスペースが少ない場合に効果的である。
・ユーザとの関係
出力制御部122は、起動ウィンドウの表示対象であるユーザの情報にさらに応じて、起動ウィンドウの表示領域を決定してもよい。ユーザの情報とは、例えば、ユーザの位置又は向きの少なくともいずれかを示す情報を含む。例えば、出力制御部122は、ウィンドウ起動可能エリア内のユーザに近い位置に、ユーザの向きに応じてユーザに正対するような傾きで、起動ウィンドウの表示領域を決定し得る。
以下、図275〜図282を参照して、ユーザとの関係で決定される表示領域について説明する。なお、以下ではユーザ認識部4203による認識処理の具体例も合せて説明する。
図275は、本例に係る表示領域決定処理の一例を説明するための説明図である。図275の左図は、ユーザ認識部4203による認識処理の一例を示し、図275の右図は、出力制御部122による表示領域決定処理の一例を示している。図275の左図に示すように、入力部110は、テーブル140aよりも広い撮像領域4241を、監視対象として撮像している。まず、ユーザ認識部4203は、撮像領域4241の撮像画像に基づいて、起動指示オブジェクト4224をタッチしたユーザ4242を特定する。そして、ユーザ認識部4203は、特定したユーザの位置4243を推定する。また、ユーザ認識部4203は、撮像領域4241に含まれるユーザ4242の顔に基づいて、ユーザ4242の顔の角度θを推定する。これにより、出力制御部122は、図275の右図に示すように、ユーザに近い場所に、ユーザ4242に正対するように角度θ傾けて、起動ウィンドウ4221の表示領域を決定する。
図276は、本例に係る表示領域決定処理の一例を説明するための説明図である。図276の左図は、ユーザ認識部4203による認識処理の一例を示し、図276の右図は、出力制御部122による表示領域決定処理の一例を示している。図276の左図に示すように、テーブル140aには、マイクアイコン4244が表示されており、ユーザは、このマイクアイコン4244に向かって発話している。例えば、マイクアイコン4244の真上又はその付近にマイクが設けられているものとする。ユーザ認識部4203は、アプリケーションの起動を指示するユーザの音声を認識する。ユーザ認識部4203は、例えば予め定められたキーワードを、アプリケーションの起動を指示する音声として認識し得る。そして、ユーザ認識部4203は、マイクアイコン4244からユーザの音声が検出された方向4245の延長線上にユーザ4242が位置し、当該延長線上のマイクアイコン4244に向かう方向にユーザ4242が向いていると推定する。これにより、出力制御部122は、図276の右図に示すように、ユーザ4242に近い場所に、ユーザ4242に正対するよう方向4245に向けて、起動ウィンドウ4221の表示領域を決定する。
図277は、本例に係る表示領域決定処理の一例を説明するための説明図である。図277の左図は、ユーザ認識部4203による認識処理の一例を示し、図277の右図は、出力制御部122による表示領域決定処理の一例を示している。図277の左図に示すように、ユーザ認識部4203は、例えば撮像画像に基づいて、起動指示オブジェクト4224をタッチしたユーザ4242の指又は腕の方向4246を認識する。そして、ユーザ認識部4203は、指又は腕の方向4246の延長線上にユーザ4242が位置し、当該延長線上の起動指示オブジェクト4224に向かう方向にユーザ4242が向いていると推定する。これにより、出力制御部122は、図277の右図に示すように、ユーザに近い場所に、ユーザに正対するよう方向4246に向けて、起動ウィンドウ4221の表示領域を決定する。
図278は、本例に係る表示領域決定処理の一例を説明するための説明図である。図278の左図は、ユーザ認識部4203による認識処理の一例を示し、図278の右図は、出力制御部122による表示領域決定処理の一例を示している。図278の左図に示すように、入力部110は、起動指示オブジェクト4224をタッチしたユーザ4242の腕を含む領域であって、テーブル140a上の領域を撮像領域4241としている。まず、ユーザ認識部4203は、起動指示オブジェクト4224へのタッチを検出した時点での撮像領域4241の撮像画像から、タッチした腕の形状を認識する。そして、ユーザ認識部4203は、検出した腕の形状を、腕の向きと顔の位置との関係を示すモデル4247に照合することで、顔の位置を推定する。また、ユーザ認識部4203は、ユーザ4242はテーブル140aの縁に正対する方向4248に向いていると推定する。これにより、出力制御部122は、図278の右図に示すように、ユーザに近い場所に、テーブル140aの縁に正対する方向4248に向けて、起動ウィンドウ4221の表示領域を決定する。本処理は、例えば撮像領域4241がテーブル140a上に限られる場合であって、写った手が左右どちらの手であるかの認識に成功した場合に用いられ得る。
図279は、本例に係る表示領域決定処理の一例を説明するための説明図である。図279の左図は、ユーザ認識部4203による認識処理の一例を示し、図279の右図は、出力制御部122による表示領域決定処理の一例を示している。図279の左図に示すように、ユーザ認識部4203は、ユーザによる起動指示オブジェクト4224へのタッチを認識する。そして、ユーザ認識部4203は、画面又はテーブル140aの中心点4249から起動指示オブジェクト4224に向かう方向4250の延長線上にユーザ4242が位置し、当該延長線上の起動指示オブジェクト4224に向かう方向にユーザ4242が向いていると推定する。これにより、出力制御部122は、図279の右図に示すように、中心点4249から起動指示オブジェクト4224に向かう方向4250の延長線上に、ユーザに正対するよう方向4250に向けて、起動ウィンドウ4221の表示領域を決定する。
図280は、本例に係る表示領域決定処理の一例を説明するための説明図である。図280に示すように、出力制御部122は、テーブル140aのうちユーザ4242が存在する側の領域をウィンドウ起動可能エリア4234とする。これにより、出力制御部122は、ウィンドウ起動可能エリア4234内の最も広い領域4251に、起動ウィンドウ4221の表示領域を決定する。
図281は、本例に係る表示領域決定処理の一例を説明するための説明図である。図281に示すように、入力部110は、テーブル140aよりも広い撮像領域4241を、監視対象として撮像している。ここで、ユーザ認識部4203が、撮像領域4241の撮像画像に基づいて、起動指示オブジェクト4224をタッチしたユーザ4242の位置4243の推定に成功したが、ユーザ4242の向きの推定に失敗した場合を想定する。この場合、ユーザ認識部4203は、テーブル140aの周囲の領域4261、4262、4263、4264のいずれにユーザ4242が位置するか、即ちユーザ辺を認識する。なお、ユーザ辺とは、ユーザが手を差し入れた画面又はテーブル140aの辺を指す。そして、出力制御部122は、ユーザに最も近くなる場所に、ユーザ辺に対応する向きで、起動ウィンドウ4221の表示領域を決定する。図281に示した例では、出力制御部122は、ユーザに最も近くなる場所に、ユーザが領域4263中の矢印方向を向いていると仮定した向きで、起動ウィンドウ4221の表示領域を決定する。
図282は、本例に係る表示領域決定処理の一例を説明するための説明図である。図282に示した例では、ユーザ認識部4203が、ユーザ4242の位置4243の推定に成功したものとする。また、ユーザ認識部4203は、ユーザ4242の向きの推定に失敗したものとする。この場合、出力制御部122は、図282の上図に示すように、画面又はテーブル140aの中心点4249からユーザ位置4243を結んだ線上で、表示面に内接する円に接する最もユーザに近い位置に、起動ウィンドウ4221の表示領域を決定してもよい。また、出力制御部122は、図282の下図に示すように、中心点4249からユーザ位置4243を結んだ線上で、表示面のアスペクト比に対する楕円に接する最もユーザに近い位置に、起動ウィンドウ4221の表示領域を決定してもよい。
・組み合わせ
出力制御部122は、上述した実オブジェクトとの関係、既存の表示オブジェクトとの関係、又はユーザとの関係の少なくともいずれかを組み合わせて、起動ウィンドウ4221の表示領域を決定してもよい。以下、図283〜図285を参照して、実オブジェクトとの関係、既存の表示オブジェクトとの関係、及びユーザとの関係の組み合わせにより決定される表示領域について説明する。
図283は、本例に係る表示領域決定処理の一例を説明するための説明図である。図283に示した例では、出力制御部122は、実オブジェクトとの関係で、実物体4222に重ならないように起動ウィンドウ4221の表示領域を決定している。また、出力制御部122は、既存の表示オブジェクトとの関係で、既存ウィンドウ4223よりも前面に重なることを許容して起動ウィンドウ4221の表示領域を決定している。また、出力制御部122は、ユーザとの関係で、ユーザ4242に近い場所に、ユーザ4242の向きに応じた傾きとなるように起動ウィンドウ4221の表示領域を決定している。
図284は、本例に係る表示領域決定処理の一例を説明するための説明図である。図284に示した例では、出力制御部122は、実オブジェクトとの関係で、実物体4222に重ならないように起動ウィンドウ4221の表示領域を決定している。また、出力制御部122は、既存の表示オブジェクトとの関係で、既存ウィンドウ4223に重ならないように起動ウィンドウ4221の表示領域を決定している。また、出力制御部122は、ユーザとの関係で、ユーザ4242に近い場所に、ユーザ4242の向きに応じた傾きとなるように起動ウィンドウ4221の表示領域を決定している。
図285は、本例に係る表示領域決定処理の一例を説明するための説明図である。図285に示した例では、出力制御部122は、実オブジェクトとの関係で、実物体4222に重ならないように起動ウィンドウ4221の表示領域を決定している。また、出力制御部122は、既存の表示オブジェクトとの関係で、既存ウィンドウ4223に重なることを許容して起動ウィンドウ4221の表示領域を決定しつつ、起動ウィンドウ4221の表示領域に重ならないよう既存ウィンドウ4223の表示領域が変更されている。また、出力制御部122は、ユーザとの関係で、ユーザ4242に近い場所に、ユーザ4242の向きに応じた傾きとなるように起動ウィンドウ4221の表示領域を決定している。
以上、出力制御部122による起動ウィンドウの表示領域決定処理の一例を説明した。
(2)第2の処理例
例えば、出力制御部122は、起動ウィンドウの表示領域の候補を評価する評価関数を用いて表示領域を決定してもよい。この評価関数は、実オブジェクトとの関係、既存の表示オブジェクトとの関係、及びユーザとの関係について上記説明した内容が反映されるよう設計され得る。より具体的には、評価関数の要素として例えば以下が考えられる。
・既存ウィンドウとの重複評価値
・実物体との重複評価値
・ユーザ位置からの距離評価値
・ユーザ辺からの距離評価値
・タッチ位置との距離評価値
・指方向との一致度評価値
既存ウィンドウとの重複評価値とは、起動ウィンドウと既存ウィンドウとの重複に関する評価値である。なお、既存ウィンドウが複数表示されている場合、既存ウィンドウとの重複評価値は、既存ウィンドウごとに算出された評価値の総和又は平均等の統計量として算出され得る。また、出力制御部122は、既存ウィンドウとの重複評価値の算出にあたり、重複評価値×(1/index)として、古い既存ウィンドウほど評価に影響を与える度合を下げてもよい。ここで、indexは、既存ウィンドウに割り振られるインデックス(順序)であり、最も新しいウィンドウに1が与えられ、古い程大きな値が与えられる。また、出力制御部122は、評価値の算出にあたり、アプリケーション同士の相性を考慮してもよい。
実物体との重複評価値とは、起動ウィンドウと実物体との重複に関する評価値である。なお、実物体が複数存在する場合、実物体との重複評価値は、実物体ごとに算出された評価値の総和又は平均等の統計量として算出され得る。また、出力制御部122は、評価値の算出にあたり、実物体の高さ及び面積等の形状を考慮してもよいし、過去の移動履歴を考慮してもよい。
ユーザ位置からの距離評価値とは、起動ウィンドウとユーザ位置との距離に関する評価値であり、距離が近いほど良い評価値が算出される。
ユーザ辺からの距離評価値とは、起動ウィンドウとユーザ辺との距離に関する評価値であり、距離が近いほど良い評価値が算出される。
タッチ位置との距離評価値とは、起動ウィンドウとタッチ位置との距離に関する評価値であり、距離が近いほど良い評価値が算出される。
指方向との一致度評価値とは、起動ウィンドウの向きとタッチした指の方向との一致度に関する評価値であり、一致しているほど良い評価値が算出される。例えば、一致していれば1、不一致であれば0が算出され得る。
以上、評価関数の要素の一例を説明した。出力制御部122は、各要素に重み付けを行うことで、次式のように評価関数を設計し得る。
評価値=既存ウィンドウとの重複評価値×30+
実物体との重複評価値×200+
ユーザ位置からの距離評価値×1+
ユーザ辺からの距離評価値×1+
タッチ位置との距離評価値×1+
指方向との一致度評価値×10
重み付けのパラメータは任意に設定され得る。また、各要素内の関数設計(パラメータ設計)も任意である。出力制御部122は、評価関数内の各種パラメータを学習してもよい。また、出力制御部122は、ユーザ操作に応じて評価関数のパラメータを設定してもよい。これにより、ユーザは、自身の好む表示領域に起動ウィンドウが表示されるよう、パラメータを設定することができる。例えば、ユーザは、隣り合わせて使用することが多いアプリケーション同士について良い相性を設定することで、当該アプリケーション同士を隣り合わせで起動させることが可能となる。
出力制御部122は、表示領域の候補のうち、評価関数により算出される評価値が最も良い候補を、起動ウィンドウの表示領域として決定する。例えば、出力制御部122は、山登り法、遺伝的アルゴリズム等の任意の手法を採用して、評価値が最も良い表示領域を探索し得る。なお、本明細書では、評価値が高い程良いとして説明するが、評価値が低い程良いとしてもよい。即ち、出力制御部122による表示領域の探索は、最小化問題であってもよいし、最大化問題であってもよい。
以下、評価関数の具体的な設計について説明する。例えば、出力制御部122は、下記の数式1を評価関数として用い得る。
上記数式中、appmは、m個目のアプリケーションウィンドウを意味し、起動ウィンドウを指す。appnは、n個目のアプリケーションウィンドウを意味し、既存ウィンドウを指す。objnは、n個目の実オブジェクトを意味する。pは、起動ウィンドウの表示領域を意味する。上記数式1では、起動ウィンドウの表示領域をpとした場合の評価値が算出される。
上記数式1の第1項は、既存ウィンドウとの関係に関する評価項である。wappは、重み付けパラメータである。Nappは、既存ウィンドウの数を示す。総和計算の対象は、起動ウィンドウappmと既存ウィンドウappnとの相性及び距離に関する評価関数であり、例えば次式により定義される。
Napp−(n−1)/Nappは、表示順に関する評価値であり、表示順が古いほど低い値になることを示している。なお、既存ウィンドウには、表示が新しい順に低いインデックスnが与えられるものとする。
c(appm,appn)は、起動ウィンドウappmと既存ウィンドウappnとの相性に関する評価値であり、例えば相性が良い程高い値になる。相性としては、例えば、写真ファイルと写真編集アプリケーションとの相性が良い、音楽ファイルと音楽プレーヤとの相性が良い等が考えられる。相性に関する評価値は、例えば下記の表に一例を示す相性テーブルにより定まり得る。
表2は、相性に関する評価値を定める相性テーブルの一例である。相性に関する評価値は、静的に定ま部分と動的に変化する部分とを含む。静的に定まる部分は、例えばインストール時に予め定まっているアプリケーション同士の相性、又は同じメディア(ファイル)を扱うことができるか否か等により定まる。動的に変化する部分は、例えば同じユーザ(同じ手又は同じ方向から来た手)が起動したアプリケーションか否か、過去の操作履歴が示す相性等により変化する。他にも、動的に変化する部分の一例として、一方のアプリケーションが起動された後所定時間以内に他方のアプリケーションが起動された、又は一方が起動された後所定時間以内に他方に近づけられた場合、評価値が高まり得る。逆に、一方が起動された後所定時間以内に他方から遠ざけられた場合、評価値が低まり得る。
表2に示した例では、静止画編集アプリケーションと写真アプリケーションとの相性に関する評価値は、静的な「2」に動的に「1」加わって「3」になっている。また、動画編集アプリケーションと写真アプリケーションとの相性に関する評価値は、静的な「1」に動的に「1」加わって「2」になっている。また、動画編集アプリケーションと静止画編集アプリケーションとの相性に関する評価値は、静的な「0」に動的に「1」加わって「1」減り、「0」になっている。
以上、相性テーブルについて説明した。再度、上記数式2の説明に戻る。{d−(r1+r2)}は、起動ウィンドウappmと既存ウィンドウappnとの重複に関する評価値である。r1、r2、及びdとの関係の一例を、図286に示す。
図286は、本例に係る表示領域決定処理の一例を説明するための説明図である。r1は、起動ウィンドウ4221の大きさを示すパラメータであり、図286に示した例では起動ウィンドウ4221の中心点から端部までの距離である。r2は、既存ウィンドウ4223の大きさを示すパラメータであり、図286に示した例では既存ウィンドウ4223の中心点から端部までの距離である。dは、起動ウィンドウ4221と既存ウィンドウ4223との距離を示すパラメータであり、図286に示した例では中心点間の距離である。図286に示すように、{d−(r1+r2)}は、距離が離れているほど高い値になり、重複する領域が多くなるほど低い値になる。なお、出力制御部122は、{d−(r1+r2)}がマイナスの値となった場合、{d−(r1+r2)}を0として取り扱ってもよい。
以上、上記数式1の第1項について説明した。続いて、上記数式1の第2項について説明する。
上記数式1の第2項は、実物体との関係に関する評価項である。wobjは、重み付けパラメータである。Nobjは、実物体の数を示す。総和計算の対象は、起動ウィンドウappmと実物体objnとの相性及び距離に関する評価関数であり、例えば次式により定義される。
c(appm,objn)は、起動ウィンドウappmと実物体objnとの相性に関する評価値であり、例えば相性が良い程高い値になる。相性としては、例えば、定規のアプリケーションと実物体は相性が良い、障害物を利用したゲームアプリケーションは障害物となり得る実物体との相性が良い、ラーメンタイマーのアプリケーションは所定の大きさの丸い実物体との相性が良い等が考えられる。相性に関する評価値は、例えば上述した表2と同様の相性テーブルにより定まり得る。
{d−(r1+r2)}は、起動ウィンドウappmと実物体objnとの重複に関する評価値である。r1、r2、及びdとの関係の一例を、図287に示す。
図287は、本例に係る表示領域決定処理の一例を説明するための説明図である。r1は、起動ウィンドウ4221の大きさを示すパラメータであり、図287に示した例では起動ウィンドウ4221の中心点から端部までの距離である。r2は、実物体4222の大きさを示すパラメータであり、図287に示した例では実物体4222の中心点から端部までの距離である。dは、起動ウィンドウ4221と実物体4222との距離を示すパラメータであり、図287に示した例では中心点間の距離である。図287に示すように、{d−(r1+r2)}は、距離が離れているほど高い値になり、重複する領域が多くなるほど低い値になる。なお、出力制御部122は、{d−(r1+r2)}がマイナスの値となった場合、{d−(r1+r2)}を0として取り扱ってもよい。
a/Vobjは、物体の凸包体積に関する評価値である。本評価値は、例えば実物体objnが小さい又は薄い場合には低い値となる。これにより、小さい又は薄い実物体による評価関数への影響が小さくなる。
b/∫vdtは、直近の移動距離に関する評価値である。本評価値は、例えば直近の移動距離が多いほど低い値となる。これにより、直近の移動距離が多い実物体による評価関数への影響が小さくなる。これは、移動距離が多い物体は、移動可能な物体であるか又は直近新たに置かれた物体であるため、ユーザがどかすことが可能であると考えられるためである。
c/Fは、物体の形状に関する評価値である。本評価値は、例えば投影される画像への影響が少ない形状であるほど低い値となる。例えば、錐体には低い値が与えられ得る。これにより、投影される画像への影響が少ない形状である実物体による評価関数への影響が小さくなる。
以上、上記数式1の第2項について説明した。続いて、上記数式1の第3項以降について説明する。
上記数式1の第3項以降の項は、ユーザとの関係に関する評価項である。wupは、重み付けパラメータである。fup(p)は、ユーザ位置と起動ウィンドウとの距離に関する評価関数である。wusは、重み付けパラメータである。fus(p)は、ユーザ辺と起動ウィンドウとの距離に関する評価関数である。wtpは、重み付けパラメータである。ftp(p)は、タッチ位置と起動ウィンドウとの距離に関する評価関数である。wfdは、重み付けパラメータである。ffd(p)は、ユーザの指の方向と起動ウィンドウの向く方向との一致度に関する評価関数である。
以上、評価関数の具体例について説明した。
以上、情報処理システム100の構成例について説明した。続いて、図288〜図290を参照して、本例に係る情報処理システム100において実行される動作処理例を説明する。
(動作処理)
図288は、本例に係る情報処理システム100において実行される表示制御処理の流れの一例を示すフローチャートである。
図288に示すように、ステップS4201で、入力部110は、アプリケーション起動指示を受け付ける。例えば、入力部110は、起動指示オブジェクトにタッチされたことを示す入力情報を、制御部120へ出力する。
次いで、ステップS4202で、検出部121は、実オブジェクト、既存の表示オブジェクト、及びユーザを認識する。例えば、実オブジェクト認識部4201は、入力部110から出力された深度情報から、テーブル140a上の実物体の存在領域を認識する。例えば、表示オブジェクト認識部4202は、出力制御部122による表示制御処理を監視して、既存ウィンドウの表示領域を認識する。例えば、ユーザ認識部4203は、入力部110から出力された撮像画像に基づいて、起動指示オブジェクトをタッチしたユーザの位置及び向きを認識する。
次に、ステップS4203で、出力制御部122は、起動ウィンドウの表示領域決定処理を行う。表示領域決定処理の具体的な内容については後に詳しく説明するため、ここでの詳細な説明は省略する。
そして、ステップS4204で、出力制御部122は、表示処理を行う。例えば、出力制御部122は、上記ステップS4203において決定した表示領域に起動ウィンドウを表示するよう出力部130を制御する。
以上、情報処理システム100において実行される表示制御処理の流れについて説明した。続いて、図289及び図290を参照して、上記ステップS4203における表示領域決定処理の流れについて説明する。
図289は、本例に係る情報処理システム100において実行される表示領域決定処理の流れの一例を示すフローチャートである。本フローチャートは、上記説明した第1の処理例に関する。
図289に示すように、まず、S4221で、出力制御部122は、実物体及び既存ウィンドウの情報に基づいて、ウィンドウ起動可能エリアを決定する。例えば、出力制御部122は、実物体の存在領域及び既存ウィンドウの表示領域に重ならない領域を、ウィンドウ起動可能エリアとして決定する。
次いで、ステップS4222で、出力制御部122は、ユーザの位置の推定に成功したか否かを判定する。例えば、出力制御部122は、ユーザ認識部4203による認識結果を参照することで、本判定を行う。
ユーザの位置の推定に成功したと判定された場合(S4222/YES)、ステップS4223で、出力制御部122は、ユーザの向きの推定に成功したか否かを判定する。例えば、出力制御部122は、ユーザ認識部4203による認識結果を参照することで、本判定を行う。
ユーザの向きの推定に成功したと判定された場合(S4223/YES)、ステップS4224で、出力制御部122は、ユーザの位置及び向きに基づいて、起動ウィンドウの表示領域を決定する。例えば、出力制御部122は、上記ステップS4221で決定したウィンドウ起動可能エリアの中から、ユーザに近い位置に、ユーザの向きに応じてユーザに正対するような傾きとなるよう、起動ウィンドウの表示領域を決定する。
一方、ユーザの位置の推定には成功したが向きの推定には失敗したと判定された場合(S4223/NO)、ステップS4225で、出力制御部122は、ユーザの位置に基づいて起動ウィンドウの表示領域を決定する。例えば、出力制御部122は、上記ステップS4221で決定したウィンドウ起動可能エリアの中から、ユーザに近い位置に、ユーザ辺に対応する向きで、起動ウィンドウの表示領域を決定する。
また、ユーザの位置の推定に失敗したと判定された場合(S4222/NO)、ステップS4226で、出力制御部122は、実物体及び既存ウィンドウの情報に基づいて、起動ウィンドウの表示領域を決定する。例えば、出力制御部122は、上記ステップS4221で決定したウィンドウ起動可能エリアの中から、任意の領域を起動ウィンドウの表示領域として決定する。
以上、表示領域決定処理の流れの一例を説明した。続いて、図290を参照して、表示領域決定処理の流れの他の一例を説明する。
図290は、本例に係る情報処理システム100において実行される表示領域決定処理の流れの一例を示すフローチャートである。本フローチャートは、上記説明した第2の処理例に関する。具体的には、出力制御部122は、山登り法を用いて評価関数の準最適解を算出する。
図290に示すように、まず、ステップS4231で、出力制御部122は、評価対象の座標として、画面内のN個の座標をランダムに選択する。例えば、出力制御部122は、表示面内のN個の座標を、実物体の存在領域と重なっているか否か、又は既存ウィンドウと重なっているか否か等を考慮せず、ランダムに選択する。
次いで、ステップS4232で、出力制御部122は、近傍の座標を評価する。例えば、出力制御部122は、上記ステップS4231で選択した座標を1ピクセルずつ前後左右にずらした8点について、それぞれ評価関数の評価値を算出する。このとき、出力制御部122は、表示領域の大きさ及び傾きについても変化させながら、評価値を算出してもよい。
次に、ステップS4233で、出力制御部122は、評価値が最も良かった座標を評価対象の座標に変更する。このとき、評価値が良くなる座標が近傍の8点の中にある場合(S4234/NO)、処理は再度ステップS4232に戻り、評価(S4232)及び評価対象の座標の更新(S4233)が繰り返される。
評価値が良くなる座標が近傍の8点になくなった場合(S4234/YES)、ステップS4235で、出力制御部122は、N個の座標について評価(S4232〜S4234)が完了したか否かを判定する。
完了していないと判定された場合(S4235/NO)、処理は再度ステップS4232に戻る。これにより、出力制御部122は、未評価の座標について、上記ステップS4232〜S4234に係る処理を行う。
完了したと判定された場合(S4235/YES)、ステップS4236で、出力制御部122は、評価値が最も良い表示領域に決定する。
以上、表示領域決定処理の流れの一例を説明した。
[例7]
本例は、上記説明した具体例8に関する実施例である。本例では、図291〜図298を参照して、具体例8に係る内部処理について詳しく説明する。なお、以下では、プロジェクション型の情報処理システム100aを想定して説明するが、図1〜図4を参照して説明したどのタイプでも、以下に説明する例に係るUIを実現可能である。
(構成例)
図291は、本例に係る情報処理システム100の論理的な構成の一例を示すブロック図である。図291に示すように、本例に係る情報処理システム100は、入力部110、制御部120、出力部130を有する。
(1)入力部110
本例に係る入力部110は、例えば画像(静止画像又は動画像)を取得するカメラ、及び深度情報を取得するステレオカメラにより実現される。例えば、入力部110は、撮像した撮像画像及び取得した深度情報を、制御部120へ出力する。入力部110は、撮像時の他にも、出力部130による撮像画像の投影時にも、深度情報を取得して制御部120へ出力する。また、入力部110は、テーブル140aに設けられたタッチセンサや、リモートコントローラ等の任意の入力装置により実現されてもよく、音声入力やタッチ操作などのユーザ操作を取得して、制御部120へ出力し得る。
(2)出力部130
本例に係る出力部130は、画像を表示する表示部としての機能を有する。例えば、出力部130は、図1〜図4に示したように、テーブル140aの上部又は下部からテーブル140aに向けて投影するプロジェクタ、タッチパネル式又はフラットパネル式のディスプレイにより実現される。他にも、出力部130は、スピーカ等の音声出力部としての機能を有していてもよい。
(3)制御部120
本例に係る制御部120は、テーブル140a上の被写体を撮像した撮像画像を、原寸大で再現するための各種処理を行う。図291に示すように、制御部120は、環境情報取得部4301及び環境情報蓄積部4303としての機能を有する検出部121、並びに設定情報生成部4305としての機能を有する出力制御部122を有する。
(3−1)環境情報取得部4301
環境情報取得部4301は、環境情報を取得する機能を有する。環境情報とは、情報処理システム100への入力又は情報処理システム100からの出力に影響を与える、情報処理システム100の環境に関する情報である。例えば、撮像時の環境情報は、撮像画像に写る被写体の大きさに影響を与え得る情報である。撮像時の環境情報の一例としては、撮像時のカメラからテーブル140aまでの距離(深度情報)、撮像時のカメラの画角、撮像時のカメラの画素数などが挙げられる。また、投影時の環境情報は、投影される撮像画像に写る被写体の大きさに影響を与え得る情報である。投影時の環境情報の一例としては、投影時のプロジェクタからテーブル140aまでの距離、投影時のプロジェクタの画角、投影時のプロジェクタの画素数などが挙げられる。
(3−2)環境情報蓄積部4303
環境情報蓄積部4303は、環境情報取得部4301により取得された環境情報を蓄積する機能を有する。例えば、環境情報蓄積部4303は、カメラにより撮像された撮像画像に、当該撮像画像の撮像時に取得された環境情報を対応付けて記憶する。例えば、環境情報は、撮像画像のメタデータとして記憶されてもよい。
(3−3)設定情報生成部4305
設定情報生成部4305は、出力部130による撮像画像の投影のための設定情報を生成する機能を有する。特に、設定情報生成部4305は、撮像時の環境情報及び投影時環境情報に基づいて、被写体の撮像時の様子をそのまま再現するための設定情報を生成する。例えば、設定情報生成部4305は、被写体を原寸大で再現するための投影倍率を算出して、設定情報として生成し得る。以下では、図292を参照して、設定情報生成部4305による、被写体を原寸大で再現するための投影倍率の算出例について説明する。
図292は、本例に係る投影倍率の算出処理について説明するための説明図である。図292の左図は、テーブル140aをカメラ又はプロジェクタから見た正面図である。図292の右図は、テーブル140aをカメラ(入力部110)又はプロジェクタ(出力部130)の側面から見た側面図である。Yは、カメラ又はプロジェクタの垂直方向の画素数を示す。Lは、カメラ又はプロジェクタからテーブル140aまでの距離を示す。θは、カメラ又はプロジェクタの垂直方向の画角を示す。設定情報生成部4305は、被写体を原寸大で再現するための投影倍率を、例えば次式により算出する。
なお、Y1は撮像時のカメラの垂直方向の画素数を示し、L1は撮像時のカメラからテーブル140aまでの距離を示し、θ1は撮像時のカメラの垂直方向の画角を示す。また、Y2は投影時のプロジェクタの垂直方向の画素数を示し、L2は投影時のプロジェクタからテーブル140aまでの距離を示し、θ2は投影時のプロジェクタの垂直方向の画角を示す。
なお、図292では、垂直方向の画素数Yを用いて投影倍率が算出される例を説明したが、水平方向の画素数を用いて算出されてもよい。
設定情報生成部4305が生成する設定情報は、投影倍率以外にも多様に考えられる。例えば、設定情報生成部4305は、被写体の色合いや外光の当たり具合を再現するための輝度又はコントラスト等を算出して、設定情報として生成してもよい。
出力制御部122は、設定情報生成部4305により生成された設定情報に基づいて、撮像画像を投影するよう出力部130を制御する。具体的には、出力制御部122は、設定情報生成部4305により算出された投影倍率を用いて撮像画像を拡大又は縮小して投影するよう、プロジェクタを制御する。
また、出力制御部122は、被写体の撮像時の様子をそのまま再現するための、ユーザへの通知を出力するよう出力部130を制御してもよい。例えば、撮像画像を拡大して投影する際に、拡大された撮像画像がテーブル140aに収まらない場合が考えられる。このため、出力制御部122は、拡大された撮像画像がテーブル140aに収まるように、テーブル140aに関する調整を行うよう依頼する通知を、ユーザへ出力させてもよい。
以上、本例に係る情報処理システム100の構成例を説明した。続いて、図293〜図297を参照して、本例に係るユーザインタフェースの具体例を説明する。図293〜図297は、本例に係るユーザインタフェースの一例を説明するための説明図である。
(UI例)
まず、図293〜図295を参照して、撮像時から投影時までの環境変化に応じて投影倍率が変化する場合のユーザインタフェースの具体例について説明する。図293〜図295の左図は、撮像時の被写体及び環境情報を示している。設定情報生成部4305は、図293〜図295の左図に示した撮像時の環境情報と、図293〜図295の右図に示した投影時の環境情報との差異に応じて、上記数式4を用いて投影倍率を算出する。そして、図293〜図295の右図に示すように、出力部130は、算出された投影倍率を用いて撮像画像を投影する。一例として、撮像時の画角θ1は45°であり、距離L1は1メートルであり、画素数Y1は1080ピクセルであったものとする。
図293では、テーブル140aまでの距離が変化した例を示している。具体的には、カメラ(入力部110)からテーブル140aまでの距離L1の1メートルであったのに対し、プロジェクタ(出力部130)からテーブル140aまでの距離L2が2メートルになっている。このため、図293の右図に示すように、投影倍率が0.5倍となっている。距離が長くなった分だけ縮小して投影されることで、撮像画像に写る被写体が原寸大で投影される。他方、距離が短くなった場合には拡大して投影されることで、撮像画像に写る被写体が原寸大で投影される。
図294では、画角が変化した例を示している。具体的には、入力部110の画角θ1が45°であったのに対し、出力部130の画角θ2が60°になっている。このため、図294の右図に示すように、投影倍率が0.72倍となっている。画角が広がった分だけ縮小して投影されることで、撮像画像に写る被写体が原寸大で投影される。他方、画角が狭まった場合には拡大して投影されることで、撮像画像に写る被写体が原寸大で投影される。
図295では、画素数が変化した例を示している。具体的には、入力部110の画素数Y1が1080ピクセルであったのに対し、出力部130の画素数Y2が720ピクセルになっている。このため、図295の右図に示すように、投影倍率が1.5倍となっている。画素数が減少した分だけ拡大して投影されることで、撮像画像に写る被写体が原寸大で投影される。他方、画素数が増大した場合には縮小して投影されることで、撮像画像に写る被写体が原寸大で投影される。
以上、撮像時から投影時までの環境変化に応じて投影倍率が変化する場合のユーザインタフェースの具体例について説明した。続いて、図296〜図297を参照して、被写体の撮像時の様子をそのまま再現するための調整を依頼する、ユーザへの通知の具体例について説明する。
図296では、出力制御部122が、本体(出力部130)をスクリーン(テーブル140a)から30センチメートル遠ざけるよう依頼する通知を出力する例を示している。ユーザは、本体を遠ざけてもよいし、テーブル140aを低いものに替えてもよい。いずれにしろ、出力部130からテーブル140aまでの距離が長くなることで、撮像画像は縮小して投影されることとなり、テーブル140aに収まることとなる。他にも、出力制御部122は、テーブル140aをより面積の広いものに替えるよう依頼する通知を出力してもよい。
図297では、出力制御部122が、テーブル140aに収まりきらない部分を省略した上で、撮像画像を原寸大で投影しつつ、スクロールするよう依頼する通知を出力する例を示している。ユーザは、投影画像をスクロールさせることで、省略された部分をずらして投影させることができる。この場合、ユーザは、本体を遠ざける、テーブル140aを取り替える等の、出力部130からテーブル140aまでの距離を長くする手間を省くことができる。なお、ユーザは、図296に示したように本体を遠ざけるのか、図297に示したように収まりきらない部分を省略させるのかを選択してもよい。選択は、投影時になされてもよいし、予め設定されていてもよいし、情報処理システム100により自動的になされてもよい。
以上、本例に係るユーザインタフェースの具体例を説明した。続いて、図298を参照して、本例に係る情報処理システム100による動作処理の一例を説明する。
(動作処理)
図298は、本例に係る情報処理システム100において実行される表示制御処理の流れの一例を示すフローチャートである。
図298に示すように、まず、ステップS4302で、設定情報生成部4305は、環境情報取得部4305より撮像画像に対応付けて記憶された環境情報を参照する。この環境情報には、例えば、撮像時のカメラからテーブル140aまでの距離、撮像時のカメラの画角、及び撮像時のカメラの画素数を示す情報が含まれる。
次いで、ステップS4304で、環境情報取得部4301は、現在の環境情報を取得する。この環境情報には、例えば、プロジェクタからテーブル140aまでの距離、プロジェクタの画角、及びプロジェクタの画素数を示す情報が含まれる。
次に、ステップS4306で、設定情報生成部4305は、投影倍率を算出する。具体的には、設定情報生成部4305は、上記ステップS4302で参照した環境情報、及び上記ステップS4304で取得した環境情報を、上記数式4に適用することで、投影倍率を算出する。
そして、ステップS4308で、出力制御部122は、撮像画像を投影するようプロジェクタを制御する。具体的には、出力制御部122は、上記ステップS4306で算出された投影倍率を用いて撮像画像を拡大又は縮小して投影するよう、プロジェクタを制御する。
以上、本例に係る情報処理システム100による動作処理の一例を説明した。
(まとめ)
以上説明したように、本例によれば、撮像画像を保存時に環境情報を対応付けて保存しておき、投影時の環境情報との差異に応じて投影倍率を変化させることで、被写体を原寸大で再現することができる。他に、煙草の箱又は硬貨等の比較対象物と共に被写体を撮像する技術も考えられるが、当該技術では、投影時の環境が撮像時と異なる場合、原寸大で投影することが困難になる。よって、例えば、ユーザが、実物の比較対象物と投影された比較対象物とを比較して投影倍率を調整する等の操作を要していた。これに対し、本例によれば、投影時の環境が撮像時と異なる場合であっても、被写体を原寸大で再現することができる。
[例8]
本例は、上記説明した具体例4に関する実施例である。本例では、図299〜図317を参照して、具体例4に係る内部処理について詳しく説明する。以下では、プロジェクション型の情報処理システム100aを想定して説明するが、図1〜図4を参照して説明したどのタイプでも、以下に説明する例に係るUIを実現可能である。
(構成例)
まず、本例に係る情報処理システム100に特徴的な構成を説明する。
(1)入力部
本例に係る入力部110は、テーブル140a上の物体を検知する機能を有する。入力部110は、例えばテーブル140a上の画像(静止画像又は動画像)を取得するカメラ、深度情報を取得するステレオカメラ、テーブル140aに設けられるタッチセンサ等により実現され得る。例えば、入力部110は、テーブル140aへの指によるタッチ、又は指を離した状態でテーブル140a上に浮かせている手を検知する。そして、入力部110は、検知した入力情報を制御部120へ出力する。
(2)出力部130
本例に係る出力部130は、画像を表示する表示部としての機能を有する。例えば、出力部130は、図1〜図4に示したように、テーブル140aの上部又は下部からテーブル140aに向けて投影するプロジェクタ、タッチパネル式又はフラットパネル式のディスプレイにより実現される。他にも、出力部130は、スピーカ等の音声出力部としての機能を有していてもよい。
(3)検出部
・指検出機能
本例に係る検出部121は、入力部110から出力された入力情報に基づいて、ユーザの指を検出する機能を有する。検出部121は、操作可能本数決定機能及び指検出機能を有する。
・操作可能本数決定機能
検出部121は、操作可能本数を決定する機能を有する。以下、検出部121による操作可能本数の決定処理について詳しく説明する。
まず、検出部121は、システム認識限界本数N本を決定する。システム認識限界本数とは、情報処理システム100が認識可能な上限の本数を意味し、上述した計算量上の認識可能上限数に相当する。例えば、検出部121は、システム認識限界本数N本を、利用中のアプリケーションの処理負荷から動的に算出しても良いし、システムのハードウェア要件から固定値として決定してもよい。
次いで、検出部121は、アプリケーションごとの操作限界本数M本を決定する。ここで、M≦Nとする。検出部121は、アプリケーションの内容に応じてM本を決定してもよい。例えば、検出部121は、ホッケーゲームであればM=2本とし、麻雀であればM=4本とする。また、検出部121は、M=Nとしてもよい。
次に、検出部121は、余剰本数P本を決定する。通常、検出部121は、P=1本とする。他にも、検出部121は、N>P>=N−Mを満たす任意の数として良い。
そして、検出部121は、操作可能本数を(M−P)本として決定する。なお、操作可能本数は、上述した仕様上の認識可能上限数に相当する。余剰本数によって、操作可能本数が少なくともシステム認識限界本数よりも少なくなるので、情報処理システム100は、操作可能本数を超過した指に対して認識できない旨をフィードバックすることが可能となる。
・指検出機能
検出部121は、ユーザの指を、操作権を有する指と有さない指の2種類に分けて検出する。検出部121は、操作可能本数に達するまでの間に検出された指を、操作権を有する指として検出する。そして、検出部121は、操作可能本数に達した後に検出された指を、操作権を有さない指として検出する。
操作権を有する指がテーブル140aへのタッチを継続する場合、検出部121は、操作権を継続して当該指に与える。一方、操作権を有する指がテーブル140aへのタッチを停止して操作をやめた場合、操作権は失われ、例えば他の指に操作権が移行する。ただし、検出部121は、操作権を有する指がテーブル140aへのタッチを停止して操作をやめた場合であっても、再度の操作が見込まれる場合には、継続して当該指に操作権を与える。以下、図299〜図300を参照して、再度の操作が見込まれる例について具体的に説明する。
図299は、本例に係るユーザインタフェースの一例を説明するための説明図である。図299に示した例では、ユーザが操作権を有する指をタッチ点4401から遠く離した状態を示している。例えば、検出部121は、操作権を有する指がタッチを中断してから所定時間以内である場合、操作のあったタッチ点4401を起点とした任意の広さの近傍エリア4402に、引き続き指が存在しているものとみなす。検出部121は、所定時間経過するまで操作権を留保しておき、近傍エリア4402内をタッチした指に留保しておいた操作権を与える。一方、検出部121は、所定時間経過後は操作権を開放し、例えば他の指に操作権を与える。なお、検出部121は、所定時間経過前であっても、近傍エリア4402外をタッチした指には、留保しておいた操作権を与えない。このように操作権が留保されることで、例えばユーザが操作を中断してテーブル140aの下に落ちた物を拾って、また同じ場所から操作を再開することが可能となる。
図300は、本例に係るユーザインタフェースの一例を説明するための説明図である。図300に示した例では、ユーザが操作権を有する指をタッチ点4403から離したもののテーブル140a上に手を留めている状態を示している。例えば、検出部121は、操作権を有する指がタッチを中断しても、継続して手の形状4404が深度情報等により検出される場合には、その手が操作権を有するものとみなす。これにより、例えばユーザがある操作の後に手を出したまま画面内の動画等を見ていた場合に、その手で操作を再開することが可能となる。
また、操作権は、タッチして操作を開始した指以外にも、操作の開始が見込まれる指にも与えられ得る。以下、図301を参照して、操作の開始が見込まれる例について具体的に説明する。
図301は、本例に係るユーザインタフェースの一例を説明するための説明図である。図301に示した例では、操作をしていないものの、テーブル140a上に指が差し出されている状態を示している。例えば、検出部121は、タッチは検出されていないが、深度情報等により指が検出されている場合、その指に操作権を与える。これにより、例えばユーザが指を出しているものの、逡巡してとっさに操作をしない場合にも、その指による操作が可能となる。
(4)出力制御部122
本例に係る出力制御部122は、ユーザへ操作可否をフィードバックするよう出力部130を制御する機能を有する。例えば、出力制御部122は、操作権を有する指による操作が検出された場合に、操作可能である旨のフィードバックを行う。一方で、出力制御部122は、操作権を有さない指による操作が検出された場合、例えば操作可能本数を超える指が新たに検出された場合に、操作不可能である旨のフィードバックを行う。出力制御部122は、操作可能本数(M−P)本を超える数の指であっても、システム認識限界本数N本まで検出可能である。このため、出力制御部122は、N本に達するまでの指に対して、操作不可能である旨の警告をフィードバックすることができる。
出力制御部122が警告をフィードバックする条件は多様に考えられる。例えば、出力制御部122は、所定回数以上、操作権を有さない指を検出した場合、又は所定期間以上操作権を有さない指を継続して検出した場合に、警告をフィードバックしてもよい。また、出力制御部122は、複数のフィードバックを組み合わせてもよく、各フィードバックに異なる条件を設定してもよい。例えば、出力制御部122は、ドラッグ開始を意味するポインタの色が変わるフィードバックを、初めて指が検出された瞬間から行い、ビープ音を鳴らすフィードバックを、当該瞬間の5秒後から開始してもよい。
以下、図302〜図315を参照して、出力制御部122によるフィードバックのバリエーションについて説明する。図302〜図315は、本例に係るユーザインタフェースの一例を説明するための説明図である。なお、図302〜図312では、操作可能である旨のフィードバックAと操作不可能である旨のフィードバックBとをそれぞれ示している。
図302に示した例では、入力箇所(指先又はタッチ点)に、操作可能である場合と不可能である場合とで異なる色合いのマークが表示される。
図303〜図305に示した例では、入力箇所に、操作可能である場合と不可能である場合とで異なる形状のマークが表示される。例えば、図303に示した例では、操作不可能である場合に、操作不可能である旨を表現した×印のマークが表示される。また、図304に示した例では、操作不可能である場合に、操作不可能である旨を表現した×印を手で作ったキャラクターが表示される。また、図305に示した例では、操作不可能である場合に、囲いの外に手を動かしても操作できないことが表現した、手を囲うマークが表示される。
図306〜図307に示した例では、操作可能である場合と不可能である場合とで異なる場所にマークが表示される。例えば、図306に示した例では、操作可能である場合は入力箇所にマークが表示され、操作不可能である場合は手の甲にマークが表示される。また、図307に示した例では、操作不可能である場合に、指を切るようなマークが表示される。
図308〜図310に示した例では、操作可能である場合は静的なマークが表示され、操作不可能である場合は動的に変化するマークが表示される。例えば、図308に示した例では、操作不可能である場合に、操作可能である場合と同様のマークが一旦は表示されるが、そのマークが散るエフェクトが表示される。これにより、ユーザは、自身が操作権を有していないことを知ることができる。また、図309に示した例では、操作不可能である場合に、マークが指先から徐々に指を遡って移動するエフェクトが表示される。また、図310に示した例では、操作不可能である場合に、指を押し返すようなエフェクトが表示される。図309及び図310に示した例によれば、ユーザは、自発的に指を引っ込めるよう促される。
図311に示した例では、操作可能である場合と不可能である場合とで、表示オブジェクトへの操作の反応が異なって表示される。表示オブジェクトとは、例えばアプリケーションウィンドウ、メニューアイコン又は起動アイコン等の、操作可能なオブジェクトを指す。例えば、操作可能である場合、タッチされた表示オブジェクトは色合いを変えない。一方で操作不可能である場合、タッチされた表示オブジェクトの色合いが希薄化して、操作不可能であることが表現される。
図312に示した例では、操作不可能である場合に、操作不可能である旨を示すメッセージが表示される。この例では、メッセージの一例として、「操作できる最大人数を超えています」が表示される。
図313に示した例では、ゲームにおいて、操作可能である場合と操作不可能である場合とで異なる操作オブジェクトが表示される。例えば、操作権を有する指の指先には戦闘機アイコンが表示され、ユーザは戦闘機を操作してゲームに参加することができる。一方、操作権を有さない指の指先には旗アイコンが表示され、ユーザは旗を振って応援できるに過ぎない。
図314に示した例では、テーブル140a上に操作権の消費数及び残数が表示されている。例えば、図314Aに示した例では、操作権を有する指は2本であるので、操作権の消費数が2であり残数が1である旨が表示されている。また、図314Bに示した例では、操作権を有する指は3本であるので、操作権の消費数が3であり残数が0である旨が表示されている。また、図314Cに示した例では、操作権を有する指は3本であり、操作権を有さない指は2本である。このため、図314Cに示した例では、操作権の消費数が3であり残数が0である旨が表示されると共に、操作権を有する指と有さない指とで異なる色合いのマークが表示される。
図315に示した例では、操作可能である場合と不可能である場合とで、異なる音声が出力される。例えば、操作可能である場合は音声が出力されず、操作不可能である場合には音声が出力されてもよい。この場合、例えばネガティブなビープ音、又は「人数オーバーです」といった言葉が出力され得る。なお、出力制御部122は、操作不可能となったユーザに近い場所に設けられたスピーカから、これらの音声を出力させてもよい。
以上、本例に係る情報処理システム100に特徴的な構成例について説明した。続いて、図316及び図317を参照して、本例に係る情報処理システム100の動作処理について説明する。
(動作処理)
図316は、本例に係る情報処理システム100において実行される表示制御処理の流れの一例を示すフローチャートである。図316では、操作可能本数を決定するための事前処理の流れの一例を示している。
図316に示すように、まず、ステップS4402で、検出部121は、システム認識限界本数N本を決定する。
次いで、ステップS4404で、検出部121は、操作限界本数M本を決定する。
次に、ステップS4406で、検出部121は、余剰本数P本を決定する。
そして、ステップS4408で、検出部121は、操作可能本数を(M−P)本として決定する。
以上、操作可能本数を決定するための事前処理について説明した。
図317は、本例に係る情報処理システム100において実行される表示制御処理の流れの一例を示すフローチャートである。図317では、情報処理システム100がユーザ操作を検出する際の、フレーム毎の指の検出処理の流れの一例を示している。図317に示した処理は、フレームが切り替わり、新たな指認識処理対象のデータが得られる度に繰り返される。
図317に示すように、まず、ステップS4412で、検出部121は、指認識処理の対象データを取得する。例えば、検出部121は、入力部110から出力された入力情報を取得する。
次いで、ステップS4414で、検出部121は、前フレームで操作権を有していた指を対象とした指認識処理を行う。このとき、検出部121は、タッチ操作が検出された指だけでなく、図299〜図301を参照して上記説明したタッチ操作が検出されない指も含めて、操作権を有していた指を検出する。なお、検出部121は、図299〜図301を参照して上記説明した検出技術を組み合わせて用いてもよい。このように、検出部121は、前フレームで操作権を有していた指をまず始めに指認識対象とすることで、前フレームで操作権を有していた指へ優先的に操作権を付与する。
次に、ステップS4416で、検出部121は、認識した指の本数はシステムの認識限界本数N本に達したか否かを判定する。
達したと判定された場合(S4416/YES)、処理は終了する。
一方で、達していないと判定された場合(S4416/NO)、ステップS4418で、検出部121は、前フレームで操作権を有していなかった指を対象とした指認識処理を行う。これにより、検出部121は、今フレームから新たに登場した指を認識する。
新たな指が認識されなかった場合(S4420/NO)、処理は終了する。
一方で、新たな指が認識された場合(S4420/YES)、ステップS4422で、検出部121は、新たに認識された指が操作可能本数に収まるか否かを判定する。
収まらないと判定された場合(S4422/NO)、ステップS4424で、出力制御部122は、操作不可能である旨のフィードバックを行う。出力制御部122は、図302〜図315に示したフィードバック例を組み合わせてもよいし、他の任意のフィードバックを行ってもよい。
一方で、収まると判定された場合(S4422/YES)、ステップS4426で、検出部121は、認識された指による操作が有効な操作であるか否かを判定する。
有効な操作であると判定された場合(S4426/YES)、ステップS4428で、検出部121は、操作イベントを発行する。このとき、例えば検出部121は、新たに認識された指に操作権を付与する。有効な操作でないと判定された場合(S4426/NO)、操作イベントは発行されない。検出部121は、操作イベントが発行されない場合であっても、新たに認識された指に操作権を付与してもよい。
次いで、ステップS4430で、検出部121は、対象データの最後まで指認識処理を行ったか否かを判定する。例えば、検出部121は、ステップS4418における指認識処理においてまだ未走査の領域があるか否かにより、本判定を行う。
対象データの最後まで指認識処理を行っていないと判定された場合(S4430/NO)、処理は再度ステップS4416に戻る。一方で、対象データの最後まで指認識処理を行ったと判定された場合(S4430/YES)、今フレームの処理は終了する。
以上、本例に係る情報処理システム100の動作処理について説明した。
<3.ハードウェア構成例>
次に、図318を参照して、本開示の一実施形態にかかる情報処理システム100のハードウェア構成について説明する。図318は、本開示の実施形態にかかる情報処理システム100のハードウェア構成例を示すブロック図である。
図318に示すように、情報処理システム100は、CPU(Central Processing unit)901、ROM(Read Only Memory)903、およびRAM(Random Access Memory)905を含む。また、情報処理システム100は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、通信装置925を含んでもよい。さらに、情報処理システム100は、必要に応じて、撮像装置933、およびセンサ935を含んでもよい。情報処理システム100は、CPU901に代えて、またはこれとともに、DSP(Digital Signal Processor)またはASIC(Application Specific Integrated Circuit)と呼ばれるような処理回路を有してもよい。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理システム100内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。CPU901、ROM903、およびRAM905は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置915は、ユーザの音声を検出するマイクを含んでもよい。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理システム100の操作に対応した携帯電話などの外部接続機器929であってもよい。入力装置915は、ユーザが入力した情報に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理システム100に対して各種のデータを入力したり処理動作を指示したりする。また、後述する撮像装置933も、ユーザの手の動きなどを撮像することによって、入力装置として機能しうる。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、有機EL(Electro−Luminescence)ディスプレイ、プロジェクタなどの表示装置、ホログラムの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置917は、情報処理システム100の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。また、出力装置917は、周囲を明るくするためライトなどを含んでもよい。
ストレージ装置919は、情報処理システム100の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体927のためのリーダライタであり、情報処理システム100に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927に記録を書き込む。
接続ポート923は、機器を情報処理システム100に直接接続するためのポートである。接続ポート923は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどでありうる。また、接続ポート923は、RS−232Cポート、光オーディオ端子、HDMI(登録商標)(High−Definition Multimedia Interface)ポートなどであってもよい。接続ポート923に外部接続機器929を接続することで、情報処理システム100と外部接続機器929との間で各種のデータが交換されうる。
通信装置925は、例えば、通信ネットワーク931に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどでありうる。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置925は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置925に接続される通信ネットワーク931は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。
撮像装置933は、例えば、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。撮像装置933は、静止画を撮像するものであってもよいし、また動画を撮像するものであってもよい。
センサ935は、例えば、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサなどの各種のセンサである。センサ935は、例えば情報処理システム100の筐体の姿勢など、情報処理システム100自体の状態に関する情報や、情報処理システム100の周辺の明るさや騒音など、情報処理システム100の周辺環境に関する情報を取得する。また、センサ935は、GPS(Global Positioning System)信号を受信して装置の緯度、経度および高度を測定するGPSセンサを含んでもよい。
以上、情報処理システム100のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
<4.まとめ>
以上説明したように本開示の一実施形態によれば、情報を表示しようとする環境や、表示されている情報の状況に応じて、より適切かつ効率的な情報を表示することが可能な情報処理システム100が提供される。
本明細書の各装置が実行する処理における各ステップは、必ずしもシーケンス図またはフローチャートとして記載された順序に沿って時系列に処理する必要はない。例えば、各装置が実行する処理における各ステップは、フローチャートとして記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
また、各装置に内蔵されるCPU、ROMおよびRAMなどのハードウェアを、上述した各装置の構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供されることが可能である。また、機能ブロック図で示したそれぞれの機能ブロックをハードウェアで構成することで、一連の処理をハードウェアで実現することもできる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、上記実施形態で示したユーザインタフェースやアプリケーションを実現するソフトウェアは、インターネット等のネットワークを介して使用するウェブアプリケーションとして実現されてもよい。ウェブアプリケーションは、例えば、HTML(HyperText Markup Language)、SGML(Standard Generalized Markup Language)、XML(Extensible Markup Language)などのマークアップ言語により実現されてもよい。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
表示面上の実オブジェクトの情報に応じて前記表示面に表示される表示オブジェクトの表示領域を決定する表示制御部、
を備える、表示制御装置。
(2)
前記実オブジェクトの情報は、前記実オブジェクトの属性情報を含む、前記(1)に記載の表示制御装置。
(3)
前記属性情報は、前記実オブジェクトを移動させる困難さに関する情報を含む、前記(2)に記載の表示制御装置。
(4)
前記属性情報は、前記表示オブジェクトとの関係性に関する情報を含む、前記(2)又は(3)に記載の表示制御装置。
(5)
前記表示制御部は、位置、大きさ、又は角度の少なくともいずれかにより前記表示オブジェクトの表示領域を決定する、前記(1)〜(4)のいずれか一項に記載の表示制御装置。
(6)
前記表示制御部は、前記実オブジェクトに重ならないように前記表示オブジェクトの表示領域を決定する、前記(1)〜(5)のいずれか一項に記載の表示制御装置。
(7)
前記表示制御部は、前記表示オブジェクトの表示領域の候補を評価する評価関数を用いて前記表示領域を決定する、前記(1)〜(6)のいずれか一項に記載の表示制御装置。
(8)
前記表示制御部は、ユーザ操作に応じて前記評価関数のパラメータを設定する、前記(7)に記載の表示制御装置。
(9)
前記表示制御部は、前記表示面にすでに表示されている他の表示オブジェクトの情報にさらに応じて、表示オブジェクトの表示領域を決定する、前記(1)〜(8)のいずれか一項に記載の表示制御装置。
(10)
前記表示制御部は、前記他の表示オブジェクトよりも前面に前記表示オブジェクトの表示領域を決定する、前記(9)に記載の表示制御装置。
(11)
前記表示制御部は、前記他の表示オブジェクトの表示領域に重ならないよう前記表示オブジェクトの表示領域を決定する、前記(9)又は(10)に記載の表示制御装置。
(12)
前記表示制御部は、前記表示オブジェクトの表示領域に重ならないよう前記他の表オブジェクトの表示領域を変更する、前記(9)〜(11)のいずれか一項に記載の表示制御装置。
(13)
前記他の表示オブジェクトの情報は、前記表示オブジェクトとの関係性に関する情報を含む、前記(9)〜(12)のいずれか一項に記載の表示制御装置。
(14)
前記表示制御部は、前記表示オブジェクトの表示対象であるユーザの情報にさらに応じて、前記表示オブジェクトの表示領域を決定する、前記(1)〜(13)のいずれか一項に記載の表示制御装置。
(15)
前記ユーザの情報は、前記ユーザの位置又は向きの少なくともいずれかを示す情報を含む、前記(14)に記載の表示制御装置。
(16)
表示面上の実オブジェクトの情報に応じて前記表示面に表示される表示オブジェクトの表示領域をプロセッサにより決定すること、
を含む、表示制御方法。
(17)
コンピュータを、
表示面上の実オブジェクトの情報に応じて前記表示面に表示される表示オブジェクトの表示領域を決定する表示制御部、
として機能させるためのプログラム。