(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
[1014] いくつかの実装において、装置は、メモリ、およびメモリに動作可能に結合されたプロセッサを含んでよい。プロセッサは、第1の時間に、ユーザデバイスからの位置データを受信し、位置データをユーザプロファイルデータ構造に格納してよい。ユーザプロファイルデータ構造は、2次元顔認識分析、3次元顔認識分析、または重畳ニューラルネット(CNN)の少なくとも1つに基づく、ユーザに関連するユーザデバイスのユーザの顔認識データを含んでよい。プロセッサは、第1の時間とは異なる第2の時間に、画像捕捉デバイスからの少なくとも1つの画像を受信してよい。プロセッサは、受信した少なくとも1つの画像における特徴のセットに少なくとも部分的に基づいて位置を識別し、データベースから、上記ユーザプロファイルデータ構造を含む複数のユーザプロファイルデータ構造を取得してよい。プロセッサは、複数のユーザプロファイルデータ構造の各ユーザプロファイルデータ構造について、そのユーザプロファイルデータ構造内の位置データと上記位置とを比較してよい。プロセッサは、ユーザプロファイルデータ構造の位置データおよび上記位置が互いに所定の距離内にある場合、ユーザプロファイルデータ構造に関連するユーザが少なくとも1つの画像内で識別され得るかを決定してよい。たとえばプロセッサは、顔認識信頼性スコアを識別するために、2次元顔認識分析、3次元顔認識分析、またはCNNの少なくとも1つに基づくユーザの顔認識データに対して少なくとも1つの画像を分析してよい。プロセッサはその後、顔認識信頼性スコアが所定の基準を満たすことに基づいて、少なくとも1つの画像をユーザプロファイルデータ構造に関連付けしてよい。
【0009】
[1015] 本明細書で説明される実施形態は、顔認識データおよび位置情報に基づいてメディア内のユーザを検出することに関する。いくつかの実施形態において、画像分析の方法は、ホストデバイスにおいて、クライアントデバイスからネットワークを介して、位置におけるユーザのチェックインを示す信号を受信することを含む。ユーザは、自身のモバイルデバイスを介してチェックインしてよい。画像捕捉デバイスは、ユーザを含み得るメディア(たとえば写真、ビデオ、オーディオ、および/または同様のコンテンツ)を捕捉してよい。ホストデバイスは、(たとえば画像処理技術によるメディアの処理後の)メディア内の風景および/または他の背景情報を用いて、メディアが捕捉された特定の位置を決定してよい。ホストデバイスは、たとえば画像捕捉デバイスの位置および/またはメディアが検出する位置を確認するために、画像捕捉デバイスに関する位置情報も受信してよい。ホストデバイスは、メディア内で検出された位置と、チェックインしたユーザの位置データとをマッチさせ、メディアが捕捉された位置と近い位置にどのユーザがチェックインしたかを決定してよい。ホストデバイスはその後、メディア内の位置付近にチェックインしたユーザがメディア内に出現するかを決定するために、メディアに画像処理を実行してよい。ホストデバイスは、ホストデバイスがメディア内で検出したユーザへ通知を送信してよい。このように、ホストデバイスは、特定のメディアファイルにおいて検索するユーザの数を低減し、ユーザの位置およびユーザの出現の両方をメディアから得たデータに結び付けることによってフォールスポジティブを低減することができる。
【0010】
[1016] 本明細書で用いられる場合、単数形の「a」、「an」、および「the」は、文脈が明確に例外を示さない限り、複数形への言及を含む。したがって、たとえば「a module」という用語は、単一のモジュールまたはモジュールの組み合わせを意味することが意図され、「a network」は、1または複数のネットワーク、あるいはそれらの組み合わせを意味することが意図されている。
【0011】
[1017] 本明細書で用いられる場合、「モジュール」という用語は、たとえばメモリ、プロセッサ、電気トレース、光コネクタ、(ハードウェアにおいて実行中の)ソフトウェアなどを含み得る動作可能に結合された電気部品の任意のアセンブリおよび/またはセットを指す。たとえば、プロセッサにおいて実行されるモジュールは、そのモジュールに関連する1または複数の特定の機能を実行することができるハードウェアベースのモジュール(たとえばフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP))および/またはソフトウェアベースのモジュール(たとえばメモリに格納され、および/またはプロセッサにおいて実行されるコンピュータコードのモジュール)の任意の組み合わせであってよい。
【0012】
[1018] 本明細書で説明される実施形態および方法は、(1)ビデオストリーム内の登録ユーザ(たとえば顔認識データが予め定められた人物)の1または複数の画像を検索するため、および(2)ユーザに関連するクライアントデバイス(たとえばスマートフォン、タブレット、コンピュータ、装着型電子デバイスなど)へコンテキストデータを含むビデオストリームを提供するために、顔認識データを用いてよい。顔認識は一般に、人間の顔の1または複数の画像を分析し、たとえば彼または彼女の顔構造の特徴(たとえば頬骨、顎、耳、目、口元、鼻、生え際など)を決定すること、およびその後、特徴に関連するおよび/または特徴を表す質的および/または量的データセットを定義することを伴う。たとえば1つのアプローチは、人間の顔の特徴に関連するデータを抽出し、幾何学ベースおよび/または座標ベースの情報を含むデータセットを定義すること(たとえば顔認識データの3次元(3D)分析)を含む。他のアプローチはたとえば、画像データを定性値に変換し、これらの値とテンプレートなどとを比較すること(たとえば顔認識データの2次元(2D)分析)を含む。いくつかの例において、他のアプローチは、3D分析および2D分析の任意の適切な組み合わせを含んでよい。
【0013】
[1019] いくつかの顔認識方法および/またはアルゴリズムは、固有顔(顔認識に関連する固有ベクトル)を用いた主成分分析、線形判別分析、Fisherfaceアルゴリズムを用いた弾性バンチグラフマッチング、隠れマルコフモデル、テンソル表現を用いたマルチリニアサブスペースラーニング、ニューロン動機付け動的リンクマッチング、重畳ニューラルネット(CNN)など、またはそれらの組み合わせを含む。本明細書で説明される実施形態および/または方法のいずれかは、上述したような任意の適切な顔認識方法および/またはアルゴリズムまたはそれらの組み合わせを使用および/または実行してよい。
【0014】
[1020]
図1Aは、実施形態に係るビデオ認識システム100の概略図である。いくつかの例において、(本明細書において「システム」とも称される)ビデオ認識システム100は、顔認識データに少なくとも部分的に基づいてユーザのビデオストリームを提示するために用いられ得る。システム100の少なくとも一部は、たとえば、メモリ内に格納され電子デバイス(たとえばホストデバイス、サーバまたはサーバのグループ、パーソナルコンピュータ(PC)、ネットワークデバイスなど)のプロセッサにおいて実行される命令またはコードのセットなどによって表現および/または記述され得る。たとえばいくつかの実施形態において、ホストデバイスは、ユーザに関連する顔認識データを登録する要求に関連する信号を受信し、それに応答して、顔認識データをデータベースに格納してよい。同様に、ホストデバイスは、ビデオストリームデータに関連する信号を受信してよい。いくつかの例において、ホストデバイスの1または複数のプロセッサはその後、顔認識データおよび/または(たとえばランドマークデータなどの)位置情報に少なくとも部分的に基づいて、ビデオストリーム内にユーザの1または複数の画像が存在するかを決定するためのビデオストリームデータの分析に関連する、ホストデバイスのメモリ内に格納された命令またはコードのセットを実行してよい。ビデオストリームデータ内に画像が発見された場合、1または複数のプロセッサは、ビデオストリームデータの関連部分を分離してよい。また、1または複数のプロセッサは、(1)たとえば時間、位置、イベントなどのコンテキストデータをビデオストリームデータに関連付けし、(2)ユーザのコンテキストビデオストリームを定義するための命令またはコードのセットを実行してよい。1または複数のプロセッサはその後、ユーザに関連するクライアントデバイスへ、クライアントデバイスのディスプレイに(たとえば、クライアントデバイスにインスタンスが生成されたインタフェースにコンテキストビデオストリームをグラフィックレンダリングすることによって)ユーザのコンテキストビデオストリームを提示するための命令を示す信号を送信してよい。
【0015】
[1021] システム100は、データベース140、クライアントデバイス150、および画像捕捉システム160と通信状態にあるホストデバイス110を含む。ホストデバイス110は、データベース140、クライアントデバイス150、および画像捕捉システム160と電子通信状態にある、たとえばサーバまたはサーバのグループ、ネットワーク管理デバイス、パーソナルコンピュータ(PC)、処理ユニットなど任意の適切なホストデバイスであってよい。たとえばこの実施形態において、ホストデバイス110は、本明細書で更に詳しく説明するように、データベース140、クライアントデバイス150、および画像捕捉システム160とネットワーク105を介して電子通信状態にあるサーバまたは(実質的に同じ場所および/または施設に配置された、または複数の場所に散在する)サーバのグループであってよい。
【0016】
[1022] クライアントデバイス150は、たとえばPC、ラップトップ、コンバーチブルラップトップ、タブレット、パーソナルデジタルアシスタント(PDA)、スマートフォン、装着型電子デバイス(たとえばスマートウォッチなど)など任意の適切なデバイスであってよい。
図1には示されないが、いくつかの実施形態において、クライアントデバイス150は、少なくともメモリ、プロセッサ、通信インタフェース、ディスプレイ、および1または複数の入力装置を含む電子デバイスであってよい。メモリ、プロセッサ、通信インタフェース、ディスプレイ、および入力装置(複数も可)は、それらの間の信号送信が可能であるように互いに接続および/または電気的に結合され得る。たとえばいくつかの実施形態において、メモリは、ランダムアクセスメモリ(RAM)、メモリバッファ、ハードドライブ、読取専用メモリ(ROM)、消去可能プログラマブル読取専用メモリ(EPROM)などであってよい。プロセッサは、たとえば汎用プロセッサ(GPP)、中央処理ユニット(CPU)、高速処理ユニット(APU)、グラフィックプロセッサユニット(GPU)、特定用途向け集積回路(ASIC)など、(たとえばメモリに格納された)命令またはコードのセットを処理または実行するように構成された任意の適切な処理デバイスであってよい。そのようなプロセッサは、PCアプリケーション、モバイルアプリケーション、インターネットウェブブラウザ、(ネットワークを介した)セルラおよび/または無線通信などの使用に関連する、メモリ内に格納された命令またはコードのセットを処理または実行してよい。具体的には、プロセッサは、本明細書で更に詳しく説明するように、ホストデバイス110への顔認識データの送信および/またはホストデバイス110からの顔認識データおよび/またはコンテキストビデオストリームデータの受信に関連する、メモリ内に格納された命令またはコードのセットを実行してよい。
【0017】
[1023] クライアントデバイス150の通信インタフェースは、たとえば1または複数のネットワークインタフェースカードなど、ホストデバイス110との通信にリソースを投入し得る任意の適切なモジュールおよび/またはデバイスであってよい。そのようなネットワークインタフェースカードは、ネットワーク(たとえばネットワーク105)などを介してクライアントデバイス150をホストデバイス110との通信状態に置くことができる、たとえばイーサネット(登録商標)ポート、WiFi(登録商標)無線、Bluetooth(登録商標)無線、近距離通信(NIF)無線、および/またはセルラ無線を含んでよい。このように、通信インタフェースは、ネットワーク105を介してホストデバイス110との電子的通信に関連する信号をプロセッサへ送信および/またはプロセッサから受信してよい。
【0018】
[1024] クライアントデバイス150のディスプレイは、システム100の任意の適切な部分(たとえばウェブページ、PCアプリケーション、モバイルアプリケーションなどに関連するグラフィカルユーザインタフェース(GUI))をグラフィカルに表現することができる、たとえば陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)モニタ、発光ダイオード(LED)モニタなどであってよい。いくつかの実施形態において、そのようなディスプレイは、ハプティックユーザ入力を受信するように構成されたタッチスクリーンであってよく、および/またはこれを含んでよい。いくつかの例において、ディスプレイは、本明細書で更に詳しく説明するように、顔認識プロセスに関連するデータおよび/またはビデオストリームに関連するデータをグラフィック表現するように構成され得る。
【0019】
[1025] クライアントデバイス150の入力装置(複数も可)は、1または複数の入力(たとえばユーザ入力)を受信し、1または複数の入力に関連する信号をプロセッサへ送信および/またはプロセッサから受信することができる任意の適切なモジュールおよび/またはデバイスであってよい。いくつかの実施形態において、入力装置(複数も可)は、デバイスとの電子通信状態に置かれるように構成されたポート、プラグ、および/または他のインタフェースであってよく、および/またはこれを含んでよい。たとえばそのような入力装置は、ユニバーサルシリアルバス(USB)ポート、米国電気電子学会(IEEE)1394(FireWire)ポート、サンダーボルトポート、ライトニングポートなどであってよい。いくつかの実施形態において、ディスプレイは、ハプティックユーザ入力を受信するように構成されたタッチスクリーンなどに含まれ得る。
【0020】
[1026] いくつかの実施形態において、入力装置は、カメラおよび/または他の撮像デバイスであってよい。たとえばいくつかの実施形態において、そのようなカメラは、(たとえばスマートフォン、タブレット、ラップトップなどのように)クライアントデバイス150に一体化されてよく、および/または(たとえば上述したもののように)ポートなどを介してクライアントデバイス150と通信状態であってよい。カメラは、たとえばスマートフォンまたはタブレットに含まれるウェブカメラまたは前向カメラ(たとえばディスプレイと実質的に同じ方向を向いたカメラ)など任意の適切な撮像デバイスであってよい。このように、ユーザは、クライアントデバイス150を操作し、カメラに画像(たとえば写真)またはビデオを捕捉させることができる。またいくつかの例において、ディスプレイは、カメラによって捕捉された画像に関連するデータをグラフィックレンダリングするように構成され得る。例として、いくつかの実施形態において、クライアントデバイス150は、前向カメラを含むスマートフォン、タブレット、または装着型電子デバイスであってよい。いくつかの例において、ユーザは、クライアントデバイス150を操作し、カメラを介して(たとえば「セルフィ」としても知られる)ユーザ自身の写真またはビデオを撮影することができる。
【0021】
[1027] いくつかの例において、クライアントデバイス150に含まれるカメラ(たとえば入力装置)は、ユーザの顔の画像を捕捉するために用いられ、これは、ユーザに関連する顔認識データを登録するために用いられ得る。具体的には、ユーザは、カメラがユーザの顔の画像を捕捉するようにクライアントデバイス150を操作することができる。いくつかの例において、ディスプレイは、ユーザの顔の画像に関する所望のアライメントに関連するインジケーションをユーザに提供することができる、インジケーション、フレーム、境界線、ガイド、および/または他の任意の適切なデータのグラフィック表現をグラフィックレンダリングするように構成され得る。カメラが所望の画像を捕捉すると、プロセッサは、ユーザの顔の画像に関連するデータを受信および/または取得し、顔認識プロセスに少なくとも一部に関連する(たとえばメモリ内に格納された)命令またはコードのセットを実行してよい。たとえばいくつかの例において、プロセッサは、ディスプレイにグラフィックレンダリングされたインジケーション、フレーム、境界線などとユーザの顔の捕捉画像とのアライメントを確認することに関連する命令またはコードのセットを実行してよい。いくつかの例において、クライアントデバイス150は、アライメントが確認されると、ユーザの画像を表現するデータに関連する信号を、ネットワーク105を介してホストデバイス110へ送信するように構成されてよく、それに応答してホストデバイス110は、本明細書で更に詳しく説明するように、データに任意の適切な顔認識プロセスまたは複数のプロセスを実行してよい。
【0022】
[1028] 画像捕捉システム160は、画像データを捕捉するように構成された任意の適切なデバイスであってよく、および/またはこれを含んでよい。たとえば画像捕捉システム160は、画像(たとえば写真)を捕捉および/またはビデオストリームを記録するように構成された1または複数のカメラおよび/または画像記録デバイスであってよく、および/またはこれを含んでよい。いくつかの実施形態において、画像捕捉システム160は、たとえばサーバ、パーソナルコンピュータ、データストレージデバイス(たとえばネットワーク接続ストレージ(NAS)デバイス、データベースなど)などの中央コンピューティングデバイスと通信状態である複数のカメラを含んでよい。そのような実施形態において、カメラは自律的であってよく(たとえば、ユーザプロンプトおよび/または入力なしで画像データを捕捉することができ)、各々が中央コンピューティングデバイスへ(たとえば有線または無線接続、ポート、シリアルバス、ネットワークなどを介して)画像データを送信してよく、中央コンピューティングデバイスは、メモリおよび/または他のデータストレージデバイスに画像データを格納してよい。また、中央コンピューティングデバイスは、ホストデバイス110と(たとえばネットワーク105を介して)通信状態であってよく、ホストデバイス110へ画像データの少なくとも一部を送信するように構成され得る。
図1にはネットワーク105を介してホストデバイス110と通信状態であるものとして示されるが、そのような中央コンピューティングデバイスは他の実施形態において、ホストデバイス110に含まれ、ホストデバイス110の一部であり、および/または他の方法でホストデバイス110に結合されてよい。また他の実施形態において、カメラは、そのような中央コンピューティングデバイスなしでホストデバイス110と(たとえばネットワーク105を介して)通信状態であってよい。
【0023】
[1029] いくつかの実施形態において、画像捕捉システム160は、たとえばスポーツ競技場、テーマパーク、映画館、および/または他の任意の適切な会場などの会場などに関連し、および/または所有され得る。他の実施形態において、画像捕捉システム160は、会場において使用されるが、異なる組織(たとえば、スポーツイベントにおけるテレビカメラのように、会場において画像捕捉システム160を使用することが認可および/または許可された組織)によって所有され得る。また他の実施形態において、画像捕捉システム160は、カメラまたはレコーダとして使用され得る、たとえばスマートフォン、タブレットなど任意の数のクライアントデバイス(たとえばユーザデバイス)などを含んでよい。そのような実施形態において、クライアントデバイスの少なくともいくつかは、(たとえば上述したような)会場に関連するホストデバイス110および/または中央コンピューティングデバイスと通信状態であってよい。
【0024】
[1030] たとえばいくつかの実施形態において、クライアントデバイス150に一体化されたカメラは、
図1Bに示すように、画像捕捉システム160の少なくとも一部を形成し、および/または備えてよい。このように、ユーザはクライアントデバイス150を操作して写真および/またはビデオを捕捉することができ、それに応答してクライアントデバイス150は、写真(たとえば画像データ、フォトグラフィックデータなど)および/またはビデオ記録データをホストデバイス110へアップロードおよび/または他の方法で送信することができる。いくつかの例において、写真および/またはビデオ記録データは、任意の適切な時間にクライアントデバイス150に格納され、後ほどホストデバイス110へアップロードおよび/または送信され得る。また、写真および/またはビデオ記録データは、写真および/またはビデオ記録データがホストデバイス110へ送信された後、クライアントデバイス150に格納されてよい。すなわち、写真および/またはビデオ記録データの送信は、クライアントデバイス150から写真および/またはビデオ記録データを削除および/または消去するものではない(たとえば、データのコピーがホストデバイス110へ送信される)。したがって、
図1Bに示すように、画像捕捉システム160は、特定のイベントおよび/または会場に関連する必要はない。そのような例において、ユーザは、クライアントデバイス150(たとえばクライアントデバイス150のアプリケーション)を操作し、クライアントデバイス150に一体化されたカメラおよび/または記録デバイス(たとえば画像捕捉システム160)を介してユーザ生成コンテンツ(たとえば写真、画像データ、フォトグラフィックデータ、ビデオストリームデータなど)を捕捉することができる。
【0025】
[1031] いくつかの例において、画像捕捉システム160は、会場および/またはイベントに関連する画像データを捕捉するように構成される。すなわち、画像捕捉システム160は、所定、既知、および/または所与のコンテキスト内で画像データを捕捉するように構成される。たとえばいくつかの例において、画像捕捉システム160は、競技場などに設置され、競技場における後援者、客、演技者などに関連する画像データを捕捉するように構成された1または複数の画像捕捉デバイス(たとえばカメラおよび/またはビデオレコーダ)を含んでよい。このように、画像捕捉システム160は、競技場および/または競技場で発生するイベントのコンテキスト内で画像データを捕捉するように構成される。その結果、捕捉された画像データがたとえば「コンテキスト画像データ」であってよい。すなわち、画像データはコンテキストデータに関連する。本明細書で更に詳しく説明するように、ホストデバイス110は、画像捕捉システム160からの画像データおよび/またはビデオストリームデータ、および任意の適切なデータソースなどからのコンテキストに関連するデータ(たとえば、競技場および/または競技場で発生するイベントに関連する「コンテキストデータ」、および/または他の任意の適切なコンテキストおよび/またはメタデータ)を受信し、コンテキストデータをたとえば画像データに関連付け、たとえばクライアントデバイス150のユーザに関連するユーザ指定コンテキスト画像および/またはユーザ指定コンテキストビデオストリームを定義し、ユーザに関連するユーザ指定コンテキスト画像および/またはユーザ指定コンテキストビデオストリームをクライアントデバイス150へ送信してよい。
【0026】
[1032] 上述したように、クライアントデバイス150および画像捕捉システム160は、1または複数のネットワークを介してホストデバイス110と通信状態であってよい。たとえば
図1Aに示すように、クライアントデバイス150および画像捕捉システム160は、自身の通信インタフェースおよびネットワーク105を介してホストデバイス110と通信状態であってよい。ネットワーク105はたとえば、ローカルエリアネットワーク(LAN)、たとえば仮想ローカルエリアネットワーク(VLAN)などの仮想ネットワーク、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセスネットワーク(WiMAX)、セルラネットワーク、インターネット、および/または、有線および/または無線ネットワークとして実装された他の任意の適切なネットワークなど、任意の種類のネットワークであってよい。例として、ネットワーク105は、(「WiFi(登録商標)」としても知られる)米国電気電子学会(IEEE)802.11規格に基づく無線ローカルエリアネットワーク(WLAN)として実装され得る。また、ネットワーク105は、たとえばLANまたはWLANおよびインターネットなど、任意の種類のネットワークの組み合わせを含んでよい。いくつかの実施形態において、クライアントデバイス150は、ネットワーク105と同様または異なってよい中間ネットワークおよび/または代替ネットワーク(不図示)を介してホストデバイス110およびネットワーク105と通信してよい。このように、クライアントデバイス150は、共通ネットワークを用いてホストデバイス110へ伝送されてもされなくてもよい(たとえば上述したネットワークのいずれかに関連する)複数の通信モードを用いて、ホストデバイス110へデータを送信および/またはホストデバイス110からのデータを受信してよい。たとえばクライアントデバイス150は、セルラネットワークおよびインターネット(たとえばネットワーク105)を介してホストデバイス110に接続されたモバイル電話(たとえばスマートフォン)であってよい。
【0027】
[1033] いくつかの例において、ネットワークは、たとえばピアネットワーキングセッションなどを容易にし得る。そのような例において、ピアネットワーキングセッションはたとえば、各々が共通の特徴を共有するクライアントデバイスおよび/または他の任意の適切な電子デバイスを含んでよい。たとえばいくつかの例において、ピアネットワーキングセッションは、会場、イベント、場所などの所定の近接範囲内にある任意の適切なクライアントデバイス(たとえば、データベース140などに登録された電子デバイス)を含んでよい。たとえばいくつかの例において、そのようなピアネットワーキングセッションは、会場(たとえばスポーツイベント)に存在する任意の数の登録クライアントデバイスを含んでよい。いくつかの例において、ピアネットワーキングセッションは、ユーザおよび/またはクライアントデバイスに関連するコンテキストデータに基づいて自動的に確立され得る。他の例において、ピアネットワーキングセッションは、1または複数のユーザが会場などに「チェックイン」することおよび/または他の方法で自身の存在を報知すること(たとえばユーザの存在を「スクォーク」すること)に基づいて自動的に確立され得る。いくつかの例において、ユーザは、ユーザがイベントなど(たとえばスポーツイベント、コンサート、結婚式、誕生日パーティ、会合など)に到着した時、登録時、画像またはビデオストリームの捕捉時などにおいて「チェックイン」してよい。また、「チェックイン」は、たとえば測位データ、日付および時刻データ、個人またはユーザ識別データなどの情報を識別することを含んでよい。いくつかの実装において、ユーザは、自身のクライアントデバイス150上のアプリケーションを介して、コンテキストビデオストリームが捕捉されたイベントおよび/または場所を検索することもできる。ユーザは、検索の結果得られたイベントおよび/または場所に「チェックイン」してよい。本明細書で説明するように、イベントおよび/または場所へのチェックインは、たとえばユーザがコンテキストビデオストリームデータにマッチし得るか否かを決定するために、そのイベントおよび/または場所に関連するコンテキストビデオストリームデータの処理を開始させ得る。
【0028】
[1034] 他の例において、ユーザは、たとえば所定のユーザセットまたはグループを含むピアネットワーキングセッションを手動で確立してよい。いくつかの例において、そのようなピアネットワーキングセッションは、パブリックネットワーク、プライベートネットワーク、および/または他の限定されたアクセスネットワークであってよい。たとえばいくつかの例において、ユーザは、ネットワーキングセッションへの参加を要求し、および/またはネットワーキングセッションへの参加の招待などを受信してよい。いくつかの例において、ピアネットワーキングセッションの確立は、たとえば、ピアネットワーキングセッションに含まれるユーザ間での通信(たとえばグループチャットセッションなど)および/または画像および/またはビデオデータの共有を容易にし得る。
【0029】
[1035] ホストデバイス110は、データベース140、クライアントデバイス150、および/または画像捕捉システム160へデータを送信および/またはそこからのデータを受信するように構成された任意の適切なデバイスであってよい。いくつかの実施形態において、ホストデバイス110は、たとえばサーバデバイス(たとえばウェブサーバデバイス)、ネットワーク管理デバイス、管理者デバイスなどとして機能してよい。いくつかの実施形態において、ホストデバイス110は、同じブレード、ラック、および/または施設に集合的に収容された、あるいは複数のブレード、ラック、および/または施設に分散したサーバまたはデバイスのグループであってよい。ホストデバイス110は、少なくともメモリ115、プロセッサ120、および通信インタフェース125(たとえば
図2を参照)を含む。いくつかの実施形態において、メモリ115、プロセッサ120、および通信インタフェース125は、メモリ115、プロセッサ120、および通信インタフェース125の間で信号が送信され得るように接続および/または電気的に結合される。ホストデバイス110は、ユーザデータ、顔認識データ、(たとえば時間、場所、会場、イベントなどに関連する)コンテキストデータ、ビデオストリームなどを格納するように構成されたデータベース140も含んでよく、および/またはこれに動作可能に結合され得る。
【0030】
[1036] メモリ115は、たとえばRAM、メモリバッファ、ハードドライブ、データベース、ROM、EPROM、EEPROMなどであってよい。いくつかの例において、ホストデバイス110のメモリ115は、1または複数の顔認識動作を実行するために用いられる、および/または1または複数の通信モードを用いて少なくとも1つのデバイス(たとえばクライアントデバイス150)とデータを通信(たとえば送信および/または受信)するために用いられる命令またはコードのセットを含む。プロセッサ120は、たとえばGPP、CPU、APU、GPU、ネットワークプロセッサ、フロントエンドプロセッサ、ASIC、FPGAなど任意の適切なプロセッサであってよい。したがってプロセッサ120は、メモリ115内に格納された命令、モジュール、および/またはコードのセットを遂行および/または実行するように構成され得る。たとえばプロセッサ120は、本明細書で詳しく説明するように、特に、(たとえばクライアントデバイス150からの)顔認識データの受信、顔認識データの分析、顔認識データの登録および/または格納、(たとえば画像捕捉システム160からの)ビデオストリームデータの受信、ビデオストリームデータの分析およびビデオストリームデータと顔認識データとの比較、(たとえばクライアントデバイス150への)ビデオストリームデータの送信、ビデオストリームデータの特徴(たとえばビデオストリームデータに含まれる背景ランドマークおよび/または背景風景データなどに基づいて決定された位置情報など)の受信および/または分析、および/または他の任意の適切なプロセスに関連する命令および/またはモジュールのセットを実行するように構成され得る。通信インタフェース125は、ホストデバイス110を、データベース140、クライアントデバイス150、画像捕捉デバイス160、および/またはネットワーク105と通信状態にある他の任意の適切なデバイスおよび/またはサービス(たとえば、顔認識データ、ビデオストリームなどのデータを収集および/または少なくとも一時的に格納するように構成された任意のデバイス)との通信状態に置くことができる任意の適切なデバイスであってよい。いくつかの実施形態において、通信インタフェース125は、たとえばネットワークインタフェースカード(NIC)、イーサネットインタフェース、光搬送波(OC)インタフェース、非同期転送モード(ATM)インタフェース、および/または無線インタフェース(たとえばWiFi(登録商標)無線、Bluetooth(登録商標)無線、NFC無線など)など、1または複数の有線および/または無線インタフェースを含んでよい。
【0031】
[1037]
図1Aを再び参照すると、ホストデバイス110に関連するデータベース140は、たとえばリレーショナルデータベース、オブジェクトデータベース、オブジェクトリレーショナルデータベース、階層型データベース、ネットワークデータベース、エンティティ関係データベース、構造化照会言語(SQL)データベース、拡張マークアップ言語(XML)データベース、デジタルリポジトリ、メディアライブラリ、クラウドサーバまたはストレージなど、任意の適切なデータベースであってよい。いくつかの実施形態において、ホストデバイス110は、通信インタフェース125によって任意の適切なネットワーク(たとえばネットワーク105)を介してデータベース140と通信状態であってよい。そのような実施形態において、データベース140は、ネットワーク105および/または他の任意のネットワーク(複数も可)を介してホストデバイス110と通信することができるネットワーク接続ストレージ(NAS)デバイスに含まれ、または格納され得る。他の実施形態において、データベースは、ホストデバイス110のメモリ115に格納され得る。また他の実施形態において、データベースは、ケーブル、バス、サーバラックなどを介してホストデバイス110に動作可能に結合され得る。
【0032】
[1038] データベース140は、ビデオ認識システム100に関連するデータを格納および/または少なくとも一時的に保持してよい。たとえばいくつかの例において、データベース140は、ユーザプロファイル、リソースリスト、顔認識データ、モード、および/または方法、(たとえば時間、場所、会場、イベントなどに関連する)コンテキストデータ、ビデオストリームまたはその一部、(たとえばランドマークデータなどの)位置情報などに関連する、および/またはこれを表現するデータを格納してよい。すなわち、データベース140は、システム100によって顔画像データが登録されているユーザ(たとえば「登録ユーザ」)に関連するデータを格納してよい。いくつかの実施形態において、データベース140はリレーショナルデータベースであり、および/またはこれを含んでよく、データはたとえば、リレーショナルモデルに従って表、マトリックス、ベクトルなどで格納され得る。例として、いくつかの例において、ホストデバイス110は、ビデオまたは画像供給源(たとえば画像捕捉システム160)から受信したビデオストリームデータおよびビデオストリームデータに関連するコンテキストデータをデータベース140に格納するように構成され得る。いくつかの例において、本明細書で更に詳しく説明するように、ビデオストリームデータおよびそれに関連するコンテキストデータは、集合的にコンテキストビデオストリームなどを定義してよい。他の例において、ビデオストリームデータは、コンテキストデータなどを伴わずにデータベース140に格納され得る。
【0033】
[1039] いくつかの実装において、ユーザプロファイルは、ビデオストリームデータにアクセスするユーザに関する情報を含むユーザプロファイルデータ構造であってよい。たとえばユーザプロファイルデータ構造は、ユーザプロファイル識別子、顔認識データ(たとえば、コンテキストビデオストリームデータからの画像とユーザとをマッチさせるために用いられ得る、ユーザの画像から得られたデータ(たとえば顔特徴データ))、データベース140に格納されたコンテキストビデオストリームデータ構造に関連し、ユーザに関連する識別子のリスト、ユーザが(たとえば友人および/または知人として)関連する他のユーザのユーザプロファイルデータ構造に関連する識別子のリスト、ユーザ位置データなどを含んでよい。
【0034】
[1040] いくつかの実装において、ユーザは、コンテキストビデオストリームデータにアクセスするためのアプリケーション内に互いを友人として追加してよい。またユーザは、たとえば第1のユーザプロファイルに関連するユーザが第2のユーザプロファイルに関連する別のユーザの知人である場合、自動的に関連付けされ得る。たとえば、クライアントデバイスを操作するユーザは、クライアントデバイスに格納された連絡先リストおよび/または他の連絡先情報を有してよい。アプリケーションは、連絡先情報を取得して取り込み、データベース内の少なくとも1つのユーザプロファイルにおける情報と連絡先情報とをマッチさせ、少なくとも1つのユーザプロファイルをそのユーザと自動的に関連付けしてよい。いくつかの実装において、ユーザは、各ユーザの各ユーザプロファイルにおける友人および/または知人のリスト(たとえば、特定のユーザの友人として追加されるユーザプロファイルの識別子のリスト)を格納することによって、互いに関連付けされ得る。ユーザが友人および/または知人を追加すると、ユーザは、友人および/または知人がコンテキストビデオストリームデータなどを記録および/または受信した場合、それを自動的に通知され得る。いくつかの実装において、ホストデバイス110は、ユーザに関連するコンテキストビデオストリームデータを自動的に処理するために(たとえば、ユーザの友人および/または知人がコンテキストビデオストリームデータ内に発見され得るかを決定するために)、格納されたユーザ間の関係を用いてもよい。たとえば、コンテキストビデオストリームデータが受信された時、友人および/または知人がユーザに関連する時などに、ホストデバイス110は、ユーザの友人および/または知人に関連する顔画像データがコンテキストビデオストリームデータとマッチし得るかを決定するためにコンテキストビデオストリームデータを自動的に処理してよい。
【0035】
[1041]
図1を参照すると、ホストデバイス110は、データベース140(たとえば単一のデータベース)を含む、および/またはこれに動作可能に結合されるものとして図示され説明されるが、いくつかの実施形態において、ホストデバイス110は、任意の数のデータベースに動作可能に結合され得る。そのようなデータベースは、システム100に関連するデータセットの少なくとも一部を格納するように構成され得る。たとえばいくつかの実施形態において、ホストデバイス110は、ユーザデータ、ユーザプロファイルなどを受信し少なくとも一時的に格納するように構成された第1のデータベース、およびビデオストリームデータおよびビデオストリームデータに関連するコンテキストデータを受信し少なくとも一時的に格納するように構成された第2のデータベースと動作可能に結合され、および/または通信状態であってよい。いくつかの実施形態において、ホストデバイス110は、クライアントデバイス150および/または画像捕捉システム160に格納されたデータベースと動作可能に結合され、および/または通信状態であってよい。すなわち、データベースの少なくとも一部は、クライアントデバイス150および/または画像捕捉システム160に実装および/または格納され得る。このように、ホストデバイス110、およびいくつかの例においてデータベース140は、ホストデバイス110と(たとえばネットワーク105を介して)通信状態でありながら、ホストデバイス110と異なる位置に物理的に配置され得る任意の数のデータベースと通信状態であってよい。
【0036】
[1042] いくつかの実施形態において、データベース140は、検索可能データベースおよび/またはリポジトリであってよい。たとえばいくつかの例において、データベース140は、ユーザに関連するビデオストリームデータ(たとえばコンテキストビデオストリームデータ)を格納してよい。いくつかの例において、ユーザは、データベース140に格納されたユーザに関連する1または複数のコンテキストビデオストリームを取得および/または視聴するためにデータベース140を検索してよい。いくつかの例において、ユーザは、自身のユーザプロファイルに関連するビデオストリーム(たとえばユーザ指定コンテキストビデオストリームなど)を更新、編集、削除、および/または追加するための限定されたアクセスおよび/または権利を有してよい。いくつかの例において、ユーザはたとえば、そのユーザに関連するユーザ指定ビデオストリームに関連する許可および/またはアクセスを更新および/または修正してよい。たとえばいくつかの例において、ユーザは、ユーザに関連するデータを再配信、共有、および/または保存してよい。他の例において、ユーザは、ユーザ指定データなどへのアクセスをブロックしてよい。いくつかの例において、ユーザは、ユーザと共有された(たとえばユーザと関連する、または関連しない)コンテンツ、データ、および/またはビデオストリームを再配信および/または共有してよい。
【0037】
[1043]
図2を参照すると、上述したように、ホストデバイス110のプロセッサ120は、特定のモジュールを実行するように構成され得る。モジュールはたとえば、ハードウェアモジュール、メモリ115内に格納され、および/またはプロセッサ120において実行されるソフトウェアモジュール、および/またはそれらの任意の組み合わせであってよい。たとえば
図2に示すように、プロセッサ120は、分析モジュール121、データベースモジュール122、提示モジュール123、および位置モジュール124を含み、および/または実行する。
図2に示すように、分析モジュール121、データベースモジュール122、提示モジュール123、および位置モジュールは、接続および/または電気的に結合され得る。その結果、分析モジュール121、データベースモジュール122、提示モジュール123、および位置モジュール124の間で信号が送信され得る。
【0038】
[1044] 分析モジュール121は、ユーザおよび/またはビデオストリームの顔認識に関連するデータを受信および/または収集することに関連する、プロセッサ120によって実行され得る命令のセット(またはその一部)を含む。特に、分析モジュール121は、通信インタフェース125と動作可能に結合され、および/または通信状態であってよく、そこからデータを受信してよい。そのようなデータは、たとえばユーザ(たとえば顔認識情報、プロファイル情報、嗜好、活動ログ、位置情報、連絡先情報、カレンダー情報、ソーシャルメディア活動情報など)、会場(たとえば位置データ、リソースデータ、イベントスケジュール)、イベントなどに関連し得る。本明細書で更に詳しく説明するように、分析モジュール121は、顔認識に関連する任意の数のプロセスを遂行および/または実行するための要求および/または命令に関連する信号を通信インタフェース125から受信してよい。
【0039】
[1045] いくつかの例において、分析モジュール121は、実質的にリアルタイムで通信インタフェース125からのデータを受信してよい。すなわち、いくつかの例において、システム100に含まれる電子デバイス(たとえばクライアントデバイス150)は、ユーザの顔認識に関連するデータを定義および/または更新するためにユーザによって操作され、定義および/または更新されると、ネットワーク105を介してホストデバイス110へデータを送信してよい。したがって、通信インタフェース125は、データを受信すると分析モジュール121へ信号を送信し、分析モジュール121は、電子デバイスによる定義および/または更新後、非常に短い期間でデータを受信する。他の実施形態において、分析モジュール121は、たとえば集計プロセス、現在のおよび/または予測されるプロセッサ、メモリ、および/またはネットワーク負荷などに基づいて、所定の速度などで通信インタフェース125からデータを受信してよい。
【0040】
[1046] 上述したように、分析モジュール121は、顔認識プロセスなどに関連するデータを受信、集計、分析、分類、解析、変更、および/または更新するように構成され得る。具体的には、いくつかの例において、ユーザはクライアントデバイス150を操作して、(本明細書で更に詳しく説明するように)自身の顔の1または複数の画像またはビデオストリームを捕捉することができ、画像データに関連する信号および/または画像データを表す信号を、たとえばネットワーク105を介してホストデバイス110へ送信してよい。いくつかの例において、通信インタフェース125は、画像データを受信し、関連信号を分析モジュール121へ送信してよい。受信すると、分析モジュール121は、画像データを集計、分析、分類、更新、解析、および/または他の方法で処理することに関連する(たとえば分析モジュール121および/またはメモリ115に格納された)命令またはコードのセットを実行してよい。具体的には、分析モジュール121は、たとえば固有顔(たとえば顔認識に関連する固有ベクトル)を用いた主成分分析、線形判別分析、Fisherfaceアルゴリズムを用いた弾性バンチグラフマッチング、隠れマルコフモデル、テンソル表現を用いたマルチリニアサブスペースラーニング、ニューロン動機付け動的リンクマッチング、重畳ニューラルネット(CNN)など、またはそれらの組み合わせなど任意の適切な顔認識プロセスおよび/またはアルゴリズムを実行してよい。いくつかの実装において、ユーザがホストデバイス110へ提供する画像データは、分析モジュール121を介して、ユーザを識別するための後続の顔認識プロセスにおいて用いられ得る。
【0041】
[1047] 分析モジュール121は、たとえば写真、ビデオ記録および/またはオーディオ記録、個人情報および/または識別情報(たとえば氏名、年齢、性別、誕生日、趣味など)、カレンダー情報、(たとえばユーザおよび/またはユーザの友人、家族、同僚などに関連する)連絡先情報、デバイス情報(たとえばメディアアクセスコントロール(MAC)アドレス、インターネットプロトコル(IP)アドレスなど)、位置情報(たとえば現在位置データおよび/または履歴位置データ)、ソーシャルメディア情報(たとえばプロファイル情報、ユーザ名、パスワード、友人または知人リストなど)、および/または他の任意の適切な情報またはデータなど、ユーザの画像データおよびユーザに関連する他の任意の適切な情報またはデータを含むユーザプロファイルなどを定義してよい。このように、分析モジュール121は、本明細書で更に詳しく説明するように、データベース140にユーザプロファイルデータを格納するための命令を示す信号をデータベースモジュール122へ送信してよい。
【0042】
[1048] いくつかの例において、分析モジュール121は、ビデオストリームデータ(または、たとえば写真から得た画像データ)を受信してよく、ビデオストリームデータの一部がユーザの画像データの任意の適切な部分とマッチするかを決定するためにビデオストリームデータを分析および/または処理するように構成され得る。すなわち、分析モジュール121は、ビデオストリームに含まれるデータと比較するテンプレートとして、過去に格納されたユーザ画像データを用いてよい。言い換えると、分析モジュール121は、過去に格納されたユーザ画像データに少なくとも部分的に基づいて、ビデオストリームデータにおける顔認識処理および/または分析を実行する。いくつかの実施形態において、ホストデバイス110、具体的には通信インタフェース125は、画像捕捉システム160からのビデオストリームデータを直接(たとえばネットワーク105を介して1または複数のカメラから)または間接的に(たとえば1または複数のカメラと通信状態であるコンピューティングデバイスからネットワーク105を介して)受信する。いくつかの実施形態において、分析モジュール121は、ビデオストリームデータを個々のフレーム(たとえばビデオストリーム中の所定の時間における静止画)に分割、解析、分類、および/または他の方法で分解することに少なくとも部分的に基づいて、ビデオストリームデータを分析および/または処理するように構成され得る。このように、分析モジュール121は、過去に格納されたユーザ画像データに対し、ビデオストリームフレームに含まれるデータを比較および/または分析してよい。
【0043】
[1049] いくつかの例において、分析モジュール121は、たとえば場所、会場、時間、一致するイベント(たとえば「キスカム」において捕捉される、スポーツチームのゴール得点など)、および/または他の任意の適切なコンテキスト情報など、ビデオストリームに関連するコンテキスト情報を決定するためにビデオストリームデータを分析してもよい。いくつかの例において、分析モジュール121は、ビデオストリームの少なくとも一部をコンテキストデータにマッチさせ、集計し、および/または他の方法で関連付けするように構成され得る。たとえばいくつかの例において、ビデオストリームデータは、たとえばスポーツイベントにおけるユーザを表現してよい。そのような例において、コンテキストデータは、たとえばスポーツイベントまたは試合のビデオストリームであってよく、時間、場所、会場、チームなどに関連するデータを含んでよい。このように、分析モジュール121は、ビデオストリームデータとコンテキストデータとが実質的に一致する(実質的に同時間に発生および/または同時間に関連するデータを捕捉する)ように、ビデオストリームデータおよびコンテキストデータを集計するように構成され得る。他の例において、コンテキストデータは、他の任意の適切なコンテキストに関連するデータを含んでよい。いくつかの例において、分析モジュール121は、ビデオストリームを特定のユーザに更に結び付けるために、ユーザの位置に関するデータとともに、ビデオストリームに関連するコンテキスト情報を用いるように構成され得る。分析モジュール121は、ビデオストリームに含まれるデータと過去に格納されたユーザ画像データとを比較する前に、コンテキスト情報とユーザの位置とを比較するように構成され得る(詳しくは
図5および
図6を参照)。
【0044】
[1050] 分析モジュール121が、ビデオストリーム内のデータの少なくとも一部が基準を満たす(たとえば過去に格納されたユーザ画像データと所定のおよび/または許容可能な確率までマッチする)と決定すると、分析モジュール121は、データベース140内の画像および/またはビデオストリームデータの少なくとも一部を格納し、そのデータを過去に格納されたユーザ画像データと関連付けおよび/または格納する命令を示す1または複数の信号をデータベースモジュール122へ送信してよい。いくつかの例において、分析モジュール121は、個々のフレームがデータベース140に格納され、その後ビデオストリームを定義するために取得および処理され得るように、データベースモジュール122へ信号を送信してよい。他の例において、分析モジュール121は、ビデオストリームデータの一部がデータベース140に格納されるように、データベースモジュール122へ1または複数の信号を送信してよい。すなわち、分析モジュール121は、(上述したように分割または分解された)個々のフレームからビデオストリームを少なくとも部分的に再定義および/または再構築してよい。
【0045】
[1051] いくつかの例において、ホストデバイス110は、(たとえば画像捕捉システム160から、ネットワーク105および通信インタフェース125を介して)ビデオストリームデータを受信してよく、分析モジュール121および/または
図2には示されない他の任意の適切なモジュールは、(上述した)顔認識プロセスを実行する前に1または複数の前処理および/またはプリソート手順を実行してよい。たとえばいくつかの実施形態において、分析モジュール121(または他のモジュール)は、たとえば位置、時間、イベントなどの識別情報および/またはコンテキスト情報を含むデータセットを決定および/または定義するためにビデオストリームデータを分析してよい。定義されると、分析モジュール121は、たとえばビデオストリームに関連するコンテキスト情報を含むデータセットをマッチさせるなど、ユーザに関連するデータの一部が基準(複数も可)を満たすかを決定するために、(たとえばデータベース140などに照会する命令を示す信号をデータベースモジュール122へ送信することによって)データベース140に格納されたユーザデータを分析してよい。
【0046】
[1052] いくつかの例において、基準(複数も可)は、任意の適切な方法(たとえば10進法、パーセンテージなどの値)で表される信頼性レベルおよび/またはマッチング閾値と関連し得る。たとえばいくつかの例において、基準(複数も可)は、たとえばビデオストリームデータとデータベースに格納されたデータの少なくとも一部との70%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との75%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との80%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との85%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との90%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との95%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との97.5%マッチ、ビデオストリームデータとデータベースに格納されたデータの少なくとも一部との99%マッチ、またはそれらの間の任意のパーセンテージといった閾値などであってよい。
【0047】
[1053] いくつかの例において、ユーザに関連するデータは、たとえばカレンダーデータ、位置データ、嗜好データなどを含んでよい。たとえば、データが基準を満たさない場合、分析モジュール121は、ユーザに関連するデータが、たとえば顔認識プロセスから除外され得るというインジケーションを定義してよい。このように、前処理および/またはプリソートは、顔認識プロセスにおける処理負荷の量などを低減させ得る。ユーザデータに関してデータベース140に照会するものとして上述されたが、いくつかの実施形態において、ホストデバイス110は、ユーザに関連するデバイス(たとえばクライアントデバイス150)へ、そのデバイスに関連する位置データなどの要求を示す信号を送信してよい。位置データの受信(たとえば、デバイスのグローバルポジショニングサービス(GPS)データ、画像またはビデオ内のランドマークおよび/または背景風景などの特徴および/または位置情報の使用など)時などに、分析モジュール121は、上述したように、位置データがビデオストリームに関連する位置データとマッチするかを決定してよい。
【0048】
[1054] 例として、いくつかの例において、分析モジュール121は、たとえば競技場に関連する位置データも含む、スポーツイベントからのビデオストリームデータを受信してよい。それに応答して、分析モジュール121は、ユーザに関連するクライアントデバイス(たとえばクライアントデバイス150)からの位置データの要求を送信してよい。たとえば、ビデオストリームに関連する位置データと、クライアントデバイスに関連する位置データとが実質的に同様である(たとえば、ビデオストリームに関連する位置データおよびクライアントデバイスに関連する位置データが、ビデオストリームの供給源およびクライアントデバイスが互いに所定の距離内にあるおよび/またはあったことを示す)場合、および/またはクライアントデバイスに関連する位置データが所定の位置データ値範囲内などにある場合、分析モジュール121は、信頼性スコアを増加させ、および/または、結果が閾値を満たすことに貢献する、および/または基準(複数も可)を満たすものであると見なしてよい。位置データはたとえば、GPSに基づく測位データ、(たとえばNFC照合、Bluetooth照合、セルラ三角測量、コグニティブネットワーク切替えおよび/またはプロトコルなどを介した)ネットワーク位置および/またはデータ、たとえば「チェックイン」などのソーシャルネットワークデータなどであってよい。たとえば位置モジュール124は、ビデオストリームおよび/またはユーザの位置を識別し、分析モジュール121が信頼性スコアを修正することができるように分析モジュール121へデータを提供するために、位置データを処理してよい。このように、信頼性スコアは、位置データに基づいて計算され得る。
【0049】
[1055] 他の実装において、位置モジュール124は、位置データを処理し、ビデオストリームに関連する位置データおよびユーザに関連する位置データが実質的に同様である(たとえば、ビデオストリームに関連する位置データおよびクライアントデバイスに関連する位置データが、ビデオストリームの供給源およびクライアントデバイスが互いに所定の距離内にあるおよび/またはあったことを示す)場合、処理された位置データを分析モジュール121へ提供してよい。分析モジュール121は、その後、位置データおよびビデオストリームの顔認識分析に基づいて信頼性スコアを生成および/または修正してよい。このように、信頼性スコアは、ビデオストリームに関連する位置データおよびユーザに関連する位置データが実質的に同様であると決定された場合、生成および/または修正され、ビデオストリームに関連する位置データおよびユーザに関連する位置データが実質的に同様ではないと決定された場合、生成および/または修正されなくてよい。また、このように信頼性スコアは、位置データ分析および顔認識分析の両方の結果として計算され得る。位置モジュール124の更なる詳細は、少なくとも
図5〜
図6に示され得る。このように、ホストデバイス110は、たとえばビデオストリームデータが捕捉された位置とクライアントデバイスとの近接度を(たとえば分析モジュール121を介して)決定することができる。
【0050】
[1056] 分析モジュール121は、位置データを分析するものとして説明されたが、他の例において、任意の適切な供給源、活動、位置、パターン、購買などに関連するデータを分析してよい。たとえばいくつかの例において、分析モジュール121は、会場に関連するチケット売上を分析してよい。他の例において、分析モジュール121は、ソーシャルメディアのポスト、コメント、ライクなどを分析してよい。いくつかの例において、分析モジュール121は、(上述したように)ユーザに関連するデータを収集および/または分析し、たとえば、特にユーザ識別データ、顔認識データ、クライアントデバイスデータ、購買データ、インターネットウェブ閲覧データ、位置データ、ソーシャルメディアデータ、嗜好データなどを含み得るユーザプロファイルを定義してよい。したがって、ユーザのプロファイルデータは、信頼性スコア、値、および/またはインジケータを決定するために分析され、これは、ユーザデータおよび/またはビデオストリームデータが基準(複数も可)を満たすかを決定するために閾値スコア、値、および/またはインジケータに対して評価され得る。したがって、そのような実施形態において、非顔認識データ(たとえばチケット売上データ、ソーシャルメディアポスト、および/または、たとえばビデオまたは画像内の個人の服装などの特徴、たとえば画像内のランドマークなどの位置データ、背景風景データなど)は、顔認識データを裏付け、および/または信頼性スコアを増加/低減するために用いられ得る。
【0051】
[1057] 分析モジュール121は、ビデオストリームに関連する顔認識データおよびコンテキストデータを定義するためにビデオストリームデータを分析するものとして上述されたが、他の実施形態において、顔認識プロセスおよびコンテキストデータプロセスは、個別におよび/または独立して実行され得る。たとえばいくつかの実施形態において、分析モジュール121は顔認識プロセスを実行するように構成され、異なるモジュール、プロセッサ、デバイス、サーバなどはコンテキストデータプロセスを実行するように構成され得る。たとえば位置モジュール124が、位置データ、画像の特徴などに基づいて、画像および/またはビデオストリームの分析を実行してよい。したがって、顔認識プロセスおよびコンテキストデータプロセスが同じモジュールによって実行される場合と比べて、ビデオストリームデータを分析するための時間が低減され、および/または処理負荷が分散され得る。
【0052】
[1058] 上述したように、データベースモジュール122は、データベース140の監視および/またはそこに格納されたデータの更新に関連する、プロセッサ120によって実行される命令のセット(またはその一部)を含む。たとえばデータベースモジュール122は、プロセッサ120に、データベース140に格納されたデータを、分析モジュール121から受信した顔認識データの少なくとも一部を用いて更新させる命令を含んでよい。具体的には、データベースモジュール122は、たとえば分析モジュール121からユーザに関連するユーザ画像データを受信し、それに応答して、データベース140にユーザ画像データを格納してよい。いくつかの例において、データベースモジュール122は、上述したように、データベース140に格納されユーザに関するユーザ画像データに関連するデータが、ビデオストリームデータの任意の適切な部分とマッチするかを決定するためにデータベース140に照会する要求を示す信号を分析モジュール121から受信してよい。たとえば、ビデオストリームデータの少なくとも一部が基準(複数も可)(以後、簡略化のために単数形の「基準」と称するが複数の基準を除外するものではない)を満たす場合、データベースモジュール122は、そのユーザに関連する、データベース140に格納されたデータを更新するように構成され得る。すなわち、ビデオストリームデータの少なくとも一部が、所定の確率の範囲内などでユーザ画像データにマッチする場合である。しかし、ビデオストリームデータが、データベース140に格納されたユーザ画像データにマッチしない場合、データベースモジュール122は、たとえば次のエントリ(たとえば次のユーザに関連するデータ)に関してデータベース140に照会し、および/またはデータベース140を更新しなくてよい。また、データベースモジュール122は、リレーショナルベース方式で(たとえばデータベース140はリレーショナルデータベースなどであってよく)、および/または他の任意の適切な方法でデータベース140にデータを格納するように構成され得る。
【0053】
[1059] 提示モジュール123は、上述したように、コンテキストビデオストリームを定義すること、および/または顔認識プロセス中にビデオストリームデータの少なくとも一部が基準を満たすことを表す提示に関連する、プロセッサによって実行される命令のセット(またはその一部)を含む。具体的には、提示モジュール123は、コンテキストビデオストリームおよび/またはイベント、会場、場所などにおける(顔認識によって)識別されたユーザを表す提示を定義するように構成され得る。コンテキストビデオストリームが定義されると、提示モジュール123は、コンテキストビデオストリームに関連する信号を通信インタフェース125へ送信してよく、通信インタフェース125は、コンテキストビデオストリームをディスプレイにグラフィックレンダリングする命令を示す信号を(たとえばネットワーク105を介して)クライアントデバイス150へ送信してよい。
【0054】
[1060] 提示モジュール123および/またはホストデバイス110の他の部分は、クライアントデバイス150のディスプレイにコンテキストビデオストリームを提示する命令を示す信号をクライアントデバイス150へ送信するものとして上述されたが、他の例において、提示モジュール123は、コンテキストビデオストリームを定義し、データベース140にコンテキストビデオストリームを格納する命令を示す信号をデータベースモジュール122へ送信してよい。そのような例において、コンテキストビデオストリームに関連するデータは、データベース140に格納されたユーザデータとともに格納され、および/または関連付けされ得る。いくつかの例において、ホストデバイス110は、クライアントデバイス150(および/または他の任意の適切なデバイス)からの要求に応答して、データベース140からコンテキストビデオストリームを取得してよい。具体的には、いくつかの実施形態において、ユーザは、クライアントデバイス150を操作し、ウェブページまたはインターネットにアクセスしてよい。認証(たとえばクレデンシャルの入力など)後、ユーザは、コンテキストビデオストリームへのアクセス要求がクライアントデバイス150からホストデバイス110へ送信されるように、ウェブページとインタラクトしてよい。したがって、ホストデバイス110(たとえばデータベースモジュール122)は、データベース140からコンテキストビデオストリームを取得し、(たとえばインターネットおよびウェブページを介してコンテキストビデオストリームをレンダリングすることによって)コンテキストビデオストリームをディスプレイに提示するために動作可能なクライアントデバイス150へ信号を送信してよい。すなわち、コンテキストビデオストリームは「クラウド」に格納され、ウェブブラウザおよびインターネットを介してアクセスされ得る。
【0055】
[1061] 分析モジュール121、データベースモジュール122、および提示モジュール123は、ホストデバイス110において格納および/または実行されるものとして上述されたが、他の実施形態において、モジュールのいずれかは、たとえばクライアントデバイス150および/または画像捕捉システム160において格納および/または実行され得る。たとえばいくつかの実施形態において、クライアントデバイス150は、提示モジュールを(たとえばネイティブアプリケーションとして)含み、定義し、および/または格納してよい。提示モジュールは、ホストデバイス110の提示モジュール123と同一または実質的に同様であってよい。そのような実施形態において、クライアントデバイス150の提示モジュールは、ホストデバイス110において含まれおよび/または実行される提示モジュール123の機能を代替してよい。したがって、クライアントデバイス150の提示モジュールは、たとえば、コンテキストビデオストリームに関連するデータセットを受信し、受信すると、クライアントデバイス150のディスプレイに提示されるプレゼンテーションを定義してよい。
【0056】
[1062]
図3は、実施形態に係る、コンテキストビデオストリームを定義する方法300を示すフローチャートである。方法300は、302において、ホストデバイスにおいて、ユーザに関連する顔画像データを登録する要求を示す信号をクライアントデバイスからネットワークを介して受信することを含む。たとえばいくつかの実施形態において、ネットワークは、たとえば
図1に関して上述したネットワーク105など、任意の適切なネットワークまたはネットワークの組み合わせであってよい。ホストデバイスは、
図1および
図2に関して上述したホストデバイス110と同一または実質的に同様であってよい。同様に、クライアントデバイスは、
図1〜
図2に関して上述したクライアントデバイス150と同一または実質的に同様であってよい。いくつかの例において、クライアントデバイスは、初期顔画像データを捕捉し、初期顔画像データをホストデバイスへ送信してよい。具体的には、いくつかの実施形態において、クライアントデバイスは、ユーザの顔画像または複数の画像を任意の適切な方法で捕捉するように構成され得る。したがって、ホストデバイスは、クライアントデバイスから顔画像データを受信し、ユーザおよび/またはユーザの顔画像データの登録に関連する任意の適切なプロセスなどを実行してよい。
【0057】
[1063] 方法300は、304において、ユーザに関連する顔認識データを登録すること、およびホストデバイスと通信状態であるデータベースに顔認識データを格納することを含む。データベースは、たとえば
図1を参照して上述したデータベース140など、任意の適切なデータベースであってよい。顔認識データの登録は、たとえば上述したもののような顔認識に関連する任意の適切なプロセス、方法、および/またはアルゴリズムを含んでよい。いくつかの例において、ホストデバイスは、顔認識に基づいてユーザ画像データなどを定義するように構成され、ユーザ画像データの少なくとも一部をデータベースに格納してよい。
【0058】
[1064] 306において、ホストデバイスは、イベントおよび/または位置に関連するコンテキストビデオストリームデータを受信する。ホストデバイスは、たとえば
図1に関して上述した画像捕捉システム160(たとえばカメラおよび/またはクライアントデバイス)などの画像捕捉システムからコンテキストビデオストリームデータを受信してよい。具体的には、ホストデバイスは、直接(たとえば、ネットワークを介して1または複数のカメラから)、または間接的に(たとえば、1または複数のカメラと通信状態であるコンピューティングデバイスからネットワークを介して)コンテキストビデオストリームデータを受信してよい。
【0059】
[1065] 1つの例において、カメラは、コンテキストビデオストリームデータを記録し、コンテキストビデオストリームデータをホストデバイスへ送信してよい。他の例において、ユーザは、ユーザによって操作されるクライアントデバイスで実行中のアプリケーションによって(たとえば、クライアントデバイスで実行中のアプリケーション内のユーザ生成コンテンツ(UGC)インタフェースを介して)ビデオを記録してよい。アプリケーションによる記録を(たとえばUGCインタフェースにおける「記録」および/または同様のボタンをクリックすることによって)開始することによって、ユーザはコンテキストビデオストリームを記録することができ、それを用いてクライアントデバイスは、位置データ(たとえば測位、近距離通信(NFC)からのデータ、他のデバイスとのBluetooth通信からのデータ、セルラ三角測量、イベントおよび/または位置チェックインデータ、および/またはネットワークWiFi接続情報)を、コンテキストビデオストリームに関連付けてよい。具体的には、コンテキストビデオストリームは、位置データにタグ付けされ、および/または位置データをカプセル化するデータ構造に関連付けされ得る。
【0060】
[1066] 308において、コンテキストビデオストリームデータは、コンテキストビデオストリームデータが、コンテキストビデオストリームデータ内の顔画像データの顔認識に関連する基準を満たすかを決定するために分析される。たとえばホストデバイスは、コンテキストビデオストリームデータ(または、たとえば写真から得た画像データ)を受信し、コンテキストビデオストリームデータの一部が顔画像データの任意の適切な部分にマッチするかを決定するために、コンテキストビデオストリームデータを分析および/または処理してよい。すなわち、ホストデバイスは、顔画像データを、コンテキストビデオストリームに含まれるデータと比較するテンプレートとして用いてよい。言い換えると、ホストデバイスは、顔画像データに少なくとも部分的に基づいて、コンテキストビデオストリームデータに顔認識プロセスおよび/または分析を実行する。いくつかの例において、基準はたとえば、所定のおよび/または許容可能な確率の範囲内のコンテキストビデオストリームデータと顔画像データとのマッチングに関連してよい。いくつかの実施形態において、ホストデバイスは、コンテキストビデオストリームデータを個々のフレーム(たとえば、ビデオストリーム中の所定の時間における静止画像)に分割、解析、分類、および/または他の方法で分解することに少なくとも部分的に基づいて、コンテキストビデオストリームデータを分析および/または処理するように構成され得る。このように、ホストデバイスは、コンテキストビデオストリームフレームに含まれるデータを顔画像データに対して比較および/または分析してよい。
【0061】
[1067] いくつかの例において、コンテキストビデオストリームデータの分析は、たとえば場所、会場、時間、一致するイベント(たとえば、「キスカム」において捕捉される、スポーツチームのゴール得点など)、画像内のランドマーク、および/または他の任意の適切なコンテキスト情報などのビデオストリームに関連するコンテキスト情報を決定するためにコンテキストビデオストリームを分析することも含む。いくつかの例において、ホストデバイスは、ビデオストリームの少なくとも一部をコンテキストデータにマッチ、集計、および/または他の方法で関連付けするように構成され得る。たとえばいくつかの例において、ビデオストリームデータは、たとえばスポーツイベントにおけるユーザを表現してよい。そのような例において、コンテキストデータは、たとえばスポーツイベントのビデオストリームであってよく、時間、場所、会場、チームなどに関連するデータを含んでよい。このように、ホストデバイスは、ビデオストリームデータおよびコンテキストデータが実質的に一致する(たとえば実質的に同じ時間に発生および/または同じ時間に関連するデータを捕捉する)ように、ビデオストリームおよびコンテキストデータを集計するように構成され得る。他の例において、コンテキストデータは、他の任意の適切なコンテキストに関連するデータを含んでよい。
【0062】
[1068] 310において、コンテキストビデオストリームデータ内の顔画像データの顔認識に関連する基準が満たされた場合、ユーザのコンテキストビデオストリームが定義される。たとえば、ホストデバイスは、コンテキストビデオストリーム内のデータの少なくとも一部が基準を満たす(たとえば所定および/または許容可能な確率まで顔画像データとマッチする)と決定すると、ユーザのコンテキストビデオストリームを定義し、ユーザのコンテキストビデオストリームをデータベースに格納してよい。ユーザのコンテキストビデオストリームが定義されると、312において、ホストデバイスは、(たとえば、クライアントデバイスにインスタンスが生成されたインタフェース内にコンテキストビデオストリームをグラフィックレンダリングすることによって)クライアントデバイスのディスプレイにユーザのコンテキストビデオストリームを提示する命令を示す信号を送信する。たとえばいくつかの実施形態において、ホストデバイスは、クライアントデバイスのディスプレイにユーザのコンテキストビデオストリームを提示するために動作可能なクライアントデバイスへ、ネットワークを介して信号を送信してよい。他の実施形態において、ホストデバイスは、コンテキストビデオストリームを(たとえばデータベースなどに)格納し、クライアントデバイス(および/または他の任意の適切なデバイス)からの要求に応答して、データベースからユーザのコンテキストビデオストリームを取得するように構成され得る。具体的には、いくつかの実施形態において、ユーザはクライアントデバイスを操作し、インターネット上のウェブページにアクセスしてよい。認証(たとえばクレデンシャルの入力など)後、ユーザは、コンテキストビデオストリームへのアクセス要求がクライアントデバイスからホストデバイスへ送信されるようにウェブページとインタラクトしてよい。このように、ホストデバイスは、コンテキストビデオストリームをデータベースから取得し、(たとえば、インターネットおよびウェブページを介してコンテキストビデオストリームをグラフィックレンダリングすることによって)ディスプレイにコンテキストビデオストリームを提示するために動作可能なクライアントデバイスへ信号を送信してよい。すなわち、コンテキストビデオストリームは「クラウド」に格納され、ウェブブラウザおよびインターネットを介してアクセスされ得る。
【0063】
[1069] 他の実装において、コンテキストビデオストリームが基準を満たす場合(たとえば、コンテキストビデオストリームが、所定の確率までユーザの画像データとマッチする場合など)、ホストデバイスは、コンテキストビデオストリームデータを自動的にユーザへ送信してよい。たとえばいくつかの実装において、ユーザは、クライアントデバイスを操作し、そのユーザに関するユーザ位置データを追跡するアプリケーションのインスタンスを生成してもよい。画像捕捉デバイス(たとえば自律カメラおよび/または他のユーザなど)がコンテキストビデオストリームデータを記録すると、ホストデバイスは、ユーザに関連する顔画像データおよびコンテキストビデオストリームの顔分析に基づいて、コンテキストビデオストリームデータがユーザとマッチすることを決定してよい。ユーザのクライアントデバイスは、ユーザおよびクライアントデバイスに関連する位置データをホストデバイスへ送信することもできる。ホストデバイスは、顔分析および位置情報の両方を用いて、コンテキストビデオストリーム内にユーザが出現する確率を精密化してよい。ユーザがコンテキストビデオストリーム内に出現する確率が基準を満たす(たとえば所定の閾値を超えるなどの)場合、ホストデバイスは、コンテキストビデオストリームデータをユーザへ送信してよい。あるいはホストデバイスは、ユーザの位置情報がコンテキストビデオストリームの位置情報と実質的に同様である場合に確率が計算されるように、位置情報に基づいてコンテキストビデオストリームをプリフィルタしてよく、コンテキストビデオストリームの位置データがユーザの位置情報と実質的に同様ではない場合、確率を計算しない。
【0064】
[1070] 他の実装において、コンテキストビデオストリームが基準を満たす場合(たとえば、コンテキストビデオストリームが、所定の確率までユーザの顔画像データとマッチする場合など)、ホストデバイスは、コンテキストビデオストリームデータを格納し、ユーザとビデオとのインタラクションに基づいて、コンテキストビデオストリームデータをユーザに関連付けしてよい。たとえばいくつかの実装において、ユーザは、コンテキストビデオストリームデータを検索および/またはこれにアクセスするために、ユーザに関連するクライアントデバイスにインスタンスが生成されたアプリケーションにアクセスしてよい。ユーザはたとえば、そのユーザに関連する別のユーザのユーザプロファイル内のコンテキストビデオストリームデータを視聴し、および/または、アプリケーションのインタフェース内で視聴するコンテキストビデオストリームデータを検索してよい。アプリケーション内でユーザがコンテキストビデオストリームデータにアクセスすると、アプリケーションは、ユーザがコンテキストビデオストリームデータにアクセスしていることを示す信号をホストデバイスへ送信してよい。ホストデバイスは、そのユーザに関連する顔画像データに基づいてコンテキストビデオストリームデータの顔分析が実行されたか否かを自動的に決定し、ユーザの顔画像データがコンテキストビデオストリームデータと過去に比較されていない場合、そのユーザの顔画像データに基づいてコンテキストビデオストリームデータの顔分析を自動的に実行してよい。このように、ホストデバイスは、ユーザがコンテキストビデオストリームデータにアクセスしようと試みるまで、コンテキストビデオストリームデータ内のユーザを識別するためにコンテキストビデオストリームデータを処理することを遅延させ得る。
【0065】
[1071] いくつかの例において、ユーザは、イベント後にイベントを検索し、そのイベントに「チェックイン」してよい。たとえばユーザは、(たとえばイベントのリストを閲覧すること、マップ上でイベントの位置を閲覧することなどによって)イベントを識別し、イベントを選択してよい。ユーザのイベント選択に基づいて、ホストデバイスは、ユーザの顔画像データに基づいて、そのイベントに関連するビデオストリームおよび/または画像の顔分析を実行してよい。ホストデバイスが、ビデオストリームおよび/または画像が(たとえば所定の確率内で)ユーザを含むことを識別した場合、ホストデバイスは、そのようなビデオストリームおよび/または画像をユーザへ提供してよい。
【0066】
[1072] 方法300は、ビデオストリーム、画像データ、コンテキストデータなどを送信および/または受信し、ユーザ指定ビデオストリームおよび/または画像データを1または複数のユーザに提示および/または共有するものとして上述されたが、システムは、ビデオストリームデータおよび/または画像データが任意の適切な方法で捕捉され、任意の適切なデバイスによって分析され、任意の適切なユーザまたはユーザデバイスに送信および/または共有され得るように構成され得ることを理解すべきである。例として、いくつかの例において、ユーザはユーザデバイス(たとえばクライアントデバイス150などのクライアントデバイス)を操作し、ユーザの顔画像を捕捉してよい。たとえばユーザは、(たとえば、ユーザまたはクライアントデバイスがスマートフォンまたは他のモバイルまたは装着型電子デバイスである場合)モバイルアプリケーションを開き、クライアントデバイスのカメラを介して顔画像(たとえば「セルフィ」)を捕捉してよい。すなわち、ユーザは、セルフィを撮るためにアプリケーションを介してクライアントデバイスのカメラを制御してよい。そのようなセルフィはユーザを登録するために提供されてよく、それによってアプリケーションは、ユーザの顔認識データ(たとえば顔特徴特性)を識別することができる。この顔認識データは、今後受信されるビデオおよび/または画像内のユーザを識別するために用いられ得る。
【0067】
[1073] いくつかの例において、ユーザは、アプリケーションを介してコンテンツ(たとえば画像データおよび/またはビデオストリーム)を捕捉してよい。上述したように、コンテンツは、たとえばスポーツイベントにおける1または複数の人間など、所与のコンテキストにおける1または複数の人間のビデオストリームであってよい。いくつかの例において、ユーザ捕捉(たとえば生成)コンテンツは、たとえば時間、日付、会場、イベントなどのコンテキストデータに関連付けされ、および/またはデータおよび/またはメタデータにタグ付けされ得る。他の例において、ユーザ生成コンテンツは、コンテキストデータに関連付けされる必要はない。ユーザ生成コンテンツ(たとえばビデオストリームデータなど)は、任意の登録ユーザ(たとえばデータベースに格納されたユーザプロファイルを有する任意のユーザ)の存在を決定するために、クライアントデバイスまたはホストデバイスを介して顔認識および/または他の画像分析によって分析され得る。ビデオストリーム内で登録ユーザが識別された場合、ユーザ、クライアントデバイス、および/またはホストデバイスは、識別されたユーザの1または複数に関連するユーザ指定ビデオストリームを定義してよい。ユーザ、クライアントデバイス、および/またはホストデバイスはその後、ユーザ指定ビデオストリームを識別された各ユーザと共有するかを決定してよい。いくつかの例において、ユーザ指定ビデオストリーム(複数も可)の共有は、ユーザプロファイルおよび/または嗜好に基づいて、および/またはモバイルアプリケーションまたはアカウント内の設定などに基づいて自動的であってよい。他の例において、ユーザ指定ビデオストリーム(複数も可)の共有は、ユーザによる操作または他の入力に基づいて(たとえば選択などに基づいて)よい。また他の例において、ユーザ指定ビデオストリーム(複数も可)の共有は、ピアネットワーキングセッションに基づいてよく、セッション内で、各ユーザ(またはピアネットワーキングセッションにおいて用いられる各クライアントデバイス)は、ユーザ指定ビデオストリームを受信する。このように、ユーザ生成コンテンツ(たとえばユーザが捕捉したビデオストリームおよび/または画像データ)は、本明細書で説明される方法と同様に捕捉、分析、および/または共有され得る。
【0068】
[1074]
図4は、実施形態に係る、たとえばユーザに関連するモバイルデバイスにコンテキストビデオストリームを提示する方法を示すフローチャートである。いくつかの例において、ビデオファイル(複数も可)および/またはフォトファイル(複数も可)は、メディアアップローダ485にアップロードされ得る。メディアアップローダ485は、たとえば
図1A、
図1B、および
図2に関して上述したホストデバイス110など、ビデオおよび/または画像ファイルを受信および/または処理するように構成された任意の適切なデバイスであってよい。その後、マスタビデオおよび/またはフォトファイルは、マスタメディアストレージ486に格納される。マスタメディアストレージ486は、任意の適切なストレージデバイスであってよい。たとえばマスタメディアストレージ486は、メディアアップローダ485に含まれるメモリに含まれ、および/またはその一部であってよい。他の実施形態において、マスタメディアストレージ486は、たとえば
図1Aおよび
図1Bに関して上述したデータベース140などのデータベースであってよい。
【0069】
[1075] いくつかの例において、マスタビデオファイルは、マスタメディアストレージ486からビデオエンコーダ487へ送信され得る。ビデオエンコーダ487は、マスタビデオファイルを1または複数の所望のフォーマットに変換するように構成された任意の適切なデバイスまたはデバイスの一部であってよい。たとえば
図4に示すように、ビデオエンコーダ487は、マスタビデオファイルを顔認識ビデオおよびモバイル対応ビデオファイルに変換してよく、その各々がマスタメディアストレージ486に格納される。1または複数の顔認識ビデオファイルおよび/またはフォトファイルのリストはその後、ワークフローコンダクタ488へ送信され、ワークフローコンダクタ488は、本明細書で更に詳しく説明するように、続いてファイルが処理される順番を優先順位付け、編成、および/または他の方法で制御し、顔認識ビデオファイル(複数も可)および/またはフォトファイル(複数も可)の処理を開始するために動作可能な信号を、顔検出およびマッチングプロセッサ491(たとえば、
図2に関して上述した分析モジュール121などのプロセッサ、モジュール、デバイスなど)へ送信してよい。また、ワークフローに関連するインジケーションがワークフローコンダクタ488からデータベース493へ送信されてよく、データベース493は、本明細書で更に詳しく説明するように、ワークフローに関連するインジケーションを格納し、インジケーションに関連するデータをウェブサービスプロセッサ494(たとえばインターネットウェブサイトサービスプロバイダ、プロセッサ、モジュール、および/またはデバイス)へ送信してよい。
【0070】
[1076]
図4に示すように、モバイル対応ビデオファイルは、マスタメディアストレージ486からビデオクリップカッタ489へ送信され、ビデオクリップカッタ489は、本明細書で更に詳しく説明するように、認識イベントに関連するデータも受信し得る。マスタビデオファイルまたはフォトファイルは、マスタメディアストレージ486からサムネイルリサイザ490へ送信され、サムネイルリサイザ490は、本明細書で更に詳しく説明するように、認識イベントに関連するデータも受信し得る。顔認識ビデオまたはフォトファイル(複数も可)は、マスタメディアストレージ486から顔検出およびマッチングプロセッサ491へ送信され、顔検出およびマッチングプロセッサ491は、認識イベントを定義するために任意の適切な顔認識プロセスを実行してよい。また、顔検出およびマッチングプロセッサ491は、ワークフローコンダクタ488によって定義された優先順位および/または順序に従って、顔認識ビデオおよび/またはフォトファイルを分析および/または処理してよい。
【0071】
[1077] 上述したように、認識イベントに関連するデータは、その後、顔検出およびマッチングプロセッサ491からビデオクリップカッタ489およびサムネイルリサイザ490へ送信され得る。ビデオクリップカッタ489は、モバイル対応ビデオファイルを受信し、その後、顔認識ビデオおよび/またはフォト内のユーザの認識イベントに関連するビデオクリップをトリミング、切出し、抽出、分離、および/または他の方法で定義することができる任意の適切なプロセッサ、モジュール、および/またはデバイスであってよい。ユーザの認識イベントに関連するビデオクリップはその後、ビデオクリップカッタ489からモバイル対応メディアストレージ492へ送信され得る。サムネイルリサイザ490は、マスタビデオおよび/またはフォトファイル(複数も可)を受信し、その後、1または複数のサムネイル(たとえば、大きな画像および/またはビデオに関連し、および/またはそれを示し得る、比較的小さなファイルサイズの小さな画像)を定義することができる任意の適切なプロセッサ、モジュール、および/またはデバイスであってよい。この実施形態において、サムネイルは、認識イベントに関連し、および/または認識イベントを示してよく、サムネイルリサイザ490からモバイル対応メディアストレージ492へ送信され得る。
【0072】
[1078]
図4に示すように、ビデオクリップおよびサムネイルは、モバイル対応メディアストレージ492から、たとえば1または複数のモバイルアプリケーションおよび/またはウェブサイト495へ送信され得る。たとえばいくつかの例において、ビデオクリップおよびサムネイルは、ビデオクリップおよびサムネイルをウェブサイトなどに提示することができるインターネットサーバなどへ送信され得る。他の例において、ビデオクリップおよびサムネイルは、(たとえばモバイルアプリケーションが開かれ、選択され、実行中などの場合に)ビデオクリップおよびサムネイルをディスプレイに提示することができる、ユーザに関連するクライアントデバイスへ送信され得る。また、(上述した)ワークフローのインジケーションに関連するメタデータ(たとえば、ユーザアイデンティティ、イベントのアイデンティティ、イベントの場所、クライアントデバイスの場所など)などが、ウェブサービスプロセッサ494からモバイルアプリケーションおよび/またはウェブサイト495へ送信され得る。このように、ユーザのビデオクリップおよびそれに伴う任意のコンテキストおよび/またはメタデータは、モバイルアプリケーションおよび/またはウェブサイトを介してユーザへ送信および/またはユーザによってアクセスされ得る。
【0073】
[1079]
図5は、実施形態に係る、メディア内のコンテキスト情報を捕捉する(たとえば
図1に示す画像捕捉システム160と同様の)画像捕捉システム560の図である。最初に、画像捕捉システム560は、会場の画像および/またはビデオを捕捉してよい。画像捕捉システム560は、たとえば会場の画像および/またはビデオ内の背景ランドマーク、壁、床、設計要素、家具などの独自の特徴といった特徴を識別してよい。画像捕捉システム560は、これらの(本明細書においてランドマークデータおよび/または情報とも称される)特徴をホストデバイス510へ送信してよく、ホストデバイス510は、この情報を(たとえばデータベースに)格納してよい。ホストデバイス510は、会場の位置情報に関連してこの情報を格納してよい。言い換えると、ホストデバイス510は、ランドマーク情報が会場におけるランドマークの位置と関連付けされるようにランドマーク情報を格納してよい。
【0074】
[1080] いくつかの(
図1〜
図4において説明するような)実装において、画像捕捉システム560は、ユーザ502を含むメディア(たとえばビデオストリーム、写真、および/または他のメディア)を捕捉してよい。ユーザ502は、たとえばモバイルデバイスが会場に関連する信号および/またはWiFiネットワークを検出すると、位置データ506(たとえばグローバルポジショニングシステム(GPS)座標、アクセスポイントの範囲内にあることを示すWiFi信号、NFC信号情報、iBeaconの範囲内にあることを示すBluetooth通信、セルラ三角測量情報、コンテンツ捕捉地点からの距離を推定するコグニティブネットワーク切替えおよびプロトコル情報、たとえば座席番号またはセクションなど会場内の位置に関連する位置データ、および/または同様の位置データ)をホストデバイス110へ送信するように構成されたモバイルアプリケーションを含むモバイルデバイス504を使用してよい。いくつかの実装において、モバイルアプリケーションは、iBeacon(および/または他のデバイスへ情報を伝送するように構成された同様のデバイス)とインタラクトするように構成され、ホストデバイス110へ位置データ(たとえばiBeacon識別子、モバイルデバイスGPSデータ、および/または他のそのような情報など)を送信するように構成され得る。
【0075】
[1081] 画像捕捉システム160によって捕捉されたメディア508(たとえば写真、ビデオ、および/または関連メディアファイル)は、ユーザ502の画像またはビデオとともに、建物、会場の特徴、物体、背景ランドマーク、および/またはシーンの背景510の他の態様を含んでよい。たとえばメディアは、ユーザ502だけではなく、スポーツ会場におけるユーザ502の隣の座席、メディアの背景にあり(たとえば会場内の)特定の場所に関連するランドマーク、標識、および/または他のそのような情報(たとえば壁、床、設計要素、家具などの独自の特徴)を含んでよい。ホストデバイス110は、ユーザ502がメディア内に出現する可能性が高いことを更に確認するためにユーザの位置データとともに背景を用いてよい。具体的には、いくつかの例において、ホストデバイス510の(たとえば
図2に示す分析モジュール121と同様の)分析モジュールは、たとえば風景および/または他の(ランドマークデータとも称される)背景の非人物データをビデオストリームから抽出するために、ビデオストリームに画像処理を実行してよい。たとえば分析モジュールは、メディア内の座席番号200を検出するために画像処理技術を用いてよい。ホストデバイス510の(たとえば
図2に示す124と同様の)位置モジュールは、ビデオストリームの位置を推定するために、抽出されたデータと、(たとえばメタデータ、キーワード、および/または過去に格納された位置画像の画像処理を用いて)データベース内の位置データとをマッチさせ得る。たとえば位置モジュールは、メディア内でユーザ502が座って現れる座席514を推定するために座席番号200を用いてよく、会場内の座席の位置に基づいてメディアが捕捉された概略位置を決定してよい。他の例として、位置モジュールは、ビデオストリーム内のランドマークデータと、ホストデバイス510によって過去に捕捉された画像および/またはビデオとを比較してよい。ホストデバイス510によって格納されたランドマークデータと位置との関連性によって、ホストデバイス510は、ビデオストリームの位置を識別し得る。
【0076】
[1082] いくつかの例において、ユーザは会場にチェックインすることもできる。具体的には、ユーザのモバイルデバイスは、ユーザに関する位置情報(たとえばユーザのモバイルデバイスのGPS座標、iBeaconの識別子、NFCタグ、セルラネットワーク、WiFiおよび/または他のネットワーク、および/またはモバイルデバイスに近接している同様のデバイスなど)を含むメッセージを送信してよい。位置モジュールは、ユーザのアカウントデータに位置データを格納してよい。位置モジュールがビデオストリームおよびユーザの位置を決定した後、位置モジュールは、ユーザ502が実際に座席208に座っていた可能性を決定するために、ユーザのモバイルデバイスによって提供された位置データと座席208とを比較してよい。たとえば位置モジュールは、最も新しい位置データがメディアの推定位置と厳密にマッチする(たとえば、最新位置データがメディアの推定位置から所定のメートル数範囲内にあるなどの)ユーザの記録を取得してよい。取得されたユーザ記録ごとに、分析モジュールは、メディア内にユーザが出現するかを決定するために、たとえば比較用のユーザ画像データを用いてメディアに顔認識を実行してよい。この情報に基づいて、ホストデバイスは、特定の位置においてメディア内に自身の画像が捕捉されたユーザのリストを決定し、この低減されたユーザのプールから、メディア内の人物とユーザリスト内のユーザ502のいずれかとのポジティブマッチが成立したかを決定してよい。いくつかの例において、その後、低減されたユーザのプール(たとえば、ランドマーク情報および/またはユーザデバイス位置情報に基づく概略エリア内にいると識別されたユーザ)のうちどのユーザがメディア内で識別されるかを識別するために、画像に顔認識が実行され得る。ランドマークデータおよびユーザデバイス位置情報を用いてユーザのプールを低減することによって、顔認識を用いた時のフォールスポジティブの数が低減される。いくつかの実装において、ホストデバイスは、データベース内のビデオストリームを格納および/または破棄(たとえば格納せずおよび/または削除)するか否かを決定するために、顔認識分析および位置データを用いてよい。他の実装において、ホストデバイスは、ビデオストリームが特定のユーザとマッチし得るか否かにかかわらず、ビデオストリームを格納してよい。ホストデバイスはその後、ビデオストリームにおいてユーザが識別され得るか否かを決定するために、ユーザデバイス位置およびユーザに関連する顔認識データが、ランドマークおよび/または他の位置データと併用された場合、ビデオストリームを特定のユーザに関連付けしてよい。
【0077】
[1083]
図6は、実施形態に係る、メディア内でユーザを識別するためにメディア内のコンテキスト情報および位置データを使用することを示す論理フロー図である。いくつかの実装において、たとえばユーザのモバイルデバイス504は、602において、(たとえば、位置データおよび/またはiBeacon識別子を(
図1に示す)ホストデバイス110へ送信することによって)会場および/または他の場所に「チェックイン」してよい。これによって、会場および/またはビデオ認識システムに関連するホストデバイス(たとえば
図1のホストデバイス110)に、ユーザが会場および/またはイベントにいるというインジケーションが提供され得る。また、これによって、会場および/またはイベントにおけるユーザの位置のインジケーションが提供され得る。いくつかの実装において、モバイルデバイス504は、デバイスに格納されたモバイルアプリケーションを介して、ホストデバイス110へ更新されたGPSデータを定期的に送信するように構成され、および/または、モバイルデバイス504がiBeacon、WiFiホットスポット、および/または同様のデバイスの近傍に到来すると、ホストデバイス110へ位置データを送信するように促され得る。ホストデバイス110は、位置データをデータベース140に格納604してよい。
【0078】
[1084] いくつかの実装において、ユーザのモバイルデバイスがチェックインする代わりに、会場のチケット販売および/またはチケット処理デバイスが、ユーザが会場における特定のイベントのチケットを購入および/または使用したこと、チケットが購入および/または引換えされた時間などを示すメッセージをホストデバイス10へ送信してよい。他の実装において、ユーザの位置は、たとえば過去に格納されたユーザに関する位置データ、ユーザが特定の会場におけるイベントのために購入したチケットなどに基づいて推測され得る。
【0079】
[1085] 画像捕捉システム160(
図1に示す)は、606において、(たとえば、映像素材の記録および/または少なくとも1つの写真の捕捉を含むがこれに限定されない)メディアを捕捉してよく、608において、(
図1に示す)ホストデバイス110へメディアを送信してよい。画像捕捉システム160は、自身の位置データ(たとえば画像捕捉システム160のGPS座標など)をホストデバイス110へ送信することもできる。ホストデバイス110は、610において、(たとえばメディアの風景および/または背景におけるランドマークデータを用いて)メディア内の位置を識別してよい。たとえばいくつかの実装において、ホストデバイス110は、画像認識処理技術を用いて、(たとえば
図1に示す分析モジュール121を介して)背景における特定の物体(座席、ローカルランドマークなど)を検出し、背景における識別情報(たとえば標識、座席番号、会場特徴など)を検出し、および/または画像捕捉デバイス160とユーザ502との距離を(たとえば、画像捕捉システムの位置および/またはユーザ502の位置に対するメディア内の物体のサイズを用いて距離を推定することによって)推定してよい。ホストデバイス110はその後、メディア内に捕捉された場所を識別するために(たとえば位置モジュール124を介して)識別情報、物体、および/または距離を用いてよい。たとえば分析モジュール121がスポーツ会場における座席番号を検出した場合、位置モジュール124は、どのスポーツ会場に画像捕捉システム160が位置するかを決定するために画像捕捉システムの位置データを用い、その座席番号を有する座席が会場内のどこにあるかを決定するために会場のマップおよび/または他のデータを取得してよい。他の例として、位置モジュール124は、全国的ランドマーク(たとえば有名な像)および/または行政標識を検出し、全国的ランドマークおよび/または行政標識に関する既知の位置データに基づいてユーザのGPS位置を決定してよい。画像捕捉デバイス160が位置データを提供した場合、位置モジュール124は、画像捕捉デバイスからの位置データに基づいて、検出された位置を確認してよい。
【0080】
[1086] いくつかの実装において、位置モジュール124は、ホストデバイス110に過去に格納された他のメディアに基づいて位置を決定することもできる。たとえば、画像捕捉システム160は、有名な像を含むビデオを記録してよく、位置モジュール124は、その像のGPS座標を決定し、その座標を、たとえばデータベース140に格納されたようなビデオデータに関するメタデータとして格納してよい。画像捕捉デバイス160が、その像を含むメディアを後に送信した場合、位置モジュール124は、本明細書に開示するものと同様の画像処理技術を用いて、過去に記録されたビデオデータを用いて像のアイデンティティを検出し、過去のビデオデータを用いて(たとえばビデオデータとともに格納されたメタデータなどによって)像の位置を決定してよい。他の例として、位置モジュールは、メディア内に捕捉された会場内の場所を識別するために、ランドマークを会場内の場所に関連付けする、会場内のランドマークの過去に捕捉された画像データを用いてよい。
【0081】
[1087] 位置モジュール124はその後、612において、ユーザに関するユーザ位置データ(たとえばGPSデータ、iBeaconデータ、チケット購入データなど)を取得してよい。616において、各ユーザ614についてホストデバイスは、ユーザの位置データを会場および/またはイベントにおける位置にマッピングしてよい。たとえば、ユーザ位置データが、ユーザが特定のスポーツ会場にいることを示した場合、位置モジュール124は、たとえば会場のマップおよび/または同様のデータを用いて、ユーザの位置データを会場内の位置にマップしてよい。位置モジュール124はその後、会場内のユーザの位置が、メディアにおいて識別された位置モジュール124の位置とマッチするか否かを決定618してよい。たとえばホストデバイス110は、メディア内で検出された座席番号が、ユーザモバイルデバイスのチェックインメッセージにおいて識別されたiBeaconに近い座席番号とマッチするか、および/または、座席番号が、ユーザのチケットに関連する座席番号に近接するかを決定してよい。2つの位置がマッチしない場合、位置モジュール124は、メディアが記録された場所にユーザがいない可能性が高いことを決定し、次のユーザの位置データを分析620してよい。
【0082】
[1088] 2つの位置がマッチした場合、(たとえば
図2に示す)分析モジュール121は、たとえばユーザの過去に格納された画像データおよび画像捕捉システム160から受信したメディアを用いて、メディアに顔認識を実行622してよい。分析モジュール121が、メディア内の人物とユーザとのマッチを検出624した場合、ホストデバイスは、(たとえば、メディアが記録された場所、ユーザに関連する識別子、および/または他の情報などのメタデータを含む)メディアを格納626してよい。ホストデバイス110はその後、ユーザに(たとえばeメール、テキスト(たとえばショートメッセージサービス(SMS)および/またはマルチメディアメッセージングサービス(MMS)メッセージ、モバイルデバイスアプリケーション通知などを介して)、画像捕捉システム160がユーザを含むメディアを捕捉したことを通知してよい。その後ユーザはメディアにアクセスしてよい。2つの位置がマッチしない場合、分析モジュールは顔認識を実行せず、ユーザとメディアとのマッチングプロセスを終了してよい。
【0083】
[1089] いくつかの実装において、位置モジュール124は、メディアに顔認識を実行する前に位置分析を実行してよい。他の実装において、ホストデバイス110は、メディアに顔認識を実行した後に位置分析を実行してよい。顔認識の前に位置分析を実行することによって、行われる比較の数が低減され(それによって顔認識を実行するために用いられる時間およびリソースの量が低減され)、データベース140から取得され処理されるデータの量が低減され得る。これによって、画像の位置と位置がマッチしない個人ではなく、画像の位置とマッチする位置を有する個人に顔認識分析が実行され得るので、顔認識プロセスによって生じるフォールスポジティブの数も低減され得る。
【0084】
[1090] いくつかの例において、顔認識信頼性スコアは、メディア内のランドマークデータによって識別される位置情報に基づいて計算され得る。たとえば、メディア内のランドマークが、ビデオが会場の特定の部分のものであることを示し、ユーザのデバイスが、会場のその部分にユーザがいることを示した場合、ユーザがメディア内に存在する信頼性スコアは増加し得る。逆に、メディア内のランドマークが、ビデオが会場の特定の部分のものであることを示し、ユーザのデバイスが、ユーザが会場のその部分にいないことを示した場合、ユーザがメディア内に存在する信頼性スコアは低減し得る。したがって、顔認識が実行される個人の人数を限定することなく、ランドマークデータは、ユーザの信頼性スコアに作用することによってフォールスポジティブを低減させ得る。
【0085】
[1091] ユーザデバイスから受信した位置情報および画像および/またはビデオ内のランドマークデータから導出された位置情報は、顔認識と併用されるものとして上述されたが、他の実施形態において、ビデオ内のユーザを識別するために顔認識を用いずに用いられてよい。具体的には、たとえば(たとえば
図2に示す)位置モジュールは、ビデオ内の情報を用いて(たとえば、メディアの風景および/または背景における情報を用いて)ビデオの位置を決定してよい。ユーザデバイスが、ユーザが特定の位置にいることを示す場合、ユーザは、ビデオ内に含まれるものとして識別され得る。ビデオはその後、上述したようにユーザへ提供され得る。
【0086】
[1092] 画像捕捉デバイスから位置情報(たとえば会場内の位置)を受信するものとして説明されたが、他の実施形態において、そのような位置情報は受信されず、画像捕捉デバイスの位置は、メディア内のランドマークデータのみに基づいて(たとえばメディアの風景および/または背景における情報を用いて)識別され得る。そのような実施形態において、ビデオ認識システム(たとえば
図1のビデオ認識システム100)に関連しない画像捕捉デバイス、および/またはビデオ認識システムと通信可能に結合されていない画像捕捉デバイスが、画像および/または背景ビデオを捕捉するために用いられ得る。そのような画像の位置は、画像捕捉デバイスによって提供される(画像自体以外の)位置固有データを用いずに識別され得る。
【0087】
[1093] 様々な実施形態が上述されたが、これらは限定ではなく例示として提示されたにすぎないことを理解すべきである。たとえば、実施形態および方法は、本明細書において、イベントなどにおけるユーザのコンテキストビデオストリームを定義し、コンテキストビデオストリームをクライアントデバイスへ送信し、および/またはたとえばウェブブラウザおよびインターネットを介してコンテキストビデオストリームへのアクセスを可能にするものとして説明されたが、他の実施形態において、ホストデバイスは、ユーザに関連する任意の数のコンテキストビデオストリームをデータベースに格納してよい。いくつかの例において、ホストデバイスは、ユーザの任意の数のコンテキストビデオストリームを含み得るユーザプロファイルなどを定義するように構成され得る。いくつかの例において、ユーザは、モバイルアプリケーション、コンピュータアプリケーション、ウェブブラウザおよびインターネットなどを介して自身のユーザプロファイルにアクセスしてよい。またいくつかの例において、ユーザは、ユーザの任意の数のコンテキストビデオストリームを異なるユーザと、および/またはソーシャルメディアサイトを介して共有し、または共有することをホストデバイスに要求してよい。いくつかの例において、ユーザは、自身のユーザプロファイルの一部へのアクセスを許可し、そこに含まれるコンテキストビデオストリームを他のユーザが閲覧できるようにしてよい。
【0088】
[1094] 特定の例が具体的に上述されたが、本明細書で説明される実施形態および方法は、任意の適切な方法で用いられ得る。たとえばシステム100は、スポーツイベントにおけるユーザのコンテキストビデオストリームを定義するものとして上述されたが、他の実施形態において、本明細書で説明される方法は、たとえば任意の適切な環境、会場、競技場、イベントなどにおいて顔認識およびビデオ分析を用いて個人を識別するために用いられ得る。たとえばいくつかの実施形態において、上述された方法は、コンサート、会合、卒業式、パーティ、ショッピングモール、事業所などでコンテキストビデオストリームを捕捉するために用いられ得る。1つの例において、ホストデバイスは、たとえば卒業式からのコンテキストビデオストリームを受信してよい。いくつかの例において、上述したように、ホストデバイスは、卒業生(および/または任意の個人および/またはユーザ)を識別するために任意の適切な顔認識および/またはビデオ分析を実行してよい。またホストデバイスは、たとえば卒業生に関連するユーザプロファイル、生徒が壇上を横断する順番、卒業生のクライアントデバイスに関連する位置データ、および/または他の任意の適切なデータなどのコンテキスト情報を分析するように構成され得る。このように、ホストデバイスは、(たとえばデータが基準(複数も可)を満たす場合)卒業生のアイデンティティを確認するためにデータを分析し、たとえば卒業生が卒業証書などを受け取るために壇上を横断する際の卒業生のコンテキストビデオストリームを定義してよい。他の例において、ホストデバイスは、卒業生の家族または友人を識別し、彼または彼女のコンテキストビデオストリームを同様に定義してよい。
【0089】
[1095] 実施形態は、特定のデバイスおよび/またはデバイスの特定の部分において実行されるものとして上述されたが、他の実施形態において、本明細書で説明される実施形態および/または方法のいずれかは、任意の適切なデバイスにおいて実行され得る。たとえば、コンテキストビデオストリームは、顔認識および/または画像分析のためにホストデバイス(たとえばホストデバイス110)へ送信されるものとして上述されたが、他の実施形態において、任意の適切な分析がクライアントデバイスにおいて実行され得る。たとえばいくつかの例において、ユーザは、クライアントデバイスのカメラを介してビデオストリーム(たとえばコンテキストビデオストリーム)を捕捉し、それに応答して、クライアントデバイスは、ビデオストリーム内の任意の数の登録ユーザなどを識別するためにビデオを分析してよい。いくつかの例において、分析は、クライアントデバイスに送信および/または格納された(たとえばメモリに格納され、システムアプリケーションに関連する)重畳ニューラルネットを介してよい。いくつかの例において、上述したように、分析は、たとえばユーザの連絡先リスト、友人リスト、確立した接続などに基づいて前処理および/または事前格納され得る。いくつかの例において、クライアントデバイスは、上述したように、識別された任意のユーザへユーザ指定ビデオストリームを送信してよい。他の実施形態において、クライアントデバイスは、分析されたビデオストリームおよび/またはユーザ指定ビデオストリーム(複数も可)をホストデバイス110および/またはデータベース140にアップロードおよび/または送信してよい。
【0090】
[1096] ビデオストリームおよび/または画像データは、「コンテキスト」として上述されたが、ビデオストリームデータおよび/または画像データは「コンテキストデータ」と無関係および/または関連しなくてもよいことを理解すべきである。たとえばいくつかの例において、ユーザは、ビデオストリームおよび/または画像を捕捉し、ビデオストリームおよび/または画像データと関連するコンテキストデータを定義および/または送信することなくビデオストリームおよび/または画像を処理するためにアップロードしてよい。いくつかの例において、ホストデバイスなど(たとえばホストデバイス110)は、ユーザ生成ビデオストリームおよび/または画像データを受信し、それに応答して、たとえばコンテキストデータと無関係のユーザ指定ビデオストリームまたはユーザ指定画像を定義するために、1または複数の顔認識プロセスおよび/または他の任意の適切な分析をデータに実行してよい。
【0091】
[1097] 実施形態は具体的に図示され説明されたが、形式および細部における様々な変更がなされ得ることが理解される。様々な実施形態は、特定の特徴および/または構成要素の組み合わせを有するものとして説明されたが、上述したような実施形態のいずれかにおける任意の特徴および/または構成要素の組み合わせを有する他の実施形態が可能である。
【0092】
[1098] 上述した方法および/またはイベントが、特定の順序で発生する特定のイベントおよび/または手順を示す場合、特定のイベントおよび/または手順の順序は変更されてよい。また、特定のイベントおよび/または手順は、上述したように連続して実行されるのと同様に、可能であれば並行処理で同時に実行されてよい。顔認識の特定の方法が特定の実施形態に従って上述されたが、いくつかの例において、顔認識の方法のいずれかは、結合され、増強され、改善され、および/または顔認識データのセットに集合的に実行されてよい。たとえばいくつかの例において、顔認識の方法は、固有ベクトル、固有顔、および/または他の2D分析とともに、たとえば複数の2D画像の3D再構成など任意の適切な3D分析を用いて顔認識データを分析することを含んでよい。いくつかの例において、2D分析法および3D分析法の使用は、たとえば、3D分析のみまたは2D分析のみによる結果よりもリソース(たとえば処理デバイス)への負荷が少なく、より正確な結果を生じることができる。いくつかの例において、顔認識は、重畳ニューラルネット(CNN)を介して、および/または任意の適切な2次元(2D)および/または3次元(3D)顔認識分析法とCNNとの組み合わせを介して実行され得る。また、複数の分析法の使用は、たとえば冗長性、誤り検査、負荷分散などのために用いられ得る。いくつかの例において、複数の分析法の使用により、システムは、顔認識データセットに含まれる特定のデータの少なくとも一部に基づいて顔認識データセットを選択的に分析することができる。
【0093】
[1099] 本明細書で説明されるいくつかの実施形態は、様々なコンピュータ実装動作を実行するための命令またはコンピュータコードを有する(非一時的プロセッサ可読媒体とも称され得る)非一時的コンピュータ可読媒体を備えたコンピュータ記憶製品に関する。コンピュータ可読媒体(またはプロセッサ可読媒体)は、それ自体が一時的伝搬信号(たとえば、スペースまたはケーブルなどの伝送媒体において情報を搬送する伝搬電磁波)を含まないという意味で非一時的である。媒体および(コードとも称され得る)コンピュータコードは、特定の目的または複数の目的のために設計および構成されたものであってよい。非一時的コンピュータ可読媒体の例は、たとえばハードディスク、フロッピーディスク、および磁気テープなどの磁気記憶媒体、たとえばコンパクトディスク/デジタルビデオディスク(CD/DVD)、コンパクトディスク読取専用メモリ(CD−ROM)、およびホログラフィックデバイスなどの光記憶媒体、たとえば光ディスクなどの光磁気記憶媒体、搬送波信号処理モジュール、および、たとえば特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、読取専用メモリ(ROM)およびランダムアクセスメモリ(RAM)デバイスなど、プログラムコードを格納および実行するように特別に構成されたハードウェアデバイスを含むがこれに限定されない。本明細書で説明される他の実施形態は、たとえば本明細書に記載される命令および/またはコンピュータコードを含み得るコンピュータプログラム製品に関する。
【0094】
[1100] 本明細書で説明されるいくつかの実施形態および/または方法は、(ハードウェアにおいて実行される)ソフトウェア、ハードウェア、またはそれらの組み合わせによって実行され得る。ハードウェアモジュールは、たとえば汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、および/または特定用途向け集積回路(ASIC)を含んでよい。(ハードウェアにおいて実行される)ソフトウェアモジュールは、C、C++、Java(登録商標)、Ruby、Visual Basic(登録商標)、および/または他のオブジェクト指向型、手続き型、または他のプログラミング言語および開発ツールを含む様々なソフトウェア言語(たとえばコンピュータコード)で表現され得る。コンピュータコードの例は、マイクロコードまたはマイクロ命令、たとえばコンパイラによって生成される機械命令、ウェブサービスを生成するために用いられるコード、およびインタープリタを用いてコンピュータによって実行される高次命令を含むファイルを含むが、これに限定されない。たとえば実施形態は、命令型プログラミング言語(たとえばC、Fortranなど)、関数型プログラミング言語(Haskell、Erlangなど)、論理型プログラミング言語(たとえばProlog)、オブジェクト指向型プログラミング言語(たとえばJava、C++など)、または他の適切なプログラミング言語および/または開発ツールを用いて実装され得る。コンピュータコードの更なる例は、制御信号、暗号化コード、および圧縮コードを含むが、これに限定されない。