(57)【特許請求の範囲】
【請求項１】
一つ以上の特徴量ベクトルの集合によって表現されたコンテンツを、前記一つ以上のベクトルの集合が持つ情報量よりも小さい情報量となるようなバイナリベクトルに変換する特徴量生成装置であって、
特徴量生成対象のコンテンツを表現する前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、予め定めた量子化器を適用することで、前記特徴量ベクトルの各々に所定個数の量子のうちの少なくとも一つを割り当てる量子化部と、
前記量子が割り当てられた前記特徴量ベクトルの各々について、予め求めた所定の変換行列を適用することで、前記バイナリベクトルを求めるバイナリ化部と、
を含み、
前記量子化器、及び前記変換行列は、入力された複数の前記特徴量ベクトルに基づいて、前記特徴量ベクトルと、前記量子化器及び前記変換行列を用いて前記特徴量ベクトルから得られる前記バイナリベクトルとの誤差を最小にするように定められることを特徴とする特徴量生成装置。
【請求項２】
前記量子化部は、前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、前記量子化器を適用することで、前記特徴量ベクトルの各々に前記所定個数の量子のうちの少なくとも一つを割り当てると共に、同一の量子が割り当てられた一つ以上の特徴量ベクトルに基づいて、統合特徴量ベクトルを求め、
前記バイナリ化部が、前記統合特徴量ベクトルについて、前記変換行列を適用することで、前記バイナリベクトルを求めることを特徴とする請求項１に記載の特徴量生成装置。
【請求項３】
一つ以上の特徴量ベクトルの集合によって表現されたコンテンツを、前記一つ以上のベクトルの集合が持つ情報量よりも小さい情報量となるようなバイナリベクトルに変換する特徴量生成装置における特徴量生成方法であって、
量子化部が、特徴量生成対象のコンテンツを表現する前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、予め定めた量子化器を適用することで、前記特徴量ベクトルの各々に所定個数の量子のうちの少なくとも一つを割り当てる量子化ステップと、
バイナリ化部が、前記量子が割り当てられた前記特徴量ベクトルの各々について、予め求めた所定の変換行列を適用することで、前記バイナリベクトルを求めるバイナリ化ステップと、
を含み、
前記量子化器、及び前記変換行列は、入力された複数の前記特徴量ベクトルに基づいて、前記特徴量ベクトルと、前記量子化器及び前記変換行列を用いて前記特徴量ベクトルから得られる前記バイナリベクトルとの誤差を最小にするように定められることを特徴とする特徴量生成方法。
【請求項４】
前記量子化部が割り当てるステップは、前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、前記量子化器を適用することで、前記特徴量ベクトルの各々に前記所定個数の量子のうちの少なくとも一つを割り当てると共に、同一の量子に割り当てられた一つ以上の特徴量ベクトルに基づいて、統合特徴量ベクトルを求め、
前記バイナリ化部が求めるステップは、前記統合特徴量ベクトルについて、前記変換行列を適用することで、前記バイナリベクトルを求めることを特徴とする請求項３に特徴量生成方法。
【請求項５】
コンピュータに、請求項３又は請求項４に記載の特徴量生成方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特徴量生成装置、方法、及びプログラムに係り、特に、コンテンツの特徴ベクトルをバイナリベクトルに変換する特徴量生成装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
通信環境やコンピュータ、分散処理基盤技術の高度・高品質化により、ネットワークに流通するメディアコンテンツの数は膨大なものとなっている。例えば、ある検索エンジンがインデクシングしているウェブページの数は数兆にのぼるといわれている。また、あるサイトでは、日々３．５億の画像がアップロードされていると報告されており、また、あるサイトでは、１分当たり６４時間分の映像が新規に公開されているとの報告もある。
【０００３】
このような膨大な量のコンテンツは、利用者にとっては豊富な情報源となる一方で、閲覧したいコンテンツに素早くアクセスすることがますます困難になっているという課題ももたらしている。このような流れの中、閲覧・視聴したいコンテンツを効率的に探し出すためのメディア解析技術への要望がますます高まってきている。
【０００４】
上記のような用途においては、一般にコンテンツの意味内容に興味があり、意味内容として同一、又は類似したコンテンツを発見する手続きが重要な役割を果たす。ここで言う意味内容とは、コンテンツの内容を表すインスタンスであり、実態を伴い、名称づけできるものを指す。例えば、画像や映像に写っている物体がその代表例である。
【０００５】
例えば、コンテンツを分類する場合を考えると、同じような意味内容を持つコンテンツを同じカテゴリに分類したいことが多い。あるいは検索の場合、あるコンテンツをクエリとして与えたとき、このコンテンツと同一あるいは類似した意味内容を持つコンテンツを検索することが基本的な要件となる。そのほか、コンテンツ推薦においても、利用者がこれまでに閲覧した／閲覧しているコンテンツと意味内容として同一、ないし類似したコンテンツを発見してこれを推薦する。また、コンテンツ要約の場合においても、意味内容に重複のない部分を発見し、これをまとめていく処理が必要となる。
【０００６】
ここで、意味内容が同一、又は類似したコンテンツを発見する典型的な手続きについて解説しておく。まず、各々のコンテンツを一つ以上の特徴量ベクトルの集合によって表現する。次に、互いに異なる二つのコンテンツに含まれる特徴量ベクトル同士の近さを測り、これが近いペア（マッチするペア）が多数含まれているほど、意味内容が近しい、又は、同一のコンテンツであると見做す。
【０００７】
ここで、一つのコンテンツを一つ以上の特徴量ベクトルの集合として表現する理由を、コンテンツが画像で、意味内容が物体である場合を例に説明しよう。なお、意味内容が物体以外のもの、例えば文字や図形、情景や場所などを表す場合も全く同様であり、また、コンテンツが映像である場合にも、映像は画像の系列と考えられるので、この場合にも全く同様である。
【０００８】
通常、物体は、例え同一の物体であっても、どの画像にも同じ位置・姿勢（角度など）・大きさで写っているわけではなく、画像によってさまざまである。然るに画像から抽出される特徴量は、位置・姿勢・大きさに対して不変性を持つことが望ましい。画像一枚そのものを表現するような単純な特徴量ベクトルでは、このような不変性を得ることは難しい。例えばピクセル値をベクトルに並べたもの等は、位置・姿勢・大きさいずれに対しても不変でない。一方、一部情報を抽象化したもの、例えば、色ヒストグラム等は、位置・姿勢に対する不変性は持ちうるが、大きさに対する不変量ではない。また、物体の一部が欠けていたりする場合に対しても脆弱であるし、情報を抽象化している分判別精度が劣化しやすい。一方で、画像の微小な領域を大量に抽出し、各微小領域を表現する一定次元の特徴量ベクトルを得るものとし、この複数の特徴量ベクトルの集合によって画像を表現したとすると、位置・姿勢・大きさ、いずれに対しても不変な特徴量とすることができる。より具体的には、このように表現された二枚の画像があるとき、各画像を表現する特徴量ベクトルの集合から、それぞれ一サンプルずつを取って比較し、同一性を判定する。同一なものの数が多ければ、この二枚の画像は同一の物体を含む可能性が高く、小さければ低いと言える。各画像の（微小領域の）特徴量ベクトル同士の比較は、微小領域の位置や大きさに依らず行われる。また、もし特徴量ベクトル自体が姿勢に対して不変性を持つものであるとすれば、このような表現及びその比較は、位置・姿勢・大きさのいずれにも不変である。実際、姿勢に対して不変性を持つ特徴量ベクトルを得る方法は、多くの方法が知られており、例えば非特許文献１に記載のＳｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ（ＳＩＦＴ）や非特許文献２に記載のＳｐｅｅｄ−ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ（ＳＵＲＦ）などが存在する。
【０００９】
以上述べた通り、上記典型的な手続きによれば、コンテンツを一つ以上の特徴量ベクトルの集合として表現することで、位置・姿勢・大きさによらず、頑健に、意味内容が同一、又は、近しいコンテンツを発見することができる。
【００１０】
一方で、このような方法は、コンテンツ同士を比較するために、多数の特徴量ベクトルを比較しなければならず、非常に非効率的であるという問題がある。
【００１１】
仮に、コンテンツが１２８次元の特徴量ベクトル１００００個で表現されているとしよう。この時、任意の二つのコンテンツを比較するのに、１００００×１００００×１２８の、計１２８億回の演算を要し、一般的なコンピュータで実行した場合、１０〜１５秒程度の時間を要する。もしコンテンツ数が１００００あったとして、これらの中から意味内容が同一あるいは近しいコンテンツを発見するような場合には、さらにこの１００００倍の時間を要することとなる。
【００１２】
加えて、このような特徴量ベクトルが実数値（４バイト精度）を全てメモリにストアした場合、約５０ギガバイト（ＧＢ）という非常に大きなメモリが必要となる。
【００１３】
以上の問題を鑑み、実用上、高速かつ高効率に、意味内容が同一又は近しいコンテンツを発見可能にする特徴量生成技術が望まれる。
【００１４】
以上の問題に対して、従来よりいくつかの発明がなされ、開示されてきている。
【００１５】
非特許文献３には、特徴量ベクトルを量子化することによって、文書検索の容量で同一の物体を含む画像を発見可能にする方法を開示している。画像から、微小領域であるところの多数の特徴点を検出し、各特徴点をＳＩＦＴ特徴量によって記述する。このようにして抽出された多数のＳＩＦＴ特徴量をＫ−ｍｅａｎｓ法によってクラスタリングすることで、予めベクトル量子化器（符号張）を学習しておく。この量子化器を用いて、元の画像の特徴量ベクトルを量子（符号）にベクトル量子化することで、画像は複数の量子によって表現されることになる。結果として、画像と量子の関係は、文書とこれに含まれる単語の関係と等価になるので、文書検索と同じ容量で検索が実行できるようになる。
【００１６】
特許文献１には、非特許文献３に開示されている手続きと同様の手続きを取り、さらに、各量子の出現頻度を複数種類求めることで、より高精度に同一の物体を含む画像を発見することができる方法を開示している。
【００１７】
非特許文献４に開示されている技術は、下記のようなものである。まず、非特許文献３に開示されている手続きと同様に量子化器を学習する。また、特徴量ベクトルの次元に等しい大きさを持つランダムな変換行列を一つ生成し、さらに、量子ごとに各量子に割り当てられた特徴量ベクトルに対して、この変換行列を適用した際に得られるベクトルの中央値ベクトルを求めておく。画像を表現する際には、まず、当該画像に含まれる特徴量ベクトルを量子化器を用いて量子化した後、さらに、先の変換行列を特徴量ベクトルに適用し、特徴量ベクトルが先に求めた中央値ベクトルよりも大きいか否かを判定することによって、二値（例えば１、０）のバイナリベクトルを生成する。これにより、各特徴量ベクトルが、量子と二値とのバイナリベクトルの二種類の情報によって表現されることとなる。画像間（又は異なる画像に含まれる特徴量ベクトル間）の比較を実行する際には、特徴量ベクトルが割り当てられた量子が同一であり、さらに、対応するバイナリベクトル間の距離が一定値以下である場合に限り、両者はマッチすると判定する。
【００１８】
非特許文献５に開示されている技術は、下記のようなものである。まず、非特許文献３に開示されている手続きと同様に量子化器を学習する。画像を表現する際には、まず、当該画像に含まれる特徴量ベクトルを量子化器を用いて量子化する。続いて、量子ごとに、当該量子に割り当てられた特徴量ベクトルと、当該量子の代表ベクトルとの残差ベクトルを求め、その総和を取る。最終的に、量子ごとに計算されたこの残差ベクトルを一列に並べたベクトル（すなわち、「量子数×特徴量ベクトル次元数」の次元を持つ）を求め、これを当該画像の表現とする。
【００１９】
非特許文献６には、非特許文献５に類似した技術が開示されている。非特許文献５の技術との違いは、量子ごとの残差ベクトルの総和に対して、非特許文献４同様、特徴量ベクトルの次元に等しい大きさを持つランダムな変換行列を適用し、これが中央値ベクトルよりも大きいか否かを判定することによって、二値（例えば１、０）のバイナリベクトルに変換する。最終的に、量子ごとに計算されたバイナリベクトルを一列に並べたベクトル（すなわちこちらも、「量子数×特徴量ベクトル次元数」の次元を持つ）を求め、これを当該画像の表現とする。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２０１４−２２９０６３
【非特許文献】
【００２１】
【非特許文献１】D.G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints ”, International Journal of Computer Vision, pp.91-110, 2004
【非特許文献２】H. Bay, T. Tuytelaars, and L.V. Gool, “SURF: Speeded Up Robust Features”, Lecture Notes in Computer Science, vol. 3951, pp.404-417, 2006
【非特許文献３】Josef Sivic, Andrew Zisserman. Video Google: A Text Retrieval Approach to Object Matching in Videos. In Proc. IEEE International Conference on Computer Vision (ICCV). Pages. 1470-1477, 2003.
【非特許文献４】Herve Jegou, Matthijs Douze, Cordelia Schmid. Hamming Embedding and Weak Geometric Consistency. In Proc. European Conference on Computer Vision (ECCV). Pages. 304-317, 2008.
【非特許文献５】Herve Jegou, Matthijs Douze, Cordelia Schmid, Patrick Perez. Aggregating Local Descriptors into a Compact Image Representation. In Proc. IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Pages. 3304-3311, 2010.
【非特許文献６】Giorgos Tolias, Yannis S. Avrithis, Herve Jegou. To Aggregate or Not To Aggregate: Selective Match Kernels for Image Search. In Proc. IEEE International Conference on Computer Vision (ICCV). Pages. 1401-1408, 2013.
【発明の概要】
【発明が解決しようとする課題】
【００２２】
大局的にみれば、既存の技術においては、精度と処理効率の両立がなされていない点が問題である。
【００２３】
非特許文献３、及び特許文献１に開示されている技術は、特徴量ベクトルを量子化し、コンテンツを量子の集合として表現することで、非効率的な特徴量ベクトルの比較を省き、処理を効率化することができていた。しかしながら、本来実数値の特徴量ベクトルを、単純に量子化してしまうと、量子化誤差の影響が非常に大きく、結果として精度が大きく劣化するという問題が出てきてしまう。
【００２４】
反対に、非特許文献５の技術は、各量子に割り当てられた特徴量ベクトルと代表ベクトルとの残差ベクトルの総和を求めることで、この量子化誤差の影響を低減している。しかしながら、このようにして求められる残差ベクトルは依然として実数値のままであり、現実的な量子数で量子化した場合には非効率的な処理になってしまうという問題がある。つまり、例えば、量子数Ｋが１６ビット、すなわち２＾１６＝６５５３６個の量子によって量子化されるとした場合、最終的にコンテンツを表現するベクトルの長さは１コンテンツあたり６５５３６×１２８＝８，３８８，６０８次元と膨大な次元となる。最悪の場合、情報量にして１コンテンツ当たり３２メガバイト（ＭＢ）、仮にコンテンツ数が１００００であるとすると、必要なメモリ容量は３１２ＧＢにまで膨れ上がることになる。さらに、コンテンツ間の比較を行う場合にも、この非常に高次元な実数値ベクトルの距離を比較することになるので、多大な時間を要してしまう。
【００２５】
非特許文献６の技術は、非特許文献５の技術の効率を改善しようとした技術であると見做すことができる。各量子に割り当てられた特徴量ベクトルと代表ベクトルとの残差ベクトルの総和を、ランダムな変換行列と中央値ベクトルによってバイナリベクトル化する。つまり、例えば、先の例と同様、１６ビット量子化、コンテンツ数１００００の場合、必要な最悪メモリ容量は１０ＧＢ程度にまで抑えることができる。さらに、バイナリベクトルの比較は論理演算のみ（排他的論理和と、１であるビットの数のカウント）で演算することが可能であり、実数値である残差ベクトルの比較よりも遥かに高速に処理できる。しかしながら、この技術は、本来実数である特徴量ベクトルをランダムな変換行列によってバイナリベクトルに変換するため、元の特徴量ベクトルの持つ情報を必ずしも良好に保存しない。言い換えれば、バイナリ化することによる量子化誤差の影響が無視できない位大きくなる。さらに、非特許文献３、及び特許文献１と同様、量子化による量子化誤差の影響を受けるため、トータルとしての量子化誤差の影響が非常に大きく、結果として甚大な精度劣化を引き起こすという問題が残っていた。
【００２６】
以上概観するに、現在に至るまで、処理時間、メモリ容量の観点での効率的でありながら、意味内容が同一または近しいコンテンツを精度よく発見できるコンテンツの特徴量を生成することができる技術は発明されていなかった。
【００２７】
本発明は、上記問題点を解決するために成されたものであり、意味内容が同一又は近しいコンテンツを、精度よく、かつ効率的に発見することができる特徴量生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記目的を達成するために、第１の発明に係る特徴量生成装置は、一つ以上の特徴量ベクトルの集合によって表現されたコンテンツを、前記一つ以上のベクトルの集合が持つ情報量よりも小さい情報量となるようなバイナリベクトルに変換する特徴量生成装置であって、特徴量生成対象のコンテンツを表現する前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、予め定めた量子化器を適用することで、前記特徴量ベクトルの各々に所定個数の量子のうちの少なくとも一つを割り当てる量子化部と、前記量子が割り当てられた前記特徴量ベクトルの各々について、予め求めた所定の変換行列を適用することで、前記バイナリベクトルを求めるバイナリ化部と、を含んで構成されており、前記量子化器、及び前記変換行列は、入力された複数の前記特徴量ベクトルに基づいて、前記特徴量ベクトルと、前記量子化器及び前記変換行列を用いて前記特徴量ベクトルから得られる前記バイナリベクトルとの誤差を最小にするように定められることを特徴とする。
【００２９】
また、第１の発明に係る特徴量生成装置において、前記量子化部は、前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、前記量子化器を適用することで、前記特徴量ベクトルの各々に前記所定個数の量子のうちの少なくとも一つを割り当てると共に、同一の量子が割り当てられた一つ以上の特徴量ベクトルに基づいて、統合特徴量ベクトルを求め、前記バイナリ化部が、前記統合特徴量ベクトルについて、前記変換行列を適用することで、前記バイナリベクトルを求めるようにしてもよい。
【００３０】
第２の発明に係る特徴量生成方法は、一つ以上の特徴量ベクトルの集合によって表現されたコンテンツを、前記一つ以上のベクトルの集合が持つ情報量よりも小さい情報量となるようなバイナリベクトルに変換する特徴量生成装置における特徴量生成方法であって、量子化部が、特徴量生成対象のコンテンツを表現する前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、予め定めた量子化器を適用することで、前記特徴量ベクトルの各々に所定個数の量子のうちの少なくとも一つを割り当てる量子化ステップと、バイナリ化部が、前記量子が割り当てられた前記特徴量ベクトルの各々について、予め求めた所定の変換行列を適用することで、前記バイナリベクトルを求めるバイナリ化ステップと、を含んで実行し、前記量子化器、及び入力された複数の前記特徴量ベクトルに基づいて、前記特徴量ベクトルと、前記量子化器及び前記変換行列を用いて前記特徴量ベクトルから得られる前記バイナリベクトルとの誤差を最小にするように定められることを特徴とする。
【００３１】
また、第２の発明に係る特徴量生成方法において、前記量子化部が割り当てるステップは、前記一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々に対して、前記量子化器を適用することで、前記特徴量ベクトルの各々に前記所定個数の量子のうちの少なくとも一つを割り当てると共に、同一の量子が割り当てられた一つ以上の特徴量ベクトルに基づいて、統合特徴量ベクトルを求め、前記バイナリ化部が求めるステップは、前記統合特徴量ベクトルについて、前記変換行列を適用することで、前記バイナリベクトルを求めるようにしてもよい。
【００３２】
第３の発明に係るプログラムは、コンピュータを、第２の発明に係る特徴量生成方法の各ステップを実行させるためのプログラムである。
【発明の効果】
【００３３】
本発明の特徴量生成装置、方法、及びプログラムによれば、量子化器及び変換行列を、特徴量ベクトルと、量子化器及び変換行列を用いて特徴量ベクトルから得られるバイナリベクトルとの誤差を最小にするように定め、特徴量ベクトルの各々に対して、量子化器を適用することで、特徴量ベクトルの各々に所定個数の量子のうちの少なくとも一つを割り当て、変換行列を適用することで、バイナリベクトルを求めることにより、意味内容が同一又は近しいコンテンツを、精度よく、かつ効率的に発見することができる、という効果が得られる。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施の形態に係る特徴量生成装置の構成を示すブロック図である。
【図２】バイナリベクトルの出力／格納の一例を示す図である。
【図３】バイナリベクトルの出力／格納の一例を示す図である。
【図４】バイナリベクトルの出力／格納の一例を示す図である。
【図５】本発明の実施の形態に係る特徴量生成装置における変換学習処理ルーチンを示すフローチャートである。
【図６】本発明の実施の形態に係る特徴量生成装置におけるバイナリベクトル生成処理ルーチンを示すフローチャートである。
【図７】特徴量ベクトルとバイナリベクトルとの誤差の一例を示す図である。
【発明を実施するための形態】
【００３５】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００３６】
＜＜全体構成＞＞
【００３７】
図１は、本発明の実施形態に係る特徴量生成装置１の構成の一例を示す機能ブロック図である。
【００３８】
図１に示す特徴量生成装置１は、特徴抽出部１１と、変換学習部１２と、量子化部１３と、バイナリ化部１４とを備え、また記憶装置として記憶部３を備えている。
【００３９】
また、特徴量生成装置１は、コンテンツデータベース２と通信手段を介して接続されて相互に情報通信し、コンテンツデータベース２に登録されているコンテンツ２１に基づいて、量子化器３１、及び変換行列３２を学習生成し、記憶部３に量子化器３１、及び変換行列３２を格納する変換学習処理と、学習生成した量子化器３１、及び変換行列３２を用い、新たなコンテンツ４に対して量子・バイナリベクトル情報５を生成するバイナリベクトル生成処理とを実行する。
【００４０】
コンテンツデータベース２は、特徴量生成装置１の内部にあっても外部にあっても構わず、通信手段は任意の公知ものを用いることができるが、本実施の形態においては、外部にあるものとして、通信手段は、インターネット、ＴＣＰ／ＩＰにより通信するよう接続されているものとする。また、コンテンツデータベース２は、いわゆるＲＤＢＭＳ (Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）などで構成されているものとしてもよい。
【００４１】
コンテンツデータベース２には、コンテンツ２１が格納されているものとする。コンテンツ２１は、本発明の実施の形態の要件を満たす範囲で、任意の種類のメディアであってよく、例えば、画像であれば画像ファイル、音であれば音ファイル、映像であれば映像ファイル、文書であれば文書ファイルなどの集合によってなるものであるとしてよい。さらに、コンテンツデータベース２には、各コンテンツファイル、各文書ファイルに対して、これらそれぞれを一意に識別可能な識別子（例えば、ファイル固有の通し番号によるＩＤ等）が関連づけられており、任意のファイルを参照できるものであるとする。その他、メタデータとして、例えばコンテンツの内容を表現するもの（コンテンツのタイトル、概要文、又はキーワード等）、コンテンツのフォーマットに関するもの（コンテンツのデータ量、サムネイル等のサイズ）などを含んでいても構わないが、本発明の実施形態の一例においては利用しない。
【００４２】
また、特徴量生成装置１が備える各部及びコンテンツデータベース２は、演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは特徴量生成装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現しても構わない。
【００４３】
なお、本発明の実施の形態において必須の構成要素ではないが、本発明の実施の形態に係る特徴量生成装置１により生成されたバイナリベクトルを用いてコンテンツ検索を実行する場合に外部に検索装置６を備える。検索装置６は、特徴量生成装置１、ならびにコンテンツデータベース２と相互に通信可能な形で接続されているものとする。
【００４４】
＜＜処理部＞＞
【００４５】
本実施の形態における特徴量生成装置１の各処理部について説明する。
【００４６】
特徴抽出部１１は、コンテンツデータベース２に格納されたコンテンツ２１、又は、外部から入力されたコンテンツ４を受け取った下で、これを解析し、一つ以上の特徴量ベクトルの集合を抽出してコンテンツデータベース２又は量子化部１３に出力する。
【００４７】
変換学習部１２は、コンテンツデータベース２に格納された複数の特徴量ベクトルに基づいて、特徴量ベクトルと、量子化器３１及び変換行列３２を用いて特徴量ベクトルから得られるバイナリベクトルとの誤差を最小にするように量子化器３１、及び変換行列３２を学習して生成し、学習生成した量子化器３１、及び変換行列３２を記憶部３に格納する。
【００４８】
量子化部１３は、特徴量生成対象のコンテンツを表現する一つ以上の特徴量ベクトルの集合の要素である特徴量ベクトルの各々について、記憶部３に格納された量子化器３１を適用することで、特徴量ベクトルの各々に所定個数の量子のうち少なくとも一つを割り当て、コンテンツデータベース２に格納するか、又は、特徴量ベクトルと共にバイナリ化部１４に出力する。量子の数Ｋは事前に定めて置くものとし、任意の正の整数であればよい。例えばＫ＝５１２、２０４８、Ｋ＝６５５３６などとしておけばよい。特徴量ベクトルに対して量子を割り当てる処理は、各々の特徴量ベクトルに対して、Ｋ個の量子の中から一つ以上の量子を関連づける処理である。また、同一の量子が割り当てられた一つ以上の特徴量ベクトルに基づいて、統合特徴量ベクトルを求める。
【００４９】
バイナリ化部１４は、量子が割り当てられた特徴量ベクトルの各々について、記憶部３に格納された変換行列３２を適用することで、バイナリベクトルを求め、求められたバイナリベクトルをコンテンツデータベース２に格納するか、又は外部に出力する。本実施の形態では、統合特徴量ベクトルについて、変換行列を適用することで、バイナリベクトルを求める。
【００５０】
量子、及びバイナリベクトルを格納／出力する形式はいくつか存在する。図２〜４にその一例を示す。本発明の実施形態における特徴量生成装置１は、コンテンツが入力されると、各コンテンツ、量子ごとに一つずつ、各々短いバイナリベクトルを生成する。ここで、あるコンテンツを表現する一つ以上の特徴量ベクトルに対して、量子を割り当てた結果、特定の量子を持たないようなコンテンツも存在することに注意されたい。例えば、図２の例では、コンテンツＩＤ＝２のコンテンツは、量子ＩＤ＝２の量子が割り当てられた特徴量ベクトルが存在しないので、これを便宜上Ｎ／Ａと表現している。
【００５１】
最も単純には、例えば、図２に示すように、コンテンツＩＤ、及び量子ＩＤをキーとして、バイナリベクトルを参照できるように出力・格納する方法がありえる。あるいは、コンテンツごとのバイナリベクトル全体に関心がある場合には、図３に示すように、コンテンツごと全ての量子に対して生成された短いバイナリベクトルを一列に並べ、これをコンテンツＩＤと対応づけて出力・格納してもよい。この形式の場合、存在しない量子（Ｎ／Ａ）には仮想的にＮＵＬＬ文字（図中では仮に‘＊’としている）を割り当てることで、当該位置にはバイナリベクトルが存在しないことを表現する。実際に、バイナリベクトルを比較する際にこの文字がある箇所はいかなる演算も実行しない（スキップする）こととすればよい。
【００５２】
また、特にコンテンツ検索の目的において実用的であるのは、図４の形式である。これは、量子ＩＤをキーとして、当該量子ＩＤを有するコンテンツＩＤを列挙して格納する。また、さらに、同じく量子ＩＤをキーとして、当該量子ＩＤを有するコンテンツＩＤと同一の順に、そのコンテンツＩＤ・量子ＩＤにおけるバイナリベクトルを列挙して格納する。この形式の利点は、コンテンツ検索において検索処理を実行する際には、ある量子（量子ＩＤ）を持つコンテンツを参照し、その範囲で（バイナリベクトルの）比較を行うことが多く、量子ＩＤをキーとして必要な情報（コンテンツＩＤ、及びバイナリベクトル）が即座に、過不足なく参照できることである。
【００５３】
検索装置６を備える構成を採る場合には、予めコンテンツデータベース２に格納されたコンテンツ２１に対して、特徴量生成装置１によりバイナリベクトルが生成され同じくコンテンツデータベース２に先の形式で格納されているとする。このとき、検索装置６は、コンテンツ４が利用者より入力されて、特徴量生成装置１により生成・出力された量子・バイナリベクトル情報５を入力として受け取ると、コンテンツデータベース２に対して検索を行い、検索結果７を出力する。量子・バイナリベクトル情報５は、当該コンテンツ４が持つ量子、ならびに対応するバイナリベクトルが特定可能な情報である。本発明の実施の形態が適用可能な範囲において、量子・バイナリベクトル情報とバイナリベクトルが持つ情報は等価であるので、以降、混乱しない限りこれに相当する情報をバイナリベクトルと呼称することとする。
【００５４】
＜＜処理概要＞＞
【００５５】
次に、本実施の形態における特徴量生成装置１の処理について説明する。本実施の形態における特徴量生成装置１は、特徴量変換関数を学習生成する変換学習処理と、初期の特徴量ベクトルをバイナリベクトルに変換するバイナリベクトル生成処理を実行する。以下、これら２つの処理について説明する。
【００５６】
最初に、変換学習処理について説明する。図５は、変換学習処理の流れを示すフローチャートである。変換学習処理は、量子化器３１及び変換行列３２を学習生成する処理であり、実際にコンテンツのバイナリベクトルを生成する前に、少なくとも１度実施しておく処理である。
【００５７】
まず、ステップＳ２０１では、特徴抽出部１１は、コンテンツデータベース２からコンテンツ２１を取得し、コンテンツ２１に含まれるコンテンツファイルの各々に対して特徴抽出処理を行って複数の特徴量ベクトルを抽出し、コンテンツデータベース２に格納する。
【００５８】
続いて、ステップＳ２０２では、変換学習部１２が、コンテンツデータベース２から複数の特徴量ベクトルを読み込み、複数の特徴量ベクトルに基づいて、特徴量ベクトルと、量子化器及び変換行列を用いて特徴量ベクトルから得られるバイナリベクトルとの間の誤差が最小となるように量子化器、及び変換行列を学習生成し、記憶部３に格納する。
【００５９】
以上のステップＳ２０１〜ステップＳ２０２の処理により、コンテンツデータベース２に格納されたコンテンツ２１から、量子化器３１、及び変換行列３２を生成することができる。なお、各種処理詳細については後述する。
【００６０】
続いて、バイナリベクトル生成処理について説明する。図６は、バイナリベクトル生成処理の流れを示すフローチャートである。バイナリベクトル生成処理は、記憶部３に格納された量子化器３１、変換行列３２を用いて、入力されたコンテンツを表現する一つ以上の特徴量ベクトルの集合からバイナリベクトルを生成する処理である。
【００６１】
本処理において入力されるコンテンツはコンテンツデータベース２から読み込んでも、外部から入力されても、そのいずれでも構わず、本質的には同じ処理が適用される。以降、簡単のため、外部から入力される場合（図１におけるコンテンツ４が入力された場合）について説明する。
【００６２】
まず、ステップＳ３０１では、特徴抽出部１１が、外部からコンテンツ４を得て、一つ以上の特徴量ベクトルの集合の要素である特徴ベクトルの各々を抽出し、量子化部１３に伝達する。伝達先は量子化部１３でなく、コンテンツデータベース２であっても構わない。
【００６３】
続いて、ステップＳ３０２では、量子化部１３が、ステップＳ３０１で抽出した一つ以上の特徴量ベクトルの各々に対して、記憶部３から取得した量子化器３１を適用することで、特徴ベクトルの各々に所定個数の量子のうち少なくとも一つを割り当ててバイナリ化部１４に出力する。
【００６４】
最後に、ステップＳ３０３では、バイナリ化部１４が、ステップＳ３０２で量子が割り当てられた特徴ベクトルの各々について、割り当てられた量子に基づいて、記憶部３から取得した変換行列３２を適用することで、バイナリベクトルを生成し、検索装置６に出力する。
【００６５】
以上の処理により、入力されたコンテンツ４に対して、バイナリベクトル（量子・バイナリベクトル情報５）を求めることができる。
【００６６】
＜＜各処理の処理詳細＞＞
【００６７】
以降、各処理の詳細処理について、本実施形態における一例を説明する。
【００６８】
［特徴抽出］
【００６９】
コンテンツの各々に対して、当該コンテンツを表現する一つ以上の特徴量ベクトルの集合を抽出する方法について説明する。初期特徴量抽出処理は、コンテンツの種別に依存し、これによって抽出する／できる特徴量ベクトルは変化するが、抽出する特徴量ベクトルは、コンテンツに対して一義的に定まる、固定の次元を持つベクトルとして表現できるものであれば任意の公知のものを用いてよい。ここでは、コンテンツが画像である場合について述べることとする。
【００７０】
最も好適な例としては、局所特徴量を抽出する。一般に、局所特徴量は、画像から特徴点と呼ばれる領域を検出する特徴点検出法と、領域の画像的特徴を特徴量ベクトルとして記述する記述子の二つによって構成される。例えば非特許文献１に記載のＳＩＦＴは、Ｄｉｆｆｅｒｅｎｃｅ  ｏｆ  Ｇａｕｓｓｉａｎ（ＤｏＧ）と呼ばれる特徴点検出法を用いて特徴点を検出し、各特徴点は輝度値の勾配を表現した記述子によって記述される。これ以外にも様々な特徴点検出法、記述子が一般に知られており、任意のものを用いて構わない。また、必ずしも特徴点検出法に基づいて特徴点を検出する必要はなく、画像中の領域を定めるものであれば任意の手続きを取って構わない。例えば、画像全体を領域とするものとしてもよいし、あるいは画像の高さ・幅に対して一定の割合で（格子状に）領域を取っても構わない。
【００７１】
好ましくはＳＩＦＴのように、領域の位置・姿勢（角度）や、その大きさに対して不変となるような特徴量ベクトルを得ることができる方法を採用することが好ましい。以降、本実施形態の一例ではＳＩＦＴを用いるものとして説明する。ＳＩＦＴを用いた場合、抽出される局所特徴量は通常１２８次元の実数値ベクトルとなる。従って、画像一枚は、特徴点数分の１２８次元実数値ベクトルの集合として表現される。
【００７２】
また、必ずしも局所特徴量を用いる必要はなく、例えば、領域ごとに明るさ特徴、色特徴、又は形状特徴などを抽出しても構わない。
【００７３】
明るさ特徴としては、ＨＳＶ色空間におけるＶ値を数え上げることで、ヒストグラムとして抽出することができる。この場合、各画像はＶ値の量子化数（例えば、16ビット量子化であれば256諧調）と同数の次元を持つベクトルとして表現される。
【００７４】
色特徴としては、Ｌ＊ａ＊ｂ＊色空間における各軸（Ｌ＊、ａ＊、ｂ＊）の値を数え上げることで、ヒストグラムとして抽出することができる。各軸のヒストグラムのビンの数は、例えば、Ｌ＊に対して４、ａ＊に対して１４、ｂ＊に対して１４などとすればよく、この場合、３軸の合計ビン数は、４×１４×１４＝７８４、すなわち７８４次元のベクトルとなる。
【００７５】
形状特徴としては、例えば参考文献１に記載のＨｉｓｔｏｇｒａｍ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ（ＨＯＧ）として知られる特徴量ベクトルを抽出すればよい。
【００７６】
［参考文献１］Navneet Dalal, Bill Triggs. Histograms of Oriented Gradients for Human Detection. In Proc. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 886-893, 2005.
【００７７】
また、参考文献２などに記載の、ニューラルネットワークによる特徴量を抽出しても構わない。
【００７８】
［参考文献２］Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton. ImageNet Classification with Deep Convolutional Neural Networks. In Proc. Advances in Neural Information Processing Systems (NIPS). Pages. 1097-1105, 2012.
【００７９】
以上のように、コンテンツを表現する一つ以上の特徴量ベクトルを求めることができる。
【００８０】
［変換学習：量子化器、変換行列の生成］
【００８１】
次に、量子化器、及び変換行列の生成方法について説明する。
【００８２】
ここでは、Ｍ個のコンテンツから抽出された特徴量ベクトルを用いて、量子化器、及び変換行列を生成する。以下（１）式に示すように、ｊ番目のコンテンツから抽出された特徴量ベクトルの集合をＳｊと表し、Ｓｊのｌ番目の要素をｓｊｌと表す。ｓｊｌは特徴量ベクトルであり、その次元はＤである。便宜上、全てのコンテンツから抽出された特徴量ベクトルをまとめたものをＳとする。
【００８３】
【数１】
0006364387.tif 000002
【００８４】
ここで、Ｓの要素の数（つまり、全てのコンテンツから抽出された特徴量ベクトルの数）をＮと表す。さらに、Ｓの要素を行列表現したものをＸと表す。ＸはＤ×Ｎのサイズを持つ行列である。Ｘの各列は、元の特徴量ベクトルそのものであり、これをｘｉ（ｉ＝1, 2, ・・・, Ｎ）と表す。
【００８５】
次に、任意の特徴量ベクトルｘをバイナリベクトルに変換する手続きの一例を述べる。
【００８６】
本発明の実施形態の一例においては、大まかに量子化、バイナリ化の２ステップによってバイナリベクトルに変換される。量子化とは、量子化器を用いて特徴量ベクトルｘを最も近い量子に一つ以上割り当てる処理であり、バイナリ化とは、特徴量ベクトルとそれに割り当てられた量子とに基づいてバイナリベクトルを求める処理である。
【００８７】
まず、量子化部１３における量子化について説明する。本発明の実施形態の一例による量子化器３１は、予め定められたＫ個の量子を代表する代表ベクトルによって規定されるものである（符号拡張などと呼ぶこともある）。然るに、Ｋ個の量子に量子化する量子化器を求めることは、すなわちＫ個の代表ベクトルを求めるに等しい。ｋ番目の量子に対応する代表ベクトルをμｋと表す。この代表ベクトルの次元数は特徴量ベクトルと同じＤである。このような代表ベクトル群を用いれば、任意の特徴量ベクトルｘに対する量子を割り当てることができる。すなわち、仮に、Ｐ個の量子を割り当てることを考えるとすると、特徴量ベクトルｘに最も距離の近いＰ個の代表ベクトルを求め、その代表ベクトルに対応する量子を割り当てればよい。Ｐは任意の自然数であればよく、例えばＰ＝５などとすればよい。この処理によって、任意の特徴量ベクトルに対して量子（及びこれに対応する代表ベクトル）を割り当てることができる。
【００８８】
続いて、バイナリ化部１４におけるバイナリ化について説明する。本発明の実施形態の一例においては、バイナリ化はサイズがｃ×Ｄの変換行列Ｒを用いて実行される。ここで、ｃは生成されるバイナリベクトルのビット数であり、予め定めた任意の自然数を指定してよい。本発明の実施形態の一例においてはｃ≦Ｄとし、例えばＤ＝１２８であればｃ＝１２８、ｃ＝６４、ｃ＝３２などとすればよい。また、Ｒの各列は互いに直交するようなものであるとする。先の量子化を経て、特徴量ベクトルｘに対して一つ以上の量子及びこれに対応する代表ベクトルが割り当てられる。仮に特徴量ベクトルｘにｋ番目の量子が割り当てられているとすると、ｋ番目の量子に対応する特徴量ベクトルｘのバイナリベクトルｂｋは
【００８９】
【数２】
0006364387.tif 000003
【００９０】
と求められる。このように求められるバイナリベクトルｂｋの値は、代表ベクトルμｋを起点と見た場合の特徴量ベクトルｘの方向（角度）によって決まる。例えば、２つの特徴量ベクトルｘｉ、ｘｊがあったとしよう。このとき、これら２つの特徴量ベクトルの、代表ベクトルμｋに対する方向が完全に一致するときは、（２）式によって求まるバイナリベクトルのビットは全て一致する（２つのバイナリベクトルの距離は０）。反対に、もしμｋに対する方向が真逆であれば、全てのビットが逆になる（２つのバイナリベクトルの距離はｃ）。また、特徴量ベクトルｘに割り当てられている他の量子についても、同様に（２）式を用いた計算を実行する。
【００９１】
以上が特徴量ベクトルｘに対するバイナリベクトルを求める手順である。
【００９２】
さて、本発明の実施の形態におけるポイントは、特徴量ベクトルｘと、量子化器及び変換行列を用いた結果生成されるバイナリベクトルｂｋが表す特徴ベクトルとの誤差が最小となるように、量子化器及び変換行列を求めることで、良好な検索精度を得ることができるバイナリベクトルを求めることができるようにすることである。
【００９３】
この誤差を図７を用いて説明する。上記説明した量子化、及びバイナリ化の手続きに則った場合、元の特徴量ベクトルｘ、特徴量ベクトルｘに割り当てられた量子の代表ベクトルμｋ、及び、生成されるバイナリベクトルｂｋの位置関係は、変換行列Ｒを介して図７のように示すことができる。すなわち、上記量子化、及びバイナリ化の手続きは、特徴量ベクトルｘをμｋ＋Ｒｂｋというベクトルで近似しようとしていることに等しく、結果としてその誤差は
【００９４】
【数３】
0006364387.tif 000004
【００９５】
と表現できる。
【００９６】
本発明の実施の形態における変換学習は、この（３）式が表す誤差が、Ｎ個の特徴量ベクトルｘｉ（ｉ＝１, ２, ・・・,Ｎ）に対して最小になるような代表ベクトルμｋ（ｋ＝１,２, ・・・,Ｋ）と、変換行列Ｒとを求めることである。以降、簡単のため、特徴量ベクトルｘに割り当てられる量子の数は一つとする。このとき、ｘｉには唯一のバイナリベクトルｂｉが求められることとなる。そこで（３）式についてのＮ個の特徴量ベクトルに対する総和を考える。ｋ番目の量子に割り当てがされている特徴量ベクトルのインデクス集合Ｎｋと表すとすると、この総和は
【００９７】
【数４】
0006364387.tif 000005
【００９８】
と表すことができる。なお、（２）式に示した通り、バイナリベクトルはＲＴ（ｘ−μｋ）の取る符号によって決定されるのであり、スケールに対して不変であるから、その自由度を許容するためサイズｃの対角行列Λを導入し、
【００９９】
【数５】
0006364387.tif 000006
【０１００】
と書く。このように変換行列Ｒ及び対角行列Λを用いて、特徴量ベクトルｘｉに対するバイナリベクトルが表現する特徴量ベクトルを復元することにより誤差が求まる。結果的に、特徴量ベクトルｘｉと、バイナリベクトルとの誤差を最小化するように量子化器３１及び変換行列３２を求めるには、（５）式を最小化するように全ての未知変数を求めるようにすればよい。具体的には、以下（６）式の最適化問題を解く。
【０１０１】
【数６】
0006364387.tif 000007
【０１０２】
ただし、Δは対角行列の集合である。
【０１０３】
上記（６）式の問題を解く手続き、つまり、Ｋ個の代表ベクトル｛μｋ｝、変換行列Ｒ、並びにその他の未知変数である対角行列Λ、｛Ｎｋ｝、及び｛ｂｉ｝を求める手続きを下記に説明する。
【０１０４】
まず初期値として、｛μｋ｝、及び変換行列Ｒを適当な方法で生成する。例えば、｛μｋ｝はＫ−ｍｅａｎｓ法、変換行列Ｒはランダムに生成すればよい。続いて、下記〈１〉〜〈５〉の手続きを所定の条件（例えば、所定の回数繰り返す、あるいは、（５）式の値が所定の値よりも小さくなるなど）を充足するまで繰り返す。
【０１０５】
〈１〉バイナリベクトル｛ｂｉ｝を求める。｛ｂｉ｝は、特徴量ベクトルｘと、代表ベクトルμｋと、変換行列Ｒとに基づいて、（２）式に従って求めればよい。
【０１０６】
〈２〉対角行列Λを求める。Λは、特徴量ベクトルｘの行列Ｘと、変換行列Ｒとに基づいて、下記の（７）式に従って求める。
【０１０７】
【数７】
0006364387.tif 000008
【０１０８】
ただし、
【０１０９】
【数８】
0006364387.tif 000009
【０１１０】
は全要素に１を持つ列ベクトル、ｍｅａｎは列平均を取る関数、ｄｉａｇはベクトルを対角行列に変換する関数である。
【０１１１】
〈３〉変換行列Ｒを求める。まず、バイナリベクトル｛ｂｉ｝を列方向に並べた行列をＢと表す。Ｒは次の手順で求める。次に、特徴量ベクトルｘの集合Ｘと、バイナリベクトル｛ｂｉ｝を列方向に並べた行列Ｂと、対角行列Λとに基づいて、下記の（８）式に示す行列Θを求める。
【０１１２】
【数９】
0006364387.tif 000010
【０１１３】
続いて、上記（８）式のΘを特異値分解し、以下（９）式のようにユニタリ行列Ｕ、Ｖ及び、特異値行列Ωを求める。
【０１１４】
【数１０】
0006364387.tif 000011
【０１１５】
最後に、変換行列Ｒを以下（１０）式により求める。
【０１１６】
【数１１】
0006364387.tif 000012
【０１１７】
〈４〉全ての代表ベクトル｛μｋ｝を求める。全ての特徴量ベクトルを格納した行列Ｘの内、ｋ番目の量子に割り当てられた特徴量ベクトルに対応する列のみを抽出した行列をＸｋと表す。また、これに対応するバイナリベクトル行列も同じくＢｋと表す。このとき、ｋ番目の量子に対応する代表ベクトルμｋを次の（１１）式により求める（全てのｋに対して同様に実施する）。
【０１１８】
【数１２】
0006364387.tif 000013
【０１１９】
〈５〉｛Ｎｋ｝を求める。ただし、Ｎｋは、ｋ番目の量子が割り当てられている特徴量ベクトルのインデクス集合である。この操作は、各特徴量ベクトルに対して量子を割り当て直す処理に他ならない。各特徴量ベクトルｘｉに対して、ｘｉをシフトしたベクトルｘｉ−ＲΛｂｉを求める。全ての代表ベクトル｛μｋ｝の中で、先のシフトしたベクトルに最も近いものを選び、選んだ代表ベクトルを新たに特徴量ベクトルｘｉの量子とする。
【０１２０】
以上の手続きによって、上記（５）式を最小とするような量子化器（を規定する代表ベクトル）と変換行列を求めることができる。
【０１２１】
［量子化］
【０１２２】
先に述べた通り、本発明の実施形態の一例による量子化器３１は、上記のように生成されたＫ個の量子を代表する代表ベクトルμｋによって規定されるものであり、量子化は、特徴量ベクトルｘに対して最も距離の近いＰ個の代表ベクトルを求め、その代表ベクトルが代表する量子を割り当てればよい。
【０１２３】
量子化部１３では、実用上は、あるコンテンツに対して抽出された全ての特徴量ベクトルの各々に対して量子化を行うと、同一の量子に割り当てられる特徴量ベクトルが一つ以上存在してしまう場合が起こる。このような場合には、同一の量子に割り当てられている一つ以上の特徴量ベクトルを、単一の特徴量ベクトルに統合した統合特徴量ベクトルを求めることが好ましい。統合特徴量ベクトルは、例えば同一の量子に割り当てられた特徴量ベクトルの平均ベクトルや中央値ベクトル、あるいは、当該量子の代表ベクトルに最も近い特徴量ベクトルなどとすればよい。このように統合特徴量ベクトルを求めることで、複数の特徴量ベクトルの情報を効果的に圧縮することが可能となる。統合特徴量ベクトルも、特徴量ベクトルと同一の次元数を持つベクトルという点では特徴量ベクトルと何ら差はなく、以降、これらを特に区別せずに用いる。
【０１２４】
［バイナリ化］
【０１２５】
バイナリ化部１４においては、量子化部１３の処理を経て、特徴量ベクトルの各々が量子に割り当てられているため、先に述べた場合と同様、（２）式に従って、特徴ベクトルの各々について、変換行列３２を適用することでバイナリ化し、バイナリベクトルを求めればよい。
【０１２６】
＜＜コンテンツ検索への適用＞＞
【０１２７】
上記説明した本発明の実施の形態に係る特徴量生成装置を、コンテンツ検索に利用する場合の実施形態の一例について説明する。ここでは、コンテンツが画像である場合について説明する。
【０１２８】
例えば、コンテンツデータベース２に、Ｍ枚のデータベース画像が格納されているとする。上記説明した変換学習処理を通じて量子化器を規定する代表ベクトル群｛μｋ｝、ならびに変換行列Ｒを求め、これが記憶部３に格納されているものとし、さらに、上記Ｍ枚のデータベース画像については、上記説明した処理によって既にバイナリベクトルが生成され、図４の形式で格納されているものとする。このとき、目的は新たなクエリ画像が利用者から与えられた時に、当該クエリ画像と同一の意味内容を持つようなデータベース画像を検索することである。
【０１２９】
まず、クエリ画像Ｑに対して特徴抽出処理を施し、一つ以上の特徴量ベクトルの集合｛ｘｑ１、・・・、ｘｑｎ｝を抽出したとする。特徴量ベクトルの各々に対して先の量子化器を適用して量子化することにより量子を割り当てる。結果として、Ｌ（≦Ｋ）個の量子が割り当てられたとする。同一の量子が割り当てられた特徴量ベクトルについては、その平均ベクトルを求めて統合特徴量ベクトルとする。この処理によって、クエリ画像Ｑは、Ｌ個の（統合）特徴量ベクトルによって表現されることとなる。
【０１３０】
続いて、（２）式に基づき、変換行列Ｒを用いて量子ごとに特徴量ベクトルをバイナリベクトル化する。以上の処理により、クエリ画像Ｑは、量子数分のバイナリベクトルによって表現された。
【０１３１】
続いて検索処理を行う。上記図４の形式でデータベース画像のバイナリベクトルが格納されているとする。まず、クエリ画像において、空ではない（つまり、特徴量ベクトルに割り当てられたＬ個の）量子の量子ＩＤを列挙し、当該量子ＩＤをキーとして、データベース画像のバイナリベクトルを参照する。例えば、ｋ番目の量子に対する量子ＩＤがｋであるとすると、同じくｋ番目の量子ＩＤの欄に登録されているバイナリベクトルを全て参照すればよい。
【０１３２】
次に、参照したデータベース画像のバイナリベクトルの各々に対して、バイナリベクトルの比較を行う。例えば、ｋ番目の量子に対するクエリ画像のバイナリベクトルをｚｑｋ、参照したデータベース画像のバイナリベクトルのうちの一つをｚｄｋと表すとすると、これらはいずれもバイナリベクトルであるから、その距離は両者の排他的論理和を取ったのち、１となっているビットの数を数え上げることで距離を測れば、両者を比較することができる。あるいは、ｚｑｋとｚｄｋの内積を求めても構わず、この場合は両者の類似度を得ることができる。
【０１３３】
全ての量子ＩＤ、全てのバイナリベクトルに対して、上記比較を行ったのち、データベース画像毎に、全ての量子について求めた距離（あるいは類似度）の総和を取り、この総和が最も小さい（あるいは大きい）ものから順に意味内容が同一ないし近いデータベース画像として出力する。
【０１３４】
バイナリベクトルは情報量が小さく、低容量であり、少数の演算回数で高速に距離（又は類似度）を計算できることから、効率的に処理できる。また、本発明により得られるバイナリベクトルは元の特徴量ベクトルとバイナリベクトルとの誤差が最小となるように求められるのであり、損失が非常に少ない。結果として、元の特徴量ベクトル同様に、精度よくデータベース画像を発見することが可能である。
【０１３５】
以上が本発明の実施形態の一例である。
【０１３６】
以上、説明したように、本発明の実施の形態に係る特徴量生成装置によれば、量子化器３１及び変換行列３２を、特徴量ベクトルと、量子化器及び変換行列を用いて特徴量ベクトルから得られるバイナリベクトルとの誤差を最小にするように定め、特徴量ベクトルの各々に対して、量子化器３１を適用することで、特徴量ベクトルの各々に所定個数の量子のうちの少なくとも一つを割り当て、変換行列３２を適用することで、バイナリベクトルを求めることにより、意味内容が同一又は近しいコンテンツを、精度よく、かつ効率的に発見することができる。
【０１３７】
また、本発明の実施形態によれば、一つ以上の特徴量ベクトルの集合を、情報損失であるところの誤差が最小となるような、より小さい情報量のバイナリベクトルに変換することで、結果として、コンテンツを表現する小さい情報量のバイナリベクトルを生成可能な特徴量生成方法、特徴量生成装置、特徴量生成プログラムを提供することができる。
【０１３８】
また、本発明の実施形態に係る特徴生成装置により生成されるコンテンツのバイナリベクトルは、元の一つ以上の特徴量ベクトルの集合と比べて、情報量が小さく、さらにバイナリベクトルであることから、高速な比較演算が可能である。
【０１３９】
さらに、本発明の実施形態に係る特徴生成装置により生成されるコンテンツのバイナリベクトルは、元の一つ以上の特徴量ベクトルとの誤差が最小となるように生成されるため、従来の技術で問題となっていた量子化誤差による精度劣化を抑えることができるのであり、高精度なコンテンツ検索が可能である。
【０１４０】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【０１４１】
１     特徴量生成装置
２     コンテンツデータベース
３     記憶部
４、２１      コンテンツ
５     量子・バイナリベクトル情報
６     検索装置
７     検索結果
１１   特徴抽出部
１２   変換学習部
１３   量子化部
１４   バイナリ化部
３１   量子化器
３２   変換行列
【図１】
0006364387.tif 000014
【図２】
0006364387.tif 000015
【図３】
0006364387.tif 000016
【図４】
0006364387.tif 000017
【図５】
0006364387.tif 000018
【図６】
0006364387.tif 000019
【図７】
0006364387.tif 000020