(57)【特許請求の範囲】
【請求項１】
ユーザの顔が映された画像から顔領域を検出する顔検出手段と、
前記顔検出手段により検出された顔領域内にある顔のパーツの位置を検出するパーツ検出手段と、
前記パーツ検出手段により検出された前記パーツの配置に基づいて、前記顔の属性を判別し、その判別結果を示すスコアを求める判別手段と、
前記判別手段により求められた前記スコアに基づいて、前記画像のユーザの顔に置き換えて表示させるモデルを選択するモデル選択手段と、
前記モデル選択手段により選択されたモデルの顔の画像を生成し、そのモデルの顔の画像を、前記顔領域内にあるユーザの顔に合成する画像生成手段と、
前記顔検出手段により検出される顔領域内のユーザの顔の状態を推定するパラメータを算出するパラメータ出力手段と、
前記パラメータ出力手段から出力されるパラメータに対してフィルタ処理を施すフィルタ処理手段と
を備え、
前記フィルタ処理手段は、
前記パラメータ出力手段から出力された処理対象の前記パラメータの信頼度を、処理対象の前記パラメータについての加速度成分と、処理対象の前記パラメータ以前のパラメータについて過去に算出された加速度成分の分散値とに基づいて算出する信頼度算出手段と、
過去の前記フィルタ処理手段からの出力値に基づいて、処理対象の前記パラメータにフィルタ処理を施したときに出力される出力値を予測した予測出力値を求める予測手段と、
処理対象の前記パラメータと前記予測手段が求めた前記予測出力値とを、前記信頼度算出手段により算出される前記信頼度に応じた重み付け加算により、前記フィルタ処理の結果として出力される出力値を演算するフィルタ演算手段と
を有する
画像処理装置。
【請求項２】
前記判別手段により判別される前記顔の属性は、年齢層および性別のうちの少なくともいずれか一方である
請求項１に記載の画像処理装置。
【請求項３】
前記顔検出手段は、前記ユーザの顔の方向を示す第１の顔方向情報を出力するとともに、前記パーツ検出手段は、前記パーツの配置に従って、前記ユーザの顔の方向を示す第２の顔方向情報を出力し、
前記顔検出手段により検出される顔領域内のユーザの顔の方向が、前記顔検出手段により検出可能な検出範囲の境界近傍である場合、前記第１の顔方向情報の時間変動と、前記第２の顔方向情報の時間変動とに基づいて、前記画像生成手段で生成するモデルの顔の方向を制御するパラメータを選択する顔方向パラメータ選択手段
をさらに備える請求項１に記載の画像処理装置。
【請求項４】
前記ユーザの顔の口形状を特定する複数のポイントを検出する口形状検出手段と、
前記口形状検出手段により検出された前記複数のポイントから、前記ユーザの口の形状を判別し、その口形状を、所定数の母音の組み合わせで表現するときのそれぞれの母音の割合を示す母音パラメータを出力する母音判別手段と、
前記所定数の母音の口形状の基本となるモデルを、それぞれのモデルに対応する前記母音パラメータで重み付けて合成する口形状合成部と
をさらに備える請求項１に記載の画像処理装置。
【請求項５】
前記パラメータ出力手段は、前記ユーザの顔の複数の状態をそれぞれ推定する複数のパラメータを出力し、
前記フィルタ処理手段は、前記パラメータ出力手段から出力される複数のパラメータを総合的に用いてフィルタ処理を行う
請求項１に記載の画像処理装置。
【請求項６】
ユーザの顔が映された画像から顔領域を検出し、
前記顔領域内にある顔のパーツの位置を検出し、
前記パーツの配置に基づいて、前記顔の属性を判別し、その判別結果を示すスコアを求め、
前記スコアに基づいて、前記画像のユーザの顔に置き換えて表示させるモデルを選択し、
前記選択されたモデルの顔の画像を生成し、そのモデルの顔の画像を、前記顔領域内にあるユーザの顔に合成し、
前記顔領域内のユーザの顔の状態を推定するパラメータを算出し、
前記パラメータに対してフィルタ処理を施す
ステップを含み、
前記フィルタ処理を施すステップでは、
処理対象の前記パラメータの信頼度を、処理対象の前記パラメータについての加速度成分と、処理対象の前記パラメータ以前のパラメータについて過去に算出された加速度成分の分散値とに基づいて算出し、
過去の出力値に基づいて、処理対象の前記パラメータにフィルタ処理を施したときに出力される出力値を予測した予測出力値を求め、
処理対象の前記パラメータと前記予測出力値とを、前記信頼度に応じた重み付け加算により、前記フィルタ処理の結果として出力される出力値を演算する
ステップを有する
画像処理方法。
【請求項７】
ユーザの顔が映された画像から顔領域を検出し、
前記顔領域内にある顔のパーツの位置を検出し、
前記パーツの配置に基づいて、前記顔の属性を判別し、その判別結果を示すスコアを求め、
前記スコアに基づいて、前記画像のユーザの顔に置き換えて表示させるモデルを選択し、
前記選択されたモデルの顔の画像を生成し、そのモデルの顔の画像を、前記顔領域内にあるユーザの顔に合成し、
前記顔領域内のユーザの顔の状態を推定するパラメータを算出し、
前記パラメータに対してフィルタ処理を施す
ステップを含み、
前記フィルタ処理を施すステップでは、
処理対象の前記パラメータの信頼度を、処理対象の前記パラメータについての加速度成分と、処理対象の前記パラメータ以前のパラメータについて過去に算出された加速度成分の分散値とに基づいて算出し、
過去の出力値に基づいて、処理対象の前記パラメータにフィルタ処理を施したときに出力される出力値を予測した予測出力値を求め、
処理対象の前記パラメータと前記予測出力値とを、前記信頼度に応じた重み付け加算により、前記フィルタ処理の結果として出力される出力値を演算する
ステップを有する
画像処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法、並びにプログラムに関し、特に、ユーザがより素直に感情移入しやすい画像を提供することができるようにした画像処理装置および画像処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、画像に映されているユーザの顔をリアルタイムで検出する画像処理装置があり、検出したユーザの顔に同期させて、顔画像の全部または一部を、他の画像に置き換えることが行われる。
【０００３】
例えば、特許文献１には、任意の大きさの顔画像を高い判別能力で検出することができる技術が開示されており、特許文献２には、顔画像を迅速に検出することができる技術が開示されている。また、特許文献３には、画像から検出された顔画像の向きに合わせて、予め複数の方向から撮像されたユーザの顔の画像を貼り付ける技術が開示されている。
【０００４】
このように予め撮像された顔の画像の他、画像から検出された顔画像を、コンピュータグラフィックスで作成されたアバタに置き換えることができる。さらに、ユーザの顔の変化をリアルタイムに検出することで、置き換えたアバタの表情をユーザの顔の変化に同期させることができる。即ち、ユーザの顔の表情に従って、アバタの目の開き度合いや口の開き度合いなどを変化させたり、ユーザの笑顔度に従って、アバタの笑顔度を変化させたりすることができる。
【０００５】
ここで、例えば、特許文献４には、顔の自然な表情を生成する技術が開示されており、特許文献５には、音声に同期させて口形状を変化させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１５７６７９号公報
【特許文献２】特開２００５−２８４３４８号公報
【特許文献３】特開２００２−２３２７８３号公報
【特許文献４】特開２００７−１５６６５０号公報
【特許文献５】特開平７−４４７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、画像に映されているユーザの顔をアバタに置き換えることで、ユーザが、画像（例えば、ゲームや仮想空間などの画像）に感情移入しやすくなるが、より素直に感情移入しやすくなるような画像を提供することが求められている。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、ユーザがより素直に感情移入しやすい画像を提供することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面の画像処理装置は、ユーザの顔が映された画像から顔領域を検出する顔検出手段と、前記顔検出手段により検出された顔領域内にある顔のパーツの位置を検出するパーツ検出手段と、前記パーツ検出手段により検出された前記パーツの配置に基づいて、前記顔の属性を判別し、その判別結果を示すスコアを求める判別手段と、前記判別手段により求められた前記スコアに基づいて、前記画像のユーザの顔に置き換えて表示させるモデルを選択するモデル選択手段と、前記モデル選択手段により選択されたモデルの顔の画像を生成し、そのモデルの顔の画像を、前記顔領域内にあるユーザの顔に合成する画像生成手段と、前記顔検出手段により検出される顔領域内のユーザの顔の状態を推定するパラメータを算出するパラメータ出力手段と、前記パラメータ出力手段から出力されるパラメータに対してフィルタ処理を施すフィルタ処理手段とを備え、前記フィルタ処理手段は、前記パラメータ出力手段から出力された処理対象の前記パラメータの信頼度を、処理対象の前記パラメータについての加速度成分と、処理対象の前記パラメータ以前のパラメータについて過去に算出された加速度成分の分散値とに基づいて算出する信頼度算出手段と、過去の前記フィルタ処理手段からの出力値に基づいて、処理対象の前記パラメータにフィルタ処理を施したときに出力される出力値を予測した予測出力値を求める予測手段と、処理対象の前記パラメータと前記予測手段が求めた前記予測出力値とを、前記信頼度算出手段により算出される前記信頼度に応じた重み付け加算により、前記フィルタ処理の結果として出力される出力値を演算するフィルタ演算手段とを有する。
【００１０】
本発明の一側面の画像処理方法またはプログラムは、ユーザの顔が映された画像から顔領域を検出し、前記顔領域内にある顔のパーツの位置を検出し、前記パーツの配置に基づいて、前記顔の属性を判別し、その判別結果を示すスコアを求め、前記スコアに基づいて、前記画像のユーザの顔に置き換えて表示させるモデルを選択し、前記選択されたモデルの顔の画像を生成し、そのモデルの顔の画像を、前記顔領域内にあるユーザの顔に合成し、前記顔領域内のユーザの顔の状態を推定するパラメータを算出し、前記パラメータに対してフィルタ処理を施すステップを含み、前記フィルタ処理を施すステップでは、処理対象の前記パラメータの信頼度を、処理対象の前記パラメータについての加速度成分と、処理対象の前記パラメータ以前のパラメータについて過去に算出された加速度成分の分散値とに基づいて算出し、過去の出力値に基づいて、処理対象の前記パラメータにフィルタ処理を施したときに出力される出力値を予測した予測出力値を求め、処理対象の前記パラメータと前記予測出力値とを、前記信頼度に応じた重み付け加算により、前記フィルタ処理の結果として出力される出力値を演算するステップを有する。
【００１１】
本発明の一側面においては、ユーザの顔が映された画像から顔領域が検出され、顔領域内にある顔のパーツの位置が検出され、そのパーツの配置に基づいて顔の属性が判別されて、その判別結果を示すスコアが求められる。そして、そのスコアに基づいて、画像のユーザの顔に置き換えて表示させるモデルが選択され、選択されたモデルの顔の画像が生成されて、そのモデルの顔の画像が顔領域内にあるユーザの顔に合成され、顔領域内のユーザの顔の状態を推定するパラメータが算出され、パラメータに対してフィルタ処理が施される。そして、フィルタ処理を施すときに、処理対象のパラメータの信頼度が、処理対象のパラメータについての加速度成分と、処理対象のパラメータ以前のパラメータについて過去に算出された加速度成分の分散値とに基づいて算出され、過去の出力値に基づいて、処理対象のパラメータにフィルタ処理を施したときに出力される出力値を予測した予測出力値が求められ、処理対象のパラメータと予測出力値とが、信頼度に応じた重み付け加算により、フィルタ処理の結果として出力される出力値が演算される。
【発明の効果】
【００１２】
本発明の一側面によれば、ユーザがより素直に感情移入しやすい画像を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図２】画像処理装置による画像処理の概略について説明する図である。
【図３】顔探索結果情報について説明する図である。
【図４】顔ポジション情報について説明する図である。
【図５】パーツ結果情報について説明する図である。
【図６】顔探索結果情報に含まれる顔領域の回転角度、および顔ポジション情報に含まれる顔領域の姿勢を説明する図である。
【図７】フィルタ処理部におけるフィルタ処理について説明する図である。
【図８】アバタの顔向きを示すパラメータについて説明する図である。
【図９】アバタの顔位置を示すパラメータについて説明する図である。
【図１０】アバタの右目および左目の閉鎖率を示すパラメータについて説明する図である。
【図１１】アバタの口の開率を示すパラメータについて説明する図である。
【図１２】アバタの笑顔率を示すパラメータについて説明する図である。
【図１３】表情の合成について説明する図である。
【図１４】画像処理装置により実行される画像処理を説明するフローチャートである。
【図１５】モデル選択処理を説明するフローチャートである。
【図１６】顔向き補正処理を説明するフローチャートである。
【図１７】表情合成に使用することができるパラメータの例を示す図である。
【図１８】口形状の合成について説明する図である。
【図１９】口形状合成処理部の構成例を示すブロック図である。
【図２０】パラメータの例を示す図である。
【図２１】パラメータ生成部において要求されるフィルタ処理の基本的な概念について説明する図である。
【図２２】誤差分布の分散σf2の変化と、フィルタの出力値ｕpの変化との関係の一例を示す図である。
【図２３】状態推定結果値の加速度成分の分布と、状態推定結果値の速度成分の分布とを比較する図である。
【図２４】フィルタ処理部のブロック図である。
【図２５】フィルタ処理部におけるフィルタ処理を説明するフローチャートである。
【図２６】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１５】
図１は、本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【００１６】
図１において、画像処理装置１１には、カメラ１２およびディスプレイ１３が接続されている。
【００１７】
カメラ１２は、CCD（Charge Coupled Device）や、CMOS(Complementary Metal Oxide Semiconductor)センサなどの撮像素子と、複数のレンズを有する撮像光学系とを備えて構成され、撮像光学系を介して撮像素子が撮像した画像を画像処理装置１１に供給する。
【００１８】
ディスプレイ１３は、CRT（Cathode Ray Tube）や、LCD（Liquid Crystal Display），PDP（Plasma Display Panel）、有機EL（Electro Luminescence）パネルなどの表示デバイスを備えて構成される。ディスプレイ１３には、画像処理装置１１において画像処理が施された画像が供給され、ディスプレイ１３は、その画像を表示する。
【００１９】
画像処理装置１１は、カメラ１２において撮像された画像のユーザの顔が映っている領域に、コンピュータグラフィックスで生成されたアバタの顔を合成する画像処理を行う。ここで、アバタとは、例えば、ゲームやチャットなどの仮想空間において、ユーザの分身として表示されるキャラクタのことである。本実施の形態では、ディスプレイ１３に表示される画像において、ユーザの顔に置き換えられて表示されるコンピュータグラフィックスで生成されたキャラクタの顔を、以下、適宜、アバタと称する。
【００２０】
ここで、図２を参照して、画像処理装置１１による画像処理の概略について説明する。図２Ａには、カメラ１２により撮像され、画像処理装置１１に入力される入力画像が示されており、図２Ｂには、画像処理装置１１により画像処理が施され、ディスプレイ１３に表示される出力画像が示されている。
【００２１】
画像処理装置１１は、入力画像に映されているユーザの顔を検出し、その顔から抽出される属性（特徴）に基づいて、大人の顔であるか子供の顔であるか、および、男性の顔であるか女性の顔であるかの判定を行う。そして、画像処理装置１１は、判定結果に従ったアバタを生成し、ユーザの顔の位置に重ね合わされてアバタが表示されるように、入力画像にアバタを合成した出力画像を生成する。これにより、入力画像に含まれる大人の男性の顔が、大人の男性に対応するアバタに置き換えられた出力画像が表示され、入力画像に含まれる大人の女性の顔が、大人の女性に対応するアバタに置き換えられた出力画像が表示される。また、図２の例では、入力画像に含まれる子供の顔は、子供に対応するアバタとしての動物のキャラクタに置き換えられている。
【００２２】
また、画像処理装置１１は、カメラ１２により撮像される動画像に対してリアルタイムに画像処理を施すことができ、ユーザの表情が変化すると、その変化に合わせてアバタの表情を変化させることができる。
【００２３】
図１において、画像処理装置１１は、カメラ入力部１４、顔認識部１５、モデル選択部１６、パラメータ生成部１７、および画像生成部１８を備えて構成される。
【００２４】
カメラ入力部１４は、カメラ制御部２１およびデコード部２２を備えて構成され、カメラ１２により撮像された画像がカメラ入力部１４に入力される。カメラ制御部２１は、カメラ１２からの画像に基づき、カメラ１２に対して露出やホワイトバランスなどを調整する制御を行う。
【００２５】
また、カメラ１２からカメラ入力部１４に入力される画像は、いわゆるＲＡＷデータ（即ち、撮像素子から出力された状態で画像処理が施されていないデータ）とされている。デコード部２２は、そのＲＡＷデータの画像を、RGB+Yデータ（赤（Red）、緑（Green）、青（Blue）の三つの原色と、輝度信号Ｙにより画像を表すデータ）の画像に変換し、顔認識部１５に供給する。
【００２６】
顔認識部１５は、顔認識制御部３１、顔検出処理部３２、パーツ検出部３３、属性判別部３４、および詳細パーツ検出部３５を備えて構成され、カメラ入力部１４のデコード部２２から供給される画像に対して顔認識処理を施す。
【００２７】
顔認識制御部３１は、顔認識部１５の各部に対する制御を行う。例えば、顔認識制御部３１は、属性判別部３４からの出力が、新たに顔が検出されたフレームから所定数のフレーム（例えば、１５フレーム）までの間、モデル選択部１６に供給され、所定数のフレーム後、パラメータ生成部１７に供給されるように制御を行う。
【００２８】
顔検出処理部３２には、カメラ入力部１４から出力される画像が供給され、顔検出処理部３２は、その画像から、ユーザの顔が映されている領域（以下、適宜、顔領域と称する）を検出する顔検出処理を行う。例えば、顔検出処理部３２は、全体サーチと局所サーチとの２段階で顔検出処理を行う。顔検出処理部３２は、全体サーチにおいて、画像の全体を対象とし、画像に表示されている顔ごとに顔領域を探索する処理を行い、局所サーチにおいて、全体サーチにより既に検出された顔領域を中心とした局所的な探索を行う。また、全体サーチでは、複数のユーザの顔（ターゲット）を検出することができ、局所サーチでは、全体サーチで検出された各顔をトラッキング（追跡）することができる。
【００２９】
そして、顔検出処理部３２は、カメラ入力部１４からの画像にユーザの顔が映っている場合、その顔の顔領域を特定する情報である顔探索結果情報（Face Detection Result）を出力する。例えば、顔検出処理部３２は、全体サーチにより、それまでの画像に映っていなかった新規の顔が検出されると、その顔に対する顔探索結果情報の出力を開始する。そして、顔検出処理部３２は、その顔が画像に映っている間、局所サーチにおいてトラッキングを行い、その顔に対する顔探索結果情報の出力を継続する。また、顔探索結果情報には、顔領域の基準点、横幅、縦長、および回転角度（faceX，faceY，faceW，faceH，faceRoll，faceYaw）が含まれる。
【００３０】
ここで、図３を参照して、顔探索結果情報について説明する。例えば、図３に示すように、顔領域の基準点（faceX，faceY）は、画像全体の左上の頂点を（0,0）とし、画像全体の右下の頂点を（1,1）として、正規化した値での顔領域の左上の頂点のＸＹ座標で表される。また、顔領域の横幅および縦長（faceW，faceH）は、顔の両目を結ぶ線に平行な顔領域の辺を横方向とし、横方向に直交する辺を縦方向として、顔領域の基準点と同様に正規化した値で表される。また、顔領域の回転角度（faceRoll，faceYaw）は、後述の図６に示すように、右手座標系で表される。
【００３１】
パーツ検出部３３（図１）は、顔検出処理部３２により検出された顔領域内にある顔の右目、左目、鼻、および口を、ユーザの顔のパーツとしてそれぞれ検出し、各パーツの中心点を示す座標を示す情報であるパーツ情報を出力する。パーツ情報では、右目、左目、鼻、および口の中心点を示す座標が、顔領域の左上の頂点である基準点（faceX，faceY）を（0,0）とし、顔領域の右下の頂点を（1,1）として、正規化した値で表される。
【００３２】
また、パーツ検出部３３は、検出したパーツ同士の配置関係に基づいて、顔の位置および姿勢を求め、顔の位置および姿勢を示す情報である顔ポジション情報（Face Position）を出力する。顔ポジション情報には、顔領域の頂点となる４点の座標および顔の姿勢（regionX[0]〜[3]，regionY[0]〜[3]，PoseRoll，PosePitch，PoseYaw）が含まれる。
【００３３】
ここで、図４を参照して、顔ポジション情報について説明する。例えば、図４に示すように、顔領域の頂点となる４点の座標（regionX[0]〜[3],regionY[0]〜[3]）は、画像全体の左上の頂点を（0,0）とし、画像全体の右下の頂点を（1,1）として、正規化した値で表される。また、顔領域の姿勢（PoseRoll，PosePitch，PoseYaw）は、後述の図６に示すように、左手座標系で表される。
【００３４】
属性判別部３４（図１）は、パーツ検出部３３から出力されるパーツ情報に基づいて、画像に表示されている顔の属性を判別し、その顔の属性を示す情報である属性情報を出力する。属性情報には、笑顔スコア（smile）、右目の開度スコア（R eye Open）、左目の開度スコア（L eye Open）、男性スコア（Male）、大人スコア（Adult）、赤ちゃんスコア（Baby）、老人スコア（Elder）、メガネスコア（Glasses）などが含まれる。
【００３５】
例えば、笑顔スコアは、ユーザの顔の笑顔の度合い、右目の開度スコアは、ユーザの右目が開いている度合い、左目の開度スコアは、ユーザの左目が開いている度合い、男性スコアは、ユーザの顔が男性である度合いを数値化したものである。また、大人スコアは、ユーザの顔が大人である度合い、赤ちゃんスコアは、ユーザの顔が赤ちゃんである度合い、老人スコアは、ユーザの顔が老人である度合い、メガネスコアは、ユーザの顔にメガネが掛けられている度合いを数値化したものである。例えば、属性判別部３４には、ユーザの顔のパーツの位置から各スコアを判別するためのデータが学習などにより予め求められて記憶されており、属性判別部３４は、そのデータを参照して、ユーザの顔から各スコアを求めることができる。
【００３６】
詳細パーツ検出部３５は、画像に表示される顔のパーツ（輪郭、眉、目、鼻、口など）の位置や形状など、各パーツを詳細に特定するためのポイントを検出し、それらのポイントを示す情報であるパーツ結果情報（Parts Result）を出力する。
【００３７】
ここで、図５を参照して、パーツ結果情報について説明する。詳細パーツ検出部３５は、顔全体から各パーツのポイントを検出する通常処理と、口の輪郭のポイントを検出する軽量処理とを行うことができる。
【００３８】
即ち、通常処理では、図５Ａに示すように、顔の輪郭、眉の形状、目の輪郭、鼻の形状、口の輪郭を特定する５５箇所のポイントが検出される。また、軽量処理では、図５Ｂに示すように、口の輪郭を特定する１４箇所のポイントが検出される。各ポイントのＸＹ座標は、顔領域の左上の頂点の座標を（0,0）とし、顔領域の右下の頂点の座標を（1,1）として正規化した値で表される。パーツ結果情報では、各ポイントを識別するパーツＩＤ（partsID[0]〜[55]）と、それぞれ対応するポイントのＸＹ座標（partsX partsY）とが対応付けられている。
【００３９】
また、例えば、ユーザの顔が傾くことにより、画像全体に対する顔のパーツの各ポイントの位置が回転（移動）したとしても、各ポイントのＸＹ座標は顔領域で正規化された値で表されるので、顔領域の左上の頂点（原点）に対する各ポイントの位置は維持されたままである。このように、顔領域の傾きに応じて各ポイントの座標軸が回転するので、画像全体に対する各ポイントの位置を求める際には、顔領域の傾きに対して逆方向に傾かせる補正を行う必要がある。
【００４０】
モデル選択部１６（図１）には、顔認識制御部３１の制御に従って、属性判別部３４が出力する属性情報のうちの、男性スコアおよび大人スコアが供給される。顔認識制御部３１は、例えば、顔検出処理部３２により新たに顔が検出されたフレームから所定数のフレーム（例えば、１５フレーム）までの間、属性判別部３４から出力される男性スコアおよび大人スコアが、モデル選択部１６に供給されるように制御を行う。
【００４１】
モデル選択部１６は、属性判別部３４から供給される男性スコアおよび大人スコアに基づいて、画像に映されているユーザの顔が、男性、女性、および子供のいずれであるかを判定する。そして、モデル選択部１６は、画像生成部１８がアバタの画像を生成する際に使用する三次元データとして、男性のモデル、女性のモデル、および子供のモデルのいずれかを選択し、その選択結果を示す情報であるモデル情報を画像生成部１８に供給する。モデル選択部１６における処理については、図１５のフローチャートを参照して後述する。
【００４２】
パラメータ生成部１７は、顔向き補正処理部４１、フィルタ処理部４２、顔向きパラメータ算出部４３、顔位置パラメータ算出部４４、目閉率パラメータ算出部４５、口開率パラメータ算出部４６、および笑顔パラメータ算出部４７を備えて構成される。パラメータ生成部１７では、画像生成部１８がアバタを生成する際の制御データとなる各種のパラメータが生成される。
【００４３】
顔向き補正処理部４１には、顔検出処理部３２から出力される顔探索結果情報に含まれる顔領域の回転角度（faceRoll，faceYaw）と、パーツ検出部３３から出力される顔ポジション情報に含まれる顔領域の姿勢（PoseRoll，PosePitch，PoseYaw）が供給される。
【００４４】
ここで、図６に示すように、顔探索結果情報に含まれる顔領域の回転角度の検出範囲、および顔ポジション情報に含まれる顔領域の姿勢の検出範囲が設定され、顔探索結果情報は図に示すような右手座標系で表され、顔ポジション情報は図に示すような左手座標系で表される。例えば、顔探索結果情報では、顔検出処理部３２による顔のロール方向（Roll）に対する検出範囲は約±２０度とされており、ピッチ方向（Pitch）の検出は行われず、ヨー方向（Yaw）に対する検出範囲は約±３５度とされている。また、顔ポジション情報では、詳細パーツ検出部３５による顔のロール方向（Roll）に対する検出範囲は約±３５度とされており、ピッチ方向（Pitch）に対する検出範囲は約±２０度とされており、ヨー方向（Yaw）に対する検出範囲は約±４０度とされている。
【００４５】
ところで、画像生成部１８が生成するアバタの顔角度を制御するためには、例えば、顔領域の姿勢を用いるだけでも十分であると思われるが、顔領域の姿勢の検出範囲の境界近傍においては、検出結果の値が不定期に変動する（震える）ようなノイズが発生することがある。このように、検出結果の値にノイズが発生すると、ユーザの顔が動いていないにもかかわらず、アバタがブルブルと震えることになる。
【００４６】
そこで、顔向き補正処理部４１は、ユーザの顔の向きが、顔領域の姿勢の検出範囲の境界近傍である場合には、顔領域の姿勢の時間変動と、顔領域の回転角度の時間変動に基づいて、出力する顔向きを補正する処理を行う。
【００４７】
具体的には、検出範囲の境界近傍では、顔領域の回転角度は時間変動が発生し難い（安定している）のに対し、顔領域の姿勢の時間変動はノイズ成分により急激な変化を示す。従って、顔領域の回転角度が安定しているのに対し、顔領域の姿勢の時間変動が急激に変化しているとき、顔向き補正処理部４１は、１フレーム前の顔領域の姿勢の検出結果を出力することで、ノイズ成分の出力を抑制することができる。そして、顔向き補正処理部４１は、このような補正を行ったユーザの顔角度を出力する。
【００４８】
フィルタ処理部４２（図１）は、パラメータ生成部１７の各パラメータ算出部（即ち、顔向きパラメータ算出部４３、顔位置パラメータ算出部４４、目閉率パラメータ算出部４５、口開率パラメータ算出部４６、および笑顔パラメータ算出部４７）において算出されるパラメータに対し、それぞれのパラメータを安定化させるためのフィルタ処理を行う。
【００４９】
図７を参照して、フィルタ処理部４２におけるフィルタ処理について説明する。
【００５０】
フィルタ処理部４２は、図７Ａに示すようなブロック図で表されるように構成されている。即ち、フィルタ処理部４２は、各パラメータ算出部から出力されるパラメータｘtを入力とし、画像生成部１８においてアバタを生成する際の制御データとなるパラメータｙtを出力として、次の式（１）を演算する。
【００５１】
【数１】
0005423379.tif 000002
・・・（１）
【００５２】
但し、式（１）において、αは、パラメータｘtとパラメータｙt-1とを足し込む際の足し込み比率であり、パラメータｙt-1は、フィルタ処理部４２から直前に出力されたパラメータである。
【００５３】
足し込み比率αは、図７Ｂに示すように、最大値maxと、２つの閾値thresAおよびthresBにより表される関数に従って、現在の入力値と１つ前の入力値との差分の絶対値である変数diff（＝｜curr−prev｜）から算出される。即ち、足し込み比率αを求める関数は、変数diffが０から閾値thresAまでの間で一定の傾きで増加して閾値thresAで最大値maxとなり、閾値thresAから閾値thresBまでの間で最大値maxとなり、閾値thresB以降では、０から閾値thresAまでの傾きに対して逆の傾きで減少するような台形で表される。なお、閾値thresAと閾値thresBとが同一の値の場合、足し込み比率αを求める関数は、後述するように山形で現される。
【００５４】
フィルタ処理部４２には、最大値max、閾値thresA、および閾値thresBが設定されており、フィルタ処理部４２は、変数diffから求められた足し込み比率αを用いて、上述の式（１）に従い、各パラメータ算出部からのパラメータを入力としてフィルタ処理を行う。そして、フィルタ処理部４２は、フィルタ処理を施したパラメータを画像生成部１８に供給する。
【００５５】
顔向きパラメータ算出部４３（図１）は、顔向き補正処理部４１により補正されたユーザの顔角度から、画像生成部１８が生成するアバタの顔角度を制御するパラメータを算出する。
【００５６】
例えば、顔向き補正処理部４１では、右手座標系で処理が行われるのに対し、画像生成部１８では、左手座標系で処理が行われる。右手座標系と左手座標系とでは、図８Ａに示すように、ロール方向（Roll）およびヨー方向（Yaw）との向きが逆であるので、顔向きパラメータ算出部４３は、顔向き補正処理部４１により補正されたユーザの顔角度の、ロール方向（Roll）およびヨー方向（Yaw）の符号を反転させる処理を行う。
【００５７】
即ち、顔向きパラメータ算出部４３は、図８Ｂに示すような関数に従って、入力されるユーザの顔角度をｘとし、出力するアバタの顔角度をｙとして、ｙ＝ｘ−ｐを演算する。ここで、ｐは、顔向きの初期値をオフセットするための値であり、標準状態においてデフォルト値として０が設定（def=0.0）されている。
【００５８】
そして、顔向きパラメータ算出部４３から出力されるアバタの顔角度のパラメータは、フィルタ処理部４２に供給され、上述の図７Ａに示したようなフィルタ処理が施される。このとき、フィルタ処理部４２のフィルタ処理で使用される足し込み比率αは、図８Ｃに示すように、最大値max＝1.0、閾値thresA＝0.1π、閾値thresB＝0.2πで表される関数に従って求められる。
【００５９】
顔位置パラメータ算出部４４（図１）は、顔検出処理部３２から出力される顔探索結果情報に含まれる顔領域の基準点、横幅、および縦長（faceX，faceY，faceW，faceH）から、画像生成部１８が生成するアバタの顔位置を制御するパラメータを算出する。
【００６０】
上述の図３に示したように顔検出処理部３２が出力する顔探索結果情報では、顔領域の左上の頂点が基準点とされているのに対し、画像生成部１８では、図９Ａに示すように、顔領域の中心が基準点（図９Ａで×印で示される点）とされる。また、顔認識制御部３１では、画像全体の左上の頂点を原点（0,0）とした座標系（図３）で処理を行うのに対し、画像生成部１８では、図９Ａに示すように、画像全体の中心を原点（0,0）とした座標系で処理を行う。
【００６１】
従って、顔位置パラメータ算出部４４は、図９Ｂに示すような関数、即ち、次の式（２）を演算することにより、画像全体の中心を原点とした座標系における顔領域の中心点の座標を、顔位置のパラメータとして算出する。
【００６２】
【数２】
0005423379.tif 000003
・・・（２）
【００６３】
但し、式（２）において、ｘinおよびｙinは、顔位置パラメータ算出部４４に入力される顔領域の基準点、即ち、顔検出処理部３２から出力される顔探索結果情報に含まれる顔領域の基準点のＸＹ座標（faceX，faceY）である。また、ｗinおよびｈinは、顔位置パラメータ算出部４４に入力される顔領域の横幅および縦長（faceW，faceH）である。また、ｘoutおよびｙoutは、顔位置パラメータ算出部４４から出力される顔位置のパラメータ（即ち、図９Ａで×印で示される点のＸＹ座標）である。ここで、ｘin，ｙin，ｗin，ｈinは、0.0〜0.1の値域をとる画像全体の左上の頂点を原点（0,0）とした正規化座標系での値であり、ｘout，ｙoutは、-0.1〜0.1の値域をとる画像全体の中心を原点（0,0）とした正規化座標系での値である。
【００６４】
そして、顔位置パラメータ算出部４４から出力される顔位置のパラメータは、フィルタ処理部４２に供給され、上述の図７Ａに示したようなフィルタ処理が施される。このとき、フィルタ処理部４２のフィルタ処理で使用される足し込み比率αは、図９Ｃに示すように、最大値max＝0.8、閾値thresA＝閾値thresB＝0.8で表される関数に従って求められる。ここで、閾値thresAと閾値thresBとが同一の値である場合、足し込み比率αを求める関数は山型となり、台型の関数より安定化傾向が強められる。
【００６５】
目閉率パラメータ算出部４５（図１）は、属性判別部３４により判別されたユーザの右目および左目の開度スコアから、画像生成部１８が生成するアバタの右目および左目の閉鎖率を制御するパラメータを算出する。
【００６６】
例えば、目閉率パラメータ算出部４５は、シグモイド関数を利用した次の式（３）を演算することにより、ユーザの右目および左目の開度スコアから、アバタの右目および左目の閉鎖率のパラメータをそれぞれ算出する。
【００６７】
【数３】
0005423379.tif 000004
・・・（３）
【００６８】
但し、式（３）において、ｙは閉鎖率であり、ｘは開度スコアであり、ofsは開度スコアの初期値をオフセットするための値であり、gradは、シグモイド関数の緩やかさを設定する設定値である。また、シグモイド関数により算出される値は、0.0〜1.0の範囲であり、gainは、その値の範囲を、中央値（0.5）を中心として増幅させるための増幅率である。
【００６９】
図１０Ａに、複数の設定値grad（grad=0.2〜0.6）を用いてシグモイド関数を演算し、増幅率gainを1.4として求められる閉鎖率ｙと開度スコアｘとの関係を示す。ここで、ｐは、ユーザの右目および左目の開度スコアの最大値として設定される値であり、標準状態における開度スコアの最大値のデフォルト値として6.75が設定（def=6.75）されている。また、標準状態におけるgradのデフォルト値として0.4が設定（def=0.4）されている。また、閉鎖率のパラメータには、最大値と最小値を設定することができ、図１０Ａでは、最大値が1.0に設定され、最小値が0.0に設定されている。
【００７０】
このように、シグモイド関数を利用して、属性判別部３４により判別されたユーザの右目および左目の開度スコアを、画像生成部１８が生成するアバタの右目および左目の閉鎖率のパラメータに変換することで、例えば、目を完全に開いた状態での目の大きさの個人差を縮小させることや、顔の向きが目の開閉度に与える影響を抑制することができる。例えば、目の細い人では、開度スコアが低下する傾向や、顔が俯いているときには、開度スコアが低下する傾向などがあるが、閉鎖率のパラメータを、シグモイド関数を利用して求めることで、そのような傾向を抑制することができる。
【００７１】
さらに、シグモイド関数を利用することで、開いた状態の目と閉じた状態の目（ウィンクした目）とを表現するだけでなく、細めた状態の目（半目）をより自然に表現することができる。また、目を閉じ始める時点、または目を開き始める時点において、まぶたの動きが緩やかになるように、目の開閉を表現することができる。なお、シグモイド関数に代えて、最大値と最小値との間で線形に閉鎖率のパラメータが変化するような関数を利用しても、細めた状態の目を表現することができるが、シグモイド関数を利用することで、より人間の動作に近い目の開閉を表現することができる。
【００７２】
そして、目閉率パラメータ算出部４５から出力される右目および左目の閉鎖率のパラメータは、フィルタ処理部４２に供給され、上述の図７Ａに示したようなフィルタ処理が施される。このとき、フィルタ処理部４２のフィルタ処理で使用される足し込み比率αは、図１０Ｂに示すように、最大値max＝0.8、閾値thresA＝閾値thresB＝0.8で表される関数に従って求められる。
【００７３】
口開率パラメータ算出部４６（図１）は、詳細パーツ検出部３５により検出されたユーザの口の輪郭を特定する１４箇所のポイントから、画像生成部１８が生成するアバタの口の開率を制御するパラメータを算出する。
【００７４】
ここで、口開率パラメータ算出部４６は、パラメータを算出する前に、ユーザの口の輪郭を特定する各ポイントに基づいて、口の輪郭の検出結果が正しいものであるか否かを判定する２つの評価を行う。
【００７５】
まず、第１の評価には、所定のポイントどうしの垂直方向の距離が用いられる。例えば、口開率パラメータ算出部４６は、図１１Ａの左側に示すように、ユーザの口の輪郭を特定する１４箇所のポイントのうちの、右端のポイントを除いた右側の４つのポイントの、隣り合うポイントどうしの垂直方向の距離（Ｒ１，Ｒ２，Ｒ３）を求める。同様に、口開率パラメータ算出部４６は、左端のポイントを除いた左側の４つのポイントの、隣り合うポイントどうしの垂直方向の距離（Ｌ１，Ｌ２，Ｌ３）と、中央のポイントの、隣り合うポイントどうしの垂直方向の距離（Ｃ１，Ｃ２，Ｃ３）とを求める。そして、口開率パラメータ算出部４６は、このようにして求めた全ての垂直方向の距離が正数である場合、口の輪郭の検出結果が正しいものであると判定する。
【００７６】
また、第２の評価には、所定のポイントを対角とした矩形領域の形状が用いられる。例えば、口開率パラメータ算出部４６は、図１１Ａの右側に示すように、ユーザの口の輪郭を特定する１４箇所のポイントのうちの、上唇の下側の３つのポイントの、隣り合うポイントを対角とした矩形領域（Ｔ１、Ｔ２）の形状を求める。同様に、口開率パラメータ算出部４６は、ユーザの口の輪郭を特定する１４箇所のポイントのうちの、下唇の上側の３つのポイントの、隣り合うポイントを対角とした矩形領域（Ｔ３、Ｔ４）の形状を求める。そして、口開率パラメータ算出部４６は、このようにして求めた全ての矩形領域が横長である場合、口の輪郭の検出結果が正しいものであると判定する。
【００７７】
口開率パラメータ算出部４６は、第１および第２の評価において口の輪郭の検出結果が正しいものであると判定した場合、詳細パーツ検出部３５により検出されたユーザの口の輪郭を特定する１４箇所のポイントから、画像生成部１８が生成するアバタの口の開率のパラメータを算出する。即ち、口の輪郭の検出結果が正しいものである場合に、ユーザの口の開き具合が、アバタの口に反映される。
【００７８】
口開率パラメータ算出部４６は、上唇の下側の中央のポイントと、下唇の上側の中央のポイントとの垂直方向の距離（即ち、図１１Ａの距離Ｃ２：height）を入力とし、図１１Ｂに示すような関数（ｙ＝（１／ｐ）×ｘ−０．１）を演算して、口開率のパラメータを算出する。この式において、ｘは、入力値である垂直方向の距離（height）であり、ｙは、出力値である口開率のパラメータ（Open Ratio）である。また、ｐは、入力値である垂直方向の距離（height）の最大値を設定するための値であり、標準状態におけるデフォルト値として0.09が設定（def=0.09）されており、最大値は0.19とされている。このように、口開率を示すパラメータは、ユーザの口が最も開いた状態を標準状態として設定し、距離（height）に線形に対応付けられる。
【００７９】
なお、口の中心位置と鼻の中心位置との距離から、口開率を示すパラメータを算出するための距離を求めてもよい。この場合、例えば、口の中心位置と鼻の中心位置との距離を0.4倍した値が、上述の入力値（height）として用いられる。
【００８０】
そして、口開率パラメータ算出部４６から出力される口開率を示すパラメータは、フィルタ処理部４２に供給され、上述の図７Ａに示したようなフィルタ処理が施される。このとき、フィルタ処理部４２のフィルタ処理で使用される足し込み比率αは、図１１Ｃに
すように、最大値max＝0.8、閾値thresA＝閾値thresB＝0.8で表される関数に従って求められる。
【００８１】
笑顔パラメータ算出部４７（図１）は、属性判別部３４から出力される属性情報に含まれる笑顔スコアから、画像生成部１８が生成するアバタの笑顔率を制御するパラメータを算出する。
【００８２】
属性判別部３４により検出される笑顔スコアは、例えば、０から７０までの数値で表されており、笑顔パラメータ算出部４７は、図１２Ａに示すような関数（ｙ＝（１／５０）×ｘ−０．４）を演算して、笑顔率を示すパラメータを求める。この式において、ｘは、入力値である笑顔（Smile）スコアであり、ｙは、出力値である笑顔率を示すパラメータ（Smile Ratio）である。
【００８３】
そして、笑顔パラメータ算出部４７から出力される笑顔率のパラメータは、フィルタ処理部４２に供給され、上述の図７Ａに示したようなフィルタ処理が施される。このとき、フィルタ処理部４２のフィルタ処理で使用される足し込み比率αは、図１２Ｂに示すように、最大値max＝0.8、閾値thresA＝閾値thresB＝0.8で表される関数に従って求められる。
【００８４】
このように、パラメータ生成部１７の各パラメータ生成部において生成されたパラメータは、画像生成部１８（図１）に供給され、画像生成部１８は、それらのパラメータに従ってアバタを生成する。
【００８５】
画像生成部１８は、三次元データ管理部５１、シェーダ管理部５２、レンダリング部５３、および合成処理部５４を備えて構成される。
【００８６】
三次元データ管理部５１は、アバタの三次元データの管理、例えば、男性、女性、および子供のアバタの三次元データを記憶しているデータベース（図示せず）の管理を行う。また、三次元データ管理部５１には、モデル選択部１６からモデル情報（画像に表示される顔が、男性、女性、および子供のいずれであるかの判定結果を示す情報）が供給される。そして、三次元データ管理部５１は、そのモデル情報に応じたアバタの三次元データを、データベースから読み出してレンダリング部５３に供給する。
【００８７】
また、三次元データ管理部５１は、三次元モデルの座標を出力画像（二次元）に変換するためのジオメトリ処理や、三次元モデルの表面に質感を与えるためのテクスチャを貼り付けるテクスチャ処理などを行うための各種のデータを管理し、それらのデータをレンダリング部５３に供給する。
【００８８】
シェーダ管理部５２は、レンダリング部５３において三次元データをレンダリングする際に、所定の光源（照明）により三次元モデルに陰影をつけるための演算を行うシェーディング処理を管理し、シェーディング処理による演算結果をレンダリング部５３に供給する。
【００８９】
レンダリング部５３は、パラメータ生成部１７の各パラメータ生成部から出力された表情パラメータ（例えば、アバタの右目および左目の目閉率を示すパラメータ、アバタの笑顔率を示すパラメータ、アバタの口開率を示すパラメータ）に従って、三次元データ管理部５１から供給された三次元データを変形（モーフィング）させて、レンダリングを行う。
【００９０】
ここで、三次元データ管理部５１は、１つのモデルについて、複数の基本表情の三次元データをレンダリング部５３に供給している。例えば、三次元データ管理部５１は、子供、男性、および女性のモデルごとに、図１３に示すような無表情の三次元データ、右目閉じの三次元データ、左目閉じの三次元データ、笑いの三次元データ、口開きの三次元データをレンダリング部５３に供給する。
【００９１】
そして、レンダリング部５３は、これらの基本表情の三次元データの各頂点を、それぞれ対応するパラメータで重み付け加算して、レンダリングする三次元データの各頂点を求める。即ち、レンダリングする三次元データの所定の頂点Psynth(x,y,z)は、右目閉じの三次元データの所定の頂点をPreye_close(x,y,z)とし、アバタの右目の目閉率を示すパラメータをWreye_closeとし、左目閉じの三次元データの所定の頂点をPleye_close(x,y,z)とし、アバタの左目の目閉率を示すパラメータをWleye_closeとし、口開きの三次元データの所定の頂点をPmouth_open(x,y,z)とし、アバタの口開率を示すパラメータをWmouth_openとし、笑いの三次元データの所定の頂点をPsmile(x,y,z)とし、アバタの笑顔率を示すパラメータをWsmileとし、無表情の三次元データの所定の頂点をPnormal(x,y,z)とすると、Psynth(x,y,z)＝Preye_close(x,y,z)×Wreye_close＋Pleye_close(x,y,z)×Wleye_close＋Pmouth_open(x,y,z)×Wmouth_open＋Psmile(x,y,z)×Wsmile＋Pnormal(x,y,z)×（１−Wreye_close−Wleye_close−Wsmile−Wmouth_open）で求められる。
【００９２】
そして、レンダリング部５３は、各基本表情の三次元データを、それぞれ対応するパラメータで重み付け加算して求めたモーフィング後の三次元データを用いてレンダリング処理を行い、アバタの顔の画像を生成する。また、レンダリング部５３は、顔向きパラメータ算出部４３から出力されるアバタの顔角度のパラメータに従った向きのアバタの画像が生成されるように、モーフィング後の三次元データの向きを設定してレンダリング処理を行う。
【００９３】
合成処理部５４には、レンダリング部５３によりレンダリングされたアバタの顔の画像が供給されるとともに、そのアバタの顔位置を制御するパラメータが顔位置パラメータ算出部４４から供給される。また、合成処理部５４には、カメラ１２により撮像された画像がカメラ入力部１４から供給される。
【００９４】
合成処理部５４は、カメラ１２により撮像された画像（例えば、図２Ａの入力画像）に映されているユーザの顔の位置に、アバタの顔位置を制御するパラメータに従って、レンダリング部５３から供給されたアバタの顔が重ね合わされるように、ユーザの顔をアバタに置き換える合成処理を行う。そして、合成処理部５４は、その合成処理を行った結果得られる画像（例えば、図２Ｂの出力画像）を、ディスプレイ１３に供給して表示させる。
【００９５】
次に、図１４は、図１の画像処理装置１１により実行される画像処理を説明するフローチャートである。
【００９６】
例えば、画像処理装置１１は、ユーザの操作に従って処理を開始し、ステップＳ１１において、カメラ入力部１４は、カメラ１２から入力される画像を取得する。カメラ入力部１４は、デコード部２２によりカメラ１２からの画像（ＲＡＷデータ）をデコードして、顔認識部１５の顔検出処理部３２に供給し、処理はステップＳ１２に進む。
【００９７】
ステップＳ１２において、顔検出処理部３２は、ステップＳ１１でカメラ入力部１４から供給された画像から、ユーザの顔が映っている顔領域を検出する顔検出処理を行う。そして、顔検出処理部３２は、顔領域が検出されると顔探索結果情報を出力する。
【００９８】
ステップＳ１２の処理後、処理はステップＳ１３に進み、顔認識制御部３１は、ステップＳ１２の処理で顔検出処理部３２により顔領域が検出されたか否か、即ち、顔検出処理部３２から顔探索結果情報が出力されたか否かを判定する。
【００９９】
ステップＳ１３において、顔認識制御部３１が、顔検出処理部３２により顔領域が検出されていないと判定した場合、処理はステップＳ１１に戻り、以下、同様の処理が繰り返される。一方、ステップＳ１３において、顔認識制御部３１が、顔検出処理部３２により顔領域が検出されたと判定した場合、処理はステップＳ１４に進む。
【０１００】
ステップＳ１４において、パーツ検出部３３は、ステップＳ１２で顔検出処理部３２から出力された顔探索結果情報により示される顔領域から、顔のパーツを検出する処理を行う。そして、パーツ検出部３３は、右目、左目、鼻、および口の各パーツの中心点を示す座標を示すパーツ情報と、それらのパーツから求められる顔の位置および姿勢を示す顔ポジション情報とを出力し、処理はステップＳ１５に進む。
【０１０１】
ステップＳ１５において、属性判別部３４は、ステップＳ１４でパーツ検出部３３から出力されたパーツ情報に基づいて、顔領域内にあるユーザの顔の属性を判別し、その判別結果を示す属性情報を出力する。上述したように、属性情報には、男性スコアおよび大人スコアが含まれている。
【０１０２】
ステップＳ１５の処理後、処理はステップＳ１６に進み、顔認識制御部３１は、現在処理の対象としている顔領域が、新規の顔領域であるか否かを判定する。例えば、画像処理装置１１では、カメラ１２から入力される画像の１フレームごとに処理が行われ、顔認識制御部３１は、現在処理の対象となっている顔領域が初めて検出されたフレームから直前のステップＳ１２で検出されたフレームまでのフレーム数が、１５フレーム以下であれば、現在処理の対象としている顔領域が新規のターゲットであると判定し、１５フレームより大であれば、現在処理の対象としている顔領域が新規のターゲットではないと判定する。
【０１０３】
ステップＳ１６において、顔認識制御部３１が、現在処理の対象としている顔領域が新規の顔領域であると判定した場合、処理はステップＳ１７に進む。
【０１０４】
ステップＳ１７において、顔認識制御部３１は、ステップＳ１５で属性判別部３４から出力される属性情報に含まれる男性スコアおよび大人スコアをモデル選択部１６に供給し、処理はステップＳ１８に進む。
【０１０５】
ステップＳ１８において、モデル選択部１６は、ステップＳ１７で顔認識制御部３１から供給された男性スコアおよび大人スコアに基づいて、顔領域内にあるユーザの顔を置き換えるアバタの三次元データとして、男性のモデル、女性のモデル、および子供のモデルのいずれかを選択するモデル選択処理を行う。モデル選択処理については、図１５を参照して後述する。ステップＳ１７のモデル選択処理の処理後、処理はステップＳ１１に戻り、次のフレームを処理の対象として、以下、同様の処理が繰り返される。
【０１０６】
一方、ステップＳ１６において、顔認識制御部３１が、現在処理の対象としている顔領域が新規の顔領域でないと判定した場合、処理はステップＳ１９に進む。
【０１０７】
ステップＳ１９において、詳細パーツ検出部３５は、顔領域内にあるユーザの顔のパーツを詳細に特定するためのポイント（図５参照）を検出し、パーツ結果情報を出力して、処理はステップＳ２０に進む。
【０１０８】
ステップＳ２０において、顔向き補正処理部４１は、顔領域内にあるユーザの顔の向きを補正する顔向き補正処理を行う。顔向き補正処理については、図１６を参照して後述する。顔向き補正処理の処理後、処理はステップＳ２１に進む。
【０１０９】
ステップＳ２１において、パラメータ生成部１７の各パラメータ算出部はパラメータを算出する。即ち、顔向きパラメータ算出部４３は、ステップＳ２０で顔向き補正処理部４１から出力されるユーザの顔角度から、アバタの顔角度を示すパラメータを算出する。顔位置パラメータ算出部４４は、ステップＳ１２で顔認識制御部３１が出力する顔探索結果情報から、アバタの顔位置を示すパラメータを算出する。
【０１１０】
また、目閉率パラメータ算出部４５は、ステップＳ１５で属性判別部３４により判別されたユーザの右目および左目の開度スコアから、アバタの右目および左目の目閉率を示すパラメータを算出する。口開率パラメータ算出部４６は、ステップＳ１９で詳細パーツ検出部３５により検出されたユーザの口の輪郭を特定する１４箇所のポイントから、アバタの口開率を示すパラメータを算出する。笑顔パラメータ算出部４７は、ステップＳ１５で属性判別部３４から出力される属性情報に含まれる笑顔スコアから、アバタの笑顔率を示すパラメータを算出する。
【０１１１】
ステップＳ２２において、フィルタ処理部４２は、顔向きパラメータ算出部４３、顔位置パラメータ算出部４４、目閉率パラメータ算出部４５、口開率パラメータ算出部４６、および笑顔パラメータ算出部４７により算出される各パラメータに対し、図７を参照して説明したように、それぞれのパラメータを安定化させるためのフィルタ処理を施し、フィルタ処理が施されたパラメータを画像生成部１８に供給する。
【０１１２】
ステップＳ２３において、画像生成部１８は、ディスプレイ１３に表示させる画像を生成する画像生成処理を行う。
【０１１３】
即ち、画像生成部１８では、三次元データ管理部５１が、ステップＳ１８のモデル選択処理でモデル選択部１６から出力されるモデル情報に従って、顔領域内のユーザの顔を置き換えるアバタについての５つの表情の三次元データをレンダリング部５３に供給する。そして、レンダリング部５３は、それらの５つの表情の三次元データを、ステップＳ２２でフィルタ処理部４２から供給される各パラメータに応じてモーフィングして、アバタの画像を生成する。その後、合成処理部５４は、レンダリング部５３によりレンダリングされたアバタの画像を、カメラ１２により撮像された画像に映されているユーザの顔の位置に合成させ、ユーザの顔がアバタに置き換えられた画像を生成する。画像生成処理の処理後、処理はステップＳ２４に進む。
【０１１４】
ステップＳ２４において、画像生成部１８は、ステップＳ２３で生成された画像をディスプレイ１３に供給して表示させ、処理はステップＳ１１に戻り、次のフレームを処理の対象として、以下、同様の処理が繰り返される。
【０１１５】
以上のように、画像処理装置１１では、ユーザの属性に従ったアバタが自動的に表示されるので、ユーザがアバタを指定する手間を省くことができる。即ち、従来、ユーザの顔をアバタに置き換えて表示させるには、ユーザが、自身の属性に応じたアバタを指定しなければならなかった。これに対し、画像処理装置１１では、そのような手間を省くことができ、ユーザの顔がカメラ１２により撮像されるのとほぼ同時に、ユーザの属性に従ったアバタがディスプレイ１３に表示されるようになる。これにより、ユーザがアバタとの一体感を感じることができ、例えば、画像処理装置１１をゲームやチャットなどの仮想空間に適用したとき、その仮想空間により素直に感情移入しやすくなる。
【０１１６】
また、各パラメータに対してフィルタ処理を施しているので、アバタの動きが滑らかになり、ユーザがアバタとの一体感をより強く感じることができる。例えば、画像に映されている顔を検出する顔検出処理においては、数ピクセルの誤差が許容されており、顔が動いていない（または、ゆっくり動いている）とき、その誤差によってアバタの位置が振動する（微小幅で高速に振れる）ことがある。このような場合にも、フィルタ処理を施すことで、アバタの振動を防止することができ、ユーザ（仮想空間の画像を見たり、ゲームを操作しているユーザ）が、そのような振動を見ることによって不快感を受けることを防止することができる。
【０１１７】
さらに、図７を参照して説明したように、足し込み比率αを、動的に、現在の入力値と１つ前の入力値との差分の絶対値である変数diffを用いて求めることで、顔が動いていない（または、ゆっくり動いている）ときと、顔が速く動いているときとの両方に適したフィルタ処理を行うことができる。即ち、顔が動いていないときには、足し込み比率αの値を小さくする（直前の出力値（パラメータｙt-1）の重みを大きくして、入力値（パラメータｘt）の重みを小さくする）ことで、顔の位置を安定化させることができる。一方、顔が速く動いているときには、足し込み比率αの値を大きくすることで、顔の移動に対する追従性を高くして、より正確な位置にアバタを表示することができる。なお、顔が速く動いているときには、顔の移動量に対して顔検出処理における誤差は相対的に小さくなるので、上述したようなアバタの振動が気になることはない。このようなフィルタ処理により、ユーザに対して、直感的な視覚効果を与えることができる。
【０１１８】
また、パラメータ生成部１７において生成された表情パラメータにより表情合成を行ってレンダリングするので、アバタの表情を従来よりも豊かなものにすることができる。このように、画像処理装置１１により画像処理を施すことにより、バーチャルコミュニケーションにおける新しいユーザ体験を提供したり、仮想空間でのよりリッチなコミュニケーションを提供することができる。
【０１１９】
次に、図１５は、図１４のステップＳ１８におけるモデル選択処理を説明するフローチャートである。
【０１２０】
ステップＳ３１において、モデル選択部１６は、モデル選択処理において使用される各種のカウント値を初期化する処理を行う。モデル選択処理では、処理を行ったフレーム数をカウントするフレーム数カウント値、子供であると判定された回数をカウントする子供カウント値、男性であると判定された回数をカウントする男性カウント値、女性であると判定された回数をカウントする女性カウント値が使用される。モデル選択部１６は、これらのカウント値を初期化（例えば、０を入力）し、処理はステップＳ３２に進む。
【０１２１】
ステップＳ３２において、モデル選択部１６は、図１４のステップＳ１７で顔認識制御部３１から供給された大人スコアに基づいて、顔領域内にあるユーザの顔が子供であるか否かを判定する。例えば、モデル選択部１６は、大人スコアが所定の閾値（例えば、大人スコアの最大値と最小値との中間の値）未満であれば、顔領域内にあるユーザの顔が子供であると判定し、大人スコアが所定の閾値以上であれば、顔領域内にあるユーザの顔が大人であると判定する。
【０１２２】
ステップＳ３２において、モデル選択部１６が、顔領域内にあるユーザの顔が子供であると判定した場合、処理はステップＳ３３に進み、モデル選択部１６は、子供カウント値を１つインクリメントする。
【０１２３】
一方、ステップＳ３２において、モデル選択部１６が、顔領域内にあるユーザの顔が子供でないと判定した場合、処理はステップＳ３４に進む。
【０１２４】
ステップＳ３４において、モデル選択部１６は、顔認識制御部３１から供給された男性スコアに基づいて、顔領域内にあるユーザの顔が男性であるか否かを判定する。例えば、モデル選択部１６は、男性スコアが所定の閾値（例えば、男性スコアの最大値と最小値との中間の値）以上であれば、顔領域内にあるユーザの顔が男性であると判定し、男性スコアが所定の閾値未満であれば、顔領域内にあるユーザの顔が男性でないと判定する。
【０１２５】
ステップＳ３４において、モデル選択部１６が、顔領域内にあるユーザの顔が男性であると判定した場合、処理はステップＳ３５に進み、モデル選択部１６は、男性カウント値を１つインクリメントする。一方、ステップＳ３４において、モデル選択部１６が、顔領域内にあるユーザの顔が男性でないと判定した場合、処理はステップＳ３６に進み、モデル選択部１６は、女性カウント値を１つインクリメントする。
【０１２６】
ステップＳ３３，Ｓ３５、またはＳ３６の処理後、処理はステップＳ３７に進み、モデル選択部１６は、フレーム数カウント値が、モデルの選択を行うフレームとして設定された所定数（例えば、１５）以上であるか否かを判定する。
【０１２７】
ステップＳ３７において、モデル選択部１６が、フレーム数カウント値が、モデルの選択を行うフレームとして設定された所定数以上でない（所定数未満である）と判定した場合、処理はステップＳ３８に進む。ステップＳ３８において、モデル選択部１６は、フレーム数カウント値を１つインクリメントし、処理はステップＳ３２に戻り、次のフレームを処理の対象として、以下、同様の処理が繰り返される。
【０１２８】
一方、ステップＳ３７において、モデル選択部１６が、フレーム数カウント値がモデルの選択を行うフレームとして設定された所定数以上であると判定した場合、処理はステップＳ３９に進む。
【０１２９】
ステップＳ３９において、モデル選択部１６は、子供カウント値、男性カウント値、および女性カウント値を参照し、子供、男性、女性のうちの最も判定回数の多い（カウント値が高い）ものを、アバタの三次元データのモデルとして選択する。
【０１３０】
ステップＳ３９の処理後、処理はステップＳ４０に進み、モデル選択部１６は、ステップＳ３９での選択結果を示す情報であるモデル情報を画像生成部１８に供給し、処理は終了する。
【０１３１】
以上のように、モデル選択部１６が、複数回の判定結果に基づいてモデルを選択することで、ユーザに一致するモデルを選択する確度を向上させることができる。例えば、属性判別部３４は、照明の影響やユーザの表情などによって誤認識をすること（例えば、ユーザの顔が笑っているときに男性と女性とを逆に判別することなど）があり、不安定なスコアが出力されることがある。このようなときでも、モデル選択部１６が複数回の判定結果を用いることで、属性判別部３４における誤認識の影響を排除することができる。
【０１３２】
次に、図１６は、図１４のステップＳ２０における顔向き補正処理を説明するフローチャートである。
【０１３３】
ステップＳ５１において、顔向き補正処理部４１は、図１４のステップＳ１２において顔領域が検出されたときに顔検出処理部３２から出力される顔探索結果情報に含まれる顔領域の回転角度（faceRoll，faceYaw）と、ステップＳ１４においてパーツ検出部３３から出力される顔ポジション情報に含まれる顔領域の姿勢（PoseRoll，PoseYaw）とを取得する。
【０１３４】
ステップＳ５１の処理後、処理はステップＳ５２に進み、顔向き補正処理部４１は、顔領域内にあるユーザの顔の向きが、検出範囲の境界近傍か否かを判定する。
【０１３５】
例えば、顔探索結果情報の検出範囲に対する割合によって境界近傍を規定することができ、顔向き補正処理部４１には、検出範囲の境界近傍を規定する割合が予め設定されている。例えば、検出範囲の境界近傍を規定する割合が87.5％と設定されている場合、顔向き補正処理部４１は、顔領域の回転角度（faceRoll，faceYaw）が、顔探索結果情報の検出範囲に対する87.5％よりも大きい場合、ユーザの顔の向きが検出範囲の境界近傍であると判定する。
【０１３６】
例えば、図６に示したように、顔のロール方向についての顔探索結果情報の検出範囲が約±２０度である場合、顔向き補正処理部４１は、顔領域の回転角度（faceRoll）が約±17.5度より大きいとき、ユーザの顔の向きが検出範囲の境界近傍であると判定する。同様に、顔のヨー方向についての顔探索結果情報の検出範囲が約±３５度である場合、顔向き補正処理部４１は、顔領域の回転角度（faceYaw）が約±30.6度より大きいとき、ユーザの顔の向きが検出範囲の境界近傍であると判定する。このように、顔向き補正処理部４１は、ユーザの顔の向きが、顔のロール方向およびヨー方向について、それぞれの顔探索結果情報の検出範囲の境界近傍であるか否かを判定する。また、ピッチ方向についても、顔探索結果情報が取得可能な場合、同様の処理で検出範囲の境界近傍であるか否かを判定することができる。
【０１３７】
なお、検出範囲の境界近傍について、このように検出範囲に対する割合で規定する他、角度により直接的に規定（例えば、検出範囲の境界から３度の範囲を境界近傍とするなど）してもよい。また、ユーザの顔の向きの検出範囲は、図６に示した範囲に限られるものではなく、使用する検出装置の性能（または、検出装置が使用する顔検出辞書）によって異なるものである。例えば、ロール方向に±４０度、ピッチ方向に±２０度、ヨー方向に±４５度の検出範囲で検出を行うことができる検出装置や、ロール方向に±９０度、ピッチ方向に±４５度、ヨー方向に±４５度の検出範囲で検出を行うことができる検出装置などがある。
【０１３８】
ステップＳ５２において、顔向き補正処理部４１が、顔領域内にあるユーザの顔の向きが検出範囲の境界近傍であると判定した場合、処理はステップＳ５３に進み、顔向き補正処理部４１は、顔領域の回転角度および顔領域の姿勢についての時間変動を算出する。
【０１３９】
例えば、顔向き補正処理部４１は、１フレーム前の処理において出力した顔領域の回転角度および顔領域の姿勢を記憶しており、その１フレーム前の値と、現在のフレームの差分値を、時間変動として算出する。即ち、顔領域の回転角度の時間変動difftgtは、現在の顔角度をtgtIntとし、１フレーム前の顔角度をtgtInt-1とすると、difftgt（＝｜tgtInt−tgtInt-1｜）で求められる。また、現在の顔領域の姿勢の時間変動diffposは、現在の顔角度をposIntとし、１フレーム前の顔角度をposInt-1とすると、diffpos（＝｜posInt−posInt-1｜）で求められる。
【０１４０】
ステップＳ５３の処理後、処理はステップＳ５４に進み、顔向き補正処理部４１は、ステップＳ５４で算出した時間変動どうしの差（＝｜difftgt−diffpos｜）が、所定の閾値より大か否かを判定する。
【０１４１】
ステップＳ５４において、顔向き補正処理部４１が、時間変動の差が所定の閾値より大であると判定した場合、処理はステップＳ５５に進み、顔向き補正処理部４１は、１フレーム前の顔角度（posInt-1）を出力し、顔向き補正処理は終了される。即ち、この場合、時間変動が大きくノイズが発生していると判断することができるので、アバタの顔の震えを回避するために、顔向き補正処理部４１は、そのような変動の大きな顔角度（posInt）に替えて、１フレーム前の顔角度（posInt-1）を出力する。
【０１４２】
一方、顔向き補正処理部４１が、ステップＳ５２で顔領域内にあるユーザの顔の向きが検出範囲の境界近傍でない（例えば、上述したように検出範囲の87.5％以内である）と判定した場合、または、ステップＳ５４で時間変動の差が所定の閾値より大でない（時間変動が所定の閾値以下である）と判定した場合、処理はステップＳ５６に進む。
【０１４３】
ステップＳ５６において、顔向き補正処理部４１は、現在のフレームの顔角度（posInt）を出力し、顔向き補正処理は終了される。即ち、この場合、ユーザの顔の向きが検出範囲の境界近傍ではないので正確な顔角度が検出されていると判断され、または、時間変動が小さくノイズが発生していないと判断されるので、顔向き補正処理部４１は、現在のフレームの顔角度（posInt）を出力する。
【０１４４】
以上のように、顔向き補正処理を行うことで、ユーザの顔の向きが検出領域の境界近傍であるときに、検出結果の値が不定期に変動することが回避される。これにより、検出領域の境界近傍において、アバタの顔が不自然に震えるようなことが回避され、アバタを、ユーザの顔の動きに正確に追従させることができる。
【０１４５】
なお、本実施の形態では、図１３で説明したような表情パラメータに従って、アバタの表情を合成しているが、アバタの表情を合成するためのパラメータとしては、これらの表情パラメータに加えて、さらの多くのパラメータを使用することができる。
【０１４６】
例えば、図１７には、表情合成に使用することができるパラメータの例が示されている。図１７に示すように、表情合成に使用することができるパラメータの種別には、感情パラメータ、パーツパラメータ、および口形素パラメータがある。
【０１４７】
感情パラメータには、属性判別部３４から出力される属性情報に含まれる笑顔スコアから求められる笑顔のパラメータ（笑い）の他、属性判別部３４を利用して求められる悲しみパラメータ、および怒りパラメータがある。
【０１４８】
パーツパラメータには、詳細パーツ検出部３５から出力される５５箇所のポイント（図５Ａ参照）を利用して求められるまばたきパラメータ、眉毛パラメータ、眼球パラメータ、および口開閉パラメータがある。
【０１４９】
口形素パラメータには、後述する図１８の口形素母音判別部６２から出力される母音判別スコアを利用して求められる口形素パラメータ「あ」、口形素パラメータ「い」、口形素パラメータ「う」、口形素パラメータ「え」、口形素パラメータ「お」、および口形素パラメータ「ん」がある。例えば、これらの口形素パラメータに基づいて、アバタの口形状を合成することで、ユーザの口の動きをより忠実にアバタに反映させることができる。
【０１５０】
ここで、図１８を参照して、口形素パラメータに基づいてアバタの口形状を合成する口形状合成処理について説明する。
【０１５１】
例えば、画像処理装置１１には、口形状を合成するための母音の基本口形状が記憶されている。即ち、図１８Ａに示すように、母音「あ」、母音「い」、母音「う」、母音「え」、母音「お」、および母音「ん」を発音する際の基本的な口の形状が記憶されている。なお、「ん」の発音には、「ｐ」の発音も含まれるものとする。
【０１５２】
そして、母音「あ」の口形素パラメータＷa、母音「い」の口形素パラメータＷi、母音「う」口形素パラメータＷu、母音「え」の口形素パラメータＷe、母音「お」の口形素パラメータＷo、および母音「ん」の口形素パラメータＷnを、それぞれの基本形状の重みとして口形状を合成することで、ユーザの口の動きをより忠実にアバタに反映させることができる。
【０１５３】
また、図１８Ｂに示すように、母音「え」を発音する際の基本形状は、母音「い」を発音する際の基本形状と、母音「あ」を発音する際の基本形状とを合成することにより形成することができる。また、母音「お」を発音する際の基本形状は、母音「う」を発音する際の基本形状と、母音「あ」を発音する際の基本形状とを合成することにより形成することができる。
【０１５４】
従って、母音「あ」の口形素パラメータＷa、母音「い」の口形素パラメータＷi、母音「う」の口形素パラメータＷu、および母音「ん」の口形素パラメータＷnを、それぞれの基本形状の重みとして口形状を合成することでも、図１８Ａの例と同様に、ユーザの口の動きをより忠実にアバタに反映させることができる。また、このような処理を行うことにより、口形状を合成する処理で使用するパラメータを少なくすることができ、処理を簡略化することができる。また、記憶すべき母音の基本形状を少なくすることができる。
【０１５５】
このような口形素パラメータは、例えば、詳細パーツ検出部３５により検出される口の輪郭を特定するポイントから求めるとともに、例えば、音声認識を利用して求めることができる。
【０１５６】
次に、図１９は、口形素パラメータに基づいてアバタの口形状を合成する口形状合成処理部の構成例を示すブロック図である。
【０１５７】
図１９の口形状合成処理部６１は、口形素母音判別部６２、音声認識母音判別部６３、口形素パラメータ決定部６４、口形状モデルデータベース６５、および口形状合成部６６を備えて構成される。
【０１５８】
口形素母音判別部６２には、詳細パーツ検出部３５が画像から検出したユーザの口の輪郭を特定するポイントが供給され、口形素母音判別部６２は、そのポイントから特定される口の形状を判別する。そして、口形素母音判別部６２は、ユーザの口の形状を、図１８に示したような母音「あ」、母音「い」、母音「う」、母音「え」、母音「お」、および母音「ん」の組み合わせで表現するときの、それぞれの母音の割合を示す母音判別スコアを口形素パラメータ決定部６４に供給する。
【０１５９】
音声認識母音判別部６３には、マイクなどの音声入力装置（図示せず）により入力された音声が供給され、音声認識母音判別部６３は、その音声に対する音声認識処理により、ユーザが発した母音を判別し、母音判別スコアを口形素パラメータ決定部６４に供給する。
【０１６０】
口形素パラメータ決定部６４は、口形素母音判別部６２からの母音判別スコアと、音声認識母音判別部６３からの母音判別スコアとの、例えば、平均値を、口形素パラメータとして求め、口形状合成部６６に供給する。なお、例えば、音声認識母音判別部６３が用いられない場合には、口形素母音判別部６２からの母音判別スコアが口形素パラメータとなる。
【０１６１】
口形状モデルデータベース６５には、図１８で説明したように、それぞれの母音ごとの基本口形状の三次元データが記憶されており、口形状合成部６６は、それらの基本口形状の三次元データの各頂点を、それぞれ対応する母音の口形素パラメータで重み付け加算して、口形状を合成する。
【０１６２】
このように、口形状合成処理部６１においてアバタの口形状を合成し、レンダリング部５３が、その口形状の三次元データをレンダリングすることで、アバタの口の形状を、ユーザの口の形状により近づけることができる。例えば、ユーザがしゃべる動作に従って、ユーザと同様の動作でしゃべるアバタを生成することができる。このようにアバタの口の形状をユーザに近づけることで、ユーザが、アバタとの一体感を感じるようになり、ディスプレイ１３に表示される画像により素直に感情移入することができる。
【０１６３】
また、画像処理装置１１では、図２０に示すパラメータを用いて処理を行うことができる。図２０には、画像処理装置１１で使用されるパラメータの例が示されている。
【０１６４】
モデル選択パラメータには、年齢パラメータ、性別パラメータ、人種パラメータがあり、その他のパラメータには、メガネ有無パラメータがあり、それぞれ属性判別部３４により判別される属性を利用して求められる。
【０１６５】
年齢パラメータは、画像に表示されている顔の年齢層（例えば、１０代、２０代、３０代・・・などの年齢の幅に応じて分類される層や、子供（０〜１０代）、大人（２０〜５０代）、老人（６０台以上）などのように大まかに分類される層など）を表すパラメータである。例えば、属性判別部３４は、画像に表示されている顔の属性を判別し、その顔が大人である度合い、子供である度合い、老人である度合いをそれぞれ数値化したスコアを出力し、それらのスコアに基づいて、年齢パラメータが決定される。そして、三次元データ管理部５１が、年齢パラメータに従った年齢層のアバタの三次元データをレンダリング部５３に供給することで、上述したような大人または子供により分けられたアバタよりも、よりユーザの年齢に近いアバタを表示することができる。
【０１６６】
性別パラメータは、画像に表示されている顔の性別（男性または女性）を表すパラメータである。
【０１６７】
人種パラメータは、画像に表示されている顔の人種（例えば、白人や、黒人、黄色人種など）を表すパラメータである。例えば、属性判別部３４は、画像に表示されている顔の属性を判別し、その顔の人種の度合いを数値化したスコアを出力し、そのスコアに基づいて、人種パラメータが決定される。そして、三次元データ管理部５１が、人種パラメータに従った人種のテクスチャおよび三次元データをレンダリング部５３に供給することで、よりユーザの顔に近いアバタを表示することができる。
【０１６８】
メガネ有無パラメータは、画像に表示されている顔にメガネが掛けられているか否かを表すパラメータである。例えば、属性判別部３４は、画像に表示されている顔にメガネが掛けられている度合いを数値化したスコアを出力し、それらのスコアに基づいて、メガネ有無パラメータが決定される。そして、三次元データ管理部５１は、メガネ有無パラメータがメガネが掛けられていることを表しているとき、メガネの三次元データをレンダリング部５３に供給することで、メガネを掛けたアバタを自動的に表示することができる。
【０１６９】
なお、本実施の形態では、ユーザの属性（子供、男性、女性）に従って、自動的にアバタのモデルを選択しているが、ユーザの顔認識を高精度に行うことで、ユーザ個人を特定することができる場合には、例えば、ユーザが予め登録しておいたアバタを、ユーザの顔に置き換えて表示することができる。このように、顔認識によりユーザ個人を特定することで、例えば、ユーザが、自分のアバタを指定するような手間を省くことができる。これにより、現実空間と仮想空間（ディスプレイ１３に表示される画像内の空間）とを、ユーザが、よりシームレスに感じるようになる。
【０１７０】
また、画像処理装置１１において判別されるユーザの属性は、上述した全てが含まれるものに限定されるのではなく、上述した属性のうちのいずれか１つが含まれていればよい。
【０１７１】
ところで、図１のパラメータ生成部１７では、各パラメータ算出部から算出されるパラメータに対してフィルタ処理部４２においてフィルタ処理が施されたパラメータが出力される。従って、例えば、各パラメータ算出部から算出されるパラメータに不安定な変動が含まれていたとしても、フィルタ処理部４２によりパラメータの不安定な変動が除去され、安定化されたパラメータが出力される。これにより、画像生成部１８が生成するアバタの挙動を滑らかに表現することができる。
【０１７２】
しかしながら、フィルタ処理部４２は、図７に示したような１段階のフィルタにより構成されているため、例えば、パラメータ生成部１７のパラメータ算出部における演算に誤差が発生し、パラメータ算出部から出力されるパラメータに急激な大きな変動が含まれた場合、その急激な大きな変動を完全に除去することは困難である。これに対し、例えば、多段階のフィルタで構成されたフィルタ処理部を使用することで、パラメータに含まれている急激な大きな変動を低減させることができる。ところが、多段階のフィルタで構成されたフィルタ処理部を使用した場合には、フィルタ処理に時間が掛かり、例えば、ユーザの挙動に対する画像生成部１８が生成するアバタの挙動にディレイが発生してしまう。
【０１７３】
そこで、パラメータ生成部１７のパラメータ算出部における演算に誤差が発生し、パラメータ算出部から出力されるパラメータに急激な大きな変動が含まれた場合でも、その誤差による影響を排除することができるとともに、アバタの挙動にディレイが発生することのないフィルタ処理が要求される。
【０１７４】
まず、図２１を参照として、パラメータ生成部１７において要求されるフィルタ処理の基本的な概念について説明する。なお、パラメータ生成部１７の各パラメータ算出部（即ち、顔向きパラメータ算出部４３、顔位置パラメータ算出部４４、目閉率パラメータ算出部４５、口開率パラメータ算出部４６、および笑顔パラメータ算出部４７）から出力されるパラメータは、顔認識部１５による検出結果に基づいて、ユーザの顔の状態（顔の向き、顔の位置、目の開閉率、口の開閉率、笑顔の度合い）を推定した推定結果であり、以下、適宜、フィルタ処理における処理の対象となるパラメータを、状態推定結果値とも称する。
【０１７５】
図２１には、３種類の正規分布が示されている。図２１において、横軸は状態推定結果の値を表し、縦軸は確率を表している。
【０１７６】
正規分布曲線ｆ（ｘ）は、フィルタ処理の対象となる状態推定結果値ｕfを中心とした過去の状態推定結果値の誤差分布を表している。正規分布曲線ｒ（ｘ）は、状態推定結果値ｕfを処理の対象としたときのフィルタ処理の出力値を、直前までのフィルタ処理の結果から予測した出力予測値ｕrを中心とした、その予測出力値ｕrの尤度分布を表している。正規分布曲線ｆ（ｘ）および正規分布曲線ｒ（ｘ）は、正規分布曲線ｆ（ｘ）の標準偏差σf、および正規分布曲線ｒ（ｘ）の標準偏差σrを用いて、次の式（４）により表される。
【０１７７】
【数４】
0005423379.tif 000005
・・・（４）
【０１７８】
また、正規分布曲線ｐ（ｘ）は、正規分布曲線ｆ（ｘ）と正規分布曲線ｒ（ｘ）との積算により求められる正規分布であり、次の式（５）で表される。
【０１７９】
【数５】
0005423379.tif 000006
・・・（５）
【０１８０】
そして、状態推定結果値ｘを変数として式（５）を整理すると、正規分布曲線ｐ（ｘ）は、次の式（６）で表される。
【０１８１】
【数６】
0005423379.tif 000007
・・・（６）
【０１８２】
但し、式（６）において、ｕpは正規分布曲線ｐ（ｘ）の期待値であり、フィルタ処理において出力される出力値となる。また、σpは正規分布曲線ｐ（ｘ）の標準偏差であり、定数ＫOは正規化項（定数）である。そして、出力値ｕpおよび標準偏差σpは、次の式（７）で表される。
【０１８３】
【数７】
0005423379.tif 000008
・・・（７）
【０１８４】
次の式（７）に示すように、フィルタの出力値ｕpは、正規分布曲線ｆ（ｘ）により表される誤差分布の分散（＝σf2）と、正規分布曲線ｒ（ｘ）により表される尤度分布の分散（＝σr2）との比で表される。
【０１８５】
そこで、例えば、フィルタ処理の対象となる状態推定結果値ｕfの信頼度を評価し、その評価を誤差分布の分散σf2と尤度分布の分散σr2とに反映させることで、状態推定結果値ｕfの信頼度に応じて状態推定結果値ｕfと出力予測値ｕrとの間の値を適応的に出力するフィルタ処理を実現することができる。
【０１８６】
なお、誤差分布の分散σf2と尤度分布の分散σr2との比は、相対的な値であるので、状態推定結果値ｕfの信頼性の評価を、いずれか一方に反映させればよく、本実施の形態では、誤差分布の分散σf2を、フィルタ処理の対象となる状態推定結果値ｕfの信頼性に応じて変動させるとともに、尤度分布の分散σr2を固定させて（予め設定された固定値を使用して）行われる処理について説明する。
【０１８７】
ここで、図２２に、誤差分布の分散σf2の変化と、フィルタの出力値ｕpの変化との関係の一例を示す。
【０１８８】
図２２には、尤度分布の分散σr2を固定（σr＝0.20）させ、誤差分布の分散σf2を変化（σf＝0.20,0.40,0.05）させたときの正規分布曲線ｆ（ｘ）、正規分布曲線ｒ（ｘ）、および正規分布曲線ｐ（ｘ）が示されている。図２２に示すように、誤差分布の分散σf2の値が大きければ、出力値ｕpは出力予測値ｕrに近い値になり、誤差分布の分散σf2の値が小さければ、出力値ｕpは状態推定結果値ｕfに近い値になる。このように、誤差分布の分散σf2の変化させることにより、フィルタ処理の出力値ｕpを適応的に変化させることができる。
【０１８９】
次に、誤差分布の分散σf2を設定する方法について説明する。
【０１９０】
正規分布曲線ｆ（ｘ）により表される誤差分布は、フィルタ処理の対象となる状態推定結果値ｕfの信頼度を表す指標となる。従って、上述したように誤差分布の分散σf2と尤度分布の分散σr2との比によりフィルタ処理の出力値ｕpを決定するという処理を考慮すると、状態推定結果値ｕfの信頼度が低い場合には誤差分布の分散σf2を大きな値とし、状態推定結果値ｕfの信頼度が高い場合には誤差分布の分散σf2を小さな値とすることで、有効なフィルタ処理を行うことができる。
【０１９１】
このような状態推定結果値ｕfの信頼度に応じて誤差分布の分散σf2を変化させる処理を行うためには、状態推定結果値ｕfの信頼度を評価する必要がある。状態推定結果値ｕfの信頼度を評価する手法には、例えば、フィルタ処理による過去の出力値の履歴をサンプルとして、そのサンプルのバラツキを用いる手法がある。このような手法では、長時間にわたりバラツキの小さな値、即ち、一定値を保つ性質を持つ値が利用される。
【０１９２】
例えば、状態推定結果値において、長時間にわたって一定値を保つ性質を持つ値として、状態推定結果値の加速度成分（二次微分値）を利用することができる。なお、局所的な期間を対象にすれば、一定値を保つ性質を持つ値として、速度成分を利用することも考えられるが、状態推定結果値の速度成分は、長時間にわたって徐々に変化する性質がある。
【０１９３】
図２３を参照して、状態推定結果値の加速度成分の分布と、状態推定結果値の速度成分の分布とを比較する。図２３では、算出された加速度成分および速度成分がそれぞれ丸印（○）で示されており、それらの分布が曲線で示されている。
【０１９４】
図２３Ａに示すように、状態推定結果値の加速度成分は、０．０を中心として前後に同じ程度にバラツキを有する分布となり、長時間にわたり一定の値を保つ性質であることが分かる。これに対し、図２３Ｂに示すように、状態推定結果値の速度成分は、所定の値を中心としたバラツキを有する分布とはならず、長時間にわたって一定の値を保つ性質でないことが分かる。従って、状態推定結果値の加速度成分を、信頼度の評価に利用することで、安定的な結果を得ることができる。
【０１９５】
例えば、時刻ｔの状態推定結果値ｕf（ｔ）の加速度成分acc（ｔ）は、時刻ｔ−１の出力値ｕp（ｔ−１）および時刻ｔ−２の出力値ｕp（ｔ−２）から、次の式（８）に示すように算出することができる。
【０１９６】
【数８】
0005423379.tif 000009
・・・（８）
【０１９７】
そして、時刻ｔの状態推定結果値ｕf（ｔ）の加速度成分acc（ｔ）の分散値var（ｔ）は、時刻ｔ−１までの加速度成分acc（ｔ）から、次の式（９）で求められる。
【０１９８】
【数９】
0005423379.tif 000010
・・・（９）
【０１９９】
式（８）および式（９）から分かるように、状態推定結果値の加速度成分の分散値var（ｔ）は、フィルタの過去の出力値により更新される。
【０２００】
このように過去のフィルタの出力値により更新される状態推定結果値の加速度成分の分散値var（ｔ）と、時刻ｔでの状態推定結果値の加速度成分acc（ｔ）を利用してマハラノビス距離を算出し、その２乗値を時刻ｔでの誤差分布の分散σf2とする。即ち、時刻ｔでの誤差分布の分散σf2（ｔ）は、次の式（１０）で求められる。
【０２０１】
【数１０】
0005423379.tif 000011
・・・（１０）
【０２０２】
このように、処理対象の時刻ｔでの状態推定結果値ｕf（ｔ）のフィルタ処理で用いられる誤差分布の分散σf2（ｔ）が求められる。なお、上述したように、誤差分布の分散σf2と尤度分布の分散σr2との比は、相対的な値であるので、尤度分布の分散σr2には固定値を用いる。
【０２０３】
また、上述の式（７）に示したように、フィルタの出力値ｕpを求めるには、予測出力値ｕrを求める必要がある。次に、予測出力値ｕrを求める方法について説明する。
【０２０４】
予測出力値ｕrは、状態推定結果値ｕfを処理の対象としたときのフィルタ処理の出力値を、直前までのフィルタ処理の結果から予測した値である。このような予測を行うには、運動モデルを仮定する必要があり、本実施の形態では、顔の変化状態が連続的な性質を示す場合が多いことを利用して、等速運動モデルを採用する。なお、状態推定結果値ｕfによっては、即ち、パラメータ生成部１７において算出されるパラメータの種類によっては、等加速度運動（顔向き変化での速度変化への対応）などを利用することができ、予測出力値ｕrを求める運動モデルは、必要に応じて適宜使い分けることができる。
【０２０５】
等速運度モデルを用いた予測では、フィルタ処理における直前の出力値と直前の加速度値とを用いて現在の出力値が予測され、時刻ｔでの予測出力値ｕr（ｔ）は、次の式（１１）により求められる。
【０２０６】
【数１１】
0005423379.tif 000012
・・・（１１）
【０２０７】
式（１１）に示すように、時刻ｔの予測出力値ｕr（ｔ）の算出には、フィルタの過去（時刻ｔ−１および時刻ｔ−２）の出力値ｕp（ｔ−１）および出力値ｕp（ｔ−２）が利用される。
【０２０８】
以上のように、正規分布曲線ｆ（ｘ）により表される誤差分布の分散（＝σf2）、正規分布曲線ｒ（ｘ）により表される尤度分布の分散（＝σr2）、および、直前までのフィルタ処理の結果から予測した出力予測値ｕrが求められる。そして、上述の式（７）を演算することで、正規分布曲線ｐ（ｘ）の期待値、即ち、フィルタの出力値ｕpを算出することができる。
【０２０９】
次に、図２４は、フィルタ処理部のブロック図である。
【０２１０】
図２４において、フィルタ処理部７１は、制御部７２、加速度算出部７３、加速度分散値更新部７４、マハラノビス距離算出部７５、記憶部７６、予測部７７、保持部７８、フィルタ演算部７９を備えて構成される。なお、フィルタ処理部７１は、図１のフィルタ処理部４２に替えて使用される。
【０２１１】
制御部７２には、図１のパラメータ生成部１７の各パラメータ算出部から算出されるパラメータ、即ち、状態推定結果値ｕfが入力される。制御部７２は、加速度算出部７３およびフィルタ演算部７９への状態推定結果値ｕfの供給の制御など、フィルタ処理部７１の各部を制御する。なお、以下では、時刻ｔにおける処理、即ち、状態推定結果値ｕf（ｔ）を処理対象としたフィルタ処理について説明する。
【０２１２】
加速度算出部７３は、制御部７２から状態推定結果値ｕf（ｔ）が供給されるとともに、保持部７８から時刻ｔ−１の出力値ｕp（ｔ−１）および時刻ｔ−２の出力値ｕp（ｔ−２）が供給される。そして、加速度算出部７３は、上述の式（８）を演算することで、状態推定結果値ｕf（ｔ）の加速度成分acc（ｔ）を求め、加速度分散値更新部７４およびマハラノビス距離算出部７５に供給する。
【０２１３】
加速度分散値更新部７４は、加速度算出部７３から状態推定結果値ｕf（ｔ）の加速度成分acc（ｔ）が供給されると、上述の式（９）を演算することで、状態推定結果値の加速度成分の分散値var（ｔ）を求め、マハラノビス距離算出部７５に供給する。
【０２１４】
マハラノビス距離算出部７５は、加速度算出部７３からの加速度成分acc（ｔ）と、加速度分散値更新部７４からの加速度成分の分散値var（ｔ）とから、誤差分布の分散σf2を算出（上述の式（１０）参照）し、フィルタ演算部７９に供給する。
【０２１５】
記憶部７６には、固定値である尤度分布の分散σr2が記憶されており、フィルタ演算部７９により尤度分布の分散σr2が記憶部７６から読み出される。
【０２１６】
予測部７７には、フィルタ処理部７１から出力される出力値ｕpが供給され、予測部７７は、時刻ｔ−１の出力値ｕp（ｔ−１）、および時刻ｔ−２の出力値ｕp（ｔ−２）を用いて、上述の式（１１）を演算することで、予測出力値ｕr（ｔ）を求め、フィルタ処理部７１に供給する。
【０２１７】
保持部７８には、フィルタ処理部７１から出力される出力値ｕpが供給され、保持部７８は、出力値ｕpを保持し、出力値ｕp（ｔ−１）および出力値ｕp（ｔ−２）を加速度算出部７３に供給する。
【０２１８】
フィルタ演算部７９は、制御部７２を介して供給される状態推定結果値ｕf（ｔ）、マハラノビス距離算出部７５から供給される誤差分布の分散σf2（ｔ）、記憶部７６から読み出した尤度分布の分散σr2、および予測部７７から供給される予測出力値ｕr（ｔ）に基づいて、上述の式（７）を演算する。これにより、フィルタ演算部７９は、出力値ｕp（ｔ）を求めて出力する。
【０２１９】
ところで、フィルタ処理部７１では、ある程度の加速度成分acc（サンプル）が蓄積されないと、状態推定結果値ｕfの信頼度を評価することができないため、制御部７２は、所定数以上の加速度成分accが蓄積された後、フィルタ演算部７９による演算結果が出力されるような制御を行う。
【０２２０】
図２５のフローチャートを参照して、フィルタ処理部７１におけるフィルタ処理について説明する。なお、フィルタ処理部７１のフィルタ処理は、図１４のステップＳ２２の処理として実行することができる。例えば、図１４のステップＳ２１の処理で、パラメータ生成部１７の各パラメータ算出部からパラメータ、即ち、状態推定結果値ｕf（ｔ）がフィルタ処理部７１に供給されると処理が開始される。
【０２２１】
ステップＳ７１において、制御部７２は、供給された状態推定結果値ｕf（ｔ）が、フィルタ処理の新規の対象であるか否かを判定する。
【０２２２】
画像処理装置１１では、画像に写されたユーザの顔ごとに処理が行われ、制御部７２は、既にフィルタ処理の実行中の顔に対応付けられた状態推定結果値ｕf（ｔ）が供給された場合には、フィルタ処理の新規の対象でないと判定する。一方、制御部７２は、フィルタ処理の実行中の顔には対応付けられていない状態推定結果値ｕf（ｔ）が供給された場合、即ち、顔の状態の推定が行われて１回目に算出された状態推定結果値ｕf（ｔ）である場合（即ち、この場合、ｔ＝０）には、供給された状態推定結果値ｕf（ｔ）が、フィルタ処理の新規の対象であると判定する。
【０２２３】
ステップＳ７１において、制御部７２がフィルタ処理の新規の対象であると判定した場合、処理はステップＳ７２に進み、制御部７２は、フィルタ処理部７１の各部の初期化を行う。例えば、制御部７２は、加速度分散値更新部７４、予測部７７、フィルタ演算部７９が処理に用いる内部変数（分散値var、予測出力値ｕr、出力値ｕp）に初期値としての０をセットする。
【０２２４】
一方、ステップＳ７１において、制御部７２がフィルタ処理の新規の対象でないと判定した場合、処理はステップＳ７３に進み、制御部７２は、状態推定結果値ｕf（ｔ）を加速度算出部７３に供給する。また、加速度算出部７３には、保持部７８から時刻ｔ−１の出力値ｕp（ｔ−１）および時刻ｔ−２の出力値ｕp（ｔ−２）が供給される。そして、加速度算出部７３は、状態推定結果値ｕf（ｔ）、出力値ｕp（ｔ−１）、および出力値ｕp（ｔ−２）を用いて上述の式（８）を演算することで、状態推定結果値ｕf（ｔ）の加速度成分acc（ｔ）を求め、加速度分散値更新部７４に供給する。
【０２２５】
ステップＳ７３の処理後、処理はステップＳ７４において、加速度分散値更新部７４は、ステップＳ７３で加速度算出部７３から供給された加速度成分acc（ｔ）を用いて、上述の式（９）を演算することで、状態推定結果値の加速度成分の分散値var（ｔ）を求め、処理はステップＳ７５に進む。
【０２２６】
ステップＳ７５において、制御部７２は、加速度成分acc（ｔ）を十分に蓄積したか否か、即ち、ステップＳ７４で算出した分散値var（ｔ）は、状態推定結果値ｕfの信頼度を評価することができる程度の加速度成分acc（ｔ）の個数から求められたものであるか否かを判定する。即ち、状態推定結果値ｕfの信頼度を評価するためには、ある程度の個数の加速度成分acc（ｔ）から求められた分散値var（ｔ）が必要であり、制御部７２には、その個数が閾値（例えば、２０個）として予め設定されている。従って、制御部７２は、加速度分散値更新部７４が分散値var（ｔ）を求めるのに用いた加速度成分acc（ｔ）の個数が閾値以上であれば、加速度成分acc（ｔ）を十分に蓄積したと判定する。一方、制御部７２は、加速度分散値更新部７４分散値var（ｔ）を求めるのに用いた加速度成分acc（ｔ）の個数が閾値未満であれば、加速度成分acc（ｔ）を十分に蓄積していないと判定する。
【０２２７】
なお、ステップＳ７３の処理で保持部７８から供給される時刻ｔ−２の出力値ｕp（ｔ−２）を用いるため、ステップＳ７３乃至Ｓ７５の処理は、ステップＳ７１で新規の対象と判定されてから２フレーム後（即ち、出力値ｕp（ｔ−２）が出力された後）の画像を対象として処理が行われ、ステップＳ７１で新規の対象と判定されてから２フレームが出力されるまでは、ステップＳ７３乃至Ｓ７５をスキップしてステップＳ７６が行われる。
【０２２８】
ステップＳ７２の処理後、または、ステップＳ７５で制御部７２が加速度成分acc（ｔ）を十分に蓄積していないと判定した場合、処理はステップＳ７６に進む。ステップＳ７６において、制御部７２は、出力値ｕp（ｔ）として、供給された状態推定結果値ｕf（ｔ）をそのまま出力するとともに、出力値ｕp（ｔ）を予測部７７および保持部７８に供給する。即ち、この場合、状態推定結果値ｕfの信頼度を正確に評価することができないため、フィルタ処理部７１において出力値ｕpの算出は行われない。ステップＳ７６の処理後、フィルタ処理は終了し、次のフレームを対象とした処理が行われる。
【０２２９】
一方、ステップＳ７５において、制御部７２が加速度成分acc（ｔ）を十分に蓄積したと判定した場合、処理はステップＳ７７に進む。ステップＳ７７において、制御部７２は、ステップＳ７３で算出された加速度成分acc（ｔ）およびステップＳ７４で算出された分散値var（ｔ）をマハラノビス距離算出部７５に供給するように、加速度算出部７３および加速度分散値更新部７４を制御する。そして、マハラノビス距離算出部７５は、加速度成分acc（ｔ）および分散値var（ｔ）から誤差分布の分散σf2を算出し、フィルタ演算部７９に供給して、処理はステップＳ７８に進む。
【０２３０】
ステップＳ７８において、予測部７７は、時刻ｔ−１の出力値ｕp（ｔ−１）、および時刻ｔ−２の出力値ｕp（ｔ−２）を用いて、上述の式（１１）を演算することで、予測出力値ｕrを求め、フィルタ処理部７１に供給する。
【０２３１】
ステップＳ７８の処理後、処理はステップＳ７９に進み、制御部７２は状態推定結果値ｕf（ｔ）をフィルタ演算部７９に供給し、フィルタ演算部７９は記憶部７６から尤度分布の分散σr2を読み出す。そして、フィルタ演算部７９は、状態推定結果値ｕf（ｔ）、尤度分布の分散σr2、ステップＳ７７で供給された誤差分布の分散σf2、およびステップＳ７８で供給された予測出力値ｕrに基づいて、上述の式（７）を演算して出力値ｕp（ｔ）を求めて出力し、フィルタ処理は終了する。
【０２３２】
以上のように、フィルタ処理部７１では、パラメータ生成部１７のパラメータ算出部における演算に誤差が発生し、パラメータ算出部から出力されるパラメータ（状態推定結果値）に急激な大きな変動が含まれたとしても、その変動を抑制することができる。即ち、そのように変動するパラメータは信頼度（分散σf2）が低いので、フィルタ処理部７１は、予測出力値を出力することで、演算誤差などによる変動を抑制することができる。これにより、ロバスト性の高い安定的なフィルタ処理を施すことができる。また、上述したように、多段階のフィルタで構成されたフィルタ処理部を使用した場合に発生するようなディレイも防止することができる。
【０２３３】
また、フィルタ処理部７１においてフィルタ処理が施されたパラメータを使用して画像生成部１８がアバタを生成することにより、ユーザの顔の状態変化に対して高い追従性を有するとともに、パラメータの演算誤差などにより発生するアバタの震え（パラメータの不安定な変動）を抑制し、より自然でスムーズなアバタの動きを表現することができる。
【０２３４】
なお、上述のフィルタ処理についての説明では、１つのパラメータに対して処理が行われているが、パラメータ生成部１７の各パラメータ算出部から算出される複数のパラメータに対して、状態ベクトルと共分散行列とを利用することにより、それらのパラメータを統合的に用いることができる。即ち、状態ベクトルを利用することで、各状態（パラメータ）間の相互作用効果が得られるため、よりロバスト性の高いフィルタ処理を実現することができる。
【０２３５】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２３６】
図２６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０２３７】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３は、バス１０４により相互に接続されている。
【０２３８】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、キーボード、マウス、マイクロホンなどよりなる入力部１０６、ディスプレイ、スピーカなどよりなる出力部１０７、ハードディスクや不揮発性のメモリなどよりなる記憶部１０８、ネットワークインタフェースなどよりなる通信部１０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１１１を駆動するドライブ１１０が接続されている。
【０２３９】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５及びバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【０２４０】
コンピュータ（CPU１０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア１１１に記録して、あるいは、ローカルエリアネットワーク、インタネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０２４１】
そして、プログラムは、リムーバブルメディア１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【０２４２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。また、プログラムは、１のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
【０２４３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明
の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２４４】
１１  画像処理装置，  １２  カメラ，  １３  ディスプレイ，  １４  カメラ入力部，  １５  顔認識部，  １６  モデル選択部，  １７  パラメータ生成部，  １８  画像生成部，  ２１  カメラ制御部，  ２２  デコード部，  ３１  顔認識制御部，  ３２  顔検出処理部，  ３３  パーツ検出部，  ３４  属性判別部，  ３５  詳細パーツ検出部，  ４１  顔向き補正処理部，  ４２  フィルタ処理部，  ４３  顔向きパラメータ算出部，  ４４  顔位置パラメータ算出部，  ４５  目閉率パラメータ算出部，  ４６  口開率パラメータ算出部，  ４７  笑顔パラメータ算出部，  ５１  三次元データ管理部，  ５２  シェーダ管理部，  ５３  レンダリング部，  ５４  合成処理部，  ６１  口形状合成処理部，  ６２  口形素母音判別部，  ６３  音声認識母音判別部，  ６４  口形素パラメータ決定部，  ６５  口形状モデルデータベース，  ６６  口形状合成部，  ７１  フィルタ処理部，  ７２  制御部，  ７３  加速度算出部，  ７４  加速度分散値更新部，  ７５  マハラノビス距離算出部，  ７６  記憶部，  ７７  予測部，  ７８  保持部，  ７９  フィルタ演算部
【図１】
0005423379.tif 000013
【図２】
0005423379.tif 000014
【図３】
0005423379.tif 000015
【図４】
0005423379.tif 000016
【図５】
0005423379.tif 000017
【図６】
0005423379.tif 000018
【図７】
0005423379.tif 000019
【図８】
0005423379.tif 000020
【図９】
0005423379.tif 000021
【図１０】
0005423379.tif 000022
【図１１】
0005423379.tif 000023
【図１２】
0005423379.tif 000024
【図１３】
0005423379.tif 000025
【図１４】
0005423379.tif 000026
【図１５】
0005423379.tif 000027
【図１６】
0005423379.tif 000028
【図１７】
0005423379.tif 000029
【図１８】
0005423379.tif 000030
【図１９】
0005423379.tif 000031
【図２０】
0005423379.tif 000032
【図２１】
0005423379.tif 000033
【図２２】
0005423379.tif 000034
【図２３】
0005423379.tif 000035
【図２４】
0005423379.tif 000036
【図２５】
0005423379.tif 000037
【図２６】
0005423379.tif 000038