(57)【要約】  いくつかの実施形態において、顔を描写するソース画像にアクセスすることができる。ソース画像の顔を描写する部分を決定することができる。ユーザ入力に基づいて検索クエリを取得することができる。検索クエリに関連付けられている１以上のターゲット画像のセットを識別することができる。１以上のターゲット画像のセットの各ターゲット画像内で、ソース画像の部分がレンダリングされるべきそれぞれの位置を識別することができる。１以上のターゲット画像のセットの各ターゲット画像について、ソース画像の部分が各ターゲット画像内のそれぞれの位置にレンダリングされて、１以上の結合画像のセットを生成することができる。結合画像のセットの各結合画像は、各ターゲット画像内のそれぞれの位置にレンダリングされたソース画像の部分を含むことができる。
2019530041.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・システムが、顔を描写するソース画像にアクセスする工程と、
前記コンピューティング・システムが、前記ソース画像の前記顔を描写する部分を決定する工程と、
前記コンピューティング・システムが、ユーザ入力に基づいて検索クエリを取得する工程と、
前記コンピューティング・システムが、前記検索クエリに関連付けられている１以上のターゲット画像のセットを識別する、ターゲット画像識別工程と、
前記コンピューティング・システムが、前記１以上のターゲット画像のセットの各ターゲット画像内で、前記ソース画像の前記部分がレンダリングされるべきそれぞれの位置を識別する工程と、
前記コンピューティング・システムが、前記１以上のターゲット画像のセットの各ターゲット画像について、各ターゲット画像内の前記それぞれの位置に前記ソース画像の前記部分をレンダリングして１以上の結合画像のセットを生成する工程であって、前記１以上の結合画像のセット内の各結合画像が各ターゲット画像内の前記それぞれの位置にレンダリングされた前記ソース画像の前記部分を含む、工程と、
を含む、コンピュータ実装方法。
【請求項２】
複数の画像内の各画像に画像分類アルゴリズムを適用する工程と、
前記画像分類アルゴリズムを適用することに基づいて、前記複数の画像内の各画像が１以上の検索クエリとの１以上の関連付けのそれぞれのセットを有することを決定する工程と、
前記顔を描写する前記ソース画像にアクセスする前に、前記複数の画像と、前記複数の画像内の各画像についての前記１以上の関連付けのそれぞれのセットと、を記憶する工程であって、前記１以上のターゲット画像のセットは前記複数の画像から識別される、工程と、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記１以上のターゲット画像のセットの各ターゲット画像内で、前記ソース画像の前記部分がレンダリングされるべき前記それぞれの位置は、前記顔を描写する前記ソース画像にアクセスする前に識別される、請求項１に記載の方法。
【請求項４】
前記描写される顔に関連付けられている１以上の属性を前記ソース画像の前記部分を介して識別する工程と、
各ターゲット画像内の前記それぞれの位置に前記ソース画像の前記部分をレンダリングする前に、前記１以上のターゲット画像のセットの各ターゲット画像が、前記顔に関連付けられている前記１以上の属性に一致するしきい値の信頼水準を少なくとも有する１以上の属性のそれぞれのセットに関連付けられていることを決定する工程と、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記１以上のターゲット画像のセットの各ターゲット画像が、前記顔に関連付けられている前記１以上の属性に一致するしきい値の信頼水準を有する１以上の属性のそれぞれのセットに関連付けられていることを決定する工程は、各ターゲット画像に関連付けられている１以上の属性の前記それぞれのセットおよび前記顔に関連付けられている前記１以上の属性に類似関数を適用することに基づく、請求項４に記載の方法。
【請求項６】
前記１以上の属性は、顔属性、ポーズ属性、皮膚属性、髪属性、年齢属性、および性別属性のうちの少なくとも１つを含む、請求項４に記載の方法。
【請求項７】
前記ターゲット画像識別工程は、前記１以上のターゲット画像のセットの各ターゲット画像が前記検索クエリに一致するしきい値の信頼水準を少なくとも有すると決定することを含む、請求項１に記載の方法。
【請求項８】
前記ユーザ入力は、１）ユーザに提供された複数の定義された検索クエリの中からの、前記ユーザによる前記検索クエリの選択、および２）前記検索クエリを生成するために前記ユーザが入力したテキスト、のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項９】
前記ソース画像の第２の顔を描写する第２部分を決定する工程であって、前記１以上のターゲット画像のセットは、前記顔と一致するしきい値の第１信頼水準を少なくとも有し、かつ、前記第２の顔と一致するしきい値の第２信頼水準を少なくとも有すると識別される工程と、
前記１以上のターゲット画像のセットの各ターゲット画像内で、前記ソース画像の前記第２部分がレンダリングされるべきそれぞれの第２位置を識別する工程と、
前記１以上のターゲット画像のセットの各ターゲット画像について、各ターゲット画像内の前記それぞれの第２位置に前記ソース画像の前記第２部分をレンダリングする工程と、をさらに含み、前記１以上の結合画像のセット内の各結合画像は、各ターゲット画像内の前記それぞれの第２位置にレンダリングされた前記ソース画像の前記第２部分をさらに含む、請求項１に記載の方法。
【請求項１０】
前記ソース画像はソース・ビデオの一部であり、各ターゲット画像はそれぞれのターゲット・ビデオの一部である、請求項１に記載の方法。
【請求項１１】
少なくとも１つのプロセッサと、
命令を記憶したメモリと、を備えるシステムであって、
前記命令は、前記少なくとも１つのプロセッサによって実行されたときに、
顔を描写するソース画像にアクセスする工程と、
前記ソース画像の前記顔を描写する部分を決定する工程と、
ユーザ入力に基づいて検索クエリを取得する工程と、
前記検索クエリに関連付けられている１以上のターゲット画像のセットを識別する工程と、
前記１以上のターゲット画像のセットの各ターゲット画像内で、前記ソース画像の前記部分がレンダリングされるべきそれぞれの位置を識別する工程と、
前記１以上のターゲット画像のセットの各ターゲット画像について、各ターゲット画像内の前記それぞれの位置に前記ソース画像の前記部分をレンダリングして１以上の結合画像のセットを生成する工程であって、前記１以上の結合画像のセット内の各結合画像が各ターゲット画像内の前記それぞれの位置にレンダリングされた前記ソース画像の前記部分を含む、工程と、
をシステムに行わせる、システム。
【請求項１２】
前記命令は前記システムに、
複数の画像内の各画像に画像分類アルゴリズムを適用する工程と、
前記画像分類アルゴリズムを適用することに基づいて、前記複数の画像内の各画像が１以上の検索クエリとの１以上の関連付けのそれぞれのセットを有することを決定する工程と、
前記顔を描写する前記ソース画像にアクセスする前に、前記複数の画像と、前記複数の画像内の各画像についての前記１以上の関連付けのそれぞれのセットと、を記憶する工程であって、前記１以上のターゲット画像のセットは前記複数の画像から識別される、工程と、
をさらに行わせる、請求項１１に記載の方法。
【請求項１３】
前記命令は前記システムに、
前記描写される顔に関連付けられている１以上の属性を前記ソース画像の前記部分を介して識別する工程と、
各ターゲット画像内の前記それぞれの位置に前記ソース画像の前記部分をレンダリングする前に、前記１以上のターゲット画像のセットの各ターゲット画像が、前記顔に関連付けられている前記１以上の属性に一致するしきい値の信頼水準を少なくとも有する１以上の属性のそれぞれのセットに関連付けられていることを決定する工程と、
をさらに行わせる、請求項１１に記載のシステム。
【請求項１４】
前記１以上のターゲット画像のセットの各ターゲット画像が、前記顔に関連付けられている前記１以上の属性に一致するしきい値の信頼水準を少なくとも有する１以上の属性のそれぞれのセットに関連付けられていることを決定する工程は、各ターゲット画像に関連付けられている１以上の属性の前記それぞれのセットおよび前記顔に関連付けられている前記１以上の属性に類似関数を適用することに基づく、請求項１３に記載のシステム。
【請求項１５】
前記１以上の属性は、顔属性、ポーズ属性、皮膚属性、髪属性、年齢属性、および性別属性のうちの少なくとも１つを含む、請求項１３に記載のシステム。
【請求項１６】
命令を備えた非一時的コンピュータ可読記憶媒体であって、
コンピューティング・システムの少なくとも１つのプロセッサによって実行されたときに、前記コンピューティング・システムに、
顔を描写するソース画像にアクセスする工程と、
前記ソース画像の前記顔を描写する部分を決定する工程と、
ユーザ入力に基づいて検索クエリを取得する工程と、
前記検索クエリに関連付けられている１以上のターゲット画像のセットを識別する工程と、
前記１以上のターゲット画像のセットの各ターゲット画像内で、前記ソース画像の前記部分がレンダリングされるべきそれぞれの位置を識別する工程と、
前記１以上のターゲット画像のセットの各ターゲット画像について、各ターゲット画像内の前記それぞれの位置に前記ソース画像の前記部分をレンダリングして１以上の結合画像のセットを生成する工程であって、前記１以上の結合画像のセット内の各結合画像が各ターゲット画像内の前記それぞれの位置にレンダリングされた前記ソース画像の前記部分を含む、工程と、
を行わせる、非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記命令は前記コンピューティング・システムに、
複数の画像内の各画像に画像分類アルゴリズムを適用する工程と、
前記画像分類アルゴリズムを適用することに基づいて、前記複数の画像内の各画像が１以上の検索クエリとの１以上の関連付けのそれぞれのセットを有することを決定する工程と、
前記顔を描写する前記ソース画像にアクセスする前に、前記複数の画像と、前記複数の画像内の各画像についての前記１以上の関連付けのそれぞれのセットと、を記憶する工程であって、前記１以上のターゲット画像のセットは前記複数の画像から識別される、工程と、
をさらに行わせる、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記命令は前記コンピューティング・システムに、
前記描写される顔に関連付けられている１以上の属性を前記ソース画像の前記部分を介して識別する工程と、
各ターゲット画像内の前記それぞれの位置に前記ソース画像の前記部分をレンダリングする前に、前記１以上のターゲット画像のセットの各ターゲット画像と、前記顔に関連付けられている前記１以上の属性とが一致する少なくともしきい値の信頼水準を有する１以上の属性のそれぞれのセットに関連付けられていることを決定する工程と、
をさらに行わせる、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記１以上のターゲット画像のセットの各ターゲット画像が、前記顔に関連付けられている前記１以上の属性に一致するしきい値の信頼水準を少なくとも有する１以上の属性のそれぞれのセットに関連付けられていることを決定する工程は、各ターゲット画像に関連付けられている１以上の属性の前記それぞれのセットおよび前記顔に関連付けられている前記１以上の属性に類似関数を適用することに基づく、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記１以上の属性は、顔属性、ポーズ属性、皮膚属性、髪属性、年齢属性、および性別属性のうちの少なくとも１つを含む、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にマルチメディア処理に関し、具体的にはマルチメディアまたはメディア・コンテンツ・アイテムの結合に関する。
【背景技術】
【０００２】
現在、人々は多様な目的でコンピューティング・デバイス（すなわち、コンピューティング・システム）をよく利用する。ユーザは、自分のコンピューティング・デバイスを使用して、例えば、互いに対話し、コンテンツにアクセスし、コンテンツをシェアし、コンテンツを作成することができる。ある場合には、ユーザは、自分のコンピューティング・デバイスを利用して、画像、ビデオおよびオーディオなどのマルチメディア（すなわち、メディア）・コンテンツを生成し、ダウンロードし、視聴し、コンテンツにアクセスし、またはその他の形でコンテンツと対話することができる。例えば、オンライン・システムまたはオンライン・サービス（例、ソーシャル・ネットワーキング・システムまたはソーシャル・ネットワーキング・サービス）のユーザは、自分のコンピューティング・デバイスを介して、メディア・コンテンツを視聴するためにメディア・コンテンツをダウンロードし、メディア・コンテンツをシェアするためにアップロードし、またはメディア・コンテンツに関連する情報と対話することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ある場合には、人の顔の描写または表現を含む画像などのコンテンツに関して、メディア処理を実施または適用することができる。コンピュータ技術に根ざした従来のアプローチにおいては、こうしたメディア・コンテンツに実施または適用されるメディア処理操作は、非現実的な、非効率的な、または興味のわかない結果を出しかねない。一例において、電子商取引の顧客が仮想の衣類アイテムを着た自分を見られるようにするためにメディア処理を利用することは、融通がきかず、退屈で、不正確で、または便利なようにパーソナライズ／カスタマイズすることが不可能なことがある。したがって、従来のアプローチは、メディア・コンテンツを利用し、コンテンツにアクセスし、またはコンテンツと対話することに関連する体験全体に課題を生むか、または体験全体を減じかねない。
【課題を解決するための手段】
【０００４】
人々は様々な目的でコンピューティング・システム（またはデバイス）を使用する。ユーザは、自分のコンピューティング・システムを利用して、接続を確立し、コミュニケーションに参加し、互いに対話し、および／または様々なタイプのコンテンツと対話することができる。ある場合には、コンピューティング・デバイスは、（ビデオ画像フレームの、または静止フレームのセットに基づいて形成することができる）画像またはビデオなどのメディア（すなわち、マルチメディア）・コンテンツをキャプチャまたは録画することが可能なカメラを含むか、またはカメラに対応することができる。しばしば、画像などのメディア・コンテンツは、１つまたは複数のオブジェクトを描写し、表現し、または含むことができる。画像内のオブジェクトの例には、ユーザ（例、ユーザの顔）またはその一部を含むことができるが、これに限定されない。
【０００５】
メディア処理に関するコンピュータ技術に根ざした従来のアプローチは、顔を描写し、表現し、または含む画像の修正を試みることができる。しかし、従来のメディア処理のアプローチは、限定された、融通のきかない、または実際的でない結果を出すことがある。例えば、ある場合には、従来のアプローチは、限定された数の修正しか画像に施すことはできない。別の例では、従来のアプローチは、デフォルトまたは予め構成されている修正しか画像に施せないので、ユーザの入力および／または選択は利用できない。別の例では、従来のアプローチは、画像に、十分に現実的または正確とは思えない修正を生じさせることが度々ある。したがって、多くの場合、メディア処理のために従来のアプローチを利用することは課題が多く、非効率的であり、および／または望ましくない。
【０００６】
以上のまたは他の懸念材料のため、従来のアプローチは、不都合であるかまたは問題のあるものになりかねない。そのため、従来のアプローチに関連する様々な欠点に対処するかまたはそれらを軽減するための、改良されたアプローチが有益となりうる。コンピュータ技術に基づき、開示された技術は、顔を描写するソース画像を取得するかまたは画像にアクセスすることができる。例えば、ユーザは、コンピューティング・デバイスを利用して、画像をキャプチャおよび／または入力（例、アップロード、提出、等）することができる。ソース画像の顔を描写する部分を識別または決定することができる。ある場合には、１つまたは複数のオブジェクト認識および／または検出技術を利用して、ソース画像の顔を描写または表現している部分を識別、検出、または探し出すことができる。また、検索クエリは、ユーザ入力に基づいて取得することができる。いくつかの実施態様において、検索クエリは、ユーザが入力したテキストに基づいて取得し、生成することができる。いくつかの実施形態では、開示される技術は、複数の検索クエリを定義（すなわち、事前に定義、事前に設定等）することができ、複数の定義された検索クエリをユーザに提供することができ、提供された複数の定義された検索クエリの中から、特定の検索クエリのユーザによる選択を受信し、獲得し、またはその他の形で取得することができる。
【０００７】
さらに、開示される技術は、検索クエリに関連付けられている、１つまたは複数のターゲット画像のセットを識別することができる。例えば、ターゲット画像のセットは、検索クエリ（例、用語、キーワード、フレーズ、話題、テーマ、ラベル、タグ、等）に関連しているとすでに認識、分類および／またはラベル付けされている、複数のターゲット画像から識別することができる。ターゲット画像のそれぞれは、１つまたは複数の顔を描写または表現することもできる。開示される技術は、１つまたは複数のターゲット画像のセットからの各ターゲット画像内で、ソース画像の部分をレンダリングするべきそれぞれの位置を識別することができる。一例として、各ターゲット画像内のそれぞれの位置は、各ターゲット画像で顔が描写または表現されている場所に基づいて識別することができる。
【０００８】
１つまたは複数のターゲット画像のセットからの各ターゲット画像について、開示される技術は、１つまたは複数の結合画像のセットを生成するために、各ターゲット画像内のそれぞれの位置にソース画像の部分をレンダリングすることができる。結合画像のセット内の各結合画像は、各ターゲット画像内のそれぞれの位置にレンダリングされる、ソース画像の部分を含むことができる。例えば、各結合画像は、ソース画像の顔が検索クエリに一致する、各ターゲット画像にマッピングされる合成画像に対応させることができる。この場合、開示される技術は、ソース画像の顔部分（のエッジ）を、ソース画像の顔部分がレンダリングされる各ターゲット画像内のそれぞれの位置（のエッジ）にミックスまたはブレンドして、例えば、合成画像の外観全体、自然さおよび／または意図される現実性を改善することができる。
【０００９】
開示される技術の多くの他の特徴、アプリケーション、実施形態および／または変型例は、添付の図面および以下の説明から明らかになることは理解されるべきである。本明細書で説明される構造、システム、非一時的コンピュータ可読媒体および方法の追加および／または代替実施態様を、開示される技術の原理から逸脱することなく採用することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態による、例示的なオンライン・システムが動作する例示的なシステム環境のブロック図。
【図２】一実施形態による、例示的なオンライン・システムのブロック図。
【図３】一実施形態による、例示的な画像結合モジュールのブロック図。
【図４】一実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なシナリオを示す図。
【図５】一実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なプロセスを表すフローチャート。
【図６】一実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なプロセスを表すフローチャート。
【図７】一実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なプロセスを表すフローチャート。
【発明を実施するための形態】
【００１１】
図面は様々な実施形態を例示目的でのみ図示している。当業者は、以下の考察から、本明細書において説明される原理から逸脱することなく、本明細書において例示される構造および方法の代替実施形態が採用できることを容易に認識するであろう。
【００１２】
システム・アーキテクチャ
図１は、一実施形態による、例示的なオンライン・システム１４０が動作する例示的なシステム環境１００のブロック図を示す。図１に図示する例示的なシステム環境１００は、１つまたは複数のクライアント・デバイス１１０、ネットワーク１２０、１つまたは複数のサードパーティ・システム１３０、およびオンライン・システム１４０を備えることができる。代替構成においては、システム環境１００に異なるコンポーネントおよび／または追加のコンポーネントを含め、および／またはシステム環境１００から異なるコンポーネントおよび／または追加のコンポーネントを省いてもよい。ある場合には、オンライン・システム１４０は、例えば、ソーシャル・ネットワーキング・システム、コンテンツ共有ネットワーク、および／またはシステムのユーザにコンテンツを提供するための別のシステム等とすることができる。
【００１３】
クライアント・デバイス１１０は、ネットワーク１２０経由でユーザ入力を受信すること、ならびにデータを送信および／または受信することのできる、１つまたは複数のコンピューティング・デバイスとすることができる。一実施態様では、クライアント・デバイス１１０は、デスクトップまたはラップトップ・コンピュータなどの従来のコンピュータ・システムである。あるいは、クライアント・デバイス１１０は、携帯情報端末（ＰＤＡ）、携帯電話、スマートフォン、ウェアラブル・デバイス、または別の適切なデバイスなど、コンピュータ機能を有するデバイスであってもよい。クライアント・デバイス１１０は、ネットワーク１２０経由で通信するように構成することができる。一実施形態において、クライアント・デバイス１１０は、クライアント・デバイス１１０のユーザがオンライン・システム１４０と対話できるようにするアプリケーションを実行する。例えば、クライアント・デバイス１１０は、クライアント・デバイス１１０とオンライン・システム１４０との間の対話をネットワーク１２０経由で可能にするために、オンライン・システムによって提供されるアプリケーションまたはブラウザ・アプリケーションを実行することができる。別の実施形態では、クライアント・デバイス１１０は、ＩＯＳ（登録商標）またはＡＮＤＲＯＩＤ（登録商標）など、クライアント・デバイス１１０のネイティブ・オペレーティング・システム上で稼働するアプリケーション・プログラミング・インタフェース（ＡＰＩ）を通じて、オンライン・システム１４０と対話することができる。多くの変型例が可能であることは了解されるべきである。
【００１４】
クライアント・デバイス１１０は、有線および／または無線両方の通信システムを使用して、ネットワーク１２０経由で通信するように構成することができ、ネットワークは、ローカル・エリア・ネットワークおよび／または広域ネットワークの任意の組み合わせを備えることができる。一実施形態では、ネットワーク１２０は、標準的な通信技術および／またはプロトコルを使用する。例えば、ネットワーク１２０は、イーサネット（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、４Ｇ、符号分割多元接続（ＣＤＭＡ）、デジタル加入者線（ＤＳＬ）、等の技術を使用する通信リンクを含む。ネットワーク１２０経由で通信するために使用されるネットワーキング・プロトコルの例は、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）、トランスミッション・コントロール・プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、およびファイル転送プロトコル（ＦＴＰ）を含むことができる。ネットワーク１２０で交換されるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）または拡張マークアップ言語（ＸＭＬ）など、任意の適切なフォーマットを使用して表すことができる。いくつかの実施形態では、ネットワーク１２０の通信リンクの全部または一部は、１つまたは複数の任意の適切な手法を使用して暗号化することができる。
【００１５】
また、１つまたは複数のサードパーティ・システム１３０は、オンライン・システム１４０と通信するためにネットワーク１２０に連結することができ、これを、図２に関連して以下詳細に説明する。いくつかの実施形態において、サードパーティ・システム１３０は、クライアント・デバイス１１０が実行するためのアプリケーションを記述する情報を通信する、または、クライアント・デバイス１１０上で実行するアプリケーションが使用するためにクライアント・デバイス１１０にデータを通信するアプリケーション・プロバイダである。例えば、サードパーティ・システム１３０は、開示される技術の様々な実施形態に関連する、１つまたは複数のアプリケーションを開発または提供することができる。この例では、開示される技術、または少なくともその一部は、１つまたは複数のアプリケーション経由で実施することができ、または、１つまたは複数のアプリケーションに含むことができる。いくつかの実施態様では、サードパーティ・システム１３０は、クライアント・デバイス１１０経由で提示するために、コンテンツまたは他の情報を提供することができる。サードパーティ・システム１３０は、サードパーティ・システム１３０によって提供されるアプリケーションに関する広告、コンテンツ、または情報などの情報を、オンライン・システム１４０に通信することもできる。いくつかの実施形態では、サードパーティ・システム１３０は、オンライン・システム１４０内の、広告主などのコンテンツ・プロバイダとすることができる。例えば、コンテンツ・プロバイダは、オンライン・システム１４０内のページなどのリソースの管理者またはマネージャに対応することができる。開示される技術に関連する多くの変型例が可能である。
【００１６】
図２は、一実施形態による、例示的なオンライン・システム１４０のブロック図を示す。図２に図示するオンライン・システム１４０は、ユーザ・プロフィール・ストア２０５と、コンテンツ・ストア２１０と、アクション・ロガー２１５と、アクション・ログ２２０と、エッジ・ストア２２５と、画像結合モジュール２３０と、ウェブ・サーバ２３５とを含むことができる。いくつかの実施形態では、オンライン・システム１４０は、様々なアプリケーションのために、追加のコンポーネント／モジュール、より少ないコンポーネント／モジュール、または異なるコンポーネント／モジュールを含むことができる。一般に、本明細書で述べるモジュールは、ソフトウェア、ハードウェアまたはその任意の組み合わせに関連付けることができる。いくつかの実施態様では、モジュールの１つまたは複数の機能、タスクおよび／または動作は、ソフトウェアのルーチン、ソフトウェアのプロセス、ハードウェア、および／またはその任意の組み合わせによって実施または実行することができる。ある場合には、モジュールは、一部または全体を、ユーザまたはクライアント・コンピューティング・デバイスなど、１つまたは複数のコンピューティング・デバイスまたはシステム上で稼働するソフトウェアなどとして実装することができる。例えば、モジュールまたは少なくともその一部は、ユーザのコンピューティング・デバイスまたはクライアント／ユーザのコンピューティング・システム上で稼働しているアプリケーション（例、アプリ）、プログラム、アプレット、またはオペレーティング・システム等として、またはその中に実装することができる。別の実施例では、モジュールまたは少なくともその一部は、ネットワーク・サーバまたはクラウド・サーバなどの１つまたは複数のサーバを含むことができる、１つまたは複数のコンピューティング・デバイスまたはシステムを使用して実装することができる。ある場合には、モジュールは、一部または全体を、ソーシャル・ネットワーキング・システムまたはサービスなど、オンライン・システムまたはサーバ１４０内に実装されるか、またはそれと連動して動作するように構成することができる。また、ネットワーク・インタフェース、セキュリティ機能、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク・オペレーション・コンソール等の従来のコンポーネントは、システム・アーキテクチャの細部がわかりにくくならないように、明確には図示していない。
【００１７】
オンライン・システム１４０の各ユーザは、ユーザ・プロフィール・ストア２０５に記憶されているユーザ・プロフィールに関連付けられていてもよい。ユーザ・プロフィールは、ユーザが明白にシェアしたユーザに関する宣言的情報を含んでもいてもよい、オンライン・システム１４０によって推定されるプロフィール情報も含むことができる。一実施形態においては、ユーザ・プロフィールは、対応するオンライン・システムのユーザの１つまたは複数の属性をそれぞれ記述する複数のデータフィールドを含む。ユーザ・プロフィールに記憶される情報の例には、職歴、学歴、性別、趣味や嗜好、ロケーション等など、人物、人口統計学的およびその他のタイプの記述的情報が含まれる。ユーザ・プロフィールは、ユーザが提供する他の情報、たとえば、画像やビデオを記憶することもできる。一定の実施形態においては、ユーザの画像を、画像に表示されるオンライン・システムのユーザを識別する情報でタグ付けすることが可能であり、ユーザがタグ付された画像を識別する情報は、ユーザのユーザ・プロフィールに記憶される。ユーザ・プロフィール・ストア２０５内のユーザ・プロフィールは、コンテンツ・ストア２１０内のコンテンツ・アイテムに対して行われてアクション・ログ２２０に記憶される、対応するユーザによるアクションへの参照を維持することもできる。
【００１８】
ユーザ・プロフィール・ストア２０５内のユーザ・プロフィールは、しばしば個人に関連付けられて、個人がオンライン・システム１４０を通じて互いに対話することを可能にするが、ユーザ・プロフィールは、企業や組織などのエンティティについても記憶することができる。これによりエンティティは、オンライン・システム１４０上で、他のオンライン・システムのユーザとつながり、コンテンツを交換するためのプレゼンスを確立することが可能である。エンティティは、自社、自社製品についての情報を投稿するか、またはエンティティのユーザ・プロフィールに関連付けられているブランド・ページを使用してオンライン・システム１４０のユーザに他の情報を提供することができる。オンライン・システム１４０の他のユーザはブランド・ページにつながって、ブランド・ページに投稿された情報を受け取るか、またはブランド・ページからの情報を受け取ることができる。ブランド・ページに関連付けられているユーザ・プロフィールは、エンティティ自体に関する情報を含むことができるので、そのエンティティに関するバックグラウンドまたは情報データをユーザに提供する。
【００１９】
コンテンツ・ストア２１０は、さまざまなタイプのコンテンツをそれぞれ代表するオブジェクトを記憶する。オブジェクトによって代表されるコンテンツの例には、ページ投稿、ステータスの更新、写真、画像、ビデオ、リンク、共有コンテンツ・アイテム、ゲーム・アプリケーションの達成度、ローカル・ビジネスにおけるチェックイン・イベント、ブランド・ページ、または他のタイプのコンテンツが含まれる。オンライン・システムのユーザは、ステータスの更新、オンライン・システム１４０内の他のオブジェクトに関連付けるためにユーザがタグ付した写真、イベント、グループ、またはアプリケーションなど、コンテンツ・ストア２１０によって記憶されるオブジェクトを作成することができる。いくつかの実施形態においては、オブジェクトは、サードパーティ・アプリケーション、またはオンライン・システム１４０とは別のサードパーティ・アプリケーションから受け取られる。一実施形態においては、コンテンツ・ストア２１０内のオブジェクトは１つのコンテンツ、すなわちコンテンツ「アイテム」を表す。そのため、オンライン・システムのユーザは、さまざまな通信チャネルを通してテキストやさまざまなタイプの媒体のコンテンツ・アイテムをオンライン・システム１４０に投稿することによって、互いに通信するよう促される。これによりユーザ同士の対話の量が増え、オンライン・システム１４０内でユーザが対話する頻度が増す。
【００２０】
アクション・ロガー２１５は、オンライン・システム１４０の内部および／または外部のユーザ・アクションに関する通信を受け取って、ユーザ・アクションに関する情報をアクション・ログ２２０に投入する。アクションの例には、別のユーザとのつながりを追加すること、別のユーザにメッセージを送信すること、画像をアップロードすること、別のユーザからのメッセージを読むこと、別のユーザに関連付けられているコンテンツを閲覧すること、および、別のユーザによって投稿されたイベントに出席することが含まれる。さらに、多数のアクションがオブジェクトおよび１人または複数人の特定のユーザに関わることがあるため、これらのアクションもその特定のユーザに関連付けられて、アクション・ログ２２０に記憶される。
【００２１】
アクション・ログ２２０は、オンライン・システム１４０が、オンライン・システム１４０上でのユーザ・アクション、および、オンライン・システム１４０に情報を通信するサードパーティ・システム１３０上でのアクションを追跡するために使用することができる。ユーザは、オンライン・システム１４０上のさまざまなオブジェクトと対話することができ、これらの対話について記述する情報がアクション・ログ２２０に記憶される。オブジェクトとの対話の例には、投稿に対してコメントすること、リンクをシェアすること、クライアント・デバイス１１０を通じて実際のロケーションにチェックインすること、コンテンツ・アイテムにアクセスすること、および他の適切な対話が含まれる。アクション・ログ２２０に含まれるオンライン・システム１４０上のオブジェクトとの対話のさらなる例には、フォト・アルバムに対してコメントすること、ユーザと通信すること、オブジェクトとのつながりを確立すること、イベントに参加すること、グループに参加すること、イベントを作成すること、アプリケーションを承認すること、アプリケーションを使用すること、オブジェクトに関する好みを表現すること（そのオブジェクトに「いいね！」を表明すること）、および、トランザクションに関与することが含まれる。さらに、アクション・ログ２２０は、オンライン・システム１４０上の広告およびオンライン・システム１４０上で動作する他のアプリケーションとの、ユーザの対話を記録することができる。いくつかの実施形態においては、アクション・ログ２２０からのデータは、ユーザの関心または好みを推定するために使用されて、ユーザのユーザ・プロフィールに含まれる関心を拡張し、ユーザの好みをさらに完全に理解できるようにする。
【００２２】
アクション・ログ２２０は、外部ウェブサイトなどのサードパーティ・システム１３０上で行われてオンライン・システム１４０に通信されるユーザ・アクションを記憶することもできる。たとえば、電子商取引のウェブサイトは、ソーシャル・プラグインを通じてオンライン・システム１４０のユーザを認識することができるので、電子商取引のウェブサイトがオンライン・システム１４０のユーザを識別することが可能である。オンライン・システム１４０のユーザは一意に識別できるため、前述の例におけるように、電子商取引のウェブサイトは、オンライン・システム１４０外のユーザのアクションに関する情報を、ユーザに関連付けるためにオンライン・システム１４０に通信することができる。そのため、アクション・ログ２２０は、ウェブ・ページの閲覧履歴、関わった広告、行った購入、および買い物や購買からの他のパターンなど、ユーザがサードパーティ・システム１３０上で行うアクションに関する情報を記録することができる。さらに、サードパーティ・システム１３０に関連付けられてクライアント・デバイス１１０上で実行されるアプリケーションを通じて行うユーザがアクションは、アクション・ログ２２０に記録しユーザに関連付けるために、アプリケーションが、アクション・ロガー２１５に通信することができる。
【００２３】
エッジ・ストア２２５は、ユーザとオンライン・システム１４０上の他のオブジェクトとのつながりについて記述する情報をエッジとして記憶する。いくつかのエッジはユーザによって定義されることができ、ユーザが他のユーザとの関係を指定することが可能である。たとえば、ユーザは、友達、同僚、パートナーなど、ユーザの実生活の関係に即した他のユーザとのエッジを生成することができる。オンライン・システム１４０上のあるページへの関心を表明すること、オンライン・システム１４０の他のユーザとリンクをシェアすること、およびオンライン・システム１４０の他のユーザが行った投稿にコメントすることなど、ユーザがオンライン・システム１４０でオブジェクトと対話するとき、他のエッジが生成される。
【００２４】
一実施形態においては、エッジは、ユーザ同士の対話、ユーザとオブジェクトとの対話、またはオブジェクト同士の対話の特性をそれぞれ表すさまざまな特徴を含むことができる。たとえば、エッジに含まれる特徴は、２人のユーザ間の対話の割合、２人のユーザが互いに対話したのがどれくらい最近であったか、あるユーザがオブジェクトに関して取り出した情報の割合もしくは量、またはユーザがオブジェクトに関して投稿したコメントの数とタイプを記述する。特徴は、ある特定のオブジェクトまたはユーザについて記述する情報を表すこともできる。たとえば、特徴は、ある特定のトピックに対してユーザがもつ関心のレベル、ユーザがオンライン・システム１４０にログインしている割合、またはユーザに関する人口統計学的情報について記述する情報を表すことができる。各特徴は、ソース・オブジェクトまたはユーザ、ターゲット・オブジェクトまたはユーザ、および特徴値に関連付けることができる。特徴は、ソース・オブジェクトもしくはユーザ、ターゲット・オブジェクトもしくはユーザについて、またはソース・オブジェクトもしくはユーザとターゲット・オブジェクトもしくはユーザとの間における対話について記述する値に基づいた式として指定されることが可能である。そのため、エッジは１つまたは複数の特徴式として表されることが可能である。
【００２５】
エッジ・ストア２２５は、オブジェクト、関心および他のユーザについての親和性スコアなど、エッジに関する情報も記憶する。オンライン・システム１４０によって経時的に親和性スコア、すなわち、「親和度」が計算されて、ユーザが行うアクションに基づいて、オンライン・システム１４０内のオブジェクトまたは別のユーザへのユーザの関心を概算することができる。オンライン・システム１４０によって経時的にユーザの親和度が計算されて、ユーザが行うアクションに基づいてオンライン・システム１４０内のオブジェクト、トピック、または別のユーザへのユーザの関心を概算することができる。親和度の計算については、２０１０年１２月２３日に出願された米国特許出願第１２／９７８，２６５号、２０１２年１１月３０日に出願された米国特許出願第１３／６９０，２５４号、２０１２年１１月３０日に出願された米国特許出願第１３／６８９，９６９号、および２０１２年１１月３０日に出願された米国特許出願第１３／６９０，０８８号にさらに記述されており、これら特許出願のそれぞれを参照によりその全体を本明細書に組み込む。一実施形態においては、ユーザと特定のオブジェクトとの間における複数の対話を、１つのエッジとしてエッジ・ストア２２５内に記憶することができる。あるいは、ユーザと特定のオブジェクトとの間における各対話を個別のエッジとして記憶する。いくつかの実施形態においては、ユーザ間のつながりをユーザ・プロフィール・ストア２０５に記憶することができ、またはユーザ・プロフィール・ストア２０５がユーザ間のつながりを決定するためにエッジ・ストア２２５にアクセスすることができる。
【００２６】
さらに、画像結合モジュール２３０は、顔を描写または表現するソース画像（すなわち、入力画像）の受信、獲得、アクセス、またはその他の形での取得をしやすくするように構成することができる。画像結合モジュール２３０は、顔を描写または表現するソース画像の部分（例、サブイメージ）を決定、識別、検出または探し出すように構成することもできる。画像結合モジュール２３０は、ユーザ入力に基づいて、検索クエリの取得、受信または獲得等をしやすくするようにさらに構成することができる。ユーザ入力は、ユーザが自分の好みの検索クエリを（例、タイピングにより）生成または（例、提供される複数の選択肢により）選択できるようにすることができる。
【００２７】
また、画像結合モジュール２３０は、検索クエリに関連付けられている、１つまたは複数のターゲット画像のセットを識別することができる。画像結合モジュール２３０は、１つまたは複数のターゲット画像のセットからの各ターゲット画像内で、ターゲット画像の（顔）部分をレンダリングするべきそれぞれの位置を識別することもできる。例えば、各ターゲット画像は、顔を描写または表現することもできる。各ターゲット画像内のそれぞれの位置は、各ターゲット画像内のどこに顔が描写、表現、または配置されるかに基づいて決定することができる。顔が各ターゲット画像内に描写されるそれぞれの場所で、各ターゲット画像の対応する部分（例、対応するサブイメージ）を取り除くことができるので、顔が各ターゲット画像から「切り取られる」。画像結合モジュール２３０は、さらに、１つまたは複数のターゲット画像のセットからの各ターゲット画像について、各ターゲット画像内のそれぞれの位置に、１つまたは複数の結合画像のセットを生成するために、ソース画像の部分をレンダリングすることができる。このように、１つまたは複数の結合画像のセット内の各結合画像は、各ターゲット画像内のそれぞれの位置にレンダリングされる、ソース画像の部分を含むことができる。例えば、各結合画像は、ターゲット画像の顔を取り除いて、代わりにソース画像の顔に取り替えられている各ターゲット画像に対応することができる。この例は、例示目的で提示されており、開示される技術に関連した多くの変型例が可能であることは了解されるべきである。
【００２８】
追加的に、ウェブ・サーバ２３５は、ネットワーク１２０を通じてオンライン・システム１４０を１つまたは複数のクライアント・デバイス１１０へ、および１つまたは複数のサードパーティ・システム１３０へリンクさせる。ウェブ・サーバ２３５は、ウェブ・ページ、およびその他のコンテンツ、たとえば、ＪＡＶＡ（登録商標）、ＦＬＡＳＨ（登録商標）、ＸＭＬなどを供給する。ウェブ・サーバ２３５は、オンライン・システム１４０とクライアント・デバイス１１０との間におけるメッセージ、たとえば、インスタント・メッセージ、キューに入れられたメッセージ（例、電子メール）、テキスト・メッセージ、ショート・メッセージ・サービス（ＳＭＳ）のメッセージ、またはその他適切なメッセージング技術を使用して送信されるメッセージを受け取って回送することができる。ユーザは、コンテンツ・ストア２１０に記憶される情報（例、画像またはビデオ）をアップロードするよう求める要求をウェブ・サーバ２３５に送信することができる。加えて、ウェブ・サーバ２３５は、ＩＯＳ（登録商標）、ＡＮＤＲＯＩＤ（登録商標）、またはＢＬＡＣＫＢＥＲＲＹ（登録商標）ＯＳなどのネイティブ・クライアント・デバイス・オペレーティング・システムに対してデータを直接送信するためのアプリケーション・プログラミング・インタフェース（ＡＰＩ）機能を提供することができる。
【００２９】
図３は、一実施形態による、例示的な画像結合モジュール３００のブロック図を示す。いくつかの実施形態では、例示的な画像結合モジュール３００は、前述した画像結合モジュール２３０として実装される。図３の例に示すように、例示的な画像結合モジュール３００は、ソース画像処理モジュール３０２、検索クエリ・モジュール３０４、ターゲット画像処理モジュール３０６、レンダリング・モジュール３０８、および機械学習モジュール３１０を含むことができる。
【００３０】
ソース画像処理モジュール３０２は、１つまたは複数のソース画像に関連する様々な動作および／またはタスクを促すように構成することができる。いくつかの実施形態では、ソース画像処理モジュール３０２は、顔を描写するソース画像の受信、獲得、アクセスまたはその他の形での取得ができる。ソース画像は、例えばユーザにより、選択、提出、アップロード、またはその他の形で入力される画像に対応することができる。ある場合には、ソース画像は、静止画像または写真とすることができる。ある例では、ソース画像は、他のビデオ画像フレームと合わせて、ビデオを形成することができるビデオ画像フレームとすることができる。
【００３１】
開示する技術の様々なモジュール（またはその一部）は、一緒に実装され、および／または連動することができる。いくつかの実施形態では、ソース画像処理モジュール３０２は、機械学習モジュール３１０と協働して、ソース画像の顔を描写する部分を決定または識別しやすくすることができる。例えば、機械学習モジュール３１０は、コンテンツの視覚的属性に基づいて、コンテンツ内の主題を認識するように、画像分析モデルを訓練することができる。コンテンツは、例えば、画像などのメディア・コンテンツ、および関連情報もしくはメタデータを含んでもよい。視覚的属性は、コンテンツ内に描写される主題の特有の性質を反映する、画像または画像部分／セグメント内の視覚的パターンを含んでもよい。視覚的属性は、例えば、外観、色、形状および／またはレイアウト等のうちの１つまたはそれらの組み合わせに基づくことができる。例えば、トレーニング・データからの抽出された画像特徴は、画像内に描写または表現される人の顔の視覚的特徴に対応することができる。機械学習モジュール３１０は、少なくとも１つの画像分類アルゴリズム（例、顔認識アルゴリズム）を使用して、画像データ内の顔を認識するよう、画像分析モデルを訓練することができる。したがって、ソース画像処理モジュール３０２は、ソース画像の顔を描写する部分を決定または識別するために、機械学習モジュール３１０と協働することができる。
【００３２】
いくつかの実施形態において、画像分析モデルは、トレーニング・データ・ストアに記憶されているトレーニング・データから選択された画像のサンプル・セットから収集される状況から得られる手がかりに基づいて、画像クラスの視覚的属性を認識するように、機械学習モジュール３１０によって訓練された画像分類器である。画像のサンプル・セットは、分類器による正確な結果を確保するために、十分大きな数（例、指定の閾値量を超える）画像を含むことができる。分類器は、コンテンツが特定の画像クラス内に入る範囲に対応する統計スコアをコンテンツの各アイテムに割り当てることができる。いくつかの実施形態では、分類器は、階層的分類器、線形分類器、またはその他の分類器を組み込んでもよい。いくつかの実施形態では、分類器は、最初に、オンライン・システム１４０によって維持される画像のうちの選択されたサブセットに基づいて、訓練してもよい。分類器は、様々な状況に基づいて訓練し直すことができる。例えば、分類器は、画像が分類器に利用できるようになると、選択された頻度で定期的にまたは不定期に訓練し直してもよい。別の実施例としては、分類器は、多数の画像をオンライン・システム１４０にアップロードさせそうなイベント（例、スポーツ・イベント、音楽フェスティバル、パーティ、等）などの特定のイベントの発生時に、訓練し直してもよい。さらに別の例としては、分類器は、オンライン・システム１４０が閾値数の新画像を受信したときに、訓練し直してもよい。以上および他の状況での再訓練は、画像クラスの視覚的属性を認識する分類器の能力を改善させることができる。
【００３３】
画像クラスは、例えば、オブジェクト（例、猫、車、人、財布、等）、人体の部位（例、顎髭、顔）、ブランドもしくはブランドに関連するオブジェクト（例、コカ・コーラ（登録商標）、フェラーリ（登録商標））、プロ・スポーツ・チーム（例、ゴールデンステートウォリアーズ（登録商標）、サンフランシスコジャイアンツ（登録商標））、関心のある位置もしくは場所（例、エレベスト山）、植物（例、様々な種類の蘭）、構造物（例、超高層ビル、橋梁、住宅）、乗物（例、飛行機、自転車、車、オートバイ）、活動（例、水泳、ランニング）、フレーズもしくはコンセプト（例、赤い服、幸せ）、およびコンテンツに関連付けることのできる他のこと、行為、または考えを含むことができる。本明細書に提示する多くの例は、単一の「画像クラス」をいうかもしれないが、画像クラスは、オブジェクト、ブランド、プロ・スポーツ・チーム、位置等の融合体を構成する複数の画像クラスまたは１つまたは複数の画像クラスをいうこともあることに留意する。各画像クラスは、その画像クラスに一般に関連する画像特徴、例えば、男性の顔に関連付けられている明確な視覚的特徴の、複数のセットを有することができる。
【００３４】
いくつかの実施形態において、機械学習モジュール３１０は、また、選択された表現空間における２つの画像を比較することによって、２つの画像を区別するように画像分析モデルを訓練する。一実施形態において、機械学習モジュール３１０は、対応するカラー・ヒストグラムで表現される画像を比較し、２つの画像のヒストグラム間の相違点を多様な距離尺度、例えばχ２統計量で測定するように、画像分析モデルを訓練する。別の実施形態において、機械学習モジュール３１０は、連続確率フレームワークで表現される画像をガウスモデルの混合に基づいて比較し、２つの画像の相違点をＫＬ情報量に関して測定するよう、画像分析モデルを訓練する。開示する技術に関連する多くの変型例が可能であることは理解されるべきである。
【００３５】
図３の例を続けると、検索クエリ・モジュール３０４は、ユーザ入力に基づいて検索クエリを取得しやすくするように構成することができる。ある場合には、検索クエリ・モジュール３０４は、複数の検索クエリを定義（すなわち、事前に定義、事前に設定等）することができる。検索クエリ・モジュール３０４は、複数の定義された検索クエリをユーザに提供または提示することができる。したがって、ユーザ入力は、提供された複数の定義された検索クエリの中からユーザにより取得された検索クエリの選択を含むことができる。追加的または代替的に、ある例では、ユーザ入力は、ユーザによって提供（例、入力、タイプ、口述筆記、等）されるテキストを含むことができる。テキストは、検索クエリ・モジュール３０４によって取得された検索クエリを生成するために利用することができる。
【００３６】
さらに、ターゲット画像処理モジュール３０６は、検索クエリに関連付けられている、１つまたは複数のターゲット画像のセットを識別しやすくするように構成することができる。いくつかの実施形態では、ターゲット画像処理モジュール３０６は、機械学習モジュール３１０と協働して、ターゲット画像（またはターゲット画像候補）内のオブジェクトを検出、認識、ラベル付け、および／または分類することができる。このように、ターゲット画像処理モジュール３０６は、各ターゲット画像に、各ターゲット画像内で認識／検出される１つもしくは複数のオブジェクトをラベル付けするか、または各ターゲット画像を、各ターゲット画像内で認識／検出される１つもしくは複数のオブジェクトに関連付けることができる。例えば、ターゲット画像候補と成り得る画像は、顔を描写または表現することができる。顔は、スパイキー・ヘア、顎髭、しわ、および青い目を持つ４０歳男性のものとすることができる。この場合、ターゲット画像処理モジュール３０６は、画像に、「男」、「男性」、「中年」、「スパイキー・ヘア」、「顎髭」、「しわ」、「青い目」などの用語との関連を持たせることができる。こうした用語は、検索クエリ（またはその一部）に対応させることができる。
【００３７】
いくつかの実施態様において、１つまたは複数のターゲット画像のセットを識別する前に、ターゲット画像処理モジュール３０６は、機械学習モジュール３１０と協働して、複数の画像内の各画像に画像分類アルゴリズム（例、オブジェクト検出アルゴリズム、オブジェクト認識アルゴリズム等）を適用しやすくすることができる。複数の画像は、例えば、ターゲット画像候補となり得る。ターゲット画像処理モジュール３０６および機械学習モジュール３１０は、画像分類アルゴリズムを適用することに基づいて、１つまたは複数の検索クエリ（例、用語、キーワード、フレーズ、話題、テーマ、ラベル、タグ等）との１つまたは複数の関連付けのそれぞれのセットを有することを決定しやすくすることができる。ターゲット画像処理モジュール３０６は、取得またはアクセスされる顔をソース画像が描写する前に、複数の画像、および複数の画像内の各画像の１つまたは複数の関連付けのそれぞれのセットを記憶することができる。それから、ターゲット画像処理モジュール３０６は、複数の画像から、または複数の画像の中から、１つまたは複数のターゲット画像のセットを識別することができる。ある場合には、検索クエリに関連付けられている、１つまたは複数のターゲット画像のセットを識別することは、１つまたは複数のターゲット画像のセットの各ターゲット画像が、検索クエリに一致するしきい値の信頼水準を少なくとも有することを決定することを含むことができる。例えば、１つまたは複数のターゲット画像のセットは、記憶されている複数の画像の中からランクの最も高い画像であると（例、検索クエリに一致する信頼水準に基づいて）識別することができる。
【００３８】
また、ターゲット画像処理モジュール３０６は、機械学習モジュール３１０と協働して、１つまたは複数のターゲット画像のセットからの各ターゲット画像内で、ソース画像の（顔）部分がレンダリングされるべきそれぞれの位置を識別しやすくすることができる。一実施例において、機械学習モジュール３１０によって利用される顔認識アルゴリズムに基づいて、ターゲット画像処理モジュール３０６は、各ターゲット画像内で、少なくとも１つの顔が描写されているそれぞれの位置を決定し、探し出し、またはその他の形で識別することができる。ある場合には、ターゲット画像処理モジュール３０６は、各ターゲット画像内に描写されている任意の顔を取り除くかまたは切り取って、代わりに、各ターゲット画像内のその位置にソース画像の顔をレンダリングできるようにすることができる。さらに、ある場合には、各ターゲット画像内でソース画像の部分がレンダリングされるべきそれぞれの位置を、顔を描写するソース画像が取得またはアクセスされる前に識別することができる。多くの変型例が可能である。
【００３９】
追加的に、いくつかの実施形態において、ソース画像処理モジュール３０２は、ソース画像の部分を介して描写される顔に関連付けられた１つまたは複数の属性を識別しやすくすることができる。ターゲット画像処理モジュール３０６は、ソース画像の部分が各ターゲット画像内のそれぞれの位置にレンダリングされる前に、１つまたは複数のターゲット画像のセットからの各ターゲット画像が、顔に関連付けられた１つまたは複数の属性に一致する（指定／計算された）しきい値の信頼水準を少なくとも有する１つまたは複数の属性のそれぞれのセットに関連することを決定しやすくすることができる。したがって、ある場合には、１つまたは複数のターゲット画像のセットは、記憶されている複数の画像の中からランクの最も高い画像（例、検索クエリおよび／またはソース画像に一致する信頼水準に基づく）であると識別することができる。１つまたは複数の属性は、例えば、顔属性（例、顔のアンカー・ポイント、形、大きさ、特徴、特性等）、ポーズ属性（例、頭の傾き、頭の向き、ジェスチャ、表情等）、皮膚属性（例、色、明るさ、肌理等）、髪属性（例、色、長さ、スタイル等）、年齢属性（例、絶対値、範囲値等）、または性別属性（例、男性、女性等）のうちの少なくとも１つを含むことができる。多くの変型例が可能である。
【００４０】
いくつかの実施態様において、１つまたは複数のターゲット画像のセットからの各ターゲット画像が、顔に関連付けられた１つまたは複数の属性に一致するしきい値の信頼水準を少なくとも有する１つまたは複数の属性のそれぞれのセットに関連していることを決定することは、各ターゲット画像に関連付けられた１つまたは複数の属性のそれぞれのセットおよび顔に関連付けられた１つまたは複数の属性に、類似関数を適用することに基づくことができる。類似関数は、例えば、各ターゲット画像に関連付けられた１つまたは複数の属性のそれぞれのセットと、顔に関連付けられた１つまたは複数の属性との間の距離として計算することができる。一実施例では、類似関数は、次の等式に基づくことができる。
【００４１】
【数１】
2019530041.tif 000003
この式において、Ｄは距離、ｓはソース画像、ｔはターゲット画像、Ｐはロール角、ヨー角およびピッチ角を含む３ベクトルであり、Ａｇｅは推定年齢であり、Ｈは勾配方向ヒストグラム（ＨｏＧ）特徴量であり、Ｓは皮膚および髪のマスクに対応する。この実施例は例示目的で提示されており、開示される技術に関連して多くの変型例が可能であることは理解されるべきである。
【００４２】
さらに、レンダリング・モジュール３０８は、１つまたは複数のターゲット画像のセットからの各ターゲット画像について、各ターゲット画像内のそれぞれの位置にソース画像の部分をレンダリングしやすくして、１つまたは複数の結合画像のセットを生成するように構成することができる。したがって、１つまたは複数の結合画像のセット内の各結合画像は、各ターゲット画像内のそれぞれの位置にレンダリングされたソース画像の部分を含むことができる。例えば、レンダリング・モジュール３０８は、検索クエリに一致する（および／またはソース画像に一致する）各ターゲット画像にソース画像の顔がマッピングされる合成画像になるように、各結合画像を生成することができる。この場合、レンダリング・モジュール３０８は、ソース画像の顔部分（のエッジ）を、ソース画像の顔部分がレンダリングされる各ターゲット画像内のそれぞれの位置（のエッジ）とミックスまたはブレンドして、例えば、合成画像の外観全体、自然さ、および／または意図される現実性を改善することができる。
【００４３】
追加的に、いくつかの実施形態では、レンダリング・モジュール３０８は、ソース画像および／または１つまたは複数のターゲット画像を修正することができる。例えば、レンダリング・モジュール３０８は、ソース画像および／またはターゲット画像（もしくはその一部）を、必要に応じてモーフィング、ワーピング、回転、平行移動、縮小および／または拡大等することができる。前述したように、開示される技術に関連して多くの変型例が可能である。
【００４４】
ソース画像の顔とターゲット画像との結合
図４は、実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なシナリオを示す。図４の例示的なシナリオでは、それぞれの顔を各々描写する、複数の画像（４０２，４０４，４０６，４０８，４１０，４１２，４１４および４１６）が存在することができる。複数の画像（４０２，４０４，４０６，４０８，４１０，４１２，４１４および４１６）は、ターゲット画像候補として利用することができる。図４に図示するように、ソース画像４１８は、取得またはアクセスすることができ、検索クエリ４２０は、取得することができる。ソース画像４１８は、黒髪を持つ顔を描写することができる。ソース画像４１８の、顔を描写する部分４２２を決定または識別することができる。検索クエリ４２０は、ユーザによって入力されたテキストに対応することができる。この実施例では、ユーザは、ソース画像４１８内の顔が金髪にしたらどのように見えるかを確認しようとしている。
【００４５】
したがって、１つまたは複数のターゲット画像（４０４，４１０および４１４）のそれぞれが金髪を持つため、検索クエリ（「金髪」）４２０に関連する１つまたは複数のターゲット画像（４０４，４１０および４１４）のセットを、複数の画像（４０２，４０４，４０６，４０８，４１０，４１２，４１４および４１６）の中から識別することができる。またこの例では、１つまたは複数のターゲット画像（４０４，４１０および４１４）のセットは、各ターゲット画像がソース画像４１８にどの程度一致するかに基づいて識別または選択することもできる。例えば、画像４０２は、画像４０２とソース画像４１８とで顔の形が異なるためターゲット画像のセットには含まれない。画像４０６は、ポーズが異なるため含まれない。画像４０８は、検索クエリ４２０に関連せず、ソース画像４１８に関連するものとは性別も異なる。画像４１２は、性別が異なるため含まれない。画像４１６は、検索クエリ４２０に関連しない。
【００４６】
実施例のシナリオを続けると、識別されたターゲット画像（４０４，４１０および４１４）内で、ソース画像の顔部分４２２をレンダリングするべきそれぞれの位置（４２４，４２６および４２８）を識別することができる。次に、識別された各ターゲット画像（４０４，４１０および４１４）について、ソース画像の顔部分４２２を、各ターゲット画像（４０４，４１０および４１４）内のそれぞれの位置（４２４，４２６および４２８）にレンダリングし、結合画像（４３０，４３２および４３４）のセットを生成する。図示するように、各結合画像は、各ターゲット画像（４０４，４１０および４１４）内のそれぞれの位置（４２４，４２６および４２８）にレンダリングされたソース画像の顔部分４２２を含む。開示される技術に関連して多くの変型例が可能であることは理解されるべきである。
【００４７】
図５は、実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なプロセス５００を説明するフローチャートを示す。特に記載されない限り、様々な実施形態の範囲内で、追加ステップ、より少ないステップまたは代替ステップを、同様な順序で、もしくは別の順序で、または同時に行うことができることは了解されるべきである。
【００４８】
例示的なプロセス５００において、ブロック５０２で、顔を描写するソース画像を取得するかまたはそれにアクセスすることができる。ブロック５０４で、ソース画像の顔を描写する部分を決定または識別することができる。ブロック５０６で、ユーザ入力に基づいて検索クエリを取得することができる。ブロック５０８で、検索クエリに関連付けられている、１つまたは複数のターゲット画像のセットを識別することができる。ブロック５１０で、１つまたは複数のターゲット画像のセットからの各ターゲット画像内で、ソース画像の部分をレンダリングするべきそれぞれの位置を識別することができる。ブロック５１２で、１つまたは複数のターゲット画像のセットからの各ターゲット画像について、ソース画像の部分を各ターゲット画像内のそれぞれの位置にレンダリングし、１つまたは複数の結合画像のセットを生成することができる。１つまたは複数の結合画像のセット内の各結合画像は、各ターゲット画像内のそれぞれの位置にレンダリングされる、ソース画像の部分を含むことができる。多くの変型例が可能である。
【００４９】
図６は、実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なプロセス６００を説明するフローチャートを示す。ここでも、特に記載されない限り、様々な実施形態の範囲内で、追加ステップ、より少ないステップまたは代替ステップを、同様な順序で、もしくは別の順序で、または同時に行うことができることは理解されるべきである。
【００５０】
例示的なプロセス６００において、ブロック６０２で、画像分類アルゴリズムは、複数の画像内の各画像に適用することができる。ブロック６０４で、画像分類アルゴリズムを適用することに基づいて、複数の画像内の各画像が１つまたは複数の検索クエリと１つまたは複数の関連付けのそれぞれのセットを有することを決定することができる。ブロック６０６で、複数の画像と、複数の画像および複数の画像内の各画像についての１つまたは複数の関連付けのそれぞれのセットとを、顔を描写するソース画像の取得前またはアクセス前に記憶することができる。１つまたは複数のターゲット画像のセットは、複数の画像から識別することができる。前述したように、多くの変型例が可能である。
【００５１】
図７は、実施形態による、検索クエリに基づいてソース画像の顔をターゲット画像に結合することに関連する例示的なプロセス７００を説明するフローチャートを示す。前述したように、追加ステップ、より少ないステップまたは代替ステップを、同様な順序で、もしくは別の順序で、または同時に行うことができる。いくつかの実施形態では、開示される技術は、グループとともに利用することができる。一実施例において、グループのチャット・セッションがトリガ用語またはキーワードを使用する場合に、開示する技術を利用することができる。この実施例では、トリガ用語またはキーワードは、例えば自然言語処理（ＮＬＰ）技術に基づいて、検出して検索クエリに対応させることができる。別の実施例では、ソース画像が複数の顔（例、第２の顔を含む）を描写または表現する場合に、開示する技術を利用することができる。
【００５２】
例示的なプロセス７００において、ブロック７０２で、第２の顔を描写するソース画像の第２部分を決定または識別することができる。１つまたは複数のターゲット画像のセットは、顔と一致するしきい値の第１信頼水準を少なくとも有し、かつ、第２の顔と一致するしきい値の第２信頼水準を少なくとも有すると識別することができる。ブロック７０４で、１つまたは複数のターゲット画像のセットからの各ターゲット画像内で、ソース画像の第２部分がレンダリングされるべきそれぞれの第２位置を識別することができる。ブロック７０６で、１つまたは複数のターゲット画像のセットからの各ターゲット画像について、ソース画像の第２部分を、各ターゲット画像内のそれぞれの第２位置にレンダリングすることができる。１つまたは複数の結合画像のセット内の各結合画像は、各ターゲット画像内のそれぞれの第２位置にレンダリングされたソース画像の第２部分をさらに含むことができる。ここでも、多くの変型例が可能である。例えば、ソース画像内の異なる顔に、異なる加重値および／またはしきい値の信頼水準を利用することができる。
【００５３】
いくつかの実施態様において、ソース画像がソース・ビデオを形成するために利用されるビデオ画像フレームである場合など、ソース画像は、ソース・ビデオの一部とすることができる。ターゲット画像がターゲット・ビデオを形成するために利用されるビデオ画像フレームである場合など、各ターゲット画像も、各ターゲット・ビデオの一部にすることができる。また、ある場合には、開示される技術の様々な実施形態は、リアルタイム（またはほぼリアルタイム）のライブ・ビデオとともに利用することができる。例えば、ソース画像は、ライブ・ストリーム・ビデオの一部であるビデオ画像フレームに対応することができる。さらに、ある例では、ソース画像は、一連の画像の一部とすることができる。開示される技術は、一連の画像の中から、ソース画像にするのに最適な画像を選択することができる。
【００５４】
いくつかの実施形態では、開示される技術の様々な部分は、クライアント・デバイス、サーバ、またはその任意の組み合わせを経由して行うことができる。例えば、ある場合には、クライアント・デバイスは、１つまたは複数の圧縮モデルを利用して、開示される技術に関連する様々な動作／機能を行うことができる。
【００５５】
いくつかの実施態様では、１つの顔に対してであるか、またはソース画像内の複数の顔に対してであるかに関係なく、検索クエリに複数の検索用語（例、テーマ）を含めることができる。開示される技術は、各検索クエリ（またはテーマ）のプレビュー／サムネイルを提供することができる。ある場合には、ユーザは、特定の検索クエリに関連付けられている追加のターゲット画像（またはさらに多くの明細）にアクセスするために、特定の検索クエリについての特定のプレビュー／サムネイルを選択することができる。
【００５６】
いくつかの実施形態において、アーケード・モードを起動することができる。検索クエリおよび／またはソース画像に関するものなど、追加のオブジェクト、フィルタ、またはグラフィカル要素（例、背景オブジェクト、前景フィルタ、アニメーション、等）を識別し、開示される技術とともに利用することができる。
【００５７】
本開示の様々な実施形態に関連して、他の多くの用途、応用、特徴、可能性および／または変型例が可能であることが企図される。例えば、ユーザは、ある場合には、開示される技術を利用するためにオプトインするべきかどうかを選ぶことができる。開示される技術は、例えば、様々なプライバシー設定、嗜好、および構成が維持されることを確実にすることもでき、プライベートな情報の漏洩を防止できる。別の実施例では、本開示の様々な実施形態は、経時的に学習、改良および／または改善することができる。
【００５８】
まとめ
上記の実施形態の説明は、例示の目的で提示されており、網羅的なものであるように、または特許権を開示された形態そのものに限定するように意図されていない。上記の開示に鑑みて、多くの修正および変形形態が可能であることは、当業者であれば了解されるであろう。
【００５９】
この説明のいくつかの部分は、情報に対する操作のアルゴリズムおよび記号表現の観点から、実施形態を説明している。これらのアルゴリズムに関する説明および表現は、データ処理分野における当業者によって、自らの作業の本質を他の当業者に有効に伝えるために一般に使用される。これらの操作は、機能的、計算的、または論理的に説明されるが、コンピュータ・プログラムまたは等価な電気回路、マイクロコードなどによって実装されることが理解される。さらにまた、これらの操作の配列を、一般性を損なうことなく、モジュールと呼ぶことが場合によっては好都合であることも判明している。説明された操作およびそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せにおいて具現化され得る。
【００６０】
本願明細書で説明された工程、操作、またはプロセスのうちのいずれかが、１または複数のハードウェアまたはソフトウェア・モジュールによって、単独でまたは他のデバイスと組合せて、実施または実装され得る。一実施形態では、ソフトウェア・モジュールは、説明された工程、操作、またはプロセスのうちのいずれかまたはすべてを実施するためにコンピュータ・プロセッサによって実行され得るコンピュータ・プログラム・コードを含有するコンピュータ可読媒体を備えるコンピュータ・プログラム製品によって実装される。
【００６１】
実施形態はまた、本願明細書の操作を実施するための装置にも関し得る。この装置は、要求された目的のために特別に構築されてよく、および／または、コンピュータに記憶されたコンピュータ・プログラムによって選択的に起動または再構成される汎用コンピューティング・デバイスを備えてよい。そのようなコンピュータ・プログラムは、コンピュータ・システム・バスに結合され得る、非一時的な有形のコンピュータ可読記憶媒体、または電子命令を記憶するために好適な任意のタイプの媒体に記憶され得る。さらに、本願明細書で言及される任意のコンピューティング・システムは、単一のプロセッサを含んでよく、または、増大されたコンピューティング力のために複数のプロセッサ設計を採用するアーキテクチャであってよい。
【００６２】
実施形態はまた、本願明細書で説明されたコンピューティング・プロセスによって作り出される製品にも関し得る。そのような製品は、コンピューティング・プロセスから得られる情報を備えることができ、その場合、その情報は、非一時的な有形のコンピュータ可読記憶媒体に記憶され、本願明細書で説明されたコンピュータ・プログラム製品または他のデータの組合せの任意の実施形態を含み得る。
【００６３】
最後に、本願明細書で使用される言語は、主に読み易さおよび教示目的のために選択されており、特許権を線引きまたは制限するように選択されていないことがある。したがって、特許権の範囲は、この発明を実施するための形態によってではなく、明細書に基づく出願において出るいずれかの請求項によって限定されることが意図される。したがって、実施形態の開示は、以下の特許請求の範囲に記載される特許権の範囲を限定するのではなく例示することが意図される。
【図１】
2019530041.tif 000004
【図２】
2019530041.tif 000005
【図３】
2019530041.tif 000006
【図４】
2019530041.tif 000007
【図５】
2019530041.tif 000008
【図６】
2019530041.tif 000009
【図７】
2019530041.tif 000010
【国際調査報告】
2019530041.tif 000011
2019530041.tif 000012