[1.実施形態]
図1は、実施形態に係る情報処理装置10を含むシステムSYSの概要を示す図である。システムSYSは、ユーザUに把持される操作装置20と、操作装置20と通信可能な情報処理装置10とを有する。なお、本明細書における「装置」という用語は、回路、デバイス又はユニット等の他の用語に読替えてもよい。
情報処理装置10としては、任意の情報処理装置を採用することができ、例えば、ユーザUの頭部に装着されるウェアラブル端末であってもよいし、スマートフォン及びタブレット端末等の可搬型の情報端末であってもよい。ユーザUの頭部に装着されるウェアラブル端末は、例えば、ヘッドマウントディスプレイ及びスマートグラス等である。なお、以下の説明では、情報処理装置10として、スマートグラスを想定する。
情報処理装置10は、例えば、AR(Augmented Reality)技術又はMR(Mixed Reality)技術等を用いて、仮想空間の仮想物体と現実空間の実物体とを表示する。なお、情報処理装置10は、光学シースルー方式により、実物体と仮想物体とをユーザUに視認させてもよいし、ユーザUの周囲の現実空間を撮像した画像に仮想物体を融合するビデオシースルー方式により、実物体と仮想物体とをユーザUに視認させてもよい。あるいは、情報処理装置10は、VR(Virtual Reality)技術を用いて、仮想空間を表示してもよい。すなわち、情報処理装置10は、xR(AR、MR及びVR等の総称)技術を用いて、仮想空間等を表示してもよい。本実施形態では、情報処理装置10が光学シースルー方式を採用している場合を想定する。
操作装置20は、例えば、操作装置20の姿勢及び位置の一方又は両方がユーザUにより変更されることにより、ユーザUの操作を受け付ける。操作装置20の詳細は、後述する図6において説明する。
図2は、図1に示した情報処理装置10の外観を示す説明図である。情報処理装置10は、光学シースルー方式に用いられるハーフミラーHFMと、ハーフミラーHFMが取り付けられるフレームFRMとを有する。フレームFRM内には、例えば、情報処理装置10の全体を制御する処理装置100と、各種のデータを記憶する記憶装置120と、通信装置140と、撮像装置160と、表示装置180と、音を再生する音出力装置190とが配置されている。すなわち、本実施形態では、撮像装置160は、ユーザUに装着される。なお、処理装置100、記憶装置120、通信装置140、撮像装置160、表示装置180及び音出力装置190の配置は、図2に示す例に限定されない。
通信装置140は、操作装置20等の他の装置と通信を行うためのハードウェア(送受信デバイス)である。例えば、通信装置140は、移動体通信網又はネットワークを介して他の装置と通信する機能、及び、近距離無線通信によって他の装置と通信する機能の一方又は両方を有する。近距離無線通信には、例えばBluetooth(登録商標)、ZigBee(登録商標)、又は、WiFi(登録商標)等が挙げられる。
撮像装置160は、被写体を撮像し、撮像した被写体の画像を示す画像情報を出力する装置である。例えば、撮像装置160は、外界を撮像することにより得られる画像を示す画像情報を生成する。画像情報は、例えば、ユーザUの前方(視界方向)の空間等の外界の状況を示す情報である。撮像装置160は、例えば、撮像光学系及び撮像素子を有する。撮像光学系は、少なくとも1つの撮像レンズLENを含む光学系である。例えば、撮像光学系は、プリズム等の各種の光学素子を有してもよいし、ズームレンズやフォーカスレンズ等を有してもよい。撮像素子は、例えば、CCD(Charge Coupled Device)イメージセンサー又はCMOS(Complementary MOS)イメージセンサー等である。
表示装置180は、画像を表示する出力デバイスである。例えば、表示装置180は、処理装置100による制御のもとで、仮想物体等を表示する。表示装置180として、例えば、液晶表示パネル及び有機EL(Electro Luminescence)表示パネル等の各種の表示パネルが好適に利用される。ここで、表示装置180は、実物体と仮想物体とをユーザに視認させるシースルー方式による表示を実現するための光源及び光学系等の各種構成を適宜に含む。例えば、表示装置180が画像を表示すると、ハーフミラーHFMによって反射された光がユーザUの網膜に投射される。ハーフミラーHFMによって反射された光によって、ユーザUは、表示装置180が表示した画像を認識する。
ハーフミラーHFMの2つの面のうち、ユーザUから見える面は、図3に示す表示面SCに該当する。従って、表示装置180が画像を表示している場合、ユーザUは、例えば、表示面SC(ハーフミラーHFMの面)のうち、画像が表示された領域以外の領域を通して、外界の様子(外界の像)を視認することができる。以下では、ハーフミラーHFMを通してユーザUに視認される外界の像は、現実の外界画像とも称される。なお、情報処理装置10の外観(例えば、ハーフミラーHFMの形状等)は、図2に示す例に限定されない。
図3は、図1に示した情報処理装置10が表示する画像の一例を示す図である。なお、表示面SCの形状はハーフミラーHFMの面の形状に対応するが、図3では、図を見やすくするために、四角形の表示面SCを図示している。表示装置180は、操作画面OW(OW1)とポインタPとを現実の外界画像に重畳した画像を、表示面SCに表示する。これにより、ユーザUには、現実の空間内に操作画面OW及びポインタPが表示された様に見える。
図3に示す例では、ポインタPは、操作画面OW1上に表示されているが、操作画面OW1の外側に表示されてもよい。例えば、ポインタPは、操作装置20により表示位置が操作される。すなわち、ポインタPの表示位置は、操作装置20に対する操作に応じて移動する。以下では、操作装置20に対する操作に応じてポインタPの表示位置が移動する期間は、操作期間とも称される。操作装置20に対する操作は、操作装置20を用いたユーザ操作に該当する。ポインタPは、操作期間の開始時に、基準位置RP(PR1)に表示される。図3では、説明を分かり易くするために、基準位置RP1を破線の円で示しているが、実際には、基準位置RP1(図3の破線の円)は、表示面SCに表示されなくてもよいし、表示されてもよい。
操作画面OW1は、ユーザUが入力した文字列を表示する入力文字領域CIWと、文字入力のための複数のボタンBTとを有する。図3では、図を見やすくするために、複数のボタンBTのうち一部のボタンBTに符号が付されている。
ボタンBTは、タップ操作によってボタンBTに応じた所定処理を実行することを示す画像である。例えば、ボタンBTには、ボタンBTに応じた所定処理の内容を示唆する画像又は記号が表示されている。ここで、ボタンBTに応じた所定処理は、例えば、図3に示す操作画面OW1では、数字等の文字を入力文字領域CIWに記載する処理、及び、入力文字領域CIWに記載された文字を削除する処理等である。
図3に示す例では、ユーザUが、文字「3」及び「4」を順に入力した後に、文字「5」を示すボタンBT内にポインタPの表示位置を移動させた場合を想定する。文字「5」を示すボタンBT内にポインタPがある状態で、操作装置20に対するタッチ操作がユーザUにより行われると、表示装置180は、ポインタPの表示位置に対応するボタンBTに応じた所定処理として、文字「5」を入力文字領域CIWに表示する。
なお、詳細は図8において説明するが、本実施形態では、操作期間の開始時にポインタPを基準位置RPに表示するキャリブレーション処理は、ユーザUの姿勢に基づいて、自動的に実行される。また、図3に示す例では、文字「1」を示すボタンBTの中心位置に基準位置RP1が設定されているが、基準位置RP1は、文字「1」を示すボタンBTと異なる位置に設定されてもよい。例えば、使用頻度が相対的に高いボタンBTの中心位置に基準位置RP1が設定されていてもよい。
また、基準位置RPは、ポインタPが表示される操作画面OWの種類に応じて、決定されてもよいし、操作画面OWの種類に拘わらず、操作画面OW内の予め決められた位置(例えば、操作画面OWの中心位置)に決定されていてもよい。あるいは、基準位置RPは、操作画面OWの種類に拘わらず、表示面SC内の予め決められた位置(例えば、表示面SCの中心位置)に決定されていてもよい。本実施形態では、基準位置RPは、ポインタPが表示される操作画面OWの種類に応じて、決定される場合を想定する。
図4は、基準位置RPを説明するための説明図である。上述したように、基準位置RPは、ポインタPが表示される操作画面OWの種類に応じて、決定される。図4に示す操作画面OW2は、複数の項目と1対1に対応する複数の項目アイコンCOI(COI1、COI2及びCOI3)のいずれかを選択するメニュー画面である。操作画面OW2には、複数の項目アイコンCOIの他に、操作画面OW2の表示をキャンセルするためのキャンセルアイコンCNIも表示される。操作画面OW2では、操作開始時の誤操作を防止するために、基準位置RP2は、項目アイコンCOI及びキャンセルアイコンCNIが表示される領域と異なる位置に設定されている。
図5は、図1に示した情報処理装置10の構成を示すブロック図である。情報処理装置10は、図2において説明したように、処理装置100、記憶装置120、通信装置140、撮像装置160、表示装置180及び音出力装置190を有する。情報処理装置10の複数の要素は、情報を通信するための単体又は複数のバスにより相互に接続される。また、情報処理装置10の複数の要素の各々を、単数又は複数の機器が構成してもよい。あるいは、情報処理装置10の一部の要素は省略されてもよい。通信装置140、撮像装置160、表示装置180及び音出力装置190については、図2において説明したため、図5では、処理装置100を中心に説明する。
処理装置100は、情報処理装置10の全体を制御するプロセッサであり、例えば、単数又は複数のチップにより構成される。処理装置100は、例えば、周辺装置とのインタフェース、演算装置及びレジスタ等を含む中央処理装置(CPU:Central Processing Unit)により構成される。なお、処理装置100の機能の一部又は全部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、及び、FPGA(Field Programmable Gate Array)等のハードウェアによって実現してもよい。処理装置100は、各種の処理を並列的又は逐次的に実行する。
処理装置100は、例えば、記憶装置120から読み出した制御プログラムPR1を実行することによって、推定部110、期間管理部112及び表示制御部114として機能する。すなわち、情報処理装置10は、推定部110、期間管理部112及び表示制御部114を有する。
推定部110は、操作装置20の位置に基づいて、ユーザUの姿勢を推定する。操作装置20の位置は、例えば、ユーザUの所定部位の位置(例えば、目の位置)に対する相対的な位置であってもよい。なお、操作装置20の位置と、ユーザUの姿勢との関係の一例は、図7において説明する。このため、図5では、推定部110の動作のうち、操作装置20の位置を特定する際の動作を中心に説明する。
例えば、推定部110は、撮像装置160により撮像された外界の画像を示す画像情報を、撮像装置160から取得する。また、推定部110は、操作装置20の動きに関する動き情報として、後述する図6に示す慣性センサ280の検出結果を示す情報(以下、動き情報とも称する)を、操作装置20から通信装置140を介して取得する。そして、推定部110は、撮像装置160から取得した画像情報と、操作装置20から取得した動き情報とのうちの少なくとも一方に基づいて、操作装置20の位置を特定する。
例えば、推定部110は、撮像装置160により操作装置20が撮像されている第1期間では、画像情報に基づいて、操作装置20の位置を特定する。なお、撮像装置160により操作装置20が撮像されている第1期間とは、例えば、操作装置20が撮像装置160の撮像範囲に存在している期間である。例えば、第1期間では、推定部110は、撮像装置160により撮像された外界の画像内における操作装置20の画像の大きさ及び位置に基づいて、操作装置20の位置を特定してもよい。あるいは、推定部110は、操作装置20の周辺の画像が、ユーザUの部位のどの辺の画像であるかを特定することにより、操作装置20の位置を特定してもよい。あるいは、推定部110は、前回特定した操作装置20の位置を始点とした場合の操作装置20の移動量及び移動方向を、前回撮像された外界の画像と今回撮像された外界の画像との差分に基づいて特定することにより、操作装置20の位置を特定してもよい。
また、例えば、推定部110は、撮像装置160により操作装置20が撮像されていない第2期間では、動き情報と第1期間における操作装置20の位置とに基づいて、操作装置20の位置を特定する。なお、撮像装置160により操作装置20が撮像されていない第2期間とは、例えば、操作装置20が撮像装置160の撮像範囲外に存在している期間である。例えば、第2期間では、推定部110は、第1期間における操作装置20の位置を始点とした場合の操作装置20の移動量及び移動方向を動き情報に基づいて特定することにより、操作装置20の位置を特定してもよい。
なお、推定部110は、第2期間に操作装置20の位置を繰り返し特定する場合、2回目以降の操作装置20の位置の特定では、前回特定した操作装置20の位置を始点としてもよい。この場合、第2期間における1回目の操作装置20の位置の特定が、第1期間における操作装置20の位置に基づいて実行されるため、2回目以降の操作装置20の位置の特定も、第1期間における操作装置20の位置に基づいて実行されることに該当する。
期間管理部112は、操作装置20に対する操作に応じてポインタPの表示位置が移動する操作期間が開始していない場合、推定部110が推定したユーザUの姿勢に基づいて、操作期間を開始する。例えば、期間管理部112は、ユーザUの姿勢が安定していると推定部110が推定した場合、操作期間を開始する。
表示制御部114は、例えば、操作画面OW等の画像を表示装置180に表示させる。例えば、表示制御部114は、表示装置180を制御することにより、操作期間の開始において、ポインタPを基準位置RPに表示する。このように、表示制御部114は、操作装置20により表示位置が操作されるポインタPを表示装置180に表示させる。
記憶装置120は、処理装置100が読取可能な記録媒体であり、処理装置100が実行する制御プログラムPR1を含む複数のプログラム、及び処理装置100が使用する各種のデータを記憶する。記憶装置120は、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)及びRAM(Random Access Memory)等の少なくとも1つによって構成されてもよい。記憶装置120は、レジスタ、キャッシュ、又は、メインメモリ(主記憶装置)等と呼ばれてもよい。なお、制御プログラムPR1は、インターネット等のネットワークを介して他の装置から送信されてもよい。
なお、情報処理装置10の構成は、図5に示す例に限定されない。例えば、撮像装置160及び音出力装置190は、必要に応じて設けられればよく、省略されてもよい。
図6は、図1に示した操作装置20の構成を示すブロック図である。操作装置20は、処理装置200と、記憶装置220と、通信装置240と、タッチセンサ260と、慣性センサ280と、振動発生装置290とを有する。
処理装置200は、操作装置20の全体を制御するプロセッサであり、例えば、単数又は複数のチップで構成される。処理装置200は、例えば、周辺装置とのインタフェース、演算装置及びレジスタ等を含む中央処理装置(CPU)で構成される。なお、処理装置200の機能の一部又は全部を、DSP、ASIC、PLD、及び、FPGA等のハードウェアによって実現してもよい。処理装置200は、各種の処理を並列的又は逐次的に実行する。処理装置200は、例えば、記憶装置220から読み出した制御プログラムPR2を実行することによって、操作装置20の全体を制御する機能を実現する。
記憶装置220は、処理装置200が読取可能な記録媒体であり、処理装置200が実行する制御プログラムPR2を含む複数のプログラム、及び、処理装置200が使用する各種の情報などを記憶する。記憶装置220は、例えば、ROM、EPROM、EEPROM、及び、RAM等の少なくとも1つによって構成されてもよい。記憶装置220は、レジスタ、キャッシュ、又は、メインメモリ(主記憶装置)等と呼ばれてもよい。なお、制御プログラムPR2は、インターネット等のネットワークを介して他の装置から送信されてもよい。
通信装置240は、情報処理装置10等の他の装置と通信を行うためのハードウェア(送受信デバイス)である。例えば、通信装置240は、移動体通信網又はネットワークを介して他の装置と通信する機能、及び、近距離無線通信によって他の装置と通信する機能の一方又は両方を有する。
タッチセンサ260は、ユーザUのタップ操作を検出する。例えば、タッチセンサ260がタップ操作を検出した場合、処理装置200は、ユーザUによるタップ操作を受け付けたことを示すタップ情報を生成する。タップ情報は、例えば、通信装置240によって、情報処理装置10に送信される。
慣性センサ280は、例えば、三次元空間を表す3軸の各々における操作装置20の加速度と、この3軸の各々を回転軸とした場合の操作装置20の角速度とを検出する。そして、処理装置200は、操作装置20の加速度及び角速度の検出結果を示す動き情報を生成する。動き情報は、例えば、通信装置240によって、情報処理装置10に送信される。
振動発生装置290は、例えば、バイブレータであり、処理装置200による制御のもとで振動する。例えば、処理装置200は、振動発生装置290を振動させることにより、操作装置20を振動させる。
なお、操作装置20の構成は、図6に示す例に限定されない。例えば、振動発生装置290は、必要に応じて設けられればよく、省略されてもよい。また、例えば、慣性センサ280は、加速度及び角速度のうちの一方のみを検出してもよい。
図7は、ユーザUの姿勢が安定している場合の例を説明するための説明図である。なお、図7では、操作装置20の位置が、ユーザUに装着された撮像装置160(例えば、図2に示した撮像レンズLEN)に対する相対的な位置である場合を想定する。ユーザUに装着された撮像装置160の位置は、例えば、ユーザUの目等の所定部位の位置に対応する。
図7の第1状態は、ユーザUが立っている場合のユーザUの姿勢の一例を示している。例えば、推定部110は、撮像装置160の位置と操作装置20の位置との距離DISが第1距離以上である場合、ユーザUの姿勢が安定していると推定する。
ここで、第1距離は、例えば、ユーザUが手を下げた状態における手の位置と目の位置との距離に対応し、ユーザUにより設定されてもよいし、一般的な成人の体形から決められた値(距離)であってもよい。なお、ユーザUによる第1距離の設定は、例えば、ユーザUが第1距離を情報処理装置10に入力することにより実現されてもよいし、ユーザUが身長を情報処理装置10に入力することにより実現されてもよい。ユーザUが身長を情報処理装置10に入力した場合、例えば、推定部110は、身長に基づいて第1距離を設定する。
第1距離が、ユーザUが手を下げた状態における手の位置と目の位置との距離に対応する場合、例えば、ユーザUの姿勢が手を下げた自然な体勢になることにより、撮像装置160の位置と操作装置20の位置との距離DISは、第1距離以上になる。ユーザUが手を下げた自然な体勢は、ユーザUの姿勢が安定している状態に該当する。従って、推定部110は、上述したように、撮像装置160の位置と操作装置20の位置との距離DISが第1距離以上である場合、ユーザUの姿勢が安定していると推定する。
図7の第2状態は、ユーザUが椅子等に座っている場合のユーザUの姿勢の一例を示している。例えば、図7の第2状態は、ユーザUが椅子等に座っている場合において、ユーザUの肘(操作装置20を把持している方の腕の肘)が机DESに支持されている状態を示している。机DESは、物体の一例である。一般的に、人体は、肘が物体に支持されている場合、筋骨的に安定する。
例えば、推定部110は、撮像装置160の位置と操作装置20の位置との距離DISが第2距離未満である場合、ユーザUの姿勢が、操作装置20を把持している手を含む腕の肘が机DESに接している安定姿勢であるか否かを、画像情報に基づいて判定する。図7に示す例では、破線で囲んだ部分において、操作装置20を把持している手を含む腕の肘が机DESに接している。従って、図7に示す第2状態では、推定部110は、ユーザUの姿勢が安定姿勢であると判定する。
ここで、第2距離は、例えば、ユーザUの肘及び手が物体(例えば、机DES)に接している状態における手の位置と目の位置との距離に対応し、ユーザUにより設定されてもよいし、一般的な成人の体形から決められた値(距離)であってもよい。例えば、第2距離は、上述の第1距離よりも短い距離に設定される。なお、ユーザUによる第2距離の設定は、第1距離と同様に、例えば、ユーザUが第2距離を情報処理装置10に入力することにより実現されてもよいし、ユーザUが身長を情報処理装置10に入力することにより実現されてもよい。
図8は、図5に示した情報処理装置10の動作の一例を示すフローチャートである。なお、図8は、操作期間を開始する際の処理に関する情報処理装置10の動作の一例を示す。
先ず、ステップS100において、推定部110は、図5において説明したように、撮像装置160から取得した画像情報と、操作装置20から取得した動き情報とのうちの少なくとも一方に基づいて、操作装置20の位置を特定する。
次に、ステップS200において、推定部110は、図7において説明したように、ステップS100において推定した操作装置20の位置に基づいて、ユーザUの姿勢を推定する。
次に、ステップS300において、期間管理部112は、現時点が操作期間であるか否かを判定する。例えば、期間管理部112は、操作期間が既に開始しているか否かを判定する。ステップS300における判定の結果が否定の場合、期間管理部112は、処理をステップS400に進める。一方、ステップS300における判定の結果が肯定の場合、操作期間を開始する際の処理に関する情報処理装置10の動作は終了する。
ステップS400において、期間管理部112は、ユーザUの姿勢が安定しているか否かを判定する。例えば、期間管理部112は、ユーザUの姿勢が安定していると推定部110がステップS200において推定したか否かを、判定する。ステップS400における判定の結果が肯定の場合、期間管理部112は、処理をステップS500に進める。一方、ステップS400における判定の結果が否定の場合、操作期間を開始する際の処理に関する情報処理装置10の動作は終了する。
ステップS500において、期間管理部112は、操作期間を開始する。
次に、ステップS600において、表示制御部114は、表示装置180を制御することにより、操作期間の開始において、ポインタPを基準位置RPに表示する。これにより、ポインタPは、操作期間の開始時に、基準位置RPに表示される。このように、本実施形態では、操作期間の開始時にポインタPを基準位置RPに表示するキャリブレーション処理が、ユーザUの姿勢に基づいて、自動的に実行される。
なお、操作期間を開始する際の処理に関する情報処理装置10の動作は、図8に示す例に限定されない。例えば、ステップS100及びS200の一連の処理は、ステップS300の処理の後に実行されてもよい。また、ステップS600の処理は、ステップS500の処理と並列に実行されてもよい。
また、推定部110は、例えば、操作装置20の角速度の検出結果が動き情報に含まれる場合、ステップS200において、操作装置20の角速度等から特定される操作装置20の姿勢と操作装置20の位置とに基づいて、ユーザUの姿勢を推定してもよい。
また、表示制御部114が、ステップS600において、操作画面OWの種類に応じて基準位置RPを決定してもよい。すなわち、操作画面OWの種類に応じて基準位置RPを決定する機能が、表示制御部114に含まれてもよい。あるいは、処理装置100は、操作画面OWの種類に応じて基準位置RPを決定する機能を、表示制御部114とは別に実現してもよい。
図9は、操作装置20の位置を特定する動作の一例を示すフローチャートである。すなわち、図9に示す処理は、図8に示したステップS100の処理の一例である。
例えば、ステップS110において、推定部110は、操作装置20から動き情報を取得する。また、ステップS120において、推定部110は、撮像装置160から画像情報を取得する。
そして、ステップS130において、推定部110は、操作装置20が撮像されているか否かを、ステップS120において撮像装置160から取得した画像情報に基づいて、判定する。すなわち、推定部110は、現時点が、撮像装置160により操作装置20が撮像されている第1期間であるか否かを判定する。ステップS130における判定の結果が肯定の場合、推定部110は、処理をステップS140に進める。一方、ステップS130における判定の結果が否定の場合、推定部110は、処理をステップS142に進める。
ステップS140において、推定部110は、ステップS120において撮像装置160から取得した画像情報に基づいて、操作装置20の位置を特定する。このように、撮像装置160により操作装置20が撮像されている第1期間では、推定部110は、画像情報に基づいて、操作装置20の位置を特定する。なお、第1期間における操作装置20の位置の特定方法は、図5において説明されているため、図9では、第1期間における操作装置20の位置の特定方法の詳細な説明を省略する。推定部110は、ステップS140の処理を実行した後、処理を図8に示したステップS200に進める。
ステップS142において、推定部110は、過去に特定した操作装置20の位置と、ステップS110において操作装置20から取得した動き情報とに基づいて、操作装置20の位置を特定する。このように、撮像装置160により操作装置20が撮像されていない第2期間では、推定部110は、動き情報と過去に特定した操作装置20の位置とに基づいて、操作装置20の位置を特定する。過去に特定した操作装置20の位置は、例えば、第1期間における操作装置20の位置であってもよい。なお、第2期間における操作装置20の位置の特定方法は、図5において説明されているため、図9では、第2期間における操作装置20の位置の特定方法の詳細な説明を省略する。推定部110は、ステップS142の処理を実行した後、処理を図8に示したステップS200に進める。
なお、操作装置20の位置を特定する動作は、図9に示す例に限定されない。例えば、ステップS110の処理は、ステップS120の処理の後に実行されてもよいし、ステップS120の処理と並列に実行されてもよい。
また、推定部110は、ステップS140において操作装置20の位置を特定する際に、画像情報と動き情報とを用いてもよい。すなわち、推定部110は、第1期間において、画像情報と動き情報とに基づいて、操作装置20の位置を特定してもよい。例えば、推定部110は、動き情報と前回特定した操作装置20の位置とに基づいて推定した操作装置20の位置と、画像情報に基づいて推定した操作装置20の位置とに基づいて、操作装置20の位置を特定してもよい。あるいは、推定部110は、動き情報と前回特定した操作装置20の位置とに基づいて操作装置20のおおよその位置を推定した後、推定した操作装置20のおおよその位置と画像情報とに基づいて操作装置20の位置を特定してもよい。
以上、本実施形態では、情報処理装置10は、操作装置20を用いたユーザ操作に応じて表示位置が移動するポインタPを表示装置180に表示させる表示制御部114と、操作装置20の位置に基づいて、ユーザUの姿勢を推定する推定部110と、推定部110が推定したユーザUの姿勢に基づいて、操作期間を開始する期間管理部112とを有する。操作期間は、操作装置20を用いたユーザ操作に応じてポインタPの表示位置が移動する期間である。また、表示制御部114は、表示装置180を制御することにより、操作期間の開始において、ポインタPを基準位置に表示する。
このように、本実施形態では、ユーザUの姿勢に基づいて、操作期間の開始時にポインタPを基準位置RPに自動的に表示することができる。すなわち、本実施形態では、操作期間の開始時にポインタPを基準位置RPに表示するキャリブレーション処理を、ユーザUに操作装置20を操作させることなく、ユーザUの姿勢に基づいて、自動的に実行することができる。これにより、本実施形態では、ユーザUの操作が煩雑になることを抑制することができる。この結果、本実施形態では、情報処理装置10の使い勝手を向上させることができる。
また、本実施形態では、情報処理装置10は、ユーザUに装着され、外界を撮像することにより得られる画像を示す画像情報を生成する撮像装置160をさらに有する。この場合、例えば、推定部110は、撮像装置160から取得した画像情報と、操作装置20から取得した操作装置20の動きに関する動き情報とのうちの少なくとも一方に基づいて、操作装置20の位置を特定する。情報処理装置10が撮像装置160を有する場合、画像情報に基づいて操作装置20の位置を特定することができるため、操作装置20の位置を精度よく特定すること、及び、操作装置20の位置を簡易に特定することができる。
例えば、推定部110は、撮像装置160により操作装置20が撮像されている第1期間では、画像情報に基づいて、操作装置20の位置を特定する。また、撮像装置160により操作装置20が撮像されていない第2期間では、動き情報と第1期間における操作装置20の位置とに基づいて、操作装置20の位置を特定する。この場合、撮像装置160により操作装置20が撮像されていない第2期間においても、例えば、第1期間における操作装置20の位置を始点とした場合の操作装置20の移動量及び移動方向を動き情報に基づいて特定することにより、操作装置20の位置を特定することができる。
また、本実施形態では、推定部110は、撮像装置160の位置と操作装置20の位置との距離DISが第1距離以上である場合、ユーザUの姿勢が安定していると推定する。そして、期間管理部112は、ユーザUの姿勢が安定していると推定部110が推定した場合、操作期間を開始する。このように、本実施形態では、撮像装置160の位置と操作装置20の位置との距離DISに基づいて、ユーザUの姿勢が安定しているかを容易に推定することができる。また、本実施形態では、ユーザUの姿勢が安定したときに、ユーザUに操作装置20を操作させることなく、操作期間の開始時にポインタPを基準位置RPに自動的に表示することができる。
また、本実施形態では、推定部110は、撮像装置160の位置と操作装置20の位置との距離DISが第2距離未満である場合、ユーザUの姿勢が、操作装置20を把持している手を含む腕の肘が物体に接している安定姿勢であるか否かを、画像情報に基づいて判定する。そして、期間管理部112は、ユーザUの姿勢が安定姿勢であると推定部110が判定した場合、操作期間を開始する。このように、本実施形態では、撮像装置160の位置と操作装置20の位置との距離DISと画像情報とに基づいて、ユーザUの姿勢が安定姿勢であるかを容易に推定することができる。また、本実施形態では、ユーザUの姿勢が安定姿勢であるときに、ユーザUに操作装置20を操作させることなく、操作期間の開始時にポインタPを基準位置RPに自動的に表示することができる。
また、本実施形態では、基準位置は、ポインタPが表示される操作画面OWの種類に応じて、決定される。これにより、操作期間の開始において、操作画面OWの種類に応じた表示位置にポインタPが表示される。このため、本実施形態では、例えば、操作期間の開始時に、誤操作を発生させる位置にポインタPが表示されることを防止することができる。この結果、本実施形態では、情報処理装置10の使い勝手を向上させることができる。
[2.変形例]
本発明は、以上に例示した実施形態に限定されない。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様を併合してもよい。
[第1変形例]
上述した実施形態では、操作期間の終了に関する処理については特に説明していないが、操作期間は、所定の終了条件を充足した場合に終了してもよい。
図10は、第1変形例に係る情報処理装置10の動作一例を示すフローチャートである。なお、図10は、操作期間の開始及び終了に関する処理を実行する際の情報処理装置10の動作の一例を示す。図10では、操作期間の終了条件が、ユーザUの姿勢が安定していないこと(ユーザUの姿勢が不安定であること)である場合を想定する。図10に示す動作は、ステップS700及びS800の処理が図8に示した動作に追加されることを除いて、図8に示した動作と同様である。図8において説明した動作については、詳細な説明を省略する。例えば、ステップS700の処理は、ステップS300における判定の結果が肯定の場合、すなわち、現時点が操作期間である場合、実行される。
ステップS700において、期間管理部112は、ユーザUの姿勢が安定しているか否かを判定する。例えば、期間管理部112は、ユーザUの姿勢が安定していると推定部110がステップS200において推定したか否かを、判定する。ステップS700における判定の結果が否定の場合、期間管理部112は、処理をステップS800に進める。一方、ステップS700における判定の結果が肯定の場合、操作期間の開始及び終了に関する処理は終了する。
ステップS800において、期間管理部112は、操作期間を終了する。これにより、操作期間の開始及び終了に関する処理は終了する。このように、図10に示す動作では、期間管理部112は、推定部110が推定したユーザUの姿勢に基づいて、操作期間を終了する。例えば、図10に示す動作では、操作期間中に、ユーザUの腕全体が動いた場合(例えば、肘の曲げ等が行われた場合)、推定部110は、ユーザUの姿勢が安定していないと推定する。これにより、期間管理部112は、操作期間を終了する。
ここで、例えば、ユーザUが、ポインタPの表示位置を移動させるために、操作装置20を操作する場合、ユーザUが、操作装置20の姿勢等を変化させるために、手首を動かすことが考えられる。手首の動きに応じて動く操作装置20の位置の移動量は、腕全体の動き(例えば、肘の曲げ及び伸ばし等)に応じて動く操作装置20の位置の移動量よりも小さい。このため、例えば、ユーザUが立っている状態では、ポインタPの表示位置を移動させる操作を操作装置20に対してユーザUが行っている場合においても、撮像装置160の位置と操作装置20の位置との距離DISは、第1距離以上に維持されると考えられる。換言すれば、第1距離は、ユーザUが手を下げた自然な体勢において手首を動かした場合でも、撮像装置160の位置と操作装置20の位置との距離DISが第1距離以上になるように設定される。この場合、例えば、操作期間中に、ユーザUが、ポインタPの表示位置を移動させるために、操作装置20を操作したときにおいても、推定部110は、ユーザUの姿勢が安定していると正しく推定することができる。
なお、操作期間の開始及び終了に関する処理は、図10に示す例に限定されない。例えば、ステップS100及びS200の一連の処理は、ステップS300の処理の後に、ステップS300における判定結果に拘わらず実行されてもよい。また、ステップS600の処理は、ステップS500の処理と並列に実行されてもよい。
また、操作期間の終了条件は、ユーザUの姿勢が不安定になること(ステップS700における判定)に限定されない。例えば、期間管理部112は、ユーザUの姿勢が不安定になること、ポインタPが操作画面OW外に移動してから所定の猶予時間経過しても操作画面OW内に戻ってこないこと、及び、操作画面OWが非表示になることのうちの何れか1つを充足する場合に、操作期間を終了してもよい。
例えば、ポインタPが操作画面OW外に移動してから所定の猶予時間経過しても操作画面OW内に戻ってこないことが、操作期間の終了条件に含まれる場合、ユーザUの姿勢が安定している状態に維持されている期間中に、操作期間が終了する場合がある。この場合、ユーザUの姿勢が安定している状態に維持されているため、例えば、図10に示した動作の次回の実行時に、ポインタPを基準位置RPに表示するキャリブレーション処理が再実行される。
第1変形例においても、上述した実施形態と同様の効果を得ることができる。また、第1変形例では、ユーザUに操作装置20を操作させることなく、例えば、ユーザUの姿勢に基づいて、操作期間を終了させることができる。これにより、本実施形態では、ユーザUの操作が煩雑になることを抑制することができる。この結果、本実施形態では、情報処理装置10の使い勝手を向上させることができる。
[第2変形例]
上述した実施形態及び第1変形例では、情報処理装置10が撮像装置160を有する態様を例示したが、本発明はこのような態様に限定されるものではない。例えば、撮像装置160は、情報処理装置10から省かれてもよい。
図11は、第2変形例に係る情報処理装置10の動作の一例を示すフローチャートである。例えば、情報処理装置10は、図8又は図10に示した動作において、ステップS100の処理の代わりに図11のステップS150からステップS192までの一連の処理を実行し、ステップS200の処理の代わりに図11のステップS210からステップS222までの一連の処理を実行する。
例えば、ステップS150において、推定部110は、操作装置20から動き情報を取得する。
次に、ステップS160において、推定部110は、ステップS150において操作装置20から取得した動き情報に基づいて、操作装置20の位置の変化量を特定する。例えば、推定部110は、動き情報に基づいて、操作装置20の位置の単位時間当たりの変化量を特定する。単位時間は、例えば、図11に示す動作が繰り返し実行される際の実行間隔であってもよい。なお、単位時間は、図11に示す動作の実行間隔に限定されない。
次に、ステップS170において、推定部110は、ステップS170において特定した変化量(操作装置20の位置の単位時間当たりの変化量)が所定量以内であるか否かを判定する。ステップS170における判定の結果が肯定の場合、推定部110は、処理をステップS180に進める。一方、ステップS170における判定の結果が否定の場合、推定部110は、処理をステップS190に進める。
ステップS180又はS190において、推定部110は、安定時間を計測中であるか否かを判定する。
ステップS180における判定の結果が肯定の場合、推定部110は、処理をステップS210に進める。一方、ステップS180における判定の結果が否定の場合、推定部110は、ステップS182において、安定時間の計測を開始した後、処理をステップS210に進める。
また、ステップS190における判定の結果が肯定の場合、推定部110は、ステップS192において、計測中の安定時間を“0”にリセットした後、処理をステップS210に進める。一方、ステップS190における判定の結果が否定の場合、推定部110は、処理をステップS210に進める。
ステップS210において、推定部110は、安定時間が所定時間以上であるか否かを判定する。すなわち、推定部110は、操作装置20が同じ位置又はほぼ同じ位置に停止している時間(安定時間)が所定時間以上であるか否かを判定する。ステップS210における判定の結果が肯定の場合、推定部110は、処理をステップS220に進める。一方、ステップS210における判定の結果が否定の場合、推定部110は、処理をステップS222に進める。
ステップS220において、推定部110は、ユーザUの姿勢が安定していると推定する。すなわち、推定部110は、操作装置20の位置の単位時間当たりの変化量が所定量以内である期間が、所定時間以上継続している場合、ユーザUの姿勢が安定していると推定する。推定部110は、ステップS220の処理を実行した後、処理を、図8又は図10のステップS300に進める。
ステップS222において、推定部110は、ユーザUの姿勢が安定していないと推定する。すなわち、推定部110は、操作装置20の位置の単位時間当たりの変化量が所定量以内である期間が、所定時間未満である場合、ユーザUの姿勢が安定していないと推定する。推定部110は、ステップS222の処理を実行した後、処理を、図8又は図10のステップS300に進める。
このように、第2変形例では、推定部110は、操作装置20の位置の単位時間当たりの変化量が所定量以内である期間が、所定時間以上継続している場合、ユーザUの姿勢が安定していると推定する。そして、期間管理部112は、ユーザUの姿勢が安定していると推定部110が推定した場合、操作期間を開始する。ここで、例えば、所定量は、ユーザUの手首の動きに応じて動く操作装置20の位置の移動量に基づいて設定されてもよい。
第2変形例においても、上述した実施形態及び第1変形例と同様の効果を得ることができる。また、第2変形例では、撮像装置160を省くことができるため、情報処理装置10の構成を簡易にすることができる。なお、上述した実施形態及び第1変形例においても、推定部110は、図11に示したステップS150からステップS222までの一連の処理により、ユーザUの姿勢を推定してもよい。例えば、上述した実施形態及び第1変形例において、推定部110は、図8又は図10に示したステップS100及びS200の一連の処理と、図11に示したステップS150からステップS222までの一連の処理とを併用することにより、ユーザUの姿勢を推定してもよい。
[第3変形例]
上述した実施形態及び第1変形例では、外界の状況を示す情報として画像情報が使用される態様を例示したが、本発明はこのような態様に限定されるものではない。例えば、空間の状況を検出する赤外線センサの検出結果が外界の状況を示す情報として使用されてもよい。この場合、上述した実施形態及び第1変形例の説明において、例えば、画像情報を赤外線センサの検出結果に読み替えることにより、外界の状況を示す情報として赤外線センサの検出結果が使用される態様が説明される。
第3変形例では、情報処理装置10は、撮像装置160の代わりに赤外線センサを有してもよいし、撮像装置160及び赤外線センサの両方を有してもよい。第3変形例においても、上述した実施形態及び第1変形例と同様の効果を得ることができる。また、第3変形例においても、推定部110は、図8又は図10に示したステップS100及びS200の一連の処理と、図11に示したステップS150からステップS222までの一連の処理とを併用することにより、ユーザUの姿勢を推定してもよい。
[3.その他]
(1)上述した実施形態では、記憶装置(例えば、記憶装置120及び220)は、処理装置(例えば、処理装置100及び200)が読取可能な記録媒体であり、ROM及びRAMなどを例示したが、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリデバイス(例えば、カード、スティック、キードライブ)、CD-ROM(Compact Disc-ROM)、レジスタ、リムーバブルディスク、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ、データベース、サーバその他の適切な記憶媒体である。また、プログラムは、電気通信回線を介してネットワークから送信されてもよい。また、プログラムは、電気通信回線を介して通信網から送信されてもよい。
(2)上述した実施形態において、説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
(3)上述した実施形態において、入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
(4)上述した実施形態において、判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
(5)上述した実施形態において例示した処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
(6)図5及び図6に例示された各機能は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
また、通信装置140及び240は、有線ネットワーク及び無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。通信装置140及び240は、例えば、周波数分割複信(FDD:Frequency Division Duplex)及び時分割複信(TDD:Time Division Duplex)の少なくとも一方を実現するために、高周波スイッチ、デュプレクサ、フィルタ、及び、周波数シンセサイザなどを含んで構成されてもよい。
(7)上述した実施形態で例示したプログラムは、ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)及び無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
(8)前述の各形態において、「システム」及び「ネットワーク」という用語は、互換的に使用される。
(9)本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。例えば、無線リソースはインデックスによって指示されるものであってもよい。上述したパラメータに使用する名称はいかなる点においても限定的な名称ではない。さらに、これらのパラメータを使用する数式等は、本開示で明示的に開示したものと異なる場合もある。様々なチャネル(例えば、PUCCH、PDCCHなど)及び情報要素は、あらゆる好適な名称によって識別できるので、これらの様々なチャネル及び情報要素に割り当てている様々な名称は、いかなる点においても限定的な名称ではない。
(10)上述した実施形態において、情報処理装置10は、移動局(MS:Mobile Station)である場合が含まれる。移動局は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、又はいくつかの他の適切な用語で呼ばれる場合もある。また、本開示においては、「移動局」、「ユーザ端末(user terminal)」、「ユーザ装置(UE:User Equipment)」、「端末」等の用語は、互換的に使用され得る。
(11)上述した実施形態において、「接続された(connected)」、「結合された(coupled)」という用語、又はこれらのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的なあらゆる接続又は結合を意味し、互いに「接続」又は「結合」された2つの要素間に1又はそれ以上の中間要素が存在することを含むことができる。要素間の結合又は接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」で読み替えられてもよい。本開示で使用する場合、2つの要素は、1又はそれ以上の電線、ケーブル及びプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光(可視及び不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」又は「結合」されると考えることができる。
(12)上述した実施形態において、「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
(13)本開示で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up、search、inquiry)(例えば、テーブル、データベース又は別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断(決定)」は、「想定する(assuming)」、「期待する(expecting)」、「みなす(considering)」などで読み替えられてもよい。
(14)上述した実施形態において、「含む(include)」、「含んでいる(including)」及びそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
(15)本開示において、例えば、英語でのa, an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
(16)本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」等の用語も、「異なる」と同様に解釈されてもよい。
(17)本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されるものではないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本開示の記載は、例示説明を目的とするものであり、本開示に対して何ら制限的な意味を有するものではない。