複数の画像の間で対応点を抽出する際に、局所画像特徴量が用いられる。例えば、1つの被写体を異なる2つの視点から撮影して得た2枚の画像を用いれば、撮影した機材の焦点距離などの内部パラメータと呼ばれる装置固有の情報が与えられたときに、三角測量の原理で撮影場所から被写体までの距離を測定したり、被写体の大きさを推定したりできる。
このとき、被写体上のある点は、2つの画像上にそれぞれ投影され、2つの画像間で共通して観測される。このような2つの画像間で共通して観測される点(対応点)を検出するために、局所画像特徴量が用いられる。即ち、局所画像特徴量が一致する点が対応点であると判断する。
この局所画像特徴量を応用して、画像検索を実現できることが知られている。この画像検索技術では、複数の画像をデータベースに保存しておくとともに、それらすべての画像について、特徴点を抽出して、抽出した特徴点の局所画像特徴量を計算し、これらもデータベースに保存しておく。クエリ画像が入力されると、クエリ画像から特徴点を抽出し、それらの局所画像特徴量を算出する。そして、データベースに保存された複数の画像の各々について、クエリ画像に含まれる特徴点の局所画像特徴量と一致する局所画像特徴量を有する特徴点を対応点としてカウントし、その対応点の数が最も多い画像が、クエリ画像に最も近似した画像であると判断される。
さらに、この局所画像特徴量を用いた画像検索技術では、特徴点の位置情報も利用される。上述のように、局所画像特徴量を用いた画像検索技術では、データベース中の画像の中で、クエリ画像の特徴点と対応する特徴点を多く持つ画像をクエリ画像に近い画像と判断するが、このように局所画像特徴量の比較のみで対応点であると判断すると、実際には対応しないが偶然に局所画像特徴量が一致する点同士が対応点であると誤って判断されることになる。
このようなノイズによる誤判断を防ぐため、クエリ画像のある特徴点の局所画像特徴量とデータベース中の画像のある特徴点の局所画像特徴量とが一致するか否かのみではなく、クエリ画像の当該特徴点の位置とデータベース中の画像の当該特徴点の位置との幾何的射影関係を求めて、クエリ画像の当該特徴点がデータベース中の画像の当該特徴点に正しく射影されているかを判定し、その判定結果も合わせて、それらの特徴点が対応点であるかを判断する手法がある。
具体的には、被写体が紙面などの二次元平面であると仮定できる場合、次のようにして、局所画像特徴量が一致する特徴点同士について、それらの位置も一致しているか否かを判断する。まず、クエリ画像とデータベース中の画像との間で、局所画像特徴量が一致する特徴点の組をすべて検出する。そして、それらの複数の特徴点の組について、RANSAC法を使用して、クエリ画像の特徴点の位置をその特徴点と組になったデータベース中の画像の特徴点の位置に射影するホモグラフィ行列を計算する。
さらに、そのホモグラフィ行列によって、再度、データベース中の画像の特徴点と局所画像特徴量が一致すると判断されたクエリ画像の特徴点の位置を射影する。そして、その結果得られた位置が、クエリ画像の特徴点と局所画像特徴量が一致すると判断されたデータベース中の画像の特徴点の位置とどれだけずれているかを計算し(位置のマッチング)、その計算結果(マッチングスコア)に基づいて、最終的にそれらの特徴点が対応点であるか否かを判断する。
ところで、1つの画像から数百点の特徴点を抽出し、それぞれの点ごとの局所画像特徴量を算出し、さらに、他の画像の局所画像特徴量と比較すると、その演算に用いられるデータ量は膨大になり、大容量のメモリや高速なCPU、さらに大容量の保存用ストレージが必要となる。局所画像特徴量として一般に知られているSIFT特徴量の場合には、各特徴点の情報を表す特徴点データとして、局所画像特徴量の他に、スケール情報、位置情報、主軸情報等の付随情報が含まれる。これらをすべての特徴点について足し合わせると、例えば、1枚の画像に800点の特徴点が含まれるとすると、1枚あたり約422Kバイトのデータ量になる。このため、例えば10,000枚の画像を検索対象に使用すると、扱うデータの量は(422Kバイト×10,000)約4.2Gバイトにもなる。
このような課題に対して、各特徴点の局所画像特徴量を圧縮することで、対応点の抽出を高速化する技術として、ORB、brisk、CARD等の技術が提案されており、本願発明者らもそのような技術に関して特許出願をしている(特許文献1)。これらの技術は、各特徴点の局所画像特徴量を実数ベクトルではなく、二値のベクトルで表現することによって、局所画像特徴量の圧縮を実現している。また、従来とは異なる計算手法を採用することで、局所画像特徴量の高速な算出を実現している。
しかしながら、このような高速計算が可能でかつサイズの小さい局所画像特徴量を用いても、検索のために必要なデータ量及び計算量の増大を抑えることは困難である。この理由は以下のとおりである。例えば、10,000枚の画像を検索対象とする場合、その画像から抽出される特徴点の数が平均800点であるとすると、8,000,000個の特徴量の中からクエリ画像に含まれる800点の特徴点の特徴量の各々に最も近いものを検索する必要がある。検索の際には、この8,000,000個の特徴量をメモリ上に保持する必要がある。また、8,000,000個の特徴点の中から、最も近い特徴点を効率よく検索するためには、検索のための検索木などを構築する必要があり、そのための計算コストも無視できない。
一方で、局所画像特徴量をそのまま用いるのではなく、1枚の画像に含まれる複数の局所画像特徴量から、当該画像の全体の特徴を示す1つの画像特徴量(以下、「全体画像特徴量」ともいう。)を生成する手法も提案されている。この手法によれば、1つの画像ごとに1つの特徴量が生成されるため、これを画像検索に適応すると、例えば、10,000枚の画像を検索対象とする場合、10,000個の画像の中から、全体画像特徴量に最も近い全体画像特徴量を持つものを探索することになり、上述の局所画像特徴量をそのまま用いる手法と比較すると、検索対象及び検索回数を抑えることができる。
なお、本発明に関連する先行技術として、以下の先行技術文献がある。
しかしながら、全体画像特徴量を用いる手法では、局所画像特徴量を用いる手法と比較して、精度が低いことが知られている。近年、比較的精度の高い全体画像特徴量を生成する技術として、VLAD(Vector of Locally Aggregated Descriptors)と呼ばれる手法が提案されているが、それでも局所画像特徴量をそのまま用いる手法と比較すると、精度が劣る。
以上のように、局所画像特徴量だけを用いる場合は、検索精度は高いが計算コストやメモリ使用量が大きく、全体画像特徴量を用いる場合は、計算コストやメモリ使用量が抑えられるという長所はあるが、検索精度が低くなるという問題がある。
また、全体画像特徴量を用いる場合は、画像に含まれる特徴点がすべて集約されて一つの特徴量になってしまうため、後段の処理で、マッチングした特徴点同士の位置関係を利用した検索の確認作業ができないという問題もある。
本願発明は、上記の問題点に鑑みてなされたものであり、画像検索の精度を維持しながら、計算コストやメモリ使用量を低減させることが可能な画像検索システムを提供することを目的とする。
本発明の第1の態様は、画像検索システムであり、この画像検索システムは、クエリ画像中の複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を生成する局所画像特徴量群生成部と、前記局所画像特徴量群から、前記クエリ画像の全体の特徴を示す全体画像特徴量を生成する全体画像特徴量生成部と、複数の参照画像の各々について、複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を保存する局所画像特徴量群保存部と、前記複数の参照画像の各々について、各参照画像の全体の特徴を示す全体画像特徴量を保存する全体画像特徴量保存部と、前記クエリ画像の全体画像特徴量と前記全体画像特徴量保存部に保存された前記参照画像の全体画像特徴量との比較に基づいて、前記参照画像の中から、前記クエリ画像に対応する対応画像の候補となる候補画像を決定する一次画像検索部と、前記クエリ画像の局所画像特徴量と前記局所画像特徴量群保存部に保存された前記候補画像の局所画像特徴量との比較に基づいて、前記候補画像の中から、前記対応画像を決定する二次画像検索部とを備えた構成を有している。
この構成により、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を決定し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行うので、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができる。
本発明の第2の態様は、前記一次画像検索部は、前記クエリ画像の全体画像特徴量と距離の近い全体画像特徴量を有する参照画像を、前記候補画像として決定することを特徴とする第1の態様の画像検索システムである。この構成により、全体画像特徴量を用いて適切に候補画像を決定できる。
本発明の第3の態様は、前記二次画像検索部は、前記クエリ画像の局所画像特徴量にマッチングする前記局所特徴量を多く有する前記候補画像を前記対応画像として決定することを特徴とする第1又は第2の態様の画像検索システムである。この構成により、局所画像特徴量を用いて精度の高い検出を行うことができる。
本発明の第4の態様は、前記複数の参照画像を保存する参照画像保存部をさらに備え、前記画像検索システムは、前記参照画像保存部に保存された参照画像から、前記対応画像を読み出すことを特徴とする第1ないし第3のいずれかの態様の画像検索システムである。この構成により、クエリ画像に対応する参照画像が得られる。
本発明の第5の態様は、前記クエリ画像及び前記参照画像の全体画像特徴量は、それぞれ前記クエリ画像及び前記参照画像の複数の前記局所画像特徴量をヒストグラムにすることにより得られることを特徴とする。第1ないし第4のいずれかの態様の画像検索システムである。この構成により、クエリ画像及び参照画像の全体の特徴を好適に示す全体画像特徴量が得られる。具体的には、全体画像特徴量は、BAG−OF−WORDSであってよい。
本発明の第6の態様は、前記クエリ画像及び前記参照画像の全体画像特徴量は、それぞれ前記クエリ画像及び前記参照画像の複数の前記局所画像特徴量をガウス混合モデルでクラスタリングすることにより得られることを特徴とする第1ないし第4のいずれかの態様の画像検索システムである。この構成によっても、クエリ画像及び参照画像の全体の特徴を好適に示す全体画像特徴量が得られる。具体的には、全体画像特徴量は、フィッシャーベクトルであってよい。
本発明の第7の態様は、前記クエリ画像及び前記参照画像の全体画像特徴量は、それぞれ前記クエリ画像及び前記参照画像の複数の前記局所画像特徴量をk−means法でクラスタリングすることにより得られることを特徴とする第1ないし第4のいずれかの態様の画像検索システムである。この構成によっても、クエリ画像及び参照画像の全体の特徴を好適に示す全体画像特徴量が得られる。具体的には、全体画像特徴量は、VLAD特徴量であってよい。
本発明の第8の態様は、前記局所画像特徴量群生成部は、実数ベクトルで構成された局所画像特徴量をバイナリコードに変換して、前記局所画像特徴量群を生成し、前記局所画像特徴量群保存部は、バイナリコードに変換された局所画像特徴量からなる局所画像特徴量群を保存することを特徴とする第1ないし第7のいずれかの態様の画像検索システムである。この構成により、局所画像特徴量による選択画像の決定を高速化できる。
本発明の第9の態様は、前記全体画像特徴量群生成部は、実数ベクトルで構成された全体画像特徴量をバイナリコードに変換して、前記全体画像特徴量を生成し、前記全体画像特徴量群保存部は、バイナリコードに変換された全体画像特徴量を保存することを特徴とする第1ないし第8のいずれかの態様の画像検索システムである。この構成により、全体画像特徴量による対応画像の決定を高速化できる。
本発明の第10の態様は、前記二次画像検索部は、前記候補画像の局所画像特徴量群と、前記クエリ画像の局所画像特徴量群との間で局所画像特徴量が類似する特徴点の組の個数を数え上げ、前記組の個数に基づいて前記対応画像を決定することを特徴とする第1ないし第9のいずれかの態様の画像検索システムである。この構成により、局所画像特徴量を用いて精度の高い対応画像の決定を行うことができる。
本発明の第11の態様は、前記二次画像検索部は、前記候補画像の局所画像特徴量群と、前記クエリ画像の局所画像特徴量群との類似する局所画像特徴量の組の個数を数え上げ、前記組の個数に基づいて前記候補画像の中から選択画像を選択し、前記選択画像と前記クエリ画像との間で画像上での位置が特定の射影関係にある特徴点の組の個数を数え上げ、前記特定の射影関係にある特徴点の組の個数が最も多い選択画像を前記対応画像として決定することを特徴とする第1ないし第9のいずれかの態様の画像検索システムである。この構成により、アウトライアを除去することで精度の高い対応画像の決定を行うことができる。
本発明の第12の態様は、画像検索装置であって、この画像検索装置は、クエリ画像中の複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を生成する局所画像特徴量群生成部と、前記局所画像特徴量群から、前記クエリ画像の全体の特徴を示す全体画像特徴量を生成する全体画像特徴量生成部と、複数の参照画像の各々について、複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を保存する局所画像特徴量群保存部と、前記複数の参照画像の各々について、各参照画像の全体の特徴を示す全体画像特徴量を保存する全体画像特徴量保存部と、前記クエリ画像の全体画像特徴量と前記全体画像特徴量保存部に保存された前記参照画像の全体画像特徴量との比較に基づいて、前記参照画像の中から、前記クエリ画像に対応する対応画像の候補となる候補画像を決定する一次画像検索部と、前記クエリ画像の局所画像特徴量と前記局所画像特徴量群保存部に保存された前記候補画像の局所画像特徴量との比較に基づいて、前記候補画像の中から、前記対応画像を決定する二次画像検索部とを備えた構成を有している。
この構成によっても、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を決定し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行うので、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができる。
本発明の第13の態様は、検索サーバ装置であって、この検索サーバ装置は、クエリ画像中の複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群と、前記クエリ画像の全体の特徴を示す全体画像特徴量とを取得するクエリ情報取得部と、複数の参照画像の各々について、複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を保存する局所画像特徴量群保存部と、前記複数の参照画像の各々について、各参照画像の全体の特徴を示す全体画像特徴量を保存する全体画像特徴量保存部と、前記クエリ画像の全体画像特徴量と前記全体画像特徴量保存部に保存された前記参照画像の全体画像特徴量との比較に基づいて、前記参照画像の中から、前記クエリ画像に対応する対応画像の候補となる候補画像を決定する一次画像検索部と、前記クエリ画像の局所画像特徴量と前記局所画像特徴量群保存部に保存された前記候補画像の局所画像特徴量との比較に基づいて、前記候補画像の中から、前記対応画像を決定する二次画像検索部とを備えた構成を有している。
この構成によっても、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を決定し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行うので、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができる。
本発明の第14の態様は、画像検索方法であって、この画像検索方法は、クエリ画像中の複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群及び前記クエリ画像の全体の特徴を示す全体画像特徴量を取得するクエリ情報取得ステップと、複数の参照画像の各々について、複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を保存する局所画像特徴量群保存ステップと、前記複数の参照画像の各々について、各参照画像の全体の特徴を示す全体画像特徴量を保存する全体画像特徴量保存ステップと、前記クエリ画像の全体画像特徴量と前記全体画像特徴量保存部に保存された前記参照画像の全体画像特徴量との比較に基づいて、前記参照画像の中から、前記クエリ画像に対応する対応画像の候補となる候補画像を決定する一次画像検索ステップと、前記クエリ画像の局所画像特徴量と前記局所画像特徴量群保存部に保存された前記候補画像の局所画像特徴量との比較に基づいて、前記候補画像の中から、前記対応画像を決定する二次画像検索ステップとを含む構成を有している。
この構成によっても、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を決定し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行うので、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができる。
本発明の第15の態様は、画像検索プログラムであって、この画像検索プログラムは、コンピュータを、クエリ画像中の複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群及び前記クエリ画像の全体の特徴を示す全体画像特徴量を取得するクエリ情報取得部、複数の参照画像の各々について、複数の特徴点の各々の局所画像特徴量からなる局所画像特徴量群を保存する局所画像特徴量群保存部、前記複数の参照画像の各々について、各参照画像の全体の特徴を示す全体画像特徴量を保存する全体画像特徴量保存部、前記クエリ画像の全体画像特徴量と前記全体画像特徴量保存部に保存された前記参照画像の全体画像特徴量との比較に基づいて、前記参照画像の中から、前記クエリ画像に対応する対応画像の候補となる候補画像を決定する一次画像検索部、及び前記クエリ画像の局所画像特徴量と前記局所画像特徴量群保存部に保存された前記候補画像の局所画像特徴量との比較に基づいて、前記候補画像の中から、前記対応画像を決定する二次画像検索部として機能させる構成を有している。
この構成によっても、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を決定し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行うので、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができる。
本発明によれば、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を決定し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行うので、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができる。
以下、本発明の実施の形態の画像検索システムについて、図面を参照しながら説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
図1は、本発明の実施の形態の画像検索システムの構成を示す図である。画像検索システム100は、クエリ画像処理装置10と、検索サーバ装置20とを備えている。クエリ画像処理装置10と検索サーバ装置20とは、ネットワークNWを介して通信可能に接続されている。ネットワークNWの一部は無線であってよい。クエリ画像処理装置10は携帯情報端末であってよく、アプリケーションプログラムが実行されることで図1に示す構成が実現されてもよい。また、検索サーバ装置20についても、プログラムが実行されることで、図1に示す構成が実現されてよい。
クエリ画像装置10は、検索したい画像を撮影して、それをクエリ画像として検索サーバ装置20に送信するとともに、検索サーバ装置20から当該クエリ画像に対応する対応画像及び/又は対応画像に関連付けられた関連情報を取得する装置である。検索サーバ装置20は、クエリ画像処理装置10からクエリ画像を受信すると、そのクエリ画像に含まれる被写体に対応する被写体を含む対応画像を検索して、検索された対応画像及び/又は検索された対応画像に関連付けられた関連情報を当該クエリ画像に関する情報としてクエリ画像処理装置10に送信する。
検索画像システム100は、検索サーバ装置20に保存する画像及びそれに付随させる関連情報の如何によって様々な応用が可能である。本実施の形態では、画像検索システム100がポスターを検索するためのシステムとして応用される例を説明する。即ち、検索サーバ装置20には、参照画像として複数のポスターの画像が保存されており、かつ各ポスターの画像には当該ポスターに関連する関連情報が関連付けられている。
ユーザは、クエリ画像処理装置10にてポスター画像を撮影して、その画像をクエリ画像として検索サーバ装置20に送信すると、検索サーバ装置20では、当該撮影されたポスターの画像に対応する画像が検索され、検索された画像及びそれに関連付けられた関連情報がクエリ画像処理装置10に返信される。
なお、画像検索システム100の応用例はこれに限られない。例えば、検索サーバ20に大量の書籍の表表紙の画像を参照画像として保存しておき、各保存画像に関連情報として各書籍のユーザレビュー、購入のための情報、関連する他の書籍等の情報を付随させておくことで、画像検索システム100を書籍検索システムとして応用できる。また、検索サーバ装置20に、参照画像として各観光地に特有の建造物等の画像を保存し、かつ、関連情報としてその建造物の解説を保存しておくことで、画像検索システム100を観光地案内システムとして応用できる。さらに、検索サーバ20に、参照画像として野鳥の画像を保存し、かつ、関連情報としてその野鳥の解説を記載したウェブページのURLを保存しておくことで、画像検索システム100を野鳥検索システムとして応用できる。
クエリ画像処理装置10は、撮像部11と、局所画像特徴量群生成部12と、全体画像特徴量生成部13と、通信部14とを備えている。撮像部11は、光学系、撮像素子、信号処理回路等からなる一般的なカメラユニットである。撮像部11は、光学系を通して撮像素子で被写体を撮影し、信号処理回路で信号処理を行い、局所画像特徴量群生成部12に画像信号(以下、単に「画像」という。)を出力する。
図2は、局所画像特徴量群生成部12の構成を示すブロック図である。局所画像特徴量群生成部12は、特徴点検出部121と、局所画像特徴量抽出部122と、バイナリ変換部123とを備えている。撮像部11による撮影によって生成された画像は、特徴点検出部121に入力される。
特徴点検出部121は、入力画像から特徴点を検出する。特徴点検出部121は、画像からエッジを抽出してエッジ画像を生成し、そのエッジ画像から特徴点を検出する。一般的には、1つの画像からは複数の特徴点が検出される。特徴点を検出するアルゴリズムとして、既存の任意のものを採用できる。特徴点検出部121は、検出したすべての特徴点について、特徴点を識別する情報、画像内での特徴点の位置情報を含む特徴点情報を局所画像特徴量抽出部122に出力する。なお、特徴点の位置の情報は、特徴点のX座標及びY座標であり、X座標及びY座標の値は入力画像の1画素を1単位とする。
局所画像特徴量抽出部122は、特徴点検出部121にて検出された複数の特徴点の各々の局所画像特徴量を抽出する。局所画像特徴量を抽出する方法としては、既知の技術を用いることが可能であり、例えば、局所画像特徴量を128次元のベクトルとして算出する方法として、SIFT特徴量を利用する方法(David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp.91-110.参照)などを用いることができる。局所画像特徴量抽出部122において、局所画像特徴量は、単精度実数のベクトルとして求められる。局所画像特徴量抽出部122は、各特徴点について、その識別情報とともに、抽出された複数の局所画像特徴量をバイナリ変換部123及び全体画像特徴量生成部13に出力する。
バイナリ変換部123は、検出されたすべての特徴点について、それらの局所画像特徴量をバイナリコードに変換する。局所画像特徴量抽出部122にて抽出された局所画像特徴量は128次元のベクトルv∈R
128であるので、バイナリ変換部123は、この局所画像特徴量を下式(1)でバイナリコードに変換する。
但し、式(1)において、dは変換後のバイナリコードのサイズ(即ちビット数)であり、sgn関数は、下式(2)で与えられる。
また、ベクトルw
kは、128次元における半径1の超球上の点から、正規分布に従ってランダムサンプリングをして得られるベクトルである。w
k(k=1,・・・,d)は、128行d列の行列として表現できる。本実施の形態では、バイナリコードのビット長を128ビットとし、即ちd=128とする。バイナリ変換部123は、複数の特徴点の各々について、その特徴点情報とともに、バイナリコードに変換された局所画像特徴量を全体画像特徴量生成部13及び通信部14に出力する。この1つの画像に含まれる複数の特徴点についての複数の局所画像特徴量を「局所画像特徴量群」という。
図3は、全体画像特徴量生成部13の構成を示すブロック図である。全体画像特徴量生成部13は、VLAD特徴量生成部131と、バイナリ変換部132とを備えている。VLAD特徴量生成部131は、1枚の画像から得られる局所画像特徴量をすべて用いて、1つの全体画像特徴量を生成する。本実施の形態では、VLAD特徴量生成部131にて全体画像特徴量としてVLADと呼ばれる特徴量を生成する。しかし、本発明において、全体画像特徴量として必ずしもVLADを採用しなくてもよい。
全体画像特徴量生成部13は、あらかじめ、多数の画像を用いて生成したクラスタ情報を生成する。このために、全体画像特徴量生成部13は、多数の画像から大量の局所画像特徴量を生成し、それをk−means法を用いてクラスタリングする。本実施の形態では、k−means法を用いるにあたって、あらかじめ決めなければならないクラスタ数を64とする。その結果、大量の局所画像特徴量を代表する64個のセントロイドc1,・・・c64が得られる。ここで、ckは局所画像特徴量と同じ次元、即ち128次元となる。全体画像特徴量生成部13は、これをクラスタ情報として使用する。
全体画像特徴量生成部13は、クエリ画像から得られた局所画像特徴量群に含まれる局所画像特徴量の各々に下式(3)の計算を適用して、VLAD特徴量を算出する。VLAD特徴量は、64×128次元のベクトルVとなる。ベクトルVは、V=[V
1,・・・,V
64]と表現され、ここで、V
iの次元は128次元である。このV
iをVのサブベクトルと呼ぶ。式(3)において、vは、局所画像特徴量群生成部12にてクエリ画像から生成された局所画像特徴量群に含まれる局所画像特徴量である。局所画像特徴量群に含まれる特徴量数をNとすると、1≦i≦Nとなる。
なお、式(3)のNN(v)=c
kは、セントロイド{c
1,c
2,…,c
k,…,c
64}の中でもc
kが最も近いようなvを意味する。VLAD特徴量生成部131は、生成したVALD特徴量をバイナリ変換部132に出力する。
バイナリ変換部132は、後述の一次画像検索手段の処理を高速化するため、VLAD特徴量生成部131にて生成されたVLAD特徴量を下式(4)によってバイナリコードに変換する。
ここで、b
iは変換後のバイナリコードであり、変換後のバイナリコードの長さを128ビットとすると、VLAD特徴量は、128次元の0あるいは1の要素を持つベクトルに変換される。Rは正規分布から発生させた乱数を要素に持つ128×128次元の行列である。O
iはオフセットベクトルである。オフセットベクトルO
iは、あらかじめ多数の画像から多数のVLAD特徴量を計算しておき、V=[V
1,・・・,V
64]のそれぞれのサブベクトルごとに平均を取ることで生成しておく。
バイナリ変換部132は、以上の処理によって、VLAD特徴量V=[V1,・・・,V64]をバイナリコードb=[b1,・・・,b64]に変換する。このバイナリコードbは、本実施の形態では、128×64=8192次元となり、従って8192次元の0又は1の要素からなるベクトルとなる。バイナリ変換部132は、このバイナリコードbを全体画像特徴量として、通信部14に出力する。
図1に戻って、通信部14は、ネットワークNWを介して、局所画像特徴量群生成部12で生成されたクリエ画像の局所画像特徴量群、及び全体画像特徴量生成部13で生成されたクエリ画像の全体画像特徴量、及び特徴点情報を含むクエリ情報を検索サーバ装置20に送信する。
なお、以上の撮像部11、局所画像特徴量群生成部12、全体画像特徴量生成部13、及び通信部14による一連の処理は、撮像部11でレリーズ操作(撮影操作)が行われたタイミングで、それによって生成された1つの画像について行ってもよいし、過去に撮像部11にて生成された画像が図示しないストレージに保存されており、ユーザが保存された画像を選択して指示することで、局所画像特徴量群生成部12、全体画像特徴量生成部13、及び通信部14による上述の処理がなされてもよい。また、撮像部11で連続的にプレビュー動画が生成され、そのプレビュー動画の各フレーム画像をクエリ画像として、局所画像特徴量群生成部12、全体画像特徴量生成部13、及び通信部14による上述の処理が順次なされてもよい。
次に、検索サーバ装置20について説明する。検索サーバ装置20は、参照画像のデータベースを構築するための構成として、局所画像特徴量群生成部21、全体画像特徴量生成部22、及び画像データベース23を備えている。画像データベース23は、複数の参照画像を保存する参照画像保存部231、複数の参照画像の各々の局所画像特徴量群を保存する局所画像特徴量群保存部232、複数の参照画像の各々の全体画像特徴量を保存する全体画像特徴量保存部233、及び参照画像の関連情報を保存する関連情報保存部234からなる。
局所画像特徴量群生成部21は、複数の参照画像の各々について、特徴点を検出して、各特徴点の局所画像特徴量からなる局所画像特徴量群を生成する。その構成は、図2を用いて説明したクエリ画像処理装置10の局所画像特徴量群生成部12の構成と同じである。局所画像特徴量群生成部21にて生成された複数の参照画像の各々の特徴点情報及び局所画像特徴量群は、全体画像特徴量生成部22に出力されるとともに、画像データベース23の局所画像特徴量群保存部232に保存される。なお、複数の参照画像は、通信部24を介して外部から取得されてよく、あるいは他の方法によって取得されてもよい。
全体画像特徴量生成部22は、局所画像特徴量群生成部21にて生成された局所画像特徴量群について、全体画像特徴量を生成する。その構成は、図3を用いて説明したクエリ画像処理装置10の全体画像特徴量生成部13の構成と同じである。全体画像特徴量生成部22にて生成された複数の参照画像の各々の全体画像特徴量は、画像データベース23の全体画像特徴量保存部233に保存される。
画像データベース23では、各参照画像について、その画像データ、局所画像特徴量群、全体画像特徴量、特徴点情報、及び関連情報のデータが関連付けられて記憶されている。なお、画像データ及び関連情報データは、別の保存手段に保存され、識別情報等によって画像データベース23に保存されたその他のデータと紐付けられていてもよい。
ここで、関連情報とは、画像検索の結果の1つとしてクエリ画像処理装置10に返信される情報である。本実施の形態の画像検索システム100は、上述のようにポスター画像を検索するものであり、関連情報としては、そのポスターによる告知の詳細内容ないし、そのような詳細内容を掲示したウェブサイトへのアクセス方法(URL等)が含まれる。即ち、クエリ画像処理装置10のユーザは、例えば、街中であるポスターを見かけたときに、そのポスターを撮影してその画像をクエリ画像として検索サーバ装置20に詳細内容をリクエストすると、検索サーバ装置20は、そのクエリ画像に対応する参照画像を検索して、検出された参照画像に関連付けられた関連情報をユーザに返信する。これによって、ユーザは、撮影したポスターの詳細内容を知ることができる。
検索サーバ装置20は、さらに画像検索を行うための構成として、通信部24、一次画像検索部25、及び二次画像検索部26を備えている。通信部24は、クエリ画像処理装置10から送信されてきたクエリ情報(局所画像特徴量群、全体画像特徴量、及び特徴点情報を含む)を受信する。
一次画像検索部25は、参照画像の中からクエリ画像に近しい画像を検索する。このために、一次画像検索部25は、全体画像特徴量保存部233を参照して、通信部24にて取得したクエリ画像の全体画像特徴量との相違が所定の閾値以下である全体画像特徴量を有する参照画像を候補画像として検索する。なお、上述のように本実施の形態では、クエリ画像及び参照画像の全体画像特徴量はいずれもバイナリコードである。
一次画像検索部25は、クエリ画像の全体画像特徴量(バイナリコード)と、すべての参照画像の各々の全体画像特徴量(バイナリコード)とのハミング距離を求めて、得られたハミング距離を昇順に並び替える。なお、仮に全体画像特徴量のみで判断すると、一次画像検索部25においてハミング距離が最も小さい参照画像がクエリ画像に似ている画像(検索すべき画像)と判定されることになる。サーバ検索装置20は、上述のように、すべての参照画像について、全体画像特徴量を保存しているのみではなく、局所画像特徴量も保存している。
そこで、本実施の形態の検索サーバ装置20は、全体画像特徴量のみで直ちにクエリ画像に最も似ている参照画像をそのクエリ画像の対応画像として決定するのではなく、参照画像のうち、クエリ画像との間の全体画像特徴量のハミング距離が小さい順から上位数件(本実施の形態では5件)を候補画像として選出し、これらの候補画像について、さらに局所画像特徴量を用いた精密な判断を行う。このために、一次画像検索部25は、昇順に並び替えられたハミング距離のリストから上位5件を候補画像として選出し、これらの候補画像を特定する情報を二次画像検索部26に出力する。
二次画像検索部26は、一次画像検索部25から一次画像検索の結果である候補画像の情報を取得して、それらの候補画像の局所画像特徴量群を局所画像特徴量群保存部232から読み出す。二次画像検索部26は、候補画像の中からクエリ画像に対応する対応画像を決定する。
図4は、二次画像検索部26の構成を示すブロック図である。二次画像検索部26は、比較マッチング部261、変換行列算出部262、及び射影判定部263を備えている。二次画像検索部26は、比較マッチング部261において、クエリ画像の局所画像特徴量群と、複数の候補画像の各々の局所画像特徴量群とを比較して、その一致度を求める。この一致度が最も高いものをクエリ画像に対応する対応画像であると決定することもできる。しかしながら、本実施の形態では、さらに、変換行列算出部262及び射影判定部263において、比較マッチング部261における比較マッチングの結果の正当性を確認することで、対応画像を決定する精度を向上させている。
まず、比較マッチング部261について説明する。比較マッチング部261は、通信部24にて受信したクエリ画像の局所画像特徴量群と、局所画像特徴量群保存部232に保存されているすべての候補画像の局所画像特徴量群に含まれる局所画像特徴量とを比較して、クエリ画像の局所画像特徴量群に含まれる局所画像特徴量の各々について、候補画像の局所画像特徴量群に含まれる局所画像特徴量のうち、最も距離の近い(すなわち、一致度が最も高い)ものを探索する。クエリ画像及び候補画像の局所画像特徴量はいずれも同じビット数にバイナリコード化されているので、それらのハミング距離を計算することで高速に一致度を計算できる。
比較マッチング部261は、特徴点の位置に関わらず、一致度が最も高い特徴点の組、換言すれば局所画像特徴量の差が最も小さい特徴点の組を対応点としてカウントする。こうすることで、クエリ画像のすべての特徴点がいずれかの候補画像のいずれかの特徴点と対応すると判断され、即ちクエリ画像のすべての特徴点がいずれかの候補画像に投票されることになる。
図5は、比較マッチング部261における比較マッチングの例を示す図である。図5の例では、クエリ画像Qから11個の特徴点が検出されてその局所画像特徴量が抽出され、候補画像C1〜C4において、それぞれ図5に示す特徴点が検出されてその局所画像特徴量が抽出されている。なお、実際には1つの画像からは数百の特徴点が検出されるが、図5の例では説明の簡略化のために少数の特徴点を示している。
図5において、一致度が最も高い特徴点(以下、単に「対応点」という。)の組を線で連結して示している。図5の例では、候補画像C1〜C3から、それぞれ5点、2点、4点の対応点が検出され、候補画像C4からは対応点は検出されていない。比較マッチング部261は、対応点の数が所定の数以上である画像を選択画像として選択する。図5の例では、比較マッチング部261は、対応点の数が3以上である候補画像を選択画像として選択する。その結果、候補画像C1及びC3が選択画像として選択される。
これらの選択画像の対応点について、変換行列算出部262及び射影判定部263の処理で、位置情報も対応関係に基づいて真の対応点であるか否かの判定がされ、真の対応点であると判定された対応点の数が最も多い選択画像が、クエリ画像の対応画像であると決定される。具体的には、変換行列算出部262及び射影判定部263は、クエリ画像の局所画像特徴量群と、選択画像の各々の局所画像特徴量群とについて、インライア数の計算を行って、各選択画像の局所画像特徴量群のインライア数を求める。
変換行列算出部262は、あらかじめ設定した閾値よりインライア数が大きく、かつインライア数が最も大きい候補画像をクエリ画像の対応画像であると判断する。このとき、二次画像検索部26は、すべての選択画像についてあらかじめ設定した閾値よりもインライア数が低い場合は、クエリ画像に対応する対応画像はないと判断する。
変換行列算出部262及び射影判定部263は、以下のようにしてインライア数の計算を行う。まず、変換行列算出部262は、選択画像ごとに、対応点を射影するための変換行列を算出する。変換行列算出部262は、RANSAC法を用いて、変換行列としてホモグラフィ行列を算出する。具体的には以下のとおりである。
図6は、変換行列算出部262における変換行列の算出のフロー図である。変換行列算出部262は、選択画像ごとに、図6のフロー図の処理を行い、選択画像ごとに変換行列を求める。いま、クエリ画像とある選択画像との間に対応点がn組あるとし、クエリ画像の対応点をa
i(x
i,y
i)、選択画像の対応点をA
i(X
i,Y
i)とする(i=1〜n)。このとき、被写体が2次元平面であると仮定すると、以下の(5)を満たす変換行列Hが存在する。
式(5)を展開すると、以下の式(6)が得られる。
式(6)においてwを消去すると以下の式(7)の連立方程式が得られる。
1組の対応点の組について、上記の式(7)の連立方程式が得られることから、4組の対応点の組があれば8つの連立方程式が得られ、これを解くことで変換行列Hに含まれる8つの要素(h11、h12、h13、h21、h22、h23、h31、h32)を求めることができる。
そこで、変換行列算出部262は、クエリ画像と選択画像との間のn組の対応点から任意の4組の対応点を選択して、上記のとおりに変換行列Hを求める(ステップS61)。次に、変換行列算出部262は、この変換行列Hを用いて、n組のすべての対応点の組について、射影誤差を求める(ステップS62)。具体的には、以下の式(8)によって、各対応点の組の射影誤差e
iを算出する。
次に、変換行列算出部262は、各対応点について、各射影誤差eiが所定の閾値(許容誤差)より小さいインライア(inlier)か、各射影誤差eiが所定の閾値以上であってアウトライア(outlier、外れ値)であるかを判定し、インライアの総数をカウントし、インライアの総数が増加したか否かを判断する(ステップS63)。インライアの総数が増加したときは(ステップS63でYES)、変換行列算出部262は、そのときの変換行列Hで、変換行列Hを更新する(ステップS64)。インライアの総数が増加していないときは(ステップS63でNO)、変換行列Hは更新しない。
次に、ステップS61〜64の処理が規定回数に達しているかを判断し(ステップS65)、達していなければ(ステップS65にてNO)、ステップS61〜S63を繰り返す。規定回数に達した場合には(ステップS65にてYES)、変換行列算出部262は、そのときの変換行列Hを、クエリ画像を当該選択画像に変換するための変換行列と決定して出力する(ステップS66)。
射影判定部263は、変換行列算出部262にて各選択画像について決定された変換行列Hでもって選択画像のすべての対応点を射影して、クエリ画像の対応点との間の射影誤差を求める。各対応点について、射影誤差が所定の閾値(許容誤差)より小さい(インライア)か、射影誤差が所定の閾値以上である(アウトライア)であるかを判定し、インライアの総数を最終的な対応点の数とする。インライアの対応点の組は、即ち幾何的整合性を満足する対応点の組である。射影判定部263は、このような処理をすべての選択画像について行って、最終的な対応点が最も多い選択画像を、クエリ画像中の被写体と同じ被写体を含む対応画像であると判定する。
射影判定部263は、対応画像であると判定した参照画像に関連付けられた関連情報を画像データベース23の関連情報保存部244から読み出して、通信部24に出力する。通信部24は、クエリ画像処理装置10に関連情報を送信する。これによって、クエリ画像処理装置10のユーザは、自らが撮影した被写体に関する関連情報を検索サーバ装置20から取得できる。
以上説明したとおり、本実施の形態では、クエリ画像のデータを送信してクエリ画像に関する関連情報を受信するクエリ画像処理装置10、及びクエリ画像を受信してその対応画像を検索し、対応画像に関連付けられた関連情報をクエリ画像処理装置10に返信する検索サーバ装置20において、全体画像特徴量と局所画像特徴量を併用する構成を採用している。即ち、検索サーバ装置20は、まず全体画像特徴量を用いてすべての参照画像について粗い検索を行って候補画像を抽出し、その後に候補画像について局所画像特徴量を用いた精度の高い検索を行う。これにより、すべての参照画像について局所画像特徴量を用いた検索を行う場合と比較して、検索精度を犠牲にすることなく計算量を大幅に削減することができ、検索速度が速くなる。
以下、上記の実施の形態に対する種々の変形例を説明する。
上記の実施の形態では、二次画像検索部26は、比較マッチング部261による比較マッチングの結果から直ちに対応画像を決定せずに、比較マッチング部261で選択された複数の選択画像の各々についてインライア数を求めて、インライア数に基づいて、選択画像の中から対応画像を決定したが、必ずしもインライア数の評価を行わなくてもよい。この場合には、二次画像検索部26は、クエリ画像の局所画像特徴量群に含まれる局所画像特徴量すべてについて、候補画像の局所画像特徴量群に含まれる最も距離が近い局所画像特徴量を計算するときに、最も近い距離と、2番目に近い距離の比が一定の値よりも大きいときは、近いと判定せず、その局所画像特徴量について組はなしと判定し、クエリ画像の局所画像特徴量群と、選択画像の局所画像特徴量群が成す組の数を計算し、組数が最も多い局所画像特徴群の組数が所定の閾値以上であるときに、この局所画像特徴量群を有する候補画像を対応画像であると判定してもよい。
上記の実施の形態では、サーバ検索装置20の画像データベース23には、バイナリコードに変換された局所画像特徴量及び全体画像特徴量を保存し、クエリ画像処理装置10においても、クエリ画像の局所画像特徴量及び全体画像特徴量をバイナリコードに変換したが、局所画像特徴量及び全体画像特徴量のいずれか一方又は両方が、バイナリコードに変換されていなくてもよい。この場合には、L2ノルム等を用いて参照画像の特徴量とクエリ画像の特徴量との距離を評価できる。特に、上記の実施の形態によれば、すべての参照画像について、クエリ画像との間で局所画像特徴量を用いた検索を行う必要がないので、バイナリ変換されていない局所画像特徴量を用いたとしても、十分に高速度の検索が可能である。
また、上記の実施の形態では、局所画像特徴量をバイナリコードに変換したが、全体画像特徴量は、バイナリ変換されていない局所画像特徴量を用いて算出されたが、全体画像特徴量はバイナリ変換された局所画像特徴量を用いて算出されてもよい。
上記の実施の形態では、全体画像特徴量としてVLAD特徴量を用いたが、全体画像特徴量として、BAG−OF−WORDS(BAG−OF−VISUAL−WORDS、BAG−OF−FEATUREともいう。)、フィッシャー(Fisher)ベクトル等の他の特徴量を採用することも可能である。
全体画像特徴量としてBAG−OF−WORDSを採用する場合、以下のようにして全体画像特徴量が計算される。なお、この場合、全体画像特徴量は64次元のベクトルBとなる。全体画像特徴量生成部13,22は、上記の64個のセントロイドc1,・・・c64を用いて、各特徴量viについて、最も近いセントロイドを探し、近かったセントロイドがcjである場合、ベクトルBjの要素に1を加える。ベクトルBは、特徴量のヒストグラムとなり、ベクトルBの要素の総和は、特徴量の個数と等しくなる。このベクトルBは、この総数で全体を除算し、正規化して利用する。
フィッシャーベクトルを全体画像特徴量とする場合は、全体画像特徴量生成部13,22は、セントロイドではなく、EMアルゴリズムによって、あらかじめ計算した多数の局所画像特徴量をガウス混合モデルでクラスタリングする。このフィッシャーベクトルの計算方法は、"Fisher Kernels on Visual Vocabularies for Image Categorization", Florent Perronnin and Christopher Danceに詳しく説明されている。この計算の結果得られる全体画像特徴量は、本変形例の場合、16447次元となる。この次元が大きすぎるため、主成分分析などの手法によってあらかじめ局所画像特徴量を次元削減してもよい。
また、検索サーバ装置20は、最終的な対応点が最も多い参照画像を対応画像と判定するだけでなく、最終的な対応点の数が2番目、3番目、・・・に多い参照画像についても、最終的な対応点が最も多い参照画像とともに、又はクエリ画像処理装置10からのリクエストに応じて、関連情報を画像データベース23から読み出してクエリ画像処理装置10に送信してよい。
また、上記の実施の形態では、比較マッチング部261において対応点が所定の数以上ある参照画像のみを選択画像として、位置情報のマッチングを行って、最終的な対応点を求めたが、対応点を少なくとも1つ含むすべての参照画像を選択画像としてもよい。
また、上記の実施の形態では、比較マッチング部261は、局所画像特徴量の差が最も小さい特徴点の組を対応点としてカウントしたが、比較マッチングの方法はこれに限られない。例えば、比較マッチング部261は、クエリ画像Qのすべての特徴点の局所画像特徴量と、選択画像C1〜C4に含まれるすべての特徴点の局所画像特徴量とを比較し、その一致度が所定の閾値を上回る特徴点の組、即ち局所画像特徴量の差が所定の誤差範囲内にある特徴点の組を検出してもよい。なお、この場合には、クエリ画像の1つの特徴点が、複数の候補画像に投票されることがあり、また、いずれの候補画像にも投票されないこともある。
また、上記の実施の形態では、変換行列Hは、選択画像の特徴点を射影する行列であり、選択画像の特徴点を変換行列Hで射影して、クエリ画像の対応する特徴点との射影誤差を評価したが、逆に、クエリ画像の特徴点を選択画像の特徴点に射影する行列を変換行列として、クエリ画像の特徴点を変換行列で射影して、選択画像の対応する特徴点との射影誤差を評価してもよい。
また、上記の実施の形態において、クエリ画像処理装置10及び検索サーバ装置20の各要素は、他の要素と別の装置に備えられてよく、クエリ画像処理装置10の一部又は全部の要素と検索サーバ装置20の一部又は全部の要素とが同一の装置に備えられて、画像検索装置が構成されてもよい。