(57)【要約】【課題】複数のキーワードが同一の画像に付随していない場合でも、ある期間内に撮影された画像や、特定地域で撮影された画像の検索を効率的に行う技術を提供する。【解決手段】ファイル検索装置であって、検索すべきファイルを特定するための検索条件として、複数の属性情報と、ファイル間の関係に関する関係情報とを設定する設定手段と、前記設定手段により設定された前記属性情報のうち、少なくとも１つを有するファイルを検索する第１の検索手段と、前記第１の検索手段により検索されたファイルの中から、前記設定手段により設定された前記関係情報に基づく条件を満たす複数のファイルを検索する第２の検索手段と、前記第２の検索手段により検索された複数のファイルを検索結果として出力する出力手段とを備える。【選択図】図１
2014059861.tif 000002
【特許請求の範囲】
【請求項１】
ファイル検索装置であって、
検索すべきファイルを特定するための検索条件として、複数の属性情報と、ファイル間の関係に関する関係情報とを設定する設定手段と、
前記設定手段により設定された前記属性情報のうち、少なくとも１つを有するファイルを検索する第１の検索手段と、
前記第１の検索手段により検索されたファイルの中から、前記設定手段により設定された前記関係情報に基づく条件を満たす複数のファイルを検索する第２の検索手段と、
前記第２の検索手段により検索された複数のファイルを検索結果として出力する出力手段と
を備えることを特徴とするファイル検索装置。
【請求項２】
前記出力手段は、前記関係情報に基づき区別されるファイル群ごとに、検索結果を出力することを特徴とする請求項１に記載のファイル検索装置。
【請求項３】
前記属性情報は、前記ファイルに付与されているキーワードを特定することを特徴とする請求項１又は２に記載のファイル検索装置。
【請求項４】
前記関係情報は、複数のファイル間の時間的な関係性、または地理的な関係性を特定することを特徴とする請求項１乃至３のいずれか１項に記載のファイル検索装置。
【請求項５】
前記設定手段は、前記検索条件として使用する順序を指定して、前記複数の属性情報を設定することを特徴とする請求項１乃至４のいずれか１項に記載のファイル検索装置。
【請求項６】
前記第２の検索手段により検索されたファイルと共に、前記属性情報を有さないファイルであって、前記第２の検索手段により検索されたファイルの前後のファイルを選択する選択手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載のファイル検索装置。
【請求項７】
前記選択手段により選択された複数のファイルに一括して編集する編集手段を更に備えることを特徴とする請求項６に記載のファイル検索装置。
【請求項８】
ファイル検索装置が実行するファイル検索方法であって、
前記ファイル検索装置の設定手段が、検索すべきファイルを特定するための条件として、複数の属性情報と、ファイル間の関係に関する関係情報とを設定する設定工程と、
前記ファイル検索装置の第１の検索手段が、前記設定工程において設定された前記属性情報のうち、少なくとも１つを有するファイルを検索する第１の検索工程と、
前記ファイル検索装置の第２の検索手段が、前記第１の検索工程において検索されたファイルの中から、前記設定ステップにおいて設定された前記関係情報に基づく条件を満たす複数のファイルを検索する第２の検索工程と、
前記ファイル検索装置の出力手段が、前記第２の検索工程において検索された複数のファイルを検索結果として出力する出力工程と
を備えることを特徴とするファイル検索方法。
【請求項９】
コンピュータを請求項１乃至７のいずれか１項に記載のファイル検索装置の各手段として機能させるためのプログラム。
【請求項１０】
画像検索装置であって、 
画像検索条件として、複数のキーワードと、画像間の時間的条件とを設定する設定手段と、
記憶手段に記憶された複数の画像のうち、前記画像検索条件を満たす画像を検索する検索手段と
を備え
前記検索される画像は、前記複数のキーワードのうちの少なくとも１つを有する画像であって、前記複数のキーワードのうちの１つを有する画像と他のキーワードを有する他の画像との間で、前記時間的条件を満たすものであることを特徴とする画像検索装置。
【請求項１１】
前記時間的条件を満たす画像群ごとに表示することを特徴とする請求項１０に記載の画像検索装置。
【請求項１２】
前記検索される画像は、前記１つのキーワードが付随する画像の撮影日時と、前記他のキーワードが付随する画像の撮影日時との間の撮影日時を有する画像を含むことを特徴とする請求項１０または１１に記載の画像検索装置。
【請求項１３】
前記設定手段は、前記画像検索条件として使用する順序を指定して、前記複数のキーワードを設定することを特徴とする請求項１０乃至１２のいずれか１項に記載の画像検索装置。
【請求項１４】
画像検索装置であって、
画像検索条件として、複数のキーワードと、画像間の地理的条件とを設定する設定手段と、
記憶手段に記憶された複数の画像のうち、前記画像検索条件を満たす画像を検索する検索手段と
を備え、
前記検索される画像は、前記複数のキーワードのうちの少なくとも１つを有する画像であって、前記複数のキーワードのうちの１つを有する画像と他のキーワードを有する他の画像との間で、前記地理的条件を満たすものであることを特徴とする画像検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル検索装置、ファイル検索方法、画像検索装置及びプログラムに関する。 
【背景技術】
【０００２】
画像の管理および検索のため、撮影した画像にキーワードなどのメタデータを付与することが行われている。近年では特に、デジタルカメラや携帯電話、スマートフォンの普及によりユーザが撮影する画像が増え、その管理および検索をいかに容易にするかが重要な問題になっている。
【０００３】
解決方法の一つに、画像に自動的にキーワードを付与する技術がある。たとえば、被写体の顔を認識して人物名を付与することや、画像が撮影された位置をＧＰＳ情報から取得して、地名やランドマーク名を付与することが行われている。
【０００４】
一方、キーワードによる検索に、時系列の概念を導入する技術がある。特許文献１に係る基板処理装置のトラブルに関連するログを検索する装置では、キーワードに時系列的な順序を設け、キーワードを含むログが当該順序に従って登場した場合に、該当ログを強調表示する。これにより、時系列的な順序で現れるトラブルを容易に見つけ出すことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１４０２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、画像の検索条件として複数のキーワードが与えられたとき、それらが同一の画像に付随していなければ、その画像を検索できないという課題がある。
【０００７】
複数のキーワードを用いて画像を検索する例として、過去の旅行において複数の画像を撮影した記憶をもとに、それらの画像を検索したいというニーズがある。たとえば、「寺」を撮影した直後に、「ランチ」を撮影した記憶に基づいて、それらの行為を行った旅行の画像を検索するなどである。特許文献１の技術を画像検索に適用した場合、複数のキーワードのそれぞれが付随する画像が時系列順に登場した場合には当該画像を検索できるかもしれないが、それらの画像間の撮影日時の間隔や撮影場所の距離は考慮されない。したがって、ある期間内に撮影された画像や特定地域で撮影された画像を効率的に検索することができない。
【０００８】
そこで本発明は、複数のキーワードが同一の画像に付随していない場合でも、ある期間内に撮影された画像や、特定地域で撮影された画像の検索を効率的に行う技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するための画像検索装置は、ファイル検索装置であって、
検索すべきファイルを特定するための検索条件として、複数の属性情報と、ファイル間の関係に関する関係情報とを設定する設定手段と、
前記設定手段により設定された前記属性情報のうち、少なくとも１つを有するファイルを検索する第１の検索手段と、
前記第１の検索手段により検索されたファイルの中から、前記設定により設定された前記関係情報に基づく条件を満たす複数のファイルを検索する第２の検索手段と、
前記第２の検索手段により検索された複数のファイルを検索結果として出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数のキーワードが同一の画像に付随していない場合でも、ある期間内に撮影された画像や、特定地域で撮影された画像の検索を効率的に行う技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】発明の実施形態に係る画像検索装置の構成の一例を示すブロック図。
【図２】発明の実施形態１に係る画像検索装置の検索条件を入力するダイアログの一例を示す図。
【図３Ａ】発明の実施形態１に係る検索処理を説明するための図。
【図３Ｂ】発明の実施形態１に係る画像データのデータ構造を説明するための図。
【図４Ａ】発明の実施形態１に係る検索処理の一例に対応するフローチャート。
【図４Ｂ】発明の実施形態１に係る検索処理の他の一例に対応するフローチャート。
【図５】発明の実施形態１に係るキーワードテーブルのデータ構造の一例を示す図。
【図６】発明の実施形態１に係る画像検索装置の検索結果の表示例を示す図。
【図７】発明の実施形態１に係る画像検索装置のメインウィンドウにおける検索結果の表示例を示す図。
【図８】発明の実施形態２に係る画像検索装置の検索条件を入力するダイアログの一例を示す図。
【図９】発明の実施形態２に係るキーワードテーブルのデータ構造の一例を示す図。
【図１０Ａ】発明の実施形態２にかかる検索処理の一例を示すフローチャート。
【図１０Ｂ】発明の実施形態２に係る検索処理において、キーワードの出現順序を考慮した場合の判定処理の一例を示すフローチャート。
【図１０Ｃ】発明の実施形態２に係る検索処理において、キーワードの出現順序を考慮しない場合の判定処理の一例を示すフローチャート。
【図１１】発明の実施形態３に係る画像検索装置の検索条件を入力するダイアログの一例を示す図。
【図１２】発明の実施形態３に係る検索処理の概念を説明するための図。
【図１３】発明の実施形態３にかかる検索処理の一例に対応するフローチャート。
【発明を実施するための形態】
【００１２】
以下、発明の実施形態をファイル検索装置との関連で説明する。当該ファイル検索装置は、ファイルが有する属性情報を検索条件として指定可能にすると共に、当該属性情報を有するファイルを検索結果として抽出するためのファイル間の関係を指定する関係情報も検索条件として指定可能とする。そして、検索条件として指定された複数の属性情報が付随するファイルのうち、指定された関係情報に基づく条件を満足するファイル群を検索結果として抽出し、出力する。以下、より具体的な発明の実施形態を添付の図面を参照して説明する。
【００１３】
［実施形態１］
本実施形態のファイル検索装置は、複数のキーワードにおける１つのキーワードが付随するファイルとの関連で所定の時間的条件（時間的関係性）を満たし、かつ、当該複数のキーワードのうち他のキーワードが付随するファイルを特定することにより検索を行う。
【００１４】
図１は、本実施形態におけるファイル検索装置のブロック図である。以下で説明する本実施形態においてファイル検索装置は、例えばＰＣ（パーソナルコンピュータ）１００上で動作するアプリケーションの形態で実現される。しかしながら、ファイル検索装置の実施形態はＰＣに限定されるものではない。例えば、デジタルカメラ、デジタルビデオカメラ、携帯電話、スマートフォン、その他の携帯型電子機器等として実施されても良い。これらの電子機器の構成も基本的には図１と共通である。なお、これらの電子機器がカメラ機能を有する場合、カメラで撮影して得られた画像を管理するために本発明の検索技術を利用することもできる。
【００１５】
また、ファイル検索装置の検索対象には静止画、動画といった画像ファイル、テキストファイルや、プレゼンテーションファイル等、各種のファイルやコンテンツを含むこともできる。即ち、作成日時や更新日時などの日時情報を有し、検索条件となり得るメタデータが付随しているファイルであれば、それらの情報に基づいて検索を行うことができる。また、検索対象のファイルやコンテンツは同一種類に限定される必要もない。例えば、静止画、動画、プレゼンテーション、電子メール等をまとめて検索対象とすることもできる。なお、以下の説明では、特に検索対象のファイルを画像とする画像検索装置の例に基づき、ファイル検索装置の動作を説明する。
【００１６】
ＰＣ１００はＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３を有する。ＲＯＭ１０３にはファイル検索装置の基本的な制御プログラムが記憶されている。この制御プログラムは、実施形態に対応する検索処理プログラムを含み、ファイル検索装置の起動時にＲＡＭ１０２に読み込まれ、ＣＰＵ１０１によって実行される。二次記憶装置１０４は、実際にはハードディスクあるいはメモリディスクなどである。二次記憶装置１０４には、高レベルな制御プログラム（たとえばオペレーションシステム）、画像ブラウザ、画像データに関する情報を管理するためのデータベース、カメラと接続して画像データをＰＣ１００に取り込むためのアプリケーション、取り込まれた画像データなどが記憶される。これらのソフトウェアは、適時ＲＡＭ１０２に読み込まれ、ＣＰＵ１０１によって実行される。ネットワークインタフェース（Ｉ/Ｆ）１０５は、ＵＳＢケーブルを接続するためのＵＳＢインタフェースであり、ＰＣ１００はこれを用いてカメラと接続される。操作部１０６は、ユーザがファイル検索装置に指示を与えるための操作を受け付け、キーボードやマウスなどから構成される。表示部１０７は、ＣＰＵ１０１の表示制御に従って画像やグラフィカルユーザインタフェース（ＧＵＩ）画面を表示し、モニタなどから構成される。そしてバス１０８は、１０１〜１０７が情報をやり取りする際に用いられる。
【００１７】
図２は、本実施形態に係るファイル検索装置又はアプリケーションにおいて、ユーザがキーワード検索を指示したときに、ＰＣ１００の表示部１０７に表示される表示画面（ユーザインタフェース：ＵＩ）である。図２のダイアログ２００において、テキストボックス２０１及び２０２はキーワードを入力する領域である。各々のテキストボックスにはキーワードを入力することができ、図では「寺」、「ランチ」というキーワードがそれぞれに入力されている。ボックス２０３は、入力されたキーワードが付随する画像に関する期間を入力するテキストボックスであり、ここでは「２０」分という値が入力されている。この期間は、第１のキーワード（Ｋｗ１）が付随する画像が撮影された日時と、第２のキーワード（Ｋｗ２）が付随する画像が撮影された日時との間で許容される期間を表す。例えば、図２の例では「寺」という第１のキーワードが付随する画像が撮影されてから「２０分」以内に撮影された「ランチ」という第２のキーワードが付随する画像を検索する。ボックス２０４は、キーワードの出現順序を考慮して時系列的に検索するかどうかを設定するためのチェックボックスである。ここではチェックがオンになっているため、第１のキーワードと第２のキーワードの出現順序及び期間に基づく検索が実行される。検索ボタン２０５は、検索開始の指示を受け付けるためのボタンである。
【００１８】
なお、図２では検索条件として任意に入力された文字列を用いる場合を示しているが、それ以外にも、検索対象のコンテンツと関連づけて管理される情報を検索条件として指定することができる。例えば、画像であれば、カメラパラメータ（フォーカス距離、ズーム倍率、露出時間、絞り値、フラッシュの有無、ＩＳＯ感度など）、撮影モードの情報（ポートレート、風景、スポーツ、トイカメラ風、モノクロ、ジオラマ風、魚眼風等）、お気に入り度等の情報がある。また、検索条件として地図上の点をユーザにクリックさせるなどして、ＧＰＳ情報の入力を受け付けてもよい。この場合、検索条件により特定されたＧＰＳ情報と、画像にメタデータとして付加されているＧＰＳ情報とを比較して検索する。
【００１９】
更に、検索条件として人物に関する項目を設けることもできる。例えば、人物名を直接にキーワードとして入力したり、検索したい人物が写っている画像を検索元画像として指定することができる。人物名で検索する場合、人物名に対応する顔画像から予め抽出した顔特徴量を、人物名と関連づけてテーブルに登録しておく。そして、検索を行う場合は、入力された人物名に対応する顔特徴量をテーブルから取得し、顔特徴量が類似している人物が写っている画像を検索することができる。或いは、検索対象の画像のそれぞれについて、映っている人物名の情報を、予め各画像のメタデータに付加しておき、入力された人物名と一致する情報がメタデータに付加されている画像を検索しても良い。また、検索元画像が指定される場合、検索元画像に写っている人物の顔特徴量を抽出して検索を行うことができる。或いは、検索元画像に含まれる人物の人名を、該検索元画像と共にテーブルに予め登録しておき、指定された検索元画像に対応する人物名がメタデータに付加されている画像を検索することもできる。
【００２０】
図３Ａは、図２に示した画像検索条件で実際に画像を検索した場合の説明図である。当該処理を実現するためにメタデータの取得処理及び検索処理のプログラムが二次記憶装置１０４からＲＡＭ１０２にロードされ、ＣＰＵ１０１によって実行される。
【００２１】
画像３０１〜３０６は、ＰＣ１００のハードディスク内にある画像を、撮影日時をキーにソートしたものの一部である。ここで、画像３０３にはキーワード「寺」が、画像３０４にはキーワード「ランチ」が付随しているものとする。本実施形態では、画像３０３と画像３０４の撮影日時の差を比較し、画像３０３より後に画像３０４が撮影されていて、かつ撮影日時の差が「２０」分以内であれば、画像３０３および３０４を検索結果とする。以上の例では、画像３０３の次に画像３０４が撮影されているが、本実施形態では、画像３０３から３０４の間に任意の数の画像が撮影されていても、上記の画像検索条件を満たしていれば、画像３０３、画像３０４及びその間に存在する全ての画像を検索結果とする。
【００２２】
図３Ｂは、本実施形態で使用する画像データのデータ構成の一例を示す図である。画像データ３１０は１つのファイルであって、１枚の画像データに対応する。領域３１１は画像に関する付加的情報をメタデータ（検索用の情報）として格納するメタデータ用ヘッダ部である。メタデータは、Ｅｘｉｆなどの規格で定められており、たとえば撮影日時・撮影時のカメラパラメータ（例えばフォーカス距離やズーム倍率など）、レーティング（お気に入り度）、画像検索用のキーワード、コメント、サムネイル、撮影場所の位置情報（ＧＰＳ情報）などがそれに相当する。上述のように、これらの情報は検索条件として指定することができる。領域２０２は、画像のデコードに必要な情報を格納するヘッダ部である。たとえば、ＪＰＥＧ画像の場合、領域３１２には、画像を縮小したサムネイル画像が格納される。領域３１３には、画像の実データが格納される。
【００２３】
次に図４Ａを参照して図３Ａで説明した検索処理の流れを説明する。図４Ａは、発明の実施形態に対応する検索処理のフローチャートである。
【００２４】
ユーザがキーワード検索を指示すると、Ｓ４００において、ダイアログ２００を用いてユーザからの入力を受け付けることにより検索条件の設定を行う。続くＳ４０１で、検索条件として指定されたキーワード「寺」（以下Ｋｗ１）またはキーワード「ランチ」（以下Ｋｗ２）が付随する画像を二次記憶装置１０４内のデータベースにおいて検索し、リストを作成する。このとき、データベースの機能を使用し、画像を撮影日時順にソートする。なお、ここではＰＣ１００のハードディスク内の全画像のデータが、データベースに登録されているものとする。データベースへのデータ登録・データベースからのデータ検索、リスト化およびソート技術は、公知なので説明は省略する。データベースから取得した画像について、画像のファイルパスのリストを作成してＲＡＭ１０２に記憶する。もちろん、別形態として、取得した画像を、画像ごとにユニークな整数値（識別情報）のリストとして記憶してもかまわない。
【００２５】
次にＳ４０２に進み、ＲＡＭ１０２上でキーワードテーブル（ＫＷＴ）の初期化を行う。図５は、本検索処理において作成するキーワードテーブル５００の一例を示す図である。本実施形態ではキーワードが２個の場合で説明しているので、キーワードテーブル５００のエントリ数は２となっている。図５において、列５０１にはキーワードが、列５０２にはフラグ値が格納される。フラグ値は初期値として「０」を格納する。フラグの使用法については後述する。
【００２６】
これ以降、リスト上でポインタＰ０が順次指し示す画像（Ｐ０画像）についてＳ４０３からＳ４１１までの処理を行う。ポインタＰ０は、キーワードテーブル５００における先頭画像から最後の画像までを順に指定するポインタである。まず、Ｓ４０３に進み、日時を表すデータ型の変数ＴをＰ０画像の撮影日時から所定の時間値ｔ（例えば、２０分）だけ進めた値に設定する。例えば、Ｐ０画像の撮影日時が「２０１２年６月２５日１２時３４分」であった場合、Ｔは「２０１２年６月２５日１２時５４分」となる。続くＳ４０４では、ポインタＰ２をＮＵＬＬに初期化する。続くＳ４０５では、Ｐ０画像に第１のキーワードＫｗ１（すなわち「寺」）が付随しているかどうかを判定する。キーワードは、Ｓ４０５において画像ファイルから抽出してもよいし、予め抽出してデータベースに記憶しておき、Ｓ４０１またはＳ４０５の処理実行時に、データベースから読みだすようにしてもかまわない。ここで、第１のキーワードＫｗ１が付随していなければ（Ｓ４０５で「ＮＯ」）Ｓ４１０に進む。一方、第１のキーワードＫｗ１が付随していれば（Ｓ４０５で「ＹＥＳ」）、Ｓ４０６に進む。Ｓ４０６では、キーワードテーブル５００におけるＫｗ１のフラグを「１」に変更する。
【００２７】
次に、ポインタＰ１が順次指し示す画像（Ｐ１画像）について、Ｓ４０７からＳ４０９までの処理を行う。ポインタＰ１は、Ｐ０画像から、リスト内で撮影日時がＴを越えない最も撮影日時の遅い画像までを順に指定するポインタである。なお、時間Ｔの範囲にリストの最後の画像までが含まれてしまう場合には、当該リストの最後の画像までを順に指定する。Ｓ４０７では、Ｐ１画像にＫｗ２が付随しているか否かを判定する。もし、Ｐ１画像にＫｗ２が付随している場合（Ｓ４０７で「ＹＥＳ」）には、Ｓ４０８に移行してキーワードテーブル５００のＫｗ２のフラグを１に変更する。一方、Ｋｗ２が付随していない場合（Ｓ４０７で「ＮＯ」）には、ポインタＰ１をリストの次の画像に移動し、処理を繰り返す。Ｓ４０９ではポインタＰ２をポインタＰ１と同じ画像に移動する。以上のＳ４０７からＳ４０９までの処理を処理範囲に含まれる全ての画像について実行した後、Ｓ４１０に移行する。Ｓ４１０では、ポインタＰ２がＮＵＬＬであるか否かを判定する。もし、ＮＵＬＬの場合（Ｓ４１０で「ＹＥＳ」）、ポインタＰ０を１つ進めて、次の画像についてＳ４０３からの処理を繰り返す。ＮＵＬＬでない場合（Ｓ４１０で「ＮＯ」）、Ｓ４１１に移行して、Ｐ０画像、Ｐ２画像及びそれらの間に撮影されたすべての画像をデータベースから取得し、検索結果に追加する。その後、ポインタＰ０を１つ更新して、次の画像についてＳ４０３以降の処理を繰り返し、リストの最後の画像について処理が完了したならば、Ｓ４１２に移行する。Ｓ４１２では検索結果を出力表示し、全体としての処理を終了する。これにより、Ｐ０画像からｔを越えない範囲で時間的に最も離れたＫｗ２が付随するＰ２画像を発見し、Ｐ０画像、Ｐ２画像及びその画像間に撮影された画像を検索結果の画像群として抽出し出力することが可能となる。
【００２８】
次に図６を参照して、図４Ａの検索処理における検索結果の表示例を説明する。図６は、本実施形態に係るファイル検索装置又はアプリケーションにおいて、検索結果を表示するための表示画面（ユーザインタフェース：ＵＩ）の一例を示す図である。当該表示処理を実現するために検索結果の表示用のプログラムが二次記憶装置１０４からＲＡＭ１０２にロードされ、ＲＡＭ１０２に記憶された検索結果の情報を利用してＣＰＵ１０１によって実行される。本実施形態では、検索結果のダイアログ６００において、最大３個の検索結果を表示する場合を説明する。検索結果が３個を超える場合は、ユーザがスクロールバー６０１を操作することによって、４個目以降の検索結果を表示することができる。
【００２９】
図６においてサムネイル６０２はキーワード「寺」が付随した画像のサムネイルであり、サムネイル６０３はキーワード「ランチ」が付随した画像のサムネイルである。これらは、図３Ａの画像３０３および３０４に対応する。同様に、サムネイル６０４及び６０５は、それぞれキーワード「寺」、「ランチ」が付随した画像のサムネイルである。この検索結果では、サムネイル６０４と６０５の撮影日時の間に、画像６０６が撮影されている。この画像には必ずしも「寺」や「ランチ」のキーワードが付随していなくても良い。
【００３０】
また同様に、サムネイル６０７はキーワード「寺」が付随した画像のサムネイルである。この検索結果では、サムネイル６０７の画像と、キーワード「ランチ」が付随した画像の撮影日時の間に３枚以上の画像（サムネイル６０８〜６１０に対応）が撮影されているため、５枚目以降の画像のサムネイルは表示されない。ユーザはボタン６１１をクリックすることで、検索結果を左にスクロールし、５枚目以降の画像のサムネイル画像を順次表示することができる。ボタン６１２〜６１６は、ボタン６１１と同様にスクロール動作を制御するためのボタンである。但し、１番目、２番目の検索結果はすべて画面上に表示されており、３番目の検索結果も先頭の画像から表示しているため、ボタン６１２〜６１６はグレイアウトされてクリックできないようになっている。ボタン６１７〜６１９は、検索結果ごとに設けられたジャンプボタンである。ジャンプボタンをクリックすると、本アプリケーションのメインウィンドウをスクロールし、検索結果の前後の画像を表示する。この動作については、図７を参照して説明する。
【００３１】
また、検索結果の表示順序は、図６に示すように検索結果に含まれる画像数が少ないものから順に並べても良いし、その一方で、含まれる画像数が多いものから順に並べても良い。また、複数の検索結果の間で、含まれる画像が重複する場合も考えられ、その場合に、全ての検索結果を表示した場合、同じような検索結果が多数表示されることになって、ユーザの利便性を損なうことも考えられる。そこで、検索結果に含まれる画像が一定（例えば、７割）以上の割合で重複している場合には、包含されている画像の数が最も多いものを選択して検索結果としても良い。或いは、２つのキーワードのうち、重みを置く１つのキーワードを含む画像がより多く含まれる検索結果を選択しても良い。さらには、複数の検索結果を統合して１つの検索結果としても良い。
【００３２】
図７は、本実施形態に係るファイル検索装置又はアプリケーションにおけるメインウィンドウの表示例を示す図である。ウィンドウ７００はＰＣ１００のハードディスク内の全画像を、撮影日時順にソートし、そのサムネイルを表示する。図７では、ダイアログ６００において、ユーザがボタン６１９を押した直後に表示されるウィンドウ７００の様子を図示している。日付７０１は、画像６０７〜６１０が撮影された日付を示す。サムネイル７０２〜７０６は検索結果の画像のサムネイルであって、枠７０７によりハイライトされている。これにより、ユーザはキーワード「寺」と「ランチ」が付随した画像及びその中間画像をハイライト位置により確認できる。また、検索結果の画像に対し、時間的に近傍に位置する画像、即ち、画像７０２より前に撮影された画像と、画像７０６の後に撮影された画像を併せて見ることができる。
【００３３】
なお、図７のブラウザ画面においては、表示された画像を任意に選択して、メタデータを編集することができる。メタデータの編集は画像単位に行ってもよいし、複数の画像を選択してメタデータの特定の項目について共通の内容を設定しても良い。例えば、お気に入り度を一括して設定したり、コメント欄に共通のキーワードを一括付与したりできる。さらに、回転やリサイズ、削除やコピーについても画像単位、或いは、複数一括に行うことができる。
【００３４】
なお、上述の実施形態では、画像はすべて静止画という前提で説明したが、実際には画像の一部またはすべてが動画であってもかまわない。この場合、動画の撮影開始日時を画像の撮影日時として扱ってもよいし、動画の長さを考慮して、たとえば画像３０３が動画だった場合、画像３０３の撮影終了日時（或いは、撮影開始日時に動画の長さを加算）から２０分以内に画像３０４があれば、画像３０３および画像３０４を検索結果としてもよい。
【００３５】
また、本実施形態では、ユーザがボックス２０３に対して期間を入力するようにしていたが、それ以外の形態であってもかまわない。たとえば、あらかじめ設定されている固定値を期間としてもよい。また、画像の撮影日時を分析して、撮影日時に基づいて画像をグループ化（例えば同一の日付の画像等）し、当該グループ内に含まれる画像が検索対象に含まれるように期間を定めてもよい。例えば、撮影日が同一の画像については、同一撮影日の画像が検索結果に含まれるように期間を定めることができる。
【００３６】
以上、図２のダイアログ２００においてボックス２０４にチェックが入っていて、キーワードの出現順序を考慮して時系列的に検索する場合を説明した。これに対して、ボックス２０４にチェックが入っておらず、キーワードの出現順序を考慮しない場合も考えられる。そこで以下では、キーワードの出現順序を考慮しない場合について図４Ｂのフローチャートを参照して説明する。
【００３７】
Ｓ４２０からＳ４２４までの処理は、図４ＡのＳ４００からＳ４０４と同様であるので、説明を省略する。Ｓ４２５では、ポインタＰ０が指し示すＰ０画像にＫｗ１とＫｗ２の両方が付随しているか否かを判定する。もし両方付随している場合（Ｓ４２５で「ＹＥＳ」）には、Ｓ４３１に移行する。Ｓ４３１では、ポインタＰ２をポインタＰ０が指すＰ０画像と同一画像に移動し、Ｓ４３２に移行する。一方、いずれか一方が付随している場合（Ｓ４２５で「ＮＯ」）、Ｓ４２６に移行する。Ｓ４２６では、キーワードテーブル５００において、Ｐ０画像に付随しているキーワードのフラグの値を１に変更する。続くＳ４２７では、Ｐ０画像に付随していなかったキーワードをＫｗとしてＲＡＭ１０２に記憶する。
【００３８】
次に、ポインタＰ１が順次指し示す画像（Ｐ１画像）について、Ｓ４２８からＳ４３０までの処理を行う。ポインタＰ１は、Ｐ０画像から、リスト内で撮影日時がＴを越えない最も撮影日時の遅い画像までを順に指定するポインタである。なお、時間Ｔの範囲にリストの最後の画像までが含まれてしまう場合には、当該リストの最後の画像までを順に指定する。Ｓ４２８では、Ｐ１画像にＳ４２７で記憶したＫｗが付随しているか否かを判定する。もし、Ｐ１画像にＫｗが付随している場合（Ｓ４２８で「ＹＥＳ」）には、Ｓ４２９に移行してキーワードテーブル５００のＫｗのフラグを１に変更する。一方、Ｋｗが付随していない場合（Ｓ４２８で「ＮＯ」）には、ポインタＰ１をリストの次の画像に移動し、処理を繰り返す。Ｓ４３０ではポインタＰ２をポインタＰ１と同じ画像に移動する。これによりポインタＰ２は、Ｐ０画像より後に撮影され、Ｐ０画像が有しないキーワードＫｗが付随する画像を指し示すことになる。以上のＳ４２８からＳ４３０までの処理を処理範囲に含まれる全ての画像について実行した後、Ｓ４３２に移行する。
【００３９】
Ｓ４３２では、ポインタＰ２がＮＵＬＬであるか否か、また、Ｐ０とＰ２とが一致するか否かを判定する。Ｓ４３２においていずれか一方を満たす場合（Ｓ４３２で「ＹＥＳ」）、ポインタＰ０を１つ進めて、次の画像についてＳ４２３からの処理を繰り返す。いずれも満たさない場合（Ｓ４３２で「ＮＯ」）、Ｓ４３３に移行して、ポインタＰ０と、ポインタＰ２とで指定される画像及びその画像間に撮影されたすべての画像をデータベースから取得し、検索結果に追加する。その後、ポインタＰ０を１つ更新して、次の画像についてＳ４２３以降の処理を繰り返し、リストの最後の画像について処理が完了したならば、Ｓ４３４に移行する。Ｓ４３４では検索結果を出力表示し、全体としての処理を終了する。これにより、Ｐ０画像からｔを越えない範囲で時間的に最も離れたＫｗが付随するＰ２画像を発見し、Ｐ０画像、Ｐ２画像及びその画像間に撮影された画像を検索結果として抽出することが可能となる。
【００４０】
以上のように、本実施形態に対応するファイル検索装置としての画像検索装置は、所定のキーワードが付随する画像の撮影日時から所定期間内に撮影された画像であって、他のキーワードが付随する画像を特定して、画像検索を行うことができる。これにより、検索条件として与えられた２つのキーワードが、同一の画像に付随していない場合でも、所定期間内に含まれる画像であれば検索することができる。
【００４１】
［実施形態２］
上述の実施形態１では、ファイル検索装置として画像検索装置を例に説明し、特に２つのキーワードが入力された場合の動作を説明した。これに対して本実施形態２では、画像検索装置であるＰＣアプリケーションに、Ｎ個（Ｎ≧２）のキーワードが入力された場合の動作を説明する。また、本実施形態では、キーワードが画像のどのメタデータであるかも併せて指定することができる。但し、本実施形態におけるファイル検索装置の構成は、実施形態１と同じであるので省略する。
【００４２】
図８は、本実施形態に係るファイル検索装置又はアプリケーションにおいて、ユーザがキーワード検索を指示したときに、ＰＣ１００の表示部１０７に表示される表示画面の一例を示す図である。ダイアログ８００において、コンボボックス８０１〜８０５は、ユーザから指定されたキーワードを検索する対象となるメタデータ領域（フィールド）の指定を受け付けるための領域である。各画像のメタデータは図３Ｂの領域３１１のメタデータ用ヘッダ部に格納されている。本実施形態では、「キーワード」「コメント」「人物」「地名」「イベント」などのメタデータの種類を指定することも可能であるし、「すべて」のメタデータを指定することも可能である。なお、検索の条件には、実施形態１と同様、検索対象のファイルと関連づけて管理される任意の情報を検索条件として指定することができる。
【００４３】
テキストボックス８０６〜８１０にはキーワードをテキスト入力することができる。各々のテキストボックスにはキーワードをひとつずつ入力することができ、図では第１のキーワード「寺」、第２のキーワード「ランチ」、第３のキーワード「山田花子」というキーワードがそれぞれに入力されている。この例では、「山田花子」さんとの旅行で、「寺」、「ランチ」、「山田花子」を撮影した記憶に基づいて画像を検索しようとしている。ボタン８１１は、６つ以上のキーワードを入力する場合に押すボタンであり、これをクリックするとダイアログ８００が縦に伸びて、より多くのキーワードを入力可能になる。ボックス８１２は図２のボックス２０３と同様、所定のキーワードが付随する画像の撮影日時からの許容撮影間隔を入力するためのテキストボックスであり、ここでは「２０」分という値が入力されている。ボックス８１３は図２のボックス２０４と同様、キーワードの出現順序を考慮して時系列的に検索するかどうかを設定するためのチェックボックスである。ここでは、チェックボックスがオンになっている。ボタン８１４は図２のボタン２０５と同様、検索を開始するためのボタンである。
【００４４】
次に、本実施形態に係るファイル検索装置又はアプリケーションの動作について説明する。
まず、図９は、本検索処理において作成するキーワードテーブルである。本実施形態ではキーワードの個数が２個以上（Ｎ個）なので、キーワードテーブル９００は２行以上になるところ、図９では特にキーワードが３個の場合を示している。また列９０１にはメタデータの種類を、列９０２にはキーワードを、列９０３にはフラグ値として「０」を格納する。
【００４５】
次に図１０Ａを参照して本実施形態に対応する検索処理の流れを説明する。図１０Ａは、本実施形態に対応する検索処理のフローチャートである。ユーザがキーワード検索を指示すると、Ｓ１０００において、ダイアログ８００を用いてユーザからの入力を受け付けることにより検索条件の設定を行う。続くＳ１００１で、検索条件として指定されたＮ個のキーワードＫｗ１からＫｗＮのいずれかが付随する画像を二次記憶装置１０４内のデータベースにおいて検索し、リストを作成する。このとき、データベースの機能を使用し、画像を撮影日時順にソートする。なお、本処理はキーワードの個数の違いを除けばＳ４０１と同様であるので、処理に関連する事項はＳ４０１に準ずる。次にＳ１００２において、ポインタＰ０及びＰ１をリストの先頭画像に移動する。次に、Ｓ１００３において、ポインタＰ０及びＰ１が指し示すＰ０画像及びＰ１画像の撮影日時の差が時間値ｔ（例えば、２０分）以内か否かを判定する。もし、差がｔ以内の場合（Ｓ１００３で「ＹＥＳ」）、Ｓ１００４に移行する。一方、差がｔより大きい場合（Ｓ１００３で「ＮＯ」）、Ｓ１０１１に移行する。
【００４６】
Ｓ１００４では、Ｐ１画像がＳ１００１で生成したリストの最後の画像であるか否かを判定する。もし、最後の画像である場合（Ｓ１００４で「ＹＥＳ」）、Ｓ１００５に移行する。Ｓ１００５では、ポインタＰ２の値としてポインタＰ１を代入し、Ｓ１００９に移行する。一方、リストの最後の画像でない場合（Ｓ１００４で「ＮＯ」）、Ｓ１００６に移行する。Ｓ１００６では、ポインタＰ１を次の画像に移動し、Ｓ１００７において、Ｐ０画像及びＰ１画像の撮影日時の差が時間値ｔ以内か否かを再度判定する。もしｔ以内の場合（Ｓ１００７で「ＹＥＳ」）、Ｓ１００４に戻って処理を繰り返す。一方、ｔより大きい場合（Ｓ１００７で「ＮＯ」）、Ｓ１００８に移行し、ポインタＰ２をＰ１画像の１つ前の画像に設定し、Ｓ１００９に移行する。Ｓ１００８の処理は、Ｐ０画像から時間ｔの範囲を越えた最初の画像をポインタＰ１が指しているので、その１つ前のＰ０画像から時間ｔの範囲内の最後の画像をポインタＰ２により指定するものである。これにより、Ｐ０画像からｔ分を越えない範囲で時間的に最も離れたＰ２画像を特定することができる。
【００４７】
Ｓ１００９では、Ｋｗ１からＫｗＮまでのキーワードのうち、Ｐ０画像からＰ２画像までの画像に付随していないキーワードが存在するか否かを判定する。なお、Ｓ１００９における処理の詳細は図１０Ｂ及び図１０Ｃを参照して後述する。もし各キーワードについて画像が存在する場合（Ｓ１００９で「ＹＥＳ」）、Ｓ１０１０に移行して、Ｐ０画像、Ｐ２画像及びその間に撮影された画像をデータベースから取得し、検索結果に追加した後、Ｓ１０１１に移行する。一方、画像に付随しないキーワードが存在する場合（Ｓ１００９で「ＮＯ」）、Ｓ１０１１に移行する。Ｓ１０１１では、Ｐ０画像がＳ１００１で作成したリストの最後の画像であるか否かを判定する。もし最後の画像である場合（Ｓ１０１１で「ＹＥＳ」）は、Ｓ１０１３に移行する。Ｓ１０１３では検索結果を出力表示し、本処理を終了する。一方、最後の画像でない場合（Ｓ１０１１で「ＮＯ」）、Ｓ１０１２に移行し、ポインタＰ０をリストの次の画像に移動した後、Ｓ１００３からの処理を繰り返す。
【００４８】
図８に示した検索ダイアログ８００では、ボックス８１３によりキーワードの出現順序を考慮して時系列的に検索するか否かを指定できる。ボックス８１３のチェックの有無は、上記処理においてＳ１００９における判定処理に関わるものである。以下、Ｓ１００９における処理の詳細を、キーワードの出現順序を考慮する場合（図１０Ｂ）とキーワードの出現順序を考慮しない場合（図１０Ｃ）とに分けて説明する。
【００４９】
図１０Ｂはキーワードの出現順序を考慮する場合の判定処理の一例を示すフローチャートである。まずＳ１０２１では、ＲＡＭ１０２上でキーワードテーブル（ＫＷＴ）の初期化を行う。ここではＫｗ１からＫｗＮまでのキーワードをテーブルに登録し、フラグ９０３の値をそれぞれ「０」にセットする。キーワードテーブルの一例は図９に示すとおりであるが、ポインタＰｋｗを用いて、テーブル９００に登録されているキーワードを順にＫｗ１からＫｗＮまで指定する。また、Ｐ０画像からＰ２画像の範囲内に含まれるリストの画像は、ポインタＰを用いて順次指定する。
【００５０】
次にＳ１０２２では、ポインタＰｋｗをＫｗ１に移動する。次に、Ｓ１０２３に移動し、ポインタＰが指定するＰ画像にキーワードＰｋｗが付随しているか否かを判定する。もし付随している場合（Ｓ１０２３において「ＹＥＳ」）、Ｓ１０２４に移行する。一方付随していない場合（Ｓ１０２３において「ＮＯ」）、ポインタＰを次の画像に移動してＳ１０２３を繰り返す。Ｓ１０２４では、キーワードテーブル９００に登録されているキーワードのうち、ポインタＰｋｗで指定されているキーワードのフラグ値を「１」にセットする。次にＳ１０２５に移行して、ポインタＰｋｗが指定するキーワードがキーワードテーブル９００の最後のキーワードであるか否かを判定する。もし最後のキーワードであれば（Ｓ１０２５で「ＹＥＳ」）、Ｓ１０２７に移行する。最後のキーワードでなければ（Ｓ１０２５で「ＮＯ」）、Ｓ１０２６に移行する。Ｓ１０２６では、ポインタＰｋｗを次のキーワードに移動し、Ｓ１０２３からの処理を繰り返す。このＳ１０２３からＳ１０２６までの処理では、Ｐ０画像からＰ２画像までの画像について時系列で指定していく間に、キーワードテーブル９００に登録されたＫｗ１からＫｗＮまでのキーワードが指定画像に付随するか否かを順次判定していく。これにより、キーワードの出現順序を考慮した時系列的の検索が可能となる。
【００５１】
以上の処理を経て、Ｓ１０２７ではキーワードテーブル９００のＫｗ１からＫｗＮについて設定されているフラグ値が全て「１」であるか否かを判定する。もしフラグ９０３の値が全て「１」の場合（Ｓ１０２７において「ＹＥＳ」）、Ｓ１０２８でＹＥＳ判定を行う。従って図１０Ａのフローチャートでは、処理がＳ１０１０へ移行する。一方フラグ９０３の値が全て「１」でなかった場合（Ｓ１０２７において「ＮＯ」）、Ｓ１０２９でＮＯ判定を行う。従って図１０Ａのフローチャートでは、処理がＳ１０１１へ移行する。
【００５２】
次に、出現順序を考慮しない場合の判定処理を説明する。図１０Ｃはキーワードの出現順序を考慮しない場合の判定処理の一例を示すフローチャートである。まずＳ１０４１では、ＲＡＭ１０２上でキーワードテーブル（ＫＷＴ）の初期化を行う。ここではＫｗ１からＫｗＮまでのキーワードを登録し、フラグ９０３の値をそれぞれ「０」にセットする。キーワードテーブルの一例は図９に示すとおりであるが、ポインタＰｋｗを用いて、テーブル９００に登録されているキーワードを順にＫｗ１からＫｗＮまで指定する。また、Ｐ０画像からＰ２画像の範囲内に含まれるリストの画像は、ポインタＰを用いて順次指定する。
【００５３】
Ｓ１０４２では、ポインタＰが指定する画像にキーワードＰｋｗが付随しているか否かを判定する。もし、付随している場合（Ｓ１０４２で「ＹＥＳ」）、Ｓ１０４３に移行してキーワードテーブル９００のフラグ９０３の値を「１」にセットする。一方キーワードが付随しない場合は、ポインタＰを移動してＳ１０４２の処理を繰り返す。Ｓ１０４２では、ポインタＰｋｗで指定する各キーワードについて、Ｐ０画像からＰ２画像までを処理対象として、指定キーワードが付随するかを判定する。よって、ここではキーワードの出現順序とは無関係に、Ｐ０画像からＰ２画像の間に含まれる画像の中にいずれかのキーワードに付随する画像があれば、当該画像が特定される。
【００５４】
全てのキーワードについて判定が終わると、Ｓ１０４４に移行して、キーワードテーブル９００のフラグ９０３の全ての値が「１」に設定されたか否かを判定する。もし、「１」に設定された場合（Ｓ１０４４で「ＹＥＳ」）、Ｓ１０４５に移行して、Ｓ１００９においてＹＥＳ判定とする。従って図１０Ａのフローチャートでは、処理がＳ１０１０へ移行する。一方「１」に設定されていないキーワードがある場合（Ｓ１０４４で「ＮＯ」）、Ｓ１０４６に移行して、Ｓ１００９においてＮＯ判定とする。従って図１０Ａのフローチャートでは、処理がＳ１０１１へ移行する。
【００５５】
以上の説明は、キーワードテーブル９００のフィールド９０１の設定を特に考慮せずに行った。仮にフィールド９０１に設定されている場合には、以下のように処理を実行することができる。例えば、Ｓ１０２３やＳ１０４２の判定において、ポインタＰで指定されるＰ画像のメタデータのうち、フィールド９０１で指定された種類のメタデータにキーワードＰｋｗが含まれるかどうかを判定する。例えば、図９の例では、Ｋｗ１のキーワード「寺」について、フィールド９０１が「comment」となっているので、Ｐ画像のメタデータのうち「comment」の項目に「寺」の語が含まれているかを判定する。
【００５６】
なお、本実施形態に係る検索結果を表示するためのダイアログおよびメインのウィンドウは、実施形態１と同じであるので省略する。以上により、本実施形態に係るファイル検索装置に検索条件として与えられたＮ個のキーワードが同一の画像に付随していない場合でも、画像を検索することができる
［実施形態３］
実施形態１及び２では、実施形態であるＰＣアプリケーションは、所定のキーワードが付随するファイルとの関連で所定の時間的関係性を満たすファイルについて検索を行う場合を説明した。これに対して本実施形態では、ファイル検索装置は、ファイルの関係に関する関係情報として、時間的な情報ではなく地理的情報に着目する。具体的に、複数のキーワードにおける１つのキーワードが付随するファイルとの関連で所定の地理的条件（地理的関係性）を満たし、かつ、当該複数のキーワードのうち他のキーワードが付随するファイルを特定することによりファイル検索を行う。具体的に画像検索装置を想定すると、撮影位置がある範囲内にある画像のうち、所定のキーワードが付随している画像を検索する。本実施形態におけるファイル検索装置のブロック図は、実施形態１と同じであるので省略する。
【００５７】
図１１は、本実施形態に係るファイル検索装置又はアプリケーションにおいて、ユーザがキーワード検索を指示したときに、ＰＣ１００の表示部１０７に表示される表示画面の一例を示す図である。ダイアログ１１００において、コンボボックス１１０１〜１１０５は、ユーザから指定されたキーワードを検索する対象となるメタデータ領域（フィールド）の指定を受け付けるための領域である。本実施形態では、「キーワード」「コメント」「人物」「地名」「イベント」などの、画像のメタデータ用ヘッダ部に含まれるメタデータの種類を指定することも可能であるし、「すべて」のメタデータを指定することも可能である。なお、検索の条件には、実施形態１と同様、検索対象のコンテンツと関連づけて管理される任意の情報を検索条件として指定することができる。
【００５８】
テキストボックス１１０６〜１１１０にはキーワードをテキスト入力することができる。各々のテキストボックスにはキーワードをひとつずつ入力することができ、図では「寺」、「ランチ」というキーワードがそれぞれに入力されている。ボタン１１１１は、６つ以上のキーワードを入力する場合に押すボタンであり、これをクリックするとダイアログ１１００が縦に伸びて、より多くのキーワードを入力可能になる。ボックス１１１２は、上記のキーワードが付随する画像の撮影場所の間の距離として許容される最大撮影距離を入力するためのテキストボックスであり、ここでは「５」キロメートルという値が入力されている。ボタン１１１３は、図２のボタン２０５と同様、検索を開始するためのボタンである。
【００５９】
図１２は、図１１に示した検索条件で検索される画像について説明するための図である。ここでは地図１２００を用いて考える。画像１２０１〜１２０７は、ＰＣ１００のハードディスク内にある画像の一部に対応するサムネイル画像である。ここで、画像１２０１にはキーワード「寺」が、画像１２０５にはキーワード「ランチ」が付随しているものとする。本実施形態に係るアプリケーションは、画像１２０１を重心または中心とする一辺２×Ｄ（Ｄはボックス１１１２に入力された値）キロメートルの領域１２０８内で撮影された画像のいずれかに所定のキーワードが付随していれば、領域１２０８内の画像１２０１〜１２０５を検索結果とする。
【００６０】
図１２では、検索結果の画像を特定する領域１２０８の形状を矩形形状としたが、発明の実施形態は矩形形状に限定されるものではなく、円形、楕円形、任意の多角形であってもよい。例えば、円形の場合、中心からの半径をボックス１１１２で指定された値とすることができる。また、楕円形の場合は、短半径或いは長半径のいずれか一方をボックス１１１２で指定された値とし、他方の値を楕円の形状に基づいて定めることができる。また、多角形では重心と任意の頂点との距離、或いは、辺の長さをボックス１１１２で指定された値に基づいて設定することができる。以下では、当該領域が有する形状の区別無く、単に領域１２０８という。
【００６１】
次に、本実施形態に係るファイル検索装置又はアプリケーションの動作について説明する。図１３は、図１２で説明した検索処理に対応するフローチャートである。当該処理を実現するためにメタデータの取得処理及び検索処理のプログラムが二次記憶装置１０４からＲＡＭ１０２にロードされ、ＣＰＵ１０１によって実行される。
【００６２】
ユーザがキーワード検索を指示すると、Ｓ１３００において、ダイアログ１１００を用いてユーザからの入力を受け付けることにより検索条件の設定を行う。続くＳ１３０１で、検索条件として指定されたキーワード「寺」（以下Ｋｗ１）またはキーワード「ランチ」（以下Ｋｗ２）が付随する画像を二次記憶装置１０４内のデータベースにおいて検索する。このとき、データベースの機能を使用し、画像を撮影日時順にソートする。なお、ここではＰＣ１００のハードディスク内の全画像のデータが、データベースに登録されているものとする。データベースへのデータ登録・データベースからのデータ検索およびソート技術は、公知なので説明は省略する。データベースから取得した画像は、画像のファイルパスのリストとしてＲＡＭ１０２に記憶する。また、当該リストには、後段の処理で、画像が領域１２０８に含まれるかの判定結果をフラグ値として記憶するためのフィールドを設けておく。もちろん、別形態として、取得した画像を、画像ごとにユニークな整数値（識別情報）のリストとして記憶してもかまわない。次にＳ１３０２に進み、ポインタＰ０をＳ１３０１で作成したリストの先頭画像を指すように移動する。もちろん、別形態として、Ｐ０のデータ型は、リストの行に対応した整数値であってもかまわない。
【００６３】
次にＳ１３０３に進み、ＲＡＭ１０２上でキーワードテーブル（ＫＷＴ）の作成・初期化を行う。本実施形態で使用するキーワードテーブルは、図９に示したものと同一であるので説明は省略する。また、併せてＳ１３０１で作成したリストの初期化処理として、リスト内の全画像のフラグ値を「０」にリセットする。次にＳ１３０４に進み、ポインタＰ１が、ポインタＰ０が指し示す画像（Ｐ０画像）と同じ画像を指すようにポインタＰ１を移動する。ポインタＰ１は、ポインタＰ０と同じ型であることが望ましい。次にＳ１３０５に進み、Ｐ１画像によりキーワードテーブル９００を更新する。即ち、Ｐ１画像に付随しているキーワードが、キーワードテーブル９００に載っていれば、その行のフラグを「１」に変更する。また、このときＰ１画像のリストにおけるフラグ値を「１」に変更する。
【００６４】
Ｓ１３０５では、まず、キーワードテーブル（ＫＷＴ）９００から先頭キーワードとフィールドを取得し、変数ＫｗとＦｌｄに記憶する。図９の場合、先頭のキーワードは「寺」であり、フィールドは「ｃｏｍｍｅｎｔ」である。なお、２番目のキーワード及びフィールドから取得を開始しても良い。Ｆｌｄは文字列型であってもよいし、メタデータの種類ごとにユニークにつけられた整数値（識別情報）であってもよい。次に、Ｐ０が指し示す画像（Ｐ０画像）のメタデータのうち、Ｆｌｄが示す種類のメタデータにＫｗが記憶されているかどうかを判定する。記憶されていなければ、Ｋｗがキーワードテーブル９００の最終キーワードであるかどうかを判定する。一方、もし記憶されていれば、キーワードテーブルにおけるＫｗのフラグを「１」に変更した後、Ｋｗがキーワードテーブル９００の最終キーワードであるかどうかを判定する。最終キーワードであればＳ１３０６に移行する。一方、最終キーワードでなければ、キーワードテーブル９００から次のキーワードとフィールドを取得して、上記処理を繰り返す。
【００６５】
次にＳ１３０６に進みポインタＰ１が指し示す画像（Ｐ１画像）の次の画像がリストにあるか否かを判定する。もし、当該次の画像があれば（Ｓ１３０６で「ＹＥＳ」）、Ｓ１３０７に進む。当該次の画像がなければ（Ｓ１３０６で「ＮＯ」）、Ｓ１３１０に進む。
【００６６】
Ｓ１３０７では、ポインタＰ１を上記の次の画像を指し示すよう移動する。続くＳ１３０８では、Ｐ１画像の撮影場所が、Ｐ０画像の撮影場所を重心または中心とする領域１２０８内に含まれるかどうかを判定する。当該判定は、画像に付随しているメタデータの一種である位置情報としてのＧＰＳ情報をもとに行う。ＧＰＳ情報は、Ｓ１３０１で画像を取得するときに同時に画像ファイルまたはデータベースから取得してもよいし、Ｓ１３０８の判定処理の直前に画像ファイルまたはデータベースから取得してもよい。ＧＰＳ情報は、緯度・経度・高度・時刻から成るが、２組の緯度・経度間の距離を算出する方法は公知なので省略する。
【００６７】
次にＳ１３０９に進み、Ｐ１画像に付随しているキーワードが、キーワードテーブル９００に載っていれば、その行のフラグを「１」に変更する。この処理の詳細については、Ｓ１３０５と同様なので説明は省略する。また、このときＰ１画像に付随しているキーワードが、キーワードテーブル９００に載っていれば、リストにおけるＰ１画像のフラグ値も「１」に変更する。これにより、所定のキーワードを含み、かつ、Ｐ０画像からユーザから指定された所定距離内に存在する画像を検索結果の候補とすることができる。
【００６８】
次にＳ１３０６に戻り、処理を継続する。もしＳ１３０６において、Ｐ１画像の次の画像がリストになければ、Ｓ１３１０に進む。Ｓ１３１０では、キーワードテーブル９００のすべての行のフラグが「１」になっているかどうかを判定する。すべての行のフラグが「１」であればＳ１３１１に進み、Ｐ０を重心とする領域１２０８内のすべての画像をデータベースから取得し、検索結果に追加する。領域１２０８内の画像は、リストにおいてフラグ値が「１」の画像として識別できるため、リストにおいてフラグ値が「１」の画像のファイルパスを用いて画像を取得できる。その後Ｓ１３１２に進む。また、Ｓ１３１０で、フラグが「０」の行が一つでもあれば、Ｓ１３１２に進む。
【００６９】
Ｓ１３１２では、前述のように、Ｐ０画像がリストの最後の画像であるかどうかを判定する。最後の画像であれば、Ｓ１３１４に移行する。Ｓ１３１４では検索結果を出力表示し、検索処理を終了する。最後の画像でなければ、Ｓ１３１３に進んで、ポインタＰ０が次の画像を指し示すように、ポインタＰ０を移動した後、Ｓ１３０３に進んで、処理を継続する。このようにして、リスト内の画像を順次選択していく。
【００７０】
なお、本実施形態に係るファイル検索装置又はアプリケーションにおいて、図１３の検索処理により得られた検索結果を表示するための表示画面は、図６のダイアログ６００と同様なので、省略する。ただし、ジャンプボタン６１７〜６１９がクリックされたときは、対応する検索結果に含まれる画像のうち、撮影日時が最も早い画像を自動的に選択してこれを基準とし、本アプリケーションのメインウィンドウをスクロールし、キーワード」が付随した画像及びその中間画像を表示する。また、検索結果の画像に対し、時間的に近傍に位置する画像、即ち、画像７０２より前に撮影された画像と、画像７０６の後に撮影された画像を併せて見ることができる。その際に、検索結果に含まれていた画像を他の画像と区別するためにハイライト表示しても良い。
【００７１】
本実施形態に係るメインウィンドウは、図７と同様なので説明は省略する。図６における他の動作として、ユーザがいずれかの画像をクリックしたとき、その画像を選択状態とし、ジャンプボタンがクリックされた時に、メインウィンドウをスクロールし、選択状態の画像の前後の撮影日時を有する画像を表示することにしてもよい。あるいは、Ｓ１３１１において検索結果を追加するときに、Ｐ０画像を記憶しておき、図６においてジャンプボタンがクリックされた時に、メインウィンドウをスクロールし、撮影日時順でＰ０画像の前後を表示することにしてもよい。
【００７２】
なお、上記の検索処理では、ポインタＰ０で指し示した画像毎に領域１２０８が設定され、また、ポインタＰ０はリスト内の画像を順に指定していくので、設定された領域が多数重なり合うことも考えられる。その場合に、全ての検索結果を表示した場合、同じような検索結果が多数表示されることになって、ユーザの利便性を損なうことも考えられる。そこで、各Ｐ０画像について得られた検索結果を比較して、検索結果に含まれる画像が一定（例えば、７割）以上の割合で重複している場合には、包含されている画像の数が最も多いものを選択して検索結果としても良い。或いは、キーワードのうち、重みを置く１つのキーワードを含む画像がより多く含まれる検索結果を選択しても良い。さらには、複数の検索結果を統合して１つの検索結果としても良い。
【００７３】
以上により、本実施形態に係るファイル検索装置に検索条件として与えられた３つ以上のキーワードが同一の画像に付随していない場合でも、画像を検索することができる
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014059861.tif 000003
【図３Ｂ】
2014059861.tif 000004
【図４Ａ】
2014059861.tif 000005
【図４Ｂ】
2014059861.tif 000006
【図１０Ａ】
2014059861.tif 000007
【図１０Ｂ】
2014059861.tif 000008
【図１０Ｃ】
2014059861.tif 000009
【図１３】
2014059861.tif 000010
【図２】
2014059861.tif 000011
【図３Ａ】
2014059861.tif 000012
【図５】
2014059861.tif 000013
【図６】
2014059861.tif 000014
【図７】
2014059861.tif 000015
【図８】
2014059861.tif 000016
【図９】
2014059861.tif 000017
【図１１】
2014059861.tif 000018
【図１２】
2014059861.tif 000019