特許第6041439号(P6041439)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ KDDI株式会社の特許一覧

特許6041439画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法
<>
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000002
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000003
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000004
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000005
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000006
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000007
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000008
  • 特許6041439-画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6041439
(24)【登録日】2016年11月18日
(45)【発行日】2016年12月7日
(54)【発明の名称】画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法
(51)【国際特許分類】
   G06F 17/30 20060101AFI20161128BHJP
   G06T 1/00 20060101ALI20161128BHJP
【FI】
   G06F17/30 170B
   G06F17/30 210A
   G06F17/30 412
   G06T1/00 200E
【請求項の数】14
【全頁数】17
(21)【出願番号】特願2013-189872(P2013-189872)
(22)【出願日】2013年9月12日
(65)【公開番号】特開2015-56077(P2015-56077A)
(43)【公開日】2015年3月23日
【審査請求日】2016年1月19日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100135068
【弁理士】
【氏名又は名称】早原 茂樹
(72)【発明者】
【氏名】内田 祐介
(72)【発明者】
【氏名】酒澤 茂之
【審査官】 樋口 龍弥
(56)【参考文献】
【文献】 特開2013−012076(JP,A)
【文献】 特開2012−160047(JP,A)
【文献】 特開2012−043397(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
多数のリファレンス画像の中から、クエリ画像に類似したリファレンス画像を検索する画像検索装置であって、
ハッシュ値毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶するハッシュコードブック記憶手段と、
前記ハッシュ値毎に、情報量(エントロピー)の高いビット番号集合を記憶するビット番号コードブック記憶手段と、
前記クエリ画像及び前記リファレンス画像からバイナリ特徴ベクトルの集合を抽出する局所特徴抽出手段と、
前記ハッシュコードブック記憶手段を用いて、前記バイナリ特徴ベクトルに、最も類似するハッシュ値を出力するハッシュ手段と、
前記ビット番号コードブック記憶手段における当該ハッシュ値のビット番号集合を参照して、前記バイナリ特徴ベクトルから部分ビット列を選択するビット列生成手段と、
前記ハッシュ値毎に、前記リファレンス画像のビット列を対応付けて記憶する転置インデックス記憶手段と、
前記転置インデックス記憶手段を用いて、前記クエリ画像のビット列からリファレンス画像を検索する検索手段と
を有することを特徴とする画像検索装置。
【請求項2】
多数のリファレンス画像における大量のバイナリ特徴ベクトルをクラスタリングし、クラスタ毎の代表バイナリ特徴ベクトルと、その識別子であるハッシュ値とを、前記ハッシュコードブック記憶手段へ記憶させるハッシュコードブック生成手段を更に有することを特徴とする請求項1に記載の画像検索装置。
【請求項3】
前記ハッシュコードブック生成手段は、クラスタリングに、k-means法又はk-medoids法を用いることを特徴とする請求項2に記載の画像検索装置。
【請求項4】
同一ハッシュ値の1つのクラスタに含まれる多数のバイナリ特徴ベクトルについて、当該ビットの情報量が高く、且つ、当該ビットと他のビットとの間で相関が小さいビット番号を並べたビット番号列を導出し、ハッシュ値毎のそのビット番号列を前記ビット番号コードブック記憶手段へ記憶させるビット番号コードブック生成手段を更に有することを特徴とする請求項2又は3に記載の画像検索装置。
【請求項5】
前記ビット番号コードブック生成手段は、前記ビット番号列に、1つのビット番号ずつ収容するために、
同一ハッシュ値の1つのクラスタに含まれる多数のバイナリ特徴ベクトルについて、各ビット(0/1)の平均値が0.5に近いビット(情報量が高いビット)から順に並べた仮ビット番号列を生成し、
前記仮ビット番号列の上位ビットから順に、既にビット番号列に収容された他のビットと間の相関係数の絶対値が所定閾値以下であれば、当該上位ビットのビット番号を前記ビット番号列に収容し、これを前記ビット番号列が所定数となるまで収容する
ことを特徴とする請求項4に記載の画像検索装置。
【請求項6】
前記転置インデックス記憶手段は、リファレンス画像について、ハッシュ値LIDn毎に、リファレンス画像識別子と前記ビット列との複数の組を、リスト形式で対応付けた転置インデックスを登録したものである
ことを特徴とする請求項1から5のいずれか1項に記載の画像検索装置。
【請求項7】
前記検索手段は、
クエリ画像についてハッシュ値LIDn及びの複数の組を入力し、
前記クエリ画像のハッシュ値とビット列の各組について、当該ハッシュ値に対応する転置インデックスのリストを取得し、
前記クエリ画像ビット列と、取得したリスト中に含まれるリファレンス画像のビット列との間の非類似度を算出し、
前記非類似度が低いほど高くなるスコア値を算出し、
当該リファレンス画像毎に該スコア値を累積加算し、
前記スコア値が最も高くなるリファレンス画像を検索結果として出力する
ことを特徴とする画像検索装置。
【請求項8】
前記検索手段は、非類似度が小さい上位所定件数(K)に相当するスコア値のみを当該リファレンス画像に累積加算することを特徴とする請求項7に記載の画像検索装置。
【請求項9】
前記検索手段について、前記上位所定件数(K)は、予め設定された固定数か、又は、予め設定された非類似度に関する閾値THに基づいて当該非類似度が閾値TH以下となる非類似度の数であることを特徴とする請求項7に記載の画像検索装置。
【請求項10】
前記検索手段における、前記上位所定件数(K)のうちi件目に対応する加算スコアについて、K番目の非類似度が、i番目の非類似度と比較して大きい場合に、加算スコアの値が大きく設定される
ことを特徴とする請求項7に記載の画像検索装置。
【請求項11】
前記検索手段について、前記上位所定件数(K)のうちi件目に対応する加算スコアは、
(1)K番目の非類似度の二乗からi番目の非類似度の二乗を引いたものとするか、
(2)K番目の非類似度の二乗とi番目の非類似度の二乗の比から1を引いたものとするか、
(3)K番目の非類似度とi番目の非類似度の比の二乗から1を引いたものとするか、又は、
(4)K番目の非類似度とi番目の非類似度の比から1を引いたものの二乗とする
ことを特徴とする請求項7に記載の画像検索装置。
【請求項12】
前記局所特徴抽出手段は、ORB(Oriented FAST and Rotated BRIEF)、FREAK(Fast Retina Keypoint)、又はBRISK (Binary Robust Independent Elementary Features)に基づくバイナリ特徴ベクトルを抽出する、
ことを特徴とする請求項1から11のいずれか1項に記載の画像検索装置。
【請求項13】
多数のリファレンス画像の中から、クエリ画像に類似したリファレンス画像を検索する装置に搭載されたコンピュータを機能させるプログラムであって、
ハッシュ値毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶するハッシュコードブック記憶手段と、
前記ハッシュ値毎に、情報量(エントロピー)の高いビット番号集合を記憶するビット番号コードブック記憶手段と、
前記クエリ画像及び前記リファレンス画像からバイナリ特徴ベクトルの集合を抽出する局所特徴抽出手段と、
前記ハッシュコードブック記憶手段を用いて、前記バイナリ特徴ベクトルに、最も類似するハッシュ値を出力するハッシュ手段と、
前記ビット番号コードブック記憶手段における当該ハッシュ値のビット番号集合を参照して、前記バイナリ特徴ベクトルから部分ビット列を選択するビット列生成手段と、
前記ハッシュ値毎に、前記リファレンス画像のビット列を対応付けて記憶する転置インデックス記憶手段と、
前記転置インデックス記憶手段を用いて、前記クエリ画像のビット列からリファレンス画像を検索する検索手段と
してコンピュータを機能させることを特徴とするプログラム。
【請求項14】
装置を用いて、多数のリファレンス画像の中から、クエリ画像に類似したリファレンス画像を検索する方法であって、
当該装置は、
ハッシュ値毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶するハッシュコードブック記憶部と、
前記ハッシュ値毎に、情報量(エントロピー)の高いビット番号集合を記憶するビット番号コードブック記憶部と、
前記ハッシュ値毎に、前記リファレンス画像のビット列を対応付けて記憶する転置インデックス記憶部と
を有し、
前記クエリ画像及び前記リファレンス画像からバイナリ特徴ベクトルの集合を抽出する第1のステップと、
前記ハッシュコードブック記憶部を用いて、前記バイナリ特徴ベクトルに、最も類似するハッシュ値を出力する第2のステップと、
前記ビット番号コードブック記憶部における当該ハッシュ値のビット番号集合を参照して、前記バイナリ特徴ベクトルから部分ビット列を選択する第3のステップと、
前記転置インデックス記憶部を用いて、前記クエリ画像のビット列からリファレンス画像を検索する第4のステップと
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バイナリ特徴ベクトルを用いて画像を検索する技術に関する。
【背景技術】
【0002】
近年、局所特徴点に基づいた画像認識や検索技術が注目されている。物体認識に用いる特徴ベクトルの抽出アルゴリズムとしては、回転やスケールの変化にロバストな、例えばSIFT(Scale-Invariant Feature Transform)(例えば非特許文献1参照)やSURF(Speeded Up Robust Features)が用いられる。例えばSIFTの場合、1枚の画像からは128次元の特徴ベクトルの集合が抽出される。SIFTとは、スケールスペースを用いて特徴的な局所領域を解析し、そのスケール変化及び回転に不変となる特徴ベクトルを記述する技術である。一方で、SURFの場合、SIFTよりも高速処理が可能であって、1枚の画像から64次元の特徴ベクトルの集合が抽出される。SIFTは、処理コストが高く且つリアルタイムマッチングが困難であるのに対し、SURFは、積分画像を利用することによって処理を高速化している。
【0003】
一方で、スマートフォンやタブレット端末のような携帯端末が普及する中で、コンテンツ検索処理に対して、更なる省メモリ化及び高速マッチング化が要求されてきている。特に、拡張現実感(Augmented Reality, AR)の用途における画像認識の技術分野によれば、リアルタイムに処理するべく、SIFTやSURFよりも更に高速にコンテンツを検索することが要求される。このため、バイナリ特徴ベクトル抽出アルゴリズムであるFAST(Features from Accelerated Segment Test)(例えば非特許文献2参照)やFREAK(Fast Retina Keypoint)(例えば非特許文献3参照)が注目されている。これは、SIFTやSURFよりも高速に特徴ベクトルが抽出でき、更に抽出される特徴ベクトルもコンパクトにすることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−282581号公報
【非特許文献】
【0005】
【非特許文献1】J. Sivic et al., "Video Google: A Text Retrieval Approach toObject Matching in Videos," in Proc. ICCV, 2003.
【非特許文献2】E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, "ORB: Anefficient alternative to SIFT or SURF," in Proc. ICCV, 2011.
【非特許文献3】A. Alahi, R. Ortiz, and P. Vandergheynst, "FREAK: Fast RetinaKeypoint," in Proc. CVPR, 2012.
【非特許文献4】「相関係数」、[online]、[平成25年8月31日検索]、インターネット<URL:http://ja.wikipedia.org/wiki/%E7%9B%B8%E9%96%A2%E4%BF%82%E6%95%B0>
【発明の概要】
【発明が解決しようとする課題】
【0006】
スマートフォンのような携帯端末によれば、撮影したクエリ画像に類似するリファレンス画像を直ぐに検索できるアプリケーションがある。一方で、画像検索(認識)技術によれば、認識対象となる大量のリファレンス情報を、データベースとして予め保持しておく必要がある。そのために、スマートフォンにインストールされる画像検索用アプリケーション自体も、リファレンス情報のデータベースを持つ必要がある。
【0007】
しかしながら、大量のリファレンス画像を認識しようとするほど、そのデータベースも大容量となり、結果的にそのアプリケーションのサイズ自体も大きくなる。これに対し、ユーザとしては、比較的メモリ容量が小さいスマートフォンに、大容量のアプリケーションをインストールすることに抵抗感を生じやすい。また、データベースが大容量となるほど、画像検索アプリケーションで検索に要する演算処理量(及び演算時間)も大きくなる。
【0008】
勿論、スマートフォンにインストールされた画像検索用アプリケーションが、ネットワークを介して逐次にデータベースファイルのみをダウンロードすることもできる。しかしながら、データベースファイルの容量が大きくなるほど、そのダウンロードに要する時間も長くなり、結果的にユーザビリティを損なう可能性がある。
【0009】
そこで、本発明によれば、リファレンス情報のデータベースをできる限り小容量とすると共に、画像検索時の演算処理量も少なくすることができる画像検索装置、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明によれば、多数のリファレンス画像の中から、クエリ画像に類似したリファレンス画像を検索する画像検索装置であって、
ハッシュ値毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶するハッシュコードブック記憶手段と、
ハッシュ値毎に、情報量(エントロピー)の高いビット番号集合を記憶するビット番号コードブック記憶手段と、
クエリ画像及びリファレンス画像からバイナリ特徴ベクトルの集合を抽出する局所特徴抽出手段と、
ハッシュコードブック記憶手段を用いて、バイナリ特徴ベクトルに、最も類似するハッシュ値を出力するハッシュ手段と、
ビット番号コードブック記憶手段における当該ハッシュ値のビット番号集合を参照して、バイナリ特徴ベクトルから部分ビット列を選択するビット列生成手段と、
ハッシュ値毎に、リファレンス画像のビット列を対応付けて記憶する転置インデックス記憶手段と、
転置インデックス記憶手段を用いて、クエリ画像のビット列からリファレンス画像を検索する検索手段と
を有することを特徴とする。
【0011】
本発明の画像検索装置における他の実施形態によれば、
多数のリファレンス画像における大量のバイナリ特徴ベクトルをクラスタリングし、クラスタ毎の代表バイナリ特徴ベクトルと、その識別子であるハッシュ値とを、ハッシュコードブック記憶手段へ記憶させるハッシュコードブック生成手段を更に有することも好ましい。
【0012】
本発明の画像検索装置における他の実施形態によれば、
ハッシュコードブック生成手段は、クラスタリングに、k-means法又はk-medoids法を用いることも好ましい。
【0013】
本発明の画像検索装置における他の実施形態によれば、
同一ハッシュ値の1つのクラスタに含まれる多数のバイナリ特徴ベクトルについて、当該ビットの情報量が高く、且つ、当該ビットと他のビットとの間で相関が小さいビット番号を並べたビット番号列を導出し、ハッシュ値毎のそのビット番号列をビット番号コードブック記憶手段へ記憶させるビット番号コードブック生成手段を更に有することも好ましい。
【0014】
本発明の画像検索装置における他の実施形態によれば、
ビット番号コードブック生成手段は、ビット番号列に、1つのビット番号ずつ収容するために、
同一ハッシュ値の1つのクラスタに含まれる多数のバイナリ特徴ベクトルについて、各ビット(0/1)の平均値が0.5に近いビット(情報量が高いビット)から順に並べた仮ビット番号列を生成し、
仮ビット番号列の上位ビットから順に、既にビット番号列に収容された他のビットと間の相関係数の絶対値が所定閾値以下であれば、当該上位ビットのビット番号をビット番号列に収容し、これをビット番号列が所定数となるまで収容することも好ましい。
【0015】
本発明の画像検索装置における他の実施形態によれば、
転置インデックス記憶手段は、リファレンス画像について、ハッシュ値LIDn毎に、リファレンス画像識別子とビット列との複数の組を、リスト形式で対応付けた転置インデックスを登録したものであることも好ましい。
【0016】
本発明の画像検索装置における他の実施形態によれば、
検索手段は、
クエリ画像についてハッシュ値LIDn及びの複数の組を入力し、
クエリ画像のハッシュ値とビット列の各組について、当該ハッシュ値に対応する転置インデックスのリストを取得し、
クエリ画像ビット列と、取得したリスト中に含まれるリファレンス画像のビット列との間の非類似度を算出し、
非類似度が低いほど高くなるスコア値を算出し、
当該リファレンス画像毎に該スコア値を累積加算し、
スコア値が最も高くなるリファレンス画像を検索結果として出力することも好ましい。
【0017】
本発明の画像検索装置における他の実施形態によれば、
検索手段は、非類似度が小さい上位所定件数(K)に相当するスコア値のみを当該リファレンス画像に累積加算することも好ましい。
【0018】
本発明の画像検索装置における他の実施形態によれば、
検索手段について、上位所定件数(K)は、予め設定された固定数か、又は、予め設定された非類似度に関する閾値THに基づいて当該非類似度が閾値TH以下となる非類似度の数であることも好ましい。
【0019】
本発明の画像検索装置における他の実施形態によれば、
検索手段における、上位所定件数(K)のうちi件目に対応する加算スコアについて、K番目の非類似度が、i番目の非類似度と比較して大きい場合に、加算スコアの値が大きく設定されることも好ましい。
【0020】
本発明の画像検索装置における他の実施形態によれば、
検索手段について、上位所定件数(K)のうちi件目に対応する加算スコアは、
(1)K番目の非類似度の二乗からi番目の非類似度の二乗を引いたものとするか、
(2)K番目の非類似度の二乗とi番目の非類似度の二乗の比から1を引いたものとするか、
(3)K番目の非類似度とi番目の非類似度の比の二乗から1を引いたものとするか、又は、
(4)K番目の非類似度とi番目の非類似度の比から1を引いたものの二乗とする
ことも好ましい。
【0021】
本発明の画像検索装置における他の実施形態によれば、
局所特徴抽出手段は、ORB(Oriented FAST and Rotated BRIEF)、FREAK(Fast Retina Keypoint)、又はBRISK(Binary Robust Independent Elementary Features)に基づくバイナリ特徴ベクトルを抽出することも好ましい。
【0022】
本発明によれば、多数のリファレンス画像の中から、クエリ画像に類似したリファレンス画像を検索する装置に搭載されたコンピュータを機能させるプログラムであって、
ハッシュ値毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶するハッシュコードブック記憶手段と、
ハッシュ値毎に、情報量(エントロピー)の高いビット番号集合を記憶するビット番号コードブック記憶手段と、
クエリ画像及びリファレンス画像からバイナリ特徴ベクトルの集合を抽出する局所特徴抽出手段と、
ハッシュコードブック記憶手段を用いて、バイナリ特徴ベクトルに、最も類似するハッシュ値を出力するハッシュ手段と、
ビット番号コードブック記憶手段における当該ハッシュ値のビット番号集合を参照して、バイナリ特徴ベクトルから部分ビット列を選択するビット列生成手段と、
ハッシュ値毎に、リファレンス画像のビット列を対応付けて記憶する転置インデックス記憶手段と、
転置インデックス記憶手段を用いて、クエリ画像のビット列からリファレンス画像を検索する検索手段と
してコンピュータを機能させることを特徴とする。
【0023】
本発明によれば、装置を用いて、多数のリファレンス画像の中から、クエリ画像に類似したリファレンス画像を検索する方法であって、
当該装置は、
ハッシュ値毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶するハッシュコードブック記憶部と、
ハッシュ値毎に、情報量(エントロピー)の高いビット番号集合を記憶するビット番号コードブック記憶部と、
ハッシュ値毎に、リファレンス画像のビット列を対応付けて記憶する転置インデックス記憶部と
を有し、
クエリ画像及びリファレンス画像からバイナリ特徴ベクトルの集合を抽出する第1のステップと、
ハッシュコードブック記憶部を用いて、バイナリ特徴ベクトルに、最も類似するハッシュ値を出力する第2のステップと、
ビット番号コードブック記憶部における当該ハッシュ値のビット番号集合を参照して、バイナリ特徴ベクトルから部分ビット列を選択する第3のステップと、
転置インデックス記憶部を用いて、クエリ画像のビット列からリファレンス画像を検索する第4のステップと
を有することを特徴とする。
【発明の効果】
【0024】
本発明の画像検索装置、プログラム及び方法によれば、リファレンス情報のデータベースをできる限り小容量とすると共に、画像検索時の演算処理量も少なくすることができる。
【図面の簡単な説明】
【0025】
図1】本発明における画像検索装置の機能構成図である。
図2】本発明における検索情報配信サーバの機能構成図である。
図3図2の検索情報配信サーバと通信可能な端末の機能構成図である。
図4】本発明における画像検索処理を表す説明図である。
図5】本発明におけるビット列の生成を表す説明図である。
図6】転置インデックス登録部のデータ構造を表す説明図である。
図7】検索部における処理を表す説明図である。
図8】本発明における検索部の処理を表すフローチャートである。
【発明を実施するための形態】
【0026】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【0027】
図1は、本発明における画像検索装置の機能構成図である。
図2は、本発明における検索情報配信サーバの機能構成図である。
図3は、図2の検索情報配信サーバと通信可能な端末の機能構成図である。
【0028】
画像検索装置1は、大量のリファレンス画像(検索対象画像)を予め入力し、データベース(コードブックやインデックス)を生成し蓄積している。そのために、以下のように2つの実施の形態に区分できる。
(1)画像検索装置(単体):図1のように、画像検索装置1は、ユーザから多数のリファレンス画像を入力し、そのリファレンス画像に対するデータベースを生成し蓄積する。そして、画像検索装置1は、ユーザからクエリ画像(検索キー画像)を入力し、データベースを用いてそのクエリ画像に対するリファレンス画像を検索し、そのリファレンス画像の検索結果をユーザに対して出力する。
【0029】
(2)サーバ−クライアント・システム:図2のように、検索情報配信サーバ2は、大量のリファレンス画像を入力し、そのリファレンス画像に対するデータベースを生成し蓄積する。
クライアントとしての端末1は、ネットワークを介して検索情報配信サーバ2から、そのデータベース情報をダウンロードする。そのデータベース情報は、端末1の記憶領域(メモリ空間やディスク空間)に蓄積される。
そして、図3のように、端末1は、ユーザからクエリ画像を入力し、データベースを用いてそのクエリ画像に対するリファレンス画像を検索し、そのリファレンス画像の検索結果をユーザに対して出力する。
【0030】
図1と、図2及び図3とは、異なるシステム構成となるが、各機能構成部は全く同じである。以下では、代表的に図1を参照して説明する。
【0031】
図1によれば、画像検索装置1は、ハッシュコードブック記憶部101と、ビット番号コードブック記憶部102と、転置インデックス記憶部103と、局所特徴抽出部11と、ハッシュ部12と、ビット列生成部13と、検索部14と、ハッシュコードブック生成部15と、ビット番号コードブック生成部16とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させる画像検索用プログラムを実行することによって実現される。例えばスマートフォンで画像を検索する場合、画像検索装置1は、インストール可能な画像検索アプリケーションであってもよい。また、これら機能構成部の処理の流れは、装置を用いた画像検索方法としても理解できる。
【0032】
図4は、本発明における画像検索処理を表す説明図である。以下では、適宜、図4を参照して説明する。
【0033】
[局所特徴抽出部11]
局所特徴抽出部11は、クエリ画像及びリファレンス画像から、局所特徴のバイナリ特徴ベクトルの集合を抽出する。本発明によれば、バイナリ特徴ベクトルの抽出アルゴリズムとして、ORB(Oriented FAST and Rotated BRIEF)又はFREAK(Fast Retina Keypoint)を用いる。ORBの場合、1つのコンテンツから256ビットのバイナリ特徴ベクトルの集合が抽出される。例えば、高速にマッチングを実行するべく、バイナリコードによる特徴記述としてBRIEF(Binary Robust Independent Elementary Features)がある。本発明によれば、BRIEFに回転不変性を導入した特徴記述をすることができる「ORB」を用いる。特に、ORBによれば、SIFTやSURFと比較して、同等以上の精度を保持すると共に、数百倍の高速化を実現することができる。
【0034】
ORBは、「特徴点検出処理」と「特徴ベクトル記述処理」との2つのステップから構成される。
【0035】
(特徴点検出処理)
ORBの特徴点検出処理によれば、高速にキーポイントを検出するためにFASTを用いる。また、FASTでは、スケール変化に対してロバストではないため、画像を複数のサイズに変換し、それぞれのサイズの画像から特徴点を抽出する。
また、既存のFASTには、回転不変性を得るためのキーポイントのオリエンテーション算出のアルゴリズムがない。そのために、ORBでは、回転不変性を得るべくOriented FASTを採用している。オリエンテーションを基準として特徴記述をすることによって、入力画像が回転していても、同一なキーポイントは同一な特徴量となって検出することができる。そのために、キーポイントの中心とパッチの輝度の重心の方向ベクトルを用いる。
【0036】
(特徴ベクトル記述処理)
次に、ORBにおける特徴ベクトル記述処理によれば、検出された特徴点毎に、BRIEF特徴ベクトル記述子によってバイナリ特徴ベクトルが抽出される。これらは、特徴点周辺の2箇所のピクセルの輝度の大小関係から求められる。
BRIEFは、バイナリコードによってキーポイントの特徴量記述を実行することができる。SIFTやSURFによれば、特徴量記述に高次元の実数を用いていた。しかしながら、高次元の実数を用いた場合、メモリ容量の増加と類似度計算の増加と問題となる。そこで、ORBに基づくBRIEFを用いることによって、バイナリコードによって特徴記述することで省メモリ化し、類似度計算にハミング距離を用いることで処理コストの抑制を実現する。
BRIEFによれば、パッチ内においてランダムに選択された2点の輝度差の符号からバイナリコードを生成する。選択するピクセルは、キーポイント位置を中心としたガウス分布に従ってランダムに選択する。ここで、ORBは、更に高精度にマッチングをさせるために、学習を用いてピクセルを選択している。選択するピクセル位置は、ペアのビット分散が大きく且つN組のペアの相関が低い場合に、特徴記述能力が高いバイナリコードとして、特徴記述に使用する。N組のペアは、Greedyアルゴリズムを用いて絞り込む。
【0037】
[ハッシュコードブック記憶部101]
ハッシュコードブック記憶部101は、ハッシュ値s毎に、バイナリ特徴ベクトルの量子化に用いるハッシュコードブックを記憶する。図4によれば、コードブックは、バイナリ特徴ベクトルBと同一ビット長のコードベクトルB1〜BSを保存したものである。ORBのバイナリ特徴ベクトルの場合、例えば256ビット長である。
【0038】
[ハッシュコードブック生成部15]
ハッシュコードブック生成部15は、多数のリファレンス画像における大量のバイナリ特徴ベクトルをクラスタリングする。クラスタリングには、ハミング距離を用いたk-medoids法を用いてもよいし、単純にk-means法を用いてもよい。ハッシュコードブック生成部15は、クラスタ毎の代表バイナリ特徴ベクトルをコードベクトルとし、その識別子であるハッシュ値を対応付けて、ハッシュコードブック記憶部101へ記憶させる。
【0039】
[ハッシュ部12]
ハッシュ部12は、ハッシュコードブック記憶部101を用いて、局所特徴抽出部11から出力されたバイナリ特徴ベクトルBに、最も類似するコードベクトルBsのハッシュ値LIDを出力する。ハッシュ部12は、バイナリ特徴ベクトルが類似していれば高い確率で同一のハッシュ値を返すことができる。そのために、同一のハッシュ値を持つバイナリ特徴ベクトルのみをマッチングすることによって高速化を実現できる。
【0040】
「最も類似した」とは、例えばハミング距離が最も近いものであってもよい。
LID=argmins ham(B,Bs
ham(x,y):xとyとのハミング距離
ハッシュ部12は、クエリ画像のn(n=1〜N)番目のバイナリ特徴ベクトルのハッシュ値LIDn(=s)を、ビット列生成部13へ出力する。
【0041】
データベースの検索時間は、特徴ベクトルのマッチングに多くの時間がかかることを考慮して、最も類似した特徴ベクトルとのみマッチングすることで高速化を実現する。
【0042】
[ビット番号コードブック記憶部102]
ビット番号コードブック記憶部102は、ハッシュ値s毎に、情報量(エントロピー)の高いビット番号集合を記憶する。ビット番号集合は、例えば64個である。図4によれば、ハッシュ値毎に、バイナリ特徴ベクトルのビット位置を表すビット番号が、情報量の高い順に登録されている。尚、ここで、情報量が高いビット番号の集合が登録されていればよく、必ずしも情報量が高い順である必要はない。
【0043】
[ビット列生成部13]
ビット列生成部13は、ビット番号コードブック記憶部102における当該ハッシュ値sのビット番号集合Cを参照して、バイナリ特徴ベクトルBから部分ビット列(例えば64ビット)を選択する。このビット列は、ビット番号集合Csに記述されているビット番号の位置のビットのみを、バイナリ特徴ベクトルBから取り出して並べたものである。これによって、入力されたバイナリ特徴ベクトルよりも短いビット列が生成されることとなる。これは、バイナリ特徴ベクトル間の識別に寄与するビット列のみを生成し、それ以外のビットを捨てることを意味する。そのビット列のみをコードブックとしてデータベースに保存することによって、データベース自体の容量を小さくすることができると共に、画像検索時の演算処理量も少なくすることができる。
【0044】
バイナリ特徴ベクトルBから、ハッシュ値LIDとビット列RCとの組が得られる。
(LID, RC)
LID:log2Sビット(Sは、ハッシュコードブック記憶部のコードブック数)
RC:L・log2Fビット(Fは、ビット番号コードブック記憶部のコードブック数)
【0045】
そして、ビット列生成部13は、以下の2つの方向で出力する。
(1)当該クエリ画像のバイナリ特徴ベクトルについては、ハッシュ値LIDn毎に、ビット列RCの複数の組を、検索部14へ出力する。
(2)当該リファレンス画像のバイナリ特徴ベクトルについては、ハッシュ値LIDn毎に、ビット列RCの複数の組を、転置インデックス登録部103へ出力する。
尚、LIDnにおけるnは、入力画像のn(n=1〜N)番目のバイナリ特徴ベクトルを表す。
【0046】
[ビット番号コードブック生成部16]
ビット番号コードブック生成部16は、ハッシュ値毎にビット番号列を生成し、そのビット番号列を、ビット番号コードブック記憶部102へ記憶させる。ハッシュ値毎にビット列の分布が異なるため、それらの分布に適したビット番号列のコードブックを作成する。その「ビット番号列」は、同一ハッシュ値の1つのクラスタに含まれる多数のバイナリ特徴ベクトルについて、当該ビットの情報量が高く、且つ、当該ビットと他のビットとの間で相関が小さいビット番号を並べたものである。
【0047】
図5は、本発明におけるビット列の生成を表す説明図である。
【0048】
ハッシュ値毎に、以下のステップでビット番号列が生成される。
(S51)バイナリ特徴ベクトルの全ビットの総当たりで、ビット間の相関係数を算出する。例えばORBの場合、図5のように256ビットの総当たりの相関係数が算出される(例えば非特許文献4参照)。相関係数は、−1〜1の値を取る。i番目のビットとj番目のビットと間の相関係数を、例えば以下では8つのベクトルを用いて算出する例を表す。
(0, 0, 0, 0, 1, 1, 1, 1)
↑ベクトル1のiビット目
↑ベクトル2のiビット目
↑ベクトル3のiビット目
・・・・・
↑ベクトル8のiビット目
(1, 1, 1, 1, 0, 0, 0, 0)
↑ベクトル1のjビット目
↑ベクトル2のjビット目
↑ベクトル3のjビット目
・・・・・
↑ベクトル8のjビット目
この場合、以下のように相関係数が算出される。
(0, 0, 0, 0, 1, 1, 1, 1)<->(1, 1, 1, 1, 0, 0, 0, 0) 相関係数=-1
同様に、他の例によれば、以下のように相関係数が算出される。
(0, 0, 0, 0, 1, 1, 1, 1)<->(0, 0, 0, 1, 1, 1, 1, 0) 相関係数=0.5
(0, 0, 0, 0, 1, 1, 1, 1)<->(0, 0, 1, 1, 1, 1, 0, 0) 相関係数=0
【0049】
(S52)同一ハッシュ値の1つのクラスタに含まれる多数のバイナリ特徴ベクトルについて、ビット番号毎の平均値を算出する。ここで、平均値から、以下のような関係が想定される。
平均値が0に近いほど、両方のビットが”0”である確率が高い。
平均値が0.5に近いほど、両方のビットが反転する確率が高い。
(一方のビットが”1”である場合に、他方のビットが”0”となりやすい)
平均値が1に近いほど、両方のビットが”1”である確率が高い。
【0050】
(S53)各ビット(0/1)の平均値が0.5に近いビット(情報量が高いビット)から順に並べた「仮ビット番号列」を生成する。
【0051】
(S54)仮ビット番号列の上位ビットから順に、既にビット番号列に収容された他のビットと間の相関係数の絶対値が所定閾値以下であれば、当該上位ビットのビット番号をビット番号列に1ビットずつ収容する。これは、ビット間の相関が高いビット同士を選択しないようにすることを意味する。これをビット番号列が所定数(例えば64ビット)となるまで収容する。
【0052】
[転置インデックス記憶部103]
転置インデックス記憶部103は、ハッシュ値LIDn毎に、画像識別子RIDとビット列RCとの組(RID,RCn)をリストとして登録したものである。
【0053】
図6は、転置インデックス登録部のデータ構造を表す説明図である。
【0054】
リファレンス画像RIDには、ハッシュ値LIDnとビット列RCnとの複数の組が対応付けられている。
RID -> (LID1,RC1)(LID2,RC2)・・・(LIDn,RCn)・・・(LIDN,RCN
組(LID,RC)毎に、その画像識別子RIDとビット列RCとの組(RID,RC)を、転置インデックスにおけるそのハッシュ値LIDに連結して登録する。
LID1 -> (RID,RC)(RID,RC)(RID,RC)・・・
LID2 -> (RID,RC)(RID,RC)(RID,RC)・・・
・・・
LIDn -> (RID,RC)(RID,RC)(RID,RC)・・・
・・・
【0055】
[検索部14]
検索部14は、転置インデックス記憶部103を用いて、クエリ画像のビット列からリファレンス画像を検索する。入力されるクエリ画像は、ハッシュ値LIDn及びビット列QCnの複数の組からなる。
クエリ符号 ->(LID1,QC1)(LID2,QC2)・・・(LIDn,QCn)・・・(LIDN,QCN
【0056】
図7は、検索部における処理を表す説明図である。
図8は、本発明における検索部の処理を表すフローチャートである。
【0057】
検索部14は、以下の処理ステップを、リファレンス画像毎に実行し(S4)、最終的に、最も高いスコア値のリファレンス画像を検索結果として出力する(S5)。
score[]=0 (S0)
for each i=1〜N
転置インデックスのLIDi番目のリストを取得 (S1)
リスト中の組(RID1, RC1)〜(RIDM, RCM)について
クエリ画像に基づく組(QCi, RCj)の距離Dijを算出し、
距離と画像識別子の組(Dij, RIDj)を作成する (S2)
ijを昇順にソートする (S3)
上位K番目までの組Di'j'を選択する
for each k=1〜K
k番目のDi'j'について、score[RCj']+=S(Di'j',D)
end for
end for
【0058】
(S80)最初に、初期設定として、変数score[]=0とする。
【0059】
検索部14は、以下のS1〜S3の処理を、入力されたクエリ画像に基づくハッシュ値とビット列の組(LIDi, QCi)毎に、繰り返し実行する(i=1〜N)。
【0060】
(S81)クエリ画像の各ハッシュ値とビット列の組(LIDi,QCi)について、当該ハッシュ値LIDiに対応する転置インデックスのリスト(RIDj,RCj)・・・を取得する。
【0061】
(S82)転置インデックスの当該ハッシュ値LIDiに並ぶリストの分だけ、以下の処理を繰り返し実行する(j=1〜M)。
クエリ画像のビット列QCiと、取得したリスト中のリファレンス画像の各ビット列RCjとの間の距離Dijを算出する。そして、その距離Dijと画像識別子RIDjとの組(Dij, RIDj)を作成する。
【0062】
(S83)次に、距離Dijと画像識別子RIDjとの組(Dij, RIDj)を、距離が短い順(昇順)にソートする。
【0063】
そして、距離が短い上位所定件数(K)のみを選択する。距離が短いとは、類似度が高いことを意味する。また、上位所定件数(K)は、予め設定された固定数であってもよい。又は、予め設定された距離に関する閾値THに基づいて当該距離が閾値TH以下となる距離の数であってもよい。
【0064】
具体的には、上位K件の複数の組(Dij, RIDj)について、距離が短いほど高くなるスコア値を算出し、それらスコア値を累積加算する。具体的には、k番目の距離Di'j'及びK番目の距離Dを用いて、以下のいずれかによって、スコア値を算出する。
S(Di'j',D):k番目の距離を持つ画像への投票スコア値
(1)k番目の距離の二乗から、i番目の距離の二乗を引いたものとする
S(Di'j',D)=D2−Di'j'2
(2)k番目の距離の二乗とi番目の距離の二乗の比から、1を引いたものとする
S(Di'j',D)=D2/Di'j'2−1
(3)k番目の距離とi番目の距離の比の二乗から、1を引いたものとする
S(Di'j',D)=(D/Di'j')2−1
(4)k番目の距離とi番目の距離の比から1を引いたものの二乗とする
S(Di'j',D)=(D/Di'j'−1)2
【0065】
(S84)当該リファレンス画像毎に該スコア値を累積加算する。次のリファレンス画像について、S1〜S3を繰り返す。
【0066】
(S85)最終的に、スコア値が最も高くなるリファレンス画像を、検索結果として出力する。
【0067】
以上、詳細に説明したように、本発明の画像検索装置、システム、プログラム及び方法によれば、リファレンス情報のデータベースをできる限り小容量とすると共に、画像検索時の演算処理量も少なくすることができる。
【0068】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【0069】
1 画像検索装置、端末
101 ハッシュコードブック記憶部
102 ビット番号コードブック記憶部
103 転置インデックス記憶部
11 局所特徴抽出部
12 ハッシュ部
13 ビット列生成部
14 検索部
15 ハッシュコードブック生成部
16 ビット番号コードブック生成部
2 検索情報配信サーバ
図1
図2
図3
図4
図5
図6
図7
図8