説明

ステレオ画像対から3次元の頭部姿勢をリアルタイムで推定するための装置及びプログラム

【課題】3Dの頭部姿勢をリアルタイムで正確に検出できる装置を提供する。
【解決手段】リアルタイムで頭部の姿勢を推定する装置は、ステレオ画像対の目特定部と、基準座標系を参照して3Dの目の位置を決定する処理と、画像対中の顔のサイズ及びホロプタ範囲を推定するホロプタ範囲推定部と、画像画素間のホロプタ範囲内でディスパリティ値を推定するディスパリティ推定部と、補正された画像対、ディスパリティ値及びカメラのキャリブレーションパラメータに基づいて3D表面データを再構築する3D表面再構築モジュール86と、最小二乗誤差当てはめを利用して3D顔平面を3D表面データに当てはめる平面当てはめ処理と、3D表面データに当てはめられた面にロックされた頭部姿勢を表す顔座標系を規定する3D頭部姿勢推定モジュール88とを含む。モジュール88はさらに、顔座標系と基準座標系との変換を規定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、3次元の頭部姿勢をリアルタイムで推定するための装置及びコンピュータプログラムに関し、特に、とりわけ2D/3D頭部姿勢検出、認識、3Dゲーム開発、アニメーション及び放送のための、ステレオ画像対から3次元の頭部姿勢をリアルタイムかつフレームごとに推定するための装置及び方法に関する。
【背景技術】
【0002】
最近、3Dの表示技術とマルチメディア技術とが世界的に進歩しており、監視、認識、人とコンピュータとの対話及びマルチメディアへの応用に関して、人の頭部姿勢をリアルタイムに3Dで検出することが大いに関心を集めている(非特許文献1、2)。3Dの物体形状をディジタルで再構築するのに利用できる様々な商業製品もある。しかしながら、これらはレーザレンジスキャナ等の特別なセンサを必要とし、パブリックドメインでの顔認識又は3Dのテレビ放送といった一般的な用途での人の顔の3D再構築に好適とは言いがたい。
【0003】
公知文献での顔再構築のアプローチは、センサデータの用途により、2つのカテゴリに分けられる。モノ(単一)カメラ画像データからの再構築(非特許文献3)と、ステレオ画像データからの再構築(非特許文献1)とである。再構築技術に関しては、シェーディングからの形状形成(非特許文献4)、3D顔モデル(非特許文献5、3)、マーカ又はモデル当てはめのためのマーカとしての顔と特徴の位置(非特許文献2、6)等の様々な方法を用いている。
【非特許文献1】M.チャン、P.デルマ、G.L.ギメルファーブ及びP.レクラルク、「3d顔獲得技術の比較研究」、画像及びパターンのコンピュータ分析(CAIP)、2005年、740−747ページ。(M. Chan, P. Delmas, G.L. Gimel'farb, and P. Leclercq, "Comparative study of 3d face acquisition techniques.," in Computer Analysis of Images and Patterns (CAIP), 2005, pp. 740-747.)
【非特許文献2】T.A.エルデム、「個人的ユーザ対話のための3d顔モデル生成のための新たな方法」、ヨーロッパ信号処理会議予稿集、EUSIPCO、2005年。(T.A. Erdem, "A new method for generating 3d face models for personalized user interactions," in Proceedings of European Signal Processing Conference EUSIPCO, 2005.)
【非特許文献3】V.ブランツ及びT.ベッター、「3d顔合成のための変形可能モデル」、コンピュータグラフィックス及び対話技術に関する国際会議、1999年。(V. Blanz and T. Vetter, "A morphable model for the synthesis of 3d faces," in International Conference on Computer Graphics and Interactive Techniques, 1999.)
【非特許文献4】J.J.アティック、P.A.グリフィン及びA.N.レドリック、「シェーディングから形状への統計的アプローチ:単一の2次元画像からの3次元顔表面の再構築」、ニューラルコンピュテーション、第8巻、1321−1340ページ、1996年。(J.J. Atick, P.A. Griffin, and A.N. Redlich, "Statistical approach to shape from shading: reconstruction of three-dimensional face surfaces from single two-dimensional images," Neural Computation, vol. 8, pp. 1321-1340, 1996.)
【非特許文献5】A.R.チャウダリ、R.チェラパ、S.クリシュナマルチ、及びT.ヴオ、「ジェネリックモデルを用いたビデオからの3d顔再構築」、マルチメディアに関するIEEE国際会議予稿集及び展示会、2002年。(A.R. Chowdhury, R. Chellappa, S. Krishnamurthy, and T. Vo, "3d face reconstruction from video using a generic model," in Proceedings of IEEE International Conference on Multimedia and Expo, 2002.)
【非特許文献6】B.W.ハン、V.ブランツ、T.ベッター及びS−Wリー、「少数の特徴点からの顔の再構築」、第15回パターン認識に関する国際会議予稿集、2000年。(B-W Hwang, V. Blanz, T. Vetter, and S-W Lee, "Face reconstruction from a small number of feature points," in Proceedings of 15th International Conference on Pattern Recognition, 2000.)
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来のステレオアルゴリズム(非特許文献1を参照)では、3Dの人の頭部姿勢を正確に検出できないことがしばしば起こる。これは、ディスパリティ検索アルゴリズムの検索対象範囲が未知で、そのために広い場合に、画像対のいくつかの画素の場所がステレオ対応の一致に関して一義的な情報を提供しないためである。
【0005】
このため、この発明の目的の一つは、3Dの頭部姿勢をリアルタイムで正確に検出することのできる装置を提供することである。
【0006】
この発明の別の目的は、画像対のいくつかの画素の場所がステレオ対応の一致に関して一義的な情報を与えない場合でも、3Dの頭部姿勢を正確かつ頑健にリアルタイムで検出することのできる装置を提供することである。
【課題を解決するための手段】
【0007】
この発明の第1の局面に従えば、ステレオカメラの補正された画像対から3次元の人の顔表面データを再構築するための装置は、ステレオカメラのキャリブレーションパラメータと補正された画像対とに基づいて人の顔のサイズとホロプタ範囲とを推定するためのホロプタ範囲推定手段と、画像対の一方の画像中の人の顔の各画素について、画像対の他方の画像におけるホロプタ範囲内のディスパリティ値を推定するためのディスパリティ推定手段と、補正された画像対、ディスパリティ値、及びステレオカメラのキャリブレーションパラメータに基づいて、人の顔の3次元表面データを再構築するための3次元表面再構築手段と、無効なディスパリティ値を有する無効なデータ点を見出し、無効なデータ点を隣接するデータ点で補間することによって、3次元表面データ内のノイズを消去するためのノイズ消去手段と、予め定められた当てはめアルゴリズムを利用して、顔平面を3次元表面データに当てはめるための当てはめ手段と、3次元表面データのうち顔平面から予め定められた距離以内にあるものを3次元の人の顔として抽出するための抽出手段と、を含む。
【0008】
補正されたステレオ画像対がこの装置に与えられる。ホロプタ範囲推定手段が、ステレオカメラのキャリブレーションパラメータと補正された画像対とに基づいて、ホロプタ範囲と人の顔のサイズとを推定する。ディスパリティ推定手段は、一方の画像における人の顔の各画素のディスパリティ値を、他方の画像のホロプタ範囲内で推定する。ディスパリティ値の探索区域がホロプタ範囲に限定されるため、探索は頑健かつ高速である。ディスパリティ値が推定されると、人の顔の3次元表面データが再構築される。表面データからノイズが消去された後、無効データが隣接するデータ点によって補間される。当てはめ手段は顔の平面を3次元の表面データに当てはめる。最後に、3次元表面データのうち、顔の平面から予め定められた距離内にあるものが抽出され、3次元の人の顔が再構築される。
【0009】
したがって、特別なセンサを何ら必要とせずに、3Dの人の顔を正確に再構築できる装置が提供される。
【0010】
好ましくは、ホロプタ範囲推定手段は、画像対の一方の画像中の両眼間パターンを特定するための第1の特定手段と、他方の画像において両眼間パターンに対応するエピポーラ線に沿った対応のパターンを特定するための第2の特定手段と、一方の画像における両眼間パターン付近の顔候補と対応のパターンとが検証条件を満たしているか否かを検証するための検証手段と、ある顔候補が認証条件を満たすまで、第1及び第2の特定手段と検証手段とを繰返し動作させるための手段と、検証条件を満たす顔候補によって、顔領域を規定するための手段と、を含む。
【0011】
さらに好ましくは、ディスパリティ推定手段は、ホロプタ範囲及び顔領域のサイズについて、相関ウィンドウサイズを規定するための手段と、予め選択された類似度尺度に従って、最も高い類似度尺度を生じる画素を、他方の画像で探索することによって、人の顔における各画素のディスパリティ値を計算するための手段と、を含む。
【0012】
ノイズ消去手段は、顔のサイズについて偏差ウィンドウのサイズを規定して、偏差ウィンドウにおける画素の深さの値の標準偏差を求めるための手段と、一方の画像において顔領域内の各画素について、一方の画像における顔領域の画素の各々について計算されたディスパリティと画像対とを用いて、各画素付近のサイズの偏差ウィンドウ内の画素の深さの局所標準偏差と平均とを計算するための手段と、各画素付近の偏差ウィンドウの平均からの各画素の深さの値の偏差が各画素付近の偏差ウィンドウの標準偏差値より小さいか否かに依存して、顔領域内の各画素を、有効と無効とに分類するための手段と、無効と分類された画素の深さ値をそれぞれ隣接する画素の深さ値で補間するための手段と、を含んでもよい。
【0013】
ノイズは3次元表面データから無効なデータとして消去され、欠落した無効データ点の深さ値は隣接するデータ点から補間されるので、画像対のいくつかの画素の場所がステレオ対応の一致に関して一義的な情報を与えない場合でも、3次元の人の顔が頑健かつ正確に再構築される。
【0014】
好ましくは、当てはめ手段は、3次元表面データにおいて左目と右目とをつなぐ目線を見出すための手段と、目線に直交する3次元の顔対称線を見出すための手段と、顔の平面に当てはめるべきデータ点を選択するための手段と、を含む。区域は顔対称線に沿ったたんざく形領域を除く、顔の目線から顎まで延びている。当てはめ手段はさらに、前期予め定められた当てはめアルゴリズムを用いて、顔平面を当てはめるべきデータ点に当てはめるための手段を含む。
【0015】
さらに好ましくは、当てはめ手段は、最小二乗誤差による当てはめを利用して、顔平面を当てはめるべきデータ点に当てはめるための手段と、顔平面と3次元表面データとの間の誤差が全て予め定められたしきい値内にあるか否かを判定するための手段と、この手段が、誤差の全てが予め定められたしきい値より小さくはないと判定したことに応じて、3次元表面からある高い誤差のある点を消去するための手段と、判定手段が誤差の全てが予め定められたしきい値より小さいと判断するまで、当てはめ手段、判定手段、及び消去手段を繰返し動作させるための手段と、を含む。
【0016】
この発明の第2の局面に従えば、コンピュータプログラムは、コンピュータ上で実行されると、当該コンピュータを、ステレオカメラのキャリブレーションパラメータと補正された画像対とに基づいて人の顔のサイズとホロプタ範囲とを推定するためのホロプタ範囲推定手段と、画像対の一方の画像中の人の顔の各画素について、画像対の他方の画像におけるホロプタ範囲内のディスパリティ値を推定するためのディスパリティ推定手段と、補正された画像対、ディスパリティ値、及びステレオカメラのキャリブレーションパラメータに基づいて、人の顔の3次元表面データを再構築するための3次元表面再構築手段と、無効なディスパリティ値を有する無効なデータ点を見出し、無効なデータ点を隣接するデータ点で補間することによって、3次元表面データ内のノイズを消去するためのノイズ消去手段と、予め定められた当てはめアルゴリズムを利用して、顔の平面を3次元表面データに当てはめるための当てはめ手段と、3次元表面データのうち顔の平面から予め定められた距離以内にあるものを3次元の人の顔として抽出するための抽出手段と、として機能させる。
【発明を実施するための最良の形態】
【0017】
[構造]
この実施の形態は、リアルタイムの3D顔表面データの獲得のために、ステレオビジョン(立体視)に基づく3D顔表面再構築アルゴリズムを利用する。この実施の形態では、観察される個人の顔のホロプタ情報を利用して、ディスパリティアルゴリズムの探索ドメインを制限し、ディスパリティ探索範囲を選択する。
【0018】
ステレオビジョンの分野における「ホロプタ」とは、ステレオ相関アルゴリズムの探索間隔によってカバーされる3D容積と定義される。この明細書で用いられる「ホロプタ範囲」は、ステレオカメラの前にある3D容積の範囲である。
【0019】
この実施の形態ではさらに、探索のための相関ウィンドウのサイズを制限する。この実施の形態では、ホロプタ情報は高速ステレオアイトラッキングシステムによって推定される。提案されるアルゴリズムはさらに、3D顔表面データの高速で正確な抽出のために、顔の平面を推定しこれを利用する。この実施の形態によって再構築された3D顔表面は、自然な顔の表情での視覚的情報のほとんどを保持しているため、顔の視覚的ダイナミクスを保っている。
【0020】
この実施の形態は、観察される個人の人の顔データをリアルタイムで3Dで再構築し抽出することに関する。
【0021】
図1はこの実施の形態に従った3D顔姿勢推定システム50の全体構造を示す図である。図1を参照して、3D顔姿勢推定システム50は、ステレオカメラ60と、モニタ64と、ステレオカメラ60からのステレオ画像対のストリームから、3Dの人の顔姿勢を推定し、3Dの人の顔を抽出するための、リアルタイム3D顔姿勢推定装置62と、を含む。
【0022】
リアルタイム3D顔姿勢推定装置62は、後述の通りコンピュータのハードウェア及びソフトウェアで実現され、ステレオカメラ60をキャリブレートし、ステレオカメラ60のキャリブレーションパラメータを出力するためのキャリブレーションソフトウェア80と、キャリブレーションソフトウェア80によって出力されるキャリブレーションパラメータを記憶するためのキャリブレーションパラメータメモリ82と、キャリブレーションパラメータメモリ82に記憶されたキャリブレーションパラメータを利用してステレオカメラ60からのステレオ画像対を補正するための補正ソフトウェア84と、補正ソフトウェア84からの補正されたステレオ画像対を分析することによって、抽出された3Dの顔を再構築するための3D顔再構築モジュール86と、再構築された3D顔画像を利用して、3D空間における頭の姿勢、すなわち位置及び向きを推定するための、3D頭部姿勢推定モジュール88と、を含む。
【0023】
リアルタイム3D顔姿勢推定装置62はさらに、キャリブレーションソフトウェア80及び補正ソフトウェア84からアクセス可能であって、3D顔再構築モジュール86と3D頭部姿勢推定モジュール88とに接続されたバス92と、バス92及びモニタ64に接続された画像処理ユニット(Graphic processing unit:GPU)90とを含む。
【0024】
後述するように、キャリブレーションソフトウェア80及び補正ソフトウェア84の命令はコンピュータの中央処理装置(Central Processing Unit:CPU)によって実行され、所望の機能を達成する。CPUはバス92に接続されているため、キャリブレーションソフトウェア80及び補正ソフトウェア84は3D顔再構築モジュール86、3D頭部姿勢推定モジュール88及びGPU90に、バス92を介してアクセスすることができる。
【0025】
図2はコンピュータによって実現されたこの実施の形態の3D顔姿勢推定システム50のハードウェアブロック図である。図2を参照して、3D顔姿勢推定システム50はハードウェア構成要素として、コンピュータ100と、コンピュータ100に接続された、マウス102と、キーボード104と、モニタ64とを含む。
【0026】
バス92及びGPU90に加えて、コンピュータ100はさらに、CPU120と、読出し専用メモリ(Read Only Memory:ROM)122と、ランダムアクセスメモリ(Random Access Memory:RAM)124と、ハードディスク126と、DVD(Digital Versatile Disk)メディア106を駆動するためのディジタル多用途ディスクドライブ128と、ステレオカメラ60からのステレオ画像対のストリームを受けるためのビデオキャプチャボード130と、半導体メモリ108を駆動するための半導体メモリドライブ134と、を含む。コンピュータ100内の構成要素は全てバス92に接続され、互いにアクセス可能である。
【0027】
ステレオカメラ60は左カメラ60Lと右カメラ60Rとを含む。ステレオカメラ60からの画像〜Lと〜R(tは時間を示す)(「〜」記号は本来文字の上に付されるものである)とは補正されていない。
【0028】
この実施の形態では、キャリブレーションソフトウェア80はステレオカメラ60のキャリブレーションパラメータA及びAを計算するためにオフラインで用いられる。キャリブレーションは、カメラ60L及び60Rの各々のラジアルディストーション、レンズの偏心、焦点距離、画素アスペクト比、ベースライン及び配向を訂正するために行われる。キャリブレーションパラメータはキャリブレーションパラメータメモリ82に記憶される。この実施の形態のキャリブレーション処理では、ユーザがステレオカメラ60に予め規定されたパターンを提示する。キャリブレーションソフトウェア80はステレオカメラ60の出力〜L及び〜Rを利用して、パラメータを計算する。キャリブレーションのためのソフトウェアは商業的に入手可能である。例えば、SRIインターナショナルの頒布するスモールビジョンシステム(Small Vision SystemTM:SVSTM)が利用できる。
【0029】
補正ソフトウェア84はステレオカメラ60の出力ステレオ画像〜L及び〜Rを補正するのに用いられる。ここで補正とは、左右の画像の対応するエピポーラ線を同じレベルに整列させることを意味する。この処理を図4に示す。
【0030】
図4を参照して、ステレオカメラ60の左右の画像170Lと170Rとが線172Lとこれに対応する線172Rとをそれぞれ含むと仮定する。レンズのディストーションとレンズの配向の差とにより、同じ線の画像が異なる位置をとり、パララックスを別として、左右の画像で異なる形状となっている。
【0031】
これらの画像を補正することにより、対応する線172Lと172Rとは補正後の左右の画像180L及び180Rではエピポーラ線182L及び182Rとして画像の行に整列している。補正なしの場合、3Dステレオ画像からの3Dのリアルタイムの顔再構築はほとんど不可能である。補正は、所定の計算によって実施できる。この計算では、キャリブレーションパラメータメモリ82に記憶されたキャリブレーションパラメータが用いられる。補正ソフトウェアもまた、商業的に入手可能である。
【0032】
補正された画像L及びRが補正ソフトウェア84からキャリブレーションパラメータA及びAとともに3D顔再構築モジュール86に与えられる。
【0033】
図3は図1に示す3D顔再構築モジュール86の全体構造を示す。3D顔再構築モジュール86はコンピュータ100上で実行されるソフトウェアで実現される。
【0034】
図3を参照して、3D顔再構築モジュール86は、補正された画像対L及びRとキャリブレーションパラメータA及びAとに基づいて、入力された顔画像のホロプタ範囲ht=[d,d]を推定するためのホロプタ推定モジュール150と、左右の画像における対応する画素間のディスパリティを計算し、ディスパリティ画像DをキャリブレーションパラメータA及びAと左カメラ画像Lとともに出力するためのディスパリティ画像モジュール152と、ディスパリティ画像モジュール152によって計算されたディスパリティ画像Dから顔の粗い3D表面データ〜Sを再構築するための3D表面再構築モジュール154と、を含む。
【0035】
3D顔再構築モジュール86はさらに、粗い3D顔データ〜Stからのアウトライア又はノイズを消去し、3D表面データを平滑化して3D顔データStを出力するためのノイズ消去及び補間モジュール156と、補間され平滑化された3D顔データStに基づいて顔平面を推定し、3Dの顔を顔平面から予め定められた距離内にあるボクセルからなるセグメント〜Ftを抽出するための3D表面抽出モジュール158と、を含む。
【0036】
ここで用いる「顔平面」とは、顔の表面を平坦な表面に近似する、3Dの顔画像に関連して規定される面を意味する。
【0037】
この実施の形態では、3D顔再構築モジュール86はさらに、肌のテクスチャを3D表面抽出モジュール158から出力された3D顔セグメント〜Ftにマッピングするためのテクスチャマッピングモジュール160を含む。肌のテクスチャがマッピングされた3D顔画像Ftはモニタ64に与えられ、表示される。
【0038】
<アイトラッキング>
ホロプタ推定モジュール150はホロプタの推定にあたってアイトラッキングアルゴリズムを利用する。この作業にはどのようなアイトラッキングアルゴリズムも好適であろう。この実現例では、両目間のパターン(目の場所は頬と鼻梁に比べ光強度が低い)が、サイズを更新したパターンマッチングによって検出されトラッキングされる。顔のスケールに対応するために、検出の間に様々なスケールのパターンが考慮され、これに従ってトラッキングに適したスケールが選択される。
【0039】
アルゴリズムは「積分画像」と称される、入力された画像の中間的表現を計算する。積分画像は、画像の各画素について、画素を包含する任意のサイズの長方形内の画素値を合計し、結果として得られる和をその画素に加算することで得られる。その後、6分割長方形状(six segmented rectangular:SSR)フィルタを用いて、画像の目領域の明暗関係を高速でフィルタリングする。候補の初期検証のために、サポートベクタマシン(support vector machine:SVM)アルゴリズムを用いる。
【0040】
エピポーラの制約を用いて、右カメラ画像内のエピポーラ線に沿って、ステレオ目位置とユーザの頭部のホロプタとを推定するのための相関ベースのテンプレートマッチングアルゴリズムを用いて、対応する両目間のパターンを探索する。
【0041】
ここで用いる「ホロプタ」はステレオ相関アルゴリズムの探索間隔でカバーされる3Dの容積を意味する。「ホロプタ範囲」はここで、ステレオカメラの前にある3Dの容積の範囲である。これらの用語はステレオビジョンの分野ではしばしば用いられ、ステレオ画像対の画素の3D座標を見出すのに有用である。
【0042】
例えば、3Dの世界の任意の未知点<X,Y,Z>に関して、(x,y)を左カメラ画像の座標とする。ステレオカメラシステムから<X,Y,Z>の値を計算するためには、ステレオ相関アルゴリズムを用いて「右」カメラ画像の対応の点(x,y)を求める必要がある。
【0043】
未知の対象点<X,Y,Z>のホロプタについて全く見当がつかない場合には、右カメラの探索区間はx=[0,x](画像が補正された場合にはy=y)でなければならない。これには2つの欠点がある。
【0044】
1−探索範囲が広いため、計算費用が高い。
【0045】
2−一致の誤検出を生じる可能性が高い。
【0046】
未知の対象点<X,Y,Z>のホロプタについて大まかにわかっている場合には、探索区間は、右カメラ画像の範囲について、x=[x,x](画像が補正された場合にはy=y)と設定することができる。
【0047】
この場合、[x,x]の区間は、[0,x]の区間の部分集合である。したがって、計算費用は低くなり、一致の誤検出を生じる確率は格段に下がり、したがって、(もしあれば)誤差を補正することが可能となる。
【0048】
ホロプタは以下のように計算することができる。補正されたステレオカメラシステムの光軸に沿って、対象点<X,Y,70cm>があると仮定する。L<125,200>をこの点の「左」カメラ画像の座標とし、R<70,200>をこの点の「右」カメラ画像の座標とする。対象点<X,Y,70cm>のステレオビジョンに基づく3Dの再構築は以下の通りである。
【0049】
もし、L<125,200>、R<70,200>及びカメラのキャリブレーションマトリクスが既知であれば、対象点の座標<X,Y,70cm>を3Dで計算することができる。
【0050】
ホロプタ情報が未知の場合、利用できるのはこの点の「左」カメラ画像座標からのL<125,200>である。まず、右カメラ画像から対応する点R<70,200>を求める必要がある。しかしながら、x軸についてわかっているのはこれが0から125までであるということだけである。ここでは、対称点はいずれのカメラ画像でも可視であるとする。
【0051】
ホロプタ情報が「既知」であれば、物体が位置する3D空間の3D容積がわかっていることになる。この容積は、例えば、[<X,Y,90cm>,<X,Y,50cm>]である。この投影を用いて、
<X,Y,90cm>に対しL<x1L,y1L>,R<x1R,y1R
を得ることができ、ここで画像が補正されているので、y1L=y1Rである。したがって、ディスパリティdはd=x1L−x1Rとなる。
【0052】
同様に、
<X,Y,50cm>に対しL<x2L,y2L>,R<x2R,y2R>
を得ることができ、ここでy2L=y2Rである。したがってディスパリティdはd=x2L−x2Rとなる。ここでdはdより大きい。
【0053】
したがって、<X,Y,50cm>と<X,Y,90cm>の間にある全ての点は、[d,d]の間のディスパリティを有することになる。したがって、上述の例のホロプタに存在する左カメラ画像の任意の点L<x,y>について、その右カメラ画像の探索間隔はx軸の座標値[0、x]に代えてx=[x−d,x−d]によりよく制限される。
【0054】
ホロプタサイズは、顔のサイズから推定できる。この実施の形態では、左右の画像の両方から目を見出し、まず両目間の鼻梁の点の3D座標を推定する。これを<Xnb,Ynb,Znb>とする。これで、顔のおおよそのサイズを知ることができる。したがって、この顔についてホロプタを規定することができる。ホロプタは顔のサイズに関連しているからである。例えば、この場合、ホロプタ範囲は顔の任意の点について<X,Y,[Znb−10cm,Znb+10cm]>となる。
【0055】
3DのX、Y座標値はディスパリティ探索範囲にはなんの影響も持たないことに注意されたい。影響があるのはZ座標のみである。
【0056】
したがって、前の例と同様に、右カメラ画像についてもディスパリティ探索範囲を規定することができる。すなわち、左カメラ画像の任意の点L<x,y>について、右カメラ画像における探索間隔はx=[x−d,x−d]となる。ここでy=yである。
【0057】
図5は図3に示すホロプタ推定モジュール150を実現するコンピュータプログラムのフロー図である。図5を参照して、キャリブレーションパラメータと補正された左右のステレオ画像対が与えられると、プログラムはステップ200で開始し、ここで左カメラ画像の両目間パターンが特定される。
【0058】
プログラムはステップ200に続いてさらに、右カメラ画像のエピポーラ線に沿って対応のパターンを見出すステップ202と、ステップ202に続いて、緩やかに規定されたヒューリスティックな制約及びSVM(サポートベクタマシン)とを用いて顔を検証するステップ204と、ステップ204に続いて、顔が認証されたか否かを判断しプログラムの実行フローを2方向に分離させるステップ206と、ステップ206で顔が検証されたときに実行され、顔ROI(Region of Interest:顔領域)とホロプタ範囲とを生成するステップ208と、を含む。ステップ206で顔が検証されなかった場合は、制御はステップ200に戻る。したがって、顔が検証されるまで、ステップ200から206が繰返し実行される。
【0059】
図6は検証範囲の制限を示す。図6を参照して、左画像220Lの画素224Lが右画像220Rに対応の画素224Rを有すると仮定する。もし画像220Rを画像220Lの上に置いたとすれば、画素224Lと224Rとがホロプタの分だけずれた画像220が得られるはずである。この距離の最大値はホロプタサイズと顔のサイズとによって制限される。したがって、画素224Lに対応する画素224Rは画素224Lから距離Ht以内で、右画像内に見出されるはずである。画像220におけるこの画素224Lと224Rとの距離を「ディスパリティ」と呼ぶ。
【0060】
<3D顔データの再構築>
ステレオコンピュータビジョンアルゴリズムは、対象点の3D(X,Y,Z)座標の計算に、カメラキャリブレーションパラメータと共にディスパリティを用いる。ディスパリティアルゴリズムはしばしば、差の二乗又は正規化された相関係数法等の様々な手法を用いて、左カメラ画像のテンプレートウィンドウを右カメラ画像のエピポーラ線に沿ったウィンドウと比較する、探索メカニズムに依存する。
【0061】
すなわち、マッチングアルゴリズムは、左画像の2DテンプレートウィンドウAの、右画像の2DウィンドウBに対する類似性の尺度を計算する必要がある。一般に、AとBとは以下のように表せる。
【0062】
【数1】

ここでγ及びΓはそれぞれ左右のカメラの任意の利得/スケーリング値である。_X(ここで_は式中文字の上に付されたオーバーバーを示す。)は平均値を表し、〜X(〜は式中文字の上に付されるものである)はウィンドウデータの真正の形状又はテクスチャ特性を表す。すなわち、〜Aと〜Bとが同じ物体の表面部分に属するものであれば、理想的な条件下ではこれらは同一となる。
【0063】
しかし現実世界の条件では、ビデオノイズのために、又は〜Aと〜Bとが何の情報も保持していない、固有の真正形状特性を欠くために、ディスパリティ探索アルゴリズムがうまく働かないことがある。ビデオノイズは、左右のカメラの異なるレンズ焦点、異なる視野角、及び異なる照明効果のために起こりうる。
【0064】
一致検出の失敗又は誤検出の数を減じるために、顔のホロプタがステレオアイトラッキングからオンザフライで推定される。すなわち、まず最初に3D空間における左右の目の座標が計算され、左右の目の間の距離から、顔のサイズが推定される。ホロプタのサイズは顔のサイズに依存するので、これもまた推定される。その後、ディスパリティアルゴリズムの探索ドメインがホロプタサイズによりこの顔について制限される。結果として得られたディスパリティが、さらに画素近傍内での一貫性チェックによって検証される。ディスパリティ探索アルゴリズムのフローを図7に示す。
【0065】
図7はディスパリティ画像モジュール152を実現するソフトウェアのフロー図である。図7を参照して、キャリブレーションパラメータ、補正された左右の画像対、顔領域及びホロプタ範囲が与えられると、プログラムは、与えられた顔サイズとホロプタ範囲とに対する相関ウィンドウサイズを規定するステップ240で始まり、さらに、ステップ240に続いて、顔領域内の各画素について、様々な類似性尺度を用いて、右画像の与えられたホロプタ範囲内でディスパリティ値を見出すステップ242と、ステップ242に続いて、顔領域の画素について全てのディスパリティが計算されたか否かを判断し、制御フローを2つに分岐させるステップ244と、を含む。すなわち、もし全てのディスパリティが計算されていれば、プログラムの実行は終了する。そうでなければ、制御フローはステップ242に戻る。
【0066】
図8は左画像260Lの画素262Lについてディスパリティがどのように計算されるかを示す図である。図8を参照して、左画像260L内でウィンドウ264Lが規定される。ウィンドウ264Lのサイズは、顔のサイズとホロプタとによって決定される。右画像260Rでは、画素262Lに対応して右画像260R中のエピポーラ線上に、264Lと同じサイズのウィンドウ264Rが規定される。両方向矢印266によって示されるようにウィンドウ264Rを移動させることにより、かつウィンドウ264L及び264R間に様々な類似性尺度を用いることにより、画素262Lに対応する画素262Rが探索される。探索空間は、画素262Lからホロプタ範囲内に制限される。
【0067】
<3D表面再構築>
左右画像から画素対とそのディスパリティとが与えられると、画素対に対応するボクセルの深さを、ステレオカメラ60のキャリブレーションパラメータに基づいて決定することができる。ここで、ボクセルの深さとは、ステレオカメラ60の画像面から3D空間におけるボクセルへの距離を意味する。この動作は、3D表面再構築モジュール154によって行われる。
【0068】
<ノイズ消去及び補間>
ノイズ消去及び補間アルゴリズムは、3Dデータからスプリアスノイズを消去し、欠落したボクセルを回復する。この実現例では、欠落したボクセルは画素近傍の線形補間により推定される。
【0069】
図9を参照して、ノイズ消去及び補間モジュール156は、各ボクセルの深さを平均深さ及びボクセルを包含する予め定められたウィンドウ内の深さの局部標準偏差と比較してボクセルを有効ボクセルと無効ボクセルとに分類することによって、3D表面再構築モジュール154から出力された3D顔データからノイズを消去するノイズ消去モジュール280と、有効な3D顔データに平滑化アルゴリズムを適用することによって3D顔データを平滑化するための平滑化モジュール282と、近接するボクセルの線形補間により、欠落した(無効の)ボクセルを推定するための補間モジュール284と、を含む。
【0070】
図10はノイズ消去モジュール280を実現するためのプログラムのフロー図である。図10を参照して、プログラムは、左画像内の顔領域と関連した、再構築された初期の稠密な表面データが与えられると、局部標準偏差推定のための与えられた顔サイズに対しウィンドウサイズを規定するステップ300から始まり、ステップ300に続いて、左画像の顔領域内の各画素について、z軸(深さ)平均とそのウィンドウ内の画素の局部標準偏差とを計算するステップ302と、ステップ302に続いて、その平均からのz軸値の偏差がその標準偏差より小さいか否かを判断するステップ304と、を含む。
【0071】
プログラムはさらに、ステップ304での答えがYESであった場合に実行される、ボクセルの測定を有効と設定するステップ306と、ステップ304での答えがNOであった場合に実行される、ボクセルの測定を無効と設定するステップ308と、を含む。ステップ306及び308の後、制御はステップ302に戻る。図10では明示しないが、ステップ304で全てのボクセルが検討されると、制御はこのプログラムから復帰する。
【0072】
したがって、制御がこのプログラムから復帰するときには、全てのボクセルに有効か無効かのラベルが付されていることになる。
【0073】
この処理を図11に示す。図11を参照して、左画像320Lと右画像320Rとから、画素322Lと322Rとのディスパリティと、キャリブレーションパラメータ82とを用いて、顔領域の各ボクセルの深さが計算される(330)。結果として得られる、深さ値を有する稠密な表面データ332が、ノイズ消去プログラムに与えられる。稠密な表面データ332の各ボクセルについて、このボクセルを包含するウィンドウの平均深さからのその深さの偏差が計算され、ウィンドウの標準深さ偏差と比較され、これに従って、その深さ偏差が標準偏差より大きいか否かによって、有効/無効ボクセルマップ334に示されるように、ボクセルに有効又は無効のラベルが付される。
【0074】
図12は図9に示す平滑化モジュール282を実現するプログラムのフロー図である。図12を参照して、プログラムは、左画像の顔領域に関連したノイズ消去後の表面データが与えられると、推定された顔サイズのための平滑化ウィンドウサイズを規定するステップ350で始まり、ステップ350に続いて、顔領域において有効な3D測定値を有する各画素について、平滑化ウィンドウ内のその平均値を計算し、これをその画素に新たな3D値として割当るステップ352と、ステップ352に続いて、顔領域の全ての画素が処理されたか否かを判断するステップ354と、を含む。もしステップ354の答えがYESであれば、制御はルーチンを出る。そうでなければ、制御はステップ352に戻る。
【0075】
図13は、図9に示す補間モジュール284を実現するフロー図である。図13を参照して、プログラムは、左画像の顔領域に関連した平滑化後の3D表面データが与えられると、顔領域において無効の3D測定値を有する各画素について、その近傍の画素のデータの線形補間によって3D測定値を推定するステップ370で始まり、ステップ370に続いて、顔領域の全ての画素が処理されたか否かを判断するステップ372を含む。
【0076】
プログラムはさらに、ステップ372での答えがYESであった場合に実行される、顔領域について図12に示された平滑化アルゴリズムを実行するステップ374を含む。ステップ374が完了すると、制御はこのルーチンから復帰する。
【0077】
ステップ372での答えがNOであれば、制御はステップ370に戻る。
【0078】
<3D顔平面抽出>
図14はこの実施の形態で用いられる3D顔データ抽出を実現するプログラムを実現するプログラムのフロー図である。図14を参照して、左画像の顔領域に関連した稠密な3D表面データ(ボクセル)が与えられると、プログラムはステップ390で始まり、ここで鼻と口の領域を含むたんざく形領域を除いた、目と顎との間のボクセルデータを用いて、顔の平面が推定される。この実施の形態では、新規な3D顔平面推定アルゴリズムがステップ390で用いられる。このステップの詳細は図15から図21を参照して後述する。
【0079】
プログラムはさらに、ステップ390に続いて、顔平面への距離が±δ(δは予め定められたしきい値)以内である全てのボクセルが顔ボクセルとして抽出されるステップ392を含む。
【0080】
プログラムはさらに、顔領域内の全てのボクセルが処理されたか否かを判断するステップ394を含む。全てのボクセルが処理されていれば、制御はこのルーチンを出る。そうでなければ、制御はステップ392に戻る。
【0081】
図15は図14のステップ390で利用される新規な3D顔平面推定アルゴリズムを実施するプログラムの詳細なフロー図である。顔の平面は両目と顎との間で、口と鼻とを含むたんざく形部分を除いた部分の3D顔データから推定される。しかし、頭部が極端な向きであると、3D顔データはアウトライアを含む可能性がある。このため、繰返し最小二乗法を利用し、顔データと推定された面との間の誤差ヒストグラムを用いて、ある高い誤差のある点を消去する。繰返しは2回又は3回で止まるので、重い計算上の負担は生じない。(aX+bY+cZ+d=0)における顔平面パラメータa、b、c及びdは、残りの3D顔データで、最小二乗解を用いてステップ390で推定される。
【0082】
図15を参照して、このルーチンは、左画像内の顔領域に関連する稠密な3D表面データ(ボクセル)が与えられるとステップ410で始まり、ここで両目と顎との間で鼻と口との区域を含むたんざく形部分を除いた対称ボクセルデータが3D目線に直交する顔の対称線の両側から抽出される。
【0083】
図16から図19にこの処理を示す。図16を参照して、左カメラ画像430において、左目の位置440と右目の位置442とが与えられると、目の位置440及び442を結ぶ線444上の中心点446が規定される。その後線444から特定の距離にあるいくつかの点460、462、464、…が3D空間内に規定される。これらの点の各々について、中心点446から3Dベクトルが規定される。このベクトルと線444に平行なベクトルとの内積を計算することで、どの点が両目と顎との間の対称データを規定するかが決定される。
【0084】
図16において点462が対称データであると仮定して、点462の下に別の点の組を仮に規定する。別の対称データ点がこの点の組から規定されることになる。この動作を繰返すことにより、図17に示すように、中心点446と顎のと間の対称データ点の組480が規定される。この線は顔の対称線であり、この実施の形態ではこれを「Sline」と呼ぶ。
【0085】
図18を参照して、対称データ点480の各々、例えば対称データ点500に対して、特定の長さの、線444に平行な線502が選択される。これらの線が、両目と顎との間の正面顔区域を形成する。選択された区域の幅は、この実施の形態では積分された目の距離の1.3倍であり、高さは顎が境界となる。
【0086】
図18を参照して、このようにして規定された正面顔区域が3つのたんざく形領域に分割される。これらの線の中央部は除外されこれらの線の残りの部分が、鼻と口とを含むたんざく形領域を除いた、両目と顎との間の対称ボクセル区域504(左顔:LF)と506(右顔:RF)とを形成する。LFたんざく形領域及びRFたんざく形領域は正面顔区域全体の1/4に等しく、中心のたんざく形領域は1/2に等しい。
【0087】
これらの区域504と506とを、図19で顔画像上に示す。
【0088】
再び図15を参照して、プログラムはさらに、区域504及び506中の有効なボクセルデータに平面を当てはめることによって顔の平面を推定するステップ412を含む。計算効率のため、この当てはめには、全てのボクセルではなく、区域504及び506において(図19参照)疎にサンプリングされた線上のボクセルのみを用いる。
【0089】
プログラムはさらに、ステップ412に続いて、所与の全てのボクセルデータを推定された顔の平面に当てはめて評価し、最も悪い当てはめデータのε%を無効にするステップ414と、ステップ414に続いて、当てはめ誤差率が1cm(10mm)より小さいか否かを判断するステップ416と、を含む。もし全ての当てはめ誤差が1cmより小さければ、制御はこのプログラムを出る。そうでなければ、制御はステップ412に戻る。
【0090】
当てはめアルゴリズムの詳細を以下で説明する。この処理は顔平面推定のための、繰返し最小二乗当てはめ及び評価アルゴリズムである。一般に、ステレオデータからの当てはめで得られた3D顔平面は、頭部が動くと顔の可視データ量が変動するため、誤差を生じやすい。したがって、顔の両側からの対称データが選択されるが、このデータセットでは、鼻及び口といった個々人の顔の特徴にかかる区域は含まれない。このため、正面3D顔データは図19に示すように、両目に整列した3個のたんざく形領域に分割される。
【0091】
実際的な理由から、データの疎なサンプリングが行われる(例えば、両目と顎の線の間で20行)。最後に、部分的なオクルージョン(部分的に隠れること)又は頭部の動きからくると思われるアーチファクトを繰返し最小二乗当てはめと除去−加算アルゴリズムとによって消去する。このアルゴリズムで用いられるパラメータは、40人を上回る人の対応する顔画像を検討することで、経験的に決定された。
【0092】
抽出された3D顔データの組が与えられた場合、アルゴリズムのフローは以下のように記すことができる。
【0093】
【数2】

2)両目間の3D顔表面データから積分ユークリッド距離を計算する。
【0094】
3)中心が各行について顔の対称点と整列している、正面顔データ区域を規定する。選択された区域の幅は積分目距離のξ(ξ=1.3)倍であり、高さは顎によって規定される。
【0095】
4)正面顔区域を3つのたんざく形領域に分割する。左顔(LF)たんざく形領域と右顔(RF)たんざく形領域とは全正面顔区域の1/4であり、中央たんざく形領域は全正面顔区域の1/2である。
【0096】
5)3Dデータ区域において3D目線に平行な疎のデータ行を規定し、LF行とRF行との双方において、内側から外へと同じ長さのデータを収集する(顎まで全ての行についてこれを繰返す)。
【0097】
6)繰返し:最小二乗当てはめアルゴリズムによって最もよく当てはまる3D平面のパラメータ(顔データ座標Xi,Yi,Zi、ここでi=1,2… Nk、Nkはk回目の繰返しにおけるサンプル数、が与えられたときのa,b,c及びd)を推定する。
【0098】
【数3】

8)評価:もし誤差がτ(τ=10)ミリメートルより小さいか、又は繰返し数がκ(この実施の形態では、κ=4)より大きければ、ステップ11(END)に進む。
【0099】
9)高い誤差を有する顔データのε(ε=5)%を組から除去。
【0100】
10)もし以前に破棄されたデータの誤差距離が新たに推定された面からτミリメートルより小さい場合、このデータを組に加え、「繰返し」に進む。
【0101】
11)END。
【0102】
このアルゴリズムはパラメータをどのように選択するかによって大きな影響を受けない。幅パラメータξは0.9より大きくてもよいが、1.5より小さくなければならない。誤差しきい値パラメータτは5ミリメートルより大きくてもよいが、15ミリメートルより小さくなければならない。データ除去率は1%から10%の間であればよく、最大繰返し数は2から10の間である。
【0103】
図20はステップ412から416までの繰返しの例を示す。図20を参照して、この例では、第1回の繰返しで最も上の誤差ヒストグラムが得られた。これには10mmをこえるロングテールがあった。最も悪い当てはめデータのε%を無効にし、2回目の繰返しを行なった。2回目と3回目の繰返しで、図20の2番目と3番目のヒストグラムが得られた。「テール」が短くなっているのがわかる。しかしながら依然として、3回目の繰返しでも誤差のいくつかは10mmを超えている。
【0104】
図20の最も下のヒストグラムからわかるように、4回目の繰返し後は全ての誤差が当てはめられた顔の平面から10mm以内となり、繰返しは終了する。
【0105】
図21は、図14のステップ392での顔抽出を示す。図21を参照して、顔の平面520がステップ390で推定され、顔の平面520から距離が±δ以内の全てのボクセルが顔ボクセルとして抽出される。
【0106】
図3に示すテクスチャマッピングモジュール160が、3D表面抽出モジュール158によって抽出された顔データにテクスチャをマッピングする。
【0107】
図22は(A)及び(B)でステレオ画像対を示し、(C)でそのディスパリティを示す。検出された両目間の位置が、左カメラ画像及び右カメラ画像の両方でマークされ、これらが顔のホロプタ推定に利用される。
【0108】
図23は(A)及び(B)でステレオ対を示し、(C)でそれらの抽出され再構築された3D顔データを示す。顔ホロプタの外側では、3Dの再構築の信頼性が低いことが認められる。
【0109】
図24は異なる視野角から保存された3D顔画像を示す。
【0110】
<3D顔座標系の形成>
ある面のベクトルとその面の法線とで、任意の3D座標系を説明することができる。したがって、3Dの目の位置と顔平面とを得た後のこの実施の形態の目標とするところは、フレームごとに頭部の姿勢を推定するための3D顔座標系を形成することである。これは、図1に示す3D頭部姿勢推定モジュール88によって行われ、その詳細を図25に示す。
【0111】
図25を参照して、3D頭部姿勢推定モジュール88は、左右の3D目位置eLt及びeRtと3D顔平面パラメータPtとを受けるように結合され、図3の3D表面抽出モジュール158から3D顔座標系を形成しかつ顔座標系を表すマトリックスFCSを出力するための3D顔座標系形成モジュール540と、3D顔座標系形成モジュール540から出力されたマトリックスFCStを受けるように結合され、後述する3D頭部姿勢マトリックスMを推定するための3D頭部姿勢推定モジュール542と、を含む。
【0112】
この実施の形態では、3D顔座標系は目線、顔の平面及び顔の平面の法線で規定される。
【0113】
顔の平面のパラメータa,b,c及びdは図14に示すステップ390で計算される。顔平面の法線が利用可能であり、以下のベクトルで表される。
【0114】
【数4】

E1とE2とを、以下のような3D空間における顔平面の左右の目の位置とする。
【0115】
【数5】

ここで^Zi(「^」は式中文字の上に付されたものである)はそのXi及びYiの値が与えられたときの顔平面上の再計算されたZ値である。3D空間における目線(Eline)の式は、点E1及びE2を利用して、以下のように規定することができる。
【0116】
【数6】

ここでtはEline上の点のスカラー値(t∈R)であり、→Vx=→E12(「→」は式中文字の上に付されたものである)が成り立ち、これは顔平面の法線に垂直なベクトルを規定する。
【0117】
顔平面の法線であるベクトル→Vzと、式3の3D目線から得られるベクトル→Vxとのクロス乗積はベクトル→Vとなり、これは→Vと→Vとの両方に垂直である。これら3つのベクトルが顔座標系を形成する。したがって、顔座標系のx軸とz軸とは3Dの目の位置と3Dの顔平面とにそれぞれロックされる。したがって、3D座標系の形成は、フレームごとに繰返して可能である。
【0118】
3D顔座標系形成モジュール540及び3D頭部姿勢推定モジュール542は共に、図26及び図30でそれぞれ示されるコンピュータプログラムルーチンで実現される。
【0119】
図26及び図27を参照して、3D顔座標系形成モジュール540を実現するコンピュータプログラムルーチンは、ある時点での3Dの目の位置580L及び580Rと3D顔平面パラメータとが与えられると、ステップ560で開始し、ここで左の目の位置580Lから右の目の位置580Rまでの3D目線582と、3Dの目線582に平行な単位ベクトル586と、が計算される。この実施の形態では、単位ベクトル586の始点は両目間の点584である。
【0120】
図26及び図28を参照して、プログラムはさらに、ステップ560に続いて、顔座標系のz軸へ顔平面520の単位法線ベクトル588を割当て、さらに、顔座標系のx軸へ3D目線582に平行な単位ベクトル586を割当るステップ562を含む。
【0121】
図26及び図29を参照して、プログラムはさらに、ステップ562に続いて、顔座標系のz軸ベクトル588とx軸ベクトル586とのクロス乗積590を計算して、顔座標系のy軸ベクトル590を得るステップ564を含む。
【0122】
プログラムルーチンは3個のベクトル586、590及び588を用いて3D座標系を形成する最後のステップ566を含む。
【0123】
<3D頭部姿勢推定>
顔座標系とグローバル(基準)座標系との間の、この3D頭部姿勢を表す変換は以下のようになる。
【0124】
2つの座標系の間の回転のみの変換は次のように表すことができる。
【0125】
【数7】

図31を参照して、一般に、顔座標系632は世界座標系630を回転させ平行移動させた形であると考えることができる。すなわち、顔座標系632と世界座標系630とは図31に破線矢印634で示すように、3×3の回転マトリックスR(Φ)と3×1平行移動ベクトルTとによって関連付けられている。
【0126】
【数8】

したがって、式4における3D頭部姿勢マトリックスR(Φ)の解は自明となり、以下で表すことができる。
【0127】
【数9】

式8を満たすそれぞれの軸に対する回転角は以下で与えられる。
【0128】
【数10】

この処理は、コンピュータプログラムルーチンで実現される。このルーチンのフロー図を図30に示す。図30を参照して、ある時点での顔座標系が与えられると、ルーチンは式(9)から(11)により、各フレーム時点について、基準(共通)座標系630に対する3D頭部姿勢を推定するステップ610で始まる。ステップ610の後、制御はこのルーチンを出る。
【0129】
[動作]
図1から図30を参照して、上述の3D顔姿勢推定システム50は以下のように動作する。特に図1を参照して、始めにキャリブレーションが行われる。このキャリブレーションプロセスにおいて、予め定められたパターンプレートがステレオカメラ60に提示され、キャリブレーションソフトウェア80がキャリブレーションパラメータを計算する。パラメータはキャリブレーションパラメータメモリ82に記憶される。
【0130】
動作において、システム50はまず、ステレオカメラ60からステレオ画像を取得する。キャプチャされた画像は、キャリブレーションパラメータメモリ82に記憶されたキャリブレーションパラメータを用いて補正ソフトウェア84によって補正され、エピポーラ線が画像の行と対応するようにされる。補正された画像は、3D顔再構築モジュール86に与えられる。
【0131】
特に図3を参照して、ホロプタ推定モジュール150は、ステレオ画像を利用して顔のホロプタを推定する。ホロプタ推定モジュール150はこの実現例ではステレオアイトラッキングアルゴリズムに依拠する。ステレオアイトラッキングにより、ホロプタ推定モジュール150は顔ホロプタ情報を生成することができる。顔ホロプタ情報htは左右の画像において対応する画素を見出すための探索区域ht=[d1,d2]を計算する助けとなる。ディスパリティ探索アルゴリズムは、より良いディスパリティの結果を得るために、ホロプタ情報と相関テンプレートサイズとを利用する。
【0132】
ホロプタ情報と左右の画像Li及びRiと、計算パラメータAiとがディスパリティ画像モジュール152に与えられる。ディスパリティ画像モジュール152では、画像中の各画素についてディスパリティDtが計算される。ある点の3Dの位置は、<x,y>座標と、そのディスパリティとが与えられると、先行技術のステレオ再構築アルゴリズムで再構築することができる。3D表面は計算されたデータに基づいて再構築される。
【0133】
再構築された3D顔表面はいくつかのアウトライアを含むので、ノイズ消去及び補間モジュール156が無効ボクセルを消去し、近接するボクセル間の補間により、欠落したボクセルを補間する。3D表面データはさらに、ノイズ消去及び補間モジュール156内で平滑化され、これによって稠密な3D顔表面データが得られ、これは3D表面抽出モジュール158に与えられる。
【0134】
3D表面抽出モジュール158は両目間の点を求め、目と顎との間の対称顔ボクセルデータを抽出する。図15のステップ410及び図19に示すように、鼻と口の区域を含むたんざく形領域は顔の対称線の両側から除外される。抽出された対象顔ボクセルデータにおけるボクセルを用いて、平面を当てはめ、最も悪い当てはめデータを除外しながら残りの対称顔ボクセルすべてが顔平面から予め定められた、例えば10mmの距離以内になるまでこれを繰返すことによって、顔平面が推定される。
【0135】
顔平面パラメータを用いて、顔平面から±δの距離にある顔ボクセルが顔ボクセルとして抽出される。
【0136】
テクスチャマッピングモジュール160は抽出された顔ボクセルの肌テクスチャをマッピングし、これによって抽出された顔画像が図23(C)及び図24に示すように生成される。
【0137】
顔平面パラメータが図1に示す3D頭部姿勢推定モジュール88にさらに与えられる。図25を参照して、3D顔座標系形成モジュール540は、まず図27に示すように眼の線に平行な単位ベクトル586を求め、図28に示すように顔平面520に垂直な単位ベクトル584を求め、その後、図29に示すようにベクトル586及び588のクロス乗積である単位ベクトル590を計算する。これら3個のベクトルが3D顔座標系を形成する。
【0138】
<実験的セットアップ>
VidereTMステレオビジョンハードウェアとSVSソフトウェアがこの実現に利用される。カメラのキャリブレーション及び補正はSVSライブラリを用いて自動的に行われる。SVSソフトウェアはステレオビデオシーケンスをキャプチャすることができ、ステレオ対の3Dデータを320×240の全画像解像度で30Hzで再構築する。しかしながら、3Dの再構築に関係ある領域はこの実験においてユーザの顔区域であるので、ディスパリティ探索区域を、上述の説明の通り、顔のホロプタ周辺に限定した。したがって、顔の外側で深さの異なる再構築された3Dデータは、図23(C)に示すように3D推定が不正確である。
【0139】
3D座標値は、世界座標系で計算される。この実現例では、世界座標系(原点)は左カメラの焦点と規定され、右手座標系である。
【0140】
頭部姿勢推定スキームの正確さを評価するために、マーカベースの頭部姿勢推定から得られた測定値との比較を行なった。図32の参照符号650で示すように、ユーザの額に半径5ミリの3個の黒のマーカを、25ミリずつ離して時計回りに90度回転させたL字型を形成するように位置づけ、ステレオ処理アルゴリズムを利用してマーカ位置の3D座標を推定した。マーカベースの頭部姿勢推定アルゴリズムの正確さは、マーカ位置検出におけるジッタのために、±3度であった。
【0141】
図33で、提案されたアルゴリズムで推定された角度を、マーカベースのアルゴリズムによって得られた値と比較している。この実施の形態の結果を細い実線660、672及び682で示し、マーカベースのアルゴリズムで測定されたものを太い破線662、670及び680で示す。
【0142】
当然、マーカが位置づけられた額は、そのそれぞれのオフセット値により、プロットに反映された顔のそれとは異なる姿勢になる。図33に示されたx、y及びz軸の角度データでは、相関係数はそれぞれ0.87、0.92及び0.98であった。x軸周りの回転について相関係数がy軸及びz軸についての結果に比較して低いのは、アイトラッキングアルゴリズムによって検出される目の位置のジッタによるものである。しかし、アイトラッキングにおけるジッタは、3D顔構造情報又はより良いアイトラッカを用いることで修正可能である。
【0143】
結論
上述の実施の形態は、実世界の状況下で人とコンピュータとのインターフェイス応用に好適な、頑健な3D顔抽出及び3D頭部姿勢推定スキームを与える。提案されたスキームはモデルを必要とせず、初期化も必要とせず、さらに単一の画像対から3Dの顔を抽出し3D頭部姿勢情報を推定することができる。これはまた、顔の表情及び鼻の形状等の人によって異なる顔の特徴に対して頑健である。
【0144】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味および範囲内でのすべての変更を含む。
【図面の簡単な説明】
【0145】
【図1】本発明の一実施の形態に従った3D顔姿勢推定システムの全体構成を示す図である。
【図2】コンピュータによって実現されたこの発明の一実施の形態の3D顔姿勢推定システム50のハードウェアブロック図である。
【図3】図1に示す3D顔再構築モジュール86の全体構成を示す図である。
【図4】補正プロセスを示す図である。
【図5】ホロプタ推定アルゴリズムの詳細なフローを示す図である。
【図6】ステレオ画像中で両目間のパターンを見出すための探索範囲の限定を示す図である。
【図7】提案されたディスパリティ探索アルゴリズムの全体の処理ステップを示すフローチャートである。
【図8】左画像260L内の画素262Lのディスパリティをどのように計算するかを示す図である。
【図9】図3に示すノイズ消去及び補間モジュールの詳細構造を示す図である。
【図10】ノイズ消去アルゴリズムの全体の処理ステップを示すフローチャートである。
【図11】顔データのボクセルを検証する処理を示す図である。
【図12】図9に示す平滑化モジュール282を実現するプログラムのフロー図である。
【図13】図9に示す補間モジュール284を実現するフロー図である。
【図14】この発明の一実施の形態で用いられる3D顔データ抽出を実現するプログラムのフロー図である。
【図15】図14のステップ390で用いられる新規な3D顔平面推定アルゴリズムを実現するプログラムの詳細なフロー図である。
【図16】両目と顎との間の対称ボクセルデータの抽出処理を示す図である。
【図17】両目と顎との間の対称ボクセルデータの抽出処理を示す図である。
【図18】両目と顎との間の対称ボクセルデータの抽出処理を示す図である。
【図19】顔画像上の抽出された対称ボクセルデータを示す図である。
【図20】アウトライアデータを除外するための繰返しの例を示す図である。
【図21】図14のステップ392での顔抽出を示す図である。
【図22】(A)及び(B)はステレオ画像対を示す図であり、(C)はそのディスパリティマップを示す図である。
【図23】(A)及び(B)はステレオ画像対を示す図であり、(C)はその抽出されかつ再構築された3D顔データを示す図である。
【図24】異なる視野角から保存された3D顔画像を示す図である。
【図25】3D頭部姿勢推定モジュール88の詳細なブロック図である。
【図26】3D顔座標系形成モジュール540を実現するためのフロー図である。
【図27】3D顔座標系を形成する処理を示す図である。
【図28】3D顔座標系を形成する処理を示す図である。
【図29】3D顔座標系を形成する処理を示す図である。
【図30】基準座標系に対し3D頭部姿勢を推定するためのコンピュータプログラムルーチンを示すフロー図である。
【図31】顔座標系632と世界座標系630とが3×3回転マトリクスR(Φ)及び3×1平行移動ベクトルTによってどのように関連づけられるかを示す図である。
【図32】マーカベースの頭部姿勢推定から得られた測定値のための設定を示す図である。
【図33】この発明の一実施の形態から推定された角度をマーカベースのアルゴリズムから得られた値と比較して示す図である。
【符号の説明】
【0146】
50 3D顔姿勢推定システム
60 ステレオカメラ
62 リアルタイム3D顔姿勢推定装置
80 キャリブレーションソフトウェア
82 キャリブレーションパラメータメモリ
84 補正ソフトウェア
86 3D顔再構築モジュール
88 3D頭部姿勢推定モジュール
130 ビデオキャプチャボード
150 ホロプタ推定モジュール
152 ディスパリティ画像モジュール
154 3D表面再構築モジュール
156 ノイズ消去及び補間モジュール
158 3D表面抽出モジュール
160 テクスチャマッピングモジュール
280 ノイズ消去モジュール
282 平滑化モジュール
284 補間モジュール
520 顔平面
540 3D顔座標系形成モジュール
542 3D頭部姿勢推定モジュール
630 世界座標系
632 顔座標系

【特許請求の範囲】
【請求項1】
ステレオカメラの補正された画像対を用いてリアルタイムで頭部姿勢を推定するための装置であって、
前記補正された画像対において顔の両眼の位置を特定するための手段と、
ステレオカメラに対してロックされた基準座標系を参照して、前記両眼の3次元位置を決定するための手段と、
前記ステレオカメラのキャリブレーションパラメータと前記補正された画像対とに基づいて前記補正された画像対中の前記顔のサイズとホロプタ範囲とを推定するためのホロプタ範囲推定手段と、
前記補正された画像対の一方の画像中の前記顔の各画素について、前記補正された画像対の他方の画像における前記ホロプタ範囲内のディスパリティ値を推定するためのディスパリティ推定手段と、
前記補正された画像対、前記ディスパリティ値、及び前記ステレオカメラの前記キャリブレーションパラメータに基づいて、前記顔の3次元表面データを再構築するための3次元表面再構築手段と、
予め定められた当てはめアルゴリズムを利用して、3次元顔平面を前記3次元表面再構築手段によって再構築された3次元表面データに当てはめるための当てはめ手段と、
前記3次元表面データに当てはめられた前記面にロックされた、前記頭部姿勢を表す顔座標系を規定するための手段とを含み、前記頭部座標系は前記面に2軸を、前記面と垂直に1軸を有し、前記両眼の前記3次元位置を基準として原点が規定され、
前記装置はさらに、
前記顔座標系と前記基準座標系との変換を規定するための手段を含む、装置。
【請求項2】
前記ホロプタ範囲推定手段は、
前記画像対の前記一方の画像中の両眼間パターンを特定するための第1の特定手段と、
前記他方の画像において前記両眼間パターンに対応するエピポーラ線に沿った対応のパターンを特定するための第2の特定手段と、
前記一方の画像における前記両眼間パターン付近の顔候補と前記対応のパターンとが検証条件を満たしているか否かを検証するための検証手段と、
ある顔候補が前記検証条件を満たすまで、前記第1及び前記第2の特定手段と前記検証手段とを繰返し動作させるための手段と、
前記検証条件を満たす前記顔候補によって、顔領域を規定するための手段と、を含む、請求項1に記載の装置。
【請求項3】
前記ディスパリティ推定手段は、
前記ホロプタ範囲及び前記顔領域の前記サイズについて、相関ウィンドウサイズを規定するための手段と、
予め選択された類似度尺度に従って、最も高い類似度尺度を生じる画素を、前記他方の画像で探索することによって、前記顔における各画素のディスパリティ値を計算するための手段と、を含む、請求項2に記載の装置。
【請求項4】
無効なディスパリティ値を有する無効なデータ点を見出し、前記無効なデータ点を隣接するデータ点で補間することによって、前記3次元表面再構築手段によって再構築された前記3次元表面データにおけるノイズを消去するためのノイズ消去手段をさらに含む、請求項1〜請求項3のいずれかに記載の装置。
【請求項5】
前記ノイズ消去手段は、
前記顔の前記サイズについて偏差ウィンドウのサイズを規定して、前記偏差ウィンドウにおける画素の深さの標準偏差を求めるための手段と、
前記一方の画像において前記顔領域内の各画素について、前記一方の画像における前記顔領域の前記画素の各々について計算された前記ディスパリティと前記画像対とを用いて、前記各画素付近の前記サイズの偏差ウィンドウ内の画素の深さの局所標準偏差と平均とを計算するための手段と、
前記各画素付近の偏差ウィンドウの平均からの前記各画素の深さの値の偏差が前記各画素付近の偏差ウィンドウの標準偏差値より小さいか否かに依存して、前記顔領域内の各画素を、有効と無効とに分類するための手段と、
無効と分類された画素の深さ値をそれぞれ隣接する画素の深さ値で補間するための手段と、を含む、請求項4に記載の装置。
【請求項6】
前記当てはめ手段は、
前記3次元表面データにおいて左目と右目とをつなぐ目線を前記基準座標系において見出すための手段と、
前記目線に直交する3次元の顔対称線を見出すための手段と、
前記顔平面に当てはめるべきデータ点を選択するための手段と、を含み、前記区域は、前記顔対称線に沿ったたんざく形領域を除く、前記顔の前記目線から顎まで延びており、
前記当てはめ手段はさらに、
前記予め定められた当てはめアルゴリズムを用いて、前記顔平面を前記当てはめるべきデータ点に当てはめるための手段を含む、請求項1〜請求項5のいずれかに記載の装置。
【請求項7】
前記当てはめ手段は、
最小二乗誤差による当てはめを利用して、前記顔平面を前記当てはめるべきデータ点に当てはめるための手段と、
前記顔平面と前記3次元表面データとの間の誤差が全て予め定められたしきい値内にあるか否かを判定するための手段と、
前記手段が、前記誤差の全てが前記予め定められたしきい値より小さくはないと判定したことに応じて、前記3次元表面からある高い誤差のある点を消去するための手段と、
前記判定手段が前記誤差の全てが前記予め定められたしきい値より小さいと判断するまで、前記当てはめ手段、前記判定手段、及び前記消去手段を繰返し動作させるための手段と、を含む、請求項6に記載の装置。
【請求項8】
前記顔座標系を規定するための手段は、
前記顔座標系の原点として前記基準座標系を参照して、前記両眼の前記3次元位置をつなぐ両眼間線上の予め定められた点を決定するための手段と、
前記両眼間線上に第1の単位長さベクトルを決定するための手段と、
前記顔座標系の前記原点から第2の単位長さベクトルを決定するための手段と、を含み、前記第2の単位長さベクトルは前記面上にあって、前記第1の単位長さベクトルと直交し、
前記顔座標系を規定するための手段はさらに、
前記顔座標系の前記原点から第3の単位長さベクトルを決定するための手段を含み、前記第3の単位長さベクトルは前記面に垂直である、請求項1〜請求項7のいずれかに記載の装置。
【請求項9】
前記顔座標系の前記原点は、前記両眼をつなぐ線の中心点に選ばれる、請求項8に記載の装置。
【請求項10】
コンピュータ上で実行されると、前記コンピュータを、
前記補正された画像対において顔の両眼の位置を特定するための手段と、
ステレオカメラに対してロックされた基準座標系を参照して、前記両眼の3次元位置を決定するための手段と、
前記ステレオカメラのキャリブレーションパラメータと前記補正された画像対とに基づいて前記補正された画像対中の前記顔のサイズとホロプタ範囲とを推定するためのホロプタ範囲推定手段と、
前記画像対の一方の画像中の前記顔の各画素について、前記画像対の他方の画像における前記ホロプタ範囲内のディスパリティ値を推定するためのディスパリティ推定手段と、
前記補正された画像対、前記ディスパリティ値、及び前記ステレオカメラの前記キャリブレーションパラメータに基づいて、前記顔の3次元表面データを再構築するための3次元表面再構築手段と、
予め定められた当てはめアルゴリズムを利用して、3次元顔平面を前記3次元表面再構築手段によって再構築された3次元表面データに当てはめるための当てはめ手段と、
前記3次元表面データに当てはめられた前記顔平面にロックされた前記頭部姿勢を表す顔座標系を規定するための手段と、として機能させ、前記頭部座標系は前記顔平面に2軸を、前記顔平面と垂直に1軸を有し、前記目の前記3次元位置を基準として原点が規定され、
前記コンピュータをさらに、
前記顔座標系と前記基準座標系との変換を規定するための手段として機能させる、コンピュータプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図33】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図32】
image rotate


【公開番号】特開2008−261756(P2008−261756A)
【公開日】平成20年10月30日(2008.10.30)
【国際特許分類】
【外国語出願】
【出願番号】特願2007−105261(P2007−105261)
【出願日】平成19年4月12日(2007.4.12)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】