(57)【特許請求の範囲】
【請求項１】
コンピューター実装方法であって、
画像データーベース内の画像を検索するための自然言語クエリーを受け取るステップであって、前記画像データーベース内の画像は、複数の画像タグのうちの１または複数の画像タグとタグ付けされている、ステップと、
前記自然言語クエリーと前記複数の画像タグとの間のオントロジーにおける第１距離を計算するステップであって、前記複数の画像タグのうちの各画像タグは、前記オントロジーの概念である、ステップと、
前記自然言語クエリーと前記複数の画像タグとの間の単語の意味的空間における第２距離を計算するステップであって、前記単語の意味的空間は、単語のコーパスにおける単語の意味に基づく機械学習プログラムによって生成される、ステップと、
前記第１距離と前記第２距離の両方に基づいて、前記複数の画像タグのうちの少なくとも１つの画像タグを選択するステップと、
前記選択された少なくとも１つの画像タグを用いて前記画像データーベースを検索するステップと、
前記検索に応答して、前記選択された少なくとも１つの画像タグとタグ付けされた１または複数の画像を前記画像データーベースから引き出すステップと、
を含むコンピューター実装方法。
【請求項２】
前記第１距離は、前記オントロジーにおけるノード間を横断することによって計算され、前記オントロジーは、概念を表すノードのグラフであり、前記ノードは、前記概念間の関係にしたがってエッジによってリンクされる、請求項１に記載のコンピューター実装方法。
【請求項３】
前記機械学習プログラムはニューラル・ネットワークである、請求項１に記載のコンピューター実装方法。
【請求項４】
前記複数の画像タグのうちの少なくとも１つの画像タグを選択する前記ステップは、
各々計算された第１および第２距離を前記複数の画像タグのうちの特定の画像タグに対する投票として表すステップと、
各画像タグに対する投票を組み合わせるステップと、
前記投票に基づいて前記少なくとも１つの画像タグを選択するステップと、
を更に含む、請求項１に記載のコンピューター実装方法。
【請求項５】
前記１または複数の引き出された画像のうちの少なくとも一部を表示するステップと、
前記引き出された画像のうちの１つが選択されたことを示す情報を受け取るステップと、
前記選択された画像および前記選択された画像に関係する情報を表示するステップと、
を更に含む、請求項１に記載のコンピューター実装方法。
【請求項６】
前記選択された画像に関係する前記情報は、前記選択された画像に類似する１または複数の画像を含む、請求項５に記載のコンピューター実装方法。
【請求項７】
前記選択された画像に関するカーソルの位置を示す情報を受け取るステップであって、前記カーソルはユーザーによって制御される、ステップと、
前記カーソルが前記選択された画像内において識別された物体上に位置するか否かを判定するステップと、
前記カーソルが前記選択された画像内において識別された物体上に位置すると判定したことに応答して、前記識別された物体の周囲に境界ボックスを表示するステップと、
を更に含む、請求項５に記載のコンピューター実装方法。
【請求項８】
前記境界ボックスが選択されたことの指示を受け取るステップと、
前記境界ボックスに対応する前記識別された物体に関連付けられた画像タグを含むように、前記自然言語クエリーを更新するステップと、
を更に含む、請求項７に記載のコンピューター実装方法。
【請求項９】
前記自然言語クエリーは、複数のクエリー・タームと、前記複数のクエリー・タームのうちのタームが互いの第３距離以内に位置すべきか否かの指示とを含み、前記タームが互いの第３距離以内に位置すべきであると判定したことに応答して、前記選択された画像タグの各々とタグ付けされた１または複数の画像であって、前記選択された画像タグに関連付けられた物体が互いの前記第３距離以内に位置している１または複数の画像を、前記画像データーベースから引き出す、請求項１に記載のコンピューター実装方法。
【請求項１０】
プロセッサーと、前記プロセッサーに接続されたディスプレイと、命令を格納するメモリーとを含む計算ベース・デバイスを備えるシステムであって、前記命令は、前記プロセッサーによって実行されると、前記プロセッサーに、
画像データーベース内の画像を検索するための自然言語クエリーを受け取るステップであって、前記画像データーベース内の画像は、複数の画像タグのうちの１または複数の画像タグとタグ付けされている、ステップと、
前記自然言語クエリーと前記複数の画像タグとの間のオントロジーにおける第１距離を計算するステップであって、前記複数の画像タグのうちの各画像タグは、前記オントロジーの概念である、ステップと、
前記自然言語クエリーと前記複数の画像タグとの間の単語の意味的空間における第２距離を計算するステップであって、前記単語の意味的空間は、単語のコーパスにおける単語の意味に基づく機械学習プログラムによって生成される、ステップと、
前記第１距離と前記第２距離の両方に基づいて、前記複数の画像タグのうちの少なくとも１つの画像タグを選択するステップと、
前記選択された少なくとも１つの画像タグを用いて前記画像データーベースを検索するステップと、
前記検索に応答して、前記選択された少なくとも１つの画像タグとタグ付けされた１または複数の画像を前記画像データーベースから引き出すステップと、
を含む動作を行わせる、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  ユーザーは、カメラ、電話機、ディジタル・カメラ、ビデオ・カメラ、およびその他というような異なるデバイスによって、多数の画像を収集する。これらの画像は、通例、パーソナル・コンピューター、クラウド、または他の場所に格納またはバックアップされる。
【０００２】
[0002]  ユーザーにとって、彼らの画像収集を効率的にそして効果的に検索することは、時間がかかりしかも複雑である。通例、ユーザーは画像のサムネイルを全域にわたってスクロールすることしかできない。このため、特定のタスクに望まれる画像をブラウズまたは検索することは、ユーザーにとって困難になる。
【０００３】
[0003]  以前の手法は、日付および時刻スタンプまたはキーワードのようなメタデーターで画像にタグ付けする必要があった。タグ付けは、手作業でまたは自動的に行われる。タグ付けの後、ユーザーは、画像を突き止めるためのクエリーとしてタグを使用することができる。この種の手法は、ユーザーが引き出すために使用するタグを思い出せない、あるいは知らないまたは理解できないことがしばしばあるため、限定的である。
【０００４】
[0004]  以下で説明する実施形態は、既知の画像検索システムの欠点の内いずれかを解決する実施態様にも、その全てを解決する実施態様にも限定されない。
【発明の概要】
【０００５】
[0005]  以下に紹介するのは、読者に基本的な理解を与えるために簡略化した本開示の摘要である。この摘要は、本開示の広範な全体像ではなく、主要な／肝要なエレメントを特定するのでも、本明細書の範囲を明確に定めるのでもない。その唯一の目的は、後に提示する更に詳細な説明に対する序説として、簡略化した形態で、本明細書において開示する概念から選択したものを紹介することである。
【０００６】
[0006]  自然言語画像検索について説明する。例えば、これによって、自然言語クエリーを使用して、オントロジー（ontology）の概念（概念の階層を含んでもよい）である画像タグが自動的にタグ付けされた画像のストアから画像を引き出すことができる。種々の例では、自然言語クエリーは、複数の画像タグの内１つ以上にマッピングされ、マッピングされたクエリーが引き出しのために使用される。種々の例では、クエリーと画像タグとの間において１つ以上の距離尺度(distance measures)を計算することによってクエリーがマッピングされ、距離尺度は、オントロジーに関して、および／または自然言語コーパスから計算される単語の意味的空間に関して計算される。単語の意味的空間は、ニューラル・ネットワークを使用して計算することができる。例では、画像タグは、画像内に描かれたオブジェクトの境界ボックスに関連付けることができ、ユーザーは境界ボックスおよび／または画像を選択することによって、画像のストアをナビゲートすることができる。
【０００７】
[0007]  以下の詳細な説明を参照し、添付図面と関連付けて検討することによって、付随する特徴が一層深く理解され、それに連れてその多くが一層容易に認められるであろう。
【図面の簡単な説明】
【０００８】
[0008]  この説明は、以下の詳細な説明を添付図面を参照しながら読むことによって、一層良く理解されよう。
【図１】図１は、自然言語を使用して１組の画像を検索するシステムの模式図である。
【図２】図２は、自然言語を使用して１組の画像を検索するユーザー・インターフェース例の模式図である。
【図３】図３は、自然言語を使用して１組の画像を検索する他のユーザー・インターフェース例の模式図である。
【図４】図４は、図１の画像タグ付けサーバーのブロック図である。
【図５】図５は、図１の自然言語クエリー・マッパー(mapper)のブロック図である。
【図６】図６は、自然言語クエリー・タームを１つ以上のタグにマッピングする方法の流れ図である。
【図７】図７は、自然言語を使用して１組の画像を検索する方法の流れ図である。
【図８】図８は、１組の画像をナビゲートする方法の流れ図である。
【図９】図９は、本明細書において説明するシステムおよび方法の実施形態を実現することができる、実証的な計算ベース・デバイスを示す。
【０００９】
添付図面において同様の部分を示すために、同様の参照番号を使用する。
【発明を実施するための形態】
【００１０】
[0009]  添付図面と関連付けて以下に示す詳細な説明は、本例の説明であることを意図するのであって、本例を構成または利用することができる唯一の形態を表すことを意図するのではない。この説明は、本例の機能、および本例を構成し動作させるステップのシーケンスを明記する。しかしながら、同じまたは同等の機能およびシーケンスが異なる例によって遂行されることも可能である。
【００１１】
[0010]  本明細書において説明する例は、ディジタル写真のような画像を使用する。また、画像はビデオであってもよい。
[0011]  本明細書において説明するのは、自然言語クエリーを使用して１組の画像を検索するシステムおよび方法である。画像は、その画像のコンテンツを記述する１つ以上の画像タグと自動的にタグ付けされる。検索は、オントロジーおよび意味的埋め込み(semantic embedding)の組み合わせを使用して、自然言語クエリーを１つ以上の画像タグにマッピングすることによって、実行することができる。例えば、ある場合には、クエリーと画像タグとの間における１つ以上の距離尺度を計算することによって、自然言語クエリーがマッピングされ、距離尺度は、オントロジー(ontology)に関して、および／または自然言語コーパスから計算される単語の意味空間に関して計算される。計算された距離尺度は、次に、自然言語クエリーを表す１つ以上のタグを識別するために組み合わされる。次いで、識別された画像タグを使用して、検索判断基準と一致する画像（例えば、識別された画像タグがタグ付けされた画像）を識別する。
【００１２】
[0012]  １組の画像を、この画像のコンテンツおよび／または特徴を記述する１つ以上の画像タグと関連付けて格納することによって、引き出すときに各画像を分析する必要なく、あるいは手作業で画像毎にメタデーターを編集するまたは提供する必要なく、容易にそして効率的に画像を引き出すことが可能になる。この説明した方法およびシステムを使用して１組の画像から画像を引き出すことによって、ユーザーは、自然言語を使用して、素早くそして容易に関連する画像を引き出すことが可能になる。これによって、ユーザーが手作業で画像のリスト全域にわたってスクロールして、特定のコンテンツがある画像を突き止める必要性がなくなる。これは時間がかからずしかも誤りが生じにくい。
【００１３】
[0013]  更に、自然言語クエリー・タームを１つ以上の画像タグに自動的にマッピングすることによって、検索が容易になり、そして直観的になる。何故なら、ユーザーは、特定の画像タグが何であるか知る必要がなく、要するに彼らに馴染みがあり直観的な言語を使用することができるからである。自然言語クエリー・タームの句(query terms phrases)を１つ以上のタグにマッピングするためにオントロジーおよび意味的埋め込みの双方を使用することによって、オントロジーまたは意味的埋め込みのいずれかだけを使用するよりも、予想外に精度が高いマッピングが行われる。
【００１４】
[0014]  本明細書において説明する種々の例は、自然言語画像検索（即ち、訓練される概念／タグに限定されない）、および画像間におけるナビゲーションを、画像全体の類似性または領域レベルにおける類似性のいずれかによって可能にする。
【００１５】
[0015]  本明細書では、分散型画像引き出しシステムにおいて本例が実現されるものとして説明および例示するが、説明するシステムは、一例として示されるのであって限定ではない。当業者には認められようが、本例は、種々の異なるタイプの画像引き出しシステムにおける用途に適している。
【００１６】
[0016]  最初に図１を参照すると、図１は、自然言語クエリーを使用して１組の画像を検索するシステム例を示す。
[0017]  このシステムは、１組のタグ付けされていない画像１１４を自動的に分析し、タグ付けされていない画像１１４の各々に対してタグ付けされた画像１１２を生成するように構成された画像タグ付けサーバー１０２を含む。タグ付けされていない画像１１４は、画像の任意の収集(collection)または集合(set)でよい。例えば、タグ付けされていない画像は、特定のデバイス（例えば、スマートフォン）における画像の全て、特定のデバイスにおいて特定のユーザーに関連付けられた画像の全て、または複数のデバイス（例えば、スマートフォンおよびラップトップ）において特定のユーザーに関連付けられた画像の全てであってもよい。これらの画像は全て、１箇所に位置してもよく、または例えば通信ネットワーク１００を跨いで分散されてもよい。
【００１７】
[0018]  タグ付けされていない各画像には、その画像の特徴および／またはコンテンツを記述する１つ以上のタグが割り当てられる。特徴とは、例えば、画像内にある物体、光景、および／または陸標であってもよい。各タグは、オントロジー１０８の概念である。オントロジー１０８は、概念を表すノードのグラフであり、ノードは、概念間の関係にしたがってエッジによってリンクされる。ある例では、オントロジーは、複数のサブカテゴリーがある階層構造を有することもできる。
【００１８】
[0019]  具体的には、画像タグ付けサーバー１０２は、タグ付けされていない各画像１１４を分析して、画像内部の特徴を識別し、識別した各特徴に１つ以上の画像タグを割り当ててタグ付き画像を生成するように構成されている。画像タグ付けサーバー１０２の一例について、図４を参照して以下で説明する。
【００１９】
[0020]  また、このシステムは、画像検索およびナビゲーション・モジュール１０４も含む。画像検索およびナビゲーション・モジュール１０４は、ユーザーが自然言語検索をタグ付き画像１１２上で実行することを可能にする。具体的には、画像検索およびナビゲーション・モジュール１０４は、自然言語クエリー・タームおよび／または句をユーザーから、エンド・ユーザー・デバイス１１６を通じて受け取り、自然言語クエリー・タームを自然言語クエリー・マッパー１０６に供給するように構成されている。エンド・ユーザー・デバイス１１６は、例えば、スマートフォン、パーソナル・コンピューター、タブレット・コンピューター、またはラップトップであってもよい。
【００２０】
[0021]  自然言語クエリー・マッパー１０６は、各自然言語クエリー・タームまたは句を１つ以上のタグにマッピングする。種々の例において、自然言語マッパー１０６は、自然言語クエリー・タームまたは句がタグのリストにおけるタグの内の１つに一致するか否か判定するように構成することができる。タームまたは句がリストにおけるタグの内の１つと一致した場合、自然クエリー・マッパー１０６は、このクエリー・タームまたは句を、マッピング・プロセスの出力として、画像検索およびナビゲーション・モジュール１０４に逆に供給することができる。
【００２１】
[0022]  しかしながら、自然言語クエリー・タームまたは句がリストにおけるタグの内の１つと一致しない場合、自然言語クエリー・マッパー１０６は、自然言語クエリー・タームまたは句に最も類似する１つまたは複数のタグを選択するように構成することができる。ある場合には、自然言語クエリー・マッパー１０６は、オントロジーおよび意味的分析の組み合わせを使用して、クエリー・タームまたは句に最も類似する１つまたは複数のタグを選択するように構成される。例えば、自然言語クエリー・マッパー１０６は、クエリー・タームまたは句とタグとの間における１つ以上の距離を計算することができ、各距離は、クエリー・タームとタグとの間の類似性を表す。ある例では、自然言語クエリー・マッパー１０６は、クエリー・タームまたは句とタグとの間におけるオントロジーの距離、およびクエリー・タームまたは句とタグとの間における意味的空間の１つ以上の距離を計算するように構成される。次いで、計算した距離を使用して、クエリー・タームまたは句に最も近い、即ち、最も類似するタグ（１つまたは複数）を選択する。
【００２２】
[0023]  例えば、画像検索およびナビゲーション・モジュール１０４は、エンド・ユーザー・デバイス１１６のディスプレイ・モジュール上でグラフィカル・ユーザー・インターフェース１１８と相互作用するように構成することもできる。グラフィカル・ユーザー・インターフェース１１８は、ユーザーが、１つ以上のクエリー・タームおよび／または句（例えば、クエリー・ターム入力ボックス１２０に）を入力し、入力されたクエリー・タームおよび／または句を使用してタグ付き画像１１４の検索を開始することを可能にする（例えば、検索ボタン１２２をクリックする、またはそれ以外の方法で選択することによって）。検索を開始すると（例えば、検索ボタン１２２をクリックまたはそれ以外の方法で選択することによって）、自然言語クエリー・タームおよび／または句（例えば、クエリー・ターム入力ボックス１２０に入力された）は、画像検索およびナビゲーション・モジュール１０４に供給される。次いで、画像検索およびナビゲーション・モジュール１０４は、自然言語クエリー・タームおよび／または句を自然言語クエリー・マッパー１０６に供給する。
【００２３】
[0024]  ユーザーが、タグの内の１つに一致しない自然言語クエリー・タームまたは句（例えば、「車両」）を供給した場合、自然言語クエリー・マッパー１０６は、この自然言語クエリー・ターム（例えば、「車両」）をタグの内１つ以上（例えば、「車」）にマッピングし、マッピングしたタグ（例えば、「車」）を画像検索およびナビゲーション・モジュール１０４に供給することができる。
【００２４】
[0025]  自然クエリー・マッパー１０６の一例について図５を参照して説明し、自然言語クエリー・タームまたは句を１つ以上のタグにマッピングする方法の一例を図６を参照して説明する。この方法は、自然言語クエリー・マッパー１０６によって実行することができる。
【００２５】
[0026]  自然言語クエリー・マッパー１０６から１つ以上のタグを受け取ると、画像検索およびナビゲーション・モジュール１０４は、受け取ったタグを使用して、タグ付き画像１２２から、検索クエリー・タームおよび／または句と一致する画像を選択する。ある場合には、画像検索およびナビゲーション・モジュール１０４は、受け取ったタグ（１つまたは複数）がタグ付けされたまたは関連付けられた画像を選択するように構成される。次いで、画像検索およびナビゲーション・モジュール１０４は、選択した画像（例えば、検索クエリー・タームおよび／または句と一致する画像）を供給する。
【００２６】
[0027]  例えば、ユーザーが検索ターム「車両」を供給し、自然言語クエリー・マッパー１０６がこのクエリー・タームをタグ「車」にマッピングした場合、画像検索およびナビゲーション・モジュール１０４は、タグ付き画像１１２を検索して、タグ「車」が割り当てられた画像を求めることができる。次いで、画像検索およびナビゲーション・モジュール１０４は、検索の結果１３０（例えば、クエリー・タームおよび／または句と一致する画像）をユーザーに、例えば、エンド・ユーザー・デバイス１１６に表示されるグラフィカル・ユーザー・インターフェース１２４を通じて表示することができる。ある場合には、画像検索およびナビゲーション・モジュール１０４は、検索結果をユーザーに表示する前に、これらを順位付けするように構成することもできる。
【００２７】
[0028]  これより図２を参照すると、図２は、ユーザーが自然言語クエリーを使用して１組の画像を検索することを可能にするグラフィカル・ユーザー・インターフェース１２４の一例を表示する(display)。
【００２８】
[0029]  図１を参照して説明したように、グラフィカル・ユーザー・インターフェース１２４は、自然言語クエリー・タームおよび／または句をユーザーから受け取るように構成されているクエリー・ターム入力ボックス１２６を含むことができる。クエリー・タームおよび／または句は、１つ以上のキーワードまたはキー句(key phrase)（例えば、「車」および「人」）、および１つ以上の関係ターム(relationship term)を含むことができ、または関係タームを含まない場合もある。関係タームとは、「および」、「いいえ」、「または」というような、キーワード間の関係を指定するタームである。「脇」、「右」、「左」、「近く」というような空間関係タームも使用することができる。ある場合には、関係タームが指定されないと、「および」のようなデフォルトの関係用語をグラフィカル・ユーザー・インターフェースが仮定することもできる。
【００２９】
[0030]  また、グラフィカル・ユーザー・インターフェース１２４は検索ボタン１２８も含む。検索ボタン１２８は、有効化されると（例えば、ボタン１２８上でクリックする、またはそれ以外の方法でボタン１２８を選択することによって）、クエリー・ターム入力ボックス１２６内の自然言語クエリー・タームおよび／または句を使用して、タグ付き画像１１４の検索を開始する。
【００３０】
[0031]  先に説明したように、検索が開始されると、クエリー・ターム入力ボックス１２６内の自然言語クエリー・タームおよび／または句が画像検索およびナビゲーション・モジュール１０４に送られ、これらは自然言語クエリー・マッパー１０６によって１つ以上のタグに変換またはマッピングされ、次いで、マッピングされたタグは、自然言語クエリー・タームおよび／または句と一致する画像を識別し引き出すために使用される。次いで、識別された画像（あるいはその一部またはその１バージョン）はユーザーに供給される（例えば、エンド・ユーザー・デバイス１１６を通じて）。
【００３１】
[0032]  図２に示す例では、ユーザーは自然言語クエリー・ターム「車」を使用して１組の画像を検索した。クエリーと一致する画像１３０（あるいはそのサムネイルまたは１バージョン）（例えば、タグ「車」と関連付けられた画像）が、グラフィカル・ユーザー・インターフェース１２４を通じてユーザーに表示される。
【００３２】
[0033]  ある場合には、ユーザーが、特定の表示画像についてもっと多くの情報を、その画像上でクリックするまたは他の方法で選択することによって、発見できるとよい。例えば、図２に示すように、ユーザーが第１表示画像１３０上でクリックするかまたはそれ以外の方法で選択すると、ウィンドウ２００内に、この画像１３０についての情報またはこの画像１３０に関する情報（例えば、タグ、関連画像等）と共にこの画像を表示することができる。ウィンドウ２００は、主要なグラフィカル・ユーザー・インターフェース１２４の一部であってもよく、または主要なグラフィカル・ユーザー・インターフェースとは別であってもよい。
【００３３】
[0034]  ある例では、ウィンドウ２００が、画像１３０と関連付けられているタグ２０２のリストを表示することもできる。例えば、図２では、ウィンドウ２００は、選択画像１３０がタグ２０２「人」、「車」、および「道」と関連付けられている（またはタグ付けされている）ことを示す。ある場合には、タグを分類することもでき、これらがユーザーに表示されるとき（例えば、ウィンドウ２００において）、これらはそのカテゴリと関連付けて表示される。例えば、画像内において識別された物体に関係するタグは、「物体」タグであるとして識別することができ、画像内において識別された特定の光景に関係するタグは「光景」タグとして識別することができ、画像内において識別された特定の陸標に関係するタグは、「陸標」タグとして識別することができる。画像内における特定の領域（または境界ボックス）に関係するタグは、「領域」タグとして識別することができる。ある場合には、ユーザーが、これらのタグの内１つの上でクリックする、またはそれ以外の方法で選択することによって、クエリー・タームを自動的に更新することもできる。例えば、ユーザーがタグ「人」上でクリックした、またはそれ以外の方法で選択した場合、ターム「人」をクエリー・ターム入力ボックスに追加することができる。
【００３４】
[0035]  ある例では、ウィンドウ２００が、更にまたは代わりに、選択画像１３０に類似する１つ以上の画像２０４および２０６も表示することもできる。２つの画像の類似性は、例えば、これらが共有する（即ち、共通して有する）画像タグの数に基づいて判定することができる。例えば、ある場合には、２つの画像が共通して有する画像タグが多い程、これらの類似性は高くなる。また、２つの画像の類似性は、画像タグに割り当てられる信頼値に基づくこともできる。例えば、タグ付けされていない画像１１４に１つ以上の画像タグをタグ付けすることに加えて、画像タグ付けサーバー１０２は、画像に割り当てられる各タグに信頼値を割り当てるように構成することもできる。信頼値は、画像に関する画像タグの精度を示す（例えば、画像が、画像タグによって示される特徴（例えば、物体、光景等）を含む可能性（likelihood)を示す。ユーザーは、同様の画像上でクリックする、またはそれ以外の方法で選択することによって、特定の類似する画像について更に学習することができる。他の例では、２つの画像の類似性は、画像から抽出された視覚的特徴に基づいて判定することもできる。特徴は、ディープ・ニューラル・ネットワーク(deep neural network)を使用して、または他の方法で抽出することができる。
【００３５】
[0036]  ある例では、ユーザーが、例えば、ウィンドウ２００内において選択画像１３０の表示上でカーソルを動かすことによって、選択画像１３０においてどの物体が識別されたのか見ることができるのでもよい。識別された物体上にカーソルが位置付けられると、識別された物体を、そういうものとして、示すまたは強調することができる。例えば、図２に示すように、矩形ボックス２０８（境界ボックスとも呼ぶ）を、識別された物体の回りに示すこともできる。物体周囲の境界ボックスは、実際に描かれるのではなく、画像上に単に現れることができる。ボックス２０８がクリックされると、これを使用して、関連する領域タグを有する画像を検索することによって、画像間でナビゲートすることができる。例えば、境界ボックス２０８が人を含む場合、領域タグは「人」にすることができる。境界ボックス２０８を選択してユーザー入力を受け取られると、画像を引き出すためのクエリーとして領域タグを使用することができる。
【００３６】
[0037]  ユーザーは、選択画像１３０内において物体上でクリックする、またはそれ以外の方法で選択することによって、クエリーにタームを自動的に追加することができる。例えば、ユーザーが、選択画像１３０内に示されている人の内ひとりの上でカーソルを動かすと、この人の上に矩形ボックスが表示される。次いで、ユーザーが矩形ボックス内のいずれかの場所でクリックすると、クエリー・ターム入力ボックスが２つのクエリー・ターム、「車」および「人」を含むように、ターム「人」を追加することができる。その後クエリーが開始されると、システムの構成に応じて、いずれかのクエリー・タームまたは双方のクエリー・タームと一致する画像を突き止めるために、このクエリーを実行することができる。例えば、ターム「車」および「人」を含むようにクエリーが自動的に更新または変更される場合、双方のクエリー・ターム（例えば、「車」および「人」）と一致する画像２１２を表示するように、グラフィカル・ユーザー・インターフェース２１０を更新することができる。
【００３７】
[0038]  このようにユーザーが自動的にクエリー・タームを更新するのを可能にすることによって、クエリーを編集し、１組の画像全体にわたってナビゲートするための素早くて効率的な方法をユーザーに提供する。
【００３８】
[0039]  画像検索の結果は、格子パターンまたはその他のパターンで配列された複数のサムネイル画像として提示することができる。ある例では、最上位に順位付けされた画像（検索から戻された）がグラフィカル・ユーザー・インターフェースの結果領域の中心に提示され、順位が低い画像は中央の画像の回りに提示され、円弧が中央の画像を、それよりも順位が低い画像の各々と結び付ける。円弧は、中央の画像とそれよりも順位が低い画像との間における類似性の強さを表す幅、色、またはその他の特徴を有することができる。
【００３９】
[0040]  これより図３を参照すると、図３は、ユーザーが自然言語を使用して１組の画像を検索することを可能にするグラフィカル・ユーザー・インターフェースの他の例３００を示す。この例では、グラフィカル・ユーザー・インターフェース３００は、図１および図２のグラフィカル・ユーザー・インターフェース１２４と同様、クエリー・ターム入力ボックス３０２および検索ボタン３０４を含む。これらは、図１および図２のクエリー・ターム入力ボックス１２６および検索ボタン１２８と同様に動作することができる。
【００４０】
[0041]  また、図３のグラフィカル・ユーザー・インターフェース３００は近接性選択ツール３０６も含む。近接性選択ツール３０６は、画像内において互いに近接する指定クエリー・タームを有する画像を、ユーザーが検索することを可能にする。本明細書では、このような検索を近接性検索またはクエリーと呼ぶ。例えば、図３に示すように、クエリー・タームが「人」および「自転車」を含む場合、これらのタームを使用して検索またはクエリーを開始すると（例えば、検索ボタン３０４上でクリックする、またはそれ以外の方法で選択することによって）、自転車の近くにいる（即ち、近接する）人を含む画像を識別する。
【００４１】
[0042]  ある場合には、画像タグ付けサーバー１０２が、画像内において識別された任意の物体の位置を、タグ付け画像と関連付けて記録するように構成されてもよい。この情報は、その後、近接性検索が開始されたときに、画像内における物体間の距離を動的に判定するために使用することができる。例えば、画像検索およびナビゲーション・モジュール１０４が近接性検索をユーザーから（例えば、エンド・ユーザー・デバイス１１６を通じて）受けたとき、画像検索およびナビゲーション・モジュール１０４は、クエリー・タームに一致する１組のタグ付き画像において画像を突き止める、または識別し、位置情報を使用して、識別された画像内において指定された物体間の距離を判定し、計算された距離が所定の閾値を超える場合、識別された画像を全て排除するように構成することができる。
【００４２】
[0043]  代わりに、画像タグ付けサーバー１０２は、画像内における任意の物体間の距離を自動的に判定し、この距離情報を、タグ付き画像と関連付けて、格納するように構成することもできる。これによって、近接性クエリーと一致する画像の引き出しを更に素早く行うことが可能になる。何故なら、画像およびナビゲーション・モジュール１０４は、最初に距離を計算しなくても、一致する画像のリストを戻すことができるからである。しかしながら、追加の距離情報を格納するために、より多くの空間が必要となる。
【００４３】
[0044]  これより図４を参照すると、図４は、画像タグ付けサーバー１０２の一例を示す。先に説明したように、画像タグ付けサーバー１０２は、タグ付けされていない画像４０２を受け取り、タグ付き画像４０４を生成する。タグ付き画像４０４は、それに関連付けられた１つ以上のタグを有する画像であり、タグはこの画像の特徴を記述する。ある場合には、画像タグ付けサーバー１０２は、タグ付けされていない画像だけを受け取るのでもよい。他の場合には、画像タグ付けサーバー１０２は、画像に関連するメタデーターも受け取ることができる。画像タグ付けサーバーが、タグ付けされていない画像に加えて、メタデーターも受け取る場合、画像タグ付けサーバー１０２は、画像にタグ付けするのを補助するためにこのメタデーターを使用することができる。例えば、全地球測位システム（ＧＰＳ）を使用して、陸標のデーターベースから、近隣にある陸標を引き出すことができる。近隣にある陸標の名称をタグとして使用することもできる。他の例では、写真を写す間におけるフラッシュの使用が、「夜」のタグの可能性(chance)を高めることができ、または日中における野外に対する夜間における野外の競合モデル間で選択するために使用することができる。
【００４４】
[0045]  画像タグ付けサーバー１０２は、１つ以上の認識モジュールを含む。例えば、陸標認識モジュールは、ＧＰＳデーターおよび陸標のデーターベースを使用する。認識モジュールの内いくつかは、画像内部において一定の特徴を識別し、１つ以上のタグを各識別された特徴と関連付けるために、予め訓練されている。例えば、図４の画像タグ付けサーバー１０２は、物体認識モジュール４０６、光景認識モジュール４０８、陸標認識モジュール４１０、活動認識モジュール４１２、画像内テキスト認識モジュール４１４、顔認識モジュール４１６、性別認識モジュール４１８、年齢認識モジュール４２０、表現認識モジュール４２２を含む。活動認識モジュール４１２は、画像内に描かれている活動を検出するために、規則または訓練された機械学習システムを使用することができる。画像内テキスト認識モジュールは、ＯＣＲコンポーネントを含むことができる。年齢および性別認識モジュールは、画像内に描かれている任意の人からしかるべき同意が得られたときに動作する。これらは、画像内に描かれた人を性別クラスおよび年齢クラスに分類するために、機械学習および／または規則を使用する。表現認識モジュールは、ジェスチャ認識、および顔表現認識コンポーネントを含むことができ、これらは機械学習コンポーネントであってもよい。
【００４５】
[0046]  他の例では、画像タグ付けサーバー４０２は、これらの認識モジュールの内１つだけを含んでもよく、これらの認識モジュールの他の組み合わせを含んでもよく、または他の適した認識モジュールを含んでもよい。
【００４６】
[0047]  物体認識モジュール４０６は、画像内において物体を識別し、識別した物体を分類し、分類に基づいて物体に１つ以上のタグを割り当てるように構成されている。物体認識モジュール４０４は、判別技法を使用して、画像のエレメントを固定数の物体クラスの内の１つに分類するように構成することができる。例えば、画素差特徴(pixel difference features)を使用して画像の画素を分類するために、訓練されたランダム判断フォーレスト(trained random decision forest)を使用することができる。ある場合には、ランダム判断フォーレストのツリーの各ノードが、外観または形状と関連付けられる。次いで、分類に基づいて、１つ以上のタグが画像に割り当てられるか、あるいは境界ボックス、画素、または画素のグループのような、画像のエレメントに割り当てられる。
【００４７】
[0048]  光景認識モジュール４０８は、画像の光景を分類し、分類に基づいて１つ以上のタグを割り当てるように構成されている。光景クラシファイア(scene classifier)は、画像から視覚的特徴を抽出し次いでクラシファイア（ランダム・フォーレストまたはニューラル・ネットワークのような）を訓練することを含む、所与の光景のための機械学習モデルを構築するために、標識付きデーター（既知の光景を含む画像）から訓練することができる。特徴抽出は、生の画素値に対して特徴抽出および分類の双方を実行するように構成されたディープ・ニューラル・ネットワークを使用して行うことができる。
【００４８】
[0049]  陸標認識モジュール４１０は、画像内における既知の陸標（例えば、ピザの斜塔）を識別し、識別に基づいて１つ以上のタグを割り当てるように構成されている。ある場合には、陸標認識モジュール４１０は、物体認識モジュール４０６と協働して動作することもできる。例えば、陸標認識モジュール４１０は、物体認識モジュール４０８から、画像内において識別された物体についての情報を受け取ることもできる。次いで、陸標認識モジュール４１０は、物体の形状およびメタデーターにおける位置情報を使用して、物体を陸標として識別することができる。位置情報は、画像を生成したデバイス（例えば、カメラ）によって自動的に生成することができ、または手作業でメタデーターに入力することも可能である。一旦陸標認識モジュール４１０が物体を陸標として識別したなら、１つ以上のタグを画像に割り当てるかまたは関連付ける。他の例では、画像に関連付けられたＧＰＳメタデーターが、陸標のデーターベースにおいて潜在的に可能な陸標を調べるために使用される。近接する陸標が１つよりも多くある場合、データーベースに格納されている陸標の円錐状画像を使用して潜在的に可能な陸標から１つを選択するために、画像の視覚的コンテンツを使用することができる。
【００４９】
[0050]  これより図５を参照すると、図５は、自然言語クエリー・マッパー１０６の一例を示す。先に説明したように、自然言語クエリー・マッパー１０６は、自然言語クエリー・タームおよび／または句５００を画像検索およびナビゲーション・モジュール１０４から受け取り、各自然言語クエリー・タームおよび句を複数の画像タグ５０３の内の１つ以上の画像タグ５０２にマッピングする（ここでは、マッピング・タグ(mapped tag)と呼ぶ）。具体的には、自然言語クエリー・マッパー１０６は、意味的分析およびオントロジーの組み合わせを使用して（ここで、各タグはオントロジーにおける１つの概念となる）、各自然言語クエリー・タームおよび／または句５００を１つ以上の画像タグ５０２にマッピングする。マッピングされた画像タグ５０２は、次いで、マッピングされた画像タグ５０２とタグ付けされている画像を特定するために、画像検索およびナビゲーション・モジュール１０４に供給される。
【００５０】
[0051]  図５の自然言語クエリー・マッパー１０６は、意味的距離モジュール５０４を含む。意味的距離モジュール５０４は、自然言語クエリー・タームまたは句と可能な画像タグの各々との間における意味的空間における少なくとも１つの距離を計算するように構成されている。各距離は、自然言語クエリー・タームまたは句と対応する画像タグとの間における意味的類似性を示す。２つの単語または句の意味的類似性は、これらが類似する意味を有するか否か（例えば、これらが同じコンテキストにおいて同様のことを意味するために使用される）に基づく。
【００５１】
[0052]  ある場合には、意味的距離（１つまたは複数）は、意味的距離モジュール５０４によって、単語および／または句の意味的埋め込み５０６から計算される。意味的埋め込み５０６とは、単語の意味的空間であり、各単語または句が、単語および／または句間の意味的類似性を表す低または高次元埋め込みベクトルにマッピングされる。
【００５２】
[0053]  ある場合には、意味的埋め込み５０６は、意味的エンコーディング(semantic encoding)５０８を自然言語コーパス５１０に適用することによって生成される。自然言語コーパス５１０とは、大きな１組のテキストである。意味的埋め込み５０８は、単語間の意味的情報を取り込むように訓練された機械学習コンポーネントである。
【００５３】
[0054]  ある場合には、意味的エンコーディングは、再帰的ニューラル・ネットワーク（ＲＮＮ）のようなニューラル・ネットワークであり、周囲の単語（またはコンテキスト）が与えられて、単語を予測するように訓練される。結果的に、同様のコンテキストに現れる単語は同様の埋め込みベクトルを有することになる。このようなニューラル・ネットワークを自然言語コーパス５１０に適用すると、自然言語コーパスにおいて発見される文章における単語の使用の類似性に基づいて、各単語の高次元埋め込みが得られる結果となる。例えば、単語「暖かい」(warm)および「熱い」(hot)は、以下と同様の文章に現れると考えられる。
【００５４】
スープは未だ熱かった...
スープはまだ温かかった...
暑い天候...
暖かい天候...
[0055]  この結果、単語「熱い」および「暖かい」は同様または同一の埋め込みベクトルを有することになる。
【００５５】
[0056]  意味的距離モジュール５０４は、単語の意味的空間における１つ以上の距離（即ち、意味的埋め込み５０６）を計算するように構成することができる。具体的には、意味的距離モジュール５０４は、１つ以上の距離モジュールを含むことができ、各距離モジュールが異なる方法で距離を計算する。例えば、図５の意味的距離モジュール５０４は、自然言語クエリー・タームおよび／または句と個々のタグとの間におけるコサイン類似性(cosine similarity)を計算するコサイン類似性モジュール５１２と、自然言語クエリー・タームおよび／または句と個々のタグとのドット積を計算するドット積モジュール５１４と、自然言語クエリー・タームおよび／または句と個々のタグとのダイス類似性(dice similarity)を計算するダイス類似性モジュール５１６と、自然言語クエリー・タームおよび／または句と個々のタグとの間におけるハミング距離を計算するハミング距離モジュール５１８と、自然言語クエリー・タームおよび／または句と個々タグとの間における街区距離(city block distance)を計算する街区距離モジュール５２０とを含む。しかしながら、他の例では、意味的距離モジュール５０４は、これらの距離モジュールの内１つだけ、これらの距離モジュールの異なる組み合わせ、または異なるタイプの距離モジュールを含むこともできる。
【００５６】
[0057]  各距離モジュール５１２〜５２０は、異なる方法で距離を計算し、つまり、各々が異なる方法で単語および／または句間の類似性を判定する。最良の結果を得るために、種々の距離モジュール５１２〜５２０によって計算された距離を組み合わせて、結果における一致(agreement)を捜す。具体的には、距離を閾値モジュール５２２に供給することができ、閾値モジュール５２２は、所定の閾値よりも大きい距離はいずれも（自然言語クエリー・タームおよびタグが大して類似しないことを示す）破棄することができる。閾値は、異なる種類の距離毎に異なってもよい。対応する所定の閾値内に収まる距離はいずれも選択モジュール５２４に供給され、閾値を超えた距離は対応するタグに対して１票を投ずる。次いで、投票を組み合わせて、得票数が最も多いタグ(the tags or tags)を選択する。ある場合には、類似性の強さ（例えば、距離値）に基づいて、投票に重み付けする。このように距離を組み合わせることによって、各距離が異なる判断基準を使用するので、マッピングの精度が向上する。一般に、使用される異なる距離計算が多い程、マッピングの精度は向上する。しかしながら、その代わりに処理時間およびリソースが増大する。
【００５７】
[0058]  異なる意味的距離値を計算して組み合わせることによって、非常に精度が高いマッピング結果を生成することができるが、場合によっては、単語およびその反対語（または関係ない単語）が同じコンテキストにおいて使用されることも一般的である。例えば、反対語および関係ない単語「速い」、「遅い」、および「殆ど」が、「ゆっくり動く列車」および「速く動く列車」、ならびに「殆ど動かない列車」というような同様のコンテキストで使用されることもあり得る。したがって、これらの状況において判別し、こうしてマッピングの精度を高めるために、追加の情報（即ち、意味的分析情報以外の情報）が有用になり得る。
【００５８】
[0059]  ある例では、追加の情報はオントロジーから得られる。具体的には、図５の自然言語クエリー・マッパーの一例１０６は、オントロジー距離モジュール５２６を含む。オントロジー距離モジュール５２６は、自然言語クエリー・タームまたは句５００と画像タグの各々との間のオントロジーにおける距離を計算するように構成されている。先に説明したように、オントロジー１０８は、概念（各タグはオントロジーにおける概念である）を表すノードのグラフであり、ノードは、概念間の関係にしたがって、エッジによってリンクされる。各オントロジー距離は、オントロジーにおけるノード間を横断することによって計算される。
【００５９】
[0060]  オントロジーは、WordNet（登録商標）のような市販されているオントロジー、または特別に開発されたオントロジーでもよい。WordNet（登録商標）は、英単語の大きな語彙データーベースであり、英単語が複数組の認知同義語(cognitive synonyms)（Ｓｙｎｓｅｔ）にグループ化され、各々が異なる概念を表現する。ｓｙｎｓｅｔは、概念−意味および語彙関係によって相互リンクされる。
【００６０】
[0061]  オントロジー距離モジュール５２６によって生成されたオントロジー距離は、閾値モジュール５２２にも供給され、一定の閾値よりも大きな距離はいずれも破棄または無視され、所定の閾値以内に収まる距離はいずれも選択モジュール５２４に供給され、対応するタグに対して１票を投ずる。
【００６１】
[0062]  これより図６を参照すると、図６は、自然言語クエリー・マッパー１０６によって実行することができるオントロジーおよび意味的分析の組み合わせを使用して、自然言語クエリー・タームまたは句を１つ以上の画像タグにマッピングする方法を示す。ブロック６００において、自然言語クエリー・マッパーは自然言語クエリー・タームまたは句を受け取る。先に説明したように、自然言語クエリー・タームまたは句は、画像検索およびナビゲーション・モジュール１０４が検索要求（１つ以上のクエリー・タームおよび／または句を指定する）をユーザーからエンド・ユーザー・デバイス１１６を通じて受け取った後に、画像検索およびナビゲーション・モジュール１０４から受け取ることができる。
【００６２】
[0063]  自然言語クエリー・タームおよび／または句を受け取ると、自然言語クエリー・マッパー１０６は、このタームおよび／または句が基準集合（例えば、画像タグの１つ）内にあるか否か判定する（６０２）。自然クエリー・タームおよび／または句が基準集合内にある場合、自然言語クエリー・マッパー１０６は、画像タグを画像検索およびナビゲーション・モジュール１０４に供給し、次いで、画像検索およびナビゲーション・モジュール１０４がこの画像タグを使用して、自然言語クエリー６０４と一致する画像を識別して引き出す。
【００６３】
[0064]  自然クエリー・タームおよび／または句が基準集合内にない場合（例えば、画像タグと一致しない）、本方法はブロック６０６および６０８に進み、自然言語クエリー・タームまたは句と個々の画像タグとの間におけるオントロジー距離および１つ以上の意味的空間距離を計算する。図５を参照して先に説明したように、オントロジー距離の計算は、自然言語クエリー・タームまたは句と個々画像タグとの間のオントロジーにおける距離（例えば、WordNet（登録商標））を計算することを含むのでもよく、各画像タグはオントロジーにおける概念となる。
【００６４】
[0065]  図５を参照して先に説明したように、１つ以上の意味的距離の計算は、自然言語クエリー・タームまたは句と個々の画像タグとの間の単語の意味的空間における距離を計算することを含むのでもよい。単語の意味的空間は、ニューラル・ネットワークのような訓練された機械学習コンポーネントを自然言語テキストのコーパスに適用することによって、生成されていてもよい。意味的距離は、コサイン類似性、ドット積、ダイス類似性、ハミング距離、および街区距離の内１つ以上を含むことができる。
【００６５】
[0066]  一旦オントロジーおよび意味的距離が生成または計算されたなら、本方法はブロック６１０に進み、所定の閾値よりも大きな距離を排除または破棄するために、１つ以上の閾値をオントロジーおよび意味的距離に適用する。各種類の距離には特定の所定の閾値があってもよく（例えば、オントロジー距離に１つ、そして各種類の意味的距離に１つずつ）、または全ての距離に適用される１つの所定の閾値があってもよい。閾値（１つまたは複数）を適用する目的は、しかるべき画像タグを選択するときに考慮にいれる必要がないクエリー・タームまたは句間における、このような離れた類似性を示す距離を排除することである。この段階においてこれらの距離を排除することによって、最良の画像タグ候補を選択するために必要とされる処理パワーを低減することができる。
【００６６】
[0067]  一旦計算された距離に閾値（１つまたは複数）が適用されたなら、本方法は６１２に進み、残っている距離を使用して、自然言語クエリー・タームまたは句に最も近い１つ以上の画像タグを選択する。ある場合には、残っている距離の各々が、対応する画像タグに対する１票と見なされる。次いで、画像タグ毎に投票を集計して、画像タグ毎に投票数または値を得る。得票が最も多い画像タグを最良の画像タグ候補６４１として選択し、画像検索およびナビゲーション・モジュール１０４に転送することができる。
【００６７】
[0068]  ある場合には、投票を集計する前に、各投票に重み付けする。重みは、関連する距離値の大きさ(magnitude)に基づくのでもよい。例えば、ある場合には、小さな距離値程高い重みが与えられる。
【００６８】
[0069]  これより図７を参照すると、図７は、自然言語クエリー・タームおよび／または句を使用して１組の画像を検索する方法を示す。この方法は、検索およびナビゲーション・モジュール１０４によって実行することができる。ブロック７００において、検索およびナビゲーション・モジュール１０４は検索クエリー（自然言語クエリー・タームおよび／または句と、必要に応じて近接インディケータとを含む）をユーザーからエンド・ユーザー・デバイス１１６を通じて受け取る。自然言語クエリー・タームおよび／または句を受け取ると、検索およびナビゲーション・モジュール１０４は、自然言語クエリー・タームおよび／または句を１つ以上の画像タグにマッピングするために、この自然言語クエリー・タームおよび／または句を自然言語クエリー・マッパー１０６に供給する（７０２）。自然言語クエリー・マッパー１０６は、例えば、図６の方法を使用して、自然言語クエリー・タームおよび／または句を１つ以上の画像タグにマッピングすることができる。次いで、自然言語クエリー・マッパー１０６は、マッピングした画像タグを画像検索およびナビゲーション・モジュール１０４に供給する。
【００６９】
[0070]  ある例では、マッピングされた画像タグを受け取ったとき、本方法はブロック２０４に進み、画像検索およびナビゲーション・モジュール１０４は画像タグを、エンド・ユーザー・デバイス１１６上に表示されているグラフィカル・ユーザー・インターフェースに出力する。しかしながら、画像タグをＧＵＩに出力することは必須ではない。次いで、本方法はブロック２０６に進む。
【００７０】
[0071]  ブロック２０６において、画像検索およびナビゲーション・モジュール１０４は、マッピングされた画像タグを使用して、タグ付き画像データーベースから、自然言語クエリー・タームおよび／または句と一致する１つ以上の画像を識別して引き出す。例えば、画像検索およびナビゲーション・モジュール１０４は、マッピングされた画像タグがタグ付けされている画像を引き出すことができる。検索要求が近接インディケータを含む場合、マッピングされた画像タグがタグ付けされており、更にマッピングされた画像タグによって識別された物体を近接して有する画像だけを引き出すことができる。一旦タグ付き画像データーベースから一致画像が引き出されたなら、本方法はブロック２０８に進むことができ、または直接ブロック２１０に進むことができる。
【００７１】
[0072]  ブロック２０８において、画像検索およびナビゲーション・モジュール１０４は、引き出した画像がどの位検索判断基準と一致するかに基づいて、これらを順位付けする。例えば、先に説明したように、ある場合には、画像タグ付けサーバー１０２は、画像に割り当てられた各画像タグに信頼値を割り当てるように構成することもできる。信頼値は、タグの精度を示す（例えば、タグによって識別された項目を画像が含む可能性）。これらの場合、画像検索およびナビゲーション・モジュール１０４は、引き出した画像を順位付けするように構成することができる。例えば、マッピングされた画像タグ（マッピングされたクエリー・タームと交わる(intersect with)）に対する信頼値が高い程、画像は高く順位付けされる。他の場合では、引き出された画像を順位付けするために、他の判断基準を使用することもできる。例えば、人間の注釈者によって手作業で判断されたクエリー−画像対に基づいて、検索結果を順位付けする(rank order)ように機械学習順位付け手段(ranker)を訓練することもできる。
【００７２】
[0073]  ブロック２１０において、画像検索およびナビゲーション・モジュール１０４は、引き出した画像を順位付けして、または順位付けせずに、エンド・ユーザー・デバイス１１６のグラフィカル・ユーザー・インターフェースに出力することができる。
【００７３】
[0074]  これより図８を参照すると、図８は１組の画像全体にわたってナビゲートする方法を示す。この方法は、画像検索およびナビゲーション・モジュール１０４によって実行することができる。ブロック８００において、画像検索およびナビゲーション・モジュール１０４は、エンド・ユーザー・デバイス１１６から、ユーザーが表示画像または表示画像内にある物体（例えば、境界ボックスによって示される）の内１つを選択したことの指示を受ける。
【００７４】
[0075]  画像検索およびナビゲーション・モジュール１０４は、選択された画像または選択された物体８０２に関連付けられたタグを引き出し、選択された画像または物体に対する画像タグをグラフィカル・ユーザー・インターフェース８０４内に表示する。ユーザーが画像を選択した場合、この画像に対する画像タグを、図２に示すように、グラフィカル・ユーザー・インターフェース内にリストとして表示することができる。しかしながら、ユーザーが画像内部にある物体を選択した場合、この物体に関連付けられた画像タグを、例えば、境界ボックスの上に表示する、または図２に示すようにクエリー・ターム入力ボックス内に表示することができる。
【００７５】
[0076]  また、画像検索およびナビゲーション・モジュール１０４は、選択された画像または選択された物体に対する画像タグを使用して画像も引き出す。ユーザーが画像を選択した場合、引き出される画像は、選択された画像に類似する画像であろう。類似性は、共通に共有される画像タグに基づくことができる。共有される画像タグが多い程、２つの画像は増々類似する。したがって、ユーザーが画像を選択した場合、画像検索およびナビゲーション・モジュール１０４は、タグ付き画像データーベースから、選択された画像と同じ画像タグがタグ付けされている画像を引き出すように構成することができる。しかしながら、ユーザーが画像を選択した場合、引き出される画像はクエリー・ターム入力ボックス内のクエリー・タームを含む画像（この場合、選択された物体に関連付けられた画像タグを含む）になるであろう。一旦タグ付き画像データーベースから画像が引き出されたなら、本方法はブロック８０８に進むことができ、または直接ブロック８１０に進むことができる。
【００７６】
[0077]  ブロック８０８において、引き出しに使用された画像タグの精度に基づいて、引き出された画像を順位付けする。例えば、先に説明したように、ある場合には、画像タグ付けサーバー１０２は、画像に割り当てられた各画像タグに信頼値を割り当てるように構成することができる。信頼値は、タグの精度を示す（例えば、画像が、タグによって識別された項目を含む可能性）。これらの場合、画像検索およびナビゲーション・モジュール１０４は、信頼値を使用して、引き出された画像を順位付けるように構成することができる。例えば、マッピングされた画像タグに対する信頼値が高い程、画像は高く順位付けされる。他の場合では、引き出された画像を順位付けるために、他の判断基準を使用することもできる。一旦引き出された画像が順位付けされたなら、本方法はブロック８１０に進む。
【００７７】
[0078]  ブロック８１０において、画像検索およびナビゲーション・モジュール１０４は、引き出した画像を順位付けしたリストまたは順位付けしないリストを、エンド・ユーザー・デバイス１１６上に表示されているグラフィカル・ユーザー・インターフェースに出力する。ユーザーが画像を選択した場合、引き出された画像（選択された画像に類似する画像）は、図２に示すように、ＧＵＩの補助ウィンドウ内に表示することができる。しかしながら、ユーザーが物体を選択した場合、引き出される画像（クエリー・タームと一致する画像）は、図２に示すように、ＧＵＩの主要結果ウィンドウに表示することができる。
【００７８】
[0079]  ブロック８１２において、画像検索およびナビゲーション・モジュールは、エンド・ユーザー・デバイス１１６から、表示された画像を他者(another party)と共有する希望をユーザーが示したことの指示を受けることができる。画像検索およびナビゲーション・モジュール１０４がこのような指示を受けたとき、画像検索およびナビゲーション・モジュール１０４はブロック８１４に進むことができ、例えば、ユーザーおよび／またはエンド・ユーザー・デバイス１１６にアクセス可能なソーシャル・ネットワーキング・ツールによって、引き出された画像を、指定された者に入手可能にする。
【００７９】
[0080]  図９は、任意の形態の計算デバイスおよび／または電子デバイスとして実現することができ、本明細書において説明したシステムおよび方法の実施形態を実現することができる実証的な計算ベース・デバイス９００の種々のコンポーネントを示す。
【００８０】
[0081]  計算ベース・デバイス９００は、自然言語を使用して１組の画像を検索するためにこのデバイスの動作を制御するコンピューター実行可能命令を処理するために、１つ以上のプロセッサー９０２を含み、プロセッサー９０２は、マイクロプロセッサー、コントローラー、または任意のその他の適したタイプのプロセッサーであってもよい。ある例では、例えば、システム・オン・チップ・アーキテクチャが使用される場合、プロセッサー９０２は自然言語を使用して１組の画像を検索する方法の一部を実現する１つ以上の固定機能ブロック（アクセレレータとも呼ぶ）を、ハードウェアで（ソフトウェアやファームウェアではなく）含むことができる。クエリー・マッパー９０６や画像検索およびナビゲーション・モジュール９１２のようなアプリケーション・ソフトウェアをこのデバイスにおいて実行することを可能にするために、オペレーティング・システム９０４を含むプラットフォーム・ソフトウェア、または任意の他の適したプラットフォーム・ソフトウェアを計算ベース・デバイス９００に設けることもできる。
【００８１】
[0082]  コンピューター実行可能命令は、計算ベース・デバイス９００によってアクセス可能な任意のコンピューター読み取り可能媒体を使用して供給することができる。コンピューター読み取り可能媒体は、例えば、メモリー９１０のようなコンピューター記憶媒体、および通信媒体を含むことができる。メモリー９１０のようなコンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターのような情報の格納のための任意の方法または技術で実現される。コンピューター記憶媒体は、RAM、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは計算デバイスによるアクセスのために情報を格納するために使用することができる任意の他の非送信媒体を含むが、これらに限定されるのではない。対照的に、通信媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波のような変調データー信号またはその他の移送メカニズムにおいて具体化することができる。本明細書において定義するように、コンピューター記憶媒体は通信媒体を含まない。したがって、コンピューター記憶媒体を伝搬信号自体であると解釈してはならない。伝搬信号は、コンピューター記憶媒体に存在することはできるが、伝搬信号自体はコンピューター記憶媒体の例ではない。コンピューター記憶媒体（メモリー９１０）は計算ベース・デバイス９００内に示されているが、ストレージは分散されまたは離れて配置され、ネットワークまたはその他の通信リンクを通じてアクセスされてもよい（例えば、通信インターフェース９１６を使用して）ことは認められよう。
【００８２】
[0083]  また、計算ベース・デバイス９００は、表示情報をディスプレイ・デバイス９２０に出力するように構成された入力／出力コントローラー９１４も含む。ディスプレイ・デバイス９２０は、計算ベース・デバイス９００とは別個であっても、またはこれと一体であってもよい。表示情報は、グラフィカル・ユーザー・インターフェースを提供することができる。また、入力／出力コントローラー９１４は、ユーザー入力デバイス９２２（例えば、マウス、キーボード、カメラ、マイクロフォン、またはその他のセンサ）のような１つ以上のデバイスからの入力を受け取り処理するように構成されている。ある例では、ユーザー入力デバイス９２２は、音声入力、ユーザーのジェスチャ、またはその他のユーザーの行為を検出することができ、自然ユーザー・インターフェース（ＮＵＩ）を設けることができる。このユーザー入力は、計算ベース・デバイス９００の動作を制御するために使用することができる。ディスプレイ・デバイス９２０がユーザー入力デバイス９２２としても機能することができる実施形態では、これはタッチ感応ディスプレイ・デバイスとなる。また、入力／出力コントローラー９１４は、ディスプレイ・デバイス以外のデバイス、例えば、ローカルに接続された印刷デバイス（図９には示されていない）にデーターを出力することもできる。
【００８３】
[0084]  入力／出力コントローラー９１４、ディスプレイ・デバイス９２０、およびユーザー入力デバイス９２２の内任意のものがＮＵＩ技術を含むこともできる。ＮＵＩ技術は、マウス、キーボード、リモコン等のような入力デバイスによって強制される人工的な制約から解放して、ユーザーが「自然な」方法で計算ベース・デバイスと対話処理することを可能にする。提供することができるＮＵＩ技術の例には、音声(voice)および／または発話認識(speech recognition)、タッチおよび／またはスタイラス認識（タッチ感応ディスプレイ）、画面上および画面近傍双方におけるジェスチャ認識、エア・ジェスチャ(air gesture)、頭部および視線追尾、音声(voice)および発話(speech)、視覚、タッチ、ジェスチャ、ならびに機械インテリジェンスを拠り所とするものが含まれるが、これらに限定されるのではない。使用することができるＮＵＩ技術の他の例には、意思および目標理解システム、深度カメラ（立体視カメラ・システム、赤外線カメラ・システム、ｒｇｂカメラ・システム、およびこれらの組み合わせのような）を使用する動きジェスチャ検出システム、加速度計／ジャイロスコープ、顔認識、３Ｄディスプレイ、頭部、視線、および凝視追跡を使用する動きジェスチャ検出、没入型拡張現実および仮想現実システム、ならびに電界検知電極（ＥＥＧおよび関係する方法）を使用して脳活動を検知する技術が含まれる。
【００８４】
[0085]  あるいは、または加えて、本明細書において説明した機能は、少なくとも部分的に、１つ以上のハードウェア・ロジック・コンポーネントによって実行することができる。例えば、そして限定ではなく、使用することができるハードウェア・ロジック・コンポーネントの例証的な種類には、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラム特定集積回路（ＡＳＩＣ）、プログラム特定標準製品（ＡＳＳＰ）、システム・オン・チップ・システム（ＳＯＣ）、複合プログラマブル・ロジック・デバイス（ＣＰＬＤ）が含まれる。
【００８５】
[0086]  「コンピューター」または「計算ベース・デバイス」という用語は、本明細書では、命令を実行できるように処理能力を備えた任意のデバイスを指すために使用される。当業者には、このような処理能力が多くの異なるデバイスに組み込まれ、したがって「コンピューター」および「計算ベース・デバイス」という用語が各々ＰＣ、サーバー、移動体電話機（スマート・フォンを含む）、タブレット・コンピューター、セットトップ・ボックス、メディア・プレーヤー、ゲーム・コンソール、パーソナル・ディジタル・アシスタント、および多くのその他のデバイスを含むことが認められよう。
【００８６】
[0087]  本明細書において説明した方法は、有形記憶媒体上において機械読み取り可能な形態でソフトウェアによって、例えば、コンピューター・プログラムの形態で実行することができる。コンピューター・プログラムをコンピューター読み取り可能媒体上に具体化することができる場合、コンピューター・プログラムは、このプログラムがコンピューター上で実行されるとき本明細書において説明した任意の方法のステップ全てを実行するように構成された、コンピューター・プログラム・コード手段を含む。有形記憶媒体の例には、ディスク、サム・ドライブ(thumb drive)、メモリー等のようなコンピューター読み取り可能媒体を含むコンピューター記憶デバイスを含み、伝搬信号を含まない。伝搬信号は、有形記憶媒体内に存在することができるが、伝搬信号自体は有形記憶媒体の例ではない。ソフトウェアは、方法ステップを任意の適した順序でまたは同時に実行できるように、並列プロセッサーまたは直列プロセッサー上における実行に適合することが可能である。
【００８７】
[0088]  これは、ソフトウェアが価値があり、別個に取引可能な商品であり得ることを承認する。尚、これは、所望の機能を実行するために「ダム」(dumb)または標準ハードウェア上で実行するまたはこれを制御するソフトウェアを包含することを意図している。また、これは、所望の機能を実行するシリコン・チップを設計するため、またはユニバーサル・プログラマブル・チップを構成するために使用されるような、ＨＤＬ（ハードウェア記述言語）ソフトウェアのような、ハードウェアの構成を「記述する」または定義するソフトウェアを包含することも意図している。
【００８８】
[0089]  尚、プログラム命令を格納するために利用される記憶デバイスをネットワークを通じて分散できることは、当業者には認められよう。例えば、リモート・コンピューターが、ソフトウェアとして説明された前述のプロセスの一例を格納することもできる。ローカルまたは端末コンピューターがこのリモート・コンピューターにアクセスして、プログラムを実行するためにソフトウェアの一部または全てをダウンロードすることができる。あるいは、ローカル・コンピューターが、必要に応じてソフトウェアの断片(pieces)をダウンロードし、ローカル端末において一部のソフトウェア命令を実行し、リモート・コンピューター（またはコンピューター・ネットワーク）において一部を実行することもできる。また、当業者には知られている従来の技法を利用することによって、ソフトウェア命令の全部または一部を、ＤＳＰ、プログラマブル・ロジック・アレイ等のような専用回路によって実行することも可能であることも、当業者には認められよう。
【００８９】
[0090]  本明細書において示した範囲またはデバイス値はいずれも、求められる効果を失うことなく、広げることまたは変更することができる。これは当業者には明白であろう。
【００９０】
[0091]  以上、構造的特徴および／または方法論的アクトに特定的な文言で主題について説明したが、添付する特許請求の範囲において定められる主題は、以上で説明した特定的な特徴やアクトには必ずしも限定されないことは理解されよう。逆に、以上で説明した特定的な特徴およびアクトは、特許請求の範囲を実現する形態例として開示したまでである。
【００９１】
[0092]  尚、以上で説明した恩恵および利点は、１つの実施形態に関係する場合もあり、または様々な実施形態に関係する場合もあることは理解されよう。実施形態は、先に述べた問題のいずれかを解決するものにも、全てを解決するものにも限定されず、更に先に述べた恩恵および利点のいずれかを有するものにも、全てを有するものにも限定されない。更に、「１つの」項目に対する引用は、１つ以上のその品目も指すことも理解されよう。
【００９２】
[0093]  本明細書において説明した方法のステップは、任意の適した順序で、または該当する場合には同時に実行することもできる。加えて、本明細書において説明した主題の主旨および範囲から逸脱することなく、これらの方法の任意のものから個々のブロックを削除してもよい。求められた効果を失うことなく、更に他の例を形成するために、以上で説明した方法の内任意のものの態様を、以上で説明した他の例の内任意のものの態様と組み合わせることもできる。
【００９３】
[0094]  「含む」(comprising)という用語が本明細書において使用されるとき、識別された方法ブロックまたはエレメントを含む(include)ことを意味するが、このようなブロックまたはエレメントは排他的なリストを構成するのではなく、方法または装置が追加のブロックまたはエレメントを含んでもよいことを意味する。
【００９４】
[0095]  尚、以上の説明は一例として挙げたに過ぎず、種々の変更が当業者によって行われてもよいことは理解されよう。以上の明細書、例、およびデーターにより、実証的な実施形態の構造および使用の完全な説明が得られる。以上、ある程度の特定性をもって、１つ以上の個々の実施形態を参照しながら種々の実施形態について説明したが、本明細書の主旨や範囲から逸脱することなく、当業者は開示した実施形態には種々の変更を行うことができよう。
【図１】
0006487944.tif 000002
【図２】
0006487944.tif 000003
【図３】
0006487944.tif 000004
【図４】
0006487944.tif 000005
【図５】
0006487944.tif 000006
【図６】
0006487944.tif 000007
【図７】
0006487944.tif 000008
【図８】
0006487944.tif 000009
【図９】
0006487944.tif 000010