(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023107369
(43)【公開日】2023-08-03
(54)【発明の名称】ネットワーク型VRシステム
(51)【国際特許分類】
G06T 19/00 20110101AFI20230727BHJP
【FI】
G06T19/00 300B
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022008537
(22)【出願日】2022-01-24
(71)【出願人】
【識別番号】321014724
【氏名又は名称】株式会社分子ロボット総合研究所
(74)【代理人】
【識別番号】100120916
【弁理士】
【氏名又は名称】佐藤 壽見子
(72)【発明者】
【氏名】小長谷 明彦
(72)【発明者】
【氏名】グタマン グレッグ
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050AA00
5B050BA04
5B050BA08
5B050BA09
5B050BA12
5B050CA07
5B050CA08
5B050DA01
5B050EA07
5B050EA24
5B050EA26
5B050FA02
(57)【要約】
【課題】遠隔サーバがバーチャルリアリティ(以下、「VR」)の3次元情報を生成し、この3次元情報を局所クライアントがレンダリングしてディスプレイに表示させる際に、遠隔サーバと局所クライアントとの間のラウンドトリップタイム(以下、「RTT」)を原因とする表示の不一致を解消するシステムを提供する。
【解決手段】局所クライアント1は、現在のタイムスタンプTにおける操作物体の位置を取得する手段と、現在のタイムスタンプTからdtミリ秒後の操作物体の予測位置を機械学習を利用して実時間に推論する手段と、推論による予測位置を遠隔サーバ2に送信し、この予測位置を用いて遠隔サーバ2が生成したVRの3次元情報を受信する手段と、生成されたVRの3次元情報をディスプレイに表示させる手段を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
VRの3次元情報を、操作者が装着するヘッドマウントディスプレイまたは2次元ディスプレイにレンダリングする局所クライアントと、VR上の仮想対象物の3次元情報を生成する遠隔サーバとからなるネットワーク型VRシステムであって、
前記局所クライアントは、レンダリングされた前記3次元情報の中から操作物体の現在のタイムスタンプTでの位置を取得する手段と、
現在のタイムスタンプTからdtミリ秒後の前記操作物体の予測位置を機械学習を利用したAI予測モデルを用いて実時間に推論する手段と、
前記推論による前記予測位置を前記遠隔サーバに送信し、該遠隔サーバによる前記予測位置を用いて生成したVRの3次元情報を受信する手段と、
前記ヘッドマウントディスプレイまたは2次元ディスプレイに前記生成されたVRの3次元情報を表示させる手段を備える
ことを特徴とするネットワーク型VRシステム。
【請求項2】
Tからdtミリ秒後の前記操作物体の予測位置と、Tからdtミリ秒経過したときの前記操作物体の実際の位置との差分を用いて実時間学習をし、この学習結果に基づいて前記AI予測モデルのパラメータを更新することを特徴とする請求項1に記載のネットワーク型VRシステム。
【請求項3】
Tからdtミリ秒後の前記予測位置と、Tからdtミリ秒経過したときの前記操作物体の実際の位置との差分が連続して異常値を示すときは、前記AI予測モデルのパラメータを再初期化する実時間監視手段をさらに備えることを特徴とする請求項2に記載のネットワーク型VRシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遠隔サーバがバーチャルリアリティ(以下、「VR」)の3次元情報を生成し、この3次元情報を局所クライアントがレンダリングしてディスプレイに表示させるネットワーク型VRシステムであって、遠隔サーバと局所クライアントとの間のラウンドトリップタイム(以下、「RTT」)を原因とする表示の不一致を解消するシステムに関する。
【背景技術】
【0002】
本発明者は微小管を用いた群ロボットの運動やNAを用いたナノ構造体をコンピュータ上で再現する粒子シミュレーションを開発したが、同時に処理すべき粒子数は数十万にのぼることもある。ヘッドマウントディスプレイを装着した操作者はVR上にのみ存在する仮想対象物(例:多数の原子からなる粒子)を自分の手の動き(ハンドジェスチャ)などで遠隔操作を行う。遠隔操作された仮想対象物の3次元情報を生成する処理は、遠隔サーバに実行させる。VRの3次元情報の生成に要するデータ数と演算処理数は膨大であることから、遠隔サーバは高性能であることが望まれ、複数の局所クライアントから接続される。
【0003】
高性能な遠隔サーバを利用することは、長所だけでなく、短所もある。それは、局所クライアントからの情報を遠隔サーバに伝達するためにかかる送信時間と、遠隔サーバ上で3次元情報を生成するための計算時間と、生成した3次元情報を局所クライアントに伝達するためにかかる受信時間とからなるRTTが発生するということである。
何らかの事情で通信が極端に遅くなったり、遠隔サーバの性能を上回るジョブが発生したために3次元情報の生成が著しく滞ったりしたときは、局所クライアント側はしばらく作業を中断し、様子を見て再開すればよい。
しかし問題は、遠隔操作時にRTTの発生が不可避であるということである。
【0004】
RTTが発生する以上、操作物体(例:操作者の手)の現在の動きに完全に即応したVRの3次元情報をレンダリングすることは不可能であって、RTTの分だけ古いVRの3次元情報がレンダリングされることになる。これでは操作物体の実際の動きとVR上の仮想対象物のレンダリングとが一致せず、操作者を苛立たせ思考の妨げとなってしまう。
【0005】
このような問題意識のもと、本発明者が発表した非特許文献1では、RTTの分だけ未来の操作物体の位置を予測し、この予測位置に基づく仮想対象物の3次元情報を取得することを提案した。予測には、回帰式を利用する場合と機械学習を利用する場合が考えられるので、それぞれについて実験を試みた。
その結果RTTが少ないときは、いずれの結果も大差はないが、RTTが大になるほど、機械学習に比べて回帰予測はエラーが発生しやすいことが判明した。
そこで、機械学習を利用して操作物体の移動を予測する方法を採用したのであるが、ここでも問題が残る。すなわち、dtミリ秒後の予測位置と実際にdtミリ秒経過したときの物体の位置とにギャップが生ずるという問題である。
【0006】
これを解消するために非特許文献1では、所定時間内のギャップをもとに実時間で学習して機械学習のパラメータを更新し、更新後のパラメータを操作物体の動きの予測に直ちに利用、すなわち実時間推論をしようとするのである。予測した位置にある操作物体と生成された3次元情報を同時にVR上に表示させれば、ほとんど違和感を与えずにすむ。もちろん操作物体の現在の位置と予測した位置とはギャップがあるであろうが、このギャップをもとに局所クライアントは機械学習を利用した予測モデルのパラメータを実時間で更新する。つまり、局所クライアントは、実時間推論と実時間学習とを並列で行うのである。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Gutmann, G., Konagaya, A.: Real-time inferencing and training of artificial neural network for adaptive latency negation in distributed virtual environments. In: 2020 International Congress on Human-Computer Interaction, Optimization and Robotic Applications (HORA), pp. 1-8. IEEE (2020)DOI: 10.1109/HORA49412.2020.9152833
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1には、課題の提示、複数条件下での実験結果の比較、今後の展望等が記載されているが、実運用に移行できるような具体的な手段は明示されていない。また、操作物体の予測位置と実際の位置とのギャップが異常である場合の対応については特に言及していない。
そこで、本発明は、実用に耐えるシステムとするために、操作物体の予測位置の精度を高める手法と、予測位置と実際の位置とのギャップが異常と判断せざるをえない場合の解決を意図したものである。
【課題を解決するための手段】
【0009】
前記の課題解決のために、請求項1に係る発明は、
VRの3次元情報を、操作者が装着するヘッドマウントディスプレイまたは2次元ディスプレイにレンダリングする局所クライアントと、VR上の仮想対象物の3次元情報を生成する遠隔サーバとからなるネットワーク型VRシステムであって、
前記局所クライアントは、レンダリングされた前記3次元情報の中から操作物体の現在のタイムスタンプTでの位置を取得する手段と、
現在のタイムスタンプTからdtミリ秒後の前記操作物体の予測位置を機械学習を利用したAI予測モデルを用いて実時間に推論する手段と、
前記推論による前記予測位置を前記遠隔サーバに送信し、該遠隔サーバによる前記予測位置を用いて生成したVRの3次元情報を受信する手段と、
前記ヘッドマウントディスプレイまたは2次元ディスプレイに前記生成されたVRの3次元情報を表示させる手段を備えることを特徴とする。
ここで、dtはRTTのことである。
つまり、RTT分だけ未来の操作物体の位置を予測し、この予測位置に基づくVRの3次元情報をレンダリングしようとするのが、本発明の主題である。これにより、操作者による現在の実際の操作とVRの3次元情報との表示の不一致が減少し、快適に操作ができる。
なお、前記操作物体は下記の実施の形態では操作者の両手であるが、何らかの物体でもロボットでもなんでもよい。
【0010】
Tからdtミリ秒後の前記操作物体の予測位置と、Tからdtミリ秒経過したときの前記操作物体の実際の位置との差分を用いて実時間学習をし、この学習結果に基づいて前記AI予測モデルのパラメータを更新することが望ましい。
これにより、予測位置と実際の位置とのギャップが累積することなく、妥当な位置の予測が期待できる。
【0011】
Tからdtミリ秒後の前記予測位置と、Tからdtミリ秒経過したときの前記操作物体の実際の位置との差分が連続して異常値を示すときは、前記AI予測モデルのパラメータを再初期化する実時間監視手段をさらに備えることが望ましい。
これにより、意味のない操作を続けるようなことはせず、AI予測モデルの問題点などを見直すきっかけとなる。
【発明の効果】
【0012】
VRの3次元情報を、3次元あるいは2次元ディスプレイ上でリアルタイムに表示できるので、操作者にとって違和感のない表示が得られ、思考を妨げられることなく快適かつ効率的に作業が進捗する。
【図面の簡単な説明】
【0013】
【
図2】操作物体の実際の位置と予測位置を対比する図である。
【
図3】局所クライアントと遠隔サーバとの連携処理を説明する図である。
【
図4】第1の実施の形態にかかるシステムの全体構成及び各構成要素のブロック構造を示す図である。
【
図5】第1の実施の形態にかかる処理全体のフロー図である。
【
図6】第1の実施の形態にかかる学習データに適しない操作物体の予測位置を排除する処理のフロー図である。
【
図7】第1の実施の形態にかかるAI予測モデルのパラメータを再初期化するべき場合を説明する図である。
【
図8】第1の実施の形態にかかるRTTの変化を説明する図である。
【
図9】第1の実施の形態にかかる局所クライアントと遠隔サーバが非同期に実行する 場合を説明する図である。
【発明を実施するための形態】
【0014】
本発明の実施の形態のシステム(以下、「本システム」)について、下記の順に説明する。
〔1〕本システムの概要
〔1-1〕RTTの意味
〔1-2〕操作物体の動き
〔1-3〕局所クライアントと遠隔サーバの連携
〔2〕本システムの構成
〔2-1〕システムの全体構成
〔2-2〕機能ブロック構成
〔3〕本システムの動作
〔3-1〕全体処理フロー
〔3-2〕学習データの適否監視
〔3-3〕RTTの変化
【0015】
〔1〕本システムの概要
まず、本システムにとって重要な概念であるRTTと,それに関連する事項について述べることとする。
【0016】
〔1-1〕RTTの意味
RTTとは、局所クライアントから遠隔サーバに送信して、遠隔サーバ上で3次元情報生成処理を実行して、処理結果を局所クライアントが受理するまでの合計時間のことであり、
図1の例に従い説明する。
図1の左側に記載のT0,T1,・・・はタイムスタンプ(integerで表現したTime of day(ミリ秒))を表し、等間隔である。S0,S1,・・・は送信タイムスタンプであり、R0,R1,・・・は受信タイムスタンプである。
図1の例では、S0は時刻T0のときの送信タイムスタンプであり、R0は時刻T2のときの受信タイムスタンプである。
図1では、時刻がT0(=S0)のときに送信された情報は、遠隔サーバで処理され、その結果が時刻T2(=R0)のときに受信される。このときのRTTはR0-S0(=T2-T0)である。時刻がT1(=S1)のときに送信された情報は、遠隔サーバで処理され、その結果が時刻T4(=R2)のときに受信される。このときのRTTはR2-S1(=T4-T1)である。
【0017】
ここで、T1の送信タイムスタンプをもつRTTは、T0の送信タイムスタンプをもつRTTの1.5倍の時間を要している。このように、RTTは通信環境などによって変動する。このRTTの変化については後述する。
なお、送信時と受信時の組み合わせは過去2秒分ほど短期記憶に保存しておく。この情報もAI予測モデルを利用した実時間推論で参照することがあるからである。
【0018】
〔1-2〕操作物体の動き
本システムは実時間推論と実時間学習とを同時並行的に行うことによって、RTTによってひきおこされる3次元情報表示の遅れを解消することを目的とする。遅れの解消が、なぜ解決を要すべき問題となるのかを
図2に従い説明する。
X(T)は現在(タイムスタンプT)の操作物体の実際の位置である。この位置情報を遠隔サーバに送信しても、結果がかえってきたときは、操作物体はX(T+RTT)の位置にある。遠隔サーバは操作物体がX(T)の位置にあるものとして3次元情報を生成するならば、この3次元情報は現在の操作物体の位置X(T+RTT)からギャップのあるものとなって、これをディスプレイ表示すると操作者に違和感を与えてしまう。そこで、TからRTT後の物体の位置を予測して、この予測位置f(X(T),RTT)を現在のX(T)のかわりに遠隔サーバに送信するのである。しかし、表示の遅れを解消するために、予測位置を利用することで、別の問題が生ずる。すなわち、予測位置f(X(T),RTT)とTからRTT後の実際の位置X(T+RTT)とでは、完全には一致しないのが通常という問題である。
【0019】
この不一致をいかに少なくするかが本システムにおいて重要である。
ところが、操作物体が人間の手指とすると、問題がより複雑になる。なぜならば、手指の動きの自由度はきわめて高く、動く速度も一定しない。たとえば、手のひらを横に移動させるときと、指を折り曲げるときとでは、速度が異なる。
したがって、いかに操作物体の位置を的確に予測するかが重要なのである。予測の手法として2次多項式を用いた回帰予測や機械学習を利用した予測などがある。回帰予測は、RTTが小さい値のときは機械学習を利用した場合と遜色はないが、RTTが大となるにつれて予測エラー、つまり実際の位置とかけはなれた予測となる可能性が高まる。そのため、本システムでは機械学習を利用して予測をすることとしたのである。
【0020】
なお、機械学習には大量のデータを収集し、収集済のデータを対象にオフラインで学習する場合もあるが、本システムでは、ユーザの操作によって得られたデータを実時間で学習し、AI予測モデルのパラメータを逐次更新する。これによって、ユーザの操作が直ちに推論に反映されて実際の位置とのギャップの小さい予測が可能となる。
図2の場合、TからRTT経過後の予測位置と実際の位置の差分が直ちに学習されると、時刻T+RTTからさらにRTT経過後の予測位置と実際の位置のギャップは縮小しうるのである。
機械学習の手法はADAM(Adaptive Moment Estimation)など多数提案されているので、適宜選択すればよい。
【0021】
〔1-3〕局所クライアントと遠隔サーバの連携
本システムは、大量のデータ処理を遠隔サーバが担っている。この膨大な演算は高性能かつ高価格の遠隔サーバに分担させ、設計作業等をする操作者は自分が装着するヘッドマウントディスプレイと接続するパソコン(局所クライアント)から遠隔サーバの機能を利用するのである。
図3は、局所クライアントと遠隔サーバとの連携動作を説明する図である。
局所クライアントがS0のときに送信した情報から遠隔サーバが生成した結果を局所クライアントに送り返す(ステップF101。以下、単に「F101」のように記載する)。このときのRTTはR0-S0(=RTT0)である。局所クライアントは、現在時刻S1からRTT0後の操作物体の位置を予測し(F102)、遠隔サーバに送信する(F103)。遠隔サーバは、時刻S1+RTT0の予測値を用いて3次元情報を生成し(F104)、局所クライアントへ送信する(F106)。遠隔サーバによる3次元情報の生成と並行して、局所クライアントは時刻R0で受信した3次元情報をレンダリングする(F105)。局所クライアントは、受信した時刻R1においてRTTをR1-S1(=RTT1)に更新し、現在の時刻S2にRTT1を加算した時刻での物体の位置を予測する(F107)。予測値は遠隔サーバへ送信され(F108)、遠隔サーバは、時刻S2+RTT1での予測値を用いて3次元情報を生成し(F109)、局所クライアントへ送信する(F110)。このように、局所クライアント側のレンダリングと遠隔サーバ側の3次元情報生成(以下、「シミュレーション」ということもある)は交互に実行されるのが、基本的な連携動作である。
【0022】
現在時刻からRTT分進んだ時刻の操作物体の位置を予測するのであるが、
図3の例では、直近の送信時刻と受信時刻との差をRTTの値としている。したがって、RTTは一定の値をとるとは限らない。そのため、
図3のような局所クライアントと遠隔サーバが交互に実行することは現実的ではなく、実際は後述する
図9のような非同期の実行となる。
【0023】
以上、本システムにとって重要な、〔1-1〕RTTの概念と、〔1-2〕操作物体の将来の予測位置を遠隔サーバに送信することの意味と、〔1-3〕局所クライアントと遠隔サーバとの連携について説明した。
次に、本システムの構成を説明する。
【0024】
〔2〕本システムの構成
〔2-1〕システムの全体構成
本システムは、
図4に示すように、局所クライアント1(以下、「クライアント1」)が遠隔サーバ2(以下、「サーバ2」)と通信ネットワークNを介して接続している。
クライアント1は、ヘッドマウントディスプレイ3から受信した操作物体の現在位置をもとに、dtミリ秒後の位置を予測し、サーバ2が生成した3次元情報をレンダリングしてヘッドマウントディスプレイ3上に表示させる。
【0025】
このように、クライアント1とサーバ2とが通信ネットワークNで接続し、役割分担をしていることから、RTTの問題が生ずるのである。
ただし、本システムで課題とするRTTは、サーバ2との間で通常発生するものに限られ、通信会社で発生したトラブル由来の長時間続く遅延や、サーバ2の性能を超えるジョブ発生による処理渋滞を原因とする遅延への対応は想定していない。このような異常な遅延が発生したときは、操作者(以下、「ユーザ」という)の作業を中断させてトラブルが解消した後に再開すればよいのである。
【0026】
〔2-2〕機能ブロック構成
クライアント1は、
図4に示すように、現在位置入力部11と、実時間推論部12と、実時間学習部13と、実時間監視部14と、サーバ送受信部15と、レンダリング処理部16を備える。他に、キーボード、マウス、ディスプレイ、プリンタなどの入出力部、コンピュータプログラムや処理結果などを格納する記憶部も備える。
【0027】
現在位置入力部11は、ヘッドマウントディスプレイ3に付属する立体カメラ31が、Leap Motion社の「Leap Motion」などを使用して捕捉したユーザの手の位置を受信する。手の位置は、10本の指先端の座標で表してもよいが、手のひらの中央部の座標を追加してもよい。
【0028】
実時間推論部12は、実際の手の位置を受信した時刻をTとすると、機械学習で得られた実時間AI予測モデルの変数として現在の実際の位置と、dtの値を入力し、T+dtのときの手の位置を予測する。このdtとして本実施形態では直近のRTTを用いる。RTTの値はクライアント1とサーバ2との連携動作毎に可変となるが、以下の説明では、RTTの添え字は省略し単にdtと表現する。また、予測された位置にある手を仮想ハンドということもある。
【0029】
実時間学習部13は、現在からdtミリ秒後の仮想ハンドの位置と、立体カメラ31によって捕捉されたTからdtミリ秒経過時の実際の手の位置との差分を用いて、機械学習によって実時間AI予測モデルのパラメータを更新し、これを実時間推論部12に渡す。
【0030】
実時間監視部14は、実時間学習部13が仮想ハンドの位置と実際の手の位置との差分に従い学習する際に、差分が適正か監視し所定の閾値を超えているときは、学習対象から除外し、実時間AI予測モデルを再初期化する。
【0031】
サーバ送受信部15は、サーバ2に、現在からdtミリ秒後の仮想ハンドの位置を送信し、予測位置に基づいて生成した3次元情報をサーバ2から受信する。この3次元情報とは、ユーザの手によって操作される仮想対象物(実在せず、VR空間でのみ存在してメガネ型ディスプレイ32に表示される)の状態をいう。
【0032】
レンダリング処理部16は、サーバ2から受信したシミュレーション結果と、実時間推論部12が予測した位置にある仮想ハンドを組み合わせて、ヘッドマウントディスプレイ3のメガネ型ディスプレイ32に表示させる。
【0033】
サーバ2は、クライアント1と情報の送受信をするクライアント送受信部21と、シミュレーションを行う3次元情報生成部22を備える。他に、キーボード、マウス、ディスプレイ、プリンタなどの入出力部、コンピュータプログラムや処理結果などを格納する記憶部も備える。
【0034】
ヘッドマウントディスプレイ3は、ユーザの手の動きを撮影する立体カメラ31と、VR上の仮想対象物をユーザの目に投影させるメガネ型ディスプレイ32を備える。
以上、本システムの構成を説明した。続いて、 本システムの動作について説明する。
【0035】
〔3〕本システムの動作
〔3-1〕全体処理フロー
続いて、
図5を参照しながら、本システム全体の処理を説明する。
ユーザが、ヘッドマウントディスプレイ3を装着すると、VR空間上の仮想対象物がメガネ型ディスプレイ32に表示される。これがあたかも眼前に実在するかのようにハンドジェスチャで操作すると、ユーザの手の動きに連動して仮想対象物も変化して見えるのである。
ヘッドマウントディスプレイ3に付属する立体カメラ31が捕捉したユーザの現在の手の位置をクライアント1が受信する(ステップF1,以後、単に「F1」のように記す)。
【0036】
このときの時刻情報をタイムスタンプTとする。F1で取得した現在位置を実時間学習プロセスに送信する(F2)。実時間学習プロセスには、後述するF11において現在よりもdtミリ秒前の仮想ハンドの位置も送信される。このように記憶部には同一タイムスタンプの実際の位置と予測位置のデータが蓄積される(F3)。F3で蓄積しているデータは、予測位置と実測値とでは通常ギャップがあるので、このギャップを用いたAI予測モデルを実時間学習する(F4)。実時間学習とはデータが入力される都度、AI予測モデルのパラメータを更新していく意味であり、集積済のデータを事後的に学習するのではない。
F4での学習によってAI予測モデルのパラメータ情報は更新される(F5)。F5で更新されたパラメータは直ちに推論プロセスに出力され(F6)、カメラ31から取得した現在位置情報に基づいてdtミリ秒後の手の位置が予測される(F7)。これがT+dtミリ秒のタイムスタンプが付与された仮想ハンドの位置となり、サーバ2に送信される(F8)。送信時のタイムスタンプをSiとする。
【0037】
サーバ2は、T+dtミリ秒での仮想ハンドの位置を用いたシミュレーション処理を実行し(F9)、クライアント1がタイムスタンプRiのときに実行結果を受信する(F10)。サーバ2から受信するまでにdtミリ秒かかっているので、現在の時刻はT+dtであり、この予測位置は、現時点(Tからdt経過している)でカメラ31から入力された現在の実測値と時間は同一であるとみなす。そこで、この予測位置は実時間学習プロセスの入力値となる(F11)。このように、仮想ハンドの位置を予測する推論プロセスと、AI予測モデルのパラメータを機械学習によって更新する学習プロセスは並行して実行されるのである。
サーバ2によって生成されたシミュレーション結果はクライアント1がレンダリングして(F12)、メガネ型端末32に表示させる(F13)。シミュレーション結果をVR空間上に表示させるソフトウェアは市販されているので、それを用いることもできる。
【0038】
〔3-2〕学習データの適否監視
図5のステップF3において、実時間学習のためのデータを蓄積しているが、学習に適さない不良データが含まれるときは、これを監視して実時間で排除しなくてはならない。これについて、
図6を参照しながら説明する。この実時間監視のプロセスは、
図5のステップF3の処理から呼び出される。
【0039】
時刻Tからdt後の実際の手の現在位置(X(T+dt))と、タイムスタンプT+dtを持つ仮想ハンドの予測位置(f(X(T)、dt))とがステップF3から出力される(ステップF201)。このとき、カウンター変数#Rにゼロをセットしておく(F202)。
両者のギャップが所定の正常値の範囲内にあれば(F203でYes)、カウンター変数#Rにゼロをセットする(F204)。そして、直近S秒間に実行したRTTに対して、次の項目を監視する(F205)。すなわち、
・物体の平均移動速度Vave
・物体の平均移動距離Xave
・現在位置と予測位置とのギャップE(T+dt)
・RTTの最大値、平均値、分散
上記項目の監視後、再びF203へ遷移する。
なお、RTTの最大値、平均値等は、実時間監視アルゴリズムの解析および改善に使用される。
【0040】
ギャップが正常範囲内になければ(F203でNo)、カウンター変数#Rに1を加算する(F206)。#Rが所定の閾値Lを越えても現在位置と予測位置のギャップの改善が得られないならば(F207でYes)、実時間推論が失敗した等と判断して、実時間AI予測モデルを再初期化する(F208)。現在位置と予測位置のギャップの改善が得られるならば(F207でNo)、平均移動速度と平均移動距離を参照する(F209)。
少なくとも一方が人間の物理的限界を超えていれば(F209でYes)、立体カメラ31の不調などが発生したと判断し、時刻T+dtの現在位置は入力エラーとみなして無視する(F210)。F209で、入力エラーとは判断できないとき(F209でNo)は、極端なネット遅延などが発生したと判断し、クライアント1からサーバ2にdt後の物体位置を送って、シミュレーション結果が返ってくるまでのRTTを計測する(F211)。
F210あるいはF211のときは、実時間学習は継続しつつ様子を見て(F212)、F205の各項目を監視し、F203に遷移する。
【0041】
実時間監視について、具体例で説明する。
図7の例で、P0は実際の手の位置、P1はP0からdt経過後の実際の位置、VP1はP0からdt後の仮想ハンドの予測位置、g1はP1とVP1とのギャップを表すものとする。同様に、P2はP1からdt経過後の実際の位置、VP2はP1からdt後の仮想ハンドの予測位置、g2はP2とVP2とのギャップを表すものとする。P3,P4等も同様である。
ここで、ギャップg1,g2,g3,g4が正常範囲内には無いとすると、
図6の#Rは値4をとる。もし、閾値L=3とすると#R>Lとなり、ギャップの改善が得られないならばAI予測モデルを再初期化することになる。
【0042】
上記の〔3-1〕および〔3-2〕において、本システムの動作をひととおり説明した。ユーザの手の位置と仮想ハンドの位置とのギャップを極力解消するために、実時間学習と実時間推論とを同時並行で実行し、学習によって更新されたパラメータを直ちに推論に利用することが第一に着目するべき点であった。しかし、本システムでは手の位置のギャップのほかにRTTが一定ではないという不確定要素があるので、この点につき、
図8を参照しながら説明する。
【0043】
〔3-3〕RTTの変化
図8の例では、タイムスタンプs1(=0)のときにサーバ2に送信してから、サーバ2の処理結果を受理したr1(=50)までのRTT1は50である。同様にs2のときに送信し、r2で受理したときのRTT2は60である。ここで、RTTは50から60への遅延が発生した。さらにRTT3は70となり、直近の60から70への遅延が発生した。その後、RTT4,RTT5、・・・は継続して70の値をとった。
RTTは50~70ミリ秒であれば想定の範囲であり、しかも、70に変化してからRTTが安定しているので、問題ないといえる。仮想ハンドの位置を予測するときdtを50->60->70に変更すればよい。ただし、RTTが50~70ミリ秒の範囲にあっても頻繁に変化する場合は、原因を突き止めておくことが好ましい。そのためにも、
図1に図示したように、直近の2秒分くらいのRTTの記録をとっておくとよい。
【0044】
なお、
図8で使用したRTTの値はあくまでも参考例であり、本発明の範囲を限定するものではない。一般に、2次元ディスプレイであれば、レンダリングに必要な時間は60Hz、すなわち、約16.7ミリ秒以下であり、VRヘッドセットであれば90Hzから120Hz、すなわち、約11.1ミリ秒から8.3ミリ秒以下である。また、サーバでのシミュレーションステップ実行時間はレンダリングに必要な時間よりも短い方が望ましく、短ければ短いほどシミュレーションの精度は向上する。さらに、通常の通信環境でのクライアントとサーバ間の転送時間は、LAN環境では数ミリ秒以下、WAN環境やWiFi環境では数ミリ秒から数10ミリ秒程度である。さらに、海底ケーブルを介して海外のサーバを利用した場合はRTTの値は約200ミリ秒ほどかかるときがあるが、本発明で十分対応できる範囲である。
【0045】
RTTが変化するのであれば、クライアント1側のレンダリング処理とサーバ2側のシミュレーション処理とは
図3に示したように同期することはありえず、
図9のように非同期となる。シミュレーションsim1では、直近に受信した時刻S1+RTT0での仮想ハンドの位置を使って3次元情報を生成する。シミュレーションsim2,sim3では、次の仮想ハンドの新規の位置情報が送信されてこないので、時刻s1+RTT0+n*step後(n=1,2,・・・)の仮想ハンドの位置をサーバ2が予測して3次元情報を生成する。シミュレーションsim4では、直近に受信した時刻S2+RTT1での仮想ハンドの位置を使って3次元情報を生成する。つまり、シミュレーションsim2,sim3などは、3次元情報をレンダリングしてディスプレイ表示する際に、不自然な描画とならないように補間するデータを生成しているのである。
【0046】
以上、本発明の実施の形態について説明したが、本発明は上記の実施の形態に限定されるものではない。特許請求の範囲に記載された内容を逸脱しない範囲でさまざまに変形して実施することができる。
例えば、ディスプレイはメガネ型ディスプレイに限らず、2次元ディスプレイでもよい。
また、遠隔サーバでは3次元情報の生成のみ実行しているが、実時間推論と実時間学習を遠隔サーバで実行し、クライアントはレンダリングのみ実行してもかまわない。
【産業上の利用可能性】
【0047】
本発明は、DNAを用いたナノ構造体の設計などの理工学的用途のほかに、ゲームをはじめとするエンタテインメント分野など多方面において広く活用されることが期待できる。
【符号の説明】
【0048】
1:局所クライアント
11:現在位置入力部
12:実時間推論部
13:実時間学習部
14:実時間監視部
15:サーバ送受信部
16:レンダリング処理部
2:遠隔サーバ
21:クライアント送受信部
22:3次元情報生成部
3:ヘッドマウントディスプレイ
31:立体カメラ
32:メガネ型ディスプレイ
N:通信ネットワーク