(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
画像の特徴量に基づいて、ホワイトバランス補正のための補正パラメータを作成する手段と、
前記作成する手段によって作成された補正パラメータを用いて、前記画像に含まれる顔領域の特徴量を補正する手段と、
前記補正する手段による補正前後の前記顔領域の特徴量と予め決められた値とに応じて、前記顔領域の色補正の補正量を制御する手段とを有することを特徴とする画像処理装置。
【請求項２】
前記画像の特徴量は、前記画像のハイライトポイントとシャドーポイントの輝度値と色差値であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記顔領域の特徴量は、前記顔領域の平均色差値であることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記顔領域の色補正の補正量は、特徴量平面における前記補正する手段による補正前の前記顔領域の特徴量と前記予め決められた値との第１の距離と、前記補正する手段による補正後の前記顔領域の特徴量と前記予め決められた値との第２の距離との差分に基づいて制御されることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記第２の距離が前記第１の距離よりも大きい場合、前記第２の距離が前記第１の距離よりも小さい場合よりも前記顔領域の色補正の補正量を小さくすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記顔領域の色補正の補正量は、前記補正する手段による補正後の前記顔領域の輝度値に応じて制御されることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項７】
前記顔領域の色補正の補正量は、前記補正する手段による補正後の前記顔領域の平均輝度値において最大となるように制御されることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項８】
前記補正する手段による補正前後の前記顔領域の特徴量と前記予め決められた値とに基づき、前記ホワイトバランス補正の補正量を制御する手段を更に有することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記予め決められた値は、前記顔領域の色差の目標値であることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記特徴量平面は、色差平面であることを特徴とする請求項４又は５に記載の画像処理装置。
【請求項１１】
前記補正パラメータは、マトリックスであることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１２】
前記顔領域の色補正は、色差平面において、前記補正する手段による補正後の前記顔領域の平均色差値を中心とする所定の半径の円を設定し、前記円の内部を前記顔領域の色補正の適用範囲とすることを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
前記色差平面において、前記円の中心から離れるにつれて、前記顔領域の色補正の補正量を小さくすることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
画像処理装置における画像処理方法であって、
作成する手段が、画像の特徴量に基づいて、ホワイトバランス補正のための補正パラメータを作成する工程と、
補正する手段が、前記作成する工程において作成された補正パラメータを用いて、前記画像に含まれる顔領域の特徴量を補正する工程と、
制御する手段が、前記補正する工程における補正前後の前記顔領域の特徴量と予め決められた値とに応じて、前記顔領域の色補正の補正量を制御する工程とを有することを特徴とする画像処理方法。
【請求項１５】
コンピュータを請求項１乃至１３の何れか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像全体の色補正を行った後に、顔領域の色補正を行う画像処理方法及び画像処理装置に関するものである。
【背景技術】
【０００２】
近年、デジタルカメラとパーソナルコンピュータ（パソコン）の普及により、ユーザが写真をデジタル画像としてパソコンに取り込み、画像を補正するアプリケーションソフトを用いて自在に画像処理を行えるようになった。
【０００３】
この画像処理としては、例えば露出不足で暗く写ってしまった画像を明るくする補正や、色かぶりした肌色を補正し、適切な肌色にするといったものがある。
【０００４】
このような背景から、近年更に、精度の高い画像処理技術が必要となってくる。特に、オブジェクト抽出処理の技術開発が進歩し、画像の中から人物の顔を自動的に検出できるようになった。これに合わせて人物の顔領域から特徴量を求め、その特徴量に応じて画像を最適な明るさや色に補正するといった技術が数多く提案されている。
【０００５】
例えば、特許文献１では、画像のハイライトポイントから画像全体のホワイトバランス補正を行う際に、画像中から人物の肌色を検出して、ホワイトバランス補正された肌色と予め定められた目標色との色相差を判定する。判定した結果、色相差が小さくなる場合はホワイトバランス補正を行うが、色相差が大きくなってしまう場合にはホワイトバランス補正を行わないという技術を提案している。
【特許文献１】特開２００１−１４８８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の方法では、人物の肌色が目標色に対して少しでも遠ざかるとホワイトバランス補正を行わないため、顔検出の精度によって補正結果が大きく変わってしまう、という問題が生じる。また、ホワイトバランス補正のみで人物の肌色が必ずしも目標色になるとは限らない。
【０００７】
本発明は、画像全体の特徴量から画像全体に第一の色補正を行い、顔領域の特徴量から顔領域に第二の色補正を行うことで、画像全体と顔領域の両方に最適な色補正を行うことを目的とする。
【０００８】
また、第一の色補正による顔領域の補正先と目標色の距離から、第一、第二の色補正の補正量を決定することで、判定の誤作動を最小限に抑えることを目的とする。
【０００９】
更に、第二の色補正において輝度に応じて補正量を変えることで、顔領域以外の第一の色補正で補正された色を保持することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、画像処理装置であって、画像の特徴量に基づいて、ホワイトバランス補正のための補正パラメータを作成する手段と、前記作成する手段によって作成された補正パラメータを用いて、前記画像に含まれる顔領域の特徴量を補正する手段と、前記補正する手段による補正前後の前記顔領域の特徴量と予め決められた値とに応じて、前記顔領域の色補正の補正量を制御する手段とを有することを特徴とする。
【００１１】
また、本発明は、画像処理装置における画像処理方法であって、作成する手段が、画像の特徴量に基づいて、ホワイトバランス補正のための補正パラメータを作成する工程と、補正する手段が、前記作成する工程において作成された補正パラメータを用いて、前記画像に含まれる顔領域の特徴量を補正する工程と、制御する手段が、前記補正する工程における補正前後の前記顔領域の特徴量と予め決められた値とに応じて、前記顔領域の色補正の補正量を制御する工程とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像全体と顔領域の両方に最適な色補正を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１４】
図１は、本実施形態における画像処理システムの構成の一例を示す図である。画像処理システムは、ホストコンピュータであるパーソナルコンピュータ（パソコン）１００と、撮影装置であるデジタルカメラ１０６と、インクジェットプリンタなどのプリンタ１０５とで構成されている。
【００１５】
パソコン１００には、画像処理ソフト、ワープロ、表計算、インターネットブラウザなどのアプリケーション１０１、ＯＳ（オペレーティングシステム）１０２、モニタ１１１が含まれる。更に、アプリケーション１０１よりＯＳ１０２に発行される出力画像を示す各種描画命令群を処理して印刷データを作成するプリンタドライバ１０３がソフトウェアとしてインストールされている。また、デジタルカメラ１０６内のデータをＯＳ１０２に転送するデジタルカメラドライバ１０４がソフトウェアとしてインストールされる。
【００１６】
そして、パソコン１００は、上述のソフトウェアが動作可能な各種ハードウェアとしてハードディスクドライブ（ＨＤ）１０７、ＣＰＵ１０８、ＲＡＭ１０９、ＲＯＭ１１０などを備える。
【００１７】
図１に示す形態として、例えば一般的に普及しているＩＢＭ社のＡＴ互換機のパソコンにMicrosoft社のWindowsXP（登録商標）をＯＳとして使用する。そして、任意の印刷可能なアプリケーションがインストールされ、デジタルカメラ１０６とプリンタ１０５が接続されている。尚、パソコン１００とデジタルカメラ１０６及びプリンタ１０５との接続はＵＳＢや近距離無線通信など何れの形態でも構わない。
【００１８】
パソコン１００では、モニタ１１１に表示された表示画像に基づき、アプリケーション１０１が文字などのテキストに分類されるテキストデータ、自然画などに分類されるイメージ画像データなどを用いて出力画像データを作成する。そして、出力画像データを印刷出力する際に、アプリケーション１０１からＯＳ１０２に印刷出力要求を行い、イメージ画像データ部分はイメージ描画命令で構成される出力画像を示す描画命令群をＯＳ１０２に発行する。これにより、ＯＳ１０２はアプリケーション１０１からの出力要求を受け、プリンタ１０５に対応するプリンタドライバ１０３に描画命令群を発行する。
【００１９】
一方、プリンタドライバ１０３はＯＳ１０２から入力した印刷要求と描画命令群を処理し、プリンタ１０５で印刷可能な印刷データを作成してプリンタ１０５に転送する。ここで、プリンタ１０５がラスタープリンタであれば、プリンタドライバ１０３はＯＳ１０２からの描画命令に対して順次画像補正処理を行う。そして、順次ＲＧＢ２４ビットページメモリにラスタライズし、全ての描画命令をラスタライズした後にプリンタ１０５が印刷可能なデータ形式、例えばＣＭＹＫデータに変換し、プリンタ１０５に転送する。
【００２０】
本実施形態の画像処理システムは、特にデジタルカメラ１０６で撮影して得られた画像データをパソコン１００に入力しているため、デジタルカメラ１０６からパソコン１００へ画像データを送信をする構成になっている。
【００２１】
次に、デジタルカメラ１０６で撮影された画像をパソコン１００に入力し、画像全体を色補正を行った後、顔領域の色補正を行う画像処理方法について説明する。
【００２２】
デジタルカメラ１０６で撮影された画像データは、ＣＦカードやＳＤカードに代表されるＳＲＡＭに記録保存される。ユーザはそのデータを、デジタルカメラドライバ１０４を通じてパソコン１００内のＨＤ１０７に画像データとしてデータ転送することができる。また、アプリケーション１０１のうち画像処理ソフトを起動し、その画像データの明るさや色を補正処理する。
【００２３】
尚、本実施形態では、輝度色差（ＹＣｂＣｒ）信号に対して補正処理を行う。つまり、デジタルカメラドライバ１０４で取り込まれた画像をアプリケーション１０１で補正処理する際に、ＹＣｂＣｒ信号で保存されているＪＰＥＧ画像はそのまま処理することが可能である。しかし、ビットマップ画像やＴＩＦＦ画像は、ＲＧＢ信号で保存されているため、図２に示すように、ＲＧＢ信号をＹＣｂＣｒ信号に変換する。ＲＧＢ信号をＹＣｂＣｒ信号に変換する方法は公知であり、その詳細な説明は省略する。
【００２４】
まず、ＹＣｂＣｒ信号を画像解析処理によりハイライトポイント（ＨＬＰ）とシャドーポイント（ＳＤＰ）の輝度色差値（ＹＣｂＣｒ）を特徴量としてそれぞれ算出する。
【００２５】
この処理は、画像データの輝度信号から図３に示すように、輝度のヒストグラムを作成する。全画素を対象にしても良く、一定の間隔で画素を間引きしても良い。間引きをすることで、ヒストグラムの特性を保ったまま、データ量を縮小することができる。
【００２６】
この輝度ヒストグラムにおいて、最大輝度値（Ｙ＝２５５）から低輝度方向に向かってヒストグラムの度数を累積していき、全画素数に占める割合が所定の閾値を超える輝度値をＨＬＰの輝度値Ｙｈｌとする。また、最小輝度値（Ｙ＝０）から高輝度方向に向かってヒストグラムの度数を累積し、所定の閾値を超える輝度値をＳＤＰの輝度値Ｙｓｄとする。本実施形態では、閾値を０．５％とするが、その他の値でも良く、画像に応じて動的に変えても良い。
【００２７】
次に、ＨＬＰとＳＤＰにおけるＣｂ値とＣｒ値を算出する。ヒストグラム対象画素の中から輝度値がＹｈｌである画素を全て抽出し、それらのＣｂ値とＣｒ値を累積していく。累積されたＣｂ値とＣｒ値をそれぞれＹｈｌの度数で割ることで、Ｙｈｌにおける平均Ｃｂ値と平均Ｃｒ値が求められる。これをＨＬＰの色差値Ｃｂｈｌ、Ｃｒｈｌとする。また、ＳＤＰについても同様に、色差値Ｃｂｓｄ、Ｃｒｓｄとする。
【００２８】
ＨＬＰ＝（Ｙｈｌ、Ｃｂｈｌ、Ｃｒｈｌ）
ＳＤＰ＝（Ｙｓｄ、Ｃｂｓｄ、Ｃｒｓｄ）
上述の累積されたＣｂ値とＣｒ値は、ＹｈｌとＹｓｄが求められた後に、再度、全対象画素値を調べて算出しても良く、輝度ヒストグラムを作成すると同時に輝度毎に累積色差値を作成しておいても良い。
【００２９】
以上の演算により、ＹＣｂＣｒ色空間において入力画像のＨＬＰとＳＤＰが得られる。この２点が色空間のグレー軸上にあれば、一般的に画像のホワイトバランスは適正である。しかし、ＨＬＰとＳＤＰの２点がグレー軸上から外れていれば、画像は色かぶりをしているため、ホワイトバランス補正が必要となる。
【００３０】
即ち、色かぶりをしている画像に対しては、ＨＬＰとＳＤＰの２点がグレー軸上の任意の点に合致するように、ホワイトバランス補正を行う必要がある。そこで、本実施形態では、マトリックス演算によってホワイトバランス補正を行う。
【００３１】
ここで、マトリックス演算によるホワイトバランス補正を詳細に説明する。最初に、予め目標となるＨＬＰ、ＳＤＰを定めておく。ここでは、それぞれのＹＣｂＣｒ値を以下のように定義する。
【００３２】
ＨＬＰ＿ｔａｒｇｅｔ＝（Ｙｈｌｔ、Ｃｂｈｌｔ、Ｃｒｈｌｔ）
ＳＤＰ＿ｔａｒｇｅｔ＝（Ｙｓｄｔ、Ｃｂｓｄｔ、Ｃｒｓｄｔ）
ＨＬＰがＨＬＰ＿ｔａｒｇｅｔ、ＳＤＰがＳＤＰ＿ｔａｒｇｅｔになるための３行３列マトリックスは、一意に求まる。図４は、マトリックス演算によるホワイトバランス補正の様子を示す図である。ＨＬＰとＳＤＰをそれぞれの目標値に合わせることで、画像全体の色かぶりを補正し、被写体や背景を適正な色にすることができる。
【００３３】
ここで、目標となるＨＬＰとＳＤＰは、ＹＣｂＣｒ色空間の最上点（２５５、０、０）と最下点（０、０、０）としても良いが、図４に示すように、最上点と最下点から少し内側に入った点に設定している。このように、空間的に幅を持たせることで、マトリックス演算による色潰れを防ぐことができる。
【００３４】
ところで、上述したように、近年の顔抽出技術の発達に伴い、人物の写った画像の中から自動で顔領域を抽出できるようになった。例えば、フィルタ解析を行って顔を抽出するものや、色差信号から肌色領域を抽出するもの、パターン認識によって顔を抽出するものまで様々である。本実施形態では、顔検出の詳細な処理内容については割愛するが、以下に顔領域の平均値（特徴量）を算出する方法について詳細に説明する。
【００３５】
尚、抽出する顔領域は、図５に示すように、矩形で設定しても良いし、また輪郭抽出を行って肌色のみの領域を抽出しても良い。
【００３６】
まず、検出された顔領域において、図６に示すように、顔のヒストグラムを作成する。上述の画像全体のヒストグラムを作成すると同時に、対象画素が顔領域に存在するか否かを判定し、顔領域内に存在する画素についてのみ累積することで、顔領域のヒストグラムを作成することができる。
【００３７】
この顔領域のヒストグラムから平均輝度値Ｙａｖを求める。図６に示すヒストグラムにおいて、平均輝度値Ｙａｖを例示している。上述の画像全体のヒストグラムと同様、顔領域においても平均輝度値Ｙａｖに対して色差値を求める。この方法も、顔のヒストグラムにおいて、Ｙａｖの累積色差値を度数で割ることで、顔の平均Ｃｂ値と平均Ｃｒ値が求められる。つまり、顔平均値は以下のようになる。
【００３８】
顔平均値＝（Ｙａｖ、Ｃｂａｖ、Ｃｒａｖ）
ここで、顔の目標値を予め定めておく。具体的には、好ましい平均的な肌色で、顔平均値の補正先となる値である。本実施形態では、以下のように記述する。
【００３９】
顔の目標値＝（Ｙｆａｃｅ、Ｃｂｆａｃｅ、Ｃｒｆａｃｅ）
尚、顔の目標値の設定は、複数の画像から統計的に好ましい肌色を算出しても良いし、顔平均値に応じて可変にしても良い。例えば、平均輝度値Ｙａｖが任意の閾値よりも低い場合、Ｙｆａｃｅも下げることで、大幅に補正してしまうことを防ぐことができる。
【００４０】
一般的に、色かぶりをした画像はＨＬＰも顔平均値も同じように色かぶりをしている。そのため、上述のＨＬＰを用いたホワイトバランス補正を行えば、顔平均値も適正に補正され、目標値に近づくはずである。
【００４１】
しかし、実際には、デジタルカメラのカラーバランス特性やＨＬＰの検出精度により、ホワイトバランス補正を行っても顔平均値が目標値に必ず近づくとは限らない。むしろ、ホワイトバランス補正を行うことで顔平均値が目標値から遠ざかる場合も起こりうる。
【００４２】
そこで、ホワイトバランス補正後の顔平均値が、補正前の顔平均値に比べて、顔の目標値に近づいたか遠のいたかの判定を行い、補正の制御を行う。
【００４３】
上述したマトリックスにより、顔平均値（Ｙａｖ、Ｃｂａｖ、Ｃｒａｖ）を補正する。補正後の顔平均値を（Ｙａｖ’、Ｃｂａｖ’、Ｃｒａｖ’）とする。補正前の顔平均値と顔の目標値との距離をＤ＿ｂｅｆｏｒｅ、補正後の顔平均値と顔の目標値との距離をＤ＿ａｆｔｅｒとすると、以下の式となる。
【００４４】
Ｄ＿ｂｅｆｏｒｅ＝√｛（Ｙｆａｃｅ−Ｙａｖ）２＋（Ｃｂｆａｃｅ−Ｃｂａｖ）２＋（Ｃｒｆａｃｅ−Ｃｒａｖ）２｝  …式１
Ｄ＿ａｆｔｅｒ＝√｛（Ｙｆａｃｅ−Ｙａｖ’）２＋（Ｃｂｆａｃｅ−Ｃｂａｖ’）２＋（Ｃｒｆａｃｅ−Ｃｒａｖ’）２｝  …式２
この２つの距離の差分をΔＤとする。
【００４５】
ΔＤ＝Ｄ＿ｂｅｆｏｒｅ−Ｄ＿ａｆｔｅｒ  …式３
このΔＤが正の値の場合、補正によって顔平均値が目標値に近づいたことを表し、ホワイトバランス補正が正常に行われていることを意味する。一方、ΔＤが負の値の場合、補正によって目標値から遠ざかったことになり、ホワイトバランス補正が顔の補正に対して正常に行われていない可能性があることを意味する。
【００４６】
そこで、このΔＤの値に応じて、ホワイトバランス補正の強度を変える必要がある。ΔＤが負の値の場合、ホワイトバランス補正の補正量にΔＤの関数の第一の修正係数ｋ１（ΔＤ）をかけ、ホワイトバランス補正を弱めていき、所定の値以下では、第一の修正係数ｋ１（ΔＤ）を０とする。これ以降、「第一の修正係数ｋ１（ΔＤ）」を単に「修正係数ｋ１（ΔＤ）」と称す。
【００４７】
図７は、距離の差分ΔＤと修正係数ｋ１（ΔＤ）との関係を示す図である。ΔＤが正の値の場合は、上述のようにホワイトバランス補正をそのままかければよいため、修正係数ｋ１（ΔＤ）を１としている。また、ΔＤ＝０においても、修正係数ｋ１（ΔＤ）を１としている。これは、顔平均値がホワイトバランス補正によって目標値に近づかなくても、画像全体の色かぶりが補正されるため、ホワイトバランス補正を行う必要がある。
【００４８】
一方、ΔＤが負の値になると、修正係数ｋ１（ΔＤ）を１から小さくしていき、最終的に０とする。これは、ΔＤが負の範囲において修正係数ｋ１（ΔＤ）を全て０にすると、修正係数ｋ１（ΔＤ）が不連続となり、補正のかかる度合いが急激に変わってしまうためである。例えば、複数の類似画像でΔＤが０近辺の場合、ある画像には補正がかかり、別の画像には補正が全くかからないという現象が生じてしまう。ちなみに、図７に示す例では、ΔＤ＝−２０で修正係数ｋ１（ΔＤ）＝０としている。
【００４９】
また、上述したように、デジタルカメラのカラーバランス特性が正確でないと、ＨＬＰと肌色のカラーバランスが合っていないことがある。そのため、肌色がホワイトバランス補正によって目標色に近づかなくても、必ずしもホワイトバランス補正が適正でないとは言い切れない。
【００５０】
このような問題に対処するため、本実施形態では、Ｄが負の値でも修正係数ｋ１（ΔＤ）は有限の値を持ち、所定の点（図７では、ΔＤ＝−２０）で０としている。即ち、ΔＤ＝−２０の点でホワイトバランス補正を行わないようにしている。これにより、ホワイトバランス補正による顔平均値の判定に幅を持たせ、類似画像で補正結果が大きく異なってしまう不具合や、入力画像のカラーバランス精度や誤差に対応できる。
【００５１】
この修正係数ｋ１（ΔＤ）を、先に求めたマトリックスの係数に乗算して、それをホワイトバランス補正量とする。こうして得られたホワイトバランス補正量を補正前の画素値にかけることで、補正画素値を算出することができる。
【００５２】
また、補正画素値を求める別の方法として、補正前の画素値とホワイトバランス補正後の画素値の差分に修正係数ｋ１（ΔＤ）を乗算し、その結果を補正前の画素値に加算しても良い。つまり、修正係数ｋ１（ΔＤ）をマトリックスの係数に直接かけるのではなく、マトリックスによる補正分に修正係数ｋ１（ΔＤ）をかけるというものである。即ち、補正前の画素値を（ＹＣｂＣｒ）、ホワイトバランス補正後の画素値を（ＹＣｂＣｒ）’とすると、修正係数ｋ１（ΔＤ）を加味した最終的な画素値（ＹＣｂＣｒ）''は、以下の式となる。
【００５３】
Ｙ''  ＝Ｙ＋（Ｙ’−Ｙ）＊ｋ１（ΔＤ）  …式４
Ｃｂ''＝Ｃｂ＋（Ｃｂ’−Ｃｂ）＊ｋ１（ΔＤ）  …式５
Ｃｒ''＝Ｃｒ＋（Ｃｒ’−Ｃｒ）＊ｋ１（ΔＤ）  …式６
ホワイトバランス補正による差分を修正係数ｋ１（ΔＤ）で修正することで、ホワイトバランス補正の補正量（補正の度合い）を制御している。
【００５４】
以上説明したように、画像全体のＨＬＰとＳＤＰからマトリックス演算によって画像全体のホワイトバランス補正を行う。続いて、顔の平均値がホワイトバランス補正によって目標値に近づくか否かを判定し、修正係数ｋ１（ΔＤ）を算出してホワイトバランス補正の補正量を制御する。しかし、この段階では、まだ顔平均値が目標値に一致しているとは限らない。そこで、顔平均値が目標値に一致するように、顔平均値に対して、輝度補正と色補正を行う。
【００５５】
ホワイトバランス補正を行った後の顔平均値を（Ｙａｖ''、Ｃｂａｖ''、Ｃｒａｖ''）、顔の目標値を（Ｙｆａｃｅ、Ｃｂｆａｃｅ、Ｃｒｆａｃｅ）とする。まず、輝度補正によってＹａｖ''をＹｆａｃｅに一致させる。これは単純にトーンカーブを用いて輝度補正を行えば良い。
【００５６】
図８は、トーンカーブとＹａｖ''、Ｙｆａｃｅの関係を示す図である。本実施形態では、以下のようにガンマ値を求め、ガンマ補正を行う。
【００５７】
γ＝ｌｏｇ（Ｙａｖ''）／ｌｏｇ（Ｙｆａｃｅ）  …式７
ｙ’＝２５５＊｛（ｙ／２５５）γ｝  …式８
上記式８で表されるトーンカーブを用いて全画素に対する輝度補正を行う。画像全体に輝度補正を行うことで顔領域以外も補正されるが、画像全体の輝度が一様に変化するため、主要被写体である顔領域と背景領域の輝度バランスが保たれる。
【００５８】
次に、顔平均値の色補正を行う。これは、顔の輝度補正が施された顔平均色差値（Ｃｂａｖ''、Ｃｒａｖ''）を顔の目標値（Ｃｂｆａｃｅ、Ｃｒｆａｃｅ）に一致させる補正である。ここでは、色差平面内でベクトル補正を行う方法について説明する。ベクトル補正とは、顔平均色差値（Ｃｂａｖ''、Ｃｒａｖ''）に対してベクトル補正量を加算することで、顔の目標色に合わせる補正である。ベクトル補正量を（ΔＣｂ、ΔＣｒ）とすると、以下の式のように表せる。
【００５９】
ΔＣｂ＝Ｃｂｆａｃｅ−Ｃｂａｖ''  …式９
ΔＣｒ＝Ｃｒｆａｃｅ−Ｃｒａｖ''  …式１０
図９に示すように、このベクトル補正量を画素値に対して加算することで、輝度に影響を及ぼさずに色差補正を行うことができる。また、先に説明した修正係数ｋ１（ΔＤ）を、このΔＣｂ、ΔＣｒにかけても良い。つまり、上述のホワイトバランス補正もこのベクトル補正も顔領域の色味を変える補正であるため、修正係数ｋ１（ΔＤ）をホワイトバランス補正だけでなくベクトル補正にもかけることで、色補正の誤作動を抑えることができる。この場合、ΔＣｂ、ΔＣｒは以下のようになる。
【００６０】
ΔＣｂ＝（Ｃｂｆａｃｅ−Ｃｂａｖ''）＊ｋ１（ΔＤ）  …式１１
ΔＣｒ＝（Ｃｒｆａｃｅ−Ｃｒａｖ''）＊ｋ１（ΔＤ）  …式１２
これにより、ホワイトバランス補正前後（画像全体の色補正前後）の顔の平均色差値と顔の目標値とに応じて、顔領域のホワイトバランス補正量（色補正量）を修正して、適切な顔領域の色補正を行うことができる。具体的には、ホワイトバランス補正によって顔の平均色差値が顔の目標色差値に近づけば、顔の平均色差値が顔の目標値になるように顔の色補正を行う。ホワイトバランス補正によって顔の平均色差値が顔の目標色差値から遠ざかれば、顔の色補正の度合いを小さくする。
【００６１】
尚、ホワイトバランス補正前後の顔の平均輝度値と顔の目標輝度値に基づいて補正を行っても良い。
【００６２】
しかしながら、画像全体に上述のベクトル補正を行うと、先に行ったホワイトバランス補正で補正済みの領域にも色補正の影響が及んでしまう。特に、白に近い色の被写体に対しては、ベクトル補正量の分だけ色が付いてしまうことになり、画像全体の画質の悪化を招いてしまう。例えば、白い雲が肌色になってしまう、といった事例が挙げられる。そのため、ベクトル補正量を輝度に応じて変えることで、このような弊害（特に、画像のハイライト領域の弊害）を防ぐことができる。その方法を以下に説明する。
【００６３】
顔平均色差値（Ｃｂａｖ''、Ｃｒａｖ''）を顔の目標値（Ｃｂｆａｃｅ、Ｃｒｆａｃｅ）に一致させることで、画像中の主要被写体である顔を適正な色に補正する。一方、他の領域（特に、ハイライト領域）には、この肌色に特化した色差補正の影響を与えないようにする。
【００６４】
そこで、ベクトル補正量を輝度に応じて修正することで、顔領域ではベクトル補正をかけ、ハイライト部ではベクトル補正を弱めるようにする。輝度に応じた修正係数を第二の修正係数ｋ２（Ｙ）とし、（ΔＣｂ、ΔＣｒ）に対してｋ２（Ｙ）を乗算することで、任意の輝度値におけるベクトル補正量とする。これ以降、「第二の修正係数ｋ２（Ｙ）」を単に「修正係数ｋ２（Ｙ）」と称す。
【００６５】
図１０は、ベクトル補正量を輝度に応じて修正する係数の一例を示す図である。即ち、顔領域に対してベクトル補正を最大にかけ、ハイライト領域ではベクトル補正をかけないようにするためには、顔の目標輝度値Ｙｆａｃｅでは修正係数ｋ２（Ｙ）＝１、最大輝度値（Ｙ＝２５５）では修正係数ｋ２（Ｙ）＝０となるように設定する。
【００６６】
顔の輝度補正を終えた段階で、顔の平均値は（Ｙｆａｃｅ、Ｃｂａｖ''、Ｃｒａｖ''）となっている。この点を顔の目標値（Ｙｆａｃｅ、Ｃｂｆａｃｅ、Ｃｒｆａｃｅ）に一致するように色補正を行う。具体的には、輝度値がＹｆａｃｅにおいて、（Ｃｂａｖ''、Ｃｒａｖ''）が（Ｃｂｆａｃｅ、Ｃｒｆａｃｅ）になるように、顔の平均色差値に式９、式１０（もしくは、式１１、式１２）の（ΔＣｂ、ΔＣｒ）を加算する。つまり、輝度値Ｙｆａｃｅにおいては、修正係数ｋ２（Ｙ）＝１とするため、輝度値がＹｆａｃｅの画素に対して色差値に（ΔＣｂ、ΔＣｒ）を加算する。
【００６７】
一方、注目画素の輝度値がＹｆａｃｅから離れるにつれ、注目画素が顔領域から外れていると考えられる。また、ハイライト領域に近づくにつれ、注目画素の色差値が小さくなるため、ベクトル補正量の影響が大きくなる。そのため、Ｙｆａｃｅからの距離に応じて、修正係数ｋ２（Ｙ）を減少させていき、顔以外の領域やハイライト領域でのベクトル補正量を小さくしていく。図１０において、線１で示すように、Ｙｆａｃｅから最大輝度値（Ｙ＝２５５）までを直線で結び、これを修正係数ｋ２（Ｙ）としている。
【００６８】
このように、連続的に修正係数ｋ２（Ｙ）を変えていくことで、疑似輪郭を抑えながら色補正を行うことができる。ホワイトバランス補正後の画素値を（ＹＣｂＣｒ）’、最終的な画素値を（ＹＣｂＣｒ）''とすると、以下の式となる。
【００６９】
Ｙ''  ＝２５５＊｛（Ｙ’／２５５）γ｝  …式１３
Ｃｂ''＝Ｃｂ’＋ΔＣｂ＊ｋ２（Ｙ''）  …式１４
Ｃｒ''＝Ｃｒ’＋ΔＣｒ＊ｋ２（Ｙ''）  …式１５
Ｙｆａｃｅから最大輝度値までの範囲の修正係数ｋ２（Ｙ）については、上述した通りである。Ｙｆａｃｅから最小輝度値（Ｙ＝０）の範囲については、本実施形態では、特に制限を設けない。シャドー領域は多少色が付いても、ハイライト領域に比べて目立たず、大幅に画質が劣化することもない。図１０では、最小輝度値で修正係数ｋ２（Ｙ）を０としたが、有限の値になっても良い。
【００７０】
ホワイトバランス補正を行ったハイライト領域のカラーバランスを崩してしまわないよう、修正係数ｋ２（Ｙ）でベクトル補正を制御することを説明した。ＨＬＰが精度良く検出されれば、尚更ハイライト領域をベクトル補正してはいけないことになる。そのため、ＨＬＰの検出精度を示すΔＤを用いて図１０に示す修正係数ｋ２（Ｙ）のハイライト領域を調整しても良い。例えば、ΔＤが負の値の場合、図１０の修正係数ｋ２（Ｙ）は線１で表される直線となり、ΔＤが正の値の場合、線２のようにハイライト領域で修正係数ｋ２（Ｙ）が小さくなるような曲線とする。
【００７１】
つまり、ＨＬＰから求めたマトリックス演算によって顔平均値が顔の目標値に近づくのであれば（ΔＤ＞０）、ＨＬＰの検出が正しくなされており、それに伴うホワイトバランス補正が正常に動作していることになる。
【００７２】
したがって、正常なホワイトバランス補正されたハイライト領域は、カラーバランスを保持するように、通常よりベクトル補正の影響を弱める必要がある。そのため、図１０に示す線２のように修正係数ｋ２（Ｙ）を小さくすることで、ベクトル補正量を弱めることができる。
【００７３】
他の実施形態として、顔領域の色補正を行う際に、ベクトル補正の適用範囲を設定する。肌色を適正にする色補正を、肌色以外の領域（例えば青空や草木の緑）などに適用してしまうと、画像全体の画質が劣化してしまう。そこで、色差平面において、ホワイトバランス補正後の顔平均色差値（Ｃｂａｖ''、Ｃｒａｖ''）を中心とする任意の半径の円を設定し、その円の内部をベクトル補正の適用範囲とすれば良い。
【００７４】
図９では、円弧より図面右上側を適用範囲としている。この円は、補正ベクトル（太線）より大きな半径で設定され、その中心地（Ｃｂａｖ''、Ｃｒａｖ''）ではベクトル補正量が最大（図示するベクトル）であり、円の中心から離れるにしたがってベクトル補正量を弱めていき、円弧上では０とする。
【００７５】
上述したように適用範囲を設定することで、肌色のみにベクトル補正を行い、肌色以外の領域には色補正の影響を与えないようにすることができる。また、円の大きさを図９に示すベクトル量より大きくすることで、色の反転を防ぐことができる。また、円の中心から離れるにしたがって傾きが緩やかなカーブによりベクトル補正量を弱めることで、疑似輪郭の発生を抑えることができる。
【００７６】
別の実施形態として、顔を検出する際に、検出した顔の信頼度（顔検出信頼度）も求め、その顔検出信頼度を補正量の制御に用いても良い。ここで、顔検出信頼度が高ければ、積極的に補正を行えば良い。一方、顔検出信頼度が低ければ、誤補正をする確率が高くなるため、補正強度を弱める必要がある。
【００７７】
そこで、上述した３つの補正（ホワイトバランス補正、顔の輝度補正、顔の色補正）に対して、各補正量に顔検出信頼度（０〜１００％）を乗算する。つまり、顔検出信頼度が１００％の場合は、得られた補正量をそのまま用いて補正を行う。また、顔検出信頼度が、例えば７０％の場合は、得られた補正量に０．７を乗算することで、通常よりも補正を弱める。こうすることで、誤補正を減らし、最適な補正を行うことができる。
【００７８】
以上説明した実施形態では、画像全体のホワイトバランス補正を行った後に、顔平均値が顔目標値になるよう輝度補正と色補正を行う。その際に、第一の修正係数ｋ１（ΔＤ）と第二の修正係数ｋ２（Ｙ）を用いて補正強度の制御を行う。
【００７９】
図１１は、全体的な補正処理のフローを説明するための図である。図１１において、点Ａは補正を行う前に検出された顔平均値である。点Ｂはマトリックス演算と修正係数ｋ１（ΔＤ）によりホワイトバランス補正された顔平均値である。点Ｃはトーンカーブにより輝度補正された顔平均値である。そして、点Ｄはベクトル補正により色補正された顔平均値である。
【００８０】
まず、画像のＨＬＰとＳＤＰから画像全体の色かぶりを補正するために、マトリックス演算を行う。このマトリックス演算により点Ａが点Ｂへ補正されるとする。ここで、補正前の顔平均値と顔の目標値との距離（線分ＡＤ）と、補正された顔平均値と顔の目標値との距離（線分ＢＤ）を比較する。上述のマトリックス演算によって点Ｂが点Ａよりも点Ｄに近づく、或いは等しいならば図７に示すように、そのままホワイトバランス補正を行う。また、点Ｂが点Ａよりも点Ｄから遠ざかるなら修正係数ｋ１（ΔＤ）をかけてホワイトバランス補正の強度を弱める。
【００８１】
次に、顔の平均輝度値を顔の目標輝度値に合わせるように輝度補正を行う。図８に示すようなトーンカーブを画像全体に適用することで、点Ｂを点Ｃに移動させることができる。ここでは輝度のみの補正であるため、画像のハイライト領域に色が付くことはない。
【００８２】
最後に、顔の平均色差値を顔の目標色差値に合わせるように、色補正を行う。図９に示すようなベクトル補正量を求め、図７に示す修正係数ｋ１（ΔＤ）と図１０に示す修正係数ｋ２（Ｙ）によって補正を行う。また、ΔＤの値により、図１０に示す線１や線２のように、修正係数ｋ２（Ｙ）の特性を変えても良い。
【００８３】
更に、顔の色補正を適用する範囲を設定し、その範囲内でベクトル補正を行っても良い。また、検出された顔の信頼度を、補正強度の制御に用いても良い。
【００８４】
このように、画像全体の色補正と顔領域の色補正を、顔の平均値を用いることで、その補正量を制御し、顔領域とハイライト領域に最適な色補正を行うことができる。
【００８５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００８６】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００８７】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００８８】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００９０】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９１】
【図１】本実施形態における画像処理システムの構成の一例を示す図である。
【図２】ＲＧＢ信号からＹＣｂＣｒ信号への変換を示す図である。
【図３】画像全体における輝度ヒストグラムの一例を示す図である。
【図４】ホワイトバランス補正の一例を示す図である。
【図５】抽出する顔領域の一例を示す図である。
【図６】顔領域における輝度ヒストグラムの一例を示す図である。
【図７】距離の差分ΔＤと修正係数ｋ１（ΔＤ）との関係を示す図である。
【図８】トーンカーブとＹａｖ''、Ｙｆａｃｅの関係を示す図である。
【図９】色差平面内でベクトル補正を行う方法を説明するための図である。
【図１０】ベクトル補正量を輝度に応じて修正する係数の一例を示す図である。
【図１１】全体的な補正処理のフローを説明するための図である。
【符号の説明】
【００９２】
１００  パーソナルコンピュータ（パソコン）
１０１  アプリケーション
１０２  ＯＳ（オペレーティングシステム）
１０３  プリンタドライバ
１０４  デジタルカメラドライバ
１０５  プリンタ
１０６  デジタルカメラ
１０７  ハードディスクドライブ（ＨＤ）
１０８  ＣＰＵ
１０９  ＲＡＭ
１１０  ＲＯＭ
１１１  モニタ
【図１】
0005067852.tif 000002
【図２】
0005067852.tif 000003
【図３】
0005067852.tif 000004
【図４】
0005067852.tif 000005
【図５】
0005067852.tif 000006
【図６】
0005067852.tif 000007
【図７】
0005067852.tif 000008
【図８】
0005067852.tif 000009
【図９】
0005067852.tif 000010
【図１０】
0005067852.tif 000011
【図１１】
0005067852.tif 000012