(57)【要約】  情報の視覚的検索を可能にするシステムおよび方法について説明する。画像に含まれるオブジェクトの選択ごとに、視覚的に類似したオブジェクトを含む追加の画像が判定され、ユーザに提示される。
2020534597.tif 000002
【特許請求の範囲】
【請求項１】
計算システムであって、
１つまたはそれ以上のプロセッサと、
前記１つまたはそれ以上のプロセッサによって実行されたときに、前記１つまたはそれ以上のプロセッサに少なくとも、
ユーザ装置からテキストクエリを受信することと、
前記テキストクエリに対応する複数の結果を判定して返すことと、
前記テキストクエリを受信した後、前記ユーザ装置からオブジェクトの画像を受信することと、
前記オブジェクトを表すオブジェクト特徴ベクトルを生成することと、
前記オブジェクト特徴ベクトルを、前記複数の結果として返される画像のセグメントに対応する複数の保存された特徴ベクトルと比較することと、
前記オブジェクト特徴ベクトルと前記複数の保存された特徴ベクトルとの前記比較に少なくとも部分的に基づいて、前記複数の結果のランク付けされたリストを生成することと、
前記画像の前記受信に応じて前記ランク付けされたリストを提示することと、
を引き起こすプログラム命令を保存するメモリと、
を備えた計算システム。
【請求項２】
前記複数の保存された画像セグメントのそれぞれは、画像全体より少ない部分に対応する、請求項１に記載の計算システム。
【請求項３】
前記プログラム命令が、前記１つまたはそれ以上のプロセッサに少なくとも、
前記テキストクエリが定義されたカテゴリに対応することを判定することと、
前記テキストクエリが前記定義されたカテゴリに対応するという判定に応じて、画像の絞り込みオプションを提供することと、
をさらに引き起こす、請求項１または２に記載の計算システム。
【請求項４】
コンピュータ実装方法であって、
ユーザ装置からクエリを受信することと、
前記クエリに少なくとも部分的に基づいて第１の複数の画像を判定することと、
前記クエリを受信した後、オブジェクトの画像を受信することと、
前記オブジェクトの前記画像を、前記第１の複数の画像のそれぞれの少なくとも１つの画像セグメントと比較することと、
前記比較に少なくとも部分的に基づいて、前記第１の複数の画像の少なくとも一部のランク付けされたリストを判定することと、
前記ランク付けされたリストに従って、前記第１の複数の画像の前記少なくとも一部を提示することと、
を含む、コンピュータ実装方法。
【請求項５】
前記画像を処理して、画像に表される前記オブジェクトのオブジェクトタイプを判定することをさらに含み、
前記画像を比較することは、
前記オブジェクトを表すオブジェクト特徴ベクトルを生成することと、
前記オブジェクト特徴ベクトルを、同じオブジェクトタイプを有する前記第１の複数の画像で表されるオブジェクトに対応する複数の保存された特徴ベクトルと比較することと、
を含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
定義されたカテゴリに前記クエリが対応することを判定することと、
視覚的な改良オプションを提示することと、
をさらに含む、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記ユーザ装置のカメラの視野内の前記オブジェクトを検出することと、
前記ユーザ装置において、前記オブジェクトに対応するオブジェクトタイプを判定することと、
前記ユーザ装置のディスプレイにオブジェクトタイプ識別子を提示することと、
をさらに含む、請求項４、５、または６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
オブジェクトタイプに対応するキーワードを生成することと、
クエリの一部としてキーワードを含めることと、
をさらに含む、請求項７に記載のコンピュータ実装方法。
【請求項９】
前記第１の複数の画像の前記一部、前記第１の複数の画像、または前記クエリの少なくとも１つに対応する複数のキーワードを判定することと、
提示および前記ユーザ装置のユーザによる選択のために前記複数のキーワードのそれぞれを提供することと、
をさらに含む、請求項４、５、６、７、または８のいずれかに記載のコンピュータ実装方法。
【請求項１０】
前記オブジェクトの前記画像を比較することは、
前記オブジェクトを表すオブジェクト特徴ベクトルを生成することと、
前記第１の複数の画像内の前記オブジェクトの予想位置を判定することと、
前記予想位置に少なくとも部分的に基づいて前記画像セグメントを判定することと、
前記オブジェクト特徴ベクトルと、前記画像セグメントに関連付けられた保存された特徴ベクトルとを比較することと、
をさらに含む、請求項４、５、６、７、８、または９のいずれか一項に記載のコンピュータ実装方法。
【請求項１１】
前記オブジェクトのオブジェクトタイプを判定することをさらに含み、
前記予想位置を判定することは、前記オブジェクトタイプに少なくとも部分的に基づいている、
請求項１０に記載のコンピュータ実装方法。
【請求項１２】
計算システムの少なくとも１つのプロセッサによって実行されたときに、前記計算システムに少なくとも、
ユーザ装置でクエリを受信することと、
定義されたカテゴリに前記クエリが対応することを判定することと、
前記ユーザ装置において視覚的な改良オプションを有効にすることと、
前記視覚的改良オプションの一部として、前記ユーザ装置からストリーミングビデオを受信することと、
前記ストリーミングビデオの少なくとも一部を処理して、前記ストリーミングビデオで表される１つまたはそれ以上のオブジェクトのオブジェクトタイプを識別することと、
前記ユーザ装置のディスプレイ上に、前記ストリーミングビデオのプレゼンテーションと同時に、前記１つまたはそれ以上のオブジェクトの前記オブジェクトタイプを提示することと、
前記オブジェクトタイプの選択を受け取ることと、
前記クエリと前記選択されたオブジェクトタイプとの両方に対応する複数の保存画像を判定することと、
前記ユーザ装置の前記ディスプレイ上に前記複数の保存された画像を提示することと、
を実行させる命令を保存する非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記定義されたカテゴリは食品であり、
前記ストリーミングビデオは、前記ユーザ装置のカメラの視野内に現在ある食べ物の表現を含む、
請求項１２に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記命令は、前記計算システムに少なくとも、
前記定義されたカテゴリに少なくとも部分的に基づいて、前記複数の保存された画像を判定する際に考慮される候補画像を判定させる、
請求項１２または１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記少なくとも１つのプロセッサに前記複数の記憶された画像を判定させる前記命令は、前記計算システムに少なくとも、
前記クエリ、前記少なくとも１つのオブジェクトタイプ、または前記定義されたカテゴリに対応する少なくとも１つのキーワードを判定することと、
前記少なくとも１つのキーワードに少なくとも部分的に基づいて、前記複数の保存された画像を判定することと、
を生じさせる、請求項１２、１３、または１４のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
この出願は、参照によりその全体が本明細書に組み込まれる、「テキストおよび画像ベースの検索」という名称の、２０１７年９月２２日に出願された米国出願第１５／７１３，５６７号の利益を主張する。
【０００２】
ユーザと顧客とが利用できるアクセス可能なデジタルコンテンツはますます増え続けているため、ユーザが検索しているコンテンツを見つけることはますます困難になっている。キーワード検索など、いくつかの異なる検索手法が存在するが、そのようなシステムには多くの非効率性がある。
【図面の簡単な説明】
【０００３】
【図１Ａ】記載された実装による、ユーザ装置によって取得された入力画像を示す。
【図１Ｂ】図１Ａの入力画像の選択されたオブジェクトの視覚的検索結果を示しており、記載された実装によれば、結果は選択されたオブジェクトに視覚的に類似するオブジェクトを含む画像である。
【図２】記載された実装による、例示的な画像処理プロセスである。
【図３】実装による、セグメント化された画像の表現である。
【図４】記載された実装による、例示的なオブジェクト・マッチング・プロセスである。
【図５】記載された実装による、オブジェクト・マッチング・プロセスの別の例である。
【図６Ａ】記載された実装に従って、ユーザ装置によって取得された入力画像を示す。
【図６Ｂ】図６Ａの入力画像における関心のあるオブジェクトの視覚的検索結果を示し、記載された実装によれば、結果は関心のあるオブジェクトに関連する画像を含む。
【図７】記載された実装による、例示的なオブジェクト・カテゴリ・マッチング・プロセスである。
【図８Ａ】記載された実装に従って、視覚的改良を提供するオプションを伴うクエリを示す。
【図８Ｂ】記載された実装による、視覚的改良入力を示す。
【図８Ｃ】記載された実装による、図８Ｂの視覚的改良に基づいて改良された図８Ａのクエリの検索結果を示す。
【図９】記載された実装による、例示的なテキストおよび画像マッチングプロセスである。
【図１０Ａ】記載された実装による、クエリの例示的な視覚的改良入力を示す。
【図１０Ｂ】記載された実装による、図１０Ａのクエリの検索結果および視覚的改良を示す。
【図１１】一実装形態による例示的な計算装置を示す。
【図１２】図１１に示すような計算装置の構成要素の例示的な構成を示す。
【図１３】様々な実装に使用できるサーバシステムの例示的な実装の絵図である。
【発明を実施するための形態】
【０００４】
本明細書では、より大きな画像および／またはビデオからの１つまたはそれ以上の関心のあるオブジェクトの選択に基づいて情報の検索を容易にするシステムおよび方法について説明する。いくつかの実装では、オブジェクトの画像に、結果を絞り込むためのテキストやキーワードなど、他の形式の検索入力を追加してもよい。他の実装では、オブジェクトの画像を使用して、テキストまたはキーワード検索などの既存の検索を補完または改良してもよい。
【０００５】
多くの画像ベースのクエリ（たとえば、ファッションデザイン、インテリアデザインなど）では、ユーザが関心を持っているのは、画像に表される特定のオブジェクト（たとえば、ドレス、カウチ、ランプなど）ではなく、それらのオブジェクトとそれらのオブジェクトの配置方法とを含む画像全体（たとえば、シャツとスカートの間のスタイルの選択、テレビに対するカウチの配置）である。たとえば、ユーザは、１足の靴を含む画像を提供し、関心のあるオブジェクトとして靴を示し、選択した靴と視覚的に類似する靴を含む他の画像と、それらの他の靴とズボン、シャツ、帽子、財布などの他のオブジェクトとのスタイルの組み合わせを表示したい場合がある。
【０００６】
一実施形態では、ユーザは、関心のあるオブジェクトを含む画像を提供または選択することにより検索を開始し得る。次に、説明した実装は、画像を処理して、関心のあるオブジェクトを検出し、および／または画像に表されるように関心のあるオブジェクトを示す選択をユーザから受け取ることができる。関心のあるオブジェクトを含む画像の部分は、画像の残り、判定された関心のあるオブジェクト、および／または生成された関心のあるオブジェクトを表すオブジェクト特徴ベクトルからセグメント化されてもよい。判定された関心のあるオブジェクトおよび／またはオブジェクト特徴ベクトルに基づいて、他の保存された画像のセグメントの保存された特徴ベクトルを関心のあるオブジェクトのオブジェクト特徴ベクトルと比較して、関心のあるオブジェクトと視覚的に類似するオブジェクトを含む他の画像を判定することができる。保存された画像は、視覚的に類似する他のオブジェクトの特定の画像、または多くの場合、関心のあるオブジェクトに視覚的に類似する１つまたはそれ以上のオブジェクトを含む複数のオブジェクトの画像であり、それにより関心のあるオブジェクトのようなオブジェクトが他のオブジェクトとどのように結合されるかを示す画像を提供する。ユーザは、提示された画像の１つを選択したり、追加のオブジェクトやその他のオブジェクトを選択したり、他のアクションを実行したりできる。
【０００７】
いくつかの実装形態では、保存された画像がさまざまな領域にセグメント化され、それらのセグメントで表されるオブジェクトが判定され、それらのオブジェクトを表す特徴ベクトルが生成されて画像のセグメントに関連付けられ得る。関心のあるオブジェクトに対してオブジェクト特徴ベクトルが生成されると、オブジェクト特徴ベクトルは、視覚的に類似するオブジェクトを含む画像を検出するために、保存画像のさまざまなセグメントの保存特徴ベクトルと比較され得る。オブジェクト特徴ベクトルを画像のセグメントに対応する保存された特徴ベクトルと比較することで、対象の画像に他の多くのオブジェクトの表現が含まれている場合でも、関心のあるオブジェクトに視覚的に類似するオブジェクトを含む画像を特定できる。
【０００８】
さらに別の実施形態では、ユーザは複数の関心のあるオブジェクトを選択することができ、および／または選択された関心のあるオブジェクトが肯定的な関心のあるオブジェクトであるか否定的な関心のあるオブジェクトであるかを指定することができる。肯定的な関心のあるオブジェクトは、他の視覚的に類似したオブジェクトの画像を見ることに関心があるユーザが選択したオブジェクトである。否定的な関心のあるオブジェクトは、ユーザが他の画像に含めたくないユーザが選択したオブジェクトである。たとえば、ユーザが画像から椅子とランプの肯定的なオブジェクトと敷物の否定的なオブジェクトとを選択した場合、ここで説明する実装は、選択された椅子およびランプに視覚的に類似した椅子およびランプを含む他の画像を識別し、これには他のオブジェクトの表現が含まれる可能性があるが、選択されたラグに視覚的に類似するラグは含まれない。
【０００９】
いくつかの実装形態では、関心のあるオブジェクトの画像を処理して、関心のあるオブジェクトのタイプを検出してもよい。関心のあるオブジェクトの判定されたタイプに基づいて、関心のあるオブジェクトのタイプが定義されたカテゴリ（たとえば、食品、ファッション、家の装飾）に対応するかどうかを判定することができる。関心のあるオブジェクトのタイプが定義されたカテゴリに対応する場合、複数のクエリタイプを選択でき、そこから異なるクエリの結果が返され、入力画像の結果として混合される。たとえば、一部のクエリタイプは、クエリキーワードを受信し、キーワードに基づいて画像結果を提供するように構成できる。他のクエリタイプは、特徴ベクトルなどの画像ベースのクエリを受信し、画像クエリを保存された画像情報と比較して、クエリに対応する結果を返すように構成できる。
【００１０】
定義されたカテゴリに対応する結果を提供するために、さまざまなクエリタイプを使用できる。たとえば、関心のあるオブジェクトが食べ物のタイプであると判定された場合、１つのクエリタイプは、関心のあるオブジェクトの視覚的表現に関連しているが、これらを含まないコンテンツ（テキスト、画像、ビデオ、オーディオなど）を返してもよい。別のクエリタイプは、目的のオブジェクトに視覚的に類似したオブジェクトを含む画像やビデオを返し得る。このような例では、さまざまなクエリタイプからの結果を判定および混合して、各クエリタイプからの結果を含むクエリへの単一の応答を提供できる。
【００１１】
さらに他の例では、ユーザはテキストベースのクエリを開始してから、関心のあるオブジェクトの画像を使用してテキストベースのクエリを改良することができる。たとえば、ユーザは「夏服」などのテキストベースのクエリを入力でき、説明した実装はテキストベースのクエリを処理して、クエリが定義済みのカテゴリ（ファッションなど）に対応することを判定できる。次に、ユーザは、関心のあるオブジェクトを含む画像を提供し、その関心のあるオブジェクトを使用して、テキストベースのクエリの結果を改良または変更することができる。たとえば、関心のあるオブジェクトが赤いトップスの場合、テキストクエリに一致する検索結果を処理して、関心のあるオブジェクト（この例では赤いトップス）に視覚的に類似する他のトップスの表現を含む結果を検出できる。次いで、結果は、テキストベースの検索に一致し、関心のあるオブジェクトに視覚的に類似するオブジェクトを含む結果が最も高くランク付けされ、最初にユーザに提示されるようにランク付けされてもよい。
【００１２】
図１Ａは、記載された実装に従って、ユーザ装置１００により取得された入力画像を示す。この例では、ユーザは、関心のあるオブジェクト１０２、この例ではハイヒールの靴に視覚的に類似するオブジェクトを含む画像を検索したい。理解されるように、画像で表され得る任意のオブジェクトは、関心のあるオブジェクトであり得る。関心のあるオブジェクトを提供するために、ユーザは、ユーザ装置１００の１つまたはそれ以上のカメラを使用して画像を生成し、ユーザ装置１００のメモリから画像を提供し、ユーザ装置１００の外部のメモリに保存された画像を提供し、本明細書で説明されるシステムおよび方法によって提供される画像（たとえば、結果として提供される画像）を選択し、および／または別のソースまたは場所から画像を提供または選択することができる。
【００１３】
この例では、ユーザはユーザ装置１００のカメラを使用して画像１０１を生成した。画像は、ハイヒールの靴１０２、ランプ１０４−２、ボトル１０４−１、およびテーブル１０４−３などの複数のオブジェクトを含む。画像を受信すると、画像をセグメント化および処理して、画像内のオブジェクトを検出し、検索を実行する関心のあるオブジェクトを判定することができる。以下でさらに説明するように、画像内のオブジェクトを識別するために、オブジェクト認識、エッジ検出などのさまざまな画像処理技術のいずれか１つまたはそれ以上を使用して画像を処理することができる。
【００１４】
関心のあるオブジェクトは、オブジェクトの相対サイズ、オブジェクトが画像内で焦点を合わせているかどうか、オブジェクトの位置などに基づいて判定され得る。図示の例では、ハイヒールの靴１０２はオブジェクトであると判定される。なぜなら、それは画像１０１の中心に向かって配置され、画像に表される他のオブジェクト１０４の物理的に前方にあり、焦点が合っているからである。他の実装では、ユーザは関心のあるオブジェクトを選択または指定できる。
【００１５】
関心のあるオブジェクトが判定されると、入力画像がセグメント化され、関心のあるオブジェクトを表す特徴ベクトルが生成される。特徴ベクトルの生成については、以下で詳しく説明する。典型的な画像処理とは対照的に、関心のあるオブジェクトは画像１０１の他の部分から抽出またはセグメント化され、関心のあるオブジェクト特徴ベクトルは、関心のあるオブジェクト特徴ベクトルが関心のあるオブジェクトのみを表すように生成される。画像全体ではなく、関心のあるオブジェクトのみを表すオブジェクト特徴ベクトルを生成することにより、本明細書で説明するマッチングの品質が向上する。具体的には、以下でさらに説明するように、保存画像をセグメント化し、保存画像のさまざまなセグメントでオブジェクトを検出し、それらの画像で表されるオブジェクトを表すそれぞれの特徴ベクトルを生成する。そのため、保存された各画像には、複数のセグメントと複数の異なる特徴ベクトルとが含まれる場合があり、各特徴ベクトルは画像に表されるオブジェクトを表す。
【００１６】
関心のあるオブジェクトを表すオブジェクト特徴ベクトルが生成されると、保存された画像のセグメントに含まれる個々のオブジェクトを表す保存された特徴ベクトルと比較されてもよい。結果として、保存された画像全体が入力画像１００とはかなり異なっていても、関心のあるオブジェクトと、保存された画像の画像全体よりも小さいセグメントを表す保存された特徴ベクトルとの比較に基づいて、保存された画像がオブジェクト特徴ベクトルに視覚的に類似するオブジェクトの表現を含むと判定され得る。
【００１７】
いくつかの実装形態では、オブジェクト特徴ベクトルと比較される保存された特徴ベクトルの数を制限または削減するために、関心のあるオブジェクトのタイプが判定および使用され得る。たとえば、関心のあるオブジェクトが靴（ハイヒールの靴など）であると判定された場合、オブジェクト特徴ベクトルは、他の靴を表すことがわかっている保存済みの特徴ベクトルとのみ比較され得る。別の例では、保存された特徴ベクトルは、あるタイプのオブジェクトが一般的に位置する画像内の位置に基づいて比較のために選択されてもよい。たとえば、再び、関心のあるオブジェクトが靴のタイプであると判定された場合、靴は典型的に画像の下部３分の１に表されるとさらに判定され得る。このような例では、保存された画像の下部３分の１にある画像のセグメントに対応する保存された特徴ベクトルのみがオブジェクト特徴ベクトルと比較され得る。
【００１８】
保存された特徴ベクトルがオブジェクト特徴ベクトルと比較されると、オブジェクト特徴ベクトルと保存された特徴ベクトルとの間の類似性を表す類似性スコアが判定され、最も高い類似性スコアを有すると判定された保存された特徴ベクトルに関連付けられた保存された画像が検索の結果として返される。たとえば、図１Ｂは、説明した実装によると、図１Ａの入力画像１００のハイヒール靴１０２である関心のあるオブジェクトの視覚的検索結果を示す。
【００１９】
この例では、ハイヒールの靴１０２を表すオブジェクト特徴ベクトルは、結果画像１１０として返される保存画像の異なるセグメントで表されるオブジェクトを表す保存特徴ベクトルと比較される。以下で説明するように、保存された画像はセグメント化され、オブジェクトが検出され、オブジェクト特徴ベクトルが生成され、保存された画像、セグメント、保存された画像内のそれらのセグメントの位置、およびデータストアに保持された特徴ベクトル間の関連付けがされ得る。
【００２０】
この例では、関心のあるオブジェクト１０２を表すオブジェクト特徴ベクトルは、オブジェクト１１３−１、１１３−２Ａ、１１３−２Ｂ、１１３−２Ｃ、１１３−３、１１３−４などを表す保存された特徴ベクトルと比較され、オブジェクト特徴ベクトルと保存された特徴ベクトルとの類似性が判定される。図示されるように、検索に応答して返される画像１１０は、関心のあるオブジェクトに視覚的に類似すると判定されたオブジェクトに加えてオブジェクトを含む。たとえば、第１の画像１１０−１は、関心のあるオブジェクト１０２に視覚的に類似していると判定されたオブジェクト１１３−１を含むセグメント１１２−１、ならびに人１０５、服装などの他のオブジェクトを含む。以下でさらに説明するように、返される保存画像には、いくつかのセグメントおよび／またはオブジェクトが含まれる場合がある。あるいは、返される保存された画像には、視覚的に類似したオブジェクトのみが含まれる場合がある。たとえば、第４の画像１１０−４は、関心のあるオブジェクト１０２に視覚的に類似するオブジェクト１１３−４を含む単一のセグメント１１２−４を含むが、他のオブジェクトは画像に表されない。
【００２１】
第２の画像１１０−２は、関心のあるオブジェクト１０２と同じタイプの複数のセグメント１１２−２Ａ、１１２−２Ｂ、１１２−２Ｃ、および複数のオブジェクト１１３−２Ａ、１１３−２Ｂ、１１３−２Ｃを含む。そのような例では、オブジェクト特徴ベクトルは、第２の画像１１０−２に関連付けられ、異なるオブジェクトを表す１つまたはそれ以上の特徴ベクトルと比較され得る。いくつかの実装形態では、オブジェクト特徴ベクトルと第２の画像１１０−２に関連付けられた保存された特徴ベクトルとの間の類似性が平均化され、その平均が第２の画像１１０−２の類似性として使用される。他の実装では、最高の類似性スコア、最低の類似性スコア、中央値類似性スコア、または他の類似性スコアが、関心のあるオブジェクトと画像との間の視覚的類似性の代表として選択され得る。
【００２２】
ユーザは、生成されたオブジェクト特徴ベクトルと保存された特徴ベクトルとの比較から結果を受け取ると、それに応答して提供される画像１１０を表示および／または対話することができる。画像は、より高い類似性スコアを有する保存された特徴ベクトルに関連する画像がより高いランクになり、より低い類似性スコアを有する特徴ベクトルに関連する画像の前に表示されるようにランク付けおよび提示され得る。
【００２３】
図２は、記載された実装に従って、データストアに維持される保存画像のセグメントおよびオブジェクトを表す保存特徴ベクトルおよびラベルを生成するために実行され得る例示的な画像処理プロセスである。例示的なプロセス２００は、２０２のように、処理する画像を選択することから始まる。図２に関して説明した実装に従って、任意の画像を処理することができる。たとえば、画像データストアに保存された画像、ユーザ装置のカメラによって生成された画像、ユーザ装置のメモリに保持された画像、または例示的なプロセス２００に従って処理するための他の画像を選択することができる。場合によっては、画像処理プロセス２００を使用して、セグメント、ラベル、および／または特徴ベクトルが保存画像に関連付けられるように、保存画像のすべてのオブジェクトのセグメント、ラベル、および／または対応する特徴ベクトルを生成することができ、関心のあるオブジェクトが保存された画像で表される１つまたはそれ以上のオブジェクトと視覚的に類似しているかどうかを判定する際に使用できる。別の例では、画像処理プロセス２００は、判定された関心のあるオブジェクトのラベルおよび／またはオブジェクト特徴ベクトルを生成するために入力画像に対して実行され得る。
【００２４】
画像を選択すると、２０４のように画像が分割される。円パッキングアルゴリズム、スーパーピクセルなど、さまざまなセグメンテーション手法を使用できる。次いで、２０６のように、画像のセグメントを処理して、画像の背景領域を考慮から除外することができる。背景領域の判定は、たとえば、注意深い制約（たとえば、顕著なオブジェクトが画像セグメントの中心にある可能性が高い）と一意の制約（たとえば、顕著なオブジェクトが背景と異なる可能性が高い）との組み合わせを使用して行うことができる。一実施形態では、各セグメント（Ｓｉ）について、色、テクスチャ、形状、および／または他の特徴検出の組み合わせを使用して一意の制約を計算することができる。セグメントのすべてのペアのペアごとのユークリッド距離：Ｌ２（Ｓｉ、Ｓｊ）は、
2020534597.tif 000003
についても計算される。セグメントＳｉの一意制約ＵまたはＵｉは、
2020534597.tif 000004
として計算できる。各セグメントＳｉの注意深い制約は、
2020534597.tif 000005
として計算できる。ここで、Ｘ’およびＹ’は画像の中心座標である。
【００２５】
次に、１つまたはそれ以上のセグメントＳ’、ＳのサブセットをＵ（ｓ）−Ａ（ｓ）＞ｔのように選択する。ｔは手動で設定するか、データから学習した閾値である。閾値ｔは、セグメントを背景情報または潜在的なオブジェクトとして区別するために利用される任意の定義された数または量であり得る。または
2020534597.tif 000006
、および
2020534597.tif 000007
、
2020534597.tif 000008
は、Ｓ’の要素でありｒｉは要素Ｒ−であり、Ｒ−は画像の非顕著領域（背景）のセットであり、ラベル付きの突出セグメントと非突出セグメントとのラベル付きデータベースに対する各セグメント間の類似性として計算および使用できる。最終スコアは次のとおりである。
2020534597.tif 000009
【００２６】
別の実施形態では、同じユーザの過去の対話に対する関心のある部分の選択が判定され得る。次に、最終セグメントＳ’をクラスタ化して１つまたはそれ以上のセグメントを形成する。各セグメントは画像の特徴的な部分である。
【００２７】
図２に戻り、背景セグメントを除去すると、２０８のように、画像に残っているオブジェクトが判定される。画像に残っているオブジェクトは、たとえば、スライドウィンドウアプローチを使用して、オブジェクトの位置の考えられる各仮説のスコアを計算することによって判定できる。Ｈａｒｒのようなウェーブレットのブーストされた選択、または複数パーツベースのモデルなどのアプローチを使用して、各セグメントを処理して、一致する可能性のあるオブジェクトを判定することができる。たとえば、セグメントに対して特徴ベクトルを判定し、オブジェクトに対して保存されている情報と比較することができる。特徴ベクトルおよび保存された情報に基づいて、特定のオブジェクトおよび／または特定のタイプのオブジェクトについて、保存された特徴ベクトルに特徴ベクトルがどの程度類似しているかについて判定が行われ得る。
【００２８】
スライディングウィンドウアプローチは、それぞれ異なるトレーニング済みオブジェクト分類子またはラベル（たとえば、人、バッグ、靴、顔、腕、帽子、ズボン、トップスなど）を使用して、Ｎ回実行できる。各オブジェクト分類子の仮説を判定すると、出力は各オブジェクトタイプの最適な仮説のセットになる。通常、オブジェクトは画像内でランダムに表示されないため（たとえば、目と鼻は通常一緒に表示される）、位置に依存する制約も考慮することができる。たとえば、ルートオブジェクト（たとえば、人）の位置はＷ（ｒｏｏｔ）として定義され、各オブジェクトｋの各幾何学的制約は、６要素ベクトル
2020534597.tif 000010
として互いに対して示される。ルートオブジェクトＷｒｏｏｔに対する各オブジェクトＷｏｉの幾何学的「適合」は、
2020534597.tif 000011
によって定義される。
2020534597.tif 000012
ここで、ｄｘ、ｄｙは、オブジェクトボックスＷｏｉの各ピクセルとルートオブジェクトボックスの各ピクセル間の平均幾何学的距離である。最適値
2020534597.tif 000013
を見つける問題は、ａｒｇ  ｍｉｎλｉ
2020534597.tif 000014
として定式化できる。ここで、Ｄｔｒａｉｎ（Θｉ）は、トレーニングまたはその他の保存された画像でのΘｉの観測値である。
【００２９】
この機能を最適化するために、画像内のオブジェクトの位置を判定できる。たとえば、画像内のルートオブジェクト（例：人）の中心は（０、０）としてマークされ、処理された画像内の他のオブジェクトの位置はルートオブジェクトに対してシフトされる。次に、線形サポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ：ＳＶＭ）がΘｉをパラメータとして適用される。ＳＶＭへの入力はＤｔｒａｉｎ（Θｉ）である。線形計画法、動的計画法、凸最適化などの他の最適化手法も、単独で、または本明細書で説明した最適化と組み合わせて使用することができる。トレーニングデータＤｔｒａｉｎ（Θｋ）は、ユーザにオブジェクト全体とランドマークの両方の上に境界ボックスを配置させることで収集できる。あるいは、顔検出アルゴリズム、エッジ検出アルゴリズムなどの半自動化アプローチを使用して、オブジェクトを識別してもよい。いくつかの実装形態では、楕円、楕円、および／または不規則な形状など、他の形状を使用してオブジェクトを表すことができる。
【００３０】
図２に戻り、２１０および２１２のように、特徴ベクトルおよびラベルが生成され、識別された各オブジェクトに関連付けられる。具体的には、オブジェクトを含むバウンディングボックスは、データストア１３０３（図１３）に保持されているラベルおよびセグメントに対して生成された特徴ベクトルと関連付けに関連付けられる。加えて、画像のセグメントを形成する境界ボックスの位置および／またはサイズが関連付けられ、画像に保存されてもよい。セグメントのサイズおよび／または位置は、たとえば、バウンディングボックスのエッジまたはコーナに対応するピクセル座標（ｘ、ｙ）として保存できる。別の例として、セグメントのサイズおよび／または位置は、列および／または行の位置およびサイズとして保存されてもよい。
【００３１】
ラベルは、オブジェクトを表す一意の識別子（キーワードなど）である場合がある。あるいは、ラベルに分類情報またはオブジェクトタイプを含めることができる。たとえば、衣服の表現に関連付けられたラベルには、オブジェクトの一意の識別子に加えて、アパレル分類子（プレフィックス分類子など）が含まれる場合がある。さらに他の実装では、ラベルは画像で表されるオブジェクトの属性を示してもよい。属性には、オブジェクトのサイズ、形状、色、テクスチャ、パターンなどが含まれるが、これらに限定されない。他の実装では、画像内の各オブジェクトに対してオブジェクト属性のセット（たとえば、色、形状、テクスチャ）を判定し、そのセットを連結してオブジェクトを表す単一の特徴ベクトルを形成することができる。次に、特徴ベクトルは、視覚的な語彙を使用して視覚ラベルに変換され得る。視覚的な語彙は、画像の大きなデータセットから生成された特徴に対してクラスタリングアルゴリズム（Ｋ平均など）を実行することで生成でき、クラスタの中心が語彙セットになる。各単一の特徴ベクトルは、特徴空間（たとえば、ｎ）に最も類似する１つまたはそれ以上の語彙用語に保存および／または翻訳されてもよい。
【００３２】
ラベルと特徴ベクトルを画像で表される各オブジェクトに関連付けた後、２１４のように、オブジェクトと対応する画像セグメントにインデックスが付けられる。各オブジェクトには、標準のテキストベースの検索手法を使用してインデックスを作成できる。ただし、標準のテキスト検索や視覚検索とは異なり、複数のインデックスをデータストア１３０３（図１３）に保持し、各オブジェクトを複数のインデックスの１つまたはそれ以上に関連付けることができる。
【００３３】
図３は、一実施形態による、データストアに保持され得るセグメント化された画像の表現である。画像３００などの画像は、上述のセグメンテーション技術を使用してセグメント化することができる。例示的なルーチン２００を使用して、背景セグメントが除去され、画像内の６つのオブジェクトがセグメント化され識別された。具体的には、身体オブジェクト３０２、頭部オブジェクト３０４、上部オブジェクト３０６、ズボンオブジェクト３０８、バッグオブジェクト３１０、および靴オブジェクト３１２である。セグメント化の一部として、ルートオブジェクト（この例では身体オブジェクト３０２）が判定され、それらの他のオブジェクトを識別するときに、他のオブジェクト３０４〜３１２の位置が考慮される。オブジェクトタイプが判定されると、ラベルまたはその他の識別子が生成され、画像セグメントと画像に関連付けられる。
【００３４】
セグメントのインデックス付け、オブジェクトの判定、ラベルの生成、セグメントとラベルの画像３００への関連付けに加えて、画像３００内の各オブジェクトを表す特徴ベクトルが生成され、データストアに保存され、画像３００、セグメント、およびラベルに関連付けられる。たとえば、財布オブジェクトのサイズ、形状、色などを表す特徴ベクトルを生成し、画像３００およびセグメント３１０に関連付けることができる。画像内で検出された他のオブジェクトを表す特徴ベクトルも同様に生成され、それらのオブジェクト、セグメント、および画像３００に関連付けられ得る。
【００３５】
他の実装では、画像は、他の分割および識別技術を使用して分割されてもよい。たとえば、クラウドソーシング技術を使用して画像をセグメント化できる。たとえば、ユーザは画像を表示するときに、オブジェクトを含む画像の領域を選択し、それらのオブジェクトにラベルを付けることができる。より多くのユーザが画像内のオブジェクトを識別すると、それらのオブジェクトの識別の信頼性が高まる。ユーザが提供したセグメンテーションと識別に基づいて、画像内のオブジェクトにインデックスを付け、他の画像に含まれる他の視覚的に類似したオブジェクトに関連付けることができる。
【００３６】
図４は、記載された実装による、例示的なオブジェクト・マッチング・プロセス４００である。例示的なプロセス４００は、４０２のように、１つまたはそれ以上のオブジェクトの表現を含む画像を受け取ることから始まる。本明細書で説明する他の例と同様に、画像はさまざまなソースのいずれかから受け取ることができる。
【００３７】
画像を受信すると、画像は、上述の画像処理プロセス２００のすべてまたは一部を使用して処理され、４０４で示すように、画像に表される関心のあるオブジェクトが判定される。いくつかの実装形態では、画像処理プロセス２００全体が実行され、その後、例示的なプロセス２００の一部として検出されたオブジェクトから関心のあるオブジェクトが判定され得る。他の実装では、１つまたはそれ以上のオブジェクト検出アルゴリズムを実行して画像内の潜在オブジェクトを判定し、次に潜在オブジェクトの１つを関心のあるオブジェクトとして選択し、例示的なプロセス２００をその潜在オブジェクトに対して実行することができる。
【００３８】
たとえば、エッジ検出またはオブジェクト検出アルゴリズムを実行して、画像内の潜在的なオブジェクトを検出し、潜在的なオブジェクトの位置、潜在的なオブジェクトの明瞭さまたは焦点、および／または他の情報を利用して関心のあるオブジェクトを検出することができる。たとえば、いくつかの実装形態では、関心のあるオブジェクトは、画像の中心に向かって、焦点が合っており、画像の前景に位置していると判定され得る。他の実装では、ユーザは、関心のあるオブジェクトを含む画像のセグメントの指示または選択を提供してもよい。
【００３９】
関心のあるオブジェクトが判定されると、画像処理プロセス２００は、そのオブジェクトおよび／またはオブジェクトを含む画像のセグメントに対して実行され、オブジェクトを識別し、オブジェクトを表すオブジェクト特徴ベクトルを生成し、４０６のように、オブジェクトのタイプに対応するラベルを生成する。
【００４０】
次に、生成されたオブジェクト特徴ベクトルおよび／またはラベルは、４０８のように、保存された画像のセグメントで表されるオブジェクトに対応する保存された特徴ベクトルと比較され、オブジェクト特徴ベクトルと各保存された特徴ベクトル間の類似性スコアを生成する。いくつかの実装では、オブジェクト特徴ベクトルをすべての保存された特徴ベクトルと比較するのではなく、オブジェクトの種類を表すラベルを使用して、保存された特徴ベクトルを減らして同じまたは類似のラベルを持つもののみを含めることができる。たとえば、関心のあるオブジェクトが靴であると判定された場合、オブジェクト特徴ベクトルは、靴のラベルを持つ保存された特徴ベクトルとのみ比較され、それによって同じタイプのオブジェクトへの比較が制限される。
【００４１】
他の実装では、オブジェクト特徴ベクトルを同じまたは類似のラベルを持つ保存された特徴ベクトルと比較することに加えて、またはその代替として、保存された画像のセグメントの位置は、関心のあるオブジェクトが保存された画像の特定のセグメントに配置されることが期待される。たとえば、関心のあるオブジェクトが靴であると判定された場合、保存された画像の下部３分の１のセグメントに靴オブジェクトが含まれる可能性が最も高いと判定され、特徴ベクトルの比較は保存された画像の下部３分の１のセグメントに限定される可能性がある。あるいは、ルートオブジェクト（人など）と比較したときの関心のあるオブジェクトの位置を判定して利用し、上述したように、ルートオブジェクトに対する相対位置に基づいて、保存された画像のセグメントに対応する特徴ベクトルを選択することができる。
【００４２】
オブジェクト特徴ベクトルと保存された特徴ベクトルとの比較は、オブジェクト特徴ベクトルと、比較される保存された特徴ベクトルとの類似性を示す類似性スコアを生成する。より高い類似性スコアを有する保存された特徴ベクトルに関連付けられた画像は、より低い類似性スコアを有する特徴ベクトルに関連付けられた保存された画像よりも、検索および画像マッチングにより敏感であると判定される。保存された画像はオブジェクト特徴ベクトルと比較できる複数の保存された特徴ベクトルに関連付けられるため、一部の実装では、関連付けられた各保存された特徴ベクトルに対して判定された類似性スコアに基づいて、画像の平均類似性スコアが判定される。他の実装では、オブジェクト特徴ベクトルと比較される複数の保存された特徴ベクトルを有する画像の類似度スコアは、中央値類似度スコア、最低類似度スコア、または保存された画像に関連付けられた特徴ベクトルの類似度スコアの他のバリエーションであり得る。
【００４３】
各画像について判定された類似性スコアに基づいて、４１０のように、保存された画像のランク付けされたリストが生成される。一部の実装では、ランク付けされたリストは、類似性スコアのみに基づいている場合がある。他の実装では、保存された画像の人気、ユーザが以前に保存した画像を閲覧および／または対話したかどうか、保存された画像に関連付けられたいくつかの保存された多くの特徴ベクトル、オブジェクト特徴ベクトルと比較された保存された画像に関連付けられた多くの特徴ベクトル、保存された画像に関連付けられ関心のあるオブジェクトと同一または類似のラベルを有する多くの保存された特徴ベクトルなど、他の要因に基づいて、保存された画像の１つまたはそれ以上を高くまたは低く重み付けすることができる。
【００４４】
最後に、４１２のように、ランク付けされた結果リストに基づいて、保存された画像の複数の結果が、たとえばユーザ装置に返される。いくつかの実装形態では、例示的なプロセス４００は、ユーザ装置から遠隔のリモート計算リソースによって全体的または部分的に実行され、ランク付けされた結果リストに対応する画像の複数の結果が、ユーザ装置が関心のあるオブジェクトの画像を送信したことに応答してユーザ装置に提示するためにユーザ装置に送信され得る。他の実装形態では、例示的なプロセス４００の一部はユーザ装置上で実行されてもよく、例示的なプロセス４００の一部はリモート計算リソース上で実行されてもよい。たとえば、ユーザ装置のメモリに保存されたプログラム命令を実行して、ユーザ装置上の１つまたはそれ以上のプロセッサにオブジェクトの画像の受信、関心のあるオブジェクトの判定、および／またはラベルまたは関心のあるオブジェクトを表すオブジェクト特徴ベクトルの生成を実行できる。オブジェクト特徴ベクトルおよび／またはラベルは、ユーザ装置からリモート計算リソースに送信され、リモート計算リソースで実行されるコードは、リモート計算リソースの１つまたはそれ以上のプロセッサに、受信したオブジェクト特徴ベクトルを１つまたはそれ以上と比較させる類似性スコアを生成し、ランク付けされた結果リストを生成し、ランク付けされた結果リストに対応する画像をユーザ装置に送信して、目的のオブジェクトを含む入力画像に応答するようにユーザに提示する。他の実装形態では、例示的なプロセス４００の異なる態様は、同じまたは異なる場所で異なる計算システムによって実行され得る。
【００４５】
図５は、記載された実装による別の例示的なオブジェクト・マッチング・プロセス５００である。例示的なプロセス５００は、５０２のように、１つまたはそれ以上のオブジェクトの表現を含む画像を受信することから始まる。本明細書で説明する他の例と同様に、画像はさまざまなソースのいずれかから受け取ることができる。
【００４６】
画像を受信すると、画像は、上記で説明した画像処理プロセス２００のすべてまたは一部を使用して処理され、５０４で示すように、画像で表される１つまたはそれ以上の関心のあるオブジェクトが判定される。いくつかの実装形態では、画像処理プロセス２００全体を実行し、例示的なプロセス２００の一部として検出されたオブジェクトから関心のある候補オブジェクトを判定することができる。他の実装では、画像内の候補オブジェクトを判定するために１つまたはそれ以上のオブジェクト検出アルゴリズムが実行されてもよい。
【００４７】
たとえば、エッジ検出またはオブジェクト検出アルゴリズムを実行して、画像内のオブジェクトを検出し、潜在的なオブジェクトの位置、潜在的なオブジェクトの明瞭さまたは焦点、および／または他の情報を使用して関心のある候補オブジェクトを検出することができる。たとえば、いくつかの実装形態では、関心のある候補オブジェクトは、画像の中心に向かって、焦点が合っている、画像の前景に位置している、および／または互いに近くに位置していると判定され得る。
【００４８】
次いで、５０６のように、画像内に表された関心のある複数の候補オブジェクトがあるかどうかに関して判定が行われる。関心のある複数の候補オブジェクトがないと判定された場合、５０７のように、単一の検出されたオブジェクトが関心のあるオブジェクトとして利用される。関心のある候補オブジェクトが複数あると判定された場合、５０８のように、ユーザが１つまたはそれ以上の候補オブジェクトをオブジェクトとして選択できるように、関心のある候補オブジェクトのそれぞれを示す識別子とともに画像がユーザに提示される。たとえば、画像は、各候補オブジェクトに隣接して配置された視覚的識別子とともに、ユーザ装置のタッチベースのディスプレイ上に提示されてもよい。次に、ユーザは、１つまたはそれ以上の候補オブジェクトを関心のあるオブジェクトとして選択することにより、入力を提供できる。次に、５１０のように、プロセス例によってユーザ入力が受信され、関心のあるオブジェクトを判定するために利用される。
【００４９】
いくつかの実装では、ユーザは、関心のあるオブジェクトと関心のないオブジェクトの両方、または検索に一致する画像を判定する際に負の重みが与えられるオブジェクトの両方を指定できる場合がある。たとえば、画像内で複数のオブジェクトが検出され、選択のためにユーザに提示される場合、ユーザは、オブジェクトを関心のあるオブジェクトとして示すポジティブ選択、オブジェクトを関心のないオブジェクトとして示すネガティブ選択、または検索に一致する保存済みの画像を判定する際に考慮されない選択なし、として提供できる。
【００５０】
関心のあるオブジェクトの判定時、または関心のあるオブジェクトが１つのみの場合、画像処理プロセス２００は、５１２のように、オブジェクトを識別するそれらのオブジェクトおよび／またはオブジェクトを含む画像のセグメントに対して実行され、オブジェクトを識別する特徴ベクトルを生成し、各オブジェクトのタイプに対応するラベルを作成する。関心のあるオブジェクトと関心のないオブジェクトの両方を含む例では、例示のプロセス２００（図２）は、関心のあるオブジェクトと関心のないオブジェクトの両方に対して作成されたオブジェクトと特徴ベクトル／ラベルの両方のタイプに対して実行され得る。
【００５１】
生成されたオブジェクト特徴ベクトルおよび／またはラベルはそれぞれ、５１４のように、保存された画像のセグメントで表されるオブジェクトに対応する保存された特徴ベクトルと比較され、各オブジェクト特徴ベクトルと各保存された特徴ベクトル間の類似性スコアを生成する。一部の実装では、オブジェクト特徴ベクトルをすべての保存された特徴ベクトルと比較するのではなく、オブジェクトの種類を表すラベルを使用して、保存された特徴ベクトルのみが同じまたは類似のタイプのオブジェクト特徴ベクトルと比較されるように、異なるオブジェクト特徴ベクトルと比較される保存された特徴ベクトルを減らすことができる。たとえば、関心のあるオブジェクトの１つが靴であると判定された場合、そのオブジェクトのオブジェクト特徴ベクトルは、靴のラベルを持つ保存された特徴ベクトルとのみ比較できる。同様に、関心のある第２のオブジェクトがトップスであると判定された場合、そのオブジェクトのオブジェクト特徴ベクトルは、トップスラベルを持つ保存された特徴ベクトルとのみ比較できる。
【００５２】
他の実装では、オブジェクト特徴ベクトルを同じまたは類似のラベルを持つ保存された特徴ベクトルと比較することに加えて、またはその代替として、保存された画像のセグメントの位置は、関心のあるオブジェクトが保存された画像の特定のセグメントに配置されることが期待される。たとえば、関心のあるオブジェクトが靴であると判定された場合、保存された画像の下部３分の１のセグメントに靴オブジェクトが含まれる可能性が最も高いと判定され、特徴ベクトルの比較は保存された画像の下部３分の１のセグメントに限定される可能性がある。あるいは、ルートオブジェクト（人など）と比較したときの関心のあるオブジェクトの位置を判定して利用し、上述したように、ルートオブジェクトに対する相対位置に基づいて、保存された画像のセグメントに対応する特徴ベクトルを選択することができる。
【００５３】
オブジェクト特徴ベクトルと保存された特徴ベクトルとの比較により、各オブジェクト特徴ベクトルと、比較される保存された特徴ベクトルとの類似性を示す類似性スコアが生成される。より高い類似性スコアを有する保存された特徴ベクトルに関連付けられた画像は、より低い類似性スコアを有する特徴ベクトルに関連付けられた保存された画像よりも、検索および画像マッチングにより敏感であると判定される。保存された画像は、１つまたはそれ以上のオブジェクト特徴ベクトルと比較できる複数の保存された特徴ベクトルに関連付けられることがあるため、一部の実装では、関連付けられた各保存された特徴ベクトルに対して判定された類似性スコアに基づいて、画像の平均類似性スコアが判定される。他の実装では、複数のオブジェクト特徴ベクトルと比較される複数の保存された特徴ベクトルを有する画像の類似性スコアは、各オブジェクト特徴ベクトルに１つずつ、２つの類似性スコアを生成し得る。関心のないオブジェクトの類似性スコアを含む例では、類似性スコアは、関心のないオブジェクト特徴ベクトルを保存された特徴ベクトルと比較することによって同様に判定され得る。
【００５４】
各画像について判定された類似性スコアに基づいて、５１６のように、保存された画像のランク付けされたリストが生成される。一部の実装では、ランク付けされたリストは、類似性スコアのみに基づいている場合がある。複数の類似性スコアが異なる関心のあるオブジェクトに対して判定される実装では、両方の関心のあるオブジェクトの高い類似性スコアに関連付けられた画像が、ただ１つの関心のあるオブジェクトの高い類似性スコアの画像よりも高くランク付けされるように、ランク付けされたリストを判定することができる。同様に、ユーザが関心のないオブジェクトを指定した場合、関心のないオブジェクトに視覚的に類似するオブジェクトを含む画像は、関心および画像に関連付けられた１つまたはそれ以上の保存された特徴ベクトルのランクを下げることができる。実装によっては、保存された画像のランキングに他の要因が考慮される場合がある。たとえば、保存画像の人気度、ユーザが保存画像を以前に閲覧および／または対話したかどうか、保存された画像に関連付けられた多数の特徴ベクトル、オブジェクト特徴ベクトルと比較された保存された画像に関連付けられた多数の特徴ベクトル、保存された画像に関連付けられ、関心のあるオブジェクトの１つと同じまたは類似のラベルを持つ多くの保存された特徴ベクトルなどに基づいて、保存画像の１つまたはそれ以上をより高くまたはより低く重み付けすることができる。
【００５５】
最後に、５１８のように、ランク付けされた結果リストに基づいて、保存された画像の複数の結果が、たとえばユーザ装置に返される。いくつかの実装形態では、例示的なプロセス５００は、ユーザ装置から遠隔のリモート計算リソースによって全体的または部分的に実行され、ランク付けされた結果リストに対応する画像の複数の結果が、ユーザ装置が関心のあるオブジェクトの画像を送信したことに応答して、ユーザ装置に提示するためにユーザ装置に送信され得る。他の実装形態では、例示的なプロセス５００の一部をユーザ装置上で実行することができ、例示的なプロセス５００の一部をリモート計算リソース上で実行することができる。たとえば、ユーザ装置のメモリに保存されたプログラム命令を実行して、ユーザ装置上の１つまたはそれ以上のプロセッサにオブジェクトの画像の受信、関心のあるオブジェクトの判定、および／またはラベルまたは関心のあるオブジェクトを表すオブジェクト特徴ベクトルの生成を実行できる。オブジェクト特徴ベクトルおよび／またはラベルは、ユーザ装置からリモート計算リソースに送信され、リモート計算リソースで実行されるコードは、リモート計算リソースの１つまたはそれ以上のプロセッサに、受信したオブジェクト特徴ベクトルを１つまたはそれ以上と比較させる類似性スコアを生成し、ランク付けされた結果リストを生成し、ランク付けされた結果リストに対応する画像をユーザ装置に送信して、目的のオブジェクトを含む入力画像に応答するようにユーザに提示する。他の実装形態では、例示的プロセス５００の異なる態様は、同じまたは異なる場所で異なる計算システムによって実行され得る。
【００５６】
図６Ａは、記載された実装に従って、検索結果を生成するために使用されるユーザ装置６００によって取得された入力画像６０１を示す。上記の例と同様に、入力画像は任意のソースから受信または取得できる。この例では、入力画像はユーザ装置６００のカメラによってキャプチャされ、パイナップル６０２の表現、水のボトル６０４−１、および紙のシート６０４−２を含む。他の実装形態では、ユーザは画像コントロール６０８を選択し、ユーザ装置のメモリに保存されているか、そうでなければユーザ装置にアクセス可能な画像を選択することができる。あるいは、ユーザは、リモート画像制御６０６を選択し、ユーザ装置から離れたメモリに保存された複数の画像から画像を表示／選択してもよい。
【００５７】
この例では、画像を処理して画像内の１つまたはそれ以上の関心のあるオブジェクトを検出することに加えて、関心のあるオブジェクトが定義されたカテゴリに対応するかどうかを判定することができる。定義されたカテゴリには、食べ物、家の装飾、ファッションなどが含まれるが、これらに限定されない。カテゴリには、複数の異なるタイプのオブジェクトが含まれる場合がある。たとえば、食品には、パイナップルなど、数千種類の食品オブジェクトが含まれる場合がある。
【００５８】
関心のあるオブジェクトが定義済みのカテゴリに対応すると判定された場合、複数のクエリタイプを選択および利用して、入力画像のクエリに応答するように混合される結果を生成できる。異なるクエリタイプには、異なるタイプまたはスタイルのクエリが含まれる場合がある。たとえば、１つのクエリタイプは、上述のように、関心のあるオブジェクトに視覚的に類似する画像、または関心のあるオブジェクトに視覚的に類似する画像セグメントを含む視覚ベースの検索であり得る。別のクエリタイプは、関心のあるオブジェクトをどのように使用するか、または他の関心のあるオブジェクトと組み合わせる方法を示すコンテンツを検索および判定するテキストベースのクエリである。たとえば、定義されたカテゴリが食品の場合、第１のクエリタイプは、関心のあるオブジェクトに視覚的に類似した食品の画像を含む結果を返すことがある。第２のクエリタイプは、さまざまな食品の組み合わせの画像を含む結果、または関心のあるオブジェクトであると判定された食品を含むレシピを返すことがある。
【００５９】
複数のクエリタイプの例では、各クエリタイプに使用される入力が異なる場合がある。たとえば、視覚または画像ベースの検索を利用する第１のクエリタイプは、関心のあるオブジェクトを表すオブジェクト特徴ベクトルを受信するように構成でき、そのオブジェクト特徴ベクトルは、上記のように、保存された特徴ベクトルと比較して関心のあるオブジェクトに視覚的に類似したオブジェクトを含む保存された画像を検出できる。これに対して、クエリタイプは、テキスト／キーワード入力を受信して、関心のあるオブジェクトと視覚的には類似していないが、キーワードに一致するラベルを含む、または関心のあるオブジェクトに関連する保存画像を判定するように構成できる。
【００６０】
クエリタイプの１つがテキスト／キーワード入力を受信して保存された画像のデータストアを検索するように構成されている例では、目的のオブジェクトおよび／またはカテゴリに対応するキーワードまたはラベルが生成され、それぞれの保存された画像のクエリに使用される。
【００６１】
一部の実装では、各クエリタイプは同じデータソースに保持されているコンテンツを検索できるが、クエリタイプと保存されたコンテンツのクエリ方法の違いにより、異なる結果を返せる。他の実装では、クエリタイプの１つまたはそれ以上が、同じデータストアまたは異なるデータストアに保持されている異なるコンテンツを検索する場合がある。
【００６２】
図６Ｂには、図６Ａから選択された関心のあるオブジェクトの視覚的検索結果が示されている。ここで、記述された実装によれば、結果は、関心のあるオブジェクト６０２に関連する複数のクエリタイプから取得された画像を含む。
【００６３】
この例では、関心のあるオブジェクトであるパイナップルは食物であり、したがって、食物の定義されたカテゴリに対応すると判定される。さらに、食品カテゴリに関連付けられた２つの異なるクエリタイプがあり、１つは視覚または画像ベースの検索で、もう１つはテキストまたはキーワードベースの検索であると判定される。
【００６４】
この例では、第１のクエリタイプはパイナップルを表すオブジェクト特徴ベクトルを生成し、オブジェクト特徴ベクトルを保存された特徴ベクトルと比較して、関心のあるオブジェクト６０２と視覚的に類似するオブジェクトを含む画像を判定する。第２のクエリタイプは、「パイナップル＋レシピ」というキーワードを含むテキストクエリを生成し、パイナップルを使用するレシピに関連する画像を検索する。いくつかの実装形態では、キーワードは、関心のあるオブジェクトおよび／またはカテゴリに基づいて判定され得る。たとえば、画像処理に基づいて、関心のあるオブジェクトがパイナップルであると判定される場合があり、したがって、ラベルの１つが関心のあるオブジェクトタイプ（たとえば、パイナップル）である場合がある。同様に、食品カテゴリには、テキストベースのクエリを作成する際に使用される「レシピ」などのラベルが含まれるか、ラベルが関連付けられている場合がある。
【００６５】
他の実装では、テキストベースのクエリによって利用されるキーワードは、画像ベースのクエリから判定された画像に関連付けられたラベルに基づいてもよい。たとえば、第１のクエリタイプが画像ベースの検索で、目的のオブジェクトに類似する、または類似する画像セグメントを含む画像を返す場合、それらの返された画像に関連付けられたラベルが比較され、最も頻繁に使用されるラベルが第２のクエリタイプのキーワードとして使用される。
【００６６】
各クエリタイプの結果は、混合され、ユーザ装置６００上の画像のランク付けされたリストとして提示されてもよい。この例では、ピナコラーダを作るためのレシピに関連する第１の画像６１０−１が第２のクエリタイプに対して返され、第２の画像６１０−２が目的のオブジェクトに視覚的に類似するオブジェクト（パイナップル）を含む第１のクエリタイプに対して６０２が返され、２つは、ユーザによる画像入力に応じて混合された結果として表示される。
【００６７】
いくつかの実装形態では、判定されたキーワード６１１−１〜６１１−Ｎなどのキーワードまたはラベルは、ユーザ装置上に提示され、クエリをさらに絞り込むためにユーザが選択可能にすることができる。ユーザは、追加コントロール６１３を選択して追加のキーワードを入力することにより、独自のキーワードを追加することもできる。同様に、以下で説明するように、この例では、入力画像で複数のオブジェクトが検出され、ユーザが別のまたは追加の関心のあるオブジェクトを指定できるように、インジケータ６０４−１、６０４−２も他のオブジェクトに表示される。ユーザが別の、または追加の関心のあるオブジェクトを選択すると、それに応じて検索結果が更新される。
【００６８】
ユーザは、ユーザ装置に返されて表示された結果と対話し、検索を絞り込み、追加または異なるキーワードを提供し、追加または異なる関心のあるオブジェクトを選択し、および／または他のアクションを実行できる。
【００６９】
図７は、記載された実装による、例示的なオブジェクト・カテゴリ・マッチング・プロセス７００である。例示的なプロセス７００は、７０２のように、１つまたはそれ以上のオブジェクトの表現を含む画像を受信することから始まる。本明細書で説明する他の例と同様に、画像はさまざまなソースのいずれかから受け取ることができる。
【００７０】
画像を受信すると、画像は、上記で説明した画像処理プロセス２００（図２）のすべてまたは一部を使用して処理され、７０４で示すように、画像に表される１つまたはそれ以上の関心のあるオブジェクトが判定される。いくつかの実装形態では、画像処理プロセス２００全体を実行し、例示的なプロセス２００の一部として検出されたオブジェクトから関心のある候補オブジェクトを判定することができる。他の実装では、画像内の候補オブジェクトを判定するために１つまたはそれ以上のオブジェクト検出アルゴリズムが実行されてもよい。
【００７１】
たとえば、エッジ検出またはオブジェクト検出アルゴリズムを実行して、画像内のオブジェクトを検出し、潜在的なオブジェクトの位置、潜在的なオブジェクトの明瞭さまたは焦点、および／または他の情報を使用して関心のある候補オブジェクトを検出することができる。たとえば、いくつかの実装形態では、関心のある候補オブジェクトは、画像の中心に向かって、焦点が合っている、画像の前景に位置している、および／または互いに近くに位置していると判定され得る。いくつかの実装では、オブジェクト検出は、１つまたはそれ以上の定義済みカテゴリに対応する特定のタイプのオブジェクトの画像のみをスキャンする。定義されたカテゴリには、食べ物、家の装飾、ファッションなどが含まれるが、これらに限定されない。そのような実装では、画像処理は、定義されたカテゴリの１つに関連付けられたオブジェクトタイプが画像で潜在的に表されるかどうかを判定するために画像を処理するだけである。上述のように、複数のタイプのオブジェクトを各カテゴリに関連付けることができ、一部の実装では、オブジェクトタイプを複数のカテゴリに関連付けることができる。
【００７２】
次に、７０６のように、関心のあるオブジェクトが定義されたカテゴリに対応するかどうか、または定義されたカテゴリに対応するオブジェクトが画像内で識別されたかどうかについて判定が行われる。
【００７３】
関心のあるオブジェクトは、関心のあるオブジェクトが特定される（たとえば、プロセス例２００の一部として特定される）ときに判定される関心のあるオブジェクトのタイプに基づいて、定義されたカテゴリに対応するように判定され得る。２つ以上のオブジェクトが関心のあるオブジェクトとして判定される実装では、一部の実装では、対象の両方のオブジェクトが同じ定義済みカテゴリに対応することが必要になる場合がある。他の実装では、関心のあるオブジェクトを１つだけ定義済みカテゴリに関連付ける必要がある。
【００７４】
関心のあるオブジェクトが定義されたカテゴリに対応していないと判定された場合、７０７のように、受信した画像は保存されている画像情報と比較される。たとえば、関心のあるオブジェクトではなく、受信した画像を表す特徴ベクトルを生成し、保存された画像に対応する保存された特徴ベクトルと比較することができる。他の実施形態では、受信画像で識別された１つまたはそれ以上のオブジェクトを表すセグメント特徴ベクトルを生成し、図４に関して上記で論じたように、保存されたセグメント特徴ベクトルと比較することができる。次に、７０９のように、受信した画像および／または受信した画像のセグメントと視覚的に類似していると判定された保存済みの画像が返される。
【００７５】
関心のあるオブジェクトが定義済みのカテゴリに対応すると判定された場合、７０８のように、定義済みのカテゴリに関連付けられたクエリタイプが判定される。上述のように、複数のクエリタイプを定義済みのカテゴリに関連付けて、検索に応じて異なるタイプまたはスタイルのコンテンツを取得するために利用できる。
【００７６】
次に、７１０のように、１つまたはそれ以上のクエリタイプがコンテンツを検索するためのテキストベースのクエリであるかどうかについて判定がなされる。クエリタイプの１つがテキストベースのクエリであると判定された場合、クエリキーワードは関心のあるオブジェクト、カテゴリ、ユーザ、または７１２のような他の要因に基づいて判定される。たとえば、上記で説明したように、一部の実装では、視覚ベースまたは画像ベースのクエリに続いてテキストベースのクエリを実行でき、視覚ベースまたは画像ベースのクエリに一致するコンテンツアイテム／画像に関連付けられたラベルからキーワードを判定できる。たとえば、画像ベースのクエリに対して返された画像に関連付けられたラベル内の単語の頻度が判定され、キーワードが最も頻度の高いラベルのそれらの単語として選択されてもよい。
【００７７】
次に、キーワードを使用して、保存されたコンテンツに関連付けられたラベルおよび／または注釈を照会し、７１４のように、キーワードの一致に基づいてランク付けされた結果リストが返される。
【００７８】
クエリタイプのいずれもテキストベースのクエリではないと判定された場合、またはテキストクエリの生成と送信に加えて、７１５のように、受信した画像も保存された画像と比較される。ブロック７０９と同様に、比較は、受信画像を表す特徴ベクトルと保存画像を表す保存特徴ベクトルとの比較、および／または受信画像（たとえば、関心のあるオブジェクト）内のオブジェクトに対応する１つまたはそれ以上のセグメント特徴ベクトルと保存されたセグメントの特徴ベクトルと間の比較であってもよい。セグメント特徴ベクトルの比較は、図４に関して上述した方法と同様の方法で実行することができ、目的のオブジェクトに視覚的に類似するオブジェクトを含む画像を判定する。
【００７９】
次に、７１６のように、ユーザに返されるランク付けされた結果に含まれる各クエリタイプによって返されるコンテンツの比率または割合を示す結果比率が判定される。結果の比率または割合は、カテゴリ、ユーザの好み、関心のあるオブジェクト、各クエリタイプから返される結果の量または質、ユーザの場所など、さまざまな要因に基づいて判定できる。
【００８０】
結果の比率または割合に基づいて、各クエリタイプのランク付けされた結果が混合され、７１８のように混合された結果が生成される。最後に、７２０のように、混合された結果がユーザ装置に返され、関心のあるオブジェクトを含む入力画像に応答するものとしてユーザに提示される。
【００８１】
いくつかの実装形態では、例示的なプロセス７００は、ユーザ装置から遠隔のリモート計算リソースによって全体的または部分的に実行され、ランク付けされた結果リストに対応する画像の複数の結果が、ユーザ装置が関心のあるオブジェクトの画像を送信したことに応答して、ユーザ装置に提示するためにユーザ装置に送信され得る。他の実装形態では、例示的なプロセス７００の一部はユーザ装置上で実行されてもよく、例示的なプロセス７００の一部はリモート計算リソース上で実行されてもよい。たとえば、ユーザ装置のメモリに保存されたプログラム命令を実行して、ユーザ装置上の１つまたはそれ以上のプロセッサにオブジェクトの画像の受信、関心のあるオブジェクトの判定、および／またはラベルまたは関心のあるオブジェクトを表すオブジェクト特徴ベクトルの生成を実行できる。オブジェクト特徴ベクトルおよび／またはラベルは、ユーザ装置からリモート計算リソースに送信され、リモート計算リソースで実行されるコードは、リモート計算リソースの１つまたはそれ以上のプロセッサに、受信したオブジェクト特徴ベクトルを１つまたはそれ以上と比較させる類似性スコアを生成し、ランク付けされた結果リストを生成し、ランク付けされた結果リストに対応する画像をユーザ装置に送信して、目的のオブジェクトを含む入力画像に応答するようにユーザに提示する。他の実装形態では、例示的なプロセス７００の異なる態様は、同じまたは異なる場所で異なる計算システムによって実行され得る。
【００８２】
混合された結果を提供することにより、ユーザは、提供された関心のあるオブジェクトに視覚的に類似するオブジェクトを含む画像と、関心のあるオブジェクトに関連するが必ずしも関心のあるオブジェクトに視覚的に類似するオブジェクトの表現を含まない画像の両方を表示することができる。ユーザは、定義されたカテゴリで、関心のあるオブジェクトの他の画像ではなく、関心のあるオブジェクトに関する情報、関心のあるオブジェクトと他のオブジェクトの組み合わせ、関心のあるオブジェクトに関連するレシピを検索することが多いため、このような混合は有益である。
【００８３】
図８Ａは、記載された実装による、視覚的改良を提供するオプションを有するユーザ装置上のクエリを示す。図示された例では、ユーザはキーワード「夏服」を含むテキストベースのクエリ８０７を入力している。この例では、検索入力はテキストベースの入力で始まり、テキストベースの入力が食品、ファッション、家の装飾などの定義されたカテゴリに対応するかどうかが判定される。テキスト入力が定義されたカテゴリに関連する場合、ユーザには視覚的な絞り込みオプションが表示され、ユーザはテキストベースのクエリに一致する結果を絞り込むために使用される関心のあるオブジェクトを含む画像を提供できる。
【００８４】
たとえば、テキストベースのクエリ８０７は、テキストベースのクエリ「夏服」に対応する注釈、キーワード、またはラベルを含むと判定された画像８１０−１、８１０−２、８１０−３〜８１０−Ｎを返すために使用されてもよい。いくつかの実装形態では、他のキーワードまたはラベル８１１もユーザに提示して、ユーザがクエリをさらに洗練できるようにすることができる。いくつかの実装形態では、入力キーワードが定義済みカテゴリに対応すると判定された場合、視覚的改良オプション８０４が提示される。
【００８５】
図８Ｂでは、視覚的改良オプションを選択すると、ユーザ装置のカメラが起動され、カメラおよび／またはカメラの視野によってキャプチャされた画像が処理され、キャプチャされた画像／視野に表されるオブジェクトの形状が検出される。たとえば、カメラがセーター８０２に向けられている場合、セーターの形状が検出され、提案されたオブジェクトタイプ８０５がユーザに提示されて、ユーザが関心のあるオブジェクトタイプを確認することができる。同様に、現在選択されているオブジェクトタイプの形状を示すために、形状オーバーレイ８０３もユーザ装置８００のディスプレイ８０１に提示され得る。
【００８６】
この例では、判定されたオブジェクトカテゴリはファッションであり、視野内のオブジェクト８０２の現在検出されたオブジェクトタイプは、オブジェクトタイプ「トップス」８０５−３に対応する。ユーザは、「スカート」８０５−１、「ドレス」８０５−２、「ジャケット」８０５−Ｎなどの異なるインジケータを選択することにより、異なるオブジェクトタイプを選択することができる。理解されるように、より少ない、追加の、および／または異なるオブジェクトの種類やインジケータが表示される場合がある。たとえば、色、生地、スタイル、サイズ、テクスチャ、パターンなどに基づいて選択するオプションがユーザに表示される場合がある。
【００８７】
同様に、いくつかの実装形態では、ユーザ装置のカメラからの画像を利用するのではなく、ユーザは画像コントロール８０８を選択し、ユーザ装置のメモリまたはユーザ装置がアクセス可能な画像から画像を選択してもよい。あるいは、ユーザは、リモート画像制御８０６を選択し、入力データとしてリモートデータストアから画像を選択してもよい。
【００８８】
他の例と同様に、画像が入力されると、画像が処理されて関心のあるオブジェクトが判定され、関心のあるオブジェクトに対応するラベルが生成され、関心のあるオブジェクトを表す特徴ベクトルが生成される。次いで、ラベルおよび／または特徴ベクトルを利用して、キーワード検索に対応すると判定された画像を改良または再ランク付けすることができる。たとえば、図８Ｃは、図８Ａのクエリの検索結果を示し、説明される実装によれば、図８Ｂの視覚入力に基づいて改良された「夏服」８０７が上部アイコン８２１によって示される。他の例と同様に、関心のあるオブジェクトに対して生成されたラベルおよび／またはオブジェクト特徴ベクトルは、元のクエリに一致すると判定された保存画像に含まれるオブジェクトに対応する保存された特徴ベクトルと比較して、類似性スコアを生成するために利用される。この例では、セーター８０２（図８Ｂ）を表すオブジェクト特徴ベクトルは、テキストクエリに対応すると判定された画像のセグメントに対応する保存された特徴ベクトルと比較される。次に、前述のように、特徴ベクトルの比較から判定された類似性スコアに基づいて、画像のランクが変更される。次に、再ランク付けされた画像がユーザ装置に送信され、入力画像に応じてユーザ装置のディスプレイに表示される。たとえば、保存された画像８２０−１、８２０−２、８２０−３、および８２０−４は、関心のあるオブジェクトに視覚的に類似し、再ランク付けされたリストの最上位にランク付けされ、ユーザに送信されるオブジェクトを含むように判定され、ユーザ装置のディスプレイに表示され得る。
【００８９】
図９は、説明された実装による、例示的なテキストおよび画像マッチングプロセス９００である。例示的なプロセス９００は、９０２のように、ユーザ装置上に提示される検索入力ボックスへの１つまたはそれ以上のキーワードの入力などのテキストベースのクエリの受信時に開始する。次に、９０４のように、保存されたコンテンツを照会して、クエリのテキスト入力に対応する、または一致するラベルまたはキーワードが関連付けられている画像を判定する。さらに、９０６のように、テキストクエリが定義済みのカテゴリに対応するかどうかが判定される。たとえば、カテゴリを定義し、１つまたはそれ以上のキーワードまたはラベルを含めることができ、テキストベースの入力に「衣装」などのキーワードまたはラベルが含まれる場合、クエリ入力が定義済みのカテゴリに対応すると判定される。クエリが定義されたカテゴリに対応していないと判定された場合、９０８のようにプロセス例が完了し、ユーザはテキストベースのクエリに応答して提示された結果と対話できる。
【００９０】
クエリが定義されたカテゴリに対応すると判定された場合、９１０のように、検索結果を視覚的に絞り込むためのオプションがユーザに表示される。視覚的改良は、たとえば、画像を生成するため、および／または既存の画像を選択するためにカメラを起動するためにユーザによって選択される検索結果とともに提示されるグラフィカルボタンまたはアイコンであってもよい。いくつかの実装では、クエリが定義されたカテゴリに対応するかどうかの判定を省略でき、プロセス９００の各インスタンスで、９１０のように、検索結果の視覚的改良のオプションをユーザに提示できる。
【００９１】
９１２のように、クエリの結果を絞り込むために使用される画像が受信されたかどうかについても判定される。画像が受信されない場合、例示的なプロセス９００は、９０８のように完了する。しかしながら、画像が受信された場合、画像は、上述の画像処理プロセス２００（図２）の全部または一部を使用して処理され、９１４のように、画像に表される関心のあるオブジェクトが判定される。いくつかの実装形態では、画像処理プロセス２００全体が実行され、その後、例示的なプロセス２００の一部として検出されたオブジェクトから関心のあるオブジェクトが判定され得る。他の実装では、１つまたはそれ以上のオブジェクト検出アルゴリズムを実行して画像内の潜在オブジェクトを判定し、次に潜在オブジェクトの１つを関心のあるオブジェクトとして選択し、例示的なプロセス２００をその潜在オブジェクトに対して実行することができる。
【００９２】
たとえば、エッジ検出またはオブジェクト検出アルゴリズムを実行して、画像内の潜在的なオブジェクトを検出し、潜在的なオブジェクトの位置、潜在的なオブジェクトの明瞭さまたは焦点、および／または他の情報を利用して関心のあるオブジェクトを検出することができる。たとえば、いくつかの実装形態では、関心のあるオブジェクトは、画像の中心に向かって、焦点が合っており、画像の前景に位置していると判定され得る。他の実装では、ユーザは、関心のあるオブジェクトを含む画像のセグメントの指示または選択を提供してもよい。
【００９３】
関心のあるオブジェクトが判定されると、画像処理プロセス２００は、そのオブジェクトおよび／またはオブジェクトを含む画像のセグメントに対して実行され、オブジェクトを識別し、オブジェクトを表す特徴ベクトルを生成し、９１６のように、オブジェクトのタイプに対応するラベルを生成する。
【００９４】
生成されたオブジェクト特徴ベクトルおよび／またはラベルは、次に、９１８のように、テキストベースのクエリに一致すると判定された保存画像のオブジェクトに対応する保存された特徴ベクトルと比較され、オブジェクト特徴ベクトルと各保存された特徴ベクトルとの間の類似度スコアを生成する。
【００９５】
上述のように、オブジェクト特徴ベクトルと保存された特徴ベクトルとの比較は、オブジェクト特徴ベクトルと、それが比較される保存された特徴ベクトルとの間の類似性を示す類似性スコアを生成する。より高い類似性スコアを有する保存された特徴ベクトルに関連付けられた画像は、より低い類似性スコアを有する特徴ベクトルに関連付けられた記憶された画像よりも視覚的に洗練された検索に応答すると判定される。保存された画像はオブジェクト特徴ベクトルと比較できる複数の保存された特徴ベクトルに関連付けられるため、一部の実装では、関連付けられた各保存された特徴ベクトルに対して判定された類似性スコアに基づいて、画像の平均類似性スコアが判定される。他の実装では、オブジェクト特徴ベクトルと比較される複数の保存された特徴ベクトルを有する画像の類似度スコアは、中央値類似度スコア、最低類似度スコア、または保存された画像に関連付けられた特徴ベクトルの類似度スコアの他のバリエーションであり得る。
【００９６】
各画像について判定された類似性スコアに基づいて、テキストベースのクエリの結果は、９２０のように更新されたランク付けリストに再ランク付けされる。一部の実装では、ランク付けされたリストは、類似性スコアのみに基づいている場合がある。他の実装では、保存された画像の人気、ユーザが以前に保存した画像を閲覧および／または対話したかどうか、保存された画像に関連付けられたいくつかの保存された多くの特徴ベクトル、オブジェクト特徴ベクトルと比較された保存された画像に関連付けられた多くの特徴ベクトル、保存された画像に関連付けられ関心のあるオブジェクトと同一または類似のラベルを有する多くの保存された特徴ベクトルなど、他の要因に基づいて、保存された画像の１つまたはそれ以上を高くまたは低く重み付けすることができる。
【００９７】
最後に、ランク付けされたリストで最も高いランクを持つイメージが、９２２などのように、提示のためにユーザ装置に返される。いくつかの実装形態では、例示的なプロセス９００は、ユーザ装置から遠隔のリモート計算リソースによって全体的または部分的に実行され、ランク付けされた結果リストに対応する画像の複数の結果が、ユーザ装置が関心のあるオブジェクトの画像を送信したことに応答して、ユーザ装置に提示するためにユーザ装置に送信され得る。他の実装形態では、プロセス例９００の一部はユーザ装置上で実行され、プロセス例９００の一部はリモート計算リソース上で実行され得る。たとえば、ユーザ装置のメモリに保存されたプログラム命令を実行して、ユーザ装置上の１つまたはそれ以上のプロセッサにオブジェクトの画像の受信、関心のあるオブジェクトの判定、および／またはラベルまたは関心のあるオブジェクトを表すオブジェクト特徴ベクトルの生成を実行できる。オブジェクト特徴ベクトルおよび／またはラベルは、ユーザ装置からリモート計算リソースに送信され、リモート計算リソースで実行されるコードは、リモート計算リソースの１つまたはそれ以上のプロセッサに、受信したオブジェクト特徴ベクトルを１つまたはそれ以上と比較させる類似性スコアを生成し、ランク付けされた結果リストを生成し、ランク付けされた結果リストに対応する画像をユーザ装置に送信して、目的のオブジェクトを含む入力画像に応答するようにユーザに提示する。他の実装形態では、例示的なプロセス９００の異なる態様は、同じまたは異なる場所で異なる計算システムによって実行され得る。
【００９８】
図１０Ａは、記載される実装による、クエリのさらに別の例示的な視覚的改良入力を示す。この例では、ユーザはテキストベースのクエリ「サーモンレシピ」１００７を入力している。クエリが定義済みのカテゴリ（レシピなど）に対応しており、ユーザが視覚的な改良を提供していると判定される。この例では、ユーザ装置１０００上のカメラの視野のストリーミングビデオがリアルタイムまたはほぼリアルタイムで処理されて、カメラの視野内のオブジェクトが検出される。この例では、ストリーミングビデオ内の視野は冷蔵庫の内部である。他の例では、ストリーミングビデオに他の領域が含まれる場合がある。処理は、ユーザ装置から遠隔にある計算リソース、またはそれらの組み合わせによって、ユーザ装置１０００上で実行され得る。
【００９９】
ストリーミングビデオ内のオブジェクトが、たとえばエッジ検出アルゴリズムおよび／またはプロセス例２００（図２）の一部またはすべてを使用して検出されると、検出されたオブジェクトのタイプを示すキーワードまたはラベルがストリーミングビデオのプレゼンテーションと同時に装置のディスプレイ１００１に提示される。
【０１００】
この例では、イチゴ、アボカド、および卵が、ユーザ装置のカメラの視野内の関心のあるオブジェクトの候補として検出されている。オブジェクトが検出されると、ラベル１００２がオブジェクトに隣接して視覚的に表示され、オブジェクトが検出されたことを示す。
【０１０１】
いくつかの実装では、関心のある候補オブジェクトを検出し、キーワードクエリに対応する関心のある候補オブジェクトのみを特定することでユーザエクスペリエンスを向上させるプロセスの速度で、潜在的なオブジェクトのコーパスをテキストクエリに基づいて判定し、コーパスに一致するオブジェクトは、候補オブジェクトとして識別される。たとえば、テキストクエリを処理して、ユーザがサーモンを含むレシピを探していることを判定できる。その情報に基づいて、サーモンも含むレシピに関連する画像に含まれる、または参照される潜在的なオブジェクトのコーパスが判定され、そのコーパスに一致するオブジェクトのみが関心のある候補オブジェクトとして識別される。
【０１０２】
この例では、ユーザ装置のカメラの視野で検出された候補オブジェクトは、識別子「イチゴ」１００２−２、「卵」１００２−１、および「アボカド」１００２−３によって識別される。ユーザがカメラの視野を移動すると、検出されたオブジェクトの相対位置に対応するように識別子１００２の位置が更新され、追加の候補オブジェクトが視野に入ってストリーミングビデオに含まれる場合、それらのオブジェクトの識別子も同様に提示される。
【０１０３】
ユーザは、識別子の１つを選択して、オブジェクトが関心のあるオブジェクトであることを示すことができる。図１０Ｂでは、ユーザはオブジェクト卵を関心のあるオブジェクトとして選択している。それに応じて、卵アイコン１００１−２で示されるように、キーワード卵がクエリ「サーモンレシピ」１００１−１に追加され、画像１０１０−１、１０１０−２、１０１０−３、および１０１０−Ｎなどの画像が、「サーモン」、「レシピ」、および「卵」のラベル／キーワードを含む、またはそれらに関連付けられていると判定され、クエリに応答するように表示するためにユーザに返される。いくつかの実装形態では、クエリ結果のさらなる改良のために、他のキーワード１０１１が同様にユーザ装置１０００に提示されてもよい。
【０１０４】
ユーザが視覚的検索および／または視覚的検索とテキストベースの検索の組み合わせを利用し、入力および／または入力で検出されたオブジェクトから判定された定義済みカテゴリに基づいて結果を生成する機能を提供することにより、ユーザが探索したいコンテンツのタイプを入力することでより良い推論により結果の品質が向上する。説明した実装による柔軟性の向上により、画像全体ではなく、保存された画像のセグメントまたは部分に視覚検索（たとえば、特徴ベクトル）を集中させることで、入力画像に視覚的に類似した画像を提供する視覚検索のみの技術的改良が提供されるおよび／または、視覚検索に異なる形式の検索（キーワードなど）を自動的に追加する。さらに、テキストベースのクエリに、特徴ベクトルまたはキーワードマッチングによる視覚的一致のいずれかまたは両方を利用する視覚的改良を追加することにより、ユーザは異なるコンテキスト（キーワード、視覚的）で入力パラメータを表現することで、目的の情報をより適切に判定および探索できる。
【０１０５】
図１１は、本明細書で説明される様々な実装に従って使用され得る例示的なユーザ装置１１００を示す。この例では、ユーザ装置１１００は、ディスプレイ１１０２と同じおよび／または装置の反対側に、ディスプレイ１１０２およびオプションでカメラなどの少なくとも１つの入力構成要素１１０４を含む。ユーザ装置１１００はまた、スピーカ１１０６などのオーディオトランスデューサ、およびオプションでマイクロフォン１１０８を含んでもよい。一般に、ユーザ装置１１００は、ユーザがユーザ装置１１００と対話することを可能にする任意の形式の入力／出力構成要素を有してもよい。たとえば、装置とのユーザインタラクションを可能にするためのさまざまな入力構成要素には、タッチベースディスプレイ１１０２（抵抗性、容量性など）、カメラ、マイク、全地球測位システム（ＧＰＳ）、コンパス、またはそれらの任意の組み合わせが含まれる。これらの入力構成要素の１つまたはそれ以上を装置に含めるか、装置と通信することができる。本明細書に含まれる教示および提案に照らして明らかなはずであるように、さまざまな実装の範囲内で、さまざまな他の入力構成要素および入力構成要素の組み合わせを使用することもできる。
【０１０６】
本明細書で説明される様々な機能を提供するために、図１２は、図１１に関して説明したユーザ装置１１００などの、ユーザ装置１１００の基本構成要素１２００の例示的なセットを示す。この例では、装置は、少なくとも１つのメモリ装置または要素１２０４に保存できる命令を実行するための少なくとも１つの中央処理装置１２０２を備えている。当業者には明らかであるように、装置は、プロセッサ１２０２による実行のためのプログラム命令のための第１のデータストレージなど、多くのタイプのメモリ、データストレージ、またはコンピュータ可読ストレージ媒体を含むことができる。取り外し可能なストレージメモリは、他の装置などと情報を共有するために使用できる。通常、装置には、タッチベースのディスプレイ、電子インク（ｅ−ｉｎｋ）、有機発光ダイオード（ＯＬＥＤ）、または液晶ディスプレイ（ＬＣＤ）など、何らかのタイプのディスプレイ１２０６が含まれる。
【０１０７】
説明したように、多くの実装における装置は、装置の近くにあるオブジェクトを撮像できる１つまたはそれ以上のカメラなど、少なくとも１つの撮像素子１２０８を含む。撮像素子は、判定された解像度、焦点範囲、可視領域、およびキャプチャレートを有するＣＣＤまたはＣＭＯＳ撮像素子などの任意の適切な技術を含むか、少なくとも部分的に基づくことができる。装置は、検索用語、ラベルの生成、および／または選択された検索用語に一致する結果の識別および提示のプロセスを実行するための少なくとも１つの検索構成要素１２１０を含むことができる。たとえば、ユーザ装置は、リモート計算リソースと常時または断続的に通信し、検索プロセスの一部として、選択した検索語、画像、ラベルなどの情報をリモート計算システムと交換できる。
【０１０８】
装置には、ＧＰＳ、ＮＦＣ位置追跡、Ｗｉ−Ｆｉ位置監視など、少なくとも１つの位置構成要素１２１２を含めることもできる。位置構成要素１２１２によって取得された位置情報は、関心のあるオブジェクトに一致する画像を選択する際の要因として、本明細書で説明される様々な実装とともに使用され得る。たとえば、ユーザがサンフランシスコにいて、画像に表示されている橋（オブジェクト）を積極的に選択している場合、ゴールデンゲートブリッジなどの視覚的に類似したオブジェクトを識別する際に、ユーザの位置が要因と見なされる。
【０１０９】
例示的なユーザ装置はまた、ユーザから従来の入力を受け取ることができる少なくとも１つの追加の入力装置を含んでもよい。この従来の入力には、たとえば、プッシュボタン、タッチパッド、タッチベースのディスプレイ、ホイール、ジョイスティック、キーボード、マウス、トラックボール、キーパッド、またはユーザが装置にコマンドを入力できるその他の装置または要素が含まれる。一部の実装では、これらのＩ／Ｏ装置をワイヤレス、赤外線、Ｂｌｕｅｔｏｏｔｈ、またはその他のリンクで接続することもできる。
【０１１０】
図１３は、本明細書で説明する実装の１つまたはそれ以上で使用することができる、リモート計算リソースなどのサーバシステム１３００の例示的な実装の絵図である。サーバシステム１３００は、１つまたはそれ以上の冗長プロセッサなどのプロセッサ１３０１、ビデオディスプレイアダプタ１３０２、ディスクドライブ１３０４、入出力インターフェース１３０６、ネットワークインターフェース１３０８、およびメモリ１３１２を含むことができる。プロセッサ１３０１、ビデオディスプレイアダプタ１３０２、ディスクドライブ１３０４、入力／出力インターフェース１３０６、ネットワークインターフェース１３０８、およびメモリ１３１２は、通信バス１３１０によって互いに通信可能に結合されてもよい。
【０１１１】
ビデオディスプレイアダプタ１３０２は、サーバシステム１３００の操作者がサーバシステム１３００の動作を監視および構成することを可能にする表示信号をローカルディスプレイに提供する。入出力インターフェース１３０６は、同様に、マウス、キーボード、スキャナ、またはサーバシステム１３００の操作者が操作できる他の入出力装置などの外部入出力装置と通信する。ネットワークインターフェース１３０８は、他の計算装置と通信するためのハードウェア、ソフトウェア、またはそれらの任意の組み合わせを含む。たとえば、ネットワークインターフェース１３０８は、サーバシステム１３００とユーザ装置１１００などの他の計算装置との間の通信を提供するように構成されてもよい。
【０１１２】
メモリ１３１２は一般に、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、および／または他の揮発性または永久メモリを含む。メモリ１３１２は、サーバシステム１３００の動作を制御するためのオペレーティングシステム１３１４を保存するように示されている。サーバシステム１３００の低レベル動作を制御するためのバイナリ入出力システム（ＢＩＯＳ）１３１６もメモリ１３１２に保存されている。
【０１１３】
メモリ１３１２は、ユーザ装置１１００および外部ソースが情報およびデータファイルをサーバシステム１３００と交換することを可能にするネットワークサービスを提供するためのプログラムコードおよびデータをさらに保存する。したがって、メモリ１３１２は、ブラウザアプリケーション１３１８を保存してもよい。ブラウザアプリケーション１３１８は、プロセッサ１３０１によって実行されると、ウェブページなどの構成可能なマークアップ文書を生成または取得するコンピュータ実行可能命令を含む。ブラウザアプリケーション１３１８は、データストアマネージャアプリケーション１３２０と通信して、データストア１３０３、ユーザ装置１１００などのユーザ装置、外部ソースなどの間のデータ交換およびマッピングを容易にする。
【０１１４】
本明細書で使用する「データストア」という用語は、データの保存、アクセス、取得が可能な任意の装置または装置の組み合わせを指し、任意の組み合わせおよび任意の数のデータサーバ、データベース、データストレージ装置、およびデータストレージメディアを標準、分散、またはクラスタ環境に含むことができる。サーバシステム１３００は、ユーザ装置１１００、外部ソースおよび／または検索サービス１３０５の１つまたはそれ以上のアプリケーションの側面を実行するために必要に応じてデータストア１３０３と統合するための適切なハードウェアおよびソフトウェアを含むことができる。サーバシステム１３００は、データストア１３０３と連携してアクセス制御サービスを提供し、一致する検索結果、視覚的に類似したオブジェクトを含む画像、視覚的に類似したオブジェクトを含む画像のインデックスなどのコンテンツを生成できる。
【０１１５】
データストア１３０３は、いくつかの別個のデータテーブル、データベース、または他のデータストレージメカニズム、および特定の側面に関連するデータを保存するためのメディアを含むことができる。たとえば、図示されたデータストア１３０３は、デジタルアイテム（たとえば、画像）およびそれらのアイテムに関する対応するメタデータ（たとえば、ラベル、インデックス）を含む。検索履歴、ユーザ設定、プロファイル、その他の情報も同様にデータストアに保存できる。
【０１１６】
データストア１３０３に保存され得る他の多くの態様があり得ることを理解すべきであり、それは、適切に上記のリストされたメカニズムのいずれか、またはデータストアの追加のメカニズムに保存され得る。データストア１３０３は、それに関連付けられたロジックを介して、サーバシステム１３００から命令を受信し、それに応答してデータを取得、更新、または処理するように動作可能であってもよい。
【０１１７】
メモリ１３１２は、検索サービス１３０５も含むことができる。検索サービス１３０５は、サーバシステム１３００の機能のうちの１つまたはそれ以上を実装するために、プロセッサ１３０１によって実行可能であってもよい。一実装では、検索サービス１３０５は、メモリ１３１２に保存された１つまたはそれ以上のソフトウェアプログラムに組み込まれた命令を表すことができる。別の実装形態では、検索サービス１３０５は、ハードウェア、ソフトウェア命令、またはそれらの組み合わせを表すことができる。検索サービス１３０５は、単独で、またはユーザ装置１１００などの他の装置と組み合わせて、本明細書で説明する実装の一部またはすべてを実行することができる。
【０１１８】
サーバシステム１３００は、一実装形態では、１つまたはそれ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続された複数のコンピュータシステムおよび構成要素を利用する分散環境である。しかしながら、そのようなシステムは、図１３に示されているよりも少ないまたは多い数の構成要素を有するシステムにおいて等しく良好に動作できることを当業者は理解するであろう。したがって、図１３の描写は、本質的に例示的であり、本開示の範囲を限定するものではないと解釈されるべきである。
【０１１９】
本明細書で開示される実装は、１つまたはそれ以上のプロセッサとプログラム命令を保存するメモリとを有する計算システムを含み得る。プログラム命令は、１つまたはそれ以上のプロセッサによって実行されると、１つまたはそれ以上のプロセッサに少なくともユーザ装置からテキストクエリを受信させ、テキストクエリに対応する複数の結果を判定して返すことができる。テキストクエリの受信に続いて、プログラム命令は、１つまたはそれ以上のプロセッサで実行されると、１つまたはそれ以上のプロセッサにユーザ装置からオブジェクトの画像を受信させ、オブジェクトを表すオブジェクト特徴ベクトルを生成し、比較する複数の結果として返される画像のセグメントに対応する複数の保存された特徴ベクトルを有するオブジェクト特徴ベクトルは、オブジェクト特徴ベクトルと複数の保存された画像の比較に少なくとも部分的に基づいて複数の結果のランク付けリストを生成し、および画像の受信に応じてランク付けされたリストを提示する。
【０１２０】
複数の保存された画像セグメントのそれぞれは、画像全体より少ないものに対応してもよい。画像は、ユーザ装置のカメラによって生成された画像、ユーザ装置のメモリから取得された画像、複数の結果から取得された画像、またはユーザ装置から離れた記憶媒体から取得された画像の少なくとも１つであってもよい。プログラム命令はさらに、１つまたはそれ以上のプロセッサに、テキストクエリが定義済みカテゴリに対応することを少なくとも判定させ、テキストクエリが定義済みカテゴリに対応するという判定に応じて画像改良オプションを提供させてもよい。定義されたカテゴリは、ファッション、衣類、家の装飾、個人、または食品の少なくとも１つであってもよい。
【０１２１】
本明細書で開示される実装は、コンピュータ実装の方法を含み得る。コンピュータ実装方法は、ユーザ装置からクエリを受信すること、クエリに少なくとも部分的に基づいて第１の複数の画像を判定すること、クエリを受信した後、オブジェクトの画像を受信すること、オブジェクトの画像を第１の複数の画像のそれぞれの少なくとも１つの画像セグメントと比較すること、比較に少なくとも部分的に基づいて第１の複数の画像の少なくとも一部のランク付けされたリストを判定すること、ランク付けされたリストに、第１の複数の画像の少なくとも一部の提示を提供すること、の１つまたはそれ以上を含み得る。
【０１２２】
オプションとして、コンピュータ実装方法は、画像を処理して画像に表されるオブジェクトのオブジェクトタイプを判定することも含み、画像を比較することは、オブジェクトを表すオブジェクト特徴ベクトルを生成し、オブジェクト特徴ベクトルを同じオブジェクトタイプを有する第１の複数の画像で表されるオブジェクトに対応する保存された特徴ベクトルと比較することを含む。コンピュータ実装方法は、クエリが定義済みカテゴリに対応することを判定し、視覚的改良オプションを提示することも含んでもよい。コンピュータ実装方法は、ユーザ装置のカメラの視野内のオブジェクトを検出し、ユーザ装置でオブジェクトに対応するオブジェクトタイプを判定し、ユーザ装置のディスプレイにオブジェクトタイプ識別子を表示することも含んでもよい。オブジェクトタイプ識別子は、オブジェクトタイプの形状に対応するグラフィック表示、またはオブジェクトタイプの名前の少なくとも１つを含んでもよい。コンピュータ実装方法は、第２のオブジェクトタイプ識別子の選択を可能にし、それによりオブジェクトに対応する第２のオブジェクトタイプを示すことも含んでもよい。コンピュータ実装方法は、オブジェクトの種類に対応し、クエリの一部としてキーワードを含むキーワードを生成することも含んでもよい。コンピュータ実装方法は、第１の複数の画像の一部、第１の複数の画像、またはクエリの少なくとも１つに対応する複数のキーワードを判定し、ユーザによるユーザ装置、複数のキーワードのそれぞれの提示および選択を提供することも含んでもよい。オブジェクトの画像を比較することは、オブジェクトを表すオブジェクト特徴ベクトルを生成すること、第１の複数の画像におけるオブジェクトの予想位置を判定すること、少なくとも一部に基づいて画像セグメントを判定すること、およびオブジェクト特徴ベクトルと画像セグメントに関連付けられた保存された特徴ベクトルとの比較することの１つまたはそれ以上をさらに含んでもよい。コンピュータ実装方法は、オブジェクトのオブジェクトタイプを判定することをさらに含んでもよく、予想位置を判定することは、オブジェクトタイプに少なくとも部分的に基づく。
【０１２３】
本明細書で開示される実装は、計算システムの少なくとも１つのプロセッサによって実行され得る命令を保存する非一時的なコンピュータ可読記憶媒体を含み得る。命令は、少なくとも１つのプロセッサによって実行されると、計算システムに少なくともユーザ装置でクエリを受信させ、クエリが定義されたカテゴリに対応することを判定し、ユーザ装置の視覚的改良オプションを有効にし、受信する視覚的改良オプションの一部としてのユーザ装置からのストリーミングビデオは、ストリーミングビデオの少なくとも一部を処理して、ユーザ装置のディスプレイ上に存在するストリーミングビデオで表される１つまたはそれ以上のオブジェクトのオブジェクトタイプを識別し、ストリーミングビデオのプレゼンテーションと同時に、１つまたはそれ以上のオブジェクトのオブジェクトタイプ、オブジェクトタイプの選択を受け取り、クエリと選択したオブジェクトタイプの両方に対応する複数の保存画像を判定し、複数の保存された画像をユーザ装置のディスプレイに表示する。
【０１２４】
定義されたカテゴリは食物であってもよく、ストリーミングビデオは、ユーザ装置のカメラの視野内に現在ある食物の表現を含んでもよい。クエリはテキストベースのクエリであってもよい。命令はさらに、計算システムに、定義されたカテゴリに少なくとも部分的に基づいて、複数の保存された画像を判定する際に考慮される候補画像を少なくとも判定させてもよい。少なくとも１つのプロセッサに複数の保存された画像を判定させる命令は、計算システムに、クエリ、少なくとも１つのオブジェクトタイプ、または定義されたカテゴリに対応する少なくとも１つのキーワードを少なくとも判定させ、少なくとも１つのキーワードに少なくとも部分的に基づいて、複数の保存された画像を判定させてもよい。
【０１２５】
本明細書で開示される実装は、計算システムを含み得る。計算システムは、複数の画像セグメントおよび／または各画像に対応する画像情報を有する第１の複数の記憶画像の１つまたはそれ以上を記憶できる画像データ記憶装置を含むことができる。画像情報は、各画像について、それぞれの複数の画像セグメントのうちの１つまたはそれ以上を示すことができ、各画像セグメントは、保存された画像全体および複数の保存された特徴ベクトルよりも小さいそれぞれの保存された画像の一部を表すことができ、各保存された特徴ベクトルは、複数の画像セグメントの画像セグメントで表されるオブジェクトに対応する。計算システムは、１つまたはそれ以上のプロセッサと、プログラム命令を保存するメモリも含み得る。プログラム命令は、１つまたはそれ以上のプロセッサによって実行されると、１つまたはそれ以上のプロセッサに、ユーザ装置からの受信、視覚ベースの検索の一部としての画像、画像の処理、画像に表現された関心、関心のあるオブジェクトを表すオブジェクト特徴ベクトルを生成し、オブジェクト特徴ベクトルを複数の保存された特徴ベクトルと比較して、視覚的に類似するオブジェクトの表現を含む第２の複数の保存された特徴ベクトルを判定する関心のあるオブジェクトは、オブジェクト特徴ベクトルと複数の保存された特徴ベクトルの比較に少なくとも部分的に基づいて、第１の複数の保存画像の第２の複数の画像を示すランク付けされたリストを判定する。関心のあるオブジェクトに視覚的に類似していると判定されたオブジェクトの表現を含む少なくとも１つの画像セグメントを含む画像少なくとも部分的に比較に基づいて、第２の複数の画像の各画像を第２の複数の画像の各画像の画像全体が含まれるように、第２の複数の画像の各画像をユーザ装置のディスプレイに送る。
【０１２６】
画像を処理して関心のあるオブジェクトを判定するプログラム命令は、実行時に１つまたはそれ以上のプロセッサに画像を処理させて、第１の関心のある候補オブジェクトと第２の関心のある候補オブジェクトを判定させ、関心のあるオブジェクトとして関心のある第１の候補オブジェクトを示す入力を受信させてもよい。画像は複数のオブジェクトの表現を含んでもよく、関心のあるオブジェクトは、画像内の関心のあるオブジェクトの位置、焦点が合っている画像の一部、画像内で表される関心のあるオブジェクトのサイズ、または背景色と比較した関心のあるオブジェクトの色に少なくとも部分的に基づいて判定されてもよい。任意選択で、プログラム命令はさらに、１つまたはそれ以上のプロセッサに少なくとも画像を処理させて、画像に表される第２のオブジェクトを判定し、第２のオブジェクトを表す第２のオブジェクト特徴ベクトルを生成し、第２のオブジェクト特徴ベクトルを複数のそれぞれの画像セグメントに対応する保存された特徴ベクトルの中で、第２のオブジェクトに視覚的に類似するオブジェクトの表現を含む第３の複数の保存された特徴ベクトルを判定し、ランク付けされたリストはさらに、少なくとも部分的に比較に基づいて判定される複数の保存された特徴ベクトルを有するオブジェクト特徴ベクトルと、第１の複数の保存画像の第２の複数の画像を識別するための第２のオブジェクト特徴ベクトルと複数の保存された特徴ベクトルとを比較し、視覚的なオブジェクトの表現を含む少なくとも１つの画像セグメントは関心のあるオブジェクトに類似しており、第２のオブジェクトに視覚的に類似するオブジェクトの表現を含む少なくとも１つの第２の画像セグメントをさらに含む。プログラム命令は、実行されると、１つまたはそれ以上のプロセッサに、少なくともユーザ装置から、関心のあるオブジェクトと第２のオブジェクトの選択を少なくとも受信させ得る。
【０１２７】
本明細書で開示される実装は、コンピュータ実装の方法を含み得る。コンピュータ実装方法は、ユーザ装置から画像の指示を受信すること、画像を処理して画像に表される第１のオブジェクトを判定すること、第１のオブジェクトを表すオブジェクト特徴ベクトルを生成すること、オブジェクト特徴ベクトルを複数の保存された特徴ベクトルと比較することの１つまたはそれ以上を含み得、複数の保存された特徴ベクトルのそれぞれは、第１の複数の画像のそれぞれの画像セグメントを表し、各画像セグメントはそれぞれの画像のすべてよりも少なく、第１の複数の画像からの第２の複数の画像のランク付けリストを生成し、第２の複数の画像の各画像は、比較の少なくとも一部に基づいて、オブジェクトの表現を含むと判定された少なくとも１つのそれぞれの画像セグメントを含み、第１のオブジェクトに視覚的に類似しており、複数の画像がユーザ装置によって提示される。
【０１２８】
オプションとして、コンピュータ実装方法は、画像の指示を受け取る前に、第２の画像を複数のセグメントにセグメント化すること、複数のセグメントのそれぞれについて、セグメント、各特徴ベクトルのそれぞれを、特徴ベクトルが対応する画像セグメントの少なくとも１つまたは第２の画像と関連付け、第２の画像および各各特徴ベクトルをデータストアに保存し、それぞれの特徴ベクトルは、複数の保存された特徴ベクトルに含まれる。コンピュータ実装方法は、複数のセグメントのそれぞれについて、第２の画像内のそれぞれのセグメントの位置を示す位置情報を保存することの１つまたはそれ以上をさらに含んでもよい。コンピュータ実装方法は、複数の画像セグメントのそれぞれについて、画像セグメントに表されるオブジェクトを判定すること、オブジェクトに対応するラベルを生成すること、および特徴ベクトルがオブジェクトを表すことの１つまたはそれ以上を含んでもよい。オプションで、ラベルはオブジェクトのタイプまたはオブジェクトのカテゴリの少なくとも１つを示すことができる。任意選択で、コンピュータ実装方法は、画像で表される第１のオブジェクトのラベルを判定すること、および第１のオブジェクトのラベルに少なくとも部分的に基づいて複数の保存された特徴ベクトルを判定する１つまたはそれ以上をさらに含んでもよい。任意選択で、画像の処理は、複数の候補オブジェクトを判定するための画像処理、第１候補オブジェクトの選択の受信、および第１候補オブジェクトが第１オブジェクトである１つまたはそれ以上を含み得る。任意選択で、コンピュータ実装方法は、第２の候補オブジェクトの選択の受信、第２の候補オブジェクトを表す第２のオブジェクト特徴ベクトルの生成、第２のオブジェクト特徴ベクトルと複数の少なくとも一部との比較のうちの１つまたはそれ以上をさらに含み得る。第１の複数の画像から第２の複数の画像のランク付けされたリストを生成することは、第２のオブジェクト特徴ベクトルを複数の保存された特徴ベクトルの少なくとも一部と比較することに少なくとも部分的に基づいている。任意選択で、コンピュータ実装方法は、第１のオブジェクトのオブジェクトタイプを判定すること、およびオブジェクトタイプに少なくとも部分的に基づいて複数の保存された特徴ベクトルを判定することの１つまたはそれ以上をさらに含み得る。任意選択で、複数の保存された特徴ベクトルは、第１のオブジェクトのオブジェクトタイプと同じオブジェクトタイプを有してもよい。
【０１２９】
本明細書で開示される実装は、命令を保存する非一時的なコンピュータ可読記憶媒体を含み得る。命令は、計算システムの少なくとも１つのプロセッサによって実行されると、計算システムに複数の画像に対応する画像情報をデータストアに保持させることがある。画像情報は、各画像について、それぞれの複数の画像セグメントのうちの１つまたはそれ以上を示してもよく、各画像セグメントは、それぞれの画像の一部、それぞれの複数の特徴ベクトルを表し、各特徴ベクトルは、それぞれの画像セグメント内のオブジェクト、およびそれぞれの画像セグメントに対応する複数のラベルを表す。命令はさらに、計算システムに、画像で表されるオブジェクトを判定させ、オブジェクトを表すオブジェクト特徴ベクトルを生成させ、オブジェクトのラベルを判定させ、ラベルに少なくとも部分的に基づいて、複数の特徴ベクトル、オブジェクト特徴ベクトルを複数の特徴ベクトルのそれぞれと比較して類似度スコアを判定し、各類似度スコアはオブジェクト特徴ベクトルと複数の特徴ベクトルのそれぞれの特徴ベクトルとの類似性を表す、および類似性スコアに少なくとも部分的に基づいて、保存された画像のランク付けされたリストを生成する。
【０１３０】
オプションで、ラベルは、オブジェクトまたはオブジェクトのオブジェクトタイプの少なくとも１つを示してもよい。オプションで、複数の特徴ベクトルのそれぞれは、画像全体よりも小さいそれぞれの保存画像の画像セグメントを表すことができ、命令はさらに、計算システムに、保存のランク付けリストに示された画像を少なくとも提示させることができ、各提示画像は、画像全体よりも小さいそれぞれの画像セグメントを含む。任意選択で、保存された各特徴ベクトルは、画像全体よりも小さい画像セグメントのオブジェクトを表してもよい。任意選択で、類似性スコアは、特徴ベクトルと保存された特徴ベクトルとの間のユークリッド距離を表してもよい。
【０１３１】
本明細書で開示される実装は、計算システムを含み得る。計算システムは、１つまたはそれ以上のプロセッサと、プログラム命令を保存するメモリとを含み得る。プログラム命令は、１つまたはそれ以上のプロセッサによって実行されると、１つまたはそれ以上のプロセッサに少なくともユーザ装置からオブジェクトの画像を受信させ、画像を処理して画像に表されるオブジェクトを判定し、オブジェクトは定義済みカテゴリに対応し、オブジェクトまたは定義済みカテゴリに少なくとも部分的に基づいて第１クエリタイプと第２クエリタイプを判定し、第１クエリタイプで使用するオブジェクトに対応するキーワードを生成し、キーワードに少なくとも部分的に基づく第１のクエリタイプ、第２のクエリタイプで使用するオブジェクトを表す特徴ベクトルの生成、特徴ベクトルに少なくとも部分的に基づく第２のクエリタイプの第２の結果の判定、第１の結果の混合２つ目の結果は、１つ目の結果の１つ目の割合と２つ目の結果の２つ目の割合を含む混合結果を生成し、および／またはオブジェクトの画像。
【０１３２】
任意選択で、プログラム命令はさらに、１つまたはそれ以上のプロセッサに、第１の割合および第２の割合を示す混合結果の結果比を判定させてもよい。オプションで、結果の比率は、オブジェクト、定義済みカテゴリ、第１クエリタイプ、第２クエリタイプ、オブジェクトの画像を送信したユーザ、ユーザ装置、またはユーザ設定に少なくとも部分的に基づいてもよい。オプションで、キーワードは、オブジェクト、定義されたカテゴリ、または第２の結果に含まれる画像に関連付けられたラベルに少なくとも部分的に基づいて生成され得る。任意選択で、第１の結果は、オブジェクトを利用または含むアイテムに対応するコンテンツを含むことができ、第２の結果は、オブジェクトの表現を含むコンテンツを含むことができる。
【０１３３】
本明細書で開示される実装は、コンピュータ実装の方法を含み得る。コンピュータ実装方法は、ユーザ装置からオブジェクトの画像を受信すること、定義されたカテゴリにオブジェクトが対応することを判定すること、少なくとも一部に基づいて第１のクエリタイプおよび第２のクエリタイプを判定することの１つまたはそれ以上を含み得る。定義されたカテゴリまたはオブジェクト、オブジェクトに対応する第１クエリタイプの第１クエリ結果の取得、オブジェクトに対応する第２クエリタイプの第２クエリ結果の取得、第１クエリ結果の少なくとも第１部分と少なくとも第２のクエリ結果の第２の部分は、混合された結果を生成し、ユーザ装置によるプレゼンテーションのために、オブジェクトの画像に応じて、混合された結果を送信する。
【０１３４】
必要に応じて、定義されたカテゴリは、食品、家の装飾、またはファッションの少なくとも１つである場合がある。任意選択で、コンピュータ実装方法は、画像に表されるオブジェクトのオブジェクトタイプを判定するために画像を処理する１つまたはそれ以上をさらに含むことができ、そのオブジェクトは、少なくともオブジェクトタイプに部分的に基づいて定義されたカテゴリに対応すると判定される。オプションで、第１のクエリタイプはテキストベースのクエリであり、第２のクエリタイプは画像ベースのクエリである。オプションで、コンピュータ実装方法は、定義済みカテゴリに関連付けられた第３のクエリタイプの判定、オブジェクトに対応する第３のクエリの結果の取得、および第３のクエリタイプに一致する少なくとも１つのオブジェクト識別子をさらに含む。オプションで、第１のクエリタイプはオブジェクトに関連するコンテンツを返し、第２のクエリタイプはオブジェクトと同じオブジェクトタイプのオブジェクトの表現を含むコンテンツを返す。任意選択で、コンピュータ実装方法は、オブジェクトまたはオブジェクトのオブジェクトタイプに少なくとも部分的に基づいてキーワードを生成する１つまたはそれ以上を含むことができ、第１のクエリ結果を取得することは、少なくとも部分的にキーワードに基づいて第１のクエリ結果を判定することを含むことができる。任意選択で、コンピュータ実装方法は、混合結果に含める第１のクエリ結果の第１の割合と第２のクエリ結果の第２の割合を示す結果比率を判定する１つまたはそれ以上をさらに含むことができ、混合は少なくとも部分的に結果の比率に基づく。任意選択で、コンピュータ実装方法は、オブジェクトのオブジェクトタイプを判定すること、およびオブジェクトタイプに少なくとも部分的に基づいて複数の保存された特徴ベクトルを判定することの１つまたはそれ以上をさらに含み得る。オプションとして、第１のクエリ結果の取得は、オブジェクトに対して判定されたキーワードに少なくとも部分的に基づいてもよく、オブジェクトをテキストで表すキーワードと、第２のクエリ結果の取得は、オブジェクトの表現から生成された特徴ベクトルに少なくとも部分的に基づいてもよく、特徴ベクトルは、オブジェクトを視覚的に表す。
【０１３５】
本明細書で開示される実装は、命令を保存する非一時的なコンピュータ可読記憶媒体を含み得る。命令は、計算システムの少なくとも１つのプロセッサによって実行されると、計算システムに少なくとも画像に表されるオブジェクトを判定させ、オブジェクトが定義されたカテゴリに対応することを判定させ、第１のクエリタイプおよび第２のクエリを判定させ得る定義されたカテゴリに関連付けられたタイプ、第１のクエリタイプで使用するオブジェクトに対応するキーワードを生成、オブジェクトを表す特徴ベクトルを生成、キーワードに少なくとも部分的に基づいて第１のクエリタイプの第１の結果を取得、第２の取得特徴ベクトルに少なくとも部分的に基づいて第２のクエリタイプの結果を取得し、第１の結果から少なくとも１つの結果と第２の結果から少なくとも１つの結果を提示する命令を送信する。
【０１３６】
オプションとして、命令はさらに、計算システムに、画像を少なくとも複数の画像セグメントにセグメント化し、複数の画像セグメントのそれぞれを処理して、画像に表されるオブジェクトを判定させることができる。任意選択で、第１の結果は、キーワードと保存された画像に関連付けられたラベルとの比較に少なくとも部分的に基づいて取得されてもよい。任意選択で、第２の結果は、特徴ベクトルと、保存された画像に表されるオブジェクトを表す保存された特徴ベクトルとの比較に少なくとも部分的に基づいて取得され得る。オプションで、第１の結果にはオブジェクトを説明するコンテンツが含まれ、第２の結果にはオブジェクトに視覚的に類似したコンテンツが含まれる。
【０１３７】
本明細書で開示される概念は、たとえば、汎用計算システムおよび分散計算環境を含む、いくつかの異なる装置およびコンピュータシステム内で適用され得る。
【０１３８】
本開示の上記態様は、例示的であることを意図している。それらは、開示の原則と適用を説明するために選択されたものであり、網羅的であったり、開示を制限したりするものではない。開示された態様の多くの修正および変形は、当業者には明らかであり得る。当業者は、本明細書に記載の構成要素およびプロセスステップは、他の構成要素またはステップ、または構成要素またはステップの組み合わせと交換可能であり、それでも本開示の利益および利点を達成できることを認識するはずである。さらに、本明細書に開示された特定の詳細およびステップの一部またはすべてがなくても本開示を実施できることは当業者には明らかなはずである。
【０１３９】
開示されたシステムの態様は、コンピュータ方法として、またはメモリ装置または非一時的なコンピュータ可読記憶媒体などの製品として実装され得る。コンピュータ可読記憶媒体は、コンピュータによって読み取り可能であってもよく、コンピュータまたは他の装置に本開示で説明されるプロセスを実行させるための命令を含んでもよい。コンピュータ可読記憶媒体は、揮発性コンピュータメモリ、不揮発性コンピュータメモリ、ハードドライブ、ソリッドステートメモリ、フラッシュドライブ、リムーバブルディスクおよび／または他の媒体によって実装され得る。さらに、１つまたはそれ以上のモジュールおよびエンジンの構成要素は、ファームウェアまたはハードウェアで実装できる。
【０１４０】
特に明記されていない限り、「ａ」や「ａｎ」などの文字は、一般に１つまたはそれ以上の説明された項目を含むと解釈されるべきである。したがって、「に構成された装置」などのフレーズは、列挙された１つまたはそれ以上の装置を含むことを意図している。そのような１つまたはそれ以上の列挙された装置は、述べられた列挙を実行するように集合的に構成することもできる。たとえば、「列挙Ａ、Ｂ、およびＣを実行するように構成されたプロセッサ」には、列挙ＢおよびＣを実行するように構成された第２のプロセッサと連携して動作する列挙Ａを実行するように構成された第１プロセッサを含めることができる。
【０１４１】
本明細書で使用される用語「約」、「およそ」、「概ね」、「ほぼ」、「類似する」、または「実質的に」などの本明細書で使用される程度の言語は、記載に近い値、量、または特性を表す目的の機能を実行するか、目的の結果を達成する値、量、または特性を表す。たとえば、「約」、「およそ」、「概ね」、「ほぼ」、「同様の」、または「実質的に」という用語は、記載された量の１０％未満、５％未満、１％未満、０．１％未満、０．０１％未満の量を表し得る。
【０１４２】
主題は、構造的特徴および／または方法論的行為に特有の言語で説明されているが、添付の特許請求の範囲で定義される主題は、説明された特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示されている。
【図１Ａ】
2020534597.tif 000015
【図１Ｂ】
2020534597.tif 000016
【図２】
2020534597.tif 000017
【図３】
2020534597.tif 000018
【図４】
2020534597.tif 000019
【図５】
2020534597.tif 000020
【図６Ａ】
2020534597.tif 000021
【図６Ｂ】
2020534597.tif 000022
【図７】
2020534597.tif 000023
【図８Ａ】
2020534597.tif 000024
【図８Ｂ】
2020534597.tif 000025
【図８Ｃ】
2020534597.tif 000026
【図９】
2020534597.tif 000027
【図１０Ａ】
2020534597.tif 000028
【図１０Ｂ】
2020534597.tif 000029
【図１１】
2020534597.tif 000030
【図１２】
2020534597.tif 000031
【図１３】
2020534597.tif 000032
【国際調査報告】
2020534597.tif 000033
2020534597.tif 000034
2020534597.tif 000035