データ補正装置及び方法
【課題】対象物体が大きな変動を有する場合であっても特徴点の位置の誤りや画像データの欠損を適切に補正する画像処理装置及び方法を提供する。
【解決手段】対象物の画像に関わるデータを補正するデータ補正装置は、補正対象のデータを連結したベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成し、その射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを変動の種類毎に生成する。そして、データ補正装置は、射影ベクトルに基づいて対象物の変動を判定し、その判定結果に基づいて上記複数の次元復元されたベクトルデータを統合して補正後のデータとして出力する。
【解決手段】対象物の画像に関わるデータを補正するデータ補正装置は、補正対象のデータを連結したベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成し、その射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを変動の種類毎に生成する。そして、データ補正装置は、射影ベクトルに基づいて対象物の変動を判定し、その判定結果に基づいて上記複数の次元復元されたベクトルデータを統合して補正後のデータとして出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像の認識等に用いられる特徴点の位置や画像データ等を補正するデータ補正方法及び装置に関する。
【背景技術】
【0002】
画像データを用いた顔認識等に於いて、顔器官或いはそれに準ずる特徴的な部位(以下特徴点とする)の位置決定は重要なタスクであり、認識性能を律する事が多い。決定した特徴点の位置は、認識対象画像の大きさ・回転の正規化や対象画像から認識に必要な部分領域を抽出する際の基準点等に利用される。識別判定に好適な特徴量を算出するためには正確な特徴点の位置決定が望まれる。
【0003】
特許文献1ではグラフマッチングによる顔の検出に関する技術が記載されている。特許文献1によれば、顔の向きに対応する複数の弾性バンチグラフと呼ばれる拘束条件を用意して顔検出を実行し、最良の弾性バンチグラフにより得られた検出結果から顔の向きや特徴点の位置を決定している。非特許文献1では複数の特徴点位置座標データを次元削減した部分空間に射影し、当該部分空間上で特徴点の位置を探索する手法が記載されている。特許文献2では顔の器官位置から経験的に求めた算術式に基づいて顔の向きを判定する手法が記載されている。
【0004】
また、非特許文献2では、特徴点の各座標値を入力ベクトルとし、部分空間を利用して特徴点の位置を補正する手法が記載されている。この手法の概要について説明する。まず、特徴点位置候補決定処理により、図16の(a)に示すような特徴点の位置を識別する。図16の(a)は特徴点の位置の例であり、“×”で示す14個の特徴点(これを特徴点のセットと定義する)を決定する場合の例を示している。例えば、図16の(a)における特徴点1601は向かって左目の目尻に対応する特徴点である。次に、部分空間射影処理により、上記決定処理で決定した各特徴点の座標値を入力ベクトルとして、これを部分空間に射影する。図16の(a)のように特徴点の数が14個の場合、28次元のベクトル(14個の水平方向座標値及び14個の垂直方向座標値を要素とするベクトル)が入力データとなる。部分空間への射影は、予め複数の学習用特徴点位置データを用いて主成分分析等により作成した射影行列を用いて行われる。
【0005】
次に、次元圧縮処理において、主成分析により得られた固有値の小さい射影行列に対応する射影値を削除することで次元を削減する。例えば、28次元の射影ベクトルを数次元に削減する。次に、部分空間逆射影処理において、次元が削減された射影ベクトルと射影行列とを用いて部分空間上に射影した入力ベクトルを実空間のベクトルに逆射影する。以上の処理により、学習用のデータセットを用いて生成した部分空間で表現できない外れ値を有する入力ベクトルが投入された場合でも、当該部分空間で表現可能なベクトルに補正される。即ち、部分空間を利用した統計的な幾何拘束条件に基づいて入力ベクトルが補正される。
【0006】
図16の(b)は特徴点位置候補決定処理で誤って特徴点が抽出された例を示している。特徴点1602が誤って決定された特徴点であり、眉毛端を誤って目尻と判定した例である。図16の(b)に示す特徴点位置からなる入力ベクトルに、上述の部分空間射影処理、次元削減処理、部分空間逆射影処理を実行すると、特徴点1602は部分空間で表現可能な位置に補正される。図16の(c)は部分空間逆射影処理後の特徴点位置の例を示す図であり、特徴点1602が特徴点1603に補正される様子を示している。
【0007】
続いて、距離算出処理において、特徴点位置候補決定処理の出力である特徴点候補の座標と、部分空間射影処理〜部分空間逆射影処理により補正された特徴点座標との距離を特徴点毎に算出する。図16の(b)、(c)に示す例の場合、特徴点1602と特徴点1703との間の画像座標上のユークリッド距離を算出する。次に選択処理において、距離算出処理で算出した特徴点の距離を閾値と比較して、上記補正前の特徴点と補正後の特徴点のどちらかの座標を特徴点毎に選択する。ここでは、特徴点間の距離が所定の閾値を超える場合に補正後の座標値が選択され、閾値以下の場合は補正前の座標が選択される。以上説明した処理は特徴点毎に繰り返される。また、選択処理の結果として得られた特徴点のセットを入力ベクトルとして部分空間射影処理〜選択処理を再実行することを複数回繰り返す事で適正な特徴点の位置を決定する。
【0008】
更に、非特許文献3では非特許文献2と同様の考え方を画像データを対象として処理し画像データを適切に補正する技術が記載されている。ここでは画像データそのものを低次元の部分空間に射影することで欠損データの補間を統計的に行う方法が記載されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特表2002−511617号公報
【特許文献2】特開2008−186247号公報
【非特許文献】
【0010】
【非特許文献1】R. Senaratne; S. Halgamuge. ”Optimized Landmark Model Matching for Face Recognition. ”Automatic Face and Gesture Recognition, 2006. FGR 2006. 7thInternational Conference、・pp. 120-125
【非特許文献2】Beumer,G.M.; Tao, Q.; Bazen, A.M.;Veldhuis, R.N.J. “A landmark paper in face recognition” Automatic Face and Gesture Recognition, 2006. FGR 2006. 7th International Conference、pp. 73-78
【非特許文献3】天野 敏之, 佐藤 幸男, “固有空間法を用いたBPLPによる画像補間”電子情報通信学会論文誌Vol.J85-D2 No.3 pp.457-465
【発明の概要】
【発明が解決しようとする課題】
【0011】
特許文献1に記載されている手法は最終的に顔が検出されるまで、顔の向き毎に弾性バンチグラフの変形と特徴量の一致度を繰り返し処理で演算するため計算量が多い。また、非特許文献1は部分空間上でParticle Swarm Optimization手法を利用して特徴点の位置を探索する事により、特許文献1で記載されている手法に比べて少ない演算量で高精度な特徴点の位置決めを実現している。しかしながら、当該手法も器官位置候補の決定と対応する位置での特徴量の抽出を繰り返し処理する必要があるため計算量が多い。また大きな顔の変動に対する対応は考慮されていない。特許文献に2では器官位置の配置関係から経験的に得られるルールに基づいて顔の向きを判定する手法が記載されている。当該技術を応用して器官位置の配置関係から候補として検出された器官位置のエラーを判定し補正する事も可能であるが、ルールベースの判定処理では様々な変動に対する最良のルールを設定する事が困難である。
【0012】
非特許文献2で記載されている部分空間を利用した幾何学的な補正処理は、少ない演算量で適切な幾何学的拘束処理が可能であり、有効な手法であるが、顔の向き・表情等に大きな変動がある場合について考慮されていない。変動に対応するため、部分空間の学習データに大きな変動を有するデータ群を加えた場合、補正能力が低下する。同様に、非特許文献3においても対象とする画像に大きな変動が有る場合についての考慮はなされていない。
【0013】
本発明は上述の課題に鑑みてなされたものであり、対象物体が大きな変動を有する場合であっても特徴点の位置や画像データを適切に補正するデータ補正装置及び方法を提供することを目的とする
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明は以下の構成を有する事を特徴とする。すなわち、
対象物の画像に関わるデータを補正するデータ補正装置であって、
補正対象のデータを連結したベクトルデータを入力する入力手段と、
前記ベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成する次元削減処理と、前記射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを前記画像における前記対象物の変動の種類毎に生成する生成手段と、
前記射影ベクトルに基づいて前記対象物の変動を判定する判定手段と、
前記判定手段の判定結果に基づいて前記複数の次元復元されたベクトルデータを統合して、補正後のデータとして出力する統合手段とを備える。
【発明の効果】
【0015】
本発明によれば、対象物体に大きな変動が有る場合であっても、簡単な処理で特徴点の位置や画像データを適切に補正する事ができる。
【図面の簡単な説明】
【0016】
【図1】第1実施形態による位置補正処理を説明するフロー図。
【図2】第1〜第5実施形態の画像処理装置の構成例を示すブロック図。
【図3】顔画像の切り出しを説明する図。
【図4】信頼度マップの生成処理を説明する図。
【図5】特徴データと特徴ベクトルの関係を説明する図。
【図6】第1及び第2重心探索処理を説明する図。
【図7】第1実施形態の変動判定処理と統合処理を説明するフロー図。
【図8】第2実施形態による位置補正処理を説明するフロー図。
【図9】第2実施形態の変動判定処理と統合処理を説明するフロー図。
【図10】第3実施形態による位置補正処理を説明するフロー図。
【図11】第3実施形態における逆射影行列の生成を説明する図。
【図12】第4実施形態による位置補正処理を説明するフロー図。
【図13】第4実施形態における識別処理を説明するフロー図。
【図14】第4実施形態における領域切り出し処理を説明する図。
【図15】第5実施形態による画像補正処理を説明するフロー図。
【図16】顔画像からの特徴点の検出を説明する図。
【発明を実施するための形態】
【0017】
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
【0018】
[第1実施形態]
第1実施形態による画像処理(データ補正処理)を実行可能な画像処理装置の構成を、図2のブロック図に示す。本実施形態の画像処理装置は顔画像中の複数の特徴点位置(ここでは顔の各器官に関連する特徴の位置)を決定する機能を有する。
【0019】
画像入力部201は、光学系、光電変換デバイス及びそれらを制御するドライバー回路/ADコンバーター/各種画像補正を司る信号処理回路/フレームバッファ等により構成される。光電変換デバイスとしては、CCD(Charge-CoupledDevices)又はCMOS(Complimentary Metal Oxide Semiconductor)センサ等が挙げられる。前処理部202は、後段の各種処理を効果的に行うために各種前処理を実行する。具体的には、前処理部202は、画像入力部201で取得した画像データに対して色変換処理/コントラスト補正処理等の画像データ変換をハードウェアで処理する。顔画像データ切り出し処理部203は前処理部202で補正した画像データに対して顔検出処理を実行する。顔検出の手法は従来より提案されている様々な手法を適用可能である。更に顔画像データ切り出し処理部203は検出された顔毎に顔画像データを所定のサイズに正規化して切り出す。ここでは、顔検出の結果を利用して大きさ及び面内回転を正規化した画像データを生成する。
【0020】
図3は顔画像データの切り出し処理例を説明する図である。前処理部202で補正された画像データ301から顔領域302を判定し、予め定められたサイズに正規化した顔画像データ303を切り出す。顔画像データ303の大きさは、正規化により一定となる。以後、特徴点の位置とは顔画像データ303の画像面内の特徴点の座標と定義する。また、その座標は、顔画像データ303の画像面の左上端を原点とする座標系(x座標、y座標)で表現するものとする。
【0021】
特徴位置信頼度算出処理部204は特徴点の存在の確からしさを示す情報である信頼度マップを算出する処理部である。特徴位置信頼度算出処理部204の詳細は後述する。DMAC206は画像バス211上の各処理部間及び画像バス211上のデバイスとCPUバス207上のRAM210/ROM209間のデータ転送等を司る。なお、DMACはDirect Memory Access Controller、RAMはRandom Access Memory、ROMはRead Only Memoryである。ブリッジ205は、画像バス211とCPUバス207間のバスブリッジ機能を提供する。CPU208は、本実施形態に係る主要な処理を実行すると共に本装置全体の動作を制御する。後述する各動作は、ROM209等のコンピュータ読み取り可能な記憶媒体に格納されたコンピュータプログラムをコンピュータ(CPU208)が実行することにより実行される。ROM209は、CPU208の動作を規定する命令を格納する。RAM210はCPU208の動作に必要な作業メモリである。RAM210は、DRAM(DynamicRAM)等を用いて比較的容量の大きいメモリとして構成される。CPU208(Central Processing Unit)はブリッジ205を介して画像バス211上の各種処理部にアクセスできる。画像バス211とCPUバス207を分離する事で、ハードウェアによる各処理部(201、202、203、204)とCPU208は同時に動作することが可能である。
【0022】
以上のような構成を備えた第1実施形態の画像処理装置による画像処理(データ補正処理)について、図1のフロー図を用いて説明する。図中ステップS101〜S107はCPU208が処理するステップを示す。特徴位置信頼度算出処理10において、顔画像データ切り出し処理部203は、顔検出結果に基づいて所定のサイズに正規化した顔画像データを図示しない内蔵RAMに格納する。格納された顔画像データはDMAC206を介して特徴位置信頼度算出処理部204の図示しないRAMに転送される。特徴位置信頼度算出処理部204は当該RAMに格納された画像データに対して、特徴点位置候補の存在の確からしさである信頼度を示す信頼度画像の算出を開始する。ここで生成される信頼度画像を特徴位置信頼度マップ11(以下、信頼度マップとも言う)と定義する。信頼度を算出するための手法は従来より提案されている様々な手法を適用する事ができる。最も簡単には、対応する特徴点の特徴を表現するテンプレートを学習により生成し、テンプレートと対象位置の画像の一致度を信頼度とする。
【0023】
図4は信頼度マップの生成の様子を模式的に説明する図である。402はテンプレートマッチングのためのテンプレートであり、403はテンプレートマッチングを実行する範囲を示す。テンプレート402を所定の範囲403内でスキャンし、対象位置におけるテンプレートの一致度を記録する事で信頼度マップ404を生成する。即ち、信頼度マップとは、画像データの代わりに信頼度が記録されたバッファメモリである。所定の範囲403には個人差・表情・向き・顔画像データ切り出し処理部203の正規化誤差等を考慮して検出対象とする端点を含む十分な広い領域を設定する。
【0024】
404は信頼度マップの例を模式的に示しており、信頼度マップ11に対応する。405、406は検出対象とする特徴点位置の信頼度が高い(この場合、テンプレートに一致度が高い)位置を示す。図4では、向かって左目尻の端点を検出するテンプレート402とのマッチングの結果を示している。また、406は対象とする端点、405は眉毛左端に生じる誤検出に相当するもとのする。特徴位置信頼度算出処理部204は特徴点毎に信頼度マップを生成する。したがって、例えば、図16の(a)に示す14個の特徴点を決定する場合、14種類の特徴点検出テンプレートを使用して、14枚の信頼度マップ11が生成される。なお、信頼度マップ11はスキャン範囲403の領域のみをメモリに保持する方法でも良い。また、ここではテンプレートマッチングにより信頼度を算出する手法について説明したが、ニューラルネットによる方法、カスケード型フィルタによる方法等、従来より提案されている様々なパターン識別手法を利用可能である。
【0025】
生成した信頼度マップ11はDMAC206を介してRAM210に転送される。CPU208は当該転送が終了すると特徴点位置決定のための動作(ステップS101〜ステップS107)を開始する。以後、CPU208はRAM210に格納した信頼度マップ11を参照して処理を継続する。第1重心探索処理(S101)は、特徴点毎に特徴位置信頼度マップ11の探索領域403内の特徴点位置信頼度値の重心を算出する。ここで得られた重心値を特徴点位置候補座標とする。重心の探索は各特徴点毎に行われる。重心探索の手法は一般的に知られている手法を適用して良い。また、重心の代わりに最大値を利用する等の他の手法でも良い。CPU208は算出した重心位置座標をRAM210に記録する。
【0026】
次に、ここで得られた特徴点位置候補座標をより適切な値に補正するための特徴点位置補正処理12を説明する。本実施形態では顔の向き毎に幾何学的補正処理である特徴点位置補正14a、14b、14cを用意し、顔向きに関する変動判定処理(S105)の結果に従って各補正結果を統合(S106)する。複数種類の変動(例えば、正面向き、右向き、左向きの3つの変動)に対応する補正処理を統合する。特徴点位置補正処理14a、14b、14cは部分空間を利用した補正処理部であり、それぞれ正面向き、右向き、左向きの特徴点配置に特化した補正処理である。即ち、射影行列a、b、c(13a〜13c)はそれぞれ正面向き・右向き・左向きの多数の学習用特徴点ベクトルを使用して主成分分析により算出した射影行列である(平均ベクトルも含む)。学習用特徴点ベクトルは正解座標の特徴点から得られる特徴点ベクトルである。尚、以降の説明では広義の射影行列を狭義の射影行列と平均ベクトルを用いて説明する。
【0027】
先ず特徴点ベクトル取得処理(S102)で重心探索結果である各特徴点の座標データをRAM210から取り出し、特徴点ベクトルデータを生成する。図5は各特徴点の位置座標データ501((xi, yi) i:1〜14)と、ここで取り出す特徴点ベクトル502(ベクトルV(要素vj:j=1〜28))の関係を説明する図である。iは特徴点の数でありここでは14である。従って、特徴点ベクトルはi×2の28次元となる。個のように、補正対象のデータを連結することでベクトル化され、ベクトルデータが生成される。例えば、特徴点ベクトルの要素v1、v2はそれぞれ第1番目の特徴点のx座標値、y座標値に対応する。特徴点ベクトルVは(1)式で定義される。なお、以降Tは転置を示す。
V = (v1,v2,v3,‥,v2×f )T …(1)
f:特徴点の数
【0028】
次元削減処理(S103a)では射影行列a(平均ベクトルも含む)(13a)を用いて射影ベクトルを生成する。射影ベクトルPaは、特徴点ベクトルVから射影行列生成時に生成した平均ベクトルAa(28次元のベクトル)を減じたベクトルと射影行列Eaを使用して(2)式により算出する。なお、射影行列Ea及び平均ベクトルAaは、正面向きの顔に対応する多数の学習用特徴点ベクトルを用いて、主成分分析により算出した行列である。
Pa=EaT(V−Aa) …(2)
Aa=(Aa,1,Aa,2, Aa,3, ‥, Aa,2×f)T …(3)
Ea=(ua,1,ua,2,‥, ua,p) …(4)
【0029】
ua,1, ua,2,‥, ua,pは主成分分析によって得られたそれぞれ2×f次元の正規直交ベクトルである。当該実施形態の場合それぞれ28次元のベクトルとなる。ここで、pは射影ベクトルの次元であり当該実施形態では6とする。即ち主成分分析によって得られる直交ベクトルの内、対応する固有値が大きい6個のベクトルを選択した行列が射影行列Eaである。射影行列Ea及び平均ベクトルAaはROM209或いはRAM210等に予め格納されているものとする。
【0030】
以上のように、次元削減処理(S103a)では、式(2)の演算により、2×f次元の特徴点ベクトルをp次元の射影ベクトルに次元削減する。この次元削減処理(S603a)により特徴点ベクトルは正面顔を表現する部分空間に射影される事になる。CPU208は算出した射影ベクトルをRAM210に格納する。
【0031】
次に、次元復元処理(S104a)では、射影ベクトルPaから元の特徴点ベクトル次元のデータ(即ち座標位置)を復元する。復元ベクトルVa’は上述の射影行列Eaと平均ベクトルAaを用いて(6)式により算出する。
Va’=EaPa + Aa …(6)
逆射影した復元ベクトルVa’は図5に示す特徴点ベクトル502の形式のデータであるため、特徴点ベクトル取得処理(S102)で取得したベクトルデータと同様に座標データ列501に対応付ける事が可能である。
【0032】
同様にS103b〜S104bでは右向きの顔に対応する複数の学習用特徴点ベクトルから算出した射影行列b(13b)(射影行列Eb及び平均ベクトルAb)を使用して部分空間への射影(式(2)に相当)と逆射影(式(6)に相当)を実行する。当該処理により右向き顔に対応する幾何学的な補正処理結果Vb’が得られる。同様に、S103c〜S104cでは左向きの顔に対応する複数の学習用特徴点ベクトルから算出した射影行列c(13c)(射影行列Ec及び平均ベクトルAc)を使用して部分空間への射影(式(2)に相当)と逆射影(式(6)に相当)を実行する。当該処理により左向き顔に対応する幾何学的な補正処理結果Vc’が得られる。以上のようにして、対象物の変動の種類毎の、複数の次元復元されたベクトルデータが取得される。
【0033】
変動判定処理(S105)では射影ベクトルから顔向きの変動を推定する。ここでは次元削減処理(S103a〜S103c)で算出した射影ベクトルPa,Pb,Pcを使用して変動を推定する。即ちPa,Pb,Pcの各要素を入力データとして予め学習により構築した識別器で判別を行う。変動の判定はSVM(Support Vector Machine)により学習した識別器で処理する。識別器は、予め顔の向きに対応する多数の特徴点ベクトルデータを用いて生成した射影ベクトルを教師データとして学習する。例えば、射影行列a〜c(13a〜13c)の生成に使用した学習用特徴点ベクトルデータを教師データとして利用しても良い。当該識別処理は次元圧縮された射影ベクトルに対して処理するため、少ない演算量で識別処理を実現できる。
【0034】
次に、図7を用いて、変動判定処理(S105)と統合処理(S106)を説明する。701は変動判定処理(S105)を示す。S701〜S703はSVM識別演算処理であり、射影ベクトルPa,Pb,Pcを単純に連結したベクトルDに対して識別処理演算を実行する。すなわち、S701〜S703において、CPU208は削減処理(S103a〜S103c)でRAM210に格納した射影ベクトルを読み出して下記(7)式に示すSVM演算を実行する。
判別結果n = sign(WnTD− h) (7)
WnT = (wn,1,wn,2,‥,wn,p×3)
h:閾値
n:1〜3(SVM識別器1〜3に対応)
sign:符号判定器
【0035】
式(7)は線形のSVMでありWnが予めSVMにより学習された重み係数である。当該係数は射影ベクトルの「次元数×変動の数」個の要素の係数を有する重み係数ベクトルである。W1は正面向きか右向きかを判定するための重み係数である。同様にW2は右向きか左向きかを判定する重み係数、W3は左向きか正面かを判定する重み係数である。S701では、W1を使用して正面向き(a)か右向き(b)かの判定を行う。同様に、S702、S703ではそれぞれW2、W3を使用して、右向き(b)か左向き(c)か、左向き(c)か正面か(a)の判定を行う。そして、多数決処理(S704)ではSVM識別演算処理(S701〜S703)の結果から最終的な顔の向きを決定する。なお、変動判定処理(S105)は当該実施形態で説明した方法に限るわけではなく、SVM以外の他の識別方法を適用可能である。
【0036】
702は統合処理(S106)を示す。統合処理では、多数決処理(S704)の結果に従って対応する補正後特徴点ベクトルa〜cを選択する。即ち、変動判定処理(S105)で右向きと判定された場合、右向きの逆射影処理、すなわち次元復元処理S104b、の結果を選択する。このように、変動の判定結果に基づいて逆射影結果を統合するので、入力された画像に応じて効率的に且つ適切に統合することができる。
【0037】
なお、ここでは統合処理(S106)が逆射影結果の一つを選択する場合について説明したが他の方法でも良い。例えばSVM識別処理(S701〜S703)が判定信頼度を出力する場合、当該信頼度をそれぞれC1〜C3として以下の演算式により最終的な補正後特徴点ベクトルPresult得る等の手法でも良い。
Presult = (C1×Pa+ C2×Pb+ C3×Pc)/(C1+ C2 + C3) …(8)
即ち信頼度を利用して複数の次元復元結果の重み付き平均手法により最終的な幾何学的補正結果を生成するようにしてもよい。
【0038】
図1に戻り、第2重心探索処理(S107)では、CPU208は、得られた幾何学的補正位置座標データに基づいて特徴点位置を再探索する。信頼度マップに対する特徴点位置の探索の例を図6を参照して説明する。図6において、601はある特徴点に対する信頼度マップを示す。604は第1重心探索処理(S101)における探査範囲の例を示す。第1重心探索処理の探索領域は、個人差や顔の変動等に対応するために、広い領域が設定される。603は対象とする特徴に対する信頼度の分布を示し、602は誤検出による信頼度の分布を示す。探査範囲604で重心を取った場合、特徴点の候補は605に示す様に本来の値から外れた座標となる。606は幾何学的補正後(統合処理(S106)の出力)の候補点座標位置を示す。第2重心探索処理(S107)では、この補正後の候補点座標位置606を中心として607に示す狭い範囲で領域内の重心を算出する。この場合、誤検出領域602が探索領域から外れる事になり、最終的な器官位置は608に示す本来の位置に判定される。
【0039】
以上のように、第1実施形態によれば、変動毎に用意した部分空間を選択的・統合的に利用する事で、多様な変動を有する場合であっても、幾何学的な配置関係に基づく特徴点位置の補正を実現する事ができる。また、部分空間への射影ベクトルを変動の推定に利用する事で少ない計算量で、効率的且つ効果的に対象物体の変動を推定する事ができる。
【0040】
[第2実施形態]
以下、第2実施形態について図8、図9を用いて説明する。第2実施形態の画像処理装置の構成は第1実施形態(図2)と同様であり、顔画像中の複数の特徴点位置を決定する機能を提供する。また、図8において第1実施形態(図1)と同様の構成には同一の参照番号を付してある。以下、第2実施形態について第1実施形態との差異を主として説明する。特徴点位置補正処理部82は第2実施形態による特徴点位置補正処理を実行し、第1重心探索処理(S101)において算出された各特徴点位置候補を補正する。ステップS101、S102、S803〜S806、S107は全てCPU208が処理する。
【0041】
本実施形態の特徴点位置補正処理部82では、先ず、全ての変動を含む部分空間(以下共通部分空間と定義する)への射影に基づく特徴点位置補正処理84dを実行する。次に、その結果に対して変動毎の部分空間への射影に基づく特徴点位置補正処理84a〜84cが実行され、統合処理(S806)によりその結果が統合される。更に、共通部分空間への射影に基づく特徴点位置補正処理84dの演算時に得られる射影ベクトルを用いて変動判定処理(S805)が行われる。統合処理(S806)は、変動判定処理(S805)の判定結果を利用して特徴点位置補正処理84a〜84cの結果を統合処理する。以下、各ステップについて詳細に説明する。
【0042】
特徴点ベクトル取得処理(S102)において、CPU208はRAM210に格納した各特徴点の位置座標データを特徴点ベクトルとして取り出す。特徴点ベクトルの構造は第1実施形態と同じである。第1の次元削減処理(S803d)において、CPU208は、特徴点ベクトルVに対して射影行列Ed及び平均ベクトルAdを含む第1の射影行列83dを用いて下記の式(9)に示す演算により第1の射影ベクトルPdを算出する。なお、射影行列Ed及び平均ベクトルAdは、対象とする全ての変動を含む多数の学習用特徴点ベクトルを用いて、予め主成分分析により算出しておく。射影行列の生成手法は学習用特徴点データが異なるだけで、第1実施形態と同じである。ここでは正面・右向き・左向きの変動を含む多数の学習用特徴点位置座標データを使用する。
Pd = EdT(V−Ad) …(9)
Ad = (Ad,1,Ad,2, Ad,3, ‥, Ad,2×f)T …(10)
Ed = (ud,1,ud,2,‥, ud,p) …(11)
ud,1, ud,2,‥, ud,pは主成分分析によって得られたそれぞれ2×f次元の正規直交ベクトルである。当該実施形態の場合それぞれ28次元ベクトルとなる。pは射影ベクトルPdの次元であり当該実施形態では6とする。主成分分析によって得られる正規直交ベクトルの選択法も第1実施形態と同じである。射影行列Ed及び平均ベクトルAdはROM209或いはRAM210に予め格納されているものとする。CPU208は(9)式の演算結果をRAM210に格納する。
【0043】
次に、上記第1の射影ベクトルを次元復元する第1の次元復元処理(S804d)において、CPU208は、射影行列Ed及び平均ベクトルAdを用いて式(12)に示す次元復元処理を実行する。
Vd’=EdPd + Ad …(12)
以上の次元削減処理(S803d)と次元復元処理(ステップS804d)により共通部分空間への射影に基づく補正後特徴点ベクトルが生成される。ここでの補正処理により大きな外れ値を除去し、後段の特徴点位置補正処理(84a〜84c)の安定度を高める事ができる。
【0044】
特徴点位置補正処理a〜c(84a〜84c)は図1の特徴点位置補正処理a〜c(14a〜14c)と等価であり、それぞれ正面顔、右顔、左顔に特化した特徴点の位置補正を実行する。次元削減処理(S803a〜S803c)では次元復元処理(S804d)で生成した補正後の特徴点ベクトルデータに対して第2の射影行列83a〜83cを用いて次元削減処理を実行する。ここでは、CPU208は、射影行列Ea〜Ec及び平均ベクトルAa〜Acを有する射影行列83a〜83cを用いて式(9)と同等の演算により射影ベクトルPa〜Pcを算出する。射影行列Ea、Eb、Ecはそれぞれ正面顔、右顔、左顔に対応する学習用特徴点ベクトルを用いて主成分分析により生成したベクトルである。また、平均ベクトルAa,Ab,Acはそれぞれ正面顔、右顔、左顔に対応する特徴点ベクトルを用いて生成したベクトルである。次元復元処理(S804a〜S804c)では、第1実施形態の次元復元処理(S104a〜S104c)と同様に、射影ベクトルPa,Pb,Pcのそれぞれから元の特徴点ベクトル次元のデータ(即ち座標位置)を復元する。こうして、対象物の変動の種類毎の、複数の次元復元されたベクトルデータが取得される。
【0045】
変動判定処理(S805)においてCPU208は、次元削減処理(S803d)の結果である射影ベクトルPdをRAM210から読み出し、対象とする顔の変動を推定する。第2実施形態による変動判定処理(S805)と統合処理(S806)について、図9を参照して説明する。901は変動判定処理(S805)の処理内容を示している。S901〜S903はSVM識別演算処理であり、射影ベクトルPdに対して変動判定演算を実行する。尚、S901〜S905もCPU208の動作を示す。S901〜S903では下記の(13)式に示すSVM演算を実行する。
判別結果n = sign(WnTPd−h) …(13)
WnT = (wn,1,wn,2,‥,wn,p)
h:閾値
n:1〜3(SVM識別器1〜3に対応)
【0046】
式(13)は線形のSVMでありWnは予めSVMにより学習された重み係数である。本実施形態では、Wnは射影ベクトルの次元数の要素の係数を有する重み係数ベクトルである。W1は正面向きか右向きかを判定するための重み係数である。同様にW2は右向きか左向きかを判定する重み係数、W3は左向きか正面かを判定する重み係数である。S901〜S903ではそれぞれW1〜W3を使用して判定が行われる。多数決処理(S904)ではSVM識別演算処理(S901〜S903)の各判定結果から顔の向きを決定する。なお、変動判定処理(S805)は上記実施形態で説明した方法に限られるわけではなく、SVM以外の他の識別方法を適用可能である。
【0047】
902は統合処理(S806)の内容を示しており、選択処理(S905)が、変動の判定結果に従って対応する変動の補正後特徴点ベクトルを選択する。CPU208は統合結果である最終的な特徴点ベクトルデータから特徴点位置座標データを得てRAM210に記録する。第2重心探索処理(S107)は第1実施形態と同様に、統合結果によって制限された領域内の重心探索を実行し、最終的な特徴点位置を確定する。
【0048】
以上、第2実施形態で示した様に、統合処理(S806)で特徴点位置補正a〜cの結果を選択する場合、必要な特徴点位置補正処理だけ(すなわち特徴点位置補正処理84a〜84cの何れか)を実行すれば良い。又、第1実施形態で示したように、変動判定処理(S805)におけるSVM識別演算処理(S901〜S903)で判定信頼度を出力して各補正結果に重み付けをして統合する様な方法でも良い。
【0049】
以上のように、第2実施形態によれば、全ての変動を含む部分空間(共通部分空間)への射影ベクトルPdを取り出す事が可能になる。これにより、少ない次元数のデータから変動を推定する事が可能になり変動判定の演算量を削減する事ができる。これは、複雑な変動判定手法を適用する場合や変動の種類が多い場合に特に有効である。また、特徴点位置の補正が階層的に処理されることになるので、より安定した補正処理を実現する事が可能になる。
【0050】
[第3実施形態]
以下、第3実施形態による画像処理装置について図10、図11を用いて説明する。第3実施形態の画像処理装置も第1実施形態と同様の構成(図2)を有し、顔画像中の複数の特徴点位置を決定する機能を提供する。以下、第1実施形態との差異を中心に説明する。
【0051】
第3実施形態の画像処理装置による画像処理について図10を用いて説明する。図10において第1実施形態(図1)と同様の構成には、第1実施形態と同一の参照番号を付してある。以下、第3実施形態による特徴点位置補正処理1002を説明する。本実施形態では、先ず、全ての変動を含む部分空間(共通部分空間)への射影ベクトルを算出する。その結果である射影ベクトルから変動毎に生成した逆射影ベクトルを用いて補正後の特徴点ベクトルを生成する。また、射影ベクトルから変動の判定を行い当該結果を利用して変動毎の補正後特徴点ベクトルを統合処理する。以降、詳細な動作について説明する。なお、以下に説明する各処理はCPU208が実行する処理である。
【0052】
第1重心探索処理(S101)では、第1実施形態と同様にRAM210に格納する特徴毎の特徴位置信頼度マップ11を参照して特徴点位置の候補を探索し結果をRAM210に格納する。RAM210に格納した複数の特徴点候補座標データから特徴点ベクトルを取得する(S102)。特徴点座標データと特徴点ベクトルとの関係は第1実施形態で示した例と同一である。次元削減処理(S1003)では全ての変動を含む複数の特徴点ベクトルから生成した射影行列Edを使用して次元削減処理を実行する。ここでの射影行列Edは第2実施形態で示した共通部分空間への射影行列と同一である。即ち、射影行列Edは対象とする全ての変動を含む多量の学習用特徴点ベクトルから主成分分析により予め算出したものである。次元削減処理(S1003)は、射影行列1003d(射影行列Ed及び平均ベクトルAd)を使用して下記の(14)式に従って次元削減処理を実行する。Adも第2実施形態と同一である。
Pd = EdT(V−Ad) …(14)
【0053】
次元復元処理(S1004a〜S1004c)では、変動毎に生成した逆射影行列1003a〜1003cを使用して射影ベクトルPdから補正後の特徴点ベクトルを生成する。逆射影行列1003a〜1003cは、逆射影行列Ba〜Bc及び平均ベクトルCa〜Ccを含む。以下、逆射影行列Ba〜Bcの作成方法について説明する。図11の(a)は図8(第2実施形態)に示した特徴点位置補正処理84d及び83aを示している。ここでは次元削減処理(S803d)、次元復元処理(S804d)、次元削減処理(S803a)、次元復元処理(S804a)を順次処理する事で正面顔に対する特徴点の補正を階層的に処理している。これら各ステップの演算は、式(9)、式(12)等に示す線形行列演算である。従って、補正後特徴点ベクトルVa’は以下の式(15)で表され得る。なお、式(15)では、全ての変動を含む学習用特徴ベクトルから生成した射影行列、平均ベクトルをそれぞれEd、Adとし、正面顔のみを含む学習用特徴ベクトルから生成した射影行列、平均ベクトルをそれぞれEa、Aaとする。
【0054】
Va’=EaEaT((EdPd+Ad) -Aa) + Aa …(15)
Ea=(ua,1,ua,2,‥, ua,p) …(16)
Ed=(ud,1,ud,2,‥, ud,p) …(17)
Aa=(Aa,1,Aa,2,Aa,3,‥, Aa,2×f)T …(18)
Ad=(Ad,1,Ad,2,Ad,3,‥, Ad,2×f)T …(19)
ここで、上記の式(14)は全て線形行列演算であるため行列の合成により、
Va’=EaEaTEdPd+EaEaT(Ad - Aa)+Aa
= BaPd+Ca …(20)
に整理する事ができる。
【0055】
ここでBaは新たに生成した射影行列、
Ba=EaEaTEd …(21)
Caは新たに生成した平均ベクトル
Ca=EaEaT(Ad - Aa)+Aa …(22)
であり、何れも処理に先だって算出する事ができる。即ち、図11において1101に示す一連の処理ステップ群を1102に示す次元復元処理(S1004a)にまとめる事ができる。以上のように、次元復元処理(S104a)では、上記の式(21)、式(22)で予め生成した逆射影行列1003a(逆射影行列Baと平均ベクトルCa)を用いて逆射影処理を行う。以上の処理により変動に特化(ここでは正面顔)した補正を実現することができる。
【0056】
同様に、特定の変動として右顔に対する学習用特徴点ベクトルを用いて生成した射影行列Ebと平均ベクトルAbとを用いて、(23)式により逆射影演算を実行する(S1004b)。ここで使用する射影行列Bb・平均ベクトルCbは(24)(25)式に従って予め算出しておく。
Vb’=BbPd + Cb …(23)
Bb=EbEbTEd …(24)
Cb=EbEbT(Ad - Ab)+Ab …(25)
【0057】
更に、同様に特定の変動として左顔に対する学習用特徴点ベクトルを用いて生成した射影行列Ec平均ベクトルAcを用いて(26)式により逆射影演算を実行する(S1004c)。ここで使用する射影行列Bc、平均ベクトルCb算出は、(27)式、(28)式に従って予め算出しておく。
Vc’=BcPd + Cc …(26)
Bc=EcEcTEd …(27)
Cb=EcEcT(Ad- Ac)+Ac …(28)
【0058】
以上のようにして、対象物の変動毎の、複数の次元復元されたベクトルデータが取得される。そして、変動判定処理(S1005)では、第3実施形態(S805)と同様に射影ベクトルPdから変動の種類を判定する。統合処理(S1006)では、変動判定処理(S1005)の判定結果に従って次元復元処理(S104a〜S104c)の結果を統合する。統合処理(S1006)の処理も第3実施形態に記載の方法と同じで良い。第2重心探索処理(S107)では最終的に決定した特徴点座標に基づいてRAM210上の特徴位置信頼度マップ11から最終特徴位置を判定する。第2重心探索処理は第1、第2実施形態と同様でよい。
【0059】
第3実施形態によれば、射影行列1003dを用いて次元復元する演算と、変動の種類毎にデータを学習して得られた射影行列83a、83b、83cによる次元削減及び次元復元の演算とを合成した演算行列が用いられる。このため、第2実施形態と同じ結果を少ない演算回数で得る事ができる。また、第2実施形態と同様に共通部分空間への射影ベクトルを出力する事ができる。また、第3実施形態によれば、次元圧縮用の射影行列と変動毎に合成した逆射影ベクトルを予め算出しておくことができるので、少ない演算回数で大きな変動に対応する幾何学的補正処理を実現する事ができる。また、変動判定のための共通部分空間への射影ベクトルを生成する事が可能であるため、少ない演算回数で変動を推定する事ができる。
【0060】
[第4実施形態]
以下、第4実施形態の画像判別装置について図12〜図14を用いて説明する。第4実施形態では、特徴点の位置に基づいて特徴抽出を行い当該抽出結果に基づいて識別処理を実行する機能を提供する画像判別装置を説明する。なお、第4実施形態による画像判別装置の構成も第1実施形態(図2)と同様である。第4実施形態による画像判別装置の動作を図12を用いて説明する。なお、図12において、特徴位置信頼度算出処理10、特徴位置信頼度マップ11、第1重心探索処理(S101)、特徴点位置補正処理1002は、第3実施形態と同様のものである。
【0061】
第2重心探索処理(S1201)では補正後の特徴点位置座標データに従ってRAM210に格納した特徴位置信頼度マップを再探索する。本実施形態では変動判定処理(S1005)の結果に応じて第2重心探索処理(S1201)の探索パラメータを変更する。例えば変動の大きさに応じて探索領域の幅や高さを変更する。なお、変動に応じた最適な探索領域やパラメータは予め学習により求める事ができる。即ち変動毎に用意した複数の学習用の画像データから補正後の特徴点位置を算出し、探索領域を変更させながら統計的に最も正解の位置を出力可能な探索領域607(図6)を求める。ここでの探索パラメータはRAM210又はROM209にテーブル情報として格納されているものとする。CPU208は変動判定処理(S1005)の結果に応じて所定アドレスのテーブルを参照する事で必要な探索領域を決定する。また、探索領域の大きさ形状だけでなく重心探索時の閾値等のパラメータを変動毎に用意して切り替えても良い。
【0062】
次に、識別処理(S1202)では求められた特徴点位置座標情報に従って識別処理を実行する。図13は第3実施形態による識別処理(S1202)の詳細を説明する図である。再正規化処理(S1301)において、CPU208は、特徴点位置座標に基づいて顔画像を再正規化する。ここでは目の幅や目と口の距離等に基づいて顔画像データを所定のサイズに変換する。領域切り出し処理(S1302)において、CPU208は、特徴点位置座標に基づいて識別に使用する画像領域を設定する。図14は再正規化後の顔画像データ1401に対する切り出し領域の例を説明する図である。1402,1403が切り出し領域であり、目・鼻・口の座標位置に基づいて予め定める領域が切り出されている。領域補正処理(S1303)において、CPU208は、変動判定処理(S1005)の結果に従って、切り出した領域の画像データを変形する。ここでは、顔の向き変動に応じて、切り出し処理(S1302)で切り出された部分領域画像をアフィン変換等により変形する。変形のためのパラメータは変動に応じて予め大量のデータを使用して学習により生成しておく。即ち、顔の向き等の変動に応じたアフィンパラメータを予め決定しておき、変動判定処理(S1005)の結果に従って切り替える。領域補正処理(S1303)での変形処理により、顔が正面顔とは異なる場合であっても、正面顔に近い部分領域に変形する事ができる。
【0063】
次元削減処理(S1304)において、CPU208は、補正された識別用の画像データの次元を削減する。次元削減の手法は、主成分分析を用いた手法等、従来より提案されている手法を適用して良い。相関演算処理(S1305)において、CPU208は、次元削減された入力顔画像データと予め次元削減し登録しておいた登録データ1301との相関演算により入力顔画像が登録データであるか否かや登録データのどれに対応するか等の判定を行う。登録データは識別したい特定の人物の顔画像から生成したデータである。また、複数の部分領域を使用する場合、それぞれ領域毎に相関演算行い、得られた複数の類似度を用いて判定する。以上の処理により、顔画像から特定の個人を識別する。
【0064】
以上のように第4実施形態によれば、特徴点位置補正処理の変動判定処理(S1005)の結果を利用して第2重心探索処理(S1201)の探索パラメータを選択する事でより正確に特徴点の位置を決定する事ができる。更に変動判定処理(S1005)の結果を識別処理(S1202)で利用する事でより高い精度で識別を行うことができる。
【0065】
尚、第4実施形態では、変動判別結果を利用して部分領域の補正パラメータを選択する場合について説明したがこれに限られるものではない。例えば、変動に応じて再正規化処理(S1301)のパラメータや領域切り出し処理(S1302)のパラメータを変えるように構成してもよい。更に変動判別結果に応じて次元削減処理(S1304)の内容を変える等の手法を採用することも可能である。或いは、登録データを変動毎に用意して、変動判定処理(S1005)の結果に従って選択する等の構成とすることもできる。また、第4実施形態では、識別処理(S1202)を第3実施形態の特徴点位置補正処理1002と組み合わせた例を説明したが、第1、第2実施形態の位置補正処理(12,82)と識別処理を組み合わせることももちろん可能である。
【0066】
[第5実施形態]
第1〜第4実施形態では、特徴点の補正に本発明を適用した場合について説明したが、第5実施形態では画像データの補正に適用した場合について説明する。なお、第5実施形態による画像処理装置の構成も第1実施形態(図2)と同様である。ただし、特徴位置信頼度算出処理部204は無くてもよい。以下、図15を用いて本実施形態の動作について説明する。
【0067】
図15は図2に示す装置を使用して画像データの補正処理を実現する場合の処理について説明する図である。画像ベクトル取得処理(S1501)において、CPU208は、RAM210に格納した切り出し顔画像データを読み出し、画素値を要素とするベクトルデータIを生成する。
I=(i1,i2,i,… ,in)T
in:画素値、
n:切り出し画像領域内の総画素数
【0068】
次元削減処理(S1502)において、CPU208は、射影行列(Ed及びAd)1503dを使用して画像ベクトルを部分空間に射影する。ここで、Ed、Adは様々な変動を含む多量の学習用画像ベクトルを使用して主成分分析により算出した射影ベクトル及び平均ベクトルである。但し、ここで使用する学習用データセットには補正対象となる欠損画像やオクルージョン画像は含まない。射影行列1501dを用いた射影演算によりn次元のベクトルがp次元のベクトルに圧縮される(n>p)。すなわち、次元削減処理(S1502)では、以下に示す式(29)により次元削減ベクトルPdが生成される。
Pd=EdT(I−Ad) …(29)
Ad=(Ad,1,Ad,2, Ad,3, ‥, Ad,n)T …(30)
Ed=(ud,1,ud,2,‥, ud,p) …(31)
ud,1, ud,2,‥, ud,pは主成分分析によって得られたそれぞれn次元の正規直交ベクトルである。
【0069】
次に次元復元処理(S1503a)において、CPU208は以下の式(32)に示す行列演算で補正後の画像データベクトルIaを算出する。
Ia=BaPd + Ca …(32)
ここでBaは予め生成した射影行列、
Ba=EaEaTEd …(33)
Caは予め生成した平均ベクトル、
Ca=EaEaT(Ad - Aa)+Aa …(34)
でありEd、Adはそれぞれ上述した射影行列1501dにおける射影行列と平均ベクトルである。一方、Ea、Aaは特定の変動に対応する多量の学習用画像ベクトルを用いて主成分分析により生成した射影行列、平均ベクトルである。ここでは正面向きの顔画像を用いて生成した射影ベクトルを使用する。次元復元処理(S1503a)で実際に使用する射影行列Ba及び平均ベクトルCaの算出式は第3実施形態と同じであり、図11に示したように2つの補正処理に必要な行列演算の合成である。逆射影行列1501aは、射影行列Ba及び平均ベクトルCaを含む。
【0070】
同様に特定の変動として右顔の大量画像データを用いて射影行列Ebと平均ベクトルAbを算出し、(36)式と(37)式により次元復元処理(S1503b)で使用する射影行列Bb・平均ベクトルCbを算出しておく。
Ib’=BbPd +Cb …(35)
Bb=EbEbTEd …(36)
Cb=EbEbT(Ad - Ab)+Ab …(37)
復元処理(S1503b)では(35)式に従って補正画像ベクトルを生成する。
【0071】
更に、同様に特定の変動として左顔に対する大量の画像データを用いて射影行列Ecと平均ベクトルAcを算出し、(39)式と(40)式により次元復元処理(S1503c)で使用する射影行列Bc、平均ベクトルCcを算出しておく。
Ic’=BcPd +Cc …(38)
Bc=EcEcTEd …(39)
Cb=EcEcT(Ad - Ac)+Ac …(40)
復元処理(S1503c)では(38)式に従って補正画像ベクトルを生成する。
【0072】
以上、3つの復元処理(S1503a〜S1503c)により特定の変動毎に補正された画像ベクトルが得られる。すなわち、対象物の変動毎の、複数の次元復元されたベクトルデータが取得される。なお、Ea〜Ecの生成の際に使用した射影ベクトルは傷やオクルージョンが無い学習用画像データから生成する。従って、当該射影ベクトルを用いて次元削減した空間では該当する傷やオクルージョンを表現できない。従って、入力する画像データに傷やオクルージョンが有る場合、次元削減処理(S1502)及び次元復元処理(S1503a〜S1503c)により統計的に補間された画像データを生成する事ができる。これにより例外的な画像パターンを含む顔画像を適切に補正する事ができる。
【0073】
変動判定処理(S1504)において、CPU208は、次元削減処理(S1502)により得られた次元削減データPdを使用して変動を推定する。ここでは顔の向きを推定する。変動判定処理(S1504)には、第2実施形態(図9)で示した方法を適用可能であり、共通部分空間に対する次元削減データから変動判定を実施する事で、少ない計算量で変動判定処理を実現できる。変動判定処理(S1504)は変動判定結果をRAM210の所定の領域に記録する。当該情報は後段の処理で利用可能である。
【0074】
ステップS1905では変動判定結果に従って次元復元処理ステップS1903a〜S1903cの結果を統合する。統合処理ステップS1905も第1実施形態で示す方法と同様に単純な選択或いは重み付き平均手法等により最終的な画像ベクトルを算出する。統合後の最終結果である補正後画像ベクトルは補正後画像データとしてRAM210に記録する。
【0075】
以上のように、第5実施形態によれば、大きな変動を有する画像データの補正を統計的に適切に処理可能である。例えば当該補正処理を顔認識の前処理に適用する事で認識精度を向上させる事が出来る。また、補正処理の過程で低次元の共通部分空間への射影ベクトルを生成する事ができる。当該射影ベクトルを利用する事で、少ない演算量で変動の種類を判定する事ができる。なお、第5実施形態における演算の基本的な手法は第3実施形態に示す手法と同様であるが、第3実施形態に比して取り扱うデータの次元が多いため演算量削減の効果がより大きい。なお、第1、第2実施形態で説明した位置補正処理を画像補正に適用することも可能であることは当業者には明らかである。
【0076】
[その他実施形態]
実施形態では変動判定の手法として線形SVMによる場合について説明したが、本発明はこれに限るわけではなく様々な手法を適用可能である。例えば、非線形SVMを適用した場合、演算回数が大幅に増加するため、本発明の特徴である少ないデータ(射影ベクトル)からの変動判定効果の優位性がより高まる。
また、実施形態では主成分分析により生成した射影行列で部分空間へ射影する場合について説明したが、他の手法を用いてもよい。
【0077】
また、変動判定処理(S106等)の精度を高めるために、従来より提案されているLPP、LFDA等、射影後のデータに対するクラス判定に有利な手法で生成された射影行列を用いて次元削減を行っても良い。なお、LPPとは「Locality Preserving Projection」、LFDAとは「Local Fisher discriminant analysis」である。第2〜第5実施形態で示す様に、本発明では、任意の共通部分空間に対する射影演算に基づいて補正を行う事から、この様な射影行列を導入する事ができる。これにより、補正精度を向上させる事ができる。
【0078】
また、上記各実施形態では、変動判定処理(S104等)が判定する変動として顔の向きについて説明したが本発明はこれに限るわけではなく、表情の変動等様々な変動に対応可能である。その場合も対象とする変動を含む学習データを用意して射影行列を算出するだけで同様に処理できる。つまり、変動に対応するための経験的なルールの設定等の必要がない。
【0079】
実施形態では人物の顔の識別に当該発明を適用した場合について説明したが、これに限るわけではなく、様々な物体の特徴点の決定の際にに利用可能である。例えば、人体・動物・車等の工業製品等、特徴点の配置が対象物のカテゴリ毎に拘束されるあらゆるケースに適用する事が可能である。その場合も、対象とするカテゴリの特徴点配置データを変動毎に複数用意するだけで高精度な幾何拘束処理を実現する事ができる。
【0080】
また、上記各実施形態では変動毎の部分空間の次元数が共通の場合について説明したが本発明はこれに限るわけではない。変動毎に次元数を変えても良い。これは第3〜第5実施形態で説明した合成によって新たな射影ベクトルを生成する場合であっても同様である。変動によって最適な補正を実現する次元数は異なるため、これにより、補正性能が向上する。また、変動判定に用いる共通部分空間の次元数を他の部分空間の次元数と変える様な構成でも良い。更に、上記各実施形態では一般的な画像データから抽出した特徴点や画像データそのものに対して本発明を適用した場合について説明したが、他のセンシング情報に基づく特徴データに対して幾何学的な拘束処理を施す場合にも適用可能である。
【0081】
また、次元削減や次元復元のための射影行列の生成手法を変動によって変えることにより、変動に応じて最適な部分空間を生成するように構成することができ、変動推定精度を向上させることができる。また、第2、第3実施形態において、第1の射影行列を変動の推定に好適な次元圧縮手法で生成すれば、効率的・効果的に変動推定用射影行列を生成することができる。また、射影行列を用いた次元削減の結果の次元は変動によって異なるようにしてもよい。これにより、変動に応じて最適な部分空間を生成することができる。
【0082】
また、対象物(カテゴリ)を人物の顔とし、特徴データを顔の器官に関連する位置座標データとすることにより、顔の向きや変形、表情等にロバストな器官の検出を実現する事ができる。更に、対象物に関連する特徴データを対象物の画素値とすることにより、大きな変動を含む画像データに対して統計的な画像補完を実現する事ができる。
【0083】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【産業上の利用可能性】
【0084】
本発明は、特徴点の配置関係を決定する装置や各種の画像処理装置等に幅広く適用する事が可能である。
【技術分野】
【0001】
本発明は画像の認識等に用いられる特徴点の位置や画像データ等を補正するデータ補正方法及び装置に関する。
【背景技術】
【0002】
画像データを用いた顔認識等に於いて、顔器官或いはそれに準ずる特徴的な部位(以下特徴点とする)の位置決定は重要なタスクであり、認識性能を律する事が多い。決定した特徴点の位置は、認識対象画像の大きさ・回転の正規化や対象画像から認識に必要な部分領域を抽出する際の基準点等に利用される。識別判定に好適な特徴量を算出するためには正確な特徴点の位置決定が望まれる。
【0003】
特許文献1ではグラフマッチングによる顔の検出に関する技術が記載されている。特許文献1によれば、顔の向きに対応する複数の弾性バンチグラフと呼ばれる拘束条件を用意して顔検出を実行し、最良の弾性バンチグラフにより得られた検出結果から顔の向きや特徴点の位置を決定している。非特許文献1では複数の特徴点位置座標データを次元削減した部分空間に射影し、当該部分空間上で特徴点の位置を探索する手法が記載されている。特許文献2では顔の器官位置から経験的に求めた算術式に基づいて顔の向きを判定する手法が記載されている。
【0004】
また、非特許文献2では、特徴点の各座標値を入力ベクトルとし、部分空間を利用して特徴点の位置を補正する手法が記載されている。この手法の概要について説明する。まず、特徴点位置候補決定処理により、図16の(a)に示すような特徴点の位置を識別する。図16の(a)は特徴点の位置の例であり、“×”で示す14個の特徴点(これを特徴点のセットと定義する)を決定する場合の例を示している。例えば、図16の(a)における特徴点1601は向かって左目の目尻に対応する特徴点である。次に、部分空間射影処理により、上記決定処理で決定した各特徴点の座標値を入力ベクトルとして、これを部分空間に射影する。図16の(a)のように特徴点の数が14個の場合、28次元のベクトル(14個の水平方向座標値及び14個の垂直方向座標値を要素とするベクトル)が入力データとなる。部分空間への射影は、予め複数の学習用特徴点位置データを用いて主成分分析等により作成した射影行列を用いて行われる。
【0005】
次に、次元圧縮処理において、主成分析により得られた固有値の小さい射影行列に対応する射影値を削除することで次元を削減する。例えば、28次元の射影ベクトルを数次元に削減する。次に、部分空間逆射影処理において、次元が削減された射影ベクトルと射影行列とを用いて部分空間上に射影した入力ベクトルを実空間のベクトルに逆射影する。以上の処理により、学習用のデータセットを用いて生成した部分空間で表現できない外れ値を有する入力ベクトルが投入された場合でも、当該部分空間で表現可能なベクトルに補正される。即ち、部分空間を利用した統計的な幾何拘束条件に基づいて入力ベクトルが補正される。
【0006】
図16の(b)は特徴点位置候補決定処理で誤って特徴点が抽出された例を示している。特徴点1602が誤って決定された特徴点であり、眉毛端を誤って目尻と判定した例である。図16の(b)に示す特徴点位置からなる入力ベクトルに、上述の部分空間射影処理、次元削減処理、部分空間逆射影処理を実行すると、特徴点1602は部分空間で表現可能な位置に補正される。図16の(c)は部分空間逆射影処理後の特徴点位置の例を示す図であり、特徴点1602が特徴点1603に補正される様子を示している。
【0007】
続いて、距離算出処理において、特徴点位置候補決定処理の出力である特徴点候補の座標と、部分空間射影処理〜部分空間逆射影処理により補正された特徴点座標との距離を特徴点毎に算出する。図16の(b)、(c)に示す例の場合、特徴点1602と特徴点1703との間の画像座標上のユークリッド距離を算出する。次に選択処理において、距離算出処理で算出した特徴点の距離を閾値と比較して、上記補正前の特徴点と補正後の特徴点のどちらかの座標を特徴点毎に選択する。ここでは、特徴点間の距離が所定の閾値を超える場合に補正後の座標値が選択され、閾値以下の場合は補正前の座標が選択される。以上説明した処理は特徴点毎に繰り返される。また、選択処理の結果として得られた特徴点のセットを入力ベクトルとして部分空間射影処理〜選択処理を再実行することを複数回繰り返す事で適正な特徴点の位置を決定する。
【0008】
更に、非特許文献3では非特許文献2と同様の考え方を画像データを対象として処理し画像データを適切に補正する技術が記載されている。ここでは画像データそのものを低次元の部分空間に射影することで欠損データの補間を統計的に行う方法が記載されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特表2002−511617号公報
【特許文献2】特開2008−186247号公報
【非特許文献】
【0010】
【非特許文献1】R. Senaratne; S. Halgamuge. ”Optimized Landmark Model Matching for Face Recognition. ”Automatic Face and Gesture Recognition, 2006. FGR 2006. 7thInternational Conference、・pp. 120-125
【非特許文献2】Beumer,G.M.; Tao, Q.; Bazen, A.M.;Veldhuis, R.N.J. “A landmark paper in face recognition” Automatic Face and Gesture Recognition, 2006. FGR 2006. 7th International Conference、pp. 73-78
【非特許文献3】天野 敏之, 佐藤 幸男, “固有空間法を用いたBPLPによる画像補間”電子情報通信学会論文誌Vol.J85-D2 No.3 pp.457-465
【発明の概要】
【発明が解決しようとする課題】
【0011】
特許文献1に記載されている手法は最終的に顔が検出されるまで、顔の向き毎に弾性バンチグラフの変形と特徴量の一致度を繰り返し処理で演算するため計算量が多い。また、非特許文献1は部分空間上でParticle Swarm Optimization手法を利用して特徴点の位置を探索する事により、特許文献1で記載されている手法に比べて少ない演算量で高精度な特徴点の位置決めを実現している。しかしながら、当該手法も器官位置候補の決定と対応する位置での特徴量の抽出を繰り返し処理する必要があるため計算量が多い。また大きな顔の変動に対する対応は考慮されていない。特許文献に2では器官位置の配置関係から経験的に得られるルールに基づいて顔の向きを判定する手法が記載されている。当該技術を応用して器官位置の配置関係から候補として検出された器官位置のエラーを判定し補正する事も可能であるが、ルールベースの判定処理では様々な変動に対する最良のルールを設定する事が困難である。
【0012】
非特許文献2で記載されている部分空間を利用した幾何学的な補正処理は、少ない演算量で適切な幾何学的拘束処理が可能であり、有効な手法であるが、顔の向き・表情等に大きな変動がある場合について考慮されていない。変動に対応するため、部分空間の学習データに大きな変動を有するデータ群を加えた場合、補正能力が低下する。同様に、非特許文献3においても対象とする画像に大きな変動が有る場合についての考慮はなされていない。
【0013】
本発明は上述の課題に鑑みてなされたものであり、対象物体が大きな変動を有する場合であっても特徴点の位置や画像データを適切に補正するデータ補正装置及び方法を提供することを目的とする
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明は以下の構成を有する事を特徴とする。すなわち、
対象物の画像に関わるデータを補正するデータ補正装置であって、
補正対象のデータを連結したベクトルデータを入力する入力手段と、
前記ベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成する次元削減処理と、前記射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを前記画像における前記対象物の変動の種類毎に生成する生成手段と、
前記射影ベクトルに基づいて前記対象物の変動を判定する判定手段と、
前記判定手段の判定結果に基づいて前記複数の次元復元されたベクトルデータを統合して、補正後のデータとして出力する統合手段とを備える。
【発明の効果】
【0015】
本発明によれば、対象物体に大きな変動が有る場合であっても、簡単な処理で特徴点の位置や画像データを適切に補正する事ができる。
【図面の簡単な説明】
【0016】
【図1】第1実施形態による位置補正処理を説明するフロー図。
【図2】第1〜第5実施形態の画像処理装置の構成例を示すブロック図。
【図3】顔画像の切り出しを説明する図。
【図4】信頼度マップの生成処理を説明する図。
【図5】特徴データと特徴ベクトルの関係を説明する図。
【図6】第1及び第2重心探索処理を説明する図。
【図7】第1実施形態の変動判定処理と統合処理を説明するフロー図。
【図8】第2実施形態による位置補正処理を説明するフロー図。
【図9】第2実施形態の変動判定処理と統合処理を説明するフロー図。
【図10】第3実施形態による位置補正処理を説明するフロー図。
【図11】第3実施形態における逆射影行列の生成を説明する図。
【図12】第4実施形態による位置補正処理を説明するフロー図。
【図13】第4実施形態における識別処理を説明するフロー図。
【図14】第4実施形態における領域切り出し処理を説明する図。
【図15】第5実施形態による画像補正処理を説明するフロー図。
【図16】顔画像からの特徴点の検出を説明する図。
【発明を実施するための形態】
【0017】
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
【0018】
[第1実施形態]
第1実施形態による画像処理(データ補正処理)を実行可能な画像処理装置の構成を、図2のブロック図に示す。本実施形態の画像処理装置は顔画像中の複数の特徴点位置(ここでは顔の各器官に関連する特徴の位置)を決定する機能を有する。
【0019】
画像入力部201は、光学系、光電変換デバイス及びそれらを制御するドライバー回路/ADコンバーター/各種画像補正を司る信号処理回路/フレームバッファ等により構成される。光電変換デバイスとしては、CCD(Charge-CoupledDevices)又はCMOS(Complimentary Metal Oxide Semiconductor)センサ等が挙げられる。前処理部202は、後段の各種処理を効果的に行うために各種前処理を実行する。具体的には、前処理部202は、画像入力部201で取得した画像データに対して色変換処理/コントラスト補正処理等の画像データ変換をハードウェアで処理する。顔画像データ切り出し処理部203は前処理部202で補正した画像データに対して顔検出処理を実行する。顔検出の手法は従来より提案されている様々な手法を適用可能である。更に顔画像データ切り出し処理部203は検出された顔毎に顔画像データを所定のサイズに正規化して切り出す。ここでは、顔検出の結果を利用して大きさ及び面内回転を正規化した画像データを生成する。
【0020】
図3は顔画像データの切り出し処理例を説明する図である。前処理部202で補正された画像データ301から顔領域302を判定し、予め定められたサイズに正規化した顔画像データ303を切り出す。顔画像データ303の大きさは、正規化により一定となる。以後、特徴点の位置とは顔画像データ303の画像面内の特徴点の座標と定義する。また、その座標は、顔画像データ303の画像面の左上端を原点とする座標系(x座標、y座標)で表現するものとする。
【0021】
特徴位置信頼度算出処理部204は特徴点の存在の確からしさを示す情報である信頼度マップを算出する処理部である。特徴位置信頼度算出処理部204の詳細は後述する。DMAC206は画像バス211上の各処理部間及び画像バス211上のデバイスとCPUバス207上のRAM210/ROM209間のデータ転送等を司る。なお、DMACはDirect Memory Access Controller、RAMはRandom Access Memory、ROMはRead Only Memoryである。ブリッジ205は、画像バス211とCPUバス207間のバスブリッジ機能を提供する。CPU208は、本実施形態に係る主要な処理を実行すると共に本装置全体の動作を制御する。後述する各動作は、ROM209等のコンピュータ読み取り可能な記憶媒体に格納されたコンピュータプログラムをコンピュータ(CPU208)が実行することにより実行される。ROM209は、CPU208の動作を規定する命令を格納する。RAM210はCPU208の動作に必要な作業メモリである。RAM210は、DRAM(DynamicRAM)等を用いて比較的容量の大きいメモリとして構成される。CPU208(Central Processing Unit)はブリッジ205を介して画像バス211上の各種処理部にアクセスできる。画像バス211とCPUバス207を分離する事で、ハードウェアによる各処理部(201、202、203、204)とCPU208は同時に動作することが可能である。
【0022】
以上のような構成を備えた第1実施形態の画像処理装置による画像処理(データ補正処理)について、図1のフロー図を用いて説明する。図中ステップS101〜S107はCPU208が処理するステップを示す。特徴位置信頼度算出処理10において、顔画像データ切り出し処理部203は、顔検出結果に基づいて所定のサイズに正規化した顔画像データを図示しない内蔵RAMに格納する。格納された顔画像データはDMAC206を介して特徴位置信頼度算出処理部204の図示しないRAMに転送される。特徴位置信頼度算出処理部204は当該RAMに格納された画像データに対して、特徴点位置候補の存在の確からしさである信頼度を示す信頼度画像の算出を開始する。ここで生成される信頼度画像を特徴位置信頼度マップ11(以下、信頼度マップとも言う)と定義する。信頼度を算出するための手法は従来より提案されている様々な手法を適用する事ができる。最も簡単には、対応する特徴点の特徴を表現するテンプレートを学習により生成し、テンプレートと対象位置の画像の一致度を信頼度とする。
【0023】
図4は信頼度マップの生成の様子を模式的に説明する図である。402はテンプレートマッチングのためのテンプレートであり、403はテンプレートマッチングを実行する範囲を示す。テンプレート402を所定の範囲403内でスキャンし、対象位置におけるテンプレートの一致度を記録する事で信頼度マップ404を生成する。即ち、信頼度マップとは、画像データの代わりに信頼度が記録されたバッファメモリである。所定の範囲403には個人差・表情・向き・顔画像データ切り出し処理部203の正規化誤差等を考慮して検出対象とする端点を含む十分な広い領域を設定する。
【0024】
404は信頼度マップの例を模式的に示しており、信頼度マップ11に対応する。405、406は検出対象とする特徴点位置の信頼度が高い(この場合、テンプレートに一致度が高い)位置を示す。図4では、向かって左目尻の端点を検出するテンプレート402とのマッチングの結果を示している。また、406は対象とする端点、405は眉毛左端に生じる誤検出に相当するもとのする。特徴位置信頼度算出処理部204は特徴点毎に信頼度マップを生成する。したがって、例えば、図16の(a)に示す14個の特徴点を決定する場合、14種類の特徴点検出テンプレートを使用して、14枚の信頼度マップ11が生成される。なお、信頼度マップ11はスキャン範囲403の領域のみをメモリに保持する方法でも良い。また、ここではテンプレートマッチングにより信頼度を算出する手法について説明したが、ニューラルネットによる方法、カスケード型フィルタによる方法等、従来より提案されている様々なパターン識別手法を利用可能である。
【0025】
生成した信頼度マップ11はDMAC206を介してRAM210に転送される。CPU208は当該転送が終了すると特徴点位置決定のための動作(ステップS101〜ステップS107)を開始する。以後、CPU208はRAM210に格納した信頼度マップ11を参照して処理を継続する。第1重心探索処理(S101)は、特徴点毎に特徴位置信頼度マップ11の探索領域403内の特徴点位置信頼度値の重心を算出する。ここで得られた重心値を特徴点位置候補座標とする。重心の探索は各特徴点毎に行われる。重心探索の手法は一般的に知られている手法を適用して良い。また、重心の代わりに最大値を利用する等の他の手法でも良い。CPU208は算出した重心位置座標をRAM210に記録する。
【0026】
次に、ここで得られた特徴点位置候補座標をより適切な値に補正するための特徴点位置補正処理12を説明する。本実施形態では顔の向き毎に幾何学的補正処理である特徴点位置補正14a、14b、14cを用意し、顔向きに関する変動判定処理(S105)の結果に従って各補正結果を統合(S106)する。複数種類の変動(例えば、正面向き、右向き、左向きの3つの変動)に対応する補正処理を統合する。特徴点位置補正処理14a、14b、14cは部分空間を利用した補正処理部であり、それぞれ正面向き、右向き、左向きの特徴点配置に特化した補正処理である。即ち、射影行列a、b、c(13a〜13c)はそれぞれ正面向き・右向き・左向きの多数の学習用特徴点ベクトルを使用して主成分分析により算出した射影行列である(平均ベクトルも含む)。学習用特徴点ベクトルは正解座標の特徴点から得られる特徴点ベクトルである。尚、以降の説明では広義の射影行列を狭義の射影行列と平均ベクトルを用いて説明する。
【0027】
先ず特徴点ベクトル取得処理(S102)で重心探索結果である各特徴点の座標データをRAM210から取り出し、特徴点ベクトルデータを生成する。図5は各特徴点の位置座標データ501((xi, yi) i:1〜14)と、ここで取り出す特徴点ベクトル502(ベクトルV(要素vj:j=1〜28))の関係を説明する図である。iは特徴点の数でありここでは14である。従って、特徴点ベクトルはi×2の28次元となる。個のように、補正対象のデータを連結することでベクトル化され、ベクトルデータが生成される。例えば、特徴点ベクトルの要素v1、v2はそれぞれ第1番目の特徴点のx座標値、y座標値に対応する。特徴点ベクトルVは(1)式で定義される。なお、以降Tは転置を示す。
V = (v1,v2,v3,‥,v2×f )T …(1)
f:特徴点の数
【0028】
次元削減処理(S103a)では射影行列a(平均ベクトルも含む)(13a)を用いて射影ベクトルを生成する。射影ベクトルPaは、特徴点ベクトルVから射影行列生成時に生成した平均ベクトルAa(28次元のベクトル)を減じたベクトルと射影行列Eaを使用して(2)式により算出する。なお、射影行列Ea及び平均ベクトルAaは、正面向きの顔に対応する多数の学習用特徴点ベクトルを用いて、主成分分析により算出した行列である。
Pa=EaT(V−Aa) …(2)
Aa=(Aa,1,Aa,2, Aa,3, ‥, Aa,2×f)T …(3)
Ea=(ua,1,ua,2,‥, ua,p) …(4)
【0029】
ua,1, ua,2,‥, ua,pは主成分分析によって得られたそれぞれ2×f次元の正規直交ベクトルである。当該実施形態の場合それぞれ28次元のベクトルとなる。ここで、pは射影ベクトルの次元であり当該実施形態では6とする。即ち主成分分析によって得られる直交ベクトルの内、対応する固有値が大きい6個のベクトルを選択した行列が射影行列Eaである。射影行列Ea及び平均ベクトルAaはROM209或いはRAM210等に予め格納されているものとする。
【0030】
以上のように、次元削減処理(S103a)では、式(2)の演算により、2×f次元の特徴点ベクトルをp次元の射影ベクトルに次元削減する。この次元削減処理(S603a)により特徴点ベクトルは正面顔を表現する部分空間に射影される事になる。CPU208は算出した射影ベクトルをRAM210に格納する。
【0031】
次に、次元復元処理(S104a)では、射影ベクトルPaから元の特徴点ベクトル次元のデータ(即ち座標位置)を復元する。復元ベクトルVa’は上述の射影行列Eaと平均ベクトルAaを用いて(6)式により算出する。
Va’=EaPa + Aa …(6)
逆射影した復元ベクトルVa’は図5に示す特徴点ベクトル502の形式のデータであるため、特徴点ベクトル取得処理(S102)で取得したベクトルデータと同様に座標データ列501に対応付ける事が可能である。
【0032】
同様にS103b〜S104bでは右向きの顔に対応する複数の学習用特徴点ベクトルから算出した射影行列b(13b)(射影行列Eb及び平均ベクトルAb)を使用して部分空間への射影(式(2)に相当)と逆射影(式(6)に相当)を実行する。当該処理により右向き顔に対応する幾何学的な補正処理結果Vb’が得られる。同様に、S103c〜S104cでは左向きの顔に対応する複数の学習用特徴点ベクトルから算出した射影行列c(13c)(射影行列Ec及び平均ベクトルAc)を使用して部分空間への射影(式(2)に相当)と逆射影(式(6)に相当)を実行する。当該処理により左向き顔に対応する幾何学的な補正処理結果Vc’が得られる。以上のようにして、対象物の変動の種類毎の、複数の次元復元されたベクトルデータが取得される。
【0033】
変動判定処理(S105)では射影ベクトルから顔向きの変動を推定する。ここでは次元削減処理(S103a〜S103c)で算出した射影ベクトルPa,Pb,Pcを使用して変動を推定する。即ちPa,Pb,Pcの各要素を入力データとして予め学習により構築した識別器で判別を行う。変動の判定はSVM(Support Vector Machine)により学習した識別器で処理する。識別器は、予め顔の向きに対応する多数の特徴点ベクトルデータを用いて生成した射影ベクトルを教師データとして学習する。例えば、射影行列a〜c(13a〜13c)の生成に使用した学習用特徴点ベクトルデータを教師データとして利用しても良い。当該識別処理は次元圧縮された射影ベクトルに対して処理するため、少ない演算量で識別処理を実現できる。
【0034】
次に、図7を用いて、変動判定処理(S105)と統合処理(S106)を説明する。701は変動判定処理(S105)を示す。S701〜S703はSVM識別演算処理であり、射影ベクトルPa,Pb,Pcを単純に連結したベクトルDに対して識別処理演算を実行する。すなわち、S701〜S703において、CPU208は削減処理(S103a〜S103c)でRAM210に格納した射影ベクトルを読み出して下記(7)式に示すSVM演算を実行する。
判別結果n = sign(WnTD− h) (7)
WnT = (wn,1,wn,2,‥,wn,p×3)
h:閾値
n:1〜3(SVM識別器1〜3に対応)
sign:符号判定器
【0035】
式(7)は線形のSVMでありWnが予めSVMにより学習された重み係数である。当該係数は射影ベクトルの「次元数×変動の数」個の要素の係数を有する重み係数ベクトルである。W1は正面向きか右向きかを判定するための重み係数である。同様にW2は右向きか左向きかを判定する重み係数、W3は左向きか正面かを判定する重み係数である。S701では、W1を使用して正面向き(a)か右向き(b)かの判定を行う。同様に、S702、S703ではそれぞれW2、W3を使用して、右向き(b)か左向き(c)か、左向き(c)か正面か(a)の判定を行う。そして、多数決処理(S704)ではSVM識別演算処理(S701〜S703)の結果から最終的な顔の向きを決定する。なお、変動判定処理(S105)は当該実施形態で説明した方法に限るわけではなく、SVM以外の他の識別方法を適用可能である。
【0036】
702は統合処理(S106)を示す。統合処理では、多数決処理(S704)の結果に従って対応する補正後特徴点ベクトルa〜cを選択する。即ち、変動判定処理(S105)で右向きと判定された場合、右向きの逆射影処理、すなわち次元復元処理S104b、の結果を選択する。このように、変動の判定結果に基づいて逆射影結果を統合するので、入力された画像に応じて効率的に且つ適切に統合することができる。
【0037】
なお、ここでは統合処理(S106)が逆射影結果の一つを選択する場合について説明したが他の方法でも良い。例えばSVM識別処理(S701〜S703)が判定信頼度を出力する場合、当該信頼度をそれぞれC1〜C3として以下の演算式により最終的な補正後特徴点ベクトルPresult得る等の手法でも良い。
Presult = (C1×Pa+ C2×Pb+ C3×Pc)/(C1+ C2 + C3) …(8)
即ち信頼度を利用して複数の次元復元結果の重み付き平均手法により最終的な幾何学的補正結果を生成するようにしてもよい。
【0038】
図1に戻り、第2重心探索処理(S107)では、CPU208は、得られた幾何学的補正位置座標データに基づいて特徴点位置を再探索する。信頼度マップに対する特徴点位置の探索の例を図6を参照して説明する。図6において、601はある特徴点に対する信頼度マップを示す。604は第1重心探索処理(S101)における探査範囲の例を示す。第1重心探索処理の探索領域は、個人差や顔の変動等に対応するために、広い領域が設定される。603は対象とする特徴に対する信頼度の分布を示し、602は誤検出による信頼度の分布を示す。探査範囲604で重心を取った場合、特徴点の候補は605に示す様に本来の値から外れた座標となる。606は幾何学的補正後(統合処理(S106)の出力)の候補点座標位置を示す。第2重心探索処理(S107)では、この補正後の候補点座標位置606を中心として607に示す狭い範囲で領域内の重心を算出する。この場合、誤検出領域602が探索領域から外れる事になり、最終的な器官位置は608に示す本来の位置に判定される。
【0039】
以上のように、第1実施形態によれば、変動毎に用意した部分空間を選択的・統合的に利用する事で、多様な変動を有する場合であっても、幾何学的な配置関係に基づく特徴点位置の補正を実現する事ができる。また、部分空間への射影ベクトルを変動の推定に利用する事で少ない計算量で、効率的且つ効果的に対象物体の変動を推定する事ができる。
【0040】
[第2実施形態]
以下、第2実施形態について図8、図9を用いて説明する。第2実施形態の画像処理装置の構成は第1実施形態(図2)と同様であり、顔画像中の複数の特徴点位置を決定する機能を提供する。また、図8において第1実施形態(図1)と同様の構成には同一の参照番号を付してある。以下、第2実施形態について第1実施形態との差異を主として説明する。特徴点位置補正処理部82は第2実施形態による特徴点位置補正処理を実行し、第1重心探索処理(S101)において算出された各特徴点位置候補を補正する。ステップS101、S102、S803〜S806、S107は全てCPU208が処理する。
【0041】
本実施形態の特徴点位置補正処理部82では、先ず、全ての変動を含む部分空間(以下共通部分空間と定義する)への射影に基づく特徴点位置補正処理84dを実行する。次に、その結果に対して変動毎の部分空間への射影に基づく特徴点位置補正処理84a〜84cが実行され、統合処理(S806)によりその結果が統合される。更に、共通部分空間への射影に基づく特徴点位置補正処理84dの演算時に得られる射影ベクトルを用いて変動判定処理(S805)が行われる。統合処理(S806)は、変動判定処理(S805)の判定結果を利用して特徴点位置補正処理84a〜84cの結果を統合処理する。以下、各ステップについて詳細に説明する。
【0042】
特徴点ベクトル取得処理(S102)において、CPU208はRAM210に格納した各特徴点の位置座標データを特徴点ベクトルとして取り出す。特徴点ベクトルの構造は第1実施形態と同じである。第1の次元削減処理(S803d)において、CPU208は、特徴点ベクトルVに対して射影行列Ed及び平均ベクトルAdを含む第1の射影行列83dを用いて下記の式(9)に示す演算により第1の射影ベクトルPdを算出する。なお、射影行列Ed及び平均ベクトルAdは、対象とする全ての変動を含む多数の学習用特徴点ベクトルを用いて、予め主成分分析により算出しておく。射影行列の生成手法は学習用特徴点データが異なるだけで、第1実施形態と同じである。ここでは正面・右向き・左向きの変動を含む多数の学習用特徴点位置座標データを使用する。
Pd = EdT(V−Ad) …(9)
Ad = (Ad,1,Ad,2, Ad,3, ‥, Ad,2×f)T …(10)
Ed = (ud,1,ud,2,‥, ud,p) …(11)
ud,1, ud,2,‥, ud,pは主成分分析によって得られたそれぞれ2×f次元の正規直交ベクトルである。当該実施形態の場合それぞれ28次元ベクトルとなる。pは射影ベクトルPdの次元であり当該実施形態では6とする。主成分分析によって得られる正規直交ベクトルの選択法も第1実施形態と同じである。射影行列Ed及び平均ベクトルAdはROM209或いはRAM210に予め格納されているものとする。CPU208は(9)式の演算結果をRAM210に格納する。
【0043】
次に、上記第1の射影ベクトルを次元復元する第1の次元復元処理(S804d)において、CPU208は、射影行列Ed及び平均ベクトルAdを用いて式(12)に示す次元復元処理を実行する。
Vd’=EdPd + Ad …(12)
以上の次元削減処理(S803d)と次元復元処理(ステップS804d)により共通部分空間への射影に基づく補正後特徴点ベクトルが生成される。ここでの補正処理により大きな外れ値を除去し、後段の特徴点位置補正処理(84a〜84c)の安定度を高める事ができる。
【0044】
特徴点位置補正処理a〜c(84a〜84c)は図1の特徴点位置補正処理a〜c(14a〜14c)と等価であり、それぞれ正面顔、右顔、左顔に特化した特徴点の位置補正を実行する。次元削減処理(S803a〜S803c)では次元復元処理(S804d)で生成した補正後の特徴点ベクトルデータに対して第2の射影行列83a〜83cを用いて次元削減処理を実行する。ここでは、CPU208は、射影行列Ea〜Ec及び平均ベクトルAa〜Acを有する射影行列83a〜83cを用いて式(9)と同等の演算により射影ベクトルPa〜Pcを算出する。射影行列Ea、Eb、Ecはそれぞれ正面顔、右顔、左顔に対応する学習用特徴点ベクトルを用いて主成分分析により生成したベクトルである。また、平均ベクトルAa,Ab,Acはそれぞれ正面顔、右顔、左顔に対応する特徴点ベクトルを用いて生成したベクトルである。次元復元処理(S804a〜S804c)では、第1実施形態の次元復元処理(S104a〜S104c)と同様に、射影ベクトルPa,Pb,Pcのそれぞれから元の特徴点ベクトル次元のデータ(即ち座標位置)を復元する。こうして、対象物の変動の種類毎の、複数の次元復元されたベクトルデータが取得される。
【0045】
変動判定処理(S805)においてCPU208は、次元削減処理(S803d)の結果である射影ベクトルPdをRAM210から読み出し、対象とする顔の変動を推定する。第2実施形態による変動判定処理(S805)と統合処理(S806)について、図9を参照して説明する。901は変動判定処理(S805)の処理内容を示している。S901〜S903はSVM識別演算処理であり、射影ベクトルPdに対して変動判定演算を実行する。尚、S901〜S905もCPU208の動作を示す。S901〜S903では下記の(13)式に示すSVM演算を実行する。
判別結果n = sign(WnTPd−h) …(13)
WnT = (wn,1,wn,2,‥,wn,p)
h:閾値
n:1〜3(SVM識別器1〜3に対応)
【0046】
式(13)は線形のSVMでありWnは予めSVMにより学習された重み係数である。本実施形態では、Wnは射影ベクトルの次元数の要素の係数を有する重み係数ベクトルである。W1は正面向きか右向きかを判定するための重み係数である。同様にW2は右向きか左向きかを判定する重み係数、W3は左向きか正面かを判定する重み係数である。S901〜S903ではそれぞれW1〜W3を使用して判定が行われる。多数決処理(S904)ではSVM識別演算処理(S901〜S903)の各判定結果から顔の向きを決定する。なお、変動判定処理(S805)は上記実施形態で説明した方法に限られるわけではなく、SVM以外の他の識別方法を適用可能である。
【0047】
902は統合処理(S806)の内容を示しており、選択処理(S905)が、変動の判定結果に従って対応する変動の補正後特徴点ベクトルを選択する。CPU208は統合結果である最終的な特徴点ベクトルデータから特徴点位置座標データを得てRAM210に記録する。第2重心探索処理(S107)は第1実施形態と同様に、統合結果によって制限された領域内の重心探索を実行し、最終的な特徴点位置を確定する。
【0048】
以上、第2実施形態で示した様に、統合処理(S806)で特徴点位置補正a〜cの結果を選択する場合、必要な特徴点位置補正処理だけ(すなわち特徴点位置補正処理84a〜84cの何れか)を実行すれば良い。又、第1実施形態で示したように、変動判定処理(S805)におけるSVM識別演算処理(S901〜S903)で判定信頼度を出力して各補正結果に重み付けをして統合する様な方法でも良い。
【0049】
以上のように、第2実施形態によれば、全ての変動を含む部分空間(共通部分空間)への射影ベクトルPdを取り出す事が可能になる。これにより、少ない次元数のデータから変動を推定する事が可能になり変動判定の演算量を削減する事ができる。これは、複雑な変動判定手法を適用する場合や変動の種類が多い場合に特に有効である。また、特徴点位置の補正が階層的に処理されることになるので、より安定した補正処理を実現する事が可能になる。
【0050】
[第3実施形態]
以下、第3実施形態による画像処理装置について図10、図11を用いて説明する。第3実施形態の画像処理装置も第1実施形態と同様の構成(図2)を有し、顔画像中の複数の特徴点位置を決定する機能を提供する。以下、第1実施形態との差異を中心に説明する。
【0051】
第3実施形態の画像処理装置による画像処理について図10を用いて説明する。図10において第1実施形態(図1)と同様の構成には、第1実施形態と同一の参照番号を付してある。以下、第3実施形態による特徴点位置補正処理1002を説明する。本実施形態では、先ず、全ての変動を含む部分空間(共通部分空間)への射影ベクトルを算出する。その結果である射影ベクトルから変動毎に生成した逆射影ベクトルを用いて補正後の特徴点ベクトルを生成する。また、射影ベクトルから変動の判定を行い当該結果を利用して変動毎の補正後特徴点ベクトルを統合処理する。以降、詳細な動作について説明する。なお、以下に説明する各処理はCPU208が実行する処理である。
【0052】
第1重心探索処理(S101)では、第1実施形態と同様にRAM210に格納する特徴毎の特徴位置信頼度マップ11を参照して特徴点位置の候補を探索し結果をRAM210に格納する。RAM210に格納した複数の特徴点候補座標データから特徴点ベクトルを取得する(S102)。特徴点座標データと特徴点ベクトルとの関係は第1実施形態で示した例と同一である。次元削減処理(S1003)では全ての変動を含む複数の特徴点ベクトルから生成した射影行列Edを使用して次元削減処理を実行する。ここでの射影行列Edは第2実施形態で示した共通部分空間への射影行列と同一である。即ち、射影行列Edは対象とする全ての変動を含む多量の学習用特徴点ベクトルから主成分分析により予め算出したものである。次元削減処理(S1003)は、射影行列1003d(射影行列Ed及び平均ベクトルAd)を使用して下記の(14)式に従って次元削減処理を実行する。Adも第2実施形態と同一である。
Pd = EdT(V−Ad) …(14)
【0053】
次元復元処理(S1004a〜S1004c)では、変動毎に生成した逆射影行列1003a〜1003cを使用して射影ベクトルPdから補正後の特徴点ベクトルを生成する。逆射影行列1003a〜1003cは、逆射影行列Ba〜Bc及び平均ベクトルCa〜Ccを含む。以下、逆射影行列Ba〜Bcの作成方法について説明する。図11の(a)は図8(第2実施形態)に示した特徴点位置補正処理84d及び83aを示している。ここでは次元削減処理(S803d)、次元復元処理(S804d)、次元削減処理(S803a)、次元復元処理(S804a)を順次処理する事で正面顔に対する特徴点の補正を階層的に処理している。これら各ステップの演算は、式(9)、式(12)等に示す線形行列演算である。従って、補正後特徴点ベクトルVa’は以下の式(15)で表され得る。なお、式(15)では、全ての変動を含む学習用特徴ベクトルから生成した射影行列、平均ベクトルをそれぞれEd、Adとし、正面顔のみを含む学習用特徴ベクトルから生成した射影行列、平均ベクトルをそれぞれEa、Aaとする。
【0054】
Va’=EaEaT((EdPd+Ad) -Aa) + Aa …(15)
Ea=(ua,1,ua,2,‥, ua,p) …(16)
Ed=(ud,1,ud,2,‥, ud,p) …(17)
Aa=(Aa,1,Aa,2,Aa,3,‥, Aa,2×f)T …(18)
Ad=(Ad,1,Ad,2,Ad,3,‥, Ad,2×f)T …(19)
ここで、上記の式(14)は全て線形行列演算であるため行列の合成により、
Va’=EaEaTEdPd+EaEaT(Ad - Aa)+Aa
= BaPd+Ca …(20)
に整理する事ができる。
【0055】
ここでBaは新たに生成した射影行列、
Ba=EaEaTEd …(21)
Caは新たに生成した平均ベクトル
Ca=EaEaT(Ad - Aa)+Aa …(22)
であり、何れも処理に先だって算出する事ができる。即ち、図11において1101に示す一連の処理ステップ群を1102に示す次元復元処理(S1004a)にまとめる事ができる。以上のように、次元復元処理(S104a)では、上記の式(21)、式(22)で予め生成した逆射影行列1003a(逆射影行列Baと平均ベクトルCa)を用いて逆射影処理を行う。以上の処理により変動に特化(ここでは正面顔)した補正を実現することができる。
【0056】
同様に、特定の変動として右顔に対する学習用特徴点ベクトルを用いて生成した射影行列Ebと平均ベクトルAbとを用いて、(23)式により逆射影演算を実行する(S1004b)。ここで使用する射影行列Bb・平均ベクトルCbは(24)(25)式に従って予め算出しておく。
Vb’=BbPd + Cb …(23)
Bb=EbEbTEd …(24)
Cb=EbEbT(Ad - Ab)+Ab …(25)
【0057】
更に、同様に特定の変動として左顔に対する学習用特徴点ベクトルを用いて生成した射影行列Ec平均ベクトルAcを用いて(26)式により逆射影演算を実行する(S1004c)。ここで使用する射影行列Bc、平均ベクトルCb算出は、(27)式、(28)式に従って予め算出しておく。
Vc’=BcPd + Cc …(26)
Bc=EcEcTEd …(27)
Cb=EcEcT(Ad- Ac)+Ac …(28)
【0058】
以上のようにして、対象物の変動毎の、複数の次元復元されたベクトルデータが取得される。そして、変動判定処理(S1005)では、第3実施形態(S805)と同様に射影ベクトルPdから変動の種類を判定する。統合処理(S1006)では、変動判定処理(S1005)の判定結果に従って次元復元処理(S104a〜S104c)の結果を統合する。統合処理(S1006)の処理も第3実施形態に記載の方法と同じで良い。第2重心探索処理(S107)では最終的に決定した特徴点座標に基づいてRAM210上の特徴位置信頼度マップ11から最終特徴位置を判定する。第2重心探索処理は第1、第2実施形態と同様でよい。
【0059】
第3実施形態によれば、射影行列1003dを用いて次元復元する演算と、変動の種類毎にデータを学習して得られた射影行列83a、83b、83cによる次元削減及び次元復元の演算とを合成した演算行列が用いられる。このため、第2実施形態と同じ結果を少ない演算回数で得る事ができる。また、第2実施形態と同様に共通部分空間への射影ベクトルを出力する事ができる。また、第3実施形態によれば、次元圧縮用の射影行列と変動毎に合成した逆射影ベクトルを予め算出しておくことができるので、少ない演算回数で大きな変動に対応する幾何学的補正処理を実現する事ができる。また、変動判定のための共通部分空間への射影ベクトルを生成する事が可能であるため、少ない演算回数で変動を推定する事ができる。
【0060】
[第4実施形態]
以下、第4実施形態の画像判別装置について図12〜図14を用いて説明する。第4実施形態では、特徴点の位置に基づいて特徴抽出を行い当該抽出結果に基づいて識別処理を実行する機能を提供する画像判別装置を説明する。なお、第4実施形態による画像判別装置の構成も第1実施形態(図2)と同様である。第4実施形態による画像判別装置の動作を図12を用いて説明する。なお、図12において、特徴位置信頼度算出処理10、特徴位置信頼度マップ11、第1重心探索処理(S101)、特徴点位置補正処理1002は、第3実施形態と同様のものである。
【0061】
第2重心探索処理(S1201)では補正後の特徴点位置座標データに従ってRAM210に格納した特徴位置信頼度マップを再探索する。本実施形態では変動判定処理(S1005)の結果に応じて第2重心探索処理(S1201)の探索パラメータを変更する。例えば変動の大きさに応じて探索領域の幅や高さを変更する。なお、変動に応じた最適な探索領域やパラメータは予め学習により求める事ができる。即ち変動毎に用意した複数の学習用の画像データから補正後の特徴点位置を算出し、探索領域を変更させながら統計的に最も正解の位置を出力可能な探索領域607(図6)を求める。ここでの探索パラメータはRAM210又はROM209にテーブル情報として格納されているものとする。CPU208は変動判定処理(S1005)の結果に応じて所定アドレスのテーブルを参照する事で必要な探索領域を決定する。また、探索領域の大きさ形状だけでなく重心探索時の閾値等のパラメータを変動毎に用意して切り替えても良い。
【0062】
次に、識別処理(S1202)では求められた特徴点位置座標情報に従って識別処理を実行する。図13は第3実施形態による識別処理(S1202)の詳細を説明する図である。再正規化処理(S1301)において、CPU208は、特徴点位置座標に基づいて顔画像を再正規化する。ここでは目の幅や目と口の距離等に基づいて顔画像データを所定のサイズに変換する。領域切り出し処理(S1302)において、CPU208は、特徴点位置座標に基づいて識別に使用する画像領域を設定する。図14は再正規化後の顔画像データ1401に対する切り出し領域の例を説明する図である。1402,1403が切り出し領域であり、目・鼻・口の座標位置に基づいて予め定める領域が切り出されている。領域補正処理(S1303)において、CPU208は、変動判定処理(S1005)の結果に従って、切り出した領域の画像データを変形する。ここでは、顔の向き変動に応じて、切り出し処理(S1302)で切り出された部分領域画像をアフィン変換等により変形する。変形のためのパラメータは変動に応じて予め大量のデータを使用して学習により生成しておく。即ち、顔の向き等の変動に応じたアフィンパラメータを予め決定しておき、変動判定処理(S1005)の結果に従って切り替える。領域補正処理(S1303)での変形処理により、顔が正面顔とは異なる場合であっても、正面顔に近い部分領域に変形する事ができる。
【0063】
次元削減処理(S1304)において、CPU208は、補正された識別用の画像データの次元を削減する。次元削減の手法は、主成分分析を用いた手法等、従来より提案されている手法を適用して良い。相関演算処理(S1305)において、CPU208は、次元削減された入力顔画像データと予め次元削減し登録しておいた登録データ1301との相関演算により入力顔画像が登録データであるか否かや登録データのどれに対応するか等の判定を行う。登録データは識別したい特定の人物の顔画像から生成したデータである。また、複数の部分領域を使用する場合、それぞれ領域毎に相関演算行い、得られた複数の類似度を用いて判定する。以上の処理により、顔画像から特定の個人を識別する。
【0064】
以上のように第4実施形態によれば、特徴点位置補正処理の変動判定処理(S1005)の結果を利用して第2重心探索処理(S1201)の探索パラメータを選択する事でより正確に特徴点の位置を決定する事ができる。更に変動判定処理(S1005)の結果を識別処理(S1202)で利用する事でより高い精度で識別を行うことができる。
【0065】
尚、第4実施形態では、変動判別結果を利用して部分領域の補正パラメータを選択する場合について説明したがこれに限られるものではない。例えば、変動に応じて再正規化処理(S1301)のパラメータや領域切り出し処理(S1302)のパラメータを変えるように構成してもよい。更に変動判別結果に応じて次元削減処理(S1304)の内容を変える等の手法を採用することも可能である。或いは、登録データを変動毎に用意して、変動判定処理(S1005)の結果に従って選択する等の構成とすることもできる。また、第4実施形態では、識別処理(S1202)を第3実施形態の特徴点位置補正処理1002と組み合わせた例を説明したが、第1、第2実施形態の位置補正処理(12,82)と識別処理を組み合わせることももちろん可能である。
【0066】
[第5実施形態]
第1〜第4実施形態では、特徴点の補正に本発明を適用した場合について説明したが、第5実施形態では画像データの補正に適用した場合について説明する。なお、第5実施形態による画像処理装置の構成も第1実施形態(図2)と同様である。ただし、特徴位置信頼度算出処理部204は無くてもよい。以下、図15を用いて本実施形態の動作について説明する。
【0067】
図15は図2に示す装置を使用して画像データの補正処理を実現する場合の処理について説明する図である。画像ベクトル取得処理(S1501)において、CPU208は、RAM210に格納した切り出し顔画像データを読み出し、画素値を要素とするベクトルデータIを生成する。
I=(i1,i2,i,… ,in)T
in:画素値、
n:切り出し画像領域内の総画素数
【0068】
次元削減処理(S1502)において、CPU208は、射影行列(Ed及びAd)1503dを使用して画像ベクトルを部分空間に射影する。ここで、Ed、Adは様々な変動を含む多量の学習用画像ベクトルを使用して主成分分析により算出した射影ベクトル及び平均ベクトルである。但し、ここで使用する学習用データセットには補正対象となる欠損画像やオクルージョン画像は含まない。射影行列1501dを用いた射影演算によりn次元のベクトルがp次元のベクトルに圧縮される(n>p)。すなわち、次元削減処理(S1502)では、以下に示す式(29)により次元削減ベクトルPdが生成される。
Pd=EdT(I−Ad) …(29)
Ad=(Ad,1,Ad,2, Ad,3, ‥, Ad,n)T …(30)
Ed=(ud,1,ud,2,‥, ud,p) …(31)
ud,1, ud,2,‥, ud,pは主成分分析によって得られたそれぞれn次元の正規直交ベクトルである。
【0069】
次に次元復元処理(S1503a)において、CPU208は以下の式(32)に示す行列演算で補正後の画像データベクトルIaを算出する。
Ia=BaPd + Ca …(32)
ここでBaは予め生成した射影行列、
Ba=EaEaTEd …(33)
Caは予め生成した平均ベクトル、
Ca=EaEaT(Ad - Aa)+Aa …(34)
でありEd、Adはそれぞれ上述した射影行列1501dにおける射影行列と平均ベクトルである。一方、Ea、Aaは特定の変動に対応する多量の学習用画像ベクトルを用いて主成分分析により生成した射影行列、平均ベクトルである。ここでは正面向きの顔画像を用いて生成した射影ベクトルを使用する。次元復元処理(S1503a)で実際に使用する射影行列Ba及び平均ベクトルCaの算出式は第3実施形態と同じであり、図11に示したように2つの補正処理に必要な行列演算の合成である。逆射影行列1501aは、射影行列Ba及び平均ベクトルCaを含む。
【0070】
同様に特定の変動として右顔の大量画像データを用いて射影行列Ebと平均ベクトルAbを算出し、(36)式と(37)式により次元復元処理(S1503b)で使用する射影行列Bb・平均ベクトルCbを算出しておく。
Ib’=BbPd +Cb …(35)
Bb=EbEbTEd …(36)
Cb=EbEbT(Ad - Ab)+Ab …(37)
復元処理(S1503b)では(35)式に従って補正画像ベクトルを生成する。
【0071】
更に、同様に特定の変動として左顔に対する大量の画像データを用いて射影行列Ecと平均ベクトルAcを算出し、(39)式と(40)式により次元復元処理(S1503c)で使用する射影行列Bc、平均ベクトルCcを算出しておく。
Ic’=BcPd +Cc …(38)
Bc=EcEcTEd …(39)
Cb=EcEcT(Ad - Ac)+Ac …(40)
復元処理(S1503c)では(38)式に従って補正画像ベクトルを生成する。
【0072】
以上、3つの復元処理(S1503a〜S1503c)により特定の変動毎に補正された画像ベクトルが得られる。すなわち、対象物の変動毎の、複数の次元復元されたベクトルデータが取得される。なお、Ea〜Ecの生成の際に使用した射影ベクトルは傷やオクルージョンが無い学習用画像データから生成する。従って、当該射影ベクトルを用いて次元削減した空間では該当する傷やオクルージョンを表現できない。従って、入力する画像データに傷やオクルージョンが有る場合、次元削減処理(S1502)及び次元復元処理(S1503a〜S1503c)により統計的に補間された画像データを生成する事ができる。これにより例外的な画像パターンを含む顔画像を適切に補正する事ができる。
【0073】
変動判定処理(S1504)において、CPU208は、次元削減処理(S1502)により得られた次元削減データPdを使用して変動を推定する。ここでは顔の向きを推定する。変動判定処理(S1504)には、第2実施形態(図9)で示した方法を適用可能であり、共通部分空間に対する次元削減データから変動判定を実施する事で、少ない計算量で変動判定処理を実現できる。変動判定処理(S1504)は変動判定結果をRAM210の所定の領域に記録する。当該情報は後段の処理で利用可能である。
【0074】
ステップS1905では変動判定結果に従って次元復元処理ステップS1903a〜S1903cの結果を統合する。統合処理ステップS1905も第1実施形態で示す方法と同様に単純な選択或いは重み付き平均手法等により最終的な画像ベクトルを算出する。統合後の最終結果である補正後画像ベクトルは補正後画像データとしてRAM210に記録する。
【0075】
以上のように、第5実施形態によれば、大きな変動を有する画像データの補正を統計的に適切に処理可能である。例えば当該補正処理を顔認識の前処理に適用する事で認識精度を向上させる事が出来る。また、補正処理の過程で低次元の共通部分空間への射影ベクトルを生成する事ができる。当該射影ベクトルを利用する事で、少ない演算量で変動の種類を判定する事ができる。なお、第5実施形態における演算の基本的な手法は第3実施形態に示す手法と同様であるが、第3実施形態に比して取り扱うデータの次元が多いため演算量削減の効果がより大きい。なお、第1、第2実施形態で説明した位置補正処理を画像補正に適用することも可能であることは当業者には明らかである。
【0076】
[その他実施形態]
実施形態では変動判定の手法として線形SVMによる場合について説明したが、本発明はこれに限るわけではなく様々な手法を適用可能である。例えば、非線形SVMを適用した場合、演算回数が大幅に増加するため、本発明の特徴である少ないデータ(射影ベクトル)からの変動判定効果の優位性がより高まる。
また、実施形態では主成分分析により生成した射影行列で部分空間へ射影する場合について説明したが、他の手法を用いてもよい。
【0077】
また、変動判定処理(S106等)の精度を高めるために、従来より提案されているLPP、LFDA等、射影後のデータに対するクラス判定に有利な手法で生成された射影行列を用いて次元削減を行っても良い。なお、LPPとは「Locality Preserving Projection」、LFDAとは「Local Fisher discriminant analysis」である。第2〜第5実施形態で示す様に、本発明では、任意の共通部分空間に対する射影演算に基づいて補正を行う事から、この様な射影行列を導入する事ができる。これにより、補正精度を向上させる事ができる。
【0078】
また、上記各実施形態では、変動判定処理(S104等)が判定する変動として顔の向きについて説明したが本発明はこれに限るわけではなく、表情の変動等様々な変動に対応可能である。その場合も対象とする変動を含む学習データを用意して射影行列を算出するだけで同様に処理できる。つまり、変動に対応するための経験的なルールの設定等の必要がない。
【0079】
実施形態では人物の顔の識別に当該発明を適用した場合について説明したが、これに限るわけではなく、様々な物体の特徴点の決定の際にに利用可能である。例えば、人体・動物・車等の工業製品等、特徴点の配置が対象物のカテゴリ毎に拘束されるあらゆるケースに適用する事が可能である。その場合も、対象とするカテゴリの特徴点配置データを変動毎に複数用意するだけで高精度な幾何拘束処理を実現する事ができる。
【0080】
また、上記各実施形態では変動毎の部分空間の次元数が共通の場合について説明したが本発明はこれに限るわけではない。変動毎に次元数を変えても良い。これは第3〜第5実施形態で説明した合成によって新たな射影ベクトルを生成する場合であっても同様である。変動によって最適な補正を実現する次元数は異なるため、これにより、補正性能が向上する。また、変動判定に用いる共通部分空間の次元数を他の部分空間の次元数と変える様な構成でも良い。更に、上記各実施形態では一般的な画像データから抽出した特徴点や画像データそのものに対して本発明を適用した場合について説明したが、他のセンシング情報に基づく特徴データに対して幾何学的な拘束処理を施す場合にも適用可能である。
【0081】
また、次元削減や次元復元のための射影行列の生成手法を変動によって変えることにより、変動に応じて最適な部分空間を生成するように構成することができ、変動推定精度を向上させることができる。また、第2、第3実施形態において、第1の射影行列を変動の推定に好適な次元圧縮手法で生成すれば、効率的・効果的に変動推定用射影行列を生成することができる。また、射影行列を用いた次元削減の結果の次元は変動によって異なるようにしてもよい。これにより、変動に応じて最適な部分空間を生成することができる。
【0082】
また、対象物(カテゴリ)を人物の顔とし、特徴データを顔の器官に関連する位置座標データとすることにより、顔の向きや変形、表情等にロバストな器官の検出を実現する事ができる。更に、対象物に関連する特徴データを対象物の画素値とすることにより、大きな変動を含む画像データに対して統計的な画像補完を実現する事ができる。
【0083】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【産業上の利用可能性】
【0084】
本発明は、特徴点の配置関係を決定する装置や各種の画像処理装置等に幅広く適用する事が可能である。
【特許請求の範囲】
【請求項1】
対象物の画像に関わるデータを補正するデータ補正装置であって、
補正対象のデータを連結したベクトルデータを入力する入力手段と、
前記ベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成する次元削減処理と、前記射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを前記画像における前記対象物の変動の種類毎に生成する生成手段と、
前記射影ベクトルに基づいて前記対象物の変動を判定する判定手段と、
前記判定手段の判定結果に基づいて前記複数の次元復元されたベクトルデータを統合して、補正後のデータとして出力する統合手段とを備えることを特徴とするデータ補正装置。
【請求項2】
前記生成手段は、変動の種類毎に用意された複数の射影行列を用いて前記ベクトルデータを部分空間へ射影することにより次元削減された複数の射影ベクトルを生成し、前記複数の射影行列を用いて前記複数の射影ベクトルのそれぞれの次元を復元することにより複数の次元復元されたベクトルデータを生成し、
前記判定手段は、前記複数の射影ベクトルに基づいて前記対象物の変動を判定することを特徴とする請求項1に記載のデータ補正装置。
【請求項3】
前記生成手段は、
複数種類の変動にわたるデータを学習することにより生成された第1の射影行列を用いて次元削減処理と次元復元処理を行い、次元削減された第1の射影ベクトルと第1の次元復元されたベクトルデータを生成し、
変動の種類ごとにデータを学習することにより生成された複数の第2の射影行列を用いて前記第1の次元復元されたベクトルデータについて次元削減処理と次元復元処理を行うことにより前記複数の次元復元されたベクトルデータを生成し、
前記判定手段は、前記第1の射影ベクトルに基づいて前記対象物の変動を判定することを特徴とする請求項1に記載のデータ補正装置。
【請求項4】
前記生成手段は、
複数種類の変動にわたるデータを学習することにより生成された第1の射影行列を用いて次元削減処理を行い次元削減された第1の射影ベクトルを生成し、
変動の種類毎にデータを学習することにより生成された複数の第2の射影行列を用いて前記第1の射影ベクトルから前記複数の次元復元されたベクトルデータを生成し、
前記判定手段は、前記第1の射影ベクトルに基づいて前記対象物の変動を判定することを特徴とする請求項3に記載のデータ補正装置。
【請求項5】
前記複数の第2の射影行列の各々は、前記第1の射影ベクトルを前記第1の射影行列を用いて次元復元する演算と、変動の種類毎にデータを学習して得られた射影行列による次元削減及び次元復元の演算とを合成した演算行列であることを特徴とする請求項4に記載のデータ補正装置。
【請求項6】
前記統合手段は、前記判定手段による判定結果に基づいて、前記複数の次元復元されたベクトルデータに対する重みを決定し、前記複数の次元復元されたベクトルデータの重み付き平均を算出することにより前記補正後のデータを得ることを特徴とする請求項1乃至5のいずれか1項に記載のデータ補正装置。
【請求項7】
前記対象物の画像に関わるデータとは、対象物の画像データから抽出された特徴点位置を示す特徴データであることを特徴とする請求項1乃至6のいずれか1項に記載のデータ補正装置。
【請求項8】
前記対象物の画像に関わるデータとは、前記対象物の画像データであることを特徴とする請求項1乃至6のいずれか1項に記載のデータ補正装置。
【請求項9】
請求項1乃至8のいずれか1項に記載のデータ補正装置と、
前記補正後のデータを用いて画像中の対象物を判別する判別手段と備えることを特徴とする画像判別装置。
【請求項10】
対象物の画像に関わるデータを補正するデータ補正装置の制御方法であって、
入力手段が、補正対象のデータを連結したベクトルデータを入力する入力工程と、
生成手段が、前記ベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成する次元削減処理と、前記射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを変動の種類毎に生成する生成工程と、
判定手段が、前記射影ベクトルに基づいて前記対象物の変動を判定する判定工程と、
統合手段が、前記判定工程の判定結果に基づいて前記複数の次元復元されたベクトルデータを統合して、補正後のデータとして出力する統合工程とを有することを特徴とするデータ補正装置の制御方法。
【請求項11】
コンピュータを請求項1乃至9のいずれか1項に記載された装置の各手段として機能させるためのコンピュータプログラム。
【請求項1】
対象物の画像に関わるデータを補正するデータ補正装置であって、
補正対象のデータを連結したベクトルデータを入力する入力手段と、
前記ベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成する次元削減処理と、前記射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを前記画像における前記対象物の変動の種類毎に生成する生成手段と、
前記射影ベクトルに基づいて前記対象物の変動を判定する判定手段と、
前記判定手段の判定結果に基づいて前記複数の次元復元されたベクトルデータを統合して、補正後のデータとして出力する統合手段とを備えることを特徴とするデータ補正装置。
【請求項2】
前記生成手段は、変動の種類毎に用意された複数の射影行列を用いて前記ベクトルデータを部分空間へ射影することにより次元削減された複数の射影ベクトルを生成し、前記複数の射影行列を用いて前記複数の射影ベクトルのそれぞれの次元を復元することにより複数の次元復元されたベクトルデータを生成し、
前記判定手段は、前記複数の射影ベクトルに基づいて前記対象物の変動を判定することを特徴とする請求項1に記載のデータ補正装置。
【請求項3】
前記生成手段は、
複数種類の変動にわたるデータを学習することにより生成された第1の射影行列を用いて次元削減処理と次元復元処理を行い、次元削減された第1の射影ベクトルと第1の次元復元されたベクトルデータを生成し、
変動の種類ごとにデータを学習することにより生成された複数の第2の射影行列を用いて前記第1の次元復元されたベクトルデータについて次元削減処理と次元復元処理を行うことにより前記複数の次元復元されたベクトルデータを生成し、
前記判定手段は、前記第1の射影ベクトルに基づいて前記対象物の変動を判定することを特徴とする請求項1に記載のデータ補正装置。
【請求項4】
前記生成手段は、
複数種類の変動にわたるデータを学習することにより生成された第1の射影行列を用いて次元削減処理を行い次元削減された第1の射影ベクトルを生成し、
変動の種類毎にデータを学習することにより生成された複数の第2の射影行列を用いて前記第1の射影ベクトルから前記複数の次元復元されたベクトルデータを生成し、
前記判定手段は、前記第1の射影ベクトルに基づいて前記対象物の変動を判定することを特徴とする請求項3に記載のデータ補正装置。
【請求項5】
前記複数の第2の射影行列の各々は、前記第1の射影ベクトルを前記第1の射影行列を用いて次元復元する演算と、変動の種類毎にデータを学習して得られた射影行列による次元削減及び次元復元の演算とを合成した演算行列であることを特徴とする請求項4に記載のデータ補正装置。
【請求項6】
前記統合手段は、前記判定手段による判定結果に基づいて、前記複数の次元復元されたベクトルデータに対する重みを決定し、前記複数の次元復元されたベクトルデータの重み付き平均を算出することにより前記補正後のデータを得ることを特徴とする請求項1乃至5のいずれか1項に記載のデータ補正装置。
【請求項7】
前記対象物の画像に関わるデータとは、対象物の画像データから抽出された特徴点位置を示す特徴データであることを特徴とする請求項1乃至6のいずれか1項に記載のデータ補正装置。
【請求項8】
前記対象物の画像に関わるデータとは、前記対象物の画像データであることを特徴とする請求項1乃至6のいずれか1項に記載のデータ補正装置。
【請求項9】
請求項1乃至8のいずれか1項に記載のデータ補正装置と、
前記補正後のデータを用いて画像中の対象物を判別する判別手段と備えることを特徴とする画像判別装置。
【請求項10】
対象物の画像に関わるデータを補正するデータ補正装置の制御方法であって、
入力手段が、補正対象のデータを連結したベクトルデータを入力する入力工程と、
生成手段が、前記ベクトルデータを部分空間へ射影して次元削減された射影ベクトルを生成する次元削減処理と、前記射影ベクトルの次元を復元して次元復元されたベクトルデータを生成する次元復元処理とを実行することにより、複数の次元復元されたベクトルデータを変動の種類毎に生成する生成工程と、
判定手段が、前記射影ベクトルに基づいて前記対象物の変動を判定する判定工程と、
統合手段が、前記判定工程の判定結果に基づいて前記複数の次元復元されたベクトルデータを統合して、補正後のデータとして出力する統合工程とを有することを特徴とするデータ補正装置の制御方法。
【請求項11】
コンピュータを請求項1乃至9のいずれか1項に記載された装置の各手段として機能させるためのコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−138388(P2011−138388A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−298820(P2009−298820)
【出願日】平成21年12月28日(2009.12.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願日】平成21年12月28日(2009.12.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]