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

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

▶ キヤノン株式会社の特許一覧

特開2023-184238情報処理装置、情報処理方法、プログラム
<>
  • 特開-情報処理装置、情報処理方法、プログラム 図1
  • 特開-情報処理装置、情報処理方法、プログラム 図2
  • 特開-情報処理装置、情報処理方法、プログラム 図3
  • 特開-情報処理装置、情報処理方法、プログラム 図4
  • 特開-情報処理装置、情報処理方法、プログラム 図5
  • 特開-情報処理装置、情報処理方法、プログラム 図6
  • 特開-情報処理装置、情報処理方法、プログラム 図7
  • 特開-情報処理装置、情報処理方法、プログラム 図8
  • 特開-情報処理装置、情報処理方法、プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184238
(43)【公開日】2023-12-28
(54)【発明の名称】情報処理装置、情報処理方法、プログラム
(51)【国際特許分類】
   G06F 3/0481 20220101AFI20231221BHJP
   G06F 3/0346 20130101ALI20231221BHJP
【FI】
G06F3/0481
G06F3/0346 422
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022098278
(22)【出願日】2022-06-17
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】日下田 辰哉
【テーマコード(参考)】
5B087
5E555
【Fターム(参考)】
5B087AA09
5B087BC06
5B087DD10
5E555AA03
5E555BA04
5E555BB04
5E555BB08
5E555BC17
5E555BE16
5E555BE17
5E555CA23
5E555CA29
5E555CC03
5E555DA08
5E555DB57
5E555DC09
5E555DC72
5E555FA00
(57)【要約】
【課題】画像から対象物を選択する際において、ユーザの利便性を向上させる技術を提供する。
【解決手段】情報処理装置は、ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示アイテムを表示するように表示手段を制御する表示制御手段と、前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定手段と、前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御手段と、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示アイテムを表示するように表示手段を制御する表示制御手段と、
前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定手段と、
前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記制御手段は、前記特定の表示アイテムの向きとの差分が第1の閾値より小さい向きの範囲に特定の数より多くの対象物が存在する場合には、前記特定の領域に前記特定の表示アイテムが含まれると判定する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御手段は、前記特定の表示アイテムが示す位置との距離が第2の閾値より短い範囲に特定の数より多くの対象物が存在する場合には、前記特定の領域に前記特定の表示アイテムが含まれると判定する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記制御手段は、前記第2のモードにおいて、1)前回の前記第2のモードにおいて選択した対象物の位置に隣接していた対象物を選択し、2)前記特定の操作部材に対する操作に応じて選択する対象物を切り替える、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記制御手段は、前記第2のモードにおいて、1)前記動作モードが前記第1のモードから前記第2のモードに切り替わる直前において前記特定の表示アイテムが示す位置に最も近い対象物を選択し、2)前記特定の操作部材に対する操作に応じて選択する対象物を切り替える、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項6】
前記第2のモードにおいて前記特定の操作部材に対する操作の情報を取得する取得手段をさらに有し、
前記取得手段は、前記第1のモードにおいて前記特定の操作部材に対する操作の情報を取得しない、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項7】
前記制御手段は、前記第2のモードにおいて前記複数の対象物のうちいずれかを選択したことを確定すると、前記動作モードを前記第1のモードに切り替える、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項8】
前記制御手段は、前記第2のモードにおいて前記複数の対象物のうちいずれかを選択しないことを決定すると、前記動作モードを前記第1のモードに切り替える、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項9】
前記表示制御手段は、前記第2のモードでは、前記特定の表示アイテムを表示しないように制御する、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項10】
前記特定の表示アイテムは、前記ユーザの手から伸びる仮想的な光線であり、前記手から前記光線が伸びる先の位置を示す、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項11】
前記第1のモードは、前記ユーザの手が写る撮像画像から検出された前記手の動きに基づき前記特定の表示アイテムおよび前記複数の対象物を制御可能な動作モードである、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項12】
前記特定の操作部材を含む操作デバイスが、前記ユーザの手に装着されており、
前記ユーザの手の位置および姿勢は、前記操作デバイスの位置および姿勢である、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項13】
前記情報処理装置の起動時の動作モードは、前記第1のモードである、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項14】
ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示アイテムを表示するように表示手段を制御する表示制御ステップと、
前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定ステップと、
前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御ステップと、
を有することを特徴とする情報処理方法。
【請求項15】
コンピュータを、請求項1から3のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【0002】
近年、仮想空間の情報をリアルタイムに現実空間に重ね合せて利用者に提示する複合現実の技術が研究されている。複合現実の技術において、描画処理装置は、現実空間が撮像された画像の全域または一部に、仮想物体(CG)を重畳することにより合成画像を生成して、その合成画像を表示する。
【0003】
また、複合現実の技術において、複数のCGの中から、ユーザがCGを選択することが行われる。特許文献1では、ユーザが表示パネル上のCGなどの対象物(被写体)をタッチすることにより対象物を選択することができる技術が記載されている。また、特許文献1では、その後、表示パネル以外のタッチ部材にスライド操作を行うことにより、タッチした対象物から次の対象物に選択が移動するという技術が記載されている。しかし、特許文献1では、ユーザが表示パネル上で対象物をタッチする必要があるため、タッチ操作を受け付け、かつ、複数の対象物を含む画像を表示する表示パネルが必要になる。
【0004】
一方で、タッチ操作を受け付ける表示パネルを用いない構成であっても対象物(CG)を選択可能にする技術として、レイと呼ばれる光線を表示して、手の動きに応じて移動するレイによって、対象物を選択する技術が存在する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-21174号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、例えば、多数の対象物(CG)が互いに近接している場合には、ユーザの手の動きが安定しないために、それらの対象物のうちからいずれかをレイによって選択することは容易ではない。つまり、ユーザの利便性が低下してしまう場合があった。
【0007】
そこで、本発明では、画像から対象物を選択する際において、ユーザの利便性を向上させる技術の提供を目的とする。
【課題を解決するための手段】
【0008】
本発明の1つの態様は、
ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示アイテムを表示するように表示手段を制御する表示制御手段と、
前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定手段と、
前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御手段と、
を有することを特徴とする情報処理装置である。
【0009】
本発明の1つの態様は、
ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示ア
イテムを表示するように表示手段を制御する表示制御ステップと、
前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定ステップと、
前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御ステップと、
を有することを特徴とする情報処理方法である。
【発明の効果】
【0010】
本発明によれば、画像から対象物を選択する際において、ユーザの利便性を向上できる。
【図面の簡単な説明】
【0011】
図1】実施形態1に係る情報処理システムの構成図である。
図2】実施形態1に係る表示装置と操作デバイスの関係を表す図である。
図3】実施形態1に係る手とCGの位置関係を説明する図である。
図4】実施形態1に係るデータリストを説明する図である。
図5】実施形態1に係る合成画像の例を示す図である。
図6】実施形態1に係るCG制御処理のフローチャートである。
図7】実施形態1に係るOTP選択モードの処理のフローチャートである。
図8】実施形態1に係る合成画像の変化を表す図である。
図9】実施形態1に係る表示装置と操作デバイスのハードウェア構成図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本発明を適用した好適な実施形態に従って詳細に説明する。
【0013】
<実施形態1>
図1の構成図を参照して、実施形態1に係る情報処理システム1の構成を説明する。情報処理システム1は、複数のCG(仮想物体;対象物)とともに、ユーザの手の位置および姿勢に基づきレイ(仮想的な光線)を撮像画像に合成する。また、情報処理システム1は、レイが示す位置(レイの終点位置)に基づき、撮像画像に合成したCGを移動させることもできる。
【0014】
情報処理システム1は、表示装置150と操作デバイス160を有する。表示装置150は、頭部装着用の表示装置(ヘッドマウントディスプレイ;情報処理装置)である。操作デバイス160は、ユーザの操作を受け付けて、ユーザの操作に応じた情報を表示装置150に送信する。
【0015】
(表示装置について)
表示装置150は、制御部101、画像記憶部102、レイ制御部103、CG制御部104、描画部105、通信部106、カメラ107、ディスプレイ108を有する。
【0016】
制御部101は、表示装置150の各構成を制御する。制御部101は、表示装置150の動作モードを設定する設定部としても動作する。制御部101は、レイと複数のCGとの位置関係に基づき、動作モードを切り替える。表示装置150の動作モードは、レイをディスプレイ108に表示し、レイによりCGを制御可能な(選択可能な)動作モード(レイによって、CGを選択したり、CGを移動させたりする動作モード)である「レイ制御モード」を含む。また、表示装置150の動作モードは、操作デバイス160のOTP110に対する操作に応じてCGを選択可能な動作モードである「OTP選択モード」
を含む。
【0017】
画像記憶部102は、カメラ107が撮影により取得した画像(撮像画像)を格納する。
【0018】
レイ制御部103は、レイの位置および姿勢などを制御する。レイ制御部103は、例えば、画像記憶部102に格納されている撮像画像から、ユーザの手の位置および姿勢を検出する。レイ制御部103は、検出した手の位置および姿勢に基づき、レイの開始位置および終了位置を決定(算出)する。
【0019】
CG制御部104は、CG(CGモデル;仮想物体)に関する情報を管理する。CG制御部104は、CGの位置および、選択されたCGを示す選択枠の位置(選択されたCGの位置)を決定する。CG制御部104は、CGの選択およびCGの移動を制御する。
【0020】
描画部105は、撮影画像におけるCG制御部104が決定した位置に、CGおよび選択枠を描画(配置)する。また、描画部105は、レイの開始位置および終了位置(レイ制御部103が算出した開始位置および終了位置)により定まるレイを、撮像画像に描画(配置)する。これらにより、描画部105は、CGやレイを撮像画像に合成した合成画像を生成する。描画部105が生成した合成画像がディスプレイ108に表示されるため、描画部105はディスプレイ108の表示を制御する表示制御部であると捉えることもできる。
【0021】
通信部106は、OTP110においてユーザがタッチした位置の情報(位置情報)を、操作デバイス160から取得する。通信部106は、例えば、無線通信のためのアンテナと、無線信号を処理するための構成(変復調回路または通信コントローラ)を有する。通信部106は、IEEE802.15の規格(いわゆるBluetooth(登録商標))に従った近距離無線通信を実現する。この近距離無線通信は、例えば、変調された無線信号がアンテナから出力されること、およびアンテナが取得した無線信号が復調されることにより実現される。実施形態1では、Bluetoothを用いた通信には、低消費電力が実現可能なBluetooth Low Energyのバージョン5.1が採用されている。
【0022】
カメラ107は、表示装置150の筐体に固定された撮像部である。カメラ107は、カメラ107の前面を撮像することにより、3次元空間である現実空間を表す撮像画像(3次元画像)を取得する。カメラ107は、例えば、左目用のカメラと右目用のカメラの2台のカメラを有する。この場合には、左目用のカメラと右目用のカメラはそれぞれ、ユーザ(装着者)の両目に近い位置に配置される。
【0023】
ディスプレイ108は、描画部105が生成した合成画像を表示する表示部である。ディスプレイ108は、ユーザの両目から見える位置であり、かつ、両目の近くに配置される。
【0024】
図9Aは、表示装置150を実現するためのハードウェアを示す図である。図1に示す表示装置150の各処理部は、CPU901の制御により実現される。CPU901は、ROM903に格納されたプログラムを、RAM902に展開して実行することにより、表示装置150の各処理部として動作する。ただし、いくつかの処理部(通信部106、カメラ107およびディスプレイ108など)は、CPU901とは独立したハードウェアによって実現してもよい。
【0025】
また、表示装置150は、カメラ107、ディスプレイ108、および情報処理装置の
3つの装置により実現されてもよい。この場合には、情報処理装置は、制御部101、画像記憶部102、レイ制御部103、CG制御部104、描画部105、通信部106を有する。そして、情報処理装置は、例えば、カメラ107の撮像を制御する撮像制御部と、ディスプレイ108の表示を制御する表示制御部をさらに有する。
【0026】
(操作デバイスについて)
操作デバイス160は、ユーザの手に装着されるコントローラである。図1に示すように、操作デバイス160は、通信部109とOTP110を有する。
【0027】
通信部109は、OTP110が検出した位置情報(OTP情報)を表示装置150に送信する。通信部109は、通信部106と同様の構成を有している。
【0028】
OTP110は、ユーザによるタッチ操作を受け付けることが可能なタッチ操作部材(オプティカル・トラックパッド)である。OTP110は、ユーザのタッチした位置の情報(位置情報)を検出する。
【0029】
図9Bは、操作デバイス160を実現するためのハードウェアを示す図である。図1に示す操作デバイス160の各処理部は、CPU904の制御により実現される。CPU904は、ROM906に格納されたプログラムを、RAM905に展開して実行することにより、操作デバイス160の各処理部の少なくとも一部として動作する。
【0030】
図2Aは、表示装置150と操作デバイス160とユーザの手との位置関係を示す図である。図2Aに示すように、ユーザの頭部に表示装置150が装着されており、ユーザの手201に操作デバイス160が装着される。操作デバイス160の形状は、例えば、図2Bに示すようにリング状(指輪型)である。操作デバイス160の形状は、ユーザが操作デバイス160を保持しやすい(または、装着しやすい)形状であれば、任意の形状であってよい。操作デバイス160の表面には、OTP110が配置されている。ユーザは、OTP110を触れることにより、タッチ操作を行うことができる。
【0031】
図3は、ユーザの手201とCG301との位置関係を示している。また、図3では、ユーザの手201の中心位置を原点305として、x軸方向302、y軸方向303、z軸方向304を定義している。本実施形態では、動作モードの切り替えを行うか否かを判定するために、CG301の中心点306と原点305との直線を結ぶ線における角度Θ(線とxy平面との間の角度)および、仰角φ(線とxz平面との間の角度)が算出される。角度Θおよび仰角φは、三角関数を用いて求めることができる。すなわち、ユーザの手の絶対位置のxyz座標、およびCGの絶対位置のxyz座標が分かれば、ユーザの手の絶対位置が原点であると考えることにより、ユーザの手(原点305)からの角度Θ、仰角φが算出可能である。
【0032】
図4Aおよび図4Bは、動作モードの切り替えを行うか否かを判定するためのデータリストである。図4Aに示すデータリスト(CGデータリスト)は、CG(CGを表示するためのアプリケーションによって管理されるCG)ごとに、CGの絶対位置、およびユーザの手からの角度Θと仰角φとの組み合わせを示している。なお、CGデータリスト(またはCGを表示するためのアプリケーション)は、各CGの絶対位置の初期情報を予め格納している。
【0033】
図4Aは、CG1が座標(x1,y1,z1)の絶対位置に配置されていることを示している。同様に、図4Aは、CG2~CG9が座標(x2,y2,z2)~(x9,y9,z9)の絶対位置のそれぞれに配置されていることを示している。ここで、ユーザの手の絶対位置が座標(x0,y0,z0)の位置であれば、ユーザの手の位置である原点に
対するCG1の相対位置は、座標(x1-x0,y1-y0,z1-z0)と表現できる。
【0034】
なお、図3を用いて説明したように、CG1の相対位置が把握できれば、ユーザの手の位置から見たCG1の角度Θ(=角度Θ1)および仰角φ(=仰角φ1)が算出可能である。同様に、CG2~CG9についても、それぞれの角度Θ(=角度Θ2~Θ9)および仰角φ(=仰角φ2~φ9)が算出可能である。CG制御部104は、ユーザの手の位置または、各CGが移動するたびに、CGデータリストを更新する。
【0035】
図4Bに示すデータリスト(レイデータリスト)は、レイの開始位置(絶対位置)、レイの終了位置(絶対位置)および、レイの伸びる角度Θと仰角φとの組み合わせの関係を示している。なお、レイの開始位置は、ユーザの手の絶対位置である。レイの角度ΘLおよび仰角φLは、レイの開始位置を原点するレイの終点位置の相対位置に基づき、図4Aと同様に算出可能である。なお、レイの終点位置は、レイの手から伸びる先の位置であり、レイが示す位置である。レイ制御部103は、レイの開始位置または終了位置が移動するたびに、レイデータリストを更新する。
【0036】
なお、CGデータリスト(図4Aに示すデータリスト)、およびレイデータリスト(図4Bに示すデータリスト)は、RAM902に格納される。
【0037】
図5は、ディスプレイ108が表示している合成画像(画面)の例を表している。CG501~CG509はそれぞれ、図4のCG1~CG9に該当する。合成画像において、ユーザの手201からレイ510(光線)が伸びている。レイ510の位置およびレイ510が伸びる方向は、ユーザの手の位置および姿勢に応じて制御することができる。そして、ユーザは、レイ510により選択したCGを、ユーザの任意の位置に移動させることができる。図5において、CG501~CG509およびレイ510はCGにより表現された仮想物体であるが、これら以外の物体は、カメラ107により撮影された現実空間における物体である。
【0038】
(CG制御処理について)
図6のフローチャートを参照して、CGを制御するCG制御処理を説明する。なお、図6のフローチャートの処理の開始時において、表示装置150と操作デバイス160とは、起動されている(電源がオン状態にされている)。そして、表示装置150と操作デバイス160は、互いに通信可能な状態にされている。図6のフローチャートの処理の開始時(表示装置150の初期起動時)には、制御部101は、表示装置150の動作モードを「レイ制御モード」に設定する。
【0039】
ステップS601では、制御部101は、カメラ107を制御して、ユーザの手が写る撮像画像(ステレオカメラ画像)を取得して、撮像画像を画像記憶部102に格納する。
【0040】
ステップS602では、制御部101は、レイ制御部103を制御して、撮像画像からユーザの手を検出して、ユーザの手の位置を取得する。具体的には、レイ制御部103は、撮像画像に画像認識の処理を行うことによって、ユーザの手を判定する。また、レイ制御部103は、ステレオ画像法(三角測量法)などの方法により、撮像画像に基づき、カメラ107からユーザの手までの距離を算出する。そして、レイ制御部103は、この距離に基づき、ユーザの手の絶対位置を得ることができる。なお、ユーザの手の位置は、距離センサなどの別のハードウェアが取得した距離の情報を用いて取得(検出)されてもよい。また、レイ制御部103は、ユーザの手の絶対位置の情報に基づき、CGデータリスト(図4Aのデータリスト)を更新する。
【0041】
ステップS603では、制御部101は、レイ制御部103を制御して、レイの始点の絶対位置(始点位置)を決定する。実施形態1では、レイの始点位置は、ユーザの手の位置である。なお、レイの始点位置は、操作デバイス160の位置であってもよい。
【0042】
ステップS604では、制御部101は、レイ制御部103を制御して、レイの終点の絶対位置(終点位置)を決定する。具体的には、レイ制御部103は、ステップS602で検出した手の情報に基づき、レイの終点位置を決定する。レイ制御部103は、例えば、撮像画像から得られる手の向き(またはユーザの中指などの向き)を、レイの方向として決定する。レイ制御部103は、レイの始点位置からレイの方向にレイの長さ分だけ離れた位置を、レイの終点位置として決定する。なお、ステップS608にて説明するが、レイの長さは、ユーザの手の動き(ジェスチャー)によって任意に変更可能であってもよい。レイの長さは、固定の長さであってもよい。
【0043】
また、レイ制御部103は、レイの開始位置または/および終了位置を改めて算出した際には、RAM902に格納されたレイデータリスト(図4Bのデータリスト)を更新する。
【0044】
ステップS605では、制御部101は、CG制御部104を制御して、CGが移動している状態であるか否かを判定する。CGが移動している状態とは、「レイ制御モード」において、ユーザによりCGが選択された状態であり、かつ、CGの選択が解除されていない状態である。CGが移動している状態であると判定された場合には、ステップS606に進む。CGが移動している状態でないと判定された場合には、ステップS607に進む。
【0045】
ステップS606では、制御部101は、CG制御部104を制御して、CGデータリストにおけるCGの絶対位置を更新する。具体的には、CG制御部104は、移動しているCGの絶対位置を、ステップS604で算出したレイの終点位置と同じ位置にするように、CGデータリストにおけるCGの絶対位置を更新する。
【0046】
ステップS607では、制御部101は、CG制御部104を制御して、CGの密集領域(合成画像が表す3次元空間のうちのCGが密集する領域)内にレイが配置されている(密集領域にレイが含まれている)か否かを判定する。レイが密集領域内に配置されていると判定された場合には、「OTP選択モード」の処理を実行するステップS620に進む。レイが密集領域内に配置されていないと判定された場合には、ステップS608に進む。
【0047】
ここで、CG制御部104は、CGデータリストおよびレイデータリストに基づき、レイが密集領域内に配置されているか否かを判定する。例えば、CG制御部104は、レイの向き(レイが伸びる方向)との差分が第1の閾値以下である(または第1の閾値よりも小さい)向きの範囲に含まれるCGの数に応じて、レイが密集領域内に配置されているか否かを判定する。
【0048】
レイが密集領域内に配置されているか否かは、例えば、図4に示すレイの向き(角度ΘL、仰角φL)との差分が第1の閾値(例えば、角度θについては5°、仰角φについては2°)以下である向きの範囲に特定の数のCGが含まれているか否かで判定できる。CG制御部104は、例えば、レイの角度ΘLが60°であり、レイの仰角φLが10°であるとした場合に、角度Θが55°~65°であり、かつ、仰角φが8°~12°である範囲内に、特定の数より多いCGが含まれているか否かを判定する。そして、CG制御部104は、この範囲内に特定の数より多いCGが含まれている場合に、レイが密集領域内に配置されていると判定する。これによれば、複数のCGが、3次元空間において互いに
離れている場合であっても、ディスプレイ108の画面上において互いに近接している場合には、その複数のCGがレイの伸びる方向の近くに存在すれば、レイが密集領域内に配置されていると判定できる。つまり、ディスプレイ108の画面において複数のCGが近接するために、レイによりCGを選択することが容易ではないとユーザが感じる場合には、動作モードが「OTP選択モード」に切り替わる。
【0049】
また、CG制御部104は、レイの終点位置と各CGの位置に基づき、レイの終点位置から第2の閾値(例えば、30cm)以内の範囲に、特定の数より多くのCGが含まれていると判定した場合に、レイが密集領域内に配置されていると判定してもよい。つまり、密集領域とは、CG同士の距離が閾値以内である複数のCGを含む領域であってもよい。
【0050】
ステップS608では、制御部101は、CG制御部104を制御して、ユーザの手のジェスチャーに応じてCGを制御する。具体的には、CG制御部104は、撮像画像に基づきユーザの手の動きを監視して、ユーザの手のジェスチャーに応じてCGを制御する。なお、ここで用いる撮像画像は、1枚の静止画であってもよいが、現在の時刻の所定時間前の時刻から現在の時刻までの映像または時間的に連続した複数枚の静止画であってもよい。CG制御部104は、例えば、撮像画像を監視して、CGを選択するようなジェスチャー(例えば、人差し指で空中を軽くタップするようなジェスチャー)をユーザが行ったと判定した場合に、レイの終点位置に配置されたCGを選択する。同様に、CG制御部104は、CGを置くようなジェスチャー(例えば、全ての指を伸ばすジェスチャー)をユーザが行ったと判定した場合に、CGの選択を解除する(CGの移動を終了させる)。
【0051】
また、ステップS608では、制御部101は、レイ制御部103を制御して、ユーザの手のジェスチャーに応じてレイを制御してもよい。つまり、レイ制御部103は、撮像画像に基づきユーザの手の動きを監視して、ユーザの手のジェスチャーに応じてレイを制御してもよい。例えば、レイ制御部103は、ユーザがレイを延ばすようなジェスチャー(例えば、人差し指と親指を接触した状態から、特定の速度以上で人差し指と親指を離すジェスチャー)をした場合に、レイの長さを大きくする。一方で、レイ制御部103は、レイを縮ませるようなジェスチャー(例えば、人指し指と親指が状態から、特定の速度以上で人指し指と親指を近づけるジェスチャー)をした場合には、レイの長さを小さくする。なお、レイ制御部103は、レイの長さを変化させた場合には、ステップS604と同様に、レイの終点位置を改めて決定して、図4Bのデータリストを更新してもよい。
【0052】
ステップS609では、制御部101は、描画部105を制御して、撮像画像(3次元空間を表す画像)にCGを描画(配置)する。具体的には、描画部105は、CGデータリスト(図4Aのデータリスト)に示す配置に従って、CGを描画する(CGの描画を更新する)。
【0053】
ステップS610では、制御部101は、描画部105を制御して、撮像画像にレイを描画(配置)する。具体的には、描画部105は、レイデータリスト(図4Bのデータリスト)が示す配置に従って、レイを描画する(レイの描画を更新する)。
【0054】
ステップS611では、制御部101は、CGおよびレイが描画された撮像画像を、合成画像としてディスプレイ108に表示する。
【0055】
ステップS612では、制御部101は、「レイ制御モード」を終了するか否かを判定する。「レイ制御モード」を終了すると判定された場合には、本フローチャートの処理が終了する。「レイ制御モード」を終了しないと判定された場合には、ステップS601に進む。制御部101は、例えば、ユーザから「レイ制御モード」を終了する指示を受けた場合に、「レイ制御モード」を終了すると判定する。
【0056】
(OTP選択モードにおける処理)
図7は、「OTP選択モード」の処理(ステップS620の処理)の詳細を示すフローチャートである。ステップS620が開始されると、制御部101は、表示装置150の動作モードを「OTP選択モード」に切り替える。
【0057】
ステップS701では、制御部101は、描画部105を制御して、合成画像においてレイが描画(表示)されている場合には、合成画像におけるレイを非表示にする(レイを表示しないようにする)。これにより、OTP110に対するタッチ操作によるCGの選択をレイの表示が阻害することを防止することができる。
【0058】
ステップS702では、制御部101は、CG制御部104を制御して、密集領域に含まれる複数のCGの中から、1つのCGを選択する。例えば、前回の「OTP選択モード」においてユーザに選択されたCGの位置(移動前の位置)が記憶されていれば、CG制御部104は、そのCGの移動前の位置に隣接するCG(次の位置にあるCG)を選択する。これによれば、例えば、密集しているCGのうちの複数のCGをユーザが移動したい場合などに、1つのCGを移動させた後に、直ぐに隣接するCGを選択できるので、効率よく複数のCGの移動を実現することができる。また、CG制御部104は、「レイ制御モード」の終了時(「レイ制御モード」から「OTP選択モード」への切り替え直前)におけるレイが示す位置(終点位置)に最も近いCGを選択してもよい。また、ステップS702では、制御部101は、描画部105を制御して、CG制御部104が選択したCGを示す選択枠を合成画像に描画する(図8C参照)。
【0059】
ステップS703では、制御部101は、通信部106を制御して、OTP110におけるタッチの位置情報(OTP情報)を、通信部109を介して操作デバイス160から取得する。なお、通信部106がタッチの位置情報を操作デバイス160から取得することは、動作モードが「レイ制御モード」である場合にも行われてもよい。一方で、通信部106がタッチの位置情報を操作デバイス160から取得することは、動作モードが「レイ制御モード」である場合には行われずに、動作モードが「OTP選択モード」である場合にのみ行われてもよい。これによれば、ユーザがレイによってCGの選択または移動をしたい場合に、タッチの位置情報に基づきCGの制御がされることを防ぐことができる。つまり、表示装置150におけるユーザの利便性が向上する。
【0060】
ステップS704では、制御部101は、CG制御部104を制御して、選択しているCGを切り替えるか否かを判定する。選択しているCGを切り替えると判定された場合には、ステップS705に進む。選択しているCGを切り替えないと判定された場合には、ステップS706に進む。
【0061】
CG制御部104は、例えば、ステップS703にて取得したユーザのタッチした位置情報を、時系列順に蓄積する。そして、CG制御部104は、蓄積した位置情報の時系列変化に基づき、OTP110に接触したユーザの指がスライドしている(ユーザによりスライド操作がされている)と判定した場合には、選択しているCGを切り替えると判定する。
【0062】
ステップS705では、制御部101は、CG制御部104を制御して、選択しているCGを切り替える。具体的には、CG制御部104は、OTP110に接触したユーザの指がスライドしている方向(操作方向)を判定する。CG制御部104は、現在選択しているCGから操作方向に最も近いCGを、新たに選択する。また、ステップS705では、制御部101は、描画部105を制御して、選択したCGを示す選択枠を描画する(選択枠を移動させる)。
【0063】
ステップS706では、制御部101は、「OTP選択モード」を終了するか否かを判定する。「OTP選択モード」を終了すると判定された場合には、制御部101が動作モードを「OTP選択モード」から「レイ制御モード」に切り替えて、その後、ステップS601に進む。「OTP選択モード」を終了しないと判定された場合には、ステップS703に進む。
【0064】
制御部101は、例えば、ステップS704と同様にユーザのタッチした位置情報の蓄積情報に基づき、ユーザがタップしているか否かを判定する。制御部101は、ユーザがタップしていると判定した場合には、CGの選択が確定されたと判定するとともに、「OTP選択モード」を終了すると判定する。なお、制御部101は、ユーザにより「OTP選択モード」のキャンセルの指示を受け付けた(いずれのCGも選択しないことを決定した)場合にも、「OTP選択モード」を終了すると判定してもよい。
【0065】
図8A図8Eは、表示装置150の動作モードが「レイ制御モード」から「OTP選択モード」へ切り替わり、その後、「レイ制御モード」に戻る際の合成画像(ディスプレイ108の画面)の例を示している。図8A図8Eは、順に、時系列に従った合成画像の変化を表している。
【0066】
図8Aは、「レイ制御モード」において、ユーザの手からレイ801が出ている状態での合成画像を示す。
【0067】
図8Bは、レイ801がCGの密集領域802に移動している最中の状態での合成画像を示す。なお、図8Bにおける点線枠は、密集領域802を表すために記載しており、実際には合成画像に表示されていなくてもよい。図8C図8Eにおける点線枠も、図8Bにおける点枠線と同様である。
【0068】
図8Cは、動作モードが「OTP選択モード」に切り替わった時点における合成画像を示す。レイが密集領域802に移動すると、動作モードが「レイ制御モード」から「OTP選択モード」に切り替わる。密集領域802に含まれる複数のCGのうち、選択されている1つのCGに選択枠803が表示されている。このとき、レイ801は非表示にされる。このため、ユーザの手は、図8Cに示す位置にある必要はなく、自由な位置において操作デバイス160のOTP110を操作していてもよい。
【0069】
図8Dは、「OTP選択モード」においてユーザがOTP110を操作して、選択枠803の位置(選択しているCG)を右のCGに(図8Cにおける選択枠803が示すCGの1つ右のCGに)移動させた状態での合成画像を示す。
【0070】
図8Eは、ユーザがOTP110を操作してCGを選択した後に、レイ801を用いてCGを移動させている状態である。なお、ユーザによるCGの選択が確定すると、「OTP選択モード」から「レイ制御モード」に遷移する。
【0071】
実施形態1によれば、表示装置150は、合成画像が表す3次元空間における密集領域にレイが配置された場合には、CGの選択をOTPに対する操作により行われるようにする。OTPを用いることによれば、手の動きに応じて動作するレイよりも、正確な指示が容易に可能になるため、CG(対象物)を正確かつ容易に選択することが可能になる。このため、レイが密集領域に配置されている場合において、ユーザの利便性が向上する。
【0072】
一方で、密集領域にレイが配置されていない場合には、レイによるCGの移動および選択が可能である。これによれば、例えば、レイは合成画像(ディスプレイ108)の全て
の範囲を自由かつ迅速に動くことが可能であるため、OTPに対する操作によってCGを移動させる場合よりも、早い時間でCGを長い距離移動させることが可能になる。また、レイによってCGを選択することによれば、或るCGを選択した後に、そのCGから離れた位置にある他のCGを選択することが容易に実現できる。
【0073】
<変形例1>
実施形態1では、情報処理システム1は、ユーザの手が写る撮像画像(ステレオ画像)から検出されたユーザの手の位置および姿勢に応じてレイを制御する。一方で、情報処理システム1は、手に保持(装着)された操作デバイス160の位置および姿勢を手の位置および姿勢として用いて、レイを制御してもよい。
【0074】
この場合には、例えば、情報処理システム1は、操作デバイス160が写る撮像画像または/および操作デバイス160が有する慣性センサ(IMU;加速度センサおよび角速度センサ)の測定値から、操作デバイス160の位置および姿勢を検出する。そして、情報処理システム1は、検出した位置および姿勢に基づき、図4Aおよび図4Bに示すデータリストを更新することや、レイの開始位置、終了位置を判定することを行う。
【0075】
<変形例2>
なお、密集領域にレイが配置されている場合だけではなく、ユーザが設定した領域にレイ(レイの終点位置)が配置されている場合に、動作モードが「OTP選択モード」に切り替わってもよい。また、撮像画像のうちユーザから見てCGと背景とが識別しにくい領域(例えば色が類似する領域)にレイ(レイの終点位置)が配置されている場合にも、動作モードが「OTP選択モード」に切り替わってもよい。
【0076】
さらには、レイの代わりに、レイの終了位置に相当する位置のみに表示アイテムを表示するようなポインタ(表示アイテム)を用いてもよい。OTPの代わりに、ダイヤルまたは4方向キーなどの操作部材(ユーザと操作部材との接触を伴うユーザの操作により方向を指示可能な操作部材)を用いてもよい。
【0077】
また、上記では、複数のCG(仮想物体)から1つのCGを選択する例を説明した。しかし、上記の実施形態および変形例は、CGではなく、現実空間に存在する複数の対象物(物体または人)から1つの対象物を選択する例にも適用可能である。
【0078】
また、上記において、「AがB以上の場合にはステップS1に進み、AがBよりも小さい(低い)場合にはステップS2に進む」は、「AがBよりも大きい(高い)場合にはステップS1に進み、AがB以下の場合にはステップS2に進む」と読み替えてもよい。逆に、「AがBよりも大きい(高い)場合にはステップS1に進み、AがB以下の場合にはステップS2に進む」は、「AがB以上の場合にはステップS1に進み、AがBよりも小さい(低い)場合にはステップS2に進む」と読み替えてもよい。このため、矛盾が生じない限り、「A以上」という表現は、「AまたはAよりも大きい(高い;長い;多い)」と置き換えてもよいし、「Aよりも大きい(高い;長い;多い)」と読み替えてよく、置き換えてもよい。一方で、「A以下」という表現は、「AまたはAよりも小さい(低い;短い;少ない)」と置き換えてもよいし、「Aよりも小さい(低い;短い;少ない)」と置き換えても読み替えてもよい。そして、「Aよりも大きい(高い;長い;多い)」は、「A以上」と読み替えてもよく、「Aよりも小さい(低い;短い;少ない)」は「A以下」と読み替えてもよい。
【0079】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【0080】
なお、上記の各実施形態(各変形例)の各機能部は、個別のハードウェアであってもよいし、そうでなくてもよい。2つ以上の機能部の機能が、共通のハードウェアによって実現されてもよい。1つの機能部の複数の機能のそれぞれが、個別のハードウェアによって実現されてもよい。1つの機能部の2つ以上の機能が、共通のハードウェアによって実現されてもよい。また、各機能部は、ASIC、FPGA、DSPなどのハードウェアによって実現されてもよいし、そうでなくてもよい。例えば、装置が、プロセッサと、制御プログラムが格納されたメモリ(記憶媒体)とを有していてもよい。そして、装置が有する少なくとも一部の機能部の機能が、プロセッサがメモリから制御プログラムを読み出して実行することにより実現されてもよい。
【0081】
(その他の実施形態)
本発明は、上記の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0082】
上記の実施形態の開示は、以下の構成、方法、およびプログラムを含む。
[構成1]
ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示アイテムを表示するように表示手段を制御する表示制御手段と、
前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定手段と、
前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御手段と、
を有することを特徴とする情報処理装置。
[構成2]
前記制御手段は、前記特定の表示アイテムの向きとの差分が第1の閾値より小さい向きの範囲に特定の数より多くの対象物が存在する場合には、前記特定の領域に前記特定の表示アイテムが含まれると判定する、
ことを特徴とする構成1に記載の情報処理装置。
[構成3]
前記制御手段は、前記特定の表示アイテムが示す位置との距離が第2の閾値より短い範囲に特定の数より多くの対象物が存在する場合には、前記特定の領域に前記特定の表示アイテムが含まれると判定する、
ことを特徴とする構成1に記載の情報処理装置。
[構成4]
前記制御手段は、前記第2のモードにおいて、1)前回の前記第2のモードにおいて選択した対象物の位置に隣接していた対象物を選択し、2)前記特定の操作部材に対する操作に応じて選択する対象物を切り替える、
ことを特徴とする構成1から3のいずれか1項に記載の情報処理装置。
[構成5]
前記制御手段は、前記第2のモードにおいて、1)前記動作モードが前記第1のモードから前記第2のモードに切り替わる直前において前記特定の表示アイテムが示す位置に最も近い対象物を選択し、2)前記特定の操作部材に対する操作に応じて選択する対象物を切り替える、
ことを特徴とする構成1から3のいずれか1項に記載の情報処理装置。
[構成6]
前記第2のモードにおいて前記特定の操作部材に対する操作の情報を取得する取得手段
をさらに有し、
前記取得手段は、前記第1のモードにおいて前記特定の操作部材に対する操作の情報を取得しない、
ことを特徴とする構成1から5のいずれか1項に記載の情報処理装置。
[構成7]
前記制御手段は、前記第2のモードにおいて前記複数の対象物のうちいずれかを選択したことを確定すると、前記動作モードを前記第1のモードに切り替える、
ことを特徴とする構成1から6のいずれか1項に記載の情報処理装置。
[構成8]
前記制御手段は、前記第2のモードにおいて前記複数の対象物のうちいずれかを選択しないことを決定すると、前記動作モードを前記第1のモードに切り替える、
ことを特徴とする構成1から7のいずれか1項に記載の情報処理装置。
[構成9]
前記表示制御手段は、前記第2のモードでは、前記特定の表示アイテムを表示しないように制御する、
ことを特徴とする構成1から8のいずれか1項に記載の情報処理装置。
[構成10]
前記特定の表示アイテムは、前記ユーザの手から伸びる仮想的な光線であり、前記手から光線が伸びる先の位置を示す、
ことを特徴とする構成1から9のいずれか1項に記載の情報処理装置。
[構成11]
前記第1のモードは、前記ユーザの手が写る撮像画像から検出された前記手の動きに基づき前記特定の表示アイテムおよび前記複数の対象物を制御可能な動作モードである、
ことを特徴とする構成1から10のいずれか1項に記載の情報処理装置。
[構成12]
前記特定の操作部材を含む操作デバイスが、前記ユーザの手に装着されており、
前記ユーザの手の位置および姿勢は、前記操作デバイスの位置および姿勢である、
ことを特徴とする構成1から11のいずれか1項に記載の情報処理装置。
[構成13]
前記情報処理装置の起動時の動作モードは、前記第1のモードである、
ことを特徴とする構成1から12のいずれか1項に記載の情報処理装置。
[方法]
ユーザの手の位置および姿勢に基づき、複数の対象物を含む3次元空間に特定の表示アイテムを表示するように表示手段を制御する表示制御ステップと、
前記複数の対象物のうちのいずれかを前記特定の表示アイテムの位置に基づき制御可能な第1のモードに、動作モードを設定する設定ステップと、
前記3次元空間における特定の領域に前記特定の表示アイテムが含まれると判定する場合には、特定の操作部材に対する操作に応じて前記複数の対象物のうちのいずれかを選択可能な第2のモードに、前記動作モードを切り替える制御ステップと、
を有することを特徴とする情報処理方法。
[プログラム]
コンピュータを、構成1から13のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【符号の説明】
【0083】
150:表示装置(情報処理装置)、101:制御部(設定部)、
105:描画部(表示制御部)、108:ディスプレイ(表示部)
図1
図2
図3
図4
図5
図6
図7
図8
図9