JP2023530537A - ビデオストリームの解像度を向上させること - Google Patents

ビデオストリームの解像度を向上させること Download PDF

Info

Publication number
JP2023530537A
JP2023530537A JP2022548726A JP2022548726A JP2023530537A JP 2023530537 A JP2023530537 A JP 2023530537A JP 2022548726 A JP2022548726 A JP 2022548726A JP 2022548726 A JP2022548726 A JP 2022548726A JP 2023530537 A JP2023530537 A JP 2023530537A
Authority
JP
Japan
Prior art keywords
resolution
frame
image associated
image
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022548726A
Other languages
English (en)
Inventor
アントン エス. カプランヤン,
ミハイル オークネフ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of JP2023530537A publication Critical patent/JP2023530537A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • G06T3/4076Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution using the original low-resolution images to iteratively correct the high-resolution images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一実施形態では、方法が、ビデオのフレームに対応する第1の解像度の画像にアクセスすることと、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出することと、第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成することと、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成することと、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出することと、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整することとを含む。【選択図】図2

Description

本開示は、一般に画像処理に関し、詳細には、ビデオストリームの解像度を向上させることに関する。
本発明の実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連し得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
特定の実施形態では、コンピューティングデバイスが、より低い解像度において画像を処理し、機械学習モデルを使用してその画像をより高い解像度にアップサンプリングし得る。画像をレンダリングし、レンダリングされた画像を転送するコストは、レンダリングされた画像の解像度に依存し得る。そのようなコストを低減するために、コンピューティングデバイスは、より低い解像度において画像を処理し、ユーザに画像を表示する前に、機械学習モデルを使用して画像の解像度を増加させ得る。コンピューティングデバイスは、ビデオのフレームに対応する第1の解像度の(first-resolution)画像にアクセスし得る。コンピューティングデバイスは、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて第1の動きベクトルを算出し得、ここで、第1のフレームは、ビデオにおいて第2のフレームの前に来る。コンピューティングデバイスは、第1のフレームに関連する第2の解像度の(second-resolution)再構築された画像をワーピングするために、第1の動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成し得、ここで、第2の解像度が第1の解像度よりも高くなり得る。第2のフレームに関連する第2の解像度のワーピングされた画像は、算出された動きベクトルに基づく予測されたロケーションに位置するオブジェクトを備え得る。コンピューティングデバイスは、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成し得る。第2のフレームに関連する第2の解像度の中間画像を生成するために、コンピューティングデバイスは、複数のピクセルがブランクのままであるように、第2のフレームに関連する第1の解像度の画像のピクセルを、第2の解像度の中間画像のための第2の解像度の画像平面に一様に配置し得る。コンピューティングデバイスは、第2の解像度の画像平面中の複数のブランクピクセルを、非ブランク隣接ピクセルの補間値で充填し得る。コンピューティングデバイスは、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出し得る。コンピューティングデバイスは、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整し得る。
特定の実施形態では、機械学習モデルがトレーニングされ得る。トレーニングは、別のコンピューティングデバイスによって実施され得る。機械学習モデルのトレーニングプロセス中に、所定の損失関数を最小限に抑える調整パラメータを算出するために、機械学習モデルのトレーニング可能変数が調整され得る。トレーニング可能変数は、機械学習モデル内の重みとバイアスとを備え得る。コンピューティングデバイスは、第2のフレームに関連する第2の解像度の再構築された画像と第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の差を測定し得る。コンピューティングデバイスは、機械学習モデルのトレーニング可能変数の勾配を、第2のフレームに関連する第2の解像度の再構築された画像と第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の測定された差に基づいて算出し得る。コンピューティングデバイスは、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数を更新し得る。特定の実施形態では、コンピューティングデバイスは、第3のフレームに関連する第2の解像度のワーピングされた画像中の選択されたピクセルと第3のフレームに関連する第2の解像度のグランドトゥルース画像中の選択されたピクセルとの間の差を測定し得、ここで、第2のフレームは、ビデオのフレームシーケンスにおいて第3のフレームの前に位置し得る。第3のフレームに関連する第2の解像度のワーピングされた画像を生成するために、コンピューティングデバイスは、第2のフレームに関連する第2の解像度のグランドトゥルース画像と第3のフレームに関連する第2の解像度のグランドトゥルース画像とに基づいて、第2の動きベクトルを算出し得る。次いで、コンピューティングデバイスは、第2のフレームに関連する第2の解像度の再構築された画像をワーピングするために、第2の動きベクトルを使用することによって、第3のフレームに関連する第2の解像度のワーピングされた画像を生成し得る。選択されたピクセルが、第2のフレームに関連する第2の解像度のグランドトゥルース画像中のピクセルと、第3のフレームに関連する第2の解像度のグランドトゥルース画像中のピクセルとを比較することによって、強いオプティカルフロー対応をもつピクセルとして識別され得る。コンピューティングデバイスは、第3のフレームに関連する第2の解像度のワーピングされた画像中の選択されたピクセルと第3のフレームに関連する第2の解像度のグランドトゥルース画像中の選択されたピクセルとの間の測定された差に基づいて、機械学習モデルのトレーニング可能変数の勾配を算出し得る。コンピューティングデバイスは、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数を更新し得る。コンピューティングデバイスは、算出された勾配のいずれかにより、または算出された勾配の両方により、機械学習モデルをトレーニングし得る。
本開示のさらなる態様によれば、ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、ソフトウェアが、実行されたとき、ビデオのフレームに対応する第1の解像度の画像にアクセスすることと、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出することと、第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成することと、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成することと、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出することと、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体が提供される。
いくつかの実施形態では、第2のフレームに関連する第2の解像度の再構築された画像と第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の差が、機械学習モデルのトレーニングプロセス中に測定され得る。
いくつかの実施形態では、機械学習モデルのトレーニング可能変数の勾配が、第2のフレームに関連する第2の解像度の再構築された画像と第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の測定された差に基づいて算出され得る。
いくつかの実施形態では、トレーニング可能変数は、勾配降下バックプロパゲーションプロシージャによって更新され得る。
いくつかの実施形態では、第1のフレームは、ビデオのフレームシーケンスにおいて第2のフレームの前に位置し得る。
本開示のさらなる態様によれば、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を含む、プロセッサに結合された非一時的メモリとを備えるシステムであって、プロセッサが、命令を実行したとき、ビデオのフレームに対応する第1の解像度の画像にアクセスすることと、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出することと、第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成することと、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成することと、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出することと、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整することとを行うように動作可能である、システムが提供される。
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
例示的な人工現実システムを示す図である。 機械学習モデルを使用してビデオの画像の解像度を向上させるための例示的なプロセスを示す図である。 元の解像度の(original-resolution)画像からターゲット解像度の(target-resolution)中間画像を生成するための例示的なプロセスを示す図である。 再構築された画像とその対応するグランドトゥルース画像との間の測定された差に基づく損失関数を用いた例示的な機械学習モデルトレーニングを示す図である。 後続のフレームについてのワーピングされた画像とその対応するグランドトゥルース画像との間の測定された差に基づく損失関数を用いた例示的な機械学習モデルトレーニングを示す図である。 ビデオストリームの解像度を向上させるための例示的な方法を示す図である。 仮想現実システムに関連する例示的なネットワーク環境を示す図である。 例示的なコンピュータシステムを示す図である。
図1は、例示的な人工現実システムを示す。人工現実は、ユーザ105への提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連し得る。図1に示されている例示的な人工現実システムは、ヘッドマウントディスプレイ(HMD)101と、コントローラ102と、コンピューティングデバイス103とを備え得る。ユーザ105が、視覚人工現実コンテンツをユーザ105に提供し得るヘッドマウントディスプレイ(HMD)101を装着し得る。HMD101は、オーディオ人工現実コンテンツをユーザ105に提供し得るオーディオデバイスを含み得る。コントローラ102は、トラックパッドと1つまたは複数のボタンとを備え得る。コントローラ102は、ユーザ105から入力を受信し、その入力をコンピューティングデバイス103に中継し得る。コントローラ102はまた、触覚フィードバックをユーザ105に提供し得る。コンピューティングデバイス103は、HMD101およびコントローラ102に接続され得る。コンピューティングデバイス103は、人工現実コンテンツをユーザに提供し、ユーザ105から入力を受信するように、HMD101およびコントローラ102を制御し得る。コンピューティングデバイス103は、HMD101と組み合わせられたスタンドアロンホストコンピュータシステム、モバイルデバイス、または人工現実コンテンツを1人または複数のユーザ105に提供し、ユーザ105から入力を受信することが可能な任意の他のハードウェアプラットフォームであり得る。
特定の実施形態では、コンピューティングデバイス103は、サードパーティデバイスからビデオストリームを受信し、受信されたビデオストリームをHMD101を通してユーザ105に提示し得る。サードパーティデバイスからコンピューティングデバイス103へのトラフィックについての必要とされる帯域幅は、ビデオストリームの解像度に依存し得る。サードパーティデバイスとコンピューティングデバイス103との間の通信経路がワイヤレスリンクを備える場合、利用可能帯域幅が限定され得る。コンピューティングデバイス103が、妥当な算出コストでビデオストリームの解像度を向上させることが可能である場合、コンピューティングデバイス103は、より低い解像度においてビデオストリームを受信することと、ユーザにビデオを表示する前にビデオの解像度を向上させることとによって、ネットワーク帯域幅に関連するコストを低減することが可能であり得る。さらに、高解像度の画像をレンダリングすることは、費用がかかり得る。ビデオのための高解像度画像をレンダリングすることに関連するコストが、ビデオのための低解像度画像をレンダリングすることと、機械学習モデルを使用してその画像の解像度を向上させることとに関連する組み合わせられたコストよりも大きい場合、コンピューティングデバイス103は、低解像度において画像をレンダリングすることと、機械学習モデルを使用してその画像の解像度を向上させることとによって、コストを低減し得る。より低い解像度において画像を処理し、機械学習モデルを使用してその画像をより高い解像度にアップサンプリングするためのやり方が、本明細書で開示される。
特定の実施形態では、コンピューティングデバイス103は、より低い解像度において画像を処理し、機械学習モデルを使用してその画像をより高い解像度にアップサンプリングし得る。画像をレンダリングし、レンダリングされた画像を転送するコストは、レンダリングされた画像の解像度に依存し得る。そのようなコストを低減するために、コンピューティングデバイス103は、より低い解像度において画像を処理し、ユーザに画像を表示する前に、機械学習モデルを使用して画像の解像度を増加させ得る。コンピューティングデバイス103は、ビデオのフレームに対応する第1の解像度の画像にアクセスし得る。コンピューティングデバイス103は、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて第1の動きベクトルを算出し得、ここで、第1のフレームは、ビデオにおいて第2のフレームの前に来る。コンピューティングデバイス103は、第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、第1の動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成し得、ここで、第2の解像度が第1の解像度よりも高くなり得る。第2のフレームに関連する第2の解像度のワーピングされた画像は、算出された動きベクトルに基づく予測されたロケーションに位置するオブジェクトを備え得る。コンピューティングデバイス103は、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成し得る。第2のフレームに関連する第2の解像度の中間画像を生成するために、コンピューティングデバイス103は、複数のピクセルがブランクのままであるように、第2のフレームに関連する第1の解像度の画像のピクセルを、第2の解像度の中間画像のための第2の解像度の画像平面に一様に配置し得る。コンピューティングデバイス103は、第2の解像度の画像平面中の複数のブランクピクセルを、非ブランク隣接ピクセルの補間値で充填し得る。コンピューティングデバイス103は、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出し得る。コンピューティングデバイス103は、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整し得る。本開示は、特定の様式で機械学習モデルを使用して第2の解像度の再構築された画像を生成することについて説明するが、本開示は、任意の好適な様式で機械学習モデルを使用して第2の解像度の再構築された画像を生成することを企図する。
特定の実施形態では、コンピューティングデバイス103は、ビデオのフレームに対応する第1の解像度の画像にアクセスし得る。コンピューティングデバイス103は、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて第1の動きベクトルを算出し得、ここで、第1のフレームは、ビデオにおいて第2のフレームの前に来る。図2は、機械学習モデルを使用してビデオの画像の解像度を向上させるための例示的なプロセスを示す。限定としてではなく一例として、図2に示されているように、コンピューティングデバイス103は、元の解像度のビデオストリームにアクセスし得る。コンピューティングデバイス103は、ビデオストリームをターゲット解像度において関連するユーザに提示し得、ここで、ターゲット解像度は、元の解像度よりも高い。ビデオストリームをターゲット解像度において関連するユーザに提示するために、コンピューティングデバイス103は、機械学習モデル210を使用してビデオストリームの解像度を向上させ得る。特定の実施形態では、コンピューティングデバイス103は、HMD101と組み合わせられ得る。コンピューティングデバイス103は、サードパーティデバイスからビデオストリームを受信し得る。特定の実施形態では、サードパーティデバイスは、ハンドヘルドデバイスであり得る。サードパーティデバイスからコンピューティングデバイス103への通信リンクは、ワイヤレスであり得る。特定の実施形態では、ビデオストリームは、人工現実オブジェクトを備え得る。図2に示されている例では、コンピューティングデバイス103は、ビデオストリームのフレームtに対応する画像の解像度を向上させている。コンピューティングデバイス103は、フレームt-1に対応する元の解像度の画像201aと、フレームtに対応する元の解像度の画像201bとにアクセスし得る。コンピューティングデバイス103は、フレームt-1に対応する元の解像度の画像201aと、フレームtに対応する元の解像度の画像201bとに基づいて動きベクトルを算出し得る。特定の実施形態では、動きベクトルは、オプティカルフロー203であり得る。オプティカルフローは、視覚シーンにおけるオブジェクト、表面、およびエッジの明らかな動きのパターンであり得る。本開示は、特定の様式でビデオストリームの連続フレームに対応する画像に基づいて動きベクトルを算出することについて説明するが、本開示は、任意の好適な様式でビデオストリームの連続フレームに対応する画像に基づいて動きベクトルを算出することを企図する。
特定の実施形態では、コンピューティングデバイス103は、第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、第1の動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成し得る。第2の解像度は、第1の解像度よりも高くなり得る。第2のフレームに関連する第2の解像度のワーピングされた画像は、算出された動きベクトルに基づく予測されたロケーションに位置するオブジェクトを備え得る。限定としてではなく一例として、図2に示されている前の例を続けると、コンピューティングデバイス103は、フレームt-1に対応するターゲット解像度の再構築された画像205にアクセスし得る。フレームt-1に対応するターゲット解像度の再構築された画像205は、フレームt-1に対応する画像の解像度を向上させるプロセスにおいて生成されていることがある。コンピューティングデバイス103は、フレームt-1に対応するターゲット解像度の再構築された画像205をワーピングするために、フレームt-1からフレームtまでの算出されたオプティカルフロー203を使用することによって、フレームtに対応するターゲット解像度のワーピングされた画像207を生成し得る。フレームtに対応するターゲット解像度のワーピングされた画像207は、予測されたロケーションに位置するフレームt-1に対応するターゲット解像度の再構築された画像205に示されるオブジェクトを備え得る。それらのオブジェクトについての予測されたロケーションは、フレームt-1からフレームtまでの算出されたオプティカルフロー203に基づいて決定され得る。本開示は、特定の様式でターゲット解像度のワーピングされた画像を生成することについて説明するが、本開示は、任意の好適な様式でターゲット解像度のワーピングされた画像を生成することを企図する。
特定の実施形態では、コンピューティングデバイス103は、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成し得る。限定としてではなく一例として、図2に示されている前の例を続けると、コンピューティングデバイス103は、フレームtに対応する元の解像度の画像201bに基づいて、フレームtに対応するターゲット解像度の中間画像221を生成し得る。特定の実施形態では、コンピューティングデバイス103は、フレームtに対応するターゲット解像度の中間画像221を生成するために、補間ベースのアップサンプリング方法を使用し得る。本開示は、特定の様式でターゲット解像度の中間画像を生成することについて説明するが、本開示は、任意の好適な様式でのターゲット解像度の中間画像を企図する。
特定の実施形態では、コンピューティングデバイス103は、第2のフレームに関連する第2の解像度の中間画像を生成するために、複数のピクセルがブランクのままであるように、第2のフレームに関連する第1の解像度の画像のピクセルを、第2の解像度の中間画像のための第2の解像度の画像平面に一様に配置し得る。コンピューティングデバイス103は、第2の解像度の画像平面中の複数のブランクピクセルを、非ブランク隣接ピクセルの補間値で充填し得る。図3は、元の解像度の画像からターゲット解像度の中間画像を生成するための例示的なプロセスを示す。限定としてではなく一例として、図3に示されているように、コンピューティングデバイス103は、元の解像度の画像310にアクセスし得る。ターゲット解像度の中間画像を生成するために、コンピューティングデバイス310は、ターゲット解像度の画像平面320を準備し、ここで、ターゲット解像度は、元の解像度よりも高い。ターゲット解像度の画像平面は、コンピューティングデバイス103に関連するメモリスペースであり得る。次いで、コンピューティングデバイス103は、この段階のターゲット解像度の画像平面320aが複数のブランクピクセルを備え得るように、元の解像度の画像310のピクセルをターゲット解像度の画像平面320aに一様に配置し得る。コンピューティングデバイス103は、ターゲット解像度の中間画像320bを生成するために、複数のブランクピクセルを、非ブランク隣接ピクセルの補間値で充填し得る。コンピューティングデバイス103は、複数のブランクピクセルを充填するために、最近傍補間、双線形補間、双3次補間または任意の好適な補間技法を使用し得る。本開示は、特定の様式で補間によってターゲット解像度の中間画像を生成することについて説明するが、本開示は、任意の好適な様式で補間によってターゲット解像度の中間画像を生成することを企図する。
特定の実施形態では、コンピューティングデバイス103は、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出し得る。特定の実施形態では、機械学習モデルは、畳み込みニューラルネットワーク(CNN)モデルであり得る。特定の実施形態では、機械学習モデルは、敵対的生成ネットワーク(GAN:Generative Adversarial Network)モデルであり得る。限定としてではなく一例として、図2に示されている前の例を続けると、コンピューティングデバイス103は、フレームtに対応する元の解像度の画像201bと、フレームtに対応するターゲット解像度のワーピングされた画像207とを機械学習モデル210に提供し得る。機械学習モデル210は、調整パラメータ223を作り出し得る。特定の実施形態では、機械学習モデル210は、コンピューティングデバイス103上で実行され得る。特定の実施形態では、機械学習モデル210は、サードパーティデバイス上で実行され得る。本開示は、特定の様式で機械学習モデルを使用して調整パラメータを算出することについて説明するが、本開示は、任意の好適な様式で機械学習モデルを使用して調整パラメータを算出することを企図する。
特定の実施形態では、コンピューティングデバイス103は、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整し得る。限定としてではなく一例として、図2に示されている前の例を続けると、コンピューティングデバイス103は、算出された調整パラメータ223を、フレームtに対応するターゲット解像度の中間画像221に適用することによって、フレームtに対応するターゲット解像度の再構築された画像225を生成し得る。コンピューティングデバイス103は、フレームtに対応するターゲット解像度の再構築された画像225を、関連するユーザに提示し得る。本開示は、特定の様式でターゲット解像度の中間画像と算出された調整パラメータとに基づいてターゲット解像度の再構築された画像を生成することについて説明するが、本開示は、任意の好適な様式でターゲット解像度の中間画像と算出された調整パラメータとに基づいてターゲット解像度の再構築された画像を生成することを企図する。
特定の実施形態では、機械学習モデルがトレーニングされ得る。機械学習モデルのトレーニングプロセス中に、所定の損失関数を最小限に抑える調整パラメータを算出するために、機械学習モデルのトレーニング可能変数が調整され得る。トレーニング可能変数は、機械学習モデル内の重みとバイアスとを備え得る。限定としてではなく一例として、コンピューティングデバイスは、収集されたトレーニングデータを用いて機械学習モデルをトレーニングし得る。トレーニングデータは、元の解像度のビデオストリームと、対応するターゲット解像度のビデオストリームとを備え得る。コンピューティングデバイスは、ターゲット解像度の再構築された画像と、対応するターゲット解像度のグランドトゥルース画像との間の差に基づいて、損失を算出し得る。コンピューティングデバイスは、損失に基づいて、機械学習モデルのトレーニング可能変数のための勾配を算出し得る。コンピューティングデバイスは、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数を更新し得る。コンピューティングデバイスは、トレーニングの目的が達成されるまでプロセスを繰り返し得る。本開示は、特定の様式で機械学習モデルをトレーニングすることについて説明するが、本開示は、任意の好適な様式で機械学習モデルをトレーニングすることを企図する。
特定の実施形態では、コンピューティングデバイスは、第2のフレームに関連する第2の解像度の再構築された画像と第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の差を測定し得る。図4Aは、再構築された画像とその対応するグランドトゥルース画像との間の測定された差に基づく損失関数を用いた例示的な機械学習モデルトレーニングを示す。限定としてではなく一例として、図4Aに示されているように、トレーニングデータのセットが準備され得、ここで、トレーニングデータのセットは、元の解像度のビデオストリームと、それらの対応するターゲット解像度のビデオストリームとを備え得る。ステップ401aにおいて、コンピューティングデバイスは、入力420を機械学習モデル410に提供し得る。機械学習モデル410は、トレーニング変数415を備え得る。入力420は、元の解像度の画像とターゲット解像度のワーピングされた画像とを備え得る。入力420は、図2に示されているように準備され得る。ステップ403aにおいて、ターゲット解像度の再構築された画像430が生成され得る。簡潔のために、図4Aでは詳細は省略されるが、コンピューティングデバイスは、機械学習モデル410からの調整パラメータに基づいてターゲット解像度の中間画像のピクセルを調整することによって、ターゲット解像度の再構築された画像430を生成し得る。ステップ405aにおいて、コンピューティングデバイスは、ターゲット解像度の再構築された画像430と、対応するターゲット解像度のグランドトゥルース画像440との間の差を測定することによって、損失を算出し得る。損失は、所定の損失関数に基づいて算出され得る。本開示は、特定の様式で機械学習モデルをトレーニングするための損失を算出することについて説明するが、本開示は、任意の好適な様式で機械学習モデルをトレーニングするための損失を算出することを企図する。
特定の実施形態では、コンピューティングデバイスは、機械学習モデルのトレーニング可能変数の勾配を、第2のフレームに関連する第2の解像度の再構築された画像と第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の測定された差に基づいて算出し得る。コンピューティングデバイスは、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数を更新し得る。限定としてではなく一例として、図4Aに示されている前の例を続けると、コンピューティングデバイスは、算出された損失に基づいて、機械学習モデル410のトレーニング可能変数415の勾配を算出し得る。コンピューティングデバイスは、ステップ407aにおいて、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数415を更新し得る。コンピューティングデバイスは、トレーニングの所定の目的が達成されるまでプロセスを繰り返すことによってトレーニングを続け得る。特定の実施形態では、トレーニングの所定の目的は、テストデータのセットについて所定のしきい値よりも小さい損失を達成することであり得る。本開示は、特定の様式で勾配降下バックプロパゲーションによってトレーニング可能変数を更新することについて説明するが、本開示は、任意の好適な様式で勾配降下バックプロパゲーションによってトレーニング可能変数を更新することを企図する。
図4Bは、後続のフレームについての第2の解像度のワーピングされた画像とその対応する第2の解像度のグランドトゥルース画像との間の測定された差に基づく損失関数を用いた例示的な機械学習モデルトレーニングを示す。特定の実施形態では、コンピューティングデバイスは、第3のフレームに対応するターゲット解像度のワーピングされた画像と第3のフレームに対応するターゲット解像度のグランドトゥルース画像との間の測定された差に基づいて損失を算出し得、ここで、第3のフレームは、ビデオストリームにおいて第2のフレームよりも後に来る。特定の実施形態では、コンピューティングデバイスは、算出された損失に基づいて、トレーニング可能変数415のための勾配を算出し得る。コンピューティングデバイスは、算出された勾配を用いた勾配降下バックプロパゲーションプロセスによってトレーニング可能変数415を更新し得る。限定としてではなく一例として、図4Bに示されているように、コンピューティングデバイスは、図2に示されているように入力420を準備し得る。入力420は、フレームtに対応する元の解像度の画像と、フレームtに対応するターゲット解像度のワーピングされた画像とを備え得る。コンピューティングデバイスは、ステップ401bにおいて、準備された入力420を機械学習モデル410に提供し得る。ステップ403bにおいて、コンピューティングデバイスは、機械学習モデル410からの調整パラメータに基づいて、フレームtに対応するターゲット解像度の中間画像のピクセルを調整することによって、フレームtについてのターゲット解像度の再構築された画像430を生成し得る。特定の実施形態では、フレームtに対応するターゲット解像度の再構築された画像430は、図4Aに示されているように、フレームtに対応するターゲット解像度のグランドトゥルース画像440aと比較され得る。それに加えてまたはその代替として、コンピューティングデバイスは、フレームt+1に対応するターゲット解像度のワーピングされた画像460を生成し、フレームt+1に対応するターゲット解像度のワーピングされた画像460を、フレームt+1に対応するターゲット解像度のグランドトゥルース画像440bと比較し得る。ステップ405bにおいて、コンピューティングデバイスは、フレームtに対応するターゲット解像度のグランドトゥルース画像440aとフレームt+1に対応するターゲット解像度のグランドトゥルース画像440bとに基づいて、フレームtからフレームt+1までのオプティカルフロー450を算出し得る。コンピューティングデバイスは、ステップ407bにおいて、フレームtに対応するターゲット解像度の再構築された画像430とフレームtからフレームt+1までの算出されたオプティカルフロー450とに基づいて、フレームt+1に対応するターゲット解像度のワーピングされた画像460を生成し得る。コンピューティングデバイスは、フレームtに対応するターゲット解像度の再構築された画像430をワーピングするために、フレームtからフレームt+1までのオプティカルフロー450を使用する。フレームt+1に対応するターゲット解像度のワーピングされた画像460は、算出されたオプティカルフロー450に基づく予測されたロケーションに位置するオブジェクトを備え得る。本開示は、特定の様式で将来のフレームに関連するターゲット解像度のワーピングされた画像を生成することについて説明するが、本開示は、任意の好適な様式で将来のフレームに関連するターゲット解像度のワーピングされた画像を生成することを企図する。
特定の実施形態では、コンピューティングデバイスは、第3のフレームに関連する第2の解像度のワーピングされた画像と第3のフレームに関連する第2の解像度のグランドトゥルース画像との間の差を測定し得、ここで、第2のフレームは、ビデオのフレームシーケンスにおいて第3のフレームの前に位置し得る。特定の実施形態では、コンピューティングデバイスは、第3のフレームに関連する第2の解像度のワーピングされた画像中の選択されたピクセルと第3のフレームに関連する第2の解像度のグランドトゥルース画像中の選択されたピクセルとの間の差を測定し得る。特定の実施形態では、コンピューティングデバイスは、選択されたピクセルを、第2のフレームに関連するワーピングされた第2の解像度のグランドトゥルース画像中のピクセルと、第3のフレームに関連するワーピングされた第2の解像度のグランドトゥルース画像中のピクセルとを比較することによって、強いオプティカルフロー対応をもつピクセルとして識別し得る。限定としてではなく一例として、図4Bに示されている前の例を続けると、コンピューティングデバイスは、ステップ408bにおいて、フレームt+1に対応するターゲット解像度のワーピングされた画像460とフレームt+1に対応するターゲット解像度のグランドトゥルース画像440bとの間の差に基づいて、損失を算出し得る。損失は、所定の損失関数に基づいて算出され得る。特定の実施形態では、損失は、フレームt+1に対応するターゲット解像度のワーピングされた画像460中の選択されたピクセルとフレームt+1に対応するターゲット解像度のグランドトゥルース画像440b中の選択されたピクセルとの間の差に基づいて算出され得る。選択されたピクセルは、しきい値よりも高いオプティカルフロー対応をもつピクセルとして識別され得る。本開示は、特定の様式で機械学習モデルをトレーニングするための損失を算出することについて説明するが、本開示は、任意の好適な様式で機械学習モデルをトレーニングするための損失を算出することを企図する。
特定の実施形態では、コンピューティングデバイスは、第3のフレームに関連する第2の解像度のワーピングされた画像中の選択されたピクセルと第3のフレームに関連する第2の解像度のグランドトゥルース画像中の選択されたピクセルとの間の測定された差に基づいて、機械学習モデルのトレーニング可能変数の勾配を算出し得る。コンピューティングデバイスは、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数を更新し得る。限定としてではなく一例として、図4Bに示されている前の例を続けると、コンピューティングデバイスは、ステップ408bにおいて算出された損失に基づいて、機械学習モデル410のトレーニング可能変数415の勾配を算出し得る。コンピューティングデバイスは、ステップ409bにおいて、勾配降下バックプロパゲーションプロシージャによってトレーニング可能変数415を更新し得る。コンピューティングデバイスは、トレーニングの所定の目的が達成されるまでプロセスを繰り返すことによってトレーニングを続け得る。本開示は、特定の様式で勾配降下バックプロパゲーションによってトレーニング可能変数を更新することについて説明するが、本開示は、任意の好適な様式で勾配降下バックプロパゲーションによってトレーニング可能変数を更新することを企図する。
図5は、ビデオストリームの解像度を向上させるための例示的な方法500を示す。方法は、ステップ510において開始し得、コンピューティングデバイスが、ビデオのフレームに対応する第1の解像度の画像にアクセスし得る。ステップ520において、コンピューティングデバイスは、ビデオ中の第1のフレームの第1の解像度の画像とビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出し得る。ステップ530において、コンピューティングデバイスは、第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、動きベクトルを使用することによって、第2のフレームに関連する第2の解像度のワーピングされた画像を生成し得る。ステップ540において、コンピューティングデバイスは、第2のフレームに関連する第1の解像度の画像に基づいて、第2のフレームに関連する第2の解像度の中間画像を生成し得る。ステップ550において、コンピューティングデバイスは、機械学習モデルを使用して、第2のフレームに関連する第1の解像度の画像と第2のフレームに関連する第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出し得る。ステップ560において、コンピューティングデバイスは、第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、調整パラメータに基づいて第2のフレームに関連する第2の解像度の中間画像のピクセルを調整し得る。特定の実施形態は、適切な場合、図5の方法の1つまたは複数のステップを繰り返し得る。本開示は、図5の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図5の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図5の方法の特定のステップを含む、ビデオストリームの解像度を向上させるための例示的な方法を説明し、示すが、本開示は、適切な場合、図5の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、ビデオストリームの解像度を向上させるための任意の好適な方法を企図する。さらに、本開示は、図5の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図5の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
図6は、仮想現実システムに関連する例示的なネットワーク環境600を示す。ネットワーク環境600は、ネットワーク610によって互いに接続された、クライアントシステム630、ソーシャルネットワーキングシステム660、およびサードパーティシステム670と対話するユーザ601を含む。図6は、ユーザ601、クライアントシステム630、ソーシャルネットワーキングシステム660、サードパーティシステム670、およびネットワーク610の特定の構成を示すが、本開示は、ユーザ601、クライアントシステム630、ソーシャルネットワーキングシステム660、サードパーティシステム670、およびネットワーク610の任意の好適な構成を企図する。限定としてではなく一例として、ユーザ601、クライアントシステム630、ソーシャルネットワーキングシステム660、およびサードパーティシステム670のうちの2つまたはそれ以上が、ネットワーク610をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム630、ソーシャルネットワーキングシステム660、およびサードパーティシステム670のうちの2つまたはそれ以上が、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、図6は、特定の数のユーザ601、クライアントシステム630、ソーシャルネットワーキングシステム660、サードパーティシステム670、およびネットワーク610を示すが、本開示は、任意の好適な数のクライアントシステム630、ソーシャルネットワーキングシステム660、サードパーティシステム670、およびネットワーク610を企図する。限定としてではなく一例として、ネットワーク環境600は、複数のユーザ601と、クライアントシステム630と、ソーシャルネットワーキングシステム660と、サードパーティシステム670と、ネットワーク610とを含み得る。
本開示は、任意の好適なネットワーク610を企図する。限定としてではなく一例として、ネットワーク610の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク610は、1つまたは複数のネットワーク610を含み得る。
リンク650は、クライアントシステム630と、ソーシャルネットワーキングシステム660と、サードパーティシステム670とを、通信ネットワーク610にまたは互いに接続し得る。本開示は、任意の好適なリンク650を企図する。特定の実施形態では、1つまたは複数のリンク650は、1つまたは複数の、(たとえば、デジタル加入者回線(DSL)またはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)ワイヤラインリンク、(たとえば、Wi-Fiまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)などの)ワイヤレスリンク、または(たとえば、同期光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク650は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク650、または2つまたはそれ以上のそのようなリンク650の組合せを含む。リンク650は、ネットワーク環境600の全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンク650は、1つまたは複数の第2のリンク650とは1つまたは複数の点で異なり得る。
特定の実施形態では、クライアントシステム630は、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み、クライアントシステム630によって実装またはサポートされる適切な機能性を行うことが可能な、電子デバイスであり得る。限定としてではなく一例として、クライアントシステム630は、デスクトップコンピュータ、ノートブックまたはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダー、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、仮想現実ヘッドセットおよびコントローラ、他の好適な電子デバイス、あるいはそれらの任意の好適な組合せなど、コンピュータシステムを含み得る。本開示は、任意の好適なクライアントシステム630を企図する。クライアントシステム630は、クライアントシステム630におけるネットワークユーザが、ネットワーク610にアクセスすることを可能にし得る。クライアントシステム630は、クライアントシステム630のユーザが、他のクライアントシステム630における他のユーザと通信することを可能にし得る。クライアントシステム630は、ユーザがコンテンツと対話するための仮想現実環境を生成し得る。
特定の実施形態では、クライアントシステム630は、OCULUS RIFTなど、仮想現実(または拡張現実)ヘッドセット632と、仮想現実コントローラなど、(1つまたは複数の)仮想現実入力デバイス634とを含み得る。クライアントシステム630におけるユーザは、仮想現実ヘッドセット632を装着し、仮想現実ヘッドセット632によって生成された仮想現実環境636と対話するために(1つまたは複数の)仮想現実入力デバイスを使用し得る。示されていないが、クライアントシステム630は、別個の処理コンピュータおよび/または仮想現実システムの任意の他の構成要素をも含み得る。仮想現実ヘッドセット632は、ソフトウェアまたはファームウェア更新など、(限定はしないがオペレーティングシステムを含む)システムコンテンツ638を含み、アプリケーションからのコンテンツ、またはインターネットから動的にダウンロードされたコンテンツ(たとえば、ウェブページコンテンツ)など、サードパーティコンテンツ640をも含み得る、仮想現実環境636を生成し得る。仮想現実ヘッドセット632は、ヘッドセットデバイス632のロケーションを追跡するセンサーデータを生成するための、加速度計、ジャイロスコープ、磁力計など、(1つまたは複数の)センサー642を含み得る。ヘッドセット632は、ユーザの眼の位置またはユーザの眼の観察方向を追跡するためのアイトラッカーをも含み得る。クライアントシステムは、ヘッドセットに関する速度、配向、および重力を決定するために、(1つまたは複数の)センサー642からのデータを使用し得る。(1つまたは複数の)仮想現実入力デバイス634は、入力デバイス634のロケーションとユーザの指の位置とを追跡するセンサーデータを生成するための、加速度計、ジャイロスコープ、磁力計、およびタッチセンサーなど、(1つまたは複数の)センサー644を含み得る。クライアントシステム630は、アウトサイドイン追跡(outside-in tracking)を利用し得、ここで、追跡カメラ(図示せず)が、仮想現実ヘッドセット632の外部に、および仮想現実ヘッドセット632の見通し線内に置かれる。アウトサイドイン追跡では、追跡カメラは、(たとえば、仮想現実ヘッドセット632上の1つまたは複数の赤外線LEDマーカーを追跡することによって)仮想現実ヘッドセット632のロケーションを追跡し得る。代替または追加として、クライアントシステム630は、インサイドアウト追跡(inside-out tracking)を利用し得、ここで、追跡カメラ(図示せず)が、仮想現実ヘッドセット632自体の上に、または仮想現実ヘッドセット632自体の内部に置かれ得る。インサイドアウト追跡では、追跡カメラは、現実世界において追跡カメラの周りの画像をキャプチャし得、現実世界の変化するパースペクティブを使用して、空間における追跡カメラ自体の位置を決定し得る。
サードパーティコンテンツ640は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROMEまたはMOZILLA FIREFOXなど、ウェブブラウザを含み得、1つまたは複数のアドオン、プラグイン、あるいは、TOOLBARまたはYAHOO TOOLBARなど、他の拡張を有し得る。クライアントシステム630におけるユーザは、ウェブブラウザを(サーバ662、またはサードパーティシステム670に関連するサーバなどの)特定のサーバに向けるユニフォームリソースロケータ(URL)または他のアドレスを入力し得、ウェブブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答する1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム630に通信し得る。クライアントシステム630は、ユーザへの提示のためにサーバからのHTMLファイルに基づいてウェブインターフェース(たとえば、ウェブページ)をレンダリングし得る。本開示は、任意の好適なソースファイルを企図する。限定としてではなく一例として、ウェブインターフェースは、特定の必要に応じて、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから、レンダリングされ得る。そのようなインターフェースは、たとえば、限定はしないが、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHTで書かれたものなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトとの組合せなどをも実行し得る。本明細書では、ウェブインターフェースへの言及は、適切な場合、(ブラウザがウェブインターフェースをレンダリングするために使用し得る)1つまたは複数の対応するソースファイルを包含し、その逆も同様である。
特定の実施形態では、ソーシャルネットワーキングシステム660は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム660は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム660は、直接的にまたはネットワーク610を介してのいずれかで、ネットワーク環境600の他の構成要素によってアクセスされ得る。限定としてではなく一例として、クライアントシステム630は、直接的にまたはネットワーク610を介してのいずれかで、サードパーティコンテンツ640のウェブブラウザ、またはソーシャルネットワーキングシステム660に関連するネイティブアプリケーション(たとえば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の好適なアプリケーション、またはそれらの任意の組合せ)を使用して、ソーシャルネットワーキングシステム660にアクセスし得る。特定の実施形態では、ソーシャルネットワーキングシステム660は、1つまたは複数のサーバ662を含み得る。各サーバ662は、単一サーバ、あるいは複数のコンピュータまたは複数のデータセンターにわたる分散型サーバであり得る。サーバ662は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明される機能またはプロセスを実施するのに好適な別のサーバ、あるいはそれらの任意の組合せなど、様々なタイプのものであり得る。特定の実施形態では、各サーバ662は、サーバ662によって実装またはサポートされる適切な機能性を行うための、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム660は、1つまたは複数のデータストア664を含み得る。データストア664は、様々なタイプの情報を記憶するために使用され得る。特定の実施形態では、データストア664に記憶された情報は、固有のデータ構造に従って編成され得る。特定の実施形態では、各データストア664は、リレーショナルデータベース、列指向データベース、相関データベース、または他の好適なデータベースであり得る。本開示は、特定のタイプのデータベースを説明するかまたは示すが、本開示は任意の好適なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム630、ソーシャルネットワーキングシステム660、またはサードパーティシステム670が、データストア664に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
特定の実施形態では、ソーシャルネットワーキングシステム660は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア664に記憶し得る。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードをつなげる複数のエッジとを含み得る。ソーシャルネットワーキングシステム660は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供し得る。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム660を介してオンラインソーシャルネットワークに加わり、次いで、ユーザがつなげられることを希望するソーシャルネットワーキングシステム660の何人かの他のユーザへのつながり(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ソーシャルネットワーキングシステム660を介してユーザがつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム660の任意の他のユーザを指し得る。
特定の実施形態では、ソーシャルネットワーキングシステム660は、ソーシャルネットワーキングシステム660によってサポートされる様々なタイプのアイテムまたはオブジェクトに関するアクションをとる能力をユーザに提供し得る。限定としてではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム660のユーザが属し得るグループまたはソーシャルネットワーク、ユーザが興味があり得るイベントまたはカレンダーエントリ、ユーザが使用し得るコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入または販売することを可能にするトランザクション、ユーザが実施し得る広告との対話、あるいは他の好適なアイテムまたはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム660において、またはソーシャルネットワーキングシステム660とは別個であり、ネットワーク610を介してソーシャルネットワーキングシステム660に結合された、サードパーティシステム670の外部システムによって、表されることが可能であるものと対話し得る。
特定の実施形態では、ソーシャルネットワーキングシステム660は、様々なエンティティをリンクすることが可能であり得る。限定としてではなく一例として、ソーシャルネットワーキングシステム660は、ユーザが、互いと対話し、ならびにサードパーティシステム670または他のエンティティからコンテンツを受信すること、あるいは、ユーザがアプリケーションプログラミングインターフェース(API)または他の通信チャネルを通してこれらのエンティティと対話することを可能にすることを可能にし得る。
特定の実施形態では、サードパーティシステム670は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定はしないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、またはたとえばサーバが通信し得る任意の他の好適な構成要素を含み得る。サードパーティシステム670は、ソーシャルネットワーキングシステム660を動作させるエンティティとは異なるエンティティによって動作させられ得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム660とサードパーティシステム670とは、互いと連携して動作して、ソーシャルネットワーキングシステム660またはサードパーティシステム670のユーザにソーシャルネットワーキングサービスを提供し得る。この意味で、ソーシャルネットワーキングシステム660は、サードパーティシステム670などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供し得る。
特定の実施形態では、サードパーティシステム670は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム630に通信され得る、コンテンツオブジェクトの1つまたは複数のソースを含み得る。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって興味のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。
特定の実施形態では、ソーシャルネットワーキングシステム660は、ソーシャルネットワーキングシステム660とのユーザの対話を向上させ得る、ユーザ生成されたコンテンツオブジェクトをも含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム660に追加するか、アップロードするか、送るか、または「投稿」することができるものを含み得る。限定としてではなく一例として、ユーザは、クライアントシステム630からソーシャルネットワーキングシステム660に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を通して、サードパーティによってソーシャルネットワーキングシステム660に追加され得る。
特定の実施形態では、ソーシャルネットワーキングシステム660は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム660は、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推論モジュール、許可/プライバシーサーバ、検索モジュール、広告ターゲッティングモジュール、ユーザインターフェースモジュール、ユーザプロファイルストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ソーシャルネットワーキングシステム660は、ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク運用コンソール、他の好適な構成要素、またはそれらの任意の好適な組合せなど、好適な構成要素をも含み得る。特定の実施形態では、ソーシャルネットワーキングシステム660は、ユーザプロファイルを記憶するための1つまたは複数のユーザプロファイルストアを含み得る。ユーザプロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、ソーシャル情報、あるいは、職歴、学歴、趣味もしくは選好、興味、親和性、またはロケーションなど、他のタイプの記述的情報を含み得る。興味情報は、1つまたは複数のカテゴリーに関係する興味を含み得る。カテゴリーは一般的であるかまたは固有のものであり得る。限定としてではなく一例として、ユーザが、靴のブランドに関する記事に対して「いいね!」を表明した場合、カテゴリーは、ブランド、あるいは「靴」または「衣類」の一般的なカテゴリーであり得る。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、同様のまたは共通の職歴、グループメンバーシップ、趣味、学歴を有するか、あるいはいかなる形でも関係するか、または共通属性を共有する、ユーザを指示し得る。つながり情報は、(内部と外部の両方の)異なるユーザとコンテンツとの間のユーザ定義されたつながりをも含み得る。ウェブサーバは、ネットワーク610を介して、ソーシャルネットワーキングシステム660を、1つまたは複数のクライアントシステム630または1つまたは複数のサードパーティシステム670にリンクするために使用され得る。ウェブサーバは、ソーシャルネットワーキングシステム660と1つまたは複数のクライアントシステム630との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能性を含み得る。API要求サーバは、サードパーティシステム670が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキングシステム660からの情報にアクセスすることを可能にし得る。アクションロガーは、ソーシャルネットワーキングシステム660上の、またはソーシャルネットワーキングシステム660から離れた、ユーザのアクションに関するウェブサーバからの通信を受信するために使用され得る。アクションログと併せて、サードパーティコンテンツオブジェクトへのユーザ露出についてのサードパーティコンテンツオブジェクトログが維持され得る。通知コントローラは、クライアントシステム630にコンテンツオブジェクトに関する情報を提供し得る。情報は、通知としてクライアントシステム630にプッシュされ得るか、または、情報は、クライアントシステム630から受信された要求に応答してクライアントシステム630からプルされ得る。許可サーバは、ソーシャルネットワーキングシステム660のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザに関連する特定の情報がどのように共有され得るかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定をセットすることなどによって、そのユーザのアクションがソーシャルネットワーキングシステム660によってロギングされるか、または他のシステム(たとえば、サードパーティシステム670)と共有されることをオプトインまたはオプトアウトすることを可能にし得る。サードパーティコンテンツオブジェクトストアは、サードパーティシステム670など、サードパーティから受信されたコンテンツオブジェクトを記憶するために使用され得る。ロケーションストアは、ユーザに関連するクライアントシステム630から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
図7は、例示的なコンピュータシステム700を示す。特定の実施形態では、1つまたは複数のコンピュータシステム700は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム700は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム700上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム700の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
本開示は、任意の好適な数のコンピュータシステム700を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム700を企図する。限定としてではなく例として、コンピュータシステム700は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム700は、1つまたは複数のコンピュータシステム700を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム700は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム700は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム700は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
特定の実施形態では、コンピュータシステム700は、プロセッサ702と、メモリ704と、ストレージ706と、入出力(I/O)インターフェース708と、通信インターフェース710と、バス712とを含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な構成において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
特定の実施形態では、プロセッサ702は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ702は、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ702を企図する。限定としてではなく一例として、プロセッサ702は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ704またはストレージ706中の命令のコピーであり得、命令キャッシュは、プロセッサ702によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ702において実行する命令が動作する対象のメモリ704またはストレージ706中のデータのコピー、プロセッサ702において実行する後続の命令によるアクセスのための、またはメモリ704もしくはストレージ706に書き込むための、プロセッサ702において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ702による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ702のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ702を企図する。適切な場合、プロセッサ702は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ702を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
特定の実施形態では、メモリ704は、プロセッサ702が実行するための命令、またはプロセッサ702が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム700は、ストレージ706または(たとえば、別のコンピュータシステム700などの)別のソースからメモリ704に命令をロードし得る。プロセッサ702は、次いで、メモリ704から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ702は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ702は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ702は、次いで、メモリ704にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ702は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ706または他の場所とは対照的な)メモリ704中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ706または他の場所とは対照的な)メモリ704中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ702をメモリ704に結合し得る。バス712は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ702とメモリ704との間に常駐し、プロセッサ702によって要求されるメモリ704へのアクセスを容易にする。特定の実施形態では、メモリ704は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ704は、適切な場合、1つまたは複数のメモリ704を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
特定の実施形態では、ストレージ706は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ706は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ706は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ706は、適切な場合、コンピュータシステム700の内部または外部にあり得る。特定の実施形態では、ストレージ706は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ706は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ706を企図する。ストレージ706は、適切な場合、プロセッサ702とストレージ706との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ706は、1つまたは複数のストレージ706を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
特定の実施形態では、I/Oインターフェース708は、コンピュータシステム700と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム700は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム700との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース708とを企図する。適切な場合、I/Oインターフェース708は、プロセッサ702がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース708は、適切な場合、1つまたは複数のI/Oインターフェース708を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース710は、コンピュータシステム700と、1つまたは複数の他のコンピュータシステム700または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース710は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース710とを企図する。限定としてではなく一例として、コンピュータシステム700は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム700は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム700は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース710を含み得る。通信インターフェース710は、適切な場合、1つまたは複数の通信インターフェース710を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
特定の実施形態では、バス712は、コンピュータシステム700の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス712は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス712は、適切な場合、1つまたは複数のバス712を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、構成されるか、実施することが可能であるか、実施するように設定されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、構成されるか、可能であるか、設定されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。

Claims (15)

  1. コンピューティングデバイスによって、
    ビデオのフレームに対応する第1の解像度の画像にアクセスすることと、
    前記ビデオ中の第1のフレームの第1の解像度の画像と前記ビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出することと、
    前記第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、前記動きベクトルを使用することによって、前記第2のフレームに関連する第2の解像度のワーピングされた画像を生成することと、
    前記第2のフレームに関連する前記第1の解像度の画像に基づいて、前記第2のフレームに関連する第2の解像度の中間画像を生成することと、
    機械学習モデルを使用して、前記第2のフレームに関連する前記第1の解像度の画像と前記第2のフレームに関連する前記第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出することと、
    前記第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、前記調整パラメータに基づいて前記第2のフレームに関連する前記第2の解像度の中間画像のピクセルを調整することと
    を含む、方法。
  2. 前記第2のフレームに関連する前記第2の解像度の再構築された画像と前記第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の差が、前記機械学習モデルのトレーニングプロセス中に測定される、請求項1に記載の方法。
  3. 前記機械学習モデルのトレーニング可能変数の勾配が、前記第2のフレームに関連する前記第2の解像度の再構築された画像と前記第2のフレームに関連する前記第2の解像度のグランドトゥルース画像との間の測定された前記差に基づいて算出され、好ましくは、前記トレーニング可能変数が、勾配降下バックプロパゲーションプロシージャによって更新される、請求項2に記載の方法。
  4. 前記第1のフレームが、前記ビデオのフレームシーケンスにおいて前記第2のフレームの前に位置する、請求項1から3のいずれか一項に記載の方法。
  5. 第3のフレームに関連する第2の解像度のワーピングされた画像中の選択されたピクセルと、前記第3のフレームに関連する第2の解像度のグランドトゥルース画像中の前記選択されたピクセルとの間の差が、前記機械学習モデルのトレーニングプロセス中に測定される、請求項1から4のいずれか一項に記載の方法。
  6. 前記第2のフレームが、前記ビデオのフレームシーケンスにおいて前記第3のフレームの前に位置する、請求項5に記載の方法。
  7. 前記選択されたピクセルが、前記第2のフレームに関連するワーピングされた第2の解像度のグランドトゥルース画像中のピクセルと、前記第3のフレームに関連するワーピングされた第2の解像度のグランドトゥルース画像中のピクセルとを比較することによって、強いオプティカルフロー対応をもつピクセルとして識別される、請求項5または6に記載の方法。
  8. 前記第3のフレームに関連する前記第2の解像度のワーピングされた画像が、
    前記第2のフレームに関連する前記第2の解像度のグランドトゥルース画像と前記第3のフレームに関連する前記第2の解像度のグランドトゥルース画像とに基づいて、第2の動きベクトルを算出することと、
    前記第2のフレームに関連する前記第2の解像度の再構築された画像をワーピングするために、前記第2の動きベクトルを使用することによって、前記第3のフレームに関連する前記第2の解像度のワーピングされた画像を生成することと
    によって生成される、請求項5から7のいずれか一項に記載の方法。
  9. 前記機械学習モデルのトレーニング可能変数の勾配が、前記第3のフレームに関連する前記第2の解像度のワーピングされた画像中の前記選択されたピクセルと前記第3のフレームに関連する前記第2の解像度のグランドトゥルース画像中の前記選択されたピクセルとの間の測定された前記差に基づいて算出され、好ましくは、前記トレーニング可能変数が、勾配降下バックプロパゲーションプロシージャによって更新される、請求項5から8のいずれか一項に記載の方法。
  10. 第2の解像度が第1の解像度よりも高く、好ましくは、前記第2のフレームに関連する前記第2の解像度の中間画像を生成することは、
    複数のピクセルがブランクのままであるように、前記第2のフレームに関連する前記第1の解像度の画像のピクセルを、前記第2の解像度の中間画像のための第2の解像度の画像平面に一様に配置することと、
    前記第2の解像度の画像平面中の複数のブランクピクセルを、非ブランク隣接ピクセルの補間値で充填することと
    を含む、請求項1から9のいずれか一項に記載の方法。
  11. 前記第2のフレームに関連する前記第2の解像度のワーピングされた画像が、算出された前記動きベクトルに基づく予測されたロケーションに位置するオブジェクトを備える、請求項1から10のいずれか一項に記載の方法。
  12. ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアが、実行されたとき、
    ビデオのフレームに対応する第1の解像度の画像にアクセスすることと、
    前記ビデオ中の第1のフレームの第1の解像度の画像と前記ビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出することと、
    前記第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、前記動きベクトルを使用することによって、前記第2のフレームに関連する第2の解像度のワーピングされた画像を生成することと、
    前記第2のフレームに関連する前記第1の解像度の画像に基づいて、前記第2のフレームに関連する第2の解像度の中間画像を生成することと、
    機械学習モデルを使用して、前記第2のフレームに関連する前記第1の解像度の画像と前記第2のフレームに関連する前記第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出することと、
    前記第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、前記調整パラメータに基づいて前記第2のフレームに関連する前記第2の解像度の中間画像のピクセルを調整することと
    を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
  13. 前記第2のフレームに関連する前記第2の解像度の再構築された画像と前記第2のフレームに関連する第2の解像度のグランドトゥルース画像との間の差が、前記機械学習モデルのトレーニングプロセス中に測定され、好ましくは、前記機械学習モデルのトレーニング可能変数の勾配が、前記第2のフレームに関連する前記第2の解像度の再構築された画像と前記第2のフレームに関連する前記第2の解像度のグランドトゥルース画像との間の測定された前記差に基づいて算出され、好ましくは、前記トレーニング可能変数が、勾配降下バックプロパゲーションプロシージャによって更新される、請求項12に記載の媒体。
  14. 前記第1のフレームが、前記ビデオのフレームシーケンスにおいて前記第2のフレームの前に位置する、請求項12または13に記載の媒体。
  15. 1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記プロセッサが、前記命令を実行したとき、
    ビデオのフレームに対応する第1の解像度の画像にアクセスすることと、
    前記ビデオ中の第1のフレームの第1の解像度の画像と前記ビデオ中の第2のフレームの第1の解像度の画像とに基づいて動きベクトルを算出することと、
    前記第1のフレームに関連する第2の解像度の再構築された画像をワーピングするために、前記動きベクトルを使用することによって、前記第2のフレームに関連する第2の解像度のワーピングされた画像を生成することと、
    前記第2のフレームに関連する前記第1の解像度の画像に基づいて、前記第2のフレームに関連する第2の解像度の中間画像を生成することと、
    機械学習モデルを使用して、前記第2のフレームに関連する前記第1の解像度の画像と前記第2のフレームに関連する前記第2の解像度のワーピングされた画像とを処理することによって、調整パラメータを算出することと、
    前記第2のフレームに関連する第2の解像度の再構築された画像を再構築するために、前記調整パラメータに基づいて前記第2のフレームに関連する前記第2の解像度の中間画像のピクセルを調整することと
    を行うように動作可能である、システム。
JP2022548726A 2020-06-16 2021-05-16 ビデオストリームの解像度を向上させること Pending JP2023530537A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/903,263 US11481877B2 (en) 2020-06-16 2020-06-16 Enhancing the resolution of a video stream
US16/903,263 2020-06-16
PCT/US2021/032653 WO2021257221A1 (en) 2020-06-16 2021-05-16 Enhancing the resolution of a video stream

Publications (1)

Publication Number Publication Date
JP2023530537A true JP2023530537A (ja) 2023-07-19

Family

ID=76392414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022548726A Pending JP2023530537A (ja) 2020-06-16 2021-05-16 ビデオストリームの解像度を向上させること

Country Status (6)

Country Link
US (1) US11481877B2 (ja)
EP (1) EP4165587A1 (ja)
JP (1) JP2023530537A (ja)
KR (1) KR20230023605A (ja)
CN (1) CN115298687A (ja)
WO (1) WO2021257221A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475542B2 (en) * 2017-07-27 2022-10-18 Nvidia Corporation Neural network system with temporal feedback for adaptive sampling and denoising of rendered sequences
US10783611B2 (en) * 2018-01-02 2020-09-22 Google Llc Frame-recurrent video super-resolution

Also Published As

Publication number Publication date
EP4165587A1 (en) 2023-04-19
US11481877B2 (en) 2022-10-25
CN115298687A (zh) 2022-11-04
WO2021257221A1 (en) 2021-12-23
KR20230023605A (ko) 2023-02-17
US20210390661A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
KR20210049947A (ko) 샘플링된 컬러 정보에 기초하여 이미지 시퀀스들을 생성하고 송신하기 위한 시스템들 및 방법들
JP2023541531A (ja) 下半身姿勢を予測するためのシステムおよび方法
US11687165B2 (en) Stabilizing gestures in artificial reality environments
US10798298B1 (en) Flicker detector
US11914836B2 (en) Hand presence over keyboard inclusiveness
TW202249484A (zh) 在虛擬實境中動態混合實境內容
US20220179204A1 (en) Systems and methods for generating spectator images of an artificial reality environment
US11645761B2 (en) Adaptive sampling of images
JP2023530537A (ja) ビデオストリームの解像度を向上させること
US11644685B2 (en) Processing stereo images with a machine-learning model
US20240078745A1 (en) Generation of a virtual viewpoint image of a person from a single captured image
US11818474B1 (en) Sparse RGB cameras for image capture
US20230245499A1 (en) Systems and methods for predicting elbow joint poses
US11386532B2 (en) Blue noise mask for video sampling
US11430085B2 (en) Efficient motion-compensated spatiotemporal sampling
JP2023541229A (ja) 時間同期された分散型パッシブキャプチャ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240226