(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出する器官検出部と、
前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出する第１の赤目検出部と、
前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する第２の赤目検出部と
を備える画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第１の赤目検出部は、前記第２の手法に従って、前記器官領域を表す比較的画素密度の高い画像を利用して前記第１の赤目領域を検出し、
前記第２の赤目検出部は、前記第３の手法に従って、前記残りの領域を表す比較的画素密度の低い画像を利用して前記第２の赤目領域を検出する、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、
前記第１の赤目検出部は、前記第２の手法に従って、第１条件を満たす領域を前記第１の赤目領域として検出し、
前記第２の赤目検出部は、前記第１条件よりも厳しい第２条件を満たす領域を前記第２の赤目領域として検出する、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記第１条件は、前記第１の赤目領域として検出されるべき領域内の瞳孔を表す画素が、第１赤色範囲内の色を示す画素を含むこと、を含み、
前記第２条件は、前記第２の赤目領域として検出されるべき領域内の瞳孔を表す画素が、前記第１赤色範囲に含まれるとともに前記第１赤色範囲よりも狭い第２赤色範囲内の色を示す画素を含むこと、を含む、画像処理装置。
【請求項５】
請求項３または請求項４に記載の画像処理装置であって、
前記第１条件は、前記第１の赤目領域として検出されるべき領域を含む候補領域と、赤目を表す所定の基準画像との間の類似度が、第１閾値よりも高いこと、を含み、
前記第２条件は、前記第２の赤目領域として検出されるべき領域を含む候補領域と、前記基準画像との間の類似度が、前記第１閾値よりも大きい第２閾値よりも高いこと、を含む、画像処理装置。
【請求項６】
請求項１ないし請求項５のいずれか一項に記載の画像処理装置であって、さらに、
前記第１の赤目領域および前記第２の赤目領域を利用した赤目補正を実行する画像処理部を備える画像処理装置。
【請求項７】
プリンタであって、
対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出する器官検出部と、
前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出する第１の赤目検出部と、
前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する第２の赤目検出部と、
前記第１の赤目領域および前記第２の赤目領域を利用した赤目補正を実行する画像処理部と、
前記画像処理部による処理後の前記対象画像を印刷する印刷部と、
を備えるプリンタ。
【請求項８】
画像処理方法であって、
対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出し、
前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出し、
前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する画像処理方法。
【請求項９】
画像処理のためのコンピュータプログラムであって、
対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出する機能と、
前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出する機能と、
前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する機能と
をコンピュータに実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理のためのコンピュータプログラムに関するものである。
【背景技術】
【０００２】
従来より、種々の画像処理が利用されている。例えば、色を補正する処理や、被写体を変形させる処理がある。また、画像処理を行うために、画像から人物の顔を検出する技術も利用されている。
【０００３】
【特許文献１】特開２００４−３１８２０４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、画像中の人物の目（特に瞳孔）が赤く写る場合がある（いわゆる赤目）。このような赤目を画像から検出することは、赤目に関する種々の処理（例えば、赤目補正）に有用である。ところが、従来は、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することに関しては十分な工夫がなされていないのが実情であった。
【０００５】
本発明は、上記の課題の少なくとも一部を解決するためになされたものであり、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
第１形態の画像処理装置は、対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出する器官検出部と、前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出する第１の赤目検出部と、前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する第２の赤目検出部とを備えることを特徴とする。
第２形態のプリンタは、対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出する器官検出部と、前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出する第１の赤目検出部と、前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する第２の赤目検出部と、前記第１の赤目領域および前記第２の赤目領域を利用した赤目補正を実行する画像処理部と、前記画像処理部による処理後の前記対象画像を印刷する印刷部とを備えることを特徴とする。
第３形態の画像処理方法は、対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出し、前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出し、前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出することを特徴とする。
第４形態のコンピュータプログラムは、対象画像における人物の目の画像を含む器官領域を、第１の手法を用いて検出する機能と、前記器官領域から、赤目の画像を含む第１の赤目領域を、前記第１の手法とは異なる第２の手法を用いて検出する機能と、前記対象画像から前記器官領域を除いた残りの領域から、前記第１の赤目領域とは異なる赤目の画像を含む第２の赤目領域を、前記第１の手法および前記第２の手法とは異なる第３の手法を用いて検出する機能とをコンピュータに実現させることを特徴とする。
【０００７】
［適用例１］画像処理装置であって、対象画像における人物の目の画像を含む器官領域を検出する器官検出部と、前記器官領域を利用して赤目の画像を含む赤目領域を検出する赤目検出部と、を備え、前記赤目検出部は、（Ａ）前記器官領域から第１検出処理に従って前記赤目領域を検出し、（Ｂ）前記対象画像から前記器官領域を除いた残りの領域から、前記第１検出処理とは異なる第２検出処理に従って前記赤目領域を検出する、画像処理装置。
【０００８】
この構成によれば、人物の目の画像を含む器官領域から第１検出処理に従って赤目領域が検出され、対象画像から器官領域を除いた残りの領域から、第１検出処理とは異なる第２検出処理に従って赤目領域が検出されるので、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【０００９】
［適用例２］適用例１に記載の画像処理装置であって、前記第１検出処理は、前記器官領域を表す比較的画素密度の高い画像を利用して前記赤目領域を検出する処理を含み、前記第２検出処理は、前記残りの領域を表す比較的画素密度の低い画像を利用して前記赤目領域を検出する処理を含む、画像処理装置。
【００１０】
この構成によれば、器官領域からの赤目の検出に比較的画素密度の高い画像が利用されるので、赤目検出の精度を高めることができる。また、器官領域外からの赤目の検出に比較的画素密度の低い画像が利用されるので、処理に要するメモリのサイズを低減できる。また、器官領域の内と外との間で赤目の検出処理が切り替えられるので、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【００１１】
［適用例３］適用例１または適用例２に記載の画像処理装置であって、前記第１検出処理は、第１条件を満たす領域を前記赤目領域として検出する処理を含み、前記第２検出処理は、前記第１条件よりも厳しい第２条件を満たす領域を前記赤目領域として検出する処理を含む、画像処理装置。
【００１２】
この構成によれば、器官領域からは比較的緩やかな第１条件を満たす領域が赤目領域として検出されるので、赤目領域の検出漏れを抑制できる。また、器官領域外からは比較的厳しい第２条件を満たす領域が赤目領域として検出されるので、赤目でない被写体を表す領域が誤って赤目領域として検出されることを抑制できる。また、器官領域の内と外との間で赤目の検出処理が切り替えられるので、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【００１３】
［適用例４］適用例３に記載の画像処理装置であって、前記第１条件は、前記赤目領域として検出されるべき領域内の瞳孔を表す画素が、第１赤色範囲内の色を示す画素を含むこと、を含み、前記第２条件は、前記瞳孔を表す画素が、前記第１赤色範囲に含まれるとともに前記第１赤色範囲よりも狭い第２赤色範囲内の色を示す画素を含むこと、を含む、画像処理装置。
【００１４】
この構成によれば、器官領域内からの赤目の検出に比較的広い第１赤色範囲が利用されるので、赤目領域の検出漏れを抑制できる。また、器官領域外からの赤目の検出に比較的狭い第２赤色範囲が利用されるので、赤目でない被写体を表す領域が誤って赤目領域として検出されることを抑制できる。また、器官領域の内と外との間で赤目の検出処理が切り替えられるので、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【００１５】
［適用例５］適用例３または適用例４に記載の画像処理装置であって、前記第１条件は、前記赤目領域として検出されるべき領域を含む候補領域と、赤目を表す所定の基準画像との間の類似度が第１閾値よりも高いこと、を含み、前記第２条件は、前記類似度が、前記第１閾値よりも大きい第２閾値よりも高いこと、を含む、画像処理装置。
【００１６】
この構成によれば、器官領域内からの赤目の検出に、比較的小さな第１閾値が利用されるので、赤目領域の検出漏れを抑制できる。また、器官領域外からの赤目の検出に、比較的大きな第２閾値が利用されるので、赤目でない被写体を表す領域が誤って赤目領域として検出されることを抑制できる。また、器官領域の内と外との間で赤目の検出処理が切り替えられるので、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【００１７】
［適用例６］適用例１ないし適用例５のいずれかに記載の画像処理装置であって、さらに、前記検出された赤目領域を利用した赤目補正を実行する画像処理部を備える、画像処理装置。
【００１８】
この構成によれば、赤目補正を行う態様において、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【００１９】
［適用例７］プリンタであって、対象画像における人物の目の画像を含む器官領域を検出する器官検出部と、前記器官領域を利用して赤目の画像を含む赤目領域を検出する赤目検出部と、前記検出された赤目領域を利用した赤目補正を実行する画像処理部と、前記画像処理部による処理後の前記対象画像を印刷する印刷部と、を備え、前記赤目検出部は、（Ａ）前記器官領域から第１検出処理に従って前記赤目領域を検出し、（Ｂ）前記対象画像から前記器官領域を除いた残りの領域から、前記第１検出処理とは異なる第２検出処理に従って前記赤目領域を検出する、プリンタ。
【００２０】
［適用例８］画像処理方法であって、対象画像における人物の目の画像を含む器官領域を検出する器官検出工程と、前記器官領域を利用して赤目の画像を含む赤目領域を検出する赤目検出工程と、を備え、前記赤目検出工程は、（Ａ）前記器官領域から第１検出処理に従って前記赤目領域を検出する工程と、（Ｂ）前記対象画像から前記器官領域を除いた残りの領域から、前記第１検出処理とは異なる第２検出処理に従って前記赤目領域を検出する工程と、を含む、画像処理方法。
【００２１】
［適用例９］画像処理のためのコンピュータプログラムであって、対象画像における人物の目の画像を含む器官領域を検出する器官検出機能と、前記器官領域を利用して赤目の画像を含む赤目領域を検出する赤目検出機能と、をコンピュータに実現させるコンピュータプログラムを備え、前記赤目検出機能は、（Ａ）前記器官領域から第１検出処理に従って前記赤目領域を検出する機能と、（Ｂ）前記対象画像から前記器官領域を除いた残りの領域から、前記第１検出処理とは異なる第２検出処理に従って前記赤目領域を検出する機能と、を含む、コンピュータプログラム。
【００２２】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２３】
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．第４実施例：
Ｅ．変形例：
【００２４】
Ａ．第１実施例：
図１は、本発明の一実施例としてのプリンタ１００を示す説明図である。このプリンタ１００は、制御部２００と、印刷エンジン３００と、ディスプレイ３１０と、操作パネル３２０と、カードインターフェース（Ｉ／Ｆ）３３０と、を備えている。
【００２５】
制御部２００は、ＣＰＵ２１０と、ＲＡＭ２２０と、ＲＯＭ２３０とを含むコンピュータである。この制御部２００は、プリンタ１００の各構成要素を制御する。
【００２６】
印刷エンジン３００は、与えられた印刷データを利用して印刷を実行する印刷機構である。印刷機構としては、インク滴を印刷媒体に吐出して画像を形成する印刷機構や、トナーを印刷媒体上に転写・定着させて画像を形成する印刷機構等の種々の印刷機構を採用可能である。
【００２７】
ディスプレイ３１０は、制御部２００からの命令に従って、操作メニューや画像を含む種々の情報を表示する。ディスプレイ３１０としては、液晶ディスプレイや有機ＥＬディスプレイ等の種々のディスプレイを採用可能である。
【００２８】
操作パネル３２０は、ユーザの指示を受け入れる装置である。操作パネル３２０は、例えば、操作ボタンやダイヤルやタッチパネルを含む。
【００２９】
カードＩ／Ｆ３３０は、メモリカードＭＣのインターフェースである。制御部２００は、メモリカードＭＣに格納された画像ファイルをカードＩ／Ｆ３３０を介して読み出す。そして、制御部２００は、読み出した画像ファイルを利用して、印刷を実行する。
【００３０】
図２は、ＲＯＭ２３０（図１）に格納されたモジュールを示す説明図である。本実施例では、器官検出モジュール４００と、赤目検出モジュール４１０と、画像処理モジュール４３０と、印刷データ生成モジュール４４０と、がＲＯＭ２３０に格納されている。これらのモジュール４００〜４４０は、ＣＰＵ２１０によって実行されるプログラムである。以下、モジュールに従ってＣＰＵが処理を実行することを、単に、「モジュールが処理を実行する」とも表現する。なお、各モジュール４００〜４４０は、ＲＡＭ２２０を介して互いにデータの送受信が可能である。各モジュール４００〜４４０の機能の詳細については後述する。
【００３１】
図３は、第１実施例における赤目検出処理の概略図である。本実施例では、制御部２００（図１）は、画像の印刷のために赤目補正を実行する。制御部２００は、この赤目補正のために、赤目領域を検出する。図３の例では、処理対象の画像（「対象画像ＩＭＧ」とも呼ぶ）に、３人の人物Ｐ１、Ｐ２、Ｐ３が写っている。図中の目Ｃ１ａ、Ｃ１ｂは、第１人物Ｐ１の目を示し、目Ｃ２ａ、Ｃ２ｂは、第２人物Ｐ２の目を示し、目Ｃ３ａ、Ｃ３ｂは、第３人物Ｐ３の目を示している。これらの目の内の３つの目Ｃ１ａ、Ｃ１ｂ、Ｃ３ｂは赤く写っている（赤目）。また、対象画像ＩＭＧには、ボタンＣ３ｃが写っている。このボタンＣ３ｃの色は、赤目と似た赤色である。
【００３２】
本実施例では、先ず、器官検出モジュール４００（図２）が、対象画像ＩＭＧ中の目領域を検出する。目領域は、人物の目の画像を含む領域である。目領域の検出方法としては、公知の種々の方法（例えば、目のテンプレート画像を用いたパターンマッチング）を採用可能である。なお、器官検出モジュール４００は、目（瞳孔）が赤く写っているか否かに拘わらずに、目領域を検出する。例えば、器官検出モジュール４００は、瞳孔部分を除いて、目領域の検出（例えば、パターンマッチング）を実行する。
【００３３】
図３の例では、目Ｃ１ａを表す目領域ＥＡ１と、目Ｃ１ｂを表す目領域ＥＡ２と、目Ｃ２ａを表す目領域ＥＡ３とが検出されている。図中では、検出された目領域ＥＡ１、ＥＡ２、ＥＡ３にハッチングが付されている。他の目Ｃ２ｂ、Ｃ３ａ、Ｃ３ｂを表す目領域は、検出されていない。このような検出漏れは、種々の原因で生じ得る。例えば、被写体（特に目）がぼやけて写っていること等がある。
【００３４】
次に、赤目検出モジュール４１０（図２）は、対象画像ＩＭＧ中の赤目領域を検出する。赤目検出モジュール４１０は、目の瞳孔部分が赤く写っている場合に、その赤色部分を赤目領域として検出する。このような赤目領域の検出方法としては、公知の種々の方法（例えば、赤目のテンプレート画像を用いたパターンマッチング）を採用可能である。なお、この赤目検出処理は、目領域の内と外との間で異なっている。
【００３５】
目領域の内では、赤目検出モジュール４１０（図２）は、対象画像ＩＭＧを、その画素密度を変更せずに、利用する。そして、赤目検出モジュール４１０は、瞳孔を表す画素が示すべき色の範囲として、比較的広い赤色の範囲を利用する。すなわち、赤目領域として、広い範囲の赤色を示す領域が検出され得る。このように、緩やかな条件に従って赤目領域が検出されるので、検出漏れを抑制できる。これらの詳細については、後述する。
【００３６】
図３には、目領域ＥＡ１、ＥＡ２、ＥＡ３からの赤目領域の検出結果が示されている。目Ｃ１ａ（目領域ＥＡ１）の赤色の部分が赤目領域ＲＥＡａとして検出され、目Ｃ１ｂ（目領域ＥＡ２）の赤色の部分が赤目領域ＲＥＡｂとして検出されている。目Ｃ２ａ（目領域ＥＡ３）の瞳孔部分の色は赤色では無いので、目Ｃ２ａからは赤目領域は検出されていない。
【００３７】
一方、目領域の外では、赤目検出モジュール４１０（図２）は、対象画像ＩＭＧから画素密度の低い縮小画像を生成し、縮小画像を利用して赤目領域を検出する。そして、赤目検出モジュール４１０は、瞳孔を表す画素が示すべき色の範囲として、比較的狭い赤色の範囲を利用する。すなわち、赤目領域として、狭い範囲の赤色を示す領域が検出される。このように、厳しい条件に従って赤目領域が検出されるので、赤目では無い赤色の被写体が赤目として検出されることを抑制できる。これらの詳細については、後述する。
【００３８】
図３には、目領域の外からの赤目領域の検出結果が示されている。目Ｃ３ｂの赤色の部分が赤目領域ＲＥＡｃとして検出されている。２つの目Ｃ２ｂ、Ｃ３ａのそれぞれの瞳孔部分の色は赤色では無いので、これらの目Ｃ２ｂ、Ｃ３ａからは赤目領域は検出されていない。また、ボタンＣ３ｃの色は、狭い赤色の範囲の外の赤色であるので、ボタンＣ３ｃは赤目として検出されていない。
【００３９】
図４は、印刷処理の手順を示すフローチャートである。画像処理モジュール４３０（図２）は、操作パネル３２０（図１）に入力されたユーザの指示に応答して、この印刷処理を開始する。この印刷処理では、制御部２００は、ユーザの指示によって指定された画像ファイルに含まれる画像データによって表される画像を印刷する。以下、ユーザによって指定された画像ファイルを「対象画像ファイル」と呼び、対象画像ファイルに格納されている画像データを「対象画像データ」と呼び、対象画像データによって表される画像を「対象画像」とも呼ぶ。
【００４０】
最初のステップＳ１００では、器官検出モジュール４００（図２）は、対象画像データを利用して、対象画像と同じ画像を表す画素密度の低い縮小画像を作成する。
【００４１】
図５は、縮小画像作成の手順を示すフローチャートである。本実施例では、器官検出モジュール４００（図２）は、いわゆるＱＶＧＡサイズ（３２０＊２４０画素）の画像を縮小画像として作成する。
【００４２】
図６は、縮小画像作成の概略図である。対象画像ＩＭＧの形状は矩形であり、複数の画素が、互いに直交するＸ方向とＹ方向とのそれぞれに沿って並んで配置されている。Ｘ方向の合計画素数はＩＷであり、Ｙ方向の合計画素数はＩＨである。Ｘ方向の画素位置は「０」〜「ＩＷ−１」の範囲内であり、Ｘ方向の画素位置は「０」〜「ＩＨ−１」の範囲内である。
【００４３】
ここで、幅ＩＷは、３２０よりも大きく、高さＩＨは２４０よりも大きいこととする。また、本実施例では、対象画像ＩＭＧを表すデータが、いわゆるＪＰＥＧ画像データであることとしている。よく知られているように、ＪＰＥＧ画像データでは、ＭＣＵ（Minimum Coded Unit）と呼ばれる画素ブロック毎にデータが符号化（例えば、種々のデータ圧縮）されている。以下、このブロックのことを「ブロックＭＣＵ」と呼ぶ。図６の対象画像ＩＭＧには、一部のブロックＭＣＵが示されている。また、図６の右上部分には、ブロックＭＣＵの拡大図が示されている。本実施例では、ブロックＭＣＵは、Ｍ＊Ｍの複数の画素ＰＸで構成されたブロックである（Ｍは１以上の整数）。通常は、ブロックサイズＭとして「８」が利用される。
【００４４】
器官検出モジュール４００は、Ｘ方向に延びる画素ラインを利用して、縮小画像を作成する。図６には、Ｙ方向の位置がＹｋである画素ラインＬｋが破線で示されている。図中のブロックバンドＢＤｋは、この画素ラインを表す画素を含むブロックＭＣＵを示している。ブロックバンドＢＤｋは、Ｘ方向に沿って延びるブロックの１本のラインである。
【００４５】
図５の最初のステップＳ３００では、器官検出モジュール４００は、対象ラインＬｋのＹ方向位置Ｙｋを初期化する（Ｙｋ＝０）。次のステップＳ３０５では、対象ラインＬｋを表す復号されたデータが、ＲＡＭ２２０内のバンドバッファＢＢＦに格納されているか否かを判断する。バンドバッファＢＢＦとしては、ＲＡＭ２２０内の所定のアドレスの領域が利用される。復号が済んでいない場合には、器官検出モジュール４００は、ブロックバンドＢＤｋの各ブロックＭＣＵを復号し（例えば、種々のデータ伸張）、復号されたデータ（復号ブロックバンドＤＢＤｋ）をバンドバッファＢＢＦに格納する。ここでは、ハフマン解凍（Ｓ３１０）、逆量子化（Ｓ３１５）、逆ＤＣＴ（逆離散コサイン変換：Ｓ３２０）、ＹＣＣ色空間からＲＧＢ色空間への色変換（Ｓ３２５）を含む処理が実行される。そして、バンドバッファＢＢＦ内の古いデータは、新しいデータによって上書きされる（Ｓ３３０）。
【００４６】
ブロックバンドＢＤｋの復号が済んでいる場合には、器官検出モジュール４００は、ステップＳ３１０〜Ｓ３３０の処理をスキップして、ステップＳ３３５に移行する。
【００４７】
ステップＳ３３５では、器官検出モジュール４００は、バンドバッファＢＢＦから、対象ラインＬｋ（Ｙ方向位置＝Ｙｋ）を表す画素データを取得する。そして、次のステップＳ３４０で、対象ラインＬｋの画素データを利用して、縮小画像ＬＩＭＧの一部の画素ラインの画素データを算出する。図６の例では、Ｙ方向位置＝Ｙｊである画素ラインＬｊの画素データが算出されている。次のステップＳ３４５では、器官検出モジュール４００は、算出した画素データを、ＲＡＭ２２０内の縮小画像バッファＬＩＢＦに格納する。縮小画像バッファＬＩＢＦとしては、ＲＡＭ２２０内の所定のアドレスの領域が利用される。なお、縮小画像ＬＩＭＧの画素データの算出方法としては、任意の方法を採用可能である。例えば、単純に一部の画素を間引くことによって、残りの画素を縮小画像ＬＩＭＧの画素として利用してもよい。また、補間（例えば、線形補間）によって、縮小画像ＬＩＭＧの画素のデータを算出してもよい。
【００４８】
器官検出モジュール４００は、位置Ｙｋを１だけインクリメントし（Ｓ３５０）、位置Ｙｋが高さＩＨ以上であるか否かを判断する（Ｓ３５５）。そして、器官検出モジュール４００は、対象画像ＩＭＧの全ての画素ラインのそれぞれに着目して、ステップＳ３０５〜Ｓ３５５の処理を繰り返し実行する。その結果、縮小画像バッファＬＩＢＦには、縮小画像ＬＩＭＧが格納される。そして、縮小画像作成処理が完了する。
【００４９】
図４の次のステップＳ１１０では、器官検出モジュール４００は、縮小画像ＬＩＭＧを解析して目領域を検出する。検出される目領域は、縮小画像ＬＩＭＧにおける領域であり、目の画像を含む領域である。なお、この段階では、目が赤目であるか否かに拘わらずに、目領域が検出される。
【００５０】
図６には、目領域の検出結果が示されている。縮小画像ＬＩＭＧ（すなわち、対象画像ＩＭＧ）は、３人の人物を表している。そして、器官検出モジュール４００は、３つの目領域ＥＡＬ１、ＥＡＬ２、ＥＡＬ３を検出している。図示するように、本実施例では、１つの目の画像を含む矩形領域が、目領域として検出される。図示は省略するが、縮小画像ＬＩＭＧにおける目の大きさが小さい場合には、小さい目領域が検出される。縮小画像ＬＩＭＧにおける目の大きさが大きい場合には、大きい目領域が検出される。なお、目領域のアスペクト比（縦横比）は、対象画像中の目の形状に従って変化して良い。ただし、アスペクト比が固定されてもよい。
【００５１】
器官検出モジュール４００による目領域の検出方法としては、公知の種々の方法を採用可能である。本実施例では、目のテンプレート画像を用いたパターンマッチングによって、目領域が検出される。なお、このような目領域の検出方法としては、テンプレートを利用したパターンマッチングによる種々の方法（例えば、特開２００４−３１８２０４参照）を採用可能である。
【００５２】
なお、器官検出モジュール４００は、縮小画像ＬＩＭＧ内の相対的な位置に従って、縮小画像ＬＩＭＧから検出された目領域と同じ部分を示す対象画像ＩＭＧにおける目領域を特定する。その結果、器官検出モジュール４００は、対象画像ＩＭＧにおける目領域を検出する。なお、本実施例では、目領域の検出に縮小画像ＬＩＭＧが利用されるので、処理を高速に行うことが可能である。
【００５３】
図４の次のステップＳ１１５では、赤目検出モジュール４１０（図２）が、縮小画像ＬＩＭＧを利用して、目領域の外の領域から赤目領域を検出する。図７は、縮小画像ＬＩＭＧを利用した赤目領域の検出の概略図である。赤目検出モジュール４１０は、赤目を表す所定の基準画像ＲＩを利用したパターンマッチングによって、赤目領域を検出する。基準画像ＲＩは、白目領域ＳＣＡ（強膜を表す領域）と、黒目領域ＣＯＡ（角膜を表す領域）と、瞳孔領域ＰＵＡ（瞳孔を表す領域）と、を含んでいる。本実施例では、白目領域ＳＣＡの色は、白に近い色に設定され、黒目領域ＣＯＡの色は、黒に近い色に設定され、瞳孔領域ＰＵＡの色は、赤色に設定されている。なお、各領域の色は、予め実験的に決定すればよい。また、この基準画像ＲＩは、マトリクス状に配置された所定の複数の画素によって表されている。各画素には、３つの色成分Ｒ（赤）、Ｇ（緑）、Ｂ（青）のそれぞれの階調値が対応付けられている。なお、基準画像ＲＩの形状は、矩形であってもよく、矩形でなくてもよい。
【００５４】
赤目検出モジュール４１０は、縮小画像ＬＩＭＧ中の部分領域（以下「候補領域ＣＡ」と呼ぶ）と、基準画像ＲＩとの間の類似度ＤＳを算出する。類似度ＤＳとしては、２枚の画像の間の類似の度合いを表す任意の値を採用可能である。
【００５５】
類似度としては、例えば、以下のような値を採用可能である。まず、赤目検出モジュール４１０は、候補領域ＣＡに基準画像ＲＩを重ね合わせると仮定したときの、候補領域ＣＡと基準画像ＲＩとの間の相対的な位置関係を決定する。そして、赤目検出モジュール４１０は、基準画像ＲＩの各画素位置に関して、２枚の画像ＣＡ、ＲＩ間の画素値の差分を算出する。本実施例では、画素値は、３つの色成分Ｒ、Ｇ、Ｂの階調値で表されているので、３つの色成分のそれぞれの階調値差分が算出される。次に、赤目検出モジュール４１０は、画素値の差分を、全ての色成分、基準画像ＲＩ内の全ての画素位置に関して、合計する。次に、赤目検出モジュール４１０は、合計値が取り得る最大値から、合計値を引くことによって、合計値の差分を算出する。そして、赤目検出モジュール４１０は、合計値の差分を、合計値の算出に利用される総画素数で割ることによって、類似度ＤＳを算出する。総画素数を用いた除算により、類似度計算の画素密度に依存しない類似度ＤＳが算出される（ここで、類似度計算の画素密度は、基準画像ＲＩ内における、類似度ＤＳの計算に利用された総画素数に相当する）。候補領域ＣＡと基準画像ＲＩとが同一の場合には、各画素位置での画素値差分がゼロであるので、類似度ＤＳは、取り得る最大値である。そして、画素値差分が大きいほど、類似度ＤＳは小さくなる。
【００５６】
図８は、赤色範囲の概略図である。本実施例では、基準画像ＲＩ（図７）の瞳孔領域ＰＵＡの色の望ましい範囲（赤色範囲）が予め設定されている。図８は、ＨＳＢ色空間を示している（色相Ｈ、彩度Ｓ、輝度Ｂ）。画像データによって表される色は、この色空間内の特定の点で表される。図中には、或る色を示す点ＣＬｉが示されている。縦軸Ｂｘの方向の位置は、輝度Ｂを示している。縦軸Ｂｘと点ＣＬｉとの間の距離は彩度Ｓを示している。輝度が点ＣＬｉの輝度と同じ平面ＢＰＬ上における、縦軸Ｂｘから見た所定の方向Ｈｓと、縦軸Ｂｘから点ＣＬｉへ向かう方向と、の間の角度は色相Ｈを表している。この角度は、輝度Ｂの大きい方から小さい方に向かって見たときに、反時計回りの角度を示している。
【００５７】
なお、図中の点ＣＬｉは、赤目の典型的な赤色を示している。そして、この点ＣＬｉを含む２つの赤色範囲ＲＥ＿Ｒ１、ＲＥ＿Ｒ２が、予め設定されている。第１赤色範囲ＲＥ＿Ｒ１は、第２赤色範囲ＲＥ＿Ｒ２を含み、第２赤色範囲ＲＥ＿Ｒ２よりも広い範囲である。なお、これらの範囲ＲＥ＿Ｒ１、ＲＥ＿Ｒ２は、色範囲の全体の内の一部の範囲である。また、これらの範囲ＲＥ＿Ｒ１、ＲＥ＿Ｒ２内では、色相Ｈと彩度Ｓと輝度Ｂとのそれぞれが変化し得る。ただし、色相Ｈと彩度Ｓと輝度Ｂとの内の一部が固定されてもよい。なお、これらの範囲ＲＥ＿Ｒ１、ＲＥ＿Ｒ２は、予め実験的に決定すればよい。
【００５８】
図４のステップＳ１１５では、比較的狭い第２赤色範囲ＲＥ＿Ｒ２が利用される。候補領域ＣＡ（図７）における瞳孔領域ＰＵＡと重なる領域（以下「瞳孔候補領域ＰＵＣ」と呼ぶ）の内の画素の色が、比較的狭い第２範囲ＲＥ＿Ｒ２内にある場合には、赤目検出モジュール４１０は、類似度を高く設定する。一方、瞳孔候補領域ＰＵＣの画素の色が、第２範囲ＲＥ＿Ｒ２外にある場合には、赤目検出モジュール４１０は、類似度を低く設定する。第２赤色範囲ＲＥ＿Ｒ２に従ってこのように類似度を設定する方法としては任意の方法を採用可能である。例えば、瞳孔候補領域ＰＵＣ内において、ある画素位置の色が第２赤色範囲ＲＥ＿Ｒ２内にある場合には、その画素位置の画素値差分をゼロに設定してもよい。そして、或る画素位置の色が第２赤色範囲ＲＥ＿Ｒ２の外にある場合には、その画素位置での画素値と典型色ＣＬｉを表す画素値との差分を画素値差分として利用してもよい。
【００５９】
次に、赤目検出モジュール４１０は、類似度ＤＳを類似度閾値Ｔｈｄｓと比較する。類似度ＤＳが類似度閾値Ｔｈｄｓよりも大きい場合には、赤目検出モジュール４１０は、候補領域ＣＡが赤目を表していると判断する。類似度ＤＳがＴｈｄｓ以下である場合には、候補領域ＣＡは赤目を表していないと判断される。これらの結果、瞳孔候補領域ＰＵＣ内の画素が、第２赤色範囲ＲＥ＿Ｒ２内の色を示す画素を含む場合に、候補領域ＣＡは赤目を表していると判断される。類似度閾値Ｔｈｄｓは、赤く写っていない目が誤って赤目として検出されないように、予め実験的に決定すればよい。
【００６０】
候補領域ＣＡが赤目を表していると判断された場合には、赤目検出モジュール４１０は、候補領域ＣＡから、赤目を表す赤目領域ＲＥＡ＿Ｌを特定する。赤目領域ＲＥＡ＿Ｌの特定方法としては、種々の方法を採用可能である。例えば、候補領域ＣＡから第２赤色範囲ＲＥ＿Ｒ２内の色を示す赤色画素を、赤目領域ＲＥＡ＿Ｌの画素として選択してもよい。また、複数の赤色画素の連結した領域を、赤目領域ＲＥＡ＿Ｌとして選択してもよい。ここで、赤色画素の色が、第２赤色範囲ＲＥ＿Ｒ２とは異なる赤色の所定範囲内の色であってもよい。また、赤目領域を、瞳孔候補領域ＰＵＣ内から選択してもよい。いずれの場合も、赤目検出モジュール４１０は、特定された赤目領域ＲＥＡ＿Ｌから、対象画像ＩＭＧにおける赤目領域を特定する。対象画像ＩＭＧにおける赤目領域は、縮小画像ＬＩＭＧにおける赤目領域ＲＥＡ＿Ｌと同じ部分を表す領域である。
【００６１】
なお、赤目検出モジュール４１０は、縮小画像ＬＩＭＧ内で候補領域ＣＡを移動させることによって、縮小画像ＬＩＭＧ内の種々の位置の赤目領域を検出する。また、赤目検出モジュール４１０は、縮小画像ＬＩＭＧにおける基準画像ＲＩのサイズを拡大縮小することによって、種々のサイズの目から赤目領域を検出する。なお、候補領域ＣＡの画素位置が、基準画像ＲＩの画素位置と重なっていない場合がある。この場合には、類似度ＤＳを算出するために、赤目検出モジュール４１０は、補間によって候補領域ＣＡにおける画素値を算出すればよい。逆に、候補領域ＣＡの各画素位置における階調値差分を利用してもよい。
【００６２】
以上のように、赤目検出モジュール４１０（図２）は、縮小画像ＬＩＭＧを利用して、目領域の外の領域から赤目領域を検出する。
【００６３】
図４の次のステップＳ１２０では、赤目検出モジュール４１０（図２）が、目領域を復号する（展開）。図９は、目領域の復号の手順を示すフローチャートである。赤目検出モジュール４１０は、このフローチャートに従って、対象画像ＩＭＧに含まれる複数のブロックＭＣＵの内の、目領域を表す画素を含むブロックＭＣＵを選択的に復号することによって、目領域の画像データを取得する。
【００６４】
図１０は、目領域の復号の概略図である。図１０の上部分には、対象画像ＩＭＧと３つの目領域ＥＡ１、ＥＡ２、ＥＡ３が示されている。これらの目領域ＥＡ１、ＥＡ２、ＥＡ３は、器官検出モジュール４００（図２）によって検出された領域であり、図６に示す目領域ＥＡＬ１、ＥＡＬ２、ＥＡＬ３と同じ部分をそれぞれ示している。
【００６５】
図１０の中部分には、第１目領域ＥＡ１の周辺部分の拡大図が示されている。以下、第１目領域ＥＡ１を表す画像データを取得する場合を例に説明を行う。第１目領域ＥＡ１は、複数のブロックＭＣＵに跨っている。図中の目ブロック領域ＥＢＡは、第１目領域ＥＡ１を表す画素を含むブロックＭＣＵで構成された領域である。赤目検出モジュール４１０（図２）は、目ブロック領域ＥＢＡ外のブロックＭＣＵを復号せずに、目ブロック領域ＥＢＡ内のブロックＭＣＵを選択的に復号することによって、第１目領域ＥＡ１を表す画像データを取得する。ここで、赤目検出モジュール４１０は、対象画像ＩＭＧ内の或る１つのブロックＭＣＵ（「対象ブロックＭＣＵｍ」と呼ぶ）が目領域の画素を含むか否かを判断し、対象ブロックＭＣＵｍが目領域の画素を含む場合に、対象ブロックＭＣＵｍを復号する。この判断は、全てのブロックＭＣＵに対して行われる。
【００６６】
なお、図１０の実施例では、第１目領域ＥＡ１は、Ｘ方向の位置がａ０〜ａ１（ａ０＜ａ１）であり、Ｙ方向の位置がｂ０〜ｂ１（ｂ０＜ｂ１）である矩形領域である。また、対象ブロックＭＣＵｍは、原点の画素（Ｘ＝０、Ｙ＝０）に最も近いコーナの画素の位置（Ｘ＝Ｘｍ、Ｙ＝Ｙｍ）によって特定可能である。
【００６７】
図９の最初のステップＳ５００では、赤目検出モジュール４１０（図２）は、目領域ＥＡ１を表す画像データのためのバッファ領域を、ＲＡＭ２２０（図１）に確保する（図示省略）。このバッファ領域のサイズは、目領域ＥＡ１の画素数に従って決定される。また、赤目検出モジュール４１０は、対象ブロックＭＣＵｍのＹ方向位置Ｙｍを初期化する（Ｙｍ＝０）。次のステップＳ５０５では、対象ブロックＭＣＵｍのＸ方向の位置Ｘｍを初期化する（Ｘｍ＝０）。次のステップＳ５１０では、対象ブロックＭＣＵｍのハフマン解凍を実行する。
【００６８】
次のステップＳ５１５、Ｓ５２０では、赤目検出モジュール４１０は、対象ブロックＭＣＵｍが目領域ＥＡ１の画素を含むか否かを判断する。図１０の下部分には、対象ブロックＭＣＵｍの拡大図が示されている。第１コーナ画素ＰＸｃ１は、原点の画素（Ｘ＝０、Ｙ＝０）に最も近いコーナの画素を示している（Ｘ＝Ｘｍ、Ｙ＝Ｙｍ）。第２コーナ画素ＰＸｃ２は、原点の画素から最も遠いコーナの画素を示している（Ｘ＝Ｘｍ＋Ｍ−１、Ｙ＝Ｙｍ＋Ｍ−１）。ここで、２つのコーナ画素ＰＸｃ１、ＰＸｃ２の少なくとも一方が第１目領域ＥＡ１内にある場合に、対象ブロックＭＣＵｍが目領域ＥＡ１の画素を含むと判断可能である。
【００６９】
ステップＳ５１５では、以下の条件Ｂ１が成立するか否かが判断される。
条件Ｂ１：Ｙｍ＋Ｍ−１がｂ０以上、かつ、Ｙｍがｂ１以下
次のステップＳ５２０では、以下の条件Ｂ２が成立するか否かが判断される。
条件Ｂ２：Ｘｍ＋Ｍ−１がａ０以上、かつ、Ｘｍがａ１以下
【００７０】
条件Ｂ１は、２つのコーナ画素ＰＸｃ１、ＰＸｃ１のＹ方向位置の少なくとも一方が第１目領域ＥＡ１内にあることを示している。条件Ｂ２は、２つのコーナ画素ＰＸｃ１、ＰＸｃ１のＸ方向位置の少なくとも一方が第１目領域ＥＡ１内にあることを示している。これらの条件Ｂ１、Ｂ２の両方が満たされる場合に、対象ブロックＭＣＵｍが目領域ＥＡ１の画素を含む。
【００７１】
両方の条件Ｂ１、Ｂ２が満たされる場合には、赤目検出モジュール４１０は、ステップＳ５２５で、対象ブロックＭＣＵｍを復号する。この復号は、図４のステップＳ３１５、Ｓ３２０と同じである。赤目検出モジュール４１０は、復号によって得られた画像データを、ＲＡＭ２２０のブロックＭＣＵ用のバッファに格納する（図示省略）。
【００７２】
続いて、赤目検出モジュール４１０は、対象ブロックＭＣＵｍ内の１つの画素（対象画素ＰＸｉ）に着目して処理を実行する（図１０の下部分）。ここで、ステップＳ５２５では、赤目検出モジュール４１０は、対象画素ＰＸｉ（図１０）のＹ方向の相対位置（ｙｉ）を初期化する（ｙｉ＝０）。また、次のステップＳ５２７では、Ｘ方向の相対位置（ｘｉ）が初期化される（ｘｉ＝０）。これらの相対位置ｘｉ、ｙｉは、ブロックＭＣＵ内での相対的な位置を示している。すなわち、ｘｉ＝ｙｉ＝０である画素は、第１コーナ画素ＰＸｃ１である。
【００７３】
次のステップＳ５３０、Ｓ５３５では、赤目検出モジュール４１０は、対象画素ＰＸｉが目領域ＥＡ１に含まれるか否かを判断する。対象画素ＰＸｉのＸ方向の位置は、Ｘｍ＋ｘｉであり、対象画素ＰＸｉのＹ方向の位置は、Ｙｍ＋ｙｉである。これらの位置に従って、判断が行われる。
【００７４】
ステップＳ５３０では、以下の条件Ｐ１が成立するか否かが判断される。
条件Ｐ１：Ｙｍ＋ｙｉがｂ０以上、かつ、Ｙｍ＋ｙｉがｂ１以下
ステップＳ５３５では、以下の条件Ｐ２が成立するか否かが判断される。
条件Ｐ２：Ｘｍ＋ｘｉがａ０以上、かつ、Ｘｍ＋ｘｉがａ１以下
【００７５】
条件Ｐ１は、対象画素ＰＸｉのＹ方向位置が目領域ＥＡ１内にあることを示している。条件Ｐ２は、対象画素ＰＸｉのＸ方向位置が目領域ＥＡ１内にあることを示している。これらの条件Ｐ１、Ｐ２の両方が満たされる場合に、対象画素ＰＸｉが目領域ＥＡ１に含まれる。
【００７６】
両方の条件Ｐ１、Ｐ２が満たされる場合には、赤目検出モジュール４１０は、ステップＳ５４０で、対象画素ＰＸｉの画素データの色変換を行い、変換後の画素データを目領域ＥＡ１のためのバッファに格納する。この色変換は、図５のステップＳ３２５の処理と同じである。
【００７７】
続けて、赤目検出モジュール４１０は、相対位置ｘｉを１だけインクリメントする（Ｓ５４５）。インクリメントされた相対位置ｘｉがブロックサイズＭ未満である場合には（Ｓ５５０：Ｙｅｓ）、処理は、ステップＳ５３５に戻る。このように、赤目検出モジュール４１０は、対象ブロックＭＣＵｍ内の全ての相対位置ｘｉに関して、ステップＳ５３５〜Ｓ５５０を繰り返す。相対位置ｘｉに関する繰り返しが完了した後、赤目検出モジュール４１０は、相対位置ｙｉを１だけインクリメントする（Ｓ５５５）。インクリメントされた相対位置ｙｉがブロックサイズＭ未満である場合には（Ｓ５６０：Ｙｅｓ）、処理はステップＳ５２７に移行する。このように、赤目検出モジュール４１０は、対象ブロックＭＣＵｍ内の全ての相対位置ｙｉに関して、ステップＳ５２７〜Ｓ５６０を繰り返す。ここで、上述の条件Ｐ１が満たされない場合には（Ｓ５３０：Ｎｏ）、ステップＳ５３５〜Ｓ５５０はスキップされる。また、条件Ｐ２が満たされない場合には（Ｓ５３５：Ｎｏ）、ステップＳ５４０がスキップされる。これらの結果、対象ブロックＭＣＵｍ内の全画素の内、目領域ＥＡ１に含まれる画素のデータが、目領域ＥＡ１のためのバッファに格納される。
【００７８】
対象ブロックＭＣＵｍ内の画素に関する繰り返しが終了した後、赤目検出モジュール４１０は、位置ＸｍをブロックサイズＭだけインクリメントする（Ｓ５６５）。インクリメントされた位置Ｘｍが幅ＩＷ未満である場合には（Ｓ５７０：Ｙｅｓ）、処理はステップＳ５１０に移行する。このように、赤目検出モジュール４１０は、対象画像ＩＭＧ内の全てのブロックＭＣＵの位置Ｘｍに関して、ステップＳ５１０〜Ｓ５７０を繰り返す。位置Ｘｍに関する繰り返しが完了した後、赤目検出モジュール４１０は、位置ＹｍをブロックサイズＭだけインクリメントする（Ｓ５７５）。インクリメントされた位置Ｙｍが高さＩＨ未満である場合には（Ｓ５８０：Ｙｅｓ）、処理はステップＳ５０５に移行する。このように、赤目検出モジュール４１０は、対象画像ＩＭＧ内の全てのブロックＭＣＵの位置Ｙｍに関して、ステップＳ５０５〜Ｓ５８０を繰り返す。ここで、上述の条件Ｂ１が満たされない場合には（Ｓ５１５：Ｎｏ）、ステップＳ５２０〜Ｓ５７０がスキップされる。また、上述の条件Ｂ２が満たされない場合には（Ｓ５２０：Ｎｏ）、ステップＳ５２５〜Ｓ５６０がスキップされる。
【００７９】
これらの結果、赤目検出モジュール４１０は、対象画像ＩＭＧに含まれる複数のブロックＭＣＵの内の、目領域を表す画素を含むブロックＭＣＵを選択的に復号することによって、目領域の画像データを取得する。
【００８０】
目領域の復号が完了した後、図４の次のステップＳ１３５で、赤目検出モジュール４１０は、復号された画像データ（目領域）を利用して、目領域から赤目領域を検出する。図１１は、目領域からの赤目領域の検出の概略図である。図７に示す赤目領域の検出との差違は、３点ある。第１の差違は、目領域のみから赤目領域が検出されることである。第２の差違は、縮小画像ＬＩＭＧの代わりに対象画像ＩＭＧ（復号された目領域の画像データ）が利用されることである。第３の差違は、第２赤色範囲ＲＥ＿Ｒ２の代わりに第１赤色範囲ＲＥ＿Ｒ１が利用されることである（図８）。赤目領域の検出方法は、図７の検出方法と同じである。これらの結果、瞳孔を表す画素が、第１赤色範囲ＲＥ＿Ｒ１内の色を示す画素を含む場合に、赤目領域が検出される。また、類似度ＤＳとしては、目領域内の候補領域と、基準画像ＲＩとの間の類似度が利用される。ここで、目領域の全体を、候補領域として利用してもよい。なお、上述したように、類似度ＤＳは、類似度計算の画素密度に依存しない。従って、対象画像ＩＭＧを利用する場合と、縮小画像ＬＩＭＧを利用する場合との間で、共通の類似度閾値Ｔｈｄｓを利用することができる。
【００８１】
図１１の例では、第１目領域ＥＡ１から赤目領域ＲＥＡａの検出が示されている。目領域からの赤目領域の検出では、縮小画像の代わりに画素密度の高い対象画像ＩＭＧが利用されるので、より正確な赤目領域の検出が可能である。また、第２赤色範囲ＲＥ＿Ｒ２よりも広い第１赤色範囲ＲＥ＿Ｒ１が利用されるので、赤目領域の検出漏れを抑制できる。
【００８２】
以上のように、赤目検出モジュール４１０（図２）は、復号された画像データ（すなわち、対象画像ＩＭＧ）を利用して、目領域から赤目領域を検出する。複数の目領域が検出された場合には、図４のステップＳ１２０〜Ｓ１３５の処理が、各目領域毎に繰り返される。
【００８３】
全ての目領域に関する処理が終了した場合には（Ｓ１５０：Ｙｅｓ）、画像処理モジュール４３０は、次のステップＳ１６０で赤目補正を行う。赤目補正は、対象画像中の赤目を目立ちにくくする処理である。本実施例では、赤目補正として、赤目領域の彩度を下げる処理が実行される。なお、赤目補正としては、他の種々の処理を採用可能である。例えば、赤目領域の彩度を下げる処理と赤目領域の明るさを下げる処理との少なくとも一方を含む種々の処理を採用可能である。
【００８４】
次のステップＳ１８０では、印刷データ生成モジュール４４０（図２）は、画像処理モジュール４３０による処理後の画像データを利用して、印刷データを生成する。印刷データのフォーマットとしては、印刷エンジン３００（図１）に適した任意の形式を採用可能である。例えば、本実施例では、印刷データ生成モジュール４４０は、解像度変換処理、色変換処理、ハーフトーン処理を実行することによって、各インクのドットの記録状態を表す印刷データを生成する。そして、印刷データ生成モジュール４４０は、生成した印刷データを印刷エンジン３００に供給する。印刷エンジン３００は、受信した印刷データに従って印刷を実行する。そして、図４の処理が完了する。なお、印刷データ生成モジュール４４０と印刷エンジン３００との全体は、特許請求の範囲における「印刷部」に相当する。
【００８５】
以上のように、本実施例では、目領域の外の領域からの赤目領域の検出には、画素密度の低い縮小画像ＬＩＭＧが利用されるので（図７）、処理に要するメモリのサイズを低減できる。また、処理の高速化が可能である。また、目領域内からの赤目領域の検出には、画素密度の高い対象画像ＩＭＧが利用されるので（図１１）、赤目検出の精度を高めることができる。
【００８６】
また、目領域の外の領域からの赤目領域の検出には、比較的狭い第２赤色範囲ＲＥ＿Ｒ２が利用されるので（図７）、赤目でない被写体（例えば、ボタンＣ３ｃ）を表す領域が誤って赤目領域として検出されることを抑制できる。また、目領域内からの赤目領域の検出には、比較的広い第１赤色範囲ＲＥ＿Ｒ１が利用されるので（図１１）、赤目領域の検出漏れを抑制できる。
【００８７】
以上のように、目領域の内と外との間で赤目の検出処理が切り替えられるので、赤目が検出される画像部分によって表される被写体の種類を考慮して赤目を検出することができる。
【００８８】
なお、目領域の外の領域では、赤目の存在する可能性が低い。このような目領域の外の領域では、画素密度の低い縮小画像ＬＩＭＧを利用しても、赤目領域の検出精度を過度に低下させずに済む。また、厳しい条件（第２赤色範囲ＲＥ＿Ｒ２）を利用しても、検出精度を過度に低下させずに済む。また、赤目の存在する可能性が高い目領域の内では、画素密度の高い対象画像ＩＭＧを利用することによって、赤目検出の精度を高めることができる。また、緩やかな条件（第１赤色範囲ＲＥ＿Ｒ１）を利用することによって、赤目の検出漏れを抑制することができる。なお、本実施例における目領域は、特許請求の範囲における「器官領域」に相当する。
【００８９】
Ｂ．第２実施例：
図１２は、第２実施例における赤目領域検出処理の概略図である。図３に示す第１実施例との差違は、目領域の代わりに顔領域が利用される点だけである。本実施例では、顔領域として、人物の目の画像と口の画像とを含む矩形領域が採用される。他の構成は、図３に示す第１実施例と同じである。印刷処理の手順は、図４、図５、図９に示す第１実施例の手順と同様である。顔領域の検出方法は、目領域の検出方法と同様である。プリンタの構成は、図１、図２に示す第１実施例のプリンタ１００と同じである。
【００９０】
図１２には、図３と同じ対象画像ＩＭＧが示されている。図１２の例では、器官検出モジュール４００（図２）は、第１人物Ｐ１の顔を表す第１顔領域ＦＡ１と、第２人物Ｐ２の顔を表す第２顔領域ＦＡ２とを検出する。そして、赤目検出モジュール４１０は、これらの顔領域ＦＡ１、ＦＡ２からは、図１１の処理と同様の処理に従って、赤目領域を検出する。図１２の例では、図３の第１実施例と同様に、顔領域ＦＡ１から２つの赤目領域ＲＥＡａ、ＲＥＡｂが検出されている。また、赤目検出モジュール４１０は、顔領域の外の領域からは、図７の処理と同様の処理に従って、赤目領域を検出する。図１２の例では、図３の第１実施例と同様に、目Ｃ３ｂから赤目領域ＲＥＡｃが検出されている。
【００９１】
以上のように、器官領域としては、目領域に限らず、顔領域を採用してもよい。この場合も、顔領域の内では、赤目の存在する可能性が高く、顔領域の外では、赤目の存在する可能性が低い。従って、顔領域の内と外との間で赤目の検出処理を切り替えられることによって、上述の第１実施例と同様の利点を得ることができる。
【００９２】
Ｃ．第３実施例：
図１３は、第３実施例における赤目領域検出処理の概略図である。図３に示す第１実施例との差違は、顔領域と目領域との両方が独立に検出され、そして、顔領域に含まれる目領域が、器官領域として利用される点だけである。他の構成は、図３に示す第１実施例と同じである。印刷処理の手順は、図４、図５、図９に示す第１実施例の手順と同様である。プリンタの構成は、図１、図２に示す第１実施例のプリンタ１００と同じである。
【００９３】
図１３には、図３と同じ対象画像ＩＭＧが示されている。器官検出モジュール４００は、図３に示す第１実施例と同様に３つの目領域ＥＡ１、ＥＡ２、ＥＡ３を検出している。また、器官検出モジュール４００は、第１人物Ｐ１の顔を表す第１顔領域ＦＡ１を検出している（図１３の例では、残りの人物Ｐ２、Ｐ３の顔を表す顔領域は検出されていない）。そして、器官検出モジュール４００は、顔領域に含まれる目領域を器官領域として採用する。図１３の例では、第１顔領域ＦＡ１に含まれる２つの目領域ＥＡ１、ＥＡ２が器官領域として採用される。顔領域に含まれていない第３目領域ＥＡ３は、器官領域として採用されない。なお、目領域の検出と顔領域の検出とは、図３、図１２の実施例と同様にそれぞれ行われる。
【００９４】
赤目検出モジュール４１０は、器官領域ＥＡ１、ＥＡ２からは、図１１の処理と同様の処理に従って、赤目領域を検出する。図１３の例では、図３の第１実施例と同様に、第１目領域ＥＡ１から第１赤目領域ＲＥＡａが検出され、第２目領域ＥＡ２から第２赤目領域ＲＥＡｂが検出されている。また、赤目検出モジュール４１０は、器官領域の外の領域からは、図７の処理と同様の処理に従って、赤目領域を検出する。図１３の例では、図３の第１実施例と同様に、目Ｃ３ｂから赤目領域ＲＥＡｃが検出されている。
【００９５】
以上のように、本実施例では、器官領域として目領域が利用される。従って、上述の第１実施例と同様の利点を得ることができる。また、本実施例では、顔領域に含まれる目領域が器官領域として採用される。従って、仮に、目とは異なる被写体を表す画像領域が誤って目領域として検出された場合であっても、その目領域が顔領域に含まれていない場合には、その顔領域は器官領域として採用されない。その結果、赤目の検出精度を向上させることができる。
【００９６】
Ｄ．第４実施例：
図１４は、第４実施例における赤目領域検出処理の概略図である。上述の各実施例との差違は、類似度ＤＳの閾値が、器官領域の内と外との間で異なっている点だけである。他の構成としては、図３、図１２、図１３の各実施例の構成を採用可能である。また、印刷処理の手順は、図４、図５、図９に示す第１実施例の手順と同様である。プリンタの構成は、図１、図２に示す第１実施例のプリンタ１００と同じである。
【００９７】
器官領域の内では、比較的小さい第１閾値Ｔｈ１が利用される。従って、器官領域の内の領域（赤目の存在する可能性の高い領域）からの赤目の検出漏れを抑制できる。また、器官領域の外では、第１閾値Ｔｈ１よりも大きい第２閾値Ｔｈ２が利用される。従って、器官領域の外の領域（赤目の存在する可能性の低い領域）から、赤目でない被写体を表す領域が誤って赤目領域として検出されることを抑制できる。
【００９８】
なお、類似度ＤＳの算出に利用される画素値の差分の合計値と閾値とを比較してもよい。すなわち、赤目検出モジュール４１０は、合計値が閾値よりも小さい場合に、着目している画像領域が赤目を表していると判断してもよい。この場合、画素値の差分の合計値が小さいことは、類似度が高いことを示している。従って、合計値が閾値より小さいことは、類似度が閾値より高いことを示している。従って、この場合も、類似度が閾値より高いことが赤目領域の検出条件である、ということができる。このように、「類似度が閾値よりも高い」という条件の判断には、２枚の画像の間の類似の程度を示す種々の値を利用することができる。そして、赤目検出モジュール４１０は、類似の度合いを示す値が、類似の度合いが閾値よりも高い（すなわち、２枚の画像が類似している）ことを示す範囲内にある場合に、着目している画像領域が赤目を表していると判断することができる。
【００９９】
なお、本実施例において、赤目領域の検出に利用される赤色範囲は、器官領域の内と外との間で同じであってもよい。ただし、図８に示す実施例と同様に、器官領域内における赤色範囲が、器官領域外における赤色範囲よりも広いことが好ましい。
【０１００】
Ｅ．変形例：
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１０１】
変形例１：
上述の各実施例において、器官領域としては、人物の目の画像を含む種々の領域を採用可能である。例えば、口の画像を含まず目の画像と鼻の画像とを含む領域を採用してもよい。いずれの場合も、器官検出モジュール４００（図２）は、目の画像が赤目を表しているか否かに拘わらずに、目の画像を含む領域を器官領域として検出すればよい。ここで、器官検出モジュール４００は、縮小画像ＬＩＭＧの代わりに対象画像ＩＭＧから器官領域を検出してもよい。この場合、赤目検出モジュール４１０が、縮小画像ＬＩＭＧを生成してもよい。いずれの場合も、赤目検出モジュール４１０は、器官領域を表す画素を含むブロックＭＣＵ（図１０）を選択的に復号することが好ましい。
【０１０２】
また、上述の各実施例において、赤目領域は、赤目の画像を含む種々の領域を採用可能である。例えば、赤く写った瞳孔に加えて、その周囲の角膜部分を含む領域が、赤目領域として検出されてもよい。
【０１０３】
変形例２：
上述の各実施例において、赤目検出モジュール４１０（図２）は、器官領域の内と外との間で同じ画素密度の画像を利用してもよい。また、器官領域の内と外との間で、赤目領域の検出に利用される条件が同じであってもよい。ただし、少なくとも、画素密度と条件との少なくとも一方が、器官領域の内と外との間で異なることが好ましい。
【０１０４】
変形例３：
上述の各実施例において、赤目領域の検出結果を利用した処理としては、赤目補正に限らず、種々の処理を採用可能である。例えば、画像処理モジュール４３０（図２）は、複数の画像の中から、赤目領域が検出された画像を除く残りの画像を選択してもよい。選択された画像の用途は任意である。例えば、選択された画像は、印刷に利用されてもよく、また、特定のフォルダにコピーされてもよい。
【０１０５】
変形例４：
上述の各実施例において、対象画像データとしては、ＪＰＥＧ画像データに限らず、任意の画像データを採用可能である。例えば、ブロック毎の符号化がされていない画像データ（例えば、ＴＩＦＦ画像データ）を採用してもよい。また、静止画像データに限らず、動画像データを、対象画像データとして利用してもよい。この場合、動画像に含まれる複数のフレーム画像の少なくとも一部のそれぞれを、対象画像として利用すればよい。
【０１０６】
また、上述の各実施例において、縮小画像の画素密度（すなわち、画素数）としては、元の対象画像の画素密度よりも低い任意の密度を採用可能である（赤目領域を検出できるように、画素密度を予め実験的に決定すればよい）。また、縮小画像の縦横比は、対象画像の縦横比と同じであることが好ましい。但し、縦横比が変化してもよい。
【０１０７】
変形例５：
上述の各実施例において、画像処理と印刷データ生成と印刷とを、対象画像における一部のライン（例えば、１ラインや２ライン）を単位として繰り返すことによって、対象画像の全体の画像処理と印刷とを実行してもよい。こうすれば、メモリに大量のデータを格納せずに済むので、メモリ量を節約することができる。
【０１０８】
変形例６：
上述の各実施例において、画像処理済みの画像データの用途としては、印刷に限らず任意の用途を採用可能である。例えば、画像処理モジュール４３０（図２）は、処理済みの画像データを格納する画像ファイルを生成してもよい。画像処理モジュール４３０は、生成した画像ファイルを任意の方法でユーザに提供してよい。例えば、メモリカードＭＣ（図１）に画像ファイルを格納してもよい。ここで、印刷データ生成モジュール４４０を省略してもよい。さらに、画像処理モジュール４３０を省略してもよい。この場合、赤目検出モジュール４１０は、対象画像データと、赤目領域を表す情報とを、他の画像処理装置に供給してもよい。
【０１０９】
変形例７：
上述の各実施例において、人物の器官（例えば、目や顔）の画像を含む領域を画像（例えば、対象画像、あるいは、縮小画像）から検出する方法としては、パターンマッチングによる方法に限らず、任意の方法を採用可能である。例えば、ブースティング（たとえばAdaBoost）や、サポートベクターマシンや、ニューラルネットワークを採用可能である。いずれの場合も、赤目検出モジュール４１０（図２）は、器官領域の内からは比較的緩やかな条件を満たす領域を赤目領域として検出し、器官領域の外からは比較的厳しい条件を満たす領域を赤目領域として検出するように、構成されていることが好ましい。また、赤目検出モジュール４１０は、器官領域の内では画素密度の比較的高い画像を利用し、器官領域の外では画素密度の比較的低い画像を利用するように、構成されていることが好ましい。
【０１１０】
変形例８：
上述の各実施例において、対象画像から赤目領域を検出する画像処理装置としては、プリンタ１００（図１）に限らず、任意の画像処理装置を採用可能である。例えば、印刷と画像の光学スキャンとを実行する複合機、デジタルスチルカメラや、汎用のコンピュータを採用してもよい。
【０１１１】
変形例９：
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図２の器官検出モジュール４００の機能を、論理回路を有するハードウェア回路によって実現してもよい。
【０１１２】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア（コンピュータプログラム）は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【０１１３】
【図１】本発明の一実施例としてのプリンタ１００を示す説明図である。
【図２】ＲＯＭ２３０（図１）に格納されたモジュールを示す説明図である。
【図３】第１実施例における赤目検出処理の概略図である。
【図４】印刷処理の手順を示すフローチャートである。
【図５】縮小画像作成の手順を示すフローチャートである。
【図６】縮小画像作成の概略図である。
【図７】縮小画像ＬＩＭＧを利用した赤目領域の検出の概略図である。
【図８】赤色範囲の概略図である。
【図９】目領域の復号の手順を示すフローチャートである。
【図１０】目領域の復号の概略図である。
【図１１】目領域からの赤目領域の検出の概略図である。
【図１２】第２実施例における赤目領域検出処理の概略図である。
【図１３】第３実施例における赤目領域検出処理の概略図である。
【図１４】第４実施例における赤目領域検出処理の概略図である。
【符号の説明】
【０１１４】
１００...プリンタ
２００...制御部
２１０...ＣＰＵ
２２０...ＲＡＭ
２３０...ＲＯＭ
３００...印刷エンジン
３１０...ディスプレイ
３２０...操作パネル
３３０...カードＩ／Ｆ
４００...モジュール
４００...器官検出モジュール
４１０...赤目検出モジュール
４３０...画像処理モジュール
４４０...印刷データ生成モジュール
ＭＣ...メモリカード
【図１】
0004983684.tif 000002
【図２】
0004983684.tif 000003
【図３】
0004983684.tif 000004
【図４】
0004983684.tif 000005
【図５】
0004983684.tif 000006
【図６】
0004983684.tif 000007
【図７】
0004983684.tif 000008
【図８】
0004983684.tif 000009
【図９】
0004983684.tif 000010
【図１０】
0004983684.tif 000011
【図１１】
0004983684.tif 000012
【図１２】
0004983684.tif 000013
【図１３】
0004983684.tif 000014
【図１４】
0004983684.tif 000015