IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社NTTドコモの特許一覧

<>
  • 特開-情報処理装置 図1
  • 特開-情報処理装置 図2
  • 特開-情報処理装置 図3
  • 特開-情報処理装置 図4
  • 特開-情報処理装置 図5
  • 特開-情報処理装置 図6
  • 特開-情報処理装置 図7
  • 特開-情報処理装置 図8
  • 特開-情報処理装置 図9
  • 特開-情報処理装置 図10
  • 特開-情報処理装置 図11
  • 特開-情報処理装置 図12
  • 特開-情報処理装置 図13
  • 特開-情報処理装置 図14
  • 特開-情報処理装置 図15
  • 特開-情報処理装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023104144
(43)【公開日】2023-07-28
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   G06F 3/01 20060101AFI20230721BHJP
【FI】
G06F3/01 570
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022004962
(22)【出願日】2022-01-17
(71)【出願人】
【識別番号】392026693
【氏名又は名称】株式会社NTTドコモ
(74)【代理人】
【識別番号】110003177
【氏名又は名称】弁理士法人旺知国際特許事務所
(72)【発明者】
【氏名】山崎 仁史
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA64
5E555BA02
5E555BA08
5E555BB02
5E555BB08
5E555BC04
5E555BE17
5E555CA22
5E555CA42
5E555CB66
5E555CC03
5E555DA08
5E555DB20
5E555DC19
5E555FA00
(57)【要約】
【課題】仮想キーが正しい位置とは異なる位置に設定されることを低減可能な技術を提供する。
【解決手段】情報処理装置は、第1仮想キーを仮想空間に位置させる仮想キー設定部と、少なくとも1つの指によって行われるジェスチャーを検出するジェスチャー検出部と、前記少なくとも1つの指とは異なる第1指の指先位置を検出する指先検出部と、前記第1仮想キーが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記指先検出部が検出した前記第1指の指先位置に対応する前記仮想空間上の目標位置に前記第1仮想キーを移動する仮想キー制御部と、を含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
第1仮想キーを仮想空間に位置させる仮想キー設定部と、
少なくとも1つの指によって行われるジェスチャーを検出するジェスチャー検出部と、
前記少なくとも1つの指とは異なる第1指の指先位置を検出する指先検出部と、
前記第1仮想キーが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記指先検出部が検出した前記第1指の指先位置に対応する前記仮想空間上の目標位置に前記第1仮想キーを移動する仮想キー制御部と、
を含む情報処理装置。
【請求項2】
前記第1仮想キーは、仮想キーボードが有する複数の仮想キーのいずれかであり、
前記仮想キー設定部は、前記仮想キーボードを前記仮想空間に位置させることによって前記第1仮想キーを前記仮想空間に位置させ、
前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記第1仮想キーを前記目標位置に移動する、
請求項1に記載の情報処理装置。
【請求項3】
前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記複数の仮想キーのうち前記第1仮想キーとは異なる仮想キーを移動せずに、前記第1仮想キーを前記目標位置に移動する、
請求項2に記載の情報処理装置。
【請求項4】
前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記仮想キーボードを移動することによって前記第1仮想キーを前記目標位置に移動する、
請求項2に記載の情報処理装置。
【請求項5】
前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記複数の仮想キーの中で前記目標位置に最も近い仮想キーを、前記第1仮想キーとして、前記目標位置に移動する、
請求項2から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記第1指を有する第1手とは異なる第2手の動きを検出する動き検出部と、
前記動き検出部によって検出された前記第2手の動きに基づいて、前記仮想キーボードの位置を変更する位置変更部と、をさらに含む、
請求項2から5のいずれか1項に記載の情報処理装置。
【請求項7】
前記位置変更部が実行する前記仮想キーボードの位置の変更に応じて、表示装置に、前記仮想キーボードをスクロール表示させる第1表示制御部を、さらに含む、
請求項6に記載の情報処理装置。
【請求項8】
前記第2手は、前記少なくとも1つの指を有する手である、
請求項6又は7に記載の情報処理装置。
【請求項9】
前記動き検出部は、前記第2手の動きとして、前記少なくとも1つの指の動きを検出する、
請求項8に記載の情報処理装置。
【請求項10】
表示装置に、前記複数の仮想キーの中で前記目標位置に最も近い仮想キーを拡大表示させる第2表示制御部を、さらに含む、
請求項2から9のいずれか1項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関する。
【背景技術】
【0002】
特許文献1は、仮想キーであるアイコンを用いてキー操作を実行する技術を開示している。この技術では、3つの指先が検出されると、当該3つ指先の各々の位置にアイコンが割り当てられる。その後、3つの指先のいずれかが、所定値以上の距離を移動した場合、所定値以上の距離を移動した指に割り当てられたアイコンに対応するキー操作が実行される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013-61848号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の技術において、仮想キーの指先位置への割り当てを開始するトリガとして、指によって行われるジェスチャー(例えば、人差し指と中指を相互に重ねるジェスチャー)を用いる態様が考えられる。この態様では、ジェスチャーを行った指の指先位置に仮想キーが設定される。
【0005】
しかしながら、この態様では、仮想キーが設定される指によってジェスチャーが行われるため、ジェスチャーを行った指の指先位置を検出し難くなる可能性が生じる。このため、仮想キーが設定されるはずの正しい位置とは異なる位置に仮想キーが設定されやすくなってしまう。
【0006】
本発明の目的は、仮想キーが正しい位置とは異なる位置に設定されることを低減可能な情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
一態様に係る情報処理装置は、第1仮想キーを仮想空間に位置させる仮想キー設定部と、少なくとも1つの指によって行われるジェスチャーを検出するジェスチャー検出部と、前記少なくとも1つの指とは異なる第1指の指先位置を検出する指先検出部と、前記第1仮想キーが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記指先検出部が検出した前記第1指の指先位置に対応する前記仮想空間上の目標位置に前記第1仮想キーを移動する仮想キー制御部と、を含む。
【発明の効果】
【0008】
一態様によれば、仮想キーが正しい位置とは異なる位置に設定されることを低減できる。
【図面の簡単な説明】
【0009】
図1】情報処理システム100を示す図である。
図2】仮想キーボード3を表す画像4の一例を示す図である。
図3】ユーザAの右手Cと仮想キーボード3とを示す図である。
図4】MRグラス1の一例を示す図である。
図5】携帯機器2の一例を示す図である。
図6】ワールド座標系CS2とローカル座標系CS1との関係の一例を示す図である。
図7】仮想空間K2に位置する仮想キーボード3の一例を示す図である。
図8】仮想空間K2における基準面P1の一例を示す図である。
図9】仮想空間K2に配置された仮想カメラN1の一例を示す図である。
図10】ユーザAの指先位置C1と仮想キーボード3との位置関係を示す図である。
図11】目標位置M1への仮想キー31Hの移動の一例を示す図である。
図12】仮想キーボード3を仮想空間K2に配置する動作の一例を説明するための図である。
図13】仮想キーボード3を移動する動作の一例を説明するための図である。
図14】仮想キーボード3の移動の例を示す図である。
図15】第3変形例に係る携帯機器2Aの一例を示す図である。
図16】複数の仮想キー31の中で目標位置M1に最も近い仮想キーを拡大表示する一例を示す図である。
【発明を実施するための形態】
【0010】
A:第1実施形態
A1:情報処理システム100
図1は、情報処理システム100を示す図である。情報処理システム100は、MR(Mixed Reality)グラス1と、携帯機器2と、を含む。情報処理システム100は、後述の図7に示される仮想キーボード3をMRグラス1に表示する。仮想キーボード3は、仮想空間K2に位置する。仮想キーボード3の形態は、図7に示される形態に限らず適宜変更可能である。
【0011】
図1に示されるMRグラス1を装着したユーザAは、仮想空間K2に位置する仮想キーボード3と、現実空間K1に位置する現実の物体を、同時に視認できる。情報処理システム100は、仮想キーボード3に対する操作をユーザAから受け付ける。情報処理システム100は、仮想キーボード3に対する操作に応じて、キー操作処理を実行する。
【0012】
MRグラス1は、眼鏡型の表示装置である。MRグラス1は、透過型の表示装置の一例である。透過型の表示装置は、光を透過し且つ画像を表示する表示装置である。透過型の表示装置は、MRグラス1に限らず、例えば、ゴーグル形状の透過型HMD(Head Mounted Display:ヘッドマウントディスプレイ)でもよい。
【0013】
透過型の表示装置は、XR(X Reality)グラス等の表示装置の一例である。XRグラスは、スマートグラスとも称される。XRグラス等の表示装置は、透過型の表示装置に限らず、例えば、ビデオシースルー形式の表示装置でもよい。ビデオシースルー形式の表示装置は、物体を撮像することによって当該物体の画像を生成するカメラを有する。ビデオシースルー形式の表示装置は、カメラが生成した画像に仮想オブジェクトの画像を重ねることによって得られる画像を表示する。仮想オブジェクトは、例えば、仮想キーボード3である。ビデオシースルー形式の表示装置は、例えば、ビデオシースルー形式のHMDである。
【0014】
MRグラス1は、テンプル91及び92と、ブリッジ93と、胴部94及び95と、レンズ96L及び96Rと、カメラ11L及び11Rを含む。
【0015】
胴部94は、左眼用の表示パネルと、左眼用の光学部材と、を含む。表示パネルは、例えば、液晶パネル又は有機EL(Electro Luminescence)パネルである。
【0016】
左眼用の表示パネルは、仮想空間K2に位置する仮想キーボード3を表す画像4を表示する。図2は、仮想キーボード3を表す画像4の一例を示す図である。仮想キーボード3は、仮想的に生成されたキーボードである。仮想キーボード3は、現実空間K1には存在しない。仮想キーボード3は、複数の仮想キー31を有する。
【0017】
図1に示される胴部94における左眼用の表示パネルは、仮想キーボード3の画像4を表す光を出射することによって画像4を表示する。胴部94における左眼用の光学部材は、左眼用の表示パネルから射出された光をレンズ96Lに導光する光学部材である。
【0018】
胴部95は、右眼用の表示パネルと、右眼用の光学部材と、を含む。右眼用の表示パネルは、仮想空間K2に位置する仮想キーボード3を表す画像4を表示する。右眼用の表示パネルは、仮想キーボード3の画像4を表す光を出射することによって画像4を表示する。右眼用の光学部材は、右眼用の表示パネルから射出された光をレンズ96Rに導光する光学部材である。
【0019】
レンズ96L及び96Rは、それぞれ、ハーフミラーを有する。レンズ96Lのハーフミラーは、左眼用の光学部材によって導光された光をユーザAの左眼BLに反射する。レンズ96Lのハーフミラーは、現実空間K1に位置する物体を表す光を透過することによって、現実空間K1に位置する物体を表す光をユーザAの左眼BLに導く。レンズ96Rのハーフミラーは、右眼用の光学部材によって導光された光をユーザAの右眼BRに反射する。レンズ96Rのハーフミラーは、現実空間K1に位置する物体を表す光を透過することによって、現実空間K1に位置する物体を表す光をユーザAの右眼BRに導く。このため、MRグラス1を装着しているユーザAは、例えば図3に示されるように、ユーザAの右手Cと、仮想キーボード3を、視認できる。
【0020】
図1に示されるカメラ11L及び11Rは、それぞれ、被写体を撮像する。被写体は、例えば、ユーザAの左右の「手」である。「手」は、ユーザAの手首から指先までの、身体の部分を意味する。「手」は、親指と、人差指と、中指と、薬指と、小指と、を含む。以下の説明において、英語圏でいう「親指(thumb)」を「指(finger)」と呼ぶ場合がある。つまり、「指(fingers)」は、親指と、人差指と、中指と、薬指と、小指と、を含む概念である。
【0021】
カメラ11L及び11Rは、基線長(baseline length)である第1距離だけ相互に離れている。このため、被写体がユーザAの左右の手である場合、情報処理システム100は、カメラ11L及び11Rを用いることによって、左右の手の3次元の形状を特定できる。左右の手の3次元の形状を特定するための構成は、カメラ11Lとカメラ11Rに限られない。例えば、左右の手の3次元の形状を特定するための構成は、3つ以上のカメラ、又は、深度センサでもよい。カメラ11L及び11Rは、左右の手の3次元の形状を特定するために物理量を計測する2個以上のセンサの一例である。
【0022】
左右の手の3次元の形状は、10本の指の指先位置と、左右の手のひらの形状と、を示す。このため、情報処理システム100は、左右の手の3次元の形状の変化に基づいて、左右のいずれかの手の指によって行われるジェスチャーを検出できる。
【0023】
MRグラス1には、ローカル座標系CS1が定められている。ローカル座標系CS1は、MRグラス1の座標系である。カメラ11L及び11Rを用いて特定される左右の手の3次元の形状は、ローカル座標系CS1の座標によって示される。ローカル座標系CS1は、x1軸とy1軸とz1軸とによって定められる。x1軸とy1軸とz1軸は、相互に直交する。ローカル座標系CS1の原点は、カメラ11Lに位置する。z1軸は、カメラ11Lの撮像方向と一致する。
【0024】
図1では、説明の簡略化のため、ローカル座標系CS1の原点は、カメラ11Lに位置していない。z1軸は、カメラ11Lの撮像方向と一致していない。なお、図1に示されるように、ローカル座標系CS1の原点は、カメラ11Lに位置していなくてもよい。z1軸は、カメラ11Lの撮像方向と一致していなくてもよい。ローカル座標系CS1の原点は、カメラ11Lではなくカメラ11Rに位置してもよい。ローカル座標系CS1の原点が、カメラ11Rに位置する場合、z1軸は、カメラ11Rの撮像方向と一致してもよい。
【0025】
携帯機器2は、スマートフォンである。携帯機器2は、スマートフォンに限らず、例えば、タブレット又はノート型パーソナルコンピュータでもよい。携帯機器2は、端末装置とも称される。携帯機器2は、情報処理装置の一例である。情報処理装置は、携帯機器2に限らず、例えば、MRグラス1と直接的又は間接的に通信するデスクトップパーソナルコンピュータ、又は、MRグラス1と直接的又は間接的に通信するサーバでもよい。
【0026】
携帯機器2は、有線にてMRグラス1と接続される。携帯機器2は、無線にてMRグラス1と接続されてもよい。携帯機器2は、MRグラス1を制御する。例えば、携帯機器2は、MRグラス1に、仮想キーボード3を表す画像4を表示させる。
【0027】
A2:MRグラス1
図4は、MRグラス1の一例を示す図である。MRグラス1は、カメラ11L及び11Rに加えて、表示装置12と、加速度センサ13と、ジャイロセンサ14と、操作ボタン15と、通信装置16と、記憶装置17と、処理装置18と、バス19と、を含む。
【0028】
バス19は、情報を通信するための配線である。バス19は、カメラ11Lと、カメラ11Rと、表示装置12と、加速度センサ13と、ジャイロセンサ14と、操作ボタン15と、通信装置16と、記憶装置17と、処理装置18とを、相互に接続する。バス19は、単一のバスを用いて構成されてもよいし、装置等の要素間ごとに異なるバスを用いて構成されてもよい。
【0029】
カメラ11Lは、被写体を撮像することによって画像データD1を生成する。画像データD1は、動画を表すデータである。画像データD1は、一連の静止画データを含む。画像データD1の各静止画データは、画像データD1が表す動画の1コマを構成する静止画を表す。
【0030】
カメラ11Rは、被写体を撮像することによって画像データD2を出力する。画像データD2は、動画を表すデータである。画像データD2は、一連の静止画データを含む。画像データD2の各静止画データは、画像データD2が表す動画の1コマを構成する静止画を表す。
【0031】
表示装置12は、図1を用いて説明された、レンズ96Lと、左眼用の表示パネルと、左眼用の光学部材と、レンズ96Rと、右眼用の表示パネルと、右眼用の光学部材と、を含む。表示装置12は、現実空間K1に位置する物体を表す光を透過する。表示装置12は、さらに、仮想空間K2に位置する仮想キーボード3を表す画像4を表示する。ユーザAがMRグラス1を装着したとき、表示装置12は、ユーザAの左眼BL及び右眼BRの前に位置する。このため、MRグラス1を装着したユーザAは、現実空間K1に位置する物体と、仮想空間K2に位置する物体と、を視認できる。例えば、ユーザAは、現実空間K1に位置するユーザAの右手Cと、仮想空間K2に位置する仮想キーボード3を、視認できる。
【0032】
加速度センサ13は、MRグラス1の加速度を計測する。加速度センサ13は、MRグラス1の加速度の計測結果に基づいて、加速度データE1を生成する。加速度データE1は、MRグラス1の加速度を示すデータである。例えば、加速度データE1は、x1軸、y1軸及びz1軸の各方向におけるMRグラス1の加速度を示す。加速度データE1に基づいて、MRグラス1の移動方向とMRグラス1の移動距離が特定される。
【0033】
ジャイロセンサ14は、x1軸とy1軸とz1軸の各軸を中心とするMRグラス1の回転の角加速度を計測する。ジャイロセンサ14は、MRグラス1の角加速度の計測結果に基づいて、角加速度データE2を生成する。角加速度データE2は、MRグラス1の角加速度を示すデータである。例えば、角加速度データE2は、x1軸とy1軸とz1軸の各軸を中心とするMRグラス1の回転の角加速度を示す。角加速度データE2に基づいて、MRグラス1の回転が特定される。
【0034】
操作ボタン15は、ユーザAによって操作可能なボタンである。操作ボタン15は、ユーザAによって操作可能な複数のボタンを有してもよい。操作ボタン15は、操作データF1を生成する。操作データF1は、操作ボタン15の操作状態を示すデータである。
【0035】
通信装置16は、携帯機器2と有線にて通信する。通信装置16は、無線にて携帯機器2と通信してもよい。通信装置16は、包括データG1を携帯機器2に送信する。包括データG1は、画像データD1と画像データD2と加速度データE1と角加速度データE2と操作データF1とを含むデータである。包括データG1は、操作データF1を含まなくてもよい。通信装置16は、携帯機器2から画像データH1を受信する。画像データH1は、仮想キーボード3の画像4を表すデータである。画像データH1は、例えば画像データD1と画像データD2と加速度データE1と角加速度データE2とに基づいて、携帯機器2によって生成される。
【0036】
記憶装置17は、処理装置18が読み取り可能な記録媒体である。記憶装置17は、例えば、不揮発性メモリーと揮発性メモリーとを含む。不揮発性メモリーは、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)及びEEPROM(Electrically Erasable Programmable Read Only Memory)である。揮発性メモリーは、例えば、RAM(Random Access Memory)である。記憶装置17は、プログラムPG1を記憶する。
【0037】
処理装置18は、1又は複数のCPU(Central Processing Unit)を含む。1又は複数のCPUは、1又は複数のプロセッサの一例である。プロセッサ及びCPUの各々は、コンピュータの一例である。
【0038】
処理装置18は、記憶装置17からプログラムPG1を読み取る。処理装置18は、プログラムPG1を実行することによって、取得部181及び動作制御部182として機能する。取得部181及び動作制御部182のうち少なくとも1つは、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)及びFPGA(Field Programmable Gate Array)等の回路によって構成されてもよい。
【0039】
取得部181は、画像データD1と、画像データD2と、加速度データE1と、角加速度データE2と、操作データF1と、を取得する。
【0040】
動作制御部182は、MRグラス1を制御する。例えば、動作制御部182は、取得部181から、画像データD1と、画像データD2と、加速度データE1と、角加速度データE2と、操作データF1と、を受け取る。動作制御部182は、画像データD1と、画像データD2と、加速度データE1と、角加速度データE2と、操作データF1と、を含む包括データG1を生成する。動作制御部182は、通信装置16に、包括データG1を携帯機器2へ送信させる。動作制御部182は、通信装置16が携帯機器2から画像データH1を受信した場合、通信装置16から画像データH1を取得する。動作制御部182は、画像データH1に基づく画像を表示装置12に表示させる。画像データH1に基づく画像は、例えば、仮想キーボード3を表す画像4である。
【0041】
A3:携帯機器2
図5は、携帯機器2の一例を示す図である。携帯機器2は、入力装置21と、表示装置22と、通信装置23と、記憶装置24と、処理装置25と、バス26と、を含む。
【0042】
バス26は、情報を通信するための配線である。バス26は、入力装置21と、表示装置22と、通信装置23と、記憶装置24と、処理装置25とを、相互に接続する。バス26は、単一のバスを用いて構成されてもよいし、装置等の要素間ごとに異なるバスを用いて構成されてもよい。
【0043】
入力装置21は、タッチパネルを含む。入力装置21は、タッチパネルに加えて、複数の操作キーを含んでもよい。入力装置21は、タッチパネルを含まずに、複数の操作キーを含んでもよい。入力装置21は、ユーザAが行う操作を受け付ける。
【0044】
表示装置22は、ディスプレイを含む。表示装置22のディスプレイの上には入力装置21のタッチパネルが積層されている。表示装置22は、種々の情報を表示する。
【0045】
通信装置23は、MRグラス1と有線にて通信する。通信装置23は、無線にてMRグラス1と通信してもよい。通信装置23は、包括データG1をMRグラス1から受信する。通信装置23は、画像データH1をMRグラス1に送信する。
【0046】
記憶装置24は、処理装置25が読み取り可能な記録媒体である。記憶装置24は、例えば、不揮発性メモリーと揮発性メモリーとを含む。記憶装置24は、プログラムPG2を記憶する。
【0047】
処理装置25は、1又は複数のCPUを含む。処理装置25は、情報処理装置の他の例である。処理装置25は、記憶装置24からプログラムPG2を読み取る。処理装置25は、プログラムPG2を実行することによって、手データ生成部251、指先検出部252、座標変換部253、仮想キー設定部254、画像データ生成部255、ジェスチャー検出部256、仮想キー制御部257、及び操作検出部258として機能する。手データ生成部251、指先検出部252、座標変換部253、仮想キー設定部254、画像データ生成部255、ジェスチャー検出部256、仮想キー制御部257、及び操作検出部258のうち少なくとも1つは、DSP、ASIC及びFPGA等の回路によって構成されてもよい。
【0048】
手データ生成部251は、通信装置23を介して包括データG1を取得する。手データ生成部251は、包括データG1から画像データD1及びD2を読み取る。画像データD1は、MRグラス1のカメラ11Lが生成した画像データである。画像データD2は、MRグラス1のカメラ11Rが生成した画像データである。手データ生成部251は、画像データD1及びD2に基づいて、手データJ1を生成する。手データJ1は、ユーザAの両手の3次元形状を、MRグラス1に定められたローカル座標系CS1の座標によって示すデータである。
【0049】
例えば、手データ生成部251は、画像データD1に含まれる静止画データと、画像データD2に含まれる静止画データと、に基づいて、手データJ1を生成する。手データ生成部251は、手データJ1を生成するための画像データD1内の静止画データと、手データJ1を生成するための画像データD2内の静止画データと、の各々を、所定時間が経過するごとに、最新の静止画データに変更する。手データ生成部251は、静止画データを変更するごとに、最新の静止画データを用いて手データJ1を生成する。所定時間は、例えば0.2秒である。所定時間は、0.2秒に限らず、0.2秒よりも短い時間でもよいし、0.2秒よりも長い時間でもよい。
【0050】
指先検出部252は、手データJ1に基づいて、ユーザAの左右の手の各指の指先を検出する。指先検出部252は、各指の指先の検出結果に基づいて、指先データJ2を生成する。指先データJ2は、各指の指先位置を、MRグラス1に定められたローカル座標系CS1の座標によって示すデータである。指先検出部252は、手データJ1ごとに、指先データJ2を生成する。
【0051】
座標変換部253は、MRグラス1に定められたローカル座標系CS1の座標を、ワールド座標系CS2の座標に変換する。ワールド座標系CS2は、現実空間K1に定められる座標系である。
【0052】
図6は、ワールド座標系CS2とローカル座標系CS1との関係の一例を示す図である。ワールド座標系CS2は、x2軸とy2軸とz2軸とによって定められる。x2軸とy2軸とz2軸は、相互に直交する。
【0053】
図5に示される座標変換部253は、現実空間K1におけるワールド座標系CS2のx2軸、y2軸及びz2軸の位置を、現実空間K1におけるローカル座標系CS1のx1軸、y1軸及びz1軸のタイミングt0のときの位置に定める。タイミングt0は、現実空間K1にワールド座標系CS2を定めるためのタイミングを意味する。タイミングt0は、例えば、ユーザAが入力装置21に入力した「キーボード設定指示」を座標変換部253が受け付けるタイミングである。「キーボード設定指示」は、仮想キーボード3を設定するための指示である。
【0054】
タイミングt0のとき、ローカル座標系CS1のx1軸、y1軸及びz1軸は、ワールド座標系CS2のx2軸、y2軸及びz2軸と、それぞれ一致する。タイミングt0後のMRグラス1の移動に伴い、ローカル座標系CS1のx1軸、y1軸及びz1軸は、ワールド座標系CS2のx2軸、y2軸及びz2軸からそれぞれずれる。タイミングt0後のMRグラス1の回転に伴い、ローカル座標系CS1のx1軸、y1軸及びz1軸は、ワールド座標系CS2のx2軸、y2軸及びz2軸からそれぞれずれる。
【0055】
座標変換部253は、包括データG1から加速度データE1を読み取る。座標変換部253は、加速度データE1に基づいて、タイミングt0以降におけるMRグラス1の移動を特定する。座標変換部253は、MRグラス1の移動として、タイミングt0以降におけるMRグラス1の移動方向と、タイミングt0以降におけるMRグラス1の移動距離と、を特定する。
【0056】
座標変換部253は、包括データG1から角加速度データE2を読み取る。座標変換部253は、角加速度データE2に基づいて、タイミングt0以降におけるMRグラス1の回転を特定する。座標変換部253は、MRグラス1の回転として、タイミングt0以降におけるMRグラス1の回転方向と、タイミングt0以降におけるMRグラス1の回転角度と、を特定する。
【0057】
座標変換部253は、タイミングt0以降の期間において指先データJ2を受け付けるごとに、MRグラス1の移動と、MRグラス1の回転と、を特定する。座標変換部253は、MRグラス1の移動とMRグラス1の回転とを特定するごとに、最新のMRグラス1の移動及び回転に基づいて、指先データJ2が示す各指の指先位置を、ローカル座標系CS1の座標からワールド座標系CS2の座標に変換する。
【0058】
例えば、座標変換部253は、タイミングt0から最新の指先データJ2の受付け時点までの期間におけるMRグラス1の移動に基づいて、MRグラス1の移動に対応する平行移動行列を特定する。座標変換部253は、タイミングt0から最新の指先データJ2の受付け時点までの期間におけるMRグラス1の回転に基づいて、MRグラス1の回転に対応する回転行列を特定する。座標変換部253は、平行移動行列と回転行列とを用いることによって、最新の指先データJ2が示す各指の指先位置を、ローカル座標系CS1の座標からワールド座標系CS2の座標に変換する。座標変換部253は、指先データJ3を生成する。指先データJ3は、最新の指先データJ2が示す各指の指先位置をワールド座標系CS2の座標によって示すデータである。座標変換部253は、指先データJ2ごとに、指先データJ3を生成する。
【0059】
また、座標変換部253は、MRグラス1の移動とMRグラス1の回転とを特定するごとに、最新のMRグラス1の移動及び回転に基づいて、カメラ11Lのローカル座標系CS1の座標を、ワールド座標系CS2の座標に変換する。カメラ11Lのローカル座標系CS1の座標は、予め定められている。カメラ11Lのローカル座標系CS1の座標は、例えば、ローカル座標系CS1の原点の座標である。
【0060】
座標変換部253は、MRグラス1の移動とMRグラス1の回転とを特定するごとに、最新のMRグラス1の移動及び回転に基づいて、カメラ11Lの撮像方向を示すローカル座標系CS1の座標を、ワールド座標系CS2の座標に変換する。カメラ11Lの撮像方向は、予め定められている。カメラ11Lの撮像方向は、例えば、ローカル座標系CS1のx1軸の方向である。
【0061】
座標変換部253は、カメラデータJ4を生成する。カメラデータJ4は、カメラ11Lのワールド座標系CS2の座標と、カメラ11Lの撮像方向を示すワールド座標系CS2の座標と、を示すデータである。カメラデータJ4は、上述のデータに限らず、カメラ11Rのワールド座標系CS2の座標と、カメラ11Rの撮像方向を示すワールド座標系CS2の座標と、を示すデータでもよい。カメラデータJ4は、カメラ11Lとカメラ11Rとの間に地点のワールド座標系CS2の座標と、カメラ11L又は11Rの撮像方向を示すワールド座標系CS2の座標と、を示すデータでもよい。カメラデータJ4は、例えば、仮想キーボード3の画像4を表す画像データH1を生成するために使用される。座標変換部253は、MRグラス1の移動とMRグラス1の回転とを特定するごとに、カメラデータJ4を生成する。
【0062】
仮想キー設定部254は、仮想キーボード3を仮想空間K2に位置させる。図7は、仮想空間K2に位置する仮想キーボード3の一例を示す図である。仮想空間K2は、仮想キー設定部254によって生成される仮想的な3次元空間である。仮想空間K2には、ワールド座標系CS2が定められている。仮想空間K2では、ワールド座標系CS2のx2軸、y2軸及びz2軸の各位置は、予め固定されている。
【0063】
図5に示される仮想キー設定部254は、タイミングt1に応じて、仮想キーボード3を仮想空間K2に位置させる。タイミングt1は、仮想空間K2に仮想キーボード3を位置させるためのタイミングを意味する。タイミングt1は、例えば、ユーザAが入力装置21に入力した「キーボード設定指示」を仮想キー設定部254が受け付けるタイミングである。
【0064】
タイミングt1は、上述のタイミングに限らない。例えば、タイミングt1は、後述するジェスチャー検出部256がユーザAによって行われる第1ジェスチャーを検出したタイミングでもよい。第1ジェスチャーは、例えば、ユーザAの左手の人差し指の指先を、ユーザAの左手の親指の指先に接触させるジェスチャーである。第1ジェスチャーは、上述のジェスチャーに限らない。例えば、第1ジェスチャーは、ユーザAの左手の中指の指先を、ユーザAの左手の親指の指先に接触させるジェスチャーでもよい。
【0065】
仮想キー設定部254は、仮想キーボード3が配置される基準面P1を、タイミングt1におうじて仮想空間K2内に決定する。
【0066】
図8は、仮想空間K2における基準面P1の一例を示す図である。図8では、仮想空間K2には存在しないユーザAの右手Cが、説明のために点線にて示されている。図8に示される右手Cの仮想空間K2におけるワールド座標系CS2の座標位置は、右手Cの現実空間K1におけるワールド座標系CS2の座標位置と一致する。
【0067】
図5に示される仮想キー設定部254は、例えば、右手Cの複数の指の指先位置に基づいて、基準面P1を決定する。基準面P1を決定するために必要な指先位置の数は、少なくとも3つである。
【0068】
仮想キー設定部254は、まず、タイミングt1の時点における最新の指先データJ3に基づいて、右手Cの5本の指のうち3本の指の指先位置を特定する。仮想キー設定部254は、3本の指の指先位置を含む面を、基準面P1として決定する。
【0069】
仮想空間K2において3点が決定されれば、これら3点を含む平面は一意に決定される。基準面P1が平面である場合、仮想キー設定部254は、3本の指の指先位置を含む平面を基準面P1として決定する。
【0070】
基準面P1は、平面に限らず、例えば曲面でもよい。基準面P1が曲面である場合、仮想キー設定部254は、所定の関数を用いて曲面を決定する。所定の関数は、入力される3点の3次元座標に応じた曲面を一意に定める。仮想キー設定部254は、所定の関数に3本の指の指先位置を入力する。仮想キー設定部254は、所定の関数が3本の指の指先位置に応じて定める曲面を、基準面P1として決定する。基準面P1が曲面である場合、仮想キーボード3は、いわゆるエルゴノミクスタイプのキーボードでもよい。
【0071】
基準面P1を決定するために用いられる3本の指の指先位置は、例えば、親指の指先位置と、薬指の指先位置と、子指の指先位置である。親指、薬指及び小指は、右手Cの甲から見て、右手Cの左端、右手Cの右端よりも左の位置、右手Cの右端にそれぞれ位置する。このため、親指の指先位置と、薬指の指先位置と、子指の指先位置が、基準面P1を決定するために用いられる場合、右手C全体によって基準面P1が決定される。
【0072】
仮想キー設定部254は、4本以上の指の指先位置に基づいて基準面P1を決定してもよい。この場合、仮想キー設定部254は、まず、各指の指先位置から基準面P1までの距離を誤差として特定する。続いて、仮想キー設定部254は、例えば最小2乗法を用いて、誤差の合計を最小にする基準面P1を定める。
【0073】
仮想キー設定部254は、複数の指の指先位置を用いることなく基準面P1を決定してもよい。例えば、仮想キー設定部254は、仮想空間K2の任意の位置に基準面P1を決定してもよい。
【0074】
仮想キー設定部254は、基準面P1を決定すると、基準面P1に仮想キーボード3を配置する。
【0075】
仮想キー設定部254は、基準面P1に仮想キーボード3を配置すると、最新の指先データJ3に基づいて、右手Cの中指の指先位置を特定する。右手Cの中指は、参照指の一例である。参照指は、右手Cの中指に限らず、例えば、右手Cの親指、右手Cの人差し指、右手Cの薬指又は右手Cの小指でもよい。
【0076】
仮想キー設定部254は、右手Cの中指の指先位置を特定すると、基準面P1に沿って仮想キーボード3をずらすことによって、右手Cの中指の指先位置に、仮想キーボード3において「H」を表す仮想キー31を位置させる。以下、「H」を表す仮想キー31を仮想キー31Hと称する。仮想キー31Hは、第1仮想キーの一例である。第1仮想キーは、仮想キー31Hに限らず、仮想キー31Hとは異なる仮想キー31でもよい。仮想キー31Hとは異なる仮想キー31は、例えば、「J」を表す仮想キー31又は「K」を表す仮想キー31である。
【0077】
仮想キー設定部254は、仮想空間K2において右手Cの中指の指先位置に仮想キー31Hを位置させると、仮想空間データJ5を生成する。仮想空間データJ5は、仮想キーボード3が配置された仮想空間K2を表すデータである。
【0078】
画像データ生成部255は、仮想空間データJ5とカメラデータJ4とに基づいて、画像データH1を生成する。カメラデータJ4は、カメラ11Lのワールド座標系CS2の座標と、カメラ11Lの撮像方向を示すワールド座標系CS2の座標と、を示す。
【0079】
画像データ生成部255は、仮想空間データJ5が表す仮想空間K2において、カメラデータJ4が示すカメラ11Lのワールド座標系CS2の座標位置に、仮想カメラN1を配置する。カメラデータJ4が、カメラ11Rのワールド座標系CS2の座標位置を示す場合、画像データ生成部255は、仮想空間K2において、カメラデータJ4が示すカメラ11Rのワールド座標系CS2の座標位置に、仮想カメラN1を配置する。カメラデータJ4が、カメラ11Lとカメラ11Rの間の地点のワールド座標系CS2の座標位置を示す場合、画像データ生成部255は、仮想空間K2において、カメラデータJ4が示す地点のワールド座標系CS2の座標位置に、仮想カメラN1を配置する。
【0080】
図9は、仮想空間K2に配置された仮想カメラN1の一例を示す図である。仮想カメラN1の撮像方向は、カメラデータJ4が示すカメラ11Lの撮像方向と一致する。カメラデータJ4がカメラ11Rの撮像方向を示す場合、仮想カメラN1の撮像方向は、カメラデータJ4が示すカメラ11Rの撮像方向と一致する。
【0081】
図5に示される画像データ生成部255は、仮想カメラN1が仮想空間K2を撮像することによって得られる撮像画像データを、画像データH1として生成する。このため、画像データH1は、MRグラス1を装着しているユーザAの視線に応じた画像を表す。MRグラス1を装着しているユーザAの視線に応じた画像は、例えば、仮想キーボード3を表す画像4である。
【0082】
画像データ生成部255は、通信装置23に、画像データH1をMRグラス1へ送信させる。MRグラス1は、画像データH1を受信すると、画像データH1が表す画像(例えば、仮想キーボード3の画像4)を表示する。このため、ユーザAは、MRグラス1に表示された仮想キーボード3を見ながら、仮想キーボード3を操作できる。
【0083】
仮想空間K2に仮想キーボード3が配置された時点からの時間の経過に伴い、ユーザAは、ユーザAの指と仮想キーボード3との距離を認識し難くなる。例えば、時間の経過に伴い、図10に示されるようにユーザAの指先位置C1が仮想キーボード3から離れてしまった場合、ユーザAは、ユーザAの指と仮想キーボード3との距離を認識し難くなってしまう。
【0084】
携帯機器2は、ユーザAがユーザAの指と仮想キーボード3との距離を再び認識可能とするために、ユーザAの指と仮想キーボード3との位置関係を設定し直すことができる。例えば、携帯機器2は、ユーザAの左手の指によって行われる第2ジェスチャーを検出すると、ユーザAの右手Cの中指の指先位置に対応する仮想空間K2上の目標位置M1に、仮想キー31Hを移動する。すなわち、携帯機器2は、第2ジェスチャーを行わない指の指先位置に対応する目標位置M1に、仮想キー31Hを移動する。このように、携帯機器2では、第2ジェスチャーを行う指が、目標位置M1に対応する指と異なる。
【0085】
なお、第2ジェスチャーを行う指が、目標位置M1に対応する指と同じである場合、第2ジェスチャーの内容によっては、目標位置M1に対応する指の指先位置が検出し難くなるおそれがある。また、第2ジェスチャーを行う指が目標位置M1に対応する指と同じである場合に目標位置M1に対応する指の指先位置を検出し易くするためには、第2ジェスチャーの内容が制限される。すなわち、第2ジェスチャーの自由度が低くなる。
【0086】
携帯機器2では、第2ジェスチャーを行う指が、目標位置M1に対応する指と異なる。このため、第2ジェスチャーによって目標位置M1に対応する指の指先位置が検出し難くなることを低減でき、第2ジェスチャーの自由度が低くなることを回避可能である。
【0087】
図11は、目標位置M1への仮想キー31Hの移動の一例を示す図である。図11において、点線によって示される仮想キーボード3及び点線によって示される仮想キー31Hは、移動前の仮想キーボード3及び移動前の仮想キー31Hを表す。実線によって示される仮想キーボード3及び実線によって示される仮想キー31Hは、移動後の仮想キーボード3及び移動前の仮想キー31Hを表す。
【0088】
図5に示されるジェスチャー検出部256は、第2ジェスチャーを検出する。第2ジェスチャーは、ユーザAの指と仮想キーボード3との位置関係を設定し直すためのジェスチャーである。第2ジェスチャーは、例えば、ユーザAの左手の人差し指を、ユーザAの左手の中指に接触させるジェスチャーである。ユーザAの左手の人差し指とユーザAの左手の中指は、少なくとも1つの指の一例である。少なくとも1つの指は、ユーザAの両手の10本の指のうち、1本の指、2本の指、3本の指、4本の指、5本の指、6本の指、7本の指、8本の指又は9本の指である。
【0089】
第2ジェスチャーは、上述のジェスチャーに限らない。例えば、第2ジェスチャーは、ユーザAの左手の小指の指先を、ユーザAの左手の親指の指先に接触させるジェスチャーでもよい。第2ジェスチャーは、第1ジェスチャーと同じジェスチャーでもよい。
【0090】
ジェスチャー検出部256は、最新の手データJ1を含む複数の手データJ1に基づいて、第2ジェスチャーを検出する。手データJ1は、ユーザAの両手の3次元形状を示す。ジェスチャー検出部256は、第2ジェスチャーを検出すると、検出データJ6を生成する。検出データJ6は、第2ジェスチャーの検出を表すデータである。ジェスチャー検出部256は、検出データJ6を仮想キー制御部257に提供する。
【0091】
仮想キー制御部257は、ユーザAの指と仮想キーボード3との位置関係を設定し直す。仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、仮想空間K2における目標位置M1に仮想キー31Hを移動する。
【0092】
仮想キー制御部257は、検出データJ6を受け付けた場合、ジェスチャー検出部256が第2ジェスチャーを検出したと判断する。
【0093】
仮想キー制御部257は、検出データJ6を受け付けると、仮想空間データJ5に基づいて、仮想キーボード3が仮想空間K2に位置しているかを判断する。例えば、仮想キー制御部257は、仮想空間データJ5を参照することによって、仮想キーボード3が仮想空間K2に位置しているかを判断する。仮想空間データJ5が仮想キーボード3を表す場合、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置していると判断する。仮想空間データJ5が仮想キーボード3を表さない場合、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置していないと判断する。
【0094】
なお、仮想空間データJ5は、仮想キー設定部254が仮想空間K2に仮想キー31Hを位置させると生成される。このため、仮想空間データJ5が生成されている場合、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置していると判断してもよい。仮想空間データJ5が生成されていない場合、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置していないと判断してもよい。
【0095】
仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置していると判断すると、最新の指先データJ3が示す右手Cの中指の指先位置を、目標位置M1として決定する。
【0096】
右手Cの中指は、「少なくとも1つの指」とは異なる第1指の一例である。第1指は、右手Cの中指に限らず、例えば、右手Cの親指、右手Cの人差し指、右手Cの薬指又は右手Cの小指でもよい。第1指は、上述の参照指でもよい。参照指は、仮想キーボード3を仮想空間K2に位置させるために用いられる指である。第1指が参照指である構成では、ユーザAは、第1指及び参照指として用いられる1つの指と、仮想キーボード3と、の位置関係を意識すれば、仮想キーボード3とユーザの指との位置関係を認識できる。このため、第1指が参照指と異なる構成と比べて、ユーザAは、第1仮想キーの位置とユーザの指との位置関係を認識し易くなる。なお、第1指は、参照指と異なってもよい。
【0097】
最新の指先データJ3が示す右手Cの中指の指先位置は、「指先検出部252が検出した第1指の指先位置に対応する仮想空間K2上の目標位置」の一例である。
【0098】
仮想キー制御部257は、目標位置M1を決定すると、仮想キー設定部254を制御することによって、仮想空間K2における目標位置M1に仮想キー31Hを移動する。
【0099】
例えば、仮想キー制御部257は、仮想キーボード3を移動することによって仮想キー31Hを目標位置M1に移動する。一例を挙げると、仮想キー制御部257は、第1移動指示J7を仮想キー設定部254に提供することによって、仮想キー設定部254に、仮想キーボード3を移動させて仮想キー31Hを目標位置M1に移動させる。第1移動指示J7は、仮想キーボード3を移動することによって仮想キー31Hを目標位置M1に移動させる指示である。仮想キー設定部254は、第1移動指示J7に応じて、仮想空間K2において、仮想キーボード3を移動させて仮想キー31Hを目標位置M1に移動する。
【0100】
なお、仮想キーボード3が仮想空間K2に配置されていない場合、仮想キー制御部257は、仮想キー31Hを移動しない。
【0101】
仮想キー制御部257は、目標位置M1を決定してから第1移動指示J7を提供するまでの期間において、仮想キー設定部254に、最新の指先データJ3に基づいて基準面P1を再決定させてもよい。例えば、仮想キー制御部257は、目標位置M1を決定してから第1移動指示J7を提供するまでの期間において、基準面P1を再決定する指示を、仮想キー設定部254に提供する。基準面P1を再決定する手法は、基準面P1を決定する手法と同様である。この場合、仮想キー制御部257は、再決定された基準面P1上で仮想キーボード3を移動することによって、仮想キー31Hを目標位置M1に移動する。
【0102】
仮想キー設定部254は、仮想キーボード3を移動すると、仮想空間データJ5を更新する。更新後の仮想空間データJ5は、移動後の仮想キーボード3が位置する仮想空間K2を表す。
【0103】
操作検出部258は、仮想キーボード3に対する操作を検出する。例えば、操作検出部258は、最新の仮想空間データJ5と、最新の指先データJ3と、に基づいて、仮想キーボード3に対する操作を検出する。例えば、最新の指先データJ3が示す複数の指先位置のいずれかが、仮想キーボード3の仮想キー31のいずれかの中に入る場合、操作検出部258は、指先位置が入った仮想キー31への操作を検出する。操作検出部258は、仮想キーボード3に対する操作の検出結果に基づいて、キー操作処理を実行する。キー操作処理は、操作された仮想キー31に対応づけられた処理である。例えば、仮想キー31Hが操作された場合、操作検出部258は、キー操作処理として、「H」という文字を入力する処理を実行する。
【0104】
A4:動作の説明
携帯機器2の動作を説明する。まず、仮想キーボード3を仮想空間K2に配置する動作を説明する。続いて、仮想キーボード3を移動する動作を説明する。
【0105】
図12は、仮想キーボード3を仮想空間K2に配置する動作の一例を説明するための図である。
【0106】
ステップS101において手データ生成部251は、画像データD1及びD2に基づいて、手データJ1を生成する。手データJ1は、ユーザAの両手の3次元形状をローカル座標系CS1の座標によって示すデータである。
【0107】
続いて、ステップS102において指先検出部252は、手データJ1に基づいて、指先データJ2を生成する。指先データJ2は、ユーザAの左右の手の各指の指先位置をローカル座標系CS1の座標によって示すデータである。
【0108】
続いて、ステップS103において座標変換部253は、指先データJ2と加速度データE1と角加速度データE2とに基づいて、指先データJ3を生成する。指先データJ3は、指先データJ2が示す各指の指先位置をワールド座標系CS2の座標によって示すデータである。
【0109】
続いて、ステップS104において座標変換部253は、加速度データE1と角加速度データE2に基づいて、カメラデータJ4を生成する。カメラデータJ4は、カメラ11Lのワールド座標系CS2の座標と、カメラ11Lの撮像方向を示すワールド座標系CS2の座標と、を示すデータである。ステップS104は、ステップS103が実行される前に実行されてもよい。
【0110】
続いて、ステップS105において仮想キー設定部254は、タイミングt1に応じて、仮想キーボード3を仮想空間K2に位置させる。タイミングt1は、例えば、ユーザAが入力装置21に入力した「キーボード設定指示」を仮想キー設定部254が受け付けるタイミングである。
【0111】
ステップS105では仮想キー設定部254は、例えば、右手Cの複数の指の指先位置に基づいて、基準面P1を仮想空間K2内に決定する。仮想キー設定部254は、基準面P1を決定すると、基準面P1に仮想キーボード3を配置する。仮想キー設定部254は、基準面P1に仮想キーボード3を配置すると、最新の指先データJ3に基づいて、右手Cの中指の指先位置を特定する。仮想キー設定部254は、右手Cの中指の指先位置を特定すると、基準面P1に沿って仮想キーボード3をずらすことによって、右手Cの中指の指先位置に、「H」を表す仮想キー31Hを位置させる。
【0112】
図13は、仮想キーボード3を移動する動作の一例を説明するための図である。ジェスチャー検出部256は、ステップS201において手データJ1に基づいて第2ジェスチャーを検出すると、ステップS202において検出データJ6を生成する。第2ジェスチャーは、例えば、ユーザAの左手の人差し指を、ユーザAの左手の中指に接触させるジェスチャーである。検出データJ6は、第2ジェスチャーの検出を表すデータである。
【0113】
続いて、ステップS203において仮想キー制御部257は、仮想空間データJ5に基づいて、仮想キーボード3が仮想空間K2に位置するかを判断する。
【0114】
仮想キー制御部257は、ステップS203において仮想キーボード3が仮想空間K2に位置していると判断すると、ステップS204において指先データJ3に基づいて目標位置M1を決定する。目標位置M1は、最新の指先データJ3が示す右手Cの中指の指先位置である。
【0115】
続いて、ステップS205において仮想キー制御部257は、仮想キー設定部254を制御することによって、仮想空間K2における目標位置M1に仮想キー31Hを移動する。このため、MRグラス1を装着しているユーザAは、仮想キーボード3が右手Cの中指の指先に吸い付くような感覚を得る。
【0116】
ステップS201においてジェスチャー検出部256が第2ジェスチャーを検出しない場合、図13に示される処理が終了する。ステップS203において仮想キーボード3が仮想空間K2に位置していない場合、図13に示される処理が終了する。
【0117】
A5:第1実施形態のまとめ
仮想キー設定部254は、仮想キー31Hを仮想空間K2に位置させる。ジェスチャー検出部256は、ユーザAの左手の人差し指をユーザAの左手の中指に接触させる第2ジェスチャーを検出する。指先検出部252は、ユーザAの左右の手の各指の指先位置を検出する。このため、指先検出部252は、少なくとも、ユーザAの右手Cの中指の指先位置を検出する。仮想キー制御部257は、仮想キー31Hが仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、指先検出部252が検出したユーザAの右手Cの中指の指先位置に対応する仮想空間K2上の目標位置M1に仮想キー31Hを移動する。
【0118】
ジェスチャー検出部256は、仮想キー31Hの移動先に対応する右手Cの中指とは異なる指によって行われるジェスチャーを検出する。このため、仮想キー31Hの移動先に対応する右手Cの中指によってジェスチャーが行われる状況を回避できる。よって、右手Cの中指によって行われるジェスチャーによってユーザAの右手Cの中指の指先位置を検出し難くなるという課題を解決できる。
【0119】
仮想キー31Hは、第1仮想キーの一例である。第1仮想キーは、仮想キーボード3に含まれる仮想キー31のいずれかである。第1仮想キーは、仮想キーボード3に含まれる仮想キー31のいずれかに限らない。例えば、第1仮想キーは、仮想キーボード3に含まれない仮想キーでもよい。仮想キーボード3に含まれない仮想キーは、例えば、動画用の仮想PLAYキー又は動画用の仮想停止キーである。
【0120】
仮想キー31Hの移動先に対応する右手Cの中指は、第1指の一例である。第1指は、右手Cの中指に限らない。第1指は、ユーザAの左右の手の10本の指のうち、いずれか1つの指であればよい。
【0121】
第2ジェスチャーを行うユーザAの左手の人差し指及びユーザAの左手の中指は、第2ジェスチャーを行う少なくとも1つの指の一例である。第2ジェスチャーを行う少なくとも1つの指は、ユーザAの左手の人差し指とユーザAの左手の中指に限らない。第2ジェスチャーを行う少なくとも1つの指は、ユーザAの左右の手の10本の指のうち、第1指と異なる1以上の指であればよい。
【0122】
第1実施形態では、第2ジェスチャーを行う指と第1指との組合せは、左手の指と右手Cの指との組合せである。左手の指と右手Cの指との組合せは、相互に異なる手の指の組合せを意味する。第2ジェスチャーを行う指と第1指との組合せは、相互に異なる手の指の組合せに限らない。例えば、第2ジェスチャーを行う指と第1指との組合せは、同じ手の異なる指の組合せでもよい。同じ手の異なる指の組合せは、例えば、右手Cの親指と右手Cの人差し指との組合せ、又は、左手の人差し指と左手の中指との組合せである。
【0123】
仮想キー設定部254は、仮想キーボード3を仮想空間K2に位置させることによって仮想キー31Hを仮想空間K2に位置させる。仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、仮想キー31Hを目標位置M1に移動する。このため、仮想キーボード3に含まれる仮想キーを目標位置M1に移動できる。
【0124】
仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、仮想キーボード3を移動することによって仮想キー31Hを目標位置M1に移動する。このため、第2ジェスチャーに応じて仮想キーボード3の全体を移動できる。
【0125】
B:変形例
上述の実施形態における変形の態様を以下に示す。以下の変形の態様から任意に選択された2以上の態様を、相互に矛盾しない範囲において適宜に併合してもよい。
【0126】
B1:第1変形例
第1実施形態において、仮想キー制御部257は、仮想キーボード3を移動することによって第1仮想キー(例えば、仮想キー31H)を目標位置M1に移動する代わりに、複数の仮想キー31のうち第1仮想キーとは異なる仮想キー31を移動せずに、第1仮想キーを目標位置M1に移動してもよい。
【0127】
例えば、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、第2移動指示を、仮想キー設定部254に提供する。第2移動指示は、複数の仮想キー31のうち第1仮想キー(例えば、仮想キー31H)とは異なる仮想キー31を移動せずに、第1仮想キーを目標位置M1に移動させる指示である。仮想キー設定部254は、第2移動指示に応じて、仮想空間K2において、複数の仮想キー31のうち第1仮想キーとは異なる仮想キー31を移動せずに、第1仮想キーを目標位置M1に移動する。
【0128】
第1変形例によれば、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、複数の仮想キー31のうち第1仮想キーとは異なる仮想キー31を移動せずに、第1仮想キーを目標位置M1に移動する。このため、ユーザAが第1仮想キーのみの操作を希望する場合、移動する必要のない仮想キー31を移動することを避けられる。よって、移動する必要のない仮想キー31を移動する処理を低減できる。
【0129】
なお、第1変形例では、移動後の第1仮想キーが他の仮想キー31と重なる可能性がある。第1仮想キーが他の仮想キー31と重なる場合、ユーザAが第1仮想キーを操作したにも関わらず、操作検出部258が、他の仮想キー31への操作を検出してしまう可能性がある。このため、第1仮想キーが他の仮想キー31と重なる場合、操作検出部258は、第1仮想キーと重なる仮想キー31への操作を無効にしてもよい。この場合、ユーザAが第1仮想キーを操作したにも関わらず、操作検出部258が、他の仮想キー31への操作を検出することを防ぐことができる。
【0130】
B2:第2変形例
第1実施形態および第1変形例では、第1仮想キーは固定される。例えば、仮想キー31Hが第1仮想キーとして固定される。
【0131】
しかしながら、第1実施形態および第1変形例において、第1仮想キーは変更されてもよい。例えば、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを第1仮想キーとして決定してもよい。
【0132】
この場合、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを、目標位置M1に移動する。
【0133】
例えば、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、まず、最新の仮想空間データJ5を取得する。
【0134】
続いて、仮想キー制御部257は、最新の仮想空間データJ5を参照することによって、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを、第1仮想キーとして決定する。
【0135】
続いて、仮想キー制御部257は、第1仮想キーを目標位置M1に移動する。例えば、仮想キー制御部257は、第3移動指示を仮想キー設定部254に提供することによって、仮想キー設定部254に、第1仮想キーを目標位置M1に移動させる。第3移動指示は、第1仮想キーとして決定された仮想キー31を、仮想キーボード3を移動することによって目標位置M1に移動させる指示である。仮想キー設定部254は、第3移動指示に応じて、仮想空間K2において、仮想キーボード3を移動させて第1仮想キーを目標位置M1に移動する。
【0136】
仮想キー制御部257は、第4移動指示を仮想キー設定部254に提供することによって、仮想キー設定部254に、第1仮想キーを目標位置M1に移動させてもよい。第4移動指示は、複数の仮想キー31のうち第1仮想キーとして決定された仮想キーとは異なる仮想キー31を移動せずに、第1仮想キーとして決定された仮想キーを目標位置M1に移動させる指示である。仮想キー設定部254は、第4移動指示に応じて、仮想空間K2において、複数の仮想キー31のうち第1仮想キーとして決定された仮想キーとは異なる仮想キー31を移動せずに、第1仮想キーとして決定された仮想キーを目標位置M1に移動する。
【0137】
第2変形例によれば、仮想キー制御部257は、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを、第1仮想キーとして決定する。目標位置M1は、ユーザAの第1指(例えば、ユーザAの右手Cの中指)の指先位置に応じた位置である。このため、ユーザAは、第1指の位置を変更することによって、第1仮想キーを変更できる。
【0138】
また、仮想キー制御部257は、仮想キーボード3が仮想空間K2に位置する状況においてジェスチャー検出部256が第2ジェスチャーを検出した場合、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを、目標位置M1に移動する。このため、ユーザAは、第1指を操作対象の仮想キーに近づけた状態で第2ジェスチャーを行うことによって、操作対象の仮想キーを第1指によって操作しやすい位置に移動できる。
【0139】
B3:第3変形例
第1実施形態および第1変形例から第2変形例では、ユーザAは、例えば右手Cの人差し指を移動することによって、右手Cの人差し指を操作対象の仮想キー31の場所に位置させる。
【0140】
しかしながら、電車の中などの環境及びユーザAの姿勢によって、右手Cの人差し指の移動範囲は制限される。
【0141】
このため、第1実施形態および第1変形例から第2変形例において、例えば、「ユーザAの右手C」とは異なる「ユーザAの左手」の動きに基づいて、仮想キーボード3の位置が変更されてもよい。
【0142】
この場合、ユーザAの左手によって仮想キーボード3を移動できるので、ユーザAの左手によって仮想キーボード3を移動できない構成に比べて、ユーザAの右手Cの移動距離を短くできる。
【0143】
図14は、仮想キーボード3を移動せずに右手Cが「A」を示す仮想キー31に移動する場合と、左手によって仮想キーボード3を移動させて右手Cを「A」を示す仮想キー31に移動する場合と、を示す図である。図14において、移動距離L1は、仮想キーボード3を移動せずに右手Cのみが「A」を示す仮想キー31に移動する場合での移動距離である。移動距離L2は、左手によって仮想キーボード3を移動させて右手Cを「A」を示す仮想キー31に移動する場合における移動距離である。図14に示されるように、移動距離L2は移動距離L1よりも短くなる。
【0144】
右手Cは、第1手の一例である。第1手は、右手Cに限らず、第1指を有する手であればよい。ユーザAの左手は、第2手の一例である。第2手は、ユーザAの左手に限らず、第1手とは異なる手であればよい。
【0145】
図15は、第3変形例に係る携帯機器2Aの一例を示す図である。以下、携帯機器2Aと図5に示される携帯機器2との相違点を中心に説明する。
【0146】
携帯機器2Aは、携帯機器2が有する構成要素に加えて、動き検出部259と位置変更部260を含む。携帯機器2Aの記憶装置24は、プログラムPG2の代わりに、プログラムPG3を記憶する。携帯機器2Aの処理装置25は、記憶装置24からプログラムPG3を読み取る。携帯機器2Aの処理装置25は、プログラムPG3を実行することによって、手データ生成部251、指先検出部252、座標変換部253、仮想キー設定部254、画像データ生成部255、ジェスチャー検出部256、仮想キー制御部257、操作検出部258、動き検出部259、及び位置変更部260として機能する。手データ生成部251、指先検出部252、座標変換部253、仮想キー設定部254、画像データ生成部255、ジェスチャー検出部256、仮想キー制御部257、操作検出部258、動き検出部259、及び位置変更部260のうち少なくとも1つは、DSP、ASIC及びFPGA等の回路によって構成されてもよい。
【0147】
動き検出部259は、ユーザAの左手の動きを検出する。例えば、動き検出部259は、手データJ1に基づいて、ユーザAの左手の動きを検出する。動き検出部259は、ユーザAの左手の動きとして、第2ジェスチャーを行うユーザAの左手の指の動きを検出する。第2ジェスチャーを行うユーザAの左手の指は、例えば、ユーザAの左手の人差し指を、ユーザAの左手の中指である。ユーザAの左手の動きは、第2ジェスチャーを行うユーザAの左手の指の動きに限らず、ユーザAの左手の指のうち、第2ジェスチャーを行うユーザAの左手の指とは異なる指でもよい。動き検出部259は、ユーザAの左手の動きとして、第2ジェスチャーを行うユーザAの左手の指の移動方向と、第2ジェスチャーを行うユーザAの左手の指の移動距離と、を検出する。動き検出部259は、ユーザAの左手の動きの検出結果に基づいて、動き検出データJ8を生成する。動き検出データJ8は、第2ジェスチャーを行うユーザAの左手の指の移動方向と、第2ジェスチャーを行うユーザAの左手の指の移動距離と、を示すデータである。
【0148】
動き検出部259は、ユーザAの左手のワールド座標系CS2の座標位置が、仮想キーボード3と接触する位置である状況において、ユーザAの左手の動きを検出してもよい。換言すると、MRグラス1を装着しているユーザAが、ユーザAの左手の一部を、MRグラス1に表示される仮想キーボード3と重ねる状況において、動き検出部259は、ユーザAの左手の動きを検出してもよい。この場合、動き検出部259は、例えば、仮想空間データJ5と指先データJ3とに基づいて、ユーザAの左手のワールド座標系CS2の座標位置が、仮想キーボード3と接触する位置であるか否かを判断する。
【0149】
位置変更部260は、動き検出部259によって検出されたユーザAの左手の動きに基づいて、仮想キーボード3の位置を変更する。例えば、位置変更部260は、仮想空間K2において、動き検出データJ8が示す移動方向に、動き検出データJ8が示す移動距離だけ、仮想キーボード3を移動する。一例を挙げると、位置変更部260は、キーボード移動指示を仮想キー設定部254に提供することによって仮想キーボード3の位置を変更する。キーボード移動指示は、仮想空間K2において、動き検出データJ8が示す移動方向に、動き検出データJ8が示す移動距離だけ、仮想キーボード3を移動させる指示である。仮想キー設定部254は、キーボード移動指示に応じて、仮想空間K2において、動き検出データJ8が示す移動方向に、動き検出データJ8が示す移動距離だけ、仮想キーボード3を移動する。
【0150】
画像データ生成部255は、位置変更部260が実行する仮想キーボード3の移動に応じて、MRグラス1に、仮想キーボード3をスクロール表示させてもよい。例えば、画像データ生成部255は、位置変更部260が実行する仮想キーボード3の移動を仮想カメラN1にて撮像することによって得られる撮像画像データを生成する。画像データ生成部255は、撮像画像データを編集することによって、仮想キーボード3のスクロールを表す画像データH1を生成する。画像データ生成部255は、当該画像データH1を通信装置23からMRグラス1に送信することによって、MRグラス1に、仮想キーボード3をスクロール表示させる。MRグラス1は、当該画像データH1に基づいて、仮想キーボード3をスクロール表示する。画像データ生成部255は、第1表示制御部の一例である。
MRグラス1は、表示装置の一例である。
【0151】
第3変形例によれば、ユーザAの左手によって仮想キーボード3を移動できる。このため、ユーザAの左手によって仮想キーボード3を移動できない構成に比べて、ユーザAの右手Cの移動距離を短くできる。
【0152】
仮想キーボード3を移動するための第2手は、第2ジェスチャーを行う指を有する手(例えば、左手)である。このため、ユーザAに、第2ジェスチャーを行う指を有する第2手(例えば、左手)を、仮想キーボード3の移動に関する手と認識させ、かつ、第2手とは異なる第1手(例えば、右手)を、仮想キー31を操作する手と認識させることができる。よって、ユーザAは、仮想キーボード3の移動に関する手と、仮想キー31を操作する手を、混同し難くなる。
【0153】
動き検出部259は、第2手の動きとして、第2ジェスチャーを行うユーザAの左手の指の動きを検出する。このため、ユーザAは、第2ジェスチャーを行う指によって仮想キーボード3を移動できる。
【0154】
画像データ生成部255が、位置変更部260が実行する仮想キーボード3の移動に応じて、MRグラス1に、仮想キーボード3をスクロール表示させる場合、ユーザAに、仮想キーボード3の移動をスクロール表示によって知らせることができる。
【0155】
B4:第4変形例
第1実施形態および第1変形例から第3変形例において、画像データ生成部255は、MRグラス1に、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを拡大表示させてもよい。
【0156】
図16は、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを拡大表示する一例を示す図である。図16では、仮想キー31Hが、目標位置M1に最も近い仮想キーである。
【0157】
例えば、画像データ生成部255は、最新の仮想空間データJ5を参照することによって、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを、近接仮想キーとして決定する。画像データ生成部255は、仮想空間K2を仮想カメラN1にて撮像することによって得られる撮像画像データを生成する。画像データ生成部255は、撮像画像データを編集することによって、近接仮想キーのみを拡大表示した画像を表す画像データH1を生成する。画像データ生成部255は、当該画像データH1を通信装置23からMRグラス1に送信することによって、MRグラス1に、近接仮想キーを拡大表示させる。MRグラス1は、当該画像データH1に基づいて、近接仮想キーを拡大表示する。画像データ生成部255は、第2表示制御部の一例である。MRグラス1は、表示装置の一例である。
【0158】
第4変形例によれば、画像データ生成部255は、MRグラス1に、複数の仮想キー31の中で目標位置M1に最も近い仮想キーを拡大表示させる。目標位置M1に最も近い仮想キーは、操作対象の仮想キー31である可能性が高い。このため、操作対象の仮想キー31を拡大表示することができる。よって、操作対象の仮想キー31を拡大表示しない構成に比べて、ユーザAに操作対象の仮想キー31を認識させ易くできる。
【0159】
B5:第5変形例
第1実施形態および第1変形例から第4変形例において、ジェスチャー検出部256は、手データJ1とは異なるデータに基づいて、第2ジェスチャーを検出してもよい。
【0160】
MRグラス1の操作ボタン15が、ユーザAの左手の指での操作を受け付けるためにMRグラス1の胴部94に位置するとする。さらに、第2ジェスチャーが、操作ボタン15を押すというジェスチャーであるとする。この場合、ジェスチャー検出部256は、包括データG1に含まれる操作データF1に基づいて、第2ジェスチャーを検出する。
【0161】
第5変形例によれば、手データJ1を用いることなく、第2ジェスチャーを検出できる。
【0162】
B6:第6変形例
第1実施形態および第1変形例から第5変形例において、指先検出部252は、指先に装着された位置検出装置の出力に基づいて、指先位置を検出してもよい。
【0163】
第6変形例によれば、手データJ1を用いることなく、指先位置を検出できる。
【0164】
B7:第7変形例
携帯機器2又は2Aの処理装置25によって実現される各要素は、MRグラス1の処理装置18によって実現されてもよい。この場合、MRグラス1は、情報処理装置の一例である。
【0165】
第7変形例によれば、携帯機器2を省略できる。
【0166】
C:その他
(1)図4図5又は図15に例示された各機能は、ハードウェア及びソフトウェアの任意の組み合わせによって実現される。各機能の実現方法は特に限定されない。各機能は、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続することによって構成される装置を用いて実現されてもよい。各機能は、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
【0167】
(2)本明細書において、「装置」という用語は、回路、デバイス又はユニット等の他の用語に読み替えられてもよい。
【0168】
(3)第1実施形態及び第1変形例~第7変形例の各々においては、記憶装置17及び記憶装置24は、CD-ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリー(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。また、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
【0169】
(4)第1実施形態及び第1変形例~第7変形例の各々は、LTE(Long Term Evolution)、LTE-A(LTA-Advanced)、SUPER 3G、IMT-Advanced、4G(4th generation mobile communication system)、5G(5th generation mobile communication system)、6th generation mobile communication system(6G)、xth generation mobile communication system(xG)(xは、例えば整数又は小数)、FRA(Future Radio Access)、NR(new Radio)、New radio access(NX)、Future generation radio access(FX)、W-CDMA(登録商標)、GSM(登録商標)、CDMA2000、UMB(Ultra Mobile Broadband)、IEEE 802.11(Wi-Fi(登録商標))、IEEE 802.16(WiMAX(登録商標))、IEEE 802.20、UWB(Ultra-WideBand)、Bluetooth(登録商標)、その他の適切なシステムを利用するシステム及びこれらに基づいて拡張、修正、作成、規定された次世代システムの少なくとも一つに適用されてもよい。また、複数のシステムが組み合わされて(例えば、LTE及びLTE-Aの少なくとも一方と5Gとの組み合わせ等)適用されてもよい。
【0170】
(5)第1実施形態及び第1変形例~第7変形例の各々において例示した処理手順、シーケンス、又はフローチャート等は、矛盾のない限り、順序を入れ替えてもよい。例えば、本明細書において説明した方法については、例示的な順序において様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【0171】
(6)第1実施形態及び第1変形例~第7変形例の各々において、入出力された情報等は特定の場所(例えば、メモリー)に保存されてもよいし、管理テーブルを用いて管理されてもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【0172】
(7)第1実施形態及び第1変形例~第7変形例の各々において、判断は、1ビットによって表される値(0か1か)に基づいて行われてもよいし、真偽値(Boolean:true又はfalse)に基づいて行われてもよいし、数値の比較(例えば、所定の値との比較)に基づいて行われてもよい。
【0173】
(8)第1実施形態及び第1変形例~第7変形例の各々において例示したプログラムは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード又はハードウェア記述言語と呼ばれるか、他の名称によって呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順又は機能等を意味するよう広く解釈されるべきである。また、ソフトウェア、又は命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)など)及び無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
【0174】
(9)第1実施形態及び第1変形例~第7変形例の各々において説明したデータなどは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、情報などは、電圧、電流、電磁波、磁界、磁性粒子、光場、光子、又はこれらの任意の組み合わせにて表されてもよい。なお、本明細書において説明した用語及び本明細書の理解に必要な用語は、同一の又は類似する意味を有する用語と置き換えられてもよい。
【0175】
(10)第1実施形態及び第1変形例~第7変形例の各々において、「システム」及び「ネットワーク」という用語は、互換的に使用される。
【0176】
(11)第1実施形態及び第1変形例~第7変形例の各々において、MRグラス1、携帯機器2及び携帯機器2Aの少なくとも一方は、移動局でもよい。移動局は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、又はいくつかの他の適切な用語を用いて称される場合もある。
【0177】
(12)移動局は、送信装置、受信装置又は通信装置などと呼ばれてもよい。移動局は、移動体に搭載されたデバイス、又は移動体自体などであってもよい。移動体は、移動可能な物体を意味する。移動体の移動速度は任意である。移動体は、停止可能である。移動体は、例えば、車両、輸送車両、自動車、自動二輪車、自転車、コネクテッドカー、ショベルカー、ブルドーザー、ホイールローダー、ダンプトラック、フォークリフト、列車、バス、リヤカー、人力車、船舶(ship and other watercraft)、飛行機、ロケット、人工衛星、ドローン(登録商標)、マルチコプター、クアッドコプター、気球、及びこれらに搭載される物を含み、またこれらに限らない。移動体は、運行指令に基づいて自律走行する移動体であってもよい。移動体は、乗り物(例えば、車、飛行機など)であってもよいし、無人で動く移動体(例えば、ドローン、自動運転車など)であってもよし、ロボット(有人型又は無人型)であってもよい。移動局は、必ずしも通信動作時に移動しない装置も含む。例えば、移動局は、センサなどのIoT(Internet of Things)機器であってもよい。
【0178】
(13)第1実施形態及び第1変形例~第7変形例の各々において、「決定(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)」などで読み替えられてもよい。
【0179】
(14)第1実施形態及び第1変形例~第7変形例の各々において、「接続された(connected)」という用語、又はこれのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的なあらゆる接続又は結合を意味し、互いに「接続」又は「結合」された2つの要素間に1又はそれ以上の中間要素が存在することを含むことができる。要素間の結合又は接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」で読み替えられてもよい。本開示で使用する場合、2つの要素は、1又はそれ以上の電線、ケーブル及びプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光(可視及び不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」又は「結合」されると考えることができる。
【0180】
(15)第1実施形態及び第1変形例~第7変形例の各々において、「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【0181】
(16)本明細書において使用する「第1」及び「第2」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定しない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書において使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみが採用され得ること又は何らかの形において第1要素が第2要素に先行しなければならないことを意味しない。
【0182】
(17)第1実施形態及び第1変形例~第7変形例の各々において「含む(include)」、「含んでいる(including)」及びそれらの変形が、本明細書あるいは特許請求の範囲において使用されている場合、これら用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
【0183】
(18)本願の全体において、例えば、英語におけるa、an及びtheのように、翻訳によって冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
【0184】
(19)本発明が本明細書中に説明した実施形態に限定されないことは当業者にとって明白である。本発明は、特許請求の範囲の記載に基づいて定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施できる。したがって、本明細書の記載は、例示的な説明を目的とし、本発明に対して何ら制限的な意味を有さない。また、本明細書に例示した態様から選択された複数の態様を組み合わせてもよい。
【0185】
D:上述の形態又は変形例から把握される態様
上述の形態又は変形例の少なくとも1つから以下の態様が把握される。
【0186】
D1:第1態様
第1態様に係る情報処理装置は、仮想キー設定部と、ジェスチャー検出部と、指先検出部と、仮想キー制御部と、を含む。仮想キー設定部は、第1仮想キーを仮想空間に位置させる。ジェスチャー検出部は、少なくとも1つの指によって行われるジェスチャーを検出する。指先検出部は、前記少なくとも1つの指とは異なる第1指の指先位置を検出する。仮想キー制御部は、前記第1仮想キーが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記指先検出部が検出した前記第1指の指先位置に対応する前記仮想空間上の目標位置に前記第1仮想キーを移動する。
【0187】
この態様によれば、仮想キーが正しい位置とは異なる位置に設定されることを低減することができる。
【0188】
D2:第2態様
第1態様の例(第2態様)において、前記第1仮想キーは、仮想キーボードが有する複数の仮想キーのいずれかである。前記仮想キー設定部は、前記仮想キーボードを前記仮想空間に位置させることによって前記第1仮想キーを前記仮想空間に位置させる。前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記第1仮想キーを前記目標位置に移動する。この態様によれば、仮想キーボードに含まれる仮想キーを目標位置に移動できる。
【0189】
D3:第3態様
第2態様の例(第3態様)において、前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記複数の仮想キーのうち前記第1仮想キーとは異なる仮想キーを移動せずに、前記第1仮想キーを前記目標位置に移動する。この態様によれば、例えば、ユーザが第1仮想キーのみの操作を希望する場合、移動する必要のない仮想キーを移動することを避けられる。よって、移動する必要のない仮想キーを移動する処理を低減できる。
【0190】
D4:第4態様
第2態様の例(第4態様)において、前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記仮想キーボードを移動することによって前記第1仮想キーを前記目標位置に移動する。この態様によれば、ジェスチャーに応じて仮想キーボードの全体を移動できる。
【0191】
D5:第5態様
第2態様から第4態様のいずれかの例(第5態様)において、前記仮想キー制御部は、前記仮想キーボードが前記仮想空間に位置する状況において前記ジェスチャー検出部が前記ジェスチャーを検出した場合、前記複数の仮想キーの中で前記目標位置に最も近い仮想キーを、前記第1仮想キーとして、前記目標位置に移動する。この態様によれば、ユーザは、第1指を操作対象の仮想キーに近づけた状態でジェスチャーを行うことによって、操作対象の仮想キーを第1指によって操作しやすい位置に移動できる。
【0192】
D6:第6態様
第2態様から第5態様のいずれかの例(第6態様)において、前記第1指を有する第1手とは異なる第2手の動きを検出する動き検出部と、前記動き検出部によって検出された前記第2手の動きに基づいて、前記仮想キーボードの位置を変更する位置変更部と、をさらに含む。この態様によれば、第2手によって仮想キーボードを移動できる。このため、第2手によって仮想キーボードを移動できない構成に比べて、操作対象の仮想キーを操作するために必要な第1手の移動距離を短くできる。
【0193】
D7:第7態様
第6態様の例(第7態様)において、前記位置変更部が実行する前記仮想キーボードの位置の変更に応じて、表示装置に、前記仮想キーボードをスクロール表示させる第1表示制御部を、さらに含む。この態様によれば、ユーザに、仮想キーボードの移動をスクロール表示によって知らせることができる。
【0194】
D8:第8態様
第6態様又は第7態様の例(第8態様)において、前記第2手は、前記少なくとも1つの指を有する手である。この態様によれば、ユーザに、ジェスチャーを行う指を有する第2手を、仮想キーボードの移動に関する手と認識させ、かつ、第2手とは異なる第1手を、仮想キーを操作する手と認識させることができる。よって、ユーザは、仮想キーボードの移動に関する手と、仮想キーを操作する手を、混同し難くなる。
【0195】
D9:第9態様
第8態様の例(第9態様)において、前記動き検出部は、前記第2手の動きとして、前記少なくとも1つの指の動きを検出する。この態様によれば、ユーザは、ジェスチャーを行う指によって仮想キーボードを移動できる。
【0196】
D10:第10態様
第2態様から第9態様のいずれかの例(第10態様)において、表示装置に、前記複数の仮想キーの中で前記目標位置に最も近い仮想キーを拡大表示させる第2表示制御部を、さらに含む。目標位置に最も近い仮想キーは、操作対象の仮想キーである可能性が高い。このため、この態様によれば、操作対象の仮想キーを拡大表示することができる。よって、操作対象の仮想キーを拡大表示しない構成に比べて、ユーザに操作対象の仮想キーを認識させ易くできる。
【符号の説明】
【0197】
1…MRグラス、2…携帯機器、2A…携帯機器、3…仮想キーボード、4…画像、11L…カメラ、11R…カメラ、12…表示装置、13…加速度センサ、14…ジャイロセンサ、15…操作ボタン、16…通信装置、17…記憶装置、18…処理装置、19…バス、21…入力装置、22…表示装置、23…通信装置、24…記憶装置、25…処理装置、26…バス、31…仮想キー、91…テンプル、93…ブリッジ、94…胴部、95…胴部、96L…レンズ、96R…レンズ、100…情報処理システム、181…取得部、182…動作制御部、251…手データ生成部、252…指先検出部、253…座標変換部、254…仮想キー設定部、255…画像データ生成部、256…ジェスチャー検出部、257…仮想キー制御部、258…操作検出部、259…動き検出部、260…位置変更部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16