【文献】
松島千佳、外3名,Relational Binarized HOG特徴量と Real AdaBoostによるバイナリ選択を用いた物体検出,画像の認識・理解シンポジウム(MIRU2010),日本,2010年 7月
【文献】
松島 千佳、外3名,物体検出のためのRelational HOG特徴量とワイルドカードを用いたバイナリーのマスキング,電子情報通信学会論文誌 (J94−D) 第8号,日本,社団法人電子情報通信学会,2011年,第J94-D巻,N.8,pp.1172-1182
【文献】
後藤雄飛、外3名,近似計算を導入した線形識別器の早期判定による高速な識別,電子情報通信学会論文誌 (J97−D) 第2号,日本,一般社団法人電子情報通信学会,2014年 2月 1日,第J97-D巻,No.2,PP.294-302
【文献】
Kunihiro Goto,外3名,Pedestrian Detection and Direction Estimation by Cascade Detector with Multi-classifiers Utilizing Feature Interaction Descriptor,2011 IEEE Inteligent Vehicles Symposium(IV),2011年,pp.224-229
【文献】
Hui CAO,外4名,Feature Interaction Descriptor for Pedestrian Detection,IEICE TRANSACTIONS on Information and Systems,2010年 9月 1日,Vol.E93-D, No.9,pp.2656-2659
(58)【調査した分野】(Int.Cl.,DB名)
前記特徴統合部は、さらに、入力された前記特徴ベクトルの要素も生成された複数の前記論理演算ビット列とともに統合することを特徴とする請求項1に記載の特徴量変換装置。
前記ビット再配列部は、入力された前記特徴ベクトルの要素に対して、キャリーなしローテートシフトを行うことで前記再配列ビット列を生成することを特徴とする請求項1ないし3のいずれかに記載の特徴量変換装置。
前記認識部は、前記認識における重みベクトルと前記非線形変換特徴ベクトルのとの内積計算において、分布の広い順又はエントロピーの値が高い順に計算をして、前記内積が認識のための所定の閾値より大きくなる、又は小さくなると判断できる時点で、前記内積の計算を打ち切ることを特徴とする請求項13に記載の認識装置。
【背景技術】
【0002】
従来、画像検索、音声認識、文章検索などの多くの分野で機械学習によって対象を認識する認識装置が実用化されている。この認識のために、画像、音声、文章などの情報から特徴量が抽出される。画像から特定の対象を認識する場合には、画像の特徴量として、例えばHOG特徴量を用いることができる(例えば、非特許文献1を参照)。特徴量は、計算機で扱いやすいように特徴ベクトルの形式で扱われる。すなわち、画像、音声、文章などの情報は、対象認識のために特徴ベクトルに変換される。
【0003】
認識装置は、特徴ベクトルを認識モデルに適用することで対象を認識する。例えば、線形識別器の認識モデルは、式(1)で与えられる。
f(x)=w
Tx+b ・・・(1)
ここで、xは特徴ベクトルであり、wは重みベクトルであり、bはバイアスである。線形識別器は、特徴ベクトルxが与えられたときに、f(x)がゼロより大きいか小さいかによって、二値分類を行う。
【0004】
このような認識モデルは、学習用に準備された多数の特徴ベクトルを用いて学習を行うことによって決定される。上記の線形識別器の例では、多数の正例と負例を学習データとして用いることで、重みベクトルw及びバイアスbが決定される。具体的な方法としては、例えば、SVM(support vector machine)による学習を採用できる。
【0005】
線形識別器は、学習及び識別に要する計算が速いため、特に有用である。しかしながら、線形識別器は、線形判別(二値分類)しかできないため、識別能力に乏しいという欠点がある。そこで、特徴量に予め非線形変換をかけておくことで、特徴量の記述能力を向上させる試みがされている。例えば、特徴量の共起性を用いることで、識別能力を強化する試みが行われている。具体的には、FIND(Feature Interaction Descriptor)特徴量がこれに相当する(例えば、非特許文献2を参照)。
【0006】
FIND特徴量は、特徴ベクトルの各要素のすべての組み合わせに関して調和平均をとることで、共起要素とし、特徴量の識別能力を高めるものである。具体的には、D次元の特徴ベクトルx=(x
1,x
2,・・・,x
D)
Tが与えられたときに、すべての要素の組み合わせに対して、式(2)の非線形な計算を行う。
y
ij=x
iy
j/(x
i+y
j) ・・・(2)
このとき、FIND特徴量は、y=(y
11,y
12,・・・,y
DD)
Tで与えられる。
【0007】
例えば、特徴ベクトルxが32次元であるとき、組み合わせの重複を取り除いたFIND特徴量は528次元となる。なお、必要に応じて、yは長さが1となるように正規化されてよい。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、FIND特徴量を求めるには、特徴ベクトルの要素のすべての組み合わせの計算が必要であり、この計算量は次元数に対して二乗のオーダーになる。また、各要素の計算において割り算が発生するため、きわめて遅いという問題がある。さらに、特徴量の次元数が大きいため、メモリの消費量が大きくなるという問題もある。
【0010】
本発明は、上記の問題に鑑みてなされたものであり、特徴量が二値であるときに、特徴量の非線形変換を高速に行う特徴量変換装置を提供することを目的とする。
【0011】
本発明の他の目的は、特徴ベクトルが二値でない場合にも、これを二値に変換する特徴量変換装置を提供することである。
【課題を解決するための手段】
【0012】
本発明の第一の態様の特徴量変換装置は、入力された二値の特徴ベクトルの要素をそれぞれ異なる配列に再配列した複数の再配列ビット列を生成するビット再配列部と、前記複数の再配列ビット列の各々と入力された前記特徴ベクトルとの論理演算をそれぞれ行って、複数の論理演算ビット列を生成する論理演算部と、生成された複数の前記論理演算ビット列を統合して、非線形変換特徴ベクトルを生成する特徴統合部とを備えた構成を有している。この構成により、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【0013】
前記特徴統合部は、さらに、入力された前記特徴ベクトルの要素も生成された複数の前記論理演算ビット列とともに統合してよい。この構成によれば、もとの特徴ベクトルの要素も利用することで、演算量を増大させることなくより記述能力の高い非線形変換特徴ベクトルを得ることができる。
【0014】
前記論理演算部は、前記再配列ビット列と、入力された前記特徴ベクトルとの排他的論理和を計算してよい。排他的論理和は、調和平均と等価であり、「+1」と「−1」の出現確率も同じであるので、この構成によれば、FIND相当の高い特徴記述能力をもつ共起要素を算出できる。
【0015】
前記ビット再配列部は、入力された前記特徴ベクトルの要素に対して、キャリーなしローテートシフトを行うことで前記再配列ビット列を生成してよい。この構成によれば、特徴記述能力の高い共起要素を効率よく算出できる。
【0016】
前記特徴量変換装置は、入力された前記特徴ベクトルがd次元であるときに、d/2個の前記ビット再配列部を備えていてよい。この構成によれば、各ビット再配列部が1ビットずつずらしたキャリーなしローテートシフトを行うことで、複数のビット再配列部によって、入力された特徴ベクトルの要素のすべての組み合わせを生成できる。
【0017】
前記ビット再配列部は、入力された前記特徴ベクトルの要素に対して、ランダムな再配列を行ってよい。この構成によっても、特徴記述能力の高い共起要素を算出できる。
【0018】
前記特徴量変換装置は、入力された実数の特徴ベクトルを二値化して前記二値の特徴ベクトルを生成する複数の二値化部と、前記複数の前記二値化部の各々に対応する複数の共起要素生成部とを備え、前記複数の共起要素生成部の各々は、前記複数のビット再配列部と前記複数の論理演算部とを備え、前記複数の共起要素生成部の各々には、対応する前記二値化部から前記二値の特徴ベクトルが入力され、前記特徴統合部は、複数の前記共起要素生成部の複数の前記論理演算部の各々によって生成された前記論理演算ビット列のすべてを統合して、前記非線形変換ベクトルを生成してよい。この構成によれば、特徴ベクトルの要素が実数である場合にも、特徴記述能力の高い二値の特徴ベクトルを高速に得ることができる。
【0019】
前記二値の特徴ベクトルはHOG特徴量を二値化して得られた特徴ベクトルであってよい。
【0020】
本発明の第二の態様の特徴量変換装置は、入力された二値の特徴ベクトルの要素を再配列して再配列ビット列を生成するビット再配列部と、前記再配列ビット列と入力された前記特徴ベクトルとの論理演算を行って、論理演算ビット列を生成する論理演算部と、前記特徴ベクトルの要素と生成された前記論理演算ビット列を統合して、非線形変換特徴ベクトルを生成する特徴統合部とを備えた構成を有している。この構成によっても、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【0021】
本発明の第三の態様の特徴量変換装置は、入力された二値の特徴ベクトルの要素をそれぞれ異なる配列に再配列した再配列ビット列を生成する複数のビット再配列部と、前記複数のビット再配列部にて生成されたそれぞれの前記再配列ビット列どうしの論理演算を行って、論理演算ビット列を生成する論理演算部と、前記特徴ベクトルの要素と生成された複数の前記論理演算ビット列を統合して、非線形変換特徴ベクトルを生成する特徴統合部とを備えた構成を有している。この構成によっても、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【0022】
本発明の第四の態様の特徴量変換装置は、入力された二値の特徴ベクトルの要素をそれぞれ異なる配列に再配列した再配列ビット列を生成する複数のビット再配列部と、前記複数のビット再配列部にて生成されたそれぞれの前記再配列ビット列どうしの論理演算を行って、それぞれ論理演算ビット列を生成する複数の論理演算部と、生成された複数の前記論理演算ビット列を統合して、非線形変換特徴ベクトルを生成する特徴統合部とを備えた構成を有している。この構成によっても、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【0023】
本発明の学習装置は、上記の特徴量変換装置と、前記特徴量変換装置にて生成された前記非線形変換特徴ベクトルを用いて学習を行う学習部とを備えた構成を有している。この構成によっても、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【0024】
本発明の認識装置は、上記の特徴量変換装置と、前記特徴量変換装置にて生成された前記非線形変換特徴ベクトルを用いて認識を行う認識部とを備えた構成を有している。この構成によっても、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【0025】
上記の認識装置において、前記認識部は、前記認識における重みベクトルと前記非線形変換特徴ベクトルのとの内積計算において、分布の広い順又はエントロピーの値が高い順に計算をして、前記内積が認識のための所定の閾値より大きくなる、又は小さくなると判断できる時点で、前記内積の計算を打ち切ってよい。この構成により、認識処理を高速化できる。
【0026】
本発明の特徴量変換プログラムは、コンピュータを、入力された二値の特徴ベクトルの要素をそれぞれ異なる配列に再配列してそれぞれ再配列ビット列を生成する複数のビット再配列部、前記複数の再配列ビット列の各々と入力された前記特徴ベクトルとの論理演算をそれぞれ行って、それぞれ論理演算ビット列を生成する複数の論理演算部、及び生成された複数の前記論理演算ビット列を統合して、非線形変換特徴ベクトルを生成する特徴統合部として機能させる。この構成によっても、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【発明の効果】
【0027】
本発明によれば、入力された特徴ベクトルの共起要素を、入力された特徴ベクトルの再配列と論理演算によって算出するので、共起要素の演算を高速にできる。
【発明を実施するための形態】
【0029】
以下、本発明の実施の形態の特徴量変換装置について、図面を参照しながら説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【0030】
(第1の実施の形態)
第1の実施の形態の特徴量変換装置は、二値のHOG特徴量である特徴ベクトルが与えられたときに、この特徴ベクトルに対して非線形変換を行うことで、識別力の向上した特徴ベクトル(以下、「非線形変換特徴ベクトル」という。)を得る。例えば、8ピクセル×8ピクセルを1単位とした領域をセルと定義したとき、HOG特徴量は、2×2のセルで構成されるブロックごとに32次元のベクトルとして得られる。また、本実施の形態では、このHOG特徴量が二値化されたベクトルとして得られているものとする。本実施の形態の特徴量変換装置の構成を説明する前に、二値の特徴ベクトルに対して非線形変換を行ってFIND相当の共起要素を有する非線形変換特徴ベクトルを求める原理について説明する。
【0031】
図1は、二値の特徴ベクトルの要素の例を示す図である。特徴ベクトルの各要素は、「+1」か「−1」の値をとる。
図1において、縦軸は各要素の値を示しており、横軸は要素数(次元数)を示している。
図1の例では、要素数は32である。
【0032】
FIND特徴量を求める場合には、これらの要素を用いて、式(2)による調和平均を計算する。
a×b/(|a|+|b|) ・・・(2)
ここで、a、bは各要素の値(「+1」か「−1」)である。a、bは、「+1」又は「−1」のいずれかであるので、その組み合わせは4通りに限られる。よって、特徴ベクトルの要素が「+1」か「−1」の二値である場合には、この調和平均はXORと等価になる。
【0033】
図2は、XORと調和平均との関係を示す表である。
図2に示すように、XORと調和平均との関係は、(−1/2)×XOR=調和平均という関係にある。よって、「+1」及び「−1」に二値化された特徴量については、それらのすべての組み合わせの調和平均を求める代わりに、それらのすべての組み合わせのXORを求めても、FIND特徴量と同等に識別力が向上した特徴量に変換できる。そこで、本実施の形態の特徴量変換装置は、「+1」及び「−1」の値をとる二値の特徴ベクトルに対して、それらの組み合わせのXORをとることで、識別力を向上させる。
【0034】
図3は、「1」及び「−1」の値をとる二値の特徴ベクトルのすべて要素の組み合わせのXORを示す表である。
図3では、図の簡略化のために、二値の特徴ベクトルの次元数が8である場合を示している。1行目の数列及び1行目の数列は特徴ベクトルである。
図3の例では、特徴ベクトルは(+1,+1,−1,−1,+1,+1,−1,−1)である。
【0035】
式(2)から明らかなように、aとbとはこれを入れ替えても調和平均は変わらないため、
図3の表の太線で囲った部分が、この特徴ベクトルの要素のすべての組み合わせのXORのうちの重複部分を除いた部分となる。よって、本実施の形態では、この部分を共起要素として採用する。なお、同じ要素同士によるXORは必ず「−1」となるので、本実施の形態ではこれらを共起要素として採用しない。
【0036】
本実施の形態のもとの特徴ベクトルの要素と、
図3の太線で囲った部分の要素(共起要素)とを並べるとFIND相当の特徴量が得られる。このとき、もとの特徴ベクトルにキャリーなしローテートシフトを行って各要素同士のXORを計算することで、高速に共起要素を計算できる。
【0037】
図4は、キャリーなしローテートシフトによる共起要素の計算を示す図である。もとの特徴ベクトルのビット列100を右に1ビットシフトして、最右のビットは1ビット目(最左)に持ってくることでキャリーなしローテートシフトを行って、再配列ビット列101を用意する。ビット列100と再配列ビット列101のXORをとると、論理演算ビット列102が得られる。この論理演算ビット列102が共起要素となる。
【0038】
図5に再び二値の特徴ベクトルのすべて要素の組み合わせのXORを示す。
図4の論理演算ビット列102は、
図5において太枠で囲った部分に相当する。要素E81は、要素E18と同じである。
【0039】
図6は、キャリーなしローテートシフトによる共起要素の計算を示す図である。もとの特徴ベクトルのビット列100を右に2ビットシフトして、最右の2ビットは1ビット目及び2ビット目にシフトすることでキャリーなしローテートシフトを行って、再配列ビット列201を用意する。ビット列100と再配列ビット列201のXORをとると、論理演算ビット列202が得られる。この論理演算ビット列202が共起要素となる。
【0040】
図7に二値の特徴ベクトルのすべて要素の組み合わせのXORを示す。
図6の論理演算ビット列202は、
図7において太枠で囲った部分に相当する。要素E71、E82は、要素E17、E28とそれぞれ同じである。
【0041】
図8は、キャリーなしローテートシフトによる共起要素の計算を示す図である。もとの特徴ベクトルのビット列100を右に3ビットシフトして、最右の3ビットは1ビット目2ビット目、及び3ビット目にシフトすることでキャリーなしローテートシフトを行って、再配列ビット列301を用意する。ビット列100と再配列ビット列301のXORをとると、論理演算ビット列302が得られる。この論理演算ビット列302が共起要素となる。
【0042】
図9に二値の特徴ベクトルのすべて要素の組み合わせのXORを示す。
図8の論理演算ビット列302は、
図9において太枠で囲った部分に相当する。要素E61、E72、E83は、要素E16、E27、E38とそれぞれ同じである。
【0043】
図10は、キャリーなしローテートシフトによる共起要素の計算を示す図である。もとの特徴ベクトルのビット列100を右に4ビットシフトして、右側の4ビットは1ビット目、2ビット目、3ビット目、4ビット目にシフトすることでキャリーなしローテートシフトを行って、再配列ビット列401を用意する。ビット列100と再配列ビット列401のXORをとると、論理演算ビット列402が得られる。この論理演算ビット列402が共起要素となる。
【0044】
図11に二値の特徴ベクトルのすべて要素の組み合わせのXORを示す。
図10の論理演算ビット列402は、
図11において太枠で囲った部分に相当する。要素E51、E62、E73、E81は、それぞれ要素E15、E26、E37、E48と同じであり、いずれか一方は不要であるが、計算の都合上、これをこのまま用いることとする。
【0045】
図4、
図6、
図8、
図10の計算を行うことで、
図3において太線で囲った部分の要素がすべて計算できることになる。即ち、ビット数が8である特徴ベクトルの共起要素の計算は、4回のキャリーなしローテートシフト及びXORの計算によって得ることができる。同様に、二値の特徴ベクトルのビット数(次元数)が32である場合には、16回のキャリーなしローテートシフト及びXORの計算によって得ることができ、一般的には、二値の特徴ベクトルのビット数(次元数)がdである場合には、d/2回のキャリーなしローテートシフト及びXORの計算によって得ることができる。
【0046】
特徴量変換装置は、上記のようにして求めた共起要素に、もとの特徴ベクトルの要素を加えて、非線形変換特徴ベクトルを得る。よって、32次元の二値の特徴ベクトルを変換すると、得られる非線形変換特徴ベクトルの次元数は、32×16+32=544次元となる。以下では、上記のような特徴ベクトルの変換を実現する特徴量変換装置の構成を説明する。
【0047】
図12は、本発明の実施の形態の特徴量変換装置の構成を示すブロック図である。特徴量変換装置10は、N個のビット再配列器111〜11Nと、ビット再配列器と同数(N個)の論理演算器121〜12Nと、特徴量統合器13を備えている。これらのビット再配列器111〜11N、論理演算器121〜12N、及び特徴量統合器13の一部又は全部は、コンピュータが特徴量変換プログラムを実行することによって実現されてよく、又はハードウェアによって実現されてもよい。
【0048】
本実施の形態では、特徴量変換装置10に、変換すべき特徴量として、二値化された特徴ベクトルが入力される。特徴ベクトルは、N個のビット再配列器111〜11N及びN個の論理演算器121〜12Nにそれぞれ入力される。N個の論理演算器121〜12Nにはさらに対応するビット配列器111〜11Nの出力が入力される。
【0049】
ビット再配列器111〜11Nは、入力された二値の特徴ベクトルに対して、キャリーなしローテートシフトによる再配列を行って、再配列ビット列を生成する。具体的には、ビット再配列器111は、特徴ベクトルを右に1ビットのキャリーなしローテートシフトを行い、ビット再配列器112は、特徴ベクトルを右に2ビットのキャリーなしローテートシフトを行い、ビット再配列器113は特徴ベクトルを右に3ビットのキャリーなしローテートシフトを行い、ビット再配列器11Nは特徴ベクトルを右にNビットのキャリーなしローテートシフトを行う。
【0050】
本実施の形態では、入力される二値の特徴ベクトルをd次元とすると、N=d/2とする。これにより、特徴ベクトルのすべての要素のすべての組み合わせについてXORを計算することができる。
【0051】
論理演算器121〜12Nは、それぞれ対応するビット再配列器111〜11Nから出力された再配列ビット列ともとの特徴ベクトルのビット列とのXORを計算する。具体的には、論理演算器121は、ビット再配列器111から出力された再配列ビット列ともとの特徴ベクトルのビット列とのXORを計算し(
図4参照)、論理演算器122は、ビット再配列器112から出力された再配列ビット列ともとの特徴ベクトルのビット列とのXORを計算し(
図6参照)、論理演算器123は、ビット再配列器113から出力された再配列ビット列ともとの特徴ベクトルのビット列とのXORを計算し(
図8参照)、論理演算器12Nは、ビット再配列器11Nから出力された再配列ビット列ともとの特徴ベクトルのビット列とのXORを計算する。
【0052】
特徴統合器113は、もとの特徴ベクトルと、論理演算器121〜12Nからの出力(論理演算ビット列)を並べて、それらを要素とする非線形変換特徴ベクトルを生成する。上述のように、入力される特徴ベクトルが32次元であるとき、特徴統合器113で生成される非線形変換特徴ベクトルは544次元となる。
【0053】
以上のように、本実施の形態の特徴量変換装置10によれば、二値化された特徴ベクトルの要素にそれらの共起要素(論理演算ビット列の要素)を付け足して特徴ベクトルの次元を増加させるので、特徴ベクトルの識別力を向上できる。
【0054】
また、本実施の形態の特徴量変換装置10は、もとの特徴ベクトルの要素が「+1」及び「−1」であるのでFIND特徴量のようにそれらの調和平均を共起要素とすることと各要素のXORを共起要素とすることが等価であることに着目して、各要素のすべての組み合わせのXORを計算して、それらを共起要素とするので、共起要素の計算を高速に行うことができる。
【0055】
さらに、本実施の形態の特徴量変換装置10は、各要素のXORを計算するために、もとの特徴ベクトルのビット列と、それに対してキャリーなしローテートシフトを行ったビット列とのXORを計算するので、計算機のレジスタの幅がもとの特徴ベクトルのビット数(XORの計算の数)以下である場合には、このXORの計算を同時に行うことができ、従って共起要素の計算を高速に行うことができる。
【0056】
(第2の実施の形態)
次に、第2の実施の形態として、HOG特徴量が二値ベクトルではなく、実数ベクトルとして得られている場合について、それを識別力の高い二値ベクトルに変換する特徴量変換装置について説明する。
【0057】
図13は、画像の1ブロック分のHOG特徴量とそれを二値化した結果を示す図である。本実施の形態のHOG特徴量は、32次元の特徴ベクトルとして得られる。
図13の上段は、この特徴ベクトルの各要素を示しており、縦軸は各要素の大きさ、横軸は要素数を示している。
【0058】
各要素は、二値化されて、下段の二値化された特徴ベクトルが得られる。具体的には、各要素のレンジの所定の位置に二値化のための閾値を設け、要素の値が設定された閾値以上である場合は、その要素を「+1」とし、要素の値が設定された閾値より小さい場合は、その要素を「−1」とする。なお、各要素のレンジはそれぞれ異なるため、要素ごとに異なる閾値(32種類)が設定される。特徴ベクトルの32個の実数の要素をそれぞれ二値化することで、32個の要素を持つ二値化された特徴ベクトル(32ビット)に変換できる。
【0059】
ここで、多重閾値を用いることによって、特徴ベクトルの特徴記述能力を強化(情報量を増大)させることができる。即ち、k種類の異なる閾値を設定して、各閾値について、
図13に示した二値化を行うことで二値化された特徴ベクトルの次元数を増やすことが可能である。
【0060】
図14は、多重閾値による特徴記述能力の強化を説明する図である。この例では、4種類の閾値を用いて二値化を行っている。32次元の実数ベクトルの各要素が、そのレンジの20%位置を閾値として二値化されて、32ビット分の要素が生成される。同様に、32次元の実数ベクトルの各要素が、そのレンジの40%位置、60%位置、80%位置をそれぞれ閾値として二値化されて、各々32ビット分の要素が再生される。これらの要素を統合すると、二値化された128次元の特徴ベクトル(128ビット)が得られる。
【0061】
特徴ベクトルが実数ベクトルとして与えられた場合に、
図14に示すように多重閾値による二値化を行って特徴ベクトルの特徴記述能力を向上させた上で、第1の実施の形態として説明した特徴量変換装置10によって非線形変換を行い、さらに情報量を増加させることができる。
【0062】
ここで、HOG特徴量の二値化を高速化する工夫について説明する。一般に、HOG特徴量はブロック単位で長さを1に正規化しなければならない。この正規化によって、明るさに対して頑健(ロバスト)になるからである。
【0063】
正規化前の32次元の実数のHOG特徴量を
【数1】
とおく。また、正規化後の32次元の実数のHOG特徴量を
【数2】
とおく。このとき、
【数3】
である。
【0064】
二値化後の32次元のHOG特徴量を
【数4】
とする。このとき、
【数5】
である。
【0065】
この二値化は、平方根の演算、及び割り算が一度ずつ発生するため、非常に遅い。そこで、HOG特徴量が非負であることに着目し、上記の不等式
【数6】
の両辺を二乗し、左辺の分母を右辺に移項して、下式を得る。
【数7】
【0066】
このように変形することで、平方根の演算、及び割り算を行うことなく、下式によって実数のHOG特徴量を二値化することができる。
【数8】
【0067】
ここで、例えば、レンジの20%位置を閾値として二値化した結果「−1」(閾値より小さい)と判断された要素は、レンジの40%位置、60%位置、80%位置を閾値として二値化した場合にも当然に「−1」となる。この意味で、多重閾値による二値化によって得られた128ビットの二値化ベクトルは冗長な要素を含んでいる。従って、この128ビットの二値化ベクトルをそのまま第1の実施の形態の特徴量変換装置10に適用して共起要素を求めることは効率的でない。そこで、本実施の形態では、このような冗長性を軽減してより効率よく共起要素を求めることができる特徴量変換装置を提供する。
【0068】
図15は、本実施の形態の特徴量変換を説明する図である。本実施の形態の特徴量変換装置は、実数ベクトルとして得られている特徴ベクトルを、k種類の異なる閾値で二値化する。
図15の例では、レンジの20%位置、40%位置、60%位置、80%位置の4種類の閾値でもって、32次元の実数ベクトルをそれぞれ二値化することで、それぞれ32個の要素を持つビット列を得る。ここまでは、
図14の例と同様である。
【0069】
本実施の形態の特徴量変換装置では、各閾値によって得られたビット列を統合する前に、それらのビット列を用いて、それぞれ共起要素を求める。これによって、
図15に示すように、各32ビットのビット列から544ビットのビット列を得ることができる。最終的には、これらの4つのビット列を統合して、2176ビットの二値化された非線形変換特徴ベクトルが得られる。
【0070】
図16は、本実施の形態の特徴量変換装置の構成を示すブロック図である。特徴量変換装置20は、N個の二値化器211〜21Nと、二値化器と同数(N個)の共起要素生成器221〜22Nと、特徴量統合器23を備えている。これらの二値化器211〜21N、共起要素生成器221〜22N、及び特徴量統合器23の一部又は全部は、コンピュータが特徴量変換プログラムを実行することによって実現されてよく、又はハードウェアによって実現されてもよい。
【0071】
本実施の形態では、特徴量変換装置20に実数の特徴ベクトルが入力される。特徴ベクトルは、N個の二値化器211〜21Nにそれぞれ入力される。二値化器211〜21Nは、それぞれ異なる閾値で実数の特徴ベクトルを二値化する。二値化された特徴ベクトルは、それぞれ対応する共起要素生成器221〜22Nに入力される。
【0072】
共起要素生成器221〜22Nは、それぞれ、第1の実施の形態で説明した特徴量変換装置10と同じ構成を有している。すなわち、各共起要素生成器221〜22Nは、複数のビット再配列器111〜11Nと、複数の論理演算器121〜12Nと、特徴統合器13を備え、キャリーなしローテートシフト及びXOR演算によって共起要素を算出し、それらと入力されたビット列とを統合する。
【0073】
各共起要素生成器221〜22Nに32ビットのビット列が入力されると、各共起要素生成器221〜22Nからはそれぞれ544ビットのビット列が出力される。特徴統合器23は、共起要素生成器221〜22Nからの出力を並べて、それらを要素とする非線形変換特徴ベクトルを生成する。上述のように、入力される特徴ベクトルが32次元であるとき、特徴統合器213で生成される特徴ベクトルは2176次元(2176ビット)となる。
【0074】
以上のように、本実施の形態の特徴量変換装置20によれば、特徴量が実数ベクトルとして得られた場合にも、それを二値化するとともにその二値化ベクトルの情報量を多くすることができる。
【0075】
第1の実施の形態の特徴量変換装置10及び第2の実施の形態の特徴量変換装置20は、多数の学習用データから認識モデルを決定する際に、学習用データとして入力される特徴ベクトルに対して上記の非線形変換を行って、非線形変換特徴ベクトルを取得する。この非線形変換特徴ベクトルが、学習装置によるSVM等による学習処理に用いられて、認識モデルが確定する。すなわち、特徴量変換装置10、20は、学習装置に用いられ得る。また、特徴量変換装置10、20は、認識モデルが確定した後に、認識を行うべきデータが学習用データと同様の形式の特徴ベクトルとして入力されたときにも、その特徴ベクトルに対して上記の非線形変換を行って非線形変換特徴ベクトルを取得する。この非線形変換特徴ベクトルが、認識装置による線形識別等に用いられて、認識結果が得られる。すなわち、特徴量変換装置10、20は、認識装置に用いられ得る。
【0076】
なお、論理演算器121〜12Nでは、必ずしも論理演算としてXORを計算しなくてもよく、例えばANDやORを計算してもよい。但し、上述のように、XORはFIND特徴量を求める際の調和平均と等価であり、かつ、
図2の表から明らかなように、特徴ベクトルが任意である場合には、XORの値として「+1」と「−1」とが等確率で出現するため、共起要素のエントロピーが高くなり(情報量が多くなり)、非線形変換特徴ベクトルの記述能力が向上するので、論理演算器121〜12NがXORを計算することは有利である。
【0077】
また、特徴量変換装置10及び共起要素生成器221〜22Nは、特徴ベクトルの次元数dに対して、d/2個のビット再配列器111〜11Nを備えていたが、ビット再配列器の個数は、これより少なくてもよく(N=1でもよく)、これより多くてもよい。また、論理演算器121〜12Nの個数も、d/2より少なくてもよく(N=1でもよく)、d/2より多くてもよい。
【0078】
また、ビット再配列器111〜11Nは、それぞれもとの特徴ベクトルのビット列に対してキャリーなしローテートシフトをすることで新たなビット列を生成したが、各再配列器111〜11Nは、例えばもとの特徴ベクトルのビット列をランダムに並び替えることで新たなビット列を生成してもよい。但し、シフトなしキャリーローテートは、最小のビット数ですべての組み合わせを網羅できるとともに、ロジックがシンプルで処理速度が速いという点で有利である。
【0079】
また、論理演算器121〜12Nは、もとの特徴ベクトルのビット列とビット再配列器で再配列されたビット列との論理演算を行ったが、一部又はすべての論理演算器が、ビット再配列器で再配列されたビット列どうしの論理演算を行ってもよい。このとき、ビット再配列器で得られるビット列の次元数ともとの特徴ベクトルの次元数とが異なっていてもよい。また、二値化器211〜21Nの入力と出力とで次元が異なっていてもよい。さらに、特徴統合器13は、もとの特徴ベクトルの要素も用いて非線形変換特徴ベクトルを生成したが、もとの特徴ベクトルは用いなくてもよい。
【0080】
また、上記の第2の実施の形態では、各共起要素生成器221〜22Nが第1の実施の形態の特徴量変換装置10と同様の構成を有し、すなわち複数のビット再配列器111〜11N、複数の論理演算器121〜12N、及び特徴統合器13を備えていたが、各共起要素生成器221〜22Nが、特徴統合器13を備えずに、複数の論理演算器121〜12Nから出力される複数の論理演算ビット列を直接特徴統合器23に出力して、特徴統合器23がこられを統合して非線形変換特徴ベクトルを生成してもよい。
【0081】
また、上記の第1及び第2の実施の形態では、画像の識別を行う例を説明したが、識別の対象は音声、文章等の他のデータであってもよい。また、認識処理は線形識別ではない他の認識処理であってもよい。
【0082】
また、上記の第1及び第2の実施の形態では、複数のビット再配列器111〜11Nがそれぞれ再配列ビット列を生成することで複数の再配列ビット列を生成し、複数の論理演算器121〜12Nがそれぞれ論理演算を行うことで、複数の再配列ビット列の各々ともとの特徴ベクトルのビット列とのXORを計算した。これらの複数のビット再配列器111〜11N、複数の論理演算器121〜12Nは、それぞれ本発明のビット再配列部及び論理演算部に相当する。本発明のビット再配列部及び論理演算部は、上記の実施の形態に限られず、例えば、ソフトウェアの処理によって複数の再配列ビットの生成及び複数の論理演算を行ってもよい。
【0083】
次に、本発明の実施の形態の特徴量変換装置を用いた実施例を説明する。
図17は、比較例のプログラムコードであり、
図18は実施例のプログラムコードである。比較例は、32次元の実数の要素を持つ特徴量をFIND特徴量に変換するプログラムである。実施例は、32次元の二値化された要素を持つ特徴量に対して、第1の実施の形態の特徴量変換装置10によって非線形変換を行うプログラムである。以下、説明の便宜を図るため、kは二値化の閾値の段階数である。
【0084】
比較例及び実施例のプログラムによって、同一の擬似データを変換した。その結果、比較例では、1ブロックあたりの計算時間は、7212.71ナノ秒となった。これに対して、実施例で、同一の擬似データを変換した場合の1ブロックあたりの計算時間は、k=1のときに22.04ナノ秒(比較例の327.32倍の速度)、k=2のときに33.20ナノ秒(比較例の217.22倍の速度)、k=3のときに42.14ナノ秒(比較例の171.17倍の速度)、k=4のときに53.76ナノ秒(比較例の134.16倍の速度)となった。このように、実施例の非線形変換は、比較例と比較して十分に高速であった。
【0085】
図19は、学習によって認識モデルを生成した後に認識装置にて認識を行ったときの誤検出と検出率との関係を示すグラフである。横軸は誤検出を示し、縦軸は検出率を示している。認識装置においては、誤検出が小さく、かつ検出率が高いことが望ましい。即ち、
図19のグラフでは、左上の角に近いグラフほど認識性能が高い。
【0086】
図19において、破線は、Dalal氏のオリジナルの実装によるHOG特徴量をそのまま用いて学習及び認識を行った場合のグラフであり、一点鎖線は、Cパラメータを最適にチューニングして得られたFIND特徴量を用いて学習及び認識を行った場合のグラフであり、実線は、実施例を示しており、具体的には、k=4として本発明の第2の実施の形態によって得られた非線形変換特徴ベクトルを用いて学習及び認識を行った場合のグラフである。
【0087】
図19から明らかなように、FIND特徴量及び実施例は、HOG特徴量をそのまま用いた場合と比較して、認識性能が高い。実施例は、二値化をしているのでFIND特徴量よりも認識性能が劣るが、その劣化は僅かである。以上の結果から、本発明の実施の形態によれば、FIND特徴量と比較して、処理速度は格段に向上する一方で、認識性能はほとんど劣らないことが確認された。
【0088】
本発明のさらなる実施の形態を説明する。本実施の形態は、実数の特徴量をk種類の閾値で二値化した場合における識別器での認識をカスケード処理によって高速化する。実数の特徴量Xをk種類の閾値で二値化して得られるベクトルを、
【数9】
とおく。識別などの目的の場合には、下式のw
Tbを計算し、閾値Thと比較するという操作が行われる。ここで、wは識別のための重みベクトルである。
【数10】
【0089】
例えば、k=4で、b
1は20%、b
2は40%、b
3は60%、b
4は80%の位置で二値化されているものとする。このとき、明らかにb
2及びb
3は、b
1及びb
4よりもエントロピーが高くなる。従って、w
2Tb
2及びw
3Tb
3は、w
1Tb
1及びw
4Tb
4よりも広い値の分布を持つことになる。
【0090】
これに着目し、本実施の形態では、w
2Tb
2、w
3Tb
3、w
1Tb
1、w
4Tb
4という順序で計算し、途中でw
Tbが所定の閾値Thよりも確実に大きくなる、もしくは小さくなると判断できる場合は、その時点で処理を打ち切る。これにより処理が高速化できる。すなわち、カスケードの順序は、w
iTb
iの分布の広い順、もしくはエントロピーの値が高い順に並べる。