JP2015201041A - ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム - Google Patents

ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム Download PDF

Info

Publication number
JP2015201041A
JP2015201041A JP2014079552A JP2014079552A JP2015201041A JP 2015201041 A JP2015201041 A JP 2015201041A JP 2014079552 A JP2014079552 A JP 2014079552A JP 2014079552 A JP2014079552 A JP 2014079552A JP 2015201041 A JP2015201041 A JP 2015201041A
Authority
JP
Japan
Prior art keywords
hash
feature
feature amount
value
hash function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014079552A
Other languages
English (en)
Inventor
豪 入江
Takeshi Irie
豪 入江
新井 啓之
Hiroyuki Arai
啓之 新井
行信 谷口
Yukinobu Taniguchi
行信 谷口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014079552A priority Critical patent/JP2015201041A/ja
Publication of JP2015201041A publication Critical patent/JP2015201041A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数特徴量ハッシュ関数を生成することができるようにする。
【解決手段】単一特徴量ハッシュ関数生成部32が、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、当該特徴量に対応するハッシュ値を求めるためのハッシュ関数である単一特徴量ハッシュ関数を生成する。そして、単一特徴量ハッシュ値生成部36によって、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、当該特徴量と、生成された当該特徴量に対応する単一特徴量ハッシュ関数とに基づいて、当該特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成する。そして、複数特徴量ハッシュ関数生成部38が、複数のコンテンツの各々に対して生成された複数の単一特徴量ハッシュ値に基づいて、複数の単一特徴量ハッシュ値の情報量が最大となるように、複数特徴量ハッシュ関数を生成する。
【選択図】図1

Description

本発明は、ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラムに係り、特に、複数特徴量ハッシュ関数を生成するハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラムに関する。
通信環境やコンピュータ、分散処理基盤技術の高度・高品質化により、ネットワークに流通するコンテンツ(画像・映像・音声・文書等)の数は膨大なものとなっている。例えば、ある検索エンジンがインデクシングしているウェブページの数は数兆にのぼるといわれている。また、あるサイトでは、日々3.5億の画像がアップロードされていると報告されており、また、あるサイトでは、1分当たり64時間分の映像が新規に公開されているとの報告もある。
このような膨大な量のコンテンツは、利用者にとっては豊富な情報源となる一方で、閲覧したいコンテンツに素早くアクセスすることがますます困難になっているという課題ももたらしている。このような流れの中、閲覧・視聴したいコンテンツを効率的に探し出すためのメディア解析技術への要望がますます高まってきている。
コンテンツの解析においては、類似したコンテンツの発見が重要な役割を果たす。例えば、コンテンツを分類する場合は、同じようなコンテンツは同じカテゴリに分類する。あるいは検索の場合、あるコンテンツをクエリとして与えたとき、このコンテンツに類似したコンテンツを検索することが基本的な要件となる。そのほか、コンテンツ推薦においても利用者がこれまでに閲覧した/閲覧しているコンテンツと類似したコンテンツを発見してこれを推薦するし、コンテンツ要約の場合においても、類似したコンテンツを提示することは冗長であるため、これを発見して省くような処理が必要となる。
ここで、類似コンテンツを発見する典型的な手続きについて説明する。まず、コンテンツをある特徴量によって表現する。次に、特徴量同士の近さを測ることで類似度を計算し、この類似度に基づいて類似コンテンツを発見する。単純な例を挙げれば、コンテンツが画像や映像であれば、画像(映像フレーム)の色ヒストグラムを特徴量としてその類似度を測ることができる。コンテンツが文書であれば、単語の出現頻度をヒストグラム化したもの(Bag−of−Wordsヒストグラムなどと呼ぶ)を特徴量として類似度を測ることができる。いうまでもなく、仮にコンテンツの数が1000あれば、1000のコンテンツそれぞれに対して類似度を計算し、結果類似度の高いコンテンツを類似コンテンツとして拾い上げる必要がある。
しかしながら、前述のように、膨大な量のコンテンツを対象にした場合、計算時間とメモリを大量に消費するという課題があった。
通常、コンテンツの特徴量(ベクトル)の次元は高次元になることが多く、その類似度の計算には膨大な時間を要する。一般に、文書のBag−of−Wordsヒストグラムの次元は、単語の種類(語彙)と同次元になる。画像の色ヒストグラムのような単純な特徴量であっても、一般に数百〜数千次元の実数値ベクトルとなるし、最近用いられるスパース表現やフィッシャーカーネルに基づく特徴表現では、数十万〜数百万次元のベクトルとなることもあり得る。さらに、全てのコンテンツの組に対してその類似度を計算する必要があるため、どのような類似度計算手段を用いようとも、特徴量の次元がD、コンテンツがN個あったとするとO(DN)の計算量を要する。また、即時検索を実行するためには、特徴量あるいはその類似度をメモリに蓄積しておくことが好ましいが、これを行うためにはO(N)のメモリが必要となる。このように、億を超えるオーダのコンテンツを扱う必要がある昨今においては、非現実的な時間とメモリを要するのである。
さらに、昨今のコンテンツはそれ単体として流通することは稀であり、ある特定のコンテキストに即しながら、相互に関連した内容を持つ複数の異種メディアが混在して流通しているのが実状である。例えば、「東京オリンピック開催決定」について報じたニュースサイトのウェブページには、招致団や会場の様子を記した文書の他、現場の様子を撮影した写真が付与されているであろう。あるいは、写真だけでなく、映像や音声が付加されていることも少なくない。また、仮に画像一つに着目した場合でも、これを表現する特徴量は単一のものに限らない。先に述べたように、同じ画像であっても色ヒストグラムでこれを表現することもできるし、スパース表現やフィッシャーカーネルに基づく特徴表現を採用することもできる。すなわち、ある単一のコンテンツを表現する上で、その表現は単一に限らないのであり、往々にして複数の異なる特徴量やメディアの複合体として表現されるべきものである。ここで、本明細書で指すところの「メディア」は、画像や文書、映像、音等のコンテンツの種別を表すのであり、種別ごと種々の公知の「特徴量」によって表現することができるものである。したがって、以降、「特徴量やメディア」を区別なく単に特徴量と記す。
上記観点は、類似コンテンツの発見においては殊更重要である。例えば、ある「赤いりんご」の写真を持っていたとして、これに類似する画像を発見したいとしよう。特徴量として、仮に色ヒストグラムを用いたとすると、“赤”をキーとして赤い物体が検索されるので、正解となる「りんご」だけでなく、「郵便ポスト」や「赤いバラ」など類似しているとは言い難い物体も含まれてしまうであろう。また、仮に形状を表す特徴量であるHistogram of Oriented Gradient(HOG)などを利用すると、この場合にも正解の「赤いりんご」だけでなく、「みかん」や「サッカーボール」など、同様の“丸い”形状を持つ物体が検索されてしまう。すなわち、類似コンテンツの発見においては単一の特徴量による探索は失敗しやすいのである。こういった場合には、色ヒストグラムとHOGの双方を特徴量として利用することで、“赤”くかつ“丸い”ことをキーとすることで、上記のような「郵便ポスト」、「赤いバラ」、「みかん」、「サッカーボール」など、明らかな間違いを防ぎ、発見効率を高めることができるのである。
このような問題を解決するために、従来からいくつかの発明がなされている。特許文献1に開示されている技術では、コンテンツの特徴量と、異なる2つのコンテンツを関連付けるべきか否かを示す関連情報(正解データ)に基づいてハッシュ関数を求め、このハッシュ関数を基に特徴量を低ビットなハッシュ値に変換する。
また、非特許文献1に開示されている技術では、近接する任意の2つのコンテンツ(特徴量)において、元の特徴量の類似度と衝突確率が等しくなるようなハッシュ関数群を生成する。典型的な類似度としてコサイン類似度を考えており、その場合のハッシュ関数生成の基本的な手続きは、特徴量空間にランダムな超平面を複数生成することによる(random projectionと呼ばれる)。各超平面のどちら側に特徴量が存在するかによって特徴量をハッシュ化し、全てのコンテンツ間で類似度を求めることなく、近似的に類似コンテンツを発見することができる。
また、非特許文献2に開示されている技術は、特徴量の分布を捉え、その分布に対して最適なハッシュ値を構成する。具体的には、特徴量空間における多様体構造を捉え、その多様体構造を最適に保存するバイナリ空間(ハッシュ空間)への非線形な埋め込みを求めることで、元の高次元な特徴量を、低ビットなハッシュ値に変換する。そのハッシュ値の類似性を評価することで、高速な類似コンテンツの発見を実現することができる。
特開2013−68884号公報
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 入江 豪、Zhenguo Li、Shih−Fu Chang、「構造を保存するハッシング」、画像の認識・理解シンポジウム、2013.
特許文献1及び非特許文献1、2に開示されている技術では、元のコンテンツをコンパクトなハッシュ値に変換することで、非常に高精度かつ高速な類似コンテンツの発見を可能にしていた。しかしながら、いずれの技術もそのハッシュ値は、コンテンツごとにある単一の特徴量に基づいて生成されるのであり、複数の異なる特徴量に基づいてハッシュ値を構成できるものではなかった。現在に至るまで、いずれの技術によっても、高速かつ省メモリでありながら、複数の異なる特徴量に基づいてハッシュ値を構成することで高精度な類似コンテンツの発見を実現することはできないという問題があった。
本発明は、上記の事情を鑑みてなされたもので、複数特徴量ハッシュ関数を生成することができるハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラムを提供することを目的とする。
上記の目的を達成するために本発明に係るハッシュ関数生成方法は、単一特徴量ハッシュ関数生成手段、単一特徴量ハッシュ値生成手段、及び複数特徴量ハッシュ関数生成手段を含むハッシュ関数生成装置におけるハッシュ関数生成方法であって、前記単一特徴量ハッシュ関数生成手段が、複数のコンテンツの各々に対し、前記コンテンツから抽出された複数の特徴量の各々について、前記特徴量に対応するハッシュ値を求めるためのハッシュ関数である単一特徴量ハッシュ関数を生成するステップと、前記単一特徴量ハッシュ値生成手段が、前記複数のコンテンツの各々に対し、前記コンテンツから抽出された前記複数の特徴量の各々について、前記特徴量と、前記単一特徴量ハッシュ関数生成手段によって生成された前記特徴量に対応する前記単一特徴量ハッシュ関数とに基づいて、前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成するステップと、前記複数特徴量ハッシュ関数生成手段が、前記単一特徴量ハッシュ値生成手段によって前記複数のコンテンツの各々に対して生成された複数の前記単一特徴量ハッシュ値に基づいて、前記複数の単一特徴量ハッシュ値の情報量が最大となるように、前記複数の単一特徴量ハッシュ値各々のビット数の総和よりも小さいビット数のハッシュ値を求めるためのハッシュ関数である複数特徴量ハッシュ関数を生成するステップと、を含んで構成されている。
本発明に係るハッシュ関数生成装置は、複数のコンテンツの各々に対し、前記コンテンツから抽出された複数の特徴量の各々について、前記特徴量に対応するハッシュ値を求めるためのハッシュ関数である単一特徴量ハッシュ関数を生成する単一特徴量ハッシュ関数生成手段と、前記複数のコンテンツの各々に対し、前記コンテンツから抽出された前記複数の特徴量の各々について、前記特徴量と、前記単一特徴量ハッシュ関数生成手段によって生成された前記特徴量に対応する前記単一特徴量ハッシュ関数とに基づいて、前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成する単一特徴量ハッシュ値生成手段と、前記単一特徴量ハッシュ値生成手段によって前記複数のコンテンツの各々に対して生成された複数の前記単一特徴量ハッシュ値に基づいて、前記複数の単一特徴量ハッシュ値の情報量が最大となるように、前記複数の単一特徴量ハッシュ値各々のビット数の総和よりも小さいビット数のハッシュ値を求めるためのハッシュ関数である複数特徴量ハッシュ関数を生成する複数特徴量ハッシュ関数生成手段と、を含んで構成されている。
本発明における前記複数特徴量ハッシュ関数生成手段は、前記単一特徴量ハッシュ値生成手段によって前記複数のコンテンツの各々に対して生成された複数の前記単一特徴量ハッシュ値に基づいて、前記複数の単一特徴量ハッシュ値の分散が最大となるように、前記複数特徴量ハッシュ関数を生成するようにすることができる。
本発明は、前記ハッシュ値をバイナリ値とするようにすることができる。
本発明に係るハッシュ値生成方法は、単一特徴量ハッシュ値生成手段、及び複数特徴量ハッシュ値生成手段を含むハッシュ値生成装置におけるハッシュ値生成方法であって、前記単一特徴量ハッシュ値生成手段が、コンテンツから抽出された複数の特徴量の各々について、前記特徴量と、前記コンテンツの前記特徴量に対応する予め生成された前記単一特徴量ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成するステップと、前記複数特徴量ハッシュ値生成手段が、前記単一特徴量ハッシュ値生成手段によって生成された複数の前記単一特徴量ハッシュ値と、本発明のハッシュ関数生成方法によって生成された前記複数特徴量ハッシュ関数とに基づいて、前記コンテンツの前記複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成するステップと、を含んで構成されている。
本発明に係るハッシュ値生成装置は、コンテンツから抽出された複数の特徴量の各々について、前記特徴量と、前記コンテンツの前記特徴量に対応する予め生成された前記単一特徴量ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成する単一特徴量ハッシュ値生成手段と、前記単一特徴量ハッシュ値生成手段によって生成された複数の前記単一特徴量ハッシュ値と、本発明のハッシュ関数生成装置によって生成された前記複数特徴量ハッシュ関数とに基づいて、前記コンテンツの前記複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成する複数特徴量ハッシュ値生成手段と、を含んで構成されている。
本発明のプログラムは、本発明のハッシュ関数生成方法、又は本発明のハッシュ値生成方法の各ステップをコンピュータに実行させるためのプログラムである。
以上説明したように、本発明のハッシュ関数生成方法、装置、及びプログラムによれば、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、単一特徴量ハッシュ関数を生成し、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、当該特徴量と、当該特徴量に対応する単一特徴量ハッシュ関数とに基づいて、単一特徴量ハッシュ値を生成し、複数のコンテンツの各々に対して生成された複数の単一特徴量ハッシュ値に基づいて、複数の単一特徴量ハッシュ値の情報量が最大となるように、複数特徴量ハッシュ関数を生成することにより、複数の特徴量を含むコンテンツのハッシュ値を生成するための複数特徴量ハッシュ関数を生成することができる、という効果が得られる。
また、本発明のハッシュ値生成方法、装置、及びプログラムによれば、コンテンツから抽出された複数の特徴量の各々について、当該特徴量と、当該特徴量に対応する予め生成された単一特徴量ハッシュ関数とに基づいて、コンテンツの特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成し、生成された複数の単一特徴量ハッシュ値と、生成された複数特徴量ハッシュ関数とに基づいて、コンテンツの複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成することにより、コンテンツと類似するデータを精度よく発見することができる。
本発明の第1の実施の形態に係る情報処理装置の構成を示す概略図である。 本発明の第1の実施の形態に係る情報処理装置におけるハッシュ関数生成処理ルーチンの内容を示すフローチャートである。 本発明の第1の実施の形態に係る情報処理装置におけるハッシュ値生成処理ルーチンの内容を示すフローチャートである。 本発明の第2の実施の形態に係る情報処理システムの構成を示す概略図である。 複数特徴量ハッシュ値によって対応付けられたコンテンツの一例を示す図である。 本発明の第1の実施の形態に係る情報処理装置の実施例の一例を示す図である。
本発明の実施の形態では、複数の特徴量によって表現されたコンテンツに対し、高速かつ省メモリでありながらも高精度な類似コンテンツ発見を実現するためのハッシュ関数の生成及びハッシュ値の生成を行う情報処理装置に本発明を適用した場合を例に説明する。以下、図面を参照して本発明の実施の形態を詳細に説明する。
<第1の実施の形態>
<システム構成>
本発明の第1の実施の形態に係る情報処理装置1は、ハッシュ関数を生成し、生成されたハッシュ関数を用いてハッシュ値を生成する。この情報処理装置1は、CPUと、RAMと、後述する複数特徴量ハッシュ関数生成処理ルーチン及び複数特徴量ハッシュ値生成処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図1に示すように、情報処理装置1は、入力部2と、演算部3と、出力部4とを備えている。
また、図1に示すコンテンツデータベース5には、複数のコンテンツが登録されている。コンテンツデータベース5には、少なくともコンテンツ自体、あるいは、当該コンテンツデータの所在を一意に示すアドレスが格納されている。コンテンツは、例えば、文書であれば文書ファイル、画像であれば画像ファイル、音であれば音ファイル、映像であれば映像ファイルなどであり、好ましくは、コンテンツデータベース5には、更に、各コンテンツのメディア種別とそれ自体を一意に識別可能な識別子が格納されているものとする。その他、メタデータとして、例えばコンテンツの内容を表現するもの(コンテンツのタイトル、概要文、キーワード)、コンテンツのフォーマットに関するもの(コンテンツのデータ量、サムネイル等のサイズ)などが、コンテンツデータベース5に格納されていてもよい。
情報処理装置1は、コンテンツデータベース5と通信手段を介して接続され、入力部2、出力部4を介して相互に情報通信し、コンテンツデータベース5に登録されたコンテンツに基づいて単一/複数特徴量ハッシュ関数を生成する単一/複数特徴量ハッシュ関数生成処理と、生成した単一/複数特徴量ハッシュ関数を用いてコンテンツを複数のバイナリ値に変換する単一/複数特徴量ハッシュ値生成処理を行う。
また、コンテンツデータベース5は、情報処理装置1の内部にあっても外部にあっても構わず、通信手段は任意の公知のものを用いることができるが、本実施形態においては、外部にあるものとして、通信手段は、インターネット、TCP/IPにより通信するよう接続されているものとする。コンテンツデータベース5は、いわゆるRDBMS(Relational Database Management System)などで構成されているものとしてもよい。
情報処理装置1の各部およびコンテンツデータベース5は、演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは情報処理装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現してもよい。
次に、図1に示す情報処理装置1の各部について説明する。
入力部2は、処理対象データであるコンテンツを受け付ける。具体的には、入力部2は、コンテンツデータベース5から、複数(N個)のコンテンツを取得する。また、入力部2は、検索クエリとしてのコンテンツの入力を受け付ける。
演算部3は、特徴抽出部30と、単一特徴量ハッシュ関数生成部32と、記憶部34と、単一特徴量ハッシュ値生成部36と、複数特徴量ハッシュ関数生成部38と、複数特徴量ハッシュ値生成部40とを備えている。このうち、本発明の実施の形態の主たる機能を備える構成要素は、複数特徴量ハッシュ関数生成部38及び複数特徴量ハッシュ値生成部40である。
特徴抽出部30は、入力部2によって受け付けたN個のコンテンツの各々に対し、当該コンテンツから複数の特徴量を抽出する。具体的には、特徴抽出部30は、N個の各コンテンツを解析し、各コンテンツを特徴的に表すM個(M>0)の特徴量を抽出する。
また、特徴抽出部30は、入力部2によって受け付けた検索クエリとしてのコンテンツから、複数の特徴量を抽出する。
特徴抽出部30における特徴量を抽出する処理は、コンテンツのメディア種別に依存する。例えば、コンテンツが文書であるか、画像であるか、音であるか、映像であるかによって、抽出するまたは抽出できる特徴量は変化する。ここで、各メディア種別に対してどのような特徴量を抽出するかは、本実施の形態の要件として重要ではなく、一般に知られた公知の特徴抽出処理を用いてよい。具体的には、あるコンテンツから抽出された次元を持つ数値データ(スカラー又はベクトル)であれば、あらゆる特徴量に対して有効である。したがって、ここでは、本実施形態に適する、各種コンテンツに対する特徴抽出処理の一例を説明する。
コンテンツが文書である場合には、文書中に出現する単語の出現頻度を用いることができる。例えば、公知の形態素解析を用いて、名詞、形容詞等に相当する単語ごとに、その出現頻度を計数すればよい。この場合、各文書の特徴量は、単語種別と同じだけの次元を持つベクトルとして表現される。
コンテンツが画像である場合には、例えば、明るさ特徴、色特徴、テクスチャ特徴、コンセプト特徴、景観特徴、形状特徴などを抽出する。明るさ特徴は、HSV色空間におけるV値を数え上げることで、ヒストグラムとして抽出することができる。この場合、各画像の特徴量は、V値の量子化数(例えば、16ビット量子化であれば256諧調)と同数の次元を持つベクトルとして表現される。
色特徴は、L*a*b*色空間における各軸(L*、a*、b*)の値を数え上げることで、ヒストグラムとして抽出することができる。各軸のヒストグラムのビンの数は、例えば、L*に対して4、a*に対して14、b*に対して14などとすればよく、この場合、3軸の合計ビン数は、4×14×14=784、すなわち784次元のベクトルとなる。
テクスチャ特徴としては、濃淡ヒストグラムの統計量(コントラスト)やパワースペクトルなどを求めればよい。あるいは、局所特徴量を用いると、色や動きなどと同様、ヒストグラムの形式で抽出することができるようになるため好適である。局所特徴としては、例えば下記の参考文献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, and L.V. Gool, “SURF: Speeded Up Robust Features", Lecture Notes in Computer Science, vol. 3951, pp.404-417, 2006
これらによって抽出される局所特徴は、例えば128次元の実数値ベクトルとなる。このベクトルを、予め学習して生成しておいた符号長を参照して、符号に変換し、その符号の数を数え上げることでヒストグラムを生成することができる。この場合、ヒストグラムのビンの数は、符号長の符号数と一致する。又は、参考文献3に記載のスパース表現や、参考文献4、5に記載のフィッシャーカーネルに基づく特徴表現などを利用してもよい。
[参考文献3] Jinjun Wang, Jianchao Yang, Kai Yu, Fengjun Lv, Thomas Huang, and Yihong Gong, “Locality-constrained Linear Coding for Image Classification", IEEE Conference on Computer Vision and Pattern Recognition, pp. 3360-3367, 2010.
[参考文献4] Florent Perronnin, Jorge Sanchez, Thomas Mensink, “Improving the Fisher Kernel for Large-Scale Image Classification", European Conference on Computer Vision, pp. 143-156, 2010.
[参考文献5] Herve Jegou, Florent Perronnin, Matthijs Douze, Jorge Sanchez, Patrick Perez, Cordelia Schmid, “Aggregating Local Image Descriptors into Compact Codes", IEEE Trans. Pattern Recognition and Machine Intelligence, Vol. 34, No. 9, pp. 1704-1716, 2012.
結果として生成される特徴量は、いずれの場合にも、符号長の符号数に依存した長さを持つ実数値ベクトルになる。
コンセプト特徴とは、画像中に含まれる物体や、画像が捉えているイベントのことである。任意のものを用いてよいが、例を挙げれば、「海」、「山」、「ボール」などのようなものである。もし、ある画像に「海」が映っていた場合、その画像は「海」コンセプトに帰属する画像であるという。その画像が、各コンセプトに帰属するか否かは、コンセプト識別器を用いて判断することができる。通常、コンセプト識別器はコンセプト毎に一つ用意され、画像の特徴量を入力として、その画像があるコンセプトに帰属しているか否かを帰属レベルとして出力する。コンセプト識別器は、予め学習して獲得しておくものであり、決められた画像特徴、例えば先に述べた局所特徴と、予め人手によって、その画像がどのコンセプトに帰属しているかを表した正解ラベルとの関係を学習することによって獲得する。学習器としては、例えばサポートベクターマシンなどを用いればよい。コンセプト特徴は、各コンセプトへの帰属レベルをまとめてベクトルとして表現することで得ることができる。この場合、生成される特徴量はコンセプトの数と同数の次元を持つベクトルとなる。
景観特徴は、画像の風景や場面を表現した特徴量である。例えば参考文献6に記載のGIST記述子を用いることができる。GIST記述子は画像を領域分割し、各領域に対して一定のオリエンテーションを持つフィルタを掛けたときの係数によって表現されるが、この場合、生成される特徴量は、フィルタの種類(分割する領域の数とオリエンテーションの数)に依存した長さのベクトルとなる。
[参考文献6]A. Oliva and 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
形状特徴は、画像に写る物体の形状を表す特徴量である。例えば参考文献7に記載のHOG特徴量やエッジヒストグラムを用いることができる。
[参考文献7]N. Dalal and B. Triggs, “Histograms of Oriented Gradients for Human Detection", IEEE Conference on Computer Vision and Pattern Recognition, pp.886-893, 2005
コンテンツが音である場合には、音高特徴、音圧特徴、スペクトル特徴、リズム特徴、発話特徴、音楽特徴、音イベント特徴などを抽出する。音高特徴は、例えばピッチを取るものとすればよく、下記の参考文献8に記載される方法などを用いて抽出することができる。この場合、ピッチを1次元ベクトル(スカラー)として表現するか、あるいはこれをいくつかの次元に量子化しておいてもよい。
[参考文献8]古井貞熙,“ディジタル音声処理,4.9ピッチ抽出”,pp.57−59,1985
音圧特徴としては、音声波形データの振幅値を用いるものとしてもよいし、短時間パワースペクトルを求め、任意の帯域の平均パワーを計算して用いるものとしてもよい。いずれにしても、音圧を計算するバンドの数に依存した長さのベクトルとなる。
スペクトル特徴としては、例えばメル尺度ケプストラム係数(MFCC:Mel-Frequency Cepstral Coefficients)を用いることができる。
リズム特徴としては、例えばテンポを抽出すればよい。テンポを抽出するには、例えば下記の参考文献9に記載される方法などを用いることができる。
[参考文献9]E.D. Scheirer, “Tempo and Beat Analysis of Acoustic Musical Signals ", Journal of Acoustic Society America, Vol. 103, Issue 1, pp.588-601, 1998
発話特徴、音楽特徴は、それぞれ、発話の有無、音楽の有無を表す。発話・音楽の存在する区間を発見するには、例えば下記の参考文献10に記載される方法などを用いればよい。
[参考文献10]K. Minami, A. Akutsu, H. Hamada, and Y. Tonomura, “Video Handling with Music and Speech Detection", IEEE Multimedia, vol. 5, no. 3, pp.17-25, 1998
音イベント特徴としては、例えば、笑い声や大声などの感情的な音声、あるいは、銃声や爆発音などの環境音の生起などを用いるものとすればよい。このような音イベントを検出するには、例えば下記の参考文献11に記載される方法などを用いればよい。
[参考文献11]国際公開第2008/032787号
コンテンツが映像である場合、映像は、一般に画像と音のストリームであるから、上記説明した画像特徴と音特徴を用いることができる。映像中のどの画像、音情報を分析するかについては、例えば、予め映像をいくつかの区間に分割し、その区間ごとに1つの画像、音から特徴抽出を実施する。
映像を区間に分割するには、予め決定しておいた一定の間隔で分割するものとしてもよいし、例えば下記の参考文献12に記載される方法などを用いて、映像が不連続に切れる点であるカット点によって分割するものとしてもよい。
[参考文献12]Y. Tonomura, A. Akutsu, Y. Taniguchi, and G. Suzuki, “Structured Video Computing", IEEE Multimedia, pp.34-43, 1994
映像を区間に分割する場合には、望ましくは、上記の後者の方法を採用する。映像区間分割処理の結果として、区間の開始点(開始時刻)と終了点(終了時刻)が得られるが、この時刻毎に別々の特徴量として扱えばよい。
上記説明した特徴量の中から、M種類の特徴量を予め選択しておき、特徴抽出部30によって、選択したM種類の特徴量を抽出する。なお、以上のように抽出できる特徴量以外にも、その他の公知の特徴量を用いるものとしてもよい。
単一特徴量ハッシュ関数生成部32は、N個のコンテンツの各々に対して特徴抽出部30によって当該コンテンツから抽出されたM個の特徴量に基づいて、M個の特徴量の各々について、単一特徴量ハッシュ関数を生成する。単一特徴量ハッシュ関数は、特徴量に対応するハッシュ値を求めるためのハッシュ関数である。具体的には、あるコンテンツiから抽出されたm番目の特徴量をxm,i∈RDmと表し、特徴量xm,iのコンテンツの特徴量次元はDであるとき、単一特徴量ハッシュ関数生成部32は、特徴量xm,iに対して、hm,k:RDm→{−1,1}Bmとなる単一特徴量ハッシュ関数を求める。ここで、Bは特徴量xm,iに対して生成する単一特徴量ハッシュ値のバイナリビット数である。{−1,1}と{0,1}は情報量という観点で本質的に差異がないことに注意すれば、各hによって、特徴量xm,i∈RDmは0または1を取るB個のバイナリ値に写像され、これはすなわち、Bビットのハッシュ値に変換されることを意味する。本実施の形態では、単一特徴量ハッシュ値、及び後述する複数特徴量ハッシュ値が、複数のバイナリ値によって構成される場合を例に説明する。
上記の先行技術文献に挙げた通り、このような単一特徴量ハッシュ関数を求める技術は既に存在しており(例えば、上記特許文献1、上記非特許文献1、上記非特許文献2等)、任意の公知のものを利用してよい。後述するように、本発明の実施の形態の複数特徴量ハッシュ関数生成/ハッシュ値生成処理は、単一特徴量ハッシュ関数が上記単一特徴量ハッシュ関数の性質を満たす限りどのような生成方法であっても利用可能である。
例えば、上記非特許文献1のものを利用する場合には、B×Dのサイズの行列を正規乱数によって生成し、これを単一特徴量ハッシュ関数として利用することができる。
単一特徴量ハッシュ関数生成部32は、以上の処理をM種類全ての特徴量(m=1,・・・,M)に対して実施することで、M個の単一特徴量ハッシュ関数を得る。得られたM個の単一特徴量ハッシュ関数は記憶部34に格納される。
記憶部34には、単一特徴量ハッシュ関数生成部32によって生成されたM個の単一特徴量ハッシュ関数と、後述する単一特徴量ハッシュ値と、複数特徴量ハッシュ関数とが格納される。
単一特徴量ハッシュ値生成部36は、N個のコンテンツの各々に対し、特徴抽出部30によって当該コンテンツから抽出されたM個の特徴量の各々について、当該特徴量と、記憶部34に格納された当該特徴量に対応する単一特徴量ハッシュ関数とに基づいて、当該特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成する。
具体的には、単一特徴量ハッシュ値生成部36は、単一特徴量ハッシュ関数生成部32におけるハッシュ関数生成処理に対応した任意の公知の方法を用いることができる。例えば、単一特徴量ハッシュ関数生成部32において上記非特許文献1のものを利用した場合には、単一特徴量ハッシュ関数としてB×Dのサイズの実数値行列が生成されている。この実数値行列をAと置くと、これを用いて、上記非特許文献1によれば、下記のように単一特徴量ハッシュ値zm,iを生成することができる。
ここで、sign(x)は符号関数であり、x≧0のとき1、x<0のとき−1をとる関数である。μはxm,iの全コンテンツi=1,・・・,Nに対する平均値又は中央値である。単一特徴量ハッシュ関数生成部32において、これ以外の方法によって単一特徴量ハッシュ関数を生成した場合には、それに準じた単一特徴量ハッシュ値生成方法を採ればよい。以上の処理を、M種類全ての特徴量、N個全てのコンテンツに対して施し、単一特徴量ハッシュ値を得る。
単一特徴量ハッシュ値生成部36は、N個のコンテンツ各々に対して生成されたM個の単一特徴量ハッシュ値を記憶部34に格納する。
また、単一特徴量ハッシュ値生成部36は、特徴抽出部30によって抽出された検索クエリとしてのコンテンツのM個の特徴量と、M個の特徴量に対応する記憶部34に格納された単一特徴量ハッシュ関数とに基づいて、M個の単一特徴量ハッシュ値を生成する。
また、単一特徴量ハッシュ値生成部36は、検索クエリとしてのコンテンツに対して生成されたM個の単一特徴量ハッシュ値を記憶部34に格納する。
複数特徴量ハッシュ関数生成部38は、記憶部34に格納された、N個のコンテンツ各々に対して生成されたM個の単一特徴量ハッシュ値に基づいて、M個の単一特徴量ハッシュ値の情報量が最大となるように、複数特徴量ハッシュ関数を生成する。複数特徴量ハッシュ関数は、M個の単一特徴量ハッシュ値各々のビット数の総和よりも小さいビット数のハッシュ値を求めるためのハッシュ関数である。そして、複数特徴量ハッシュ関数生成部38は、生成された複数特徴量ハッシュ関数を記憶部34に格納する。
本発明の実施の形態の目的は、複数特徴量ハッシュ値によって、単一特徴量ハッシュ値よりも高精度な類似度の計測を可能にしたうえ、さらに、時間のかかる類似度計算を省略することである。したがって、ここで生成する複数特徴量ハッシュ関数と、それにより生成される複数特徴量ハッシュ値は、M個の単一特徴量ハッシュ値の持つ情報量を最大化するように設計する。
ここで、情報量最大化について説明する。2値(−1か1)を取るハッシュ値は、(単一特徴量、複数特徴量に関わらず)確率的には二項分布に従うと仮定できる。仮に1が出る確率をpとすると、ハッシュ値のうちbビット目z(b)の(平均)情報量、すなわち情報エントロピーHは
と表すことができる。Hはp=1/2のとき最大値1を取る。ここで、z(b)の分散varは、z(b)の期待値が(2p−1)、z(b)の二乗の期待値が1であることに注意すれば、
となる。明らかに、varはp=1/2のとき最大値1を取り、最大値において情報エントロピーHと等価である。
以上の議論が示す通り、ハッシュ値の持つ情報量を最大化するためには、ハッシュ値の各ビットの分散が大きくなるようにビットを構成すればよい。
すなわち、複数特徴量ハッシュ関数生成部38は、N個のコンテンツの各々に対して生成されたM個の単一特徴量ハッシュ値の分散が最大となるように、複数特徴量ハッシュ関数を生成する。言い換えれば、M組の単一特徴量ハッシュ値の全てのビットによって得られる情報量を最大化しつつ、これらを新たな一組の複数特徴量ハッシュ値に変換するためには、その分散が最大となるような変換(線形混合)を求め、これを複数特徴量ハッシュ関数として構成すればよい。
改めて、m番目の単一特徴量ハッシュ値をzm,i=(zm,i (1),・・・,zm,i (Bm)とする。zm,i (b)は、zm,iのb番目のビットである。さらに、i番目のコンテンツに対して求められているM個の単一特徴量ハッシュ値のビットを並べ、ベクトル表現したものをz=(z1,i ,・・・,zM,i )と表す。zは、各単一特徴量ハッシュ値のm種類のビット長Bの総和B=B+・・・+Bと同じ長さを持つベクトルである。さらに、N個全てのコンテンツにおけるzを並べた行列をZ=[z,・・・,z]と表す。このとき、全てのビットに対する分散共分散行列CはC=ZZと計算できる。
この手続きでは、N個のコンテンツの各々に対して生成されたM個の単一特徴量ハッシュ値を結合したハッシュ値zの分散を最大化するように、単一特徴量ハッシュ値のビットの線形混合をV(V<B)個求めることである。Vは任意の自然数でよく、例えばV=32としておけばよい。
このV個の線形混合をW=[w,・・・,w]と表す。各線形混合wは長さBのベクトルであり、wを用いることで、zから、新たなハッシュ値(複数特徴量ハッシュ値)yの1ビット分y (v)を下記のように求めることができる。
従って、V個の線形混合によって、Vビットの複数特徴量ハッシュ値を求めることができるのである。
上記式(4)が本発明の実施の形態で言うところの複数特徴量ハッシュ関数であり、これを求めることはWを求めることに他ならない。ハッシュ値zの分散を最大にするようにWを求めるには、以下の式(5)の最適化問題を解けばよい。
ここで、Iは単位行列である。この最適化問題の解Wは、Cの固有ベクトルの内、固有値の大きいものから順にV個に相当する。このような固有ベクトルは反復法やべき乗法など、任意の公知の一般的な方法を用いて求めることができる。
以上が、複数特徴量ハッシュ関数を求める手続きである。
複数特徴量ハッシュ値生成部40は、記憶部34に格納されたM個の単一特徴量ハッシュ値と、複数特徴量ハッシュ関数とに基づいて、コンテンツのM個の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成する。複数特徴量ハッシュ関数生成部38の複数特徴量ハッシュ関数生成処理が済んでいれば、記憶部34には、M個の特徴量それぞれに対する単一特徴量ハッシュ関数と、複数特徴量ハッシュ関数が格納されている。
なお、複数特徴量ハッシュ値生成部40によって複数特徴量ハッシュ値を生成する際には、上記式(4)を計算すればよいだけである。したがって、任意のコンテンツを、Vビット以下の複数特徴量ハッシュ値で表現することができる。
この計算に必要となるメモリ量は、Wとzそれぞれを格納するに必要なメモリ量のみであり、Vが8、Bが100の場合、zは100bit、Wは3.2KB程度である。もし仮に、100万コンテンツを全て複数特徴量ハッシュ値に変換したとすると、高々8MB程度にしかならず、現存する一般的なコンピュータにおいても極めて容易に蓄積できるメモリ量に抑えることができる。したがって、この方法によって省メモリなハッシュ値生成が可能である。
また、複数特徴量ハッシュ値生成部40は、記憶部34に格納された、検索クエリとしてのコンテンツの複数の単一特徴量ハッシュ値と、複数特徴量ハッシュ関数とに基づいて、検索クエリとしてのコンテンツの複数特徴量ハッシュ値を生成する。
出力部4は、複数特徴量ハッシュ値生成部40によって生成された複数特徴量ハッシュ値を、コンテンツデータベース5へ出力する。
コンテンツデータベース5には、出力部4によって出力された複数特徴量ハッシュ値と、当該複数特徴量ハッシュ値に対応するコンテンツとの組み合わせが格納される。
<情報処理装置の作用>
次に、本実施の形態に係る情報処理装置1の作用について説明する。情報処理装置1は、複数特徴量ハッシュ関数を生成する複数特徴量ハッシュ関数生成処理と、複数特徴量ハッシュ関数に基づいて、M個の特徴量を単一のハッシュ値にハッシュ化する複数特徴量ハッシュ値生成処理とを実行する。以下、これら2つの処理について説明する。
<複数特徴量ハッシュ関数生成処理ルーチン>
まず、情報処理装置1が、コンテンツデータベース5に格納されたN個のコンテンツを取得すると、情報処理装置1によって、図2に示す複数特徴量ハッシュ関数生成処理ルーチンが実行される。複数特徴量ハッシュ関数生成処理ルーチンは、実際に検索クエリとしてのコンテンツをハッシュ化する前に、少なくとも1度実行される処理である。
まず、ステップS100において、入力部2によって、コンテンツデータベース5から、複数(N個)のコンテンツを取得する。
ステップS102において、特徴抽出部30によって、上記ステップS100で取得されたN個のコンテンツの各々に対し、当該コンテンツから複数の特徴量を抽出する。
ステップS104において、単一特徴量ハッシュ関数生成部32によって、N個のコンテンツの各々に対して上記ステップS102で当該コンテンツから抽出されたM個の特徴量に基づいて、M個の特徴量の各々について、単一特徴量ハッシュ関数を生成する。また、単一特徴量ハッシュ関数生成部32によって、生成されたM個の単一特徴量ハッシュ関数を記憶部34に格納する。
ステップS106において、単一特徴量ハッシュ値生成部36によって、N個のコンテンツの各々に対し、上記ステップS102で当該コンテンツから抽出されたM個の特徴量の各々について、当該特徴量と、上記ステップS104で記憶部34に格納された当該特徴量に対応する単一特徴量ハッシュ関数とに基づいて、単一特徴量ハッシュ値を生成する。また、単一特徴量ハッシュ値生成部36によって、N個のコンテンツ各々に対して生成されたM個の単一特徴量ハッシュ値を記憶部34に格納する。
ステップS108において、複数特徴量ハッシュ関数生成部38によって、上記ステップS106で記憶部34に格納された、N個のコンテンツ各々に対して生成されたM個の単一特徴量ハッシュ値に基づいて、M個の単一特徴量ハッシュ値の情報量が最大となるように、複数特徴量ハッシュ関数を生成する。そして、複数特徴量ハッシュ関数生成部38によって、生成された複数特徴量ハッシュ関数を記憶部34に格納して、複数特徴量ハッシュ関数生成処理ルーチンを終了する。
以上の処理により、コンテンツデータベース5に格納されたN個のコンテンツから複数特徴量ハッシュ関数を生成することができる。
<複数特徴量ハッシュ値生成処理ルーチン>
次に、検索クエリとしてのコンテンツが情報処理装置1に入力されると、情報処理装置1によって、図3に示す複数特徴量ハッシュ値生成処理ルーチンが実行される。複数特徴量ハッシュ値生成処理ルーチンは、記憶部34に格納された複数特徴量ハッシュ関数を用いてコンテンツを表現する複数の特徴量を(一組の)ハッシュ値へとハッシュ化する処理である。
まず、ステップS200において、入力部2によって、検索クエリとしてのコンテンツの入力を受け付ける。
ステップS202において、特徴抽出部30によって、上記ステップS200で受け付けた検索クエリとしてのコンテンツから、複数の特徴量を抽出する。
ステップS204において、単一特徴量ハッシュ値生成部36によって、上記ステップS202で抽出されたM個の特徴量と、M個の特徴量に対応する、上記ステップS104で記憶部34に格納された単一特徴量ハッシュ関数とに基づいて、M個の単一特徴量ハッシュ値を生成する。また、単一特徴量ハッシュ値生成部36によって、生成されたM個の単一特徴量ハッシュ値を記憶部34に格納する。
ステップS206において、複数特徴量ハッシュ値生成部40によって、上記ステップS204で記憶部34に格納された複数の単一特徴量ハッシュ値と、上記ステップS108で記憶部34に格納された複数特徴量ハッシュ関数とに基づいて、検索クエリとしてのコンテンツの複数特徴量ハッシュ値を生成する。また、複数特徴量ハッシュ値生成部40によって、コンテンツデータベース5に格納されたN個のコンテンツ各々について、上記ステップS106で記憶部34に格納されたM個の単一特徴量ハッシュ値と、上記ステップS108で記憶部34に格納された複数特徴量ハッシュ関数とに基づいて、当該コンテンツの複数特徴量ハッシュ値を生成する。
ステップS208において、出力部4によって、上記ステップS206で生成された複数特徴量ハッシュ値と、上記ステップS200で受け付けたコンテンツ、又はコンテンツデータベース5に格納されたN個のコンテンツとの組み合わせをコンテンツデータベース5へ出力し、コンテンツデータベース5に格納して、複数特徴量ハッシュ値生成処理ルーチンを終了する。
以上の処理により、入力したコンテンツに対して、複数特徴量ハッシュ値を求めることができる。また、検索クエリとしてのコンテンツの複数特徴量ハッシュ値と類似する複数特徴量ハッシュ値を有するコンテンツを、N個のコンテンツから発見することができる。
なお、検索クエリとしてのコンテンツの複数特徴量ハッシュ値を生成する処理と、コンテンツデータベース5に格納されたN個のコンテンツ各々についての複数特徴量ハッシュ値を生成する処理とを別々の処理ルーチンとして実行してもよい。
以上説明したように、本発明の実施の形態に係る情報処理装置によれば、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、単一特徴量ハッシュ関数を生成し、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、当該特徴量と、当該特徴量に対応する単一特徴量ハッシュ関数とに基づいて、単一特徴量ハッシュ値を生成し、複数のコンテンツの各々に対して生成された複数の単一特徴量ハッシュ値に基づいて、複数の単一特徴量ハッシュ値の情報量が最大となるように、複数特徴量ハッシュ関数を生成することにより、複数の特徴量を含むコンテンツのハッシュ値を生成するための複数特徴量ハッシュ関数を生成することができる。
また、本発明の実施の形態に係る情報処理装置によれば、複数のコンテンツの各々に対し、当該コンテンツから抽出された複数の特徴量の各々について、当該特徴量と、当該特徴量に対応する単一特徴量ハッシュ関数とに基づいて、単一特徴量ハッシュ値を生成し、複数のコンテンツの各々に対して生成された複数の単一特徴量ハッシュ値と、生成された複数特徴量ハッシュ関数とに基づいて、複数のコンテンツの各々に対し、複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成する。また、検索クエリとしてのコンテンツから抽出された複数の特徴量の各々について、当該特徴量と、当該特徴量に対応する予め生成された単一特徴量ハッシュ関数とに基づいて、検索クエリとしてのコンテンツの特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成し、生成された複数の単一特徴量ハッシュ値と、生成された複数特徴量ハッシュ関数とに基づいて、検索クエリとしてのコンテンツの複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成する。これにより、複数特徴量ハッシュ値を用いて、検索クエリとしてのコンテンツの類似するコンテンツを精度よく発見することができる。
また、以上説明したように、前述した複数特徴量ハッシュ関数と複数特徴量ハッシュ値を用いることにより、複数の異なる特徴量で表現されたコンテンツについて、高速かつ省メモリでありながらも高精度に類似コンテンツを発見することが可能になる。省メモリであることから、例えば、メモリ量の小さいモバイル端末(スマートフォンやタブレット)での利用も可能となる。また、高速であることから、実時間性の要求される利用に対しても対応可能である。これらの効果を活用した具体的な利用シーンとして、街中を歩いているときに気になる場所や商品をモバイル端末で写真撮影し、類似した場所・商品を検索することが可能になる。
また、大量のコンテンツの中から、類似コンテンツを発見するためのハッシュ関数の生成及びハッシュ値の生成を行うことができる。
また、複数の特徴量によって表現されたコンテンツに対し、高速かつ省メモリでありながらも高精度な類似コンテンツ発見を実現するためのハッシュ関数の生成及びハッシュ値の生成を行うことができる。
<第2の実施の形態>
<システム構成>
次に、図4を参照して、本発明の第2の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
第2の実施の形態では、サーバ装置とクライアント装置とで情報処理システムを構成する点が、第1の実施の形態と異なっている。第2の実施の形態では、類似コンテンツ検索を実施する情報処理システムに、本発明を適用させた場合を例に説明する。
本発明の第2の実施の形態に係る情報処理システム200は、図4に示すように、サーバ装置6と、クライアント装置11とを備えている。
図4に示すサーバ装置6は、CPUと、RAMと、各処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図4に示すように、サーバ装置6は、入力部7、演算部8、出力部9を備えている。また、演算部8は、特徴抽出部80、単一特徴量ハッシュ関数生成部82、記憶部84、単一特徴量ハッシュ値生成部86、複数特徴量ハッシュ関数生成部88、複数特徴量ハッシュ値生成部90を備えている。また、コンテンツデータベース10には、第1の実施の形態のコンテンツデータベース5と同様に、複数のコンテンツが登録されている。
また、図4に示すクライアント装置11は、CPUと、RAMと、各処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図4に示すように、クライアント装置11は、入力部12、演算部13、出力部14を備えている。また、演算部13は、特徴抽出部130、単一特徴量ハッシュ値生成部136、記憶部134、複数特徴量ハッシュ値生成部140を備える。
ここで、サーバ装置6とクライアント装置11において、共通する構成要素(入力部、特徴抽出部、単一/複数特徴量ハッシュ関数記憶部、単一/複数特徴量ハッシュ値生成部)はそれぞれ同一の機能を有するように構成し、また、上記図1に記載した各構成要素と同一名称のものは、上記図1の場合と同一の機能を有するものとしてよい。さらに、記憶部の内容は、それぞれ何らかの通信手段で適宜同期されているものとする。
図4に示す装置構成における処理動作は下記の通りである。まずサーバ装置6は、上記説明した処理と同様の処理を行って、適宜、単一/複数特徴量ハッシュ関数を生成して記憶部84に格納し、クライアント装置11の記憶部134と同期させる。さらに、コンテンツデータベース10中のコンテンツに対して、上記説明した処理と同様の処理を行って、複数特徴量ハッシュ値を生成し、コンテンツデータベース10に格納しておく。
一方、クライアント装置11は、入力部12によって、利用者からの検索要求、すなわち、検索クエリとしてのコンテンツの入力を受け付けたら、当該コンテンツに対して複数特徴量ハッシュ値を生成し、出力部14からサーバ装置6の入力部7へと当該複数特徴量ハッシュ値を出力する。
クライアント装置11から複数特徴量ハッシュ値を受けた場合、サーバ装置6は、当該複数特徴量ハッシュ値を用いて、コンテンツデータベース10に対して検索を行い、複数特徴量ハッシュ値に基づいて類似コンテンツを発見し、その結果をクライアント装置11へと出力する。
最後に、クライアント装置11は、サーバ装置6より受け取った検索結果を利用者に出力する。
このように構成することで、サーバ装置6で単一/複数特徴量ハッシュ関数生成処理を実施し、クライアント装置11では複数特徴量ハッシュ値生成処理のみを実施するように構成することができる。
なお、第2の実施の形態に係る情報処理装置1の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
この構成を取るメリットを説明する。一般に、クライアント装置(PC,携帯端末等)は、サーバ装置と比較して演算能力に乏しいため、単一/複数特徴量ハッシュ関数生成のように演算量が比較的多い処理には適さない場合がある。この構成にすれば、単一/複数特徴量ハッシュ関数生成処理は演算能力の高いサーバ装置で適宜実施し、クライアント装置では演算量の少ない単一/複数特徴量ハッシュ値生成処理だけを実施することができる。さらに、通常、ネットワークを介した通信によってデータ容量の多い情報を伝送する場合、伝送時間が掛かるという問題があるが、当該構成によって、伝送するのは情報量の小さい複数特徴量ハッシュ値のみでよくなり、検索に対する即応性を高めることができる。
[実施例]
次に、上記の第1の実施の形態で説明した処理により生成した複数特徴量ハッシュ値によって、類似コンテンツを高速かつ省メモリに検索する実施例について説明する。本実施例では、コンテンツデータベース5に、N個の画像コンテンツが格納されているとする。特徴量として、色ヒストグラム、テクスチャ特徴、形状特徴量の3つを利用するものとし、これらに基づいて、複数特徴量ハッシュ値が生成され、記憶部34に格納されているとする。目的は、新しく検索クエリとしての入力された画像コンテンツqに対して、類似するコンテンツをN個のコンテンツの中から発見することである。
まず、新しく検索クエリとして入力された画像コンテンツqに対して色ヒストグラム、テクスチャ特徴、形状特徴量を抽出し、単一特徴量ハッシュ関数によって単一特徴量ハッシュ値を求める。その後、上記式(4)に基づいて、複数特徴量ハッシュ値yを求める。
最も単純には、図5に示すハッシュテーブルを用いる方法がある。まず、コンテンツデータベース5に登録されている複数特徴量ハッシュ値によって、図5に示すようなハッシュテーブルを構成する。このテーブルでは、ある複数特徴量ハッシュ値と、その複数特徴量ハッシュ値に変換された画像コンテンツ(識別子)を対応づけて格納しており、複数特徴量ハッシュ値が与えられた際に、それと同一の複数特徴量ハッシュ値を取る画像コンテンツを即時発見することができる。例えば、複数特徴量ハッシュ値「0000」を指定した場合、それに対応づけられた画像(画像1、画像5・・・)を直ちに発見できるのである。同様に、このハッシュテーブルを利用すれば、新たに入力されたコンテンツqの複数特徴量ハッシュ値yに対応した画像コンテンツを即座に発見することが可能となる。
この方法によれば、コンテンツデータベース5に登録された画像コンテンツの数Nに寄らず、ほぼ一定の時間で高速に、かつ、元の特徴量をメモリに保持する必要がないため、省メモリに類似コンテンツを発見できるという利点がある。
また、別の方法として、ハミング距離による距離計算を利用することができる。すなわち、新たに入力された画像コンテンツqの複数特徴量ハッシュ値yと、コンテンツデータベース5に格納されたN個の画像コンテンツの複数特徴量ハッシュ値との距離を計算し、距離の小さいものを類似コンテンツとして得るものである。複数特徴量ハッシュ値はバイナリであるため、距離計算は例えばハミング距離で計算することができるが、ハミング距離はXOR(排他的論理和)とpopcnt演算(すなわち、バイナリ列のうち、1となっているビットの数を数える演算)のみで計算できること、および、複数特徴量ハッシュ値は通常少数のバイナリ値で表現できることから、元の特徴量で距離計算する場合に比べ、遥かに高速に演算できる。
ここで、実際の実利用例を示す。本実例では、コンテンツデータベース5に、20種類の被写体(人、犬、猫、車、飛行機、バス等)を写した12195枚の画像を登録した。特徴量としては、色ヒストグラム、テクスチャ特徴、形状特徴量の3つを利用し、それぞれ上記非特許文献1の方法に基づいて32ビットの単一特徴量ハッシュ値を生成した後、これを用いてV=32(ビット)の複数特徴量ハッシュ値を生成する複数特徴量ハッシュ関数を求めた。
図6は、コンテンツデータベース5に登録されている画像とは異なる、500枚の画像をクエリとし、ハミング距離による類似コンテンツ発見を実施した場合の精度を報告したものである。なお、ここでの精度は、距離の最も近い50枚の画像の内、クエリに撮影された被写体と同じ被写体を検索できた枚数の割合である。8ビットおよび32ビットの単一特徴量/複数特徴量ハッシュ値を用いた場合の精度を示している。
上記図6から、本発明の実施の形態による複数特徴量ハッシュ値は、従来の単一特徴量ハッシュ値の中から、情報量の高い成分を効果的に抽出し、一つの複数特徴量ハッシュ値として構成することによって、従来の単一特徴量ハッシュ値のみの場合に比べ、同ビット数でありながら格段に高精度な類似コンテンツ発見ができることがわかる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。本実施形態の主要な特徴を満たす範囲内において、任意の用途と構成を取ることができることは言うまでもない。
例えば、上記実施の形態における単一特徴量ハッシュ関数生成部32、単一特徴量ハッシュ値生成部36、複数特徴量ハッシュ関数生成部38、及び複数特徴量ハッシュ値生成部40は分離可能であり、各々を別々の装置としてもよい。
また、上記第1の実施の形態における、単一特徴量ハッシュ関数生成部32、及び複数特徴量ハッシュ関数生成部38と、複数特徴量ハッシュ値生成部40とを別々の装置として構成してもよい。その場合には、単一特徴量ハッシュ関数生成部32、単一特徴量ハッシュ値生成部36、及び複数特徴量ハッシュ関数生成部38を含んでハッシュ関数生成装置を構成し、単一特徴量ハッシュ値生成部36、及び複数特徴量ハッシュ値生成部40を含んでハッシュ値生成装置を構成する。
また、本実施の形態の情報処理装置及び情報処理システムは、記憶部34(84,134)を備えている場合について説明したが、例えば記憶部34(84,134)が情報処理装置及び情報処理システムの外部装置に設けられ、情報処理装置及び情報処理システムは、外部装置と通信手段を用いて通信することにより、記憶部34(84,134)を参照するようにしてもよい。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
例えば、前述した実施形態における複数特徴量ハッシュ関数生成部、複数特徴量ハッシュ値生成部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。
また、上述の情報処理装置及び情報処理システムは、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
1 情報処理装置
2,7,12 入力部
3,8,13 演算部
4,9,14 出力部
5,10 コンテンツデータベース
6 サーバ装置
11 クライアント装置
30,80,130 特徴抽出部
32,82 単一特徴量ハッシュ関数生成部
34,84,134 記憶部
36,86,136 単一特徴量ハッシュ値生成部
38,88 複数特徴量ハッシュ関数生成部
40,90,140 複数特徴量ハッシュ値生成部
200 情報処理システム

Claims (7)

  1. 単一特徴量ハッシュ関数生成手段、単一特徴量ハッシュ値生成手段、及び複数特徴量ハッシュ関数生成手段を含むハッシュ関数生成装置におけるハッシュ関数生成方法であって、
    前記単一特徴量ハッシュ関数生成手段が、複数のコンテンツの各々に対し、前記コンテンツから抽出された複数の特徴量の各々について、前記特徴量に対応するハッシュ値を求めるためのハッシュ関数である単一特徴量ハッシュ関数を生成するステップと、
    前記単一特徴量ハッシュ値生成手段が、前記複数のコンテンツの各々に対し、前記コンテンツから抽出された前記複数の特徴量の各々について、前記特徴量と、前記単一特徴量ハッシュ関数生成手段によって生成された前記特徴量に対応する前記単一特徴量ハッシュ関数とに基づいて、前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成するステップと、
    前記複数特徴量ハッシュ関数生成手段が、前記単一特徴量ハッシュ値生成手段によって前記複数のコンテンツの各々に対して生成された複数の前記単一特徴量ハッシュ値に基づいて、前記複数の単一特徴量ハッシュ値の情報量が最大となるように、前記複数の単一特徴量ハッシュ値各々のビット数の総和よりも小さいビット数のハッシュ値を求めるためのハッシュ関数である複数特徴量ハッシュ関数を生成するステップと、
    を含むハッシュ関数生成方法。
  2. 前記複数特徴量ハッシュ関数生成手段が前記複数特徴量ハッシュ関数を生成するステップは、前記単一特徴量ハッシュ値生成手段によって前記複数のコンテンツの各々に対して生成された複数の前記単一特徴量ハッシュ値に基づいて、前記複数の単一特徴量ハッシュ値の分散が最大となるように、前記複数特徴量ハッシュ関数を生成する
    請求項1記載のハッシュ関数生成方法。
  3. 前記ハッシュ値をバイナリ値とした請求項1又は請求項2記載のハッシュ関数生成方法。
  4. 単一特徴量ハッシュ値生成手段、及び複数特徴量ハッシュ値生成手段を含むハッシュ値生成装置におけるハッシュ値生成方法であって、
    前記単一特徴量ハッシュ値生成手段が、コンテンツから抽出された複数の特徴量の各々について、前記特徴量と、前記コンテンツの前記特徴量に対応する予め生成された前記単一特徴量ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成するステップと、
    前記複数特徴量ハッシュ値生成手段が、前記単一特徴量ハッシュ値生成手段によって生成された複数の前記単一特徴量ハッシュ値と、請求項1〜請求項3の何れか1項記載のハッシュ関数生成方法によって生成された前記複数特徴量ハッシュ関数とに基づいて、前記コンテンツの前記複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成するステップと、
    を含むハッシュ値生成方法。
  5. 複数のコンテンツの各々に対し、前記コンテンツから抽出された複数の特徴量の各々について、前記特徴量に対応するハッシュ値を求めるためのハッシュ関数である単一特徴量ハッシュ関数を生成する単一特徴量ハッシュ関数生成手段と、
    前記複数のコンテンツの各々に対し、前記コンテンツから抽出された前記複数の特徴量の各々について、前記特徴量と、前記単一特徴量ハッシュ関数生成手段によって生成された前記特徴量に対応する前記単一特徴量ハッシュ関数とに基づいて、前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成する単一特徴量ハッシュ値生成手段と、
    前記単一特徴量ハッシュ値生成手段によって前記複数のコンテンツの各々に対して生成された複数の前記単一特徴量ハッシュ値に基づいて、前記複数の単一特徴量ハッシュ値の情報量が最大となるように、前記複数の単一特徴量ハッシュ値各々のビット数の総和よりも小さいビット数のハッシュ値を求めるためのハッシュ関数である複数特徴量ハッシュ関数を生成する複数特徴量ハッシュ関数生成手段と、
    を含むハッシュ関数生成装置。
  6. コンテンツから抽出された複数の特徴量の各々について、前記特徴量と、前記コンテンツの前記特徴量に対応する予め生成された前記単一特徴量ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値である単一特徴量ハッシュ値を生成する単一特徴量ハッシュ値生成手段と、
    前記単一特徴量ハッシュ値生成手段によって生成された複数の前記単一特徴量ハッシュ値と、請求項5記載のハッシュ関数生成装置によって生成された前記複数特徴量ハッシュ関数とに基づいて、前記コンテンツの前記複数の特徴量に対応するハッシュ値である複数特徴量ハッシュ値を生成する複数特徴量ハッシュ値生成手段と、
    を含むハッシュ値生成装置。
  7. 請求項1〜請求項3の何れか1項記載のハッシュ関数生成方法、あるいは請求項4記載のハッシュ値生成方法の各ステップをコンピュータに実行させるためのプログラム。
JP2014079552A 2014-04-08 2014-04-08 ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム Pending JP2015201041A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014079552A JP2015201041A (ja) 2014-04-08 2014-04-08 ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014079552A JP2015201041A (ja) 2014-04-08 2014-04-08 ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム

Publications (1)

Publication Number Publication Date
JP2015201041A true JP2015201041A (ja) 2015-11-12

Family

ID=54552248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014079552A Pending JP2015201041A (ja) 2014-04-08 2014-04-08 ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP2015201041A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023026420A1 (ja) * 2021-08-26 2023-03-02 三菱電機株式会社 画像検索装置及び画像検索方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023026420A1 (ja) * 2021-08-26 2023-03-02 三菱電機株式会社 画像検索装置及び画像検索方法
JPWO2023026420A1 (ja) * 2021-08-26 2023-03-02
JP7341381B2 (ja) 2021-08-26 2023-09-08 三菱電機株式会社 画像検索装置及び画像検索方法
GB2624562A (en) * 2021-08-26 2024-05-22 Mitsubishi Electric Corp Image search device and image search method

Similar Documents

Publication Publication Date Title
Duan et al. Overview of the MPEG-CDVS standard
Zhou et al. Towards codebook-free: Scalable cascaded hashing for mobile image search
Liu et al. Contextual hashing for large-scale image search
US9053386B2 (en) Method and apparatus of identifying similar images
Yang et al. Scalable mobile image retrieval by exploring contextual saliency
Zhou et al. Scalar quantization for large scale image search
JP6104209B2 (ja) ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム
Liu et al. Instant mobile video search with layered audio-video indexing and progressive transmission
JP6397378B2 (ja) 特徴量生成方法、特徴量生成装置、及び特徴量生成プログラム
JP5592337B2 (ja) コンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラム
JP5596648B2 (ja) ハッシュ関数生成方法、ハッシュ関数生成装置、ハッシュ関数生成プログラム
Wang et al. Beauty product image retrieval based on multi-feature fusion and feature aggregation
US11615132B2 (en) Feature amount generation method, feature amount generation device, and feature amount generation program
JP6368677B2 (ja) 写像学習方法、情報圧縮方法、装置、及びプログラム
JP6373292B2 (ja) 特徴量生成装置、方法、及びプログラム
Guan et al. On-device mobile visual location recognition by using panoramic images and compressed sensing based visual descriptors
JP2016066012A (ja) ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム
JP6134246B2 (ja) ハッシュ関数生成方法、ハッシュ値生成方法、ハッシュ関数生成装置、ハッシュ値生成装置、ハッシュ関数生成プログラム及びハッシュ値生成プログラム
JP6152032B2 (ja) ハッシュ関数生成方法、ハッシュ値生成方法、ハッシュ関数生成装置、ハッシュ値生成装置、ハッシュ関数生成プログラム及びハッシュ値生成プログラム
JP6461773B2 (ja) ベクトル量子化器生成方法、ベクトル量子化方法、装置、及びプログラム
Qi et al. A low transmission overhead framework of mobile visual search based on vocabulary decomposition
JP6364387B2 (ja) 特徴量生成装置、方法、及びプログラム
Liu et al. Video copy detection by conducting fast searching of inverted files
JP2015201041A (ja) ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラム
JP2015079333A (ja) ハッシュ関数生成方法、ハッシュ値生成方法、ハッシュ関数生成装置、ハッシュ値生成装置、ハッシュ関数生成プログラム及びハッシュ値生成プログラム