画像処理装置、画像処理方法および画像処理プログラム
【課題】画像における顔の左右の目の大きさのバランスが悪いと、画像の印象が悪かった。
【解決手段】対象画像における顔の左右の目の大きさを表す情報を検出する検出部と、上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定部と、上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形部とを備えることを特徴とする画像処理装置とした。
【解決手段】対象画像における顔の左右の目の大きさを表す情報を検出する検出部と、上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定部と、上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形部とを備えることを特徴とする画像処理装置とした。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている(特許文献1参照。)。特許文献1には、顔の画像上の一部の領域(頬の画像を表す領域)を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【特許文献1】特開2004‐318204号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
画像が顔を含む場合、顔内の目は特に画像の観察者の注意を引く部分である。ここで、人間の左右の目の大きさは互いに異なっている場合がある。また、人の表情を一瞬で捉えて生成された画像、例えばデジタルスチルカメラ等で撮影された顔を含む画像においては、このような左右の目の大きさの違いが顕著に表れることが多い。左右の目の大きさのバランスが悪い画像、例えば、片方の目が少し閉じてしまっている顔の写真等は、観察者の印象も悪く、モニタへの表示結果やプリンタによる印刷結果において望まれるものではなかった。なお、上記従来の画像変形のための画像処理は、頬のラインを補正することに特化されており、上述したような画像における左右の目の大きさのバランスの悪さを是正することはできなかった。
【0004】
本発明は上記課題に鑑みてなされたもので、画像内の顔の左右の目の大きさのバランスを補正することにより、良好な印象を観察者に与える画像を得ることが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、本発明の画像処理装置は、対象画像における顔の左右の目の大きさを表す情報を検出する検出部と、上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定部と、上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形部とを備える構成としてある。本発明によれば、左目を含む領域と右目を含む領域との少なくとも一方の領域が上記補正量によって変形されるため、左右の目の大きさの違いが補正された良好な印象の顔画像が得られる。
【0006】
上記補正量決定部は、上記左右の目のうち小さい方の目の大きさを拡大させる補正量を決定し、上記変形部は、上記拡大させる補正量に基づいて上記小さい方の目を含む領域を拡大する変形処理を行なうとしてもよい。当該構成によれば、小さい方の目が拡大されるため、左右の目が適切な大きさで表された良好な顔画像が得られる。
【0007】
上記補正量決定部は、上記拡大させる補正量として、上記左右の目のうち大きい方の目の大きさに対する上記小さい方の目の大きさの比率が高いほど上記小さい方の目の大きさを上記大きい方の目の大きさに近づかせる補正量を決定するとしてもよい。当該構成によれば、変形前の画像において左右の目に大きなサイズ差がある場合には、小さい方の目の大きさを、無理やり大きい方の目の大きさに近づけることはしない。そのため 小さい方の目に過剰な拡大を施し却って不自然な画像となる、という不都合を回避できる。
【0008】
上記補正量決定部は、上記左右の目の大きさの平均値を算出するとともに、上記小さい方の目の大きさを当該平均値まで略拡大させる補正量を決定するとしてもよい。当該構成によれば、小さい方の目に対し過剰にならない程度の適切な拡大を行なうことができる。
上記補正量決定部は、上記小さい方の目の大きさを大きい方の目の大きさまで略拡大させる補正量を決定するとしてもよい。当該構成によれば、変形後の画像において左右の目の大きさを略均等にすることができる。
【0009】
左右の目の大きさの違いは、主に、目の高さ方向において表れる。そこで上記変形部は、変形処理の対象とした領域の画像を当該領域が含む目の略高さ方向に沿って変形するとしてもよい。当該構成によれば、左右の目の高さ方向の大きさの違いが補正された良好な顔画像を得ることができる。
【0010】
左右の目の大きさの違いは、多くの場合、目の上端(まぶたの下端)の位置の違いに起因する。そこで上記変形部は、変形処理の対象とした領域の画素のうち、当該領域を区画する線であって目の下方に位置する線よりも上記顔の上側に位置する画素を、上記補正量に基づいて移動させることにより変形処理を行なうとしてもよい。当該構成によれば、左右の目それぞれの下端の位置は変形の前後において略維持され、当該下端を基準とした左右の目の大きさのバランスが取れるように変形が行なわれる。そのため、極めて自然に左右の目の大きさの違いが補正された顔画像を得ることができる。
【0011】
画像処理装置は、上記対象画像における顔の向きを推定する顔向き推定部を備えるとしてもよい。また、上記補正量決定部は、上記推定部により推定された顔の向きに応じて補正量を変更するとしてもよい。当該構成によれば、対象画像における顔の向きに応じて、左右の目を含む上記各領域に対する変形の程度を変えることができる。
【0012】
本発明の技術的思想は、上述した画像処理装置の発明以外にも、上述した画像処理装置が備える各部が行なう各処理工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各部に対応した機能をコンピュータに実行させる画像処理プログラムの発明として捉えることができる。また、上述した画像処理装置を兼ねる印刷装置の発明や、上述した画像処理装置を兼ねるデジタルスチルカメラの発明をも把握可能である。
【発明を実施するための最良の形態】
【0013】
下記の順序に従って本発明の実施例を説明する。
1.画像処理装置の概略構成:
2.左右の目のサイズ検出処理:
3.補正量の決定処理:
4.変形処理および印刷処理:
5.他の実施例:
【0014】
1.画像処理装置の概略構成:
図1は、本発明の画像処理装置の一例としてのプリンタ10の構成を、概略的に示している。プリンタ10は、記録メディア(例えば、メモリカードMC等)から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ10は、プリンタ10の各部を制御するCPU11と、例えばROMやRAMによって構成された内部メモリ12と、ボタンやタッチパネルにより構成された操作部14と、液晶ディスプレイにより構成された表示部15と、プリンタエンジン16と、カードインターフェース(カードI/F)17と、PCやサーバやデジタルスチルカメラ等の外部機器との情報のやり取りのためのI/F部13とを備えている。プリンタ10の各構成要素は、バスを介して互いに接続されている。
【0015】
プリンタエンジン16は、印刷データに基づき印刷を行う印刷機構である。カードI/F17は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのI/Fである。メモリカードMCには画像データが格納されており、プリンタ10は、カードI/F17を介してメモリカードMCに格納された画像データを取得することができる。画像データ提供のための記録メディアとしてはメモリカードMC以外にも種々の媒体を用いることができる。プリンタ10は、I/F部13を介してPCやサーバ等とケーブルで接続し、当該PCやサーバ等から印刷データを入力することもできる。
【0016】
内部メモリ12には、画像変形部20と、表示処理部31と、印刷処理部32とが格納されている。画像変形部20は、所定のオペレーティングシステムの下で、後述する画像変形処理等を実行するためのコンピュータプログラム(画像処理プログラム)である。表示処理部31は、表示部15を制御して、表示部15に処理メニューやメッセージを表示させるディスプレイドライバである。印刷処理部32は、画像データから印刷データを生成し、プリンタエンジン16を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU11は、内部メモリ12から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
【0017】
画像変形部20は、プログラムモジュールとして、顔領域検出部21と、顔器官検出部22と、補正量決定部23と、変形領域設定部24と、変形領域分割部25と、変形処理実行部26と、顔向き推定部27とを含んでいる。顔器官検出部22は、両目サイズ検出部221を含んでいる。これら各部の機能については後述する。さらに、内部メモリ12には、分割点配置パターンテーブル41や、顔テンプレート14bや、目テンプレート14c等の各種データが格納されている。プリンタ10は、印刷機能以外にも、コピー機能やスキャナ機能など多種の機能を備えたいわゆる複合機であってもよい。
【0018】
図2は、画像処理装置(プリンタ10)が実行する画像変形印刷処理の概略を、フローチャートにより示している。
ステップS(以下、ステップの表記は省略。)100では、画像変形部20は、画像処理の対象とする画像(対象画像)内の顔の左右の目の大きさを表す情報(左右の目のサイズ)を検出する。
S300では、画像変形部20は、上記検出された左右の目のサイズに基づいて、左右の目のうち少なくとも一方の目の大きさに対する補正量を決定する。
S500では、画像変形部20は、上記決定された補正量に基づいて、対象画像における左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう。
【0019】
S700では、印刷処理部32は、変形処理後の対象画像を表す画像データに基づいて印刷データを生成し、生成した印刷データに基づいて印刷を実行する。ただし、プリンタ10は、S100の処理において、対象画像から顔領域の検出(後述する図3のS110)に失敗したり、顔領域の検出に成功しても左右の目の領域の検出(図3のS120)に失敗した場合には、左右の目のサイズの検出およびS300,S500を行なうことなく、対象画像を表す画像データに基づいてS700の処理を行なう。以下では、対象画像は、人顔を含みかつ人顔の左右の目が表れている画像であるとして、図2のフローチャートの詳細を説明する。
【0020】
2.左右の目のサイズ検出処理:
図3は、S100の詳細をフローチャートにより示している。
S105では、顔領域検出部21が対象画像を表した画像データ14aをメモリカードMC等、所定の記録メディアから取得する。むろん、顔領域検出部21は、プリンタ10がハードディスクドライブ(HDD)を有していれば、当該HDDに保存されている画像データ14aを取得してもよいし、I/F部13を介してPCやサーバやデジタルスチルカメラ等から画像データ14aを取得してもよい。画像データ14aは、各画素が示す色がRGB各チャネルの階調値の組み合わせ(RGB色空間におけるベクトル)で表現されたビットマップデータである。後述する図面において、便宜的に2値の画像が示される場合があるが、実際には多階調のカラー画像データが処理の対象となる。画像データ14aは、記録メディア等に記録されている段階で圧縮されていてもよいし、他の色空間で各画素の色が表現されていてもよい。これらの場合、画像データ14aの展開や色空間の変換を実行して、顔領域検出部21がRGBビットマップデータの画像データ14aを取得する。ユーザが表示部15に表示されたユーザインターフェース(UI)画面を参照して操作部14を操作することにより、対象画像としての画像データ14aが指定される。
【0021】
S110では、顔領域検出部21が画像データ14aに含まれる顔を検出する。顔領域検出部21は、複数のテンプレート(顔テンプレート14b)を利用したいわゆるパターンマッチングによって画像データ14aから顔領域を検出する。顔テンプレート14bとのパターンマッチングを行うにあたっては、画像データ14aにおいて矩形状の比較領域CAを設定し、比較領域CAの位置と大きさと回転角度を変えながら、比較領域CA内の画像と各顔テンプレート14bの画像との類似性を評価する。そして、類似性が一定の基準を満足する比較領域CAを顔領域と判定し、その比較領域CAの位置と大きさと回転角度を取得する。本実施形態において、比較領域CAは30度ずつ回転されるものとする。画像データ14aの全体に比較領域CAを移動させることにより、画像データ14a内に存在する単数または複数の顔についての領域の位置と大きさと回転角度を取得することができる。本実施形態では、単一の顔が検出されたものとして説明を続ける。
【0022】
図4は、上記S110において顔領域と判定された比較領域CAの矩形を示している。
S115では、顔領域検出部21は、顔領域と判定された比較領域CAの位置と大きさと回転角度に基づいて、当該比較領域CAに含まれる画像を画像データ14aから顔画像データFDとして抽出する。このとき、顔画像データFDの大きさが一定の大きさとなるように解像度変換を行なう。例えば、100×100画素の大きさとなるように、顔画像データFDの画素が内挿または間引きされる。また、画像データ14aにおける顔の回転角に対応して比較領域CAが回転されていた場合には、この回転を解消するように顔画像データFDを回転させる。ただし、比較領域CAの回転角は30度ずつであるため、顔画像データFDにおいて、±15度の範囲で顔の回転角が残存し得ることとなる。
【0023】
S120では、顔器官検出部22が顔器官としての左右の目を検出する。顔器官検出部22は、複数のテンプレート(目テンプレート14c)を利用したパターンマッチングによって顔画像データFDから右目領域および左目領域を検出する。顔器官検出部22も、目テンプレート14cとのパターンマッチングを行うにあたって、顔画像データFDにおいて矩形状の比較領域CAを設定し、比較領域CAの位置と大きさと回転角度を変えながら、比較領域CA内の画像と各目テンプレート14cの画像との類似性を評価する。そして、類似性が一定の基準を満足する2つの比較領域CAを、その位置に応じて右目領域、左目領域と判定する。本実施形態では様々な目が検出できるように、例えば一重まぶたの目や、二重まぶたの目や、半開き状態の目など、種々の目を含む画像が、各種目テンプレート14cとして用意されている。本明細書では、図を正面から見たときに右側に図示されている目が対象画像内の人物の左目であり、図を正面から見たときに左側に図示されている目が当該人物の右目である。なお、左右の目が検出できるように、目テンプレート14cには左目のものと右目のものが多数含まれている。
【0024】
図5は、左右の目がそれぞれ存在する比較領域CAが検出された顔画像データFDの様子を示している。同図において、左目を中央に含む矩形状の比較領域CA1および右目を中央に含む矩形状の比較領域CA2が検出されている。比較領域CA1は左目領域であり、比較領域CA2は右目領域である。比較領域CA1,CA2の大きさは、それぞれが含む目の大きさに応じて確定されている。右目領域および左目領域の検出が完了すると、S125において、両目サイズ検出部221の傾き補正部P2c1が、比較領域CA1,CA2の各重心の座標を算出し、当該重心同士を結んだ直線の水平線に対する傾きGRを算出する。上述したように顔領域検出の段階で30度単位の回転角補正がなされているため、ここでは基本的に±15度以内の角度に対応した傾きGRが算出される。
【0025】
図6は、両目サイズ検出部221を中心とした顔器官検出部22のソフトウェア構成を示している。両目サイズ検出部221は、傾き補正部P2c1とサンプリング部P2c2とスカラー変換部P2c3と変換関数設定部P2c4とパラメータ探索部P2c5と評価値算出部P2c6とから構成されている。
S130においては、傾き補正部P2c1が顔画像データFDから比較領域CA1,CA2に属する画像をそれぞれ左目画像データLEと右目画像データREとして抽出する。このとき、左目画像データLEと右目画像データREに対してS125にて算出した傾きGRに応じた傾き補正を行う。
【0026】
図7は、S130において傾き補正部P2c1が実行する傾き補正の様子を概念的に示している。同図において、矩形状の比較領域CA1の上辺と下辺を傾きGRに応じて傾斜させ、傾斜後の比較領域CA1(破線で図示)に属する画素を抽出する。比較領域CA1の上辺と下辺が傾きGRに応じて傾斜しているため、抽出された各画素列の位置がずれることとなる。そして、抽出した各画素列の上端・下端位置を揃えることにより、矩形状とし、左目画像データLEと右目画像データREを得る。これにより、左目画像データLEと右目画像データREに含まれる目の傾きを解消することができ、左目画像データLEと右目画像データREにおいて目をほぼ水平とすることができる。なお、本来の画像から画素の位置をずらしているため、輪郭の滑らかさが不正確になったり、目の形状がいびつとなることも考えられるが、±15度以内に対応する量の傾きを調整するに過ぎないため、問題とはならない。以上のようにして左目画像データLEと右目画像データREが得られると、左目画像データLEと右目画像データREをスカラー量Zの画像データに変換する処理をS135にて実行する。左目画像データLEと右目画像データREにおける鉛直方向の位置をyと表し、水平方向の位置をxと表すとともに、それぞれ左上隅をx=y=0とする。
【0027】
図8は、S135にて実行するスカラー変換処理の流れを示している。左目画像データLEと右目画像データREは各画素がRGB階調(RGBベクトル)を有する画像データであるが、スカラー変換処理では、左目画像データLEと右目画像データREを各画素がスカラー量Zの情報を有する画像データに変換する処理を実行する。まず、S210において、サンプリング部P2c2が顔画像データFDの一部の画素をサンプリングする。
【0028】
図9は、S210におけるサンプリングの様子を示している。顔画像データFDにおいて左右の目を含む比較領域CA1,CA2の左下隅と右下隅を結ぶ線分L1と、比較領域CA1,CA2の間において線分L1を2等分する鉛直方向の線分L2が示されている。線分L1,L2は所定の長さを有しており、線分L1,L2に対応する位置の画素を本実施形態のサンプリングの対象とする。線分L1,L2は、目の下の略一定の高さの位置と、左右の目の間の位置に対応している。このような位置からサンプリングすることにより、顔の輪郭外や目や眉毛や鼻の穴や口などの色の画素はサンプリングされなくなり、基本的に肌色の画素のみをサンプリングすることができる。また、線分L1,L2の双方からサンプリングを行うようにしているため、仮に線分L1,L2の一部に眼鏡のフレームや前髪などの肌色以外の画素が含まれたとしても、後述する統計指標への影響を抑えることができる。むろん、ある程度、肌色のみに絞り込むことができればよく、例えば頬や額等の他の領域からサンプリングを行うようにしてもよい。
【0029】
サンプリング部P2c2は、サンプリング対象の画素のRGB階調を取得し、RGB階調の平均μ(μR,μG,μB)と分散・共分散行列Sを統計指標として算出する。平均μは、RGB各チャネルごとに階調の相加平均を算出することによって得ることができる。また、分散・共分散行列Sは下記の(1)式によって定義される。
【数1】
前記の(1)式において、SR,SG,SBはRGB各チャネルについての分散を示しており、SRG,SGB,SRBはR−G,G−B,R−B間の共分散を示している。
【0030】
図10は、S210におけるサンプリングによって得られる平均μ(μR,μG,μB)と分散SR,SG,SBをグラフによって示している。本実施形態において、サンプリングされた画素が示す色の3次元のRGB色空間における分布は正規分布N(μ,S)であると仮定しており、RGB階調分布がそれぞれ平均μ(μR,μG,μB)を中心とした正規分布NR(μR,SR),NG(μG,SG),NB(μB,SB)と仮定されている様子が図示されている。平均μ(μR,μG,μB)は、検出された顔において最も標準的な肌色を示し、分散SR,SG,SBは肌色を示す各チャネルの階調のばらつきの程度を示している。通常、分散SR,SG,SBはそれぞれ異なる大きさとなるが、平均μ(μR,μG,μB)に各分散SR,SG,SBの平方根(標準偏差)を加減算した値で囲まれた範囲の確率は68.2%となる。
【0031】
なお、本明細書において“肌色”とは、絶対的な色彩値が特定される特定色を意味するのではなく、平均μ(μR,μG,μB)の付近に分布する色を意味する。従って、処理対象の顔に応じて“肌色”が意味する絶対色が変動することとなる。平均μと分散行列Sが得られると、S220において、スカラー変換部P2c3は、各画素がRGB階調を有する左目画像データLEと右目画像データREを取得する。なお、以降の処理は左目画像データLEと右目画像データREのそれぞれについて行われるが、左目画像データLEに対する処理を例に挙げて説明する。
【0032】
S230において、スカラー変換部P2c3は、左目画像データLEから一つの画素を順次選択し、選択した画素のRGB階調(r,g,b)を下記の(2)式に代入することよってマハラノビス平方距離DM2に変換する。
【数2】
【0033】
前記の(2)式において、Δrは(r−μR)であり、Δgは(g−μG)であり、Δbは(b−μB)である。マハラノビス平方距離DM2は、上述した肌色のサンプリングによって得られた標準的な肌色を示す平均μ(μR,μG,μB)と、選択した画素のRGB階調(r,g,b)とのRGB色空間における平方距離(RGB階調値のずれ量)に対応する指標値であり、その大きさはRGB色空間における色のずれ方向に依存しない。すなわち、マハラノビス平方距離DM2が同じであれば、平均μ(μR,μG,μB)からの色ずれ方向が異なっていても、確率的には同程度の差を有していると考えることができ、以下においてRGB色空間における色ずれ方向を無視した処理を行うことができる。
【0034】
図11は、RGB色空間(RG平面)におけるマハラノビス平方距離DM2の等値線を示している。同図において、横軸はR階調(r)を示し、縦軸はG階調(g)を示している。等値線は、RGB各チャネルの分散SR,SG,SBの相違に起因して、略楕円状となっている。平均μ(μR,μG)においてマハラノビス平方距離DM2が0となり、RG平面において平均μ(μR,μG)から離れるほどマハラノビス平方距離DM2が大きくなっている。そのため、左目画像データLEに含まれる肌色とは異なる白目や黒目の画素は、肌色の画素よりもマハラノビス平方距離DM2が大きくなる。このように、画素の色を示すベクトルとしてのRGB階調(r,g,b)が、標準的な肌色とのRGB階調値のずれ量を示すスカラーとしてのマハラノビス平方距離DM2に変換することができる。左目画像データLEのすべての画素についてマハラノビス平方距離DM2への変換が完了すると、左目画像データLEはマハラノビス平方距離DM2の画像データDM2(x,y)に変換されたこととなる。
【0035】
S240において、スカラー変換部P2c3は、左目画像データLEの画素を順次選択し、選択した画素のマハラノビス平方距離DM2を下記の(3)式で示す変換関数に代入することによりスカラー量Zに変換していく。
【数3】
前記の(3)式においてα、uは前記変換関数の変換特性を決定付けるパラメータである。本実施形態では、α=1に固定し、uの初期値を3とする。
【0036】
図12は、前記変換関数の変換特性を示している。同図において、横軸は変換前のマハラノビス平方距離DM2を示し、縦軸は変換後のスカラー量Zを示している。また、ある左目画像データLEの変換前のマハラノビス平方距離DM2の分布と、変換後のスカラー量Zの分布も示している。スカラー量Zは、マハラノビス平方距離DM2が0のとき−1となり、マハラノビス平方距離DM2がパラメータuのとき0となる非線形関数によって表される。ここで、横軸のマハラノビス平方距離DM2において、パラメータu=3を中心とした領域を第2領域A2と表し、第2領域A2よりもマハラノビス平方距離DM2の値が大きくなる領域を第1領域A1と表すものとする。この第2領域A2においては、変換関数の傾きが他の領域よりも急となっており、マハラノビス平方距離DM2の単位変動に応じたスカラー量Zの変動量が他の領域よりも大きくなっている。第2領域A2よりもマハラノビス平方距離DM2が大きくなる第1領域A1においては、変換後のスカラー量Zが次第に1に飽和していくような変換特性を有している。第2領域A2は、肌色に対応したマハラノビス平方距離DM2の領域と、非肌色に対応したマハラノビス平方距離DM2の領域との間に設定されるのが望ましい。この第2領域A2の位置は、パラメータuによって設定されるが、初期のパラメータu=3は以下の根拠に基づいて設定されている。
【0037】
図13は、マハラノビス平方距離DM2と確率分布の関係をグラフによって示している。同図において、横軸はマハラノビス平方距離DM2を示している。一方、縦軸は、S210にてサンプリングした肌色の画素のRGB階調の平均μ(μR,μG,μB)と分散・共分散行列Sによって定義される正規分布N(μ,S)における確率分布(下側確率)を示している。同図に示すようにマハラノビス平方距離DM2は、n次元カイ二乗分布に従う。本実施形態では、RGBの階調値で表されるカラー画像を処理の対象としており、3次元カイ二乗分布(実線で図示)によって各マハラノビス平方距離DM2に対応する確率を推定することができる。マハラノビス平方距離DM2=3のとき、下側確率が約60%となっている。すなわち、肌色を示す画素のうち約60%が、マハラノビス平方距離DM2が3以下となるということが分かる。マハラノビス平方距離DM2が3を超えてくると、その画素が肌色を示すことが疑わしくなっていくということが推測できる。すなわち、マハラノビス平方距離DM2が3を超えてくる付近の領域が、肌色に対応したマハラノビス平方距離DM2の領域と、非肌色に対応したマハラノビス平方距離DM2の領域との間の領域であると推定できる。そのため、本実施形態では、パラメータuの初期値を3とし、マハラノビス平方距離DM2が3となる付近の領域を第2領域A2と設定している。なお、モノクロ画像の場合には、マハラノビス平方距離DM2が1次元カイ二乗分布(破線で図示)に従う。
【0038】
図12において示した前記変換関数による変換前のマハラノビス平方距離DM2の分布においては、マハラノビス平方距離DM2=0を中心とした肌色の分布G1と左目画像データLEに含まれる白(白目)の分布G2と黒(黒目、眉等)の分布G3が存在する。これに対して変換後のスカラー量Zの分布においては、肌色の分布G1はスカラー量Z=−1を中心として分布し、左目画像データLEに含まれる白の分布G2と黒の分布G3は分布全体が1にほぼ飽和した値に変換されている。また、平均μ(μR,μG,μB)が示す標準的な肌色と比較して明るめの肌色や暗めの肌色は、パラメータuの初期値である3付近に位置しており、傾きが急な第2領域A2に存在することとなる。
【0039】
以上説明した変換関数によって、左目画像データLEのすべての画素のマハラノビス平方距離DM2をスカラー量Zに変換することにより、左目画像データLEをスカラー量Zの画像データZ(x,y)に変換することができる。以下、スカラー量Zの画像データZ(x,y)に変換された左目画像データLE,右目画像データREをZマップとも表記するものとする。なお、Zマップはスカラー量マップに相当する。なお、マハラノビス平方距離DM2も肌色らしさを示す指標として使用することが可能であるが、上述した変換関数による変換したスカラー量Zによれば、肌色らしいか否かをより明瞭に判別することができる。
【0040】
S250において、変換関数設定部P2c4は、スカラー量Zが所定の閾値Th1を超える画素を計数し、当該閾値Th1を超える画素の個数比率(面積比率)が所定の閾値Th2を超えているか否かを判定する。本実施形態では、閾値Th1=0.6とし、閾値Th2=33%とする。図12において、閾値Th1=0.6を破線で示しており、閾値Th1=0.6を超える画素は、飽和しているとみなし、肌色らしくない色であると判断する。また、白の分布G2と黒の分布G3も、閾値Th1=0.6を超える画素に該当することとなる。すなわち、閾値Th1による閾値判定によって左目画像データLEの各画素が肌色らしいか肌色らしくないかを判定することができる。閾値Th1を超える画素の比率が大きいほど、肌色らしくない画素の左目画像データLEにおける面積比率が大きくなるということが言える。
【0041】
本実施形態では、左目画像データLEにおいて肌色らしくない画素が占める面積比率が閾値Th2=33%を超えることが妥当であると仮定し、肌色らしくない画素が占める面積比率が閾値Th2=33%以下である場合には、変換関数設定部P2c4がS260において上述した変換関数のパラメータuを変更する。パラメータuは、正規分布N(μ,S)を仮定した場合の推測値であるため、本実施形態のように実際の面積比率に基づく妥当性によって調整するのが望ましい。なお、本実施形態における閾値Th1,閾値Th2は一例であり、異なる値を採用してもよい。また、面積比率の妥当な範囲を閾値Th2だけでなく、上限値と下限値によって規定するようにしてもよい。
【0042】
S260においては、パラメータuをもとの値の4倍に変更し、S240に戻る。そして、S250において、変更したパラメータuを前記の(3)式に適用し、再度、左目画像データLEのマハラノビス平方距離DM2をスカラー量Zに変換して、再度、Zマップを得る。S250においては、同様にZマップにおいて肌色らしくない画素の面積比率の妥当性を判定し、妥当でなければ再度パラメータuを4倍する。以上の処理を繰り返して実行することにより、肌色らしくない画素の面積比率の妥当となるまで、変換関数を最適化してくことができる。
【0043】
本実施形態では、パラメータuを順次大きくしていくため、変換関数による変換特性が図12において破線で示すように推移していく。すなわち、傾きが急となる第2領域A2をマハラノビス平方距離DM2が大きくなる方向にシフトさせていくことができる。これにともなって、第1領域A1の幅が狭められることとなる。このようにすることにより、肌色のばらつきが異なる様々な顔についても、適切な変換関数を設定することができる。S250において、スカラー量Zが閾値Th1を超える画素の比率が所定の閾値Th2を超えていると判定した場合には、パラメータuの変更を行うことなくスカラー変換処理を終了させ、各画素のRGB階調がスカラー量Zの階調値に変換された左目画像データLE(Zマップ)をパラメータ探索部P2c5に出力する。なお、本実施形態では、パラメータuを変更するようにしたが、第1領域A1と第2領域A2の範囲を調整するためにパラメータαも変更してもよい。第1領域A1を広くするためにはパラメータαを大きくし、第2領域A2を広くするためにはパラメータαを小さくすればよい。むろん、パラメータuを大きめに設定し、徐々に小さく変更していってもよい。
【0044】
図14は、各画素がスカラー量Z(x,y)で表されるZマップの一例を示している。同図において、左目画像データLEの鉛直断面と水平断面におけるスカラー量Z(x,y)を示している。鉛直断面において、黒目に対応する部分はスカラー量Z(x,y)が1に近い値となっており、それ以外の肌色に対応する部分は−1〜0付近の間の値となっている。目の輪郭を構成する黒目と肌色との境界においては、鉛直方向の勾配が大きい値となっている。一方、水平断面において、黒目と白目に対応する部分はともにスカラー量Zが1に近い値となっており、それ以外の肌色に対応する部分は−1に近い値となっている。目の輪郭を構成する白目と肌色との境界における水平方向の勾配が大きい値となっているが、黒目と白目の境界においては勾配が極めて小さくなっている。以上においては、左目画像データLEをZマップに変換する処理を例に挙げて説明したが、同様の処理を右目画像データREについても実行し、右目画像データREもZマップに変換されている。
【0045】
S140において、パラメータ探索部P2c5は、左目画像データLEを変換したZマップを取得する。S145において、パラメータ探索部P2c5は、Zマップにおいて目の輪郭パラメータL,R,T,Bを初期設定する。
図15は、左目のZマップにおける輪郭パラメータL,R,T,Bを示している。輪郭パラメータL,R,T,Bは、左目の輪郭における目尻と目頭と上頂点と下頂点に対応しており、それぞれ水平方向と鉛直方向の座標によってL(xL,yL),R(xR,yR),T(xT,yT),B(xB,yB)と表される。輪郭パラメータL,R,T,Bの初期値が設定できると、左目を近似するための輪郭線O(第1近似曲線)を生成することができる(第1近似手段)。本実施形態において、輪郭線Oは、左上部分の曲線O1と、右上部分の曲線O2と、左下部分の曲線O3と、左下部分の曲線O4によって近似される。各曲線O1〜O4は下記の(4)式で表される。
【数4】
【0046】
前記の(4)式において、曲線O1は輪郭パラメータTの座標を頂点とし、輪郭パラメータLの座標を通過する上に凸の2次曲線で表される。a1,a2は正であり、a3,a4は負とする。曲線O2は輪郭パラメータTの座標を頂点とし、輪郭パラメータRの座標を通過する上に凸の2次曲線で表される。一方、曲線O3は輪郭パラメータBの座標を頂点とし、輪郭パラメータLの座標を通過する下に凸の2次曲線で表される。曲線O4は輪郭パラメータBの座標を頂点とし、輪郭パラメータRの座標を通過する下に凸の2次曲線で表される。輪郭パラメータL,R,T,Bの座標を定めると、曲線O1〜O4が一意に定まるため、輪郭パラメータL,R,T,Bの座標を初期設定することにより、輪郭線Oの位置および形状が初期設定されることとなる。なお、輪郭パラメータL,R,Tおよび輪郭パラメータL,R,Bのそれぞれ3点の組み合わせの位置関係に注目すると、輪郭パラメータL,Rの座標が水平方向の両外側に位置する終端点に相当し、輪郭パラメータT,Bの座標が共通の頂点に相当する。以上のような輪郭線Oを配置するために、輪郭パラメータL,R,T,Bの初期値は、少なくともxL<xT<xR,xL<xB<xR,yT<yL<yB,yT<yR<yBが満足されていればよい。本実施形態では、図15に図示するように左目画像データLEの中央鉛直線に対して左右対称、かつ、中央よりやや下の水平線に対して上下対称に設定する。また、目テンプレート14cにて規格化されている目の輪郭(破線で図示)よりもやや外側に輪郭パラメータL,R,T,Bの座標の初期値を設定する。
【0047】
以上のようにZマップにて輪郭パラメータL,R,T,Bの座標の初期値が設定されると、S150においてパラメータ探索部P2c5と評価値算出部P2c6が最適な輪郭パラメータL,R,T,Bの探索処理を行う。パラメータ探索部P2c5が輪郭パラメータL,R,T,Bを更新し、当該更新した輪郭パラメータL,R,T,Bを評価値算出部P2c6に出力すると、評価値算出部P2c6は下記の評価値Vを算出し、当該評価値Vをパラメータ探索部P2c5に返す。そして、パラメータ探索部P2c5は評価値Vを最大とする輪郭パラメータL,R,T,Bの座標を探索する。
【0048】
図16は、評価値Vの概念を模式的に説明している。図16において、輪郭線O上において長さdlを有する微小線要素と、当該微小線要素の法線単位ベクトルpが示されている。曲線O1〜O4が前記の(4)式によって特定できるため、任意の微小線要素についての法線単位ベクトルpを求めることができる。なお、法線単位ベクトルpは内側方向が正となるようにする。すなわち、曲線O1,O2上の微小線要素の法線単位ベクトルpのy成分は下方向を正とし、反対に曲線O3,O4上の微小線要素の法線単位ベクトルpのy成分は上方向を正とする。また、曲線O1,O3上の微小線要素の法線単位ベクトルpのx成分は右方向を正とし、反対に曲線O2,O4上の微小線要素の法線単位ベクトルpのx成分は左方向を正とする。勾配ベクトルgは下記の(5)式で表される。
【数5】
【0049】
前記の(5)式において、勾配ベクトルgは、水平方向の勾配と鉛直方向の勾配によって与えられ、肌色らしさを示すスカラー量Z(x,y)の変動が激しい領域ほど大きくなる。評価値算出部P2c6は、以上説明した法線単位ベクトルpと勾配ベクトルgを使用し、下記の(6)式によって輪郭線Oの輪郭への近似性を評価する評価値Vを算出する。
【数6】
【0050】
前記の(6)式において、評価値Vは微小線要素に関する法線単位ベクトルpと勾配ベクトルgの内積(微少評価値)を輪郭線Oに沿って線積分(合計)することにより求められる。ただし、輪郭線Oの下側部分の曲線O3,O4に関する積分値に対して、輪郭線Oの上側部分の曲線O1,O2に関する積分値を2倍に重み付けしている。法線単位ベクトルpと勾配ベクトルgの内積は、法線単位ベクトルpと勾配ベクトルgが同じ方向であり、かつ、勾配ベクトルgが大きいほど大きい値となる。従って、輪郭線Oを構成する各微小線要素がスカラー量Z(x,y)の勾配方向に直交し、かつ、勾配が大きいほど評価値Vが大きい値となる。
【0051】
スカラー量Z(x,y)の勾配は、肌色らしさが変動する程度であると考えることができるため、評価値Vが大きいと、輪郭線Oが肌色らしさの変動が大きい領域を通過していると評価することができる。すなわち、評価値Vが大きいと、輪郭線Oが肌色らしさの変動が大きくなる目の輪郭を通過していると考えることができる。特に、スカラー量Z(x,y)は、肌色であることが疑わしい第2領域A2において変動が激しくなるように変換されているため、肌色でない目の輪郭付近では、勾配が極端に大きくなる。一方、図12で示したように白の分布G2と黒の分布G3は、双方とも1に近い値に飽和しており、白目と黒目の境界であってもスカラー量Z(x,y)の勾配は小さいものとなる。すなわち、マハラノビス平方距離DM2において白の分布G2と黒の分布G3が異なる値を示していても、変換関数によってスカラー量Zに変換することにより、白の分布G2と黒の分布G3のマハラノビス平方距離DM2の差を微少なものに変換することができ、これらの間でスカラー量Zの勾配を生じなくさせることができる。従って、白目と黒目の境界について評価値Vが大きくなることが防止でき、白目と黒目の境界と目の輪郭を明確に区別することができる。なお、概念的な理解を容易とするために、連続的な画像平面上において評価値Vや勾配ベクトルgや法線ベクトルnが算出されるように説明したが、現実には離散的な画像平面において等価な演算が行われることとなる。以下に説明する探索処理(探索手段、輪郭検出手段)においては、評価値Vを大きくさせる輪郭パラメータL,R,T,Bの座標を探索していく。
【0052】
図17は、探索処理における探索の手順を模式的に説明している。同図において、輪郭パラメータL,R,T,Bの移動パターンが示されており、当該移動パターンが第1〜4フェーズから構成されている。第1フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から対角4方向に2画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第2フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から鉛直水平方向に2画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第3フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から対角4方向に1画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第4フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から鉛直水平方向に1画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第4フェーズが完了した時点で探索処理を終了する。
【0053】
図18は、各フェーズにおける詳細な探索手順を示している。まず直前のフェーズ(第1フェーズにおいては初期値)によって決定された現在の輪郭パラメータL,R,T,Bの座標(a)を中心として、図17に示す移動パターンにしたがって輪郭パラメータL,R,T,Bを移動させる。輪郭パラメータL,R,T,Bを同時に移動させるのではなく、L→R→T→Bの順で移動させる。まず現在の輪郭パラメータL,R,T,Bを評価値算出部P2c6に出力し、評価値Vaを算出する。次に輪郭パラメータR,T,Bを固定し、輪郭パラメータLを現在の座標(a)のまわりの4座標(b,c,d,e)に順次移動させる。このとき輪郭パラメータLが移動するごとに、輪郭パラメータL,R,T,Bを評価値算出部P2c6に出力し、評価値Va,Vb,Vc,Vd,Veを算出する。なお、4座標(b,c,d,e)への移動順序はどのようなものであってもよい。以上のようにして4座標(a,b,c,d,e)の輪郭パラメータLについての評価値Va,Vb,Vc,Vd,Veが得られると、評価値Va,Vb,Vc,Vd,Veに基づいて評価値Vを極大化させる輪郭パラメータLの座標(h)を予測する。
【0054】
まず、現在の輪郭パラメータLの座標(a)を通過する線分b−a−cに関する評価値Va,Vb,Vcを通る2次曲線を算出し、当該2次曲線を極大化させる座標を算出する。なお、当該2次曲線が上に凸であり、かつ、頂点が線分b−a−cの間にある場合のみ、前記2次曲線を極大化させる座標が算出できる。前記2次曲線を極大化させる座標(f)が算出できない場合には、端の評価値Vb,Vcのうち大きい方の座標(b)または座標(c)を座標(f)とする。そして、線分d−a−eに平行かつ座標(f)を通過する直線l1を生成する。次に、現在の輪郭パラメータLの座標(a)を通過し、線分b−a−cに直交する線分d−a−eに関する評価値Va,Vd,Veを通る2次曲線を算出し、当該2次曲線を極大化させる座標(g)を同様の手順で算出する。そして、線分b−a−cに平行かつ座標(g)を通過する直線l2を生成する。
【0055】
以上のようにして直線l1,l2が生成できると、これらの交点の座標を輪郭パラメータLの座標(h)として算出する。この座標(h)が算出できると、輪郭パラメータLを座標(h)に移動させ、そのときの評価値Vhを算出する。以上のようにして、6個の評価値Va,Vb,Vc,Vd,Ve,Vhが算出できると、これらのうち最も大きいものに対応する座標を当該フェーズにおける最適な輪郭パラメータLの座標として決定する。輪郭パラメータLについて最適な座標が決定すると、次に輪郭パラメータRについて同様の処理を行って最適な座標を決定する。さらに、輪郭パラメータT,Bについて順に同様の処理を行って最適な座標を決定し、当該フェーズを終了させ、次のフェーズに移行する。第4フェーズが完了した段階で、最終的に輪郭パラメータL,R,T,Bを確定させる。
【0056】
以上説明したように、探索の初期の第1,2フェーズにおいては広範囲に輪郭パラメータL,R,T,Bを移動させるため、輪郭パラメータL,R,T,Bの座標をおおまかに目尻、目頭、上頂点、下頂点に近づけさせることができる。さらに、探索の後期の第3,4フェーズにおいては狭い範囲で局所的に輪郭パラメータL,R,T,Bを移動させるため、より目尻、目頭、上頂点、下頂点に収束するように輪郭パラメータL,R,T,Bの座標を微調整することできる。なお、一定の評価値Vに到達した時点で探索を終了させ、そのときの輪郭パラメータL,R,T,Bを出力してもよい。
【0057】
このように最終的に探索された左目についての輪郭パラメータL,R,T,Bを、内部メモリ12の所定領域に記憶し、引き続き右目の輪郭検出を実行する。
S155〜S165では、パラメータ探索部P2c5および評価値算出部P2c6が、右目画像データREを変換したZマップに基づいて、上記S140〜S150で説明した処理と同様に、右目の輪郭パラメータL,R,T,Bの探索を行い、最終的に探索された右目の輪郭パラメータL,R,T,Bを内部メモリ12の所定領域に記憶する。
【0058】
S170では、両目サイズ検出部221は、内部メモリ12に記憶した左目の輪郭パラメータL,R,T,Bを用いて左目のサイズを検出するとともに、内部メモリ12に記憶した右目の輪郭パラメータL,R,T,Bを用いて右目のサイズを検出する。目のサイズといった場合、目の高さ(顔の高さ方向における目の長さ)や目の幅(顔の横方向における目の長さ)や目の面積等、種々の情報が考えられる。本実施形態では、目の高さを目のサイズとして検出する。これは、人顔における左右の目は、その幅は基本的に大きな差はないが、その高さは左右で違いが生じやすいからである。両目サイズ検出部221は、内部メモリ12に記憶した左目の輪郭パラメータL,R,T,BのZマップにおける各y座標値yL,yR,yT,yBのうちの最大値と最小値との差分(多くの場合、yTとyBとの差分)を算出し、当該算出した差分を左目のサイズLSとして取得する。同様に、両目サイズ検出部221は、内部メモリ12に記憶した右目の輪郭パラメータL,R,T,Bの各y座標値のうちの最大値と最小値との差分を算出し、当該算出した差分を右目のサイズRSとして取得する。
【0059】
ただし、両目サイズ検出部221は、上記輪郭パラメータを用いることなく、より簡易に左右の目の大きさを表す情報を取得するとしてもよい。上記S120において顔器官検出部22が検出した左目領域(比較領域CA1)および右目領域(比較領域CA2)は、上述したように、それぞれが内包する目の大きさに応じて領域の大きさが決定されている。そこで両目サイズ検出部221は、例えば、顔画像データFDにおける比較領域CA1の鉛直方向の長さ(画素数)を左目のサイズLSとして取得し、顔画像データFDにおける比較領域CA2の鉛直方向の長さ(画素数)を右目のサイズRSとして取得してもよい。比較領域CA1,CA2の辺の長さを目のサイズとして検出する場合には、上記S125〜S165(図3)の処理は不要である。このように本実施形態では、両目サイズ検出部221は、左右それぞれの目の大きさを直接的または間接的に表す情報を、左目のサイズLS、右目のサイズRSとして検出する。以下では、左目のサイズLS、右目のサイズRSを単にLS,RSと表記する。
【0060】
3.補正量の決定処理:
LS,RSが検出されたら、次に、補正量決定部23がLS,RSに基づいて補正量を決定する。
図19は、補正量決定部23が実行するS300(図2)の詳細を、フローチャートにより示している。S305では、補正量決定部23は、LSとRSとの大小判定を行なうことにより、補正量を決定する対象の目を決定する。本実施形態では、左右の目のうちどちらのサイズが小さいか判定し、小さい方の目に対する補正量β(拡大率)を決定する。そして、後述するように、補正量βに基づいて小さい方の目の大きさを拡大するような画像変形(S500)を行なう。
【0061】
なお、大小判定においてRS=LSと判定された場合は、左右の目の大きさのバランスが取れている状況である。そのため、後述する補正量βの決定およびS500の処理を行なうことなく、プリンタ10は、対象画像を表す画像データ14aに基づいてS700の処理を行なう。以下では、RS<LSと判定された場合、すなわち右目のほうが左目よりも小さいと判定された場合を想定して説明を行なう。
S310では、補正量決定部23は、上記大小判定において補正量の決定対象とされた目(右目)に対する補正量を決定するための関数を生成する。まず、補正量決定部23は、補正量βの最小値と最大値を定める。ここでは、補正量βの最小値を1とし、補正量βの最大値をLS/RSとする。次に、補正量決定部23は、最小値=1、最大値=LS/RSを出力する関数を生成する。
【0062】
図20は、補正量決定部23が生成する関数F1の一例を示している。同図では、入力値(横軸)=RS/LS、出力値(縦軸)=補正量βとした、上に凸の2次曲線を示している。補正量決定部23は、かかる2次曲線を関数F1として生成する。関数F1は、入力値=0のとき最小値=1を出力し、入力値=1のとき最大値=LS/RSを出力する関数である。なお、関数F1の曲線形状自体は予め定められているものとし、関数F1の縦軸の目盛間隔が、補正量βの最大値に応じて変更される。
S315では、補正量決定部23は、上記生成した関数F1に対してRS/LSを入力することにより補正量βを決定する。このように決定した補正量βが、本実施形態において右目の大きさを拡大するための補正量となる。
【0063】
上記関数F1を用いることで、左右の目のうち大きい方の目の大きさに対する小さい方の目の大きさの比率が高いほど小さい方の目の大きさを大きい方の目の大きさに近づかせる補正量βを決定することができる。つまり、上記比率がある程度低い場合には、決定される補正量βも最大値(大きい方の目のサイズ/小さい方の目のサイズ)からある程度離れた値となるため、小さい目に対する過剰な変形(拡大)によって却って画像を破綻させてしまうことが防がれる。一方、上記比率がある程度高い場合には、決定される補正量βも最大値に近い値となり、変形後は両方の目の大きさが略同じとなる。元々両目の大きさの差が少ない場合には、小さい方の目を大きい方の目と同等な大きさまで拡大しても、画像の自然さは損なわれない。
【0064】
ただし、小さい方の目の大きさを拡大するための補正量βの決定方法は、上述した手法に限られない。例えば、補正量決定部23は、LS,RSの平均値Ave=(LS+RS)/2に基づいて、補正量βを決定してもよい。具体的には、後述する画像変形によって小さい方の目(右目)の大きさが平均値Aveにまで略拡大されるように、補正量決定部23は、補正量β=Ave/RSとする。補正量β=Ave/RSと決定すれば、変形後においても左右の目の大きさに差は残るものの、小さい方の目に対する過剰な変形(拡大)が防止され、観察者が違和感を生じない程度に両目の大きさのバランスを調整することができる。あるいは、より単純に、補正量決定部23は、後述する画像変形によって小さい方の目(右目)の大きさが大きい方の目(左目)の大きさまで略拡大されるように、補正量β=LS/RSとしてもよい。
なお、LS<RSであれば、上述した補正量βの決定の際におけるRSとLSとの関係が逆になることは言うまでもない。
【0065】
4.変形処理および印刷処理:
補正量βが決定されたら、次に、変形領域設定部24、変形領域分割部25および変形処理実行部26が、補正量βに基づく画像の変形処理を行なう。変形領域設定部24、変形領域分割部25および変形処理実行部26をまとめて変形部と呼ぶこともできる。
図21は、変形部が実行するS500(図2)の詳細を、フローチャートにより示している。S505では、変形領域設定部24が変形領域TAを設定する。変形領域TAは、画像データ14a上の少なくとも顔の一部を含む領域であって画像変形の対象となり得る領域である。変形領域TAの設定は、例えば、S110(図3)で顔領域として検出された比較領域C(図4に示した比較領域CA)を基準にして行なうことができる。以下では、S110で顔領域として検出された比較領域Cを顔領域FAと呼ぶ。
【0066】
図22は、顔領域FAおよび顔領域FAを基準に設定された変形領域TAの一例を示している。同図には、顔領域FAの基準線SLを示している。基準線SLは、顔領域FAの重心を通過する線であって、顔領域FAの顔の高さ方向を向く線である。なお、図22に示した顔領域FAは、図4に示した顔領域(比較領域C)と比較して、画像データ14a上における位置および角度が若干異なっている。これは、変形領域TAの設定前に、変形領域設定部24が、上記S110で検出された顔領域の矩形を、その上辺および下辺が顔の幅方向(例えば、両目の中心を結んだ線が向く方向)と略平行となるように回転させたり、顔内の主要器官が確実に矩形内に入るように基準線SLに沿って移動させたことによる。このような顔領域の角度や位置の調整は、行なってもよいし行なわなくてもよい。
【0067】
図22に示すように、変形領域TAは、顔領域FAを基準線SLと平行な方向および基準線SLに直行する方向に伸張(または短縮)した領域として設定される。具体的には、顔領域FAの高さ方向の大きさをHf、幅方向の大きさをWfiとすると、顔領域FAを、上方向にk1・Hf、下方向にk2・Hfだけ伸ばすと共に、左右にそれぞれk3・Wfiだけ伸ばした領域が、変形領域TAとして設定される。k1,k2,k3は、所定の係数である。図22に示すように、変形領域TAは、顔の高さ方向に関しては、概ね顎から額までの画像を含み、顔の幅方向に関しては、左右の頬の画像を含むような領域として設定される。本実施形態では、変形領域TAが概ね上述したような範囲の画像を含む領域となるように、顔領域FAの大きさとの関係に基づき、上述の係数k1,k2,k3が予め設定されている。
S510では、変形領域分割部25が、変形領域TAを複数の小領域に分割する。
【0068】
図23は、変形領域TAの小領域への分割方法の一例を示す説明図である。変形領域分割部25は、変形領域TAに複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TAを複数の小領域に分割する。分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル41(図1)により定義されている。変形領域分割部25は、分割点配置パターンテーブル41を参照して分割点Dを配置する。図23に示すように、一例として、分割点Dは水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに配置される。水平分割線Lhおよび垂直分割線Lvは、変形領域TA内に分割点Dを配置するための基準となる線である。図23に示した分割点Dの配置では、基準線SLと直行する2本の水平分割線Lhと、基準線SLに平行な4本の垂直分割線Lvとが設定される。2本の水平分割線Lhを、変形領域TAの下方から順に、Lh1,Lh2と呼ぶ。4本の垂直分割線Lvを、変形領域TAの左から順に、Lv1,Lv2,Lv3,Lv4と呼ぶ。
【0069】
水平分割線Lh1は、変形領域TAにおいて、目の画像のすぐ下付に配置され、水平分割線Lh2は、目の画像のすぐ上付近に配置される。垂直分割線Lv1およびLv4は、左右の目尻の画像の外側に配置され、垂直分割線Lv2およびLv3は、左右の目頭の画像の内側に配置される。なお、水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TAの大きさとの対応関係に従い実行される。
【0070】
上述した水平分割線Lhと垂直分割線Lvとの配置に従い、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに、分割点Dが配置される。図23に示すように、水平分割線Lhi(i=1または2)上に位置する分割点Dを、左から順に、D0i,D1i,D2i,D3i,D4i,D5iと呼ぶ。例えば、水平分割線Lh1上に位置する分割点Dは、D01,D11,D21,D31,D41,D51と呼ばれる。同様に、垂直分割線Lvj(j=1,2,3,4のいずれか)上に位置する分割点Dを、下から順に、Dj0,Dj1,Dj2,Dj3と呼ぶ。例えば、垂直分割線Lv1上に位置する分割点Dは、D10,D11,D12,D13と呼ばれる。なお、図23に示すように、分割点Dの配置は、基準線SLに対して対称の配置となっている。
【0071】
変形領域分割部25は、配置された分割点Dを結ぶ直線(すなわち水平分割線Lhおよび垂直分割線Lv)により、変形領域TAを複数の小領域に分割する。分割点Dの配置は、水平分割線Lhおよび垂直分割線Lvの本数および位置により定まるため、分割点配置パターンテーブル41は水平分割線Lhおよび垂直分割線Lvの本数および位置を定義していると言い換えることも可能である。
S515では、変形処理実行部26が、変形領域TAを対象とした画像の変形処理を行う。変形処理実行部26による変形処理は、S510で変形領域TA内に配置された分割点Dの位置を移動して、小領域を変形することにより行われる。
【0072】
図24は、分割点Dの位置移動の一例を示す説明図である。変形処理実行部26は、補正量決定部23によって補正量βが決定された目(本実施形態においては右目)を囲む分割点Dを、上記決定された補正量βに基づいてV方向(基準線SLと平行な方向)に移動させる。なお図24の説明において用いる“V”は、画像データ14aにおける変形領域TAの方向を意味しており、上記評価値Vとは別の意味である。右目を囲む分割点Dは、D11,D12,D22,D21である。この分割点D11,D12,D22,D21を頂点とする小領域(ハッチングを付して示す小領域)は、特許請求の範囲に言う右目を含む領域の一例に該当する。なお、分割点D31,D32,D42,D41を頂点とする小領域は、特許請求の範囲に言う左目を含む領域の一例に該当する。
【0073】
変形処理実行部26は、分割点D11,D12,D22,D21を頂点とする小領域のV方向の距離(画素数)が例えばV1であるとすると、この小領域のV方向の距離がβ・V1に拡大されるように、分割点D11,D12,D22,D21の全てあるいは一部を移動させる。分割点D11,D12,D22,D21の全てを移動させる場合には、目よりも下側に位置する水平分割線Lh1上の分割点D11,D21をV方向のマイナス側(顔の下側)に移動させ、目よりも上側に位置する水平分割線Lh2上の分割点D12,D22をV方向のプラス側(顔の上側)に移動させる。ただし本実施形態では、変形処理実行部26は、図24に例示したように、水平分割線Lh1上に位置する分割点D11,D21は移動させず、水平分割線Lh2上に位置する分割点D12,D22をV方向のプラス側に移動させる。本実施形態では、H方向(基準線SLに直交する方向)への分割点Dの移動は行わない。
【0074】
変形処理実行部26は、変形領域TAの内外の画像間の境界が不自然とならないように、変形領域TAの外枠上に位置する分割点Dの位置は移動しない。図24では、移動前の分割点Dは白抜きの丸で、移動後の分割点Dや位置の移動の無い分割点Dは黒丸で示されている。移動後の各分割点Dについては、「’」を付して表現している。
変形処理実行部26は、変形領域TAを構成する小領域について、分割点Dの位置移動前の状態における小領域の画像が、分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。具体的には、分割点D11,D12,D22,D21を頂点とする小領域の画像は、分割点D11,D’12,D’22,D21を頂点とする小領域の画像に変形(拡大)される。またこれに付随して、分割点D01,D02,D12,D11を頂点とする小領域の画像は、分割点D01,D02,D’12,D11を頂点とする小領域の画像に変形(拡大)され、分割点D21,D22,D32,D31を頂点とする小領域の画像は、分割点D21,D’22,D32,D31を頂点とする小領域の画像に変形(拡大)される。
【0075】
図25は、変形処理実行部26による画像の変形処理方法の概念を示す説明図である。図25では、分割点Dを黒丸で示している。図25では、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図25の例では、中央の分割点Daが分割点Da’の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da’,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
【0076】
本実施形態では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図25の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG’を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da’,Ddおよび重心CG’を頂点とする三角形領域の画像に変形される。
【0077】
図26は、三角形領域における画像の変形処理方法の概念を示す説明図である。図26の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s’,t’,u’を頂点とする三角形領域s’t’u’の画像に変形される。なお、図26の説明において用いる“s”や“u”は、本明細書において既出の同一の符号とは別の意味で用いている。画像の変形は、変形後の三角形領域s’t’u’の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。例えば、図26において、変形後の三角形領域s’t’u’の画像中の注目画素p’の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p’の位置を、下記の式(7)のようにベクトルs’t’とベクトルs’u’との和で表現するための係数m1およびm2を算出する。
【0078】
【数7】
【0079】
次に、算出された係数m1およびm2を用いて、下記の式(8)により、変形前の三角形領域stuにおけるベクトルstとベクトルsuとの和を算出することにより、位置pが求まる。
【数8】
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【0080】
変形後の三角形領域s’t’u’の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s’t’u’の画像への画像変形処理を行うことができる。変形処理実行部26は、図24に示した変形領域TAを構成する小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域TAにおける画像変形処理を行う。
【0081】
上述したように本実施形態では、変形処理実行部26は、水平分割線Lh1上に位置する分割点D11,D21は移動させず、水平分割線Lh2上に位置する分割点D12,D22を補正量βに応じてV方向のプラス側に移動させる。従って、水平分割線Lh1と水平分割線Lh2と垂直分割線Lv3に囲まれた画像、特に、水平分割線Lh1と水平分割線Lh2と垂直分割線Lv1と垂直分割線Lv2に囲まれた画像が、V方向に関して顔の上側に拡大される。この結果、左右の目のうち小さい方の目(右目)を含む領域が拡大され、当該拡大後においては左右の目の大きさの違いが少なくなる(あるいは、左右の目の大きさの違いが無くなる)。
【0082】
ただし、変形処理実行部26が変形の対象とする領域は、必ずしも変形領域TA中に設定された分割点Dによって囲まれた領域である必要はない。例えば、変形処理実行部26は、S120(図3)で顔器官検出部22が検出した左目領域(比較領域CA1)と右目領域(比較領域CA2)とのうち、補正量決定部23によって補正量βが決定された目に対応する側の領域を変形対象としてもよい。この場合、変形処理実行部26は、変形対象とした領域(例えば、右目領域)の矩形内の画像を、補正量βに基づいて目の高さ方向に拡大させる(β倍する)変形を実行すればよい。
【0083】
S700(図2)では、印刷処理部32が、プリンタエンジン16を制御して、対象画像の印刷を行う。すなわち印刷処理部32は、変形処理後の画像データ14a(変形処理が実行されていない場合には、S105(図3)で取得された画像データ14a)に、解像度変換処理や色変換処理やハーフトーン処理など必要な各処理を施して印刷データを生成する。生成された印刷データは、印刷処理部32からプリンタエンジン16に供給され、プリンタエンジン16は印刷データに基づいた印刷を実行する。これにより、変形処理後の対象画像の印刷が完了する。
【0084】
このように本実施形態によれば、画像変形部20は、対象画像に含まれている顔の左右の目のサイズLS,RSを検出し、検出したLS,RSに基づいて、左右の目のうち小さい方の目を拡大するための補正量βを決定する。そして、決定した補正量βに基づき、対象画像における上記小さい方の目を含む領域を対象として、上記V方向すなわち顔の略高さ方向に沿って拡大させる変形処理を行なう。その結果、対象画像における顔の左右の目の大きさに違いがある場合であっても、かかる左右の目の大きさの違いが自動的に補正された、観察者に良好な印象を与える画像を得ることができる。
【0085】
人間の左右の目は、その幅は(顔の横方向における目の長さ)は基本的に大きな差は少ない一方、その高さ(顔の高さ方向における目の長さ)は、左右のまぶたの形状の違いや目をつむる動きの影響等で違いが生じやすい。そのため本実施形態では、上述したように、上記小さい方の目を含む領域を顔の略高さ方向(目の略高さ方向)に沿って拡大させることで、現実的に対象画像において生じる左右の目の大きさの違いを的確に補正する。さらに、左右の目の大きさの違いというものを詳細に検討すると、その違いの多くは、左右の目の上端(まぶたの下端)の位置の違いに起因し、一方、左右の目の下端の位置に大きな違いは無いと言える。そこで本実施形態では、上述したように、目の下側に位置する水平分割線Lh1上の分割点D11,D21は移動させず、目の上側に位置する水平分割線Lh2上の分割点D12,D22をV方向のプラス側に移動させることにより、結果的に、水平分割線Lh1よりも顔の上側に位置する各画素を顔の上側に向かって移動させている。従って、対象画像において他方の目と比べて小さく表されていた目が大きく見開かれたように補正され、かつ左右の目の下端位置は略維持されるため、違和感の無い補正後の顔画像が得られる。
【0086】
なお上記では、左右の目のうち小さい方の目を拡大するための補正量βに基づいて小さい方の目を拡大する場合について説明した。しかし本発明においては、大きい方の目を縮小するための補正量(縮小率)をLS,RSに基づいて決定し、決定した補正量に基づいて大きい方の目を縮小する変形を行なうことも可能である。あるいは、大きい方の目を縮小するための補正量および小さい方の目を拡大するための補正量をLS,RSに基づいて決定し、大きい方の目を縮小するための補正量に基づいて大きい方の目を縮小し、小さい方の目を拡大するための補正量に基づいて小さい方の目を拡大する変形を行なうことも可能である。
【0087】
5.他の実施例
画像変形部20は、顔向き推定部27(図1)を備えている。顔向き推定部27は、対象画像における顔の向き(正面向き、上向き、下向き、右向き、左向き等)を推定する機能である。対象画像の顔が上向きとは、顔が仰向けの傾向にある状態を意味し、下向きとは顔がうつ伏せの傾向にある状態を意味し、右向きとは対象画像の人物にとっての左の横顔が画像内で主に見えている状態を意味し、左向きとは対象画像の人物にとっての右の横顔が画像内で主に見えている状態を意味する。画像変形部20は、S100,S300(図2)を実行する過程で、顔向き推定部27に対象画像における顔の向きを推定させるとともに、推定された顔の向きの程度(顔の振りの程度)に応じて、上記補正量βを変更するとしてもよい。
【0088】
図27は、S110(図3)において、画像データ14aから顔領域として検出された比較領域CAを例示している。また図27では、S120で顔器官検出部22によって検出された左目領域としての比較領域CA1と、右目領域としての比較領域CA2との各位置も例示している。なお図27では、画像データ14a内の顔自体の図示は省略している。さらに図27では、顔器官検出部22が検出した口の画像を含む矩形領域(口領域CA3)の位置も例示している。画像変形部20は、S120において、顔器官検出部22に、左右の目に加え口も検出させる。つまり顔器官検出部22は、顔領域としての比較領域CA内(顔画像データFD内)でさらに矩形状の比較領域CAを設定し、当該設定した比較領域CAの位置と大きさと回転角度を変えながら、当該設定した比較領域CA内の画像と各テンプレート(口テンプレート)の画像との類似性を評価するパターンマッチングを行なうことにより、口領域CA3を検出可能である。
【0089】
比較領域CA1と、比較領域CA2と、口領域CA3とが検出されたら、顔向き推定部27が顔の向きの推定処理を実行する。推定処理を実行するタイミングは様々であるが、一例として、顔向き推定部27は、S120とS125の間のタイミングにおいて推定処理を行なう。なお、顔器官検出部22が左目領域と、右目領域と、口領域CA3とのいずれか一つでも検出できなかった場合には、顔向き推定部27は推定処理を行なわないとしてもよい。ここで、比較領域CA1の中心点Ce(l)と比較領域CA2の中心点Ce(r)とを結ぶ線分CLの長さを参照幅Wrと呼び、口領域CA3の中心点Cmと線分CLとの距離を参照高さHrと呼ぶ。図27から明らかなように、参照幅Wrは顔の画像の幅に相関のある指標であり、参照高さHrは顔の画像の高さに相関のある指標である。
【0090】
顔向き推定部27は、参照高さHrと参照幅Wrとを算出するとともに、参照高さHrと参照幅Wrとの比(Hr/Wr)を判定指標値DIとして算出し、判定指標値DIに基づき顔向き推定を行う。具体的には、顔向き推定部27は、判定指標値DIがしきい値DT1以上かつしきい値DT2未満である場合には、顔の画像の向きが正面向きであると推定する。しきい値DT1,DT2はいずれも正の値であり、DT1<DT2の関係を有する。顔向き推定部27は、判定指標値DIがしきい値DT1未満である場合には、顔の画像の向きが上向きまたは下向きであると推定する。顔向き推定部27は、判定指標値DIがしきい値DT2以上である場合には、顔の画像の向きが右向きまたは左向きであると推定する。
【0091】
顔の画像の向きが右向きまたは左向きである場合には、正面向きである場合と比較して、参照高さHrはほとんど変わらない一方、参照幅Wrは小さいと考えられる。従って、顔の画像の向きが右向きまたは左向きである場合には、正面向きである場合と比較して、判定指標値DI(=Hr/Wr)が大きくなる。反対に、顔の画像の向きが上向きまたは下向きである場合には、正面向きである場合と比較して、参照幅Wrはほとんど変わらない一方、参照高さHrは小さいと考えられる。従って、顔の画像の向きが上向きまたは下向きである場合には、正面向きである場合と比較して、判定指標値DI(=Hr/Wr)が小さくなる。しきい値DT1,DT2は、複数の顔のサンプル画像の判定指標値DIから統計的に定められる。予め定められたしきい値DT1,DT2は内部メモリ12内の所定の領域に格納されている。
【0092】
本実施形態においては、顔が右向きまたは左向きと推定された場合に、当該推定の結果を補正量βの決定に際して考慮する。そこで、顔向き推定部27は、顔の画像の向きが右向きまたは左向きであると推定したときに、上記算出した判定指標値DIを内部メモリ12に記録する。従って、内部メモリ12に記録される判定指標値DIは、少なくともしきい値DT2以上の値である。内部メモリ12に記録された判定指標値DIは、対象画像における顔の右向きまたは左向きの度合い(横向きの度合い)を示していると言える。補正量決定部23は、S300の実行過程において、内部メモリ12に判定指標値DIが記録されているか否か判断する。そして、内部メモリ12に判定指標値DIが記録されている場合には、S315(図19)で決定した補正量βを、判定指標値DIの大きさに応じて変更する。以下では、変更後の補正量を補正量β´と呼ぶ。
【0093】
図28は、補正量βを判定指標値DIに応じて変更するための関数F2を例示している。関数F2は、入力値(横軸)=判定指標値DI、出力値(縦軸)=補正量β´とした、下に凸の2次曲線である。関数F2は、入力値=DT2のとき最大値(補正量β)を出力し、入力値が大きくなるほど1に近い値を出力する。従って、判定指標値DIが大きい値であるほど(対象画像における顔の横向きの度合いが高いほど)、補正量βが1を下限として小さい値に変更される。補正量決定部23は、このように関数F2に基づいて出力した補正量β´を、変形部に受け渡す。変形部は、補正量β´に基づいて上述した画像変形を行なう(S500)。
【0094】
対象画像における顔が右向きまたは左向きであれば、奥側の目(対象画像の顔が右向きであれば当該顔の右目、対象画像の顔が左向きであれば当該顔の左目)は、手前側の目よりも小さく表示されていて当然である。このように、小さくて当然の奥側の目を上記のように決定した補正量βに基づいて拡大すると、過剰な変形となってしまい、却って画像が不自然となり得る。そこで本実施形態では、顔向き推定部27が顔の横向きの度合いが高いと推定した場合には、補正量決定部23は、小さい方の目を拡大するための補正量βを上記のように低減させる(補正量β´に変更する)ことで、画像の過剰な変形を防止している。補正量決定部23による変更後の補正量β´=1である場合には、実質的に画像変形は行なわれないため、この場合プリンタ10は、S500をスキップしてS700に進む。
【0095】
また、顔向き推定部27による推定結果に基づく処理の一例として、画像変形部20は、顔向き推定部27が算出した判定指標値DIが一定値以上であれば、画像変形を行なわないとしてもよい。つまり、上記S120の次のステップで顔向き推定部27が算出した判定指標値DIが、しきい値DT2以上であったり、あるいは、しきい値DT2より大きい所定の値(しきい値DT3)以上であった場合には、画像変形部20は、拡大率(あるいは縮小率)としての補正量βは1に変更されるものとみなし、S125〜S170,S300,S500の処理を行なうことなくS700に進むとしてもよい。
本実施形態では、プリンタ10による処理を説明したが、上述した画像変形部20による処理(S100〜S500の処理)は、PCやデジタルスチルカメラなど、プリンタ以外の各種ハードウェアにおいても行なうことが可能である。
【図面の簡単な説明】
【0096】
【図1】画像処理装置としてのプリンタの概略構成を示すブロック図である。
【図2】プリンタが実行する処理を示すフローチャートである。
【図3】両目サイズ検出処理の詳細を示すフローチャートである。
【図4】顔検出の様子を示す図である。
【図5】顔器官検出後の顔画像データを示す図である。
【図6】両目サイズ検出部のソフトウェア構成を示すブロック図である。
【図7】傾き補正の様子を示す図である。
【図8】スカラー変換処理の流れを示すフローチャートである。
【図9】サンプリングの様子を示す図である。
【図10】サンプリングによって得られるヒストグラムである。
【図11】マハラノビス平方距離の等値線を示すグラフである。
【図12】変換関数による変換特性を示すグラフである。
【図13】マハラノビス平方距離と確率分布の関係を示すグラフである。
【図14】Zマップの一例を示す図である。
【図15】Zマップにおける輪郭パラメータを示す図である。
【図16】評価値を説明する図である。
【図17】探索処理における探索手順を示す模式図である。
【図18】探索処理の詳細手順を示す模式図である。
【図19】補正量決定処理の詳細を示すフローチャートである。
【図20】補正量決定のための関数の一例を示す図である。
【図21】画像変形処理の詳細を示すフローチャートである。
【図22】画像データ上に設定した変形領域の一例を示す図である。
【図23】変形領域を小領域に分割した様子の一例を示す図である。
【図24】分割点の位置移動の一例を示す図である。
【図25】画像の変形処理の概念を示す説明図である。
【図26】三角形領域における画像の変形処理の概念を示す説明図である。
【図27】左目領域や右目領域や口領域等を示す図である。
【図28】補正量を判定指標値に応じて変更するための関数を示す図である。
【符号の説明】
【0097】
10…プリンタ、11…CPU、12…内部メモリ、14a…画像データ、14b…顔テンプレート、14c…目テンプレート、16…プリンタエンジン、17…カードI/F、20…画像変形部、21…顔領域検出部、22…顔器官検出部、23…補正量決定部、24…変形領域設定部、25…変形領域分割部、26…変形処理実行部、27…顔向き推定部、32…印刷処理部、41…分割点配置パターンテーブル、172…カードスロット、221…両目サイズ検出部、P2c1…傾き補正部、P2c2…サンプリング部、P2c3…スカラー変換部、P2c4…変換関数設定部、P2c5…パラメータ探索部、P2c6…評価値算出部
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている(特許文献1参照。)。特許文献1には、顔の画像上の一部の領域(頬の画像を表す領域)を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【特許文献1】特開2004‐318204号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
画像が顔を含む場合、顔内の目は特に画像の観察者の注意を引く部分である。ここで、人間の左右の目の大きさは互いに異なっている場合がある。また、人の表情を一瞬で捉えて生成された画像、例えばデジタルスチルカメラ等で撮影された顔を含む画像においては、このような左右の目の大きさの違いが顕著に表れることが多い。左右の目の大きさのバランスが悪い画像、例えば、片方の目が少し閉じてしまっている顔の写真等は、観察者の印象も悪く、モニタへの表示結果やプリンタによる印刷結果において望まれるものではなかった。なお、上記従来の画像変形のための画像処理は、頬のラインを補正することに特化されており、上述したような画像における左右の目の大きさのバランスの悪さを是正することはできなかった。
【0004】
本発明は上記課題に鑑みてなされたもので、画像内の顔の左右の目の大きさのバランスを補正することにより、良好な印象を観察者に与える画像を得ることが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、本発明の画像処理装置は、対象画像における顔の左右の目の大きさを表す情報を検出する検出部と、上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定部と、上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形部とを備える構成としてある。本発明によれば、左目を含む領域と右目を含む領域との少なくとも一方の領域が上記補正量によって変形されるため、左右の目の大きさの違いが補正された良好な印象の顔画像が得られる。
【0006】
上記補正量決定部は、上記左右の目のうち小さい方の目の大きさを拡大させる補正量を決定し、上記変形部は、上記拡大させる補正量に基づいて上記小さい方の目を含む領域を拡大する変形処理を行なうとしてもよい。当該構成によれば、小さい方の目が拡大されるため、左右の目が適切な大きさで表された良好な顔画像が得られる。
【0007】
上記補正量決定部は、上記拡大させる補正量として、上記左右の目のうち大きい方の目の大きさに対する上記小さい方の目の大きさの比率が高いほど上記小さい方の目の大きさを上記大きい方の目の大きさに近づかせる補正量を決定するとしてもよい。当該構成によれば、変形前の画像において左右の目に大きなサイズ差がある場合には、小さい方の目の大きさを、無理やり大きい方の目の大きさに近づけることはしない。そのため 小さい方の目に過剰な拡大を施し却って不自然な画像となる、という不都合を回避できる。
【0008】
上記補正量決定部は、上記左右の目の大きさの平均値を算出するとともに、上記小さい方の目の大きさを当該平均値まで略拡大させる補正量を決定するとしてもよい。当該構成によれば、小さい方の目に対し過剰にならない程度の適切な拡大を行なうことができる。
上記補正量決定部は、上記小さい方の目の大きさを大きい方の目の大きさまで略拡大させる補正量を決定するとしてもよい。当該構成によれば、変形後の画像において左右の目の大きさを略均等にすることができる。
【0009】
左右の目の大きさの違いは、主に、目の高さ方向において表れる。そこで上記変形部は、変形処理の対象とした領域の画像を当該領域が含む目の略高さ方向に沿って変形するとしてもよい。当該構成によれば、左右の目の高さ方向の大きさの違いが補正された良好な顔画像を得ることができる。
【0010】
左右の目の大きさの違いは、多くの場合、目の上端(まぶたの下端)の位置の違いに起因する。そこで上記変形部は、変形処理の対象とした領域の画素のうち、当該領域を区画する線であって目の下方に位置する線よりも上記顔の上側に位置する画素を、上記補正量に基づいて移動させることにより変形処理を行なうとしてもよい。当該構成によれば、左右の目それぞれの下端の位置は変形の前後において略維持され、当該下端を基準とした左右の目の大きさのバランスが取れるように変形が行なわれる。そのため、極めて自然に左右の目の大きさの違いが補正された顔画像を得ることができる。
【0011】
画像処理装置は、上記対象画像における顔の向きを推定する顔向き推定部を備えるとしてもよい。また、上記補正量決定部は、上記推定部により推定された顔の向きに応じて補正量を変更するとしてもよい。当該構成によれば、対象画像における顔の向きに応じて、左右の目を含む上記各領域に対する変形の程度を変えることができる。
【0012】
本発明の技術的思想は、上述した画像処理装置の発明以外にも、上述した画像処理装置が備える各部が行なう各処理工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各部に対応した機能をコンピュータに実行させる画像処理プログラムの発明として捉えることができる。また、上述した画像処理装置を兼ねる印刷装置の発明や、上述した画像処理装置を兼ねるデジタルスチルカメラの発明をも把握可能である。
【発明を実施するための最良の形態】
【0013】
下記の順序に従って本発明の実施例を説明する。
1.画像処理装置の概略構成:
2.左右の目のサイズ検出処理:
3.補正量の決定処理:
4.変形処理および印刷処理:
5.他の実施例:
【0014】
1.画像処理装置の概略構成:
図1は、本発明の画像処理装置の一例としてのプリンタ10の構成を、概略的に示している。プリンタ10は、記録メディア(例えば、メモリカードMC等)から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ10は、プリンタ10の各部を制御するCPU11と、例えばROMやRAMによって構成された内部メモリ12と、ボタンやタッチパネルにより構成された操作部14と、液晶ディスプレイにより構成された表示部15と、プリンタエンジン16と、カードインターフェース(カードI/F)17と、PCやサーバやデジタルスチルカメラ等の外部機器との情報のやり取りのためのI/F部13とを備えている。プリンタ10の各構成要素は、バスを介して互いに接続されている。
【0015】
プリンタエンジン16は、印刷データに基づき印刷を行う印刷機構である。カードI/F17は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのI/Fである。メモリカードMCには画像データが格納されており、プリンタ10は、カードI/F17を介してメモリカードMCに格納された画像データを取得することができる。画像データ提供のための記録メディアとしてはメモリカードMC以外にも種々の媒体を用いることができる。プリンタ10は、I/F部13を介してPCやサーバ等とケーブルで接続し、当該PCやサーバ等から印刷データを入力することもできる。
【0016】
内部メモリ12には、画像変形部20と、表示処理部31と、印刷処理部32とが格納されている。画像変形部20は、所定のオペレーティングシステムの下で、後述する画像変形処理等を実行するためのコンピュータプログラム(画像処理プログラム)である。表示処理部31は、表示部15を制御して、表示部15に処理メニューやメッセージを表示させるディスプレイドライバである。印刷処理部32は、画像データから印刷データを生成し、プリンタエンジン16を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU11は、内部メモリ12から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
【0017】
画像変形部20は、プログラムモジュールとして、顔領域検出部21と、顔器官検出部22と、補正量決定部23と、変形領域設定部24と、変形領域分割部25と、変形処理実行部26と、顔向き推定部27とを含んでいる。顔器官検出部22は、両目サイズ検出部221を含んでいる。これら各部の機能については後述する。さらに、内部メモリ12には、分割点配置パターンテーブル41や、顔テンプレート14bや、目テンプレート14c等の各種データが格納されている。プリンタ10は、印刷機能以外にも、コピー機能やスキャナ機能など多種の機能を備えたいわゆる複合機であってもよい。
【0018】
図2は、画像処理装置(プリンタ10)が実行する画像変形印刷処理の概略を、フローチャートにより示している。
ステップS(以下、ステップの表記は省略。)100では、画像変形部20は、画像処理の対象とする画像(対象画像)内の顔の左右の目の大きさを表す情報(左右の目のサイズ)を検出する。
S300では、画像変形部20は、上記検出された左右の目のサイズに基づいて、左右の目のうち少なくとも一方の目の大きさに対する補正量を決定する。
S500では、画像変形部20は、上記決定された補正量に基づいて、対象画像における左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう。
【0019】
S700では、印刷処理部32は、変形処理後の対象画像を表す画像データに基づいて印刷データを生成し、生成した印刷データに基づいて印刷を実行する。ただし、プリンタ10は、S100の処理において、対象画像から顔領域の検出(後述する図3のS110)に失敗したり、顔領域の検出に成功しても左右の目の領域の検出(図3のS120)に失敗した場合には、左右の目のサイズの検出およびS300,S500を行なうことなく、対象画像を表す画像データに基づいてS700の処理を行なう。以下では、対象画像は、人顔を含みかつ人顔の左右の目が表れている画像であるとして、図2のフローチャートの詳細を説明する。
【0020】
2.左右の目のサイズ検出処理:
図3は、S100の詳細をフローチャートにより示している。
S105では、顔領域検出部21が対象画像を表した画像データ14aをメモリカードMC等、所定の記録メディアから取得する。むろん、顔領域検出部21は、プリンタ10がハードディスクドライブ(HDD)を有していれば、当該HDDに保存されている画像データ14aを取得してもよいし、I/F部13を介してPCやサーバやデジタルスチルカメラ等から画像データ14aを取得してもよい。画像データ14aは、各画素が示す色がRGB各チャネルの階調値の組み合わせ(RGB色空間におけるベクトル)で表現されたビットマップデータである。後述する図面において、便宜的に2値の画像が示される場合があるが、実際には多階調のカラー画像データが処理の対象となる。画像データ14aは、記録メディア等に記録されている段階で圧縮されていてもよいし、他の色空間で各画素の色が表現されていてもよい。これらの場合、画像データ14aの展開や色空間の変換を実行して、顔領域検出部21がRGBビットマップデータの画像データ14aを取得する。ユーザが表示部15に表示されたユーザインターフェース(UI)画面を参照して操作部14を操作することにより、対象画像としての画像データ14aが指定される。
【0021】
S110では、顔領域検出部21が画像データ14aに含まれる顔を検出する。顔領域検出部21は、複数のテンプレート(顔テンプレート14b)を利用したいわゆるパターンマッチングによって画像データ14aから顔領域を検出する。顔テンプレート14bとのパターンマッチングを行うにあたっては、画像データ14aにおいて矩形状の比較領域CAを設定し、比較領域CAの位置と大きさと回転角度を変えながら、比較領域CA内の画像と各顔テンプレート14bの画像との類似性を評価する。そして、類似性が一定の基準を満足する比較領域CAを顔領域と判定し、その比較領域CAの位置と大きさと回転角度を取得する。本実施形態において、比較領域CAは30度ずつ回転されるものとする。画像データ14aの全体に比較領域CAを移動させることにより、画像データ14a内に存在する単数または複数の顔についての領域の位置と大きさと回転角度を取得することができる。本実施形態では、単一の顔が検出されたものとして説明を続ける。
【0022】
図4は、上記S110において顔領域と判定された比較領域CAの矩形を示している。
S115では、顔領域検出部21は、顔領域と判定された比較領域CAの位置と大きさと回転角度に基づいて、当該比較領域CAに含まれる画像を画像データ14aから顔画像データFDとして抽出する。このとき、顔画像データFDの大きさが一定の大きさとなるように解像度変換を行なう。例えば、100×100画素の大きさとなるように、顔画像データFDの画素が内挿または間引きされる。また、画像データ14aにおける顔の回転角に対応して比較領域CAが回転されていた場合には、この回転を解消するように顔画像データFDを回転させる。ただし、比較領域CAの回転角は30度ずつであるため、顔画像データFDにおいて、±15度の範囲で顔の回転角が残存し得ることとなる。
【0023】
S120では、顔器官検出部22が顔器官としての左右の目を検出する。顔器官検出部22は、複数のテンプレート(目テンプレート14c)を利用したパターンマッチングによって顔画像データFDから右目領域および左目領域を検出する。顔器官検出部22も、目テンプレート14cとのパターンマッチングを行うにあたって、顔画像データFDにおいて矩形状の比較領域CAを設定し、比較領域CAの位置と大きさと回転角度を変えながら、比較領域CA内の画像と各目テンプレート14cの画像との類似性を評価する。そして、類似性が一定の基準を満足する2つの比較領域CAを、その位置に応じて右目領域、左目領域と判定する。本実施形態では様々な目が検出できるように、例えば一重まぶたの目や、二重まぶたの目や、半開き状態の目など、種々の目を含む画像が、各種目テンプレート14cとして用意されている。本明細書では、図を正面から見たときに右側に図示されている目が対象画像内の人物の左目であり、図を正面から見たときに左側に図示されている目が当該人物の右目である。なお、左右の目が検出できるように、目テンプレート14cには左目のものと右目のものが多数含まれている。
【0024】
図5は、左右の目がそれぞれ存在する比較領域CAが検出された顔画像データFDの様子を示している。同図において、左目を中央に含む矩形状の比較領域CA1および右目を中央に含む矩形状の比較領域CA2が検出されている。比較領域CA1は左目領域であり、比較領域CA2は右目領域である。比較領域CA1,CA2の大きさは、それぞれが含む目の大きさに応じて確定されている。右目領域および左目領域の検出が完了すると、S125において、両目サイズ検出部221の傾き補正部P2c1が、比較領域CA1,CA2の各重心の座標を算出し、当該重心同士を結んだ直線の水平線に対する傾きGRを算出する。上述したように顔領域検出の段階で30度単位の回転角補正がなされているため、ここでは基本的に±15度以内の角度に対応した傾きGRが算出される。
【0025】
図6は、両目サイズ検出部221を中心とした顔器官検出部22のソフトウェア構成を示している。両目サイズ検出部221は、傾き補正部P2c1とサンプリング部P2c2とスカラー変換部P2c3と変換関数設定部P2c4とパラメータ探索部P2c5と評価値算出部P2c6とから構成されている。
S130においては、傾き補正部P2c1が顔画像データFDから比較領域CA1,CA2に属する画像をそれぞれ左目画像データLEと右目画像データREとして抽出する。このとき、左目画像データLEと右目画像データREに対してS125にて算出した傾きGRに応じた傾き補正を行う。
【0026】
図7は、S130において傾き補正部P2c1が実行する傾き補正の様子を概念的に示している。同図において、矩形状の比較領域CA1の上辺と下辺を傾きGRに応じて傾斜させ、傾斜後の比較領域CA1(破線で図示)に属する画素を抽出する。比較領域CA1の上辺と下辺が傾きGRに応じて傾斜しているため、抽出された各画素列の位置がずれることとなる。そして、抽出した各画素列の上端・下端位置を揃えることにより、矩形状とし、左目画像データLEと右目画像データREを得る。これにより、左目画像データLEと右目画像データREに含まれる目の傾きを解消することができ、左目画像データLEと右目画像データREにおいて目をほぼ水平とすることができる。なお、本来の画像から画素の位置をずらしているため、輪郭の滑らかさが不正確になったり、目の形状がいびつとなることも考えられるが、±15度以内に対応する量の傾きを調整するに過ぎないため、問題とはならない。以上のようにして左目画像データLEと右目画像データREが得られると、左目画像データLEと右目画像データREをスカラー量Zの画像データに変換する処理をS135にて実行する。左目画像データLEと右目画像データREにおける鉛直方向の位置をyと表し、水平方向の位置をxと表すとともに、それぞれ左上隅をx=y=0とする。
【0027】
図8は、S135にて実行するスカラー変換処理の流れを示している。左目画像データLEと右目画像データREは各画素がRGB階調(RGBベクトル)を有する画像データであるが、スカラー変換処理では、左目画像データLEと右目画像データREを各画素がスカラー量Zの情報を有する画像データに変換する処理を実行する。まず、S210において、サンプリング部P2c2が顔画像データFDの一部の画素をサンプリングする。
【0028】
図9は、S210におけるサンプリングの様子を示している。顔画像データFDにおいて左右の目を含む比較領域CA1,CA2の左下隅と右下隅を結ぶ線分L1と、比較領域CA1,CA2の間において線分L1を2等分する鉛直方向の線分L2が示されている。線分L1,L2は所定の長さを有しており、線分L1,L2に対応する位置の画素を本実施形態のサンプリングの対象とする。線分L1,L2は、目の下の略一定の高さの位置と、左右の目の間の位置に対応している。このような位置からサンプリングすることにより、顔の輪郭外や目や眉毛や鼻の穴や口などの色の画素はサンプリングされなくなり、基本的に肌色の画素のみをサンプリングすることができる。また、線分L1,L2の双方からサンプリングを行うようにしているため、仮に線分L1,L2の一部に眼鏡のフレームや前髪などの肌色以外の画素が含まれたとしても、後述する統計指標への影響を抑えることができる。むろん、ある程度、肌色のみに絞り込むことができればよく、例えば頬や額等の他の領域からサンプリングを行うようにしてもよい。
【0029】
サンプリング部P2c2は、サンプリング対象の画素のRGB階調を取得し、RGB階調の平均μ(μR,μG,μB)と分散・共分散行列Sを統計指標として算出する。平均μは、RGB各チャネルごとに階調の相加平均を算出することによって得ることができる。また、分散・共分散行列Sは下記の(1)式によって定義される。
【数1】
前記の(1)式において、SR,SG,SBはRGB各チャネルについての分散を示しており、SRG,SGB,SRBはR−G,G−B,R−B間の共分散を示している。
【0030】
図10は、S210におけるサンプリングによって得られる平均μ(μR,μG,μB)と分散SR,SG,SBをグラフによって示している。本実施形態において、サンプリングされた画素が示す色の3次元のRGB色空間における分布は正規分布N(μ,S)であると仮定しており、RGB階調分布がそれぞれ平均μ(μR,μG,μB)を中心とした正規分布NR(μR,SR),NG(μG,SG),NB(μB,SB)と仮定されている様子が図示されている。平均μ(μR,μG,μB)は、検出された顔において最も標準的な肌色を示し、分散SR,SG,SBは肌色を示す各チャネルの階調のばらつきの程度を示している。通常、分散SR,SG,SBはそれぞれ異なる大きさとなるが、平均μ(μR,μG,μB)に各分散SR,SG,SBの平方根(標準偏差)を加減算した値で囲まれた範囲の確率は68.2%となる。
【0031】
なお、本明細書において“肌色”とは、絶対的な色彩値が特定される特定色を意味するのではなく、平均μ(μR,μG,μB)の付近に分布する色を意味する。従って、処理対象の顔に応じて“肌色”が意味する絶対色が変動することとなる。平均μと分散行列Sが得られると、S220において、スカラー変換部P2c3は、各画素がRGB階調を有する左目画像データLEと右目画像データREを取得する。なお、以降の処理は左目画像データLEと右目画像データREのそれぞれについて行われるが、左目画像データLEに対する処理を例に挙げて説明する。
【0032】
S230において、スカラー変換部P2c3は、左目画像データLEから一つの画素を順次選択し、選択した画素のRGB階調(r,g,b)を下記の(2)式に代入することよってマハラノビス平方距離DM2に変換する。
【数2】
【0033】
前記の(2)式において、Δrは(r−μR)であり、Δgは(g−μG)であり、Δbは(b−μB)である。マハラノビス平方距離DM2は、上述した肌色のサンプリングによって得られた標準的な肌色を示す平均μ(μR,μG,μB)と、選択した画素のRGB階調(r,g,b)とのRGB色空間における平方距離(RGB階調値のずれ量)に対応する指標値であり、その大きさはRGB色空間における色のずれ方向に依存しない。すなわち、マハラノビス平方距離DM2が同じであれば、平均μ(μR,μG,μB)からの色ずれ方向が異なっていても、確率的には同程度の差を有していると考えることができ、以下においてRGB色空間における色ずれ方向を無視した処理を行うことができる。
【0034】
図11は、RGB色空間(RG平面)におけるマハラノビス平方距離DM2の等値線を示している。同図において、横軸はR階調(r)を示し、縦軸はG階調(g)を示している。等値線は、RGB各チャネルの分散SR,SG,SBの相違に起因して、略楕円状となっている。平均μ(μR,μG)においてマハラノビス平方距離DM2が0となり、RG平面において平均μ(μR,μG)から離れるほどマハラノビス平方距離DM2が大きくなっている。そのため、左目画像データLEに含まれる肌色とは異なる白目や黒目の画素は、肌色の画素よりもマハラノビス平方距離DM2が大きくなる。このように、画素の色を示すベクトルとしてのRGB階調(r,g,b)が、標準的な肌色とのRGB階調値のずれ量を示すスカラーとしてのマハラノビス平方距離DM2に変換することができる。左目画像データLEのすべての画素についてマハラノビス平方距離DM2への変換が完了すると、左目画像データLEはマハラノビス平方距離DM2の画像データDM2(x,y)に変換されたこととなる。
【0035】
S240において、スカラー変換部P2c3は、左目画像データLEの画素を順次選択し、選択した画素のマハラノビス平方距離DM2を下記の(3)式で示す変換関数に代入することによりスカラー量Zに変換していく。
【数3】
前記の(3)式においてα、uは前記変換関数の変換特性を決定付けるパラメータである。本実施形態では、α=1に固定し、uの初期値を3とする。
【0036】
図12は、前記変換関数の変換特性を示している。同図において、横軸は変換前のマハラノビス平方距離DM2を示し、縦軸は変換後のスカラー量Zを示している。また、ある左目画像データLEの変換前のマハラノビス平方距離DM2の分布と、変換後のスカラー量Zの分布も示している。スカラー量Zは、マハラノビス平方距離DM2が0のとき−1となり、マハラノビス平方距離DM2がパラメータuのとき0となる非線形関数によって表される。ここで、横軸のマハラノビス平方距離DM2において、パラメータu=3を中心とした領域を第2領域A2と表し、第2領域A2よりもマハラノビス平方距離DM2の値が大きくなる領域を第1領域A1と表すものとする。この第2領域A2においては、変換関数の傾きが他の領域よりも急となっており、マハラノビス平方距離DM2の単位変動に応じたスカラー量Zの変動量が他の領域よりも大きくなっている。第2領域A2よりもマハラノビス平方距離DM2が大きくなる第1領域A1においては、変換後のスカラー量Zが次第に1に飽和していくような変換特性を有している。第2領域A2は、肌色に対応したマハラノビス平方距離DM2の領域と、非肌色に対応したマハラノビス平方距離DM2の領域との間に設定されるのが望ましい。この第2領域A2の位置は、パラメータuによって設定されるが、初期のパラメータu=3は以下の根拠に基づいて設定されている。
【0037】
図13は、マハラノビス平方距離DM2と確率分布の関係をグラフによって示している。同図において、横軸はマハラノビス平方距離DM2を示している。一方、縦軸は、S210にてサンプリングした肌色の画素のRGB階調の平均μ(μR,μG,μB)と分散・共分散行列Sによって定義される正規分布N(μ,S)における確率分布(下側確率)を示している。同図に示すようにマハラノビス平方距離DM2は、n次元カイ二乗分布に従う。本実施形態では、RGBの階調値で表されるカラー画像を処理の対象としており、3次元カイ二乗分布(実線で図示)によって各マハラノビス平方距離DM2に対応する確率を推定することができる。マハラノビス平方距離DM2=3のとき、下側確率が約60%となっている。すなわち、肌色を示す画素のうち約60%が、マハラノビス平方距離DM2が3以下となるということが分かる。マハラノビス平方距離DM2が3を超えてくると、その画素が肌色を示すことが疑わしくなっていくということが推測できる。すなわち、マハラノビス平方距離DM2が3を超えてくる付近の領域が、肌色に対応したマハラノビス平方距離DM2の領域と、非肌色に対応したマハラノビス平方距離DM2の領域との間の領域であると推定できる。そのため、本実施形態では、パラメータuの初期値を3とし、マハラノビス平方距離DM2が3となる付近の領域を第2領域A2と設定している。なお、モノクロ画像の場合には、マハラノビス平方距離DM2が1次元カイ二乗分布(破線で図示)に従う。
【0038】
図12において示した前記変換関数による変換前のマハラノビス平方距離DM2の分布においては、マハラノビス平方距離DM2=0を中心とした肌色の分布G1と左目画像データLEに含まれる白(白目)の分布G2と黒(黒目、眉等)の分布G3が存在する。これに対して変換後のスカラー量Zの分布においては、肌色の分布G1はスカラー量Z=−1を中心として分布し、左目画像データLEに含まれる白の分布G2と黒の分布G3は分布全体が1にほぼ飽和した値に変換されている。また、平均μ(μR,μG,μB)が示す標準的な肌色と比較して明るめの肌色や暗めの肌色は、パラメータuの初期値である3付近に位置しており、傾きが急な第2領域A2に存在することとなる。
【0039】
以上説明した変換関数によって、左目画像データLEのすべての画素のマハラノビス平方距離DM2をスカラー量Zに変換することにより、左目画像データLEをスカラー量Zの画像データZ(x,y)に変換することができる。以下、スカラー量Zの画像データZ(x,y)に変換された左目画像データLE,右目画像データREをZマップとも表記するものとする。なお、Zマップはスカラー量マップに相当する。なお、マハラノビス平方距離DM2も肌色らしさを示す指標として使用することが可能であるが、上述した変換関数による変換したスカラー量Zによれば、肌色らしいか否かをより明瞭に判別することができる。
【0040】
S250において、変換関数設定部P2c4は、スカラー量Zが所定の閾値Th1を超える画素を計数し、当該閾値Th1を超える画素の個数比率(面積比率)が所定の閾値Th2を超えているか否かを判定する。本実施形態では、閾値Th1=0.6とし、閾値Th2=33%とする。図12において、閾値Th1=0.6を破線で示しており、閾値Th1=0.6を超える画素は、飽和しているとみなし、肌色らしくない色であると判断する。また、白の分布G2と黒の分布G3も、閾値Th1=0.6を超える画素に該当することとなる。すなわち、閾値Th1による閾値判定によって左目画像データLEの各画素が肌色らしいか肌色らしくないかを判定することができる。閾値Th1を超える画素の比率が大きいほど、肌色らしくない画素の左目画像データLEにおける面積比率が大きくなるということが言える。
【0041】
本実施形態では、左目画像データLEにおいて肌色らしくない画素が占める面積比率が閾値Th2=33%を超えることが妥当であると仮定し、肌色らしくない画素が占める面積比率が閾値Th2=33%以下である場合には、変換関数設定部P2c4がS260において上述した変換関数のパラメータuを変更する。パラメータuは、正規分布N(μ,S)を仮定した場合の推測値であるため、本実施形態のように実際の面積比率に基づく妥当性によって調整するのが望ましい。なお、本実施形態における閾値Th1,閾値Th2は一例であり、異なる値を採用してもよい。また、面積比率の妥当な範囲を閾値Th2だけでなく、上限値と下限値によって規定するようにしてもよい。
【0042】
S260においては、パラメータuをもとの値の4倍に変更し、S240に戻る。そして、S250において、変更したパラメータuを前記の(3)式に適用し、再度、左目画像データLEのマハラノビス平方距離DM2をスカラー量Zに変換して、再度、Zマップを得る。S250においては、同様にZマップにおいて肌色らしくない画素の面積比率の妥当性を判定し、妥当でなければ再度パラメータuを4倍する。以上の処理を繰り返して実行することにより、肌色らしくない画素の面積比率の妥当となるまで、変換関数を最適化してくことができる。
【0043】
本実施形態では、パラメータuを順次大きくしていくため、変換関数による変換特性が図12において破線で示すように推移していく。すなわち、傾きが急となる第2領域A2をマハラノビス平方距離DM2が大きくなる方向にシフトさせていくことができる。これにともなって、第1領域A1の幅が狭められることとなる。このようにすることにより、肌色のばらつきが異なる様々な顔についても、適切な変換関数を設定することができる。S250において、スカラー量Zが閾値Th1を超える画素の比率が所定の閾値Th2を超えていると判定した場合には、パラメータuの変更を行うことなくスカラー変換処理を終了させ、各画素のRGB階調がスカラー量Zの階調値に変換された左目画像データLE(Zマップ)をパラメータ探索部P2c5に出力する。なお、本実施形態では、パラメータuを変更するようにしたが、第1領域A1と第2領域A2の範囲を調整するためにパラメータαも変更してもよい。第1領域A1を広くするためにはパラメータαを大きくし、第2領域A2を広くするためにはパラメータαを小さくすればよい。むろん、パラメータuを大きめに設定し、徐々に小さく変更していってもよい。
【0044】
図14は、各画素がスカラー量Z(x,y)で表されるZマップの一例を示している。同図において、左目画像データLEの鉛直断面と水平断面におけるスカラー量Z(x,y)を示している。鉛直断面において、黒目に対応する部分はスカラー量Z(x,y)が1に近い値となっており、それ以外の肌色に対応する部分は−1〜0付近の間の値となっている。目の輪郭を構成する黒目と肌色との境界においては、鉛直方向の勾配が大きい値となっている。一方、水平断面において、黒目と白目に対応する部分はともにスカラー量Zが1に近い値となっており、それ以外の肌色に対応する部分は−1に近い値となっている。目の輪郭を構成する白目と肌色との境界における水平方向の勾配が大きい値となっているが、黒目と白目の境界においては勾配が極めて小さくなっている。以上においては、左目画像データLEをZマップに変換する処理を例に挙げて説明したが、同様の処理を右目画像データREについても実行し、右目画像データREもZマップに変換されている。
【0045】
S140において、パラメータ探索部P2c5は、左目画像データLEを変換したZマップを取得する。S145において、パラメータ探索部P2c5は、Zマップにおいて目の輪郭パラメータL,R,T,Bを初期設定する。
図15は、左目のZマップにおける輪郭パラメータL,R,T,Bを示している。輪郭パラメータL,R,T,Bは、左目の輪郭における目尻と目頭と上頂点と下頂点に対応しており、それぞれ水平方向と鉛直方向の座標によってL(xL,yL),R(xR,yR),T(xT,yT),B(xB,yB)と表される。輪郭パラメータL,R,T,Bの初期値が設定できると、左目を近似するための輪郭線O(第1近似曲線)を生成することができる(第1近似手段)。本実施形態において、輪郭線Oは、左上部分の曲線O1と、右上部分の曲線O2と、左下部分の曲線O3と、左下部分の曲線O4によって近似される。各曲線O1〜O4は下記の(4)式で表される。
【数4】
【0046】
前記の(4)式において、曲線O1は輪郭パラメータTの座標を頂点とし、輪郭パラメータLの座標を通過する上に凸の2次曲線で表される。a1,a2は正であり、a3,a4は負とする。曲線O2は輪郭パラメータTの座標を頂点とし、輪郭パラメータRの座標を通過する上に凸の2次曲線で表される。一方、曲線O3は輪郭パラメータBの座標を頂点とし、輪郭パラメータLの座標を通過する下に凸の2次曲線で表される。曲線O4は輪郭パラメータBの座標を頂点とし、輪郭パラメータRの座標を通過する下に凸の2次曲線で表される。輪郭パラメータL,R,T,Bの座標を定めると、曲線O1〜O4が一意に定まるため、輪郭パラメータL,R,T,Bの座標を初期設定することにより、輪郭線Oの位置および形状が初期設定されることとなる。なお、輪郭パラメータL,R,Tおよび輪郭パラメータL,R,Bのそれぞれ3点の組み合わせの位置関係に注目すると、輪郭パラメータL,Rの座標が水平方向の両外側に位置する終端点に相当し、輪郭パラメータT,Bの座標が共通の頂点に相当する。以上のような輪郭線Oを配置するために、輪郭パラメータL,R,T,Bの初期値は、少なくともxL<xT<xR,xL<xB<xR,yT<yL<yB,yT<yR<yBが満足されていればよい。本実施形態では、図15に図示するように左目画像データLEの中央鉛直線に対して左右対称、かつ、中央よりやや下の水平線に対して上下対称に設定する。また、目テンプレート14cにて規格化されている目の輪郭(破線で図示)よりもやや外側に輪郭パラメータL,R,T,Bの座標の初期値を設定する。
【0047】
以上のようにZマップにて輪郭パラメータL,R,T,Bの座標の初期値が設定されると、S150においてパラメータ探索部P2c5と評価値算出部P2c6が最適な輪郭パラメータL,R,T,Bの探索処理を行う。パラメータ探索部P2c5が輪郭パラメータL,R,T,Bを更新し、当該更新した輪郭パラメータL,R,T,Bを評価値算出部P2c6に出力すると、評価値算出部P2c6は下記の評価値Vを算出し、当該評価値Vをパラメータ探索部P2c5に返す。そして、パラメータ探索部P2c5は評価値Vを最大とする輪郭パラメータL,R,T,Bの座標を探索する。
【0048】
図16は、評価値Vの概念を模式的に説明している。図16において、輪郭線O上において長さdlを有する微小線要素と、当該微小線要素の法線単位ベクトルpが示されている。曲線O1〜O4が前記の(4)式によって特定できるため、任意の微小線要素についての法線単位ベクトルpを求めることができる。なお、法線単位ベクトルpは内側方向が正となるようにする。すなわち、曲線O1,O2上の微小線要素の法線単位ベクトルpのy成分は下方向を正とし、反対に曲線O3,O4上の微小線要素の法線単位ベクトルpのy成分は上方向を正とする。また、曲線O1,O3上の微小線要素の法線単位ベクトルpのx成分は右方向を正とし、反対に曲線O2,O4上の微小線要素の法線単位ベクトルpのx成分は左方向を正とする。勾配ベクトルgは下記の(5)式で表される。
【数5】
【0049】
前記の(5)式において、勾配ベクトルgは、水平方向の勾配と鉛直方向の勾配によって与えられ、肌色らしさを示すスカラー量Z(x,y)の変動が激しい領域ほど大きくなる。評価値算出部P2c6は、以上説明した法線単位ベクトルpと勾配ベクトルgを使用し、下記の(6)式によって輪郭線Oの輪郭への近似性を評価する評価値Vを算出する。
【数6】
【0050】
前記の(6)式において、評価値Vは微小線要素に関する法線単位ベクトルpと勾配ベクトルgの内積(微少評価値)を輪郭線Oに沿って線積分(合計)することにより求められる。ただし、輪郭線Oの下側部分の曲線O3,O4に関する積分値に対して、輪郭線Oの上側部分の曲線O1,O2に関する積分値を2倍に重み付けしている。法線単位ベクトルpと勾配ベクトルgの内積は、法線単位ベクトルpと勾配ベクトルgが同じ方向であり、かつ、勾配ベクトルgが大きいほど大きい値となる。従って、輪郭線Oを構成する各微小線要素がスカラー量Z(x,y)の勾配方向に直交し、かつ、勾配が大きいほど評価値Vが大きい値となる。
【0051】
スカラー量Z(x,y)の勾配は、肌色らしさが変動する程度であると考えることができるため、評価値Vが大きいと、輪郭線Oが肌色らしさの変動が大きい領域を通過していると評価することができる。すなわち、評価値Vが大きいと、輪郭線Oが肌色らしさの変動が大きくなる目の輪郭を通過していると考えることができる。特に、スカラー量Z(x,y)は、肌色であることが疑わしい第2領域A2において変動が激しくなるように変換されているため、肌色でない目の輪郭付近では、勾配が極端に大きくなる。一方、図12で示したように白の分布G2と黒の分布G3は、双方とも1に近い値に飽和しており、白目と黒目の境界であってもスカラー量Z(x,y)の勾配は小さいものとなる。すなわち、マハラノビス平方距離DM2において白の分布G2と黒の分布G3が異なる値を示していても、変換関数によってスカラー量Zに変換することにより、白の分布G2と黒の分布G3のマハラノビス平方距離DM2の差を微少なものに変換することができ、これらの間でスカラー量Zの勾配を生じなくさせることができる。従って、白目と黒目の境界について評価値Vが大きくなることが防止でき、白目と黒目の境界と目の輪郭を明確に区別することができる。なお、概念的な理解を容易とするために、連続的な画像平面上において評価値Vや勾配ベクトルgや法線ベクトルnが算出されるように説明したが、現実には離散的な画像平面において等価な演算が行われることとなる。以下に説明する探索処理(探索手段、輪郭検出手段)においては、評価値Vを大きくさせる輪郭パラメータL,R,T,Bの座標を探索していく。
【0052】
図17は、探索処理における探索の手順を模式的に説明している。同図において、輪郭パラメータL,R,T,Bの移動パターンが示されており、当該移動パターンが第1〜4フェーズから構成されている。第1フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から対角4方向に2画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第2フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から鉛直水平方向に2画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第3フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から対角4方向に1画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第4フェーズにおいては、現在の輪郭パラメータL,R,T,Bの座標(a)から鉛直水平方向に1画素分ずれた4座標(b,c,d,e)に輪郭パラメータL,R,T,Bを移動させる。第4フェーズが完了した時点で探索処理を終了する。
【0053】
図18は、各フェーズにおける詳細な探索手順を示している。まず直前のフェーズ(第1フェーズにおいては初期値)によって決定された現在の輪郭パラメータL,R,T,Bの座標(a)を中心として、図17に示す移動パターンにしたがって輪郭パラメータL,R,T,Bを移動させる。輪郭パラメータL,R,T,Bを同時に移動させるのではなく、L→R→T→Bの順で移動させる。まず現在の輪郭パラメータL,R,T,Bを評価値算出部P2c6に出力し、評価値Vaを算出する。次に輪郭パラメータR,T,Bを固定し、輪郭パラメータLを現在の座標(a)のまわりの4座標(b,c,d,e)に順次移動させる。このとき輪郭パラメータLが移動するごとに、輪郭パラメータL,R,T,Bを評価値算出部P2c6に出力し、評価値Va,Vb,Vc,Vd,Veを算出する。なお、4座標(b,c,d,e)への移動順序はどのようなものであってもよい。以上のようにして4座標(a,b,c,d,e)の輪郭パラメータLについての評価値Va,Vb,Vc,Vd,Veが得られると、評価値Va,Vb,Vc,Vd,Veに基づいて評価値Vを極大化させる輪郭パラメータLの座標(h)を予測する。
【0054】
まず、現在の輪郭パラメータLの座標(a)を通過する線分b−a−cに関する評価値Va,Vb,Vcを通る2次曲線を算出し、当該2次曲線を極大化させる座標を算出する。なお、当該2次曲線が上に凸であり、かつ、頂点が線分b−a−cの間にある場合のみ、前記2次曲線を極大化させる座標が算出できる。前記2次曲線を極大化させる座標(f)が算出できない場合には、端の評価値Vb,Vcのうち大きい方の座標(b)または座標(c)を座標(f)とする。そして、線分d−a−eに平行かつ座標(f)を通過する直線l1を生成する。次に、現在の輪郭パラメータLの座標(a)を通過し、線分b−a−cに直交する線分d−a−eに関する評価値Va,Vd,Veを通る2次曲線を算出し、当該2次曲線を極大化させる座標(g)を同様の手順で算出する。そして、線分b−a−cに平行かつ座標(g)を通過する直線l2を生成する。
【0055】
以上のようにして直線l1,l2が生成できると、これらの交点の座標を輪郭パラメータLの座標(h)として算出する。この座標(h)が算出できると、輪郭パラメータLを座標(h)に移動させ、そのときの評価値Vhを算出する。以上のようにして、6個の評価値Va,Vb,Vc,Vd,Ve,Vhが算出できると、これらのうち最も大きいものに対応する座標を当該フェーズにおける最適な輪郭パラメータLの座標として決定する。輪郭パラメータLについて最適な座標が決定すると、次に輪郭パラメータRについて同様の処理を行って最適な座標を決定する。さらに、輪郭パラメータT,Bについて順に同様の処理を行って最適な座標を決定し、当該フェーズを終了させ、次のフェーズに移行する。第4フェーズが完了した段階で、最終的に輪郭パラメータL,R,T,Bを確定させる。
【0056】
以上説明したように、探索の初期の第1,2フェーズにおいては広範囲に輪郭パラメータL,R,T,Bを移動させるため、輪郭パラメータL,R,T,Bの座標をおおまかに目尻、目頭、上頂点、下頂点に近づけさせることができる。さらに、探索の後期の第3,4フェーズにおいては狭い範囲で局所的に輪郭パラメータL,R,T,Bを移動させるため、より目尻、目頭、上頂点、下頂点に収束するように輪郭パラメータL,R,T,Bの座標を微調整することできる。なお、一定の評価値Vに到達した時点で探索を終了させ、そのときの輪郭パラメータL,R,T,Bを出力してもよい。
【0057】
このように最終的に探索された左目についての輪郭パラメータL,R,T,Bを、内部メモリ12の所定領域に記憶し、引き続き右目の輪郭検出を実行する。
S155〜S165では、パラメータ探索部P2c5および評価値算出部P2c6が、右目画像データREを変換したZマップに基づいて、上記S140〜S150で説明した処理と同様に、右目の輪郭パラメータL,R,T,Bの探索を行い、最終的に探索された右目の輪郭パラメータL,R,T,Bを内部メモリ12の所定領域に記憶する。
【0058】
S170では、両目サイズ検出部221は、内部メモリ12に記憶した左目の輪郭パラメータL,R,T,Bを用いて左目のサイズを検出するとともに、内部メモリ12に記憶した右目の輪郭パラメータL,R,T,Bを用いて右目のサイズを検出する。目のサイズといった場合、目の高さ(顔の高さ方向における目の長さ)や目の幅(顔の横方向における目の長さ)や目の面積等、種々の情報が考えられる。本実施形態では、目の高さを目のサイズとして検出する。これは、人顔における左右の目は、その幅は基本的に大きな差はないが、その高さは左右で違いが生じやすいからである。両目サイズ検出部221は、内部メモリ12に記憶した左目の輪郭パラメータL,R,T,BのZマップにおける各y座標値yL,yR,yT,yBのうちの最大値と最小値との差分(多くの場合、yTとyBとの差分)を算出し、当該算出した差分を左目のサイズLSとして取得する。同様に、両目サイズ検出部221は、内部メモリ12に記憶した右目の輪郭パラメータL,R,T,Bの各y座標値のうちの最大値と最小値との差分を算出し、当該算出した差分を右目のサイズRSとして取得する。
【0059】
ただし、両目サイズ検出部221は、上記輪郭パラメータを用いることなく、より簡易に左右の目の大きさを表す情報を取得するとしてもよい。上記S120において顔器官検出部22が検出した左目領域(比較領域CA1)および右目領域(比較領域CA2)は、上述したように、それぞれが内包する目の大きさに応じて領域の大きさが決定されている。そこで両目サイズ検出部221は、例えば、顔画像データFDにおける比較領域CA1の鉛直方向の長さ(画素数)を左目のサイズLSとして取得し、顔画像データFDにおける比較領域CA2の鉛直方向の長さ(画素数)を右目のサイズRSとして取得してもよい。比較領域CA1,CA2の辺の長さを目のサイズとして検出する場合には、上記S125〜S165(図3)の処理は不要である。このように本実施形態では、両目サイズ検出部221は、左右それぞれの目の大きさを直接的または間接的に表す情報を、左目のサイズLS、右目のサイズRSとして検出する。以下では、左目のサイズLS、右目のサイズRSを単にLS,RSと表記する。
【0060】
3.補正量の決定処理:
LS,RSが検出されたら、次に、補正量決定部23がLS,RSに基づいて補正量を決定する。
図19は、補正量決定部23が実行するS300(図2)の詳細を、フローチャートにより示している。S305では、補正量決定部23は、LSとRSとの大小判定を行なうことにより、補正量を決定する対象の目を決定する。本実施形態では、左右の目のうちどちらのサイズが小さいか判定し、小さい方の目に対する補正量β(拡大率)を決定する。そして、後述するように、補正量βに基づいて小さい方の目の大きさを拡大するような画像変形(S500)を行なう。
【0061】
なお、大小判定においてRS=LSと判定された場合は、左右の目の大きさのバランスが取れている状況である。そのため、後述する補正量βの決定およびS500の処理を行なうことなく、プリンタ10は、対象画像を表す画像データ14aに基づいてS700の処理を行なう。以下では、RS<LSと判定された場合、すなわち右目のほうが左目よりも小さいと判定された場合を想定して説明を行なう。
S310では、補正量決定部23は、上記大小判定において補正量の決定対象とされた目(右目)に対する補正量を決定するための関数を生成する。まず、補正量決定部23は、補正量βの最小値と最大値を定める。ここでは、補正量βの最小値を1とし、補正量βの最大値をLS/RSとする。次に、補正量決定部23は、最小値=1、最大値=LS/RSを出力する関数を生成する。
【0062】
図20は、補正量決定部23が生成する関数F1の一例を示している。同図では、入力値(横軸)=RS/LS、出力値(縦軸)=補正量βとした、上に凸の2次曲線を示している。補正量決定部23は、かかる2次曲線を関数F1として生成する。関数F1は、入力値=0のとき最小値=1を出力し、入力値=1のとき最大値=LS/RSを出力する関数である。なお、関数F1の曲線形状自体は予め定められているものとし、関数F1の縦軸の目盛間隔が、補正量βの最大値に応じて変更される。
S315では、補正量決定部23は、上記生成した関数F1に対してRS/LSを入力することにより補正量βを決定する。このように決定した補正量βが、本実施形態において右目の大きさを拡大するための補正量となる。
【0063】
上記関数F1を用いることで、左右の目のうち大きい方の目の大きさに対する小さい方の目の大きさの比率が高いほど小さい方の目の大きさを大きい方の目の大きさに近づかせる補正量βを決定することができる。つまり、上記比率がある程度低い場合には、決定される補正量βも最大値(大きい方の目のサイズ/小さい方の目のサイズ)からある程度離れた値となるため、小さい目に対する過剰な変形(拡大)によって却って画像を破綻させてしまうことが防がれる。一方、上記比率がある程度高い場合には、決定される補正量βも最大値に近い値となり、変形後は両方の目の大きさが略同じとなる。元々両目の大きさの差が少ない場合には、小さい方の目を大きい方の目と同等な大きさまで拡大しても、画像の自然さは損なわれない。
【0064】
ただし、小さい方の目の大きさを拡大するための補正量βの決定方法は、上述した手法に限られない。例えば、補正量決定部23は、LS,RSの平均値Ave=(LS+RS)/2に基づいて、補正量βを決定してもよい。具体的には、後述する画像変形によって小さい方の目(右目)の大きさが平均値Aveにまで略拡大されるように、補正量決定部23は、補正量β=Ave/RSとする。補正量β=Ave/RSと決定すれば、変形後においても左右の目の大きさに差は残るものの、小さい方の目に対する過剰な変形(拡大)が防止され、観察者が違和感を生じない程度に両目の大きさのバランスを調整することができる。あるいは、より単純に、補正量決定部23は、後述する画像変形によって小さい方の目(右目)の大きさが大きい方の目(左目)の大きさまで略拡大されるように、補正量β=LS/RSとしてもよい。
なお、LS<RSであれば、上述した補正量βの決定の際におけるRSとLSとの関係が逆になることは言うまでもない。
【0065】
4.変形処理および印刷処理:
補正量βが決定されたら、次に、変形領域設定部24、変形領域分割部25および変形処理実行部26が、補正量βに基づく画像の変形処理を行なう。変形領域設定部24、変形領域分割部25および変形処理実行部26をまとめて変形部と呼ぶこともできる。
図21は、変形部が実行するS500(図2)の詳細を、フローチャートにより示している。S505では、変形領域設定部24が変形領域TAを設定する。変形領域TAは、画像データ14a上の少なくとも顔の一部を含む領域であって画像変形の対象となり得る領域である。変形領域TAの設定は、例えば、S110(図3)で顔領域として検出された比較領域C(図4に示した比較領域CA)を基準にして行なうことができる。以下では、S110で顔領域として検出された比較領域Cを顔領域FAと呼ぶ。
【0066】
図22は、顔領域FAおよび顔領域FAを基準に設定された変形領域TAの一例を示している。同図には、顔領域FAの基準線SLを示している。基準線SLは、顔領域FAの重心を通過する線であって、顔領域FAの顔の高さ方向を向く線である。なお、図22に示した顔領域FAは、図4に示した顔領域(比較領域C)と比較して、画像データ14a上における位置および角度が若干異なっている。これは、変形領域TAの設定前に、変形領域設定部24が、上記S110で検出された顔領域の矩形を、その上辺および下辺が顔の幅方向(例えば、両目の中心を結んだ線が向く方向)と略平行となるように回転させたり、顔内の主要器官が確実に矩形内に入るように基準線SLに沿って移動させたことによる。このような顔領域の角度や位置の調整は、行なってもよいし行なわなくてもよい。
【0067】
図22に示すように、変形領域TAは、顔領域FAを基準線SLと平行な方向および基準線SLに直行する方向に伸張(または短縮)した領域として設定される。具体的には、顔領域FAの高さ方向の大きさをHf、幅方向の大きさをWfiとすると、顔領域FAを、上方向にk1・Hf、下方向にk2・Hfだけ伸ばすと共に、左右にそれぞれk3・Wfiだけ伸ばした領域が、変形領域TAとして設定される。k1,k2,k3は、所定の係数である。図22に示すように、変形領域TAは、顔の高さ方向に関しては、概ね顎から額までの画像を含み、顔の幅方向に関しては、左右の頬の画像を含むような領域として設定される。本実施形態では、変形領域TAが概ね上述したような範囲の画像を含む領域となるように、顔領域FAの大きさとの関係に基づき、上述の係数k1,k2,k3が予め設定されている。
S510では、変形領域分割部25が、変形領域TAを複数の小領域に分割する。
【0068】
図23は、変形領域TAの小領域への分割方法の一例を示す説明図である。変形領域分割部25は、変形領域TAに複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TAを複数の小領域に分割する。分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル41(図1)により定義されている。変形領域分割部25は、分割点配置パターンテーブル41を参照して分割点Dを配置する。図23に示すように、一例として、分割点Dは水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに配置される。水平分割線Lhおよび垂直分割線Lvは、変形領域TA内に分割点Dを配置するための基準となる線である。図23に示した分割点Dの配置では、基準線SLと直行する2本の水平分割線Lhと、基準線SLに平行な4本の垂直分割線Lvとが設定される。2本の水平分割線Lhを、変形領域TAの下方から順に、Lh1,Lh2と呼ぶ。4本の垂直分割線Lvを、変形領域TAの左から順に、Lv1,Lv2,Lv3,Lv4と呼ぶ。
【0069】
水平分割線Lh1は、変形領域TAにおいて、目の画像のすぐ下付に配置され、水平分割線Lh2は、目の画像のすぐ上付近に配置される。垂直分割線Lv1およびLv4は、左右の目尻の画像の外側に配置され、垂直分割線Lv2およびLv3は、左右の目頭の画像の内側に配置される。なお、水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TAの大きさとの対応関係に従い実行される。
【0070】
上述した水平分割線Lhと垂直分割線Lvとの配置に従い、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに、分割点Dが配置される。図23に示すように、水平分割線Lhi(i=1または2)上に位置する分割点Dを、左から順に、D0i,D1i,D2i,D3i,D4i,D5iと呼ぶ。例えば、水平分割線Lh1上に位置する分割点Dは、D01,D11,D21,D31,D41,D51と呼ばれる。同様に、垂直分割線Lvj(j=1,2,3,4のいずれか)上に位置する分割点Dを、下から順に、Dj0,Dj1,Dj2,Dj3と呼ぶ。例えば、垂直分割線Lv1上に位置する分割点Dは、D10,D11,D12,D13と呼ばれる。なお、図23に示すように、分割点Dの配置は、基準線SLに対して対称の配置となっている。
【0071】
変形領域分割部25は、配置された分割点Dを結ぶ直線(すなわち水平分割線Lhおよび垂直分割線Lv)により、変形領域TAを複数の小領域に分割する。分割点Dの配置は、水平分割線Lhおよび垂直分割線Lvの本数および位置により定まるため、分割点配置パターンテーブル41は水平分割線Lhおよび垂直分割線Lvの本数および位置を定義していると言い換えることも可能である。
S515では、変形処理実行部26が、変形領域TAを対象とした画像の変形処理を行う。変形処理実行部26による変形処理は、S510で変形領域TA内に配置された分割点Dの位置を移動して、小領域を変形することにより行われる。
【0072】
図24は、分割点Dの位置移動の一例を示す説明図である。変形処理実行部26は、補正量決定部23によって補正量βが決定された目(本実施形態においては右目)を囲む分割点Dを、上記決定された補正量βに基づいてV方向(基準線SLと平行な方向)に移動させる。なお図24の説明において用いる“V”は、画像データ14aにおける変形領域TAの方向を意味しており、上記評価値Vとは別の意味である。右目を囲む分割点Dは、D11,D12,D22,D21である。この分割点D11,D12,D22,D21を頂点とする小領域(ハッチングを付して示す小領域)は、特許請求の範囲に言う右目を含む領域の一例に該当する。なお、分割点D31,D32,D42,D41を頂点とする小領域は、特許請求の範囲に言う左目を含む領域の一例に該当する。
【0073】
変形処理実行部26は、分割点D11,D12,D22,D21を頂点とする小領域のV方向の距離(画素数)が例えばV1であるとすると、この小領域のV方向の距離がβ・V1に拡大されるように、分割点D11,D12,D22,D21の全てあるいは一部を移動させる。分割点D11,D12,D22,D21の全てを移動させる場合には、目よりも下側に位置する水平分割線Lh1上の分割点D11,D21をV方向のマイナス側(顔の下側)に移動させ、目よりも上側に位置する水平分割線Lh2上の分割点D12,D22をV方向のプラス側(顔の上側)に移動させる。ただし本実施形態では、変形処理実行部26は、図24に例示したように、水平分割線Lh1上に位置する分割点D11,D21は移動させず、水平分割線Lh2上に位置する分割点D12,D22をV方向のプラス側に移動させる。本実施形態では、H方向(基準線SLに直交する方向)への分割点Dの移動は行わない。
【0074】
変形処理実行部26は、変形領域TAの内外の画像間の境界が不自然とならないように、変形領域TAの外枠上に位置する分割点Dの位置は移動しない。図24では、移動前の分割点Dは白抜きの丸で、移動後の分割点Dや位置の移動の無い分割点Dは黒丸で示されている。移動後の各分割点Dについては、「’」を付して表現している。
変形処理実行部26は、変形領域TAを構成する小領域について、分割点Dの位置移動前の状態における小領域の画像が、分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。具体的には、分割点D11,D12,D22,D21を頂点とする小領域の画像は、分割点D11,D’12,D’22,D21を頂点とする小領域の画像に変形(拡大)される。またこれに付随して、分割点D01,D02,D12,D11を頂点とする小領域の画像は、分割点D01,D02,D’12,D11を頂点とする小領域の画像に変形(拡大)され、分割点D21,D22,D32,D31を頂点とする小領域の画像は、分割点D21,D’22,D32,D31を頂点とする小領域の画像に変形(拡大)される。
【0075】
図25は、変形処理実行部26による画像の変形処理方法の概念を示す説明図である。図25では、分割点Dを黒丸で示している。図25では、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図25の例では、中央の分割点Daが分割点Da’の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da’,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
【0076】
本実施形態では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図25の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG’を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da’,Ddおよび重心CG’を頂点とする三角形領域の画像に変形される。
【0077】
図26は、三角形領域における画像の変形処理方法の概念を示す説明図である。図26の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s’,t’,u’を頂点とする三角形領域s’t’u’の画像に変形される。なお、図26の説明において用いる“s”や“u”は、本明細書において既出の同一の符号とは別の意味で用いている。画像の変形は、変形後の三角形領域s’t’u’の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。例えば、図26において、変形後の三角形領域s’t’u’の画像中の注目画素p’の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p’の位置を、下記の式(7)のようにベクトルs’t’とベクトルs’u’との和で表現するための係数m1およびm2を算出する。
【0078】
【数7】
【0079】
次に、算出された係数m1およびm2を用いて、下記の式(8)により、変形前の三角形領域stuにおけるベクトルstとベクトルsuとの和を算出することにより、位置pが求まる。
【数8】
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【0080】
変形後の三角形領域s’t’u’の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s’t’u’の画像への画像変形処理を行うことができる。変形処理実行部26は、図24に示した変形領域TAを構成する小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域TAにおける画像変形処理を行う。
【0081】
上述したように本実施形態では、変形処理実行部26は、水平分割線Lh1上に位置する分割点D11,D21は移動させず、水平分割線Lh2上に位置する分割点D12,D22を補正量βに応じてV方向のプラス側に移動させる。従って、水平分割線Lh1と水平分割線Lh2と垂直分割線Lv3に囲まれた画像、特に、水平分割線Lh1と水平分割線Lh2と垂直分割線Lv1と垂直分割線Lv2に囲まれた画像が、V方向に関して顔の上側に拡大される。この結果、左右の目のうち小さい方の目(右目)を含む領域が拡大され、当該拡大後においては左右の目の大きさの違いが少なくなる(あるいは、左右の目の大きさの違いが無くなる)。
【0082】
ただし、変形処理実行部26が変形の対象とする領域は、必ずしも変形領域TA中に設定された分割点Dによって囲まれた領域である必要はない。例えば、変形処理実行部26は、S120(図3)で顔器官検出部22が検出した左目領域(比較領域CA1)と右目領域(比較領域CA2)とのうち、補正量決定部23によって補正量βが決定された目に対応する側の領域を変形対象としてもよい。この場合、変形処理実行部26は、変形対象とした領域(例えば、右目領域)の矩形内の画像を、補正量βに基づいて目の高さ方向に拡大させる(β倍する)変形を実行すればよい。
【0083】
S700(図2)では、印刷処理部32が、プリンタエンジン16を制御して、対象画像の印刷を行う。すなわち印刷処理部32は、変形処理後の画像データ14a(変形処理が実行されていない場合には、S105(図3)で取得された画像データ14a)に、解像度変換処理や色変換処理やハーフトーン処理など必要な各処理を施して印刷データを生成する。生成された印刷データは、印刷処理部32からプリンタエンジン16に供給され、プリンタエンジン16は印刷データに基づいた印刷を実行する。これにより、変形処理後の対象画像の印刷が完了する。
【0084】
このように本実施形態によれば、画像変形部20は、対象画像に含まれている顔の左右の目のサイズLS,RSを検出し、検出したLS,RSに基づいて、左右の目のうち小さい方の目を拡大するための補正量βを決定する。そして、決定した補正量βに基づき、対象画像における上記小さい方の目を含む領域を対象として、上記V方向すなわち顔の略高さ方向に沿って拡大させる変形処理を行なう。その結果、対象画像における顔の左右の目の大きさに違いがある場合であっても、かかる左右の目の大きさの違いが自動的に補正された、観察者に良好な印象を与える画像を得ることができる。
【0085】
人間の左右の目は、その幅は(顔の横方向における目の長さ)は基本的に大きな差は少ない一方、その高さ(顔の高さ方向における目の長さ)は、左右のまぶたの形状の違いや目をつむる動きの影響等で違いが生じやすい。そのため本実施形態では、上述したように、上記小さい方の目を含む領域を顔の略高さ方向(目の略高さ方向)に沿って拡大させることで、現実的に対象画像において生じる左右の目の大きさの違いを的確に補正する。さらに、左右の目の大きさの違いというものを詳細に検討すると、その違いの多くは、左右の目の上端(まぶたの下端)の位置の違いに起因し、一方、左右の目の下端の位置に大きな違いは無いと言える。そこで本実施形態では、上述したように、目の下側に位置する水平分割線Lh1上の分割点D11,D21は移動させず、目の上側に位置する水平分割線Lh2上の分割点D12,D22をV方向のプラス側に移動させることにより、結果的に、水平分割線Lh1よりも顔の上側に位置する各画素を顔の上側に向かって移動させている。従って、対象画像において他方の目と比べて小さく表されていた目が大きく見開かれたように補正され、かつ左右の目の下端位置は略維持されるため、違和感の無い補正後の顔画像が得られる。
【0086】
なお上記では、左右の目のうち小さい方の目を拡大するための補正量βに基づいて小さい方の目を拡大する場合について説明した。しかし本発明においては、大きい方の目を縮小するための補正量(縮小率)をLS,RSに基づいて決定し、決定した補正量に基づいて大きい方の目を縮小する変形を行なうことも可能である。あるいは、大きい方の目を縮小するための補正量および小さい方の目を拡大するための補正量をLS,RSに基づいて決定し、大きい方の目を縮小するための補正量に基づいて大きい方の目を縮小し、小さい方の目を拡大するための補正量に基づいて小さい方の目を拡大する変形を行なうことも可能である。
【0087】
5.他の実施例
画像変形部20は、顔向き推定部27(図1)を備えている。顔向き推定部27は、対象画像における顔の向き(正面向き、上向き、下向き、右向き、左向き等)を推定する機能である。対象画像の顔が上向きとは、顔が仰向けの傾向にある状態を意味し、下向きとは顔がうつ伏せの傾向にある状態を意味し、右向きとは対象画像の人物にとっての左の横顔が画像内で主に見えている状態を意味し、左向きとは対象画像の人物にとっての右の横顔が画像内で主に見えている状態を意味する。画像変形部20は、S100,S300(図2)を実行する過程で、顔向き推定部27に対象画像における顔の向きを推定させるとともに、推定された顔の向きの程度(顔の振りの程度)に応じて、上記補正量βを変更するとしてもよい。
【0088】
図27は、S110(図3)において、画像データ14aから顔領域として検出された比較領域CAを例示している。また図27では、S120で顔器官検出部22によって検出された左目領域としての比較領域CA1と、右目領域としての比較領域CA2との各位置も例示している。なお図27では、画像データ14a内の顔自体の図示は省略している。さらに図27では、顔器官検出部22が検出した口の画像を含む矩形領域(口領域CA3)の位置も例示している。画像変形部20は、S120において、顔器官検出部22に、左右の目に加え口も検出させる。つまり顔器官検出部22は、顔領域としての比較領域CA内(顔画像データFD内)でさらに矩形状の比較領域CAを設定し、当該設定した比較領域CAの位置と大きさと回転角度を変えながら、当該設定した比較領域CA内の画像と各テンプレート(口テンプレート)の画像との類似性を評価するパターンマッチングを行なうことにより、口領域CA3を検出可能である。
【0089】
比較領域CA1と、比較領域CA2と、口領域CA3とが検出されたら、顔向き推定部27が顔の向きの推定処理を実行する。推定処理を実行するタイミングは様々であるが、一例として、顔向き推定部27は、S120とS125の間のタイミングにおいて推定処理を行なう。なお、顔器官検出部22が左目領域と、右目領域と、口領域CA3とのいずれか一つでも検出できなかった場合には、顔向き推定部27は推定処理を行なわないとしてもよい。ここで、比較領域CA1の中心点Ce(l)と比較領域CA2の中心点Ce(r)とを結ぶ線分CLの長さを参照幅Wrと呼び、口領域CA3の中心点Cmと線分CLとの距離を参照高さHrと呼ぶ。図27から明らかなように、参照幅Wrは顔の画像の幅に相関のある指標であり、参照高さHrは顔の画像の高さに相関のある指標である。
【0090】
顔向き推定部27は、参照高さHrと参照幅Wrとを算出するとともに、参照高さHrと参照幅Wrとの比(Hr/Wr)を判定指標値DIとして算出し、判定指標値DIに基づき顔向き推定を行う。具体的には、顔向き推定部27は、判定指標値DIがしきい値DT1以上かつしきい値DT2未満である場合には、顔の画像の向きが正面向きであると推定する。しきい値DT1,DT2はいずれも正の値であり、DT1<DT2の関係を有する。顔向き推定部27は、判定指標値DIがしきい値DT1未満である場合には、顔の画像の向きが上向きまたは下向きであると推定する。顔向き推定部27は、判定指標値DIがしきい値DT2以上である場合には、顔の画像の向きが右向きまたは左向きであると推定する。
【0091】
顔の画像の向きが右向きまたは左向きである場合には、正面向きである場合と比較して、参照高さHrはほとんど変わらない一方、参照幅Wrは小さいと考えられる。従って、顔の画像の向きが右向きまたは左向きである場合には、正面向きである場合と比較して、判定指標値DI(=Hr/Wr)が大きくなる。反対に、顔の画像の向きが上向きまたは下向きである場合には、正面向きである場合と比較して、参照幅Wrはほとんど変わらない一方、参照高さHrは小さいと考えられる。従って、顔の画像の向きが上向きまたは下向きである場合には、正面向きである場合と比較して、判定指標値DI(=Hr/Wr)が小さくなる。しきい値DT1,DT2は、複数の顔のサンプル画像の判定指標値DIから統計的に定められる。予め定められたしきい値DT1,DT2は内部メモリ12内の所定の領域に格納されている。
【0092】
本実施形態においては、顔が右向きまたは左向きと推定された場合に、当該推定の結果を補正量βの決定に際して考慮する。そこで、顔向き推定部27は、顔の画像の向きが右向きまたは左向きであると推定したときに、上記算出した判定指標値DIを内部メモリ12に記録する。従って、内部メモリ12に記録される判定指標値DIは、少なくともしきい値DT2以上の値である。内部メモリ12に記録された判定指標値DIは、対象画像における顔の右向きまたは左向きの度合い(横向きの度合い)を示していると言える。補正量決定部23は、S300の実行過程において、内部メモリ12に判定指標値DIが記録されているか否か判断する。そして、内部メモリ12に判定指標値DIが記録されている場合には、S315(図19)で決定した補正量βを、判定指標値DIの大きさに応じて変更する。以下では、変更後の補正量を補正量β´と呼ぶ。
【0093】
図28は、補正量βを判定指標値DIに応じて変更するための関数F2を例示している。関数F2は、入力値(横軸)=判定指標値DI、出力値(縦軸)=補正量β´とした、下に凸の2次曲線である。関数F2は、入力値=DT2のとき最大値(補正量β)を出力し、入力値が大きくなるほど1に近い値を出力する。従って、判定指標値DIが大きい値であるほど(対象画像における顔の横向きの度合いが高いほど)、補正量βが1を下限として小さい値に変更される。補正量決定部23は、このように関数F2に基づいて出力した補正量β´を、変形部に受け渡す。変形部は、補正量β´に基づいて上述した画像変形を行なう(S500)。
【0094】
対象画像における顔が右向きまたは左向きであれば、奥側の目(対象画像の顔が右向きであれば当該顔の右目、対象画像の顔が左向きであれば当該顔の左目)は、手前側の目よりも小さく表示されていて当然である。このように、小さくて当然の奥側の目を上記のように決定した補正量βに基づいて拡大すると、過剰な変形となってしまい、却って画像が不自然となり得る。そこで本実施形態では、顔向き推定部27が顔の横向きの度合いが高いと推定した場合には、補正量決定部23は、小さい方の目を拡大するための補正量βを上記のように低減させる(補正量β´に変更する)ことで、画像の過剰な変形を防止している。補正量決定部23による変更後の補正量β´=1である場合には、実質的に画像変形は行なわれないため、この場合プリンタ10は、S500をスキップしてS700に進む。
【0095】
また、顔向き推定部27による推定結果に基づく処理の一例として、画像変形部20は、顔向き推定部27が算出した判定指標値DIが一定値以上であれば、画像変形を行なわないとしてもよい。つまり、上記S120の次のステップで顔向き推定部27が算出した判定指標値DIが、しきい値DT2以上であったり、あるいは、しきい値DT2より大きい所定の値(しきい値DT3)以上であった場合には、画像変形部20は、拡大率(あるいは縮小率)としての補正量βは1に変更されるものとみなし、S125〜S170,S300,S500の処理を行なうことなくS700に進むとしてもよい。
本実施形態では、プリンタ10による処理を説明したが、上述した画像変形部20による処理(S100〜S500の処理)は、PCやデジタルスチルカメラなど、プリンタ以外の各種ハードウェアにおいても行なうことが可能である。
【図面の簡単な説明】
【0096】
【図1】画像処理装置としてのプリンタの概略構成を示すブロック図である。
【図2】プリンタが実行する処理を示すフローチャートである。
【図3】両目サイズ検出処理の詳細を示すフローチャートである。
【図4】顔検出の様子を示す図である。
【図5】顔器官検出後の顔画像データを示す図である。
【図6】両目サイズ検出部のソフトウェア構成を示すブロック図である。
【図7】傾き補正の様子を示す図である。
【図8】スカラー変換処理の流れを示すフローチャートである。
【図9】サンプリングの様子を示す図である。
【図10】サンプリングによって得られるヒストグラムである。
【図11】マハラノビス平方距離の等値線を示すグラフである。
【図12】変換関数による変換特性を示すグラフである。
【図13】マハラノビス平方距離と確率分布の関係を示すグラフである。
【図14】Zマップの一例を示す図である。
【図15】Zマップにおける輪郭パラメータを示す図である。
【図16】評価値を説明する図である。
【図17】探索処理における探索手順を示す模式図である。
【図18】探索処理の詳細手順を示す模式図である。
【図19】補正量決定処理の詳細を示すフローチャートである。
【図20】補正量決定のための関数の一例を示す図である。
【図21】画像変形処理の詳細を示すフローチャートである。
【図22】画像データ上に設定した変形領域の一例を示す図である。
【図23】変形領域を小領域に分割した様子の一例を示す図である。
【図24】分割点の位置移動の一例を示す図である。
【図25】画像の変形処理の概念を示す説明図である。
【図26】三角形領域における画像の変形処理の概念を示す説明図である。
【図27】左目領域や右目領域や口領域等を示す図である。
【図28】補正量を判定指標値に応じて変更するための関数を示す図である。
【符号の説明】
【0097】
10…プリンタ、11…CPU、12…内部メモリ、14a…画像データ、14b…顔テンプレート、14c…目テンプレート、16…プリンタエンジン、17…カードI/F、20…画像変形部、21…顔領域検出部、22…顔器官検出部、23…補正量決定部、24…変形領域設定部、25…変形領域分割部、26…変形処理実行部、27…顔向き推定部、32…印刷処理部、41…分割点配置パターンテーブル、172…カードスロット、221…両目サイズ検出部、P2c1…傾き補正部、P2c2…サンプリング部、P2c3…スカラー変換部、P2c4…変換関数設定部、P2c5…パラメータ探索部、P2c6…評価値算出部
【特許請求の範囲】
【請求項1】
対象画像における顔の左右の目の大きさを表す情報を検出する検出部と、
上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定部と、
上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形部とを備えることを特徴とする画像処理装置。
【請求項2】
上記補正量決定部は、上記左右の目のうち小さい方の目の大きさを拡大させる補正量を決定し、上記変形部は、上記拡大させる補正量に基づいて上記小さい方の目を含む領域を拡大する変形処理を行なうことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記補正量決定部は、上記拡大させる補正量として、上記左右の目のうち大きい方の目の大きさに対する上記小さい方の目の大きさの比率が高いほど上記小さい方の目の大きさを上記大きい方の目の大きさに近づかせる補正量を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
上記補正量決定部は、上記左右の目の大きさの平均値を算出するとともに、上記小さい方の目の大きさを当該平均値まで略拡大させる補正量を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項5】
上記補正量決定部は、上記小さい方の目の大きさを大きい方の目の大きさまで略拡大させる補正量を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項6】
上記変形部は、変形処理の対象とした領域の画像を当該領域が含む目の略高さ方向に沿って変形することを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
上記変形部は、変形処理の対象とした領域の画素のうち、当該領域を区画する線であって目の下方に位置する線よりも上記顔の上側に位置する画素を上記補正量に基づいて移動させることにより変形処理を行なうことを特徴とする請求項1〜請求項6のいずれかに記載の画像処理装置。
【請求項8】
上記対象画像における顔の向きを推定する顔向き推定部を備え、
上記補正量決定部は、上記推定部により推定された顔の向きに応じて補正量を変更することを特徴とする請求項1〜請求項7のいずれかに記載の画像処理装置。
【請求項9】
対象画像における顔の左右の目の大きさを表す情報を検出する検出工程と、
上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定工程と、
上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形工程とを備えることを特徴とする画像処理方法。
【請求項10】
対象画像における顔の左右の目の大きさを表す情報を検出する検出機能と、
上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定機能と、
上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項1】
対象画像における顔の左右の目の大きさを表す情報を検出する検出部と、
上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定部と、
上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形部とを備えることを特徴とする画像処理装置。
【請求項2】
上記補正量決定部は、上記左右の目のうち小さい方の目の大きさを拡大させる補正量を決定し、上記変形部は、上記拡大させる補正量に基づいて上記小さい方の目を含む領域を拡大する変形処理を行なうことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記補正量決定部は、上記拡大させる補正量として、上記左右の目のうち大きい方の目の大きさに対する上記小さい方の目の大きさの比率が高いほど上記小さい方の目の大きさを上記大きい方の目の大きさに近づかせる補正量を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
上記補正量決定部は、上記左右の目の大きさの平均値を算出するとともに、上記小さい方の目の大きさを当該平均値まで略拡大させる補正量を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項5】
上記補正量決定部は、上記小さい方の目の大きさを大きい方の目の大きさまで略拡大させる補正量を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項6】
上記変形部は、変形処理の対象とした領域の画像を当該領域が含む目の略高さ方向に沿って変形することを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
上記変形部は、変形処理の対象とした領域の画素のうち、当該領域を区画する線であって目の下方に位置する線よりも上記顔の上側に位置する画素を上記補正量に基づいて移動させることにより変形処理を行なうことを特徴とする請求項1〜請求項6のいずれかに記載の画像処理装置。
【請求項8】
上記対象画像における顔の向きを推定する顔向き推定部を備え、
上記補正量決定部は、上記推定部により推定された顔の向きに応じて補正量を変更することを特徴とする請求項1〜請求項7のいずれかに記載の画像処理装置。
【請求項9】
対象画像における顔の左右の目の大きさを表す情報を検出する検出工程と、
上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定工程と、
上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形工程とを備えることを特徴とする画像処理方法。
【請求項10】
対象画像における顔の左右の目の大きさを表す情報を検出する検出機能と、
上記検出された情報に基づいて、左右の少なくとも一方の目の大きさに対する補正量を決定する補正量決定機能と、
上記決定された補正量に基づいて、左目を含む領域と右目を含む領域との少なくとも一方の領域に対する画像の変形処理を行なう変形機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図7】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図7】
【図14】
【公開番号】特開2009−223566(P2009−223566A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2008−66617(P2008−66617)
【出願日】平成20年3月14日(2008.3.14)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願日】平成20年3月14日(2008.3.14)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]