画像処理装置、画像処理方法および画像処理プログラム
【課題】所望の画像変形結果を得るために要する演算処理量が多く、またユーザも煩雑な操作を行なう必要があった。
【解決手段】顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定部と、上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得部と、上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形部とを備える画像処理装置とした。
【解決手段】顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定部と、上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得部と、上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形部とを備える画像処理装置とした。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている(特許文献1参照。)。特許文献1には、顔の画像上の一部の領域(頬の画像を表す領域)を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【特許文献1】特開2004‐318204号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記のように補正領域を設定して画像を変形する画像処理では、補正領域の設定や小領域の拡大や縮小等、多くの演算処理量を要する処理が行われる。そのため、画像処理を行うための演算処理量が過大となる場合があった。この問題は、人物の顔を変形する場合に限らず、一般に、画像を変形する処理に共通する。また、このような画像変形を実行する前に、画像変形の実行の要否や変形の強さ(度合い)等の各種設定をユーザにさせることは、ユーザの手間を増大化させていた。
【0004】
本発明は上記課題に鑑みてなされたものであり、画像の変形に要する演算処理量を低減するとともに、ユーザに負担をかけることなく自動的に、理想的な変形処理が施された画像を得ることが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、本発明の画像処理装置は、顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定部と、上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得部と、上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形部とを備える構成としてある。本発明によれば、少ない処理量で対象画像内の人物の体型を自動的に理想的な体型に変形させることができる。
【0006】
上記体型推定部は、上記対象画像から上記人物の特徴部分の幅を抽出し、当該抽出した特徴部分の幅に基づいて上記体型領域を推定するとしてもよい。具体的には、上記体型推定部は、上記特徴部分として人物の頬または肩または腰の幅を抽出する。当該構成によれば、対象画像内の人物の体型に対応した領域を精度良く推定することができる。
【0007】
画像処理装置は、上記人物の年齢層および又は性別を推定する年齢性別推定部を備え、上記補正値取得部は、上記推定された年齢層および又は性別に応じて、上記取得した補正値を変更するとしてもよい。当該構成によれば、推定された年齢層や性別に応じて適切に変更された補正値によって人物の体型を変形することができる。ここで言う補正値の変更には、補正値が示す補正量をゼロにすることも含まれ、その場合には、実質的には画像変形部による変形は行なわれない。
【0008】
上記補正値取得部は、上記体型領域の縦横比を、観察者の両目によって上記人物を直接に視認したときに知覚される当該人物の体型の縦横比に略一致させるための補正値を取得するとしてもよい。当該構成によれば、対象画像内の人物の体型を、人間の目で被写体(上記人物)を直に視認したときの印象と同等の印象を与える体型に変形させることができる。
【0009】
上記対象画像における顔画像の向きと傾きと位置とが当該向きと傾きと位置とに対してそれぞれ設定された許容範囲内である場合に、上記体型領域の推定と補正値の取得と領域の変形とを実行するとしてもよい。当該構成によれば、顔画像の向きや、傾きや、位置が夫々の許容範囲内でないために画像変形の効果が適切に出にくい(あるいは、画像変形を行なうことで却って画像を破綻させてしまう)場合に、無駄に画像変形を実行してしまうことを防止できる。
【0010】
これまでは、本発明の技術的思想を画像処理装置として説明したが、上述した画像処理装置が備える各手段に対応した各工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各手段に対応した各機能をコンピュータに実行させる画像処理プログラムの発明をも把握することができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、パーソナルコンピュータやサーバ等のハードウェアによって実現されてもよいし、画像入力装置としてのデジタルスチルカメラやスキャナ、あるいは、画像出力装置としてのプリンタ(印刷装置)やプロジェクタやフォトヴューワ等、様々な製品によって実現することができる。
【発明を実施するための最良の形態】
【0011】
1.画像処理装置の概略構成
図1は、本発明にかかる画像処理装置の一例としてのプリンタ100の構成を概略的に示す説明図である。プリンタ100は、メモリカードMC等の記録メディアから取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、内部メモリ120と、CPU110と、操作部140と、表示部150と、プリンタエンジン160と、カードインタフェース(カードI/F)170と、カードスロット172とを備えている。
【0012】
内部メモリ120は、ROMやRAMによって構成されており、機能ブロックとして、画像補正処理部200と、表示処理部310と、印刷処理部320とを備えている。画像補正処理部200は、所定のオペレーティングシステムの下で、後述する画像補正処理を実行するためのコンピュータプログラムである。画像補正処理部200は、プログラムモジュールとして、顔領域検出部210と、除外判定部220と、体型推定部230と、補正値取得部240と、一方向変形部250と、年齢性別推定部260とを有している。一方向変形部250は、RAMに設けられた一時記憶領域であるバッファ領域と、対応画素数テーブル410とを用いることにより、画像補正処理の一種としての一方向変形処理を実行する。一方向変形部250は、特許請求の範囲における画像変形部に該当する。プリンタ100では、人物画像を含む画像に対して一方向変形処理を実行することにより、人物画像の体型を理想的な体型(理想的な縦横比)へと変形させることができる。これら各部の機能については後述する。
【0013】
表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージや画像等を表示させるディスプレイドライバである。印刷処理部320は、画像データに対して所定の色変換処理やハーフトーン処理を施すことにより画素毎のインク量を規定した印刷データを生成し、プリンタエンジン160を制御して当該印刷データに基づいて画像の印刷を実行させるためのコンピュータプログラムである。印刷処理部320による色変換処理やハーフトーン処理の処理対象となる画像データには、例えば、画像補正処理部200によって画像補正処理が実行された後の画像を表す画像データが該当する。CPU110は、上述したこれらのプログラムを内部メモリ120から読み出して実行することにより、これら各部の機能をそれぞれ実現する。
【0014】
操作部140は、ボタンやタッチパネルを備えておりユーザによる指示等の入力を受け付ける。表示部150は、例えば液晶ディスプレイによって構成されている。プリンタエンジン160は、印刷処理部320から送信される印刷データに基づき印刷を行う印刷機構である。カードI/F170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインタフェースである。プリンタ100は、カードI/F170以外にも、他の機器(例えばデジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインタフェースを備える構成とすることもできる。以上の各構成要素は、バスを介して互いに接続されている。
【0015】
2.画像補正処理
図2は、プリンタ100によって実行される画像補正処理をフローチャートにより示している。ステップS(以下、ステップの表記を省略する。)100では、画像補正処理部200は、処理対象となる対象画像を設定(取得)する。例えば、カードスロット172にメモリカードMCが挿入されると、表示処理部310は、メモリカードMCに格納された画像の表示を含むユーザインタフェース(UI)を表示部150に表示させる。そして、画像補正処理部200は、当該UIからの入力に従って対象画像を設定する。
【0016】
図3は、S100の過程で表示部150に表示されるUIの一例を示している。例えば、UIは、画像表示欄IAと、2つの画像切替ボタンB1,B2と、印刷ボタンB3と、キャンセルボタンB4とを備えている。ユーザは、UIを見ながら画像切替ボタンB1,B2を操作して対象画像を選択し、印刷ボタンB3を押下することで対象画像を設定することができる。プリンタ100は、当該フローチャート終了後は、変形処理が実行された画像(あるいは当該フローチャートにおいて変形処理が実行されなかった場合には、変形処理が実行されなかった画像)を印刷する。つまり本実施形態では、ユーザが印刷ボタンB3を押すだけで、S200以下の処理が自動的に実行され、その後、印刷結果物が得られる。図3の例では、人物P1が写った画像TIが対象画像として選択されており、この状態でユーザが印刷ボタンB3を押下することで、画像補正処理部200は、画像TIを対象画像として設定する。なおUIにおいては、メモリカードMC内の複数の画像を一覧表示する構成とすることもできる。
【0017】
S200では、顔領域検出部210が、対象画像を表す画像データをメモリカードMCから内部メモリ120に読み出すとともに、対象画像における顔領域の検出を行う。顔領域とは、対象画像内の顔画像の少なくとも一部を含む領域であって、少なくとも所定の顔器官(目や鼻や口)を含むと想定される領域である。顔領域検出部210は、対象画像を表す画像データを解析して当該顔器官を含むと想定される矩形の領域を顔領域として検出する。顔領域の検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2006‐279460参照)といった公知の検出方法を用いて実行される。顔領域検出部210は、上記パターンマッチングにも、顔領域を検出可能な手法であればあらゆる手法を採用することができる。例えば、顔領域検出部210は、対象画像内に設定した矩形領域(検出対象領域)単位で、画像の各種情報(例えば、輝度情報やエッジ量やコントラスト等。)を入力し検出対象領域が顔領域に該当するか否かを示す情報を出力する、予め学習されたニューラルネットワークを用いることにより、顔領域の検出を行なっても良いし、サポートベクタマシンを利用して検出対象領域毎に顔領域であるか否かを判断してもよい。
【0018】
図4は、S200における顔領域の検出結果の一例を示す説明図である。図4の例では、対象画像TIに人物P1の画像が含まれているため、人物P1の顔画像に対応する顔領域Fdが検出されている。顔領域Fd1は両目と鼻と口の各画像をすべて含む矩形の領域である。顔領域検出部210は、顔領域Fdを、その領域の4つの頂点の座標により特定する。ただし、メモリカードMCに格納された対象画像を表す画像データに、既に対象画像内の顔領域Fdの検出結果(画像内の顔領域の位置を特定する情報)が付属情報として存在している場合もある。例えば、対象画像の撮影に用いられたデジタルスチルカメラの機能によって既に対象画像から顔領域Fdが検出され、その検出結果を示した情報が画像データとともにメモリカードMCに記録されている場合等である。このような場合には、顔領域検出部210は対象画像から顔領域Fdの検出を行なう必要はなく、上記付属情報に基づいて対象画像内の顔領域Fdを特定する。
【0019】
S300では、年齢性別推定部260が、S200で検出または特定された顔領域内の画像を対象として顔(人物)の年齢層および性別を推定する。ここで言う年齢層とは、例えば、幼児、子供、青年、中年、中高年、老人等といったように分類される層である。年齢性別推定部260は、画像に基づく年齢層および性別の推定処理を公知の手法を用いて行なう。なおS300は、S200において顔領域の検出または特定に成功している場合にのみ実行される。
【0020】
S400では、除外判定部220が、S100で設定された対象画像が一方向変形処理の対象から除外されるべき条件(除外条件)に該当するか否かを判定する。そして、対象画像が除外条件に該当しない場合にS500以下の処理に進み、一方、除外条件に該当する場合には、S500以下の処理を行なうことなく当該フローチャートを終了する。本実施形態では、除外判定部220は、顔領域がS200で検出されずかつ顔領域の検出結果を示した付属情報も有していない(人物を撮影したシーンではない)対象画像が、除外条件に該当すると判断する。つまり人物画像を含まない対象画像については一方向変形処理を行なわない。さらに除外判定部220は、対象画像内に顔領域が存在する場合であっても、顔領域が示す顔の向き、傾き、位置が、それぞれ顔の向き、傾き、位置について設定される許容範囲内であるか否か判定し、顔の向き、傾き、位置のいずれか一つでも許容範囲を超える場合には、除外条件に該当すると判断する。
【0021】
顔の向きとは、正面向きの状態を基準とした顔の振りの向きであり、右向き、左向き、上向き、下向きがある。顔の向きは、例えば、顔領域内の右目、左目、口といった各顔器官の位置関係によって判断できる。例えば、除外判定部220は、テンプレートを利用したパターンマッチング等の公知の検出方法で、顔領域から、右目領域、左目領域、口領域を検出し、右目領域の重心から左目領域の重心までを結ぶ線分(参照幅距離)と、当該線分から口領域の重心までを結ぶ線分(参照高さ距離)を算出する。そして、参照幅距離に対する参照高さ距離の比率(参照高さ距離/参照幅距離)が所定のしきい値Th1を下回る場合には、顔領域が示す顔は上向きまたは下向きであると判定し、参照幅距離に対する参照高さ距離の比率が所定のしきい値Th2(Th2>Th1)を上回る場合には、顔が右向きまたは左向きであると判定する。このような上向き、下向き、右向き、左向きの顔は除外条件に該当する。言い換えれば、上記比率がしきい値Th1〜Th2の範囲に収まる場合には、除外判定部220は、顔領域が示す顔の向きは正面向きの範囲内(許容範囲内)であると判定する。
【0022】
顔の傾きとは、対象画像の縦方向または横方向に対する顔の高さ方向の傾きである。本実施形態では、対象画像の長辺方向を対象画像の横方向とし、対象画像の短辺方向を対象画像の縦方向とする。除外判定部220は、顔の高さ方向を特定する。例えば、上記参照幅距離を示す線分に対して直交する線分が向く方向を、顔の高さ方向(顔の上下方向)であると特定する。そして、対象画像の縦方向に対して顔の高さ方向がなす角度が所定角度範囲内(例えば、20°以内)であるか、または対象画像の横方向に対して顔の高さ方向がなす角度が上記所定角度範囲内である場合に、顔の傾きは許容範囲内であると判定する。つまり除外判定部220は、顔の高さ方向が対象画像の縦方向・横方向のいずれに対しても上記所定角度よりも傾いている場合に、除外条件に該当すると判定する。
【0023】
画像補正処理部200は、顔の高さ方向と対象画像の縦方向・横方向との角度を検査した結果、対象画像の縦方向と横方向とのうち、顔の高さ方向との間になす角度が大きい方を、一方向変形処理のための変形方向として特定する。つまり、顔の高さ方向が縦方向を略向いている場合には横方向が変形方向となり、顔の高さ方向が略横方向を略向いている場合には縦方向が変形方向となる。以下において、単に「変形方向」と言った場合には、一方向変形処理のための変形方向を意味する。本実施形態では、図4に示したように、人物P1の顔の高さ方向は、対象画像の縦方向と略平行であるため、対象画像の横方向が変形方向となる。
【0024】
このように顔の向きや傾きが許容範囲を超える場合には、顔画像に一方向変形処理を適用しても良好な画像変形結果が得られ難いため、本実施形態では当該フローチャートを終了する。さらに除外判定部220は、対象画像内における人物の体の高さ方向を特定し、体の高さ方向と顔の高さ方向とが略一致しない場合も、除外条件に該当すると判定してもよい。除外判定部220は、顔領域を含む人物を、例えばパターンマッチングや輪郭抽出などによって対象画像から抽出し、抽出した人物の胴体の上下方向を体の高さ方向として検出する。そして、顔の高さ方向と体の高さ方向との間にある一定以上の角度が生じている場合には、除外条件に該当すると判定する。例えば、対象画像内の人物が、その顔は傾きが無いが体は横や斜め等を向いている姿勢の場合、人物画像に一方向変形処理を適用しても良好な画像変形結果が得られ難いため、当該フローチャートを終了する。
【0025】
また、除外判定部220は、変形方向が横方向である場合には、横方向における対象画像の両端の所定領域を除外領域として設定し、顔領域が除外領域内に含まれる場合に、顔領域の位置が許容範囲を超える(除外条件に該当)と判断する。一方、除外判定部220は、変形方向が縦方向である場合には、縦方向における対象画像の両端の所定領域を除外領域として設定し、顔領域が除外領域内に含まれる場合に、顔領域の位置が許容範囲を超える(除外条件に該当)と判断する。
【0026】
図5は、変形方向が横方向である場合に対象領域TI内に設定される除外領域A1,A2と、変形方向が縦方向である場合に対象領域内に設定される除外領域A3,A4とを例示している。一方向変形処理では、後述するように、基本的には対象画像の変形方向における略中央の領域を変形方向に圧縮し、変形方向における両端の領域を変形方向に拡大することが多い。よって、肝心の顔領域が対象画像の端に存在する場合には、当該顔領域を含む人物画像に対して適切な圧縮をかけることができず、逆に当該人物を拡大させる(太らせる)結果となる恐れもある。よって、対象画像内の顔の位置が許容範囲を超える(外れる)場合にも一方向変形処理を行なうことなく当該フローチャートを終了する。
【0027】
さらに、除外判定部220は、S300で対象画像内の顔について推定された年齢層および性別に基づいて、対象画像をS500以下の処理から除外するか否か判定してもよい。例えば、除外判定部220は、推定された性別が男性であったり、推定された年齢層が子供以下である場合には、対象画像は除外条件に該当すると判定する。男性や子供や幼児については、体型を細くする(スリム化する)ような本実施形態の変形処理を適用する必要性が低いと判定し、当該フローチャートを終了する。ただし、性別や年齢層によって完全に一方向変形処理の適用から外すのではなく、後述するように、性別や年齢層に応じて一方向変形処理の際の変形の度合い(補正値)を変更するとしてもよい。
【0028】
S500では、体型推定部230は、S400で除外条件に該当しないと判定された対象画像において、顔領域を含む人物の体型に対応した体型領域を推定し設定する。体型領域の推定方法は種々考えられるが、一例として本実施形態では、顔や体における特徴部分の幅を抽出し、当該抽出した幅に応じた縦横比とした矩形領域を、体型領域として対象画像内に設定する。例えば、体型推定部230は、顔領域を含む画像領域において顔の輪郭を抽出し、当該輪郭の顔の高さ方向における長さと、当該輪郭の頬位置での顔の高さ方向に直交する方向(顔の幅方向あるいは顔の左右方向)における長さ(頬の幅)とを求める。
【0029】
図6は、顔領域Fdを含む画像領域から抽出した輪郭FLの、顔の高さ方向の長さLhと、輪郭FLの頬位置での顔の幅方向の長さLwとを例示している。輪郭FLは、例えば、顔領域Fdを含む画像領域において肌色画素を抽出するとともに当該抽出した肌色画素が形成する領域の境界を特定することにより抽出したり、顔領域Fdの周辺において顔の輪郭に対応するエッジを検出すること等により抽出できる。また、長さLwを特定するための、顔の高さ方向における頬位置は、上記のように検出された左・右目領域と口領域との位置関係と、予め定められた人間の顔における目と頬と口との位置関係に基づいて推測できる。体型推定部230は、長さLhと長さLwとの比に応じて、体型領域の基となる標準矩形の縦横比を変更する。
【0030】
標準矩形とは、標準的な人間の体型(例えば、中肉中背の体型)の縦横比に対応するものとして予め内部メモリ120に格納された矩形である。体型推定部230は、長さLhに対する長さLwの比(Lw/Lh)が大きい(所定の基準値と比べて大きい)ほど、つまり頬が太った顔であるほど、標準矩形の縦の長さに対する横の長さを増加させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。また、体型推定部230は、上記比(Lw/Lh)が小さい(所定の基準比と比べて小さい)ほど、つまり頬が痩せた顔であるほど、標準矩形の縦の長さに対する横の長さを減少させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。
【0031】
図7は、対象画像TI内に推定された体型領域BAを例示している。体型推定部230は、上記のように顔の頬の幅に応じて決定した縦横比の矩形を、予め定められた顔領域Fdとの位置関係および大きさの関係に基づいて対象画像TI内に設定することにより、体型領域BAの推定を完了する。顔領域Fdと体型領域BAとの位置関係とは、例えば、体型領域BAの縦方向(体型領域の長辺方向)と平行な当該体型領域BAの中心線上の位置であって、かつ当該中心線の上端から所定割合の位置に顔領域Fdの重心位置を置くといった規則である。顔領域Fdと体型領域BAとの大きさの関係とは、例えば、体型領域BAの縦方向の長さを、顔領域Fdの顔の高さ方向の長さの所定倍にするといった規則である。
【0032】
体型推定部230は、人物の特徴部分として、頬以外にも、腰や肩の幅に応じて体型領域の矩形の縦横比を決定してもよい。この場合、体型推定部230は、対象画像内から顔領域を含む人物の肩幅(顔の幅方向と平行な方向における肩の幅)又は腰幅(顔の幅方向と平行な方向における腰の幅)を検出し、肩幅または腰幅が大きいほど(所定の基準幅と比べて大きいほど)、標準矩形の縦の長さに対する横の長さを増加させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。また、肩幅または腰幅が小さいほど(所定の基準幅と比べて小さいほど)、標準矩形の縦の長さに対する横の長さを減少させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。なお、肩や腰といった体の特徴部分の幅は、対象領域からパターンマッチングなどによって人物の体を抽出し当該抽出した体における所定の位置関係に基づいて特定してもよいし、特開2006‐252025号公報や特開2008‐33654号公報に記載された特徴量の推定方向を用いて特定してもよい。
【0033】
S600では、補正値取得部240は、S500で推定された体型領域の縦横比を理想比に略一致させるための補正値であって、S700の一方向変形処理に用いられる補正値を取得する。理想比とは、本実施形態において理想とする体型の縦横比を意味し、市場調査やユーザの嗜好に合わせて予め設定され内部メモリ120に格納された数値である。ここで、理想比(縦:横)をH1:W1、S500で推定された体型領域の縦の長さ(画素数)、横の長さ(画素数)をそれぞれHp、Wp(図7参照)、補正後の体型領域の理想的な横の長さをWiとした場合、Wiは以下の式(1)によって表される。
Wi=W1・Hp/H1 …(1)
【0034】
また補正値Cは、以下の式(2)によって表される。
C={(Wi−Wp)/Wp}・k …(2)
kは、補正値Cを調整するための所定の係数であり、基本的には0<k<1である。係数kは、補正値Cが表す補正量(画像の変形量)が大きすぎて変形後の画像が破綻してしまう(画像が変わりすぎてユーザに違和感を与える)ことを防止するための数値である。ただし係数kは実質的に存在していなくてもよく、k=1であってもよい。補正値Cは、一方向変形処理において体型の略横方向に対して作用する補正値であり、補正値Cによって体型領域を補正(変形)することで、体型領域の縦横比を理想比に略一致させることができる。補正値Cが正の値(プラス)である場合には、プラスの変形(拡大)を意味し、補正値Cが負の値(マイナス)である場合には、マイナスの変形(圧縮)を意味する。なお、本実施形態における理想比は、標準的な人間の体型の縦横比よりも若干細身な(スリムな)体型の縦横比を想定しているため、補正値Cは負の値となる場合が多い。
【0035】
補正値取得部240は、係数kを、S300で推定された年齢層および性別に応じて変更してもよい。つまり、S300で推定された年齢層および性別の情報をS400における除外判定に用いるのではなく、S600の補正値取得の際に用いても良い。例えば、補正値取得部240は、推定された性別が男性であったり、推定された年齢層が子供以下である場合には、推定された性別が女性でありかつ推定された年齢層が青年以上である場合に用いる係数kよりも小さい(より0に近い)係数kを採用する。その結果、対象画像内の人物が男性であったり子供以下の年齢層である場合には、画像の変形量が抑制される。また、補正値取得部240は、上記WiとWpとの差がある程度小さい場合(Wi−Wpが、0±所定値の範囲に収まる場合)には、S600において補正値Cを算出しないとしてもよい。つまり、上記推定された体型領域の縦横比が理想比に近い場合には、あえて画像変形を行なう必要が無い。そのため、演算処理量低減の観点から、WiとWpとの差がある程度小さい場合には補正量Cを算出せず、補正量Cを算出しなかった場合にはS700に進むことなく当該フローチャートを終了させる。
【0036】
人物の撮影の仕方によっては、上半身だけを撮影する場合等もあり、対象画像に人物の全身が写されているとは限らない。つまり、上記のように顔の頬の幅等に応じて決定した縦横比の矩形を顔領域Fdとの位置関係および大きさの関係に基づいて対象画像TIに設定することにより推定された体型領域の下端部分が、対象画像からはみ出る場合もある。この場合は、一度推定された体型領域のうち対象画像内に収まった分が体型領域として扱われる。しかし、このような対象画像内に収まった分の体型領域の縦横比と上記理想比とを単純に比較することはできない。そこで、体型推定部230は、上記のように一度推定された体型領域の一部が対象画像からはみ出る場合には、体型領域のうち何割が対象画像内に収まっているかを計算する。そして、補正値取得部240は、当該計算された対象画像内に収まっている体型領域の割合に応じて上記理想比に変更を施し、変更後の理想比と対象画像内に収まっている分の体型領域の縦横比とを用いて補正値Cを算出するとしてもよい。
【0037】
S700では、一方向変形部250は、対象画像について一方向変形処理を実行する。一方向変形部250は、一方向変形処理においては、S600で取得された補正値Cに応じて少なくとも体型領域を含む対象画像の領域を、変形方向に変形させる。この場合、一方向変形部250は、変形方向に直交する分割線によって対象画像を、補正値Cを適用する第一領域と、それ以外の第二領域とに分ける。
【0038】
図8Aは、対象画像TIを第一領域ACと第二領域AEとに分けた様子を例示し、図8Bは、対象画像TIに対して一方向変形処理を施した後の画像(変形済画像TI’と呼ぶ。)を例示している。一方向変形部250は、変形方向における体型領域BAの幅に基づいて変形方向における第一領域ACの幅を決定し(例えば、少なくとも変形方向における体型領域BAの幅よりも大きい幅を、変形方向における第一領域ACの幅とする)、当該決定した幅を有する領域であって体型領域BAを含む(基本的には中央に含む)領域を、変形方向に直交する分割線によって特定し、当該特定した領域を第一領域ACとして設定する。従って、第一領域ACには体型領域BAの全体が含まれる。また、一方向変形部250は、対象領域TIにおける第一領域AC以外の領域(第一領域ACの両側の領域)を第二領域AEとして設定する。
【0039】
図9は、S700の一方向変形処理をフローチャートにより示し、図10は、変形方向が横方向である場合の、一方向変形処理を模式的に示している。図10Aは、一方向変形処理が施される前の対象画像における画素の配置を示し、図10Bは、対応画素数テーブル410の一例を示し、図10Cは、一方向変形処理が施された画像(変形済画像)の画素の配置を示している。S710では、一方向変形部250は、変形方向が対象画像の横方向と縦方向とのいずれであるかを判断する。変形方向が横方向である場合はS720に進み、変形方向が縦方向である場合はS750に進む。本実施形態では対象画像の横方向が変形方向であるため、S720に進む。S720では、一方向変形部250は、対象画像において第一領域と第二領域とを設定する。第一領域と第二領域との設定方法は既に述べたため、ここでは説明を省略する。
【0040】
S730では、一方向変形部250は、対応画素数テーブル410を生成する。対応画素数テーブル410とは、対象画像の変形方向における各画素に対応する変形済画像の画素数を表すテーブルである。一方向変形部250は、第一領域および第二領域それぞれに対する補正値に基づいて、変形済画像の画素数(対応画素数)を決定する。そして、決定された対応画素数を対応画素数テーブル410に格納することにより、対応画素数テーブル410が生成される。一方向変形部250は、対応画素数テーブル410の生成にあたっては、補正値Cを第一領域に適用する倍率(変形倍率)に変換する。例えば、補正値Cが「−0.4」という数値である場合、これは元の大きさから当該元の大きさの「0.4」倍分を引くという意味であるため、「0.6」という数値(倍率)に変換する。逆に、補正値Cが「0.4」という数値である場合、これは元の大きさに当該元の大きさの「0.4」倍分を足すという意味であるため、「1.4」という数値(倍率)に変換する。ここでは、補正値Cは負の値であるとし、一方向変形部250は、第一領域に適用する倍率として「0.6」という値を得たものとする。
【0041】
また、一方向変形部250は、第二領域に適用する倍率も設定する。例えば、プリンタ100は、第一領域に適用する倍率と第二領域に適用する倍率との対応関係を規定したテーブルを予め内部メモリ120等に有しておき、一方向変形部250は、当該テーブルと上記のように取得した第一領域に適用する倍率とを参照して、第二領域に適用する倍率を求めることができる。あるいは、一方向変形部250は、対象画像における第一・第二領域の大きさの比率および第一領域の倍率に応じて、対象画像のサイズと変形済画像のサイズとを略一致させるような、第二領域の倍率を求めてもよい。本実施形態では、一方向変形部250は、第二領域に適用する倍率として「1.2」という値を得たものとする。一方向変形部250は、例えば、上記のように得た倍率の小数部についてハーフトーン処理による二値化を行って0と1との配列パターンを決定し、配列パターンの0または1の値に倍率の整数部を加えることによって、対象画像の画素毎の対応画素数を決定することができる。一方向変形部250は、対応画素数テーブル410の生成に当っては、ハーフトーン処理としては、ディザや誤差拡散などの周知の方法を用いることができる。また、倍率の小数部ごとに予め格納された配列パターンを用いてもよい。
【0042】
図10Aでは、説明をごく簡単にするために、画像の横方向にそれぞれ5画素からなる領域D,E,Fが存在し、領域Dおよび領域Fが第二領域であり、領域Eが第一領域である場合を想定して説明を行なう。ここでは、領域Dの倍率が1.2倍、領域Eの倍率が0.6倍、領域Fの倍率が1.2倍であるため、対応画素数テーブル(図10B)においては、領域Dの5画素Px1〜Px5のうち、4つの画素Px1,Px2,Px3,Px5については、対応画素数が1に設定され、残り1つの画素Px4については、対応画素数が2に設定されている。また、領域Eの5画素Px6〜Px10のうち、3つの画素Px6,Px8,Px10については、対応画素数が1に設定され、残り2つの画素Px7,Px9については、対応画素数が0に設定されている。また、領域Fの5画素Px11〜Px15のうち、4つの画素Px11,Px12,Px13,Px15については、対応画素数が1に設定され、残り1つの画素Px14については、対応画素数が2に設定されている。
【0043】
S740では、一方向変形部250は、対応画素数テーブル410を参照し、内部メモリ120内のバッファ領域を用いて対象画像の1ライン分の画素の再配置を行なう。ラインとは、一方向変形処理における処理単位であり、長さが対象画像の横方向における全画素数分で、幅が1画素分の画像領域をいう。図10の例では、図10Cに示すように、領域Dを構成する画素として、順次、対応画素数が1の画素Px1,Px2,Px3が1つずつ配置され、次に対応画素数が2の画素Px4が2つ配置され、次に対応画素数が1の画素Px5が1つ配置される。次いで、領域Eを構成する画素として、対応画素数が1の画素Px6,Px8,Px10が順に1つずつ配置され、次に、領域Fを構成する画素として、対応画素数が1の画素Px11,Px12,Px13が1つずつ配置され、対応画素数が2の画素Px14が2つ配置され、対応画素数が1の画素Px15が1つ配置される。このような1ライン分の画素の再配置を全ラインについて行なうことにより、対象画像の第二領域はそれぞれ1.2倍に拡大され、第一領域は0.6倍に圧縮される。
【0044】
S750では、一方向変形処部250は、対象画像の全てのラインについて、画素の再配置が完了したか否かを判断する。全てのラインについて画素の再配置が完了している場合、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、画素の再配置が完了していない場合、処理はS740に戻され、全てのラインについて画素の再配置が完了するまで、S740,S750が繰り返し実行される。一方向変形部250は、S760においては、対象画像の縦方向と直交する分割線よって対象画像を第一領域と第二領域とに分け、S770では、S730と同様に第一領域、第二領域の各倍率を用いて対応画素数テーブル410を生成する。変形方向が縦方向の場合、対象画像の縦方向に並ぶ各画素(縦方向に並ぶ各ライン)についての対応画素数を規定した対応画素数テーブル410が生成される。対応画素数の決定方法はS730と同様であるので説明を省略する。
【0045】
S780において、一方向変形部250は、対応画素数テーブルを参照して、上記バッファ領域に設けられた変形済画像の格納領域に、対象画像のラインを配置する。変形方向が横方向である場合には、画素単位でその画素に対応する対応画素数(0や1や2等)に応じた再配置を行なうが、変形方向が縦方向である場合には、ライン単位で、そのラインに対応する対応画素数に応じた配置を行なう。具体的には、上記バッファ領域の変形済画像の格納領域に、バッファ領域に格納された対象画像の1ラインを、当該1ラインに対応する対応画素数分のラインとして追加する。S790では、一方向変形部250は、対象画像の全てのラインを対象としてS780の処理を完了したか否かを判断し、完了している場合は、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、完了していない場合は、処理はS780に戻され、対象画像の全てのラインを対象としてS780が行なわれるまで、S780,S790が繰り返し実行される。
【0046】
S700の一方向変形処理により、体型領域を含む第一領域は、補正値Cに応じて変形方向に変形(圧縮)され、第二領域も変形方向に変形(第一領域が圧縮される場合には拡大)される。つまり図8Bに例示したように、第一領域ACは、第一領域AC’へと変形(圧縮)され、第二領域AEは第二領域AE’へと変形(拡大)され、変形済画像TI’中の人物P1の体型は、その縦横比が理想比にほぼ一致したものとなる(多くの場合、変形前の体型よりも変形後の方が全体的にスリムになる)。このように本実施形態によれば、ユーザが対象画像を指定するだけで、プリンタ100は、対象画像内の顔画像を含む人物の体型に対応した矩形(体型領域)を対象画像内に推定し、体型領域の縦横比を理想比に略一致させるための補正値を算出し、対象領域を変形方向において変形させる際に、体型領域を含む第一領域に対して、補正値に応じた変形を施す。そのため、ユーザは、人物画像が自動的に理想的な体型に補正された画像を得ることができる。また、実行される画像変形処理は、対象画像の一つの方向(変形方向)に沿った圧縮および拡大だけであるため、演算処理量が非常に少なく、プリンタ100の負担も少ない。
【0047】
3.他の実施例
上記では、S600で用いる理想比は、市場調査やユーザの嗜好に合った体型すなわちある程度ユーザの願望が介入した体型(例えば、スリムな体型)を表した比率であるとして説明を行なった。しかし理想比は上記のようなものに限られない。人は、ある被写体を直接見たときの印象とは異なる印象を、同じ被写体が撮影された画像から受けることがあり、特に被写体を画像として見たときの印象の方が、実物を見たときの印象よりも「太め」に見えることがある。そこで当該他の実施例(以下、当該実施例と呼ぶ)では「理想比」とは、人間が両目で被写体を直接視認したときに知覚する被写体の縦横比であるとする。当該実施例では、S600において、体型領域の縦横比を、人が被写体(人物)を直接視認したときに知覚する体型の縦横比に略一致させるための補正値C´を算出する場合について説明する。なおS600以外の内容は、基本的にこれまでに説明した通りである。
【0048】
図11は、当該実施例において、補正値取得部240がS600において実行する処理をフローチャートにより示している。S610では、補正値取得部240は、被写体(人物P1)の撮影距離Sdおよび顔の幅Wfを取得する。撮影距離Sdとは、デジタルスチルカメラによる対象画像の撮影時における、当該デジタルスチルカメラ(詳細には、デジタルスチルカメラのレンズの主点)から人物P1までの距離を意味する。撮影距離Sdは、デジタルスチルカメラによって撮影の際に算出あるいは取得され、対象画像を表した画像データとともに、付属情報の一種としてデジタルスチルカメラ内のメモリカードMCに記録される。従って、プリンタ100側では、そのようなメモリカードMCがカードスロット172に挿入されている状況において、メモリカードMCに対象画像の画像データとともに記録されている付属情報の中から撮影距離Sdを取得することができる。また顔の幅Wfとは、人間の標準的な顔の幅(顔の現実の大きさ)を示した値(例えば200mm)であり、予め内部メモリ120等に格納されている。顔の幅Wfの値は、幼児、子供、青年以上というように各年齢層に応じて異なる値が格納されていてもよく、補正値取得部240は、S300で推定された年齢層に対応する顔の幅Wfを取得するとしてもよい。
【0049】
S620では、補正値取得部240は、両眼距離DEを取得する。両眼距離DEとは、人間の標準的な両眼の間隔の値であり、例えば60mmといった数値である。両目距離DEも予め内部メモリ120に格納されている。両目距離DEも顔の幅Wfと同じように、各年齢層に応じて異なる値が格納されていてもよく、補正値取得部240は、S300で推定された年齢層に対応する両目距離DEを取得するとしてもよい。S630では、補正値取得部240は、S610で取得した情報(Sd,Wf)に基づいた幾何学的計算により、単眼を介して捉えられる対象画像中の人物の大きさ(単眼知覚サイズSMと呼ぶ)を算出する。単眼とはデジタルスチルカメラのレンズを意味する。S640では、補正値取得部240は、S610,S620で取得した情報(Sd,Wf,DE)に基づいた幾何学的計算により、人間の左右の眼によって知覚される対象画像中の人物の大きさ(両眼知覚サイズSBと呼ぶ)を算出する。
【0050】
図12は、単眼としてのレンズ502と、人間の左右の眼(右眼RE、左眼LE)と、被写体OB(人物の顔)と、仮想的な結像面S1との位置関係を上面から2次元にて表している。図12の中心軸であるY軸上には、レンズ502(レンズ502の主点)と、被写体OBの中心点Cが位置する。レンズ502と中心点Cとの距離はSdである。当該実施例では計算を容易とするために、被写体OBは球体であるとしている。被写体OBの半径rは、Wf/2である。右眼REと左眼LEとは、両者の中間点がレンズ502の主点に一致し、かつ互いにDEだけ離れた状態でレンズ502の両側に位置する。右眼RE、レンズ502、左眼LEの並びは、X軸に平行である。結像面S1は、X軸に平行な面であって、右眼RE、レンズ502、左眼LEが並ぶ面(観察面S2)を挟んで被写体OBとは反対側に在る。観察面S2と結像面S1との距離d1は特に問われない。補正値取得部240は、単眼知覚サイズSMおよび両眼知覚サイズSBの算出に際し、距離d1として、任意の値(距離)を固定値として設定すればよい。
【0051】
このような位置関係において、S630では、補正値取得部240は、レンズ502の位置において交差する被写体OBの2本の接線を引く。当該2本の接線と被写体ОBとの2つの接点AS,BSの間の範囲が、レンズ502を介して捉えられる被写体ОBの横幅となる。従って補正値取得部240は、当該2本の接線と結像面S1との2つの交点間のX軸方向の範囲の距離を、単眼知覚サイズSMとして算出する。S640では、補正値取得部240は、まず両眼知覚サイズSBを得るための前段階の処理として、右眼REの位置において交差する被写体OBの2本の接線と、左眼LEの位置において交差する被写体OBの2本の接線とをそれぞれ引く。右眼REの位置において交差する2本の接線と被写体OBとの2つの接点AR,BRの間の範囲が、右眼REによって知覚される被写体OBの横幅となる。そこで、補正値取得部240は、右眼REの位置において交差する2本の接線と結像面S1との2つの交点間のX軸方向の範囲の距離を、右眼知覚範囲SRとして算出する。同様に、左眼LEの位置において交差する2本の接線と被写体OBとの2つの接点AL,BLの間の範囲が、左眼LEによって知覚される被写体ОBの横幅となる。そこで、補正値取得部240は、左眼LEの位置において交差する2本の接線と結像面S1との2つの交点間のX軸方向の範囲の距離を、左眼知覚範囲SLとして算出する。
【0052】
このように右眼RE、左眼LEによってそれぞれ知覚される被写体の範囲には、左右方向にずれが生じている。ここで、人間が両目で物を見るときには、右眼REで知覚される範囲の像と左眼LEで知覚される範囲の像とを重ね合わせたときに共通する範囲を、その物の大きさと認識すると推測される。そこで当該実施例では、上記算出した左眼知覚範囲SLと右眼知覚範囲SRとを重ね合わせたときに共通する範囲の長さを、両眼知覚サイズSBとする。当該重ね合わせの処理には、被写体ОB上の注視点PGの位置を利用する。注視点PGとは、人間が被写体ОBを見たときに最も注目していると推定される点であり、当該実施例では、右眼RE、左眼LEの両方から見える被写体ОB上の点であって、右眼REからの距離と左眼LEからの距離とが等しい点としている。補正値取得部240は、注視点PGおよび右眼REを通過する直線と結像面S1との交点位置を、注視点PGに対応する右眼知覚範囲SR上の点PGrとし、注視点PGおよび左眼LEを通過する直線と結像面S1との交点位置を、注視点PGに対応する左眼知覚範囲SL上の点PGlとする。そして、点PGrと点PGlとが一致するように、左眼知覚範囲SLと右眼知覚範囲SRとを重ね合わせる。
【0053】
図13では、点PGrと点PGlとが一致するように左眼知覚範囲SLと右眼知覚範囲SRとを重ね合わせた状態を示しており、このとき両範囲SL,SRに共通する範囲のX軸方向の距離を、補正値取得部240は、両眼知覚サイズSBと認定する。このように求められる両眼知覚サイズSBは、S630で求めた単眼知覚サイズSMより短い。従って、人は、レンズ502を介して撮像された被写体OBの画像を観察すると、被写体OBを直接観察したときと比較して横幅が広い(太った)印象を受けると言える。S650では、補正値取得部240は、単眼知覚サイズSMに対する両眼知覚サイズSBの比率(SB/SM)を算出し、当該比率(SB/SM)を補正値C´とする(C´=SB/SM)。このように当該実施例では、被写体OBの注視点PGを基準とした右眼知覚範囲SRと左眼知覚範囲SLとの重ね合わせによって得られる共通範囲の長さを両眼知覚サイズSBとしている。そのため、単眼知覚サイズSMに対する両眼知覚サイズSBの比率は、被写体距離Sdで単眼レンズで撮像された被写体OBの画像(人物を含む対象画像)を観察したときに人が知覚する被写体ОB(人物)の横方向の幅に対する、被写体距離Sdで人が被写体OB(人物)を直接観察したときに知覚する被写体ОB(人物)の横方向の比率を正確に表していると言える。
【0054】
S600で補正値C´が算出された後、一方向変形部250が対象画像について一方向変形処理(S700)を実行する。このとき一方向変形部250は、体型領域を含む第一領域に対して補正値C´を適用した変形処理を行なう。つまり補正値C´は倍率そのものであるため、補正値C´を適用した変形処理が第一領域に対して行なわれることにより、第一領域は変形方向において補正値C´が表す倍率で圧縮される。一方向変形部250は、第二領域については所定の倍率によって拡大する。このように当該実施例によれば、S600で、単眼知覚サイズSMに対する両眼知覚サイズSBの比率(SB/SM)を補正値C´として求め、補正値C´によって対象画像における第一領域を変形方向に圧縮する。そのため、第一領域に含まれる人物画像の横幅も圧縮され、その結果、当該人物画像の縦横比は、ユーザが当該人物を直接に視認したときに知覚する体型の縦横比に略一致したものとなる。当該実施例では、ユーザが被写体を現実に見たときに受ける印象と同様の印象をユーザが画像を見たときにも与えることを目的としているため、上記推定された対象画像中の人物の年齢層や性別によって一方向変形処理を行なわないとすることはなく、また、単眼知覚サイズSMに対する両眼知覚サイズSBの比率として算出された補正値C´に対して、さらに年齢層や性別に応じた変更を加えることはしない。
【図面の簡単な説明】
【0055】
【図1】画像処理装置としてのプリンタの構成を概略的に示す説明図である。
【図2】画像補正処理の一例を示したフローチャートである。
【図3】UIの一例を示した説明図である。
【図4】対象画像から顔領域が検出された様子を例示した説明図である。
【図5】対象画像における除外領域を例示した説明図である。
【図6】顔の輪郭の幅を検出する様子を例示した説明図である。
【図7】対象画像において推定された体型領域を例示した説明図である。
【図8】一方向変形処理によって対象画像が変形される様子を例示した図である。
【図9】一方向変形処理の詳細を示したフローチャートである。
【図10】一方向変形処理を模式的に示した説明図である。
【図11】補正値取得処理の詳細を示したフローチャートである。
【図12】単眼知覚サイズおよび両眼知覚サイズの算出の様子を示す説明図である。
【図13】単眼知覚サイズおよび両眼知覚サイズを示す説明図である。
【符号の説明】
【0056】
100…プリンタ、110…CPU、120…内部メモリ、140…操作部、150…表示部、160…プリンタエンジン、170…カードインタフェース、172…カードスロット、200…画像補正処理部、210…顔領域検出部、220…除外判定部、230…体型推定部、240…補正値取得部、250…一方向変形部、260…年齢性別推定部、310…表示処理部、320…印刷処理部、410…対応画素数テーブル
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている(特許文献1参照。)。特許文献1には、顔の画像上の一部の領域(頬の画像を表す領域)を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【特許文献1】特開2004‐318204号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記のように補正領域を設定して画像を変形する画像処理では、補正領域の設定や小領域の拡大や縮小等、多くの演算処理量を要する処理が行われる。そのため、画像処理を行うための演算処理量が過大となる場合があった。この問題は、人物の顔を変形する場合に限らず、一般に、画像を変形する処理に共通する。また、このような画像変形を実行する前に、画像変形の実行の要否や変形の強さ(度合い)等の各種設定をユーザにさせることは、ユーザの手間を増大化させていた。
【0004】
本発明は上記課題に鑑みてなされたものであり、画像の変形に要する演算処理量を低減するとともに、ユーザに負担をかけることなく自動的に、理想的な変形処理が施された画像を得ることが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、本発明の画像処理装置は、顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定部と、上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得部と、上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形部とを備える構成としてある。本発明によれば、少ない処理量で対象画像内の人物の体型を自動的に理想的な体型に変形させることができる。
【0006】
上記体型推定部は、上記対象画像から上記人物の特徴部分の幅を抽出し、当該抽出した特徴部分の幅に基づいて上記体型領域を推定するとしてもよい。具体的には、上記体型推定部は、上記特徴部分として人物の頬または肩または腰の幅を抽出する。当該構成によれば、対象画像内の人物の体型に対応した領域を精度良く推定することができる。
【0007】
画像処理装置は、上記人物の年齢層および又は性別を推定する年齢性別推定部を備え、上記補正値取得部は、上記推定された年齢層および又は性別に応じて、上記取得した補正値を変更するとしてもよい。当該構成によれば、推定された年齢層や性別に応じて適切に変更された補正値によって人物の体型を変形することができる。ここで言う補正値の変更には、補正値が示す補正量をゼロにすることも含まれ、その場合には、実質的には画像変形部による変形は行なわれない。
【0008】
上記補正値取得部は、上記体型領域の縦横比を、観察者の両目によって上記人物を直接に視認したときに知覚される当該人物の体型の縦横比に略一致させるための補正値を取得するとしてもよい。当該構成によれば、対象画像内の人物の体型を、人間の目で被写体(上記人物)を直に視認したときの印象と同等の印象を与える体型に変形させることができる。
【0009】
上記対象画像における顔画像の向きと傾きと位置とが当該向きと傾きと位置とに対してそれぞれ設定された許容範囲内である場合に、上記体型領域の推定と補正値の取得と領域の変形とを実行するとしてもよい。当該構成によれば、顔画像の向きや、傾きや、位置が夫々の許容範囲内でないために画像変形の効果が適切に出にくい(あるいは、画像変形を行なうことで却って画像を破綻させてしまう)場合に、無駄に画像変形を実行してしまうことを防止できる。
【0010】
これまでは、本発明の技術的思想を画像処理装置として説明したが、上述した画像処理装置が備える各手段に対応した各工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各手段に対応した各機能をコンピュータに実行させる画像処理プログラムの発明をも把握することができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、パーソナルコンピュータやサーバ等のハードウェアによって実現されてもよいし、画像入力装置としてのデジタルスチルカメラやスキャナ、あるいは、画像出力装置としてのプリンタ(印刷装置)やプロジェクタやフォトヴューワ等、様々な製品によって実現することができる。
【発明を実施するための最良の形態】
【0011】
1.画像処理装置の概略構成
図1は、本発明にかかる画像処理装置の一例としてのプリンタ100の構成を概略的に示す説明図である。プリンタ100は、メモリカードMC等の記録メディアから取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、内部メモリ120と、CPU110と、操作部140と、表示部150と、プリンタエンジン160と、カードインタフェース(カードI/F)170と、カードスロット172とを備えている。
【0012】
内部メモリ120は、ROMやRAMによって構成されており、機能ブロックとして、画像補正処理部200と、表示処理部310と、印刷処理部320とを備えている。画像補正処理部200は、所定のオペレーティングシステムの下で、後述する画像補正処理を実行するためのコンピュータプログラムである。画像補正処理部200は、プログラムモジュールとして、顔領域検出部210と、除外判定部220と、体型推定部230と、補正値取得部240と、一方向変形部250と、年齢性別推定部260とを有している。一方向変形部250は、RAMに設けられた一時記憶領域であるバッファ領域と、対応画素数テーブル410とを用いることにより、画像補正処理の一種としての一方向変形処理を実行する。一方向変形部250は、特許請求の範囲における画像変形部に該当する。プリンタ100では、人物画像を含む画像に対して一方向変形処理を実行することにより、人物画像の体型を理想的な体型(理想的な縦横比)へと変形させることができる。これら各部の機能については後述する。
【0013】
表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージや画像等を表示させるディスプレイドライバである。印刷処理部320は、画像データに対して所定の色変換処理やハーフトーン処理を施すことにより画素毎のインク量を規定した印刷データを生成し、プリンタエンジン160を制御して当該印刷データに基づいて画像の印刷を実行させるためのコンピュータプログラムである。印刷処理部320による色変換処理やハーフトーン処理の処理対象となる画像データには、例えば、画像補正処理部200によって画像補正処理が実行された後の画像を表す画像データが該当する。CPU110は、上述したこれらのプログラムを内部メモリ120から読み出して実行することにより、これら各部の機能をそれぞれ実現する。
【0014】
操作部140は、ボタンやタッチパネルを備えておりユーザによる指示等の入力を受け付ける。表示部150は、例えば液晶ディスプレイによって構成されている。プリンタエンジン160は、印刷処理部320から送信される印刷データに基づき印刷を行う印刷機構である。カードI/F170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインタフェースである。プリンタ100は、カードI/F170以外にも、他の機器(例えばデジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインタフェースを備える構成とすることもできる。以上の各構成要素は、バスを介して互いに接続されている。
【0015】
2.画像補正処理
図2は、プリンタ100によって実行される画像補正処理をフローチャートにより示している。ステップS(以下、ステップの表記を省略する。)100では、画像補正処理部200は、処理対象となる対象画像を設定(取得)する。例えば、カードスロット172にメモリカードMCが挿入されると、表示処理部310は、メモリカードMCに格納された画像の表示を含むユーザインタフェース(UI)を表示部150に表示させる。そして、画像補正処理部200は、当該UIからの入力に従って対象画像を設定する。
【0016】
図3は、S100の過程で表示部150に表示されるUIの一例を示している。例えば、UIは、画像表示欄IAと、2つの画像切替ボタンB1,B2と、印刷ボタンB3と、キャンセルボタンB4とを備えている。ユーザは、UIを見ながら画像切替ボタンB1,B2を操作して対象画像を選択し、印刷ボタンB3を押下することで対象画像を設定することができる。プリンタ100は、当該フローチャート終了後は、変形処理が実行された画像(あるいは当該フローチャートにおいて変形処理が実行されなかった場合には、変形処理が実行されなかった画像)を印刷する。つまり本実施形態では、ユーザが印刷ボタンB3を押すだけで、S200以下の処理が自動的に実行され、その後、印刷結果物が得られる。図3の例では、人物P1が写った画像TIが対象画像として選択されており、この状態でユーザが印刷ボタンB3を押下することで、画像補正処理部200は、画像TIを対象画像として設定する。なおUIにおいては、メモリカードMC内の複数の画像を一覧表示する構成とすることもできる。
【0017】
S200では、顔領域検出部210が、対象画像を表す画像データをメモリカードMCから内部メモリ120に読み出すとともに、対象画像における顔領域の検出を行う。顔領域とは、対象画像内の顔画像の少なくとも一部を含む領域であって、少なくとも所定の顔器官(目や鼻や口)を含むと想定される領域である。顔領域検出部210は、対象画像を表す画像データを解析して当該顔器官を含むと想定される矩形の領域を顔領域として検出する。顔領域の検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2006‐279460参照)といった公知の検出方法を用いて実行される。顔領域検出部210は、上記パターンマッチングにも、顔領域を検出可能な手法であればあらゆる手法を採用することができる。例えば、顔領域検出部210は、対象画像内に設定した矩形領域(検出対象領域)単位で、画像の各種情報(例えば、輝度情報やエッジ量やコントラスト等。)を入力し検出対象領域が顔領域に該当するか否かを示す情報を出力する、予め学習されたニューラルネットワークを用いることにより、顔領域の検出を行なっても良いし、サポートベクタマシンを利用して検出対象領域毎に顔領域であるか否かを判断してもよい。
【0018】
図4は、S200における顔領域の検出結果の一例を示す説明図である。図4の例では、対象画像TIに人物P1の画像が含まれているため、人物P1の顔画像に対応する顔領域Fdが検出されている。顔領域Fd1は両目と鼻と口の各画像をすべて含む矩形の領域である。顔領域検出部210は、顔領域Fdを、その領域の4つの頂点の座標により特定する。ただし、メモリカードMCに格納された対象画像を表す画像データに、既に対象画像内の顔領域Fdの検出結果(画像内の顔領域の位置を特定する情報)が付属情報として存在している場合もある。例えば、対象画像の撮影に用いられたデジタルスチルカメラの機能によって既に対象画像から顔領域Fdが検出され、その検出結果を示した情報が画像データとともにメモリカードMCに記録されている場合等である。このような場合には、顔領域検出部210は対象画像から顔領域Fdの検出を行なう必要はなく、上記付属情報に基づいて対象画像内の顔領域Fdを特定する。
【0019】
S300では、年齢性別推定部260が、S200で検出または特定された顔領域内の画像を対象として顔(人物)の年齢層および性別を推定する。ここで言う年齢層とは、例えば、幼児、子供、青年、中年、中高年、老人等といったように分類される層である。年齢性別推定部260は、画像に基づく年齢層および性別の推定処理を公知の手法を用いて行なう。なおS300は、S200において顔領域の検出または特定に成功している場合にのみ実行される。
【0020】
S400では、除外判定部220が、S100で設定された対象画像が一方向変形処理の対象から除外されるべき条件(除外条件)に該当するか否かを判定する。そして、対象画像が除外条件に該当しない場合にS500以下の処理に進み、一方、除外条件に該当する場合には、S500以下の処理を行なうことなく当該フローチャートを終了する。本実施形態では、除外判定部220は、顔領域がS200で検出されずかつ顔領域の検出結果を示した付属情報も有していない(人物を撮影したシーンではない)対象画像が、除外条件に該当すると判断する。つまり人物画像を含まない対象画像については一方向変形処理を行なわない。さらに除外判定部220は、対象画像内に顔領域が存在する場合であっても、顔領域が示す顔の向き、傾き、位置が、それぞれ顔の向き、傾き、位置について設定される許容範囲内であるか否か判定し、顔の向き、傾き、位置のいずれか一つでも許容範囲を超える場合には、除外条件に該当すると判断する。
【0021】
顔の向きとは、正面向きの状態を基準とした顔の振りの向きであり、右向き、左向き、上向き、下向きがある。顔の向きは、例えば、顔領域内の右目、左目、口といった各顔器官の位置関係によって判断できる。例えば、除外判定部220は、テンプレートを利用したパターンマッチング等の公知の検出方法で、顔領域から、右目領域、左目領域、口領域を検出し、右目領域の重心から左目領域の重心までを結ぶ線分(参照幅距離)と、当該線分から口領域の重心までを結ぶ線分(参照高さ距離)を算出する。そして、参照幅距離に対する参照高さ距離の比率(参照高さ距離/参照幅距離)が所定のしきい値Th1を下回る場合には、顔領域が示す顔は上向きまたは下向きであると判定し、参照幅距離に対する参照高さ距離の比率が所定のしきい値Th2(Th2>Th1)を上回る場合には、顔が右向きまたは左向きであると判定する。このような上向き、下向き、右向き、左向きの顔は除外条件に該当する。言い換えれば、上記比率がしきい値Th1〜Th2の範囲に収まる場合には、除外判定部220は、顔領域が示す顔の向きは正面向きの範囲内(許容範囲内)であると判定する。
【0022】
顔の傾きとは、対象画像の縦方向または横方向に対する顔の高さ方向の傾きである。本実施形態では、対象画像の長辺方向を対象画像の横方向とし、対象画像の短辺方向を対象画像の縦方向とする。除外判定部220は、顔の高さ方向を特定する。例えば、上記参照幅距離を示す線分に対して直交する線分が向く方向を、顔の高さ方向(顔の上下方向)であると特定する。そして、対象画像の縦方向に対して顔の高さ方向がなす角度が所定角度範囲内(例えば、20°以内)であるか、または対象画像の横方向に対して顔の高さ方向がなす角度が上記所定角度範囲内である場合に、顔の傾きは許容範囲内であると判定する。つまり除外判定部220は、顔の高さ方向が対象画像の縦方向・横方向のいずれに対しても上記所定角度よりも傾いている場合に、除外条件に該当すると判定する。
【0023】
画像補正処理部200は、顔の高さ方向と対象画像の縦方向・横方向との角度を検査した結果、対象画像の縦方向と横方向とのうち、顔の高さ方向との間になす角度が大きい方を、一方向変形処理のための変形方向として特定する。つまり、顔の高さ方向が縦方向を略向いている場合には横方向が変形方向となり、顔の高さ方向が略横方向を略向いている場合には縦方向が変形方向となる。以下において、単に「変形方向」と言った場合には、一方向変形処理のための変形方向を意味する。本実施形態では、図4に示したように、人物P1の顔の高さ方向は、対象画像の縦方向と略平行であるため、対象画像の横方向が変形方向となる。
【0024】
このように顔の向きや傾きが許容範囲を超える場合には、顔画像に一方向変形処理を適用しても良好な画像変形結果が得られ難いため、本実施形態では当該フローチャートを終了する。さらに除外判定部220は、対象画像内における人物の体の高さ方向を特定し、体の高さ方向と顔の高さ方向とが略一致しない場合も、除外条件に該当すると判定してもよい。除外判定部220は、顔領域を含む人物を、例えばパターンマッチングや輪郭抽出などによって対象画像から抽出し、抽出した人物の胴体の上下方向を体の高さ方向として検出する。そして、顔の高さ方向と体の高さ方向との間にある一定以上の角度が生じている場合には、除外条件に該当すると判定する。例えば、対象画像内の人物が、その顔は傾きが無いが体は横や斜め等を向いている姿勢の場合、人物画像に一方向変形処理を適用しても良好な画像変形結果が得られ難いため、当該フローチャートを終了する。
【0025】
また、除外判定部220は、変形方向が横方向である場合には、横方向における対象画像の両端の所定領域を除外領域として設定し、顔領域が除外領域内に含まれる場合に、顔領域の位置が許容範囲を超える(除外条件に該当)と判断する。一方、除外判定部220は、変形方向が縦方向である場合には、縦方向における対象画像の両端の所定領域を除外領域として設定し、顔領域が除外領域内に含まれる場合に、顔領域の位置が許容範囲を超える(除外条件に該当)と判断する。
【0026】
図5は、変形方向が横方向である場合に対象領域TI内に設定される除外領域A1,A2と、変形方向が縦方向である場合に対象領域内に設定される除外領域A3,A4とを例示している。一方向変形処理では、後述するように、基本的には対象画像の変形方向における略中央の領域を変形方向に圧縮し、変形方向における両端の領域を変形方向に拡大することが多い。よって、肝心の顔領域が対象画像の端に存在する場合には、当該顔領域を含む人物画像に対して適切な圧縮をかけることができず、逆に当該人物を拡大させる(太らせる)結果となる恐れもある。よって、対象画像内の顔の位置が許容範囲を超える(外れる)場合にも一方向変形処理を行なうことなく当該フローチャートを終了する。
【0027】
さらに、除外判定部220は、S300で対象画像内の顔について推定された年齢層および性別に基づいて、対象画像をS500以下の処理から除外するか否か判定してもよい。例えば、除外判定部220は、推定された性別が男性であったり、推定された年齢層が子供以下である場合には、対象画像は除外条件に該当すると判定する。男性や子供や幼児については、体型を細くする(スリム化する)ような本実施形態の変形処理を適用する必要性が低いと判定し、当該フローチャートを終了する。ただし、性別や年齢層によって完全に一方向変形処理の適用から外すのではなく、後述するように、性別や年齢層に応じて一方向変形処理の際の変形の度合い(補正値)を変更するとしてもよい。
【0028】
S500では、体型推定部230は、S400で除外条件に該当しないと判定された対象画像において、顔領域を含む人物の体型に対応した体型領域を推定し設定する。体型領域の推定方法は種々考えられるが、一例として本実施形態では、顔や体における特徴部分の幅を抽出し、当該抽出した幅に応じた縦横比とした矩形領域を、体型領域として対象画像内に設定する。例えば、体型推定部230は、顔領域を含む画像領域において顔の輪郭を抽出し、当該輪郭の顔の高さ方向における長さと、当該輪郭の頬位置での顔の高さ方向に直交する方向(顔の幅方向あるいは顔の左右方向)における長さ(頬の幅)とを求める。
【0029】
図6は、顔領域Fdを含む画像領域から抽出した輪郭FLの、顔の高さ方向の長さLhと、輪郭FLの頬位置での顔の幅方向の長さLwとを例示している。輪郭FLは、例えば、顔領域Fdを含む画像領域において肌色画素を抽出するとともに当該抽出した肌色画素が形成する領域の境界を特定することにより抽出したり、顔領域Fdの周辺において顔の輪郭に対応するエッジを検出すること等により抽出できる。また、長さLwを特定するための、顔の高さ方向における頬位置は、上記のように検出された左・右目領域と口領域との位置関係と、予め定められた人間の顔における目と頬と口との位置関係に基づいて推測できる。体型推定部230は、長さLhと長さLwとの比に応じて、体型領域の基となる標準矩形の縦横比を変更する。
【0030】
標準矩形とは、標準的な人間の体型(例えば、中肉中背の体型)の縦横比に対応するものとして予め内部メモリ120に格納された矩形である。体型推定部230は、長さLhに対する長さLwの比(Lw/Lh)が大きい(所定の基準値と比べて大きい)ほど、つまり頬が太った顔であるほど、標準矩形の縦の長さに対する横の長さを増加させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。また、体型推定部230は、上記比(Lw/Lh)が小さい(所定の基準比と比べて小さい)ほど、つまり頬が痩せた顔であるほど、標準矩形の縦の長さに対する横の長さを減少させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。
【0031】
図7は、対象画像TI内に推定された体型領域BAを例示している。体型推定部230は、上記のように顔の頬の幅に応じて決定した縦横比の矩形を、予め定められた顔領域Fdとの位置関係および大きさの関係に基づいて対象画像TI内に設定することにより、体型領域BAの推定を完了する。顔領域Fdと体型領域BAとの位置関係とは、例えば、体型領域BAの縦方向(体型領域の長辺方向)と平行な当該体型領域BAの中心線上の位置であって、かつ当該中心線の上端から所定割合の位置に顔領域Fdの重心位置を置くといった規則である。顔領域Fdと体型領域BAとの大きさの関係とは、例えば、体型領域BAの縦方向の長さを、顔領域Fdの顔の高さ方向の長さの所定倍にするといった規則である。
【0032】
体型推定部230は、人物の特徴部分として、頬以外にも、腰や肩の幅に応じて体型領域の矩形の縦横比を決定してもよい。この場合、体型推定部230は、対象画像内から顔領域を含む人物の肩幅(顔の幅方向と平行な方向における肩の幅)又は腰幅(顔の幅方向と平行な方向における腰の幅)を検出し、肩幅または腰幅が大きいほど(所定の基準幅と比べて大きいほど)、標準矩形の縦の長さに対する横の長さを増加させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。また、肩幅または腰幅が小さいほど(所定の基準幅と比べて小さいほど)、標準矩形の縦の長さに対する横の長さを減少させて標準矩形を変形させ、変形後の標準矩形の縦横比を体型領域の縦横比とする。なお、肩や腰といった体の特徴部分の幅は、対象領域からパターンマッチングなどによって人物の体を抽出し当該抽出した体における所定の位置関係に基づいて特定してもよいし、特開2006‐252025号公報や特開2008‐33654号公報に記載された特徴量の推定方向を用いて特定してもよい。
【0033】
S600では、補正値取得部240は、S500で推定された体型領域の縦横比を理想比に略一致させるための補正値であって、S700の一方向変形処理に用いられる補正値を取得する。理想比とは、本実施形態において理想とする体型の縦横比を意味し、市場調査やユーザの嗜好に合わせて予め設定され内部メモリ120に格納された数値である。ここで、理想比(縦:横)をH1:W1、S500で推定された体型領域の縦の長さ(画素数)、横の長さ(画素数)をそれぞれHp、Wp(図7参照)、補正後の体型領域の理想的な横の長さをWiとした場合、Wiは以下の式(1)によって表される。
Wi=W1・Hp/H1 …(1)
【0034】
また補正値Cは、以下の式(2)によって表される。
C={(Wi−Wp)/Wp}・k …(2)
kは、補正値Cを調整するための所定の係数であり、基本的には0<k<1である。係数kは、補正値Cが表す補正量(画像の変形量)が大きすぎて変形後の画像が破綻してしまう(画像が変わりすぎてユーザに違和感を与える)ことを防止するための数値である。ただし係数kは実質的に存在していなくてもよく、k=1であってもよい。補正値Cは、一方向変形処理において体型の略横方向に対して作用する補正値であり、補正値Cによって体型領域を補正(変形)することで、体型領域の縦横比を理想比に略一致させることができる。補正値Cが正の値(プラス)である場合には、プラスの変形(拡大)を意味し、補正値Cが負の値(マイナス)である場合には、マイナスの変形(圧縮)を意味する。なお、本実施形態における理想比は、標準的な人間の体型の縦横比よりも若干細身な(スリムな)体型の縦横比を想定しているため、補正値Cは負の値となる場合が多い。
【0035】
補正値取得部240は、係数kを、S300で推定された年齢層および性別に応じて変更してもよい。つまり、S300で推定された年齢層および性別の情報をS400における除外判定に用いるのではなく、S600の補正値取得の際に用いても良い。例えば、補正値取得部240は、推定された性別が男性であったり、推定された年齢層が子供以下である場合には、推定された性別が女性でありかつ推定された年齢層が青年以上である場合に用いる係数kよりも小さい(より0に近い)係数kを採用する。その結果、対象画像内の人物が男性であったり子供以下の年齢層である場合には、画像の変形量が抑制される。また、補正値取得部240は、上記WiとWpとの差がある程度小さい場合(Wi−Wpが、0±所定値の範囲に収まる場合)には、S600において補正値Cを算出しないとしてもよい。つまり、上記推定された体型領域の縦横比が理想比に近い場合には、あえて画像変形を行なう必要が無い。そのため、演算処理量低減の観点から、WiとWpとの差がある程度小さい場合には補正量Cを算出せず、補正量Cを算出しなかった場合にはS700に進むことなく当該フローチャートを終了させる。
【0036】
人物の撮影の仕方によっては、上半身だけを撮影する場合等もあり、対象画像に人物の全身が写されているとは限らない。つまり、上記のように顔の頬の幅等に応じて決定した縦横比の矩形を顔領域Fdとの位置関係および大きさの関係に基づいて対象画像TIに設定することにより推定された体型領域の下端部分が、対象画像からはみ出る場合もある。この場合は、一度推定された体型領域のうち対象画像内に収まった分が体型領域として扱われる。しかし、このような対象画像内に収まった分の体型領域の縦横比と上記理想比とを単純に比較することはできない。そこで、体型推定部230は、上記のように一度推定された体型領域の一部が対象画像からはみ出る場合には、体型領域のうち何割が対象画像内に収まっているかを計算する。そして、補正値取得部240は、当該計算された対象画像内に収まっている体型領域の割合に応じて上記理想比に変更を施し、変更後の理想比と対象画像内に収まっている分の体型領域の縦横比とを用いて補正値Cを算出するとしてもよい。
【0037】
S700では、一方向変形部250は、対象画像について一方向変形処理を実行する。一方向変形部250は、一方向変形処理においては、S600で取得された補正値Cに応じて少なくとも体型領域を含む対象画像の領域を、変形方向に変形させる。この場合、一方向変形部250は、変形方向に直交する分割線によって対象画像を、補正値Cを適用する第一領域と、それ以外の第二領域とに分ける。
【0038】
図8Aは、対象画像TIを第一領域ACと第二領域AEとに分けた様子を例示し、図8Bは、対象画像TIに対して一方向変形処理を施した後の画像(変形済画像TI’と呼ぶ。)を例示している。一方向変形部250は、変形方向における体型領域BAの幅に基づいて変形方向における第一領域ACの幅を決定し(例えば、少なくとも変形方向における体型領域BAの幅よりも大きい幅を、変形方向における第一領域ACの幅とする)、当該決定した幅を有する領域であって体型領域BAを含む(基本的には中央に含む)領域を、変形方向に直交する分割線によって特定し、当該特定した領域を第一領域ACとして設定する。従って、第一領域ACには体型領域BAの全体が含まれる。また、一方向変形部250は、対象領域TIにおける第一領域AC以外の領域(第一領域ACの両側の領域)を第二領域AEとして設定する。
【0039】
図9は、S700の一方向変形処理をフローチャートにより示し、図10は、変形方向が横方向である場合の、一方向変形処理を模式的に示している。図10Aは、一方向変形処理が施される前の対象画像における画素の配置を示し、図10Bは、対応画素数テーブル410の一例を示し、図10Cは、一方向変形処理が施された画像(変形済画像)の画素の配置を示している。S710では、一方向変形部250は、変形方向が対象画像の横方向と縦方向とのいずれであるかを判断する。変形方向が横方向である場合はS720に進み、変形方向が縦方向である場合はS750に進む。本実施形態では対象画像の横方向が変形方向であるため、S720に進む。S720では、一方向変形部250は、対象画像において第一領域と第二領域とを設定する。第一領域と第二領域との設定方法は既に述べたため、ここでは説明を省略する。
【0040】
S730では、一方向変形部250は、対応画素数テーブル410を生成する。対応画素数テーブル410とは、対象画像の変形方向における各画素に対応する変形済画像の画素数を表すテーブルである。一方向変形部250は、第一領域および第二領域それぞれに対する補正値に基づいて、変形済画像の画素数(対応画素数)を決定する。そして、決定された対応画素数を対応画素数テーブル410に格納することにより、対応画素数テーブル410が生成される。一方向変形部250は、対応画素数テーブル410の生成にあたっては、補正値Cを第一領域に適用する倍率(変形倍率)に変換する。例えば、補正値Cが「−0.4」という数値である場合、これは元の大きさから当該元の大きさの「0.4」倍分を引くという意味であるため、「0.6」という数値(倍率)に変換する。逆に、補正値Cが「0.4」という数値である場合、これは元の大きさに当該元の大きさの「0.4」倍分を足すという意味であるため、「1.4」という数値(倍率)に変換する。ここでは、補正値Cは負の値であるとし、一方向変形部250は、第一領域に適用する倍率として「0.6」という値を得たものとする。
【0041】
また、一方向変形部250は、第二領域に適用する倍率も設定する。例えば、プリンタ100は、第一領域に適用する倍率と第二領域に適用する倍率との対応関係を規定したテーブルを予め内部メモリ120等に有しておき、一方向変形部250は、当該テーブルと上記のように取得した第一領域に適用する倍率とを参照して、第二領域に適用する倍率を求めることができる。あるいは、一方向変形部250は、対象画像における第一・第二領域の大きさの比率および第一領域の倍率に応じて、対象画像のサイズと変形済画像のサイズとを略一致させるような、第二領域の倍率を求めてもよい。本実施形態では、一方向変形部250は、第二領域に適用する倍率として「1.2」という値を得たものとする。一方向変形部250は、例えば、上記のように得た倍率の小数部についてハーフトーン処理による二値化を行って0と1との配列パターンを決定し、配列パターンの0または1の値に倍率の整数部を加えることによって、対象画像の画素毎の対応画素数を決定することができる。一方向変形部250は、対応画素数テーブル410の生成に当っては、ハーフトーン処理としては、ディザや誤差拡散などの周知の方法を用いることができる。また、倍率の小数部ごとに予め格納された配列パターンを用いてもよい。
【0042】
図10Aでは、説明をごく簡単にするために、画像の横方向にそれぞれ5画素からなる領域D,E,Fが存在し、領域Dおよび領域Fが第二領域であり、領域Eが第一領域である場合を想定して説明を行なう。ここでは、領域Dの倍率が1.2倍、領域Eの倍率が0.6倍、領域Fの倍率が1.2倍であるため、対応画素数テーブル(図10B)においては、領域Dの5画素Px1〜Px5のうち、4つの画素Px1,Px2,Px3,Px5については、対応画素数が1に設定され、残り1つの画素Px4については、対応画素数が2に設定されている。また、領域Eの5画素Px6〜Px10のうち、3つの画素Px6,Px8,Px10については、対応画素数が1に設定され、残り2つの画素Px7,Px9については、対応画素数が0に設定されている。また、領域Fの5画素Px11〜Px15のうち、4つの画素Px11,Px12,Px13,Px15については、対応画素数が1に設定され、残り1つの画素Px14については、対応画素数が2に設定されている。
【0043】
S740では、一方向変形部250は、対応画素数テーブル410を参照し、内部メモリ120内のバッファ領域を用いて対象画像の1ライン分の画素の再配置を行なう。ラインとは、一方向変形処理における処理単位であり、長さが対象画像の横方向における全画素数分で、幅が1画素分の画像領域をいう。図10の例では、図10Cに示すように、領域Dを構成する画素として、順次、対応画素数が1の画素Px1,Px2,Px3が1つずつ配置され、次に対応画素数が2の画素Px4が2つ配置され、次に対応画素数が1の画素Px5が1つ配置される。次いで、領域Eを構成する画素として、対応画素数が1の画素Px6,Px8,Px10が順に1つずつ配置され、次に、領域Fを構成する画素として、対応画素数が1の画素Px11,Px12,Px13が1つずつ配置され、対応画素数が2の画素Px14が2つ配置され、対応画素数が1の画素Px15が1つ配置される。このような1ライン分の画素の再配置を全ラインについて行なうことにより、対象画像の第二領域はそれぞれ1.2倍に拡大され、第一領域は0.6倍に圧縮される。
【0044】
S750では、一方向変形処部250は、対象画像の全てのラインについて、画素の再配置が完了したか否かを判断する。全てのラインについて画素の再配置が完了している場合、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、画素の再配置が完了していない場合、処理はS740に戻され、全てのラインについて画素の再配置が完了するまで、S740,S750が繰り返し実行される。一方向変形部250は、S760においては、対象画像の縦方向と直交する分割線よって対象画像を第一領域と第二領域とに分け、S770では、S730と同様に第一領域、第二領域の各倍率を用いて対応画素数テーブル410を生成する。変形方向が縦方向の場合、対象画像の縦方向に並ぶ各画素(縦方向に並ぶ各ライン)についての対応画素数を規定した対応画素数テーブル410が生成される。対応画素数の決定方法はS730と同様であるので説明を省略する。
【0045】
S780において、一方向変形部250は、対応画素数テーブルを参照して、上記バッファ領域に設けられた変形済画像の格納領域に、対象画像のラインを配置する。変形方向が横方向である場合には、画素単位でその画素に対応する対応画素数(0や1や2等)に応じた再配置を行なうが、変形方向が縦方向である場合には、ライン単位で、そのラインに対応する対応画素数に応じた配置を行なう。具体的には、上記バッファ領域の変形済画像の格納領域に、バッファ領域に格納された対象画像の1ラインを、当該1ラインに対応する対応画素数分のラインとして追加する。S790では、一方向変形部250は、対象画像の全てのラインを対象としてS780の処理を完了したか否かを判断し、完了している場合は、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、完了していない場合は、処理はS780に戻され、対象画像の全てのラインを対象としてS780が行なわれるまで、S780,S790が繰り返し実行される。
【0046】
S700の一方向変形処理により、体型領域を含む第一領域は、補正値Cに応じて変形方向に変形(圧縮)され、第二領域も変形方向に変形(第一領域が圧縮される場合には拡大)される。つまり図8Bに例示したように、第一領域ACは、第一領域AC’へと変形(圧縮)され、第二領域AEは第二領域AE’へと変形(拡大)され、変形済画像TI’中の人物P1の体型は、その縦横比が理想比にほぼ一致したものとなる(多くの場合、変形前の体型よりも変形後の方が全体的にスリムになる)。このように本実施形態によれば、ユーザが対象画像を指定するだけで、プリンタ100は、対象画像内の顔画像を含む人物の体型に対応した矩形(体型領域)を対象画像内に推定し、体型領域の縦横比を理想比に略一致させるための補正値を算出し、対象領域を変形方向において変形させる際に、体型領域を含む第一領域に対して、補正値に応じた変形を施す。そのため、ユーザは、人物画像が自動的に理想的な体型に補正された画像を得ることができる。また、実行される画像変形処理は、対象画像の一つの方向(変形方向)に沿った圧縮および拡大だけであるため、演算処理量が非常に少なく、プリンタ100の負担も少ない。
【0047】
3.他の実施例
上記では、S600で用いる理想比は、市場調査やユーザの嗜好に合った体型すなわちある程度ユーザの願望が介入した体型(例えば、スリムな体型)を表した比率であるとして説明を行なった。しかし理想比は上記のようなものに限られない。人は、ある被写体を直接見たときの印象とは異なる印象を、同じ被写体が撮影された画像から受けることがあり、特に被写体を画像として見たときの印象の方が、実物を見たときの印象よりも「太め」に見えることがある。そこで当該他の実施例(以下、当該実施例と呼ぶ)では「理想比」とは、人間が両目で被写体を直接視認したときに知覚する被写体の縦横比であるとする。当該実施例では、S600において、体型領域の縦横比を、人が被写体(人物)を直接視認したときに知覚する体型の縦横比に略一致させるための補正値C´を算出する場合について説明する。なおS600以外の内容は、基本的にこれまでに説明した通りである。
【0048】
図11は、当該実施例において、補正値取得部240がS600において実行する処理をフローチャートにより示している。S610では、補正値取得部240は、被写体(人物P1)の撮影距離Sdおよび顔の幅Wfを取得する。撮影距離Sdとは、デジタルスチルカメラによる対象画像の撮影時における、当該デジタルスチルカメラ(詳細には、デジタルスチルカメラのレンズの主点)から人物P1までの距離を意味する。撮影距離Sdは、デジタルスチルカメラによって撮影の際に算出あるいは取得され、対象画像を表した画像データとともに、付属情報の一種としてデジタルスチルカメラ内のメモリカードMCに記録される。従って、プリンタ100側では、そのようなメモリカードMCがカードスロット172に挿入されている状況において、メモリカードMCに対象画像の画像データとともに記録されている付属情報の中から撮影距離Sdを取得することができる。また顔の幅Wfとは、人間の標準的な顔の幅(顔の現実の大きさ)を示した値(例えば200mm)であり、予め内部メモリ120等に格納されている。顔の幅Wfの値は、幼児、子供、青年以上というように各年齢層に応じて異なる値が格納されていてもよく、補正値取得部240は、S300で推定された年齢層に対応する顔の幅Wfを取得するとしてもよい。
【0049】
S620では、補正値取得部240は、両眼距離DEを取得する。両眼距離DEとは、人間の標準的な両眼の間隔の値であり、例えば60mmといった数値である。両目距離DEも予め内部メモリ120に格納されている。両目距離DEも顔の幅Wfと同じように、各年齢層に応じて異なる値が格納されていてもよく、補正値取得部240は、S300で推定された年齢層に対応する両目距離DEを取得するとしてもよい。S630では、補正値取得部240は、S610で取得した情報(Sd,Wf)に基づいた幾何学的計算により、単眼を介して捉えられる対象画像中の人物の大きさ(単眼知覚サイズSMと呼ぶ)を算出する。単眼とはデジタルスチルカメラのレンズを意味する。S640では、補正値取得部240は、S610,S620で取得した情報(Sd,Wf,DE)に基づいた幾何学的計算により、人間の左右の眼によって知覚される対象画像中の人物の大きさ(両眼知覚サイズSBと呼ぶ)を算出する。
【0050】
図12は、単眼としてのレンズ502と、人間の左右の眼(右眼RE、左眼LE)と、被写体OB(人物の顔)と、仮想的な結像面S1との位置関係を上面から2次元にて表している。図12の中心軸であるY軸上には、レンズ502(レンズ502の主点)と、被写体OBの中心点Cが位置する。レンズ502と中心点Cとの距離はSdである。当該実施例では計算を容易とするために、被写体OBは球体であるとしている。被写体OBの半径rは、Wf/2である。右眼REと左眼LEとは、両者の中間点がレンズ502の主点に一致し、かつ互いにDEだけ離れた状態でレンズ502の両側に位置する。右眼RE、レンズ502、左眼LEの並びは、X軸に平行である。結像面S1は、X軸に平行な面であって、右眼RE、レンズ502、左眼LEが並ぶ面(観察面S2)を挟んで被写体OBとは反対側に在る。観察面S2と結像面S1との距離d1は特に問われない。補正値取得部240は、単眼知覚サイズSMおよび両眼知覚サイズSBの算出に際し、距離d1として、任意の値(距離)を固定値として設定すればよい。
【0051】
このような位置関係において、S630では、補正値取得部240は、レンズ502の位置において交差する被写体OBの2本の接線を引く。当該2本の接線と被写体ОBとの2つの接点AS,BSの間の範囲が、レンズ502を介して捉えられる被写体ОBの横幅となる。従って補正値取得部240は、当該2本の接線と結像面S1との2つの交点間のX軸方向の範囲の距離を、単眼知覚サイズSMとして算出する。S640では、補正値取得部240は、まず両眼知覚サイズSBを得るための前段階の処理として、右眼REの位置において交差する被写体OBの2本の接線と、左眼LEの位置において交差する被写体OBの2本の接線とをそれぞれ引く。右眼REの位置において交差する2本の接線と被写体OBとの2つの接点AR,BRの間の範囲が、右眼REによって知覚される被写体OBの横幅となる。そこで、補正値取得部240は、右眼REの位置において交差する2本の接線と結像面S1との2つの交点間のX軸方向の範囲の距離を、右眼知覚範囲SRとして算出する。同様に、左眼LEの位置において交差する2本の接線と被写体OBとの2つの接点AL,BLの間の範囲が、左眼LEによって知覚される被写体ОBの横幅となる。そこで、補正値取得部240は、左眼LEの位置において交差する2本の接線と結像面S1との2つの交点間のX軸方向の範囲の距離を、左眼知覚範囲SLとして算出する。
【0052】
このように右眼RE、左眼LEによってそれぞれ知覚される被写体の範囲には、左右方向にずれが生じている。ここで、人間が両目で物を見るときには、右眼REで知覚される範囲の像と左眼LEで知覚される範囲の像とを重ね合わせたときに共通する範囲を、その物の大きさと認識すると推測される。そこで当該実施例では、上記算出した左眼知覚範囲SLと右眼知覚範囲SRとを重ね合わせたときに共通する範囲の長さを、両眼知覚サイズSBとする。当該重ね合わせの処理には、被写体ОB上の注視点PGの位置を利用する。注視点PGとは、人間が被写体ОBを見たときに最も注目していると推定される点であり、当該実施例では、右眼RE、左眼LEの両方から見える被写体ОB上の点であって、右眼REからの距離と左眼LEからの距離とが等しい点としている。補正値取得部240は、注視点PGおよび右眼REを通過する直線と結像面S1との交点位置を、注視点PGに対応する右眼知覚範囲SR上の点PGrとし、注視点PGおよび左眼LEを通過する直線と結像面S1との交点位置を、注視点PGに対応する左眼知覚範囲SL上の点PGlとする。そして、点PGrと点PGlとが一致するように、左眼知覚範囲SLと右眼知覚範囲SRとを重ね合わせる。
【0053】
図13では、点PGrと点PGlとが一致するように左眼知覚範囲SLと右眼知覚範囲SRとを重ね合わせた状態を示しており、このとき両範囲SL,SRに共通する範囲のX軸方向の距離を、補正値取得部240は、両眼知覚サイズSBと認定する。このように求められる両眼知覚サイズSBは、S630で求めた単眼知覚サイズSMより短い。従って、人は、レンズ502を介して撮像された被写体OBの画像を観察すると、被写体OBを直接観察したときと比較して横幅が広い(太った)印象を受けると言える。S650では、補正値取得部240は、単眼知覚サイズSMに対する両眼知覚サイズSBの比率(SB/SM)を算出し、当該比率(SB/SM)を補正値C´とする(C´=SB/SM)。このように当該実施例では、被写体OBの注視点PGを基準とした右眼知覚範囲SRと左眼知覚範囲SLとの重ね合わせによって得られる共通範囲の長さを両眼知覚サイズSBとしている。そのため、単眼知覚サイズSMに対する両眼知覚サイズSBの比率は、被写体距離Sdで単眼レンズで撮像された被写体OBの画像(人物を含む対象画像)を観察したときに人が知覚する被写体ОB(人物)の横方向の幅に対する、被写体距離Sdで人が被写体OB(人物)を直接観察したときに知覚する被写体ОB(人物)の横方向の比率を正確に表していると言える。
【0054】
S600で補正値C´が算出された後、一方向変形部250が対象画像について一方向変形処理(S700)を実行する。このとき一方向変形部250は、体型領域を含む第一領域に対して補正値C´を適用した変形処理を行なう。つまり補正値C´は倍率そのものであるため、補正値C´を適用した変形処理が第一領域に対して行なわれることにより、第一領域は変形方向において補正値C´が表す倍率で圧縮される。一方向変形部250は、第二領域については所定の倍率によって拡大する。このように当該実施例によれば、S600で、単眼知覚サイズSMに対する両眼知覚サイズSBの比率(SB/SM)を補正値C´として求め、補正値C´によって対象画像における第一領域を変形方向に圧縮する。そのため、第一領域に含まれる人物画像の横幅も圧縮され、その結果、当該人物画像の縦横比は、ユーザが当該人物を直接に視認したときに知覚する体型の縦横比に略一致したものとなる。当該実施例では、ユーザが被写体を現実に見たときに受ける印象と同様の印象をユーザが画像を見たときにも与えることを目的としているため、上記推定された対象画像中の人物の年齢層や性別によって一方向変形処理を行なわないとすることはなく、また、単眼知覚サイズSMに対する両眼知覚サイズSBの比率として算出された補正値C´に対して、さらに年齢層や性別に応じた変更を加えることはしない。
【図面の簡単な説明】
【0055】
【図1】画像処理装置としてのプリンタの構成を概略的に示す説明図である。
【図2】画像補正処理の一例を示したフローチャートである。
【図3】UIの一例を示した説明図である。
【図4】対象画像から顔領域が検出された様子を例示した説明図である。
【図5】対象画像における除外領域を例示した説明図である。
【図6】顔の輪郭の幅を検出する様子を例示した説明図である。
【図7】対象画像において推定された体型領域を例示した説明図である。
【図8】一方向変形処理によって対象画像が変形される様子を例示した図である。
【図9】一方向変形処理の詳細を示したフローチャートである。
【図10】一方向変形処理を模式的に示した説明図である。
【図11】補正値取得処理の詳細を示したフローチャートである。
【図12】単眼知覚サイズおよび両眼知覚サイズの算出の様子を示す説明図である。
【図13】単眼知覚サイズおよび両眼知覚サイズを示す説明図である。
【符号の説明】
【0056】
100…プリンタ、110…CPU、120…内部メモリ、140…操作部、150…表示部、160…プリンタエンジン、170…カードインタフェース、172…カードスロット、200…画像補正処理部、210…顔領域検出部、220…除外判定部、230…体型推定部、240…補正値取得部、250…一方向変形部、260…年齢性別推定部、310…表示処理部、320…印刷処理部、410…対応画素数テーブル
【特許請求の範囲】
【請求項1】
顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定部と、
上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得部と、
上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形部とを備えることを特徴とする画像処理装置。
【請求項2】
上記体型推定部は、上記対象画像から上記人物の特徴部分の幅を抽出し、当該抽出した特徴部分の幅に基づいて上記体型領域を推定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記体型推定部は、上記特徴部分として人物の頬または肩または腰の幅を抽出することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
上記人物の年齢層および又は性別を推定する年齢性別推定部を備え、上記補正値取得部は、上記推定された年齢層および又は性別に応じて、上記取得した補正値を変更することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項5】
上記補正値取得部は、上記体型領域の縦横比を、観察者の両目によって上記人物を直接に視認したときに知覚される当該人物の体型の縦横比に略一致させるための補正値を取得することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項6】
上記対象画像における顔画像の向きと傾きと位置とが当該向きと傾きと位置とに対してそれぞれ設定された許容範囲内である場合に、上記体型領域の推定と補正値の取得と領域の変形とを実行することを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定工程と、
上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得工程と、
上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形工程とを備えることを特徴とする画像処理方法。
【請求項8】
顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定機能と、
上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得機能と、
上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項1】
顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定部と、
上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得部と、
上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形部とを備えることを特徴とする画像処理装置。
【請求項2】
上記体型推定部は、上記対象画像から上記人物の特徴部分の幅を抽出し、当該抽出した特徴部分の幅に基づいて上記体型領域を推定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記体型推定部は、上記特徴部分として人物の頬または肩または腰の幅を抽出することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
上記人物の年齢層および又は性別を推定する年齢性別推定部を備え、上記補正値取得部は、上記推定された年齢層および又は性別に応じて、上記取得した補正値を変更することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項5】
上記補正値取得部は、上記体型領域の縦横比を、観察者の両目によって上記人物を直接に視認したときに知覚される当該人物の体型の縦横比に略一致させるための補正値を取得することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項6】
上記対象画像における顔画像の向きと傾きと位置とが当該向きと傾きと位置とに対してそれぞれ設定された許容範囲内である場合に、上記体型領域の推定と補正値の取得と領域の変形とを実行することを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定工程と、
上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得工程と、
上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形工程とを備えることを特徴とする画像処理方法。
【請求項8】
顔画像が含まれる対象画像において、当該顔画像を含む人物の体型に対応した体型領域を推定する体型推定機能と、
上記体型領域の縦横比を理想比に略一致させるための補正値を取得する補正値取得機能と、
上記補正値に応じて、少なくとも上記体型領域を含む上記対象画像の領域を、特定方向に変形させる画像変形機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−56726(P2010−56726A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−217923(P2008−217923)
【出願日】平成20年8月27日(2008.8.27)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願日】平成20年8月27日(2008.8.27)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]