JP2018055618A - 確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法 - Google Patents

確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法 Download PDF

Info

Publication number
JP2018055618A
JP2018055618A JP2016194343A JP2016194343A JP2018055618A JP 2018055618 A JP2018055618 A JP 2018055618A JP 2016194343 A JP2016194343 A JP 2016194343A JP 2016194343 A JP2016194343 A JP 2016194343A JP 2018055618 A JP2018055618 A JP 2018055618A
Authority
JP
Japan
Prior art keywords
codebook
representative
primary
vectors
probability model
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.)
Granted
Application number
JP2016194343A
Other languages
English (en)
Other versions
JP6621206B2 (ja
Inventor
祐介 内田
Yusuke Uchida
祐介 内田
茂之 酒澤
Shigeyuki Sakasawa
茂之 酒澤
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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2016194343A priority Critical patent/JP6621206B2/ja
Publication of JP2018055618A publication Critical patent/JP2018055618A/ja
Application granted granted Critical
Publication of JP6621206B2 publication Critical patent/JP6621206B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)

Abstract

【課題】データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成するプログラム、装置及び方法を提供する。【解決手段】訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、K1個の代表ベクトルSkからなる1次コードブックを作成する1次コードブック作成手段と、訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、K1個の確率モデルを、M個の2次クラスタの群に分類し、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段とを有する。【選択図】図1

Description

本発明は、データを量子化する際に用いられるコードブックの技術に関する。コードブックは、リファレンスコンテンツ(検索対象のコンテンツ)の集合から、クエリコンテンツ(検索キーとなるコンテンツ)に類似したリファレンスコンテンツを検索する技術に適用される。
近年、局所特徴点に基づいた画像認識や検索技術が注目されている(例えば特許文献1参照)。物体認識に用いる局所特徴抽出アルゴリズムとしては、回転やスケールの変化にロバストな、例えばSIFT(Scale-Invariant Feature Transform)やSURF(Speeded Up Robust Features)がある。例えば、SIFTの場合、1枚の画像からは128次元の局所特徴の集合が抽出される。SIFTとは、スケールスペースを用いて特徴的な局所領域を解析し、そのスケール変化及び回転に不変となる局所特徴を記述する技術である。一方で、SURFの場合、SIFTよりも高速処理が可能であって、1枚の画像から64次元の局所特徴の集合が抽出される。SIFTは、処理コストが高く且つリアルタイムマッチングが困難であるのに対し、SURFは、積分画像を利用することによって処理を高速化している。
また、スマートフォンやタブレットのようなモバイル端末が普及する中で、コンテンツ検索処理に対して、更なる省メモリ化及び高速マッチング化が要求されてきている。特に、拡張現実感(AR(Augmented Reality))の用途における画像認識の技術分野によれば、リアルタイムに処理するべく、SIFTやSURFよりも更に高速にコンテンツを検索することが要求される。そのために、局所特徴抽出アルゴリズムとして、ORB(例えば非特許文献2参照)やFREAK(例えば非特許文献3参照)が注目されている。これは、SIFTやSURFよりも局所特徴を高速に抽出できると共に、局所特徴をコンパクトにすることができる。
局所特徴点に基づいた画像認識では、特徴点同士のマッチングの処理コストが高いため、BoVW(Bag-of-Visual Words)と称されるフレームワークが広く利用されている(例えば非特許文献1又は4参照)。BoVWでは、予め大量の訓練ベクトルの集合から、VW(Visual Words)と称される代表的なベクトルの集合(以下では「コードブック」と称する)を、k-means等のクラスタリングアルゴリズムを用いて生成する。そして、各局所特徴は、最も類似する代表ベクトルに量子化される。同じ代表ベクトルに量子化された局所特徴はマッチしたと判断され、異なる代表ベクトルに量子化された局所特徴はマッチしないと判断される。これによって、データベース中の局所特徴の数に寄らずに、一定時間でのマッチングが可能となる。
また、クエリコンテンツとリファレンスコンテンツとの間の幾何的な整合性を、局所特徴点間のマッチングの結果を用いて検証することによって、高精度な検索結果を得る技術もある(例えば非特許文献5参照)。一般に、BoVWにおける代表ベクトルの数を多くすることによって、認識精度が向上することが知られている。しかしながら、代表ベクトルの数が大きくなるに従って、量子化に必要となる時間が増加し、更に代表ベクトルを保存するためのメモリ使用量が増加するという問題がある。
これに対し、木構造を用いて量子化することによって、量子化の処理時間を短くする技術もある(例えば非特許文献4又は5参照)。
また、残差量子化を用いることによって、メモリ使用量を最小限に抑えつつ、大量の代表ベクトルによって量子化する技術もある(例えば非特許文献6参照)。
更に、残差ベクトルの集合をクラスタリングし、残差ベクトルの分布に応じた残差量子化によって、量子化誤差を低減する技術もある(例えば特許文献3参照)。
尚、残差ベクトルの集合に対して、主成分分析によってモデル化する技術もある(例えば非特許文献7参照)。この技術によれば、主成分分析の後、直積量子化の際に、量子化誤差を低減するための回転行列を算出するものである。
特開2015−201123号公報 特開2014−146207号公報 特開2013−011920号公報
J. Sivic et al., "Video Google: A Text Retrieval Approach to Object Matching in Videos," in Proc. ICCV, 2003. E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, "ORB: An efficient alternative to SIFT or SURF," in Proc. ICCV, 2011. A. Alahi, R. Ortiz, and P. Vandergheynst, "FREAK: Fast Retina Keypoint," in Proc. CVPR, 2012. D. Galvez-Lopez and J. D. Tardos, "Real-time loop detection with bags of binary words," in Proc. of IROS, 2011, pp. 51?58. J. Philbin, O. Chum, M. Isard, J. Sivic, and A. Zisserman, "Object retrieval with large vocabularies and fast spatial matching," in Proc. of CVPR, 2007, pp. 1-8. A. Babenko and V. Lempitsky, "Efficient Indexing of Billion-Scale datasets of deep descriptors," in Proc. of CVPR, 2016. Y. Kalantidis, Y. Avrithis, "Locally Optimized Product Quantization for Approximate Nearest Neighbor Search," CVPR'14.
非特許文献5に記載の技術によれば、全てのコードブックを保存する必要があり、メモリ使用量が大きくなってしまうという問題がある。
また、非特許文献6に記載の技術によれば、異なる分布を持つ残差ベクトルを、同一のコードブックで量子化しているために、量子化誤差が大きくなってしまうという問題がある。
更に、特許文献3の記載の技術によれば、残差ベクトルの集合のクラスタリングの際に、訓練ベクトルを全て実際に量子化する必要があり、代表ベクトルの数を大きくすることができないという問題がある。
そこで、本発明は、データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成することができるプログラム、装置及び方法を提供することを目的とする。
本発明によれば、対象データを、階層的な複数のコードブックを用いて量子化するようにコンピュータを機能させるプログラムであって、
コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
としてコンピュータを機能させることを特徴とする。
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段について、
1次コードブックのK1個の確率モデルを、M個の2次クラスタに初期的に割り当てる初期手段と、
2次クラスタ毎に、当該2次クラスタに含まれる複数の確率モデルから代表確率モデルを生成する生成手段と、
確率モデルを、最も距離が短くなる代表確率モデルに改めて割り当てて、2次クラスタを更新する割当手段と
を有し、生成手段及び割当手段を所定条件まで繰り返す
ようにコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段は、kをM個としたk-meansアルゴリズムよって実行される
ようにコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段について、
1次コードブックの中で、ランダムに選択した代表ベクトルSkの確率モデルを代表確率モデルとして割り当てる選択手段と、
選択されていない代表ベクトルSkの確率モデルの中で、最も距離が短くなる代表確率モデルとの距離に比例する確率で、確率モデルを次の代表確率モデルとして新たに選択する次選択手段と
を有し、次選択手段を代表確率モデルがM個となるまで繰り返す
ようにコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段は、kをM個としたk-means++アルゴリズムによって実行される
ようにコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
確率モデルと代表確率モデルとの間の距離は、KL(Kullback Leibler)ダイバージェンスによって算出される
ようにコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
確率モデルは、多変量ガウス分布、多変量ベルヌーイ分布、多項分布、ディリクレ分布、又は、多変量ラプラス分布のいずれかである
ようにコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
訓練ベクトルの集合は、入力された訓練コンテンツにおける局所特徴の集合であり、
対象データxについて、1次コードブックのいずれかの代表ベクトルSkに量子化し、
対象データxと量子化された代表ベクトルSkとの残差ベクトルを、代表ベクトルSkが割り当てられた2次コードブックのいずれかの代表ベクトルTに量子化する
量子化手段としてコンピュータを機能させることも好ましい。
本発明のプログラムにおける他の実施形態によれば、
入力されたリファレンスコンテンツ及びクエリコンテンツそれぞれについて、局所特徴の集合を抽出する局所特徴抽出手段と、
リファレンスコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストに、局所特徴の情報を記憶する転置インデックス記憶手段と、
クエリコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストを探索し、リストに記憶されている局所特徴に対応したリファレンスコンテンツに対しスコアを累積し、累積されたスコアを類似度としてリファレンスコンテンツを検索する検索手段と
して更にコンピュータを機能させ、クエリコンテンツに類似したリファレンスコンテンツを検索することも好ましい。
本発明によれば、対象データを、階層的な複数のコードブックを用いて量子化する量子化装置であって、
コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
を有することを特徴とする。
本発明によれば、対象データを、階層的な複数のコードブックを用いて量子化する装置のコードブック作成方法であって、
装置は、
コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する第1のステップと、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する第2のステップと、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する第3のステップと
を実行することを特徴とする。
本発明のプログラム、装置及び方法によれば、データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成することができる。即ち、メモリ量と検索精度とのトレードオフを考慮した小さいコードブックを用いて、リファレンスとなる高次元の局所特徴の集合から、クエリとなる局所特徴に類似した局所特徴を検索することができる。
本発明のコードブックを用いた量子化処理を表す概念図である。 本発明におけるコンテンツの検索装置の機能構成図である。 本発明の検索装置における訓練フェーズの説明図である。 代表ベクトルと残差ベクトルとを表す説明図である。 確率モデルの概念図である。 本発明の2次コードブック作成部のフローチャートである。 本発明の検索部によって参照される転置インデックスを表す説明図である。 従来技術におけるコードブックを表す概念図である。 本発明におけるコードブックを表す概念図である。 本発明における確率モデルのクラスタリングを表す概念図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
検索装置は、リファレンスコンテンツの集合から、クエリコンテンツに類似したリファレンスコンテンツを検索する。その際に実行される量子化処理では、階層的な複数のコードブックが用いられる。
検索装置には、訓練コンテンツ、リファレンスコンテンツ及びクエリコンテンツが入力される。ここで、コンテンツは、例えば画像であってもよい。本発明の検索装置は、多数の訓練画像から1次コードブック及び2次コードブックを作成し、クエリ画像に類似するリファレンス画像を検索する。
図1は、本発明のコードブックを用いた量子化処理を表す概念図である。
図1によれば、クエリコンテンツ及びリファレンスコンテンツから導出された局所特徴と、訓練コンテンツから導出された階層型のコードブックとのマッチングを表している。
コードブックは、訓練コンテンツから予め作成されたものであり、1次コードブックと複数の2次コードブックとによって階層化されている。
訓練ベクトルの集合X={x1,x2,・・・,xN}から、1次コードブックSと、M個の2次コードブックT1,T2,・・・,TMとが作成される。また、1次コードブックSの量子化結果となる代表ベクトルに、次に、どの2次コードブックで量子化すべきかを対応付けた割当情報m[k]も作成する。
訓練ベクトルxは、D次元ベクトルであり、n番目の訓練ベクトルをxnと表す。
1次コードブックSは、K1個の代表ベクトルS={S1,S2,・・・,SK1}を記憶し、各代表ベクトルもD次元のベクトルで表現される。
M個の2次コードブックの集合T1,T2,・・・,TMはそれぞれ、K2個の代表ベクトルTm1,Tm2,・・・,TmK2を記憶し、各代表ベクトルもD次元のベクトルで表現される。
割り当て情報m[k](k=1,2,・・・,K1)は、K1個の要素を持つ配列である。これは、1次コードブックでk番目の代表ベクトルに割り当てられたベクトルは、更にm[k]番目の2次コードブックで量子化されることを規定している。
クエリコンテンツの局所特徴と、リファレンスコンテンツの局所特徴とはそれぞれ、コードブックの中で、その距離が最も近い代表ベクトルに紐付けられる。そして、2次コードブックの同一の代表ベクトルに紐付けられた局所特徴同士は、マッチングしたと認識される。
図2は、本発明におけるコンテンツの検索装置の機能構成図である。
図2によれば、検索装置1は、1次コードブック記憶部101と、2次コードブック記憶部102と、局所特徴抽出部11と、1次コードブック作成部121と、確率モデル生成部122と、2次コードブック作成部123と、量子化部13と、転置インデックス記憶部14と、検索部15とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、装置のコードブック作成方法及び量子化方法としても理解できる。
前述した機能構成部は、<訓練フェーズ>、<インデックス構築フェーズ>、<検索フェーズ>の各フェーズに応じて機能する。
<訓練フェーズ>
訓練フェーズによれば、検索装置1は、多数の訓練コンテンツを入力し、訓練コンテンツ毎に局所特徴の集合を抽出する。そして、局所特徴の集合を用いて1次コードブック及び2次コードブックを作成する。
訓練フェーズでは、局所特徴抽出部11と、1次コードブック作成部121と、確率モデル生成部122と、2次コードブック作成部123とが機能する。
<インデックス構築フェーズ>
インデックス構築フェーズによれば、検索装置1は、多数のリファレンスコンテンツ(検索対象のコンテンツ)を入力し、リファレンスコンテンツ毎に局所特徴の集合を抽出する。そして、局所特徴毎に、1次コードブック及び2次コードブックを用いて量子化する。その量子化対象データは、検索用の転置インデックスとして記憶される。
インデックス構築フェーズでは、局所特徴抽出部11と、量子化部13と、転置インデックス記憶部14とが機能する。
<検索フェーズ>
検索フェーズによれば、検索装置1は、クエリコンテンツ(検索キーのコンテンツ)を入力し、クエリコンテンツから局所特徴の集合を抽出する。次に、局所特徴毎に、1次コードブック及び2次コードブックを用いて量子化する。その量子化対象データから、転置インデックスを参照して、最も類似するリファレンスコンテンツを検索する。
検索フェーズでは、局所特徴抽出部11と、量子化部13と、検索部15とが機能する。
以下では、検索装置1の機能構成部毎に、詳述する。
[局所特徴抽出部11]<訓練・インデックス構築・検索フェーズ>
局所特徴抽出部11は、入力された訓練コンテンツ、リファレンスコンテンツ及びクエリコンテンツそれぞれについて、任意の局所特徴抽出アルゴリズムによって局所特徴の集合を抽出する。局所特徴抽出アルゴリズムとしては、回転やスケールの変化にロバストな、従来技術における例えばSIFTやSURF、ORB、FREAKが用いられる。
訓練フェーズの場合、抽出された局所特徴の集合は、1次コードブック作成部121へ出力される。
インデックス構築フェーズ及び検索フェーズの場合、抽出された局所特徴の集合は、量子化部13へ出力される。
図3は、本発明の検索装置における訓練フェーズの説明図である。
[1次コードブック作成部121]<訓練フェーズ>
1次コードブック作成部121は、訓練ベクトルの集合X={x1,x2,・・・,xN}をK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出する。
具体的には、k-meansアルゴリズムを用いて、以下のステップを実行する。
(S1)訓練ベクトルを、K1個の1次クラスタに初期的に割り当てる。
(S2)1次クラスタ毎に、当該1次クラスタに含まれる複数の訓練ベクトルから代表ベクトルSkを生成する。
(S3)訓練ベクトルを、最も距離が短くなる代表ベクトルSkに改めて割り当てて、1次クラスタを更新する。
そして、S2及びS3を、所定条件まで繰り返す。
局所特徴が、バイナリ特徴ベクトルである場合、代表ベクトルを2値化する。具体的には、i番目のクラスタの代表ベクトルが、(vi1,vi2,・・・,viK2)であるとすると、各次元の値が0.5以上であれば"1"、そうでなければ"0"とする。
Sij=1 if vij≧0.5
=0 otherwise
そして、1次コードブック作成部121は、K1個の代表ベクトルS={S1,S2,・・・,SK1}からなる1次コードブックを作成する。作成された1次コードブックは、1次コードブック記憶部101で記憶される。
[確率モデル生成部122]<訓練フェーズ>
確率モデル生成部122は、訓練ベクトルxの集合X={x1,x2,・・・,xN}を1次コードブックを用いて各代表ベクトルSkに割り当てる。そして、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x−Sk)の集合から確率モデルを生成する。
図4は、代表ベクトルと残差ベクトルとを表す説明図である。
図4によれば、クラスタ毎に、代表ベクトルと訓練ベクトルとの間の残差ベクトルが表されている。
図5は、確率モデルの概念図である。
確率モデルは、残差ベクトルをパラメトリックにモデル化したものである。図5によれば、確率モデルは、多変量に対する分布頻度で表されている。
局所特徴が実数特徴ベクトルである場合、確率モデルとして「多変量ガウス分布」が採用され、局所特徴がバイナリ特徴ベクトルである場合、「多変量ベルヌーイ分布」が採用される。このように、本発明によれば、実数特徴ベクトル及びバイナリ特徴ベクトルの両方に適用することができる。
勿論、確率モデルは、これらに限られず、局所特徴に応じて、多項分布、ディリクレ分布、又は、多変量ラプラス分布を採用してもよい。
「多変量ガウス分布」(局所特徴が実数特徴ベクトルである場合)
k番目の1次コードブックの代表ベクトルに対する残差ベクトルを、平均0、分散共分散行列Σkの多変量ガウス分布によってモデル化する。ここで、分散共分散行列Σkは、以下のように表される。
Σk=Ukk T
k:Skに割り当てられた訓練ベクトルxiの残差ベクトルxi−Skの集合
「多変量ベルヌーイ分布」(局所特徴がバイナリ特徴ベクトルである場合)
k番目の1次コードブックの代表ベクトルに対する残差ベクトルを、多変量ベルヌーイ分布によって、以下のようにモデル化する。
k(x)=Πd=1 Dμkd xd(1−μkd1-xd
μkd:k番目の1次コードブックに紐づく残差ベクトルのd次元目のビットが、
"1"となる確率
μkdは、1次コードブックに紐づく残差ベクトルのd次元のビットの平均値によって算出される。
尚、バイナリ特徴ベクトルの場合、残差ベクトルは、入力ベクトルと代表ベクトルとのXORによって算出される。
ベルヌーイ分布とは、確率pで1を、確率q=1-pで0をとる離散確率分布をいう。ベルヌーイ分布に従う確率変数Xについて、平均p、分散pq=p(1-p)となる。「多変量ベルヌーイ分布」は、バイナリ特徴ベクトルxtが生成される確率p(xt|λ)を表現する。
[2次コードブック作成部123]
2次コードブック作成部123は、1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当てる。即ち、ベクトルxの残差ベクトルx−Skの分布が類似している代表ベクトルが、同じクラスタになるように分類する。
そして、2次コードブック作成部123は、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する。作成されたM個の2次コードブックT1〜Mは、2次コードブック記憶部102によって記憶される。
尚、2次コードブック数Mを小さくするほど、残差ベクトルの分布が、クラスタ毎に大きく異なるために、残差ベクトルを量子化する際の量子化誤差が増加し、結果的に近似最近傍検索の精度が悪くなる。一方で、2次コードブック数Mを大きくするほど、コードブックの情報量(メモリ量)が非常に大きくなる。
2次コードブック作成部123における2次クラスタの分類方法として、例えば<k-meansアルゴリズム><k-means++アルゴリズム>の2つがある。
図6は、本発明の検索装置における2次コードブック作成部のフローチャートである。
<k-meansアルゴリズム>
図6(a)によれば、2次コードブック作成部123は、kをM個としたk-meansアルゴリズムよって実行される。
具体的には、以下のステップを実行する。
(S611:初期ステップ)K1個の確率モデルを、M個の2次クラスタに初期的に割り当てる。具体的には、K1個の確率モデルの割当情報m[k](k=1, …, K1)を初期化する。これは、k番目の1次コードブックの代表ベクトルがm[k]番目のクラスタに属していることを表す。この初期化は、m[k]のkにランダムに、1〜Mのラベルを割り当てるものであってもよい。
(S612:生成ステップ)2次クラスタ毎に、当該2次クラスタに含まれる複数の確率モデルから代表確率モデルを生成する。
実数特徴ベクトルに対しては、確率モデルの「多変量ガウス分布」から、代表多変量ガウス分布を生成する。m番目の代表多変量ガウス分布の平均を0、分散共分散行列をΣ'mとすると、Σ'mは、以下のように定義される。
Σ'm=1/βm Σm[k]=mαkΣk
βm=Σm[k]=mαk
バイナリ特徴ベクトルに対しては、確率モデルの「多変量ベルヌーイ分布」から、代表多変量ベルヌーイ分布を生成する。m番目の代表多変量ベルヌーイ分布パラメータをμ'm1,・・・,μ'mDとすると、μ'mdは、以下のように定義される。
μ'md=1/βm Σm[k]=mαkμkd
βm=Σm[k]=mαk
αkは、k番目の1次コードブックの代表ベクトルに割り当てられた訓練ベクトルの数である。m番目のクラスタに割り当てられた確率モデルについて、割り当てられた訓練ベクトルの数を重みとして、重み付き平均によって算出することに相当する。
βmは、正規化項である。
(S613:割当ステップ)K1個の確率モデルを、最も距離が短くなる代表確率モデルに改めて割当てて、2次クラスタを更新する。
更新されたM個の代表確率モデルについて、確率モデルの割当情報m[k](k=1,2,・・・,K1)を更新する。これは、各確率モデルについて、最も類似した代表確率モデルを算出する。この確率モデル間の距離には、KL(Kullback Leibler)ダイバージェンスを用いることが好ましい。KLダイバージェンスとは、相対エントロピーとも称され、分布と分布と間の差の大きさを導出するものである。
実数特徴ベクトルに対しては、k番目の確率モデルfkと、m番目の代表確率モデルgmとの間のKLダイバージェンスDKLは、以下のように算出される。
KL(fk||gm)=1/2[log(|Σ'm|/|Σk|)+tr(Σ'm -1Σk)−d]
バイナリ特徴ベクトルに対しては、k番目の確率モデルと、m番目の代表確率モデルとの間のKLダイバージェンスは、以下のように算出される。
Σd=1 D(μkdlog(μkd/μ'md)+(1−μkd)log((1−μkd)/(1−μ'md)))
そして、S612及びS613を、所定条件まで繰り返す。所定条件としては、例えばKLダイバージェンスが所定値に収束するまでであってもよいし、所定回数まで単に繰り返すものであってもよい。
<k-means++アルゴリズム>
図6(b)によれば、2次コードブック作成部123は、kをM個としたk-means++アルゴリズムによって実行される。
具体的には、以下のステップを実行する。
(S621:選択ステップ)1次コードブックの中で、ランダムに選択した代表ベクトルSkの確率モデルを代表確率モデルとして割り当てる。
(S622:次選択ステップ)選択されていない代表ベクトルSkの確率モデルの中で、最も距離が短くなる代表確率モデルとの距離に比例する確率で、確率モデルを次の代表確率モデルとして新たに選択する。
ここで、「比例する確率」とは、全ての代表確率モデルとの距離が遠い確率モデルほど、高い確率で選択されることを意味する。
そして、S622の次選択ステップを、代表確率モデルがM個となるまで繰り返す。
尚、実数特徴ベクトル及びバイナリ特徴ベクトルに基づく確率モデル間の距離の算出は、前述したk-meansアルゴリズムと同様に、KLダイバージェンスを用いる。
[量子化部13]<インデックス構築・検索フェーズ>
量子化部13は、リファレンスコンテンツの局所特徴と、クエリコンテンツの局所特徴とを、対象データxとして入力する。量子化部13は、対象データxについて、1次コードブックのいずれかの代表ベクトルSkに量子化する。ここで、量子化結果として、1次コードブックの代表ベクトル識別子k'が得られる。次に、対象データxと量子化された代表ベクトルSkとの残差ベクトルを、代表ベクトルSkに割り当てられた2次コードブックのいずれかの代表ベクトルTで量子化する。ここで、量子化結果として、2次コードブックの代表ベクトル識別子l’が得られる。
実数特徴ベクトルについては、k'及びl'は、理想的には、量子化誤差||x−(Sk'+Tm[k']l')||2を最小化するものである。
バイナリ特徴ベクトルについては、k'及びl'は、理想的には、量子化誤差popcnt(x XOR Sk’ XOR Tm[k’]l’)を最小化するものである。
しかしながら、このk'及びl'を厳密にすると計算量が大きくなってしまう。
そのために、本発明によれば、k'の解を、1次コードブックの代表ベクトルのうちxのr近傍に限定する。
即ち、実数特徴ベクトルについては、量子化時にはまず、S1,S2,・・・,SK1から、xとの2乗距離が小さくなる上位r件のk'1,k'2,・・・,k'rを算出し、それらの残差x−Sk'1, x−Sk'2,・・・, x−Sk'rを更に2次コードブックで量子化することによって、k'及びl'を算出する。
また、バイナリ特徴ベクトルについては、量子化時にはまず、S1,S2,・・・,SK1から、xとのハミング距離が小さくなる上位r件のk'1,k'2,・・・,k'rを算出し、それらの残差x XOR Sk'1,Sk'2,・・・,Sk'rを更に2次コードブックで量子化することによって、k'及びl'を算出する。
量子化部13について、リファレンスコンテンツの局所特徴から得られた量子化結果は、転置インデックス記憶部14へ出力する。
また、クエリコンテンツの局所特徴から得られた量子化結果は、検索部15へ出力する。
[転置インデックス記憶部14]
転置インデックス記憶部14は、リファレンスコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストに、局所特徴の情報を記憶する。「転置インデックス」とは、リファレンス局所特徴を、識別値に置き換えたものであり、代表識別値n毎に作成されたリファレンス局所特徴のリストである。
図7は、本発明の検索部によって参照される転置インデックスを表す説明図である。
リファレンスベクトルのメタデータには、何が割り当てられてもよい。例えば、リファレンスベクトルが画像検索における画像特徴量である場合、リファレンスベクトルが所属する画像識別値を割り当てる。メタデータ(リファレンスベクトルの付加情報)には、例えば、コンテンツID(識別子、例えば画像ID)、局所特徴の座標、局所特徴のスケール、局所特徴の角度、局所特徴ベクトル等を保存してもよい。
[検索部15]<検索フェーズ>
検索部15は、クエリコンテンツに類似したリファレンスコンテンツを検索する。検索部15は、クエリコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストを探索する。次に、リストに記憶されている局所特徴に対応したリファレンスコンテンツに対しスコアを累積する。そして、累積されたスコアを類似度としてリファレンスコンテンツを検索する。
ここで、クエリコンテンツの局所特徴とリファレンスコンテンツの局所特徴との距離を算出し、その距離に応じてスコアを算出することができる。例えば、クエリコンテンツの局所特徴とリファレンスの局所特徴との2乗距離をdとすると、スコアとしてexp(-d/a)を利用することができる。ここで、aは調整可能なパラメータである。また、IDF(Inverse Document Frequency)を利用して、各量子化される識別子の出現頻度に応じてスコアを修正してもよい。
以上、詳細に説明したように、本発明のプログラム、装置及び方法によれば、データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成することができる。即ち、メモリ量と検索精度とのトレードオフを考慮した小さいコードブックを用いて、リファレンスとなる高次元の局所特徴の集合から、クエリとなる局所特徴に類似した局所特徴を検索することができる。
図8は、従来技術におけるコードブックを表す概念図である。
図9は、本発明におけるコードブックを表す概念図である。
図10は、本発明における確率モデルのクラスタリングを表す概念図である。
図8のような従来技術によれば、残差ベクトルの集合を確率モデルでモデル化していないために、1次コードブックにおける残差ベクトル(量子化誤差)の集合から直接的に、2次コードブックを作成している。
これに対し、図9のような本発明によれば、残差ベクトルの集合を確率モデルでパラメトリックにモデル化することによって、確率モデルの類似度に応じた2次コードブックを作成している。
特に、図10(a)及び図10(b)を繰り返すことによって、残差ベクトルの確率モデルを最適化することできる。
即ち、本発明によれば、確率モデルの類似度に応じた2次コードブックを作成することによって、全ての1次クラスタに対する2次コードブックを作成しない。
また、1次コーブックの量子化結果に応じて2次コードブックを切り替えることによって、量子化誤差を最小化することができる。
更に、1次コードブックの代表ベクトルの数が大量であっても、残差ベクトルの確率モデルに応じた2次コードブックで残差量子化することができるので、現実的な時間で量子化することができる。
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
1 検索装置
101 1次コードブック記憶部
102 2次コードブック記憶部
11 局所特徴抽出部
121 1次コードブック作成部
122 確率モデル生成部
123 2次コードブック作成部
13 量子化部
14 転置インデックス記憶部
15 検索部

Claims (11)

  1. 対象データを、階層的な複数のコードブックを用いて量子化するようにコンピュータを機能させるプログラムであって、
    前記コードブックを生成するために、
    訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
    訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
    1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
    としてコンピュータを機能させることを特徴とするプログラム。
  2. 前記2次コードブック作成手段について、
    1次コードブックのK1個の確率モデルを、M個の2次クラスタに初期的に割り当てる初期手段と、
    2次クラスタ毎に、当該2次クラスタに含まれる複数の確率モデルから代表確率モデルを生成する生成手段と、
    確率モデルを、最も距離が短くなる代表確率モデルに改めて割り当てて、2次クラスタを更新する割当手段と
    を有し、生成手段及び割当手段を所定条件まで繰り返す
    ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。
  3. 前記2次コードブック作成手段は、kをM個としたk-meansアルゴリズムよって実行される
    ようにコンピュータを機能させることを特徴とする請求項2に記載のプログラム。
  4. 前記2次コードブック作成手段について、
    1次コードブックの中で、ランダムに選択した代表ベクトルSkの確率モデルを代表確率モデルとして割り当てる選択手段と、
    選択されていない代表ベクトルSkの確率モデルの中で、最も距離が短くなる代表確率モデルとの距離に比例する確率で、確率モデルを次の代表確率モデルとして新たに選択する次選択手段と
    を有し、次選択手段を代表確率モデルがM個となるまで繰り返す
    ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。
  5. 前記2次コードブック作成手段は、kをM個としたk-means++アルゴリズムによって実行される
    ようにコンピュータを機能させることを特徴とする請求項4に記載のプログラム。
  6. 確率モデルと代表確率モデルとの間の距離は、KL(Kullback Leibler)ダイバージェンスによって算出される
    ようにコンピュータを機能させることを特徴とする請求項2から5のいずれか1項に記載のプログラム。
  7. 前記確率モデルは、多変量ガウス分布、多変量ベルヌーイ分布、多項分布、ディリクレ分布、又は、多変量ラプラス分布のいずれかである
    ようにコンピュータを機能させることを特徴とする請求項1から6のいずれか1項に記載のプログラム
  8. 前記訓練ベクトルの集合は、入力された訓練コンテンツにおける局所特徴の集合であり、
    対象データxについて、1次コードブックのいずれかの代表ベクトルSkに量子化し、
    対象データxと量子化された代表ベクトルSkとの残差ベクトルを、代表ベクトルSkが割り当てられた2次コードブックのいずれかの代表ベクトルTに量子化する
    量子化手段としてコンピュータを機能させることを特徴とする請求項1から7のいずれか1項に記載のプログラム。
  9. 入力されたリファレンスコンテンツ及びクエリコンテンツそれぞれについて、局所特徴の集合を抽出する局所特徴抽出手段と、
    前記リファレンスコンテンツの各局所特徴について、前記コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストに、前記局所特徴の情報を記憶する転置インデックス記憶手段と、
    クエリコンテンツの各局所特徴について、前記コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストを探索し、リストに記憶されている局所特徴に対応したリファレンスコンテンツに対しスコアを累積し、累積されたスコアを類似度としてリファレンスコンテンツを検索する検索手段と
    して更にコンピュータを機能させ、クエリコンテンツに類似したリファレンスコンテンツを検索する
    ことを特徴とする請求項1から8のいずれか1項に記載のプログラム。
  10. 対象データを、階層的な複数のコードブックを用いて量子化する量子化装置であって、
    前記コードブックを生成するために、
    訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
    訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
    1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
    を有することを特徴とする量子化装置。
  11. 対象データを、階層的な複数のコードブックを用いて量子化する装置のコードブック作成方法であって、
    前記装置は、
    前記コードブックを生成するために、
    訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する第1のステップと、
    訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する第2のステップと、
    1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する第3のステップと
    を実行することを特徴とする装置のコードブック作成方法。
JP2016194343A 2016-09-30 2016-09-30 確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法 Active JP6621206B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016194343A JP6621206B2 (ja) 2016-09-30 2016-09-30 確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016194343A JP6621206B2 (ja) 2016-09-30 2016-09-30 確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法

Publications (2)

Publication Number Publication Date
JP2018055618A true JP2018055618A (ja) 2018-04-05
JP6621206B2 JP6621206B2 (ja) 2019-12-18

Family

ID=61836880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016194343A Active JP6621206B2 (ja) 2016-09-30 2016-09-30 確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法

Country Status (1)

Country Link
JP (1) JP6621206B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020100289A1 (ja) 2018-11-16 2020-05-22 富士通株式会社 類似度計算装置、類似度計算方法および類似度計算プログラム
WO2020226471A1 (en) 2019-05-09 2020-11-12 Samsung Electronics Co., Ltd. Design and adaptation of hierarchical codebooks
US11960455B2 (en) 2021-08-16 2024-04-16 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for building database for retrieval, device and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH066316A (ja) * 1992-06-18 1994-01-14 Matsushita Electric Ind Co Ltd コードブック作成装置及びベクトル量子化装置
JPH0765168A (ja) * 1993-08-31 1995-03-10 Hitachi Ltd 関数近似装置及び方法
US20110299789A1 (en) * 2010-06-02 2011-12-08 Nec Laboratories America, Inc. Systems and methods for determining image representations at a pixel level

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH066316A (ja) * 1992-06-18 1994-01-14 Matsushita Electric Ind Co Ltd コードブック作成装置及びベクトル量子化装置
JPH0765168A (ja) * 1993-08-31 1995-03-10 Hitachi Ltd 関数近似装置及び方法
US20110299789A1 (en) * 2010-06-02 2011-12-08 Nec Laboratories America, Inc. Systems and methods for determining image representations at a pixel level

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020100289A1 (ja) 2018-11-16 2020-05-22 富士通株式会社 類似度計算装置、類似度計算方法および類似度計算プログラム
JPWO2020100289A1 (ja) * 2018-11-16 2021-11-04 富士通株式会社 類似度計算装置、類似度計算方法および類似度計算プログラム
WO2020226471A1 (en) 2019-05-09 2020-11-12 Samsung Electronics Co., Ltd. Design and adaptation of hierarchical codebooks
CN113994600A (zh) * 2019-05-09 2022-01-28 三星电子株式会社 分层码本的设计和适配
EP3915200A4 (en) * 2019-05-09 2022-04-13 Samsung Electronics Co., Ltd. DESIGN AND ADAPTATION OF HIERARCHICAL CODE BOOKS
CN113994600B (zh) * 2019-05-09 2024-07-05 三星电子株式会社 用于无线系统中自适应地提供分层码本的装置和方法
US11960455B2 (en) 2021-08-16 2024-04-16 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for building database for retrieval, device and storage medium
JP7558299B2 (ja) 2021-08-16 2024-09-30 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド 検索データベースを構築するための方法、装置、デバイス及び記憶媒体

Also Published As

Publication number Publication date
JP6621206B2 (ja) 2019-12-18

Similar Documents

Publication Publication Date Title
Guo et al. Quantization based fast inner product search
Bu et al. Learning high-level feature by deep belief networks for 3-D model retrieval and recognition
Song et al. Deep region hashing for efficient large-scale instance search from images
WO2013129580A1 (ja) 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム
EP3020203A1 (en) Compact and robust signature for large scale visual search, retrieval and classification
Ercoli et al. Compact hash codes for efficient visual descriptors retrieval in large scale databases
Zhou et al. Multiple distance-based coding: toward scalable feature matching for large-scale web image search
Yu et al. Efficient object instance search using fuzzy objects matching
Zhang et al. Large-scale aerial image categorization using a multitask topological codebook
JP6621206B2 (ja) 確率モデルに基づく階層的なコードブックを用いて量子化するプログラム、装置及び方法
Wang et al. Beauty product image retrieval based on multi-feature fusion and feature aggregation
Khalid et al. Accurate and efficient shape matching approach using vocabularies of multi-feature space representations
Tu et al. Topic modeling and improvement of image representation for large-scale image retrieval
JP5833499B2 (ja) 高次元の特徴ベクトル集合で表現されるコンテンツを高精度で検索する検索装置及びプログラム
Passalis et al. Spectral clustering using optimized bag-of-features
Magliani et al. Landmark recognition: From small-scale to large-scale retrieval
Zhou et al. RFSEN-ELM: SELECTIVE ENSEMBLE OF EXTREME LEARNING MACHINES USING ROTATION FOREST FOR IMAGE CLASSIFICATION.
JP6601965B2 (ja) 探索木を用いて量子化するプログラム、装置及び方法
Pratima et al. Pattern recognition algorithms for cluster identification problem
Manzo et al. A novel graph embedding framework for object recognition
Orhei et al. Urban landmark detection using A-KAZE features and vector of aggregated local descriptors
Liu et al. Multiview Cross-Media Hashing with Semantic Consistency
Hua et al. Cross-modal correlation learning with deep convolutional architecture
Gangatharan et al. Performance evaluation of multi-instance multi-label classification using kernel based K-nearest neighbour algorithm
Niedermayer et al. Retrieval of binary features in image databases: A study

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191118

R150 Certificate of patent or registration of utility model

Ref document number: 6621206

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150