説明

対象画像における顔の画像に対応する顔領域の設定

【課題】顔領域設定処理の精度と処理時間との調整を図ることを可能とする。
【解決手段】画像処理装置は、画像データに基づき対象画像における顔の画像に対応する領域を原顔領域として検出する顔領域検出部と、原顔領域における顔の器官の画像に対応する領域を器官領域として検出する器官領域検出部と、対象画像における顔の画像に対応する決定顔領域を設定する顔領域決定部と、を備える。顔領域決定部は、原顔領域を決定顔領域として設定する第1の処理モードと、器官領域の検出結果に基づき原顔領域を調整した領域を決定顔領域として設定する第2の処理モードと、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象画像における顔の画像に対応する顔領域の設定に関する。
【背景技術】
【0002】
画像データの表す画像中から部分画像を順次切り出し、切り出した部分画像が顔に対応する画像であるか否かを判定することにより、顔の画像に対応する顔領域を設定する技術が知られている(例えば特許文献1ないし4)。
【0003】
【特許文献1】特開2007−241477号公報
【特許文献2】特開2007−94633号公報
【特許文献3】特開2007−193404号公報
【特許文献4】特開2007−193740号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
対象画像における顔領域の設定においては、顔領域の設定精度と処理時間との調整を図ることが望まれていた。
【0005】
本発明は、上記の課題を解決するためになされたものであり、顔領域設定処理の精度と処理時間との調整を図ることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0007】
[適用例1]画像処理装置であって、
画像データに基づき対象画像における顔の画像に対応する領域を原顔領域として検出する顔領域検出部と、
前記原顔領域における顔の器官の画像に対応する領域を器官領域として検出する器官領域検出部と、
前記対象画像における顔の画像に対応する決定顔領域を設定する顔領域決定部であって、前記原顔領域を前記決定顔領域として設定する第1の処理モードと、前記器官領域の検出結果に基づき前記原顔領域を調整した領域を前記決定顔領域として設定する第2の処理モードと、を有する顔領域決定部と、を備える、画像処理装置。
【0008】
この画像処理装置では、第1の処理モードでは、画像データに基づき検出された原顔領域が決定顔領域として設定され、第2の処理モードでは、画像データに基づき原顔領域が検出され、原顔領域における器官領域が検出され、器官領域の検出結果に基づき原顔領域を調整した領域が決定顔領域として設定される。そのため、この画像処理装置では、顔領域設定処理の精度と処理時間との調整を図ることができる。
【0009】
[適用例2]適用例1に記載の画像処理装置であって、さらに、
前記決定顔領域を設定する際の精度を設定する精度設定部を備え、
前記顔領域決定部は、前記精度が所定の範囲の場合には前記第1の処理モードで前記決定顔領域を設定し、前記精度が前記所定の範囲より高い場合には前記第2の処理モードで前記決定顔領域を設定する、画像処理装置。
【0010】
この画像処理装置では、設定された精度に応じて決定顔領域を設定する際の処理モードが選択されるため、設定された精度に応じて顔領域設定処理の精度と処理時間との調整を図ることができる。
【0011】
[適用例3]適用例1または適用例2に記載の画像処理装置であって、
前記精度設定部は、前記決定顔領域の用途を特定する用途情報を取得し、前記用途情報に基づき前記精度を設定する、画像処理装置。
【0012】
この画像処理装置では、決定顔領域の用途に応じて顔領域設定処理の精度と処理時間との調整を図ることができる。
【0013】
[適用例4]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、
前記顔領域決定部は、前記第2のモードにおいて、検出された複数の前記器官領域間の位置関係に基づき前記原顔領域の傾きを調整することにより前記決定顔領域を設定する、画像処理装置。
【0014】
この画像処理装置では、顔領域設定処理の傾きに関する精度と処理時間との調整を図ることができる。
【0015】
[適用例5]適用例1に記載の画像処理装置であって、さらに、
前記対象画像から検出すべき顔の画像の傾きを設定する検出傾き設定部と、
検出された複数の前記器官領域間の位置関係に基づき前記対象画像に表された顔の画像の傾きを推定する顔傾き推定部と、
前記検出すべき顔の画像の傾きと前記推定された顔の画像の傾きとに基づき、前記対象画像に表された顔の画像が検出すべき顔の画像であるか否かを判定する検出判定部と、を備える、画像処理装置。
【0016】
この画像処理装置では、対象画像から検出すべき顔の画像の傾きが設定され、検出された複数の器官領域間の位置関係に基づき対象画像に表された顔の画像の傾きが推定され、検出すべき顔の画像の傾きと推定された顔の画像の傾きとに基づき対象画像に表された顔の画像が検出すべき顔の画像であるか否かが判定されるため、対象画像に表された顔の画像が検出すべき顔の画像であるか否かの判定を精度良く実行することができる。
【0017】
[適用例6]適用例1ないし適用例5のいずれかに記載の画像処理装置であって、
前記顔領域検出部は、
前記対象画像上における画像領域である判定対象画像領域を設定する判定対象設定部と、
前記判定対象画像領域が所定の複数の離散した傾きの内の1つを有する顔の画像に対応する画像領域であることの確からしさを表す評価値を算出するための評価用データを記憶する記憶部と、
前記評価用データと前記判定対象画像領域に対応する画像データとに基づき前記評価値を算出する評価値算出部と、
前記評価値に基づき、前記判定対象画像領域が顔の画像に対応する画像領域であるか否かを判定する判定部と、
顔の画像に対応する画像領域であると判定された前記判定対象画像領域の位置およびサイズに基づき前記原顔領域を設定する領域設定部と、を含む、画像処理装置。
【0018】
この画像処理装置では、顔領域設定処理の傾きに関する精度と処理時間との調整を図ることができる。
【0019】
[適用例7]適用例1ないし適用例6のいずれかに記載の画像処理装置であって、
前記顔の器官の種類は、右目と左目と口との少なくとも1つである、画像処理装置。
【0020】
この画像処理装置では、右目と左目と口との少なくとも1つに対応する器官領域の検出を利用することにより、顔領域設定処理の精度と処理時間との調整を図ることができる。
【0021】
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法および装置、顔領域検出方法および装置、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【0022】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
A−1.画像処理装置の構成:
A−2.顔領域検出処理:
B.第2実施例:
C.変形例:
【0023】
A.第1実施例:
A−1.画像処理装置の構成:
図1は、本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。本実施例のプリンタ100は、メモリカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したインクジェット式カラープリンタである。プリンタ100は、プリンタ100の各部を制御するCPU110と、ROMやRAMによって構成された内部メモリ120と、ボタンやタッチパネルにより構成された操作部140と、液晶ディスプレイにより構成された表示部150と、プリンタエンジン160と、カードインターフェース(カードI/F)170と、を備えている。プリンタ100は、さらに、他の機器(例えばデジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインターフェースを備えているとしてもよい。プリンタ100の各構成要素は、バスを介して互いに接続されている。
【0024】
プリンタエンジン160は、印刷データに基づき印刷を行う印刷機構である。カードインターフェース170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインターフェースである。なお、本実施例では、メモリカードMCに画像データを含む画像ファイルが格納されている。
【0025】
内部メモリ120には、画像処理部200と、表示処理部310と、印刷処理部320と、が格納されている。画像処理部200は、所定のオペレーティングシステムの下で、後述する顔領域検出処理を実行するためのコンピュータプログラムである。表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージ、画像等を表示させるディスプレイドライバである。印刷処理部320は、画像データから印刷データを生成し、プリンタエンジン160を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU110は、内部メモリ120から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
【0026】
画像処理部200は、プログラムモジュールとして、領域検出部210と、精度設定部220と、情報付加部230と、を含んでいる。領域検出部210は、対象画像データの表す対象画像における所定の種類の被写体の画像(顔の画像および顔の器官の画像)に対応する画像領域の検出を行う。領域検出部210は、判定対象設定部211と、評価値算出部212と、判定部213と、領域設定部214と、顔領域決定部216と、を含んでいる。顔領域決定部216は顔傾き推定部217を含んでいる。これら各部の機能については、後述の顔領域検出処理の説明において詳述する。なお、後述するように、領域検出部210は、顔の画像に対応する原顔領域の検出および顔の器官の画像に対応する器官領域の検出を行うため、本発明における顔領域検出部および器官領域検出部として機能する。また、顔傾き推定部217および顔領域決定部216は、本発明における顔領域決定部として機能する。
【0027】
精度設定部220は、対象画像における顔の画像に対応する顔領域を決定する際の精度を設定する。情報付加部230は、画像データを含む画像ファイルに所定の情報(例えば顔領域および器官領域の位置を示す情報)を付加する。
【0028】
内部メモリ120には、また、予め設定された複数の顔学習データFLDおよび複数の顔器官学習データOLDが格納されている。顔学習データFLDおよび顔器官学習データOLDは、領域検出部210による所定の画像領域の検出に用いられる。図2は、顔学習データFLDおよび顔器官学習データOLDの種類を示す説明図である。図2(a)ないし図2(f)には、顔学習データFLDまたは顔器官学習データOLDの種類と、当該種類の顔学習データFLDまたは顔器官学習データOLDを用いて検出される画像領域の例と、を示している。
【0029】
顔学習データFLDの内容については後述の顔領域検出処理の説明において詳述するが、本実施例の顔学習データFLDは、顔傾きに対応付けられて設定されている。ここで、顔傾きとは、対象画像面内(インプレーン)における顔の画像の傾き(回転角度)を意味している。また、本実施例では、画像や画像領域等の傾きを、画像や画像領域等の上方向が対象画像の上方向と一致した状態を基準状態(傾き=0度)とした場合における基準状態からの時計回りの回転角度で表すものとしている。例えば、顔傾きは、対象画像の上下方向に沿って顔の画像が位置している状態(頭頂が上方向を向き顎が下方向を向いた状態)を基準状態(顔傾き=0度)とした場合における基準状態からの顔の画像の時計回りの回転角度で表される。
【0030】
内部メモリ120には、図2(a)および図2(b)に示す2つの顔学習データFLD、すなわち、図2(a)に示す0度の顔傾きに対応する顔学習データFLDと、図2(b)に示す30度の顔傾きに対応する顔学習データFLDと、が格納されている。後述するように、ある顔傾きに対応する顔学習データFLDは、当該顔傾きを中心に顔傾きの値がプラスマイナス15度の範囲の顔の画像を検出可能なように学習によって設定されている。また、人物の顔は実質的に左右対称である。そのため、0度の顔傾きに対応する顔学習データFLD(図2(a))と30度の顔傾きに対応する顔学習データFLD(図2(b))との2つが予め準備されれば、これら2つの顔学習データFLDを90度単位で回転させることにより、あらゆる顔傾きの顔の画像を検出可能な顔学習データFLDを得ることができる。
【0031】
顔器官学習データOLDは、顔の器官の種類と器官傾きとの組み合わせに対応付けられて設定されている。本実施例では、顔の器官の種類として、目(右目および左目)と口とが設定されている。また、器官傾きとは、上述の顔傾きと同様に、画像面内(インプレーン)における顔の器官の画像の傾き(回転角度)を意味している。器官傾きは、顔傾きと同様に、対象画像の上下方向に沿って顔の器官の画像が位置している状態を基準状態(器官傾き=0度)とした場合における基準状態からの顔の器官の画像の時計回りの回転角度で表される。
【0032】
内部メモリ120には、図2(c)ないし図2(f)に示す4つの顔器官学習データOLD、すなわち、図2(c)に示す目と0度の器官傾きとの組み合わせに対応する顔器官学習データOLDと、図2(d)に示す目と30度の器官傾きとの組み合わせに対応する顔器官学習データOLDと、図2(e)に示す口と0度の器官傾きとの組み合わせに対応する顔器官学習データOLDと、図2(f)に示す口と30度の器官傾きとの組み合わせに対応する顔器官学習データOLDと、が格納されている。目と口とは別の種類の被写体であるため、顔器官学習データOLDは被写体の種類と被写体の傾きとの組み合わせに対応して設定されていると表現できる。
【0033】
顔学習データFLDと同様に、ある器官傾きに対応する顔器官学習データOLDは、当該器官傾きを中心に器官傾きの値がプラスマイナス15度の範囲の器官の画像を検出可能なように学習によって設定されている。また、人物の目や口は実質的に左右対称である。そのため、目については、0度の器官傾きに対応する顔器官学習データOLD(図2(c))と30度の器官傾きに対応する顔器官学習データOLD(図2(d))との2つが予め準備されれば、これら2つの顔器官学習データOLDを90度単位で回転させることにより、あらゆる器官傾きの目の画像を検出可能な顔器官学習データOLDを得ることができる。口についても同様に、0度の器官傾きに対応する顔器官学習データOLD(図2(e))と30度の器官傾きに対応する顔器官学習データOLDであることを(図2(f))との2つが予め準備されれば、あらゆる器官傾きの口の画像を検出可能な顔器官学習データOLDを得ることができる。なお、本実施例では、右目と左目とは同じ種類の被写体であるとし、右目の画像に対応する右目領域と左目の画像に対応する左目領域とを共通の顔器官学習データOLDを用いて検出するものとしているが、右目と左目とは異なる種類の被写体であるとして、右目領域検出用と左目領域検出用とにそれぞれ専用の顔器官学習データOLDを準備するものとしてもよい。
【0034】
A−2.顔領域検出処理:
図3は、第1実施例における顔領域検出処理の流れを示すフローチャートである。本実施例における顔領域検出処理は、画像データの表す画像における顔の画像に対応する顔領域を決定する処理である。
【0035】
ステップS110では、精度設定部220(図1)が、対象画像における顔の画像に対応する顔領域を決定する際に要求される精度を設定する。本実施例において、顔領域を決定する際の精度とは、決定される顔領域(後述の決定顔領域FAf)の傾き(以下「顔領域傾き」とも呼ぶ)と、対象画像に表された顔の画像の実際の傾き(以下「実傾き」とも呼ぶ)と、の差異の平均値の程度を意味している。すなわち、精度が高いとは、顔領域傾きと実傾きとの差異の平均値が小さいことを意味し、精度が低いとは、顔領域傾きと実傾きとの差異の平均値が大きいことを意味する。なお、本実施例では、画像領域(例えば顔領域)や画像領域を規定するウィンドウ(後述)は方向を特定する情報を含んでおり、上述の顔領域の傾きとは、顔領域の上方向が対象画像の上方向と一致した状態を基準状態(傾き=0度)とした場合における基準状態からの時計回りの回転角度を意味している。
【0036】
精度設定部220は、決定される顔領域の用途を特定する用途情報を取得して、用途情報に基づき精度を設定する。図4は、決定される顔領域の用途の一例を示す説明図である。図4には、画像処理部200(図1)が提供する画像処理メニューの一覧が表示部150に表示されている様子が示されている。本実施例では、画像処理メニューとして、肌色補正と顔変形との2つが設定されており、決定される顔領域は、肌色補正と顔変形との2つの画像処理のために用いられる。
【0037】
肌色補正は、顔領域または顔領域に基づき設定される画像領域内の人物の肌の色を好ましい肌色に補正する画像処理であり、顔領域傾きと実傾きとの差異が処理結果に及ぼす影響は比較的小さい。そのため、肌色補正を行う際には、顔領域を決定する際の精度が低いこと、すなわち顔領域傾きと実傾きとの差異の平均値が大きいことは、比較的許容されやすい。従って、ユーザにより操作部140を介して肌色補正が選択された場合には、精度設定部220は顔領域の用途が肌色補正であるとの用途情報を取得し、精度として比較的低い値を設定する。
【0038】
一方、顔変形は、顔領域または顔領域に基づき設定される画像領域内の画像を変形する画像処理である。ここで、人物の顔は実質的に左右対称であるため、顔領域傾きと実傾きとの差異が大きいと、顔変形処理の結果が不自然なものとなる可能性がある。そのため、顔変形を行う際には、顔領域を決定する際の精度が高いこと、すなわち顔領域傾きと実傾きとの差異の平均値が小さいことが望まれる。従って、ユーザにより操作部140を介して顔変形が選択された場合には、精度設定部220は顔領域の用途が顔変形であるとの用途情報を取得し、精度として比較的高い値を設定する。
【0039】
ステップS120(図3)では、画像処理部200(図1)が、顔領域検出処理の対象となる画像を表す画像データを取得する。本実施例のプリンタ100では、カードスロット172にメモリカードMCが挿入されると、メモリカードMCに格納された画像ファイルのサムネイル画像が表示部150に表示される。ユーザは、表示されたサムネイル画像を参照しつつ、操作部140を介して処理の対象となる1つまたは複数の画像を選択する。画像処理部200は、選択された1つまたは複数の画像に対応する画像データを含む画像ファイルをメモリカードMCより取得して内部メモリ120の所定の領域に格納する。なお、取得された画像データを原画像データと呼び、原画像データの表す画像を原画像OImgと呼ぶものとする。
【0040】
ステップS130(図3)では、領域検出部210(図1)が、原顔領域検出処理を行う。原顔領域検出処理は、顔の画像に対応する画像領域を原顔領域FAoとして検出する処理である。図5は、原顔領域検出処理の流れを示すフローチャートである。また、図6は、原顔領域検出処理の概要を示す説明図である。図6の最上段には原画像OImgの一例を示している。
【0041】
原顔領域検出処理(図5)におけるステップS310では、領域検出部210(図1)が、原画像OImgを表す原画像データから顔検出用画像FDImgを表す顔検出用画像データを生成する。本実施例では、図6に示すように、顔検出用画像FDImgは横320画素×縦240画素のサイズの画像である。領域検出部210は、必要により原画像データの解像度変換を行うことにより、顔検出用画像FDImgを表す顔検出用画像データを生成する。なお、本実施例における顔検出用画像FDImgは本発明における対象画像に相当し、顔検出用画像データは本発明における対象画像データに相当する。
【0042】
ステップS320(図5)では、判定対象設定部211(図1)が、判定対象画像領域JIA(後述)の設定に用いるウィンドウSWのサイズを初期値に設定する。ステップS330では、判定対象設定部211が、ウィンドウSWを顔検出用画像FDImg上の初期位置に配置する。ステップS340では、判定対象設定部211が、顔検出用画像FDImg上に配置されたウィンドウSWにより規定される画像領域を、顔の画像に対応する画像領域であるか否かの判定(以下「顔判定」とも呼ぶ)の対象となる判定対象画像領域JIAに設定する。図6の中段には、顔検出用画像FDImg上に初期値のサイズのウィンドウSWが初期位置に配置され、ウィンドウSWにより規定される画像領域が判定対象画像領域JIAに設定される様子を示している。本実施例では、後述するように、正方形形状のウィンドウSWのサイズおよび位置が変更されつつ判定対象画像領域JIAの設定が順に行われるが、ウィンドウSWのサイズの初期値は最大サイズである横240画素×縦240画素であり、ウィンドウSWの初期位置はウィンドウSWの左上の頂点が顔検出用画像FDImgの左上の頂点に重なるような位置である。また、ウィンドウSWは、その傾きが0度の状態で配置される。なお、上述したように、ウィンドウSWの傾きとは、ウィンドウSWの上方向が対象画像(顔検出用画像FDImg)の上方向と一致した状態を基準状態(傾き=0度)とした場合における基準状態からの時計回りの回転角度を意味している。
【0043】
ステップS350(図5)では、評価値算出部212(図1)が、判定対象画像領域JIAについて、判定対象画像領域JIAに対応する画像データ基づき、顔判定に用いる累計評価値Tvを算出する。なお、本実施例では、顔判定は予め設定された特定顔傾き毎に実行される。すなわち、特定顔傾き毎に、判定対象画像領域JIAが当該特定顔傾き分だけ傾いた顔の画像に対応する画像領域であるか否かの判定が行われる。そのため、累計評価値Tvも特定顔傾き毎に算出される。ここで、特定顔傾きとは、予め設定された顔傾きの値を意味している。本実施例では、傾きを0度から30度ずつ増加させた計12個の顔傾き(0度、30度、60度、・・・、330度)が、特定顔傾きとして設定されている。
【0044】
図7は、顔判定に用いる累計評価値Tvの算出方法の概要を示す説明図である。本実施例では、累計評価値Tvの算出にN個のフィルタ(フィルタ1〜フィルタN)が用いられる。各フィルタの外形はウィンドウSWと同じアスペクト比を有しており(すなわち正方形形状であり)、各フィルタにはプラス領域paとマイナス領域maとが設定されている。評価値算出部212は、判定対象画像領域JIAにフィルタX(X=1,2,・・・,N)を順に適用して評価値vX(すなわちv1〜vN)を算出する。具体的には、評価値vXは、フィルタXのプラス領域paに対応する判定対象画像領域JIA上の領域内に位置する画素の輝度値の合計から、マイナス領域maに対応する判定対象画像領域JIA上の領域内に位置する画素の輝度値の合計を差し引いた値である。
【0045】
算出された評価値vXは、各評価値vXに対応して設定された閾値thX(すなわちth1〜thN)と比較される。本実施例では、評価値vXが閾値thX以上である場合には、フィルタXに関しては判定対象画像領域JIAが顔の画像に対応する画像領域であると判定され、フィルタXの出力値として値「1」が設定される。一方、評価値vXが閾値thXより小さい場合には、フィルタXに関しては判定対象画像領域JIAが顔の画像に対応する画像領域ではないと判定され、フィルタXの出力値として値「0」が設定される。各フィルタXには重み係数WeX(すなわちWe1〜WeN)が設定されており、すべてのフィルタについての出力値と重み係数WeXとの積の合計が、累計評価値Tvとして算出される。
【0046】
なお、顔判定に用いられるフィルタXの態様や閾値thX、重み係数WeX、後述の閾値THは、上記12個の特定顔傾きのそれぞれについて、顔学習データFLD(図2(a)および図2(b)参照)として予め設定されている。本実施例における顔学習データFLDは、判定対象画像領域JIAが顔の画像に対応する画像領域であることの確からしさを表す評価値を算出するためのデータであるため、本発明における評価用データに相当する。
【0047】
顔学習データFLDは、サンプル画像を用いた学習によって生成される。図8は、学習に用いられるサンプル画像の一例を示す説明図である。学習には、顔の画像に対応した画像であることが予めわかっている複数の顔サンプル画像によって構成された顔サンプル画像群と、顔の画像に対応した画像ではないことが予めわかっている複数の非顔サンプル画像によって構成された非顔サンプル画像群と、が用いられる。
【0048】
学習による顔学習データFLDの生成は特定顔傾き毎に実行されるため、図8に示すように、顔サンプル画像群は、12個の特定顔傾きのそれぞれに対応したものが準備される。例えば0度の特定顔傾きについての顔学習データFLDの生成は、0度の特定顔傾きに対応した顔サンプル画像群と非顔サンプル画像群とを用いて実行され、30度の特定顔傾きについての顔学習データFLDの生成は、30度の特定顔傾きに対応した顔サンプル画像群と非顔サンプル画像群とを用いて実行される。
【0049】
各特定顔傾きに対応する顔サンプル画像群は、画像サイズに対する顔の画像の大きさの比が所定の値の範囲内であると共に顔の画像の傾きが特定顔傾きに等しい複数の顔サンプル画像(以下「基本顔サンプル画像FIo」とも呼ぶ)を含む。また、顔サンプル画像群は、少なくとも1つの基本顔サンプル画像FIoについて、基本顔サンプル画像FIoを1.2倍から0.8倍までの範囲の所定の倍率で拡大および縮小した画像(例えば図8における画像FIaおよびFIb)や、基本顔サンプル画像FIoの顔傾きをプラスマイナス15度の範囲で変化させた画像(例えば図8における画像FIcおよびFId)をも含む。
【0050】
サンプル画像を用いた学習は、例えばニューラルネットワークを用いた方法や、ブースティング(例えばアダブースティング)を用いた方法、サポートベクターマシーンを用いた方法等により実行される。例えば学習がニューラルネットワークを用いた方法により実行される場合には、各フィルタX(すなわちフィルタ1〜フィルタN、図7参照)について、ある特定顔傾きに対応した顔サンプル画像群(図8参照)と非顔サンプル画像群とに含まれるすべてのサンプル画像を用いて評価値vX(すなわちv1〜vN)が算出され、所定の顔検出率を達成する閾値thX(すなわちth1〜thN)が設定される。ここで、顔検出率とは、顔サンプル画像群を構成する顔サンプル画像の総数に対する、評価値vXによる閾値判定によって顔の画像に対応する画像であると判定される顔サンプル画像の数の割合を意味している。
【0051】
次に、各フィルタXに設定された重み係数WeX(すなわちWe1〜WeN)が初期値に設定され、顔サンプル画像群および非顔サンプル画像群の中から選択された1つのサンプル画像についての累計評価値Tvが算出される。後述するように、顔判定においては、ある画像について算出された累計評価値Tvが所定の閾値TH以上の場合には、当該画像は顔の画像に対応する画像であると判定される。学習においては、選択されたサンプル画像(顔サンプル画像または非顔サンプル画像)について算出された累計評価値Tvによる閾値判定結果の正誤に基づき、各フィルタXに設定された重み係数WeXの値が修正される。以降、サンプル画像の選択と、選択されたサンプル画像について算出された累計評価値Tvによる閾値判定、および判定結果の正誤に基づく重み係数WeXの値の修正が、顔サンプル画像群および非顔サンプル画像群に含まれるすべてのサンプル画像について繰り返し実行される。以上の処理が特定顔傾き毎に実行されることにより、特定顔傾き毎の顔学習データFLDが生成される。
【0052】
判定対象画像領域JIAについて特定顔傾き毎に累計評価値Tvが算出されると(図5のステップS350)、判定部213(図1)は、累計評価値Tvを特定顔傾き毎に設定された閾値THと比較する(ステップS360)。ある特定顔傾きについて累計評価値Tvが閾値TH以上である場合には、領域検出部210が、判定対象画像領域JIAは当該特定顔傾き分だけ傾いた顔の画像に対応する画像領域であるとして、判定対象画像領域JIAの位置、すなわち現在設定されているウィンドウSWの座標と、当該特定顔傾きと、を記憶する(ステップS370)。一方、いずれの特定顔傾きについても累計評価値Tvが閾値THより小さい場合には、ステップS370の処理はスキップされる。
【0053】
ステップS380(図5)では、領域検出部210(図1)が、現在設定されているサイズのウィンドウSWにより顔検出用画像FDImg全体がスキャンされたか否かを判定する。未だ顔検出用画像FDImg全体がスキャンされていないと判定された場合には、判定対象設定部211(図1)が、ウィンドウSWを所定の方向に所定の移動量だけ移動する(ステップS390)。図6の下段には、ウィンドウSWが移動した様子を示している。本実施例では、ステップS390において、ウィンドウSWがウィンドウSWの水平方向の大きさの2割分の移動量で右方向に移動するものとしている。また、ウィンドウSWがさらに右方向には移動できない位置に配置されている場合には、ステップS390において、ウィンドウSWが顔検出用画像FDImgの左端まで戻ると共に、ウィンドウSWの垂直方向の大きさの2割分の移動量で下方向に移動するものとしている。ウィンドウSWがさらに下方向には移動できない位置に配置されている場合には、顔検出用画像FDImg全体がスキャンされたこととなる。ウィンドウSWの移動(ステップS390)の後には、移動後のウィンドウSWについて、上述のステップS340以降の処理が実行される。
【0054】
ステップS380(図5)において現在設定されているサイズのウィンドウSWにより顔検出用画像FDImg全体がスキャンされたと判定された場合には、ウィンドウSWの所定のサイズがすべて使用されたか否かが判定される(ステップS400)。本実施例では、ウィンドウSWのサイズとして、初期値(最大サイズ)である横240画素×縦240画素の他に、横213画素×縦213画素、横178画素×縦178画素、横149画素×縦149画素、横124画素×縦124画素、横103画素×縦103画素、横86画素×縦86画素、横72画素×縦72画素、横60画素×縦60画素、横50画素×縦50画素、横41画素×縦41画素、横35画素×縦35画素、横29画素×縦29画素、横24画素×縦24画素、横20画素×縦20画素(最小サイズ)、の合計15個のサイズが設定されている。未だ使用されていないウィンドウSWのサイズがあると判定された場合には、判定対象設定部211(図1)が、ウィンドウSWのサイズを現在設定されているサイズの次に小さいサイズに変更する(ステップS410)。すなわち、ウィンドウSWのサイズは、最初に最大サイズに設定され、その後、順に小さいサイズに変更されていく。ウィンドウSWのサイズの変更(ステップS410)の後には、変更後のサイズのウィンドウSWについて、上述のステップS330以降の処理が実行される。
【0055】
ステップS400(図5)においてウィンドウSWの所定のサイズがすべて使用されたと判定された場合には、領域設定部214(図1)が、原顔領域設定処理を実行する(ステップS420)。図9および図10は、原顔領域設定処理の概要を示す説明図である。領域設定部214は、図5のステップS360において累計評価値Tvが閾値TH以上であると判定されステップS370において記憶されたウィンドウSWの座標(すなわちウィンドウSWの位置およびサイズ)と特定顔傾きとに基づき、原顔領域FAoを設定する。具体的には、特定顔傾きが0度である場合には、ウィンドウSWにより規定される画像領域(すなわち判定対象画像領域JIA)が、そのまま原顔領域FAoとして設定される。一方、特定顔傾きが0度以外である場合には、ウィンドウSWの傾きを特定顔傾きに一致させ(すなわちウィンドウSWを所定の点(例えばウィンドウSWの重心)を中心として特定顔傾き分だけ時計回りに回転させ)、傾きを変化させた後のウィンドウSWにより規定される画像領域が原顔領域FAoとして設定される。例えば図9(a)に示すように、30度の特定顔傾きについて累計評価値Tvが閾値TH以上であると判定された場合には、図9(b)に示すように、ウィンドウSWの傾きを30度に変化させ、傾き変化後のウィンドウSWにより規定される画像領域が原顔領域FAoとして設定される。
【0056】
また、領域設定部214は、ステップS370において、ある特定顔傾きについて互いに一部が重複する複数のウィンドウSWが記憶された場合には、各ウィンドウSWにおける所定の点(例えばウィンドウSWの重心)の座標の平均の座標を重心とし、各ウィンドウSWのサイズの平均のサイズを有する1つの新たなウィンドウ(以下「平均ウィンドウAW」とも呼ぶ)を設定する。例えば図10(a)に示すように、互いに一部が重複する4つのウィンドウSW(SW1〜SW4)が記憶された場合には、図10(b)に示すように、4つのウィンドウSWのそれぞれの重心の座標の平均の座標を重心とし、4つのウィンドウSWのそれぞれのサイズの平均のサイズを有する1つの平均ウィンドウAWが定義される。このとき、上述したのと同様に、特定顔傾きが0度である場合には、平均ウィンドウAWにより規定される画像領域がそのまま原顔領域FAoとして設定される。一方、特定顔傾きが0度以外である場合には、平均ウィンドウAWの傾きを特定顔傾きに一致させ(すなわち平均ウィンドウAWを所定の点(例えば平均ウィンドウAWの重心)を中心として特定顔傾き分だけ時計回りに回転させ)、傾きを変化させた後の平均ウィンドウAWにより規定される画像領域が原顔領域FAoとして設定される(図10(c)参照)。
【0057】
なお、図9に示したように、他のウィンドウSWと重複しない1つのウィンドウSWが記憶された場合にも、図10に示した互いに一部が重複する複数のウィンドウSWが記憶された場合と同様に、1つのウィンドウSW自身が平均ウィンドウAWであると解釈することも可能である。
【0058】
本実施例では、学習の際に用いられる顔サンプル画像群(図8参照)に、基本顔サンプル画像FIoを1.2倍から0.8倍までの範囲の所定の倍率で拡大および縮小した画像(例えば図8における画像FIaおよびFIb)が含まれているため、ウィンドウSWの大きさに対する顔の画像の大きさが基本顔サンプル画像FIoと比べてわずかに大きかったり小さかったりする場合にも、原顔領域FAoが検出されうる。従って、本実施例では、ウィンドウSWのサイズとして上述した15個の離散的なサイズのみが設定されているが、あらゆる大きさの顔の画像について原顔領域FAoが検出されうる。同様に、本実施例では、学習の際に用いられる顔サンプル画像群に、基本顔サンプル画像FIoの顔傾きをプラスマイナス15度の範囲で変化させた画像(例えば図8における画像FIcおよびFId)が含まれているため、ウィンドウSWに対する顔の画像の傾きが基本顔サンプル画像FIoとはわずかに異なっている場合にも、原顔領域FAoが検出されうる。従って、本実施例では、特定顔傾きとして上述した12個の離散的な傾き値のみが設定されているが、あらゆる傾きの顔の画像について原顔領域FAoが検出されうる。
【0059】
原顔領域検出処理(図3のステップS130)において、原顔領域FAoが検出されなかった場合には(ステップS140:No)、顔領域検出処理は終了する。一方、少なくとも1つの原顔領域FAoが検出された場合には(ステップS140:Yes)、画像処理部200(図1)が、ステップS110で設定された精度に基づき、以降の実行すべき処理を判定する。すなわち、顔領域の用途が肌色補正であり、設定された精度が比較的低い値である場合には(ステップS150:No)、処理はステップS160に進む。
【0060】
ステップS160(図3)では、顔領域決定部216(図1)が、決定顔領域FAfを設定する。決定顔領域FAfは、顔領域検出処理の最終的な検出結果として設定される顔領域である。ステップS160においては、顔領域決定部216は、原顔領域FAoを決定顔領域FAfとして設定する。上述したように、原顔領域FAoは、平均ウィンドウAWの傾きを特定顔傾きに一致するように変化させた後の平均ウィンドウAWにより規定される画像領域である。従って、原顔領域FAoを決定顔領域FAfとして設定すると、決定顔領域FAfの傾き(顔領域傾き)は、特定顔傾きとして設定された12個の離散的な傾き(0度、30度、60度、・・・、330度)のいずれか1つとなる。そのため、決定顔領域FAfの傾き(顔領域傾き)と、対象画像に表された顔の画像の実際の傾き(実傾き)と、の差異は、プラスマイナス15度の範囲の値となる。従って、この場合には、顔領域傾きと実傾きとの差異の平均値は比較的大きくなり、顔領域を決定する際の精度は比較的低いこととなる。なお、ステップS160における決定顔領域FAfの設定方法は、本発明における第1の処理モードにおける決定顔領域FAfの設定方法に相当する。
【0061】
一方、顔領域の用途が顔変形であり、設定された精度が比較的高い値である場合には(図3のステップS150:Yes)、処理はステップS170に進む。ステップS170では、領域検出部210(図1)が、検出された原顔領域FAoの1つを選択する。
【0062】
ステップS180(図3)では、領域検出部210(図1)が、器官領域検出処理を行う。器官領域検出処理は、選択された原顔領域FAoにおける顔の器官の画像に対応する画像領域を器官領域として検出する処理である。上述したように、本実施例では、顔の器官の種類として、右目と左目と口との3種類が設定されており、器官領域検出処理では、右目の画像に対応する右目領域EA(r)と、左目の画像に対応する左目領域EA(l)と、口の画像に対応する口領域MAと、の検出が行われる。
【0063】
図11は、器官領域検出処理の流れを示すフローチャートである。また、図12は、器官領域検出処理の概要を示す説明図である。図12の最上段には、顔検出処理に用いられた顔検出用画像FDImg(図6参照)の一例を示している。
【0064】
顔検出用画像FDImgからの器官領域の検出は、上述した原顔領域FAoの検出と同様に行われる。すなわち、図12に示すように、矩形形状のウィンドウSWがそのサイズおよび位置が変更されつつ顔検出用画像FDImg上に配置され(図11のステップS520,S530,S580〜S610)、配置されたウィンドウSWにより規定される画像領域が顔の器官の画像に対応する器官領域であるか否かの判定(以下「器官判定」とも呼ぶ)の対象となる判定対象画像領域JIAとして設定される(図11のステップS540)。なお、ウィンドウSWの取り得るサイズおよび位置は、選択された原顔領域FAoのサイズおよび位置に基づき決定される。例えば、ウィンドウSWの横方向の長さとして取り得る値は、原顔領域FAoの横方向の長さを所定数倍して得られる最大サイズから最小サイズまでの間の所定数段階の値に設定される。また、例えば、ウィンドウSWの取り得る位置は、ウィンドウSWの中心が原顔領域FAo内に位置するような範囲に設定される。また、ウィンドウSWは、その傾きが0度の状態(ウィンドウSWの上方向が顔検出用画像FDImgの上方向と一致した基準状態)で配置される。
【0065】
判定対象画像領域JIAが設定されると、顔器官学習データOLD(図1)を用いて、器官(右目、左目、口)毎に、器官判定に用いられる累計評価値Tvが算出される(図11のステップS550)。累計評価値Tvの算出や器官判定に用いられるフィルタXの態様や閾値thX、重み係数WeX、閾値TH(図7参照)は、顔器官学習データOLDに規定されている。なお、顔器官学習データOLDの設定のための学習は、顔学習データFLDの設定のための学習と同様に、顔の器官に対応する画像であることが予めわかっている複数の器官サンプル画像によって構成された器官サンプル画像群と、顔の器官に対応する画像ではないことが予めわかっている複数の非器官サンプル画像によって構成された非器官サンプル画像群と、を用いて実行される。
【0066】
なお、原顔領域検出処理(図5)においては、累計評価値Tvの算出および顔判定が、すべての特定顔傾きについて実行されるのに対し、器官領域検出処理(図11)では、累計評価値Tvの算出および器官判定が、選択された原顔領域FAoの特定顔傾きと同一の器官傾きに対応する顔器官学習データOLD(図2(c)ないし図2(f)参照)を用いて、原顔領域FAoの特定顔傾きと同一の器官傾きについてのみ実行される。ただし、器官領域検出処理においても、累計評価値Tvの算出および器官判定が、すべての特定器官傾きについて実行されるものとしてもよい。
【0067】
算出された累計評価値Tvが所定の閾値TH以上である場合には、判定対象画像領域JIAは顔の当該器官の画像に対応する画像領域であるとして、判定対象画像領域JIAの位置、すなわち現在設定されているウィンドウSWの座標が記憶される(図11のステップS570)。一方、累計評価値Tvが閾値THより小さい場合には、ステップS570の処理はスキップされる。
【0068】
ウィンドウSWの所定のサイズのすべてについて、ウィンドウSWの位置し得る範囲全体がスキャンされた後に、領域設定部214(図1)による器官領域設定処理が実行される(図11のステップS620)。図13は、器官領域設定処理の概要を示す説明図である。器官領域設定処理は、原顔領域設定処理(図9および10参照)と同様の処理である。領域設定部214は、図11のステップS560において累計評価値Tvが閾値TH以上であると判定され、ステップS570において記憶されたウィンドウSWの座標と、原顔領域FAoに対応する特定顔傾きと、に基づき、顔の器官の画像に対応する画像領域としての器官領域を設定する。具体的には、特定顔傾きが0度である場合には、ウィンドウSWにより規定される画像領域(すなわち判定対象画像領域JIA)が、そのまま器官領域として設定される。一方、特定顔傾きが0度以外である場合には、ウィンドウSWの傾きを特定顔傾きに一致させ(すなわちウィンドウSWを所定の点(例えばウィンドウSWの重心)を中心として特定顔傾き分だけ時計回りに回転させ)、傾きを変化させた後のウィンドウSWにより規定される画像領域が器官領域として設定される。例えば図13(a)に示すように、30度の特定顔傾きについて、右目に対応するウィンドウSW(er)と左目に対応するウィンドウSW(el)と口に対応するウィンドウSW(m)とにおいて累計評価値Tvが閾値TH以上であると判定された場合には、図13(b)に示すように、各ウィンドウSWの傾きを30度に変化させ、傾き変化後の各ウィンドウSWにより規定される画像領域が器官領域(右目領域EA(r)、左目領域EA(l)、口領域MA)として設定される。
【0069】
また、原顔領域設定処理と同様に、互いに一部が重複する複数のウィンドウSWが記憶された場合には、各ウィンドウSWにおける所定の点(例えばウィンドウSWの重心)の座標の平均の座標を重心とし、各ウィンドウSWのサイズの平均のサイズを有する1つの新たなウィンドウ(平均ウィンドウAW)が設定され、特定顔傾きが0度である場合には、平均ウィンドウAWにより規定される画像領域がそのまま器官領域として設定され、特定顔傾きが0度以外である場合には、平均ウィンドウAWの傾きを特定顔傾きに一致させ(すなわち平均ウィンドウAWを所定の点(例えば平均ウィンドウAWの重心)を中心として特定顔傾き分だけ時計回りに回転させ)、傾きを変化させた後の平均ウィンドウAWにより規定される画像領域が器官領域として設定される。
【0070】
器官領域検出処理(図3のステップS180)において器官領域が検出されなかった場合には(ステップS190:No)、ステップS170で選択された原顔領域FAoは真に顔の画像に対応する画像領域ではない画像領域が誤って原顔領域FAoとして検出されたと判定される(ステップS200)。この場合には、選択された原顔領域FAoに基づく決定顔領域FAfの設定(後述のステップS210)は実行されない。なお、本実施例において、器官領域が検出されなかった場合とは、3種類の器官に対応する器官領域(右目領域EA(r)と左目領域EA(l)と口領域MA)の少なくとも1つが検出されなかった場合を意味する。
【0071】
器官領域検出処理(図3のステップS180)において、3種類の器官に対応する器官領域(右目領域EA(r)と左目領域EA(l)と口領域MA)がすべて検出された場合には(ステップS190:Yes)、顔領域決定部216(図1)が、決定顔領域FAfを設定する(ステップS210)。図14は、決定顔領域FAfの設定方法を示す説明図である。まず、図14(a)に示すように、顔領域決定部216の顔傾き推定部217は、右目領域EA(r)の重心と左目領域EA(l)の重心とを結ぶ直線CLの傾きを算出し、対象画像に表された顔の画像の実際の傾き(実傾き)は算出された直線CLの傾きに等しいと推定する。すなわち、実傾きは、右目領域EA(r)と左目領域EA(l)との間の位置関係に基づき推定される。次に、図14(b)に示すように、顔領域決定部216は、原顔領域FAoを規定する平均ウィンドウAWの傾きを推定された実傾きと一致するように変化させ(すなわち平均ウィンドウAWを平均ウィンドウAWの重心を中心として推定された実傾き分だけ時計回りに回転させ)、傾き変化後の平均ウィンドウAWにより規定される画像領域を決定顔領域FAfとして設定する。このとき、決定顔領域FAfは、その外周の2辺が直線CLと平行な矩形の画像領域となる。
【0072】
ステップS210(図3)における決定顔領域FAfの設定では、設定された決定顔領域FAfの傾き(顔領域傾き)が、対象画像に表された顔の画像の実際の傾き(実傾き)の推定値と一致する。また、実傾きの推定値として取り得る値は離散値ではなく連続値である。そのため、この場合には、顔領域傾きと実傾きとの差異の平均値は比較的小さくなり、顔領域を決定する際の精度は比較的高いこととなる。なお、ステップS210における決定顔領域FAfの設定方法は、本発明における第2の処理モードにおける決定顔領域FAfの設定方法に相当する。
【0073】
ステップS220(図3)では、領域検出部210(図1)が、ステップS170において未だ選択されていない原顔領域FAoが存在するか否かを判定する。未だ選択されていない原顔領域FAoが存在すると判定された場合には(ステップS220:No)、ステップS170に戻って未選択の原顔領域FAoの1つが選択され、ステップS180以降の処理が実行される。一方、すべての原顔領域FAoが選択されたと判定された場合には(ステップS220:Yes)、処理はステップS230に進む。
【0074】
ステップS230(図3)では、情報付加部230(図1)が、設定された決定顔領域FAfの位置(座標)を示す情報を、原画像データを含む画像ファイルに付属情報として付加する。これにより、原画像OImgを表す原画像データと、原画像OImgにおける決定顔領域FAfの位置(座標)を示す情報と、が含まれた画像ファイルが生成される。なお、決定顔領域FAfの位置(座標)を示す情報に加えて、器官領域(右目領域EA(r)、左目領域EA(l)、口領域MA)の位置(座標)を示す情報やステップS110で設定された精度を示す情報が画像ファイルに付属情報として付加されるとしてもよい。
【0075】
以上説明したように、第1実施例のプリンタ100による顔領域検出処理では、画像データに基づき顔検出用画像FDImgにおける原顔領域FAoが検出され、ステップS110で設定された精度が比較的低い値である場合には、原顔領域FAoそのものが決定顔領域FAfとして設定される。このとき器官領域検出処理は実行されない。このときには、決定顔領域FAfの設定精度は比較的低くなるが、処理時間は比較的短くなる。一方、ステップS110で設定された精度が比較的高い値である場合には、原顔領域FAoにおける器官領域が検出され、器官領域の検出結果に基づき原顔領域FAoを調整した領域が決定顔領域FAfとして設定される。このときには、処理時間は比較的長くなるが、決定顔領域FAfの設定精度は比較的高くなる。そのため、本実施例では、決定顔領域FAfを設定する際の、設定精度と処理時間との調整を図ることができる。
【0076】
B.第2実施例:
図15は、本発明の第2実施例における画像処理装置としてのプリンタ100aの構成を概略的に示す説明図である。第2実施例のプリンタ100aは、画像処理部200の構成の点で、図1に示した第1実施例のプリンタ100と異なっている。すなわち、第2実施例のプリンタ100aは、精度設定部220(図1)を含まない代わりに、検出傾き設定部240と、検出判定部250と、を含んでいる。プリンタ100aのその他の構成は、図1に示した第1実施例のプリンタ100の構成と同じである。
【0077】
検出傾き設定部240は、対象画像から検出すべき顔の画像の傾きを設定する。検出判定部250は、設定された検出すべき顔の画像の傾きと、対象画像に表された顔の画像の実際の傾き(実傾き)の推定値とに基づき、対象画像に表された顔の画像が検出すべき顔の画像であるか否かを判定する。
【0078】
図16は、第2実施例における顔領域検出処理の流れを示すフローチャートである。第2実施例における顔領域検出処理は、図3に示した第1実施例における顔領域検出処理と同様に、画像データの表す画像における顔の画像に対応する顔領域を決定する処理である。
【0079】
ステップS112(図16)では、検出傾き設定部240(図1)が、対象画像から検出すべき顔の画像の傾き(以下「検出傾き範囲」とも呼ぶ)を設定する。検出傾き設定部240は、決定される顔領域の用途を特定する用途情報を取得して、用途情報に基づき検出傾き範囲を設定する。図17は、決定される顔領域の用途の一例を示す説明図である。図17には、画像処理部200(図1)が提供する画像処理メニューの一覧が表示部150に表示されている様子が示されている。本実施例では、画像処理メニューとして、証明写真検出が設定されており、決定される顔領域は証明写真検出の画像処理のために用いられる。
【0080】
証明写真検出は、証明写真に適した構図の写真画像を検出する処理である。証明写真に適した構図の写真画像とは、具体的には、対象画像における顔の画像の傾きが比較的小さい画像である。ユーザにより操作部140を介して証明写真検出が選択された場合には、検出傾き設定部240は顔領域の用途が証明写真検出であるとの用途情報を取得し、例えば0度から20度および340度から360度の傾きの範囲を検出傾き範囲として設定する。図18は、検出傾き範囲の一例を示す説明図である。
【0081】
第2実施例における顔領域検出処理(図16)のステップS120およびS130の処理内容は、第1実施例における顔領域検出処理(図3)のステップS120およびS130の処理内容と同じである。ただし、ステップS130の原顔検出処理(図5)における累計評価値Tvの算出(ステップS350)は、設定された検出傾き範囲をカバーする特定顔傾きについてのみ実行される。上述したように、特定顔傾きは、傾きを0度から30度ずつ増加させた計12個の顔傾き(0度、30度、60度、・・・、330度)であり、ある特定顔傾きに対応する顔学習データFLD(図1)は当該特定顔傾きを中心に顔傾きの値がプラスマイナス15度の範囲の顔の画像を検出可能なように設定されている。例えば、図18に示すように、0度の特定顔傾きに対応する顔学習データFLDは、0度を中心に顔傾きの値がプラスマイナス15度の範囲(図18において「R(0)」と示す)の顔の画像を検出可能である。同様に、30度の特定顔傾きに対応する顔学習データFLDは、30度を中心に顔傾きの値がプラスマイナス15度の範囲(図18において「R(30)」と示す)の顔の画像を検出可能であり、330度の特定顔傾きに対応する顔学習データFLDは、330度を中心に顔傾きの値がプラスマイナス15度の範囲(図18において「R(330)」と示す)の顔の画像を検出可能である。そのため、図18に示すように、0度から20度および340度から360度の傾きの範囲が検出傾き範囲として設定された場合には、累計評価値Tvの算出は、検出傾き範囲をカバーする特定顔傾きである0度、30度、330度の3つの特定顔傾きについてのみ実行される。
【0082】
第2実施例における顔領域検出処理(図16)では、第1実施例における顔領域検出処理(図3)と同様に、原顔領域検出処理(ステップS130)において原顔領域FAoが検出されなかった場合には(ステップS140:No)、顔領域検出処理は終了する。一方、少なくとも1つの原顔領域FAoが検出された場合には(ステップS140:Yes)、処理はステップS170に進む。ステップS170からS210までの処理内容は、第1実施例における顔領域検出処理(図3)における処理内容と同じである。
【0083】
ステップS212(図16)では、検出判定部250(図15)が、ステップS210で推定された顔の画像の実際の傾き(実傾き)(図14(a)参照)が、ステップS112で設定された検出傾き範囲内であるか否かを判定する。推定された実傾きが検出傾き範囲内であると判定された場合には(ステップS212:Yes)、検出判定部250は、対象画像に表された顔の画像が検出すべき顔の画像であると判定する。この場合には、情報付加部230(図15)が、設定された決定顔領域FAfの位置(座標)を示す情報を、原画像データを含む画像ファイルに付属情報として付加する(ステップS214)。一方、推定された実傾きが検出傾き範囲内ではないと判定された場合には(ステップS212:No)、検出判定部250は、対象画像に表された顔の画像が検出すべき顔の画像ではないと判定する。この場合には、ステップS214の処理はスキップされる。
【0084】
その後、ステップS170において未だ選択されていない原顔領域FAoが存在するか否かが判定され(ステップS220)、未だ選択されていない原顔領域FAoが存在すると判定された場合には(ステップS220:No)、処理はステップS170に戻り、すべての原顔領域FAoが選択されたと判定された場合には(ステップS220:Yes)、処理は終了する。
【0085】
以上説明したように、第2実施例のプリンタ100aによる顔領域検出処理では、対象画像から検出すべき顔の画像の傾きが設定され、検出された複数の器官領域間の位置関係に基づき対象画像に表された顔の画像の傾きが推定され、検出すべき顔の画像の傾きと推定された顔の画像の傾きとに基づき、対象画像に表された顔の画像が検出すべき顔の画像であるか否かが判定される。そのため、第2実施例のプリンタ100aによる顔領域検出処理では、対象画像に表された顔の画像が検出すべき顔の画像であるか否かの判定を精度良く実行することができる。
【0086】
C.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0087】
C1.変形例1:
上記各実施例では、精度は、決定顔領域FAfの傾き(顔領域傾き)と対象画像に表された顔の画像の実際の傾き(実傾き)との差異の平均値の程度を意味するものとしているが、精度は、決定顔領域FAfの位置および大きさと対象画像に表された顔の画像の実際の位置および大きさとの差異の平均値の程度をも意味するものとしてもよい。この場合に、精度として高い精度が設定されたときには、決定顔領域FAfの設定(図3のステップS210)において、器官領域の検出結果に基づき原顔領域FAoの位置および大きさが調整されてもよい。原顔領域FAoの位置の調整は、例えば、右目領域EA(r)の重心と左目領域EA(l)の重心とを結ぶ線分の中点と、決定顔領域FAfの横方向および縦方向の大きさを所定の比率で分割する点と、が一致するように、原顔領域FAoを平行移動することにより行われる。また、原顔領域FAoの大きさの調整は、例えば、決定顔領域FAfの横方向の大きさが、右目領域EA(r)の重心と左目領域EA(l)の重心とを結ぶ線分の長さの所定倍となり、決定顔領域FAfの縦方向の大きさが、右目領域EA(r)の重心と左目領域EA(l)の重心とを結ぶ線分と口領域MAの重心とを結ぶ線分の長さの所定倍となるように、原顔領域FAoを拡大または縮小することにより行われる。
【0088】
C2.変形例2:
上記各実施例における顔領域の用途(図4および図17参照)は、あくまで一例であり、顔領域の用途は他にも種々設定可能である。また、上記各実施例における顔領域の用途に応じた精度や検出傾き範囲は、あくまで一例であり、顔領域の用途に応じて精度や検出傾き範囲は種々変形可能である。
【0089】
また、上記第1実施例において、顔領域の用途の設定を介さずに、精度が直接設定されてもよい。また、上記第2実施例において、顔領域の用途の設定を介さずに、検出傾き範囲が直接設定されてもよい。
【0090】
また、上記第1実施例において、精度の設定が行われることなく、処理モードの選択、すなわち決定顔領域FAfの設定のために器官領域検出処理が実行されるか否かの選択が直接行われるとしてもよい。
【0091】
C3.変形例3:
上記各実施例では、器官領域検出処理(図3のステップS180)においていずれの器官検出用画像ODImgにおいても3種類の器官に対応する器官領域(右目領域EA(r)と左目領域EA(l)と口領域MA)の少なくとも1つが検出されなかった場合に、器官領域が検出されなかったと判定されるとしているが、3種類の器官領域の少なくとも1つが検出された場合には器官領域が検出されたと判定されるものとしてもよい。あるいは、口領域MAの検出結果に関わらず、顔傾きの推定に用いられる右目領域EA(r)と左目領域EA(l)の両者が検出された場合には器官領域が検出されたと判定され、右目領域EA(r)と左目領域EA(l)の少なくとも一方が検出されなかった場合には器官領域が検出されなかったと判定されるとしてもよい。
【0092】
なお、3種類の器官領域の少なくとも1つが検出されたときには器官領域が検出されたと判定されるとした場合、顔傾きの推定に右目領域EA(r)と左目領域EA(l)との一方または両方が利用できないことが考えられる。このような場合には、器官領域が検出された器官検出用画像ODImgの傾きを顔傾きと推定すればよい。
【0093】
C4.変形例4:
上記各実施例では、顔学習データFLDや顔器官学習データOLDが、正面向きの画像に対応するもののみが準備されているが、右向きや左向きに対応するものが準備され、右向きや左向きの顔の画像や顔の器官の画像に対応する顔領域や器官領域の検出が行われるとしてもよい。
【0094】
C5.変形例5:
上記各実施例における原顔領域検出処理(図5)や器官領域検出処理(図11)の態様はあくまで一例であり、種々変更可能である。例えば顔検出用画像FDImg(図6参照)のサイズは320画素×240画素に限られず、他のサイズであってもよいし、原画像OImgそのものを顔検出用画像FDImgとして用いることも可能である。また、使用されるウィンドウSWのサイズやウィンドウSWの移動方向および移動量(移動ピッチ)は上述したものに限られない。また、上記各実施例では、顔検出用画像FDImgのサイズが固定され、複数種類のサイズのウィンドウSWが顔検出用画像FDImg上に配置されることにより複数サイズの判定対象画像領域JIAが設定されているが、複数種類のサイズの顔検出用画像FDImgが生成され、固定サイズのウィンドウSWが顔検出用画像FDImg上に配置されることにより複数サイズの判定対象画像領域JIAが設定されるものとしてもよい。
【0095】
また、上記各実施例では、累計評価値Tvを閾値THと比較することにより顔判定および器官判定を行っているが(図7参照)、顔判定および器官判定を複数の判別器を用いた判別等の他の方法によって行ってもよい。顔判定および器官判定の方法に応じて、顔学習データFLDおよび顔器官学習データOLDの設定に用いられる学習方法も変更される。また、顔判定および器官判定は、必ずしも学習を用いた判別方法により行われる必要はなく、パターンマッチング等の他の方法により行われるとしてもよい。
【0096】
また、上記各実施例では、30度刻みの12種類の特定顔傾きが設定されているが、より多くの種類の特定顔傾きが設定されてもよいし、より少ない種類の特定顔傾きが設定されてもよい。また、必ずしも特定顔傾きが設定される必要はなく、0度の顔傾きについての顔判定が行われるとしてもよい。また、上記各実施例では、顔サンプル画像群に基本顔サンプル画像を拡大・縮小した画像や回転させた画像が含まれるとしているが、顔サンプル画像群に必ずしもこのような画像が含まれる必要はない。
【0097】
上記各実施例において、あるサイズのウィンドウSWにより規定される判定対象画像領域JIAについての顔判定(または器官判定)で顔の画像(または顔の器官の画像)に対応する画像領域であると判定された場合には、当該サイズより所定の比率以上小さいサイズのウィンドウSWを配置する場合には、顔の画像に対応する画像領域であると判定された判定対象画像領域JIAを避けて配置するものとしてもよい。このようにすれば、処理の高速化を図ることができる。
【0098】
上記各実施例では、メモリカードMCに格納された画像データが原画像データに設定されているが、原画像データはメモリカードMCに格納された画像データに限らず、例えばネットワークを介して取得された画像データであってもよい。
【0099】
上記各実施例では、顔の器官の種類として、右目と左目と口とが設定されており、器官領域として、右目領域EA(r)と左目領域EA(l)と口領域MAとの検出が行われるが、顔の器官の種類として顔のどの器官を設定するかは変更可能である。例えば、顔の器官の種類として、右目と左目と口とのいずれか1つまたは2つのみが設定されるとしてもよい。また、顔の器官の種類として、右目と左目と口とに加えて、または右目と左目と口との少なくとも1つに代わり、顔のその他の器官の種類(例えば鼻や眉)が設定され、器官領域としてこのような器官の画像に対応する領域が検出されるとしてもよい。
【0100】
上記各実施例では、原顔領域FAoおよび器官領域は矩形の領域であるが、原顔領域FAoおよび器官領域は矩形以外の形状の領域であってもよい。
【0101】
上記各実施例では、画像処理装置としてのプリンタ100による顔領域検出処理を説明したが、処理の一部または全部がパーソナルコンピュータやデジタルスチルカメラ、デジタルビデオカメラ等の他の種類の画像処理装置により実行されるものとしてもよい。また、プリンタ100はインクジェットプリンタに限らず、他の方式のプリンタ、例えばレーザプリンタや昇華型プリンタであるとしてもよい。
【0102】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0103】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【0104】
【図1】本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。
【図2】顔学習データFLDおよび顔器官学習データOLDの種類を示す説明図である。
【図3】第1実施例における顔領域検出処理の流れを示すフローチャートである。
【図4】決定される顔領域の用途の一例を示す説明図である。
【図5】原顔領域検出処理の流れを示すフローチャートである。
【図6】原顔領域検出処理の概要を示す説明図である。
【図7】顔判定に用いる累計評価値Tvの算出方法の概要を示す説明図である。
【図8】学習に用いられるサンプル画像の一例を示す説明図である。
【図9】原顔領域設定処理の概要を示す説明図である。
【図10】原顔領域設定処理の概要を示す説明図である。
【図11】器官領域検出処理の流れを示すフローチャートである。
【図12】器官領域検出処理の概要を示す説明図である。
【図13】器官領域設定処理の概要を示す説明図である。
【図14】決定顔領域FAfの設定方法を示す説明図である。
【図15】本発明の第2実施例における画像処理装置としてのプリンタ100aの構成を概略的に示す説明図である。
【図16】第2実施例における顔領域検出処理の流れを示すフローチャートである。
【図17】決定される顔領域の用途の一例を示す説明図である。
【図18】検出傾き範囲の一例を示す説明図である。
【符号の説明】
【0105】
100…プリンタ
110…CPU
120…内部メモリ
140…操作部
150…表示部
160…プリンタエンジン
170…カードインターフェース
172…カードスロット
200…画像処理部
210…領域検出部
211…判定対象設定部
212…評価値算出部
213…判定部
214…領域設定部
216…顔領域決定部
217…顔傾き推定部
220…精度設定部
230…情報付加部
240…検出傾き設定部
250…検出判定部
310…表示処理部
320…印刷処理部

【特許請求の範囲】
【請求項1】
画像処理装置であって、
画像データに基づき対象画像における顔の画像に対応する領域を原顔領域として検出する顔領域検出部と、
前記原顔領域における顔の器官の画像に対応する領域を器官領域として検出する器官領域検出部と、
前記対象画像における顔の画像に対応する決定顔領域を設定する顔領域決定部であって、前記原顔領域を前記決定顔領域として設定する第1の処理モードと、前記器官領域の検出結果に基づき前記原顔領域を調整した領域を前記決定顔領域として設定する第2の処理モードと、を有する顔領域決定部と、を備える、画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、さらに、
前記決定顔領域を設定する際の精度を設定する精度設定部を備え、
前記顔領域決定部は、前記精度が所定の範囲の場合には前記第1の処理モードで前記決定顔領域を設定し、前記精度が前記所定の範囲より高い場合には前記第2の処理モードで前記決定顔領域を設定する、画像処理装置。
【請求項3】
請求項1または請求項2に記載の画像処理装置であって、
前記精度設定部は、前記決定顔領域の用途を特定する用途情報を取得し、前記用途情報に基づき前記精度を設定する、画像処理装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、
前記顔領域決定部は、前記第2のモードにおいて、検出された複数の前記器官領域間の位置関係に基づき前記原顔領域の傾きを調整することにより前記決定顔領域を設定する、画像処理装置。
【請求項5】
請求項1に記載の画像処理装置であって、さらに、
前記対象画像から検出すべき顔の画像の傾きを設定する検出傾き設定部と、
検出された複数の前記器官領域間の位置関係に基づき前記対象画像に表された顔の画像の傾きを推定する顔傾き推定部と、
前記検出すべき顔の画像の傾きと前記推定された顔の画像の傾きとに基づき、前記対象画像に表された顔の画像が検出すべき顔の画像であるか否かを判定する検出判定部と、を備える、画像処理装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載の画像処理装置であって、
前記顔領域検出部は、
前記対象画像上における画像領域である判定対象画像領域を設定する判定対象設定部と、
前記判定対象画像領域が所定の複数の離散した傾きの内の1つを有する顔の画像に対応する画像領域であることの確からしさを表す評価値を算出するための評価用データを記憶する記憶部と、
前記評価用データと前記判定対象画像領域に対応する画像データとに基づき前記評価値を算出する評価値算出部と、
前記評価値に基づき、前記判定対象画像領域が顔の画像に対応する画像領域であるか否かを判定する判定部と、
顔の画像に対応する画像領域であると判定された前記判定対象画像領域の位置およびサイズに基づき前記原顔領域を設定する領域設定部と、を含む、画像処理装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載の画像処理装置であって、
前記顔の器官の種類は、右目と左目と口との少なくとも1つである、画像処理装置。
【請求項8】
画像処理方法であって、
(a)画像データに基づき対象画像における顔の画像に対応する領域を原顔領域として検出する工程と、
(b)前記原顔領域における顔の器官の画像に対応する領域を器官領域として検出する工程と、
(c)前記対象画像における顔の画像に対応する決定顔領域を設定する工程であって、前記原顔領域を前記決定顔領域として設定する第1の処理モードと、前記器官領域の検出結果に基づき前記原顔領域を調整した領域を前記決定顔領域として設定する第2の処理モードと、を有する工程と、を備える、画像処理方法。
【請求項9】
画像処理のためのコンピュータプログラムであって、
画像データに基づき対象画像における顔の画像に対応する領域を原顔領域として検出する顔領域検出機能と、
前記原顔領域における顔の器官の画像に対応する領域を器官領域として検出する器官領域検出機能と、
前記対象画像における顔の画像に対応する決定顔領域を設定する顔領域決定機能であって、前記原顔領域を前記決定顔領域として設定する第1の処理モードと、前記器官領域の検出結果に基づき前記原顔領域を調整した領域を前記決定顔領域として設定する第2の処理モードと、を有する顔領域決定機能と、を、コンピュータに実現させる、コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2009−237614(P2009−237614A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−79228(P2008−79228)
【出願日】平成20年3月25日(2008.3.25)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】