(57)【要約】【課題】目領域の尤度により顔領域の尤度が補正強度に及ぼす影響を制御するようにして、良好な補正結果を得ることができるようにする。【解決手段】画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する際に、前記画像から顔領域、目領域及び赤目領域をそれぞれ検出する検出工程と、前記検出した顔領域、目領域及び赤目領域のそれぞれについて尤度を算出する尤度算出工程と、前記算出された顔尤度と目尤度と赤目尤度とに基づいて補正強度を算出する補正強度算出工程と、前記算出された補正強度に基づいて前記赤目領域を補正する赤目補正工程とを設け、目検出の尤度が十分に高い場合には、顔検出の尤度を用いずに目領域の尤度と赤目領域の尤度だけで補正強度を決定するようにして、信頼度の高い赤目に対しては顔検出の尤度の影響を受けることなく強度を強くできるようにする。【選択図】図１
2011022865.tif 000002
【特許請求の範囲】
【請求項１】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理方法であって、
前記画像から顔領域を検出する顔検出工程と、
前記画像から目領域を検出する目検出工程と、
前記画像から赤目領域を検出する赤目検出工程と、
前記目検出工程により検出した目領域の尤度から顔尤度を補正する顔尤度補正工程と、
前記顔尤度と目尤度と赤目尤度とに基づいて補正強度を算出する補正強度算出工程と、
前記補正強度算出工程により算出した補正強度に基づいて赤目領域を補正する赤目領域補正工程とを有することを特徴とする画像処理方法。
【請求項２】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理方法であって、
前記画像から顔領域を検出する顔検出工程と、
前記顔検出工程において検出された顔領域の尤度である顔尤度を取得する顔尤度取得工程と、
前記顔検出工程の結果に基づき目領域を検出する目検出工程と、
前記目検出工程において検出された目領域の尤度である目尤度を取得する目尤度取得工程と、
前記目検出工程の結果に基づき赤目領域を検出する赤目検出工程と、
前記赤目検出工程において検出された赤目領域の尤度である赤目尤度を取得する赤目尤度取得工程と、
前記顔尤度と、前記目尤度と、前記赤目尤度を用いて補正強度の決定方法を制御する補正強度制御工程と、
前記補正強度に基づいて前記赤目領域の色を補正する赤目補正工程とを有し、
前記補正強度制御工程において、前記目尤度が所定の条件を満たす場合には目尤度と赤目尤度で補正強度を決定し、前記目尤度が所定の条件を満たさない場合には顔尤度と目尤度と赤目尤度で補正強度を決定することを特徴とする画像処理方法。
【請求項３】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理方法であって、
前記画像から顔領域を検出する顔検出工程と、
前記顔検出工程において検出された顔領域の尤度である顔尤度を取得する顔尤度取得工程と、
前記顔検出工程の結果に基づき目領域を検出する目検出工程と、
前記目検出工程において検出された目領域の尤度である目尤度を取得する目尤度取得工程と、
前記目検出工程の結果に基づき赤目領域を検出する赤目検出工程と、
前記赤目検出工程において検出された赤目領域の尤度である赤目尤度を取得する赤目尤度取得工程と、
前記顔尤度と、前記目尤度と、前記赤目尤度を用いて補正強度の決定方法を制御する補正強度制御工程とを有し、
前記補正強度制御工程において、前記目尤度が所定の条件を満たす場合には、前記目尤度に基づいて顔尤度を補正する顔尤度補正工程を有し、前記顔尤度補正工程で補正した顔尤度と目尤度と赤目尤度とを用いて赤目領域の色を補正する際の補正強度を決定することを特徴とする画像処理方法。
【請求項４】
前記所定の条件を満たす場合とは、前記目尤度が予め定めた閾値より高い場合であることを特徴とする請求項２または３に記載の画像処理方法。
【請求項５】
前記顔尤度補正工程とは、顔尤度を最大にする処理であることを特徴とする請求項３に記載の画像処理方法。
【請求項６】
前記顔尤度補正工程とは、前記目尤度に基づいて顔尤度を上げる演算を行う処理であることを特徴とする請求項３に記載の画像処理方法。
【請求項７】
前記顔尤度補正工程とは、前記顔尤度取得工程で取得した顔尤度と前記目尤度の最大値を顔尤度とする処理であることを特徴とする請求項３に記載の画像処理方法。
【請求項８】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理装置であって、
前記画像から顔領域を検出する顔検出手段と、
前記画像から目領域を検出する目検出手段と、
前記画像から赤目領域を検出する赤目検出手段と、
前記目検出手段により検出した目領域の尤度から顔尤度を補正する顔尤度補正手段と、
前記顔尤度と目尤度と赤目尤度とに基づいて補正強度を算出する補正強度算出手段と、
前記補正強度算出手段により算出した補正強度に基づいて赤目領域を補正する赤目領域補正手段とを有することを特徴とする画像処理装置。
【請求項９】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理装置であって、
前記画像から顔領域を検出する顔検出手段と、
前記顔検出手段により検出された顔領域の尤度である顔尤度を取得する顔尤度取得手段と、
前記顔検出手段の結果に基づき目領域を検出する目検出手段と、
前記目検出手段により検出された目領域の尤度である目尤度を取得する目尤度取得手段と、
前記目検出手段の結果に基づき赤目領域を検出する赤目検出手段と、
前記赤目検出手段により検出された赤目領域の尤度である赤目尤度を取得する赤目尤度取得手段と、
前記顔尤度と、前記目尤度と、前記赤目尤度を用いて補正強度の決定方法を制御する補正強度制御手段と、
前記補正強度に基づいて前記赤目領域の色を補正する赤目補正手段とを有し、
前記補正強度制御手段により、前記目尤度が所定の条件を満たす場合には目尤度と赤目尤度で補正強度を決定し、前記目尤度が所定の条件を満たさない場合には顔尤度と目尤度と赤目尤度で補正強度を決定することを特徴とする画像処理装置。
【請求項１０】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理装置であって、
前記画像から顔領域を検出する顔検出手段と、
前記顔検出手段により検出された顔領域の尤度である顔尤度を取得する顔尤度取得手段と、
前記顔検出手段の結果に基づき目領域を検出する目検出手段と、
前記目検出手段により検出された目領域の尤度である目尤度を取得する目尤度取得手段と、
前記目検出手段の結果に基づき赤目領域を検出する赤目検出手段と、
前記赤目検出手段により検出された赤目領域の尤度である赤目尤度を取得する赤目尤度取得手段と、
前記顔尤度と、前記目尤度と、前記赤目尤度を用いて補正強度の決定方法を制御する補正強度制御手段とを有し、
前記補正強度制御手段により、前記目尤度が所定の条件を満たす場合には、前記目尤度に基づいて顔尤度を補正する顔尤度補正手段を有し、前記顔尤度補正手段で補正した顔尤度と目尤度と赤目尤度とを用いて赤目領域の色を補正する際の補正強度を決定することを特徴とする画像処理装置。
【請求項１１】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理をコンピュータに実行させるプログラムであって、
前記画像から顔領域を検出する顔検出工程と、
前記画像から目領域を検出する目検出工程と、
前記画像から赤目領域を検出する赤目検出工程と、
前記目検出工程により検出した目領域の尤度から顔尤度を補正する顔尤度補正工程と、
前記顔尤度と目尤度と赤目尤度とに基づいて補正強度を算出する補正強度算出工程と、
前記補正強度算出工程により算出した補正強度に基づいて赤目領域を補正する赤目領域補正工程とをコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理をコンピュータに実行させるプログラムであって、
前記画像から顔領域を検出する顔検出工程と、
前記顔検出工程において検出された顔領域の尤度である顔尤度を取得する顔尤度取得工程と、
前記顔検出工程の結果に基づき目領域を検出する目検出工程と、
前記目検出工程において検出された目領域の尤度である目尤度を取得する目尤度取得工程と、
前記目検出工程の結果に基づき赤目領域を検出する赤目検出工程と、
前記赤目検出工程において検出された赤目領域の尤度である赤目尤度を取得する赤目尤度取得工程と、
前記顔尤度と、前記目尤度と、前記赤目尤度を用いて補正強度の決定方法を制御する補正強度制御工程と、
前記補正強度に基づいて前記赤目領域の色を補正する赤目補正工程とをコンピュータに実行させ、
前記補正強度制御工程において、前記目尤度が所定の条件を満たす場合には目尤度と赤目尤度で補正強度を決定し、前記目尤度が所定の条件を満たさない場合には顔尤度と目尤度と赤目尤度で補正強度を決定するようコンピュータに実行させることを特徴とするプログラム。
【請求項１３】
画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理をコンピュータに実行させるプログラムであって、
前記画像から顔領域を検出する顔検出工程と、
前記顔検出工程において検出された顔領域の尤度である顔尤度を取得する顔尤度取得工程と、
前記顔検出工程の結果に基づき目領域を検出する目検出工程と、
前記目検出工程において検出された目領域の尤度である目尤度を取得する目尤度取得工程と、
前記目検出工程の結果に基づき赤目領域を検出する赤目検出工程と、
前記赤目検出工程において検出された赤目領域の尤度である赤目尤度を取得する赤目尤度取得工程と、
前記顔尤度と、前記目尤度と、前記赤目尤度を用いて補正強度の決定方法を制御する補正強度制御工程とをコンピュータに実行させ、
前記補正強度制御工程において、前記目尤度が所定の条件を満たす場合には、前記目尤度に基づいて顔尤度を補正する顔尤度補正工程を有し、前記顔尤度補正工程で補正した顔尤度と目尤度と赤目尤度とを用いて赤目領域の色を補正する際の補正強度を決定するようコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
請求項１１〜１３の何れか１項に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理方法及び画像処理装置に関し、特に、デジタルカメラにより撮影して得られたデジタル画像データ中に発生する赤目現象を処理するために用いて好適な技術に関する。
【背景技術】
【０００２】
夜間の屋外や暗い照明の部屋で人物を撮影する際に、フラッシュを発光して撮影すると被写体の目の部分が赤くなるいわゆる赤目画像となることがある。このような赤目画像に対して瞳の色を正常な色に補正する技術に関する関心は高い。
【０００３】
特許文献１では、赤目として検出した画素の色情報に基づいて赤目である確率を求め、この確率により補正強度を決定して赤目補正を行っている。また、特許文献２では顔検出の信頼度と赤目領域の信頼度に基づいて補正強度を決定して赤目補正を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３４５５１３号公報
【特許文献２】特開２００５−２８６８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では画素の色情報のみで補正強度を決定しているため、仮に検出した領域が赤目ではなく赤味の強い肌であった場合にも強い強度で補正を行い、肌の部分を強く誤補正してしまう課題がある。
【０００６】
これに対し、特許文献２では赤目画素の色情報だけでなく、顔領域の信頼度も考慮して補正強度を決定している。この方法では、顔検出の信頼度が低い場合に補正強度が弱く設定されるため前述の問題は解決される。ところが、顔領域の信頼度への依存が強いため、仮に正しい赤目領域を検出したとしても顔領域の信頼度が低い場合には補正強度が弱く設定されてしまうので、結果として補正処理を行っても赤色が残ってしまうという課題がある。
【０００７】
本発明は前述の問題点に鑑み、目領域の尤度により顔領域の尤度が補正強度に及ぼす影響を制御するようにして、良好な補正結果を得ることができるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明の画像処理方法は、画像から赤目領域を検出し、該検出した赤目領域の色を正常な瞳の色に補正する画像処理方法であって、前記画像から顔領域を検出する顔検出工程と、前記画像から目領域を検出する目検出工程と、前記画像から赤目領域を検出する赤目検出工程と、前記目検出工程により検出した目領域の尤度から顔尤度を補正する顔尤度補正工程と、前記顔尤度と目尤度と赤目尤度とに基づいて補正強度を算出する補正強度算出工程と、前記補正強度算出工程により算出した補正強度に基づいて赤目領域を補正する赤目領域補正工程とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、目領域の尤度により顔領域の尤度が補正強度に及ぼす影響を制御することができ、良好な補正結果を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】画像処理装置の構成例を示すブロック図である。
【図２】顔検出結果の矩形領域を示した図である。
【図３】顔領域の平均輝度Yaveと輝度評価ポイントYpを示した図である。
【図４】目検出の結果得られる目の特徴点を示した図である。
【図５】口角を結ぶ直線と両目の中心点を結ぶ直線とを示した図である。
【図６】目検出が失敗した場合の口角を結ぶ直線と両目の中心点を結ぶ直線とを示した図である。
【図７】目尻、目頭を結ぶ直線の傾きを示した図である。
【図８】目検出が失敗した場合の目尻、目頭を直線の傾きを示した図である。
【図９】口角を結ぶ直線と目中心点間を結ぶ直線がなす角度を説明する図である。
【図１０】目中心点を結ぶ直線の傾き角Faと位置関係評価ポイントPpの関係を示した図である。
【図１１】直線C,Dがなす角度Gaと目傾き評価ポイントGpの関係を示した図である。
【図１２】目検出結果の矩形領域を示した図である。
【図１３】赤目検出結果のマスク画像を示した図である。
【図１４】赤目度の差絶対値Diffdと赤目尤度Rpの関係を示した図である。
【図１５】赤色度とParamRの関係を示した図である。
【図１６】処理の流れを説明するフローチャートである。
【図１７】顔尤度算出処理の流れを説明するフローチャートである。
【図１８】目尤度算出処理の流れを説明するフローチャートである。
【図１９】赤目尤度算出処理の流れを説明するフローチャートである。
【図２０】赤目度算出処理の流れを説明するフローチャートである。
【図２１】赤目補正処理の流れを説明するフローチャートである。
【図２２】第２の実施形態を示し、処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
第１の実施形態では、目領域の尤度が十分に高い場合には目領域の尤度と赤目領域の尤度で補正強度を決定し、そうでない場合には顔領域の尤度と目領域の尤度と赤目領域の尤度で補正強度を決定する。このようにして、画像から赤目領域を検出し、検出した赤目領域の色を正常な瞳の色に補正する画像処理例を説明する。
【００１２】
以下、図面を参照して、本発明の好適な実施形態を説明する。
図１は、本発明の第１の実施形態の画像処理装置の構成例を示すブロック図である。図１において、入力部１０１はキーボードやポインティング装置で構成されており、ユーザは入力部１０１を操作してデータの入力や操作の指示を行う。蓄積部１０２はバイナリデータやメタデータを蓄積するものであり、ハードディスクである場合が多い。表示部１０３は蓄積部１０２に蓄積されたバイナリデータなどを表示するものであり、ＣＲＴや液晶である場合が多い。
【００１３】
ＣＰＵ１０４は上記の処理のすべてに関わり、ＲＯＭ１０５とＲＡＭ１０６はその処理に必要なメモリや作業領域を提供する。また、後述する本実施形態の処理手順を実現するための制御プログラムもＲＯＭ１０５に格納されている。
【００１４】
第１の実施形態の処理の流れを、図１６のフローチャートに従って説明する。
図１６に示すように、ステップＳ１６０１においては、画像の中にある顔領域を検出する。顔検出は公知の方法で行えばよい。例えば、エッジや形状のパターンを検出するものや肌色領域を検出するもの、あるいはニューラルネットワークを用いて学習アルゴリズムで検出を行うものなどを用いて顔検出を行うことができる。図２のポートレート画像に対して顔検出を行った結果を矩形領域２０１で示す。
【００１５】
次に、ステップＳ１６０２において、検出した顔領域の確からしさを表す顔尤度Fpを算出する顔尤度算出を行い、顔尤度取得を行なう。顔尤度Fpは顔領域の特徴量に応じて以下のように決定できる。
＜顔領域内の肌色画素の割合＞
一般的なエッジ検出や形状のマッチングなどによる顔検出方法では、洋服の柄や背景の木々などを顔領域として誤検出してしまうことがある。このような誤検出に対し、検出が成功した場合には顔領域内における肌色画素の割合が高くなる。そこで、検出した顔領域内における肌色画素の割合を調べ、肌色画素が多いほど尤度が上がるように顔尤度を決定する。
【００１６】
＜顔領域内の露出＞
顔領域が暗い場合は明暗の差が出にくく顔の特徴を判別することが難しいため顔検出を失敗する可能性が高い。そこで、顔検出により検出した顔領域内における露出を調べ、露出が高いほど尤度が上がるように顔尤度を決定する。
【００１７】
上記２つの顔特徴量に基づいて顔尤度を算出する処理の流れを、図１７のフローチャートに従って説明する。
まず、ステップＳ１７０１において、顔領域内の肌色画素数をカウントする。肌色判定方法は、予め大量の顔画像から肌の色をサンプリングしておき、該肌の色と判定画素の色が所定の閾値より小さい場合に、判定画素を肌色画素としてカウントする。
【００１８】
次に、ステップＳ１７０２において、肌色評価ポイントを算出する。肌色評価ポイントSpは、顔領域内における肌色画素の割合とする。ステップＳ１７０１でカウントした肌色画素数Scと顔領域内の全画素数Fcから肌色評価ポイントSpを式(a)により算出する。
Sp = Sc / Fc (０ <= Sp <= １)・・・・(a)
【００１９】
次に、ステップＳ１７０３において、顔領域内の平均輝度Yaveを算出する。各画素の輝度値については公知の色変換式を用いて算出すればよい。輝度変換式については後述ステップＳ２１０２で説明する。
【００２０】
次に、ステップＳ１７０４において、輝度評価ポイントYpを算出する。一般に、顔領域の露出がある値より小さくなると顔検出の精度が落ちる。そこで、平均輝度Yaveが所定の閾値Ythより小さい場合に、Yaveの値が小さいほど輝度評価ポイントYpが下がるようにする。これを表した特性図を図３に示す。本実施形態では図３の特性図に基づいて輝度評価ポイントYpを決定する。
【００２１】
次に、ステップＳ１７０５において、顔尤度Fpを算出する。顔尤度Fpは、ステップＳ１７０２で算出した肌色評価ポイントSpと、ステップＳ１７０４で算出した輝度評価ポイントYpにより以下の式(b)にしたがい算出する。
Fp = Sp * Yp  ・・・・(b)
なお、本実施形態では、肌色評価ポイントSpと輝度評価ポイントYpの両方の評価値を用いて顔尤度を決定したが、あるいは、どちらか一方の評価値だけを用いて顔尤度を決定するようにしてもよい。
【００２２】
また、本実施形態では、顔領域の特徴として肌色画素と露出値を用いたが、あるいは、顔らしさを評価できる別の特徴量を用いてもよい。例えば、ニューラルネットワーク等を用いた学習ベースの顔検出アルゴリズムで顔領域を検出する場合などは、処理の過程で算出する尤度を用いて顔尤度Fpを算出するようにしてもよい。
顔尤度Fpを算出したらステップＳ１６０２の処理に戻る。
【００２３】
次に、ステップＳ１６０３において、目領域を検出する。図１２の２０１で示す顔領域を探索範囲として目領域を検出する。目領域の検出は、先に説明した顔検出同様公知の方法を用いることで実現できる。本実施形態では、目領域の検出結果として、図４の４０１〜４０４に示す目の特徴的な点を求める。なお、４０１、４０７は目頭、４０２、４０６は上瞼、４０３、４０５は目尻、４０４、４０８は下瞼を検出した点であり、以降これらの点を目特徴点と呼ぶ。
【００２４】
次に、ステップＳ１６０４において、目領域の確からしさをあらわす目尤度Epを算出する。目尤度Epは、目領域の特徴量に応じて以下のような条件を満たすように決定する。
＜両目の中心点を結ぶ直線の傾き角度＞
一般的な顔であれば口角を結ぶ直線と目の中心点を結ぶ直線とがなす角度は０度に近い値となる。例えば、図５に示すように、口角を結ぶ直線を直線A、目の中心点５０１と５０２を結ぶ直線を直線Bとした場合、直線Ａと直線Ｂがなす角度は０度に近い値となる。
しかしながら、目特徴点検出が失敗し図６の６０１〜６０４に示すような位置に目特徴点を検出した場合、直線Aと目の中心点５０１と６０５を結ぶ直線Ｂ'がなす角は、目の位置が上下方向にずれるほど大きくなる。このように、口角を結ぶ直線と目の中心点を結ぶ直線とがなす角度が大きいほど、目の検出が失敗している可能性が高いといえる。そこで、口角を結ぶ直線と目の中心点を結ぶ直線のなす角が大きいほど目の確からしさが低くなるように尤度を決定する。
【００２５】
＜対の目の傾き角度＞
一般的な顔であれば目の傾きは対になるもう一方の目の傾きとほぼ等しくなる。例えば、図７に示すように、向かって左側の目の目頭４０７と目尻４０５を結ぶ直線Ｃと、向かって右側の目の目頭４０１と目尻４０３を結ぶ直線Dがなす角は０に近い値となる。
しかしながら、図８に示すように向かって右側の目尻の検出を失敗し、８０１の位置に検出してしまった場合には、直線Ｃと向かって右側の目の傾きを表す直線Ｄ'がなす角度は、８０１が上下方向にずれるほど大きくなる。このように、対になる目の傾きがなす角度が大きいほど、目特徴点の検出が失敗している可能性が高いといえる。そこで、対になる目の傾き角の差が大きいほど、目としての確からしさが低くなるように尤度を決定する。
【００２６】
上記２つの目特徴量に基づいて目尤度を算出する処理の流れを、図１８のフローチャートに従って説明する。
まず、ステップＳ１８０１において、口角を結ぶ直線に対する目中心点を結ぶ直線の傾き角度Faを算出する。図９に示すような顔画像の場合、口角を結ぶ直線が直線Ｆ、目中心点間を結ぶ直線が直線Ｅ、これらの直線がなす角度がFaとなる。なお、口角の位置の検出については、先に説明した公知の顔検出や目検出と同様の方法を用いることで実現できる。
【００２７】
次に、ステップＳ１８０２において、ステップＳ１８０１において算出した角度Faに基づき位置関係評価ポイントPpを算出する。図１０に前述の説明に基づいて位置関係評価ポイントPpを算出する特性図を示す。位置関係評価ポイントPpは図１０の特性図に従って算出する。
【００２８】
なお、本実施形態では口角を結ぶ直線に対する目中心点間を結ぶ直線の角度に基づいて位置関係評価ポイントPpを算出しているが、目中心間を結ぶ直線ではなく、対になる目特徴点を結ぶ直線を用いてもよい。
【００２９】
次に、ステップＳ１８０３において、対になる目の傾きがなす角度Gaを算出する。
図８に示すような顔画像の場合、向かって左側の目の傾きは直線Ｃの傾きであり、向かって右側の目の傾きは直線Ｄ'の傾きとなる。このため、直線Cと直線Ｄ'がなす角度がGaとなる。
【００３０】
次に、ステップＳ１８０４において、目傾き評価ポイントGpを算出する。図１１に前述の説明に基づいて目傾き評価ポイントGpを算出する特性図を示す。目傾き評価ポイントGpは図１１の特性図に従って算出する。
【００３１】
次に、ステップＳ１８０５において、目の尤度Epを算出する。
目の尤度Epは、ステップＳ１８０２で算出した位置関係評価ポイントPpと、ステップＳ１８０４で算出した目傾き評価ポイントGpより以下の式(c)により算出する。
Ep = Pp * Gp  ・・・・(c)
【００３２】
なお、本実施形態では、位置関係評価ポイントPpと目傾き評価ポイントGpの両方の評価値を用いて目の尤度を決定したが、あるいは、どちらか一方の評価値だけを用いて決定するようにしてもよい。
【００３３】
また、本実施形態では、目領域の特徴として対になる目の位置関係と傾きを用いて尤度を算出したが、あるいは、目らしさを評価できる別の特徴量を用いてもよい。例えば、ニューラルネットワーク等を用いた学習ベースの目検出アルゴリズムで目領域を検出する場合などは、処理の過程で算出する尤度を用いて目尤度Epを算出するようにしてもよい。
目尤度Epを算出したらステップＳ１６０４の処理に戻る。
【００３４】
次に、ステップＳ１６０５において、赤目領域を検出する。
図１２の１２０１に図９に示すポートレート画像から顔領域だけを切り抜いた画像を示す。ステップＳ１６０３で検出した目領域情報に基づいて赤目領域の探索範囲を決定する。本実施形態では、検出した目特徴点４点に外接する矩形を所定の割合だけ拡大した矩形を探索範囲とする。画像１２０１における赤目領域の探索範囲は１２０２に示す矩形領域となる。
【００３５】
図１３の１３０１に赤目領域の探索領域を切り出した画像を示す。画像１３０１に対して赤目検出を行う。赤目領域の検出は公知の方法を用いればよい。例えば、目領域内の位置情報、色相情報、形状情報などを用いて赤目領域を検出する方法が提案されている。
検出結果は、画像１３０２に示すように２値のマスク画像としてあらわすことができる。画像１３０２における白い領域が検出した赤目領域となる。
【００３６】
次に、ステップＳ１６０６において、赤目領域の尤度を算出し、赤目尤度取得を行う。
赤目領域の尤度を算出する詳細な処理の流れを、図１９のフローチャートに従って説明する。
まず、ステップＳ１９０１において、赤目領域の赤色度を算出する。図１３の２枚の画像に基づいて赤目領域の赤色度を算出する方法を説明する。また、赤目領域の赤色度を算出する処理の流れを、図２０のフローチャートに従って説明する。
【００３７】
まず、ステップＳ２００１において、処理に用いる変数を初期化する。変数i,jは、図１３の目領域画像および検出結果画像における座標値をあらわす。また、変数countは目領域画像内における赤目領域を構成する画素数をカウントするための変数であり、sumRdは各赤目画素の赤目度を加算した値である。
【００３８】
次に、ステップＳ２００２において、図１３の赤目検出結果の画像１３０２の座標(i,j)の画素値を参照することで赤目画素がどうか判定する。座標(i,j)が赤目画素の場合はステップＳ２００３ に移り、そうでない場合はステップＳ２００４に移る。
【００３９】
次に、ステップＳ２００３において、座標(i,j)の画素値(Rij,Gij,Bij)から赤目度Rd(i,j)を算出する。一般的に赤色度を表現する色変換方法は様々あるが、本実施形態では以下の色変換式(d)に従い赤目領域の各画素の赤色度Rd(i,j)を算出する。
Rd(i,j) = ２ * Rij−Gij−Bij ・・・・(d)
また、変数countに１を加算し、変数sumRdにRd(i,j)を加算する。
【００４０】
次に、ステップＳ２００４において、変数iに１を加算する。
次に、ステップＳ２００５において、変数iが目領域の横幅Ewに達したかどうか判定する。判定結果が真の場合はステップＳ２００６に移り、そうでない場合はステップＳ２００２の処理に移る。
【００４１】
次に、ステップＳ２００６において、変数iを０にし、変数jに１を加算する。
次に、ステップＳ２００７において、変数jが目領域の縦幅Ehに達したかどうか判定する。判定結果が真の場合はステップＳ２００８に移り、そうでない場合はステップＳ２００２に移る。
【００４２】
次に、ステップＳ２００８において、赤目領域内の赤目度の平均値を赤目領域の赤目度Rdとして算出する。すなわち、以下の式(e)を用いて赤目領域の赤目度Rdを算出する。
Rd = sumRd / count ・・・・(e)
左右の目に対して前述した方法で同様に赤目度を算出する。以下、左目の赤目領域の赤目度をLRｄ、右目の赤目領域の赤目度をRRｄとして説明する。
ステップＳ１９０１の処理に戻る。
【００４３】
ステップＳ１９０２において、以下の式(f)を用いて左右の赤目度の差の絶対値Diffdを算出する。
Diffd = |LRd − RRd|・・・・(f)
【００４４】
次に、ステップＳ１９０３において、赤目領域の尤度Rpを算出する。左右の目ともに正しく赤目領域を検出した場合には、左右の赤目領域の赤目度は近い値になる。逆に、左右の赤目度の差が大きい場合には一方の目は赤目領域を検出しているが、もう一方の目は肌領域などを誤検出している可能性が高い。
【００４５】
そこで、Diffdが所定の閾値(th_Diffd)以内であれば尤度を最大とし、Diffdがth_Diffdを超えるほど赤目らしさが低くなるように尤度を算出する。Diffdと赤目尤度Rpの関係をあらわした特性図を図１４に示す。図１４の特性図に基づいて赤目尤度Rpを算出する。
ステップＳ１６０６の処理に戻る。
【００４６】
ステップＳ１６０７においては、以下の式（g）に基づき目尤度Epと所定の閾値th１を比較する。閾値th１は、目の確からしさが充分に高い場合に式（g）を満たすように定める。
Ep  ＞  th１  ・・・・（g）
Epが式（g）を満たす場合はステップＳ１６０８に移り、そうでない場合はステップＳ１６０９に移る。
【００４７】
ステップＳ１６０８において、補正強度Csを決定する補正強度算出を行い、補正強度制御方法を決定する。
Csは目尤度Ep、赤目尤度Rpを用いて以下の式（h）に基づいて算出する。
Cs ＝ Ep * Rp ・・・・（h）
【００４８】
ステップＳ１６０９においては、補正強度Csを決定する。
Csは顔尤度Fp、目尤度Ep、赤目尤度Rpを用いて以下の式（i）に基づいて算出する。
Cs ＝ Fp * Ep * Rp ・・・・（i）
【００４９】
ステップＳ１６１０においては、赤目領域に対して赤目領域補正処理を実行する。画像１３０２の赤目検出結果を参照することで赤目画素の位置を判定し、画像１３０１における対応画素の画素値と補正強度Csを用いて補正処理を行う方法を説明する。
【００５０】
処理の流れを図２１のフローチャートに示す。なお、図２１ステップＳ２００２、ステップＳ２００４〜ステップＳ２００７については、図２０の説明と同様の処理となるため、同じ番号を付与してここでは説明を省略する。
【００５１】
まず、ステップＳ２１０１において、変数i,jを初期化する。変数i,jの説明はステップＳ２００１の説明と同様のためここでは省略する。
次に、ステップＳ２１０２において、座標(i,j)の画素を黒色に補正する。画像１３０１における座標(i,j)の画素の色信号を（Rij,Gij,Bij）とする。
【００５２】
まず、色信号（Rij,Gij,Bij）を色差信号に変換する。
色差信号への変換は、一般的な色変換式である式(j)、(k)、(l)に基づいて行う。
以下、輝度信号をY、青成分の色差信号をCb、赤成分の色差信号をCrとする。
Y  ＝    ０.２９９ × R ＋ ０.５８７ × G ＋ ０.１１４ × B・・・・(j)
Cb ＝  −０.１６９ × R −０.３３１ × G + ０.５ × B・・・・(k)
Cr ＝    ０.５ × R −０.４１９ × G + ０.０８１ × B・・・・(l)
【００５３】
一般的に、色差信号を減少させることで色信号の色味を抜くことができる。そこで、赤目画素の色味を抜くことで赤い画素を黒に補正する。
以下の式(m)、(n)に基づいて、色差信号Cb、Crの色味を減少させる。
Cb' ＝ Cb × (１.０ − ParamRij × Cs) ・・・・(m)
Cr' ＝ Cr × (１.０ − ParamRij × Cs) ・・・・(n)
ParamRijは画素(i,j)の赤色度Rd(i,j)に基づいて定まる変数であり、画素が赤い程高い数値となる変数で、図１５の特性図に示すように設定することができる。
式(m)、(n)では、ParamRijに補正強度Csをかけることにより、各検出ステップの尤度を加味した補正量の制御が可能となる。
以上の処理により色信号を補正処理した後、以下の式(o)、(p)、(q)により補正後の色信号(R'ij,G'ij,B'ij)を算出する。
R'ij ＝ Y ＋ １.４   × Cr・・・・(o)
G'ij ＝ Y − ０.３４４ × Cb − ０.７１４ × Cr・・・・(p)
B'ij ＝ Y ＋ １.７７２ × Cb・・・・(q)
【００５４】
図２１におけるステップＳ２００２〜ステップＳ２００７までの処理を繰り返し、全ての赤目画素に対する補正処理が終了したらステップＳ１６１０に戻り処理を終了する。
【００５５】
以上、第１の実施形態によれば、赤目検出における各検出ステップの尤度に基づいて補正強度を決定する赤目補正処理において、目検出の尤度が十分に高い場合には、顔検出の尤度を用いずに目領域の尤度と赤目領域の尤度だけで補正強度を決定する。このため、信頼度の高い赤目に対しては顔検出の尤度の影響を受けることなく強度を強くすることができる。
【００５６】
（第２の実施形態）
第２の実施形態では、目領域の尤度が十分に高い場合には顔領域の尤度を補正し、補正した顔領域の尤度と目領域の尤度と赤目領域の尤度を用いて赤目領域の色を補正する際の補正強度を決定する例を説明する。
【００５７】
第２の実施形態の処理の流れを図２２に示す。なお、図２２におけるステップＳ１６０１〜ステップＳ１６０７、ステップＳ１６０９、ステップＳ１６１０については第１の実施形態と同様の処理となるため、同じ番号を付与して説明を省略する。
【００５８】
第１の実施形態で説明したように、ステップＳ１６０７の判定で真と判定された場合、検出した目領域が実際の目領域である可能性が十分に高い。そこで、本実施形態においては、ステップＳ２２０１において顔尤度の値を補正する顔尤度補正を行う。
【００５９】
顔尤度の補正方法としては、単純に顔尤度の値を最大に調整してもよいし、あるいは目尤度との最大値をとるようにしてもよい。また、目尤度から倍率De(Ep)を決定し、以下の式(s)に基づいて顔尤度Fp'を調整するようにしてもよい。
Fp' ＝ De(Ep) × Fp    （De(Ep)  ＞  １.０）・・・・(s)
この他にも、顔尤度の値を上げるような調整方法であればよい。例えば、目尤度に基づいて顔尤度を上げる演算を行うようにしてもよい。
顔尤度の値を調整した後、ステップＳ１６０９に移る。
【００６０】
以上、第２の実施形態によれば、赤目検出における各検出ステップの尤度に基づいて補正強度を決定する赤目補正処理において、目検出の尤度が十分に高い場合には、顔検出の尤度を上げるように尤度を補正する。これにより、信頼度の高い赤目に対して良好な強度で補正を行うことができる。
【００６１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種のコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６２】
１０１  入力部、１０２  蓄積部、１０３  表示部、１０４  ＣＰＵ、１０５  ＲＯＭ、１０６  ＲＡＭ
【図１】
2011022865.tif 000003
【図２】
2011022865.tif 000004
【図３】
2011022865.tif 000005
【図４】
2011022865.tif 000006
【図５】
2011022865.tif 000007
【図６】
2011022865.tif 000008
【図７】
2011022865.tif 000009
【図８】
2011022865.tif 000010
【図９】
2011022865.tif 000011
【図１０】
2011022865.tif 000012
【図１１】
2011022865.tif 000013
【図１２】
2011022865.tif 000014
【図１３】
2011022865.tif 000015
【図１４】
2011022865.tif 000016
【図１５】
2011022865.tif 000017
【図１６】
2011022865.tif 000018
【図１７】
2011022865.tif 000019
【図１８】
2011022865.tif 000020
【図１９】
2011022865.tif 000021
【図２０】
2011022865.tif 000022
【図２１】
2011022865.tif 000023
【図２２】
2011022865.tif 000024