(57)【特許請求の範囲】
【請求項１】
クエリ画像を受け取るステップと、
前記クエリ画像が認識可能パターンを含む確率に基づいて、前記パターンに関連付けられた、複数の画像検索コンポーネントのうちの特定の画像検索コンポーネントに前記クエリ画像を提供するステップであって、前記クエリ画像がサブミットされる各画像検索コンポーネントについて、前記画像検索コンポーネントは、前記画像検索コンポーネントに固有の画像ベースの検索プロセスに前記クエリ画像の少なくともそれぞれの部分を適用することにより、前記画像検索コンポーネントに関連付けられたリソース群の中から、前記クエリ画像に一致するゼロ以上のリソースを識別するように構成される、ステップと、
前記複数の画像検索コンポーネントに前記クエリ画像を提供するステップに応じて、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別するリソースのセットを取得するステップと、
前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのセットのサブセットを選択するステップと、
出力のため、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのサブセットのうちの１つまたは複数のリソースを識別するデータを提供するステップと、
を含む、コンピュータによって実施される方法。
【請求項２】
前記複数の画像検索コンポーネントに前記クエリ画像を提供するステップは、
前記クエリ画像の１つまたは複数の副部分を識別するステップと、
前記１つまたは複数の副部分のうちの各副部分について、前記複数の検索コンポーネントのうちのそれぞれの画像検索コンポーネントに前記クエリ画像の前記副部分を提供するステップと、
をさらに含む、請求項１に記載のコンピュータによって実施される方法。
【請求項３】
前記複数の検索コンポーネントのうちの前記それぞれの画像検索コンポーネントに前記クエリ画像の前記副部分を提供するステップは、前記複数の検索コンポーネントのうちの異なる画像検索コンポーネントに前記クエリ画像の各副部分を提供するステップをさらに含む、請求項２に記載のコンピュータによって実施される方法。
【請求項４】
前記クエリ画像の１つまたは複数のテキスト要素を識別するステップと、
前記クエリ画像の前記１つまたは複数のテキスト要素を用語クエリ検索コンポーネントに提供するステップと、
前記クエリ画像の前記１つまたは複数のテキスト要素を前記用語クエリ検索コンポーネントに提供するステップに応じて、前記クエリ画像の前記１つまたは複数のテキスト要素に基づく、前記用語クエリ検索コンポーネントからの１つまたは複数の結果を取得するステップと、
前記用語クエリ検索コンポーネントからの前記１つまたは複数の結果を用いて、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのサブセットのうちの前記１つまたは複数のリソースを識別する前記データを増補するステップと、
をさらに含む、請求項１に記載のコンピュータによって実施される方法。
【請求項５】
前記クエリ画像が認識可能パターンを含む確率を識別するステップと、
前記クエリ画像が前記認識可能パターンを含む前記確率を閾値と比較するステップと、
前記クエリ画像が前記認識可能パターンを含む前記確率を前記閾値と比較するステップに基づいて、前記確率が前記閾値より大きいと判断するステップと、
前記確率が前記閾値より大きいと判断するステップに基づいて、前記パターンに関連付けられた、前記複数の画像検索コンポーネントのうちの特定の画像検索コンポーネントに前記クエリ画像を提供するステップと、
をさらに含む、請求項１に記載のコンピュータによって実施される方法。
【請求項６】
前記認識可能パターンは特定のタイプのパターンであり、前記方法は、
前記クエリ画像を提供するユーザに前記特定のタイプのパターンを提供するステップと、
前記ユーザから、前記クエリ画像が前記特定のタイプのパターンに関連付けられているとの表示を受け取るステップと、
前記クエリ画像が前記特定のタイプのパターンに関連付けられているとの前記表示を受け取るステップに基づいて、前記特定のタイプに関連付けられた、前記複数の画像検索コンポーネントのうちの前記特定の画像検索コンポーネントに前記クエリ画像を提供するステップと、
をさらに含む、請求項５に記載のコンピュータによって実施される方法。
【請求項７】
前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのセットの前記サブセットを選択するステップは、
ユーザから、前記クエリ画像が特定のタイプの画像に関連付けられるとの表示を受け取るステップと、
前記特定のタイプの画像に関連付けられたリソースのみを含むように、前記リソースのサブセットをフィルタにかけるステップと、
をさらに含む、請求項１に記載のコンピュータによって実施される方法。
【請求項８】
１つまたは複数のコンピュータと、
１つまたは複数の記憶装置であって、前記１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、
クエリ画像を受け取ることと、
前記クエリ画像が認識可能パターンを含む確率に基づいて、前記パターンに関連付けられた、複数の画像検索コンポーネントのうちの特定の画像検索コンポーネントに前記クエリ画像を提供することであって、前記クエリ画像がサブミットされる各画像検索コンポーネントについて、前記画像検索コンポーネントは、前記画像検索コンポーネントに固有の画像ベースの検索プロセスに前記クエリ画像の少なくともそれぞれの部分を適用することにより、前記画像検索コンポーネントに関連付けられたリソース群の中から、前記クエリ画像に一致するゼロ以上のリソースを識別するように構成される、ことと、
前記複数の画像検索コンポーネントに前記クエリ画像を提供することに応じて、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別するリソースのセットを取得することと、
前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのセットのサブセットを選択することと、
出力のため、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのサブセットのうちの１つまたは複数のリソースを識別するデータを提供することと、
を含む動作を行わせるように動作可能な命令を記憶する１つまたは複数の記憶装置と、
を備えるシステム。
【請求項９】
前記複数の画像検索コンポーネントに前記クエリ画像を提供することは、
前記クエリ画像の１つまたは複数の副部分を識別することと、
前記１つまたは複数の副部分のうちの各副部分について、前記複数の検索コンポーネントのうちのそれぞれの画像検索コンポーネントに前記クエリ画像の前記副部分を提供することと、
をさらに含む、請求項８に記載のシステム。
【請求項１０】
前記複数の検索コンポーネントのうちの前記それぞれの画像検索コンポーネントに前記クエリ画像の前記副部分を提供することは、前記複数の検索コンポーネントのうちの異なる画像検索コンポーネントに前記クエリ画像の各副部分を提供することをさらに含む、請求項９に記載のシステム。
【請求項１１】
前記動作は、
前記クエリ画像の１つまたは複数のテキスト要素を識別することと、
前記クエリ画像の前記１つまたは複数のテキスト要素を用語クエリ検索コンポーネントに提供することと、
前記クエリ画像の前記１つまたは複数のテキスト要素を前記用語クエリ検索コンポーネントに提供することに応じて、前記クエリ画像の前記１つまたは複数のテキスト要素に基づく、前記用語クエリ検索コンポーネントからの１つまたは複数の結果を取得することと、
前記用語クエリ検索コンポーネントからの前記１つまたは複数の結果を用いて、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのサブセットのうちの前記１つまたは複数のリソースを識別する前記データを増補することと、
をさらに含む、請求項８に記載のシステム。
【請求項１２】
前記動作は、
前記クエリ画像が認識可能パターンを含む確率を識別することと、
前記クエリ画像が前記認識可能パターンを含む前記確率を閾値と比較することと、
前記クエリ画像が前記認識可能パターンを含む前記確率を前記閾値と比較することに基づいて、前記確率が前記閾値より大きいと判断することと、
前記確率が前記閾値より大きいと判断することに基づいて、前記パターンに関連付けられた、前記複数の画像検索コンポーネントのうちの特定の画像検索コンポーネントに前記クエリ画像を提供することと、
をさらに含む、請求項８に記載のシステム。
【請求項１３】
前記認識可能パターンは特定のタイプのパターンであり、前記動作は、
前記クエリ画像を提供するユーザに前記特定のタイプのパターンを提供することと、
前記ユーザから、前記クエリ画像が前記特定のタイプのパターンに関連付けられているとの表示を受け取ることと、
前記クエリ画像が前記特定のタイプのパターンに関連付けられているとの前記表示を受け取ることに基づいて、前記特定のタイプに関連付けられた、前記複数の画像検索コンポーネントのうちの前記特定の画像検索コンポーネントに前記クエリ画像を提供することと、
をさらに含む、請求項１２に記載のシステム。
【請求項１４】
１つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを記憶するコンピュータ可読媒体であって、前記命令は、かかる実行の際、前記１つまたは複数のコンピュータに、
クエリ画像を受け取ることと、
前記クエリ画像が認識可能パターンを含む確率に基づいて、前記パターンに関連付けられた、複数の画像検索コンポーネントのうちの特定の画像検索コンポーネントに前記クエリ画像を提供するすることであって、前記クエリ画像がサブミットされる各画像検索コンポーネントについて、前記画像検索コンポーネントは、前記画像検索コンポーネントに固有の画像ベースの検索プロセスに前記クエリ画像の少なくともそれぞれの部分を適用することにより、前記画像検索コンポーネントに関連付けられたリソース群の中から、前記クエリ画像に一致するゼロ以上のリソースを識別するように構成される、ことと、
前記複数の画像検索コンポーネントに前記クエリ画像を提供することに応じて、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別するリソースのセットを取得することと、
前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのセットのサブセットを選択することと、
出力のため、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのサブセットのうちの１つまたは複数のリソースを識別するデータを提供することと、
を含む動作を行わせる、コンピュータ可読媒体。
【請求項１５】
前記複数の画像検索コンポーネントに前記クエリ画像を提供することは、
前記クエリ画像の１つまたは複数の副部分を識別することと、
前記１つまたは複数の副部分のうちの各副部分について、前記複数の検索コンポーネントのうちのそれぞれの画像検索コンポーネントに前記クエリ画像の前記副部分を提供することと、
をさらに含む、請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記複数の検索コンポーネントのうちの前記それぞれの画像検索コンポーネントに前記クエリ画像の前記副部分を提供することは、前記複数の検索コンポーネントのうちの異なる画像検索コンポーネントに前記クエリ画像の各副部分を提供することをさらに含む、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記動作は、
前記クエリ画像の１つまたは複数のテキスト要素を識別することと、
前記クエリ画像の前記１つまたは複数のテキスト要素を用語クエリ検索コンポーネント
に提供することと、
前記クエリ画像の前記１つまたは複数のテキスト要素を前記用語クエリ検索コンポーネントに提供することに応じて、前記クエリ画像の前記１つまたは複数のテキスト要素に基づく、前記用語クエリ検索コンポーネントからの１つまたは複数の結果を取得することと、
前記用語クエリ検索コンポーネントからの前記１つまたは複数の結果を用いて、前記クエリ画像に一致すると前記複数の画像検索コンポーネントが識別する前記リソースのサブセットのうちの前記１つまたは複数のリソースを識別する前記データを増補することと、
をさらに含む、請求項１４に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する諸実施形態は、一般に、視覚クエリを処理するための複数の並列検索システムを包含するサーバシステムアーキテクチャに関する。
【背景技術】
【０００２】
ユーザが語または語句を検索エンジンに入力し、様々な結果を受け取るテキストベースの検索または用語ベースの検索は、検索を行うための有用なツールである。しかし用語ベースのクエリでは、ユーザが関連語を入力できることが必要である。ときとして、ユーザは画像に関する情報を知りたい場合がある。例えば、ユーザは写真の中の人物の名前を知りたい場合があり、または絵の中の花や鳥の名前を知りたいこともある。したがって、視覚クエリを受け取り、検索結果を提供することができるシステムが望ましい。
【発明の概要】
【課題を解決するための手段】
【０００３】
一部の実施形態によれば、サーバシステムにおいて視覚クエリを処理する、コンピュータによって実施される方法がある。クライアントシステムから視覚クエリを受け取る。その視覚クエリを、同時処理用の複数の並列検索システムに送ることによって処理する。その複数の検索システムのそれぞれは、複数の視覚クエリ検索処理のうちの互いに異なる視覚クエリ検索処理を実施する。その複数の視覚クエリ検索処理には、少なくとも、光学的文字認識（ＯＣＲ）、顔認識、ならびにＯＣＲおよび顔認識以外の第１の画像によるクエリ（query-by-image）処理が含まれる。複数の並列検索システムの１つまたは複数から複数の検索結果を受け取る。その複数の検索結果の少なくとも１つをクライアントシステムに送る。
【０００４】
一部の実施形態では、この方法は、受け取った検索結果の少なくとも２つが所定の基準を満たすとき、所定の基準を満たす受け取った検索結果をランク付けし、ランク付けした検索結果のうちの少なくとも１つの検索結果をクライアントシステムに送ることをさらに含む。
【０００５】
一部の実施形態では、第１の画像によるクエリ処理は、製品認識、バーコード認識、オブジェクトもしくはオブジェクトカテゴリ認識、固有表現認識、または色認識である。
【０００６】
一部の実施形態では、視覚クエリは、写真、スクリーンショット、スキャン画像、または映像フレームである。クライアントシステムは、モバイル機器、デスクトップ装置、または他の装置とすることができる。
【０００７】
一部の実施形態では、視覚クエリは、検索アプリケーション、ブラウザアプリケーション用の検索エンジンプラグイン、ブラウザアプリケーション用の検索エンジン拡張機能など、クライアントシステムが実行するクライアントアプリケーションから受け取られる。一部の実施形態では、視覚クエリはクライアントシステムが実行するコンテンツオーサリングアプリケーションから受け取られる。
【０００８】
視覚クエリがテキスト要素および非テキスト要素を含む画像である場合、一部の実施形態では、検索結果はテキスト要素については光学的文字認識結果を含み、非テキスト要素については少なくとも１つの画像一致結果を含む。
【０００９】
一部の実施形態では、視覚クエリがテキスト要素および非テキスト要素を含む画像である場合、検索結果は、光学的文字認識処理によってもたらされる検索結果へのリンクを有する、テキスト要素についての第１の視覚的識別子と、画像一致処理によってもたらされる検索結果へのリンクを有する、非テキスト要素についての第２の視覚的識別子とを含む対話型結果ドキュメントを含む。
【００１０】
一部の実施形態では、この方法は、複数の検索結果のうちの少なくとも２つを複合検索結果へと組み合わせることをさらに含む。
【００１１】
一部の実施形態によれば、視覚クエリを処理するための検索エンジンシステムが提供される。このシステムは、プログラムを実行するための１個または複数個の中央処理装置と、その１個または複数個の中央処理装置が実行するための１つまたは複数のプログラムを記憶するメモリとを含む。その１つまたは複数のプログラムは、以下のことを実行するための命令を含む。クライアントシステムから視覚クエリを受け取る。その視覚クエリを、同時処理用の複数の並列検索システムに送ることによって処理する。その複数の検索システムのそれぞれは、複数の視覚クエリ検索処理のうちの互いに異なる視覚クエリ検索処理を実施する。その複数の視覚クエリ検索処理には、少なくとも光学的文字認識（ＯＣＲ）、顔認識、ならびにＯＣＲおよび顔認識以外の第１の画像によるクエリ処理が含まれる。複数の並列検索システムの１つまたは複数から複数の検索結果を受け取る。その複数の検索結果の少なくとも１つをクライアントシステムに送る。そのようなシステムは、上記で論じた追加のオプションを実行するためのプログラム命令を含むこともできる。
【００１２】
一部の実施形態によれば、視覚クエリを処理するためのコンピュータ可読記憶媒体システムが提供される。このコンピュータ可読記憶媒体は、コンピュータが実行するように構成される１つまたは複数のプログラムを記憶し、その１つまたは複数のプログラムは以下のことを実行するための命令を含む。クライアントシステムから視覚クエリを受け取る。その視覚クエリを、同時処理用の複数の並列検索システムに送ることによって処理する。その複数の検索システムのそれぞれは、複数の視覚クエリ検索処理のうちの互いに異なる視覚クエリ検索処理を実施する。その複数の視覚クエリ検索処理には、少なくとも光学的文字認識（ＯＣＲ）、顔認識、ならびにＯＣＲおよび顔認識以外の第１の画像によるクエリ処理が含まれる。複数の並列検索システムの１つまたは複数から複数の検索結果を受け取る。その複数の検索結果の少なくとも１つをクライアントシステムに送る。そのようなコンピュータ可読記憶媒体は、上記で論じた追加のオプションを実行するためのプログラム命令を含んでもよい。
【００１３】
図面全体を通して、同様の参照番号は一致する部分を指す。
【図面の簡単な説明】
【００１４】
【図１】視覚クエリサーバシステムを含むコンピュータネットワークを示すブロック図である。
【図２】一部の実施形態による、視覚クエリに応答するプロセスを示すフローチャートである。
【図３】一部の実施形態による、対話型結果ドキュメントにより視覚クエリに応答するプロセスを示すフローチャートである。
【図４】一部の実施形態による、クライアントと視覚クエリサーバシステムとの間の通信を示すフローチャートである。
【図５】一部の実施形態によるクライアントシステムを示すブロック図である。
【図６】一部の実施形態によるフロントエンド視覚クエリ処理サーバシステムを示すブロック図である。
【図７】一部の実施形態による、視覚クエリを処理するために利用する並列検索システムの汎用システムを示すブロック図である。
【図８】一部の実施形態による、視覚クエリを処理するために利用するＯＣＲ検索システムを示すブロック図である。
【図９】一部の実施形態による、視覚クエリを処理するために利用する顔認識検索システムを示すブロック図である。
【図１０】一部の実施形態による、視覚クエリを処理するために利用する画像−用語検索システムを示すブロック図である。
【図１１】一部の実施形態による、例示的な視覚クエリのスクリーンショットを有するクライアントシステムを示す図である。
【図１２Ａ】一部の実施形態による、境界ボックスを伴う対話型結果ドキュメントのスクリーンショットを有するクライアントシステムを示す図である。
【図１２Ｂ】一部の実施形態による、境界ボックスを伴う対話型結果ドキュメントのスクリーンショットを有するクライアントシステムを示す図である。
【図１３】一部の実施形態による、タイプごとにコード化された対話型結果ドキュメントのスクリーンショットを有するクライアントシステムを示す図である。
【図１４】一部の実施形態による、ラベルを伴う対話型結果ドキュメントのスクリーンショットを有するクライアントシステムを示す図である。
【図１５】一部の実施形態による、結果一覧と同時に表示される対話型結果ドキュメントおよび視覚クエリのスクリーンショットを示す図である。
【発明を実施するための形態】
【００１５】
次に、その例を添付図面に示す諸実施形態について詳しく言及する。以下の詳細な説明では、本発明の完全な理解を与えるために数多くの具体的詳細を記載する。しかし、本発明はそれらの具体的詳細なしに実施され得ることが当業者には明らかであろう。他の例では、実施形態の諸側面を無用に不明瞭にしないように、よく知られている方法、手法、コンポーネント、回路、およびネットワークについて詳しくは記載していない。
【００１６】
本明細書では様々な要素を説明するために第１の、第２のなどの語を使用する場合があるが、これらの要素はこれらの語によって限定されるべきではないことも理解されたい。これらの語は、単にある要素を別の要素と区別するために使用する。例えば、本発明の範囲から逸脱せずに第１の接点を第２の接点と称することができ、同様に第２の接点を第１の接点と称することもできる。第１の接点および第２の接点はいずれも接点だが、同じ接点ではない、
【００１７】
本明細書の本発明の説明の中で使用する用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定するように意図されていない。本発明の説明および特許請求の範囲の中で使用するとき、単数形「ａ」、「an」および「the」は、特に明確な指示がない限り複数形も含むことを意図する。本明細書で使用するとき、用語「および／または」は、列挙する関連項目の１つまたは複数の任意のおよびあり得るすべての組合せを指し、包含することも理解されたい。さらに本明細書で使用するとき、用語「備える(comprises)」および／または「備えている(comprising)」は、述べた特徴、完全体、ステップ、動作、要素、および／またはコンポーネントが存在することを規定するが、１つもしくは複数の他の特徴、完全体、ステップ、動作、要素、コンポーネント、および／またはそれらのグループが存在すること、もしくは追加されることを除外しないことも理解されたい。
【００１８】
本明細書で使用するとき、用語「もし(if)」は、文脈に応じて「場合(when)」もしくは「とき(upon)」、または「決定することに応答して(in response to determining)」もしくは「検出することに応答して(in response to detecting)」を意味するものと解釈されてもよい。同様に、語句「決定する場合(if it is determined)」または「検出する場合(if it is detected)」は、文脈に応じて「決定するとき(upon determining)」もしくは「決定することに応答して(in response to determining)」、または「（述べた条件または事象を）検出するとき(upon detecting)」もしくは「（述べた条件または事象を）検出することに応答して(in response to detecting)」を意味するものと解釈されてもよい。
【００１９】
図１は、一部の実施形態による視覚クエリサーバシステムを含むコンピュータネットワークを示すブロック図である。コンピュータネットワーク１００は、１つまたは複数のクライアントシステム１０２および視覚クエリサーバシステム１０６を含む。これらのコンポーネントを１つまたは複数の通信ネットワーク１０４が相互接続する。通信ネットワーク１０４は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、無線ネットワーク、有線ネットワーク、インターネット、またはそうしたネットワークの組合せを含む、様々なネットワークのうちの任意のものとしてもよい。
【００２０】
クライアントシステム１０２は、視覚クエリ（例えば図１１の視覚クエリ１１０２）を受け取るためにクライアントシステムが実行するクライアントアプリケーション１０８を含む。視覚クエリとは、検索エンジンまたは検索システムにクエリとしてサブミットされる画像である。視覚クエリの非限定的な例には、写真、スキャンドキュメントおよびスキャン画像、ならびに絵図が含まれる。一部の実施形態では、クライアントアプリケーション１０８は、検索アプリケーション、ブラウザアプリケーション用の検索エンジンプラグイン、およびブラウザアプリケーション用の検索エンジン拡張機能からなる組から選択される。一部の実施形態では、クライアントアプリケーション１０８は、視覚クエリとして使用する任意形式の画像をユーザが検索ボックスの中にドラッグアンドドロップすることを可能にする「手当たり次第の(omnivorous)」検索ボックスである。
【００２１】
クライアントシステム１０２は、視覚クエリサーバシステム１０６にクエリを送り、視覚クエリサーバシステム１０６からデータを受け取る。クライアントシステム１０２は、視覚クエリサーバシステム１０６と通信することができる任意のコンピュータまたは他の装置としてもよい。非限定的な例には、デスクトップコンピュータおよびノートブックコンピュータ、メインフレームコンピュータ、サーバコンピュータ、携帯電話や携帯情報端末などのモバイル機器、ネットワーク端末、およびセットトップボックスが含まれる。
【００２２】
視覚クエリサーバシステム１０６は、フロントエンド視覚クエリ処理サーバ１１０を含む。フロントエンドサーバ１１０はクライアント１０２から視覚クエリを受け取り、その視覚クエリを同時処理用の複数の並列検索システム１１２に送る。検索システム１１２は互いに異なる視覚クエリ検索処理をそれぞれ実施し、自らの別個の検索処理により視覚クエリを処理するために、必要に応じて自らの対応するデータベース１１４にアクセスする。例えば顔認識検索システム１１２−Ａは、画像クエリに対する顔の一致を探すために顔画像データベース１１４−Ａにアクセスする。図９に関してより詳細に説明するように、視覚クエリが顔を含む場合、顔認識検索システム１１２−Ａは顔画像データベース１１４−Ａから１つまたは複数の検索結果（例えば名前、一致する顔等）を返す。別の例では、光学的文字認識（ＯＣＲ）検索システム１１２−Ｂが、視覚クエリ内の任意の認識可能テキストを、１つまたは複数の検索結果として返すためのテキストへと変換する。光学的文字認識（ＯＣＲ）検索システム１１２−Ｂでは、図８に関してより詳細に説明するように、特定のフォントまたはテキストパターンを認識するためにＯＣＲデータベース１１４−Ｂにアクセスすることができる。
【００２３】
任意の数の並列検索システム１１２を使用してもよい。一部の例には、顔認識検索システム１１２−Ａ、ＯＣＲ検索システム１１２−Ｂ、（オブジェクトまたはオブジェクトカテゴリを認識し得る）画像−用語検索システム１１２−Ｃ、（本の表紙やＣＤなどの２Ｄ画像を認識するように構成してもよく、家具などの３Ｄ画像を認識するように構成してもよい）製品認識検索システム、（１Ｄおよび２Ｄ形式のバーコードを認識する）バーコード認識検索システム、固有表現認識検索システム、（エッフェル塔のような特定の有名な名所を認識するように構成することができ、ビルボードなど、特定の画像のコーパスを認識するように構成してもよい）ランドマーク認識、クライアントシステム１０２内のＧＰＳ受信機または携帯電話網が提供する地理位置情報によって支援される場所認識、色認識検索システム、および（視覚クエリに似た画像を検索して特定する）類似画像検索システムが含まれる。図１のシステム１１２−Ｎによって示す、さらなる検索システムを追加の並列検索システムとして加えることができる。ＯＣＲ検索システムを除くすべての検索システムを、画像一致処理を実行する検索システムとして本明細書では集合的に定義する。ＯＣＲ検索システムを含むすべての検索システムを、画像によるクエリ検索システムと集合的に呼ぶ。一部の実施形態では、視覚クエリサーバシステム１０６が、顔認識検索システム１１２−Ａ、ＯＣＲ検索システム１１２−Ｂ、および少なくとも１つの他の画像によるクエリ検索システム１１２を含む。
【００２４】
並列検索システム１１２は視覚検索クエリを個々に処理し、自らの結果をフロントエンドサーバシステム１１０に返す。一部の実施形態では、フロントエンドサーバ１００は、結果を複合ドキュメントへと集約すること、表示するための結果の一部を選択すること、および結果をランク付けすることのうちの１つまたは複数など、図６に関してより詳細に説明するように検索結果に対して１つまたは複数の解析を行ってもよい。フロントエンドサーバ１１０は、検索結果をクライアントシステム１０２に伝える。
【００２５】
クライアントシステム１０２は、１つまたは複数の検索結果をユーザに提供し得る。それらの結果はディスプレイ上に、音声スピーカにより、またはユーザに情報を伝えるために使用する他の任意の手段によって提供することができる。ユーザは、様々な方法で検索結果と対話してもよい。一部の実施形態では、ユーザの選択、注釈、および検索結果との他の対話を視覚クエリサーバシステム１０６に伝送し、視覚クエリとともにクエリ／注釈データベース１１６内に記録する。クエリ／注釈データベース内の情報は、視覚クエリの結果を改善するために使用することができる。一部の実施形態では、クエリ／注釈データベース１１６からの情報を並列検索システム１１２に周期的にプッシュし、並列検索システム１１２はその情報の任意の関連部分を個々のデータベース１１４内に取り入れる。
【００２６】
コンピュータネットワーク１００は、用語クエリに応答して検索を行うための用語クエリサーバシステム１１８を場合により含んでもよい。用語クエリとは、画像を含む視覚クエリとは対照的に、１つまたは複数の用語を含むクエリである。用語クエリサーバシステム１１８は、視覚クエリサーバシステム１０６内の様々な検索エンジンによってもたらされる情報を補足する検索結果を生成するために使用してもよい。用語クエリサーバシステム１１８から返される結果は、任意の形式を含み得る。用語クエリサーバシステム１１８は、テキストドキュメント、画像、映像等を含み得る。図１では用語クエリサーバシステム１１８を別個のシステムとして図示するが、場合により視覚クエリサーバシステム１０６が用語クエリサーバシステム１１８を含んでもよい。
【００２７】
視覚クエリサーバシステム１０６の動作に関するさらなる情報は、図２〜４のフローチャートに関して以下に示す。
【００２８】
図２は、本発明の特定の実施形態による、視覚クエリに応答するための視覚クエリサーバシステムの方法を示すフローチャートである。図２に示す操作のそれぞれは、コンピュータメモリまたはコンピュータ可読記憶媒体の中に記憶される命令に対応し得る。
【００２９】
視覚クエリサーバシステムが、クライアントシステムから視覚クエリを受け取る（２０２）。図１に関して説明したように、このクライアントシステムは、例えばデスクトップコンピューティング装置、モバイル機器、または別の同様の装置としてもよい（２０４）。図１１に、クライアントシステムの一例上の視覚クエリの一例を示す。
【００３０】
視覚クエリは、任意の適切な形式の画像ドキュメントである。例えば視覚クエリは、写真、スクリーンショット、スキャン画像、または映像の複数のフレームのうちの１フレームもしくはシーケンスとすることができる（２０６）。一部の実施形態では、視覚クエリはコンテンツオーサリングプログラム（図５、７３６）が作成する絵図である。そのため、一部の実施形態ではユーザが視覚クエリを「描く」のに対し、他の実施形態ではユーザが視覚クエリをスキャンしまたは撮影する。一部の視覚クエリは、Acrobat、写真編集プログラム、描画プログラム、画像編集プログラムなどの画像生成アプリケーションを使用して作成される。例えば視覚クエリは、ユーザが自身の携帯電話上で友人の写真を撮り、その写真を視覚クエリとしてサーバシステムにサブミットすることから生じることができる。視覚クエリは、ユーザが雑誌のページをスキャンし、またはデスクトップコンピュータ上でウェブページのスクリーンショットをとり、そのスキャンまたはスクリーンショットを視覚クエリとしてサーバシステムにサブミットすることから生じることもできる。一部の実施形態では、視覚クエリはブラウザアプリケーションの検索エンジン拡張機能により、ブラウザアプリケーション用のプラグインにより、またはクライアントシステム１０２が実行する検索アプリケーションによりサーバシステム１０６にサブミットされる。視覚クエリは、クライアントシステムが遠隔設置されたサーバに伝送可能な画像をサポートするか、または生成する、（クライアントシステムが実行する）他のアプリケーションプログラムによってサブミットしてもよい。
【００３１】
視覚クエリは、テキスト要素と非テキスト要素との組合せとすることができる（２０８）。例えばクエリは、道路標識の隣に立っている人物など、画像およびテキストを含む雑誌ページのスキャンとすることができる。視覚クエリは、クライアントシステム内に埋め込まれるカメラによって撮影されたか、またはクライアントシステムによって、スキャンもしくは他の方法で受け取られたドキュメントからの人物の顔の画像を含むことができる。視覚クエリは、テキストだけを含むドキュメントのスキャンとすることもできる。視覚クエリは、森の中にいる数羽の鳥、人物とオブジェクト（例えば車、公園のベンチ等）、人物と動物（例えばペット、家畜、蝶等）など、数多くの別個のサブジェクトの画像とすることもできる。視覚クエリは、２つ以上の別個の要素を有してもよい。例えば視覚クエリは、バーコードと、製品の画像または製品パッケージ上の製品名とを含むことができる。例えば視覚クエリは、本のタイトル、表紙絵、およびバーコードを含む本の表紙の写真とすることができる。以下により詳細に論じるように、一部の例では１つの視覚クエリが、その視覚クエリの様々な部分に対応する２つ以上の別個の検索結果をもたらす。
【００３２】
サーバシステムは、以下のように視覚クエリを処理する。フロントエンドサーバシステムが、同時処理用の複数の並列検索システムに視覚クエリを送る（２１０）。各検索システムは互いに異なる視覚クエリ検索処理を実施し、すなわち個々の検索システムは独自の処理スキームにより視覚クエリを処理する。
【００３３】
一部の実施形態では、処理するために視覚クエリが送られる検索システムの１つが光学的文字認識（ＯＣＲ）検索システムである。一部の実施形態では、処理するために視覚クエリが送られる検索システムの１つが顔認識検索システムである。一部の実施形態では、互いに異なる視覚クエリ検索処理を実行する複数の検索システムは、少なくとも光学的文字認識（ＯＣＲ）、顔認識、ならびにＯＣＲおよび顔認識以外の別の画像によるクエリ処理を含む（２１２）。他の画像によるクエリ処理は、これだけに限定されないが、製品認識、バーコード認識、オブジェクトまたはオブジェクトカテゴリ認識、固有表現認識、および色認識が含まれる１組の処理から選択される（２１２）。
【００３４】
一部の実施形態では、ＯＣＲ検索システムの後処理として固有表現認識が行われ、有名な人物、位置、オブジェクトなどがあるかどうかＯＣＲのテキスト結果を解析し、固有表現であると特定した用語を用語クエリサーバシステム（図１、１１８）内で検索する。他の実施形態では、画像−用語検索システムが、有名な名所、ロゴ、人物、アルバムカバー、商標等の画像を認識する。他の実施形態では、画像−用語検索システムとは別に、独特の固有表現の画像によるクエリ処理を利用する。オブジェクトまたはオブジェクトカテゴリ認識システムは、「車」のような総称的な結果の種類を認識する。一部の実施形態では、このシステムは製品ブランド、特定の製品モデルなども認識し、「ポルシェ」のようなより具体的な説明を提供する。検索システムの一部は、特別なユーザに固有の検索システムとすることができる。例えば、色認識および顔認識の特定のバージョンを、目の不自由な人が使用する専用の検索システムとすることができる。
【００３５】
フロントエンドサーバシステムが、並列検索システムから結果を受け取る（２１４）。一部の実施形態では、それらの結果に検索スコアが付随する。一部の視覚クエリでは、検索システムの一部は関連する結果を見出さない。例えば視覚クエリが花の写真であった場合、顔認識検索システムおよびバーコード検索システムは関連する結果を一切見出さない。一部の実施形態では、関連する結果が見出されない場合、ヌルまたはゼロの検索スコアをその検索システムから受け取る（２１６）。一部の実施形態では、あらかじめ定めた期間（例えば０．２秒、０．５秒、１秒、２秒、または５秒）を過ぎてもフロントエンドサーバが検索システムから結果を受け取らない場合、フロントエンドサーバは、あたかもそのタイムアウトしたサーバがヌルの検索スコアを生成したかのように受け取られる結果を処理し、他の検索システムから受け取る結果を処理する。
【００３６】
場合により、受け取った検索結果の少なくとも２つが所定の基準を満たすとき、それらの検索結果をランク付けする（２１８）。一部の実施形態では、所定の基準の１つが無効な結果を除去する。所定の基準は、結果が無効ではないことである。一部の実施形態では、所定の基準の１つが、所定の最小スコアを下回る（例えば適合率に関する）数値スコアを有する結果を除去する。場合により、複数の検索結果をフィルタする（２２０）。一部の実施形態では、結果の総数が定義済み閾値を上回る場合にのみ結果をフィルタする。一部の実施形態ではすべての結果をランク付けするが、所定の最小スコアを下回る結果は除外する。一部の視覚クエリでは、結果のコンテンツをフィルタする。例えば、結果の一部が個人情報または個人が保護する情報を含む場合、それらの結果をフィルタにかけて除去する。
【００３７】
場合により、視覚クエリサーバシステムは複合検索結果を作成する（２２２）。複合検索結果を作成することの一実施形態は、図３に関して説明するように、対話型結果ドキュメント内に複数の検索システムの結果を埋め込む場合である。用語クエリサーバシステム（図１、１１８）は、用語検索の結果を用いて並列検索システムのうちの１つからの結果を増補してもよく、その追加の結果はドキュメントもしくは情報源へのリンク、または視覚クエリに関連し得る追加情報を含むテキストおよび／もしくは画像である。したがって、例えば複合検索結果は、ＯＣＲの結果とＯＣＲドキュメント内の固有表現へのリンクとを含んでもよい（２２４）。
【００３８】
一部の実施形態では、ＯＣＲ検索システム（図１、１１２−Ｂ）またはフロントエンド視覚クエリ処理サーバ（図１、１１０）が、テキスト内の関連しそうな語を認識する。例えば、有名な人物や場所などの固有表現を認識し得る。固有表現は、クエリ用語として用語クエリサーバシステム（図１、１１８）にサブミットされる。一部の実施形態では、用語クエリサーバシステムがもたらす用語クエリの結果を、視覚クエリの結果の中に「リンク」として埋め込む。一部の実施形態では、用語クエリの結果が別個のリンクとして返される。例えば本の表紙の写真が視覚クエリである場合、その本についてオブジェクト認識検索システムが高スコアのヒットをもたらす可能性が高い。そのため、その本のタイトルを得るための用語クエリが用語クエリサーバシステム１１８上で実行され、視覚クエリの結果とともに用語クエリの結果が返される。一部の実施形態では、用語クエリの結果をラベル付けしたグループ内に提示して、それらを視覚クエリの結果と区別する。結果は個々に検索してもよく、または特に関連のある追加の検索結果をもたらすために、検索クエリ内で認識されるすべての固有表現を使用して検索を行ってもよい。例えば、視覚クエリがパリに関するスキャンされた旅行パンフレットである場合、返される結果は、用語クエリ「ノートルダム」についての検索を開始するための、用語クエリサーバシステム１１８へのリンクを含むことができる。同様に、複合検索結果は、一般に認められた有名な画像に関するテキスト検索の結果を含む。例えば同じ旅行パンフレットにおいて、「エッフェル塔」や「ルーブル」のようにパンフレット内に写真として示されている有名な目的地についての用語クエリの結果へのライブリンクも（たとえ用語「エッフェル塔」および「ルーブル」がパンフレット自体に登場しなくても）示してもよい。
【００３９】
次いで、視覚クエリサーバシステムが少なくとも１つの結果をクライアントシステムに送る（２２６）。典型的には、視覚クエリ処理サーバが複数の検索システムの少なくとも一部から複数の検索結果を受け取る場合、視覚クエリ処理サーバは、その複数の検索結果のうちの少なくとも１つをクライアントシステムに送る。一部の視覚クエリでは、１つの検索システムだけが関連する結果を返す。例えば、テキストの画像だけを含む視覚クエリでは、ＯＣＲサーバの結果だけが関連する場合がある。一部の視覚クエリでは、１つの検索システムからの１つの結果だけが関連する場合がある。例えば、スキャンしたバーコードに関係する製品だけが関連する場合がある。これらの例では、フロントエンド視覚処理サーバは、関連する１つまたは複数の検索結果だけを返す。一部の視覚クエリでは、複数の検索結果がクライアントシステムに送られ、その複数の検索結果は並列検索システムのうちの複数からの検索結果を含む（２２８）。これは、視覚クエリの中に複数の別個の画像がある場合に起こり得る。例えば、視覚クエリが馬に乗っている人物の写真であった場合、馬に関するオブジェクト認知結果とともに、その人物の顔認識の結果を表示することができる。一部の実施形態では、特定の画像によるクエリ検索システムのすべての結果をグループ化し、まとめて提供する。例えば、上位Ｎ個の顔認識結果を見出し「顔認識結果」の下に表示し、上位Ｎ個のオブジェクト認識結果を見出し「オブジェクト認識結果」の下にまとめて表示する。あるいは、以下に論じるように、特定の画像検索システムからの検索結果を画像領域によってグループ化することができる。例えば視覚クエリが２つの顔を含む場合、その両方が顔認識結果をもたらし、それぞれの顔についての結果が別個のグループとして提示される。一部の視覚クエリ（例えばテキストおよび１つまたは複数のオブジェクトの両方の画像を含む視覚クエリ）では、検索結果はＯＣＲの結果と１つまたは複数の画像一致の結果とを含み得る（２３０）。
【００４０】
一部の実施形態では、ユーザが特定の検索結果についてもっと詳しく知りたい場合がある。例えば、視覚クエリがイルカの写真であり、「画像−用語」検索システムが用語「水」、「イルカ」、「青」、および「ひれ足」を返す場合、ユーザは「ひれ足」についてのテキストベースクエリ用語検索を実行したい場合がある。ユーザが（例えば検索結果内の対応するリンクをクリックし、または他の方法で選択することにより指示するように）用語クエリによる検索を実行したい場合、クエリ用語サーバシステム（図１、１１８）にアクセスし、選択した１つまたは複数の用語による検索を実行する。対応する検索語の結果が、別個にまたは視覚クエリの結果と併せてクライアントシステム上に表示される（２３２）。一部の実施形態では、フロントエンド視覚クエリ処理サーバ（図１、１１０）が、自動で（すなわち最初の視覚クエリ以外のユーザコマンドを一切受け取ることなしに）視覚クエリについての１つまたは複数の最も可能性があるテキスト結果を選択し、用語クエリサーバシステム１１８上でそれらのテキスト結果を実行し、少なくとも１つの検索結果をクライアントシステムに送ることの一部として、視覚クエリの結果とともにそれらの用語クエリの結果をクライアントシステムに返す（２３２）。上記の例では、「ひれ足」がイルカの視覚クエリ写真についての第１の用語結果であった場合、フロントエンドサーバは「ひれ足」による用語クエリを実行し、視覚クエリの結果とともにそれらの用語クエリの結果をクライアントシステムに返す。視覚クエリの検索結果をユーザに送る前に、ユーザが選択するのではないかと思われる用語結果を自動で実行するこの実施形態は、ユーザの時間を節約する。一部の実施形態では、上記で説明したようにこれらの結果を複合検索結果として表示する（２２２）。他の実施形態では、結果は、複合検索結果の代わりに、または複合検索結果に加えて、検索結果一覧の一部である。
【００４１】
図３は、対話型結果ドキュメントにより視覚クエリに応答するプロセスを示すフローチャートである。最初の３つの動作（２０２、２１０、２１４）は図２に関して上述した。並列検索システムから受け取った検索結果から（２１４）、対話型結果ドキュメントを作成する（３０２）。
【００４２】
次に対話型結果ドキュメントを作成すること（３０２）について詳しく説明する。一部の視覚クエリでは、対話型結果ドキュメントが、視覚クエリのそれぞれの副部分の１つまたは複数の視覚的識別子を含む。それぞれの視覚的識別子は、検索結果の少なくとも１つへの少なくとも１つのユーザ選択可能リンクを有する。視覚的識別子は、視覚クエリのそれぞれの副部分を識別する。一部の視覚クエリでは、対話型結果ドキュメントが、１つまたは複数の結果への１つのユーザ選択可能リンクを有する１つの視覚的識別子しか有さない。一部の実施形態では、検索結果の１つまたは複数へのそれぞれのユーザ選択可能リンクが活性化領域を有し、その活性化領域は、対応する視覚的識別子に関連する視覚クエリの副部分に対応する。
【００４３】
一部の実施形態では、視覚的識別子が境界ボックスである（３０４）。一部の実施形態では、その境界ボックスは、図１２Ａに示すように視覚クエリの副部分を囲む。境界ボックスは正方形または長方形のボックス型である必要はなく、図１２Ｂに示すように円形、楕円形、（例えば視覚クエリ内のオブジェクトに、視覚クエリ内のエンティティに、または視覚クエリの領域に）準拠する形、不整形、または他の任意の形を含む任意の種類の形とすることができる。一部の視覚クエリでは、境界ボックスが視覚クエリの副部分内の識別可能エンティティの境界の輪郭を描く（３０６）。一部の実施形態では、各境界ボックスが１つまたは複数の検索結果へのユーザ選択可能リンクを含み、そのユーザ選択可能リンクは、境界ボックスによって囲まれる、視覚クエリの副部分に対応する活性化領域を有する。ユーザが境界ボックス内の空間（ユーザ選択可能リンクの活性化領域）を選択すると、輪郭が描かれた副部分の中の画像に対応する検索結果が返される。
【００４４】
一部の実施形態では、図１４に示すように視覚的識別子がラベルである（３０７）。一部の実施形態では、ラベルは、視覚クエリのそれぞれの副部分内の画像に関連する少なくとも１つの用語を含む。各ラベルは、それぞれの副部分上またはその付近において対話型結果ドキュメント内で提示するためにフォーマットされる。一部の実施形態ではラベルを色分けする。
【００４５】
一部の実施形態では、視覚クエリのそれぞれの副部分内で認識されるエンティティの種類に応じて、視覚的に区別できる方法で提示するためにそれぞれの視覚的識別子をフォーマットする。例えば図１３に示すように、製品、人物、商標、および２つのテキスト領域を取り囲む境界ボックスを、各様に特色を与えられた透明な境界ボックスを表す互いに異なるクロスハッチングパターンを使ってそれぞれ提示する。一部の実施形態では、オーバーレイの色、オーバーレイパターン、ラベルの背景色、ラベルの背景パターン、ラベルのフォントの色、枠線色など、視覚的に区別できる方法で提示するために視覚的識別子をフォーマットする。
【００４６】
一部の実施形態では、対話型結果ドキュメント内のユーザ選択可能リンクは、視覚クエリの対応する副部分に関係する１つまたは複数の結果を含むドキュメントもしくはオブジェクトへのリンクである（３０８）。一部の実施形態では、少なくとも１つの検索結果が視覚クエリの対応する副部分に関係するデータを含む。そのため、ユーザがそれぞれの副部分に関連する選択可能リンクを選択すると、ユーザは視覚クエリのそれぞれの副部分内で認識されるエンティティに対応する検索結果に導かれる。
【００４７】
例えば、視覚クエリがバーコードの写真であった場合、そのバーコードが添付された包装の無関連部分である写真の部分があり得る。対話型結果ドキュメントは、バーコードだけを取り囲む境界ボックスを含んでもよい。ユーザが、輪郭が描かれたバーコードの境界ボックス内を選択すると、そのバーコードの検索結果が表示される。バーコードの検索結果は、１つの結果、そのバーコードに対応する製品名を含んでもよく、またはバーコードの結果は、その製品を購入、吟味等できる様々な場所など、いくつかの結果を含んでもよい。
【００４８】
一部の実施形態では、それぞれの視覚的識別子に対応する視覚クエリの副部分が１つまたは複数の語からなるテキストを含む場合、それぞれの視覚的識別子に対応する検索結果は、そのテキスト内の語の少なくとも１つによる用語クエリ検索の結果を含む。一部の実施形態では、それぞれの視覚的識別子に対応する視覚クエリの副部分が、所定の信頼性（または他の）基準を満たす少なくとも１つの一致（すなわち検索結果）が見出される人物の顔を含む場合、それぞれの視覚的識別子に対応する検索結果は、選択可能な副部分内に顔が含まれている人物、選択可能な副部分内に顔が含まれている人物の他の画像、およびその人物の顔に関する潜在的な画像の一致に関連する名前、ハンドル、連絡先情報、アカウント情報、アドレス情報、かかわりのあるモバイル機器の現在地のうちの１つまたは複数を含む。一部の実施形態では、それぞれの視覚的識別子に対応する視覚クエリの副部分が、所定の信頼性（または他の）基準を満たす少なくとも１つの一致（すなわち検索結果）が見出される製品を含む場合、それぞれの視覚的識別子に対応する検索結果は、製品情報、製品レビュー、その製品の購入を開始するオプション、その製品に対する入札を開始するオプション、同様の製品の一覧、および関連製品の一覧のうちの１つまたは複数を含む。
【００４９】
場合により、対話型結果ドキュメント内のそれぞれのユーザ選択可能リンクは、リンクを活性化する必要なしにドキュメント内に表示されるアンカーテキストを含む。アンカーテキストは、リンクを活性化するときに得られる情報に関係する主要語や重要語などの情報を提供する。アンカーテキストは、ラベルの一部として（３０７）、または境界ボックスの一部の中に（３０４）、またはユーザが１秒などの所定期間にわたりユーザ選択可能リンク上にカーソルを乗せるときに表示される追加情報として表示されてもよい。
【００５０】
場合により、対話型結果ドキュメント内のそれぞれのユーザ選択可能リンクは、テキストベースクエリ（本明細書では用語クエリと呼ぶこともある）に対応する情報またはドキュメントを検索するための検索エンジンへのリンクである。リンクを活性化することは検索エンジンによる検索の実行を引き起こし、クライアントシステムに結果が返されることを伴い、クエリおよび検索エンジンはリンクによって指定される（例えば検索エンジンはリンク内のＵＲＬによって指定され、テキストベースの検索クエリはリンクのＵＲＬパラメータによって指定される）。場合により、この例におけるリンクは、検索クエリ内のテキストまたは語に特性をもたせるアンカーテキストを含んでもよい。
【００５１】
一部の実施形態では、視覚クエリに応答して生成される対話型結果ドキュメントが、同じ検索システムからの結果に対応する複数のリンクを含むことができる。例えば、視覚クエリを人の集団の画像または写真としてもよい。対話型結果ドキュメントは、それぞれの人物を取り囲む境界ボックスを含んでもよく、その境界ボックスは活性化されると、その集団の中の顔ごとに顔認識検索システムからの結果を返す。一部の視覚クエリでは、対話型結果ドキュメント内の複数のリンクが、複数の検索システムからの検索結果に対応する（３１０）。例えば、人物と犬の写真が視覚クエリとしてサブミットされた場合、対話型結果ドキュメント内の境界ボックスは、その人物と犬とで別々に輪郭を描いてもよい。（対話型結果ドキュメント内の）人物を選択すると、顔認識検索システムからの検索結果が返され、（対話型結果ドキュメント内の）犬を選択すると、画像−用語検索システムからの結果が返される。一部の視覚クエリでは、対話型結果ドキュメントがＯＣＲの結果と画像一致の結果とを含む（３１２）。例えば、標識の隣に立っている人物の写真が視覚クエリとしてサブミットされた場合、対話型結果ドキュメントは、その人物の視覚的識別子とその標識内のテキストの視覚的識別子とを含んでもよい。同様に、雑誌のスキャンが視覚クエリとして使用された場合、対話型結果ドキュメントは、そのページ上の広告内の写真または商標の視覚的識別子、ならびに同じくそのページ上の記事のテキストの視覚的識別子を含んでもよい。
【００５２】
対話型結果ドキュメントを作成した後、その対話型結果ドキュメントをクライアントシステムに送る（３１４）。一部の実施形態では、対話型結果ドキュメント（例えば図１５、ドキュメント１２００）を、図２に関して上記で論じたように１つまたは複数の並列検索システムからの検索結果一覧と併せて送る。一部の実施形態では、図１５に示すように、対話型結果ドキュメントを、１つまたは複数の並列検索システムからの検索結果一覧の上にあるいはその一覧に隣接してクライアントシステムにおいて表示する（３１５）。
【００５３】
場合により、ユーザは、結果ドキュメント内の視覚的識別子を選択することにより結果ドキュメントと対話する。サーバシステムは、対話型結果ドキュメント内の視覚的識別子についてのユーザ選択に関する情報をクライアントシステムから受け取る（３１６）。上記で論じたように、一部の実施形態では、リンクは境界ボックス内の活性化領域を選択することによって活性化される。他の実施形態では、リンクは、境界ボックスではない視覚クエリの副部分の視覚的識別子をユーザが選択することによって活性化される。一部の実施形態では、リンクされた視覚的識別子は、ホットボタン、副部分の近くに位置するラベル、テキスト内の下線を引いた語、または視覚クエリ内のオブジェクトもしくはサブジェクトの他の表現である。
【００５４】
検索結果一覧が対話型結果ドキュメントとともに提示される実施形態では（３１５）、ユーザがユーザ選択可能リンクを選択すると（３１６）、選択されたリンクに対応する検索結果一覧内の検索結果が特定される。一部の実施形態では、選択されたリンクに対応する最初の結果にカーソルがジャンプし、または自動的に移動する。対話型結果ドキュメントおよび全検索結果一覧の両方を表示するにはクライアント１０２のディスプレイが小さすぎる一部の実施形態では、対話型結果ドキュメント内のリンクを選択することが、選択されたリンクに対応する少なくとも最初の結果を表示するように、検索結果一覧をスクロールまたはジャンプさせる。他の一部の実施形態では、対話型結果ドキュメント内のリンクをユーザが選択することに応答し、そのリンクに対応する最初の結果が結果一覧の最も上に表示されるように結果一覧を並べ替える。
【００５５】
一部の実施形態では、ユーザがユーザ選択可能リンクを選択すると（３１６）、視覚クエリサーバシステムが、視覚クエリの対応する副部分に関係する結果の少なくとも一部をユーザに表示するためにクライアントに送る（３１８）。一部の実施形態では、ユーザは複数の視覚的識別子を同時に選択することができ、選択した視覚的識別子のすべての結果の一部を同時に受け取る。他の実施形態では、対話型結果ドキュメント内の１つまたは複数のリンクをユーザが選択することに応答してほぼ瞬時に検索結果をユーザに提供するために、ユーザ選択可能リンクのいずれかをユーザが選択する前に、ユーザ選択可能リンクに対応する検索結果をクライアント上にあらかじめロードしておく。
【００５６】
図４は、クライアントと視覚クエリサーバシステムとの間の通信を示すフローチャートである。クライアント１０２が、ユーザ／クエリ側から視覚クエリを受け取る（４０２）。一部の実施形態では、視覚クエリシステムにサインアップし、または「オプトイン」しているユーザからのみ視覚クエリを受け付けることができる。一部の実施形態では、顔認識の一致を得るための検索は顔認識視覚クエリシステムにサインアップしているユーザに対してのみ実行される一方で、他の種類の視覚クエリは、顔認識部分に「オプトイン」しているかいないかに関係なく誰に対しても実行される。
【００５７】
上記で説明したように、視覚クエリの形式は多くの形態をとることができる。視覚クエリは、視覚クエリドキュメントの副部分内に位置する１つまたは複数のサブジェクトを含む可能性が高い。一部の視覚クエリでは、クライアントシステム１０２が視覚クエリに対してタイプ認識事前処理を実行する（４０４）。一部の実施形態では、クライアントシステム１０２が、この事前処理システム内で特定の認識可能パターンを検索する。例えば一部の視覚クエリでは、クライアントが色を認識し得る。一部の視覚クエリでは、クライアントは特定の副部分が（その領域が淡い空間によって囲まれる小さな濃い文字で構成されている等の理由で）テキストを含む可能性が高いと認識し得る。クライアントは、任意の数の事前処理タイプ認識器またはタイプ認識モジュールを含み得る。一部の実施形態では、クライアントが、バーコードを認識するためのタイプ認識モジュール（バーコード認識４０６）を有する。クライアントは、長方形領域内の特有の縞模様を認識することによってバーコードを認識し得る。一部の実施形態では、クライアントは、視覚クエリの特定のサブジェクトまたは副部分が顔を含む可能性が高いことを認識するためのタイプ認識モジュール（顔検出４０８）を有する。
【００５８】
一部の実施形態では、認識した「タイプ」を検証するためにユーザに返す。例えばクライアントシステム１０２は、「あなたの視覚クエリの中にバーコードが見つかりました。バーコードのクエリ結果を受け取りたいですか？」と述べるメッセージを返すことができる。一部の実施形態では、メッセージは、そのタイプが見つかった視覚クエリの副部分さえも示し得る。一部の実施形態では、この提示は図３に関して論じた対話型結果ドキュメントに似ている。例えばこの提示は、視覚クエリの副部分の輪郭を描いてもよく、その副部分が顔を含む可能性が高いことを示してもよく、ユーザに顔認識結果を受け取りたいかどうか尋ねてもよい。
【００５９】
クライアント１０２が視覚クエリのオプションの事前処理を実行した後、クライアントは、その視覚クエリを視覚クエリサーバシステム１０６、とりわけフロントエンド視覚クエリ処理サーバ１１０に送る。一部の実施形態では、事前処理が関連する結果をもたらした場合、すなわちタイプ認識モジュールの１つが、クエリまたはクエリの副部分が特定のタイプ（顔、テキスト、バーコード等）のものである可能性が高いことを示す一定の閾値を上回る結果をもたらした場合、クライアントは事前処理の結果に関する情報を伝える。例えばクライアントは、視覚クエリの特定の副部分が顔を含むと顔認識モジュールが７５％確信していることを示し得る。より一般には、事前処理の結果が、もしあれば、１つまたは複数のサブジェクトタイプ値（例えばバーコード、顔、テキスト等）を含む。場合により、視覚クエリサーバシステムに送られる事前処理の結果は、事前処理結果内の各サブジェクトタイプ値について、そのサブジェクトタイプ値に対応する視覚クエリの副部分を特定する情報、ならびに事前処理結果内の各サブジェクトタイプ値について、そのサブジェクトタイプ値の信頼水準を示す信頼値および／または視覚クエリの対応する副部分の特定についての信頼水準を示す信頼値のうちの１つまたは複数を含む。
【００６０】
フロントエンドサーバ１１０が、クライアントシステムから視覚クエリを受け取る（２０２）。受け取られる視覚クエリは、上記で論じた事前処理情報を含み得る。上記で説明したように、フロントエンドサーバが視覚クエリを複数の並列検索システムに送る（２１０）。特定の種類のサブジェクトを副部分が含んでいた可能性に関する事前処理情報をフロントエンドサーバ１１０が受け取る場合、フロントエンドサーバは、この情報を並列検索システムの１つまたは複数に伝えてもよい。例えばフロントエンドサーバは、特定の副部分が顔である可能性が高いという情報を伝えてもよく、それにより、顔認識検索システム１１２−Ａは視覚クエリのその小区分を最初に処理することができる。同様に、その副部分を無視するために、または他の副部分を最初に解析するために、他の並列検索システムは（特定の副部分が顔である可能性が高いという）同一情報を送ることを使用してもよい。一部の実施形態では、フロントエンドサーバは、事前処理情報を並列検索システムに伝えないが、代わりにこの情報を使用して、並列検索システムから受け取る結果を自らが処理する方法を増強する。
【００６１】
図２に関して説明したように、一部の視覚クエリに関しては、フロントエンドサーバ１１０が並列検索システムから複数の検索結果を受け取る（２１４）。次いで、図２および図３に関して説明したように、フロントエンドサーバは、様々なランク付けおよびフィルタリングを実行してもよく、対話型検索結果ドキュメントを作成してもよい。特定の種類のサブジェクトを副部分が含んでいた可能性に関する事前処理情報をフロントエンドサーバ１１０が受け取る場合、フロントエンドサーバは、事前処理され認識されたサブジェクトタイプに一致する結果を優先することにより、フィルタおよび順序付けしてもよい。特定の種類の結果を要求したことをユーザが示した場合、フロントエンドサーバは結果を処理する際にユーザの要求を考慮に入れる。例えばフロントエンドサーバは、ユーザがバーコード情報だけを要求した場合、他のすべての結果をフィルタにかけて除去してもよく、または他の結果を列挙する前に要求された種類に関連するすべての結果を列挙する。対話型視覚クエリドキュメントが返される場合、サーバは、ユーザが関心をもっていると示した結果の種類に関連するリンクを事前に検索し得る一方で、対話型結果ドキュメント内に示される他のサブジェクトについては、関係する検索を行うためのリンクを提供するに過ぎない。次いで、フロントエンドサーバ１１０が、検索結果をクライアントシステムに送る（２２６）。
【００６２】
クライアント１０２が、サーバシステムから結果を受け取る（４１２）。該当する場合、これらの結果は事前処理段階で見つかる結果の種類に一致する結果を含む。例えば一部の実施形態では、これらの結果は、１つもしくは複数のバーコードの結果（４１４）、または１つもしくは複数の顔認識の結果（４１６）を含む。特定の種類の結果が見込まれることをクライアントの事前処理モジュールが示し、その結果が見つかった場合、その種類の見つかった結果を目立つように列挙する。
【００６３】
場合により、ユーザが結果の１つまたは複数を選択し、または注釈を付ける（４１８）。ユーザは、１つの検索結果を選択してもよく、特定の種類の検索結果を選択してもよく、かつ／または対話型結果ドキュメントの一部を選択してもよい（４２０）。結果が選択されることは、返した結果がクエリに関連していたという暗黙のフィードバックである。そのようなフィードバック情報は、将来のクエリ処理操作で利用することができる。注釈は返された結果に関する明示的なフィードバックを提供し、同じく将来のクエリ処理操作で利用することができる。注釈は、（誤ってＯＣＲされた語を訂正するように）返された結果の一部を訂正すること、または（自由な形式のまたは構造化された）別個の注釈の形をとる。
【００６４】
ユーザが１つの検索結果を選択すること、一般にいくつかの同じ種類から「正しい」結果を選択すること（例えば顔認識サーバからの正しい結果を選択すること）は、解釈の中での選択(selection among interpretations)と呼ばれるプロセスである。ユーザが特定の種類の検索結果を選択すること、一般にいくつかの異なる種類の返される結果から関心のある結果の「種類」を選択すること（例えば雑誌の中の広告の視覚的結果ではなく、やはり同じページ上の記事のＯＣＲされたテキストを選択すること）は、意図の曖昧性除去と呼ばれるプロセスである。図８に関して詳しく説明するように、ユーザは、ＯＣＲされたドキュメント内の特定のリンクされた語（認識されている固有表現など）を同様に選択してもよい。
【００６５】
ユーザは、代わりにまたは加えて、特定の検索結果に注釈を付けたいことがある。この注釈を付けることは、自由形式スタイルで、または構造化された形式で行ってもよい（４２２）。注釈は、結果の説明としてもよく、または結果のレビューとしてもよい。例えば注釈は、結果内の１つもしくは複数のサブジェクトの名前を示してもよく、または「これは良書だ」や「この製品は購入してから１年以内に壊れた」ことを示すことができる。注釈の別の例は、視覚クエリの副部分を取り囲むユーザによって描かれる境界ボックス、および境界ボックス内のオブジェクトまたはサブジェクトを特定するユーザによって提供されるテキストである。ユーザの注釈については図５に関してより詳細に説明する。
【００６６】
検索結果のユーザ選択および他の注釈をサーバシステムに送る（４２４）。フロントエンドサーバ１１０がその選択および注釈を受け取り、それらをさらに処理する（４２６）。この情報が、対話型結果ドキュメント内のオブジェクト、副領域、または用語の選択であった場合、その選択に関するさらなる情報を必要に応じて要求してもよい。例えば選択が１つの視覚的結果についての選択であった場合、その視覚的結果に関するさらなる情報が要求される。選択が（ＯＣＲサーバまたは画像−用語サーバからの）語であった場合、その語のテキスト検索が用語クエリサーバシステム１１８に送られる。選択が顔画像認識検索システムからの人物についての選択であった場合、その人物のプロファイルが要求される。選択が対話型検索結果ドキュメントの特定の部分についてのものであった場合、基礎をなす視覚クエリの結果が要求される。
【００６７】
サーバシステムが注釈を受け取る場合、図５に関して説明するように、その注釈はクエリ／注釈データベース１１６内に記憶される。その後、図７〜１０に関して以下で論じるように、注釈データベース１１６からの情報を、並列サーバシステムの１つまたは複数のための個々の注釈データベースに周期的にコピーする。
【００６８】
図５は、本発明の一実施形態によるクライアントシステム１０２を示すブロック図である。クライアントシステム１０２は、典型的には１個または複数個の処理ユニット（ＣＰＵ）７０２、１つまたは複数のネットワークインターフェイスもしくは他の通信インターフェイス７０４、メモリ７１２、およびこれらのコンポーネントを相互接続するための１つまたは複数の通信バス７１４を含む。クライアントシステム１０２は、ユーザインターフェイス７０５を含む。ユーザインターフェイス７０５は、ディスプレイ装置７０６を含み、場合によりキーボード、マウス、他の入力ボタン７０８などの入力手段を含む。あるいは、またはそれに加えて、ディスプレイ装置７０６はタッチセンス表面７０９を含み、その場合、ディスプレイ７０６／７０９はタッチセンスディスプレイである。タッチセンスディスプレイ７０６／７０９を有するクライアントシステムでは、物理的なキーボードはオプションである（例えばキーボード入力が必要な場合はソフトキーボードを表示してもよい）。さらに、一部のクライアントシステムは、マイクロフォンおよび音声認識を使用してキーボードを補足しまたは置換する。場合により、クライアント１０２は、自らの位置を求めるためのＧＰＳ（地球投影位置決定衛星）受信機または他の位置検出機器７０７を含む。一部の実施形態では、クライアントシステム１０２の位置を示す位置情報をクライアントシステム１０２が視覚クエリサーバシステムに提供することを必要とする、視覚クエリ検索サービスが提供される。
【００６９】
クライアントシステム１０２は、カメラやスキャナなどの画像取込装置７１０も含む。メモリ７１２には、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリが含まれ、１つまたは複数の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性固体記憶デバイスなどの不揮発性メモリが含まれ得る。メモリ７１２には、１個または複数個のＣＰＵ７０２から離れて位置する１つまたは複数の記憶装置が場合により含まれ得る。メモリ７１２あるいはメモリ７１２内の１つまたは複数の不揮発性メモリ装置は、持続性コンピュータ可読記憶媒体を含む。一部の実施形態では、メモリ７１２またはメモリ７１２のコンピュータ可読記憶媒体が、以下のプログラム、モジュール、およびデータ構造またはその一部を記憶する。
・  様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するためのプロシージャを含むオペレーティングシステム７１６。
・  クライアントシステム１０２を、１つまたは複数の通信ネットワークインターフェイス７０４（有線または無線）、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つまたは複数の通信ネットワークを介して他のコンピュータに接続するために使用するネットワーク通信モジュール７１８。
・  画像取込装置／カメラ７１０が取り込んだそれぞれの画像を処理するための画像取込モジュール７２０であって、それぞれの画像は（例えばクライアントアプリケーションモジュールにより）、視覚クエリとして視覚クエリサーバシステムに送ってもよい。
・  これだけに限定されないが、視覚クエリサーバシステムに視覚クエリをサブミットするための画像によるクエリサブミットモジュール７２４、場合により、画像内の関心領域が選択されたこと（タッチセンスディスプレイ７０６／７０９上でのジェスチャなど）を検出し、その関心領域を視覚クエリとして準備する関心領域選択モジュール７２５、視覚クエリの結果を表示するための結果ブラウザ７２６、および場合により、フォームに記入するなどの構造化された注釈テキスト入力のためのオプションモジュール７３０を有し、または様々な形式からの注釈を受け付けることができる自由形式の注釈テキスト入力のためのオプションモジュール７３２を有し、ユーザが注釈用に画像の特定の副部分を選択することを可能にする画像領域選択モジュール７３４（本明細書では結果選択モジュールと呼ぶこともある）を有する注釈モジュール７２８を含む、画像によるクエリを行う様々な側面を処理するための１つまたは複数のクライアントアプリケーションモジュール７２２。
・  画像取込装置７１０により単に画像を取り込むのではなく、画像を作成しまたは編集することによりユーザが視覚クエリを作成することを可能にする、１つまたは複数のオプションのコンテンツオーサリングアプリケーション７３６、場合により、そのようなアプリケーション７３６の１つは、視覚クエリとして使用するための画像の副部分をユーザが選択できるようにする命令を含んでもよい。
・  視覚クエリサーバシステムに送る前に視覚クエリを事前処理する、オプションのローカル画像解析モジュール７３８。ローカル画像解析は、特定の種類の画像または画像内の副領域を認識し得る。そのようなモジュール７３８が認識し得る画像の種類の例には、顔タイプ（視覚クエリ内で認識される顔画像）、バーコードタイプ（視覚クエリ内で認識されるバーコード）、およびテキストタイプ（視覚クエリ内で認識されるテキスト）のうちの１つまたは複数が含まれる。
・  電子メールアプリケーション、電話アプリケーション、ブラウザアプリケーション、マッピングアプリケーション、インスタントメッセージングアプリケーション、ソーシャルネットワーキングアプリケーションなど、さらなるオプションのクライアントアプリケーション７４０。一部の実施形態では、作動可能検索結果を選択すると、該当する作動可能検索結果に対応するアプリケーションを起動し、またはそのアプリケーションにアクセスすることができる。
【００７０】
場合により、ユーザが注釈用に画像の特定の副部分を選択することを可能にする画像領域選択モジュール７３４は、ユーザが、必ずしもさらなる注釈を付けることなく検索結果を「正しい」ヒットとして選択することも可能にする。例えば、ユーザに上位Ｎ個の顔認識の一致を提示してもよく、ユーザがその結果一覧から正しい人物を選択してもよい。一部の検索クエリでは、複数の種類の結果が提示され、ユーザは結果の種類を選択する。例えば、画像クエリが木の隣に立っている人物を含むが、ユーザはその人物に関する結果だけに興味がある場合がある。したがって画像選択モジュール７３４は、ユーザが、どの画像の種類が「正しい」種類であるか、すなわちそのユーザが受け取りたいと思う種類であるかを指示することを可能にする。ユーザは、（フォームに記入するための）注釈テキスト入力モジュール７３０または自由形式注釈テキスト入力モジュール７３２のいずれかを使用し、個人的なコメントまたは説明的な言葉を加えることにより検索結果に注釈を付けたい場合もある。
【００７１】
一部の実施形態では、オプションのローカル画像解析モジュール７３８がクライアントアプリケーション（図１、１０８）の一部である。さらに一部の実施形態では、オプションのローカル画像解析モジュール７３８が、視覚クエリまたは視覚クエリの一部を事前処理しもしくは分類するためのローカル画像解析を実行するための、１つまたは複数のプログラムを含む。例えばクライアントアプリケーション７２２は、検索エンジンに視覚クエリをサブミットする前に画像がバーコード、顔、またはテキストを含むことを認識し得る。一部の実施形態では、視覚クエリが特定の種類の画像を含むとローカル画像解析モジュール７３８が検出する場合、そのモジュールは、対応する種類の検索結果に興味があるかどうかをユーザに尋ねる。例えば、ローカル画像解析モジュール７３８は、その一般的特徴に基づいて（すなわち誰の顔かを決定することなしに）顔を検出し得、視覚クエリサーバシステムにクエリを送る前にユーザに即時フィードバックを提供する。ローカル画像解析モジュール７３８は、「顔を検出しました。この顔について顔認識の一致を得たいですか？」のような結果を返してもよい。このようにすることで、視覚クエリサーバシステム（図１、１０６）の時間を節約し得る。一部の視覚クエリでは、フロントエンド視覚クエリ処理サーバ（図１、１１０）は、ローカル画像解析モジュール７３８が認識した画像の種類に対応する検索システム１１２にしか視覚クエリを送らない。他の実施形態では、検索システム１１２への視覚クエリは、検索システム１１２Ａ〜Ｎのすべてに視覚クエリを送ってもよいが、ローカル画像解析モジュール７３８が認識した画像の種類に対応する、検索システム１１２からの結果をランク付けする。一部の実施形態では、視覚クエリサーバシステムの動作にローカル画像解析が影響を及ぼす様式は、クライアントシステムの構成、またはユーザもしくはクライアントシステムに関連する構成または処理パラメータによって決まる。さらに、任意の特定の視覚クエリの実際のコンテンツおよびローカル画像解析によってもたらされる結果は、クライアントシステムおよび視覚クエリサーバシステムのいずれかまたは両方において異なるように処理すべき異なる視覚クエリをもたらす場合がある。
【００７２】
一部の実施形態では、バーコード認識を２つのステップで行い、視覚クエリがバーコードを含むかどうかの解析を、ローカル画像解析モジュール７３８においてクライアントシステム上で実行する。次いで、視覚クエリがバーコードを含む可能性が高いとクライアントが判断する場合にのみ、視覚クエリをバーコード検索システムに渡す。他の実施形態では、バーコード検索システムがすべての視覚クエリを処理する。
【００７３】
場合により、クライアントシステム１０２は、追加のクライアントアプリケーション７４０を含む。
【００７４】
図６は、本発明の一実施形態によるフロントエンド視覚クエリ処理サーバシステム１１０を示すブロック図である。フロントエンドサーバ１１０は、典型的には１個または複数個の処理ユニット（ＣＰＵ）８０２、１つまたは複数のネットワークインターフェイスもしくは他の通信インターフェイス８０４、メモリ８１２、およびこれらのコンポーネントを相互接続するための１つまたは複数の通信バス８１４を含む。メモリ８１２には、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリが含まれ、１つまたは複数の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性固体記憶デバイスなどの不揮発性メモリが含まれ得る。メモリ８１２には、１個または複数個のＣＰＵ８０２から離れて位置する１つまたは複数の記憶装置が場合により含まれ得る。メモリ８１２あるいはメモリ８１２内の１つまたは複数の不揮発性メモリ装置は、持続性コンピュータ可読記憶媒体を含む。一部の実施形態では、メモリ８１２またはメモリ８１２のコンピュータ可読記憶媒体が、以下のプログラム、モジュール、およびデータ構造またはその一部を記憶する。
・  様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するためのプロシージャを含むオペレーティングシステム８１６。
・  フロントエンドサーバシステム１１０を、１つまたは複数の通信ネットワークインターフェイス８０４（有線または無線）、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つまたは複数の通信ネットワークを介して他のコンピュータに接続するために使用するネットワーク通信モジュール８１８。
・  クライアントシステム１０２から来る視覚クエリを処理し、それらの視覚クエリを複数の並列検索システムに送るためのクエリマネージャ８２０であって、本明細書のいたるところに記載するように、視覚クエリがクライアントによって生成された命令（例えば「顔認識検索のみ」）を含む場合など、一部の特別な状況では視覚クエリを検索システムのうちの１つだけに導くことがある。
・  １つまたは複数の並列検索システムからの結果を場合によりフィルタし、提示するために最上位のまたは「関連する」結果をクライアントシステム１０２に送るための結果フィルタリングモジュール８２２。
・  １つまたは複数の並列検索システムからの結果を場合によりランク付けし、提示するために結果をフォーマットするための結果ランク付け／フォーマットモジュール８２４。
・  結果ドキュメント作成モジュール８２６は、対話型検索結果ドキュメントを作成するために適切な場合に使用し、モジュール８２６は、これだけに限定されないが、境界ボックス作成モジュール８２８およびリンク作成モジュール８３０を含むサブモジュールを含んでもよい。
・  視覚クエリのそれぞれの副部分の視覚的識別子であるラベルを作成するための、ラベル作成モジュール８３１。
・  ユーザから注釈を受け取り、それらの注釈を注釈データベース１１６に送るための注釈モジュール８３２。
・  視覚クエリに応答し、クライアント側のアクションを起動するようにそれぞれが構成される、１つまたは複数の作動可能検索結果要素を生成するための作動可能検索結果モジュール８３８であって、作動可能検索結果要素の例は、通話を開始するためのボタン、電子メールメッセージを開始するためのボタン、住所の地図を描くためのボタン、レストランを予約するためのボタン、および製品を購入するオプションを提供するためのボタンである。
・  データベース自体８３４およびデータベースの索引８３６を含む、クエリ／注釈データベース１１６。
【００７５】
結果ランク付け／フォーマットモジュール８２４は、１つまたは複数の並列検索システム（図１、１１２−Ａ〜１１２−Ｎ）から返される結果をランク付けする。既に上記で述べたように、一部の視覚クエリでは、１つの検索システムからの結果しか関連しない場合がある。そのような場合、その１つの検索システムからの関連する検索結果だけをランク付けする。一部の視覚クエリでは、数種類の検索結果が関連することがある。これらの例では、一部の実施形態において、結果ランク付け／フォーマットモジュール８２４は、より関連性が低い検索システムの結果に優先して、最も関連する結果（例えば最も高い関連性スコアを有する結果）を有する検索システムからの結果のすべてをランク付けする。他の実施形態では、結果ランク付け／フォーマットモジュール８２４が、関連する各検索システムからの最上位の結果を残りの結果に優先してランク付けする。一部の実施形態では、結果ランク付け／フォーマットモジュール８２４が、検索結果のそれぞれについて計算される関連性スコアに従って結果をランク付けする。一部の視覚クエリでは、並列視覚検索システムによる検索に加えて拡張(augmented)テキストクエリを実行する。一部の実施形態では、テキストクエリも実行する場合、それらの結果を視覚検索システムの結果と視覚的に区別できる方法で提示する。
【００７６】
結果ランク付け／フォーマットモジュール８２４はさらに、結果をフォーマットする。一部の実施形態では、結果が一覧形式で提示される。一部の実施形態では、結果が対話型結果ドキュメントによって提示される。一部の実施形態では、対話型結果ドキュメントおよび結果一覧の両方が提示される。一部の実施形態では、クエリの種類が、結果を提示する方法を決定づける。例えば、視覚クエリ内で複数の検索可能サブジェクトが検出される場合、対話型結果ドキュメントが作成されるのに対し、検索可能サブジェクトが１つしか検出されない場合、結果は一覧形式でのみ表示される。
【００７７】
結果ドキュメント作成モジュール８２６は、対話型検索結果ドキュメントを作成するために使用する。対話型検索結果ドキュメントは、１つまたは複数の検出済みおよび検索済みサブジェクトを有し得る。境界ボックス作成モジュール８２８は、検索済みサブジェクトのうちの１つまたは複数を取り囲む境界ボックスを作成する。境界ボックスは長方形のボックスとしてもよく、または１つもしくは複数のサブジェクトの１つもしくは複数の形の輪郭を描いてもよい。リンク作成モジュール８３０は、対話型検索結果ドキュメント内のそれぞれのサブジェクトに関連する検索結果へのリンクを作成する。一部の実施形態では、境界ボックス領域内でクリックすることは、リンク作成モジュールが挿入した対応するリンクを活性化する。
【００７８】
クエリ／注釈データベース１１６は、視覚クエリの結果を改善するために使用することができる情報を含む。一部の実施形態では、視覚クエリの結果が提示された後、ユーザは画像に注釈を付けてもよい。さらに一部の実施形態では、ユーザは、画像に注釈を付けてからその画像を視覚クエリ検索システムに送ってもよい。事前に注釈を付けることは、結果の的を絞ることにより、または視覚クエリ検索に並列して注釈が付けられた語に対するテキストベース検索を実行することにより、視覚クエリの処理を促進し得る。一部の実施形態では、潜在的な画像一致ヒットとして返されるように、注釈を付けたバージョンの写真を（例えばその画像および１つまたは複数の注釈を非公開ではないと指定することにより、例えばユーザに公開する許可が与えられている場合）公開することができる。例えば、ユーザが花の写真を撮り、その花に関する詳細な属および種の情報を与えることによりその画像に注釈を付ける場合、ユーザは、その花を探している視覚クエリ調査を行うすべての人にその画像を提示したい場合がある。一部の実施形態では、クエリ／注釈データベース１１６からの情報を並列検索システム１１２に周期的にプッシュし、並列検索システム１１２はその情報の関連部分を（もしあれば）個々のデータベース１１４内に取り入れる。
【００７９】
図７は、視覚クエリを処理するために利用する並列検索システムのうちの１つを示すブロック図である。図７は、本発明の一実施形態による「汎用」サーバシステム１１２−Ｎを示す。このサーバシステムは、視覚クエリ検索サーバ１１２−Ｎのうちのいずれか１つを表すという点でのみ汎用である。汎用サーバシステム１１２−Ｎは、典型的には１個または複数個の処理ユニット（ＣＰＵ）５０２、１つまたは複数のネットワークインターフェイスもしくは他の通信インターフェイス５０４、メモリ５１２、およびこれらのコンポーネントを相互接続するための１つまたは複数の通信バス５１４を含む。メモリ５１２には、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリが含まれ、１つまたは複数の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性固体記憶デバイスなどの不揮発性メモリが含まれ得る。メモリ５１２には、１個または複数個のＣＰＵ５０２から離れて位置する１つまたは複数の記憶装置が場合により含まれ得る。メモリ５１２あるいはメモリ５１２内の１つまたは複数の不揮発性メモリ装置は、持続性コンピュータ可読記憶媒体を含む。一部の実施形態では、メモリ５１２またはメモリ５１２のコンピュータ可読記憶媒体が、以下のプログラム、モジュール、およびデータ構造またはその一部を記憶する。
・  様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するためのプロシージャを含むオペレーティングシステム５１６。
・  汎用サーバシステム１１２−Ｎを、１つまたは複数の通信ネットワークインターフェイス５０４（有線または無線）、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つまたは複数の通信ネットワークを介して他のコンピュータに接続するために使用するネットワーク通信モジュール５１８。
・  特定のサーバシステムに固有の検索アプリケーション５２０であって、検索アプリケーション５２０は、例えばバーコード検索アプリケーション、色認識検索アプリケーション、製品認識検索アプリケーション、オブジェクトまたはオブジェクトカテゴリ検索アプリケーション等としてもよい。
・  特定の検索アプリケーションが索引を利用する場合は、オプションの索引５２２。
・  特定の検索アプリケーションに関連する画像を記憶するためのオプションの画像データベース５２４であって、記憶される画像データは、もしあれば、検索処理の種類に依拠する。
・  検索アプリケーションからの結果にランク付けするためのオプションの結果ランク付けモジュール５２６（関連性スコアリングモジュールと呼ぶこともある）であって、このランク付けモジュールは、検索アプリケーションからの結果ごとに関連性スコアを割り当ててもよく、所定の最小スコアに達する結果がない場合、このサーバシステムの結果が関連しないことを示すヌルまたはゼロ値スコアをフロントエンド視覚クエリ処理サーバに返してもよい。
・  注釈データベース（図１、１１６）から注釈情報を受け取り、注釈情報のいずれかが特定の検索アプリケーションに関連するかどうかを判定し、注釈情報のうちの決定した任意の関連部分をそれぞれの注釈データベース５３０内に取り入れるための注釈モジュール５２８。
【００８０】
図８は、本発明の一実施形態による、視覚クエリを処理するために利用するＯＣＲ検索システム１１２−Ｂを示すブロック図である。ＯＣＲ検索システム１１２−Ｂは、典型的には１個または複数個の処理ユニット（ＣＰＵ）６０２、１つまたは複数のネットワークインターフェイスもしくは他の通信インターフェイス６０４、メモリ６１２、およびこれらのコンポーネントを相互接続するための１つまたは複数の通信バス６１４を含む。メモリ６１２には、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリが含まれ、１つまたは複数の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性固体記憶デバイスなどの不揮発性メモリが含まれ得る。メモリ６１２には、１個または複数個のＣＰＵ６０２から離れて位置する１つまたは複数の記憶装置が場合により含まれ得る。メモリ６１２あるいはメモリ６１２内の１つまたは複数の不揮発性メモリ装置は、持続性コンピュータ可読記憶媒体を含む。一部の実施形態では、メモリ６１２またはメモリ６１２のコンピュータ可読記憶媒体が、以下のプログラム、モジュール、およびデータ構造またはその一部を記憶する。
・  様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するためのプロシージャを含むオペレーティングシステム６１６。
・  ＯＣＲ検索システム１１２−Ｂを、１つまたは複数の通信ネットワークインターフェイス６０４（有線または無線）、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つまたは複数の通信ネットワークを介して他のコンピュータに接続するために使用するネットワーク通信モジュール６１８。
・  視覚クエリ内のテキストを認識しようと試み、文字画像を文字へと変換する光学的文字認識（ＯＣＲ）モジュール６２０。
・  ＯＣＲモジュール６２０が特定のフォント、テキストパターン、および文字認識に固有の他の特徴を認識するために利用する、オプションのＯＣＲデータベース１１４−Ｂ。
・  変換された語を辞書と突き合わせて確認し、さもなければ辞書の語に一致する語の中のもしかしたら誤変換された文字を置換することにより、文字画像の文字への変換を改善するオプションのスペルチェックモジュール６２２。
・  変換されたテキスト内で固有表現を探し、認識した固有表現を用語クエリ内の用語として用語クエリサーバシステム（図１、１１８）に送り、用語クエリサーバシステムからの結果を、認識した固有表現に関連するＯＣＲ済みテキスト内に埋め込まれたリンクとして提供する、オプションの固有表現認識モジュール６２４。
・  変換されたセグメント（変換された文や段落など）をテキストセグメントのデータベースと突き合わせて確認し、さもなければテキスト一致アプリケーションのテキストセグメントに一致するＯＣＲ済みテキストセグメントの中のもしかしたら誤変換された文字を置換することにより、文字画像の文字への変換を改善するオプションのテキスト一致アプリケーション６３２であって、一部の実施形態では、テキスト一致アプリケーションが見つけるテキストセグメントがリンクとしてユーザに提供される（例えばユーザがNew York Timesの１ページをスキャンした場合、テキスト一致アプリケーションはNew York Timesのウェブサイト上に投稿されたすべての記事へのリンクを提供してもよい）。
・  ＯＣＲされた結果を提示するためにフォーマットし、固有表現へのオプションのリンクをフォーマットし、さらにテキスト一致アプリケーションからの関係する任意の結果を場合によりランク付けするための結果ランク付け／フォーマットモジュール６２６。
・  注釈データベース（図１、１１６）から注釈情報を受け取り、注釈情報のいずれかがＯＣＲ検索システムに関連するかどうかを判定し、注釈情報のうちの決定した任意の関連部分をそれぞれの注釈データベース６３０内に取り入れるためのオプションの注釈モジュール６２８。
【００８１】
図９は、本発明の一実施形態による、視覚クエリを処理するために利用する顔認識検索システム１１２−Ａを示すブロック図である。顔認識検索システム１１２−Ａは、典型的には１個または複数個の処理ユニット（ＣＰＵ）９０２、１つまたは複数のネットワークインターフェイスもしくは他の通信インターフェイス９０４、メモリ９１２、およびこれらのコンポーネントを相互接続するための１つまたは複数の通信バス９１４を含む。メモリ９１２には、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリが含まれ、１つまたは複数の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性固体記憶デバイスなどの不揮発性メモリが含まれ得る。メモリ９１２には、１個または複数個のＣＰＵ９０２から離れて位置する１つまたは複数の記憶装置が場合により含まれ得る。メモリ９１２あるいはメモリ９１２内の１つまたは複数の不揮発性メモリ装置は、持続性コンピュータ可読記憶媒体を含む。一部の実施形態では、メモリ９１２またはメモリ９１２のコンピュータ可読記憶媒体が、以下のプログラム、モジュール、およびデータ構造またはその一部を記憶する。
・  様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するためのプロシージャを含むオペレーティングシステム９１６。
・  顔認識検索システム１１２−Ａを、１つまたは複数の通信ネットワークインターフェイス９０４（有線または無線）、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つまたは複数の通信ネットワークを介して他のコンピュータに接続するために使用するネットワーク通信モジュール９１８。
・  視覚クエリ内で提示される１つまたは複数の顔に一致する顔画像を顔画像データベース１１４−Ａ内で検索し、顔画像データベース１１４−Ａ内で見つかったそれぞれの一致に関連する情報を求めてソーシャルネットワークデータベース９２２を検索するための、顔認識検索アプリケーション９２０。
・  複数のユーザの１つまたは複数の顔画像を記憶するための顔画像データベース１１４−Ａであって、場合によりこの顔画像データベースは、家族や、ユーザおよび顔画像データベース１１４−Ａ内に含まれる画像内にいると確認されている人物が知っている他者など、ユーザ以外の人物の顔画像を含み、場合によりこの顔画像データベースは、パブリックドメイン内で適法な顔画像の供給業者など、外部の情報源から得た顔画像を含む。
・  場合により、図１２Ａに関してより詳細に論じるように、ソーシャルネットワークのユーザに関する名前、住所、職業、グループの帰属関係、ソーシャルネットワークのつながり、モバイル機器の現在のＧＰＳ位置、共有設定、関心、年齢、出身地、個人的統計、仕事情報などの情報を含む、ソーシャルネットワークデータベース９２２。
・  顔画像データベース１１４−Ａからの潜在的な顔の一致をランク付けし（例えば、潜在的な顔の一致に関連性スコアおよび／または一致品質スコアを割り当て）、提示するために結果をフォーマットするための結果ランク付け／フォーマットモジュール９２４であって、一部の実施形態では、結果のランク付けまたはスコア付けに、前述のソーシャルネットワークデータベースから取得した関連情報を利用し、一部の実施形態では、フォーマットされた検索結果が、潜在的な画像の一致ならびにソーシャルネットワークデータベースからの情報の一部を含む。
・  注釈データベース（図１、１１６）から注釈情報を受け取り、注釈情報のいずれかが顔認識検索システムに関連するかどうかを判定し、注釈情報のうちの決定した任意の関連部分をそれぞれの注釈データベース９２８内に記憶するための注釈モジュール９２６。
【００８２】
図１０は、本発明の一実施形態による、視覚クエリを処理するために利用する画像−用語検索システム１１２−Ｃを示すブロック図である。一部の実施形態では、この画像−用語検索システムは視覚クエリ内のオブジェクトを認識する（インスタンス認識）。他の実施形態では、この画像−用語検索システムは視覚クエリ内のオブジェクトカテゴリを認識する（タイプ認識）。一部の実施形態では、この画像−用語システムは、オブジェクトおよびオブジェクトカテゴリの両方を認識する。この画像−用語検索システムは、視覚クエリ内の画像に関する潜在的な用語の一致を返す。画像−用語検索システム１１２−Ｃは、典型的には１個または複数個の処理ユニット（ＣＰＵ）１００２、１つまたは複数のネットワークインターフェイスもしくは他の通信インターフェイス１００４、メモリ１０１２、およびこれらのコンポーネントを相互接続するための１つまたは複数の通信バス１０１４を含む。メモリ１０１２には、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリが含まれ、１つまたは複数の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性固体記憶デバイスなどの不揮発性メモリが含まれ得る。メモリ１０１２には、１個または複数個のＣＰＵ１００２から離れて位置する１つまたは複数の記憶装置が場合により含まれ得る。メモリ１０１２あるいはメモリ１０１２内の１つまたは複数の不揮発性メモリ装置は、持続性コンピュータ可読記憶媒体を含む。一部の実施形態では、メモリ１０１２またはメモリ１０１２のコンピュータ可読記憶媒体が、以下のプログラム、モジュール、およびデータ構造またはその一部を記憶する。
・  様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するためのプロシージャを含むオペレーティングシステム１０１６。
・  画像−用語検索システム１１２−Ｃを、１つまたは複数の通信ネットワークインターフェイス１００４（有線または無線）、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つまたは複数の通信ネットワークを介して他のコンピュータに接続するために使用するネットワーク通信モジュール１０１８。
・  画像検索データベース１１４−Ｃ内で、視覚クエリ内の１つまたは複数のサブジェクトに一致する画像を検索する、画像−用語検索アプリケーション１０２０。
・  視覚クエリの１つまたは複数のサブジェクトに似た画像を探すために、検索アプリケーション１０２０によって検索され得る画像検索データベース１１４−Ｃ。
・  テキストベースクエリ検索エンジン１００６を使用して画像を検索する際にユーザが使用するテキスト用語を記憶する、用語−画像逆索引１０２２。
・  潜在的な画像の一致をランク付けし、かつ／または用語−画像逆索引１０２２内で確認される、潜在的な画像の一致に関連する用語をランク付けするための、結果ランク付け／フォーマットモジュール１０２４。
・  注釈データベース（図１、１１６）から注釈情報を受け取り、注釈情報のいずれかが画像−用語検索システム１１２−Ｃに関連するかどうかを判定し、注釈情報のうちの決定した任意の関連部分をそれぞれの注釈データベース１０２８内に記憶するための注釈モジュール１０２６。
【００８３】
図５〜図１０は、本明細書に記載の諸実施形態の構造上の概略図であるよりも、むしろ１組のコンピュータシステム内にあり得る様々な機能についての機能上の説明であることを意図する。実際には、および当業者によって理解されているように、別々に図示した項目を組み合わせることができ、一部の項目を分けてもよい。例えば、これらの図面の中で別々に示した一部の項目を単一のサーバ上に実装することができ、単一の項目を１つまたは複数のサーバによって実装することができる。視覚クエリの処理を実施するために使用するシステムの実際の数、およびそれらのシステム間でどのように機能を割り振るのかは実施形態ごとに異なる。
【００８４】
本明細書に記載の方法のそれぞれは、持続性コンピュータ可読記憶媒体の中に記憶され、１つまたは複数のサーバもしくはクライアントの１個または複数個のプロセッサによって実行される命令に準拠し得る。上記に特定したモジュールまたはプログラム（すなわち命令のセット）は、必ずしも別個のソフトウェアプログラム、プロシージャ、またはモジュールとして実装する必要はなく、よって様々な実施形態において、これらのモジュールの様々なサブセットを組み合わせ、またさもなければ再編成してもよい。図５〜図１０に示す操作のそれぞれは、コンピュータメモリまたは持続性コンピュータ可読記憶媒体の中に記憶される命令に対応し得る。
【００８５】
図１１は、例示的な視覚クエリ１１０２のスクリーンショットを有するクライアントシステム１０２を示す。図１１に示すクライアントシステム１０２は、携帯電話、携帯型音楽プレーヤ、携帯型電子メール装置などのモバイル機器である。クライアントシステム１０２は、ディスプレイ７０６、およびこの図面の中に示すボタンのような１つまたは複数の入力手段７０８を含む。一部の実施形態では、ディスプレイ７０６がタッチセンスディスプレイ７０９である。タッチセンスディスプレイ７０９を有する実施形態では、ディスプレイ７０９上に表示されるソフトボタンが電気機械的ボタン７０８の一部またはすべてを場合により置換してもよい。以下により詳細に説明するように、タッチセンスディスプレイは、視覚クエリの結果と対話する際にも役立つ。クライアントシステム１０２は、カメラ７１０などの画像取込機構も含む。
【００８６】
図１１は、店の棚の上にあるパッケージの写真または映像フレームである視覚クエリ１１０２を示す。ここに記載する実施形態では、視覚クエリは、２つの次元のそれぞれにおいて視覚クエリのサイズに画素単位で対応する解像度を有する、二次元画像である。この例における視覚クエリ１１０２は、三次元オブジェクトの二次元画像である。視覚クエリ１１０２は、背景要素、製品パッケージ１１０４、ならびに人物の画像１１０６、商標の画像１１０８、製品の画像１１１０および様々なテキスト要素１１１２を含む、パッケージ上の様々な種類のエンティティを含む。
【００８７】
図３に関して説明したように、視覚クエリ１１０２をフロントエンドサーバ１１０に送り、フロントエンドサーバ１１０は視覚クエリ１１０２を複数の並列検索システム（１１２Ａ〜Ｎ）に送り、結果を受け取って対話型結果ドキュメントを作成する。
【００８８】
図１２Ａおよび図１２Ｂは、対話型結果ドキュメント１２００の一実施形態のスクリーンショットを有するクライアントシステム１０２をそれぞれ示す。対話型結果ドキュメント１２００は、視覚クエリ１１０２のそれぞれの副部分についての１つまたは複数の視覚的識別子１２０２を含み、その副部分は、検索結果の一部へのユーザ選択可能リンクをそれぞれ含む。図１２Ａおよび図１２Ｂは、境界ボックス１２０２（例えば境界ボックス１２０２−１、１２０２−２、１２０２−３）である視覚的識別子を有する対話型結果ドキュメント１２００を示す。図１２Ａおよび図１２Ｂに示す実施形態では、ユーザは、境界ボックス１２０２によって輪郭が描かれる空間内の活性化領域上でタップすることにより、特定の副部分に対応する検索結果の表示を活性化する。例えばユーザは、人物の画像を取り囲んでいる境界ボックス１３０６（図１３）上でタップすることにより、その人物の画像に対応する検索結果を活性化することになる。他の実施形態では、タッチセンスディスプレイではなく、マウスまたはキーボードを使用して選択可能リンクを選択する。一部の実施形態では、ユーザが境界ボックス１２０２をプレビューするとき（すなわちユーザが境界ボックス上でシングルクリックし、一度タップし、またはポインタを乗せるとき）、第１の対応する検索結果を表示する。ユーザがその境界ボックスを選択するとき（すなわちユーザがダブルクリックし、二度タップし、または別の機構を使用して選択したことを示すとき）、そのユーザは複数の対応する検索結果の表示を活性化する。
【００８９】
図１２Ａおよび図１２Ｂでは、視覚的識別子は、視覚クエリの副部分を取り囲んでいる境界ボックス１２０２である。図１２Ａは、正方形または長方形の境界ボックス１２０２を示す。図１２Ｂは、ドリンクボトルの境界ボックス１２０２−３など、視覚クエリの副部分内の特定可能エンティティの境界の輪郭を描く境界ボックス１２０２を示す。一部の実施形態では、それぞれの境界ボックス１２０２が、その中により小さな境界ボックス１２０２を含む。例えば、図１２Ａおよび図１２Ｂでは、パッケージを識別する境界ボックス１２０２−１が、商標を識別する境界ボックス１２０２−２および残りの境界ボックス１２０２のすべてを取り囲む。テキストを含む一部の実施形態では、テキスト用語の一部のためのアクティブホットリンク１２０４も含まれる。図１２Ｂは、「Active Drink」および「United States」がホットリンク１２０４として表示されている一例を示す。これらの用語に対応する検索結果は、用語クエリサーバシステム１１８から受け取る結果であるのに対し、境界ボックスに対応する結果は、画像によるクエリ検索システムからの結果である。
【００９０】
図１３は、視覚クエリ内で認識されたエンティティのタイプごとにコード化された対話型結果ドキュメント１２００のスクリーンショットを有するクライアントシステム１０２を示す。図１１の視覚クエリは、人物の画像１１０６、商標の画像１１０８、製品の画像１１１０、および様々なテキスト要素１１１２を含む。そのため、図１３内に表示される対話型結果ドキュメント１２００は、人物１３０６、商標１３０８、製品１３１０、および２つのテキスト領域１３１２を取り囲む複数の境界ボックス１２０２を含む。図１３の境界ボックスは、各様に特色を与えられた透明な境界ボックス１２０２を表す別個のクロスハッチングを使ってそれぞれ提示する。一部の実施形態では、オーバーレイの色、オーバーレイパターン、ラベルの背景色、ラベルの背景パターン、ラベルのフォントの色、境界ボックスの枠線色など、視覚的に区別できる方法で提示するために境界ボックスの視覚的識別子（および／または対話型結果ドキュメント１２００内のラベルもしくは他の視覚的識別子）をフォーマットする。認識される特定のエンティティについてのタイプコード化を図１３の境界ボックスに関して図示するが、タイプごとのコード化は、ラベルである視覚的識別子にも適用することができる。
【００９１】
図１４は、ラベル１４０２が図１１の視覚クエリ１１０２のそれぞれの副部分の視覚的識別子である、対話型結果ドキュメント１２００のスクリーンショットを有するクライアント装置１０２を示す。ラベルの視覚的識別子１４０２は、対応する検索結果の一部へのユーザ選択可能リンクをそれぞれ含む。一部の実施形態では、その選択可能リンクは、ラベル１４０２の領域内に表示される説明的テキストによって識別される。一部の実施形態は、１つのラベル１４０２の中に複数のリンクを含む。例えば図１４では、飲み物を飲んでいる女性の上にあるラベルが、その女性に関する顔認識の結果へのリンクと、その特定の写真に関する画像認識の結果（例えば同じ写真を使用する他の製品や広告の画像）へのリンクとを含む。
【００９２】
図１４では、ラベル１４０２が、対話型結果ドキュメントのそれぞれの副部分上に位置する、テキストを有する部分的に透明な領域として表示される。他の実施形態では、それぞれのラベルが、対話型結果ドキュメントのそれぞれの副部分上には位置しないが、その付近に配置される。一部の実施形態では、図１３に関して論じたのと同じ方法でラベルをタイプごとにコード化する。一部の実施形態では、ユーザは、ラベル１３０２の縁または外周縁によって輪郭が描かれる空間内の活性化領域上でタップすることにより、ラベル１３０２に対応する特定の副部分に対応する検索結果の表示を活性化する。図１２Ａおよび図１２Ｂの境界ボックスに関して上記で論じたのと同じプレビュー機能および選択機能が、ラベルである視覚的識別子１４０２にも当てはまる。
【００９３】
図１５は、結果一覧１５００と同時に表示される対話型結果ドキュメント１２００および元の視覚クエリ１１０２のスクリーンショットを示す。図１２〜図１４に示すように、一部の実施形態では対話型結果ドキュメント１２００を単独で表示する。図１５に示すように、他の実施形態では対話型結果ドキュメント１２００を元の視覚クエリと同時に表示する。一部の実施形態では、視覚クエリの結果一覧１５００を、元の視覚クエリ１１０２および／または対話型結果ドキュメント１２００とともに同時に表示する。結果一覧１５００を対話型結果ドキュメント１２００と同時に表示するかどうかは、クライアントシステムの種類およびディスプレイ７０６上の空間量によって決まり得る。一部の実施形態では、クライアントシステム１０２は、（視覚クエリサーバシステムにサブミットする視覚クエリに応答して）結果一覧１５００および対話型結果ドキュメント１２００の両方を受け取るが、ユーザが対話型結果ドキュメント１２００の下方にスクロールする場合、結果一覧１５００だけを表示する。クライアントシステム１０２は、視覚クエリに応答して結果一覧１５００を受け取り、クライアントシステム１０２において局所的に記憶するので、これらの実施形態の一部では、クライアントシステム１０２は、ユーザが選択する視覚的識別子１２０２／１４０２に対応する結果を再度サーバにクエリする必要なしに表示する。
【００９４】
一部の実施形態では、結果一覧１５００を複数のカテゴリ１５０２へと編成する。各カテゴリは少なくとも１つの結果１５０３を含む。一部の実施形態では、結果１５０３と区別するためにカテゴリのタイトルを強調表示する。カテゴリ１５０２は、その計算されたカテゴリウェイトに応じて順序付けられる。一部の実施形態では、カテゴリウェイトは、そのカテゴリ内の最上位のＮ個の結果の重みの組合せである。そのため、より関連性のある結果をもたらした可能性が高いカテゴリを最初に表示する。認識された同一エンティティについて複数のカテゴリ１５０２（図１５に示す顔画像認識の一致および画像の一致など）が返される実施形態では、最初に表示されるカテゴリがより高いカテゴリウェイトを有する。
【００９５】
図３に関して説明したように、一部の実施形態では、クライアントシステム１０２のユーザが対話型結果ドキュメント１２００内の選択可能リンクを選択すると、カーソルが適切なカテゴリ１５０２またはそのカテゴリ内の最初の結果１５０３に自動的に移動する。あるいは、クライアントシステム１０２のユーザが対話型結果ドキュメント内の選択可能リンクを選択すると、選択されたリンクに関連する１つまたは複数のカテゴリが最初に表示されるように、結果一覧１５００が並べ替えられる。これは、例えば対応する検索結果を識別する情報を使って選択可能リンクをコード化することにより、または対応する選択可能リンクを示すように、もしくは対応する結果カテゴリを示すように検索結果をコード化することによって達成される。
【００９６】
一部の実施形態では、検索結果のカテゴリが、それらの検索結果をもたらす画像によるクエリ検索システムに対応する。例えば図１５では、カテゴリの一部は、製品の一致１５０６、ロゴの一致１５０８、顔認識の一致１５１０、画像の一致１５１２である。元の視覚クエリ１１０２および／または対話型結果ドキュメント１２００も、クエリ１５０４などのカテゴリタイトルにより同様に表示してもよい。同様に、用語クエリサーバが行う任意の用語検索の結果も、ウェブの結果１５１４などの別個のカテゴリとして表示してもよい。他の実施形態では、視覚クエリ内の複数のエンティティが、同じ画像によるクエリ検索システムからの結果をもたらす。例えば視覚クエリは、顔認識検索システムからの別個の結果を返すことになる２つの異なる顔を含むことができる。そのため一部の実施形態では、カテゴリ１５０２を、検索システムごとにではなく、認識するエンティティごとに分ける。一部の実施形態では、認識したエンティティの画像を認識エンティティカテゴリヘッダ１５０２の中に表示し、それにより、たとえ両方の結果が同じ画像によるクエリ検索システムによってもたらされても、認識したそのエンティティの結果を認識した別のエンティティの結果と区別することができる。例えば図１５では、製品の一致カテゴリ１５０６が２つのエンティティ製品のエンティティを含み、そのため、それぞれが複数の対応する検索結果１５０３を有する、箱入りの製品１５１６およびボトル入りの製品１５１８である２つのエンティティカテゴリ１５０２を含む。一部の実施形態では、カテゴリを、認識するエンティティおよび画像によるクエリシステムの種類ごとに分けることができる。例えば図１５では、製品の一致カテゴリの製品の下で、関連する結果を返した２つの別個のエンティティがある。
【００９７】
一部の実施形態では、結果１５０３がサムネイル画像を含む。例えば、図１５の顔認識の一致結果について示すように、「女優Ｘ」および「ソーシャルネットワークの友人Ｙ」に関する顔の一致写真の小さなバージョン（サムネイル画像とも呼ぶ）が、その画像内の人物の名前などの何らかのテキスト記述とともに表示される。
【００９８】
上記の記載は、説明目的で特定の実施形態に関して記載してきた。しかし上記の実例的な解説は、網羅的であることも本発明を開示した厳密な形態に限定することも意図しない。上記の教示に照らし、多くの修正形態および改変形態があり得る。本発明の原理およびその実用的応用を最も良く説明して、それにより当業者が本発明、および考えられる特定の用法に適合される様々な修正が加えられる様々な実施形態を最も良く利用できるようにするために実施形態を選択して説明した。
【図１】
0005933677.tif 000002
【図２】
0005933677.tif 000003
【図３】
0005933677.tif 000004
【図４】
0005933677.tif 000005
【図５】
0005933677.tif 000006
【図６】
0005933677.tif 000007
【図７】
0005933677.tif 000008
【図８】
0005933677.tif 000009
【図９】
0005933677.tif 000010
【図１０】
0005933677.tif 000011
【図１１】
0005933677.tif 000012
【図１２Ａ】
0005933677.tif 000013
【図１２Ｂ】
0005933677.tif 000014
【図１３】
0005933677.tif 000015
【図１４】
0005933677.tif 000016
【図１５】
0005933677.tif 000017