JP5142705B2 - 画像検索装置 - Google Patents

画像検索装置 Download PDF

Info

Publication number
JP5142705B2
JP5142705B2 JP2007341547A JP2007341547A JP5142705B2 JP 5142705 B2 JP5142705 B2 JP 5142705B2 JP 2007341547 A JP2007341547 A JP 2007341547A JP 2007341547 A JP2007341547 A JP 2007341547A JP 5142705 B2 JP5142705 B2 JP 5142705B2
Authority
JP
Japan
Prior art keywords
key
image
feature
management table
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007341547A
Other languages
English (en)
Other versions
JP2009163466A (ja
Inventor
卓 反橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2007341547A priority Critical patent/JP5142705B2/ja
Publication of JP2009163466A publication Critical patent/JP2009163466A/ja
Application granted granted Critical
Publication of JP5142705B2 publication Critical patent/JP5142705B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、指定された画像に類似する画像を検索する画像検索装置に関する。
検索作業者が指定した画像に類似している画像を、例えばファイルサーバに蓄積された複数枚の画像の中から検索するために、各画像を複数の閉じた図形に分割し、分割した図形夫々の重心点を利用する手法が考えられている。
この手法では、図形の重心点の近傍に存在する複数個の点(例えば6個の点。以下、この点を近傍点という)を適宜に抽出し、抽出した6個の近傍点の内から2個の近傍点を選び出す15種類の組合せ(∵62 =15)について、重心点から2個の近傍点夫々までの距離の比を数列とした量が、この図形の特徴を数値的に示す特徴量として用いられる。この特徴量は相似不変量であるため、図形(延いては画像)の相似変換に耐性がある。同様にして、全ての図形夫々について特徴量が算出され、算出された全ての図形の特徴量が、画像の特徴量として用いられる。
画像を検索する画像検索装置は、検索作業者が指定した指定画像の特徴量と、ファイルサーバに蓄積された複数枚の蓄積画像夫々の特徴量とを比較し、指定画像の特徴量に一致する特徴量を多数有する蓄積画像が、指定画像に類似する類似画像(例えば同一の原稿を元にした画像、又は部分的に同一の形状を含む画像等)であると判断し、この類似画像を表示する。即ち、画像検索装置は、画像の特徴量を用いたマッチングによる検索結果を出力する。
ところで、この手法では、抽出された複数個の近傍点の何れかが、光学機器又は画像の汚れ等に起因するノイズである可能性がある。このようなノイズに対する耐性を強くするために、抽出すべき近傍点の個数を増加させ(例えば7個に増加させ)、7個の近傍点の内の1個をノイズであると仮定した残り6個の近傍点の組合せ7種類について夫々図形の特徴量を算出することによって、画像の特徴量を7倍冗長にする手法が考えられている。
以上のようにして算出される画像の特徴量は、1枚の画像当たり7千個を超えることがあり、各特徴量は20バイト程度のデータ長を有する。このため、画像を検索する際に、データ長が長い特徴量同士の比較を多数回実行する必要があり、検索速度が遅くなる傾向がある。
従来、ハッシュ法を用いて特徴量同士の比較回数を減らすことによって、検索速度を高速化する手法が行われている。この手法では、例えば指定画像及び蓄積画像夫々の各特徴量をハッシュ関数によってハッシュ値(即ち所定のデータ長を有する整数)に射影し、指定画像の特徴量と比較すべき蓄積画像の特徴量を、指定画像のハッシュ値と同一のハッシュ値を有する特徴量のみに絞込んでから、特徴量を用いたマッチングが行なわれる。
ところが、この手法では、検索の際、蓄積画像の特徴量についてハッシュ値毎にリスト形式のデータ構造を生成する必要があり、一般にはこのデータ構造はRAMに一時的に記憶される。従って、この手法は、蓄積画像の枚数が少ない場合には実用的であるが、多数枚の蓄積画像(たとえば10万枚)に対して検索を行なう場合には適さない。何故ならば、10万枚の蓄積画像のデータ構造を記憶するためには、管理用の情報を無視して少なく見積もっても、10万枚×7千個×20バイト=14ギガバイトの記憶容量を有するRAMが必要になるからである。また、このデータ構造を、RAMの代わりに例えばハードディスクのような二次記憶装置に一時的に記憶させると、データの読み書きに時間が掛かり、検索速度が遅くなる。
10万枚の蓄積画像に関する10万枚×7千個=7億個の特徴量を取り扱うための手法として、リレーショナル・データベースを用いる手法が存在する。
この手法を用いる場合、10万枚の蓄積画像を識別すべく、例えば4バイトのデータ長を有する整数が識別情報(以下、画像IDという)として各蓄積画像に付与され、この画像IDと、20バイトのデータ長を有する数列(以下、20バイト数列という)で表される特徴量とが関連付けられて画像を管理する画像管理テーブルに登録される。
画像管理テーブルの各レコードには、2つのフィールド(具体的には、画像IDを格納するIDフィールドと特徴量を格納する特徴量フィールドと)が関連付けて設けられている。このため、1枚の蓄積画像につき7千件のレコードが登録され、10万枚の蓄積画像を登録すると、画像管理テーブルには7億件のレコードが登録されることになる。
このような画像管理テーブルを用いて蓄積画像の中から指定画像の類似画像を探し出す場合、指定画像の7千個の特徴量の内の1個が選択され、選択された特徴量に等しい特徴量に関連付けられている画像IDが7億件のレコードの中から1又は複数特定され、特定された画像IDに関連付けて投票される。ここで、投票とは、蓄積画像が指定画像に類似している度合いを数値的に示す類似度を1度数インクリメントすることである。以下では、この類似度を投票数という。このような手順が、指定画像の全ての特徴量について、7千回繰り返される。
指定画像に類似している蓄積画像の画像IDの投票数は、指定画像に類似していない蓄積画像の画像IDに対する投票数より多くなるため、最も投票数が多い画像IDを有する蓄積画像が、指定画像に最も類似している類似画像であると判断される。
従来、蓄積画像と蓄積画像の特徴量とを関連付けて管理しておき、指定画像に類似した類似画像を容易に得るために、指定画像の特徴量に検索の曖昧度を設定して、曖昧度が設定された特徴量に対応する特徴量に関連付けられている画像IDを特定し、特定された画像IDに投票することによって類似画像を探し出す画像検索装置が提案されている(特許文献1参照)。
特開平11−306201号公報
ところが、指定画像の20バイト数列の特徴量と、7億件のレコードに格納されている20バイト数列の特徴量とを比較して、一致する特徴量を特定し、画像IDに投票する処理には、数ミリ秒〜数十ミリ秒の演算時間が必要とされ、この処理を7千回実行することによって、数秒〜数分という長い演算時間が必要とされ、この結果、画像の検索のための検索時間が長くなるという不都合がある。
しかしながら、検索時間を短縮するためには、演算能力が非常に高い演算部、及び記憶容量が大きい一次記憶装置等の高価な計算資源を用いる必要があるため、十分なコストパフォーマンスが得られないという問題がある。
特許文献1には、検索時間を短縮するために事前検索を実行して、指定画像と比較すべき蓄積画像の枚数を限定する手法が開示されているが、データ長が長い特徴量同士の比較を多数回実行することには代わりがないため、大幅な時間短縮は望めないと考えられる。
本発明は斯かる事情に鑑みてなされたものであり、その主たる目的は、画像の識別情報と特徴量とを、特徴量よりも情報量が少ないインデックスキーを介して関連付け、特徴量同士を比較する代わりにインデックスキー同士を比較する構成とすることにより、安価な計算資源を用いても、検索時間を短縮することができる画像検索装置を提供することにある。
本発明に係る画像検索装置は、指定された画像に類似する画像を、リレーショナル・データベースを用いて検索する検索手段を備える画像検索装置において、前記リレーショナル・データベースは、画像を蓄積する蓄積部に蓄積されている画像、及び該画像を識別する識別情報が関連付けられている蓄積管理テーブルと、画像の特徴を数値的に示す特徴量、及び該特徴量よりも情報量が少ないインデックスキーが関連付けられているキー管理テーブルと、識別情報、及び該識別情報を有する画像の特徴量に対応するインデックスキーが関連付けられている特徴管理テーブルとを有し、前記検索手段は、前記指定された画像の特徴量に対応するインデックスキーと、前記蓄積部に蓄積されている画像の特徴量に対応するインデックスキーとを用いて、前記指定された画像に類似する画像を検索するようにしてあり、前記蓄積管理テーブル、前記キー管理テーブル、及び/又は前記特徴管理テーブルを参照して、前記指定された画像の特徴量に対応するインデックスキーを探し出す特徴キー探索手段と、前記特徴管理テーブルを参照して、前記特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて、前記指定された画像と前記蓄積部に蓄積されている画像との類似度を算出する類似度算出手段と、該類似度算出手段が算出した類似度の高低に基づいて、前記指定された画像に類似する画像の識別情報を選択する画像選択手段と、前記蓄積管理テーブルを参照して、前記画像選択手段が選択した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得して、取得した画像を検索結果として、前記検索手段による検索結果を表示する表示部へ出力する結果出力手段とを有し、前記リレーショナル・データベースに画像を登録する画像登録手段を更に備え、該画像登録手段は、前記リレーショナル・データベースに登録すべき画像を前記蓄積部に蓄積させる蓄積制御手段と、前記画像に基づいて、該画像の特徴量を算出する特徴算出手段と、前記画像に対して識別情報を発行する情報発行手段と、該情報発行手段が発行した識別情報、及び前記蓄積制御手段が前記蓄積部に蓄積した画像を関連付けて前記蓄積管理テーブルに登録する蓄積管理登録手段と、前記キー管理テーブルを参照し、前記特徴算出手段が算出した特徴量に関連付けてインデックスキーが既に登録されているか否かを判定する登録判定手段と、該登録判定手段が否と判定した場合、前記特徴量に対し、該特徴量よりも情報量が少ないインデックスキーを発行するキー発行手段と、該キー発行手段が発行したインデックスキー、及び前記特徴量を関連付けて前記キー管理テーブルに登録するキー管理登録手段と、前記識別情報、及び前記特徴量に関連付けて前記キー管理テーブルに登録されているインデックスキーを関連付けて前記特徴管理テーブルに登録する特徴管理登録手段とを有し、前記特徴管理テーブルの各レコードには、識別情報を格納する識別情報フィールドと、互いに異なるフィールド値が付与されており、夫々インデックスキーを格納するM(Mは2以上の自然数)個のキーフィールドとが関連付けて設けてあり、前記特徴管理登録手段は、インデックスキーをフィールド値に対応させるハッシュ関数、及び前記特徴管理テーブルに登録すべきインデックスキーに基づいて算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドに、前記インデックスキーを格納する手段と、互いにハッシュ値が等しい前記インデックスキーが複数存在する場合は、前記インデックスキー夫々を、異なるレコードのキーフィールドに格納する手段と、インデックスキーが格納されているキーフィールド及び格納されていないキーフィールドを有するレコードに関し、インデックスキーが格納されていないキーフィールドに、インデックスキーが格納されていないことを示すキー未格納情報を格納する手段とを有し、前記類似度算出手段は、前記ハッシュ関数、及び前記特徴キー探索手段が探し出したインデックスキーに基づいて算出されたハッシュ値に基づいて、前記特徴管理テーブルの前記ハッシュ値に等しいフィールド値が付与されているキーフィールドを特定する手段と、該手段が特定したキーフィールドに格納されているインデックスキーの内の前記特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて類似度を算出する手段とを有することを特徴とする。
本発明に係る画像検索装置は、各インデックスキーは、少なくとも前記類似度算出手段として機能する演算部が1つの命令で演算可能なデータ長を有することを特徴とする。
本発明に係る画像検索装置は、少なくともキー管理テーブル及び特徴管理テーブルの組が複数設けられており、一の組のキー管理テーブル及び特徴管理テーブルを用いて、前記特徴キー探索手段がインデックスキーを探索し、前記類似度算出手段が類似度を算出するようにしてあり、前記検索手段は、前記一の組のキー管理テーブルを参照して、前記指定された画像の特徴量に対応するインデックスキーに基づいて前記指定された画像の特徴量を探し出す手段を更に有し、該手段が探し出した前記指定された画像の特徴量、及び他の組のキー管理テーブル及び特徴管理テーブルを用いて、前記特徴キー探索手段がインデックスキーを探索し、前記類似度算出手段が類似度を算出するようにしてあることを特徴とする。
本発明に係る画像検索装置は、各レコードのキーフィールドに付与されるフィールド値として、“0”以上“M−1”以下の整数を用いるようにしてあり、各インデックスキーは、整数を用いてなり、前記特徴管理登録手段は、インデックスキーをMで除算した場合の剰余を求める前記ハッシュ関数、及び前記特徴管理テーブルに登録すべきインデックスキーに基づいて算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドに、前記インデックスキーをMで除算した場合の商を格納するようにしてあることを特徴とする。
本発明に係る画像検索装置は、前記特徴管理登録手段は、前記登録判定手段が登録されていると判定した場合、登録されているインデックスキーを優先的にキーフィールドに格納するようにしてあり、前記キー発行手段は、前記特徴管理登録手段が前記インデックスキーを格納した後で、インデックスキーが未格納であるキーフィールドのフィールド値に等しいハッシュ値を有するインデックスキーの内、該インデックスキーに関連付けて前記キー管理テーブルに特徴量が登録されていないインデックスキーを発行するようにしてあることを特徴とする。
本発明に係る画像検索装置は、インデックスキー並びに特徴量及び識別情報を新規登録すべきキー管理テーブル及び特徴管理テーブルの組と、新規登録が終了しているキー管理テーブル及び特徴管理テーブルの組とが設けられており、前記キー発行手段は、前記新規登録が終了しているキー管理テーブルを参照し、前記特徴算出手段が算出した特徴量に関連付けてインデックスキーが登録されているか否かを判定する手段と、該手段が登録されていると判定した場合、登録されているインデックスキーのハッシュ値に等しいハッシュ値を有するインデックスキーを発行する手段とを有し、前記画像登録手段は、前記新規登録すべきキー管理テーブル及び特徴管理テーブルに対する新規登録が終了した後で、前記新規登録すべきキー管理テーブルに登録されている特徴量に一致する特徴量が、前記新規登録が終了しているキー管理テーブルに登録されているか否かを判定する第1手段と、該第1手段が登録されていると判定した場合、前記新規登録すべきキー管理テーブルに登録されているインデックスキーを、前記特徴量に関連付けて前記新規登録が終了しているキー管理テーブルに登録されているインデックスキーに対応付ける第2手段と、前記第1手段が否と判定した場合、登録されていないと判定された特徴量に関連付けて前記新規登録すべきキー管理テーブルに登録されているインデックスキーのハッシュ値に等しいハッシュ値を有し、しかも、前記新規登録が終了しているキー管理テーブルにて特徴量に関連付けられていないインデックスキーを発行する第3手段と、該第3手段が発行したインデックスキー、及び前記特徴量を関連付けて前記新規登録が終了しているキー管理テーブルに登録する第4手段と、前記新規登録すべきキー管理テーブルに登録されているインデックスキーを、前記第3手段が発行したインデックスキーに対応付ける第5手段と、前記新規登録すべき特徴管理テーブルに登録されている識別情報及びインデックスキーを、該インデックスキーを前記第2手段及び/又は第5手段によって対応付けられているインデックスキーに変換して、前記新規登録が終了しているキー管理テーブル及び特徴管理テーブルに登録する第6手段とを更に有することを特徴とする。
本発明に係る画像検索装置は、前記キー管理テーブルは、画像の特徴量又は画像に付属する付属情報と、少なくとも前記特徴量よりも情報量が少ないインデックスキーとが関連付けられるようにしてあり、前記検索手段は、前記蓄積管理テーブル、前記キー管理テーブル、及び/又は前記特徴管理テーブルを参照して、指定された付属情報に対応するインデックスキーを探し出す情報キー探索手段と、前記特徴管理テーブルを参照して、前記情報キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて、付属情報が一致していることを示す一致情報を付与する情報付与手段とを更に有し、前記結果出力手段は、前記蓄積管理テーブルを参照して、前記画像選択手段が選択した識別情報の内、前記情報付与手段が一致情報を付与した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得するようにしてあり、前記画像登録手段は、前記キー管理テーブルを参照し、前記リレーショナル・データベースに登録すべき画像の付属情報に関連付けてインデックスキーが既に登録されているか否かを判定する第2の登録判定手段と、該第2の登録判定手段が否と判定した場合、前記付属情報に対してインデックスキーを発行する第2のキー発行手段と、該キー発行手段が発行したインデックスキー、及び前記付属情報を関連付けて前記キー管理テーブルに登録する第2のキー管理登録手段と、前記情報発行手段が発行した識別情報、及び前記付属情報に関連付けて前記キー管理テーブルに登録されているインデックスキーを関連付けて前記特徴管理テーブルに登録する第2の特徴管理登録手段とを更に有することを特徴とする。
本発明に係る画像検索装置は、互いに通信可能な複数の計算機を用いてなり、各計算機は、前記蓄積部、前記リレーショナル・データベースが有する各種管理テーブル、前記検索手段が有する各手段、前記表示部、前記画像登録手段が有する各手段の内の1つ以上を備えることを特徴とする。
本発明に係る画像検索装置は、前記キー管理テーブルには、関連付けられているインデックスキー及び特徴量に更に関連付けて、該特徴量を有する画像の枚数を示す枚数情報が登録されるようにしてあり、前記キー管理登録手段は、インデックスキー及び特徴量を関連付けて前記キー管理テーブルに登録する際に、前記枚数情報を登録するようにしてあり、前記類似度算出手段は、前記特徴キー探索手段が探し出したインデックスキーの内、前記キー管理テーブルにて前記インデックスキーに一致するインデックスキーに関連付けられている枚数情報が示す枚数が所定枚数以上であり、且つ、前記枚数が最も少ないインデックスキーから枚数の少なさの順にインデックスキーを特定する手段と、前記特徴管理テーブルを参照して、前記手段が特定したインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて類似度を算出する手段とを有し、前記画像登録手段は、前記登録判定手段が、前記特徴算出手段が算出した特徴量に関連付けてインデックスキーが既に登録されていると判定した場合、登録されているインデックスキーに関連付けられている枚数情報を増加させる枚数計数手段を更に有することを特徴とする。
本発明に係る画像検索装置は、前記画像選択手段は、暫定的に、前記類似度算出手段が算出した類似度が所定類似度以上に達した識別画像を選択する第1の手段と、最終的に、前記類似度算出手段が算出した類似度が最も高い識別画像から類似度の高さの順に識別画像を選択する第2の手段とを有し、前記結果出力手段は、前記第1の手段が選択した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得して、取得した画像を暫定的な検索結果として前記表示部へ出力する手段と、前記第2の手段が選択した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得して、取得した画像を最終的な検索結果として前記表示部へ出力する手段とを有することを特徴とする。
本発明に係る画像検索装置は、前記リレーショナル・データベースから画像の登録を抹消する際、少なくとも前記特徴管理テーブルについて、登録を抹消すべき画像の識別情報に対し、無効を意味する無効情報を付与する無効付与手段を更に備え、前記類似度算出手段は、前記無効情報が付与されている識別情報を除く識別情報の中から、前記特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定するようにしてあることを特徴とする。
本発明にあっては、検索手段を備える。検索手段は、各種管理テーブルを有するリレーショナル・データベースを用いて、検索作業者によって指定された画像(以下、指定画像という)に類似する画像を検索する。
蓄積部には、画像が蓄積されている。以下では、蓄積部に蓄積されている画像を蓄積画像といい、検索手段は、蓄積画像の中から指定画像に類似する蓄積画像(以下、類似画像という)を検索する。
蓄積管理テーブルにおいては、蓄積画像と、蓄積画像を識別する識別情報とが関連付けられている。
キー管理テーブルにおいては、蓄積画像の特徴を数値的に示す特徴量と、特徴量の索引項目としてのインデックスキーとが関連付けられており、インデックスキーは、蓄積画像の特徴量よりも情報量が少ない。
特徴管理テーブルでは、識別情報と、この識別情報が付与された蓄積画像の特徴量に対応するインデックスキーとが関連付けられている。
つまり、本発明の画像検索装置が用いるリレーショナル・データベースでは、蓄積画像と特徴量とを、識別情報及びインデックスキーを介在して関連付けている。
ここで、「A−B」という表記を、AとBとの関連付けを意味するものとして用いると、本発明のデータベースでは、「蓄積画像−特徴量」が、「蓄積画像−識別情報」、「識別情報−インデックスキー」及び「インデックスキー−特徴量」の3つに分けて記憶される。一方、従来の画像検索装置が用いるリレーショナル・データベースでは、「蓄積画像−特徴量」が、通常、「蓄積画像−識別情報」及び「識別情報−特徴量」の2つに分けて記憶されるため、見かけ上、本発明のリレーショナル・データベースに必要とされる記憶容量は1.5倍に増加する。
しかしながら、一般には、異なる蓄積画像同士が共通する特徴を有していることが多い。このため、従来のリレーショナル・データベースは、同一の特徴量を繰り返し記憶する必要があるが、本発明のリレーショナル・データベースは、同一のインデックスキーを繰り返し記憶すればよい。従って、蓄積画像の枚数が多くなるほど、従来のリレーショナル・データベースに必要とされる記憶容量と本発明のリレーショナル・データベースに必要とされる記憶容量との差は小さくなる。つまり、本発明のリレーショナル・データベースを導入しても、画像検索装置が備える記憶装置に必要な記憶容量を大幅に増大させる必要はなく、蓄積画像の枚数、種類等によっては、必要な記憶容量が減少することさえ期待される。このように、本発明の画像検索装置は、特に蓄積画像の枚数が多い場合に適している。
検索手段は、指定画像の特徴量に対応するインデックスキーと、蓄積画像の特徴量に対応するインデックスキーとを用いて類似画像を検索する。即ち、検索手段は、情報量が多い特徴量ではなく、情報量が少ないインデックスキー用いて画像を検索する。この結果、検索時間が短縮される。
本発明にあっては、検索手段は、特徴キー探索手段と類似度算出手段と画像選択手段と結果出力手段とを有する。
特徴キー探索手段は、蓄積管理テーブル、キー管理テーブル及び/又は特徴管理テーブルを参照して、指定画像の特徴量に対応するインデックスキーを探し出す。
類似度算出手段は、特徴管理テーブルを参照して、特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定する。つまり類似度算出手段は、指定画像の特徴量に一致する蓄積画像の特徴量を求めることなく、指定画像の特徴量のインデックスキーに一致する蓄積画像の特徴量のインデックスキーを求める。換言すれば、類似度算出手段は、情報量が多い特徴量同士を比較することなく、情報量が少ないインデックスキー同士を比較する。更に類似度算出手段は、求めたインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて、指定画像と蓄積画像との類似度を算出する。例えば類似度には初期値が設定され、インデックスキー同士が一致した回数に応じて、類似度の値が、画像同士が類似していることを示す方向に変更される。
インデックスキー同士を比較する際に類似度算出手段が参照すべきテーブルは少ない。何故ならば、類似度算出手段は「識別情報−インデックスキー」の特徴管理テーブルを参照すればよく、「蓄積画像−識別情報」の蓄積管理テーブルと「インデックスキー−特徴量」のキー管理テーブルとを参照する必要はないからである。また、リレーショナル・データベースでは、類似度算出手段によるインデックスキーの比較、識別情報の特定及び類似度の算出は、1つのクエリで実行可能である。
以上の結果、画像を検索するために高い演算能力及び長い演算時間を必要としない。
画像選択手段は、類似度算出手段が算出した類似度の高低(即ち投票数の多寡)に基づいて、類似画像の識別情報を選択する。
結果出力手段は、蓄積管理テーブルを参照して、画像選択手段が選択した識別情報に一致する識別情報に関連付けられている蓄積画像を蓄積部から取得して、取得した蓄積画像を検索結果(即ち類似画像)として表示部へ出力する。
表示部は、結果出力手段から入力された検出結果(即ち検索手段による検索結果)を表示する。検索作業者は、表示部に表示された類似画像を視認して、この類似画像が所望の画像であるか否かを判断する。
本発明にあっては、演算部が1つの命令で演算可能な短いデータ長を有するインデックスキーを用いる。この演算部は、少なくとも、特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定する類似度算出手段として機能する。
このようなインデックスキーを用いる場合、1つの命令では演算不可能な長いデータ長を有するインデックスキーを用いる場合に比べて、インデックスキー同士の比較に要する演算部のサイクル・タイムを短縮することができる。従って、検索時間を更に短縮することができる。
本発明にあっては、少なくともキー管理テーブル及び特徴管理テーブルの組が複数設けられている。例えば一のキー管理テーブル及び特徴管理テーブルの組と、他のキー管理テーブル及び特徴管理テーブルの組とが設けられている。
何故ならば、一般に、キー管理テーブル及び/又は特徴管理テーブルには、各種データを登録可能な上限が存在するため、現在使用されているキー管理テーブル及び/又は特徴管理テーブルが登録の上限に達する直前に、このキー管理テーブル及び特徴管理テーブルを旧い各種管理テーブルとして、新しい各種管理テーブルが生成されるからである。あるいは、一ヶ月毎、半期毎等に、現在使用されているキー管理テーブル及び特徴管理テーブルを旧い各種管理テーブルとして、新しい各種管理テーブルが生成されるからである。
従って、例えば検索作業者によって与えられた指定画像の識別情報と、一の組のキー管理テーブル及び特徴管理テーブルとを用いて、特徴キー探索手段がインデックスキーを探索し、類似度算出手段が類似度を算出する。
また、一の組のキー管理テーブルを参照して、指定画像の特徴量に対応するインデックスキーに基づいて指定画像の特徴量を探し出し、このようにして探し出した指定画像の特徴量と、他の組のキー管理テーブル及び特徴管理テーブルとを用いて、特徴キー探索手段がインデックスキーを探索し、類似度算出手段が類似度を算出する。
最終的に、画像選択手段が識別情報を選択する。
つまり検索手段は、一のキー管理テーブル及び特徴管理テーブル(例えば新しい各種管理テーブル)の組を用いて画像を検索し、インデックスキーと特徴量とを変換及び再変換してから、他のキー管理テーブル及び特徴管理テーブル(この場合は旧い各種管理テーブル)の組を用いて、画像を検索する。このように、検索手段は、2組のキー管理テーブル及び特徴管理テーブル(即ち旧い各種管理テーブルと新しい各種管理テーブルと)にまたがって、画像を検索することができる。同様にして、3組以上のキー管理テーブル及び特徴管理テーブルにまたがって、画像を検索することもできる。
本発明にあっては、リレーショナル・データベースに画像を登録する画像登録手段を更に備え、画像登録手段は、蓄積制御手段と、特徴算出手段と、情報発行手段と、蓄積管理登録手段と、登録判定手段と、キー発行手段と、キー管理登録手段と、特徴管理登録手段とを有する。
まず、蓄積制御手段は、リレーショナル・データベースに登録すべき画像を蓄積部に蓄積させ、特徴算出手段は、リレーショナル・データベースに登録すべき画像(即ち蓄積画像)の特徴量を算出し、情報発行手段は、蓄積画像に対して識別情報を発行する。
次に、蓄積管理登録手段は、情報発行手段が発行した識別情報と蓄積制御手段が蓄積部に蓄積した蓄積画像とを関連付けて蓄積管理テーブルに登録する。
また、登録判定手段は、キー管理テーブルを参照して、特徴算出手段が算出した特徴量に関連付けてインデックスキーが既に登録されているか否かを判定する。登録判定手段が否(即ち同一の特徴量が登録されていない)と判定した場合、キー発行手段は、特徴算出手段が算出した特徴量に対してインデックスキーを発行し、キー管理登録手段は、キー発行手段が発行したインデックスキーと、特徴算出手段が算出した特徴量とを関連付けてキー管理テーブルに登録する。ここで、キー発行手段が発行するインデックスキーは、特徴算出手段が算出した特徴量よりも情報量が少ない。
更に、特徴管理登録手段は、情報発行手段が発行した識別情報と、特徴算出手段が算出した特徴量に関連付けてキー管理テーブルに登録されているインデックスキーとを関連付けて特徴管理テーブルに登録する。更に詳細には、特徴管理登録手段は、登録判定手段が登録されていると判定した場合は、情報発行手段が発行した識別情報と、既に登録されているインデックスキーとを関連付けて特徴管理テーブルに登録する。一方、登録判定手段が否と判定した場合は、特徴管理登録手段は、情報発行手段が発行した識別情報と、新たにキー発行手段が発行してキー管理登録手段が登録したインデックスキーとを関連付けて特徴管理テーブルに登録する。
以上のようにして画像登録手段は、蓄積画像を蓄積し、特徴量の算出と識別情報の発行とを行なし、同一の特徴量を重複して登録してしまう無駄を避けつつ、各種管理テーブルに各種データを登録することができる。
本発明にあっては、特徴管理テーブルの各レコードに、識別情報を格納する識別情報フィールドと、インデックスキーを格納するキーフィールドとが関連付けて設けてある。ただし、識別情報フィールド1個に対してキーフィールドはM(Mは2以上の自然数)個が関連付けられており、各キーフィールドには、互いに異なるフィールド値が付与されている。
画像登録の際、特徴管理登録手段は、特徴管理テーブルに登録すべきインデックスキーをキーフィールドに格納する場合に、インデックスキーをフィールド値に対応させるハッシュ関数と、登録すべきインデックスキー(以下、登録インデックスキーという)とに基づいてハッシュ値を算出し、算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドに、登録インデックスキーを格納する。
ただし、互いにハッシュ値が等しい登録インデックスキーが複数存在する場合は、特徴管理登録手段は、登録インデックスキー夫々を、異なるレコードのキーフィールドに格納する。このとき、これらのキーフィールドには、当然、同一のフィールド値が付与されている。
また、一つのレコードに、インデックスキーが格納されているキーフィールドとインデックスキーが格納されていないキーフィールド(以下、空きキーフィールドという)とが存在する場合、特徴管理登録手段は、空きキーフィールドに、インデックスキーが格納されていないことを示すキー未格納情報を格納する。このため、何も格納されていないキーフィールドを有するレコードによってリレーショナル・データベースにエラーが生じることが防止される。
このようにして特徴管理登録手段は、特徴管理テーブルに設けるレコードの件数を低減することができる。このため、レコードの件数が少ない特徴管理テーブルに新たなレコードを挿入するための演算時間を短縮することができ、画像の登録のための登録時間を短縮することができる。
一般に、1枚の蓄積画像の全ての特徴量夫々に関連付けられているインデックスキーのハッシュ値が互いに等しい可能性は低いため、一つのレコードに各1個の識別情報とインデックスキーとが格納される無駄は自然と避けられる。
仮に、一つのレコードに各1個の識別情報フィールドとキーフィールドとが設けられている場合、レコードの件数が多くなるため、このような特徴管理テーブルに新たなレコードを挿入する演算時間は長くなり、画像の登録のための登録時間が長くなる。
画像検索の際、類似度算出手段は、特徴管理登録手段が用いるハッシュ関数と、特徴キー探索手段が探し出したインデックスキーとに基づいてハッシュ値を算出し、算出されたハッシュ値に基づいて特徴管理テーブルのキーフィールドを特定する。ここで特定されるキーフィールドは、算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドである。
次に、類似度算出手段は、ハッシュ値に基づいて特定したキーフィールドに格納されているインデックスキーの内から、特徴キー探索手段が探し出したインデックスキーに等しいインデックスキーを特定し、特定したインデックスキーに関連付けられている識別情報を所要の識別情報として特定し、特定した識別情報に関連付けて類似度を算出する。
つまり、類似度算出手段は、インデックスキー同士の比較を行なう前に、特徴キー探索手段が探し出したインデックスキーのハッシュ値に基づいて、このインデックスキーと比較すべきインデックスキーの絞込みを行なうことができる。この結果、特徴キー探索手段が探し出したインデックスキーと特徴管理テーブルに登録されている全てのインデックスキーとを比較する場合と比べて、検索時間を短縮することができる。
本発明にあっては、特徴管理テーブルの各レコードに、識別情報フィールドと、整数を用いてなるインデックスキーを夫々格納するM個のキーフィールドとが関連付けて設けてある。ただし、各キーフィールドには、互いに異なるフィールド値として、“0”以上“M−1”以下の整数が付与されている。
特徴管理登録手段は、Mでインデックスキーを除算した場合の剰余を求めるハッシュ関数を用いる。このハッシュ関数は、類似度算出手段が用いるハッシュ関数と同じものである。
特徴管理登録手段は、このハッシュ関数と登録インデックスキーとに基づいてハッシュ値を算出し、算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドに、Mで登録インデックスキーを除算した場合の商を格納する。この場合の剰余は、キーフィールドのフィールド値に等しい。また、キーフィールドに格納される値の桁数は、インデックスキーの桁数より少ない。
従って、キーフィールドにインデックスキーを格納せずとも、キーフィールドに格納されている値と、キーフィールドに付与されているフィールド値とを用いて、インデックスキーを容易に求めることができる。しかも、キーフィールドに格納すべきデータの情報量を低減することができる。
本発明にあっては、画像登録の際に、登録判定手段が登録されていると判定した場合、特徴管理登録手段は、既にキー管理テーブルに登録されているインデックスキーを優先的にキーフィールドに格納する。このとき、一つのレコードの全てのキーフィールドに夫々インデックスキーが格納されるか、又は、インデックスキーが格納されているキーフィールドと空きキーフィールドとが一つのレコードに生じる。
特徴管理登録手段が、既にキー管理テーブルに登録されているインデックスキーを空きキーフィールドに格納した後で、キー発行手段は、インデックスキーが未格納であるキーフィールド(即ち空きキーフィールド)のフィールド値に等しいハッシュ値を求め、求めたハッシュ値を有するインデックスキーを発行する。ただし、ここで発行すべきインデックスキーは、このインデックスキーに関連付けてキー管理テーブルに特徴量が登録されていないインデックスキーである。この結果、キー発行手段が発行したインデックスキーは、新たなレコード(即ちインデックスキーが全く格納されていないレコード)の空きキーフィールドではなく、既にインデックスキーが格納されているレコードの空きキーフィールドに格納される。
従って、一つのレコードに生じる空きキーフィールドの個数を最低限の個数に抑制することができる。このため、空きキーフィールドが多いレコードが生じてレコードの件数が無駄に増加することを防止することができる。この結果、特徴管理テーブルを設けるための記憶容量を低減することができ、特徴管理テーブルに新たなレコードを挿入する演算時間を短縮することができる。
本発明にあっては、インデックスキー及び特徴量を新規登録すべきキー管理テーブル、並びにインデックスキー及び識別情報を新規登録すべき特徴管理テーブルの組と、新規登録が終了しているキー管理テーブル及び特徴管理テーブルの組とが設けられている。
例えば一ヶ月毎、半期毎等に、現在使用されているキー管理テーブル及び特徴管理テーブルを、新規登録が終了している各種管理テーブル(以下、旧い各種管理テーブルという)とし、次に新規登録すべき各種管理テーブル(以下、新しい各種管理テーブルという)を生成する場合、旧い各種管理テーブルは、まだ登録の上限に達していないことがある。このような各種管理テーブルを用いて画像を検索する場合、多数のキー管理テーブル及び特徴管理テーブルの組にまたがって画像を検索しなければならず、効率が悪い。このため、例えば旧い各種管理テーブルと、更に旧い各種管理テーブルとをマージ(即ち併合)して、各種管理テーブルの組の個数を減らすことが望ましい。
ただし、新しい各種管理テーブルと旧い各種管理テーブルとには、互いに異なるインデックスキーに関連付けて、同一の特徴量が重複して登録されていることがあるため、マージの際には、重複分を削除する必要がある。
このために、画像登録の際、キー発行手段は、旧いキー管理テーブルを参照し、特徴算出手段が算出した特徴量に関連付けてインデックスキーが登録されているか否かを判定し、登録されていると判定した場合、登録されているインデックスキーのハッシュ値に等しいハッシュ値を有するインデックスキーを発行する。
この後、キー管理登録手段は、旧いキー管理テーブルに登録されているインデックスキーのハッシュ値に等しいハッシュ値を有するインデックスキーと、特徴算出手段が算出した特徴量とを関連付けて、新しいキー管理テーブルに登録する。また、特徴管理登録手段は、情報発行手段が発行した識別情報と、旧いキー管理テーブルに登録されているインデックスキーのハッシュ値に等しいハッシュ値を有するインデックスキーとを関連付けて特徴管理テーブルに登録する。
新規登録すべきキー管理テーブル及び特徴管理テーブルに対するインデックスキーの新規登録が終了した後で、即ち新しい各種管理テーブルの新規登録が終了した後で、新規登録が終了した新しい各種管理テーブルは、既に新規登録が終了している旧い各種管理テーブルにマージされる。
このために、画像登録手段は、新規登録が終了した新しいキー管理テーブルに登録されている特徴量に一致する特徴量が、既に新規登録が終了している旧いキー管理テーブルに登録されているか否かを判定する。この特徴量が登録されている場合とは、新規登録が終了した新しいキー管理テーブルと既に新規登録が終了している旧いキー管理テーブルとで重複する特徴量が存在する場合であり、この特徴量に夫々関連付けて新しいキー管理テーブルに登録されているインデックスキー(以下、新インデックスキーという)と旧いキー管理テーブルに登録されているインデックスキー(以下、旧インデックスキーという)とは、互いにハッシュ値が等しい。
従って、重複する特徴量が登録されていると判定した場合、画像登録手段は、新インデックスキーを、旧インデックスキーに対応付ける。更に画像登録手段は、新規登録が終了した新しい特徴管理テーブルに登録されている識別情報及び新インデックスキーを、新インデックスキーをこの新インデックスキーに対応付けられている旧インデックスキーを変換して、既に新規登録が終了している旧い各種管理テーブルに登録する。
以上の結果、既に新規登録が終了している旧い各種管理テーブルに、重複する特徴量が登録されることを防止することができる。
しかも、新インデックスキーと旧インデックスキーとはハッシュ値が等しいため、既に新規登録が終了している旧い特徴管理テーブルにおいて、旧インデックスキーに変換された新インデックスキーを、新規登録が終了した新しい特徴管理テーブルにおいて新インデックスキーが格納されていたキーフィールドのフィールド値に等しいフィールド値を有するキーフィールドに格納することができる。この結果、新旧のインデックスキーの変換によって、各レコード内で、インデックスキーを格納すべきキーフィールドが変化することが防止され、各種管理テーブルを簡易且つ正確にマージすることができる。
重複する特徴量が登録されていないと判定した場合、画像登録手段は、重複していない特徴量に対し、旧いキー管理テーブルにて特徴量に関連付けられていない(即ち未使用の)旧インデックスキーを発行する。ただし、ここで発行すべき旧インデックスキーは、重複する特徴量が登録されていない特徴量に関連付けて新しいキー管理テーブルに登録されている新インデックスキーのハッシュ値に等しいハッシュ値を有する。つまり、重複する特徴量が登録されていない場合でも、新インデックスキー及び旧インデックスキー夫々のハッシュ値が互いに等しくなる。
画像登録手段は、発行した旧インデックスキーと、重複していない特徴量とを関連付けて、既に新規登録が終了している旧いキー管理テーブルに登録する。また、画像登録手段は、重複していない特徴量に関連付けられている新インデックスキーを、発行した旧インデックスキーに対応付ける。
更に画像登録手段は、新規登録が終了した新しい特徴管理テーブルに登録されている識別情報及び新インデックスキーを、新インデックスキーをこの新インデックスキーに対応付けられている旧インデックスキーを変換して、既に新規登録が終了している旧い各種管理テーブルに登録する。
以上の結果、既に新規登録が終了している旧い各種管理テーブルに、重複していない特徴量を登録することができる。
本発明にあっては、特徴量に基づいて探し出した類似画像を、付属情報によって更に絞込む。
このために、検索手段は、情報キー探索手段及び情報付与手段を更に有し、画像登録手段は、第2の登録判定手段、第2のキー発行手段、第2のキー管理登録手段及び第2の特徴管理登録手段を更に有する
キー管理テーブルでは、特徴量又は画像に付属する付属情報と、インデックスキーとが関連付けられる。ここで、付属情報とは、蓄積画像を作成した作者の名前、作成年月日等を示す情報である。
画像登録の際、画像登録手段の第2の登録判定手段、第2のキー発行手段、第2のキー管理登録手段及び第2の特徴管理登録手段は、リレーショナル・データベースに画像の特徴量を登録する場合と略同様にして、リレーショナル・データベースに、登録すべき画像の付属情報を登録する。
具体的には、第2の登録判定手段は、キー管理テーブルを参照し、リレーショナル・データベースに登録すべき画像の付属情報(以下、登録付属情報という)に関連付けてインデックスキーが既に登録されているか否かを判定する。
第2の登録判定手段が否(即ち登録付属情報がまだ登録されていない)と判定した場合、第2のキー発行手段は、登録付属情報に対してインデックスキーを発行する。第2のキー管理登録手段は、第2のキー発行手段が発行したインデックスキーと、登録付属情報とを関連付けてキー管理テーブルに登録する。
第2の特徴管理登録手段は、情報発行手段が発行した識別情報と、登録付属情報に関連付けてキー管理テーブルに登録されているインデックスキーとを関連付けて特徴管理テーブルに登録する。更に詳細には、第2の特徴管理登録手段は、第2の登録判定手段が登録されていると判定した場合は、情報発行手段が発行した識別情報と、既に登録されているインデックスキーとを関連付けて特徴管理テーブルに登録する。一方、第2の登録判定手段が否と判定した場合は、第2の特徴管理登録手段は、情報発行手段が発行した識別情報と、新たに第2のキー発行手段が発行して第2のキー管理登録手段が登録したインデックスキーとを関連付けて特徴管理テーブルに登録する。
画像検索の際、検索手段の情報キー探索手段は、蓄積管理テーブル、キー管理テーブル、及び/又は特徴管理テーブルを参照して、検索作業者によって指定された付属情報(以下、指定付属情報という)に対応するインデックスキーを探し出す。情報付与手段は、特徴管理テーブルを参照して、情報キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて、付属情報が指定付属情報に一致していることを示す一致情報を付与する。
結果出力手段は、蓄積管理テーブルを参照して、画像選択手段が選択した識別情報(即ち指定画像の類似画像の識別情報)の内、情報付与手段が一致情報を付与した識別情報に一致する識別情報に関連付けられている蓄積画像を蓄積部から取得する。この結果、結果出力手段は、指定付属情報に一致する付属情報が付属している類似画像を蓄積部から取得する。
以上のように、付属情報は特徴量と同様にキー管理テーブルに登録されているため、付属情報を登録するためのテーブルを別途準備する必要がない。また、特徴量のインデックスキーの比較によって類似画像を探し出す処理と同様にして、付属情報のインデックスキーの比較によって、特徴量に基づく検索の結果を更に絞込む処理を実行することができる。
本発明にあっては、夫々が蓄積部、リレーショナル・データベースが有する各種管理テーブル、検索手段が有する各手段、表示部、画像登録手段が有する各手段の内の1つ以上を備える互いに通信可能な複数の計算機を用いて、画像検索装置が構成されている。例えば蓄積画像を管理すべく蓄積部を備える計算機と、各種管理テーブルを備える計算機と、検索作業者が検索作業に使用すべく検索手段が有する各手段及び表示部を備える計算機と、登録作業者が登録作業に使用すべく画像登録手段が有する各手段を備える計算機とを用いて、画像検索装置が構成される。
これらの複数台の計算機は、互いに通信することによって、1台の画像検索装置として機能することができるため、1台の計算機に演算負荷が集中することを抑制することができる。また、独立性が高い処理(例えば画像を検索する処理と画像を登録する処理と)を別個の計算機で並行して実行することができるため、画像検索装置全体の画像検索効率、画像登録効率、画像管理効率等を向上させることができる。
本発明にあっては、画像登録手段が枚数計数手段を更に有する。
画像登録手段のキー管理登録手段は、特徴量とインデックスキーとを関連付けてキー管理テーブルに登録する際に、この特徴量とインデックスキーとに更に関連付けて、枚数情報を登録する。また、枚数計数手段は、特徴算出手段が算出した特徴量に関連付けてインデックスキーが既に登録されていると判定した場合、登録されているインデックスキーに関連付けられている枚数情報を増加させる。
枚数情報とは、この枚数情報が関連付けられている特徴量を有する蓄積画像の枚数を示す情報である。つまり、枚数情報が示す枚数は1枚以上であり、枚数情報が示す枚数が1枚である場合、この枚数情報に関連付けられている特徴量を有する蓄積画像が1枚しかないことがわかる。また、枚数情報が示す枚数が多ければ多いほど、この枚数情報に関連付けられている特徴量が、多数枚の蓄積画像に共通の普遍的な特徴量であることがわかる。
多数枚の蓄積画像に共通の普遍的な特徴量は、蓄積画像同士を識別する役には立ち難い。逆に、少数枚の蓄積画像に共通の特徴量は、蓄積画像同士を識別する場合に有用である。
ただし、検索作業者が、指定画像として蓄積画像の中から画像を指定した場合、指定画像の特徴量の内、1枚を示す枚数情報に関連付けられている特徴量は、指定画像のみが有する特徴量であるため、指定画像の類似画像を探し出す役には立たない。このため、指定画像の特徴量のインデックスキーの内、キー管理テーブルで2枚以上を示す枚数情報に関連付けられている特徴量のインデックスキーを、インデックスキー同士の比較に用いる必要がある。
一方、検索作業者が、蓄積画像ではない指定画像を指定した場合、指定画像の特徴量の内、キー管理テーブルで1枚以上を示す枚数情報に関連付けられている特徴量に関連付けられているインデックスキーをインデックスキー同士の比較に用いる必要がある。
従って、類似度算出手段は、キー管理テーブルを参照し、特徴キー探索手段が探し出したインデックスキーの内、このインデックスキーに関連付けられている枚数情報が示す枚数が所定枚数以上であり、且つ、この枚数情報が示す枚数が最も少ないインデックスキーから、枚数の少なさの順にインデックスキーを特定する。次に、類似度算出手段は、特徴管理テーブルを参照して、特定したインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて類似度を算出する。
以上の結果、効率よく画像を検索することができる。
本発明にあっては、画像選択手段は、類似度算出手段が算出した類似度が所定類似度以上に達した識別画像(即ち、蓄積画像の内で、指定画像に比較的類似している蓄積画像)を暫定的に選択し、結果出力手段は、画像選択手段が選択した識別情報に一致する識別情報に関連付けられている画像を蓄積部から取得して、取得した画像を暫定的な検索結果として表示部へ出力する。この結果、暫定的な検索結果(即ち類似画像の候補)が表示部に表示される。
また、画像選択手段は、最終的に、類似度算出手段が算出した類似度が最も高い識別画像(即ち、蓄積画像の内で、指定画像に最も類似している蓄積画像)から類似度の高さの順に識別画像を選択し、結果出力手段は、画像選択手段が選択した識別情報に一致する識別情報に関連付けられている画像を蓄積部から取得して、取得した画像を最終的な検索結果として表示部へ出力する。この結果、最終的な検索結果(即ち類似画像そのもの)が表示部に表示される。
つまり、指定画像の類似画像が表示部に表示されるまで、検索作業者が長時間待たされることがなく、類似画像の候補の中に検索作業者が所望する画像が存在する場合はこの時点で画像の検索を打ち切ることもできるため、検索作業者の利便性を向上させることができ、また、検索の効率を向上させることができる。
本発明にあっては、無効付与手段を更に備える。
リレーショナル・データベースから画像の登録を抹消する場合は、蓄積部に蓄積されている蓄積画像と、この蓄積画像の識別情報を削除する必要がある。また、蓄積部から削除された蓄積画像のみが有する特徴量及びこの特徴量のインデックスキーを削除する必要があるが、これらの削除には長時間を要する。
このために無効付与手段は、リレーショナル・データベースから画像の登録を抹消する際、少なくとも特徴管理テーブルについて、登録を抹消すべき画像の識別情報に対し、無効を意味する無効情報を付与する。
以下では、無効情報が付与されている識別情報(即ち登録が抹消された画像の識別情報)を抹消識別情報という。
類似度算出手段は、抹消識別情報を除く識別情報の中から、特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定する。この場合、類似度算出手段は、抹消識別情報に関連付けられているインデックスキーと特徴キー探索手段が探し出したインデックスキーとを比較することがないため、抹消識別情報に関連付けられて類似度が算出されることはない。
つまり、識別情報に無効情報を付与するだけで、蓄積部から削除された蓄積画像、及び蓄積部から削除された蓄積画像のみに関わるインデックスキーが画像検索の際に利用されないようにすることができ、検索の効率を向上させることができる。
また、無効情報を削除することによって、画像の登録抹消を容易に取り消すことができる。更に、例えば画像の検索、登録等が実行されない夜間、休日等に、抹消識別情報、抹消識別情報を有する蓄積画像、及びこの蓄積画像のみに関わるインデックスキーを、まとめて削除することができるため、画像の登録抹消を実行することによってリレーショナル・データベースがロックされ、画像の検索、登録等が実行できなくなることを防止することができる。
本発明の画像検索装置による場合、多数枚の蓄積画像の識別情報と特徴量とを、特徴量よりも情報量が少ないインデックスキーを介して関連付け、特徴量同士を比較する代わりにインデックスキー同士を比較するため、記憶容量が多い記憶装置を備える必要がなく、また、演算能力が高い演算部を備えずとも、画像の検索のための検索時間を短縮することができる。つまり、本発明の画像検索装置は、安価な計算資源を用いて、多数枚の蓄積画像の中から指定画像の類似画像を検索する場合に好適である。
以下、本発明を、その実施の形態を示す図面に基づいて詳述する。
実施の形態 1.
図1は、本発明の実施の形態1に係る画像検索装置の全体的な構成を示す模式図である。
図中1は画像検索装置であり、画像検索装置1は、夫々計算機を用いてなる蓄積DBサーバ2、検索DBサーバ3、特徴抽出サーバ4、検索実行サーバ5、入力側端末機6、及び出力側端末機7、並びにLAN8を備える。ここで、DBとはデータベースの略であり、LANとはローカル・エリア・ネットワークの略である。
本実施の形態においては、各種サーバ2,3,4,5夫々は各1台のサーバマシンを用いてなる。また、入力側端末機6は、通信線6aを介してスキャナ67が接続された1台のパーソナルコンピュータを用いてなる。更にまた、出力側端末機7は1台のパーソナルコンピュータを用いてなる。各種端末機6,7は、液晶ディスプレイである表示部63,73と、マウス及びキーボード等を用いてなる操作部64,74とを備える
各種サーバ2,3,4,5及び各種端末機6,7は夫々LAN8に接続されており、LAN8を介して互いに通信可能にしてある。各計算機は、後述するように、蓄積部90、各種管理テーブル、検索手段が有する各手段、表示部63、画像登録手段が有する各手段の内の1つ以上を備える。
図中の白抜矢符は画像を登録する際の各種データの主要な流れを示し、矢符は画像を検索する際の各種データの主要な流れを示している。
なお、画像検索装置1の全体的な構成は、図1に示す構成に限定されるものではない。例えば、各種端末機6,7が夫々複数台、LAN8に接続されていてもよく、また、入力側端末機として、スキャナ機能、コピー機能、ファクシミリ機能等を有する複合機、又はスキャナがLAN8に接続されていてもよい。更に、入力側端末機及び蓄積DBサーバの両方の機能を有する複合機がLAN8に接続されていてもよい。
図2〜図4は、各種サーバ2,3,4,5及び各種端末機6,7夫々の構成を示すブロック図であり、図2は蓄積DBサーバ2及び検索DBサーバ3、図3は特徴抽出サーバ4及び入力側端末機6、図4は検索実行サーバ5及び出力側端末機7を夫々示している。
蓄積DBサーバ2は、蓄積DBサーバ2の制御中枢であるCPU20と、制御プログラム及びデータ等が記憶されているROM21と、一次記憶装置として用いられるRAM22と、二次記憶装置として用いられるHDD23と、LAN8に接続するためのI/F(インタフェース)24とを備える。
同様に、検索DBサーバ3は、CPU30とROM31とRAM32とHDD33とI/F34とを備え、特徴抽出サーバ4は、CPU40とROM41とRAM42とHDD43とI/F44とを備え、検索実行サーバ5は、CPU50とROM51とRAM52とHDD53とI/F54とを備える。
入力側端末機6は、入力側端末機6の制御中枢であるCPU60と、制御プログラム及びデータ等が記憶されているROM61と、一次記憶装置として用いられるRAM62と、表示部63と操作部64と、二次記憶装置として用いられるHDD65と、LAN8に接続するためのI/F66と、原稿から画像を読み取るスキャナ67と、通信線6aとを備える。
同様に、出力側端末機7は、CPU70とROM71とRAM72と表示部73と操作部74とHDD75とI/F76とを備える。
入力側端末機6は、画像検索装置1に画像を登録する登録作業者が使用し、出力側端末機7は、画像検索装置1で画像を検索する検索作業者が使用する。
蓄積DBサーバ2のHDD23の記憶領域の一部には蓄積部90が設けられている。蓄積部90は、画像が蓄積されるフォルダである。また、HDD23の記憶領域の他の一部には蓄積管理テーブル91が記憶されている。蓄積管理テーブル91は、リレーショナル・データベースで用いられるファイルである。なお、蓄積部90と蓄積管理テーブル91とは別個のHDDに設けられていてもよい。
同様に、検索DBサーバ3のHDD33の記憶領域の一部には、N個のキー管理テーブル921,922,…,92n,…,92Nが記憶されている(ただし、N,nはN≧nの自然数)。また、HDD33の記憶領域の他の一部には、N個の特徴管理テーブル931,932,…,93n,…,93Nが記憶されている。
HDD33の記憶領域の更に他の一部には、情報管理テーブル94が記憶されている。情報管理テーブル94は、各N個のキー管理テーブル921,922,…,92N及び特徴管理テーブル931,932,…,93Nを管理するためのテーブルであり、キー管理テーブル921,…,92N及び特徴管理テーブル931,…,93N夫々に関する情報(例えばキー管理テーブル921,…,92N及び特徴管理テーブル931,…,93N夫々のファイル名、作成年月日等)が登録されている。以下では、情報管理テーブル94に登録される情報をテーブル情報という。
キー管理テーブル921,…,92N、特徴管理テーブル931,…,93N、及び情報管理テーブル94夫々は、リレーショナル・データベースで用いられるファイルである。なお、各種管理テーブルは別個のHDDに設けられていてもよい。
以下では、まずHDD33に各1個のキー管理テーブル92と特徴管理テーブル93とが記憶されている場合を説明し、次に各複数個のキー管理テーブル921,…,92Nと特徴管理テーブル931,…,93Nとが記憶されている場合を説明する。
また、画像検索装置1に画像を登録する手順を先に説明し、次いで、画像検索装置1で画像を検索する手順を説明する。
図5は、入力側端末機6で実行される画像読込処理、蓄積DBサーバ2で実行される蓄積側受信処理、及び特徴抽出サーバ4で実行される抽出側受信処理夫々の手順を示すフローチャートである。
まず、入力側端末機6で実行される画像読込処理について説明する。
入力側端末機6のCPU60は、表示部63を制御して、登録作業者に画像を登録させるための画面を表示させて、画像検索装置1に登録すべき画像を読み込むための読込指示を受け付ける(S11)。ここで、登録作業者は、スキャナ67に原稿をセットし、表示部63を視認しながら操作部64を操作して、原稿画像の読込指示を入力する。
読込指示を受け付けたCPU60は、スキャナ67を制御して原稿の画像を読み込み(S12)、読み込んだ画像をHDD65に記憶させる(S13)。ここでHDD65に記憶される画像は、画像を示すデータのファイルである。なお、スキャナ67で読み込んだ画像に限定されず、入力側端末機6で作成された画像、外部から受信した画像等が登録される構成でもよい。
次にCPU60は、表示部63を制御して、登録作業者に付属情報を入力させるための画面を表示させて、付属情報を受け付ける(S14)。登録作業者は、表示部63に表示された画面を視認しながら、操作部64を操作して付属情報を入力する。
付属情報とは、登録すべき画像に付属する情報であり、例えば画像を作成した作者の名前又はユーザID、作者の所属部署、作成年月日、画像を登録する登録年月日、ファイル名、サイズ、保存形式、及び/又は圧縮形式等、画像検索の際に、特徴量に基づく検索の結果を更に絞込むために用いられる情報である。ただし、作成年月日、サイズ等のファイル属性、又は登録年月日等、CPU60がファイル又は入力側端末機6が備える図示しないタイマ等から取得可能な情報を付属情報として用いる場合、付属情報を登録作業者に入力させる必要はない。また、ファイル名はCPU60が適宜に生成してもよい。
なお、入力側端末機6が複合機である場合、付属情報としてジョブ種別及び/又はログ情報を用いてもよい。ジョブ種別とは、登録すべき画像に関して複合機で実行されたジョブの種別であり、登録すべき画像が、原稿画像を複写するために読み込んだ画像であるか(「コピー」)、単に読み込んだ画像であるか(「スキャン」)、プリントアウトするために外部から受信した画像であるか(「プリント」)、ファクシミリ通信で送受信した画像であるか(「FAX送信」又は「FAX受信」)等を示す。ログ情報とは、複合機を使用した使用者の操作履歴を示す情報であり、ログ記録と画像とを関連付けて記録することによって、使用者の使用状況を管理するためのものである。このような複合機を入力側端末機6として用いる場合は、使用者が自発的に入力側端末機6を操作しなくても、自動的に画像が登録される構成であってもよい。
S14の処理完了後、CPU60は、S13で記憶させた画像をHDD65から読み出して、読み出した画像とS14で受け付けた付属情報とを関連付けて、特徴抽出サーバ4へ送信し(S15)、更に、読み出した画像を蓄積DBサーバ2へ送信して(S16)、画像読込処理を終了する。
複数枚の画像を登録する場合は、S11〜S16の処理が繰り返し実行される。なお、S15及びS16で複数枚の画像が送信される構成でもよい。ただしこの場合、例えばCPU60が各画像に連番を振り、この連番と共に画像を送信することによって、後述するように蓄積DBサーバ2及び特徴抽出サーバ4夫々で発行される画像IDに齟齬が生じないようにするか、又は、入力側端末機6で画像IDを発行して、発行した画像IDと共に画像を送信する。
次に、蓄積DBサーバ2で実行される蓄積側受信処理について説明する。
蓄積DBサーバ2のCPU20は、入力側端末機6から画像を受信したか否かを判定し(S18)、受信していない場合は(S18でNO)、S18の処理を繰り返し実行する。入力側端末機6から画像を受信した場合(S18でYES)、CPU20は、蓄積実行処理を行なうサブルーチン(図6参照)を呼び出し、実行する(S19)。
S19の処理完了後、CPU20はS18へ処理を戻す。
最後に、特徴抽出サーバ4で実行される抽出側受信処理について説明する。
特徴抽出サーバ4のCPU40は、入力側端末機6から画像及び付属情報を受信したか否かを判定し(S20)、受信していない場合は(S20でNO)、S20の処理を繰り返し実行する。画像及び付属情報を受信した場合(S20でYES)、CPU40は、特徴抽出処理を行なうサブルーチン(図7参照)を呼び出し、実行する(S21)。
S21の処理完了後、CPU40はS20へ処理を戻す。S20で受信した画像及び付属情報は、HDD43に記憶させてもよいが、S21の処理完了後に削除することが望ましい。
図6は、蓄積側受信処理で呼び出される蓄積実行処理手順のサブルーチンを示すフローチャートである。
蓄積DBサーバ2のCPU20は、S18で受信した画像を蓄積部90に蓄積させる(S31)。つまりS31におけるCPU20は、蓄積制御手段として機能する。S31の処理を実行する前に、ファイル名が等しい画像が既に蓄積されている場合は、誤って上書きしないように、例えば蓄積部90に設けた別個のサブ・フォルダに蓄積する。
S31の処理完了後、CPU20は、S31の処理で蓄積部90に蓄積させた画像に対して、画像を識別する識別情報としての画像IDを発行する(S32)。つまりS32におけるCPU20は、情報発行手段として機能する。
本実施の形態において、S32の処理で発行される画像IDは4バイトのデータ長を有する整数(以下、4バイト整数という)であり、連番で16進数表記の『0x00000001』から順に採番されて、画像の受信順に付与される。ただし、『0x00000000』は用いられない。このため、『0x00000000』は、例えば画像IDが付与されない画像を示す情報として用いることができる。以上のような画像IDは、各演算部(即ちCPU20,30,40,50,60,70夫々)が1つの命令で演算可能なデータ長を有するため、1つの命令では演算不可能な長いデータ長を有する画像IDを用いる場合に比べて、演算時間が短縮される。以下では、本明細書では、16進数表記の数値を『』で示す。
S32の処理完了後、CPU20は、S32で発行した画像IDと、S31で蓄積部90に蓄積した画像とを関連付けて、蓄積管理テーブル91に登録する(S33)。つまり、S33におけるCPU20は、蓄積管理登録手段として機能する。
蓄積管理テーブル91には、1件のレコードにつき、1個のIDフィールドと1個の蓄積画像フィールドとが関連付けて設けられている。CPU20は、S32で発行した画像IDをIDフィールドに格納し、S31で蓄積部90に蓄積した画像のアドレス及びファイル名を蓄積画像フィールドに格納してなるレコードを生成し、生成したレコードを蓄積管理テーブル91に挿入する。
蓄積管理テーブル91における主キーは画像IDである。また、画像IDが4バイト整数であるため、1個の蓄積管理テーブル91には、約232枚の画像を登録することができる。
S33の処理完了後、CPU20は、処理を蓄積側受信処理のルーチンへ戻す。
なお、例えば2台の入力側端末機6が存在する場合、S32の処理を実行する際に、一方の入力側端末機6から受信した画像には『0x00000001』から順に採番し、他方の入力側端末機6から受信した画像には『0x80000001』から順に採番することによって、画像IDに齟齬が生じること防止することができる。
以下では、蓄積部90に蓄積されている画像を蓄積画像という。
図7は、抽出側受信処理で呼び出される特徴抽出処理手順のサブルーチン、及び検索DBサーバ3で実行される登録側受信処理夫々の手順を示すフローチャートである。
まず、特徴抽出サーバ4で実行される特徴抽出処理について説明する。
特徴抽出サーバ4のCPU40は、S20で受信した画像に対して画像IDを発行する(S41)。つまりS41におけるCPU40は、情報発行手段として機能する。S20で受信した画像とは、S31で蓄積部90に蓄積される蓄積画像に等しく、S41の処理で発行されるIDは、S32の処理で発行される画像IDに等しい。
更に、CPU40は、S20で受信した画像に基づいて、この画像の特徴を数値的に示す特徴量を抽出する(S42)。つまり、S42におけるCPU40は、特徴算出手段として機能する。
本実施の形態においては、S42の処理を実行することによって1枚の画像当たり約7千個の特徴量が抽出され、抽出される各特徴量は20バイト数列(即ち20バイトのデータ長を有する数列)である。ここで、特徴量のデータ長は、各計算機(即ち各種サーバ2,3,4,5及び各種端末機6,7夫々)が備える図示しないレジスタのレジスタ長を超えている。つまり、このような特徴量は、各演算部が1つの命令では演算不可能な長いデータ長を有する。S42の処理で抽出すべき特徴量は、画像を複数の閉じた図形に分割し、分割した図形夫々の重心点を利用して算出される2点間の距離の比に基づくものであるが、これに限らず、輝度分布、エッジ強度等を用いた特徴量でもよい。
S42の処理完了後、CPU40は、S41で発行した画像IDと、S42で抽出した約7千個の特徴量と、S20で受信した付属情報とを関連付けて、検索DBサーバ3へ送信し(S43)、処理を抽出側受信処理のルーチンへ戻す。
次に、検索DBサーバ3で実行される登録側受信処理について説明する。
検索DBサーバ3のCPU30は、特徴抽出サーバ4から画像ID、特徴量及び付属情報を受信したか否かを判定し(S44)、受信していない場合は(S44でNO)、S44の処理を繰り返し実行する。画像ID、特徴量及び付属情報を受信した場合(S44でYES)、受信した画像ID、特徴量及び付属情報をHDD33に一時的に記憶させてから、テーブル管理処理を行なうサブルーチン(図8参照)を呼び出し、実行する(S45)。
S45の処理完了後、CPU30はS44へ処理を戻す。
図8は、登録側受信処理で呼び出されるテーブル管理処理手順のサブルーチンを示すフローチャートであり、図9〜図11は、テーブル管理処理で呼び出される登録実行処理手順のサブルーチンを示すフローチャートである。また、図12は、登録実行処理で呼び出される特徴管理格納処理手順のサブルーチンを示すフローチャートであり、図13は、登録実行処理で呼び出されるキー管理格納処理手順のサブルーチンを示すフローチャートである。
本発明の最も大きな特徴は、検索作業者が指定した指定画像に類似する類似画像を探し出すために、20バイト数列である特徴量同士を比較する処理ではなく、特徴量よりも情報量が少ないインデックスキー同士を比較する処理を実行することである。この結果、検索時間が短縮される。
このために、画像IDと特徴量との対応関係を、画像IDとインデックスキーとの対応関係、及び、インデックスキーと特徴量との対応関係に分割しておく必要がある。
従って、登録実行処理においては、登録側受信処理のS44で受信した特徴量及び付属情報夫々に対してインデックスキーが発行されて、発行されたインデックスキーと特徴量又は付属情報とが関連付けられてキー管理テーブル92に登録される。また、登録側受信処理のS44で受信した画像IDと、キー管理テーブル92に登録されているインデックスキーとが関連付けられて特徴管理テーブル93に登録される。
以下では、まず、特徴量のみを登録する場合について説明し、次に、特徴量及び付属情報の両方を登録する場合について説明する。
キー管理テーブル92では、1件のレコードにつき、1個のキーフィールドと1個の特徴量フィールドとが関連付けて設けられている。キーフィールドには、1個のインデックスキーが格納され、特徴量フィールドには、1個の特徴量又は付属情報が格納される。
キー管理テーブル92における主キーはインデックスキーである。
本実施の形態におけるインデックスキーは4バイト整数であり、原則として連番で『0x00000001』から順に採番される。また、本実施の形態では、『0x00000000』は、キーフィールドにインデックスキーが格納されていないことを示すキー未格納情報として用いられる。つまり、インデックスキーが格納されているキーフィールドには、『0x00000001』以上の4バイト整数が格納されており、インデックスキーが格納されていないキーフィールドには、『0x00000000』が格納されている。
このようなインデックスキー及びキー未格納情報夫々のデータ長は、各計算機のレジスタ長以下である。換言すれば、インデックスキー及びキー未格納情報は、各演算部が1つの命令で演算可能なデータ長を夫々有する。このため、1つの命令では演算不可能な長いデータ長を有するインデックスキーを用いる場合に比べて、演算時間が短縮される。
また、検索精度を向上させるために、20バイト数列よりも更にデータ長が長い特徴量が登録される画像検索装置を構成しても、インデックスキーのデータ長が同じ4バイト整数であれば、この画像検索装置の検索時間と画像検索装置1の検索時間とは、ほとんど変わらない。つまり、検索時間を大幅に増大させることなく、検索精度を向上させることが容易である。
インデックスキーが4バイト整数であるため、1個のキー管理テーブル92には、約232個の特徴量及び付属情報を登録することができる。
キー管理テーブル92の容量を節約し、また、検索の手間を省くために、同一の特徴量又は付属情報には異なるインデックスキーが発行されないようにする必要がある。従って、インデックスキーの発行前には、登録すべき特徴量又は付属情報に一致する特徴量がキー管理テーブル92に登録されていないことが予め確認される。
特徴管理テーブル93では、1件のレコードにつき、1個のIDフィールドとM個のキーフィールドとが関連付けて設けられている。特徴管理テーブル93における主キーは画像IDである。本実施の形態においては、M=16である。
16個のキーフィールドには、4ビットのデータ長を有する整数を用いてなる相異なるフィールド値『0x0』,『0x1』,…,『0xF』が夫々付与されている。
仮に、特徴管理テーブル93の各レコードに、1個のIDフィールドと1個の特徴量フィールドとが関連付けて設けられる場合、特徴管理テーブル93に登録されるレコード件数は、「蓄積画像の枚数」×「蓄積画像の特徴量の個数(約7千個)」件になる。一般に、リレーショナル・データベースでは、テーブルに登録されているレコード件数が多いほど、新たなレコードをテーブルに登録する処理の演算時間は長くなる。
登録処理の演算時間を短縮すべく、本実施の形態では特徴管理テーブル93の各レコードに複数個の特徴量フィールドが設けられている。
以上のようにして、画像IDと特徴量とを、インデックスキーを介して間接的に対応付ける画像検索装置1においては、仮に、画像IDと4バイト整数であるインデックスキーとが一対一対応で特徴管理テーブル93に登録されるとしても、画像IDと特徴量とを直接的に対応付ける従来の画像検索装置の画像管理テーブル(即ち、画像IDと20バイト数列である特徴量とが一対一対応で登録される画像管理テーブル)に比べれば、特徴管理テーブル93のデータ量は少ない。データ量の減少量は、画像検索装置1及び従来の画像検索装置夫々に登録される画像の枚数、及び/又は、画像1枚当たりの特徴量の個数が多ければ多いほど顕著になる。
また、指定画像の類似画像を蓄積画像の中から探し出すために、特徴量を用いたマッチングは、従来の画像検索装置においては、データ量が多い画像管理テーブルを参照して、データ長が長い特長量同士を比較することによって実行される。一方、画像検索装置1においては、データ量が少ない特徴管理テーブル93を参照して、データ長が短いインデックスキー同士を比較することによって実行される。しかも、指定画像の約7千個の特徴量夫々について、各蓄積画像の7千個の特徴量とのマッチングを行なう必要があるため、蓄積画像の枚数が多ければ多いほど、検索時間は大幅に短縮される。同様に、指定画像及び/又は各蓄積画像夫々の特徴量が多ければ多いほど、検索時間は大幅に短縮される。
ところで、同一の原稿から読込まれた画像同士、又は、同一の部分画像を含む画像同士では、各7千個の特徴量の内、互いに一致する特徴量が少なくない。このため、例えば10万枚の画像の各7千個の特徴量に対し、10万×7千=7億個のインデックスキーが発行されることはなく、7億個未満、場合によっては半分以下の個数のインデックスキーが発行される。従って、キー管理テーブル92のデータ量は、従来の画像検索装置の画像管理テーブルのデータ量よりも少なくなる。
以上のことから、キー管理テーブル92及び特徴管理テーブル93のデータ量の合計は、従来の画像検索装置の画像管理テーブルのデータ量よりも大幅に増大することはなく、蓄積画像の枚数及び内容等によっては、むしろ減少する可能性もある。
ここで、キー管理テーブル92及び特徴管理テーブル93夫々に対する最も単純な登録手順を説明する。
例えば、『0x00000001』という第1の画像IDに関連付けられて、『0x1122334455667788990011223344556677889900』という第1の特徴量と、『0x0011223344556677889999887766554433221100』という第2の特徴量とが、この順で与えられた場合、『0x00000001』という第1のインデックスキーと、『0x00000002』という第2のインデックスキーとが、この順で発行される。
このとき、キーフィールドに第1のインデックスキーを格納し、特徴量フィールドに第1の特徴量を格納してあるレコードと、キーフィールドに第2のインデックスキーを格納し、特徴量フィールドに第2の特徴量を格納してあるレコードとが、キー管理テーブル92に挿入される。
また、IDフィールドに第1の画像IDを格納し、フィールド値『0x0』のキーフィールドに第1のインデックスキーを格納し、フィールド値『0x1』のキーフィールドに第2のインデックスキーを格納し、フィールド値『0x2』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードが、特徴管理テーブル93に挿入される。
次に、『0x00000002』という第2の画像IDに関連付けられて、『0x1122334455667788990011223344556677889901』という第3の特徴量と、『0x0011223344556677889999887766554433221100』という第4の特徴量とが、この順で与えられた場合、与えられた第4の特徴量は、第2の特徴量に等しい。即ち、第4の特徴量は既にキー管理テーブル92に登録されている特徴量である。このため、第3の特徴量に対して、『0x00000003』という第3のインデックスキーが発行され、第4の特徴量には、キー管理テーブル92を参照して第2のインデックスキーが関連付けられる。
このとき、キーフィールドに第3のインデックスキーを格納し、特徴量フィールドに第3の特徴量を格納してあるレコードが、キー管理テーブル92に挿入される。一方、第4の特徴量が格納されたレコードがキー管理テーブル92に挿入されることはない。
また、IDフィールドに第2の画像IDを格納し、フィールド値『0x0』のキーフィールドに第2のインデックスキーを格納し、フィールド値『0x1』のキーフィールドに第3のインデックスキーを格納し、フィールド値『0x2』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードが、特徴管理テーブル93に挿入される。
各レコードにはキーフィールドが16個設けられているが、1枚の蓄積画像の特徴量の個数が“16”の倍数であるとは限らない。しかしながら、以上のような例では、キーフィールドに対してインデックスキーをフィールド値の順に単純に格納したため、キー未格納情報が格納されたキーフィールド(即ち空きキーフィールド)の発生数は最小限に抑えられる。従って、特徴管理テーブル93のレコード件数は最小限(具体的には、特徴管理テーブル93に登録されているインデックスキーの個数の約1/16の件数)になる。
ただし、このような特徴管理テーブル93を用いて効率的な画像検索を行なうことはできない。このため、インデックスキー夫々をフィールド値に対応させ、対応するフィールド値が付与されているキーフィールドにインデックスキーを格納する(以下、キーフィールドを埋めるという)ことによって、特徴管理テーブル93のレコード件数を減少させつつ、検索効率を向上させることが図られる。
各インデックスキーをフィールド値に対応させるために、ハッシュ関数が用いられる。
本実施の形態におけるハッシュ関数は、インデックスキーを“16”(即ちレコード1件当たりのキーフィールドの個数M)で除算した剰余を求める関数である。つまり、“フィールド値”=“ハッシュ値”=“インデックスキー”%“M”である。
このようなハッシュ関数とインデックスキーとに基づいて算出されるハッシュ値は、4バイト整数であるインデックスキーの最下位ニブル(即ち下位4ビット整数)に等しい。つまり、本実施の形態のハッシュ関数を用いたハッシュ値の算出処理は、インデックスキーの最下位ニブルを求める処理(即ち、インデックスキーと『0xF』とのアンド演算を実行する処理)である。
従って、ハッシュ値の算出処理、及びハッシュ値に等しいフィールド値が付与されているキーフィールドにインデックスキーを格納する処理は、画像登録時の演算時間を大幅に増大させることはない。
特徴管理テーブル93に、画像IDと、この画像IDに関連付けられる7千個のインデックスキーとを登録する場合は、1件のレコードの16個のキーフィールドを可能な限り埋めて、空きキーフィールドを作らないようにし、同一のハッシュ値を有するインデックスキーが複数個存在するときに、2件目、3件目のレコードを生成することが望ましい。
具体的には、例えばIDフィールドに第1の画像IDを格納し、フィールド値『0x1』のキーフィールドに、ハッシュ値『0x1』の第1のインデックスキーを格納し、フィールド値『0x2』のキーフィールドにハッシュ値『0x2』の第2のインデックスキーを格納し、フィールド値『0x0』及び『0x3』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードが、特徴管理テーブル93に挿入される。
また、『0x00000003』という第3の画像IDに、ハッシュ値『0x3』の第3のインデックスキーと、『0x00000013』というハッシュ値『0x3』の第13のインデックスキーとが関連付けられた場合、まず、IDフィールドに第3の画像IDを格納し、フィールド値『0x3』のキーフィールドに第3のインデックスキーを格納し、フィールド値『0x0』〜『0x2』及び『0x4』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードが、特徴管理テーブル93に挿入される。更に、IDフィールドに第3の画像IDを格納し、フィールド値『0x3』のキーフィールドに第13のインデックスキーを格納し、フィールド値『0x0』〜『0x2』及び『0x4』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードとが、特徴管理テーブル93に挿入される。
図14は、本発明の実施の形態1に係る画像検索装置の特徴管理テーブル93を説明する模式図である。図に示すように、特徴管理テーブル93には、IDフィールドと、フィールド値『0x0』〜『0xF』のキーフィールドとが関連付けられているレコードが設けられている。ただし、図中のインデックスキーは下4桁のみが記載されており、キー未格納情報として「未」が記載されている。
図14に示す特徴管理テーブル93には、前述の第1〜第3の画像IDに係るインデックスキーと、第4の画像IDに係るインデックスキーとが記載されている。
第4の画像IDには、ハッシュ値『0x0』のインデックスキーと、第1〜第3のインデックスキーと、ハッシュ値『0x4』〜『0xF』のインデックスキーとが関連付けられている。
図15は、インデックスキーを介したマッチングを説明する模式図である。図15には、画像IDと、マッチング結果である投票数とが一対一対応で関連付けられている結果テーブル95が示されている。ここで、投票数とは、当該画像IDを有する蓄積画像が指定画像に類似している度合いを数値的に示す類似度であり、投票数が多いほど、類似度が高い(即ち画像同士が類似している)。図15では、投票数の初期値は“0”である。
結果テーブル95は、画像検索の際に、検索実行サーバ5のCPU50が生成してRAM52に一時的に記憶させる。
検索作業者が、指定画像の画像IDとして第1の画像IDを指定した場合、結果テーブル95には、第2〜第4の画像ID夫々について、各画像IDが格納されたIDフィールドと、投票数“0”が格納された投票数フィールドとが関連付けられているレコードが設けられる。
インデックスキーを介したマッチングを実行する場合、図14に示すような特徴管理テーブル93が参照され、第1の画像IDに関連付けられているインデックスキーの内、まず、第1のインデックスキーが選択され、選択された第1のインデックスキーに一致するインデックスキーに関連付けられている画像ID(この場合、第4の画像ID)が特定され、結果テーブル95にて、特定された画像IDの投票数が“1”インクリメントされる(図15(a))。第1のインデックスキーに一致するインデックスキーに関連付けられている画像IDが存在しない場合は、当然、投票数のインクリメントは行なわれない。
ここで、第1のインデックスキーに一致するインデックスキーを探し出すために、フィールド値『0x1』が付与されているキーフィールドが注目され、このキーフィールドに格納されているインデックスキー(及びキー未格納情報)と第1のインデックスキーとが比較される。
一方、フィールド値『0x1』以外のフィールド値が付与されているキーフィールドは注目されない。何故ならば、第1のインデックスキーは最下位ニブルが『0x1』であり、フィールド値『0x1』以外のフィールド値が付与されているキーフィールドには、最下位ニブルが『0x1』であるインデックスキーは格納されていないことが自明だからである。
つまり、指定画像に係る各インデックスキーは、単純計算で、特徴管理テーブル93に登録されているインデックスキーの内の1/16の個数のインデックスキーと比較される。この結果、登録されている全てのインデックスキーと比較する場合と比べて、演算時間が大幅に減少する。
実際には、1個の画像IDに、互いにハッシュ値が等しいインデックスキーが多数個関連付けられ、この結果、レコード1件当たりの空きキーフィールドの個数が増加するため、比較対象(即ち特徴管理テーブル93に登録されているレコード件数)は1/16にはならない。しかしながら、1個の画像IDに関連付けられている約7000個のインデックスキー夫々のハッシュ値が、全て一致する確率は非常に低いため、一般には、比較対象が1/10程度に減少することが期待できる。なお、各レコードに256個のキーフィールドを設けて、インデックスキーの下位8ビットをハッシュ値として用いる場合は、比較対象が1/100程度に減少することが期待できる。
第1のインデックスキーについてマッチングを行なった後、特徴管理テーブル93にて、第1の画像IDに関連付けられている第2のインデックスキーが選択され、選択された第2のインデックスキーと、フィールド値『0x2』が付与されているキーフィールドに格納されているインデックスキー(及びキー未格納情報)とが比較されて、第2のインデックスキーに一致するインデックスキーが探し出され、探し出されたインデックスキーに関連付けられている画像ID(この場合、第2及び第4の画像ID)が特定され、結果テーブル95にて、特定された画像IDの投票数が“1”インクリメントされる(図15(b))。第2のインデックスキーに一致するインデックスキーが存在しない場合、当然、画像IDの特定及び投票数のインクリメントは実行されない。
つまり、インデックスキーを介したマッチング処理は、インデックスキーのハッシュ値に基づいて、注目すべきキーフィールドが決定される第1の処理と、決定されたキーフィールドに対して、インデックスキー同士が比較される第2の処理と、一致したインデックスキーに関連付けられている画像IDに対して、投票数がインクリメントされる第3の処理とを有している。この内、第1の処理は、インデックスキーと『0xF』とのアンド演算を実行する容易な処理であり、第2及び第3の処理は、リレーショナル・データベースでは、例えば1つのSQL(Structured Query Language )文によって実行することが可能な処理である。
第2のインデックスキーについてマッチングを行なった後、まだマッチングを終えていないインデックスキーが第1の画像IDに関連付けられているならば、このインデックスキーについてのマッチングが行なわれる。
マッチングの結果として図15(b)に示すような投票数が得られた場合、第4の画像IDに係る投票数が最も多いため、第4の画像IDを有する蓄積画像が、指定画像の類似画像として蓄積部90から取得され、取得された類似画像が、出力側端末機7の表示部73に表示される。又は、投票数が多い順に適宜の枚数の類似画像が取得されて表示部73に表示される。ただし、画像IDに係る投票数が所定の最低投票数を下回る場合、この画像IDに係る蓄積画像は取得されず、投票数が所定の最低投票数以上である画像IDが存在しない場合は、類似画像が存在しないことを示すテキスト、アイコン等が表示部73に表示される。
ここで、特徴管理テーブル93のレコード件数を可及的低減する手法を説明する。
図16は、本発明の実施の形態1に係る画像検索装置のキー管理テーブル91を説明する模式図である。図に示すように、キー管理テーブル92には、キーフィールドと特徴量フィールドとが関連付けられているレコードが設けられている。ただし、図中のインデックスキーは下4桁が記載されており、特徴量は途中が省略されている。
ここでは、特徴管理テーブル93に、第1及び第2の画像ID夫々とインデックスキーとが既に登録されており、図16(a)に示すように、キー管理テーブル92に、インデックスキー『0x00000001』〜『0x00000012』夫々に関連付けて特徴量が既に登録されており、この後、キー管理テーブル92及び特徴管理テーブル93に、第3の画像IDと特徴量とを、インデックスキーを介して登録する場合を例示する。
第3の画像IDに関連付けられて、『0x1122334455667788990011223344556677889901』という一の特徴量と、『0x2222222222222222222222222222222222222222』という他の特徴量とが与えられた場合、一の特徴量は、『0x00000003』に関連付けられて、既にキー管理テーブル92に登録されている。一方、他の特徴量は、キー管理テーブル92に登録されていない。以下では、既にキー管理テーブル92に登録されている特徴量を既登録特徴量といい、まだキー管理テーブル92に登録されていない特徴量を未登録特徴量という。
仮に、インデックスキーを無条件に連番で発行する場合、未登録特徴量には、インデックスキー『0x00000013』が発行される。このため、既登録特徴量のインデックスキーのハッシュ値と未登録特徴量のインデックスキーのハッシュ値とは互いに等しい『0x3』になる。この結果、図14に示すように、第3の画像IDに関連付けて2個のインデックスキーを特徴管理テーブル93に登録するために、2件のレコードが必要になる。
このようにインデックスキーを無条件に連番で発行していても、1個の画像IDに関連付けられるインデックスキーのハッシュ値は、自然にバラける傾向にある。従って、1個の画像IDに関連付けられる約7000個のインデックスキーを登録するために、約7000件のレコードが必要になることはなく、700件程度のレコード件数になることが期待できる。
しかしながら、更に積極的にレコード件数を低減するためには、次のような手順でインデックスキーを発行することが望ましい。
既登録特徴量については、既にインデックスキーが存在するため、まず、IDフィールドに第3の画像IDを格納し、フィールド値『0x3』のキーフィールドにインデックスキー『0x00000003』を格納し、フィールド値『0x0』〜『0x2』及び『0x4』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードが設けられる。このようなレコードは、検索DBサーバのCPU30によって生成され、RAM32に一時的に記憶される。
次に、キー管理テーブル92を参照し、『0x00000013』以上のインデックスキーであって、当該インデックスキーのハッシュ値が、RAM32に記憶されているレコードの空きキーフィールドのフィールド値に等しく、しかも、最小値であるインデックスキーが求められる。
この場合、空きキーフィールドに格納可能なインデックスキーは、ハッシュ値『0x0』〜『0x2』及び『0x4』〜『0xF』を有するインデックスキーであり、インデックスキー『0x00000020』〜『0x00000022』及び『0x00000014』〜『0x0000001F』が該当する。これらのインデックスキーの内、最小値は『0x00000014』である。このため、未登録特徴量に対して、インデックスキー『0x00000014』が発行される。
次いで、インデックスキー『0x00000014』と未登録特徴量『0x2222222222222222222222222222222222222222』とが関連付けられて、キー管理テーブル92に登録される。この場合、キーフィールドにインデックスキー『0x00000014』を格納し、特徴量フィールドに未登録特徴量が格納してあるレコードがキー管理テーブル92に挿入されるが、このレコードを挿入する前に、キーフィールドにインデックスキー『0x00000013』を格納し、特徴量フィールドに、特徴量が格納されていないことを示す特徴未格納情報が格納してあるレコード(以下、空きキー管理レコードという)がキー管理テーブル92に挿入される(図16(b))。
画像の特徴量が“0”になることはないため、特徴未格納情報としては、20バイト数列『0x0000000000000000000000000000000000000000』が用いられる。
最後に、RAM32に一時的に記憶されているレコードが、IDフィールドに第3の画像IDを格納し、フィールド値『0x3』のキーフィールドにインデックスキー『0x00000003』を格納し、フィールド値『0x4』のキーフィールドにインデックスキー『0x00000014』を格納し、フィールド値『0x0』〜『0x2』及び『0x5』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードに更新され、更新されたレコードが、特徴管理テーブル93に挿入される。
以上の結果、図示はしないが、第3の画像IDに関連付けて2個のインデックスキーを特徴管理テーブル93に登録するためのレコード件数が、1件に低減される。
キー管理テーブル92にて特徴未格納情報に関連付けられているインデックスキー『0x00000013』(即ち空きキー管理レコードに格納されているインデックスキー)は、新たな未登録特徴量をキー管理テーブル92に登録する場合に利用されるため、無駄なインデックスキーは生じない。
以上のように、特徴量に関連付けて既にインデックスキーが登録されているか否かが判定され、判定結果に基づき、登録されているインデックスキーを優先的にキーフィールドに格納したレコードが生成される。このようなレコードが生成された後、生成されたレコードの空きキーフィールドのフィールド値に等しいハッシュ値を有し、しかも、キー管理テーブル92に特徴量が登録されていないインデックスキーが、まだインデックスキーが登録されていない特徴量に対して発行される。この結果、インデックスキーを無条件に連番で発行する場合に比べて、特徴管理テーブル93のレコード件数が効率よく低減される。
ただし、既にキー管理テーブル92に登録されているインデックスキーと、新たに登録すべきインデックスキーとが連番ではない場合、これらの2個のインデックスキーの中間のインデックスキーと特徴未格納情報とを関連付けて、キー管理テーブル92に登録(即ち空きキー管理レコードを挿入)する必要がある。新たな未登録特徴量に対してインデックスキーを発行する場合は、特徴未格納情報が関連付けられているインデックスキーが優先的に採用される。
次に、特徴管理テーブル93のデータ量を更に低減する手法を説明する。
図14に示すように、各キーフィールドに格納されているインデックスキーの最下位ニブルと、各キーフィールドに付与されているフィールド値とは一致している。つまり、各キーフィールドに格納されているインデックスキーの最下位ニブルは冗長な情報である。
この冗長な情報を削除して特徴管理テーブル93のデータ量を更に低減するためには、各キーフィールドに、4バイト整数であるインデックスキーの上位28ビット整数を格納すればよい。このとき、キーフィールドに格納されている28ビット整数と、このキーフィールドのフィールド値とに基づいて、インデックスキーは容易に求められる。
換言すれば、キーフィールドに格納すべき格納値は、インデックスキーを“16”(即ちレコード1件当たりのキーフィールドの個数)で除算した商である。つまり、“キーフィールドの格納値”=“インデックスキー”÷“M”である。このような格納値を求める処理は、インデックスキーを4ビットだけ右シフトした値を求める簡易な処理である。
例えば、第3の画像IDに、第3のインデックスキー『0x00000003』と、第13のインデックスキー『0x00000013』とが関連付けられた場合、まず、IDフィールドに第3の画像IDを格納し、フィールド値『0x3』のキーフィールドに第3のインデックスキーに係る格納値『0x0000000』を格納し、フィールド値『0x0』〜『0x2』及び『0x4』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードが、特徴管理テーブル93に挿入される。更に、IDフィールドに第3の画像IDを格納し、フィールド値『0x3』のキーフィールドに第13のインデックスキーに係る格納値『0x0000001』を格納し、フィールド値『0x0』〜『0x2』及び『0x4』〜『0xF』のキーフィールドにキー未格納情報を格納してあるレコードとが、特徴管理テーブル93に挿入される。
インデックスキーを介したマッチングの際には、格納値同士を比較すればよく、格納値及びフィールド値に基づいてインデックスキーを求める必要はない。
なお、各レコードに256個のキーフィールドを設けて、インデックスキーの下位8ビットをハッシュ値として用いる場合は、インデックスキーの格納値として、インデックスキーを8ビットだけ右シフトした値が用いられる。この結果、格納値のデータ長はインデックスキーのデータ長よりも1バイト短縮されるため、特徴管理テーブル93のデータ量は更に低減される。
ところで、特徴管理テーブル93において、1個の画像IDに16個のインデックスキーが関連付けられるため、画像IDとインデックスキーとを一対一対応で関連付ける場合に比べて、インデックスキーを管理するための管理情報はデータ量が増大するが、管理情報以外の特徴管理テーブル93のデータ量は、前述のように減少するため、管理情報によるデータ量増大分が特徴管理テーブル93のデータ量を大幅に増大させることはない。
次に、特徴量及び付属情報の両方を登録する場合について説明する。
本実施の形態では、キー管理テーブル92に、特徴量又は付属情報とインデックスキーとが関連付けて登録されるようにしてあり、特徴管理テーブル93に、画像IDと、特徴量又は付属情報のインデックスキーとが関連付けて登録されるようにしてある。
付属情報は、特徴量に基づく検索の結果を更に絞込むために用いられる。つまり、類似画像を求めるために、指定画像の特徴量と付属情報とのAND検索が実行される。
仮に、キー管理テーブル92及び特徴管理テーブル93夫々に、特徴量のインデックスキーのみが登録される場合、付属情報とインデックスキーとが関連付けて登録される付属情報用のキー管理テーブル、及び、画像IDと付属情報のインデックスキーとが関連付けて登録される付属情報管理テーブルを、キー管理テーブル92及び特徴管理テーブル93とは別個に夫々設ける必要がある。
この場合、リレーショナル・データベースでは、特徴管理テーブル93を用いたマッチング処理を行なった後、マッチング処理によって生成された結果テーブル95と付属情報管理テーブルとを結合してなるテーブルを用いて、特徴量に基づく検索結果の付属情報による絞込み処理を実行しなければならない。この結果、検索時間が増大し、また、RAM52に一時的に記憶されるテーブルのデータ量が増大するという問題がある。
しかしながら、マッチング処理に伴って絞込み処理を実行する場合は、検索時間の増大、及び、RAM52に一時的に記憶されるデータ量の増大を、夫々抑制することが可能になる。
ここでは、画像を作成した作者の名前(以下、ユーザ名という)を付属情報としてキー管理テーブル92に登録し、また、付属情報のインデックスキーを特徴管理テーブル93に登録し、更に、特徴量のインデックスキーを介したマッチングを行なって、特徴量に基づく検索結果をユーザ名で絞込む場合について例示する。
付属情報であるユーザ名は、20バイトのデータ長を有する文字列(以下、20バイト文字列という)として表される。
また、20バイト数列である特徴量と20バイト文字列である付属情報とを区別するために、キー管理テーブル92に登録される特徴量及び付属情報夫々には、特徴量であるか付属情報であるかを区別するための情報が、特徴量及び付属情報夫々の先頭に付加される。以下では、この情報を先頭情報という。
具体的には、特徴量の先頭1バイトに、特徴量であることを示す先頭情報『00』が付加され、ユーザ名の先頭1バイトには、付属情報であることを示す先頭情報『01』が付加される。
このようにして、21バイトのデータ長を有する特徴量及び付属情報夫々は、前述したような20バイト数列である特徴量をキー管理テーブル92に登録する手順と同様の手順で、インデックスキーに関連付けられてキー管理テーブル92に登録される。また、特徴量及び付属情報夫々のインデックスキーは、画像IDに関連付けられて、特徴管理テーブル93に登録される。
なお、例えば付属情報として作成年月日を用いる場合、作成時点(例えば2007年12月1日14時41分)とインデックスキーとを一対一対応で関連付けてもよいが、作成時点が含まれる期間(例えば2007年12月、2007年下半期等)とインデックスキーとを関連付けてもよい。
また、付属情報としてユーザ名と作成年月日とを用いる場合、ユーザ名であることを示す先頭情報と、作成年月日であることを示す先頭情報とを異ならせてもよい。
検索作業者は指定画像を指定し、また、付属情報を指定する。
本実施の形態においては、検索作業者は、蓄積部90に蓄積されている蓄積画像を指定画像として指定する。この場合、まず、蓄積管理テーブル91が参照されて、指定画像として指定された蓄積画像に関連付けられている画像IDが特定される。ここで特定された画像IDが、検索作業者が指定した指定画像の画像IDである。
画像IDが特定された後、特定された画像IDを除く蓄積画像の画像ID夫々について、各画像IDが格納されたIDフィールドと、投票数“0”が格納された投票数フィールドと、付属情報が一致していることを示す一致情報、及び付属情報が一致していないことを示す不一致情報の何れか一方を格納する一致/不一致フィールドとが関連付けられているレコードが設けられる。
次に、特徴管理テーブル93が参照され、特定された画像IDに関連付けられているインデックスキーが特定される。ここで特定されたインデックスキーが、検索作業者が指定した指定画像の特徴量のインデックスキー、及び指定画像の付属情報のインデックスキーである。付属情報による絞込みを行なう場合、指定画像の付属情報のインデックスキーを用いてもよく、指定画像の付属情報とは無関係に、検索作業者が直接的に指定した付属情報のインデックスキーを用いてもよいが、以下では、指定画像の付属情報のインデックスキーを用いる場合を説明する。
インデックスキーが特定された後、キー管理テーブル92が参照され、特定されたインデックスキーの内、特徴量のインデックスキーを用いたマッチング処理が実行される。即ち、特徴量のインデックスキーに一致するインデックスキーに関連付けられている画像IDが特定され、結果テーブル95にて、特定された画像IDの投票数がインクリメントされる。
図17は、付属情報による絞込みを行なう場合に生成される結果テーブル95を説明する模式図である。図に示すように、結果テーブル95には、IDフィールドと、投票数フィールドと、一致/不一致フィールドとが関連付けられているレコードが設けられている。ただし、図中の画像IDは下4桁が記載されている。
図17には、マッチングによって、画像ID『0x00000001』(以下、第1の画像IDという)に関連付けて投票数“2000”という結果が得られ、画像ID『0x00000002』(以下、第2の画像IDという)に関連付けて投票数“3000”という結果が得られた場合が例示されている。
仮に、付属情報による絞込み処理を実行しない場合は、第2の画像IDを有する蓄積画像が、第1の画像IDを有する蓄積画像よりも優先的に、指定画像の類似画像として出力側端末機7の表示部73に表示される。
付属情報による絞込みを実行する場合、特徴管理テーブル93が参照され、特徴量のインデックスキーに一致するインデックスキーに関連付けられている画像IDを特定する手順と同様の手順で、付属情報のインデックスキーに一致するインデックスキーに関連付けられている画像IDが特定され、結果テーブル95にて、特定された画像IDに関連付けて、一致情報(図17中「○」)が付与される。一方、付属情報のインデックスキーに一致しないインデックスキーに関連付けられている画像IDには、不一致情報(図17中「×」)が付与される。
図17には、絞込みによって、第1の画像IDに関連付けて一致情報が付与され、第2の画像IDに関連付けて不一致情報が付与された場合が例示されている。
以上の結果、付属情報が一致する第1の画像IDを有する蓄積画像が、指定画像の類似画像として蓄積部90から取得されて、出力側端末機7の表示部73に表示される。一方、付属情報が一致しない第2の画像IDを有する蓄積画像は、蓄積部90から取得されることはない。
複数の付属情報(例えばユーザID、作成年月日及びサイズ)が指定された場合、指定された複数の付属情報夫々について付属情報の一致/不一致が判定される。AND検索(又はOR検索)を行なう場合、全ての付属情報(又は何れか一つの付属情報)が一致する蓄積画像は、類似画像としての表示部73に表示され、何れか一つの付属情報(又は全ての付属情報)が一致しない蓄積画像は、蓄積部90から取得されることはない。
ところで、検索作業者が付属情報を直接的に指定する場合、指定された付属情報には、先頭情報『01』が付加され、この付属情報に一致する付属情報がキー管理テーブル92に登録されているか否かが判定される。
指定された付属情報がキー管理テーブル92に登録されていない場合、検索作業者が指定した付属情報が付属する蓄積画像が蓄積部90に蓄積されていないため、出力側端末機7の表示部73に、類似画像が存在しないことを示すテキスト、アイコン等が表示される。
指定された付属情報がキー管理テーブル92に登録されている場合は、指定された付属情報に関連付けられているインデックスキーが特定される。
本実施の形態のように、指定画像として蓄積画像を用いる場合は、検索作業者は、蓄積画像そのものか、又は蓄積画像の画像IDを画像検索装置1に与えればよい。
一方、検索作業者が蓄積画像以外の画像を指定画像として指定する場合は、指定画像の特徴量が抽出され、抽出された特徴量に、特徴量であることを示す情報『00』を付加した上で、この特徴量に一致する特徴量がキー管理テーブル92に登録されているか否かが判定され、既にキー管理テーブル92に登録されている特徴量に関連付けられているインデックスキーが特定される。抽出された特徴量の内、まだキー管理テーブル92に登録されていない特徴量は無視される。何故ならこの特徴量を有する蓄積画像が蓄積部90に蓄積されていないことが自明だからである。
ところで、蓄積管理テーブル91には約232枚の画像を登録することが可能であるが、約232枚の画像の特徴量及び付属情報の合計数は約232個を遥かに超過する。このため、複数個のキー管理テーブル921,…,92Nと、これら夫々に対応する複数個の特徴管理テーブル931,…,93Nとの組が設けられる。以下では、付属情報に係る説明は適宜に省略する。
n個目のキー管理テーブル92nのレコード件数が約232件に達して(又は約232件に近づいて)、キー管理テーブル92nに新たな特徴量及びインデックスキーを登録することができなくなった場合(以下、満杯になった場合という)、満杯になったキー管理テーブル92nと、このキー管理テーブル92nに対応する特徴管理テーブル93nとの組を、新規登録が終了している各種管理テーブルとするテーブル情報が情報管理テーブル94に登録される。
また、n+1個目のキー管理テーブル92n+1と、このキー管理テーブル92n+1に対応する特徴管理テーブル93n+1との組が新たに設けられ、これらの各種管理テーブルを、新規登録すべき各種管理テーブルとするテーブル情報が情報管理テーブル94に登録される。
以下では、インデックスキーを新規登録すべきキー管理テーブル及び特徴管理テーブルの組を現行の各種管理テーブルの組といい、新規登録が終了しているキー管理テーブル及び特徴管理テーブルの組を先代の各種管理テーブルの組という。
また、以下では、先代の各種管理テーブルとして1個目のキー管理テーブル921及び特徴管理テーブル931の組と2個目のキー管理テーブル922及び特徴管理テーブル932の組とを例示し、現行の各種管理テーブルとして3個目のキー管理テーブル923及び特徴管理テーブル933の組を例示する。キー管理テーブル921,922,923(及び特徴管理テーブル931,932,933)は、この順に生成されるものとする。
検索作業者によって、蓄積画像である指定画像が指定された場合、結果テーブル95には、キー管理テーブル921〜923に登録されている指定画像の画像ID以外の画像ID夫々が格納されたIDフィールドと、投票数“0”が格納された投票数フィールドとが関連付けられているレコードが設けられる。
また、指定された指定画像の画像IDが特徴管理テーブル933に登録されているか否かを判定し、登録されていない場合は、特徴管理テーブル932に登録されているか否かを判定し、更に登録されていない場合は、特徴管理テーブル931に登録されているか否かを判定して、指定画像の画像IDに関連付けられているインデックスキーが特定される。
更にまた、特定されたインデックスキーについて、まず、指定された指定画像の画像IDが登録されている特徴管理テーブル(例えば、特徴管理テーブル932)に関してマッチング処理が実行される。即ち、特徴管理テーブル932が参照され、特定されたインデックスキーに一致するインデックスキーに関連付けられている画像IDが特定され、結果テーブル95にて、特定された画像IDの投票数がインクリメントされる。
特徴管理テーブル932に関するマッチング処理が終了した後、キー管理テーブル922が参照され、指定画像に係るインデックスキーに関連付けられている特徴量が探し出される。
次に、指定された指定画像の画像IDが登録されていない特徴管理テーブル(例えば、特徴管理テーブル933)に対応するキー管理テーブル923が参照されて、探し出された特徴量に関連付けられているインデックスキーが特定され、特定されたインデックスキーについて、特徴管理テーブル933に関してマッチング処理が実行される。
最後に、指定された指定画像の画像IDが登録されていない他の特徴管理テーブル(この場合、特徴管理テーブル931)に対応するキー管理テーブル921が参照されて、探し出された特徴量に関連付けられているインデックスキーが特定され、特定されたインデックスキーについて、特徴管理テーブル931に関してマッチング処理が実行される。
つまり、一の特徴管理テーブルにてマッチングを行なった後で、一のキー管理テーブルに登録されているインデックスキーを一旦特徴量に戻し、他のキー管理テーブルに登録されているインデックスキーに再変換してから他の特徴管理テーブルにてマッチングを行なう手順が繰り返される。このことによって、複数個の特徴管理テーブル931〜93Nに亘ってマッチング処理が実行され、マッチングの結果である投票数の多寡に応じて、指定画像の類似画像が取得されて表示される。
なお、一のキー管理テーブルに登録されているインデックスキーを一旦特徴量に戻す処理、及び/又は、戻した特徴量を他のキー管理テーブルに登録されているインデックスキーに再変換する処理は、一の特徴管理テーブルにてマッチングを行なう前に予め実行しておいて、一のキー管理テーブルに登録されているインデックスキーとは別個に、戻した特徴量及び/又は再変換したインデックスキーを記憶しておいてもよい。
また、n個目のキー管理テーブル92nが満杯になってから、n個目のキー管理テーブル92n及び特徴管理テーブル93nの組を先代の各種管理テーブルとし、更にn+1個目のキー管理テーブル92n+1及び特徴管理テーブル93n+1の組を現行の各種管理テーブルとして新たに生成する(以下、世代交代するという)構成のみならず、所定の期間毎(例えば1ヶ月毎、四半期毎、半年毎等)に世代交代する構成でもよい。
キー管理テーブル921〜92N及び特徴管理テーブル931〜93Nの組の個数が増加するに従い、N個の特徴管理テーブル931〜93Nに亘るマッチングは長時間を要するようになる。しかしながら、古い蓄積画像は検索作業者が所望する画像である可能性が低い。
このため、古い蓄積画像(例えば蓄積されてから所定の年数が経過した蓄積画像)の画像ID及び特徴量が登録されているキー管理テーブル921〜92n及び特徴管理テーブル931〜93nの組は画像の検索に用いず、キー管理テーブル92n+1〜92N及び特徴管理テーブル93n+1〜93Nの組を画像の検索に用いることが考えられる。この場合、キー管理テーブル921〜92n及び特徴管理テーブル931〜93nの組と、これらの各種管理テーブルに関連付けて情報管理テーブル94に登録されているテーブル情報とは、HDD33から、HDD33よりも大容量且つ読み書きの速度が遅い他の二次記憶装置へ移動させてもよい。
また、最も新しいキー管理テーブル及び特徴管理テーブルの組のみが画像の検索に用いられる構成でもよく、検索作業者が日付の範囲を指定し、指定された日付の範囲以内に生成されたキー管理テーブル及び特徴管理テーブルの組が画像の検索に用いられる構成でもよい。
以上のような場合、画像の検索に用いるべき各種管理テーブルが限定されるため、全ての各種管理テーブルを画像の検索に用いる場合と比べて、検索時間が短縮される。
なお、各種管理テーブルを他の二次記憶装置へ移動させる場合は、対応する蓄積画像及び蓄積管理テーブル91の登録内容をHDD23から他の二次記憶装置へ移動させることが望ましい。また、これらの各種管理テーブル及び蓄積画像は、圧縮してから他の二次記憶装置に記憶させてもよい。
ところで、n個目のキー管理テーブル92nが満杯になってから新たにn+1個目のキー管理テーブル92n+1及び特徴管理テーブル93n+1の組を生成する場合は、n+1個目のキー管理テーブル92n+1に登録すべき特徴量が既にキー管理テーブル92n以前のキー管理テーブルに登録されているか否かに関わらず、『0x00000001』から順に連番で採番されたインデックスキーを発行することが最も簡単である。
しかしながら、例えば所定の期間毎に、n個目のキー管理テーブル92n及び特徴管理テーブル93nの組を先代の各種管理テーブルとして、新たにn+1個目のキー管理テーブル92n+1及び特徴管理テーブル93n+1の組を生成する場合は、キー管理テーブル92nが満杯になっていないことがある。
例えば新年度開始日にキー管理テーブル921及び特徴管理テーブル931の組を先代の各種管理テーブルとして、新たにキー管理テーブル922及び特徴管理テーブル932の組が生成され、翌年の新年度開始日にキー管理テーブル922及び特徴管理テーブル932の組を先代の各種管理テーブルとして、新たにキー管理テーブル923及び特徴管理テーブル933の組が生成されたとする。
この場合、キー管理テーブル921が満杯になっていなければ、キー管理テーブル921にキー管理テーブル922をマージ(即ち併合)し、特徴管理テーブル931に特徴管理テーブル932をマージすることが可能である。
以下では、1個目のキー管理テーブル921に2個目のキー管理テーブル922をマージしてなるキー管理テーブルをキー併合テーブル920といい、1個目の特徴管理テーブル931に2個目の特徴管理テーブル932をマージしてなる特徴管理テーブルを特徴併合テーブル930という。
キー管理テーブル921,922の両方に重複して登録されている特徴量(即ち、同一の特徴量でありながらキー管理テーブル921,922にて異なるインデックスキーに関連付けられてる特徴量)は、マージによって1個のインデックスキーに関連付けられるため、キー併合テーブル920のデータ量は、キー管理テーブル921,922のデータ量の合計よりも減少する。
また、画像を検索する際は、特徴管理テーブル931及び特徴管理テーブル932の両方に亘ってマッチングを実行せずに、1個の特徴併合テーブル930を用いてマッチングを実行することができる。従って、インデックスキーを特徴量に戻してから再変換する処理が不要になり、検索時間が短縮される。
マージを行なう場合、キー管理テーブル921に登録されている特徴量とこの特徴量のインデックスキーとは、インデックスキーを変更することなくキー併合テーブル920に登録される。同様に、特徴管理テーブル931に登録されている画像IDと、この画像IDに関連付けられているインデックスキーとは、インデックスキーを変更することなく特徴併合テーブル930に登録される。
また、新しいキー管理テーブル922に登録されていて古いキー管理テーブル921に登録されていない特徴量については、この特徴量に対し、キー管理テーブル921にてまだ特徴量に関連付けられていない(即ち使用されていない)インデックスキー(以下、旧インデックスキーという)が発行され、発行された旧インデックスキーと特徴量とが関連付けられて、キー併合テーブル920に登録される。ただし、ここで発行される旧インデックスキーは、この特徴量に関連付けて新しいキー管理テーブル922に登録されているインデックスキー(以下、新インデックスキーという)と同じハッシュ値を有していなければならない。
この後、特徴管理テーブル932に登録されている画像IDと、この画像IDに関連付けられている新インデックスキーに対応する旧インデックスキーとが、特徴併合テーブル930に登録される。新旧のインデックスキーはハッシュ値が等しいため、特徴併合テーブル930においても、旧インデックスキーが格納されるキーフィールドのフィールド値は、新インデックスキーが格納されていたキーフィールドのフィールド値に等しい。
新インデックスキーから旧インデックスキーへの変換処理としては、キー管理テーブル921にて使用されているインデックスキーの最大値よりも大きく、且つ、ハッシュ値が『0x0』である値mを新インデックスキーに加算する処理が最も簡単である。
一方、キー管理テーブル921,922の両方に登録されている特徴量については、この特徴量に対して改めてインデックスキーを発行する必要はない。
しかしながら、同一の特徴量に対してキー管理テーブル921にて関連付けられている旧インデックスキーとキー管理テーブル922にて関連付けられている新インデックスキーとは異なる。このため、特徴管理テーブル932に登録されている画像IDと、この画像IDに関連付けられている新インデックスキーに対応する旧インデックスキーとを、特徴併合テーブル930に登録する必要がある。
新旧のインデックスキー夫々が有するハッシュ値が等しい場合、特徴管理テーブル931において旧インデックスキーが格納されているキーフィールドのフィールド値と、特徴管理テーブル932において新インデックスキーが格納されているキーフィールドのフィールド値とは等しい。このため、特徴管理テーブル932の各レコードについて、新インデックスキーを旧インデックスキーに変換したレコードを特徴併合テーブル930に単純に挿入することが可能である。
ところが、第1及び第2のインデックスキー夫々が有するハッシュ値が異なる場合、特徴管理テーブル931において旧インデックスキーが格納されているキーフィールドのフィールド値と、特徴管理テーブル932において新インデックスキーが格納されているキーフィールドのフィールド値とが異なるため、レコードの単純な挿入が不可能である。従って、インデックスキーを格納すべきキーフィールドを逐一変更していく必要があり、正確なマージが困難であるという問題がある。
この問題を解決するために、画像の登録の際、キー管理テーブル921に既に登録されている特徴量と同じ特徴量をキー管理テーブル922に登録する場合に、発行するインデックスキーを工夫しておく必要がある。具体的には、キー管理テーブル921に既に登録されている特徴量のインデックスキーと同じハッシュ値を有し、且つ、キー管理テーブル922にて未使用のインデックスキーが発行され、発行されたインデックスキーと、この特徴量とが関連付けられて、キー管理テーブル922に登録される。
キー併合テーブル920及び特徴併合テーブル930には、更に3個目のキー管理テーブル923及び特徴管理テーブル933が夫々マージされてもよく、3個目のキー管理テーブル923及び特徴管理テーブル933に4個目のキー管理テーブル924及び特徴管理テーブル934が夫々マージされてなる2個目のキー併合テーブル920及び特徴併合テーブル930が新たに生成されてもよい。
n+1個の各種管理テーブルをマージする場合は、画像の登録の際、キー管理テーブル921〜92nに既に登録されている特徴量と同じ特徴量をキー管理テーブル92n+1に登録する場合に、発行するインデックスキーを工夫しておく必要がある。具体的には、キー管理テーブル921〜92nに既に登録されている特徴量のインデックスキーと同じハッシュ値を有し、且つ、キー管理テーブル92n+1にて未使用のインデックスキーが発行され、発行されたインデックスキーと、この特徴量とが関連付けられて、キー管理テーブル92n+1に登録される。
キー管理テーブル921,922及び特徴管理テーブル931,932が夫々マージされてキー併合テーブル920及び特徴併合テーブル930が生成された後、キー管理テーブル921,922及び特徴管理テーブル931,932は削除され、また、各種管理テーブルのマージ及び削除に応じて、情報管理テーブル94に登録されているテーブル情報が適切に更新される。
生成されたキー併合テーブル920及び特徴併合テーブル930が他の二次記憶装置へ移動された場合、これらに対応して情報管理テーブル94に登録されているテーブル情報も他の二次記憶装置へ移動される。更に、特徴併合テーブル930に登録されている画像IDを有する蓄積画像と蓄積管理テーブル91の登録内容とが他の二次記憶装置へ移動される。
なお、テーブルのマージは、画像の登録又は検索が実行されない時間(例えば夜間、休日等)に実行されることが望ましい。
また、キー管理テーブル921にキー管理テーブル922に登録されているレコードを全てマージすることができない場合は、キー管理テーブル921,922の両方に登録されている特徴量を格納しているレコードを優先的にマージすることが望ましい。
更に、マージされたキー管理テーブルにて、同一の特徴量に異なる複数個のインデックスキーが関連付けられており、しかも、複数個のインデックスキーを同一のインデックスキーに変換することが困難である場合は、例えばマッチングの際に、1個の特徴量に対して複数個のインデックスキー全てを特定する必要がある。
次に、図8〜図13に示す各種処理について説明する。
現行のキー管理テーブルが満杯である場合、現行のキー管理テーブルには特徴量及びインデックスキーを登録することができないので、キー管理テーブル及び特徴管理テーブルの組を世代交代する必要がある。具体的には、登録側受信処理のS44の処理で受信した特徴量の個数が、現行のキー管理テーブルに挿入可能なレコードの残り件数を超過している場合、現行のキー管理テーブルが満杯であると判定される。
また、所定の期間ごとに世代交代をする場合、付属情報として用いられている作成年月日、登録年月日等、又は、検索DBサーバ3が備える図示しないタイマが計時した年月日等が、世代交代すべき所定のタイミングを過ぎている(例えば毎月1日に世代交代するならば、現行の各種管理テーブルの組が作成された月の翌月1日以降である)ときは、キー管理テーブル及び特徴管理テーブルの組を世代交代する必要がある。
図8に示すテーブル管理処理においては、検索DBサーバ3のCPU30は、キー管理テーブル及び特徴管理テーブルの組を世代交代するか否かを判定する(S51)。
世代交代をする場合(S51でYES)、CPU30は、現行の各種管理テーブルの組(例えばキー管理テーブル922及び特徴管理テーブル932の組)が先代の管理テーブルの組となるよう情報管理テーブル94に登録されているテーブル情報を更新する(S52)
次いで、CPU30は新たな各種管理テーブルの組(この場合、キー管理テーブル923及び特徴管理テーブル933の組)を生成し(S53)、新たな各種管理テーブルの組が現行の管理テーブルの組となるよう情報管理テーブル94にテーブル情報を登録する(S54)
S54の処理完了後、又は世代交代をしない場合(S51でNO)、CPU30は、現行の各種管理テーブルの組を対象に登録実行処理を行なうサブルーチン(図9〜図11参照)を呼び出し、実行する(S55)。
S55の処理完了後、CPU30は処理を登録側受信処理のルーチンへ戻す。
以下では、現行の各種管理テーブルの組として、キー管理テーブル923及び特徴管理テーブル933の組を例示し、先代の各種管理テーブルの組として、キー管理テーブル921,922及び特徴管理テーブル931,932の組を例示する。
図9〜図11に示す登録実行処理においては、検索DBサーバ3のCPU30は、登録側受信処理のS44で受信した特徴量と付属情報とに、夫々先頭情報『00』と先頭情報『01』とを付加し(S61)、処理をS62へ移す。
CPU30は、先頭情報が付加された特徴量(又は付属情報)の内の1つを適宜に選択し(S62)、選択した特徴量(又は付属情報)が、現行のキー管理テーブル923に既に登録されているか否かを判定する(S63)。このためにCPU30は、現行のキー管理テーブル923の特徴量フィールドを検索して、S62の処理で選択した特徴量(又は付属情報)に一致する特徴量(又は付属情報)が存在するか否かを判定する。
S62の処理で選択した特徴量(又は付属情報)が現行のキー管理テーブル923に既に登録されている場合(S63でYES)、S62の処理で選択した特徴量(又は付属情報)を、既登録の特徴量(又は付属情報)として記憶し(S64)、まだ登録されていない場合(S63でNO)、未登録の特徴量(又は付属情報)として記憶する(S65)。
S64又はS65の処理完了後、CPU30は、S44で受信した特徴量及び付属情報が全てS62の処理で選択されたか否かを判定し(S66)、まだ選択されていない特徴量又は付属情報が存在する場合は(S66でNO)、処理をS62へ戻す。
S44で受信した特徴量及び付属情報が全てS62の処理で選択された場合(S66でYES)、S44で受信した特徴量及び付属情報が全て既登録及び未登録の何れか一つに分類されたため、CPU30は処理をS67へ移す。
CPU30は、S44で受信した画像IDを格納した1個のIDフィールドと、キー未格納情報を夫々格納したM個(本実施の形態では16個)のキーフィールドとが関連付けられている1件のレコード(以下、特徴管理レコードという)を生成して(S67)、RAM32に一時的に記憶させる。
S67の処理完了後、CPU30は、S64の処理で既登録に分類された特徴量及び付属情報を処理対象にして、特徴管理格納処理を行なうサブルーチン(図12参照)を呼び出し、実行する(S68)。
S68の処理完了後、CPU30はS81へ処理を戻す。
図12に示す特徴管理格納処理においては、検索DBサーバ3のCPU30は、処理対象である特徴量(又は付属情報)の内の1つを適宜に選択し(S71)、現行のキー管理テーブル923を参照して、S71で選択した特徴量(又は付属情報)に一致する特徴量(又は付属情報)に関連付けられているインデックスキーを特定し(S72)、特定したインデックスキーのハッシュ値を算出する(S73)。
次に、CPU30は、S73で算出したハッシュ値に等しいフィールド値が付与されている空きキーフィールドが、RAM32に記憶されている特徴管理レコードに存在するか否かを判定し(S74)、存在しない場合は(S74でNO)、新たな特徴管理レコードを生成して(S75)、RAM32に一時的に記憶させる。
S75の処理完了後、又は、S73で算出したハッシュ値に等しいフィールド値が付与されている空きキーフィールドが、RAM32に記憶されている特徴管理レコードに存在する場合(S74でYES)、CPU30は、S73で算出したハッシュ値に等しいフィールド値が付与されている空きキーフィールドに、S72で特定したインデックスキーを格納する(S76)。ただし、S73で算出したハッシュ値に等しいフィールド値が付与されている空きキーフィールドが、RAM32に記憶されている複数の特徴管理レコードに存在する場合、CPU30は、既に埋まっているキーフィールドの個数が最も多い特徴管理レコードに、S72で特定したインデックスキーを格納する。
S76の処理完了後、CPU30は、処理対象である特徴量及び付属情報が全てS71で選択されたか否かを判定し(S77)、まだ選択されていない特徴量又は付属情報が存在する場合は(S77でNO)、処理をS71へ戻す。
処理対象である特徴量及び付属情報が全てS71で選択された場合(S77でYES)、これらの特徴量及び付属情報夫々のインデックスキーが全て特徴管理レコードに格納されたため、CPU30は、処理を登録実行処理のルーチンへ戻す。
S68で呼び出した特徴管理格納処理の処理完了後、検索DBサーバ3のCPU30は、図9に示すように、S65の処理で未登録に分類された特徴量及び付属情報が存在するか否かを判定し(S81)、存在する場合(S81でYES)、情報管理テーブル94を参照して、先代の各種管理テーブルの組が存在するか否かを判定する(S82)。
先代の各種管理テーブルの組が存在する場合(S82でYES)、CPU30は、図10に示すように、S65の処理で未登録に分類された特徴量(又は付属情報)の内の1つを適宜に選択し(S83)、選択した特徴量(又は付属情報)が、先代のキー管理テーブル921,922に既に登録されているか否かを判定する(S84)。このためにCPU30は、先代のキー管理テーブル921,922夫々の特徴量フィールドを検索して、S83で選択した特徴量(又は付属情報)に一致する特徴量(又は付属情報)が存在するか否かを判定する。
S83で選択した特徴量(又は付属情報)が先代のキー管理テーブル921,922に既に登録されている場合(S84でYES)、登録されている特徴量(又は付属情報)に関連付けられているインデックスキーのハッシュ値を算出し(S85)、S83で選択した特徴量(又は付属情報)を既登録の特徴量(又は付属情報)として、S85で算出したハッシュ値に対応付けてRAM32に一時的に記憶させ(S86)、処理をS87へ移す。
S83で選択した特徴量(又は付属情報)が先代のキー管理テーブル921,922にまだ登録されていない場合(S84でNO)、CPU30は処理をS87へ移す。この場合、S83で選択した特徴量(又は付属情報)は未登録の特徴量のままである。
S84でNOの場合、又はS86の処理完了後、CPU30は、S65の処理で未登録に分類された特徴量及び付属情報が全てS83で選択されたか否かを判定し(S87)、まだ選択されていない特徴量又は付属情報が存在する場合は(S87でNO)、処理をS83へ戻す。
S65の処理で未登録に分類された特徴量及び付属情報が全てS83で選択された場合(S87でYES)、CPU30は、S86の処理で既登録に分類された特徴量及び付属情報と、これらの特徴量及び付属情報夫々に関連付けられているハッシュ値(即ちS85で算出したハッシュ値)とを処理対象にして、キー管理格納処理を行なうサブルーチン(図13参照)を呼び出し、実行する(S88)。
S68の処理完了後、CPU30はS111へ処理を戻す。
図13に示すキー管理格納処理においては、検索DBサーバ3のCPU30は、処理対象である特徴量(又は付属情報)の内の1つを適宜に選択し(S91)、現行のキー管理テーブル923を参照して、選択した特徴量(又は付属情報)に対応付けられているハッシュ値に等しいインデックスキーが格納されている空きキー管理レコードが存在するか否かを判定する(S92)。
このような空きキー管理レコードが存在しない場合(S92でNO)、CPU30は、S91で選択した特徴量(又は付属情報)に対応付けられているハッシュ値に等しいハッシュ値を有し、且つ、現行のキー管理テーブル923でまだ使用されていないインデックスキーを発行する(S93)。
S93の処理完了後、CPU30は、現行のキー管理テーブル923で既に使用されているインデックスキーの最大値とS93で発行したインデックスキーとが連番であるか否かを判定し(S94)、連番ではない場合(S94でNO)、現行のキー管理テーブル923で既に使用されているインデックスキーの最大値とS93で発行したインデックスキーとの中間のインデックスキーを、空きキー管理レコードに格納するためのインデックスキーとして発行する(S95)。
S95の処理完了後、CPU30は、S95で発行したインデックスキーと特徴未格納情報とが格納されている空きキー管理レコードを現行のキー管理テーブル923に挿入する(S96)。
S96の処理完了後、又は、現行のキー管理テーブル923で既に使用されているインデックスキーの最大値とS93で発行したインデックスキーとが連番である場合(S94でYES)、CPU30は、S93で発行したインデックスキーとS91で選択された特徴量(又は付属情報)とが格納されているレコード(以下、キー管理レコードという)を現行のキー管理テーブル923に挿入して(S97)、処理をS99へ移す。
S91で選択した特徴量(又は付属情報)に対応付けられているハッシュ値に等しいインデックスキーが格納されている空きキー管理レコードが存在する場合(S92でYES)、CPU30は、S92で存在すると判定された空きキー管理レコードの内、最も小さいインデックスキーが格納されている空きキー管理レコードを、このインデックスキーとS91で選択された特徴量(又は付属情報)とが格納されているキー管理レコードに更新して(S98)、処理をS99へ移す。
S97又はS98の処理完了後、CPU30は、処理対象である特徴量及び付属情報が全てS91で選択されたか否かを判定し(S99)、まだ選択されていない特徴量又は付属情報が存在する場合は(S99でNO)、処理をS91へ戻す。
処理対象である特徴量及び付属情報が全てS91で選択された場合(S99でYES)、CPU30は、処理を登録実行処理のルーチンへ戻す。
S88で呼び出したキー管理格納処理の処理完了後、図10に示すように、検索DBサーバ3のCPU30は、S86の処理で既登録に分類された特徴量及び付属情報を処理対象にして、特徴管理格納処理を行なうサブルーチン(図12参照)を呼び出し、実行する(S111)。S111で呼び出した特徴管理格納処理の実行手順は、処理対象となる特徴量及び付属情報が異なる以外は、S68で呼び出した特徴管理格納処理の実行手順と同様である。
S111の処理完了後、CPU30は、S86の処理完了後にも未登録に分類されている特徴量及び付属情報が存在するか否かを判定し(S112)、存在する場合(S112でYES)、処理をS113へ移す。
CPU30は、図11に示すように、S86の処理完了後にも未登録に分類されている特徴量(又は付属情報)の内の1つを適宜に選択し(S113)、RAM32に記憶されている特徴管理レコードに空きキーフィールドが存在するか否かを判定する(S114)。空きキーフィールドが存在する場合(S114でYES)、空きキーフィールドのフィールド値をハッシュ値として決定し(S115)、S113で選択した特徴量(又は付属情報)を既登録の特徴量(又は付属情報)として、S115で算出したハッシュ値に対応付けてRAM32に一時的に記憶させ(S116)、処理をS117へ移す。
RAM32に記憶されている特徴管理レコードに空きキーフィールドが存在しない場合(S114でNO)、CPU30は処理をS117へ移す。この場合、S113で選択した特徴量(又は付属情報)は未登録の特徴量のままである。
S116の処理完了後、又は、S114でNOの場合、CPU30は、S86の処理完了後にも未登録に分類されている特徴量及び付属情報が全てS113で選択されたか否かを判定し(S117)、まだ選択されていない特徴量又は付属情報が存在する場合は(S117でNO)、処理をS113へ戻す。
S86の処理完了後にも未登録に分類されている特徴量及び付属情報が全てS113で選択された場合(S117でYES)、CPU30は、S116の処理で既登録に分類された特徴量及び付属情報と、この特徴量及び付属情報に対応付けてS115で決定されたハッシュ値とを処理対象にして、キー管理格納処理を行なうサブルーチン(図13参照)を呼び出し、実行する(S118)。S118で呼び出したキー管理格納処理の実行手順は、処理対象となる特徴量及び付属情報とハッシュ値とが異なる以外は、S88で呼び出したキー管理格納処理の実行手順と同様である。
S118で呼び出したキー管理格納処理の処理完了後、CPU30は、S116の処理で既登録に分類された特徴量及び付属情報を処理対象にして、特徴管理格納処理を行なうサブルーチン(図12参照)を呼び出し、実行する(S119)。S119で呼び出した特徴管理格納処理の実行手順は、処理対象となる特徴量及び付属情報が異なる以外は、S68又はS111で呼び出した特徴管理格納処理の実行手順と同様である。
S119の処理完了後、CPU30は、S116の処理完了後にも未登録に分類されている特徴量及び付属情報が存在するか否かを判定し(S120)、存在する場合(S120でYES)、残った全ての未登録の特徴量及び付属情報夫々について、適切なハッシュ値を決定し(S121)、処理をS122へ移す。S121で決定されるハッシュ値は、例えば、現行のキー管理テーブル923で既に使用されているインデックスキーの最大値より大きい連番のハッシュ値である。
CPU30は、S116の処理完了後にも未登録に分類されている特徴量及び付属情報とS121で決定したハッシュ値とを処理対象にして、キー管理格納処理を行なうサブルーチン(図13参照)を呼び出し、実行する(S122)。S122で呼び出したキー管理格納処理の実行手順は、処理対象となる特徴量及び付属情報とハッシュ値とが異なる以外は、S88又はS118で呼び出したキー管理格納処理の実行手順と同様である。
S122で呼び出したキー管理格納処理の処理完了後、CPU30は、S116の処理完了後にも未登録に分類されている特徴量及び付属情報を処理対象にして、特徴管理格納処理を行なうサブルーチン(図12参照)を呼び出し、実行する(S123)。S123で呼び出した特徴管理格納処理の実行手順は、処理対象となる特徴量及び付属情報が異なる以外は、S68、S111又はS119で呼び出した特徴管理格納処理の実行手順と同様である。
S123で呼び出した特徴管理格納処理の処理完了後、CPU30は、RAM32に記憶されている特徴管理レコードを、全て現行の特徴管理テーブル933に挿入し(S124)、処理をテーブル管理処理のルーチンへ戻す。
ところで、現行の各種管理テーブルの組が1個目のキー管理テーブル921及び特徴管理テーブル931の組である場合は、図9に示すように、先代の各種管理テーブルの組が存在しないため(S82でNO)、CPU30は処理をS113へ移す。
また、S65の処理で未登録に分類された特徴量及び付属情報が存在しない場合(S81でNO)、全ての特徴量及び付属情報夫々のインデックスキーが全て特徴管理レコードに格納されたため、処理をS124へ移す。
更にまた、図10に示すように、S86の処理で全ての特徴量及び付属情報が既登録に分類されており、未登録に分類されている特徴量及び付属情報が存在しない場合(S112でNO)、全ての特徴量及び付属情報夫々のインデックスキーが全て特徴管理レコードに格納されたため、処理をS124へ移す。
また、図11に示すように、S116の処理完了後、未登録に分類されている特徴量及び付属情報が存在しない場合(S120でNO)、全ての特徴量及び付属情報夫々のインデックスキーが全て特徴管理レコードに格納されたため、処理をS124へ移す。
このような登録実行処理におけるCPU30は、登録判定手段、キー発行手段、キー管理登録手段、特徴管理登録手段、第2の登録判定手段、第2のキー発行手段、第2のキー管理登録手段、及び第2の特徴管理登録手段として機能する。
以上のような各処理を実行することによって、画像検索装置1に画像が登録される。つまり、蓄積側受信処理及び蓄積実行処理を実行するCPU20、登録側受信処理、テーブル管理処理、登録実行処理、特徴管理格納処理及びキー管理登録処理を実行するCPU30、抽出側受信処理及び特徴抽出処理を実行するCPU40、並びに画像読込処理を実行するCPU60は、画像登録手段として機能する。
図18及び図19は、検索DBサーバ3で実行される併合実行処理の手順を示すフローチャートである。以下では、n個の先代のキー管理テーブル921〜92n及び特徴管理テーブル931〜93nの中から、マージすべきK(2≦K≦nの自然数)個の先代のキー管理テーブル921〜92K及び特徴管理テーブル931〜93Kを登録作業者が指定する場合を例示する。なお、マージすべきK個の先代の各種管理テーブルを、例えば先代のn個の先代の各種管理テーブル夫々の作成年月日に基づいてCPU30が決定する構成でもよい。
CPU30は、マージすべき先代の各種管理テーブルの範囲を受け付ける(S131)。この場合、CPU30は、例えば入力側端末機6に、情報管理テーブル94に記憶してあるテーブル情報を送信し、入力側端末機6では、受信したテーブル情報に基づいて、マージすべき先代の各種管理テーブルの範囲を登録作業者に入力させるための画面を表示させる。登録作業者は、表示部63に表示された画面を視認しながら、マージすべき範囲(例えばマージすべき各種管理テーブルのファイル名、作成日時等)を入力する。入力側端末機6は、入力された範囲を示す情報を検索DBサーバへ送信する。CPU30は、受信した情報に基づいて、マージすべき各種管理テーブルの個数Kを決定する。
S131の処理完了後、CPU30は変数kに“1”を代入し(S132)、1個目のキー管理テーブル921及び特徴管理テーブル931を複写してキー併合テーブル920及び特徴併合テーブル930を生成して(S133)、処理をS134へ移す。
CPU30は、変数kを“1”インクリメントして(S134)、後述するS138及びS141で変換前後のインデックスキーを対応付けるための対応テーブル96を生成してRAM32に一時的に記憶させる(S135)。次いでCPU30は、k個目のキー管理テーブル92kにて、1件のキー管理レコードを適宜に選択し(S136)、選択したキー管理レコードに格納されている特徴量(以下、選択特徴量という)に一致する特徴量が、キー併合テーブル920に登録されているか否かを判定する(S137)。
選択特徴量に一致する特徴量がキー併合テーブル920に登録されている場合(S137でYES)、CPU30は、S136で選択したキー管理レコードに格納されているインデックスキー(以下、選択インデックスキーという)を、選択特徴量に一致する特徴量に関連付けてキー併合テーブル920に登録されているインデックスキーに対応付けて(S138)、対応テーブル96に登録し、処理をS142へ移す。このインデックスキーは、後述するS143にて選択インデックスキーを変換すべきインデックスキーであるため、以下、変換インデックスキーという。
選択特徴量に一致する特徴量がキー併合テーブル920に登録されていない場合(S137でNO)、CPU30は、選択インデックスキーのハッシュ値に等しいハッシュ値を有し、しかも、キー併合テーブル920にて特徴量に関連付けられていない(即ち未使用の)インデックスキーを発行する(S139)。S139で発行されるインデックスキーとしては、キー併合テーブル920にて空きキー管理レコードに格納されているインデックスキーを優先的に用いることが望ましい。また、S139で発行したインデックスキーは、後述するS143にて選択インデックスキーを変換すべきインデックスキーであるため、以下、変換インデックスキーという。
S139の処理完了後、CPU30は、S139で発行した変換インデックスキーと選択特徴量とを関連付けて、キー併合テーブル920に登録し(S140)、選択インデックスキーとS139で発行した変換インデックスキーに対応付けて(S141)、対応テーブル96に登録する。
S138又はS141の処理完了後、CPU30は、k個目のキー管理テーブル92kに設けられている全てのキー管理レコードがS136にて選択されたか否かを判定し(S142)、まだ選択されていないキー管理レコードが存在する場合は(S142でNO)、処理をS136へ戻す。
k個目のキー管理テーブル92kに設けられている全てのキー管理レコードがS136にて選択された場合(S142でYES)、CPU30は、k個目の特徴管理テーブル93kにて、各特徴管理レコードに格納されているインデックスキーを、対応テーブル96を参照して、変換インデックスキーに変換する(S143)。この結果、k個目の特徴管理テーブル93kに登録されている各インデックスキーは、キー併合テーブル920に登録されているインデックスキーの何れかに一致する。
S143の処理完了後、CPU30は、k個目の特徴管理テーブル93kに設けられている全ての特徴管理レコードを、特徴併合テーブル930に挿入する(S144)。
次いでCPU30は、変数kが個数K以上であるか否かを判定し(S145)、k<Kである場合は(S145でNO)、処理をS134へ移す。
S134〜S145の処理を繰り返すことによって、k個目のキー管理テーブル92k及び特徴管理テーブル93kは、1個目〜k−1個目のキー管理テーブル1〜92k−1及び特徴管理テーブル1〜93k−1がマージされているキー併合テーブル920及び特徴併合テーブル930にマージされる。
k≧Kである場合(S145でYES)、CPU30は、K個の各種管理テーブルをHDD33から削除し(S146)、情報管理テーブル94にて、1個目〜N個目のキー管理テーブル1〜92N及び特徴管理テーブル1〜93Nに関するテーブル情報を更新して(S147)、併合実行処理を終了する。
S147の処理で更新されたテーブル情報には、例えば1個目〜K個目の各種管理テーブルがキー併合テーブル920及び特徴併合テーブル930にまとめられていることを示す情報が含まれ、また、K+1個目〜N個目の各種管理テーブルを、新たな1個目〜N−K個目の各種管理テーブルとする情報が含まれる。
以上のようにして生成されたキー併合テーブル920及び特徴併合テーブル930は、他の二次記憶装置にてアーカイブされ、HDD33からは削除されるが、図示は省略する。また、これらの各種併合テーブル920,930がHDD33に残されて画像の検索の際に使用される構成でもよい。
また、各種併合テーブル920,930のアーカイブに伴い、図示はしないが、情報管理テーブル94に登録されているテーブル情報、蓄積部90に蓄積されている蓄積画像、及びHDD23に記憶されている蓄積管理テーブル91の登録内容が他の二次記憶装置にてアーカイブされ、元のデータは削除される。
併合実行処理におけるCPU30は、画像登録手段の第1手段〜第6手段として機能し、このような併合実行処理を実行することによって、画像検索装置1に登録されている蓄積画像が効率よく管理される。
次に、画像検索装置1で画像を検索する手順を説明する。
図20は、出力側端末機7で実行される画像表示処理(前半部分)及び蓄積DBサーバ2で実行される蓄積画像送信処理夫々の手順を示すフローチャートであり、図21は、出力側端末機7で実行される画像表示処理(後半部分)、検索実行サーバ5で実行される結果送信処理、及び蓄積DBサーバ2で実行される類似画像送信処理夫々の手順を示すフローチャートである。
図20に示すように、画像表示処理を実行する出力側端末機7のCPU70は、表示部73を制御して、検索作業者に画像を検索させるための画面を表示させて、画像検索装置1で画像を検索するための検索指示を受け付ける(S151)。検索作業者は、表示部73を視認しながら操作部74を操作して、検索指示を入力する。
検索指示を受け付けたCPU70は、蓄積画像リストを要求するリスト要求を蓄積DBサーバ2へ送信し(S152)、蓄積DBサーバ2から蓄積画像リストを受信したか否かを判定して(S153)、まだ受信していない場合(S153でNO)、S153の処理を繰り返し実行する。
蓄積画像送信処理を実行する蓄積DBサーバ2のCPU20は、出力側端末機7からリスト要求を受信したか否かを判定し(S154)、まだ受信していない場合(S154でNO)、S154の処理を繰り返し実行する。
出力側端末機7からリスト要求を受信した場合(S154でYES)、CPU20は、蓄積画像リストを生成して出力側端末機7へ送信し(S155)、処理をS154へ戻す。
ここで、蓄積画像リストは、蓄積管理テーブル91を参照して生成され、例えば蓄積画像のファイル名と画像IDとが関連付けられたリストである。なお、蓄積画像リストには画像IDのみが含まれていてもよく、蓄積画像のファイル名の他に、作成年月日、サイズ等が含まれていてもよく、更に、蓄積画像のサムネイルが含まれていてもよい。
なお、画像の登録の際に、蓄積画像を作成した作者の名前、画像検索装置1に登録された登録年月日等の付属情報を蓄積管理テーブル91に登録し、これらの付属情報を蓄積画像リストに含ませてもよい。
画像表示処理を実行する出力側端末機7のCPU70は、蓄積DBサーバ2から蓄積画像リストを受信した場合(S153でYES)、受信した蓄積画像リストに基づき、検索作業者に指定画像及び付属情報を指定させるための蓄積画像リストを表示部73に表示させる(S156)。なお、表示部73に表示される蓄積画像リストの内容は、ファイル名、作成年月日、ユーザ名、登録年月日等の昇順/降順に並べ替え可能であるようにしてあることが望ましい。
検索作業者は、表示部73を視認しながら操作部74を操作して、蓄積部90に蓄積されている蓄積画像の中から、1枚の蓄積画像を指定画像として指定する。また、検索作業者は、必要に応じて付属情報を指定するが、付属情報を指定しなくてもよい。更に、指定情報は、検索作業者が操作部74から直接的に入力した付属情報を指定してもよく、指定画像の付属情報を指定してもよい。更にまた、複数個又は複数種類の付属情報を指定してもよく、複数指定する場合はAND検索を行なうかOR検索を行なうか等も指定する必要がある。
以下では、検索作業者が操作部74から直接的に入力した1個のユーザ名を付属情報として指定した場合を例示する。
S156の処理完了後、CPU70は、指定画像及び付属情報が指定されたか否かを判定し(S157)、指定されていない場合(S157でNO)、S157の処理を繰り返し実行する。
指定画像及び付属情報が指定された場合(S157でYES)、CPU70は、図21に示すように、指定された蓄積画像に関連付けられている画像IDと指定された付属情報とを検索実行サーバ5へ送信する(S158)。
S158の処理完了後、CPU70は、検索実行サーバ5から検索結果情報を受信したか否かを判定して(S159)、まだ受信していない場合(S159でNO)、S159の処理を繰り返し実行する。
結果送信処理を実行する検索実行サーバ5のCPU50は、出力側端末機7から画像ID及び付属情報を受信したか否かを判定して(S160)、まだ受信していない場合(S160でNO)、S160の処理を繰り返し実行する。
出力側端末機7から画像ID及び付属情報を受信した場合(S160でYES)、CPU50は、受信した画像ID及び付属情報をRAM52に一時的に記憶させてから、画像検索処理を行なうサブルーチン(図22〜図23参照)を呼び出し、実行する(S161)。
S161の処理完了後、CPU20は、S161で呼び出した画像検索処理によって得られた検索結果情報を出力側端末機7へ送信し(S162)、処理をS160へ戻す。
画像検索処理を実行することによって、指定画像の類似画像が存在することがわかった場合、検索結果情報には、投票数の多寡に関連付けて、類似画像の画像IDが含まれている。一方、類似画像が存在しないことがわかった場合、検索結果情報には、類似画像の画像IDは含まれていない。
画像表示処理を実行する出力側端末機7のCPU70は、検索実行サーバ5から検索結果情報を受信した場合(S159でYES)、CPU70は、受信した検索結果情報に類似画像の画像IDが含まれている(即ち類似画像が存在する)か否かを判定する(S163)。
S159で受信した検索結果情報に類似画像の画像IDが含まれていない場合(S163でNO)、CPU70は、検索作業者が指定した指定画像に類似する類似画像が蓄積部90には蓄積されていないという結果を示す画面を表示部73に表示させ(S164)、画像表示処理を終了する。検索作業者は、S164の処理で表示部73に表示された画面を視認して、検索作業を打ち切るか、又は他の蓄積画像を指定画像に指定するか等を判断し、他の蓄積画像を指定画像に指定する場合は、再び出力側端末機7に検索指示を入力する。
S159で受信した検索結果情報に類似画像の画像IDが含まれている場合(S163でYES)、類似画像である蓄積画像を取得すべく、CPU70は、検索結果情報に含まれている画像IDを蓄積DBサーバ2へ送信し(S165)、蓄積DBサーバ2から蓄積画像を受信したか否かを判定して(S166)、まだ受信していない場合は(S166でNO)、S166の処理を繰り返し実行する。
類似画像送信処理を実行する蓄積DBサーバ2のCPU20は、出力側端末機7から画像IDを受信したか否かを判定して(S167)、まだ受信していない場合は(S167でNO)、S167の処理を繰り返し実行する。
出力側端末機7から画像IDを受信した場合(S167でYES)、CPU20は、蓄積管理テーブル91を参照して、S167で受信した画像IDを有する蓄積画像を読み出し、出力側端末機7へ送信して(S168)、処理をS167へ戻す。
画像表示処理を実行する出力側端末機7のCPU70は、蓄積DBサーバ2から蓄積画像を受信(即ち取得)した場合(S166でYES)、受信した蓄積画像を、指定画像の類似画像として、投票数が多い順に並べて表示部73に表示させ(S169)、画像表示処理を終了する。検索作業者は、S169の処理で表示部73に表示された指定画像を視認して、所望する画像が存在するか否か、存在しない場合は他の蓄積画像を指定画像に指定するか否か等を判断する。所望する画像が類似画像の中に存在する場合、検索作業者はこの類似画像を取得し、他の蓄積画像を指定画像に指定する場合は、再び出力側端末機7に検索指示を入力する。
なお、投票数が多い順に類似画像を並べるのみならず、類似度が少ない順、ファイル名、作成年月日、ユーザ名、登録年月日等の昇順/降順に並べ替え可能であるようにしてもよい。
図22は、結果送信処理で呼び出される画像検索処理手順のサブルーチンの前半部分及び検索DBサーバ3で実行されるDB側送信処理の手順を示すフローチャートである。また、図23は、画像検索処理手順のサブルーチンの後半部分を示すフローチャートである。
図22に示すように、検索実行サーバ5のCPU50は、各種管理テーブルを要求するテーブル要求を検索DBサーバ3へ送信し(S181)、検索DBサーバ3から各種管理テーブルを受信したか否かを判定して(S182)、まだ受信していない場合(S182でNO)、S182の処理を繰り返し実行する。
DB側送信処理を実行する検索DBサーバ3のCPU30は、検索実行サーバ5からテーブル要求を受信したか否かを判定し(S183)、まだ受信していない場合(S183でNO)、S183の処理を繰り返し実行する。
検索実行サーバ5からテーブル要求を受信した場合(S183でYES)、CPU30は、1個目〜N個目のキー管理テーブル921〜92N及び特徴管理テーブル931〜93Nと情報管理テーブル94とを読み出して検索実行サーバ5へ送信し(S184)、処理をS183へ戻す。
検索DBサーバ3から各種管理テーブルを受信した場合(S182でYES)、検索実行サーバ5のCPU50は、受信した各種管理テーブルをHDD53に記憶させる。
次いで、CPU50は、結果送信処理のS160で受信した付属情報に、先頭情報『01』を付加する(S185)。S185で先頭情報『01』を付加した付属情報とは、検索作業者が指定した付属情報に、先頭情報を付加したものである。以下では、この付属情報を指定付属情報という。
更にCPU50は、S182で受信した1個目〜N個目のキー管理テーブル921〜92Nの特徴量フィールドを検索して、指定付属情報に一致する付属情報が存在するか否かを判定する(S186)。
指定付属情報に一致する付属情報が存在しない場合(S186でNO)、検索作業者が指定したユーザ名を有する作者が作成した画像は蓄積部90には1枚も蓄積されていない。即ち、このような付属情報が付属する類似画像は、検索するまでもなく存在しないことがわかる。従って、CPU50は、類似画像が存在しないことを示す検索結果情報(即ち類似画像の画像IDが含まれていない検索結果情報)を生成し(S187)、処理を結果送信処理のルーチンへ戻す。ここで生成された検索結果情報は、S162の処理で出力側端末機7へ送信される。
指定付属情報に一致する付属情報が存在する場合(S186でYES)、S187の処理完了後、CPU50は、S182で受信した1個目〜N個目の特徴管理テーブル931〜93NのIDフィールドを検索して、S160で受信した画像ID(以下、指定画像IDという)に一致する画像IDが登録されているJ(Jは1≦J≦Nの自然数)個目の特徴管理テーブル93Jを特定し(S188)、特定された特徴管理テーブル93Jに登録されている指定画像IDに関連付けられているインデックスキーを特定する(S189)。
次に、CPU50は、S188で特定された特徴管理テーブル93Jに対応するJ個目のキー管理テーブル92Jを参照し、S189で特定されたインデックスキーの内、先頭情報が『00』であるインデックスキー、即ち特徴量のインデックスキー(以下、指定特徴キーという)を特定する(S190)。S190の処理を実行することによって、S189で特定されたインデックスキーの内、先頭情報が『01』であるインデックスキー、即ち指定画像IDを有する蓄積画像に付属する付属情報のインデックスキーが、誤って検索に用いられることが防止される。
更にCPU50は、キー管理テーブル92Jを参照して、指定特徴キーに関連付けられている特徴量を指定特徴量として区別しておく(S191)。指定特徴量は、後述するS201の処理で利用される。
S191の処理完了後、CPU50は、図23に示すように、結果テーブル95を生成する(S192)。ここで生成される結果テーブル95には、指定画像IDを除いて、特徴管理テーブル931〜93Nに登録されている全ての画像ID夫々について、各画像IDが格納されたIDフィールドと、投票数“0”が格納された投票数フィールドと、不一致情報が格納された一致/不一致フィールドとが関連付けられているレコードが設けられる。投票数フィールドに格納されている投票数は、後述するマッチング実行処理で増加する可能性があり(図24参照)、一致/不一致フィールドに格納されている不一致情報は、後述する画像絞込処理で一致情報に変更される可能性がある(図25参照)。
S192の処理完了後、CPU50は、キー管理テーブル92Jの特徴量フィールドを検索して、指定付属情報に一致する付属情報が存在するか否かを判定し(S193)、存在しない場合は(S193でNO)、処理を後述するS197へ移す。
指定付属情報に一致する付属情報がキー管理テーブル92Jに登録されている場合(S193でYES)、CPU50は、指定付属情報に一致する付属情報に関連付けられているインデックスキー(以下、指定付属キーという)を特定する(S194)。
次に、CPU50は、S190で特定した指定特徴キーとJ個目の特徴管理テーブル93Jとを処理対象にして、マッチング実行処理を行なうサブルーチン(図24参照)を呼び出し、実行する(S195)。次いで、CPU50は、S194で特定した指定付属キーとJ個目の特徴管理テーブル93Jとを処理対象にして、画像絞込処理を行なうサブルーチン(図25参照)を呼び出し、実行する(S196)。
S195及びS196の処理が実行されることによって、図17に示すような結果テーブル95が得られる。
S196の処理完了後、CPU50は、変数jに“1”を代入し(S197)、処理をS198へ移す。
CPU50は、変数jがS188で特定されたJ個目の“J”に等しいか否かを判定し(S198)、j=Jである場合(S198でYES)、J個目の特徴管理テーブル93JについてはS195及びS196で処理が完了しているため、変数jを“1”インクリメントし(S199)、S199の処理完了後、又は変数j≠Jである場合(S198でNO)、変数jがS182で受信したN個目の“N”より大きいか否かを判定する(S200)。
j≦Nである場合(S200でNO)、CPU50は、j個目のキー管理テーブル92jを参照して、S191で区別しておいた指定特徴量に一致する特徴量に関連付けられているインデックスキー(以下、指定特徴キーという)と、指定付属情報に一致する付属情報に関連付けられているインデックスキー(以下、指定付属キーという)とを夫々を特定する(S201)。ただし、指定特徴量に一致する特徴量が1個も存在しないか、又は、指定付属情報に一致する付属情報が存在しない場合、指定特徴キー又は指定付属キーを特定することができないため(S202でYES)、CPU50は、処理をS205へ移す。
指定特徴キー及び指定付属キー夫々を特定することができた場合(S202でNO)、CPU50は、S201で特定した指定特徴キーとj個目の特徴管理テーブル93jとを処理対象にして、マッチング実行処理を行なうサブルーチン(図24参照)を呼び出し、実行する(S203)。次いで、CPU50は、S201で特定した指定付属キーとj個目の特徴管理テーブル93jとを処理対象にして、画像絞込処理を行なうサブルーチン(図25参照)を呼び出し、実行する(S204)。S203及びS204の処理が実行されることによって、結果テーブル95の登録内容が変化する(又は変化せずに維持される)。
S204の処理完了後、CPU50は、変数jを“1”インクリメントし(S205)、処理をS198へ移す。
j>Nである場合(S200でYES)、1個目〜N個目の特徴管理テーブル931〜93Nについてのマッチング実行処理及び画像絞込処理夫々が完了したため、CPU50は、結果テーブル95の登録内容に基づいて検索結果情報を生成し(S206)、処理を結果送信処理のルーチンへ戻す。ここで生成された検索結果情報は、S162の処理で出力側端末機7へ送信される。
結果テーブル95の登録内容に基づき、指定画像の類似画像が存在することがわかった場合、CPU50は、所定の最低投票数以上の投票数と一致情報とに関連付けられている画像IDの中から、投票数が多い順に所定個以内の個数の画像IDを選択し、選択した画像IDが含まれている検索結果情報を生成する。この検索結果情報には、画像IDに関連付けて、この画像IDに対する投票数の多寡を示す情報が含まれている。
一方、類似画像が存在しないことがわかった(即ち、各画像IDに関連付けられている投票数が、所定の最低投票数未満であるか、又は各画像IDが不一致情報に関連付けられている)場合、CPUは、類似画像の画像IDが含まれていない検索結果情報を生成する。
なお、本実施の形態では、検索DBサーバ3が保管している各種管理テーブルを全て検索実行サーバ5にコピーするようにしてあるが、各種管理テーブルの当面必要な一部のみを検索実行サーバ5から適宜のタイミングで読み出す構成でもよい。
図24及び図25は、画像検索処理で呼び出されるマッチング実行処理手順及び画像絞込処理手順夫々のサブルーチンを示すフローチャートである。
まず、検索実行サーバ5で実行されるマッチング実行処理について説明する。(図24)
CPU50は、処理対象である指定特徴キーの内、1個の指定特徴キーを適宜に選択し(S211)、選択した指定特徴キーのハッシュ値を算出し(S212)、J個目の特徴管理テーブル93J(又はj個目の特徴管理テーブル93j)に関し、S212で算出したハッシュ値に等しいフィールド値が付与されているキーフィールドを特定する(S213)。
次いで、CPU50は、S213で特定したキーフィールドを検索して、S211で選択した指定特徴キーに一致するインデックスキーに関連付けられている画像IDに投票する(S214)。即ち、CPU50は、指定特徴キーに一致するインデックスキーに関連付けられている画像IDを特定し、結果テーブル95にて、特定した画像IDの投票数を“1”インクリメントする。一方、CPU50は、指定特徴キーに一致しないインデックスキーに関連付けられている画像IDに係る投票数を変更しない。
S214の処理完了後、CPU50は、処理対象である指定特徴キーが全てS211で選択されたか否かを判定し(S215)、まだ選択されていない指定特徴キーが存在する場合は(S215でNO)、処理をS211へ戻す。
指定特徴キーが全てS211で選択された場合(S215でYES)、CPU50は、処理を画像検索処理のルーチンへ戻す。
次に、検索実行サーバ5で実行される画像絞込処理について説明する(図25)。
CPU50は、処理対象である指定付属キーのハッシュ値を算出し(S221)、J個目の特徴管理テーブル93J(又はj個目の特徴管理テーブル93j)に関し、S221で算出したハッシュ値に等しいフィールド値が付与されているキーフィールドを特定する(S222)。
次いで、CPU50は、S222で特定したキーフィールドを検索して、処理対象である指定付属キーに一致するインデックスキーに関連付けられている一致情報を付与することによって、付属情報の一致/不一致を判別する(S223)。即ち、CPU50は、指定付属キーに一致するインデックスキーに関連付けられている画像IDを特定し、結果テーブル95にて、特定した画像IDに係る不一致情報を一致情報に変更する。一方、CPU50は、指定付属キーに一致しないインデックスキーに関連付けられている画像IDに係る不一致情報は一致情報に変更しない。
S223の処理完了後、CPU50は、処理を画像検索処理のルーチンへ戻す。
このような画像検索処理におけるCPU50は、特徴キー探索手段、画像選択手段、及び情報キー探索手段として機能する。また、マッチング実行処理におけるCPU50は、類似度算出手段として機能し、画像絞込処理におけるCPU50は、情報付与手段として機能する。
以上のような各処理を実行することによって、画像検索装置1で画像が検索される。つまり、蓄積画像送信処理及び類似画像送信処理を実行するCPU20、結果送信処理を実行するCPU50、画像表示処理を実行するCPU70は、検索手段(特に結果出力手段)として機能し、S164又はS169の処理の結果として、表示部73は検索手段による検索結果を表示する表示部として機能する。
以上のような画像検索装置1は、主として登録の際に使用される計算機と、主として検索の際に使用される計算機とを個別に備えており、特に演算負荷が大きい特徴量の抽出処理とインデックスキーを介した特徴量のマッチング処理とを特徴抽出サーバ4と検索実行サーバ5とに分けてある。このため、1個の演算部に演算負荷が集中することを防止することができる。また、例えば登録作業者による入力側端末機6を用いた画像の登録に併行して、検索作業者による出力側端末機7を用いた画像の検索を実行することができる。
なお、例えば画像検索装置1が蓄積DBサーバ2を備えず、外部の蓄積DBサーバに蓄積されている蓄積画像の中から類似画像を検索する構成にしてもよい。又は、画像検索装置1がリレーショナル・データベースを備えず、外部のリレーショナル・データベースを参照して類似画像を検索する構成にしてもよい。あるいは、出力側端末機7を備えず、検索実行サーバ5から外部の出力側端末機へ検索結果情報を出力する構成にしてもよい。
実施の形態 2.
図26は、本発明の実施の形態2に係る画像検索装置で実行される登録実行処理手順のサブルーチンを示すフローチャートである。
本実施の形態の登録実行処理は、実施の形態1と同様に、検索DBサーバ3で実行されるテーブル管理処理(図8参照)で呼び出される。図26に示す登録実行処理のS231〜S234の処理、S236〜S239の処理、並びにS241及びS242の処理は、図9に示す実施の形態1の登録実行処理のS61〜S64の処理、S65〜S68の処理、並びにS81及びS82の処理と同様であるため、説明を省略する。また、S241及びS242よりも後の処理は、図10〜図11に示す実施の形態1の登録実行処理の各処理と同様であるため、図示及び説明を省略する。
また、図27は、登録実行処理で呼び出されるキー管理格納処理手順のサブルーチンを示すフローチャートである。本実施の形態のキー管理格納処理の各処理は、図13に示す実施の形態1のキー管理格納処理の各処理と略同様であるが、本実施の形態のS256〜S258の処理は、実施の形態1のS96〜S98の処理と少し異なる。
図28は、本発明の実施の形態2に係る画像検索装置のキー管理テーブルを説明する模式図である。
図16に示すように、実施の形態1のキー管理テーブル921〜92N夫々には、各レコードにつき、各1個のキーフィールドと特徴量フィールドとが関連付けて設けられている。
一方、図28に示すように、本実施の形態のキー管理テーブル921〜92N夫々には、各レコードにつき、各1個のキーフィールドと特徴量フィールドと枚数フィールドとが関連付けて設けられている。この枚数フィールドには、特徴量フィールドに格納されている特徴量(又は付属情報)を有する蓄積画像の枚数を示す1個の枚数情報が格納される。
図27に示すように、キー管理格納処理を実行する検索DBサーバ3のCPU30は、S255の処理完了後、S255で発行したインデックスキーと特徴未格納情報と“0”を示す枚数情報とが格納されている空きキー管理レコードを現行のキー管理テーブル923に挿入する(S256)。
S256の処理完了後、又は、現行のキー管理テーブル923で既に使用されているインデックスキーの最大値とS253で発行したインデックスキーとが連番である場合(S254でYES)、CPU30は、S253で発行したインデックスキーとS251で選択された特徴量(又は付属情報)と“1”を示す枚数情報とが格納されているキー管理レコードを現行のキー管理テーブル923に挿入して(S257)、処理をS259へ移す。
S251で選択した特徴量(又は付属情報)に対応付けられているハッシュ値に等しいインデックスキーが格納されている空きキー管理レコードが存在する場合(S252でYES)、CPU30は、S252で存在すると判定された空きキー管理レコードの内、最も小さいインデックスキーが格納されている空きキー管理レコードを、このインデックスキーとS251で選択された特徴量(又は付属情報)とが格納されているキー管理レコードに更新し、更に、枚数情報“0”を枚数情報“1”に更新して(S258)、処理をS259へ移す。
S257及びS258の処理は、新たな特徴量(又は付属情報)を現行のキー管理テーブル923に登録する処理であり、この新たな特徴量(又は付属情報)を有する蓄積画像は1枚である。従って、インデックスキー及び特徴量(又は付属情報)を関連付けて現行のキー管理テーブル923に登録する際に、枚数情報“1”が登録される。
図26に示すように、登録実行処理を実行する検索DBサーバ3のCPU30は、S232で選択した特徴量(又は付属情報)が現行のキー管理テーブル923に既に登録されている場合(S233でYES)、S232で選択した特徴量(又は付属情報)を、既登録の特徴量(又は付属情報)として記憶し(S234)、更に、この特徴量に関連付けてキー管理テーブル923に登録されている枚数情報を“1”インクリメントする(S235)。S235におけるCPU30は、枚数計数手段として機能する。
以上の結果、図28に示すように、キー管理テーブル921〜92N夫々に、インデックスキーと特徴量(又は付属情報)と、この特徴量(又は付属情報)を有する蓄積画像の枚数を示す枚数情報とが登録される。例えば、第1のインデックスキーと第1の特徴量と及び枚数情報“500”とが登録され、第2又は第3のインデックスキーと第2又は第3の特徴量と枚数情報“200”又は“1”とが登録され、第4のインデックスキーと特徴未格納情報と枚数情報“0”とが登録される。
このようなキー管理テーブル921〜92Nをマージする場合、重複する特徴量(又は付属情報)に関連付けられている枚数情報は、単純に加算される。
枚数情報が示す蓄積画像の枚数が1枚である第3の特徴量は、1枚の蓄積画像のみが有する特徴量である。このため、蓄積画像の内の1枚を指定画像として用いる本実施の形態においては、第3のインデックスキーを用いてマッチングを行なっても無駄である。従って、枚数情報“1”に関連付けられているインデックスキーを省いてマッチングを行なうことにより、検索時間が短縮される。なお、蓄積画像以外の指定画像を用いる場合は、枚数情報“1”に関連付けられているインデックスキーも用いてマッチングを行なう必要がある。
枚数情報が示す蓄積画像の枚数が多い第1の特徴量は、多数枚(具体的には5千枚)の蓄積画像が共有する特徴量である。つまり、第1のインデックスキーを用いてマッチングを行なった場合に、5千個の画像IDに関連付けられている投票数がインクリメントされる。一方、枚数情報が示す蓄積画像の枚数が少ない第2の特徴量は、少数枚(具体的には2百枚)の蓄積画像が共有する特徴量である。つまり、第2のインデックスキーを用いてマッチングを行なった場合に、2百個の画像IDに関連付けられている投票数がインクリメントされる。
即ち、多くの枚数を示す枚数情報に関連付けられているインデックスキーは、少ない枚数を示す枚数情報に関連付けられているインデックスキーよりも、蓄積画像を識別する能力が低い。
ところで、実施の形態1では、出力側端末機7を用いて検索作業者が指定画像を指定してから、表示部73に検索結果が表示されるまで、検索作業者が長時間待たされることがある。
一方、本実施の形態では、検索作業者が指定画像を指定してから、表示部73に最終的な検索結果が表示されるまでの間に、暫定的な検索結果(以下、暫定検索結果という)が表示部73に表示される。この場合、検索作業者を長時間待たせ続けることがなくなり、暫定検索結果として表示された蓄積画像の中に検索作業者が所望する画像が存在した場合には、検索作業者が手動で検索を中断することも可能になる。
本実施の形態の図示しない画像検索処理は、実施の形態1と同様に、検索実行サーバ5で実行される(図22〜図23参照)。検索実行サーバ5のCPU50は、図23に示す画像検索処理のS206の処理を実行することによって、結果テーブル95の登録内容に基づいて、最終的な検索結果を示す検索結果情報を生成する。CPU50は、実施の形態1と同様に、所定の最低投票数以上の投票数と一致情報とに関連付けられている画像IDの中から、投票数が多い順に所定個以内の個数の画像IDを選択する。
このため、1個目〜N個目の特徴管理テーブル931〜93Nについてのマッチング実行処理及び画像絞込処理夫々が完了する前(即ち図23に示す画像検索処理のS200の処理で、CPU50がYESと判定する前)であっても、画像IDに対して最低投票数以上の投票数が関連付けられているならば、この画像IDは類似画像の画像IDとして選択される可能性があることがわかる。
つまり、最低投票数以上の投票数が関連付けられている画像IDを有する蓄積画像は類似画像の候補であり、検索作業者が所望する画像である可能性が少なからずある。従って、最低投票数以上の投票数が関連付けられている画像IDを有する蓄積画像を、暫定的な検出結果として表示部73に表示させることによって、検索作業者の利便性が向上される。
このとき、枚数情報が示す枚数が所定枚数(本実施の形態では2枚)以上であり、且つ、枚数が少ない順にインデックスキーを選択してマッチング処理を行なえば、最終的な投票数が多くなる可能性が高い画像IDに対して、短時間で、最低投票数以上の投票が行なわれる。この結果、早くから最低投票数以上の投票数が関連付けられている画像IDを有する蓄積画像は、マッチング実行処理の完了を待たずとも、他の蓄積画像に比べて指定画像に類似している可能性が高い。
図29は、検索実行サーバ5で実行されるマッチング実行処理手順のサブルーチン、及び実施の形態1と同様に出力側端末機7で実行される画像表示処理(一部分)の手順を示すフローチャートであり、図30は、画像表示処理(他の一部分)、及び実施の形態1と同様に蓄積DBサーバ2で実行される類似画像送信処理夫々の手順を示すフローチャートである。
図31は、結果テーブル95を説明する模式図である。
本実施の形態のマッチング実行処理は、図24に示す実施の形態1のマッチング実行処理に相当し、実施の形態1と同様に画像検索処理(図22〜図23参照)で呼び出される。マッチング実行処理のS273〜S275の処理は、図24に示すS212〜S214の処理と同様である。
また、本実施の形態の画像表示処理は、実施の形態1の画像表示処理(図20〜図21参照)に相当する。ただし、S291の処理より前の処理は、図20に示す各処理と同様であるため、図示及び説明を省略する。また、S291及びS293の処理は図21に示すS158及びS159の処理と同様であるため、説明を省略する。
更に、本実施の形態の画像表示処理及び類似画像送信処理のS294〜S300の処理は、図21に示すS163〜S169の処理と同様であるため、説明を省略する。
検索実行サーバ5のCPU50は、図示はしないが、図23に示すS192の処理を実行することによって、結果テーブル95を生成する。ただし、ここで生成される結果テーブル95には、実施の形態1の結果テーブル95とは異なり、指定画像IDを除いて、特徴管理テーブル931〜93Nに登録されている全ての画像ID夫々について、各画像IDが格納されたIDフィールドと、投票数“0”が格納された投票数フィールドと、不一致情報が格納された一致/不一致フィールドと、暫定検索結果をまだ送信していないことを示す未送信情報が格納された暫定結果フィールドとが関連付けられているレコードが設けられる(図31参照)。
投票数フィールドに格納されている投票数は、実施の形態1と同様にマッチング実行処理で増加する可能性があり、暫定結果フィールドに格納されている未送信情報は、後述するマッチング実行処理で、暫定検索結果が送信済みであることを示す送信済情報に変更される可能性がある。また、一致/不一致フィールドに格納されている不一致情報は、実施の形態1と同様に、図示しない画像絞込処理で一致情報に変更される可能性がある。
図29に示すように、マッチング実行処理を実行する検索実行サーバ5のCPU50は、S190又は又はS201の処理で特定した処理対象である指定特徴キーの内、S272以降の処理で使用しない指定特徴キーを排除する(S271)。このためにCPU50は、J個目のキー管理テーブル92J又はj個目のキー管理テーブル92jを参照して、“1”を示す枚数情報に関連付けられているインデックスキーに一致する指定特徴キーをRAM52から削除するか、又はこの指定特徴キーに対して適宜のフラグをセットして、後述するS272の処理で選択されないようにする。
S271の処理完了後、CPU50は、J個目のキー管理テーブル92J又はj個目のキー管理テーブル92jを参照して、“2”以上の枚数情報に関連付けられているインデックスキーの内、枚数情報が示す枚数が最も少ないインデックスキーに一致する指定特徴キーを選択し(S272)、選択した指定特徴キーに対して、S273〜S275の処理を実行する。
S275の処理完了後、CPU50は結果テーブル95を参照し、投票数が最低投票数以上である画像IDが存在するか否かを判定し(S276)、この画像IDが存在する場合は(S276でYES)、この画像IDに関連付けて一致情報が登録されているか否かを判定し(S277)、一致情報が登録されている場合は(S277でYES)、この画像IDに関連付けて未送信情報が登録されているか否かを判定する(S278)。
未送信情報が関連付けられている場合(S278でYES)、CPU50は、この画像IDを含む暫定検索結果を出力側端末機7へ送信し(S279)、結果テーブル95にて、この画像IDに関連付けられている未送信情報を送信済情報に更新する(S280)。
S280の処理完了後、CPU50は、S271の処理で排除されなかった指定特徴キーが全てS272で選択されたか否かを判定し(S281)、まだ選択されていない指定特徴キーが存在する場合は(S281でNO)、処理をS272へ戻す。この場合、CPU50は、“2”以上の枚数情報に関連付けられており、且つ、まだ選択されていないインデックスキーの内、枚数情報が示す枚数が最も少ないインデックスキーに一致する指定特徴キーを選択する。
指定特徴キーが全てS272で選択された場合(S281でYES)、CPU50は、処理を画像検索処理のルーチンへ戻す。
投票数が最低投票数未満である画像IDしか存在しない場合(S276でNO)、又は、投票数が最低投票数以上である画像IDに関連付けて不一致情報が登録されている場合(S277でNO)、あるいは、投票数が最低投票数以上であり、且つ、一致情報に関連付けられている画像IDに関連付けて送信済情報が登録されている場合(S278でNO)、CPU50はS279及びS280の処理を実行せずにS281の処理を実行する。
最低投票数が“1000”である場合、図31に示す結果テーブル95においては、投票数が“1000”であり、一致情報及び未送信情報に関連付けられている第2の画像IDが暫定検索結果に含まれる。一方、投票数が“999”である第1の画像ID、不一致情報に関連付けられている第3の画像ID、及び送信済情報に関連付けられている第4の画像IDは、暫定検索結果には含まれない。
暫定検索結果の送信後、第2の画像IDには送信済情報が関連付けられるため、今後、第2の画像IDが暫定検索結果に含まれることはないが、第1の画像IDは投票数が増加することによって、また、第3の画像IDは不一致情報が一致情報に更新されることによって、暫定検索結果に含まれることになる。
画像表示処理を実行する出力側端末機7のCPU70は、S291の処理の完了後、検索実行サーバ5から暫定検索結果を受信したか否かを判定して(S292)、まだ受信していない場合(S292でNO)、検索実行サーバ5から検索結果情報を受信したか否かを判定して(S293)、まだ受信していない場合(S293でNO)、処理をS292へ戻す。
検索実行サーバ5から暫定検索結果を受信した場合(S292でYES)、CPU50は、図30に示すように、受信した暫定検索結果に含まれている画像IDを蓄積DBサーバ2へ送信し(S311)、蓄積DBサーバ2から蓄積画像を受信したか否かを判定して(S312)、まだ受信していない場合は(S312でNO)、S312の処理を繰り返し実行する。
蓄積DBサーバ2から蓄積画像を受信した場合(S312でYES)、CPU70は、受信した蓄積画像を、指定画像の暫定的な類似画像として、表示部73に表示させ(S313)、処理を図29に示すS292へ戻す。
最低投票数が“1000”である場合、図31に示す結果テーブル95においては、第2の画像IDを有する蓄積画像が、指定画像の暫定的な類似画像として表示部73に表示される。
その他、実施の形態1に対応する部分には同一符号を付してそれらの説明を省略する。
実施の形態 3.
図32は、本発明の実施の形態3に係る画像検索装置で実行される登録抹消処理(前半部分)及び蓄積画像送信処理夫々の手順を示すフローチャートである。登録抹消処理は入力側端末機6で実行され、本実施の形態の蓄積画像送信処理は、実施の形態1,2と同様に蓄積DBサーバ2で実行される。図32に示すS324及びS325の処理は、図20に示すS154及びS155の処理と同様であるため、説明を省略する。
図33は、入力側端末機6で実行される登録抹消処理(後半部分)、蓄積DBサーバ2で実行される画像削除処理、及び実施の形態2と同様に検索DBサーバ3で実行される登録無効化処理夫々の手順を示すフローチャートである。
画像検索装置1において、画像の登録を抹消する場合、蓄積部90に蓄積されている蓄積画像を削除し、また、この蓄積画像の画像IDに関連している各種のデータを各種管理テーブルから削除する必要がある。
しかしながら、登録されているデータの整合性を各種管理テーブル間で保ちつつ各種管理テーブルからデータを削除する処理は煩雑であり、長時間を要するという問題がある。また、画像の登録と画像の登録抹消とが同時的に発生すると、各種DBサーバ2,3のCPU20,30に演算負荷が集中し、しかも、各種管理テーブルを更新するために各種管理テーブルを互いに長時間ロックし合うという問題がある。
これらの問題を解決するためには、例えば登録を抹消すべき蓄積画像を予め指定しておき、画像の登録又は検索が実行されない夜間、休日等に登録の抹消を実行することが考えられる。ただし、登録を抹消すべき蓄積画像が指定されてから登録が抹消されるまでの間に、この蓄積画像が誤って類似画像として選択される不都合を防止する必要がある。
図34は、本発明の実施の形態3に係る画像検索装置の特徴管理テーブルを説明する模式図である。
図14に示す実施の形態1の特徴管理テーブル93とは異なり、本実施の形態における特徴管理テーブル931〜93N夫々の各レコードには、各1個のIDフィールド、及び有効/無効フィールドと、M個のキーフィールドとが関連付けて設けられている。図中のインデックスキーは下4桁が記載されており、キー未格納情報として「未」が記載されている。
有効/無効フィールドには、IDフィールドに格納されている画像IDが有効であることを示す有効情報(図中「○」)又は無効であることを示す無効情報(図中「×」)が格納される。
本実施の形態の図示しない登録側受信処理、登録実行処理及び特徴管理格納処理は、実施の形態1の図7に示す登録側受信処理、図9〜図11に示す登録実行処理及び図12に示す特徴管理格納処理と略同様であるが、図9に示すS67の処理及び図12に示すS75の処理に夫々相当する処理が異なる。これらの処理において、検索DBサーバ3のCPU30は、図7に示す登録側受信処理のS44の処理で受信した画像IDを格納した1個のIDフィールドと、有効情報を格納した有効/無効フィールドと、キー未格納情報を夫々格納したM個(本実施の形態では16個)のキーフィールドとが関連付けられている1件の特徴管理レコードを生成する。この結果、画像を登録する際には、画像IDに関連付けて有効情報が特徴管理テーブル931〜93Nに登録される。
図32に示すように、登録抹消処理を実行する入力側端末機6のCPU60は、表示部63を制御して、登録作業者に画像を検索させるための画面を表示させて、画像検索装置1に登録されている画像を抹消するための登録抹消指示を受け付ける(S321)。登録作業者は、表示部63を視認しながら操作部64を操作して、登録抹消指示を入力する。
登録抹消指示を受け付けたCPU60は、蓄積画像リストを要求するリスト要求を蓄積DBサーバ2へ送信し(S322)、蓄積DBサーバ2から蓄積画像リストを受信したか否かを判定して(S323)、まだ受信していない場合(S323でNO)、S323の処理を繰り返し実行する。
蓄積DBサーバ2から蓄積画像リストを受信した場合(S323でYES)、CPU60は、受信した蓄積画像リストに基づき、登録作業者に登録を抹消すべき蓄積画像(以下、抹消画像という)を指定させるための蓄積画像リストを表示部63に表示させる(S326)。
登録作業者は、表示部63を視認しながら操作部64を操作して、蓄積部90に蓄積されている蓄積画像の中から、1枚又は複数枚の蓄積画像を抹消画像として指定する。
S326の処理完了後、CPU60は、抹消画像が指定されたか否かを判定し(S327)、指定されていない場合(S327でNO)、S327の処理を繰り返し実行する。
抹消画像が指定された場合(S327でYES)、CPU60は、図33に示すように、指定された抹消画像に関連付けられている画像IDと登録の抹消を指示する抹消指示とを、蓄積DBサーバ3及び検索DBサーバ3夫々へ送信し(S328)、登録抹消処理を終了する。
画像削除処理を実行する蓄積DBサーバ2のCPU20は、入力側端末機6から画像ID及び抹消指示を受信したか否かを判定して(S329)、まだ受信していない場合は(S329でNO)、S329の処理を繰り返し実行する。
入力側端末機6から画像ID及び抹消指示を受信した場合(S329でYES)、CPU20は、蓄積管理テーブル91を参照して、S329で受信した画像IDを有する蓄積画像を削除し(S330)、S329で受信した画像IDに関連付けて蓄積管理テーブル91に登録されている蓄積画像のアドレス及びファイル名を、無効な値(例えば“0”)に更新して(S331)、処理をS329へ戻す。
S330及びS331の処理は短時間で容易に実行可能であり、CPU20に掛かる負荷は軽い。なお、S330及びS331の処理の代わりに、S329で受信した画像IDに関連付けて無効情報を登録し、S330及びS331の処理は夜間、休日等に実行する構成でもよい。
蓄積管理テーブル91において無効な値に関連付けられている画像IDは、欠番にしてもよく、後に再利用してもよいが、再利用する場合は、蓄積DBサーバ2と特徴抽出サーバ4とで夫々発行される画像IDに齟齬が生じないようにする必要がある(例えば蓄積DBサーバ2と特徴抽出サーバ4とで夫々画像IDを発行する代わりに、画像ID発行用のサーバを別途設けて、ここで画像IDを管理する)。
図33に示す登録無効化処理を実行する検索DBサーバ3のCPU30は、入力側端末機6から画像ID及び抹消指示を受信したか否かを判定して(S332)、まだ受信していない場合は(S332でNO)、S332の処理を繰り返し実行する。
入力側端末機6から画像ID及び抹消指示を受信した場合(S332でYES)、CPU20は、特徴管理テーブル931〜93Nを夫々参照して、S332で受信した画像IDに無効情報を付与して(S333)、処理をS329へ戻す。S331におけるCPU20は無効付与手段として機能し、S332で受信した画像IDに関連付けて特徴管理テーブル931〜93Nの何れかに登録されている有効情報を無効情報に更新する。
S333の処理は短時間で容易に実行可能であり、しかも、キー管理テーブル921〜92Nを更新する必要はないため、CPU30に掛かる負荷は軽く、各種管理テーブルがロックされる時間は短いか、そもそもロックされない。
次に、画像の検索時の手順について説明する。
図35は、検索DBサーバ3で実行されるDB側送信処理の手順を示すフローチャートである。
本実施の形態のDB側送信処理は、図22に示す実施の形態1のDB側送信処理に相当し、S341及びS343の処理は、図22に示すS183及びS184の処理と略同様である。
検索実行サーバ5からテーブル要求を受信した場合(S341でYES)、検索DBサーバ3のCPU30は、1個目〜N個目の特徴管理テーブル931〜93Nから無効情報が格納されているレコードを一時的に排除してなる特徴管理テーブル931〜93Nを生成し(S342)、生成した特徴管理テーブル931〜93Nと、1個目〜N個目のキー管理テーブル921〜92Nと情報管理テーブル94とを読み出して検索実行サーバ5へ送信し(S343)、処理をS341へ戻す。
この結果、検索実行サーバ5では、無効情報に関連付けられている画像IDが投票の対象になることはない。なお、無効情報が格納されているレコードを検索実行サーバ5のCPU50が排除する構成でもよい。
最後に、特徴管理テーブル931〜93Nにおいて無効情報が格納されているレコードの処分について説明する(不図示)。
まず、特徴管理テーブル931〜93Nにおいて無効情報に関連付けられているインデックスキーに一致するインデックスキーをキー管理テーブル921〜92Nにて特定し、特定されたインデックスキーに関連付けられている枚数情報を“1”デクリメントする。この結果として枚数情報が“0”に達したインデックスキーに関連付けられている特徴量は、既に削除された蓄積画像のみが有していた特徴量であるため、この特徴量を特徴未格納情報に変更する。
このようにして特徴未格納情報に関連付けられたインデックスキーは、例えば図13に示すキー管理格納処理のS98の処理で再利用される。また、画像の登録を抹消することによって生じた未使用のインデックスキーを、キー管理テーブル921〜92N以外のテーブルで管理する必要がないため、各種管理テーブル間に矛盾が生じ難い。
なお、特徴管理テーブル931〜93Nに枚数情報が登録されていない場合(例えば実施の形態1の場合)であっても、無効情報に関連付けられているインデックスキーに一致するインデックスキーが、有効情報が格納されているレコードに格納されているか否かを判定し、格納されていないときに、キー管理テーブル921〜92Nを更新してこのインデックスキーを再利用可能にすればよい。
キー管理テーブル921〜92Nの更新完了後、特徴管理テーブル931〜93Nにおいて無効情報が格納されているレコードを完全に削除する。
その他、実施の形態1,2に対応する部分には同一符号を付してそれらの説明を省略する。
本発明の実施の形態1に係る画像検索装置の全体的な構成を示す模式図である。 本発明の実施の形態1に係る画像検索装置が備える蓄積DBサーバ及び検索DBサーバ夫々の構成を示すブロック図である。 本発明の実施の形態1に係る画像検索装置が備える特徴抽出サーバ及び入力側端末機夫々の構成を示すブロック図である。 本発明の実施の形態1に係る画像検索装置が備える検索実行サーバ及び出力側端末機夫々の構成を示すブロック図である。 本発明の実施の形態1に係る画像検索装置で実行される画像読込処理、蓄積側受信処理及び抽出側受信処理夫々の手順を示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される蓄積実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される特徴抽出処理手順のサブルーチン及び登録側受信処理の手順を示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行されるテーブル管理処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される登録実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される登録実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される登録実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される特徴管理格納処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行されるキー管理格納処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置の特徴管理テーブルを説明する模式図である。 本発明の実施の形態1に係る画像検索装置で実行されるマッチングを説明する模式図である。 本発明の実施の形態1に係る画像検索装置のキー管理テーブルを説明する模式図である。 本発明の実施の形態1に係る画像検索装置の結果テーブルを説明する模式図である。 本発明の実施の形態1に係る画像検索装置で実行される併合実行処理の手順を示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される併合実行処理の手順を示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される画像表示処理及び蓄積画像送信処理夫々の手順を示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される画像表示処理、結果送信処理及び類似画像送信処理夫々の手順を示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される画像検索処理手順のサブルーチン及びDB側送信処理の手順を示すフローチャートである 本発明の実施の形態1に係る画像検索装置で実行される画像検索処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行されるマッチング実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態1に係る画像検索装置で実行される画像絞込処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態2に係る画像検索装置で実行される登録実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態2に係る画像検索装置で実行される登録実行処理手順のサブルーチンを示すフローチャートである。 本発明の実施の形態2に係る画像検索装置のキー管理テーブルを説明する模式図である。 本発明の実施の形態2に係る画像検索装置で実行されるマッチング実行処理手順のサブルーチン及び画像表示処理の手順を示すフローチャートである。 本発明の実施の形態2に係る画像検索装置で実行される画像表示処理及び蓄積画像送信処理夫々の手順を示すフローチャートである。る。 本発明の実施の形態2に係る画像検索装置の結果テーブルを説明する模式図である。 本発明の実施の形態3に係る画像検索装置で実行される登録抹消処理及び蓄積画像送信処理夫々の手順を示すフローチャートである。 本発明の実施の形態3に係る画像検索装置で実行される登録抹消処理、画像削除処理及び登録無効化処理夫々の手順を示すフローチャートである。 本発明の実施の形態3に係る画像検索装置の特徴管理テーブルを説明する模式図である。 本発明の実施の形態3に係る画像検索装置で実行されるDB側送信処理の手順を示すフローチャートである
符号の説明
1 画像検索装置
2 蓄積DBサーバ(計算機)
20,30,40,50,60,70 CPU(演算部)
3 検索DBサーバ(計算機)
4 特徴抽出サーバ(計算機)
5 検索実行サーバ(計算機)
6 入力側端末機(計算機)
7 出力側端末機(計算機)
73 表示部
90 蓄積部
91 蓄積管理テーブル(リレーショナル・データベース)
92,921,…,92N キー管理テーブル(リレーショナル・データベース)
93,931,…,93N 特徴管理テーブル(リレーショナル・データベース)

Claims (11)

  1. 指定された画像に類似する画像を、リレーショナル・データベースを用いて検索する検索手段を備える画像検索装置において、
    前記リレーショナル・データベースは、
    画像を蓄積する蓄積部に蓄積されている画像、及び該画像を識別する識別情報が関連付けられている蓄積管理テーブルと、
    画像の特徴を数値的に示す特徴量、及び該特徴量よりも情報量が少ないインデックスキーが関連付けられているキー管理テーブルと、
    識別情報、及び該識別情報を有する画像の特徴量に対応するインデックスキーが関連付けられている特徴管理テーブルと
    を有し、
    前記検索手段は、
    前記指定された画像の特徴量に対応するインデックスキーと、前記蓄積部に蓄積されている画像の特徴量に対応するインデックスキーとを用いて、前記指定された画像に類似する画像を検索するようにしてあり、
    前記蓄積管理テーブル、前記キー管理テーブル、及び/又は前記特徴管理テーブルを参照して、前記指定された画像の特徴量に対応するインデックスキーを探し出す特徴キー探索手段と、
    前記特徴管理テーブルを参照して、前記特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて、前記指定された画像と前記蓄積部に蓄積されている画像との類似度を算出する類似度算出手段と、
    該類似度算出手段が算出した類似度の高低に基づいて、前記指定された画像に類似する画像の識別情報を選択する画像選択手段と、
    前記蓄積管理テーブルを参照して、前記画像選択手段が選択した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得して、取得した画像を検索結果として、前記検索手段による検索結果を表示する表示部へ出力する結果出力手段と
    を有し、
    前記リレーショナル・データベースに画像を登録する画像登録手段を更に備え、
    該画像登録手段は、
    前記リレーショナル・データベースに登録すべき画像を前記蓄積部に蓄積させる蓄積制御手段と、
    前記画像に基づいて、該画像の特徴量を算出する特徴算出手段と、
    前記画像に対して識別情報を発行する情報発行手段と、
    該情報発行手段が発行した識別情報、及び前記蓄積制御手段が前記蓄積部に蓄積した画像を関連付けて前記蓄積管理テーブルに登録する蓄積管理登録手段と、
    前記キー管理テーブルを参照し、前記特徴算出手段が算出した特徴量に関連付けてインデックスキーが既に登録されているか否かを判定する登録判定手段と、
    該登録判定手段が否と判定した場合、前記特徴量に対し、該特徴量よりも情報量が少ないインデックスキーを発行するキー発行手段と、
    該キー発行手段が発行したインデックスキー、及び前記特徴量を関連付けて前記キー管理テーブルに登録するキー管理登録手段と、
    前記識別情報、及び前記特徴量に関連付けて前記キー管理テーブルに登録されているインデックスキーを関連付けて前記特徴管理テーブルに登録する特徴管理登録手段と
    を有し、
    前記特徴管理テーブルの各レコードには、識別情報を格納する識別情報フィールドと、互いに異なるフィールド値が付与されており、夫々インデックスキーを格納するM(Mは2以上の自然数)個のキーフィールドとが関連付けて設けてあり、
    前記特徴管理登録手段は、
    インデックスキーをフィールド値に対応させるハッシュ関数、及び前記特徴管理テーブルに登録すべきインデックスキーに基づいて算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドに、前記インデックスキーを格納する手段と、
    互いにハッシュ値が等しい前記インデックスキーが複数存在する場合は、前記インデックスキー夫々を、異なるレコードのキーフィールドに格納する手段と、
    インデックスキーが格納されているキーフィールド及び格納されていないキーフィールドを有するレコードに関し、インデックスキーが格納されていないキーフィールドに、インデックスキーが格納されていないことを示すキー未格納情報を格納する手段と
    を有し、
    前記類似度算出手段は、
    前記ハッシュ関数、及び前記特徴キー探索手段が探し出したインデックスキーに基づいて算出されたハッシュ値に基づいて、前記特徴管理テーブルの前記ハッシュ値に等しいフィールド値が付与されているキーフィールドを特定する手段と、
    該手段が特定したキーフィールドに格納されているインデックスキーの内の前記特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて類似度を算出する手段と
    を有することを特徴とする画像検索装置。
  2. 各インデックスキーは、少なくとも前記類似度算出手段として機能する演算部が1つの命令で演算可能なデータ長を有することを特徴とする請求項に記載の画像検索装置。
  3. 少なくともキー管理テーブル及び特徴管理テーブルの組が複数設けられており、
    一の組のキー管理テーブル及び特徴管理テーブルを用いて、前記特徴キー探索手段がインデックスキーを探索し、前記類似度算出手段が類似度を算出するようにしてあり、
    前記検索手段は、前記一の組のキー管理テーブルを参照して、前記指定された画像の特徴量に対応するインデックスキーに基づいて前記指定された画像の特徴量を探し出す手段を更に有し、
    該手段が探し出した前記指定された画像の特徴量、及び他の組のキー管理テーブル及び特徴管理テーブルを用いて、前記特徴キー探索手段がインデックスキーを探索し、前記類似度算出手段が類似度を算出するようにしてあることを特徴とする請求項又はに記載の画像検索装置。
  4. 各レコードのキーフィールドに付与されるフィールド値として、“0”以上“M−1”以下の整数を用いるようにしてあり、
    各インデックスキーは、整数を用いてなり、
    前記特徴管理登録手段は、インデックスキーをMで除算した場合の剰余を求める前記ハッシュ関数、及び前記特徴管理テーブルに登録すべきインデックスキーに基づいて算出されたハッシュ値に等しいフィールド値が付与されているキーフィールドに、前記インデックスキーをMで除算した場合の商を格納するようにしてあることを特徴とする請求項1から3の何れかひとつに記載の画像検索装置。
  5. 前記特徴管理登録手段は、前記登録判定手段が登録されていると判定した場合、登録されているインデックスキーを優先的にキーフィールドに格納するようにしてあり、
    前記キー発行手段は、前記特徴管理登録手段が前記インデックスキーを格納した後で、インデックスキーが未格納であるキーフィールドのフィールド値に等しいハッシュ値を有するインデックスキーの内、該インデックスキーに関連付けて前記キー管理テーブルに特徴量が登録されていないインデックスキーを発行するようにしてあることを特徴とする請求項1から4の何れかひとつに記載の画像検索装置。
  6. インデックスキー並びに特徴量及び識別情報を新規登録すべきキー管理テーブル及び特徴管理テーブルの組と、新規登録が終了しているキー管理テーブル及び特徴管理テーブルの組とが設けられており、
    前記キー発行手段は、
    前記新規登録が終了しているキー管理テーブルを参照し、前記特徴算出手段が算出した特徴量に関連付けてインデックスキーが登録されているか否かを判定する手段と、
    該手段が登録されていると判定した場合、登録されているインデックスキーのハッシュ値に等しいハッシュ値を有するインデックスキーを発行する手段と
    を有し、
    前記画像登録手段は、
    前記新規登録すべきキー管理テーブル及び特徴管理テーブルに対する新規登録が終了した後で、前記新規登録すべきキー管理テーブルに登録されている特徴量に一致する特徴量が、前記新規登録が終了しているキー管理テーブルに登録されているか否かを判定する第1手段と、
    該第1手段が登録されていると判定した場合、前記新規登録すべきキー管理テーブルに登録されているインデックスキーを、前記特徴量に関連付けて前記新規登録が終了しているキー管理テーブルに登録されているインデックスキーに対応付ける第2手段と、
    前記第1手段が否と判定した場合、登録されていないと判定された特徴量に関連付けて前記新規登録すべきキー管理テーブルに登録されているインデックスキーのハッシュ値に等しいハッシュ値を有し、しかも、前記新規登録が終了しているキー管理テーブルにて特徴量に関連付けられていないインデックスキーを発行する第3手段と、
    該第3手段が発行したインデックスキー、及び前記特徴量を関連付けて前記新規登録が終了しているキー管理テーブルに登録する第4手段と、
    前記新規登録すべきキー管理テーブルに登録されているインデックスキーを、前記第3手段が発行したインデックスキーに対応付ける第5手段と、
    前記新規登録すべき特徴管理テーブルに登録されている識別情報及びインデックスキーを、該インデックスキーを前記第2手段及び/又は第5手段によって対応付けられているインデックスキーに変換して、前記新規登録が終了しているキー管理テーブル及び特徴管理テーブルに登録する第6手段と
    を更に有することを特徴とする請求項からの何れかひとつに記載の画像検索装置。
  7. 前記キー管理テーブルは、画像の特徴量又は画像に付属する付属情報と、少なくとも前記特徴量よりも情報量が少ないインデックスキーとが関連付けられるようにしてあり、
    前記検索手段は、
    前記蓄積管理テーブル、前記キー管理テーブル、及び/又は前記特徴管理テーブルを参照して、指定された付属情報に対応するインデックスキーを探し出す情報キー探索手段と、
    前記特徴管理テーブルを参照して、前記情報キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて、付属情報が一致していることを示す一致情報を付与する情報付与手段と
    を更に有し、
    前記結果出力手段は、前記蓄積管理テーブルを参照して、前記画像選択手段が選択した識別情報の内、前記情報付与手段が一致情報を付与した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得するようにしてあり、
    前記画像登録手段は、
    前記キー管理テーブルを参照し、前記リレーショナル・データベースに登録すべき画像の付属情報に関連付けてインデックスキーが既に登録されているか否かを判定する第2の登録判定手段と、
    該第2の登録判定手段が否と判定した場合、前記付属情報に対してインデックスキーを発行する第2のキー発行手段と、
    該キー発行手段が発行したインデックスキー、及び前記付属情報を関連付けて前記キー管理テーブルに登録する第2のキー管理登録手段と、
    前記情報発行手段が発行した識別情報、及び前記付属情報に関連付けて前記キー管理テーブルに登録されているインデックスキーを関連付けて前記特徴管理テーブルに登録する第2の特徴管理登録手段と
    を更に有することを特徴とする請求項からの何れかひとつに記載の画像検索装置。
  8. 互いに通信可能な複数の計算機を用いてなり、
    各計算機は、前記蓄積部、前記リレーショナル・データベースが有する各種管理テーブル、前記検索手段が有する各手段、前記表示部、前記画像登録手段が有する各手段の内の1つ以上を備えることを特徴とする請求項からの何れかひとつに記載の画像検索装置。
  9. 前記キー管理テーブルには、関連付けられているインデックスキー及び特徴量に更に関連付けて、該特徴量を有する画像の枚数を示す枚数情報が登録されるようにしてあり、
    前記キー管理登録手段は、インデックスキー及び特徴量を関連付けて前記キー管理テーブルに登録する際に、前記枚数情報を登録するようにしてあり、
    前記類似度算出手段は、
    前記特徴キー探索手段が探し出したインデックスキーの内、前記キー管理テーブルにて前記インデックスキーに一致するインデックスキーに関連付けられている枚数情報が示す枚数が所定枚数以上であり、且つ、前記枚数が最も少ないインデックスキーから枚数の少なさの順にインデックスキーを特定する手段と、
    前記特徴管理テーブルを参照して、前記手段が特定したインデックスキーに関連付けられている識別情報を特定し、特定した識別情報に関連付けて類似度を算出する手段と
    を有し、
    前記画像登録手段は、
    前記登録判定手段が、前記特徴算出手段が算出した特徴量に関連付けてインデックスキーが既に登録されていると判定した場合、登録されているインデックスキーに関連付けられている枚数情報を増加させる枚数計数手段
    を更に有することを特徴とする請求項からの何れかひとつに記載の画像検索装置。
  10. 前記画像選択手段は、
    暫定的に、前記類似度算出手段が算出した類似度が所定類似度以上に達した識別画像を選択する第1の手段と、
    最終的に、前記類似度算出手段が算出した類似度が最も高い識別画像から類似度の高さの順に識別画像を選択する第2の手段と
    を有し、
    前記結果出力手段は、
    前記第1の手段が選択した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得して、取得した画像を暫定的な検索結果として前記表示部へ出力する手段と、
    前記第2の手段が選択した識別情報に一致する識別情報に関連付けられている画像を前記蓄積部から取得して、取得した画像を最終的な検索結果として前記表示部へ出力する手段と
    を有することを特徴とする請求項からの何れかひとつに記載の画像検索装置。
  11. 前記リレーショナル・データベースから画像の登録を抹消する際、少なくとも前記特徴管理テーブルについて、登録を抹消すべき画像の識別情報に対し、無効を意味する無効情報を付与する無効付与手段を更に備え、
    前記類似度算出手段は、前記無効情報が付与されている識別情報を除く識別情報の中から、前記特徴キー探索手段が探し出したインデックスキーに一致するインデックスキーに関連付けられている識別情報を特定するようにしてあることを特徴とする請求項から1の何れかひとつに記載の画像検索装置。
JP2007341547A 2007-12-29 2007-12-29 画像検索装置 Active JP5142705B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007341547A JP5142705B2 (ja) 2007-12-29 2007-12-29 画像検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007341547A JP5142705B2 (ja) 2007-12-29 2007-12-29 画像検索装置

Publications (2)

Publication Number Publication Date
JP2009163466A JP2009163466A (ja) 2009-07-23
JP5142705B2 true JP5142705B2 (ja) 2013-02-13

Family

ID=40966022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007341547A Active JP5142705B2 (ja) 2007-12-29 2007-12-29 画像検索装置

Country Status (1)

Country Link
JP (1) JP5142705B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130133243A (ko) * 2011-01-07 2013-12-06 톰슨 라이센싱 온라인 저장을 위한 장치 및 방법, 송신 장치 및 방법, 및 수신 장치 및 방법
CN103903291B (zh) * 2012-12-24 2017-05-31 阿里巴巴集团控股有限公司 一种自动修改图片的方法和装置
JP6329840B2 (ja) * 2014-07-30 2018-05-23 東芝テック株式会社 認識辞書管理装置及びプログラム
JP6515457B2 (ja) * 2014-07-31 2019-05-22 株式会社リコー 情報処理システム、情報処理方法および情報処理装置
US11651037B2 (en) * 2019-12-20 2023-05-16 Rakuten Group, Inc. Efficient cross-modal retrieval via deep binary hashing and quantization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3143532B2 (ja) * 1992-11-30 2001-03-07 キヤノン株式会社 画像検索装置及び方法
JP2006185320A (ja) * 2004-12-28 2006-07-13 Ricoh Co Ltd 画像検索装置
EP1914680A4 (en) * 2005-03-01 2012-10-24 Univ Osaka Prefect Public Corp DOCUMENT / IMAGE PROCEDURE AND PROGRAM, AND DOCUMENT / IMAGE RECORDING AND SEARCH APPARATUS

Also Published As

Publication number Publication date
JP2009163466A (ja) 2009-07-23

Similar Documents

Publication Publication Date Title
US10025904B2 (en) Systems and methods for managing a master patient index including duplicate record detection
CN102918494B (zh) 基于数据库模型不可知论、纲要不可知论且工作负载不可知论的数据存储和存取模型的数据存储和/或检索方法和系统
US10572461B2 (en) Systems and methods for managing a master patient index including duplicate record detection
EP1074925B1 (en) Document management system, information processing apparatus, document management method and computer-readable recording medium
JP5142705B2 (ja) 画像検索装置
US7937652B2 (en) Document processing device, computer readable recording medium, and computer data signal
US20150106401A1 (en) System and methods for metadata management in content addressable storage
US20030225770A1 (en) Collaborative data cleansing
EP2013779A2 (en) Method, apparatus and computer-readabele medium to provide customized classification of documents in a file management system
CN107273977A (zh) 用于标识匹配的方法、系统和机器可读硬件存储装置
CN107148616A (zh) 用于分布式版本控制的高效注释系统
JP2009522677A (ja) ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス
CN103631842A (zh) 用于检测多列复合键列集合的方法和系统
JP5424798B2 (ja) メタデータ設定方法及びメタデータ設定システム、並びにプログラム
CN114880483A (zh) 一种元数据知识图谱构建方法、存储介质及系统
JP3140922B2 (ja) 設備管理システム
US11880392B2 (en) Systems and methods for associating data with a non-material concept
JP4011662B2 (ja) 電子ファイリング方法及び装置
TWI659320B (zh) 內容可索引之文件影像檔的建立方法及其索引方法
Golshanara Temporal Data Exchange and Repair
JP2023176448A (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
Chatterjee et al. A probabilistic approach to information retrieval in heterogeneous databases
CN117009588A (zh) 一种基于知识图谱的三维数据关联检索方法
JP2022050169A (ja) 情報処理システム及びプログラム
GB2493962A (en) Database record repair

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121030

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121120

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5142705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150