JP2025041209A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2025041209A JP2025041209A JP2023148361A JP2023148361A JP2025041209A JP 2025041209 A JP2025041209 A JP 2025041209A JP 2023148361 A JP2023148361 A JP 2023148361A JP 2023148361 A JP2023148361 A JP 2023148361A JP 2025041209 A JP2025041209 A JP 2025041209A
- Authority
- JP
- Japan
- Prior art keywords
- movement
- ray
- amount
- distance
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Position Input By Displaying (AREA)
Abstract
Description
本発明は、情報処理装置に関し、特に表示アイテムを用いて位置を指定する操作の操作性を向上させる技術に関する。
コンピュータによって作られた仮想世界(仮想空間)をあたかも現実世界(現実空間)ようにユーザーに体験させる技術が知られており、この技術は仮想現実(Virtual
Reality:VR)技術と呼ばれている。仮想オブジェクト(Computer Graphic:CG)によって現実世界を拡張する技術も知られており、この技術は拡張現実(Augmented Reality:AR)技術と呼ばれている。VR技術とAR技術は、例えば、様々なゲームおよびシミュレーションに利用されている。
Reality:VR)技術と呼ばれている。仮想オブジェクト(Computer Graphic:CG)によって現実世界を拡張する技術も知られており、この技術は拡張現実(Augmented Reality:AR)技術と呼ばれている。VR技術とAR技術は、例えば、様々なゲームおよびシミュレーションに利用されている。
VR技術およびAR技術では、ユーザーが体験する3次元空間(仮想空間、または拡張(複合)現実空間)内の位置を指定するために、レイと呼ばれる表示アイテム(仮想オブジェクト)が使用されることがある。レイは操作体から3次元空間内のオブジェクトに伸びる光線のような仮想オブジェクトであり、操作体の動き(位置と姿勢の少なくとも一方)の変化によってレイの始点と方向の少なくとも一方が変わる。レイの始点と方向の少なくとも一方が変わることによって、レイの終点(レイによる指定位置)も変わる。
特許文献1には、ディスプレイにカーソルを表示し、ディスプレイから離れた入力ペンの動きに合わせてカーソルを移動させ、入力ペンがディスプレイから遠いほど高い強度でカーソルの位置の平均化処理を行う技術が開示されている。入力ペンがディスプレイから遠いほど高い強度でカーソルの位置の平均化処理を行うことによって、手ぶれによるカーソルの揺れを低減することができる。
しかしながら、特許文献1に開示の技術では、ユーザーがカーソルを大きく移動させたい場合に、平均化処理によって入力ペンの動きに対してカーソルの移動が遅れ(入力ペンの動きに対するカーソルの追従性の低下)、ユーザーがもたつきを感じてしまう。
本発明は、表示アイテムによって指定される位置(指定位置)の揺れの低減と、操作体の動きに対する指定位置の高い追従性とを両立させることのできる技術を提供することを目的とする。
本発明の第1の態様は、操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定する決定手段と、前記操作体から前記指定位置までの距離の情報を取得する第1取得手段と、前記指定位置の移動量の情報を取得する第2取得手段と、前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行う処理手段とを有することを特徴とする情報処理装置である。
本発明の第2の態様は、操作体の位置および姿勢に応じて表示アイテムによる指定位置
を決定するステップと、前記操作体から前記指定位置までの距離の情報を取得するステップと、前記指定位置の移動量の情報を取得するステップと、前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行うステップとを有することを特徴とする情報処理方法である。
を決定するステップと、前記操作体から前記指定位置までの距離の情報を取得するステップと、前記指定位置の移動量の情報を取得するステップと、前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行うステップとを有することを特徴とする情報処理方法である。
本発明の第3の態様は、コンピュータを、上記情報処理装置の各手段として機能させるためのプログラムである。
本発明によれば、表示アイテムによって指定される位置(指定位置)の揺れの低減と、操作体の動きに対する指定位置の高い追従性とを両立させることができる。
(実施形態1)
以下、本発明の実施形態1について説明する。実施形態1では、操作体の位置および姿勢に基づいて、表示アイテム(仮想オブジェクト)によって指定される位置(指定位置)を決定する。実施形態1では操作体がユーザーの指(人差し指、第2指)であるとするが、操作体は指に限られず、例えば手、腕、コントローラ、挿し棒、またはペンであってもよい。実施形態1では表示アイテムがレイであるとするが、表示アイテムはレイに限られず、例えば指定位置に配置されるポインタ(カーソル)であってもよい。位置を指定する表示アイテムを表示することによって、ユーザーは、手の届かない位置に配置されたオブジェクトを選択(指定)したり、当該オブジェクト操作したりすることができる。
以下、本発明の実施形態1について説明する。実施形態1では、操作体の位置および姿勢に基づいて、表示アイテム(仮想オブジェクト)によって指定される位置(指定位置)を決定する。実施形態1では操作体がユーザーの指(人差し指、第2指)であるとするが、操作体は指に限られず、例えば手、腕、コントローラ、挿し棒、またはペンであってもよい。実施形態1では表示アイテムがレイであるとするが、表示アイテムはレイに限られず、例えば指定位置に配置されるポインタ(カーソル)であってもよい。位置を指定する表示アイテムを表示することによって、ユーザーは、手の届かない位置に配置されたオブジェクトを選択(指定)したり、当該オブジェクト操作したりすることができる。
レイは、光線のような仮想オブジェクトである。レイの始点は、操作体の位置に設定され、レイの終点(レイによる指定位置)は、光線が3次元空間(ユーザーが体験する3次元空間)内でオブジェクトに接触する位置に設定される。そのため、レイは、操作体から3次元空間内のオブジェクトに伸びる。操作体の動き(位置と姿勢の少なくとも一方)の変化によってレイの始点と方向の少なくとも一方が変わる。レイの始点と方向の少なくとも一方が変わることによって、レイの終点も変わる。レイの終点をユーザーが認識できるように、レイの終点には別の表示アイテム(仮想オブジェクト)を表示してもよい。レイの終点を示す表示アイテムは、例えば、丸または矢印の形状を有するポインタ(カーソル)である。
図1は、実施形態1に係るシステムの機能構成を示すブロック図である。図1のシステムは、情報処理装置1000、頭部装着型表示装置(Head Mounted Display:HMD)1200、および画像表示装置1300を有する。例えば、情報処理装置1000は、パーソナルコンピュータ(PC)またはサーバであり、画像表示装置1300は、PCモニタ、テレビジョン装置、スマートフォン、またはタブレット端末である。情報処理装置1000が行う処理の一部または全部は、HMD1200または画像表示装置1300によって行われてもよい。
情報処理装置1000は、撮像画像取得部1010、位置・姿勢計測部1020、仮想データ保持部1030、仮想空間生成部1130、レイ情報算出部1050、距離算出部1060、移動量算出部1070、移動方向算出部1080、平均化処理部1090、および複合現実画像生成部1140を有する。これら複数の機能部は、パス1110を介して互いに接続されている。
HMD1200は、撮像部1210と画像表示部1220を有する。HMD1200は情報処理装置1000に接続されており、情報処理装置1000とHMD1200の間でデータ通信(データの送受信)を行うことができる。また、情報処理装置1000には画像表示装置1300も接続されており、情報処理装置1000と画像表示装置1300の間でもデータ通信を行うことができる。情報処理装置1000、HMD1200、および画像表示装置1300の接続は特に限定されず、有線接続であってもよいし、無線接続であってもよい。
情報処理装置1000について説明する。
撮像画像取得部1010は、HMD1200の撮像部1210によって撮像された現実空間の画像(現実空間画像)を取得し、位置・姿勢計測部1020、レイ情報算出部1050、および複合現実画像生成部1140に出力する。
位置・姿勢計測部1020は、撮像画像取得部1010によって取得された現実空間画像から特徴点を検出し、特徴点の検出結果に基づいて、HMD1200の位置と姿勢を計測(検出、推定)したり、HMD1200の周囲の環境地図を作成したりする。位置・姿勢計測部1020は、HMD1200の位置・姿勢情報(位置と姿勢を示す情報)と環境地図を、レイ情報算出部1050と複合現実画像生成部1140に出力する。例えば、位置・姿勢計測部1020は、VSLAM(Visual Simultaneous Localization and Mapping)を用いて、位置・姿勢情報と環境地図を取得する。VSLAMは、未知環境下でカメラの自己位置推定と環境地図作成を同時に行う既知の技術である。なお、VSLAMを用いた方法に限られず、例えば赤外光を用いた方法、超音波を用いた方法、または慣性センサを用いた方法によって、位置・姿勢情報と環境地図を取得してもよい。
仮想データ保持部1030は、仮想空間に係るデータ(仮想空間関係データ)を保持し、レイ情報算出部1050と仮想空間生成部1130に出力する。仮想空間関係データは、例えば、仮想空間を構成する仮想オブジェクトに係るデータ(形状情報および位置・姿勢情報)、および仮想空間中に光を照射する光源に係るデータ(種類情報および位置・姿勢情報)を含む。
レイ情報算出部1050は、ユーザーの人差し指(第2指)の位置および姿勢に応じて、レイの始点、終点、および方向を決定する。実施形態1では、レイ情報算出部1050は、撮像画像取得部1010によって取得された現実空間画像からユーザーの手の関節点を認識(検出)し、関節点の検出結果に基づいて手の位置と姿勢(人差し指の位置と姿勢を含む)を計測(検出、推定)する。レイ情報算出部1050は、位置・姿勢計測部1020によって取得されたHMD1200の位置・姿勢情報と環境地図に基づいて、手の位置と姿勢を示す座標をグローバル座標系にマッピングし、レイの始点と方向を算出する。そして、レイ情報算出部1050は、仮想データ保持部1030から出力された仮想空間関係データと、レイの始点および方向とに基づいて、レイが仮想空間内で仮想オブジェクトに接触する終点(レイによる指定位置)を算出する。レイ情報算出部1050は、レイ情報(レイの始点と終点)を、距離算出部1060、移動量算出部1070、移動方向算出部1080、および平均化処理部1090に出力する。なお、手の関節点の認識方法は
特に限定されず、例えば既知の機械学習によって学習された学習済みモデルを用いて手の関節点を認識してもよい。手の位置と姿勢は、コントローラといったデバイスを用いて計測してもよい。レイの終点は、レイが複合(拡張)現実空間内で現実オブジェクトに接触する位置であってもよい。
特に限定されず、例えば既知の機械学習によって学習された学習済みモデルを用いて手の関節点を認識してもよい。手の位置と姿勢は、コントローラといったデバイスを用いて計測してもよい。レイの終点は、レイが複合(拡張)現実空間内で現実オブジェクトに接触する位置であってもよい。
距離算出部1060は、レイ情報算出部1050によって取得されたレイの始点(始点座標)と終点(終点座標)に基づいて、レイの始点から終点までの距離(レイの長さ、ユーザーの人差し指からレイの終点までの距離)を算出する。そして、距離算出部1060は、算出した距離の情報を平均化処理部1090に出力する。
移動量算出部1070は、レイ情報算出部1050によって取得された最新のレイの終点(終点座標)と過去(例えば前回)のレイの終点とに基づいて、レイの終点の移動量を算出する。そして、移動量算出部1070は、算出した移動量の情報を平均化処理部1090に出力する。
移動方向算出部1080は、レイ情報算出部1050によって取得された最新のレイの終点(終点座標)と過去(例えば前回)のレイの終点とに基づいて、レイの終点の移動方向を算出する。そして、移動方向算出部1080は、算出した移動方向の情報を平均化処理部1090に出力する。
平均化処理部1090は、レイの始点から終点までの距離の情報を距離算出部1060から取得し、レイの終点の移動量の情報を移動量算出部1070から取得し、レイの終点の移動方向の情報を移動方向算出部1080から取得する。そして、平均化処理部1090は、取得したこれらの情報に基づく強度でレイの終点の平均化処理を行う。例えば、平均化処理部1090は、平均化処理を行うか否かをレイの終点の移動量と移動方向に基づいて決定し、平均化処理の強度をレイの始点から終点までの距離に応じて決定する。
実施形態1では、平均化処理部1090は、レイの終点の移動量が閾値よりも小さく且つレイの終点の移動方向が一定でないという条件が満たされているか否かを判定する。平均化処理部1090は、条件が満たされていない場合には、平均化処理を行わず、条件が満たされている場合に、レイの始点から終点までの距離に応じた強度で平均化処理を行う。平均化処理部1090は、平均化処理を行わなかった場合は、レイ情報算出部1050から取得した最新のレイ情報を仮想空間生成部1130に出力し、平均化処理を行った場合は、最新の平均化レイ情報を仮想空間生成部1130に出力する。なお、レイの始点から終点までの距離が長いほどレイの終点の移動量は大きくなりやすいため、当該移動量の閾値として、当該距離が長いほど大きい値を用いてもよい。
平均化処理部1090は、レイ情報算出部1050からレイ情報(レイの始点と終点)を取得する。平均化処理部1090は、平均化処理によって、レイ情報算出部1050から取得した最新の終点(終点座標)を、現在までの参照期間に取得した複数の終点の重心(平均位置)に変換する。これによって、終点が変換された平均化レイ情報が得られる。実施形態1では、平均化処理部1090は、レイの始点から終点までの距離が長いほど長く且つ当該距離が短いほど短い参照期間を設定する。これによって、レイの始点から終点までの距離が長い場合は、平均化処理に使用する終点の数が増やされ、平均化処理が強められる。そして、レイの始点から終点までの距離が短い場合は、平均化処理に使用する終点の数が減らされ、平均化処理が弱められる。
なお、レイの終点の移動量の情報と、レイの終点の移動方向の情報とを個別に取得するとしたが、それらの情報の両方を兼ねた1つの情報を取得してもよい。例えば、レイの終点の動きベクトルを取得してもよい。そして、動きベクトルの周波数特性解析を行って、
レイの終点の動きを推定してもよい。
レイの終点の動きを推定してもよい。
図3(A)~3(C)を用いて、平均化処理部1090の動作の具体例を説明する。
図3(A)は、ユーザーがレイ303によって仮想オブジェクト302を選択または操作している様子を示す。レイ303は、ユーザーの人差し指301の先端(始点304)から、人差し指301が伸びる方向に伸びており、仮想オブジェクト302に到達している。実施形態1では、レイ303と、レイ303の終点(仮想オブジェクト302とレイ303の接触位置)を示すポインタ305(カーソル)とが表示される。距離dは、人差し指301の先端(レイ303の始点304)からポインタ305(レイ303の終点)までの距離である。距離dの場合は、平均化処理において異なる時刻の6つの終点が使用されるとする。なお、レイ303とポインタ305の一方が表示されなくてもよい。
図3(B)は、レイ303の終点の変化を示す。図3(B)では、所定時間ごとに、位置311から位置312、位置312から位置313、位置313から位置314、位置314から位置315、位置315から位置316へと終点が移動している。位置316は最新の終点である。動きベクトルV11は、位置311から位置312までの移動量と移動方向を示し、動きベクトルV12は、位置312から位置313までの移動量と移動方向を示し、動きベクトルV13は、位置313から位置314までの移動量と移動方向を示す。動きベクトルV14は、位置314から位置315までの移動量と移動方向を示し、動きベクトルV15は、位置315から位置316までの移動量と移動方向を示す。
図3(B)は、ユーザーが仮想オブジェクトを選択または操作したい場合を示し、手ぶれによる終点の揺れが発生している場合を示す。図3(B)では、終点の移動量が閾値よりも小さく、終点の移動方向が不規則である。そのため、平均化処理によって、最新の終点が、位置316から、位置311~316の重心317に変換される。
図3(C)は、レイ303の終点の別の変化を示す。図3(C)では、所定時間ごとに、位置321から位置322、位置322から位置323、位置323から位置324、位置324から位置325、位置325から位置326へと終点が移動している。位置326は最新の終点である。動きベクトルV21は、位置321から位置322までの移動量と移動方向を示し、動きベクトルV22は、位置322から位置323までの移動量と移動方向を示し、動きベクトルV23は、位置323から位置324までの移動量と移動方向を示す。動きベクトルV24は、位置324から位置325までの移動量と移動方向を示し、動きベクトルV25は、位置325から位置326までの移動量と移動方向を示す。
図3(C)は、ユーザーがレイ303を1方向に大きく動かしたい(終点を1方向に大きく移動させたい)場合を示す。図3(C)では、位置325から位置326(最新の終点)までの移動量が閾値よりも大きく、位置321~326が1方向に並んでいる(終点の移動方向が一定である)。そのため、平均化処理は行われない。
図1の説明に戻る。仮想空間生成部1130は、平均化処理部1090からレイ情報(レイ情報算出部1050から取得した最新のレイ情報、または最新の平均化レイ情報)を取得し、仮想データ保持部1030から仮想空間関係データを取得する。そして、仮想空間生成部1130は、取得したこれらの情報(データ)に基づいて、レイと、レイの終点を示すポインタ(カーソル)とを含む仮想空間を生成する。仮想空間生成部1130は、生成した仮想空間のデータ(仮想空間データ)を複合現実画像生成部1140に出力する。
複合現実画像生成部1140は、仮想空間生成部1130から仮想空間データを取得し、位置・姿勢計測部1020からHMD1200の位置・姿勢情報と環境地図を取得する。そして、複合現実画像生成部1140は、取得したこれらの情報(データ)に基づいて、仮想空間の画像(仮想空間画像)を生成する。さらに、複合現実画像生成部1140は、撮像画像取得部1010から現実空間画像を取得し、仮想空間画像を現実空間画像に合成(重畳)することによって複合現実空間の画像(複合現実画像)を生成する。複合現実画像生成部1140は、生成した複合現実画像をHMD1200の画像表示部1220に出力する。なお、任意の位置からの見えを表す仮想空間画像の生成、および複合現実空間の生成には、既知の技術を用いることができる。
HMD1200について説明する。撮像部1210は、現実空間を撮像し、撮像画像である現実空間画像を情報処理装置1000の撮像画像取得部1010に出力する。画像表示部1220は、例えば液晶表示パネルまたは有機EL表示パネルを有し、情報処理装置1000の複合現実画像生成部1140によって生成された複合現実画像を表示する。なお、画像表示部1220は、レーザーを用いてユーザーの網膜に画像を直接投影してもよい。複合現実画像生成部1140は、複合現実画像を画像表示部1220と画像表示装置1300に出力してもよく、複合現実画像は、画像表示部1220と画像表示装置1300で表示されてもよい。また、図1には1つの画像表示部1220が示されているが、HMD1200は、画像表示部1220として、右目用の画像表示部(右表示部)と左目用の画像表示部(左表示部)とを有する。右表示部は、HMD1200を頭部に装着したユーザーの右目に対して画像を表示するように設けられており、左表示部は、HMD1200を頭部に装着したユーザーの左目に対して画像を表示するように設けられている。ユーザーが画像を立体視することができるように、視差のある2つの画像を2つの画像表示部(右表示部と左表示部)にそれぞれ表示するステレオ表示を行ってもよい。
図2は、情報処理装置1000のハードウェア構成を示すブロック図である。CPU2010は、バス2000を介して接続された各デバイスを統括的に制御する。CPU2010は、読み出し専用メモリ(ROM)2020に格納されたプログラムを読み出して実行する。オペレーティングシステム、後述するフローチャートの処理プログラム、およびデバイスドライバといった様々なプログラムがROM2020に記憶されている。これらのプログラムは、ランダムアクセスメモリ(RAM)2030に一時記憶され、CPU2010によって適宜実行される。入力I/F2040は、外部装置(例えば撮像装置または操作装置)からの信号を情報処理装置1000に入力する。入力I/F2040は、外部装置からの信号を、情報処理装置1000で処理可能な形式の信号に適宜変換してもよい。出力I/F2050は、外部装置(例えば表示装置)に信号を出力する。外部装置に出力する信号は、例えば、情報処理装置1000によって生成された信号である。出力I/F2050は、外部装置に出力する信号を、当該外部装置で処理可能な形式の信号に適宜変換してもよい。
図1に示す情報処理装置1000の各機能部は、例えば、CPU2010が、ROM2020に格納されたプログラム(後述するフローチャートの処理プログラム)をRAM2030に展開して実行することによって実現される。なお、図1に示す情報処理装置1000の機能部の一部または全部が、ハードウェア(例えば処理回路)によって実現されてもよい。
図4は、情報処理装置1000の動作を示すフローチャートである。
ステップS401では、位置・姿勢計測部1020は、撮像部1210から撮像画像取得部1010を介して現実空間画像を取得し、現実空間画像に基づいて、HMD1200の位置と姿勢の計測と、HMD1200の周囲の環境地図の作成とを行う。そして、ステ
ップS402に進む。
ップS402に進む。
ステップS402では、レイ情報算出部1050は、現実空間画像、ステップS401で取得された情報(HMD1200の位置・姿勢情報と環境地図)、および仮想空間関係データに基づいて、人差し指の位置と姿勢を計測して、レイの始点と終点を算出する。そして、ステップS403に進む。
ステップS403では、距離算出部1060は、ステップS402で算出されたレイの始点から終点までの距離(人差し指から終点までの距離)を算出する。そして、ステップS404に進む。
ステップS404では、移動量算出部1070は、ステップS402で算出された最新のレイの終点と前回のレイの終点との間における終点の移動量を算出する。さらに、移動方向算出部1080は、最新のレイの終点と前回のレイの終点との間における終点の移動方向を算出する。そして、ステップS405に進む。
ステップS405では、平均化処理部1090は、ステップS404で算出された移動量が閾値よりも小さいか否かを判定する。移動量が閾値よりも小さい場合はステップS406に進み、そうでない場合はステップS408に進む。なお、移動量が閾値と等しい場合にステップS408に進むとしたが、移動量が閾値と等しい場合にステップS406に進んでもよい。
ステップS406では、平均化処理部1090は、ステップS404で算出された移動方向(および過去の移動方向)に基づいて、レイの移動方向が一定であるか否かを判定する。例えば、平均化処理部1090は、前回からの移動方向の変化量が閾値よりも小さい状態が所定回数以上連続しているか否かを判定する。レイの移動方向が一定である場合(前回からの移動方向の変化量が閾値よりも小さい状態が所定回数以上連続している場合)はステップS408に進み、そうでない場合はステップS407に進む。
ステップS407では、平均化処理部1090は、ステップS403で算出された距離に応じた強度で、レイの終点の平均化処理を行う。そして、ステップS408に進む。
ステップS408では、仮想空間生成部1130は、最新のレイ情報と、仮想空間関係データとに基づいて、レイと、レイの終点を示すポインタとを含む仮想空間を生成する。ステップS407を通らなかった場合は、ステップS402で取得されたレイ情報(ステップS402で算出された始点と終点を示すレイ情報)が使用される。ステップS407を通った場合は、ステップS402で取得されたレイ情報の終点を平均化処理によって変換した平均化レイ情報が使用される。そして、ステップS409に進む。
ステップS409では、複合現実画像生成部1140は、ステップS408で生成された仮想空間と、ステップS401で取得された情報(HMD1200の位置・姿勢情報と環境地図)とに基づいて、仮想空間画像を生成する。さらに、複合現実画像生成部1140は、撮像部1210から撮像画像取得部1010を介して現実空間画像を取得し、仮想空間画像を現実空間画像に合成(重畳)することによって複合現実画像を生成する。複合現実画像生成部1140は、生成した複合現実画像をHMD1200の画像表示部1220(および画像表示部1220)に出力する。そして、ステップS410に進む。
ステップS410では、CPU2010は、図4の動作の終了条件が満たされたか否かを判定する。終了条件は、例えば、ユーザーから図4の動作の終了が指示されたという条件である。終了条件が満たされた場合は図4の動作が終了し、そうでない場合はステップ
S401に進む。
S401に進む。
以上説明したように、実施形態1によれば、表示アイテムによって指定される位置(指定位置)の揺れの低減と、操作体の動きに対する指定位置の高い追従性とを両立させることができる。
なお、操作体(レイの始点)から指定位置(レイの終点)までの距離、指定位置の移動量、および指定位置の移動方向に基づく強度で平均化処理を行うとしたが、平均化処理の方法(強度の決定方法)はこれに限られない。例えば、移動方向を考慮せずに、距離と移動量に基づく強度で平均化処理を行ってもよい。平均化処理を行うか否かを移動量に基づいて決定し、平均化処理の強度を距離に応じて決定してもよい。図4のステップS406を省略してもよい。つまり、移動量が閾値よりも大きい場合には平均化処理を行わず、移動量が閾値よりも小さい場合に、距離に応じた強度で平均化処理を行うとしてもよい。
(実施形態2)
以下、本発明の実施形態2について説明する。なお、以下では、実施形態1と同じ点(例えば、実施形態1と同じ構成および処理)についての説明は省略し、実施形態1と異なる点について説明する。実施形態2では、レイの方向の変動角(操作体から指定位置までの方向の変化量)をさらに考慮する。レイの方向は、レイの始点(始点座標)と終点(終点座標)から算出してもよいが、実施形態2では、レイ情報が、レイの始点、終点、および方向を示すとする。
以下、本発明の実施形態2について説明する。なお、以下では、実施形態1と同じ点(例えば、実施形態1と同じ構成および処理)についての説明は省略し、実施形態1と異なる点について説明する。実施形態2では、レイの方向の変動角(操作体から指定位置までの方向の変化量)をさらに考慮する。レイの方向は、レイの始点(始点座標)と終点(終点座標)から算出してもよいが、実施形態2では、レイ情報が、レイの始点、終点、および方向を示すとする。
図5は、実施形態2に係るシステムの機能構成を示すブロック図である。図5のシステムは、情報処理装置5000、HMD1200、および画像表示装置1300を有する。情報処理装置5000は、撮像画像取得部1010、位置・姿勢計測部1020、仮想データ保持部1030、仮想空間生成部1130、レイ情報算出部1050、距離算出部1060、移動量算出部1070、移動方向算出部1080、変動角算出部5100、平均化処理部5090、および複合現実画像生成部1140を有する。これら複数の機能部は、パス1110を介して互いに接続されている。
変動角算出部5100は、レイ情報算出部1050によって取得された最新のレイの方向と過去(例えば前回)のレイの方向とに基づいて、レイの方向の変動角を算出する。そして、変動角算出部5100は、算出した変動角の情報を平均化処理部5090に出力する。
図6を用いて、変動角算出部5100によって算出される変動角の具体例を説明する。ここでは、人差し指の先端(レイの始点)からポインタ(レイの終点)までの距離が一定であるとする。図6は、ユーザーがレイによって仮想オブジェクト602を選択または操作している様子を示す。ユーザーは、人差し指601を下向きから上向きに動かしている。レイ606は、前回のレイであり、人差し指601の先端(始点607)から、人差し指601が伸びる方向に伸びており、仮想オブジェクト602に到達している。ポインタ608(カーソル)は、前回のポインタであり、レイ606の終点(仮想オブジェクト602とレイ606の接触位置)を示す。レイ603は、最新のレイであり、人差し指601の先端(始点604)から、人差し指601が伸びる方向に伸びており、仮想オブジェクト602に到達している。ポインタ605(カーソル)は、最新のポインタであり、レイ603の終点(仮想オブジェクト602とレイ603の接触位置)を示す。レイ609は、レイ606の始点607がレイ603の始点604と一致するように、レイ606を平行移動したものである。変動角算出部5100では、例えば、レイ603とレイ609(レイ606)の間の角度Θが変動角として算出される。ユーザーがレイを大きく動かしたい場合は、そうでない場合に比べて、変動角Θが大きくなりやすい。
平均化処理部5090は、実施形態1の平均化処理部1090と同様に、距離(レイの長さ)の情報を距離算出部1060から取得し、レイの移動量の情報を移動量算出部1070から取得し、レイの移動方向の情報を移動方向算出部1080から取得する。さらに、平均化処理部5090は、レイの方向の変動角の情報を変動角算出部5100から取得する。そして、平均化処理部5090は、取得したこれらの情報に基づく強度でレイの終点の平均化処理を行う。例えば、平均化処理部5090は、平均化処理を行うか否かをレイの終点の移動量、レイの終点の移動方向、およびレイの方向の変動角に基づいて決定し、平均化処理の強度をレイの始点から終点までの距離に応じて決定する。
実施形態2では、平均化処理部5090は、レイの終点の移動量が閾値よりも小さく且つレイの終点の移動方向が一定でなく且つレイの方向の変動角が閾値よりも小さいという条件が満たされているか否かを判定する。平均化処理部5090は、条件が満たされていない場合には、平均化処理を行わず、条件が満たされている場合に、レイの始点から終点までの距離に応じた強度で平均化処理を行う。平均化処理部5090は、平均化処理を行わなかった場合は、レイ情報算出部1050から取得した最新のレイ情報を仮想空間生成部1130に出力し、平均化処理を行った場合は、最新の平均化レイ情報を仮想空間生成部1130に出力する。
図7は、情報処理装置5000の動作を示すフローチャートである。ステップS701~S704は、実施形態1(図4)のステップS401~S404と同じである。ステップS704の次にステップS711に進む。なお、ステップS702では、レイの方向も算出される。
ステップS711では、変動角算出部5100は、ステップS702で算出されたレイの方向と前回のレイの方向との間の角度を、レイの方向の変動角として算出する。そして、ステップS712に進む。
ステップS712では、平均化処理部5090は、ステップS711で算出された変動角が閾値よりも小さいか否かを判定する。変動角が閾値よりも小さい場合はステップS705に進み、そうでない場合はステップS708に進む。なお、変動角が閾値と等しい場合にステップS708に進むとしたが、変動角が閾値と等しい場合にステップS705に進んでもよい。
ステップS705~S710は、実施形態1(図4)のステップS405~S410と同じである。
以上説明したように、実施形態2によれば、レイの方向の変動角(操作体から指定位置までの方向の変化量)をさらに考慮することによって、ユーザーの意図に合った動作をより高精度に実現することができる(操作性をより向上させることができる)。
なお、上記実施形態(変形例を含む)はあくまで一例であり、本発明の要旨の範囲内で上記実施形態の構成を適宜変形したり変更したりすることにより得られる構成も、本発明に含まれる。上記実施形態の構成を適宜組み合わせて得られる構成も、本発明に含まれる。
例えば、上述した各種閾値は予め定められた固定値であってもよいし、ユーザーが指定した値(変更可能な値)であってもよいし、情報処理装置によって決定された値(変更可能な値)であってもよい。現実空間画像に仮想空間画像を合成(重畳)した複合現実画像を表示するビデオシースルー型のHMDを用いる例を説明したが、画像ではない現実空間
を直接観察することが可能な光学シースルー型のHMDを用いてもよい。
を直接観察することが可能な光学シースルー型のHMDを用いてもよい。
また、本発明は様々なシーンに適用可能である。例えば、HMDではなく、スマートフォンまたはタブレット端末を用いるシーンにも、本発明は適用可能である。電子ホワイトボードのような表示装置の表示面上の位置を指定するシーンにも、本発明は適用可能である。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本実施形態の開示は、以下の構成、方法、およびプログラムを含む。
(構成1)
操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定する決定手段と、
前記操作体から前記指定位置までの距離の情報を取得する第1取得手段と、
前記指定位置の移動量の情報を取得する第2取得手段と、
前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行う処理手段と
を有することを特徴とする情報処理装置。
(構成2)
前記表示アイテムは、前記操作体から前記指定位置に伸びるレイである
ことを特徴とする構成1に記載の情報処理装置。
(構成3)
前記表示アイテムは、前記指定位置に配置されるポインタである
ことを特徴とする構成1に記載の情報処理装置。
(構成4)
前記処理手段は、前記平均化処理を行うか否かを前記移動量に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする構成1~3のいずれかに記載の情報処理装置。
(構成5)
前記処理手段は、
前記移動量が閾値よりも大きい場合には前記平均化処理を行わず、
前記移動量が前記閾値よりも小さい場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする構成1~4のいずれかに記載の情報処理装置。
(構成6)
前記指定位置の移動方向の情報を取得する第3取得手段をさらに有し、
前記処理手段は、前記距離、前記移動量、および前記移動方向に基づく強度で前記平均化処理を行う
ことを特徴とする構成1~4のいずれかに記載の情報処理装置。
(構成7)
前記処理手段は、前記平均化処理を行うか否かを前記移動量と前記移動方向に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする構成6に記載の情報処理装置。
(構成8)
前記処理手段は、
前記移動量が閾値よりも大きい場合と、前記移動方向が一定である場合とのそれぞれにおいて前記平均化処理を行わず、
前記移動量が前記閾値よりも小さく且つ前記移動方向が一定でない場合に、前記距離
に応じた強度で前記平均化処理を行う
ことを特徴とする構成6または7に記載の情報処理装置。
(構成9)
前記操作体から前記指定位置までの方向の変化量の情報を取得する第4取得手段をさらに有し、
前記処理手段は、前記距離、前記移動量、前記移動方向、および前記変化量に基づく強度で前記平均化処理を行う
ことを特徴とする構成6または7に記載の情報処理装置。
(構成10)
前記処理手段は、前記平均化処理を行うか否かを前記移動量、前記移動方向、および前記変化量に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする構成9に記載の情報処理装置。
(構成11)
前記処理手段は、
前記移動量が第1閾値よりも大きい場合、前記移動方向が一定である場合、および前記変化量が第2閾値よりも大きい場合のそれぞれにおいて前記平均化処理を行わず、
前記移動量が前記第1閾値よりも小さく且つ前記移動方向が一定でなく且つ前記変化量が前記第2閾値よりも小さい場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする構成9または10に記載の情報処理装置。
(方法)
操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定するステップと、
前記操作体から前記指定位置までの距離の情報を取得するステップと、
前記指定位置の移動量の情報を取得するステップと、
前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行うステップと
を有することを特徴とする情報処理方法。
(プログラム)
コンピュータを、構成1~11のいずれかに記載の情報処理装置の各手段として機能させるためのプログラム。
(構成1)
操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定する決定手段と、
前記操作体から前記指定位置までの距離の情報を取得する第1取得手段と、
前記指定位置の移動量の情報を取得する第2取得手段と、
前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行う処理手段と
を有することを特徴とする情報処理装置。
(構成2)
前記表示アイテムは、前記操作体から前記指定位置に伸びるレイである
ことを特徴とする構成1に記載の情報処理装置。
(構成3)
前記表示アイテムは、前記指定位置に配置されるポインタである
ことを特徴とする構成1に記載の情報処理装置。
(構成4)
前記処理手段は、前記平均化処理を行うか否かを前記移動量に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする構成1~3のいずれかに記載の情報処理装置。
(構成5)
前記処理手段は、
前記移動量が閾値よりも大きい場合には前記平均化処理を行わず、
前記移動量が前記閾値よりも小さい場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする構成1~4のいずれかに記載の情報処理装置。
(構成6)
前記指定位置の移動方向の情報を取得する第3取得手段をさらに有し、
前記処理手段は、前記距離、前記移動量、および前記移動方向に基づく強度で前記平均化処理を行う
ことを特徴とする構成1~4のいずれかに記載の情報処理装置。
(構成7)
前記処理手段は、前記平均化処理を行うか否かを前記移動量と前記移動方向に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする構成6に記載の情報処理装置。
(構成8)
前記処理手段は、
前記移動量が閾値よりも大きい場合と、前記移動方向が一定である場合とのそれぞれにおいて前記平均化処理を行わず、
前記移動量が前記閾値よりも小さく且つ前記移動方向が一定でない場合に、前記距離
に応じた強度で前記平均化処理を行う
ことを特徴とする構成6または7に記載の情報処理装置。
(構成9)
前記操作体から前記指定位置までの方向の変化量の情報を取得する第4取得手段をさらに有し、
前記処理手段は、前記距離、前記移動量、前記移動方向、および前記変化量に基づく強度で前記平均化処理を行う
ことを特徴とする構成6または7に記載の情報処理装置。
(構成10)
前記処理手段は、前記平均化処理を行うか否かを前記移動量、前記移動方向、および前記変化量に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする構成9に記載の情報処理装置。
(構成11)
前記処理手段は、
前記移動量が第1閾値よりも大きい場合、前記移動方向が一定である場合、および前記変化量が第2閾値よりも大きい場合のそれぞれにおいて前記平均化処理を行わず、
前記移動量が前記第1閾値よりも小さく且つ前記移動方向が一定でなく且つ前記変化量が前記第2閾値よりも小さい場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする構成9または10に記載の情報処理装置。
(方法)
操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定するステップと、
前記操作体から前記指定位置までの距離の情報を取得するステップと、
前記指定位置の移動量の情報を取得するステップと、
前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行うステップと
を有することを特徴とする情報処理方法。
(プログラム)
コンピュータを、構成1~11のいずれかに記載の情報処理装置の各手段として機能させるためのプログラム。
1000,5000:情報処理装置 1050:レイ情報算出部
1060:距離算出部 1070:移動量算出部
1090,5090:平均化処理部 2010:CPU
1060:距離算出部 1070:移動量算出部
1090,5090:平均化処理部 2010:CPU
Claims (13)
- 操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定する決定手段と、
前記操作体から前記指定位置までの距離の情報を取得する第1取得手段と、
前記指定位置の移動量の情報を取得する第2取得手段と、
前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行う処理手段と
を有することを特徴とする情報処理装置。 - 前記表示アイテムは、前記操作体から前記指定位置に伸びるレイである
ことを特徴とする請求項1に記載の情報処理装置。 - 前記表示アイテムは、前記指定位置に配置されるポインタである
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理手段は、前記平均化処理を行うか否かを前記移動量に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理手段は、
前記移動量が閾値よりも大きい場合には前記平均化処理を行わず、
前記移動量が前記閾値よりも小さい場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする請求項1に記載の情報処理装置。 - 前記指定位置の移動方向の情報を取得する第3取得手段をさらに有し、
前記処理手段は、前記距離、前記移動量、および前記移動方向に基づく強度で前記平均化処理を行う
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理手段は、前記平均化処理を行うか否かを前記移動量と前記移動方向に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする請求項6に記載の情報処理装置。 - 前記処理手段は、
前記移動量が閾値よりも大きい場合と、前記移動方向が一定である場合とのそれぞれにおいて前記平均化処理を行わず、
前記移動量が前記閾値よりも小さく且つ前記移動方向が一定でない場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする請求項6に記載の情報処理装置。 - 前記操作体から前記指定位置までの方向の変化量の情報を取得する第4取得手段をさらに有し、
前記処理手段は、前記距離、前記移動量、前記移動方向、および前記変化量に基づく強度で前記平均化処理を行う
ことを特徴とする請求項6に記載の情報処理装置。 - 前記処理手段は、前記平均化処理を行うか否かを前記移動量、前記移動方向、および前記変化量に基づいて決定し、前記平均化処理の強度を前記距離に応じて決定する
ことを特徴とする請求項9に記載の情報処理装置。 - 前記処理手段は、
前記移動量が第1閾値よりも大きい場合、前記移動方向が一定である場合、および前記変化量が第2閾値よりも大きい場合のそれぞれにおいて前記平均化処理を行わず、
前記移動量が前記第1閾値よりも小さく且つ前記移動方向が一定でなく且つ前記変化量が前記第2閾値よりも小さい場合に、前記距離に応じた強度で前記平均化処理を行う
ことを特徴とする請求項9に記載の情報処理装置。 - 操作体の位置および姿勢に応じて表示アイテムによる指定位置を決定するステップと、
前記操作体から前記指定位置までの距離の情報を取得するステップと、
前記指定位置の移動量の情報を取得するステップと、
前記距離と前記移動量に基づく強度で前記指定位置の平均化処理を行うステップと
を有することを特徴とする情報処理方法。 - コンピュータを、請求項1~11のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023148361A JP2025041209A (ja) | 2023-09-13 | 2023-09-13 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023148361A JP2025041209A (ja) | 2023-09-13 | 2023-09-13 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2025041209A true JP2025041209A (ja) | 2025-03-26 |
Family
ID=95105088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023148361A Pending JP2025041209A (ja) | 2023-09-13 | 2023-09-13 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2025041209A (ja) |
-
2023
- 2023-09-13 JP JP2023148361A patent/JP2025041209A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6057396B2 (ja) | 3次元ユーザインタフェース装置及び3次元操作処理方法 | |
| US11275434B2 (en) | Information processing apparatus, information processing method, and storage medium | |
| JP6611501B2 (ja) | 情報処理装置、仮想オブジェクトの操作方法、コンピュータプログラム、及び記憶媒体 | |
| US9495068B2 (en) | Three-dimensional user interface apparatus and three-dimensional operation method | |
| CN110753899B (zh) | 计算机介导现实中的位移取向交互 | |
| US9541997B2 (en) | Three-dimensional user interface apparatus and three-dimensional operation method | |
| US9342925B2 (en) | Information processing apparatus, information processing method, and program | |
| JP5709440B2 (ja) | 情報処理装置、情報処理方法 | |
| KR101892735B1 (ko) | 직관적인 상호작용 장치 및 방법 | |
| KR20120068253A (ko) | 사용자 인터페이스의 반응 제공 방법 및 장치 | |
| JP6344530B2 (ja) | 入力装置、入力方法、及びプログラム | |
| JP7451084B2 (ja) | 情報処理装置および情報処理方法 | |
| JP2004265222A (ja) | インタフェース方法、装置、およびプログラム | |
| JP4608326B2 (ja) | 指示動作認識装置及び指示動作認識プログラム | |
| JP2025041209A (ja) | 情報処理装置 | |
| CN118747039A (zh) | 用于移动虚拟对象的方法、装置、电子设备和存储介质 | |
| JP2018128739A (ja) | 画像処理装置、画像処理方法、コンピュータプログラム、及び記憶媒体 | |
| US11960660B2 (en) | Terminal device, virtual object manipulation method, and virtual object manipulation program | |
| JP2017134775A (ja) | 画像処理装置、画像処理方法及びプログラム | |
| KR20200073031A (ko) | 높은 정확도를 갖는 손 동작 추적을 위한 3차원 손 모델 제작 방법 | |
| JP2019046472A (ja) | 画像処理装置、画像処理方法 | |
| JP7779039B2 (ja) | 支援システム、支援側装置、支援方法、およびプログラム | |
| JP7760855B2 (ja) | 支援システム、支援側装置、支援方法、およびプログラム | |
| JP2025171613A (ja) | 情報処理装置 | |
| CN120723057A (zh) | 用于移动虚拟对象的方法、装置、电子设备和存储介质 |
