(57)【特許請求の範囲】
【請求項１】
１つ以上のコンピューティングデバイスが、プライマリユーザに関連付けられている関連画像のセットを受信する工程であって、前記関連画像の各々に顔が現れる、画像受信工程と、
１つ以上のコンピューティングデバイスが、少なくとも１つの前記顔が識別される可能性のある１つ以上の候補を選択する工程であって、前記候補の各々は、ソーシャルネットワークのユーザであり、前記候補の各々に対して算出される前記プライマリユーザの前記候補への関心についての親近感の尺度が閾値を超えており、前記候補の各々に対する親近感の尺度は、予想関数に基づいて算出される、候補選択工程と、
１つ以上のコンピューティングデバイスが、前記関連画像の各々に対して、前記候補の各々に対する候補スコアを決定する工程であって、特定の候補に対する候補スコアは、前記特定の候補が前記顔に対応する蓋然性を表し、前記候補スコアは、
前記特定の候補に対して算出される親近感の尺度と、
前記特定の候補と前記顔との顔認識比較と、に少なくとも部分的に基づく、候補スコア決定工程と、
１つ以上のコンピューティングデバイスが、前記候補の各々に対して顔認識スコアを決定する工程であって、特定の候補に対する顔認識スコアは、前記特定の候補に対する複数の候補スコアの集約値に基づく、顔認識スコア決定工程と、
１つ以上のコンピューティングデバイスが、前記顔認識スコアに基づいて該顔を識別するために勝ち候補を決定する、勝ち候補決定工程とを含み、
前記特定の候補が、前記関連画像のセットにおける特定の画像の前の少なくとも最小数の画像において勝ち候補であると決定されたときにのみ、前記特定の候補は、複数の前記画像の中から前記特定の画像に対する勝ち候補として決定される、方法。
【請求項２】
前記１つ以上の候補は、最大の候補の数に限定される、請求項１に記載の方法。
【請求項３】
前記関連画像のセットのうちの各画像が前記関連画像のセットうちのその他の画像に関連して決定されるということを決定することは、少なくとも部分的に、
前記各画像の位置と前記その他の画像の位置とを比較すること、または、
前記各画像の時間と前記その他の画像の時間とを比較することに基づく、請求項１に記載の方法。
【請求項４】
前記顔認識スコアは、前記候補の各々に対して最小閾値の数の候補スコアが決定された後にのみ決定される、請求項１に記載の方法。
【請求項５】
前記勝ち候補決定工程は、前記関連画像の１つのサブセットに対する前記候補についての集約された前記候補スコアを決定する工程を含む、請求項１に記載の方法。
【請求項６】
特定の候補に対する各候補スコアを、データストアに記憶する工程をさらに含む、請求項１に記載の方法。
【請求項７】
前記画像のセットのうち前記顔が現れる各画像において、前記勝ち候補として前記顔の識別結果を提示する工程をさらに含む、請求項１に記載の方法。
【請求項８】
前記関連画像のセットのうち前記顔が現れる各画像において、前記顔を識別するために最高スコアの候補の１セットの中から１つを選択するための選択肢をユーザに提示する工程をさらに含む、請求項１に記載の方法。
【請求項９】
一場面の一定の部分が、前記関連画像のセットの各々に描写されている、請求項１に記載の方法。
【請求項１０】
前記関連画像のセットは、ビデオクリップからのフレームを含む、請求項１に記載の方法。
【請求項１１】
前記顔が前記ビデオクリップの２つ以上のフレームに現れるときに、該顔を追跡する工程をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記候補選択工程は、該候補に対する信頼性レベルを決定する工程を含み、前記候補スコア決定工程は、該候補に対する前記信頼性レベルに基づいて前記候補スコアを決定する工程を含む、請求項１に記載の方法。
【請求項１３】
前記候補スコア決定工程は、該候補に対する最小閾値の信頼性レベルに基づいて該候補スコアを決定する工程を含む、請求項１２に記載の方法。
【請求項１４】
前記勝ち候補決定工程は、前記候補と前記プライマリユーザとの間の関連係数に基づいて該勝ち候補を決定する工程を含む、請求項１に記載の方法。
【請求項１５】
前記複数の候補スコアの集約値は、隠れマルコフモデルを使用する工程を含む、請求項１に記載の方法。
【請求項１６】
前記予想関数は、１以上の重み付けされた予測関数のセットを含む、請求項１に記載の方法。
【請求項１７】
プロセッサと、
非一時的マシン可読媒体であって、該プロセッサによって命令が実行されると、
モバイルデバイスによってキャプチャされる関連画像のセットを受信し、前記関連画像のセットはプライマリユーザに関連付けられており、前記関連画像の各々に顔が現れ、
少なくとも１つの前記顔が識別される可能性のある１つ以上の候補を選択し、前記候補の各々は、ソーシャルネットワークのユーザであり、前記候補の各々に対して算出される前記プライマリユーザの前記候補への関心についての親近感の尺度が閾値を超えており、前記候補の各々に対する親近感の尺度は、予想関数に基づいて算出され、
前記関連画像の各々に対して、前記候補の各々に対する候補スコアを決定し、特定の候補に対する候補スコアは、前記特定の候補が前記顔に対応する蓋然性を表し、前記候補スコアは、
前記特定の候補に対して算出される親近感の尺度と、
前記特定の候補と少なくとも１つの前記顔との顔認識比較と、に少なくとも部分的に基づいており、
前記候補の各々に対して顔認識スコアを決定し、特定の候補に対する顔認識スコアは、前記特定の候補に対する複数の候補スコアの集約値に基づいており、
前記顔認識スコアに基づいて１つ以上の勝ち候補を決定し、
前記１つ以上の勝ち候補の識別結果を提示する情報を送信し、該情報は、前記１つ以上の画像に関連してリアルタイムに提示されるように構成される、前記媒体とを含み、
前記特定の候補が、前記関連画像のセットにおける前記特定の画像の前の少なくとも最小数の画像において勝ち候補であると決定されたときにのみ、前記特定の候補は、複数の前記画像の中から特定の画像に対する勝ち候補として決定される、顔認識サーバ。
【請求項１８】
前記予想関数は、１以上の重み付けされた予測関数のセットを含む、請求項１７に記載の顔認識サーバ。
【請求項１９】
プライマリユーザに関連付けられたモバイルデバイスであって、
カメラと、
スクリーンと、
非一時的マシン可読記憶媒体と、
プロセッサであって、
モバイルデバイスによってキャプチャされる関連画像のセットを受信し、関連画像のセットは、プライマリユーザと、前記関連画像の各々に現れる顔とに関連付けられており、
ソーシャルネットワークの複数のユーザに関連付けられた情報にアクセスし、該ソーシャルネットワークにおいて、該ソーシャルネットワークのユーザの各々は前記プライマリユーザとつながっており、
少なくとも１つの該顔が識別される可能性のある１つ以上の候補を選択し、前記候補の各々は、前記ソーシャルネットワークのユーザのうちの１つに対応し、前記候補の各々に対して算出される前記プライマリユーザの前記候補への関心についての親近感の尺度が閾値を超えており、前記候補の各々に対する親近感の尺度は、予想関数に基づいて算出され、
前記関連画像の各々に対して、前記候補の各々に対する候補スコアを決定し、特定の候補に対する候補スコアは、前記特定の候補が前記顔に対応する蓋然性を表し、前記候補スコアは、
前記特定の候補に対して算出される親近感の尺度と、
前記特定の候補と少なくとも１つの前記顔との顔認識比較と、に少なくとも部分的に基づいており、
前記候補の各々に対して顔認識スコアを決定し、特定の候補に対する顔認識スコアは、前記特定の候補に対する複数の候補スコアの集約値に基づいており、
前記顔認識スコアに基づいて１つ以上の勝ち候補を決定し、
少なくとも１つの前記顔に前記１つ以上の勝ち候補とともに情報を前記スクリーン上に表示するための命令で構成される、前記プロセッサとを含み、
前記特定の候補が、前記関連画像のセットにおける前記特定の画像の前の少なくとも最小数の画像において勝ち候補であると決定されたときにのみ、前記特定の候補は、複数の前記画像の中から特定の画像に対する勝ち候補として決定される、モバイルデバイス。
【請求項２０】
前記予想関数は、１以上の重み付けされた予測関数のセットを含む、請求項１９に記載
のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ユーザが他のユーザとのつながりを形成できるソーシャルネットワーキングウェブサイトおよび他のシステムに関する。より詳細には、ソーシャルネットワークをホストとしたビデオ、写真、または他の媒体における顔の認識に関する。
【背景技術】
【０００２】
ソーシャルネットワーク、すなわち、ユーザ（人、企業、および他のエンティティを含む）を追跡し、ユーザ間のつながりを可能にするソーシャルユーティリティが近年普及してきている。特に、ソーシャルネットワーキングウェブサイトによって、ユーザはより効率的にしかもリアルタイムに情報を共有し消費できる。ソーシャルネットワーキングウェブサイトによって、ユーザは他のユーザと自分自身を関連付けることもできるため、ソーシャルネットワーキングウェブサイトのユーザの間でつながりのウェブ（網）を作成できる。ユーザ間のこれらのつながりは、ユーザの共有情報の観点においてより関連する情報を各ユーザに提供するウェブサイトを活用することによって、強められる。画像内の顔の認識は、従来のいくつかの任意の方法で実施され得る。顔認識に対するこのような従来の方法は、一般に、ソーシャルネットワークを通じて利用できる大量の追加情報を有利に利用していない。
【図面の簡単な説明】
【０００３】
【図１】ソーシャルネットワークの例示的なアーキテクチャの図。
【図２】ソーシャルネットワークに関連する画像に対して顔認識および候補スコア付けを実施するために使用される例示的なサーバの図。
【図３】画像内で検出された顔に対して候補が選択された画像の例の図。
【図４Ａ】一例示的実施形態において、ビデオクリップからの一連のフレームに対して候補をスコア付けする図。
【図４Ｂ】隠れマルコフモデルに基づく一例示的実施形態の概略図。
【図５】顔認識を実施するための一例示的実施形態のプロセスフロー図。
【図６】ビデオクリップを使用して顔認識を実施するための一例示的実施形態のプロセスフロー図。
【図７】特定の実施形態を実施するためのコンピュータシステム例の図。
【発明を実施するための形態】
【０００４】
特定の実施形態は、従来の固定およびモバイルの実施形態を含むソーシャルネットワーキングシステムおよび関連するシステムを含むソーシャルネットワーキング環境に関する。ソーシャルネットワーキングシステムは、そのユーザに、ソーシャルネットワーキングシステムの他のユーザと通信して対話する能力を提供する。ユーザはソーシャルネットワーキングシステムに参加し、次いで、ユーザがつながりたい任意の数の他のユーザとのつながりを追加する。ユーザがソーシャルネットワークのメンバになれば、ユーザは、自分自身のページ上で画像やビデオを閲覧したり投稿することによって、または、位置に基づくソーシャルネットワーキング情報を閲覧したり投稿するためにモバイルデバイスを使用することによって、ソーシャルネットワーク自体と対話できる。
【０００５】
特定の実施形態では、ユーザは、ユーザのソーシャルネットワーク内の人に関してリアルタイムの顔認識を含む写真および／またはビデオをキャプチャできる。ビデオクリップまたは１組の関連する画像内のそれぞれの画像が処理されているときに、顔が検出され追跡される。画像内の１つの所与の顔に対して、その顔を識別する可能性のあるさまざまな候補が、（可能な場合には）ユーザのソーシャルネットワークから選択される。信頼性レ
ベル、ユーザと候補に関する関連係数、ビデオおよび／または画像がキャプチャされた時点での候補のユーザに対する物理的な近接性などを含むがそれらに限定されない任意の数の要因に基づいて、画像内の顔の識別に関するそれぞれの候補がスコア付けされる。顔は、一連の画像またはビデオフレームを通して追跡されるので、各画像内で個別の候補スコアが計算され全体の候補スコアに取り入れられる。
【０００６】
一実施形態では、モバイルデバイスを利用して、ユーザがビデオをキャプチャしたり、あるいは別の方法で環境を閲覧しているときに、顔認識がリアルタイムに実施され、ユーザのソーシャルネットワーク内の友達に対応する可能性のある、ビデオ内で検出された任意の顔を識別する提案を提供する。一実施形態では、ユーザが以前にキャプチャされたビデオをコンピューティングデバイス上で閲覧している場合に、ビデオが再生されているときにリアルタイムに顔認識が実施され、ユーザのソーシャルネットワーク内の友達に対応する可能性のある、ビデオ内の検出された任意の顔を識別する提案を提供する。いくつかの実施形態では、例えば、一連の関連する写真を含む従来の写真に対して顔認識をリアルタイムに実施する。いくつかの実施形態は、画像および／またはビデオフレーム中で最小閾値数の顔が検出されない場合には、識別する提案を行わない。他の実施形態は本開示により容易に想起され、さらに以下で詳細に記載される。
【０００７】
図は、例示のみを目的としており、本開示のさまざまな実施形態を描写したものである。本明細書に図示された構成および方法の代替の実施形態が、本明細書に記載の本発明の原理から逸脱することなく利用されることが、以下の説明から当業者には容易に理解されるであろう。
【０００８】
図１は、画像および／またはビデオに対する顔認識がソーシャルネットワークに関連して実装される例示的な環境１００を示す。環境１００は、サーバ１１０、ネットワーク１３０、ならびに、ユーザデバイス１４０および１５０を含む。ソーシャルネットワークデータストア１２０は、サーバ１１０上に配置されるか、サーバ１１０からアクセスされる。サーバ１１０は、ユーザのアクティビティを監視し、画像および／またはビデオがキャプチャされた場合に顔認識を実施する。データストア１２０は、ソーシャルネットワークのユーザによってアクセスされるユーザ情報を記憶する。サーバ１１０およびデータベース１２０は、本明細書でさらに説明される。ネットワーク１３０は、サーバ１１０とユーザデバイス１４０、１５０との間で通信するための媒体を提供する。ネットワーク１３０は、インターネット、モバイルデバイスのキャリアネットワークなどの無線もしくは有線ネットワーク、または、サーバとクライアントとの通信に使用できる任意の他のネットワークであってもよい。
【０００９】
一実施形態では、ユーザデバイス１４０は、サーバ１１０によって監視されているアクションをユーザが開始することで使用される。ユーザデバイス１５０は、監視されているアクションを受け取ることで使用される。ユーザデバイス１４０および１５０は、それぞれ、デスクトップコンピュータ、あるいは、モバイルデバイスなどの任意の適切なコンピューティングデバイスであってもよく、例えば、モバイルフォン、携帯電話、スマートフォン、携帯情報端末、ノートブックコンピュータ、タブレットコンピュータ、ラップトップコンピュータ、カメラ、ビデオカメラ、または、ハンドヘルドゲームコンソールなどである。
【００１０】
図２は、ソーシャルネットワークに関連する画像に対する顔認識および候補スコア付けを実施するために使用できるサーバ１１０のアーキテクチャの一例示的実施形態を示す。いくつかの実施形態では、サーバ１１０は、画像受信モジュール２１０を含む。画像受信モジュール２１０は、ビデオクリップ、デジタルもしくはデジタル化された写真からの画像、および／または、キャプチャ、アップロード、プライマリユーザからストリーミング
された他の画像、およびプライマリユーザに起因するその他の画像を受信できる。いくつかの実施形態では、画像受信モジュール２１０は、画像がキャプチャ、アップロード、および／またはストリーミングされているときに画像を記憶できる。
【００１１】
いくつかの実施形態では、サーバ１１０は、画像内の顔を検出および／または追跡するために、画像受信モジュール２１０によって受信された画像に対して操作を行う顔検出追跡モジュール２２０を含む。任意の従来技術は、画像内の顔の検出およびビデオクリップなどの一連の画像内の顔の追跡をするために使用される。顔検出追跡モジュール２２０は、それ自体で顔の検出と追跡を実施してもよく、あるいは、そうした機能を実施する別のサーバまたはサードパーティのサービスと対話するインタフェースであってもよい。
【００１２】
いくつかの実施形態では、サーバ１１０は、顔の識別のための候補を選択するために、顔検出追跡モジュール２２０によって検出される顔に対して操作を行う認識モジュール２３０を含む。任意の従来技術は、画像内の顔の認識のために使用される。いくつかの実施形態では、候補がそこから選択されるユーザのプールは、プライマリユーザにつながっているソーシャルネットワークのユーザのセットを含む。いくつかの実施形態では、候補がそこから選択されるユーザのプールは、プライマリユーザと所与の親近感があるソーシャルネットワークのユーザ（例えば、ある特定のグループに所属するユーザ、趣味／興味を共有するユーザ、または同じ学校から入学しているユーザ）のセットを含む。いくつかの実施形態では、候補がそこから選択されるユーザのプールはまた、公人、有名人、および／または他の著名人を含むことができる。認識モジュール２３０は、それ自体で顔の認識を実施しても、あるいは、そうした機能を実施する別のサーバまたはサードパーティのサービスと対話するインタフェースであってもよい。いくつかの実施形態では、顔検出追跡モジュール２２０および認識モジュール２３０は、これらの機能すべてを実施する別のサーバまたはサードパーティのサービスと対話する単一のインタフェースを含んでもよい。
【００１３】
サーバ１１０はまた、候補スコア付けモジュール２４０を含むことができる。候補スコア付けモジュール２４０は、１または複数の要因のうちのいずれかを取り入れたアルゴリズムに基づいて、認識モジュール２３０によって選択される候補をスコア付けする。いくつかの実施形態では、候補スコア付けモジュール２４０のアルゴリズムは、ソーシャルネットワーク内においてプライマリユーザにつながっている各候補に対するソーシャルネットワーキング情報（例えば、ユーザのアイデンティティやプロファイル、分離度、プライマリユーザとの関連係数）を取り入れている。
【００１４】
係数スコアは、任意の数の変数に基づいて計算される。例えば、任意の２つのユーザ間での情報の対話が増加するとより高い係数スコアにされ、両者はより親密な実世界での友達であることが推測される。同様に、相互の友達が多いことによって、係数スコアは増加される。２以上のユーザ間の係数スコアを計算する方法は周知である。係数スコアの計算方法にかかわらず、候補スコア付けモジュール２４０がプライマリユーザと候補のそれぞれとの間の係数スコアを入手すると、候補スコア付けモジュール２４０はその係数スコアをアルゴリズムに取り入れることができる。例えば、最小の閾値を超える係数スコアを有する候補は、そのユーザが実生活で親しい友達であることを示しており、プライマリユーザと同じ写真に存在する可能性がより高い。いくつかの実施形態では、プライマリユーザからの分離度に対する最大の閾値内の候補に対してのみ係数情報が取り出される。いくつかの実施形態では、情報はプライマリユーザと特定の関連係数を有する候補に対してのみ取り出される。関連係数のさらなる詳細の記述は、２０１０年１２月２３日に出願された米国特許出願第１２／９７８，２６５号「ソーシャルネットワーキングシステムにおけるコンテキスト的に関連する親和性の予測（Ｃｏｎｔｅｘｔｕａｌｌｙ  Ｒｅｌｅｖａｎｔ
Ａｆｆｉｎｉｔｙ  Ｐｒｅｄｉｃｔｉｏｎ  ｉｎ  ａ  Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋｉｎｇ  Ｓｙｓｔｅｍ）」に見出され、その内容のすべては本願明細書に援用される。
【００１５】
いくつかの実施形態では、候補スコア付けモジュール２４０は、認識モジュール２３０からの他の情報を取り入れることができ、他の情報は、例えば、信頼性レベルなどであり、信頼性レベルは、所与の検出された顔を識別できる候補として選択された各候補の有する信頼性のレベルを定量化する。いくつかの実施形態では、ソーシャルネットワーキング情報は、最小の信頼性レベルで選択された候補に対してのみ取り出される。特定の候補選択に対する信頼性レベルが特定の閾値（例えば、０．５５）を超えるいくつかの実施形態では、その候補のスコアは、特定の要因によって増加される（例えば、０．５５の信頼性レベルが０．７０に増加される）。
【００１６】
いくつかの実施形態では、サーバ１１０はまた、候補スコアレジストリ２５０を含むことができる。候補スコアレジストリ２５０は、候補スコア付けモジュール２３０によって各候補のスコアを記録するために使用される。いくつかの実施形態では、候補スコア付けモジュール２４０のためのアルゴリズムは、１つの画像内に検出された顔のそれぞれに対する個別の画像スコアを決定する。そのような個別の画像スコアは、候補スコアレジストリ２５０に記憶されてもよい。ビデオクリップの複数のフレーム、あるいは、ほぼ同じ時間やほぼ同じ場所でそのすべてが撮影された一連の静止画写真などの一連の画像に対しては、候補スコアレジストリ２５０は、個別の画像スコアだけでなく、関連する検出された顔が現れるすべての画像に関するそれぞれの候補に対する総スコアを記憶できる。いくつかの実施形態では、候補スコア付けモジュール２４０のアルゴリズムは、隠れマルコフモデルに基づく。
【００１７】
いくつかの実施形態では、サーバ１１０はまた、ソーシャルネットワークデータストア１２０を含む。いくつかの実施形態では、サーバ１１０は、通信可能にソーシャルネットワークデータストア１２０に接続されており、プライマリユーザに関連付けられたプロファイル情報および関連情報にアクセスする。サーバ１１０はまた、識別が承認（コンファーム）された（例えば提案タグが承認された）顔を有する画像を記憶する画像ストア２６０を含むか、あるいはそれにアクセスできる。いくつかの実施形態では、サーバ１１０は、機械学習技法および画像ストア２６０からの画像を用いてトレーニングされ、正確に顔を認識する、および／または検出された顔に対する候補を正確にスコア付けする。
【００１８】
サーバ１１０は、アプリケーション、モジュール、ユーザデータ、および／または他の情報を記憶するメモリ２７０を含むことができる。いくつかの実施形態では、アプリケーション、モジュール、および／またはデータストア１２０は、いくつかのサーバ上のメモリに常駐する場合がある（図示せず）。
【００１９】
図３は、プライマリユーザによってキャプチャされた画像３００を示す。一例示的実施形態では、この画像上で顔認識が実施される。いくつかの実施形態では、画像３００は写真を含む。いくつかの実施形態では、画像３００はビデオクリップのフレームを含む。画像３００の例では、顔は３つの人物３１０、３２０、および３３０に対して検出された。３つの人物３１０、３２０、および３３０のそれぞれに対して、顔の検出が好適に実施され、画像３００中の領域３１５、３２５、および３３５におけるそれぞれの顔が検出された。
【００２０】
一例示的実施形態では、画像３００の領域３１５において検出された顔に対する候補が認識され、選択される（ソーシャルネットワークにおいて最小の分離度内でプライマリユーザにつながっているユーザのプールから選択された候補である）。いくつかの実施形態では、選択される候補の数は、候補の最大閾値数に限定される。次いで、候補スコア付けアルゴリズムに従って、３つの候補「ダン」、「ボブ」、および「ビル」に対するスコアが決定される。図３に示すように、候補「ダン」に対して０．７２のスコアが決定される
。候補スコア付けアルゴリズムは、例えば、顔認識および候補選択に関連して決定される信頼性レベル、候補「ダン」とプライマリユーザとの間などの関連係数、およびその他の関連する要因などのいくつかの要因に基づいてスコアを決定できる。
【００２１】
候補「ダン」が領域３１５で検出された顔の識別に対する勝者（ｗｉｎｎｅｒ）か否かを判断する勝ち候補アルゴリズムはまた、以下のような他の要因も考慮し得るものであり：それらの要因とは、（１）「ダン」は、画像がキャプチャされたときにプライマリユーザと密接な物理的な近接性があると判断されたかということ、（２）同じ場所で撮影されたいくつかの高速静止画写真またはビデオ内の一場面における複数のフレームなどの一連の関連する画像に対して、「ダン」がＭ個の画像のうち最後のＮ個において勝ち候補（ｗｉｎｎｉｎｇ  ｃａｎｄｉｄａｔｅ）であったかということ（ここでＮは画像の最小閾値数であり、Ｍは、一連の関連する画像のすべてまたはサブセットの一部を含む）、（３）候補「ダン」とプライマリユーザとの間の関連係数、（４）他の関連する要因、等である。いくつかの実施形態では、例えば、一連の関連する画像に関しては、検出された顔が現れ、Ｍ個の画像のうち最後のＮ個において勝ち候補であると判断されなければ、検出された顔に対する勝ち候補が決定されない。
【００２２】
いくつかの実施形態では、「より古い」、すなわち、より最近でない候補スコアが失効する場合がある。例えば、「ダン」がビデオフレーム１〜５、４４〜６７、および７０〜７２で検出された所与の顔に対する勝ち候補であると決定される場合には、フレーム７７〜９０に対する勝ち候補を評価する際には、フレーム１〜５で「勝ち」（ｗｏｎ）とされた「ダン」の顔が無視される場合がある。
【００２３】
いくつかの実施形態では、一連の関連する画像に対して、検出された顔に対する同じ勝ち候補がＱ個の画像のうちの最後のＰ個に対して選択されると、一連の関連する画像の後続の画像であって、同じ検出された顔を含む画像において、同じ勝ち候補が推定される。ここでＰは画像の最大の閾値数であり、Ｑは一連の関連する画像のすべてまたはサブセットの一部を含む。
【００２４】
いくつかの実施形態では、候補スコア付けアルゴリズムの機能および勝ち候補アルゴリズムの機能は、統合されるか単一のプロセスとして動作してもよい。
図４Ａは、一例示的実施形態における、ビデオクリップからの一連の３つのフレームに亘って一連の関連する画像からの個々の画像の中で候補スコア付けを行う例を示す。例示するように、各フレームにおいて、３つの候補の１つのセット（「ダン」、「ボブ」、および「ビル」）が選択されスコア付けされた。この例では、同じ３つの候補が、３つのフレームのそれぞれで選択されたが、いくつかの実施形態では、一連の関連する画像中の画像に対して、候補の異なるセットおよび異なる数の候補を選択できる。フレーム１では、候補「ダン」のスコアは０．７２である。候補「ダン」のスコアはフレーム２では０．６８に低下するが、フレーム３では０．８４に上昇する。いくつかの実施形態では、一連の関連する画像中の画像間の候補スコアのこうした変動は、上記で説明した要因に基づく場合がある。いくつかの実施形態では、候補スコア付けアルゴリズムはまた、一連の関連する画像における前の画像からの候補スコアも考慮する場合がある。いくつかの実施形態では、候補スコア付けアルゴリズムは、一連の関連する画像内の直前の画像において決定された候補スコアのみを考慮する場合がある。
【００２５】
図４Ｂは、一例示的実施形態に対する隠れマルコフモデルに基づく概略図を示す。図４Ｂの例に示すように、フレーム１が最初に処理され、顔が検出され、候補「ダン」、「ボブ」、および「ビル」が選択されスコア付けされる。図示されるように、候補スコア付けアルゴリズムはフレーム１に対する画像ベースの候補スコアを作成する。すなわち、候補「ダン」は０．７２、候補「ボブ」は０．３４、候補「ビル」は０．２６である。勝ち候
補アルゴリズムは、次いで追加の要因を適用して、フレーム１で検出された顔に対する勝ち候補（ＷＦ１）を（勝ち候補スコア０．７８を有する）「ダン」と決定する。いくつかの実施形態では、各画像に対する勝ち候補が候補スコアレジストリ２５０に記憶される。いくつかの実施形態では、フレーム１で検出された顔を識別する勝ち候補を「ダン」とした決定が、フレーム２に適用される候補スコア付けアルゴリズムに取り入れられる。
【００２６】
いくつかの実施形態では、３つのフレームのすべてに存在する検出された顔に対する候補を解析した後、一連のすべての画像に関する最終の勝ち候補として、「ダン」が選択される。現在の画像の候補として以前の画像の勝ち候補が選択されるいくつかの実施形態では、候補スコア付けアルゴリズムが、現在の画像に関する候補のスコアを増加させる。いくつかの実施形態では、最終の勝ち候補は、一連の関連する画像中の各画像に対する各候補のスコアを記憶し、次いで、それらの画像に基づくすべてのスコアの各候補に対する合計を求めることによって決定される。いくつかの実施形態では、最終の勝ち候補は、隠れマルコフモデル、または他の任意の類似のアルゴリズムを使用して決定される。
【００２７】
いくつかの実施形態では、以前に識別された顔を含む一連の関連する既知の画像が、認識モジュールおよび／または候補スコア付けアルゴリズムおよび／または勝ち候補アルゴリズムをトレーニングするために使用される場合がある。
【００２８】
図５は、１または複数の実施形態に従って顔認識を実施する方法の例を示す。プライマリユーザに関連付けられた１または複数の画像セットが受信または取り出される（５１０）。１または複数の顔が、１または複数の画像内で検出される（５２０）。１または複数の画像が一連の関連する画像を含む場合には、それぞれの検出された顔は、一連の関連する画像に亘って追跡されてもよい。各画像内のそれぞれの検出された顔に対して、顔が識別される可能性のある１または複数の候補のセットが選択される（５３０）。その顔に関連する各候補に対する候補スコアが決定される（５４０）。いくつかの実施形態では、それぞれの候補スコアは、画像３００が表示され、アップロードされ、キャプチャされ、および／またはストリーミングされているときにリアルタイムに決定される。次いで、その顔に関連付けられたすべての候補の中から勝ち候補が決定される（５６０）。最後に、その顔が勝ち候補であることを、タグ付けする、承認する、またはそれ以外に、持続的に識別するための提案が提示される（５７０）。いくつかの実施形態では、勝ち候補がリアルタイムに決定され、識別結果および／または提案が画像３００に関連して提示される。いくつかの実施形態では、検出された顔に対する正確な識別結果として最高スコアの候補の中の１つをタグ付けする、承認する、またはそれ以外に、持続的に識別する選択肢とともに、最高スコアの候補が画像３００に関連して提示される。
【００２９】
図６は、モバイルデバイス上でキャプチャされているビデオクリップ内で顔認識を実施する方法の例を示す。プライマリユーザに関連付けられた画像（すなわちビデオフレーム）が、モバイルデバイスに取り入れられたカメラによってキャプチャされているときにモバイルデバイス上で受信される（６１０）。関連する画像のセット中のそれぞれの画像に対して（６２０）、１または複数の顔が、関連する画像のセット中で検出および／または追跡される（６２２）。各画像内の検出された顔のそれぞれに対して、顔として識別される可能性のある１または複数の候補のセットが選択される（６２４）。顔に関連付けられたそれぞれの候補に対する候補スコアが決定される（６２６）。候補に対する候補スコアは、次いで候補スコアレジストリに記憶される（６２８）。検出された顔を含む最小の閾値数の画像が解析された場合には（６３０）、各候補に対する最終スコアが計算され勝ち候補を決定する（６４０）。各候補とプライマリユーザとの間の関連係数が適用され、候補スコアを修正したり、候補を削除したりする。最後に顔に対する勝ち候補が決定され（６６０）、その顔が勝ち候補であることを、タグ付けする、承認する、またはそれ以外に、持続的に識別するための提案が提示される（６７０）。いくつかの実施形態では、検出
された顔を含む最小の閾値数の画像が解析されなかった場合には、そのような提案は提示されない。
【００３０】
特定の実施形態では、図５および図６に示される方法は、図２に記載されるサーバを取り入れたシステムを使用して実施されてもよい。特定の実施形態では、図５および図６に示される方法は、モバイルデバイスを使用してそのすべてが実施されてもよい。
【００３１】
図７は、コンピュータシステム７００の例を示す。特定の実施形態では、１または複数のコンピュータシステム７００が、本明細書に記載または図示される１または複数の方法の１または複数の工程を実施する。特定の実施形態では、１または複数のコンピュータシステム７００が、本明細書で記載または図示される機能を提供する。特定の実施形態では、１または複数のコンピュータシステム７００で実行されるソフトウェアが、本明細書に記載または図示される１または複数の方法の１または複数の工程を実施するか、または、本明細書に記載または図示される機能を提供する。特定の実施形態は、１または複数のコンピュータシステム７００の１または複数の部分を含む。
【００３２】
本開示は、任意の適切な数のコンピュータシステム７００を想定する。本開示は、任意の適切な物理形式であるコンピュータシステム７００も考慮する。例としてそれらに限定されるものではないが、コンピュータシステム７００は、組み込みコンピュータシステム、システムオンチップ（ＳＯＣ）、（例えば、コンピュータオンモジュール（ＣＯＭ）またはシステムオンモジュール（ＳＯＭ）などの）単一ボードコンピュータシステム（ＳＢＣ）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイルフォン、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、または、これらの２以上の組み合わせであってもよい。必要に応じて、コンピュータシステム７００は、集中型もしくは分散型の、複数の場所に及んでいる、複数のマシンに及んでいる、複数のデータセンタに及んでいる、または、１または複数のネットワーク上の１または複数のクラウドのコンポーネントを含むクラウドに常駐する、１または複数のコンピュータシステム７００を含んでよい。必要に応じて、１または複数のコンピュータシステム７００は、十分な空間的、あるいは時間的な制限なしに、本明細書に記載または図示される１または複数の方法の１または複数の工程を実施できる。例としてそれに限定されるものではないが、１または複数のコンピュータシステム７００は、本明細書に記載または図示される１または複数の方法の１または複数の工程を、リアルタイムまたはバッチモードで実施できる。１または複数のコンピュータシステム７００は、必要に応じて、異なる時間または異なる場所で、本明細書に記載または図示される１または複数の方法の１または複数の工程を実施できる。
【００３３】
特定の実施形態では、コンピュータシステム７００は、プロセッサ７０２、メモリ７０４、ストレージ７０６、入／出力（Ｉ／Ｏ）インタフェース７０８、通信インタフェース７１０、および、バス７１２を含む。本開示は、特定の配置で特定の数の特定の構成要素を有する特定のコンピュータシステムを記載し図示しているが、本開示は、任意の適切な配置で任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータシステムを考慮する。
【００３４】
特定の実施形態では、プロセッサ７０２は、コンピュータプログラムを構成するなどの命令を実行するハードウェアを含む。例としてそれらに限定されるものではないが、命令を実行するために、プロセッサ７０２は、内部レジスタ、内部キャシュ、メモリ７０４、またはストレージ７０６から命令を取り出し（すなわちフェッチし）、それらをデコードして実行し、次いで１または複数の結果を、内部レジスタ、内部キャシュ、メモリ７０４、またはストレージ７０６に書き込むことができる。特定の実施形態では、プロセッサ７
０２は、データ、命令、またはアドレス用の１または複数の内部キャシュを含む場合がある。本開示は、特定のプロセッサを記載し図示しているが、本開示は、任意の適切なプロセッサを考慮する。
【００３５】
特定の実施形態では、メモリ７０４は、プロセッサ７０２が実行する命令またはプロセッサ７０２が操作するデータを記憶するメインメモリを含む。例としてそれに限定されるものではないが、コンピュータシステム７００は、ストレージ７０６または別のソース（例えば、別のコンピュータシステム７００など）からメモリ７０４へ命令をロードできる。プロセッサ７０２は、次いでメモリ７０４から内部レジスタまたは内部キャッシュへ命令をロードできる。命令を実行するために、プロセッサ７０２は、内部レジスタまたは内部キャッシュから命令を取り出しそれらをデコードできる。命令実行中または実行後、プロセッサ７０２は、１または複数の結果（中間または最終の結果であってもよい）を内部レジスタまたは内部キャッシュに書き込むことができる。プロセッサ７０２は次いで１または複数のそれらの結果をメモリ７０４に書き込むことができる。特定の実施形態では、プロセッサ７０２は、１または複数の内部レジスタもしくは内部キャッシュ、または（ストレージ７０６またはその他の場所ではなく）メモリ７０４に存在する命令のみを実行し、１または複数の内部レジスタもしくは内部キャッシュ、または（ストレージ７０６またはその他の場所ではなく）メモリ７０４に存在するデータのみを操作する。１または複数のメモリバス（バスはアドレスバスおよびデータバスをそれぞれ含むことができる）によって、プロセッサ０２はメモリ７０４に結合される。バス７１２は、以下に記載するように、１または複数のメモリバスを含んでもよい。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）がプロセッサ７０２とメモリ７０４との間に常駐し、プロセッサ７０２で要求されるメモリ７０４へのアクセスを容易にする。本開示は、特定のメモリを記載し図示しているが、本開示は、任意の適切なメモリを考慮する。
【００３６】
特定の実施形態では、ストレージ７０６は、データまたは命令用の大容量ストレージを含む。ストレージ７０６は、必要に応じて、取り外しできるあるいは取り外しできない（すなわち固定された）媒体を含むことができる。ストレージ７０６は、必要に応じて、コンピュータシステム７００の内部または外部にあってもよい。特定の実施形態では、ストレージ７０６は、不揮発性の半導体メモリである。必要に応じて、ストレージ７０６は１または複数のストレージ７０６を含むことができる。本開示は、特定のストレージを記載し図示しているが、本開示は、任意の適切なストレージを考慮する。
【００３７】
特定の実施形態では、Ｉ／Ｏインタフェース７０８は、コンピュータシステム７００と１または複数のＩ／Ｏデバイスとの間の通信用の１または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム７００は、必要に応じて、１または複数のこれらのＩ／Ｏデバイスを含むことができる。１または複数のこれらのＩ／Ｏデバイスは、人とコンピュータシステム７００との間の通信を可能にできる。例としてそれらに限定されるものではないが、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止画カメラ、タッチペン、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、他の適切なＩ／Ｏデバイスまたはこれらの２以上の組み合わせであってもよい。Ｉ／Ｏデバイスは、１または複数のセンサを含むことができる。本開示は、それらに対する任意の適切なＩ／Ｏデバイスおよび任意の適切なＩ／Ｏインタフェース７０８を考慮する。必要であれば、Ｉ／Ｏインタフェース７０８は、プロセッサ７０２が１または複数のこれらのＩ／Ｏデバイスを駆動できる１または複数のデバイスまたはソフトウェアドライバを含むことができる。Ｉ／Ｏインタフェース７０８は、必要に応じて、１または複数のＩ／Ｏインタフェース７０８を含むことができる。本開示は、特定のＩ／Ｏインタフェースを記載し図示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを考慮する。
【００３８】
特定の実施形態では、通信インタフェース７１０は、コンピュータシステム７００と１または複数の他のコンピュータシステム７００もしくは１または複数のネットワークとの間の通信（例えば、パケットベースの通信）用の１または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。例としてそれらに限定されるものではないが、通信インタフェース７１０は、イーサネット（登録商標）もしくは他の有線ネットワークと通信するネットワークインタフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、または、Ｗｉ−Ｆｉネットワークなどの無線ネットワークと通信する無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタであってもよい。本開示は任意の適切なネットワークおよびそのための任意の適切な通信インタフェース７１０を考慮する。本開示は、特定の通信インタフェースを記載し図示しているが、本開示は、任意の適切な通信インタフェースを考慮する。
【００３９】
特定の実施形態では、バス７１２は、コンピュータシステム７００の構成要素を互いに結合したハードウェア、ソフトウェア、またはその両方を含む。本開示は、特定のバスを記載し図示しているが、本開示は、任意の適切なバスまたはインタコネクトを考慮する。
【００４０】
本明細書では、コンピュータ可読記憶媒体への言及は、１または複数の非一時的な有形のコンピュータ可読記憶媒体処理構造を包含する。例としてそれらに限定されるものではないが、コンピュータ可読記憶媒体は、半導体ベースの回路もしくは集積回路（ＩＣ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）など）、ハードディスク、ＨＤＤ、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、磁気光ディスク、磁気光ドライブ、フロッピー（登録商標）ディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカード、セキュアデジタルドライブ、または必要に応じて、他のコンピュータ可読記憶媒体もしくはこれらの２以上の組み合わせであってもよい。本明細書では、コンピュータ可読記憶媒体への言及は、３５Ｕ．Ｓ．Ｃ．§１０１による特許保護に不適切な任意の媒体を除外する。本明細書では、コンピュータ可読記憶媒体への言及は、３５Ｕ．Ｓ．Ｃ．§１０１による特許保護に不適切な範囲における、信号伝送の一時的な形式（例えば、伝搬する電子的または電磁気的な信号など）を除外する。非一時なコンピュータ可読記憶媒体は、必要に応じて、揮発性、不揮発性、または揮発性と不揮発性の組み合わせであってもよい。
【００４１】
本開示は、任意の適切なストレージを実装する１または複数のコンピュータ可読記憶媒体を考慮する。特定の実施形態では、コンピュータ可読記憶媒体は、プロセッサ７０２の１または複数の部分（例えば、１または複数の内部レジスタまたはキャッシュなど）、メモリ７０４の１または複数の部分、ストレージ７０６の１または複数の部分、または必要に応じて、これらの組み合わせを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、ＲＡＭまたはＲＯＭを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、揮発性または持続性のメモリを実装する。特定の実施形態では、１または複数のコンピュータ可読記憶媒体は、ソフトウェアによって具現化される。本明細書では、ソフトウェアの言及は、１または複数のアプリケーション、バイトコード、１または複数のコンピュータプログラム、１または複数の実行ファイル、１または複数の命令、論理、マシンコード、１または複数のスクリプト、およびソースコードを包含することができ、必要に応じて、逆も場合のまた同様である。特定の実施形態では、ソフトウェアは、１または複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。本開示は、記述された、または、そうでなければ任意の適切なプログラミング言語もしくはプログラミング言語の組み合わせで表現された任意の適切なソフトウェアを考慮する。特定の実施形態では、ソフトウェアは、ソースコードまたはオブジェクトコードとして表現される。
【００４２】
本明細書では、別途明確に示されていない限りまたは別途文脈で示されていない限り、「または」は、包含的であり、排他的ではない。したがって、本明細書では、「ＡまたはＢ」は、別途明確に示されていない限りまたは別途文脈で示されていない限り、「Ａ、Ｂ、または両方」を意味する。さらに、「および」は、別途明確に示されていない限りまたは別途文脈で示されていない限り、連帯と個別の両方である。したがって、本明細書では、「ＡおよびＢ」は、別途明確に示されていない限りまたは別途文脈で示されていない限り、「連帯的にまたは個別的にＡおよびＢ」を意味する。
【００４３】
本開示は、当業者であれば理解されるであろう本明細書における実施形態例に対するすべての変更、代替、変形、改変、修正を包含する。同様に、必要な場合には、添付の特許請求の範囲は、当業者であれば理解されるであろう本明細書における実施形態例に対するすべての変更、代替、変形、改変、修正を包含する。さらに、添付の特許請求の範囲において、ある特定の機能を実施するように、適合される、配置される、能力付与される、構成される、可能にされる、動作可能である、または、動作的である、デバイスもしくはシステムまたはデバイスもしくはシステムの構成要素に言及した場合、それ自体またはその特定の機能が作動、起動、またはロック解除されるか否かにかかわらず、デバイス、システム、または構成要素がそのように適合される、配置される、能力付与される、構成される、可能にされる、動作可能にされる、または動作的にされる限り、そのようなデバイス、システムまたは構成要素を包含するものである。
【００４４】
本発明の実施形態の前述の記載は、例示の目的で提示されたものであり、網羅的であること、または、実施形態の開示された精密な形態に、本発明を限定する意図はない。上記開示を考慮すると、多くの修正および改変が可能であることが当業者には理解されるであろう。例えば、前述の実施形態は、ソーシャルネットワークシステムのコンテキストで記載されてきたが、本発明は、たとえそれがウェブサイトを通して提供されていなくとも、任意の電子的なソーシャルネットワークサービスで使用できることが当業者には明らかであろう。ソーシャルネットワーキングの機能を提供する任意のコンピュータベースシステムは、例えば、それが電子メール、インスタントメッセージ、あるいはピアツーピア通信の他の形式、およびユーザ間の通信のための任意の他の技術に依るものであっても、本発明に従って利用され得る。本発明は、したがって、通信システム、ネットワーク、プロトコル、フォーマット、またはアプリケーションの任意の特定のタイプに限定されない。
【００４５】
本記述のいくつかの部分は、情報に対する操作のアルゴリズムおよびシンボリックな表現の観点から本発明の実施形態を記載している。これらのアルゴリズム的な記述および表現は、他の当業者に効果的に仕事の内容を伝えるために、データ処理分野における当業者によって一般的に使用される。これらの操作は、機能的に、コンピュータ的に、または論理的に記載されているが、コンピュータプログラム、または等価な電気回路、マイクロコードなどによって実装されることが理解される。さらに、一般性を損なうことなく、これらの操作の配列をモジュールと呼ぶことも、時には便利であることが分かっている。記載された操作およびそれらに関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはその任意の組み合わせの中で具現化できる。
【００４６】
本明細書で記載される工程、操作、処理は、単独あるいは他のデバイスと組み合わせた１または複数のハードウェアまたはソフトウェアモジュールで実施または実装できる。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体を含むコンピュータプログラムプロダクトにおいて実装される。このコンピュータプログラムコードは、記載された任意またはすべての工程、操作、処理を実施するために、コンピュータのプロセッサによって実行される。
【００４７】
本発明の実施形態はまた、本明細書中の操作を実施する装置に関連する場合がある。こ
の装置は、要求される目的のために特別に構成されたもの、および／または、コンピュータに記憶されたコンピュータプログラムによって選択的に起動もしくは再構成される汎用コンピューティングデバイスであってもよい。このようなコンピュータプログラムは、コンピュータのシステムバスに結合された、有形のコンピュータ可読記憶媒体または電子的な命令を記憶するのに適した任意のタイプの媒体に記憶されてもよい。さらに、本明細書の中で言及される任意のコンピューティングシステムは、単一のプロセッサであっても、コンピューティング能力を向上させるように設計された複数のプロセッサを用いたアーキテクチャであってもよい。
【００４８】
前述の処理およびメカニズムは、種々多様な物理的なシステムによって、ならびに種々多様なネットワークおよびコンピューティング環境の中において実装されるが、以下に記載するサーバまたはコンピューティングシステムは、限定するのではなく教示する目的でコンピューティングシステムアーキテクチャ例を提供している。
【００４９】
本発明は特定の実施形態に言及して説明されてきた。例えば、本発明の実施形態はソーシャルネットワークシステムに接続して動作するものとして記載されてきたが、本発明は、ユーザ間でメッセージを通信する任意の通信設備、例えば電子メールのホスティングサイトなどに接続して使用される。他の実施形態も当業者には明らかであろう。したがって、添付の特許請求の範囲で示される場合を除いて、本発明を限定する意図はない。
【００５０】
最後に、本明細書で使用される言語は、原則として、読みやすさと教示を目的にして選択されてきた。それは、本発明の主題に対してその輪郭や境界を定めるために選択されてきたわけではない。したがって、この詳細な記載により本発明の範囲を限定することを意図したものではなく、むしろ本明細書に基づく出願に由来する任意の特許請求の範囲によって限定される。したがって、本発明の実施形態の開示は、例示することを意図しており、以下の特許請求の範囲の中で記載する本発明の範囲を限定するものではない。
【図１】
0005826947.tif 000002
【図２】
0005826947.tif 000003
【図３】
0005826947.tif 000004
【図４Ａ】
0005826947.tif 000005
【図４Ｂ】
0005826947.tif 000006
【図５】
0005826947.tif 000007
【図６】
0005826947.tif 000008
【図７】
0005826947.tif 000009