特許第6047120号(P6047120)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧
特許6047120ビジュアルキーワード探索装置及びビジュアルキーワード探索方法
<>
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000002
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000003
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000004
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000005
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000006
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000007
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000008
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000009
  • 特許6047120-ビジュアルキーワード探索装置及びビジュアルキーワード探索方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6047120
(24)【登録日】2016年11月25日
(45)【発行日】2016年12月21日
(54)【発明の名称】ビジュアルキーワード探索装置及びビジュアルキーワード探索方法
(51)【国際特許分類】
   G06F 17/30 20060101AFI20161212BHJP
【FI】
   G06F17/30 414A
   G06F17/30 350C
   G06F17/30 170B
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2014-126886(P2014-126886)
(22)【出願日】2014年6月20日
(65)【公開番号】特開2016-6561(P2016-6561A)
(43)【公開日】2016年1月14日
【審査請求日】2015年9月17日
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100091904
【弁理士】
【氏名又は名称】成瀬 重雄
(72)【発明者】
【氏名】岩崎 雅二郎
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開2001−052024(JP,A)
【文献】 特開2006−190191(JP,A)
【文献】 特開2000−137732(JP,A)
【文献】 特開2014−048989(JP,A)
【文献】 武本 浩二,効率的な距離計算戦略による高次元最近傍探索の高速化,情報処理学会研究報告,日本,社団法人情報処理学会,2006年 3月17日,Vol.2006 No.25,49−56ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
BoF表現生成のためのビジュアルキーワードを、木構造インデックスを用いて探索するための装置であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離diが関連付けられており、
前記装置は、クエリ受付部と、中心語彙探索部と、差分データソート部と、比較部とを備えており、
前記クエリ受付部は、前記近傍語彙を探索するためのクエリデータを受け付ける構成となっており、
前記中心語彙探索部は、前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索する構成となっており、
前記差分データソート部は、前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離qと、前記中心語彙と前記複数の近傍語彙との間の前記距離diとの差分データSiを算出し、かつ、算出された前記差分データSiの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成する構成となっており、
前記比較部は、
(a)前記ソートリストにおいて特定のi番目の近傍語彙を決定する処理と、
(b)当該i番目の近傍語彙を最近傍語彙候補とする処理と、
(c)前記i番目の近傍語彙と前記クエリデータとの距離tを算出する処理と、
(d)t<m(ただしmは既定の距離)であれば、m=tと設定する処理と、
(e)i+1番目の近傍語彙があり、かつ、Si+1<mである場合には、当該近傍語彙を前記i番目の近傍語彙であると仮定して、前記(b)からそれ以降の処理を繰り返す構成となっている
ビジュアルキーワードの探索装置。
【請求項2】
前記比較部は、前記処理(d)の後に、
(f)i+1番目の近傍語彙がない、又は、Si+1<mでない場合には、前記処理(b)で特定された最近傍語彙候補を最近傍語彙として特定する構成となっている
請求項1に記載のビジュアルキーワードの探索装置。
【請求項3】
前記比較部における前記処理(a)は、最初の処理においては、前記i番目の近傍語彙として、前記ソートリスト中における1番目のものを用いる構成となっている
請求項1又は2に記載のビジュアルキーワードの探索装置。
【請求項4】
前記リーフノードに割り当てられた中心語彙は複数個となっており、
前記複数の中心語彙には、それぞれ、前記語彙リストが関連付けられており、
さらに、前記複数の中心語彙には、各中心語彙と、それに関連付けられた前記語彙リスト中の近傍語彙との距離diが関連付けられている
請求項1〜3のいずれか1項に記載のビジュアルキーワードの探索装置。
【請求項5】
前記比較部における前記処理(b)は、最初の処理においては、前記距離mとして、実質的な無限大値が設定されている
請求項1〜4のいずれか1項に記載のビジュアルキーワードの探索装置。
【請求項6】
BoF表現生成のためのビジュアルキーワードを、木構造インデックスを用いて、クエリ受付部と、中心語彙探索部と、差分データソート部と、比較部とを備える装置探索する方法であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離diが関連付けられており、
前記方法は、
前記クエリ受付部が前記近傍語彙を探索するためのクエリデータを受け付けるステップと、
前記中心語彙探索部が前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索するステップと、
前記差分データソート部が、前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離qと、前記中心語彙と前記複数の近傍語彙との間の前記距離diとの差分データSiを算出し、かつ、算出された前記差分データSiの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成するステップと、
比較ステップとを備えており、
前記比較ステップは、前記比較部が
(a)前記ソートリストにおいて特定のi番目の近傍語彙を決定するステップと、
(b)当該i番目の近傍語彙を最近傍語彙候補とするステップと、
(c)前記i番目の近傍語彙と前記クエリデータとの距離tを算出するステップと、
(d)t<m(ただしmは既定の距離)であれば、m=tと設定するステップと、
(e)i+1番目の近傍語彙があり、かつ、Si+1<mである場合には、当該近傍語彙を前記i番目の近傍語彙であると仮定して、前記(b)からそれ以降のステップを繰り返すステップとを備えている
ビジュアルキーワードの探索方法。
【請求項7】
請求項6に記載の各ステップをコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、BoF表現生成のために用いられるビジュアルキーワードを探索するための装置及び方法に関するものである。
【背景技術】
【0002】
下記特許文献1に示されるように、局所特徴量を用いた画像認識手法が知られている。この手法では、画像を複数の部分に分割し、各部分に対応して局所特徴量を抽出し、この局所特徴量を用いて類似画像検索を行うことができる。これらの局所特徴量は、画像の特徴を精度良く表すために、通常、多次元のベクトルデータとされている。
【0003】
ところで、下記特許文献1にも示されているように、局所特徴量を用いた類似画像検索では、計算量が膨大となる傾向がある。
【0004】
そこで、局所特徴量を高速に検索するために、ビジュアルキーワードあるいはBoF(Bag of Features)という手法が提案されている。この手法では、複数の学習用の局所特徴量を予めクラスタリングすることにより、クラスタを代表する局所特徴量(つまりビジュアルキーワード)を算出する。さらに、各クラスタにIDを付す。すると、ある画像における特定の局所特徴量を、それに近いビジュアルキーワードが属する特定のクラスタのIDに紐付けることができる。
【0005】
したがって、ある画像に対応する複数の局所特徴量の集合を、クラスタIDのヒストグラム(集合ということもできる)により置き換えることができる。このクラスタIDのヒストグラムを、BoF表現あるいは単にBoFと呼ぶ。一枚の画像に対応して、一つのBoF表現を得ることができる。生成されたBoF表現は、一般に転置ファイルによって検索できる。なお、BoF表現を「特徴ベクトル」と称することがあるが、本明細書では、画像の特徴量を示す特徴ベクトルとの混同を避けるため、BoF表現という用語を用いる。
【0006】
このように、BoF表現を用いることにより、局所特徴量を量子化して、データ量を減らすことができる。しかも、検索には転置ファイルを利用できるので、局所特徴量自体を用いるよりも高速な類似画像検索(つまり画像認識)が可能となる。
【0007】
ところで、ある画像に対応するBoF表現の生成(つまり学習段階)においては、当該画像から抽出された局所特徴量(つまりクエリ特徴量)に近いビジュアルキーワードを、ビジュアルキーワード群から探索する必要がある。この探索においては、クエリ特徴量と各ビジュアルキーワードとの距離を算出し、この距離に基づいて、最近傍のビジュアルキーワードを特定する手法が知られている。
【0008】
ここで、BoF表現による検索の精度を向上させるためには、ビジュアルキーワードの数を増やすことが一般的には好ましい。一方、探索対象となるビジュアルキーワードの数が増えると、ビジュアルキーワードを探索するための時間が増加するという問題を生じる。
【0009】
この問題に対応するため、本出願人は、特願2012−284553号の技術を提案した。この技術では、ビジュアルキーワードを探索するための木構造インデックスを予め生成し、各リーフノードにビジュアルキーワードを割り当てる。そして、この木構造インデックスを辿ってビジュアルキーワードを特定することにより、距離計算の回数を減らし、探索時間を短縮することができる。
【0010】
ただし、ビジュアルキーワード(あるいは局所特徴量)を構成するベクトルの次元数が増えると、木構造インデックスを辿って得られたビジュアルキーワードが、クエリ特徴量の最近傍とは必ずしも限らないことがある。
【0011】
そこで、本発明者は、木構造インデックスの各リーフノードに、近傍語彙リストを関連付ける技術も提案している。この技術によれば、リーフノードが探索された後、近傍語彙リストに属する各語彙とクエリ特徴量との距離をそれぞれ計算し、最近傍語彙を特定できるという利点がある。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2011−128773号公報(0003〜0005段落)
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、各リーフノードに関連付けられる近傍語彙リスト中の各語彙とクエリ特徴量との距離計算においても、一般的には相当の時間を要する傾向がある。
【0014】
本発明は、前記した状況に鑑みてなされたものである。本発明の主な目的は、語彙リスト中の近傍語彙とクエリ特徴量との距離計算の回数を減らすことにより、ビジュアルキーワードの探索時間を短縮化することが可能な手法を提供することである。
【課題を解決するための手段】
【0015】
本発明は、以下のいずれかの項目に記載の構成とされている。
【0016】
(項目1)
BoF表現生成のためのビジュアルキーワードを、木構造インデックスを用いて探索するための装置であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離diが関連付けられており、
前記装置は、クエリ受付部と、中心語彙探索部と、差分データソート部と、比較部とを備えており、
前記クエリ受付部は、前記近傍語彙を探索するためのクエリデータを受け付ける構成となっており、
前記中心語彙探索部は、前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索する構成となっており、
前記差分データソート部は、前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離qと、前記中心語彙と前記複数の近傍語彙との間の前記距離diとの差分データSiを算出し、かつ、算出された前記差分データSiの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成する構成となっており、
前記比較部は、
(a)前記ソートリストにおいて特定のi番目の近傍語彙を決定する処理と、
(b)当該i番目の近傍語彙を最近傍語彙候補とする処理と、
(c)前記i番目の近傍語彙と前記クエリデータとの距離tを算出する処理と、
(d)t<m(ただしmは既定の距離)であれば、m=tと設定する処理と、
(e)i+1番目の近傍語彙があり、かつ、Si+1<mである場合には、当該近傍語彙を前記i番目の近傍語彙であると仮定して、前記(b)からそれ以降の処理を繰り返す構成となっている
ビジュアルキーワードの探索装置。
【0017】
(項目2)
前記比較部は、前記処理(d)の後に、
(f)i+1番目の近傍語彙がない、又は、Si+1<mでない場合には、前記処理(b)で特定された最近傍語彙候補を最近傍語彙として特定する構成となっている
項目1に記載のビジュアルキーワードの探索装置。
【0018】
(項目3)
前記比較部における前記処理(a)は、最初の処理においては、前記i番目の近傍語彙として、前記ソートリスト中における1番目のものを用いる構成となっている
項目1又は2に記載のビジュアルキーワードの探索装置。
【0019】
(項目4)
前記リーフノードに割り当てられた中心語彙は複数個となっており、
前記複数の中心語彙には、それぞれ、前記語彙リストが関連付けられており、
さらに、前記複数の中心語彙には、各中心語彙と、それに関連付けられた前記語彙リスト中の近傍語彙との距離diが関連付けられている
項目1〜3のいずれか1項に記載のビジュアルキーワードの探索装置。
【0020】
(項目5)
前記比較部における前記処理(b)は、最初の処理においては、前記距離mとして、実質的な無限大値が設定されている
項目1〜4のいずれか1項に記載のビジュアルキーワードの探索装置。
【0021】
(項目6)
BoF表現生成のためのビジュアルキーワードを、木構造インデックスを用いて装置により探索するための方法であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離diが関連付けられており、
前記方法は、
前記近傍語彙を探索するためのクエリデータを受け付けるステップと、
前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索するステップと、
前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離qと、前記中心語彙と前記複数の近傍語彙との間の前記距離diとの差分データSiを算出し、かつ、算出された前記差分データSiの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成するステップと、
比較ステップとを備えており、
前記比較ステップは、
(a)前記ソートリストにおいて特定のi番目の近傍語彙を決定するステップと、
(b)当該i番目の近傍語彙を最近傍語彙候補とするステップと、
(c)前記i番目の近傍語彙と前記クエリデータとの距離tを算出するステップと、
(d)t<m(ただしmは既定の距離)であれば、m=tと設定するステップと、
(e)i+1番目の近傍語彙があり、かつ、Si+1<mである場合には、当該近傍語彙を前記i番目の近傍語彙であると仮定して、前記(b)からそれ以降のステップを繰り返すステップとを備えている
ビジュアルキーワードの探索方法。
【0022】
(項目7)
項目6に記載の各ステップをコンピュータに実行させるためのコンピュータプログラム。
【0023】
このコンピュータプログラムは、適宜な記録媒体(例えばCD−ROMやDVDディスクのような光学的な記録媒体、ハードディスクやフレキシブルディスクのような磁気的記録媒体、あるいはMOディスクのような光磁気記録媒体)に格納することができる。このコンピュータプログラムは、インターネットなどの通信回線を介して伝送されることができる。
【発明の効果】
【0024】
本発明によれば、木構造インデックスのリーフノードに関連づけられた語彙リスト中の近傍語彙とクエリ特徴量(クエリデータ)との距離計算の回数を減らすことが可能になる。このため、本発明によれば、ビジュアルキーワードの探索時間を短縮化することが可能となる。
【図面の簡単な説明】
【0025】
図1】本発明の一実施形態に係るビジュアルキーワード探索装置を含むBoF表現生成システムの概略的なブロック図である。
図2】本発明の一実施形態に係るビジュアルキーワード探索装置の概略的なブロック図である。
図3図1のシステムを用いたBoF表現生成方法の全体的な手順を説明するためのフローチャートである。
図4】ビジュアルキーワード生成のための学習画像の一例を示す説明図である。
図5】ビジュアルキーワードの生成手順を説明するための説明図であって、図(a)は局所特徴量空間における局所特徴量の概念図、図(b)は局所特徴量のクラスタリングの概念図である。
図6】木構造インデックスと近傍語彙リストを説明するための概念的な説明図である。
図7】近傍語彙リストの概念図である。
図8】本実施形態におけるビジュアルキーワードの探索手法を説明するためのフローチャートである。
図9図8に示す手法を説明するための説明図である。
【発明を実施するための形態】
【0026】
以下、本発明の一実施形態に係るビジュアルキーワード探索装置を、添付の図面を参照しながら説明する。
【0027】
まず、本例のビジュアルキーワード探索装置を含むBoF表現生成システムの概略を、図1を参照しながら説明する。なお、以下の説明においては、ビジュアルキーワードを単に語彙と称することがある。
【0028】
(BoF表現生成システム構成)
このシステムは、語彙受付部1と、インデックス生成部2と、語彙リスト生成部3と、語彙探索部4と、出力部5とを主要な構成として備えている。
【0029】
(語彙受付部)
語彙受付部1は、既に生成されている多数のビジュアルキーワードを受け付ける機能要素である。通常、ビジュアルキーワードは、何らかのDB中に予め格納されている。ビジュアルキーワードは、例えばK-means法などのクラスタリング手法を用いて既存語彙をクラスタリングすることにより生成することができる。ビジュアルキーワードの生成手順としては既知のものを使用可能なので、これについての詳しい説明は省略する。
【0030】
(インデックス生成部)
インデックス生成部2は、適切なビジュアルキーワードを検索するための木構造インデックスを生成するための機能要素である。本実施形態では、木構造インデックスのリーフノードに割り当てられたビジュアルキーワードを「中心語彙」と称する。木構造インデックスを生成する手法としては、例えば、R-treeなど、既存の手法を利用可能なので、詳しい説明は省略する。
【0031】
(語彙リスト生成部)
語彙リスト生成部3は、各リーフノードに割り当てられた中心語彙に近い複数の語彙(以下、「近傍語彙」と称することがある)を備えたリスト(以下、「近傍語彙リスト」又は単に「語彙リスト」と称することがある)を生成する機能要素である。生成されたリストは、木構造において対応するリーフノードに関連付けて記録される。さらに、リーフノードには、当該リーフノードに割り当てられた中心語彙と語彙リスト中の複数の近傍語彙との間のそれぞれの距離diが関連付けられている。例えば、1番目の近傍語彙と中心語彙との距離をd、2番目の近傍語彙と中心語彙との距離をdのようにして予め関連付けておくことができる。この関連付けも適宜な記録媒体に記録可能である。語彙リストの生成手法については後述する。
【0032】
(語彙探索部:ビジュアルキーワード探索装置)
語彙探索部4は、本発明のビジュアルキーワード探索装置の一例に対応する機能要素である。以下、語彙探索部4の構成を、図2をさらに参照しながら説明する。
【0033】
語彙探索部4は、クエリ受付部41と、中心語彙探索部42と、差分データソート部43と、比較部44とを備えている。
【0034】
(クエリ受付部)
クエリ受付部41は、近傍語彙を探索するためのクエリデータを受け付ける機能要素である。以下において、クエリデータは、クエリ又はクエリ特徴量と称されることがある。クエリデータは、BoF表現生成の対象となる画像から抽出された局所特徴量である。つまり、このクエリデータは、実際の画像検索ではなく、その予備的手順であるBoF表現生成のために使用されるデータである。局所特徴量の抽出方法としては、例えばSIFT(Scale-Invariant Feature Transform)などの既存手法を利用可能なので、この点についての詳しい説明は省略する。
【0035】
(中心語彙探索部)
中心語彙探索部42は、クエリデータに基づいて、木構造インデックスを用いて、リーフノードを探索する機能要素である。この探索の手順についても後述する。
【0036】
(差分データソート部)
差分データソート部43は、
・まず、「クエリデータ」と「探索されたリーフノードに対応する中心語彙」との間の距離qを求め、
・ついで、この距離qと、既に得られている「中心語彙と複数の近傍語彙との間の距離di」との差分データSiを算出し
・さらに、算出された差分データSiの絶対値が小さい順で複数の近傍語彙がソートされたソートリストを生成する
という処理を行う機能要素である。したがって、Si=|di−q|と表すことができる。ここで、「絶対値が小さい順」とは、結果的にその順でソートされていることを意味しており、実際に絶対値を算出することは必須ではない。例えば、差分の2乗値、つまり(di−q)を用いることで、同様のソート結果を得ることができる。差分データソート部43の詳しい動作も後述する。
【0037】
(比較部)
比較部44は、
(a)生成されているソートリストにおいて特定のi番目(例えばSiが小さい順に1番目)の近傍語彙を決定する処理と、
(b)当該i番目の近傍語彙を最近傍語彙候補とする処理と、
(c)i番目の近傍語彙とクエリデータとの距離tを算出する処理と、
(d)t<m(ただしmは既定の距離)であれば、m=tと設定する処理と、
(e)i+1番目の近傍語彙があり、かつ、Si+1<mである場合には、当該近傍語彙をi番目の近傍語彙であると仮定して、(b)からそれ以降の処理を繰り返す処理と
を行う構成となっている。
【0038】
さらに、本実施形態の比較部44は、処理(d)の後に、
(f)i+1番目の近傍語彙がない、又は、Si+1<mでない場合(つまりSi+1≧m)には、処理(b)で特定された最近傍語彙候補を最近傍語彙として特定する処理
を行う構成となっている。
【0039】
ここで、Si+1=mのときは、Si+1<mの場合と同じ処理を行うこともできるが、処理回数を減らすためには、Si+1>mの場合と同じ処理を行うことが好ましい。
【0040】
ここで、処理(b)は、実際に近傍語彙に最近傍語彙候補のフラグ等を付する手段でも実現できるが、単に当該i番目の近傍語彙を何らかの手法で特定しておくだけでも実現可能である。すなわち、処理(b)は、以降の処理が繰り返されずに終了する場合に、それまでに特定された近傍語彙(つまり最近傍語彙候補)が結果的に最近傍として特定されるという趣旨である。処理(b)において、近傍語彙に対する名称付与などの特段の処理を行う必要はない。
【0041】
また、処理(b)は、最初の処理においては、距離mとして、実質的な無限大値を設定しておくことが好ましい。ここで、「実質的な無限大値」とは、予想される差分データSiの最大値よりも大きい値である。ここでmを無限大値にするのは、初回の動作においてtをmに設定するためなので、その趣旨に沿う場合には、どのような値を用いてもよい。
【0042】
比較部44の詳しい動作についても後述する。
【0043】
(出力部)
図1の出力部5は、語彙探索部4により特定された最近傍語彙を出力するための機能要素である。ここで出力とは、特定された最近傍語彙を後続の処理において利用可能にすることをいい、例えば、BoF表現生成のための処理モジュールに、最近傍語彙を特定する情報(ID情報など)を送ることである。以降のBoF表現生成の手法は、既存のものと同様でよいので、詳しい説明は省略する。
【0044】
(BoF表現生成システム全体の手順)
以下、前記したBoF表現生成システムの動作手順の一例を、図3をさらに参照しながら説明する。
【0045】
図3のステップSA−1)
まず、語彙受付部1は、BoF表現生成のためのビジュアルキーワードを、適宜なデータベース(図示せず)から受け取る。ここで、ビジュアルキーワードの生成例を、図4及び図5をさらに参照して概略的に説明する。
【0046】
ビジュアルキーワード生成用の学習画像(この例では何らかの商品画像)の例を図4に示す。この画像は、例えば、検索対象となるCDジャケットの写真である。学習画像としては、通常、多数のものが用意される。
【0047】
これらの学習画像から、適宜な手法(例えばSIFT)により、局所特徴量を抽出する。通常、一枚の画像から多数の局所特徴量が抽出される。抽出された局所特徴量を特徴量空間に配置した状態を概念的に図5(a)に示す。
【0048】
ついで、これらの局所特徴量を、適宜な手法(例えばK-Means)によりクラスタリングし、クラスタ中心(図示せず)を決める。クラスタ中心にある、またはクラスタ中心に最も近い局所特徴量を、当該クラスタを代表するビジュアルキーワードとすることができる。算出されたクラスタ中心(重心)をビジュアルキーワードとすることもできる。各クラスタには、BoF表現を生成するためのクラスタIDを紐づけることができる。
【0049】
図3のステップSA−2)
ついで、インデックス生成部2は、特定されたビジュアルキーワードを探索するための木構造インデックスを、適宜な手法により生成する。木構造としては、構成を簡略にするために、二分木構造とすることが好ましいが、これに制約されるものではない。生成された木構造インデックス8を概念的に図6に示す。
【0050】
本例では、木構造インデックス8は、6個のリーフノード81〜86を有している。もちろん、リーフノードの個数はこれに制約されず、通常はかなりの多数となる。木構造インデックス8の各リーフノード81〜86には、中心語彙(つまりビジュアルキーワード)が割り当てられている。
【0051】
また、本例のリーフノード81〜86には、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リスト91〜96がそれぞれ関連付けられている。なお、この明細書において語彙リスト全体を参照するときは符号9を用いる。語彙リスト9の一例を図7に示す。この語彙リスト9は、例えば次のように生成される。すなわち、一つのビジュアルキーワードが決定された後、当該ビジュアルキーワードと、他の全てのビジュアルキーワードとの距離を算出する。そして、近い順に規定個数(図7の例では11個)のビジュアルキーワードを近傍語彙リストに含めることができる。あるいは、規定範囲内の全てのビジュアルキーワードを近傍語彙リストに含めることもできる。各語彙にはIDが付されており、これは、クラスタIDに対応している。なお、図7の例では、中心語彙に#10を割り当てたので、その番号が抜けた状態になっている。また、図7の例ではIDが連番であるかのように記載されているが、これはあくまで例示であり、実際は適宜のIDが割り当てられている。
【0052】
さらに、リーフノード81〜86には、当該リーフノードに割り当てられた中心語彙と語彙リスト9中の複数の近傍語彙との間のそれぞれの距離diが関連付けられている。図7の例では、#2の語彙IDと中心語彙(この例では#10)との距離diが、#2の右側に示されている。#1以降の語彙についても同様である。もちろん、これらの情報の関連付け手法としては、必ずしもテーブル構造には制約されず、コンピュータで利用可能な適宜の手法を使用できる。
【0053】
以上の手順は、いわば、BoF表現生成のための学習用特徴量の事前処理方法であり、実際のBoF表現生成前に準備しておくことができる。また、事前に生成された木構造インデックス及び近傍語彙リストを適宜の場所に格納しておき、下記のBoF表現生成時に利用することができる。要するに、木構造インデックスの生成とBoF表現の生成は、まったく別の手順として、別のサーバあるいは端末において実行できる。
【0054】
図3のステップSA−4)
以下においては、特定の画像についてのBoF表現を生成するための手順を説明する。まず、ユーザは、適宜な手法により、BoF表現生成の対象となる画像から抽出された局所特徴量(つまりクエリデータ又はクエリ特徴量)を特定する。この特定は何らかのアルゴリズムにより自動的に行うこともできる。
【0055】
ついで、クエリ受付部41は、このクエリデータ(つまり、近傍語彙を探索するためのクエリデータ)の入力を受け付ける。ついで、中心語彙探索部42は、受け付けたクエリデータに基づいて、木構造インデックスを用いて、リーフノードを探索する。これにより、リーフノードに対応する中心語彙(ビジュアルキーワード)を特定することができる。本実施形態では、木構造インデックスを用いているので、中心語彙を特定するための計算コストを低く抑えることができる。
【0056】
図3のステップSA−5)
ついで、中心語彙に関連付けられた近傍語彙リストから、図8に示す手順で、最近傍語彙を探索する。
【0057】
図8のステップSB−1)
中心語彙が特定されると、差分データソート部43は、クエリデータと、探索されたリーフノードに対応する中心語彙との間の距離qを算出する。
【0058】
図8のステップSB−2)
ついで差分データソート部43は、距離qと、既に近傍語彙リストに関連付けられていた距離di(中心語彙と各近傍語彙との間の距離)との差分データSiを算出する。さらに、差分データソート部43は、算出された差分データSiの絶対値が小さい順で複数の近傍語彙がソートされたソートリスト(図7は結果的にそのようにソートされた状態を示す)を生成する。例えば、差分データSiは、Si=|di−q|により算出することができる。
【0059】
図8のステップSB−3)
ついで、比較部44は、最少距離mに実質的な無限大値をセットする。ただし、比較部44は、あらかじめ何らかの値に設定されたmを利用してもよく、この場合も、この明細書では、比較部44がセットしたと観念する。
【0060】
図8のステップSB−4)
ついで、比較部44は、ソートリストにおいて特定のi番目の近傍語彙piを特定する。ソートリストは差分Siの小さい順で並んでいるので、通常は、1番目の近傍語彙が選択される。これにより、本実施形態では、当該i番目の近傍語彙を最近傍語彙候補とすることができる。
【0061】
図8のステップSB−5)
ついで、比較部44は、i番目の近傍語彙とクエリデータとの距離tを算出する。図9に、距離tを概念的に示した例を示す。この例では、クエリデータ100と中心語彙#10との距離に符号qを付している。また、この例では、近傍語彙#2がソートリストの1番目(したがってこれに対応するSiはSとなる)なので、それとクエリデータ100との距離tが算出される。
【0062】
図8のステップSB−6)
ついで、比較部44は、t<m(ただしmは既定の距離)であれば、m=tと設定する。初回の動作では、mは無限大値なので、一般的には、m=tに設定される。具体的には、図9の例では、初回は、m=tとなる。
【0063】
図8のステップSB−7)
ついで、比較部44は、Si+1<mであるかを判定する。図7の例では、もしSiが#2のIDに対応している場合、Si+1は、#1のIDに対応する差分データ(つまり|di+1−q|)である。この判断がYesであれば、ステップSB−8に進み、NoであればステップSB−10に進む。
【0064】
この点を、図9を参照してさらに詳しく説明する。Siが#2のIDに対応している場合、前記したように、m=tである(つまりこのときのi=1)。一方、diは、理解しやすいように2次元で考えると、図9では、中心語彙#10から各IDの語彙への半径と把握できる。したがって、差分データSiは、クエリデータ100が載った円周(語彙#10が中心)から各語彙への、半径(語彙#10が中心)方向の距離と把握できる。差分データSi+1を#1の語彙IDに対応する差分データとすれば、図9の例では、Si+1<m(=t)となっていることが分かる。
【0065】
図8のステップSB−8〜9)
ついで、比較部44は、ソートされた近傍語彙リスト中の先頭エントリを削除し、ソートリストが空かどうかを判定する。リストが空でなければステップSB−4に進み、以降の動作を繰り返す。もしリストが空であればステップSB−10に進む。
【0066】
図8のステップSB−7での判断がNoとなる場合)
ここで、ステップSB−4に戻って再帰的処理を繰り返した結果、ステップSB−7での判断がNoとなる場合について、図9を参照して説明する。前記したSi+1<mの判定対象として、#9(図7のソートリストにおいて9番目)の語彙が用いられている場合を考える。ここでは、それまでの手順の再帰的実行により、語彙#4とクエリデータとの距離tがmとされている。そして、最近傍語彙候補として、#4が特定されている。この場合、クエリデータ100から距離tだけ半径方向に離間した位置を、図9において2本の二点鎖線で示した。一方で、中心語彙から語彙#9までの距離dを基準とした差分Sは、要するに、クエリデータ100を通る円周(語彙#10が中心)から語彙#9への半径方向距離である。図9では、語彙#9は、外側の二点鎖線の外にあり、したがって、Si+1<m(=t)がもはや成り立たないことが分かる。よって、ステップSB−7での判断はNoとなり、ステップSB−10に移行する。
【0067】
本実施形態では、差分データSiのソートリスト順に前記した再帰的処理を行うこととしているので、一旦、Si+1<mが不成立となれば、もはや、それ以降の再帰的処理において、Si+1<mが成り立つ可能性はない。それ以降は、Si+1の値は増加するからである。そうすると、距離mが更新される可能性はなく、したがって、より良い最近傍語彙候補が現れる可能性もない。したがって、Si+1<mが不成立となれば、以降の再帰的処理を打ち切って、最近傍語彙を特定しても、特段の問題はない。
【0068】
例えば本例では、図7の近傍語彙リストのソート順において、10番目(#11)と11番目(#12)の語彙については、距離計算(ステップSB−5)を省略することができる。距離計算は、差分計算(SB−2でのSiの取得)及びソート処理に比較して、通常、はるかに負荷の高い処理なので、距離計算の一部を省略することにより、語彙探索における計算コストを低く抑えることができ、その結果、探索時間を短縮できるという利点がある。図7の例では、説明簡略化のため、少ない語彙数となっているが、リスト中の近傍語彙の数が増えるほど、本実施形態の利点が発揮されることになる。
【0069】
また、本実施形態では、中心語彙と近傍語彙との距離diを予め計算しているが、これは、ビジュアルキーワード探索の前の予備段階で行われる処理なので、距離diの算出を行っても、ビジュアルキーワード探索の処理時間自体には影響しない。
【0070】
なお、ここで、ステップSB−7〜9の実行は、「i+1番目の近傍語彙があり、かつ、Si+1<mである場合には、当該近傍語彙をi番目の近傍語彙であると仮定して、前記したi番目の近傍語彙への処理を繰り返す処理」の一例に相当する。
【0071】
図8のステップSB−10)
ステップ10に進んだ場合には、その時点で最近傍の候補とされていた近傍語彙を最近傍語彙と特定することができる。この段階で図3のステップSA−5は終了し、ステップSA−6に進むことができる。
【0072】
図3のステップSA−6)
ステップSA−5までの処理を実行することにより、特定の局所特徴量の最近傍にあるビジュアルキーワードを特定することができる。すると、このビジュアルキーワードに紐づいたクラスタIDも特定される。したがって、前記した処理を、特定の画像における各局所特徴量に対して実行することにより、当該画像に対応するBoF表現を生成することができる。
【0073】
本実施形態では、中心語彙の最近傍にあるビジュアルキーワードのクラスタIDを用いてBoF表現を生成できるので、生成されたBoF表現を用いた画像検索の精度を向上させることができるという利点がある。
【0074】
また、前記した通り、本実施形態では、ビジュアルキーワード探索時の距離計算の回数を減らすことができるので、ビジュアルキーワードの探索時間を短縮することが可能になるという利点がある。
【0075】
なお、本発明の内容は、前記実施形態に限定されるものではない。本発明は、特許請求の範囲に記載された範囲内において、具体的な構成に対して種々の変更を加えうるものである。
【0076】
例えば、前記実施形態では、リーフノードごとに一つの中心語彙を割り当てている。しかしながら、各リーフノードに複数個の中心語彙を割り当てることもできる。これら複数の中心語彙には、それぞれ、対応する中心語彙に近い近傍語彙を含む語彙リストを関連付けることができる。さらに、複数の中心語彙には、各中心語彙と、それに関連付けられた語彙リスト中の近傍語彙との距離diを関連付けることができる。このようにすれば、生成されるBoF表現の精度をさらに向上させることができ、BoF表現を用いた検索の精度の向上が期待できる。
【0077】
また、前記の実施形態では、最近傍語彙は#4となり、そこまでの距離はtとなる。ここで、中心語彙からクエリデータまでの距離qと距離tとを比較し、もしq<tであれば中心語彙を最近傍語彙として特定することもできる。
【0078】
さらに、前記した実施形態では、ステップSB−8において、ソートリスト中の先頭エントリを削除しているが、これは、ソートリストの順番で再帰的処理を進めるための手順の一例に過ぎない。よって、このような再帰的手順を実行できる手法であれば、ステップSB−8に代えて、適宜の手順を採用できる。
【0079】
また、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良く、本発明における複数の機能要素が一つの機能要素により実現されても良い。
【0080】
さらに、機能要素は、物理的に離間した位置に配置されていてもよい。この場合、機能要素どうしがネットワークにより接続されていても良い。グリッドコンピューティング又はクラウドコンピューティングにより機能を実現し、あるいは機能要素を構成することも可能である。
【符号の説明】
【0081】
1 語彙受付部
2 インデックス生成部
3 語彙リスト生成部
4 語彙探索部
41 クエリ受付部
42 中心語彙探索部
43 差分データソート部
44 比較部
5 出力部
8 木構造インデックス
81〜86 リーフノード
9(91〜96) 語彙リスト(ソートリスト)
100 クエリデータ
図1
図2
図3
図4
図5
図6
図7
図8
図9