以下、添付図面を参照しながら、本発明の好適な実施形態のいくつかを説明する。
各実施形態を説明する前に、各実施形態の識別処理や特徴選択処理を実行可能な情報処理装置の構成について説明する。
図12は情報処理装置の構成例を示すプロック図であり、1201はアプリケーションプログラムによって処理中のデータの情報、各種メッセージメニューなどを表示するCRTを示している。1202はCRT1201の画面に表示されるイメージを展開するビデオRAM(以下、VRAM)を示している。1203及び1204は、画面上の所定欄に文字などを入力したり、アイコンやGUIにおけるボタンなどを指し示すためなどに用いられるキーボード及びポインティングデバイスをそれぞれ示す。1205は本装置全体の制御を司るCPUである。
1206はCPU1205の動作処理手順(プログラム)を記憶しているROMである。なおこのROM1206にはデータ処理に係るアプリケーションプログラムやエラー処理プログラムをはじめ、後述するフローチャートに係るプログラムも記憶されている。1207は上述した各種プログラムをCPU1205が実行する時のワークエリア、エラー処理時の一時退避エリアとして用いられるRAMを示している。
1208はハードディスクドライプ(以下、HDD)、1209はフロッピー(登録商標)ディスクドライプ(以下、FDD)をそれぞれ示し、それぞれのディスクはアプリケーションプログラムやデータ、ライプラリなどの保存及び読み込み用に用いられる。また、FDDの替わりに、あるいは追加してCD−ROM、MO、DVD等の光(磁気)ディスクドライブや、テープストリーマ、DDSなどの磁気テープドライブ等を設けてもよい。1210は装置をネットワークに接続するためのネットワークインターフェイスである。1211は上述した各ユニット間を接続する1/0バス(アドレスバス、データバスおよび制御バスからなる)である。
(第1実施形態)
第1実施形態として、特定の物体(以下、物体A)を撮像した1000×1000画素のグレースケール画像をとして入力し、その画像中のどの位置にどのような姿勢で、物体Aが存在するのかを識別する識別器に用いる部分的な特徴選択方法の例を示す。本特徴選択方法の説明のため、まず、上記識別器の動作について、識別処理の処理構成図を示した図3、及び、識別処理の処理フローを示した図4を用いて説明する。なお、以下の各実施形態で説明する識別処理および特徴選択処理は、上述した情報処理装置(例えばコンピュータ)がメモリに格納された所定のプログラムを実行することで実現される。また、情報処理装置において、以下に説明する処理の一部もしくはすべてを専用のハードウエアでもって実現するようにしてもよいことは当業者には明らかである。
まず、ステップS40において、画像入力部30は、識別処理対象である1000×1000画素のグレースケール画像(以下、入力画像)を、識別対象データとして入力する。ここで入力された入力画像に対し、後段の処理を行い、この入力画像中の、どの位置にどのような姿勢で、物体Aが存在するのかを識別する。
ステップS41において、前処理部31は、画像入力部30で入力した入力画像に対し、エッジ抽出等の前処理を行い、その結果である前処理済み画像を生成する。本識別処理における前処理では、ノイズ抑制を目的としたガウシアンフィルタによる平滑化処理、及び、Sobelフィルタによるエッジ強度抽出処理を行う。そして、エッジ強度抽出処理において得られた各画素位置のエッジ強度マップを前処理済み画像とし、この前処理済み画像に対して、後段の識別処理を行っていく。
ステップS42において、識別器設定部33は、メモリにより構成された識別器情報データベース32に予め記録されている複数の識別器から、順次1つの識別器を選択し、選択した識別器の識別規則に関する情報を読み込む処理を行う。本識別処理では、識別器として、非特許文献3に記載されているようなFern型識別器を用いる。Fern型識別器とは、複数の要素識別器を直列に並べた識別器である。Fern型識別器では、一般に、比較的単純な、2値の要素識別器が用いられる。つまり、何らかの単純な識別規則に基づきデータを識別して、{0、1}の結果を出力するような要素識別器を用いるのが一般的である。本識別処理で用いる要素識別器も、基準位置からの相対位置が異なる2点(以下、参照点1、及び、参照点2)の値を比較し、その大小関係を識別して、{0、1}の結果を出力するという、比較的単純な2値の要素識別器を用いる。Fern型識別器を構成する要素識別器の個数は任意の個数でよいが、ここでは、1個につき16個の上記要素識別器で構成されるFern型識別器を用いる。本識別処理では、このようなFern型識別器を50個用い、それらが予め識別器情報データベース32に記録されている。尚、用いられるFern型識別器の個数を本識別処理では50個としているが、これも任意の個数で構わない。多くのFern型識別器を用いる方が、高い識別性能を実現できる可能性は高くなる。
識別器設定部33では、50個のFern型識別器から1個のFern型識別器を順次選択し、そのFern型識別器を構成する16個の要素識別器の情報、即ち、それぞれの識別規則の情報を読み込む。具体的には、16個の要素識別器それぞれについて、値を比較する参照点1、及び、参照点2それぞれの、処理基準位置(後述)からの相対位置を読み込むことになる。なお、識別器を構成する複数の要素識別器は同一の識別規則のものを用いてもよいし、異なる識別規則のものを組み合わせてもよい。例えば、上述の要素識別器と、第4実施形態で用いるような線形二値識別器とを含むようにしてもよい。
続いて、ステップS43において、処理基準位置設定部34は、後段の識別処理部35での処理における基準位置を、前処理部31で生成された前処理済み画像内から、順次1箇所ずつ選択し、その選択した位置を処理基準位置として設定する。ここで設定された処理基準位置は、詳細については後述するが、後段の識別処理部35におけるFern型識別器を用いた識別処理での処理の基準となる位置である。なお、この処理基準位置の選択の順は任意で構わず、例えば、画像の左上からラスタスキャン的に画像の右下まで、順次1画素ずつ選択していけば良い。
次に、ステップS44において、識別処理部35は、識別器設定部33で選択したFern型識別器を用いて、前処理部31で生成した前処理済み画像に対し、処理基準位置設定部34で設定された処理基準位置における識別処理を行う。より具体的には、識別処理部35は、Fern型識別器を構成する各要素識別器での識別処理を、前処理済み画像の処理基準位置において行い、それらの識別結果(識別値)を順に並べた識別結果列を求める処理を行う。各要素識別器は、前述の通り、処理基準位置からの相対位置が異なる2つの参照点1、及び、参照点2の位置の、前処理済み画像の値を比較して、その大小関係に基づき{0、1}の識別値を出力する。つまり、参照点1の位置における前処理済み画像の値の方が、参照点2の位置における前処理済み画像の値より大きい場合に1を出力し、そうでない場合に0を出力する。
本識別処理における、要素識別器による識別処理について具体的に説明する。例えば、処理基準位置設定部34において、処理基準位置が、前処理済み画像の位置(x,y)に設定されているとする。そして、要素識別器の識別規則情報、即ち、2つの参照点1、及び、参照点2の、処理基準位置からの相対位置座標が、それぞれ(x1,y1)、及び、(x2,y2)であるとする。この時、参照点1に対応する値v1は、前処理済み画像の位置(x+x1,y+y1)の値、同様に、参照点2に対応する値v2は、前処理済み画像の位置(x+x2,y+y2)の値となる。そして、この要素識別器による識別処理では、前処理済み画像のそれぞれの位置を参照して上記v1、及び、v2の値を読み込み、このv1とv2の値を比較して、v1>v2であれば1、v1≦v2であれば0を出力する処理を行う。
本識別処理では、前述のように、16個の要素識別器からなるFern型識別器を用いるので、1つの処理基準位置に対して、上記要素識別器での識別処理を、16個の要素識別器それぞれで行う。そして、各要素識別器の識別値{0、1}の出力を、予め定められた所定の順で16個並べた識別結果列を求める。そのため、1つの処理基準位置に対して、2進数で、0000000000000000から、1111111111111111までの、216=65536通りのいずれかの識別結果列が得られることになる。識別処理部35では、上記のように、処理基準位置設定部34で設定された処理基準位置において、65536通りのいずれかを示す識別結果列を求める処理を行うことになる。
次いで、ステップS45において、識別結果記録部36は、識別処理部35で求めた識別結果列に基づき、識別器情報データベース32に記録されている仮説個数、及び、その仮説個数分の位置姿勢仮説情報を参照して、その情報を累積的に記録する。この位置姿勢仮説情報とは、物体Aが、どの位置にどのような姿勢で存在するかに関する仮説である(以下、単に仮説情報と記載する)。ここで、仮説情報の内、位置に関する情報は、処理基準位置設定部34で設定した処理基準位置に対する、相対位置の情報となっている。より具体的には、仮説情報は、姿勢情報θと相対位置情報(xr,yr)を1セットとした情報である。例えば、処理基準位置が(x,y)であった場合、姿勢θの物体Aが、物体Aの中心位置が(x+xr,y+yr)となる位置に存在するという仮説と解釈される。識別器情報データベース32には、複数の識別器それぞれについて、各識別結果列に対応する仮説個数と、その個数分の、その識別結果列に対応する仮説情報が記録されている。1つの識別結果列に対応する仮説個数は、1セットの仮説情報のみの場合や、複数セットの仮説情報が対応する場合、逆に、1つも対応する仮説情報が無い場合もあっても構わない。
この識別結果記録部36の具体的な処理では、まず、識別器情報データベース32に記録されている、識別器設定部33により選択された識別器を用いて、識別処理部35が求めた識別結果列に対応する仮説個数が参照される。例えば識別器設定部33で、C番目の識別器を選択しているとし、識別処理部35で求めた識別結果列がRであったとすると、識別器情報データベース32に記録されている、C番目の識別器の識別結果列Rに対応する仮説個数を参照することになる。この際、対応する仮説個数が0である場合は、仮説情報を記録せずに、この識別結果記録部36での処理が終了となる。対応する仮説個数が1以上存在する場合は、存在する個数分の仮説情報をそれぞれ参照し、それらの情報を累積的に記録する処理が行われる。具体的には、上記説明したように、現在の処理基準位置が(x,y)であり、1セットの仮説情報が、姿勢θ、相対位置(xr,yr)であった場合に、位置(x+xr,y+yr)に、姿勢θの物体Aが存在するという仮説のスコアを増加させる。ここで増加させるスコアの値は、所定の定数としても構わないが、対応する仮説個数に反比例する値とするのが好ましく、例えば、仮説個数がN個であったなら、1/Nだけスコアを増加させるようにする。これを、対応する仮説個数分の仮説情報について行うことで、この識別結果記録部36での処理が終了となる。
上記説明した、識別処理部35、及び、識別結果記録部36における処理を、前処理済み画像上の全ての位置を処理基準位置として処理するまで繰り返し行う。つまり、識別結果記録部36での処理が終了すると、まだ、処理基準位置設定部34で選択していない前処理済み画像上の位置があるかどうかが判定される(ステップS46)。処理基準位置設定部34で選択していない前処理済み画像上の位置があるならば(S46でNO)、処理基準位置設定部34による処理(S43)に戻り、識別処理部35、及び、識別結果記録部36での処理が繰り返し実行される。このループ処理により、前処理済み画像上の全ての位置で、識別器設定部33で選択した1つの識別器による、識別処理部35、及び、識別結果記録部36での処理を行うことになる。このため、1つの処理基準位置について、得られた識別結果列に対応する仮説個数分の仮説情報が記録されるので、大量の仮説情報([平均的な仮説個数]×[処理基準位置数]のオーダとなる)が、累積的に記録されることになる。本識別処理の例では、画像中の全位置を処理基準位置として設定するので、処理基準位置数=1000×1000=100万であり、[平均的な仮説個数]×100万という大量の仮説情報が、累積的に記録されることになる。
更に、上記説明したループ処理を、今度は、識別器情報データベース32に記録されている全ての識別器について繰り返し行う。つまり、上記1つの識別器でのループ処理が終了した後、まだ、識別器設定部33において選択していない識別器があるか否かが判定される(ステップS47)。識別器設定部33において選択していない識別器があるならば(S47でNO)、識別器設定部33での処理(S42)に戻り、新たな識別器を選択して、再度、上記1つの識別器でのループ処理を繰り返し行う。これにより、識別器情報データベース32に記録されている全ての識別器について、上記1つの識別器でのループ処理を行うことになる。こうして、全体として、[平均的な仮説個数]×[処理基準位置数(上記の例では100万個)]×[識別器数(上記の例では50個)]という膨大な仮説情報が、累積的に記録されることになる。
最後にステップS48において、識別結果出力部37は、上記説明した処理により、累積的に記録された多数の仮説情報に基づき、画像入力部30で入力した入力画像中の、どの位置に、どのような姿勢で物体Aが存在するのかを識別し、その結果を出力する。具体的には、累積的に記録された多数の仮説情報の中で、最大のスコアである仮説情報を検出し、その仮説情報の位置、及び、姿勢で、物体Aが存在すると識別する。つまり、累積的に記録された多数の仮説情報の中で、例えば、位置(xmax、ymax)に、姿勢θmaxの物体Aが存在するという仮説情報のスコアが最大であったならば、この位置、及び、姿勢で、物体Aが存在すると識別することになる。
上記説明した処理により、画像入力部30で入力した入力画像中の、どの位置に、どのような姿勢で、特定の物体が存在するのかを識別することが可能になる。尚、上記説明した処理では、スコアが最大の仮説情報に対応する結果のみを出力するため、入力画像中に複数の特定物体があったとしても、1つの識別結果しか得られない。しかし、スコアが最大の仮説情報だけではなく、例えば、スコアが所定の閾値を超えた仮説情報を複数選択するようにし、それらを識別結果として出力することで、容易に、入力画像中に複数の特定物体が存在する場合にも対応できる。以上の処理により、入力された画像に識別器を適用して取得された識別値と仮説情報(特徴)との比較により、その画像を所定のクラスに分類することができる。
上記識別処理の識別性能を決める1つの要因として、どのような特徴と仮説情報を、各識別器の識別結果列に対応させるかという点が挙げられる。以下、どのような特徴と仮説情報を用いるのかを選択する方法について説明する。
図1に、第1実施形態における特徴選択方法、つまり、識別器の識別結果列に対応させる仮説情報を選択する方法を実現するための機能構成図を示す。また、図2は、第1実施形態における特徴選択方法の処理フローを示した図である。以下、図1、及び、図2を用いて、第1実施形態による特徴選択方法について説明する。
登録姿勢画像データベース10は、学習用のデータとして、識別対象である特定物体(物体A)を様々な方向から撮像した画像を記録しているデータベースである。登録姿勢画像データベース10に登録されている画像は、たとえば図5に示したような複数のグレースケール画像である。本実施形態では、各画像は、物体Aの中心位置が、画像の中心になるようにアライメントされている、200×200画素の画像である。また、この登録姿勢画像データベース10には、各画像において撮像されている物体Aが撮像部に対してどのような姿勢であるのかを示す相対姿勢情報も記録されている。本実施形態では、このような、様々な方向から撮像した物体Aの画像、及び、それぞれの相対姿勢情報が1000セット分、登録姿勢画像データベース10に記録されている。以降、1000枚の画像それぞれを、P1、P2、・・・、P1000とし、対応する相対姿勢情報をθ1、θ2、・・・、θ1000とする。尚、本実施形態では、1000個の相対姿勢情報の内、同一とみなせるものは存在しない。つまり、1000枚の画像は、全て異なる相対姿勢で物体Aを撮影した画像であるとする。
ステップS20において、識別器生成部11は、識別器に識別規則(参照点1及び参照点2の位置座標)を設定することによりFern型識別器を生成する。本実施形態では、前述のように、16個の要素識別器からなるFern型識別器を用いるので、16個の上記説明した要素識別器を生成し、それらを連結したFern型識別器を生成する。各々の要素識別器は、本実施形態では、横方向に−10から+10、縦方向にも−10から+10の、21×21画素の範囲の中で、ランダムに参照点1、及び、参照点2の位置を選択することによって生成する。
このように、本実施形態における識別器は、[要素識別器の個数]×[要素識別器で参照するデータ数]という、元々の200×200画素の画像と比較して、非常に限られたデータのみを用いた識別を行う。つまり、この識別器では、元々の全特徴(本実施形態では200×200=40000)の内の、非常に限られた特徴のみに基づいた識別を行うことになる。尚、各要素識別に設定される2つの参照点の位置は、上記21×21画素の範囲(部分データ)の中で、ランダムに選択すれば良いが、2つの参照点の位置が同一の位置にならないようにするのが好ましい。なぜなら、本実施形態の場合、同一の位置の値を比較するとその結果は必ず等号になるため、その要素識別器は必ず0を出力することになり、無意味な要素識別器となってしまうためである。また、1つのFern型識別器の中に、2つの参照点位置の組み合わせが同一な要素識別器が複数あると、それらの要素識別器は同じ結果を出力してしまう。より厳密には、参照点位置が入れ替わっている状況の場合、2点の値が一致する時のみ出力される結果が変わるが、2点の値が一致しない場合は同じ結果を出力してしまう。そのため、これらの要素識別器の内、1つの要素識別器以外は、無意味な要素識別器となってしまう。そこで、1つのFern型識別器を構成する複数の要素識別器(本実施形態では、16個の要素識別器)は、各参照点の組み合わせが、それぞれ異なる2点の組み合わせになるようにすることが好ましい。
尚、本実施形態では、ランダムに2つの参照点を選択することにより、要素識別器を生成しているが、本発明の特徴選択方法における識別器の生成方法は、これに限られるものではない。重要なのは、様々なバリエーションの要素識別器が生成できることである。そのため、例えば、非特許文献4のバギングのように、登録姿勢画像データベース10に記録されている画像データから、適当なデータをサンプリングして、そのデータを用いた学習により、識別器を生成するようにしても構わない。
次に、ステップS21において、画像入力部12は、登録姿勢画像データベース10に記録されている画像データを、順次1つずつ入力する。入力する順序は任意で構わないが、本実施形態においては、P1から順に、P1000までを順次1つずつ入力するものとする。
次に、ステップS22において、前処理部13は、上記説明した識別処理における図4のステップS41の処理と同様に、画像入力部12で入力した画像に対し、平滑化等の前処理を行って、前処理済み画像を生成する。また、ステップS23において、処理基準位置設定部14は、上記説明した識別処理における図4のステップS43の処理と同様の処理を行う。すなわち、処理基準位置設定部14は、後段の識別処理部15での処理における処理基準位置を、前処理部13で生成された前処理済み画像内から、順次1箇所ずつ選択し、その選択した位置を処理基準位置として設定する処理を行う。
ステップS24において、識別処理部15は、上記説明した識別処理における図4のステップS44の処理と同様の処理を行うとともに、各要素識別器での識別処理における要素識別度を算出する。要素識別度とは、要素識別器の出力(本実施形態では、{0、1}の出力)の確信度のようなものであり、本実施形態では、この要素識別度として、要素識別器において比較する2点の値の差分絶対値が用いられる。つまり、識別処理部15は、各要素識別器の出力を求め、それらを順に並べた識別結果列を求めると共に、各要素識別器の要素識別度、即ち、各要素識別器で比較した2点の値の差分絶対値を求める処理も行う。この処理により、処理基準位置設定部14で選択された1つの処理基準位置について、1つの識別結果列と、要素識別器の個数分の、要素識別度の値が得られることになる。
この識別処理部15で求める要素識別度について、図6を用いて説明する。図6中、v1軸62は、ある要素識別器の参照点1の位置における値を表す軸であり、v2軸63は、参照点2の位置における値を表す軸である。ある処理基準位置での、当該要素識別器の処理において、参照点1の位置の値がv1−0、参照点2の位置の値がv2−0であった場合、対応するデータは、図中の点600にプロットされることになる。同様に、参照点1の位置の値がv1−1、参照点2の位置の値がv2−1の場合、点610にプロットされることになる。本実施形態の要素識別器では、v1>v2であれば1を出力するので、図中の境界線64を境にして、右下の領域(点610が存在する領域)にプロットされるデータに対しては1が出力される。また、境界線64上を含む境界線64の左上の領域(点600が存在する領域)にプロットされるデータに対しては0が出力されることになる。つまり、この要素識別器では、点610に対応するデータでは1が出力され、点600に対応するデータでは0が出力される。
ここで、各データの参照点の位置における値が、何らかの要因によって変動してしまう状況を考える。この場合、図中の各点は、その変動に応じて、プロットされる位置が変動し、場合によっては、境界線64を飛び越え、要素識別器での出力が変化してしまう状況が発生する。もし、各データに対する変動要因が、同程度であると仮定すると、図中の点600に比べて、点610の方が、要素識別器の出力が変化してしまう可能性が高いと考えられる。つまり、点600の方が、要素識別器の出力が変化しづらく、出力に対する確信度が高いといえる。このような確信度の高さは、各データに対する変動要因が同程度であると仮定すると、各データのプロット点から、境界線64までの距離に対応すると考えることができる。例えば、点600から境界線64までの距離601は、点610から境界線64までの距離611と比べて長い。そのため、点600に対応するデータに対する要素識別器の出力の方が、点610に対応するデータに対する要素識別器の出力に比べて、確信度が高いと推定できる。各プロット点から、境界線64までの距離は、各参照点の位置における値の差分絶対値に比例する。そこで、本実施形態では、この差分絶対値を、境界線64までの距離として代用し、この値を、そのデータに対する、その要素識別器の判定の確信度、即ち、要素識別度として用いるようにしている。
ステップS25において、識別度記録部16は、識別処理部15で取得された、各要素識別器に対する要素識別度を統合した識別度を算出し、識別データ保持部17に、対応する識別結果列と共に記録する。この識別度は、複数の要素識別器からなるFern型識別器全体の確信度を表すようなものであり、本実施形態においては、単純に、各要素識別度の総和を識別度とする。
ここで求める識別度、つまり、要素識別度の総和は、識別器生成部11において生成したFern型識別器により定義される識別空間に、識別処理部15で識別処理を行ったデータを写像した点と、当該識別空間の原点とのマンハッタン距離と解釈できる。この識別度の解釈について、図11を用いて説明する。本実施形態の特徴選択方法における識別空間とは、識別処理における中間処理結果を表現する空間である。識別処理では、この中間処理結果を用いて識別結果を決定する。例えば、最も単純な識別器の1つである最近傍識別器であれば、複数のプロトタイプとの距離の中で、最も距離が近いプロトタイプに対応するというように識別結果を決定する。そのため、最近傍識別器では、各プロトタイプとの距離が中間処理結果になり、識別空間は、各プロトタイプとの距離の値により張られる空間となる。本実施形態において用いるFern型識別器では、前述のように、1つの要素識別器において2点の値の大小比較を行う。これは、2点の値の差分値に基づき、要素識別器での結果を決定しているといえる。そのため、この2点の値の差分値(v1−v2)に対応する軸を、当該識別空間の1つの軸と考えることができる。本実施形態のFern型識別器は、16個の要素識別器で構成されるので、当該識別空間は、各要素識別器が参照する2点の値の差分値に対応する軸により張られる16次元の空間と定義することができる。
図11は、この識別空間を模式的に示した図であり、軸111は、1つの要素識別器ξが参照する2点の値の差分値(v1−v2)ξを表す軸である。また、もう1つの軸112は、その他の要素識別器ζが参照する2点の値の差分値(v1−v2)ζを表す軸である。識別処理部15で識別処理を行った各データは、各々の差分値に応じて、当該識別空間の1点にマッピングされることになる。例えば、図11に示したように、要素識別器ξが参照する2点の値の差分値がξ1、要素識別器ζが参照する2点の値の差分値がζ1であるデータは、点113の位置にマッピングされる。同様に、各差分値がξ2、ζ2であるデータは、点114の位置にマッピングされる。ちなみに、点113に対応するデータでは、ξ1>0、ζ1>0であるので、要素識別器ξ、ζとも、1を出力することになり、点114では、ξ2≦0、ζ2>0であるので、要素識別器ξは0、要素識別器ζは1を出力することになる。また、点113と軸112との距離1131は、点113に対応するデータにおける、要素識別器ξの要素識別度(=ξ1)、点113と軸111との距離1132は、要素識別器ζの要素識別度(=ζ1)に対応する。同様に、距離1141、及び、距離1142は、点114に対応するデータにおける、要素識別器ξ、ζそれぞれの要素識別度(=ξ2、ζ2)に対応することになる。各要素識別器の出力が変化する境界は、図中の各軸であり、この軸を境にした領域ごとに、それぞれの要素識別器の、出力の組み合わせ、つまり、1つの識別結果列が対応している。
ここで、図11に示した当該識別空間の原点115は、全ての領域の境界上にあるため、原点115の近傍の領域は、最も識別結果列が不安定な領域であるといえる。そこで、この原点115からの距離を用い、識別結果列に対する確信度を評価する。本実施形態の識別度は、各要素識別度の総和であり、これは、当該識別空間の原点と、この識別空間にマッピングされた点とのマンハッタン距離となっている。つまり、本実施形態では、識別空間の原点までのマンハッタン距離=要素識別度の総和=識別度としていることに他ならない。
なお、識別度の算出方法は、Fern型識別器が出力する識別結果列の確信度を表すようなものであれば、その他の方法で求めてもよく、例えば、この識別度を、各要素識別度の最小値とするような方法でも構わない。この場合、図11に示した識別空間での解釈では、マッピングされた点と、識別結果列が変化してしまう最も近い境界までの距離を求めていることに対応する。識別度記録部16は、このような識別度、及び、識別処理部15で取得された識別結果列を、識別データ保持部17に記録するが、この際に、この結果(識別度、及び、識別結果列)が得られたデータ自体の情報も関連付けて記録する。データ自体の情報とは、具体的には、例えば、識別処理部15で識別処理を行った画像データに対応する相対姿勢情報、及び、処理基準位置である。例えば、画像Pnの位置(xm,ym)を処理基準位置として識別処理部15での識別処理を行った結果であれば、対応する相対姿勢情報θn、及び、(xm,ym)を、求めた識別結果列、及び、識別度と共に識別データ保持部17に記録することになる。この識別度記録部16での処理により、識別データ保持部17に、識別結果列、識別度、相対姿勢情報、処理基準位置を1セットとしたデータ(以下、識別データ)が記録されることになる。
上記説明した、識別処理部15、及び、識別度記録部16での処理を、前述の識別処理と同様、前処理部13で生成した前処理済み画像上の全ての位置を処理基準位置として処理するまで繰り返し行う。つまり、識別度記録部16での処理が終了し、まだ、処理基準位置設定部14で選択していない前処理済み画像上の位置があるならば、処理基準位置設定部14での処理に戻り、識別処理部15、及び、識別度記録部16での処理を繰り返し行う。ここでの繰り返し処理は、図2のS26によるループ処理に対応する。このループ処理により、前処理済み画像上の全ての位置で、識別器生成部11で生成した識別器による、識別処理部15、及び、識別度記録部16での処理を行うことになる。すなわち、学習用のデータから抽出された複数の部分データの各々に、ステップS20で生成した識別器によって処理させて識別値を得て、これをそれら複数の部分データの各々の特徴とする。このため、1つの処理基準位置(部分データ)について、1セットの識別データが記録されるので、全画素数分(本実施形態では、200×200=40000)の識別データが、識別データ保持部17に記録されることになる。このように、本実施形態の特徴選択方法では、識別器生成部11で生成した識別器を用い、処理基準位置を1画素ずつ変えながら、各位置における識別度の算出を行う。前述のように、本実施形態の特徴選択方法において用いる識別器は、限られた特徴のみに基づいた識別を行うので、処理基準位置を変えることにより、元々のデータ中の、異なる特徴セットを用いた処理を行って、それぞれの識別度を求めることになる。
更に、上記説明したループ処理を、今度は、登録姿勢画像データベース10に記録されている全ての画像について繰り返し行う。つまり、上記1つの画像に対するループ処理が終了し、まだ、画像入力部12において入力していない画像があるならば、まず、画像入力部12での処理に戻り、新たな画像を入力する。そして、前処理部13で、その新たな入力画像に対応する前処理済み画像を生成後、再度、上記1つの画像でのループ処理を繰り返し行う。ここでの更なる繰り返し処理は、図2のS27によるループ処理に対応する。これにより、登録姿勢画像データベース10に記録されている全ての画像について、上記1つの画像に対するループ処理を行うことになる。このため、本実形態では、登録姿勢画像データベース10に画像が1000枚あるので、全体として、1000×[1枚の画像の全画素数]という多数の識別データが、識別データ保持部17に記録されることになる。本実施形態では、1枚の画像の全画素数は40000なので、1000×40000=4000万の識別データが識別データ保持部17に記録される。
次に、ステップS28において、特徴評価部18は、識別データ保持部17に記録された多数の識別データ対し、それぞれの識別データの、特徴としての有用度を求める。具体的には、本実施形態では、各識別データの特徴としての有用度を、各識別データの中の、識別度記録部16で求めた識別度を、対応する識別結果列に該当する全ての識別データの個数で除することにより求める。例えば、識別データ保持部17に記録されている、識別結果列がrである識別データの個数をL(r)個とし、ある識別データの識別結果列がRで識別度がαである場合、この識別データに対する特徴としての有用度は、α/L(R)となる。ここで求める特徴としての有用度は、単純に、識別度そのものを用いても構わないが、上記のように、同一の識別結果列であった識別データの個数を考慮することで、各識別データのユニークネスも評価することができる。具体的には、同一の識別結果列であった識別データが多数存在する場合、つまり、ユニークでない識別データは、ここで求める特徴としての有用度が相対的に低く評価されることになる。逆に、同一の識別結果列であった識別データが少ないユニークな識別データは、特徴としての有用度が相対的に高く評価される。つまり、ここで求める特徴としての有用度は、その識別結果列の純度が高い(同一の識別結果列であったものが少ない)場合には高く、純度が低い(同一の識別結果列であったものが多い)場合には低く評価されることになる。換言すれば、特異性の高い識別結果列の有用度は高く評価され、特異性の低い識別結果列の有用度は低く評価される。ここでの処理により、識別データ保持部17に記録されている、全ての識別データに対して、識別度の高さ、及び、そのユニーク性に応じた、特徴としての有用度が求められることになる。
ステップS29において、特徴選択部19は、特徴評価部18で求めた、各識別データの、特徴としての有用度に基づき、それぞれの識別結果列に対応させる仮説情報として、どの識別データを用いるのかを選択する。本実施形態では、特徴選択部19は、登録姿勢画像データベース10に記録されている全画像データそれぞれについて、特徴評価部18で求めた、特徴としての有用度が高い上位50個の識別データを選択する。本実施形態では、登録姿勢画像データベース10に、1000枚の画像が記録されているので、ここでの処理により、各画像に対して50個の、1000×50=50000個の識別データが選択されることになる。ここで選択された識別データは、前述のように、それぞれが異なる特徴セットに対して処理を行った結果に対応する。そのため、この特徴選択部19における識別データの選択は、元々のデータ中の、どの特徴セットに対する結果を用いるのかの選択であると解釈できる。
最後に、ステップS210において、結果出力部110は、まず、特徴選択部19で選択した識別データに基づき、識別器生成部11で生成したFern型識別器の各識別結果列に対応する仮説情報を求める。そして、結果出力部110は、これらの仮説情報と、識別器生成部11で生成したFern型識別器の情報とをセットにして識別器情報データベース32へ出力する。
特徴選択部19で選択した識別データに基づいた仮説情報は、具体的には、以下のように求める。例えば、選択した1つの識別データが、識別結果列がRsで、相対姿勢情報がθs、処理基準位置が(xs、ys)であったとする。この時、この識別データに対応する仮説情報は、姿勢情報θsで、相対位置情報が(100−xs、100−ys)となる。この相対位置情報は、上記識別処理の説明で述べたように、処理基準位置から物体Aの中心位置への相対位置を意味している。そのため、本実施形態では、登録姿勢画像データベース10に記録されている画像中の物体Aの中心位置は(100,100)であるので、処理基準位置から物体Aの中心位置への相対位置は(100−xs,100−ys)となる。そして、このように求めた仮説情報が、識別器生成部11で生成したFern型識別器の、識別結果列Rsに対応する仮説情報の1つになる。これを、特徴選択部19で選択した全ての識別データ(本実施形態では、1000×50=50000個分)に対して行い、求めた仮説情報を各識別結果列に対応させる。そして、その結果を、識別器生成部11で生成したFern型識別器の情報と共に出力することで、この結果出力部110での処理が終了となる。尚、ある識別結果列に対応する識別データが1つも選択されなかった場合、その識別結果列には、対応する仮説情報が無いとすれば良い。
以上の処理により、前述の識別処理において用いるFern型識別器の、各識別結果列に対応する仮説情報を選択することが可能になる。このように、本実施形態の特徴選択方法では、予め所定の識別器を生成し、その識別器を用いた各特徴の評価を行うため、実際の識別手法を考慮した特徴の評価を行うことになり、特徴の評価尺度が、実際の識別手法に適した評価尺度となる可能性が高くなる。そのため、結果として、最終的な識別精度が高くなるような特徴選択が実現できる可能性が高くなるという効果がある。また、本実施形態のように、検定データが充分に無い(画像は多数あるが、1つの姿勢については、1つの画像しか存在しない)場合には、Wrapper法やAdaBoostを用いた特徴選択は困難である。しかし、本実施形態の特徴選択方法では、このような場合でも、実際の識別手法を考慮した特徴選択が可能である。
また、本実施形態の特徴選択方法により選択した特徴を用いたパターン識別方法では、上記説明した、結果出力部110において出力されたFern型識別器を用い、上述の識別処理(図3に示した処理構成での識別処理)を行えば良い。ここで、このFern型識別器の各識別結果列に対応する仮説情報として、本実施形態の特徴選択法により選択した識別データから求めた仮説情報を用いるようにする。なお、上述の識別処理では、複数(上記例では50個)のFern型識別器を用いるので、上記説明した本実施形態の特徴選択方法を、繰り返し行い、必要な数のFern型識別器を生成し、それらを用いるようにすれば良い。これにより、実際に使用する識別器を考慮して選択された仮説情報を用いた識別処理が可能となるため、結果として、実際に使用する識別器を考慮せず選択した仮説情報を用いた識別処理に比べ、最終的な識別精度が向上する可能性が高くなる。
(第2実施形態)
第2実施形態では、第1実施形態で示した特徴選択方法の別形態として、複数の識別器の中から、1つの識別器と、その識別器に用いる特徴を選択する特徴選択方法の例を示す。尚、第2実施形態の構成、処理のうち第1実施形態と同様のものについて適宜、説明を省略する。
図7に、第2実施形態における特徴選択方法の処理構成図を示す。本実施形態も、第1実施形態と同様に、識別器の識別結果列に対応させる仮説情報を選択する特徴選処理を行う。また、図8は、第2実施形態における、本特徴選択方法の処理フローを示した図である。以下、図7、及び、図8を用いて、本実施形態の特徴選択方法の例について説明する。
図7の登録姿勢画像データベース70から、特徴選択部79までの処理部は、第1実施形態における、図1の登録姿勢画像データベース10から、特徴選択部19までの処理部と同様の処理部であるので説明を省略する。ここまでの処理により、第1実施形態と同様に、識別器生成部71で生成したFern型識別器と、そのFern型識別器の各識別結果列に対応する仮説情報が選択されることになる。ここまでの処理は、図8のステップS80(識別器生成)からステップS89(特徴選択)までの処理に対応し、ステップS20〜S29と同様である。
ステップS810において、識別器評価部710は、特徴選択部79で選択した識別データに対応する、特徴評価部78で求めた、特徴としての有用度(=識別度/当該識別結果列となった識別データの個数)の総和を求める。本実施形態でも、登録姿勢画像データベース70に記録されている画像枚数は1000枚であり、1枚の画像について、特徴としての有用度が高い上位50個の識別データが選択される。そのため、識別器評価部710は、特徴選択部79で選択した1000×50=50000個の識別データに対応する、特徴としての有用度の総和を求めることになる。ここで求めた、特徴としての有用度の総和は、特徴としての有用度が高い識別データが、どれだけ選択できたかを示しているため、その識別器の評価値として用いることができる。そのため、後の識別器選択部711では、この識別器の評価値を用いて識別器を選択することにより、より良い識別器を選択するようにする。
識別器評価部710での処理が終了した後、予め定めた所定の候補数M(例えば、M=100など)に達するまで、識別器生成部71での処理に戻り、新たな識別器を生成して、同様に、識別器評価部710までの処理を繰り返し行う。ここでの繰り返し処理は、図8の「候補数=M」か否かによる分岐処理である、ステップS811によるループ処理に対応する。このループ処理により、全部でM個のFern型識別器と、それぞれに対応して選択された識別データ、及び、識別器評価部710でそれぞれの識別器について求めた識別器の評価値が取得されることになる。ここで、識別器の評価値とは、選択された識別データに対応する、特徴としての有用度の総和となる。
次に、ステップS812において、識別器選択部711は、上記処理により取得されたM個の識別器の評価値に基づき、1つの識別器を選択する処理を行う。ここでは単純に、識別器の評価値が最も高かった識別器を、M個の識別器から選択する処理を行う。なお、本実施形態では1つの識別器を選択するが、選択する識別器の個数は2個以上としてもよい。すなわち、評価値の高い順に所定数(<M)の識別器を選択するようにしてもよい。
最後に、ステップS813において、結果出力部712は、識別器選択部711で選択された識別器について、識別器選択部711で選択されたFern型識別器の各識別結果列に対応する仮説情報を求める。この処理は、第1実施形態における結果出力部110による処理と同様である。そして、結果出力部712は、これらの仮説情報と、識別器選択部711で選択されたFern型識別器の情報をセットにして出力する。
以上の処理により、複数のFern型識別器の中から、1つのFern型識別器と、そのFern型識別器の各識別結果列に対応する仮説情報を選択することができる。このように、第2実施形態の特徴選択方法では、選択された特徴に対する評価値を用いることで、その識別器に対する評価を行うことも可能になる。そのため、結果として、最終的な識別精度が高くなるような特徴選択が実現できる可能性が高くなる。また、本実施形態における識別器の選択は、別の見方をすると、識別器において参照する点の位置を選択していることになり、どのような参照点を用いるか、つまり、どの位置の値を特徴として用いるのかを選択しているとも解釈できる。
第2実施形態の特徴選択方法により選択した特徴を用いたパターン識別方法では、上記説明した結果出力部712で出力されたFern型識別器を用いて第1実施形態と同様の識別処理が行なわれる。無論、このFern型識別器の各識別結果列に対応する仮説情報として、本実施形態の特徴選択法により選択した識別データから求めた仮説情報を用いるようにする。上記説明した本実施形態の特徴選択方法を繰り返し行い、必要な数のFern型識別器を生成し、それを用いる部分も、第1実施形態と同様である。これにより、第1実施形態と同様、実際に使用する識別器を考慮して選択された仮説情報を用いた識別処理が可能となる。また、より良い特徴が選択できた識別器を用いるようにするため、結果として、最終的な識別精度が向上する可能性が高くなる。
(第3実施形態)
第3実施形態では、1つの識別器に用いる仮説情報を選択する、第1実施形態で説明した方法の変形例について説明する。尚、本実施形態は、第1実施形態と比較して、図1の特徴選択部19での処理が異なるのみである。そこで、第3実施形態の説明では、この差異部分のみ説明し、その他の部分については説明を省略する。また、本実施形態における特徴選択方法の処理構成図、及び、処理フローは、第1実施形態における特徴選択方法と同様であるので、図1、及び、図2を用いて、本実施形態の特徴選択方法の例について説明する。
登録姿勢画像データベース10から特徴評価部18までの処理部は、第1実施形態と全く同様である。ここまでの処理により、第1実施形態と同様に、識別データ保持部17に多数の識別データが記録され、記録された全識別データそれぞれの、特徴としての有用度が求められることになる。ここまでの処理は、図2の識別器生成ステップS20から特徴評価ステップS28までの処理に対応する。
ステップS29において、特徴選択部19は、第1実施形態と同様に、特徴評価部18で求めた、各識別データの、特徴としての有用度に基づき、それぞれの識別結果列に対応させる仮説情報として、用いるべき識別データを選択する。ただし、第1実施形態では、登録姿勢画像データベース10に記録されている全画像データそれぞれについて、所定個数の識別データを選択したが、第3実施形態においては、各識別結果列それぞれに対して、識別データの選択を行う。具体的には、全識別結果列それぞれについて、同一の識別結果列であった識別データの内、特徴評価部18で求めた、特徴としての有用度が最も高かったものを、当該識別結果列に対応する識別データとして選択する。本実施形態のFern型識別器も、16個の要素識別器からなるので、216=65536種類の識別結果列それぞれについて、対応する識別データが選択されることになる。65536種類の識別結果列の中には、識別データ保持部17に、1つも対応する識別データが記録されていない場合もあるので、ここでの処理により、最大で65536個の識別データが選択されることになる。ここでの処理は、図2の特徴選択ステップS29に対応する。
本実施形態のように、各識別結果列に対して識別データを選択することで、全識別結果列に対してバランス良く識別データが選択されることになり、結果として、情報効率の高いFern型識別器を生成することが可能になる。尚、本実施形態では、特徴としての有用度が最大である識別データのみを、当該識別結果列に対応する識別データとして選択した。しかし、例えば、特徴としての有用度が、上位所定個までの識別データを選択しても良いし、最大であった特徴としての有用度に対し、所定割合以上(例えば0.8倍以上等)の特徴としての有用度であった識別データを選択する等しても構わない。
最後に、ステップS210において、結果出力部110は、第1実施形態と同様に、特徴選択部19で選択した識別データに基づき、Fern型識別器の各識別結果列に対応する仮説情報を求める。そして、結果出力部110は、これらの仮説情報と、Fern型識別器の情報をセットにして出力する。
以上の処理により、第3実施形態によれば、第1実施形態と同様、Fern型識別器の、各識別結果列に対応する仮説情報を選択することが可能になる。第3実施形態でも、予め生成した識別器を用いて、各特徴の評価を行うため、結果として、最終的な識別精度が高くなるような特徴選択が実現できる可能性が高くなる。また、前述のように、第3実施形態では、バランスの良いFern型識別器が生成できるので、情報効率の高いFern型識別器を生成することができる。
第3実施形態の特徴選択部19での処理は、特徴としての有用度を、同一の識別結果列となった識別データ間で相対的に比較している。そのため、実際は、各識別データの、特徴としての有用度を、第1実施形態と同様に、同一の識別結果列となった識別データの個数で除することによって求める必要はなく、各識別データの識別度を、そのまま特徴としての有用度としても、選択結果は変わらない。ただし、第2実施形態のように、特徴としての有用度の総和を用いて複数の識別器から1つの識別器を選択する場合は、第1実施形態と同様に、同一の識別結果列となった識別データの個数で識別度を除することにより特徴としての有用度を求めるのが好適である。
なお、第3実施形態の特徴選択方法により選択した特徴を用いたパターン識別方法は、第3実施形態の結果出力部110で出力された結果を用いること以外は、第1実施形態と全く同様である。
(第4実施形態)
第4実施形態では、他の実施形態と同様、識別器に用いる仮説情報を選択する方法の例について説明する。第4実施形態では、他の実施形態と異なり、識別器として、Fern型識別器ではなく、線形二値識別器を用いる。線形二値識別器とは、所定の基底ベクトルwと、入力ベクトルzの内積を求め、その内積値に応じて{0、1}のいずれかを出力する識別器である。第4実施形態では、基底ベクトルの次元は、21×21=441次元であり、入力ベクトルzは、処理基準位置を中心とする21×21画素の領域の値を、ラスタスキャン的に並べた441次元のベクトルである。そして、第4実施形態では、この基底ベクトルwと入力ベクトルzの内積値を求め、それが0以下であれば0、そうでなければ1を出力する。第4実施形態の識別器は、参照するデータ数が441個であるので、上述した第1〜第3実施形態と比較すると多い。しかし、元々のデータは200×200画素=40000個のデータからなるので、これと比較すると、限られた特徴のみを用いた識別を行うことになる。
この識別器を用いた識別処理は、基本的には、第1実施形態の説明において述べた識別処理と同様である。ただし、前述の識別処理では、各処理基準位置において、Fern型識別器を適用し、識別結果列を求めるようにしたが、第4実施形態では、上記線形二値識別器を用いて{0、1}のいずれの値であるかを求めることになる。そして、この出力に応じた仮説個数、及び、その仮説個数分の仮説情報を参照して、その情報を累積的に記録する。つまり、仮説情報の累積的な記録の部分に関しては、Fern型識別器での識別結果列に基づくか、線形二値識別器の{0、1}の出力結果に基づくかが異なるのみである。このため、本実施形態の特徴選択方法では、線形二値識別器の{0、1}の出力それぞれに、どのような仮説情報を対応させるかを選択することになる。
図9に、第4実施形態における特徴選択方法、つまり、識別器の識別結果列に対応させる仮説情報を選択する方法の処理構成図を示す。また、図10は、第4実施形態における、本特徴選択方法の処理フローを示した図である。以下、図9、及び、図10を用いて、第4実施形態の特徴選択方法の例について説明する。尚、第4実施形態の構成、処理のうち第1実施形態と同様のものについては、適宜、説明を省略する。
登録姿勢画像データベース90は、第1実施形態と同様、識別対象である物体Aを、様々な方向から撮像した画像、及び、その相対姿勢情報が記録されているものである。ただし、第1実施形態の登録姿勢画像データベース10では、1つの相対姿勢に対応する画像は1枚だったのに対し、第4実施形態では、同じ相対姿勢に対し、複数枚の画像が記録されている。具体的には、第4実施形態においては、1つの相対姿勢に対して10枚の画像が記録されている。この10枚の画像は、同じ相対姿勢で、照明等の撮影条件を変更して撮像した10枚の画像である。登録姿勢画像データベース90に記録されている相対姿勢情報の個数が第1実施形態と同様に1000個であるとすれば、第4実施形態では、全部で1000×10=10000枚の画像が登録姿勢画像データベース90に記録されていることになる。
ステップS100において、識別器生成部91は、上記説明した線形二値識別器を生成する。本実施形態では、441次元のベクトルの各要素をランダムに設定したランダムベクトルを、線形二値識別器の基底ベクトルwとする線形二値識別器を生成する。
ステップS101において、画像セット入力部92は、登録姿勢画像データベース90に記録されている1セットの画像データを順次1セットずつ入力する。ここでの1セットとは、同一の相対姿勢である複数枚の画像を1セットとしたもののことであり、本実施形態では、上述のように、10枚の画像が1セットとなる。
ステップS102において、前処理部93は、第1実施形態と同様な、平滑化、エッジ抽出処理を、画像セット入力部92で入力した画像セットのそれぞれの画像に対して行い、前処理済み画像セットを生成する。ここでの平滑化等の処理は第1実施形態と同様であり、詳細な説明は省略する。
ステップS103において、処理基準位置設定部94は、第1実施形態の処理基準位置設定部14と同様に、後段の識別結果推定部95での処理における処理基準位置を設定する。ここで設定された処理基準位置は、前処理部93で生成された前処理済み画像セットのそれぞれの前処理済み画像について共通の処理基準位置となる。
ステップS104において、識別結果推定部95は、処理基準位置設定部94で設定した処理基準位置で、前処理部93で生成した前処理済み画像セットのそれぞれの前処理済み画像に対し、識別器生成部91で生成した線形二値識別器による識別処理を行う。そして、識別結果推定部95は、それらの結果に基づいて、この線形二値識別器を用いた、当該処理基準位置での識別結果が、{0、1}のいずれの結果となる可能性が高いかを推定し、可能性が高い方の出力結果を推定出力結果として求める。具体的には、まず、それぞれの前処理済み画像について、処理基準位置を中心とする21×21画素の領域の値をラスタスキャン的に並べたベクトルzと、識別器生成部91で生成した線形二値識別器の基底ベクトルwとの内積値を求める。そして、各画像(本実施形態では10枚の画像の各々)に対して求めた内積値の平均を求め、その平均値が0以下であれば0、そうでなければ1という結果を推定出力結果とする。このように、第4実施形態では、1つの処理基準位置において、複数のデータに対して処理を行い、その結果を統合することにより、識別器の出力結果として可能性が高い、推定出力結果を推定する。
ステップS105において、識別度記録部96は、識別結果推定部95で求めた推定出力結果に関する識別度を算出し、これを識別データ保持部97に記録する。ここでの識別度は、第1実施形態等と同様に、識別結果推定部95で求めた推定出力結果に対する確信度を表すようなものである。第4実施形態では、まず、線形二値識別器の基底ベクトルと、処理基準位置における入力ベクトルとの内積値を確率変数とみなし、その分布が正規分布であると仮定してモデル化する。そして、そのモデルに基づいて、識別結果推定部95で求めた推定出力結果が得られる確率値を求め、その確率値を識別度として用いる。
この確率値は、具体的には、以下のように求める。まず、識別結果推定部95により求められた、各前処理済み画像に対応する内積値に基づいて、それらの分散σ2を算出する。これは、識別結果推定部95で求めた、各前処理済み画像に対する内積値を{ai}(i=1、2、・・・、n)、内積値の平均値をμとした時、以下の式1により求められる。尚、本実施形態では、前述のように、n=10である。
次に、内積値の平均値μから、識別器の出力が変化する境界までのマハラノビス距離Dを求める。本実施形態では、識別器の出力は、内積値0を境界にして変化するので、平均値μから0までのマハラノビス距離を求めることになる。また、ここで求めるマハラノビス距離は、内積値は1次元であるので、単純に、平均値μから0までの距離|μ−0|=|μ|を、標準偏差(分散の平方根)で除することにより求められる。つまり、識別器の出力が変化する境界までのマハラノビス距離Dは、D=|μ|/σとなる。最後に、識別結果推定部95で求めた推定出力結果が得られる確率値pを、以下の式2により求める。
このようにして求めた確率値pを、識別結果推定部95で求めた推定出力結果に関する識別度として用いる。識別度記録部96は、この識別度、及び、推定出力結果と共に、第1実施形態と同様、識別器の推定を行った画像セットに対応する相対姿勢情報、及び、処理基準位置を、1セットの識別データとして識別データ保持部97に記録する。上記のように、第4実施形態では、複数のデータを用いた分布の推定を行い、推定出力結果が得られる確率値を、その分布に基づいて算出し、それを識別度として用いるようにする。このように、本発明の特徴選択方法における識別度は、1つのデータから求める方法のみに限らず、複数のデータを用いて求めることも可能である。
第4実施形態において、線形二値識別器は、基底ベクトルとの内積値に基づいて識別結果を出力する。このため、この線形二値識別器により定義される識別空間は、基底ベクトルとの内積値を軸とする1次元空間、つまり、基底ベクトルによる線形写像空間と考えることができる。そして、第4実施形態の線形二値識別器では、この1次元空間の原点、即ち、内積値0を境界として、線形二値識別器の出力が変化する。このため、上記識別度は、複数のデータを識別空間に写像した時の平均値と、当該識別空間における原点、つまり、識別器の出力が変化する境界点とのマハラノビス距離に基づいて算出していると解釈できる。また、マハラノビス距離は、データの分布を考慮した距離尺度であるので、データの分布と、識別器の出力が変化する境界点との関係に基づいて、識別度と求めているともいえる。
上記説明した、識別結果推定部95、及び、識別度記録部96での処理を、第1実施形態と同様に処理基準位置を変えながら、1つの画像セットに対して繰り返し行う。ここでの繰り返し処理は、図10の全位置の設定が終了したか否かに基づく分岐を行うステップS106によるループ処理に対応する。このループ処理により、第1実施形態と同様、多数の識別データが識別データ保持部97に記録されることになる。更に、第1実施形態と同様に、上記1つの画像セットに対するループ処理を、登録姿勢画像データベース90に記録されている全ての画像セットに対して繰り返し行う。ここでの更なる繰り返し処理は、図10の全画像セットについて処理が行なわれたか否かに基づく分岐を行うステップS107によるループ処理に対応する。
ステップS108において、特徴評価部98は、第1実施形態と同様、識別データ保持部97に記録された多数の識別データそれぞれについて、特徴としての有用度を求める。ただし、第1実施形態では、各識別データの識別度を、同一の識別結果列であった識別データの個数で除することにより求めたが、第4実施形態では、単純に、各識別データの識別度を、そのまま、特徴としての有用度とする。
ステップS109において、特徴選択部99は、特徴評価部98で求めた、各識別データの、特徴としての有用度に基づき、識別器生成部91で生成した線形二値識別器の{0、1}の出力それぞれに、どのような仮説情報を対応させるかを選択する。第4実施形態では、第3実施形態と同様に、各出力それぞれに対して、所定個数の識別データの選択を行うが、単純に、特徴としての有用度の高い順に選択するのではなく、特徴としての有用度の高さに基づく確率で、ランダムに所定個数の識別データを選択する。第4実施形態では、具体的には、推定出力結果が同一であった識別データから、特徴としての有用度に比例する確率に従い、重複を許さず、ランダムに20個の識別データを選択する。第4実施形態の推定出力結果は{0、1}であるので、それぞれの場合について20個の識別データを選択することになり、計40個の識別データが選択される。
最後に、ステップS1010において、結果出力部910は、他の実施形態と同様、特徴選択部99で選択した識別データに基づいて、線形二値識別器の{0、1}の出力に対応する仮説情報を求める。そして、結果出力部910は、これらの仮説情報と、当該線形二値識別器の情報をセットにして出力する。
以上の処理により、線形二値識別器の出力に対応する仮説情報を選択することが可能になる。第4実施形態でも、予め生成した識別器を用いて、各特徴の評価を行うため、結果として、最終的な識別精度が高くなるような特徴選択が実現できる可能性が高くなる。このように、本発明の特徴選択方法は、第1実施形態等のように、Fern型識別器に限るものではなく、その他の識別器を用いても実施可能である。なお、識別処理において複数の識別器を用いる場合は(図3,4により上述した例では50個)、上記第4実施形態の特徴選択方法を繰り返し行い、必要な数の線形二値識別器を生成し、それらを用いるようにすれば良い。
また、本実施形態の線形二値識別器を1つの要素識別器とみなし、これを複数連結して1つの識別器とし、各線形二値識別器の出力結果を並べた識別結果列を、この識別器の出力とするような形態も実施可能である。この場合、識別度記録部96で求めた識別度を、要素識別度とみなし、複数の線形二値識別器において得られる要素識別度を統合して、全体の識別度を求めるようにすれば良い。統合の方法としては、第1実施形態と同様に、単純に要素識別度の総和を求める方法等も考えられるが、第4実施形態では確率値を用いているので、各要素識別度の積を求めるようにするのが好ましい。
更に、上記実施形態では、識別値が二値である識別器を用いていたが、本発明はこれに限るものではなく、多値出力の識別器を用いても構わない。この場合でも、上記実施形態と同様、識別度として、その識別器によって得られる結果の確信度に類する値を求め、それを用いて特徴の選択を行えば良い。また、本実施形態の特徴選択部99での処理のように、ただ単に、特徴としての有用度が高い順に選ぶのではなく、特徴としての有用度の高さに従う確率で、ランダムに特徴を選択するようにしても良い。
尚、上記説明した各実施形態では、全て、画像中に存在する特定の物体の、位置、及び、姿勢を推定する処理に用いる識別器に関する例を説明したが、本発明の特徴選択方法は、これに限るものではない。例えば、人物の顔画像に基づいて、その人物が誰であるかを識別する処理に用いる識別器において、その識別器で用いる特徴を選択するような手法にも適用可能である。また、上記実施形態では、全て、いわゆるマルチクラスの問題の例のみを示したが、いわゆる2クラス問題も、マルチクラス問題の特別な場合とみなせるので、本特徴選択方法が、2クラス問題にも適用可能であることは言うまでもない。
また、上記説明した実施形態では、全て、2次元画像に対する特徴選択方法の例を説明したが、本発明は、2次元画像に限るものではない。例えば、1次元の音声データや、3次元のボリュームデータ等、その他の属性のデータにおいても、本発明が適用可能であることは言うまでもない。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。