(57)【要約】【課題】  複数の表示情報を適切に表示する。【解決手段】  情報処理装置に、現実空間を撮像した撮像画像を取得する画像取得手段と、現実物体の位置姿勢情報を取得する情報取得手段と、前記位置姿勢情報の信頼度を算出する算出手段と、前記画像から仮想物体を配置する３次元位置を設定する設定手段と、前記３次元位置に仮想物体を配置する配置手段と、体験者が前記３次元位置を確定すると、前記信頼度が閾値以上かを判断する第一の判断手段と、前記信頼度について前記第一の判断手段とは異なる条件で判断する第二の判断手段と、前記第一の判断手段で前記信頼度が閾値未満と判断され、前記第二の判断手段で前記条件が満たされていると判断された場合に、イベントを実行する実行手段とを備える。【選択図】  図１
2019045997.tif 000002
【特許請求の範囲】
【請求項１】
現実空間を撮像した撮像画像を取得する画像取得手段と、
現実物体の位置姿勢情報を取得する情報取得手段と、
前記位置姿勢情報の信頼度を算出する算出手段と、
前記画像から仮想物体を配置する３次元位置を設定する設定手段と、
前記３次元位置に仮想物体を配置する配置手段と、
体験者が前記３次元位置を確定すると、前記信頼度が閾値以上かを判断する第一の判断手段と、
前記信頼度について前記第一の判断手段とは異なる条件で判断する第二の判断手段と、
前記第一の判断手段で前記信頼度が閾値未満と判断され、前記第二の判断手段で前記条件が満たされていると判断された場合に、イベントを実行する実行手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記第二の判断手段は、前記信頼度が閾値未満である時間が第二の閾値以内のときに前記条件を満たすと判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第二の判断手段は、前記体験者が操作する現実物体の移動速度から判断される移動距離が第二の閾値以内のときに前記条件を満たすと判断することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記３次元位置が確定されたときにイベントを発行する発行手段を備え、
前記実行手段は、前記イベントが発行された状態で、前記前記第一の判断手段で前記信頼度が閾値未満と判断され、前記第二の判断手段で前記条件が満たされていると判断された場合に、当該イベントを実行する請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記３次元位置を予測する予測手段を備え、
前記実行手段は、前記イベントが発行された状態で、前記第一の判断手段で閾値未満と判断された場合に、前記予測手段で予測された３次元位置を利用してイベントを実行することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記予測手段は、前記第一の判断手段で閾値以上と判断された時の前記３次元位置とその時刻を保存する保存手段を備え、前記保存手段で保存された情報から、前記３次元位置を計算によって予測することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記予測手段は、前記保存手段で保存された３次元位置を取得する位置取得手段を備え、前記位置取得手段で取得した３次元位置から閾値の範囲内の特徴点を、予測した３次元位置として用いることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記特徴点は、仮想物体のポリゴンの頂点であることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記特徴点は、仮想物体のポリゴンの辺の中心であることを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記特徴点は、仮想物体のポリゴンの面の中心であることを特徴とする請求項７に記載の情報処理装置。
【請求項１１】
前記特徴点は、前記撮像手段で撮像された現実空間の画像の特徴点であることを特徴とする請求項７に記載の情報処理装置。
【請求項１２】
前記配置手段は、前記第一及び第二の判断手段の判断結果を視覚的に示すことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記判断結果を視覚的に示す方法として、前記仮想物体の色を変更することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記判断結果を視覚的に示す方法として、前記仮想物体の透明度を変更することを特徴とする請求項１２に記載の情報処理装置。
【請求項１５】
前記判断結果を視覚的に示す方法として、前記仮想物体の形状を変更することを特徴とする請求項１２に記載の情報処理装置。
【請求項１６】
前記判断結果を視覚的に示す方法として、前記仮想物体に補助的な情報を追加することを特徴とする請求項１２に記載の情報処理装置。
【請求項１７】
現実空間を撮像した撮像画像を取得する画像取得工程と、
現実物体の位置姿勢情報を取得する情報取得工程と、
前記位置姿勢情報の信頼度を算出する算出工程と、
前記画像から仮想物体を配置する３次元位置を設定する設定工程と、
前記３次元位置に仮想物体を配置する配置工程と、
体験者が前記３次元位置を確定すると、前記信頼度が閾値以上かを判断する第一の判断工程と、
前記信頼度について前記第一の判断工程とは異なる条件で判断する第二の判断工程と、
前記第一の判断手段で前記信頼度が閾値未満と判断され、前記第二の判断手段で前記条件が満たされていると判断された場合に、イベントを実行する実行工程と
を備えることを特徴とする情報処理方法。
【請求項１８】
コンピュータを請求項１乃至１６のいずれか１項に記載の情報処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想物体を含む画像の表示に関するものである。
【背景技術】
【０００２】
近年、設計・製造分野においてプロトタイプを用いた評価の期間短縮、費用削減が求められている。ＣＡＤ（コンピュータ支援設計）システムで作成した設計（形状・デザイン）データを用いて、組み立てやすさやメンテナンス性の仮想評価をするための複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）システムが導入されている。評価項目として、設計データを仮想的なポインタを使って操作し、組み立てやすさを現実の部品が存在しなくても仮想部品のみで評価するというものがある。その他にも、体験者が仮想部品を動かして別の仮想部品に干渉したかどうかを提示して、工具を目的の部品以外に干渉させずに作業できるかを仮想部品のみで評価することも可能である。
【０００３】
特許文献１には、体験者が動かす仮想部品の位置姿勢を決めるマーカの位置姿勢計測結果の信頼度が低い場合には、干渉情報を記録しない方法を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−０１６３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法では、体験者が動かす仮想部品の位置姿勢を決めるマーカの位置姿勢計測結果の信頼度が閾値未満に下がると即座に干渉の判定などのアクションを停止させてメッセージを表示するようにしている。しかし、アクションを突然止めてしまうと体験者の没入感を低下させてしまう可能性がある。また、メッセージを表示させても体験者の没入感を低下させてしまう恐れがあった。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、体験者が動かす仮想部品の位置姿勢を決めるマーカの位置姿勢計測結果の信頼度が低下しても、体験者の没入感の低下を防ぐことを目的とする。
【課題を解決するための手段】
【０００７】
本発明の１態様によれば、情報処理装置に、現実空間を撮像した撮像画像を取得する画像取得手段と、現実物体の位置姿勢情報を取得する情報取得手段と、前記位置姿勢情報の信頼度を算出する算出手段と、前記画像から仮想物体を配置する３次元位置を設定する設定手段と、前記３次元位置に仮想物体を配置する配置手段と、体験者が前記３次元位置を確定すると、前記信頼度が閾値以上かを判断する第一の判断手段と、前記信頼度について前記第一の判断手段とは異なる条件で判断する第二の判断手段と、前記第一の判断手段で前記信頼度が閾値未満と判断され、前記第二の判断手段で前記条件が満たされていると判断された場合に、イベントを実行する実行手段とを備える。
【発明の効果】
【０００８】
本発明によれば、体験者の没入感の低下を防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】システムの構成例を示すブロック図。
【図２】各イベントを説明する図。
【図３】情報処理装置の各機能部の動作を示すフローチャート。
【図４】システムの構成例を示すブロック図。
【図５】情報処理装置の各機能部の動作を示すフローチャート。
【図６】システムの構成例を示すブロック図。
【図７】情報処理装置の各機能部の動作を示すフローチャート。
【図８】システムの構成例を示すブロック図。
【図９】特徴点探索範囲を示す図。
【図１０】特徴点探索範囲を示す図。
【図１１】情報処理装置の各機能部の動作を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の好適な実施形態について詳細に説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１１】
（実施形態１）
図１は、本実施形態に係るシステムの機能構成例を示すブロック図である。図１に示すように、本実施形態に係るシステムは、情報処置装置１００と、入力受付部１３０と、頭部装着型表示装置の一例としてのＨＭＤ１２０で構成されている。また、情報処理装置１００は、位置姿勢信頼度判断部１０１、位置姿勢信頼度算出部１０２、位置姿勢取得部１０３、３次元ポイント計算部１０４、３次元ポイント変更部１０５を備える。情報処理装置１００は、さらに、仮想物体データベース１０６、３次元ポイント確定部１０７、イベント実施部１０８、仮想物体描画部１０９、合成部１１０を備える。ここで、情報処理装置１００とＨＭＤ１２０とはデータ通信が可能なように接続されている。情報処理装置１００とＨＭＤ１２０との間の接続は、有線、無線の何れであっても構わない。
【００１２】
本実施形態における情報処理装置１００は、ＨＭＤ１２０内の撮像部１２１から取り込んだ現実空間の画像と仮想空間の画像とを合成し、複合現実感の画像としてＨＭＤ１２０内の表示部１２２に出力する。
【００１３】
撮像部１２１は現実空間を撮影し、撮影した画像を情報処理装置１００に取り込む。撮影された画像は合成部１１０にて仮想物体の画像と合成して表示部１２２に合成画像として表示する。本実施形態では撮像部１２１はヘッドマウンテッドディスプレイ（以下、ＨＭＤと称する）に内蔵されているものとする。
【００１４】
表示部１２２は合成部１１０で生成された合成画像を体験者に提示する。本実施形態では、ＨＭＤ１２０に内蔵されたディスプレイを用いる。
【００１５】
入力受付部１３０は体験者が各種の操作入力を行うために操作するユーザインターフェースであり、例えば、確定などを指示するためのボタン群を有する。なお、入力受付部１３０は後述するような様々な操作指示を情報処理装置に対して入力することができるように構成されていれば、いかなる形態のユーザインターフェースを適用しても構わない。すなわち入力受付部１３０はマウス、キーボードなどのような装置であってもよいし、体験者や他のユーザのジェスチャーや声を認識することによって、対応する操作指示を入力する装置であってもよい。また、これらの装置の組み合わせによって操作入力を構成してもよい。
【００１６】
位置姿勢取得部１０３は、撮像部１２１から画像取得を実行し、取り込んだ画像に基づいて、現実空間の撮像部１２１の位置姿勢と仮想物体の位置姿勢を推定する。本実施形態では、撮像部１２１の位置姿勢を体験者の視点位置姿勢とする。撮像部１２１の位置姿勢の算出は現実空間に配置されたマーカを撮像した画像に基づいて行われる。また、仮想物体の位置姿勢は例えば、仮想物体に対応する現実物体をあらかじめ現実空間に配置する。そして、現実物体にマーカを張り付けておき、マーカを撮像した画像に基づいて現実物体の位置姿勢を推定し、推定された現実物体の位置姿勢を現実物体に対応する仮想物体の位置姿勢として推定する。そして、体験者が現実物体を動かすことによって、仮想物体の位置姿勢を変更することができる。
【００１７】
ただし、本発明では体験者の視点位置姿勢や仮想物体の位置姿勢について情報取得する方法はこれに限定されない。例えば、現実物体に３次元センサを貼り付け、または内蔵させてもよいし、市販のモーションキャプチャシステムを利用して撮像装置に対する仮想物体の位置姿勢を計測することも可能である。また、仮想物体に対応する現実物体を用意しなくても、予め設定された位置に仮想物体を表示し、コントローラなどを用いて仮想物体を移動させてもよい。
【００１８】
３次元ポイント計算部１０４は複合現実空間における３次元ポインタの位置を計算する。３次元ポインタも仮想物体であり、位置姿勢取得部１０３で３次元ポインタの位置姿勢が計算される。３次元ポインタは仮想物体を選択し、ポインタを使って仮想物体を移動させることを可能にする。その他にも３次元ポインタを利用して、複合現実空間の二点を指定することで距離計測を実施することなども可能にする。
【００１９】
位置姿勢信頼度算出部１０２は位置姿勢取得部１０３における位置姿勢の推定の信頼度を計算する。撮像物体に映るマーカで位置姿勢を推定する場合において、以下の状態で位置姿勢推定結果の信頼性が低下する。
（１）マーカが画面上で小さく映っている場合
（２）撮像部１２１とマーカの間に遮蔽物が入ってマーカが隠される場合
（３）マーカが撮像部１２１の視野外で映らない場合
また、仮想物体の位置姿勢を位置姿勢センサにより計測する場合であっても、環境ノイズや計測範囲外になるなど、信頼性が低下する状況が考えられる。そこで、信頼度は例えば、マーカが認識されていれば１、認識されていなければ０、マーカ領域が撮像画像装置画像上を占める割合の１０パーセントを下回った場合は０．５と定義する。
【００２０】
位置姿勢信頼度判断部１０１は位置姿勢信頼度算出部１０２が算出した信頼度から合否を判定する。例えば、閾値未満であれば、否と判定し、閾値以上であれば合と判定する。
【００２１】
３次元ポイント確定部１０７は入力受付部１３０から受け付けた体験者の確定指示を取得し、位置姿勢信頼度判断部１０１が合と判断している場合は、３次元ポイント位置でのイベントを発行する。反対に否と判断している場合はイベントを発行しない。これにより、ユーザが意図しない３次元ポイント位置でのイベントの実施を防ぐことができる。発行されるイベントはユーザの入力や情報処理装置の設定に応じて切り替えて実施されてもよい。イベントの種類に応じて、否と判断された場合でもイベントを発行してもよい。例えば、位置姿勢信頼度が低いが、ユーザが必ず実行したい場合には強制実行のようなボタンを入力受付部１３０に用意して、イベントを実行してもよい。その時に３次元ポイント位置は位置姿勢信頼度が低下したときの値でもよい。
【００２２】
イベント実施部１０８は３次元ポイント確定部１０７が発行したイベントを実施する。各イベントに関して図２を用いて説明する。体験者２００は現実物体２３０を持ち、現実物体２３０に対応する仮想物体である３次元ポインタ２１０を使って、イベント時の３次元ポイント位置を指定する。距離計測の一点目を確定するイベントの場合は、図２（Ａ）に示す。体験者２００は３次元ポインタ２１０で仮想物体２２０の一点を指定している。その状態で入力受付部１３０に確定を指示すると図２（Ｂ）に示すように確定した一点目に仮想物体２４０を表示し、その仮想物体２４０と３次元ポイント位置２１０を結ぶ線２５０を仮想物体として表示する。また、一点目の仮想物体２４０と３次元ポイント位置２１０の距離を数値２６０として表示する。
【００２３】
ここで、３次元ポインタ２１０は仮想物体２２０の一点でなくても、現実空間における一点を指定してもよい。その他にも、二点目の確定があるまでは常に一点目と３次元ポインタの位置を結ぶ線と数値を動的に変更するイベントも発行される。二点目を決定するイベントを図２（Ｃ）に示す。２点目を決定するイベントの場合は一点目２４０と二点目２７０を結ぶ線２５０を表示し、線２５０の付近にその長さ２６０を表示させる。それ以外にイベントとして、３次元ポインタを利用した仮想物体の移動がある。仮想物体の移動のためには、３次元ポインタが指している仮想物体を選択するイベントや、選択された仮想物体の移動を３次元のポインタの移動に合わせて移動させるイベントや、移動させた仮想物体の位置を現在のポインタの位置で確定するイベントを利用する。３次元ポインタが指している仮想物体を選択するイベントについて図２（Ｄ）に示す。
【００２４】
図２（Ｄ）において体験者２００は３次元ポインタ２１０を移動させたい仮想物体２２０にあてるようにする。３次元ポインタ２１０が仮想物体２２０にあたっている状態で色や形状、透明度を変化させてもよい。３次元ポインタ２１０が仮想物体２２０にあたっている状態で体験者２００が入力受付部１３０に確定を指示した場合、図２（Ｅ）に示すように選択された仮想物体２２０が３次元ポインタ２１０に合わせて移動するようになる。
【００２５】
そこで、次に選択された仮想物体の移動を３次元のポインタの移動に合わせて移動させるイベントの場合を、図２（Ｄ）、図２（Ｅ）に示す。３次元ポインタ２１０が移動すると図２（Ｄ）の位置にあった仮想物体２２０が図２（Ｅ）のように３次元ポインタ２１０に合わせて移動する。このようにして３次元ポインタ２１０を用いて仮想物体２２０を移動させることができる。また、図２（Ｆ）では回転を加えていないがポインタを回転がわかるような仮想物体にして、回転させることで仮想物体２２０を回転させてもよい。その際に回転中心はどこに設定してもよく、３次元ポインタの位置にしてもよいし、仮想物体２２０の中心にしてもよい。移動させた仮想物体を確定するイベントが発行されるまでは、ずっと本イベントが発行され続ける。
【００２６】
最後に移動させた仮想物体を確定するイベントについて図２（Ｅ）、図２（Ｆ）に示す。図２（Ｅ）に示すように３次元ポインタ２１０を移動させて仮想物体２２０の位置を決めたら体験者２００は入力受付部１３０に確定の指示を出す。その結果、図２（Ｆ）のように確定の指示を出した時点の３次元ポインタ位置に仮想物体２２０が移動し、３次元ポインタ２１０に合わせて仮想物体２２０が移動することはなく、位置が確定される。以上のイベントを利用して、３次元ポインタを利用して仮想物体を移動させることができる。
【００２７】
最後に、３次元ポインタが指す位置に仮想的な視点を移動させるイベントについて図２（Ｇ）、図２（Ｈ）に示す。体験者２００は現実物体２３０の位置姿勢を変化させることで仮想物体２８０の位置姿勢を変化させる。仮想物体２８０は仮想的な視点の視推台を示す形状をしている。ここで体験者２００が入力受付部１３０に確定を指示すると仮想物体２８０を仮想的な視点として後述する方法を用いて、仮想物体の描画することで仮想物体の画像を作成して、画像を保存してもよいし、作成した画像をＨＭＤに表示してもよい。もしくは体験者２００の装着しているＨＭＤの視推台２９０から生成された仮想的な画像が、仮想物体２８０の仮想的な視点から生成した画像と同じになるように仮想物体２２０を図２（Ｇ）から、図２（Ｈ）に示すように移動させてもよい。
【００２８】
仮想物体データベース１０６は仮想物体のモデルを保持するデータベースである。仮想物体のモデルは例えば形状、表示色、初期位置姿勢を含んでいる。前述の３次元ポインタも仮想物体であり、仮想物体データベース１０６に保持されている。
【００２９】
３次元ポイント変更部１０５は位置姿勢信頼度判断部１０１が否と判断した場合は体験者に視覚的に位置姿勢値が正しくない可能性を提示する。そのために、ポインタとして使用している仮想物体の色を判断結果に応じて変更する。これにより、体験者の複合現実感体験を継続しながら、視覚的に体験者に位置姿勢の信頼度が低いこと、イベントを発行できないことを通知することができる。色の変更以外にも仮想物体の透明度、形状を変更してもよい。また、位置姿勢の推定の信頼度に応じて、色や形状などを徐々に変更させてもよい。もしくは仮想物体の付近に補助的な文字を表示して、体験者に通知してもよい。
【００３０】
仮想物体描画部１０９は仮想物体を描画した画像を生成する。より具体的には仮想物体データベース１０６に保存されたモデルデータに基づいて画像を生成する。まず、仮想空間の画像を生成するための仮想視点の位置姿勢を位置姿勢取得部１０３から取得する。仮想視点の位置姿勢は、例えば、基準とする世界座標系における撮像部１２１の位置姿勢情報を入力すればよい。また、仮想物体の位置は、位置姿勢取得部１０３で取得された位置姿勢に基づいて更新する。更新した仮想物体は仮想視点に基づいて設定された投影面に投影される。投影後のポリゴン・線分の描画処理は、一般的な３次元画像生成における描画処理と同じであるため詳細な説明は省略する。
【００３１】
合成部１１０は撮像装置から取り込んだ現実空間の画像と、仮想物体描画部１０９で描画された仮想空間の画像とを合成する。合成処理は現実空間の画像の上に仮想空間の画像を重ねることにより実施する。すなわち仮想物体の領域以外の画素は現実空間画像の画素が表示される合成画像となる。
【００３２】
次に、本実施形態に係る情報処理装置１００が行う処理のフローチャートを示す図３を用いて説明する。
【００３３】
ステップＳ３０１では、仮想物体描画部１０９は仮想物体データベース１０６から仮想物体のデータを読み込む。
【００３４】
ステップＳ３０２では、位置姿勢取得部１０３は撮像部１２１で撮影された現実空間の画像を取得する。そして、位置姿勢取得部１０３は取得した画像に基づいて撮像部１２１の位置姿勢情報を算出する。ステップＳ３０２以降の処理は、撮像部１２１から現実空間の画像が更新されるまで処理が一時停止され、更新があった場合には後段の処理を実行する。ただし、本実施形態は、撮像部１２１の画像更新ごとに処理をすることに限定されるものではなく、例えば、位置姿勢取得部１０３で新たな位置姿勢が取得されたタイミングで処理を実行する方法でも適用可能である。
【００３５】
ステップＳ３０３では、位置姿勢取得部１０３は位置姿勢情報を仮想物体描画部１０９、３次元ポイント計算部１０４、位置姿勢信頼度算出部１０２に送出する。
【００３６】
ステップＳ３０４では、位置姿勢信頼度算出部１０２は３次元ポインタの位置姿勢の信頼度を算出し、位置姿勢信頼度判断部１０１に送出する。
【００３７】
ステップＳ３０５では、位置姿勢信頼度判断部１０１が合（信頼度が閾値以上）と判断した場合にはステップＳ３０６に処理を移す。否（信頼度が閾値未満）と判断した場合にはステップＳ３０７に処理を移す。上述したように、３次元ポイント位置確定部１０７でユーザが強制実行を実施する場合には否と判断された場合でもステップＳ３０７に処理を移した後、ステップＳ３０６に処理を移してもよい。
【００３８】
ステップＳ３０６では、３次元ポイント確定部１０７が入力受付部１３０から体験者が確定を指示したか、そして、どのようなイベントを発行したかをチェックする。体験者が確定指示を出した場合には３次元ポイント確定部１０７がイベント実施部１０８にイベント情報を送出し、ステップＳ３０８に処理を移す。体験者が確定指示を出していない場合にはステップＳ３０９に処理を移す。
【００３９】
ステップＳ３０７では、３次元ポイント変更部１０５が３次元ポインタの仮想物体の色を変更する。上述のように色のみではなく、仮想物体の形状や透明度などを変更してもよい。
【００４０】
ステップＳ３０８では、イベント実施部１０８が３次元ポイント確定部１０７から取得したイベント情報に応じて、イベント処理を実施する。
【００４１】
ステップＳ３０９では、仮想物体描画部１０９が仮想物体を仮想空間の画像として描画する。
【００４２】
ステップＳ３１０では、合成部１１０は撮像部１２１が撮像した現実空間の画像と仮想空間の画像とを合成して、合成画像を生成する。その後、表示部１２２は合成部１１０で背精された合成画像を表示し、ＨＭＤ１２０を装着する体験者に提示する。
【００４３】
ステップＳ３１１では、体験者から終了を指示されたかどうかを判定し、終了を指示された場合は処理を終了する。終了されていない場合は、ステップ３０２に処理を移す。
【００４４】
（実施形態２）
上記実施形態１では、位置姿勢の信頼度が閾値未満になった場合には即座に３次元ポインタの仮想物体の色を変更し、体験者へ提示をした。本実施形態では位置姿勢の信頼度の第一の閾値判定をする第一の判断とは異なる条件で判断する第二の判断を追加する。第二の判断は、例えば第二の閾値以上の間、位置姿勢の信頼度が第二の閾値未満になった場合に体験者はイベントを実施できなくする。第二の判断手段を使う場合を実施形態１に追加して示す。
【００４５】
本実施形態に係るシステムについて、図４のブロック図を用いて説明する。図４において、図１と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
【００４６】
位置姿勢信頼度データベース４００は位置姿勢信頼度判断部４０１から送出されてきた３次元ポインタの現実物体の番号と位置姿勢信頼度低下開始時刻と位置姿勢信頼度が低下する前の位置姿勢値をデータベースに保存する。すでに３次元ポインタの現実物体の番号に位置姿勢信頼度低下開始時刻があった場合は、保存を実施しない。また、位置姿勢信頼度判断部４０１から３次元ポインタの現実物体の番号と位置姿勢信頼度低下開始時刻削除依頼があった際にはデータベースから削除を実施する。
【００４７】
位置姿勢信頼度判断部４０１は、位置姿勢信頼度算出部１０２が算出した信頼度が閾値未満であれば、以下を実行する。すなわち、位置姿勢信頼度が閾値未満の３次元ポインタの現実物体の番号と位置姿勢信頼度低下前の位置姿勢値、現在の時刻、現実物体の移動速度を位置姿勢信頼度低下開始時刻として位置姿勢信頼度データベース４００に送出する。そのため、位置姿勢信頼度判断部４０１は位置姿勢信頼度が閾値以上の場合は随時位置姿勢値を更新して保存している。その結果、位置姿勢信頼度低下前の位置姿勢値を保存することと、現実物体の移動速度を算出することが可能である。
【００４８】
同時に位置姿勢信頼度データベース４００から位置姿勢信頼度が閾値未満の３次元ポインタの現実物体の番号の位置姿勢信頼度低下前の位置姿勢値と位置姿勢信頼度低下開始時刻を取得する。取得した位置姿勢信頼度低下開始時刻と現在の時刻の差が閾値時間以上の場合には否と判定する。それ以外の場合には合と判定する。これにより、閾値時間以内であれば位置姿勢の信頼度が低い値を使う必要がなくなるため、おおむね正しい３次元ポイント位置を使用することができる。もしくは、移動速度と保存された時刻から計算される移動距離が閾値以内の場合には合と判定する。ここで合と判定された場合は位置姿勢信頼度データベース４００から取得した位置姿勢値を３次元ポイント計算部に送出する。信頼度が閾値以上であれば、現実物体の番号と位置姿勢信頼度低下開始時刻削除の依頼を送出し、合と判定する。
【００４９】
次に、本実施形態に係る情報処理装置１００が行う処理を、同処理のフローチャートを示す図５を用いて説明する。図５において、図３と同じ処理には同じ参照番号を付けており、その説明は省略する。
【００５０】
ステップＳ５０１では、位置姿勢信頼度判断部４０１が位置姿勢の信頼度が閾値以上と判断した場合に、位置姿勢信頼度データベース４００に３次元ポインタの現実物体の番号と位置姿勢信頼度低下開始時間削除依頼を送信する。
【００５１】
ステップＳ５０２では、位置姿勢信頼度判断部４０１が位置姿勢の信頼度が閾値未満と判断した場合に、位置姿勢信頼度データベース４００に３次元ポインタの現実物体の番号と位置姿勢信頼度低下開始時刻を送出する。次に、位置姿勢信頼度データベース４００が３次元ポインタの現実物体の番号の位置姿勢の信頼度低下開始時間が保存されているかどうかをチェックする。保存されている場合は、ステップＳ５０４に処理を移す。保存されていない場合は、ステップＳ５０３に処理を移す。
【００５２】
ステップＳ５０３では、位置姿勢信頼度データベース４００は位置姿勢信頼度判断部４０１から送出された３次元ポインタの現実物体の番号と位置姿勢の信頼度低下開始時間を保存する。
【００５３】
ステップＳ５０４は位置姿勢信頼度判断部４０１が位置姿勢信頼度データベース４００から３次元ポインタの現実物体の番号と位置姿勢信頼度低下開始時刻と位置姿勢信頼度低下前の位置姿勢値を取得する。位置姿勢信頼度低下開始時刻と現在時刻との差が閾値時間以下の場合はステップＳ５０５に処理を移す。位置姿勢信頼度低下開始時刻と現在時刻との差が閾値時間以上の場合はステップＳ３０７に処理を移す。
【００５４】
ステップＳ５０５では、３次元ポイント計算部１０４が位置姿勢信頼度判断部４０１から送出されてきた位置姿勢値を利用して、３次元ポイントの位置姿勢を再更新して３次元ポイント確定部１０７に送出する。
【００５５】
（実施形態３）
上記実施形態１、２では、位置姿勢の信頼度が低下したときには操作を実施させないようにする装置であった。本実施形態では、位置姿勢の信頼度が低下したときには過去の値から計算によって、位置姿勢値を決定する方法について実施形態１、２に追加して示す。本実施形態に係るシステムについて、図６のブロック図を用いて説明する。図６において、図１と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
【００５６】
位置姿勢データベース６００は位置姿勢信頼度判断部６０１から３次元ポインタの現実物体の番号と位置姿勢信頼度が閾値以上のときの３次元ポインタの位置姿勢値とその時刻を受け取って保存する。保存できる量は制限してもよいし、制限しなくてもよい。
【００５７】
位置姿勢信頼度判断部６０１は位置姿勢信頼度算出部１０２から送出された位置姿勢の信頼度が閾値以上だった場合は、合と判定する。合と判定した結果、位置姿勢データベース６００に３次元ポインタの現実物体の番号と合と判定した３次元ポインタの位置姿勢値と、現在時刻を送出する。位置姿勢の信頼度が閾値未満だった場合は、否と判定し、３次元ポイント予測部６０２に現在時刻を送出する。
【００５８】
３次元ポイント予測部６０２は位置姿勢信頼度判断部６０１から送出されてきた現在時刻と、位置姿勢データベース６００から保存されている値を取得する。位置姿勢データベース６００には時刻とその時の３次元ポインタの位置姿勢値が登録されている。３次元ポイント予測部６０２は過去の時刻と３次元ポインタの位置姿勢値から、線形補間により現在時刻の位置姿勢値を計算する。ここで線形補間ではなく、多項式を使った補間やスプライン補間などを用いた補間から現在時刻の３次元ポインタの位置姿勢値を計算してもよい。線形補間の場合は位置姿勢データベース６００に保存されているすべての値を使わず、１秒前の情報から使ってもよい。
【００５９】
３次元ポイント確定部６０３は、入力受付部１３０から受け付けた体験者の確定指示を取得し、位置姿勢信頼度判断部６０１が合と判断している場合は、３次元ポイント計算部１０４が算出した３次元ポイント位置でのイベントを発行する。反対に否と判断している場合は３次元ポイント予測部６０２が予測した３次元ポイント位置取得をして、イベントを発行する。発行されるイベントはユーザの入力や情報処理装置の設定に応じて切り替えて実施される。イベントの種類に応じて、否と判断された場合でも３次元ポイント計算部１０４が算出した３次元ポイント位置でのイベントを発行してもよい。
【００６０】
次に、本実施形態に係る情報処理装置１００が行う処理を、同処理のフローチャートを示す図７を用いて説明する。図７において、図３と同じ処理には同じ参照番号を付けており、その説明は省略する。
【００６１】
ステップＳ７０１では、位置姿勢信頼度判断部６０１が位置姿勢の信頼度が閾値以上だった場合は合と判断して、ステップＳ７０２に処理を移す。位置姿勢の信頼度が閾値未満だった場合は否と判断して、ステップＳ７０３に処理を移す。
【００６２】
ステップＳ７０２では、位置姿勢信頼度判断部６０１が合と判断した位置姿勢値とその時刻を位置姿勢データベース６００に送出する。位置姿勢データベース６００は送出された位置姿勢値とその時刻を保存する。
【００６３】
ステップＳ７０３では、３次元ポイント予測部６０２が位置姿勢信頼度判断部６０１から位置姿勢値の信頼度が否と判断された時の時刻と、位置姿勢データベース６００から位置姿勢値とその時刻を取得する。取得した値から３次元ポインタの位置姿勢値を予測して、３次元ポイント確定部６０３に送出する。
【００６４】
ステップＳ７０４では、３次元ポイント変更部１０５は位置姿勢信頼度判断部６０１が否と判断した場合には、３次元ポイントの位置が予測値であることを示す色に変更する。
【００６５】
ステップＳ７０５では、３次元ポイント確定部６０３が入力受付部１３０から体験者が確定を指示したか、そして、どのようなイベントを発行したかをチェックする。体験者が確定指示を出した場合には３次元ポイント確定部６０３が取得した３次元ポイントの位置でイベント実施部１０８にイベント情報を送出し、ステップＳ３０８に処理を移す。体験者が確定指示を出していない場合にはステップＳ３０９に処理を移す。
【００６６】
（実施形態４）
上記実施形態３では、位置姿勢の信頼度が低下したときには過去の値から予測をして、位置姿勢値を決定していた。本実施形態では、位置姿勢の信頼度が低下したときには付近にある特徴のある場所を予測値として３次元ポインタ位置を決定する方法について実施形態１、２、３に追加して示す。本実施形態に係るシステムについて、図８のブロック図を用いて説明する。図８において、図１、６と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
【００６７】
位置姿勢データベース８００は位置姿勢信頼度判断部８０１から３次元ポインタの現実物体の番号と位置姿勢信頼度が閾値以上のときの３次元ポインタの位置姿勢値とその時刻を受け取って保存する。保存できる量は制限してもよいし、制限しなくてもよい。
【００６８】
位置姿勢信頼度判断部８０１は位置姿勢信頼度算出部１０２から送出された位置姿勢の信頼度が閾値以上だった場合は、合と判定する。そして、位置姿勢データベース８００に３次元ポインタの現実物体の番号と合と判定した３次元ポインタの位置姿勢値と、現在時刻を送出する。位置姿勢の信頼度が閾値未満だった場合は、否と判定し、３次元ポイント探索部８０２に現在時刻を送出する。
【００６９】
３次元ポイント探索部８０２は位置姿勢データベース８００から保存されている値を取得する。位置姿勢データベース８００には時刻とその時の３次元ポインタの位置姿勢値が保存されている。３次元ポイント探索部８０２は取得した値のうち最新の時刻の３次元ポインタの位置姿勢値から、閾値範囲内の空間を探索する。
【００７０】
図９にその概要を示す。体験者９００は現実物体９３０を持っている。また、現実物体９３０に対応する３次元ポインタ９１０は信頼度が閾値未満となり、ポインタの色が変更された状態である。そして、位置姿勢データベース８００に保存されていた最新の時刻の３次元ポインタの位置姿勢９４０がある。ここから探索範囲９５０内を探索し、特徴点を見つけることによって、３次元ポインタの位置姿勢を決定する。ここで、探索する空間は立方体の空間にしてもよい。もしくは、位置姿勢データベース８００から取得した値から実施形態３に示したように、予測値を用いて探索する空間を決定してもよい。
【００７１】
例えば、図１０（Ａ）のように予測値を中心に球状の空間にしてもよい。図１０（Ａ）において体験者１０００は現実物体１０３０を持っている。また現実物体１０３０に対応する３次元ポインタは信頼度が閾値未満となり、最新の時刻の３次元ポインタ位置１０６０、最新の時刻の次の３次元ポインタ位置１０４０から予測された３次元ポインタ位置１０１０にある。予測された３次元ポインタ位置１０１０から閾値範囲１０５０を探索することによって、特徴点を発見する。
【００７２】
もしくは、図１０（Ｂ）のように最新の時刻の３次元ポインタ位置１０６０と予測された３次元ポインタ位置１０１０を焦点とした楕円を探索範囲１０７０としてもよい。また、特徴点は仮想物体のポリゴンの頂点や辺の中心や、面の中心としてよい。その他にも撮像部１２１で撮像された現実空間の画像から特徴点の検出を行うことによって、現実空間の特徴点を探索してもよい。現実空間の特徴点は、たとえば公知の特徴点検出技術であるＦＡＳＴ（Ｆｅａｔｕｒｅｓ  Ｆｒｏｍ  Ａｃｃｅｌｅｒａｔｅｄ  Ｓｅｇｍｅｎｔ  Ｔｅｓｔ）が挙げられる。ＦＡＳＴを用いることで特徴点の座標および特徴量の算出が可能となる。
【００７３】
現実空間の特徴点を探索する際には撮像部１２１とともに、特徴点の３次元位置を取得するための深度センサ付のカメラを用いる。３次元位置を取得するための方法であれば、撮像部１２１を二つにして対応する特徴点を見つけ、三角測量によって、深度を計測してもよいし、レーザーなどによる深度測定器を用いてもよい。探索の結果、特徴点が複数発見された場合は、例えば、最新の時刻の３次元ポインタの位置姿勢値や予測値にもっとも近い特徴点を３次元ポイント確定部に送出する。反対に、特徴点が発見されなかった場合は、３次元ポイント確定部に３次元ポイント位置無しという情報を送出する。
【００７４】
３次元ポイント確定部８０３は、入力受付部１３０から受け付けた体験者の確定指示を取得し、位置姿勢信頼度判断部８０１が合と判断している場合は、３次元ポイント計算部１０４が算出した３次元ポイント位置でのイベントを発行する。反対に否と判断している場合は３次元ポイント探索部８０２が探索して発見した特徴点を３次元ポイント位置としてイベントを発行する。３次元ポイント位置無しの場合はイベントを発行しない。発行されるイベントはユーザの入力や情報処理装置の設定に応じて切り替えて実施される。イベントの種類に応じて、否と判断された場合でも３次元ポイント計算部１０４が算出した３次元ポイント位置でのイベントを発行してもよい。
【００７５】
次に、本実施形態に係る情報処理装置１００が行う処理を、同処理のフローチャートを示す図１１を用いて説明する。図１１において、図３と同じ処理には同じ参照番号を付けており、その説明は省略する。
【００７６】
ステップＳ１１０１では、位置姿勢信頼度判断部８０１が位置姿勢の信頼度が閾値以上だった場合は合と判断して、ステップＳ１１０２に処理を移す。位置姿勢の信頼度が閾値未満だった場合は否と判断して、ステップＳ１１０３に処理を移す。
【００７７】
ステップＳ１１０２では、位置姿勢信頼度判断部８０１が合と判断した位置姿勢値とその時刻を位置姿勢データベース８００に送出する。位置姿勢データベース８００は送出された位置姿勢値とその時刻を保存する。
【００７８】
ステップＳ１１０３では、３次元ポイント探索部８０２が位置姿勢データベース８００から保存されている３次元ポインタの位置姿勢値と時刻を取得する。
【００７９】
ステップＳ１１０４では、３次元ポイント探索部８０２が位置姿勢データベース８００から取得した最新の時刻の３次元ポインタの位置姿勢値から閾値範囲内の特徴点を探索する。
【００８０】
ステップＳ１１０５では、３次元ポイント探索部８０２がステップＳ１１０４で探索した結果、特徴点が発見された場合はＳ１１０６に処理を移す。特徴点を発見できなかった場合はＳ１１０７に処理を移す。
【００８１】
ステップＳ１１０６では、３次元ポイント変更部１０５が３次元ポインタの色を３次元ポインタの位置が特徴点になっていること示す色に変更する。また、３次元ポイント探索部８０２が発見した特徴点の３次元位置姿勢値を３次元ポイント確定部８０３に送出する。
【００８２】
ステップＳ１１０７では、３次元ポイント変更部１０５が３次元ポインタの色をイベントが発行できない状態であることを示す色に変更する。
【００８３】
ステップＳ１１０８では、３次元ポイント確定部８０３が入力受付部１３０から体験者が確定を指示したか、そして、どのようなイベントを発行したかをチェックする。体験者が確定指示を出した場合には３次元ポイント確定部６０３が取得した３次元ポイントの位置でイベント実施部１０８にイベント情報を送出し、ステップＳ３０８に処理を移す。体験者が確定指示を出していない場合にはステップＳ３０９に処理を移す。
【００８４】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８５】
１００  情報処理装置
１０１  位置姿勢信頼度判断部
１０２  位置姿勢信頼度算出部
１０３  位置姿勢取得部
１０４  ３次元ポイント計算部
１０５  ３次元ポイント変更部
１０６  仮想物体データベース
１０７  ３次元ポイント確定部
１０８  イベント実施部
１０９  仮想物体描画部
１１０  合成部
１２０  ＨＭＤ
１２１  撮像部
１２２  表示部
１３０  入力受付部
【図１】
2019045997.tif 000003
【図２】
2019045997.tif 000004
【図３】
2019045997.tif 000005
【図４】
2019045997.tif 000006
【図５】
2019045997.tif 000007
【図６】
2019045997.tif 000008
【図７】
2019045997.tif 000009
【図８】
2019045997.tif 000010
【図９】
2019045997.tif 000011
【図１０】
2019045997.tif 000012
【図１１】
2019045997.tif 000013