コンピュータ拡張環境は、物理的空間および/または仮想空間を強化するための情報をセンサが収集する環境を含み得る。物理的空間、仮想空間または複合空間における人間のインタラクションは、ユーザの体験を拡張するように設計された、機械により生成される情報により強化され得る。例として、コンピュータ拡張環境は、物理的空間から獲得されるセンサデータに基づき現実と仮想との複合環境およびヒューマンマシンインタラクションがコンピュータ技術により生成される、拡大現実(XR)を含み得る。拡大現実は、例として、拡張現実(AR)、拡張仮想(AV)、仮想現実(VR)、複合現実(MR)を含み得る。コンピュータ拡張環境は、物理的空間、仮想空間または両方における変化に基づく情報を生成するために、リアルタイムのデータの獲得および処理に依拠することもある。他の例では、コミュータ拡張環境は、ドローン、自動運転車、コンベアベルトなどの他のシステムにアクセスすることも、またはそれを含むこともある。
コンピュータ拡張環境は、環境についての豊富な情報ソースを提供するセンサから情報を導出してもよい。コンピュータ拡張環境は、環境の現在または過去の状態に基づきユーザに情報を提供し得るが、考えられる将来の状態に基づくフィードバックの提供は不十分である。さらに、センサから導出される膨大な量の情報が、ストレージおよび処理の非効率をもたらすこともある。機械学習および人工知能のフレームワークによる処理およびストレージの要求が、リアルタイム(または準リアルタイム)の体験にさらに制約を加えることもある。
本願明細書に記載のシステムおよび方法は、本願明細書に記載されるいくつかの特徴の中でも特に、仮想現実および/または拡張現実のシナリオに基づくコンピュータ拡張環境におけるユーザ体験を支援および誘導するために、解析および機械学習を応用し得る。履歴データおよび/またはライブデータが、ユーザの次のアクションを予測するために活用されてもよい。例として、是正提案が、予測される誤りを回避するようユーザを誘導してもよい。あるいは、またはさらに、予測は、コンピュータ拡張環境の全体的なパフォーマンスを改善するための根拠として使用されてもよい。
導入となる例として、システムは、フィルタ基準および予測モデルを含む設定パラメータを受信してもよい。フィルタ基準は、許可対象イベント識別子および予測モデルを含んでもよい。システムは、コンピュータ拡張環境からセンサデータをリアルタイムで受信してもよい。コンピュータ拡張環境は、物理的空間に関係する仮想シーンを表示するように構成された、ヘッドセットなどの表示デバイスを含んでもよい。システムは、センサデータから導出されたイベントを生成してもよく、イベントは、物理的空間における動きを示す。システムは、生成されたイベントから、フィルタ基準に含まれる許可対象イベント識別子に対応するイベントのみを選択してもよい。システムは、予測モデルと、選択されたイベントのうちの少なくとも1つとに基づき、イベントを予想してもよい。システムは、予想されるイベントを示すアクションメッセージを生成してもよい。システムは、予想されるイベントが発生する前に、コンピュータ拡張環境にアクションメッセージを表示させてもよい。
別の例において、システムは、履歴データベースからセンサデータを取得してもよい。センサデータは、コンピュータ拡張環境に含まれるセンサにより以前にもたらされたものであってもよい。システムは、センサデータから導出された第1のイベントを生成してもよい。システムは、第1のイベントの後に第2のイベントが発生する信頼度測定値を予測モデルに基づき判断してもよい。システムは、信頼度測定値が信頼度閾値よりも大きいと判断してもよい。システムは、信頼度測定値が信頼度閾値よりも大きいことに応答して、リアルタイムプラットフォームが予測モデルを用いて第2のイベントを予想して第2のイベントに基づきコンピュータ拡張環境にメッセージを伝達することを許可するフィルタ基準を生成してもよい。システムは、フィルタ基準および予測モデルを設定パラメータとしてリアルタイムプラットフォームに送信してもよい。
本願明細書に記載のシステムおよび方法により提供される技術的な進歩の一例は、現在のイベントを導出するためまたは将来のイベントを予測するために使用されるモデルに対する入力をフィルタリングするイベント削減を実行することにより処理時間が改善されることであろう。例として、特定の予測の信頼度が事前に判断されてもよい。フィルタ基準は、信頼度閾値を使用して生成されてもよく、どの特徴が予測モデルに適用されるべきかを規定してもよく、結果としてイベント処理が全体的に削減される。信頼度閾値は、コンピュータ拡張環境、ユーザまたはその他関連性のある要素に基づき調整されてもよい。より低い信頼度(つまり、より多数の予測が受領される)は、ユーザアクションが高リスクまたは危険な活動である場合に許容可能とされ得る。より高い信頼度は、正確な予測が望ましい場合に許容可能とされ得る。
本願明細書に記載のシステムおよび方法により提供される技術的なもう1つの進歩は、センサデータを処理するためにアクセスされるモデル、セッティングおよび論理が、強化され複数のリアルタイム処理システムに展開され得るということであろう。例として、リアルタイム学習プラットフォームは、リアルタイムプラットフォームがリアルタイムで動作する間、特徴モデル、選択モデルおよび/またはフィルタ基準を強化してもよい。リアルタイムプラットフォームは、コンピュータ拡張環境、リアルタイムプラットフォームおよび学習プラットフォームの間の結合を最小化して結束性を最大化する、あらかじめ確立されているプロトコルに従って学習プラットフォームにセンサデータを転送してもよい。学習プラットフォームは、特徴モデル、予測モデルおよび/またはフィルタ基準を、コンピュータ拡張環境(単数または複数)、個々のユーザまたはその他関連性のある要素に基づき適応させてもよい。学習プラットフォームは、カスタマイズされたモデルおよびパラメータがリアルタイムプラットフォーム上で設定される、展開および更新を実行してもよい。本願明細書に記載のシステムおよび方法における、追加の、または代わりの技術的進歩が明らかにされる。
図1は、リアルタイムフィードバックシステム100の例を示す。システム100は、拡大現実データから洞察およびアクションを生成してもよい。システム100は、獲得されたデータに基づき特徴を導出してもよい。特徴は、複数の解析モデルに入力されてもよい。例として、解析モデルは、特徴に基づき訓練されてもよい。システム100は、訓練されたモデルにアクセスしてライブストリームから予測を生成し、フィードバックをユーザにリアルタイムで伝達してもよい。システム100は、現在および将来のユーザのパフォーマンスを改善するために過去のユーザから学習してもよい。
システム100は、リアルタイムプラットフォーム102、学習プラットフォーム104および/またはコンピュータ拡張環境106を含んでもよい。リアルタイムプラットフォーム102は、コンピュータ拡張環境106が発するリアルタイムセンサデータおよび/または生のイベントを受信してもよい。リアルタイムプラットフォーム102は、コンピュータ拡張環境106に対するアクションフィードバックを生成してもよい。アクションフィードバックは、予測されるユーザアクションを示してもよい。例として、アクションフィードバックは、表示デバイス、スピーカ、物理的なフィードバックを提供するアクチュエータ、または視覚的、物理的もしくは可聴のフィードバックにより情報を伝える他の何らかのデバイスなど、1つ以上のデバイスを介してユーザに伝達される情報を含んでもよい。一例において、アクションフィードバックは、1つ以上のイベントを予測するのに応答して生成されるメッセージを含んでもよい。別の例において、アクションフィードバックは、ハプティックアクチュエータなど、ユーザに物理的感覚を感じさせるアクチュエータをアクティブ化するための命令を含んでもよい。
リアルタイムプラットフォーム102は、1つ以上のタイムスパンにわたってコンピュータ拡張環境106からイベントを導出してもよい。イベントは、特徴選択によりフィルタリングされ、訓練された予測モデルに入力として適用されてもよい。イベント削減は、予測に最も重要な特徴を維持するため、および/または計算時間を削減するために、相関調査を利用してもよい。訓練された予測モデルは、選択されたイベントを、将来のイベント(つまりユーザの将来のアクション)を推論するための入力として利用してもよい。これらの予測されるイベント、またはイベントにマッピングされたメッセージは、コンピュータ拡張環境106に返されてもよく、そこで推奨、警告または指針がユーザにリアルタイムで提供されてもよい。
学習プラットフォーム104は、リアルタイムプラットフォーム102のためのモデル、論理、セッティングおよびその他パラメータを訓練および/または生成してもよい。例として、学習プラットフォーム104は、リアルタイムプラットフォーム102(またはリアルタイムプラットフォームの複数のインスタンス)を展開および/または設定してもよい。学習プラットフォーム104は、設定パラメータをリアルタイムプラットフォーム102に伝達する。設定パラメータは、センサデータの分析、イベントの予測、アクションフィードバックの生成、イベントの削減、処理時間の改善および/または本願明細書において意図される他の動作の実行をするためにリアルタイムプラットフォーム102がアクセス可能な、モデル、論理、セッティングおよびその他情報を含んでもよい。設定パラメータは、特定のコンピュータ拡張環境、XRシナリオおよび/またはコンピュータ拡張環境106のユーザに適応させられてもよい。あるいは、またはさらに、設定パラメータは、処理速度、メモリ使用量、スループット、レイテンシおよびその他パフォーマンス測定値の点でリアルタイムプラットフォーム102のパフォーマンスを向上させるように適応させられてもよい。
一部の例において、設定パラメータは、特徴モデル(単数または複数)、予測モデル(単数または複数)、フィルタ基準(単数または複数)、アクションマッピング(単数または複数)のうちの1つ以上を含んでもよい。概して、特徴モデルは、センサデータおよび/または生のイベント情報に基づきイベントを導出するように訓練されてもよい。予測モデルは、導出されたイベント、生のイベントおよび/またはセンサデータに基づきイベントを予測してもよい。アクションマッピングは、予測されるイベントを、アクションフィードバックに含めるメッセージにマッピングしてもよい。フィルタ基準は、情報がどのようにリアルタイムプラットフォーム102内へ、その中を、およびその外へ流れるかを制御するための、リアルタイムプラットフォーム102が応じる情報を含んでもよい。あるいは、またはさらに、フィルタ基準は、リアルタイムプラットフォームにより導出または予測されるいくつかのイベントを削減してもよい。例として、リアルタイムプラットフォーム102は、評価されるべき情報および無視されるべき情報を、リアルタイムプラットフォーム102の様々な段階を通してフィルタ基準に基づき選択してもよい。特徴モデル、予測モデル、アクションマッピングおよびフィルタ基準については、図2〜図5を参照して後述される。
学習プラットフォーム104は、コンピュータ拡張環境106および/またはリアルタイムプラットフォーム102により生成されるセンサデータおよび/または生のイベントを受信してもよい。一部の例において、リアルタイムプラットフォーム102は、学習プラットフォーム104に準拠した所定のフォーマットにセンサデータをフォーマット設定し直してもよい。例として、所定のフォーマットは、データ構造の定義、または(例としてAPIコールを介して)学習プラットフォーム104によって構文解析可能な他の何らかの構造を含んでもよい。動作中、複数のリアルタイムプラットフォームが、情報を学習プラットフォーム104に転送してもよい。学習プラットフォーム104は、データを集約して、リアルタイムプラットフォーム102によりアクセスされるモデル、論理およびその他パラメータを洗練してもよい。したがって、リアルタイムプラットフォーム102の洗練および改善は、オフラインで、且つ一部の例においてはリアルタイムプラットフォーム102の動作と同時に発生してもよい。
コンピュータ拡張環境106は、拡大現実を提供してもよい。拡大現実は、例として、拡張現実(AR)、拡張仮想(AV)および/または仮想現実(VR)を含んでもよい。コンピュータ拡張環境106は、1つ以上の表示デバイス108、オーディオデバイス110、センサ112および/またはアクチュエータ114を含んでもよい。表示デバイス108は、例として、視覚情報をその着用者に表示するヘッドセットを含んでもよい。あるいは、またはさらに、表示デバイスは、視覚コンテンツを受信および表示するように構成されたハードウェアまたはインターフェースを含んでもよい。オーディオデバイスは、オーディオ情報に基づく可聴音を放出するように構成された再生ハードウェアを含んでもよい。アクチュエータデバイスは、ハプティックフィードバックなどの物理的フィードバックをユーザに提供してもよい。センサは、物理的特性を検出および/または測定するデバイスを含んでもよい。センサは、例として、ハプティックセンサ、バイオメトリックセンサ、マイクロフォン、カメラ、モーションセンサ、ジャイロスコープまたはその他物理的空間もしくはユーザの特性を検出する任意のデバイスを含んでもよい。ハプティックセンサは、例として、ユーザにより表面に加えられる力の量を測定する触覚センサを含んでもよい。バイオメトリックセンサは、例として、ユーザに固有であるユーザの物理的特質または状態を検出するセンサを含んでもよい。
一部の例において、コンピュータ拡張環境106は、センサ情報(またはその他情報)に基づき生のイベントを判断し、コンピュータ拡張環境のデバイスとインタラクションするためのアプリケーションプログラミングインターフェースを提供し、且つ/またはセンサデータもしくは生のイベントを伝達するデバイスを含んでもよい。コンピュータ拡張環境106は、APACHE Kafkaまたはその他何らかの適切なメッセージングサービスなどの通信プロトコルを用いて確立された1つ以上のセッションに基づき情報をストリーミングするデバイスを含んでもよい。リアルタイムプラットフォームおよび/または学習プラットフォーム104は、コンピュータ拡張環境106、またはコンピュータ拡張環境106に含まれるデバイスから情報を受信してもよい。
本願明細書に記載されるように、センサデータは、センサにより受信される情報および/またはセンサにより提供される信号から導出される情報を指し得る。例として、センサデータは、物理的特性または物理的変化の測定値を含んでもよい。一部の例において、センサデータは、動きデータを含んでもよい。あるいは、またはさらに、センサデータは、物理的空間内の人間の身体部分またはオブジェクトなど、物理的オブジェクトの位置を含んでもよい。あるいは、またはさらに、センサデータは、オーディオおよびビデオ情報を含んでもよい。一部の例において、センサデータは、例えば心拍数、瞳孔散大など、ユーザの生体反応を含んでもよい。
本願明細書に記載されるとき、イベントとは、センサデータまたは他のイベントから導出された特徴を指す。イベントは、センサデータまたはイベントの分類またはグループ化を表現し得る。あるいは、またはさらに、イベントは、センサデータまたはイベントのシーケンス、パターン、タイミングまたは変化を表現し得る。他の例において、イベントは、基準、ルールまたは論理に基づく、或るプロセスの中の条件またはステップの満足を含み得る。
本願明細書の説明の全体にわたって、イベントは、生のイベント、導出されたイベントおよび/または予測されるイベントと称されることもある。生のイベントは、リアルタイムプラットフォーム102および/または学習プラットフォーム104の外で、センサデータから導出されたイベントを含んでもよい。例として、コンピュータ拡張環境106またはその他何らかのシステムが、生のイベントを生成し得る。導出されたイベントは、センサデータ、生のイベント、導出された他のイベントおよび/または他の情報に基づき導出されたイベントを含んでもよい。例として、導出されたイベントは、様々なモデル、統計的分析、機械学習またはその他分析を使用してリアルタイムプラットフォーム102および/または学習プラットフォーム104により導出されたイベントを含んでもよい。予測されるイベントは、導出された1つ以上のイベント、生のイベントおよび/またはセンサデータに基づき予想されるイベントを含んでもよい。
図2は、学習プラットフォーム104の例を示す。学習プラットフォーム104は、リアルタイムプラットフォーム102のためのモデル、論理、セッティングおよびその他パラメータを生成してもよい。例として、学習プラットフォーム104は、リアルタイムプラットフォーム102にセンサデータからのイベントの導出、イベントの予測および/またはコンピュータ拡張環境106に対するアクションフィードバックの生成をさせる設定パラメータを、リアルタイムプラットフォーム102に提供してもよい。学習プラットフォーム104は、リアルタイムプラットフォーム102またはそのコンポーネントの生成、展開および/または設定を促進してもよい。
学習プラットフォーム104は、1つ以上のコンピュータ拡張環境106からセンサデータおよび/または生のイベントを受信してもよい。あるいは、またはさらに、1つ以上のリアルタイムプラットフォームが、コンピュータ拡張環境106からの情報を学習プラットフォーム104に転送するように構成されてもよい。例として、コンピュータ拡張環境106および/またはリアルタイムプラットフォーム102において構成された専用クライアントが、データを消費して、データを学習プラットフォーム104にプッシュしてもよい。
学習プラットフォーム104は、履歴データベース202を含んでもよい。履歴データベース202は、電子的に格納およびアクセスされるデータの編成されたセットを含んでもよい。履歴データベース202は、センサデータ、生のイベント情報またはその他コンピュータ拡張環境106および/もしくはリアルタイムプラットフォーム102が発する情報を格納してもよい。履歴データベース202に格納された情報は、リアルタイムプラットフォーム102がリアルタイムでセンサデータを処理する間、一括して学習プラットフォーム104によりアクセスされてもよい。
学習プラットフォーム104は、設定データベース204を含んでもよい。設定データベース204は、電子的に格納およびアクセスされるデータの編成されたセットを含んでもよい。設定データベース204は、リアルタイムプラットフォーム102(またはリアルタイムプラットフォームの複数の展開)に対して生成または更新されたモデル、論理および/またはパラメータを含んでもよい。設定データベース204は、様々なタイプのコンピュータ拡張環境、リアルタイムプラットフォームのタイプ、ユーザ識別子、アカウント識別子などに関連する情報のリポジトリを含んでもよい。学習プラットフォーム104は、リアルタイムプラットフォーム102またはそのコンポーネントを生成、展開および/または設定するとき、設定データベース204の情報にアクセスしてもよい。
学習プラットフォーム104は、特徴コントローラ206を含んでもよい。特徴コントローラ206は、履歴データベース202の履歴データにアクセスしてもよい。特徴コントローラ206は、情報を特徴訓練セットに編成してもよい。特徴訓練セットは、入力される特徴と出力される特徴との間のマッピングを含んでもよい。例として、特徴訓練モデルは、センサデータとイベントデータとを関連付けてもよい。マッピングは、人間または機械により生成され得る。時間が経つにつれて、マッピングが更新されて、特徴訓練セットにより生成される特徴モデルの精度および信頼度が改善されてもよい。
特徴モデルは、特徴抽出を実行するために構成された条件、統計モデルおよび/または論理を含んでもよい。例として、特徴モデルは、教師あり学習に基づく学習または推論された関数を含んでもよい。特徴モデルの例には、ルールベース方式、幾何学的方法または単純計数法が含まれ得る。動作中、特徴モデルは、入力されたセンサデータおよび/または生のイベントに基づきイベントを導出するためにアクセスされてもよい。イベントは、ユーザの挙動を簡潔に記述するために生成される。
例として、イベントは、ユーザの焦点を捕捉または定量化してもよい。例として、イベントは、関心対象のオブジェクトを見ていること(または見ていないこと)の発生(またはそのいくつかの一致)を含んでもよい含んでもよい。そのようなイベントを導出するために、関心対象のオブジェクトのリストが、それらの座標とともに入力(生のイベント)として特徴モデルに与えられ、ユーザの視界がセンサデータからフレームごとに抽出される(つまりVR/ARヘッドセット)。これら2つのソースを組み合わせることで、フレームごとに、関心対象のオブジェクトがユーザの視界の中にあるか否かを示すことができる。
イベントの別の例は、適用できない制御を使用しようと試行すること、つまり、なにも把持していない間にトリガボタンを押下すること、または近くにないものをつかもうとすることである。導出されるこのイベントの場合、センサデータのみが分析される。
一部の例において、特徴モデルおよび/または特徴訓練セットは、特定のコンピュータ拡張環境、センサデータのタイプおよび/またはイベントのクラス向けに適応させられてもよい。例として、学習プラットフォーム104により受信されるセンサデータは、センサデータタイプに関連してもよい。センサデータタイプは、センサのタイプ、センサの位置またはセンサにより受信される情報のタイプ(例えば手に取り付けられたセンサから獲得された動きデータ)を示してもよい。あるいは、またはさらに、センサデータは、コンピュータ拡張環境106のタイプに関連してもよい。コンピュータ拡張環境106のタイプは、コンピュータ拡張環境106が拡張するシナリオ(例えば化学研究室、製造工程、運転体験など)を示してもよい。一部の例において、特徴訓練セットは、特定のタイプのセンサデータ、XRシナリオおよび/またはイベントのクラスのみからのデータを含むように構成されてもよい。
特徴コントローラ206は、特徴モデルを適用して、履歴データベース202からの履歴データに基づき導出されるイベント1つ以上を判断してもよい。前述のように、導出されるイベントとは、センサデータ、生のイベントまたはその他情報の分析から導出されたイベントを指す。導出されるイベントは、物理的空間の中での動きデータを示してもよい。例として、導出されるイベントは、オブジェクト間の衝突、手の震え、アイテムを落とすこと、間違ったアイテムに触れる/それを手に取ること、関心対象のアイテムから顔をそらすこと、またはその他任意の分類のセンサデータを含んでもよい。
学習プラットフォーム104は、予測モデルコントローラ208を含んでもよい。予測モデルコントローラ208は、統計的調査解析、機械学習および/または条件付き論理に基づき予測モデルを生成してもよい。例として、予測モデルコントローラ208は、イベント間の因果関係または相関関係を特定してもよい。予測モデルは、イベント間の因果関係または相関関係に基づき予測モデルを生成してもよい。
予測モデルは、任意のモデルまたはデータ集約を含んでもよく、これは、先行の1つまたは複数のイベントが発生したことを所与として、或るイベント(または複数イベント)が将来発生する条件付きの可能性を含む。予測モデルは、履歴データおよび/または格納されている専門的情報に基づいて構築される統計的概要を含んでもよい。一部の例において、予測モデルは、或るイベントがユーザの動きまたは軌跡に応じて発生する可能性が高いと予測してもよい。モデルは、履歴データの平均化および/または平均的なユーザの軌跡のモデル化に基づいてもよい。あるいは、またはさらに、モデルは、特定のユーザに関する個々のセンサデータおよび/または動きデータを考慮してパーソナライズされてもよい。
一部の例において、予測モデルは、イベントが発生する個々の時間に基づき、互いに関連するイベントを特定してもよい。例として、予測モデルコントローラ208は、統計的分析および/または機械学習フレームワークに基づき、イベントAが時間tに生じると時間t+1にイベントBが生じる可能性が高い、と判断してもよい。あるいは、またはさらに、予測モデルコントローラ208は、第1のイベントまたは第1のイベントのシーケンスが第2のイベントまたは第2のイベントのシーケンスの後に発生する信頼度を判断してもよい。
予測モデルを生成するために、学習プラットフォーム104は、分離時間を判断し、分離の前および分離の後にイベントが発生した信頼度を測定してもよい。調査解析は、複数のイベントおよびそれらの連続発生の信頼度測定値を含んでもよい。あるいは、またはさらに、システム100は、イベントが連続的に出現する信頼度測定値を生成してもよい。信頼度は、相関または確率などの統計的メトリクスを含んでもよい。学習プラットフォーム104は、信頼度、および対応するイベントの識別子を予測的モデルへとコンパイルしてもよい。
一部の例において、予測モデルコントローラ208は、相関マトリクスを生成してもよい。相関マトリクスは、第1のイベントの後に第2のイベントが発生する信頼度を示すメトリクスを含んでもよい。表1は、相関マトリクスの例を示す。表1に示されている例では、イベントCは、イベントDの後に発生する可能性が非常に高い(90%)。相関マトリクスは、システム100がリアルタイムでイベントの発生を予測できるようにする。例として、システム100は、「前」のイベントを導出するかまたはそれに対するアクセスを得た場合、「後」のイベント、すなわちまさに発生しようとしているイベントの確率を予測してもよい。
相関マトリクスは、予測モデルの例とされ得る。より一般的に、予測モデルは、イベントマッピングを含んでもよい。イベントマッピングは、1つ以上のイベントの間のマッピングを含んでもよい。例として、イベントマッピングは、第1のイベント(イベントAなど)と第2のイベント(イベントBなど)との間のマッピングを含んでもよい。イベントマッピングは、第2のイベント(または複数イベント)が第1のイベント(または複数イベント)の後に発生する見込みを測定する信頼度メトリクス(20%など)を含んでもよい。
フィルタ基準は、学習プラットフォームおよび/またはリアルタイムプラットフォーム102が、特定のコンピュータ拡張環境に関連性のある情報のみを受信、評価および/または予測できるようにしてもよい。フィルタ基準は、リアルタイムプラットフォーム102に、リアルタイムプラットフォーム102、特徴モデル、予測的モデルに入力される特定のデータを選択させる情報を含んでもよい。あるいは、またはさらに、フィルタ基準は、リアルタイムプラットフォーム102に、特定のイベントの予測または特定のメッセージの出力のみをさせる論理を含んでもよい。一部の例において、フィルタ基準は、許可された(または許可されていない)センサデバイス、センサデータ、通信チャネルまたはその他センサデータのソースの識別子を結論づけてもよい。あるいは、またはさらに、フィルタ基準は、許可された(または許可されていない)イベント、予測マッピングおよび/またはアクションマッピングの識別子を含んでもよい。図3を参照して記載されるように、リアルタイムプラットフォーム102は、フィルタ基準に基づき、リアルタイムプラットフォーム内への、その中の、およびその外への情報の場合、フォローを制御してもよい。
一部の例において、イベントフィルタは、信頼度閾値に基づき生成または設定されてもよい。信頼度閾値は、イベント予測のための最低量の信頼度を規定する閾値の値を含んでもよい。例として、信頼度閾値は70%にセットされてもよい。それに応じて、表1に示されている予測マッピング(Event D,Event C,90%)が、相関マトリクスから選択されることになるであろう。
信頼度閾値は、特定の実装のために調整されてもよい。より低い閾値(例えば40%以下)は、予測の精度の低下という代償を払って、より多数の予測をもたらし得る。予測の精度は劣るであろうが、低い信頼度閾値は、予測されるイベントに応じて、差し迫った危険についてユーザに警告したり、または他の何らかのアクションフィードバックをユーザに送信したりする可能性を増大させ得る。あるいは、またはさらに、高い信頼度閾値(例えば80%以上)は、不正確な予測の数を削減して、予測されるイベントの信頼度を向上させ得る。最適な信頼度閾値は、特定のコンピュータ拡張環境および/またはユーザに依存すると考えられ、信頼度閾値は時間が経つにつれて調節されてもよい。
信頼度閾値は、コンピュータ拡張環境のタイプ、ユーザ、イベントのタイプおよび/またはアクションフィードバックに基づき規定されてもよい。或る例において、XRセッションのタイプは、研究室における薬品の調製を支援するためにユーザに情報が表示される、化学研究所のオーバーレイを含んでもよい。薬品を調合することに伴う内在する危険が理由で、潜在的な誤り(揮発性薬品を不適切に調合する、狂った順序でステップを実行するなど)を回避するようユーザに警告するために、信頼度閾値(単数または複数)は、40%またはその他何らかの適切な値に設定されてもよい。あるいは、またはさらに、予測されるイベントおよび/またはアクションフィードバックに基づき、複数の信頼度閾値が調整されてもよい。例として、予測的イベントの識別子またはアクションフィードバックの識別子が信頼度閾値に関連してもよい。例として、重大でないイベントに関連する一部のアクションフィードバックは、高い予測信頼度に関連してもよく、危険なイベントの安全警告などの他のアクションフィードバックは、より低い信頼度閾値に関連してもよい。
システム100は、設定コントローラ210をさらに含んでもよい。設定コントローラ210は、アクションマッピングを生成してもよい。アクションマッピングは、予測されるイベント(または予測される複数のイベント)と、アクションメッセージとの間のマッピングを含んでもよい。例として、アクションマッピングは、予測されるイベントの識別子1つ以上を1つ以上のアクションメッセージ識別子にマッピングする、テーブルまたはその他何らかの適切なデータ構造を含んでもよい。表2は、アクションマッピングの例を示す。
アクションメッセージは、コンピュータ拡張環境106(またはコンピュータ拡張環境106のコンポーネント)に、ユーザとのインタラクションを行わせてもよい。アクションメッセージは、コンピュータ拡張環境106を介してユーザに伝達される情報を含んでもよい。アクションメッセージは、コンピュータ拡張環境106にネイティブなデータフォーマットに従ってもよい。アクションメッセージは、コンピュータ拡張環境106に、ビデオデバイス上での情報の表示、再生デバイスを介したオーディオの再生、ハプティックアクチュエータなどのアクチュエータの作動、またはユーザに感覚情報を受け取らせる他の任意のアクションの実行をさせてもよい。一部の例において、アクションメッセージは、コンピュータ拡張環境106により決定されるフォーマット標準に従ってフォーマット設定された命令、APIコールおよび/またはメッセージを含んでもよい。したがって、学習プラットフォーム104は、同じタイプの予測されるイベントについて様々なアクションマッピングを格納してもよく、マッピングのそれぞれが、特定のコンピュータ拡張環境向けに適応させられたリアルタイムプラットフォームの個々の展開向けに適応させられる。
図3は、リアルタイムプラットフォーム102の例を示す。リアルタイムプラットフォーム102は、特徴生成器302を含んでもよい。特徴生成器302は、コンピュータ拡張環境106により提供されるセンサデータおよび/またはイベントに基づきイベントを判断してもよい。例として、特徴生成器302は、特徴モデル110に基づきイベントを導出してもよい。図2を参照して説明されたように、特徴モデルは、センサデータなどの入力データに基づき導出されるイベントを特定する論理を含んでもよい。特徴生成器302は、特徴モデルにアクセスして、リアルタイムプラットフォーム102に伝達されるセンサデータおよび/または生のイベントに基づきイベントを生成してもよい。
特徴モデルは、学習プラットフォーム104によりリアルタイムプラットフォーム102上で設定されてもよい。例として、リアルタイムプラットフォーム102は、展開中に特徴モデルを受信してもよい。あるいは、またはさらに、リアルタイムプラットフォーム102は、特徴モデルが改善されるのに伴い学習プラットフォーム104から新たな、または更新された特徴モデルを受信してもよい。
リアルタイムプラットフォーム102は、イベント予測器304をさらに含んでもよい。イベント予測器304は、導出されたイベント、生のイベントおよび/またはセンサデータに基づき1つ以上のイベントを予測してもよい。イベント予測器304は、予測モデルにアクセスしてイベントを予測してもよい。図2を参照して説明されたように、予測モデルは、イベント予測器304に1つ以上の入力イベントまたはセンサデータに基づき出力イベントを特定させる、予測的マッピング、論理、ルールまたはその他情報を含んでもよい。出力イベントは、入力イベントおよび/またはセンサデータに応じて発生するイベントの予測であってもよい。出力イベントは、信頼度メトリクスに関連してもよい。
リアルタイムプラットフォーム102は、アクション変換器306をさらに含んでもよい。アクション変換器306は、予測される1つ以上のイベントに応じてアクションフィードバックを生成してもよい。例として、アクション変換器306は、アクションマッピングにアクセスしてもよい。図2を参照して説明されたように、アクションマッピングは、1つ以上のイベント予測を1つ以上のアクションメッセージにマッピングしてもよい。したがって、アクション変換器306は、予測されるイベントまたは予測される複数イベントの組み合わせに関連するアクションメッセージを特定してもよい。アクション変換器306は、アクションメッセージをアクションフィードバックへと組み合わせてもよい。一部の例において、アクションメッセージは、コンピュータ拡張環境106にネイティブな他の1つ以上の命令と組み合わされて、コンピュータ拡張環境106に、コンピュータ拡張環境106のユーザに対して情報を伝達させてもよい。例として、アクションフィードバックは、コンピュータ拡張環境106(またはその任意のコンポーネント)に、ビデオデバイス上での情報の表示、再生デバイスを介したオーディオの再生、ハプティックアクチュエータなどのアクチュエータの作動、またはユーザに感覚情報を受け取らせる他の任意のアクションの実行をさせる命令を含んでもよい。
実装に応じて、特定のセンサデータ、導出されたイベント、イベント予測および/またはアクションフィードバックのみが、リアルタイムプラットフォーム102のインスタンスに関連性があるかもしれない。特定のコンピュータ拡張環境に関連性のないイベントを導出または予測することは、パフォーマンスを低下させ、さらに/またはその他コンピューティングリソースを非効率的に配分するかもしれない。したがって、リアルタイムプラットフォーム102は、特定のコンピュータ拡張環境向けにリアルタイムの応答性を最適化するべく適応させられてもよい。例として、リアルタイムプラットフォーム102は、特徴モデル、予測モデル、フィルタ基準および/またはアクションマッピングを用いて展開または動的に設定されてもよい。
リアルタイムプラットフォーム102は、フィルタコントローラ308を含んでもよい。フィルタコントローラ308は、リアルタイムプラットフォーム102の様々な段階を通して情報のフローを制御してもよい。フィルタコントローラ308は、フィルタ基準により提供される情報に応じるものであってもよい。例として、フィルタ基準は、特定のセンサデータのみをリアルタイム特徴生成器302に到達させてもよい。例として、フィルタ基準は、センサ情報の1つ以上のタイプ、1つ以上の通信チャネルおよび/またはコンピュータ拡張環境106の1つ以上のセンサデバイスを特定してもよい。フィルタコントローラ308は、フィルタ基準に基づき、特徴生成器302に、特定された通信チャネルまたはセンサデバイスからのみデータを受信させてもよい。あるいは、またはさらに、フィルタコントローラ308は、特徴生成器302に、特定されたタイプのセンサデータを受信させてもよい。
一部の例において、フィルタコントローラ308は、特徴生成器302に特定のイベントのみを導出させてもよい。例として、フィルタ基準は、特徴モデルを用いて導出するイベントを特定してもよい。特徴生成器302は、フィルタ基準により特定されたイベントのみを導出し、他のイベントは導出しなくてもよい。あるいは、またはさらに、特徴コントローラ206は、特徴生成器302に、高い信頼度レベルで特徴を導出するために使用可能なセンサデータのみを受信させてもよい。
一部の例において、フィルタコントローラ308は、イベント予測器304に特定のイベントのみを予測させてもよい。例として、フィルタ基準は、予測モデルを用いて予測するイベントを特定してもよい。イベント予測器304は、フィルタ基準において特定されたイベントのみを予測してもよい。あるいは、またはさらに、フィルタ基準は予測的マッピングの識別子を含んでもよい。イベント予測器304は、識別子に関連する予測マッピングを選択してもよい。イベント予測器304は、選択された予測マッピングのみを用いてイベント予測を実行してもよい。
他の例において、フィルタコントローラ308は、1つ以上の信頼度閾値に基づき、信頼度の値と予測モデルの出力とを比較してもよい。例として、フィルタ基準は1つ以上の信頼度閾値を含んでもよい。フィルタコントローラ308は、イベント予測器304に、信頼度閾値未満の信頼度スコアに関連する予測的マッピングを無視させてもよい。
図4は、リアルタイムプラットフォーム102の論理のフロー図の例を示す。リアルタイムプラットフォーム102は、設定パラメータを受信してもよい(402)。設定パラメータは、リアルタイムプラットフォーム102の構成セッティングおよび/または論理を含んでもよい。例として、設定パラメータは、特徴モデル、予測モデル、フィルタ基準、アクションマッピングおよび/またはリアルタイムプラットフォーム102のその他任意のコンポーネントを含んでもよい。フィルタ基準は、許可対象イベント識別子を含んでもよい。許可対象イベント識別子は、リアルタイムプラットフォームによる処理を許容可能なイベントに対応する。
リアルタイムプラットフォーム102は、コンピュータ拡張環境106からセンサデータを受信してもよい(404)。リアルタイムプラットフォーム102は、センサデータを学習プラットフォームに送信してもよい(405)。
センサデータは、コンピュータ拡張環境106に含まれるセンサから発するか、または導出され得る。リアルタイム学習プラットフォーム102は、特徴モデル、予測モデルおよび/またはフィルタ基準を改善するために、学習プラットフォーム104にセンサデータを転送してもよい。リアルタイムプラットフォームは、学習プラットフォーム104がモデルを更新する間、センサデータの処理を継続してもよい。リアルタイムプラットフォーム102は、更新された設定パラメータを受信してもよい。更新された設定パラメータは、更新されたフィルタ基準、更新された予測モデルおよび/または更新された特徴モデルを含んでもよい。リアルタイムプラットフォーム102は、以前に設定されたモデルのうちの1つ以上を更新された1つ以上のモデルにより置き換えてもよい。あるいは、またはさらに、リアルタイムプラットフォーム102は、以前に設定されたフィルタ基準を更新されたフィルタ基準により置き換えてもよい。
リアルタイムプラットフォーム102は、センサデータに基づき複数のイベントを生成してもよい(406)。リアルタイムプラットフォーム102は、センサデータを特徴モデルへの入力として提供してもよい。特徴モデルは、センサデータに基づき1つ以上のイベントを特定してもよい。一部の例において、イベント(単数または複数)は、物理的空間における動きを示してもよい。特徴モデルは、センサデータと所定のイベントとの間のマッピングに基づき以前に訓練されていてもよい。
一部の例において、センサデータは、複数のセンサが発する、または複数のセンサから導出される、測定値を含んでもよい。センサ測定値は、例として、個々の物理的オブジェクトの空間座標を含んでもよい。物理的オブジェクトは、コンピュータ拡張環境106のユーザの視界において可視であってもよい。あるいは、またはさらに、物理的オブジェクトは、コンピュータ拡張環境106のセンサ(ビデオカメラなど)により検出されてもよい。リアルタイムプラットフォーム102は、個々の物理的オブジェクトの空間座標を比較して、物理的オブジェクトが動いていると判断してもよい。例として、リアルタイムプラットフォーム102は、第1のオブジェクト(手など)が第2のオブジェクトの近くへと動いていると判断してもよい。
一部の例において、リアルタイムプラットフォームは、特徴モデルおよびセンサデータに基づき、物理的オブジェクトに対応する位置情報のパターンを判断してもよい。パターンは、イベントに関連してもよい。したがって、1つ以上のパターンの特定は、リアルタイムプラットフォームに、パターンに関連するイベントを生成させてもよい。
リアルタイムプラットフォーム102は、許可対象のイベントに対応するイベントを選択してもよい。例として、フィルタ基準は、許可対象イベント識別子を含んでもよい。許可対象イベント識別子は、予測モデルによる処理について許可されるイベントに対応してもよい。リアルタイムプラットフォームは、許可対象イベント識別子により特定されるイベントが、イベント予測器304および/またはアクション変換器306に入力として提供されることを可能にしてもよい。あるいは、またはさらに、リアルタイムプラットフォームは、許可対象イベント識別子により特定されないイベントが、イベント予測器304および/またはアクション変換器306に提供されるのを制限してもよい。
リアルタイムプラットフォーム102は、予測モデルと、選択されたイベントのうちの少なくとも1つとに基づき、イベントを予想してもよい(410)。例として、リアルタイムプラットフォームは、機械学習フレームワークへの入力として、予測モデルおよび/または選択されたイベント(単数または複数)をアクセス提供してもよい。あるいは、またはさらに、リアルタイムプラットフォームは、予測モデルおよび選択されたイベント(単数または複数)に基づき信頼度メトリクスおよび/またはイベント予測を実行してもよく導出してもよい。
リアルタイムプラットフォーム102は、予想されるイベントを示すメッセージを生成してもよい(412)。例として、リアルタイムプラットフォーム102は、リアルタイムプラットフォーム102に提供されたアクションマッピングに基づき、予想されるイベントが或るメッセージにマッピングされていると判断してもよい。アクションマッピングは、イベントと、図2を参照して前述されたアクションメッセージなどのアクションメッセージとの間の1つ以上の関連付けを含んでもよい。リアルタイムプラットフォーム102は、予想されるイベントがメッセージにマッピングされているとの判断に応答して、1つ以上のアクションマッピングを選択してもよい。リアルタイムプラットフォーム102は、アクションマッピングから1つ以上のメッセージを抽出してもよい。
リアルタイムプラットフォーム102は、予想されるイベントが発生する前に、表示デバイスにメッセージを表示させてもよい(414)。例として、リアルタイムプラットフォーム102は、アクションフィードバックを生成してもよい(図2参照)。アクションフィードバックは、表示デバイスを介して表示可能な表示可能コンテンツを含んでもよい。
図5は、学習プラットフォーム104の論理のフロー図の例を示す。学習プラットフォーム104は、履歴データベース202からセンサデータを受信してもよい(502)。一部の例において、学習プラットフォームは、1つ以上のリアルタイムプラットフォームからセンサデータを受信してもよい。あるいは、またはさらに、学習プラットフォームは、コンピュータ拡張環境106からセンサデータを直接受信してもよい。
学習プラットフォーム104は、センサデータから第1のイベントを生成してもよい(504)。例として、学習プラットフォーム104は、訓練セットにアクセスして、訓練セットに基づき特徴モデルをコンパイルしてもよい。学習プラットフォーム104は、センサデータを特徴モデルに適用して第1のイベントを導出してもよい。一部の例において、学習プラットフォーム104は、センサデータに基づき特徴モデルを訓練してもよい。例として、学習プラットフォーム104は、センサデータと1つ以上のイベント識別子(単数または複数)との間のマッピングを生成してもよい。学習プラットフォーム104は、訓練データを特徴モデルにコンパイルするために、人工知能または機械学習フレームワークに訓練データを提出してもよい。
学習プラットフォーム104は、特徴モデルをリアルタイムプラットフォーム102に送信してもよい。特徴モデル、または関連する確認パラメータは、リアルタイムプラットフォーム102に、センサデータおよび特徴モデルに基づき第1のイベントをリアルタイムで検出させてもよい。
学習プラットフォーム104は、第1のイベントの後に第2のイベントが発生する信頼度測定値を予測モデルに基づき判断してもよい(506)。例として、学習プラットフォーム104は、第1のイベント(または複数イベント)の分析を、予測モデルを用いて実行してもよい。一部の例において、学習プラットフォーム104は、予測モデルおよびイベントデータを機械学習フレームワークに提出してもよい。あるいは、またはさらに、予測モデルは、前述のように、個々の信頼度測定値に関連する予測的マッピングを含んでもよい。学習プラットフォーム104は、第1のイベントに関連する1つ以上の予測的マッピングを特定してもよい。予測的マッピングから第2のイベント(または複数イベント)を抽出する。
一部の例において、学習プラットフォーム104は、予測モデルを生成してもよい。学習プラットフォーム104は、予測モデルを設定データベース204に格納し、且つ/またはリアルタイムプラットフォーム102上で予測モデルを設定してもよい。例として、学習プラットフォーム104は、分離時間を判断し、分離の前および分離の後にイベントが発生した信頼度を測定してもよい。調査解析は、複数のイベントおよびそれらの連続発生の見込みまで展開されてもよい。あるいは、またはさらに、システム100は、複数のユーザに基づいて、任意のタイプのイベントが連続して出現する信頼度測定値をもたらしてもよい。イベントの見込みは、相関などの統計的メトリクスを含んでもよい。
学習プラットフォーム104は、信頼度測定値が信頼度閾値よりも大きいかどうかを判断してもよい(508)。一部の例において、学習プラットフォーム104は、信頼度閾値をユーザインターフェースから受信してもよい。例として学習プラットフォーム104は、管理者がリアルタイムプラットフォームのインスタンスを設定できるようにするユーザインターフェースを生成してもよい。ユーザインターフェースは、1つ以上の信頼度閾値を受信してもよい。リアルタイムプラットフォーム102により提供される予測の精度、速度、量を増減するために、信頼度閾値が変更されてもよい。学習プラットフォーム104は、更新された信頼度閾値を受信するのに応答して、更新されたフィルタ基準を生成し、フィルタ基準をリアルタイムプラットフォーム102に送信してもよい。
信頼度測定値が信頼度閾値よりも大きいことに応答して、学習プラットフォーム104は、リアルタイムプラットフォーム102が第1のイベントに基づき第2のイベントを予想することを可能にしてもよい(510)。信頼度測定値が信頼度閾値よりも大きくないことに応答して、学習プラットフォーム104は、リアルタイムプラットフォーム102が第1のイベントに基づき第2のイベントを予想することを制限してもよい(512)。
例として、学習プラットフォーム104は、リアルタイムプラットフォーム102が予測モデルを用いて第2のイベントを予想して、第2のイベントに基づきコンピュータ拡張環境106にメッセージを伝達することを許可または制限する、フィルタ基準を生成してもよい。例として、回転基準は、リアルタイムプラットフォーム102が予測モデルを用いて第2のイベントを予想して、第2のイベントに基づきコンピュータ拡張環境106にメッセージを伝達することを許可または制限する、ルールまたは命令を含んでもよい。あるいは、またはさらに、フィルタ基準は、予測モデルに関連する、許可または制限されたマッピング識別子を複数、含んでもよい。リアルタイムプラットフォーム102は、制限されたマッピングではなく、許可されたマッピングに基づくイベント予測のみ生成してもよい
図6は、リアルタイムプラットフォーム102の論理の第2の例を示す。リアルタイムプラットフォーム102は、設定パラメータを受信してもよい(602)。設定パラメータは、リアルタイムプラットフォーム102の構成セッティングおよび/または論理を含んでもよい。例として、設定パラメータは、特徴モデル、予測モデル、フィルタ基準、アクションマッピングおよび/またはリアルタイムプラットフォーム102のその他任意のコンポーネントを含んでもよい。
リアルタイムプラットフォーム102は、コンピュータ拡張環境106からセンサデータを受信してもよい(604)。リアルタイムプラットフォーム102は、センサデータから導出された第1のイベントを生成してもよい(606)。センサデータは、コンピュータ拡張環境106に含まれるセンサから発するか、または導出され得る。リアルタイムプラットフォーム102は、センサデータを特徴モデルへの入力として提供してもよい。特徴モデルは、センサデータに基づき1つ以上のイベントを特定してもよい。一部の例において、イベント(単数または複数)は、物理的空間における動きを示してもよい。特徴モデルは、センサデータと所定のイベントとの間のマッピングに基づき以前に訓練されていてもよい。
一部の例において、センサデータは、複数のセンサが発する、または複数のセンサから導出される、測定値を含んでもよい。センサ測定値は、例として、個々の物理的オブジェクトの空間座標を含んでもよい。物理的オブジェクトは、コンピュータ拡張環境106のユーザの視界において可視であってもよい。あるいは、またはさらに、物理的オブジェクトは、コンピュータ拡張環境106のセンサ(ビデオカメラなど)により検出されてもよい。リアルタイムプラットフォーム102は、個々の物理的オブジェクトの空間座標を比較して、物理的オブジェクトが動いていると判断してもよい。例として、リアルタイムプラットフォーム102は、第1のオブジェクト(手など)が第2のオブジェクトの近くへと動いていると判断してもよい。
リアルタイムプラットフォーム102は、第1のイベントの後に第2のイベントが発生する信頼度測定値を判断してもよい(608)。例として、リアルタイムプラットフォーム102は、導出された1つ以上のイベントを、予測モデルを用いて分析してもよい。一部の例において、予測モデルは、イベントマッピングを含んでもよい。例として、イベントマッピングは、第1のイベント識別子と第2のイベント識別子との間の関連付けを含んでもよい。イベントマッピングは、第2のイベントが第1のイベントの後に発生する信頼度を含んでもよい。リアルタイムプラットフォーム102は、導出されたイベント(または複数イベント)に関連するマッピングを選択してもよい。
リアルタイムプラットフォーム102は、信頼度測定値が信頼度閾値よりも大きいかどうかを判断してもよい。信頼度測定値が信頼度閾値よりも大きくないこと(610、いいえ)に応答して、リアルタイムプラットフォーム102はイベントを無視してもよい。信頼度測定値が信頼度閾値よりも大きいこと(610、はい)に応答して、リアルタイムプラットフォーム102はイベントの処理を継続してもよい。
予測されるイベントの信頼度測定値と、信頼度閾値とを比較することにより、リアルタイムプラットフォーム102は、どのイベント予測についてアクションを講じ、どのイベント予測を無視するか、選択的に選んでもよい。一部の例において、予測モデルは、予測的マッピング(上記の表1に示された相関マトリクスなど)を含んでもよい。各予測マッピングは、対応する測定値を含んでもよい。したがって、リアルタイムプラットフォーム102は、信頼度閾値未満の対応する信頼度測定値に関連する予測マッピングを無視してもよい。あるいは、またはさらに、リアルタイムプラットフォーム102は、予測閾値よりも高い対応する信頼度を有する予測マッピングについてのみセンサデータおよび/または導出されたイベントを獲得してもよい。したがって、リアルタイムプラットフォーム102は、どのセンサデータを獲得するか、およびどのイベントを導出するかを選択的に選んで、関連性のないセンサデータを受信しないこと、関連性のないイベントを導出しないこと、または関連性のないイベントを予測しないことにより、処理能力およびメモリを節約してもよい。
リアルタイムプラットフォーム102は、第2のイベントを示すメッセージを生成してもよい(612)。例として、リアルタイムプラットフォーム102は、リアルタイムプラットフォーム102に提供されたアクションマッピングに基づき、第2のイベントが或るメッセージにマッピングされていると判断してもよい。アクションマッピングは、イベントと、図2を参照して前述されたアクションメッセージなどのアクションメッセージとの間の1つ以上の関連付けを含んでもよい。リアルタイムプラットフォーム102は、第2のイベントがメッセージにマッピングされているとの判断に応答して、1つ以上のアクションマッピングを選択してもよい。リアルタイムプラットフォーム102は、アクションマッピングから1つ以上のメッセージを抽出してもよい。
リアルタイムプラットフォーム102は、第2のイベントが発生する前に、表示デバイスにメッセージを表示させてもよい(614)。例として、リアルタイムプラットフォーム102は、アクションフィードバックを生成してもよい(図2参照)。アクションフィードバックは、表示デバイスを介して表示可能な表示可能コンテンツを含んでもよい。
フロー図に示された論理は、示されたのに比べて追加の、異なる、またはより少数の動作を含んでもよい。示された動作は、示されたのとは異なる順序で実行されてもよい。
システム100は、示されたのに比べて追加の、異なる、またはより少数のコンポーネントを用いて実装されてもよい。例として、システムは、コンピュータ拡張環境を備えた、または備えない学習プラットフォーム104および/またはリアルタイムプラットフォーム204を含んでもよい。あるいは、またはさらに、コンピュータ拡張環境は、学習プラットフォーム104および/またはリアルタイムプラットフォームを含んでもよい。各コンポーネントは、追加の、異なる、またはより少数のコンポーネントを含んでもよい。
図7は、システム100の第2の例を示す。リアルタイムプラットフォーム102は、ネットワーク702を経由して学習プラットフォーム104と通信してもよい。ネットワークは、データリンク間で情報が交換される任意の物理的システムまたは仮想システムを含んでもよい。例として、ネットワークは、相互接続された複数のノードがネットワークプロトコルに従って情報を中継する、IPベースのネットワークなどのコンピュータネットワークを含んでもよい。ネットワークは、物理的デバイスが相互に近接して位置するローカルネットワークであってもよく、またはインターネットなどのワイドエリアネットワークであってもよい。
一部の例において、リアルタイムプラットフォーム102は、学習プラットフォーム104から物理的に遠隔にあり、ネットワーク702により隔てられていてもよい。例として、リアルタイムプラットフォーム102がコンピュータ拡張環境106の近くに位置する一方で、学習プラットフォーム104はサーバまたはクラウドベースのシステム上で設定されてもよい。あるいは、またはさらに、リアルタイムプラットフォーム102は、コンピュータ拡張環境またはその一部と同じハードウェアリソースを共有してもよい。他の例において、リアルタイムプラットフォーム102は、ローカルネットワーク、または学習プラットフォーム104と接続されていない他の何らかのネットワークを経由して、コンピュータ拡張環境と通信してもよい。リアルタイムプラットフォーム102をコンピュータ拡張環境106の近くに維持することは、レイテンシ、帯域幅およびパフォーマンスに関するその他考慮事項の点で、より高速なパフォーマンスを促進し得る。他の例において、リアルタイムプラットフォーム102は、通信してもよく、自己学習プラットフォーム104および/またはコンピュータ拡張環境は、それぞれネットワーク702を介して通信してもよい。
図8は、システム100のコンピュータ環境800の例を示す。コンピュータ環境800は、リアルタイムプラットフォーム102、学習プラットフォーム104、コンピュータ拡張環境106および/またはその中の任意のサブコンポーネントのハードウェアプラットフォームを含んでもよい。コンピュータ環境800は、通信インターフェース812、入力インターフェース828および/またはシステム回路構成814を含んでもよい。システム回路構成814は、プロセッサ816または複数のプロセッサを含んでもよい。あるいは、またはさらに、システム回路構成814はメモリ820を含んでもよい。
プロセッサ816は、メモリ820と通信していてもよい。一部の例において、プロセッサ816は、通信インターフェース812、入力インターフェース828および/またはユーザインターフェースなどの追加の構成要素とも通信していてもよい。プロセッサ816の例には、汎用プロセッサ、中央処理ユニット、論理CPU(central processing unit:中央処理ユニット)/アレイ、マイクロコントローラ、サーバ、特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、および/またはデジタル回路、アナログ回路もしくはそれらの何らかの組み合わせが含まれ得る。
プロセッサ816は、論理を実行するよう動作可能な1つ以上のデバイスであってもよい。論理は、プロセッサ816により実行されるとプロセッサ816に、リアルタイムプラットフォーム102、特徴生成器302、イベント予測器304、アクション変換器306、フィルタコントローラ308、学習プラットフォーム104、特徴コントローラ206、予測的モデルコントローラ208、設定コントローラ210、コンピュータ拡張環境106またはシステム100の任意のコンポーネントもしくはサブコンポーネントの論理により実装される機能を実行させる、メモリ820または他のメモリに格納されたコンピュータ実行可能命令またはコンピュータコードを含んでもよい。コンピュータコードは、プロセッサ816を用いて実行可能な命令を含んでもよい。
メモリ820は、データの格納および読み出し、またはその任意の組み合わせをするための任意のデバイスであってもよい。メモリ820は、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read−only memory)またはフラッシュメモリなどの不揮発性および/または揮発性メモリを含んでもよい。あるいは、またはさらに、メモリ820は、光学、磁気(ハードドライブ)、ソリッドステートドライブまたはその他任意の形態のデータストレージデバイスを含んでもよい。メモリ820は、リアルタイムプラットフォーム102、特徴生成器302、イベント予測器304、アクション変換器306、フィルタコントローラ308、学習プラットフォーム104、履歴データベース202、設定データベース204、特徴コントローラ206、予測的モデルコントローラ208、設定コントローラ210、コンピュータ拡張環境106、システム100またはシステム100の任意のコンポーネントもしくはサブコンポーネントのうちの少なくとも1つを含んでもよい。あるいは、またはさらに、メモリは、本願明細書に記載されたシステム100の他の任意のコンポーネントまたはサブコンポーネントを含んでもよい。
ユーザインターフェース818は、グラフィカル情報を表示する任意のインターフェースを含んでもよい。システム回路構成814および/または通信インターフェース(単数または複数)812は、ユーザインターフェースにグラフィカル情報を表示させる信号またはコマンドをユーザインターフェース818に伝達してもよい。あるいは、またはさらに、ユーザインターフェース818は、システム100に対し遠隔にあってもよく、システム回路構成814および/または通信インターフェース(単数または複数)は、HTMLなどの命令をユーザインターフェースに伝達して、ユーザインターフェースに情報コンテンツを表示、コンパイルおよび/またはレンダリングさせてもよい。一部の例において、ユーザインターフェース818により表示されるコンテンツは、インタラクティブであっても、またはユーザ入力に応答してもよい。例として、ユーザインターフェース818は、信号、メッセージおよび/または情報を通信インターフェース812またはシステム回路構成814に伝達し返してもよい。
システム100は、多数の異なる形で実装され得る。一部の例において、システム100は、1つ以上の論理コンポーネントを用いて実装されてもよい。例として、システム100の論理コンポーネントは、ハードウェアであっても、またはハードウェアとソフトウェアとの組み合わせであってもよい。論理コンポーネントは、リアルタイムプラットフォーム102、特徴生成器302、イベント予測器304、アクション変換器306、フィルタコントローラ308、学習プラットフォーム104、履歴データベース202、設定データベース204、特徴コントローラ206、予測的モデルコントローラ208、設定コントローラ210、コンピュータ拡張環境106、システム100またはシステム100の任意のコンポーネントもしくはサブコンポーネントを含んでもよい。一部の例では、各論理コンポーネントは、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル論理回路、アナログ回路、別々の回路もしくはゲートもしくはその他任意のタイプのハードウェアの組み合わせ、またはそれらの組み合わせを含んでもよい。あるいは、またはさらに、各コンポーネントは、例えば論理コンポーネントの特徴のうち1つ以上を実装するためにプロセッサ816または他のプロセッサを用いて実行可能な命令を備えたメモリ820の部分などのメモリハードウェアを含んでもよい。論理コンポーネントのいずれか1つが、プロセッサ816を用いて実行可能な命令を備えたメモリの部分を含む場合、コンポーネントは、プロセッサ816を含んでもよく、または含まなくてもよい。一部の例では、各論理コンポーネントは、メモリ820または他の物理メモリのうち、プロセッサ816または他のプロセッサ(単数または複数)を用いて実行可能な命令を備えた部分に過ぎず、他のハードウェアをコンポーネントが一切含まなくても対応する論理コンポーネントの特徴が実装されるものであってもよい。各コンポーネントは、含まれるハードウェアがソフトウェアを備える場合であっても少なくともいくらかのハードウェアを含むので、各コンポーネントは区別なくハードウェアコンポーネントと呼ばれ得る。
一部の特徴は、コンピュータ可読ストレージ媒体に格納されるように示されている(例えば、コンピュータ実行可能命令として実装される論理として、またはメモリ内のデータ構造として)。システム100ならびにその論理およびデータ構造の全部または一部が、1つ以上のタイプのコンピュータ可読ストレージ媒体上に格納され、分散され、またはそこらか読み取られてもよい。コンピュータ可読ストレージ媒体の例には、ハードディスク、フロッピーディスク、CD−ROM、フラッシュドライブ、キャッシュ、揮発性メモリ、不揮発性メモリ、RAM、フラッシュメモリまたはその他任意のタイプの1つもしくは複数のコンピュータ可読ストレージ媒体が含まれ得る。コンピュータ可読ストレージ媒体は、CD−ROM、揮発性メモリ、不揮発性メモリ、ROM、RAMまたはその他任意の適切なストレージデバイスなど、任意のタイプの非一時的コンピュータ可読媒体を含んでもよい。
システム100の処理能力は、複数のプロセッサおよびメモリ間など複数のエンティティ間に分散されてもよく、任意選択で複数の分散型処理システムが含まれる。パラメータ、データベースおよび他のデータ構造は、別々に格納および管理されてもよく、単一のメモリまたはデータベースに組み込まれてもよく、多数の異なる形で論理的および物理的に編成されてもよく、連結リスト、ハッシュテーブルまたは暗黙的ストレージメカニズムなどの様々なタイプのデータ構造を用いて実装されてもよい。プログラムまたは回路構成などの論理は、組み合わされても、または複数のプログラム間に分割されても、いくつかのメモリおよびプロセッサに分散されてもよく、共有ライブラリ(例えばダイナミックリンクライブラリ(DLL:dynamic link library))などのライブラリに実装されてもよい。
記載された特定の実装にかかわらず、すべての説明は限定するものではなく、本質的に例示である。例として、各実装の選択された側面、特徴またはコンポーネントがメモリ(単数または複数)に格納されるものとして表されているが、1つまたは複数のシステムの全部または一部が、例えばハードディスク、フラッシュメモリドライブ、フロッピーディスクおよびCD−ROMなどの二次ストレージデバイスなど、他のコンピュータ可読ストレージ媒体に格納され、分散され、またはそこから読み取られてもよい。さらに、様々なモジュール、回路構成および画面表示機能性は、かかる機能性の一例でしかなく、同様の機能性を含む他の任意の構成が可能である。
上述したプロセス、方法および/または手法を実装するための個々の論理、ソフトウェアまたは命令は、コンピュータ可読ストレージ媒体上で提供されてもよい。図面に示されまたは本願明細書に記載された機能、動作またはタスクは、コンピュータ可読媒体内またはコンピュータ可読媒体上に格納された論理または命令の1つ以上のセットに応答して実行されてもよい。機能、動作またはタスクは、特定のタイプの命令セット、ストレージ媒体、プロセッサまたは処理戦略とは独立しており、単体または組み合わせで動作する、ソフトウェア、ハードウェア、集積回路、ファームウェア、マイクロコードおよび同様のものにより実行され得る。同じく、処理戦略は、マルチプロセッシング、マルチタスキング、並列処理および同様のものを含んでもよい。一例では、命令はローカルまたは遠隔のシステムによる読み取りのために取り外し可能な媒体デバイス上に格納される。他の例では、論理または命令は、コンピュータネットワークを介した、または電話線での転送のために遠隔位置に格納される。さらに別の例では、論理または命令は、所定のコンピュータ、中央処理ユニット(「CPU」)、グラフィック処理ユニット(「GPU:graphics processing unit」)またはシステム内に格納される。
さらに、特定のコンポーネントが上述されているが、本願明細書に記載された方法、システムおよび製品は、追加の、より少数の、または異なるコンポーネントを含んでもよい。例えばプロセッサは、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、個別論理または他のタイプの回路もしくは論理の組み合わせとして実装されてもよい。同じく、メモリはDRAM、SRAM、フラッシュまたはその他任意のタイプのメモリとされ得る。フラグ、データ、データベース、テーブル、エンティティおよびその他データ構造は、別個に格納および管理されてもよく、単一のメモリもしくはデータベースに組み入れられてもよく、分散されてもよく、または多数の異なる形で論理的および物理的に編成されてもよい。コンポーネントは、独立して動作してもよく、または同じプログラムもしくは異なるプログラムを実行する同じ装置の一部であってもよい。コンポーネントは、別々の取り外し可能な回路基板などの別々のハードウェア上に存在してもよく、またはメモリからの命令を実装するために同じメモリおよびプロセッサなど共通のハードウェアを共有してもよい。プログラムは、単一のプログラムの一部であっても、別々のプログラムであっても、またはいくつかのメモリおよびプロセッサにわたって分散していてもよい。
第2のアクションは、第2のアクションが第1のアクションから直接的に生じるかまたは間接的に生じるかとは関係なく、第1のアクション「に応答して」と言われることがある。第2のアクションは、第1のアクションよりも大幅に遅い時間に発生してもよく、それでも第1のアクションに応答してのものとされ得る。同じく、第2のアクションは、第1のアクションと第2のアクションとの間に介在するアクションが起こるとしても、さらに介在するアクションのうちの1つ以上が直接的に第2のアクションを実行させるとしても、第1のアクションに応答してのものと言われることがある。例として、第2のアクションは、第1のアクションがフラグをセットした場合に第1のアクションに応答してのものであってもよく、フラグがセットされるたびに後で第3のアクションが第2のアクションを開始する。
用途を明確化し、且つこれにより公に知らせると、語句「<A>、<B>、…および<N>のうちの少なくとも1つ」または「<A>、<B>、…<N>またはそれらの組み合わせのうちの少なくとも1つ」、または「<A>、<B>、…および/または<N>」は、出願人によって最も広い意味に定義され、この定義は、反対の明示的な主張が出願人によりなされない限り、上文または下文で示唆される他のいずれの定義にも優先し、A、B、…およびNを含む群から選択された1つ以上の構成要素を意味する。言い換えれば、この語句は、構成要素A、B…またはNのうちの1つ以上の任意の組み合わせを意味し、これには任意の1つの構成要素のみ、または他の構成要素1つ以上と組み合わせた1つの構成要素が含まれ、他の構成要素には、列挙されていない追加の構成要素が組み合わせでさらに含まれることもある。
様々な実施形態が記載されたが、当業者には当然のことながら、はるかに多くの実施形態および実装が可能である。したがって、本願明細書に記載された実施形態は例であり、唯一の可能な実施形態および実装ではない。