エクステンデッド・リアリティ(例えば、拡張現実及び/又は仮想現実)などの装着可能な没入型技術の開発の現状と、比較的低い技術的流用率を考えれば、ほとんどのソリューションがフラットな2次元ユーザインターフェースを提供し、そこでほとんどの相互作用が行われることは理解できる。しかしながら、これらのソリューションを現実の体験と比較したとき、低レベルの臨場感、ユーザプレゼンスの欠如、共有スペースの欠如、及び実行できる相互作用の品質は、多くのユーザに孤独感又は退屈感をもたらし、結果として、同じ行為を直接行うよりも生産性が低くなる場合がある。
必要とされるのは、高価な機器(例えば、ヘッドマウントディスプレイなど)を購入する及び新しい又は費用のかかるインフラストラクチャを実装する必要なしに、すべて既存のコンピューティングデバイス及びカメラを使用しながら、リモートで相互作用するときに、ユーザに、臨場感、自分と参加者の実在感、及び現実のように相互作用している感覚を提供する技術ソリューションである。
この概要は、以下の詳細な説明でさらに説明される簡略化された形態で概念の選択を紹介するために提供される。この概要は、特許請求される主題の重要な特徴を特定することを意図しておらず、特許請求される主題の範囲を決定する一助として用いられることも意図していない。
本開示は、一般に、コンピュータシステムに言及し、より詳細には、仮想環境での相互作用、特に社会的相互作用を可能にするシステム及び方法、画像処理ベースの仮想プレゼンスシステム及び方法、ユーザグラフィック表現ベースのユーザ認証システム及び方法、仮想環境内から仮想ブロードキャストするためのシステム及び方法、仮想環境内でアプリケーションを配信するためのシステム及び方法、仮想環境クラウドサーバコンピュータ内でクラウドコンピューティングベースの仮想コンピューティングリソースをプロビジョニングするためのシステム及び方法、及び接近するユーザグラフィック表現間のアドホック仮想通信を可能にするシステム及び方法に言及する。
仮想環境での、特に社会的相互作用を含む、相互作用を可能にする本開示のシステムは、少なくとも1つのプロセッサと、少なくとも1つの仮想環境を含む仮想環境プラットフォームを実装するデータ及び命令を格納するメモリと、を備える1つ又は複数のクラウドサーバコンピュータを備える。1つ又は複数のクラウドサーバコンピュータは、カメラによって得られたライブデータフィードから生成されたユーザグラフィック表現を少なくとも1つの仮想環境の3次元座標位置に挿入し、少なくとも1つの仮想環境におけるユーザグラフィック表現を更新し、仮想環境でのリアルタイムのマルチユーザコラボレーション及び相互作用を可能にするように構成される。
一実施形態では、システムは、クライアントデバイスの1人以上のユーザからライブデータフィードを取得する少なくとも1つのカメラをさらに備える。加えて、システムは、1つ又は複数のクラウドサーバコンピュータ及び少なくとも1つのカメラに通信可能に接続されたクライアントデバイスを備える。システムは、ライブデータフィードからユーザグラフィック表現を生成し、これは仮想環境の3次元座標に挿入され、そこでライブデータフィードを使用して更新される。説明される実施形態では、ユーザグラフィック表現を仮想環境に挿入することは、ユーザグラフィック表現が仮想環境に(例えば、指定された3D座標位置に)現れるように、ユーザグラフィック表現を仮想環境にグラフィカルに組み合わせることに関係する。仮想環境プラットフォームは、1つ又は複数のクライアントデバイスに仮想環境を提供する。システムは、クライアントデバイスを通じてグラフィカルユーザインターフェースにアクセスすることにより、仮想環境でのリアルタイムのマルチユーザコラボレーション及び(社会的)相互作用を可能にする。本開示のクライアントデバイス又はピアデバイスは、例えば、コンピュータ、ヘッドセット、移動電話、メガネ、透明スクリーン、タブレット、及びカメラが組み込まれた又はカメラに接続して前記カメラからデータフィードを受信することができる一般的な入力デバイスを含み得る。
いくつかの実施形態では、仮想環境は、ダウンロード可能なクライアントアプリケーション又はウェブブラウザアプリケーションを介してクライアントデバイスによってアクセス可能である。
いくつかの実施形態では、ユーザグラフィック表現は、背景が削除されたユーザ3D仮想カットアウト、又は背景が削除されたユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオを含む。いくつかの実施形態では、ユーザグラフィック表現は、ユーザがアップロードした又は第三者が提供した写真から構築された背景が削除されたユーザ3D仮想カットアウト、又はカメラから取得したリアルタイムの2Dステレオ深さデータ又は3Dライブビデオストリームデータフィードに基づいて生成された、したがってユーザリアルタイムビデオストリームを含む背景が削除されたユーザリアルタイム3D仮想カットアウト、又は背景が削除されていないビデオ、又は背景が削除されたビデオであり、ポリゴン構造を使用して表示される。このようなポリゴン構造は、ビデオに対応するための仮想フレームとして用いられるカッド構造又はより複雑な3D構造とすることができる。さらに他の実施形態では、このようなユーザグラフィック表現のうちの1つ又は複数は、仮想環境内の3次元座標に挿入され、そこでグラフィカルに組み合わされる。
ユーザ3D仮想カットアウトは、ユーザがアップロードした又は第三者が提供した2D写真から構築されたユーザの仮想レプリカを含み得る。一実施形態では、ユーザ3D仮想カットアウトは、ユーザがアップロードした又は第三者が提供した2D写真を入力データとして使用して背景が削除されたユーザの3Dメッシュ又は3D点群を生成する、マシンビジョン技術を通じた仮想再構築プロセスにより作成される。ユーザリアルタイム3D仮想カットアウトは、カメラから取得したリアルタイムの2D又は3Dライブビデオストリームデータフィードに基づく、ユーザの背景が削除された後の、ユーザの仮想レプリカを含み得る。一実施形態では、ユーザリアルタイム3D仮想カットアウトは、ユーザのライブデータフィードを入力データとして使用して背景が削除されたユーザの3Dメッシュ又は3D点群を生成することによる、マシンビジョン技術を通じた仮想再構築プロセスにより作成される。背景が削除されたビデオは、クライアントデバイスにストリーミングされたビデオを含み、背景削除プロセスは、ユーザだけを見ることができ、受信クライアントデバイス上にポリゴン構造を使用して表示されるように、ビデオに対して行われる。背景が削除されていないビデオは、クライアントデバイスにストリーミングされたビデオを含み、ビデオは、カメラキャプチャを忠実に表し、したがって、ユーザとユーザの背景を見ることができ、受信クライアントデバイス上にポリゴン構造を使用して表示される。
いくつかの実施形態では、ライブデータフィード及び/又はユーザがアップロードした又は第三者が提供した2D写真に含まれる入力データとして用いられるデータは、2D又は3D画像データ、3Dジオメトリ、ビデオデータ、メディアデータ、音声データ、テキストデータ、触覚データ、時間データ、3Dエンティティ、3D動的オブジェクト、テキストデータ、時間データ、メタデータ、優先度データ、セキュリティデータ、位置データ、照明データ、深さデータ、及び赤外線データなどを含み得る。
いくつかの実施形態では、ユーザグラフィック表現は、トップ・ビューイングパースペクティブ、又はサードパーソン・ビューイングパースペクティブ、又はファーストパーソン・ビューイングパースペクティブ、又はセルフ・ビューイングパースペクティブと関連付けられる。一実施形態では、ユーザグラフィック表現を通じて仮想環境にアクセスするときのユーザのビューイングパースペクティブは、トップ・ビューイングパースペクティブ、又はサードパーソン・ビューイングパースペクティブ、又はファーストパーソン・ビューイングパースペクティブ、又はセルフ・ビューイングパースペクティブ、又はブロードキャストカメラ・パースペクティブである。セルフ・ビューイングパースペクティブは、別のユーザグラフィック表現によって見られるようなユーザグラフィック表現、及び随意的にユーザグラフィック表現の仮想背景を含み得る。
さらに別の実施形態では、ビューイングパースペクティブは、ユーザがグラフィカルユーザインターフェースを介して仮想環境を手動でナビゲートする際に更新される。
さらに別の実施形態では、ビューイングパースペクティブは、仮想カメラを使用して自動的に確立及び更新され、ライブデータフィードのビューイングパースペクティブは、ユーザグラフィック表現のビューイングパースペクティブ及び仮想カメラと関連付けられ、仮想カメラは、ユーザの目と頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することによって自動的に更新される。一実施形態では、ビューイングパースペクティブは、ユーザグラフィック表現の前に、例えば、背景が削除されていないビデオ、又は背景が削除されたビデオ、又はユーザ3D仮想カットアウト、又はユーザリアルタイム3D仮想カットアウトの前に仮想的に配置され位置合わせされる1つ又は複数の仮想カメラを使用して自動的に確立及び更新される。一実施形態では、1つ又は複数の仮想カメラは、目の高さから外側に向けることができる。別の実施形態では、2つ(片目につき1つ)の仮想カメラは、両目の高さから外側に向けられている。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の頭部の位置の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、セルフ・ビューイングパースペクティブにあるとき、ユーザグラフィック表現の前に、例えば、ユーザグラフィック表現の頭部の高さにあり、ユーザグラフィック表現に向けて配置される。カメラによって取り込まれるユーザのビューイングパースペクティブは、ユーザグラフィック表現のビューイングパースペクティブと、仮想カメラを操作するコンピュータビジョンを使用する関連する仮想カメラに関連付けられる。さらに、仮想カメラは、ユーザの目と頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することによって自動的に確立及び更新される。
さらに別の実施形態では、セルフ・ビューイングパースペクティブは、背景が削除された、別のユーザグラフィック表現によって見られるような(例えば、電話カメラの「セルフィーモード」のような)グラフィック表現のカットアウトを含む。セルフ・ビューイングパースペクティブは、代替的に、他の参加者によって見られるようなユーザの知覚を理解するためのユーザグラフィック表現の背後にある仮想環境の仮想背景を含む。セルフ・ビューイングパースペクティブは、ユーザグラフィック表現の仮想背景を含むとき、仮想カメラによって取り込まれ得るユーザグラフィック表現の周囲の領域として設定することができ、結果的に、円形、正方形、長方形、又はセルフ・ビューイングパースペクティブのフレーミングに適した任意の他の形状となり得る。
いくつかの実施形態では、仮想環境内のユーザグラフィック表現を更新することは、ユーザステータスを更新することを含む。一実施形態では、利用可能なユーザステータスとしては、不在、ビジー、対応可能、オフライン、電話会議中、又は会議中が挙げられる。ユーザステータスは、グラフィカルユーザインターフェースを通じて手動で更新され得る。他の実施形態では、ユーザステータスは、ユーザステータスデータを含むユーザカレンダー情報に接続して同期することにより自動的に更新される。さらに他の実施形態では、ユーザステータスは、ユーザステータスと同期され得るビジーステータスを指定する、プログラミング開発環境、3Dエディタ、又は他の生産性ソフトウェアなどの特定のプログラムの使用状況の検出を通じて、自動的に更新される。さらに別の実施形態では、ユーザステータスは、カメラから取得されたデータフィードに基づいて、マシンビジョンアルゴリズムを通じて自動的に更新され得る。
いくつかの実施形態では、特に社会的相互作用を含む、対応するユーザグラフィック表現を通じたユーザ間の相互作用としては、チャット、画面共有、ホストオプション、リモートセンシング、レコーディング、投票、文書共有、絵文字送信、議題の共有及び編集、仮想ハグ、挙手、手を振る、歩く、インタラクティブアプリケーション又は静的又はインタラクティブ3Dアセット、アニメーション、又は2Dテクスチャを含むコンテンツの追加、会議の概要の準備、オブジェクトの移動、コンテンツの投影、レーザーポインティング、ゲームプレイ、購買、アドホック仮想通信に参加、及びプライベート又はグループ会話に参加が挙げられる。
いくつかの実施形態では、仮想環境は、1つ又は複数のクラウドサーバコンピュータの永続メモリストレージに格納された永続仮想環境であるか、又は、1つ又は複数のクラウドサーバコンピュータの一時的なメモリストレージに格納された一時的な仮想環境である。一実施形態では、仮想環境は、そこでなされた変更を記録する永続仮想環境であり、変更は、永続仮想環境に指定される少なくとも1つのクラウドサーバコンピュータの永続メモリストレージに格納されるカスタマイゼーションを含む。他の実施形態では、仮想環境は、クラウドサーバの一時的なメモリストレージに格納される一時的な仮想環境である。
いくつかの実施形態では、仮想環境の構成は、仮想環境プラットフォームから選択された1つ又は複数の仮想環境バーティカルに関係する仮想環境のコンテキストテーマと関連付けられる。一実施形態では、可能な構成としては、教育、会議、仕事、ショッピング、サービス、社交、又はエンターテイメント、或いはそれらの組み合わせで使用するための構成が挙げられる。1つ又は複数のバーティカル内の仮想環境の複合体は、仮想環境クラスタを表すことができる。
さらなる実施形態では、仮想環境クラスタは、少なくとも複数の教室を備える仮想学校、或いは異なる組織のメンバーのコワーキング又はネットワーキングスペースとしてその一部が共有される少なくとも複数の作業領域及び応接室を備える仮想会社、或いはライブエンターテイメントパフォーマの取り込みを含むライブイベントをホストする少なくとも1つの屋内又は屋外イベントエリアを備えるイベント施設、或いは少なくとも複数の店舗を備える仮想ショッピングモール、或いは少なくとも複数の遊戯エリアを備える仮想カジノ、或いは少なくとも複数のサービスエリアを備える仮想銀行、或いはライブディスクジョッキー(DJ)パフォーマの取り込みを含む少なくとも複数のVIPエリア及び/又はパーティエリアを備える仮想ナイトクラブ、或いは複数のプライベート又はパブリックカラオケルームを備える仮想カラオケエンターテイメント施設、或いはクルーズ船内の複数の仮想エリアと、ユーザが仮想クルーズ船を降りて訪れることができる風景、島、町、及び都市を含むクルーズ船外のエリアを備える仮想クルーズ船、或いはe-スポーツスタジアム又は体育館のうちの1つ又は複数である。
さらなる実施形態では、仮想環境は、仮想リソースを含む仮想コンピュータをさらに備える。一実施形態では、仮想リソースは、クライアントデバイスを通じてアクセスされる1つ又は複数のクラウドコンピュータリソースからのものであり、管理ツールで前記仮想コンピュータリソースに割り当てられる。
いくつかの実施形態では、仮想環境プラットフォームは、仮想環境の複数のインスタンスへのリモートイベントのマルチキャスト又はブロードキャストを可能にするように構成される。これは、世界の様々な地域からの多数のユーザが、マルチキャストされる同じライブイベントを体験できるようにするために行われ得る。
いくつかの実施形態では、仮想環境にリダイレクトするクリッカブルリンクは、第三者ウェブサイト、アプリケーション、又はビデオゲームを含む1つ又は複数の第三者ソースに埋め込まれる。
本開示の別の態様では、仮想環境での社会的相互作用を含む相互作用を可能にする方法は、少なくとも1つのプロセッサを備える1つ又は複数のクラウドサーバコンピュータのメモリ内に、少なくとも1つの仮想環境を含む仮想環境プラットフォームを提供することと、少なくとも1つの対応するクライアントデバイスから(例えば、少なくとも1つのカメラによって取り込まれたユーザの)ライブデータフィードを受信することと、ライブデータフィードからユーザグラフィック表現を生成することと、ユーザグラフィック表現を仮想環境の3次元座標位置に挿入することと、ライブデータフィードから仮想環境内のユーザグラフィック表現を更新することと、仮想環境での相互作用から生成されたデータを処理することを含む。このような相互作用は、仮想環境での特に社会的相互作用を含み得る。このような相互作用について、方法は、直接P2P通信で、或いは1つ又は複数のクラウドサーバの使用を通じて間接的に、更新された仮想環境をクライアントデバイスに提供し、仮想環境でのリアルタイムのマルチユーザコラボレーション及び相互作用を可能にすることを含み得る。
いくつかの実施形態では、システムは(例えば、仮想環境プラットフォームを介して)さらに、アドホック仮想通信の作成を可能にし、これは、仮想環境での現在のビューイングパースペクティブ又は位置を変更する必要なしに、ユーザグラフィック表現間のアドホック音声通信チャネルを作成することを含み得る。例えば、ユーザグラフィック表現は、別のユーザグラフィック表現に接近し、両方のユーザグラフィック表現エリアが存在する仮想環境内の場所でアドホック音声会話を行うことができる。このような通信は、例えば、ユーザグラフィック表現間の距離、位置、及び向き、及び/又はそれらの現在の対応可能性ステータス(例えば、対応可能又は対応不可能)、又はこのようなアドホック通信のステータス構成、又はそれらの組み合わせを考慮に入れることによって可能となる。接近するユーザグラフィック表現は、アドホック通信が可能であることをシグナリングする、したがって両方のユーザグラフィック表現間の会話の開始を設定する、他のユーザグラフィック表現に関する視覚的フィードバックを見ることになり、この場合、接近するユーザは話しかけることができ、他のユーザはそれを聞いて応答することができる。別の実施形態では、仮想環境プラットフォームは、クライアントデバイスによって実行されるステップに応答して生成されるデータの処理を通じて、仮想環境でのアドホック仮想通信を行うことを可能にし、これは、ユーザグラフィック表現に接近するステップと、ユーザグラフィック表現を選択及びクリックするステップと、別のユーザグラフィック表現との間でアドホック仮想通信参加招待を送信又は受信するステップと、受信した招待を承諾するステップを含み得る。このようなシナリオでは、プラットフォームは、ユーザクライアントデバイス間の通信チャネルを開くことができ、ユーザグラフィック表現は、仮想環境の仮想空間で会話をする。
いくつかの実施形態では、方法は、1人以上のユーザを会話に参加させることと、ユーザグラフィック表現を、ユーザ3D仮想カットアウトから、ユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオに移行することと、ユーザクライアントデバイス間のピア・ツー・ピア(P2P)通信チャネルを開くことをさらに含む。一実施形態では、2人以上のユーザを会話に引き込むステップは、ユーザグラフィック表現に接近することと、ユーザグラフィック表現を選択及びクリックすることと、別のユーザグラフィック表現との間で会話参加招待を送信又は受信することと、受信した招待を承諾することを含む。ユーザクライアントデバイス間の通信チャネルを開くステップは、処理及びレンダリングがクライアントデバイスによって行われる場合に実行され得る、又は、1つ又は複数のクラウドサーバコンピュータを通じて間接通信チャネルを開くステップは、処理及びレンダリングが少なくとも1つのクラウドサーバコンピュータ上で又は少なくとも1つのクラウドサーバとクライアントデバイス間で行われるときに実行され得る。さらなる実施形態では、会話は、参加者のユーザ3D仮想カットアウトとの間でリアルタイム音声を送信及び受信することを含む。さらなる実施形態では、会話は、参加者のユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオから表示されるリアルタイム音声及びビデオを送信及び受信することを含む。
いくつかの実施形態では、仮想環境での相互作用を可能にする方法は、仮想環境にリダイレクトするクリッカブルリンクを、第三者ウェブサイト、アプリケーション、又はビデオゲームを含む1つ又は複数の第三者ソースに埋め込むことをさらに含む。
本開示の別の態様では、データ処理システムは、少なくとも1つのクラウドサーバコンピュータを含む1つ又は複数のコンピューティングデバイスを備え、1つ又は複数のコンピューティングデバイスは、少なくとも1つのプロセッサと、画像処理機能を実装するデータ及び命令を格納するメモリを備え、データ処理システムの1つ又は複数のコンピューティングデバイスは、ハイブリッドシステムアーキテクチャでの少なくとも1つのクラウドサーバコンピュータと2つ以上のクライアントデバイスの1つ又は複数の画像処理の組み合わせによって、ライブデータフィードからユーザグラフィック表現を生成するように構成される。一実施形態では、システムは、ネットワークを介して互いに、及び1つ又は複数のクラウドサーバコンピュータに通信可能に接続される2つ以上のクライアントデバイスを備え、2つ以上のクライアントデバイスは、少なくとも1つのプロセッサと、画像及びメディアの処理機能を実装するデータ及び命令を格納するメモリと、クライアントデバイスのうちの少なくとも1つの少なくとも1人のユーザからライブデータフィードを取得する、少なくとも1つのクライアントデバイス及び1つ又は複数のクラウドサーバコンピュータに接続される、少なくとも1つのカメラを備える。ユーザグラフィック表現は、1つ又は複数のクラウドサーバコンピュータと1つ又は複数のクライアントデバイスの1つ又は複数の画像及びメディアの処理の組み合わせによって、ライブデータフィードから生成される。1つ又は複数のクラウドサーバコンピュータと1つ又は複数のクライアントデバイスは、ハイブリッドシステムアーキテクチャを通じて相互作用する。
いくつかの実施形態では、データ処理システムの入力データとして用いられるデータは、2D又は3D画像データ、3Dジオメトリ、ビデオデータ、メディアデータ、音声データ、テキストデータ、触覚データ、時間データ、3Dエンティティ、3D動的オブジェクト、テキストデータ、時間データ、メタデータ、優先度データ、セキュリティデータ、位置データ、照明データ、深さデータ、及び赤外線データなどを含み得る。
いくつかの実施形態では、ハイブリッドシステムアーキテクチャは、クライアントサーバ側及びピア・ツー・ピア(P2P)側を備える。一実施形態では、クライアントサーバ側は、ウェブ又はアプリケーションサーバを備える。クライアントサーバ側はさらに、安全な通信プロトコル、マイクロサービス、データベース管理システム、データベース、及び/又は分散型メッセージ及びリソース配信プラットフォームを含むように構成され得る。サーバ側コンポーネントは、ネットワークを通じてサーバに通信するクライアントデバイスと共に提供され得る。クライアントサーバ側は、クライアント側、サーバ側、又は受信クライアント側によって行われる任意の処理を含む、ネットワークを通じた1つ又は複数のクライアントとサーバとの相互作用を定義する。一実施形態では、対応するクライアント及びサーバのうちの1つ又は複数は、様々なルールベースのタスク割り当ての組み合わせに従って、必要な画像及びメディアの処理を行う。一実施形態では、ウェブ又はアプリケーションサーバは、安全な通信プロトコルを使用してクライアント要求を受信し、データベース管理システムを使用するデータベースからの要求に対応するマイクロサービス又はデータを要求することによってクライアント要求を処理するように構成される。マイクロサービスは、パブリッシュ-サブスクライブモデルを使用した分散型メッセージ及びリソース配信プラットフォームを利用して配信される。
P2P側は、仮想環境でのクライアントデバイス間のリアルタイム通信を可能にするP2P通信プロトコルと、クライアントデバイスが仮想環境に含まれるライブセッション要素(例えば、ユーザグラフィック表現)のリアルタイム3Dレンダリングを実行することを可能にするように構成されたレンダリングエンジンを備える。一実施形態では、P2P側は、クライアントデバイスが仮想環境でリアルタイムのコンピュータビジョンタスクを実行することを可能にするように構成されたコンピュータビジョンライブラリをさらに含む。このような通信のハイブリッドモデルを使用することで、ユーザ間の迅速なP2P通信が可能となり、各セッションにウェブサービス及びリソースを提供しながら待ち時間の問題が低減され、仮想環境でのユーザ間の及びコンテンツとの複数の相互作用が可能となり得る。
P2P側は、クライアントデバイス間の相互作用と、P2P側から一方又は他方のクライアントデバイスが実行できる任意の処理を定義する。いくつかの実施形態では、P2P側は、ビデオ及びデータ処理タスク、及びクライアントデバイス間の同期、ストリーミング、及びレンダリングのために用いられる。他の実施形態では、P2P側は、ビデオのストリーミング、レンダリング、及びクライアントデバイス間の同期のために用いられ、一方、クライアントサーバ側は、データ処理タスクのために用いられる。さらなる実施形態では、クライアントサーバ側は、データ処理タスクとともにビデオのストリーミングのために用いられ、一方、P2P側は、クライアントデバイス間のビデオのレンダリング及び同期のために用いられる。さらに別の実施形態では、クライアントサーバ側は、ビデオのストリーミング、レンダリング、及びデータ処理タスク、及び同期のために用いられる。
一実施形態では、データ処理タスクは、ユーザグラフィック表現を生成すること及びユーザグラフィック表現を仮想環境に挿入することを含む。ユーザグラフィック表現を生成することは、背景の削除を行うこと又は他の処理又は改善を含み得る。
いくつかの実施形態では、P2P側のデータは、1つのクライアントデバイスからピアクライアントデバイスに直接送信されるか、又はその逆に送信されるか、又はクライアントサーバ側を通じてサーバを通じてリレーされる。
いくつかの実施形態では、少なくとも1つのクラウドサーバは、中間サーバであり、これは、サーバがクライアントデバイス間のデータの交換を容易にする及び/又は最適化するために用いられることを意味する。このような実施形態では、少なくとも1つのクラウドサーバは、着信画像及びマルチメディアストリームを管理、分析、処理、及び最適化し、ルータトポロジー(例えば、限定はされないが、SFU(Selective Forwarding Units)、SAMS(Spatially Analyzed Media Server)、マルチメディアサーバルータ、又は画像及びメディアの処理(例えば、限定はされないが、デコード、結合、改善、ミキシング、強化、拡張、コンピューティング、操作、エンコーディング)、及び転送サーバトポロジー(例えば、限定はされないが、マルチポイントコントロールユニット(MCU)、クラウドメディアミキサ、クラウド3Dレンダラーなど)、又は他のサーバトポロジーとして、発信ストリームの転送を管理、評価、最適化することができる。
中間サーバがSAMSであるこのような実施形態では、このようなメディアサーバは、各送信クライアントデバイスの着信データ(例えば、メタデータ、優先度データ、データクラス、空間構造データ、3次元位置、向き、又は移動情報、画像、メディア、スケーラブルなビデオコーデックベースのビデオを含むがこれらに限定されない)を管理、分析、及び処理し、このような分析では、特定の受信クライアントデバイスユーザの空間的3次元の向き、距離、及び1つ又は複数のユーザクライアントデバイスを受信するための最適な帯域幅及びコンピューティングリソース使用率を実現するこのような着信データに対する優先度の関係性に基づいて、時間(様々なフレームレート)、空間(例えば、異なる画像サイズ)、品質(例えば、異なる圧縮又はエンコードに基づく品質)、及び色(例えば、色の解像度及び範囲)について、メディアを変更、アップスケーリング、又はダウンスケーリングすることによって、発信データストリームの各受信クライアントデバイスへの転送を最適化する。
いくつかの実施形態では、複数の画像処理タスクが、クライアントデバイス、クラウドサーバ、及び/又は受信クライアントデバイスのいずれによって行われるかに基づいて分類され、したがって、クライアントデバイス画像処理、サーバ画像処理、及び受信クライアントデバイス画像処理として分類される。複数の画像処理タスクは、ハイブリッドアーキテクチャのクライアントサーバ側、P2P側、又はそれらの組み合わせで実行され得る。画像処理タスクは、背景の削除、さらなる処理又は改善、及び仮想環境への挿入及び組み合わせを含む。3つの画像処理タスクの組み合わせは、ユーザグラフィック表現の生成、改善、及び仮想環境への挿入/組み合わせにおいて用いられ得る。画像処理の組み合わせと、クライアントデバイス処理、サーバ画像処理、及び受信クライアントデバイス処理の対応する使用状況レベルは、処理するデータの量、スムーズなユーザ体験を維持するために許される待ち時間、所望のサービス品質(QOS)、必要なサービスなどに依存する。以下は、クライアントサーバ側で行われる8つのこのような画像処理の組み合わせである。
いくつかの実施形態では、クライアントデバイスの少なくとも1つは、クライアントサーバ側での画像処理の組み合わせで、ユーザグラフィック表現を生成し、背景の削除を行い、背景が削除されたユーザグラフィック表現をさらなる処理のために少なくとも1つのクラウドサーバに送信するように構成される。第1の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善のために、背景が削除されたユーザグラフィック表現を少なくとも1つのクラウドサーバに送信する。少なくとも1つのクラウドサーバは、背景が削除された強化されたユーザグラフィック表現を受信クライアントデバイスに送信し、受信クライアントデバイスは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
第2の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、その後、これを少なくとも1つのクラウドサーバに送信する。少なくとも1つのクラウドサーバは、背景が削除された強化されたユーザグラフィック表現を受信クライアントデバイスに送信し、受信クライアントデバイスは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
第3の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。次いで、クライアントデバイスは、仮想環境に挿入されて組み合わされた背景が削除された強化されたユーザグラフィック表現を、受信クライアントデバイスにリレーするためにクラウドサーバに送信する。
第4の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現を、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行うために少なくとも1つのクラウドサーバに送信する。次いで、少なくとも1つのクラウドサーバは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせて、受信クライアントデバイスに送信する。
第5の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現を、受信クライアントデバイスにリレーするために少なくとも1つのクラウドサーバに送信する。受信クライアントデバイスは、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、仮想環境に挿入して組み合わせる。
第6の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータを少なくとも1つのクラウドサーバに送信し、少なくとも1つのクラウドサーバは、背景の削除を含むユーザグラフィック表現の生成を行い、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、受信クライアントデバイスに送信する。受信クライアントデバイスは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
第7の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータを少なくとも1つのクラウドサーバに送信する。少なくとも1つのクラウドサーバは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせて、受信クライアントデバイスに送信する。
第8の例示的な画像処理の組み合わせにおいて、クライアントデバイスは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータを受信クライアントデバイスにリレーするために少なくとも1つのクラウドサーバに送信する。受信クライアントデバイスは、該データを使用して、背景の削除を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
いくつかの実施形態では、クライアントサーバ側のデータが少なくとも1つのクラウドサーバを通じてリレーされるとき、少なくとも1つのクラウドサーバは、Traversal Using Relay NAT(TURN)サーバとして構成される。TURNは、対称NAT(Network Address Translation)の場合に使用することができ、処理された及び/又は未処理のデータがクライアントデバイス間でリレーされている間、接続が確立された後もメディアパスに残り得る。
以下は、第1及び第2のピアデバイスのいずれか又は両方によって行われる、P2P側で行われる3つの例示的な画像処理の組み合わせの説明である。
第1の画像処理の組み合わせにおいて、第1のピアデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。次いで、第1のピアデバイスは、仮想環境に挿入されて組み合わされた背景が削除された強化されたユーザグラフィック表現を第2のピアデバイスに送信する。
第2の画像処理の組み合わせにおいて、第1のピアデバイスは、背景の削除を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現を第2のピアデバイスに送信する。第2のピアデバイスは、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、仮想環境に挿入して組み合わせる。
第3の画像処理の組み合わせにおいて、第1のピアデバイスは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータを第2のピアデバイスに送信する。第2のピアデバイスは、該データを使用して、背景の削除を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理を行い、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
いくつかの実施形態では、P2P側での3つの画像処理の組み合わせは、少なくとも1つのクラウドサーバを通じてデータをリレーすることをさらに含み得る。これらの実施形態では、少なくとも1つのクラウドサーバは、STUNサーバとして構成することができ、これにより、ピアデバイスは、ピアデバイス間のデータ接続及びデータ交換を確立するために用いられ得るそれらのパブリックIPアドレス及び背後にあるNATのタイプ、情報を検出することができる。別の実施形態では、少なくとも1つのクラウドサーバコンピュータは、シグナリング用に構成することができ、これは、ピアデバイスが互いに位置を特定して接続する、及び、少なくとも1つのクラウドサーバによって行われる通信コーディネーションを通じてデータを交換するために用いられ得る。
いくつかの実施形態では、メディア、ビデオ、及び/又はデータ処理タスクは、画像フィルタリング、コンピュータビジョン処理、画像鮮明化、背景の改善、背景の削除、前景のぼかし、アイカバーリング、顔のピクセル化、音声歪み、画像アップレズ、画像クレンジング、骨格分析、顔又は頭部のカウント、オブジェクト認識、マーカ又はQRコード追跡、視標追跡、特徴分析、3Dメッシュ又はボリューム生成、特徴追跡、顔認識、SLAM追跡、及び顔の表情認識、又はこのようなメディアルータ又はサーバ上で実行されるマイクロサービスの形態の他のモジュラプラグインのうちの1つ又は複数を含むエンコーディング、トランスコーディング、デコーディング空間又は3D分析及び処理のうちの1つ又は複数を含む。
いくつかの実施形態では、背景の削除は、インスタンスセグメンテーション又はセマンティックセグメンテーションのうちの1つ又は複数を通じた画像セグメンテーションの採用と、ディープニューラルネットワークの使用を含む。
いくつかの実施形態では、データ処理システムの1つ又は複数のコンピューティングデバイスはさらに、仮想カメラを生成することによってユーザグラフィック表現を仮想環境に挿入するように構成され、仮想カメラを生成することは、取り込まれたビューイングパースペクティブデータを仮想環境内のユーザグラフィック表現のビューイングパースペクティブに関連付けることを含む。一実施形態では、ユーザグラフィック表現を仮想環境に挿入して組み合わせることは、ユーザグラフィック表現の前に、例えば、背景が削除されたビデオ、又は背景が削除されていないビデオ、又はユーザ3D仮想カットアウト、又はユーザリアルタイム3D仮想カットアウトの前に仮想的に配置され位置合わせされる1つ又は複数の仮想カメラを生成することを含む。一実施形態では、1つ又は複数の仮想カメラは、目の高さから外側に向けることができる。別の実施形態では、2つ(片目につき1つ)の仮想カメラは、両目の高さから外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の頭部の位置の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、セルフ・ビューイングパースペクティブにあるとき、ユーザグラフィック表現の前に、例えば、ユーザグラフィック表現の頭部の高さで、ユーザグラフィック表現に向けて配置される場合がある。
一実施形態では、1つ又は複数の仮想カメラは、少なくとも、コンピュータビジョンを使用して、取り込んだユーザのビューイングパースペクティブデータを仮想環境内のユーザグラフィック表現のビューイングパースペクティブと関連付けることによって作成される。
本開示の別の態様では、画像処理方法は、画像処理機能を実装するデータ及び命令を少なくとも1つのクラウドサーバコンピュータのメモリに提供することと、少なくとも1つのクラウドサーバコンピュータと少なくとも1つのクライアントデバイスの1つ又は複数の画像処理の組み合わせによって、少なくとも1つのクライアントデバイスからのライブデータフィードに基づいて仮想環境でのユーザグラフィック表現を生成することを含み、少なくとも1つのクラウドサーバコンピュータは、ハイブリッドシステムアーキテクチャを通じて少なくとも1つのクライアントデバイスと相互作用する。一実施形態では、方法は、少なくとも1つのカメラから、少なくとも1つの対応するクライアントデバイスの少なくとも1人のユーザからのライブデータフィードを得ることと、1つ又は複数のクラウドサーバコンピュータと少なくとも1つのクライアントデバイスの1つ又は複数の画像処理の組み合わせによって、ユーザグラフィック表現を生成することを含む。1つ又は複数のクラウドサーバコンピュータと少なくとも1つのクライアントデバイスは、P2P側及びクライアントサーバ側を備える本開示のハイブリッドシステムアーキテクチャを通じて相互作用し得る。
いくつかの実施形態では、方法は、P2P側で、ビデオ及びデータの処理とクライアントデバイス間の同期、ストリーミング及びレンダリングを行うことを含む。さらなる実施形態では、方法は、クライアントサーバ側がデータ処理のために用いられている間に、P2P側で、ビデオのストリーミング、レンダリング、及びクライアントデバイス間の同期を行うことを含む。さらなる実施形態では、方法は、P2P側がビデオのレンダリング及びクライアントデバイス間の同期のために用いられている間に、クライアントサーバ側で、データ処理とともにビデオのストリーミングを行うことを含む。さらに別の実施形態では、方法は、クライアントサーバ側で、ビデオのストリーミング、レンダリング、及びデータの処理及び同期を行うことを含む。
いくつかの実施形態では、データ処理タスクは、ユーザグラフィック表現を生成することと、ユーザグラフィック表現を仮想環境に挿入することを含む。一実施形態では、データ処理タスクは、最初に背景の削除を行うことを含むユーザグラフィック表現を生成し、次いで、さらなる処理を行い、その後、仮想環境に挿入して組み合わせることを含む。さらに別の実施形態では、画像処理タスクは、クライアントサーバ側又はP2P側でのクライアントデバイスとクラウドサーバコンピュータの複数の画像処理の組み合わせを通じて実行される。
いくつかの実施形態では、ユーザグラフィック表現を仮想環境に挿入することは、仮想カメラを生成することを含み、仮想カメラを生成することは、取り込まれたビューイングパースペクティブデータを仮想環境内のユーザグラフィック表現のビューイングパースペクティブに関連付けることを含む。一実施形態では、ユーザグラフィック表現を仮想環境に挿入して組み合わせることは、ユーザグラフィック表現の前に、例えば、背景が削除されたビデオ、又は背景が削除されていないビデオ、又はユーザ3D仮想カットアウト、又はユーザリアルタイム3D仮想カットアウトの前に仮想的に配置され位置合わせされる1つ又は複数の仮想カメラを生成することを含む。一実施形態では、1つ又は複数の仮想カメラは、目の高さから外側に向けることができる。別の実施形態では、2つ(片目につき1つ)の仮想カメラは、両目の高さから外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の頭部の位置の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、セルフ・ビューイングパースペクティブにあるとき、ユーザグラフィック表現の前に、例えば、ユーザの頭部の高さで、ユーザグラフィック表現に向けて配置される場合がある。仮想カメラは、少なくとも、コンピュータビジョンを使用して、取り込んだユーザのビューイングパースペクティブデータを仮想環境内のユーザグラフィック表現のビューイングパースペクティブと関連付けることによって作成される。
いくつかの実施形態では、方法は、埋め込みクリッカブルリンクをユーザグラフィック表現に埋め込むことをさらに含み、埋め込みクリッカブルリンクは、クリックに応答して、対応するユーザに関するプロフィール情報を含む第三者ソースに誘導する。
本開示の別の態様では、ユーザグラフィック表現ベースのユーザ認証システムは、少なくとも1つのプロセッサと、ユーザアカウント及び1つ又は複数の対応するユーザグラフィック表現に関連付けられたユーザデータを格納するユーザデータベースを含むデータ及び命令を格納するメモリとを備える1つ又は複数のクラウドサーバコンピュータ、及び、データベースに接続された顔スキャン及び認証モジュールを備え、1つ又は複数のクラウドサーバコンピュータは、顔スキャン及び認証モジュールを通じて、クライアントデバイスから受信したカメラデータから顔特徴データを抽出し、抽出した顔特徴データをユーザデータベース内のユーザアカウントに関連付けられたユーザグラフィック表現との一致についてチェックすることを含むユーザの顔スキャンを行うことによってユーザを認証するステップと、一致するユーザグラフィック表現がチェックステップで見つかる場合、対応するユーザアカウントへのアクセスをユーザに提供するステップと、一致するユーザグラフィック表現がチェックステップで見つからない場合、カメラデータから、ユーザデータベースに格納された新しいユーザアカウントとともに新しいユーザグラフィック表現を生成し、ユーザアカウントへのアクセスを提供するステップとを行うように構成される。
一実施形態では、システムは、ユーザアカウントへのアクセスを要求する少なくとも1つのクライアントデバイスのユーザからデータを得るように構成された少なくとも1つのカメラを含み、少なくとも1つのカメラは、少なくとも1つのクライアントデバイス及び1つ又は複数のクラウドサーバコンピュータに接続される。1つ又は複数のクラウドサーバコンピュータは、顔スキャン及び認証モジュールを通じてユーザの顔スキャンを行い、ユーザグラフィック表現との一致についてユーザデータベースをチェックし、ユーザアカウントが確認され、利用可能である場合、ユーザアカウントへのアクセスとともに、対応するユーザグラフィック表現をユーザに提供し、ユーザアカウントが利用可能でない場合、データから、ユーザアカウントへのアクセスとともに、ユーザデータベースに格納される新しいユーザアカウントとともに、新しいユーザグラフィック表現を生成することによって、ユーザを認証する。
ユーザアカウントは、例えば、仮想環境プラットフォーム、又は任意の対話型アプリケーション、ゲーム、電子メールアカウント、大学プロフィールアカウント、仕事アカウントなどの任意の他のアプリケーション(例えば、環境プラットフォームにリンクされ得るアプリケーション)にアクセスするために使用され得る。本開示のユーザグラフィック表現ベースのユーザ認証システムは、とりわけ、ユーザグラフィック表現を生成する又はユーザデータベースから既存のユーザグラフィック表現を取得するさらなる認証ステップが与えられると、標準的なカメラベースの顔検出認証システムよりも高いセキュリティレベルを提供する。
いくつかの実施形態では、ユーザグラフィック表現は、ユーザ3D仮想カットアウト、又は背景が削除されたユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオである。一実施形態では、ユーザグラフィック表現は、ユーザがアップロードした又は第三者が提供した写真から構築されたユーザ3D仮想カットアウト、又はカメラから取得したリアルタイムの2D又は3Dライブビデオストリームデータフィードに基づいて生成された背景が削除されたユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオである。いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、一致するユーザグラフィック表現又は新しいユーザグラフィック表現をアニメーション化するように構成される。一致するユーザグラフィック表現をアニメーション化することは、ユーザの顔の表情を認識し、顔の表情をユーザグラフィック表現でグラフィカルにシミュレートするために、それぞれのユーザグラフィック表現にクライアントデバイス又は少なくとも1つのクラウドサーバコンピュータによるマシンビジョンアルゴリズムを適用することを含む。さらなる実施形態では、ユーザがアップロードした又は第三者が提供した写真から構築されたユーザ3D仮想カットアウトを更新することは、ユーザの顔の表情を認識し、ユーザ3D仮想カットアウト上で顔の表情をグラフィカルにシミュレートするために、生成されたユーザ3D仮想カットアウトにクライアントデバイス又は少なくとも1つのクラウドサーバコンピュータによるマシンビジョンアルゴリズムを適用することを含む。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、一致するユーザグラフィック表現の日付をチェックし、一致するユーザグラフィック表現の更新が必要であるかどうかを判定するように構成される。一実施形態では、ユーザアカウントが利用可能である場合、1つ又は複数のクラウドサーバコンピュータが利用可能なユーザグラフィック表現の日付をチェックすることに応答して、1つ又は複数のクラウドサーバコンピュータは、対応する閾値又はセキュリティ要件と比較することによって、既存のユーザグラフィック表現の更新が必要であるかどうかを判定する。例えば、システムセキュリティの更新があった場合、すべてのユーザグラフィック表現又は少なくとも指定された日付よりも前に作成されたユーザグラフィック表現を更新する必要がある可能性がある。ユーザグラフィック表現が必要とされる場合、1つ又は複数のクラウドサーバコンピュータは、対応するクライアントデバイスに対してユーザグラフィック表現の更新要求を生成する。ユーザが要求を承認する場合、1つ又は複数のクラウドサーバコンピュータ又はクライアントデバイスは、ライブカメラフィードに基づいてユーザグラフィック表現を生成することに進む。更新が必要とされない場合、1つ又は複数のクラウドサーバコンピュータは、ユーザデータベースから既存のユーザグラフィック表現を取得することに進む。
いくつかの実施形態では、ユーザグラフィック表現は、2次元又は3次元の仮想環境に挿入されるか、又は(例えば、本開示のシステムと統合又は結合された第三者アプリケーション又はウェブサイトの画面上にオーバーレイすることによって)仮想環境にリンクした第三者ソースに挿入され、2次元又は3次元の仮想環境とグラフィカルに組み合わされる。
いくつかの実施形態では、ユーザグラフィック表現の生成プロセスは、ユーザアカウントへのユーザアクセスとは非同期的に行われる。例えば、システムが、ユーザグラフィック表現ベースの顔スキャン及び検出を行った後で、ユーザが既に認証されていると判定する場合、システムは、準備が出来次第、ユーザに提供し、仮想環境に挿入して組み合わせるために、新しいユーザグラフィック表現の生成中にユーザがユーザアカウントにアクセスすることを可能にし得る。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、個人識別番号(PIN)、又はユーザ名及びパスワード、又はこれらの組み合わせを含むログイン認証資格証明書を通じてユーザを認証するように構成される。
いくつかの実施形態では、認証は、或るクライアントデバイスから別のクライアントデバイスに送信された招待リンク又はディープリンクのアクティブ化に応答してトリガされる。一実施形態では、招待リンク又はディープリンクをクリックすることは、少なくとも1つのクラウドサーバコンピュータがユーザ認証を要求することをトリガする。例えば、招待リンク又はディープリンクは、電話、電話会議、又はビデオゲームセッションの招待のためのものであり、招待されたユーザは、本開示のユーザグラフィック表現ベースの認証システムを通じて認証され得る。
別の実施形態では、顔スキャンは、頭部の動きパターンを実行するようにユーザをガイドし、頭部の動きパターンに基づいて3D顔データを抽出することを含む3D認証を使用する。これは、頭部の動きパターンを実行する、例えば、1つ又は複数の頭部ジェスチャーを実行する、頭部を横に又は縦に傾ける又は円を描くように回転させる、ユーザにより生成されたジェスチャーパターン、又は特定の頭部の動きパターン、又はこれらの組み合わせを実行するようにユーザをガイドすることによって3D認証を実施する少なくとも1つのサーバコンピュータに格納されたアプリケーション命令を使用して行うことができる。3D認証は、1つのビュー又は画像を比較及び分析するだけではなく、カメラのライブビデオデータフィードから取得したデータからさらなる特徴を認識する。この3D認証の実施形態では、顔スキャンプロセスは、頭部の動きパターン、顔のボリューム、高さ、顔特徴の深さ、顔の傷、タトゥ、目の色、顔の皮膚パラメータ(例えば、皮膚の色、皺、毛穴構造など)、反射率パラメータ、さらに、例えば、他のタイプの顔検出システムの場合のように、顔トポロジー上のこのような特徴の位置だけ、を含む顔データを含み得るデータからさらなる特徴を認識することができる。したがって、このような顔データの取り込みは、現実的なユーザグラフィック表現の生成に役立つ可能性がある現実的な顔の取り込みを増加させることができる。3D認証を用いる顔スキャンは、高解像度3Dカメラ、深度カメラ(例えば、LIDAR)、ライトフィールドカメラなどを使用して行われ得る。顔スキャンプロセス及び3D認証は、ディープニューラルネットワーク、畳み込みニューラルネットワーク、及び他の深層学習技術を使用して、顔データを使用することによりユーザの認証を取得、処理、及び評価することができる。
本開示の別の態様では、ユーザグラフィック表現ベースのユーザ認証方法は、1つ又は複数のクラウドサーバコンピュータのメモリに、ユーザアカウント及び1つ又は複数の対応するユーザグラフィック表現に関連付けられたユーザデータを格納するユーザデータベースと、ユーザデータベースに接続された顔スキャン及び認証モジュールを提供することと、クライアントデバイスから、ユーザアカウントへのアクセス要求を受信することと、クライアントデバイスと通信する少なくとも1つのカメラによって取り込まれたカメラデータから顔特徴データを抽出することによって顔スキャン及び認証モジュールを通じてクライアントデバイスのユーザの顔スキャンを行うことと、抽出した顔特徴データをユーザデータベース内のユーザアカウントに関連付けられたユーザグラフィック表現との一致についてチェックすることと、一致するユーザグラフィック表現がチェックステップで見つかる場合、ユーザアカウントへのアクセスをユーザに提供することと、一致するユーザグラフィック表現がチェックステップで見つからない場合、カメラデータから、ユーザデータベースに格納された新しいユーザアカウントとともに新しいユーザグラフィック表現を生成し、ユーザアカウントへのアクセスを提供することを含む。
一実施形態では、方法は、少なくとも1つのクライアントデバイス及び1つ又は複数のクラウドサーバコンピュータに接続された少なくとも1つのカメラから受信した画像及び/又はメディアデータを使用することによって、顔スキャン及び認証モジュールを通じて少なくとも1つのクライアントデバイスのユーザの顔スキャンを行うことと、ユーザアカウントに関連付けられているユーザ顔データの一致についてユーザデータベースをチェックすることと、ユーザアカウントが利用可能である場合、ユーザアカウントへのアクセスとともに対応するユーザグラフィック表現をユーザに提供することと、ユーザアカウントが利用可能でない場合、顔データから、ユーザデータベースに格納される新しいユーザアカウント及びユーザアカウントへのアクセスとともに、新しいユーザグラフィック表現を生成することを含む。
いくつかの実施形態では、ユーザグラフィック表現は、ユーザがアップロードした又は第三者が提供した写真から構築されたユーザ3D仮想カットアウト、又はカメラから取得したリアルタイムの2D又は3Dライブビデオストリームデータフィードに基づいて生成された背景が削除されたユーザリアルタイムビデオストリームを含むユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオである。さらなる実施形態では、方法は、一致するユーザグラフィック表現又は新しいユーザグラフィック表現をアニメーション化することを含み、これは、ユーザの顔の表情を認識し、顔の表情をユーザグラフィック表現でグラフィカルにシミュレートするために、それぞれのユーザグラフィック表現にクライアントデバイス又は少なくとも1つのクラウドサーバコンピュータによるマシンビジョンアルゴリズムを適用することを含み得る。一実施形態では、ユーザ3D仮想カットアウトを更新することは、ユーザの顔の表情を認識し、ユーザ3D仮想カットアウト上で顔の表情をグラフィカルにシミュレートするために、生成されたユーザ3D仮想カットアウトにクライアントデバイス又は少なくとも1つのクラウドサーバコンピュータによるマシンビジョンアルゴリズムを適用することを含む。
いくつかの実施形態では、方法は、一致するユーザグラフィック表現がチェックステップで見つかる場合、一致するユーザグラフィック表現の日付をチェックすることと、日付に少なくとも部分的に基づいて、一致するユーザグラフィック表現の更新が必要であるかどうかを判定することと、一致するユーザグラフィック表現の更新が必要であるかどうかの肯定的なケースでは、ユーザグラフィック表現の更新要求を生成することをさらに含む。一実施形態では、方法は、ユーザアカウントが利用可能である場合、利用可能なユーザグラフィック表現の日付をチェックすることと、対応する閾値又はセキュリティ要件と比較することによって既存のユーザグラフィック表現の更新が必要であるかどうかを判定することと、ユーザグラフィック表現が必要とされる肯定的なケースでは、ユーザグラフィック表現の更新要求を生成して対応するクライアントデバイスに送信することを含む。ユーザが要求を承認する場合、1つ又は複数のクラウドサーバコンピュータ又はクライアントデバイスは、ライブカメラフィードに基づいてユーザグラフィック表現を生成することに進む。更新が必要とされない場合、1つ又は複数のクラウドサーバコンピュータは、ユーザデータベースから既存のユーザグラフィック表現を取得することに進む。
いくつかの実施形態では、方法は、ユーザグラフィック表現を2次元又は3次元の仮想環境に、又は(例えば、本開示のシステムと統合又は結合された第三者アプリケーション又はウェブサイトの画面上にオーバーレイすることによって)仮想環境にリンクした第三者ソースに挿入し、ユーザグラフィック表現を2次元又は3次元の仮想環境と組み合わせることをさらに含む。
いくつかの実施形態では、新しいユーザグラフィック表現の生成プロセスは、ユーザアカウントへのユーザアクセスとは非同期的に行われる。
いくつかの実施形態では、方法は、少なくともユーザ名及びパスワードを含むログイン認証資格証明書を通じてユーザを認証することをさらに含む。
いくつかの実施形態では、認証は、招待リンクのアクティブ化に応答してトリガされる。一実施形態では、方法は、或るクライアントデバイスから別のクライアントデバイスへの招待リンク又はディープリンクを提供することをさらに含み、招待リンクをクリックすることは、少なくとも1つのクラウドサーバがユーザ認証を要求することをトリガする。
本開示の別の態様では、仮想環境内から仮想ブロードキャストするためのシステムが提供される。システムは、1つ又は複数のサーバコンピュータを含むサーバコンピュータシステムを備え、各サーバコンピュータは、少なくとも1つのプロセッサと、メモリを備え、サーバコンピュータシステムは、クライアントデバイス間のデータ交換を管理するように構成されたデータ交換管理モジュールを実装するデータ及び命令と、少なくとも1つの仮想環境内に配置され、少なくとも1つの仮想環境内からのマルチメディアストリームを取り込むように構成された仮想ブロードキャストカメラを備える少なくとも1つの仮想環境を含む。サーバコンピュータシステムは、少なくとも1つのクライアントデバイスから少なくとも1つのカメラによって取り込まれたライブフィードデータを受信し、データ交換管理に基づいてマルチメディアストリームを少なくとも1つのクライアントデバイスにブロードキャストするように構成され、ブロードキャストされたマルチメディアストリームは、少なくとも1つのクライアントデバイスからのユーザのライブデータフィードから生成された対応するユーザグラフィック表現に表示されるように構成される。データ交換管理モジュールによるクライアントデバイス間のデータ交換管理は、着信マルチメディアストリームを分析し、着信メディアストリームの分析に基づいて発信マルチメディアストリームの転送を評価することを含む。
一実施形態では、マルチメディアストリームは、少なくとも1つのクライアントデバイスにブロードキャストするために少なくとも1つのメディアサーバコンピュータに送信される。一実施形態では、システムは、少なくとも1つのクライアントデバイスのユーザからライブフィードデータを取得し、少なくとも1つのクライアントデバイスを介してユーザからのライブフィードデータを少なくとも1つのメディアコンピュータに送信する、少なくとも1つのカメラを含み、マルチメディアストリームは、少なくとも1つのメディアサーバコンピュータからのデータ交換管理に基づいて少なくとも1つのクライアントデバイスにブロードキャストされ、少なくとも1つのクライアントデバイスを通じてユーザのライブデータフィードから生成された対応するユーザグラフィック表現に表示され、データ交換管理モジュールによるクライアントデバイス間のデータ交換管理は、着信マルチメディアストリームを分析及び最適化し、発信マルチメディアストリームの転送を評価及び最適化することを含む。
いくつかの実施形態では、サーバコンピュータシステムは、発信マルチメディアストリームを転送するときに、Selective Forwarding Unit(SFU)、Traversal Using Relay NAT(TURN)、SAMS、又は他の適切なマルチメディアサーバルーティングトポロジー、又はメディア処理及び転送サーバトポロジー、又は他の適切なサーバトポロジーを含むルーティングトポロジーを使用する。
いくつかの実施形態では、サーバコンピュータシステムは、クライアントデバイスを通じて少なくとも1つの仮想環境内のユーザグラフィック表現を表示するべく、メディア処理トポロジーを使用して発信マルチメディアストリームを処理する。一実施形態では、少なくとも1つのメディアサーバコンピュータは、メディア処理トポロジーを使用するとき、クライアントデバイスを通じて少なくとも1つの仮想環境内のユーザグラフィック表現を表示するべく、関連するクライアントデバイスへのマルチメディアストリームを、デコード、結合、改善、ミキシング、強化、拡張、コンピューティング、操作、及びエンコードするように構成される。
いくつかの実施形態では、サーバコンピュータシステムは、転送サーバトポロジーを使用するとき、MCU、クラウドメディアミキサ、及びクラウド3Dレンダラーのうちの1つ又は複数を使用する。
いくつかの実施形態では、着信マルチメディアストリームは、ユーザ優先度データ及び距離関係性データを含み、ユーザ優先度データは、着信マルチメディアストリームのソースにより近いユーザグラフィック表現へのより高い優先度スコアと、着信マルチメディアストリームのソースからより遠いユーザグラフィック表現へのより低い優先度スコアを含む。一実施形態では、マルチメディアストリームは、ユーザ優先度、及び対応するユーザグラフィック表現とマルチメディアストリームとの間の距離関係性に関係するデータを含み、該データは、メタデータ、又は優先度データ、又はデータクラス、又は空間構造データ、又は3次元位置、又は向き又は移動情報、又は画像データ、又はメディアデータ、及びスケーラブルなビデオコーデックベースのビデオデータ、又はこれらの組み合わせを含む。さらなる実施形態では、優先度データは、マルチメディアストリームソースにより近いユーザへのより高い優先度スコアと、マルチメディアストリームソースからより遠いユーザへのより低い優先度スコアを含む。さらに別の実施形態では、発信マルチメディアストリームの転送は、ユーザ優先度データ及び距離関係性データに基づいている。一実施形態では、ユーザ優先度データ及び距離関係性データに基づいてメディアサーバによって実施される発信マルチメディアストリームの転送は、帯域幅の最適化と、1つ又は複数の受信クライアントデバイスのリソース使用率の計算を含む。さらに別の実施形態では、発信マルチメディアストリームの転送は、時間特徴、空間特徴、品質特徴、及び/又は色特徴についてマルチメディアストリームを修正、アップスケーリング、又はダウンスケーリングすることをさらに含む。
いくつかの実施形態では、仮想ブロードキャストカメラは、仮想環境にアクセスするクライアントデバイスを通じて管理される。一実施形態では、仮想ブロードキャストカメラは、仮想環境で更新されるカメラの視点を操作し、更新された視点を少なくとも1つのクライアントデバイスにブロードキャストするように構成される。
いくつかの実施形態では、少なくとも1つの仮想環境は、複数の仮想ブロードキャストカメラを備え、各仮想ブロードキャストカメラは、少なくとも1つの仮想環境内の対応する視点からのマルチメディアストリームを提供する。一実施形態では、各仮想ブロードキャストカメラは、少なくとも1つのクライアントデバイスのユーザによって選択され、互いに切り替えられ、対応する少なくとも1人のユーザグラフィック表現への対応する視点を提供し得る、仮想環境内の対応する視点からのマルチメディアストリームを提供する。
いくつかの実施形態では、少なくとも1つの仮想環境は、ネットワークを介して少なくとも1つのメディアサーバコンピュータに接続された少なくとも1つの専用サーバコンピュータによってホストされるか、又はピア・ツー・ピアインフラストラクチャでホストされ、少なくとも1つのメディアサーバコンピュータを通じてリレーされる。
本開示の別の態様では、仮想環境内から仮想ブロードキャストするための方法は、少なくとも1つのメディアサーバのメモリ内に、クライアントデバイス間のデータ交換を管理するクライアントデバイスデータ交換管理モジュールを実装するデータ及び命令を提供することと、少なくとも1つのメディアサーバに接続された少なくとも1つの仮想環境内に配置された仮想ブロードキャストカメラでマルチメディアストリームを取り込むことと、マルチメディアストリームを少なくとも1つのクライアントデバイスにブロードキャストするべく少なくとも1つのメディアサーバに送信することと、少なくとも1つのクライアントデバイスからのライブフィードデータを(例えば、少なくとも1つのクライアントデバイスを介して少なくとも1つのカメラから)取得することと、少なくとも1つの仮想環境内からの着信マルチメディアストリームとライブフィードデータを分析し、発信マルチメディアストリームの転送を評価することを含む、データ交換管理を行うことと、データ交換管理に基づいて対応するマルチメディアストリームをクライアントデバイスにブロードキャストすることを含み、マルチメディアストリームは、少なくとも1つのクライアントデバイスのユーザのユーザグラフィック表現に表示される。この文脈では、これは、ユーザグラフィック表現が仮想環境でのそれらの位置に基づいて「見る」ことができるものを指し、これは、自分のユーザグラフィック表現の観点から仮想環境を見たときにユーザに(クライアントデバイスを介して)表示されるものに対応する。
いくつかの実施形態では、発信マルチメディアストリームを転送するとき、この方法は、SFU、TURN、SAMS、又は他の適切なマルチメディアサーバルーティングトポロジー、又はメディア処理及び転送サーバトポロジー、又は他の適切なサーバトポロジーを含むルーティングトポロジーを使用する。
いくつかの実施形態では、方法は、メディア処理トポロジーを使用するとき、マルチメディアストリームをデコード、結合、改善、ミキシング、強化、拡張、コンピューティング、操作、及びエンコードすることをさらに含む。
いくつかの実施形態では、方法は、転送サーバトポロジーを使用するとき、マルチポイントコントロールユニット(MCU)、クラウドメディアミキサ、及びクラウド3Dレンダラーのうちの1つ又は複数を使用することをさらに含む。
いくつかの実施形態では、着信マルチメディアストリームは、ユーザ優先度データ及び距離関係性データを含み、ユーザ優先度データは、着信マルチメディアストリームのソースにより近いユーザグラフィック表現へのより高い優先度スコアと、着信マルチメディアストリームのソースからより遠いユーザグラフィック表現へのより低い優先度スコアを含む。一実施形態では、方法は、ユーザ優先度データ及び距離関係性データに基づいてメディアサーバによって実施される発信マルチメディアストリームの転送を最適化することをさらに含み、これは、帯域幅の最適化と、1つ又は複数の受信クライアントデバイスのリソース使用率の計算を含み得る。さらなる実施形態では、メディアサーバによって実施される発信マルチメディアストリームの転送の最適化は、時間特徴、空間特徴、品質特徴、及び/又は色特徴についてマルチメディアストリームを修正、アップスケーリング、又はダウンスケーリングすることをさらに含む。
いくつかの実施形態では、少なくとも1つの仮想環境は、複数の仮想ブロードキャストカメラを備え、各仮想ブロードキャストカメラは、少なくとも1つの仮想環境内の対応する視点からのマルチメディアストリームを提供する。一実施形態では、方法は、少なくとも1つのクライアントデバイスのユーザによって選択され、互いに切り替えられ、対応する少なくとも1人のユーザグラフィック表現への対応する視点を提供し得る、仮想環境内の対応する視点からのマルチメディアストリームをそれぞれ提供する複数の仮想ブロードキャストカメラを提供することをさらに含む。
本開示の別の態様では、仮想環境内でアプリケーションを配信するためのシステムであって、少なくとも1つのプロセッサと、1つ又は複数のインストールされるアプリケーション及び対応するマルチユーザ相互作用のためのアプリケーションルールを含むアプリケーションモジュールにリンクされた少なくとも1つの仮想環境を実装するデータ及び命令を含むメモリとを備える、少なくとも1つのクラウドサーバコンピュータを備え、クライアントデバイスを通じた仮想環境ホストによる選択に応答して、仮想環境のセッション中に1つ又は複数のインストールされるアプリケーションが表示及びアクティブ化され、対応するクライアントデバイスを通じて仮想環境内の仮想環境ホストのユーザグラフィック表現及び任意の参加者ユーザグラフィック表現と1つ又は複数のインストールされるアプリケーションとの相互作用が可能となり、少なくとも1つのクラウドサーバコンピュータは、アプリケーションモジュールにあるマルチユーザ相互作用のためのアプリケーションルールに従って、1つ又は複数のインストールされるアプリケーションとの受信したユーザ相互作用を管理及び処理し、マルチユーザ相互作用アプリケーションルールに従って共有体験を可能にするマルチユーザセッションを確立するべく、それに応じて処理された相互作用を(例えば、各クライアントデバイスに)転送する、
システムが提供される。
いくつかの実施形態では、マルチユーザ相互作用のためのアプリケーションルールは、1つ又は複数の別個のアプリケーションサーバに格納され管理される。
いくつかの実施形態では、1つ又は複数のアプリケーションは、アプリケーションライブラリから入手可能なアプリケーションインストールパッケージからインストールされ、対応するアプリケーション・プログラミング・インターフェースを通じてアプリケーションサービスをプロビジョニングする。
いくつかの実施形態では、アプリケーションライブラリは、コンテキストによりフィルタリングされる。一実施形態では、コンテキストフィルタリングは、特定のコンテキストに関連するアプリケーションを提供するように設計される。
いくつかの実施形態では、1つ又は複数のインストールされるアプリケーションは、対応するクライアントデバイスにインストールされた仮想ディスプレイアプリケーションと共有され、それを通じて表示される。一実施形態では、インストール及びアクティブ化されると、1つ又は複数のインストールされるアプリケーションは、対応するクライアントデバイスにインストールされた仮想ディスプレイアプリケーションと共有され、それを通じて表示され、仮想ディスプレイアプリケーションは、アプリケーションライブラリから1つ又は複数のインストールされるアプリケーションを受信し、仮想環境での会議ホストユーザグラフィック表現及び他の参加者ユーザグラフィック表現をそれらの対応するクライアントデバイスを通じて表示するべく1つ又は複数の選択されたアプリケーションを公開するように構成される。さらなる実施形態では、アプリケーションモジュールは、インストールされるアプリケーションからのコンテンツを仮想環境でのユーザグラフィック表現に表示する2D画面又は3Dボリュームアプリケーションモジュールグラフィック表現として表され、仮想ディスプレイアプリケーションは、インストールされるアプリケーションからのコンテンツを仮想環境でのユーザグラフィック表現に表示する2D画面又は3Dボリュームとして表される。
いくつかの実施形態では、1つ又は複数のアプリケーションは、マルチユーザセッションが行われる前に又は同時に、仮想環境内に直接インストールされる。
いくつかの実施形態では、1つ又は複数のアプリケーションは、マルチユーザセッションを開始する前に仮想環境セットアップツールの使用を通じてインストールされる。
いくつかの実施形態では、マルチユーザ相互作用のためのアプリケーションルールのうちの1つ又は複数は、同期相互作用、又は非同期相互作用、又はこれらの組み合わせを定義する。したがって、一実施形態では、このようなルールは、ユーザ相互作用と、1つ又は複数のアプリケーションのそれぞれの更新されるビューを更新するために用いられる。
いくつかの実施形態では、非同期相互作用は、少なくとも1つのサーバコンピュータを通じて、又は少なくとも1つのインストールされるアプリケーションとの個々のユーザ相互作用の処理専用の別個のサーバコンピュータを通じて可能になる。
いくつかの実施形態では、仮想環境は、教室、又はオフィススペース、又は会議室、又は応接室、又は劇場、又は映画館である。
本開示の別の態様では、仮想環境内でアプリケーションを配信するための方法であって、少なくとも1つのクラウドサーバコンピュータのメモリに、少なくとも1つの仮想環境と、仮想環境にリンクされ、仮想環境内に表示される、1つ又は複数のインストールされるアプリケーション及び対応するマルチユーザ相互作用のためのアプリケーションルールを含むアプリケーションモジュールとを提供することと、仮想環境ホストから選択命令を受信することと、仮想環境のセッション中に1つ又は複数のインストールされるアプリケーションを表示及びアクティブ化することにより、仮想環境内で仮想環境ホストのユーザグラフィック表現及び1つ又は複数の参加者ユーザグラフィック表現が対応するクライアントデバイスを通じて1つ又は複数のインストールされるアプリケーションと相互作用することを可能にすることと、1つ又は複数のインストールされるアプリケーションとのユーザ相互作用を受信することと、アプリケーションモジュールにあるマルチユーザ相互作用のためのアプリケーションルールに従って、1つ又は複数のインストールされるアプリケーションとのユーザ相互作用を管理及び処理することと、アプリケーションルールに従って共有体験を可能にするマルチユーザセッションを確立するべく、処理された相互作用をクライアントデバイスに転送することを含む方法が提供される。
いくつかの実施形態では、方法は、マルチユーザ相互作用のためのアプリケーションルールを1つ又は複数の別個のアプリケーションサーバで格納及び管理することをさらに含む。
いくつかの実施形態では、方法は、アプリケーションライブラリから入手可能なアプリケーションインストールパッケージから1つ又は複数のアプリケーションをインストールすることと、対応するアプリケーション・プログラミング・インターフェースを通じてアプリケーションサービスをプロビジョニングすることをさらに含む。さらに別の実施形態では、アプリケーションライブラリは、関連するアプリケーションを提供するためにコンテキストによりフィルタリングされる。さらに別の実施形態では、1つ又は複数のインストールされるアプリケーションは、対応するクライアントデバイスにインストールされた仮想ディスプレイアプリケーションと共有され、それを通じて表示される。一実施形態では、方法は、アクティブ化されると、対応するクライアントデバイスにインストールされた仮想ディスプレイアプリケーションを通じて、1つ又は複数のインストールされるアプリケーションを共有及び表示することを含み、仮想ディスプレイアプリケーションは、アプリケーションライブラリから1つ又は複数のインストールされるアプリケーションを受信し、仮想環境での会議ホストユーザグラフィック表現及び他の参加者ユーザグラフィック表現をそれらの対応するクライアントデバイスを通じて表示するべく1つ又は複数の選択されたアプリケーションを公開するように構成される。
いくつかの実施形態では、方法は、マルチユーザセッションが行われる前に又は同時に、1つ又は複数のアプリケーションを仮想環境内に直接インストールすることをさらに含む。他の実施形態では、方法は、マルチユーザセッションを開始する前に仮想環境セットアップツールの使用を通じて1つ又は複数のアプリケーションをインストールすることをさらに含む。
いくつかの実施形態では、方法は、マルチユーザ相互作用のためのアプリケーションルールのうちの1つ又は複数を、同期相互作用、又は非同期相互作用、又はこれらの組み合わせを含むように定義すること定義することをさらに含む。一実施形態では、方法は、ユーザ相互作用と、1つ又は複数のアプリケーションのそれぞれの更新されるビューを適宜更新することをさらに含む。
本開示の別の態様では、仮想環境内で仮想コンピューティングリソースをプロビジョニングするためのシステムは、少なくとも1つのプロセッサ、少なくとも1つの仮想環境を実装するデータ及び命令を含むメモリ、及び少なくとも1つの仮想環境に関連付けられた少なくとも1つの仮想コンピュータを備える少なくとも1つのクラウドサーバコンピュータを含む、1つ又は複数のサーバコンピュータを含むサーバコンピュータシステムを備え、少なくとも1つの仮想コンピュータは、サーバコンピュータシステムから仮想コンピューティングリソースを受信する。関連付けは、仮想コンピュータを仮想環境に接続することを含み得る。一実施形態では、少なくとも1つの仮想コンピュータは、仮想環境で対応するグラフィック表現を有する。グラフィック表現は、ユーザと仮想コンピュータの相互作用を容易にすること及びユーザ体験の臨場感(例えば、ホームオフィス体験の場合)を高めることなどのさらなる利点を提供し得る。したがって、一実施形態では、少なくとも1つのクラウドサーバコンピュータから仮想コンピューティングリソースを受信する少なくとも1つの仮想コンピュータは、仮想環境内に配置される少なくとも1つの対応する関連するグラフィック表現と、ネットワークを通じて少なくとも1つのサーバコンピュータに接続する少なくとも1つのクライアントデバイスを備え、少なくとも1つのクライアントデバイスが(例えば、対応するグラフィック表現と相互作用することによって)1つ又は複数の仮想コンピュータにアクセスすることに応答して、少なくとも1つのクラウドサーバコンピュータは、利用可能な仮想コンピューティングリソースの少なくとも1つの部分を少なくとも1つのクライアントデバイスにプロビジョニングする。
いくつかの実施形態では、サーバコンピュータシステムは、少なくとも1つの仮想環境内の少なくとも1つの仮想コンピュータの少なくとも1つの対応するグラフィック表現と相互作用するユーザグラフィック表現に応答して、仮想コンピューティングリソースの少なくとも1つの部分を少なくとも1つのクライアントデバイスにプロビジョニングするように構成される。さらなる実施形態では、1つ又は複数の仮想コンピュータグラフィック表現は、ユーザグラフィック表現によるアクセスのために仮想環境内に空間的に配置される。一実施形態では、仮想環境の構成は、教育、会議、仕事、ショッピング、サービス、社交、又はエンターテイメントでそれぞれ使用するための仮想アイテム、家具、間取り図などの配置などの仮想環境のコンテキストテーマと関連付けられる。さらなる実施形態では、1つ又は複数の仮想コンピュータグラフィック表現は、1つ又は複数のユーザグラフィック表現によるアクセスのために仮想環境の構成内に配置される。例えば、仮想コンピュータは、仮想コンピュータに関連付けられているリソースを使用する能力を必要とする又はその恩恵を受ける可能性がある行為(仮想教室、実験室、又はオフィスでのプロジェクトでの作業など)に従事するときにユーザグラフィック表現がアクセスすることになる仮想ルームに配置され得る。
いくつかの実施形態では、サーバコンピュータシステムは、仮想環境にアクセスせずに少なくとも1つのクライアントデバイスにログインすることで少なくとも1つのクラウドサーバコンピュータにアクセスするユーザに応答して、仮想コンピューティングリソースの少なくとも1つの部分を少なくとも1つのクライアントデバイスにプロビジョニングするように構成される。例示的なシナリオでは、仮想コンピューティングリソースは、ネットワークを通じて少なくとも1つのクラウドサーバコンピュータに接続しているクライアントデバイスに物理的にログインすることで、少なくとも1つのクラウドサーバコンピュータにアクセスするユーザによってアクセスされ、仮想環境にアクセスせずにクライアントデバイスへの仮想コンピューティングリソースのプロビジョニングをトリガする。
いくつかの実施形態では、仮想コンピューティングリソースの少なくとも1つの部分は、管理ツールでクライアントデバイスに割り当てられる。さらなる実施形態では、仮想コンピューティングリソースの少なくとも一部のプロビジョニングは、格納されたユーザプロフィールに基づいて行われる。一実施形態では、リソースの割り当ては、優先度データ、セキュリティデータ、QOS、帯域幅、メモリスペース、又は計算能力、又はこれらの組み合わせを含むユーザプロフィールに関連付けられ割り当てられたパラメータのうちの1つ又は複数を含む格納されたユーザプロフィールに基づいて行われる。
いくつかの実施形態では、少なくとも1つの仮想コンピュータは、アプリケーションライブラリから入手可能なダウンロード可能なアプリケーションを備える。複数の仮想コンピュータを含む例示的なシナリオでは、各仮想コンピュータは、アプリケーションライブラリから入手可能なダウンロード可能なアプリケーションである。
本開示の別の態様では、仮想環境内で仮想コンピューティングリソースをプロビジョニングするための方法は、少なくとも1つのクラウドサーバコンピュータのメモリに、少なくとも1つの仮想コンピュータと、少なくとも1つの仮想コンピュータに関連付けられた仮想環境を提供することと、少なくとも1つの仮想コンピュータに仮想コンピューティングリソースを関連付けることと、1つ又は複数の仮想コンピュータにアクセスするためのアクセス要求を受信することと、少なくとも1つのクライアントデバイスから受信したアクセス要求に応答して、少なくとも1つの仮想コンピュータに関連付けられた利用可能な仮想コンピューティングリソースの一部を少なくとも1つのクライアントデバイスにプロビジョニングすることを含む。一実施形態では、少なくとも1つの仮想コンピュータに仮想コンピューティングリソースを関連付けることは、仮想コンピュータによって、少なくとも1つのクラウドサーバコンピュータから仮想コンピューティングリソースを受信することを含み得る。
いくつかの実施形態では、アクセス要求は、ユーザグラフィック表現が少なくとも1つの仮想コンピュータを表す1つ又は複数のグラフィック表現と相互作用することを可能にする要求を含む。一実施形態では、方法は、ユーザグラフィック表現から、少なくとも1つの仮想環境内の仮想コンピュータの1つ又は複数のグラフィック表現にアクセスするためのアクセス要求を受信することと、利用可能な仮想コンピューティングリソースの少なくとも一部を対応するクライアントデバイスに提供することをさらに含む。さらなる実施形態では、仮想環境の構成は、それぞれ、教育、会議、仕事、ショッピング、サービス、社交、又はエンターテイメントで使用するための構成を含む、仮想環境のコンテキストテーマに関連付けられており、1つ又は複数の仮想コンピュータは、1つ又は複数のユーザグラフィック表現によるアクセスのために仮想環境の構成内に配置される。
いくつかの実施形態では、アクセス要求は、ユーザが少なくとも1つのクライアントデバイスにログインすることによってトリガされる。一実施形態では、方法は、ネットワークを通じて少なくとも1つのクラウドサーバコンピュータに接続しているクライアントデバイスに物理的にログインするユーザからアクセス要求を受信することと、仮想環境にアクセスせずにクライアントデバイスに仮想コンピューティングリソースをプロビジョニングすることをさらに含む。
いくつかの実施形態では、この方法は、仮想コンピューティングリソースの少なくとも1つの部分を管理ツールでクライアントデバイスに割り当てることをさらに含む。さらに別の実施形態では、前記割り当ては、優先度データ、セキュリティデータ、QOS、帯域幅、メモリスペース、計算能力、又はこれらの組み合わせを含むユーザプロフィールに関連付けられ割り当てられたパラメータのうちの1つ又は複数を含む格納されたユーザプロフィールに基づいて行われる。
本開示の別の態様では、ユーザグラフィック表現間のアドホック仮想通信を可能にするシステムは、少なくとも1つのプロセッサを備える1つ又は複数のクラウドサーバコンピュータと、仮想環境を実装するデータ及び命令を格納するメモリとを備える。仮想環境は、仮想環境での少なくとも1つの接近するユーザグラフィック表現及び少なくとも1つのターゲットユーザグラフィック表現がアドホック通信チャネルを開くことを可能にし、仮想環境内のユーザグラフィック表現間のアドホック通信チャネルを介してアドホック会話を可能にするように構成される。一実施形態では、システムはさらに、ネットワークを介して1つ又は複数のクラウドサーバコンピュータに接続され、対応するユーザグラフィック表現を通じて少なくとも1つの仮想環境にアクセスする、2つ以上のクライアントデバイスを備え、仮想環境は、少なくとも1つの接近するユーザグラフィック表現及び少なくとも1つのターゲットユーザグラフィック表現がアドホック通信チャネルを開くことを可能にし、仮想環境内のユーザグラフィック表現間のアドホック会話を可能にする。
いくつかの実施形態では、アドホック通信チャネルを開くことは、ユーザグラフィック表現間の距離、位置、及び向き、又は現在の対応可能性ステータス、プライバシー設定、又はアドホック通信のステータス構成、又はそれらの組み合わせに基づいて行われる。
いくつかの実施形態では、アドホック会話は、両方のユーザグラフィック表現エリアが存在する仮想環境内の場所で行われる。他の実施形態では、アドホック会話は、仮想環境での現在のビューイングパースペクティブを使用して行われる。
いくつかの実施形態では、アドホック会話は、アドホック会話が行われる同じ又は別の接続された仮想環境内での、ビューイングパースペクティブ、場所、又はその組み合わせの随意的な変更を可能にする。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、アドホック通信が可能であることをシグナリングする仮想環境での現在の視覚的フィードバックを生成するように構成される。一実施形態では、ユーザグラフィック表現は、アドホック通信が可能であることをシグナリングする視覚的フィードバックを受信し、これにより、アドホック通信チャネルを開くことをトリガし、ユーザグラフィック表現間のアドホック会話の開始をシグナリングする。
いくつかの実施形態では、アドホック会話は、リアルタイム音声及びビデオを送信及び受信することを含む。例示的なシナリオでは、このようなビデオは、ユーザグラフィック表現から表示され得る。
いくつかの実施形態では、接近するユーザグラフィック表現に対応するユーザは、アドホック通信チャネルを開く前に、ターゲットユーザグラフィック表現を選択及びクリックする。さらに別の実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、招待の承諾に応答してアドホック通信チャネルを開くように構成される。例えば、接近するユーザグラフィック表現に対応するユーザは、アドホック通信参加招待をターゲットユーザグラフィック表現に送信し、アドホック通信チャネルを開く前にターゲットユーザグラフィック表現から招待の承認を受信する。
いくつかの実施形態では、アドホック通信チャネルは、少なくとも1つのクラウドサーバコンピュータを通じて又はP2P通信チャネルとして可能になる。
本開示の別の態様では、ユーザグラフィック表現間のアドホック仮想通信を可能にする方法は、少なくとも1つのプロセッサを備える1つ又は複数のクラウドサーバコンピュータのメモリ内に仮想環境を提供することと、ネットワークを介して1つ又は複数のクラウドサーバコンピュータに接続され、対応するグラフィック表現を通じて少なくとも1つの仮想環境にアクセスする、2つ以上のクライアントデバイスを検出することと、少なくとも1人のユーザグラフィック表現が別のユーザグラフィック表現に接近することに応答して、アドホック通信チャネルを開き、仮想環境でのユーザグラフィック表現間のアドホック会話を可能にすることを含む。
いくつかの実施形態では、方法は、アドホック通信チャネルを開く前に、ユーザグラフィック表現間の距離、位置、及び向き、又は現在の対応可能性ステータス、プライバシー設定、又はアドホック通信のステータス構成、又はそれらの組み合わせのうちの1つ又は複数を検出及び評価することをさらに含む。
いくつかの実施形態では、方法は、両方のユーザグラフィック表現エリアが存在する仮想環境内の場所でアドホック会話が行われることを可能にする。他の実施形態では、アドホック会話は、仮想環境での現在のビューイングパースペクティブを使用して行われる。
いくつかの実施形態では、方法は、アドホック会話を行うことができる同じ又は別の接続された仮想環境内の、ビューイングパースペクティブ、場所、又はその組み合わせの随意的な変更を可能にすることを含む。
いくつかの実施形態では、方法は、アドホック通信が可能であることをシグナリングする仮想環境での現在の視覚的フィードバックを生成することをさらに含む。方法は、アドホック通信が可能であることをシグナリングする視覚的フィードバックをターゲットユーザグラフィック表現に送信し、これにより、アドホック通信チャネルを開くことをトリガし、ユーザグラフィック表現間の会話の開始をシグナリングすることをさらに含み得る。
いくつかの実施形態では、会話は、ユーザグラフィック表現から表示されるリアルタイム音声及びビデオを送信及び受信することを含む。
いくつかの実施形態では、方法は、ユーザグラフィック表現がターゲットユーザグラフィック表現に接近することによってターゲットユーザグラフィック表現を選択及びクリックすることをさらに含む。さらに別の実施形態では、アドホック通信チャネルは、招待の承諾に応答して開かれる。一実施形態では、方法は、アドホック通信チャネルを開く前に、別のユーザグラフィック表現との間でアドホック仮想通信参加招待を送信又は受信することをさらに含む。
1つ又は複数のコンピュータに本明細書に記載の方法のいずれかを行わせるように構成された命令を格納しているコンピュータ可読媒体も説明される。
上記の要約は、本開示のすべての態様の網羅的なリストを含んでいるわけではない。本開示は、上記に要約した様々な態様のすべての適切な組み合わせから実施可能なすべてのシステム及び方法、並びに、以下の詳細な説明で開示され、特に本出願で出願される請求項で指摘されたものを含むと考えられる。このような組み合わせは、上記の概要に具体的に列挙されていない利点を有する。他の特徴及び利点は、添付の図面及び以下に続く詳細な説明から明らかとなるであろう。
本開示の特定の特徴、態様、及び利点は、以下の説明及び添付の図面に関連してよりよく理解されるであろう。
以下の説明では、例示として種々の実施形態を示す図面を参照する。また、いくつかの例を参照することによって様々な実施形態を以下に説明する。実施形態は、特許請求される主題の範囲から逸脱することなく、設計及び構造の変更を含み得ることが理解されるべきである。
本開示のシステム及び方法は、とりわけ、会議、仕事、教育、ショッピング、及びサービスのために用いられ得る、実生活で利用可能なものと同様のリアルタイムのマルチユーザコラボレーション及び相互作用を可能にする1つ又は複数の仮想環境を備える仮想環境プラットフォームを提供することによって、前述の欠点のうちの少なくともいくつかを解決する。仮想環境は、仮想環境プラットフォームで利用可能な異なるバーティカルの複数の仮想環境から選択することができる。同じバーティカル及び/又は異なるバーティカルからの仮想環境の組み合わせによって仮想環境クラスタを形成することができ、これは数百又は数千もの仮想環境を含むことができる。仮想環境は、好み又はニーズに応じてユーザによってカスタマイズされ得る仮想環境のバーティカルに関連付けられた構成及び外観を含む2D又は3D仮想環境であり得る。ユーザは、仮想環境に挿入され、2次元又は3次元の仮想環境とグラフィカルに組み合わされ得るグラフィック表現を通じて、仮想環境にアクセスすることができる。
ユーザグラフィック表現は、ユーザがアップロードした又は第三者が提供した写真から構築された背景が削除されたユーザ3D仮想カットアウト、又はユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオである可能性があり、これらのいずれも、ユーザの要望に応じていつでも相互に切り替えることができる。ユーザグラフィック表現は、他のユーザに関連する現在の対応可能性又は他のデータに関するさらなる詳細を提供するユーザステータスを含むことができる。仮想環境内のオブジェクトとの相互作用に加えて、仮想環境でのユーザ間の会話及びコラボレーションなどの相互作用が可能になる。本開示はさらに、ユーザグラフィック表現の生成に用いられ得る複数の画像処理の組み合わせを含むデータ処理システム及び方法を提供する。本開示はさらに、仮想環境プラットフォーム又は仮想環境プラットフォームから仮想環境にリンクされた他のアプリケーションにアクセスするために用いられ得るユーザグラフィック表現ベースのユーザ認証システム及び方法、仮想環境内から仮想ブロードキャストするためのシステム及び方法、仮想環境内でアプリケーションを配信するためのシステム及び方法、仮想環境クラウドサーバコンピュータ内でクラウドコンピューティングベースの仮想コンピューティングリソースをプロビジョニングするためのシステム及び方法、及び接近するユーザグラフィック表現間のアドホック仮想通信を可能にするシステム及び方法を提供する。
前記仮想環境での仮想プレゼンス及びユーザ間の現実的な相互作用及びコラボレーションを可能にすることにより、例えば、パンデミック又は他の移動が制限される状況で必要とされるようなリモート活動の臨場感を高めることができる。本開示のシステム及び方法はさらに、エクステンデッド・リアリティヘッドマウントディスプレイなどのより高価な没入型デバイス又は高価な新規のシステムインフラストラクチャを必要とせずに、モバイルデバイス又はコンピュータなどのクライアントデバイス上の様々な仮想環境へのアクセスを可能にする。本開示のクライアントデバイス又はピアデバイスは、例えば、コンピュータ、ヘッドセット、移動電話、メガネ、透明スクリーン、タブレット、及びカメラが組み込まれた又はカメラに接続して前記カメラからデータフィードを受信することができる一般的な入力デバイスを含み得る。
図1は、一実施形態に係る、仮想環境での社会的相互作用を可能にするシステム100の概略図である。
仮想環境での相互作用を可能にする本開示のシステム100は、少なくとも1つのプロセッサ104と、仮想環境A~Cなどの少なくとも1つの仮想環境110を備える仮想環境プラットフォーム108を実装するデータ及び命令を格納するメモリ106と、を備える1つ又は複数のクラウドサーバコンピュータ102を備える。1つ又は複数のクラウドサーバコンピュータは、カメラによって得られたライブデータフィードから生成されたユーザグラフィック表現を少なくとも1つの仮想環境の3次元座標位置に挿入し、少なくとも1つの仮想環境におけるユーザグラフィック表現を更新し、仮想環境でのリアルタイムのマルチユーザコラボレーション及び相互作用を可能にするように構成される。説明される実施形態では、ユーザグラフィック表現を仮想環境に挿入することは、ユーザグラフィック表現が仮想環境に(例えば、指定された3D座標位置に)現れるように、ユーザグラフィック表現を仮想環境にグラフィカルに組み合わせることに関係する。図1に示された例では、システム100は、クライアントデバイス118のユーザ116からライブデータフィード114を取得する少なくとも1つのカメラ112をさらに備える。1つ又は複数のクライアントデバイス118は、ネットワークを介して1つ又は複数のクラウドサーバコンピュータ102及び少なくとも1つのカメラ112に通信可能に接続する。ライブデータフィード114から生成されたユーザグラフィック表現120は、仮想環境110(例えば、仮想環境A)の3次元座標位置に挿入され、仮想環境とグラフィカルに組み合わされ、ライブデータフィード114を使用して更新される。更新された仮想環境は、直接P2P通信で、或いは1つ又は複数のクラウドサーバ102の使用を通じて間接的に、クライアントデバイスに提供される。システム100は、クライアントデバイス118を通じてグラフィカルユーザインターフェースにアクセスすることによって、仮想環境110でのリアルタイムのマルチユーザコラボレーション及び相互作用を可能にする。
図1では、2人のユーザ116(例えば、それぞれ、ユーザA及びB)が、仮想環境Aにアクセスし、対応するクライアントデバイス118(それぞれ、クライアントデバイスA及びB)を通じてアクセスされる対応するユーザグラフィック表現120(例えば、それぞれ、ユーザグラフィック表現A及びB)を通じて、その中の要素と及び互いに相互作用している。2人のみのユーザ116、クライアントデバイス118、及びユーザグラフィック表現120が図1に示されているが、システムは、複数のユーザ116が対応するクライアントデバイス118を介してそれらの対応するグラフィック表現120を通じて互いに相互作用することを可能にし得ることが当業者にはわかるであろう。
いくつかの実施形態では、仮想環境プラットフォーム108及び対応する仮想環境110は、複数(例えば、数千又はさらには数百万)のユーザグラフィック表現120でライブパフォーマンス、コンサート、ウェビナー、基調講演などの複数の体験をリアルタイムで共有することを可能にし得る。これらの仮想パフォーマンスは、世界の様々な地域からの多数のユーザ116に対応するために、仮想環境110の複数のインスタンスによって提示され及び/又はそれらにマルチキャストされ得る。
いくつかの実施形態では、クライアントデバイス118は、とりわけ、モバイルデバイス、パーソナルコンピュータ、ゲームコンソール、メディアセンター、及びヘッドマウントディスプレイのうちの1つ又は複数であり得る。カメラ112は、とりわけ、2D又は3Dカメラ、360度カメラ、ウェブカメラ、RGBDカメラ、CCTVカメラ、プロ用カメラ、移動電話カメラ、深度カメラ(例えば、LIDAR)、又はライトフィールドカメラのうちの1つ又は複数であり得る。
いくつかの実施形態では、仮想環境110は、CAD(computer assisted drawing)法による任意の適切な3Dモデリング技術を通じて設計された仮想構造物(例えば、仮想モデル)を指す。さらなる実施形態では、仮想環境110は、仮想環境110を生成するために様々な写真、ビデオ、深度測定、及び/又はSLAM(simultaneous location and mapping)スキャンを通じて入力される画像スキャンパイプラインを含む任意の適切なスキャンツールを通じて実際の構造物(例えば、物理的な部屋)からスキャンされる仮想構造物を指す。例えば、実世界の構造物をマッピング及びモデリングし、それらを仮想環境110に変換するために、合成開口レーダ、実開口レーダ、光検出・測距(LIDAR)、逆開口レーダ、モノパルスレーダなどのレーダーイメージング、及び他のタイプのイメージング技術が用いられ得る。他の実施形態では、仮想環境110は、実際の構造物(例えば、実世界の部屋、建物、又は設備)をモデルにした仮想構造物である。
いくつかの実施形態では、クライアントデバイス118と少なくとも1つのクラウドサーバコンピュータ102は、有線又は無線ネットワークを通じて接続する。いくつかの実施形態では、ネットワークは、ミリ波(mmW)又はmmWと第5世代無線システム通信(5G)などのサブ6GHz通信システムとの組み合わせを含み得る。他の実施形態では、システムは、無線ローカルエリアネットワーキング(Wi-Fi)を通じて接続することができる。他の実施形態では、システムは、4G通信システムによってサポートされ得る第4世代無線システム通信(4G)を通じて通信可能に接続することができ、又は、他の有線又は無線通信システムを含み得る。
いくつかの実施形態では、ユーザグラフィック表現120の生成、更新、及び選択された仮想環境110への挿入及び組み合わせることに含まれる処理及びレンダリングは、ユーザ116のライブデータフィード114を受信すると、クライアントデバイス118の少なくとも1つのプロセッサによって行われる。1つ又は複数のクラウドサーバコンピュータ102は、クライアントによりレンダリングされたユーザグラフィック表現120を受信し、クライアントによりレンダリングされたユーザグラフィック表現120を仮想環境110の3次元座標に挿入し、挿入されたユーザグラフィック表現120を仮想環境110と組み合わせて、クライアントによりレンダリングされたユーザグラフィック表現120を受信クライアントデバイスに送信することができる。例えば、図1で見られるように、クライアントデバイスAは、それぞれのカメラ112からライブデータフィード114を受信することができ、ライブデータフィード114からのデータを処理及びレンダリングし、ユーザグラフィック表現Aを生成することができ、次いで、クライアントによりレンダリングされたユーザグラフィック表現Aを少なくとも1つのクラウドサーバコンピュータ102に送信することができ、少なくとも1つのクラウドサーバコンピュータ102は、ユーザグラフィック表現Aを仮想環境110の3次元座標に配置し、その後、ユーザグラフィック表現AをクライアントデバイスBに送信することができる。同様のプロセスが、クライアントデバイスB及びユーザBからのユーザグラフィック表現Bに適用される。したがって、ユーザグラフィック表現A及びBの両方は、仮想環境A内で互いに見る及び相互作用することができる。しかしながら、様々な他の画像処理の組み合わせは、図6A~図7Cに関連して図示及び説明される本開示のシステム及び方法を通じて可能にされ得る。
いくつかの実施形態では、ユーザグラフィック表現120の生成、更新、及び仮想環境への挿入及び組み合わせることに含まれる処理及びレンダリングは、クライアントデバイス118がユーザ116の未処理のライブデータフィード114を送信すると、1つ又は複数のクラウドサーバコンピュータ102の少なくとも1つのプロセッサ104によって行われる。したがって、1つ又は複数のクラウドサーバコンピュータ102は、クライアントデバイス118からユーザ116の未処理のライブデータフィード114を受信し、次いで、未処理のライブデータフィードから、仮想環境110の3次元座標内に配置されるユーザグラフィック表現120を生成、処理、及びレンダリングし、その後、仮想環境内のクラウドによりレンダリングされたユーザグラフィック表現を他のクライアントデバイス118に送信する。例えば、図1で見られるように、クライアントデバイスAは、それぞれのカメラ112からライブデータフィード114を受信することができ、次いで、ユーザの未処理のライブデータフィード114を少なくとも1つのクラウドサーバコンピュータ102に送信することができ、少なくとも1つのクラウドサーバコンピュータ102は、ユーザグラフィック表現Aを生成、処理、及びレンダリングし、ユーザグラフィック表現Aを仮想環境118の3次元座標に配置し、その後、ユーザグラフィック表現AをクライアントデバイスBに送信することができる。同様のプロセスが、クライアントデバイスB及びユーザBからのユーザグラフィック表現Bに適用される。したがって、ユーザグラフィック表現A及びBの両方は、仮想環境A内で互いに見る及び相互作用することができる。
いくつかの実施形態では、仮想環境プラットフォーム108は、仮想環境にリダイレクトするクリッカブルリンクを、第三者ウェブサイト、アプリケーション、又はビデオゲームを含む1つ又は複数の第三者ソースに埋め込むことを可能にするように構成される。リンクは、例えばHTMLリンクであり得る。リンクされた仮想環境110は、リンクが埋め込まれているウェブサイトのコンテンツに関連付けられ得る。例えば、リンクは、自動車ディーラー又は製造業者のウェブサイトに埋め込むことができ、クリッカブルリンクは、ユーザがユーザグラフィック表現120を通じて訪れることができる自動車ディーラーのショールームを表す仮想環境110にリダイレクトされる。
いくつかの実施形態では、ユーザグラフィック表現120は、対応するユーザに関するプロフィール情報を含む第三者ソースに誘導するリンクなどの埋め込みクリッカブルリンクを備える。例えば、クリッカブルリンクは、ソーシャルメディア(例えば、LinkedIn(商標)などのプロフェッショナルソーシャルメディアウェブサイト)へのアクセスを許可し、対応するユーザに関するさらなる情報を提供することができる、ユーザグラフィック表現120のソースコードに埋め込まれたHTMLリンクであり得る。いくつかの実施形態では、ユーザが許可した場合、他のユーザが対応するユーザグラフィック表現をクリックする又はそれにカーソルを合わせると、ユーザの基本情報の少なくとも一部が表示され、これは、データベースからユーザデータにアクセスして取得することによって又は第三者ソースから行うことができる。
いくつかの実施形態では、ユーザグラフィック表現は、ユーザがアップロードした又は第三者が(例えば、ソーシャルメディアウェブサイトから)提供した写真から構築されたユーザ3D仮想カットアウト、又は背景が削除されたユーザ116のリアルタイムビデオストリームを含むユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオである。さらなる実施形態では、クライアントデバイス118は、図3を参照してさらに説明されるように、ユーザ116のライブカメラフィード114を処理及び分析し、ピア・ツー・ピア(P2P)システムアーキテクチャ又はハイブリッドシステムアーキテクチャを介して他のピアクライアントデバイス118に送信されるアニメーションデータを生成することによってユーザグラフィック表現120を生成する。受信ピアクライアントデバイス118は、アニメーションデータを使用して、ユーザグラフィック表現をローカルに構築及び更新する。
ユーザ3D仮想カットアウトは、ユーザがアップロードした又は第三者が提供した2D写真から構築されたユーザの仮想レプリカを含み得る。一実施形態では、ユーザ3D仮想カットアウトは、背景が削除されたユーザの3Dメッシュ又は3D点群を生成する、ユーザがアップロードした又は第三者が提供した2D写真を入力データとして使用する、マシンビジョン技術を通じた仮想再構築プロセスにより作成される。一実施形態では、ユーザ3D仮想カットアウトは、静的な顔の表情を有し得る。別の実施形態では、ユーザ3D仮想カットアウトは、カメラフィードを通じて更新される顔の表情を含み得る。さらに別の実施形態では、ユーザ3D仮想カットアウトは、ユーザ3D仮想カットアウトが微笑む、眉をひそめる、真顔になるなどを可能にするボタンなどの、ユーザグラフィカルインターフェース上のボタンを通じて変更され得る表現を含み得る。さらに別の実施形態では、ユーザ3D仮想カットアウトは、前述の技術の組み合わせを使用して顔の表情を表示する。ユーザ3D仮想カットアウトを生成した後で、例えば、ユーザからのカメラフィードを処理することによって、ユーザ3D仮想カットアウトのステータス及び/又は顔の表情を継続的に更新することができる。しかしながら、カメラがオンになっていない場合でも、ユーザ3D仮想カットアウトは、不在ステータス及び静的な顔の表情で他のユーザに依然として表示され得る。例えば、ユーザは、現在作業に集中していて、邪魔されたくなくて(例えば、「邪魔しないでください(do not disturb)」又は「ビジー」ステータスになっていて)、自分のカメラをオフにしている場合がある。この時点で、ユーザ3D仮想カットアウトは、単に自分のデスクに居るだけで、静止しているか、又はタイピングなどの事前に構成された動きをすることができる。しかしながら、ユーザのカメラが再びオンにされると、ユーザ3D仮想カットアウトは、ユーザの顔の表情及び/又は動きに関してリアルタイムで再び更新することができる。結果として得られるユーザグラフィック表現がユーザであると明確に認識できるように、ユーザ3D仮想カットアウトの作成のための標準的な3D顔モデル再構築(例えば、3D顔フィッティング及びテクスチャ融合)技術が用いられ得る。
ユーザリアルタイム3D仮想カットアウトは、カメラから取得したリアルタイムの2D又は3Dライブビデオストリームデータフィードに基づく、ユーザの背景が削除された後の、ユーザの仮想レプリカを含み得る。一実施形態では、ユーザリアルタイム3D仮想カットアウトは、背景が削除されたユーザの3Dメッシュ又は3D点群を生成することによる、ユーザのライブデータフィードを入力データとして使用する、マシンビジョン技術を通じた仮想再構築プロセスにより作成される。例えば、ユーザリアルタイム3D仮想カットアウトは、ホログラフィック3Dメッシュ又は3D点群を作成するべく処理され得る、カメラ(例えば、ウェブカメラ)からの2Dビデオから生成され得る。別の例では、ユーザリアルタイム3D仮想カットアウトは、ホログラフィック3Dメッシュ又は3D点群を作成するべく処理され得る、深度カメラ(例えば、LIDAR又は任意の深度カメラ)からの3Dビデオから生成され得る。したがって、ユーザリアルタイム3D仮想カットアウトは、ユーザを3次元でリアルタイムでグラフィカルに表現する。
背景が削除されたビデオは、クライアントデバイスにストリーミングされたビデオを含み、背景削除プロセスは、ユーザだけが見えるようになって、受信クライアントデバイス上にポリゴン構造を使用して表示されるように行われる。背景が削除されていないビデオは、クライアントデバイスにストリーミングされたビデオを含み、ビデオは、カメラキャプチャを忠実に表し、したがって、ユーザとユーザの背景が見えるようになって、受信クライアントデバイス上にポリゴン構造を使用して表示される。ポリゴン構造は、ビデオに対応するための仮想フレームとして用いられるカッド構造又はより複雑な3D構造とすることができる。
背景が削除されていないビデオは、クライアントデバイスにストリーミングされたビデオを含み、ビデオは、カメラキャプチャを忠実に表し、したがって、ユーザとユーザの背景が見えるようになって、受信クライアントデバイス上にポリゴン構造を使用して表示される。ポリゴン構造は、ビデオに対応するための仮想フレームとして用いられるカッド構造又はより複雑な3D構造とすることができる。
いくつかの実施形態では、ライブデータフィード及び/又はユーザがアップロードした又は第三者が提供した2D写真に含まれる入力データとして用いられるデータとしては、2D又は3D画像データ、3Dジオメトリ、ビデオデータ、メディアデータ、音声データ、テキストデータ、触覚データ、時間データ、3Dエンティティ、3D動的オブジェクト、テキストデータ、時間データ、メタデータ、優先度データ、セキュリティデータ、位置データ、照明データ、深さデータ、及び赤外線データなどが挙げられる。
いくつかの実施形態では、ユーザリアルタイム3D仮想カットアウトを可能にするために必要とされる背景削除プロセスは、画像セグメンテーション及びディープニューラルネットワークの使用を通じて行われ、これは、クライアントデバイス118又は少なくとも1つのクラウドサーバコンピュータ102の1つ又は複数のプロセッサによる命令の実施を通じて可能となり得る。画像セグメンテーションは、デジタル画像を複数のオブジェクトにパーティショニングするプロセスであり、ユーザ116のライブデータフィード114から得られた前景(例えば、ユーザリアルタイム3D仮想カットアウト)を背景から分離することができるオブジェクト及び境界を見つけることに役立つ。本開示の実施形態で用いられ得るサンプル画像セグメンテーションは、例えばOpenCVから入手可能なWatershed変換アルゴリズムを含み得る。
本開示での背景の削除のために用いられ得る画像セグメンテーションの適切なプロセスは、コンピュータビジョンなどの人工知能(AI)技術を用いることでこのような背景の削除を可能にし、インスタンスセグメンテーション及び/又はセマンティックセグメンテーションを含み得る。インスタンスセグメンテーションは、1つ以上の複数のオブジェクトクラスの個々のインスタンスに個別のラベルを与える。いくつかの例では、インスタンスセグメンテーションは、MASK R-CNNを通じて行われ、これは、バウンディングボックス認識のための既存のブランチと並行してオブジェクトマスクを予測するためのブランチの追加に加えて、ユーザのライブデータフィード114などからの画像内のオブジェクトを検出すると同時に、インスタンスごとに高品質のセグメンテーションマスクを生成する。次いで、ユーザ用及び背景用に作成されたセグメント化されたマスクを抽出し、背景を削除することができる。セマンティックセグメンテーションは、深層学習又はディープニューラルネットワーク(DNN)技術を使用して、自動化された背景削除プロセスを可能にする。セマンティックセグメンテーションは、事前定義されたルールに応じて、色、テクスチャ、及び平滑度などの1つ又は複数のカテゴリからのクラスラベルを各ピクセルに与えることによって、画像をセマンティックに意味のある部分にパーティショニングする。いくつかの例では、セマンティックセグメンテーションは、参照により本明細書に組み込まれる文書“Fully Convolutional Networks for Semantic Segmentation”,Evan Shelhamer, Jonathan Long,, and Trevor Darrell, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 39, No. 4 (April 2017)で開示されるように、セマンティックセグメンテーションで、エンドツーエンド、ピクセルツーピクセルでトレーニングされた完全畳み込みネットワーク(FCN)を使用することができる。前述の背景削除プロセスの後で、ユーザの顔及び体の境界内の点群が残り、クライアントデバイス118又は少なくとも1つのクラウドサーバコンピュータ102の1つ又は複数のプロセッサは、ユーザリアルタイム3D仮想カットアウトの構築に用いられ得るユーザの3Dメッシュ又は3D点群を生成するべく処理することができる。次いで、ユーザリアルタイム3D仮想カットアウトが、カメラ112からのライブデータフィード114から更新される。
いくつかの実施形態では、ユーザグラフィック表現120を更新することは、ユーザ116の顔の表情を認識し、顔の表情を仮想環境110内のユーザグラフィック表現120でグラフィカルにシミュレートするために、生成されたユーザグラフィック表現120にクライアントデバイス118又は少なくとも1つのクラウドサーバコンピュータ102によるマシンビジョンアルゴリズムを適用することを含む。一般に、このような顔の表情の認識は、人間の感情の認識、解釈、処理、及びシミュレーションを扱う感情コンピューティングの原理を通じて行われ得る。従来の顔の表情の認識(FER)技術のレビューが、参照により本明細書に組み込まれる“Facial Expression Recognition Using Computer Vision: A Systematic Review”, Daniel Canedo and Antonio J. R. Neves, Applied Sciences, Vol. 9, No. 21 (2019)で提供されている。
従来のFER技術は、画像取得ステップ、前処理ステップ、特徴抽出ステップ、及び分類又は回帰ステップを含む。本開示のいくつかの実施形態において、画像取得は、1つ又は複数のプロセッサにカメラフィード114からの画像データを供給することによって行われる。前処理ステップは、特徴分類器に最も関連性のあるデータを提供するために必要な場合があり、普通は、所望の関心領域(ROI)であるターゲットユーザの顔を区切るバウンディングボックスを作成することができる、顔検出技術を含む。ROIは、とりわけ、照度変更のための強度正規化、画像平滑化のためのノイズフィルタ、トレーニングデータを増やすためのデータ拡張、回転された顔のための回転補正、異なるROIサイズのための画像サイズ変更、及びより良好な背景フィルタリングのための画像クロッピングを通じて前処理される。前処理後に、アルゴリズムは、前処理したROIから、アクションユニット(AU)、特定の顔のランドマークの動き、顔のランドマーク間の距離、顔のテクスチャ、グラデーション特徴などを含む、関連する特徴を取得する。次いで、これらの特徴を、例えば、サポートベクターマシン(SVM)又は畳み込みニューラルネットワーク(CNN)であり得る分類器に供給することができる。分類器のトレーニング後に、ユーザの情動をリアルタイムで検出し、例えば、すべての顔特徴関係を連結することによってユーザグラフィック表現120に構築することができる。
いくつかの実施形態では、ユーザグラフィック表現は、トップ・ビューイングパースペクティブ、又はサードパーソン・ビューイングパースペクティブ、又はファーストパーソン・ビューイングパースペクティブ、又はセルフ・ビューイングパースペクティブと関連付けられる。一実施形態では、ユーザグラフィック表現を通じて仮想環境にアクセスするときのユーザ116のビューイングパースペクティブは、トップ・ビューイングパースペクティブ、又はサードパーソン・ビューイングパースペクティブ、又はファーストパーソン・ビューイングパースペクティブ、又はセルフ・ビューイングパースペクティブ、又はブロードキャストカメラ・パースペクティブである。セルフ・ビューイングパースペクティブは、別のユーザグラフィック表現によって見られるようなユーザグラフィック表現、及び随意的に、ユーザグラフィック表現の仮想背景を含み得る。
いくつかの実施形態では、ビューイングパースペクティブは、ユーザ116がグラフィカルユーザインターフェースを介して仮想環境110を手動でナビゲートする際に更新される。
さらに別の実施形態では、ビューイングパースペクティブは、仮想カメラを使用して自動的に確立及び更新され、ライブデータフィードのビューイングパースペクティブは、ユーザグラフィック表現のビューイングパースペクティブ及び仮想カメラと関連付けられ、仮想カメラは、ユーザの目と頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することによって自動的に更新される。一実施形態では、ビューイングパースペクティブは、ユーザグラフィック表現120の前に、例えば、背景が削除されたビデオ、又は背景が削除されていないビデオ、又はユーザ3D仮想カットアウト、又はユーザリアルタイム3D仮想カットアウトの前に仮想的に配置され位置合わせされる1つ又は複数の仮想カメラを使用して自動的に確立及び更新される。一実施形態では、1つ又は複数の仮想カメラは、目の高さから外側に向けることができる。別の実施形態では、2つ(片目につき1つ)の仮想カメラは、両目の高さから外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の頭部の位置の中心から外側に向けることができる。カメラ112によって取り込まれるユーザ116のビューイングパースペクティブは、ユーザグラフィック表現120のビューイングパースペクティブ、及び仮想カメラを操作するコンピュータビジョンを使用する関連する仮想カメラに関連付けられる。
仮想カメラは、ユーザ116のビューイングパースペクティブに関連付けられたユーザグラフィック表現120のビューイングパースペクティブの仮想表現を提供し、ユーザ116が、多くのビューイングパースペクティブのうちの1つで、ユーザグラフィック表現120が見ている仮想環境110の領域を見ることを可能にする。仮想カメラは、ユーザの目と頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することによって自動的に更新される。仮想カメラの位置はまた、ユーザ116によって選択されたビューイングパースペクティブに応じて、ユーザ116によって手動で変更され得る。
セルフ・ビューイングパースペクティブは、背景が削除された別のユーザグラフィック表現120によって見られるような(例えば、電話カメラの「セルフィーモード」のような)ユーザグラフィック表現120のビューイングパースペクティブである。セルフ・ビューイングパースペクティブは、代替的に、他の参加者によって見られるようなユーザ116の知覚を理解するためのユーザグラフィック表現120の仮想背景を含み得る。セルフ・ビューイングパースペクティブは、ユーザグラフィック表現の仮想背景を含んでいるとき、仮想カメラによって取り込まれ得るユーザグラフィック表現の周囲の領域として設定することができ、結果的に、円形、正方形、長方形、又はセルフ・ビューイングパースペクティブのフレーミングに適した任意の他の形状となり得る。例えば、ユーザの背後に木々が見える窓が存在する家にユーザグラフィック表現120が仮想的に配置されるシナリオでは、セルフ・ビューイングパースペクティブは、ユーザグラフィック表現、及び代替的に、窓と木々を含む背景を表示する。
さらに別の実施形態では、ユーザの目及び頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することは、コンピュータビジョンを使用して少なくとも1つのカメラ112によって取り込まれたビュー位置及び向きを取り込む及び分析すること、したがって仮想環境110での仮想カメラを操作することを含む。例えば、このような操作は、コンピュータビジョン法を通じて、少なくとも1つのカメラによって取り込まれた目及び頭部の傾きデータを受信及び処理し、目及び頭部の傾きデータからビュー位置及び向きを抽出し、目の傾きデータからの位置及び向きに含まれる仮想環境の1つ又は複数の座標を識別し、識別された座標に基づいて仮想カメラを操作することを含み得る。
いくつかの実施形態では、少なくとも1つのクラウドサーバコンピュータ102のメモリ106内の命令はさらに、少なくとも1つの仮想環境110内のユーザアクティビティのデータ分析を行うことを可能にする。データ分析は、他のユーザとの会話への参加、仮想環境110内のオブジェクトとの相互作用、購入、ダウンロード、コンテンツとの関与などを含む相互作用に用いられ得る。データ分析は、推奨、最適化、予測、及び自動化を行うために、相互作用からデータを収集及び分析するべく、複数の公知の機械学習技術を用いることができる。例えば、データ分析は、マーケティングの目的で用いられ得る。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータ102の少なくとも1つのプロセッサ104はさらに、少なくとも1つの仮想環境110に追加されたコンテンツの取引及びマネタイズを可能にするように構成される。少なくとも1つのクラウドサーバコンピュータ102は、ユーザが適切なアプリケーション・プログラミング・インターフェース(API)を通じて少なくとも1つの仮想環境でのコンテンツを見つける、選択する、及び挿入することができるアプリケーション及びオブジェクトライブラリに通信可能に接続することができる。1つ又は複数のクラウドサーバコンピュータ102はさらに、対応するトランザクションの実行を可能にする1つ又は複数の支払いゲートウェイに接続することができる。コンテンツは、例えば、インタラクティブアプリケーション又は静的又はインタラクティブ3Dアセット、アニメーション、又は2Dテクスチャなどを含み得る。
図2A~図2Bは、仮想環境プラットフォームの複数のバーティカルを含む仮想環境での相互作用を可能にするシステムの展開200a及び200bの概略図である。
図2Aは、一実施形態に係る、仮想環境プラットフォーム108の複数のバーティカル202を含む仮想環境での相互作用を可能にするシステムの展開200aの概略図である。図2Aのいくつかの要素は、図1の同じ又は類似の要素を指す場合があり、したがって、同じ参照番号を使用する場合がある。
バーティカル202は、例えば、仮想会議室としての会議204、例えば、仮想オフィススペースとしての仕事206、例えば、仮想教室としての学習208、及び例えば、仮想ショップとしてのショッピング210での使用に関係するコンテキストテーマを含む、仮想環境のコンテキストテーマに関連付けられている。図2Aに表されていない他のバーティカルとしては、例えば、とりわけ、銀行業務、予約(例えば、ホテル、ツアー代理店、又はレストラン)、及び政府機関サービス(例えば、有料で新会社を設立するためのお問い合わせ)などのサービス、及びエンターテイメント(例えば、カラオケ、イベントホール又はアリーナ、映画館、ナイトクラブ、競技場、美術館、クルーズ船など)が挙げられる。
仮想環境バーティカル202のそれぞれは、対応するバーティカル202のコンテキストに関連付けられた1つ又は複数の利用可能な配置及び外観をそれぞれ有する複数の利用可能な仮想環境110(例えば、仮想環境A~L)を含み得る。例えば、会議204のバーティカル202の仮想環境Aは、座席付きの会議デスク、ホワイトボード、及びプロジェクタを備え得る。仮想環境110のそれぞれには、少なくとも1つのクラウドサーバコンピュータによって対応するリソース(例えば、メモリ、ネットワーク、及び計算能力)が提供され得る。バーティカル202は、仮想環境プラットフォーム108から利用することができ、仮想環境プラットフォーム108には、1人以上のユーザ116がクライアントデバイス118を介してグラフィカルユーザインターフェース212を通じてアクセスすることができる。グラフィカルユーザインターフェース212は、ダウンロード可能なクライアントアプリケーション又はウェブブラウザアプリケーションに含められ、選択された仮想環境110を実行するために必要とされるアプリケーションデータ及び命令を提供し、選択された仮想環境110での複数の相互作用を可能にする。さらに、仮想環境110のそれぞれは、対応するユーザグラフィック表現を通じて必要とされるデータ及び/又はサービスを提供することによって仮想環境内のユーザを支援することができる1つ又は複数の人間又は人工知能(AI)ホスト又はアシスタントを含み得る。例えば、人間又はAIの銀行サービス担当者は、ユーザの要求に応じて、プレゼンテーション、フォーム、リストなどの形態の必要とされる情報を提供することによって、仮想銀行のユーザを支援することができる。
いくつかの実施形態では、各仮想環境110は、カスタマイゼーションを含むそこでなされた変更を記録する永続仮想環境であり、変更は、少なくとも1つのクラウドサーバコンピュータ102の永続メモリストレージに格納される。例えば、仮想環境Aの例に戻ると、デスクの周りの座席の配置、壁の色、又はさらには部屋のサイズ及び定員容量でさえ、ニーズ又はユーザの好みに合わせて変更することができる。実行された変更は永続メモリに保存され、その後、同じ仮想環境Aでの後続のセッション中に利用可能となる。いくつかの例では、仮想環境110での変更の永続的な格納を可能にすることは、部屋のホスト又は所有者へのサブスクリプション料金の支払い(例えば、支払いゲートウェイに接続する仮想環境プラットフォーム108を通じて)を必要とし得る。
他の実施形態では、仮想環境110は、少なくとも1つのクラウドサーバコンピュータ102の一時的なメモリストレージに格納された一時的な仮想環境である。これらの実施形態では、仮想環境110で実行された変更は格納されない場合があり、したがって、将来のセッションで利用できない場合がある。例えば、一時的な仮想環境は、異なるバーティカル202からの事前定義された利用可能な仮想環境から、仮想環境プラットフォーム108から選択され得る。デコレーション又は配置の変更などの変更が可能になる場合又は可能にならない場合があるが、変更が可能になる場合、変更はセッションの終了後に失われる場合がある。
いくつかの実施形態では、1つ又は複数のバーティカル202内の仮想環境110の複合体は、仮想環境クラスタ214を表すことができる。例えば、一部の仮想環境クラスタ214は、数百又は数千もの仮想環境110を含み得る。ユーザにとって、仮想環境クラスタ214は、同じシステムの一部のように見えてもよく、そこでは、ユーザは、互いに対話することができ、又は同じ仮想環境クラスタ214内の他の仮想環境にシームレスにアクセスすることができる。例えば、仕事仮想環境バーティカル206からの仮想環境D及びEと、会議仮想環境バーティカル204からの仮想環境Bは、会社を表す仮想環境クラスタ214を形成し得る。この例でのユーザは、ビデオ会議用の会議室に加えて、2つの異なる作業領域、例えば、ゲーム開発室及びビジネス開発室を有することができる。ゲーム開発室及びビジネス開発室のいずれかからのユーザは、会議室で会議を行い、プライベート仮想会議を開くことができ、残りのスタッフは、元の作業領域で現在のアクティビティを実行し続けることができる。
他の例では、仮想環境クラスタ214は、映画館又はイベント施設を表すことができ、各仮想環境110は、対応するユーザグラフィック表現を通じて1人又は複数のパフォーマによってライブパフォーマンスが行われる屋内又は屋外イベントエリア(例えば、劇場又はイベントアリーナ)を表す。例えば、オーケストラ及び/又は歌手は、カメラによるパフォーマンスのライブレコーディングを通じて、及びユーザグラフィック表現を通じて、例えば、ユーザライブ3D仮想カットアウトを通じて音楽コンサートを開催することができる。各パフォーマのユーザグラフィック表現は、そこからパフォーマンスを行うことができるステージの対応する3次元座標に挿入することができる。聴衆は、対応するユーザグラフィック表現を通じて劇場からのパフォーマンスを見ることができ、仮想的に拍手する、一緒に歌う、仮想的に踊る、仮想的にジャンプする、又は応援するなどの複数の相互作用を実施することができる。
他の例では、仮想環境クラスタ214は、複数の遊戯エリア(例えば、ブラックジャックエリア、ポーカーエリア、ルーレットエリア、及びスロットマシンエリア)、トークン購買エリア、及びイベントルームを備えるカジノを表すことができる。各遊戯エリアでのマシンは、各ゲームに関連したユーザ体験を提供するように構成されたカジノアプリケーションとして構成され得る。カジノ運営者は、対応するユーザグラフィック表現120又はユーザリアルタイム3D仮想カットアウトを有し得る。sで表されるカジノ運営者は、仮想カジノのユーザを支援する実際の人間の運営者又は人工知能プログラムであり得る。各カジノゲームは、仮想カジノを運営するカジノ会社からの支払いゲートウェイに結合され、ユーザとの間の支払いを可能にする。
他の例では、仮想環境クラスタ214は、複数のフロアを備えるショッピングモールを表し、各フロアは、店舗、ショールーム、共用エリア、フードコートなどの複数の仮想環境を備える。各仮想ルームは、対応する仮想ルーム管理者が管理することができる。例えば、各店舗は、対応する店舗管理者が管理することができる。セールスクラークは、3Dライブ仮想アバター又はユーザリアルタイム3D仮想カットアウトとして各エリアで利用することができ、実際の人間又はAIアシスタントであり得る。現在の例では、各仮想店舗及びサンプルフードコートのレストランは、対応する支払いゲートウェイ及び配送システムを通じて商品のオンライン購入及びユーザの住所への配達を可能にするように構成することができる。
別の例では、仮想環境クラスタ214は、仮想ナイトクラブの複数の仮想パーティエリアを備え、そこでは、ユーザは、対応するユーザグラフィック表現を通じて会う及び交流することができる。例えば、各仮想パーティエリアは、異なるテーマ及び関連する音楽及び/又はデコレーションを有し得る。会話及びテキストメッセージの送信とは別に、仮想ナイトクラブでの他のいくつかの相互作用としては、例えば、仮想的に踊る又は飲む、様々な着席エリア(例えば、ラウンジ又はバー)座ることなどが挙げられる。さらに、この例では、仮想ナイトクラブで屋内音楽コンサートを開催することができる。例えば、ステージ上の仮想テーブルの後ろでプレイするディスクジョッキー(DJ)が電子音楽コンサートをプレイすることができ、この場合、DJは、3Dライブ仮想アバター又はユーザリアルタイム3D仮想カットアウトによって表され得る。DJがユーザリアルタイム3D仮想カットアウトによって表される場合、オーディオミキシングコンソールをプレイしているDJのリアルタイムの動きを、DJ位置にいるDJから(例えば、DJの家又はレコーディングスタジオから)画像を取り込むカメラによって得られたライブデータフィードからリアルタイム3D仮想カットアウトに投影することができる。さらに、聴衆の各メンバーは、独自のユーザグラフィック表現で表すこともでき、この場合、一部のユーザは、3Dライブ仮想アバターで表すことができ、他のユーザは、ユーザの好みに応じてユーザリアルタイム3D仮想カットアウトで表すことができる。
他の例では、仮想環境クラスタ214は、複数のプライベート又はパブリックカラオケルームを備える仮想カラオケエンターテイメント施設を表すことができる。各プライベートカラオケルームは、仮想カラオケマシン、仮想画面、ステージ、マイクロフォン、スピーカ、デコレーション、カウチ、テーブル、及び飲み物及び/又は食べ物を備え得る。ユーザが、歌曲データベースに接続することができる仮想カラオケマシンを通じて選曲することにより、仮想カラオケマシンは、ユーザのために曲を再生し、ユーザがユーザグラフィック表現を通じて歌うために仮想画面上に歌詞を投影するようにシステムをトリガすることができる。パブリックカラオケルームは、ユーザのために選曲し、ユーザをステージに呼び込み、パフォーマンスを聴くために必要に応じてユーザをミュート又はミュート解除する、人間又はAIのDJをさらに有し得る。ユーザは、マイクロフォンを通じてクライアントデバイスからリモートで歌うことができる。
他の例では、仮想環境クラスタ214は、寝室、エンジン室、イベントルーム、船首、船尾、左舷、右舷、ブリッジ、及び複数のデッキなどの複数のエリアを備える仮想クルーズ船を表すことができる。エリアの一部は、さらなる情報又はサービスを提供するなどの、対応するユーザグラフィック表現を通じてユーザにアテンドする人間又はAIアシスタントを有し得る。利用可能な場合、特定の目的地に到着したときに訪れることができる島、町、又は都市の風景を描写するために必要とされる、クルーズ船の外部の仮想環境又は単純なグラフィック表現を利用することができる。したがって、ユーザは、ユーザグラフィック表現を通じて、外洋の旅を体験し、新しい場所を発見すると同時に、仮想的に互いに相互作用することができる。
他の例では、仮想環境クラスタ214は、ユーザが適切な入力/出力デバイス(例えば、コンピュータのキーボード、ゲームコントローラなど)を通じてユーザグラフィック表現を介してプレイすることができる、競技場、コート、又はルームを表す複数の仮想環境を備えるe-スポーツスタジアム又は体育館を表すことができる。各e-スポーツの仕組みは、プレイするスポーツによって異なり得る。e-スポーツスタジアム又は体育館は、ユーザがアクセスするスポーツエリアを選択できる共用エリアを備えることができる。どのスポーツ活動がいつ利用できるかをユーザに通知する利用可能なスポーツスケジュールも利用可能であり得る。
図2Bは、様々なバーティカル202からの複数の仮想環境を組み合わせた仮想学校216の展開200bを表す。仮想学校216は、4つの教室(例えば、教室A~D 218~224)、講堂226、スポーツエリア228、カフェテリア230、職員室232、図書館234、及び書店236を備える。各仮想環境は、対応する環境に関連付けられた対応するグラフィック表現によって表される仮想オブジェクトを備え得る。
例えば、仮想教室(例えば、仮想教室A~D 218~224のいずれか)は、生徒が授業に出席することを可能にし、生徒が様々な相互作用(例えば、挙手、コンテンツ投影、プレゼンテーション、口頭で又はテキストなどを通じて質問又は投稿をすること)を通じてクラスに参加することを可能にするように構成され、教師に特別な管理者権限を提供する(例えば誰かに発言権を与える、授業中に1人以上の生徒をミュートする、デジタルホワイトボードを通じてコンテンツを共有するなど)。講堂は、話者がスピーチすることを可能にする、又は複数のイベントを催すことができる。スポーツエリア228は、生徒が対応するユーザグラフィック表現を通じて複数のe-スポーツをプレイすることを可能にするように構成され得る。カフェテリア230は、生徒がオンラインで食べ物を注文すること及びユーザグラフィック表現を通じて社交することを可能にし得る。職員室232は、教師が対応する教師ユーザグラフィック表現を通じて会う、議題を議論する、生徒の進捗報告などを行うように構成され得る。図書館234は、生徒が学習課題又は余暇の読書のために電子書籍を借りることを可能にし得る。最後に、書店236は、生徒が本(例えば、電子書籍又は物理的な本)及び/又は他の学校教材を購入することを可能にするように構成され得る。
図3は、一実施形態に係る、仮想環境での相互作用を可能にするシステムで採用され得るサンプルハイブリッドシステムアーキテクチャ300の概略図である。ハイブリッドシステムアーキテクチャ300は、いくつかの実施形態では、図3ではそれぞれ点線領域で区切られているクライアントサーバ側304及びP2P側306を備える、他のピアクライアント(例えば、仮想会議、教室などの他の出席者)と相互作用するための通信のハイブリッドモデルである。このような通信のハイブリッドモデルを使用することで、ユーザ間の迅速なP2P通信が可能となり、各セッションにウェブサービス、データ、及びリソースを提供しながら待ち時間の問題が低減され、仮想環境でのユーザ間の及びコンテンツとの複数の相互作用が可能となり得る。図3のいくつかの要素は、図1~図2Aの同じ又は類似の要素を指す場合があり、したがって、同じ参照番号を使用する場合がある。
種々の実施形態において、P2P側306に対するクライアントサーバ側304の使用レベル及び比率は、処理するデータの量、スムーズなユーザ体験を維持するために許される待ち時間、所望のサービス品質(QOS)、必要なサービスなどに依存する。一実施形態では、P2P側306は、ビデオ及びデータの処理、ストリーミング、及びレンダリングのために用いられる。ハイブリッドシステムアーキテクチャ300を採用するこのモードは、例えば、少ない待ち時間で少量のデータを処理する必要があるとき、及びクライアントデバイスがこのような動作を行うための十分な計算能力を備えていることを意味する「ヘビー」クライアントが存在するときに適している場合がある。別の実施形態では、クライアントサーバ側304とP2P側306の組み合わせが採用され、このようなP2P側306は、ビデオのストリーミング及びレンダリングのために用いられ、一方、クライアントサーバ側304は、データ処理のために用いられる。ハイブリッドシステムアーキテクチャ300を採用するこのモードは、例えば、処理するべき大量のデータが存在するとき又は他のマイクロサービスが必要とされ得るときに適している場合がある。さらに別の実施形態では、クライアントサーバ側304は、データ処理とともにビデオのストリーミングのために用いられ、一方、P2P側306は、ビデオのレンダリングのために用いられる。ハイブリッドシステムアーキテクチャ300を採用するこのモードは、例えば、処理するデータの量がさらに多いとき、及び/又はシンクライアントのみが利用可能であるときに適している場合がある。さらに別の実施形態では、クライアントサーバ側304は、ビデオのストリーミング、レンダリング、及びデータ処理のために用いられる。ハイブリッドシステムアーキテクチャ300を採用するこのモードは、ベリーシンクライアントが利用可能であるときに適している場合がある。ハイブリッドシステムアーキテクチャ300は、必要に応じて、同じセッション内でクライアントサーバ側304とP2P側306との両方の異なる使用モダリティを切り替えることを可能にするように構成され得る。
いくつかの実施形態では、クライアントサーバ側304からの少なくとも1つのクラウドサーバは、中間サーバであり、これは、サーバがクライアントデバイス間のデータの交換を容易にする及び/又は最適化するために用いられることを意味する。このような実施形態では、少なくとも1つのクラウドサーバは、着信画像及びマルチメディアストリームを管理、分析、処理、及び最適化し、ルータトポロジー(例えば、限定はされないが、SFU(Selective Forwarding Units)、SAMS(Spatially Analyzed Media Server)、マルチメディアルータなど)、又は画像及びメディアの処理サーバトポロジー(例えば、デコード、結合、改善、ミキシング、強化、拡張、コンピューティング、操作、エンコーディングを含むがこれらに限定されないタスク用)、又は転送サーバトポロジー(MCU、クラウドメディアミキサ、クラウド3Dレンダラー、メディアサーバを含むがこれらに限定されない)、又は他のサーバトポロジーとして、発信ストリームの転送を管理、評価、及び/又は最適化することができる。
中間サーバがSAMSであるこのような実施形態では、このようなメディアサーバは、各送信クライアントデバイスの着信データ(例えば、メタデータ、優先度データ、データクラス、空間構造データ、3次元位置、向き、又は移動情報、画像、メディア、スケーラブルなビデオコーデックベースのビデオ、又はこれらの組み合わせ)を管理、分析、及び処理し、このような分析において、発信データストリームの各受信クライアントデバイスへの転送を管理及び/又は最適化する。これは、時間(例えば、様々なフレームレート)、空間(例えば、異なる画像サイズ)、品質(例えば、異なる圧縮又はエンコードに基づく品質)、及び色(例えば、色の解像度及び範囲)についてメディアを変更、アップスケーリング、又はダウンスケーリングすることを含み、特定の受信クライアントデバイスユーザの空間的3次元の向き、距離、及び1つ又は複数のユーザクライアントデバイスを受信するための最適な帯域幅及びコンピューティングリソース使用率を実現するこのような着信データに対する優先度の関係性などの因子に基づく場合がある。
いくつかの実施形態では、メディア、ビデオ、及び/又はデータ処理タスクは、画像フィルタリング、コンピュータビジョン処理、画像鮮明化、背景の改善、背景の削除、前景のぼかし、アイカバーリング、顔のピクセル化、音声歪み、画像アップレズ、画像クレンジング、骨格分析、顔又は頭部のカウント、オブジェクト認識、マーカ又はQRコード追跡、視標追跡、特徴分析、3Dメッシュ又はボリューム生成、特徴追跡、顔認識、SLAM追跡、及び顔の表情認識、又はこのようなメディアルータ又はサーバ上で実行されるマイクロサービスの形態の他のモジュラプラグインのうちの1つ又は複数を含むエンコーディング、トランスコーディング、デコーディング空間又は3D分析及び処理のうちの1つ又は複数を含む。
クライアントサーバ側304は、安全な通信プロトコル308を使用して、ネットワークを経由したクライアントデバイス118とウェブ/アプリケーションサーバ310との安全なエンドツーエンド通信を可能にする。サンプルの適切な安全な通信プロトコル308としては、例えば、それ自体が安全なUDP(user datagram protocol)であるDTLS(Datagram Transport Layer Security)、SRTP(Secure Realtime Transport Protocol)、Hypertext Transfer Protocol Secure(https://)、及びWebSocket Secure (wss://)が挙げられ、これらは、互換性があり、全二重認証済みアプリケーションアクセス、プライバシー保護、及び転送中の交換データの整合性をもたらすことができる。適切なウェブ/アプリケーションサーバ310としては、例えば、Jettyウェブアプリケーションサーバが挙げられ、これはJava HTTPウェブサーバ及びJava Servletコンテナであり、マシン・ツー・マシン通信及びウェブアプリケーションサービスの適正な展開を可能にする。
ウェブ/アプリケーションサーバ310は、図3では単一の要素として示されているが、ウェブサーバとアプリケーションサーバは別個の要素であり得ることが当業者にはわかるであろう。例えば、ウェブサーバは、安全な通信プロトコル308を通じてクライアント要求を受信し、要求をアプリケーションサーバにルーティングするように構成され得る。したがって、ウェブ/アプリケーションサーバ310は、安全な通信プロトコル308を使用してクライアント要求を受信し、要求を処理することができ、これは、1つ又は複数のマイクロサービス312(例えば、Javaベースのマイクロサービス)を要求すること及び/又は対応するデータベース管理システム316を使用してデータベース314からデータを検索することを含み得る。アプリケーション/ウェブサーバ310は、セッション管理と、3Dコンテンツ及びアプリケーション論理などの多数の他のサービス、並びにセッションの状態永続性(例えば、共有文書の永続的な格納、仮想環境での相互作用及び変更の同期、又は仮想環境の視覚的状態及び修正の永続化のために)を提供し得る。適切なデータベース管理システム316は、例えば、オブジェクト・リレーショナル・マッピング(ORM)データベース管理システムであり、これは、オブジェクト指向プログラミング言語を使用して互換性のないタイプのシステム間でデータを変換するためにORM機能が与えられたオープンソースの商用の(例えば、独自仕様の)サービスを使用するデータベース管理に適している場合がある。さらなる実施形態では、パブリッシュ-サブスクライブモデルを使用することによって、マイクロサービスとクライアントデバイスとの間の分散型メッセージ及びリソース配信プラットフォームとして、分散型空間データバス318をさらに使用することができる。
P2P側306は、適切なP2P通信プロトコル320を使用することにより、適切なアプリケーション・プログラミング・インターフェース(API)を通じて仮想環境でのピアクライアントデバイス118間のリアルタイム通信を可能にし、これにより、そのリアルタイムの相互作用及び同期が可能となり、マルチユーザコラボレーション環境がもたらされる。例えば、P2P側306を通じて、1人以上のユーザの寄与を他のユーザに直接送信することができ、他のユーザは、実行された変更をリアルタイムで観察することができる。適切なP2P通信プロトコル320の例は、WebRTC(Web Real-Time Communication)通信プロトコルであり、これは、規格、プロトコル、及びJavaScript APIのコレクションであり、これらを組み合わせることにより、ピアクライアントデバイス118間のP2P音声、ビデオ、及びデータ共有が可能になる。P2P側306のクライアントデバイス118は、1つ又は複数のレンダリングエンジン322を使用して、ライブセッションのリアルタイムの3Dレンダリングを行うことができる。適切なレンダリングエンジン322の例は、プラグインを使用せずに任意の互換性のあるウェブブラウザ内の2D及び3DグラフィックスをレンダリングするためのJavaScript APIであるWebGLに基づく3Dエンジンであり、クライアントデバイス118の1つ又は複数のプロセッサ(例えば、1つ又は複数のグラフィック処理ユニット(GPU))による物理及び画像処理及びエフェクトの使用を加速させる。さらに、P2P側306でのクライアントデバイス118は、1つ又は複数の適切なコンピュータビジョンライブラリ324を通じて、画像及びビデオ処理と機械学習コンピュータビジョン技術を実行することができる。一実施形態では、P2P側306でのクライアントデバイスによって実行される画像及びビデオ処理は、ユーザグラフィック表現を仮想環境に挿入する前にユーザグラフィック表現の作成に用いられる背景削除プロセスを含み、これは、受信したメディアストリームにリアルタイム又はほぼリアルタイムのいずれかで、又は例えば写真に非リアルタイムで実行することができる。適切なコンピュータビジョンライブラリ324の例は、主にリアルタイムのコンピュータビジョンタスクのために構成されたプログラミング関数のライブラリであるOpenCVであり得る。
図4は、一実施形態に係る、ユーザが仮想環境で相互作用することができる仮想環境ライブセッションモジュール402のグラフィカルユーザインターフェース400の概略図である。
ユーザが仮想環境ライブセッションモジュール402のグラフィカルユーザインターフェース400にアクセスできるようになる前に、ユーザは、ピアユーザとの会話に参加するために最初にピアクライアントデバイスから招待を受信し、これにより、処理及びレンダリングがクライアントデバイスによって行われるときにユーザクライアントデバイス間のP2P通信チャネルが開かれる、又は代替的に、処理及びレンダリングが少なくとも1つのクラウドサーバコンピュータによって行われるときにクラウドサーバコンピュータを通じて間接通信チャネルが開かれる。さらに、図5を参照して説明の後半に示すように、ユーザ3D仮想カットアウトから、ユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオへの移行を行うことができる。
仮想環境ライブセッションモジュール402は、選択された仮想環境を示すグラフィカルユーザインターフェースを含む仮想環境画面404を備えることができ、これは、仮想環境の選択されたバーティカルのコンテキストに関連付けられた仮想環境の構成と、対応する仮想オブジェクト、アプリケーション、他のユーザグラフィック表現などを含み得る。仮想環境ライブセッションモジュール402のグラフィカルユーザインターフェース400は、例えば、ユーザリアルタイム3D仮想カットアウトを通じてユーザが互いに従事するように構成された複数の相互作用406を可能にする及び表示することができる。仮想環境ライブセッションモジュール402は、各相互作用406を可能にする対応するタスクに関連付けられた1つ又は複数のデータモデルと、前記タスクを実施するのに必要なコンピュータ命令を備えることができる。各相互作用406は様々な方法で表すことができ、図4に示された例では、個々の相互作用406は、それぞれ、仮想環境ライブセッションモジュール402からのグラフィカルユーザインターフェース400上のボタンとして表され、各相互作用ボタンをクリックすることにより、相互作用406に関連付けられたタスクを行うために対応するサービスを要求することができる。仮想環境ライブセッションモジュール402は、例えば、図3を参照して開示したハイブリッドシステムアーキテクチャ300を通じて可能になる。
相互作用406は、例えば、チャット408、画面共有410、ホストオプション412、リモートセンシング414、レコーディング416、投票418、文書共有420、絵文字送信422、議題の共有及び編集424、又は他の相互作用426を含み得る。他の相互作用426は、例えば、仮想ハグ、挙手、握手、歩く、コンテンツ追加、会議の概要の準備、オブジェクトの移動、投影、レーザーポインティング、ゲームプレイ、購入、及びユーザ間の交換、競争、協力、対立の解決を容易にする他の社会的相互作用を含み得る。様々な相互作用406を以下でより詳細に説明する。
チャット408は、テキストコメント及びオンザフライリソースを送受信することを可能にするチャットウィンドウを開くことができる。
画面共有410は、ユーザの画面を他の参加者とリアルタイムで共有することを可能にし得る。
ホストオプション412は、1人以上のユーザをミュートにする、1人以上のユーザを招待又は削除する、会話を終了するなどのさらなるオプションを会話ホストに提供するように構成される。
リモートセンシング414は、不在、ビジー、対応可能、オフライン、電話会議中、又は会議中などのユーザの現在のステータスを表示することを可能にする。ユーザステータスは、グラフィカルユーザインターフェースを通じて手動で、又はカメラから取得されたデータフィードに基づいてマシンビジョンアルゴリズムを通じて自動的に、更新され得る。
レコーディング416は、会話からの音声及び/又はビデオをレコーディングすることを可能にする。
投票418は、他の参加者によって投稿された1つ又は複数の提案に投票することを可能にする。投票418を通じて、ホスト又はそのような許可を得た他の参加者によっていつでも投票セッションを開始することができる。参加者ごとに件名と選択肢を表示することができる。投票418の相互作用の構成に応じて、タイムアウト期間の終了時又は全員の応答の終了時に、すべての参加者に結果を示すことができる。
文書共有420は、他の参加者と任意の適切なフォーマットで文書を共有することを可能にする。これらの文書はまた、1つ又は複数のクラウドサーバコンピュータの永続メモリに格納することで永続的に保持することができ、仮想通信が行われる仮想環境に関連付けることができる。
絵文字送信422は、他の参加者に絵文字を送信することを可能にする。
議題の共有及び編集424は、参加者のいずれかによって準備された議題の共有及び編集を可能にする。いくつかの実施形態では、議題項目のチェックリストは、会議の前にホストが設定することができる。議題は、ホスト又はその許可を得た他の参加者がいつでも前面に出すことができる。議題編集オプションを通じて、合意に達したときに項目のチェックを外す、又は延期することができる。
他の相互作用426は、仮想環境バーティカルに応じて仮想環境で提供され得る可能な相互作用の網羅的でないリストを提供する。挙手は、仮想通信又は会議中に手を挙げることを可能にし、これにより、ホスト又はそのような資格を得た他の参加者はユーザが話すことを可能にする。歩くは、ユーザリアルタイム3D仮想カットアウトを通じて仮想環境内を移動することを可能にする。コンテンツ追加は、ユーザが、インタラクティブアプリケーション又は静的又はインタラクティブ3Dアセット、アニメーション、又は2Dテクスチャを、仮想環境に追加することを可能にする。会議の概要の準備は、仮想会議の結果の自動準備と、セッションの終了時にこのような結果を参加者に配信することを可能にする。オブジェクトの移動は、仮想環境内でオブジェクトを移動することを可能にする。投影は、参加者の画面から仮想環境で利用可能なスクリーン又は壁にコンテンツを投影することを可能にする。レーザーポインティングは、プレゼンテーション上の所望のコンテンツを強調表示するためにレーザをポインティングすることを可能にする。ゲームプレイは、ライブセッション中に共有され得る1つ又は複数のゲーム又は他のタイプのアプリケーションをプレイすることを可能にする。購買は、コンテンツのセッション中の購入を可能にする。本明細書に記載されていない他の相互作用も、仮想環境プラットフォームの特定の用途に応じて構成され得る。
いくつかの実施形態では、システムはさらに、アドホック仮想通信の作成を可能にし、これは、仮想環境での現在のビューイングパースペクティブ又は位置を変更する必要なしに、ユーザグラフィック表現間のアドホック音声通信チャネルを作成することを含み得る。例えば、ユーザグラフィック表現は、別のユーザグラフィック表現に接近し、両方のユーザグラフィック表現エリアが存在する仮想環境内の場所でアドホック音声会話を行うことができる。このような通信は、例えば、ユーザグラフィック表現間の距離、位置、及び向き、及び/又はそれらの現在の対応可能性ステータス(例えば、対応可能又は対応不可能)、又はこのようなアドホック通信のステータス構成、又はそれらの組み合わせを考慮に入れることによって可能となる。接近するユーザグラフィック表現は、この例では、アドホック通信が可能であることをシグナリングする、したがって、両方のユーザグラフィック表現間の会話の開始を設定する、他のユーザグラフィック表現に関する視覚的フィードバックを見ることになり、この場合、接近するユーザは話しかけることができ、他のユーザはそれを聞いて応答することができる。別の例では、ユーザグラフィック表現は、別のユーザグラフィック表現に接近し、ユーザグラフィック表現をクリックし、会話招待を送信し、招待者による承認後に、両方のユーザグラフィック表現エリアが存在する仮想環境内の場所でアドホック音声会話を行うことができる。他のユーザは、2つのユーザグラフィック表現間のプライバシー設定に従って、会話を聞くことができるかどうかにかかわらず、ユーザグラフィック表現間の相互作用、表現、手の動きなどを見ることができる。前述の406の相互作用又は他の相互作用426のいずれも、仮想環境画面404内で直接行うこともできる。
図5は、一実施形態に係る、或るタイプのユーザグラフィック表現から別のタイプのユーザグラフィック表現に、例えば、ユーザ3D仮想カットアウトからユーザリアルタイム3D仮想カットアウトに、又は背景が削除されたビデオ、又は背景が削除されていないビデオに移行することを可能にする方法500を示す。
移行は、ユーザが他のユーザグラフィック表現と会話しているときに可能になる。例えば、ユーザは、現在オフィスチェアに座っていて、仮想オフィスのコンピュータで作業している場合がある。ユーザの現在のグラフィック表現は、ユーザ3D仮想カットアウトの表現であり得る。その時点では、ユーザからのライブデータフィードは必要とされない場合があるため、カメラはオンになっていない場合がある。しかしながら、ユーザがカメラをオンにすることを決定した場合、ユーザ3D仮想カットアウトは、本明細書でより詳細に説明されるように、ユーザのライブデータフィードから取り込まれたユーザの顔分析を通じて提供された顔の表情を含み得る。
ユーザが別のユーザグラフィック表現と会話してライブセッションを開始する際に、ユーザのカメラがアクティブ化されていない場合、カメラをアクティブ化し、ユーザのライブストリームを提供し得るライブデータフィードの取り込みを開始し、ユーザ3D仮想カットアウトを、ユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオに移行することができる。さらに図1で説明されるように、ユーザリアルタイム3D仮想カットアウト504のライブストリームは、クライアント又はサーバで処理及びレンダリングすることができ、又は、リアルタイムの独自の処理及びレンダリングのためにP2Pシステムアーキテクチャ又はハイブリッドシステムアーキテクチャで他のピアクライアントデバイスに送信することができる(例えば、図3を参照して説明されるハイブリッドシステムアーキテクチャ300を通じて)。
図5の方法500は、ステップ502で、ユーザグラフィック表現に接近することで開始する。次いで、ステップ504で、方法500は、ユーザグラフィック表現を選択及びクリックする。続いて、ステップ506で、方法500は、クライアントデバイスを通じて別のユーザグラフィック表現との間で会話参加招待を送信又は受信する。続いて、ステップ508で、方法500は、対応するクライアントデバイスによって、受信した招待を承諾する。次いで、方法500は、ステップ510で、ユーザ3D仮想カットアウトを、ユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオに移行する。最後に、ステップ512で、方法500は、処理及びレンダリングがクライアントデバイスによって行われるときにユーザクライアントデバイス間のP2P通信チャネルを開くこと、又は処理及びレンダリングが少なくとも1つのクラウドサーバコンピュータによって行われるときにクラウドサーバコンピュータを通じて間接通信チャネルを開くことで終了する。いくつかの実施形態では、会話は、参加者のユーザリアルタイム3D仮想カットアウトから表示されるリアルタイム音声及びビデオを送信及び受信することを含む。
図6A~図6Cは、対応するクライアントデバイス118及びクラウドサーバ102によってクライアントサーバ側304で行われる複数の画像処理の組み合わせの概略図である。クライアントサーバ側は、例えば、図3に示されるようなハイブリッドシステムアーキテクチャ300などのハイブリッドシステムアーキテクチャの一部であり得る。
図6A~図6Cの一実施形態では、少なくとも1つのクラウドサーバ102は、Traversal Using Relay Network Address Translation (NAT)(TURNと呼ばれることもある)サーバとして構成することができ、これは、サーバがクライアントデバイス118間の接続を確立することができない状況に適している場合がある。TURNは、NAT(STUN)のSession Traversal Utilitiesの拡張機能である。
NATは、パケットがトラフィックルーティングデバイスを通過している間にパケットのIPヘッダ内のネットワークアドレス情報を変更することによって、インターネットプロトコル(IP)アドレス空間を別のアドレス空間に再マッピングする方法である。したがって、NATは、インターネットなどのネットワークにアクセスするプライベートIPアドレスを与えることができ、ルーティングデバイスなどの単一のデバイスがインターネットとプライベートネットワークとの間のエージェントとして機能できるようにする。NATは、対称又は非対称とすることができる。クライアントデバイスを接続するための最適なパスを見つけるように構成されたInteractive Connectivity Establishment(ICE)と呼ばれるフレームワークは、対称又は非対称のNATが必要かどうかを判定することができる。対称NATは、IPアドレスをプライベートからパブリックに又はその逆に変換するジョブだけでなく、ポートを変換するジョブも行う。他方では、非対称のNATは、STUNサーバを使用して、クライアントが接続の確立に用いられ得るパブリックIPアドレス及び背後にあるNATのタイプを検出することを可能にする。多くの場合、STUNは、接続のセットアップ中にのみ用いることができ、そのセッションが確立されると、クライアントデバイス間でデータフローを開始することができる。
TURNは、対称NATの場合に使用することができ、処理された及び/又は未処理のデータがクライアントデバイス間でリレーされている間、接続が確立された後もメディアパスに残り得る。
図6Aは、クライアントデバイスA、クラウドサーバ102、及びクライアントデバイスBを備えるクライアントサーバ側304を示す。図6Aでは、クライアントデバイスAは、処理されるデータの送信側であり、クライアントデバイスBは、データの受信側である。複数の画像処理タスクが、クライアントデバイスA、クラウドサーバ102、及び/又はクライアントデバイスBのいずれによって行われるかに基づいて描画及び分類され、したがって、クライアントデバイスA処理602、サーバ画像処理604、及びクライアントデバイスB処理606として分類されている。
画像処理タスクは、背景の削除608、さらなる処理又は改善610、及び仮想環境への挿入及び組み合わせ612を含む。図6B及び図6Cから、また図7Bからも明らかとなるように、本明細書に示される3つの画像処理タスクの組み合わせは、ユーザグラフィック表現の生成、改善、及び仮想環境への挿入/組み合わせに用いられ得る。さらに、簡単にするために、図6B~図6C及び図7B~図7Cでは、背景の削除608は「BG」608として示され、さらなる処理又は改善610は「++」610として示され、仮想環境への挿入及び組み合わせ612は「3D」612として示されている。
いくつかの実施形態では、ユーザグラフィック表現を仮想環境に挿入して組み合わせることは、ユーザグラフィック表現の前に、例えば、背景が削除されたビデオ、又は背景が削除されていないビデオ、又はユーザ3D仮想カットアウト、又はユーザリアルタイム3D仮想カットアウトの前に仮想的に配置され位置合わせされる1つ又は複数の仮想カメラを生成することを含む。一実施形態では、1つ又は複数の仮想カメラは、目の高さから外側に向けることができる。別の実施形態では、2つ(片目につき1つ)の仮想カメラは、両目の高さから外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の頭部の位置の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現の中心から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、セルフ・ビューイングパースペクティブにあるとき、ユーザグラフィック表現の前に、例えば、ユーザグラフィック表現の頭部の高さで、ユーザグラフィック表現に向けて配置される場合がある。1つ又は複数の仮想カメラは、少なくとも、コンピュータビジョンを使用して、取り込んだユーザのビューイングパースペクティブデータを仮想環境内のユーザグラフィック表現のビューイングパースペクティブと関連付けることによって作成される。1つ又は複数の仮想カメラは、ユーザの目と頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することによって自動的に更新され、また、ユーザによって選択されたビューイングパースペクティブに応じてユーザが手動で変更することもできる。
画像処理の組み合わせと、クライアントデバイスA処理602、サーバ画像処理604、及びクライアントデバイスB処理606の対応する使用状況レベルは、処理するデータの量、スムーズなユーザ体験を維持するために許される待ち時間、所望のサービス品質(QOS)、必要なサービスなどに依存する。
図6Bは、画像処理の組み合わせ1~4を示す。
画像処理の組み合わせ1において、クライアントデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現を、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610のために少なくとも1つのクラウドサーバ102に送信する。少なくとも1つのクラウドサーバは、背景が削除された強化されたユーザグラフィック表現をクライアントデバイスBに送信し、クライアントデバイスBは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
画像処理の組み合わせ2において、クライアントデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、少なくとも1つのクラウドサーバ102に送信する。少なくとも1つのクラウドサーバ102は、背景が削除された強化されたユーザグラフィック表現をクライアントデバイスBに送信し、クライアントデバイスBは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
画像処理の組み合わせ3において、クライアントデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。次いで、クライアントデバイスAは、仮想環境に挿入されて組み合わされた背景が削除された強化されたユーザグラフィック表現を、クライアントデバイスBにリレーするためにクラウドサーバに送信する。
画像処理の組み合わせ4において、クライアントデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現を、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行うために少なくとも1つのクラウドサーバ102に送信する。次いで、少なくとも1つのクラウドサーバは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせて、クライアントデバイスBに送信する。
図6Cは、画像処理の組み合わせ5~8を示す。
画像処理の組み合わせ5において、クライアントデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現を、クライアントデバイスBにリレーするために少なくとも1つのクラウドサーバ102に送信する。クライアントデバイスBは、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
画像処理の組み合わせ6において、クライアントデバイスAは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータを少なくとも1つのクラウドサーバ102に送信し、少なくとも1つのクラウドサーバ102は、背景の削除608を含むユーザグラフィック表現の生成を行い、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、背景が削除された強化されたユーザグラフィック表現をクライアントデバイスBに送信する。クライアントデバイスBは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
画像処理の組み合わせ7において、クライアントデバイスは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータを少なくとも1つのクラウドサーバ102に送信する。少なくとも1つのクラウドサーバ102は、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせて、クライアントデバイスBに送信する。
画像処理の組み合わせ8において、クライアントデバイスAは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、未処理のデータをクライアントデバイスBにリレーするために少なくとも1つのクラウドサーバ102に送信する。クライアントデバイスBは、該データを使用して、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。理解されるように、いくつかの実施形態では、少なくとも1つのクラウドサーバ102は、中間サーバであり、これは、サーバがクライアントデバイス間のデータの交換を容易にする及び/又は最適化するために中間サーバトポロジーを使用することを意味する。
このような実施形態では、少なくとも1つのクラウドサーバは、中間サーバであり、これは、サーバがクライアントデバイス間のデータの交換を容易にする及び/又は最適化するために用いられることを意味する。このような実施形態では、少なくとも1つのクラウドサーバは、ルータトポロジー(例えば、SFU、SAMS、マルチメディアサーバルータなど)、又はメディア処理(例えば、デコード、結合、改善、ミキシング、強化、拡張、コンピューティング、操作、又はエンコーディングを含むタスクを行う)、及び転送サーバトポロジー(例えば、限定はされないが、マルチポイントコントロールユニット、クラウドメディアミキサ、クラウド3Dレンダラー)、又は他のサーバトポロジーとして、着信マルチメディアストリームを管理、分析、及び最適化し、発信ストリームの転送を管理、評価、最適化することができる。
中間サーバがSAMSであるこのような実施形態では、このようなメディアサーバは、送信クライアントデバイスの着信データ(例えば、メタデータ、優先度データ、データクラス、空間構造データ、3次元位置、向き、又は移動情報、画像、メディア、又はスケーラブルなビデオコーデックベースのビデオ)を管理、分析、及び処理し、このような分析では、発信データストリームの受信クライアントデバイスへの転送を管理又は最適化する。これは、特定の受信クライアントデバイスユーザの空間的3次元の向き、距離、及び1つ又は複数のユーザクライアントデバイスを受信するための最適な帯域幅及びコンピューティングリソース使用率を実現するこのような着信データに対する優先度の関係性などの1つ又は複数の因子に基づいて、時間(例えば、様々なフレームレート)、空間(例えば、異なる画像サイズ)、品質(例えば、異なる圧縮又はエンコードに基づく品質)、及び色(例えば、色の解像度及び範囲)について、メディアを変更、アップスケーリング、又はダウンスケーリングすることを含み得る。
中間サーバトポロジーは、例えば、図6A~図6Cのように少なくとも1つのクラウドサーバ102がクライアントデバイスA及びB間で処理している画像処理の組み合わせ1~8に適している場合がある。
図7A~図7Cは、通信及び処理がクライアントサーバ側を通じて行われる場合と区別するためにピアデバイスA~Bとして図7A~図7Bに示される対応するクライアントデバイスによってP2P側306で行われる複数の画像処理の組み合わせの概略図である。P2P側306は、例えば、図3に示されるようなハイブリッドシステムアーキテクチャ300などのハイブリッドシステムアーキテクチャの一部であり得る。
図7Aは、ピアデバイスA及びピアデバイスBを備えるP2P側306を示し、この場合、ピアデバイスAは、処理されるデータの送信側であり、ピアデバイスBは、データの受信側である。複数の画像及びメディアの処理タスクが、ピアデバイスA又はピアデバイスBのいずれによって行われるかに基づいて描画及び分類され、したがって、ピアデバイスA処理702及びピアデバイスB処理704として分類される。画像及びメディアの処理タスクは、背景の削除608、さらなる処理又は改善610、及び仮想環境への挿入及び組み合わせ612を含み得るがこれらに限定されない。
図7Bは、画像処理の組み合わせ1~3を示す。
画像処理の組み合わせ1において、ピアデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対してさらなる処理又は改善610を行い、背景が削除された強化されたユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を、3次元座標を有する仮想環境に挿入して組み合わせる。次いで、ピアデバイスAは、仮想環境に挿入されて組み合わされた、背景が削除された強化されたユーザグラフィック表現をピアデバイスBに送信する。
画像処理の組み合わせ2において、ピアデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現をピアデバイスBに送信する。ピアデバイスBは、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、仮想環境に挿入して組み合わせる。
画像処理の組み合わせ3において、ピアデバイスAは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、エンコードされたデータをピアデバイスBに送信する。ピアデバイスBは、データをデコードし、該データを使用して、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
図7Cは、画像処理の組み合わせ4~6を示す。
図7Cの一実施形態では、少なくとも1つのクラウドサーバ102は、STUNサーバとして構成することができ、これにより、ピアデバイスは、ピアデバイス間のデータ接続及びデータ交換を確立するために用いられ得るそれらのパブリックIPアドレス及び背後にあるNATのタイプ、情報を検出することができる。図7Cの別の実施形態では、少なくとも1つのクラウドサーバ102は、シグナリング用に構成することができ、これは、ピアデバイスが互いに位置を特定して接続する、及び、少なくとも1つのクラウドサーバによって行われる通信コーディネーションを通じてデータを交換するために用いられ得る。
画像処理の組み合わせ4~6のすべてにおいて、少なくとも1つのクラウドサーバ102はピアデバイスA及びB間でサービスを提供しているので、少なくとも1つのクラウドサーバ102は、SAMS、SFU、MCU、又は他の機能サーバトポロジーを使用することができる。
画像処理の組み合わせ4において、ピアデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対してさらなる処理又は改善610を行い、背景が削除された強化されたユーザグラフィック表現を生成し、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。次いで、ピアデバイスAは、STUN又はシグナリングサーバとして作用する少なくとも1つのクラウドサーバを通じて、仮想環境に挿入されて組み合わされた、背景が削除された強化されたユーザグラフィック表現をピアデバイスBに送信する。
画像処理の組み合わせ5において、ピアデバイスAは、背景の削除608を含むユーザグラフィック表現を生成し、メディアルータサーバとして作用する少なくとも1つのクラウドサーバを通じて、背景が削除されたユーザグラフィック表現をピアデバイスBに送信する。ピアデバイスBは、背景が削除されたユーザグラフィック表現に対して、背景が削除された強化されたユーザグラフィック表現を生成するさらなる処理又は改善610を行い、クライアントデバイスBは、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
画像処理の組み合わせ6において、ピアデバイスAは、少なくとも1つのカメラから受信したカメラライブデータフィードを送信し、STUN又はシグナリングサーバとして作用する少なくとも1つのクラウドサーバを通じて、未処理のデータをピアデバイスBに送信する。ピアデバイスBは、該データを使用して、背景の削除608を含むユーザグラフィック表現を生成し、背景が削除されたユーザグラフィック表現に対してさらなる処理又は改善610を行い、背景が削除された強化されたユーザグラフィック表現を生成し、その後、背景が削除された強化されたユーザグラフィック表現を仮想環境に挿入して組み合わせる。
図8は、本開示の実施形態で用いられ得るユーザグラフィック表現ベースのユーザ認証システム800を示す。例えば、ユーザグラフィック表現ベースのユーザ認証システム800は、図1及び図2Aの仮想環境プラットフォーム108などの仮想環境プラットフォームへのアクセスを許可することができるユーザアカウントにアクセスするために用いることができる。
ユーザグラフィック表現ベースのユーザ認証システム800は、少なくとも1つのプロセッサ804と、ユーザアカウント810及び1つ又は複数の対応するユーザグラフィック表現812に関連付けられたユーザデータを格納するユーザデータベース808を含むデータ及び命令を格納するメモリ806とを備える1つ又は複数のクラウドサーバコンピュータ802を備える。ユーザグラフィック表現ベースのユーザ認証システム800は、ユーザアカウント810に関連付けられたデータを格納するデータベース808に接続された顔スキャン及び認証モジュール814をさらに備える。1つ又は複数のクラウドサーバコンピュータ802は、顔スキャン及び認証モジュール814を通じてユーザの顔スキャンを行うことによってユーザを認証するように構成される。顔スキャンは、クライアントデバイス822から受信したカメラデータから顔特徴データを抽出し、抽出した顔特徴データをユーザデータベース808内のユーザグラフィック表現との一致についてチェックすることを含む。
図8に示された例では、システム800はさらに、ユーザアカウント810へのアクセスを要求する少なくとも1つのクライアントデバイス822のユーザ820から画像データ818を得るように構成された少なくとも1つのカメラ816を含む。少なくとも1つのカメラ816は、カメラ816によって取り込まれたデータをさらなる処理のために1つ又は複数のクラウドサーバコンピュータ802に送信するように構成された少なくとも1つのクライアントデバイス822に接続される。代替的に、カメラ816は、1つ又は複数のクラウドサーバコンピュータ802に直接接続することができる。1つ又は複数のクラウドサーバコンピュータ802は、顔スキャン及び認証モジュール814を通じてユーザの顔スキャンを行い、既存のユーザグラフィック表現との一致についてユーザデータベース808をチェックし、ユーザアカウント810が確認され、利用可能である場合、ユーザアカウント810へのアクセスとともに対応するユーザグラフィック表現812をユーザに提供することによって、ユーザを認証するように構成される。代替的に、ユーザアカウント810が利用可能でない場合、1つ又は複数のクラウドサーバコンピュータ802は、ライブデータフィードから得られたデータ818から、ユーザデータベース808に格納される新しいユーザアカウント810とともに、新しいユーザグラフィック表現812を生成することによって、ユーザを認証するように構成される。
ユーザアカウント810は、例えば、仮想環境プラットフォーム、又は任意の対話型アプリケーション、ゲーム、電子メールアカウント、大学プロフィールアカウント、仕事アカウントなどの任意の他のアプリケーション(例えば、環境プラットフォームにリンクされ得るアプリケーション)にアクセスするために使用され得る。本開示のグラフィック表現ベースのユーザ認証システム800は、例えば、ユーザグラフィック表現812を生成する又はユーザデータベース808から既存のユーザグラフィック表現812を取得するステップが与えられると、標準的なカメラベースの顔検出認証システムよりも高い利便性及びセキュリティレベルを提供する。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、一致するユーザグラフィック表現の日付をチェックし、一致するユーザグラフィック表現の更新が必要であるかどうかを判定するように構成される。一実施形態では、ユーザアカウント810が利用可能である場合、1つ又は複数のクラウドサーバコンピュータ802が利用可能なユーザグラフィック表現812の日付をチェックすることに応答して、1つ又は複数のクラウドサーバコンピュータ802は、対応する閾値又はセキュリティ要件と比較することによって、既存のユーザグラフィック表現812の更新が必要であるかどうかを判定する。例えば、システムセキュリティの更新があった場合、すべてのユーザグラフィック表現又は少なくとも指定された日付よりも前に作成されたユーザグラフィック表現を更新する必要がある可能性がある。ユーザグラフィック表現812が必要とされる場合、1つ又は複数のクラウドサーバコンピュータ802は、対応するクライアントデバイス822に対するユーザグラフィック表現の更新要求を生成する。ユーザ820が要求を承認する場合、1つ又は複数のクラウドサーバコンピュータ802又はクライアントデバイス822は、ライブカメラフィードからのデータ818に基づいてユーザグラフィック表現812を生成する。更新が必要とされない場合、1つ又は複数のクラウドサーバコンピュータ802は、認証後にユーザデータベース808から既存のユーザグラフィック表現812を取得する。
いくつかの実施形態では、ユーザグラフィック表現812は、2次元又は3次元の仮想環境に挿入されるか、又は仮想環境にリンクした第三者ソースに挿入され、2次元又は3次元の仮想環境と組み合わされる。例えば、ユーザグラフィック表現812は、本開示のシステムと統合又は結合された第三者アプリケーション又はウェブサイトの画面上にオーバーレイすることによって仮想環境にリンクした第三者ソースに挿入され得る。
一例では、第三者ソースの画面上でのユーザグラフィック表現812のオーバーレイは、仮想環境にリンクされた2Dウェブサイト又はアプリケーションの上になされる。例えば、ショッピングウェブサイトに一緒に行く2人以上の友人が、ウェブサイトのコンテンツを探索及び/又は相互作用するために、自分のユーザグラフィック表現をショッピングウェブサイト上にオーバーレイすることができる。別の例では、第三者ソースの画面上でのユーザグラフィック表現812のオーバーレイは、仮想環境にリンクされた3Dゲームセッションの上になされる。例えば、ユーザは、他のチームメンバーのユーザグラフィック表現812とともにe-スポーツゲームセッションの上にオーバーレイすることができる自分のユーザグラフィック表現812を通じて、仮想環境にリンクされたe-スポーツゲームセッションにアクセスすることができる。これらの例では、このようなユーザグラフィック表現812のオーバーレイは、2Dウェブサイトの訪問中又は3Dゲームセッションの体験中のすべてのユーザの表現及び通信のコヒーレントなマルチキャストビューを可能にし得る。
いくつかの実施形態では、ユーザグラフィック表現812の生成プロセスは、ユーザアカウント810へのユーザ820のアクセスとは非同期的に行われる。例えば、顔スキャンを行った後で、ユーザグラフィック表現ベースの認証システム800が、ユーザ820が既に認証されていると判定する場合、ユーザグラフィック表現ベースの認証システム800は、準備が出来次第、ユーザ812に提供し、仮想環境に挿入して組み合わせるために、新しいユーザグラフィック表現812の生成中にユーザ820がユーザアカウント810にアクセスすることを可能にし得る。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータ802はさらに、個人識別番号(PIN)、又はユーザ名及びパスワード、又はカメラ認証とPIN又はユーザ名及びパスワードとの組み合わせを含むログイン認証資格証明書を通じてユーザ802を認証する。
いくつかの実施形態では、ユーザグラフィック表現ベースの認証システム800の認証は、或るクライアントデバイス822から別のクライアントデバイスに送信された招待リンク又はディープリンクのアクティブ化に応答してトリガされる。招待リンク又はディープリンクをクリックすることは、少なくとも1つのクラウドサーバコンピュータ802がユーザ認証を要求することをトリガする。例えば、招待リンク又はディープリンクは、電話、電話会議、又はビデオゲームセッションの招待のためのものであり、招待されたユーザは、ユーザグラフィック表現ベースの認証システム800を通じて認証され得る。
別の実施形態では、顔スキャンは、頭部の動きパターンを実行するようにユーザをガイドし、頭部の動きパターンに基づいて3D顔データを抽出することを含む3D認証を使用する。これは、頭部の動きパターンを実行する、例えば、1つ又は複数の頭部ジェスチャーを実行する、頭部を横に又は縦に傾ける又は円を描くように回転させる、ユーザにより生成されたジェスチャーパターン、又は特定の頭部の動きパターン、又はこれらの組み合わせを実行するようにユーザをガイドすることによって3D認証を実施する少なくとも1つのサーバコンピュータに格納されたアプリケーション命令を使用して行うことができる。3D認証は、1つのビュー又は画像を比較及び分析するだけではなく、カメラのライブビデオデータフィードから取得したデータからさらなる特徴を認識する。この3D認証の実施形態では、顔スキャンプロセスは、頭部の動きパターン、顔のボリューム、高さ、顔特徴の深さ、顔の傷、タトゥ、目の色、顔の皮膚パラメータ(例えば、皮膚の色、皺、毛穴構造など)、反射率パラメータ、さらに、例えば、他のタイプの顔検出システムの場合のように、顔トポロジー上のこのような特徴の位置だけ、を含む顔データを含み得るデータからさらなる特徴を認識することができる。したがって、このような顔データの取り込みは、現実的なユーザグラフィック表現の生成に役立つ可能性がある現実的な顔の取り込みを増加させることができる。3D認証を用いる顔スキャンは、高解像度3Dカメラ、深度カメラ(例えば、LIDAR)、ライトフィールドカメラなどを使用して行われ得る。顔スキャンプロセス及び3D認証は、ディープニューラルネットワーク、畳み込みニューラルネットワーク、及び他の深層学習技術を使用して、顔データを使用することによりユーザの認証を取得、処理、及び評価することができる。
図9は、仮想環境110が仮想オフィスである場合の、ユーザグラフィック表現120を通じた仮想環境110のサードパーソン・ビューイングパースペクティブ900の概略図である。
仮想オフィスは、1つ又は複数のオフィスデスク902、オフィスチェア904、オフィスコンピュータ906、コンテンツ910を投影するための投影面908、及び自分のクライアントデバイスを通じて仮想環境110にアクセスする対応するユーザを表す複数のユーザグラフィック表現120を備える。
ユーザグラフィック表現120は、最初はユーザ3D仮想カットアウトであり、招待の承認プロセスの後に、カメラから得られたリアルタイムの2D又は3Dライブビデオストリームデータフィードに基づいて生成された背景が削除されたユーザリアルタイムビデオストリームを含むユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオに移行する。プロセスは、図4を参照して説明したようにライブセッション内の複数の相互作用を可能にする、図5を参照して説明したように通信チャネルを開くことを含み得る。例えば、ユーザは、最初にオフィスチェア904に座りながら対応するオフィスコンピュータ906で作業しており、これは実生活でユーザによって行われる実際のアクションを表すことができる。他のユーザは、ユーザが不在、ビジー、対応可能、オフライン、電話会議中、又は会議中のいずれかであるなどの現在のユーザステータスを(例えば、図4のリモートセンシング414を通じて)見ることができる。ユーザが対応可能である場合、別のユーザグラフィック表現が当該ユーザに接近し、会話に参加するための招待を送信することができる。両方のユーザは、例えば、仮想オフィスのプライベート会議室移動し、複数の相互作用を可能にするライブセッションを開始することを決定することができる。ユーザはまた、投影面908上に(例えば、画面共有を通じて)所望のコンテンツを投影することができる。
いくつかの実施形態では、仮想オフィスは、仮想リソースを含む仮想コンピュータをさらに備え、仮想リソースは、クライアントデバイスを通じてアクセスされる1つ又は複数のクラウドコンピュータリソースからのものであり、管理ツールで前記仮想コンピュータリソースに割り当てられる。仮想コンピュータは、オフィスコンピュータ906に関連付けられ得る。しかしながら、仮想コンピュータはまた、パーソナルホームコンピュータ、又はクラウドコンピュータベースの仮想コンピューティングリソースにアクセスすることができるあらゆる他の場所からのコンピュータに関連付けられ得る。リソースは、種々のタスクを行うために必要とされるメモリ、ネットワーク、及び処理能力を含み得る。さらに、オフィススペースの例では、仮想オフィスコンピュータ906に関連付けられた仮想コンピュータは、次に、ユーザの実際のオフィスコンピュータに結合することができ、ゆえに、例えば、ユーザがこのような仮想コンピュータにログインする際に物理的オフィス又は物理的コンピュータを有する任意の他のスペースにある実際のオフィスコンピュータから、仮想オフィスコンピュータ906に格納されたデータを利用することができる。仮想オフィスコンピュータ906に関連付けられたすべての仮想コンピュータを含む仮想インフラストラクチャは、排他的管理者権限(例えば、仮想環境110を使用する組織のITチームに提供される)に基づく管理者オプションを使用することによって、仮想環境プラットフォームを通じて管理することができる。したがって、本開示の仮想環境プラットフォームは、仮想オフィス管理を可能にし、典型的な仮想会議及び会議アプリケーションの可能性を広げ、コラボレーション及び相互作用の臨場感を高め、コラボレーションが行われる方法を合理化する複数のオプションを提供する。
図10A~図10Bは、一実施形態に係る、仮想環境が仮想教室1000である場合の、対応するユーザグラフィック表現を通じて見た仮想環境の概略図である。図10A~図10Bでの生徒及び教師のユーザグラフィック表現は、ユーザがアップロードした又は第三者が提供した写真から構築されたユーザ3D仮想カットアウト、又はカメラから取得したリアルタイムの2D又は3Dライブビデオストリームデータフィードに基づいて生成された背景が削除されたユーザリアルタイム3D仮想カットアウト、又は背景が削除されたビデオ、又は背景が削除されていないビデオのいずれかであり得る。
図10Aでは、複数の生徒1002のユーザグラフィック表現が、教師1004のユーザグラフィック表現によってリモートで提供されるクラス授業に出席している。教師1004は、仮想教室ホワイトボードなどの1つ又は複数の投影面1008上にクラスコンテンツ1006を投影することができる。仮想教室1000はさらに、ユーザが学習するためにサポートされ得る複数の仮想教室デスク1010を備えることができる。生徒1002には、図4を参照して開示されたように、状況に応じて適宜、挙手、画面共有(例えば、投影面1008上)、特定のコンテンツへのレーザーポインティングなどの複数の相互作用オプションを提供することができる。図10Aでは、教師1004のユーザグラフィック表現が投影面上にグラフィカルに投影されている。
図10Bは、図10Aと同様の実施形態を示しており、違いは、教師1004のユーザグラフィック表現が仮想デスク1012の後ろに座っていて、コンテンツ1006のみが仮想教室ホワイトボード投影面1008上で共有又は投影されていることである。教師1004は生徒1002と同じ仮想空間を共有し、教室1000内を動き回ることができるので、生徒1002及び教師1004にとってより現実的でインタラクティブな体験が生み出される。
図11は、一実施形態に係る、複数の仮想カメラ位置1100の概略図である。
図11では、2つのユーザグラフィック表現1102、ユーザ3D仮想カットアウト1104、及びユーザリアルタイム3D仮想カットアウト1106は、1つ又は複数の仮想カメラ用の1つ又は複数の仮想カメラ位置1100を有し、各仮想カメラ位置は、ユーザグラフィック表現のビューイングパースペクティブを生成する、視線方向、角度、及び視野を備える。
一実施形態では、1つ又は複数の仮想カメラは、目の高さ1108にあり、ユーザグラフィック表現1102の目の高さから外側を向くように配置される。別の実施形態では、2つ(片目につき1つ)の仮想カメラは、ユーザグラフィック表現1102の両目の高さ1110から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現1102の頭部の位置の中心1112から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、ユーザグラフィック表現1102の中心1114から外側に向けることができる。さらに別の実施形態では、1つ又は複数の仮想カメラは、セルフ・ビューイングパースペクティブ1116にあるとき、ユーザグラフィック表現1102の前に、例えば、ユーザグラフィック表現1102の頭部の高さにあり、ユーザグラフィック表現1102に向けて配置することができる。1つ又は複数の仮想カメラは、図6A~図7Cを参照して説明したように、仮想環境にユーザグラフィック表現を挿入して組み合わせている間に作成することができる。
一実施形態では、カメラによって取り込まれるユーザのビューイングパースペクティブは、ユーザグラフィック表現のビューイングパースペクティブと、仮想カメラを操作するコンピュータビジョンを使用する関連する仮想カメラに関連付けられる。さらに、仮想カメラは、例えば、ユーザの目と頭部の傾きデータ、又は頭部の回転データ、又はこれらの組み合わせを追跡及び分析することによって自動的に更新され得る。
図12は、仮想環境内から仮想ブロードキャストするためのシステム1200の概略図である。
システム1200は、1つ又は複数のサーバコンピュータを含み得る。図12に示された例示的なシステム1200は、少なくとも1つのプロセッサ1204と、クライアントデバイス1210間のデータ交換を管理するデータ交換管理モジュール1208を実装するデータ及び命令を含むメモリ1206とを備える、少なくとも1つのメディアサーバコンピュータ1202を備える。システム1200は、少なくとも1つのメディアサーバコンピュータ1202に接続される、少なくとも1つの仮想環境1212をさらに備え、少なくとも1つのメディアサーバコンピュータ1202は、少なくとも1つの仮想環境1212内に配置され、少なくとも1つの仮想環境1212内からのマルチメディアストリームを取り込むように構成された、仮想ブロードキャストカメラ1214を備える。少なくとも1つの仮想環境1212は、少なくとも1つのメディアサーバコンピュータ1202にネットワークを介して接続される少なくとも1つの専用サーバコンピュータによってホストされるか、又はピア・ツー・ピアインフラストラクチャでホストされ、少なくとも1つのメディアサーバコンピュータ1202を通じてリレーされ得る。マルチメディアストリームは、少なくとも1つのクライアントデバイス1210にブロードキャストするために少なくとも1つのメディアサーバコンピュータ1202に送信される。システム1200は、少なくとも1つのクライアントデバイス1210のユーザ1218からライブフィードデータを取得し、少なくとも1つのクライアントデバイス1210を介してユーザからのライブフィードデータを少なくとも1つのメディアコンピュータ1202に送信する、少なくとも1つのカメラ1216をさらに備える。少なくとも1つのメディアコンピュータ1202が受信するライブフィードデータは、図6A~図7Cを参照して開示される複数の画像処理の組み合わせを通じて生成され得る。
少なくとも1つの仮想ブロードキャストカメラ1214は、少なくとも1つのメディアサーバコンピュータ1202からのデータ交換管理に基づいて対応するマルチメディアストリームを受信クライアントデバイス1210にブロードキャストするために、マルチメディアストリームを少なくとも1つのメディアサーバコンピュータ1202に送信する。マルチメディアストリームは、対応するディスプレイを通じて、少なくとも1つのクライアントデバイス1210のユーザ1218の対応するユーザグラフィック表現1222に表示される。データ交換管理モジュール1208によるクライアントデバイス1210間のデータ交換管理は、着信マルチメディアストリームを分析し、発信マルチメディアストリームの転送を評価することを含む。
いくつかの実施形態では、少なくとも1つのメディアサーバコンピュータ1202は、発信マルチメディアストリームを転送するとき、Selective Forwarding Unit(SFU)、Traversal Using Relay NAT(TURN)、Spatially Analyzed Media Server (SAMS)、又は他の適切なマルチメディアサーバルーティングトポロジー、又はメディア処理及び転送サーバトポロジー、又は他の適切なサーバトポロジーを含む、ルーティングトポロジーを使用する。さらに別の実施形態では、少なくとも1つのメディアサーバコンピュータ1202は、メディア処理トポロジーを使用するとき、マルチメディアストリームを、デコード、結合、改善、ミキシング、強化、拡張、コンピューティング、操作、及びエンコードするように構成される。さらに別の実施形態では、少なくとも1つのメディアサーバコンピュータ1202は、転送サーバトポロジーを使用するとき、マルチポイントコントロールユニット(MCU)、クラウドメディアミキサ、及びクラウド3Dレンダラーのうちの1つ又は複数を使用する。
いくつかの実施形態では、着信マルチメディアストリームは、ユーザ優先度データ及び距離関係性データを含み、ユーザ優先度データは、着信マルチメディアストリームのソースにより近いユーザグラフィック表現へのより高い優先度スコアと、着信マルチメディアストリームのソースからより遠いユーザグラフィック表現へのより低い優先度スコアを含む。一実施形態では、少なくとも1つのクライアントデバイス1210及び/又はブロードキャストカメラ1214によって少なくとも1つのメディアサーバに送信されるマルチメディアストリームは、ユーザ優先度、及び対応するユーザグラフィック表現1222とマルチメディアストリームとの間の距離関係性に関係するデータを含み、該データは、メタデータ、又は優先度データ、又はデータクラス、又は空間構造データ、又は3次元位置、又は向き又は移動情報、又は画像データ、又はメディアデータ、及びスケーラブルなビデオコーデックベースのビデオデータ、又はこれらの組み合わせを含む。さらに別の実施形態では、優先度データは、仮想マルチメディアストリームソース1224により近いユーザへのより高い優先度スコアと、仮想マルチメディアストリームソース1224からより遠いユーザへのより低い優先度スコアを含む。さらに別の実施形態では、発信マルチメディアストリームの転送は、ユーザ優先度データ及び距離関係性データに基づいている。一実施形態では、ユーザ優先度データ及び距離関係性データに基づいてメディアサーバによって実施される発信マルチメディアストリームの転送は、帯域幅の最適化と、1つ又は複数の受信クライアントデバイスのリソース使用率の計算を含む。
いくつかの実施形態では、少なくとも1つの仮想ブロードキャストカメラ1214は、少なくとも1つの仮想環境1212内でマルチメディアストリームをブロードキャストするように構成された仮想ブロードキャストカメラ1214として、少なくとも1つの仮想環境1212で仮想的に見られる。仮想ブロードキャストカメラ1214は、仮想マルチメディアストリームソース1224の近くに配置することができ、仮想環境1212内を動き回ることもできる。さらなる実施形態では、仮想ブロードキャストカメラ1214は、仮想環境にアクセスするクライアントデバイス1210を通じて管理することができ、仮想環境で更新されるカメラの視点を操作し、更新された視点を仮想ブロードキャストカメラ1214に関連する少なくとも1つのクライアントデバイスにブロードキャストするように構成され得る。
いくつかの実施形態では、仮想マルチメディアストリームソース1224は、パネル、スピーチ、会議、プレゼンテーション、ウェビナー、エンターテイメントショー、スポーツイベント、及びパフォーマンスのうちの1つ又は複数を含むライブ仮想イベントを含み、(例えば、対応するカメラ1216で録画されている状態で自分の家から)リモートで話す実際の話者の複数のユーザグラフィック表現が仮想環境1212内に配置される。
いくつかの実施形態では、マルチメディアストリームは、クライアント又はクラウドコンピュータでレンダリングされるウェブブラウザでリアルタイム3Dビューとして表示するか、又は適切なビデオプラットフォーム(例えば、YouTube(商標)ライブ、Twitter(商標)、Facebook(商標)ライブ、ズーム(商標)など)でライブ視聴するためにストリーミングすることができる。
図12に示される例では、ユーザA~Cは、対応するクライアントデバイスを通じて仮想環境1212にアクセスし、各ユーザA~Cは、対応するマルチメディアストリームを各ユーザA~Cに送信するカメラ1216を有し、これは、本開示の実施形態に関して説明されるようにユーザグラフィック表現A~Cの生成と仮想環境1212への挿入及び組み合わせに用いることができる。したがって、仮想環境1212において、各ユーザA~Cは、対応するユーザグラフィック表現A~Cを有する。少なくとも1つのクライアントデバイス1210を通じて少なくとも1つのカメラ1216によって送信されるマルチメディアストリーム、及び少なくとも1つのブロードキャストカメラ1214によって少なくとも1つのメディアサーバコンピュータ1202に送信されるマルチメディアストリームは、ユーザ優先度、及び対応するユーザグラフィック表現とマルチメディアストリームとの間の距離関係性に関係するデータを含む。このデータは、例えば、メタデータ、優先度データ、データクラス、空間構造データ、3次元位置、向き、又は移動情報、画像データ、メディアデータ、スケーラブルなビデオコーデックベースのビデオデータなどを含む。データは、着信マルチメディアストリームを分析及び最適化し、発信マルチメディアストリームの転送を評価及び最適化することを含む、クライアントデバイス1210間のデータ交換を管理するために、データ交換管理モジュール1208によって用いられ得る。
したがって、例えば、ユーザグラフィック表現Aは仮想環境1212において仮想マルチメディアストリームソース1224に近いので、発信マルチメディアストリームの転送は、例えば、ユーザグラフィック表現Aの方がユーザグラフィック表現B及びCに提供される解像度よも高い解像度の画像を含むように最適化することができる。マルチメディアストリームは、例えば、クライアントデバイス1210を介してユーザグラフィック表現1222を通じて、ユーザによって仮想環境1212内にファーストパーソンで表示することができる。いくつかの例では、マルチメディアストリームは、クライアント又はクラウドコンピュータでレンダリングされるウェブブラウザでリアルタイム3Dビューとして表示される。ユーザは、イベント(例えば、ウェビナー、会議、パネル、スピーチなど)のマルチメディアストリームを、クライアント又はクラウドコンピュータでレンダリングされるウェブブラウザでリアルタイム3Dビューとして視聴することができ、又は適切なビデオプラットフォーム及び/又はソーシャルメディアでライブ視聴するためにストリーミングすることができる。
図13は、仮想環境内でアプリケーションを配信するためのシステム1300の概略図である。
システム1300は、少なくとも1つのプロセッサ1304と、アプリケーションモジュール1310にリンクされた少なくとも1つの仮想環境1308を実装するデータ及び命令を備えるメモリ1306と、を含む少なくとも1つのクラウドサーバコンピュータ1302を備える。アプリケーションモジュール1310は、1つ又は複数のインストールされるアプリケーション1312と、対応するマルチユーザ相互作用のためのアプリケーションルール1314を備える。クライアントデバイス1318を通じた仮想環境ホスト1316による選択に応答して、1つ又は複数のインストールされるアプリケーション1312が、仮想環境1308のセッション中に表示及びアクティブ化され、仮想環境1308内の仮想環境ホストユーザグラフィック表現1320及び任意の参加者ユーザグラフィック表現1322が対応するクライアントデバイス1318を通じて1つ又は複数のインストールされるアプリケーション1312と相互作用することが可能になる。少なくとも1つのクラウドサーバコンピュータ1302は、アプリケーションモジュール1310でのマルチユーザ相互作用のためのアプリケーションルール1314に従って、1つ又は複数のインストールされるアプリケーション1312との受信したユーザ相互作用を管理及び処理する。少なくとも1つのクラウドサーバコンピュータ1302は、処理された相互作用を適宜各クライアントデバイス1318にさらに転送して仮想環境1308でのマルチユーザセッションを確立し、マルチユーザ相互作用アプリケーションルール1314に従って共有体験を可能にする。
いくつかの実施形態では、マルチユーザ相互作用アプリケーションルール1314は、ネットワークを通じて少なくとも1つのクラウドサーバコンピュータ1302に接続することができる1つ又は複数の別個のアプリケーションサーバに格納及び管理される。
いくつかの実施形態では、1つ又は複数のアプリケーションは、アプリケーションライブラリから入手可能なアプリケーションインストールパッケージからインストールされ、対応するアプリケーション・プログラミング・インターフェースを通じてアプリケーションサービスをプロビジョニングする。さらに別の実施形態では、アプリケーションライブラリは、コンテキストによりフィルタリングされる。一実施形態では、コンテキストフィルタリングは、特定のコンテキストに関連するアプリケーションのみを提供するように設計される。例えば、ホスト1316は、特定のコンテキスト(例えば、学習、エンターテイメント、スポーツ、読書、ショッピング、天気、仕事など)に関係するアプリケーションを探すためにアプリケーションライブラリ(例えば、アプリケーションストア)をコンテキストによりフィルタリングすることができ、アプリケーションモジュール1310内にインストールする1つの関心あるアプリケーションを選択する。さらに別の実施形態では、アプリケーションライブラリは、1つ又は複数の第三者サーバコンピュータでホストされるか、又は少なくとも1つのクラウドサーバコンピュータ1302でホストされる。
いくつかの実施形態では、1つ又は複数のインストールされるアプリケーションは、対応するクライアントデバイスにインストールされた仮想ディスプレイアプリケーションと共有され、それを通じて表示される。一実施形態では、インストール及びアクティブ化されると、1つ又は複数のインストールされるアプリケーション1312は、対応するクライアントデバイス1318にインストールされた仮想ディスプレイアプリケーション1324と共有され、それを通じて表示される。仮想ディスプレイアプリケーション1324は、アプリケーションライブラリから1つ又は複数のインストールされるアプリケーション1312を受信し、仮想環境1308での会議ホストユーザグラフィック表現1320及び他の参加者ユーザグラフィック表現1322にそれらの対応するクライアントデバイス1318を通じて表示するべく1つ又は複数の選択されたインストールされるアプリケーション1312を公開するように構成され得る。仮想ディスプレイアプリケーション1324は、インストールされるアプリケーション1312を受信及び表示するように構成され得る、或るタイプのオンライン又はインストールされるファイルビューアアプリケーションであり得る。
いくつかの実施形態では、アプリケーションモジュール1310は、インストールされるアプリケーション1312からのコンテンツを仮想環境でのユーザグラフィック表現1322に表示する、仮想環境内の2D画面又は3Dボリュームアプリケーションモジュールグラフィック表現1326として表される。さらなる実施形態では、仮想ディスプレイアプリケーション1324は、インストールされるアプリケーションからのコンテンツを仮想環境1308でのユーザグラフィック表現に表示する、2D画面又は3Dボリュームとして表される。
いくつかの実施形態では、1つ又は複数のアプリケーション1312は、マルチユーザセッションが行われる前に又は同時に、仮想環境1308内に直接インストールされる。他の実施形態では、1つ又は複数のアプリケーション1312は、マルチユーザセッションを開始する前に仮想環境セットアップツールの使用を通じてインストールされる。
いくつかの実施形態では、マルチユーザ相互作用のためのアプリケーションルールの一部は、同期相互作用、又は非同期相互作用、又はこれらの組み合わせを定義することができ、ユーザ相互作用と、1つ又は複数のアプリケーションのそれぞれの更新されるビューを適宜更新する。同期相互作用と非同期相互作用の両方は、マルチユーザ相互作用アプリケーションルール1314を通じて構成することができ、少なくとも1つのサーバコンピュータ1302による、又は少なくとも1つのインストールされるアプリケーション1312との個々のユーザ相互作用の処理専用の別個のサーバコンピュータによる並列処理を通じて可能となり得る。
例えば、ホスト1316が教師である場合、教師は、本の内容をユーザに表示するワークブックアプリケーションを選択することができる。教師は、ワークブックを編集することができ、生徒は、同期相互作用及びそれぞれの更新されたビューの使用を選択するとき、教師からの編集ありの、又は同期相互作用を選択するとき、教師からの編集なしの、同じワークブックを仮想ディスプレイアプリケーション1324を通じて見ることができる。別の例では、複数のスライドを有するプレゼンテーションファイルを含むプレゼンテーションアプリケーションにおいて、非同期相互作用は、各ユーザが個々のスライドを非同期的に見ることを可能にし得る。別の例では、教育アプリケーションの場合、生徒がテストを受けている間、心臓の解剖学的構造が提示され、この場合、生徒の相互作用は、生徒が行う相互作用を他の生徒が立ち会う及び観察するために同期している。別の例では、教師はホワイトボードに書き込むことができ、生徒はホワイトボードに書かれたテキストを仮想ディスプレイアプリケーションを通じて同期的に見ることができる。別の例では、ビデオプレーヤアプリケーションは、すべての生徒にビデオを同期して表示することができる。
いくつかの例示的な実施形態では、仮想環境1308は、教室、又はオフィススペース、又は会議室、又は応接室、又は劇場、又は映画館である。
図14は、一実施形態に係る、図13に示された仮想環境内でアプリケーションを配信するためのシステム1300に基づく仮想環境1308の概略図である。
仮想環境1308は、仮想環境1308のホスト1316によって選択された少なくとも1つのインストールされるアプリケーション1312を備えるアプリケーションモジュールグラフィック表現1326と、対応する仮想ディスプレイアプリケーション1324を通じてインストールされるアプリケーション1312を見る及び相互作用する2人のユーザA~Bを含む。理解されるように、ユーザAは、仮想ディスプレイアプリケーション1324を通じて本アプリケーションの特定のページ(例えば、ページ1)を見ることができ、これは、インストールされるアプリケーション1312の同期相互作用及び管理を表すアプリケーションモジュールグラフィック表現1326を通じてホスト1316によって選択されたものと同じであり得る。他方では、ユーザBは、仮想ディスプレイアプリケーション1324を通じたインストールされるアプリケーション1312の非同期相互作用及び管理を通じて、ホスト1316とユーザAの両方とは異なるページを見ることができる。
図15は、一実施形態に係る、仮想環境内で仮想コンピューティングリソースをプロビジョニングするためのシステム1500の概略図である。
システム1500は、少なくとも1つのプロセッサ1504と、少なくとも1つの仮想環境1508を実装するデータ及び命令を含むメモリ1506と、少なくとも1つの仮想環境1508に関連付けられた少なくとも1つの仮想コンピュータ1510を備える少なくとも1つのクラウドサーバコンピュータ1502を含む、1つ又は複数のサーバコンピュータを含むサーバコンピュータシステムを備える。少なくとも1つの仮想コンピュータ1510は、サーバコンピュータシステムから仮想コンピューティングリソースを受信する。一実施形態では、少なくとも1つの仮想コンピュータは、仮想環境1508での対応するグラフィック表現1512を有する。グラフィック表現1512は、ユーザと仮想コンピュータの相互作用を容易にすること及びユーザ体験の臨場感(例えば、ホームオフィス体験の場合)を高めることなどのさらなる利点を提供し得る。したがって、一実施形態では、少なくとも1つの仮想コンピュータは、仮想環境1508内に配置される少なくとも1つの対応する関連するグラフィック表現1512を備え、少なくとも1つの仮想コンピュータ1510は、少なくとも1つのクラウドサーバコンピュータ1502から仮想コンピューティングリソースを受信する。システム1500は、ネットワークを通じて少なくとも1つのサーバコンピュータ1510に接続する少なくとも1つのクライアントデバイス1514をさらに備える。少なくとも1つのクライアントデバイス1514が(例えば、対応するグラフィック表現と相互作用することによって)1つ又は複数の仮想コンピュータ1510にアクセスすることに応答して、少なくとも1つのクラウドサーバコンピュータ1502は、利用可能な仮想コンピューティングリソースの少なくとも1つの部分を少なくとも1つのクライアントデバイス1514にプロビジョニングする。
いくつかの実施形態では、仮想コンピューティングリソースは、対応するクライアントデバイス1514を通じて少なくとも1つの仮想環境1508内の仮想コンピュータの1つ又は複数のグラフィック表現1512にアクセスする(例えば、対話する)ユーザ1518のユーザグラフィック表現1516によってアクセスされ、これにより、対応するクライアントデバイス1514にプロビジョニングされる。
いくつかの実施形態では、仮想コンピュータのグラフィック表現1512は、ユーザグラフィック表現によるアクセスのために仮想環境内に空間的に配置される。一実施形態では、仮想環境1508の構成は、教育、会議、仕事、ショッピング、サービス、社交、及びエンターテイメントでそれぞれ使用するための仮想アイテム、家具、間取り図などの配置を含み得る、仮想環境のコンテキストテーマ1508と関連付けられる。さらに別の実施形態では、1つ又は複数の仮想コンピュータグラフィック表現は、1つ又は複数のユーザグラフィック表現1516によるアクセスのために仮想環境1508の構成内に配置される。例えば、仮想コンピュータは、仮想コンピュータに関連付けられているリソースを使用する能力を必要とする又はその恩恵を受ける可能性がある行為(仮想教室、実験室、又はオフィスでのプロジェクトでの作業など)に従事するときにユーザグラフィック表現1516がアクセスすることになる仮想ルームに配置され得る。
いくつかの実施形態では、サーバコンピュータシステムは、仮想環境にアクセスせずに少なくとも1つのクライアントデバイスにログインすることで少なくとも1つのクラウドサーバコンピュータにアクセスするユーザに応答して、仮想コンピューティングリソースの少なくとも1つの部分を少なくとも1つのクライアントデバイスにプロビジョニングするように構成される。例示的なシナリオでは、仮想コンピューティングリソースは、ネットワークを通じて少なくとも1つのクラウドサーバコンピュータ1502に接続するクライアントデバイス1514に物理的にログインすることによって少なくとも1つのクラウドサーバコンピュータ1502にアクセスするユーザ1518によってアクセスされ、仮想環境にアクセスせずにクライアントデバイス1514への仮想コンピューティングリソースのプロビジョニングをトリガする。例えば、ユーザ1518は、自宅のコンピュータからクラウドサーバコンピュータ1502にログインし、仮想コンピュータ1510にアクセスし、したがって、仮想コンピューティングリソースを受信することができる。別の例では、ユーザ1518は、自分の仕事用コンピュータからクラウドサーバコンピュータ1502にログインして、仮想コンピュータ1510にアクセスし、したがって、仮想コンピューティングリソースを受信することができる。
いくつかの実施形態では、仮想コンピューティングリソースの少なくとも1つの部分は、管理ツールでクライアントデバイスに割り当てられる。したがって、関連するすべての仮想コンピュータを含む仮想インフラストラクチャは、排他的管理者権限(例えば、仮想環境を使用する組織のITチームに提供される)に基づく管理者オプションを使用することによって管理され得る。
いくつかの実施形態では、仮想コンピューティングリソースのプロビジョニングは、格納されたユーザプロフィールに基づいて行われる。一実施形態では、仮想コンピューティングリソースの割り当ては、優先度データ、セキュリティデータ、QOS、帯域幅、メモリスペース、又は計算能力、又はこれらの組み合わせを含むユーザプロフィールに関連付けられ割り当てられたパラメータのうちの1つ又は複数を含む格納されたユーザプロフィールに基づいて行われる。例えば、自宅から仕事仮想コンピュータにアクセスするユーザは、プロフィールに関連付けられた特定の仮想コンピューティングリソースをユーザに提供するように構成された個人プロフィールを有し得る。
いくつかの実施形態では、各仮想コンピュータは、アプリケーションライブラリから入手可能なダウンロード可能なアプリケーションである。
図16は、一実施形態に係る、ユーザグラフィック表現間のアドホック仮想通信を可能にするシステム1600の概略図である。
システム1600は、少なくとも1つのプロセッサ1604と、仮想環境1608を実装するデータ及び命令を格納するメモリ1606とを備える、1つ又は複数のクラウドサーバコンピュータ1602を備える。仮想環境1608は、仮想環境1608での少なくとも1つの接近するユーザグラフィック表現及び少なくとも1つのターゲットユーザグラフィック表現がアドホック通信チャネルを開くことを可能にし、仮想環境1608内のユーザグラフィック表現間のアドホック通信チャネルを介してアドホック会話を可能にするように構成される。図16に示された例では、システムは、ネットワーク1612を介して1つ又は複数のクラウドサーバコンピュータ1602に接続され、対応するユーザグラフィック表現を通じて少なくとも1つの仮想環境にアクセスする、2つ以上のクライアントデバイス1610をさらに備える。仮想環境1608は、少なくとも1つの接近するユーザグラフィック表現1614及び少なくとも1つのターゲットユーザグラフィック表現1616が、対応するユーザ1620からアドホック通信チャネル1618を開くことを可能にし、仮想環境1608内のユーザグラフィック表現間のアドホック会話を可能にする。
いくつかの実施形態では、アドホック通信チャネル1618を開くことは、ユーザグラフィック表現間の距離、位置、及び向き、又は現在の対応可能性ステータス、プライバシー設定、又はアドホック通信のステータス構成、又はそれらの組み合わせに基づいて行われる。
いくつかの実施形態では、アドホック会話は、両方のユーザグラフィック表現エリアが存在する仮想環境1608内の場所で行われる。例えば、接近するユーザグラフィック表現1614が、ラウンジルーム又はオフィススペースの特定のエリアでターゲットユーザグラフィック表現1614と会う場合、アドホック通信が開かれて、両方のユーザが場所を変える必要なしにラウンジルーム又はオフィススペースの特定のエリア内で会話をすることが可能となる。さらに別の実施形態では、アドホック会話は、仮想環境での現在のビューイングパースペクティブを使用して行われる。上記の例では、アドホック通信が開かれて、ビューイングパースペクティブを変更せずに両方のユーザが会話をすることが可能となる。他の実施形態では、アドホック会話は、アドホック会話が行われる同じ又は別の接続された仮想環境内での、ビューイングパースペクティブ、場所、又はその組み合わせの随意的な変更を可能にする。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、アドホック通信が可能であることをシグナリングする仮想環境での現在の視覚的フィードバックを生成するように構成される。一実施形態では、ユーザグラフィック表現は、アドホック通信が可能であることをシグナリングする視覚的フィードバックを受信し、これにより、アドホック通信チャネルを開くことをトリガし、ユーザグラフィック表現間のアドホック会話の開始をシグナリングする。
いくつかの実施形態では、アドホック会話は、ユーザグラフィック表現から表示されるリアルタイム音声及びビデオを送信及び受信することを含む。
いくつかの実施形態では、接近するユーザグラフィック表現1614に対応するユーザは、アドホック通信チャネル1618を開く前に、ターゲットユーザグラフィック表現1616を選択及びクリックする。
いくつかの実施形態では、1つ又は複数のクラウドサーバコンピュータはさらに、招待の承諾に応答してアドホック通信チャネルを開くように構成される。例えば、接近するユーザグラフィック表現1614に対応するユーザはさらに、アドホック通信参加招待をターゲットユーザグラフィック表現1616に送信し、アドホック通信チャネル1618を開く前にターゲットユーザグラフィック表現1614から招待の承認を受信する。
いくつかの実施形態では、アドホック通信チャネル1618は、少なくとも1つのクラウドサーバコンピュータを通じて又はP2P通信チャネルとして可能になる。
図17は、一実施形態に係る、仮想環境での相互作用を可能にする方法1700の一実施形態を示す図である。
本開示に係る仮想環境での相互作用を可能にする方法1700は、ステップ1702及び1704で、少なくとも1つのプロセッサを備える1つ又は複数のクラウドサーバコンピュータのメモリ内に、少なくとも1つの仮想環境を含む仮想環境プラットフォームを提供することで開始する。
方法は、ステップ1706及び1708で見られるように、少なくとも1つのカメラから、クライアントデバイスのユーザからライブデータフィードを受信し、次いで、ライブデータフィードから、ユーザグラフィック表現を生成する。次いで、方法1700は、ステップ1710で見られるように、ユーザグラフィック表現を仮想環境の3次元座標に挿入する。
その後、ステップ1712で、方法は、ライブデータフィードから、仮想環境内のユーザグラフィック表現を更新する。最後に、ステップ1714で、方法は、仮想環境内に存在する対応するグラフィック表現を通じて少なくとも1つの仮想環境での相互作用から生成されたデータを処理し、ステップ1716で終了する。
図18は、一実施形態に係る、画像処理方法1800の一実施形態を示す図である。
方法1800は、ステップ1802及び1804で、画像処理機能を実装するデータ及び命令を少なくとも1つのクラウドサーバコンピュータのメモリに提供することで開始する。続いて、ステップ1806で、方法1800は、少なくとも1つのカメラから、少なくとも1つの対応するクライアントデバイスの少なくとも1人のユーザからのライブデータフィードを取得する。次いで、ステップ1808で、方法1800は、1つ又は複数のクラウドサーバコンピュータと少なくとも1つのクライアントデバイスの1つ又は複数の画像処理の組み合わせ(例えば、図6A~図7Cの画像処理の組み合わせ)によって、ユーザグラフィック表現を生成し、その後、ステップ1810でプロセスを終了する。1つ又は複数のクラウドサーバコンピュータと少なくとも1つのクライアントデバイスは、P2P側及びクライアントサーバ側を備える本開示からのハイブリッドシステムアーキテクチャ(例えば、図3のハイブリッドシステムアーキテクチャ300)を通じて相互作用し得る。
図19は、一実施形態に係る、ユーザグラフィック表現ベースのユーザ認証方法1900を示す図である。
方法1900は、ステップ1902及び1904で、1つ又は複数のクラウドサーバコンピュータのメモリに、ユーザアカウント及び対応するユーザグラフィック表現に関連付けられたユーザデータを格納するユーザデータベースと、ユーザデータベースに接続された顔スキャン及び認証モジュールを提供することで開始する。方法1900は、ステップ1906で、クライアントデバイスから、ユーザアカウントへのアクセス要求を受信することに続き、次いで、ステップ1908で、少なくとも1つのクライアントデバイス及び/又は1つ又は複数のクラウドサーバコンピュータに接続され得る少なくとも1つのカメラから受信した画像を使用することによって顔スキャン及び認証モジュールを通じて少なくとも1つのクライアントデバイスのユーザの顔スキャンを行う。続いて、チェック1910において、方法1900は、ユーザアカウントに関連付けられたユーザデータの一致についてユーザデータベースをチェックする。ユーザアカウントが利用可能である場合、方法1900は、ステップ1912で、ユーザアカウントへのアクセスとともに、対応するユーザグラフィック表現をユーザに提供する。NOの場合、ユーザアカウントが利用可能でない場合、方法1900は、続いて、ステップ1914で、データから、ユーザデータベースに格納される新しいユーザアカウント及びユーザアカウントへのアクセスとともに、新しいユーザグラフィック表現を生成する。プロセスはステップ1916で終了する。
図20は、一実施形態に係る、仮想環境内から仮想ブロードキャストするための方法2000のブロック図である。
方法2000は、ステップ2002で、少なくとも1つのメディアサーバのメモリ内に、クライアントデバイス間のデータ交換を管理するクライアントデバイスデータ交換管理モジュールを実装するデータ及び命令を提供することで開始する。続いて、方法2000は、ステップ2004で、少なくとも1つのメディアサーバに接続された少なくとも1つの仮想環境内に配置された仮想ブロードキャストカメラでマルチメディアストリームを取り込む。
続いて、ステップ2006で、方法2000は、マルチメディアストリームを少なくとも1つのクライアントデバイスにブロードキャストするべく少なくとも1つのメディアサーバに送信する。続いて、ステップ2008で、方法2000は、少なくとも1つのカメラから、少なくとも1つのクライアントデバイスを通じて少なくとも1つのクライアントデバイスのユーザからのライブフィードデータを取得する。
続いて、ステップ2010で、方法は、少なくとも1つの仮想環境内からの着信マルチメディアストリーム及びユーザからのライブフィードデータを分析及び最適化し、発信マルチメディアストリームの転送を評価及び最適化することを含む、データ交換管理を行う。最後に、ステップ2012で、方法2000は、データ交換管理に基づいて対応するマルチメディアストリームをクライアントデバイスにブロードキャストすることで終了し、この場合、マルチメディアストリームは、少なくとも1つのクライアントデバイスのユーザのユーザグラフィック表現に表示される。
図21は、一実施形態に係る、仮想環境内でアプリケーションを配信するための方法2100のブロック図である。
方法2100は、ステップ2102で、少なくとも1つのクラウドサーバコンピュータのメモリに、少なくとも1つの仮想環境と、1つ又は複数のインストールされるアプリケーション及び対応するマルチユーザ相互作用のためのアプリケーションルールを含むアプリケーションモジュールとを提供することで開始し、この場合、アプリケーションモジュールは仮想環境にリンクされ、仮想環境内に表示される。続いて、ステップ2104で、方法2100は、仮想環境ホストから選択命令を受信する。次いで、ステップ2106で、方法2100は、仮想環境のセッション中に1つ又は複数のインストールされるアプリケーションを表示及びアクティブ化し、仮想環境内の仮想環境ホストのユーザグラフィック表現と任意の参加者ユーザグラフィック表現が対応するクライアントデバイスを通じて相互作用することを可能にする。
続いて、ステップ2108で、方法2100は、1つ又は複数のインストールされるアプリケーションとのユーザ相互作用を受信する。その後、方法2100は、ステップ2110で見られるように、アプリケーションモジュールにあるマルチユーザ相互作用のためのアプリケーションルールに従って、1つ又は複数のインストールされるアプリケーションとのユーザ相互作用を管理及び処理する。最後に、方法2100は、ステップ2112で、アプリケーションルールに従って共有体験を可能にするマルチユーザセッションを確立するべく、それに応じて処理された相互作用を各クライアントデバイスに転送することで終了する。
図22は、一実施形態に係る、仮想環境内で仮想コンピューティングリソースをプロビジョニングするための方法2200のブロック図である。
方法2200は、ステップ2202で、少なくとも1つのクラウドサーバコンピュータのメモリに、少なくとも1つの仮想コンピュータと、仮想コンピュータを表す1つ又は複数のグラフィック表現を備える仮想環境を提供することで開始する。続いて、方法は、ステップ2204で、仮想コンピュータによって、少なくとも1つのクラウドサーバコンピュータから仮想コンピューティングリソースを受信する。次いで、ステップ2206で、方法は、少なくとも1つのクライアントデバイスから、1つ又は複数の仮想コンピュータへのアクセス要求を受信する。最後に、ステップ2208で、方法は、クライアントデバイスの需要に基づいて、利用可能な仮想コンピューティングリソースの一部を少なくとも1つのクライアントデバイスにプロビジョニングすることで終了する。
図23は、ユーザグラフィック表現間のアドホック仮想通信を可能にする方法2300のブロック図である。
方法2300は、ステップ2302で、少なくとも1つのプロセッサを備える1つ又は複数のクラウドサーバコンピュータのメモリ内に仮想環境を提供することで開始する。次いで、ステップ2304で、方法は、ネットワークを介して1つ又は複数のクラウドサーバコンピュータに接続され、対応するグラフィック表現を通じて少なくとも1つの仮想環境にアクセスする、2つ以上のクライアントデバイスを検出する。最後に、ステップ2306で、方法2300は、少なくとも1人のユーザグラフィック表現が別のユーザグラフィック表現に接近することに応答して、アドホック通信チャネルを開き、仮想環境でのユーザグラフィック表現間のアドホック会話を可能にすることで終了する。
1つ又は複数のコンピュータに本明細書に記載の方法のいずれかを行わせるように構成された命令を格納しているコンピュータ可読媒体も説明される。本明細書で用いられる場合の「コンピュータ可読媒体」という用語は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納することができる任意の方法又は技術で実装される揮発性及び不揮発性の取り外し可能及び取り外し不可能な媒体を含む。一般に、本明細書で説明されるコンピューティングデバイスの機能は、C、C++、COBOL、JAVA(商標)、PHP、Perl、Python、Ruby、HTML、CSS、JavaScript、VBScript、ASPX、C#などのMicrosoft.NET(商標)言語などのプログラミング言語で書くことができるハードウェア又はソフトウェア命令で具体化されたコンピューティングロジックで実装することができる。コンピューティングロジックは、実行可能プログラムにコンパイルするか、又は解釈されるプログラミング言語で書くことができる。一般に、本明細書に記載の機能は、より高い処理能力を提供するために複製する、他のモジュールとマージする、又はサブモジュールに分割することができる論理モジュールとして実装することができる。コンピューティングロジックは、任意のタイプのコンピュータ可読媒体(例えば、メモリ又は記憶媒体などの一時的でない媒体)又はコンピュータ記憶装置に格納し、1つ又は複数の汎用又は特殊用途プロセッサで実行することができ、したがって、本明細書に記載の機能を提供するように構成された特殊用途コンピューティングデバイスをもたらす。
特定の実施形態が説明され、添付図に示されているが、このような実施形態は、広範な発明を単に例示するものであって、限定するものではないことと、当該技術分野の当業者は他の様々な修正を思いつくことができるので、本発明は示され説明された特定の構成及び配置に限定されないことを理解されたい。したがって、説明は、限定ではなく例示とみなされるべきである。