(57)【要約】【課題】  誤検出や誤補正を軽減した画像処理装置、画像処理方法、及びプログラムを提供することを課題とする。【解決手段】  顔を含む画像における顔の向きを特定し、画像に含まれる顔における赤目領域を検出し、特定された顔の向きに応じた補正基準に基づいて、検出された赤目領域を補正する。または、画像における顔の向きを特定し、顔の向きに応じた検出基準に基づいて、画像に含まれる顔における赤目領域を検出する。【選択図】  図２
2015011556.tif 000002
【特許請求の範囲】
【請求項１】
顔を含む画像における顔の向きを特定する特定手段と、
前記画像に含まれる顔における赤目領域を検出する赤目検出手段と、
前記特定手段により特定された顔の向きに応じた補正基準に基づいて、前記赤目検出手段により検出された赤目領域を補正する補正手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記特定手段により特定された顔の向きに応じて前記赤目領域の補正をするか否かを補正基準として設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、前記特定手段により特定された顔の向きに応じた前記赤目領域の補正量を補正基準として設定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記補正手段は、前記特定手段により特定された顔の向きに応じて補正パラメータを変更することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記補正手段は、前記画像における顔の向きの横向き度が高くなるほど補正量を小さくすることを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記補正手段は、前記画像における顔の向きが横向きである場合、前記赤目検出手段により検出された赤目領域を補正しないことを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
画像における顔の向きを検出する向き検出手段をさらに備え、
前記特定手段は、前記向き検出手段により検出された結果に基づいて画像における顔の向きを特定することを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
１以上の画像を取得する取得手段をさらに備え、
前記特定手段は、前記取得手段により画像が取得されたタイミングで各画像における顔の向きを特定することを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
顔を含む画像における顔の向きを特定する特定手段と、
前記特定手段により特定した顔の向きに応じた検出基準に基づいて、前記画像に含まれる顔における赤目領域を検出する赤目検出手段と、
を備えることを特徴とする画像処理装置。
【請求項１０】
前記赤目検出手段は、前記特定手段により特定された顔の向きに応じて前記赤目領域を検出するか否かを検出基準として設定することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記赤目検出手段は、前記特定手段により特定された顔の向きに応じた前記赤目領域の検出閾値を設定することを特徴とする請求項９又は１０に記載の画像処理装置。
【請求項１２】
前記赤目検出手段は、前記特定手段により特定された顔の向きに応じて検出パラメータを変更することを特徴とする請求項９〜１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記赤目検出手段は、前記画像における顔の向きの横向き度が高くなるほど検出閾値を高くすることを特徴とする請求項９〜１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記赤目検出手段は、前記画像における顔の向きが横向きである場合、赤目領域を検出しないことを特徴とする請求項９〜１３のいずれか１項に記載の画像処理装置。
【請求項１５】
前記赤目検出手段によって検出された赤目領域を補正する赤目補正手段をさらに備えることを特徴とする請求項９〜１４のいずれか１項に記載の画像処理装置。
【請求項１６】
画像における顔の向きを検出する向き検出手段をさらに備え、
前記特定手段は、前記向き検出手段により検出された結果に基づいて、画像における顔の向きを特定することを特徴とする請求項９〜１５のいずれか１項に記載の画像処理装置。
【請求項１７】
１以上の画像を取得する取得手段をさらに備え、
前記特定手段は、前記取得手段により画像が取得されたタイミングで各画像における顔の向きを特定することを特徴とする請求項９〜１６のいずれか１項に記載の画像処理装置。
【請求項１８】
顔を含む画像における顔の向きを特定し、
前記画像に含まれる顔における赤目領域を検出し、
特定された顔の向きに応じた補正基準に基づいて、検出された赤目領域を補正することを特徴とする画像処理装置。
【請求項１９】
顔を含む画像における顔の向きを特定し、
顔の向きに応じた検出基準に基づいて、前記画像に含まれる顔における赤目領域を検出することを特徴とする画像処理装置。
【請求項２０】
請求項１８又は１９に記載の画像処理方法をコンピュータにより実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及びその方法に関し、例えば、目の色調不良を示す画像領域を検出又は検出・補正する画像処理装置及びその方法に関する。
【背景技術】
【０００２】
画像処理におけるカメラのフラッシュに起因する目の色調不良は、赤目現象として一般に知られている。赤目現象は、照明の少ない環境下で、人間や犬・猫などの動物を、フラッシュを使用して撮影した際、開いた瞳孔部分に入ったフラッシュの光が眼底で反射して、毛細血管が赤く光る現象である。
【０００３】
そこで、カメラのフラッシュに起因する目の色調不良を補正する方法が提案されている（特許文献１参照）。
【０００４】
特許文献１では、まず赤目現象の領域の候補を検出する。そして、顔位置及び顔の方向に基づいて赤目候補の分析を行うことで、その赤目候補が目の位置である妥当性を考慮して赤目候補を絞り赤目補正を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１０−５２０５６７
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法では、赤目候補が目の位置として妥当であれば赤目と判定され赤目補正が実行されてしまうため、目の位置に近い赤色のものが全て補正されてしまうという問題があった。例えば、眼鏡のガラスやフレームの一部が赤く光ったような場合にも補正されてしまう。
【０００７】
本発明は上述した事情に鑑み、赤目検出や赤目補正を行った場合に発生しやすい誤検出や誤補正を低減することができる画像処理装置、画像処理方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するための本発明の画像処理装置の一態様は、顔を含む画像における顔の向きを特定する特定手段と、前記画像に含まれる顔における赤目領域を検出する赤目検出手段と、前記特定手段により特定された顔の向きに応じた補正基準に基づいて、前記赤目検出手段により検出された赤目領域を補正する補正手段と、を備えることを特徴とする。
【０００９】
また、本発明の画像処理装置の他の態様は、顔を含む画像における顔の向きを特定する特定手段と、前記特定手段により特定した顔の向きに応じた検出基準に基づいて、前記画像に含まれる顔における赤目領域を検出する赤目検出手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、目の色調不良を示す画像領域の検出や補正を適切に実行することができる。したがって、誤検出や誤補正を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係る画像処理装置ハードウェア構成図である。
【図２】実施形態１に係るソフトウェアブロック図である。
【図３】実施形態１に係る顔検出部の説明図である。
【図４】実施形態１に係る顔検出部２０３の矩形特徴量の説明図である。
【図５】実施形態１に係る赤目補正処理のフローチャートである。
【図６】実施形態１に係る補正範囲の決定の説明図である。
【図７】実施形態１に係る画像処理のフローチャートである。
【図８】検出結果を示す表である。
【図９】実施形態２に係る赤目補正処理のフローチャートである。
【図１０】実施形態３に係る赤目補正処理のフローチャートである。
【図１１】実施形態３に係る赤目補正処理のフローチャートである。
【図１２】他の実施形態に係る赤目補正処理のフローチャートである。
【図１３】他の実施形態に係る赤目補正処理のフローチャートである。
【図１４】他の実施形態に係る赤目補正処理のフローチャートである。
【図１５】他の実施形態に係る赤目補正処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態の画像処理について、図面を参照して詳細に説明する。尚、以下で説明する画像処理は、プリンタエンジンへ出力すべき画像情報を生成するコンピュータ内で稼働するプリンタドライバ、スキャナなどの光学読取装置を駆動するコンピュータ内で稼働するスキャナドライバに組み込むことができる。また、複写機、ファクシミリ、プリンタ、スキャナ、ディジタルカメラ、ディジタルビデオカメラなどの各種機器のハードウェアに内蔵してもよいし、ソフトウェアとして供給してもよい。
【００１３】
図１において、情報処理装置１１５は、ＣＰＵ１００と、ＲＯＭ１０１と、ＲＡＭ１０２と、２次記憶装置１０３と、表示装置１０４と、入力装置１０５と、ＩＦ１０７と、ＩＦ１０８と、無線ＬＡＮ１０９を備えている。さらに、内部撮像デバイス１０６を備えている。これらは、制御バス／データバス１１０により相互に接続されている。本実施形態の情報処理装置１１５は、画像処理装置として機能する。
【００１４】
情報処理装置１１５は、例えば、コンピュータである。ＣＰＵ１００（中央演算装置）は、実施形態１で説明する情報処理をプログラムに従って実行する。ＣＰＵ１００は、ＲＯＭ１０１や２次記憶装置１０３からプログラムをＲＡＭ１０２にロードし、ＲＡＭ１０２でプログラムを実行することにより、情報処理装置全体を制御する。
【００１５】
ＲＯＭ１０１は、ＣＰＵ１００により実行される以下に示すアプリケーション等のプログラムが記憶されている。ＲＡＭ１０２は、ＣＰＵ１００によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。２次記憶装置１０３は、ハードディスク等であり、画像ファイルや画像解析結果を保存するデータベース等を保存するための記憶媒体である。表示装置１０４は、例えば、ディスプレイであり、実施形態１の処理結果や以下に示すＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等をユーザに提示する装置である。表示装置１０４は、タッチパネル機能を備えても良い。入力装置１０５は、ユーザが画像補正の処理の指示等を入力するためのマウスやキーボード等である。
【００１６】
また、内部撮像デバイス１０６で撮像された画像は、所定の画像処理を経た後、２次記憶装置１０３に記憶される。また、情報処理装置１１５は、インターフェース（ＩＦ１０８）を介して接続された外部撮像デバイス１１１から画像データを読み込むこともできる。さらに、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０９はインターネット１１３に接続されている。情報処理装置１１５は、インターネット１１３に接続された外部サーバー１１４より画像データを取得することもできる。
【００１７】
画像等を出力するためのプリンタ１１２は、ＩＦ１０７を介して情報処理装置１１５に接続されている。尚、プリンタ１１２はさらにインターネット上に接続されており、無線ＬＡＮ１０９経由でプリントデータのやり取りをすることもできる。
【００１８】
本実施形態では、赤目自動補正処理について説明する。図２（ａ）及び（ｂ）は、それぞれ本実施形態に係る赤目自動補正処理の概要を示す機能ブロック図である。これらの一連の処理は、ＣＰＵ１００によって実行される。
【００１９】
まず、図２（ａ）に示す赤目自動補正処理について説明する。図２（ａ）に示すように、まず、画像取得部２０２は、入力端子２０１に入力される画像データを取得する。入力される画像データは、各デバイスから取得したものであってもよいし、２次記憶装置１０３に予め蓄えてある画像データであってもよい。入力される画像データは、特に限定されないが、例えば、一画素あたりＲＧＢ各８ビット、合計２４ビットのディジタル画像データが挙げられる。取得した画像データは、顔検出部２０３に入力する。ここで、取得した画像は全て２次記憶装置１０３に保存した後、全画像データを顔検出部２０３に入力してもよいし、画像データを取得する度に顔検出部２０３に入力してもよい。
【００２０】
顔検出部２０３は、画像取得部２０２において取得された画像データから顔領域と顔の向きを検出する。顔領域の検出方法は、特に限定されないが、本実施形態では、詳細は後述するが、ＡｄａＢｏｏｓｔによる顔領域の検出方法を用いる。
【００２１】
赤目検出部２０４は、画像取得部２０２において取得された画像データから赤目の領域を検出する。赤目の領域の検出方法は特に限定されないが、例えば、適応的二値化による赤色領域の抽出後に境界線追跡による赤丸領域の抽出を行う方法が挙げられる。なお、赤目検出部２０４の検出結果は、完全ではなく、赤くて丸い領域であれば検出する可能性がある。例えば、赤色の信号機、衣服の赤色の模様、赤色の照明など様々なものを検出する可能性がある。
【００２２】
赤目補正判定部２０５は、顔検出部２０３の検出結果を用いて、赤目検出部２０４の検出結果に対する赤目補正処理部２０６における補正の判定処理を行う。具体的には、赤目補正処理部２０６において補正を行うか否かの判定、又は赤目補正処理部２０６における補正強度の判定を行う。詳細については後述する。
【００２３】
赤目補正処理部２０６は、赤目補正判定部２０５で判定した判定結果に基づいて赤目補正処理を行う。
【００２４】
次に、図２（ｂ）の赤目自動補正処理について説明する。図２（ｂ）は、図２（ａ）とは異なる赤目自動補正処理である。
【００２５】
画像取得部２０２及び顔検出部２０３は、図２（ａ）と同様であるので説明を省略する。赤目検出判定部２０８は、顔検出部２０３の検出結果を用いて、赤目検出部２０４で検出を行うか否かの判定、又は赤目検出部２０４における検出条件の判定を行う。詳細については後述する。
【００２６】
図２（ａ）における赤目補正判定部２０５と、図２（ｂ）における赤目検出判定部２０８とでは、いずれも顔検出部２０３で検出される顔の向きに基づいて判定を行う。ここで、顔検出部２０３について詳細に説明する。顔検出部２０３で用いる顔検出方法は、特に限定されないが、本実施形態では、ＡｄａＢｏｏｓｔを使用した顔検出アルゴリズムを用いて、検出処理を行う。ＡｄａＢｏｏｓｔは、顔らしい明度分布の弱判別器を多数直列に接続することにより強判別器を設計する手法であり、例えば、特開２０１１−８７０４に開示されている。多数の弱判別器は、それぞれ顔らしいとされる明度分布を判定基準として判定を行う。なお、各弱判別器は、それぞれ少しずつ異なるパターンの明度分布を判定基準として備えている。全ての弱判別器で顔らしいと判定された画像データは、顔である可能性が高いため顔として出力する。本実施形態では、公知のＡｄａＢｏｏｓｔとは異なり、顔の向きを判別することが可能である。
【００２７】
図３は、本実施形態に係る顔検出部２０３の説明図、具体的には、分岐構造のＡｄａＢｏｏｓｔの構成のイメージ図である。である。本実施形態では、図３に示すように、弱判別器を複数接続し、強判別器（すなわち、検出器）を実現する。ここでは、顔の向きを５種類に分類した分岐構造を例に挙げて説明するが、分類数はこれに限定されるものではない。
【００２８】
弱判別器は、図３に示すように、複数が直列につながっており、途中で顔の向きに応じて分岐した後さらに直列につながっている。また、各弱判別器は、Ｈａａｒタイプの矩形特徴量が設定されている。矩形領域ごとに矩形特徴量を解析し、その特徴量の関係が予め学習した結果と同じであれば、評価値を加算していく。弱判別器ごとに解析する矩形特徴量は異なる。本実施形態では、始めに用いられる弱判別器は顔向きを特定しないような矩形特徴量であり、その後、弱判別器３０１、３０２、３０３を用いて、左・右・正面の三方向の顔を判別する。言い換えれば、分岐させる前の１以上の弱判別器は、オブジェクトの全ての向きに対応する基準に基づいて判別を行い、オブジェクトの向きに応じて分岐させた後の１以上の弱判別器は、オブジェクトの向きに応じた基準に基づいて判別を行う。これにより、本実施形態では、検出した顔の向き及び顔領域を判別する。
【００２９】
ここで、図４を用いて、矩形特徴量について簡単に説明する。図４は、弱判別器３０１、３０２、３０３の矩形特徴量の一例である。図４（ａ）は左向きの顔を検出する弱判別器３０１の矩形特徴量を、図４（ｂ）は正面向きの顔を検出する弱判別器３０２の矩形特徴量を、図４（ｃ）は右向きの顔を検出する弱判別器３０３の矩形特徴量を表す。図４（ａ）〜（ｃ）では、それぞれ黒塗りの部分が２箇所あり、上の黒塗り部分はおよそ目領域を、下の黒塗り部分はおよそ口領域を表す。これらの領域に所定の特徴量があれば、顔であると判定する。
【００３０】
図３に戻って、本実施形態では、各弱判別器において、判定した結果に応じて、信頼度を算出する。具体的には、弱判別器で算出した算出値が、当該弱判別器において設定される算出値に対する閾値Ｔｈ１（以下、算出閾値ともいう）以上であると判定すれば、予め設定した設定値をスコアに加算して信頼度を算出する。一方、弱判別器で算出した算出値が、当該弱判別器において設定される算出閾値Ｔｈ１未満であると判定すれば、予め設定した設定値をスコアから減算して信頼度を算出する。次の弱判別器では、同様に判定結果に応じて、スコア（前の弱判別器で算出した信頼度）に対して当該弱判別器の設定値を加算又は減算する。なお、算出閾値Ｔｈ１は、弱判別器毎に異なる値を設定してもよいし、全ての弱判別器に同じ値を設定してもよい。また、各弱判別器には、スコアに対する閾値Ｔｈ２（以下、スコア閾値ともいう）が設定されており、算出した信頼度がスコア閾値Ｔｈ２以下の場合は処理を中止する。これにより、後に続く弱判別器分の処理をスキップでき、処理を高速で実行することができる。なお、スコア閾値Ｔｈ２は、弱判別器毎に異なる値を設定してもよいし、全ての弱判別器に同じ値を設定してもよい。予め用意した複数の弱判別器の最後の弱判別器から信頼度が算出された場合、その解析領域が顔であると判定する。複数の分岐が候補となった場合には、最後の弱判別器から算出された信頼度が最大のものをその顔の向きとする。
【００３１】
ここで、３０１は、左向きの横顔を検出する弱判別器列であり、左向きの顔検出用の複数の弱判別器が直列に接続されている。弱判別器列３０１以降に備える左向きの弱判別器を通過した領域を左向きの顔領域と判定し、さらに横顔用弱判別器と斜め顔用弱判別器とを用い、これらを通過した領域をそれぞれ左向き横顔、左向き斜め顔とする。
【００３２】
３０２は、正面顔を検出する弱判別器列であり、正面向きの顔検出用の複数の弱判別器が直列に接続されている。弱判別器列３０２以降に備える正面向きの弱判別器を全て通過した領域を正面向きの顔とする。
【００３３】
３０３は、右向きの斜め顔を検出する弱判別器列であり、右斜め向きの顔検出用の複数の弱判別器が直列に接続されている。弱判別器列３０３以降に備える右向きの弱判別器を通過した領域を右向きの顔領域と判定し、さらに斜め顔用弱判別器と横顔用弱判別器を用い、これらを通過した領域をそれぞれ右向き斜め顔、右向き横顔とする。
【００３４】
ここで、図３に示した顔の向きの分類について説明する。顔の向きの分類は、弱判別器を設計する際に設定する。顔の向きの分類は、例えば、複数のサンプル画像の顔の検出パターンを予め取得し、この取得した結果に基づいて弱判別器に設定すればよい。また、顔の向きの分類は、これに限定されるものではなく、ユーザ主観によって分類しても良いし、被写体に対するカメラの角度が分かる際にはその情報をもとに分類しても良いし、器官の位置関係から分類してもよい。
【００３５】
また、最終的に通った分岐上の全ての弱判別器で顔候補と判定された場合には、顔領域の座標と顔向きを出力する。すなわち、顔検出部２０３による処理の結果、各入力画像について、人物顔の個数と各顔の座標位置・顔向きを取得することができる。
【００３６】
本実施形態では、顔向きは図３に示すように左向き横顔、左向き斜め顔、正面向き顔、右向き斜め顔、右向き横顔の５段階の顔向きを出力するが、これに限定されるものではない。例えば、より細かい顔向きの判別器を用意することで、５段階以上の段階数に判別することも可能であるし、ほぼ連続的な顔向き判別を行うことも可能である。
【００３７】
本実施形態では、上述した一連の検出処理において、各弱判別器で、各矩形領域の評価値を加算した加算評価値が設定閾値以下になった時点で処理を打ち切ることにより、処理の高速化を図ることができる。以下、顔の向きが正面を基準としたときの顔の向きの度合いを「横向き度」とする。ここで、例えば、顔の器官として目の位置に基づいて顔領域の顔の向きを判定する場合、片目のみ検出したときは横向きであると判定される。なお、このような方法に基づいて顔の向きを検出する場合は、目が検出できない場合は検出対象外となる。本実施形態では、顔が真横を向いたとき、すなわち、正面に対して顔の向きが９０度のときに、横向き度が最大としたが、横向き度の最大値はこれに限定されるものではない。逆に、顔の向きが正面に近づくほど、横向き度は小さくなる。
【００３８】
ただし、顔向きとは、上述したように、複数段階で出力された結果であってもよいが、正面顔か否かを表すようなフラグであってもよい。
【００３９】
次に、赤目検出部２０４について詳細に説明する。人物の赤目検出手法としては、公知の方法を用いることができる。公知の方法としては、例えば、特開２０１０−２５７４８２に開示されている方法が挙げられる。具体的には、適応的二値化による赤色領域の抽出後に境界線追跡による赤丸領域の抽出を行い、さらにその結果に特徴量判定を行う。まず、適応的二値化による赤色領域の抽出を行う。入力された画像データに適応的二値化処理を適用することで、画像データから赤色領域を抽出する。具体的には、画像データの各画素に対して赤色度合いを示す赤色評価量を算出し、その評価量と閾値を比較して、評価値＞閾値の場合に注目画素を赤色と判定する。この閾値は、注目画素の周辺領域において適応的に決定される閾値である。なお、ここで言う「二値化」とは、赤色と判定した画素に‘１’を、そうではない画素に‘０’を割り当てることを言う。赤色評価量は、注目画素の赤色評価量を一般的なＨＳＩ系の彩度ではなく、ＲＧＢ画素値のＲとＧのみから算出することで、赤色領域の抽出精度を高めるようにしてもよい。
【００４０】
次に、境界線追跡による赤丸領域の抽出を行う。まず、適応的二値化処理の結果得られる二値画像に対して、画像を上端からスキャンする。注目画素（ｘａ，ｙａ）の値が‘１’で、注目画素の左（ｘａ−１，ｙａ）、左斜め上（ｘａ−１，ｙａ−１）、上方（ｘａ，ｙａ−１）、右斜め上（ｘａ＋１，ｙａ−１）の四画素の値が‘０’である注目画素をスキャンの始点とする。そして、始点画素から反時計回りに再び視点に戻るまで値が‘１’である画素を追跡する。この追跡過程で、追跡対象領域の周辺の長さ（画素数）、方向ヒストグラム、Ｘ座標とＹ座標の最大値、最小値を得ることができる。それらの値から、赤色領域の縦横比やサイズの適正度を見て、赤色領域が赤丸であるか否かの判定処理を行う。
【００４１】
そして、最後に抽出された赤丸領域について、人の赤目と特定できるような様々な特徴量を算出し、それを予め定めた閾値と比較して赤目か否かを判定する。
【００４２】
なお、赤目検出の方法は、これに限定されるものではなく、例えば、特開平１１−１３６４９８号公報、特開平１１−１４９５５９号公報、特開２０００−１２５３２０号公報、特開平１１−２８４８７４号公報に開示の方法を用いてもよい。
【００４３】
次に、図５及び図６を用いて、赤目補正処理部２０６について説明する。図５は、赤目補正処理部２０６が実行する赤目領域の補正処理のフローチャートである。
【００４４】
赤目補正処理部２０６には、ＲＧＢ成分で構成された画像データと、前段までの処理で得られた赤目領域の情報が入力される。
【００４５】
まず、図５に示すように、注目赤目領域に対して補正範囲を設定する（Ｓ５０１）。ここで、図６を用いて補正範囲の決定について説明する。図６は、補正範囲の決定の説明図である。
【００４６】
図６（ａ）において、中央の矩形領域が赤目領域６０１である。赤目領域６０１の中心を通る長径、短径がそれぞれＬｗ１、Ｌｈ１の楕円の補正領域６０２を設定する。なお、Ｌｗ１、Ｌｈ１は、下記式（１）によって算出する。
【００４７】
Ｌｗ１＝Ｌｗ０×ＣＰＡＲＡＭ＿ＡＲＥＡＲＡＴＩＯ
Ｌｈ１＝Ｌｈ０×ＣＰＡＲＡＭ＿ＡＲＥＡＲＡＴＩＯ      （１）
（Ｌｗ０、Ｌｈ０は、それぞれ赤目領域６０１の幅と高さの１／２，ＣＰＡＲＡＭ＿ＡＲＥＡＲＡＴＩＯは補正範囲を決定するためのパラメータを示す）
次に、補正領域６０２内で補正に必要なパラメータを算出する（Ｓ５０２）。算出するパラメータは、楕円領域内部での最大輝度値Ｙｍａｘおよび式（３）に示す評価量Ｅｒの最大値Ｅｒｍａｘである
次に、注目画素が補正領域６０２内に存在するか否かを判定する（Ｓ５０３）。注目画素が補正領域６０２の楕円領域に存在するか否かは、楕円を算出する下記式（式２）に基づいて判定する。
【００４８】
（ｘ／Ｌｗ１）２＋（ｙ／Ｌｈ１）２≦１      （２）
（（ｘ，ｙ）は注目画素の座標，ただし、座標原点は注目赤目領域の中心）
注目画素の座標（ｘ，ｙ）が式（２）を満たす場合、注目画素は補正領域６０２内に存在すると判定し、Ｓ５０４に進む。
【００４９】
一方、注目画素の座標（ｘ，ｙ）が式（２）を満たさない場合は、注目画素が補正領域６０２内に存在しないと判定し、注目画素を次の画素に移動し（Ｓ５１０）、Ｓ５０３に戻る。
【００５０】
Ｓ５０４では、注目画素のＲＧＢ成分値を輝度、色差成分のＹＣＣ値に変換する（Ｓ５０４）。注目画素のＲＧＢ成分値のＹＣＣ値への変換方法は特に限定されない。
【００５１】
次に、注目画素に対する評価量を算出する（Ｓ５０５）。この評価量は、後段のＳ５０６で補正量を決定するために必要なパラメータであり、具体的には以下の三つの値である。
（１）赤目領域６０１の中心から注目画素までの距離ｒと、中心から楕円境界までの距離ｒ０の比ｒ／ｒ０
（２）注目画素の評価量Ｅｒと評価量の最大値Ｅｒｍａｘの比Ｅｒ／Ｅｒｍａｘ
（３）注目画素の輝度Ｙと最大輝度値Ｙｍａｘの比Ｙ／Ｙｍａｘ
次に、Ｓ５０５で求めたパラメータを用いて、注目画素の輝度Ｙおよび色差成分Ｃｒ、Ｃｂそれぞれの補正量Ｖｙ、Ｖｃを式（３）によって算出する（Ｓ５０６）。
【００５２】
Ｖｙ＝｛１−ＲｒＴｙ１｝・｛１−（１−Ｒｅ）Ｔｙ２｝・｛１−ＲｙＴｙ３｝
Ｖｃ＝｛１−ＲｒＴｃ１｝・｛１−（１−Ｒｅ）Ｔｃ２｝      （３）
（Ｒｒ＝ｒ／ｒ０、Ｒｅ＝Ｅｒ／Ｅｒｍａｘ、Ｒｙ＝Ｙ／Ｙｍａｘ    Ｖｙ、Ｖｃはともに０．０〜１．０）
Ｖｙ，Ｖｃの値は、１．０に近いほど補正量が大きいことを意味する。
【００５３】
輝度の補正量Ｖｙは、Ｓ５０５で算出した三つのパラメータすべてを用いて決定する。輝度の補正量Ｖｙは、注目画素の位置が補正領域６０２の中心から離れるほど補正量が小さくなり、また、注目画素の評価量Ｅｒが、最大値Ｅｒｍａｘに比べて小さい場合、補正量Ｖｙは小さくなる。また、注目画素の輝度値Ｙが、最大値Ｙｍａｘに近い場合、補正量Ｖｙは小さくなる。輝度が高い画素の補正量Ｖｙを小さくすることにより、目の中のハイライト部（キャッチライト）を保存することができる。
【００５４】
一方、色差の補正量Ｙｃは、Ｓ５０５で算出した三つのパラメータのうち輝度に関するパラメータを除いた二つのパラメータを用いて決定する。
【００５５】
上述した式（３）において、Ｔｙ１、Ｔｙ２、Ｔｙ３、Ｔｃ１、Ｔｃ２の各パラメータの設定によって各評価量（式（３）の｛  ｝内の値）を、図６（ｂ）に示すように、一次（実線）、二次（破線）、三次（一転鎖線）といった直線又は、曲線に適用することができる。
【００５６】
次に、補正量Ｖｙ、Ｖｃを用いて下記式（４）により補正後のＹＣＣ値を算出する（Ｓ５０７）。
【００５７】
Ｙ’＝（１．０−Ｗｙ・Ｖｙ）・Ｙ
Ｃ’＝（１．０−Ｗｃ・Ｖｃ）・Ｃ      （４）
（Ｙ、Ｃは補正前の値，Ｙ’、Ｃ’は補正後の値，Ｗｙ、Ｗｃは重み（０．０〜１．０））
なお、重みＷｙ、Ｗｃの値を調節することにより、補正強度を指定することができる。例えば、補正強度を弱、中、強と三段階とする場合、Ｗｙ，Ｗｃをともに０．３，０．７，１．０などに設定することで、同一の処理で、補正強度が異なる結果を得ることができる。
【００５８】
新しい輝度、色差成分の値が決定したら、次に、ＹＣＣ値をＲＧＢ値へ変換する（Ｓ５０８）。得られたＲＧＢ値は、補正後の画素値として入力画像用のメモリバッファに上書きする、あるいは、出力用画像を格納するメモリバッファの所定アドレスに格納する。
【００５９】
そして、現在の画素が最後の画素か否かを判定する（Ｓ５０９）。最後の画素ではない場合は、Ｓ５１０へ進み注目画素を移動した後、Ｓ５０３へ戻る。このようにして、注目赤目領域に対応する最後の画素に達するまで、上記の処理（Ｓ５０３〜Ｓ５０８）を繰り返す。
【００６０】
上述した実施形態では、赤目補正処理部２０６に入力される画像がＲＧＢ成分で構成され、入力画像を輝度、色差成分に変換して補正した後、再び、ＲＧＢ成分に戻す方法を例に挙げて説明したが、赤目領域の補正処理は、これに限定されるものではない。例えば、ＲＧＢ成分を明度、彩度に変換し、同様の方法により明度、彩度を補正した後、再び、ＲＧＢ成分に戻したとしても、ほぼ同様の出力結果を得ることができる。
【００６１】
また、補正量を決定するためのパラメータとして、注目画素の評価量Ｅｒと補正領域６０２内の評価量の最大値Ｅｒｍａｘの比Ｅｒ／Ｅｒｍａｘを用いる例を説明したが、同パラメータを単純に彩度に置き換えることも可能である。すなわち、注目画素の彩度と、補正領域６０２内の最大彩度との比を用いて補正量を決定してもよい。
【００６２】
次に、図７を用いて画像処理について説明する。図７は、本実施形態における画像処理のフローチャートである。この画像処理は、ＣＰＵ１００によって実行される。図７に示す処理は、は図２（ａ）に示す機能ブロック図をベースとした処理である。
【００６３】
まず、Ｓ８０１において、ｌ＝Ｌ枚の画像を取得する。本実施形態では、Ｌ＝１０とする。２次記憶装置１０３に蓄えられている画像の中からユーザーが入力装置１０５と表示装置１０４を用いて選択した１０枚を取得する。取得された画像１０枚をまとめて２次記憶装置１０３内のデータベースに保存したのち、全画像をＳ８０２に入力する。
【００６４】
次に、Ｓ８０２において、Ｌ枚（本実施形態では１０枚）の取得した画像の顔検出処理を行う。ここでは、上述した顔検出部２０３により顔検出処理を行う。本実施形態では、ＡｄａＢｏｏｓｔを用いて顔の位置と顔の向きを出力する顔検出アルゴリズムを用いることにより、１５個の顔を検出したものとする。
【００６５】
ここで、図８を用いて顔検出の結果について説明する。図８（ａ）は、１０枚の取得画像の顔検出結果の一例を表す。画像ＩＤは、各画像を識別するためのＩＤであり、顔検出数は、各画像において検出された顔の数を示す。また、顔ＩＤは各顔を識別するためのＩＤであり、例えば、顔ＩＤ１−１は、画像ＩＤ１の顔１であり、顔ＩＤ２−３は、画像ＩＤ２の顔３である。また、座標は、検出された各顔の座標である。顔の向きは、正面顔＝０、左向き斜め顔＝１、右向き斜め顔＝２、左向き横顔＝３、右向き横顔＝４の５段階で表されている。図８（ａ）は、１０枚の取得画像から、正面顔が７個、左向き斜め顔が３個、右向き斜め顔が２個、左向き横顔が２個、右向き横顔が１個、計１５個の顔を検出したことを示す。このような顔検出結果は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のような汎用的なフォーマットで２次記憶装置１０３内のデータベースに保存する。
【００６６】
次に、Ｓ８０３において、１５個の顔検出領域に対して赤目検出処理を行う。本実施形態では、赤目検出部２０４において適応的二値化による赤色領域の抽出後に境界線追跡による赤丸領域の抽出を行い、さらにその結果に特徴量判定をすることにより赤目検出を行う。Ｓ８０３に入力する画像は、Ｓ８０２で顔検出された顔領域のみとする。具体的には、図８（ａ）に示した各顔の顔領域を表す座標（左上、左下、右上、右下の４点）を元画像から切り出した画像をＳ８０３に入力する。赤目検出処理の結果、ｎ＝Ｎ個の赤目が検出される。本実施形態では、図８（ｂ）に示すように、Ｎ＝７の赤目が検出される図８（ｂ）は、図８（ａ）の顔検出結果に、Ｓ８０３の各顔領域を赤目検出結果を加えた表である。図８（ｂ）において赤目検出結果は、各顔ＩＤに対して赤目が検出された個数を表す。これより、１５個の顔全部で計７個の赤目を検出していることがわかる。この赤目検出結果は、検出された赤目毎にその座標を保存する。顔検出結果を保存しているフォーマットに追記する形で保存されてもよいし、新たに顔毎に保存してもよい。
【００６７】
Ｓ８０５において、赤目検出された７個のうち１個目の赤目領域に対し、補正を行うか否かの判定を行う。顔の向きに応じて、補正基準、すなわち、補正を行うか否か（補正１か補正０か）を決定する。本実施形態では、５段階の顔の向きのうちどの顔向きかに応じて、赤目補正を行うか否かを判定する。本実施形態では、顔向きが正面及び斜めの顔、すなわち、顔向きが０，１，２の場合は、次のステップの赤目補正Ｓ８０６に入力するよう設定する。顔向きが横向きの顔、すなわち、顔向きが３，４のものは次のステップの赤目補正Ｓ８０６に入力せずに、Ｓ８０７へ進む。
【００６８】
Ｓ８０６では、赤目補正が実行される。ここでは、補正を実行すると判断された赤目が赤目補正処理に入力されて、赤目補正が実行される。赤目補正の方法は、赤目補正処理部２０６で説明した方法を用いる。そして、Ｓ８０７へ進む。
【００６９】
Ｓ８０７では、ｎ＝ｎ＋１とし、Ｓ８０８へ進む。Ｓ８０８では、ｎ＝Ｎか否かを判定し、ｎ＝Ｎではない場合はＳ８０５へ戻り、次の赤目の補正判定を行う。このようにして、すべての赤目検出結果に対して処理を行って処理を終了する。本実施形態では、各画像の顔の位置と顔の向きを検出し、検出された各顔から赤目を検出し、顔の向きに基づいて、赤目補正を行う。すなわち、本実施形態では、Ｓ８０３において検出された赤目検出結果は、「赤目候補」として扱い、顔の向きに応じて、赤目補正をするか否かを判定する。具体的には、本実施形態では、顔の向きが横向きの場合、Ｓ８０６へ入力しないことにより、赤目補正を行わない。
【００７０】
これは、顔の向きが横向きの場合、赤目現象は発生し難いからである。一般的に赤目現象は、フラッシュの光が顔の正面方向から入るほど、網膜の毛細血管に反射して赤く光った反射光がカメラに多く戻り、赤目現象が発生しやすいとされている。したがって、フラッシュの光が顔の横方向から入ると、網膜での反射はほとんど起こらないため赤目現象は発生しにくい。
【００７１】
したがって、本実施形態では、赤目が発生しにくい向きの顔から赤目が検出された場合、本実施形態では、顔の向きが横向きで赤目検出された場合は、誤検出であると判断し、赤目補正を行わない。これにより、誤った補正を減らすことが可能となる。
【００７２】
例えば、上述した特許文献１の場合、検出された赤目候補の領域が目の位置に近い場合、常に赤目補正が実行される。したがって、目頭近傍の赤色領域は、目の位置としておおよそ妥当であるため、赤目補正が実行されて目頭近傍が黒く補正されてしまう。同様に、目尻近傍で赤目候補が検出された場合も不適切な補正が行われる可能性がある。さらに、眼鏡のガラスやフレームの一部が赤く光ったような場合にも同様に不適切な補正が行われる可能性がある。これに対し、本実施形態によれば、例えば、顔の向きが横向きの場合に、赤目候補が誤検出であると判断して補正を行わないことにより、顔の向きが横向きの場合に目頭近傍、目尻近傍、装飾品などの誤補正を抑制することができる。
【００７３】
上述したように、本実施形態では、顔の向きに基づいて赤目候補から赤目ではないと判定できるものを除くことにより、誤補正を軽減することができる。
【００７４】
（実施形態２）
実施形態１では、顔の向きに応じて赤目補正をするか否かを判定したが、本実施形態では、顔の向きに応じて補正量を変更する。なお、実施形態１と同様の構成については説明を省略する。
【００７５】
図９は、本実施形態に係る画像処理のフローチャートである。この処理は、ＣＰＵ１００によって実行される。
【００７６】
図９において、Ｓ１００１〜Ｓ１００４は、実施形態１の図７におけるＳ８０１〜Ｓ８０４と同様の処理であるので説明を省略する。
【００７７】
Ｓ１００５において、顔の向きに応じた補正基準を設定する。まず、赤目検出された７個のうち１個目の赤目領域に対し、顔の向きに応じた補正パラメータの設定を行う。本実施形態では、上述の５段階の顔の向きそれぞれに対して設定を行う。この補正パラメータは、予め設定可能である。上述した通り、赤目は正面顔ほど発生しやすく横顔ほど発生しにくいが、その程度も正面顔ほど顕著な赤色となりやすいため、例えば、赤目補正パラメータは、正面顔ほど強く、横顔ほど弱く補正されるような値に設定する。すなわち、顔の向きの横向き度が高いほど補正量が小さくなるように補正パラメータを設定する。
【００７８】
本実施形態では、顔向きが正面（顔向き＝０）、斜め向き（顔向き＝１，２）、横向き（顔向き＝３，４）それぞれに対して、赤目補正処理部２０６で説明した補正量を表す式（４）の重みパラメータＷｙ、Ｗｃをともに１．０、０．７、０．３と設定する。この設定値を参照することで、Ｓ１００５に入力されたｎ＝１個目の赤目の補正パラメータを決定する。
【００７９】
次に、Ｓ１００６において、決定した補正パラメータに基づいてｎ＝１個目の赤目補正を実行する。ここでの赤目補正は、赤目補正処理部２０６で説明した方法により行う。
Ｓ１００７では、ｎ＝ｎ＋１とし、Ｓ１００８へ進む。Ｓ１００８では、ｎ＝Ｎか否かを判定し、ｎ＝Ｎではない場合はＳ１００５へ戻り、次の赤目に対して、顔向き度に応じて補正パラメータを決定する。このようにして、Ｓ１００５〜Ｓ１００８を検出された赤目７個全てに対して行い、処理を終了する。
【００８０】
本実施形態では、正面・斜め向き・横向きの重みパラメータＷｙ、Ｗｃをともに１．０，０．７，０．３と設定したが、横顔のみ０．０と設定すれば横顔の赤目は補正がかからないこととなり、結果的に実施形態１と同様の結果を得ることができる。
【００８１】
本実施形態では、各画像の顔の位置と顔の向きを検出し、検出された各顔から赤目を検出し、顔の向きに基づいて設定された赤目補正パラメータに基づいて、赤目補正を行う。これにより、赤目が発生しにくい向きの顔ほど赤目補正の補正量を小さく実行することができる。したがって、誤った補正や過剰な補正を減らすことが可能となる。
【００８２】
また、本実施形態では、実施形態１と同様に、横向きの場合は、赤目検出結果は誤検出であるとして、赤目補正を行わないことにより、誤った補正を減らすことが可能となる。
【００８３】
また、赤目は正面顔ほど顕著な赤色となりやすいが、本実施形態では、顔の向きに応じて、補正パラメータを設定することにより、顔の向きと検出された赤目の程度に矛盾があったときに補正パラメータを弱く設定して、過度な補正を減少させることができる。
【００８４】
（実施形態３）
実施形態１及び２では、図２（ａ）の機能ブロック図をベースとする赤目補正処理について説明したが、本実施形態では、図２（ｂ）の機能ブロック図をベースとする赤目補正について説明する。なお、実施形態１と同様の構成については説明を省略する。
【００８５】
図１０は、本実施形態に係る画像処理を説明するフローチャートである。図１０におけるＳ１３０１〜Ｓ１３０２は、実施形態１に係る図７のＳ８０１〜Ｓ８０２や実施形態２に係る図９のＳ１００１〜Ｓ１００２と同様であるので説明を省略する。なお、Ｓ１３０２で検出された顔の結果は、図８（ａ）と同じＭ＝１５個の顔であるとする。
【００８６】
Ｓ１３０４において、顔検出された１５個のうち１個目の顔領域に対し、赤目検出を行うか否かの判定を行う。顔の向きに応じて、検出基準、すなわち、赤目検出を行うか否か（検出閾値Ｍか、検出閾値１００として検出しないか）を決定する。本実施形態では、５段階の顔の向きのうちどの顔向きかに応じて、赤目補正を行うか否かを判定する。これは予めパラメータで設定可能であり、本実施形態においては顔向きが正面と斜めの顔、すなわち、顔向きが０，１，２の場合は、次のステップの赤目検出Ｓ１３０５に入力するよう設定する。顔向きが横向きの顔、すなわち、顔向きが３，４のものは次のステップの赤目検出Ｓ１３０５に入力しないように設定する。
【００８７】
顔向きが３，４のものは、にＳ１３０７，Ｓ１３０８を経てＳ１３０４に戻り、次の顔の赤目検出判断を行う。
【００８８】
Ｓ１３０５では、Ｓ１３０４において赤目検出を実行すると判定された顔が赤目検出処理に入力され、赤目検出を実行する。赤目検出の方法は、赤目検出部２０４で説明した通りである。なお、Ｓ１３０５に入力する画像は、Ｓ１３０２で顔検出された顔領域のみとし、具体的には図８（ａ）に示した各顔の顔領域を表す座標（左上、左下、右上、右下の４点）を元画像から切り出した画像である。
【００８９】
図８（ｃ）は、Ｓ１３０５で各顔領域を赤目検出した結果を図８（ａ）に加えた表である。赤目検出結果は、各顔に対して赤目が検出された個数を表す。図８（ｃ）では、１５個の顔全部で計６個の赤目を検出している。本実施形態では、赤目検出を実行する顔を顔の向きで選択しているため、顔ＩＤ２−２、４−１、６−１の３つの顔は赤目検出Ｓ１３０５に入力されない。実施形態１及び２と同様に、赤目検出結果は、検出された赤目毎にその座標を保存する。顔検出結果を保存しているフォーマットに追記する形で保存されても良いし、新たに顔毎に保存しても良い。
【００９０】
次に、Ｓ１３０６において、検出された赤目が赤目補正処理に入力され、補正を実行する。赤目補正は、赤目補正処理部２０６で説明した方法により行う。
【００９１】
本実施形態では、各画像の顔の位置と顔の向きを検出し、顔の向きに基づいて赤目検出を行った後、赤目補正を行う。本実施形態では、赤目が発生しにくい向きの顔では赤目検出を実行しないように設定することができる。これにより、赤目が発生しにくい向きにおける誤検出を軽減することができる。したがって、赤目の誤補正も抑制することができる。
【００９２】
また、本実施形態では、赤目が発生しにくい向きの顔は、赤目検出に入力しないため、入力した画像全体の検出速度を上げることができる。
【００９３】
（実施形態４）
実施形態１及び２では、図２（ａ）の機能ブロック図をベースとする赤目補正処理について説明したが、本実施形態では、図２（ｂ）の機能ブロック図をベースとする赤目補正について説明する。なお、実施形態１と同様の構成については説明を省略する。
【００９４】
本実施形態では、赤目検出に全ての顔の向きの顔を入力し、顔の向きに応じて赤目検出の検出されやすさ、すなわち、検出閾値を設定する。
【００９５】
図１１は、本実施形態に係る画像処理のフローチャートである。この処理は、ＣＰＵ１００により実行される。
【００９６】
図１４におけるＳ１４０１〜Ｓ１４０３は、実施形態３で説明のＳ１３０１〜Ｓ１３０３と同様であるので説明を省略する。
【００９７】
Ｓ１４０４では、顔の向きに応じた検出基準を設定する。本実施形態では、まず、顔検出された１５個のうち１個目の顔領域に対し、顔の向きに応じた赤目検出パラメータの設定を行う。本実施形態では、上述の５段階の顔の向きそれぞれに対して設定を行う。この赤目検出パラメータは、予め設定可能である。本実施形態では、顔向きが正面（顔向き＝０）、斜め向き（顔向き＝１，２）、横向き（顔向き＝３，４）それぞれに対して、赤目検出部２０４の適応的二値化による赤色領域の抽出で説明した閾値を設定する。この設定値を参照することで、Ｓ１４０４に入力されたｍ＝１個目の顔の赤目検出パラメータを決定する。赤目は正面顔ほど発生しやすく横顔ほど発生しにくいため、赤目検出パラメータは、例えば、正面顔ほど検出されやすく、横顔ほど検出されにくいような値に設定する。すなわち、顔の向きの横向き度が高いほど検出基準が高くなるように検出パラメータを設定する。
【００９８】
Ｓ１４０５において、決定した赤目検出パラメータに基づいてｍ＝１個目の顔の赤目検出処理を実行する。赤目補正は、赤目補正処理部２０６で説明した方法により行う。Ｓ１４０７では、ｍ＝ｍ＋１とし、Ｓ１４０８へ進む。Ｓ１４０８では、ｍ＝Ｍか否かを判定し、ｍ＝Ｍではない場合はＳ１４０４へ戻り、次の赤目に対して、顔向き度に応じて補正パラメータを決定する。このようにして、検出された顔１５個全てに対してＳ１４０４〜Ｓ１４０８を行い、処理を終了する。
【００９９】
なお、本実施形態では、正面・斜め向き・横向きの赤目検出パラメータをそれぞれ設定したが、横顔のみ確実に赤目が検出されないようなパラメータを設定すれば、結果的に実施形態３と同様の結果を得ることができる。
【０１００】
本実施形態では、各画像の顔の位置と顔の向きを検出し、顔の向きに応じて設定された赤目検出パラメータで赤目検出を行い、赤目補正を行う。これにより、赤目が発生しにくい向きの顔ほど赤目が検出されにくくなり、誤検出を減らすことができる。
【０１０１】
（他の実施形態）
本発明の基本的構成は上述したものに限定されるものではない。上述した実施形態は、本発明の効果を得るための一手段であり、類似の別手法を用いたり、異なるパラメータを用いたとしても、本発明と同等の効果が得られる場合は、本発明の範疇に含まれる。
【０１０２】
実施形態１及び２では、取得画像全ての顔検出を行い、取得した画像全ての赤目検出を行った後、検出された赤目１個ずつに対して赤目補正実行判断や赤目補正パラメータ設定そして赤目補正を行ったがこれに限定されるものではない。例えば、図１２や図１３に示す処理手順としても同様の効果を得ることができる。すなわち、図１２に示すように、複数取得した画像データ１つずつに対して顔検出、赤目検出、赤目補正パラメータ設定、赤目補正を行うようにしてもよい。また、図１３に示すように、１つの画像データを取得する度に顔検出、赤目検出、補正実行するか否かの判定、赤目補正を行い、次の画像をまた取得するようにしてもよい。例えば、外部撮像デバイス１１１において画像処理を行う場合や、内部撮像デバイス１０６から撮像の度に画像を取得する場合は、図１３に示す方法を好適に用いることができる。
【０１０３】
また、実施形態３及び４では、Ｓ１３０２やＳ１４０２において取得した画像全ての顔検出をまとめて行い、検出された顔１個ずつに対して赤目検出実行判断や赤目検出パラメータ設定そして赤目補正を行ったがこれに限定されるものではない。例えば、以下に説明の図１４や図１５のような処理手順でも同様の効果を得ることができる。すなわち、図１４に示すように、複数枚取得した画像１枚ずつに対して顔検出、赤目検出パラメータ設定、赤目検出、赤目補正を行うようにしてもよい。また、図１５に示すように、１枚の画像を取得する度に顔検出、赤目検出実行判断、赤目検出、赤目補正を行い、次の画像をまた取得するようにしてもよい。外部撮像デバイス１１１において画像処理を行う場合や、内部撮像デバイス１０６から撮像の度に画像を取得する場合に、図１５に示す方法を好適に用いることができる。
【０１０４】
また、上述した実施形態では、複数画像を入力し、複数画像が取得されたタイミングで各画像の顔の位置と顔の向きを検出するようにしたが、これに限定されるものではなく、ユーザーなどが指定したタイミングで検出するようにしてもよい。
【０１０５】
上述した実施形態では、画像処理装置としてコンピュータを例に挙げて説明したが、これに限定されるものではない。例えば、プリンタ、複写機、ファクシミリ装置、携帯電話、ＰＤＡ、画像ビューワー、デジタルカメラ、などの画像処理を行う装置において、本発明を適用可能である。
【０１０６】
また、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、プリンタ、複写機、ファクシミリ装置等）に適用しても良い。
【０１０７】
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部又は全部をハードウェアによって実現するようにしてもよい。
【符号の説明】
【０１０８】
１００  ＣＰＵ
１０１  ＲＯＭ
１０２  ＲＡＭ
１０３  ２次記憶装置
１０４  表示装置
１０５  入力装置
１０６  内部撮像デバイス
１０７，１０８  ＩＦ
１０９  無線ＬＡＮ
２０２  画像取得部
２０３  顔検出部
２０４  赤目検出部
２０５  赤目補正判定部
２０６  赤目補正処理部
２０８  赤目検出判定部
【図１】
2015011556.tif 000003
【図２】
2015011556.tif 000004
【図３】
2015011556.tif 000005
【図４】
2015011556.tif 000006
【図５】
2015011556.tif 000007
【図６】
2015011556.tif 000008
【図７】
2015011556.tif 000009
【図８】
2015011556.tif 000010
【図９】
2015011556.tif 000011
【図１０】
2015011556.tif 000012
【図１１】
2015011556.tif 000013
【図１２】
2015011556.tif 000014
【図１３】
2015011556.tif 000015
【図１４】
2015011556.tif 000016
【図１５】
2015011556.tif 000017