(57)【要約】      （修正有）【課題】画像の中から人物の顔である顔画像をユーザーが満足できるような精度、時間で検出することができる顔検出装置、顔検出方法および顔検出プログラムを提供する。【解決手段】第ｎ回目の顔判定処理では（Ｓ３）、判定回数を重ねる度に高精度かつ長時間で顔判定が実行される。そして、第ｎ回目の顔判定処理が終了する度に（Ｓ３）、その結果がＬＣＤに表示される（Ｓ３１３，３１４）。よって、ユーザーは、その結果を見て、次の顔判定処理を実行するか否かを決定する。従って、次の顔判定処理を実行しない場合には短時間で、次の顔判定処理を実行する場合には高精度で顔画像が検出される。【選択図】図３
2008191723.tif 000002
【特許請求の範囲】
【請求項１】
画像の中から人物の顔である顔画像を検出する顔検出装置において、
前記画像の中の判定対象が前記顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行する顔判定手段と、
その顔判定手段による判定を所定回数実行する度に、その判定結果をユーザーに提示する提示手段と、
その提示手段によって提示された判定結果に基づいてユーザーが決定する次回の顔判定手段による判定を実行するか否かの決定に従って、次回の顔検出手段による判定を実行するか否かを判断する判断手段とを備えていることを特徴とする顔検出装置。
【請求項２】
ユーザーが要求する前記顔画像に対する補正内容を取得する取得手段と、
その取得手段によって取得した補正内容に従って、前記顔判定手段によって前記顔画像であると判定された前記判定対象を補正する補正手段とを備え、
前記提示手段は、前記判定結果として、少なくとも前記補正手段によって補正された前記判定対象を提示することを特徴とする請求項１に記載の顔検出装置。
【請求項３】
画像を構成する各画素の色相情報または明度情報を形成する情報形成手段と、
その情報形成手段に基づいて、前記画像の中から前記判定対象として人の肌の特性を有する画素を含む領域を抽出する肌色領域抽出手段とを備え、
前記顔判定手段は、
前記肌色領域抽出手段により抽出された領域を複数のブロックに分割する場合の一つのブロックの大きさが、判定回数に応じて小さくなるように設定する設定手段と、
その設定手段で設定される大きさのブロックで、前記肌色領域抽出手段により抽出された領域を分割し、その分割された各ブロックの色相情報または明度情報を、そのブロック内の画素の色相情報または明度情報に基づいて形成するブロック情報形成手段と、
そのブロック情報形成手段により形成されたブロックの色相情報または明度情報に基づいて、前記肌色領域抽出手段により抽出された領域内の画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示すかを判断し、所定の変化を示す場合に、その領域内には人の顔の部分を構成する画素が含まれていると判定する判定手段とを備えていることを特徴とする請求項１又は２に記載の顔検出装置。
【請求項４】
前記判定手段は、前記肌色領域抽出手段により抽出された領域内の画素の色相が、その領域の一端から他端に向けて、色相環の黄色方向から赤色方向に変化し更に黄色方向に変化する場合に、その領域内には人の顔の部分を構成する画素が含まれていると判定することを特徴とする請求項３記載の顔検出装置。
【請求項５】
前記判定手段は、前記肌色領域抽出手段により抽出された領域内の画素の明度が、その領域の一端から他端に向けて上昇し更に低下する場合に、その領域には人の顔の部分を構成する画素が含まれていると判定することを特徴とする請求項３又は４記載の顔検出装置。
【請求項６】
前記ブロック情報形成手段は、各ブロックを構成する画素の色相情報または明度情報の平均値を各ブロックの色相情報または明度情報とすることを特徴とする請求項３から５のいずれかに記載の顔検出装置。
【請求項７】
前記判定手段は、あるブロックとそのブロックに対して前記領域の一端側または他端側に位置するブロックとの間における色相情報または明度情報の変化量に基づいて、前記肌色領域抽出手段により抽出された領域内の画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示すかを判断することを特徴とする請求項３から６のいずれかに記載の顔検出装置。
【請求項８】
前記ブロック情報形成手段は、前記肌色領域抽出手段により抽出された領域を前記設定手段によって設定されるブロックの大きさで縦方向と横方向とに分割し、
前記判定手段は、縦方向に並ぶブロック列のうち、各列毎に色相情報または明度情報を比較し、いずれかの列において前記肌色領域抽出手段により抽出された領域内の画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示す場合に、その領域には人の顔の部分を構成する画素が含まれていると判定することを特徴とする請求項３から７のいずれかに記載の顔検出装置。
【請求項９】
前記所定回数とは１回であることを特徴とする請求項１から８のいずれかに記載の顔検出装置。
【請求項１０】
画像の中から人物の顔である顔画像を検出する顔検出方法において、
前記画像の中の判定対象が前記顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行する顔判定工程と、
その顔判定工程による判定を所定回数実行する度に、その判定結果をユーザーに提示する提示工程と、
その提示工程によって提示された判定結果に基づいてユーザーが決定する次回の顔判定手段による判定を実行するか否かの決定に従って、次回の顔検出手段による判定を実行するか否かを判断する判断工程とを備えていることを特徴とする顔検出方法。
【請求項１１】
画像の中から人物の顔である顔画像を検出させる顔検出プログラムにおいて、
前記画像の中の判定対象が前記顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行させる顔判定ステップと、
その顔判定ステップによる判定を所定回数実行させる度に、その判定結果をユーザーに提示させる提示ステップと、
その提示ステップによって提示した判定結果に基づいてユーザーが決定する次回の顔判定ステップによる判定を実行させるか否かの決定に従って、次回の顔検出ステップによる判定を実行させるか否かを判断させる判断ステップとを備えていることを特徴とする顔検出ステップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔検出装置、顔検出方法および顔検出プログラムに関し、特に、画像の中から人物の顔である顔画像をユーザーが満足できるような精度、時間で検出することができる顔検出装置、顔検出方法および顔検出プログラムに関するものである。
【背景技術】
【０００２】
従来より、画像の中から人物の顔である顔画像を検出する顔検出装置が知られている。この種の顔画像検出装置に関し、次の特許文献１には、画像データに対してエッジ抽出処理などの複数の画像処理を行うことで、目の位置を検出し、その検出した目の周囲の領域の画像と、予め複数登録されている目の周囲の領域の特徴を示すパターン情報とを比較して、人の顔を構成する画像データであるかを判定する技術が記載されている。
【特許文献１】特開２００１−１７５８６９号公報（００５７、００６７段落など）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載された技術では、多種多様である人の顔の画像を判定するために、多くのパターン情報を登録しておく必要があるり、登録したパターンが多いと比較処理に長時間を有するという問題点があった。
【０００４】
一方、顔画像を検出できる検出精度、顔画像を検出するのに要する検出時間については、ユーザー毎に、或は、同じユーザーであっても時と場合によって、その要求は様々に異なるものである。よって、いくら精度良く顔画像を検出できたとしても、長時間かかっていては、ユーザーの要求を満足することはできない場合や、反対に、いくら短時間で顔画像を検出できたとしても、その精度が悪ければユーザーの要求を満足することができない場合があった。
【０００５】
本発明は、上述した問題を解決するためになされたものであり、画像の中から人物の顔である顔画像をユーザーが満足できるような精度、時間で検出することができる顔検出装置、顔検出方法および顔検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この目的を達成するために、請求項１記載の顔検出装置は、画像の中から人物の顔である顔画像を検出するものであって、前記画像の中の判定対象が前記顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行する顔判定手段と、その顔判定手段による判定を所定回数実行する度に、その判定結果をユーザーに提示する提示手段と、その提示手段によって提示された判定結果に基づいてユーザーが決定する次回の顔判定手段による判定を実行するか否かの決定に従って、次回の顔検出手段による判定を実行するか否かを判断する判断手段とを備えている。
【０００７】
請求項２記載の顔検出装置は、請求項１記載の顔検出装置において、ユーザーが要求する前記顔画像に対する補正内容を取得する取得手段と、その取得手段によって取得した補正内容に従って、前記顔判定手段によって前記顔画像であると判定された前記判定対象を補正する補正手段とを備え、前記提示手段は、前記判定結果として、少なくとも前記補正手段によって補正された前記判定対象を提示する。
【０００８】
請求項３記載の顔検出装置は、請求項１または２記載の顔検出装置において、画像を構成する各画素の色相情報または明度情報を形成する情報形成手段と、その情報形成手段に基づいて、前記画像の中から前記判定対象として人の肌の特性を有する画素を含む領域を抽出する肌色領域抽出手段とを備え、前記顔判定手段は、前記肌色領域抽出手段により抽出された領域を複数のブロックに分割する場合の一つのブロックの大きさが、判定回数に応じて小さくなるように設定する設定手段と、その設定手段で設定される大きさのブロックで、前記肌色領域抽出手段により抽出された領域を分割し、その分割された各ブロックの色相情報または明度情報を、そのブロック内の画素の色相情報または明度情報に基づいて形成するブロック情報形成手段と、そのブロック情報形成手段により形成されたブロックの色相情報または明度情報に基づいて、前記肌色領域抽出手段により抽出された領域内の画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示すかを判断し、所定の変化を示す場合に、その領域内には人の顔の部分を構成する画素が含まれていると判定する判定手段とを備えている。
【０００９】
請求項４記載の顔検出装置は、請求項３に記載の顔検出装置において、前記判定手段は、前記肌色領域抽出手段により抽出された領域内の画素の色相が、その領域の一端から他端に向けて、色相環の黄色方向から赤色方向に変化し更に黄色方向に変化する場合に、その領域内には人の顔の部分を構成する画素が含まれていると判定する。
【００１０】
請求項５記載の顔検出装置は、請求項３又は４記載の顔検出装置において、前記判定手段は、前記肌色領域抽出手段により抽出された領域内の画素の明度が、その領域の一端から他端に向けて上昇し更に低下する場合に、その領域には人の顔の部分を構成する画素が含まれていると判定する。
【００１１】
請求項６記載の顔検出装置は、請求項３から５のいずれかに記載の顔検出装置において、前記ブロック情報形成手段は、各ブロックを構成する画素の色相情報または明度情報の平均値を各ブロックの色相情報または明度情報とする。
【００１２】
請求項７記載の顔検出装置は、請求項３から６のいずれかに記載の顔検出装置において、前記判定手段は、あるブロックとそのブロックに対して前記領域の一端側または他端側に位置するブロックとの間における色相情報または明度情報の変化量に基づいて、前記肌色領域抽出手段により抽出された領域内の画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示すかを判断する。
【００１３】
請求項８記載の顔検出装置は、請求項３から７のいずれかに記載の顔検出装置において、前記ブロック情報形成手段は、前記肌色領域抽出手段により抽出された領域を前記設定手段によって設定されるブロックの大きさで縦方向と横方向とに分割し、前記判定手段は、縦方向に並ぶブロック列のうち、各列毎に色相情報または明度情報を比較し、いずれかの列において前記肌色領域抽出手段により抽出された領域内の画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示す場合に、その領域には人の顔の部分を構成する画素が含まれていると判定する。
【００１４】
請求項９記載の顔検出装置は、請求項１から８のいずれかに記載の顔検出装置において、前記所定回数とは１回である。
【００１５】
請求項１０記載の顔検出方法は、画像の中から人物の顔である顔画像を検出するものであって、前記画像の中の判定対象が前記顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行する顔判定工程と、その顔判定工程による判定を所定回数実行する度に、その判定結果をユーザーに提示する提示工程と、その提示工程によって提示された判定結果に基づいてユーザーが決定する次回の顔判定手段による判定を実行するか否かの決定に従って、次回の顔検出手段による判定を実行するか否かを判断する判断工程とを備えている。
【００１６】
請求項１１記載の顔検出プログラムは、画像の中から人物の顔である顔画像を検出させる顔検出プログラムにおいて、前記画像の中の判定対象が前記顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行させる顔判定ステップと、その顔判定ステップによる判定を所定回数実行させる度に、その判定結果をユーザーに提示させる提示ステップと、その提示ステップによって提示した判定結果に基づいてユーザーが決定する次回の顔判定ステップによる判定を実行させるか否かの決定に従って、次回の顔検出ステップによる判定を実行させるか否かを判断させる判断ステップとを備えている。
【発明の効果】
【００１７】
請求項１記載の顔検出装置によれば、画像の中の判定対象が顔画像であるか否かの判定が所定回数実行されると、その判定結果がユーザーに提示される。すると、ユーザーは、その判定結果に基づいて次回の顔判定手段による判定を実行するか否かの決定をするので、そのユーザーの決定に従って次回の顔検出手段による判定を実行するか否かの判断がなされる。よって、ユーザーが次回の顔判定手段による判定を実行する決定をした場合には、次の顔判定手段による判定が実行され、先の判定よりも時間はかかるものの、先の判定よりも高精度に顔画像か否かの判定がなされる。従って、時間よりも精度を優先させるユーザーの要求を満足させることができるという効果がある。一方、ユーザーが次回の顔判定手段による判定を実行しない決定をした場合には、次の顔判定手段による判定は実行されず、次の判定を実行すれば、より高精度な判定ができるものの、短時間で顔画像か否かの判定を終了することができる。従って、精度よりも時間を優先させるユーザーの要求を満足させることができるという効果がある。
【００１８】
請求項２記載の顔検出装置によれば、請求項１記載の顔検出装置の奏する効果に加え、判定対象が顔画像であると判定された場合には、ユーザーに提示する判定結果として、少なくとも、判定対象をユーザーが要求する補正内容に従って補正された顔画像が提示される。よって、ユーザーに、次の顔判定手段による判定を実行するか否かの決定をさせやくすることができるという効果がある。
【００１９】
請求項３記載の顔検出装置によれば、請求項１又は２に記載の顔検出装置の奏する効果に加え、情報形成手段により、画像を構成する各画素の色相情報または明度情報が形成され、肌色領域抽出手段により、人の肌の特性を有する画素を含む領域が抽出される。ブロック情報形成手段により、肌色領域抽出手段により抽出された領域が複数のブロックに分割され、各ブロック内の画素の色相情報または明度情報に基づいて、分割された各ブロックの色相情報または明度情報が形成される。判定手段により、ブロックの色相情報または明度情報に基づいて、肌色領域抽出手段により抽出された領域内の画素の色相または明度が、領域の一端から他端に向けて所定の変化を示すかが判断され、所定の変化を示す場合に、その領域内には人の顔の部分を構成する画素が含まれていると判定される。領域の一端から他端に向かう画素について、色相または明度の変化を調べるよりも、複数の画素の色相情報または明度情報により構成されるブロックの色相情報または明度情報の変化を調べる方が、処理はより簡単である。よって、画像に人の顔の画素が含まれるているかを高速に判定することができるという効果がある。また、ある画素と別の画素との変化を調べているので、肌の色に関係なく判定することができるという効果がある。
【００２０】
更に、肌色領域抽出手段により抽出された領域を複数のブロックに分割する場合の一つのブロックの大きさは、判定回数に応じて小さくなるように設定される。分割する一つのブロックの小さければ小さい程、ブロックの色相情報または明度情報の変化を調べるのには長時間を要するものの高精度に調べることができる。反対に、分割する一つのブロックの大きさが大きければ大きい程、ブロックの色相情報または明度情報の変化を調べるのには精度は低下するものの高速に短時間で調べることができる。よって、画像の中の判定対象が顔画像であるか否かの判定を、判定回数を重ねる度に高精度かつ長時間で実行することができるという効果がある。
【００２１】
請求項４記載の顔検出装置によれば、請求項３記載の顔検出装置の奏する効果に加え、肌色領域抽出手段により抽出された領域内の画素の色相が、その領域の一端から他端に向けて、色相環の黄色方向から赤色方向に変化し更に黄色方向に変化する場合に、その領域内には人の顔の部分を構成する画素が含まれていると判定される。よって、領域の一端から他端に向かう画素の色相が、色相環の黄色方向から赤色方向に変化し更に黄色方向に変化するかを調べるという処理は簡単であるので、画像に人の顔の画素が含まれるているかを高速に判定することができるという効果がある。
【００２２】
請求項５記載の顔検出装置によれば、請求項３又は４記載の顔検出装置の奏する効果に加え、肌色領域抽出手段により抽出された領域内の画素の明度が、その領域の一端から他端に向けて上昇し更に低下する場合に、その領域には人の顔の部分を構成する画素が含まれていると判定される。よって、領域の一端から他端に向かう画素の明度が、上昇し更に低下するかを調べるという処理は簡単であるので、画像に人の顔の画素が含まれるているかを高速に判定することができるという効果がある。
【００２３】
請求項６記載の顔検出装置によれば、請求項３から５のいずれかに記載の顔検出装置の奏する効果に加え、ブロック情報形成手段より、各ブロックを構成する画素の色相情報または明度情報の平均値が各ブロックの色相情報または明度情報とされる。よって、ブロックの色相情報または明度情報が人の肌の特性を示す場合は、色相または明度の変化を調べることができるという効果がある。
【００２４】
請求項７記載の顔検出装置によれば、請求項３から５のいずれかに記載の顔検出装置の奏する効果に加え、あるブロックとそのブロックに対して領域の一端側または他端側に位置するブロックとの間における色相情報または明度情報の変化量に基づいて、その領域の一端から他端に向けて所定の変化を示すかが判断される。よって、ブロックの色相情報または明度情報の変化量を調べるという処理は簡単であるので、画像に人の顔の画素が含まれているかを高速に判定することができるという効果がある。
【００２５】
請求項８記載の顔検出装置によれば、請求項３から７のいずれかに記載の顔検出装置の奏する効果に加え、ブロック情報形成手段により、肌色領域抽出手段により抽出された領域が設定手段によって設定されるブロックの大きさで縦方向と横方向とに分割される。判定手段により、縦方向に並ぶＮ列のブロック列のうち、各列毎に色相情報または明度情報が比較され、いずれかの列において画素の色相または明度が、その領域の一端から他端に向けて所定の変化を示すかが判定される。よって、画像に人の顔の画素が含まれているかを高速に判定することができるという効果がある。
【００２６】
請求項９記載の顔検出装置によれば、請求項１から８のいずれかに記載の顔検出装置の奏する効果に加え、前記所定回数とは１回であるので、短時間で判定結果を提示することができるという効果がある。
【００２７】
請求項１０記載の顔検出方法によれば、画像の中の判定対象が顔画像であるか否かの判定が所定回数実行されると、その判定結果がユーザーに提示される。すると、ユーザーは、その判定結果に基づいて次回の顔判定工程による判定を実行するか否かの決定をするので、そのユーザーの決定に従って次回の顔検出工程による判定を実行するか否かの判断がなされる。よって、ユーザーが次回の顔判定工程による判定を実行する決定をした場合には、次の顔判定工程による判定が実行され、先の判定よりも時間はかかるものの、先の判定よりも高精度に顔画像か否かの判定がなされる。従って、時間よりも精度を優先させるユーザーの要求を満足させることができるという効果がある。一方、ユーザーが次回の顔判定工程による判定を実行しない決定をした場合には、次の顔判定工程による判定は実行されず、次の判定を実行すれば、より高精度な判定ができるものの、短時間で顔画像か否かの判定を終了することができる。従って、精度よりも時間を優先させるユーザーの要求を満足させることができるという効果がある。
【００２８】
請求項１１記載の顔検出プログラムによれば、画像の中の判定対象が顔画像であるか否かの判定を所定回数実行すると、その判定結果をユーザーに提示する。すると、ユーザーは、その判定結果に基づいて次回の顔判定ステップによる判定を実行するか否かの決定をするので、そのユーザーの決定に従って次回の顔検出ステップによる判定を実行するか否かの判断をする。よって、ユーザーが次回の顔判定ステップによる判定を実行する決定をした場合には、次の顔判定ステップによる判定を実行し、先の判定よりも時間はかかるものの、先の判定よりも高精度に顔画像か否かの判定をする。従って、時間よりも精度を優先させるユーザーの要求を満足させることができるという効果がある。一方、ユーザーが次回の顔判定ステップによる判定を実行しない決定をした場合には、次の顔判定ステップによる判定は実行せず、次の判定を実行すれば、より高精度な判定ができるものの、短時間で顔画像か否かの判定を終了することができる。従って、精度よりも時間を優先させるユーザーの要求を満足させることができるという効果がある。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明の実施形態である多機能周辺装置（以下、「ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）」と称す）１を示す外観斜視図である。このＭＦＰ１は、プリンタ機能、スキャナ機能、及び、コピー機能などの各種の機能を有している。
【００３０】
ＭＦＰ１の本体の前面には、開口部２が設けられ内部が上下に仕切られている。開口部２の下側には、複数枚の記録用紙を積層収納可能な給紙カセット３が挿入されている。開口部２の上側は記録済みの記録用紙が排紙される排紙部４となっており、記録済みの記録用紙は矢印Ａ方向に排出される。
【００３１】
開口部２の上部には、スキャナ機能やコピー機能の実行時における原稿読取などのための画像読取装置（図示しない）が配置されている。原稿カバー体５の下側には、原稿を載置するための載置用ガラス板が設けられており、原稿を読み取る場合は、原稿カバー体５を上側に開き、載置用ガラス板上に原稿を載置し、原稿カバー体５を閉じて原稿を固定する。操作キー１５の原稿読取ボタンを押下すると、載置用ガラス板の下側に設けられている原稿読取り用のスキャナ（例えばＣＩＳ：Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ）２０（図２参照）により原稿紙面の画像が読み取られる。読み取られた画像データは後述のＲＡＭ１３（図２参照）における所定の記憶領域に格納される。
【００３２】
原稿カバー体５の前方には、数値や文字などを入力する入力キー群１５ａと、各種コマンドを入力するコマンド入力キー群１５ｂと、メニューや操作手順や実行中の処理の状態を表示するためのＬＣＤ１６とが設けられている。利用者は、操作キー１５を押下することで、電源のオン／オフや、各機能の切り替えなどの操作を行うことができる。そして、ＬＣＤ１６には、操作キー１５の押下に対応する情報が表示されるので、印刷する画像データやプリンタ２１（図２参照）などの各種情報を確認することができる。
【００３３】
開口部２の前面であって、入力キー群１５ａの下方には、携帯用のフラッシュメモリカードを挿入するためのメモリカードスロット２２が設けられている。フラッシュメモリカードに格納されている画像データは、プリンタ機能によって印刷することができる。
【００３４】
次に、図２を参照して、ＭＦＰ１の電気的構成について説明する。図２は、ＭＦＰ１の電気的構成を示すブロック図である。ＭＦＰ１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、操作キー１５、ＬＣＤ１６、スピーカ１７、ＵＳＢインターフェイス１８、スキャナ２０、プリンタ２１、メモリカードスロット２２とを主に有しており、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３とはバスライン２６を介してお互いに接続されている。また、操作キー１５、ＬＣＤ１６、スピーカ１７、ＵＳＢインターフェイス１８、スキャナ２０、プリンタ２１、メモリカードスロット２２、バスライン２６とは、入出力ポートを介してお互いに接続されている
。
【００３５】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶される固定値やプログラム或いは、ＭＦＰ１が有している各機能の制御や、ＵＳＢインターフェイス１８を介して送受信される各種信号に従って、入出力ポート２７と接続された各部を制御するものである。ＲＯＭ１２は書換不可能なメモリであり、ＭＦＰ１で実行される各種の制御プログラムを記憶する領域である制御プログラム領域１２ａと、ブロックサイズメモリ１２ｂとが設けられている。
【００３６】
制御プログラム領域１２ａには、例えば、後述する図３乃至図５、図７及び図８、図１０及び図１１のフローチャートに示す処理を実行するプログラムが記憶されている。
【００３７】
また、ブロックサイズメモリ１２ｂが設けられている。このブロックサイズメモリには、画像中から抽出した人物の顔を含んでいるであろうと推測される肌色領域を、図８のフローチャートで示すブロック情報抽出処理において、ブロック単位で分割する場合に、その一つのブロックの大きさが後述する顔判定回数カウンタｎ１３ｂの値が大きくなるに従って小さくなるように、顔判定回数カウンタｎ１３ｂの値に応じた一つのブロックサイズの大きさを示すテーブルが記憶されている。よって、図８のフローチャートで示すブロック情報抽出処理では、肌色領域をブロック単位で分割する場合、その一つのブロックサイズは、このテーブルに従って設定される。
【００３８】
ＲＡＭ１３は、各種のデータを一時的に記憶するための書換可能なメモリであり、画像メモリ１３ａ、肌色画像メモリ１３ｂ、肌色領域ポインタ１３ｃ、ブロック情報メモリ１３ｄ、ブロック判定フラグメモリ１３ｅ、前ブロックデータメモリ１３ｆ、後ブロックデータメモリ１３ｇとが設けられている。
【００３９】
画像メモリ１３ａは、パーソナルコンピュータやメモリカードから読み込んだＲＧＢ形式のビットマップ画像データ（以下、「ビットマップデータ」と称す）が入力される領域である。ビットマップデータとは、格子状に画素を並べて画像を形成するための公知のデータ形式であり、各画素の色を示す画素値が、それぞれの画素について記憶されているデータである。入力されたビットマップデータは、ＲＧＢ形式からＬ＊Ｃ＊ｈ形式に変換されて、肌色画像メモリ１３ｂに記憶される。
【００４０】
ここで、Ｌ＊Ｃ＊ｈ形式について説明する。本実施形態では、Ｌ＊Ｃ＊ｈ表色系を用いており、「Ｌ＊」は明度を示し、「Ｃ＊」は彩度を示し、「ｈ」は色相を示している。
【００４１】
肌色画像メモリ１３ｂは、入力されたＬ＊Ｃ＊ｈ形式のビットマップデータのうち、人の肌の特性を示す画素を抽出して記憶するメモリである。
【００４２】
肌色領域ポインタ１３ｃは、Ｘ方向最小値１３ｃ１、Ｘ方向最大値１３ｃ２、Ｙ方向最小値１３ｃ３、Ｙ方向最大値１３ｃ４とが設けられている。肌色領域ポインタ１３ｃは、肌色画像メモリ１３ｂに記憶されている画像データにおいて、人の肌の特性を有する画素の外周を包囲する長方形（図６（ｃ）参照）の位置情報を記憶するためのメモリである。
【００４３】
ブロック情報メモリ１３ｄは、肌色画像メモリ１３ｂにおける画像データにおいて、肌色領域ポインタ１３ｃにより示される長方形の領域が所定の大きさのブロックに分割された場合に、各ブロックを構成する画素値の平均値（以下、「ブロック値」と称す）がそれぞれ記憶されるメモリである（図９（ｂ）参照）。
【００４４】
ブロック判定フラグメモリ１３ｅは、ブロック情報メモリ１３ｄに記憶される各ブロックに対応するブロック判定フラグが記憶されるメモリである。ブロック判定フラグは、ブロック値が人の肌の特性を示す場合は「１」に設定され、示さない場合は「０」に設定されるフラグである。
【００４５】
前ブロックデータメモリ１３ｆ、後ブロックデータメモリ１３ｇとは、ブロック情報メモリ１３ｄのいずれかのブロック値を記憶するためのメモリであり、ブロック値の差分値を求めるために使用されるメモリである。ここで、前ブロックデータメモリ１３ｆと後ブロックデータメモリ１３ｇとについて、図１２（ｂ）を参照して説明する。図１２（ｂ）は、ある領域が縦８個、横４個のブロックに分割された状態を示している。各ブロックはブロック値を有しており、「○」と記載されたブロックが、列毎に走査される。
【００４６】
１行目から走査方向に走査して、始めに見つかったブロック値が、前ブロックデータメモリ１３ｆに記憶され、次に見つかったブロック値が後ブロックデータメモリ１３ｇに記憶される。後ブロックデータメモリ１３ｇから前ブロックデータメモリ１３ｆが減算され、ブロック値の差分値が求められる。差分値が算出されると、後ブロックデータメモリ１３ｇの値が、先ブロックデータメモリ１３ｆに記憶される。続けて走査方向に走査が行われ、次に見つかったブロック値は、後ブロックデータメモリ１３ｇに記憶され、同様に差分値が算出される。
【００４７】
顔判定回数カウンタｎ１３ｈは、図３のフローチャートに示す第ｎ回目の顔判定処理（Ｓ３）が第何回目の顔判定処理であるかをカウントするものである。次の顔判定処理を実行するか否かはユーザーによって決定され、ユーザーが次の顔判定処理を実行すること決定した場合には、顔判定回数カウンタｎ１３ｈに「１」が加算されていく。
【００４８】
スピーカ１７は、操作キー１５の操作音やエラー発生時の注意音を利用者に報知するものである。プリンタ２１は、図示しないが、インクジェットプリンタで構成されている。プリンタ２１は、Ｃ（シアン）、Ｍ（マゼンダ）、Ｙ（イエロー）、Ｋ（ブラック）の４色のインクを使用する印刷ヘッド、紙送り装置、回復装置を備えカラー印刷を行うことができる。
【００４９】
図３は、顔補正処理を示すフローチャートであり、顔補正処理は、ユーザーが指定した画像の中から人物の顔である顔画像を検出し、その検出した顔画像にユーザーが要求する補正をする処理であり、ＣＰＵ１１によって実行される。
【００５０】
この顔補正処理では、まず、メモリカードがメモリカードスロット２２に挿入されているか否かを判断し（Ｓ３０１）、挿入されている場合には（Ｓ３０１：Ｙｅｓ）、デジタルカメラプリントメニューをＬＣＤ１６に表示する（Ｓ３０２）。そして、その中から顔補正がユーザーによって選択されたかを判断し（Ｓ３０３）、選択された場合には（Ｓ３０３：Ｙｅｓ）、メモリカードに格納されている画像データを読み込み（Ｓ３０４）、読み込んだ画像のサムネイル画像をＬＣＤ１６に表示する（Ｓ３０５）。尚、メモリカードから読み込んだ画像データは画像メモリ１３ａに記憶される。
【００５１】
次に、ＬＣＤ１６に表示されているサムネイル画像の中から顔補正をする画像がユーザーによって選択されたかを判断し（Ｓ３０６）、選択された場合には（Ｓ３０６：Ｙｅｓ）、顔補正メニューをＬＣＤ１６に表示する（Ｓ３０７）。この顔補正メニューには、例えば、赤目補正、肌色補正等のメニューが表示される。
【００５２】
次に、その顔補正メニューの中から所定の補正メニューが選択されたかを判断し（Ｓ３０８）、所定の補正メニューが選択された場合には（Ｓ３０８：Ｙｅｓ）、顔判定回数カウンタｎ１３ｈを「１」に設定する（Ｓ３０９）。
【００５３】
尚、Ｓ３０１でメモリカードがメモリカードスロット２２に挿入されていない場合（Ｓ３０１：Ｎｏ）、Ｓ３０３で顔補正がユーザーによって選択されなかった場合（Ｓ３０３：Ｎｏ）、サムネイル画像の中から顔補正をする画像がユーザーによって選択されなかった場合（Ｓ３０６：Ｎｏ）、所定の補正メニューが選択されなかった場合には（Ｓ３０８：Ｎｏ）、いずれも本処理を終了する。
【００５４】
Ｓ３０９において顔判定回数カウンタｎ１３ｈを「１」に設定すると、次は肌色領域抽出処理（Ｓ１）を行う。
【００５５】
ここで、図４のフローチャートを参照して、肌色領域抽出処理（Ｓ１）について説明する。肌色領域抽出処理では、始めに、肌色画像メモリ１３ｂを初期化する（Ｓ１１）。ここでの初期化とは、全画素の画素値（Ｌ＊値，Ｃ＊値，ｈ値）を白（１００，０，０）に設定することである。
【００５６】
次に、画像メモリ１３ａに記憶された画像データを、ＲＧＢ形式からＬ＊Ｃ＊ｈ形式に変換して、肌色画像メモリ１３ｂにコピーする（Ｓ１２）。肌色画像メモリ１３ｂから、１つの画素の画素値（Ｌ＊値，Ｃ＊値，ｈ値）を読み取り（Ｓ１３）、読み取った画素値を構成するＬ＊値、Ｃ＊値、ｈ値は、それぞれ所定の範囲内の肌色値であるかを判定する（Ｓ１４）。本実施形態において、所定の範囲内の肌色値とは、図９（ａ）に示すように、画素値が「３２≦Ｌ＊≦９２」且つ「１０≦Ｃ＊≦４０」且つ「２５≦ｈ≦６４」であることとする。
【００５７】
読み取った画素値が、所定の範囲内の肌色値である場合は（Ｓ１４：Ｙｅｓ）、画素値を変更せずにＳ１６の処理へ移る。一方、読み取った画素値が、所定の範囲内の肌色値でない場合は（Ｓ１４：Ｎｏ）、肌色画像メモリ１３ｂにおいて、読み取った画素値を白に設定する。そして、肌色画像メモリ１３ｂの画素値を全て読み取ったかを判定し（Ｓ１６）、全て読み取った場合は（Ｓ１６：Ｙｅｓ）、処理を終了する。一方、肌色画像メモリ１３ｂの画素値を全て読み取っていない場合は（Ｓ１６：Ｎｏ）、Ｓ１３の処理へ戻り、Ｓ１３からＳ１５の各処理を繰り返す。
【００５８】
この図４のフローチャートの処理により、画像メモリ１３ａに記憶された画像データのうち、所定の範囲内の肌色値を有した画素が肌色画像メモリ１３ｂに抽出される。ここで、図６を参照して、図４のフローチャートの処理で、画像メモリ１３ａから肌色画像メモリ１３ｂに抽出された画像データについて説明する。
【００５９】
図６は、画像メモリ１３ａと肌色画像メモリ１３ｂとの内容を概略的に示したイメージ図である。図６（ａ）は、画像メモリ１３ａに画像データが記憶されている状態を示している。画像メモリ１３ａに記憶されている画像データは、まず、ＲＧＢ形式からＬ＊Ｃ＊ｈ形式に変換され、肌色画像メモリ１３ｂに記憶される。そして、図６（ｂ）に示すように、肌色画像メモリ１３ｂは、所定の範囲の肌色値を有する画素値のみが残され、その他の画素値は白に設定される。図６（ｂ），（ｃ）において、本来は、顔を構成する黒い輪郭線も白に設定されているが、図を分かり易くするために黒く示している。また、図９、図１２とについても同様に示している。
【００６０】
再び、図３に戻って説明を続ける。肌色領域抽出処理（Ｓ１）が終了すると、次に、肌色領域判定処理（Ｓ２）を実行する。
【００６１】
ここで、図５のフローチャートを参照して、肌色領域判定処理（Ｓ２）について説明する。肌色領域判定処理（Ｓ２）では、始めに、肌色領域ポインタ１３ｃを初期化する（Ｓ２１）。
【００６２】
そして、肌色画像メモリ１３ｂから、１つの画素の画素値（Ｌ＊値，Ｃ＊値，ｈ値）を読み取る（Ｓ２２）。読み取った画素値が白（１００，０，０）であるかが判定され（Ｓ２３）、読み取った画素値が白（１００，０，０）である場合は（Ｓ２３：Ｙｅｓ）、Ｓ２６の処理へ移る。一方、読み取った画素値が白でない場合は（Ｓ２３：Ｎｏ）、読み取った画素の画素位置（ｘ，ｙ）が、肌色領域ポインタ１３ｃで示される長方形の領域内に位置するかを判定する（Ｓ２４）。
【００６３】
Ｓ２４の処理において、読み取った画素の画素位置（ｘ，ｙ）が、肌色領域ポインタ１３ｃで示される長方形の領域内に位置しない場合は（Ｓ２４：Ｎｏ）、読み取った画素が、肌色領域ポインタ１３ｃで示される長方形の領域内に位置するように、ｘ値またはｙ値を肌色領域ポインタ１３ｃの値に反映し（Ｓ２５）、Ｓ２６の処理へ移る。一方、読み取った画素が、肌色領域ポインタ１３ｃで示される長方形の領域内に位置する場合は（Ｓ２４：Ｙｅｓ）、肌色領域ポインタ１３ｃの値を変更せずに、Ｓ２６の処理へ移る。
【００６４】
そして、肌色画像メモリ１３ｂの画素値を全て読み取ったかを判定し（Ｓ２６）、全て読み取った場合は（Ｓ２６：Ｙｅｓ）、処理を終了する。一方、肌色画像メモリ１３ｂの画素値を全て読み取っていない場合は（Ｓ２６：Ｎｏ）、Ｓ２２の処理に戻り、Ｓ２２からＳ２５の各処理を繰り返す。この図５のフローチャートの処理により、図６（ｂ）に示す肌色画像メモリ１３ｂの画像において、図６（ｃ）に示すその画像を包囲する長方形の領域（図中点線で示す領域）を判定し、その位置情報を肌色領域ポインタ１３ｃに記憶することができる。
【００６５】
再び、図３に戻って説明を続ける。肌色領域判定処理（Ｓ２）終了すると、次に第ｎ回目の顔判定処理を実行する（Ｓ３）。
【００６６】
ここで、図７のフローチャートを参照して、第ｎ回目の顔判定処理（Ｓ３）について説明する。第ｎ回目の顔判定処理（Ｓ３）では、ブロック情報抽出処理（Ｓ４）を実行し、次に、判定処理（Ｓ５）を実行して終了する。
【００６７】
まず、図８を参照してブロック情報抽出処理（Ｓ４）について説明する。図８は、ブロック情報抽出処理（Ｓ４）を示すフローチャートである。この処理では、まず、肌色領域ポインタ１３ｃで示される長方形の領域（図６（ｃ）参照）を分割するブロックサイズを、ブロックサイズメモリ１２ｂに記憶されているテーブルから設定する（Ｓ３１ａ）。具体的には、顔判定回数カウンタｎの値が大きい程、即ち、顔判定処理（Ｓ３）の実行回数（判定回数）が多ければ多い程、かかるブロックサイズは小さく設定される。よって、顔判定処理（Ｓ３）の実行回数（判定回数）が多ければ多い程、時間はかかるが高精度に顔判定を実行することができる。換言すれば、顔判定処理（Ｓ３）の実行回数（判定回数）が少なければ少ない程、精度は劣るが短時間で顔判定を実行することができる。
【００６８】
次に、肌色領域ポインタ１３ｃで示される長方形の領域（図６（ｃ）参照）を、設定されたブロックサイズで縦Ｍ個、横Ｎ個に分割する（Ｓ３１）。そして、ブロック情報メモリ１３ｄとブロック判定フラグメモリ１３ｅとを初期化する（Ｓ３２）。
【００６９】
分割されたブロックのうちの１つのブロックについて、そのブロックを構成する画素のＬ＊値、Ｃ＊値、ｈ値の平均値を求め、各値をブロック情報メモリ１３ｄに記憶する（Ｓ３３）。求めた平均値（Ｌ＊値、Ｃ＊値、ｈ値）はそれぞれ、所定の範囲内の肌色値であるかを判定し（Ｓ３４）、求めた平均値がそれぞれ、所定の範囲内の肌色値である場合は（Ｓ３４：Ｙｅｓ）、平均値を求めたブロックのブロック判定フラグを、「１（有効）」に設定する（Ｓ３５）。一方、求めた平均値がそれぞれ、所定の範囲内の肌色値でない場合は（Ｓ３４：Ｎｏ）、平均値を求めたブロックのブロック判定フラグを、「０（無効）」に設定する（Ｓ３６）。
【００７０】
そして、全てのブロックの平均値を求めたかを判定し（Ｓ３７）、全てのブロックの平均値を求めた場合は（Ｓ３７：Ｙｅｓ）、処理を終了する。一方、全てのブロックの平均値を求めていない場合は（Ｓ３７：Ｎｏ）、Ｓ３３の処理に戻り、Ｓ３３からＳ３６までの各処理を繰り返す。
【００７１】
この図８のフローチャートの処理により、肌色領域ポインタ１３ｃにより示される長方形領域（図６（ｃ）参照）が、図９（ｂ）に示すように複数のブロックに分割される。よって、各ブロックの値をブロック情報メモリ１３ｄに記憶することができ、各ブロックの値が、所定の肌色値の範囲内であるかを示すブロック判定フラグを、ブロック判定フラグメモリ１３ｅに設定することができる。
【００７２】
図９（ｂ）は、肌色画像メモリ１３ｂにおいて、肌色領域ポインタ１３により示される長方形領域（図６（ｃ）参照）を、縦８個、横４個の均一な大きさのブロックに分割したイメージ図を示している。各ブロックを区別して説明するために、分割されたブロックの左上を基準として、図面に向かって、右方向に列番号（Ｎ）を順番に記載し、下方向に行番号（Ｍ）を順番に記載している。以後、Ｎ列のＭ行に位置するブロックを、「ブロック（Ｎ，Ｍ）」と表記することとし、例えば、左上のブロックを示す場合は、ブロック（１，１）と表記し、左下のブロックを示す場合は、ブロック（１，８）と表記する。
【００７３】
また、図９（ｂ）のブロック内に示す「○」や「×」は、ブロックの値が所定の肌色値の範囲内であるかを示したものである。「○」と示されているブロックは、ブロック判定フラグが「１（有効）」と設定されている状態を示し、「×」と示されているブロックは、ブロック判定フラグが「０（無効）」と設定されてる状態を示している。以後、各ブロックに設定されているフラグの状態を簡単に説明するために、ブロック判定フラグが「１（有効）」に設定されているブロックを「有効ブロック」と称し、ブロック判定フラグが「０（無効）」に設定されているブロックを「無効ブロック」と称す。
【００７４】
次に、第ｎ回目の顔判定処理（Ｓ３）として、ブロック情報抽出処理（Ｓ４）の次に実行される判定処理（Ｓ５）について説明する。はじめに、図１２（ａ）を参照して、顔判定処理で行う処理の概略について説明する。図１２（ａ）は、この判定処理（Ｓ５）の概略を説明するための図である。
【００７５】
図１２（ａ）は、人の顔の肌において、各部分の肌の明度と色相との関係を示した図である。図１２（ａ）に示すように、人の顔の肌を部分に大別すると、「額」と「目の下」と「頬」と「首」との４つに分類することができる。それぞれの部分は、お互いに色相や明度が重複しているが、ある部分と別の部分とを比較すると、所定の傾向が示されている。例えば、「目の下」の肌と、「額」の肌と比較すると、相対的に「目の下」の肌の明度は高くなり（白くなり）、色相は赤くなるという傾向が示されている。
【００７６】
また、「頬」の肌と、「目の下」の肌とを比較すると、相対的に「頬」の肌の明度は高くなり（白くなり）、色相は黄色くなるという傾向が示されている。また、「首」の肌と、「頬」の肌とを比較すると、相対的に明度は低くなり（黒くなり）、色相は黄色くなるという傾向が示されている。
【００７７】
顔判定処理では、「額」から「目の下」、「目の下」から「頬」、「頬」から「首」に向かって各部分の肌の明度と色相とを比較し、相対的にどのような変化を示すかを調べている。また、相対的な変化を調べているので、肌の色に関係なく判定することができる。
【００７８】
次に、図１０および図１１とのフローチャートを参照して、判定処理（Ｓ５）について説明する。判定処理では、始めに、変数ｉを「１」に設定する（Ｓ４１）。
【００７９】
ｉ列において、１行目からｎ行目へ走査し、ブロック判定フラグが「１（有効）」であるブロック（有効ブロック）が２個見つかったかを判定し（Ｓ４２）、有効ブロックが２個見つかった場合は（Ｓ４２：Ｙｅｓ）、１番目に見つかった有効ブロックのＬ＊値とｈ値とを前ブロックデータメモリ１３ｆに記憶し、２番目に見つかった有効ブロックのＬ＊値とｈ値とを後ブロックデータメモリ１３ｇに記憶する（Ｓ４３）。
【００８０】
そして、後ブロックデータメモリ１３ｇの値から、前ブロックデータメモリ１３ｆの値を減算し、ブロック値の差分値（ΔＬ＊値、Δｈ値）を求める（Ｓ４４）。求めた差分値の絶対値が所定の値以下であるかを判定し（Ｓ４５）、求めた差分値が所定の値以下でない場合は（Ｓ４５：Ｎｏ）、Ｓ４９の処理へ移る。
【００８１】
「求めた差分値の絶対値が所定の値以下であるか」という処理（Ｓ４５、後述のＳ５４、後述のＳ６０）は、前ブロックデータメモリ１３ｆと後ブロックデータメモリ１３ｇとに記憶されているブロック値が、人の顔の肌において同一の部分の肌（例えば、「額」と「額」）を示す場合には、その判定を行わないための処理である。
【００８２】
一方、Ｓ４５の処理において、求めた差分値の絶対値が所定の値以下である場合は（Ｓ４５：Ｙｅｓ）、後ブロックデータメモリ１３ｇの値を、前ブロックデータメモリ１３ｆに記憶する（Ｓ４６）。続けて、行方向に走査し、有効ブロックが見つかったを判定し（Ｓ４７）、有効ブロックが見つかった場合は（Ｓ４７：Ｙｅｓ）、見つかった有効ブロックのＬ＊値とｈ値とを後ブロックデータメモリ１３ｇに記憶し、Ｓ４４の処理に戻る。一方、有効ブロックが見つからなかった場合は（Ｓ４７：Ｎｏ）、Ｓ６３の処理へ移る。
【００８３】
Ｓ４９の処理では、ΔＬ＊値は正の値であり、且つ、Δｈ値は負の値であるかを判定し（Ｓ４９）、ΔＬ＊値は正の値であり、且つ、Δｈ値は負の値である場合は（Ｓ４９：Ｙｅｓ）、後ブロックデータメモリ１３ｇの値を、前ブロックデータメモリ１３ｆに記憶する（Ｓ５０）。一方、ΔＬ＊値は正の値であり、且つ、Δｈ値は負の値である場合以外は（Ｓ４９：Ｎｏ）、Ｓ６３の処理へ移る。
【００８４】
次に、続けて行方向に走査し、有効ブロックが見つかったかを判定し（Ｓ５１）、有効ブロックが見つかった場合は（Ｓ５１：Ｙｅｓ）、見つかった有効ブロックのＬ＊値とｈ値とを後ブロックデータメモリ１３ｇに記憶する（Ｓ５２）。一方、有効ブロックが見つからなかった場合は（Ｓ５１：Ｎｏ）、Ｓ６３の処理へ移る。
【００８５】
そして、後ブロックデータメモリ１３ｇの値から、前ブロックデータメモリ１３ｆの値を減算し、ブロック値の差分値（ΔＬ＊値、Δｈ値）を求める（Ｓ５３）。求めた差分値の絶対値が、所定の値以下であるかを判定し（Ｓ５４）、求めた差分値の絶対値が、所定の値以下である場合は（Ｓ５４：Ｙｅｓ）、Ｓ５０の処理に戻り、Ｓ５０からＳ５３の各処理を繰り返す。一方、求めた差分値の絶対値が、所定の値以下でない場合は（Ｓ５４：Ｎｏ）、ΔＬ＊値は正の値であり、且つ、Δｈ値も正の値であるかを判定する（Ｓ５５）。
【００８６】
Ｓ５５の処理において、ΔＬ＊値は正の値であり、且つ、Δｈ値も正の値である場合は（Ｓ５５：Ｙｅｓ）、後ブロックデータメモリ１３ｇの値を、前ブロックデータメモリ１３ｆに記憶する（Ｓ５６）。一方、ΔＬ＊値は正の値であり、且つ、Δｈ値も正の値である場合以外は（Ｓ５５：Ｎｏ）、Ｓ６３の処理へ移る。
【００８７】
続けて、行方向に走査し、有効ブロックが見つかったかを判定し（Ｓ５７）、有効ブロックが見つかった場合は（Ｓ５７：Ｙｅｓ）、見つかった有効ブロックのＬ＊値とｈ値とを後ブロックデータメモリ１３ｇに記憶する（Ｓ５８）。一方、有効ブロックが見つからなかった場合は（Ｓ５７：Ｎｏ）、Ｓ６３の処理へ移る。
【００８８】
そして、後ブロックデータメモリ１３ｇの値から、前ブロックデータメモリ１３ｆの値を減算し、ブロック値の差分値（ΔＬ＊値、Δｈ値）を求める（Ｓ５９）。求めた差分値の絶対値が、所定の値以下であるかを判定し（Ｓ６０）、求めた差分値の絶対値が所定の値以下である場合は（Ｓ６０：Ｙｅｓ）、Ｓ５６の処理に戻り、Ｓ５６からＳ５９までの各処理を繰り返す。一方、求めた差分値の絶対値が、所定の値以下でない場合は（Ｓ６０：Ｎｏ）、ΔＬ＊値は負の値であり、且つ、Δｈ値は正の値であるかを判定する（Ｓ６１）。
【００８９】
Ｓ６１の処理において、ΔＬ＊値は負の値であり、且つ、Δｈ値は正の値である場合は（Ｓ６１：Ｙｅｓ）、画像メモリ１３ａに記憶された画像データは、人の顔の画像であると判断し（Ｓ６２）、処理を終了する。一方、ΔＬ＊値は負の値であり、且つ、Δｈ値は正の値である場合以外は（Ｓ６１：Ｎｏ）、Ｓ６３の処理へ移る。
【００９０】
Ｓ６３の処理では、変数ｉがＮ（ブロックの列数）と等しいかを判定し（Ｓ６３）、等しい場合は（Ｓ６３：Ｙｅｓ）、処理を終了する。一方、等しくない場合は（Ｓ６３：Ｎｏ）、変数ｉに「１」を加算し、Ｓ４２の処理に戻り、Ｓ４２からＳ６３の各処理を繰り返す。
【００９１】
この判定処理（Ｓ５）により、ブロック情報メモリ１３ｄに記憶されている有効ブロック値を列毎に走査方向に走査して、そのブロック差分値を順番に求めることができる。そして、その差分値が、「額」から「目の下」へ変化する場合の特徴を示し、「目の下」から「頬」へ変化する場合の特徴を示し、「頬」から「首」へ変化する場合の特徴を示しているかを判定するので、顔画像であるかを判定することができる。
【００９２】
次に、図９（ｂ）を参照して、有効ブロックのブロック値がどのように比較されるかの一例を説明する。図９（ｂ）は、有効ブロックと走査方向とを示したイメージ図である。
【００９３】
図９（ｂ）に示すように、１列目（ｉ＝１）から順番に、走査方向（列方向）に向かって有効ブロックが走査される。３列目を例に説明すると、まず、走査方向に走査すると、ブロック（３，２）と、ブロック（３，４）とが見つかる。その差分値は、「額」から「目の下」へ変化する場合の特徴を示すので、続けて、次の有効ブロックが走査される。次に、ブロック（３，５）が見つかり、ブロック（３，４）とブロック（３，５）との値の差分値が比較される。その差分値は、「目の下」から「頬」へ変化する場合の特徴を示すので、続けて、次の有効ブロックが走査される。次に、ブロック（３，６）が見つかり、ブロック（３，５）とブロック（３，６）との値の差分値が比較される。ブロック（３，６）は、「頬」と「首」との肌が混ざっているが、ブロック（３，５）とブロック（３，６）との差分値は、「頬」から「首」へ変化する場合の特徴を示すので、この画像は、人の顔の画像であると判断される。
【００９４】
再び、図３のフローチャートの説明に戻る。上述した第ｎ回目の顔判定処理（Ｓ３）が終了すると、その第ｎ回目の顔判定処理（Ｓ３）において、顔画像を検出したかを判断し（Ｓ３１１）、検出していれば（Ｓ３１１：Ｙｅｓ）、検出した顔画像を、Ｓ３０８においてユーザーから要求された補正内容に従って検出した顔画像を補正する（Ｓ３１２）。
【００９５】
そして、その補正した顔画像と、次の顔判定を実行するかのメッセージとをＬＣＤ１６に表示する（Ｓ３１３）。このＳ３１３で表示される内容を見てユーザーは、その補正した顔画像で満足であれば、次の顔判定処理を実行しないと決定し、その補正した顔画像で満足でなければ、次の顔判定を実行すると決定する。
【００９６】
一方、第ｎ回目の顔判定処理（Ｓ３）において、顔画像を検出できなかった場合には（Ｓ３１１：Ｎｏ）、顔画像を検出できなかった旨と次の顔判定を実行するかのメッセージとをＬＣＤ１６に表示する。このＳ３１１で表示される内容を見てユーザーは、納得すれば、次の顔判定を実行しないと決定し、不満であれば、次の顔判定を実行すると決定する。
【００９７】
こうして、ユーザーが次の顔判定を実行するのか、しないのかを決定し、その決定内容を入力すると、その内容を判断し（Ｓ３１５）、次の顔判定処理を実行しない場合には（Ｓ３１５）、本処理を終了する。一方、次の顔判定処理を実行しない場合には（Ｓ３１５）、顔判定回数カウンタｎに「１」を加算し（Ｓ３１６）、再び、第ｎ回目の顔判定処理（Ｓ３）が実行される。
【００９８】
この場合、一つ前に実行した第ｎ回目の顔判定処理（Ｓ３）の場合よりも、今回実行される第ｎ回目の顔判定処理（Ｓ３）の方が、ブロック情報抽出処理（Ｓ４）における肌色領域ポインタで示される長方形の領域を分割するブロックサイズが小さく設定される。即ち、今回実行される第ｎ回目の顔判定処理（Ｓ３）の方が、一つ前に実行した第ｎ回目の顔判定処理（Ｓ３）よりも肌色領域ポインタで示される長方形の領域が小さく細分化されることになる。
【００９９】
よって、今回実行される第ｎ回目の顔判定処理（Ｓ３）の方が、一つ前に実行した第ｎ回目の顔判定処理（Ｓ３）よりも判定時間が長く長時間掛かるものの、高精度に顔判定することができる。従って、一つ前に実行した第ｎ回目の顔判定処理（Ｓ３）では、顔画像が検出できなかったとしても、次の第ｎ回目の顔判定処理（Ｓ３）では、顔画像を検出することができる場合があり、長時間かかってもいいから高精度に顔画像が検出されることを望むユーザーにとっては、有効である。一方、一つ前に実行した第ｎ回目の顔判定処理（Ｓ３）の判定結果で満足であれば、それ以上の精度は要求されていないとして、ユーザーが要求する精度の範囲内で且つ短時間に顔判定を行うことができる。
【０１００】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【０１０１】
例えば、上記実施形態では、判定回数を重ねる度にブロックサイズを小さく細分化することで、高精度かつ長時間で顔画像を検出する場合について説明したが、判定回数を重ねる度に、高精度かつ長時間で顔画像を検出する手段としては、かかる場合に限定されるものではない。例えば、テンプレートとのマッチングを行うパターンマッチングを利用して、判定回数を重ねる度に、画像とマッチングさせるテンプレートの数を増加させていくようにしても良い。かかる場合であっても、判定を重ねる度に高精度かつ長時間で顔画像を検出することができる。
【０１０２】
また、上記実施形態では、判定回数を重ねるにつれて小さく設定される一つのブロックサイズをＲＯＭ１２のブロックサイズメモリに予め規定値として記憶しておく場合について説明したが、判定回数を重ねるにつれ、分割する領域をいかなる割合で細分化していくかをユーザーが任意に設定できるように構成しても良い。
【０１０３】
また、例えば、上記実施形態では、ブロックの走査方向を縦方向（列方向）に走査したが、画像が傾いている場合は、ブロックを横や斜めに走査してもよい。斜めに走査しても有効ブロックの値の差分値を求めることができるので、画像が傾いている場合でも人の顔の画像であると判断することができる。
【０１０４】
また、上記実施形態では、ＭＦＰ１により画像データを画像処理しているが、ＰＣのハードディスクに、上記実施形態の画像処理を行うプログラムを記憶しておき、ＰＣで画像データの画像処理を行っても良い。
【図面の簡単な説明】
【０１０５】
【図１】ＭＦＰの外観斜視図である。
【図２】ＭＦＰの電気的構成を示すブロック図である。
【図３】顔補正処理を示すフローチャートである。
【図４】肌色領域抽出処理を示すフローチャートである。
【図５】肌色領域判定処理を示すフローチャートである。
【図６】肌色領域抽出処理を説明するための図である。
【図７】第ｎ回目の顔判定処理を示すフローチャートである。
【図８】ブロック情報抽出処理を示すフローチャートである。
【図９】（ａ）は図４のＳ１４において必要となる所定の範囲内の肌色値を示すテーブルである。図９（ｂ）は肌色領域ポインタにより示される長方形領域を、複数のブロックで分割したイメージを示す図である。
【図１０】判定処理を示すフローチャートである。
【図１１】判定処理を示すフローチャートである。
【図１２】（ａ）は判定処理（Ｓ５）の概略を説明するための図である。（ｂ）は、領域が複数のブロックで分割された状態を示す図である。
【符号の説明】
【０１０６】
１                  ＭＦＰ（顔検出装置）
Ｓ１                肌色領域抽出手段
Ｓ３                顔判定手段
Ｓ４                ブロック情報形成手段と、
Ｓ５                判定手段と
Ｓ３１ａ            設定手段と、
Ｓ３０６            取得手段
Ｓ３１２            補正手段
Ｓ３１３，Ｓ３１４  提示手段
Ｓ３１５            判断手段
【図１】
2008191723.tif 000003
【図２】
2008191723.tif 000004
【図３】
2008191723.tif 000005
【図４】
2008191723.tif 000006
【図５】
2008191723.tif 000007
【図６】
2008191723.tif 000008
【図７】
2008191723.tif 000009
【図８】
2008191723.tif 000010
【図９】
2008191723.tif 000011
【図１０】
2008191723.tif 000012
【図１１】
2008191723.tif 000013
【図１２】
2008191723.tif 000014