(58)【調査した分野】(Int.Cl.,DB名)
前記1つ又は複数のビデオ特性を解析するステップが、顔を検出するステップを含み、前記ブラウザによって受信された、前記1つ又は複数の制御のうち少なくとも1つの特定の制御の調整に基づいて、前記顔に1回又は複数回のパンニングおよびズーミングを前記第1のカメラに行わせるステップをさらに含む、
請求項1に記載の方法。
前記1つ又は複数の機能が、アクティベートする前記ステップによって、前記1つ又は複数のビデオ特性と関連付けられると決定される前記1つ又は複数の機能を制御することを可能にされるステップであって、前記1つ又は複数の機能は、変更のために利用可能な前記1つ又は複数の設定を有すると決定される、請求項1に記載の方法。
前記1つ又は複数の機能が、キャプチャレート、ちらつき、露光、コントラスト、ホワイトバランス、温度、及び絞りのうちの1つ又は複数のための制御を含む、請求項6に記載の方法。
前記1つ又は複数の機能が、前記1つ又は複数のビデオ特性に基づいて、前記1つ又は複数の設定に1つ又は複数の変更を適用するステップをさらに含む、請求項6に記載の方法。
前記1つ又は複数の制御が、前記アクティベートによって、前記1つ又は複数のビデオ特性と関連すると決定される前記1つ又は複数の機能を制御することを可能にされ、前記1つ又は複数の機能は、変更のために利用可能な前記1つ又は複数の設定を有することを決定される、請求項6に記載の方法。
前記1つ又は複数の機能が、露光、キャプチャレート、ちらつき、コントラスト、ホワイトバランス、温度、及び絞りのうちの1つ又は複数のための制御を含む、請求項14に記載のシステム。
前記1つ又は複数の制御が、前記アクティベートによって、前記1つ又は複数のビデオ特性と関連すると決定される前記1つ又は複数の機能を制御することを可能にされ、前記1つ又は複数の機能は、変更のために利用可能な前記1つ又は複数の設定を有することを決定される、
請求項14に記載のシステム。
前記第1のカメラの前記1つ又は複数の機能を決定するステップが、前記第1のカメラの前記1つ又は複数の機能の少なくとも1つの機能が、前記ビデオストリームと関連する前記1つ又は複数の特性の少なくとも1つの特性と関連すると決定するステップを含む、
請求項14に記載のシステム。
【発明を実施するための形態】
【0010】
本明細書で説明される実施形態は、ビデオ会議を改善する。多様な実施形態において、システムは、ビデオストリームを提供する第1のカメラの1つ又は複数の機能を決定し、第1のカメラは第1のユーザと関連する。いくつかの実施形態において、機能は、キャプチャレート、ちらつき、ホワイトバランス、露光、コントラスト、温度、絞り、パンニング、及びズーミングのうちの1つ又は複数のための制御を含んでもよい。
【0011】
システムは、次いでブラウザが第1のカメラの1つ又は複数の機能を制御することを可能にし、ブラウザは第2のユーザと関連し、ブラウザは第1のカメラに対し遠隔にある。いくつかの実施形態において、ブラウザが1つ又は複数の機能を制御することを可能にするステップは、ビデオストリームと関連する1つ又は複数のビデオ特性を解析するステップと、1つ又は複数のビデオ特性を解析するステップに基づいて、ブラウザにおいて1つ又は複数の制御を提供するステップと、を含み、1つ又は複数の制御が1つ又は複数の機能と対応し、1つ又は複数の制御が、1つ又は複数の機能と関連する1つ又は複数の設定に対応する。いくつかの実施形態において、ブラウザが1つ又は複数の機能を制御することを可能にするステップが、1つ又は複数の機能と関連する1つ又は複数の設定を上書きするステップを含む。
【0012】
図1は、ネットワーク環境例100のブロック図を図示しており、これは本明細書に記述される実装を実現するために使用されてもよい。いくつかの実施形態において、ネットワーク環境100は、サーバデバイス104及びソーシャルネットワークデータベース106を含むシステム102を含む。多様な実施形態において、用語システム102及び語句”ソーシャルネットワークシステム”は、同じ意味で使用されてもよい。ネットワーク環境100は、クライアントデバイス110、120、130、及び140も含み、これはシステム102を介して互いに通信することができる。ネットワーク環境100は、ネットワーク150も含む。
【0013】
図を簡単にするために、
図1は、システム102、サーバデバイス104、及びソーシャルネットワークデータベース106ごとに1つのブロックを示し、クライアントデバイス110、120、130、及び140のための4つのブロックを示す。ブロック102、104、及び106は、複数のシステム、サーバデバイス、及びソーシャルネットワークデータベースを表してもよい。また、任意の数のクライアントデバイスが存在してもよい。別の実施形態において、ネットワーク環境100は、示される全てのコンポーネントを有さなくてもよく、及び/又はその代わりに、本明細書に示されたものに加えて、別の種類の要素を含む別の要素を有してもよい。
【0014】
多様な実施形態において、ユーザU1、U2、U3、及びU4は、それぞれのクライアントデバイス110、120、130、及び140を使用して、互いに通信してもよい。例えば、ユーザU1、U2、U3、及びU4は、マルチユーザビデオ会議において互いに交流してもよく、それぞれのクライアントデバイス110、120、130、及び140は、メディアストリームを互いに送信する。
【0015】
本明細書に記載される多様な実施形態において、システムのプロセッサ102は、本明細書に記載される要素(例えば、ブラウザ制御ボタン等)が、1つ又は複数のディスプレイ画面上のユーザインタフェースに表示されることをもたらす。
【0016】
多様な実施形態において、システム102は、ビデオ会議の改善のために認識アルゴリズムを利用してもよい。認識アルゴリズムの実施形態例は、以下により詳細に説明される。
【0017】
図2は、いくつかの実施形態に従った、ビデオ会議を改善するための簡易化したフローチャート図の例を図示している。
図1及び2の両方を参照すると、方法は、ブロック202で開始され、ここでシステム102は第1のカメラによって提供されるビデオストリームの1つ又は複数の特性を決定する。多様な実施形態において、1つ又は複数の特性は、ビデオの基本的なアスペクト(aspect)を含んでもよい。例えば、システム102は、露光、露光時間、明るさ、コントラスト、彩度、シャープネス、ホワイトバランス、温度(例えば、ホワイトバランス温度など)、絞り等のための値を決定してもよい。
【0018】
多様な実施形態において、1つ又は複数の特性は、ビデオのより拡張されたアスペクトを含んでもよい。例えば、システム102は、電力ライン周波数(アンチフリッカー)、ちらつき、キャプチャレート、バックライト補償、フォーカス等のための値を決定してもよい。
【0019】
多様な実施形態において、システム102は、ビデオストリーム内の動きを検出し、これらの特性の何れか1つ以上が最適でない箇所を検出する。例えば、いくつかの実施形態において、システム102は、カラー彩度ビデオストリームがオフであるか否か、ビデオストリーム内にちらつきがあるか否か、等を決定してもよい。ちらつきの例において、いくつかの国では電気が1つの周波数(例えば50ヘルツ(Hz))で動作しているかもしれないが、所定のカメラが別の周波数(例えば、60Hz)にセットされている可能性があり、これはちらつきの原因となり得る。システム102は、そのようなちらつき特性を検出する。以下に記述するように、システム102は、ちらつきの補正のためにカメラの周波数設定を遠隔で変更するための制御をユーザに提供することができ、及び/又はシステム102は、ちらつきの補正のためのそのような設定を自動的に変更してもよい。
【0020】
多様な実施形態において、システム102は、任意の適切な位置で画像処理に基づいてビデオストリームの1つ又は複数の特性を決定してもよい。例えば、いくつかの実施形態において、システム102は、システム102又はシステム102にアクセス可能な任意の他のサーバにローカル処理を実行してもよい。いくつかの実施形態において、システム102は、いくつかの画像処理が任意の適切なブラウザで発生することをもたらしてもよい。例えば、画像がビデオ会議と関連する任意の1つ又は複数のブラウザでのプロセスである場合である。システム102は、任意の1つ又は複数のそのようなブラウザからそのようなデータにアクセスしてもよく、次いでビデオストリームの特性を決定するために、データを解析してもよい。
【0021】
いくつかの実施形態において、1つ又は複数の特性は、ビデオの中に特徴及び/又は要素を含んでもよい。例えば、オブジェクトとしての顔であっても特定のユーザと関連する特定の顔であっても、システム102は、ビデオの中の顔を検出してもよい。いくつかの実施形態において、システム102は、ビデオ上の特定の顔の肌の色調を検出してもよい。
【0022】
特定の特性及び特性の特定の組合せは、特定の実施形態に従って変わる。システム102は、本明細書に記述される特性を検出するために任意の適切な認識アルゴリズムを使用してもよい。認識アルゴリズムの実施形態例は、以下により詳細に記述される。
【0023】
ブロック204において、システム102は、1つ又は複数の特性に基づいて第1のカメラの1つ又は複数の機能を決定する。例えば、多様な実施形態において、システム102は、ビデオ会議でビデオストリームを提供する各カメラと関連するアプリケーションプログラミングインタフェース(API)機能を確認することによって、機能を決定する。
【0024】
いくつかの実施形態において、システム102は、ビデオ会議でビデオストリームを提供する各カメラと関連する低レベルAPI機能を確認することによって、機能を決定する。そのような低レベルAPI機能は、プリセット、ネイティブイベント(native event)等を含むきめ細かい設定を、システム102が制御することを可能にする。
【0025】
多様な実施形態において、1つ又は複数の機能は、ビデオの基本的なアスペクトのための制御を含んでもよい。例えば、システム102は、露光、露光時間、明るさ、コントラスト、彩度、シャープネス、ホワイトバランス、温度(例えば、ホワイトバランス温度)、絞り等の制御が利用できることを決定する。多様な実施形態において、1つ又は複数の機能は、ビデオのより拡張されたアスペクトのための制御を含んでもよい。例えば、システム102は、電力ライン周波数(アンチフリッカー)、ちらつき、キャプチャレート、バックライト補償、フォーカス等のための値を決定してもよい。上述したちらつきの例において、システム102は、ちらつきと関連する任意の設定(例えば、アンチフリッカー)が低レベルAPIを介して変更のために利用可能であるか否かを決定してもよい。
【0026】
多様な実施形態において、1つ又は複数の機能は、ビデオ効果の1つ又は複数の制御を含んでもよい。例えば、いくつかの実施形態において、システム102は、パンニング、ズーミング、チルト等のための機能を決定してもよい。
【0027】
多様な実施形態において、システム102は、決定された特性(例えば、ブロック202から)に基づいて、本明細書に記載された機能を決定する。いくつかの実施形態において、システム102は、特定の特性に基づいて特定の機能を具体的に決定してもよい。
【0028】
例えば、1つのシナリオにおいて、システム102は、ビデオストリームで特定の肌の色調を検出してもよい。その特定の決定は、システム102が、パンニング、ズーミング、チルト等が利用可能であるか否かを低レベルAPI機能から決定するきっかけであってもよい。同様に、システム102は、顔などのオブジェクトの検出に基づいて、そのような低レベルAPI機能(例えば、パンニング、ズーミング、チルト等)を決定してもよい。
【0029】
ブロック206において、システム102は、ブラウザが第1のカメラの1つ又は複数の機能を制御することを可能にし、ブラウザは第1のカメラに対して遠隔である。多様な実施形態において、第1のカメラは、第1のユーザと関連し、ブラウザは第2のユーザと関連する。本明細書で記述される多様な実施形態において、カメラ設定の制御は、リアルタイムで、またはデータベースに保存された設定に基づいて実行されてもよい。いずれの場合も、制御データは、転送プロトコル(HTTP)、ウェブリアルタイムコミュニケーション(WebRTC)、データチャンネルAPI等の、任意の適切なデータ接続プロトコルを介して制御されているカメラと関連するブラウザに渡されてもよい。
【0030】
本明細書の多様な実施形態で記述されたように、第1のカメラの機能の制御は、制御のユーザ提供の操作によって、システム102の自動的な制御の操作によって、あるいはデータベースに保存されたプリセット設定によって、実行されてもよい。システム102は、次いで、適切な制御信号が所定のカメラと関連するブラウザ及び/又は他のソフトウェアに渡されることをもたらす。ブラウザあるいはソフトウェアは、カメラハードウェアを直接制御するか、又はビデオストリームを変更するソフトウェアを経由して制御するために、次いで制御信号を順にカメラに渡してもよい。
【0031】
図3は、いくつかの実施形態に従った、ビデオ会議を改善するための簡易化した環境例300を図示している。示されるように、環境300は、サーバ302、低レベルAPI306と関連する第1のブラウザ304、第1のカメラ308を含む。環境300は、低レベルAPI316と関連する第2のブラウザ314と、第2のカメラ318も含む。多様な実施形態において、
図1のシステム102は、サーバ302の中にあってもよい。
【0032】
多様な実施形態において、第1のカメラ308は、第1のユーザと関連する。図を簡単にするために、多様な実施形態の例は、第1のカメラ308の文脈で本明細書に記述される。これらの実施形態は、マルチユーザのビデオ会議にかかわる各カメラにも適用する。例えば、これらの実施形態は、第2のユーザと関連する第2のカメラ318に適用されてもよい。そのような例において、第2のカメラ318を制御するブラウザは、ブラウザ304、あるいは第2のカメラ318に対して遠隔にある任意のブラウザであってもよく、ブラウザ304は第1のユーザと関連する。本明細書で記載される多様な実施形態は、任意の種類のブラウザに適用してもよい。さらに、実施形態がブラウザのコンタクト(contact)で本明細書に記載されるが、これらの実施形態は、ビデオ会議のために使用できる他のソフトアプリケーションにも適用する。
【0033】
図1及び3を参照して、多様な実施形態において、ブラウザ314が遠隔のカメラ308の1つ又は複数の機能を制御することを可能にするために、システム102はブラウザ314において1つ又は複数の制御を提供し、1つ又は複数の制御は、1つ又は複数の機能に対応する。多様な実施形態において、システム102が低レベルAPI306の利用可能な機能を決定して、システム102は、そのような制御がリアルタイムでブラウザ314で表示されることをもたらす。言い換えると、ブラウザ314で事前に表示されない制御は、利用可能な機能を決定した後に表示される。図を簡単にするために、制御はブラウザ314の文脈で記述される。多様な実施形態において、システム102は、そのような制御が、特定のビデオ会議で別のユーザと関連する他のブラウザ(図示せず)に表示されることをもたらしてもよい。そのような別のブラウザは、ブラウザ304に含まれてもよい。
【0034】
図4Aは、いくつかの実施形態に従った、ビデオストリーム例400を図示している。示されるように、ビデオストリーム400は、顔402を表示する。この特定の実施形態例において、ビデオストリームはブラウザ314に表示されたビデオストリームを表してもよく、これらは複数のビデオストリームを表示してもよい。
【0035】
多様な実施形態において、システム102は、本明細書に記載したように、適切な顔認識アルゴリズムを使用して顔402を検出してもよい。システム102は、ビデオ上の特定の顔の肌の色調を検出することによって、顔402を検出してもよい。図を簡単にするために、1つの顔402が図示される。他の実施形態例において、所定のビデオストリームにおいて、システム102が検出する複数の顔があってもよい。
【0036】
多様な実施形態において、ブラウザ314が1つ又は複数の機能を制御することを可能にするために、システム102は、カメラ308によって提供されるビデオストリームと関連する1つ又は複数のビデオ特性を解析する(
図2のブロック202で記述される)。この特定の例において、特性は、顔及び/又は肌の色調を含む。別の特徴は、本明細書で記載される別の特性などの可能性がある。システム102は、次いでビデオ特性の解析に基づいて、ブラウザ314で1つ又は複数の制御を提供する。本明細書で示されるように、1つ又は複数の制御は、1つ又は複数の決定された機能に対応する。多様な実施形態において、1つ又は複数の制御は、1つ又は複数の機能と関連する1つ又は複数の設定に対応する。多様な実施形態において、ブラウザ314が1つ又は複数の機能を制御することを可能にするために、システム102は、1つ又は複数の機能と関連するカメラ308の1つ又は複数の設定を上書きする。
【0037】
図4Bは、いくつかの実施形態に従った、ビデオストリーム例400を図示している。
図4Aと類似して、
図4Bは、ビデオストリーム400と顔402を示す。
図4Aと4Bを比較すると、
図4Aからの同一のユーザが、(カメラ308によって提供される)ビデオストリーム400内でパン(pan)するためにシステム102によって提供されるブラウザ314で制御を使用してもよい。例えば、
図4Aを参照すると、顔402はビデオストリーム400の中央に位置している。実施形態は、任意の適切な制御機能(例えば、ユニバーサルシリアルバスビデオクラス(UCV)など)を使用してカメラ308を制御してもよい。
図4Bを参照すると、顔402は、ブラウザ318で制御によってビデオストリーム400の左隅に移動又はパンされている。
【0038】
いくつかの実施形態において、システム102は、所定のビデオストリームで複数の顔を検出する。システム102は、そのような検出に基づいて、パン、チルト、及び/又はズームなどの利用可能な機能をさらに検出してもよい。システム102は、次いで、別の参加者として同一の部屋の単独の参加者に焦点を合わせるために、パン、チルト、及び/又はズームをキャプチャするためビデオストリームをキャプチャしているカメラを操作するための制御を提供してもよい。いくつかの実施形態において、システム102は、顔認識に基づいて、単独の参加者に焦点を合わせるために、カメラにパン、チルト、及び/又はズームすることをもたらす制御を自動的に操作してもよい。いくつかの実施形態において、システム102は、単独の参加者に焦点を合わせるために、カメラにパン、チルト、及び/又はズームすることをもたらす制御を遠隔のユーザが操作することを可能にしてもよい。
【0039】
いくつかの実施形態において、システム102は、特定の参加者に焦点を合わせるために、パン、チルト、及び/又はズームするための別の適切な認識アルゴリズムを使用してもよい。例えば、システム102は、潜在的にどの参加者に焦点を合わせるかを決定するために、唇の動きを検出するための認識アルゴリズムを使用してもよい。いくつかの実施形態において、マイク及び/又は音声解析の使用により、システム102は、部屋の中の特定の参加者にパンニング、チルティング(tilting)及びズーミングのための制御を可能にしてもよい。例えば、システム102は、最も大きい信号に向かってカメラを動かす制御を可能にしてもよい。いくつかの実施形態において、システム102は、複数のマイクを使用して、情報を三角測量してもよい。制御例は、
図5、6、及び7に関連して以下により詳細に記述される。
【0040】
本明細書に記載されるように、システム102は、決定された特性に基づいて、カメラ設定に変更を自動的に適用してもよい。例えば、顔認識による及び/又は肌の色調の検出によることに関わらず、顔の検出に基づいて、システム102は、ビデオストリームが話をしている人の頭にズームインする及び/又は探知することをもたらしてもよい。そのようなズーミング及び/又は探知することは、カメラのハードウェア制御及び/又はビデオストリームのソフトウェア制御を使用して実行されてもよい。
【0041】
いくつかの実施形態において、システム102は、ビデオストリームの所定のオブジェクト又は要素上にズームインする制御を利用可能にしてもよい。例えば、いくつかの実施形態において、システム102は顔402のような所定の顔を検出し、次いで顔402上に焦点を合わせる/ズームインするためにブラウザ314で制御を提供してもよい。いくつかの実施形態において、システム102は、カメラ308が高解像度モードで録画することをもたらし、次いで顔402上にズームインするズーム制御を有効にしてもよい。いくつかの実施形態において、システム102は、どこにズームするかを示すためにユーザ(例えば、ブラウザ318と関連するユーザ)が長方形を適用することを有効にしてもよい。いくつかの実施形態において、ディスプレイがタッチスクリーンである場合、システム102はユーザの指を使って、ユーザがズームイン及びアウトするだけでなく、パンニング、チルティング等の他の機能を実行することを可能にしてもよい。
【0042】
多様な実施形態において、設定の変更は、ハードウェア、ソフトウェア、あるいはそれらの組合せを使用してビデオストリームを変更してもよい。いくつかの実施形態において、ハードウェア(例えば、カメラ308のハードウェア)が制御されている場合、変更はビデオ会議と関連する全てのブラウザ上で見られてもよい。いくつかの実施形態において、ソフトウェアが(例えば、任意の所定のブラウザで)制御されている場合、変更は、任意の1つ又は全てのブラウザで(例えば、ブラウザ314で)見られてもよく、及び全てのブラウザ上で見られる必要はない。
【0043】
いくつかの実施形態において、システム102は、遠隔に操作されているカメラを所有するユーザが制御にいくつかの制限を置くことを可能にしてもよい。例えば、システム102は、ユーザがビデオストリームが変更されている方法を表示し、及び/又はビデオが変更されている方法を制限する(例えば、パンニング、ズーミング等にいくつかの制限を置く)ことを可能にしてもよい。
【0044】
上記で示されたように、いくつかの実施形態において、システム102は、データベースに所定のユーザのための1つ又は複数の設定(例えば、好みの設定)を保存してもよい。システム102は、設定と関連するユーザがビデオ会議に参加する時はいつでも、そのような設定を後から自動的に適用してもよい。いくつかの実施形態において、所定のユーザのための設定が適用され及びユーザが次いでビデオ会議を離れる場合、設定はデフォルト設定に戻してもよい。
【0045】
図5は、いくつかの実施形態に従った、簡易化したユーザインタフェース例500を図示している。示されるように、ユーザインタフェース500は、ビデオストリームと関連する基本的な機能のための多様な制御及び/又は設定を含む。例えば、ユーザインタフェース500は、露光、オート露光、露光時間、ゲイン、明るさ、コントラスト、彩度、シャープネス、ホワイトバランス、温度(例えばホワイトバランス温度)等のための制御を含む。基本的な機能のための他の制御及び設定は、特定の実施形態に応じて利用可能である。
【0046】
図6は、いくつかの実施形態に従った簡易化したユーザインタフェース例600を図示している。示されるように、ユーザインタフェース600は、ビデオストリームと関連するさらに拡張した機能のための多様な制御及び設定を含む。例えば、ユーザインタフェース600は、電力ライン周波数(アンチフリッカー)、ちらつき、バックライト補償、フォーカス、ズーム、パン、チルト等のための制御を含む。この例に示されていないさらに拡張した機能のための別の制御及び設定は、特定の実施形態に応じて利用可能である。上述したちらつきの例において、システム102がちらつきと関連する設定があると決定したあとに、システム102は、ユーザインタフェース600に示されるように、ブラウザでちらつき補償制御を提供してもよい。
【0047】
図7は、いくつかの実施形態に従った、簡易化したユーザインタフェース例700を図示している。示されるように、ユーザインタフェース700は、ビデオストリームと関連するより多くの選択のために、多様な制御を含む。例えば、ユーザインタフェース700は、カメラから設定を読み出す及びカメラに設定を書き込むことに関連して、選択のための制御及び設定を含む。この例に示されていない選択のための別の制御及び設定は、特定の実施形態に応じて利用可能である。
【0048】
上記で記載されたように、いくつかの実施形態が、操作するために遠隔のユーザのための制御を提供する制御システム102の文脈で本明細書に記述されたが、システム102は、ユーザから要求される作用なしで自動的にそのような変更を適用してもよい。例えば、システム102は、ちらつきを自動的に検出してもよく、次いでカメラ308等のカメラにアンチフリッカー変更を自動的に適用してもよい。
【0049】
いくつかの実施形態は、ビデオストリームの向上している準最適な特性の文脈において本明細書で記述されたが、これらの実施形態及び他のものは、娯楽及び/又は芸術の目的のための別の特性に適用されてもよい。例えば、システム102は、ユーザがビデオストリームの色を遠隔に変更すること(例えば、色を黒と白にする、等)を可能にしてもよい。
【0050】
いくつかの実施形態において、システム102は、所定のユーザがビデオストリームのフレームレートを変更することを可能にしてもよい。例えば、フレームレートが、望ましい30の代わりに一秒あたり15フレームである場合、システム102は、そのような低いフレームレートを検出してもよく、及びそのような検出に基づいてフレームレートの変更のための制御を提供してもよい。そのような制御は、例えば手話を使用するユーザに有効である可能性がある。そのようなユーザは、ビデオ品質の費用をかけても高いフレームレートを有することを望む可能性がある。
【0051】
本明細書に記載した実施形態は、多様な利点を提供する。例えば、実施形態は、各ユーザ(例えば、ビデオ会議の参加者)が、彼又は彼女のブラウザからビデオストリームの多様な特性を最適化することを可能にする。実施形態は、各ユーザが、特定のビデオカメラで通常管理されるビデオストリームの多様な特性を最適化することを可能にもする。本明細書に記載された実施形態は、ソーシャルネットワーキング環境において、ユーザ間で全体的な関わりを増加もする。
【0052】
ステップ、動作、あるいは計算は、特定の順序で提示されてもよいが、順序は特定の実施形態で変更されてもよい。ステップの別の順序付けが、特定の実施形態に応じて可能である。いくつかの特定の実施形態において、この明細書においてシーケンシャルとして示される複数のステップは、同時に実行されてもよい。また、いくつかの実施形態は、示される全てのステップを有さなくてもよく、及び/又はその代わりに、本明細書に示されたものに加えて、別のステップを有してもよい。
【0053】
システム102が本明細書の実施形態で説明されたステップを実行すると記述されたが、システム102の任意の適切な構成要素または構成要素の組合せ、あるいはシステム102と関連する適切なプロセッサまたは複数のプロセッサが、記述されたステップを実行してもよい。
【0054】
多様な実施形態において、システム102は、画像において顔、ランドマーク、オブジェクト等を認識するための多様な認識アルゴリズムを利用してもよい。そのような認識アルゴリズムは、システム102に不可欠であってもよい。システム102は、システム102の外部にあり及びシステム102がアクセスするソフトウェアによって提供される認識アルゴリズムにアクセスしてもよい。
【0055】
多様な実施形態において、システム102は、ソーシャルネットワークシステムのユーザが個人情報の使用を指定し及び/又は同意することを可能にする。これは、画像内の彼らの顔を使用するか、または画像内の識別された人の認識で彼らの識別情報を使用するシステム102を含んでもよい。例えば、システム102は、個人情報の使用のための指定及び/又は同意を対象にした複数の選択をユーザに提供してもよい。例えば、指定及び/又は同意に関しての選択は、個々の画像、全ての画像、個々のフォトアルバム、全てのフォトアルバムなどと関連してもよい。選択は、様々な方法で実装されることができる。例えば、システム102は、多様な選択の隣に表示されるボタンまたはチェックボックスをもたらしてもよい。いくつかの実施形態において、システム102は、ソーシャルネットワークのユーザが一般的に顔認識のために使用する彼らの画像の使用のための指定及び/又は同意することを可能にする。顔又は別のオブジェクトの認識のための実施形態例は、以下により詳細に記述される。
【0056】
ここで議論されるシステムがユーザについての個人情報を収集するか、個人情報を使用する可能性がある状況において、ユーザは、プログラムか機能かに関わらず、ユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的な行動あるいは活動、職業、ユーザの好み、あるいはユーザの現在地についての情報)を集めることを制御するための機会を提供されてもよく、あるいは、ユーザにより関連し得るコンテンツサーバからコンテンツを受信するか否か、及び/又は受信する方法を制御するための機会を提供されてもよい。さらに、特定のデータは、それが保存されるか、使用される前に1つ又は複数の方法で扱われる可能性があり、それによって、個人的に特定可能な情報が削除される。例えば、ユーザの身元は、いかなる個人情報もユーザのために決定されることができないように、処理されることができる。あるいは、ユーザの位置情報が得られる場合、ユーザの地理的位置は、一般化されてもよく(例えば、都市、郵便場合、あるいは州レベルなど)、それによってユーザの特定の位置が決定されることができない。従って、ユーザは、情報がどのようにユーザについて収集され、コンテンツサーバによって使用されるか、に対する制御を有してもよい。
【0057】
多様な実施形態において、システム102は、ソーシャルネットワークシステムのユーザの参照画像を取得し、各参照画像は、既知のユーザと関連する顔の画像を含む。ユーザは、ユーザ名及び他のプロファイル情報として、システム102においてユーザの識別情報を有することが知られている。いくつかの実施形態において、参照画像は、例えば、ユーザがアップロードしているプロファイル画像であってもよい。いくつかの実施形態において、参照画像は、参照画像のグループの合成に基づいてもよい。
【0058】
いくつかの実施形態において、画像の顔を認識するために、システム102は、顔(例えば、顔の画像)を比較し、及びソーシャルネットワークシステムのユーザの参照画像に顔を適合させてもよい。”顔”と”顔の画像”という語句が同じ意味で使用されることに留意されたい。説明を容易にするために、1つの顔の認識は、本明細書に記載される実施形態のいくつかの例で記述される。これらの実施形態は、認識される複数の顔の各顔に適用されてもよい。
【0059】
いくつかの実施形態において、システム102は、画像の顔に類似する任意の1つ又は複数の参照画像を識別するために、参照画像を検索してもよい。いくつかの実施形態において、所定の参照画像のために、システム102は、解析のために顔の画像から特徴を抽出してもよく、次いでそれらの特徴をそれらの1つ又は複数の参照画像と比較してもよい。例えば、システム102は、目、鼻、頬骨、口、あごなどの顔の特徴の相対的な位置、サイズ、及び/又は形を分析してもよい。いくつかの実施形態において、システム102は、一致するかまたは類似の特徴を備えた1つまたは複数の参照画像に対して画像の顔を適合させるために解析から集めたデータを使用してもよい。いくつかの実施形態において、システム102は、複数の参照画像を正規化し、それらの画像からの顔データを情報(例えば、顔の特徴データ)を有する合成表示に圧縮してもよい。次いで、画像の顔と顔認識のための合成表示を比較してもよい。
【0060】
いくつかのシナリオにおいて、画像は、同一のユーザと関連する複数の参照画像に類似してもよい。このように、画像の中の顔の人は、参照画像と関連する同一人物である可能性が高くなる。
【0061】
いくつかのシナリオにおいて、画像の中の顔は、異なるユーザと関連する複数の参照画像に類似してもよい。このように、画像の人物が、参照画像と関連する任意の所定の人物と一致するという、減少されたがまだ中程度に高い可能性がある。このような状況に対処するために、システム102は、可能性を1つの最良の候補に理想的に絞り込むために、顔認識アルゴリズムの多様な種類を使用してもよい。
【0062】
例えば、いくつかの実施形態において、顔認識を容易にするために、システム102は、特徴の区別に基づいた、幾何学的な顔認識アルゴリズムを使用してもよい。システム102はまた、比較のための値に顔の特徴を抜き出す、統計的アプローチに基づく測光のアルゴリズムを使用してもよい。幾何学的及び測光の組合せのアプローチが、1つ又は複数の参照と画像の顔を比較する際に使用されてもよい。
【0063】
他の顔認識アルゴリズムが使用されてもよい。例えば、システム102は、1つ又は複数の、主成分分析、線形判別解析、弾性的束(バンチ、bunch)グラフマッチング、隠れマルコフモデル、及びダイナミックリンクマッチングを使用する顔認識アルゴリズムを使用してもよい。システム102は、他の既知または後から開発された顔認識アルゴリズム、技術、及び/又はシステムを使用してもよいことが理解されるであろう。
【0064】
いくつかの実施形態において、システム102は、画像の顔が所定の参照画像と一致する尤度(又は確率)を示す出力を生成してもよい。いくつかの実施形態において、出力は、画像の顔が所定の参照画像と一致する信頼度と関連するパーセンテージのような測定基準(あるいは数値)として表されてもよい。例えば、1.0の値は、一致の100%の信頼を表してもよい。これは、例えば比較される画像が同一またはほぼ同一である時に発生する可能性がある。一致の50%の確率があるときに、例えば0.5のように値が低い可能性がある。別の出力の種類が可能である。例えば、いくつかの実施形態において、出力は、一致のための信頼スコアであってもよい。
【0065】
図8は、本明細書に記載の実施形態を実装するために使用されてもよい、サーバデバイス例800のブロック図を図示している。例えば、サーバデバイス800は、
図1のサーバデバイス104を実装するために使用されてもよいだけでなく、本明細書に記載の方法実施形態を実行してもよい。いくつかの実施形態において、サーバデバイス800は、プロセッサ802、オペレーティングシステム804、メモリ806、及び入出力(I/O)インタフェース808を含む。サーバデバイス800は、メモリ806あるいは任意の別の適切な記憶場所あるいはコンピュータ可読メディアに格納されてもよいソーシャルネットワークエンジン810及びメディアアプリケーション812も含む。メディアアプリケーション812は、プロセッサ802が本明細書に記載の機能及び別の機能を実行することを可能にする命令を提供する。
【0066】
図を簡単にするために、
図8はプロセッサ802、オペレーティングシステム804、メモリ806、I/Oインタフェース808、ソーシャルネットワークエンジン810、及びメディアアプリケーション812毎に1つのブロックを示す。これらのブロック802、804、806、808、810、及び812は、複数のプロセッサ、オペレーティングシステム、メモリ、I/Oインタフェース、ソーシャルネットワークエンジン、及びメディアアプリケーションを表してもよい。別の実施形態において、サーバデバイス800は、示される全てのコンポーネントを有しなくてもよく、及び/又はその代わりに、本明細書に示されたものに加えて、別のタイプの要素を含む別の要素を有してもよい。
【0067】
説明がその特定の実施形態に関して記述されてきたが、これらの特定の実施形態は、単に例示であって、限定するものではない。実施例に示される概念は、他の例及び実施形態にも適用することができる。例えば、いくつかの実施形態は、ソーシャルネットワークシステムのコンテキストで本明細書中に記載されている。しかしながら、本明細書に記載される実施形態は、ソーシャルネットワーク以外のコンテキストに適用されてもよい。例えば、実装は、個々のユーザのためにローカルに適用されてもよい。
【0068】
本開示に記載された機能ブロック、方法、装置、及びシステムは、当業者に知られているようなシステム、装置、及び機能ブロックの異なる組合せに組み込まれるか、あるいは分割されてもよいことに留意されたい。
【0069】
任意の適切なプログラミング言語及びプログラミング技法が、特定の実施形態のルーチンを実装するために使用され得る。手続き型又はオブジェクト指向のような異なるプログラミング技法が用いられてもよい。ルーチンは、単独の処理デバイス又は複数のプロセッサで実行される可能性がある。ステップ、動作、又は計算が特定の順序で提示される可能性があるが、順序は異なる特定の実施形態で変更されてもよい。いくつかの特定の実施形態において、本明細書で手続き型として示される複数のステップは、同時に実行されてもよい。
【0070】
”プロセッサ”は、任意の適切なハードウェア及び/又はソフトウェアシステム、データ、信号、あるいは別の情報を処理するメカニズムまたはコンポーネントを含む。プロセッサは、汎用中央処理装置、複数の処理ユニット、機能を実現するための専用回路、または別のシステムを備えたシステムを含んでもよい。処理は、地理的な位置に限られる必要がないか、あるいは時間の制限を有する必要がない。例えば、プロセッサは「リアルタイム」「オフライン」「バッチモード」等で、その機能を実行してもよい。処理の一部分は、異なる時間及び異なる場所で、異なる(あるいは同じ)処理システムによって実行されてもよい。コンピュータは、メモリと通信する任意のプロセッサであってもよい。メモリは、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、磁気記憶装置(ハードディスクドライブ、または同種のもの)、フラッシュ、光記憶装置(CD、DVDまたは同種のもの)、磁気または光学ディスク、またはプロセッサによって実行するための命令を格納するのに適した別の有形媒体を含む、任意の適切なデータストレージ、メモリ及び/又は非一時的なコンピュータ可読ストレージメディアであってもよい。ソフトウェア命令は、サーバ(例えば、分散型システム及び/又はクラウドコンピューティングシステム)から配信されるソフトウェアアズアサービス(SaaS)の形で電気信号に含まれ、及び電気信号として提供されることもできる。