【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年4月1日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「認知状態共有による交通事故低減技術の研究開発」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【文献】
Gabriel Fanelli et al.,"Real Time Head Pose Estimation with Random Regression Forests",IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2011,米国,IEEE,2011年 6月20日,pp.617-624
【文献】
宋 海俊、外3名,“Shape Contextを用いた顔形状記述による頭部方向の推定”,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2010年 3月 8日,Vol.109, No.470,pp.121-126
(58)【調査した分野】(Int.Cl.,DB名)
前記相対位置ベクトルと前記頭部姿勢とを、前記複数種類の特徴点の各々について、予め規定される特徴点抽出モデルに基づき、頭部姿勢のそれぞれ異なる複数のサンプル画像から抽出された前記特徴点に対して、 前記抽出された特徴点から頭部基準位置座標へ向かう相対位置ベクトルと前記頭部姿勢とを関連付けて、前記記憶手段に格納するオフセット情報抽出手段をさらに備える、請求項1または2記載の頭部姿勢推定装置。
【背景技術】
【0002】
人の頭部運動には、視線と同様にユーザの意図や興味対象などの情報が含まれており、人の内的状態を直接反映されているため、顔位置・姿勢を計測する技術には幅広い応用が考えられる。例えば、マーケティングや広告などの分野では、顧客の興味対象を推定する手法として顔向き情報が用いられている(たとえば、特許文献1を参照)。また、人同士または人と機械のコミュニケーションの解析や支援などにおいても顔位置・姿勢は重要なモダリティとして利用されている(非特許文献1)。頭部運動を利用した自動車運転の挙動解析などはその一例である(たとえば、特許文献2を参照)。
【0003】
さらに、顔位置・姿勢推定は、視線推定・表情推定などにより高次の顔画像処理の前処理としても重要な意味を持つ。例えば、非特許文献2においては、顔(頭部)の位置・姿勢に基づいて各時刻の眼球位置を推定し虹彩位置の抽出結果と合わせて視線方向を算出する手法が提案されている。また、非特許文献3では、顔位置・姿勢と表情を同時に推定することでより広い姿勢範囲での表情推定が可能となることが示されている。このように顔位置・姿勢推定の推定精度・計測範囲の改善は視線・表情推定の性能改善につながることが期待される。
【0004】
頭部運動を計測する手法として、これまでジャイロセンサ等を頭部に装着する方法、距離画像センサを利用する方法、カメラから得られる画像情報を利用する方法などが提案されてきた。
【0005】
それぞれの手法には得失があるが、非装着計測が可能であること、低コストであることから画像処理ベースの手法に対する期待は高い。しかし従来提案されてきた画像による顔位置・姿勢計測には、計測範囲や処理速度の面で課題がある。
【0006】
例えば、代表的な顔位置姿勢推定手法である3次元顔モデルと画像特徴の照合に基づく手法では、モデルと画像特徴の照合処理のコストが高いためそのままでは十分な処理速度が得られない。そのためフレーム間の頭部運動が小さいことを仮定して探索範囲を限定することで実時間処理を実現している。
【0007】
従来の頭部姿勢推定の研究は、オプティカルフローなど画像内の顔領域から直接得られる対応点の移動量から頭部姿勢の相対変化量を推定する手法と、3次元顔形状モデルと画像の照合に基づく手法の2つに大きく分けられる。
【0008】
対応点の移動量から頭部姿勢の相対変化量を推定する手法は、特定の顔モデルに依らず低次の特徴量を利用するため比較的安定に動作し計算コストが低いという利点があるが、絶対的な姿勢が得られないため長時間の追跡ではドリフトが生じる(非特許文献4)。この問題を解消するために一部形状モデルによる照合と組み合わせた手法も提案されている。
【0009】
3次元顔形状モデルと画像の照合に基づく手法は、3次元の顔形状モデルの各部位に関する画像特徴を入力画像と照合し、入力画像上の対応点から顔位置・姿勢を推定する(非特許文献5)。この手法ではモデルとの照合により絶対的な姿勢角が得られるという利点がある一方で、照合処理の計算コストが高い。計算コストを引き下げるため隣接するフレーム間での運動が小さいことを仮定して探索領域を限定することも多いが、それにより追跡に失敗する頻度が大きくなるという問題を抱えている。
【0010】
これに対して、近年、画像内における対象物体の局所的な見え(Appearance)と対象物体の位置等の推定対象の関係を大量のデータによってあらかじめ学習し、学習結果に基づく投票によって推定処理を行う手法が注目されている。顔画像処理においては特定の部位の照合に依存しないため安定性に優れる。
【0011】
非特許文献6においては、投票処理によって目尻・目頭等の顔部品位置を推定する手法が提案されている。顔画像内の小領域の画像特徴と検出対象である顔部品との位置関係を、画像特徴を検索キーとしたRegression Forestsに格納し、未知画像上の顔画像領域内で得られる各顔部品位置を投票に基づいて高速かつ安定に推定できることが示されている。
【0012】
また、非特許文献7においては、Random Regression Forestsを利用してDepth Dataに対してオフセットモデルを構築し、頭部姿勢を推定するシステムが開示されている。
【発明を実施するための形態】
【0028】
以下、本発明の実施の形態の頭部姿勢の推定装置の構成について、図に従って説明する。なお、以下の実施の形態において、同じ符号を付した構成要素および処理工程は、同一または相当するものであり、必要でない場合は、その説明は繰り返さない。
【0029】
[実施の形態1]
[ハードウェア構成]
以下、本発明の実施の形態にかかる「頭部姿勢の推定装置」について説明する。この頭部姿勢の推定装置は、パーソナルコンピュータまたは専用コンピュータ等、演算装置上で実行されるソフトウェアにより実現されるものであって、対象画像から人物の顔を抽出し、さらに人物の顔の映像に基づいて、頭部姿勢を推定・検出するためのものである。
【0030】
ただし、以下に説明する「頭部姿勢の推定装置」の各機能の一部または全部は、ハードウェアにより実現されてもよい。
【0031】
なお、「頭部姿勢」とは、3次元空間内で対象となる人間の顔の向きを意味するものとする。
【0032】
図1は、この頭部姿勢の推定装置の外観を示す図である。
【0033】
図1を参照して、この頭部姿勢の推定装置を構成するシステム20は、CD−ROM(Compact Disc Read-Only Memory )またはDVD−ROM(Digital Versatile Disc Read-Only Memory)ドライブ(以下、「光学ディスクドライブ」と呼ぶ)2030のような記録媒体からデータを読み取るためのドライブ装置を備えたコンピュータ本体2010と、コンピュータ本体2010に接続された表示装置としてのディスプレイ2120と、同じくコンピュータ本体2010に接続された入力装置としてのキーボード2100およびマウス2110と、コンピュータ本体2010に接続された、画像を取込むための複数のカメラ30.1〜30.nとを含む。
【0034】
記録媒体としては、光学ディスクに限定されず、たとえば、メモリカードのような不揮発性半導体メモリを用いたものであってもよく、その場合は、メモリドライブ2020(図示せず)が設けられる。
【0035】
また、この実施の形態の装置では、各カメラ30.i(1≦i≦n)としては、CCD(Charge Coupled Device)またはCMOS(Complementary Metal-Oxide Semiconductor)センサのような固体撮像素子を含む単眼カメラを用いることができる。カメラの台数としては、1台でもよいし、複数台でもよい。ただし、複数台を使用する場合は、後に説明するように、各カメラ30.iの観測範囲から得られる画像データを統合して使用することにより、観測領域内の人物の顔の位置および頭部姿勢を推定・検出する処理を行なう。
【0036】
(ハードウェアの構成)
図2は、コンピュータシステム20のハードウェアブロック図である。
【0037】
図2において、コンピュータ本体2010は、メモリドライブ2020、ディスクドライブ2030に加えて、CPU2040と、ディスクドライブ2030及びメモリドライブ2020に接続されたバス2050と、ブートアッププログラム等のプログラムを記憶するためのROM2060とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM2070と、アプリケーションプログラム、システムプログラム、及びデータを記憶するための不揮発性記憶装置(たとえば、ハードディスク(HDD))2080と、ネットワーク等を介して外部機器、たとえば、サーバ等と通信するための通信インタフェース2090と、カメラ30.1〜30.nからの画像信号を受信するための画像入力インタフェース2092とを含む。
【0038】
コンピュータシステム20に、本実施の形態の頭部姿勢の推定装置の機能を実行させるプログラムは、CD−ROM2200、またはメモリ媒体2210に記憶されて、ディスクドライブ2030またはメモリドライブ2020に挿入され、さらにハードディスク2080に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ本体2010に送信され、ハードディスク2080に記憶されても良い。プログラムは実行の際にRAM2070にロードされる。
【0039】
コンピュータシステム20は、さらに、入力装置としてのキーボード2100およびマウス2110と、出力装置としてのディスプレイ2120とを備える。
【0040】
上述したようなコンピュータシステム20として機能するためのプログラムは、コンピュータ本体2010に、情報処理装置等の機能を実行させるオペレーティングシステム(OS)は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム20がどのように動作するかは周知であり、詳細な説明は省略する。
【0041】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0042】
さらに、CPU2040も、1つのプロセッサであっても、あるいは複数のプロセッサであってもよい。すなわち、シングルコアのプロセッサであっても、マルチコアのプロセッサであってもよい。
【0043】
[システムの機能ブロック]
以下に説明するとおり、本実施の形態の頭部姿勢の推定装置において推定のために使用するデータを作成するために、予め複数の第1のサンプル画像(特徴点抽出モデル作成用の学習画像)を準備しておく。この第1のサンプル画像においては、顔の特徴点(目尻、目頭、唇の端部など)の位置が予めハンドラベリングされているものとする。
【0044】
このような第1のサンプル画像を用いて、まず、それぞれの顔の特徴点についての特徴抽出モデルを作成する。このような「特徴抽出モデル」の作成の詳細については後述する。
【0045】
複数の第1のサンプル画像のうちの、たとえば、サンプル画像1について、「左目尻についての特徴抽出モデル1」、「右目尻の特徴抽出モデル1」、「左目頭についての特徴抽出モデル1」,…が作成される。このようにして作成された複数のサンプル画像についての複数の特徴抽出モデルのすべてを特徴点の抽出のための特徴抽出モデルとして使用してもよいし、後に説明するように、それらの中から選択した一部を使用してもよい。
【0046】
特徴抽出モデルが作成されたら、続いて、顔の中心の位置がそれぞれ予めハンドラベリングされている第2のサンプル画像を準備する。また、各第2のサンプル画像については、頭部姿勢についての情報も予め特定されているものとする。
【0047】
その上で、第2のサンプル画像の各々について、複数の特徴抽出モデルにより、複数種類の顔特徴点を検出する。特徴抽出モデルごとに、第2のサンプル画像において検出された特徴点から顔中心位置へ向かう「相対位置ベクトル」と呼ばれるベクトルとサンプル画像の頭部姿勢の情報とを関連付けて、オフセット集合としてテーブル化し記録しておく。
【0048】
なお、オフセット集合を作成するときのスケールとしては、画像スケールで作成しておき、後に説明する投票処理の後に、実空間スケールの顔中心の位置・頭部姿勢に変換する構成とすることも可能である。あるいは、顔中心位置、オフセットベクトルなど自体が、実空間スケールの3次元座標により定義されていてもよい。以下では、顔中心位置やオフセットベクトルのようにオフセット集合の要素は、実空間スケールで定義されているものとして説明する。
【0049】
また、上記の説明では、第1のサンプル画像と第2のサンプル画像とは、異なる画像として説明したが、サンプル画像として、各々において、顔の特徴点位置、顔中心の位置、頭部姿勢が予め特定されているものを準備しておき、これを第1のサンプル画像および第2のサンプル画像に共通に利用してもよい。以下では、第1のサンプル画像と第2のサンプル画像とは共通なものとして説明する。
【0050】
次に、カメラなどの撮像装置により撮影された観測画像(たとえば、静止画であってもよく、動画像であれば、フレーム画像)において、複数の特徴抽出モデルにより、複数種類の顔特徴点を検出し、上記テーブルにおいて対応付けられているオフセットベクトルにより、顔中心位置についての投票処理を実行する。投票結果において最頻値となる位置座標を、顔中心位置の推定値とし、頭部姿勢についても最頻値となる頭部姿勢を頭部姿勢の推定値とする。
【0052】
図3は、本実施の形態の頭部姿勢の推定装置において、上述したCPU2040がソフトウェアを実行することにより実現する機能を示す機能ブロック図である。
【0053】
なお、
図3に示した機能ブロックのうちのCPU2040が実現する機能ブロックとしては、ソフトウェアでの処理に限定されるものではなく、その一部または全部がハードウェアにより実現されてもよい。
【0054】
図3を参照して、少なくとも1台のカメラ30.1(〜30.n)により撮像された動画に対応する映像信号は、フレームごとに画像キャプチャ処理部5602により制御されてデジタルデータとしてキャプチャされ、画像データ記録処理部5604により、ハードディスクのような不揮発性記憶装置54に格納される。
【0055】
顔検出部5606は、キャプチャされたフレーム画像列に対して、周知の顔検出アルゴリズムにより、顔候補探索を行う。なお、このような周知な顔検出アルゴリズムとしては、特に限定されないが、たとえば、特開2008−102902号公報明細書に記載されるようなアルゴリズムや、後に説明するようなHaar-like特徴量を用いた顔検出アルゴリズムを使用することが可能である。
【0056】
続いて、特徴点抽出部5608は、検出された顔領域またはその近傍において、複数の特徴点抽出モデルにより特徴点の抽出を行う。
【0057】
ここで、「特徴点抽出モデル」としては、後に説明するような、予め学習用のサンプル画像においてハンドラベリングした所定の顔特徴点を含む顔部品について算出したガボールウェーブレットの応答ベクトルを利用するものとする。なお、「特徴点抽出モデル」としては、任意の顔画像から特徴点検出が可能な特徴モデルであれば、このような「ガボールウェーブレットの応答ベクトル」に限定されるものではない。
【0058】
不揮発性記憶装置2080には、後に詳述するように、特徴抽出モデルごとに、サンプル画像(学習画像)において検出された特徴点から顔中心位置へ向かう「相対位置ベクトル」と呼ばれるベクトルとサンプル画像の頭部姿勢の情報とを関連付けた「オフセットベクトル」についての「オフセット集合」のテーブルが記録されている。
【0059】
投票処理部5610は、複数の特徴点抽出モデルにより、入力画像(観測画像)において抽出された複数の特徴点について、特徴点抽出モデルと関連付けられたオフセットベクトルにより、顔中心位置および頭部姿勢に対する投票処理を実施する。なお、後に説明するように、オフセット集合を予め近傍探索に適したデータ構造にしておき、投票処理を行うオフセットベクトルについて枝刈り処理をして、実際に投票処理を行うオフセットベクトルを、一定の範囲内となるものに限定することで、処理負荷の低減することも可能である。なお、ここで、「一定範囲内」とは、特に限定されないが、たとえば、動画像であれば、前回の画像フレームにおいて推定された顔中心位置と現在の画像フレームにおいて抽出された特徴点の位置との差分ベクトルの所定の距離の近傍に存在する相対位置ベクトルの範囲のことをいう。
【0060】
最頻値探索部5612は、投票された顔中心位置および頭部姿勢のうちから、最も頻度の高い顔中心位置および頭部姿勢を特定する。なお、ここで、顔中心位置および頭部姿勢については、所定の大きさの範囲に入る投票を同一値に対する投票とみなす処理を行っている。
【0061】
顔位置姿勢推定部5614は、最頻値探索部5612により特定された最頻値に基づき、顔中心位置座標および頭部姿勢の推定値を出力する。ここで、顔中心位置については、同一値に対する投票とみなされる所定範囲の領域について、予め定められた値が、顔中心位置座標として特定される。頭部姿勢についても同様である。
【0062】
推定された顔位置座標および頭部姿勢は、推定した画像フレームと関連づけて、ハードディスク2080に格納される。
【0063】
また、表示制御部5616は、以上のようにして推定された頭部姿勢の方向を、表示装置2120において、取得された画像フレーム上に表示するための処理を行なう。
【0064】
図4は、サンプル画像の例を示す図である。
【0065】
図4に示すように、以下の説明では、たとえば、学習データとしてのサンプル画像として、カメラから一定距離で頭部姿勢を変化させながら撮影した189枚の顔画像を用いる。
【0066】
学習データは100×100[pixel]の画像とし、眼間距離が正面顔で40[pixel]になるようにスケールを調整する。学習データに含まれる姿勢はアジマス角αについて±90度、エベレーション角βとロール角γについては±20度の範囲で姿勢を変化させたものとする。
【0067】
図5は、頭部姿勢を表すそれぞれの回転角を示す図である。
【0068】
正面顔を基準として、正面に向かう方向をZ軸とするとき、アジマス角αは、顔の水平方向の回転角(Y軸回りの回転角)であり、エレベーション角βは、顔の上下方向の傾きを表す仰角(X軸回りの回転角)であり、ロール角は、顔の左右への傾きを表す角(Z軸回りの回転角)である。
【0069】
学習データとしては、各画像上で顔中心位置(
図5中×印で示す)および、目口の両端点6点の座標をハンドラベリングし、姿勢角α、β、γと共に保存したものを準備する。
【0070】
(特徴抽出モデル)
特徴点抽出部5608が行う特徴点抽出について説明する。
【0071】
本実施の形態の頭部姿勢の推定装置は、顔画像中の特徴点を手掛かりとして顔位置姿勢推定を行うため、任意の顔画像から特徴点検出が可能な特徴モデルを作成する必要がある。
【0072】
本実施の形態では、特に限定されないが、前述の学習データ上でハンドラベリングした顔部品座標(たとえば、目口の両端点6点)について算出したガボールウェーブレット(GaborWavelet)の応答ベクトルを利用する(カーネルサイズ 11×11、64次元)。
【0073】
ここで、「ガボールウェーブレットの応答ベクトル」とは、顔画像領域内の各部分領域をガボール基底ベクトルとの積和演算により低次元ベクトル表現に変換したものである。CPU2040の特徴点抽出部5608は、カメラからの画像フレームを、たとえば、所定の大きさの部分画像に分割し、この「ガボールウェーブレットの応答ベクトル」を用いた特徴点抽出モデルを顔部品テンプレートとして、カメラからの画像フレームの各部分画像と比較し、類似度の高いものを特徴点として抽出する。
【0074】
このような特徴点の抽出処理については、たとえば、以下の公知文献1に記載されている。
【0075】
公知文献1:画像処理による顔検出と顔認識(サーベイ(2))情報処理学会研究報告. 2005-CVIM-149(37), [コンピュータビジョンとイメージメディア] , P.343-368, 2005-05-13.
なお、本実施の形態では、学習データから作られた約500個のモデルからランダムに100個を選択し、「特徴抽出モデル」として利用する。このような特徴抽出モデルを、特徴抽出モデルv
i(i=1,…,N)で表す。
【0076】
(オフセット集合)
特徴抽出モデルv
i(i=1,…,N)によってサンプル画像I
j(j=1,…,M)からL
ij個の特徴点が抽出されたとする。
【0077】
図6は、特徴抽出モデルv
i(i=1,2)で、頭部姿勢の異なるサンプル画像において、特徴点を抽出した後に、特徴点をサンプル画像に重畳して示す図である。
【0078】
サンプル画像I
jにおけるk番目の特徴点の座標を以下のように表す。
【0079】
【数1】
サンプル画像I
jにおけるスケーリングファクタ(実空間における距離と画像上の距離の関係)をs
j[pixel/mm]とすると、上記k番目の特徴点の座標は、以下のような実空間スケールの座標に変換される。(画像座標系の原点は光軸中心とする)。
【0080】
【数2】
一方、光軸方向に関するカメラと頭部の距離Z
jは次式で表される。
【0081】
【数3】
ここで、fはレンズ焦点距離を表す。
【0082】
さらに、サンプル画像I
jにおける頭部基準座標(ここでは、顔中心位置座標)を以下の式で表す。
【0083】
【数4】
すると、実空間スケールにおいて特徴点座標から見た頭部基準位置座標の相対位置ベクトルは、以下の式で表される。
【0084】
【数5】
これにサンプル画像I
jにおける頭部姿勢パラメータα
j,β
j,γ
jを加えた以下のような6次元ベクトルをオフセットベクトルと呼ぶ。
【0085】
【数6】
全てのサンプル画像に特徴点抽出モデルv
iを適用して得られた、以下のようなオフセットベクトルの集合S
iを特徴抽出モデルv
iに関するオフセット集合とよぶ。
【0086】
【数7】
図7は、このようなオフセットベクトルの集合の各要素を説明するための概念図である。
【0087】
図7では、エレベーション角βおよびロール角γについては、0であるものとして、アジマス角α=0°の場合と、α=−30°の場合について示す。
【0088】
図7(a)に示すように、α=0°のサンプル画像と、α=−30°のサンプル画像について、顔中心位置が×印により示され、特徴抽出モデルv
iにより抽出された特徴点が白丸で示されている。
【0089】
図7(b)で示すように、各特徴点から顔中心位置に向かうベクトル群が得られ、これを
図7(c)で示すように、特徴抽出モデルv
iにより抽出された特徴点に対応する相対位置ベクトルと定義する。したがって、一般には、特徴抽出モデルv
iにより抽出された1つの特徴点に複数の相対位置ベクトルが対応することになる。このような顔中心位置に対する相対位置ベクトルに頭部姿勢を表す頭部姿勢パラメータ(α β γ)とを組み合わせることで、オフセットベクトルが得られる。
【0090】
図8は、サンプル画像から特徴点を抽出した場合の具体例を示す図である。
【0091】
図8においては、3つの異なる姿勢の画像について、同一の特徴抽出モデルv
iにより抽出された特徴点を、元の画像に重畳して示す。
【0092】
図9は、顔位置および頭部姿勢の推定処理を説明するためのフローチャートである。
【0093】
以下では、動画像を撮影し、所定の時間間隔で、画像フレームについて、顔位置および頭部姿勢の推定処理を行うものとして説明を行う。所定の時間間隔とは、たとえば、フレーム毎を意味していてもよい。また、以下では、まず、カメラは1台であるものとする。
【0094】
図9を参照して、画像フレームを特定する変数を初期化(j=1)して(S100)、画像キャプチャ処理部5602がカメラ30.1から入力画像P
jを取得し、不揮発性記憶装置2080に格納する(S102)。
【0095】
続いて、顔検出部5606が、入力画像P
jに対する顔検出処理を行い、顔領域が一定サイズになるようにスケーリングする(S104)。顔領域の大きさからスケーリングファクタsが得られる。スケーリングでは、得られた顔領域が学習データと同じサイズ(今回の実装では、100×100[pixel])になるように拡大縮小処理を適用する。特に限定されないが、顔検出処理には、Haar-like特徴量を用いた顔検出アルゴリズムを利用することが可能である。たとえば、Haar-like特徴量を用いたカスケード型AdaBoost検出器が以下の文献に開示されている。
【0096】
公知文献2:P. Viola and M. Jones: Rapid object detection using a boosted cascade of simple features, In Proc. IEEE Conf. Computer Vision and Pattern Recognition, pages 511--518, 2001
特徴抽出モデルを識別するための変数iを初期化(i=1)した後(S106)、特徴点抽出部5608が、変数iに対応する特徴抽出モデルv
iを選択して(S108)、スケーリングされた領域に対して、特徴抽出処理を適用し、顔特徴点を抽出する。このとき、抽出される特徴点座標は2次元座標なので3次元座標へ変換処理を行う(S110)。このステップS110での処理は、オフセット集合を作成したときの処理と同様である。
【0097】
特徴抽出モデルv
iにより、入力画像P
jについて、抽出されたk番目の特徴点の座標を[x
k y
k]
T(k=1,…,L
ij:L
ijは検出された特徴点の個数)とすると、実空間スケールにおける特徴点の座標は次式で表される。
【0098】
【数8】
次に、投票処理の回数をカウントするための変数を初期化(k=1)する(S112)。そして、オフセット集合S
iの要素数をn
iとし、m番目の要素が以下のように表されるとする。
【0099】
【数9】
θ
im(ベクトル)は学習データにおいて特徴点モデルv
iをによって得られたものである。したがって、入力画像P
jから得られた画像特徴が顔面上の学習時と同じ部位に対応し、かつ両者の頭部姿勢が一致していれば、以下の式で表されるベクトルは、顔基準位置となる顔中心位置を与える。
【0100】
【数10】
投票処理部5610は、オフセット集合S
iの各要素θ
im(ベクトル)(m=1,…,n
i)を不揮発性記憶装置2080から読み出して(S114)、スケールの変動を考慮し、以下のような数値の組をパラメータとする投票処理を行う(S118)。
【0101】
【数11】
ここで、特に限定されないが、スケール変動率gを0.95から1.05まで0.01刻みに変化させて、繰り返し投票が行われる。変動率gを、たとえば、1.0に固定して投票を行ってもよいが、変動率を上記のように変化させることで、カメラと頭部の距離の変化によるスケールの変動に追従することができる。
【0102】
このような投票処理を、特徴抽出モデルv
iについて抽出されたすべての特徴点(個数はL
ij個)について繰り返す(S112からS122の処理)。
【0103】
さらに、変数iの値を1だけインクリメントし(S126)、特徴点抽出モデルを次のモデルに置き換えて、ステップS108からステップS126までの処理を、すべての特徴点抽出モデル(個数はN個)について繰り返す。
【0104】
以上のようにして、すべての抽出された特徴点についての投票処理が終了した後に、最頻値探索部5612は、顔中心位置および頭部姿勢についての最頻値の探索を実行する(S128)
最頻値が収束していれば処理は、次のステップに移行し、収束しない場合は、処理はステップS106に復帰する(S130)。ここで、「収束の判定」は、特に限定されないが、たとえば、mean-shift法による繰り返し推定を利用し、変位が一定値以下となれば、処理が収束したものと判断するように構成することができる。ただし、最頻値探索に適用するアルゴリズムとしては、他のアルゴリズム、たとえば、最急勾配法などでもよい。もっとも、mean-shift法による最頻値探索を用いることで、振動や発散のない繰り返し収束が保証されるなどの利点がある。
【0105】
ここで、特に限定されないが、i)収束を判定する繰り返し計算ごとに、使用する特徴抽出モデルの組みを組み替えてもよいし、ii)最初は少数の特徴抽出モデルでラフな投票を行っておいて、収束が近づくに連れて特徴抽出モデル数を増やして精度を高めるなど、収束の判定を行う繰り返しごとに、特徴抽出モデルについての条件を変更させることが可能である。
【0106】
最頻値が収束した場合、b(X,α,β,γ)(Xはベクトル)をパラメータ(X,α,β,γ)に対する投票数とすると、推定結果を最頻値として次式で得られたものになる。
【0107】
【数12】
顔位置姿勢推定部5614は、上記最頻値から、顔中心位置座標および頭部姿勢の推定値を取得し不揮発性記憶装置2080に入力画像P
jに関連づけて記録するとともに、表示のためのデータに変換して、表示制御部5616に与える(S132)。
【0108】
その後は、次の入力画像P
j+1に対して、同様の処理が繰り返される。
【0109】
図10は、以上のような投票処理を説明するための概念図である。
【0110】
図10に示すように、2次元の撮像面内の画像を実空間スケールへ変換し、カメラ座標系の3次元の座標に変換した上で、投票処理を行い、投票が集中するエリアに顔中心位置座標が存在するものとして推定される。なお、
図10においては、説明の簡単のために、顔中心位置のみを概念的に示しているが、実際には、上述のとおり、頭部姿勢についての投票も行われる。
【0111】
(高速化)
ここまで、
図9および
図10を用いて、オフセット集合に基づいた顔位置・姿勢推定の原理について説明した。ただし、オフセット集合の大きさ(要素数)によっては処理コストが高くなるという問題がある。
【0112】
たとえば、以上のような説明の場合、オフセット集合の要素数はスケール変動分を含めると1特徴あたり1万以上であり、全要素数について投票を行うことは、ハードウェアの性能によっては処理負荷が大きい。
【0113】
したがって、以下のようにして、処理の負荷を削減することも可能である。
【0114】
すなわち、たとえば、k-d木による近傍探索とmean-shift法による繰り返し推定の組み合わせによって計算量を削減することができる。
【0115】
図11は、投票処理の高速化の概念を説明するための図である。
【0116】
ここで、k-d木は二分探索木を多次元に拡張したものであり、多次元ベクトルに対する近傍探索を高速に行うことができる。そこで、オフセット集合S
iの各要素を、相対位置ベクトルX
iをインデックスとしてk-d木に格納する。
【0117】
投票時には顔位置に関する前回の推定結果Xと特徴点の座標X
kから得られる差分ベクトル(X−X
k)を検索キーとしてk-d木上で近傍探索を行い、距離が一定値未満となるオフセットのみを使って、位置・姿勢ベクトルを計算する。なお、前回が初回の場合は、前回の推定結果としては、初期値を使用する。
【0118】
したがって、
図11(b)に示すように、1つの特徴点について、オフセットベクトルが6つ対応しているような場合でも、
図11(a)に示すように、点線で示されるオフセットベクトルは除外して、実線で示されるオフセットベクトルについての投票のみが行われることになる。
【0119】
このようにして、特徴点あたりの投票に使われるオフセットベクトル数を削減して、全ての顔特徴点について計算した位置・姿勢ベクトル群から位置・姿勢の推定値を得る。位置・姿勢の推定の収束判定には、たとえば、mean-shift法による繰り返し推定を利用し、変位が一定値以下となれば処理を終了する構成とすることが可能である。
【0120】
なお、1つの特徴点に対応するオフセットベクトルの組において、枝刈りされるものと、投票に使用されるものとは、
図11(b)に示されるように、大きく方向が異なるため、このような枝刈りを行ったとしても、近傍探索の範囲を適切に設定することで、頭部姿勢の変化に追従することが可能である。
【0121】
また、近傍探索を行うためのデータ構造としては、k-d木に限定されず、「多次元探索鍵を使った探索(近傍探索)に使われるデータ構造」であれば、他のデータ構造であってもよい。
【0122】
図12は、このような投票処理の結果の頻度分布を説明するための図である。
【0123】
図12に示すように、位置と姿勢について、投票処理による最頻値により、同時に推定結果が得られる。
(複数カメラの場合)
以上の説明では、カメラ座標系を基準とした投票であるが、複数のカメラで得られる情報を統合するには、さらに各カメラの位置・姿勢を考慮する必要がある。
【0124】
図13は、複数カメラの場合の推定処理を説明するための概念図である。
【0125】
図13に説明するように、3次元の世界座標におけるカメラ30.pの位置および姿勢をそれぞれT
cp,R
cpとすると(p=1,…,Nc: Ncは、カメラ台数)、世界座標における顔位置・姿勢X,Rは、カメラ30.pの座標系で、それぞれ、以下のように表される。
【0126】
【数13】
カメラpの座標系における頭部姿勢R
cp-1Rに対するアジマス角、エベレーション角、ロール角をそれぞれ以下のように表す。
【0127】
【数14】
このとき、Nc台のカメラの観測によるX,Rの推定値は次式により得られる。
【0128】
【数15】
このように複数台のカメラを用いる構成であれば、冗長な観測による精度・安定度の向上と、異なる方向から観測することによる追跡範囲の拡大が可能である。
【0129】
このように複数台のカメラの画像の情報を統合して投票処理を行った場合でも、近傍探索処理については、カメラ1台の場合と同様に処理を行うことが可能である。
【0130】
なお、投票処理を実空間スケールの3次元位置とすることで、複数のカメラの画像についての統合処理が容易となる。
(実験結果)
以上説明した顔位置・姿勢の推定方法の有効性を確認するため以下の実験を行った。
【0131】
まず実装したシステムにより頭部姿勢の追跡を行った。
【0132】
図14は、アジマス角α、エベレーション角β、ロール角γについての追跡結果を示す図である。
【0133】
ここでは被験者1名がカメラから約1.5m離れた位置に立ち、アジマス角±40度、エレベーション角±20度、ロール角±20度の範囲で頭部を運動させた。図中、破線は正解値を実線は本実施の形態の頭部姿勢の推定方法による姿勢推定結果をそれぞれ示す。
【0134】
図14にみられるように、連続的に頭部姿勢の追跡が可能であることを確認した。なお、
図14の実装においてシステムの動作速度は約10フレーム/秒であった。
【0135】
図15は、3名の被験者について本実施の形態の頭部姿勢の推定方法による推定結果を示す図である。
【0136】
本実施の形態の頭部姿勢の推定方法が眼鏡装着など異なる条件下でも動作可能であることがわかる。
【0137】
図16は、カメラ2台で推定処理を行った例を示す図である。
【0138】
ここでは、被験者から約1.5m離れた場所に約40度離して2台のカメラを設置し、被験者の頭部を2方向から観測した。ここにみられるように、本実施の形態の頭部姿勢の推定方法によって2台のカメラの観測結果を統合し顔位置・姿勢推定を行うことができる。
【0139】
なお、以上の説明では、頭部基準位置としては、ハンドラベリングした顔中心位置を使用したが、頭部基準位置としては、このような位置に限定されるものではない。たとえば、頭部姿勢変化で大きく位置が変わらない点である頭部の回転中心(首の付け根のあたり)を頭部基準位置としてもよい。
【0140】
以上説明したように、本実施の形態の頭部姿勢の推定装置、頭部姿勢の推定方法によれば、顔画像上で検出される局所的な画像特徴と頭部位置・姿勢の関係に基づく投票処理によって入力画像中の顔の位置および姿勢を高速に推定することが可能となる。また、ひとつの特徴モデルによってサンプル画像から検出される複数の特徴点の座標と頭部位置・姿勢の関係をオフセット集合とし、入力画像において抽出される特徴点に対応して投票処理を行うので、頭部姿勢変化が短時間に生じた場合に、頭部姿勢の変化に追従して、頭部姿勢の推定を行うことができる。
【0141】
さらに、本実施の形態の頭部姿勢の推定装置、頭部姿勢の推定方法において、以下の構成とすれば、一層の高速化が可能である。すなわち、オフセット集合として特徴モデル毎にk-d木のような「多次元探索鍵を使った探索(近傍探索)に使われるデータ構造」に格納し、入力画像上での特徴抽出結果に関する投票処理によって顔の位置・姿勢を求める。この場合、上記のようなデータ構造を利用して中間解に対する近傍探索によって推定処理における不要な投票を抑制し高速化を図ることができる。
【0142】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。