(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-04
(45)【発行日】2023-09-12
(54)【発明の名称】クライアントデバイスでビデオフィードをカスタマイズおよび合成するためのシステムおよび方法
(51)【国際特許分類】
H04N 21/458 20110101AFI20230905BHJP
H04N 21/431 20110101ALI20230905BHJP
H04N 21/435 20110101ALI20230905BHJP
H04N 21/235 20110101ALI20230905BHJP
H04N 21/2668 20110101ALI20230905BHJP
H04N 21/258 20110101ALI20230905BHJP
H04L 67/131 20220101ALI20230905BHJP
【FI】
H04N21/458
H04N21/431
H04N21/435
H04N21/235
H04N21/2668
H04N21/258
H04L67/131
(21)【出願番号】P 2021536784
(86)(22)【出願日】2020-03-13
(86)【国際出願番号】 US2020022767
(87)【国際公開番号】W WO2020160563
(87)【国際公開日】2020-08-06
【審査請求日】2021-08-19
(32)【優先日】2019-03-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521273259
【氏名又は名称】テンパス・エクス・マキーナ・インコーポレーテッド
【氏名又は名称原語表記】TEMPUS EX MACHINA,INC.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】シュワルツ・エリック
(72)【発明者】
【氏名】ネイキン・マイケル
(72)【発明者】
【氏名】シチェルビアク・グリゴリー
(72)【発明者】
【氏名】ヘインズ・クリストファー
(72)【発明者】
【氏名】エバーソール・チャールズ・ディー.
【審査官】川中 龍太
(56)【参考文献】
【文献】米国特許出願公開第2018/0343489(US,A1)
【文献】特開2016-005015(JP,A)
【文献】米国特許出願公開第2013/0066448(US,A1)
【文献】米国特許第08019271(US,B1)
【文献】米国特許出願公開第2016/0191945(US,A1)
【文献】米国特許出願公開第2017/0201793(US,A1)
【文献】国際公開第2011/021632(WO,A1)
【文献】国際公開第2016/199527(WO,A1)
【文献】特開2003-348424(JP,A)
【文献】特開2004-235734(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
H04L 67/131
(57)【特許請求の範囲】
【請求項1】
クライアントデバイスであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサであって、
リモートサーバからバックグラウンドビデオフィードを受信し、
前記通信インターフェースを介して、1または複数のユーザ固有の特徴に関連付けられているコンテンツを受信し、前記1または複数のユーザ固有の特徴に関連付けられているコンテンツは、前記バックグラウンドビデオフィードの特定の時間範囲または特定のフレーム範囲に関係する1つまたは複数のデータ要素についての1または複数のデータベースに対する1または複数のクエリに少なくとも一部基づいて取得され、それに関して前記データベースがクエリされる前記特定の時間範囲または前記特定のフレーム範囲は、前記クライアントデバイスの帯域幅に少なくとも一部基づき、
前記受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定し、
前記1または複数のデータ要素の少なくとも対応する部分を前記バックグラウンドビデオフィードの対応する部分に整合させること、および、前記1つまたは複数のデータ要素を前記バックグラウンドビデオフィード上にオーバレイすること、によることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、
前記クライアントデバイスのディスプレイデバイス上に前記合成ビデオフィードを表示する、よう構成されているプロセッサと、
を備える、デバイス。
【請求項2】
請求項1に記載のデバイスであって、
前記リモートサーバは、前記1または複数のユーザ固有の特徴に少なくとも部分的に基づいて、前記コンテンツをルックアップし、
前記通信インターフェースを介して前記コンテンツを前記デバイスへ送信するよう構成されている、デバイス。
【請求項3】
請求項1に記載のデバイスであって、前記1または複数のデータ要素は、インタラクティブである、デバイス。
【請求項4】
請求項1に記載のデバイスであって、前記受信されたコンテンツは、
グラフィック、テキスト、または、オーディオ、の内のすくなくとも1つを含む、前記合成ビデオフィード内で出力するデータと、
前記合成ビデオフィード内で前記データがどのように出力されるのかに関するメタデータと、
を含む、デバイス。
【請求項5】
請求項1に記載のデバイスであって、さらに、前記ディスプレイデバイスを備え、前記ディスプレイデバイスは、前記合成ビデオフィードをレンダリングするよう構成されている、デバイス。
【請求項6】
請求項1に記載のデバイスであって、前記バックグラウンドビデオフィードは、ライブスポーツイベントのビデオフィードを含む、デバイス。
【請求項7】
請求項1に記載のデバイスであって、前記データ要素は、試合クロック、試合状態、または、位置情報、の内の少なくとも1つを含む、デバイス。
【請求項8】
請求項1に記載のデバイスであって、
前記バックグラウンドビデオフィードは、第1複数のプレイヤーを含む第1チームと、第2複数のプレイヤーを含む第2チームとの間のライブスポーツイベントのビデオフィードを含み、
前記データ要素は、前記第1複数のプレイヤーまたは前記第2複数のプレイヤーの中の1または複数のプレイヤーに関連付けられているタイムスタンプ付き位置情報データ要素を含み、前記タイムスタンプ付き位置情報データ要素は、前記ライブスポーツイベントでテレメトリ追跡システムによってキャプチャされ、
前記データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させることは、
それぞれのフレームと一致するタイムスタンプ値を有するそれぞれの位置情報データ要素を前記位置情報データ要素から特定し、
前記それぞれの位置情報データ要素を前記それぞれのフレーム上にオーバレイすることにより、前記合成ビデオフィード内の時間整合済みフレームを形成することを含む、デバイス。
【請求項9】
請求項1に記載のデバイスであって、前記通信インターフェースは、前記コンテンツを定期的に要求する、および、前記バックグラウンドビデオフィードの一部を定期的に受信する、ことの内の少なくとも一方を行うよう構成されている、デバイス。
【請求項10】
請求項1に記載のデバイスであって、
前記データ要素は、テキストを含み、
前記ディスプレイデバイス上で前記合成ビデオフィードをレンダリングすることは、前記バックグラウンドビデオフィードと共に前記テキストのスクロールを表示することを含む、デバイス。
【請求項11】
請求項10に記載のデバイスであって、前記スクロールの速度、方向、リフレッシュレート、終了条件、および、相互作用ルールの内の少なくとも1つが、前記リモートサーバから受信された前記コンテンツに少なくとも部分的に基づいている、デバイス。
【請求項12】
請求項1に記載のデバイスであって、前記プロセッサは、さらに、前記合成ビデオフィードの前記1または複数のデータ要素とのユーザ相互作用に応答して、前記バックグラウンドビデオフィードまたは前記合成ビデオフィードの内の少なくとも一方を更新するよう構成されている、デバイス。
【請求項13】
請求項1に記載のデバイスであって、
前記バックグラウンドビデオフィードは、広告であり、
前記決定されたデータ要素は、特定のユーザに合わせてカスタマイズされた価格を含む、デバイス。
【請求項14】
請求項13に記載のデバイスであって、前記データ要素は、前記特定のユーザに合わせてカスタマイズされた言語のオーディオを含む、デバイス。
【請求項15】
請求項13に記載のデバイスであって、前記データ要素は、前記特定のユーザに合わせてカスタマイズされた音楽を含む、デバイス。
【請求項16】
クライアントデバイスであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサであって、
リモートサーバからバックグラウンドビデオフィードを受信し、
前記バックグラウンドビデオフィードの第1フレームに関連付けられているタイムスタンプ付きメタデータから前記第1フレームの第1タイムスタンプを決定し、
前記通信インターフェースを介して、1または複数のユーザ固有の特徴に関連付けられたコンテンツを受信し、
前記1または複数のユーザ固有の特徴に関連付けられているコンテンツは、前記バックグラウンドビデオフィードの特定の時間範囲または特定のフレーム範囲に関係する1つまたは複数のデータ要素についての1または複数のデータベースに対する1または複数のクエリに少なくとも一部基づいて取得され、
それに関して前記データベースがクエリされる前記特定の時間範囲または前記特定のフレーム範囲は、前記クライアントデバイスの帯域幅に少なくとも一部基づき、
前記コンテンツは、バックグラウンドビデオフレームに関連付けられたタイムスタンプ付きメタデータと、前記第1タイムスタンプによって決定された時間範囲内にあるタイムスタンプを有するデータと、を含み、
前記受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定し、
それぞれのデータ要素のタイムスタンプとそれぞれのバックグラウンドビデオフレームのタイムスタンプとの一致に少なくとも部分的に基づいて、前記1または複数のデータ要素の少なくとも対応する部分を前記バックグラウンドビデオフィードの対応する部分に整合させること、および、前記1つまたは複数のデータ要素を前記バックグラウンドビデオフィード上にオーバレイすること、によることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、
前記クライアントデバイスのディスプレイデバイス上に前記合成ビデオフィードを表示し、前記生成された合成ビデオフィードは、それぞれのバックグラウンドビデオフレームと時間の一致するデータ要素と各時間整合済みフレームがオーバレイされている時間整合済みフレームを含む、よう構成されているプロセッサと、
を備える、デバイス。
【請求項17】
サーバであって、
プロセッサであって、
1または複数のユーザ固有の特徴に関連付けられているコンテンツの要求を受信し、
前記1または複数のユーザ固有の特徴に関連付けられているコンテンツは、バックグラウンドビデオフィードの特定の時間範囲または特定のフレーム範囲に関係する1つまたは複数のデータ要素についての1または複数のデータベースに対する1または複数のクエリに少なくとも一部基づいて取得され、
それに関して前記データベースがクエリされる前記特定の時間範囲または前記特定のフレーム範囲は
、クライアントデバイスの帯域幅に少なくとも一部基づき、
前記要求に少なくとも部分的に基づいてコンテンツをルックアップすることによることを含み、前記要求に基づいてコンテンツを決定し、
前記コンテンツ要求に応答して、前記決定されたコンテンツを
前記クライアントデバイスへ送信し、
前記クライアントデバイスは、データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させること、および、前記1つまたは複数のデータ要素を前記バックグラウンドビデオフィード上にオーバレイすること、によることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成する、よう構成されているプロセッサと、
前記プロセッサに接続され、前記1または複数のユーザ固有の特徴をユーザプロフィール内に格納するよう構成されているメモリと、
を備える、サーバ。
【請求項18】
請求項17に記載のサーバであって、前
記クライアントデバイスは、前記受信されたコンテンツに少なくとも部分的に基づいて、前記データ要素を決定するよう構成されている、サーバ。
【請求項19】
方法であって、
リモートサーバからバックグラウンドビデオフィードを受信し、
1または複数のユーザ固有の特徴に関連付けられているコンテンツを要求し、
前記コンテンツ要求に応答して、前記リモートサーバからコンテンツを受信し、
前記1または複数のユーザ固有の特徴に関連付けられているコンテンツは、前記バックグラウンドビデオフィードの特定の時間範囲または特定のフレーム範囲に関係する1つまたは複数のデータ要素についての1または複数のデータベースに対する1または複数のクエリに少なくとも一部基づいて取得され、
それに関して前記データベースがクエリされる前記特定の時間範囲または前記特定のフレーム範囲は
、クライアントデバイスの帯域幅に少なくとも一部基づき、
前記受信されたコンテンツに少なくとも部分的に基づいて、データ要素を決定し、
前記データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させること、および、前記1つまたは複数のデータ要素を前記バックグラウンドビデオフィード上にオーバレイすること、によることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、
前記クライアントデバイスのディスプレイ上に前記合成ビデオフィードを出力すること、
を備える、方法。
【請求項20】
コンピュータプログラムであって、コンピュータに、
リモートサーバからバックグラウンドビデオフィードを受信させるためのコンピュータ命令と、
1または複数のユーザ固有の特徴に関連付けられているコンテンツを要求させるためのコンピュータ命令と、
前記コンテンツ要求に応答して、前記リモートサーバからコンテンツを受信させるためのコンピュータ命令と、
前記1または複数のユーザ固有の特徴に関連付けられているコンテンツは、前記バックグラウンドビデオフィードの特定の時間範囲または特定のフレーム範囲に関係する1つまたは複数のデータ要素についての1または複数のデータベースに対する1または複数のクエリに少なくとも一部基づいて取得され、
それに関して前記データベースがクエリされる前記特定の時間範囲または前記特定のフレーム範囲は
、クライアントデバイスの帯域幅に少なくとも一部基づき、
前記受信されたコンテンツに少なくとも部分的に基づいて、データ要素を決定させるためのコンピュータ命令と、
前記データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させることによること、および、前記1つまたは複数のデータ要素を前記バックグラウンドビデオフィード上にオーバレイすること、を含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成させるためのコンピュータ命令と、
前記クライアントデバイスのディスプレイ上に前記合成ビデオフィードを出力させるためのコンピュータ命令と、
を備える、コンピュータプログラム。
【請求項21】
請求項1に記載のクライアントデバイスであって、
前記バックグラウンドビデオフィードは、ライブスポーツイベントのビデオフィードを含み、
前記データベースの少なくとも1つは、機械学習エンジンによって前記ライブスポーツイベントと同時に処理される情報を含み、
少なくとも1つのデータベースは、前記ライブスポーツイベントに関連する予想結果を備え、前記予想結果は、前記機械学習エンジンによって使用される機械学習モデルに少なくとも一部基づいている、クライアントデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2019年3月15日出願の米国仮特許出願第62/819,428号「SYSTEMS AND METHODS FOR COMPOSITING A VIDEO FEED AT A CLIENT DEVICE」に基づく優先権を主張する。
【0002】
本願は、2020年1月20日出願の米国特許出願第16/747,440号「SYSTEMS AND METHODS FOR PARTITIONING A VIDEO FEED TO SEGMENT LIVE PLAYER ACTIVITY」の一部継続出願であり、その特許出願は、2019年1月22日出願の米国仮特許出願第62/795,020号「SYSTEMS AND METHODS FOR PARTITIONING A VIDEO FEED TO SEGMENT LIVE PLAYER ACTIVITY」に基づく優先権を主張し、2019年2月6日出願の米国仮特許出願第62/802,186号「SYSTEMS AND METHODS FOR PARTITIONING A VIDEO FEED TO SEGMENT LIVE PLAYER ACTIVITY」に基づく優先権を主張する。上述の出願は、すべての目的のために参照によって本明細書に組み込まれる。
【背景技術】
【0003】
ニュース放送ならびにスポーツイベント(アメフトおよびサッカーなど)のビデオが、エンターテインメントで最も人気のある形態のいくつかである。ユーザデバイス上でビデオフィードをストリーミングする方法が人気である。従来のビデオストリームは、リモートでコンパイルされて世界中に通信される複数のデータ層を利用する。例えば、放送室が、ビデオフィード、オーディオフィード、および、グラフィクスを受信してコンパイルすることでコンパイル済みビデオフィードを作成し、それは、後に、リモートデバイスへ通信される。コンパイル済みビデオフィードは、オーディオおよびグラフィクをフィードのビデオ部分から分離できないので、大量のデータを消費する。さらに、エンドユーザは、ビデオフィードの一部を任意選択的に受信する代わりに、コンパイル済みビデオフィードを受信するか、または、ビデオフィードを全く受信しないことを選ぶか、いずれかを実行できるので、ビデオフィードをパーソナライズできない。
【発明の概要】
【0004】
カスタマイズされた合成ビデオフィードを提供するための技術(システム、プロセッサ、および、コンピュータプログラム製品など)が開示されている。様々な実施形態において、ビデオフィードをカスタマイズおよび合成するための処理は、リモートサーバからバックグラウンドビデオフィードを受信し、1または複数のユーザ固有の特徴に関連付けられているコンテンツを受信し、受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定すること、を備える。処理は、1または複数のデータ要素の少なくとも対応する部分をバックグラウンドビデオフィードの対応する部分に整合させることによることを含み、1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、クライアントデバイスのディスプレイデバイス上に合成ビデオフィードを表示すること、を備える。
【0005】
様々な実施形態において、ビデオフィードをカスタマイズおよび合成するための処理は、バックグラウンドビデオフィードをリモートサーバから受信し、バックグラウンドビデオフィードの第1フレームに関連付けられているタイムスタンプ付きメタデータから第1フレームの第1タイムスタンプを決定し、1または複数のユーザ固有の特徴に関連付けられているコンテンツを受信すること、を備える。コンテンツは、バックグラウンドビデオフレームに関連付けられたタイムスタンプ付きメタデータと、第1タイムスタンプによって決定された時間範囲内にあるタイムスタンプを有するデータと、を含む。処理は、受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定することを備える。処理は、それぞれのデータ要素のタイムスタンプとそれぞれのバックグラウンドビデオフレームのタイムスタンプとの一致に少なくとも部分的に基づいて、1または複数のデータ要素の少なくとも対応する部分をバックグラウンドビデオフィードの対応する部分に整合させることによることを含み、1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成することを備える。処理は、クライアントデバイスのディスプレイデバイス上に合成ビデオフィードを表示することを備える。生成された合成ビデオフィードは、それぞれのバックグラウンドビデオフレームと時間の一致するデータ要素と各時間整合済みフレームがオーバレイされている時間整合済みフレームを含む。本明細書で開示されている技術を用いてカスタマイズおよびコンパイルされたビデオは、エンドユーザに合わせてパーソナライズされている。
【図面の簡単な説明】
【0006】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0007】
【
図1】カスタマイズされた合成ビデオフィードを提供するためのシステムの一実施形態を示すブロック図。
【0008】
【
図2】ビデオフィードをカスタマイズおよび合成するための処理の一実施形態を示すフローチャート。
【0009】
【
図3】ビデオフィードをカスタマイズおよび合成するための処理の一実施形態を示すフローチャート。
【0010】
【
図4A】クライアントデバイスでカスタマイズおよび合成されたニュース放送の例を示す図。
【0011】
【
図4B】クライアントデバイスでカスタマイズおよび合成されたニュース放送の例を示す図。
【0012】
【
図5A】クライアントデバイスでカスタマイズおよび合成されたスポーツイベントの例を示す図。
【0013】
【
図5B】クライアントデバイスでカスタマイズおよび合成されたスポーツイベントの例を示す図。
【0014】
【
図5C】クライアントデバイスでカスタマイズおよび合成されたスポーツイベントの例を示す図。
【0015】
【
図6】ビデオフィードをカスタマイズおよび合成するためのシステムの一実施形態を示すブロック図。
【0016】
【
図7A】ビデオフィードをカスタマイズおよび合成するためのシステムの一実施形態を示すブロック図。
【0017】
【
図7B】ビデオフィードをカスタマイズおよび合成するためのシステムの一実施形態を示すブロック図。
【0018】
【
図8】追跡デバイスの一実施形態を示すブロック図。
【0019】
【
図9】追跡デバイス管理システムの一実施形態を示すブロック図。
【0020】
【
図10】統計システムの一実施形態を示すブロック図。
【0021】
【
図11】オッズ管理システムの一実施形態を示すブロック図。
【0022】
【
図12】ユーザデバイスの一実施形態を示すブロック図。
【0023】
【
図13】本開示の一実施形態に従って、追跡システムの構成要素を含む競技フィールドを含んだ環境例を示す図。
【0024】
【
図14】いくつかの実施形態に従って、ビデオフィードをカスタマイズおよび合成するためにプログラムされたコンピュータシステムを示す機能図。
【0025】
【
図15】ライブスポーツのためのビデオフィードをカスタマイズおよび合成するための処理の一実施形態を示すフローチャート。
【0026】
【
図16】アメフトの試合向けにカスタマイズされた合成ビデオフィードの例を示す図。
【0027】
【
図17】アメフトの試合向けにカスタマイズされた合成ビデオフィードの例を示す図。
【発明を実施するための形態】
【0028】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な記憶媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【0029】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0030】
図1は、カスタマイズされた合成ビデオフィードを提供するためのシステムの一実施形態を示すブロック図である。このシステム例は、1または複数のクライアントデバイス150と、サーバ100と、1または複数のコンテンツクリエータ140と、を備える。各クライアントデバイスおよびコンタクトクリエータは、通信インターフェース(図示せず)を介してサーバ100と通信するよう構成されている。
【0031】
1または複数のユーザデバイス150は、本開示の様々なシステムとのエンドユーザ相互作用を円滑にする。ユーザデバイスは、スマートフォン、タブレット、OTTボックス、デスクトップコンピュータ、または、スマートTVを含むがそれらに限定されない任意のタイプのコンピュータデバイスであってよい。ユーザデバイスの一例を
図16に示す。エンドユーザは、ニュース放送、ライブスポーツイベント、または、テレビ番組などのビデオコンテンツを見るために、サーバ100へ要求を送信することによって、他のシステム構成要素と相互作用する。サーバは、要求されたコンテンツで応答し、ビデオフィードの一部が、後に詳述する技術を用いて特定のユーザの好みに合わせてカスタマイズされうる。様々な実施形態において、サーバ100は、ユーザプロフィール102を格納しており、ユーザプロフィール102は、(例えば、登録時の)ユーザ指定の興味、閲覧履歴などのユーザの習慣、および、周知の機械学習技術などの様々な技術を用いて経時的に学習されうるその他のユーザの特徴、に基づきうるユーザの好みを記録する。また、サーバ100は、定期的にクライアントデバイスへプッシュされるかまたはデータのクエリに応答してクライアントデバイスへ送信されうるコンテンツを格納している。バックグラウンドコンテンツ104は、後に詳述するように、コンテンツクリエータ140によって作成またはキャプチャされたコンテンツ(バックグラウンドビデオフィードなど)を含む。さらなるコンテンツ109は、バックグラウンドビデオフィードを増強するために利用できるデータ要素(インタラクティブデータ要素など)を含む。データ要素は、バックグラウンドビデオフィードから抽出されてよく(例えば、アメフトチームの特定のプレイヤーの場面を分離または強調する)、生成されてよく(例えば、試合/プレイヤーの統計値)、もしくは、それらの組み合わせで作成されてよい。
【0032】
一例として、ニュース放送を視聴するユーザAが、X社のライブの株価に関心を持っているとする。ユーザAのデバイス内に、ニュース放送が提示され、A社の株価を表示するようカスタマイズされる。ユーザBは、X社には関心がない代わりにY社に関心があると仮定する。ユーザBのデバイス内に、ニュース放送が提示され、Y社の株価を表示するようカスタマイズされる。別の例として、ユーザAが、ライブのアメフトの試合を視聴し、プレイヤーUに関心を持っているとする。ユーザAのデバイス内に、アメフトの試合が提示され、例えば、フィールド上のプレイヤーUの動きに焦点を当てて試合の場面を表示することによって、プレイヤーUを強調するようカスタマイズされる。ユーザBは、プレイヤーUに関心がない代わりにプレイヤーVに関心を持っている。ユーザBのデバイス内に、アメフトの試合が提示され、プレイヤーVを強調するようカスタマイズされる。
【0033】
1または複数のコンタクトクリエータ140は、クライアントデバイス150に分配されるコンテンツ(ビデオ、オーディオ、テキスト、画像、など)を作成する。非限定的な例として、コンテンツクリエータは、金融ニュースなどのニュース放送、リアリティテレビなど様々な分野のテレビ番組、および、スポーツの生中継などのスポーツイベントを作り出す。例えば、1または複数のカメラ140-1~140-Sが、本開示のシステムによって後に利用されるイベント(ライブイベントであってよい)の画像および/またはビデオをキャプチャする。いくつかの実施形態において、カメラ140は、1または複数の高解像度カメラを含む。非限定的な例として、1または複数の高解像度カメラは、1080p解像度~8K解像度のカメラを含む。
【0034】
上述の構成要素は、任意選択的に通信ネットワークを通して、相互接続されている。破線のボックス内の要素は、任意選択的に単一のシステムまたはデバイスとして組み合わせられる。もちろん、コンピュータシステムの他のトポロジも可能である。例えば、いくつかの実施例において、図示したデバイスおよびシステムの内のいずれかが、ネットワーク内でリンクされているいくつかのコンピュータシステムを実際に構成してもよく、もしくは、クラウドコンピューティング環境内の仮想マシンまたはコンテナであってもよい。さらに、いくつかの実施形態において、物理通信ネットワークに依存するのではなく、図のデバイスおよびシステムは、互いの間で情報を無線で伝送する。したがって、
図1に示したトポロジ例は、単に、当業者にとって容易に理解されるように本開示の一実施形態の特徴を記載するためのものである。
【0035】
システムの一般的なトポロジについて説明したので、以下では、クライアントデバイスでビデオフィード(例えば、ビデオプレゼンテーション)を合成およびカスタマイズするための方法について説明する。
【0036】
図2は、ビデオフィードをカスタマイズおよび合成するための処理の一実施形態を示すフローチャートである。処理は、
図1に示したユーザデバイス1(150-1)またはユーザデバイスR(150-R)などのクライアントデバイスによって実行されうる。
【0037】
処理は、バックグラウンドビデオフィードを受信する工程で始まる(工程202)。バックグラウンドビデオフィードは、ライブイベント、ニュース放送、または、広告を含むがそれらに制限されない任意のタイプのコンテンツであってよい。ライブイベントのビデオフィードは、ライブイベントが行われている間に受信され、または、そのイベントのビデオフィードは、ライブイベントの記録など、ライブイベントが行われた後に受信される(例えば、そのビデオフィードは、ビデオオンデマンド(VOD)である)。ニュース放送の例については、
図4Aおよび
図4Bに関してさらに説明する。ライブスポーツイベントの例については、
図5A~
図5Cに関してさらに説明する。
【0038】
いくつかの実施形態において、ビデオフィードは、オーディオ部分(例えば、それぞれの放送デバイス140によってキャプチャされたオーディオ)を含む。したがって、いくつかの実施形態において、それぞれのクライアントデバイスによって受信されるビデオフィードは、フレームおよびオーディオの合成物を含む(例えば、クライアントデバイスによって受信されるビデオフィードは、オーディオ部分および画像部分を含む)。しかしながら、本開示は、それに限定されない。例えば、いくつかの実施形態において、それぞれのクライアントデバイスは、ビデオフィード(例えば、複数のフレーム)およびオーディオフィード(例えば、複数のオーディオセグメントまたは部分)を別個のフィードとして受信する。それぞれのユーザデバイスでフィードを受信する前にビデオフィードのオーディオ部分を分けることは、ユーザデバイスのエンドユーザが、そのユーザのユーザプリファレンス設定に応じて、合成ビデオフィードのオーディオ部分および/またはクローズドキャプション部分をカスタマイズ、有効化、または、無効化することを可能にする。例えば、音声トラック(様々な言語、バックグラウンドミュージック、ナレーションなど)が、ユーザの特徴に合わせて調整されうる。バックグラウンドビデオフィードは、工程204で受信されるコンテンツと一緒に受信されてもよいし、工程204で受信されるコンテンツとは別個に(関連せずに)受信されてもよい。
【0039】
処理は、1または複数のユーザ固有の特徴に関連付けられているコンテンツを受信する(工程204)。クライアントデバイスは、リモートサーバからコンテンツを受信する。カスタマイズは、サーバおよび/またはクライアントデバイスによって実行されうる。いくつかの実施形態において、クライアントデバイスは、ユーザ固有の特徴に基づいて、どのコンテンツを要求するのかを決定する。例えば、クライアントデバイスは、ローカルでユーザの好みに関連付けられているコンテンツをルックアップし、興味のあるコンテンツの要求をサーバへ送信する。いくつかの実施形態において、ユーザ固有の特徴に基づいてどのコンテンツを送信するのかを決定するのは、サーバである。例えば、クライアントは、ユーザ識別子(ユーザ名または人口層など)をサーバに送信し、サーバは、ユーザの特徴をその特定のユーザにとって興味のあるコンテンツに対応付けるルックアップテーブルまたはその他のデータベースを利用することで、ユーザ識別子を用いて、ユーザにとって興味のあるコンテンツをルックアップする。
【0040】
様々な実施形態において、コンテンツは、サーバおよび/またはユーザ/クライアントデバイスの設定によって決定された間隔で、サーバによってクライアントデバイスへプッシュされる。様々な実施形態において、コンテンツは、コンテンツ要求を用いてクライアントデバイスによってサーバからプルされる。例えば、クライアントデバイスは、通信インターフェースを用いて、リモートサーバにコンテンツを要求する。様々な実施形態において、要求は、ユーザがユーザデバイス(またはユーザデバイス上のクライアントアプリケーション)を使い始めた時に、ユーザの代わりに自動でなされる。例えば、ユーザが、ファンタジースポーツアプリ、テレビ番組視聴アプリ、などにログインした時に、コンテンツの要求がサーバへ中継される。様々な実施形態において、要求は、クライアントデバイス上のユーザインターフェースを介してユーザによって開始される。例えば、クライアントデバイスを用いてテレビ番組を観ている間に、ユーザが、興味のある対象(スポーツイベントにおけるプレイヤーまたはチーム、会社株式のティッカーシンボル、リアリティーTVショーの登場人物など)を選択して、興味のある対象に関するコンテンツ(追加情報)の要求を生成する。
【0041】
いくつかの実施形態において、コンピュータシステムから受信される複数のデータ要素は、クエリによって要求された複数のデータ要素を含む。しかしながら、本開示は、それに限定されない。例えば、いくつかの実施形態において、第1複数のデータ要素が、クエリによって要求され、それに従って、第2複数のデータの要素が、コンピュータシステムから受信される(例えば、第1複数のデータ要素の内の一部のデータ要素のみが利用可能である)。それでも、後に詳述するように、いくつかの実施形態において、クエリに応答して受信される各データ要素は、特定の時間範囲内にある(例えば、含まれる)関連タイムスタンプ付きメタデータを含む(例えば、時間範囲は、特定の日の1:04PMから1:06PMまでであり、それに従って、クエリの結果として受信されるデータ要素は、その特定の日の1:04PMから1:06PMまでの間の時間に関連付けられたメタデータを含む)。いくつかの実施形態において、複数のデータ要素は、
図1、
図6、または、
図10に示すシステムの1または複数のデータストア(例えば、履歴トレーニングデータストア214、状況ストア228など)から受信される。いくつかの実施形態において、複数のデータ要素は、ユーザデバイス上にローカルに格納されている。いくつかの実施形態において、複数のデータ要素は、ユーザデバイス上にローカルに格納されている1または複数のデータ要素と、
図1、
図6、または、
図10に示すコンピュータシステム上(例えば、履歴データストア214、状況ストア228など)に格納されている1または複数のデータ要素と、を含む。
【0042】
処理は、受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定する(工程206)。データ要素は、クライアントデバイスのプリファレンス設定(例えば、ユーザプリファレンス設定)に基づいて決定されうる。例えば、ユーザプリファレンス設定が、ユーザが気象に関心を持っていることを示すと、気象データ要素が、合成ビデオフィード内に含められる。データ要素は、インタラクティブであってよく、ユーザが、データ要素を選択することで、ユーザの好みに合わせてカスタマイズされた追加コンテンツを閲覧することを可能にする。したがって、クエリは、ビデオフィードのフレームとオーバレイされる気象データ要素の要求を含む。ユーザプリファレンス設定は、ユーザデバイス内またはリモートサーバに格納されうる。
【0043】
ユーザプリファレンス設定は、様々な方法で決定されうる。例えば、機械学習処理が、或る期間にわたってユーザの活動を分析することによって特定の設定の傾向を決定する。別の例として、ビデオフィード上にオーバレイされたグラフィックデータ要素のアフォーダンス領域とのユーザ相互作用が、ユーザの好みを示唆する。ユーザは、グラフィックデータ要素(例えば、埋め込みグラフィック)と相互作用して(ビデオフィード上のスクローリングティッカー(テロップ)をタッチするなどして)、そのティッカーに関してさらなる情報を得るか、または、グラフィックデータ要素の状態を可視状態からOFF状態へと変更する。ユーザプリファレンス設定に従ったクエリ要求データ要素を有することで、合成ビデオフィードをそれぞれのユーザに対してパーソナライズすることが可能になる。また、ユーザが除外すること(すなわち要求しないこと)を示唆するデータ要素はユーザデバイスによって受信されないので、このクエリは、それぞれのユーザデバイスによって受信されるデータの量を最適化する。さらに、エンドユーザが合成ビデオフィードと相互作用して、どのデータ要素がフィード上にオーバレイされるのかを変更するのを可能にすることで、エンドユーザが、視聴経験をさらにパーソナライズすることを可能にする。
【0044】
処理は、1または複数のデータ要素の少なくとも対応する部分をバックグラウンドビデオフィードの対応する部分に整合させることなどによって、ユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成する(工程208)。データ要素は、後に詳述するように、非同期的にまたは時間同期的に、バックグラウンドビデオフィードの対応する部分に整合されうる。
【0045】
処理は、クライアントデバイスのディスプレイデバイス上に合成ビデオフィードを表示する(工程209)。合成ビデオフィードは、一般聴衆に放送されるバックグラウンドビデオフィードと併せて(例えば、オーバレイされて)特定のユーザの興味に合わせて調整された情報を表示するために、クライアントデバイスのユーザインターフェース上に出力されうる。
【0046】
いくつかの実施形態において、通信(受信工程202および206ならびに要求工程204)は、第1交換プロトコルを用いて実行され、そのプロトコルは、バックグラウンドビデオフィードの一部を受信し、データ要素および/またはビデオフィードの一部を組み立てて、合成ビデオフィード(例えば、ビデオプレゼンテーション)を形成するための通信システムを提供する。いくつかの実施形態において、第1交換プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)ライブストリーミングプロトコル(例えば、HLSプロトコル)である。いくつかの実施形態において、第1交換プロトコルは、リアルタイムメッセージングプロトコル(RTMP)である。いくつかの実施形態において、第1交換プロトコルは、動的な期間(例えば、10秒から60秒までの期間)だけビデオフィードの受信を遅延させる(例えば、受信に待ち時間を生じさせる)。
【0047】
いくつかの実施形態において、バックグラウンドビデオフィードは、連続的に受信される(例えば、それぞれのクライアントデバイスが、ビデオフィードを受信するために、
図1に示したコンピュータシステムと連続的に通信する)。いくつかの実施形態において、ビデオフィードは、パケットまたはブロックでそれぞれのユーザデバイスによって受信される(例えば、それぞれのユーザデバイスが、10秒のブロックでビデオフィードを受信する)。様々な実施形態において、時間同期された整合が、
図15に関して詳述するように実行される。
【0048】
いくつかの実施形態において、ビデオフィードの受信、コンテンツ要求の送信、または、それらの組みあわせは、クライアントデバイスの帯域幅の決定に従って実行される。例えば、いくつかの実施形態において、クライアントデバイスの帯域幅は、動的であり、複数の要因(例えば、ネットワークの帯域幅、放送システムの帯域幅、など)に応じて変化する。
【0049】
いくつかの実施形態において、方法は、さらに、クライアントデバイス(例えば、ユーザデバイス150)の帯域幅を用いて、視覚化バッファ(例えば、視覚化バッファモジュール)のサイズを決める工程を備える。いくつかの実施形態において、クライアントデバイスの帯域幅を用いて視覚化バッファのサイズを決める工程は、帯域幅の低下の判定に応答して視覚化バッファのサイズを大きくする。さらに、クライアントデバイスの帯域幅を用いて視覚化バッファのサイズを決定する工程は、帯域幅の改善の判定に応答して視覚化バッファのサイズを小さくする。この視覚化バッファのサイズ決定は、或る数の時間整合済みフレームが視覚化バッファへ動的にポストされることを可能にする。例えば、いくつかの実施形態において、視覚化バッファにポストされる時間整合済みフレームの数を減らすと、クライアントデバイスへの負荷が減る。
【0050】
いくつかの実施形態において、ビデオフィードの受信、クエリの送信、または、それらの組みあわせは、クライアントデバイスの帯域幅の決定に従って実行される。例えば、いくつかの実施形態において、クライアントデバイスの帯域幅は、動的であり、複数の要因(例えば、ネットワーク106の帯域幅、放送システム150の帯域幅、など)に応じて変化する。
【0051】
図3は、ビデオフィードをカスタマイズおよび合成するための処理の一実施形態を示すフローチャートである。処理は、サーバ(
図1に示したサーバ100など)によって実行されうる。
【0052】
処理は、1または複数のユーザ固有の特徴に関連付けられているコンテンツの要求を受信する工程で始まる(工程352)。サーバは、通信インターフェースを用いて、リモートクライアントデバイスへデータを送受信する。
【0053】
処理は、要求に関連付けられたコンテンツをルックアップすることなどによって、要求に基づいてコンテンツを決定する(工程354)。コンテンツは、データおよび/またはメタデータを含んでよく、ここで、データは、合成ビデオフィード内での出力に向けて、クライアントによって直接出力または後処理されうる。非限定的な例として、データは、グラフィック、テキスト、または、オーディオを含む。メタデータは、視覚効果(アルファグローなど)、速度、方向、リフレッシュレート、終了条件、および、相互作用ルールなど、データが合成ビデオフィード内でどのように出力されるのかを規定する。
【0054】
処理は、プロフィールを用いることによって要求またはユーザプリファレンスを記録することができる。例えば、要求にユーザ固有の特徴が付随している場合、特徴は、特定のユーザの興味および/または挙動を記録するユーザプロフィールに保存される。上述のように、いくつかの実施形態において、サーバは、ユーザの特徴を特定のユーザにとって興味のあるコンテンツに対応付けるルックアップテーブルまたはその他のデータベースを利用することによって、クライアントデバイスによって送信されたユーザ識別子を用いて、ユーザにとって興味のあるコンテンツをルックアップする。
【0055】
処理は、コンテンツ要求に応答して、決定されたコンテンツをリモートクライアントデバイスに送信する(工程356)。コンテンツは、任意のタイプの通信インターフェースまたはネットワークを介して送信されうる。
【0056】
ビデオフィードをカスタマイズおよび合成するための処理は、様々な設定において応用される。以下の図は、ニュース放送の例を示す。
【0057】
図4Aは、クライアントデバイスでカスタマイズおよび合成されたニュース放送の例を示す。この例において、カスタマイズされたデータ要素は、ニュース放送に表示されているテキストのスクロールである。バックグラウンドビデオ403は、ニュースアナウンサーが世界の公衆衛生の進展に関するニュース速報を読んでいるビデオである。ニュース放送は、予め記録されていてもライブであってもよく、カスタマイズのための技術は、いずれの状況でも適用可能である。図に示すように、バックグラウンドビデオは、追加のビデオ(様々な人々にインタビューする現場のレポータからのコンテンツなど)を表示できるはめ込みフレーム(「ニュース速報(Breaking News)」)など、様々な部分を有する。
【0058】
下部テキストスクロール407が、現在の株価を表示している。ニュース速報は、様々な企業の株価に影響を持ち、船旅会社(CRUS)および航空会社(WINGS)の株価を下げる一方で、テレワーク会社(TLWK)およびクリーニング用品会社(SANI)の株価を上げる。ニュース放送を視聴するユーザは、例えば、TLWK(データ要素405によって示されている)に投資している場合、それらの企業の一部に特に興味を持ちうる。
【0059】
テキストスクロール407は、バックグラウンドビデオフィードの一部に整合された1または複数のデータ要素の例であるデータ要素例である。共に、バックグラウンドビデオ403およびテキストスクロール407は、合成ビデオを形成する。ユーザは、このビデオと相互作用することで、興味のあるさらなる情報を取得できる。例えば、ユーザは、データ要素405を選択して、次の図に示すようにTLWKに関する追加のビデオまたは情報を表示することができる。
【0060】
ビデオタイムスタンプが、テキストスクロールをインスタンス化する(クローリング)。クローリングのためのデータが、定期的に、個人ユーザプロフィールおよびビデオタイムスタンプに基づいてサーバへ要求され、クライアントにダウンロードされ、次いで、ローカルにレンダリングされる。クローリングのためのフォーマッティングが、マークアップとして含まれうる。クローリングの挙動(速度、方向、相互作用ルール、リフレッシュ期間、終了条件(何がクローリングを終了させるか)が、様々なコードコマンドとしてダウンロードに含まれうる。
【0061】
図4Bは、クライアントデバイスでカスタマイズおよび合成されたニュース放送の例を示す。この例において、カスタマイズされたデータ要素は、ユーザにとって興味のある対象に関して詳細レポートを表示する分岐したビデオである。バックグラウンドビデオフィードまたは合成ビデオフィードが、合成ビデオフィードの1または複数のデータ要素(例えば、特定の株式ティッカー)とのユーザ相互作用に応答して、更新されうる。
図4Bは、ユーザがデータ要素(モジュール)405を選択した後のユーザインターフェースの状態を示している。モジュール(フレーム要素など)は、ローカルにレンダリングされたデータである。モジュールのためのフォーマッティングは、埋め込みマークアップでありうる。ユーザがモジュールの1つ(データ要素405)にタッチまたはクリックすると、新しいビデオストリーム(例えば、データ要素409)のオープンをトリガする。昨年と同じ期間で比較した今年の企業の売上げのグラフが表示される。グラフは、TLWK株価が上がっている時期を説明するナレーションなど、その他のマルチメディアを伴ってよい。カスタマイズされたデータ要素が表示される方法は、単に例示であり、限定の意図はない。例えば、データ要素409は、ユーザインターフェースの他の部分(「ニュース速報(Breaking News)」インサートなど)に表示されてよく、スクリーン全体を埋めてもよく、または、ユーザインターフェース内のより大きい/小さいスペースを占めるようスナップされてもよい。他のカスタマイズされたデータ要素も表示可能である。例えば、ユーザは、TLWKに関するデータ要素およびSANIに関する別のデータ要素を同時に見ることができる。これは、ユーザが、興味のある多くの物/対象物をフォローしつつも、同時にバックグラウンドビデオを見ることを可能にする。例えば、ユーザは、バックグラウンドビデオが再生する間に、TWLKの詳細レポートを研究することができ、別のニュース速報がSANIの株価に影響した場合に、ユーザは、TWLKの詳細レポートを容易に終了して、SANIへと関心を向けることができる。
【0062】
データ要素は、特定のユーザに合わせてカスタマイズされた言語および/または音楽でのオーディオトラックなど、他のタイプのマルチメディアであってもよい。別の例として、バックグラウンドビデオフィードは、広告であってもよく、価格などのデータ要素(例えば、テキスト文字列)が、ユーザに合わせて、例えば、ユーザの地理的位置に基づいて(税が、地域ごとに異なる場合がある)、もしくは、特定のユーザの生活費または知覚価値に基づいて、カスタマイズ/ターゲティングされうる。
【0063】
ビデオフィードをカスタマイズおよび合成するための処理は、様々な設定において応用される。以下の図は、ライブスポーツイベントの例を示す。
【0064】
図5A~
図5Cは、クライアントデバイスでカスタマイズおよび合成されたスポーツイベントの例を示す。いくつかの実施形態において、ライブイベントは、スポーツイベント(例えば、第1チームと第2チームとの間のスポーツイベント)である。例えば、いくつかの実施形態において、ライブイベントは、第1チームと第2チームとの間のアメフトの試合、サッカーの試合、テニスの試合、水球の試合、などである。ビデオフィードは、複数のフレーム(例えば、それぞれのカメラ140によってキャプチャされたフレーム)を含む。ビデオフィードは、固定数のフレーム(例えば、毎秒16、24、28、または、60フレーム)または動的数のフレームを含みうる。ビデオの毎秒の動的フレーム数は、ネットワークおよび/またはクライアントデバイスの帯域幅に従いうる。
【0065】
ユーザプリファレンス設定は、ビデオフィード(503)上にオーバレイされる1または複数のグラフィックデータ要素(例えば、509または511)、ならびに/もしくは、ビデオフィードの向きまたは好ましいカメラ、に対する選好を示す。例えば、いくつかの実施形態において、ユーザプリファレンス設定は、ユーザが、第2カメラ(例えば、部分的なランドスケープカメラビュー)ではなく、第1カメラからのビデオフィード(例えば、ランドスケープカメラビュー)を受信することを好むことを示す。さらに、ユーザプリファレンス設定は、それぞれの対象505に関する様々な情報を特定するグラフィックデータ要素509を表示する選好を示す。ユーザプリファレンス設定は、例えば、ボールの位置(例えば、ボールの位置情報)、現在のボールキャリア、対象の移動経路(例えば、プレイ中のボールの移動経路)、試合クロックデータ要素507、プレイクロックデータ要素、および/または、試合状態データ要素など、グラフィックデータ要素を表示する選好を示す。
【0066】
いくつかの実施形態において、ユーザプリファレンス設定は、賭けプラットフォーム(例えば、賭けモジュール718)を提供するグラフィックデータ要素を表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、テキストベースの情報(例えば、気象情報、ニュースなど)を提供するデータ要素を表示する選好を示す。したがって、ユーザは、自身の特定の好みに合わせて視聴体験を調整するために、ビデオフィードをパーソナライズして相互作用することができる。また、これは、ユーザが関心を示していないデータのストリームが不必要に通信されるのを防ぐことによって、ユーザデバイスが、コンピュータシステム(例えば、
図1に示したシステム)から受信されるデータの量を最適化することを可能にする。
【0067】
複数のデータ要素は、複数の試合クロックデータ要素(例えば、試合クロック要素および関連メタデータのアレイ)、試合状態データ要素(例えば、試合状態要素および関連メタデータのアレイ)、位置情報データ要素(例えば、1または複数の対象の位置情報および関連メタデータのアレイ)、グラフィックデータ要素(例えば、複数の埋め込みグラフィック、ニュースおよび/または気象などの複数のテキストデータ要素、ならびに、関連メタデータ)、テキストデータ要素(例えば、ニュース記事、気象情報など)、一致するタイムスタンプ値でのスポーツイベントのスコア、などを含む。
【0068】
複数のデータ要素は、1または複数のデータ要素アレイを含んでよい。例えば、いくつかの実施形態において、複数のデータ要素は、試合クロックデータおよび関連タイムスタンプのアレイを含む。いくつかの実施形態において、複数のデータ要素は、プレイクロックデータおよび関連タイムスタンプのアレイを含む。いくつかの実施形態において、複数のデータ要素の中の各データ要素は、データのアレイとして提供される。それでも、表1は、試合クロックデータ要素アレイの例、試合状態データ要素アレイの例、および、
図1に示したコンピュータシステムによって格納されるそれぞれのアレイに関連付けられたタイムスタンプメタデータを示す。
【表1】
【0069】
本明細書で開示する技術は、スポーツイベントストリーミング設定で応用される。以下の図は、バックグラウンドビデオフィードをキャプチャし、ユーザの選好に応えるためにバックグラウンドビデオフィードと共にカスタマイズして表示されることができるコンテンツを決定するためのシステムおよび処理の例を示している。
【0070】
図6は、ビデオフィードをカスタマイズおよび合成するためのシステムの一実施形態を示すブロック図である。システム600は、ライブスポーツイベントのビデオのカスタマイズおよび合成を円滑にするために、
図1と比較して追加の要素を備えている。システム600は、通信インターフェース107と、プロセッサ100(特に明記しない限り、
図1のサーバ100と同様である)と、を備える。通信インターフェース107は、競技における参加者の第1セットおよび参加者の第2セットの一方または両方の1以上の参加者のタイムスタンプ付き位置情報を受信するよう構成されている。様々な実施形態において、タイムスタンプ付き位置情報は、競技中にテレメトリ追跡システムによってキャプチャされる。この例において、テレメトリ追跡システムは、追跡デバイス300-1~300-P、アンカデバイス120-1~120-Q、および、任意選択的にカメラ140-1~140-Sで構成されており、これらの要素は、後に詳述するようにトラッカ管理システム400によって管理される。
【0071】
プロセッサ100は、通信インターフェース107に接続されており、例えば、現在の競技が進行している間に、或る時点におけるおよび/または或る時点現在における、参加者の第1セットおよび参加者の第2セットの一方または両方の中の1以上の参加者の各々の第1共変量パラメータを計算するよう構成されている。それぞれの第1共変量パラメータは、その時点における現在の競技の1または複数の参加者の第1または第2セットの対応する参加者のタイムスタンプ付き位置情報から導出される。
【0072】
様々な実施形態において、プロセッサ100は、複数の対象を追跡するための追跡管理システム400と、様々な統計値を管理するための統計システム500と、を備える。追跡デバイス管理システム400は、システムの1または複数の追跡デバイス300ならびに1または複数のアンカデバイス120の管理を円滑にする。統計システム500は、ライブスポーツイベントなどの競技での結果を予測する際に用いる様々な統計値を格納および/または生成し、スポーツイベントおよびその他の同様の活動における様々な状況または結果について賭けをするためのオッズを提供する。様々な実施形態において、追跡管理システム400および統計システム500は、プロセッサ100上で実行するソフトウェアエンジンまたはモジュールを含み、ならびに/もしくは、別個または潜在的に別個のシステムを含む(各システムは、プロセッサ100を含む1または複数のプロセッサを含み、および/または、その上で実行する)。
【0073】
様々な実施形態において、システム600は、オッズを管理するためのオッズ管理システム600と、複数のユーザデバイス700-1~700-Rと、を備える。オッズ管理システム600はプロセッサ100の外部に図示されているが、いくつかの実施形態において、オッズ管理システムはプロセッサ内に含まれる。オッズ管理システム600は、スポーツイベントでの結果に対するオッズを決定すること、および、ライブイベントでの結果の予測に関連する様々なモデルを管理することを円滑にする。
【0074】
いくつかの実施形態において、システムは、本開示の様々なシステム(オッズ管理システム600など)とのエンドユーザ相互作用を円滑にする1または複数のユーザデバイス700を備える。さらに、いくつかの実施形態において、システム600は、本開示のシステムによって後に利用されるライブイベントのライブ画像および/またはビデオをキャプチャする1または複数のカメラ140を備える。いくつかの実施形態において、カメラ140は、1または複数の高解像度カメラを含む。非限定的な例として、1または複数の高解像度カメラは、1080p解像度、1440p解像度、2K解像度、4K解像度、または、8K解像度のカメラを含む。
【0075】
上述の構成要素は、任意選択的に通信ネットワークを通して、相互接続されている。破線のボックス内の要素は、任意選択的に単一のシステムまたはデバイスとして組み合わせられる。もちろん、コンピュータシステム600の他のトポロジも可能である。例えば、いくつかの実施例において、図示したデバイスおよびシステムの内のいずれかが、ネットワーク内でリンクされているいくつかのコンピュータシステムを実際に構成してもよく、もしくは、クラウドコンピューティング環境内の仮想マシンまたはコンテナであってもよい。さらに、いくつかの実施形態において、物理通信ネットワーク106に依存するのではなく、図のデバイスおよびシステムは、互いの間で情報を無線で伝送する。したがって、
図6に示したトポロジ例は、単に、当業者にとって容易に理解されるように本開示の一実施形態の特徴を記載するためのものである。
【0076】
いくつかの実施例において、通信ネットワーク106は、1または複数の追跡デバイス300と1または複数のアンカ120とを管理する追跡デバイス管理システム400、統計システム500、オッズ管理システム600、1または複数のユーザデバイス700、ならびに、1または複数のカメラ140を、互いに、そして、任意選択的な外部のシステムおよびデバイスと、相互接続している。いくつかの実施例において、通信ネットワーク106は、任意選択的に、インターネット、1または複数のローカルエリアネットワーク(LAN)、1または複数のワイドエリアネットワーク(WAN)、その他のタイプのネットワーク、もしくは、かかるネットワークの組み合わせ、を含む。
【0077】
ネットワーク106の例は、ワールドワイドウェブ(WWW)、イントラネットおよび/または無線ネットワーク(携帯電話ネットワークなど)、無線ローカルエリアネットワーク(LAN)および/またはメトロポリタンエリアネットワーク(MAN)、ならびに、無線通信によるその他のデバイス、を含む。無線通信は、任意選択的に、以下を含む複数の通信規格、プロトコル、および、技術のいずれかを利用する。グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)、拡張データGSM環境(EDGE)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、エボリューション・データオンリー(EV-DO)、HSPA、HSPA+、デュアルセルHSPA(DC-HSPDA)、ロングタームエボリューション(LTE)、近距離無線通信(NFC)、広帯域符号分割多元接続(W-CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、ワイヤレス・フィディリティ(Wi-Fi)(例えば、IEEE802.11a、IEEE802.11ac、IEEE802.11ax、IEEE802.11b、IEEE802.11g、および/または、IEEE802.11n)、ボイス・オーバー・インターネット・プロトコル(VoIP)、Wi-MAX、電子メール用プロトコル(例えば、インターネットメッセージアクセスプロトコル(IMAP)および/またはポストオフィスプロトコル(POP))、インスタントメッセージング(例えば、拡張可能なメッセージングおよびプレゼンスプロトコル(XMPP)、インスタントメッセージングおよびプレゼンスレバレジング拡張のためのセッション開始プロトコル(SIMPLE)、インスタントメッセージングおよびプレゼンスサービス(IMPS))、および/または、ショートメッセージサービス(SMS)、もしくは、本明細書の提出日現在にまだ開発されていなかった通信プロトコルを含む任意のその他の適切な通信プロトコル。
【0078】
様々な実施形態において、プロセッサ100は、競技の結果の予測を円滑にする機械学習エンジン210(
図7Aを参照)を備える。次の図では、機械学習エンジンを備えたプロセッサ100の一例について、より詳細に記載する。
【0079】
図7Aおよび
図7Bは、ビデオフィードをカスタマイズおよび合成するためのシステムの一実施形態を示すブロック図である。
図7Aに示すように、アンカデバイスアレイ120が、1または複数の追跡デバイス300からテレメトリデータ230を受信する。1または複数の追跡デバイス300からテレメトリを受信する際のエラーを最小化するために、アンカデバイスアレイ120は、少なくとも3つのアンカデバイスを含むことが好ましい。アンカデバイスアレイ内に少なくとも3つのアンカデバイス120を含むことで、それぞれの追跡デバイス300から受信された各ping(例えば、テレメトリデータ230)が、それぞれのpingを受信する少なくとも3つのアンカからの組み合わせデータを用いて三角測量されることが可能になる。追跡デバイスからpingを受信するためのシステムおよび方法ならびにその最適化に関するさらなる詳細および情報については、少なくとも
図3および
図4を特に参照して、後に詳述する。
【0080】
図の例において、1または複数の追跡デバイス300からアンカアレイ120によって受信されるテレメトリデータ230は、位置テレメトリデータ232を含む。位置テレメトリデータ232は、それぞれの追跡デバイス300の位置データを提供し、それデータは、空間領域内での追跡デバイスの位置を記述する。いくつかの実施形態において、この位置テレメトリデータ232は、それぞれの追跡デバイス300の位置を記述する1または複数のデカルト座標(例えば、X座標、Y座標、および/または、Z座標)として提供されているが、別の実施形態では、それぞれの追跡デバイス300の位置を記述する任意の座標システム(例えば、極座標など)が用いられる。
【0081】
1または複数の追跡デバイス300からアンカアレイ120によって受信されるテレメトリデータ230は、運動テレメトリデータ234を含む。運動テレメトリデータ234は、それぞれの追跡デバイスの様々な運動に関するデータを提供する。いくつかの実施形態において、この運動テレメトリデータ234は、それぞれの追跡デバイス300の速度、それぞれの追跡デバイスの加速度、および/または、それぞれの追跡デバイスの加加速度として提供される。さらに、いくつかの実施形態において、上記の値の内の1または複数が、それぞれの追跡デバイス300の加速度計(例えば、
図8の加速度計317)から決定され、および/または、それぞれの追跡デバイスの位置テレメトリデータ232から導出される。さらに、いくつかの実施形態においては、1または複数の追跡デバイス300からアンカアレイ120によって受信されるテレメトリデータ230は、バイオメトリックテレメトリデータ236を含む。バイオメトリックテレメトリデータ236は、それぞれの追跡デバイス300に関連する各対象に関するバイオメトリック情報を提供する。いくつかの実施形態において、このバイオメトリック情報は、対象の心拍数、温度(例えば、皮膚温、側頭温など)、などを含む。
【0082】
いくつかの実施形態において、アンカアレイ120は、上述のテレメトリデータ(例えば、位置テレメトリ232、運動テレメトリ234、生体測定テレメトリ236)をテレメトリ解析システム240へ通信する。従って、いくつかの実施形態において、テレメトリパースシステム240は、さらなる処理および分析に向けてテレメトリデータ(例えば、データストリーム244)を機械学習エンジン210および/またはリアルタイムデータパッケージャ246へ通信する。
【0083】
いくつかの実施形態において、リアルタイムデータパッケージャ246は、それぞれのデータに関連付けられた1または複数のタイムスタンプを用いることによって、1または複数のデータソース(例えば、テレメトリ解析システム240、試合統計値入力システム250、機械学習エンジン210など)を同期させる。例えば、いくつかの実施形態において、データソースは、実世界クロックタイムスタンプに関連付けられたデータ(例えば、実世界の時刻1:17P.M.に発生してその時刻に関連付けられたイベント)を提供する。いくつかの実施形態において、データソースは、ライブスポーツイベント(例えば、セカンドクォーターの残り2分15秒で発生したイベント)に関連付けられている試合クロックタイムスタンプに関連付けられたデータを提供する。さらに、いくつかの実施形態において、データソースは、実世界クロックタイムスタンプおよび試合クロックタイムスタンプの両方に関連付けられたデータを提供する。タイムスタンプを用いたデータソースの同期は、本開示の設計者が、特に、ライブイベントでの結果にベットして賭ける場合に、さらなる精度を備えたサービスを提供することを可能にする。例えば、いくつかの実施形態において、ユーザデバイス700に提供されるデータ(例えば、
図7Bのストリーミングデータ280および/または直接データ282)は、アメフトの試合における次のプレイへの賭け(例えば、オッズ)を記述する。ユーザデバイス700のエンドユーザが所定の時間枠内に(例えば、次のプレイのボールのスナップ前に)賭けをするか否かを判定するために、ユーザデバイスから受信されおよび/またはユーザデバイスへ通信された試合クロックおよび実世界時間データが分析され、その賭けは、確認、拒絶、または、さらなる考慮のために保持される。
【0084】
いくつかの実施形態において、機械学習エンジン210は、ライブスポーツイベントでの将来の結果を予測し、分析および利用に向けて統計値を生成するために、本開示の様々なソースからデータを受信する。例えば、いくつかの実施形態において、機械学習エンジン210のデータソースは、ゲーム中の任意の所与の時点におけるプレイヤーの様々な構成およびフォーメーションに関する情報を提供する位置データフォーメーション分類器212(以下、「ニューラルネット」)を備える。例えば、いくつかの実施形態において、フォーメーション分類器212は、プレイヤーのスナップ前のフォーメーションを分析するために、テレメトリデータ230を解析する。スナップ前のテレメトリデータ230の分析は、フォーメーション分類器212が、試合のダウン、試合内の位置ルール違反(例えば、オフサイド、イリーガルモーションなど)など、試合の様々な状態および条件を判定することを可能にする。さらに、いくつかの実施形態において、フォーメーション分類器212は、各フォーメーションがどのように展開するのかに関するデータおよび情報をさらに生成するために、プレイの開始後に受信されたテレメトリデータ230を分析する(例えば、予測ランニングルート対実際のランニングルート、予測ブロッキングアサイメント対アクションブロッキングアサイメント、プレイにわたるプレイヤーのスピード、プレイにわたる2プレイヤー間の距離、など)。
【0085】
いくつかの実施形態において、機械学習エンジン210は、履歴トレーニングデータストア214を備える。履歴データストア214は、各特定のスポーツ(例えば、
図10のスポーツ履歴データ508)、特定のスポーツに関連する各特定のチーム(例えば、
図10のチーム履歴データ510)、および/または、特定のスポーツおよび/またはチームに関連付けられている各特定のプレイヤー(例えば、
図10のプレイヤー履歴データ514)、に関する履歴データおよび情報を提供する。いくつかの実施形態において、このデータは、機械学習エンジン210のためのトレーニングデータセットとして最初に用いられる。ただし、このデータは、本開示の機械学習エンジン210およびその他のシステムによって提供される特徴およびサービスをさらに増強するために用いられてもよいので、本開示は、上記に限定されない。
【0086】
さらに、いくつかの実施形態において、機械学習エンジン210は、スポーツイベントの将来の結果を予測し、スポーツイベントの分析を提供するために用いられる様々なモデル220を備える。いくつかの実施形態において、機械学習エンジン210のモデル220は、予測ポイントモデル222を含む。予測ポイントモデル222は、イベントにおける特定のプレイに対してポイントを受ける可能性を数値で提供する。いくつかの実施形態において、機械学習エンジン210のモデル220は、イベントの各参加チームが勝つ確率と、イベントでの勝ちチームと負けチームとの間の所与の点差の可能性と、のいずれかを提供する勝利確率モデル224を含む。さらに、いくつかの実施形態において、機械学習エンジン210のモデル220は、プレイヤーごとの代替選手比貢献度(WAR:wins above replacement)モデル226を含む。WARモデル226は、それぞれのプレイヤーが対応するチームにもたらす貢献度の値を提供する(例えば、プレイヤー1がそれぞれのチームに1の値を提供し、プレイヤー2がそれぞれのチームに2の値を提供する場合、プレイヤー2の方がそのチームにとって価値がある)。
【0087】
いくつかの実施形態において、機械学習エンジン210は、状況ストア228を備える。状況ストア228は、実際の試合シナリオ中に迅速にアクセスされる様々な状況の詳細および/または統計値のキャッシュである。状況ストア228への迅速なアクセスは、同じ情報を取得するために別のデータベースおよびシステム(例えば、位置データフォーメーション分類器212、履歴トレーニングデータ格納214など)にクエリすることで生じるラグを防止する。機械学習エンジンおよびそれに含まれる構成要素(様々な上述のデータストアおよびモデルなど)に関するさらなる詳細および情報については、少なくとも
図10および
図11を特に参照して、後に詳述する。
【0088】
機械学習エンジン210は、様々なデータベースおよびモデルの様々なオッズおよび出力をオッズ管理システム600へ通信する。機械学習エンジン210との通信時に、オッズ管理システム600は、スポーツイベントでの将来のイベントに対する様々な賭けおよび予測オッズをユーザデバイス700へ提供すると共に、試合の現在の状況および統計値を反映するようにこれらのオッズをリアルタイムで更新する。
【0089】
図7Bに示すように、いくつかの実施形態において、システム600は、試合統計値入力システム250を備える。試合統計値入力システム250は、少なくとも、プレイ中データ254(アメフトの例では、所与のプレイ中の試合の状態(例えば、ウィークサイドのレシーバがポストルートを走った)を記述するデータ)と、プレイ終了データ256(所与のプレイの後の試合の状態(例えば、プレイの結果、敵陣42ヤードラインでのファーストダウンに終わった)と、を提供するよう構成されている。いくつかの実施形態において、統計値入力システム250のデータは、世界クロックおよび試合クロック242に関連付けられており、それに従って、テレメトリ解析システム240および/または機械学習エンジン210へ通信される。いくつかの実施形態において、試合統計値入力システム250は、フォーメーション分類器212に含まれる。
【0090】
いくつかの実施形態において、様々なデータが、アプリケーションプログラミングインターフェース(API)サーバ260へ通信される。このデータは、ストリーミングデータ244、プレイ終了データ256、オッズ管理システム600からのデータ、または、それらの組み合わせ、を含んでよい。したがって、APIサーバ260は、本開示の様々な特徴およびサービス(例えば、ゲームの流れ、統計値の要求、プレイについての賭け、など)を提供するために、システムの様々な構成要素と、1または複数のユーザデバイス700と、マスタ統計値データベース270との間の通信を円滑にする。APIサーバ260と、1または複数のユーザデバイス700との間の通信は、通信ネットワーク106を通してそれぞれのユーザデバイス700へストリーミングデータ280および/または直接データ282を提供することと、それぞれのユーザデバイスから様々な要求284を受信すること、とを含む。非限定的な例として、ストリーミングデータ280は、プレイヤーのxyz座標またはプレイヤーの加速度計データなどの追跡「テレメトリ」データを含み、直接データ282は、クロック、スコア、または、残りのタイムアウトを含む。
【0091】
いくつかの実施形態において、マスタ統計値データベース270は、ユーザにとって取得可能である機械学習エンジン210に既知の統計値の一部または全部を含む。マスタ統計値データベースは、1プレイの終了ごとまたは数プレイの終了ごとなど、定期的に更新される。例えば、いくつかの実施形態において、機械学習エンジン210にとって既知の統計値の一部のみが、ユーザによって取得可能であることが望まれるために、マスタ統計値データベース270に格納される。しかしながら、本開示は、それに限定されない。例えば、いくつかの実施形態において、マスタ統計値データベース270は、機械学習エンジン270に含まれる。破線のボックス内の要素は、任意選択的に単一のシステムまたはデバイスとして組み合わせられる。
【0092】
ここまで、システム600のインフラについて一般的に説明したので、以下では、追跡デバイス300の一例について、
図3を参照して説明する。
【0093】
図8は、追跡デバイスの一実施形態を示すブロック図である。様々な実施例において、追跡デバイス(以下、「トラッカ」とも呼ぶ)は、1または複数の処理ユニット(CPU)374と、メモリ302(例えば、ランダムアクセスメモリ)と、1または複数のコントローラ388によって任意選択的にアクセスされる1または複数の磁気ディスクストレージおよび/または持続性デバイス390と、ネットワークまたはその他の通信インターフェース(RF回路を備えてよい)384と、加速度計317と、1または複数の任意選択的な強度センサ364と、任意選択的な入力/出力(I/O)サブシステム366と、上述の構成要素を相互接続するための1または複数の通信バス313と、上述の構成要素に給電するための電力供給部376と、を備える。いくつかの実施例において、メモリ302内のデータは、周知のコンピュータ技術(キャッシングなど)を用いて、不揮発性メモリ390とシームレスに共有される。いくつかの実施例において、メモリ302および/またはメモリ390は、実際には、追跡デバイスの外部にあるがネットワークインターフェース384を用いてインターネット、イントラネット、ネットワーク、または、その他の形態のネットワーク、もしくは、電子ケーブル(
図7に要素106として図示)を介して追跡デバイス300によって電子的にアクセス可能であるコンピュータ上にホストされてもよい。
【0094】
様々な実施形態において、
図8に示す追跡デバイス300は、加速度計317に加えて、追跡デバイス300の位置および/または向き(例えば、ポートレートまたはランドスケープ)に関する情報を取得するための磁力計および/またはGPS(またはGLONASSまたはその他のグローバルナビゲーションシステム)レシーバを備える。
【0095】
図8に示す追跡デバイス300は、対応する対象のテレメトリデータ(例えば、位置テレメトリ232、運動テレメトリ234、および、バイオメトリックテレメトリ236)を取得するために用いられてよいデバイスの一例にすぎず、追跡デバイス300は、任意選択的に図に示すよりも多いまたは少ない構成要素を有し、任意選択的に2以上の構成要素を組みあわせ、もしくは、任意選択的に構成要素の異なる構成または配置を有することを理解されたい。
図8に示す様々な構成要素は、1または複数の信号処理および/または特定用途向け集積回路など、ハードウェア、ソフトウェア、ファームウェア、または、それらの組みあわせで実装される。
【0096】
図8に示す追跡デバイス300のメモリ302は、任意選択的に、高速ランダムアクセスメモリを含み、さらに、任意選択的に、1または複数の磁気ディスクストレージデバイス、フラッシュメモリデバイス、または、その他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。追跡デバイス300のその他の構成要素(CPU374など)によるメモリ302へのアクセスは、任意選択的に、メモリコントローラ388によって制御される。
【0097】
いくつかの実施形態において、CPU374およびメモリコントローラ388は、任意選択的に、単一のチップ上に実装される。いくつかの他の実施形態において、CPU374およびメモリコントローラ388は、別個のチップ上に実装される。
【0098】
ネットワークインターフェース384の高周波(RF)回路は、RF信号(電磁信号とも呼ばれる)を送受信する。いくつかの実施形態において、RF回路384は、電気信号を変換して電磁信号を形成し、電磁信号を用いて、通信ネットワークおよびその他の通信デバイス(1または複数のアンカデバイス120および/または追跡デバイス管理システム400など)と通信する。RF回路384は、これらの機能を実行するための周知の回路を任意選択的に含み、アンテナシステム、RFトランシーバ、1または複数の増幅器、チューナ、1または複数のオシレータ、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリ、などを含むがこれらに限定されない。いくつかの実施形態において、RF回路384は、任意選択的に、通信ネットワーク106と通信する。
【0099】
いくつかの実施形態において、ネットワークインターフェース(RF回路を備える)384は、超広帯域(UWB)技術で動作し、その技術は、追跡デバイス300が、ライブスポーツイベントなどの混み合った空間領域でアンカデバイスアレイ120と通信することを可能にする。いくつかの実施形態において、追跡デバイス300は、所定の中心周波数(例えば、約6.35GHz~約6.75GHzの全伝送周波数範囲をもたらす6.55GHz±200mHz)で低電力(例えば、約1ミリワット(mW))信号を送る。本明細書で用いられているように、これらの通信および伝送は、以後、「ping」と呼ばれる。UWBの議論のために、Jiang et al.,2000「Ultra-Wide Band technology applications in construction: a review」、Organization,Technology and Management in Construction 2(2),207-213を参照のこと。
【0100】
いくつかの実施形態において、電力供給部358は、電力管理システムと、1または複数の電源(例えば、バッテリ)と、再充電システムと、停電検出回路と、電力コンバータまたはインバータと、電力状態インジケータ(例えば、発光ダイオード(LED))と、かかる追跡デバイス300の電力の生成、管理、および、分配に関連付けられている任意のその他の構成要素と、を任意選択的に備える。いくつかの実施形態において、テレメトリデータ230は、それぞれの追跡デバイス300の電力供給部358に関する情報(バッテリ消費、または、追跡デバイスがさらなる電力を必要とするまでの予測時間など)を含む。
【0101】
いくつかの実施例において、それぞれの対象を追跡するための追跡デバイス300のメモリ302は、以下を格納している。
●オペレーティングシステム304(例えば、ANDROID(登録商標)、iOS、DARWIN、RTXC、LINUX、UNIX(登録商標)、OS X、WINDOWS(登録商標)、または、組み込みオペレーティングシステム(VxWorksなど))が、一般的なシステムタスク(例えば、メモリ管理、ストレージデバイス制御、電力管理など)を制御および管理するための様々なソフトウェアコンポーネントおよび/またはドライバを備え、様々なハードウェアおよびソフトウェアコンポーネントの間の通信を円滑にする、
●追跡デバイス識別子306および任意選択的な追跡デバイスグループ識別子307など、それぞれの追跡デバイス300を識別するために用いられるデータを格納する追跡デバイス識別子モジュール305、ならびに、
●それぞれの追跡デバイスのping速度に関連付けられているデータおよび情報を格納する追跡デバイスpingモジュール308であって、追跡デバイスpingモジュール308は、以下を含む。
○それぞれの追跡デバイス300が現在動作している現在のping速度を記述する瞬間ping速度310、
○それぞれの追跡デバイス300が動作しうる最小ping速度を記述する最小ping速度312、
○それぞれの追跡デバイス300が動作しうる最大ping速度を記述する最大ping速度314、
○それぞれの追跡デバイス300が動作しうる最小ping速度を記述する閾値ping速度316、および、
○可変ping速度フラグ318。
【0102】
追跡デバイス識別子モジュール305は、複数の追跡デバイス(例えば、追跡デバイス1 300-1、追跡デバイス2 300-3、・・・、追跡デバイスP 300-P)からそれぞれの追跡デバイス300を識別することに関連する情報を格納する。いくつかの実施形態において、追跡デバイス識別子モジュール305によって格納されている情報は、それぞれの追跡デバイス300を表す一意的なID(例えば、シリアル番号またはコード)を含む追跡デバイス識別子(ID)306を含む。いくつかの実施形態において、追跡デバイスIDモジュール305は、それぞれの追跡デバイス300を1または複数の追跡デバイスグループ(例えば、
図9の追跡デバイスグループ418-2)に指定する追跡デバイスグループID307を備える。さらに、いくつかの実施形態において、それぞれの追跡デバイス300によって通信されるpingは、追跡デバイスIDモジュール305のデータを含み、アンカデバイスアレイ120が2以上の追跡デバイスから受信されたpingを識別することを可能にする。追跡デバイス300のグループ化に関するさらなる詳細および情報については、少なくとも
図9を特に参照して、後に詳述する。
【0103】
追跡デバイスpingモジュール308は、それぞれの追跡デバイス300の様々なpingパラメータおよび条件に関するデータおよび情報を格納し、pingの管理を円滑にする。例えば、いくつかの実施形態において、追跡デバイスpingモジュール308は、それぞれの追跡デバイス300の瞬間ping速度310を管理する(例えば、10ヘルツ(Hz)になるように瞬間ping速度310を管理する)。いくつかの実施形態において、追跡デバイス300は、追跡デバイス300がpingを伝送しうる最大および最小のping速度を規定する1または複数のping速度制限(最小ping速度312および最大ping速度314の一方または両方など)を備えるよう構成される。例えば、いくつかの実施形態において、最小ping速度312および/または最大ping速度314は、帯域幅限界、アクティブな追跡デバイス300の数、および、予測される活動のタイプ(例えば、スポーツおよび/またはイベントのタイプ、予測される対象の活動、など)の内の1または複数に基づいて、追跡デバイス管理システム400によって設定されてよい。一方または両方のping速度制限を備えるよう構成された場合、追跡デバイスpingモジュール308は、最小ping速度312と最大ping速度314との間で瞬間ping速度310を調節するよう動作する。したがって、追跡管理システム400の自動最適化が、追跡デバイス300の自動ping速度調節と併用されてよい。いくつかの実施形態において、追跡デバイスpingモジュール308は、加速度計317から検出された動きを所定の閾値316と比較するよう構成されている。したがって、pingモジュール308は、検出された動きが所定の閾値316よりも大きいとの判定に従って、瞬間ping速度310を大きくする(例えば、瞬間ping速度310が最大ping速度314に達するまで)。同様に、pingモジュール308は、検出された動きが閾値ping速度316よりも小さいとの判定に従って、瞬間ping速度310を小さくする(例えば、瞬間ping速度310が最小ping速度312に達するまで)。
【0104】
いくつかの実施形態において、pingモジュール310は、pingモジュール308が、決定された活動に基づいて、瞬間ping速度310の変更を自動的に行うか否かを決定する可変ping速度フラグ318(追跡デバイス管理システム400によって構成(例えば、無線で設定)される)を含む。例えば、追跡デバイス管理システム400は、競技フィールド上で現在参加していないプレイヤーに関連付けられている1または複数の追跡デバイス300に対して可変ping速度フラグ318を「偽」に設定してよく、その場合、瞬間ping速度310は、例えば、そのプレイヤーがアクティブにウォーミングアップしている場合でも低速度のままである。追跡デバイス管理システム400は、競技フィールド上でアクティブに参加している1または複数のプレイヤーに対して可変ping速度フラグ318を「真」に設定する。さらに、いくつかの実施形態において、各追跡デバイス300は、それぞれの追跡デバイスの位置に基づいて動的に構成される。例えば、追跡デバイスが競技フィールドを外れているとの判定(例えば、プレイヤーが試合にアクティブに参加していない場合)に対して、追跡デバイス300が競技フィールド内にあるとの判定に従って(例えば、プレイヤーが試合にアクティブに参加している場合)。
【0105】
追跡デバイス300内の追跡デバイスpingモデル308および/またはセンサ(例えば、加速度計317および/または任意選択的なセンサ364)を利用することで、システム600(例えば、アンカアレイ120、テレメトリ解析システム240、追跡デバイス管理システム400など)が、追跡デバイスと共に配置された対象を追跡する際の信頼性を高める。
【0106】
上述のように、いくつかの実施形態において、各追跡デバイス300は、それぞれの追跡デバイス300に近接する様々なアンカ120によって受信および通信されるテレメトリデータ230を提供する。このテレメトリデータは、位置テレメトリデータ232(例えば、X、Y、および/または、Z座標)、運動テレメトリデータ234(例えば、速度、加速度、および/または、加加速度)、および/または、バイオメトリックテレメトリデータ236(例えば、心拍数、肩幅などプレイヤーの身体的属性など)を含む。
【0107】
いくつかの実施形態において、試合における各対象は、対象について追跡デバイスから受信されるデータの精度を高めるために、2以上の追跡デバイス300を装備される。例えば、いくつかの実施形態において、それぞれの対象の左肩および右肩の両方に追跡デバイス300を装備させ、各かかる追跡デバイスは、正常に機能し、アンカ120の少なくとも一部への見通しを有する。したがって、いくつかの実施形態において、左および右の追跡デバイス300からのデータは、単一のタイムスタンプ付きオブジェクトを形成するようにそれらのテレメトリデータ230を組み合わせられる。この単一のオブジェクトは、両方の追跡デバイス300からの位置データを組み合わせて、それぞれのプレイヤーの位置の中心線表現を作成する。さらに、この中心線で計算された位置は、プレイングフィールドでのプレイヤーの位置の中心のより正確な表現を提供する。さらに、上述のように単一のプレイヤーオブジェクトを作成する前に、プレイヤーの左および右の肩に配置された2つの追跡デバイス300からの相対位置データを用いると、システム600は、プレイヤーが向いている方向(例えば、回転)を決定することができる。様々な実施形態において、回転データを含めることで、試合中にテレメトリデータ230を記録することによって作成されたデータからアバターを作成するタスク、および/または、試合内の将来のイベントまたは試合自体の最終結果をより良好に予測するために利用できる洗練された共変量を確立するタスクが非常に容易になる。
【0108】
いくつかの実施形態において、追跡デバイス300は、
図8に示したデバイス内に見られる回路、ハードウェア構成要素、および、ソフトウェア構成要素の内のいずれかまたはすべてを有する。簡潔さと明確さのために、追跡デバイス300にインストールされている追加のソフトウェアモジュールをより良好に強調するために、追跡デバイス300の可能な構成要素のいくつかのみが図示されている。
【0109】
図9は、追跡デバイス管理システムの一実施形態を示すブロック図である。追跡デバイス管理システム400は、1または複数の追跡デバイス300およびアンカ120に関連付けられている。追跡デバイス管理システム400は、1または複数の処理ユニット(CPU)474と、周辺機器インターフェース470と、メモリコントローラ488と、ネットワークまたはその他の通信インターフェース484と、メモリ402(例えば、ランダムアクセスメモリ)と、ディスプレイ482および入力部480(例えば、キーボード、キーパッド、タッチスクリーンなど)を含むユーザインターフェース478と、出力/入力(I/O)サブシステム466と、上述の構成要素を相互接続するための1または複数の通信バス413と、上述の構成要素に給電するための電力供給システム476と、を備える。
【0110】
いくつかの実施形態において、入力部480は、タッチセンシティブディスプレイ(タッチセンシティブ面など)である。いくつかの実施形態において、ユーザインターフェース478は、1または複数のソフトキーボード実施形態を備える。ソフトキーボード実施形態は、表示されているアイコン上に標準的(QWERTY)および/または非標準的な構成のシンボルを備えてよい。
【0111】
追跡デバイス管理システム400は、様々な追跡デバイス300に関与する際に用いられてよいシステムの一例にすぎず、追跡デバイス管理システム400は、任意選択的に図に示すよりも多いまたは少ない構成要素を有し、任意選択的に2以上の構成要素を組みあわせ、もしくは、任意選択的に構成要素の異なる構成または配置を有することを理解されたい。
図9に示す様々な構成要素は、1または複数の信号処理および/または特定用途向け集積回路など、ハードウェア、ソフトウェア、ファームウェア、または、それらの組みあわせで実装される。
【0112】
メモリ402は、任意選択的に、高速ランダムアクセスメモリを含み、さらに、任意選択的に、1または複数の磁気ディスクストレージデバイス、フラッシュメモリデバイス、または、その他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。管理システム400のその他の構成要素(CPU474など)によるメモリ402へのアクセスは、任意選択的に、メモリコントローラ488によって制御される。
【0113】
周辺機器インターフェース470は、CPU474およびメモリ402に管理システムの入力および出力周辺機器を接続するために利用されうる。1または複数のプロセッサ474は、管理システム400のための様々な機能を実行するため、および、データを処理するために、メモリ402に格納されている様々なソフトウェアプログラムおよび/または命令のセットを実行する。
【0114】
いくつかの実施形態において、周辺機器インターフェース470、CPU474、および、メモリコントローラ488は、任意選択的に、単一のチップ上に実装される。いくつかの他の実施形態において、それらは、任意選択的に、別個のチップ上に実装される。
【0115】
いくつかの実施形態において、電力システム476は、電力管理システムと、1または複数の電源(例えば、バッテリ、交流(AC))と、再充電システムと、停電検出回路と、電力コンバータまたはインバータと、電力状態インジケータ(例えば、発光ダイオード(LED)など)と、ポータブルデバイスの電力の生成、管理、および、分配に関連する任意のその他の構成要素と、を任意選択的に備える。
【0116】
図9に示すように、追跡デバイス管理システムのメモリ402は、以下を格納することが好ましい。
●オペレーティングシステム404(例えば、ANDROID、iOS、DARWIN、RTXC、LINUX、UNIX、OS X、WINDOWS、または、組み込みオペレーティングシステム(VxWorksなど))が、一般的なシステムタスク(例えば、メモリ管理、ストレージデバイス制御、電力管理など)を制御および管理するための様々なソフトウェアコンポーネントおよび/またはドライバを備え、様々なハードウェアおよびソフトウェアコンポーネントの間の通信を円滑にする、ならびに、
●1または複数の追跡デバイス300の管理を円滑にするための追跡デバイスマネージャモジュール406であって、追跡デバイスマネージャモジュールは、以下を備える。
○追跡デバイス識別子306および追跡デバイスping速度414など、それぞれの追跡デバイス410-1に関連付けられている関連情報を格納するための追跡デバイス識別子ストア408、ならびに、
○1または複数の追跡デバイスグループ307の管理を円滑にするための追跡デバイスグループ化ストア416。
【0117】
追跡デバイス識別子ストア408は、それぞれの追跡デバイス300の追跡デバイス識別子(ID)306およびそれぞれの追跡デバイスが関連付けられている追跡デバイスグループ307など、それぞれの追跡デバイス410-1に関する情報を含む。例えば、いくつかの実施形態において、第1追跡デバイスグループ307-1が、各自の対象の左肩に関連付けられ、第2追跡デバイスグループ307-2が、各自の対象の右肩に関連付けられる。さらに、いくつかの実施形態において、第3追跡デバイスグループ307-3が、各自の対象の第1ポジション(例えば、レシーバ、ディフェンシブエンド、セーフティなど)に関連付けられ、第4追跡デバイスグループ307-4が、第2ポジションに関連付けられる。追跡デバイス300のグループ化307は、特定のグループが、特定のping速度(例えば、ランニングバックのためのより速いping速度)を備えるよう指定されることを可能にする。また、追跡デバイス300のグループ化307は、特定のグループが、それぞれのグループに関連付けられていない他の追跡デバイスから隔離されることを可能にし、これは、グループの追跡デバイスによって提供されたテレメトリデータ230の表現を見る際に有用である。追跡デバイスおよび追跡デバイス管理システムに関するさらなる情報が、米国特許第9,950,238号「Object Tracking System Optimization and Tools」で見られる。
【0118】
図10は、統計システムの一実施形態を示すブロック図である。統計システム500は、本開示に従って、様々な統計値を格納および決定する。統計システム500は、1または複数の処理ユニット(CPU)574と、周辺機器インターフェース570と、メモリコントローラ588と、ネットワークまたはその他の通信インターフェース584と、メモリ502(例えば、ランダムアクセスメモリ)と、ディスプレイ582および入力部580(例えば、キーボード、キーパッド、タッチスクリーンなど)を含むユーザインターフェース578と、出力/入力(I/O)サブシステム566と、上述の構成要素を相互接続するための1または複数の通信バス513と、上述の構成要素に給電するための電力供給システム576と、を備える。
【0119】
いくつかの実施形態において、入力部580は、タッチセンシティブディスプレイ(タッチセンシティブ面など)である。いくつかの実施形態において、ユーザインターフェース578は、1または複数のソフトキーボード実施形態を備える。ソフトキーボード実施形態は、表示されているアイコン上に標準的(例えば、QWERTY)および/または非標準的な構成のシンボルを備えてよい。
【0120】
統計システム500は、様々な統計値を見て決定する際に用いられてよいシステムの一例にすぎず、統計システム500は、任意選択的に図に示すよりも多いまたは少ない構成要素を有し、任意選択的に2以上の構成要素を組みあわせ、もしくは、任意選択的に構成要素の異なる構成または配置を有することを理解されたい。
図10に示す様々な構成要素は、1または複数の信号処理および/または特定用途向け集積回路など、ハードウェア、ソフトウェア、ファームウェア、または、それらの組みあわせで実装される。
【0121】
メモリ502は、任意選択的に、高速ランダムアクセスメモリを含み、さらに、任意選択的に、1または複数の磁気ディスクストレージデバイス、フラッシュメモリデバイス、または、その他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。統計システム500のその他の構成要素(CPU574など)によるメモリ502へのアクセスは、任意選択的に、メモリコントローラ588によって制御される。
【0122】
周辺機器インターフェース570は、CPU574およびメモリ502に管理システムの入力および出力周辺機器を接続するために利用されうる。1または複数のプロセッサ574は、統計システム500のための様々な機能を実行するため、および、データを処理するために、メモリ502に格納されている様々なソフトウェアプログラムおよび/または命令のセットを実行する。
【0123】
いくつかの実施形態において、周辺機器インターフェース570、CPU574、および、メモリコントローラ588は、任意選択的に、単一のチップ上に実装される。いくつかの他の実施形態において、それらは、任意選択的に、別個のチップ上に実装される。
【0124】
いくつかの実施形態において、電力システム576は、電力管理システムと、1または複数の電源(例えば、バッテリ、交流(AC))と、再充電システムと、停電検出回路と、電力コンバータまたはインバータと、電力状態インジケータ(例えば、発光ダイオード(LED)など)と、ポータブルデバイスの電力の生成、管理、および、分配に関連付けられている任意のその他の構成要素と、を任意選択的に備える。
【0125】
図10に示すように、リモートユーザデバイスのメモリ502は、以下を格納することが好ましい。
●オペレーティングシステム504(例えば、ANDROID、iOS、DARWIN、RTXC、LINUX、UNIX、OS X、WINDOWS、または、組み込みオペレーティングシステム(VxWorksなど))が、一般的なシステムタスク(例えば、メモリ管理、ストレージデバイス制御、電力管理など)を制御および管理するための様々なソフトウェアコンポーネントおよび/またはドライバを備え、様々なハードウェアおよびソフトウェアコンポーネントの間の通信を円滑にする、
●プレイヤーのフォーメーションを決定および分析するための位置情報分類器212、
●各スポーツ508に関する様々な統計値を格納するための履歴トレーニングデータストア214であって、ここで、各スポーツ508は、1または複数のチーム512の様々なチーム履歴データ510と、1または複数のプレイヤー516の様々なプレイヤー統計値514を含む、ならびに、
●プレイヤーのフォーメーションおよび試合の状況に関するデータを格納するための状況ストア228。
【0126】
位置フォーメーション分類器212(単にフォーメーション分類器と呼ばれることもある)は、ゲーム中の任意の所与の時点のプレイヤーの様々な状態およびフォーメーションに関する情報を提供する。例えば、いくつかの実施形態において、フォーメーション分類器212は、スナップ前のフォーメーションを決定するために、テレメトリデータ230を解析する。したがって、フォーメーションが決定され、テレメトリデータ230が解析されると、フォーメーションのサブカテゴリが決定されてよい(例えば、異なるランニングバックを規定する異なるサブカテゴリを持つIフォーメーション)。さらに、いくつかの実施形態において、フォーメーション分類器212は、仮想レフェリーとして機能し、プレイヤーのオフサイド、ニュートラルゾーンインフラクション、イリーガルモーション、イリーガルフォーメーション、などの違反が試合またはプレイ中に起きたか否かを判定する。いくつかの実施形態において、フォーメーション分類器212は、オフェンスフォーメーションの第1テーブル、ディフェンスフォーメーションの第2テーブル、および、スペシャルチームフォーメーションの第3テーブルなど、アメフトの試合における様々なフォーメーションの1または複数のテーブルを備える。いくつかの実施形態において、フォーメーションの上記のテーブルは、表2、表3、および、表4によって記載されているフォーメーションの一部または全部を提供する。
【表2】
【表3】
【表4】
【0127】
さらに、いくつかの実施形態において、フォーメーション分類器212は、ボールによって提供されたテレメトリデータ230と、ボールに最も近いプレイヤーのテレメトリデータとを比較することによって、ボールキャリアを決定する。同様に、いくつかの実施形態において、どちらのチームがボールを持っているかの判定が、同様に実行される。さらに、いくつかの実施形態において、フォーメーション分類器212は、プレイヤーから抽出されたテレメトリデータ230を分析してこれを競技フィールドの既知の境界ラインと比較することによって、プレイヤーが試合の境界内にいるか否かを判定する。このように、フォーメーション分類器212は、試合のボックススコアおよび/または自動カラーコメンタリーを提供するためにテレメトリデータ230を解析する。
【0128】
フォーメーション分類器212は、「ニューラルネット」とラベルされているが、フォーメーション分類器212モジュールは、ニューラルネットワーク分類器を用いてチームフォーメーションの分類を実行する必要はない。いくつかの実施形態において、フォーメーション分類器212モジュールは、実際には、テレメトリデータからチームフォーメーションを読み取ることのできる任意の分類スキームを利用する。例えば、いくつかの実施形態において、フォーメーション分類器212は、最近傍アルゴリズムを用いて、チームフォーメーションの分類を実行する。別の実施形態において、フォーメーション分類器212は、クラスタリングを用いて、チームフォーメーションの分類を実行する。いくつかの実施形態において、フォーメーション分類器212によるフォーメーションの種類の解明は、
図2および
図3に関して記載する方法および特徴に関して開示されるように、現在のライブ試合の結果(例えば、勝敗、ポイントスプレッドなど)を予測する統計モデルにおいて共変量として用いられる。
【0129】
より詳細には、いくつかの実施形態において、フォーメーション分類器212は、ロジスティック回帰アルゴリズム、ニューラルネットワークアルゴリズム、サポートベクターマシン(SVM)アルゴリズム、ナイーブベイズアルゴリズム、最近傍アルゴリズム、ブーストツリーアルゴリズム、ランダムフォレストアルゴリズム、または、決定木アルゴリズムに基づいている。
【0130】
非限定的な例として、フォーメーション分類器212は、ロジスティック回帰アルゴリズム、ニューラルネットワークアルゴリズム、サポートベクターマシン(SVM)アルゴリズム、ナイーブベイズアルゴリズム、最近傍アルゴリズム、ブーストツリーアルゴリズム、ランダムフォレストアルゴリズム、または、決定木アルゴリズムに基づいている。分類に利用される時、SVMは、ラベル付きデータから最大に離れたハイパープレーンで、所与のセットのバイナリラベル付きデータトレーニングセットを分離する。線形分離が可能ではない場合には、SVMは、特徴空間への非線形マッピングを自動的に実現する「カーネル」の技術と協働することができる。特徴空間においてSVMによって見出された超平面は、入力空間における非線形決定境界に対応する。ツリーベースの方法は、特徴空間を1セットの長方形に分割し、その後、各長方形にモデル(定数のようなもの)を当てはめる。いくつかの実施形態において、決定木は、ランダムフォレスト回帰である。即時の方法のためのフォーメーション分類器212として機能しうる1つの特定のアルゴリズムは、分類および回帰木(CART)である。即時の方法のためのフォーメーション分類器212として機能しうるその他の特定の決定木アルゴリズムは、ID3、C4.5、MART、および、ランダムフォレストを含むが、これに限定されない。
【0131】
いくつかの実施形態において、履歴データストア214は、各スポーツ508、スポーツリーグ内の各チーム510、および、それぞれのプレイヤー512に関係する統計値を格納している。前述のように、いくつかの実施形態において、履歴データストア214に格納されているデータは、機械学習エンジン210および/またはフォーメーション分類器212のためのデータのトレーニングセットとして利用される。例えば、いくつかの実施形態において、履歴データ格納214に格納されているデータは、(例えば、プレイヤーがプロの新人である場合に大学アメフトの統計データを用いて)同様のリーグの他のデータセットから推定される時のように、リーグの開始時に設定される初期データとして利用され、または、新しい統計値が生成されている(例えば、以前は知られていなかった統計値が重要になる)場合にデータ点を作成するために利用される。さらに、いくつかの実施形態において、以前に行った試合からのデータが、履歴データストア214内に格納されている。
【0132】
いくつかの実施形態において、状況ストア228は、情報のキャッシュとして機械学習エンジン210の1または複数のデータベース内に格納されているデータを含む。状況ストア228のこのキャッシュは、それぞれのデータベースにクエリする必要なしに、高速でデータをクエリして利用することを可能にする。いくつかの実施形態において、状況ストア288は、それぞれの試合に対するデータの新しいキャッシュを作成する。しかしながら、本開示は、それに限定されない。
【0133】
図11は、オッズ管理システムの一実施形態を示すブロック図である。オッズ管理システム600は、本開示に従って、様々なオッズを格納および決定する。オッズ管理システム600は、1または複数の処理ユニット(CPU)674と、周辺機器インターフェース670と、メモリコントローラ688と、ネットワークまたはその他の通信インターフェース684と、メモリ602(例えば、ランダムアクセスメモリ)と、ディスプレイ682および入力部680(例えば、キーボード、キーパッド、タッチスクリーンなど)を含むユーザインターフェース678と、出力/入力(I/O)サブシステム666と、上述の構成要素を相互接続するための1または複数の通信バス613と、上述の構成要素に給電するための電力供給システム676と、を備える。
【0134】
いくつかの実施形態において、入力部680は、タッチセンシティブディスプレイ(タッチセンシティブ面など)である。いくつかの実施形態において、ユーザインターフェース778は、1または複数のソフトキーボード実施形態を備える。ソフトキーボード実施形態は、表示されているアイコン上に標準的(QWERTY)および/または非標準的な構成のシンボルを備えてよい。
【0135】
オッズ管理システム600は、様々な統計値を見て決定する際に用いられてよいシステムの一例にすぎず、オッズ管理システム600は、任意選択的に図に示すよりも多いまたは少ない構成要素を有し、任意選択的に2以上の構成要素を組みあわせ、もしくは、任意選択的に構成要素の異なる構成または配置を有することを理解されたい。
図11に示す様々な構成要素は、1または複数の信号処理および/または特定用途向け集積回路など、ハードウェア、ソフトウェア、ファームウェア、または、それらの組みあわせで実装される。
【0136】
メモリ602は、任意選択的に、高速ランダムアクセスメモリを含み、さらに、任意選択的に、1または複数の磁気ディスクストレージデバイス、フラッシュメモリデバイス、または、その他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。オッズ管理システム600のその他の構成要素(CPU674など)によるメモリ602へのアクセスは、任意選択的に、メモリコントローラ688によって制御される。
【0137】
周辺機器インターフェース670は、CPU674およびメモリ602に管理システムの入力および出力周辺機器を接続するために利用されうる。1または複数のプロセッサ674は、オッズ管理システム600のための様々な機能を実行するため、および、データを処理するために、メモリ602に格納されている様々なソフトウェアプログラムおよび/または命令のセットを実行する。
【0138】
いくつかの実施形態において、周辺機器インターフェース670、CPU674、および、メモリコントローラ688は、任意選択的に、単一のチップ上に実装される。いくつかの他の実施形態において、それらは、任意選択的に、別個のチップ上に実装される。
【0139】
いくつかの実施形態において、電力システム676は、電力管理システムと、1または複数の電源(例えば、バッテリ、交流(AC))と、再充電システムと、停電検出回路と、電力コンバータまたはインバータと、電力状態インジケータ(例えば、発光ダイオード(LED)など)と、ポータブルデバイスの電力の生成、管理、および、分配に関連付けられている任意のその他の構成要素と、を任意選択的に備える。
【0140】
図11に示すように、リモートユーザデバイスのメモリ602は、以下を格納することが好ましい。
●オペレーティングシステム604(例えば、ANDROID、iOS、DARWIN、RTXC、LINUX、UNIX、OS X、WINDOWS、または、組み込みオペレーティングシステム(VxWorksなど))が、一般的なシステムタスク(例えば、メモリ管理、ストレージデバイス制御、電力管理など)を制御および管理するための様々なソフトウェアコンポーネントおよび/またはドライバを備え、様々なハードウェアおよびソフトウェアコンポーネントの間の通信を円滑にする、
●1または複数の予測または結果モデルを格納するためのモデリングエンジン200であって、以下を備える。
○試合中にシナリオの予測ポイント値を決定するための予測ポイントモデルモジュール222、
○試合に勝つ確率を決定するための勝利確率モデル224、および、
○決定するためのプレイヤーごと代替選手比貢献度モデルモジュール226、
○現在行われている試合に関連付けられている情報を受信および通信するためのリアルタイム試合状況モジュール614、ならびに、
○様々なオッズおよび賭けシステムの管理を円滑にするためのオッズ管理モジュール616。
【0141】
前述のように、モデリングエンジン200は、スポーツイベントで統計値を生成して結果を予測するために用いられる様々なアルゴリズムおよびモデルを備える。いくつかの実施形態において、これらのモデルは、試合の各プレイに対する数値を提供する予測ポイントモデル222を含む。例えば、タッチダウンにつながる試合中のドライブが、5ヤードのラッシュ、94ヤードのパス、および、1ヤードのラッシュを含むプレイを有する場合、1ヤードのラッシュがタッチダウンにつながったとしても、94ヤードのパスは、ドライブ内ではるかに重要な役割を有する。したがって、いくつかの実施形態において、5ヤードのラッシュは、0.5の予測ポイント値を割り当てられ、94ヤードのパスは、5.5の予測ポイント値を割り当てられ、1ヤードのラッシュは、1の予測ポイント値を割り当てられ、ここで、高い値は、より重要なプレイすなわち試合を決定付けるプレイを示す。いくつかの実施形態において、モデリングエンジン200は、
図2および
図3に関して記載する方法および特徴に関して開示されるように、本開示に従って収集されたテレメトリデータを用いて、試合の結果(例えば、勝敗、ポイントスプレッドなど)を予測する。
【0142】
いくつかの実施形態において、リアルタイム試合状況モジュール614は、試合中に起きた状況に関連付けられている情報を受信する。次いで、この情報は、上述のモデル内の様々な重みおよび値を調整する際に利用される。例えば、クォーターバックが足首をひねり、ショットガンポジションからあらゆるプレイを行わなければならない場合、このようにクォーターバックが動けないことは、リアルタイム試合状況モジュール614を通して試合モデル220に反映される。
【0143】
図12は、ユーザデバイスの一実施形態を示すブロック図である。ユーザデバイスは、本開示に従ったエンドユーザに関連付けられたリモートユーザデバイス700である。ユーザデバイス700は、1または複数の処理ユニット(CPU)774と、周辺機器インターフェース770と、メモリコントローラ788と、ネットワークまたはその他の通信インターフェース784と、メモリ702(例えば、ランダムアクセスメモリ)と、ディスプレイ782および入力部780(例えば、キーボード、キーパッド、タッチスクリーンなど)を含むユーザインターフェース778と、出入力(I/O)サブシステム766と、任意選択的な加速度計717と、任意選択的なGPS719と、任意選択的なオーディオ回路772と、任意選択的なスピーカ760と、任意選択的なマイク762と、ユーザデバイス700への接触の強度を検出するなどのための1または複数の任意選択的なセンサ764(例えば、デバイス700のタッチセンシティブディスプレイシステムなどのタッチセンシティブ面)および/または光学センサと、上述の構成要素を相互接続するための1または複数の通信バス713と、上述の構成要素に給電するための電力供給システム776と、を備える。
【0144】
いくつかの実施形態において、入力部780は、タッチセンシティブディスプレイ(タッチセンシティブ面など)である。いくつかの実施形態において、ユーザインターフェース778は、1または複数のソフトキーボード実施形態を備える。ソフトキーボード実施形態は、表示されているアイコン上に標準的(QWERTY)および/または非標準的な構成のシンボルを備えてよい。
【0145】
ユーザデバイス700は、エンドユーザによって用いられてよい多機能デバイスの一デバイス例にすぎず、ユーザデバイス700は、任意選択的に図に示すよりも多いまたは少ない構成要素を有し、任意選択的に2以上の構成要素を組みあわせ、もしくは、任意選択的に構成要素の異なる構成または配置を有することを理解されたい。
図12に示す様々な構成要素は、1または複数の信号処理および/または特定用途向け集積回路など、ハードウェア、ソフトウェア、ファームウェア、または、それらの組みあわせで実装される。
【0146】
メモリ702は、任意選択的に、高速ランダムアクセスメモリを含み、さらに、任意選択的に、1または複数の磁気ディスクストレージデバイス、フラッシュメモリデバイス、または、その他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。ユーザデバイス700のその他の構成要素(CPU774など)によるメモリ702へのアクセスは、任意選択的に、メモリコントローラ788によって制御される。
【0147】
周辺機器インターフェース770は、CPU774およびメモリ702に管理システムの入力および出力周辺機器を接続するために利用されうる。1または複数のプロセッサ774は、ユーザデバイス700のための様々な機能を実行するため、および、データを処理するために、メモリ702に格納されている様々なソフトウェアプログラムおよび/または命令のセットを実行する。
【0148】
いくつかの実施形態において、周辺機器インターフェース770、CPU774、および、メモリコントローラ788は、任意選択的に、単一のチップ上に実装される。いくつかの他の実施形態において、それらは、任意選択的に、別個のチップ上に実装される。
【0149】
いくつかの実施形態において、オーディオ回路772、スピーカ760、および、マイク762は、ユーザとデバイス700との間のオーディオインターフェースを提供する。オーディオ回路772は、周辺機器インターフェース770からオーディオデータを受信し、オーディオデータを電気信号に変換し、電気信号をスピーカ760へ伝送する。スピーカ760は、電気信号を人間に聞こえる音波へ変換する。また、オーディオ回路772は、マイク762によって音波から変換された電気信号を受信する。オーディオ回路772は、電気信号をオーディオデータに変換し、処理に向けてオーディオデータを周辺機器インターフェース770へ伝送する。オーディオデータは、任意選択的に、周辺機器インターフェース770によって、メモリ702および/またはRF回路784からリトリーブされ、および/または、メモリ702および/またはRF回路784へ伝送される。
【0150】
いくつかの実施形態において、電力システム776は、電力管理システムと、1または複数の電源(例えば、バッテリ、交流(AC))と、再充電システムと、停電検出回路と、電力コンバータまたはインバータと、電力状態インジケータ(例えば、発光ダイオード(LED)など)と、ポータブルデバイスの電力の生成、管理、および、分配に関連付けられている任意のその他の構成要素と、を任意選択的に備える。
【0151】
図12に示すように、リモートユーザデバイスのメモリ702は、以下を格納することが好ましい。
●オペレーティングシステム704(例えば、ANDROID、iOS、DARWIN、RTXC、LINUX、UNIX、OS X、WINDOWS、または、組み込みオペレーティングシステム(VxWorksなど))が、一般的なシステムタスク(例えば、メモリ管理、ストレージデバイス制御、電力管理など)を制御および管理するための様々なソフトウェアコンポーネントおよび/またはドライバを備え、様々なハードウェアおよびソフトウェアコンポーネントの間の通信を円滑にする、
●本開示の様々なシステムおよびデバイスとの通信中に特定のユーザデバイスを識別するために用いられる電子アドレス706、
●対応するユーザデバイス700に関連付けられたそれぞれのユーザに関する関連情報(ユーザ名、ユーザパスワード、アクセストークンを含むユーザアクセス情報など)を格納するユーザ情報ストア708、
●ホワイトボードフィードモジュール712、アバターフィードモジュール714、および、ビデオフィードモジュール716を備えた、試合の様々な表現を見ると共に、試合に関連付けられている様々な統計値を見るための試合フィードモジュール710、ならびに、
●試合のシナリオに賭けることを円滑にする賭けモジュール718。
【0152】
いくつかの実施形態において、賭けモジュール718は、
図2および
図3に関して記載する方法および特徴に関して開示されるように、本開示に従って収集されたテレメトリデータを用いて、拡張共変量を用いて現在の試合の結果(例えば、勝負、ポイントスプレッドなど)を予測する。いくつかの実施形態において、賭けモジュール718は、本開示に従って収集されたテレメトリデータを用いて、現在のライブの試合において将来の試合中のイベントに対するオッズを提供する。
【0153】
図13は、本開示の一実施形態に従って、追跡システムの構成要素を含む競技フィールドを含んだ環境例を示す。この追跡システムは、イベントのビデオを追跡および/またはキャプチャするために、コンテンツクリエータ140に含まれうる。環境例(例えば、スタジアム906)900である。環境900は、試合(例えば、アメフトの試合)が行われる競技フィールド902を含む。環境900は、競技フィールド902と、競技フィールドを直接取り囲んでいるエリア(例えば、試合に参加していない対象(対象930-1および対象940-1など)を含むエリア)とを含む領域904を含む。環境900は、試合のそれぞれの対象に関連付けられている1または複数の追跡デバイス300からテレメトリエータ300を受信するアンカデバイスアレイ120(例えば、アンカデバイス1201-1、アンカデバイス120-2、・・・、アンカデバイス120-Q)を含む。
図9に示すように、いくつかの実施形態において、アンカデバイスのアレイは、テレメトリ解析システム240(例えば、
図9のトラッカ管理システム400)と(例えば、通信ネットワーク106を介して)通信する。さらに、いくつかの実施形態において、1または複数のカメラ140(例えば、カメラ140-1)は、スポーツイベントの画像および/またはビデオをキャプチャし、これは、仮想再現の形成時に用いられる。
図13では、マーカ930が、試合の第1チームの対象を表し、一方、マーカ940が、試合の第2チームの対象を表している。
【0154】
図14は、いくつかの実施形態に従って、ビデオフィードをカスタマイズおよび合成するためにプログラムされたコンピュータシステムを示す機能図である。明らかに、記載したビデオ合成/カスタマイズ技術を実行するために、他のコンピュータシステムアーキテクチャおよび構成を用いることも可能である。以下に述べるような様々なサブシステムを備えるコンピュータシステム1400は、少なくとも1つのマイクロプロセッササブシステム(プロセッサまたは中央処理装置(CPU)1402とも呼ばれる)を備える。例えば、プロセッサ1402は、シングルチッププロセッサまたはマルチプロセッサによって実装できる。いくつかの実施形態において、プロセッサ1402は、コンピュータシステム1400の動作を制御する汎用デジタルプロセッサである。いくつかの実施形態において、プロセッサ1402は、さらに、1または複数のコプロセッサまたは専用プロセッサ(例えば、グラフィックプロセッサ、ネットワークプロセッサなど)を備える。メモリ1410からリトリーブされた命令を用いて、プロセッサ1402は、入力デバイス(例えば、画像処理デバイス1406、I/Oデバイスインターフェース1404)で受信される入力データの受信および操作、ならびに、出力デバイス(例えば、ディスプレイ1418)でのデータの出力および表示を制御する。
【0155】
プロセッサ1402は、メモリ1410と双方向に接続されており、メモリ1410は、例えば、1または複数のランダムアクセスメモリ(RAM)ならびに/もしくは1または複数の読み出し専用メモリ(ROM)を含みうる。当業者に周知のように、メモリ1410は、一般的な記憶領域、一時(例えば、スクラッチパッド)メモリ、および/または、キャッシュメモリとして用いることができる。メモリ1410は、さらに、入力データおよび処理済みデータを格納するため、プロセッサ1402上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納するために利用できる。また、当業者に周知のように、メモリ1410は、通例、機能(例えば、プログラムされた命令)を実行するためにプロセッサ1402によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ1410は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ1402は、頻繁に必要になるデータをメモリ1410に含まれるキャッシュメモリに直接的かつ非常に迅速に格納しリトリーブすることもできる。
【0156】
着脱可能マスストレージデバイス1412が、コンピュータシステム1400にさらなるデータ記憶容量を提供しており、プロセッサ1402に対して双方向(読み出し/書き込み)または単方向(読み出しのみ)で任意選択的に接続されている。固定マスストレージ1420も、例えば、さらなるデータ記憶容量を提供しうる。例えば、ストレージデバイス1412および/または1420は、磁気テープ、フラッシュメモリ、PCカード、ハードドライブ(例えば、磁気、光学、または、ソリッドステートドライブ)のような携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体を含みうる。マスストレージ1412および/または1420は、一般に、プロセッサ1402によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。マスストレージ1412および1420に保持された情報は、必要であれば、仮想メモリとしてのメモリ1410(例えば、RAM)の一部に標準的な方式で組み込まれうることが理解される。
【0157】
プロセッサ1402がストレージサブシステムにアクセスできるようにすることに加えて、バス1414は、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイ1418、ネットワークインターフェース1416、入力/出力(I/O)デバイスインターフェース1404、画像処理デバイス1406、ならびに、その他のサブシステムおよびデバイスを含みうる。例えば、画像処理デバイス1406は、カメラ、スキャナなどを含みうる。I/Oデバイスインターフェース1404は、タッチスクリーン(例えば、ジェスチャ解釈をサポートする容量式タッチセンシティブスクリーン)、マイクロホン、サウンドカード、スピーカ、キーボード、ポインティングデバイス(例えば、マウス、スタイラス、人間の指)、全地球測位システム(GPS)受信機、加速度計と相互作用するためのデバイスインターフェース、ならびに/もしくは、システム1400と相互作用するための任意のその他の適切なデバイスインターフェースを含みうる。複数のI/Oデバイスインターフェースが、コンピュータシステム1400と共に用いられてよい。I/Oデバイスインターフェースは、プロセッサ1402がデータを送信すること、ならびに、より典型的には、他のデバイス(キーボード、ポインティングデバイス、マイクロホン、タッチスクリーン、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど)からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
【0158】
ネットワークインターフェース1416は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ1402を接続することを可能にする。例えば、ネットワークインターフェース1416を通して、プロセッサ1402は、方法/処理ステップを実行する過程で、別のネットワークから情報(例えば、データオブジェクトまたはプログラム命令)を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信されたり、別のネットワークへ出力されたりしうる。インターフェースカード(または同様のデバイス)と、プロセッサ1402によって実装(例えば、実行/実施)される適切なソフトウェアとを用いて、コンピュータシステム1400を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書に開示された様々な処理の実施形態は、プロセッサ1402上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク(インターネット、イントラネットワーク、または、ローカルエリアネットワークなど)上で実行されてもよい。さらなるマスストレージデバイス(図示せず)が、ネットワークインターフェース1416を通してプロセッサ1402に接続されてもよい。
【0159】
さらに、本明細書に開示された様々な実施形態は、さらに、様々なコンピュータ実装された動作を実行するためのプログラムコードを備えたコンピュータ読み取り可能な媒体を含むコンピュータストレージ製品に関する。コンピュータ読み取り可能な媒体は、データを格納できる任意のデータストレージデバイスを含み、そのデータは、後にコンピュータシステムによって読み出されうる。コンピュータ読み取り可能な媒体の例は、以下を含むがそれらに限定されない。ディスクおよび磁気テープなどの磁気媒体、CD-ROMディスクなどの光学媒体、光学ディスクなどの磁気光学媒体、ならびに、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、および、ROM/RAMデバイスなど、特別に構成されたハードウェアデバイス。プログラムコードの例としては、例えば、コンパイラによって生成されるマシンコード、または、インタープリタを用いて実行できる高水準コード(例えば、スクリプト)を含むファイルが挙げられる。
【0160】
図14に示したコンピュータシステムは、本明細書に開示された様々な実施形態と共に利用するのに適切なコンピュータシステムの一例にすぎない。かかる利用に適した他のコンピュータシステムは、より多いまたは少ないサブシステムを含みうる。いくつかのコンピュータシステムにおいて、サブシステムは、構成要素を共有しうる(例えば、スマートフォン、タブレットなど、タッチスクリーンを備えたデバイスについては、I/Oデバイスインターフェース1404およびディスプレイ1418が、ユーザ入力の検出およびユーザに対する出力の表示の両方を行うタッチセンシティブスクリーン構成要素を共有する)。さらに、バス1414は、サブシステムをつなぐよう機能する任意の相互接続スキームの例である。異なる構成のサブシステムを有する他のコンピュータアーキテクチャが利用されてもよい。
【0161】
ここで、ライブスポーツコンテンツを伴うカスタマイズされた合成ビデオデータを提供する別の処理例について説明する。
【0162】
図15は、ライブスポーツのためのビデオフィードをカスタマイズおよび合成するための処理の一実施形態を示すフローチャートである。工程の各々は、特に明記しない限りは、
図2に記載の工程と同様である。
【0163】
ブロック1501を参照すると、処理は、ライブイベントのビデオフィードを受信する。例えば、ライブイベントは、2プレイヤーまたは2チームの間の試合を含む。様々な実施形態において、処理は、リモートサーバからバックグラウンドビデオフィードを受信する。ライブイベントのビデオフィードは、クライアントデバイス上に表示されたユーザインターフェースのバックグラウンドで再生可能であるため、バックグラウンドビデオフィードと呼ばれる。
【0164】
ブロック1503を参照すると、処理は、第1フレームに関連付けられているタイムスタンプ付きメタデータからバックグラウンドビデオフィードの第1フレームの第1タイムスタンプを決定する。ビデオフィードの各フレームは、或る時点(例えば、基準時点、局所的な時点、など)に対応するタイムスタンプ付きメタデータに関連付けられている。いくつかの実施形態において、ビデオフィードの各部分(例えば、グラフィック/テキスト部分、オーディオ部分)は、タイムスタンプ付きのメタデータに関連付けられている。ビデオフィードをタイムスタンプ付きメタデータに関連付けることは、ビデオフィードと合成(例えば、オーバーレイ)されて、時系列で再生される1または複数のデータソース(試合状態データ要素、試合クロックデータ要素、履歴データ要素など)からのデータ要素の整合(同期など)を可能にする。したがって、各データ要素は、ビデオフィードの送信中に、イベント(ライブイベントを含む)中に発生した時にビデオフィードとデータ要素を合成できるように、タイムスタンプ付きメタデータと共に格納されている。
【0165】
それぞれのフレームのタイムスタンプの決定に従って、クエリが、コンピュータシステムへ通信(例えば、送信)される(例えば、
図1に示したシステムによって格納されているデータ要素の要求のためにAPIサーバを介して通信される)。いくつかの実施形態において、クエリは、時間範囲制限を含む(例えば、指定する)。例えば、いくつかの実施形態において、クエリは、コンピュータシステムによって格納されているデータ要素の内、時間範囲内にある1または複数のデータ要素へのクエリである。いくつかの実施形態において、時間範囲は、それぞれのフレームの決定されたタイムスタンプに基づいている。例えば、いくつかの実施形態において、時間範囲は、決定されたタイムスタンプの時刻から将来の時点までの範囲である(例えば、決定されたタイムスタンプの時刻から、将来の10秒、将来の20秒、将来の30秒、・・・、将来の60秒まで、など)。いくつかの実施形態において、時間範囲は、動的時間範囲である。例えば、いくつかの実施形態において、動的時間範囲は、それぞれのユーザデバイスの帯域幅および/またはビデオフィードモジュール716の帯域幅(例えば、視覚化バッファモジュール720のサイズおよび/または帯域幅)に依存する。それぞれのユーザデバイス700および/またはビデオフィードモジュール716の帯域幅が比較的低いと判定された場合、動的時間範囲は、ユーザデバイスおよび/またはビデオフィードモジュールに負荷を掛けすぎないように、クエリが応答時に受信するデータが少なくなるように短くされる。
【0166】
ブロック1505を参照すると、処理は、第1タイムスタンプによって決定された時間範囲内のデータ要素をリモートシステムにクエリする。いくつかの実施形態において、複数のデータ要素は、複数の試合クロックデータ要素(例えば、試合クロック要素および関連メタデータのアレイ)を含む。いくつかの実施形態において、複数のデータ要素は、複数の試合状態データ要素(例えば、試合状態要素および関連メタデータのアレイ)を含む。いくつかの実施形態において、複数のデータ要素は、複数の位置情報データ要素(例えば、1または複数の対象の位置情報および関連メタデータのアレイ)を含む。いくつかの実施形態において、複数のデータ要素は、複数のグラフィックデータ要素(例えば、複数の埋め込みグラフィック、ニュースおよび/または気象などの複数のテキストデータ要素、および、関連メタデータ)を含む。いくつかの実施形態において、複数のデータ要素は、複数のテキストデータ要素(例えば、ニュース記事、気象情報、など)を含む。いくつかの実施形態において、それぞれの試合状態データ要素は、一致するタイムスタンプ値でのスポーツイベントのスコアである。いくつかの実施形態において、複数のデータ要素は、上記のデータ要素の組み合わせを含む。
【0167】
いくつかの実施形態において、方法は、さらに、クライアントデバイス(例えば、ユーザデバイス700)の帯域幅を用いて、視覚化バッファ(例えば、視覚化バッファモジュール720)のサイズを決める工程を備える。いくつかの実施形態において、クライアントデバイスの帯域幅を用いて視覚化バッファのサイズを決める工程は、帯域幅の低下の判定に応答して視覚化バッファのサイズを大きくする。さらに、クライアントデバイスの帯域幅を用いて視覚化バッファのサイズを決定する工程は、帯域幅の改善の判定に応答して視覚化バッファのサイズを小さくする。この視覚化バッファのサイズ決定は、或る数の時間整合済みフレームが視覚化バッファへ動的にポストされることを可能にする。例えば、いくつかの実施形態において、視覚化バッファにポストされる時間整合済みフレームの数を減らすと、クライアントデバイスへの負荷が減る。
【0168】
ブロック1507を参照すると、方法は、通信されたクエリに応答するリモートコンピュータシステムから複数のデータ要素を受信する工程を備える。いくつかの実施形態において、コンピュータシステムから受信される複数のデータ要素は、クエリによって要求された複数のデータ要素を含む。しかしながら、本開示は、それに限定されない。例えば、いくつかの実施形態において、第1複数のデータ要素が、クエリによって要求され、それに従って、第2複数のデータの要素が、コンピュータシステムから受信される(例えば、第1複数のデータ要素の内の一部のデータ要素のみが利用可能である)。それでも、いくつかの実施形態において、クエリに応答して受信される各データ要素は、特定の時間範囲内にある(例えば、含まれる)関連タイムスタンプ付きメタデータを含む(例えば、時間範囲は、特定の日の1:04PMから1:06PMまでであり、それに従って、クエリの結果として受信されるデータ要素は、その特定の日の1:04PMから1:06PMまでの間の時間に関連付けられたメタデータを含む)。いくつかの実施形態において、複数のデータ要素は、システムの1または複数のデータストア(例えば、履歴データストア214、状況ストア228など)から受信される。いくつかの実施形態において、複数のデータ要素は、ユーザデバイス上にローカルに格納されている。いくつかの実施形態において、複数のデータ要素は、ユーザデバイス上にローカルに格納されている1または複数のデータ要素と、コンピュータシステム上(例えば、履歴データストア214、状況ストア228など)に格納されている1または複数のデータ要素と、を含む。
【0169】
ブロック1509を参照すると、処理は、データ要素およびフレームにそれぞれ関連付けられているタイムスタンプの一致に基づいてビデオフィードの個々のフレームを整合させて、時間整合済みフレームを取得する。クエリの結果として受信された(例えば、APIサーバ260を介して通信された)複数のデータ要素の内の個々のデータ要素が、ビデオフィードの複数のフレームの内の個々のフレームと整合される。それぞれのフレームおよびそれぞれのデータ要素は、複数のフレーム内のそれぞれのフレームに関連付けられている各タイムスタンプと、複数のデータ要素の内のそれぞれのデータ要素に関連付けられている各タイムスタンプとの一致に基づいて整合される。例えば、表4に示した例に関して、試合クロックデータ要素のアレイおよび試合状態データ要素のアレイの各々が、ユーザデバイスによってコンピュータシステムから受信される。これらのアレイのデータ要素の各々に関連付けられているタイムスタンプ付きメタデータを用いて、対応する試合クロックデータ要素、および、試合状態データ要素が、同じタイムスタンプを持つビデオフィードのそれぞれのフレームと整合される。この整合により、複数の時間整合済みフレームを得る。例えば、ビデオフィードのフレームが、00:00:06のタイムスタンプを有すると決定される。それに従って、00:00:06の関連付けられているタイムスタンプ付きメタデータを有する対応する試合クロックデータ要素および対応する試合状態データ要素が、そのフレームと整合されて、時間整合済みフレームが得られる。複数の時間整合済みフレームの内のそれぞれの時間整合済みフレームは、それぞれの時間整合済みフレームと時間の一致する複数のデータ要素の内の1または複数のデータ要素とオーバレイされる。いくつかの実施形態において、1または複数のデータ要素のオーバレイ工程は、ビデオフィード上に埋め込みグラフィックを合成する工程を含む(例えば、埋め込みスクローリングティッカー(テロップ)、埋め込みスコアボード、埋め込み気象状況、など)。いくつかの実施形態において、オーバレイ工程は、それぞれのデータ要素をアフォーダンス領域と関連付ける工程を含み、これについては、後に詳述する。
【0170】
いくつかの実施形態において、複数のフレームの内のそれぞれのフレームに関連付けられている各タイムスタンプと、複数のデータ要素の内のそれぞれのデータ要素に関連付けられている各タイムスタンプとの一致に基づいて、複数のデータ要素の内の個々のデータ要素を複数のフレームの内の個々のフレームと整合させる工程は、それぞれのフレームと一致するタイムスタンプ値を有するそれぞれの試合クロックデータ要素を複数の試合クロックデータ要素の中から特定する工程を含む。それぞれの試合クロックデータ要素(例えば、
図17のデータ要素1304-4)は、それぞれのフレーム上にオーバレイされ、それにより、1または複数の時間整合済みフレームの内の1つの時間整合済みフレームを形成する。
【0171】
いくつかの実施形態において、複数のフレームの内のそれぞれのフレームに関連付けられている各タイムスタンプと、複数のデータ要素の内のそれぞれのデータ要素に関連付けられている各タイムスタンプとの一致に基づいて、複数のデータ要素の内の個々のデータ要素を複数のフレームの内の個々のフレームと整合させる工程は、それぞれのフレームと一致するタイムスタンプ値を有するそれぞれの試合状態データ要素を複数の試合状態データ要素の中から特定する工程を含む。それぞれの試合状態データ要素(例えば、データ要素1304-1、1304-2、1304-3、1304-5、など)は、それぞれのフレーム上にオーバレイされ、それにより、1または複数の時間整合済みフレームの内の1つの時間整合済みフレームを形成する。
【0172】
いくつかの実施形態において、複数のデータ要素は、複数の位置情報データ要素(例えば、テレメトリデータ230)を含む。複数の位置情報データ要素の内の各位置情報データ要素は、第1複数のプレイヤーまたは第2複数のプレイヤーの中の1または複数のプレイヤーのタイムスタンプ付き位置情報である。タイムスタンプ付き位置情報は、ライブイベントでテレメトリ追跡システム(例えば、トラッカ管理システム400)によってキャプチャされる。したがって、複数のフレームの内のそれぞれのフレームに関連付けられている各タイムスタンプと、複数のデータ要素の内のそれぞれのデータ要素に関連付けられている各タイムスタンプとの一致に基づいて、複数のデータ要素の内の個々のデータ要素を複数のフレームの内の個々のフレームと整合させる工程は、それぞれのフレームと一致するタイムスタンプ値を有するそれぞれの位置情報データ要素を複数の位置情報データ要素の中から特定する工程を含む。それぞれの位置情報データ要素は、それぞれのフレーム上にオーバレイされ、それにより、1または複数の時間済みフレームの内の1つの時間整合済みフレームを形成する。
【0173】
いくつかの実施形態において、テレメトリ追跡システム(例えば、テレメトリ管理システム400)は、複数の追跡デバイス(例えば、追跡デバイス300)を備える。各追跡デバイスは、複数の信号(例えば、テレメトリデータ230)を提供するよう構成されている。第1および第2複数のプレイヤーの各プレイヤーは、複数の追跡デバイスの内の1または複数の追跡デバイスに関連付けられている。3以上の受信機(例えば、アンカデバイス120)が、複数の追跡デバイスによって提供される信号を受信するよう構成される。コンピュータシステム(例えば、テレメトリ管理システム400および/またはテレメトリ解析システム240)は、3以上の受信機によって受信された複数の信号に基づいて、第1および第2複数のプレイヤーの各プレイヤーについてタイムスタンプ付き位置情報および/または運動情報(例えば、位置テレメトリ232、運動テレメトリ234、バイオメトリックテレメトリ236)を決定するよう構成されている。この決定工程は、複数の位置情報データ要素を構築する。
【0174】
いくつかの実施形態において、複数の時間済みフレームの内のそれぞれの時間整合済みフレームに対する1または複数のデータ要素のオーバレイ工程は、さらに、クライアントデバイス上で実行するアプリケーション内の対応するアフォーダンス領域とそれぞれの時間整合済みフレームを関連付ける工程を含む。例えば、いくつかの実施形態において、データ要素がグラフィック(例えば、埋め込みグラフィック)を含む場合、アフォーダンス領域がグラフィックに関連付けられる。各アフォーダンス領域は、それぞれのユーザデバイス700のエンドユーザがそれぞれのデータ要素と相互作用することを可能にするように構成されている。例えば、いくつかの実施形態において、エンドユーザが、それぞれのデータ要素に関連付けられているアフォーダンス領域と相互作用すると(例えば、それぞれのユーザデバイス700の入力部780を介してタッチ入力を提供すると)、その相互作用に従って決定がなされる。いくつかの実施形態において、決定は、メニュー(例えば、統計のメニューまたは選択、チームのシーズン結果のメニュー、など)を表示するための決定であり、例えば、いくつかの実施形態において、エンドユーザが
図10のデータ要素210と相互作用すると、それぞれの対象に関連付けられている統計の選択を示すメニューが、ユーザデバイス上に表示される(例えば、ビデオフィード上にオーバレイされる)。いくつかの実施形態において、オーバレイされたデータ要素とのエンドユーザによる相互作用は、データ要素の表示状態(例えば、表示すなわちオン、および、非表示すなわちオフ)を変更する。
【0175】
いくつかの実施形態において、それぞれのフレームと、1または複数のそれぞれのデータ要素との整合は、0.01秒~0.1秒の範囲の許容範囲内で実行される。例えば、整合は、0.0167秒の許容範囲内で実行される(例えば、60フレーム/秒)。例えば、それぞれのフレームが、{00時間:02分:25秒:39ミリ秒}のタイムスタンプを有すると決定され、整合の許容範囲が5ミリ秒である場合、{00時間:02分:25秒:26ミリ秒}~{00時間:02分:25秒:46ミリ秒}の時間範囲の関連タイムスタンプ付きメタデータを含む各データ要素が、それぞれのフレームと整合される。しかしながら、本開示は、それに限定されない。例えば、いくつかの実施形態において、それぞれのフレームが、{00時間02分:25秒:39ミリ秒}のタイムスタンプを有すると決定され、整合の許容範囲が10ミリ秒である場合、00時間:02分:25秒:39ミリ秒}~{00時間:02分:25秒:49ミリ秒}の時間範囲の関連タイムスタンプ付きメタデータを含む各データ要素が、それぞれのフレームと整合される。
【0176】
ブロック1511を参照すると、オーバレイされたデータ要素を含む時間整合済みフレームは、視覚化バッファ(例えば、視覚化バッファモジュール720)へポストされる。前述のように、視覚化バッファは、合成ビデオフィードを形成するために、フレーム、データ要素、および/または、時間整合済みフレームのキュー(例えば、優先度付きキュー)を提供する。
【0177】
いくつかの実施形態において、視覚化バッファは、1または複数の時間整合済みフレームを含む、1秒から1分の間の時間整合済みフレームを保持する。いくつかの実施形態において、視覚化バッファは、1または複数の時間整合済みフレームを含む、20秒から5分の間の時間整合済みフレームを保持する。
【0178】
様々な実施形態において、処理は、受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定する。この処理は、それぞれのデータ要素のタイムスタンプとそれぞれのバックグラウンドビデオフレームのタイムスタンプとの一致に少なくとも部分的に基づいて、1または複数のデータ要素の少なくとも対応する部分をバックグラウンドビデオフィードの対応する部分に整合させることなどによって、1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成する。処理は、クライアントデバイスのディスプレイデバイス上に合成ビデオフィードを表示し、ここで、生成された合成ビデオフィードは、各時間整合済みフレームが、それぞれのバックグラウンドビデオフレームと時間の一致するデータ要素とオーバレイされている時間整合済みフレームを含む。
【0179】
様々な実施形態において、処理は、通信インターフェースを介して、1または複数のユーザ固有の特徴に関連付けられたコンテンツを受信し、ここで、コンテンツは、バックグラウンドビデオフレームに関連付けられたタイムスタンプ付きメタデータと、第1タイムスタンプによって決定された時間範囲内にあるタイムスタンプを有するデータと、を含む。ユーザプロフィールおよび/または以前の挙動に基づいて、異なるメタデータが、異なるユーザにとって利用可能であり、その例については上述した。
【0180】
以下の図は、バックグラウンドビデオおよびオーバレイデータ要素の例を示しており、ここで、バックグラウンドビデオは、ライブスポーツイベントの場面であり、オーバレイデータ要素は、ユーザ(ライブスポーツイベントの視聴者)が相互作用しうる様々な統計、プレイヤー情報などである。
【0181】
図16および
図17は、アメフトの試合向けにカスタマイズされた合成ビデオフィードの例を示している。いくつかの実施形態において、1または複数のユーザプリファレンス設定が、ビデオフィード上にオーバレイされる1または複数のグラフィックデータ要素、および/または、ビデオフィードの向きまたは好ましいカメラ、についての選好を示す。例えば、いくつかの実施形態において、ユーザプリファレンス設定は、ユーザが、第2カメラ140-2(例えば、
図17の部分的なランドスケープカメラビュー)ではなく、第1カメラ140-1からのビデオフィード(例えば、
図16の全ランドスケープカメラビュー)を受信することを好むことを示す。さらに、いくつかの実施形態において、ユーザプリファレンス設定は、それぞれの対象に関する様々な情報を特定するグラフィックデータ要素1210を表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、ボールの位置(例えば、ボールの位置情報)を特定するグラフィックデータ要素1220を表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、現在のボールキャリアを示すグラフィックデータ要素1230を表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、対象の移動経路(例えば、プレイ中のボールの移動経路)を示すグラフィックデータ要素1240を表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、試合クロックデータ要素1304-4、プレイクロックデータ要素1304-5、および/または、試合状態データ要素(例えば、要素1304-1、1304-2、および/または、1304-3)など、試合状態情報を提供するグラフィックデータ要素1304を表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、賭けプラットフォーム(例えば、賭けモジュール718)を提供するグラフィックデータ要素1300-Bを表示する選好を示す。いくつかの実施形態において、ユーザプリファレンス設定は、テキストベースの情報(例えば、気象情報、ニュースなど)を提供するデータ要素1306を表示する選好を示す。したがって、ユーザは、自身の特定の好みに合わせて視聴体験を調整するために、ビデオフィードをパーソナライズして相互作用することができる。また、これは、ユーザが関心を示していないデータのストリームが不必要に通信されるのを防ぐことによって、ユーザデバイスが、コンピュータシステムから受信されるデータの量を最適化することを可能にする。
【0182】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
[適用例1]クライアントデバイスであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサであって、
リモートサーバからバックグラウンドビデオフィードを受信し、
前記通信インターフェースを介して、1または複数のユーザ固有の特徴に関連付けられているコンテンツを受信し、
前記受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定し、
前記1または複数のデータ要素の少なくとも対応する部分を前記バックグラウンドビデオフィードの対応する部分に整合させることによることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、
前記クライアントデバイスのディスプレイデバイス上に前記合成ビデオフィードを表示する、よう構成されているプロセッサと、
を備える、デバイス。
[適用例2]適用例1に記載のデバイスであって、
前記リモートサーバは、前記1または複数のユーザ固有の特徴に少なくとも部分的に基づいて、前記コンテンツをルックアップし、
前記通信インターフェースを介して前記コンテンツを前記デバイスへ送信するよう構成されている、デバイス。
[適用例3]適用例1に記載のデバイスであって、前記1または複数のデータ要素は、インタラクティブであり、前記合成ビデオフィードを生成することは、前記インタラクティブなデータ要素を前記バックグラウンドビデオフィード上にオーバレイすることを含む、デバイス。
[適用例4]適用例1に記載のデバイスであって、前記受信されたコンテンツは、
グラフィック、テキスト、または、オーディオ、の内のすくなくとも1つを含む、前記合成ビデオフィード内で出力するデータと、
前記合成ビデオフィード内で前記データがどのように出力されるのかに関するメタデータと、
を含む、デバイス。
[適用例5]適用例1に記載のデバイスであって、さらに、前記ディスプレイデバイスを備え、前記ディスプレイデバイスは、前記合成ビデオフィードをレンダリングするよう構成されている、デバイス。
[適用例6]適用例1に記載のデバイスであって、前記バックグラウンドビデオフィードは、ライブスポーツイベントのビデオフィードを含む、デバイス。
[適用例7]適用例1に記載のデバイスであって、前記データ要素は、試合クロック、試合状態、または、位置情報、の内の少なくとも1つを含む、デバイス。
[適用例8]適用例1に記載のデバイスであって、
前記バックグラウンドビデオフィードは、第1複数のプレイヤーを含む第1チームと、第2複数のプレイヤーを含む第2チームとの間のライブスポーツイベントのビデオフィードを含み、
前記データ要素は、前記第1複数のプレイヤーまたは前記第2複数のプレイヤーの中の1または複数のプレイヤーに関連付けられているタイムスタンプ付き位置情報データ要素を含み、前記タイムスタンプ付き位置情報データ要素は、前記ライブスポーツイベントでテレメトリ追跡システムによってキャプチャされ、
前記データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させることは、
前記それぞれのフレームと一致するタイムスタンプ値を有するそれぞれの位置情報データ要素を前記位置情報データ要素から特定し、
前記それぞれの位置情報データ要素を前記それぞれのフレーム上にオーバレイすることにより、前記合成ビデオフィード内の時間整合済みフレームを形成することを含む、デバイス。
[適用例9]適用例1に記載のデバイスであって、前記通信インターフェースは、前記コンテンツを定期的に要求する、および、前記バックグラウンドビデオフィードの一部を定期的に受信する、ことの内の少なくとも一方を行うよう構成されている、デバイス。
[適用例10]適用例1に記載のデバイスであって、
前記データ要素は、テキストを含み、
前記ディスプレイデバイス上で前記合成ビデオフィードをレンダリングすることは、前記バックグラウンドビデオフィードと共に前記テキストのスクロールを表示することを含む、デバイス。
[適用例11]適用例11に記載のデバイスであって、前記スクロールの速度、方向、リフレッシュレート、終了条件、および、相互作用ルールの内の少なくとも1つが、前記リモートサーバから受信された前記コンテンツに少なくとも部分的に基づいている、デバイス。
[適用例12]適用例1に記載のデバイスであって、前記プロセッサは、さらに、前記合成ビデオフィードの前記1または複数のデータ要素とのユーザ相互作用に応答して、前記バックグラウンドビデオフィードまたは前記合成ビデオフィードの内の少なくとも一方を更新するよう構成されている、デバイス。
[適用例13]適用例1に記載のデバイスであって、
前記バックグラウンドビデオフィードは、広告であり、
前記決定されたデータ要素は、特定のユーザに合わせてカスタマイズされた価格を含む、デバイス。
[適用例14]適用例1に記載のデバイスであって、前記データ要素は、前記特定のユーザに合わせてカスタマイズされた言語のオーディオを含む、デバイス。
[適用例15]適用例1に記載のデバイスであって、前記データ要素は、前記特定のユーザに合わせてカスタマイズされた音楽を含む、デバイス。
[適用例16]クライアントデバイスであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサであって、
リモートサーバからバックグラウンドビデオフィードを受信し、
前記バックグラウンドビデオフィードの第1フレームに関連付けられているタイムスタンプ付きメタデータから前記第1フレームの第1タイムスタンプを決定し、
前記通信インターフェースを介して、1または複数のユーザ固有の特徴に関連付けられたコンテンツを受信し、
前記コンテンツは、バックグラウンドビデオフレームに関連付けられたタイムスタンプ付きメタデータと、前記第1タイムスタンプによって決定された時間範囲内にあるタイムスタンプを有するデータと、を含み、
前記受信されたコンテンツに少なくとも部分的に基づいて、1または複数のデータ要素を決定し、
それぞれのデータ要素のタイムスタンプとそれぞれのバックグラウンドビデオフレームのタイムスタンプとの一致に少なくとも部分的に基づいて、前記1または複数のデータ要素の少なくとも対応する部分を前記バックグラウンドビデオフィードの対応する部分に整合させることによることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、
前記クライアントデバイスのディスプレイデバイス上に前記合成ビデオフィードを表示し、前記生成された合成ビデオフィードは、それぞれのバックグラウンドビデオフレームと時間の一致するデータ要素と各時間整合済みフレームがオーバレイされている時間整合済みフレームを含む、よう構成されているプロセッサと、
を備える、デバイス。
[適用例17]サーバであって、
プロセッサであって、
1または複数のユーザ固有の特徴に関連付けられているコンテンツの要求を受信し、
前記要求に少なくとも部分的に基づいてコンテンツをルックアップすることによることを含み、前記要求に基づいてコンテンツを決定し、
前記コンテンツ要求に応答して、前記決定されたコンテンツをリモートクライアントデバイスへ送信し、
前記クライアントデバイスは、データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させることなどによって、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成する、よう構成されているプロセッサと、
前記プロセッサに接続され、前記1または複数のユーザ固有の特徴をユーザプロフィール内に格納するよう構成されているメモリと、
を備える、サーバ。
[適用例18]適用例17に記載のサーバであって、前記リモートクライアントデバイスは、前記受信されたコンテンツに少なくとも部分的に基づいて、前記データ要素を決定するよう構成されている、サーバ。
[適用例19]方法であって、
リモートサーバからバックグラウンドビデオフィードを受信し、
1または複数のユーザ固有の特徴に関連付けられているコンテンツを要求し、
前記コンテンツ要求に応答して、前記リモートサーバからコンテンツを受信し、
前記受信されたコンテンツに少なくとも部分的に基づいて、データ要素を決定し、
前記データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させることによることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成し、
クライアントデバイスのディスプレイ上に前記合成ビデオフィードを出力すること、
を備える、方法。
[適用例20]コンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
リモートサーバからバックグラウンドビデオフィードを受信するためのコンピュータ命令と、
1または複数のユーザ固有の特徴に関連付けられているコンテンツを要求するためのコンピュータ命令と、
前記コンテンツ要求に応答して、前記リモートサーバからコンテンツを受信するためのコンピュータ命令と、
前記受信されたコンテンツに少なくとも部分的に基づいて、データ要素を決定するためのコンピュータ命令と、
前記データ要素を前記バックグラウンドビデオフィードの対応する部分に整合させることによることを含み、前記1または複数のユーザ固有の特徴に合わせてカスタマイズされた合成ビデオフィードを生成するためのコンピュータ命令と、
クライアントデバイスのディスプレイ上に前記合成ビデオフィードを出力するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。