(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-26
(54)【発明の名称】単一画像からの通行可能空間の決定方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20230419BHJP
G06V 10/70 20220101ALI20230419BHJP
【FI】
G06T7/00 350B
G06V10/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022554751
(86)(22)【出願日】2021-03-09
(85)【翻訳文提出日】2022-11-14
(86)【国際出願番号】 IB2021051947
(87)【国際公開番号】W WO2021181267
(87)【国際公開日】2021-09-16
(32)【優先日】2020-03-10
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-05
(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)【発明者】
【氏名】ガブリエル ジェイ.ブロストウ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA01
5L096FA66
5L096FA69
5L096GA34
5L096KA04
5L096KA15
(57)【要約】
モデルは、入力画像から可視通行可能路面および遮蔽通行可能路面の両方の幾何学的形状を予測する。モデルは、カメラ姿勢、フレーム毎深度、およびセマンティック分割を使用して、立体映像シーケンスから訓練されることにより、訓練データを形成し得るが、画像ネットワークに対して画像を監視するように使用される。種々の実施形態において、モデルは、場景を描写する単一のRGB画像に適用されることにより、遮蔽された通行可能空間を含む場景の通行可能空間を記述する情報を生成する。通行可能空間を記述する情報は、(可視および遮蔽の両方の)通行可能空間および通行不可能空間の分割マスクと、通行可能空間に対応すると決定された各ピクセルに対応する通行可能路面までの推定深度を示す深度マップとを含むことができる。
【特許請求の範囲】
【請求項1】
演算装置によって実行されると、前記演算装置に
場景においてオブジェクトを含む、前記場景の画像を受信することと、
分割マスクおよび深度マップを出力する訓練済みモデルに前記画像を入力することであって、前記分割マスクは、前記画像のピクセル群が通行可能空間または通行不可能空間に対応するかどうかを示し、前記深度マップは、通行可能空間に対応するピクセル群に関する一つまたは複数の通行可能路面までの推定深度を示し、前記通行不可能空間は、オブジェクトの占有領域を含み、前記通行可能空間は、前記画像における前記オブジェクトによって遮蔽された通行可能空間を含む、ことと、
前記分割マスクおよび前記深度マップを適用することにより、前記遮蔽された通行可能空間における位置を決定することと
を含む操作を遂行させる命令を格納することを特徴とする、非一時的コンピュータ可読記憶メディア。
【請求項2】
前記分割マップまたは前記深度マップは、前記場景の画像の視野から表現されることを特徴とする、請求項1記載の非一時的コンピュータ可読記憶メディア。
【請求項3】
前記操作は、
前記遮蔽された通行可能空間における位置を含むエージェントに関する、場景を通過する通行可能進路を決定すること
をさらに含むことを特徴とする、請求項1記載の非一時的コンピュータ可読記憶メディア。
【請求項4】
前記訓練済みモデルは、追加の分割マスクおよび追加の深度マップをさらに出力し、前記追加の分割マスクは、前記ピクセル群が可視通行可能空間または可視通行不可能空間に対応するかどうかを示し、前記深度マップは、前記ピクセル群によって表現された一つまたは複数の可視路面までの推定深度を示すことを特徴とする、請求項1記載の非一時的コンピュータ可読記憶メディア。
【請求項5】
前記モデルは、
訓練場景のターゲット立体画像ペアおよびソース立体画像ペアを含む訓練画像データを獲得するステップであって、前記ターゲット立体画像ペアは、前記訓練場景における通行可能路面を遮蔽する、前記訓練場景における追加のオブジェクトのターゲット視野からのターゲット画像を含み、前記ソース立体画像ペアは、前記遮蔽された通行可能空間が可視であるソース視野からのソース画像を含む、ステップと、
前記ソース立体画像ペアを使用して、前記立体画像ペアの前記ソース画像に関する可視通行可能空間深度マップを生成するステップであって、前記可視通行可能空間深度マップは、前記遮蔽された通行可能空間が通行可能空間に対応することを表す前記ソース画像におけるピクセルを示す、ステップと、
前記可視通行可能空間深度マップを前記ターゲット視野上に投影することにより、前記立体画像ペアの前記ソース画像に関する歪曲深度マップを生成するステップと、
前記歪曲深度マップを使用して、前記ターゲット画像に関するターゲット分割マスクを生成するステップであって、前記ターゲット分割マスクは、通行可能空間に対応する前記通行可能路面を遮蔽する追加のオブジェクトの一部分を表す前記ターゲット画像におけるピクセルを示す、ステップと、
前記歪曲深度マップを使用して、前記ターゲット画像に関するターゲット通行可能深度マップを生成するステップであって、前記ターゲット深度マップは、前記遮蔽された通行可能路面までの深度を示す、ステップと、
前記ターゲット画像、前記ターゲット分割マスクおよび前記ターゲット深度マップを使用して前記モデルを訓練するステップと
を含むプロセスによって訓練されたことを特徴とする、請求項1記載の非一時的コンピュータ可読記憶メディア。
【請求項6】
前記可視通行可能空間深度マップを生成するステップは、
前記ソース立体画像ペアを使用して、可視通行可能空間分割マップを生成するステップであって、前記可視通行可能空間分割マップは、前記ソース画像のピクセル群が可視通行可能空間または可視通行不可能空間に対応するかどうかを示す、ステップと、
前記ソース立体画像ペアを使用して、前記ソース画像に関する可視空間深度マップを生成するステップであって、前記可視空間深度マップは、前記ソース画像の前記ピクセル群によって表現された一つまたは複数の可視路面までの推定深度を示す、ステップと、
前記ソース画像に関する前記可視通行可能空間分割マップおよび前記可視空間深度マップから前記可視通行可能空間深度マップを生成するステップと
を含むことを特徴とする、請求項5記載の非一時的コンピュータ可読記憶メディア。
【請求項7】
前記訓練画像データは、前記遮蔽された通行可能路面が可視である、追加のソース視野からの追加のソース画像を含む追加のソース立体画像ペアをさらに含み、前記モデルを訓練するステップは、
前記追加のソース立体画像ペアを使用して、前記追加の立体画像ペアにおける前記追加のソース画像に関する追加の可視通行可能空間深度マップを生成するステップであって、前記追加の可視通行可能空間深度マップは、前記遮蔽された通行可能路面が追加可能空間に対応することを表す前記追加のソース画像における追加のピクセルを含む、ステップと、
前記追加の可視通行可能空間深度マップを前記ターゲット視野上に投影することにより、前記追加の立体画像ペアにおける前記追加のソース画像に関する追加の歪曲深度マップを生成するステップと、
前記歪曲深度マップおよび前記追加の歪曲深度マップを集約することにより、前記ターゲット画像に関する前記ターゲット分割マスクおよび前記ターゲット深度マップを生成するステップと
を含むことを特徴とする、請求項5記載の非一時的コンピュータ可読記憶メディア。
【請求項8】
前記モデルを訓練するステップは、
前記ターゲット画像を前記モデルに入力するステップであって、前記モデルは、前記ターゲット画像に関する予測通行可能空間分割マスクおよび予測通行可能空間深度マップを出力する、ステップと、
前記予測通行可能空間分割マスクを前記ターゲット分割マスクと比較することにより、第一の訓練損失値を決定するステップと、
前記予測通行可能空間深度マップを前記ターゲット深度マップと比較することにより、第二の訓練損失値を決定するステップと、
前記第一の訓練損失値および第二の訓練損失値を使用して、前記モデルのパラメータを更新するステップと
を含むことを特徴とする、請求項5記載の非一時的コンピュータ可読記憶メディア。
【請求項9】
前記ターゲット画像に関するオブジェクト占有領域分割マスクを生成するステップであって、前記オブジェクト占有領域分割マスクは、前記追加のオブジェクトの一部分が前記追加のオブジェクトの占有領域に対応することを示す前記ターゲット画像における前記ピクセルを含む、ステップと、
前記第一の訓練損失値を決定する以前に、前記オブジェクト占有領域分割マスクを使用して、前記ターゲット分割マスクを変更するステップであって、前記変更は、前記追加のオブジェクトの前記一部分が通行不可能であることを表す前記ターゲット画像における前記ピクセルを示す、ステップと
をさらに含むことを特徴とする、請求項8記載の非一時的コンピュータ可読記憶メディア。
【請求項10】
前記第一の訓練損失値を決定するステップは、
前記ターゲット画像におけるピクセル群が通行可能空間に対応することを示す前記通行可能空間分割マスクに応答して、前記ターゲット画像におけるピクセル群が通行可能であると予測するように、前記モデルを促進する前記ターゲット画像における前記ピクセル群に関する第一の訓練損失値への損失寄与を決定するステップと、
前記ターゲット画像におけるピクセル群が前記追加のオブジェクトの前記占有領域に対応することを示す前記オブジェクト占有領域分割マスクに応答して、前記ターゲット画像における前記ピクセル群が通行不可能であると予測するように、前記モデルを促進する前記第一の訓練損失値に対する、前記ターゲット画像における前記ピクセル群に関する損失寄与を決定するステップと
をさらに含むことを特徴とする、請求項9記載の非一時的コンピュータ可読記憶メディア。
【請求項11】
前記モデルを訓練するステップは、
前記ターゲット画像に関する移動オブジェクト分割マスクを生成するステップであって、前記移動オブジェクト分割マスクは、前記ターゲット画像におけるピクセル群が可視移動オブジェクトまたは可視静止オブジェクトを表すかどうかを示す、ステップと、
前記ターゲット画像におけるピクセル群が前記移動オブジェクト分割マスクにおける移動オブジェクトに対応することを示す前記移動オブジェクト分割マスクを応答して、前記第一の損失値および前記第二の損失値を決定する際に前記ターゲット画像におけるピクセル群を無視するステップと
をさらに含むことを特徴とする、請求項8記載の非一時的コンピュータ可読記憶メディア。
【請求項12】
前記訓練画像データは、立体映像データを含み、前記ソース立体画像ペアは、前記ターゲット立体画像ペアに対応する前記立体映像データのフレーム群の前または後に現れる、前記立体映像データのフレーム群に対応することを特徴とする、請求項5記載の非一時的コンピュータ可読記憶メディア。
【請求項13】
場景においてオブジェクトを含む前記場景の画像を受信するステップと、
分割マスクおよび深度マップを出力する訓練済みモデルに前記画像を入力するステップであって、前記分割マスクは、前記画像のピクセル群が通行可能空間または通行不可能空間に対応するかどうかを示し、前記深度マップは、通行可能空間に対応するピクセル群に関する一つまたは複数の通行可能路面までの推定深度を示し、前記通行不可能空間は、オブジェクトの占有領域を含み、前記通行可能空間は、前記画像における前記オブジェクトによって遮蔽された通行可能空間を含む、ステップと、
前記分割マスクおよび前記深度マップを適用することにより、前記遮蔽された通行可能空間における位置を決定するステップと
を含むことを特徴とする、コンピュータ実装方法。
【請求項14】
前記遮蔽された通行可能空間における前記位置を含むエージェントに関する前記場景を通過する通行可能進路を決定するステップ
をさらに含むことを特徴とする、請求項13記載のコンピュータ実装方法。
【請求項15】
前記モデルは、
訓練場景のターゲット立体画像ペアおよびソース立体画像ペアを含む訓練画像データを獲得するステップであって、前記ターゲット立体画像ペアは、前記訓練場景における通行可能路面を遮蔽する、前記訓練場景における追加のオブジェクトのターゲット視野からのターゲット画像を含み、前記ソース立体画像ペアは、前記遮蔽された通行可能空間が可視であるソース視野からのソース画像を含む、ステップと、
前記ソース立体画像ペアを使用して、前記立体画像ペアの前記ソース画像に関する可視通行可能空間深度マップを生成するステップであって、前記可視通行可能空間深度マップは、前記遮蔽された通行可能空間が通行可能空間に対応することを表す前記ソース画像におけるピクセルを示す、ステップと、
前記可視通行可能空間深度マップを前記ターゲット視野上に投影することにより、前記立体画像ペアの前記ソース画像に関する歪曲深度マップを生成するステップと、
前記歪曲深度マップを使用して、前記ターゲット画像に関するターゲット分割マスクを生成するステップであって、前記ターゲット分割マスクは、通行可能空間に対応する前記通行可能路面を遮蔽する追加のオブジェクトの一部分を表す前記ターゲット画像におけるピクセルを示す、ステップと、
前記歪曲深度マップを使用して、前記ターゲット画像に関するターゲット通行可能深度マップを生成するステップであって、前記ターゲット深度マップは、前記遮蔽された通行可能路面までの深度を示す、ステップと、
前記ターゲット画像、前記ターゲット分割マスクおよび前記ターゲット深度マップを使用して前記モデルを訓練するステップと
を含むプロセスによって訓練されたことを特徴とする、請求項13記載のコンピュータ実装方法。
【請求項16】
前記可視通行可能空間深度マップを生成するステップは、
前記ソース立体画像ペアを使用して、可視通行可能空間分割マスクを生成するステップであって、前記可視通行可能空間分割マスクは、前記ソース画像のピクセル群が可視通行可能空間または可視通行不可能空間に対応するかどうかを示す、ステップと、
前記ソース立体画像ペアを使用して、前記ソース画像に関する可視空間深度マップを生成するステップであって、前記可視空間深度マップは、前記ソース画像の前記ピクセル群によって表現された一つまたは複数の可視路面までの推定深度を示す、ステップと、
前記ソース画像に関する前記可視通行可能空間分割マスクおよび前記可視空間深度マップから前記可視通行可能空間深度マップを生成するステップと
を含むことを特徴とする、請求項15記載のコンピュータ実装方法。
【請求項17】
前記訓練画像データは、前記遮蔽された通行可能路面が可視である、追加のソース視野からの追加のソース画像を含む追加のソース立体画像ペアをさらに含み、前記モデルを訓練するステップは、
前記追加のソース立体画像ペアを使用して、前記追加の立体画像ペアにおける前記追加のソース画像に関する追加の可視通行可能空間深度マップを生成するステップであって、前記追加の可視通行可能空間深度マップは、前記遮蔽された通行可能路面が追加可能空間に対応することを表す前記追加のソース画像における追加のピクセルを含む、ステップと、
前記追加の可視通行可能空間深度マップを前記ターゲット視野上に投影することにより、前記追加の立体画像ペアにおける前記追加のソース画像に関する追加の歪曲深度マップを生成するステップと、
前記歪曲深度マップおよび前記追加の歪曲深度マップを集約することにより、前記ターゲット画像に関する前記ターゲット分割マスクおよび前記ターゲット深度マップを生成するステップと
を含むことを特徴とする、請求項15記載のコンピュータ実装方法。
【請求項18】
前記モデルを訓練するステップは、
前記ターゲット画像を前記モデルに入力するステップであって、前記モデルは、前記ターゲット画像に関する予測通行可能空間分割マスクおよび予測通行可能空間深度マップを出力する、ステップと、
前記予測通行可能空間分割マスクを前記ターゲット分割マスクと比較することにより、第一の訓練損失値を決定するステップと、
前記予測通行可能空間深度マップを前記ターゲット深度マップと比較することにより、第二の訓練損失値を決定するステップと、
前記第一の訓練損失値および第二の訓練損失値を使用して、前記モデルのパラメータを更新するステップと
を含むことを特徴とする、請求項15記載のコンピュータ実装方法。
【請求項19】
前記ターゲット画像に関するオブジェクト占有領域分割マスクを生成するステップであって、前記オブジェクト占有領域分割マスクは、前記追加のオブジェクトの一部分が前記追加のオブジェクトの占有領域に対応することを示す前記ターゲット画像における前記ピクセルを含む、ステップと、
前記第一の訓練損失値を決定する以前に、前記オブジェクト占有領域分割マスクを使用して、前記ターゲット分割マスクを変更するステップであって、前記変更は、前記追加のオブジェクトの前記一部分が通行不可能であることを表す前記ターゲット画像における前記ピクセルを示す、ステップと
をさらに含むことを特徴とする、請求項18実装方法。
【請求項20】
訓練場景のターゲット立体画像ペアおよびソース立体画像ペアを含む訓練画像データを獲得するステップであって、前記ターゲット立体画像ペアは、前記訓練場景における通行可能路面を遮蔽する、前記訓練場景における追加のオブジェクトのターゲット視野からのターゲット画像を含み、前記ソース立体画像ペアは、前記遮蔽された通行可能空間が可視であるソース視野からのソース画像を含む、ステップと、
前記ソース立体画像ペアを使用して、前記立体画像ペアの前記ソース画像に関する可視通行可能空間深度マップを生成するステップであって、前記可視通行可能空間深度マップは、前記遮蔽された通行可能空間が通行可能空間に対応することを表す前記ソース画像におけるピクセルを示す、ステップと、
前記可視通行可能空間深度マップを前記ターゲット視野上に投影することにより、前記立体画像ペアの前記ソース画像に関する歪曲深度マップを生成するステップと、
前記歪曲深度マップを使用して、前記ターゲット画像に関するターゲット分割マスクを生成するステップであって、前記ターゲット分割マスクは、通行可能空間に対応する前記通行可能路面を遮蔽する追加のオブジェクトの一部分を表す前記ターゲット画像におけるピクセルを示す、ステップと、
前記歪曲深度マップを使用して、前記ターゲット画像に関するターゲット通行可能深度マップを生成するステップであって、前記ターゲット深度マップは、前記遮蔽された通行可能路面までの深度を示す、ステップと、
前記ターゲット画像、前記ターゲット分割マスクおよび前記ターゲット深度マップを使用して通行可能空間推定モデルを訓練するステップと
を含むプロセスによって製造された前記通行可能空間推定モデルを含むことを特徴とする、非一時的コンピュータ可読記憶メディア。
【発明の詳細な説明】
【技術分野】
【0001】
説明される主題は、概して機械視覚に関連し、特に、機械学習モデルを訓練することにより、単一画像から場景(scene)における通行可能空間を決定することに関連する。
【背景技術】
【0002】
[問題]
深度センシングは、航法および場景理解の両方に適用される。コンピュータ化されたエージェント(例えば、街路清掃ロボット、または、拡張現実キャラクタ)にとって、見える世界と隠された目に見えない世界との両方を探索する方法を知っていることは有用である。ただし、ほとんどの方法は、カメラから見える路面の幾何学的形状を予測することを目的とすることから、ロボットまたは拡張現実キャラクタに関する進路を計画する際には、用途が制限される。一般的に、そのようなエージェントの移動は、芝生、歩道、および舗道などの、通行可能路面に限定される。しかしながら、ほとんどの場景分析アルゴリズムは、見通し線に基づいているため、場景におけるオブジェクトによって覆い隠されている通行可能路面は検出されない。例えば、現実における樹木は、地面における占有領域が比較的小さくても、場景における樹木の背後にある通行可能地面の大部分を覆い隠すことがある。見通し線を超えて予測する既存のモデルは、通常、ボクセルまたはメッシュによって場景をパラメータ化するが、機械学習のフレームワークで使用するにはコストがかかる可能性がある。
【発明の概要】
【0003】
モデルは、可視の(visible)通行可能路面と遮蔽された(occluded)通行可能路面との両方の幾何学的形状を入力画像から予測する。そのモデルは、カメラ姿勢、フレーム毎深度、およびセマンティック分割を使用して、立体映像シーケンスから訓練されることにより、訓練データを形成し得るが、画像ネットワークに対して画像を監視するように使用される。開示されたアプローチを使用すると、実用的な精度でモデルを取得するための、訓練場景の空間的範囲に対するハードルが驚くほど低くなる。
【0004】
種々の実施形態において、モデルは、場景を描写する単一のRGB画像に適用されることにより、遮蔽通行可能空間(例えば、場景におけるオブジェクトによって遮蔽された通行可能路面)を含む、場景の通行可能空間を記述する情報を生成する。通行可能空間を記述する情報は、可視通行可能空間と可視通行不可能空間を表すピクセル群の分割マスク、カメラからの画像内の各ピクセルによって表現された路面までの推定深度を示す深度マップ、(例えば、可視および遮蔽の両方の)通行可能空間(traversable space)および通行不可能空間(non-traversable space)の分割マスク、ならびに、通行可能空間に対応するように決定された各ピクセルに対応する通行可能路面までの推定深度を示す深度マップを含むことができる。他の適用形態の中でも、この情報は、すぐに可視路面を超えて、どこで歩いたり、転がったり、または、それ以外に移動したりすることができるかを、エージェントが知ることを可能にし得る。可視路面をモデル化するだけでなく、モデルは、移動オブジェクト、または、静止オブジェクトが通過を妨げている領域も特定し得る。他の方法では通行可能路面におけるこれら占有された領域は、占有領域(footprint)と呼ばれる。
【0005】
以前のアプローチの多くは、境界ボックス推定に依存しているが、立方体状オブジェクト予測に限定されている。欠落している幾何学的形状を推定するための他のアプローチは、完全に静的な訓練環境を必要とするが、計算上で実行可能にするために、小規模または合成の何れかとなる。対照的に、開示されたモデルは、訓練時に現実世界場景の部分的な視野のみを与えられた場合に、隠れた路面に関する有用な予測を作り出すことができる。モデルは、単一のカラー画像から導出可能な隠された幾何学的形状に関する軽量表現を使用し得るが、映像深度データを使用して訓練することができる。また、モデルは、移動オブジェクトのマスキング、欠落データもしくは未知データのために空間が通行可能空間または通行不可能である所定の確率、および追加情報を提供するための深度の使用を通して、移動オブジェクトまたは場景の不完全な観察に基づく映像から訓練し得る。
【0006】
以前のアプローチの幾つかは、資源集約的な計算技術をさらに使用することにより、ボクセルベース手法など、テスト時に通行可能空間を予測する。また、これらのアプローチまたは他の以前のアプローチにおける幾つかは、場景におけるオブジェクトの位置を考慮していない、入力画像におけるカメラ視野に関連して通行可能空間を決定していない、または、オブジェクトの移動を考慮していない。対照的に、開示されたモデルは、テスト時にオブジェクトの占有領域および移動を考慮する、入力画像の視野から通行可能空間を効率的に決定することができる。
【図面の簡単な説明】
【0007】
【
図1】一つまたは複数の実施形態による、ネットワーク化されたコンピューティング環境を例証する図である。
【
図2】一つまたは複数の実施形態による、現実世界と並行する地理を有する仮想世界の表現を描写する図である。
【
図3】一つまたは複数の実施形態による、並行現実ゲームに関する例示的なゲームインターフェースを描写する図である。
【
図4】一つまたは複数の実施形態による、通行可能空間推定モデルを訓練するための訓練データ生成用プロセスを例証する図である。
【
図5】一つまたは複数の実施形態による、通行可能空間モデルの訓練に関する全体的なプロセスを説明するフローチャートである。
【
図6】一つまたは複数の実施形態による、通行可能空間モデルの使用に関する全体的なプロセスを記述するフローチャートである。
【
図7】一つまたは複数の実施形態による、通行可能空間モデルの訓練または適用の際の使用に適する例示的なコンピュータシステムを例証する図である。
【0008】
図面および後続の説明は、例証のみを目的として特定の実施形態を記述する。当業者は、後続の説明から、記述された原則から逸脱することなく、構造および方法に関する代替の実施形態が使用され得ることを、容易に認識することになる。ここで、幾つかの実施形態を参照し、その例を添付図面に例証する。
【発明を実施するための形態】
【0009】
[例示的な位置ベースの並行現実ゲームシステム]
種々の実施形態が、現実世界の地理の少なくとも一部と並行する仮想世界の地理に拡張現実のコンテンツを含む、並行現実ゲームに関連して説明されることにより、現実世界におけるプレイヤーの移動および行動が、仮想世界における行動に影響を及ぼすとともに、その逆もまた同様となる。当業者は、本明細書で提供された開示を使用して、説明される主題が、画像データから深度情報または通行可能空間を決定することが望ましい、他の状況に適用可能であることを理解することになる。さらに、コンピュータベースのシステム固有の柔軟性により、システムのコンポーネント間およびその中でタスクおよび機能において、多種多様に可能となる構成、組み合わせ、および分割が許容される。例えば、本開示の態様に係るシステムおよび方法は、単体の演算装置を使用して、または、(例えば、コンピュータネットワークで接続された)複数の演算装置に亘って実装することができる。
【0010】
図1は、一つまたは複数の実施形態による、ネットワーク化されたコンピューティング環境100を例証する。ネットワーク化されたコンピューティング環境100は、現実世界と並行する地理を有する仮想世界におけるプレイヤーの相互作用を備える。特に、現実世界における地理的領域は、仮想世界の対応する領域に対して直接的にリンクまたはマッピングすることができる。プレイヤーは、現実世界における様々な地理的位置に移動することにより、仮想世界において移動回ることができる。例えば、現実世界におけるプレイヤーの位置を追跡して、仮想世界におけるプレイヤーの位置を更新するために使用することができる。通常、現実世界におけるプレイヤーの位置は、プレイヤーが仮想世界と相互作用を行っているクライアント装置110の位置を見付けて、プレイヤーが同じ(または、ほぼ同じ)位置にいると仮定することによって決定される。例えば、種々の実施形態において、現実世界におけるプレイヤーの位置が、仮想世界における仮想要素の仮想位置に対応する、現実世界の位置における閾値距離(例えば、10メートル、20メートル等)内である場合、プレイヤーは、仮想要素と相互作用し得る。便宜上、この方法で仮想要素と相互作用するのに十分なほどに仮想要素の近くにいるプレイヤーは、仮想要素に対応する現実世界の位置にいると呼ばれる。さらに、種々の実施形態が「プレイヤーの位置」を参照して説明されているが、当業者は、そのような参照がプレイヤーのクライアント装置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と相互作用する、または、それを取得するために、現実世界200におけるランドマーク240まで移動しなければならない場合がある。仮想要素230との相互作用は、写真を撮影すること、または、仮想要素230と関連付けられたランドマークまたはオブジェクト240に関する他の情報を検証、入手、もしくは、獲得したりすることなどの、現実世界における行動を必要とする可能性がある。他の実施形態では、仮想要素を捕捉するための異なる、または追加のメカニズムが、利用可能であり得る。例えば、ゲーム内のアイテムは、プレイヤーが(例えば、仮想要素に対応する位置以外の現実世界の場所から)遠隔的に仮想要素と相互作用することを可能にし得る。
【0015】
ゲーム目標は、位置ベースのゲームにおいてプレイヤーによって収集された一つまたは複数の仮想アイテムを、プレイヤーが使用することを要求し得る。例えば、プレイヤーは、ゲーム目標を達成するために有用とすることができる仮想アイテム(例えば、武器、クリーチャー、パワーアップ、または他のアイテム)を求めて、仮想世界210を移動し得る。これらの仮想アイテムは、現実世界200における様々な場所へ移動することにより、または、仮想世界210もしくは現実世界200の何れかにおいて様々な行動を完遂することにより、発見または収集することができる。
図2に示される例において、プレイヤーは、仮想アイテム232を使用することより、一つまたは複数の仮想要素230を捕捉する。特に、プレイヤーは、仮想要素230に近接する、または、仮想要素230の内部にある、仮想世界210における位置に仮想アイテム232を配備することができる。このようにして一つまたは複数の仮想アイテム232を配備することは、特定のプレイヤーのための、または特定のプレイヤーのチーム/派閥のための、仮想要素230の捕捉をもたらすことができる。
【0016】
特定の一実装形態において、プレイヤーは、並行現実ゲームの一部として仮想エネルギーを収集する必要がある場合がある。
図2に描写されるように、仮想エネルギー250は、仮想世界210における様々な位置に散在することができる。プレイヤーは、実世界200において仮想エネルギー250の対応する場所へ移動することにより、仮想エネルギー250を収集することができる。仮想エネルギー250は、仮想アイテムを強化するために、または、ゲームにおける様々なゲーム目標を遂行するために、使用することができる。全ての仮想エネルギー250を失ったプレイヤーは、ゲームから切断される可能性がある。
【0017】
本開示の態様によると、並行現実ゲームは、ゲームにおける全ての参加者が同じ仮想世界を共有する、大規模なマルチプレイヤー型位置ベースのゲームとすることかできる。プレイヤーは、別々のチームまたは派閥に分かれることができ、仮想要素の所有権を取得または主張するなどの、一つまたは複数のゲーム目標を達成するために協力することができる。このようにして、並行現実ゲームは、本質的に、ゲーム内でプレイヤー間の協力を促進するソーシャルゲームとすることができる。対立するチームからのプレイヤーは、並行現実ゲーム中に相互に対抗することができる(または、協力して相互の目的を達成するために協力することがある)。プレイヤーは、仮想アイテムを使用することにより、対立するチームにおけるプレイヤーを攻撃したり、または、その進行を妨害したりし得る。場合によっては、プレイヤーは、並行現実ゲームにおける協力的または相互作用的なイベントのために現実世界の場所に集合することが奨励される。このような場合、ゲームサーバは、プレイヤーが実際に物理的に存在し、なりすましでないことを確認しようとする。
【0018】
並行現実ゲームは、並行現実ゲーム内でゲームプレイを強化および奨励するために、様々な機能を備えることができる。例えば、プレイヤーは、ゲーム全体で(例えば、ゲーム内アイテムを購入するために、他のアイテムと引き換えるために、アイテムを作成するために等)使用することができる、仮想通貨または別の仮想報酬(例えば、仮想トークン、仮想ポイント、仮想材料リソース等)を蓄積することができる。プレイヤーが一つまたは複数のゲーム目標を達成し、ゲーム内で経験を積むにつれて、プレイヤーは、様々なレベルに進むことができる。幾つかの実施形態において、プレイヤーは、ゲームにおいて提供される一つまたは複数の通信インターフェースを介して相互に通信することができる。プレイヤーは、ゲーム内でゲーム目標を達成するために使用することができる、強化された「パワー」または仮想アイテムを獲得することもできる。当業者は、本明細書で提供される開示を使用して、本開示の範囲から逸脱することなく、様々な他のゲーム機能を並行現実ゲームに含めることができることを理解する必要がある。
【0019】
図1に戻って参照すると、ネットワーク化されたコンピューティング環境100は、クライアント・サーバのアーキテクチャを使用し、ゲームサーバ120は、ネットワーク105を経由してクライアント装置110と通信することにより、クライアント装置110におけるプレイヤーに並行現実ゲームを提供する。ネットワーク化されたコンピューティング環境100は、スポンサー/広告主システムまたはビジネスシステムなどの、他の外部システムを含むこともある。
図1にはクライアント装置110が一つだけ例証されているが、任意数のクライアント装置110、または他の外部システムが、ネットワーク105を経由してゲームサーバ120に接続されてもよい。さらに、ネットワーク化されたコンピューティング環境100は、異なる、または追加の要素を含んでよいし、機能性は、以下に記述されるものとは異なる方法でクライアント装置110およびゲームサーバ120の間で分散されてもよい。
【0020】
クライアント装置110は、ゲームサーバ120と連動するためにプレイヤーによって使用することができる、任意の携帯可能な演算装置とすることができる。例えば、クライアント装置110は、ワイヤレス装置、個人情報端末(PDA)、携帯ゲーム装置、携帯電話、スマートフォン、タブレット、航法システム、ハンドヘルドGPSシステム、ウェアラブル演算装置、一つもしくは複数のプロセッサを有するディスプレイ、または他のそのような装置とすることができる。別の例において、クライアント装置110は、デスクトップ・コンピュータまたはラップトップ・コンピュータなどの、従来のコンピュータシステムを含む。さらには、クライアント装置110は、演算装置を備える車両であってもよい。要するに、クライアント装置110は、プレイヤーがゲームサーバ120と相互作用することを可能にすることができる、任意のコンピュータ装置またはコンピュータシステムとすることができる。演算装置として、クライアント装置110は、一つまたは複数のプロセッサ、および一つまたは複数のコンピュータ可読記憶メディアを含むことができる。コンピュータ可読記憶メディアは、プロセッサに操作を実行させる命令を格納することができる。クライアント装置110は、好ましくは、スマートフォンまたはタブレットなどの、プレイヤーと共に容易にも持ち運ぶことができる、または他の方法で移動させることができる、携帯可能な演算装置である。
【0021】
クライアント装置110は、ゲームサーバ120と通信して、物理的環境における感知データをゲームサーバ120に提供する。クライアント装置110は、クライアント装置110が存在する物理的環境における二次元の場景で画像データを捕捉するカメラ集合体125を含む。クライアント装置110は、例えば、ゲームサーバ120によって訓練される機械学習モデルである通行可能空間推定モデル130も含む。
図1に示される実施形態において、各クライアント装置110は、ゲームモジュール135および測位モジュール140などの、追加のソフトウェア・コンポーネントを含む。クライアント装置110は、プレイヤーから情報を受信するための、またはプレイヤーに情報を提供するための、様々な他の入力装置/出力装置を含み得る。入力装置/出力装置の例には、表示スクリーン、タッチスクリーン、タッチパッド、データ入力キー、スピーカー、および音声認識に適したマイクロフォンが含まれる。また、クライアント装置110は、クライアント装置110からのデータを記録するための他の様々なセンサーを含み得るが、それらには動きセンサー、加速度計、ジャイロスコープ、他の慣性測定ユニロット(IMU)、気圧計、測位システム、温度計、光センサー等が含められるが、これらに限定されない。さらに、クライアント装置110は、ネットワーク105を介して通信を提供するためのネットワーク・インターフェースを含むことができる。ネットワーク・インターフェースは、例えば、送信機、受信機、ポート、制御装置、アンテナ、または他の適切なコンポーネントを含む、一つまたは複数のネットワークと連動するための任意の適切なコンポーネントを含むことができる。
【0022】
カメラ集合体125は、クライアント装置110が存在する環境における場景の画像データを捕捉する。カメラ集合体125は、可変キャプチャーレートで可変カラーキャプチャーレンジを有する様々な可変フォトセンサーを利用し得る。カメラ集合体125は、広角レンズまたは望遠レンズを含み得る。カメラ集合体125は、画像データとして複数の個別画像または映像を捕捉するように構成され得る。カメラ集合体125は、画像データを捕捉し、クライアント装置110における演算装置と画像データを共有する。画像データには、感知データ(例えば、温度、環境の明るさ)または捕捉データ(例えば、露出、温かみ(warmth)、シャッタースピード、焦点距離、捕捉時間等)を含む、画像データにおける他の詳細を記述するメタデータを追加することができる。カメラ集合体125は、画像データを捕捉することができる、一つまたは複数のカメラを含むことができる。ある例においては、カメラ集合体125は、一台のカメラを含み、単眼画像データを捕捉するように構成されている。別の例においては、カメラ集合体125は、二台のカメラを含み、立体画像イメージを捕捉するように構成されている。様々な他の実装形態において、カメラ集合体125は、画像データを捕捉するようにそれぞれ構成された複数のカメラを含む。
【0023】
通行可能空間推定モデル130は、カメラによって捕捉された場景の入力画像を受信し、入力画像に基づいて場景の通行可能空間を記述する情報を出力する。本明細書で使用されるように、通行可能空間は、場景(例えば、地面)における通行可能な路面を指す。同様にして、通行不可能空間とは、通過することができない場景における路面を指す。例えば、通行不可能空間は、環境において非通行可能な路面(例えば、人、壁、平坦でない路面、または他の何らかの非通行可能なオブジェクト)である場合もあれば、または、オブジェクトの占有領域が重なり合っている通行可能な路面である場合もある。環境の視野を表す画像において、一部の通行可能空間は、画像において可視である場合があるが、これは可視通行可能空間と呼ばれる。追加として、または代替として、一部の通行可能空間は、環境におけるオブジェクトによって遮蔽される場合があるが、これは遮蔽通行可能空間と呼ばれる。
【0024】
一実施形態において、通行可能空間推定モデル130によって出力される情報は、入力画像における可視通行可能空間を表すピクセル群と可視通行不可能空間を表すピクセル群とを分割する入力画像の分割マスク、カメラからの入力画像における各ピクセルによって表現される路面までの推定深度を示す深度マップ、(例えば、可視および遮蔽)通行可能空間に対応するピクセル群と通行不可能空間に対応するピクセル群とを分割する分割マスク、通行可能空間に対応する各ピクセルに関する通行可能空間までの推定深度を示す深度マップ、またはこれら幾つかの組合せを含む。換言すると、通行可能空間推定モデル130は、場景におけるオブジェクトによって遮蔽された通行可能空間がどこにあるのかということを記述する情報と、カメラから遮蔽通行可能空間までの距離(例えば、オブジェクトがカメラの見通し線を妨げていなかったならば、遮蔽通行可能空間に対応する入力画像におけるピクセル群に関する深度)とを決定するように訓練される。また、通行可能空間推定モデル130は、遮蔽するオブジェクトの占有領域を学習し得る。そのため、航法のためにモデルの出力を使用するロボット、ARキャラクタ、および他のエージェントは、遮蔽空間を通過して遮蔽するオブジェクトの背後を通行するように計画することができるが、そのモデルがそれらのオブジェクトの占有領域(すなわち、オブジェクトによって通行不可能とレンダリングされる、そうでなければ通行可能な路面の部分)の推定も出力することから、遮蔽するオブジェクトに衝突する可能性は低い。
【0025】
一実施形態において、通行可能空間推定モデル130は、通行可能空間推定訓練システム170によって訓練され、通行可能空間推定訓練システム170によって更新または調整することができるが、これらについては以下により詳細に論じられる。受信された入力画像は、カメラ集合体125のカメラ、または、別のクライアント装置110からの別のカメラによって捕捉され得る。幾つかの実施形態において、受信された入力画像は、入力画像の固有値を特定する画像に追加されたメタデータを有する。画像の固有値は、その画像が捕捉された時点におけるカメラの一つまたは複数の幾何学的特性、例えば、画像を捕捉する際のカメラの焦点距離、カメラの主点オフセット、カメラの傾斜等を指し示す。その固有値を用いると、通行可能空間推定モデル130は、その固有値を説明する固有マトリックスを生成し得る。幾つかの実施形態において、通行可能空間推定モデル130は、入力画像が閾値解像度を超えているかどうかを判定する。そうではない場合、通行可能空間推定モデル130は、場景における通行可能空間を記述する情報を決定する以前に、所望の解像度へ入力画像のピクセル数増加(upsample)を行い得る。通行可能空間推定モデル130は、(受信時、またはピクセル数増加後の)画像を入力し、場景における通行可能空間を記述する情報を決定する。機械学習アルゴリズムは、訓練または推論のために、通行可能空間推定モデル130に実装され得る。
【0026】
ゲームモジュール135は、並行現実ゲームに参加するためのインターフェースをプレイヤーに提供する。ゲームサーバ120は、クライアント装置110におけるゲームモジュール135によって使用されるために、ネットワーク105を介してクライアント装置110にゲームデータを送信することにより、ゲームサーバ120から離れた場所にいるプレイヤーにゲームのローカル版を提供する。ゲームサーバ120は、ネットワーク105を介する通信を提供するためのネットワーク・インターフェースを含むことができる。ネットワーク・インターフェースは、例えば、送信機、受信機、ポート、制御装置、アンテナ、または他の適切なコンポーネントを含む、一つまたは複数のネットワークと連結するための任意の適切なコンポーネントを含むことができる。
【0027】
クライアント装置110によって実行されるゲームモジュール135は、プレイヤーと並行現実ゲームとの間のインターフェースを提供する。ゲームモジュール135は、ゲームと関連付けられる仮想世界を表示し(例えば、仮想世界のイメージをレンダリングし)、ユーザーが仮想世界において相互作用することにより、様々なゲーム目標を遂行することを可能にする、クライアント装置110に結合される表示装置においてユーザインターフェースを提示することができる。幾つかの他の実施形態において、ゲームモジュール135は、並行現実ゲームから仮想要素で拡張された現実世界からの(例えば、カメラ集合体125によって捕捉された)画像データを提示する。これらの実施形態において、ゲームモジュール135は、クライアント装置における他のコンポーネントから受信された他の情報にしたがって、仮想コンテンツを生成し得るか、または、仮想コンテンツを調整し得る。例えば、ゲームモジュール135は、画像データにおいて捕捉された場景の(例えば、通行可能空間推定モデル130によって決定された)深度マップにしたがって、ユーザインターフェース上に表示されるように、仮想オブジェクトを調整し得る。
【0028】
また、ゲームモジュール135は、様々な他の出力を制御することにより、プレイヤーが表示スクリーンを見る必要がなく、プレイヤーがゲームと相互作用することを可能にすることができる。例えば、ゲームモジュール135は、プレイヤーが表示スクリーンを見ることなくゲームを行うことを可能にする、様々な音響、振動、または他の通知を制御することができる。ゲームモジュール135は、ゲームサーバ120から受信されたゲームデータにアクセスすることにより、ゲームの正確な表現をユーザーに提供することができる。ゲームモジュール135は、プレイヤーの入力を受信して処理し、ネットワーク105を介してゲームサーバ120に更新情報を提供することができる。また、ゲームモジュール135は、クライアント装置110によって表示されるように、ゲームコンテンツを生成または調整し得る。例えば、ゲームモジュール135は、(例えば、通行可能空間推定モデル130によって判定される際に)場景の通行可能空間を記述する情報に基づいて、仮想要素を生成し得る。例えば、ゲームモジュール135は、通行可能空間上の場景における仮想要素のために進路を決定し得る。
【0029】
測位モジュール140は、クライアント装置110の位置を監視するための任意の装置または回路とすることができる。例えば、測位モジュール140は、三角測量または携帯電話基地局もしくはWi-Fiホットスポットへの近接、または位置特定のための他の適切な技術を使用することにより、IPアドレスに基づいて、衛星航法測位システム(例えば、GPSシステム、ガリレオ測位システム、全地球航法衛星システム(GLONASS)、北斗衛星航法および測位システム)、慣性航法システム、推測航法システムを使用することにより、実際の位置または相対的位置を決定することかできる。測位モジュール140は、クライアント装置110の位置を正確に測位することを支援し得る、様々な他のセンサーをさらに含み得る。
【0030】
プレイヤーが現実世界においてクライアント装置110を持って動き回ると、測位モジュール140は、プレイヤーの位置を追跡し、ゲームモジュール135にプレイヤーの位置情報を提供する。ゲームモジュール135は、現実世界におけるプレイヤーの実際の位置に基づいて、ゲームに関連付けられた仮想世界におけるプレイヤーの位置を更新する。そのため、プレイヤーは、現実世界においてクライアント装置110を持ち運ぶか、または移動させるだけで、仮想世界と相互作用することができる。特に、仮想世界におけるプレイヤーの位置は、現実世界におけるプレイヤーの位置に対応させることができる。ゲームモジュール135は、ネットワーク105を介してゲームサーバ120にプレイヤーの位置情報を提供することができる。これに応答して、ゲームサーバ120は、クライアント装置110の位置を検証するための様々な技術を実行することにより、不正行為者がクライアント装置110の位置を偽装することを防ぎ得る。プレイヤーに関連付けられた位置情報は、プレイヤーの位置情報にアクセスすること、および、位置情報がゲームに関連して(例えば、仮想世界におけるプレイヤーの位置を更新するために)どのようにして利用されるかをプレイヤーに通知した後に、許可が与えられる場合にのみ使用されることを、理解する必要がある。さらに、プレイヤーに関連付けられた任意の位置情報は、プレイヤーのプライバシーを保護するための方法において保存および維持されることになる。
【0031】
ゲームサーバ120は、任意の演算装置とすることができ、一つまたは複数のプロセッサ、および一つまたは複数のコンピュータ可読記憶メディアを含むことができる。コンピュータ可読記憶メディアは、プロセッサに操作を実行させる命令を格納することができる。ゲームサーバ120は、ゲームデータベース115を含むことができるか、または、それと通信することができる。ゲームデータベース115は、ネットワーク105を介してクライアント装置110に奉仕または提供されるように、並行現実ゲームで使用されるゲームデータを保存する。
【0032】
ゲームデータベース115に保存されたゲームデータは、以下を含むことができる。すなわち、(1)並行現実ゲームにおいて仮想世界に関連付けられたデータ(例えば、表示装置上で仮想世界をレンダリングするために使用される画像データ、仮想世界における位置の地理的座標等)、(2)並行現実ゲームのプレイヤーに関連付けられたデータ(例えば、プレイヤーの情報、プレイヤーの経験レベル、プレイヤーの通貨、仮想世界/現実世界におけるプレイヤーの現在位置、プレイヤーのエネルギーレベル、プレイヤーの趣向、チーム情報、派閥情報等を含むが、これに限定されないプレイヤーのプロフィール)、(3)ゲーム目標に関連付けられたデータ(例えば、現在のゲーム目標、ゲーム目標のステータス、過去のゲーム目標、将来のゲーム目標、所望のゲーム目標等に関連付けられたデータ)、(4)仮想世界における仮想要素に関連付けられたデータ(例えば、仮想要素の位置、仮想要素の種類、仮想要素に関連付けられたゲーム目標、仮想要素のための対応する実世界の位置情報、仮想要素の行動、仮想要素の関連性等)、(5)現実世界のオブジェクト、ランドマーク、仮想世界要素にリンクされた位置に関連付けられたデータ(例えば、現実世界のオブジェクト/ランドマークの場所、現実世界のオブジェクト/ランドマークの説明、現実世界のオブジェクトにリンクされた仮想要素の関連性等)、(6)ゲームステータス(例えば、プレイヤーの現在数、ゲーム目標の現在ステータス、プレイヤーのリーダーボード等)、(7)プレイヤーの行動/入力に関連付けられたデータ(例えば、プレイヤーの現在位置、プレイヤーの過去位置、プレイヤーの移動、プレイヤーの入力、プレイヤーの問合せ、プレイヤーの通信等)、および(8)並行現実ゲームの実装中に使用、関連、または捕捉された他の任意のデータ。ゲームデータベース115に保存されたゲームデータは、システム管理者により、またはクライアント装置110からネットワーク105を介するなどの、システム100のユーザー/プレイヤーから受信されたデータにより、オフラインまたはリアルタイムの何れかで取り込むことができる。
【0033】
ゲームサーバ120は、クライアント装置110から(例えば、リモートプロシージャコール(RPC)を介して)ゲームデータのための要求を受信し、ネットワーク105を介してそれらの要求に応答するように構成することができる。例えば、ゲームサーバ120は、一つまたは複数のデータファイルにゲームデータを符号化し、クライアント装置110にそのデータファイルを提供することができる。さらに、ゲームサーバ120は、クライアント装置110からネットワーク105を介してゲームデータ(例えば、プレイヤーの位置、プレイヤーの行動、プレイヤーの入力等)を受信するように構成することができる。例えば、クライアント装置110は、ゲームサーバ120にプレイヤーの入力および他の更新情報を定期的に送信するように構成することができるので、ゲームサーバ120は、ゲームデータベース115におけるゲームデータを更新することにより、ゲームのための任意および全ての変更条件を反映するように使用する。
【0034】
図示された実施形態において、サーバ120は、汎用ゲームモジュール145、商用ゲームモジュール150、データ収集モジュール155、イベントモジュール160、および通行可能空間推定訓練システム170を含む。上述した通り、ゲームサーバ120は、ゲームサーバ120の一部であり得るか、または遠隔的にアクセスされ得る(例えば、ゲームデータベース115は、ネットワーク105を介してアクセスされる分散データベースとし得る)、ゲームデータベース115と交信する。他の実施形態では、ゲームサーバ120は、異なる要素、または追加の要素を含む。さらに、機能は、説明されたものとは異なる方法で要素間に分散され得る。例えば、ゲームデータベース115は、ゲームサーバ120に統合することができる。
【0035】
汎用ゲームモジュール145は、全プレイヤーのために並行現実ゲームを主催し、全プレイヤーのための並行現実ゲームの現在ステータスに関する信頼できる情報源として機能する。ホストとして、汎用ゲームモジュール145は、例えば、それらの各クライアント装置110を介して、プレイヤーに提示するためのゲームコンテンツを生成する。汎用ゲームモジュール145は、ゲームデータベース115にアクセスすることにより、並行現実ゲームを主催する際にゲームデータを取得または保存し得る。また、汎用ゲームモジュール145は、クライアント装置110からゲームデータ(例えば、深度情報、プレイヤーの入力、プレイヤーの位置、プレイヤーの行動、ランドマーク情報等)を受信し、並行現実ゲームの全プレイヤーのために、受信されたゲームデータを並行現実ゲームの全体に組み込む。汎用ゲームモジュール145は、ネットワーク105を介したクライアント装置110へのゲームデータの配信を管理することもできる。また、汎用ゲームモジュール145は、クライアント装置110およびゲームサーバ120の間の接続を確保すること、様々なクライアント装置110の間の接続を確立すること、および様々なクライアント装置110の位置を検証することを含むが、これらに限定されない、クライアント装置110のセキュリティ面を規制し得る。
【0036】
商用ゲームモジュール150は、それが含まれる実施形態では、汎用ゲームモジュール145から分離するか、またはその一部とすることができる。商用ゲームモジュール150は、現実世界における商用活動にリンクされる、並行現実ゲーム内の様々なゲーム機能の包含を管理することができる。例えば、商用ゲームモジュール150は、ネットワーク105を経由して(ネットワーク・インターフェースを介して)スポンサー/広告主、企業、または他のエンティティなどの、外部システムからの要求を受信することにより、並行現実ゲームにおける商用活動にリンクされたゲーム機能を含むことができる。それから、商用ゲームモジュール150は、並行現実ゲームにおけるこれらのゲーム機能の包含のために手配することができる。
【0037】
ゲームサーバ120は、データ収集モジュール155をさらに含むことができる。データ収集モジュール155は、それが含まれる実施形態では、汎用ゲームモジュール145から分離するか、またはその一部とすることができる。データ収集モジュール155は、現実世界におけるデータ収集活動にリンクされる並行現実ゲーム内の様々なゲーム機能の包含を管理することができる。例えば、データ収集モジュール155は、ゲームデータベース115に保存されたゲームデータを変更することにより、並行現実ゲームにおけるデータ収集活動にリンクされたゲーム機能を含むことができる。また、データ収集モジュール155は、データ収集活動にしたがってプレイヤーによって収集されたデータを分析し、様々なプラットフォームによるアクセスのためにデータを提供することができる。
【0038】
イベントモジュール160は、並行現実ゲームにおけるイベントに対するプレイヤーのアクセスを管理する。「イベント」という用語が便宜上使用されているが、この用語は特定の場所または時間における特定のイベントを指す必要がないことを、理解する必要がある。むしろ、それは、プレイヤーがそのコンテンツにアクセスし得るかどうかを決定するために一つまたは複数のアクセス基準が使用される、アクセス制御されたゲームコンテンツに関する任意の提供を指す場合がある。そのようなコンテンツは、アクセス制御がより少ないか、もしくは全くないゲームコンテンツを含む、より大規模な並行現実ゲームの一部となる場合もあれば、またはアクセス制御されたスタンドアローンの並行現実ゲームである場合もある。
【0039】
通行可能空間推定訓練システム170は、通行可能空間推定モデル、例えば、クライアント装置110に提供された通行可能空間推定モデル130を訓練する。通行可能空間推定訓練システム170は、通行可能空間推定モデルの訓練に使用するための画像データを受信する。一般的に言えば、通行可能空間推定訓練システム170は、画像データを処理し、画像データを通行可能空間推定モデルに入力し、通行可能空間推定モデルのパラメータを繰り返し調整する。一実施形態では、通行可能空間推定訓練システム170は、立体映像データを使用して、そのモデルを訓練するための訓練データを生成するが、これについては
図4を参照して以下により詳細に記述される。通行可能空間推定訓練システム170は、通行可能空間推定モデルが場景の通行可能空間を記述する情報を推定する際に十分に正確であるかどうかを判定するために使用することができる、通行可能空間推定モデルのためのエラー閾値をさらに定義し得る。通行可能空間推定訓練システム170による訓練については、以下にさらに記述されることになる。
【0040】
通行可能空間推定モデルが一旦訓練されると、通行可能空間推定モデルは、画像データを受信し、画像データに描写された場景の通行可能空間を記述する情報を出力する。 通行可能空間推定訓練システム170は、訓練済みモデルをクライアント装置110に提供する。クライアント装置110は、訓練済みモデルを使用することにより、(例えば、その装置上のカメラによって捕捉された)画像に描写された場景の通行可能空間を推定する。通行可能空間の推定には、現実世界と相互作用する仮想コンテンツをレンダリングする際の支援、ロボットの航法支援、自動運転車ための潜在的な危険の検出などの、様々な用途があります。
【0041】
ネットワーク105は、ローカルエリアネットワーク(例えば、イントラネット)、ワイドエリアネットワーク(例えば、インターネット)、またはそれら幾つかの組み合わせなどの、任意種類の通信ネットワークとすることができる。また、ネットワークは、クライアント装置110およびゲームサーバ120の間の直接接続を含めることができる。一般に、ゲームサーバ120およびクライアント装置110の間の通信は、様々な通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフ
ォーマット (例えば、HTML、XML、JSON)、または保護スキーム(例えば、VPN、セキュアHTTP、SSL)を使用して、任意種類の有線接続または無線接続を使用するネットワーク・インターフェースを介して搬送することができる。
【0042】
本明細書で議論される技術は、サーバ、データベース、ソフトウェア・アプリケーション、および他のコンピュータベースのシステムだけでなく、そのようなシステムに対して行われるアクションおよび送信される情報に対しても参照を実行する。当業者は、コンピュータベースのシステム固有の柔軟性が、構成要素の間およびその中におけるタスクおよび機能性に関する、多種多様に可能な構成、組み合わせ、および分割を可能にすることを認識することになる。例えば、本明細書で議論されるサーバプロセスは、単一のサーバ、または組合せで動作する複数のサーバを使用して実装され得る。データベースおよびアプリケーションは、単一のシステム上に実装されてもよいし、または複数のシステムに亘って分散されてもよい。分散コンポーネントは、順次に、または並行して動作し得る。
【0043】
さらに、本明細書で議論されるシステムおよび方法が、ユーザーに関する個人情報にアクセスして分析する、または位置情報などの個人情報を利用する状況では、プログラムまたは機能が情報を収集するかどうかを制御するとともに、システムまたは他のアプリケーションからコンテンツを受信するかどうか、またはその方法を制御する機会を、ユーザーが提供される場合がある。どのような情報が収集され、どのようにその情報が使用されるかに関して、ユーザーが意味のある通知の提供を受けるまでは、そのような情報またはデータは収集または使用されることはない。ユーザーがいつでも取り消し、または変更することができる同意を、ユーザーが提供しない限り、その情報は、収集または使用されることがない。そのため、ユーザーは、ユーザーに関する情報がどのように収集され、アプリケーションまたはシステムによって使用されるかに対して制御することができる。さらに、特定の情報またはデータは、それが保存または使用する以前に、一つまたは複数の方法で取り扱うことにより、個人を特定できる情報を削除することができる。例えば、ユーザーに関して個人を特定できる情報が判別されないように、ユーザーの識別を取り扱う場合がある。
【0044】
[例示的なゲームインターフェース]
図3は、プレイヤーおよび仮想世界210の間のインターフェースの一部として、クライアント装置110のディスプレイ上に提示することができる、ゲームインターフェース300の一実施形態を描写する。ゲームインターフェース300は、仮想世界210と、仮想世界210におけるプレイヤーの位置222、仮想要素230の位置、仮想アイテム232、および仮想エネルギー250などの、ゲームにおける様々な他の側面とを表示するために使用することができる表示ウィンドウ310を含む。ユーザインターフェース300は、ゲームデータ情報、ゲーム通信、プレイヤー情報、クライアント位置の確認命令、およびゲームに関連付けられた他の情報などの、他の情報を表示することもできる。例えば、ユーザインターフェースは、プレイヤー名、経験レベル、および他の情報などの、プレイヤー情報315を表示することができる。ユーザインターフェース300は、様々なゲーム設定と、ゲームに関連付けられた他の情報とにアクセスするためのメニュー320を含むことができる。また、ユーザインターフェース300は、ゲームシステムおよびプレイヤーの間、ならびに並行現実ゲームの一人または複数のプレイヤー間における通信を可能にする、通信インターフェース330を含むことができる。
【0045】
本開示の態様によれば、プレイヤーは、現実世界でクライアント装置110を運び回るだけで、並行現実ゲームと相互作用することができる。例えば、プレイヤーは、スマートフォン上で並行現実ゲームに関連付けられたアプリケーションにアクセスして、スマートフォンを持って現実世界を動き回るだけでゲームを行うことができる。この点で、プレイヤーは、位置ベースのゲームを行うために、表示スクリーン上で仮想世界の視覚的表現を継続的に眺める必要がない。結果として、ユーザインターフェース300は、ユーザーがゲームと相互作用することを可能にする複数の非視覚的要素を含むことができる。例えば、ゲームインターフェースは、プレイヤーがゲームにおける仮想要素または仮想オブジェクトに近づいているとき、または並行現実ゲームらにおいて重要なイベントが発生するときに、可聴通知をプレイヤーに提供することができる。プレイヤーは、音響コントロール340を使用して、これら可聴通知を制御することができる。仮想要素または仮想イベントの種類に応じて、様々な種類の可聴通知をユーザーに提供することができる。可聴通知は、プレイヤーが仮想要素または仮想オブジェクトに近接しているかどうかに応じて、頻度または音量を増減することができる。振動通知、または他の適切な通知もしくは信号などの、他の非視覚的通知および信号をユーザーに提供することができる。
【0046】
当業者は、本明細書で提供される開示を使用して、多数のゲームインターフェース構成および基礎的な機能性が本開示に照らして明らかであることを理解することになる。本開示は、任意の一特定構成に限定されることを意図していない。
【0047】
[通行可能空間推定訓練]
通行可能空間推定訓練システム170は、通行可能空間推定モデル130を訓練する。幾つかの実施形態において、通行可能空間推定モデル130は、立体映像データを使用して訓練される。以下の段落では、立体映像データが訓練データを生成するように処理されることにより、画像から画像への通行可能空間推定モデルを訓練する訓練方法400を説明する。しかしながら、他の実施形態は、他の方法を使用して訓練データを生成するか、または様々な他のモデル構造およびアーキテクチャを用いてモデルを訓練し得る。例えば、通行可能空間推定訓練システム170は、人間の評価者によってラベル付けされた画像、静的訓練環境の画像、合成画像データ、または場景を記述する幾何学的情報を使用して、モデルを訓練し得る。
【0048】
図1に示される実施形態において、通行可能空間推定訓練システム170は、立体視モジュール175、訓練画像合成モジュール180、訓練損失モジュール185、オブジェクト占有領域推定モジュール190、および移動推定モジュール195を含む。他の実施形態では、通行可能空間推定訓練システム170は、例えば、データストア、フィードバックモジュール、平滑化モジュール等の、異なる、または追加の構成要素を含み得る。例えば、データストアは、立体視モジュール175または訓練画像合成モジュール180の一つまたは複数のモデルを訓練する際に、訓練データまたは訓練済みパラメータを格納し得る。別の例においては、平滑化モジュールは、深度マップにおける深度値の平滑化など、深度マップを処理することができる。
【0049】
図4は、通行可能空間推定モデルを訓練するために訓練データを生成するためのプロセス400の一実施形態を例証する。
図4に示される実施形態において、通行可能空間推定訓練システム170は、通行可能空間推定モデル470を訓練することにより、ターゲット画像465によって描写された場景の過可能空間を記述する情報を決定することができる。この実施形態では、ターゲット画像465が入力として与えられて、通行可能空間推定モデル470は、四つの出力チャネル、特に予測可視通行可能空間分割マスク475、予測可視空間深度マップ480、予測通行可能空間分割マスク485、および予測通行可能空間深度マップ490を有する。他の実施形態では、通行可能空間推定モデル470は、これら四つの出力チャネルのサブセット(例えば、分割マスク485および深度マップ490)を出力し得るか、または追加の、もしくはそれ以外の異なる出力チャネルを有し得る。
【0050】
通行可能空間推定モデル470を訓練するために、通行可能空間推定訓練システム170は、通行可能空間推定モデル470の出力チャネルの各々に対するターゲット値でラベル付けされたピクセル群を有する訓練ターゲット画像のセット(例えば、左側ターゲット画像465)を生成するか、または引き出す。
図4に描写されるように、左側ターゲット画像465のピクセル群をラベル付けするためのターゲット値は、ターゲット可視通行可能空間分割マスク445、ターゲット可視空間深度マップ450、ターゲット通行可能空間分割マスク455、およびターゲット通行可能空間深度マップ460のピクセル群である。
【0051】
通行可能空間推定訓練システム170は、訓練画像データ405からラベル付けされた訓練ターゲット画像のセットを生成することができる。例えば、訓練データは、立体カメラを使用して捕捉された映像データのフレーム群を含み得る。
図4において描写された訓練プロセスは訓練画像データ405における単一の左側ターゲット画像465に関連するが、これは説明のみを目的として行われており、訓練プロセスが、例えば、訓練画像データ405に含まれた、任意数のターゲット画像に対して繰り返され得ることを、当業者は理解することになる。さらに、分割マスクおよび深度マップは、本明細書で説明されるように、訓練画像データ405の左側画像の視野から生成されるが、同様の手法を訓練画像データ405の右側画像に適用することができることを、当業者は理解することになる。
【0052】
立体視モジュール175および訓練画像合成モジュール180は、ターゲット画像410に関する多視点立体画像ペアのセットを使用して、ターゲット画像465をラベル付けするためのターゲット値を生成する。多視点立体画像ペアのセット410は、左側ターゲット画像465および右側ターゲット画像を含むターゲット画像立体画像ペアと、左側ソース画像および右側ソース画像をそれぞれ含むソース立体画像ペアのセットとを含む。多視点立体画像ペアのセット410は、複数の視野からの場景を描写する。特に、ソース立体画像ペアにおける左側ソース画像および右側ソース画像は、左側ターゲット画像および右側ターゲット画像とは異なる視野からの場景をそれぞれ描写する。例えば、ソース立体画像ペアは、立体カメラを使用して捕捉された映像におけるターゲット立体画像ペアのフレーム群の前または後のある時点で現れるフレーム群とし得るが、この場合、立体カメラは、ターゲット立体画像ペアの捕捉およびソース立体画像ペアの捕捉の間に移動したのである。
【0053】
ステップ415において、立体視モジュール175は、多視点立体画像ペアのセット410を使用して、左側ターゲット画像465および左側ソース画像に関する可視空間深度マップおよび可視通行可能空間分割マスクを決定する。一例として、可視空間深度マップは、カメラからピクセルによって表現される可視路面までの距離を表す、入力画像における全ピクセル群の深度値を含み得る。別の例として、可視通行可能空間分割マスクは、可視通行可能空間を表すピクセル群が1の値を有し、可視通行不可能空間を表すピクセル群が0の値を有する、二値分割マスクとし得る。特に、立体視モジュール175は、一つまたは複数の立体視モデルまたはアルゴリズムを使用して、多視点立体画像ペアのセット410を処理することにより、可視空間深度マップおよび分割マスクを決定する。例えば、立体視モジュール175は、幾何学的立体マッチングアルゴリズム(例えば、視差マップ推定法)または立体マッチング深度推定モデル(例えば、ピラミッド・ステレオ・マッチング・ネットワーク)を使用して、所与の立体画像ペアの左側画像に関する可視空間深度マップを決定することができる。同様にして、立体視モジュール175は、訓練済みの画像から画像への地上分割モデルなどの様々な地上分割技術を使用して、可視空間分割マスクを決定することができる。通行可能空間推定訓練システム170は、左側ターゲット画像465に関して決定されたターゲット可視通行可能空間分割マスク445およびターゲット可視空間深度マップ450を使用することにより、左側ターゲット画像465にラベル付けを行う。立体視モジュール175は、以下でより詳細に記述されるように、ターゲット通行可能空間分割マスク455およびターゲット通行可能空間深度マップ460を生成するために、左側ソース画像に関する分割マスクおよび深度マップを訓練画像合成モジュール180に提供する。
【0054】
訓練画像合成モジュール180は、多視点立体画像ペアのセットにおける左側ソース画像に関する分割マスクおよび深度マップを使用して、ターゲット通行可能空間分割マスク455およびターゲット通行可能空間深度マップ460を生成する。特に、訓練画像合成モジュール180は、左側ターゲット画像および左側ソース画像の相対的なカメラ位置を決定するために、ターゲット立体画像ペアおよびソース立体画像ペアに関する固有値および非固有値を計算する。画像の固有値とは、例えば、カメラの焦点距離、カメラの主点オフセット、カメラの傾斜を含む、画像を捕捉するために使用されるカメラの幾何学的特性を指す。幾つかの場合では、固有値は、撮影された全ての画像間で各カメラに関して一定とすることもできるし、または、固有値は、様々な画像を撮影する際にカメラがそのパラメータを調整するにつれて変動することもできる。画像の非固有値は、三次元空間におけるカメラの位置および向きを指す。訓練画像合成モジュール180は、様々なカメラ較正法、または同時位置特定およびマッピング(SLAM)技術を使用することにより、ORB-SLAM2などの立体画像ペアに関する固有値および非固有値を計算することができる。
【0055】
非固有値から決定された相対的なカメラ位置を使用して、訓練画像合成モジュール180は、ステップ430において、左側ターゲット画像465の視野上に通行可能深度値を歪曲すること(warping)により、ソース立体画像ペアの各々に関する歪曲(warped)通行可能空間深度マップ435を生成する。例えば、訓練画像合成モジュール180は、左側ターゲット画像465上に通行可能空間深度マップ435における可視通行可能空間に関する深度値を表すピクセル群を前方歪曲、逆歪曲、または別の方法で投影し得る。訓練画像合成モジュール180は、対応するソース可視空間分割マスク420を使用して、ソース可視空間深度マップ425におけるピクセル群から通行可能深度値を識別する。ソース可視空間深度マップが左側ターゲット画像465とは異なる視野からの場景に関する深度値を表す場合、歪曲通行可能空間深度マップ435は、左側ターゲット画像465におけるオブジェクトによって覆い隠されているが、歪曲通行可能空間深度マップ435に対応する左側ソース画像で覆い隠されていない、通行可能空間に関する深度値を含むことができる。それ自体では、歪曲通行可能空間深度マップは、ターゲット画像において可視ではない通行可能空間を表すターゲット画像におけるピクセル群に関する深度値を提供する。
【0056】
ステップ440において、訓練画像合成モジュール180は、ターゲット通行可能空間分割マスク455およびターゲット通行可能空間深度マップ460を生成するために、歪曲通行可能空間深度マップ435を使用する。幾つかの実施形態において、訓練画像合成モジュール180は、左側ソース立体画像によって表現される視野の各々から深度値を集約するために、歪曲通行可能空間深度マップ435を集約する。そのような集約は、左側ターゲット画像465に関する隠された通行可能空間が識別される可能性を高める。さらに、そのような集約は、上記で説明された分割、深度、またはカメラ位置推定プロセスにおける不正確さに起因する、個々の歪曲通行可能空間深度マップにおける不正確さを低減する。歪曲通行可能空間深度マップ435は、様々な方法を使用して集約され得る。幾つかの実施形態において、ターゲット通行可能空間分割マスク455は、歪曲通行可能空間深度マップ435の閾値数がゼロ以外の深度値を有する場合に通行可能であって、それ以外の場合に通行不可能であるように、左側ターゲット画像465からのピクセル群を指定することによって生成される。例えば、ターゲット通行可能空間分割マスク455は、次の方程式を使用して決定され得る。
【0057】
【0058】
ここで、
【0059】
【0060】
はターゲット通行可能空間分割マスク455であり、Jは左側ターゲット画像における全ピクセルのインデックスの集合であり、Pは歪曲通行可能空間深度マップ435の集合であり、Piはi番目の歪曲通行可能空間深度マップであり、pjはPiにおけるj番目のピクセルであり、[ ] はアイバーソン記法のブラケットであり、kはpjに関するゼロ以外の深度値を持つ歪曲通行可能空間深度マップに関する閾値数である。
【0061】
別の例として、ターゲット通行可能空間深度マップ460は、平均値または中央値の深度値を決定することなどの、歪曲通行可能空間深度マップ435の深度値に関する一つまたは複数の統計操作を実行することによって生成され得る。例えば、ターゲット通行可能空間深度マップ460は、次の方程式を使用して決定され得る。
【0062】
【0063】
ここで、
【0064】
【0065】
はターゲット通行可能空間深度マップ460であり、Pは歪曲通行可能空間深度マップ435の集合であり、Piはi番目の歪曲通行可能空間深度マップである。この場合、ターゲット通行可能空間深度マップ460は、中央値を決定する際に、深度値に関してゼロの値を有する歪曲通行可能空間深度マップを無視し得る。
【0066】
通行可能空間推定訓練システム170は、決定されたターゲット通行可能空間分割マスク455およびターゲット通行可能空間深度マップ460を使用することにより、左側ターゲット画像465にラベル付けを行う。
【0067】
訓練損失モジュール185は、通行可能空間推定訓練システム170に関する訓練損失を決定する。
図4に示される実施形態において、ステップ495において、訓練損失モジュール185は、ターゲット可視通行可能空間分割マスク445、ターゲット可視空間深度マップ450、ターゲット通行可能空間分割マスク455、およびターゲット通行可能空間深度マップ460を、通行可能空間推定モデル470の各予測出力475、480、485および490と比較することにより、全体的な訓練損失を決定する。全体的な訓練損失は、通行可能空間推定モデル470によって予測された出力475、480、485および490の各々における訓練損失値の組み合わせなどの、複数の訓練損失値の組み合わせから導出され得る。例えば、訓練損失モジュール185は、ターゲット通行可能空間分割マスク455を予測通行可能空間分割マスク485と比較することにより、予測通行可能空間分割マスク485の訓練損失に対する訓練損失への寄与を決定し得る。例えば、訓練損失モジュール185は、左側ターゲット画像465のピクセル群がターゲット通行可能空間分割マスク460によって通行可能として指定されている場合、それらが通行可能であると、通行可能空間推定モデル470が予測することになる可能性を増加させる、全体的な訓練損失への寄与を決定することができる。別の言い方をすれば、全体的な訓練損失は、通行可能空間推定モデル470が、通行可能空間分割マスクにおける通行可能空間に対応するターゲット画像内のピクセル群が通行可能であることを予測するように、通行可能空間推定モデル470を促進し得る。同様にして、訓練損失モジュール185は、ターゲット分割マスク445を予測分割マスク475と比較することにより、ターゲット深度マップ450を予測深度マップ480と比較することにより、またはターゲット深度マップ460を予測深度マップ490と比較することにより、個々の訓練損失への寄与を決定し得る。これらの、または他の訓練損失への寄与を決定するために使用することができる損失関数の例には、交差エントロピー損失、ヒンジ損失、平均絶対誤差 (L1) 損失、平均二乗誤差 (L2) 損失、またはそれら幾つかの組み合わせが含まれる。
【0068】
幾つかの実施形態において、全体的な訓練損失関数は、次の通りである。
【0069】
【0070】
ここで、Lは全体的な訓練損失であり、Jは左側ターゲット画像465における全ピクセルのインデックスの集合であり、
【0071】
【0072】
は予測可視通行可能空間分割マスク475のj番目のピクセルに関する損失値であり、
【0073】
【0074】
は予測通行可能空間深度マップのj番目のピクセルに関する損失値であり、
【0075】
【0076】
は予測通行可能空間分割マスク485のj番目のピクセルに関する損失値であり、
【0077】
【0078】
は予測通行可能空間深度マップ490のj番目のピクセルに関する損失値である。
【0079】
通行可能空間推定訓練システム170は、訓練損失モジュール185によって決定された全体的な訓練損失を使用することにより、予測モデル出力を決定するために使用される通行可能空間推定モデル470のパラメータを更新する。例えば、通行可能空間推定訓練システム170は、全体損失値を使用して逆伝搬を実行することにより、通行可能空間推定モデル470のパラメータに関する更新値(例えば、勾配)を決定し得る。さらに、通行可能空間推定訓練システム170は、様々な手法を使用して、更新値をモデルパラメータに適用し得る。例えば、通行可能空間推定訓練システム170は、様々な学習率または更新関数を使用することにより、更新値を適用し得る。
【0080】
オブジェクト占有領域推定モジュール190は、ターゲット画像におけるオブジェクト占有領域に対応するピクセル群を示す、ターゲット画像(例えば、左側ターゲット画像465)に関するオブジェクト占有領域分割マスクを決定する。一例として、オブジェクト占有領域分割マスクは、オブジェクト占有領域に対応するピクセル群が1の値を有し、オブジェクト占有領域に対応しないピクセル群が0の値を有する、二値分割マスクとし得る。オブジェクト占有領域分割マスクは、ターゲット画像におけるオブジェクト占有領域の全体を識別し得るか、またはオブジェクト占有領域の一部を識別し得る。例えば、オブジェクト占有領域推定モジュール190は、画像において可視であるオブジェクトの側面下でオブジェクト占有領域の一部分を表すピクセル群などの、オブジェクト占有領域に対応する確率が比較的高いピクセル群を決定し得る。他の用途の中でも、オブジェクト占有領域分割マスクは、訓練画像合成モジュール180によって決定された、通行可能空間分割マスクまたは深度マップにおける不正確さに対処するために使用することができる。例えば、上述されているように、訓練画像合成モジュール180によって決定されたターゲット通行可能空間分割マスク455または深度マップ460は、不正確な深度または分割値を含み得る。それ自体として、オブジェクト占有領域によって重ね合わされた通行可能空間などの、通行不可能空間にピクセル群が実際に対応する場合、分割マスク455または深度マップ460は、ピクセルが通行可能空間に対応することを示し得る。訓練プロセスにおけるそのような不正確さの影響を最小限に抑えるために、通行可能空間推定訓練システム170は、左側ターゲット画像465にラベル付けを行うために使用される分割マスク455または深度マップ460を調整し得る。例えば、分割マスク455におけるピクセル群が通行可能または通行不可能であるとして元々指定されていたかどうかに関わらず、分割マスク455におけるピクセル群がオブジェクト占有領域分割マスクにおけるオブジェクト占有領域として指定されたピクセル群に対応する場合、通行可能空間推定訓練システム170は、分割マスク455におけるピクセル群を通行不可能として指定し得る。
【0081】
オブジェクト占有領域推定モジュール190は、様々な手法を使用して、ターゲット画像に関するオブジェクト占有領域分割マスクを決定し得る。一実施形態において、オブジェクト占有領域推定モジュール190は、ターゲット可視空間深度マップ450のピクセル群をカメラ空間から世界空間に投影する。それから、オブジェクト占有領域推定モジュール190は、例えば、ランダム・サンプル・コンセンサス(RANSAC)プロセスを使用して、ターゲット可視通行可能空間分割マスク445によって通行可能として指定される、投影点群の第一のサブセットに平面を適合させる。続いて、ターゲット可視通行可能空間分割マスク445によって通行不可能として指定される、投影点群の第二のサブセットが平面と交差するまで、それらは平面の法線ベクトルに沿って変位される。最後に、オブジェクト占有領域推定モジュール190は、平面上の点群をカメラ空間に再投影して、再投影された点群を処理することにより、オブジェクト占有領域に対応する点群を特定する。
【0082】
幾つかの実施形態において、訓練損失モジュール185は、通行可能空間推定モデル470に関する全体的な訓練損失を決定する際に、ターゲット画像に関するターゲット占有領域分割マスクを使用する。例えば、訓練損失モジュール185は、左側ターゲット画像465のピクセル群が左側ターゲット画像465に関するオブジェクト占有領域分割マスクによってオブジェクト占有領域に対応するものとして指定される場合、それらが通行不可能であることを予測することを、通行可能空間推定モデル470が予測することになる可能性を高める全体的な訓練損失に対する、ターゲット通行可能空間分割マスク455に関する損失寄与を決定し得る。別の言い方をすれば、全体的な訓練損失により、オブジェクト占有領域分割マスクにおけるオブジェクト占有領域に対応するターゲット画像におけるピクセル群が通行不可能であると、通行可能空間推定モデルが予測するように促進され得る。追加として、または代替として、訓練損失モジュール185は、ターゲット通行可能空間分割マスク455によって通行可能として指定されていない、またはオブジェクト占有領域分割マスクによってオブジェクト占有領域に対応するものとして指定されていない、ピクセル群(すなわち、「不明なピクセル群」)を考慮する全体的な訓練損失を決定し得る。例えば、訓練損失モジュール185は、左側ターゲット画像465のピクセル群が不明なピクセル群である場合、それらが通行不可能であると予測するように通行可能空間推定モデル470を促進する、全体的な訓練損失に対するターゲット通行可能空間分割マスク455に関する寄与を決定し得る。これらの場合、訓練損失モジュール185は、不明なピクセル群が通行不可能であることを予測するように通行可能空間推定モデル470を促進する、所定の事前確率値(すなわち、「事前分布」)を使用する不明なピクセル群に関する損失寄与を決定し得る。
【0083】
移動推定モジュール195は、ターゲット画像に関する移動オブジェクト分割マスクを生成するために、ターゲット画像(例えば、左側ターゲット画像465)における何れのピクセル群が可視移動オブジェクトを表すのかを推定する。特に、移動オブジェクト分割マスクは、ピクセル群が可視移動オブジェクトを表すのか、または可視静止オブジェクトを表すのかを示す。一例として、移動オブジェクト分割マスクは、静止オブジェクトを表すピクセル群が1の値を有し、移動オブジェクトを表すピクセル群が0の値を有する、二値分割マスクとし得る。幾つかの実施形態において、訓練損失モジュール185は、ターゲット画像に関する移動オブジェクト分割マスクを使用することにより、予測通行可能空間分割マスク485に関する移動オブジェクトに対応するピクセル群から全体的な訓練損失への損失寄与を除去するか、さもなければ無視する。移動推定モジュール195は、オブジェクト検出、セマンティック分割、画像処理技術、またはそれら幾つかの組み合わせなどの、様々な技術を使用することにより、左側ターゲット画像465における移動オブジェクトに関連付けられたピクセル群を識別し得る。幾つかの実施形態において、移動推定モジュール195は、左側ターゲット画像465のピクセル群と隣接する左側ソース画像(例えば、映像における前または後のフレーム)の対応するピクセル群との間における誘導フローおよび光学フローを推定する。移動推定モジュール195は、誘導フローおよびオプティカル・フローが閾値量だけ異なるピクセル群を移動オブジェクトとして指定する。
【0084】
一実施形態において、予測通行可能空間分割マスク485に関して決定される損失値は、オブジェクト占有領域分割マスクおよび移動オブジェクト分割マスクを使用して、次の損失関数によって決定される。
【0085】
【0086】
ここでは、
【0087】
【0088】
は予測通行可能空間分割マスク485におけるj番目のピクセルに関する損失値であり、ujは移動オブジェクト分割マスクにおけるj番目のピクセルであり、
【0089】
【0090】
は予測通行可能空間分割マスク485におけるj番目のピクセルであり、
【0091】
【0092】
はターゲット通行可能空間分割マスク455であり、
【0093】
【0094】
はオブジェクト占有領域分割マスクであり、γは
【0095】
【0096】
である事前分布である。
【0097】
同じ、または異なる実施形態において、次の損失関数は、通行可能空間推定モデル470におけるその他の出力に関する損失値を決定するために使用される。
【0098】
【0099】
【0100】
【0101】
ここでは、
【0102】
【0103】
は予測可視通行可能空間分割マスク475におけるj番目のピクセルに関する損失値であり、
【0104】
【0105】
は予測通行可能空間深度マップにおけるj番目のピクセルに関する損失値であり、
【0106】
【0107】
は予測通行可能空間深度マップ490におけるj番目のピクセルに関する損失値であり、
【0108】
【0109】
は二値交差エントロピー損失関数であり、
【0110】
【0111】
は予測可視通行可能空間分割マスク475におけるj番目のピクセルであり、
【0112】
【0113】
はターゲット可視通行可能空間分割マスク445におけるj番目のピクセルであり、
【0114】
【0115】
は予測可視空間深度マップ480におけるj番目のピクセルであり、
【0116】
【0117】
はターゲット可視空間深度マップ450におけるj番目のピクセルであり、
【0118】
【0119】
は予測通行可能空間深度マップ490におけるj番目のピクセルであり、
【0120】
【0121】
はターゲット通行可能空間深度マップ460におけるj番目のピクセルである。
【0122】
通行可能空間推定モデルを訓練した後に、通行可能空間推定訓練システム170は、通行可能空間推定モデルに関するパラメータを提供することにより、カラー入力画像を受信して、通行可能空間推定訓練システム170によって訓練されたパラメータに基づいて一つまたは複数の出力(例えば、出力475、480、485、または490)を生成することができる。通行可能空間推定訓練システム170は、便宜上、ゲームサーバ120の一部として図示されているが、上述された通行可能空間推定訓練システム170の機能の一部または全ては、他の演算装置によって実行され得て、オペレーティングシステムの一部になる、ゲームアプリケーションに組み込まれる、またはオンデマンドでクラウドにアクセスされるなどを含む、様々な方法でクライアント装置110に提供され得る。さらに、
図4は、ラベル付けされた訓練データを生成するためのプロセスと、ラベル付けされた訓練データを通行可能空間推定モデルに適用するためのプロセスとの両方を描写しているが、これらのプロセスは、例示のみを目的として合わせて描写されており、当業者は、これらのプロセスに含まれる様々なステップの一部または全てが、様々な時間に、または並行して実行することができることを理解することになる。
【0123】
図5は、一つまたは複数の実施形態による、通行可能空間推定モデルの訓練に関する一般的なプロセス500を説明するフローチャートである。プロセス500は、入力画像を与えられると、通行可能空間推定モデルが通行可能空間に関する分割マスクおよび深度マップを生成することができる、複数のパラメータをもたらす。
【0124】
プロセス500は、ステップ510において、ターゲット立体画像ペアと一つまたは複数のソース立体画像ペアとの組み合わせを含む、通行可能空間推定訓練システム170が訓練画像データを獲得することから始まる。ターゲット立体画像ペアは、場景における左側ターゲット視野および右側ターゲット視野をそれぞれ表す左右のターゲット画像を含む。一つまたは複数のソース立体画像ペアは、左右のターゲット視野とは異なる、場景における左側ソース視野および右側ソース視野を表す左右のソース画像をそれぞれ含む。例示的なシナリオとして、場景は、左側ターゲット視野または右側ターゲット視野の一方または両方から通行可能空間を遮蔽する、オブジェクトを含む場合がある。この場合、ターゲット視野から遮蔽された通行可能空間は、一つまたは複数のソース視野から可視であることがある。訓練画像データは、外部装置上のカメラ、例えば、クライアント装置110上のカメラ集合体124から受信することができる。一実施形態において、ネットワーク・インターフェース160は、訓練画像データを受信する。通行可能空間推定訓練システム170は、例えば、立体画像データストアなどの、様々なデータストアにおける訓練画像データを保存することができる。
【0125】
ステップ520において、通行可能空間推定訓練システム170は、ソース立体画像ペアの各々のソース画像(例えば、左側ソース画像)に関する可視通行可能空間深度マップを生成する。可視通行可能空間深度マップは、ソース画像のピクセル群によって表現される可視通行可能路面までの距離を示す。例えば、上述されているように、立体視モジュール175は、ソース画像に関するソース可視空間深度マップおよびソース可視通行可能空間分割マスクを生成することにより、ソース画像に関する可視通行可能空間深度マップを決定し得る。ステップ510を参照して上述されたシナリオの例を続けると、遮蔽通行可能空間が可視である、ソース視野からのソース画像に関する可視通行可能空間深度マップは、ソース視野から閉塞通行可能空間までの深度を表す第一の深度値を有するピクセルを含む。
【0126】
ソース画像に関する可視通行可能空間深度マップを使用すると、ステップ530において、通行可能空間推定訓練システム170は、通行可能空間深度マップをターゲット立体画像ペアのターゲット画像(例えば、左側ターゲット画像)上に歪曲させることにより、ソース画像に関する歪曲通行可能空間深度マップを生成する。例えば、上述されるように、訓練画像合成モジュール180は、通行可能空間深度マップの各々をターゲット画像のターゲット視野上に前方歪曲を行わせ得る。ステップ520を参照して上述されたシナリオの例を続けると、遮蔽通行可能空間が可視である、ソース視野からのソース画像に関する歪曲通行可能空間深度マップは、ターゲット視野から閉塞通行可能空間までの深度を表す第二の深度値を有するピクセルを含む。
【0127】
ステップ540において、通行可能空間推定訓練システム170は、一つまたは複数の歪曲通行可能空間深度マップを使用して、ターゲット画像のピクセル群が通行可能空間または通過不能空間に対応するかどうかを示す、ターゲット分割マスクを生成する。ステップ550において、通行可能空間推定訓練システム170は、一つまたは複数の歪曲通行可能空間深度マップを使用して、ターゲット画像における通行可能空間に対応するピクセル群に関する通行可能路面までの距離を示す、ターゲット深度マップをさらに生成する。例えば、上述されるように、訓練画像合成モジュール180は、様々な技術を使用して、ターゲット分割マスクおよびターゲット深度マップを決定することにより、歪曲通行可能空間深度マップを集約し得る。ステップ530を参照して上述されたシナリオの例を続けると、ターゲット分割マスクは、第二の深度値を使用して決定された通行可能空間として、遮蔽通行可能空間に対応するターゲット画像におけるピクセルを指定する。さらに、ターゲット深度マップには、ターゲット視野から遮蔽通行可能空間までの深度を表す第三の深度値を有するピクセルが含まれる。例えば、第三の深度値は、複数の歪曲通行可能空間深度マップに亘る関連ピクセルに関する平均深度値とし得る。
【0128】
ステップ560において、通行可能空間推定訓練システム170は、ターゲット画像、ターゲット深度マップ、およびターゲット分割マスクを使用して、通行可能空間推定モデルを訓練する。例えば、通行可能空間推定訓練システム170は、ターゲット深度マップおよびターゲット分割マスクでラベル付けされたターゲット画像を含む、訓練データセットを生成し得る。この場合、通行可能空間推定訓練システム170は、通行可能空間推定モデルを訓練することにより、訓練データセットにおける所与のターゲット画像に関する予測通行可能空間分割マスクおよび予測通行可能空間深度マップを出力する。訓練中に、通行可能空間推定訓練システム170は、ターゲット画像に関する予測分割マスクおよび深度マップをターゲット分割マスクおよび深度マップと比較し得る。例えば、ターゲット値および予測値は、訓練損失モジュール185を参照して上述されるように、一つまたは複数の損失関数を使用して比較され得る。その比較に基づいて、通行可能空間推定訓練システム170は、通行可能空間推定モデルのパラメータを更新する。
【0129】
幾つかの実施形態において、通行可能空間推定訓練システム170は、ターゲット分割マスクまたはターゲット深度マップの内の一方のみを決定し得る。例えば、通行可能空間推定訓練システム170が、通行可能空間推定モデルを訓練することにより、通行可能空間深度マップまたは通行可能空間分割マスクの内の一方のみを予測する場合である。他の実施形態では、通行可能空間推定訓練システム170は、
図4を参照して上述されるように、ターゲット可視通行可能空間分割マスクまたはターゲット可視空間深度マップなどの、通行可能空間推定モデルを訓練するための追加のターゲット出力を決定する。
【0130】
[通行可能空間推定モデル]
図6は、一つまたは複数の実施形態による、通行可能空間推定モデルの使用に関する一般的なプロセス600を説明するフローチャートである。プロセス600は、入力画像が与えられると、予測通行可能空間分割マスクおよび予測通行可能空間深度マップをもたらす。プロセス600は、訓練済み通行可能空間推定モデルを有するクライアント装置(例えば、クライアント装置110)によって達成され得る。クライアント装置は、一般的な演算装置とすることができ、その上にカメラを有し得る。幾つかの実施形態において、クライアント装置は、上記の
図1~4で説明された並行現実ゲームで実装される。以下の説明はクライアント装置の関連の中にあるが、プロセス600は、他の演算装置上で実行され得る。
【0131】
プロセス600は、ステップ610において、クライアント装置がオブジェクトを含む場景の画像を受信することを含む。場景の画像は、クライアント装置のコンポーネントである、またはクライアント装置の外部にある、カメラによって捕捉され得る。並行現実ゲームに関連して、場景は、仮想世界における仮想位置にマッピングさせ得る、現実世界の場所とし得る。また、場景の画像には、画像を捕捉したカメラの幾何学的特性に対応する固有値が含まれる。画像は、カメラによって捕捉された単一の画像であってよい。代替として、画像は、カメラによって捕捉中の映像からのフレームであってもよい。
【0132】
プロセス600は、ステップ620において、クライアント装置が場景の画像を訓練済み通行可能空間推定モデルに入力することを含む。通行可能空間推定モデルは、例えば、
図5におけるプロセス500を通して、通行可能空間推定訓練システム170によって訓練され得る。
【0133】
プロセス600は、ステップ630において、訓練済み通行可能空間推定モデルによって、ピクセルが通行可能空間または通過不能空間に対応するかどうかを示す値を分割マスクの各ピクセルが有する、場景の分割マスクをクライアント装置が生成することを含む。例えば、ピクセルが通行可能空間に対応する場合にそのピクセルに関する値は1になり得て、それ以外の場合に0になり得る。通行不可能空間には、場景におけるオブジェクトの占有領域が含まれる。通行可能空間は、入力画像におけるオブジェクトによって遮蔽された通行可能空間を含む。
【0134】
プロセス600は、ステップ640において、訓練済み通行可能空間推定モデルによって、場景の画像に対応する場景の深度マップをクライアント装置が生成することを含む。深度マップの各ピクセルは、通行可能空間に対応する場景の画像におけるピクセル群に関する、通行可能路面までの相対距離を記述する推定深度値を有する。例えば、深度マップは、通行可能空間を表す分割マスクの各ピクセルに対応する深度値を含み得る。深度値は、場景における(例えば、入力画像に描写された)可視通行可能路面までの相対距離を記述し得るか、または場景における(例えば、入力画像におけるオブジェクトによって遮蔽された)遮蔽通行可能路面までの相対距離を記述し得る。
【0135】
プロセス600は、ステップ650において、分割マスクおよび深度マップを適用することにより、遮蔽通行可能空間における位置をクライアント装置が決定することを含む。例えば、クライアント装置は、遮蔽通行可能空間における位置を含む場景を通過して、エージェントが航行するための進路を決定し得る。この場合、エージェントは、物理的エージェント(例えば、ロボット)または仮想エージェント(ARオブジェクト)とし得る。別の例として、クライアント装置は、場景に関する様々な仮想コンテンツを生成するために、位置を使用し得る。仮想コンテンツは、例えば、ゲームデータベース115に格納された、並行現実ゲームに関するコンテンツから調達することができる。仮想コンテンツは、場景の画像上に拡張することができる拡張現実コンテンツとし得る。例えば、遮蔽空間における位置に配置することができるか、または場景の通行可能空間およびオブジェクト占有領域を理解して場景を動き回ることができる、仮想キャラクタまたは仮想オブジェクトが生成される。例えば、仮想コンテンツがオブジェクトによって遮蔽された通行可能空間に移動する際に、仮想コンテンツは、場景のある画像において遮蔽される場合がある。同様にして、仮想コンテンツがオブジェクトの背後から可視通行可能空間上に動き出す際に、仮想コンテンツは、場景の別画像において可視になる場合がある。並行現実ゲームシナリオの例として、仮想キャラクタの一部が樹木の背後にあるときに、その部分が樹木によって遮蔽された樹木の背後から前後に、仮想キャラクタは回避することができる。
【0136】
上記の例にしたがうと、並行現実ゲームは、仮想キャラクタと対話することを目的として提供する場合がある。仮想キャラクタと対話するために、モバイル装置のユーザーは、仮想キャラクタをカメラの視野に保ちながら、自分のモバイル装置を彼方此方に動かす必要があり得る。ユーザーがモバイル装置を彼方此方に動かす際に、ユーザーのモバイル装置の動きに合わせて場景が変化するため、場景の通行可能空間情報を繰り返し生成するように使用することができる映像または画像データを、モバイル装置は継続的に捕捉することができる。モバイル装置は、生成された通行可能空間情報に基づいて仮想キャラクタを更新することも行いつつ、画面上に与えられた映像を更新することができることにより、例えば、オブジェクトを通過して歩かないこと、それらの部分を遮蔽する何れかのオブジェクト無しままに切り取られる部分が無いことなど、仮想キャラクタが場景内で常に適切に対話していると、ユーザーは認識することになる。
【0137】
[コンピューティングシステムの例]
図7は、一実施形態による、演算装置に関する例示的なアーキテクチャである。
図7は、一実施形態による、本明細書に記述された一つまたは複数の実態の一部または全部として使用されるコンピュータの物理コンポーネントを例証する高レベルのブロック図を描写するが、コンピュータは、
図7で提供されるコンポーネントの増減形または変形を有し得る。
図7はコンピュータ700を描写しているが、本明細書で記述された実装形態の構造図としてではなく、コンピュータシステムに存在し得る様々な特徴の機能的説明として、その図は意図されている。実際には、かつ、当業者によって認識されるように、別々に図示されたアイテムを組み合わせることができ、幾つかのアイテムを分離することができる。
【0138】
図7において、チップセット704に結合された少なくとも一つのプロセッサ702が例証されている。チップセット704には、メモリ706、記憶装置708、キーボード710、グラフィックスアダプタ712、ポインティングデバイス714、およびネットワークアダプタ716も結合されている。ディスプレイ718は、グラフィックスアダプタ712に結合されている。一実施形態において、チップセット704の機能性は、メモリコントローラハブ720およびI/Oハブ722によって提供される。別の実施形態では、メモリ706は、チップセット704に代わって、プロセッサ702に直接的に結合される。幾つかの実施形態では、コンピュータ700は、これらのコンポーネントを相互接続するための一つまたは複数の通信バスを含む。一つまたは複数の通信バスは、複数のシステムコンポーネントの間を相互接続して通信を制御する(チップセットと呼ばれることもある)回路を任意に含む。
【0139】
記憶装置708は、ハードドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)、DVD、または、ソリッドステート記憶装置もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置もしくは他の不揮発性ソリッドステート記憶装置などの、任意の非一時的コンピュータ可読記憶メディアである。そのような記憶装置708は、永続メモリと呼ばれることもある。ポインティングデバイス714は、マウス、トラックボール、または他の種類のポインティング デバイスであってもよく、コンピュータ700にデータを入力するためにキーボード710と組み合わせて使用される。グラフィックスアダプタ712は、ディスプレイ718上に画像および他の情報を表示する。ネットワークアダプタ716は、コンピュータ700をローカルエリアネットワークまたはワイドエリアネットワークに結合する。
【0140】
メモリ706は、プロセッサ702によって使用される命令およびデータを保持する。メモリ706は、非永続メモリとすることができるが、その例には、DRAM、SRAM、DDRRAM、ROM、EEPROM、フラッシュメモリなどの、高速ランダムアクセスメモリが含まれる。
【0141】
当技術分野で知られているように、コンピュータ700は、
図7に示されるものとは異なる、または他のコンポーネントを有することができる。さらに、コンピュータ700は、図示された特定のコンポーネントを欠落することができる。一実施形態において、サーバとして機能するコンピュータ700は、キーボード710、ポインティングデバイス714、グラフィックスアダプタ712、またはディスプレイ718を欠いていてもよい。さらに、記憶装置708は、(ストレージエリアネットワーク(SAN)内で具体化されるなど)コンピュータ700から身近または遠隔とすることができる。
【0142】
当技術分野で知られているように、コンピュータ700は、本明細書で記述された機能性を提供するために、コンピュータプログラムモジュールを実行するように適合されている。本明細書で使用するように、「モジュール」という用語は、特定の機能性を提供するために利用されるコンピュータプログラムロジックを指す。そのため、モジュールは、ハードウェア、ファームウェア、またはソフトウェアで実装することができる。一実施形態において、プログラムモジュールは、記憶装置708に保存され、メモリ706にロードされ、プロセッサ302によって実行される。
【0143】
[その他の考慮事項]
上記の説明における幾つかの部分は、アルゴリズムのプロセスまたは操作に関して実施形態を説明している。これらアルゴリズムの記述および表現は、データ処理技術の当業者によって、自分たちの仕事の本質を他の当業者に効果的に伝えるために、一般的に使用されている。これらの操作は、機能的、計算的、または論理的に説明されているが、プロセッサまたは等価な電気回路、マイクロコードなどによる実行のための命令を含む、コンピュータプログラムによって実装されると理解される。さらに、一般性を失うことなく、これらの機能的な操作の配置をモジュールと呼ぶことも、場合によっては利便性のあることが証明されている。
【0144】
本明細書で使用されるように、「ある実施形態(one embodiment)」または「一実施形態(an embodiment)」への何れの言及も、その実施形態に関連して説明される特定の要素、特徴、構造、または特性が少なくとも一つの実施形態に含まれることを意味する。本明細書における様々な箇所に現れる「ある実施形態において(in one embodiment)」という語句は、必ずしもすべてが同じ実施形態を指しているとは限らない。
【0145】
幾つかの実施形態は、「結合された(coupled)」および「接続された(connected)」という表現をそれらの派生語とともに使用して説明し得る。これらの用語は、互いに同義語として意図されていないことを理解する必要がある。例えば、幾つかの実施形態は、「接続された」という用語を使用して記述されることにより、二つ以上の要素が互いに直接物理的または電気的に接触していることを示し得る。別の例では、幾つかの実施形態は、「結合された(coupled)」という用語を使用して記述されることにより、二つ以上の要素が直接物理的または電気的に接触していることを示し得る。しかしながら、用語「結合された(coupled)」は、二つ以上の要素が互いに直接接触していないが、それでもなお互いに協働または相互作用することを意味する場合もある。実施形態は、このような関係に限定されるものでない。
【0146】
本明細書で使用される用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、またはそれらの他の任意の変形は、非排他的な包含に及ぶことを意図している。例えば、要素のリストを含むプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されるわけではなく、明示的に列挙されていない、またはそのようなプロセス、方法、物品、または装置に固有となる、他の要素を含む場合がある。さらに、反対のことが明確に述べられていない限り、「または(or)」は排他的な又はではなく、包括的な又はを指す。例えば、条件AまたはBは、次の何れか一つによって満たされる。すなわち、Aが真(または存在)かつBが偽(または非存在)と、Aが偽(または非存在)かつBが真(または存在)と、AおよびBがともに真(または存在)。
【0147】
さらに、「a」または「an」の使用は、実施形態の要素および構成要素を説明するために適用される。これは、便宜上であって、本開示の一般的な意味を与えるためにのみ行われる。この説明は、一つまたは少なくとも一つを含むように読まれるべきであり、別の意味であることが明らかでない限り、単数形は複数形も含んでいる。値が「大体(approximate)」または「実質的に(substantially)」(またはそれらの派生語)として記述されている場合、その関係から別の意味が明らかでない限り、そのような値は+/-10%の近似として解釈される必要がある。例から、「およそ10」とは「9から11までの範囲内」を意味すると理解されるべきである。
【0148】
本開示を読めば、当業者は、オンラインサービスプロバイダのアカウントが本物のビジネスに対応することを確認するための、システムおよびプロセスに関するさらなる別の代替的な構造設定および機能設定を理解することになる。そのため、特定の実施形態および適用形態が図示および説明されてきたが、説明された主題は、本明細書に開示された正確な構造および構成要素に限定されず、当業者には明確となる様々な修正、変更、および変形を、開示された方法および装置の配置、操作、および詳細において実施し得ることは、理解されるべきである。保護の範囲は、登録される任意の請求項によってのみ制限されるべきである。
【国際調査報告】