"入力画像上で2画素から成る規定数のペアを設定し、該規定数のペアのそれぞれについて、該ペア中の画素同士の画素値の大小関係を示すビット値を求めることで、前記規定数のビットから成るビット列を求める第1の計算手段と、前記ビット列を構成する各ビットに対して、該ビットのビット値を計算するために用いたペア中の2画素の画素値から該ビットに対する信頼度を求める第2の計算手段と、前記ビット列を構成する各ビットのうち該各ビットの信頼度に応じて決まるビットのビット値を反転させた類似ビット列を生成する生成手段と、前記第1の計算手段が前記入力画像から求めたビット列及び前記生成手段が求めた類似ビット列を対象ビット列とし、複数の学習用画像のそれぞれについて予め前記第1の計算手段が求めたビット列のうち前記対象ビット列と一致するビット列を特定する特定手段と、前記特定手段が特定したビット列の生成元である学習用画像に関する情報を出力する出力手段とを備えることを特徴とする情報処理装置。前記第2の計算手段は、前記入力画像から前記第1の計算手段が計算したビット列を構成する各ビットに対して、該ビットのビット値を計算するために用いたペア中の画素同士の画素値の差分を、該ビットに対する信頼度として求めることを特徴とする請求項1に記載の情報処理装置。前記生成手段は、前記入力画像から前記第1の計算手段が計算したビット列を構成する各ビットのうち信頼度がより低いビットから順にビット値を反転させ、該反転のたびに得られるビット列を前記類似ビット列として生成することを特徴とする請求項1又は2に記載の情報処理装置。前記特定手段は、それぞれの対象ビット列について、前記複数の学習用画像のそれぞれについて予め前記第1の計算手段が求めたビット列のうち該対象ビット列と一致するビット列に対して得点を与え、前記出力手段は、得点が高い順に1以上のビット列について、該ビット列の生成元である学習用画像に関する情報を出力することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。入力パターンを複数のビットの符号に符号化する符号化手段と、前記符号の各ビットに対する信頼度を計算する計算手段と、前記信頼度に基づいて前記符号に類似する符号を生成する生成手段と、前記符号化手段が生成した符号と前記生成手段が生成した符号とに基づいて前記入力パターンを認識する認識手段とを備えることを特徴とする情報処理装置。情報処理装置が行う情報処理方法であって、前記情報処理装置の第1の計算手段が、入力画像上で2画素から成る規定数のペアを設定し、該規定数のペアのそれぞれについて、該ペア中の画素同士の画素値の大小関係を示すビット値を求めることで、前記規定数のビットから成るビット列を求める第1の計算工程と、前記情報処理装置の第2の計算手段が、前記ビット列を構成する各ビットに対して、該ビットのビット値を計算するために用いたペア中の2画素の画素値から該ビットに対する信頼度を求める第2の計算工程と、前記情報処理装置の生成手段が、前記ビット列を構成する各ビットのうち該各ビットの信頼度に応じて決まるビットのビット値を反転させた類似ビット列を生成する生成工程と、前記情報処理装置の特定手段が、前記第1の計算工程で前記入力画像から求めたビット列及び前記生成工程で求めた類似ビット列を対象ビット列とし、複数の学習用画像のそれぞれについて予め前記第1の計算工程で求めたビット列のうち前記対象ビット列と一致するビット列を特定する特定工程と、前記情報処理装置の出力手段が、前記特定工程で特定したビット列の生成元である学習用画像に関する情報を出力する出力工程とを備えることを特徴とする情報処理方法。情報処理装置が行う情報処理方法であって、前記情報処理装置の符号化手段が、入力パターンを複数のビットの符号に符号化する符号化工程と、前記情報処理装置の計算手段が、前記符号の各ビットに対する信頼度を計算する計算工程と、前記情報処理装置の生成手段が、前記信頼度に基づいて前記符号に類似する符号を生成する生成工程と、前記情報処理装置の認識手段が、前記符号化工程で生成した符号と前記生成工程で生成した符号とに基づいて前記入力パターンを認識する認識手段とを備えることを特徴とする情報処理方法。コンピュータを、請求項1乃至5の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。従来の技術によれば、学習のために一つの登録画像に対して複数のバリエーション画像を作る必要があり、学習時の作業手順処理負荷がかかるという問題があった。また、バリエーション数を増やしたことにより学習結果の情報辞書のサイズが増大し、メモリを圧迫する、という問題があった。辞書のサイズは、登録する画像の種別数とそのバリエーション数の積に従って増大するため、登録画像の種別数が多い場合にはことさら問題があった。また、辞書サイズを小さく維持するためにバリエーション数を制限すると、数少ない学習画像だけで学習されることとなり、検出性能が低下する、という問題があった。たとえば、上記の例で示したような、参照点ペア2点の画素比較結果による特徴量は、照明変動姿勢変動ノイズによって容易に変わってしまう。したがって、認識をロバストにするためには1つのパターン種別について十分に多いバリエーション画像を学習する必要があり、辞書サイズが増大するという課題があった。本発明はこのような問題に鑑みてなされたものであり、学習時の処理において学習パターンに対するバリエーションを多数生成しなくても認識処理のロバスト性を向上させることができる技術を提供することを目的とする。本発明の目的を達成するために、例えば、本発明の情報処理装置は、入力画像上で2画素から成る規定数のペアを設定し、該規定数のペアのそれぞれについて、該ペア中の画素同士の画素値の大小関係を示すビット値を求めることで、前記規定数のビットから成るビット列を求める第1の計算手段と、前記ビット列を構成する各ビットに対して、該ビットのビット値を計算するために用いたペア中の2画素の画素値から該ビットに対する信頼度を求める第2の計算手段と、前記ビット列を構成する各ビットのうち該各ビットの信頼度に応じて決まるビットのビット値を反転させた類似ビット列を生成する生成手段と、前記第1の計算手段が前記入力画像から求めたビット列及び前記生成手段が求めた類似ビット列を対象ビット列とし、複数の学習用画像のそれぞれについて予め前記第1の計算手段が求めたビット列のうち前記対象ビット列と一致するビット列を特定する特定手段と、前記特定手段が特定したビット列の生成元である学習用画像に関する情報を出力する出力手段とを備えることを特徴とする。本発明の構成によれば、学習時の処理において学習パターンに対するバリエーションを多数生成しなくても認識処理のロバスト性を向上させることができる。また、多数のバリエーションを学習する必要がないために、学習処理が高速単純となる。また、学習によって生成される辞書のサイズを少なくすることができる。以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。[第1の実施形態]先ず、情報処理装置として機能する、本実施形態に係るパターン認識装置の構成例について、図1のブロック図を用いて説明する。なお、図1に示した構成は、以下に説明する各処理を実現するための構成の一例に過ぎない。CPU101は、メモリ105やメモリ106に格納されているコンピュータプログラムやデータを用いて処理を実行することで、パターン認識装置全体の動作制御を行うと共に、パターン認識装置が行うものとして後述する各処理を実行する。出力装置103は、パターン認識装置による処理結果を出力するためのもので、図1ではCRTや液晶画面などにより構成される表示装置が示されているが、他の機器であっても良い。例えば、LANやインターネットなどのネットワークを介して外部装置に対して出力する装置であっても良い。入力装置104は、キーボードやマウスなどにより構成されており、ユーザが操作することで、各種の指示をCPU101に対して入力することができる。なお、出力装置103を表示装置とした場合に、出力装置103と入力装置104とを一体化させることで、タッチパネル画面を構成しても良い。また、入力装置104には、後述する様々な画像を取得するための撮像装置を含めるようにしても良い。メモリ105,106には、後述する様々なコンピュータプログラムやデータが格納されている。なお、メモリ105,106はそれぞれ別個のメモリであっても良いし、1つのメモリ内における別個のメモリ領域であっても良い。メモリ105には、学習用画像ファイル110が格納されている。この学習用画像ファイル110には、認識対象となるパターン画像、或いは、画像に対してエッジ抽出処理、エッジ強調処理、その他の各種特徴抽出処理、を行うことで得られる特徴量画像エッジ強度マップなど、が複数格納されている。以下では説明を簡単にするために、学習用画像ファイル110には、認識対象となるパターンの1つの種別につき1つの画像が格納されているものとする。なお、本実施形態は、学習するパターンのバリエーションが少なくても、ロバストな検出を可能にするという趣旨のものであるが、1つのパターン種別につき複数のバリエーションの画像があっても支障はない。学習用画像ファイル110中の各画像には、該画像の種別パターン種別を表す情報が関連づけられている。関連づける方法には様々な方法が考えられ、如何なる方法を採用しても良い。以下では一例として、1から始まり連続するユニークな数字からなる識別子によって画像の種別を表すことにし、その識別子を該画像のファイル名にすることでその画像とパターン種別との関連付けを行っておく。たとえば、パターン種別の識別子が000001であるようなパターンを表す画像のファイルは000001bmpというファイル名で格納するものとする。学習用画像ファイル110以外にメモリ105,106に格納されているそれぞれについては、以下の説明で触れるが、次に列挙する各部は何れも、コンピュータプログラムとしてメモリ105に格納されているものとする。学習部111認識部112符号化部115辞書照合部116結果集計部117類似符号算出部118信頼度算出部119以下では、これらの各部を処理の主体として説明するが、実際には、CPU101がこれらの各部に相当するコンピュータプログラムを実行することで、これらの各部が行うものとして後述する各処理を実行することになる。また、メモリ105,106に格納されているもののうち、これら各部以外については、データ、ファイル、変数として格納されているものである。もちろん、それぞれのデータ、ファイル、変数は適宜統合しても良いし、別個のものとしても良い。これは、上記のコンピュータプログラムについても同様である。なお、CPU101、出力装置103、入力装置104、メモリ105、メモリ106は何れもバス102に接続されており、このバス102を介して互いに通信を行うことができる。次に、本実施形態におけるパターン認識処理の詳細について説明する。機械学習によるパターン認識手法では、パターンを学習する学習過程と、入力される新規パターンを認識する認識過程の2つの過程が存在する。ここでは、はじめに学習過程について説明し、そのあとで認識過程について説明する。<学習処理>本実施形態に係るパターン認識装置が行う学習処理について、同処理のフローチャートを示す図2を用いて説明する。ここでは説明を簡単にするために、図2を用いた以下の説明では、一つの分類木を学習して分類木113を生成する過程について説明する。この処理が学習処理の手順の主要な部分である。後述するように、学習部111は、図2で説明する分類木生成手順を複数回繰り返して複数の分類木を生成し、生成した複数の分類木を結合して辞書114を生成する。複数の分類木をまとめて一つの辞書にする処理の詳細については後述する。ステップS201では、学習部111は、認識するパターンの種別の数図2のフローチャートにおいて用いる画像の数Nid、符号化のビット数Nb規定数を設定する。設定方法は、例えば、ユーザが入力装置104を操作して入力した種別の数、ビット数をそれぞれ変数Nid、Nbに設定するようにしても良いし、予め定められた値をNid、Nbに設定するようにしても良い。なお、ビット数Nbは、後述する方法により符号化されるパターンが互いに識別可能、すなわち、異なるパターンは異なる符号で表されるような値とすることが好ましい。次に、ステップS202では、学習部111は、メモリ106内に、Nbビットのビット列である符号121を設定する。この符号121を構成するNb個のビットのそれぞれのビット値は所定値例えば0に初期化されているものとする。また、学習部111は、Nid×2の要素から成るテーブルである符号種別対応テーブル122をメモリ106内に設定する。このテーブル中の各要素についても適当な値で初期化しているものとする。次に、ステップS203では、学習部111は、画像上に設定する2点の座標位置参照点位置のペアをNb個生成し、生成したNb個のペアを参照2点位置リスト120としてメモリ106内に登録する。Nb個のペアの生成方法については、特定の方法に限るものではない規定の方法に従って生成しても良いしランダムに生成しても良いが、例えば、非特許文献1に開示されている方法を採用しても良い。参照2点位置リスト120の構成例を図3に示す。図3では、参照2点位置リスト120には、2つの座標位置x11,y11及びx21,y21のペアが1つ目のペアとして登録されている。また、x12,y12及びx22,y22のペアが2つ目のペアとして登録されている。このようにして、x11,y11及びx21,y21のペア~x1Nb,y1Nb及びx2Nb,y2Nbのペア、即ちNb個のペアが参照2点位置リスト120に登録されている。次に、ステップS204では、学習部111は、これから学習するパターンの種別を表す変数である変数idを1に初期化する。ステップS205では、学習部111は、変数idの値がNidの値以下であるか否かを判断する。この判断の結果、変数idの値がNidの値以下である場合には、処理はステップS206に進み、変数idの値がNidの値よりも大きい場合は、処理はステップS210に進む。ステップS210では、学習部111は、分類木113を生成してメモリ105に格納する。ステップS210における処理の詳細については後述する。一方、ステップS206では、学習部111は、変数idの値をファイル名とする画像を学習用画像ファイル110から読み出し、画像123としてメモリ106に格納する。例えば、変数idの値が1であれば、000001bmpというファイル名を有する画像を学習用画像ファイル110から読み出して、画像123としてメモリ106に格納する。ステップS207では、符号化部115は、メモリ106に格納されている参照2点位置リスト120を用いて画像123を符号化し、該符号化の結果を符号121としてメモリ106に格納する。上記の通り、符号121は、Nbビットのビット列である。ステップS207における処理の詳細について、図8のフローチャートを用いて説明する。符号化部115においては図2におけるNb符号化するビットの桁数がアクセスできるものとする。符号化部115の処理を実行する際に処理の引数として渡すなどすればよい。ステップS801では、符号化部115は、符号化するビットのビット位置を表す変数bの値を1に初期化する。ステップS802では、符号化部115は、参照2点位置リスト120から、x1b,y1b及びx2b,y2bのペアを読み出す。そして符号化部115は、画像123上の座標位置x1b,y1bにおける画素の画素値L1、座標位置x2b,y2bにおける画素の画素値L2を取得する。ここで、画像123ファイル名はid上の画素位置x、yにおける画素値LをL=IMGid[x、y]と表記する場合、L1,L2は下記の式で表される。L1=IMGid[x1b、y1b]L2=IMGid[x2b、y2b]次に、ステップS803では、符号化部115は、ステップS802で取得した画素値L1と画素値L2とを用いて下記の式を計算することで、符号121のbビット目のビット値bitbを求める。bitb=1L1-L2>0の場合=0L1-L2≦0の場合ステップS804では、符号化部115は、メモリ106内に設定されている符号121を構成する各ビットのうち、bビット目のビット値を、bitbの値に更新する。ステップS805では、符号化部115は、|L1-L2|の値を計算し、計算した値を、Nb個の配列要素を有する配列である画素値差125におけるb番目の配列要素に格納する。図1に示す如く、この画素値差125は、メモリ106内に格納されている。ステップS806では、符号化部115は、変数bの値を1つインクリメントする。ステップS807では、符号化部115は、b≦Nbであるか否かを判断する。この判断の結果、b≦Nbであれば、処理はステップS802に戻り、b>Nbであれば、処理は図2のステップS208に進む。即ち、図8のフローチャートに従った処理を行うことで、画像123からNbビットのビット列である符号121と、Nb個の配列要素を有する画素値差125と、を完成させることができる。即ち、画像上で2画素から成るペアをNbNbは2以上の自然数個設定し、Nb個のペアのそれぞれについて、該ペア中の画素同士の輝度値の大小関係を示すビット値を求めることで、Nbビットから成るビット列を符号121として求める。また、画素値差125中のb番目の配列要素には、符号121におけるbビット目のビットに対応する|L1-L2|の値が格納されている。図2に戻って、次に、ステップS208では、学習部111は、変数idの値と、符号121と、を関連づけて、符号種別対応テーブル122に登録する。符号種別対応テーブル122の構成例を図4に示す。バイナリ符号401として符号121を登録し、パターン識別子402として、変数idの値を登録する。図4の場合、パターン識別子402が000002である画像からは、10010110というバイナリ符号401が得られたことになる。符号種別対応テーブル122に登録されるバイナリ符号とパターン識別子のセットは、画像の数、即ち、認識するパターンの種別の数Nid個ある。図4にはNb=8とした例を記載している。次に、ステップS209では、学習部111は、変数idの値を1つインクリメントする。そして処理はステップS205に進む。このようにして、各画像に対するパターン識別子とバイナリ符号とのセットが登録された符号種別対応テーブル122を完成させる。次に、ステップS210における処理について説明する。ステップS210では、図3に例示した参照2点位置リスト120と、図4に例示した符号種別対応テーブル122と、から分類木113を構成してメモリ105に格納する。分類木113の構成例を図5に示す。分類木113の先頭部分には、パターン種別数501、符号ビット数502、参照2点位置リスト503が格納されており、これらはそれぞれ、上記のNid、Nb、参照2点位置リスト120、である。なお、全ての分類木においてNid、Nbが等しい場合には、この2つの情報は辞書114に1つだけ格納すればよい。ここでは分類木ごとにこれらの情報が異なる場合を鑑み、分類木ごとにこれらの情報を格納している。つづく部分には、0から2Nb-1までのバイナリビット列符号504と、該バイナリビット列に対応するパターン種別情報506へのポインタであるパターン種別ポインタ505と、のセットを格納している。一つの符号に対して複数のパターン種別情報が対応する可能性があるので、一つの符号とパターン種別情報へのポインタとの対応テーブルになっている。符号504の種類はNbビットのビット列の種類だけあるので、このセットは、2Nb個ある。なお、符号504は、昇順にソートされているものとする。符号504に対応するパターン種別ポインタ505は、符号504を求めた画像のパターン種別情報506が格納されている格納位置を示すオフセット509である。パターン種別情報506には、符号504を求めた画像の数であるパターン個数507と、符号504を求めたそれぞれの画像のパターン識別子508が含まれている。分類木113を上記のような構成とすることにより、符号504をキーとして、それに対応する複数のパターン識別子508のリストにアクセスすることができる。ステップS210では、メモリ106中に格納されている符号種別対応テーブル122の内容を解析し、以上説明したデータ構造になるようにパターン種別情報506に書きだす。符号とパターン種別との対応関係は図4の符号種別対応テーブル122に記載されているので、この処理は容易に実行できる。以下、データ末尾まで、符号種別対応テーブル122にある情報の分だけのパターン種別情報506が書き出される。ここで、学習処理の過程で、学習用画像ファイル110内のすべての画像を符号化しても、あり得るすべての符号が出現するわけではなく、符号504によっては、対応するパターン識別子がない場合もある。このような場合は、メモリ106中の符号種別対応テーブル122中にはその符号がバイナリ符号401の部分に登録されないことになる。その場合は、符号に対応するパターン識別子は存在しないので、ステップS210では、図5におけるパターン種別ポインタ505の部分にはNULLをセットする。以上の処理により、学習用画像ファイル110を学習した分類木113がメモリ105中に記録された。先に述べたように、図2で説明した処理は、分類木を1つだけ学習する処理である。学習部111は、符号化するための参照点位置を変えて複数の分類木を生成し、生成した複数の分類木を結合して辞書を生成するものである。以下に、その処理を説明する。複数の分類木を学習するためには、毎回参照点位置を変えて図2で説明した1つの分類木を生成する処理を行えばよい。もちろん、ステップS203における参照2点位置リスト120の生成は、複数回繰り返しても同じものにはならないものとする。繰り返すたびに参照2点位置リスト120の内容が変わるので、同じ画像123に対して異なる符号121が算出され、結果として異なる分類木113が複数生成される。図1では、メモリ105には1つの分類木113しか示していないが、複数個の分類木113を生成するためには、複数個の分類木113を格納するためのエリアをメモリ105内に確保する必要がある。然るに学習部111は、このようにして生成される複数個の分類木113を結合して1つの辞書114を生成する。辞書114の構成例を図6に示す。図6に示す如く、辞書114には、辞書114中に格納される分類木数601と、辞書114内におけるそれぞれの分類木のデータ格納位置を示すオフセット602と、該それぞれの分類木のデータ603と、が格納されている。前述したように、分類木が複数生成される場合には、分類木情報が複数格納されているものとする。なお、ここでは、複数の分類木を学習する例について説明した。しかし、一つの分類木のみを学習するようにしてもよい。即ち、学習する分類木の数についてはここでの本質ではない。辞書114に含まれる分類木のデータ構造は、昇順に並んだ符号121をキーとしたテーブルであり、符号に対応するパターン種別を高速に照合できるという特徴がある。以下で説明する認識手法とは異なる認識手法としては、画像を多次元ベクトルで表し、多次元ベクトル空間上で入力画像と辞書画像の距離が最も近くなる辞書画像を総当たり的に照合しパターンを検出する手法がある。そのような手法に比べると、本手法は一回のテーブル参照のみでパターン検出ができるため非常に高速である。<認識処理>次に、本実施形態に係るパターン認識装置が行う認識処理について、同処理のフローチャートを示す図7を用いて説明する。なお、図7のフローチャートに従った処理を開始する時点で、入力画像124はメモリ106に格納されているものとする。この入力画像124は、ディジタルカメラなどの撮像装置により撮像された画像をメモリ106に入力画像124として格納したものであっても良いし、その入力形態については特定の形態に限るものではない。先ず、ステップS701では、認識部112は、分類木に対するインデックスとして用いる変数tを1に初期化する。次にステップS702では、認識部112は、辞書114に分類木数601として格納されている、辞書114に格納されている分類木の数を読み出し、読み出した数を変数Ntに代入する。ステップS703では、認識部112は、辞書114に格納されている分類木のうち先頭からt番目に格納されている分類木分類木tに対して、該分類木へのオフセットを用いてアクセスする。そして分類木tから、パターン種別数501、符号ビット数502を読み出し、それぞれ変数Nid、Nbに代入する。ステップS704では、認識部112は、分類木tから、参照2点位置リスト503を読み出し、読み出した参照2点位置リスト503を参照2点位置リスト120としてメモリ106に格納する。ステップS705では、符号化部115は、ステップS704で読み出した参照2点位置リスト120を用いて、入力画像124に対して、図8のフローチャートに従った処理を行う。これにより、入力画像124からNbビットから成るビット列である符号121と、Nb個の配列要素を有する配列である画素値差125と、を生成する。ステップS706では、辞書照合部116は、ステップS705で生成された符号121をキーとして辞書114との照合を行う。辞書照合部116における処理に対しては変数tが引数として与えられるものとする。ステップS706における処理の詳細については後述する。ステップS707では、認識部112は、t≦Ntであるか否かを判断する。この判断の結果、t≦Ntであれば、処理はステップS710に進み、t>Ntであれば、処理はステップS708に進む。ステップS710では、認識部112は、変数tの値を1つインクリメントし、処理はステップS703に戻る。一方、ステップS708では、結果集計部117は、認識結果の集計と認識結果の出力とを行う。ステップS708における処理の詳細については後述する。次に、上記のステップS706における処理の詳細について、図9のフローチャートを用いて説明する。本処理にはステップS706より分類木の番号を表す変tが渡されてくる。ステップS901では、類似符号算出部118及び信頼度算出部119により、入力画像124から生成した符号121から類似符号を生成する。そして類似符号算出部118は、符号121及び該生成した類似符号のそれぞれを対象符号列とし、該対象符号と符号121との類似度を求め、該対象符号と、該対象符号と符号121との類似度と、を関連づけて類似符号リスト126に登録する。類似符号リスト126の構成例を図10に示す。図10に示す如く、類似符号リスト126には、類似符号リスト126に登録する対象符号の数1個符号121類似符号の数1001と、対象符号1002と、該対象符号と符号121との類似度1003と、が登録されている。ステップS901における処理の詳細については後述する。ステップS902では、CPU101は、類似符号リスト126に登録した全ての類似度の総和ΣSを求める。ステップS903では、類似符号算出部118は、以下の処理で用いる変数iの値を1に初期化する。ステップS904では、CPU101は、辞書114を参照して、類似符号リスト126中のi番目例えば上からi番目の符号符号iと一致する符号を符号504から特定し、特定した符号に対応するパターン種別ポインタ505を読み出す。ステップS905では、CPU101は、ステップS904で読み出したパターン種別ポインタ505がNULLであるか否かを判断する。この判断の結果、ステップS904で読み出したパターン種別ポインタ505がNULLである場合には、処理はステップS913に進み、ステップS904で読み出したパターン種別ポインタ505がNULLではない場合は、処理はステップS906に進む。ステップS913では、CPU101は、変数iの値を1つインクリメントし、処理はステップS904に進む。一方、ステップS906では、CPU101は、ステップS904で読み出したパターン種別ポインタ505が指し示すパターン種別情報506中のパターン個数507を読み出し、読み出したパターン個数507を変数Npに設定する。ステップS907では、CPU101は、ステップS904で読み出したパターン種別ポインタ505が指し示すパターン種別情報506中のそれぞれのパターン識別子508を特定し、該特定したパターン識別子508に与える認識得点Pを計算する。認識得点Pの計算方法には様々な方法が考え得る。例えば、以下の式を用いて認識得点Pを計算しても良い。P=S/Np×ΣSここでSは、符号iと関連づけて類似符号リスト126に登録されている類似度1003である。この算出方法は、符号の類似度の重みによって得点を算出するものである。式中のS/ΣSは、類似度による重みづけを行っており、1/Npは、1つの符号に対して複数のパターン識別子が対応していた場合の得点の分配を表している。なお、認識得点の算出方法は、この式を用いた方法に限るものではなく、他の方法を用いて認識得点を算出しても良い。例えば、類似度に対する指数関数的な認識得点を与えてもよい。または、認識得点算出に類似度を用いず、常にP=1.0/Npとするなどしてもよい。その場合は、上記の類似度1003は求めなくても良い。次に、ステップS908では、CPU101は、以下の処理で用いる変数jを1に初期化する。ステップS909でCPU101は、ステップS904で読み出したパターン種別ポインタ505が指し示すパターン種別情報506中のパターン識別子508のうちj番目のパターン識別子と、上記認識得点と、を対応づけて認識結果リスト127に登録する。認識結果リスト127の構成例を図13に示す。図13に示す如く、認識結果リスト127は、パターン識別子1301と、パターン識別子1301に対して求めた認識得点1302と、を対応づけて管理する為のものである。ここで、ステップS909で上記j番目のパターン識別子を認識結果リスト127に登録しようとしたときに、このj番目のパターン識別子がすでに認識結果リスト127に登録されていたとする。この場合、当然ながら、このj番目のパターン識別子に対してはすでに認識得点が関連づけて登録されていることになる。この場合、ステップS909では、すでに登録されている認識得点に、ステップS907で求めた認識得点を加算することで、このすでに登録されている認識得点を更新する。もちろん、j番目のパターン識別子がまだ認識結果リスト127に登録されていない場合は、j番目のパターン識別子と認識得点とを認識結果リスト127に新規登録する。ステップS910でCPU101は、j≧Npであるか否かを判断する。この判断の結果、j≧Npであれば、処理はステップS911に進み、j<Npであれば、処理はステップS912に進む。ステップS912では、CPU101は、変数jの値を1つインクリメントし、処理はステップS909に進む。ステップS911では、CPU101は、変数iの値が、類似符号リスト126に登録されている符号数1001以上であるか否かを判断する。この判断の結果、変数iの値が符号数1001以上である場合には、処理はステップS707に進み、変数iの値が符号数1001よりも小さい場合には、処理はステップS913に進む。次に、上記のステップS901における処理について説明する。はじめに模式的な説明をし、続いて具体的な処理手順を説明する。そもそも、ステップS901における処理の意図は以下のようなものである。L1とL2との差が比較的小さい場合に、これらL1とL2とから生成されたビット値は、わずかなノイズや撮影条件変動によってその値でなくなる可能性が高い。したがって、差が比較的小さいL1及びL2から生成されたビット値の信頼度は低いといえる。然るに、符号121において信頼度が低いビット値を反転させて得られる符号については、符号121との類似度は高いとする。一方、L1とL2との差が比較的大きい場合に、これらL1とL2とから生成されたビット値は、少々の変動要因では容易に反転し得ないので、このようなビット値の信頼度は高いといえる。然るに、符号121において信頼度が高いビット値を反転させて得られる符号については、符号121との類似度は低いとする。このような前提に基づいてステップS901で行う処理について、図16に示した具体例を用いて説明する。図16において符号1601は、入力画像124から生成した符号であり、上記の符号121に相当する。画素値差1602は、符号1601の各ビットに対応する|L1-L2|を保持する配列であり、上記の画素値差125に相当する。信頼度算出部119は、画素値差1602の各配列要素|L1-L2|から、符号1601の各ビットに対する信頼度1603を求める。信頼度を求める方法については後述する。そして、類似符号算出部118は、符号1601において閾値よりも低い信頼度のビットを反転させた符号を、類似符号として生成する。図16では、符号1601において最も信頼度の低いビットを反転させた符号を、類似符号1604として生成している。また、符号1601において信頼度が2番目に低いビットを反転させた符号を、類似符号1605として生成している。次に、ステップS901にて行う処理について、同処理のフローチャートを示す図11を用いて説明する。ステップS1101では、信頼度算出部119は、符号121の各ビットに対して信頼度を算出し、各ビットについて算出した信頼度を信頼度128としてメモリ106に格納する。信頼度とは上述の通り、符号121の各ビットが認識処理にとってどの程度信頼できるか、の度合いを示すものである。信頼度が低いビットに対しては、同じパターン種別の画像であってもノイズその他の理由によりそのビット桁が反転しやすい、ということを表している。信頼度128の構成例を図12に示す。図12に示す如く、信頼度128には、符号121の各ビット位置を示す桁番号1201と、該ビット位置に対する信頼度の値1202と、が対応づけて管理されている。例えば、桁番号が1のビットに対する信頼度としてC1が登録されており、桁番号が2のビットに対する信頼度としてC2が登録されており、桁番号がNbのビットに対する信頼度としてCNbが登録されている。信頼度算出部119による各ビットに対する信頼度の算出処理の詳細については後述する。次に、ステップS1102では、類似符号算出部118は、メモリ106中の、図10に例示した類似符号リスト126を初期化する。この初期化では、符号数1001を1に初期化し、対象符号1002と類似度1003のセットから成るリストを初期化する。その際、対象符号1002と類似度1003のセットから成るリストの最上段には、符号121と類似度1のセットを登録する。ステップS1103では、類似符号算出部118は、信頼度128中の信頼度C1~CNbを検索し、最も低い信頼度Cxを最低信頼度として特定する。そして、変数cに最低信頼度Cxの値を設定すると共に、変数bnに最低信頼度Cxを有するビットのビット位置を示すxの値を設定する。なお、最低信頼度として特定された信頼度は、次回からは検索対象から除外する。この場合、次回以降の検索では、信頼度C1~CNbのうちCx以外の信頼度から最低信頼度を特定する。ステップS1104では、類似符号算出部118は、c≦予め定められた閾値Cthであるか否かを判断する。この判断の結果、c>Cthであれば、処理はステップS902に進み、c≦Cthであれば、処理はステップS1105に進む。なお、この閾値Cthは、予め定められた値としているが、信頼度の分布によって適応的に閾値Cthを定めたり、N番目に低い信頼度を閾値Cthとするなどとしてもよい。本ステップでは、変数cが閾値Cthを超えていれば処理を終了する。すなわち、信頼度が閾値Cthを超えているビットを反転させるような類似符号算出の処理は行わない。以下のステップでは、変数cは最大でも閾値Cthであることが保証される。ステップS1105では、類似符号算出部118は、符号121においてbn番目のビットのビット値を反転させた符号を類似符号として生成する。ステップS1106では、類似符号算出部118は、ステップS1105で生成した類似符号と、符号121との類似度を算出する。この類似度を算出する方法には、変数cに応じて指数的に類似度を変化させる算出方法など、様々な方法が考え得るが、例えば、以下の式を計算してこの類似度を求めるようにしても良い。S=Cth-c/Cthこの式で求められる類似度Sは、信頼度が0であるビットを反転させた類似符号に対して1となり、信頼度が閾値Cthであるビットを反転させた類似符号に対しては0となる。すなわち、信頼度が低いビットを反転させてつくった類似符号は元の符号との類似度が高い、ということを表している。信頼度が閾値Cthと同じであるような、すなわち、処理の対象となる信頼度の中で最も信頼度が高いビットを反転して作った類似符号は、類似度がゼロになる。符号121中のあるビットの信頼度が低いということは、そのビットが0であるか1であるかの信頼性が少ないということで、わずかな撮影条件の違いでたやすく別の結果になりえる可能性が高い、ということである。したがって、そのようなビットが反転した類似符号は元の符号との類似度が高くなるように評価する。これに対して、信頼度が高いビットのビット値は、少々のノイズや照明条件のわずかな違いがあっても値が反転する可能性は低い。したがってそのようなビットを反転して生成した類似符号は元の符号との類似度が低いと評価する。以上述べたように、同じ1ビットの相違であっても、そのビットの信頼度によって類似度に重みを付ける。ステップS1107では、類似符号算出部118は、ステップS1105で生成した類似符号と、ステップS1106で求めた類似度と、を対応づけて、メモリ106内の類似符号リスト126に登録すると共に、符号数1001を1つインクリメントする。そして、処理はステップS1103に戻る。なお、ここにあげた例では説明を簡単にするために、ステップS1103において信頼度が低いビットを一つ検索し、検索したビットが反転した類似符号をステップS1105において生成したが、類似符号の生成方法は必ずしもこの方法を用いる必要はない。他の例としては以下のような処理もあり得る。すなわち、ステップS1103では、複数のビットの信頼度の和であって他の組み合わせの複数の信頼度の和と比べて最小となるような値を変数cに格納し、変数bnにはその和の算出に用いたすべてのビットの桁番号をリストとして格納する。そしてステップS1105では、変数bnのリストに格納されたすべての桁番号に対応するビットを反転させた類似符号を生成する。このようにすることで、複数のビットを反転させた類似符号を作ることができる。複数のビットを反転させて類似符号を生成する場合、類似度の算出式は以下のようになる。S=Cth-Σc/Cthここで、Σcは、複数のビットのそれぞれの信頼度の和であり、閾値Cthを超えないものとする。さらに、反転させるビットの数の多さで類似度を下げるようにしてもよい。例えば、反転させるビットの数をkckcは1以上の自然数、重みパラメタをWWは0.0以上1.0未満の実数として、以下の式のようにすればよい。S=Cth-Σc/Cth×W^kc-1上式のようにすることで、複数の組み合わせのビットの反転によって類似度の値が同じになった場合にも、反転させるビットが少ないほうの類似度が高い、とすることができる。次に、信頼度算出部119による信頼度を求める処理について、説明する。符号121を構成する各ビットのビット値は、上記の通り、画素値L1と画素値L2との大小関係に基づいて決まっていた。この時、画素値L1と画素値L2との差分が大きくても小さくても、大小関係が同じであれば、同じビット値となる。しかし、わずかな差でL1-L2>0になった場合と、大きな差でL1-L2>0になった場合とでは、その信頼度が異なると考えられる。つまり、わずかな差でL1-L2>0になったが故にビット値が1となったビットは、照明姿勢ノイズのわずかな変動によってL1-L2≦0になり得てビット値が反転し得るため、その信頼度は低いといえる。然るに、本実施形態では、信頼度は、画素値差125に基づいて決まるものとする。上記のステップS1101における、符号121を構成する各ビットに対する信頼度を求め、求めたそれぞれの信頼度を信頼度128に格納する処理について、同処理のフローチャートを示す図14を用いて説明する。ステップS1401では、信頼度算出部119は、メモリ106中の信頼度128を初期化する。上記の通り、この信頼度128は、図12に示す如く、符号121の各ビット位置を示す桁番号1201と、該ビット位置に対する信頼度の値1202と、を対応づけて管理するためのものであるため、このような配列を信頼度リストとして初期化する。ステップS1402では、信頼度算出部119は、以下の処理で用いる変数iの値を1に初期化する。ステップS1403では、信頼度算出部119は、符号121を構成する各ビットのうちi番目のビットに対する信頼度Ciを以下の式を計算することで求める。Ci=Di/Dmaxここで、Diは、画素値差125中のi番目の配列要素に格納されている値画素値の差分である。Dmaxは、画素値の差分として取り得る最大の値である。この式で算出される信頼度Ciは、Diが小さいほど0に近づき、Diが大きいほど1に近づく値である。たとえば、画素値が0~255の整数である場合を考えると、Dmaxは255であり、Diが0だったときはCiは0となり、Diが255だったときにCiは1となる。次に、ステップS1404では、信頼度算出部119は、信頼度128中のi番目の桁番号1201にiを登録すると共に、i番目の信頼度の値1202に、ステップS1403で求めた信頼度Ciを登録する。ステップS1405では、信頼度算出部119は、i≦Nbであるか否かを判断する。この判断の結果、i≦Nbである場合には、処理はステップS1406に進み、i>Nbである場合には、処理はステップS1102に進む。ステップS1406では、信頼度算出部119は、変数iの値を1つインクリメントし、処理はステップS1403に進む。なお、信頼度の計算方法は、特定の方法に限るものではなく、認識処理における入力画像の符号121の各ビットが照明姿勢ノイズなどの変動要因によってどの程度変わり得るか、どの程度信頼できるか、が定義できればよい。信頼度算出に関するその他の例については第2の実施形態でも説明する。次に、ステップS708で行う、認識結果の集計と認識結果の出力処理について説明する。ステップS708では、メモリ106に格納された認識結果リスト127中に登録されている各認識得点に基づいて、認識結果リスト127から読み出すパターン識別子を決定する。そして決定したパターン識別子を読み出し、読み出したパターン識別子を出力する。例えば、認識得点の高い順に上位NNは1以上の整数個のパターン識別子を読み出して、出力装置103に表示しても良い。もちろん、表示するものはパターン識別子に限るものではなく、パターン識別子によって特定される画像そのものを表示しても良いし、該画像に関する様々な情報を表示しても良い。このNは、予め定めた値であっても良いし、認識得点の分布に応じて決めても良い。以上の説明により、本実施形態によれば、1つのパターン種別に関して1つもしくは少数のパターンを用いて学習を行いながらも、認識処理において入力画像を符号化した符号の各ビットの信頼度にもとづいた類似符号を算出する。これにより、認識のロバスト性を向上できるという効果がある。なお、本実施形態に係るパターン認識装置に適用可能な情報処理装置の構成は、下記の構成の一例に過ぎない。先ず、入力画像上で2画素から成るペアをNbNbは2以上の自然数個設定し、Nb個のペアのそれぞれについて、該ペア中の画素同士の画素値の大小関係を示すビット値を求めることで、Nbビットから成るビット列を求める第1の計算。そして、このビット列を構成する各ビットに対して、該ビットのビット値を計算するために用いたペア中の2画素の画素値から該ビットに対する信頼度を求める第2の計算。そして、このビット列を構成する各ビットのうち該各ビットの信頼度に応じて決まるビットのビット値を反転させた類似ビット列を生成する。そして、入力画像から求めたビット列及び類似ビット列を対象ビット列とし、複数の学習用画像のそれぞれについて予め第1の計算によって求めたビット列のうち対象ビット列と一致するビット列を特定する。そして、この特定したビット列の生成元である学習用画像に関する情報を出力する。[第2の実施形態]第1の実施形態では、入力画像として輝度画像を用いていた然るに第1の実施形態では画素値は輝度値であった。本実施形態では、入力画像として距離画像を用いる。距離画像とは、カメラなどの撮像装置から撮影対象までの距離を画像として表現したものである。距離画像を生成するための距離計測方法は多数知られており、代表的なものとして光切断法、ステレオ法などがある。それぞれの距離計測方法において、距離を計測するとともに計測された距離の値の信頼度を距離画像の画素ごとに定義することが可能である。例えば、特登録02742192経路算出装置日本電信電話株式会社には、光切断法において、投光したスリット光の反射光の受信レベルの大小によって距離画像の画素ごとに値の信頼度が算出できることが述べられている。本実施形態における距離値の信頼度とは、この文献で述べられている距離値の信頼度のこととすればよい。また、特登録03367170障害物検出装置株式会社豊田中央研究所では、ステレオ法において、複数画像間の対応する小領域の相関の状態を調べることによって、距離画像の画素ごとに距離値の信頼度が算出できることが述べられている。本実施形態における距離値の信頼度とは、この文献で述べられている距離値の信頼度のこととすればよい。本実施形態における処理の流れについては概ね第1の実施形態と同様であるが、入力画像として距離画像を取り扱う点、信頼度算出部119による信頼度算出処理では距離値の信頼度を用いて符号121の各ビットに対する信頼度を算出する点、が異なっている。以下、この2点に関して説明する。まず、入力画像が距離画像である点について説明する。距離計測装置を用いて距離画像を生成する方法は従来から知られている。然るに、メモリ106に入力画像124としてこの距離画像を入力することができるのであれば、如何なる構成を採用しても良い。例えば、ネットワークなどを介して外部装置から送信された距離画像を受信し、受信した距離画像を入力画像124としてメモリ106に格納するようにしても良い。また例えば、このような距離計測装置を図1の構成に加え、この距離計測装置によって生成された距離画像をメモリ106に格納するようにしても良い。また、取り扱う画像としては距離画像を用いるが、第1の実施形態で用いた入力画像124と同様に扱ってかまわない。また、図1の学習用画像ファイル110、画像123、入力画像124が距離画像となる。符号化部115による処理では、画素値が距離値となる点以外は第1の実施形態と同様である。また、前述した従来の技術によって、入力画像124として距離画像を取得する際に、距離画像の各画素画素値が距離値とその信頼度とを対応づけた信頼度マップを作成することが可能である。信頼度マップとは、たとえば、距離画像の縦横幅と同じサイズで値が距離値の信頼度であるような2次元配列として表現したものである。このマップによって、距離画像上の参照位置が得られればその参照位置における距離値の信頼度が得られることになる。距離値の信頼度マップは、入力画像124として距離画像を取得した際に作成し、メモリ106に格納しておくものとする。次に、本実施形態に係る信頼度算出部119が行う処理について、同処理のフローチャートを示す図15を用いて説明する。なお本実施形態では、この時点ですでに、距離画像としての入力画像124はメモリ106に格納されているものとする。ステップS1501では、信頼度算出部119は、第1の実施形態と同様にして、メモリ106中の信頼度128を初期化する。ステップS1502では、信頼度算出部119は、以下の処理で用いる変数iの値を1に初期化する。ステップS1503では、信頼度算出部119は、参照2点位置リスト120から、x1i,y1i及びx2i,y2iのペアを読み出す。ステップS1504では、信頼度算出部119は、上記の信頼度マップから、x1i,y1i及びx2i,y2iのそれぞれの画素位置における信頼度を取得する。ステップS1505では、信頼度算出部119は、ステップS1504で取得した2つの信頼度のうち、低い方の信頼度を、信頼度128中のi番目の信頼度の値1202に登録すると共に、信頼度128中のi番目の桁番号1201にiを登録する。なお、ここでは、2つの信頼度のうち低い方を信頼度128に登録しているが、これに限るものではない。例えば、この2つの信頼度からなる何らかの関数によって算出した信頼度を信頼度128に登録するようにしても良い。また、距離値に対する信頼度が距離値に対する誤差分布として得られる場合などは、2点の比較結果が逆転しない確率を計算し、それを符号121における該ビットの信頼度としてもよい。ステップS1506では、信頼度算出部119は、i≦Nbであるか否かを判断する。この判断の結果、i≦Nbである場合には、処理はステップS1507に進み、i>Nbである場合には、処理はステップS902に進む。ステップS1507では、信頼度算出部119は、変数iの値を1つインクリメントし、処理はステップS1503に進む。以上の説明により、本実施形態によれば、入力パターンの値の信頼度が与えられている入力データに関しては、入力データの信頼度から符号の各ビットの信頼度を算出することができるようになる。入力パターンを取得した際の値の信頼度が分かっている場合に有効である。また、第1の実施形態、第2の実施形態の構成は適宜切り替えて用いるようにしてもかまわない。その他の実施例また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。"