(57)【要約】【課題】高速で実用的な画像ファイルの検索が行える画像検索プログラムおよび画像検索装置を提供する。【解決手段】画像データと該画像データに関連付けられた画像関連データとからなるデータを、画像データから抽出した画像特徴量および画像関連データをキーに登録および検索する画像検索プログラムにおいて、画像特徴量を抽出する特徴量抽出ステップ１３と、特徴量抽出ステップに先立って所定の画像処理を行う特徴量抽出前処理ステップ１２とを有し、特徴量抽出前処理ステップ１２は取り替え可能に構成した。【選択図】　　　図１
2004133812.tif 000002
【特許請求の範囲】
【請求項１】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、前記画像特徴量を抽出する特徴量抽出ステップと、該特徴量抽出ステップに先立って所定の画像処理を行う特徴量抽出前処理ステップとを有し、前記特徴量抽出前処理ステップは取り替え可能に構成したことを特徴とする画像検索プログラム。
【請求項２】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、前記画像データを画像特徴量および画像関連データとで検索する検索ステップを備えたことを特徴とする画像検索プログラム。
【請求項３】
前記検索ステップは複数の指定された検索条件を基に画像関連データごとに検索を実行して得られた検索結果および画像特徴量で検索した検索結果に応じて絞込みの検索順序を変更することを特徴とする請求項２記載の画像検索プログラム。
【請求項４】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、画像データ、画像関連データおよび画像特徴量データをルートからのパスによりデータの位置が特定される木構造で配置して登録する登録ステップと、検索時に前記データのパスを参照して検索を行う検索ステップとを備えたことを特徴とする画像検索プログラム。
【請求項５】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、検索ステップが行った検索結果から不要なデータを除去する検索フィルタを有し、該検索フィルタは取り替え可能に構成したことを特徴とする画像検索プログラム。
【請求項６】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、前記画像データおよび前記画像関連データを登録する際、予め指定した画像特徴量あるいは画像関連データが登録条件に適合する場合のみ登録を行う登録フィルタを備えたことを特徴とする画像検索プログラム。
【請求項７】
前記登録フィルタは取り替え可能に構成したことを特徴とする請求項６記載の画像検索プログラム。
【請求項８】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索装置において、所定の条件を満たすデータのみを登録する登録データフィルタリング手段を備えたことを特徴とする画像検索装置。
【請求項９】
画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索装置において、所定の条件を満たす検索結果のみを出力する検索結果フィルタリング手段を備えたことを特徴とする画像検索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像及びその画像と関連付けられた画像関連データを登録および検索する技術に関する。
【０００２】
【従来の技術】
従来、多数の画像ファイルの中から所望の画像ファイルを検索する場合は、すべての画像ファイルについて画像内容を表す画像特徴量を求めておき、所望の画像ファイルの特徴量に近い特徴量を持つ画像ファイルを候補として検索して表示していた。このような検索にかかる従来技術としては次のものがあげられる。
（１）特開２０００−１８７７３１公報「画像特徴抽出及びその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体」
（２）特開２０００−２８５１４１公報「画像検索装置、画像分類装置およびそれらの装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体」
（３）特開２０００−３１１２４６公報「類似画像表示方法及び類似画像表示処理プログラムを格納した記録媒体」
【特許文献１】特開２０００−１８７７３１公報
【特許文献２】特開２０００−２８５１４１公報
【特許文献３】特開２０００−３１１２４６公報
【０００３】
【発明が解決しようとする課題】
しかしながら、画像の検索を行う場合に、画像内容を表す画像特徴量のみで検索することは極めて少なく、実際にはテキストや日付や地理情報、または画像の撮影環境に関する情報、さらには音声といった多様な画像関連データをも検索条件に入れて検索を行うのが一般的である。
このような場合に画像検索だけの機能と、他の情報による検索機能をアプリケーションプログラム側で統合しようとすると、画像検索した後に他の情報の条件で更に絞り込む必要があるが、アプリケーションプログラム側の負担が大きいだけでなく、検索数を限定したい場合には極めて困難な場面が発生する。つまり、最終的には１０件の検索結果が欲しい場合に、アプリケーションプログラム側の条件により何件落とされるかわからないので、画像検索時に何件検索すれば十分なのか判断がつかず、膨大な検索を行わなければならないことになる。
前述の従来技術は大量画像に対する画像検索の技術を開示しているが、画像以外の検索方法については言及していない。
本発明はこの問題に鑑み、画像検索時に画像と関連付けられたデータによる検索も同時に行うようにすることにより、高速で実用的な画像ファイルの検索が行える画像検索プログラムおよび画像検索装置を提供することを目的とする。
また、本発明の他の目的は、検索プログラムの開発時に適切なプログラムモジュールを容易に定義できるプログラム構造を提供することである。
【０００４】
【課題を解決するための手段】
上記の課題を解決するために、本発明の請求項１は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、画像特徴量を抽出する特徴量抽出ステップと、該特徴量抽出ステップに先立って所定の画像処理を行う特徴量抽出前処理ステップとを有し、前記特徴量抽出前処理ステップは取り替え可能に構成したことを特徴とする。
また、本発明の請求項２は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、前記画像データを画像特徴量および画像関連データとで検索する検索ステップを備えたことを特徴とする。
また、本発明の請求項３は、請求項２記載の画像検索プログラムにおいて、前記検索ステップは複数の指定された検索条件を基に画像関連データごとに検索を実行して得られた検索結果および画像特徴量で検索した検索結果に応じて絞込みの検索順序を変更することを特徴とする。
また、本発明の請求項４は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、画像データ、画像関連データおよび画像特徴量データをルートからのパスによりデータの位置が特定される木構造で配置して登録する登録ステップと、検索時に前記データのパスを参照して検索を行う検索ステップとを備えたことを特徴とする。
また、本発明の請求項５は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、検索ステップが行った検索結果から不要なデータを除去する検索フィルタを有し、該検索フィルタは取り替え可能に構成したことを特徴とする。
【０００５】
また、本発明の請求項６は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索プログラムにおいて、前記画像データおよび前記画像関連データを登録する際、予め指定した画像特徴量あるいは画像関連データが登録条件に適合する場合のみ登録を行う登録フィルタを備えたことを特徴とする。
また、本発明の請求項７は、請求項６記載の画像検索プログラムにおいて、前記登録フィルタは取り替え可能に構成したことを特徴とする。
また、本発明の請求項８は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索装置において、所定の条件を満たすデータのみを登録する登録データフィルタリング手段を備えたことを特徴とする。
また、本発明の請求項９は、画像データと該画像データに関連付けられた画像関連データとからなるデータを、前記画像データから抽出した画像特徴量および前記画像関連データをキーに登録および検索する画像検索装置において、所定の条件を満たす検索結果のみを出力する検索結果フィルタリング手段を備えたことを特徴とする。
【０００６】
【発明の実施の形態】
以下、図面を参照して、本発明の画像検索装置／プログラムにおける実施の形態を説明する。図１は本発明の機能構成を示すブロック図である。本構成は画像検索時に利用する画像特徴量を予め抽出しておくことで、検索を高速に行う構成になっている。なお、検索時に特徴量の抽出を逐一行う方法でも良い。
デジタルカメラなどで得られた画像及び画像に関連付けられているデータが記憶装置２にあると想定する。もちろんデジタルカメラなどの入力デバイスから直接得られる場合も考えられる。画像に関連付けられるデータ（画像関連データ）はこの図では二つであるが、画像関連データの数に従い増減するものである。
また、アプリケーションプログラム４と画像検索プログラム５は一台のコンピュータ１で実現されるだけでなく、アプリケーションプログラム４と画像検索プログラム５が独立したコンピュータ上に存在し、両者がネットワークで接続された形態でもよい。
【０００７】
次に画像検索プログラム５の個々のモジュールの処理について説明する。
登録フィルタ処理１１はアプリケーション登録フィルタがアプリ定義処理６で指定されている場合には、アプリ定義処理６のアプリケーション登録フィルタを呼び出し、登録が必要な画像ファイルか否かを判定して、登録が必要な画像ファイルのみ登録する処理を行う。
前処理モジュール１２は画像特徴量を抽出するための画像の前処理を行う。たとえば画像の中心部分のみから特徴量を抽出する場合には、画像から中心部分を抽出する処理を行う。アプリ定義処理６によって前処理プログラムが指定されている場合には、アプリ定義処理６の前処理プログラムを呼び出す。
特徴量抽出モジュール１３は画像及び画像に関連付けられているデータが指定されると特徴抽出処理プログラムで画像から特徴量を抽出する。
登録モジュール１４は指定された画像に対応する画像を特定するためのＩＤ、画像に関連付けられたデータ及び画像から抽出された特徴量を記憶装置に登録する処理を行う。
そして、検索モジュール１５は特徴抽出処理で抽出された画像特徴量及び画像に関連付けられたデータにより記憶装置２に登録されたデータを検索し、検索された画像ＩＤを返す処理を行う。
また、検索フィルタ処理１６は検索結果に対して指定された条件に該当しない検索結果を除去するもので、アプリ定義処理６によって検索フィルタが指定されている場合には、アプリ定義処理６の検索フィルタ処理を呼び出す。
【０００８】
ところで、画像検索の機能を利用してアプリケーションプログラムを構築する場合に、そのアプリケーションプログラムによって、特徴量の抽出方法が異なる。例えば商品データのような画像であれば、商品は画像の中心に通常は存在するので、画像の中心領域からのみ特徴量を抽出した方が精度良い画像検索が可能である。つまり、特徴量を抽出する前に画像の中心領域を抽出する前処理を行う必要がある。したがって、アプリケーションプログラムの開発者がアプリケーションプログラムごとに最適な特徴量抽出のための前処理プログラムを自由に設定できる必要がある。
アプリケーションプログラム開発者は特徴量ごとに特徴量抽出の前処理を実行する関数（本プログラムから呼び出し可能な何らかのプログラミング言語で書かれた関数）を予め作成しておき、アプリケーションプログラム作成時にその関数を特徴量前処理関数（前処理を施す画像を引数とする）として指定する。このようにすることで特徴量抽出処理では以下のように処理を行う。
１）特徴量前処理関数が指定されているか否かをチェックする。
ａ）特徴量前処理関数が指定されていなければ、デフォルトの前処理を実施する。
ｂ）前処理関数が指定されていれば指定された画像を引数として前処理関数を呼び出す。前処理関数内では引数の画像に前処理を実施し画像を返す。
２）前処理を施した画像から特徴量を抽出する。
複数の特徴量、例えば、色（カラーヒストグラム）、エッジ（画像から抽出したエッジ画像を格子状に分割し、各格子のエッジのピクセル数を抽出した特徴量）の二つを抽出する場合には個々の特徴量抽出ごとに前処理関数を指定することを可能とする。また、前処理関数の中で他のソフトを起動する処理を記述しておけば、記述された任意のプログラムを前処理用のプログラムとして実行することも可能である。このように前処理が独立したプログラムとなるので、さらに前処理のプログラムを容易に取り替えることが可能となる。
【０００９】
次に、本発明の画像検索に用いるデータ構造について説明する。画像には画像と関連づけられたデータが存在する場合が多い。例えば画像のタイトル、作成日付、作成者、さらに、最近ではＧＰＳ（Ｇｌｏｂａｌ　Ｐｏｓｉｔｉｏｎｉｎｇ　Ｓｙｓｔｅｍ）による位置情報が付与されている場合もある。このような画像を検索する場合には、画像特徴量による検索だけでなく、画像に関連付けられた様々なデータも検索する必要がある。例えばアプリケーションプログラム側でＲＤＢ（Ｒｅｌａｔｉｏｎａｌ　Ｄａｔａ　Ｂａｓｅ）といったＤＢＭＳ（Ｄａｔａ　Ｂａｓｅ　Ｍａｎａｇｅｍｅｎｔ　Ｓｙｓｔｅｍ）を用意することも可能であるが、アプリケーションプログラム側の開発コストが増えるし、検索の高速化のための最適な検索処理も行えない。そこで、検索の対象となる画像に関連付けられた情報（画像関連データ）も管理し検索することでアプリケーションプログラム構築を行い高速な検索を可能とする。前述の図１のように、記憶装置２の二次記憶には、画像ＩＤと画像特徴量のデータベースの他に画像関連データのデータベースを用意する。
【００１０】
ここで、登録時の処理を図２のデータ構造を示す図を参照しながら以下に示す。登録時には画像及び画像関連データを指定する（図１では記憶装置２内の上部にある３つのファイル）。
１）まず特徴量抽出処理を行う：前述の説明どおりの処理を実施する
２）画像ＩＤを画像ＩＤデータベース（ＤＢ）に登録し、特徴量ＩＤを取得する。画像ＩＤは利用者が画像を管理するためのＩＤであり、例えばファイル名やＵＲＬなどの文字列であっても良いし、利用者が独自に管理している数値のＩＤであっても構わない。特徴量ＩＤは画像から抽出した特徴量に割り振られるＩＤであり、特徴量、画像ＩＤ、関連データはこのＩＤによりすべて特定される。
３）抽出した特徴量を特徴量ＤＢの特徴量ＩＤで示される位置に登録する
４）関連データ１を特徴量ＩＤで示される位置に登録する
５）関連データ２を特徴量ＩＤで示される位置に登録する。
関連データの数は特に限定するものではない。このように処理されて登録されたデータ構造は図２のようになる。
次に関連データが、画像のタイトル及び作成日付とした場合の例を説明する。この例に示す検索条件は、画像のタイトルが「江ノ島の夏」又は作成日付が２００２年１月１日以降に該当する画像で、かつ画像ｉｍｇ１２１．ｊｐｇとの類似度が０．２以内で類似している画像を検索することを意味する。なお、この場合の検索対象は図３の登録データを例として用いる。
ｉｍｇ１２１．ｊｐｇ（類似度＜０．２）ＡＮＤ（タイトル＝“江ノ島の夏”ＯＲ　作成日付＞“２００２／０１／０１”）
なお、実際には上のように文字列により検索条件を指定すると検索条件の文字列の解析が必要となるので、その代わりに検索関数の各引数に各ＤＢの検索条件を指定するような簡便な実装が可能である。
【００１１】
次に検索の処理手順を示す。
この例の検索では、画像だけでなく関連データの条件も指定した場合の処理となっている。なお、この例では関連データを検索した後に特徴量検索を行う例である。
１）特徴量抽出処理：前述のとおり画像特徴量（特徴量Ａ）を抽出する。
２）関連データ１の検索条件により関連データ１を検索して検索結果特徴量ＩＤ集合を得る
３）関連データ２の検索条件により関連データ２を検索して得られた特徴量ＩＤ集合と検索結果特徴量ＩＤ集合の和集合（検索条件にＯＲが指定された場合）又は積集合（検索条件にＡＮＤが指定された場合）を新たに検索結果特徴量ＩＤ集合とする。
４）画像特徴量の検索条件により特徴量ＤＢを検索して得られた特徴量ＩＤ集合と検索結果特徴量ＩＤ集合の和集合（検索条件にＯＲが指定された場合）又は積集合（検索条件にＡＮＤが指定された場合）を新たに検索結果特徴量ＩＤ集合とする。特徴量の検索は一般の類似画像検索と同様に特徴量Ａと特徴量ＤＢに蓄積されている特徴量を逐一比較し、類似度を求めることによって実現できる。
５）特徴量ＤＢの検索時に得られた類似度を基に検索結果特徴量ＩＤ集合をソートし検索結果リストを作成する。
６）画像ＩＤ　ＤＢから画像ＩＤを取得し検索結果リストに画像ＩＤを付与する。
【００１２】
このようにして得られた検索結果リストを図４に示す。
上の例では関連データ１、関連データ２、画像特徴量の順で検索したが、どのような順であっても構わない。ただし、検索の条件によっては検索時間に影響を与える場合がある。すなわち、画像特徴量の検索や関連データの検索がＯＲ検索の場合には、画像特徴量の検索結果と関連データの検索結果のそれぞれをマージ（和集合）するだけなので、どのような順番で検索を実行しても処理時間に差はない。しかし、ＡＮＤ検索が含まれる場合には早い段階で検索の対象の特徴量ＩＤ集合を絞り込めるほど検索速度を向上させることができる。
したがって、以下のように検索数をチェックし処理順序を変えることによって高速化が可能である。
１）特徴量抽出処理：前述のとおり特徴量（特徴量Ａ）を抽出する。
２）検索結果特徴量ＩＤ集合を空集合とする。
３）検索条件に基づき特徴量、関連データ１、関連データ２を検索し、それぞれの検索数のみを得る。
４）検索数の少ない順に以下の処理を行う。
当該の関連データ又は画像特徴量の検索結果と検索結果特徴量ＩＤ集合の和集合（検索条件にＯＲが指定された場合）又は積集合（検索条件にＡＮＤが指定された場合）を新たに検索結果特徴量ＩＤ集合とする。
５）特徴量ＤＢの検索時に得られた類似度を基に検索結果特徴量ＩＤ集合をソートし検索結果リストを作成する。
６）画像ＩＤ　ＤＢから画像ＩＤを取得し検索結果リストに画像ＩＤを付与する。
関連データの例としては、実画像データが保存されているディレクトリのパス名、画像のキーワード、ＧＰＳの位置情報、画像撮影時のカメラの情報（露出など）、画像の内容を話した音声情報なども考えられる。
特にコンピュータのファイルシステムで代表されるような、データ（画像データ）を木構造上に管理する場合には、木構造のルートからのパスを関連データとして管理し、検索の対象とすることで、木構造を考慮した画像検索を高速に行うことができる。
コンピュータのファイルシステムを例にすると、画像データは以下のようなパスで管理されている場合が多い。このパスは同時に分類でも有り得る。
／画像／フォト／四季／夏／海／江ノ島．ｊｐｇ
このパスを関連データとして管理しておけば、任意のディレクトリ（つまりは分類）をパスの文字列の前方一致により検索することが可能となる。また、関連データの管理及び検索には商用のリレーショナルデータベース（ＲＤＢ）などのＤＢＭＳ（データベース管理システム）を利用してもよい。
【００１３】
以上の実施例により関連データとして様々なデータを特徴量と共に管理し検索することが可能であるが、様々な関連情報の検索手段を本発明のプログラムが有している必要がある。関連データがテキストや数値データであれば容易に実現できるが、音声などではアプリケーションプログラム独自の検索手段を利用する必要があり、この場合には対応ができない。そこで、本プログラムの検索処理後に検索結果のフィルタ機能としてアプリケーションプログラムの指定するフィルタ処理（アプリケーションプログラムによって記述されたフィルタ関数）を呼び出す。
手順は次のようになる。呼び出し時には検索結果リストが引数となる。
１）アプリ定義処理６のフィルタ関数が指定されているか否かをチェックする。
ａ）アプリ定義処理６にフィルタ関数が指定されていれば、検索結果リストを引数としてアプリ定義処理６のフィルタ関数を呼び出す。アプリ定義処理６のフィルタ関数では検索結果リストによって示される検索データから不要な（アプリケーションプログラムの条件に合わない）検索結果を除いて返す。
ｂ）アプリ定義処理６にフィルタ関数が指定されていなければ、デフォルトの処理を行う。デフォルトでは通常は何も処理をしない。
なお、説明が前に戻るが、フィルタ処理については、検索フィルタと同様に、登録時に指定された画像が登録すべきか否かを判定する登録フィルタを指定することができる。アプリ定義処理６の登録フィルタは画像、画像ＩＤ、関連データを引数として呼び出される。手順は次のようになる。
１）アプリ定義処理６に登録フィルタが指定されているか否かをチェックする。
ａ）アプリ定義処理６に登録フィルタ関数が指定されていれば、画像、画像ＩＤ、関連データを引数として登録フィルタ関数を呼び出す。登録フィルタ関数ではそれが登録すべきか否かを判断し、登録すべき画像か否かを返す。
ｂ）アプリ定義処理６に登録フィルタ関数が指定されていなければ、デフォルトの処理を行う。デフォルトでは通常は何も処理をしない。
２）アプリ定義処理６の登録フィルタ関数が登録すべきデータの判定をした場合には登録処理を続行する。登録すべきではない画像と判断した場合には登録処理を中断する。
このような登録フィルタにより、例えば画像検索にふさわしくない小さな画像を除去するといった、登録時のフィルタ処理が容易にアプリケーションプログラムの開発者によって定義することが可能となる。
【００１４】
【発明の効果】
以上説明したように本発明によれば、各アプリケーションプログラムに相応しい前処理やフィルタ処理を開発者が自由に定義できる。
また、画像以外の画像に関連する様々なデータを基にした検索を高速に処理することが可能となる。
そして、木構造で管理（分類）された画像を効率よく検索することが可能となる。
また、所望としないデータの登録や、条件に合わない検索結果の出力を回避できる。
【図面の簡単な説明】
【図１】本発明の機能構成を示すブロック図である。
【図２】本発明の画像検索にかかるデータ構造を示す図である。
【図３】登録データの例を示す図である。
【図４】本発明による検索結果リストの例を示す図である。
【符号の説明】
１　コンピュータ
２　記憶装置
３　ディスプレイ
４　アプリケーションプログラム
５　画像検索プログラム
６　アプリ定義処理
１１　登録フィルタ
１２　前処理モジュール
１３　特徴量抽出モジュール
１４　登録モジュール
１５　検索モジュール
１６　検索フィルタ
【図１】
2004133812.tif 000003
【図２】
2004133812.tif 000004
【図３】
2004133812.tif 000005
【図４】
2004133812.tif 000006