(57)【要約】  システム、方法、および非一時的コンピュータ可読媒体が、ニュートラル表情または位置をもつ第１のユーザの顔を示す第１のユーザの第１の画像を取得することができる。ニュートラル表情または位置をもつ第２のユーザの顔を示す第２のユーザの第１の画像が識別され得、第２のユーザの顔は、しきい値の満足に基づいて第１のユーザの顔と同様である。ニュートラル表情または位置とは異なる表情または位置をもつ第２のユーザの顔を示す第２のユーザの第２の画像に基づいて、ニュートラル表情または位置とは異なる表情をもつ第１のユーザの顔を示す第１のユーザの第２の画像が生成され得る。【選択図】図１
2021512382.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムによって、ニュートラル表情または位置をもつ第１のユーザの顔を示す前記第１のユーザの第１の画像を取得することと、
前記コンピューティングシステムによって、ニュートラル表情または位置をもつ第２のユーザの顔を示す前記第２のユーザの第１の画像を識別することであって、前記第２のユーザの前記顔が、しきい値の満足に基づいて前記第１のユーザの前記顔と同様である、第２のユーザの第１の画像を識別することと、
前記ニュートラル表情または位置とは異なる表情または位置をもつ前記第２のユーザの前記顔を示す前記第２のユーザの第２の画像に基づいて、前記コンピューティングシステムによって、前記ニュートラル表情または位置とは異なる表情をもつ前記第１のユーザの前記顔を示す前記第１のユーザの第２の画像を生成することと
を含む、コンピュータ実装方法。
【請求項２】
前記第２のユーザの前記第１の画像を識別することが、前記第１のユーザの前記第１の画像中の前記第１のユーザの顔ポイントと、前記第２のユーザの前記第１の画像中の前記第２のユーザの顔ポイントとを比較することを含み、前記第１のユーザの前記顔ポイントと前記第２のユーザの前記顔ポイントとの間の一致の程度が前記しきい値を満足する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１のユーザの前記第２の画像を生成することが、前記第１のユーザの前記第１の画像中の前記第１のユーザの前記顔ポイントを、前記第２のユーザの前記第２の画像中の前記第２のユーザの前記顔ポイントにマッピングすることを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記第１のユーザの前記第２の画像に基づいて前記第１のユーザのための個人化されたエモーティコンを生成することをさらに含む、請求項３に記載のコンピュータ実装方法。
【請求項５】
前記第２のユーザの前記第１の画像が、歌を歌っている前記第２のユーザのビデオ中に含まれ、前記方法が、前記第１のユーザの前記第２の画像に基づいて前記第１のユーザのリップシンクビデオを生成することをさらに含む、請求項３に記載のコンピュータ実装方法。
【請求項６】
前記第２のユーザの前記第１の画像を識別することが、前記第１のユーザの前記第１の画像中の少なくとも１つの領域のテクスチャと、前記第２のユーザの前記第１の画像中の対応する領域のテクスチャとを比較することを含み、前記第１のユーザの前記第１の画像中の前記少なくとも１つの領域の前記テクスチャと、前記第２のユーザの前記第１の画像中の前記少なくとも１つの領域の前記テクスチャとの間の一致の程度がしきい値を満足する、請求項３に記載のコンピュータ実装方法。
【請求項７】
前記第２のユーザの前記第１の画像中の前記少なくとも１つの領域の一部分が、前記第１のユーザの前記第２の画像を生成するためにコピーされる、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記第１のユーザの前記第１の画像中の前記少なくとも１つの領域の前記テクスチャと、前記第２のユーザの前記第１の画像中の前記対応する領域の前記テクスチャとを比較することが、前記第１のユーザの前記第１の画像中の前記少なくとも１つの領域のテクスチャ特徴と、前記第２のユーザの前記第１の画像中の前記少なくとも１つの領域のテクスチャ特徴とを決定することを含む、請求項６に記載のコンピュータ実装方法。
【請求項９】
画像が値の行列として表され、前記画像のテクスチャ特徴が、前記値の平均または前記値のメジアンのうちの１つまたは複数を含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記ニュートラル表情とは異なる前記表情が、幸せの表情、悲しみの表情、怒りの表情、驚きの表情、泣きの表情、微笑みの表情、笑いの表情、または不機嫌の表情のうちの１つまたは複数を含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
少なくとも１つのハードウェアプロセッサと、
命令を記憶したメモリとを備えるシステムであって、前記命令は、前記少なくとも１つのプロセッサによって実行されたとき、前記システムに、
ニュートラル表情または位置をもつ第１のユーザの顔を示す前記第１のユーザの第１の画像を取得することと、
ニュートラル表情または位置をもつ第２のユーザの顔を示す前記第２のユーザの第１の画像を識別することであって、前記第２のユーザの前記顔が、しきい値の満足に基づいて前記第１のユーザの前記顔と同様である、第２のユーザの第１の画像を識別することと、
前記ニュートラル表情または位置とは異なる表情または位置をもつ前記第２のユーザの前記顔を示す前記第２のユーザの第２の画像に基づいて、前記ニュートラル表情または位置とは異なる表情をもつ前記第１のユーザの前記顔を示す前記第１のユーザの第２の画像を生成することと
を実施させる、システム。
【請求項１２】
前記第２のユーザの前記第１の画像を識別することが、前記第１のユーザの前記第１の画像中の前記第１のユーザの顔ポイントと、前記第２のユーザの前記第１の画像中の前記第２のユーザの顔ポイントとを比較することを含み、前記第１のユーザの前記顔ポイントと前記第２のユーザの前記顔ポイントとの間の一致の程度が前記しきい値を満足する、請求項１１に記載のシステム。
【請求項１３】
前記第１のユーザの前記第２の画像を生成することが、前記第１のユーザの前記第１の画像中の前記第１のユーザの前記顔ポイントを、前記第２のユーザの前記第２の画像中の前記第２のユーザの前記顔ポイントにマッピングすることを含む、請求項１２に記載のシステム。
【請求項１４】
前記第１のユーザの前記第２の画像に基づいて前記第１のユーザのための個人化されたエモーティコンを生成することをさらに含む、請求項１３に記載のシステム。
【請求項１５】
前記第２のユーザの前記第１の画像が、歌を歌っている前記第２のユーザのビデオ中に含まれ、前記命令が、前記システムに、前記第１のユーザの前記第２の画像に基づいて前記第１のユーザのリップシンクビデオを生成することをさらに実施させる、請求項１３に記載のシステム。
【請求項１６】
コンピューティングシステムの少なくとも１つのハードウェアプロセッサによって実行されたとき、前記コンピューティングシステムに、
ニュートラル表情または位置をもつ第１のユーザの顔を示す前記第１のユーザの第１の画像を取得することと、
ニュートラル表情または位置をもつ第２のユーザの顔を示す前記第２のユーザの第１の画像を識別することであって、前記第２のユーザの前記顔が、しきい値の満足に基づいて前記第１のユーザの前記顔と同様である、第２のユーザの第１の画像を識別することと、
前記ニュートラル表情または位置とは異なる表情または位置をもつ前記第２のユーザの前記顔を示す前記第２のユーザの第２の画像に基づいて、前記ニュートラル表情または位置とは異なる表情をもつ前記第１のユーザの前記顔を示す前記第１のユーザの第２の画像を生成することと
を含む方法を実施させる命令を含む、非一時的コンピュータ可読媒体。
【請求項１７】
前記第２のユーザの前記第１の画像を識別することが、前記第１のユーザの前記第１の画像中の前記第１のユーザの顔ポイントと、前記第２のユーザの前記第１の画像中の前記第２のユーザの顔ポイントとを比較することを含み、前記第１のユーザの前記顔ポイントと前記第２のユーザの前記顔ポイントとの間の一致の程度が前記しきい値を満足する、請求項１６に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記第１のユーザの前記第２の画像を生成することが、前記第１のユーザの前記第１の画像中の前記第１のユーザの前記顔ポイントを、前記第２のユーザの前記第２の画像中の前記第２のユーザの前記顔ポイントにマッピングすることを含む、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記方法が、前記第１のユーザの前記第２の画像に基づいて前記第１のユーザのための個人化されたエモーティコンを生成することをさらに含む、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記第２のユーザの前記第１の画像が、歌を歌っている前記第２のユーザのビデオ中に含まれ、前記方法が、前記第１のユーザの前記第２の画像に基づいて前記第１のユーザのリップシンクビデオを生成することをさらに含む、請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ソーシャルネットワークの分野に関する。より詳細には、本技術は、顔認識に基づいて様々なメディア効果を生成するための技法に関する。
【背景技術】
【０００２】
今日、人々は、しばしば、多種多様な目的でコンピューティングデバイス（またはシステム）を利用する。ユーザは、自身のコンピューティングデバイスを使用して、たとえば、互いと対話し、コンテンツを作成し、コンテンツを共有し、コンテンツを閲覧することができる。いくつかの場合には、ユーザは、自身のコンピューティングデバイスを利用して、ソーシャルネットワーキングシステム（またはサービス）にアクセスすることができる。ユーザは、ソーシャルネットワーキングシステムを介して、ステータス更新、画像、ビデオ、記事、およびリンクなど、様々なコンテンツアイテムを提供し、ポスティングし、共有し、それらのコンテンツアイテムにアクセスすることができる。いくつかの実施形態では、顔認識が、コンテンツアイテムに関して実施され得る。
【発明の概要】
【０００３】
本開示の様々な実施形態は、ニュートラル表情または位置をもつ第１のユーザの顔を示す第１のユーザの第１の画像を取得するように構成された、システム、方法、および非一時的コンピュータ可読媒体を含むことができる。ニュートラル表情または位置をもつ第２のユーザの顔を示す第２のユーザの第１の画像が識別され得、第２のユーザの顔は、しきい値の満足に基づいて第１のユーザの顔と同様である。ニュートラル表情または位置とは異なる表情または位置をもつ第２のユーザの顔を示す第２のユーザの第２の画像に基づいて、ニュートラル表情または位置とは異なる表情をもつ第１のユーザの顔を示す第１のユーザの第２の画像が生成され得る。
【０００４】
いくつかの実施形態では、第２のユーザの第１の画像を識別することは、第１のユーザの第１の画像中の第１のユーザの顔ポイントと、第２のユーザの第１の画像中の第２のユーザの顔ポイントとを比較することを含み、第１のユーザの顔ポイントと第２のユーザの顔ポイントとの間の一致の程度がしきい値を満足する。
【０００５】
いくつかの実施形態では、第１のユーザの第２の画像を生成することは、第１のユーザの第１の画像中の第１のユーザの顔ポイントを、第２のユーザの第２の画像中の第２のユーザの顔ポイントにマッピングすることを含む。
【０００６】
一実施形態では、第１のユーザのための個人化されたエモーティコンが、第１のユーザの第２の画像に基づいて生成される。
【０００７】
いくつかの実施形態では、第２のユーザの第１の画像は、歌を歌っている第２のユーザのビデオ中に含まれ、第１のユーザのリップシンクビデオが、第１のユーザの第２の画像に基づいて生成される。
【０００８】
いくつかの実施形態では、第２のユーザの第１の画像を識別することは、第１のユーザの第１の画像中の少なくとも１つの領域のテクスチャと、第２のユーザの第１の画像中の対応する領域のテクスチャとを比較することを含み、第１のユーザの第１の画像中の少なくとも１つの領域のテクスチャと、第２のユーザの第１の画像中の少なくとも１つの領域のテクスチャとの間の一致の程度がしきい値を満足する。
【０００９】
一実施形態では、第２のユーザの第１の画像中の少なくとも１つの領域の一部分が、第１のユーザの第２の画像を生成するためにコピーされる。
【００１０】
いくつかの実施形態では、第１のユーザの第１の画像中の少なくとも１つの領域のテクスチャと、第２のユーザの第１の画像中の対応する領域のテクスチャとを比較することは、第１のユーザの第１の画像中の少なくとも１つの領域のテクスチャ特徴と、第２のユーザの第１の画像中の少なくとも１つの領域のテクスチャ特徴とを決定することを含む。
【００１１】
いくつかの実施形態では、画像は値の行列として表され、画像のテクスチャ特徴は、値の平均または値のメジアンのうちの１つまたは複数を含む。
【００１２】
一実施形態では、ニュートラル表情とは異なる表情は、幸せの表情、悲しみの表情、怒りの表情、驚きの表情、泣きの表情、微笑みの表情、笑いの表情、または不機嫌の表情のうちの１つまたは複数を含む。
【００１３】
本開示の様々な実施形態は、特定の表情をもつユーザの顔を示すユーザの第１の画像を取得するように構成された、システム、方法、および非一時的コンピュータ可読媒体を含むことができる。特定の表情のキーポイントが決定され得る。特定の表情のキーポイントは増幅され得る。特定の表情の増幅されたバージョンをもつユーザの顔を示すユーザの第２の画像が、増幅されたキーポイントに基づいて生成され得る。
【００１４】
いくつかの実施形態では、特定の表情は、幸せの表情、悲しみの表情、怒りの表情、驚きの表情、泣きの表情、微笑みの表情、笑いの表情、または不機嫌の表情のうちの１つまたは複数を含む。
【００１５】
いくつかの実施形態では、ユーザの顔は、複数の顔ポイントによって表され、特定の表情のキーポイントは、顔ポイントのサブセットである。
【００１６】
一実施形態では、複数の顔ポイントは、顔検出に基づいて識別される。
【００１７】
いくつかの実施形態では、特定の表情のキーポイントを増幅することは、特定の表情のキーポイントのうちの１つまたは複数を動かすことを含む。
【００１８】
いくつかの実施形態では、特定の表情のキーポイントのうちの１つまたは複数は、それぞれの選択された距離だけ動く。
【００１９】
一実施形態では、それぞれの選択された距離は、異なる距離である。
【００２０】
いくつかの実施形態では、キーポイントのうちの１つまたは複数は動かない。
【００２１】
いくつかの実施形態では、特定の表情の増幅されたバージョンは、特定の表情の増大された規模を示す。
【００２２】
一実施形態では、特定の表情は、特定の表情を特徴づける特定の位置にあるキーポイントに関連付けられる。
【００２３】
開示される技術の多くの他の特徴、適用例、実施形態、および／または変形形態が、添付の図面から、および以下の発明を実施するための形態から明らかになることを諒解されたい。本明細書で説明される構造、システム、非一時的コンピュータ可読媒体、および方法の追加および／または代替の実装形態が、開示される技術の原理から逸脱することなく採用され得る。
【図面の簡単な説明】
【００２４】
【図１】本開示の一実施形態による、顔認識に基づいて様々なメディア効果を提供するように構成された例示的な顔効果生成モジュールを含む、例示的なシステムを示す図である。
【図２】本開示の一実施形態による、顔認識に基づいて様々なメディア効果を生成するように構成された例示的なメディア効果生成モジュールを示す図である。
【図３Ａ】本開示の一実施形態による、顔認識に基づいて、個人化されたエモーティコンを提供するための例示的なシナリオを示す図である。
【図３Ｂ】本開示の一実施形態による、顔認識に基づいてリップシンクビデオを提供するための例示的なシナリオを示す図である。
【図３Ｃ】本開示の一実施形態による、顔認識に基づいて、増幅された表情を提供するための例示的なシナリオを示す図である。
【図４】本開示の一実施形態による、顔認識に基づいて様々なメディア効果を提供するための例示的な第１の方法を示す図である。
【図５】本開示の一実施形態による、顔認識に基づいて様々なメディア効果を提供するための例示的な第２の方法を示す図である。
【図６】本開示の一実施形態による、様々なシナリオにおいて利用され得る例示的なシステムのネットワーク図である。
【図７】本開示の一実施形態による、様々なシナリオにおいて利用され得るコンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【００２５】
図は、単に説明の目的で、開示される技術の様々な実施形態を示し、図は、同様の要素を識別するために同様の参照番号を使用する。当業者は、以下の説明から、本明細書で説明される開示される技術の原理から逸脱することなく、図に示されている構造および方法の代替実施形態が採用され得ることを容易に認識されよう。
【００２６】
顔認識技法に基づくメディア効果生成
人々は、多種多様な目的でコンピューティングデバイス（またはシステム）を使用する。コンピューティングデバイスは、様々な種類の機能性を提供することができる。ユーザは、自身のコンピューティングデバイスを利用して、情報を生成し、情報にアクセスし、情報を共有することができる。いくつかの場合には、ユーザは、コンピューティングデバイスを利用して、従来のソーシャルネットワーキングシステム（たとえば、ソーシャルネットワーキングサービス、ソーシャルネットワークなど）と対話するか、またはそれらのシステムに関与することができる。ソーシャルネットワーキングシステムは、ユーザがそれを通してコンテンツアイテムを公開し得るリソースを提供し得る。一例では、コンテンツアイテムは、ユーザのプロファイルページ上に提示され得る。別の例として、コンテンツアイテムは、ユーザがアクセスすべきフィードを通して提示され得る。
【００２７】
コンピュータ技術の領域において特に台頭しつつある従来の手法の下で、顔認識が、ソーシャルネットワーキングシステムに関連付けられたコンテンツアイテムに関して実施され得る。一例として、写真におけるユーザのつながりは、顔認識に基づいて識別され得、ユーザは、１つまたは複数の識別されたつながりをタグ付けし得る。しかしながら、従来の手法は、ユーザの顔認識に基づいて、個人化されたメディア効果を提供しないことがあるか、または限られた個人化されたメディア効果を提供するにすぎないことがある。たとえば、従来の手法は、たとえば特定のユーザの顔の特徴に基づいて、そのユーザのために生成される、個人化されたメディア効果を提供しないことがある。
【００２８】
コンピュータ技術に由来する改善された手法が、コンピュータ技術の領域において特に台頭しつつある従来の手法に関連する上記および他の欠点を克服することができる。コンピュータ技術に基づいて、開示される技術は、顔認識に基づいてユーザのための様々なメディア効果を提供することができる。一例として、開示される技術は、ユーザのための個人化されたエモーティコンを提供することができる。特定のユーザについて、ニュートラル表情をもつユーザの顔を示す画像が、ニュートラル表情をもつ別のユーザの顔を示す画像に一致され得る。異なる表情をもつ他のユーザの顔を示す画像があり得る。異なる表情の例は、幸せ、悲しみ、怒りなどを含むことができる。ニュートラル表情をもつユーザの顔を示す画像は、異なる表情を示すユーザの個人化されたエモーティコンを作成するために、異なる表情をもつ他のユーザの顔を示す画像にマッピングされ得る。別の例として、開示される技術は、ユーザのためのリップシンクビデオを提供することができる。特定のユーザについて、ニュートラル位置にあるユーザの顔を示す画像が、歌を歌っている他のユーザのビデオ中に含まれるニュートラル位置にある別のユーザの顔を示す画像に一致され得る。ニュートラル位置にあるユーザの顔を示す画像は、歌を歌っているユーザの個人化されたリップシンクビデオを作成するために、歌を歌っている他のユーザの顔を示すビデオにマッピングされ得る。さらなる例として、開示される技術は、ユーザのための増幅された表情を提供することができる。特定のユーザについて、特定の表情をもつユーザを示す画像が取得され得る。表情の例は、幸せ、悲しみ、怒りなどを含むことができる。表情のキーポイントが、表情の規模または程度を増大させるために抽出および増幅され得る。このようにして、開示される技術は、ユーザのための個人化されたメディア効果を提供することができ、そのメディア効果は、ソーシャルネットワーキングシステムに関連付けられたコンテンツアイテムを生成するエクスペリエンスをより興味深いものにすることができる。開示される技術に関係する追加の詳細が以下で提供される。
【００２９】
図１は、本開示の一実施形態による、顔認識に基づいて様々なメディア効果を提供するように構成された例示的な顔効果生成モジュール１０２を含む、例示的なシステム１００を示す。顔効果生成モジュール１０２は、顔検出モジュール１０４と、顔類似度識別モジュール１０６と、顔ポイントマッピングモジュール１０８と、メディア効果生成モジュール１１０とを含むことができる。いくつかの事例では、例示的なシステム１００は、少なくとも１つのデータストア１２０を含むことができる。この図および本明細書のすべての図に示されている構成要素（たとえば、モジュール、要素、ステップ、ブロックなど）は例にすぎず、他の実装形態は、追加の構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含み得る。いくつかの構成要素は、関連する詳細を不明瞭にしないように示されないことがある。様々な実施形態では、顔効果生成モジュール１０２に関して説明される機能性のうちの１つまたは複数は、任意の好適な組合せで実装され得る。開示される技術は、説明の目的で、ソーシャルネットワーキングシステムに関連付けられた顔認識ベースのメディア効果に関して説明されるが、開示される技術は、任意の他のタイプのシステムおよび／またはコンテンツに適用され得る。
【００３０】
顔検出モジュール１０４は、画像中の顔を検出することができる。たとえば、顔検出モジュール１０４は、画像中の顔の顔ポイントを検出することができる。顔ポイントは「顔ランドマーク」と呼ばれることもある。顔ポイントは、照明条件、向きなど、様々な条件の下で、異なる人々について一貫したやり方で自動的に検出され得る、人間の顔上の解剖学的ポイントに対応する画像データに関する。たとえば、顔ポイントは、唇、眼、鼻、眉、頤、額、耳、または他の顔の特徴のうちのいくつかの顕著なポイントのロケーションを指示し得る。顔ポイントの具体的なロケーションは、特定の人に応じて変化することができ、たとえば、いくつかの例を挙げると、顔ポイントが示されている画像または画像に示された対象の次元に基づく選択された座標系を使用して表され得る。いくつかの実施形態では、画像中の、顔検出モジュール１０４によって検出された顔は、様々な表情を呈し得る。表情または顔の表情の例は、幸せ、悲しみ、怒り、驚き、泣き、微笑み、笑い、不機嫌などを含むことができる。いくつかの事例では、画像中の顔は、いかなる表情をも呈しないことがあり、静止状態にあり得る。表情のそのような欠如は「ニュートラル表情」と呼ばれることがある。いくつかの実施形態では、動きまたは発話に関与している、顔検出モジュール１０４によって検出された顔は、動きまたは発話に関連付けられた様々な位置にある顔ポイントに関連付けられ得る。たとえば、画像中の顔は、特定の音節または単語を話し得る。いくつかの事例では、画像中の顔および対応する顔ポイントは、いかなる動きまたは発話もない位置にあり、あるいは静止状態にあり得る。そのような位置は「ニュートラル位置」と呼ばれることがある。したがって、ニュートラル表情とニュートラル位置とは、静止状態にある顔の同じ状態を指示することができる。本明細書のすべての例は説明の目的で提供され、多くの変形形態および他の可能性があり得る。
【００３１】
顔類似度識別モジュール１０６は、入力画像中の顔と同様である１つまたは複数の顔を識別することができる。たとえば、顔類似度識別モジュール１０６は、特定の人の顔を示す入力画像を受信し、他の人々の顔の画像にわたって検索して、入力画像中の顔と同様である１つまたは複数の顔を識別することができる。入力画像中の顔および他の画像中の顔は、上記で説明されたように、顔検出モジュール１０４によって検出され得る。たとえば、入力画像中の顔の顔ポイントおよび他の画像中の顔の顔ポイントは、顔検出モジュール１０４によって決定され得る。いくつかの実施形態では、顔類似度識別モジュール１０６は、入力画像中の顔と同じまたは同様の表情を示す顔の画像にわたって検索することができる。たとえば、入力画像中の顔の表情がニュートラル表情である場合、ニュートラル表情を示す顔の画像が識別され得る。いくつかの実施形態では、顔類似度識別モジュール１０６は、入力画像中の顔と同じまたは同様の顔ポイントの位置を示す顔の画像にわたって検索することができる。たとえば、入力画像中の顔がニュートラル位置にある場合、ニュートラル位置を示す顔の画像が検索され得る。本明細書で説明されるように、入力画像中の顔は「入力顔」と呼ばれることがある。
【００３２】
顔類似度識別モジュール１０６は、入力顔と同様の顔を識別するために、入力顔の顔ポイントと他の画像中の顔の顔ポイントとを比較することができる。本明細書で使用されるそのような同様の顔は、入力顔「の同様の顔」、入力顔「と同様の顔」、または入力顔「についての同様の顔」と呼ばれることがある。２つの顔、またはそれらの対応する顔ポイントは、それぞれの顔ポイントのロケーションが、指定された程度または範囲と同じまたは同様である場合、同様であるかまたは一致すると見なされ得る。いくつかの場合には、所定の量以内で入力顔の顔ポイントと同様である顔ポイントを有する顔が、入力顔と同様である顔として選択され得る。たとえば、選択された同様の顔の顔ポイントと入力顔の顔ポイントとの間の一致の程度または範囲が、しきい値を満足することがある。いくつかの実施形態では、顔類似度識別モジュール１０６は、入力顔の顔ポイントと別の顔の顔ポイントとの間の一致の程度または範囲を示す類似度メトリックを決定することができる。一例として、類似度メトリックは、入力顔の顔ポイントと別の顔の顔ポイントとの間の距離に基づいて決定され得る。顔は、類似度メトリックがしきい値を満足する場合、入力顔の同様の顔として選択され得る。入力顔の同様の顔は、以下で説明されるように様々なメディア効果を生成するために使用され得る。たとえば、入力顔のための個人化されたエモーティコンを作成するために使用され得る、ニュートラル表情以外の様々な表情を示す同様の顔の画像があり得る。または、入力顔のための個人化されたリップシンクビデオを作成するために使用され得る、歌を歌っている同様の顔のビデオがあり得る。
【００３３】
いくつかの実施形態では、顔類似度識別モジュール１０６は、入力画像中の顔についての同様の顔を識別する際に、顔ポイント以外の追加のファクタを考慮に入れることができる。追加のファクタの一例は、入力顔のテクスチャを含むことができる。２つの画像または２つの画像の領域のテクスチャは、２つの画像または領域のテクスチャが同様であるかどうかを決定するために比較され得る。いくつかの実施形態では、画像または画像の領域は、値の行列として表され得る。いくつかの場合には、値の行列は、ピクセルデータなど、画像データに基づき得る。一例として、各値は０〜２５５の範囲から選択され得る。いくつかの実施形態では、テクスチャに関係する特徴（「テクスチャ特徴」）が、２つの画像または２つの画像の領域のテクスチャを比較するために算出または抽出され得る。テクスチャ特徴の例は、画像または画像の領域中の値の平均と、画像または画像の領域中の値のメジアンと、他のメトリックとを含むことができる。顔類似度識別モジュール１０６は、入力顔と同様である顔を識別するために、２つの画像のテクスチャ特徴を比較することができる。２つの画像または２つの画像の領域のテクスチャは、２つの画像または２つの画像の領域のテクスチャ特徴の値の比較がしきい値を満足する場合、同様であるかまたは一致すると見なされ得る。一例として、２つの画像または２つの画像の領域のテクスチャ特徴の値の比較は、テクスチャ特徴の値間の差を含むことができる。いくつかの実施形態では、顔類似度識別モジュール１０６は、入力顔に関係する画像または画像の領域のテクスチャと、別の顔に関係する画像または画像の領域のテクスチャとの間の一致の程度または範囲を示す類似度メトリックを決定することができる。一例として、類似度メトリックは、入力顔のテクスチャ特徴の値と別の顔のテクスチャ特徴の値とに基づいて決定され得る。入力顔の画像または画像の領域のテクスチャと、別の顔の画像または画像の領域のテクスチャとは、類似度メトリックがしきい値を満足する場合、一致すると見なされ得る。顔類似度識別モジュール１０６は、入力顔と同様の顔ポイントおよび同様のテクスチャを有する顔を、入力顔の同様の顔として選択することができる。テクスチャの考慮は、年齢、性別、民族性、および顔外観に影響を及ぼすことができる他のファクタに関して、入力顔と最適に一致した同様の顔の選択をもたらすことができる。
【００３４】
上記で説明されたように、顔類似度識別モジュール１０６は、顔ポイント、および／またはテクスチャなどの追加のファクタに基づいて、入力顔についての同様の顔を識別することができる。いくつかの実施形態では、顔類似度識別モジュール１０６は、入力顔の同様の顔が入力顔と同様の顔ポイントおよび同様のテクスチャを有するように、入力顔の同様の顔を選択することができる。顔類似度識別モジュール１０６は、入力顔の他の画像を生成するために必要とされる入力顔の部分を埋めるために、同様の顔の画像を使用することができる。たとえば、顔類似度識別モジュール１０６は、ニュートラル表情以外の様々な表情を示す顔の画像を生成するために、ニュートラル表情を示す顔の入力画像を使用することができる。同様に、顔類似度識別モジュール１０６は、動きまたは発話に関連付けられた様々な位置にある顔ポイントを示す顔の画像を生成するために、ニュートラル位置を示す顔の入力画像を使用することができる。しかしながら、ニュートラル表情を示す顔の入力画像は、ニュートラル表情以外の表情を呈する顔の画像を生成するために必要とされる顔のいくつかの部分を示さないことがある。または、ニュートラル位置を呈する顔の入力画像は、ニュートラル位置とは異なる位置にある顔ポイントを示さないことがある。一例として、ニュートラル表情を示す顔の入力画像は、歯を示さないことがあり、歯は、微笑みの表情を示す顔の画像を生成するために必要とされ得る。この例では、顔類似度識別モジュール１０６は、入力顔の同様の顔が、入力顔と同様の口領域の周りのテクスチャを有するように、入力顔の同様の顔を選択することができる。顔類似度識別モジュール１０６は、微笑みの表情を示す入力顔の画像を生成するために、微笑みの表情を示す同様の顔の画像中の同様の顔の歯を使用することができる。顔の関連部分のテクスチャが考慮されるので、同様の顔からの部分は、入力顔の生成された画像中でより自然に見え得る。本明細書のすべての例は説明の目的で提供され、多くの変形形態および他の可能性があり得る。
【００３５】
顔ポイントマッピングモジュール１０８は、入力顔を入力顔の同様の顔にマッピングすることができる。たとえば、入力顔の同様の顔は、上記で説明されたように、顔類似度識別モジュール１０６によって決定され得る。一例として、顔ポイントマッピングモジュール１０８は、異なる表情を呈する入力顔の画像を生成するために、入力顔の顔ポイントを、異なる表情を呈する同様の顔の顔ポイントにマッピングすることができる。たとえば、入力顔の顔ポイントを、異なる表情を呈する同様の顔の顔ポイントにマッピングする変換が、決定され、入力顔および入力顔の対応する顔ポイントに適用され得る。別の例として、顔ポイントマッピングモジュール１０８は、異なる位置を呈する入力顔の画像を生成するために、入力顔の顔ポイントを、異なる位置を呈する同様の顔の顔ポイントにマッピングすることができる。たとえば、入力顔の顔ポイントを、異なる位置を呈する同様の顔の顔ポイントにマッピングする変換が、決定され、入力顔および入力顔の対応する顔ポイントに適用され得る。いくつかの実施形態では、顔ポイントマッピングモジュール１０８は、ニュートラル表情またはニュートラル位置を呈する入力顔の顔ポイントを、ニュートラル表情またはニュートラル位置を呈する同様の顔の顔ポイントにマッピングする変換を決定し、ニュートラル表情またはニュートラル位置を呈する同様の顔の顔ポイントを、別の表情または別の位置を呈する同様の顔の顔ポイントにマッピングする変換をも決定することができる。次いで、顔ポイントマッピングモジュール１０８は、入力顔が、同様の顔によって示される他の表情または他の位置を呈するように変換されるように、決定された変換を、入力顔および入力顔の対応する顔ポイントに適用することができる。本明細書のすべての例は説明の目的で提供され、多くの変形形態および他の可能性があり得る。
【００３６】
メディア効果生成モジュール１１０は、顔認識に基づいて様々なメディア効果を生成することができる。たとえば、メディア効果生成モジュール１１０は、個人化されたエモーティコン、個人化されたリップシンクビデオ、および増幅された表情を作成することができる。メディア効果生成モジュール１１０の機能性は、本明細書でより詳細に説明される。
【００３７】
いくつかの実施形態では、顔効果生成モジュール１０２は、部分的にまたは全体的に、ソフトウェア、ハードウェア、またはそれらの任意の組合せとして実装され得る。概して、本明細書で説明されるモジュールは、ソフトウェア、ハードウェア、またはそれらの任意の組合せに関連付けられ得る。いくつかの実装形態では、モジュールの１つまたは複数の機能、タスク、および／または動作は、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはそれらの任意の組合せによって行われるか、または実施され得る。いくつかの場合には、顔効果生成モジュール１０２は、部分的にまたは全体的に、サーバシステムまたはクライアントコンピューティングデバイス上など、１つまたは複数のコンピューティングデバイスまたはシステム上で実行するソフトウェアとして実装され得る。いくつかの事例では、顔効果生成モジュール１０２は、部分的にまたは全体的に、図６のソーシャルネットワーキングシステム６３０など、ソーシャルネットワーキングシステム（またはサービス）の内部に実装されるか、あるいはソーシャルネットワーキングシステム（またはサービス）と連携して動作するように構成されるか、またはソーシャルネットワーキングシステム（またはサービス）と統合されるように構成され得る。同様に、いくつかの事例では、顔効果生成モジュール１０２は、部分的にまたは全体的に、図６のユーザデバイス６１０など、クライアントコンピューティングデバイスの内部に実装されるか、あるいはクライアントコンピューティングデバイスと連携して動作するように構成されるか、またはクライアントコンピューティングデバイスと統合されるように構成され得る。たとえば、顔効果生成モジュール１０２は、ユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で実行する専用アプリケーション（たとえば、アプリ）、プログラム、またはアプレットとして実装されるか、あるいはそれらの内部に実装され得る。顔効果生成モジュール１０２の機能性を実施するための命令を組み込むまたは実装するアプリケーションが、開発者によって作成され得る。アプリケーションは、リポジトリに提供されるか、またはリポジトリ中で維持され得る。いくつかの場合には、アプリケーションは、ネットワーク（たとえば、インターネット）を介してリポジトリにアップロードされるか、またはさもなければ送信され得る。たとえば、アプリケーションの開発者に関連付けられた、またはアプリケーションの開発者の制御下のコンピューティングシステム（たとえば、サーバ）が、アプリケーションをリポジトリに提供するかまたは送信することができる。リポジトリは、たとえば、ユーザによるアクセスまたはダウンロードのためにアプリケーションが維持され得る「アプリ」ストアを含むことができる。アプリケーションをダウンロードするためのユーザによるコマンドに応答して、アプリケーションは、ネットワークを介してリポジトリからユーザに関連付けられたコンピューティングデバイスに提供されるか、またはさもなければ送信され得る。たとえば、リポジトリの管理者に関連付けられた、またはリポジトリの管理者の制御下のコンピューティングシステム（たとえば、サーバ）は、ユーザがアプリケーションをインストールおよび実行することができるように、アプリケーションがユーザのコンピューティングデバイスに送信されることを引き起こすかまたは可能にすることができる。アプリケーションの開発者とリポジトリの管理者とは、いくつかの場合には異なるエンティティであり得るが、他の場合には同じエンティティであり得る。多くの変形形態が可能であることを理解されたい。
【００３８】
データストア１２０は、顔効果生成モジュール１０２のサポートおよび動作に関係するデータなど、様々なタイプのデータを記憶および維持するように構成され得る。データストア１２０によって維持されるデータは、たとえば、顔認識、メディア効果、個人化されたエモーティコン、個人化されたリップシンクビデオ、増幅された表情、機械学習モデルなどに関係する情報を含むことができる。データストア１２０は、ソーシャルネットワーキングシステムに関連付けられた他の情報をも維持することができる。ソーシャルネットワーキングシステムに関連付けられた情報は、ユーザ、ソーシャルつながり、ソーシャル対話、ロケーション、ジオフェンスエリア、地図、場所、イベント、グループ、投稿、通信、コンテンツ、アカウント設定、プライバシー設定、およびソーシャルグラフに関するデータを含むことができる。ソーシャルグラフは、ソーシャルネットワーキングシステムのすべてのエンティティと、それらのエンティティの対話とを反映することができる。例示的なシステム１００に示されているように、顔効果生成モジュール１０２は、データストア１２０と通信および／または動作するように構成され得る。いくつかの実施形態では、データストア１２０は、クライアントコンピューティングデバイス内のデータストアであり得る。いくつかの実施形態では、データストア１２０は、クライアントコンピューティングデバイスと通信しているサーバシステムのデータストアであり得る。
【００３９】
図２は、本開示の一実施形態による、顔認識に基づいて様々なメディア効果を生成するように構成された例示的なメディア効果生成モジュール２０２を示す。いくつかの実施形態では、図１のメディア効果生成モジュール１１０は、例示的なメディア効果生成モジュール２０２で実装され得る。図２の例に示されているように、例示的なメディア効果生成モジュール２０２は、個人化されたエモーティコンモジュール２０４と、リップシンクビデオモジュール２０６と、表情増幅モジュール２０８とを含むことができる。
【００４０】
個人化されたエモーティコンモジュール２０４は、特定のユーザのための個人化されたエモーティコンを生成することができる。個人化されたエモーティコンモジュール２０４は、ニュートラル表情をもつユーザの顔を示す入力画像を取得することができる。いくつかの実施形態では、ユーザは入力画像を提供することができる。他の実施形態では、ユーザについての入力画像を識別するために、ユーザのコンピューティングデバイス上の画像に対して、顔認識が実施され得る。一例として、ユーザについての入力画像は、ユーザがニュートラル表情を有し、ユーザが前向きであり、照明条件が十分であるように選択され得る。入力画像および／または他の画像中のユーザの顔は、上記で説明されたように、顔検出モジュール１０４によって検出され得る。
【００４１】
個人化されたエモーティコンモジュール２０４は、入力画像に基づいて、特定のユーザについての同様の顔を識別することができる。たとえば、ユーザについての同様の顔は、上記で説明されたように、顔類似度識別モジュール１０６によって識別され得る。ユーザについての同様の顔を識別するために、他の人々の顔の画像が検索され得る。たとえば、様々な人々の顔の画像が、データベースまたは記憶デバイスに記憶され得る。他の人々の顔は、上記で説明されたように、顔検出モジュール１０４によって検出され得る。ユーザについての同様の顔は、ニュートラル表情を示すユーザの入力画像と、同じくニュートラル表情を示す他の人々の顔の画像とを比較することによって識別され得る。他の人々の顔の画像は、ニュートラル表情以外の様々な表情を呈する他の人々の顔の画像をも含むことができる。表情の例は、幸せ、悲しみ、怒り、驚き、泣き、微笑み、笑い、不機嫌などを含むことができる。
【００４２】
個人化されたエモーティコンモジュール２０４は、異なる表情を示す同様の顔の画像に基づいて、特定のユーザのための個人化されたエモーティコンを生成することができる。ユーザについて決定される同様の顔は、幸せ、悲しみ、怒りなど、様々な表情をもつ同様の顔を示す関連する画像を有することができる。ユーザの顔ポイントは、ニュートラル表情以外の表情を示すユーザのための個人化されたエモーティコンを生成するために、その表情を呈する同様の顔の顔ポイントにマッピングされ得る。ユーザの顔ポイントは、上記で説明されたように、顔ポイントマッピングモジュール１０８によって、同様の顔の顔ポイントにマッピングされ得る。一例として、微笑みの表情を示す同様の人の画像があり得る。ユーザの顔ポイントは、たとえば、微笑みの表情を示すユーザのための個人化されたエモーティコンを生成するために、直接、微笑みの表情を呈する同様の人の顔ポイントにマッピングされ得る。別の例として、不機嫌の表情を示す同様の人の画像があり得る。ユーザの顔ポイントは、たとえば、不機嫌の表情を示すユーザのための個人化されたエモーティコンを生成するために、直接、不機嫌の表情を示す同様の人の顔ポイントにマッピングされ得る。いくつかの実施形態では、個人化されたエモーティコンモジュール２０４は、一連の変換を決定することによって、特有の表情を示す特定のユーザのための個人化されたエモーティコンを生成することができる。たとえば、ニュートラル表情を呈するユーザの顔ポイントを、ニュートラル表情を呈する同様の顔の顔ポイントにマッピングするための変換が決定され得る。また、ニュートラル表情を呈する同様の顔の顔ポイントを、特有の表情を呈する同様の顔の顔ポイントにマッピングするための変換が決定され得る。変換は、特有の表情を示すユーザのための個人化されたエモーティコンを生成するために、ニュートラル表情を示すユーザの画像に適用され得る。このようにして、ユーザのための個人化されたエモーティコンは、同様の顔の画像に示されている任意の表情について生成され得る。いくつかの実施形態では、個人化されたエモーティコンモジュール２０４は、機械学習技法に基づいて、特定のユーザのための個人化されたエモーティコンを生成することができる。
【００４３】
個人化されたエモーティコンが、ニュートラル表情を示す特定のユーザの画像に基づいて生成されるとき、個人化されたエモーティコン中のユーザの顔の１つまたは複数の部分は、同様の顔の１つまたは複数の画像で埋められるか、またはそれらの画像からコピーされる必要があり得る。一例として、個人化されたエモーティコンが微笑みの表情を呈する場合、ニュートラル表情を示すユーザの画像はユーザの歯を示さない。したがって、同様の顔の歯が、微笑みの表情を示すユーザのための個人化されたエモーティコンを生成するために使用され得る。上記で説明されたように、特定のユーザについての同様の顔は、顔または同様の顔の一部分のテクスチャが、ユーザの顔または顔の一部分に一致するように決定され得る。同様の顔とユーザの顔とが、一致するテクスチャを有するので、同様の顔で埋められたユーザの顔の一部分は自然に見えるか、または滑らかに見え得る。
【００４４】
特定のユーザの顔ポイントを同様の顔の顔ポイントにマッピングすることによって、そのユーザのための個人化されたエモーティコンを生成することは、有利に、迅速に表情を生成することを容易にし、ならびにデータの限られたセットから表情を一般化することができる。たとえば、個人化されたエモーティコンは、様々な表情を示す数個の同様の顔の画像の限られたセットから、多くのユーザのために生成され得る。一方、いくつかの機械学習技法に基づいて特定のユーザのための個人化されたエモーティコンを生成することは、異なる表情を示す多数の人々の画像を含むトレーニングデータの大きいセットを必要とすることがある。しかしながら、泣きまたは悲しみなど、いくつかの表情を示す人々の画像を取得することは、人々がこれらの表情をもつ画像をキャプチャする可能性が低いので、困難であり得る。
【００４５】
いくつかの実施形態では、個人化されたエモーティコンモジュール２０４は、様々な表情を示す特定のユーザの画像に基づいて、そのユーザのための個人化されたエモーティコンを生成することができる。たとえば、ユーザは、幸せ、悲しみ、怒りなど、異なる表情を示すユーザの画像をアップロードすることができる。これらの実施形態では、ユーザのための個人化されたエモーティコンは、ニュートラル表情をもつユーザの顔の画像を、様々な表情を示す同様の顔の画像にマッピングするのではなく、ユーザによってアップロードされた画像から直接生成される。
【００４６】
リップシンクビデオモジュール２０６は、特定のユーザのための個人化されたリップシンクビデオを生成することができる。たとえば、歌のリップシンクビデオが、歌を歌っている他の人々の１つまたは複数のビデオに基づいて、ユーザのために生成され得る。リップシンクビデオが生成される、歌を歌っている別の人のビデオは、「ドライバビデオ（ｄｒｉｖｅｒ  ｖｉｄｅｏ）」と呼ばれることがある。たとえば、異なる歌を歌っている様々な人々のビデオが、データベースまたは記憶デバイスに記憶され得る。個人化されたエモーティコンモジュール２０４と同様に、リップシンクビデオモジュール２０６は、ニュートラル位置にあるユーザの顔を示す入力画像を取得することができる。たとえば、入力画像中のユーザの顔ポイントは、いかなる動きまたは発話をも呈しないことがあり、静止位置にあり得る。いくつかの実施形態では、ユーザは入力画像を提供することができる。他の実施形態では、ユーザについての入力画像を識別するために、ユーザのコンピューティングデバイス上の画像に対して、顔認識が実施され得る。入力画像および／または他の画像中のユーザの顔は、上記で説明されたように、顔検出モジュール１０４によって検出され得る。
【００４７】
個人化されたエモーティコンモジュール２０４と同様に、リップシンクビデオモジュール２０６は、入力画像に基づいて、特定のユーザについての同様の顔を識別することができる。発話または歌唱など、口頭の表現に関与する様々な人々のビデオが維持され得る。たとえば、話しているまたは歌っている人のビデオは、様々な位置にあるその人の顔ポイントを示す画像またはフレームを含むことができる。たとえば、歌を歌っている人のビデオは、ニュートラル位置にあるその人の顔ポイントを示す画像またはフレームを含むことができる。ニュートラル位置にある人を示す画像またはフレームは、ユーザについての同様の顔を識別するために、ニュートラル位置を示すユーザの入力画像と比較され得る参照画像として、ビデオから選択され得る。たとえば、ユーザについての同様の顔は、上記で説明されたように、顔類似度識別モジュール１０６によって識別され得る。ユーザについての同様の顔は、ニュートラル位置を示すユーザの入力画像と、同じくニュートラル位置を示す他の人々の顔の参照画像とを比較することによって識別され得る。
【００４８】
リップシンクビデオモジュール２０６は、口頭の表現に関与する特定のユーザについての同様の顔のビデオに基づいて、そのユーザのための、歌などの口頭の表現の個人化されたリップシンクビデオを生成することができる。同様の顔のビデオの１つまたは複数の画像またはフレームについて、ユーザの顔ポイントは、ユーザのための個人化されたリップシンクビデオの対応する画像またはフレームを生成するために、同様の顔の顔ポイントにマッピングされ得る。ユーザの顔ポイントは、上記で説明されたように、顔ポイントマッピングモジュール１０８によって、同様の顔の顔ポイントにマッピングされ得る。いくつかの実施形態では、リップシンクビデオモジュール２０６は、ユーザのためのリップシンクビデオのフレームを生成するために、一連の変換を適用することができる。たとえば、ニュートラル位置を呈するユーザの顔ポイントを、ニュートラル位置を呈する同様の顔の顔ポイントにマッピングするための変換が決定され得る。次いで、同様の顔のビデオのフレームについて、ニュートラル位置を呈する同様の顔の顔ポイントを、フレーム中の特有の位置を呈する同様の顔の顔ポイントにマッピングするための変換が決定され得る。同様の顔のビデオのフレームについて、変換は、リップシンクビデオの対応するフレームを生成するために、ニュートラル位置を示すユーザの入力画像に適用され得る。いくつかの実施形態では、リップシンクビデオモジュール２０６は、機械学習技法に基づいて、特定のユーザのための個人化されたリップシンクビデオを生成することができる。
【００４９】
いくつかの実施形態では、リップシンクビデオモジュール２０６は、最初に、同様の顔の変換されたまたはワーピングされたビデオ（ｗａｒｐｅｄ  ｖｉｄｅｏ）を生成することができる。たとえば、ニュートラル位置を示すユーザの顔ポイントを、ニュートラル位置を示す同様の顔の顔ポイントにマッピングする変換が、ワーピングされたビデオを生成するために、同様の顔のビデオの１つまたは複数のフレームに適用され得る。このようにして、同様の顔の顔ポイントは、ユーザの顔ポイントにより良く対応するために、ワーピングされたビデオ中で再配置され得る。これらの実施形態では、リップシンクビデオモジュール２０６は、次いで、ワーピングされたビデオのフレームについて、ニュートラル位置にある同様の顔の顔ポイントを、フレーム中の別の位置にある同様の顔の顔ポイントにマッピングする変換を決定することができる。ワーピングされたビデオのフレームについての変換は、ユーザのためのリップシンクビデオのフレームを生成するために、ユーザの入力画像に適用され得る。
【００５０】
個人化されたエモーティコンに関して上記で説明されたように、特定のユーザの同様の顔は、その同様の顔が、ユーザの顔と同様の顔ポイントおよび同様のテクスチャを有するように決定され得る。入力画像から欠落しているユーザの顔の部分は、同様の顔の対応する部分で埋められるか、またはそれらの部分からコピーされ得る。同様の顔とユーザの顔とが、一致するテクスチャを有するので、同様の顔で埋められたユーザの顔の部分は自然に見えるか、または滑らかに見え得る。
【００５１】
表情増幅モジュール２０８は、特定のユーザのための増幅されたまたは誇張された表情を生成することができる。表情増幅モジュール２０８は、特定の表情をもつユーザの顔を示す入力画像を取得することができる。いくつかの実施形態では、入力画像はビデオからのものであり得る。表情の例は、幸せ、悲しみ、怒り、驚き、泣き、微笑み、笑い、不機嫌などを含むことができる。入力画像中のユーザの顔は、上記で説明されたように、顔検出モジュール１０４によって検出され得る。特定の表情は、表情を特徴づける特定の位置にあるキーポイントに関連付けられ得る。たとえば、表情のキーポイントは、表情のための顔ポイントのサブセットであり得る。特定の表情のキーポイントは、入力画像中のユーザの顔について識別され得る。表情増幅モジュール２０８は、表情の増幅されたバージョンを示すユーザの画像を生成するために、表情のキーポイントを選択的に変更または増幅することができる。たとえば、表情増幅モジュール２０８は、表情のキーポイントのうちの１つまたは複数を、所定の量または距離だけ、および／あるいは所定の方向に動かすことができる。キーポイントのうちの１つまたは複数は、異なる量または距離だけ、および／あるいは異なる方向に動くことができる。いくつかの場合には、いくつかのキーポイントは、増幅された表情の生成において動かされない。このようにして、表情の規模または程度が増大されたように見え得る。一例として、表情が微笑みの表情である場合、表情の増幅されたバージョンを示すユーザの画像は、増大された微笑をもつユーザを示すことができる。別の例として、表情が不機嫌の表情である場合、表情の増幅されたバージョンを示すユーザの画像は、増大された不機嫌さをもつユーザを示すことができる。多くの変形形態が可能である。いくつかの実施形態では、表情増幅モジュール２０８は、特定のユーザのためのトーンダウンされた表情を生成することができる。表情増幅モジュール２０８は、表情のトーンダウンされたまたは低減されたバージョンを示すユーザの画像を生成するために、表情のキーポイントを選択的に変更またはトーンダウンすることができる。表情の規模または程度は、表情の低減されたバージョンでは減少されたように見え得る。一例として、表情が微笑みの表情である場合、表情の低減されたバージョンを示すユーザの画像は、減少された微笑をもつユーザを示すことができる。別の例として、表情が不機嫌の表情である場合、表情の低減されたバージョンを示すユーザの画像は、減少された不機嫌さをもつユーザを示すことができる。いくつかの実施形態では、表情の増幅されたバージョンまたは低減されたバージョンを示すユーザの画像は、ビデオ中に含まれ得る。いくつかの実施形態では、表情の増幅されたバージョンまたは低減されたバージョンを示すユーザの画像は、機械学習技法に基づいて生成され得る。
【００５２】
図３Ａは、本開示の一実施形態による、顔認識に基づいて、個人化されたエモーティコンを提供するための例示的なシナリオ３００を示す。たとえば、個人化されたエモーティコンは、本明細書で説明されるように、顔認識効果モジュール１０２によって生成され得る。例示的なシナリオ３００では、ニュートラル表情を示す特定のユーザの入力画像３１０ａが取得される。特定のユーザについての同様の顔を識別するために、ニュートラル表情を示す他の人々の顔の画像が検索される。例示的なシナリオ３００では、ユーザについての同様の顔の画像３１５ａが検索を通して識別される。画像３１０ａと同様に、画像３１５ａは、ニュートラル表情を呈する同様の顔を示す。様々な他の表情を示す同様の顔の様々な画像があり得る。たとえば、同様の顔の画像３１５ｂが微笑みの表情を示す。入力画像３１０ａ中の特定のユーザの顔ポイントは、微笑みの表情を示す特定のユーザの画像３１０ｂを生成するために、直接、画像３１５ｂ中の同様の顔の顔ポイントにマッピングされ得る。いくつかの実施形態では、入力画像３１０ａ中の特定のユーザの顔ポイントを、画像３１５ａ中の同様の顔の顔ポイントにマッピングする変換が決定され得、画像３１５ａ中の同様の顔の顔ポイントを、画像３１５ｂ中の同様の顔の顔ポイントにマッピングする変換が決定され得る。これらの実施形態では、決定された変換は、画像３１０ｂを生成するために、入力画像３１０ａに適用され得る。他の表情を示す特定のユーザの画像が、同様にして生成され得る。本明細書のすべての例は説明の目的で提供され、多くの変形形態および他の可能性があり得る。
【００５３】
図３Ｂは、本開示の一実施形態による、顔認識に基づいてリップシンクビデオを提供するための例示的なシナリオ３２０を示す。たとえば、リップシンクビデオは、本明細書で説明されるように、顔認識効果モジュール１０２によって生成され得る。例示的なシナリオ３２０では、ニュートラル位置を示す特定のユーザの入力画像３３０ａが取得される。たとえば、特定の歌を歌っている、様々な人々のビデオがあり得る。ニュートラル位置を示すそのような人々の画像が、ビデオから取得され、特定のユーザについての同様の顔を識別するために検索され得る。例示的なシナリオ３２０では、ユーザについての同様の顔の画像３３５ａが識別される。特定の歌を歌っている同様の顔のビデオは、複数の画像またはフレーム３３５ａ〜３３５ｃを含むことができる。各フレーム３３５ａ〜３３５ｃは、異なる位置にある顔ポイントをもつ同様の顔を示すことができる。入力画像３３０ａ中の特定のユーザの顔ポイントは、特定のユーザのためのリップシンクビデオのためのフレーム３３０ｂを生成するために、直接、フレーム３３５ｂ中の同様の顔の顔ポイントにマッピングされ得る。入力画像３３０ａ中の特定のユーザの顔ポイントはまた、特定のユーザのためのリップシンクビデオのためのフレーム３３０ｃを生成するために、直接、フレーム３３５ｃ中の同様の顔の顔ポイントにマッピングされ得る。いくつかの実施形態では、入力画像３３０ａ中の特定のユーザの顔ポイントを、フレーム３３５ａ中の同様の顔の顔ポイントにマッピングする変換が決定され得、フレーム３３５ａ中の同様の顔の顔ポイントを、フレーム３３５ｂ中の同様の顔の顔ポイントにマッピングする変換が決定され得る。これらの実施形態では、決定された変換は、フレーム３３０ｂを生成するために、入力画像３３０ａに適用され得る。フレーム３３０ｃを生成するために、同様にして、変換が決定され、入力画像３３０ａに適用され得る。本明細書のすべての例は説明の目的で提供され、多くの変形形態および他の可能性があり得る。
【００５４】
図３Ｃは、本開示の一実施形態による、顔認識に基づいて、増幅された表情を提供するための例示的なシナリオ３４０を示す。たとえば、増幅された表情は、本明細書で説明されるように、顔認識効果モジュール１０２によって生成され得る。例示的なシナリオ３４０では、特有の表情を示す特定のユーザの入力画像３５０が取得される。表情の増幅されたバージョンをもつ特定のユーザを示す画像３５５を生成するために、特有の表情のキーポイントが識別および増幅される。例示的なシナリオ３４０では、特有の表情は微笑みの表情であり、微笑みの表情は画像３５５中で増幅される。本明細書のすべての例は説明の目的で提供され、多くの変形形態および他の可能性があり得る。
【００５５】
図４は、本開示の一実施形態による、顔認識に基づいて様々なメディア効果を提供するための例示的な第１の方法４００を示す。別段に明記されていない限り、本明細書で説明される様々な特徴および実施形態に基づいて、同様の順序または代替の順序で、あるいは並行して実施される、追加のステップ、より少ないステップ、または代替のステップがあり得ることを理解されたい。
【００５６】
ブロック４０２において、例示的な方法４００は、ニュートラル表情または位置をもつ第１のユーザの顔を示す第１のユーザの第１の画像を取得することができる。ブロック４０４において、例示的な方法４００は、ニュートラル表情または位置をもつ第２のユーザの顔を示す第２のユーザの第１の画像を識別することができ、第２のユーザの顔は、しきい値の満足に基づいて第１のユーザの顔と同様である。ブロック４０６において、例示的な方法４００は、ニュートラル表情または位置とは異なる表情または位置をもつ第２のユーザの顔を示す第２のユーザの第２の画像に基づいて、ニュートラル表情または位置とは異なる表情をもつ第１のユーザの顔を示す第１のユーザの第２の画像を生成することができる。本開示の様々な特徴および実施形態を取り入れた他の好適な技法が可能である。
【００５７】
図５は、本開示の一実施形態による、顔認識に基づいて様々なメディア効果を提供するための例示的な第２の方法５００を示す。別段に明記されていない限り、本明細書で説明される様々な特徴および実施形態に基づいて、同様の順序または代替の順序で、あるいは並行して実施される、追加のステップ、より少ないステップ、または代替のステップがあり得ることを理解されたい。
【００５８】
ブロック５０２において、例示的な方法５００は、特定の表情をもつユーザの顔を示すユーザの第１の画像を取得することができる。ブロック５０４において、例示的な方法５００は、特定の表情のキーポイントを決定することができる。ブロック５０６において、例示的な方法５００は、特定の表情のキーポイントを増幅することができる。ブロック５０８において、例示的な方法５００は、増幅されたキーポイントに基づいて、特定の表情の増幅されたバージョンをもつユーザの顔を示すユーザの第２の画像を生成することができる。本開示の様々な特徴および実施形態を取り入れた他の好適な技法が可能である。
【００５９】
本開示の様々な実施形態に関連する多くの他の使用、適用例、特徴、可能性、および／または変形形態があり得ることが企図される。たとえば、ユーザは、いくつかの場合には、開示される技術を利用することをオプトイン（ｏｐｔ−ｉｎ）するか否かを選定することができる。開示される技術は、たとえば、様々なプライバシー設定、選好、および構成が維持されることを確実にすることもでき、プライベート情報が漏らされるのを防ぐことができる。別の例では、本開示の様々な実施形態は、時間とともに学習し、改善し、および／または改良され得る。
【００６０】
ソーシャルネットワーキングシステム  −  例示的な実装形態
図６は、本開示の一実施形態による、様々なシナリオにおいて利用され得る例示的なシステム６００のネットワーク図を示す。システム６００は、１つまたは複数のユーザデバイス６１０と、１つまたは複数の外部システム６２０と、ソーシャルネットワーキングシステム（またはサービス）６３０と、ネットワーク６５０とを含む。一実施形態では、上記で説明された実施形態に関して説明されるソーシャルネットワーキングサービス、プロバイダ、および／またはシステムは、ソーシャルネットワーキングシステム６３０として実装され得る。説明の目的で、図６によって示されているシステム６００の実施形態は、単一の外部システム６２０と単一のユーザデバイス６１０とを含む。しかしながら、他の実施形態では、システム６００は、より多くのユーザデバイス６１０および／またはより多くの外部システム６２０を含み得る。いくつかの実施形態では、ソーシャルネットワーキングシステム６３０は、ソーシャルネットワークプロバイダによって動作されるが、外部システム６２０は、外部システム６２０が、異なるエンティティによって動作され得るという点で、ソーシャルネットワーキングシステム６３０とは別個である。しかしながら、様々な実施形態では、ソーシャルネットワーキングシステム６３０と外部システム６２０とは連携して動作して、ソーシャルネットワーキングシステム６３０のユーザ（またはメンバー）にソーシャルネットワーキングサービスを提供する。この意味で、ソーシャルネットワーキングシステム６３０は、外部システム６２０などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供する。
【００６１】
ユーザデバイス６１０は、ユーザから入力を受信し、ネットワーク６５０を介してデータを送信および受信することができる、１つまたは複数のコンピューティングデバイスを備える。一実施形態では、ユーザデバイス６１０は、たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ互換オペレーティングシステム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘディストリビューションを実行する従来のコンピュータシステムである。別の実施形態では、ユーザデバイス６１０は、スマートフォン、タブレット、携帯情報端末（ＰＤＡ）、携帯電話など、コンピュータ機能性を有するデバイスであり得る。ユーザデバイス６１０は、ネットワーク６５０を介して通信するように構成される。ユーザデバイス６１０は、アプリケーション、たとえば、ユーザデバイス６１０のユーザがソーシャルネットワーキングシステム６３０と対話することを可能にするブラウザアプリケーションを実行することができる。別の実施形態では、ユーザデバイス６１０は、ｉＯＳおよびＡＮＤＲＯＩＤなど、ユーザデバイス６１０のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェース（ＡＰＩ）を通して、ソーシャルネットワーキングシステム６３０と対話する。ユーザデバイス６１０は、ネットワーク６５０を介して外部システム６２０およびソーシャルネットワーキングシステム６３０と通信するように構成され、ネットワーク６５０は、ワイヤードおよび／またはワイヤレス通信システムを使用する、ローカルエリアおよび／またはワイドエリアネットワークの任意の組合せを備え得る。
【００６２】
一実施形態では、ネットワーク６５０は、標準通信技術およびプロトコルを使用する。したがって、ネットワーク６５０は、イーサネット、８０２．１１、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス（ＷｉＭＡＸ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ、ＬＴＥ、デジタル加入者回線（ＤＳＬ）などの技術を使用するリンクを含むことができる。同様に、ネットワーク６５０上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）などを含むことができる。ネットワーク６５０上で交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）と拡張可能マークアップ言語（ＸＭＬ）とを含む、技術および／またはフォーマットを使用して表され得る。さらに、全部または一部のリンクは、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）、およびインターネットプロトコルセキュリティ（ＩＰｓｅｃ）など、従来の暗号化技術を使用して暗号化され得る。
【００６３】
一実施形態では、ユーザデバイス６１０は、ブラウザアプリケーション６１２を使用して、外部システム６２０およびソーシャルネットワーキングシステム６３０から受信されたマークアップ言語ドキュメント６１４を処理することによって、外部システム６２０からのコンテンツおよび／またはソーシャルネットワーキングシステム６３０からのコンテンツを表示し得る。マークアップ言語ドキュメント６１４は、コンテンツと、そのコンテンツのフォーマッティングまたはプレゼンテーションを記述する１つまたは複数の命令とを識別する。マークアップ言語ドキュメント６１４中に含まれる命令を実行することによって、ブラウザアプリケーション６１２は、マークアップ言語ドキュメント６１４によって記述されるフォーマットまたはプレゼンテーションを使用して、識別されたコンテンツを表示する。たとえば、マークアップ言語ドキュメント６１４は、外部システム６２０およびソーシャルネットワーキングシステム６３０から取り出されたテキストおよび／または画像データを含む複数のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態では、マークアップ言語ドキュメント６１４は、拡張可能マークアップ言語（ＸＭＬ）データ、拡張可能ハイパーテキストマークアップ言語（ＸＨＴＭＬ）データ、または他のマークアップ言語データを含む、データファイルを備える。さらに、マークアップ言語ドキュメント６１４は、外部システム６２０とユーザデバイス６１０との間のデータ交換を容易にするために、ＪａｖａＳｃｒｉｐｔオブジェクト表記法（ＪＳＯＮ）データと、パディング付きのＪＳＯＮ（ＪＳＯＮＰ）と、ＪａｖａＳｃｒｉｐｔデータとを含み得る。ユーザデバイス６１０上のブラウザアプリケーション６１２は、マークアップ言語ドキュメント６１４を復号するためにＪａｖａＳｃｒｉｐｔコンパイラを使用し得る。
【００６４】
マークアップ言語ドキュメント６１４はまた、ＦＬＡＳＨ（商標）アプリケーションまたはＵｎｉｔｙ（商標）アプリケーション、ＳｉｌｖｅｒＬｉｇｈｔ（商標）アプリケーションフレームワークなど、アプリケーションまたはアプリケーションフレームワークを含むか、あるいはそれらのアプリケーションまたはアプリケーションフレームワークにリンクし得る。
【００６５】
一実施形態では、ユーザデバイス６１０は、ユーザデバイス６１０のユーザがソーシャルネットワーキングシステム６３０にログインしたかどうかを指示するデータを含む、１つまたは複数のクッキー６１６をも含み、クッキー６１６は、ソーシャルネットワーキングシステム６３０からユーザデバイス６１０に通信されるデータの変更を可能にし得る。
【００６６】
外部システム６２０は、ネットワーク６５０を使用してユーザデバイス６１０に通信される１つまたは複数のウェブページ６２２ａ、６２２ｂを含む、１つまたは複数のウェブサーバを含む。外部システム６２０は、ソーシャルネットワーキングシステム６３０とは別個である。たとえば、外部システム６２０は、第１のドメインに関連付けられるが、ソーシャルネットワーキングシステム６３０は、別個のソーシャルネットワーキングドメインに関連付けられる。外部システム６２０中に含まれるウェブページ６２２ａ、６２２ｂは、コンテンツを識別し、識別されたコンテンツのフォーマッティングまたはプレゼンテーションを指定する命令を含む、マークアップ言語ドキュメント６１４を備える。
【００６７】
ソーシャルネットワーキングシステム６３０は、ソーシャルネットワークのための１つまたは複数のコンピューティングデバイスを含み、ソーシャルネットワークは、複数のユーザを含み、ソーシャルネットワークのユーザにソーシャルネットワークの他のユーザと通信および対話する能力を提供する。いくつかの事例では、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表され得る。限定はしないが、データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含む、他のデータ構造も、ソーシャルネットワークを表すために使用され得る。ソーシャルネットワーキングシステム６３０は、オペレータによって、運用、管理、または制御され得る。ソーシャルネットワーキングシステム６３０のオペレータは、人間、自動化されたアプリケーション、または、コンテンツを管理し、ポリシーを規制し、ソーシャルネットワーキングシステム６３０内の使用メトリックを収集するための一連のアプリケーションであり得る。任意のタイプのオペレータが使用され得る。
【００６８】
ユーザは、ソーシャルネットワーキングシステム６３０に加入し、次いで、自身がつなげられることを望む、ソーシャルネットワーキングシステム６３０の任意の数の他のユーザへのつながりを追加し得る。本明細書で使用される「友達」という用語は、ユーザが、ソーシャルネットワーキングシステム６３０を介して、つながり、関連付け、または関係を形成した、ソーシャルネットワーキングシステム６３０の任意の他のユーザを指す。たとえば、一実施形態では、ソーシャルネットワーキングシステム６３０内のユーザがソーシャルグラフ中のノードとして表される場合、「友達」という用語は、２つのユーザノード間に形成され、２つのユーザノードを直接接続する、エッジを指すことがある。
【００６９】
つながりは、ユーザによって明示的に追加され得るか、または、ユーザの共通特性（たとえば、同じ教育機関の卒業生であるユーザ）に基づいて、ソーシャルネットワーキングシステム６３０によって自動的に作成され得る。たとえば、第１のユーザが、特定の他のユーザを友達であるとして明確に選択する。ソーシャルネットワーキングシステム６３０内のつながりは、通常、両方向であるが、両方向である必要はなく、したがって、「ユーザ」および「友達」という用語は枠組みに依存する。ソーシャルネットワーキングシステム６３０のユーザ間のつながりは、通常、双方向（「二方向」）または「相互」であるが、つながりはまた、単方向または「一方向」であり得る。たとえば、ボブおよびジョーが、両者ともソーシャルネットワーキングシステム６３０のユーザであり、互いにつながっている場合、ボブおよびジョーは互いのつながりである。一方、ボブが、ジョーによってソーシャルネットワーキングシステム６３０に通信されたデータを閲覧するためにジョーにつながることを望むが、ジョーは、相互つながりを形成することを望まない場合、単方向つながりが確立され得る。ユーザ間のつながりは直接つながりであり得るが、ソーシャルネットワーキングシステム６３０のいくつかの実施形態は、つながりが、つながりの１つまたは複数のレベルまたは分離の程度を介して間接的であることを可能にする。
【００７０】
ユーザ間のつながりを確立および維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム６３０は、ソーシャルネットワーキングシステム６３０によってサポートされる様々なタイプのアイテムに対してアクションをとる能力をユーザに提供する。これらのアイテムは、ソーシャルネットワーキングシステム６３０のユーザが属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク）、ユーザが関心があり得るイベントまたはカレンダーエントリ、ユーザがソーシャルネットワーキングシステム６３０を介して使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム６３０によってまたはソーシャルネットワーキングシステム６３０を通して提供されるサービスを介して、ユーザがアイテムを購入または販売することを可能にするトランザクション、およびユーザがソーシャルネットワーキングシステム６３０内外で実施し得る広告との対話を含み得る。これらは、ユーザがソーシャルネットワーキングシステム６３０上で作用し得るアイテムのわずか数例であり、多くの他の例が可能である。ユーザは、ソーシャルネットワーキングシステム６３０において、あるいは、ソーシャルネットワーキングシステム６３０とは別個の、またはネットワーク６５０を介してソーシャルネットワーキングシステム６３０に結合された外部システム６２０において、表されることが可能であるものと対話し得る。
【００７１】
ソーシャルネットワーキングシステム６３０は、様々なエンティティをリンクすることも可能である。たとえば、ソーシャルネットワーキングシステム６３０は、ユーザが互いと対話すること、ならびに、ＡＰＩ、ウェブサービス、または他の通信チャネルを通して外部システム６２０または他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム６３０は、複数のエッジによって相互接続された複数のノードを備える「ソーシャルグラフ」を生成および維持する。ソーシャルグラフ中の各ノードは、別のノードに作用することができるエンティティ、および／または別のノードによって作用され得るエンティティを表し得る。ソーシャルグラフは様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザ、非人間エンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム６３０内のオブジェクトによって表され得る任意の他のものを含む。ソーシャルグラフ中の２つのノード間のエッジは、ノード関係から生じ得る、またはノードのうちの一方によって他方のノードに対して実施されたアクションから生じ得る、２つのノード間の特定の種類のつながりまたは関連付けを表し得る。いくつかの場合には、ノード間のエッジは重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連付けの強さなど、エッジに関連付けられた属性を表すことができる。異なるタイプのエッジが、異なる重みを与えられ得る。たとえば、あるユーザが別のユーザに「いいね！」するときに作成されるエッジは、ある重みを与えられ得るが、ユーザが別のユーザを友達にするときに作成されるエッジは、異なる重みを与えられ得る。
【００７２】
一例として、第１のユーザが第２のユーザを友達として識別するとき、第１のユーザを表すノードと第２のユーザを表す第２のノードとを接続する、ソーシャルグラフ中のエッジが生成される。様々なノードが互いと関係するかまたは対話するとき、ソーシャルネットワーキングシステム６３０は、関係および対話を反映するために、様々なノードを接続するエッジを変更する。
【００７３】
ソーシャルネットワーキングシステム６３０は、ソーシャルネットワーキングシステム６３０とのユーザの対話を向上させる、ユーザ生成されたコンテンツをも含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム６３０に追加、アップロード、送出、または「投稿」することができるものを含み得る。たとえば、ユーザは、ユーザデバイス６１０からソーシャルネットワーキングシステム６３０に投稿を通信する。投稿は、ステータス更新または他のテキストデータなどのデータ、ロケーション情報、写真などの画像、ビデオ、リンク、音楽、あるいは他の同様のデータおよび／またはメディアを含み得る。また、コンテンツは、サードパーティによってソーシャルネットワーキングシステム６３０に追加され得る。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム６３０内でオブジェクトとして表される。このようにして、ソーシャルネットワーキングシステム６３０のユーザは、様々な通信チャネルを通して様々なタイプのメディアのテキストおよびコンテンツアイテムを投稿することによって、互いと通信することを促される。そのような通信は、互いとのユーザの対話を増加させ、ユーザがソーシャルネットワーキングシステム６３０と対話する頻度を増加させる。
【００７４】
ソーシャルネットワーキングシステム６３０は、ウェブサーバ６３２と、ＡＰＩ要求サーバ６３４と、ユーザプロファイルストア６３６と、つながりストア６３８と、アクションロガー６４０と、アクティビティログ６４２と、認証サーバ６４４とを含む。本発明の一実施形態では、ソーシャルネットワーキングシステム６３０は、様々なアプリケーションについて、追加の構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク動作コンソールなどの他の構成要素は、システムの詳細を不明瞭にしないように示されていない。
【００７５】
ユーザプロファイルストア６３６は、ユーザによって申告された、またはソーシャルネットワーキングシステム６３０によって推測された、職歴、学歴、趣味または選好、ロケーションなど、経歴情報、人口統計学的情報、および他のタイプの記述情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザプロファイルストア６３６に記憶される。ソーシャルネットワーキングシステム６３０はまた、異なるユーザ間の１つまたは複数のつながりを記述するデータをつながりストア６３８に記憶する。つながり情報は、同様または共通の職歴、グループメンバーシップ、趣味、または学歴を有するユーザを指示し得る。さらに、ソーシャルネットワーキングシステム６３０は、ユーザが他のユーザとの自身の関係を指定することを可能にする、異なるユーザ間のユーザ定義されたつながりを含む。たとえば、ユーザ定義されたつながりは、友達、同僚、パートナーなど、ユーザの現実の関係に匹敵する他のユーザとの関係を、ユーザが生成することを可能にする。ユーザは、あらかじめ定義されたタイプのつながりから選択するか、またはユーザ自身のつながりタイプを必要に応じて定義し得る。非人間エンティティ、バケット、クラスタセンター、画像、関心事、ページ、外部システム、コンセプトなど、ソーシャルネットワーキングシステム６３０内の他のノードとのつながりも、つながりストア６３８に記憶される。
【００７６】
ソーシャルネットワーキングシステム６３０は、ユーザが対話し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロファイルストア６３６およびつながりストア６３８は、ソーシャルネットワーキングシステム６３０によって維持される対応するタイプのオブジェクトのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適した情報を記憶するのに好適である情報フィールドを有する。たとえば、ユーザプロファイルストア６３６は、ユーザのアカウントとユーザのアカウントに関係する情報とを記述するのに好適なフィールドをもつデータ構造を含んでいる。特定のタイプの新しいオブジェクトが作成されるとき、ソーシャルネットワーキングシステム６３０は、対応するタイプの新しいデータ構造を初期化し、この新しいデータ構造に一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトにデータを追加し始める。これは、たとえば、ユーザがソーシャルネットワーキングシステム６３０のユーザになるときに発生し得、ソーシャルネットワーキングシステム６３０は、ユーザプロファイルストア６３６にユーザプロファイルの新しいインスタンスを生成し、ユーザアカウントに一意の識別子を割り当て、ユーザによって提供される情報でユーザアカウントのフィールドをポピュレートし始める。
【００７７】
つながりストア６３８は、他のユーザへのユーザのつながり、外部システム６２０へのつながり、または他のエンティティへのつながりを記述するのに好適なデータ構造を含む。つながりストア６３８はまた、つながりタイプをユーザのつながりに関連付け得、つながりタイプは、ユーザに関する情報へのアクセスを規制するためにユーザのプライバシー設定とともに使用され得る。本発明の一実施形態では、ユーザプロファイルストア６３６およびつながりストア６３８は、連合データベースとして実装され得る。
【００７８】
つながりストア６３８と、ユーザプロファイルストア６３６と、アクティビティログ６４２とに記憶されたデータは、様々なオブジェクトを識別するためのノードと、異なるオブジェクト間の関係を識別するためにノードを接続するエッジとを使用するソーシャルグラフを、ソーシャルネットワーキングシステム６３０が生成することを可能にする。たとえば、第１のユーザがソーシャルネットワーキングシステム６３０内で第２のユーザとのつながりを確立する場合、ユーザプロファイルストア６３６からの第１のユーザおよび第２のユーザのユーザアカウントが、ソーシャルグラフ中のノードとして働き得る。つながりストア６３８によって記憶された第１のユーザと第２のユーザとの間のつながりは、第１のユーザに関連付けられたノードと第２のユーザに関連付けられたノードとの間のエッジである。この例を続けると、第２のユーザは、次いで、ソーシャルネットワーキングシステム６３０内で第１のユーザにメッセージを送出し得る。メッセージを送出するアクションは、第１のユーザおよび第２のユーザを表す、ソーシャルグラフ中の２つのノード間の別のエッジであり、メッセージを送出するアクションは記憶され得る。さらに、メッセージ自体が、第１のユーザおよび第２のユーザを表すノードに接続される別のノードとして、ソーシャルグラフ中で識別され、ソーシャルグラフ中に含まれ得る。
【００７９】
別の例では、第１のユーザは、ソーシャルネットワーキングシステム６３０によって維持される画像中で（または、代替的に、ソーシャルネットワーキングシステム６３０の外部の別のシステムによって維持される画像中で）第２のユーザをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム６３０内のノードとして表され得る。このタグ付けアクションは、第１のユーザと第２のユーザとの間のエッジを作成し、ならびに、ユーザの各々と、同じくソーシャルグラフ中のノードである画像との間のエッジを作成し得る。また別の例では、ユーザがイベントに参加することを確認した場合、ユーザおよびイベントは、ユーザプロファイルストア６３６から取得されるノードであり、イベントへの参加は、アクティビティログ６４２から取り出され得るノード間のエッジである。ソーシャルグラフを生成および維持することによって、ソーシャルネットワーキングシステム６３０は、多くの異なるタイプのオブジェクトを記述するデータと、それらのオブジェクトの間の対話およびつながりとを含み、社交上関連する情報の豊富なソースを提供する。
【００８０】
ウェブサーバ６３２は、ネットワーク６５０を介して、ソーシャルネットワーキングシステム６３０を１つまたは複数のユーザデバイス６１０および／または１つまたは複数の外部システム６２０にリンクする。ウェブサーバ６３２は、ウェブページ、ならびに、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬなどの他のウェブ関係コンテンツを供給する。ウェブサーバ６３２は、メールサーバ、または、ソーシャルネットワーキングシステム６３０と１つまたは複数のユーザデバイス６１０との間のメッセージを受信およびルーティングするための他のメッセージング機能性を含み得る。メッセージは、インスタントメッセージ、キューメッセージ（たとえば、電子メール）、テキストおよびＳＭＳメッセージ、または任意の他の好適なメッセージングフォーマットであり得る。
【００８１】
ＡＰＩ要求サーバ６３４は、１つまたは複数の外部システム６２０およびユーザデバイス６１０が、１つまたは複数のＡＰＩ関数を呼び出すことによって、ソーシャルネットワーキングシステム６３０からアクセス情報を呼び出すことを可能にする。ＡＰＩ要求サーバ６３４は、外部システム６２０が、ＡＰＩを呼び出すことによって、ソーシャルネットワーキングシステム６３０に情報を送出することをも可能にし得る。外部システム６２０は、一実施形態では、ネットワーク６５０を介してソーシャルネットワーキングシステム６３０にＡＰＩ要求を送出し、ＡＰＩ要求サーバ６３４は、ＡＰＩ要求を受信する。ＡＰＩ要求サーバ６３４は、ＡＰＩ要求に関連付けられたＡＰＩを呼び出すことによって要求を処理して適切な応答を生成し、ＡＰＩ要求サーバ６３４は、この応答を、ネットワーク６５０を介して外部システム６２０に通信する。たとえば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ６３４は、外部システム６２０にログインしたユーザのつながりなど、ユーザに関連付けられたデータを収集し、収集されたデータを外部システム６２０に通信する。別の実施形態では、ユーザデバイス６１０は、外部システム６２０と同じ様式で、ＡＰＩを介してソーシャルネットワーキングシステム６３０と通信する。
【００８２】
アクションロガー６４０は、ソーシャルネットワーキングシステム６３０内での、および／またはソーシャルネットワーキングシステム６３０外でのユーザアクションに関する通信を、ウェブサーバ６３２から受信することが可能である。アクションロガー６４０は、ユーザアクションに関する情報でアクティビティログ６４２をポピュレートし、ソーシャルネットワーキングシステム６３０の内部およびソーシャルネットワーキングシステム６３０の外部でソーシャルネットワーキングシステム６３０のユーザによってとられた様々なアクションを、ソーシャルネットワーキングシステム６３０が発見することを可能にする。特定のユーザがソーシャルネットワーキングシステム６３０上の別のノードに関してとる任意のアクションが、アクティビティログ６４２あるいは同様のデータベースまたは他のデータリポジトリに維持される情報を通して、各ユーザのアカウントに関連付けられ得る。識別および記憶される、ソーシャルネットワーキングシステム６３０内でユーザによってとられるアクションの例は、たとえば、別のユーザへのつながりを追加すること、別のユーザにメッセージを送出すること、別のユーザからのメッセージを読むこと、別のユーザに関連付けられたコンテンツを閲覧すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像の投稿を試みること、あるいは、別のユーザまたは別のオブジェクトと対話する他のアクションを含み得る。ユーザがソーシャルネットワーキングシステム６３０内でアクションをとると、そのアクションは、アクティビティログ６４２に記録される。一実施形態では、ソーシャルネットワーキングシステム６３０は、アクティビティログ６４２をエントリのデータベースとして維持する。ソーシャルネットワーキングシステム６３０内でアクションがとられると、そのアクションについてのエントリが、アクティビティログ６４２に追加される。アクティビティログ６４２は、アクションログと呼ばれることもある。
【００８３】
さらに、ユーザアクションは、ソーシャルネットワーキングシステム６３０とは別個である外部システム６２０など、ソーシャルネットワーキングシステム６３０の外部のエンティティ内で発生するコンセプトおよびアクションに関連付けられ得る。たとえば、アクションロガー６４０は、外部システム６２０とのユーザの対話を記述するデータをウェブサーバ６３２から受信し得る。この例では、外部システム６２０は、ソーシャルグラフ中の構造化されたアクションおよびオブジェクトに従って、ユーザの対話を報告する。
【００８４】
ユーザが外部システム６２０と対話するアクションの他の例は、外部システム６２０または別のエンティティに対する関心をユーザが表すこと、外部システム６２０または外部システム６２０内のウェブページ６２２ａについて説明するコメントをユーザがソーシャルネットワーキングシステム６３０に投稿すること、ユニフォームリソースロケータ（ＵＲＬ）または外部システム６２０に関連付けられた他の識別子をユーザがソーシャルネットワーキングシステム６３０に投稿すること、外部システム６２０に関連付けられたイベントにユーザが参加すること、あるいは、外部システム６２０に関係するユーザによる任意の他のアクションを含む。したがって、アクティビティログ６４２は、ソーシャルネットワーキングシステム６３０のユーザと、ソーシャルネットワーキングシステム６３０とは別個である外部システム６２０との間の対話を記述するアクションを含み得る。
【００８５】
認証サーバ６４４は、ソーシャルネットワーキングシステム６３０のユーザの１つまたは複数のプライバシー設定を施行する。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに関連付けられた特定の情報の仕様と、情報が共有され得る１つまたは複数のエンティティの仕様とを含む。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム６２０、または、潜在的にその情報にアクセスすることができる任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロファイル写真、ユーザに関連付けられた電話番号、ユーザのつながり、つながりを追加すること、ユーザプロファイル情報を変更することなどのユーザによってとられるアクションなど、ユーザアカウント情報を含む。
【００８６】
プライバシー設定の仕様は、異なるレベルの粒度において提供され得る。たとえば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得、プライバシー設定は、職場電話番号、または、プロファイル写真と、自宅電話番号と、ステータスとを含む個人情報など、関係する情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに関連付けられたすべての情報に適用され得る。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度において指定され得る。情報が共有され得るエンティティの様々なセットは、たとえば、ユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム６２０を含み得る。一実施形態は、エンティティのセットの仕様がエンティティの一覧表を含むことを可能にする。たとえば、ユーザは、ある情報にアクセスすることを可能にされる外部システム６２０のリストを提供し得る。別の実施形態は、仕様が、情報にアクセスすることを可能にされない例外とともにエンティティのセットを含むことを可能にする。たとえば、ユーザは、すべての外部システム６２０がユーザの職場情報にアクセスすることを可能にし得るが、職場情報にアクセスすることを可能にされない外部システム６２０のリストを指定し得る。いくつかの実施形態は、ある情報にアクセスすることを可能にされない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって指定されるブロックリストに属する外部システム６２０は、プライバシー設定において指定された情報にアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組合せが可能である。たとえば、すべての個人情報は、友達と共有され得るが、すべての職場情報は、友達の友達と共有され得る。
【００８７】
認証サーバ６４４は、ユーザに関連付けられたある情報が、ユーザの友達、外部システム６２０、ならびに／または他のアプリケーションおよびエンティティによってアクセスされ得るかどうかを決定するためのロジックを含んでいる。外部システム６２０は、ユーザの職場電話番号など、ユーザのよりプライベートなおよび機密性の高い情報にアクセスするために、認証サーバ６４４からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ６４４は、別のユーザ、外部システム６２０、アプリケーション、または別のエンティティが、ユーザによってとられたアクションに関する情報を含む、ユーザに関連付けられた情報にアクセスすることを可能にされるかどうかを決定する。
【００８８】
いくつかの実施形態では、ソーシャルネットワーキングシステム６３０は、顔効果生成モジュール６４６を含むことができる。顔効果生成モジュール６４６は、本明細書でより詳細に説明されるように、顔効果生成モジュール１０２で実装され得る。いくつかの実施形態では、顔効果生成モジュール６４６の１つまたは複数の機能性は、ユーザデバイス６１０中で実装され得る。
【００８９】
ハードウェア実装形態
上記のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図７は、本発明の一実施形態による、本明細書で説明される実施形態のうちの１つまたは複数を実装するために使用され得るコンピュータシステム７００の一例を示す。コンピュータシステム７００は、コンピュータシステム７００に、本明細書で説明されるプロセスおよび特徴を実施させるための命令のセットを含む。コンピュータシステム７００は、他のマシンに接続され（たとえば、ネットワーク化され）得る。ネットワーク化された展開では、コンピュータシステム７００は、クライアントサーバネットワーク環境内のサーバマシンまたはクライアントマシンの資格で動作するか、あるいは、ピアツーピア（または分散）ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態では、コンピュータシステム７００は、ソーシャルネットワーキングシステム６３０、ユーザデバイス６１０、および外部システム６２０、またはそれらの構成要素であり得る。本発明の一実施形態では、コンピュータシステム７００は、ソーシャルネットワーキングシステム６３０の全部または一部を構成する多数のサーバのうちの１つのサーバであり得る。
【００９０】
コンピュータシステム７００は、プロセッサ７０２と、キャッシュ７０４と、コンピュータ可読媒体に記憶され、本明細書で説明されるプロセスおよび特徴を対象とする、１つまたは複数の実行可能モジュールおよびドライバとを含む。さらに、コンピュータシステム７００は、高性能入出力（Ｉ／Ｏ）バス７０６と、標準Ｉ／Ｏバス７０８とを含む。ホストブリッジ７１０は、プロセッサ７０２を高性能Ｉ／Ｏバス７０６に結合するが、Ｉ／Ｏバスブリッジ７１２は、２つのバス７０６および７０８を互いに結合する。システムメモリ７１４および１つまたは複数のネットワークインターフェース７１６が、高性能Ｉ／Ｏバス７０６に結合される。コンピュータシステム７００は、ビデオメモリと、ビデオメモリに結合された表示デバイスとをさらに含み得る（図示せず）。大容量ストレージ７１８およびＩ／Ｏポート７２０が、標準Ｉ／Ｏバス７０８に結合される。コンピュータシステム７００は、標準Ｉ／Ｏバス７０８に結合された、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス（図示せず）を随意に含み得る。全体的に、これらの要素は、限定はしないが、カリフォルニア州サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されるｘ８６互換プロセッサ、カリフォルニア州サニーベルのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ（ＡＭＤ），Ｉｎｃ．によって製造されるｘ８６互換プロセッサ、ならびに任意の他の好適なプロセッサに基づくコンピュータシステムを含む、広いカテゴリのコンピュータハードウェアシステムを表すものである。
【００９１】
オペレーティングシステムが、ソフトウェアアプリケーション（図示せず）との間のデータの入力および出力を含む、コンピュータシステム７００の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインターフェースを提供する。ＬＩＮＵＸオペレーティングシステム、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．から入手可能なＡｐｐｌｅ  Ｍａｃｉｎｔｏｓｈオペレーティングシステム、ＵＮＩＸオペレーティングシステム、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステムなど、任意の好適なオペレーティングシステムが使用され得る。他の実装形態が可能である。
【００９２】
コンピュータシステム７００の要素が以下でより詳細に説明される。特に、ネットワークインターフェース７１６は、コンピュータシステム７００と、イーサネット（たとえば、ＩＥＥＥ８０２．３）ネットワーク、バックプレーンなど、広範囲のネットワークのうちのいずれかとの間の通信を提供する。大容量ストレージ７１８は、上記で識別されたそれぞれのコンピューティングシステムによって実装される上記で説明されたプロセスおよび特徴を実施するためのデータおよびプログラミング命令のための永続的なストレージを提供するが、システムメモリ７１４（たとえば、ＤＲＡＭ）は、プロセッサ７０２によって実行されたとき、データおよびプログラミング命令のための一時的なストレージを提供する。Ｉ／Ｏポート７２０は、コンピュータシステム７００に結合され得る追加の周辺デバイス間の通信を提供する、１つまたは複数のシリアルおよび／またはパラレル通信ポートであり得る。
【００９３】
コンピュータシステム７００は、様々なシステムアーキテクチャを含み得、コンピュータシステム７００の様々な構成要素は再構成され得る。たとえば、キャッシュ７０４は、プロセッサ７０２とともにオンチップであり得る。代替的に、キャッシュ７０４およびプロセッサ７０２は「プロセッサモジュール」としてまとめられ得、プロセッサ７０２が「プロセッサコア」と呼ばれる。さらに、本発明のいくつかの実施形態は、上記の構成要素のすべてを必要とするとは限らず、また、含むとは限らないことがある。たとえば、標準Ｉ／Ｏバス７０８に結合された周辺デバイスは、高性能Ｉ／Ｏバス７０６に結合され得る。さらに、いくつかの実施形態では、単一のバスのみが存在し得、コンピュータシステム７００の構成要素が、その単一のバスに結合される。その上、コンピュータシステム７００は、追加のプロセッサ、記憶デバイス、またはメモリなど、追加の構成要素を含み得る。
【００９４】
概して、本明細書で説明されるプロセスおよび特徴は、オペレーティングシステムまたは特定のアプリケーションの一部、構成要素、プログラム、オブジェクト、モジュール、あるいは「プログラム」と呼ばれる一連の命令として実装され得る。たとえば、１つまたは複数のプログラムが、本明細書で説明される特定のプロセスを実行するために使用され得る。プログラムは、典型的には、コンピュータシステム７００内の様々なメモリおよび記憶デバイス中の１つまたは複数の命令を備え、それらの命令は、１つまたは複数のプロセッサによって読み取られ、実行されたとき、コンピュータシステム７００に、本明細書で説明されるプロセスおよび特徴を実行するための動作を実施させる。本明細書で説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア（たとえば、特定用途向け集積回路）、またはそれらの任意の組合せとして実装され得る。
【００９５】
一実装形態では、本明細書で説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム７００によって実行される一連の実行可能モジュールとして実装される。上記のモジュールは、ハードウェア、コンピュータ可読媒体（または機械可読媒体）に記憶された実行可能モジュール、または両方の組合せによって実現され得る。たとえば、モジュールは、プロセッサ７０２など、ハードウェアシステム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。最初に、一連の命令は、大容量ストレージ７１８などの記憶デバイスに記憶され得る。ただし、一連の命令は、任意の好適なコンピュータ可読記憶媒体に記憶され得る。さらに、一連の命令は、ローカルに記憶される必要はなく、ネットワーク上のサーバなどのリモート記憶デバイスからネットワークインターフェース７１６を介して受信され得る。命令は、大容量ストレージ７１８などの記憶デバイスからシステムメモリ７１４中にコピーされ、次いで、プロセッサ７０２によってアクセスされ、実行される。様々な実装形態では、１つまたは複数のモジュールは、並列処理環境中の複数のサーバなど、１つまたは複数のロケーションにある１つまたは複数のプロセッサによって実行され得る。
【００９６】
コンピュータ可読媒体の例は、限定はしないが、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能タイプ媒体、ソリッドステートメモリ、フロッピーディスクおよび他のリムーバブルディスク、ハードディスクドライブ、磁気媒体、光ディスク（たとえば、コンパクトディスク読取り専用メモリ（ＣＤ  ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的（または一時的）有形（または非有形）記憶媒体、あるいは、本明細書で説明されるプロセスおよび特徴のうちの任意の１つまたは複数を実施するためにコンピュータシステム７００が実行するための一連の命令を記憶、符号化、または搬送するのに好適な任意のタイプの媒体を含む。
【００９７】
説明の目的で、多数の具体的な詳細が、説明の完全な理解を提供するために記載される。しかしながら、これらの具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの事例では、モジュール、構造、プロセス、特徴、およびデバイスは、説明を不明瞭にすることを回避するために、ブロック図の形式で示される。他の事例では、データおよび論理フローを表すために、機能ブロック図およびフロー図が示される。ブロック図およびフロー図の構成要素（たとえば、モジュール、ブロック、構造、デバイス、特徴など）は、本明細書において明確に説明および図示された様式以外の様式で、様々に組み合わされ、分離され、除去され、並べ替えられ、置換され得る。
【００９８】
本明細書における、「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「一実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」などへの言及は、実施形態に関して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも一実施形態に含まれることを意味する。本明細書内の様々な箇所における、たとえば「一実施形態では（ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」、または「一実施形態では（ｉｎ  ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」という句の出現は、必ずしもすべてが同じ実施形態に言及するものとは限らず、また、別個の実施形態または代替実施形態は、他の実施形態と相互排他的ではない。その上、「実施形態」などへの明示的な言及があるか否かにかかわらず、様々な特徴が説明され、様々な特徴は、いくつかの実施形態では様々に組み合わされ、含まれ得るが、他の実施形態では様々に省略されることもある。同様に、いくつかの実施形態にとっては選好または要件であり得るが、他の実施形態にとっては選好または要件ではない、様々な特徴が説明される。
【００９９】
本明細書において使用される言い回しは、主に、読みやすさおよび教授の目的で選択されており、本発明の主題を示すかまたは定めるために選択されていないことがある。したがって、本発明の範囲は、この発明を実施するための形態によってではなく、本明細書に基づく出願に関して生じる請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、以下の特許請求の範囲に記載される本発明の範囲を例示するものであり、限定するものではない。
【図１】
2021512382.tif 000003
【図２】
2021512382.tif 000004
【図３Ａ】
2021512382.tif 000005
【図３Ｂ】
2021512382.tif 000006
【図３Ｃ】
2021512382.tif 000007
【図４】
2021512382.tif 000008
【図５】
2021512382.tif 000009
【図６】
2021512382.tif 000010
【図７】
2021512382.tif 000011
【国際調査報告】
2021512382.tif 000012
2021512382.tif 000013