画像処理装置、画像処理方法および画像処理プログラム
【課題】顔毎の形状等の特徴の違いをより正確に捉えた上で変形処理を行なうことが望まれていた。
【解決手段】注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出部と、上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定部と、上記設定された対象領域内の画像の変形を行う変形処理部とを備える構成とした。また、上記注目画像としての動画を構成するフレーム画像毎に、上記輪郭点の検出と対象領域の設定と画像の変形とを行なう。
【解決手段】注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出部と、上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定部と、上記設定された対象領域内の画像の変形を行う変形処理部とを備える構成とした。また、上記注目画像としての動画を構成するフレーム画像毎に、上記輪郭点の検出と対象領域の設定と画像の変形とを行なう。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
顔画像を変形する技術として、対象画像から顔の少なくとも一部を含む矩形領域(顔領域)を検出し、顔領域に基づいて変形領域を設定し、変形領域内を分割して生成した各小領域を変形することにより変形領域内の画像の変形を行なう画像処理装置が知られている(特許文献1参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009‐104672号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記文献においては、矩形として検出される顔領域の位置および大きさに基づいて変形領域を設定することにより、画像内の顔毎の変形(小顔化など)を行なっていた。
ここで、人顔は、面長の顔や丸顔など様々な形状をしており、更に性別、年齢などによっても違いがある。そのため、顔毎に自然かつ効果的な或いはユーザーが望む態様での画像変形結果を得るには、顔毎の形状等の違いをより正確に捉えた上で変形処理を行なうことが望ましい。
【0005】
また、左右上下にいくらか振れている顔画像(顔の向きが正面向きではない顔画像)についても、自然かつ効果的な或いはユーザーが望む態様での変形結果を得ることが望まれている。さらに、動画内では顔の向きや大きさ等は随時変化し得るものである。動画においては、顔の変形結果の質が動画を構成するコマ(フレーム画像)毎に大きく異なってしまうと、コマ間の繋がりを欠いてしまい、ユーザーの視聴に堪えられないものとなってしまう。
【0006】
本発明は上記課題の少なくとも一つを解決するためになされたものであり、画像における顔毎の特徴に応じて、顔毎に自然かつ効果的な或いはユーザーが望む態様での変形を行なうことができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の態様の一つは、画像処理装置であって、注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出部と、上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定部と、上記設定された対象領域内の画像の変形を行う変形処理部とを備える。
本発明によれば、変形処理の対象となる画像領域は、顔の細かな形状(輪郭)を正確に反映した領域となるため、その顔にとって最適な(自然かつ効果的な)変形結果を得ることができる。
【0008】
画像処理装置は、上記注目画像としての動画を構成するフレーム画像毎に、上記輪郭点の検出と対象領域の設定と画像の変形とを行なうとしてもよい。当該構成によれば、動画再生の際に、フレーム画像毎に顔の正確な形状に基づいた変形が行なわれるため、ユーザーは適切に変形された顔を含む動画を快適に視聴できる。
【0009】
上記検出部は、複数の特徴量に基づいて顔の輪郭を複数の特徴点の位置によって表現する形状モデルにおける特徴点の位置が、顔の輪郭に近づくように、当該特徴量を変更し、当該変更により補正された特徴点の位置を上記輪郭点の位置として検出するとしてもよい。当該構成によれば、各特徴量を変更することにより特徴点の位置を高い精度で顔の輪郭に一致にさせることができるため、上記輪郭点の位置を容易かつ正確に検出できる。
【0010】
上記検出部は、顔の向きの変化に対応する特徴量を変更することにより、向きが変更された顔の輪郭を表現する位置に特徴点を設定するとともに、上記領域設定部は、当該特徴点の設定に追従して上記対象領域の設定を行なうとしてもよい。当該構成によれば、例えば、注目画像から正面向きの顔の輪郭点が検出された場合、当該正面向きの顔の向きを変化させたときの顔についての変形結果を得ることができる。
【0011】
上記変形処理部は、上記顔の向きの変化の程度に応じて、画像の変形量を異ならせるとしてもよい。当該構成によれば、顔の向きの変化の程度に応じた最適な変形結果を得ることができる。
上記変形処理部は、上記顔の向きが変化する方向に略直交する方向にのみ変形させる所定箇所の画像に対する変形量は、上記顔の向きの変化の程度にかかわらず一定とする。当該構成によれば、例えば、正面を向く顔を左右に回転させたときの顔についての変形結果において、顎の先端部位に対する上下方向の変形量は、正面を向く顔であった場合の変形量と同じであるため、ユーザーは違和感の無い変形結果(例えば、動画)を見ることができる。
【0012】
上記領域設定部は、上記検出された輪郭点に囲まれた領域内に基準点を設定し、当該基準点と各輪郭点とを結ぶ各線分を各輪郭点よりも外側へ所定距離延長した位置に各外枠点を設定し、当該各外枠点によって囲まれた領域を上記対象領域としてもよい。当該構成によれば、検出された輪郭を一回り大きくした範囲が対象領域となるため、その顔の形状にとって最適な変形結果を得ることができる。
【0013】
画像処理装置は、上記顔の属性を判定する属性判定部を備え、上記変形処理部は、上記判定された顔の属性に応じて異なる変形を行なうとしてもよい。当該構成によれば、注目画像に含まれる顔の属性(例えば、性別や年齢など)に応じて変形量を最適化した変形処理を行なうことができるため、より一層、自然且つ効果的な顔画像の変形結果が得られる。
【0014】
画像処理装置は、個人の顔別の変形態様を外部からの入力に従って登録する登録部と、上記注目画像に含まれる顔の個人識別を行なう識別部とを備え、上記変形処理部は、上記識別部によって識別された顔に対応する変形態様が上記登録部によって登録されている場合には、当該識別された顔を含んで設定されている対象領域の画像に、当該識別された顔に対応する変形態様による変形を施すとしてもよい。当該構成によれば、変形処理のタイプ(例えば、小顔化、シャープ化、有名人化など)や変形量などを含む変形態様を、個人の顔毎に好みの内容で登録しておくことができる。その結果、個人の顔の輪郭の違いに基づいた変形であって更にユーザーが好む態様による変形結果を、顔毎に得ることができる。
【0015】
本発明の技術的思想は、画像処理装置以外によっても実現可能である。例えば、画像処理装置の各部が実行する処理工程を有する画像処理方法の発明や、画像処理装置の各部が実行する機能をコンピューターに実行させるコンピューター読取可能な画像処理プログラムの発明をも把握可能である。
【図面の簡単な説明】
【0016】
【図1】画像処理装置としてのプリンターの構成を概略的に示す説明図である。
【図2】AAM設定処理を示すフローチャートである。
【図3】サンプル画像SIの一例を示す説明図である。
【図4】サンプル画像SIにおける特徴点CPの設定方法の一例を示す説明図である。
【図5】サンプル画像SIに設定された特徴点CPの座標の一例を示す説明図である。
【図6】平均形状s0の一例を示す説明図である。
【図7】形状ベクトルsiおよび形状パラメーターpiと顔の形状sとの関係を例示した説明図である。
【図8】サンプル画像SIのワープWの方法の一例を示す説明図である。
【図9】平均顔画像A0(x)の一例を示す説明図である。
【図10】画像変形処理を示すフローチャートである。
【図11】注目画像OIにおける顔領域FAの検出結果の一例を示す説明図である。
【図12】特徴点CPの初期位置設定処理(Init処理)を示すフローチャートである。
【図13】グローバルパラメーターの値を変更することによる特徴点CPの仮設定位置の一例を示す説明図である。
【図14】平均形状画像I(W(x;p))の一例を示す説明図である。
【図15】特徴点CP設定位置補正処理(Fit処理)を示すフローチャートである。
【図16】輪郭点検出処理の結果の一例を示す説明図である。
【図17】変形領域CAの設定処理を示すフローチャートである。
【図18】輪郭点OPの周囲に設定された変形領域CAの一例を示す図である。
【図19】変形領域CA内の画像に対する変形処理を示すフローチャートである。
【図20】特徴点CPの中から選択された選択特徴点SCP等の一例を示す図である。
【図21】特徴点移動テーブルの一例を示す図である。
【図22】変形領域CA内の画像が変形される様子の一例を示す図である。
【図23】横顔変形処理を示すフローチャートである。
【図24】顔の形状sの向きの変更に応じた移動量の補正を説明する図である。
【図25】動画変形処理を示すフローチャートである。
【図26】テクスチャー検出処理を示すフローチャートである。
【図27】年齢層判定処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施例を図面を参照しながら説明する。
1.第1実施例
1‐1.画像処理装置の構成
図1は、本実施形態にかかる画像処理装置としてのプリンター100の構成を概略的に示す説明図である。またプリンター100は、本発明の画像処理方法を実行する装置である。プリンター100は、メモリーカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したインクジェット式カラープリンターである。プリンター100は、プリンター100の各部を制御するCPU110と、ROMやRAMによって構成された内部メモリー120と、ボタンやタッチパネルにより構成された操作部140と、液晶ディスプレイにより構成された表示部150と、印刷機構160と、カードインターフェイス(カードI/F)170と、を備えている。プリンター100は、さらに、他の機器(例えばデジタルスチルカメラやコンピューター300)とのデータ通信を行うためのインターフェイス(I/F)180を備える。プリンター100の各構成要素は、バスを介して双方向通信可能に接続されている。
【0018】
印刷機構160は、印刷データに基づき印刷を行う。カードインターフェイス170は、カードスロット172に挿入されたメモリーカードMCとの間でデータのやり取りを行うためのインターフェイスである。なお、本実施例では、メモリーカードMCに画像データを含む画像ファイルが格納されている。
【0019】
内部メモリー120には、画像処理部200と、表示処理部310と、印刷処理部320と、が格納されている。画像処理部200は、コンピュータープログラムであり、所定のオペレーティングシステムの下で、CPU110により実行されることで画像変形処理を実現する。画像変形処理では、まず、注目画像に含まれる顔画像における所定の特徴部位(例えば、目尻や鼻頭やフェイスライン)の座標位置を検出し、当該検出結果の一部を顔の輪郭に対応する輪郭点として取得する。そして、取得された輪郭点に基づいて定義した領域の画像を対象として変形処理を行なう。画像変形処理については後に詳述する。表示処理部310、および、印刷処理部320についてもCPU110により実行されることでぞれぞれの機能を実現する。
【0020】
画像処理部200は、画像変形処理を実現するためのプログラムモジュールとして、顔領域検出部210と、輪郭点検出部220と、領域設定部230と、変形処理部240と、属性判定部250と、登録部260と、識別部270と、を含んでいる。これら各部の機能についても後述する。
【0021】
表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージ、画像等を表示させるディスプレイドライバーである。印刷処理部320は、画像データから印刷データを生成し、印刷機構160を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータープログラムである。CPU110は、内部メモリー120から、これらのプログラム(画像処理部200、表示処理部310、印刷処理部320)を読み出して実行することにより、これら各部の機能を実現する。
【0022】
内部メモリー120には、AAM情報AMIが格納されている。AAM情報AMIは、後述のAAM設定処理によって予め設定される情報であり、顔の特徴部位の位置検出(輪郭点検出処理とも言う)において参照される。AAM情報AMIの内容については、後述のAAM設定処理の説明において詳述する。また、内部メモリー120には、特徴点移動テーブル420も格納されている。特徴点移動テーブル420は、上記変形処理の際に参照される(後述)。
【0023】
1‐2.AAM設定処理
図2は、本実施例におけるAAM設定処理の流れを示すフローチャートである。AAM設定処理は、AAM(アクティブアピアランスモデル(Active Appearance Model))と呼ばれる画像のモデル化に用いられる形状モデルおよびテクスチャーモデルを設定する処理である。本実施例において、AAM設定処理は、ユーザーがAAM設定用に用意されたコンピューター300を操作することにより行なわれる。コンピューター300は、CPUとRAMとROMとHDDとディスプレイと入力装置等を有しており、これらがバスによって接続されている。CPUはHDDに記録されたプログラムを読み出し、該プログラムに従った演算処理を実行することにより、コンピューター300が後述するAAM設定処理を実行する。
【0024】
はじめに、ユーザーは、人物の顔を含んだ複数の画像をサンプル画像SIとしてコンピューター300のメモリー(HDD)上に用意する(ステップS110)。
図3は、サンプル画像SIの一例を示す説明図である。図3に示すように、サンプル画像SIは、個性、人種・性別、表情(怒り、笑い、困り、驚き等)、向き(正面向き、上向き、下向き、右向き、左向き等)といった種々の属性に関して互いに相違する顔画像が含まれるように用意される。サンプル画像SIがそのように用意されれば、AAMによってあらゆる顔画像を精度良くモデル化することが可能となり、あらゆる顔画像を対象とした精度の良い輪郭点検出処理(後述)の実行が可能となる。なお、サンプル画像SIは、学習用画像とも呼ばれる。
【0025】
次に、ユーザーの所定の操作によって、コンピューター300は、それぞれのサンプル画像SIに含まれる顔画像に、特徴点CPを設定する(ステップS120)。
図4は、サンプル画像SIにおける特徴点CPの設定方法の一例を示す説明図である。特徴点CPは、顔画像における所定の特徴部位の位置を示す点である。本実施例では、所定の特徴部位として、人物の顔における眉毛上の所定位置(例えば端点や4分割点等、以下同じ)、目の輪郭上の所定位置、鼻筋および小鼻の輪郭上の所定位置、上下唇の輪郭上の所定位置、顎や頬やこめかみの輪郭(フェイスライン)上の所定位置、といった68箇所の部位が設定されている。すなわち、本実施例では、人物の顔に共通して含まれる顔の器官(眉毛、目、鼻、口)およびフェイスラインにおける所定位置を、特徴部位として設定する。図4に示すように、特徴点CPは、コンピューター300がディスプレイに表示したサンプル画像SIにおいてユーザーの操作により画面上で指定された68個の特徴部位を表す位置に設定(配置)される。このように設定された各特徴点CPは各特徴部位に対応しているため、顔画像における特徴点CPの配置は顔の形状を特定していると表現することができる。サンプル画像SIにおける特徴点CPの位置は、座標により特定される。
【0026】
図5は、サンプル画像SIに設定された特徴点CPの座標の一例を示す説明図である。図5において、SI(j)(j=1,2,3・・・)は各サンプル画像SIを示しており、CP(k)(k=0,1,・・・,67)は、対応するサンプル画像SIにおける人物の各特徴点CPを示している。つまり特徴点CPには0〜67までの番号kが付されており、一つ一つの番号はそれぞれに決められた特徴部位に対応している。また、CP(k)‐Xは、特徴点CP(k)のX座標を示しており、CP(k)‐Yは、特徴点CP(k)のY座標を示している。特徴点CPの座標としては、顔の大きさと顔の傾き(画像面内の傾き)と顔のX方向およびY方向の位置とのそれぞれについて正規化されたサンプル画像SIにおける所定の基準点(例えば画像の左下の点)を原点とした座標が用いられる。また、本実施例では、1つのサンプル画像SIに複数の人物の顔画像が含まれる場合が許容されており(例えばサンプル画像SI(2)には2人の顔画像が含まれている)、1つのサンプル画像SIにおける各人物は人物IDによって特定される。
【0027】
つづいて、コンピューター300は、AAMの形状モデルの設定をおこなう(ステップS130)。具体的には、各サンプル画像SIにおける68個の特徴点CPの座標(X座標およびY座標)により構成される座標ベクトル(図5参照)に対する主成分分析をおこない、特徴点CPの位置により特定される顔の形状sを下記の式(1)によりモデル化する。なお、式(1)で表した形状モデルは、特徴点CPの配置モデルとも呼ぶ。
【0028】
【数1】
【0029】
上記式(1)において、s0は平均形状である。
図6は、平均形状s0の一例を示す説明図である。図6(a)および(b)に示すように、平均形状s0は、サンプル画像SIの各特徴点CPについての平均位置(平均座標)により特定される平均的な顔の形状を表すモデルである。なお、本実施例では、平均形状s0において、外周に位置する特徴点CP(フェイスラインおよび眉毛に対応する特徴点CP、図4参照)を結ぶ直線により囲まれた領域(図6(b)においてハッチングを付して示す)を「平均形状領域BSA」と呼ぶ。平均形状s0においては、図6(a)に示すように、特徴点CPを頂点とする複数の三角形領域TAが、平均形状領域BSAをメッシュ状に分割するように設定される。
【0030】
形状モデルを表す上記式(1)において、siは形状ベクトルであり、piは形状ベクトルsiの重みを表す形状パラメーターである。形状ベクトルsiは、顔の形状sの特性を表すベクトルであり、主成分分析により得られる第i主成分に対応する固有ベクトルである。上記式(1)に示すように、本実施例における形状モデルでは、特徴点CPの配置を表す顔形状sが、平均形状s0とn個の形状ベクトルsiの線形結合との和としてモデル化される。形状モデルにおいて形状パラメーターpiを適切に設定することにより、あらゆる画像における顔の形状sを再現することが可能である。
【0031】
図7は、形状ベクトルsiおよび形状パラメーターpiと、顔の形状sとの関係を例示した説明図である。図7(a)に示すように、顔の形状sを特定するために、寄与率のより大きい主成分に対応する固有ベクトルから順に、累積寄与率に基づき設定された個数n(図7ではn=4)の固有ベクトルが、形状ベクトルsiとして採用される。形状ベクトルsiのそれぞれは、図7(a)の矢印に示すように、各特徴点CPの移動方向・移動量と対応している。本実施例では、最も寄与率の大きい第1主成分に対応する第1形状ベクトルs1は顔の左右振りにほぼ相関するベクトルとなっており、形状パラメーターp1を大小させることにより、図7(b)に示すように、顔の形状sの横方向の顔向きが変化する。2番目に寄与率の大きい第2主成分に対応する第2形状ベクトルs2は顔の上下振りにほぼ相関するベクトルとなっており、形状パラメーターp2を大小させることにより、図7(c)に示すように、顔の形状sの縦方向の顔向きが変化する。また、3番目に寄与率の大きい第3主成分に対応する第3形状ベクトルs3は顔の形状の縦横比にほぼ相関するベクトルとなっており、4番目に寄与率の大きい第4主成分に対応する第4形状ベクトルs4は口の開きの程度にほぼ相関するベクトルとなっている。
【0032】
このように、形状パラメーターの値は、顔の表情や、顔向きや、形状など顔画像の特徴を表す。形状パラメーターは、特徴部位の座標が既知の顔画像を含む複数のサンプル画像に基づいて算出された特徴量である。また形状モデルは、複数の特徴量に基づいて、顔の輪郭を複数の特徴点CP(フェイスラインおよび眉毛に対応する特徴点CP)の位置によって表現するモデルとも言える。なお、コンピューター300は、形状モデル設定ステップ(ステップS130)において設定した平均形状s0および形状ベクトルsiを、プリンター100に送信する。プリンター100は、送信されたこれらの平均形状s0および形状ベクトルsiの情報を、AAM情報AMI(図1)として内部メモリー120に格納する。
【0033】
つづいて、コンピューター300は、AAMのテクスチャーモデルの設定をおこなう(ステップS140)。具体的には、まず、各サンプル画像SIに対して、サンプル画像SIにおける特徴点CPの設定位置が平均形状s0における特徴点CPの設定位置と等しくなるように、画像変換(以下、「ワープW」とも呼ぶ)を行う。
【0034】
図8は、サンプル画像SIのワープWの方法の一例を示す説明図である。各サンプル画像SIにおいては、平均形状s0と同様に、外周に位置する特徴点CPにより囲まれた領域をメッシュ状に分割する複数の三角形領域TAが設定される。ワープWは、複数の三角形領域TAのそれぞれについてのアフィン変換の集合である。すなわち、ワープWにおいては、サンプル画像SIにおけるある三角形領域TAの画像は、平均形状s0における対応する三角形領域TAの画像へとアフィン変換される。ワープWにより、特徴点CPの設定位置が平均形状s0における特徴点CPの設定位置と等しいサンプル画像SI(以下「サンプル画像SIw」と表す)が生成される。
【0035】
なお、各サンプル画像SIwは、平均形状領域BSA(図8においてハッチングを付して示す)を内包する矩形枠を外周とし、平均形状領域BSA以外の領域(以下「マスク領域MA」とも呼ぶ)がマスクされた画像として生成される。平均形状領域BSAとマスク領域MAとを併せた画像領域を基準領域BAと呼ぶ。また、各サンプル画像SIwは、例えば、縦横56画素×56画素のサイズの画像として正規化される。
【0036】
次に、各サンプル画像SIwの画素群xのそれぞれにおける輝度値により構成される輝度値ベクトルに対する主成分分析が行われ、顔のテクスチャー(「見え」とも呼ぶ)A(x)が下記の式(2)によりモデル化される。なお、画素群xは、平均形状領域BSAに位置する画素の集合である。
【0037】
【数2】
【0038】
上記式(2)において、A0(x)は平均顔画像である。
図9は、平均顔画像A0(x)の一例を示す説明図である。平均顔画像A0(x)は、ワープWの後のサンプル画像SIw(図8参照)の平均の顔が表された画像である。すなわち、平均顔画像A0(x)は、サンプル画像SIwの平均形状領域BSA内の画素群xの画素値(輝度値)の平均をとることにより算出される画像である。従って、平均顔画像A0(x)は、平均的な顔の形状における平均的な顔のテクスチャー(見え)を表すモデルである。なお、平均顔画像A0(x)は、サンプル画像SIwと同様に、平均形状領域BSAとマスク領域MAとで構成され、例えば、縦横56画素×56画素のサイズの画像として算出される。
【0039】
テクスチャーモデルを表す上記式(2)において、Ai(x)はテクスチャーベクトルであり、λiはテクスチャーベクトルAi(x)の重みを表すテクスチャーパラメーターである。テクスチャーベクトルAi(x)は、顔のテクスチャーA(x)の特性を表すベクトルであり、具体的には、主成分分析により得られる第i主成分に対応する固有ベクトルである。すなわち、寄与率のより大きい主成分に対応する固有ベクトルから順に、累積寄与率に基づき設定された個数mの固有ベクトルが、テクスチャーベクトルAi(x)として採用される。本実施例では、最も寄与率の大きい第1主成分に対応する第1テクスチャーベクトルA1(x)は、顔色の変化(性別の差とも捉えられる)にほぼ相関するベクトルとなっている。
【0040】
上記式(2)に示すように、本実施例におけるテクスチャーモデルでは、顔の見えを表す顔のテクスチャーA(x)が、平均顔画像A0(x)とm個のテクスチャーベクトルAi(x)の線形結合との和としてモデル化される。テクスチャーモデルにおいてテクスチャーパラメーターλiを適切に設定することにより、あらゆる画像における顔のテクスチャーA(x)を再現することが可能である。
なお、コンピューター300は、テクスチャーモデル設定ステップ(ステップS140)において設定した平均顔画像A0(x)およびテクスチャーベクトルAi(x)を、プリンター100に送信する。プリンター100は、送信されたこれらの平均顔画像A0(x)およびテクスチャーベクトルAi(x)の情報を、AAM情報AMI(図1)として内部メモリー120に格納する。
【0041】
以上説明したAAM設定処理(図2)により、顔の形状をモデル化する形状モデルと、顔のテクスチャーをモデル化するテクスチャーモデルが設定される。設定された形状モデルとテクスチャーモデルとを組み合わせることにより、すなわち合成されたテクスチャーA(x)に対して平均形状s0から形状sへの変換(図8に示したワープWの逆変換)を行うことにより、あらゆる顔画像の形状およびテクスチャーを再現することが可能である。
【0042】
1‐3.画像変形処理
図10は、本実施例における画像変形処理を示すフローチャートである。画像変形処理は、概略的には、注目画像に含まれる顔の輪郭に対応する輪郭点を検出する処理(ステップS240)と、検出された輪郭点の位置に基づいて上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する処理(ステップS250)と、当該設定された領域内の画像の変形を行う処理(ステップS260)とを含む。
【0043】
はじめに、画像処理部200(図1)は、画像変形処理の対象となる注目画像を表す画像データを取得する(ステップS210)。本実施例のプリンター100では、カードスロット172にメモリーカードMCが挿入されると、メモリーカードMCに格納された画像ファイルのサムネイル画像が表示部150に表示される。処理の対象となる1つまたは複数の画像は、操作部140を介してユーザーにより選択される。画像処理部200は、選択された1つまたは複数の画像に対応する画像データを含む画像ファイルをメモリーカードMCより取得して内部メモリー120の所定の領域に格納する。なお、取得された画像データを注目画像データと呼び、注目画像データの表す画像を注目画像OIと呼ぶ。
【0044】
次に、画像処理部200は、変形処理のタイプや変形度合い等(変形態様)を設定する(ステップS220)。この場合、画像処理部200は、変形態様を設定するためのユーザーインターフェイスを表示部150に表示するように表示処理部310に指示し、当該ユーザーインターフェイスを通じてユーザーにより指定された変形処理のタイプや変形度合いを選択し、処理に用いる変形処理のタイプや変形度合いとして設定する。当該ユーザーインターフェイスを介して設定され得る変形処理のタイプとしては、例えば、顔の形状を全体的に小さくする「小顔化」、顔の形状を細く(シャープに)する「シャープ化」、顔を特定の俳優や歌手等の有名人に似せるように変形する「有名人化」等がある。また、ユーザーは、当該ユーザーインターフェイスを介して変形処理の変形度合い(変形量)を、例えば、「強」、「中」、「弱」の3段階の中から選択して指示することができる。
【0045】
顔領域検出部210(図1)は、注目画像OIに含まれる顔画像の少なくとも一部を含む画像領域を顔領域FAとして検出する(ステップS230)。顔領域FAの検出は、公知の顔検出手法を用いて行うことができる。公知の顔検出手法としては、例えば、パターンマッチングによる手法や肌色領域抽出による手法、サンプル画像を用いた学習(例えばニューラルネットワークを用いた学習や、ブースティングを用いた学習、サポートベクターマシーンを用いた学習等)により設定される学習データを用いる手法等がある。
【0046】
図11は、注目画像OIにおける顔領域FAの検出結果の一例を示す説明図である。図11には、注目画像OIにおいて検出された顔領域FAが示されている。本実施例では、おおよそ、顔の上下方向は額から顎まで、左右方向は両耳の外側まで含む矩形の領域が顔領域FAとして検出されるような顔検出手法が用いられている。
【0047】
輪郭点検出部220(図1)は、注目画像OIに含まれる顔の輪郭点検出処理を行なう(ステップS240)。この輪郭点検出処理は、大きく分けて、第一段階としての特徴点CPの初期位置設定処理(Init処理と呼ぶ)と、第二段階としての特徴点CPの設定位置補正処理(Fit処理と呼ぶ)とによって構成される。
図12は、本実施例におけるInit処理を示すフローチャートである。Init処理では、まず、輪郭点検出部220は、顔領域FAに対する顔画像の大きさ、傾き、上下方向の位置および左右方向の位置を表すグローバルパラメーターの値を種々変更して、特徴点CP(番号k=0〜67までの68個の特徴点CP)を注目画像OI上の仮設定位置に設定する(ステップS310)。
【0048】
図13は、グローバルパラメーターの値を変更することによる特徴点CPの仮設定位置の一例を示す説明図である。図13(a)および図13(b)には、注目画像OIにおける特徴点CPおよび特徴点CPをつないで形成されるメッシュを示している。特徴点CPをつないで形成されるメッシュは、上述したように特徴点CPを頂点とする複数の三角形領域TAの集合である(図6(a)等参照)。輪郭点検出部220は、図13(a)および図13(b)の中央に示すように、平均形状s0における特徴点CPの配置と等しい特徴点CPの配置を持ったメッシュであって、最も平均的なグローバルパラメーターの組み合わせに応じて顔領域FAに対する大きさ、傾き、位置を調整したメッシュを設定する。例えば、顔領域FAに対する大きさを表す3段階(大きい、標準、小さい)のグローバルパラメーターと、顔領域FAに対する上下方向の位置を表す3段階(上、中央、下)のグローバルパラメーターと、顔領域FAに対する左右方向の位置を表す3段階(左、中央、右)のグローバルパラメーターと、顔領域FAに対する傾きを表す3段階(反時計回り(−)に15度、0度、時計回り(+)に15度)のグローバルパラメーターとが存在するとする。この場合、最も平均的なグローバルパラメーターの組み合わせとは、顔領域FAに対する大きさは「標準」、顔領域FAに対する上下方向の位置および左右方向の位置はそれぞれ「中央」、かつ顔領域FAに対する傾きは「0度」を示すグローバルパラメーターの組み合わせを言う。本実施例では、図13(a)および図13(b)の中央に示すようなメッシュを構成する特徴点CPの設定位置(仮設定位置)を、「基準仮設定位置」とも呼ぶ。
【0049】
輪郭点検出部220は、また、基準仮設定位置に対して、グローバルパラメーターの値を種々変更させた複数の仮設定位置を設定する。グローバルパラメーター(大きさ、傾き、上下方向の位置および左右方向の位置)を変更することは、注目画像OIにおいて特徴点CPにより形成されるメッシュが拡大・縮小、傾きを変更、並行移動することに相当する。従って、輪郭点検出部220は、図13(a)に示すように、基準仮設定位置のメッシュを所定倍率で拡大または縮小したメッシュを形成するような仮設定位置(基準仮設定位置の図の下および上に示す)や、所定角度だけ時計回りまたは半時計回りに傾きを変更したメッシュを形成するような仮設定位置(基準仮設定位置の図の右および左に示す)を設定する。また、輪郭点検出部220は、基準仮設定位置のメッシュに対して、拡大・縮小および傾きの変更を組み合わせた変換を行ったメッシュを形成するような仮設定位置(基準仮設定位置の図の左上、左下、右上、右下に示す)も設定する。
【0050】
また、図13(b)に示すように、輪郭点検出部220は、基準仮設定位置のメッシュを所定量だけ上または下に並行移動したメッシュを形成するような仮設定位置(基準仮設定位置の図の上および下に示す)や、左または右に並行移動したメッシュを形成するような仮設定位置(基準仮設定位置の図の左および右に示す)を設定する。また、輪郭点検出部220は、基準仮設定位置のメッシュに対して、上下および左右の並行移動を組み合わせた変換を行ったメッシュを形成するような仮設定位置(基準仮設定位置の図の左上、左下、右上、右下に示す)も設定する。
【0051】
輪郭点検出部220は、図13(a)に示す基準仮設定位置以外の8つの仮設定位置のそれぞれにおけるメッシュに対して図13(b)に示す上下左右の並行移動が実行される仮設定位置も設定する。従って、本実施例では、上述したように夫々に3段階の値を持つ4つのグローバルパラメーター(大きさ、傾き、上下方向の位置、左右方向の位置)を組み合わせたことにより設定される80通り(=3×3×3×3−1)の仮設定位置と基準仮設定位置との、合計81通りの仮設定位置が設定される。
【0052】
輪郭点検出部220は、設定された各仮設定位置に対応する平均形状画像I(W(x;p))を生成する(ステップS320)。
図14は、平均形状画像I(W(x;p))の一例を示す説明図である。平均形状画像I(W(x;p))は、注目画像OIにおける特徴点CPの配置が平均形状s0における特徴点CPの配置と等しくなるような変換によって算出される。
【0053】
平均形状画像I(W(x;p))を算出するための変換は、サンプル画像SIw算出のための変換(図8参照)と同様に、三角形領域TA毎のアフィン変換の集合であるワープWにより行われる。具体的には、注目画像OIに仮設定された特徴点CP(図13参照)によって変換対象領域(メッシュの外周に位置する特徴点CPにより囲まれた領域)が特定され、この変換対象領域に対して三角形領域TA毎のアフィン変換が行われることにより、平均形状画像I(W(x;p))が算出される。本実施例では、平均形状画像I(W(x;p))は、平均顔画像A0(x)と同様に平均形状領域BSAおよびマスク領域MAにより構成され、平均顔画像A0(x)と同一サイズ(例えば、縦横56画素×56画素)の画像として算出される。
【0054】
なお上述したように、画素群xは、平均形状s0における平均形状領域BSAに位置する画素の集合である。本実施例では、平均形状画像は、形状パラメーターpによるワープW(x;p)によって生成された画像(画素群)Iという意味で、平均形状画像I(W(x;p))と表現している。図14には、図13(a)に示した9個の仮設定位置に対応する9個の平均形状画像I(W(x;p))を示している。
【0055】
輪郭点検出部220は、各仮設定位置に対応する平均形状画像I(W(x;p))と平均顔画像A0(x)との差分画像Ieを算出する(ステップS330)。特徴点CPの仮設定位置は81種類設定されているため、輪郭点検出部220は、81個の差分画像Ieを算出する。
【0056】
輪郭点検出部220は、各差分画像Ieの画素値からノルム(ユークリッド距離)を算出し、ノルムの値が最も小さい差分画像Ieに対応する仮設置位置(以下「ノルム最小仮設定位置」とも呼ぶ)を、注目画像OIにおける特徴点CPの初期位置として設定する(ステップS340)。ノルムを算出するための差分画像Ieの画素値は輝度値であってもよいしRGB値であってもよい。以上により、Init処理が完了する。Init処理後、輪郭点検出部220はFit処理を実行する。Fit処理では、輪郭点検出部220は、Init処理で初期位置として設定された特徴点CPの設定位置の補正を行う。
【0057】
図15は、Fit処理を示すフローチャートである。
輪郭点検出部220は、注目画像OIに設定されている特徴点CPに基づいて平均形状画像I(W(x;p))を算出する(ステップS410)。平均形状画像I(W(x;p))の算出方法は、Init処理におけるステップS320と同様である。
【0058】
輪郭点検出部220は、ステップS410で生成された平均形状画像I(W(x;p))と平均顔画像A0(x)との差分画像Ieを算出する(ステップS420)。輪郭点検出部220は、ステップS420で算出された差分画像Ieに基づき、Fit処理が収束したか否かを判定する(ステップS430)。輪郭点検出部220は、差分画像Ieのノルムを算出し、ノルムの値が予め設定されたしきい値より小さい場合には収束したと判定し、ノルムの値がしきい値以上の場合には未だ収束していないと判定する。なお、輪郭点検出部220は、算出された差分画像Ieのノルムの値が前回のステップS430において算出されたノルムの値よりも小さい場合には収束したと判定し、前回値以上である場合には未だ収束していないと判定してもよい。あるいは、輪郭点検出部220は、しきい値による判定と前回値との比較による判定とを組み合わせて収束判定を行うとしてもよい。例えば、輪郭点検出部220は、算出されたノルムの値が、しきい値より小さく、かつ、前回値より小さい場合にのみ収束したと判定し、それ以外の場合には未だ収束していないと判定するとしてもよい。
【0059】
ステップS430の収束判定において未だ収束していないと判定した場合、輪郭点検出部220はパラメーター更新量ΔPを算出する(ステップS440)。パラメーター更新量ΔPは、4個のグローバルパラメーター(全体としての大きさ、傾き、X方向位置、Y方向位置)、および、特徴量であるn個の形状パラメーターpi(i=1〜nの整数。)の値の変更量を意味している。なお、特徴点CPを初期位置に設定した直後においては、グローバルパラメーターは、Init処理(図12)において決定された値が設定されている。また、このときの特徴点CPの初期位置と平均形状s0の特徴点CPの設定位置との相違は、全体としての大きさ、傾き、位置の相違に限られるため、形状モデルにおける形状パラメーターpiの値はすべてゼロである。
【0060】
パラメーター更新量ΔPは、下記の式(3)により算出される。すなわち、パラメーター更新量ΔPは、アップデートマトリックスRと差分画像Ieとの積である。
【0061】
【数3】
【0062】
式(3)におけるアップデートマトリックスRは、差分画像Ieに基づきパラメーター更新量ΔPを算出するために予め学習により設定されたM行N列のマトリックスであり、AAM情報AMI(図1)として内部メモリー120に格納されている。本実施例では、アップデートマトリックスRの行数Mは、グローバルパラメーターの数(4個)と、形状パラメーターpiの数(n個)との和((4+n)個)に等しく、列数Nは、平均顔画像A0(x)の平均形状領域BSA内の画素数(56画素×56画素−マスク領域MAの画素数)に等しい。アップデートマトリックスRは、下記の式(4)および(5)により算出される。
【0063】
【数4】
【数5】
式(4)および(5)における関数Wは、ワープW(x;p)を指し、変数Pは、形状パラメーターpiを指し、Tは転置行列を意味する。
【0064】
輪郭点検出部220は、算出したパラメーター更新量ΔPに基づきパラメーター(4個のグローバルパラメーターおよびn個の形状パラメーター)を更新する(ステップS450)。これにより、注目画像OIにおける特徴点CPの設定位置が補正(更新)される。輪郭点検出部220は、差分画像Ieのノルムが小さくなるように特徴点CPの設定位置を補正する。すなわち、上記n個の形状パラメーターをパラメーター更新量ΔPで更新することで、形状モデルの上記式(1)に従って新たな形状sが生成されるため、輪郭点検出部220は、当該生成された形状sにおける特徴点CPを注目画像OIに設定する。このとき、輪郭点検出部220は、当該生成された形状sの大きさ、傾き、位置を、上記パラメーター更新量ΔPで更新した4個のグローバルパラメーターに応じて調整した上で、特徴点CPを注目画像OIに設定する。このようにパラメーターの更新に応じて注目画像OIに設定された特徴点CPの位置が、補正後の特徴点CPの設定位置である。
【0065】
パラメーターの更新の後には、再度、特徴点CPの設置位置が補正された注目画像OIからの平均形状画像I(W(x;p))の算出(ステップS410)、差分画像Ieの算出(ステップS420)、差分画像Ieに基づく収束判定(ステップS430)が行われる。再度の収束判定においても収束していないと判定された場合には、さらに、差分画像Ieに基づくパラメーター更新量ΔPの算出(ステップS440)、パラメーターの更新による特徴点CPの設定位置補正(ステップS450)が行われる。
【0066】
図15のステップS410からS450までの処理が繰り返し実行されると、注目画像OIにおける各特徴部位に対応する特徴点CPの位置は実際の特徴部位の位置に全体として近づいていき、ある時点で収束判定(ステップS430)において収束したと判定される。収束判定において収束したと判定されると、輪郭点検出処理が完了する(ステップS460)。このとき設定されているグローバルパラメーターおよび形状パラメーターの値により特定される特徴点CPの設定位置が、最終的な注目画像OIにおける特徴点CPの設定位置として特定される。
【0067】
図16は、輪郭点検出処理の結果の一例を示す説明図である。図16には、注目画像OIにおいて最終的に特定された特徴点CP(番号k=0〜67までの68個の特徴点CP)の設定位置が示されている。特徴点CPの設定位置により、注目画像OIに含まれる顔の特徴部位(人物の顔の器官(眉毛、目、鼻、口)およびフェイスラインにおける所定位置)の座標位置が特定される。そのため、輪郭点検出部220は、収束判定(ステップS430)において収束したと判定した時に、特徴点CPの設定位置のうち、外周に位置する特徴点CP(フェイスラインおよび眉毛に対応する特徴点CP)の設定位置を、注目画像OIにおける顔の輪郭点OPの座標位置として取得し、輪郭点検出処理を完了させる。
【0068】
領域設定部230(図1)は、上記ステップS240で検出された輪郭点OPの位置に基づいて、当該輪郭点OPで囲まれた領域よりも広い領域であって顔の少なくとも一部を含む領域を、変形処理の対象領域として設定する(ステップS250)。以下では、ステップS250で設定する対象領域を、変形領域CAと呼ぶ。
【0069】
図17は、ステップS250の処理の詳細を示したフローチャートである。
図18は、当該ステップS250の処理によって注目画像OIに設定される変形領域CAを例示している。まず、領域設定部230は、注目画像OIにおいて、輪郭点OPに囲まれた領域内に基準点SPを設定する(ステップS510)。基準点SPとは、輪郭点OPに囲まれた領域のほぼ中心に相当する点である。本実施例では、顔領域FAの重心を基準点SPとして設定する。ただし領域設定部230は、注目画像OIにおいて設定された特徴点CPのうち、例えば、鼻の所定位置に該当する特徴点CPの位置を、基準点SPとしてもよい。
【0070】
次に、領域設定部230は、基準点SPと各輪郭点OPとを結ぶ各線分Lを生成するとともに、各線分Lを、各輪郭点OPから外側へ所定距離だけ延長する(ステップS520)。ここで言う所定距離とは、例えば、顔領域FAのサイズの10%程度の長さを言う。顔領域FAのサイズとは、例えば、顔領域FAの縦幅と横幅との平均値である。なお、顔領域FAの縦幅とは、顔の高さ方向(上下方向)における顔領域FAの幅であり、顔領域FAの横幅とは、顔の横方向(左右方向)における顔領域FAの幅である。
領域設定部230は、上記ステップS520で延長した各線分Lの端部(基準点SPではない端部)に、外枠点PPを設定する(ステップS530)。つまり、上記延長した各線分Lの端部を各外枠点PPとする。
【0071】
ただし、各輪郭点OPに対応する各外枠点PPの設定方法は、上述した手法に限られない。つまり、各外枠点PPは、各輪郭点OPとの所定の位置関係に基づいて各輪郭点OPの外側に設定される点である。
領域設定部230は、隣接する外枠点PP同士を線分で結ぶことにより、外枠点PPで囲まれた領域を設定し、かかる領域を変形領域CAとする(ステップS540)。
【0072】
図18では、黒丸で表した各輪郭点OPの外側に、白丸で各外枠点PPを示している。このように外枠点PPで囲まれた変形領域CAの形状は、輪郭点OPで囲まれた領域の形状に沿った形状となっている。つまり変形領域CAは、注目画像OIに含まれている顔の形状を詳細に反映した形となっている。
【0073】
変形処理部240(図1)は、変形領域CA内の少なくとも一部の画像の変形を行なう(ステップS260)。
図19は、ステップS260の処理の詳細を示したフローチャートである。まず、変形処理部240は、変形領域CA内の画像に対する変形処理の際に移動対象とする特徴点CPを、上記輪郭点検出処理で注目画像OIにおいて設定位置が最終的に特定された特徴点CP(輪郭点OPを含む特徴点CP)の中から、上記ステップS220(図10)で設定された変形処理のタイプに応じて選択する(ステップS610)。
【0074】
上述したように、変形処理のタイプは、「小顔化」、「シャープ化」、「有名人化」等の中からユーザーが入力操作により任意に設定可能であり、変形処理のタイプと移動対象として選択すべき特徴点CPとの対応関係は、予め決められているものとする。例えば、「小顔化」が設定されている場合には、変形処理部240は、「小顔化」のために移動対象とする特徴点CPを選択する。変形処理部240は、「小顔化」のための移動対象の特徴点CPとして、例えば、顎から頬にかけてのフェイスラインに対応する所定の番号にかかる複数の特徴点CP(輪郭点OP)を選択する。以下では、ステップS610において選択した特徴点CPを、選択特徴点SCPと呼ぶ。ステップS610においては外枠点PPは選択されない。
【0075】
なお、図20に示すように、「小顔化」のための選択特徴点SCPを、便宜上、SCP0〜SCP10と表現する。図20(後述の図22も同様)では、特徴点CP(輪郭点OPを含む特徴点CP)を黒丸で表し、上記外枠点PPを図18と同様に白丸で表している。
【0076】
次に、変形処理部240は、内部メモリー120に格納された特徴点移動テーブル420に規定された移動量(あるいは、計算により設定された移動量)に従い、選択特徴点SCPの位置を移動して小領域(三角形領域)を変形することにより、変形領域CAを変形させる(ステップS620)。ここで言う三角形領域とは、変形領域CAを構成する複数の三角形領域であって、外枠点PPまたは特徴点CPを頂点として分割される三角形領域を意味している。特徴点移動テーブル420は、上述した変形処理のタイプ別、かつ、変形度合い(上述の例では、「強」、「中」、「弱」)別に予め用意されている。従って、当該S620では、変形処理部420は、上記ステップS220で設定された変形処理のタイプおよび変形度合いに対応する特徴点移動テーブル420を用いる。なお上記移動量は、画像の変形量とも呼べる。
【0077】
図21は、特徴点移動テーブル420(変形処理のタイプが「小顔化」かつ、変形度合いが「中」、に対応する特徴点移動テーブル420)の一例を示している。特徴点移動テーブル420では、その変形処理のタイプに対応する選択特徴点SCP毎に、基準線RLと直交する方向(H方向と呼ぶ。)に沿った移動量及び基準線RLと平行な方向(V方向と呼ぶ。)に沿った移動量を定義している。基準線RLとは、顔領域FAの重心を通り、顔領域FAの高さ方向に沿った辺に平行な直線である(図18参照)。従って、H方向は顔の横方向に略相等し、V方向は顔の上下方向に略相等する。この移動量は、例えば、注目画像OIの画素ピッチを単位として表されたり、所定のサイズを100としたときの比率などで表される。当該所定のサイズとは、例えば、H方向に対する所定のサイズであれば、顔領域FAの横幅や、輪郭点OPによって囲まれた領域の横幅などが該当し、V方向に対する所定のサイズであれば、顔領域FAの縦幅や、輪郭点OPによって囲まれた領域の縦幅などが該当する。
【0078】
また、H方向については、注目画像OIに向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、V方向については、注目画像OIに向かって上方への移動量が正の値として表され、下方への移動量が負の値として表される。このような移動量は、特徴点移動テーブル420が対応している変形度合いのレベルに応じて、異なる値に設定されている。
【0079】
なお、変形処理のタイプとして「有名人化」が設定されている場合には、変形処理部240は、単純に特徴点移動テーブル420を参照するのではなく、選択特徴点SCP毎の移動量を計算により設定して使用する。例えば、変形処理部240は、内部メモリー120に予め格納された、「有名人化」の目的となる有名人の顔における特徴部位(眉毛、目、鼻、口およびフェイスラインにおける所定位置)の位置を表す特徴点からなるモデル(有名人顔モデル)を読み出す。そして、上記輪郭点OPに囲まれた領域の画像と、有名人顔モデルの画像とのスケールを一致させた上で、「有名人化」のための選択特徴点SCPと、当該選択特徴点SCPに対応する有名人顔モデル内の特徴点との位置の差異を算出する。そして、変形処理部240は、このように算出した差異を無くすようなH方向およびV方向への移動量を、各選択特徴点SCPに対して設定する。ただし、当該差異を完全に打ち消すような移動量を設定すると、変形後の画像が不自然なものとなってしまうこともある。そのため、変形処理部240は、当該差異の何割かを打ち消すためのH方向およびV方向への移動量を選択特徴点SCPに設定する。当該差異の何割を打ち消すかは、上記ステップS220で設定された変形度合いのレベルに応じて異ならせる。
【0080】
図22は、特徴点移動テーブル420に従った選択特徴点SCPの位置の移動の一例を示す説明図である。図22の例では、変形領域CA内において、上記選択特徴点SCP0〜SCP10の位置を移動させて変形する際の具体的な変形態様(小顔化)を示している。変形処理部240は、変形領域CAを構成する各三角形領域について、選択特徴点SCPの位置移動前の状態における領域の画像が選択特徴点CPの位置移動により新たに定義された領域の画像となるように、画像の変形処理を行う。図22では、理解容易のために、上段(変形前の図)において、各選択特徴点SCPの移動方向を矢印で例示しており、下段(変形後の図)において、選択特徴点SCPの移動に伴って変形した各三角形領域にハッチングを付している。つまり、3つの頂点の中に1つでも選択特徴点SCPを含んでいる三角形領域は全て変形の対象となる。三角形領域毎の画像の変形処理は、上述したようにアフィン変換によって実現してもよいし、特開2009‐104672号公報に記載された方法によって行ってもよい。
【0081】
図22に示すように、ステップS620における選択特徴点SCPの移動の結果、V方向に関しては、選択特徴点SCP0〜SCP10のうち、左右の頬の最も高い位置に対応する選択特徴点SCP0,SCP10を除く選択特徴点SCP1〜SCP9の位置が上方に移動される。また、H方向に関しては、顎の先端に対応する選択特徴点SCP5を除いて、向かって左側の選択特徴点SCP0〜SCP4の位置が右方向に移動され、向かって右側の選択特徴点SCP6〜SCP10の位置が左方向に移動される。そのため、注目画像OIにおける顔画像は、フェイスライン内側の顎や頬を含む領域が全体的に顔の略中心方向に向かって縮小するように変形され、フェイスライン外側の領域(特に、首の領域)が全体的に顔の略中心方向に向かって延びるように変形される。この結果、小顔化が実現される。本実施例では、変形領域CAの内外の画像間の境界が不自然とならないように、変形領域CAの外枠上に位置する外枠点PPの位置は移動されないものとしている。
【0082】
このように本実施例によれば、画像処理装置は、注目画像OIに含まれる顔画像の特徴部位の座標位置に対応する特徴点CPを検出することにより、顔の輪郭に対応する輪郭点OPを取得し、輪郭点OPの位置に基づいて輪郭点OPに囲まれた領域の外側に外枠点PPを設定し、外枠点PPで囲まれた領域を変形領域CAとして設定する。そして、変形領域CA内の特徴点CPのうち所定の特徴点(選択特徴点SCP)を移動させて変形領域CA内の小領域単位での変形を行なうことにより、例えば「小顔化」等の目的に応じた画像変形を実現する。つまり、上記のように設定される変形領域CAは、顔の具体的な輪郭(形状)を正確に反映した形状である。そのため、変形領域CA内の画像を変形処理の対象とすることで、そのとき処理対象としている顔にとって極めて自然な、かつ目的としている画像変形の効果が確実に表れた、画像変形結果を得ることができる。
【0083】
また、本実施例によれば、上記のように顔の輪郭を正確に反映した変形領域CAの画像を対象として「小顔化」や「有名人化」等、ユーザーが任意に設定したタイプの変形処理がユーザーの好みの変形度合いで実行されるため、違和感の無い、ユーザーが望む最適な画像変形結果が得られる。
【0084】
本発明は第1実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、以下のような各実施例も可能である。むろん、第1実施例や各実施例を適宜組み合わた構成も、本発明の範囲となる。以下において特に言及しない部分については、第1実施例で説明した内容が適用されるものとする。
【0085】
2.第2実施例
本発明においては、ある方向を向いた顔画像を元に、別の方向を向いた顔画像であって変形処理が施された顔画像を生成することができる。例えば、ステップS240(図10)が終了した時点で、注目画像OIから、正面を向いた顔の形状を表す特徴点CP(輪郭点OPを含む。)の設定位置が検出されたとする。画像処理部200は、顔が正面向きであるか否かは、Fit処理が完了した時点での形状パラメーター(特に、形状パラメーターp1および形状パラメーターp2)の値を評価する(例えば、所定のしきい値と比較する)ことにより判定できる。また、領域設定部230により、当該正面を向いた顔についての輪郭点OPの位置に基づいて、外枠点PPも設定されたものとする。このような状況において、本実施例では、正面向きの顔画像について設定された特徴点CPおよび外枠点PPに基づいて、横方向(左右方向)にある程度振りのある顔画像であって変形処理がなされた顔画像を生成する処理(横顔変形処理と呼ぶ。)について説明する。
【0086】
横顔変形処理を説明する前提として、本実施例においては、基本的に各特徴点CPは3次元の位置情報を有するものとする。上記第1実施例では、特徴点CPはX方向の座標とY方向の座標で表される2次元(平面)情報であったが、本実施例では、特徴点CPは、さらにZ方向の座標を持つ3次元(立体)情報である。つまり前提としての、AAM設定処理においては、位置がX,Y,Z座標で表される68個の特徴点CPを有するサンプル画像SIを複数用意し、各サンプル画像SIにおける特徴点CP(X座標、Y座標およびZ座標)により構成される座標ベクトルに対する主成分分析を行なうことにより、顔の形状sをモデル化しておく(3次元形状モデルを生成しておく)。このような3次元形状モデルを用いる場合であっても、注目画像OIに対して上記Init処理とFit処理とを行うことにより、注目画像OIに含まれた顔の各特徴部位に対応した各特徴点CP(X,Y,Z座標)からなる形状s(立体形状)を設定することができる。なお、この場合、平均形状s0の特徴点CPや平均顔画像A0(x)も3次元の位置情報を有するものとする。そして、このように設定した形状sについて、顔の向きの変化に対応する形状パラメーターを変更することにより、正面向きの状態から振りのある状態へと変形させることができる。
【0087】
上記のように特徴点CPを3次元情報とした場合、輪郭点OPの位置に基づいて設定される外枠点PPも、X,Y,Z座標を有する3次元情報とする。領域設定部230は、3次元空間上で、例えば鼻の所定位置に対応する特徴点CP付近に基準点SPを設定し、基準点SPと各輪郭点OPとを結ぶ各線分Lを、各輪郭点OPから外側へ所定距離だけ延長した位置に、各輪郭点OPに対応する外枠点PPを設定する。
【0088】
図23は、横顔変形処理を示したフローチャートである。輪郭点検出部220は、顔の向きの変化に対応する形状パラメーター(顔の形状sの左右方向への向き(振り)の程度を変化させる上記形状パラメーターp1)を所定量変更することにより、顔の形状sを、正面向きの状態から振りのある状態(例えば、左振りの状態。図7(b)参照。)へと変化させる(ステップS710)。つまり、立体形状(ワイヤーフレーム)としての形状sが顔の左方向に回転する。この結果、向きがある程度左向き(注目画像OIに正対した向きから見て左向き画像)となった顔の輪郭や器官の位置を表現する特徴点CPが設定される。
【0089】
領域設定部230は、当該顔向きの変化に応じた特徴点CPの位置の変更に追従して、外枠点PPの位置を変更し、変形領域CAを設定し直す(ステップS720)。つまり、正面向きの顔の形状sを表現していた特徴点CPのうちの輪郭点OPの位置に基づいて設定されていた外枠点PPの位置を、対応する輪郭点OPとの相対的な位置関係を維持しつつ、上記形状パラメーターp1の変更による形状sの振り量(左方向への回転量)に応じて変更する。この結果、左振りの顔の形状sを表す特徴点CPの周囲を取り囲む外枠点PPによって、当該左振りの顔の形状sに対応した変形領域CAが新たに設定される。なお、当該ステップS720の処理は、顔の形状sの向きの変化(ステップS710)とほぼ同時に実行される。
【0090】
変形処理部240は、上記ステップS610と同様に、変形処理の際の移動対象とする特徴点CP(選択特徴点SCP)を選択する(ステップS730)。
次に、変形処理部240は、特徴点移動テーブル420に規定された選択特徴点SCP毎の移動量および上記ステップS710における形状パラメーターの変更量に基づいて、選択特徴点SCP毎の移動量を算出する(ステップS740)。具体的には、変形処理部240は、上記ステップS710において上述したように顔の左右方向への向きの程度を変化させる形状パラメーターp1が変更されている場合には、この形状パラメーターp1の変更量に応じて、特徴点移動テーブル420に規定された選択特徴点SCP毎の移動量のうちH方向への移動量を補正する。
【0091】
図24は、形状パラメーターp1の変更量に応じて、選択特徴点SCPのH方向への移動量を算出する様子を説明する図である。図24では、上記ステップS710において形状パラメーターp1を変更したことにより、形状sが正面向きの状態から顔の横方向へ回転した(ある程度左振りとなった)状況の一部を、顔の真上から見た状態を示している。図24においては、形状sに含まれるある特徴点CP1と、これに隣接する特徴点CP2と、特徴点CP2に対応する外枠点PP1とが、角度θだけ回転した様子を示している。角度θは、上記ステップS710における形状パラメーターp1の変更量に応じて、一義的に定まる3次元空間上での回転量である。ここでは、回転後の各点CP1,CP2,PP1についてそれぞれ「´」を付して表している。なお、特徴点CP2は、輪郭点OPであり、かつ選択特徴点SCPでもある。
【0092】
本実施例では、内部メモリー120に予め格納されている特徴点移動テーブル420は、変形処理の対象となる顔が正面を向いている(左右にも上下にも振れていない)ことを前提として各選択特徴点SCPに対するH方向およびV方向の移動量を規定している。そこで、選択特徴点SCPに対して特徴点移動テーブル420に規定されているH方向の移動量をhとした場合、形状パラメーターp1の変更によって形状sが正面向きの状態から顔の横方向へ角度θだけ回転したときの、選択特徴点SCPに対するH方向の移動量h´は、下記式(6)によって算出される。
【数6】
【0093】
なお、変形処理部240は、上記ステップS710において顔の上下方向への向きの程度を変化させる形状パラメーターp2が変更されている場合には、この形状パラメーターp2の変更量に応じて、特徴点移動テーブル420に規定された選択特徴点SCP毎の移動量のうちV方向への移動量を補正する。つまり、特徴点移動テーブル420に規定されているV方向の移動量をvとした場合、形状パラメーターp2の変更によって形状sが正面向きの状態から顔の上下方向へ角度θだけ回転したとき(上振りまたは下振りの状態となったとき。図7(c)参照。)の、選択特徴点SCPに対するV方向の移動量v´は、下記式(7)によって算出される。
【数7】
【0094】
このように本実施例では、変形処理部240は、上記顔の向きの変化の程度に応じて、画像の変形量を異ならせている。変形処理部240は、上記のように算出した移動量(H方向及び又はV方向の移動量)に従い、上記ステップS710で向きが変更された後の形状sにおける選択特徴点SCPの位置をH方向及び又はV方向に移動させて三角形領域を変形する(ステップS750)。つまり、選択特徴点SCPをいずれかの頂点に含む各三角形領域について、上記ステップS710での向きの変更前の状態における領域の画像が、当該向きの変更および上記算出された移動量による選択特徴点SCPの移動により新たに定義された領域の画像となるように、変形処理を行う。この結果、正面向きの顔画像から、別の方向を向いた顔画像(例えば、左振りの顔)であって、その顔の振りの程度に応じた変形量によって適切に変形処理が施された(例えば「小顔化」が施された)顔画像が得られる。
【0095】
上記説明で明らかなように、本実施例では、形状sに顔の横方向への振りを加えた上で変形処理を行うときには、選択特徴点SCPのH方向の移動量を補正し、形状sに顔の上下方向への振りを加えた上で変形処理を行うときには、選択特徴点SCPのV方向の移動量を補正する。これは言い換えれば、元々V方向への移動量のみが規定されている選択特徴点SCP(例えば、顎の先端に対応する選択特徴点SCP5。図22参照。)に関しては、形状sに顔の横方向への振りだけを加えた上で変形処理を行うときには移動量(変形量)は一定である。同様に、H方向への移動量のみが規定されている選択特徴点SCPに関しては、形状sに顔の上下方向への振りだけを加えた上で変形処理を行うときには移動量(変形量)は一定である。つまり変形処理部240は、形状パラメーターの変更により顔の向きが変化する方向に略直交する方向にのみ変形させる箇所(選択特徴点SCP)の画像に対する変形量は、顔の向きの変化の程度にかかわらず一定としている。
【0096】
ここで、注目画像OIは静止画に限定されず動画であってもよい。例えば、上述した横顔変形処理のように、向き等が変化する顔の変化に追従して変形領域CAを設定して変形を施す処理を、動画を対象として行ってもよい。
【0097】
図25は、動画内の顔画像に対して変形を施す処理(動画変形処理)をフローチャートにより示している。当該フローチャートの処理を実行する画像処理装置は、プリンター100であってもよいが、ここではコンピューター300であるとする。そして、コンピューター300は、上記画像処理部200と同等の機能を実行可能なコンピュータープログラム(便宜上、画像処理部200と呼ぶ。)を有しており、当該コンピュータープログラム(画像処理部200)に従って、動画変形処理を実行する。本実施例における動画変形処理とは、概略的には、注目画像OIとしての動画を構成するフレーム画像毎に、顔の輪郭点OP(特徴点CP)の検出と変形領域CAの設定と画像の変形と、を行なう処理である。
【0098】
まず、画像処理部200は、動画変形処理の対象となる注目画像OIとしての動画を表す動画ファイルを、コンピューター300のHDD等から取得し(ステップS810)、上記ステップS220(図10)と同様に 変形処理のタイプや変形度合い等を設定する(ステップS820)。
【0099】
次に、画像処理部200は、動画ファイルを構成する1フレーム目の画像の再生処理を行う(ステップS830)。1フレーム目の画像の再生処理においては、画像処理部200は、まず、1フレーム目の画像に含まれる顔画像の少なくとも一部を含む画像領域を顔領域FAとして検出する。次に、画像処理部200は、顔領域FAの位置に基づいて上記Init処理を実行し、Init処理の結果設定された特徴点CPの初期位置に基づいて、変形領域CAを設定する(初期位置として設定された特徴点CPのうちの輪郭点OP(外周に位置する特徴点CP)の位置に基づいて外枠点PPを設定し、外枠点PPに囲まれた領域を変形領域CAとして設定する)。そして、画像処理部200は、上述したように選択特徴点SCPを特徴点移動テーブル420に規定された移動量に従って移動させることにより、変形領域CA内の画像(三角形領域ごとの画像)を変形させる。そして、このように変形処理が施された画像領域を含む1フレーム目の画像を、コンピューター300のディスプレイ等に表示させる。この結果、例えば、変形処理のタイプとして「小顔化」が設定されていた場合には、小顔化された顔画像を含む画面(1フレーム目)が、ディスプレイ上に表示される。
【0100】
次に、画像処理部200は、動画ファイルを構成する1+kフレーム目の画像を対象とした再生処理を行う(ステップS840)。kは1以上の整数であり、画像処理部200は、ステップS830の直後のステップS840においてはk=1に設定し、以降、ステップS840を繰り返すたびにkの値を1ずつインクリメントする。1+kフレーム目(2フレーム目以降)の画像の再生処理においては、画像処理部200は、まず、1+k−1フレーム目の画像の再生処理において設定された特徴点CPの位置に基づいて、1+kフレーム目の画像上でFit処理を実行することにより、特徴点CPの設定位置を補正する。つまり、2フレーム目の画像の再生処理であれば、1フレーム目の再生処理時のInit処理によって初期位置として設定された特徴点CPに基づいて、2フレーム目の画像から平均形状画像I(W(x;p))を生成し、上述したように差分画像Ieに応じたパラメーター更新量ΔPにより特徴点CPの設定位置を補正する。3フレーム目以降の画像の再生処理であれば、直前のフレームの再生処理時のFit処理によって補正された特徴点CPに基づいて、現在のフレーム画像から平均形状画像I(W(x;p))を生成し、上述したように差分画像Ieに応じたパラメーター更新量ΔPにより特徴点CPの設定位置をさらに補正する。
【0101】
なお、一回のステップS840において行うFit処理では、パラメーター更新量ΔPによる特徴点CPの設定位置の補正を、一回だけ行うとしてもよい。画像処理部200は、Fit処理の結果補正された特徴点CPの設定位置に基づいて、変形領域CAを設定(特徴点CPのうちの輪郭点OP(外周に位置する特徴点CP)の位置に基づいて外枠点PPを設定し、外枠点PPに囲まれた領域を変形領域CAとして設定)した上で、上述したように選択特徴点SCPを特徴点移動テーブル420に規定された移動量に従って移動させることにより、変形領域CA内の画像(三角形領域ごとの画像)を変形させる。そして、このように変形処理が施された画像領域を含む1+kフレーム目の画像を、コンピューター300のディスプレイ等に表示させる。
【0102】
ただし、当該ステップS840では、画像処理部200は、特徴点移動テーブル420に規定された移動量をそのまま選択特徴点SCPの移動に適用するのではなく補正してもよい。つまり、Fit処理においてパラメーター更新量ΔPによって更新した後の形状パラメーターp1,p2に基づいて、Fit処理後の顔の向きを特定し、当該特定した顔の向きに応じて、上記横顔変形処理で説明したように、特徴点移動テーブル420に規定されたH方向及び又はV方向の移動量を補正し、補正後の移動量に従って選択特徴点SCPを移動させる。
【0103】
ステップS850では、画像処理部200は、動画ファイルを構成する最終のフレーム画像についてステップS840の処理を実行したか否か判定し、実行済みと判定した場合には、動画変形処理を終了する。一方、最終のフレーム画像についてステップS840の処理を未実行であると判定した場合には、ステップS840に戻り、次のフレーム画像を対象としてステップS840を実行する。
【0104】
このように動画変形処理によれば、動画を構成するフレーム画像毎に、動画内の顔画像について、輪郭点OPの検出、変形領域CAの設定および変形処理を施し、変形処理した顔画像を含む各フレーム画像を表示する。そのため、極めて自然に「小顔化」等の変形処理が施された顔が複数のフレーム画像に亘って滑らかに動く画像をユーザーに提供することができる。また、フレーム画像毎に繰り返し実行される上記ステップS840においては、直前のフレーム画像でInit処理またはFit処理によって設定された特徴点CPの位置に基づいてFit処理を行う。そのため、各Fit処理では、フレーム画像間で随時変化する顔の特徴部位の位置に対して、特徴点CP(輪郭点OP)の位置を精度良く追従させることができる。従って、フレーム画像毎の変形処理の結果は、各フレーム画像が含む顔の形状や位置や大きさを正確に反映した最適な結果となる。
【0105】
3.第3実施例
上記では、画像処理装置は、ユーザーが設定した変形処理のタイプや変形度合い等(変形態様)に応じた変形処理を実行するとしたが、かかる構成に代えて或いは加えて、変形処理の対象となる顔の属性に応じた変形処理を行うようにしてもよい。顔の属性とは、例えば、性別や年齢層などである。画像処理部200は、性別に応じた変形処理を行なう場合、属性判定部250(図1)によって、テクスチャー検出処理を実行する。テクスチャー検出処理は、上記輪郭点検出処理(図10のステップS240)の後に行う。
【0106】
図26は、テクスチャー検出処理を示すフローチャートである。属性判定部250(図1)は、輪郭点検出処理が完了した時点で注目画像OIに設定されている特徴点CPに基づいて、注目画像OIから平均形状画像I(W(x;p))を算出する(ステップS910)。
【0107】
さらに、属性判定部250は、平均形状画像I(W(x;p))に基づく平均テクスチャー画像J(Q(x;λ))を算出する(ステップS915)。平均テクスチャー画像J(Q(x;λ))は、以下の式(8)によって算出される。
【数8】
式(8)は、式(2)における顔のテクスチャーA(x)に平均形状画像I(W(x;p))を代入したものであり、テクスチャーパラメーターλiが適切に設定されれば、J(Q(x;λ))が平均顔画像A0(x)と等しくなる。なお、初めてステップS915において平均テクスチャー画像J(Q(x;λ))を算出する場合、属性判定部250は、適当なテクスチャーパラメーターλi(例えば、デフォルト値として予め決められたテクスチャーパラメーターλi)を用いて算出する。本実施例では、平均テクスチャー画像は、テクスチャーパラメーターλの変更による上記式(8)の変換Q(x;λ)によって生成された画像(画素群)Jという意味で、平均テクスチャー画像J(Q(x;λ))と表現している。
【0108】
属性判定部250は、平均テクスチャー画像J(Q(x;λ))と平均顔画像A0(x)との差分画像Ieを算出する(ステップS920)。属性判定部250は、差分画像Ieに基づき、テクスチャー検出処理が収束したか否かを判定する(ステップS930)。属性判定部250は、差分画像Ieのノルムを算出し、ノルムの値が予め設定されたしきい値より小さい場合には収束したと判定し、ノルムの値がしきい値以上の場合には未だ収束していないと判定する。なお、属性判定部250は、算出された差分画像Ieのノルムの値が前回のステップS930において算出された値よりも小さい場合には収束したと判定し、前回値以上である場合には未だ収束していないと判定するものとしてもよい。ここにおける収束の判定は、上述したFit処理における収束判定と同様の手法により行うことができる。
【0109】
ステップS930の収束判定において未だ収束していないと判定された場合には、属性判定部250は、パラメーター更新量ΔΛを算出する(ステップS940)。パラメーター更新量ΔΛは、特徴量であるm個のテクスチャーパラメーターλi(i=1〜mの整数。)の値の変更量を意味している。パラメーター更新量ΔΛは、下記の式(9)により算出される。すなわち、パラメーター更新量ΔΛは、アップデートマトリックスUと差分画像Ieとの積である。
【0110】
【数9】
【0111】
式(9)におけるアップデートマトリックスUは、差分画像Ieに基づきパラメーター更新量ΔΛを算出するために予め学習により設定されたM行N列のマトリックスであり、AAM情報AMI(図1)として内部メモリー120に格納されている。本実施例では、アップデートマトリックスUの行数Mは、テクスチャーパラメーターλiの数(m個)に等しく、列数Nは、平均形状領域BSA内の画素数(56画素×56画素−マスク領域MAの画素数)に等しい。アップデートマトリックスUは、下記の式(10),(11)により算出される。
【数10】
【数11】
式(10)および(11)における関数Qは、上記式(8)による変換を指し、変数Λは、テクスチャーパラメーターλiを指し、Tは転置行列を意味する。
【0112】
属性判定部250は、算出したパラメーター更新量ΔΛに基づきテクスチャーパラメーターλiを更新する(ステップS950)。これにより、顔のテクスチャーA(x)が補正される。すなわち、属性判定部250は、差分画像Ieのノルムが小さくなるように補正する。パラメーターの更新の後には、再度、補正されたテクスチャーパラメーターλiに基づいて平均テクスチャー画像J(Q(x;λ))の算出(ステップS915)、差分画像Ieの算出(ステップS920)、差分画像Ieに基づく収束判定(ステップS930)が行われる。再度の収束判定においても収束していないと判定された場合には、さらに、差分画像Ieに基づくパラメーター更新量ΔΛの算出(ステップS940)、パラメーターの更新によるテクスチャーの補正(ステップS950)が行われる。
【0113】
図26のステップS910からS950までの処理が繰り返し実行されると、上記式(2)で計算される顔のテクスチャーA(x)の各画素の輝度値(色彩値)が、実際の顔画像の輝度値に全体として近づいていき、ある時点で収束判定(ステップS930)において収束したと判定される。収束判定において収束したと判定されると、テクスチャー検出処理が完了する(ステップS960)。このとき設定されているテクスチャーパラメーターλiの値は、対応するテクスチャーベクトルAi(x)が表す顔の特性に関して、注目画像OIにおける実際の顔の見えと平均顔画像A0(x)見えとがどれぐらい異なっているかを示している。従って、このとき設定されているテクスチャーパラメーターλiの値により特定される顔のテクスチャーA(x)が最終的な顔の見えとして特定される。
【0114】
属性判定部250は、テクスチャー検出処理が完了した時点で設定されているm個のテクスチャーパラメーターλiのうち、性別の差に相関する第1テクスチャーベクトルA1(x)のテクスチャーパラメーターλ1を読み出す。そして、当該テクスチャーパラメーターλ1を所定のしきい値と比較して評価することにより、テクスチャーパラメーターλ1が示す性別が男性と女性とのどちらであるかを判定(推定)する。ただし、属性判定部250による顔の性別の判定は、テクスチャーパラメーターによる判定に限られず、注目画像OIに含まれている顔の性別を判定可能な手法であれば、公知の手法を含めてあらゆる手法を採用可能である。
【0115】
変形処理部240は、変形領域CA内の画像の変形処理(図10のステップS260)に際して、上記のように属性判定部250によって判定された顔の属性(性別)に応じて異なる変形を行なう。例えば、内部メモリー120には、男性の顔に対して適用して好適な移動量を規定した特徴点移動テーブル420と、女性の顔に対して適用して好適な移動量を規定した特徴点移動テーブル420とがそれぞれ予め格納されている。そして、変形処理部240は、上記判定された顔の性別に応じて特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、性別に応じた最適な変形処理を行う。或いは、上記第1実施例のように、変形処理のタイプ別かつ変形度合い別に、特徴点移動テーブル420を予め用意する場合、より詳細に、変形処理のタイプ別かつ変形度合い別かつ男女別に、特徴点移動テーブル420を内部メモリー120に用意しておく。そして、変形処理部240は、ユーザーによって設定されている変形処理のタイプ、変形度合い、および上記判定された顔の性別に応じて、特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、変形処理のタイプ、変形度合いおよび性別に応じた最適な変形処理を行うとしてもよい。
【0116】
画像処理部200は、年齢層に応じた変形処理を行なう場合、輪郭点検出処理が完了した時点で設定されている形状パラメーターpiの値を総合的に評価することにより、顔の年齢層を判定する処理(年齢層判定処理)を実行する。年齢層判定処理は、上記輪郭点検出処理(図10のステップS240)の後に行う。
【0117】
図27は、年齢層判定処理を示すフローチャートである。属性判定部250は、判定対象の年齢層を選択する(ステップS1010)。本実施例では、数種類の年齢層(例えば、幼児、少年、成人、老人などの各年齢層)を判定対象とし、幼児→少年→成人→老人…の順で判定対象を選択する。属性判定部250は、n個の形状パラメーターpiの中から、その年齢層らしさを示す判定値Eを算出するために使用するg個の形状パラメーター(形状パラメーターqiと表す。i=1〜gの整数。)を選択する(ステップS1020)。属性判定部250は、形状パラメーターqiを下記式(12)に代入することにより、判定値Eを算出する(ステップS1030)。
【数12】
【0118】
式(12)において、αiは各形状パラメーターqiについて設定された重み係数を示し、knは正規化のための係数を示している。すなわち、判定値Eは、形状パラメーターqiを重み係数αiに基づく重みによって線形結合した値である。なお、年齢層毎に、n個の形状パラメーターpiの中から選択されるg個の形状パラメーターqiは異ならせ、形状パラメーターqiに対する重み係数αiも各年齢層に対応して用意されているとしてもよい。判定値Eを算出すると、属性判定部250はすべての年齢層の選択を完了したか否かを判定し(ステップS1040)、完了していない場合にはステップS1010に戻り次の年齢層を選択する。これにより、数種類の各年齢層についてそれぞれ判定値Eを順に算出していくことができる。各年齢層について判定値Eが算出できると、属性判定部250は年齢層の判定を行う。具体的には、属性判定部250は、最も判定値Eの大きい年齢層を、注目画像OIに含まれている顔の年齢層であると判定(推定)する(ステップS1050)。ただし、属性判定部250による顔の年齢層の判定は、上述した手法に限られず、注目画像OIに含まれている顔の年齢層を判定可能な手法であれば、公知の手法を含めてあらゆる手法を採用可能である。
【0119】
変形処理部240は、変形領域CA内の画像の変形処理(図10のステップS260)に際して、上記のように属性判定部250によって判定された顔の年齢層に応じて異なる変形を行なう。例えば、内部メモリー120には、各年齢層の顔に対して適用して好適な移動量を規定した各特徴点移動テーブル420が予め格納されている。変形処理部240は、上記判定された顔の年齢層に応じて特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、年齢層に応じた最適な変形処理を行う。或いは、上記第1実施例のように、変形処理のタイプ別かつ変形度合い別に、特徴点移動テーブル420を予め用意する場合、より詳細に、変形処理のタイプ別かつ変形度合い別かつ年齢層別に、特徴点移動テーブル420を内部メモリー120に用意しておく。そして、変形処理部240は、ユーザーによって設定されている変形処理のタイプ、変形度合い、および上記判定された顔の年齢層に応じて、特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、変形処理のタイプ、変形度合いおよび年齢層に応じた最適な変形処理を行うとしてもよい。むろん、変形処理部240は、性別および年齢層の両方の違いに応じて、異なる変形処理を行うとしてもよい。
【0120】
4.第4実施例
ユーザーが望む変形結果をより精度良く得るために、個人の顔別の変形態様を予め画像処理装置(プリンター100)に登録する構成が考えられる。この場合、登録部260(図1)は、異なる個人(人物A,B,C…)毎の顔の特徴を表した情報(顔特徴情報)を、ユーザーによる操作部140の操作入力に応じて、或いは、外部のコンピューター300等から入力し、内部メモリー120に登録しておく。あるいは、画像処理部200は、個人毎の顔写真に基づいて、上記のように形状パラメーターやテクスチャーパラメーターを取得する処理を予め行なっておき、個人毎に取得した形状パラメーターやテクスチャーパラメーターを、顔特徴情報として登録部260に登録させる。また、登録部260は、上記個人(人物A,B,C…)毎の変形態様を、ユーザーによる操作部140の入力操作等に応じて設定し、当該設定した内容を内部メモリー120に登録しておく。ユーザーは、変形処理のタイプ、変形度合いはもちろん、変形処理の際に移動対象とすべき選択特徴点SCPの位置や数、さらには、選択特徴点SCP毎の移動量(移動後の位置)などの詳細な変形態様を、個人の顔毎に登録することができる。
【0121】
このような登録がなされていることを前提として、画像変形処理(図10)を行なう場合、識別部270(図1)は、注目画像OIに含まれている顔の個人識別を行う。本実施例においては、上記ステップS220の処理(図10)は不要である。個人識別を行うタイミングは様々であるが、例えば、識別部270は、輪郭点検出処理(図10のステップS240)の後に個人識別を行う。個人識別は、注目画像OIに含まれている顔の特徴を表す所定の情報と、上記登録部260によって内部メモリー120に登録済みの個人毎の顔特徴情報とを比較することにより、注目画像OIに含まれている顔が誰であるか(人物A,B,C…の誰であるか)を特定する処理であり、公知の個人識別のための手法を採用すればよい。上記顔特徴情報および、顔の特徴を表す所定の情報とは、例えば、上記形状パラメーターやテクスチャーパラメーターなどであってもよいし、それら以外の所定の情報であってもよい。
【0122】
このように識別部270によって、注目画像OI内の顔の個人が識別された場合(例えば、注目画像OI内の顔が人物Aであると特定された場合)、変形処理部240は、当該識別された顔(人物A)に対応して設定されている変形領域CA内の画像に、当該識別された顔(人物A)に対応して内部メモリー120に登録されている変形態様による変形処理を施す。この結果、注目画像OI内の人物Aの顔は、ユーザーが人物Aのために予め登録した変形態様による変形処理が施された結果となる。なお、本実施例においては、注目画像OIに顔が含まれている場合であっても、識別部270による個人識別が成功しなかった顔(人物A,B,C…の誰であるかが特定されなかった顔)については、その変形領域CAの変形処理は実行しないものとする。つまり、予め顔特徴情報および変形態様を登録しておいた人物についてのみ、変形処理が行われる構成としてもよい。
【0123】
5.変形例
上述した特徴点CPの初期位置設定処理(Init処理)や設定位置補正処理(Fit処理)では、注目画像OIに基づき平均形状画像I(W(x;p))を算出することにより、注目画像OIの特徴点CPの設定位置を平均顔画像A0(x)の特徴点CPの設定位置に整合させている。しかし逆に、平均顔画像A0(x)に対して画像変換を行うことにより、注目画像OIの特徴点CPと平均顔画像A0(x)の特徴点CPとの配置を整合させるとしてもよい。
【0124】
また、Init処理において、4つのグローバルパラメーター(大きさ、傾き、上下方向の位置、左右方向の位置)のそれぞれについての3段階の値の組み合わせに対応する仮設定位置が予め設定されているが、仮設定位置の設定に用いるパラメーターの種類および数やパラメーター値の段階数は変更可能である。
また上記では、サンプル画像SIwの画素群xのそれぞれにおける輝度値により構成される輝度値ベクトルに対する主成分分析によってテクスチャーモデルが設定されているが、顔画像のテクスチャー(見え)を表す輝度値以外の指標値(例えばRGB値)に対する主成分分析によってテクスチャーモデルが設定されるものとしてもよい。
【0125】
また、平均顔画像A0(x)のサイズは56画素×56画素に限られず他のサイズであってもよい。また、平均顔画像A0(x)は、マスク領域MA(図8)を含む必要はなく、平均形状領域BSAのみによって構成されるとしてもよい。また、平均顔画像A0(x)の代わりに、サンプル画像SIの統計的分析に基づき設定される他の基準顔画像が用いられるとしてもよい。
また上記では、AAMを用いた形状モデルおよびテクスチャーモデルの設定が行われているが、他のモデル化手法(例えばMorphable Modelと呼ばれる手法やActive Blobと呼ばれる手法)を用いて形状モデルおよびテクスチャーモデルの設定が行われるとしてもよい。
【0126】
また上記では、メモリーカードMCに格納された画像が注目画像OIに設定されているが、注目画像OIは例えばネットワークを介して取得された画像であってもよい。
また上記では、主に画像処理装置としてのプリンター100による画像処理を説明したが、処理の一部または全部がコンピューター300やデジタルスチルカメラ、デジタルビデオカメラ等の他の種類の画像処理装置により実行されるものとしてもよい。また、プリンター100はインクジェットプリンターに限らず、他の方式のプリンター、例えばレーザプリンターや昇華型プリンターであるとしてもよい。
【符号の説明】
【0127】
100…プリンター、110…CPU、120…内部メモリー、140…操作部、150…表示部、160…印刷機構、170…カードインターフェイス、172…カードスロット、200…画像処理部、210…顔領域検出部、220…輪郭点検出部、230…領域設定部、240…変形処理部、250…属性判定部、260…登録部、270…識別部、300…コンピューター、310…表示処理部、320…印刷処理部、420…特徴点移動テーブル
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
顔画像を変形する技術として、対象画像から顔の少なくとも一部を含む矩形領域(顔領域)を検出し、顔領域に基づいて変形領域を設定し、変形領域内を分割して生成した各小領域を変形することにより変形領域内の画像の変形を行なう画像処理装置が知られている(特許文献1参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009‐104672号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記文献においては、矩形として検出される顔領域の位置および大きさに基づいて変形領域を設定することにより、画像内の顔毎の変形(小顔化など)を行なっていた。
ここで、人顔は、面長の顔や丸顔など様々な形状をしており、更に性別、年齢などによっても違いがある。そのため、顔毎に自然かつ効果的な或いはユーザーが望む態様での画像変形結果を得るには、顔毎の形状等の違いをより正確に捉えた上で変形処理を行なうことが望ましい。
【0005】
また、左右上下にいくらか振れている顔画像(顔の向きが正面向きではない顔画像)についても、自然かつ効果的な或いはユーザーが望む態様での変形結果を得ることが望まれている。さらに、動画内では顔の向きや大きさ等は随時変化し得るものである。動画においては、顔の変形結果の質が動画を構成するコマ(フレーム画像)毎に大きく異なってしまうと、コマ間の繋がりを欠いてしまい、ユーザーの視聴に堪えられないものとなってしまう。
【0006】
本発明は上記課題の少なくとも一つを解決するためになされたものであり、画像における顔毎の特徴に応じて、顔毎に自然かつ効果的な或いはユーザーが望む態様での変形を行なうことができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の態様の一つは、画像処理装置であって、注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出部と、上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定部と、上記設定された対象領域内の画像の変形を行う変形処理部とを備える。
本発明によれば、変形処理の対象となる画像領域は、顔の細かな形状(輪郭)を正確に反映した領域となるため、その顔にとって最適な(自然かつ効果的な)変形結果を得ることができる。
【0008】
画像処理装置は、上記注目画像としての動画を構成するフレーム画像毎に、上記輪郭点の検出と対象領域の設定と画像の変形とを行なうとしてもよい。当該構成によれば、動画再生の際に、フレーム画像毎に顔の正確な形状に基づいた変形が行なわれるため、ユーザーは適切に変形された顔を含む動画を快適に視聴できる。
【0009】
上記検出部は、複数の特徴量に基づいて顔の輪郭を複数の特徴点の位置によって表現する形状モデルにおける特徴点の位置が、顔の輪郭に近づくように、当該特徴量を変更し、当該変更により補正された特徴点の位置を上記輪郭点の位置として検出するとしてもよい。当該構成によれば、各特徴量を変更することにより特徴点の位置を高い精度で顔の輪郭に一致にさせることができるため、上記輪郭点の位置を容易かつ正確に検出できる。
【0010】
上記検出部は、顔の向きの変化に対応する特徴量を変更することにより、向きが変更された顔の輪郭を表現する位置に特徴点を設定するとともに、上記領域設定部は、当該特徴点の設定に追従して上記対象領域の設定を行なうとしてもよい。当該構成によれば、例えば、注目画像から正面向きの顔の輪郭点が検出された場合、当該正面向きの顔の向きを変化させたときの顔についての変形結果を得ることができる。
【0011】
上記変形処理部は、上記顔の向きの変化の程度に応じて、画像の変形量を異ならせるとしてもよい。当該構成によれば、顔の向きの変化の程度に応じた最適な変形結果を得ることができる。
上記変形処理部は、上記顔の向きが変化する方向に略直交する方向にのみ変形させる所定箇所の画像に対する変形量は、上記顔の向きの変化の程度にかかわらず一定とする。当該構成によれば、例えば、正面を向く顔を左右に回転させたときの顔についての変形結果において、顎の先端部位に対する上下方向の変形量は、正面を向く顔であった場合の変形量と同じであるため、ユーザーは違和感の無い変形結果(例えば、動画)を見ることができる。
【0012】
上記領域設定部は、上記検出された輪郭点に囲まれた領域内に基準点を設定し、当該基準点と各輪郭点とを結ぶ各線分を各輪郭点よりも外側へ所定距離延長した位置に各外枠点を設定し、当該各外枠点によって囲まれた領域を上記対象領域としてもよい。当該構成によれば、検出された輪郭を一回り大きくした範囲が対象領域となるため、その顔の形状にとって最適な変形結果を得ることができる。
【0013】
画像処理装置は、上記顔の属性を判定する属性判定部を備え、上記変形処理部は、上記判定された顔の属性に応じて異なる変形を行なうとしてもよい。当該構成によれば、注目画像に含まれる顔の属性(例えば、性別や年齢など)に応じて変形量を最適化した変形処理を行なうことができるため、より一層、自然且つ効果的な顔画像の変形結果が得られる。
【0014】
画像処理装置は、個人の顔別の変形態様を外部からの入力に従って登録する登録部と、上記注目画像に含まれる顔の個人識別を行なう識別部とを備え、上記変形処理部は、上記識別部によって識別された顔に対応する変形態様が上記登録部によって登録されている場合には、当該識別された顔を含んで設定されている対象領域の画像に、当該識別された顔に対応する変形態様による変形を施すとしてもよい。当該構成によれば、変形処理のタイプ(例えば、小顔化、シャープ化、有名人化など)や変形量などを含む変形態様を、個人の顔毎に好みの内容で登録しておくことができる。その結果、個人の顔の輪郭の違いに基づいた変形であって更にユーザーが好む態様による変形結果を、顔毎に得ることができる。
【0015】
本発明の技術的思想は、画像処理装置以外によっても実現可能である。例えば、画像処理装置の各部が実行する処理工程を有する画像処理方法の発明や、画像処理装置の各部が実行する機能をコンピューターに実行させるコンピューター読取可能な画像処理プログラムの発明をも把握可能である。
【図面の簡単な説明】
【0016】
【図1】画像処理装置としてのプリンターの構成を概略的に示す説明図である。
【図2】AAM設定処理を示すフローチャートである。
【図3】サンプル画像SIの一例を示す説明図である。
【図4】サンプル画像SIにおける特徴点CPの設定方法の一例を示す説明図である。
【図5】サンプル画像SIに設定された特徴点CPの座標の一例を示す説明図である。
【図6】平均形状s0の一例を示す説明図である。
【図7】形状ベクトルsiおよび形状パラメーターpiと顔の形状sとの関係を例示した説明図である。
【図8】サンプル画像SIのワープWの方法の一例を示す説明図である。
【図9】平均顔画像A0(x)の一例を示す説明図である。
【図10】画像変形処理を示すフローチャートである。
【図11】注目画像OIにおける顔領域FAの検出結果の一例を示す説明図である。
【図12】特徴点CPの初期位置設定処理(Init処理)を示すフローチャートである。
【図13】グローバルパラメーターの値を変更することによる特徴点CPの仮設定位置の一例を示す説明図である。
【図14】平均形状画像I(W(x;p))の一例を示す説明図である。
【図15】特徴点CP設定位置補正処理(Fit処理)を示すフローチャートである。
【図16】輪郭点検出処理の結果の一例を示す説明図である。
【図17】変形領域CAの設定処理を示すフローチャートである。
【図18】輪郭点OPの周囲に設定された変形領域CAの一例を示す図である。
【図19】変形領域CA内の画像に対する変形処理を示すフローチャートである。
【図20】特徴点CPの中から選択された選択特徴点SCP等の一例を示す図である。
【図21】特徴点移動テーブルの一例を示す図である。
【図22】変形領域CA内の画像が変形される様子の一例を示す図である。
【図23】横顔変形処理を示すフローチャートである。
【図24】顔の形状sの向きの変更に応じた移動量の補正を説明する図である。
【図25】動画変形処理を示すフローチャートである。
【図26】テクスチャー検出処理を示すフローチャートである。
【図27】年齢層判定処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施例を図面を参照しながら説明する。
1.第1実施例
1‐1.画像処理装置の構成
図1は、本実施形態にかかる画像処理装置としてのプリンター100の構成を概略的に示す説明図である。またプリンター100は、本発明の画像処理方法を実行する装置である。プリンター100は、メモリーカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したインクジェット式カラープリンターである。プリンター100は、プリンター100の各部を制御するCPU110と、ROMやRAMによって構成された内部メモリー120と、ボタンやタッチパネルにより構成された操作部140と、液晶ディスプレイにより構成された表示部150と、印刷機構160と、カードインターフェイス(カードI/F)170と、を備えている。プリンター100は、さらに、他の機器(例えばデジタルスチルカメラやコンピューター300)とのデータ通信を行うためのインターフェイス(I/F)180を備える。プリンター100の各構成要素は、バスを介して双方向通信可能に接続されている。
【0018】
印刷機構160は、印刷データに基づき印刷を行う。カードインターフェイス170は、カードスロット172に挿入されたメモリーカードMCとの間でデータのやり取りを行うためのインターフェイスである。なお、本実施例では、メモリーカードMCに画像データを含む画像ファイルが格納されている。
【0019】
内部メモリー120には、画像処理部200と、表示処理部310と、印刷処理部320と、が格納されている。画像処理部200は、コンピュータープログラムであり、所定のオペレーティングシステムの下で、CPU110により実行されることで画像変形処理を実現する。画像変形処理では、まず、注目画像に含まれる顔画像における所定の特徴部位(例えば、目尻や鼻頭やフェイスライン)の座標位置を検出し、当該検出結果の一部を顔の輪郭に対応する輪郭点として取得する。そして、取得された輪郭点に基づいて定義した領域の画像を対象として変形処理を行なう。画像変形処理については後に詳述する。表示処理部310、および、印刷処理部320についてもCPU110により実行されることでぞれぞれの機能を実現する。
【0020】
画像処理部200は、画像変形処理を実現するためのプログラムモジュールとして、顔領域検出部210と、輪郭点検出部220と、領域設定部230と、変形処理部240と、属性判定部250と、登録部260と、識別部270と、を含んでいる。これら各部の機能についても後述する。
【0021】
表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージ、画像等を表示させるディスプレイドライバーである。印刷処理部320は、画像データから印刷データを生成し、印刷機構160を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータープログラムである。CPU110は、内部メモリー120から、これらのプログラム(画像処理部200、表示処理部310、印刷処理部320)を読み出して実行することにより、これら各部の機能を実現する。
【0022】
内部メモリー120には、AAM情報AMIが格納されている。AAM情報AMIは、後述のAAM設定処理によって予め設定される情報であり、顔の特徴部位の位置検出(輪郭点検出処理とも言う)において参照される。AAM情報AMIの内容については、後述のAAM設定処理の説明において詳述する。また、内部メモリー120には、特徴点移動テーブル420も格納されている。特徴点移動テーブル420は、上記変形処理の際に参照される(後述)。
【0023】
1‐2.AAM設定処理
図2は、本実施例におけるAAM設定処理の流れを示すフローチャートである。AAM設定処理は、AAM(アクティブアピアランスモデル(Active Appearance Model))と呼ばれる画像のモデル化に用いられる形状モデルおよびテクスチャーモデルを設定する処理である。本実施例において、AAM設定処理は、ユーザーがAAM設定用に用意されたコンピューター300を操作することにより行なわれる。コンピューター300は、CPUとRAMとROMとHDDとディスプレイと入力装置等を有しており、これらがバスによって接続されている。CPUはHDDに記録されたプログラムを読み出し、該プログラムに従った演算処理を実行することにより、コンピューター300が後述するAAM設定処理を実行する。
【0024】
はじめに、ユーザーは、人物の顔を含んだ複数の画像をサンプル画像SIとしてコンピューター300のメモリー(HDD)上に用意する(ステップS110)。
図3は、サンプル画像SIの一例を示す説明図である。図3に示すように、サンプル画像SIは、個性、人種・性別、表情(怒り、笑い、困り、驚き等)、向き(正面向き、上向き、下向き、右向き、左向き等)といった種々の属性に関して互いに相違する顔画像が含まれるように用意される。サンプル画像SIがそのように用意されれば、AAMによってあらゆる顔画像を精度良くモデル化することが可能となり、あらゆる顔画像を対象とした精度の良い輪郭点検出処理(後述)の実行が可能となる。なお、サンプル画像SIは、学習用画像とも呼ばれる。
【0025】
次に、ユーザーの所定の操作によって、コンピューター300は、それぞれのサンプル画像SIに含まれる顔画像に、特徴点CPを設定する(ステップS120)。
図4は、サンプル画像SIにおける特徴点CPの設定方法の一例を示す説明図である。特徴点CPは、顔画像における所定の特徴部位の位置を示す点である。本実施例では、所定の特徴部位として、人物の顔における眉毛上の所定位置(例えば端点や4分割点等、以下同じ)、目の輪郭上の所定位置、鼻筋および小鼻の輪郭上の所定位置、上下唇の輪郭上の所定位置、顎や頬やこめかみの輪郭(フェイスライン)上の所定位置、といった68箇所の部位が設定されている。すなわち、本実施例では、人物の顔に共通して含まれる顔の器官(眉毛、目、鼻、口)およびフェイスラインにおける所定位置を、特徴部位として設定する。図4に示すように、特徴点CPは、コンピューター300がディスプレイに表示したサンプル画像SIにおいてユーザーの操作により画面上で指定された68個の特徴部位を表す位置に設定(配置)される。このように設定された各特徴点CPは各特徴部位に対応しているため、顔画像における特徴点CPの配置は顔の形状を特定していると表現することができる。サンプル画像SIにおける特徴点CPの位置は、座標により特定される。
【0026】
図5は、サンプル画像SIに設定された特徴点CPの座標の一例を示す説明図である。図5において、SI(j)(j=1,2,3・・・)は各サンプル画像SIを示しており、CP(k)(k=0,1,・・・,67)は、対応するサンプル画像SIにおける人物の各特徴点CPを示している。つまり特徴点CPには0〜67までの番号kが付されており、一つ一つの番号はそれぞれに決められた特徴部位に対応している。また、CP(k)‐Xは、特徴点CP(k)のX座標を示しており、CP(k)‐Yは、特徴点CP(k)のY座標を示している。特徴点CPの座標としては、顔の大きさと顔の傾き(画像面内の傾き)と顔のX方向およびY方向の位置とのそれぞれについて正規化されたサンプル画像SIにおける所定の基準点(例えば画像の左下の点)を原点とした座標が用いられる。また、本実施例では、1つのサンプル画像SIに複数の人物の顔画像が含まれる場合が許容されており(例えばサンプル画像SI(2)には2人の顔画像が含まれている)、1つのサンプル画像SIにおける各人物は人物IDによって特定される。
【0027】
つづいて、コンピューター300は、AAMの形状モデルの設定をおこなう(ステップS130)。具体的には、各サンプル画像SIにおける68個の特徴点CPの座標(X座標およびY座標)により構成される座標ベクトル(図5参照)に対する主成分分析をおこない、特徴点CPの位置により特定される顔の形状sを下記の式(1)によりモデル化する。なお、式(1)で表した形状モデルは、特徴点CPの配置モデルとも呼ぶ。
【0028】
【数1】
【0029】
上記式(1)において、s0は平均形状である。
図6は、平均形状s0の一例を示す説明図である。図6(a)および(b)に示すように、平均形状s0は、サンプル画像SIの各特徴点CPについての平均位置(平均座標)により特定される平均的な顔の形状を表すモデルである。なお、本実施例では、平均形状s0において、外周に位置する特徴点CP(フェイスラインおよび眉毛に対応する特徴点CP、図4参照)を結ぶ直線により囲まれた領域(図6(b)においてハッチングを付して示す)を「平均形状領域BSA」と呼ぶ。平均形状s0においては、図6(a)に示すように、特徴点CPを頂点とする複数の三角形領域TAが、平均形状領域BSAをメッシュ状に分割するように設定される。
【0030】
形状モデルを表す上記式(1)において、siは形状ベクトルであり、piは形状ベクトルsiの重みを表す形状パラメーターである。形状ベクトルsiは、顔の形状sの特性を表すベクトルであり、主成分分析により得られる第i主成分に対応する固有ベクトルである。上記式(1)に示すように、本実施例における形状モデルでは、特徴点CPの配置を表す顔形状sが、平均形状s0とn個の形状ベクトルsiの線形結合との和としてモデル化される。形状モデルにおいて形状パラメーターpiを適切に設定することにより、あらゆる画像における顔の形状sを再現することが可能である。
【0031】
図7は、形状ベクトルsiおよび形状パラメーターpiと、顔の形状sとの関係を例示した説明図である。図7(a)に示すように、顔の形状sを特定するために、寄与率のより大きい主成分に対応する固有ベクトルから順に、累積寄与率に基づき設定された個数n(図7ではn=4)の固有ベクトルが、形状ベクトルsiとして採用される。形状ベクトルsiのそれぞれは、図7(a)の矢印に示すように、各特徴点CPの移動方向・移動量と対応している。本実施例では、最も寄与率の大きい第1主成分に対応する第1形状ベクトルs1は顔の左右振りにほぼ相関するベクトルとなっており、形状パラメーターp1を大小させることにより、図7(b)に示すように、顔の形状sの横方向の顔向きが変化する。2番目に寄与率の大きい第2主成分に対応する第2形状ベクトルs2は顔の上下振りにほぼ相関するベクトルとなっており、形状パラメーターp2を大小させることにより、図7(c)に示すように、顔の形状sの縦方向の顔向きが変化する。また、3番目に寄与率の大きい第3主成分に対応する第3形状ベクトルs3は顔の形状の縦横比にほぼ相関するベクトルとなっており、4番目に寄与率の大きい第4主成分に対応する第4形状ベクトルs4は口の開きの程度にほぼ相関するベクトルとなっている。
【0032】
このように、形状パラメーターの値は、顔の表情や、顔向きや、形状など顔画像の特徴を表す。形状パラメーターは、特徴部位の座標が既知の顔画像を含む複数のサンプル画像に基づいて算出された特徴量である。また形状モデルは、複数の特徴量に基づいて、顔の輪郭を複数の特徴点CP(フェイスラインおよび眉毛に対応する特徴点CP)の位置によって表現するモデルとも言える。なお、コンピューター300は、形状モデル設定ステップ(ステップS130)において設定した平均形状s0および形状ベクトルsiを、プリンター100に送信する。プリンター100は、送信されたこれらの平均形状s0および形状ベクトルsiの情報を、AAM情報AMI(図1)として内部メモリー120に格納する。
【0033】
つづいて、コンピューター300は、AAMのテクスチャーモデルの設定をおこなう(ステップS140)。具体的には、まず、各サンプル画像SIに対して、サンプル画像SIにおける特徴点CPの設定位置が平均形状s0における特徴点CPの設定位置と等しくなるように、画像変換(以下、「ワープW」とも呼ぶ)を行う。
【0034】
図8は、サンプル画像SIのワープWの方法の一例を示す説明図である。各サンプル画像SIにおいては、平均形状s0と同様に、外周に位置する特徴点CPにより囲まれた領域をメッシュ状に分割する複数の三角形領域TAが設定される。ワープWは、複数の三角形領域TAのそれぞれについてのアフィン変換の集合である。すなわち、ワープWにおいては、サンプル画像SIにおけるある三角形領域TAの画像は、平均形状s0における対応する三角形領域TAの画像へとアフィン変換される。ワープWにより、特徴点CPの設定位置が平均形状s0における特徴点CPの設定位置と等しいサンプル画像SI(以下「サンプル画像SIw」と表す)が生成される。
【0035】
なお、各サンプル画像SIwは、平均形状領域BSA(図8においてハッチングを付して示す)を内包する矩形枠を外周とし、平均形状領域BSA以外の領域(以下「マスク領域MA」とも呼ぶ)がマスクされた画像として生成される。平均形状領域BSAとマスク領域MAとを併せた画像領域を基準領域BAと呼ぶ。また、各サンプル画像SIwは、例えば、縦横56画素×56画素のサイズの画像として正規化される。
【0036】
次に、各サンプル画像SIwの画素群xのそれぞれにおける輝度値により構成される輝度値ベクトルに対する主成分分析が行われ、顔のテクスチャー(「見え」とも呼ぶ)A(x)が下記の式(2)によりモデル化される。なお、画素群xは、平均形状領域BSAに位置する画素の集合である。
【0037】
【数2】
【0038】
上記式(2)において、A0(x)は平均顔画像である。
図9は、平均顔画像A0(x)の一例を示す説明図である。平均顔画像A0(x)は、ワープWの後のサンプル画像SIw(図8参照)の平均の顔が表された画像である。すなわち、平均顔画像A0(x)は、サンプル画像SIwの平均形状領域BSA内の画素群xの画素値(輝度値)の平均をとることにより算出される画像である。従って、平均顔画像A0(x)は、平均的な顔の形状における平均的な顔のテクスチャー(見え)を表すモデルである。なお、平均顔画像A0(x)は、サンプル画像SIwと同様に、平均形状領域BSAとマスク領域MAとで構成され、例えば、縦横56画素×56画素のサイズの画像として算出される。
【0039】
テクスチャーモデルを表す上記式(2)において、Ai(x)はテクスチャーベクトルであり、λiはテクスチャーベクトルAi(x)の重みを表すテクスチャーパラメーターである。テクスチャーベクトルAi(x)は、顔のテクスチャーA(x)の特性を表すベクトルであり、具体的には、主成分分析により得られる第i主成分に対応する固有ベクトルである。すなわち、寄与率のより大きい主成分に対応する固有ベクトルから順に、累積寄与率に基づき設定された個数mの固有ベクトルが、テクスチャーベクトルAi(x)として採用される。本実施例では、最も寄与率の大きい第1主成分に対応する第1テクスチャーベクトルA1(x)は、顔色の変化(性別の差とも捉えられる)にほぼ相関するベクトルとなっている。
【0040】
上記式(2)に示すように、本実施例におけるテクスチャーモデルでは、顔の見えを表す顔のテクスチャーA(x)が、平均顔画像A0(x)とm個のテクスチャーベクトルAi(x)の線形結合との和としてモデル化される。テクスチャーモデルにおいてテクスチャーパラメーターλiを適切に設定することにより、あらゆる画像における顔のテクスチャーA(x)を再現することが可能である。
なお、コンピューター300は、テクスチャーモデル設定ステップ(ステップS140)において設定した平均顔画像A0(x)およびテクスチャーベクトルAi(x)を、プリンター100に送信する。プリンター100は、送信されたこれらの平均顔画像A0(x)およびテクスチャーベクトルAi(x)の情報を、AAM情報AMI(図1)として内部メモリー120に格納する。
【0041】
以上説明したAAM設定処理(図2)により、顔の形状をモデル化する形状モデルと、顔のテクスチャーをモデル化するテクスチャーモデルが設定される。設定された形状モデルとテクスチャーモデルとを組み合わせることにより、すなわち合成されたテクスチャーA(x)に対して平均形状s0から形状sへの変換(図8に示したワープWの逆変換)を行うことにより、あらゆる顔画像の形状およびテクスチャーを再現することが可能である。
【0042】
1‐3.画像変形処理
図10は、本実施例における画像変形処理を示すフローチャートである。画像変形処理は、概略的には、注目画像に含まれる顔の輪郭に対応する輪郭点を検出する処理(ステップS240)と、検出された輪郭点の位置に基づいて上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する処理(ステップS250)と、当該設定された領域内の画像の変形を行う処理(ステップS260)とを含む。
【0043】
はじめに、画像処理部200(図1)は、画像変形処理の対象となる注目画像を表す画像データを取得する(ステップS210)。本実施例のプリンター100では、カードスロット172にメモリーカードMCが挿入されると、メモリーカードMCに格納された画像ファイルのサムネイル画像が表示部150に表示される。処理の対象となる1つまたは複数の画像は、操作部140を介してユーザーにより選択される。画像処理部200は、選択された1つまたは複数の画像に対応する画像データを含む画像ファイルをメモリーカードMCより取得して内部メモリー120の所定の領域に格納する。なお、取得された画像データを注目画像データと呼び、注目画像データの表す画像を注目画像OIと呼ぶ。
【0044】
次に、画像処理部200は、変形処理のタイプや変形度合い等(変形態様)を設定する(ステップS220)。この場合、画像処理部200は、変形態様を設定するためのユーザーインターフェイスを表示部150に表示するように表示処理部310に指示し、当該ユーザーインターフェイスを通じてユーザーにより指定された変形処理のタイプや変形度合いを選択し、処理に用いる変形処理のタイプや変形度合いとして設定する。当該ユーザーインターフェイスを介して設定され得る変形処理のタイプとしては、例えば、顔の形状を全体的に小さくする「小顔化」、顔の形状を細く(シャープに)する「シャープ化」、顔を特定の俳優や歌手等の有名人に似せるように変形する「有名人化」等がある。また、ユーザーは、当該ユーザーインターフェイスを介して変形処理の変形度合い(変形量)を、例えば、「強」、「中」、「弱」の3段階の中から選択して指示することができる。
【0045】
顔領域検出部210(図1)は、注目画像OIに含まれる顔画像の少なくとも一部を含む画像領域を顔領域FAとして検出する(ステップS230)。顔領域FAの検出は、公知の顔検出手法を用いて行うことができる。公知の顔検出手法としては、例えば、パターンマッチングによる手法や肌色領域抽出による手法、サンプル画像を用いた学習(例えばニューラルネットワークを用いた学習や、ブースティングを用いた学習、サポートベクターマシーンを用いた学習等)により設定される学習データを用いる手法等がある。
【0046】
図11は、注目画像OIにおける顔領域FAの検出結果の一例を示す説明図である。図11には、注目画像OIにおいて検出された顔領域FAが示されている。本実施例では、おおよそ、顔の上下方向は額から顎まで、左右方向は両耳の外側まで含む矩形の領域が顔領域FAとして検出されるような顔検出手法が用いられている。
【0047】
輪郭点検出部220(図1)は、注目画像OIに含まれる顔の輪郭点検出処理を行なう(ステップS240)。この輪郭点検出処理は、大きく分けて、第一段階としての特徴点CPの初期位置設定処理(Init処理と呼ぶ)と、第二段階としての特徴点CPの設定位置補正処理(Fit処理と呼ぶ)とによって構成される。
図12は、本実施例におけるInit処理を示すフローチャートである。Init処理では、まず、輪郭点検出部220は、顔領域FAに対する顔画像の大きさ、傾き、上下方向の位置および左右方向の位置を表すグローバルパラメーターの値を種々変更して、特徴点CP(番号k=0〜67までの68個の特徴点CP)を注目画像OI上の仮設定位置に設定する(ステップS310)。
【0048】
図13は、グローバルパラメーターの値を変更することによる特徴点CPの仮設定位置の一例を示す説明図である。図13(a)および図13(b)には、注目画像OIにおける特徴点CPおよび特徴点CPをつないで形成されるメッシュを示している。特徴点CPをつないで形成されるメッシュは、上述したように特徴点CPを頂点とする複数の三角形領域TAの集合である(図6(a)等参照)。輪郭点検出部220は、図13(a)および図13(b)の中央に示すように、平均形状s0における特徴点CPの配置と等しい特徴点CPの配置を持ったメッシュであって、最も平均的なグローバルパラメーターの組み合わせに応じて顔領域FAに対する大きさ、傾き、位置を調整したメッシュを設定する。例えば、顔領域FAに対する大きさを表す3段階(大きい、標準、小さい)のグローバルパラメーターと、顔領域FAに対する上下方向の位置を表す3段階(上、中央、下)のグローバルパラメーターと、顔領域FAに対する左右方向の位置を表す3段階(左、中央、右)のグローバルパラメーターと、顔領域FAに対する傾きを表す3段階(反時計回り(−)に15度、0度、時計回り(+)に15度)のグローバルパラメーターとが存在するとする。この場合、最も平均的なグローバルパラメーターの組み合わせとは、顔領域FAに対する大きさは「標準」、顔領域FAに対する上下方向の位置および左右方向の位置はそれぞれ「中央」、かつ顔領域FAに対する傾きは「0度」を示すグローバルパラメーターの組み合わせを言う。本実施例では、図13(a)および図13(b)の中央に示すようなメッシュを構成する特徴点CPの設定位置(仮設定位置)を、「基準仮設定位置」とも呼ぶ。
【0049】
輪郭点検出部220は、また、基準仮設定位置に対して、グローバルパラメーターの値を種々変更させた複数の仮設定位置を設定する。グローバルパラメーター(大きさ、傾き、上下方向の位置および左右方向の位置)を変更することは、注目画像OIにおいて特徴点CPにより形成されるメッシュが拡大・縮小、傾きを変更、並行移動することに相当する。従って、輪郭点検出部220は、図13(a)に示すように、基準仮設定位置のメッシュを所定倍率で拡大または縮小したメッシュを形成するような仮設定位置(基準仮設定位置の図の下および上に示す)や、所定角度だけ時計回りまたは半時計回りに傾きを変更したメッシュを形成するような仮設定位置(基準仮設定位置の図の右および左に示す)を設定する。また、輪郭点検出部220は、基準仮設定位置のメッシュに対して、拡大・縮小および傾きの変更を組み合わせた変換を行ったメッシュを形成するような仮設定位置(基準仮設定位置の図の左上、左下、右上、右下に示す)も設定する。
【0050】
また、図13(b)に示すように、輪郭点検出部220は、基準仮設定位置のメッシュを所定量だけ上または下に並行移動したメッシュを形成するような仮設定位置(基準仮設定位置の図の上および下に示す)や、左または右に並行移動したメッシュを形成するような仮設定位置(基準仮設定位置の図の左および右に示す)を設定する。また、輪郭点検出部220は、基準仮設定位置のメッシュに対して、上下および左右の並行移動を組み合わせた変換を行ったメッシュを形成するような仮設定位置(基準仮設定位置の図の左上、左下、右上、右下に示す)も設定する。
【0051】
輪郭点検出部220は、図13(a)に示す基準仮設定位置以外の8つの仮設定位置のそれぞれにおけるメッシュに対して図13(b)に示す上下左右の並行移動が実行される仮設定位置も設定する。従って、本実施例では、上述したように夫々に3段階の値を持つ4つのグローバルパラメーター(大きさ、傾き、上下方向の位置、左右方向の位置)を組み合わせたことにより設定される80通り(=3×3×3×3−1)の仮設定位置と基準仮設定位置との、合計81通りの仮設定位置が設定される。
【0052】
輪郭点検出部220は、設定された各仮設定位置に対応する平均形状画像I(W(x;p))を生成する(ステップS320)。
図14は、平均形状画像I(W(x;p))の一例を示す説明図である。平均形状画像I(W(x;p))は、注目画像OIにおける特徴点CPの配置が平均形状s0における特徴点CPの配置と等しくなるような変換によって算出される。
【0053】
平均形状画像I(W(x;p))を算出するための変換は、サンプル画像SIw算出のための変換(図8参照)と同様に、三角形領域TA毎のアフィン変換の集合であるワープWにより行われる。具体的には、注目画像OIに仮設定された特徴点CP(図13参照)によって変換対象領域(メッシュの外周に位置する特徴点CPにより囲まれた領域)が特定され、この変換対象領域に対して三角形領域TA毎のアフィン変換が行われることにより、平均形状画像I(W(x;p))が算出される。本実施例では、平均形状画像I(W(x;p))は、平均顔画像A0(x)と同様に平均形状領域BSAおよびマスク領域MAにより構成され、平均顔画像A0(x)と同一サイズ(例えば、縦横56画素×56画素)の画像として算出される。
【0054】
なお上述したように、画素群xは、平均形状s0における平均形状領域BSAに位置する画素の集合である。本実施例では、平均形状画像は、形状パラメーターpによるワープW(x;p)によって生成された画像(画素群)Iという意味で、平均形状画像I(W(x;p))と表現している。図14には、図13(a)に示した9個の仮設定位置に対応する9個の平均形状画像I(W(x;p))を示している。
【0055】
輪郭点検出部220は、各仮設定位置に対応する平均形状画像I(W(x;p))と平均顔画像A0(x)との差分画像Ieを算出する(ステップS330)。特徴点CPの仮設定位置は81種類設定されているため、輪郭点検出部220は、81個の差分画像Ieを算出する。
【0056】
輪郭点検出部220は、各差分画像Ieの画素値からノルム(ユークリッド距離)を算出し、ノルムの値が最も小さい差分画像Ieに対応する仮設置位置(以下「ノルム最小仮設定位置」とも呼ぶ)を、注目画像OIにおける特徴点CPの初期位置として設定する(ステップS340)。ノルムを算出するための差分画像Ieの画素値は輝度値であってもよいしRGB値であってもよい。以上により、Init処理が完了する。Init処理後、輪郭点検出部220はFit処理を実行する。Fit処理では、輪郭点検出部220は、Init処理で初期位置として設定された特徴点CPの設定位置の補正を行う。
【0057】
図15は、Fit処理を示すフローチャートである。
輪郭点検出部220は、注目画像OIに設定されている特徴点CPに基づいて平均形状画像I(W(x;p))を算出する(ステップS410)。平均形状画像I(W(x;p))の算出方法は、Init処理におけるステップS320と同様である。
【0058】
輪郭点検出部220は、ステップS410で生成された平均形状画像I(W(x;p))と平均顔画像A0(x)との差分画像Ieを算出する(ステップS420)。輪郭点検出部220は、ステップS420で算出された差分画像Ieに基づき、Fit処理が収束したか否かを判定する(ステップS430)。輪郭点検出部220は、差分画像Ieのノルムを算出し、ノルムの値が予め設定されたしきい値より小さい場合には収束したと判定し、ノルムの値がしきい値以上の場合には未だ収束していないと判定する。なお、輪郭点検出部220は、算出された差分画像Ieのノルムの値が前回のステップS430において算出されたノルムの値よりも小さい場合には収束したと判定し、前回値以上である場合には未だ収束していないと判定してもよい。あるいは、輪郭点検出部220は、しきい値による判定と前回値との比較による判定とを組み合わせて収束判定を行うとしてもよい。例えば、輪郭点検出部220は、算出されたノルムの値が、しきい値より小さく、かつ、前回値より小さい場合にのみ収束したと判定し、それ以外の場合には未だ収束していないと判定するとしてもよい。
【0059】
ステップS430の収束判定において未だ収束していないと判定した場合、輪郭点検出部220はパラメーター更新量ΔPを算出する(ステップS440)。パラメーター更新量ΔPは、4個のグローバルパラメーター(全体としての大きさ、傾き、X方向位置、Y方向位置)、および、特徴量であるn個の形状パラメーターpi(i=1〜nの整数。)の値の変更量を意味している。なお、特徴点CPを初期位置に設定した直後においては、グローバルパラメーターは、Init処理(図12)において決定された値が設定されている。また、このときの特徴点CPの初期位置と平均形状s0の特徴点CPの設定位置との相違は、全体としての大きさ、傾き、位置の相違に限られるため、形状モデルにおける形状パラメーターpiの値はすべてゼロである。
【0060】
パラメーター更新量ΔPは、下記の式(3)により算出される。すなわち、パラメーター更新量ΔPは、アップデートマトリックスRと差分画像Ieとの積である。
【0061】
【数3】
【0062】
式(3)におけるアップデートマトリックスRは、差分画像Ieに基づきパラメーター更新量ΔPを算出するために予め学習により設定されたM行N列のマトリックスであり、AAM情報AMI(図1)として内部メモリー120に格納されている。本実施例では、アップデートマトリックスRの行数Mは、グローバルパラメーターの数(4個)と、形状パラメーターpiの数(n個)との和((4+n)個)に等しく、列数Nは、平均顔画像A0(x)の平均形状領域BSA内の画素数(56画素×56画素−マスク領域MAの画素数)に等しい。アップデートマトリックスRは、下記の式(4)および(5)により算出される。
【0063】
【数4】
【数5】
式(4)および(5)における関数Wは、ワープW(x;p)を指し、変数Pは、形状パラメーターpiを指し、Tは転置行列を意味する。
【0064】
輪郭点検出部220は、算出したパラメーター更新量ΔPに基づきパラメーター(4個のグローバルパラメーターおよびn個の形状パラメーター)を更新する(ステップS450)。これにより、注目画像OIにおける特徴点CPの設定位置が補正(更新)される。輪郭点検出部220は、差分画像Ieのノルムが小さくなるように特徴点CPの設定位置を補正する。すなわち、上記n個の形状パラメーターをパラメーター更新量ΔPで更新することで、形状モデルの上記式(1)に従って新たな形状sが生成されるため、輪郭点検出部220は、当該生成された形状sにおける特徴点CPを注目画像OIに設定する。このとき、輪郭点検出部220は、当該生成された形状sの大きさ、傾き、位置を、上記パラメーター更新量ΔPで更新した4個のグローバルパラメーターに応じて調整した上で、特徴点CPを注目画像OIに設定する。このようにパラメーターの更新に応じて注目画像OIに設定された特徴点CPの位置が、補正後の特徴点CPの設定位置である。
【0065】
パラメーターの更新の後には、再度、特徴点CPの設置位置が補正された注目画像OIからの平均形状画像I(W(x;p))の算出(ステップS410)、差分画像Ieの算出(ステップS420)、差分画像Ieに基づく収束判定(ステップS430)が行われる。再度の収束判定においても収束していないと判定された場合には、さらに、差分画像Ieに基づくパラメーター更新量ΔPの算出(ステップS440)、パラメーターの更新による特徴点CPの設定位置補正(ステップS450)が行われる。
【0066】
図15のステップS410からS450までの処理が繰り返し実行されると、注目画像OIにおける各特徴部位に対応する特徴点CPの位置は実際の特徴部位の位置に全体として近づいていき、ある時点で収束判定(ステップS430)において収束したと判定される。収束判定において収束したと判定されると、輪郭点検出処理が完了する(ステップS460)。このとき設定されているグローバルパラメーターおよび形状パラメーターの値により特定される特徴点CPの設定位置が、最終的な注目画像OIにおける特徴点CPの設定位置として特定される。
【0067】
図16は、輪郭点検出処理の結果の一例を示す説明図である。図16には、注目画像OIにおいて最終的に特定された特徴点CP(番号k=0〜67までの68個の特徴点CP)の設定位置が示されている。特徴点CPの設定位置により、注目画像OIに含まれる顔の特徴部位(人物の顔の器官(眉毛、目、鼻、口)およびフェイスラインにおける所定位置)の座標位置が特定される。そのため、輪郭点検出部220は、収束判定(ステップS430)において収束したと判定した時に、特徴点CPの設定位置のうち、外周に位置する特徴点CP(フェイスラインおよび眉毛に対応する特徴点CP)の設定位置を、注目画像OIにおける顔の輪郭点OPの座標位置として取得し、輪郭点検出処理を完了させる。
【0068】
領域設定部230(図1)は、上記ステップS240で検出された輪郭点OPの位置に基づいて、当該輪郭点OPで囲まれた領域よりも広い領域であって顔の少なくとも一部を含む領域を、変形処理の対象領域として設定する(ステップS250)。以下では、ステップS250で設定する対象領域を、変形領域CAと呼ぶ。
【0069】
図17は、ステップS250の処理の詳細を示したフローチャートである。
図18は、当該ステップS250の処理によって注目画像OIに設定される変形領域CAを例示している。まず、領域設定部230は、注目画像OIにおいて、輪郭点OPに囲まれた領域内に基準点SPを設定する(ステップS510)。基準点SPとは、輪郭点OPに囲まれた領域のほぼ中心に相当する点である。本実施例では、顔領域FAの重心を基準点SPとして設定する。ただし領域設定部230は、注目画像OIにおいて設定された特徴点CPのうち、例えば、鼻の所定位置に該当する特徴点CPの位置を、基準点SPとしてもよい。
【0070】
次に、領域設定部230は、基準点SPと各輪郭点OPとを結ぶ各線分Lを生成するとともに、各線分Lを、各輪郭点OPから外側へ所定距離だけ延長する(ステップS520)。ここで言う所定距離とは、例えば、顔領域FAのサイズの10%程度の長さを言う。顔領域FAのサイズとは、例えば、顔領域FAの縦幅と横幅との平均値である。なお、顔領域FAの縦幅とは、顔の高さ方向(上下方向)における顔領域FAの幅であり、顔領域FAの横幅とは、顔の横方向(左右方向)における顔領域FAの幅である。
領域設定部230は、上記ステップS520で延長した各線分Lの端部(基準点SPではない端部)に、外枠点PPを設定する(ステップS530)。つまり、上記延長した各線分Lの端部を各外枠点PPとする。
【0071】
ただし、各輪郭点OPに対応する各外枠点PPの設定方法は、上述した手法に限られない。つまり、各外枠点PPは、各輪郭点OPとの所定の位置関係に基づいて各輪郭点OPの外側に設定される点である。
領域設定部230は、隣接する外枠点PP同士を線分で結ぶことにより、外枠点PPで囲まれた領域を設定し、かかる領域を変形領域CAとする(ステップS540)。
【0072】
図18では、黒丸で表した各輪郭点OPの外側に、白丸で各外枠点PPを示している。このように外枠点PPで囲まれた変形領域CAの形状は、輪郭点OPで囲まれた領域の形状に沿った形状となっている。つまり変形領域CAは、注目画像OIに含まれている顔の形状を詳細に反映した形となっている。
【0073】
変形処理部240(図1)は、変形領域CA内の少なくとも一部の画像の変形を行なう(ステップS260)。
図19は、ステップS260の処理の詳細を示したフローチャートである。まず、変形処理部240は、変形領域CA内の画像に対する変形処理の際に移動対象とする特徴点CPを、上記輪郭点検出処理で注目画像OIにおいて設定位置が最終的に特定された特徴点CP(輪郭点OPを含む特徴点CP)の中から、上記ステップS220(図10)で設定された変形処理のタイプに応じて選択する(ステップS610)。
【0074】
上述したように、変形処理のタイプは、「小顔化」、「シャープ化」、「有名人化」等の中からユーザーが入力操作により任意に設定可能であり、変形処理のタイプと移動対象として選択すべき特徴点CPとの対応関係は、予め決められているものとする。例えば、「小顔化」が設定されている場合には、変形処理部240は、「小顔化」のために移動対象とする特徴点CPを選択する。変形処理部240は、「小顔化」のための移動対象の特徴点CPとして、例えば、顎から頬にかけてのフェイスラインに対応する所定の番号にかかる複数の特徴点CP(輪郭点OP)を選択する。以下では、ステップS610において選択した特徴点CPを、選択特徴点SCPと呼ぶ。ステップS610においては外枠点PPは選択されない。
【0075】
なお、図20に示すように、「小顔化」のための選択特徴点SCPを、便宜上、SCP0〜SCP10と表現する。図20(後述の図22も同様)では、特徴点CP(輪郭点OPを含む特徴点CP)を黒丸で表し、上記外枠点PPを図18と同様に白丸で表している。
【0076】
次に、変形処理部240は、内部メモリー120に格納された特徴点移動テーブル420に規定された移動量(あるいは、計算により設定された移動量)に従い、選択特徴点SCPの位置を移動して小領域(三角形領域)を変形することにより、変形領域CAを変形させる(ステップS620)。ここで言う三角形領域とは、変形領域CAを構成する複数の三角形領域であって、外枠点PPまたは特徴点CPを頂点として分割される三角形領域を意味している。特徴点移動テーブル420は、上述した変形処理のタイプ別、かつ、変形度合い(上述の例では、「強」、「中」、「弱」)別に予め用意されている。従って、当該S620では、変形処理部420は、上記ステップS220で設定された変形処理のタイプおよび変形度合いに対応する特徴点移動テーブル420を用いる。なお上記移動量は、画像の変形量とも呼べる。
【0077】
図21は、特徴点移動テーブル420(変形処理のタイプが「小顔化」かつ、変形度合いが「中」、に対応する特徴点移動テーブル420)の一例を示している。特徴点移動テーブル420では、その変形処理のタイプに対応する選択特徴点SCP毎に、基準線RLと直交する方向(H方向と呼ぶ。)に沿った移動量及び基準線RLと平行な方向(V方向と呼ぶ。)に沿った移動量を定義している。基準線RLとは、顔領域FAの重心を通り、顔領域FAの高さ方向に沿った辺に平行な直線である(図18参照)。従って、H方向は顔の横方向に略相等し、V方向は顔の上下方向に略相等する。この移動量は、例えば、注目画像OIの画素ピッチを単位として表されたり、所定のサイズを100としたときの比率などで表される。当該所定のサイズとは、例えば、H方向に対する所定のサイズであれば、顔領域FAの横幅や、輪郭点OPによって囲まれた領域の横幅などが該当し、V方向に対する所定のサイズであれば、顔領域FAの縦幅や、輪郭点OPによって囲まれた領域の縦幅などが該当する。
【0078】
また、H方向については、注目画像OIに向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、V方向については、注目画像OIに向かって上方への移動量が正の値として表され、下方への移動量が負の値として表される。このような移動量は、特徴点移動テーブル420が対応している変形度合いのレベルに応じて、異なる値に設定されている。
【0079】
なお、変形処理のタイプとして「有名人化」が設定されている場合には、変形処理部240は、単純に特徴点移動テーブル420を参照するのではなく、選択特徴点SCP毎の移動量を計算により設定して使用する。例えば、変形処理部240は、内部メモリー120に予め格納された、「有名人化」の目的となる有名人の顔における特徴部位(眉毛、目、鼻、口およびフェイスラインにおける所定位置)の位置を表す特徴点からなるモデル(有名人顔モデル)を読み出す。そして、上記輪郭点OPに囲まれた領域の画像と、有名人顔モデルの画像とのスケールを一致させた上で、「有名人化」のための選択特徴点SCPと、当該選択特徴点SCPに対応する有名人顔モデル内の特徴点との位置の差異を算出する。そして、変形処理部240は、このように算出した差異を無くすようなH方向およびV方向への移動量を、各選択特徴点SCPに対して設定する。ただし、当該差異を完全に打ち消すような移動量を設定すると、変形後の画像が不自然なものとなってしまうこともある。そのため、変形処理部240は、当該差異の何割かを打ち消すためのH方向およびV方向への移動量を選択特徴点SCPに設定する。当該差異の何割を打ち消すかは、上記ステップS220で設定された変形度合いのレベルに応じて異ならせる。
【0080】
図22は、特徴点移動テーブル420に従った選択特徴点SCPの位置の移動の一例を示す説明図である。図22の例では、変形領域CA内において、上記選択特徴点SCP0〜SCP10の位置を移動させて変形する際の具体的な変形態様(小顔化)を示している。変形処理部240は、変形領域CAを構成する各三角形領域について、選択特徴点SCPの位置移動前の状態における領域の画像が選択特徴点CPの位置移動により新たに定義された領域の画像となるように、画像の変形処理を行う。図22では、理解容易のために、上段(変形前の図)において、各選択特徴点SCPの移動方向を矢印で例示しており、下段(変形後の図)において、選択特徴点SCPの移動に伴って変形した各三角形領域にハッチングを付している。つまり、3つの頂点の中に1つでも選択特徴点SCPを含んでいる三角形領域は全て変形の対象となる。三角形領域毎の画像の変形処理は、上述したようにアフィン変換によって実現してもよいし、特開2009‐104672号公報に記載された方法によって行ってもよい。
【0081】
図22に示すように、ステップS620における選択特徴点SCPの移動の結果、V方向に関しては、選択特徴点SCP0〜SCP10のうち、左右の頬の最も高い位置に対応する選択特徴点SCP0,SCP10を除く選択特徴点SCP1〜SCP9の位置が上方に移動される。また、H方向に関しては、顎の先端に対応する選択特徴点SCP5を除いて、向かって左側の選択特徴点SCP0〜SCP4の位置が右方向に移動され、向かって右側の選択特徴点SCP6〜SCP10の位置が左方向に移動される。そのため、注目画像OIにおける顔画像は、フェイスライン内側の顎や頬を含む領域が全体的に顔の略中心方向に向かって縮小するように変形され、フェイスライン外側の領域(特に、首の領域)が全体的に顔の略中心方向に向かって延びるように変形される。この結果、小顔化が実現される。本実施例では、変形領域CAの内外の画像間の境界が不自然とならないように、変形領域CAの外枠上に位置する外枠点PPの位置は移動されないものとしている。
【0082】
このように本実施例によれば、画像処理装置は、注目画像OIに含まれる顔画像の特徴部位の座標位置に対応する特徴点CPを検出することにより、顔の輪郭に対応する輪郭点OPを取得し、輪郭点OPの位置に基づいて輪郭点OPに囲まれた領域の外側に外枠点PPを設定し、外枠点PPで囲まれた領域を変形領域CAとして設定する。そして、変形領域CA内の特徴点CPのうち所定の特徴点(選択特徴点SCP)を移動させて変形領域CA内の小領域単位での変形を行なうことにより、例えば「小顔化」等の目的に応じた画像変形を実現する。つまり、上記のように設定される変形領域CAは、顔の具体的な輪郭(形状)を正確に反映した形状である。そのため、変形領域CA内の画像を変形処理の対象とすることで、そのとき処理対象としている顔にとって極めて自然な、かつ目的としている画像変形の効果が確実に表れた、画像変形結果を得ることができる。
【0083】
また、本実施例によれば、上記のように顔の輪郭を正確に反映した変形領域CAの画像を対象として「小顔化」や「有名人化」等、ユーザーが任意に設定したタイプの変形処理がユーザーの好みの変形度合いで実行されるため、違和感の無い、ユーザーが望む最適な画像変形結果が得られる。
【0084】
本発明は第1実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、以下のような各実施例も可能である。むろん、第1実施例や各実施例を適宜組み合わた構成も、本発明の範囲となる。以下において特に言及しない部分については、第1実施例で説明した内容が適用されるものとする。
【0085】
2.第2実施例
本発明においては、ある方向を向いた顔画像を元に、別の方向を向いた顔画像であって変形処理が施された顔画像を生成することができる。例えば、ステップS240(図10)が終了した時点で、注目画像OIから、正面を向いた顔の形状を表す特徴点CP(輪郭点OPを含む。)の設定位置が検出されたとする。画像処理部200は、顔が正面向きであるか否かは、Fit処理が完了した時点での形状パラメーター(特に、形状パラメーターp1および形状パラメーターp2)の値を評価する(例えば、所定のしきい値と比較する)ことにより判定できる。また、領域設定部230により、当該正面を向いた顔についての輪郭点OPの位置に基づいて、外枠点PPも設定されたものとする。このような状況において、本実施例では、正面向きの顔画像について設定された特徴点CPおよび外枠点PPに基づいて、横方向(左右方向)にある程度振りのある顔画像であって変形処理がなされた顔画像を生成する処理(横顔変形処理と呼ぶ。)について説明する。
【0086】
横顔変形処理を説明する前提として、本実施例においては、基本的に各特徴点CPは3次元の位置情報を有するものとする。上記第1実施例では、特徴点CPはX方向の座標とY方向の座標で表される2次元(平面)情報であったが、本実施例では、特徴点CPは、さらにZ方向の座標を持つ3次元(立体)情報である。つまり前提としての、AAM設定処理においては、位置がX,Y,Z座標で表される68個の特徴点CPを有するサンプル画像SIを複数用意し、各サンプル画像SIにおける特徴点CP(X座標、Y座標およびZ座標)により構成される座標ベクトルに対する主成分分析を行なうことにより、顔の形状sをモデル化しておく(3次元形状モデルを生成しておく)。このような3次元形状モデルを用いる場合であっても、注目画像OIに対して上記Init処理とFit処理とを行うことにより、注目画像OIに含まれた顔の各特徴部位に対応した各特徴点CP(X,Y,Z座標)からなる形状s(立体形状)を設定することができる。なお、この場合、平均形状s0の特徴点CPや平均顔画像A0(x)も3次元の位置情報を有するものとする。そして、このように設定した形状sについて、顔の向きの変化に対応する形状パラメーターを変更することにより、正面向きの状態から振りのある状態へと変形させることができる。
【0087】
上記のように特徴点CPを3次元情報とした場合、輪郭点OPの位置に基づいて設定される外枠点PPも、X,Y,Z座標を有する3次元情報とする。領域設定部230は、3次元空間上で、例えば鼻の所定位置に対応する特徴点CP付近に基準点SPを設定し、基準点SPと各輪郭点OPとを結ぶ各線分Lを、各輪郭点OPから外側へ所定距離だけ延長した位置に、各輪郭点OPに対応する外枠点PPを設定する。
【0088】
図23は、横顔変形処理を示したフローチャートである。輪郭点検出部220は、顔の向きの変化に対応する形状パラメーター(顔の形状sの左右方向への向き(振り)の程度を変化させる上記形状パラメーターp1)を所定量変更することにより、顔の形状sを、正面向きの状態から振りのある状態(例えば、左振りの状態。図7(b)参照。)へと変化させる(ステップS710)。つまり、立体形状(ワイヤーフレーム)としての形状sが顔の左方向に回転する。この結果、向きがある程度左向き(注目画像OIに正対した向きから見て左向き画像)となった顔の輪郭や器官の位置を表現する特徴点CPが設定される。
【0089】
領域設定部230は、当該顔向きの変化に応じた特徴点CPの位置の変更に追従して、外枠点PPの位置を変更し、変形領域CAを設定し直す(ステップS720)。つまり、正面向きの顔の形状sを表現していた特徴点CPのうちの輪郭点OPの位置に基づいて設定されていた外枠点PPの位置を、対応する輪郭点OPとの相対的な位置関係を維持しつつ、上記形状パラメーターp1の変更による形状sの振り量(左方向への回転量)に応じて変更する。この結果、左振りの顔の形状sを表す特徴点CPの周囲を取り囲む外枠点PPによって、当該左振りの顔の形状sに対応した変形領域CAが新たに設定される。なお、当該ステップS720の処理は、顔の形状sの向きの変化(ステップS710)とほぼ同時に実行される。
【0090】
変形処理部240は、上記ステップS610と同様に、変形処理の際の移動対象とする特徴点CP(選択特徴点SCP)を選択する(ステップS730)。
次に、変形処理部240は、特徴点移動テーブル420に規定された選択特徴点SCP毎の移動量および上記ステップS710における形状パラメーターの変更量に基づいて、選択特徴点SCP毎の移動量を算出する(ステップS740)。具体的には、変形処理部240は、上記ステップS710において上述したように顔の左右方向への向きの程度を変化させる形状パラメーターp1が変更されている場合には、この形状パラメーターp1の変更量に応じて、特徴点移動テーブル420に規定された選択特徴点SCP毎の移動量のうちH方向への移動量を補正する。
【0091】
図24は、形状パラメーターp1の変更量に応じて、選択特徴点SCPのH方向への移動量を算出する様子を説明する図である。図24では、上記ステップS710において形状パラメーターp1を変更したことにより、形状sが正面向きの状態から顔の横方向へ回転した(ある程度左振りとなった)状況の一部を、顔の真上から見た状態を示している。図24においては、形状sに含まれるある特徴点CP1と、これに隣接する特徴点CP2と、特徴点CP2に対応する外枠点PP1とが、角度θだけ回転した様子を示している。角度θは、上記ステップS710における形状パラメーターp1の変更量に応じて、一義的に定まる3次元空間上での回転量である。ここでは、回転後の各点CP1,CP2,PP1についてそれぞれ「´」を付して表している。なお、特徴点CP2は、輪郭点OPであり、かつ選択特徴点SCPでもある。
【0092】
本実施例では、内部メモリー120に予め格納されている特徴点移動テーブル420は、変形処理の対象となる顔が正面を向いている(左右にも上下にも振れていない)ことを前提として各選択特徴点SCPに対するH方向およびV方向の移動量を規定している。そこで、選択特徴点SCPに対して特徴点移動テーブル420に規定されているH方向の移動量をhとした場合、形状パラメーターp1の変更によって形状sが正面向きの状態から顔の横方向へ角度θだけ回転したときの、選択特徴点SCPに対するH方向の移動量h´は、下記式(6)によって算出される。
【数6】
【0093】
なお、変形処理部240は、上記ステップS710において顔の上下方向への向きの程度を変化させる形状パラメーターp2が変更されている場合には、この形状パラメーターp2の変更量に応じて、特徴点移動テーブル420に規定された選択特徴点SCP毎の移動量のうちV方向への移動量を補正する。つまり、特徴点移動テーブル420に規定されているV方向の移動量をvとした場合、形状パラメーターp2の変更によって形状sが正面向きの状態から顔の上下方向へ角度θだけ回転したとき(上振りまたは下振りの状態となったとき。図7(c)参照。)の、選択特徴点SCPに対するV方向の移動量v´は、下記式(7)によって算出される。
【数7】
【0094】
このように本実施例では、変形処理部240は、上記顔の向きの変化の程度に応じて、画像の変形量を異ならせている。変形処理部240は、上記のように算出した移動量(H方向及び又はV方向の移動量)に従い、上記ステップS710で向きが変更された後の形状sにおける選択特徴点SCPの位置をH方向及び又はV方向に移動させて三角形領域を変形する(ステップS750)。つまり、選択特徴点SCPをいずれかの頂点に含む各三角形領域について、上記ステップS710での向きの変更前の状態における領域の画像が、当該向きの変更および上記算出された移動量による選択特徴点SCPの移動により新たに定義された領域の画像となるように、変形処理を行う。この結果、正面向きの顔画像から、別の方向を向いた顔画像(例えば、左振りの顔)であって、その顔の振りの程度に応じた変形量によって適切に変形処理が施された(例えば「小顔化」が施された)顔画像が得られる。
【0095】
上記説明で明らかなように、本実施例では、形状sに顔の横方向への振りを加えた上で変形処理を行うときには、選択特徴点SCPのH方向の移動量を補正し、形状sに顔の上下方向への振りを加えた上で変形処理を行うときには、選択特徴点SCPのV方向の移動量を補正する。これは言い換えれば、元々V方向への移動量のみが規定されている選択特徴点SCP(例えば、顎の先端に対応する選択特徴点SCP5。図22参照。)に関しては、形状sに顔の横方向への振りだけを加えた上で変形処理を行うときには移動量(変形量)は一定である。同様に、H方向への移動量のみが規定されている選択特徴点SCPに関しては、形状sに顔の上下方向への振りだけを加えた上で変形処理を行うときには移動量(変形量)は一定である。つまり変形処理部240は、形状パラメーターの変更により顔の向きが変化する方向に略直交する方向にのみ変形させる箇所(選択特徴点SCP)の画像に対する変形量は、顔の向きの変化の程度にかかわらず一定としている。
【0096】
ここで、注目画像OIは静止画に限定されず動画であってもよい。例えば、上述した横顔変形処理のように、向き等が変化する顔の変化に追従して変形領域CAを設定して変形を施す処理を、動画を対象として行ってもよい。
【0097】
図25は、動画内の顔画像に対して変形を施す処理(動画変形処理)をフローチャートにより示している。当該フローチャートの処理を実行する画像処理装置は、プリンター100であってもよいが、ここではコンピューター300であるとする。そして、コンピューター300は、上記画像処理部200と同等の機能を実行可能なコンピュータープログラム(便宜上、画像処理部200と呼ぶ。)を有しており、当該コンピュータープログラム(画像処理部200)に従って、動画変形処理を実行する。本実施例における動画変形処理とは、概略的には、注目画像OIとしての動画を構成するフレーム画像毎に、顔の輪郭点OP(特徴点CP)の検出と変形領域CAの設定と画像の変形と、を行なう処理である。
【0098】
まず、画像処理部200は、動画変形処理の対象となる注目画像OIとしての動画を表す動画ファイルを、コンピューター300のHDD等から取得し(ステップS810)、上記ステップS220(図10)と同様に 変形処理のタイプや変形度合い等を設定する(ステップS820)。
【0099】
次に、画像処理部200は、動画ファイルを構成する1フレーム目の画像の再生処理を行う(ステップS830)。1フレーム目の画像の再生処理においては、画像処理部200は、まず、1フレーム目の画像に含まれる顔画像の少なくとも一部を含む画像領域を顔領域FAとして検出する。次に、画像処理部200は、顔領域FAの位置に基づいて上記Init処理を実行し、Init処理の結果設定された特徴点CPの初期位置に基づいて、変形領域CAを設定する(初期位置として設定された特徴点CPのうちの輪郭点OP(外周に位置する特徴点CP)の位置に基づいて外枠点PPを設定し、外枠点PPに囲まれた領域を変形領域CAとして設定する)。そして、画像処理部200は、上述したように選択特徴点SCPを特徴点移動テーブル420に規定された移動量に従って移動させることにより、変形領域CA内の画像(三角形領域ごとの画像)を変形させる。そして、このように変形処理が施された画像領域を含む1フレーム目の画像を、コンピューター300のディスプレイ等に表示させる。この結果、例えば、変形処理のタイプとして「小顔化」が設定されていた場合には、小顔化された顔画像を含む画面(1フレーム目)が、ディスプレイ上に表示される。
【0100】
次に、画像処理部200は、動画ファイルを構成する1+kフレーム目の画像を対象とした再生処理を行う(ステップS840)。kは1以上の整数であり、画像処理部200は、ステップS830の直後のステップS840においてはk=1に設定し、以降、ステップS840を繰り返すたびにkの値を1ずつインクリメントする。1+kフレーム目(2フレーム目以降)の画像の再生処理においては、画像処理部200は、まず、1+k−1フレーム目の画像の再生処理において設定された特徴点CPの位置に基づいて、1+kフレーム目の画像上でFit処理を実行することにより、特徴点CPの設定位置を補正する。つまり、2フレーム目の画像の再生処理であれば、1フレーム目の再生処理時のInit処理によって初期位置として設定された特徴点CPに基づいて、2フレーム目の画像から平均形状画像I(W(x;p))を生成し、上述したように差分画像Ieに応じたパラメーター更新量ΔPにより特徴点CPの設定位置を補正する。3フレーム目以降の画像の再生処理であれば、直前のフレームの再生処理時のFit処理によって補正された特徴点CPに基づいて、現在のフレーム画像から平均形状画像I(W(x;p))を生成し、上述したように差分画像Ieに応じたパラメーター更新量ΔPにより特徴点CPの設定位置をさらに補正する。
【0101】
なお、一回のステップS840において行うFit処理では、パラメーター更新量ΔPによる特徴点CPの設定位置の補正を、一回だけ行うとしてもよい。画像処理部200は、Fit処理の結果補正された特徴点CPの設定位置に基づいて、変形領域CAを設定(特徴点CPのうちの輪郭点OP(外周に位置する特徴点CP)の位置に基づいて外枠点PPを設定し、外枠点PPに囲まれた領域を変形領域CAとして設定)した上で、上述したように選択特徴点SCPを特徴点移動テーブル420に規定された移動量に従って移動させることにより、変形領域CA内の画像(三角形領域ごとの画像)を変形させる。そして、このように変形処理が施された画像領域を含む1+kフレーム目の画像を、コンピューター300のディスプレイ等に表示させる。
【0102】
ただし、当該ステップS840では、画像処理部200は、特徴点移動テーブル420に規定された移動量をそのまま選択特徴点SCPの移動に適用するのではなく補正してもよい。つまり、Fit処理においてパラメーター更新量ΔPによって更新した後の形状パラメーターp1,p2に基づいて、Fit処理後の顔の向きを特定し、当該特定した顔の向きに応じて、上記横顔変形処理で説明したように、特徴点移動テーブル420に規定されたH方向及び又はV方向の移動量を補正し、補正後の移動量に従って選択特徴点SCPを移動させる。
【0103】
ステップS850では、画像処理部200は、動画ファイルを構成する最終のフレーム画像についてステップS840の処理を実行したか否か判定し、実行済みと判定した場合には、動画変形処理を終了する。一方、最終のフレーム画像についてステップS840の処理を未実行であると判定した場合には、ステップS840に戻り、次のフレーム画像を対象としてステップS840を実行する。
【0104】
このように動画変形処理によれば、動画を構成するフレーム画像毎に、動画内の顔画像について、輪郭点OPの検出、変形領域CAの設定および変形処理を施し、変形処理した顔画像を含む各フレーム画像を表示する。そのため、極めて自然に「小顔化」等の変形処理が施された顔が複数のフレーム画像に亘って滑らかに動く画像をユーザーに提供することができる。また、フレーム画像毎に繰り返し実行される上記ステップS840においては、直前のフレーム画像でInit処理またはFit処理によって設定された特徴点CPの位置に基づいてFit処理を行う。そのため、各Fit処理では、フレーム画像間で随時変化する顔の特徴部位の位置に対して、特徴点CP(輪郭点OP)の位置を精度良く追従させることができる。従って、フレーム画像毎の変形処理の結果は、各フレーム画像が含む顔の形状や位置や大きさを正確に反映した最適な結果となる。
【0105】
3.第3実施例
上記では、画像処理装置は、ユーザーが設定した変形処理のタイプや変形度合い等(変形態様)に応じた変形処理を実行するとしたが、かかる構成に代えて或いは加えて、変形処理の対象となる顔の属性に応じた変形処理を行うようにしてもよい。顔の属性とは、例えば、性別や年齢層などである。画像処理部200は、性別に応じた変形処理を行なう場合、属性判定部250(図1)によって、テクスチャー検出処理を実行する。テクスチャー検出処理は、上記輪郭点検出処理(図10のステップS240)の後に行う。
【0106】
図26は、テクスチャー検出処理を示すフローチャートである。属性判定部250(図1)は、輪郭点検出処理が完了した時点で注目画像OIに設定されている特徴点CPに基づいて、注目画像OIから平均形状画像I(W(x;p))を算出する(ステップS910)。
【0107】
さらに、属性判定部250は、平均形状画像I(W(x;p))に基づく平均テクスチャー画像J(Q(x;λ))を算出する(ステップS915)。平均テクスチャー画像J(Q(x;λ))は、以下の式(8)によって算出される。
【数8】
式(8)は、式(2)における顔のテクスチャーA(x)に平均形状画像I(W(x;p))を代入したものであり、テクスチャーパラメーターλiが適切に設定されれば、J(Q(x;λ))が平均顔画像A0(x)と等しくなる。なお、初めてステップS915において平均テクスチャー画像J(Q(x;λ))を算出する場合、属性判定部250は、適当なテクスチャーパラメーターλi(例えば、デフォルト値として予め決められたテクスチャーパラメーターλi)を用いて算出する。本実施例では、平均テクスチャー画像は、テクスチャーパラメーターλの変更による上記式(8)の変換Q(x;λ)によって生成された画像(画素群)Jという意味で、平均テクスチャー画像J(Q(x;λ))と表現している。
【0108】
属性判定部250は、平均テクスチャー画像J(Q(x;λ))と平均顔画像A0(x)との差分画像Ieを算出する(ステップS920)。属性判定部250は、差分画像Ieに基づき、テクスチャー検出処理が収束したか否かを判定する(ステップS930)。属性判定部250は、差分画像Ieのノルムを算出し、ノルムの値が予め設定されたしきい値より小さい場合には収束したと判定し、ノルムの値がしきい値以上の場合には未だ収束していないと判定する。なお、属性判定部250は、算出された差分画像Ieのノルムの値が前回のステップS930において算出された値よりも小さい場合には収束したと判定し、前回値以上である場合には未だ収束していないと判定するものとしてもよい。ここにおける収束の判定は、上述したFit処理における収束判定と同様の手法により行うことができる。
【0109】
ステップS930の収束判定において未だ収束していないと判定された場合には、属性判定部250は、パラメーター更新量ΔΛを算出する(ステップS940)。パラメーター更新量ΔΛは、特徴量であるm個のテクスチャーパラメーターλi(i=1〜mの整数。)の値の変更量を意味している。パラメーター更新量ΔΛは、下記の式(9)により算出される。すなわち、パラメーター更新量ΔΛは、アップデートマトリックスUと差分画像Ieとの積である。
【0110】
【数9】
【0111】
式(9)におけるアップデートマトリックスUは、差分画像Ieに基づきパラメーター更新量ΔΛを算出するために予め学習により設定されたM行N列のマトリックスであり、AAM情報AMI(図1)として内部メモリー120に格納されている。本実施例では、アップデートマトリックスUの行数Mは、テクスチャーパラメーターλiの数(m個)に等しく、列数Nは、平均形状領域BSA内の画素数(56画素×56画素−マスク領域MAの画素数)に等しい。アップデートマトリックスUは、下記の式(10),(11)により算出される。
【数10】
【数11】
式(10)および(11)における関数Qは、上記式(8)による変換を指し、変数Λは、テクスチャーパラメーターλiを指し、Tは転置行列を意味する。
【0112】
属性判定部250は、算出したパラメーター更新量ΔΛに基づきテクスチャーパラメーターλiを更新する(ステップS950)。これにより、顔のテクスチャーA(x)が補正される。すなわち、属性判定部250は、差分画像Ieのノルムが小さくなるように補正する。パラメーターの更新の後には、再度、補正されたテクスチャーパラメーターλiに基づいて平均テクスチャー画像J(Q(x;λ))の算出(ステップS915)、差分画像Ieの算出(ステップS920)、差分画像Ieに基づく収束判定(ステップS930)が行われる。再度の収束判定においても収束していないと判定された場合には、さらに、差分画像Ieに基づくパラメーター更新量ΔΛの算出(ステップS940)、パラメーターの更新によるテクスチャーの補正(ステップS950)が行われる。
【0113】
図26のステップS910からS950までの処理が繰り返し実行されると、上記式(2)で計算される顔のテクスチャーA(x)の各画素の輝度値(色彩値)が、実際の顔画像の輝度値に全体として近づいていき、ある時点で収束判定(ステップS930)において収束したと判定される。収束判定において収束したと判定されると、テクスチャー検出処理が完了する(ステップS960)。このとき設定されているテクスチャーパラメーターλiの値は、対応するテクスチャーベクトルAi(x)が表す顔の特性に関して、注目画像OIにおける実際の顔の見えと平均顔画像A0(x)見えとがどれぐらい異なっているかを示している。従って、このとき設定されているテクスチャーパラメーターλiの値により特定される顔のテクスチャーA(x)が最終的な顔の見えとして特定される。
【0114】
属性判定部250は、テクスチャー検出処理が完了した時点で設定されているm個のテクスチャーパラメーターλiのうち、性別の差に相関する第1テクスチャーベクトルA1(x)のテクスチャーパラメーターλ1を読み出す。そして、当該テクスチャーパラメーターλ1を所定のしきい値と比較して評価することにより、テクスチャーパラメーターλ1が示す性別が男性と女性とのどちらであるかを判定(推定)する。ただし、属性判定部250による顔の性別の判定は、テクスチャーパラメーターによる判定に限られず、注目画像OIに含まれている顔の性別を判定可能な手法であれば、公知の手法を含めてあらゆる手法を採用可能である。
【0115】
変形処理部240は、変形領域CA内の画像の変形処理(図10のステップS260)に際して、上記のように属性判定部250によって判定された顔の属性(性別)に応じて異なる変形を行なう。例えば、内部メモリー120には、男性の顔に対して適用して好適な移動量を規定した特徴点移動テーブル420と、女性の顔に対して適用して好適な移動量を規定した特徴点移動テーブル420とがそれぞれ予め格納されている。そして、変形処理部240は、上記判定された顔の性別に応じて特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、性別に応じた最適な変形処理を行う。或いは、上記第1実施例のように、変形処理のタイプ別かつ変形度合い別に、特徴点移動テーブル420を予め用意する場合、より詳細に、変形処理のタイプ別かつ変形度合い別かつ男女別に、特徴点移動テーブル420を内部メモリー120に用意しておく。そして、変形処理部240は、ユーザーによって設定されている変形処理のタイプ、変形度合い、および上記判定された顔の性別に応じて、特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、変形処理のタイプ、変形度合いおよび性別に応じた最適な変形処理を行うとしてもよい。
【0116】
画像処理部200は、年齢層に応じた変形処理を行なう場合、輪郭点検出処理が完了した時点で設定されている形状パラメーターpiの値を総合的に評価することにより、顔の年齢層を判定する処理(年齢層判定処理)を実行する。年齢層判定処理は、上記輪郭点検出処理(図10のステップS240)の後に行う。
【0117】
図27は、年齢層判定処理を示すフローチャートである。属性判定部250は、判定対象の年齢層を選択する(ステップS1010)。本実施例では、数種類の年齢層(例えば、幼児、少年、成人、老人などの各年齢層)を判定対象とし、幼児→少年→成人→老人…の順で判定対象を選択する。属性判定部250は、n個の形状パラメーターpiの中から、その年齢層らしさを示す判定値Eを算出するために使用するg個の形状パラメーター(形状パラメーターqiと表す。i=1〜gの整数。)を選択する(ステップS1020)。属性判定部250は、形状パラメーターqiを下記式(12)に代入することにより、判定値Eを算出する(ステップS1030)。
【数12】
【0118】
式(12)において、αiは各形状パラメーターqiについて設定された重み係数を示し、knは正規化のための係数を示している。すなわち、判定値Eは、形状パラメーターqiを重み係数αiに基づく重みによって線形結合した値である。なお、年齢層毎に、n個の形状パラメーターpiの中から選択されるg個の形状パラメーターqiは異ならせ、形状パラメーターqiに対する重み係数αiも各年齢層に対応して用意されているとしてもよい。判定値Eを算出すると、属性判定部250はすべての年齢層の選択を完了したか否かを判定し(ステップS1040)、完了していない場合にはステップS1010に戻り次の年齢層を選択する。これにより、数種類の各年齢層についてそれぞれ判定値Eを順に算出していくことができる。各年齢層について判定値Eが算出できると、属性判定部250は年齢層の判定を行う。具体的には、属性判定部250は、最も判定値Eの大きい年齢層を、注目画像OIに含まれている顔の年齢層であると判定(推定)する(ステップS1050)。ただし、属性判定部250による顔の年齢層の判定は、上述した手法に限られず、注目画像OIに含まれている顔の年齢層を判定可能な手法であれば、公知の手法を含めてあらゆる手法を採用可能である。
【0119】
変形処理部240は、変形領域CA内の画像の変形処理(図10のステップS260)に際して、上記のように属性判定部250によって判定された顔の年齢層に応じて異なる変形を行なう。例えば、内部メモリー120には、各年齢層の顔に対して適用して好適な移動量を規定した各特徴点移動テーブル420が予め格納されている。変形処理部240は、上記判定された顔の年齢層に応じて特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、年齢層に応じた最適な変形処理を行う。或いは、上記第1実施例のように、変形処理のタイプ別かつ変形度合い別に、特徴点移動テーブル420を予め用意する場合、より詳細に、変形処理のタイプ別かつ変形度合い別かつ年齢層別に、特徴点移動テーブル420を内部メモリー120に用意しておく。そして、変形処理部240は、ユーザーによって設定されている変形処理のタイプ、変形度合い、および上記判定された顔の年齢層に応じて、特徴点移動テーブル420を選択し、当該選択した特徴点移動テーブル420に規定されている移動量に従って選択特徴点SCPを移動させることにより、変形処理のタイプ、変形度合いおよび年齢層に応じた最適な変形処理を行うとしてもよい。むろん、変形処理部240は、性別および年齢層の両方の違いに応じて、異なる変形処理を行うとしてもよい。
【0120】
4.第4実施例
ユーザーが望む変形結果をより精度良く得るために、個人の顔別の変形態様を予め画像処理装置(プリンター100)に登録する構成が考えられる。この場合、登録部260(図1)は、異なる個人(人物A,B,C…)毎の顔の特徴を表した情報(顔特徴情報)を、ユーザーによる操作部140の操作入力に応じて、或いは、外部のコンピューター300等から入力し、内部メモリー120に登録しておく。あるいは、画像処理部200は、個人毎の顔写真に基づいて、上記のように形状パラメーターやテクスチャーパラメーターを取得する処理を予め行なっておき、個人毎に取得した形状パラメーターやテクスチャーパラメーターを、顔特徴情報として登録部260に登録させる。また、登録部260は、上記個人(人物A,B,C…)毎の変形態様を、ユーザーによる操作部140の入力操作等に応じて設定し、当該設定した内容を内部メモリー120に登録しておく。ユーザーは、変形処理のタイプ、変形度合いはもちろん、変形処理の際に移動対象とすべき選択特徴点SCPの位置や数、さらには、選択特徴点SCP毎の移動量(移動後の位置)などの詳細な変形態様を、個人の顔毎に登録することができる。
【0121】
このような登録がなされていることを前提として、画像変形処理(図10)を行なう場合、識別部270(図1)は、注目画像OIに含まれている顔の個人識別を行う。本実施例においては、上記ステップS220の処理(図10)は不要である。個人識別を行うタイミングは様々であるが、例えば、識別部270は、輪郭点検出処理(図10のステップS240)の後に個人識別を行う。個人識別は、注目画像OIに含まれている顔の特徴を表す所定の情報と、上記登録部260によって内部メモリー120に登録済みの個人毎の顔特徴情報とを比較することにより、注目画像OIに含まれている顔が誰であるか(人物A,B,C…の誰であるか)を特定する処理であり、公知の個人識別のための手法を採用すればよい。上記顔特徴情報および、顔の特徴を表す所定の情報とは、例えば、上記形状パラメーターやテクスチャーパラメーターなどであってもよいし、それら以外の所定の情報であってもよい。
【0122】
このように識別部270によって、注目画像OI内の顔の個人が識別された場合(例えば、注目画像OI内の顔が人物Aであると特定された場合)、変形処理部240は、当該識別された顔(人物A)に対応して設定されている変形領域CA内の画像に、当該識別された顔(人物A)に対応して内部メモリー120に登録されている変形態様による変形処理を施す。この結果、注目画像OI内の人物Aの顔は、ユーザーが人物Aのために予め登録した変形態様による変形処理が施された結果となる。なお、本実施例においては、注目画像OIに顔が含まれている場合であっても、識別部270による個人識別が成功しなかった顔(人物A,B,C…の誰であるかが特定されなかった顔)については、その変形領域CAの変形処理は実行しないものとする。つまり、予め顔特徴情報および変形態様を登録しておいた人物についてのみ、変形処理が行われる構成としてもよい。
【0123】
5.変形例
上述した特徴点CPの初期位置設定処理(Init処理)や設定位置補正処理(Fit処理)では、注目画像OIに基づき平均形状画像I(W(x;p))を算出することにより、注目画像OIの特徴点CPの設定位置を平均顔画像A0(x)の特徴点CPの設定位置に整合させている。しかし逆に、平均顔画像A0(x)に対して画像変換を行うことにより、注目画像OIの特徴点CPと平均顔画像A0(x)の特徴点CPとの配置を整合させるとしてもよい。
【0124】
また、Init処理において、4つのグローバルパラメーター(大きさ、傾き、上下方向の位置、左右方向の位置)のそれぞれについての3段階の値の組み合わせに対応する仮設定位置が予め設定されているが、仮設定位置の設定に用いるパラメーターの種類および数やパラメーター値の段階数は変更可能である。
また上記では、サンプル画像SIwの画素群xのそれぞれにおける輝度値により構成される輝度値ベクトルに対する主成分分析によってテクスチャーモデルが設定されているが、顔画像のテクスチャー(見え)を表す輝度値以外の指標値(例えばRGB値)に対する主成分分析によってテクスチャーモデルが設定されるものとしてもよい。
【0125】
また、平均顔画像A0(x)のサイズは56画素×56画素に限られず他のサイズであってもよい。また、平均顔画像A0(x)は、マスク領域MA(図8)を含む必要はなく、平均形状領域BSAのみによって構成されるとしてもよい。また、平均顔画像A0(x)の代わりに、サンプル画像SIの統計的分析に基づき設定される他の基準顔画像が用いられるとしてもよい。
また上記では、AAMを用いた形状モデルおよびテクスチャーモデルの設定が行われているが、他のモデル化手法(例えばMorphable Modelと呼ばれる手法やActive Blobと呼ばれる手法)を用いて形状モデルおよびテクスチャーモデルの設定が行われるとしてもよい。
【0126】
また上記では、メモリーカードMCに格納された画像が注目画像OIに設定されているが、注目画像OIは例えばネットワークを介して取得された画像であってもよい。
また上記では、主に画像処理装置としてのプリンター100による画像処理を説明したが、処理の一部または全部がコンピューター300やデジタルスチルカメラ、デジタルビデオカメラ等の他の種類の画像処理装置により実行されるものとしてもよい。また、プリンター100はインクジェットプリンターに限らず、他の方式のプリンター、例えばレーザプリンターや昇華型プリンターであるとしてもよい。
【符号の説明】
【0127】
100…プリンター、110…CPU、120…内部メモリー、140…操作部、150…表示部、160…印刷機構、170…カードインターフェイス、172…カードスロット、200…画像処理部、210…顔領域検出部、220…輪郭点検出部、230…領域設定部、240…変形処理部、250…属性判定部、260…登録部、270…識別部、300…コンピューター、310…表示処理部、320…印刷処理部、420…特徴点移動テーブル
【特許請求の範囲】
【請求項1】
注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出部と、
上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定部と、
上記設定された対象領域内の画像の変形を行う変形処理部とを備えることを特徴とする画像処理装置。
【請求項2】
上記注目画像としての動画を構成するフレーム画像毎に、上記輪郭点の検出と対象領域の設定と画像の変形とを行なうことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記検出部は、複数の特徴量に基づいて顔の輪郭を複数の特徴点の位置によって表現する形状モデルにおける特徴点の位置が、顔の輪郭に近づくように、当該特徴量を変更し、当該変更により補正された特徴点の位置を上記輪郭点の位置として検出することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
上記検出部は、顔の向きの変化に対応する特徴量を変更することにより、向きが変更された顔の輪郭を表現する位置に特徴点を設定するとともに、上記領域設定部は、当該特徴点の設定に追従して上記対象領域の設定を行なうことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
上記変形処理部は、上記顔の向きの変化の程度に応じて、画像の変形量を異ならせることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
上記変形処理部は、上記顔の向きが変化する方向に略直交する方向にのみ変形させる所定箇所の画像に対する変形量は、上記顔の向きの変化の程度にかかわらず一定とすることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
上記領域設定部は、上記検出された輪郭点に囲まれた領域内に基準点を設定し、当該基準点と各輪郭点とを結ぶ各線分を各輪郭点よりも外側へ所定距離延長した位置に各外枠点を設定し、当該各外枠点によって囲まれた領域を上記対象領域とすることを特徴とする請求項1〜請求項6のいずれかに記載の画像処理装置。
【請求項8】
上記顔の属性を判定する属性判定部を備え、
上記変形処理部は、上記判定された顔の属性に応じて異なる変形を行なうことを特徴とする請求項1〜請求項7のいずれかに記載の画像処理装置。
【請求項9】
個人の顔別の変形態様を外部からの入力に従って登録する登録部と、
上記注目画像に含まれる顔の個人識別を行なう識別部とを備え、
上記変形処理部は、上記識別部によって識別された顔に対応する変形態様が上記登録部によって登録されている場合には、当該識別された顔を含んで設定されている対象領域の画像に、当該識別された顔に対応する変形態様による変形を施すことを特徴とする請求項1〜請求項8のいずれかに記載の画像処理装置。
【請求項10】
注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出工程と、
上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定工程と、
上記設定された対象領域内の画像の変形を行う変形処理工程とを備えることを特徴とする画像処理方法。
【請求項11】
注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出機能と、
上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定機能と、
上記設定された対象領域内の画像の変形を行う変形処理機能とをコンピューターに実行させることを特徴とする画像処理プログラム。
【請求項1】
注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出部と、
上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定部と、
上記設定された対象領域内の画像の変形を行う変形処理部とを備えることを特徴とする画像処理装置。
【請求項2】
上記注目画像としての動画を構成するフレーム画像毎に、上記輪郭点の検出と対象領域の設定と画像の変形とを行なうことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記検出部は、複数の特徴量に基づいて顔の輪郭を複数の特徴点の位置によって表現する形状モデルにおける特徴点の位置が、顔の輪郭に近づくように、当該特徴量を変更し、当該変更により補正された特徴点の位置を上記輪郭点の位置として検出することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
上記検出部は、顔の向きの変化に対応する特徴量を変更することにより、向きが変更された顔の輪郭を表現する位置に特徴点を設定するとともに、上記領域設定部は、当該特徴点の設定に追従して上記対象領域の設定を行なうことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
上記変形処理部は、上記顔の向きの変化の程度に応じて、画像の変形量を異ならせることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
上記変形処理部は、上記顔の向きが変化する方向に略直交する方向にのみ変形させる所定箇所の画像に対する変形量は、上記顔の向きの変化の程度にかかわらず一定とすることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
上記領域設定部は、上記検出された輪郭点に囲まれた領域内に基準点を設定し、当該基準点と各輪郭点とを結ぶ各線分を各輪郭点よりも外側へ所定距離延長した位置に各外枠点を設定し、当該各外枠点によって囲まれた領域を上記対象領域とすることを特徴とする請求項1〜請求項6のいずれかに記載の画像処理装置。
【請求項8】
上記顔の属性を判定する属性判定部を備え、
上記変形処理部は、上記判定された顔の属性に応じて異なる変形を行なうことを特徴とする請求項1〜請求項7のいずれかに記載の画像処理装置。
【請求項9】
個人の顔別の変形態様を外部からの入力に従って登録する登録部と、
上記注目画像に含まれる顔の個人識別を行なう識別部とを備え、
上記変形処理部は、上記識別部によって識別された顔に対応する変形態様が上記登録部によって登録されている場合には、当該識別された顔を含んで設定されている対象領域の画像に、当該識別された顔に対応する変形態様による変形を施すことを特徴とする請求項1〜請求項8のいずれかに記載の画像処理装置。
【請求項10】
注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出工程と、
上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定工程と、
上記設定された対象領域内の画像の変形を行う変形処理工程とを備えることを特徴とする画像処理方法。
【請求項11】
注目画像に含まれる顔の輪郭に対応する輪郭点を検出する検出機能と、
上記検出された輪郭点の位置に基づいて、上記顔の少なくとも一部を含む領域を変形処理の対象領域として設定する領域設定機能と、
上記設定された対象領域内の画像の変形を行う変形処理機能とをコンピューターに実行させることを特徴とする画像処理プログラム。
【図1】
【図10】
【図15】
【図17】
【図19】
【図21】
【図23】
【図24】
【図25】
【図26】
【図27】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図16】
【図18】
【図20】
【図22】
【図10】
【図15】
【図17】
【図19】
【図21】
【図23】
【図24】
【図25】
【図26】
【図27】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図16】
【図18】
【図20】
【図22】
【公開番号】特開2011−53942(P2011−53942A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2009−202717(P2009−202717)
【出願日】平成21年9月2日(2009.9.2)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願日】平成21年9月2日(2009.9.2)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]