画像解析装置、画像登録装置および画像検索装置
【課題】効率的に画像検索の精度を向上すること。
【解決手段】解析装置10は、複数の画像を取得して、画像ごとに特徴量を抽出する。また、取得した画像ごとに、その画像の種類が示された教師信号を取得する。ここで、解析装置10は、抽出された特徴量と、取得した教師信号と用いて、画像の種類を判別するための重み行列を算出する。また、解析装置10は、所定のカーネル非線形関数を用いて、それぞれの画像の特徴量が分布している空間をより次元の高い高次元空間に射影するためのカーネル行列を導出する。さらに、解析装置10は、カーネル行列と重み行列とを用いて、高次元空間から、画像の種類を識別するための部分空間を抽出して、カーネル射影ベクトルを生成する。
【解決手段】解析装置10は、複数の画像を取得して、画像ごとに特徴量を抽出する。また、取得した画像ごとに、その画像の種類が示された教師信号を取得する。ここで、解析装置10は、抽出された特徴量と、取得した教師信号と用いて、画像の種類を判別するための重み行列を算出する。また、解析装置10は、所定のカーネル非線形関数を用いて、それぞれの画像の特徴量が分布している空間をより次元の高い高次元空間に射影するためのカーネル行列を導出する。さらに、解析装置10は、カーネル行列と重み行列とを用いて、高次元空間から、画像の種類を識別するための部分空間を抽出して、カーネル射影ベクトルを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パターン解析技術に関し、特に、複数種類の画像から、複数のトレーニング画像の特徴を解析する画像解析装置、画像解析装置による解析結果を利用して検索用の画像を登録する画像登録装置、および、登録された被検索画像の中から、入力された画像に類似した画像を検索する画像検索装置に関する。
【背景技術】
【0002】
近年、通信のブロードバンド化により、画像データを容易に入手することが可能となっている。膨大な画像データベースから必要な画像をすばやく検索するために、画像の色や形状などの特徴を抽出することによって、同じ特徴を有する類似画像を検索する手法が提案されている。しかしながら、画像特徴量の次元数は非常に大きくなる傾向にあるため、特徴抽出および検索に膨大な時間がかかることがあり、特徴量を圧縮する必要があった。
【0003】
このような課題に対し、従来、主成分分析法(以下、PCA(Principal Component Analysis)という。)や独立成分分析法(以下、ICA(Independent Component Analysis)という。)、あるいは、局所的な幾何学構造に関する成分を保持できるLPP(Locality Preserving Projections)などのパターン解析手法により、画像の特徴を解析することによって、画像の特徴量の次元数を低減していた(たとえば、非特許文献1、2参照。)。
【0004】
【非特許文献1】Xiang−Yan Zeng、et al、「Image Retrieval Based on Independent Components of Color Histograms」、Lecture Notes in Computer Science、Vol.2773/2003、p.1435−1442
【非特許文献2】Xiaofei He and Partha Niyogi、「Locality Preserving Projections」、Advances in Neural Information Processing Systems 16、Vancouver、Canada、2003
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述したようなパターン解析手法は、線形的な手法であるので、複雑な画像を表現しきれない。また上述した手法は、処理精度の面で効率的ではなかった。したがって、高精度な画像検索を効率的に実現する解析技術が望まれていた。
【0006】
本発明はこうした状況に鑑みてなされたものであり、その目的は、効率的に高精度な画像検索を可能とする画像解析技術を提供し、また解析結果を利用した画像登録技術および画像検索技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様の画像解析装置は、複数の画像を取得する画像取得部と、画像取得部によって取得した画像ごとに、画像特徴量を抽出する抽出部と、抽出部によって画像特徴量が抽出された画像のクラスを特定する教師信号を取得する教師信号取得部と、抽出部によって抽出された画像特徴量と、教師信号取得部によって取得した教師信号と用いて、画像間の相関を表現するための重み行列を生成する重み行列生成部と、所定のカーネル非線形関数を用いて、抽出部にて抽出されたそれぞれの画像の画像特徴量が分布している空間をより次元の高い高次元空間に射影するためのカーネル行列を導出するカーネル行列導出部と、カーネル行列導出部によって導出されたカーネル行列と、重み行列生成部によって生成された重み行列とを用いて、画像取得部にて取得された画像のそれぞれのクラスが識別可能な部分空間を高次元空間から抽出するためのカーネル射影ベクトルを導出するカーネル射影ベクトル導出部と、を備える。
【0008】
この態様によると、非線形関数により射影された高次の空間から、画像のそれぞれの種類が識別可能な部分空間を抽出することによって、識別のための重要な情報を適切に抽出でき、解析精度を向上でき、もって、検索精度を向上できる。
【0009】
本発明の別の態様は、画像登録装置である。この装置は、登録用の画像を取得する登録用画像取得部と、画像解析装置により導出されたカーネル射影ベクトルを保持する保持部と、登録用画像取得部で取得された登録用画像の画像特徴量を抽出する抽出部と、抽出した画像特徴量を、カーネル射影ベクトルで特定される部分空間に射影する射影部と、射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、登録用画像を、取得した特徴ベクトルに対応付けて記憶装置に登録する登録部と、を備える。
【0010】
本発明のさらに別の態様は、画像検索装置である。この装置は、検索を要求する検索要求画像を取得する検索要求画像取得部と、画像登録装置により登録された複数の画像および特徴ベクトルを記憶する記憶装置と、検索要求画像取得部で取得された検索要求画像の画像特徴量を抽出する抽出部と、抽出した画像特徴量を、カーネル射影ベクトルで特定される部分空間に射影する射影部と、射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、検索要求画像の特徴ベクトルと、記憶装置に記憶された複数の特徴ベクトルとを比較することによって、記憶装置に記憶された複数の画像から、検索要求画像とユークリッド距離の近い画像を出力する検索処理部と、を備える。
【0011】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、効率的に高精度な画像検索を可能とする画像解析技術を提供し、また解析結果を利用した画像登録技術および画像検索技術を提供できる。
【発明を実施するための最良の形態】
【0013】
(1)画像検索システムとは
まず、本発明の実施形態を詳細に説明する前に、概要を述べる。本実施形態は、画像検索システムに関する。画像検索システムとは、入力される検索要求画像に類似する画像を、複数の被検索画像を予め登録してあるデータベースから検索するシステムである。図1は、画像検索システム1の構成例を示す図である。画像検索システム1は、解析装置10と、登録装置60と、検索装置80と、記憶装置20とを含む。
【0014】
(1−1)解析処理
検索処理の前段階として、まず解析装置10が、複数種類のトレーニング画像Iiを取得して、それらの画像に関する特徴量を抽出し、抽出した特徴量からそれらの画像の特徴量を最もよく表現している部分空間のカーネル射影ベクトルを導出する。解析装置10には、m枚のトレーニング(学習用)画像Iiが入力される。トレーニング画像Iiには、さまざまな種類(以下、「クラス」という。)の画像、たとえば、ビル、バス、花、馬、山などの画像が含まれる。効率的な学習効果を得るために、トレーニング画像Iiとして、クラスごとに、たとえば100枚の画像が解析装置10に入力される。解析装置10は、入力された複数のトレーニング画像Iiを解析して、複数種類の特徴量から、それぞれのクラスを判別できるようなカーネル射影ベクトルを導出する。
【0015】
(1−2)登録処理
登録装置60は、解析装置10により導出されたカーネル射影ベクトルを用いて、複数の登録用画像を、検索される対象となる被検索画像として記憶装置20に登録する。具体的に登録装置60は、登録用画像から画像特徴量を抽出し、その画像特徴量が複数のカーネル射影ベクトルにより形成される部分空間において位置する座標(射影)を特定する。登録装置60においては、次元数の高い元の特徴量(カラーヒストグラム等)の代わりに、次元数の低い部分空間での座標(射影)が、新しい特徴量(以下、特徴ベクトルともよぶ)として検索に用いるために登録される。登録装置60は、登録用画像を、特定した特徴ベクトルに対応付けて、被検索画像として記憶装置20に登録する。これにより記憶装置20は、被検索画像のデータベースを構築する。以上の解析処理および登録処理により、検索の前処理が完了する。
【0016】
(1−3)検索処理
検索装置80は、入力された検索要求画像に類似する被検索画像を記憶装置20から検索して出力する。具体的に検索装置80は、検索要求画像から画像特徴量を抽出し、複数のカーネル射影ベクトルにより形成される部分空間内の座標(特徴ベクトル)を特定する。検索装置80は、検索要求画像の特徴ベクトルと、記憶装置20に保持されている被検索画像の特徴ベクトルとを比べて、互いのユークリッド距離が近いと判定される被検索画像を抽出する。互いの特徴ベクトルのユークリッド距離が近くなっている画像は、基本的(理想的)には、同一クラスの画像となる。同一クラスの画像とは、たとえば、検索要求画像が「馬」の画像であった場合、データベースに記憶されたビル、バス、花、馬、山の画像のうちの「馬」の画像である。なお、互いの特徴ベクトルのユークリッド距離が近くても、検索処理によりデータベースから抽出される画像のクラスが、検索要求画像と異なる場合がある。これは、解析装置10により導出されたカーネル射影ベクトルの精度に起因し、したがって解析装置10は、異なるクラスの画像間においては、互いの特徴ベクトルのユークリッド距離が遠くなるように、部分空間を構成するカーネル射影ベクトルを効果的に決定する必要がある。
【0017】
(2)従来の画像検索システムについて
従来の画像検索システムにおいては、まず、複数の画像を用いて画像データベースを作成する際に、画像とともに、その画像を説明するためのキーワードを関連づけて記憶させていた。そのため、データベースに登録する画像数の増加にともなって、データベースの作成、管理が煩雑となっていた。
【0018】
人間の目に映る像には、当然のごとくキーワードが付されていることはない。それにもかかわらず、人間の目は、その像のクラスを識別することができる。人間は、目に映る像のみによって、たとえばキリンとライオンを見分けることができる。
【0019】
人間の目は、経験的に、目に映る像に含まれる特徴ベクトルを抽出して、それぞれの像のクラスを判別していると考えられる。初めて見る像である場合、いままで目にした多くの像から、初めて見る像との差異を無意識に抽出して、像のクラスを特定しうる。これを応用し、近年の画像検索システムにおいては、画像の特徴を数値化して、データベースを作成するようになってきた。画像の特徴として、たとえば、画像の色や模様、あるいは、画像の形状などが用いられる。
【0020】
ところが、このような画像の特徴を数値で表現すると、非常に次元の大きなベクトルとなってしまう。たとえば、画像の色を特徴とする場合、色の三原色を構成する赤(R)、青(B)、緑(G)のそれぞれの比率で、特徴量が表現される。この場合、RとGとBとがそれぞれ8ビットで表現されるとすると、特徴量を表現するための空間として、2の24乗の次元が必要となる。このような多次元量は、データベースの容量や、学習の効率性、あるいは、検索の速度に影響を与える。一方、次元数を小さくすると、有用な情報が消失する可能性があり、解析精度、ひいては、検索精度(以下、まとめて「精度」という。)が劣化することがある。したがって、本実施形態においては、特徴空間の次元数を下げつつ、検索精度を向上することを目的としている。
【0021】
(3)本発明の実施形態における画像検索システムについて
画像検索は様々な特徴量を用いて行うことができる。たとえば、特徴量としてカラーヒストグラムなどがある。様々な画像の特徴量を解析し、それぞれのクラスが最もよく判別できるような線形基底関数βiを導出することができる。画像の特徴量(たとえば、カラーヒストグラム)は基底関数βiの線形和で表される。βiは線形射影ベクトルとも言う。一方、本実施形態において複雑な現象や非線形現象などにも対応するために、低次元の入力特徴量を非線形関数で高次元特徴空間に射影し、非線形基底を求めるが、「カーネルトリック」と呼ばれる方法(カーネル関数)を導入することにより、解析装置10は非線形基底関数の代わりに、複数種類のトレーニング画像Iiのクラスを効果的に判別できるカーネル射影ベクトルαiを導出することもできる。以下、線形関数を利用して導出する基底ベクトルβiを説明する。
【0022】
基底ベクトルβiを導出すれば、画像の特徴量(たとえばカラーヒストグラム)は、以下の式で示されるように、基底ベクトルの線形和として表現される。
【数1】
【0023】
式(1)において、βiは、i番目の基底ベクトルであり、(N+1)個の基底ベクトルβにより、(N+1)次元の部分空間Fが構築される。係数siは、基底ベクトルβi上のスカラ値を示し、基底ベクトルβiにおける特徴量の大きさを示す。つまりsiは、特徴量fを、部分空間Fの軸βi上に射影した位置を示す。したがって、
S=[s0,s1,・・・sN]
は、部分空間Fにおける座標を示し、画像の特徴量fと同義に扱うことができる。一方、Sの次元数(部分空間の次元数)は、fの次元数より低いので、fの代わりにSを特徴量(特徴ベクトル)として用いると、高い次元を低い次元に圧縮することができる。したがって、このSにより、画像を表現することができ、線形射影による基底ベクトルβiが導出できれば、検索処理時にユークリッド距離を算出する際に座標(特徴ベクトル)Sを利用することができる。
【0024】
このように解析装置10が、基底ベクトルβiを求めることができれば、画像が部分空間F上の座標Sにより表現できるようになる。この基底ベクトルβiと、被検索画像としてデータベースに予め用意しておく画像ごとの係数siとを記憶しておくことによって、検索装置80が、入力画像に類似する画像を検索できる。
【0025】
しかしながら、線形関数により導出される基底ベクトルβiによると、複数種類のトレーニング画像をクラス別に分離することが困難な状況が発生しうる。そこで本実施形態の解析装置10は、教師信号付非線形関数を用いて、それぞれのクラスを効率的に判別するカーネル射影ベクトルαiを導出することとしている。非線形関数を用いることによって、画像の特徴量の次元を効率的に上げて高次元空間を捉えつつ、その中から、画像をクラスごとに分けるための有用な情報が含まれる部分空間Fを抽出することが可能となる。また、教師信号を用いることによって、学習時に各画像の特徴量をクラス間で解析することができ、カーネル射影ベクトルαiの導出精度を高めることが可能となる。このような態様により、効率的に、高精度な画像検索システム1を実現できる。以下、教師信号と非線形関数について順に説明する。
【0026】
(3−1)教師信号について
教師信号Ciは、トレーニング画像Iiのクラスを示す識別情報である。この教師信号Ciは、それぞれのトレーニング画像Iiに対応付けられて、解析装置10に入力される。たとえば教師信号Ciは、トレーニング画像Iiの属性情報として、画像フォーマットの一部に組み込まれていてもよい。また教師信号Ciは、トレーニング画像Iiを解析装置10に入力する際に、オペレータなどにより指定されてもよい。たとえば、100枚の馬の画像を解析装置10に連続して入力するときには、オペレータが、馬の画像を100枚入力することを解析装置10に通知し、解析装置10は、この通知情報を、それから連続して入力される100枚の画像が馬の画像であることを知らせる教師信号Ciとして処理してもよい。さらに、トレーニング画像Iiをクラスごとに異なるフォルダに入れておき、解析装置10が、読み出している画像ファイルのフォルダを、教師信号Ciとして取り扱ってもよい。本実施形態では、学習段階で教師信号Ciを導入することにより、解析装置10が、トレーニング画像をクラスごとにまとめることができ、結果として解析精度を高めることが可能となる。
【0027】
(3−2)非線形化について
前述したように、被検索画像の登録時におけるメモリ容量や、検索処理時における処理負荷を考慮すると、抽出するクラス分類に必要な特徴量の次元数、すなわち特徴ベクトルfを表現する部分空間の次元数は、できるだけ下げることが望ましい。しかしながら、次元数を下げすぎると、有用な情報が消失してしまい、精度が下がる場合がある。
【0028】
ところで、学習対象物から抽出される膨大な種類の特徴量は、すべてが必ずしも有用な情報というわけではない。たとえば、人間を身長別で順位付けする場合においては、性別や体重、あるいは、出身地などは不要な特徴量であることは明らかである。したがって有用な情報が含まれた特徴量のみを与える射影関数を定め、部分空間Fを構築することが望まれる。理想的な部分空間Fは、それぞれのクラスを明確に分類できる空間である。なお、トレーニング画像Iiから部分空間を形成することは、トレーニング画像Iiを入力として、カーネル射影ベクトルαiを決定することと同義である。
【0029】
(3−2−1)線形な射影について
このような部分空間の構築は、射影演算により実現される。ここでは、まず、線形な射影について説明する。なお、理解を容易にするために、2次元の空間を1次元の空間である「軸」に射影する場合について説明する。図2は、第1空間500の例を示す図である。第1空間500は、X軸とY軸とで表現される2次元空間である。第1空間500には、丸で表現された第1クラス310の特徴ベクトルと、三角で表現された第2クラス320の特徴ベクトルとが、図示するような状態で分布している。
【0030】
第1クラス310と第2クラス320のそれぞれの特徴ベクトルをX軸方向に射影すると、第1クラス310は第1領域210に射影され、第2クラス320は第2領域220に射影される。そのため、第1クラス310と第2クラス320とは、第1境界線400により、明確に分類可能となる。一方、Y軸方向に射影すると、第1クラス310と第2クラス320とは、共に、第3領域230に射影されるため、両者を分類することができない。したがって、複数のクラスを互いに分類できるようなX軸に射影する必要がある。ここで、X軸は、線形射影における式(1)の基底ベクトルβiに相当する。
【0031】
「軸」は、クラス間の分散600が最大となるように、かつ、クラス内の各特徴ベクトルの分散を示す第1クラス内分散値610、第2クラス内分散値620が最小となるように、決定されればよい。これにより、異なるクラスを分類できる精度を高めることができる。なお「分散」は、「相関度」といった差異の程度を表現するための語句に置換えて表現されてもよい。
【0032】
(3−2−2)非線形な射影について
しかしながら、線形空間だけで考えても、有用な情報が含まれる部分空間が見つからないことがある。このような場合、非線形関数により、高次元空間に射影して、次元数を上げて、その後、重要な成分が含まれた部分空間を抽出すればよい。
【0033】
例を用いて説明する。図3は、X軸とY軸とで表現される2次元の第2空間510の例を示す図である。第2空間510には、丸で表現された第3クラス330の特徴ベクトルと、三角で表現された第4クラス340の特徴ベクトルとが、図示するような状態で分布している。第2空間510に示されるように特徴ベクトルが分布している場合、X軸、Y軸のいずれの方向に射影しても、第3クラス330と第4クラス340とを図2のように明確に分類することができない。しかしながら、図3に示すように、それぞれのクラスは、第2境界線410で示される境界により分けることができる。
【0034】
図2においては、第1境界線400がY軸に平行であったため、第1境界線400が交差するX軸に射影することにより、複数のクラスを分類できたものの、第2境界線410のように、境界線が軸に平行とはならないような場合、線形射影によると複数のクラスを明確に分類できないこととなる。したがって、第2境界線410がいずれかの軸に平行となるように、第2空間510を他の空間に射影すればよい。
【0035】
図4は、図3の第2空間510を第3空間520に非線形変換したときの図である。第2空間510を第3空間520に非線形変換することによって、第2境界線410は、第3境界線420のように軸に平行な境界線となる。したがって、第3クラス330と第4クラス340とは、空間の非線形変換処理を実行することにより、Y'軸の第4領域240、第5領域250にそれぞれ射影されることで、明確に分類されることが可能となる。ここでY'軸は、非線形射影により導出されるカーネル射影ベクトルαiに相当する。
【0036】
非線形関数を用いた射影演算により、空間の次元を上げて、その中から有用な部分空間を探索することができる。これにより、解析精度を向上でき、後の検索精度も向上できる。しかしながら、このような非線形演算は、演算量等が膨大になることがある。したがって、本実施形態においては、非線形演算を簡易に実現する方法として、カーネルトリックを適用する。
【0037】
(3−2−3)非線形化手法「カーネルトリック」について
ここでは、非線形演算を簡易に実現するために、「カーネルトリック」と呼ばれる方法を導入する。この「カーネルトリック」と呼ばれる方法は、1964年にAizerman氏によって提案されたものである。この方法に用いられるカーネル関数は、低次元ベクトルを簡易に非線形変換して、高次元部分空間に射影するための関数である。
【0038】
ここで、ベクトルxが任意の非線形関数Φによって高次元空間Fに射影される場合、以下の式で表現される。
【数2】
【0039】
一般に、このような非線形関数の射影によって得られる空間の次元は非常に大きくなり、非線形変換したベクトルの次元数が大きくなると、計算コストが非常に大きくなってしまう。そこで、非線形部分空間Fにおける内積計算を式(3)に示すようなカーネル関数Kで表すことで、φ(x1)とφ(x2)との内積を低次元の入力ベクトルx1とx2のみを用いて計算することができる。
【数3】
【0040】
式(3)は、非線形関数Φが分からなくても、カーネル関数Kと、入力ベクトルxだけを用いれば、非線形部分空間Fでの様々な計算ができることを示している。このような考えを用いると、高次元に射影しながら、実際には射影された空間でのベクトルの演算を避けて、カーネルの計算のみで計算が行えるようになる。
【0041】
カーネル関数としては、以下のような関数が用いられる。式(4)〜式(6)は、いずれも計算が容易な関数である。そのため、非線形処理による射影演算が簡易な計算のみによって実現されることとなる。
【数4】
【数5】
【数6】
【0042】
以上により、カーネル関数Kと入力ベクトルxだけを用いれば、非線形部分空間Fでの様々な計算ができる。このように、高次元に射影しながら、実際には射影された空間でのベクトルの演算を避けることができ、カーネル射影ベクトルの解析が容易となる。
【0043】
(3−3)教師信号付非線形関数を用いた部分空間の抽出方法について
以下、(3−1)で述べた教師信号と(3−2)で述べた非線形化の双方を用いて、部分空間を抽出するための射影関数を導出する際の処理について、理論的に説明する。
【0044】
まず、入力されたトレーニング画像Iiごとに、カラーヒストグラムxi(i=1〜m)を作成して、出力する。xiは、n次元のベクトルである。mは、トレーニング画像の枚数である。
【数7】
【0045】
ここで、以下の非線形関数Φ(X)を用いて、カラーヒストグラムXを高次元空間に射影する。
【数8】
【0046】
高次元空間における最適部分空間を与える射影関数(射影行列)PΦは、以下の最小化問題を解くことによって求めることができる。
【数9】
【数10】
【0047】
ベクトルyiは、カラーヒストグラムxiの高次元空間における部分空間への射影(特徴ベクトル)である。また、重み行列Wijは、式(11)により定義される重み行列である。式(11)におけるiとjとが同一クラスであるか否かは、教師信号にもとづいて、判別される。この定義により、クラスが異なるyiとyjにおいては、式(9)のΣの内部の項が0となる。一方、クラスが同一の場合は、Σの内部の項が0以上となる。そのため、異なるクラス間の距離をより大きくすることができる。これにより、式(9)におけるΣの内部の項は、同一クラス内の相関を示す値となる。つまり、式(9)は、同一クラス内の相関の和を最小化することを目的とする関数となる。そのため、クラス内における距離を最小とすることができる。
【数11】
【0048】
まとめると、式(9)で示される最小化問題を解くことによって、得られた部分空間において、異なるクラス間の相関がなくなり、また、同一クラス内の相関が大きくなるようなPΦが導出できる。yは、射影関数PΦと、カラーヒストグラムxにより決定される。ここで、式(9)で示される最小化すべき目的関数は、以下のようにPΦを用いて表現される。なお、式(13)のDijは、対角行列である。
【数12】
【数13】
【0049】
ここで、Pφは、以下のように表現される。
【数14】
ここで式(14)中のαは、係数ベクトルである。
【数15】
【0050】
ここで、式(12)と式(14)を組み合わせると、次式が得られる。
【数16】
【0051】
なお、Kは、カーネル行列であり、各要素K(i、j)は、以下で定義される。なお、式(18)の代わりに、前述の式(4)、式(5)、式(6)のいずれかを用いてもよい。
【数17】
【数18】
【0052】
ここで、式(19)の条件下において、式(9)の最小化問題は、式(20)で示される一般化固有値問題へと変換される。ここで、αは、式(20)の固有値分解で求めることができる。
【数19】
【数20】
【0053】
式(20)の一般化固有値問題を解くことで得られたαを用いて、射影(特徴ベクトル)Yを以下のように求めることができる。
【数21】
【数22】
以上まとめると、式(20)の一般化固有値問題を解くことによって、ベクトルαを求め、αを用いて、高次元非線形空間における部分空間への射影(特徴ベクトル)yを直接求めることができる。さらに、これらは、式(9)や式(11)が考慮されて得られたものであるため、クラス内分散が小さくなり、かつ、クラス間分散が大きくなるような部分空間への射影を導出できていることになる。以上の態様により、解析装置10による解析精度を効率的に向上できることとなる。
【0054】
(3−4)本実施形態の具体的な構成について
図5は、本発明の実施形態にかかる教師信号付非線形画像解析手法を用いた画像検索システム1における解析装置10の構成例を示す図である。解析装置10は、トレーニング画像取得部40と、教師信号取得部42と、画像特徴量抽出部44と、カーネル射影ベクトル解析部46とを備える。カーネル射影ベクトル解析部46は、複数の画像をクラスごとに検索するためのカーネル射影ベクトルαを生成する機能をもち、パラメータ導出部48と、カーネル射影ベクトル導出部50と、関数保持部52と、カーネル射影ベクトル保持部54とを備える。
【0055】
トレーニング画像取得部40は、入力される複数のトレーニング画像を取得して、順に、画像特徴量抽出部44に出力する。教師信号取得部42は、トレーニング画像取得部40で取得されたトレーニング画像ごとに、教師信号を取得する。既述したように、この教師信号は、トレーニング画像のクラスを特定する情報である。画像特徴量抽出部44は、トレーニング画像取得部40より出力されたトレーニング画像から、画像特徴量を抽出する。本実施形態では、画像特徴量抽出部44が、画像特徴量として、カラーヒストグラムを抽出する。
【0056】
パラメータ導出部48は、画像特徴量抽出部44からカラーヒストグラムを受け取り、また教師信号取得部42からトレーニング画像ごとの教師信号を受け取る。関数保持部52は、上記した数式で特定されるカーネル射影ベクトルαの演算導出処理に必要な関数を保持し、パラメータ導出部48は、関数保持部52から関数を読み出して、演算処理を実行する。パラメータ導出部48は、画像特徴量抽出部44から取得した全てのトレーニング画像についてのカラーヒストグラムxi(i=1〜m)から、パラメータとなる行列W、D、および、Kを導出する。重み行列Wは、カラーヒストグラムxiと、教師信号Ciとを用いて、前述の式(11)により導出される。また、対角行列Dは、導出された重み行列Wを用いて、式(13)から導出される。また、カーネル行列Kは、前述の式(18)により導出される。パラメータ導出部48は、導出したW、D、Kをカーネル射影ベクトル導出部50に出力する。
【0057】
カーネル射影ベクトル導出部50は、パラメータ導出部48から出力された行列W、D、Kを用いて、式(20)で示される固有値問題を解いて、カーネル射影ベクトルαを取得する。ここで、カーネル射影ベクトル導出部50は、取得したカーネル射影ベクトルαをカーネル射影ベクトル保持部54に出力し、カーネル射影ベクトル保持部54は、カーネル射影ベクトルαを保持する。
【0058】
図6は、本発明の実施形態にかかる教師信号付非線形画像解析手法を用いた画像検索システム1における登録装置60の構成例を示す図である。登録装置60は、登録用画像取得部62と、画像特徴量抽出部64と、射影部66と、特徴ベクトル取得部68と、登録部70と、カーネル射影ベクトル保持部72と、関数保持部74とを備える。カーネル射影ベクトル保持部72は、解析装置10により導出されたカーネル射影ベクトルαを保持し、解析装置10および登録装置60が一つの装置として構成される場合には、解析装置10におけるカーネル射影ベクトル保持部54が、登録装置60においてカーネル射影ベクトル保持部72として利用されてもよい。関数保持部74は、特徴ベクトルの演算導出処理に必要な関数を保持し、射影部66は、関数保持部74から関数を読み出して、演算処理を実行する。
【0059】
登録用画像取得部62は、登録用の画像を取得して、順に、画像特徴量抽出部64に出力する。画像特徴量抽出部64は、登録用画像取得部62より出力された登録用画像から、画像特徴量を抽出する。射影部66は、式(22)により、登録用画像にかかるカーネル行列Ktを導出する。さらに射影部66は、式(23)にしたがい、カーネル射影ベクトル保持部72に保持されたカーネル射影ベクトルαで構築される部分空間に、算出したKtで変換し、登録用画像の非線形部分空間上の特徴ベクトルYtを計算する。計算した特徴ベクトルYtは、特徴ベクトル取得部68に供給される。
【数23】
【0060】
特徴ベクトル取得部68は、射影部66により導出された特徴ベクトルを取得し、登録部70に供給する。登録部70は、登録用画像を、特徴ベクトル取得部68から供給された特徴ベクトルに対応付けて記憶装置20に登録する。この登録処理は、複数の登録用画像のそれぞれに対して実行され、記憶装置20は、検索対象となる被検索画像が、それぞれの特徴ベクトルと対応付けられてデータベース化される。なお、それぞれの特徴ベクトルは、後述する検索処理時に使用されるものである。被検索画像は、記憶装置20において特徴ベクトルと紐付けされていればよく、被検索画像を格納する記憶装置と、特徴ベクトルを格納する記憶装置とは、物理的に異なっていてもよい。
【0061】
なお、以上は、登録装置60が、解析装置10により導出されたカーネル射影ベクトルαを利用して、登録用画像を登録する例について説明した。解析装置10が非線形射影によりカーネル射影ベクトルαを予め導出しておくことで、登録装置60が、登録用画像を自動的に登録することが可能となる。これにより、登録処理に手間がかからず、また多数の登録用画像の登録が可能となる。なお、解析装置10と登録装置60とが一体に構成されてもよく、このときには、解析装置10でカーネル射影ベクトルαを導出するとともに、トレーニング画像の特徴ベクトルを求めて、記憶装置20に登録することができる。これにより、解析処理と登録処理とを同時に実行することができ、作業の効率化を図ることが可能となる。
【0062】
図7は、本発明の実施形態にかかる教師信号付非線形画像解析手法を用いた画像検索システム1における検索装置80の構成例を示す図である。検索装置80は、検索要求画像取得部82と、画像特徴量抽出部84と、射影部86と、特徴ベクトル取得部88と、検索処理部90と、カーネル射影ベクトル保持部92と、関数保持部94と、出力部100とを備える。カーネル射影ベクトル保持部92は、解析装置10により導出されたカーネル射影ベクトルαを保持し、解析装置10および検索装置80が一つの装置として構成される場合には、解析装置10におけるカーネル射影ベクトル保持部54が、検索装置80においてカーネル射影ベクトル保持部92として利用されてもよい。関数保持部94は、特徴ベクトルの演算導出処理に必要な関数を保持し、射影部86は、関数保持部94から関数を読み出して、演算処理を実行する。記憶装置20は、登録装置60で登録された複数の画像および特徴ベクトルを対応付けて記憶する。
【0063】
図7に示す検索装置80は、図6に示す登録装置60と近似した構成を有する。これは、検索装置80および登録装置60ともに、解析装置10で生成されたカーネル射影ベクトルαをもとに、画像の特徴ベクトルを抽出するためである。したがって、検索装置80は、登録装置60とともに、1つの装置として構成されてもよい。なお、登録装置60が登録処理を実行して画像と特徴ベクトルとを対応付けて記憶装置20に登録し、検索装置80が、登録装置60による登録結果を用いて、インターネットなどで検索エンジンとしてサービスを提供する場合には、登録装置60と検索装置80とが別装置として構成されてもよい。
【0064】
検索要求画像取得部82は、入力された検索を要求する画像を取得して、画像特徴量抽出部84に出力する。画像特徴量抽出部84は、検索要求画像から、画像特徴量を抽出する。射影部86は、式(22)により、検索要求画像にかかるカーネル行列Ktを導出する。さらに射影部86は、式(23)にしたがい、カーネル射影ベクトル保持部92に保持されたカーネル射影ベクトルαで構築される部分空間に、算出したKtを射影して、検索要求画像の部分空間上の特徴ベクトルYtを計算する。計算した特徴ベクトルYtは、特徴ベクトル取得部88に供給される。
【0065】
特徴ベクトル取得部88は、射影部86により導出された特徴ベクトルを取得し、検索処理部90に供給する。検索処理部90は、記憶装置20にアクセスして、被検索画像の特徴ベクトルYtを読み出す。検索処理部90は、読み出した被検索画像の特徴ベクトルYtと、特徴ベクトル取得部88で取得された検索要求画像の部分空間における特徴ベクトルYtとを比較して、複数の被検索画像のYtから、検索要求画像の特徴ベクトルYtに最も近い値を有するものを検索する。この検索においては、互いのユークリッド距離が最短であるものが選択される。なお、複数枚(たとえばL枚)の類似画像を検索する処理であれば、検索処理部90は、記憶装置20に格納された被検索画像のなかから、ユークリッド距離が近い上位L枚の画像を選択して、出力部100に出力する。出力部100は、検索処理部90から出力された検索結果にかかる画像を表示する。
【0066】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0067】
(3−5)本実施形態の動作について
以上の態様における動作例について説明する。まず、図5の解析装置10の動作について説明する。なお、以下の例では、トレーニング画像を解析装置10により解析するとともに、トレーニング画像を記憶装置20に登録する処理を同時に行っている。
【0068】
図8は、図5の解析装置10の動作例を示すフローチャートである。まず、トレーニング画像取得部40は、トレーニング画像を取得して、画像特徴量抽出部44に出力する(S10)。教師信号取得部42は、トレーニング画像取得部40で取得されたカラーヒストグラムにかかるトレーニング画像のクラスを示す教師信号を取得して、パラメータ導出部48に出力する(S12)。他に入力すべきトレーニング画像が存在する場合(S14のY)、S10に戻る。入力すべきトレーニング画像が存在しない場合(S14のN)、S16に移る。
【0069】
画像特徴量抽出部44は、トレーニング画像取得部40より出力されたトレーニング画像から、カラーヒストグラムを抽出して、パラメータ導出部48に出力する(S16)。パラメータ導出部48は、画像特徴量抽出部44から取得した全てのトレーニング画像についてのカラーヒストグラムxi(i=1〜m)と、それぞれの教師信号Ciとを用いて、式(11)、式(13)、式(18)にしたがって、パラメータとなる行列W、D、および、Kを導出する(S18)。
【0070】
カーネル射影ベクトル導出部50は、パラメータ導出部48により導出された行列W、D、Kを用いて、式(20)で示される固有値問題を解いて、カーネル射影ベクトルαを取得する(S20)。さらに、カーネル射影ベクトル導出部50は、式(21)により、カーネル射影ベクトルαと、カーネル行列Kとを用いて、射影演算を実行する(S22)。なお、この射影処理は、図6の射影部66による処理と同じであり、このフローでは、カーネル射影ベクトル導出部50が、射影部66の機能も担っている。カーネル射影ベクトル導出部50は、射影演算の結果である各トレーニング画像の特徴ベクトルYを記憶装置20に登録して(S24)、処理を終了する。
【0071】
つぎに、図7の検索装置80の動作について説明する。図9は、図7の検索装置80の動作例を示すフローチャートである。このフローチャートは、図8のフローチャートに示される処理によって記憶装置20に被検索画像が登録された後に開始される。
【0072】
まず、検索要求画像取得部82が、検索要求画像を取得する(S30)。画像特徴量抽出部84は、検索要求画像取得部82によって取得された検索要求画像から、カラーヒストグラムxtを抽出して、射影部86に出力する(S32)。また、射影部86には、トレーニング画像にかかるカラーヒストグラムxi(i=1〜m)が供給される。なおトレーニング画像のカラーヒストグラムxiは、記憶装置20ないしは他の記憶装置に格納されており、射影部86は、カラーヒストグラムxiを読み出してもよい。
【0073】
ここで、射影部86は、xtとxiとを用いて、式(22)により、検索要求画像にかかる系列Ktを導出する(S34)。さらに、射影部86は、式(23)にしたがい、導出したKtと、カーネル射影ベクトル保持部92に保持されたカーネル射影ベクトルαとを用いて、部分空間における検索要求画像の特徴ベクトルYtを算出する(S36)。
【0074】
ここで、検索処理部90は、記憶装置20に記憶された被検索画像の特徴ベクトルと、検索要求画像の特徴量Ytとを比較して、検索要求画像の特徴ベクトルYtに近い値を有する特徴ベクトルを検索し(S38)、近い順に、ユーザから指定された枚数だけ、特徴ベクトルに紐付けられたトレーニング画像を出力する。ここで、再検索を実行しないことをユーザが選択した場合、処理を終了する(S40のN)。再検索を実行することが選択された場合(S40のY)、S32に戻る。なお、再検索においては、S38において過去に検索されたトレーニング画像以外の画像を対象として、検索されるようにしてもよい。
【0075】
(4)本実施形態の効果について
ここでは、2つのシミュレーションを用いて、本実施形態の効果について説明する。第1のシミュレーションは、次元数Nを変数とした場合における検索の正答率についてのシミュレーションである。第1のシミュレーションにおける条件は、以下のとおりである。
【0076】
<シミュレーション条件1>
クラス総数:10クラス
トレーニング画像の枚数:960枚(96枚×10クラス)
検索要求画像総数:40枚(4枚×10クラス)
検索要求画像:同一クラスに属する4枚のいずれか
連続検索回数:30
次元数N:1〜20
比較対象:PCA、ICA、LPP、SLPP、KLPP、KPCA
その他:一度検索されたトレーニング画像は削除され、その後、再検索が実行される
【0077】
なお、本実施形態のアルゴリズムの比較対象として、6つのアルゴリズムを挙げた。具体的には、PCAと、ICAと、LPPと、SLPP(Supervised LPP、教師付LPP)と、KLPP(Kernel LPP、カーネルLPP)と、KPCA(Kernel PCA、カーネルPCA)である。これらはいずれも公知のアルゴリズムであるため、説明を省略する。
【0078】
シミュレーション条件1におけるシミュレーション結果について説明する。図10は、本発明の実施形態にかかるシミュレーション条件1における第1シミュレーション結果700を示す図である。第1シミュレーション結果700は、PCA710とICA720とLPP730とSLPP740とKLPP750とKPCA770とのそれぞれの結果と、本実施形態の画像検索システム1による結果が示されたOurMethod760とを含む。横軸は、次元数Nを示す。縦軸は、検索の正答率を示す。
【0079】
検索の正答率とは、連続して30回検索した場合において、検索要求画像のクラスと検索された画像のクラスとが一致した枚数を30で割った値をいう。シミュレーション条件1のその他の欄に示したように、再検索においては、検索画像が検索の母集団から除かれる。したがって、検索がランダムに実施される場合、最初の検索においては10%(96/960)の確率で正答するものの、2回目に正答する確率は、約9.9%(95/959)となる。そうすると、30回目に正答する確率は、約7.2%(67/931)となる。これは、検索回数が増えるにつれて、正答することが困難となることを示している。
【0080】
第1シミュレーション結果700において、KLPP750の場合は、次元数Nを増加しても、15%前後の正答率としかならない。また、PCA710、ICA720、LPP730、SLPP740、KPCA770の場合、次元数が1から5になるにつれて、正答率が25%前後から35%ないし45%前後まで上昇する。しかし、次元数が5以上となっても、正答率は上昇せず、35%ないし45%前後で飽和した状態となる。
【0081】
一方、OurMethod760においては、次元数Nが1の場合でも約35%の正答率を有し、次元数が上昇するにつれて正答率も上昇し、次元数が9となる前後で、80%を超える正答率となる。ランダムな場合の正答率が約7.2%であることと比べると、本実施形態の手法では、驚異的な正答率を達成できていることが分かる。また、PCA710等の他の手法と比べても、次元数=10において、40%以上も高い正答率を有している。したがって、本手法は、極めて有効な検索手法であるといえる。
【0082】
なお、次元数が11以上となると正答率が下降しているが、これは、過学習によるものであると考えられる。過学習とは、たとえば、性別を判断するための特徴量として、生年月日が追加された場合に相当する。また、次元数を増やしたことで、カーネル射影ベクトルαにおいて、無理に不要な情報が含まれ、結果として余計なカーネル射影ベクトルが追加されて、クラスの判別能力に影響がでたと考えられる。
【0083】
第2のシミュレーションは、検索回数を変数とした場合における検索の正答率についてのシミュレーションである。第2のシミュレーションにおける条件は、以下のとおりである。
【0084】
<シミュレーション条件2>
クラス総数:10クラス
トレーニング画像の枚数:960枚(96枚×10クラス)
検索要求画像総数:40枚(4枚×10クラス)
検索要求画像:同一クラスに属する4枚のいずれか
カーネル射影ベクトルαの最大次元数N:10
検索回数:1〜96
比較対象:PCA、ICA、LPP、SLPP、KLPP、KPCA
その他:一度検索されたトレーニング画像は削除され、その後、再検索が実行される
【0085】
シミュレーション条件2におけるシミュレーション結果について説明する。図11は、本発明の実施形態にかかるシミュレーション条件2における第2シミュレーション結果800を示す図である。第2シミュレーション結果800は、PCA810とICA820とLPP830とSLPP840とKLPP850とKPCA870とのそれぞれの結果と、本実施形態の画像検索システム1による結果が示されたOurMethod860とを含む。横軸は、検索回数を示す。縦軸は、検索の正答率を示す。
【0086】
第2シミュレーション結果800についてのOurMethod860以外の手法においては、1回目を最高とし、その後連続検索回数が上昇するにつれて、正答率が下がっている。これは、前述したように、検索回数が増えるにつれて、正答することが困難となるためである。
【0087】
一方、OurMethod860においては、1回目から30回目前後までは、正答率として驚異的な80%弱の値を達成できている。また、96回目においても、約65%といった高い正答率を誇っている。したがって、本検索手法は、極めて検索率の高い手法であるといえる。
【0088】
以上説明したように本実施の形態によれば、非線形関数により射影された高次の空間から、画像のそれぞれのクラスが識別可能な部分空間を抽出することによって、識別のための重要な情報を適切に抽出でき、精度を向上できる。また、同じクラスの画像同士の特徴量の相関が高く、かつ、異なるクラスの画像同士の特徴量の相関がなくなるように、重み行列Wを算出することによって、クラス間の識別が容易となり、精度をより向上できる。また、カーネル行列Kと重み行列Wとの積により射影行列を生成し、生成された射影行列のカーネル射影ベクトルを導出することによって、効率的に特徴ベクトルを導出できるため、システム全体の処理負担を軽減できる。また、特徴量を部分空間に射影することによって、検索処理が容易となり、また、精度を向上できる。
【0089】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0090】
(5)その他
前述した実施形態においては、画像の特徴量として、カラーヒストグラムを用いるとして説明した。しかしながらこれにかぎらず、たとえば、画像の形状や、画像の模様、あるいは、これらの組合せた情報を数値化して、特徴量として規定してもよい。このような特徴量を用いたとしても、前述の実施形態に適用することが可能であり、また、前述と同等の効果が得られることは言うまでもない。
【図面の簡単な説明】
【0091】
【図1】画像検索システムの構成例を示す図である。
【図2】第1空間の例を示す図である。
【図3】第2空間の例を示す図である。
【図4】第2空間を第3空間に非線形変換したときの図である。
【図5】解析装置の構成例を示す図である。
【図6】登録装置の構成例を示す図である。
【図7】検索装置の構成例を示す図である。
【図8】解析装置の動作例を示すフローチャートである。
【図9】検索装置の動作例を示すフローチャートである。
【図10】第1シミュレーション結果を示す図である。
【図11】第2シミュレーション結果を示す図である。
【符号の説明】
【0092】
1・・・画像検索システム、10・・・解析装置、20・・・記憶装置、40・・・トレーニング画像取得部、42・・・教師信号取得部、44・・・画像特徴量抽出部、46・・・カーネル射影ベクトル解析部、48・・・パラメータ導出部、50・・・カーネル射影ベクトル導出部、52・・・関数保持部、54・・・カーネル射影ベクトル保持部、60・・・登録装置、62・・・登録用画像取得部、64・・・画像特徴量抽出部、66・・・射影部、68・・・特徴ベクトル取得部、70・・・登録部、72・・・カーネル射影ベクトル保持部、74・・・関数保持部、80・・・検索装置、82・・・検索要求画像取得部、84・・・画像特徴量抽出部、86・・・射影部、88・・・特徴ベクトル取得部、90・・・検索処理部、92・・・カーネル射影ベクトル保持部、94・・・関数保持部、100・・・出力部。
【技術分野】
【0001】
本発明は、パターン解析技術に関し、特に、複数種類の画像から、複数のトレーニング画像の特徴を解析する画像解析装置、画像解析装置による解析結果を利用して検索用の画像を登録する画像登録装置、および、登録された被検索画像の中から、入力された画像に類似した画像を検索する画像検索装置に関する。
【背景技術】
【0002】
近年、通信のブロードバンド化により、画像データを容易に入手することが可能となっている。膨大な画像データベースから必要な画像をすばやく検索するために、画像の色や形状などの特徴を抽出することによって、同じ特徴を有する類似画像を検索する手法が提案されている。しかしながら、画像特徴量の次元数は非常に大きくなる傾向にあるため、特徴抽出および検索に膨大な時間がかかることがあり、特徴量を圧縮する必要があった。
【0003】
このような課題に対し、従来、主成分分析法(以下、PCA(Principal Component Analysis)という。)や独立成分分析法(以下、ICA(Independent Component Analysis)という。)、あるいは、局所的な幾何学構造に関する成分を保持できるLPP(Locality Preserving Projections)などのパターン解析手法により、画像の特徴を解析することによって、画像の特徴量の次元数を低減していた(たとえば、非特許文献1、2参照。)。
【0004】
【非特許文献1】Xiang−Yan Zeng、et al、「Image Retrieval Based on Independent Components of Color Histograms」、Lecture Notes in Computer Science、Vol.2773/2003、p.1435−1442
【非特許文献2】Xiaofei He and Partha Niyogi、「Locality Preserving Projections」、Advances in Neural Information Processing Systems 16、Vancouver、Canada、2003
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述したようなパターン解析手法は、線形的な手法であるので、複雑な画像を表現しきれない。また上述した手法は、処理精度の面で効率的ではなかった。したがって、高精度な画像検索を効率的に実現する解析技術が望まれていた。
【0006】
本発明はこうした状況に鑑みてなされたものであり、その目的は、効率的に高精度な画像検索を可能とする画像解析技術を提供し、また解析結果を利用した画像登録技術および画像検索技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様の画像解析装置は、複数の画像を取得する画像取得部と、画像取得部によって取得した画像ごとに、画像特徴量を抽出する抽出部と、抽出部によって画像特徴量が抽出された画像のクラスを特定する教師信号を取得する教師信号取得部と、抽出部によって抽出された画像特徴量と、教師信号取得部によって取得した教師信号と用いて、画像間の相関を表現するための重み行列を生成する重み行列生成部と、所定のカーネル非線形関数を用いて、抽出部にて抽出されたそれぞれの画像の画像特徴量が分布している空間をより次元の高い高次元空間に射影するためのカーネル行列を導出するカーネル行列導出部と、カーネル行列導出部によって導出されたカーネル行列と、重み行列生成部によって生成された重み行列とを用いて、画像取得部にて取得された画像のそれぞれのクラスが識別可能な部分空間を高次元空間から抽出するためのカーネル射影ベクトルを導出するカーネル射影ベクトル導出部と、を備える。
【0008】
この態様によると、非線形関数により射影された高次の空間から、画像のそれぞれの種類が識別可能な部分空間を抽出することによって、識別のための重要な情報を適切に抽出でき、解析精度を向上でき、もって、検索精度を向上できる。
【0009】
本発明の別の態様は、画像登録装置である。この装置は、登録用の画像を取得する登録用画像取得部と、画像解析装置により導出されたカーネル射影ベクトルを保持する保持部と、登録用画像取得部で取得された登録用画像の画像特徴量を抽出する抽出部と、抽出した画像特徴量を、カーネル射影ベクトルで特定される部分空間に射影する射影部と、射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、登録用画像を、取得した特徴ベクトルに対応付けて記憶装置に登録する登録部と、を備える。
【0010】
本発明のさらに別の態様は、画像検索装置である。この装置は、検索を要求する検索要求画像を取得する検索要求画像取得部と、画像登録装置により登録された複数の画像および特徴ベクトルを記憶する記憶装置と、検索要求画像取得部で取得された検索要求画像の画像特徴量を抽出する抽出部と、抽出した画像特徴量を、カーネル射影ベクトルで特定される部分空間に射影する射影部と、射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、検索要求画像の特徴ベクトルと、記憶装置に記憶された複数の特徴ベクトルとを比較することによって、記憶装置に記憶された複数の画像から、検索要求画像とユークリッド距離の近い画像を出力する検索処理部と、を備える。
【0011】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、効率的に高精度な画像検索を可能とする画像解析技術を提供し、また解析結果を利用した画像登録技術および画像検索技術を提供できる。
【発明を実施するための最良の形態】
【0013】
(1)画像検索システムとは
まず、本発明の実施形態を詳細に説明する前に、概要を述べる。本実施形態は、画像検索システムに関する。画像検索システムとは、入力される検索要求画像に類似する画像を、複数の被検索画像を予め登録してあるデータベースから検索するシステムである。図1は、画像検索システム1の構成例を示す図である。画像検索システム1は、解析装置10と、登録装置60と、検索装置80と、記憶装置20とを含む。
【0014】
(1−1)解析処理
検索処理の前段階として、まず解析装置10が、複数種類のトレーニング画像Iiを取得して、それらの画像に関する特徴量を抽出し、抽出した特徴量からそれらの画像の特徴量を最もよく表現している部分空間のカーネル射影ベクトルを導出する。解析装置10には、m枚のトレーニング(学習用)画像Iiが入力される。トレーニング画像Iiには、さまざまな種類(以下、「クラス」という。)の画像、たとえば、ビル、バス、花、馬、山などの画像が含まれる。効率的な学習効果を得るために、トレーニング画像Iiとして、クラスごとに、たとえば100枚の画像が解析装置10に入力される。解析装置10は、入力された複数のトレーニング画像Iiを解析して、複数種類の特徴量から、それぞれのクラスを判別できるようなカーネル射影ベクトルを導出する。
【0015】
(1−2)登録処理
登録装置60は、解析装置10により導出されたカーネル射影ベクトルを用いて、複数の登録用画像を、検索される対象となる被検索画像として記憶装置20に登録する。具体的に登録装置60は、登録用画像から画像特徴量を抽出し、その画像特徴量が複数のカーネル射影ベクトルにより形成される部分空間において位置する座標(射影)を特定する。登録装置60においては、次元数の高い元の特徴量(カラーヒストグラム等)の代わりに、次元数の低い部分空間での座標(射影)が、新しい特徴量(以下、特徴ベクトルともよぶ)として検索に用いるために登録される。登録装置60は、登録用画像を、特定した特徴ベクトルに対応付けて、被検索画像として記憶装置20に登録する。これにより記憶装置20は、被検索画像のデータベースを構築する。以上の解析処理および登録処理により、検索の前処理が完了する。
【0016】
(1−3)検索処理
検索装置80は、入力された検索要求画像に類似する被検索画像を記憶装置20から検索して出力する。具体的に検索装置80は、検索要求画像から画像特徴量を抽出し、複数のカーネル射影ベクトルにより形成される部分空間内の座標(特徴ベクトル)を特定する。検索装置80は、検索要求画像の特徴ベクトルと、記憶装置20に保持されている被検索画像の特徴ベクトルとを比べて、互いのユークリッド距離が近いと判定される被検索画像を抽出する。互いの特徴ベクトルのユークリッド距離が近くなっている画像は、基本的(理想的)には、同一クラスの画像となる。同一クラスの画像とは、たとえば、検索要求画像が「馬」の画像であった場合、データベースに記憶されたビル、バス、花、馬、山の画像のうちの「馬」の画像である。なお、互いの特徴ベクトルのユークリッド距離が近くても、検索処理によりデータベースから抽出される画像のクラスが、検索要求画像と異なる場合がある。これは、解析装置10により導出されたカーネル射影ベクトルの精度に起因し、したがって解析装置10は、異なるクラスの画像間においては、互いの特徴ベクトルのユークリッド距離が遠くなるように、部分空間を構成するカーネル射影ベクトルを効果的に決定する必要がある。
【0017】
(2)従来の画像検索システムについて
従来の画像検索システムにおいては、まず、複数の画像を用いて画像データベースを作成する際に、画像とともに、その画像を説明するためのキーワードを関連づけて記憶させていた。そのため、データベースに登録する画像数の増加にともなって、データベースの作成、管理が煩雑となっていた。
【0018】
人間の目に映る像には、当然のごとくキーワードが付されていることはない。それにもかかわらず、人間の目は、その像のクラスを識別することができる。人間は、目に映る像のみによって、たとえばキリンとライオンを見分けることができる。
【0019】
人間の目は、経験的に、目に映る像に含まれる特徴ベクトルを抽出して、それぞれの像のクラスを判別していると考えられる。初めて見る像である場合、いままで目にした多くの像から、初めて見る像との差異を無意識に抽出して、像のクラスを特定しうる。これを応用し、近年の画像検索システムにおいては、画像の特徴を数値化して、データベースを作成するようになってきた。画像の特徴として、たとえば、画像の色や模様、あるいは、画像の形状などが用いられる。
【0020】
ところが、このような画像の特徴を数値で表現すると、非常に次元の大きなベクトルとなってしまう。たとえば、画像の色を特徴とする場合、色の三原色を構成する赤(R)、青(B)、緑(G)のそれぞれの比率で、特徴量が表現される。この場合、RとGとBとがそれぞれ8ビットで表現されるとすると、特徴量を表現するための空間として、2の24乗の次元が必要となる。このような多次元量は、データベースの容量や、学習の効率性、あるいは、検索の速度に影響を与える。一方、次元数を小さくすると、有用な情報が消失する可能性があり、解析精度、ひいては、検索精度(以下、まとめて「精度」という。)が劣化することがある。したがって、本実施形態においては、特徴空間の次元数を下げつつ、検索精度を向上することを目的としている。
【0021】
(3)本発明の実施形態における画像検索システムについて
画像検索は様々な特徴量を用いて行うことができる。たとえば、特徴量としてカラーヒストグラムなどがある。様々な画像の特徴量を解析し、それぞれのクラスが最もよく判別できるような線形基底関数βiを導出することができる。画像の特徴量(たとえば、カラーヒストグラム)は基底関数βiの線形和で表される。βiは線形射影ベクトルとも言う。一方、本実施形態において複雑な現象や非線形現象などにも対応するために、低次元の入力特徴量を非線形関数で高次元特徴空間に射影し、非線形基底を求めるが、「カーネルトリック」と呼ばれる方法(カーネル関数)を導入することにより、解析装置10は非線形基底関数の代わりに、複数種類のトレーニング画像Iiのクラスを効果的に判別できるカーネル射影ベクトルαiを導出することもできる。以下、線形関数を利用して導出する基底ベクトルβiを説明する。
【0022】
基底ベクトルβiを導出すれば、画像の特徴量(たとえばカラーヒストグラム)は、以下の式で示されるように、基底ベクトルの線形和として表現される。
【数1】
【0023】
式(1)において、βiは、i番目の基底ベクトルであり、(N+1)個の基底ベクトルβにより、(N+1)次元の部分空間Fが構築される。係数siは、基底ベクトルβi上のスカラ値を示し、基底ベクトルβiにおける特徴量の大きさを示す。つまりsiは、特徴量fを、部分空間Fの軸βi上に射影した位置を示す。したがって、
S=[s0,s1,・・・sN]
は、部分空間Fにおける座標を示し、画像の特徴量fと同義に扱うことができる。一方、Sの次元数(部分空間の次元数)は、fの次元数より低いので、fの代わりにSを特徴量(特徴ベクトル)として用いると、高い次元を低い次元に圧縮することができる。したがって、このSにより、画像を表現することができ、線形射影による基底ベクトルβiが導出できれば、検索処理時にユークリッド距離を算出する際に座標(特徴ベクトル)Sを利用することができる。
【0024】
このように解析装置10が、基底ベクトルβiを求めることができれば、画像が部分空間F上の座標Sにより表現できるようになる。この基底ベクトルβiと、被検索画像としてデータベースに予め用意しておく画像ごとの係数siとを記憶しておくことによって、検索装置80が、入力画像に類似する画像を検索できる。
【0025】
しかしながら、線形関数により導出される基底ベクトルβiによると、複数種類のトレーニング画像をクラス別に分離することが困難な状況が発生しうる。そこで本実施形態の解析装置10は、教師信号付非線形関数を用いて、それぞれのクラスを効率的に判別するカーネル射影ベクトルαiを導出することとしている。非線形関数を用いることによって、画像の特徴量の次元を効率的に上げて高次元空間を捉えつつ、その中から、画像をクラスごとに分けるための有用な情報が含まれる部分空間Fを抽出することが可能となる。また、教師信号を用いることによって、学習時に各画像の特徴量をクラス間で解析することができ、カーネル射影ベクトルαiの導出精度を高めることが可能となる。このような態様により、効率的に、高精度な画像検索システム1を実現できる。以下、教師信号と非線形関数について順に説明する。
【0026】
(3−1)教師信号について
教師信号Ciは、トレーニング画像Iiのクラスを示す識別情報である。この教師信号Ciは、それぞれのトレーニング画像Iiに対応付けられて、解析装置10に入力される。たとえば教師信号Ciは、トレーニング画像Iiの属性情報として、画像フォーマットの一部に組み込まれていてもよい。また教師信号Ciは、トレーニング画像Iiを解析装置10に入力する際に、オペレータなどにより指定されてもよい。たとえば、100枚の馬の画像を解析装置10に連続して入力するときには、オペレータが、馬の画像を100枚入力することを解析装置10に通知し、解析装置10は、この通知情報を、それから連続して入力される100枚の画像が馬の画像であることを知らせる教師信号Ciとして処理してもよい。さらに、トレーニング画像Iiをクラスごとに異なるフォルダに入れておき、解析装置10が、読み出している画像ファイルのフォルダを、教師信号Ciとして取り扱ってもよい。本実施形態では、学習段階で教師信号Ciを導入することにより、解析装置10が、トレーニング画像をクラスごとにまとめることができ、結果として解析精度を高めることが可能となる。
【0027】
(3−2)非線形化について
前述したように、被検索画像の登録時におけるメモリ容量や、検索処理時における処理負荷を考慮すると、抽出するクラス分類に必要な特徴量の次元数、すなわち特徴ベクトルfを表現する部分空間の次元数は、できるだけ下げることが望ましい。しかしながら、次元数を下げすぎると、有用な情報が消失してしまい、精度が下がる場合がある。
【0028】
ところで、学習対象物から抽出される膨大な種類の特徴量は、すべてが必ずしも有用な情報というわけではない。たとえば、人間を身長別で順位付けする場合においては、性別や体重、あるいは、出身地などは不要な特徴量であることは明らかである。したがって有用な情報が含まれた特徴量のみを与える射影関数を定め、部分空間Fを構築することが望まれる。理想的な部分空間Fは、それぞれのクラスを明確に分類できる空間である。なお、トレーニング画像Iiから部分空間を形成することは、トレーニング画像Iiを入力として、カーネル射影ベクトルαiを決定することと同義である。
【0029】
(3−2−1)線形な射影について
このような部分空間の構築は、射影演算により実現される。ここでは、まず、線形な射影について説明する。なお、理解を容易にするために、2次元の空間を1次元の空間である「軸」に射影する場合について説明する。図2は、第1空間500の例を示す図である。第1空間500は、X軸とY軸とで表現される2次元空間である。第1空間500には、丸で表現された第1クラス310の特徴ベクトルと、三角で表現された第2クラス320の特徴ベクトルとが、図示するような状態で分布している。
【0030】
第1クラス310と第2クラス320のそれぞれの特徴ベクトルをX軸方向に射影すると、第1クラス310は第1領域210に射影され、第2クラス320は第2領域220に射影される。そのため、第1クラス310と第2クラス320とは、第1境界線400により、明確に分類可能となる。一方、Y軸方向に射影すると、第1クラス310と第2クラス320とは、共に、第3領域230に射影されるため、両者を分類することができない。したがって、複数のクラスを互いに分類できるようなX軸に射影する必要がある。ここで、X軸は、線形射影における式(1)の基底ベクトルβiに相当する。
【0031】
「軸」は、クラス間の分散600が最大となるように、かつ、クラス内の各特徴ベクトルの分散を示す第1クラス内分散値610、第2クラス内分散値620が最小となるように、決定されればよい。これにより、異なるクラスを分類できる精度を高めることができる。なお「分散」は、「相関度」といった差異の程度を表現するための語句に置換えて表現されてもよい。
【0032】
(3−2−2)非線形な射影について
しかしながら、線形空間だけで考えても、有用な情報が含まれる部分空間が見つからないことがある。このような場合、非線形関数により、高次元空間に射影して、次元数を上げて、その後、重要な成分が含まれた部分空間を抽出すればよい。
【0033】
例を用いて説明する。図3は、X軸とY軸とで表現される2次元の第2空間510の例を示す図である。第2空間510には、丸で表現された第3クラス330の特徴ベクトルと、三角で表現された第4クラス340の特徴ベクトルとが、図示するような状態で分布している。第2空間510に示されるように特徴ベクトルが分布している場合、X軸、Y軸のいずれの方向に射影しても、第3クラス330と第4クラス340とを図2のように明確に分類することができない。しかしながら、図3に示すように、それぞれのクラスは、第2境界線410で示される境界により分けることができる。
【0034】
図2においては、第1境界線400がY軸に平行であったため、第1境界線400が交差するX軸に射影することにより、複数のクラスを分類できたものの、第2境界線410のように、境界線が軸に平行とはならないような場合、線形射影によると複数のクラスを明確に分類できないこととなる。したがって、第2境界線410がいずれかの軸に平行となるように、第2空間510を他の空間に射影すればよい。
【0035】
図4は、図3の第2空間510を第3空間520に非線形変換したときの図である。第2空間510を第3空間520に非線形変換することによって、第2境界線410は、第3境界線420のように軸に平行な境界線となる。したがって、第3クラス330と第4クラス340とは、空間の非線形変換処理を実行することにより、Y'軸の第4領域240、第5領域250にそれぞれ射影されることで、明確に分類されることが可能となる。ここでY'軸は、非線形射影により導出されるカーネル射影ベクトルαiに相当する。
【0036】
非線形関数を用いた射影演算により、空間の次元を上げて、その中から有用な部分空間を探索することができる。これにより、解析精度を向上でき、後の検索精度も向上できる。しかしながら、このような非線形演算は、演算量等が膨大になることがある。したがって、本実施形態においては、非線形演算を簡易に実現する方法として、カーネルトリックを適用する。
【0037】
(3−2−3)非線形化手法「カーネルトリック」について
ここでは、非線形演算を簡易に実現するために、「カーネルトリック」と呼ばれる方法を導入する。この「カーネルトリック」と呼ばれる方法は、1964年にAizerman氏によって提案されたものである。この方法に用いられるカーネル関数は、低次元ベクトルを簡易に非線形変換して、高次元部分空間に射影するための関数である。
【0038】
ここで、ベクトルxが任意の非線形関数Φによって高次元空間Fに射影される場合、以下の式で表現される。
【数2】
【0039】
一般に、このような非線形関数の射影によって得られる空間の次元は非常に大きくなり、非線形変換したベクトルの次元数が大きくなると、計算コストが非常に大きくなってしまう。そこで、非線形部分空間Fにおける内積計算を式(3)に示すようなカーネル関数Kで表すことで、φ(x1)とφ(x2)との内積を低次元の入力ベクトルx1とx2のみを用いて計算することができる。
【数3】
【0040】
式(3)は、非線形関数Φが分からなくても、カーネル関数Kと、入力ベクトルxだけを用いれば、非線形部分空間Fでの様々な計算ができることを示している。このような考えを用いると、高次元に射影しながら、実際には射影された空間でのベクトルの演算を避けて、カーネルの計算のみで計算が行えるようになる。
【0041】
カーネル関数としては、以下のような関数が用いられる。式(4)〜式(6)は、いずれも計算が容易な関数である。そのため、非線形処理による射影演算が簡易な計算のみによって実現されることとなる。
【数4】
【数5】
【数6】
【0042】
以上により、カーネル関数Kと入力ベクトルxだけを用いれば、非線形部分空間Fでの様々な計算ができる。このように、高次元に射影しながら、実際には射影された空間でのベクトルの演算を避けることができ、カーネル射影ベクトルの解析が容易となる。
【0043】
(3−3)教師信号付非線形関数を用いた部分空間の抽出方法について
以下、(3−1)で述べた教師信号と(3−2)で述べた非線形化の双方を用いて、部分空間を抽出するための射影関数を導出する際の処理について、理論的に説明する。
【0044】
まず、入力されたトレーニング画像Iiごとに、カラーヒストグラムxi(i=1〜m)を作成して、出力する。xiは、n次元のベクトルである。mは、トレーニング画像の枚数である。
【数7】
【0045】
ここで、以下の非線形関数Φ(X)を用いて、カラーヒストグラムXを高次元空間に射影する。
【数8】
【0046】
高次元空間における最適部分空間を与える射影関数(射影行列)PΦは、以下の最小化問題を解くことによって求めることができる。
【数9】
【数10】
【0047】
ベクトルyiは、カラーヒストグラムxiの高次元空間における部分空間への射影(特徴ベクトル)である。また、重み行列Wijは、式(11)により定義される重み行列である。式(11)におけるiとjとが同一クラスであるか否かは、教師信号にもとづいて、判別される。この定義により、クラスが異なるyiとyjにおいては、式(9)のΣの内部の項が0となる。一方、クラスが同一の場合は、Σの内部の項が0以上となる。そのため、異なるクラス間の距離をより大きくすることができる。これにより、式(9)におけるΣの内部の項は、同一クラス内の相関を示す値となる。つまり、式(9)は、同一クラス内の相関の和を最小化することを目的とする関数となる。そのため、クラス内における距離を最小とすることができる。
【数11】
【0048】
まとめると、式(9)で示される最小化問題を解くことによって、得られた部分空間において、異なるクラス間の相関がなくなり、また、同一クラス内の相関が大きくなるようなPΦが導出できる。yは、射影関数PΦと、カラーヒストグラムxにより決定される。ここで、式(9)で示される最小化すべき目的関数は、以下のようにPΦを用いて表現される。なお、式(13)のDijは、対角行列である。
【数12】
【数13】
【0049】
ここで、Pφは、以下のように表現される。
【数14】
ここで式(14)中のαは、係数ベクトルである。
【数15】
【0050】
ここで、式(12)と式(14)を組み合わせると、次式が得られる。
【数16】
【0051】
なお、Kは、カーネル行列であり、各要素K(i、j)は、以下で定義される。なお、式(18)の代わりに、前述の式(4)、式(5)、式(6)のいずれかを用いてもよい。
【数17】
【数18】
【0052】
ここで、式(19)の条件下において、式(9)の最小化問題は、式(20)で示される一般化固有値問題へと変換される。ここで、αは、式(20)の固有値分解で求めることができる。
【数19】
【数20】
【0053】
式(20)の一般化固有値問題を解くことで得られたαを用いて、射影(特徴ベクトル)Yを以下のように求めることができる。
【数21】
【数22】
以上まとめると、式(20)の一般化固有値問題を解くことによって、ベクトルαを求め、αを用いて、高次元非線形空間における部分空間への射影(特徴ベクトル)yを直接求めることができる。さらに、これらは、式(9)や式(11)が考慮されて得られたものであるため、クラス内分散が小さくなり、かつ、クラス間分散が大きくなるような部分空間への射影を導出できていることになる。以上の態様により、解析装置10による解析精度を効率的に向上できることとなる。
【0054】
(3−4)本実施形態の具体的な構成について
図5は、本発明の実施形態にかかる教師信号付非線形画像解析手法を用いた画像検索システム1における解析装置10の構成例を示す図である。解析装置10は、トレーニング画像取得部40と、教師信号取得部42と、画像特徴量抽出部44と、カーネル射影ベクトル解析部46とを備える。カーネル射影ベクトル解析部46は、複数の画像をクラスごとに検索するためのカーネル射影ベクトルαを生成する機能をもち、パラメータ導出部48と、カーネル射影ベクトル導出部50と、関数保持部52と、カーネル射影ベクトル保持部54とを備える。
【0055】
トレーニング画像取得部40は、入力される複数のトレーニング画像を取得して、順に、画像特徴量抽出部44に出力する。教師信号取得部42は、トレーニング画像取得部40で取得されたトレーニング画像ごとに、教師信号を取得する。既述したように、この教師信号は、トレーニング画像のクラスを特定する情報である。画像特徴量抽出部44は、トレーニング画像取得部40より出力されたトレーニング画像から、画像特徴量を抽出する。本実施形態では、画像特徴量抽出部44が、画像特徴量として、カラーヒストグラムを抽出する。
【0056】
パラメータ導出部48は、画像特徴量抽出部44からカラーヒストグラムを受け取り、また教師信号取得部42からトレーニング画像ごとの教師信号を受け取る。関数保持部52は、上記した数式で特定されるカーネル射影ベクトルαの演算導出処理に必要な関数を保持し、パラメータ導出部48は、関数保持部52から関数を読み出して、演算処理を実行する。パラメータ導出部48は、画像特徴量抽出部44から取得した全てのトレーニング画像についてのカラーヒストグラムxi(i=1〜m)から、パラメータとなる行列W、D、および、Kを導出する。重み行列Wは、カラーヒストグラムxiと、教師信号Ciとを用いて、前述の式(11)により導出される。また、対角行列Dは、導出された重み行列Wを用いて、式(13)から導出される。また、カーネル行列Kは、前述の式(18)により導出される。パラメータ導出部48は、導出したW、D、Kをカーネル射影ベクトル導出部50に出力する。
【0057】
カーネル射影ベクトル導出部50は、パラメータ導出部48から出力された行列W、D、Kを用いて、式(20)で示される固有値問題を解いて、カーネル射影ベクトルαを取得する。ここで、カーネル射影ベクトル導出部50は、取得したカーネル射影ベクトルαをカーネル射影ベクトル保持部54に出力し、カーネル射影ベクトル保持部54は、カーネル射影ベクトルαを保持する。
【0058】
図6は、本発明の実施形態にかかる教師信号付非線形画像解析手法を用いた画像検索システム1における登録装置60の構成例を示す図である。登録装置60は、登録用画像取得部62と、画像特徴量抽出部64と、射影部66と、特徴ベクトル取得部68と、登録部70と、カーネル射影ベクトル保持部72と、関数保持部74とを備える。カーネル射影ベクトル保持部72は、解析装置10により導出されたカーネル射影ベクトルαを保持し、解析装置10および登録装置60が一つの装置として構成される場合には、解析装置10におけるカーネル射影ベクトル保持部54が、登録装置60においてカーネル射影ベクトル保持部72として利用されてもよい。関数保持部74は、特徴ベクトルの演算導出処理に必要な関数を保持し、射影部66は、関数保持部74から関数を読み出して、演算処理を実行する。
【0059】
登録用画像取得部62は、登録用の画像を取得して、順に、画像特徴量抽出部64に出力する。画像特徴量抽出部64は、登録用画像取得部62より出力された登録用画像から、画像特徴量を抽出する。射影部66は、式(22)により、登録用画像にかかるカーネル行列Ktを導出する。さらに射影部66は、式(23)にしたがい、カーネル射影ベクトル保持部72に保持されたカーネル射影ベクトルαで構築される部分空間に、算出したKtで変換し、登録用画像の非線形部分空間上の特徴ベクトルYtを計算する。計算した特徴ベクトルYtは、特徴ベクトル取得部68に供給される。
【数23】
【0060】
特徴ベクトル取得部68は、射影部66により導出された特徴ベクトルを取得し、登録部70に供給する。登録部70は、登録用画像を、特徴ベクトル取得部68から供給された特徴ベクトルに対応付けて記憶装置20に登録する。この登録処理は、複数の登録用画像のそれぞれに対して実行され、記憶装置20は、検索対象となる被検索画像が、それぞれの特徴ベクトルと対応付けられてデータベース化される。なお、それぞれの特徴ベクトルは、後述する検索処理時に使用されるものである。被検索画像は、記憶装置20において特徴ベクトルと紐付けされていればよく、被検索画像を格納する記憶装置と、特徴ベクトルを格納する記憶装置とは、物理的に異なっていてもよい。
【0061】
なお、以上は、登録装置60が、解析装置10により導出されたカーネル射影ベクトルαを利用して、登録用画像を登録する例について説明した。解析装置10が非線形射影によりカーネル射影ベクトルαを予め導出しておくことで、登録装置60が、登録用画像を自動的に登録することが可能となる。これにより、登録処理に手間がかからず、また多数の登録用画像の登録が可能となる。なお、解析装置10と登録装置60とが一体に構成されてもよく、このときには、解析装置10でカーネル射影ベクトルαを導出するとともに、トレーニング画像の特徴ベクトルを求めて、記憶装置20に登録することができる。これにより、解析処理と登録処理とを同時に実行することができ、作業の効率化を図ることが可能となる。
【0062】
図7は、本発明の実施形態にかかる教師信号付非線形画像解析手法を用いた画像検索システム1における検索装置80の構成例を示す図である。検索装置80は、検索要求画像取得部82と、画像特徴量抽出部84と、射影部86と、特徴ベクトル取得部88と、検索処理部90と、カーネル射影ベクトル保持部92と、関数保持部94と、出力部100とを備える。カーネル射影ベクトル保持部92は、解析装置10により導出されたカーネル射影ベクトルαを保持し、解析装置10および検索装置80が一つの装置として構成される場合には、解析装置10におけるカーネル射影ベクトル保持部54が、検索装置80においてカーネル射影ベクトル保持部92として利用されてもよい。関数保持部94は、特徴ベクトルの演算導出処理に必要な関数を保持し、射影部86は、関数保持部94から関数を読み出して、演算処理を実行する。記憶装置20は、登録装置60で登録された複数の画像および特徴ベクトルを対応付けて記憶する。
【0063】
図7に示す検索装置80は、図6に示す登録装置60と近似した構成を有する。これは、検索装置80および登録装置60ともに、解析装置10で生成されたカーネル射影ベクトルαをもとに、画像の特徴ベクトルを抽出するためである。したがって、検索装置80は、登録装置60とともに、1つの装置として構成されてもよい。なお、登録装置60が登録処理を実行して画像と特徴ベクトルとを対応付けて記憶装置20に登録し、検索装置80が、登録装置60による登録結果を用いて、インターネットなどで検索エンジンとしてサービスを提供する場合には、登録装置60と検索装置80とが別装置として構成されてもよい。
【0064】
検索要求画像取得部82は、入力された検索を要求する画像を取得して、画像特徴量抽出部84に出力する。画像特徴量抽出部84は、検索要求画像から、画像特徴量を抽出する。射影部86は、式(22)により、検索要求画像にかかるカーネル行列Ktを導出する。さらに射影部86は、式(23)にしたがい、カーネル射影ベクトル保持部92に保持されたカーネル射影ベクトルαで構築される部分空間に、算出したKtを射影して、検索要求画像の部分空間上の特徴ベクトルYtを計算する。計算した特徴ベクトルYtは、特徴ベクトル取得部88に供給される。
【0065】
特徴ベクトル取得部88は、射影部86により導出された特徴ベクトルを取得し、検索処理部90に供給する。検索処理部90は、記憶装置20にアクセスして、被検索画像の特徴ベクトルYtを読み出す。検索処理部90は、読み出した被検索画像の特徴ベクトルYtと、特徴ベクトル取得部88で取得された検索要求画像の部分空間における特徴ベクトルYtとを比較して、複数の被検索画像のYtから、検索要求画像の特徴ベクトルYtに最も近い値を有するものを検索する。この検索においては、互いのユークリッド距離が最短であるものが選択される。なお、複数枚(たとえばL枚)の類似画像を検索する処理であれば、検索処理部90は、記憶装置20に格納された被検索画像のなかから、ユークリッド距離が近い上位L枚の画像を選択して、出力部100に出力する。出力部100は、検索処理部90から出力された検索結果にかかる画像を表示する。
【0066】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0067】
(3−5)本実施形態の動作について
以上の態様における動作例について説明する。まず、図5の解析装置10の動作について説明する。なお、以下の例では、トレーニング画像を解析装置10により解析するとともに、トレーニング画像を記憶装置20に登録する処理を同時に行っている。
【0068】
図8は、図5の解析装置10の動作例を示すフローチャートである。まず、トレーニング画像取得部40は、トレーニング画像を取得して、画像特徴量抽出部44に出力する(S10)。教師信号取得部42は、トレーニング画像取得部40で取得されたカラーヒストグラムにかかるトレーニング画像のクラスを示す教師信号を取得して、パラメータ導出部48に出力する(S12)。他に入力すべきトレーニング画像が存在する場合(S14のY)、S10に戻る。入力すべきトレーニング画像が存在しない場合(S14のN)、S16に移る。
【0069】
画像特徴量抽出部44は、トレーニング画像取得部40より出力されたトレーニング画像から、カラーヒストグラムを抽出して、パラメータ導出部48に出力する(S16)。パラメータ導出部48は、画像特徴量抽出部44から取得した全てのトレーニング画像についてのカラーヒストグラムxi(i=1〜m)と、それぞれの教師信号Ciとを用いて、式(11)、式(13)、式(18)にしたがって、パラメータとなる行列W、D、および、Kを導出する(S18)。
【0070】
カーネル射影ベクトル導出部50は、パラメータ導出部48により導出された行列W、D、Kを用いて、式(20)で示される固有値問題を解いて、カーネル射影ベクトルαを取得する(S20)。さらに、カーネル射影ベクトル導出部50は、式(21)により、カーネル射影ベクトルαと、カーネル行列Kとを用いて、射影演算を実行する(S22)。なお、この射影処理は、図6の射影部66による処理と同じであり、このフローでは、カーネル射影ベクトル導出部50が、射影部66の機能も担っている。カーネル射影ベクトル導出部50は、射影演算の結果である各トレーニング画像の特徴ベクトルYを記憶装置20に登録して(S24)、処理を終了する。
【0071】
つぎに、図7の検索装置80の動作について説明する。図9は、図7の検索装置80の動作例を示すフローチャートである。このフローチャートは、図8のフローチャートに示される処理によって記憶装置20に被検索画像が登録された後に開始される。
【0072】
まず、検索要求画像取得部82が、検索要求画像を取得する(S30)。画像特徴量抽出部84は、検索要求画像取得部82によって取得された検索要求画像から、カラーヒストグラムxtを抽出して、射影部86に出力する(S32)。また、射影部86には、トレーニング画像にかかるカラーヒストグラムxi(i=1〜m)が供給される。なおトレーニング画像のカラーヒストグラムxiは、記憶装置20ないしは他の記憶装置に格納されており、射影部86は、カラーヒストグラムxiを読み出してもよい。
【0073】
ここで、射影部86は、xtとxiとを用いて、式(22)により、検索要求画像にかかる系列Ktを導出する(S34)。さらに、射影部86は、式(23)にしたがい、導出したKtと、カーネル射影ベクトル保持部92に保持されたカーネル射影ベクトルαとを用いて、部分空間における検索要求画像の特徴ベクトルYtを算出する(S36)。
【0074】
ここで、検索処理部90は、記憶装置20に記憶された被検索画像の特徴ベクトルと、検索要求画像の特徴量Ytとを比較して、検索要求画像の特徴ベクトルYtに近い値を有する特徴ベクトルを検索し(S38)、近い順に、ユーザから指定された枚数だけ、特徴ベクトルに紐付けられたトレーニング画像を出力する。ここで、再検索を実行しないことをユーザが選択した場合、処理を終了する(S40のN)。再検索を実行することが選択された場合(S40のY)、S32に戻る。なお、再検索においては、S38において過去に検索されたトレーニング画像以外の画像を対象として、検索されるようにしてもよい。
【0075】
(4)本実施形態の効果について
ここでは、2つのシミュレーションを用いて、本実施形態の効果について説明する。第1のシミュレーションは、次元数Nを変数とした場合における検索の正答率についてのシミュレーションである。第1のシミュレーションにおける条件は、以下のとおりである。
【0076】
<シミュレーション条件1>
クラス総数:10クラス
トレーニング画像の枚数:960枚(96枚×10クラス)
検索要求画像総数:40枚(4枚×10クラス)
検索要求画像:同一クラスに属する4枚のいずれか
連続検索回数:30
次元数N:1〜20
比較対象:PCA、ICA、LPP、SLPP、KLPP、KPCA
その他:一度検索されたトレーニング画像は削除され、その後、再検索が実行される
【0077】
なお、本実施形態のアルゴリズムの比較対象として、6つのアルゴリズムを挙げた。具体的には、PCAと、ICAと、LPPと、SLPP(Supervised LPP、教師付LPP)と、KLPP(Kernel LPP、カーネルLPP)と、KPCA(Kernel PCA、カーネルPCA)である。これらはいずれも公知のアルゴリズムであるため、説明を省略する。
【0078】
シミュレーション条件1におけるシミュレーション結果について説明する。図10は、本発明の実施形態にかかるシミュレーション条件1における第1シミュレーション結果700を示す図である。第1シミュレーション結果700は、PCA710とICA720とLPP730とSLPP740とKLPP750とKPCA770とのそれぞれの結果と、本実施形態の画像検索システム1による結果が示されたOurMethod760とを含む。横軸は、次元数Nを示す。縦軸は、検索の正答率を示す。
【0079】
検索の正答率とは、連続して30回検索した場合において、検索要求画像のクラスと検索された画像のクラスとが一致した枚数を30で割った値をいう。シミュレーション条件1のその他の欄に示したように、再検索においては、検索画像が検索の母集団から除かれる。したがって、検索がランダムに実施される場合、最初の検索においては10%(96/960)の確率で正答するものの、2回目に正答する確率は、約9.9%(95/959)となる。そうすると、30回目に正答する確率は、約7.2%(67/931)となる。これは、検索回数が増えるにつれて、正答することが困難となることを示している。
【0080】
第1シミュレーション結果700において、KLPP750の場合は、次元数Nを増加しても、15%前後の正答率としかならない。また、PCA710、ICA720、LPP730、SLPP740、KPCA770の場合、次元数が1から5になるにつれて、正答率が25%前後から35%ないし45%前後まで上昇する。しかし、次元数が5以上となっても、正答率は上昇せず、35%ないし45%前後で飽和した状態となる。
【0081】
一方、OurMethod760においては、次元数Nが1の場合でも約35%の正答率を有し、次元数が上昇するにつれて正答率も上昇し、次元数が9となる前後で、80%を超える正答率となる。ランダムな場合の正答率が約7.2%であることと比べると、本実施形態の手法では、驚異的な正答率を達成できていることが分かる。また、PCA710等の他の手法と比べても、次元数=10において、40%以上も高い正答率を有している。したがって、本手法は、極めて有効な検索手法であるといえる。
【0082】
なお、次元数が11以上となると正答率が下降しているが、これは、過学習によるものであると考えられる。過学習とは、たとえば、性別を判断するための特徴量として、生年月日が追加された場合に相当する。また、次元数を増やしたことで、カーネル射影ベクトルαにおいて、無理に不要な情報が含まれ、結果として余計なカーネル射影ベクトルが追加されて、クラスの判別能力に影響がでたと考えられる。
【0083】
第2のシミュレーションは、検索回数を変数とした場合における検索の正答率についてのシミュレーションである。第2のシミュレーションにおける条件は、以下のとおりである。
【0084】
<シミュレーション条件2>
クラス総数:10クラス
トレーニング画像の枚数:960枚(96枚×10クラス)
検索要求画像総数:40枚(4枚×10クラス)
検索要求画像:同一クラスに属する4枚のいずれか
カーネル射影ベクトルαの最大次元数N:10
検索回数:1〜96
比較対象:PCA、ICA、LPP、SLPP、KLPP、KPCA
その他:一度検索されたトレーニング画像は削除され、その後、再検索が実行される
【0085】
シミュレーション条件2におけるシミュレーション結果について説明する。図11は、本発明の実施形態にかかるシミュレーション条件2における第2シミュレーション結果800を示す図である。第2シミュレーション結果800は、PCA810とICA820とLPP830とSLPP840とKLPP850とKPCA870とのそれぞれの結果と、本実施形態の画像検索システム1による結果が示されたOurMethod860とを含む。横軸は、検索回数を示す。縦軸は、検索の正答率を示す。
【0086】
第2シミュレーション結果800についてのOurMethod860以外の手法においては、1回目を最高とし、その後連続検索回数が上昇するにつれて、正答率が下がっている。これは、前述したように、検索回数が増えるにつれて、正答することが困難となるためである。
【0087】
一方、OurMethod860においては、1回目から30回目前後までは、正答率として驚異的な80%弱の値を達成できている。また、96回目においても、約65%といった高い正答率を誇っている。したがって、本検索手法は、極めて検索率の高い手法であるといえる。
【0088】
以上説明したように本実施の形態によれば、非線形関数により射影された高次の空間から、画像のそれぞれのクラスが識別可能な部分空間を抽出することによって、識別のための重要な情報を適切に抽出でき、精度を向上できる。また、同じクラスの画像同士の特徴量の相関が高く、かつ、異なるクラスの画像同士の特徴量の相関がなくなるように、重み行列Wを算出することによって、クラス間の識別が容易となり、精度をより向上できる。また、カーネル行列Kと重み行列Wとの積により射影行列を生成し、生成された射影行列のカーネル射影ベクトルを導出することによって、効率的に特徴ベクトルを導出できるため、システム全体の処理負担を軽減できる。また、特徴量を部分空間に射影することによって、検索処理が容易となり、また、精度を向上できる。
【0089】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0090】
(5)その他
前述した実施形態においては、画像の特徴量として、カラーヒストグラムを用いるとして説明した。しかしながらこれにかぎらず、たとえば、画像の形状や、画像の模様、あるいは、これらの組合せた情報を数値化して、特徴量として規定してもよい。このような特徴量を用いたとしても、前述の実施形態に適用することが可能であり、また、前述と同等の効果が得られることは言うまでもない。
【図面の簡単な説明】
【0091】
【図1】画像検索システムの構成例を示す図である。
【図2】第1空間の例を示す図である。
【図3】第2空間の例を示す図である。
【図4】第2空間を第3空間に非線形変換したときの図である。
【図5】解析装置の構成例を示す図である。
【図6】登録装置の構成例を示す図である。
【図7】検索装置の構成例を示す図である。
【図8】解析装置の動作例を示すフローチャートである。
【図9】検索装置の動作例を示すフローチャートである。
【図10】第1シミュレーション結果を示す図である。
【図11】第2シミュレーション結果を示す図である。
【符号の説明】
【0092】
1・・・画像検索システム、10・・・解析装置、20・・・記憶装置、40・・・トレーニング画像取得部、42・・・教師信号取得部、44・・・画像特徴量抽出部、46・・・カーネル射影ベクトル解析部、48・・・パラメータ導出部、50・・・カーネル射影ベクトル導出部、52・・・関数保持部、54・・・カーネル射影ベクトル保持部、60・・・登録装置、62・・・登録用画像取得部、64・・・画像特徴量抽出部、66・・・射影部、68・・・特徴ベクトル取得部、70・・・登録部、72・・・カーネル射影ベクトル保持部、74・・・関数保持部、80・・・検索装置、82・・・検索要求画像取得部、84・・・画像特徴量抽出部、86・・・射影部、88・・・特徴ベクトル取得部、90・・・検索処理部、92・・・カーネル射影ベクトル保持部、94・・・関数保持部、100・・・出力部。
【特許請求の範囲】
【請求項1】
複数の画像を取得する画像取得部と、
前記画像取得部によって取得した画像ごとに、画像特徴量を抽出する抽出部と、
前記抽出部によって画像特徴量が抽出された画像のクラスを特定する教師信号を取得する教師信号取得部と、
前記抽出部によって抽出された画像特徴量と、前記教師信号取得部によって取得した教師信号と用いて、画像間の相関を表現するための重み行列を生成する重み行列生成部と、
所定のカーネル非線形関数を用いて、前記抽出部にて抽出されたそれぞれの画像の画像特徴量が分布している空間をより次元の高い高次元空間に射影するためのカーネル行列を導出するカーネル行列導出部と、
前記カーネル行列導出部によって導出されたカーネル行列と、前記重み行列生成部によって生成された重み行列とを用いて、前記画像取得部にて取得された画像のそれぞれのクラスが識別可能な部分空間を前記高次元空間から抽出するためのカーネル射影ベクトルを導出するカーネル射影ベクトル導出部と、
を備えることを特徴とする画像解析装置。
【請求項2】
前記抽出部は、前記画像取得部によって取得した画像のカラーヒストグラムを抽出することを特徴とする請求項1に記載の画像解析装置。
【請求項3】
前記重み行列生成部は、異なるクラスの画像同士の特徴量の相関がなくなるように、重み行列を生成することを特徴とする請求項1または2に記載の画像解析装置。
【請求項4】
前記カーネル射影ベクトル導出部は、前記カーネル行列と前記重み行列との積により射影行列を生成し、生成された射影行列のカーネル射影ベクトルを導出することを特徴とする請求項1から3のいずれかに記載の画像解析装置。
【請求項5】
登録用の画像を取得する登録用画像取得部と、
請求項1から4のいずれかに記載の画像解析装置により導出されたカーネル射影ベクトルを保持する保持部と、
前記登録用画像取得部で取得された登録用画像の画像特徴量を抽出する抽出部と、
抽出した前記画像特徴量を、前記カーネル射影ベクトルで特定される部分空間に射影する射影部と、
前記射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、
登録用画像を、取得した特徴ベクトルに対応付けて記憶装置に登録する登録部と、
を備えることを特徴とする画像登録装置。
【請求項6】
検索を要求する検索要求画像を取得する検索要求画像取得部と、
請求項1から4のいずれかに記載の画像解析装置により導出されたカーネル射影ベクトルを保持する保持部と、
請求項5に記載の画像登録装置により登録された複数の画像および特徴ベクトルを記憶する記憶装置と、
前記検索要求画像取得部で取得された検索要求画像の画像特徴量を抽出する抽出部と、
抽出した前記画像特徴量を、前記カーネル射影ベクトルで特定される部分空間に射影する射影部と、
前記射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、
検索要求画像の特徴ベクトルと、前記記憶装置に記憶された複数の特徴ベクトルとを比較することによって、前記記憶装置に記憶された複数の画像から、検索要求画像とユークリッド距離の近い画像を出力する検索処理部と、
を備えることを特徴とする画像検索装置。
【請求項1】
複数の画像を取得する画像取得部と、
前記画像取得部によって取得した画像ごとに、画像特徴量を抽出する抽出部と、
前記抽出部によって画像特徴量が抽出された画像のクラスを特定する教師信号を取得する教師信号取得部と、
前記抽出部によって抽出された画像特徴量と、前記教師信号取得部によって取得した教師信号と用いて、画像間の相関を表現するための重み行列を生成する重み行列生成部と、
所定のカーネル非線形関数を用いて、前記抽出部にて抽出されたそれぞれの画像の画像特徴量が分布している空間をより次元の高い高次元空間に射影するためのカーネル行列を導出するカーネル行列導出部と、
前記カーネル行列導出部によって導出されたカーネル行列と、前記重み行列生成部によって生成された重み行列とを用いて、前記画像取得部にて取得された画像のそれぞれのクラスが識別可能な部分空間を前記高次元空間から抽出するためのカーネル射影ベクトルを導出するカーネル射影ベクトル導出部と、
を備えることを特徴とする画像解析装置。
【請求項2】
前記抽出部は、前記画像取得部によって取得した画像のカラーヒストグラムを抽出することを特徴とする請求項1に記載の画像解析装置。
【請求項3】
前記重み行列生成部は、異なるクラスの画像同士の特徴量の相関がなくなるように、重み行列を生成することを特徴とする請求項1または2に記載の画像解析装置。
【請求項4】
前記カーネル射影ベクトル導出部は、前記カーネル行列と前記重み行列との積により射影行列を生成し、生成された射影行列のカーネル射影ベクトルを導出することを特徴とする請求項1から3のいずれかに記載の画像解析装置。
【請求項5】
登録用の画像を取得する登録用画像取得部と、
請求項1から4のいずれかに記載の画像解析装置により導出されたカーネル射影ベクトルを保持する保持部と、
前記登録用画像取得部で取得された登録用画像の画像特徴量を抽出する抽出部と、
抽出した前記画像特徴量を、前記カーネル射影ベクトルで特定される部分空間に射影する射影部と、
前記射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、
登録用画像を、取得した特徴ベクトルに対応付けて記憶装置に登録する登録部と、
を備えることを特徴とする画像登録装置。
【請求項6】
検索を要求する検索要求画像を取得する検索要求画像取得部と、
請求項1から4のいずれかに記載の画像解析装置により導出されたカーネル射影ベクトルを保持する保持部と、
請求項5に記載の画像登録装置により登録された複数の画像および特徴ベクトルを記憶する記憶装置と、
前記検索要求画像取得部で取得された検索要求画像の画像特徴量を抽出する抽出部と、
抽出した前記画像特徴量を、前記カーネル射影ベクトルで特定される部分空間に射影する射影部と、
前記射影部により導出された特徴ベクトルを取得する特徴ベクトル取得部と、
検索要求画像の特徴ベクトルと、前記記憶装置に記憶された複数の特徴ベクトルとを比較することによって、前記記憶装置に記憶された複数の画像から、検索要求画像とユークリッド距離の近い画像を出力する検索処理部と、
を備えることを特徴とする画像検索装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−295130(P2009−295130A)
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願番号】特願2008−151090(P2008−151090)
【出願日】平成20年6月9日(2008.6.9)
【特許番号】特許第4228031号(P4228031)
【特許公報発行日】平成21年2月25日(2009.2.25)
【出願人】(507173872)株式会社リミックスポイント (4)
【出願人】(593006630)学校法人立命館 (359)
【Fターム(参考)】
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願日】平成20年6月9日(2008.6.9)
【特許番号】特許第4228031号(P4228031)
【特許公報発行日】平成21年2月25日(2009.2.25)
【出願人】(507173872)株式会社リミックスポイント (4)
【出願人】(593006630)学校法人立命館 (359)
【Fターム(参考)】
[ Back to top ]