説明

コンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラム

【課題】大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供すること。
【解決手段】複数のコンテンツiの各特徴量xを特徴量空間R上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線を求め、特徴点が当該直線によって2分割されたいずれの空間側にあるかに基づいてコンテンツiをバイナリ値に変換するハッシュ関数hを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大量のマルチメディアコンテンツから類似するコンテンツを検索する際に利用されるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムに関する。
【背景技術】
【0002】
通信網、ストレージ、分散環境の高度化により、オンラインで流通するマルチメディアコンテンツの数は膨大な量となっている。
【0003】
例えば、ある検索エンジンが検索可能としているウェブページ数は数十億とも数兆ともいわれている。集合知による事典として有名なWikipediaでは、350万以上の記事が閲覧可能となっている。
【0004】
あるソーシャルメディアサイトでは、毎月25億の画像がアップロードされているとの報告があり、また、ある動画共有サイトでは、1分当たり48時間分の映像が新規に公開され続けているとの報告がある。
【0005】
このような膨大な量のマルチメディアコンテンツは、視聴者にとって豊富な選択肢となる一方で、視聴・閲覧したいコンテンツに素早くアクセスしたり、内容を一覧して素早く把握したりするなどといったことが困難になっているという深刻な課題ももたらしている。
【0006】
したがって、現在、閲覧・視聴したいコンテンツを効率的に探し出すためのコンテンツ検索・推薦や、コンテンツ内の冗長な部分を省いて短くまとめるコンテンツ要約への要望がますます高まってきている。
【0007】
このようなコンテンツ検索、推薦、要約を実現する上で、最も基本的かつ重要な機能の1つは、類似したコンテンツ、あるいはコンテンツの一部を発見する機能である。
【0008】
例えば、コンテンツを検索する場合、あるコンテンツをクエリとして与えたとき、このコンテンツに類似したコンテンツを検索することが基本的な要件となる。推薦の場合においても同様に、利用者がこれまでに閲覧した又は閲覧しているコンテンツと類似したコンテンツを発見し、これを推薦する。また、要約の場合においても、類似したコンテンツを提示することは冗長であるため、これを発見して省くような機能が必要となる。
【0009】
ここで、よく知られた類似コンテンツの発見手法を説明しておく。コンテンツ、あるいはその一部が、ある特徴量によって表現されているとする。このとき、特徴量同士の近さを測ることで類似度を計算し、この類似度に基づいて類似コンテンツを発見する。
【0010】
単純な例を挙げれば、コンテンツが画像であれば、画像の色ヒストグラムを特徴量としてその類似度を測ることができる。コンテンツが文書であれば、単語の出現頻度をヒストグラム化したもの(Bag-of-Wordsヒストグラムなどと呼ぶ)を特徴量として類似度を測ることができる。
【0011】
いうまでもなく、仮にコンテンツの数が1万であれば、その1万のコンテンツそれぞれに対して類似度を計算し、その結果、類似度の高いコンテンツを類似コンテンツとして拾い上げる必要がある。
【0012】
しかしながら、前述のように、大量のコンテンツを対象にしようとした場合、(1)計算時間がかかる、(2)メモリを大量に消費する、という2つの重要な課題がある。
【0013】
通常、コンテンツの特徴量は多次元になることが多く、その類似度の計算には時間を要する。一般に、文書のBag-of-Wordsヒストグラムの次元は、単語の種類(語彙)と同次元になるし、画像の色ヒストグラムは、一般に、数百〜数千次元の実数値ベクトルとなる。
【0014】
さらに、全てのコンテンツの組に対してその類似度を計算する必要があるため、どのような類似度計算手段を用いたとしても、コンテンツがN個あったとするとO(N)の計算量を要する。
【0015】
また、即時検索を実行するには、特徴量あるいはその類似度をメモリに蓄積しておくことが好ましいが、これを行うためにはO(N)のメモリが必要となる。
【0016】
このような課題に対して、コンテンツを低容量な特徴量で表現し、効率的に類似コンテンツを発見する技術に関する取り組みがなされてきた。この課題を解決するため、従来いくつかの発明がなされ、開示されてきている。
【0017】
特許文献1に開示されている技術では、コンテンツの特徴量を、主成分分析により次元圧縮して低次元化し、この低次元な特徴量同士の距離を測ることで、特徴量の低容量化、高速化を図っている。
【0018】
非特許文献1に開示されている技術では、近接する任意の2つのコンテンツ(特徴量)において、元の特徴量の類似度と衝突確率が等しくなるようなハッシュ関数群を生成する。
【0019】
典型的な類似度としてコサイン類似度を考えており、その場合におけるハッシュ関数生成の基本的な手法は、特徴量空間にランダムな超平面を複数生成することによる(random projectionと呼ばれる)。
【0020】
各超平面のどちら側に特徴量が存在するかによって特徴量をハッシュ化し、全てのコンテンツ間で類似度を求めることなく、近似的に類似コンテンツを発見することができる。
【0021】
非特許文献2に開示されている技術は、非特許文献1が考えるコサイン類似度とは異なり、Shift-Invariant Kernelによる類似度を考えるハッシュ関数生成技術である。
【0022】
基本的な手続きこそ非特許文献1と似ており、やはりランダムな写像を生成し、これに基づいて特徴量をハッシュ化する。一方で、その性質は非特許文献1とは異なり、非特許文献1が「元の特徴量の類似度と衝突確率が等しくなるようなハッシュ関数群を生成する」のに対して、非特許文献2では、ハッシュ値間のハミング距離が、Shift-Invariant Kernelによる類似度に依存したバウンド(上界・下界)によって抑えられるようなハッシュ関数を生成する。
【0023】
なお、上記非特許文献1、2の双方とも、ハッシュ関数あたり1bitのバイナリ値を割り当てることになる。すなわち、ハッシュ関数の数をBとすると、ハッシュ値はBbitとなる。
【先行技術文献】
【特許文献】
【0024】
【特許文献1】特許第3730179号公報
【非特許文献】
【0025】
【非特許文献1】M. Datar、N. Immorlica、P. Indyk、V.S. Mirrokni、“Locality-Sensitive Hashing Scheme based on p-Stable Distributions”、In Proceedings of the Twentieth Annual Symposium on Computational Geometry、2004年、p.253-262
【非特許文献2】M. Raginsky、S. Lazebnik、“Locality-Sensitive Binary Codes from Shift-Invariant Kernels”、Advances in Neural Information Processing Systems 22、2009年、p.1509-1517
【発明の概要】
【発明が解決しようとする課題】
【0026】
上記の特許文献1に記載の技術は、特徴量を圧縮表現するものの、圧縮された特徴量間の類似度をユークリッド距離で求める必要があるため、大幅な計算時間の削減を実現できなかった。
【0027】
非特許文献1、2に開示されている技術では、ハッシュ関数(超平面)の生成はランダムであるため、コンテンツの類似度を反映するようなハッシュ関数を生成するには、ハッシュ数を十分に大きく取り、多数のハッシュ関数を生成する必要があった。
【0028】
本発明は、この課題を鑑みてなされたものであり、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供することを課題とする。
【課題を解決するための手段】
【0029】
第1の本発明に係るコンテンツ変換方法は、コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換方法において、コンピュータにより、記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出ステップと、前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成ステップと、を有することを特徴とする。
【0030】
第2の本発明に係るコンテンツ変換方法は、前記生成ステップが、前記2つの群の群間分散値Sと郡内分散値Sを変数に用いたtrace{w(S−S)w}(但し、ww=1)の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする。
【0031】
第3の本発明に係るコンテンツ変換方法は、前記生成ステップが、前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする。
【0032】
第4の本発明に係るコンテンツ変換方法は、前記ハッシュ関数を1つ以上用いて前記コンテンツを1つ以上のバイナリ値に変換する変換ステップを更に有することを特徴とする。
【0033】
第5の本発明に係るコンテンツ変換装置は、コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換装置において、記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出手段と、前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成手段と、を有することを特徴とする。
【0034】
第6の本発明に係るコンテンツ変換装置は、前記生成手段が、前記2つの群の群間分散値Sと郡内分散値Sを変数に用いたtrace{w(S−S)w}(但し、ww=1)の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする。
【0035】
第7の本発明に係るコンテンツ変換装置は、前記生成手段が、前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする。
【0036】
第8の本発明に係るコンテンツ変換プログラムは、第1から第4の発明におけるコンテンツ変換方法をコンピュータに実行させることを特徴とする。
【0037】
以上より、本発明によれば、複数のコンテンツの各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいてコンテンツをバイナリ値に変換するハッシュ関数を生成するため、揺らぎに頑健なハッシュ関数を生成できることから、結果として、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。
【0038】
また、本発明によれば、ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように特徴点の分布状態を変化させるため、互いに相関の低いハッシュ関数を生成できることから、結果として、より少ないハッシュ関数の数(ビット数)で、高精度な類似コンテンツ検索を実施することができるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。
【発明の効果】
【0039】
本発明によれば、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。
【図面の簡単な説明】
【0040】
【図1】情報処理装置の機能ブロック構成例を示す図である。
【図2】ハッシュ関数生成処理例の流れを示すフローチャートである。
【図3】ハッシュ化処理例の流れを示すフローチャートである。
【図4】ハッシュ関数の幾何学的な意味を説明する図である。
【図5】類似する2群を分割するハッシュ関数を説明する図である。
【図6】類似検索精度の比較結果を示す図である。
【発明を実施するための形態】
【0041】
以下、本発明の実施の形態について図面を用いて説明する。
【0042】
〔情報処理装置の構成〕
図1は、本実施の形態に係る情報処理装置の機能ブロック構成を示す図である。同図に示す情報処理装置1は、コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換装置であって、入力部11と、特徴抽出部12と、ハッシュ関数生成部13と、ハッシュ関数記憶部14と、ハッシュ化部15と、出力部16とで主に構成される。
【0043】
情報処理装置1は、通信手段を介してコンテンツデータベース2に接続され、入力部11と出力部16を介して相互に情報通信し、コンテンツデータベース2に登録されたコンテンツに基づいてハッシュ関数を生成するハッシュ関数生成処理と、生成したハッシュ関数を用いてコンテンツを1つ以上のバイナリ値に変換するハッシュ化処理を行う。
【0044】
情報処理装置1が備える各部は、演算処理装置や記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは、情報処理装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、通信ネットワークを通して提供することも可能である。
【0045】
コンテンツデータベース2は、情報処理装置1の内部にあっても外部にあっても構わない。また、通信手段は、任意の公知のものを用いることができるが、本実施の形態においては、外部にあるものとして、インターネット、TCP/IPにより通信するよう接続されているものとする。
【0046】
また、コンテンツデータベース2は、いわゆるRDBMS(Relational Database Management System)などで構成されているものとしてもよい。
【0047】
コンテンツデータベース2には、少なくともコンテンツそのもののデータ(以降、コンテンツデータ)、あるいは、当該データの所在を一意に示すアドレスが格納されている。
【0048】
コンテンツデータは、例えば、文書であれば文書ファイル、画像であれば画像ファイル、音であれば音ファイル、映像であれば映像ファイルなどである。好ましくは、コンテンツデータベース2には、各コンテンツを一意に識別可能な識別子が含まれているものとする。
【0049】
その他、メタデータとして、例えば、コンテンツの内容を表現するもの(例えば、コンテンツのタイトル、概要文、キーワードなど)、コンテンツのフォーマットに関するもの(例えば、コンテンツのデータ量、サムネイル等のサイズ)などを含んでいても構わない。
【0050】
〔情報処理装置の各部の機能〕
引き続き、情報処理装置1の各部の機能について説明する。
【0051】
入力部11は、コンテンツデータベース2からコンテンツデータを取得して特徴抽出部12に送信する。
【0052】
特徴抽出部12は、入力部11より得たコンテンツデータを解析し、コンテンツを特徴的に表す特徴量を抽出する。抽出された特徴量は、ハッシュ関数生成処理時にはハッシュ関数生成部13に送信され、ハッシュ化処理時にはハッシュ化部15に送信される。
【0053】
ハッシュ関数生成部13は、特徴抽出部12から送信された特徴量に基づいて1つ以上のハッシュ関数を生成し、ハッシュ関数記憶部14に記憶する。
【0054】
ハッシュ関数記憶部14は、ハッシュ関数生成部13により生成された1つ以上のハッシュ関数を記憶する。
【0055】
ハッシュ化部15は、ハッシュ関数記憶部14に格納されている1つ以上のハッシュ関数に基づいて、特徴抽出部12から送信されたコンテンツの特徴量を1つ以上のバイナリ値であるハッシュ値に変換し、出力部16に送信する。
【0056】
出力部16は、ハッシュ化部15によって変換されたハッシュ値をコンテンツデータベース2に送信し、格納する。
【0057】
〔情報処理装置の処理動作〕
次に、情報処理装置1の処理動作について説明する。情報処理装置1は、ハッシュ関数を生成するハッシュ関数生成処理と、コンテンツの特徴量をハッシュ化するハッシュ化処理を実行する。以下、これら2つの処理について説明する。
【0058】
最初に、ハッシュ関数生成処理について説明する。図2は、ハッシュ関数生成処理の流れを示すフローチャートである。ハッシュ関数生成処理は、実際にコンテンツデータをハッシュ化する前に、少なくとも1度実施しておく処理である。
【0059】
まず、入力部11が、コンテンツデータベース2からコンテンツデータを取得して、これを特徴抽出部12に送信する(ステップS101)。
【0060】
続いて、特徴抽出部12が、そのコンテンツデータから特徴量を抽出してハッシュ関数生成部13に送信する(ステップS102)。
【0061】
最後に、ハッシュ関数生成部13が、その特徴量に基づいて1つ以上のハッシュ関数を生成し、ハッシュ関数記憶部14に格納する(ステップS103)。
【0062】
以上の処理により、コンテンツデータベース2に格納された各コンテンツデータから1つ以上のハッシュ関数を生成することができる。なお、特徴量の抽出処理、ハッシュ関数の生成処理の詳細については後述する。
【0063】
次に、ハッシュ化処理について説明する。図3は、ハッシュ化処理の流れを示すフローチャートである。ハッシュ化処理は、ハッシュ関数記憶部14に格納されたハッシュ関数を用いてコンテンツの特徴量をハッシュ化する処理である。
【0064】
まず、入力部11が、コンテンツデータベース2からコンテンツデータを取得して、これを特徴抽出部12に送信する(ステップS201)。
【0065】
続いて、特徴抽出部12が、そのコンテンツデータから特徴量を抽出してハッシュ化部15に送信する(ステップS202)。ステップS201,S202の処理は、それぞれ、ハッシュ関数生成処理のステップS101,S102と同じである。
【0066】
そして、ハッシュ化部15が、ハッシュ関数記憶部14に格納された1つ以上のハッシュ関数を用いてコンテンツの特徴量をハッシュ値に変換し、出力部16に送信する(ステップS203)。
【0067】
1つのハッシュ関数につき1bitのハッシュ値に変換されるので、ハッシュ関数記憶部14にB個のハッシュ関数が格納されている場合、コンテンツはBbitのハッシュ値に変換される。
【0068】
最後に、出力部16が、そのハッシュ値をコンテンツデータベース2に送信し、格納する(ステップS204)。
【0069】
以上の処理により、コンテンツデータベースに登録されているコンテンツのハッシュ値を求めることができる。
【0070】
〔特徴量の抽出処理〕
次に、特徴量の抽出処理について説明する。コンテンツの特徴量を抽出する処理は、コンテンツの種類に依存する。例えば、コンテンツが文書であるか、画像であるか、音であるか、映像であるかによって、抽出する又は抽出できる特徴量は変化する。
【0071】
ここで、どのような特徴量を抽出するかは、本発明の要件として重要ではなく、一般に知られた公知の特徴抽出処理を用いて構わない。したがって、ここでは、本実施の形態の一例に適する、各種コンテンツに対する特徴抽出処理の例を説明する。
【0072】
コンテンツが文書である場合には、文書中に出現する単語の出現頻度を用いることができる。例えば、公知の形態素解析を用いて、名詞、形容詞等に相当する単語ごとに、その出現頻度を計数すればよい。
【0073】
コンテンツが画像である場合には、例えば、明るさ特徴、色特徴、テクスチャ特徴、コンセプト特徴、景観特徴などを抽出する。
【0074】
明るさ特徴は、HSV色空間におけるV値を数え上げることで、ヒストグラムとして抽出することができる。
【0075】
色特徴は、L*a*b*色空間における各軸(L*、a*、b*)の値を数え上げることで、ヒストグラムとして抽出することができる。各軸のヒストグラムのビンの数は、例えば、L*に対して4、a*に対して14、b*に対して14などとすればよく、この場合、3軸の合計ビン数は、4×14×14=784となる。
【0076】
テクスチャ特徴としては、濃淡ヒストグラムの統計量(コントラスト)やパワースペクトルなどを求めればよい。あるいは、局所特徴量を用いると、色や動きなどと同様、ヒストグラムの形式で抽出することができるようになるため好適である。
【0077】
局所特徴としては、例えば、下記の参考文献1に記載されるSIFT(Scale Invariant Feature Transform)や、下記の参考文献2に記載されるSURF(Speeded Up Robust Features)などを用いることができる。
[参考文献1]D.G. Lowe、“Distinctive Image Features from Scale-Invariant Keypoints”、International Journal of Computer Vision、pp.91-110、2004年
[参考文献2]H. Bay、T. Tuytelaars、L.V. Gool、“SURF: Speeded Up Robust Features”、Lecture Notes in Computer Science、vol. 3951、pp.404-417、2006年
【0078】
これらによって抽出される局所特徴は、例えば、128次元の実数値ベクトルとなる。このベクトルを、予め学習して生成しておいた符号長を参照して、符号に変換し、その符号の数を数え上げることでヒストグラムを生成することができる。この場合、ヒストグラムのビンの数は、符号長の符号数と一致する。符号数は任意のものを用いてよいが、例えば、512あるいは1024などとしてもよい。
【0079】
コンセプト特徴とは、画像中に含まれる物体や、画像が捉えているイベントのことである。任意のものを用いてよいが、例を挙げれば、「海」、「山」、「ボール」などのようなものである。もし、ある画像に「海」が映っていた場合、その画像は「海」コンセプトに帰属する画像であるという。
【0080】
その画像が、各コンセプトに帰属するか否かは、コンセプト識別器を用いて判断することができる。通常、コンセプト識別器はコンセプト毎に一つ用意され、画像の特徴量を入力として、その画像があるコンセプトに帰属しているか否かを帰属レベルとして出力する。
【0081】
コンセプト識別器は、予め学習して獲得しておくものであり、決められた画像特徴、例えば、先に述べた局所特徴と、予め人手によって、その画像がどのコンセプトに帰属しているかを表した正解ラベルとの関係を学習することによって獲得する。
【0082】
学習器としては、例えば、サポートベクターマシンなどを用いればよい。コンセプト特徴は、各コンセプトへの帰属レベルをまとめてベクトルとして表現することで得ることができる。
【0083】
景観特徴は、画像の風景や場面を表現した特徴量である。例えば、下記の参考文献3に記載のGIST記述子を用いることができる。
[参考文献3]A. Oliva、A. Torralba、“Building the gist of a scene: the role of global image features in recognition”、Progress in Brain Research, 155、pp.23-36、2006年
【0084】
コンテンツが音である場合には、音高特徴、音圧特徴、スペクトル特徴、リズム特徴、発話特徴、音楽特徴、音イベント特徴などを抽出する。
【0085】
音高特徴は、例えば、ピッチを取るものとすればよく、下記の参考文献4に記載される方法などを用いて抽出することができる。
[参考文献4]古井貞熙、“ディジタル音声処理, 4. 9ピッチ抽出”、pp.57-59、1985年
【0086】
音圧特徴としては、音声波形データの振幅値を用いるものとしてもよいし、短時間パワースペクトルを求め、任意の帯域の平均パワーを計算して用いるものとしてもよい。
【0087】
スペクトル特徴としては、例えば、メル尺度ケプストラム係数(MFCC:Mel-Frequency Cepstral Coefficients)を用いることができる。
【0088】
リズム特徴としては、例えば、テンポを抽出すればよい。テンポを抽出するには、例えば、下記の参考文献5に記載される方法などを用いることができる。
[参考文献5]E.D. Scheirer、“Tempo and Beat Analysis of Acoustic Musical Signals”、Journal of Acoustic Society America、Vol. 103、Issue 1、pp.588-601、1998年
【0089】
発話特徴、音楽特徴は、それぞれ、発話の有無、音楽の有無を表す。発話・音楽の存在する区間を発見するには、例えば、下記の参考文献6に記載される方法などを用いればよい。
[参考文献6]K. Minami、A. Akutsu、H. Hamada、Y. Tonomura、“Video Handling with Music and Speech Detection”、IEEE Multimedia、vol. 5、no. 3、pp.17-25、1998年
【0090】
音イベント特徴としては、例えば、笑い声や大声などの感情的な音声、あるいは、銃声や爆発音などの環境音の生起などを用いるものとすればよい。このような音イベントを検出するには、例えば、下記の参考文献7に記載される方法などを用いればよい。
[参考文献7]国際公開第2008/032787号
【0091】
コンテンツが映像である場合、映像は、一般に画像と音のストリームであるから、上記説明した画像特徴と音特徴を用いることができる。映像中のどの画像、音情報を分析するかについては、例えば、予め映像をいくつかの区間に分割し、その区間ごとに1つの画像、音から特徴抽出を実施する。
【0092】
映像を区間に分割するには、予め決定しておいた一定の間隔で分割するものとしてもよいし、例えば、下記の参考文献8に記載される方法などを用いて、映像が不連続に切れる点であるカット点によって分割するものとしてもよい。
[参考文献8]Y. Tonomura、A. Akutsu、Y. Taniguchi、G. Suzuki、“Structured Video Computing”、IEEE Multimedia、pp.34-43、1994年
【0093】
望ましくは、後者の方法を採用する。映像区間分割処理の結果として、区間の開始点(開始時刻)と終了点(終了時刻)が得られるが、この時刻毎に別々の特徴量として扱えばよい。
【0094】
以上のように抽出した特徴量は、一つあるいは複数を利用してもよいし、その他の公知の特徴量を用いるものとしてもよい。
【0095】
〔ハッシュ関数の生成処理〕
次に、ハッシュ関数の生成処理について説明する。コンテンツi(i=1,2,…,N)から抽出された特徴量をxとし、その特徴量xは特徴量空間Rに属するとする(x∈R)。
【0096】
このとき、前述したステップS103では、h:R→{0,1}となるハッシュ関数hの集合を求める。特徴量xは、各hにより0または1をとるバイナリ値に写像されるので、ハッシュ関数集合H={h,h,…,h}によってB個のバイナリ値、すなわち、Bbitのハッシュ値に変換されることになる。
【0097】
本発明の目的は、このハッシュ値によって、時間のかかるコンテンツ間の類似度計算を省略可能にすることである。したがって、ハッシュ関数は、元の特徴量x間の類似度s:R×R→Rと関連したハッシュ値への写像であることが要請され、高い類似度を持つコンテンツほど、ハッシュ値の距離(ハミング距離)が近くなることが好ましい。
【0098】
以下、ハッシュ関数の生成処理について詳述する。まず、ハッシュ関数生成部13によって生成されるハッシュ関数h(k=1,2,…,B)として、式(1),(2)に示すような線形関数に基づくハッシュ関数を考える。
【数1】

【数2】

【0099】
ここで、sign(x)は、w∈R、b∈Rをパラメータに持ち、x≧0のとき1、x<0のとき−1をとる符号関数である。このような符号関数に基づくハッシュ関数であることから、コンテンツiの特徴量xは、0または1のバイナリ値に変換されることになる。
【0100】
このハッシュ関数hにおいて、未知のパラメータは、wとbの二つだけである。ここで、仮に、コンテンツiの特徴量xが平均0に正規化されているとき、b=0としても一般性を失うことはない。
【0101】
特徴量xを0に正規化するには、特徴量xの平均mを各特徴量xから減算すればよいのであり、これはx∈Rにおいて可能であることから、b=0と決定できる。
【0102】
したがって、以降、特徴量xの平均は0に正規化されているとし、式(2)を式(3)のように定義しなおして説明する。
【数3】

【0103】
式(1),(3)のハッシュ関数hにおいて、w(k=1,2,…,B)のパラメータを定めることが、本ハッシュ関数の生成処理の目的となる。
【0104】
ここで、式(1),(3)のように表現されるハッシュ関数hの意味は、図4を用いて幾何的に説明できる。同図には、特徴量空間R上に、各コンテンツiからそれぞれ抽出された特徴量xが特徴点として分布している。なお、同図では、便宜上2次元のように図示しているが、実際にはd次元の空間である。
【0105】
ここで、ハッシュ関数hを構成するφ(x)は、この特徴量空間R上の原点を通る直線(実際は、(d−1)次元の超平面)を表している。ハッシュ関数h(x)は、前述したように本質的には符号関数であるから、特徴量xを示す特徴点がこの直線φ(x)によって2分割されたいずれの空間側にあるかによって、1または0をとる。
【0106】
すなわち、式(1),(3)によって定義されるハッシュ関数h(x)は、特徴量空間Rを直線φ(x)によって1と0の2つの領域に分割する関数である。パラメータwは、この直線φ(x)の傾きに対応し、そのwの値が変化すれば、分割する角度が変化することになる。
【0107】
したがい、本実施の形態によれば、コンテンツiの特徴量xの分布に基づいて、パラメータwを合理的に決定するハッシュ関数hの生成方法を提供することができる。以下、その原理と処理内容について説明する。
【0108】
前述した目的に合うハッシュ関数となるように、パラメータwを求めるもっとも合理的な方法の一つは、類似したコンテンツ群が、先の図4の例における直線の片側に集まるように直線を引く(すなわち、パラメータwを決める)ことである。
【0109】
ここで、わかりやすく図5を用いて説明する。同図では、白丸(○)で表されている特徴量xと、黒丸(●)で表されている特徴量xが存在する。また、これらとは別に、二重丸(◎)で表されている特徴量xが存在するが、ひとまずこれは無視してよい。
【0110】
今、白丸と黒丸で表されている特徴量xは、同色であれば互いに類似したコンテンツの特徴量であるとする。このとき、これらの類似したコンテンツ群が直線の片側に集まるように直線を引けばよい。このような直線は、2群の間を通るような直線であり、実際には無限に存在するが、例えば、直線51のようなものがある。
【0111】
しかしながら、そのような直線51は、頑健性(ロバスト性)に欠けるものである。ここで、先ほど無視した二重丸の特徴量xについて考える。これは、どちらかといえば白丸の群の周辺にあり、本来、白丸の群に属すべきコンテンツの特徴量であることが一目して見て取れる。
【0112】
しかしながら、この二重丸の特徴量xは、直線51によって黒丸の群の方に分類されてしまっており、誤った分類を与えられてしまっている。もし、この二重丸の特徴量xを持つコンテンツiがノイズによる揺らぎによって発生してしまった場合には、正しい分類を与えることができない。
【0113】
通常、コンテンツiの特徴量xは揺らぎを伴って得られることが普通であるから、任意に引いた直線51では、このような揺らぎに対して頑健性がなく、精度の低下を招いてしまう。
【0114】
これに対して本実施の形態では、無限にある直線の中から、頑健性の高い直線を求めることができる。頑健性の高い直線とは、マージンを最大化する直線、すなわち、それら両群のすべての特徴量x(特徴点)からの垂線距離が等しくなるような直線である、直線52を選べばよい。
【0115】
このようにして選ばれた直線52は、互いの群から平等に最も遠い位置にある直線である。このため、両群の周辺に揺らいで発生するような二重丸のような特徴量xがあったとしても、正しい分類ができる。
【0116】
すなわち、ハッシュ関数生成部13は、複数のコンテンツiの各特徴量xを特徴量空間R上に特徴点として分布させて少なくとも2つの群に分類し、各郡の全ての特徴点からの垂直距離が等しい直線を計算し、特徴点が当該直線によって2分割されたいずれの空間側にあるかに基づいて、コンテンツiをバイナリ値に変換するハッシュ関数を生成する。
【0117】
このような直線52は、例えば、それら両群の群間分散値Sと郡内分散値Sを変数に用いた式(4)の目的関数の演算値を最大化するwの値を求めることにより、得ることができる。なお、trace(トレース)とは、{}内のn次正方行列の対角成分の和を計算するものであり、線形代数学分野などにおいて一般に利用される。
【数4】

【0118】
なお、群間分散値S、郡内分散値Sは、それぞれ、式(5),(6)を用いて計算すればよい。ただし、mは群j(j=0,1)の平均ベクトル、mは全体の平均ベクトル、Nは群jに属する特徴量xの数、Nは全体の特徴量xの数である。先に述べたように、全体の平均が0になるよう正規化されている場合、理論的にはm=0となる。
【数5】

【数6】

【0119】
なお、式(4)を最大化するwは、例えば、ラグランジュ未定乗数法によって、下記の固有値問題の解(固有ベクトル)として求めることができる。
【数7】

【0120】
この固有値問題を解いてwを求める方法については、例えば、反復法など、種々の公知の方法を用いればよい。
【0121】
以上は、予めコンテンツiの特徴量xがどちらの群に属しているかが既知である必要がある。以降、この情報を群指示情報と呼ぶ。一方で、現実の問題においては、群指示情報は未知である。つまり、このままでは現実にある多くの問題において、上記手法を取ることができない。
【0122】
そこで、本実施の形態では、群指示情報が未知の場合においても、同様のハッシュ関数を生成できる処理をとる。以降、この処理の一例について詳述する。
【0123】
まず、特徴量x間の類似度を格納した類似度行列Vを求める。この類似度行列Vは、どのようなものでも構わないが、例えば、式(8)を利用して求めればよい。
【数8】

【0124】
また、その類似度行列Vに基づいて対角行列Dを計算する。
【数9】

【0125】
そして、式(4)に対して、群指示情報に依存しない正則化項を導入する。
【数10】

【0126】
式(10)の第2項がその正則化項であり、群間分散値Sや郡内分散値Sが含まれていないので、群指示情報がなくとも計算可能な項である。
【0127】
この式(10)の演算値を最大化するwの値は、ラグランジュ未定乗数法によって下記の固有値問題の解として求めることができる。なお、ηはパラメータであり、Xはハッシュ関数を求めた際の特徴量xの集合である。
【数11】

【0128】
このような固有値問題の解は、前述の通り、反復法などの公知の方法によって計算できるので、仮に、群間分散値Sや郡内分散値Sがゼロ行列(要素がすべて0である行列)とすれば、群指示情報が全くなかったとしても、式(11)を満たすwを求めることができる。こうして求めたwを、wとする。
【0129】
ハッシュ関数が1つ(すなわち、各特徴量xを1ビットのハッシュ値に変換する)でよければ、以上の手続きを以てハッシュ関数の生成処理を終了して構わない。
【0130】
しかしながら、通常は複数のハッシュ関数を用意し、複数ビットのハッシュ値に変換する。ここでは、以下の手続きにより、B個のハッシュ関数を用意するとして、wから順次w,w,…,wを求める。
【0131】
今、k個のハッシュ関数hが求まっているとしたとき、k+1個目のハッシュ関数hk+1を求めることを考える。本実施の形態では、k個目までのハッシュ関数hを用いて、各特徴量xに疑似的な群指示情報を決定する。この付与方法は任意の方法で構わないが、例えば、k個目のハッシュ関数hを用いて、次の規則に基づいて疑似群指示情報を与える。
【数12】

【0132】
ここで、δはパラメータである。このように決定された疑似群指示情報を群指示情報であるとみなすことによって、式(5),(6)を用いて群間分散値Sや郡内分散値Sを計算することができ、式(11)を満たすwk+1を得ることができる。
【0133】
基本的には、上記の処理をk=1,2,…,Bと繰り返すことにより、ハッシュ関数hを逐次求めていけばよい。
【0134】
一方で、そのように「k個目までのハッシュ関数hを用いて、各特徴量xに疑似的な群指示情報を決定する」場合、k個目までのハッシュ関数hとk+1個目のハッシュ関数hk+1が互いに相関の高いもの(類似したもの)になってしまう確率が高く、非効率的である。
【0135】
そこで、本実施の形態では、より少ないハッシュ関数数でも高精度なハッシュ関数生成が実現できるよう、複数のハッシュ関数を生成する際に、互いに相関の低いハッシュ関数を生成する補正処理を導入する。
【0136】
例えば、k個目のハッシュ関数hを用いて、k個目のハッシュ関数hを求めた際の特徴量xの集合X={x,x,…,x}を、次のように補正する。すなわち、ハッシュ関数間の相関度が低くなるように特徴点の分布状態を変化させる。
【数13】

【0137】
この補正により、特徴量の分布から、wが示す方向成分が縮退されるので、その結果、既に得られているハッシュ関数と相関の低い特徴量分布へと変化する。この補正により、互いに相関の小さいハッシュ関数が生成されるようになる。
【0138】
以上の処理を繰り返すことにより、B個のハッシュ関数を得ることができる。処理の一例をまとめると、下記のように表現することができる。
【0139】
(手順1)最初に、k=1とし、Sk=1=0、Sk=1=0、Xk=1=Xとする。
【0140】
(手順2)次に、下記の固有値問題を解き、最大の固有値に対応する固有ベクトルをwとする。
【数14】

【0141】
(手順3)次に、式(12)を用いて疑似群指示情報を計算する。
【0142】
(手順4)次に、k=Bなら処理を終了し、それ以外なら(手順5)に進む。なお、Bは任意に設定できる。
【0143】
(手順5)次に、式(15)〜式(17)を用いて、Sk+1、Sk+1、Xk+1を求める。
【数15】

【数16】

【数17】

【0144】
(手順6)(手順2)に戻る。
【0145】
上記の処理手続きによって生成されたハッシュ関数h、すなわち、具体的には、パラメータw(k=1,2,…,B)は、ハッシュ関数記憶部14に格納される。
【0146】
〔ハッシュ化処理〕
前述のハッシュ関数生成処理が済んでいれば、ハッシュ関数記憶部14には、B個のハッシュ関数が格納されている。これを用いることにより、特徴量xで表現された任意のコンテンツiを、Bビット以下のハッシュ値で表現することができる。
【0147】
〔実施例〕
ここでは、画像データベースを対象に、本実施の形態で実施したハッシュ値に基づいて類似画像を検索する一実施例について説明する。
【0148】
この実施例の画像データベースには、約20,000の画像が登録されている。各画像は、10種類の異なるオブジェクトが示されている。この実施例では、同じオブジェクトを示す画像を、画像データベースに登録された画像の中から探し出すことを目的とした。
【0149】
従来の手法であれば、画像データベースに登録された全ての画像から特徴量を抽出しておき、閲覧画像の特徴量と類似度の高い画像データベース中の画像を推薦結果として出力する。
【0150】
一方、本実施例では、これをハッシュ値によって実施する。特徴量は任意のものを用いて構わないが、本実施例では画像を28ピクセル×28ピクセル=784ピクセルに縮小し、各ピクセルの輝度値(256諧調)をそのまま用いた。
【0151】
すなわち、784次元の整数ベクトルであり、6,272bitに相当する。これは予め、画像データベース中の全ての画像からこの特徴量を抽出しておく。さらに、本実施の形態によって、コンテンツの特徴量からハッシュ値を生成し、これを画像データベースに登録しておく。
【0152】
この実施例では、本実施の形態によって生成したハッシュ値による類似検索精度と、非特許文献1、2の技術によって生成したハッシュ値による類似検索精度とを比較した。図6に、ハッシュ値のビット数(ハッシュ関数の数)を変化させたときの検索精度を示す。
【0153】
いずれのビット数においても、本実施例の方が高い精度を得ている。本実施例によれば、通常1コンテンツあたり6,272bitが必要であったところを、8bit〜32bitといった非常に小さい情報量で表現した場合であっても、高い精度を実現できている。このことから、本実施例による技術の高い効果が確認できる。
【0154】
以上説明したように、本実施の形態によれば、複数のコンテンツiの各特徴量xを特徴量空間R上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線を求め、特徴点が当該直線によって2分割されたいずれの空間側にあるかに基づいてコンテンツiをバイナリ値に変換するハッシュ関数hを生成する、より具体的には、特徴量xの群間距離と群内距離に基づいてハッシュ関数hを生成するので、揺らぎに頑健なハッシュ関数を生成することができることから、結果として、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。
【0155】
また、本実施の形態によれば、複数のハッシュ関数hを生成する際に、特徴量xの分布を逐次補正しながらハッシュ関数を生成するので、互いに相関の低いハッシュ関数を生成できることから、結果として、より少ないハッシュ関数の数(ビット数)で、高精度な類似コンテンツ検索を実施することができる。
【符号の説明】
【0156】
1…情報処理装置(コンテンツ変換装置)
2…コンテンツデータベース
11…入力部
12…特徴抽出部(抽出手段)
13…ハッシュ関数生成部(生成手段)
14…ハッシュ関数記憶部(記憶手段)
15…ハッシュ化部
16…出力部
S101〜S103、S201〜S204…ステップ

【特許請求の範囲】
【請求項1】
コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換方法において、
コンピュータにより、
記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出ステップと、
前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成ステップと、
を有することを特徴とするコンテンツ変換方法。
【請求項2】
前記生成ステップは、
前記2つの群の群間分散値Sと郡内分散値Sを変数に用いたtrace{w(S−S)w}(但し、ww=1)の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする請求項1記載のコンテンツ変換方法。
【請求項3】
前記生成ステップは、
前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする請求項1又は2記載のコンテンツ変換方法。
【請求項4】
前記ハッシュ関数を1つ以上用いて前記コンテンツを1つ以上のバイナリ値に変換する変換ステップを更に有することを特徴とする請求項1乃至3のいずれかに記載のコンテンツ変換方法。
【請求項5】
コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換装置において、
記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出手段と、
前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成手段と、
を有することを特徴とするコンテンツ変換装置。
【請求項6】
前記生成手段は、
前記2つの群の群間分散値Sと郡内分散値Sを変数に用いたtrace{w(S−S)w}(但し、ww=1)の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする請求項5記載のコンテンツ変換装置。
【請求項7】
前記生成手段は、
前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする請求項5又は6記載のコンテンツ変換装置。
【請求項8】
請求項1乃至4のいずれかに記載のコンテンツ変換方法をコンピュータに実行させることを特徴とするコンテンツ変換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−109479(P2013−109479A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−252708(P2011−252708)
【出願日】平成23年11月18日(2011.11.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)