IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ナイアンティック, インコーポレイテッドの特許一覧

特表2024-515248拡張現実のためのパノプティック・セグメンテーション予測
<>
  • 特表-拡張現実のためのパノプティック・セグメンテーション予測 図1
  • 特表-拡張現実のためのパノプティック・セグメンテーション予測 図2
  • 特表-拡張現実のためのパノプティック・セグメンテーション予測 図3
  • 特表-拡張現実のためのパノプティック・セグメンテーション予測 図4
  • 特表-拡張現実のためのパノプティック・セグメンテーション予測 図5
  • 特表-拡張現実のためのパノプティック・セグメンテーション予測 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-08
(54)【発明の名称】拡張現実のためのパノプティック・セグメンテーション予測
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240401BHJP
   G06T 7/11 20170101ALI20240401BHJP
【FI】
G06T19/00 600
G06T7/11
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023561793
(86)(22)【出願日】2022-04-06
(85)【翻訳文提出日】2023-11-16
(86)【国際出願番号】 IB2022053232
(87)【国際公開番号】W WO2022215006
(87)【国際公開日】2022-10-13
(31)【優先権主張番号】63/171,575
(32)【優先日】2021-04-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519087723
【氏名又は名称】ナイアンティック, インコーポレイテッド
【氏名又は名称原語表記】NIANTIC,INC.
【住所又は居所原語表記】One Ferry Building,Suite 200 San Francisco,CA 94111 United States of America
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】コリン グレーバー
(72)【発明者】
【氏名】グレース シン-イー ツァイ
(72)【発明者】
【氏名】マイケル デイビッド ファーマン
(72)【発明者】
【氏名】ガブリエル ジェイ.ブロストウ
(72)【発明者】
【氏名】アレクサンダー シュウィング
【テーマコード(参考)】
5B050
5L096
【Fターム(参考)】
5B050AA03
5B050BA09
5B050BA11
5B050BA13
5B050CA07
5B050CA08
5B050DA07
5B050EA04
5B050EA10
5B050EA26
5B050FA02
5B050FA06
5B050FA13
5L096DA01
5L096FA02
5L096FA69
5L096HA04
5L096KA04
5L096KA15
(57)【要約】
パノプティック・セグメンテーション予測は、前景オブジェクトおよび背景オブジェクトの未来位置を個別に予測する。エゴモーションモデルは、カメラの自己運動を推定するために実装され得る。取り込まれる映像のフレームにおけるピクセル群は、前景および背景に分類される。前景ピクセル群は、前景オブジェクトにグループ化される。前景モーションモデルは、前景オブジェクトの動きを未来タイムスタンプまで予測する。背景モーションモデルは、背景ピクセル群を三次元空間における点群に逆投影する。背景モーションモデルは、自己運動に基づいて、点群の未来位置を予測する。背景モーションモデルは、遮蔽された空間を埋めるための新しい点群をさらに生成し得る。予測される未来位置によると、前景オブジェクトおよび背景ピクセル群が、単一のパノプティック・セグメンテーション予測に結合される。拡張現実モバイルゲームは、パノプティック・セグメンテーション予測を利用して、現実世界の環境に関連する仮想要素の動きを正確に描写し得る。
【特許請求の範囲】
【請求項1】
環境の映像データを受信するステップであって、前記映像データが、ユーザー機器のカメラによって取り込まれるフレームを含む、ステップと、
前記フレームのピクセル群を前景および背景の間で分類するステップと、
前景として分類される前記ピクセル群から前景オブジェクトを識別するステップと、
前景モーションモデルを適用して、前記フレームにおける前記前景オブジェクトの位置に基づいて、未来タイムスタンプにおける前記前景オブジェクトの未来位置を予測するステップと、
背景モーションモデルを背景として分類される前記ピクセル群に適用して、前記フレームにおける推定深度、および背景として分類される前記ピクセル群の前記未来タイムスタンプにおける未来位置に基づいて予測するステップと、
前記未来タイムスタンプにおける前記前景オブジェクトの未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の未来位置とを組み合わせることによって、前記環境における未来時のパノプティック・セグメンテーションを生成するステップと、
前記未来時のパノプティック・セグメンテーションに基づいて、仮想オブジェクトを生成するステップと、
前記ユーザー機器の電子ディスプレイにおける映像データ上に前記仮想オブジェクトを重ねて表示するステップと
を備えることを特徴とする、方法。
【請求項2】
各フレームのピクセル群を前景および背景の間で分類するステップは、機械学習モデルであるピクセル分類モデルを適用するステップを含むことを特徴とする、請求項1に記載の方法。
【請求項3】
前景として分類される前記ピクセル群から一つまたは複数の前景オブジェクトを識別するステップは、前記識別された前景オブジェクトについて、(1)前記前景オブジェクトの一部として前景として分類されるピクセル群のグループと、(2)前記前景オブジェクトを囲む境界ボックスとを決定するステップを含むことを特徴とする、請求項1に記載の方法。
【請求項4】
前記前景オブジェクトを、前景オブジェクトの複数のカテゴリのうちの一つとして分類するステップをさらに備え、
前記前景モーションモデルは、前記前景オブジェクトについて分類される前記カテゴリに部分的に基づいて、前記前景オブジェクトの未来位置を予測する
ことを特徴とする、請求項1に記載の方法。
【請求項5】
前記前景モーションモデルは、
前記前景オブジェクトを入力し、抽象的なモーション特徴を出力するように構成される符号器と、
前記抽象的なモーション特徴を入力し、前記前景オブジェクトの未来位置を予測するように構成される復号器と
を備える機械学習モデルであることを特徴とする、請求項1に記載の方法。
【請求項6】
深度推定モデルを適用して、前記フレームにおける前記ピクセル群の深度を推定するステップ
をさらに備えることを特徴とする、請求項1に記載の方法。
【請求項7】
前記深度推定モデルは、地上検証深度を有する訓練画像を使用して訓練される機械学習モデルであり、前記深度推定モデルは、フレームを入力し、前記フレームのピクセル群についての深度を出力するように構成されることを特徴とする、請求項6に記載の方法。
【請求項8】
前記背景モーションモデルを背景として分類される前記ピクセル群に適用するステップは、
前記推定深度に基づいて、背景として分類される前記ピクセル群を三次元(3D)空間における点群に逆投影するステップと、
前記フレームにおける動きに基づいて、前記点群の動きを予測するステップと、
前記3Dの点群を補間することによって、一つまたは複数の新しい点群を生成するステップと
を含むことを特徴とする、請求項1に記載の方法。
【請求項9】
前記未来タイムスタンプにおける前記前景オブジェクトの前記未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の前記未来位置とを組み合わせるステップは、深度に基づいて、前記前景オブジェクトと、背景として分類される前記ピクセル群とを階層化するステップを含むことを特徴とする、請求項1に記載の方法。
【請求項10】
前記未来タイムスタンプにおける前記前景オブジェクトの前記未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の前記未来位置とを組み合わせるステップは、機械学習モデルを適用して、前記環境の前記未来時のパノプティック・セグメンテーションを生成するステップを含むことを特徴とする、請求項1に記載の方法。
【請求項11】
プロセッサによって実行されると、前記プロセッサに動作を実行させる命令を格納する非一時的コンピュータ可読記憶媒体であって、
環境の映像データを受信することであって、前記映像データが、ユーザー機器のカメラによって取り込まれるフレームを含む、ことと、
前記フレームのピクセル群を前景および背景の間で分類することと、
前景として分類される前記ピクセル群から前景オブジェクトを識別することと、
前景モーションモデルを適用して、前記フレームにおける前記前景オブジェクトの位置に基づいて、未来タイムスタンプにおける前記前景オブジェクトの未来位置を予測することと、
背景モーションモデルを背景として分類される前記ピクセル群に適用して、前記フレームにおける推定深度、および背景として分類される前記ピクセル群の前記未来タイムスタンプにおける未来位置に基づいて予測することと、
前記未来タイムスタンプにおける前記前景オブジェクトの未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の未来位置とを組み合わせることによって、前記環境の未来パノプティック・セグメンテーションを生成することと、
前記未来パノプティック・セグメンテーションに基づいて、仮想オブジェクトを生成することと、
前記ユーザー機器の電子ディスプレイにおける映像データ上に前記仮想オブジェクトを重ねて表示することと
を備えることを特徴とする、非一時的コンピュータ可読記憶媒体。
【請求項12】
各フレームのピクセル群を前景および背景の間で分類することは、機械学習モデルであるピクセル分類モデルを適用することを含むことを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項13】
前景として分類される前記ピクセル群から一つまたは複数の前景オブジェクトを識別することは、前記識別された前景オブジェクトについて、(1)前記前景オブジェクトの一部として前景として分類されるピクセル群のグループと、(2)前記前景オブジェクトを囲む境界ボックスとを決定することを含むことを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記前景オブジェクトを、前景オブジェクトの複数のカテゴリのうちの一つとして分類することをさらに備え、
前記前景モーションモデルは、前記前景オブジェクトについて分類される前記カテゴリに部分的に基づいて、前記前景オブジェクトの未来位置を予測する
ことを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
前記前景モーションモデルは、
前記前景オブジェクトを入力し、抽象的なモーション特徴を出力するように構成される符号器と、
前記抽象的なモーション特徴を入力し、前記前景オブジェクトの未来位置を予測するように構成される復号器と
を備える機械学習モデルであることを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項16】
深度推定モデルを適用して、前記フレームにおける前記ピクセル群の深度を推定すること
をさらに備えることを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記深度推定モデルは、地上検証深度を有する訓練画像を使用して訓練される機械学習モデルであり、前記深度推定モデルは、フレームを入力し、前記フレームのピクセル群についての深度を出力するように構成されることを特徴とする、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記背景モーションモデルを背景として分類される前記ピクセル群に適用することは、
前記推定深度に基づいて、背景として分類される前記ピクセル群を三次元(3D)空間における点群に逆投影することと、
前記フレームにおける動きに基づいて、前記点群の動きを予測することと、
前記3Dの点群を補間することによって、一つまたは複数の新しい点群を生成することと
を含むことを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記未来タイムスタンプにおける前記前景オブジェクトの前記未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の前記未来位置とを組み合わせることは、深度に基づいて、前記前景オブジェクトと、背景として分類される前記ピクセル群とを階層化することを含むことを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記未来タイムスタンプにおける前記前景オブジェクトの前記未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の前記未来位置とを組み合わせることは、機械学習モデルを適用して、前記環境における前記未来時のパノプティック・セグメンテーションを生成するステップを含むことを特徴とする、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項21】
車両を取り囲む環境の映像データを受信するステップであって、前記映像データが、前記車両に搭載されるカメラによって取り込まれるフレームを含む、ステップと、
前記フレームのピクセル群を前景および背景の間で分類するステップと、
前景として分類される前記ピクセル群から前景オブジェクトを識別するステップと、
前景モーションモデルを適用して、前記フレームにおける前記前景オブジェクトの位置に基づいて、未来タイムスタンプにおける前記前景オブジェクトの未来位置を予測するステップと、
背景モーションモデルを背景として分類される前記ピクセル群に適用して、前記フレームにおける推定深度、および背景として分類される前記ピクセル群の前記未来タイムスタンプにおける未来位置に基づいて予測するステップと、
前記未来タイムスタンプにおける前記前景オブジェクトの前記未来位置と、前記未来タイムスタンプにおいて背景として分類される前記ピクセル群の前記未来位置とを組み合わせることによって、前記環境における未来時のパノプティック・セグメンテーションを生成するステップと、
前記未来時のパノプティック・セグメンテーションに基づいて、前記環境における前記車両を航法するための制御信号を生成するステップと、
を備えることを特徴とする、方法。
【発明の詳細な説明】
【技術分野】
【0001】
説明される主題は、一般に、カメラによって取り込まれた入力画像フレームからオブジェクトの位置を予測することに関する。
【背景技術】
【0002】
[関連出願への相互参照]
本出願は、2021年4月6日に出願された米国仮出願第63/171,575号公報に対する優先権を主張し、その内容は、参照により組み込まれる。
【0003】
[課題]
拡張現実(AR)アプリケーションでは、仮想環境が現実世界の環境と同じ場所に配置される。現実世界の環境(例えば、ビデオフィードなど)の画像を取り込むカメラの姿勢が正確に決定される場合、仮想要素を現実世界の環境の描写(depiction)に正確に重ねることができる。例えば、仮想の帽子が現実の彫像の上部に配置され得る、および仮想のキャラクターが物理的なオブジェクトの背後に部分的に描写され得る、など。
【0004】
現実世界のオブジェクトが動き回ると、仮想要素が、現実世界のオブジェクトにおける未知の動きに起因して、遅れてしまうことがある。これにより、拡張現実の認識が壊されてしまう。上記の例に従うと、仮想の帽子によって拡張される現実世界の人物が、環境において動いている可能性がある。現実世界の人物の動きを予測しなければ、仮想の帽子を現在位置に更新しようと試みる間に、その時点までに人物が移動している可能性があるにも関わらず、遅延が発生するため、仮想の帽子は、その人物の後を追うことになる。この問題は、自動車のようなより高速に移動するオブジェクトに対しては、さらに悪化する。オブジェクトのモーションモデルは存在するものの、情景において種々のオブジェクトが独自の動きをする一方で、情景において他のオブジェクトは静止していることを考慮すると、これらのモデルは、情景における全てのオブジェクトの動きを正確かつ精密に予測する機能を十分に備えていない。
【発明の概要】
【0005】
本開示では、パノプティック・セグメンテーション予測(panoptic segmentation forecasting)へのアプローチについて説明する。パノプティック・セグメンテーション予測は、前景オブジェクトおよび背景オブジェクトの未来位置を別々に予測する。パノプティック・セグメンテーションでは、ピクセルの分類が前景オブジェクトおよび背景オブジェクトに組み込まれている。前景モーションモデルは、入力フレームから決定される前景オブジェクトの動きに基づいて、前景オブジェクトの未来位置を予測する。背景モーションモデルは、各フレームに適用されて、各ピクセルの推定深度(estimated depth)に基づいて、背景オブジェクトの未来位置を予測する。予測される前景の位置は、予測される背景の上に重ねられて、未来時のパノプティック・セグメンテーションを生成する。エゴモーションモデル(egomotion model)は、個別に訓練および実装されて、カメラアセンブリの自己運動を予測し得る。
【0006】
パノプティック・セグメンテーション予測の用途には、未来時のパノプティック・セグメンテーションに基づいて、拡張現実のアプリケーションにおいて仮想の画像を生成することが含まれ得る。生成される仮想の画像は、正確なパノプティック・セグメンテーション予測が提供される現実世界におけるオブジェクトと途切れなく相互作用し得る。パノプティック・セグメンテーション予測の他の応用には、エージェントの自律的な航法(autonomous navigation)が含まれる。
【図面の簡単な説明】
【0007】
図1】一つまたは複数の実施形態による、ネットワーク化コンピューティング環境を例証する図である。
図2】一つまたは複数の実施形態による、現実世界と並行する地理を有する仮想世界の表現を描写する図である。
図3】一つまたは複数の実施形態による、並行現実ゲームの例示的なゲームインターフェースを描写する図である。
図4】一つまたは複数の実施形態による、パノプティック・セグメンテーション・モジュールのアーキテクチャを例証するブロック図である。
図5】一つまたは複数の実施形態による、パノプティック・セグメンテーション予測の通常プロセスを記述するフローチャートである。
図6】一つまたは複数の実施形態による、深度推定モデルの訓練または適用に使用するのに適した例示的なコンピュータシステムを例証する図である。
【0008】
図面および以下の記述は、例証のみを目的として、特定の実施形態を説明する。当業者であれば、以下の記述から、説明される原理から逸脱することなく、構造および方法に関する代替的な実施形態を使用し得ることを容易に認識することであろう。ここで、幾つかの実施形態への参照を行うことになるが、それらの例は、添付の図に例証されている。
【発明を実施するための形態】
【0009】
[実施形態の詳細な説明]
(例示的な位置ベースの並行現実ゲームシステム)
現実世界におけるプレイヤーの移動およびアクションが仮想世界におけるアクションに影響を及ぼし、またその逆も同様であるように、種々の実施形態は、現実世界の地理の少なくとも一部と並行する仮想世界の地理に拡張現実のコンテンツを含む、並行現実ゲームの関連において説明されている。当業者であれば、本明細書において提供される開示内容を利用すると、パノプティック・セグメンテーション予測が望ましい他の状況においても、説明される主題が適用可能であると、理解するであろう。さらに、コンピュータベースのシステム固有の柔軟性により、システムのコンポーネント間において、およびコンポーネントの中から、タスクおよび機能に関する多種多様の可能な構成、組合せ、および分割が可能になる。例えば、本開示の態様によるシステムおよび方法は、単一のコンピューティング機器を使用して、または(例えば、コンピュータネットワークに接続される)複数のコンピューティング機器に亘って、実施することができる。
【0010】
図1は、一つまたは複数の実施形態による、ネットワーク化コンピューティング環境100を例証している。ネットワーク化コンピューティング環境100は、現実世界と並行する地理を有する仮想世界において、プレイヤーの相互作用を備えている。特に、現実世界における地理的領域は、仮想世界において対応する領域に直接的にリンクまたはマッピングを行うことができる。プレイヤーは、現実世界における種々の地理的位置に移動することによって、仮想世界において動き回ることができる。例えば、現実世界におけるプレイヤーの位置は追跡され、仮想世界におけるプレイヤーの位置を更新するために使用することができる。典型的には、現実世界におけるプレイヤーの位置は、プレイヤーが仮想世界と相互作用している際に経由するクライアント機器110の位置を見付け、プレイヤーが同じ(またはほぼ同じ)位置にいると仮定することによって決定される。例えば、種々の実施形態では、現実世界におけるプレイヤーの位置が、仮想世界における仮想要素の仮想位置に対応する現実世界の位置から閾値距離(例えば、10メートル、20メートルなど)以内にある場合、プレイヤーは、仮想要素と相互作用し得る。便宜上、「プレイヤーの位置(the player’s location)」を参照して、種々の実施形態を説明するが、当業者であれば、このような参照がプレイヤーのクライアント機器110の位置を指し得ることを理解するであろう。
【0011】
次に、一実施形態による、並行現実ゲームのプレイヤーのためのゲームボードとして機能することができる、現実世界200と並行する仮想世界210の概念図を描写する、図2への参照を行う。例証されるように、仮想世界210は、現実世界200の地理と並行する地理を含むことができる。特に、現実世界200における地理的領域または地理的空間を規定する座標の範囲は、仮想世界210における仮想空間を規定する座標の対応する範囲へのマッピングを受けている。現実世界200における座標の範囲は、町、近隣、都市、キャンパス、ロケール、国、大陸、地球全体、または他の地理的領域に関連付けることができる。地理的座標の範囲における各地理的座標は、仮想世界における仮想空間に対応する座標へのマッピングを受けている。
【0012】
仮想世界210におけるプレイヤーの位置は、現実世界200におけるプレイヤーの位置に対応している。例えば、現実世界200において位置212に配置されるプレイヤーAは、仮想世界210では対応する位置222を有している。同様に、現実世界において位置214に配置されるプレイヤーBは、仮想世界では対応する位置224を有している。プレイヤーが現実世界における地理的座標の範囲において動き回ると、プレイヤーは、仮想世界210における仮想空間を規定する座標の範囲においても動き回る。特に、プレイヤーによって携帯されるモバイルコンピューティング機器に関連付けられる測位システム(例えば、GPSシステムなど)は、プレイヤーが現実世界において地理的座標の範囲を航法する際に、プレイヤーの位置を追跡するために使用することができる。現実世界200におけるプレイヤーの位置に関連付けられるデータは、仮想世界210における仮想空間を規定する座標の対応する範囲において、プレイヤーの位置を更新するために使用される。このようにして、プレイヤーは、現実世界200における特定の離散的な位置で、位置情報を届け出たり、または位置情報を定期的に更新したりすることなく、地理的座標200における地理的座標の対応する範囲の中で単に移動することにより、仮想世界210における仮想空間を規定する座標の範囲において、連続的な軌道に沿って航法することができる。
【0013】
位置ベースのゲームは、仮想世界における種々の仮想位置に点在する種々の仮想要素および/または種々の仮想オブジェクトに移動すること、および/またはそれらと相互作用することをプレイヤーに要求する、複数のゲーム目標を含むことができる。プレイヤーは、現実世界において仮想要素または仮想オブジェクトに対応する位置に移動することによって、これらの仮想位置に移動することができる。例えば、測位システムがプレイヤーの位置を継続的に追跡することができることにより、プレイヤーが現実世界を継続的に航法するにつれて、プレイヤーは、並行の仮想世界も継続的に航法する。その後、プレイヤーは、特定位置にある種々の仮想要素および/または仮想オブジェクトと相互作用して、一つまたは複数のゲーム目標を達成または実行することかできる。
【0014】
例えば、ゲームの目標は、プレイヤーに、仮想世界210において種々の仮想位置に配置される仮想要素230に相互作用させることである。これらの仮想要素230は、現実世界200におけるランドマーク、地理的位置、またはオブジェクト240にリンクを行うことができる。現実世界のランドマークまたはオブジェクト240は、芸術作品、記念碑、建物、企業、図書館、博物館、または他の適切な現実世界のランドマークまたはオブジェクトとすることができる。相互作用には、幾つかの仮想アイテムの捕捉、幾つかの仮想アイテムの所有権の主張、幾つかの仮想アイテムの使用、幾つかの仮想通貨の使用等が含まれる。これらの仮想要素230を捕捉するために、プレイヤーは、現実世界において仮想要素230に対するリンクを受けるランドマークまたは地理的位置240に移動しなければならず、仮想世界210において仮想要素230に対して必要な何れかの相互作用を実行しなければならない。例えば、図2におけるプレイヤーAは、その特定のランドマーク240に対するリンクを受ける仮想要素230と相互作用するか、または仮想要素230を捕捉するために、現実世界200のランドマーク240まで移動する必要があることがある。仮想要素230に対する相互作用は、写真を撮影すること、および/または仮想要素230に関連付けられるランドマークまたはオブジェクト240に関する他の情報を確認、取得、または捕捉することなどの、現実世界における行動を要求することができる。
【0015】
ゲーム目標は、位置ベースのゲームにおいてプレイヤーによって収集されている一つまたは複数の仮想アイテムを、プレイヤーが使用することを要求することがある。例えば、プレイヤーは、ゲーム目標を達成するのに貢献することができる仮想アイテム(例えば、武器、クリーチャー(creatures)、パワーアップ(power ups)、または他のアイテムなど)を求めて、仮想世界210を移動し得る。これらの仮想アイテムは、現実世界200において様々な場所に移動することにより、または仮想世界210または現実世界200の何れかにおいて種々のアクションを完了することにより、発見または収集することができる。図2に示される例では、プレイヤーは、仮想アイテム232を使用して、一つまたは複数の仮想要素230を捕捉する。特に、プレイヤーは、仮想要素230に近接して、または仮想要素230の内部において、仮想世界210における位置に仮想アイテム232を展開することができる。この方式において一つまたは複数の仮想アイテム232を展開すると、特定のプレイヤーのための、または特定のプレイヤーのチーム/陣営のための仮想要素230の捕捉がもたらされる可能性がある。
【0016】
ある特定の実装では、プレイヤーは、並行現実ゲームの一部として、仮想エネルギーを収集しなければならないことがある。図2に描写されるように、仮想エネルギー250は、仮想世界210において種々の位置に散在することができる。プレイヤーは、現実世界200において仮想エネルギー250に対応する位置に移動することによって、仮想エネルギー250を収集することができる。仮想エネルギー250は、仮想アイテムにパワーを供給するため、および/またはゲームにおいて種々のゲーム目標を実行するために使用することができる。全ての仮想エネルギー250を失ったプレイヤーは、ゲームから切断される可能性がある。
【0017】
本開示の態様によると、並行現実ゲームは、ゲームにおける全ての参加者が同じ仮想世界を共有する、大規模なマルチプレイヤー形式の位置ベースのゲームとすることができる。プレイヤーは、別々のチームまたは陣営に分けることができ、仮想要素の所有権を捕捉または主張することなどの、一つまたは複数のゲーム目標を達成するために協力することができる。このようにして、並行現実ゲームは、本質的に、ゲーム内におけるプレイヤー間の協力を促進する、ソーシャルゲームとすることができる。敵対するチームのプレイヤー同士が、並行現実ゲーム中に、相互に対抗する(または、場合によっては相互の目標を達成するために協力し合う)ことができる。プレイヤーは、仮想アイテムを使用して、敵対するチームのプレイヤーを攻撃したり、またはその進行を妨害したりすることがある。場合によっては、プレイヤーは、並行現実ゲームにおいて協力的なイベントまたは相互作用的なイベントのために、現実世界の場所に集合することを推奨される。このような場合、ゲームサーバは、プレイヤーが実際に物理的に存在し、成り済ましをしていないこと(not spoofing)を保証することを求めている。
【0018】
並行現実ゲームは、並行現実ゲーム内のゲームプレイを強化および促進するための種々の機能を有することができる。例えば、プレイヤーは、(例えば、ゲーム内アイテムの購入、他のアイテムの交換、アイテムの作成等を行うために)ゲーム全体で使用することができる、仮想通貨または別の仮想報酬(例えば、仮想トークン、仮想ポイント、仮想マテリアルリソース等)を蓄積することができる。プレイヤーは、一つまたは複数のゲーム目標を完了し、ゲーム内の経験を獲得するにつれて、種々のレベルの中を通過することができる。幾つかの実施形態では、プレイヤーは、ゲームにおいて提供される一つまたは複数の通信インターフェースを通じて相互に通信することができる。プレイヤーは、ゲーム内のゲーム目標を達成するために使用することができる、強化された「パワー(powers)」または仮想アイテムを入手することもできる。当業者であれば、本明細書において提供される開示を利用すると、本開示の範囲から逸脱することなく、他の種々のゲーム特徴を並行現実ゲームに含めることができると、理解するはずである。
【0019】
図1を再び参照すると、ネットワーク化コンピューティング環境100は、クライアント・サーバのアーキテクチャを使用するが、ここでは、ゲームサーバ120が、ネットワーク105を介してクライアント機器110と通信して、クライアント機器110を持つプレイヤーに並行現実ゲームを提供する。また、ネットワーク化コンピューティング環境100は、スポンサー/広告主システムまたはビジネスシステムなどの、他の外部システムを含み得る。図1には、一つのみのクライアント機器110が例証されているが、任意数のクライアント110または他の外部システムが、ネットワーク105を介してゲームサーバ120に接続され得る。さらに、ネットワーク化コンピューティング環境100は、異なる要素または追加の要素を含み得て、機能は、以下で説明するものとは異なる方式においてクライアント機器110およびサーバ120の間に分散され得る。
【0020】
クライアント機器110は、ゲームサーバ120とインターフェースで連結するために、プレイヤーが使用することができる任意のポータブルコンピューティング機器とすることができる。例えば、クライアント機器110は、無線機器、携帯情報端末(personal digital assistant)(PDA)、ポータブルゲーム機器、携帯電話(cellular phone)、スマートフォン、タブレット、航法システム(navigation system)、ハンドヘルドGPSシステム、ウェアラブルコンピューティング機器、一つまたは複数のディスプレイを有するディスプレイ、またはそのような他のデバイスとすることができる。別の例では、クライアント機器110は、デスクトップコンピュータまたはラップトップコンピュータなどの、従来のコンピュータシステムを含む。さらになお、クライアント機器110は、コンピューティング機器を備える車両とし得る。要するに、クライアント機器110は、プレイヤーにゲームサーバ120と相互作用することを可能にすることができる、任意のコンピュータ機器またはコンピュータシステムとすることができる。コンピューティング機器として、クライアント機器110は、一つまたは複数のプロセッサ、および一つまたは複数のコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、プロセッサに動作を実行させる命令を格納することができる。クライアント機器110は、スマートフォンまたはタブレットなどの、プレイヤーと共に容易に持ち運ぶ、または別の方法によって輸送することができるポータブルコンピューティング機器であることが好ましい。
【0021】
クライアント機器110は、ゲームサーバ120に物理的環境の感覚データ(sensory data)を提供するゲームサーバ120と通信する。クライアント機器110は、クライアント機器110が存在する物理的環境における二次元の情景内の画像データを取り込むカメラアセンブリ125を含む。図1に示される実施形態では、各クライアント機器110は、ゲームモジュール(gaming module)135および測位モジュール(positioning module)140などの、ソフトウェアコンポーネントを含む。クライアント機器110は、パノプティック・セグメンテーション予測のためのパノプティック・セグメンテーション・モジュール142も含む。クライアント機器110は、プレイヤーから情報を受信し、および/またはプレイヤーに情報を提供するための、他の種々の入出力デバイスを含み得る。入出力デバイスの例には、ディスプレイ画面、タッチ画面、タッチパッド、データ入力キー、スピーカー、および音声認識に適したマイクロフォンが含まれる。また、クライアント機器110は、クライアント機器110からのデータを記録するための他の種々のセンサーを含み得る。これには、移動センサー(movement sensors)、加速度計、ジャイロスコープ、他の慣性測定ユニット(IMUs)、気圧計、測位システム、温度計、光センサー等が含まれるが、これらに限定されない。クライアント機器110は、ネットワーク105を介して通信を提供するためのネットワークインターフェースをさらに含むことができる。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、または他の適切なコンポーネントを含む、一つまたは複数のネットワークとインターフェースで連結するのに適した任意のコンポーネントを含むことができる。
【0022】
カメラアセンブリ125は、クライアント機器110が存在する環境の情景に関する画像データを取り込む。カメラアセンブリ125は、様々なカラー捕捉範囲(color capture ranges)を様々な捕捉率(capture rates)で有する、様々な各種のフォトセンサーを利用し得る。カメラアセンブリ125は、広角レンズ(wide-angle lens)または望遠レンズ(telephoto lens)を含み得る。カメラアセンブリ125は、単一の画像、または画像データとして映像を取り込むように構成され得る。さらに、カメラアセンブリ125の向きは、カメラアセンブリ125が地平線に向けられた状態で地面と並行とすることができる。カメラアセンブリ125は、画像データを取り込み、その画像データをクライアント機器110上のコンピューティング機器と共有する。画像データには、感覚データ(例えば、環境の温度、明るさなど)または捕捉データ(例えば、露出、ウォームス(warmth)、シャッタースピード、焦点距離、捕捉時刻(capture times)等)を含む、画像データの他の詳細を記述するメタデータを追加することができる。カメラアセンブリ125は、画像データを取り込むことができる、一つまたは複数のカメラを含むことができる。一例では、カメラアセンブリ125は、1台のカメラを備え、単眼画像データ(monocular image data)を取り込むように構成される。別の例では、カメラアセンブリ125は、2台のカメラを備え、立体画像データ(stereoscopic image data)を取り込むように構成される。他の種々の実装では、カメラアセンブリ125は、画像データを取り込むようにそれぞれ構成される複数のカメラを備える。
【0023】
ゲームモジュール135は、プレイヤーに並行現実ゲームに参加するためのインターフェースを提供する。ゲームサーバ120は、クライアント機器110にあるゲームモジュール135によって使用されるために、ネットワーク105を介してクライアント機器110にゲームデータを送信して、ゲームサーバ120から離れた場所にいるプレイヤーにゲームのローカル版(local versions)を提供する。ゲームサーバ120は、ネットワーク105を介して通信を提供するためのネットワークインターフェースを含むことができる。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、または他の適切なコンポーネントを含む、一つまたは複数のネットワークとインターフェースで結合するための任意の適切なコンポーネントを含むことができる。
【0024】
クライアント機器110によって実行されるゲームモジュール135は、プレイヤーと並行現実ゲームの間のインターフェースを提供する。ゲームモジュール135は、ゲームに関連付けられる仮想世界を表示する(例えば、仮想世界におけるイメージのレンダリングを行う)、クライアント機器110に関連付けられるディスプレイ機器上にユーザーインターフェースを提示することができ、ユーザーが仮想世界において相互作用して、種々のゲーム目標を実行することを可能にする。幾つかの他の実施形態では、ゲームモジュール135は、並行現実ゲームからの仮想要素によって拡張された現実世界からの(例えば、カメラアセンブリ125によって取り込まれた)画像データを提示する。これらの実施形態では、ゲームモジュール135は、クライアント機器110の他のコンポーネントから受信される他の情報に従って、仮想コンテンツを生成し、かつ/または仮想コンテンツを調整し得る。例えば、ゲームモジュール135は、画像データ内に取り込まれた情景の深度マップ(depth map)に従って、ユーザーインターフェース上に表示される仮想オブジェクトを調整し得る。
【0025】
また、ゲームモジュール135は、プレイヤーがディスプレイ画面を見る必要もなく、ゲームと相互作用することを可能にするように、他の種々の出力を制御することもできる。例えば、ゲームモジュール135は、プレイヤーが、ディスプレイ画面を見ることなく、ゲームをプレイすることを可能にする、種々の音声、振動、または他の通知を制御することができる。ゲームモジュール135は、ゲームサーバ120から受信されるゲームデータにアクセスして、ゲームの正確な表現をユーザーに提供することができる。ゲームモジュール135は、プレイヤー入力を受信して処理し、ネットワーク105を介してゲームサーバ120に更新(updates)を提供することができる。ゲームモジュール135は、クライアント機器110によって表示されるゲームコンテンツを生成および/または調整し得る。例えば、ゲームモジュール135は、例えば、カメラアセンブリ125によって取り込まれた画像、またはパノプティック・セグメンテーション・モジュール142によって生成される未来時のパノプティック・セグメンテーション(future panoptice segmentation)に基づいて、仮想要素を生成し得る。
【0026】
測位モジュール140は、クライアント機器110の位置を監視するための任意の機器または回路とすることができる。例えば、測位モジュール140は、衛星航法測位システム(例えば、GPSシステム、ガリレオ測位システム、全地球航法衛星システム(GLONASS)、北斗衛星航法および測位システムなど)、慣性航法システム、推測航法システム、IPアドレスに基づいて、三角測量および/またはセルラータワーもしくはWi-Fiホットスポットへの近接の使用によって、および/または位置を決定するのに適した他の技術を使用することにより、実際の位置または相対的位置を決定することができる。測位モジュール140は、クライアント機器110の位置を正確に測位することに貢献し得る、他の種々のセンサーをさらに含み得る。
【0027】
プレイヤーが現実世界においてクライアント機器110と共に動き回ると、測位モジュール140は、プレイヤーの位置を追跡し、プレイヤーの位置情報をゲームモジュール135に提供する。ゲームモジュール135は、現実世界におけるプレイヤーの実際位置に基づいて、ゲームに関連付けられる仮想世界におけるプレイヤーの位置を更新する。そのため、プレイヤーは、現実世界においてクライアント機器110を持ち運ぶか、または輸送することによって、仮想世界と相互作用することができる。特に、仮想世界におけるプレイヤーの位置は、現実世界におけるプレイヤーの位置に対応することができる。ゲームモジュール135は、ネットワーク105を介してゲームサーバ120にプレイヤーの位置情報を提供することができる。これに応じて、ゲームサーバ120は、クライアント機器110の位置を検証するための種々の技法を実践して、不正行為者(cheaters)がクライアント機器110の位置を偽装すること(spoofing)を防止し得る。プレイヤーに関連付けられる位置情報は、プレイヤーの位置情報にアクセスすること、およびその位置情報がゲームのコンテキストにおいて如何に(例えば、仮想世界におけるプレイヤーの位置を更新するために)利用されるのかを、プレイヤーに通知した後に許可が与えられる場合にのみ利用されると、理解されるべきである。さらに、プレイヤーに関連付けられる位置情報は、プレイヤーのプライバシーを保護する方式において保存および維持されることになる。
【0028】
パノプティック・セグメンテーション・モジュール142は、カメラアセンブリ125によって取り込まれた入力フレームから未来時のパノプティック・セグメンテーションを予測する。パノプティック・セグメンテーション・モジュール142は、入力フレームにおけるピクセル群を、前景オブジェクトまたは背景オブジェクトの何れかに関連するものとして分類する。パノプティック・セグメンテーション・モジュール142は、前景ピクセル群から前景オブジェクトを識別し、前景モーションモデルを適用して、前景オブジェクトの未来位置を予測する。背景ピクセル群を用いて、パノプティック・セグメンテーション・モジュール142は、背景モーションモデルを適用して、背景ピクセル群の未来位置を予測する。一実施形態では、3D点群空間(3D point cloud space)に対する背景ピクセルの逆投影(backprojection)を使用し、背景モーションモデルを用いて3D点群を予測する。パノプティック・セグメンテーション・モジュール142は、前景オブジェクトの未来位置を背景オブジェクトの未来位置に重ねて、未来時のパノラマセグメンテーションを作成する。パノプティック・セグメンテーション・モジュール142は、パノプティック・セグメンテーションにおいて測位モジュール140によって決定される測位情報をさらに使用し得る。
【0029】
未来時のパノプティック・セグメンテーションは、クライアント機器110の他のコンポーネントによって使用される。例えば、ゲームモジュール135は、未来時のパノプティック・セグメンテーションに基づいて、拡張現実のための仮想オブジェクトを生成し得る。これにより、仮想オブジェクトが、最小限の遅れがほとんどないままに、環境と相互作用することが可能になり、すなわち、現実のオブジェクトが仮想オブジェクトと衝突しても、仮想オブジェクトは変化しないという状況を回避することが可能になる。クライアント機器110を車両とする実施形態では、他のコンポーネントは、未来時のパノラマセグメンテーションに基づいて、車両を航法するための制御信号を生成し得る。この制御信号は、環境においてオブジェクトに対する衝突を積極的に回避し得る。
【0030】
ここで、図4を参照すると、図4は、一つまたは複数の実施形態による、パノプティック・セグメンテーション・モジュール142のアーキテクチャを例証するブロック図である。パノプティック・セグメンテーション・モジュール142は、ピクセル分類モデル410、前景モーションモデル420、背景モーションモデル430、および集約モデル440を含む。また、パノプティック・セグメンテーション・モジュール142は、クライアント機器110の動きをモデル化するためのエゴモーションモデル450を含み得る。
【0031】
ピクセル分類モデル410は、カメラアセンブリ135によって取り込まれた入力フレームにおけるピクセル群を、前景または背景の何れかに関連するものとして分類する。ピクセル分類モデル410は、個々の前景オブジェクトに関連する、前景ピクセルをグループ化し得る。一実施形態では、ピクセル分類モデル410は、個々の前景オブジェクトに関連する前景ピクセル群をグループ化し、残りのピクセル群を背景としてラベル付けする。さらに、ピクセル分類モデル410は、識別された各前景オブジェクトをカテゴリに分類し得る。例えば、カテゴリには、歩行者(pedestrians)、自転車乗り(bikers)、自動車、ペット等が含まれ得る。カテゴリは、さらにサブカテゴリに分割され得る。例えば、歩行者は、ウォーカー、ランナー等に分けられる。一実装では、ピクセル分類モデル410は、個々の前景オブジェクトに関連する前景ピクセル群をグループ化するために、機械学習アルゴリズム、例えば、MaskRCNNなどを実装する。幾つかの実施形態では、ピクセル分類モデル410は、背景ピクセル群を複数のラベル、例えば、地面、空、建物、樹木等にさらにカテゴリで分類する。前景ピクセル群および/または前景オブジェクトは、前景モーションモデル420に提供され、背景ピクセル群は、背景モーションモデル430に提供される。一つまたは複数の実施形態では、ピクセル分類モデル410は、ピクセルを前景および背景の間に分類するプロセスにおいて、エゴモーションモデル450によって決定される自己運動を活用し得る。例えば、エゴモーションモデル450は、フレームを取り込むカメラの自己運動を決定し、ピクセル分類モデル410は、前景オブジェクトを示すものとして、自己運動とは異なる速度で移動するオブジェクトまたはピクセルを識別し得る。
【0032】
前景モーションモデル420は、入力フレームにおける前景ピクセル群の動きを予測する。一つまたは複数の実施形態によると、前景モーションモデル420は、オブジェクト追跡モデル422、オブジェクトモーション符号器(object motion encoder)424、およびオブジェクトモーション復号器(object motion decoder)426を含む。オブジェクト追跡モデル422は、取り込まれる各フレームにおける各前景の位置を追跡する。オブジェクトモーション符号器424は、取り込まれたフレームを入力し、各前景オブジェクトの予測された動きに関連する抽象的特徴を出力する。オブジェクトモーション復号器426は、その抽象的特徴を入力し、例えば、入力フレームからの後続の時刻における、予測された各前景オブジェクトの未来位置を出力する。
【0033】
オブジェクト追跡モデル422は、経時的に前景オブジェクトの動きを追跡する。オブジェクト追跡モデル422は、機械学習アルゴリズム、例えば、DeepSortを実装し得る。前景モーションモデル420(およびその種々のコンポーネント)が前景オブジェクトの位置および/または動きを予測すると、オブジェクト追跡モデル422は、様々な入力フレームにおいて前景オブジェクトを追跡し得る。追加の画像データが取り込まれると、オブジェクト追跡モデル422は、追加の画像データに基づいて、前景オブジェクトの位置をさらに追跡し得る。幾つかの実施形態では、オブジェクト追跡モデル422は、後続して取り込まれた画像データにおける前景オブジェクトの実際位置に対して、前景モーションモデル420によって予測される前景オブジェクトの予測位置をスコア付けし得る。このスコアは、前景モーションモデル420をさらに改良するために、前景モーションモデル420によって利用され得る。
【0034】
オブジェクトモーション符号器424は、オブジェクト追跡モデル422によって識別される前景オブジェクトを含むフレームを入力し、その前景オブジェクトのために予測される動きに関連する抽象的特徴を出力する。また、オブジェクトモーション符号器424は、エゴモーションモデル450によって決定される自己運動を入力し得る。一つまたは複数の実施形態では、オブジェクトモーション符号器424は、2個のサブ符号器(sub-encoders)を備える。前景オブジェクトの場合、オブジェクトモーション符号器424は、入力フレームからピクセル分類モデル410によって決定されるものとして、境界ボックス特徴、マスク特徴、およびオドメトリ(経時的位置変化推定)(odometry)を入力する。境界ボックス特徴は、前景オブジェクトを完全に取り囲む、最小の長方形とし得る。マスク特徴は、他のピクセル群を除外しながら、前景オブジェクトのピクセル群を保持するビットマップとし得る。前景オブジェクトのオドメトリは、入力フレームに亘る前景の動きを追跡することによって測定することができる。第一のサブ符号器は、境界ボックスの特徴、オドメトリ、およびマスク特徴の変換から、ボックス状態表現(box state representation)を決定する。第二のサブ符号器は、マスク特徴およびボックス状態表現からマスク状態表現(mask state representation)を決定する。
【0035】
オブジェクトモーション復号器426は、抽象的特徴を入力し、各前景オブジェクトの予測された未来位置を出力する。幾つかの実施形態では、前景モーションモデル420は、単一の前景オブジェクトを(例えば、一度に)入力して、その前景オブジェクトの未来位置を予測する。一つまたは複数の実施形態では、オブジェクトモーション復号器426は、2個のサブ復号器を備える。第一のサブ復号器は、未来時の境界ボックスを予測し、第二のサブ復号器は、未来時のマスク特徴を予測する。これらのサブ復号器は、複数の未来時のタイムスタンプの各々について、その前景オブジェクトの未来位置を予測することができる。例えば、t,t,・・・,t(ここで、tは、入力フレームの最新タイムスタンプ、および先行するタイムスタンプである)のためのフレームを入力し、tT+1,tT+2,・・・,tT+F(ここで、tT+Fは、最遠の未来タイムスタンプである)のための未来位置を出力することができる。予測された未来位置は、前景オブジェクトの遠近感および/またはスケールをさらに変更し得る。
【0036】
前景モーションモデル420は、各前景オブジェクトのカテゴリをさらに考慮し得る。例えば、前景モーションモデル420は、複数のサブモデルを備え得て、各サブモデルは、前景オブジェクトのカテゴリごとに訓練される。これにより、様々なカテゴリの前景オブジェクトごとの動きをより正確にモデル化することが可能になる。例えば、車両は、歩行者に比較して、非常に速く移動することができる。
【0037】
背景モーションモデル430は、入力フレームにおける背景ピクセル群の動きを予測する、すなわち、背景ピクセルの未来位置を予測する。一つまたは複数の実施形態によると、背景モーションモデル430は、逆投影モデル432、意味論的モーションモデル434、および任意選択として改良モデル(refinement model)436を含む。
【0038】
逆投影モデル432は、背景ピクセルの深度に基づいて、背景ピクセル群を3D点群空間に3D点群として逆投影する。深度は、例えば、2017年9月12日に出願された「統計モデルを使用した画像データからの深度予測(Predicting Depth From Image Data Using a Statistical Model)」と題する米国特許出願第16/332,343号、2019年5月16日に出願された「深度推定システムの自己教師あり訓練(Self-Supervised Training of a Depth Estimation System)」と題する米国出願第16/413,907号、および2020年5月1日に出願された「深度ヒントを使用した深度推定モデルの自己教師あり訓練(Self-Supervised Training of a Depth Estimation Model Using Depth Hints)」と題する米国出願第16/864,743号に記載されている、ステレオ深度(stereo depthe)推定モデルおよび/またはモノ深度(monodepth)推定モデルによって決定され得る。逆投影モデル432は、入力フレームの視点から3D点群空間を生成する。逆投影モデル432は、逆投影におけるカメラ固有パラメータをさらに考慮し得る。例えば、逆投影モデル432は、カメラの焦点距離およびセンサーのサイズを利用して、カメラの視点からの視錐台(viewing frustrum)を確立する。また、逆投影モデル432は、カメラの焦点距離を利用して、ピクセル群の深度を推定し得る。各ピクセルのための推定深度(estimated depth)を用いると、逆投影モデル432は、推定深度に基づいて、ピクセル群を3D点群に投影する。
【0039】
意味論的モーションモデル434は、エゴモーションモデル450によって決定される自己運動に基づいて、3D点群を予測する。カメラの自己運動には、位置、向き、並進運動、回転運動等が含まれ得る。自己運動は、未来時の自己運動、例えば、未来時の位置、未来時の向き、未来時の並進運動、未来時の回転運動等をさらに含み得る。未来時の自己運動に基づくと、意味論的モーションモデル434は、カメラの未来位置を考慮するように、3D点群を変換し得る。
【0040】
改良モデル436は、予測された3D点群を使用して、そのようなギャップを埋める。以前に遮蔽されたピクセル群の領域において、点群がまばらになり、情報が不足している可能性がある。背景改良モデルを訓練するには、目標フレームにおける前景オブジェクトに対応していないピクセル群に、クロスエントロピー損失(cross-entropy loss)が適用される。これにより、改良モデル436の出力が各ピクセルにおける地上検証データ(ground truth)のセマンティック・セグメンテーション(ground truth semantic segmentation)と一致することが促進される。これらのギャップを埋めるために、改良モデル436は、既存の点群から補間する新しい点群を生成し得る。
【0041】
集約モデル440は、前景ピクセル群の未来位置を背景ピクセルの未来位置に重ねる。階層化(layering)は、より近い深度にあるオブジェクトがより遠い深度にあるオブジェクトの上に階層化されるように順序付けされる。その結果、前景オブジェクトの未来位置および背景オブジェクトの未来位置を含む、未来時のパノプティック・セグメンテーションがもたらされる。
【0042】
エゴモーションモデル450を備える実施形態では、エゴモーションモデル450は、カメラアセンブリ135の自己運動を推定する。エゴモーションモデル450は、例えば、一つまたは複数の機械学習アルゴリズムを実装して、カメラアセンブリ135の過去の動きに基づいて、自己運動を予測し得る。例えば、エゴモーションモデル450は、カメラアセンブリ135によって取り込まれたフレームにおける過去のカメラの動きを予測する際に、視覚的なオドメトリを利用し得る。幾つかの実施形態では、エゴモーションモデル450は、測位モジュール140によって捕捉される位置データを組み込む。
【0043】
パノプティック・セグメンテーション・モジュール142の一実施形態(図4には図示されない)では、前景モーションモデル420および背景モーションモデル430は、前景ピクセル群および背景ピクセル群の動きに関連する抽象的特徴を出力する。集約モデル440は、その抽象的特徴を入力し、未来時のパノプティック・セグメンテーションを出力するように訓練されたニューラルネットワークとし得る。
【0044】
図1に戻って参照すると、ゲームサーバ120は、任意のコンピューティング機器とすることができ、一つまたは複数のプロセッサおよび一つまたは複数のコンピュータ可読記憶媒体を含むことができる。このコンピュータ可読記憶媒体は、プロセッサに動作を実行させる命令を格納することができる。ゲームサーバ120は、ゲームデータベース115を含むことができ、またはゲームデータベース115と通信することができる。ゲームデータベース115は、ネットワーク105を介してクライアント110に応対または提供される並行現実ゲームにおいて使用されるゲームデータを格納する。
【0045】
ゲームデータベース115に格納されるゲームデータは、次を含み得る。(1)並行現実ゲームにおける仮想世界に関連付けられるデータ(例えば、ディスプレイ機器上に仮想世界のレンダリングを行うために使用されるイメージのデータ、仮想世界における位置の地理的座標等)、(2)並行現実ゲームのプレイヤーに関連付けられるデータ(例えば、プレイヤーの情報、プレイヤーの経験レベル、プレイヤーの通貨、仮想世界/現実世界におけるプレイヤーの現在位置、プレイヤーのエネルギーレベル、プレイヤーの趣向、チームの情報、陣営の情報等)、(3)ゲーム目標に関連付けられるデータ(例えば、現在のゲーム目標、ゲーム目標のステータス、過去のゲーム目標、未来のゲーム目標、望ましいゲーム目標等に関連付けられるデータなど)、(4)仮想世界における仮想要素に関連付けられるデータ(例えば、仮想要素の位置、仮想要素の種類、仮想要素に関連付けられるゲーム目標、仮想要素に対応する実際世界の位置情報、仮想要素の行動、仮想要素の関連性等)、(5)現実世界のオブジェクト、ランドマーク、仮想世界の要素へのリンクを受ける位置に関連付けられるデータ(例えば、現実世界のオブジェクト/ランドマークの位置、現実世界のオブジェクト/ランドマークの説明、現実世界のオブジェクトへのリンクを受ける仮想要素の関連性等)、(6)ゲームのステータス(例えば、プレイヤーの現在数、ゲーム目標の現在ステータス、プレイヤーのリーダーボード等)、(7)プレイヤーのアクション/入力に関連付けられるデータ(例えば、プレイヤーの現在位置、プレイヤーの過去位置、プレイヤーの動き、プレイヤーの入力、プレイヤーのクエリ、プレイヤーの通信等)、および(8)並行現実ゲームの実装中に使用、関連、または取得される他の任意データ。ゲームデータベース115に格納されるゲームデータは、システム管理者によって、および/またはクライアント機器110からネットワーク105を介してなどの、システム100のユーザー/プレイヤーから受信されるデータによって、オフラインまたはリアルタイムの何れかで置き換えることができる。
【0046】
ゲームサーバ120は、クライアント機器110から(例えば、リモートプロシージャコール(RPC)を介して)ゲームデータに対する要求を受信し、ネットワーク105を介してそれらの要求に応答するように構成することができる。例えば、ゲームサーバ120は、ゲームデータを一つまたは複数のデータファイルに符号化し、そのデータファイルをクライアント機器110に提供することができる。さらに、ゲームサーバ120は、クライアント機器110からネットワーク105を介してゲームデータ(例えば、プレイヤーの位置、プレイヤーのアクション、プレイヤーの入力等)を受信するように構成することができる。例えば、クライアント機器110は、プレイヤーの入力および他の更新をゲームサーバ120に定期的に送信するように構成することができるため、ゲームサーバ120は、それらを使用して、ゲームデータベース115におけるゲームデータを更新して、ゲームのための変更条件の何れかおよび全てを反映する。
【0047】
図示される実施形態では、サーバ120は、ユニバーサルゲームモジュール145、コマーシャルゲームモジュール150、データ収集モジュール155、イベントモジュール160、およびパノプティック・セグメンテーション訓練システム170を含む。上述されるように、ゲームサーバ120は、ゲームサーバ120の一部であってもよいし、遠隔的にアクセスされてもよい、ゲームデータベース115と相互作用する(例えば、ゲームデータベース115は、ネットワーク105を介してアクセスされる分散データベースとし得る)。他の実施形態では、ゲームサーバ120は、異なる要素および/または追加の要素を含む。さらに、その機能は、説明とは異なる方式において要素間で分散され得る。例えば、ゲームデータベース115は、ゲームサーバ120に統合することができる。
【0048】
ユニバーサルゲームモジュール145は、全てのプレイヤーのための並行現実ゲームのホストを行い、全てのプレイヤーのための並行現実ゲームの現在ステータスについての信頼できる情報源(autoritative source)として機能する。ホストとして、ユニバーサルゲームモジュール145は、例えば、それらのそれぞれのクライアント機器110を介して、プレイヤーに提示するためのゲームコンテンツを生成する。ユニバーサルゲームモジュール145は、並行現実ゲームをホストする際に、ゲームデータベース115にアクセスして、ゲームデータを取得および/または保存し得る。また、ユニバーサルゲームモジュール145は、クライアント機器110からゲームデータ(例えば、深度の情報、プレイヤーの入力、プレイヤーの位置、プレイヤーのアクション、ランドマークの情報等)を受信し、並行現実ゲームの全てのプレイヤーのために、受信されたゲームデータを並行現実ゲーム全体に組み込む。ユニバーサルゲームモジュール145は、ネットワーク105を介してクライアント機器110へのゲームデータの配信を管理することもできる。また、ユニバーサルゲームモジュール145は、クライアント機器110およびゲームサーバ120の間の接続を保護すること、種々のクライアント機器110の間の接続を確立すること、および種々のクライアント機器110の位置を確認することを含むが、これらに限定されない、クライアント機器110のセキュリティ態様を管理し得る。
【0049】
コマーシャルゲームモジュール150が含まれる実施形態では、コマーシャルゲームモジュール150は、ユニバーサルゲームモジュール145とは別個とすることもできるし、またはユニバーサルゲームモジュール145の一部とすることもできる。コマーシャルゲームモジュール150は、現実世界におけるコマーシャル活動とのリンクを受ける並行現実ゲーム内に、種々のゲーム機能を含めることを管理することができる。例えば、コマーシャルゲームモジュール150は、スポンサー/広告主、企業、または他のエンティティなどの、外部システムからネットワーク105を介して(ネットワークインターフェースを介して)要求を受信して、並行現実ゲームにおけるコマーシャル活動とのリンクを受ける、ゲーム機能を含めることができる。次いで、コマーシャルゲームモジュール150は、これらのゲーム特徴を並行現実ゲームに含めるように手配することができる。
【0050】
ゲームサーバ120は、データ収集モジュール155をさらに含むことができる。データ収集モジュール155が含まれる実施形態では、データ収集モジュール155は、ユニバーサルゲームモジュール145とは別個とすることができるし、またはユニバーサルゲームモジュール145の一部とすることができる。データ収集モジュール155は、現実世界におけるデータ収集活動とのリンクを受ける、並行現実ゲーム内における種々のゲーム機能の組み込みを管理することができる。例えば、データ収集モジュール155は、ゲームデータベース115に格納されるゲームデータを修正して、並行現実ゲームにおけるデータ収集活動とのリンクを受けるゲーム特徴を含めることができる。データ収集モジュール155は、データ収集活動に従って、プレイヤーによって収集されるデータを分析し、種々のプラットフォームによるアクセスのためのデータを提供することもできる。
【0051】
イベントモジュール160は、並行現実ゲームにおけるイベントへのプレイヤーのアクセスを管理する。「イベント(event)」という用語は便宜上使用されているが、この用語は特定の場所または時間における特定のイベントを指す必要はないと、理解されるべきである。むしろ、プレイヤーがそのコンテンツにアクセスし得るかどうかを判定するために、一つまたは複数のアクセス基準(access criteria)が使用される、アクセス制御されたゲームコンテンツの何れかの提供を指すことがある。このようなコンテンツは、アクセス制御が少ない、または全くないゲームコンテンツを含む、より大規模な並行現実ゲームの一部である場合もあるし、またはアクセス制御されたスタンドアロンの並行現実ゲームである場合もある。
【0052】
パノプティック・セグメンテーション訓練システム170は、パノプティック・セグメンテーション・モジュール142によって使用されるモデルを訓練する。パノプティック・セグメンテーション訓練システム170は、パノプティック・セグメンテーション・モジュール142のモデルを訓練する際に使用するための画像データを受信する。通常、パノプティック・セグメンテーション訓練システム170は、パノプティック・セグメンテーション・モジュール142のモデルにおける教師あり訓練(supervised training)を実行し得る。モデルの訓練は、同時に、または別々に行い得る。教師あり訓練によると、特定のモデルまたはモデル群の訓練に使用されるデータセットは、地上検証データを有しており、予測がそれに対して評価されて、損失を計算する。訓練システム170は、モデルの重みを繰り返し調整し、その損失を最適化する。未来時のパノプティック・セグメンテーションが、情景における前景オブジェクトの未来位置および背景オブジェクトの未来位置を予測するため、移動エージェント(moving agent)上のカメラによって捕捉される映像(video)を教師あり訓練に使用することができる。訓練システム170は、フレームのサブセットを入力し、映像において後続のタイムスタンプで未来時のパノプティック・セグメンテーションを生成することを試みる。訓練システム170は、未来時のパノプティック・セグメンテーションをその後続のタイムスタンプにおけるフレームと比較し得る。
【0053】
この原理は、パノプティック・セグメンテーション・モジュール142のコンポーネントの各々に適用される。例えば、前景モーションモデル420を利用すると、訓練システム170は、映像を入力フレームと地上検証データの未来位置とに再分割する。例えば、訓練システム170は、スライドウィンドウ(sliding window)を使用して、数個の隣接するタイムスタンプ付きフレームのサブセットを取り込む(例えば、6個のフレームにグループ化する)。想定される現在のタイムスタンプは、隣接するタイムスタンプ付きフレームの各サブセットを訓練入力のフレームと訓練地上検証データのフレームとに分割するために使用される(例えば、6個のフレームのうち3個は訓練入力のフレームであり、6個のフレームのうち3個は訓練地上検証データのフレームである)。訓練システム170は、訓練入力フレームを前景モーションモデル420に入力して、前景モーションモデル420のための損失を計算するために訓練地上検証データのフレームに対して比較される、前景オブジェクトの未来位置を予測する。また、背景モーションモデル430に用いると、訓練システム170は、映像データの同様の細分化を使用し得る。訓練システム170は、訓練入力フレームを背景モーションモデル430に入力して、背景モーションモデル430のための損失を計算するために訓練地上検証データのフレームに対して比較される、背景ピクセル群の未来位置を決定する。
【0054】
パノプティック・セグメンテーション・モジュール142が一旦訓練されると、パノプティック・セグメンテーション・モジュール142は、画像データを受信し、入力画像データにおけるピクセル群の未来位置を予測するパノプティック・セグメンテーションを出力する。パノプティック・セグメンテーション訓練システム170は、訓練済みのパノプティック・セグメンテーション・モジュール142をクライアント機器110に提供する。クライアント機器110は、訓練済みのパノプティック・セグメンテーション・モジュール142を使用して、(例えば、機器上のカメラによって取り込まれる)入力画像に基づいて、未来時のパノプティック・セグメンテーションを予測する。
【0055】
パノプティック・セグメンテーション予測に関する種々の実施形態、およびパノプティック・セグメンテーション・モジュール142に関する種々のモデルを訓練するアプローチについては、付録Aにおいてより詳細に説明するが、この付録Aは、本開示および仕様の一部である。付録Aは例示的な実施形態を説明しており、付録Aにおいて重要(important)、重大(critical)、必須(essential)、またはそうでなれば必要とされるものとして説明または暗示され得る任意の機能は、説明される特定の実施形態においてのみ必要とされ、全ての実施形態においては必要とされるわけではないと、理解されるべきであることに留意されたい。
【0056】
ネットワーク105は、ローカルエリアネットワーク(例えば、イントラネットなど)、ワイドエリアネットワーク(例えば、インターネットなど)、またはそれらの幾つかの組合せなどの、任意型式の通信ネットワークとすることができる。ネットワーク105は、クライアント機器110およびゲームサーバ120の間の直接接続を含むこともできる。通常、ゲームサーバ120およびクライアント機器110の間の通信は、任意型式の有線接続および/または無線接続を使用する、種々の通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTPなど)、エンコーディングまたはフォーマット(例えば、HTML、XML、JSONなど)、および/または保護スキーム(例えば、VPN、セキュアHTTP、SSLなど)を使用する、ネットワークインターフェースを介して搬送することができる。
【0057】
本明細書において説明される技術は、サーバ、データベース、ソフトウェア・アプリケーション、および他のコンピュータベースのシステム、ならびに実行されるアクション、およびそのようなシステムとの間で送受信される情報に対する言及を行う。当業者であれば、コンピュータベースのシステム固有の柔軟性により、コンポーネント間、およびコンポーネント中における、タスクおよび機能に関する多種多様な可能な構成、組み合わせ、および分割が可能になると、認識するであろう。例えば、本明細書において説明されるサーバプロセスは、単一のサーバ、または組み合わせて動作する複数のサーバを使用して、実装し得る。データベースおよびアプリケーションは、単一のシステムに実装してもよいし、または複数のシステムに分散して実装してもよい。分散コンポーネントは、順次または並行して動作し得る。
【0058】
さらに、本明細書において説明されるシステムおよび方法がユーザーに関する個人情報にアクセスして分析する状況、または位置情報などの個人情報を利用する状況では、プログラムまたは機能が情報を収集するかどうかを制御する機会、またシステムまたは他のアプリケーションからコンテンツを受信するかどうか、および/またはその方法を制御する機会が、ユーザーに提供される場合がある。どのような情報が収集されるのか、またその情報が如何に使用されるのかについて、意味のある通知がユーザーに提供されることになるまで、そのような情報またはデータは、収集または使用されない。ユーザーが同意しない限り、その情報は収集または使用されないが、その同意は、何時でもユーザーによる取り消しまたは変更を行うことができる。そのため、ユーザーは、ユーザーに関する情報が如何に収集され、アプリケーションまたはシステムによって使用されるかに対する制御を有することができる。さらに、個人を特定できる情報が削除されるように、特定の情報またはデータは、一つまたは複数の方法が保存または使用される前に、一つまたは複数の方法において処理されることが可能である。例えば、個人を特定できる情報がユーザーのために特定することができないように、ユーザーの身元が取り扱われ得る。
【0059】
(例示的なゲームインターフェース)
図3は、プレイヤーおよび仮想世界210の間のインターフェースの一部として、クライアント110のディスプレイ上に提示され得る、ゲームインターフェース300の一実施形態を描写している。ゲームインターフェース300は、仮想世界210と、仮想世界210におけるプレイヤーの位置222、仮想要素230、仮想アイテム232、および仮想エネルギー250の位置などの、ゲームの他の種々の態様とを表示するために使用することができる、表示ウィンドウ310を含む。また、ユーザーインターフェース300は、ゲームデータ情報、ゲーム通信、プレイヤー情報、クライアント位置確認命令、およびゲームに関連付けられる他の情報などの、他の情報を表示することもできる。例えば、ユーザーインターフェースは、プレイヤーの名称、経験レベル、および他の情報などの、プレイヤー情報315を表示することができる。ユーザーインターフェース300は、種々のゲーム設定、およびゲームに関連付けられる他の情報にアクセスするためのメニュー320を含むことができる。また、ユーザーインターフェース300は、ゲームシステムおよびプレイヤーの間、ならびに並行現実ゲームの一人または複数人のプレイヤー間の通信を可能にする、通信インターフェース330を含むこともできる。
【0060】
本開示の態様によると、プレイヤーは、現実世界においてクライアント機器110を単に持ち運び回ることによって、並行現実ゲームと相互作用することができる。例えば、プレイヤーは、単にスマートフォン上にある並行現実ゲームに関連付けられるアプリケーションにアクセスし、スマートフォンを持って現実世界を動き回ることによって、ゲームをプレイすることができる。この点において、プレイヤーは、位置ベースのゲームをプレイするために、ディスプレイ画面上における仮想世界の視覚的表現を継続的に見る必要がない。その結果、ユーザーインターフェース300は、ユーザーがゲームと相互作用することを可能にする、複数の非視覚的要素を含むことができる。例えば、ゲームインターフェースは、プレイヤーがゲームにおいて仮想要素または仮想オブジェクトに近づいているとき、または並行現実ゲームにおいて重要なイベントが発生するときに、プレイヤーに音声通知を提供することができる。プレイヤーは、オーディオコントロール340を用いて、これらの音声通知を制御することができる。仮想要素または仮想イベントの種類に応じて、様々な種類の音声通知をユーザーに提供することができる。プレイヤーの仮想要素または仮想オブジェクトへの近接度に応じて、音声通知の頻度または音量を増減することができる。振動通知、または他の適切な通知もしくは信号などの、他の非視覚的通知および非視覚的信号をユーザーに提供することもできる。
【0061】
当業者であれば、本明細書において提供される開示を使用すると、多数のゲームインターフェースの構成、および基礎となる機能が、本開示に照らして明らかになると、理解するであろう。本開示は、何れか一つの特定の構成に限定されることを意図していない。
【0062】
(方法例)
図5は、一つまたは複数の実施形態による、パノプティック・セグメンテーション予測の通常プロセス500を記述するフローチャートである。プロセス500は、一つまたは複数の背景オブジェクトの未来位置に重ねられる、一つまたは複数の前景オブジェクトの未来位置を記述する、未来時のパノプティック・セグメンテーションを生成する。図5におけるステップの一部は、パノプティック・セグメンテーション・モジュール142の視点から例証されている。ただし、ステップの一部または全ては、他のエンティティおよび/またはコンポーネントによって実行される場合がある。さらに、幾つかの実施形態は、それらのステップを並行して実行し得るか、異なる順序でそれらのステップを実行し得るか、または異なるステップを実行し得る。
【0063】
ステップ510では、パノプティック・セグメンテーション・モジュール142は、ユーザー機器のカメラ、例えば、カメラアセンブリ135によって取り込まれる複数のフレームを含む映像データを受信する。
【0064】
ステップ520では、パノプティック・セグメンテーション・モジュール142は、各フレームのピクセル群を、前景および背景の間に分類する。パノプティック・セグメンテーション・モジュール142は、ピクセル分類モデル、例えば、図4におけるピクセル分類モデル410を実装して、ピクセル群を前景または背景として分類し得る。一つまたは複数の実施形態では、パノプティック・セグメンテーション・モジュール142は、前景ピクセル群を肯定的に識別するが、前景ピクセル群として識別されなかった残りのピクセル群は、背景ピクセル群として分類される。
【0065】
ステップ530では、パノプティック・セグメンテーション・モジュール142は、前景として分類されるピクセル群から、一つまたは複数の前景オブジェクト群を識別する。パノプティック・セグメンテーション・モジュール142は、前景ピクセル群を個々の前景オブジェクトにグループ化し得る。パノプティック・セグメンテーション・モジュール142は、前景オブジェクトを複数のカテゴリ、例えば、車両、歩行者、自転車乗り、ペット等のうちの一つに、さらにカテゴリで分類し得る。ユーザー機器が移動している間、前景ピクセル群および/または前景オブジェクトも移動する場合がある。背景ピクセル群は、一般に静止しているため、ユーザー機器の動きに起因して、それらの位置が変化する。パノプティック・セグメンテーション・モジュール142は、背景ピクセル群を第二の複数のカテゴリ、例えば、地面、空、葉等のうちの一つに属するものとして、さらに分類し得る。
【0066】
ステップ540では、パノプティック・セグメンテーション・モジュール142は、各前景オブジェクトについて、前景モーションモデルを適用して、未来のタイムスタンプで前景オブジェクトの未来位置を予測する。前景モーションモデルは、オブジェクトモーション符号器およびオブジェクトモーション復号器(例えば、オブジェクトモーション符号器424およびオブジェクトモーション復号器426など)を含み得る。このオブジェクトモーション符号器は、前景オブジェクトの動きに関連する抽象的特徴を決定し、一方、オブジェクトモーション復号器は、未来のタイムスタンプで前景オブジェクトの未来位置を決定する。
【0067】
ステップ550では、パノプティック・セグメンテーション・モジュール142は、背景モーションモデルを背景ピクセルに適用して、背景ピクセルの未来位置を予測する。パノプティック・セグメンテーション・モジュール142は、背景ピクセル群の深度情報に基づいて、背景ピクセル群を3D点群空間に(例えば、逆投影モデル432を介して)逆投影し得る。パノプティック・セグメンテーション・モジュール142は、(例えば、エゴモーションモデル450によって決定される)ユーザー機器の自己運動に基づいて、未来のタイムスタンプで背景ピクセル群の未来位置を予測し得る。幾つかの実施形態では、背景オブジェクトが識別され、背景オブジェクトの3D点群空間への逆投影は、背景オブジェクトの幾何学的形状を考慮に入れ得る。幾つかの実施形態では、パノプティック・セグメンテーション・モジュール142は、前景オブジェクトによる遮蔽に起因して、背景のギャップを埋めるために改良モデル(例えば、改良モデル436など)を適用する。
【0068】
ステップ560では、パノプティック・セグメンテーション・モジュール142は、前景オブジェクトの未来位置を背景オブジェクトの未来位置の上に重ねることによって、環境における未来時のパノプティック・セグメンテーションを生成する。パノプティック・セグメンテーション・モジュール142は、最も近い深度に基づいてオブジェクトを階層化し得る。すなわち、より近くにあるオブジェクトは、より遠くにあるオブジェクトの前に配置される。その結果として生じる未来時のパノプティック・セグメンテーションは、未来のタイムスタンプになる。未来時のパノプティック・セグメンテーションは、前景オブジェクトおよび背景ピクセル群を区別する。
【0069】
未来時のパノプティック・セグメンテーションを用いると、ゲームモジュール135は、未来時のパノプティック・セグメンテーションに基づいて仮想オブジェクトを生成し、ユーザー機器の電子ディスプレイ上にこれを提示し得る。仮想オブジェクトは、ユーザー機器のカメラによって取り込まれる情景においてオブジェクトと切れ目なく相互作用するように生成され得る。例えば、仮想オブジェクトは、未来時のパノプティック・セグメンテーションにおいて決定されるものとして、前景オブジェクトの未来位置に基づいて、前景オブジェクトに対する衝突を回避するように表示されることになる。
【0070】
パノプティック・セグメンテーション予測の代替アプリケーションには、環境内におけるエージェントの自律的航法(autonomous navigation)が含まれる。例えば、カメラは、エージェント上に配置され得る。航法制御システムは、未来時のパノプティック・セグメンテーションに基づいて、航法経路(navigational route)を決定し得る。例えば、航法制御システムは、捕捉済みの最新映像から、1秒後に、歩行者がエージェントの真正面に位置すると予測することになる。航法制御システムは、歩行者に対する衝突を回避するための回避操作を決定し得る。
【0071】
[コンピューティングシステムの例]
図6は、一実施形態による、コンピューティング機器のアーキテクチャを示す例である。図6は、本明細書において説明される一つまたは複数のエンティティの一部または全部として使用されるコンピュータの物理的コンポーネントを例証する高レベルのブロック図を描写しているが、一実施形態に従って、コンピュータは、図6に提供されるコンポーネントの追加、低減、または変形を有し得る。図6は、コンピュータ600を描写しているが、この図は、本明細書において説明される実装の構造図(structural schematic)としてではなく、コンピュータシステムに存在し得る、種々の特徴に関する機能説明として意図されている。実際には、当業者には認識されるように、別々に示されるアイテムを組み合わせることができ、幾つかのアイテムを分離することができる。
【0072】
図6には、チップセット604に結合される少なくとも一つのプロセッサ602が、例証されている。チップセット604には、メモリ606、ストレージデバイス608、キーボード610、グラフィックアダプタ612、ポインティングデバイス614、およびネットワークアダプタ616も結合されている。ディスプレイ618は、グラフィックアダプタ612に結合されている。一実施形態では、チップセット604の機能は、メモリコントローラハブ620およびI/Oハブ622によって提供される。別の実施形態では、メモリ606は、チップセット604の代わりに、プロセッサ602に直接結合されている。幾つかの実施形態では、コンピュータ600は、これらのコンポーネントを相互接続するための一つまたは複数の通信バスを含む。一つまたは複数の通信バスは、システムコンポーネント間の通信を相互接続して制御する回路(チップセットと呼ばれることもある)を任意選択として含む。
【0073】
ストレージデバイス608は、ハードドライブ、コンパクトディスク読取専用メモリ(CD-ROM)、DVD、あるいはソリッドステートメモリ機器、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイス、または他の不揮発性ソリッドストレージデバイスなどの、任意の非一時的コンピュータ可読記憶媒体である。このようなストレージデバイス608は、永続メモリとも呼ばれることがある。ポインティングデバイス614は、マウス、トラックボール、または他種類のポインティングデバイスであってもよく、コンピュータ600にデータを入力するためにキーボード610と組み合わせて使用される。グラフィックアダプタ612は、ディスプレイ618上に画像および他の情報を表示する。ネットワークアダプタ616は、コンピュータ600をローカルエリアネットワークまたはワイドエリアネットワークに結合する。
【0074】
メモリ606は、プロセッサ602によって使用される命令およびデータを保持する。メモリ606は、非永続メモリであってもよく、その例には、DRAM、SRAM、DDR RAM、ROM、EEPROM、フラッシュメモリなどの、高速ランダムアクセスメモリが含まれる。
【0075】
当技術分野において知られているように、コンピュータ600は、図13に示されるものとは異なるコンポーネントおよび/または他のコンポーネントを有することができる。さらに、コンピュータ600は、例証される特定のコンポーネントを欠くことが可能である。一実施形態では、サーバとして機能するコンピュータ600は、キーボード610、ポインティングデバイス614、グラフィックアダプタ612、および/またはディスプレイ618を欠いてもよい。さらに、ストレージデバイス608は、(ストレージエリアネットワーク(SAN)内に具現化されるように)コンピュータ600からローカルおよび/またはリモートとすることができる。
【0076】
当技術分野において知られているように、コンピュータ600は、本明細書において説明される機能を提供するためのコンピュータプログラムモジュールを実行するように適合されている。本明細書で使用される「モジュール(module)」という用語は、指定された機能を提供するために利用されるコンピュータプログラムロジックを指している。そのため、モジュールは、ハードウェア、ファームウェア、および/またはソフトウェアにおいて実装することができる。一実施形態では、プログラムモジュールは、ストレージデバイス608上に格納され、メモリ606にロードされ、プロセッサ602によって実行される。
【0077】
(追加の考慮事項)
上記の説明における幾つかの部分は、アルゴリズムのプロセスまたは動作の観点から、実施形態を説明している。これらのアルゴリズムの記述および表現は、データ処理技術の当業者によって、彼らの仕事の内容を他の当業者に効果的に伝えるために、一般的に使用されている。これらの動作は、機能的、演算的、または論理的に説明されているが、プロセッサまたは同等の電気回路、またはマイクロコードなどによる実行のための命令を含む、コンピュータプログラムによって実装されると、理解される。さらに、一般性を失うことなく、このような機能的操作の配置をモジュールと呼ぶことも、時には便利であることが実証されている。
【0078】
本明細書において使用される場合、「一つの実施形態(one embodiment)」または「一実施形態(an embodiment)」への何れの言及も、その実施形態に関連して説明される特定の要素、特徴、構造、または特徴が少なくとも一つの実施形態に含まれることを意味している。本明細書におれる種々の場所に現れる「一実施形態において(in one embodiment)」という語句は、必ずしも全てが同じ実施形態を指しているわけではない。
【0079】
幾つかの実施形態は、「結合される(coupled)」および「接続される(connected)」という表現を、それらの派生語と共に使用して、説明される場合がある。これらの用語は、相互に同義語として意図されていないと、理解されるべきである。例えば、幾つかの実施形態は、二つ以上の要素が相互に直接物理的または電気的に接触していることを示すために、「接続される(connected)」という用語を使用して説明され得る。別の例では、幾つかの実施形態は、二つ以上の要素が直接物理的または電気的に接触していることを示すために、「結合される(coupled)」という用語を使用して説明され得る。ただし、「結合される(coupled)」という用語は、二つ以上の要素が相互に直接接触していなくても、それでも相互に協力または相互作用することを意味していることもある。実施形態は、このコンテキストに限定されない。
【0080】
本明細書において使用される場合、用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、またはそれらの他の任意の変形は、非排他的な含有を包含することが意図されている。例えば、要素のリストを含むプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されるわけではなく、明示的にリストされていない、またはそのようなプロセス、方法、物品、または装置に固有となる他の要素を含む場合がある。さらに、明示的に反対の記載がない限り、「または(or)」は、包括的なorを指し、排他的なorを指していない。例えば、条件AまたはBは、次の何れか一つによって満たされる。すなわち、Aが真であり(または存在する)、かつBが偽である(または存在しない)こと、Aが偽であり(または存在しない)、かつBが真である(または存在する)こと、ならびにAおよびBの両方が真である(または存在する)こと。
【0081】
さらに、「a」または「an」の使用は、実施形態の要素およびコンポーネントを説明するために使用される。これは、単に利便性を目的として、開示内容の一般的な意味を伝えるために行われる。この説明は、一つ、または少なくとも一つを含むとして解釈されるべきであり、別の意味であることが明らかでない限り、単数形には複数形も含まれる。
【0082】
本開示を読むと、当業者であれば、オンラインサービスプロバイダによるアカウントが本物のビジネスに対応することを検証するために、システムおよびプロセスのためのさらに追加の代替的構造および機能的設計を理解するであろう。そのため、特定の実施形態および応用例を例証して説明してきたが、説明される主題は本明細書に開示される正確な構造およびコンポーネントに限定されるものではなく、当業者には明らかとなる種々の修正、変更、および変形が、開示される方法および装置の構成、動作、および詳細において行われ得ると、理解されるべきである。保護範囲は、以下の請求項によってのみ限定されるべきである。
図1
図2
図3
図4
図5
図6
【国際調査報告】