(57)【要約】【課題】撮影時のフラッシュに起因する目の色調不良を自動的に検出、補正する方法に関する。従来よりも処理負荷および消費メモリ量が少なく、組み込みシステムにおいても高い検出性能を実現可能とする。【解決手段】画像中から目の色調不良を自動的に検出し、修正を行う画像処理装置であって、画像を入力する入力手段と、画像中から候補画素を抽出する候補画素抽出手段と、該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備える。【選択図】        図１
2007004455.tif 000002
【特許請求の範囲】
【請求項１】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理装置であって、
画像を入力する入力手段と、
画像中から候補画素を抽出する候補画素抽出手段と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、
該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備えることを特徴とする画像処理装置。
【請求項２】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理装置であって、
画像を入力する入力手段と、
画像中から候補画素を抽出する候補画素抽出手段と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、
該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備え、
該リストに登録された候補領域を補正する補正手段を有することを特徴とする画像処理装置。
【請求項３】
前記境界線追跡手段は、
追跡の始点位置を検出する始点位置検出手段と、
追跡途中の現在位置と始点位置とを判定する判定手段を有し、
上記判定手段は、始点位置と現在位置の高さを比較し、比較結果により追跡処理を中断するか否かを判断することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記境界線追跡手段は、
独立領域の周辺長を算出する周辺長算出手段を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記境界線追跡手段は、
独立領域のサイズを算出するサイズ算出手段を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項６】
前記境界線追跡手段は、
追跡方向をヒストグラムとして求める方向ヒストグラム算出手段を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項７】
前記始点位置検出手段は、
注目画素が前記候補画素であり、かつ候補画素の左、左上、上、右上の４位置が候補画素でない場合、該注目画素を始点として決定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項８】
前記判定手段は、
独立領域の縦横比を算出して所定閾値と比較し、縦横比が所定閾値よりも１に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項９】
前記判定手段は、
独立領域と入力画像のサイズを比較し、独立領域のサイズが入力画像のサイズの所定割合よりも大きい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項１０】
前記判定手段は、
独立領域の幅、高さから理想円周を算出する理想円周算出手段を有し、
該理想円周と境界線追跡の結果得られた周辺長との比を算出して所定閾値と比較することにより、比が１に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項１１】
前記判定手段は、
該方向ヒストグラムの偏りを算出する偏り度合い算出手段を有し、
該偏り度合いを所定閾値と比較し、方向ヒストグラムの偏りが所定閾値より小さい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項１２】
請求項１１に記載の判定手段は、
方向ヒストグラムの度数の総和が所定閾値より小さい場合、判定を行わないことを特徴とする画像処理装置。
【請求項１３】
請求項１１に記載の偏り度合い算出手段は、
方向をグループ化して各グループ毎に方向ヒストグラムの度数を和を算出し、該度数の方向ヒストグラム全体の度数和に対する割合を算出することを特徴とする画像処理装置。
【請求項１４】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理方法であって、
画像を入力する入力工程と、
画像中から候補画素を抽出する候補画素抽出工程と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡工程と、
該境界線追跡工程により円、あるいは楕円領域に近いか否かを判定する判定工程とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成工程を備えることを特徴とする画像処理方法。
【請求項１５】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理方法であって、
画像を入力する入力工程と、
画像中から候補画素を抽出する候補画素抽出工程と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡工程と、
該境界線追跡工程により円、あるいは楕円領域に近いか否かを判定する判定工程とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成工程を備え、
該リストに登録された候補領域を補正する補正工程を有することを特徴とする画像処理方法。
【請求項１６】
前記境界線追跡工程は、
追跡の始点位置を検出する始点位置検出工程と、
追跡途中の現在位置と始点位置とを判定する判定工程を有し、
上記判定工程は、始点位置と現在位置の高さを比較し、比較結果により追跡処理を中断するか否かを判断することを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項１７】
前記境界線追跡工程は、
独立領域の周辺長を算出する周辺長算出工程を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項１８】
前記境界線追跡工程は、
独立領域のサイズを算出するサイズ算出工程を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項１９】
前記境界線追跡工程は、
追跡方向をヒストグラムとして求める方向ヒストグラム算出工程を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項２０】
前記始点位置検出工程は、
注目画素が前記候補画素であり、かつ候補画素の左、左上、上、右上の４位置が候補画素でない場合、該注目画素を始点として決定することを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項２１】
前記判定工程は、
独立領域の縦横比を算出して所定閾値と比較し、縦横比が所定閾値よりも１に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項２２】
前記判定工程は、
独立領域と入力画像のサイズを比較し、独立領域のサイズが入力画像のサイズの所定割合よりも大きい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項２３】
前記判定工程は、
独立領域の幅、高さから理想円周を算出する理想円周算出工程を有し、
該理想円周と境界線追跡の結果得られた周辺長との比を算出して所定閾値と比較することにより、比が１に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項２４】
前記判定工程は、
該方向ヒストグラムの偏りを算出する偏り度合い算出工程を有し、
該偏り度合いを所定閾値と比較し、方向ヒストグラムの偏りが所定閾値より小さい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項１４又は１５に記載の画像処理方法。
【請求項２５】
請求項２４に記載の判定工程は、
方向ヒストグラムの度数の総和が所定閾値より小さい場合、判定を行わないことを特徴とする画像処理方法。
【請求項２６】
請求項２４に記載の偏り度合い算出工程は、
方向をグループ化して各グループ毎に方向ヒストグラムの度数を和を算出し、該度数の方向ヒストグラム全体の度数和に対する割合を算出することを特徴とする画像処理方法。
【請求項２７】
請求項１４〜２６いずれかに記載の画像処理方法を構成する工程を実行するためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像中から目の色調不良を自動で検出し、好ましい状態に変換・補正を行う画像処理装置及び画像処理方法、及びプログラムを記録した記憶媒体に関する。
【背景技術】
【０００２】
従来より、カメラのフラッシュに起因する目の色調不良を補正する方法が提案されている。この目の色調不良は赤目現象として一般的によく知られるものである。赤目現象は、照明の少ない環境下で人間あるいは犬・猫などの動物を、フラッシュを使用して撮影した際に、開いた瞳孔部分に入ったフラッシュ光が眼底で反射することにより、毛細血管が赤く光る現象である。基本的には色素の薄い人種、すなわち日本人のような黄色人種よりも欧米人の方が、瞳孔すなわち水晶体の透過率が高いため、赤目現象にはなりやすいとされている。
【０００３】
また、近年普及しているデジタルカメラにおいては更なる小型化が進み、レンズの光軸と光源であるフラッシュの位置が近づいている。一般的に、フラッシュ光源の位置が光軸に近いほど赤目現象が発生しやすいとされており、その対策は重要な課題となっている。
【０００４】
赤目現象を防ぐ一つの手段として、カメラ側で撮影を行う際にプレ発光を行い、人物の瞳孔を閉じさせた上で撮影を行う手段が知られている。しかし、この方法を使用すると、通常撮影時と比較して電力の消耗を招くことや、プレ発光により被写体である人物の表情が崩れるという不具合がある。
【０００５】
そこで、近年においては、デジタルカメラによって撮影した結果得られたデジタル画像データを、パーソナルコンピュータ等を使用して補正・加工を施すことにより、赤目の修正を行う手段が数多く提案されている。
【０００６】
デジタル画像データ上で赤目を補正する手段は、大きく手動補正、半自動補正、自動補正に分類することができる。
【０００７】
手動補正は、ユーザが、マウス、ライトペンなどのポインティングデバイスやタッチパネルを使用して、ディスプレイに表示された赤目領域を指定し、指定された領域を補正するものである。
【０００８】
また、半自動補正は、ユーザが赤目が存在する場所をある程度指定し、その情報から赤目の補正範囲を特定し、補正を行うというものである。例えば、ユーザは両目を囲むような範囲を上記ポインティングデバイスによって指定したり、目の近辺を１点指定する。ユーザが指定した位置、あるいは領域の情報から補正範囲を特定し、補正を実行する。
【０００９】
また、自動補正は、ユーザの特別な操作を必要とせず、自動的にデジタル画像データ中から補正領域を検出し、補正処理を実行するものである。
【００１０】
上記の手動および半自動補正では、ユーザが何らかの操作により、補正を行う個所を指定する必要があるが、この指定を行うためには、画像データの所望の領域付近を拡大表示した後、所望の領域を指定するといったユーザにとって煩わしい操作が必要となってしまう。また、パーソナルコンピュータなどの大画面の表示装置を備えたシステム上であればこのような操作も容易であるが、デジタルカメラやプリンタなど数インチの表示装置しか備えていないデバイス上では、画像を拡大してスクロールしながら、所望の領域を指定するといった操作は容易ではない。
【００１１】
従って近年では、上記のうちユーザの煩わしい操作が必要なく、かつ大きな表示装置を備えないデバイスにおいても有効である自動補正に関して、様々な提案が行われている。
【００１２】
例えば、特許文献１、特許文献２では、画像中から肌色領域を検出し、その領域内で赤目を構成すると思われる画素をサーチし、検出した赤目を補正する方法が提案されている。
【００１３】
また、特許文献３、特許文献４では、肌色領域を検出し、そのエリアの中で瞳の輝度の低さに対応する谷領域を検出し、第１の谷と第２の谷との距離を基に目であることを決定する方法が提案されている。
【００１４】
また、特許文献５、特許文献６では、肌色領域を検出し、肌色領域が人間の顔の特徴であるかを判断し、その領域内で赤目欠陥の一組を検出して距離と大きさを評価することにより、赤目領域と特定する方法が提案されている。
【００１５】
また、特許文献７、特許文献８では、画像が赤い瞳孔を含むか否かを自動判別し、検出した場合には位置、大きさを検出し、瞳孔内の赤色画素を自動的に所定の色に変換する方法が提案されている。
【００１６】
赤目の検出方法については、上記に限らず様々な提案が行われている。
【特許文献１】米国特許第６２９２５７４号明細書
【特許文献２】特開平１１−１３６４９８号公報
【特許文献３】米国特許第６１５１４０３号明細書
【特許文献４】特開平１１−１４９５５９号公報
【特許文献５】米国特許第６２５２９７６号明細書
【特許文献６】特開２０００−１２５３２０号公報
【特許文献７】米国特許第６２７８４９１号明細書
【特許文献８】特開平１１−２８４８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかし、これまで提案されている方法には以下のような課題が存在する。
【００１８】
まず、人物の肌色検出、あるいはニューラルネットワーク等を用いた顔検出の結果に基づく赤目領域の検出においては、検出結果の信頼性は高いと言えるが、検出のために画像中のある程度広範囲な領域を参照する必要があるため、大量のメモリや演算量を必要とする。従って、数ＧＨｚのクロックで動作する高性能なＣＰＵと数百ＭＢの大容量のメモリを搭載したパーソナルコンピュータ上で動作させる場合には適しているが、デジタルカメラやプリンタ本体内部の組み込みシステムにおいて実装するのは困難である。
【００１９】
また、上記記載した従来例に限らず、これまで提案されている方式の多くは、赤目領域が周辺領域と比較して彩度が高いという特徴を利用して、赤目領域を特定するというものである。しかし、従来の彩度に基づく判定では、日本人のような黄色人種にとっては適合しないという問題がある。よく知られているように、画素値がＲＧＢ系で与えられた際の彩度は以下のようにして求めることができる。
【００２０】
2007004455.tif 000003
【００２１】
上式において、ｍａｘ（Ｒ，Ｇ，Ｂ）は、ＲＧＢ成分値のうちの最大値を、ｍｉｎ（Ｒ，Ｇ，Ｂ）は最小値を意味している。
【００２２】
例えば、日本人の肌色領域は色相（０〜３５９度）で言えば０〜３０度付近に多く分布することが実験の結果明らかになっている。なお、ＨＩＳ系の色相では０度付近が赤色であり、大きくなるに従って、イエローに近づいてゆく。上記０〜３０度付近では、ＲＧＢ値の大小関係は以下のようになっている。
Ｒ＞Ｇ＞Ｂ      式２
【００２３】
また、日本人のように色素の多い人種は鮮やかな赤目になりにくいということは、すでに述べた通りである。
【００２４】
以上のことから、例えば、日本人の赤目領域の画素値は（Ｒ，Ｇ，Ｂ）＝（１０９，５８，６５）、周辺肌色領域の画素値は（Ｒ，Ｇ，Ｂ）＝（２２６，１８３，１２８）となっている場合がある。このような場合、赤目画素の彩度は４０、周辺肌領域画素の彩度は４３となり、ほぼ同様の結果となってしまう。従って、人種によっては、彩度に着目していては赤目画素と特定できない場合があった。
【００２５】
また、赤目領域を特定するためには、赤目候補画素と判定された画素群の中から、赤目である確率の高い円形に近い領域を、確実かつ高速に抽出する必要がある。しかし、従来方法の中には、形状判定を高速かつ消費メモリ量も少なく、さらに確実に抽出する方法について、具体的な記述が見られなかった。
【００２６】
本発明の目的は、上記問題を解決するために、様々な人種に対しても適応性が高く、また高速かつ使用メモリ量も少なく、組み込みシステムなどの限られたリソース環境下においても高い信頼性を発揮できる赤目検出および補正アルゴリズムを提供することである。
【課題を解決するための手段】
【００２７】
上記問題を解決するために、本発明の画像処理装置は以下の手段を備える。
【００２８】
すなわち、
画像を入力する入力手段と、
画像中から候補画素を抽出する候補画素抽出手段と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、
該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備えることを特徴とする。
【００２９】
また、上記問題を解決するために、本発明の画像処理方法は以下の工程を備える。
【００３０】
すなわち、
画像を入力する入力工程と、
画像中から候補画素を抽出する候補画素抽出工程と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡工程と、
該境界線追跡工程により円、あるいは楕円領域に近いか否かを判定する判定工程とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成工程を備えることを特徴とする。
【発明の効果】
【００３１】
本発明の第１の実施例によれば、
赤目を構成する画素であるか否かを従来の彩度ではなくＲおよびＧ成分の関係で求めた赤色評価量を用いて判定することにより、日本人のような色素の濃い人種の赤目も精度良く抽出することが可能となる。また、赤目候補画素をオンドットとした２値化画像上において、境界線追跡法を適用することにより、該２値化画像上から、極めて少ない演算量で高速に赤丸領域を抽出することが可能となる。また、該赤丸領域に対して、赤目であると考えられる様々な特徴量を算出し、それを評価することで、最終的に赤目領域を精度良く特定することが可能となる。また、特徴量判定は、個々の特徴量判定による効果、および特徴量算出時の演算量に応じて適切な順序で判定を行うことにより、必要最小限の処理量で検出処理を実現することができる。
【００３２】
さらに、本発明の第２の実施例によれば、
適応的２値化処理による赤領域抽出時に、２値化閾値を算出する水平方向ウィンドウを、注目画素に対して左右双方向に設定して２値化処理を行うことにより、赤目を構成する画素のみをさらに精度良く抽出することが可能となる。
【００３３】
さらに、本発明の第３の実施例によれば、
ある赤目候補領域の近隣に、該候補領域よりも小さい候補領域が存在する場合には、小さい領域を候補リストから除外することにより、赤目ではない領域に対する誤補正を防止することが可能となる。
【００３４】
さらに、本発明の第４の実施例によれば、
ある赤目候補の近隣に、該候補領域と同等の候補領域が存在しており、かつ、両者を結合した場合により赤目の条件に近づくか否かの判定を行うことにより、瞳孔内部に存在するハイライト領域によって分断された赤目候補領域を、適切に抽出することが可能となる。
【００３５】
さらに、本発明の第５の実施例によれば、
入力画像を縮小し、かつバンド単位に分割して検出処理を行うことにより、第１の実施例で述べたような赤目検出および補正方法を、メモリリソースが極めて少ない環境下においても実行することが可能となる。また、該バンドは重複領域を保持するように設定することで、バンド境界に存在する赤目についても、適切に検出することが可能となる。
【発明を実施するための最良の形態】
【００３６】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例】
【００３７】
（第１の実施例）
以下、出願人が提案した発明について説明する。尚、以降で説明する処理は、主として、プリンタエンジンへ出力すべき画像情報を作成するコンピュータ内のプリンタドライバソフト、もしくは、スキャナ等の光学読取り装置を動作させるためのドライバソフト、もしくはアプリケーションソフトとして内蔵することが効率的であるが、複写機、ファクシミリ、プリンタ、デジタルカメラ、デジタルビデオカメラ等にハードウェア、及びソフトウエアとして内蔵することにも効果がある。
【００３８】
図１に、本発明における全ての実施例で説明する画像処理方法が実行されるハードウェア環境を示している。同図において、コンピュータ１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ディスプレイ、タッチパネルなどの表示装置１０４、ハードディスクドライブやメモリカードなどの２次記憶装置１０５、マウス、ライトペンなどのポインティングデバイス１０６、キーボード１０７、ＵＳＢやＩＥＥＥ１３９４、あるいはイーサネット(登録商標)などの外部インターフェース１０８で構成され、それぞれのデバイスがシステムバス１０９に接続された状態になっている。また、外部インターフェース１０８を介してプリンタ１１０が接続されていてもよい。上記構成はあくまで本実施例で説明する処理を実施するためのハードウェアの一般的な構成であり、一部の構成を欠いたり、他のデバイスが追加されたとしても、本発明の範疇に含まれることは言うまでもない。
【００３９】
（概要）
以下に、本実施例の処理の概要について説明する。
【００４０】
図２は、本実施例における赤目の自動補正方法の概要である。入力画像は、例えば、１画素あたりＲＧＢ各８ｂｉｔ、合計２４ｂｉｔのデジタル画像データである。
【００４１】
また、図３は、デジタルカメラなどの撮像装置により撮像された赤目画像の概念的な図である。同図において３０２は目の瞳孔領域、３０１は虹彩領域、３０４は撮影時に使用したフラッシュに起因するハイライト領域を示している。また、３０３は白目の領域である。通常の赤目現象においては、瞳孔３０２の領域が赤くなっている。
【００４２】
さて、該画像データが図２の入力端子２０１から入力され、赤領域抽出部２０２において、画像中から赤い領域を抽出する。赤い領域の抽出方法については様々な方法が考えられるが、本実施例においては、適応的２値化による赤領域の抽出法について説明する。同部においては、赤領域は目であるか否かに関わらず抽出されることになるため、赤領域は赤目部分や信号機、服の模様、照明など様々なものが含まれる。
【００４３】
次に、抽出された赤領域情報と入力画像データは、赤丸領域抽出部２０３に入力され、同部において、該赤領域の中から、形状が比較的円形に近い領域を特定する。領域形状の判定については様々な方法が考えられるが、本実施例においては、境界線追跡による赤丸領域の抽出法について説明する。なお、抽出された赤丸領域の位置情報は、候補領域リストに格納される。
【００４４】
次に、上記候補領域リストと入力画像データは、特徴量判定部２０４に入力され、同部において、該赤丸領域に対して目であると特定できるような様々な特徴量の判定処理を行う。目であると特定できるような特徴量としては、赤丸領域の彩度であったり、赤丸周辺領域の明度、彩度、色相、エッジの分布などであったりする。これらの特徴量を、あらかじめ定められた閾値と比較し、全ての条件を満たす赤丸領域を赤目領域であると特定する。
【００４５】
特定された赤目領域の位置情報を格納した候補領域リストと入力画像データは、補正部２０５に入力され、同部において、特定された赤目領域に対して補正処理が行われる。
【００４６】
補正処理が施された後の画像データは出力端子２０６から出力され、表示装置１０４に表示されたり、ＲＡＭ１０３あるいは２次記憶装置１０５に格納されたりする。また、インターフェース１０８を介して接続されたプリンタにより、印字物上にプリントされることも考えられるし、インターフェース１０８を介してイントラネット、あるいはインターネットで接続された他のコンピュータに送信されたりすることも考えられる。
【００４７】
以上が本実施例の処理の概要である。以下より各部の詳細説明を行う。
【００４８】
（赤領域抽出部）
赤領域抽出部２０２においては、入力された画像データに対して適応的２値化処理を適用することで、画像データ中から赤領域を抽出する。本実施例における適応的２値化処理では、入力された画像データの各画素値に対して該画素の赤色度合いを示す赤色評価量を算出し、該評価量が閾値と比較して大きい場合、その画素は赤色であるとしてオンドットとする。この閾値は注目画素周辺領域において適応的に決定される閾値である。
【００４９】
図４は、本実施例における適応的２値化処理の説明図である。
【００５０】
同図において、注目画素４０２が、現在２値化対象となっている入力画像データ４０１上の画素である。適応的２値化処理部では、入力画像から赤領域を抽出するために、注目画素の赤色度合いを示すための評価量ＥＲ以下のように定義する。
【００５１】
2007004455.tif 000004
【００５２】
以下では、上記ＥＲを赤色評価量と呼ぶこととする。上式は、注目画素の赤色度合いを、一般的なＨＳＩ系の彩度ではなく、Ｂ成分を除くＲ、Ｇの２成分から求めることを意味している。
【００５３】
赤色評価量を彩度ではなく、上式で定義することの利点を以下に説明する。例えば、日本人のような色素の多い人種の赤目の場合、瞳孔部分である水晶体の透過率が低いために、鮮やかな赤目になりにくいという傾向がある。日本人の赤目の場合、例えば、赤目領域の画素値は（Ｒ，Ｇ，Ｂ）＝（１０９，５８，６５）といった値となっている。また、日本人の肌色は色相で言えば赤（０度）からイエロー（６０度）の間に多く分布することが実験の結果明らかになっている。このような領域では、ＲＧＢ各成分の大小関係は、Ｒ＞Ｇ＞Ｂとなっており、周辺肌色領域の画素値は例えば、（Ｒ，Ｇ，Ｂ）＝（２２６，１８３，１２８）という値となっている。このような場合についてそれぞれの彩度を求めてみると、赤目画素の彩度は４０、周辺肌領域画素の彩度は４３となり、ほぼ同様の結果となってしまう。この場合、赤目領域の画素値の彩度は、周辺肌色領域の彩度に対して特別突出しているわけではないため、本実施例のような適応的２値化による検出が困難になってしまう。
【００５４】
一方で、各画素の赤色評価量を上式のように定義した場合、赤目領域の画素値の赤色評価量は４７、周辺肌色領域の赤色評価量は１９となるため、周辺領域に比べて赤目領域内の画素値の赤色評価量は２倍以上の突出した値となることがわかる。
【００５５】
以上のことから、日本人のような色素の濃い人種の赤目を検出する場合には、彩度ではなく、上式のようなＢ成分を含まない、ＲＧ成分のみの評価量を定義することにより、赤目を構成する画素を精度良く抽出することが可能となる。なお、上式においては、Ｒ成分に対する（Ｒ−Ｇ）の割合を評価量としたが、本発明はこれに限定されるものではない。例えば、（Ｒ−Ｇ）のみを評価量としてもよいし、Ｒ／Ｇを評価量としてもよい。
【００５６】
2007004455.tif 000005
【００５７】
2007004455.tif 000006
【００５８】
上式において、Ｍａｒｇｉｎ＿ＲＧＲはパラメータである。上式は、注目画素の赤色度合いが、注目画素直前に設定したウィンドウ領域の赤色評価量平均値にＭａｒｇｉｎ＿ＲＧＲを加えた値よりも大きい場合、オンドット（１）とする、すなわち、その注目画素を赤領域として抽出することを意味している。
【００５９】
2007004455.tif 000007
【００６０】
以上説明したような処理を、入力画像データの各ライン単位で、注目画素を左から右に移動させながら、全ての画素に対して処理を行う。
【００６１】
なお、本実施例においては、２値化を行うための閾値を、注目画素左方の同じ行のみに設定したウィンドウを用いて算出したが、本発明はこれに限定されるものではない。例えば、注目画素左方でかつ複数の行を含むようなウィンドウを設定してもよいし、注目画素を中心とした所定正方領域をウィンドウと設定してもよい。
【００６２】
図６に、適応的２値化結果の例を示す。同図において、（ａ）は入力画像データの赤目近辺の画像であり、（ｂ）は適応的２値化を施した結果得られた２値化画像である。赤目の瞳孔部分のみが抽出されている様子を示している。
【００６３】
また、本実施例においては、上記水平方向に設定したウィンドウ内部の赤色評価量平均値を求める際に、以下のような高速化手法を用いても良い。図５は、該平均値を求める際の高速化手法を説明するための図である。同図（ａ）において、上述したように注目画素の左方に設定したウィンドウ内の赤色評価量平均値を求める際に、ウィンドウ内の赤色評価量の総和をメモリに格納しておく。平均値は、該総和をウィンドウを構成する画素数で除算することにより、簡単に求めることができる。次に、注目画素は１画素右側に移動するが、その際にはウィンドウも１画素右側にスライドする。この時、同図（ｂ）におけるウィンドウ内の赤色評価量の総和は、（ａ）において求めた総和から画素５０１の赤色評価量を減算し、画素５０２の赤色評価量を加えれば良く、改めてウィンドウ内全ての画素について赤色評価量を算出する必要はないため、処理の高速化が図れる。
【００６４】
以上が、赤領域抽出部２０２の説明である。
【００６５】
（赤丸領域抽出）
以下では、赤丸領域抽出部２０３について詳細な説明を行う。２値化画像中の形状判定には様々な方法が考えられるが、本実施例においては、２値化画像処理方法の一つである境界線追跡法を用いる。
【００６６】
図７は、本実施例における境界線追跡法の説明図である。
【００６７】
境界線追跡処理では、まず前記適応的２値化処理の結果得られた２値化画像に対して、画像を上端から走査方向にスキャンしてゆき、
2007004455.tif 000008
であり、かつ、
2007004455.tif 000009
の４方向がオフドットとなるような画素を始点として決定する（図中７０１）。なお、同図においては、２値化画像の左上を原点とするような座標系を設定している。
【００６８】
そして、前記画素から反時計回りに２値化画像がオンドットとなる画素を、始点７０１に再び戻ってくるまで順次追跡してゆく。追跡の途中で画像領域を逸脱したり、始点位置よりもＹ座標が小さくなるような場合には、追跡を打ち切り次の始点の探索を行う。追跡の途中でＹ座標が始点よりも小さくなった場合に追跡を打ち切るのは、図８に示すような環状領域の内側を誤って追跡することがないようにするためである。環状領域の内側を追跡した場合には、同図８０１の地点で始点よりもＹ座標が小さくなるため、ここで処理を打ち切る必要がある。
【００６９】
また上記追跡過程では、追跡対象領域の周辺長、方向ヒストグラム、Ｘ座標とＹ座標の最大・最小値を得ることができる。
【００７０】
ここで、周辺長は追跡した画素数である。例えば図７の場合、追跡した画素数は始点も含め９画素である。
【００７１】
また、方向ヒストグラムは、追跡を行う過程で、ある画素から次の画素への追跡が、図９に示す８方向のうちどれであったかを、回数として累積したものである。例えば図７の場合、７０１を始点として反時計回りに追跡を行うと、方向は、６６７８１２３３４という結果になるため、方向ヒストグラムは図１１のようになる。
【００７２】
また、Ｘ、Ｙ座標の最大・最小値は、図１０に示すように、オンドット、すなわち赤領域が存在する矩形領域を指し示すことになる。
【００７３】
赤丸領域抽出部２０３では、各々の赤領域の境界線追跡において上記のような値を取得し、図１２に示すような判定処理を行う。
【００７４】
同図によれば、まずＳ１２０１において、赤領域の縦横比があらかじめ設定された閾値Ｔｈ＿ＢＦ＿ＶＨＲａｔｉｏ以下であるか否かの判定を行う。ここで、図中Ｔｈは閾値Ｔｈ＿ＢＦ＿ＶＨＲａｔｉｏを示す。以降、Ｔｈは閾値を示すが、全てのＴｈは同じ値というわけではない。縦横比は、以下のようにして算出することができる。
【００７５】
2007004455.tif 000010
【００７６】
もし、上記縦横比が１を超える場合には、その逆数を算出する。すなわち、縦横比は０．０〜１．０の範囲で表され、１．０のときは縦と横の長さが同じである。Ｓ１２０１では上記縦横比とＴｈ＿ＢＦ＿ＶＨＲａｔｉｏを比較し、縦横比が閾値よりも小さい場合、その赤領域は赤目候補ではないと判定して、次の赤領域の境界線追跡処理を行う。なお、本ステップにおけるＴｈ＿ＢＦ＿ＶＨＲａｔｉｏは通常、０．３３〜０．５０程度の値となることが望ましい。
【００７７】
次にＳ１２０２において、赤領域のサイズが適正か否かに関する判定を行う。サイズについては、（１）実際の画素数の上限・下限、（２）画像の短辺または長辺に対する比、の二つの観点から行う。
【００７８】
（１）については、赤領域の
2007004455.tif 000011
のうち小さい方と、あらかじめ設定されている閾値とを比較し、上記縦幅もしくは横幅が上限閾値Ｔｈ＿ＢＦ＿ＳｉｚｅＭａｘと下限Ｔｈ＿ＢＦ＿ＳｉｚｅＭｉｎの間に含まれているか否かを判定する。もし含まれていなければ、その赤領域は赤目候補ではないとして、次の赤領域に対する境界線追跡処理を行う。なお、本ステップにおける閾値は、Ｔｈ＿ＢＦ＿ＳｉｚｅＭａｘ＝２００，Ｔｈ＿ＢＦ＿ＳｉｚｅＭｉｎ＝５（単位は画素）程度が望ましい。
【００７９】
また、（２）については、以下の式により求めることができる。
【００８０】
2007004455.tif 000012
【００８１】
上式において、ｍｉｎ（）は、引数のうち最も小さい値を示す。また、Ｗ、Ｈは、それぞれ入力画像の幅、高さを表す。さらに、それぞれの閾値について、Ｔｈ＿ＢＦ＿ＲａｔｉｏＭｉｎ＝０．００５、Ｔｈ＿ＢＦ＿ＲａｔｉｏＭａｘ＝０．１０程度となることが望ましい。もし、現在注目している赤領域が上記判定を満たさない場合、赤目候補ではないと判定して、次のステップに処理は移る。なお、上式においては、それぞれ短辺と比較する場合を示したが、それぞれ長辺と比較するようにしてもよい。
【００８２】
次にＳ１２０３において、上記周辺長を理想円周と比較し、抽出した赤領域が円形に近いか否かの判定を行う。求めた赤領域の幅、高さから、理想円周は以下のようにして近似的に求めることができる。
【００８３】
2007004455.tif 000013
【００８４】
上式は、抽出した赤領域を正方形であると過程し、該正方形に内接する円の円周を算出することを意味している。
【００８５】
2007004455.tif 000014
【００８６】
上記理想円周と周辺長とを以下の式によって比較し、以下の式を満たさない場合、赤目候補とは判定せず、次の赤領域に対する境界線追跡処理を行う。
【００８７】
2007004455.tif 000015
【００８８】
なお、上式において、Ｔｈ＿ＢＦ＿ＣｉｒｃｌｅＲａｔｉｏは０．６〜０．７程度の値が望ましい。
【００８９】
上記判定を満たす場合、処理はＳ１２０４に移り、同ステップにおいて、方向ヒストグラムの偏りに関する判定を行う。既に説明したように、境界線追跡の過程では次の画素への追跡方向について、図１１に示すような方向のヒストグラムを得ることができる。もし、境界線追跡を行う対象領域が円に近い場合、追跡処理の結果から得られた８方向の方向ヒストグラムは均等な分布となるが、領域が細長い場合などは方向ヒストグラムに偏りが生じる。例えば、対象領域が右上から右下に細長くなっているような形状だった場合、図９の方向のうち、２、６近辺に度数が集中し、４，８近辺は度数が少なくなる。このことから、以下の条件全てを満たす場合には赤目候補領域と判定するが、いずれか一つでも条件を満たさない場合には、注目している赤領域は赤目候補ではないとして、次のステップへ処理は移る。
【００９０】
・方向１，２，５，６の度数の和＜度数の総和×Ｔｈ＿ＢＦ＿ＤｉｒｅｃｔＲａｔｉｏ
・方向２，３，６，７の度数の和＜度数の総和×Ｔｈ＿ＢＦ＿ＤｉｒｅｃｔＲａｔｉｏ
・方向３，４，７，８の度数の和＜度数の総和×Ｔｈ＿ＢＦ＿ＤｉｒｅｃｔＲａｔｉｏ
・方向４，５，８，１の度数の和＜度数の総和×Ｔｈ＿ＢＦ＿ＤｉｒｅｃｔＲａｔｉｏ
【００９１】
上式は、ある方向について求めた度数の和が、ある一定割合よりも多い、すなわちある方向に集中しているならば、注目している赤領域は赤目ではないと判断して、次の赤領域に対する境界線追跡処理を行う。
【００９２】
なお、上記において閾値Ｔｈ＿ＢＦ＿ＤｉｒｅｃｔＲａｔｉｏは０．６〜０．７程度の値が望ましい。また、上記判定は度数の総和が少ない場合には精度が低下する恐れがあるため、度数の総和がある一定値以下となる場合、Ｓ１２０４の処理をスキップするようにしてもよい。
【００９３】
これまで説明したＳ１２０１〜Ｓ１２０４のすべての判定、あるいは一部の判定を満たす赤領域については、赤目候補領域として、ＲＡＭ１０３内に確保されている候補領域リストにその座標位置を格納し、さらに境界線追跡処理を継続する。
【００９４】
以上が、赤丸領域抽出処理に関する説明である。
【００９５】
（特徴量判定）
次に処理は図２の特徴量判定部２０４に移り、同部において前記赤丸領域抽出処理によって抽出された赤目候補領域に対して、人物の赤目と特定できるような様々な特徴量を算出し、それをあらかじめ定められた閾値と比較して、赤目であるか否かを判定する。
【００９６】
本実施例では、前段までの処理によって赤目候補リストに記載されている各領域に対して、以下の５つの特徴量群について、以下の順番で判定処理を行う。
特徴量群０：赤丸領域と周辺領域で赤色評価量平均値の比較を行う。
特徴量群１：赤丸領域内部のみで、輝度、赤色評価量、色相等に関する判定を行う。
特徴量群２：周辺領域において、輝度に関する判定を行う。
特徴量群３：周辺領域において、彩度、色相に関する判定を行う。
特徴量群４：周辺領域において、エッジの強度に関する判定を行う。
【００９７】
特徴量群０では、赤目候補領域とその周辺領域で赤色評価量の平均値の比較を行う。理想的な赤目領域近辺においては、赤色成分はその周辺に比べて、瞳孔の部分のみが突出しているという特徴があり、その他様々な特徴量と比較しても、最も顕著に特徴が表れることが実験により判明している。従って、特徴量判定部では特徴量群０の判定処理を最初に行うことが効率的である。
【００９８】
また、特徴量群１は、赤目候補領域内のみの画素を参照して特徴量判定を行うため、他の特徴量群に対して比較的演算量は少ないといえる。
【００９９】
また、特徴量群２と特徴量群３ついては、設定した周辺領域に存在する画素に対して、ＲＧＢ成分を輝度・色差成分に変換したり、ＲＧＢ成分を明度・彩度・色相に変換する処理が行われるため、特徴量群１に比べて演算量は多くなる。また、特徴量群４においては、エッジの強度を求めるために、Ｓｏｂｅｌなどの公知のエッジ検出フィルタを用いるため、他の特徴量群と比較して最も演算量は多い。
【０１００】
従って、本実施例における特徴量判定部では、上述したように演算量の少ないもの、あるいは赤目の特徴を掴みやすいものから順に判定処理を行い、判定を満たさない赤目候補領域については以降の特徴量群の判定処理をスキップすることにより、特徴量判定部全体の処理量を最も抑制することが可能となる。
【０１０１】
以下では、まず周辺領域の定義について説明し、続いて各群の説明を行う。
【０１０２】
（周辺領域の定義）
図１３は、赤目の特徴量を算出する際に使用される周辺領域の定義である。同図において、中央ブロック１３０１が前段処理である赤丸抽出処理部において抽出された赤目候補領域であり、本実施例における周辺領域は、該赤目候補領域を中心とし、その周辺に赤目候補領域のサイズを２，３，５倍に拡大して設定した領域のことである。それぞれの周辺領域について、図１３（ａ）〜（ｃ）に示している。また、以降で言及する周辺領域全体とは、設定した周辺領域内部で中央の赤目候補領域を除いた部分を意味している。また、周辺領域のブロックとは、同図に示すように、周辺領域内を点線で区切った各ブロックを意味している。前記特徴量群のうち、特徴量群１以外は、この周辺領域に対して特徴量判定を行うことになる。本実施例のような周辺領域の設定では、最大でも赤目候補領域のサイズの５倍の領域しか参照しないため、高速な判定処理が可能である。
【０１０３】
また、図１４を用いて、検出した赤目候補領域が画像の端部近辺に存在する場合の周辺領域について説明する。
【０１０４】
同図（ａ）は、赤目候補領域が画像の右端部付近に、ややマージンを残して存在する場合を示している。この場合、周辺領域の各ブロック内に１画素でも画素が存在するならば、その画素を用いて特徴量判定を行う。一方、同図（ｂ）は、赤目候補領域がマージンなしで画像右端部に接している例を示している。この場合、周辺ブロックのうち、右上（ＴＲ）、右（Ｒ）、右下（ＢＲ）の３ブロックは画素が存在しないため、同ブロックの特徴量を算出することができない。このようになった赤目候補領域については、本実施例では赤目と判定しないこととし、候補領域リストから除外する。
【０１０５】
以上が周辺領域の定義に関する説明である。次からは、各特徴量群毎に特徴量判定処理の説明を行う。
【０１０６】
（特徴量群０）
特徴量群０では、まず、赤目候補領域に対して周辺領域（例えば図１３（ｂ）の３倍領域）を設定し、中央を含む各ブロック位置それぞれについて、式３で示した赤色評価量の平均値を算出する。算出した値は、配列ＡＥｖＲ［８］に格納される。ここでＡＥｖＲは０〜８の９つの要素を保持する配列であり、０が図１３（ｂ）のＴＬブロック、１がＴブロック、２がＴＲ、というように、左上ブロックから右下ブロックの順に割り当てられている。
【０１０７】
特徴量群０では、ｖ＝０〜８（ただし中央ブロックであるｖ＝４は除外）について、以下の式を満たすか否かの判定を行う。
ＡＥｖＲ［４］×Ｔｈ＿ＦＪ０＿ＥｖＲ＞ＡＥｖＲ［ｖ］      式１１
【０１０８】
上式は、中央ブロックの赤色評価量の平均値にある閾値を乗じたものが、他の８個の周辺ブロックの赤色評価量平均値よりも大きい場合、赤目であると判定することを意味している。なお、上式においてＴｈ＿ＦＪ０＿ＥｖＲは閾値であり、０．６〜０．８程度の値が望ましい。
【０１０９】
上記判定を満たさない場合、現在注目している赤目候補領域は赤目ではないとして、以降の特徴量群の処理を行わず、次の候補領域の判定処理に移る。
【０１１０】
ところで、本実施例の特徴量判定部において、まず上記赤色評価量の比較を行う理由は、以降で説明する特徴量の中で、最も顕著に赤目の特徴を掴むことができる特徴量であるためである。様々な実験の結果、式１１による判定が、赤目ではない領域を赤目候補リストから除外することに対して、最も効果的であることが判明している。従って、できるだけ特徴を掴みやすい特徴量から順番に判定してゆくことで、特徴量判定部全体の演算量を最小限に抑えることができる。
【０１１１】
また、各ブロックの平均値を算出する際に、中央ブロックについては、図１５に示すような菱形領域１５０１内の画素についてのみ、平均値を算出するようにしてもよい。一般的な赤目形状は円もしくは楕円であるため、中央ブロックの４隅には赤色度合いの小さい画素が存在する。このため、中央ブロックの赤色評価量平均値を低下させないために、中央ブロックは４隅を除く画素を対象として赤色評価量を算出すべきである。従って、本実施例においては、図１５のような菱形領域の内部についてのみ特徴量を算出する。なお、算出領域は菱形領域以外に、中央ブロックに内接する円や楕円領域内としても、同様の効果を得ることができる。
【０１１２】
（特徴量群１）
次に、処理は特徴量群１の判定処理に移る。特徴量群１では、赤目候補領域、すなわち図１３で示した中央矩形ブロック内のみの画像データを参照して、赤目であるか否かの判定処理を行う。特徴量群１には、例えば以下のような判定処理が含まれている。
【０１１３】
まず、赤目候補領域において、色相が±３０度以内となる画素の赤色評価量の平均値はＴｈ＿ＦＪ１＿ＥＭｉｎ以上、Ｔｈ＿ＦＪ１＿ＥＭａｘ以下であるか否かの判定を行う。本判定を満たさない場合、赤目候補リストから除外する。なお、色相については、公知の手法により求めることが可能である。
【０１１４】
次に、赤目候補領域において、±３０度以内となる画素の赤色評価量の最大・最小値を求め、（最小値÷最大値）を算出する。赤目候補領域では赤色評価量は大きく変化しているため、前記（最小値÷最大値）はある程度小さい値となる。従って、以下のような判定処理を行い、以下の判定を満たさない場合、赤目候補リストから除外する。
（赤色評価量の最小値÷赤色評価量の最大値）＜Ｔｈ＿ＦＪ１＿ＥＭａｘＭｉｎＲａｔｉｏ          式１２
【０１１５】
上式において、Ｔｈ＿ＦＪ１＿ＥＭａｘＭｉｎＲａｔｉｏは０．３〜０．５程度の値が望ましい。
【０１１６】
次に、赤目候補領域内において、Ｒ成分の標準偏差を測定する。赤目領域内には鮮やかな赤領域と、瞳孔境界付近の暗い領域とが含まれるため、Ｒ成分のダイナミックレンジは非常に大きいものになっている。従って、Ｒ成分の偏差を測定すれば、その値はある程度大きい値となっている。従って、赤目候補領域内において、既知の方法によりＲ成分の標準偏差を測定し、閾値Ｔｈ＿ＦＪ１＿ＲＤｉｖより大きいか否か判定する。
（Ｒ成分の標準偏差）＞Ｔｈ＿ＦＪ１＿ＲＤｉｖ        式１３
【０１１７】
上式を満たさない場合、注目している領域は、赤目候補リストから除外される。なお、上式ではＲ成分の標準偏差について言及したが、当然Ｒ成分の分散を用いたとしても、同様の判定処理を行うことが可能である。
【０１１８】
また、Ｒ成分の変化の度合いを判定する別の方法として、赤目候補領域内において、近隣画素間のＲ成分の差分和の平均値を算出し、同値が閾値Ｔｈ＿ＦＪ１＿ＲＤｉｆｆより大きいか否かの判定を行うことも考えられる（式１４）。
（Ｒ成分の近隣差分和の平均値）＞Ｔｈ＿ＦＪ１＿ＲＤｉｆｆ      式１４
【０１１９】
上式において、近隣差分和の算出方法については様々な方法が考えられる。例えば、注目画素と、隣接する８つの画素との平均差分和を算出してもよいし、単純に左隣との差分和の平均値を求めても良い。
【０１２０】
また、上記のような判定はＲ成分だけでなく、他のＧ、Ｂ成分、あるいは輝度や赤色評価量に対しても同様に実施することができる。
【０１２１】
以上が、特徴量群１の説明である。上記全て、あるいは一部の特徴量判定処理を満たす赤目候補領域のみに対して、次の特徴量群２の判定処理を行う。
【０１２２】
（特徴量群２）
次に、処理は特徴量群２の判定処理に移る。特徴量群２では、赤目候補領域に対して周辺領域を設定し、該周辺領域内の輝度成分に関する判定処理を行う。特徴量群２には、例えば以下のような判定処理が含まれている。
【０１２３】
まず、赤目候補領域に対して周辺領域（例えば、図１３（ｃ）の５倍領域）を設定する。次に、中央ブロックを除く周辺８ブロック全体の平均輝度値を算出し、該平均輝度値が、Ｔｈ＿ＦＪ２＿ＹＭｉｎ以上、Ｔｈ＿ＦＪ２＿ＹＭａｘ以下であるか否かの判定を行う。前記判定を満たさない、つまり赤目候補領域の周辺が極端に明るい、あるいは暗い場合には、注目領域を赤目候補リストから除外する。
【０１２４】
また、上記のような輝度に関する判定は、周辺８ブロック全体で行ってもよいし、各周辺ブロック毎に平均輝度値を求め、それぞれのブロック毎にあらかじめ設定した閾値と比較してもよい。
【０１２５】
次に、赤目候補領域に対して２倍の周辺領域を設定し、中央ブロックを除く８つの周辺ブロック毎に平均輝度値を算出する。さらに８つの平均輝度値から最大値と最小値を算出する。赤目領域に対して２倍の周辺領域を設定した場合、周辺の明るさは大きく変化している可能性があるため、以下のような判定を行う。
（２倍周辺領域のブロック内平均輝度の最大値−最小値）＞Ｔｈ＿ＦＪ２＿ＭａｘＭｉｎＤｉｆｆ２          式１５
【０１２６】
上記判定を満たさない場合、赤目ではないとして、注目領域を赤目候補リストから除外する。
【０１２７】
また一方で、赤目領域に対して周辺５倍領域を設定し、上述したように各ブロック毎に平均輝度値を算出し、該平均輝度値の最大・最小値を求める。赤目領域に対して比較的広い５倍領域を設定した場合、赤目の周辺領域の多くは肌領域であり、そこでは輝度値が大きく変化するとは考えられない。従って、２倍の周辺領域を設定した場合とは異なり、以下のような判定を行う。
（５倍周辺領域のブロック内平均輝度の最大値−最小値）＜Ｔｈ＿ＦＪ２＿ＭａｘＭｉｎＤｉｆｆ５          式１６
【０１２８】
上記判定を満たさない場合、赤目ではないとして、注目領域を赤目候補リストから除外する。
【０１２９】
以上が、特徴量群２の説明である。上記全て、あるいは一部の特徴量判定処理を満たす赤目候補領域のみに対して、次の特徴量群３の判定処理を行う。
【０１３０】
（特徴量群３）
次に、処理は特徴量群３の判定処理に移る。特徴量群３では、赤目候補領域に対して周辺領域を設定し、該周辺領域内の彩度および色相に関する判定処理を行う。特徴量群３には、例えば以下のような判定処理が含まれている。
【０１３１】
まず、赤目候補領域に対して周辺領域を設定し（例えば、図１３（ｃ）の５倍領域）、中央を除く周辺８ブロック内において、色相が±Ｔｈ＿ＦＪ３＿ＨＲａｎｇｅ以内となる画素数の割合を算出する。赤目周辺領域は人肌領域であるため、大部分の画素は色相が上記範囲内に含まれるはずである。従って、該割合がＴｈ＿ＦＪ３＿ＨＲａｔｉｏ以上であれば赤目候補とするが、否である場合、赤目候補リストから除外する。
【０１３２】
次に、赤目候補領域に対して周辺領域を設定し（例えば、図１３（ｃ）の５倍領域）、周辺８ブロック全体の平均彩度を算出する。該平均彩度が、Ｔｈ＿ＦＪ３＿ＳＭｉｎ以上、Ｔｈ＿ＦＪ３＿ＳＭａｘ以下であるなら、赤目候補とするが、否である場合、赤目候補リストから除外する。
【０１３３】
また、上記のような彩度の判定については、各ブロック単位に行うことも考えられる。つまり、各周辺ブロック毎に平均彩度を算出し、あらかじめ設定された閾値と比較すればよい。
【０１３４】
さらに、赤目周辺にはいわゆる白目領域が存在するため、赤目候補領域に対して設定した周辺領域（例えば、図１３（ｂ）の３倍領域）において、彩度÷明度がＴｈ＿ＦＪ３＿ＷｈｉｔｅＰｉｘ以下となる、すなわち彩度が小さく明度が高い画素が存在するならば、赤目候補と判定する。もし上記判定が否である場合には、赤目候補リストから除外する。
【０１３５】
以上が、特徴量群３の説明である。上記全て、あるいは一部の特徴量判定処理を満たす赤目候補領域のみに対して、次の特徴量群４の判定処理を行う。
【０１３６】
（特徴量群４）
次に、処理は特徴量群４の判定処理に移る。特徴量群４では、赤目候補領域に対して周辺領域を設定し、該周辺領域内のエッジに関する判定処理を行う。人間の目近辺には非常に強いエッジが存在するため、有効な特徴量になりうる。また、以下の実施例ではエッジの検出を公知のＳｏｂｅｌフィルタを用いる場合について説明しているが、本発明はこれに限定されるものではなく、他のエッジ検出フィルタを用いたとしても、同様の判定処理を行うことが可能である。なお、Ｓｏｂｅｌフィルタについては公知であるため、ここでの詳細な説明は省略する。特徴量群４には、例えば以下のような判定処理が含まれている。
【０１３７】
まず、赤目候補領域に対して周辺領域（例えば、図１３（ａ）の２倍領域）を設定し、同領域内の各画素に対してＳｏｂｅｌフィルタを施す。その結果、各画素毎に得られたＳｏｂｅｌ出力値の平均値を算出する。人間の目近辺には強いエッジが存在する場合が多いため、該平均値を閾値Ｔｈ＿ＦＪ４＿ＳｏｂｅｌＰｏｗよりも大きいか否かの判定を行い、上記判定を満たす場合、赤目候補と判定する。
【０１３８】
また、赤目候補領域に対して周辺領域（例えば、図１３（ｂ）の３倍領域）を設定し、同領域内の各画素に対してＳｏｂｅｌフィルタを施す。その結果、各画素毎に得られたＳｏｂｅｌ出力値の（最大値−最小値）を算出する。人間の目近辺には強いエッジが存在する一方で、人肌の平坦な部分も存在することから、前記（最大値−最小値）は比較的大きな値となるはずである。従って、前記（最大値−最小値）がＴｈ＿ＦＪ４＿ＭａｘＭｉｎＤｉｆｆより大きい場合、赤目候補と判定してもよい。
【０１３９】
さらに、赤目候補領域に対して周辺領域（例えば、図１３（ｂ）の３倍領域）を設定し、同領域の各画素に対してＳｏｂｅｌフィルタを施す。その結果得られた各画素のＳｏｂｅｌ出力値をエッジ画像として配列Ｓｏｂｅｌ［ｙ］［ｘ］に格納する。次に、該エッジ画像の重心位置を算出する。重心位置は、以下のように求めることができる。
【０１４０】
2007004455.tif 000016
【０１４１】
もし、現在注目している領域が人物の目であるならば、上記重心位置は、エッジ画像の中央付近に存在するはずである。従って、上記重心位置が、例えば赤目候補である矩形領域内に含まれているか否かを判定し、含まれていれば赤目候補と判定する。含まれていない場合、注目領域を赤目候補リストから除外するようにする。
【０１４２】
また、赤目候補領域に対して５倍の周辺領域（図１３（ｃ））を設定し、同領域の各画素に対してＳｏｂｅｌフィルタを施す。その結果得られた各画素のＳｏｂｅｌ出力値をエッジ画像として配列Ｓｏｂｅｌ［ｙ］［ｘ］に格納する。つまり、配列Ｓｏｂｅｌ［ｙ］［ｘ］は５倍周辺領域の画素数と同じサイズの配列となる。
【０１４３】
次に、中央ブロックを含む周辺領域全体に対して、図１６に示すような２つの領域、すなわち中央領域１６０１と外部領域１６０２を定義し、それぞれの領域に対して、該配列Ｓｏｂｅｌ［ｙ］［ｘ］に格納したＳｏｂｅｌ出力値の平均値を算出する。なお、同図において、中央領域のサイズは、赤目候補領域の２．５倍のサイズとしているが、本発明はこれに限定されるものではない。中央と外部それぞれのＳｏｂｅｌ出力値の平均をＳｐｏｗｉｎ、ＳＰｏｗｏｕｔとすると、人間の目の近辺においては、外部領域よりも中央領域の方が強いエッジが存在することから、以下の判定を行う。
【０１４４】
2007004455.tif 000017
【０１４５】
上式において、Ｔｈ＿ＦＪ４＿ＩｎＯｕｔＲａｔｉｏは閾値であり、１．５〜２．０程度の値が望ましい。上式を満たす場合には、着目している領域を赤目であると判定する。一方で、上式を満たさない場合には、着目している領域は赤目ではないと判定し、赤目候補リストから除外する。
【０１４６】
また、上記の応用として、Ｓｐｏｗｉｎ、ＳＰｏｗｏｕｔをそれぞれ単独で別の閾値と比較するような判定も考えられる。
【０１４７】
以上が、特徴量群４ならびに、特徴量判定部２０４の説明である。上記全ての特徴群、あるいは一部の特徴量判定処理を満たす赤目候補領域を赤目領域と確定し、候補領域リストを補正部に入力する。
【０１４８】
（補正処理）
以下では、本実施例における補正処理について説明する。図２の補正処理部２０５には、ＲＧＢ成分で構成された入力画像データと、前段までの処理で得られた赤目候補領域が記載された候補領域リストが入力されることになる。以下では、図１７に示すフローチャートに従って、補正処理について説明を行う。
【０１４９】
図１７は補正処理部２０５において、候補領域リストに記載された複数の赤目領域のうちの一つに対する補正処理のフローチャートである。補正処理部２０５では、入力された候補領域リストに記載されている領域に対して、一つずつ図１７に示される補正処理を行う。
【０１５０】
同図ではまず、Ｓ１７０１において、注目している赤目候補領域に対して補正範囲を決定する。図１８は、本実施例における補正範囲の設定の様子を示した図である。同図において、中央の矩形領域が赤目候補リストに記載されている領域である。
【０１５１】
2007004455.tif 000018
【０１５２】
2007004455.tif 000019
【０１５３】
次に図１７のＳ１７０２において、上記楕円領域内で、補正処理を行うために必要なパラメータを算出する。算出するパラメータは、具体的には、楕円領域内部での最大輝度値Ｙｍａｘ、および式３で示される赤色評価量の最大値Ｅｍａｘを求める。
【０１５４】
次のＳ１７０３〜Ｓ１７０９は、上記楕円内に位置する全ての画素に対して施される処理である。Ｓ１７０３ではまず、注目画素が補正対象領域である上記楕円内に存在するか否かの判定を行う。注目画素が楕円領域内に存在するか否かについては、公知の以下の楕円を算出する公式により判定することができる。
【０１５５】
2007004455.tif 000020
【０１５６】
図１８の矩形領域の中心を原点とする座標系において、（ｘ，ｙ）に位置する注目画素が上式を満たす場合、注目画素は楕円領域内部に存在すると判断される。またその際に、左辺の平方根は、楕円領域の中心から楕円境界までの距離に対する中心から注目画素までの距離の割合に相当する。
【０１５７】
次に、Ｓ１７０４において、楕円領域内に位置する画素に対してＲＧＢ成分値を輝度・色差成分であるＹＣＣ値に変換する。変換方法については既知の様々な方法が存在するが、本実施例においてはどれを用いても構わない。
【０１５８】
次に、Ｓ１７０５において、注目画素に対する各評価量を算出する。ここでの評価量は、後のＳ１７０６において補正量を決定するために必要なパラメータであり、具体的には以下の３つの値である。
【０１５９】
2007004455.tif 000021
【０１６０】
次に、Ｓ１７０６において、上記求めたパラメータを用いて、注目画素の輝度および色差成分それぞれの補正量ＶＹ、ＶＣを、以下のように算出する。
【０１６１】
2007004455.tif 000022
【０１６２】
ここでＶＹ、ＶＣは共に０．０〜１．０の範囲となる値であり、１．０に近いほど、補正量が大きいことを意味している。式２１で表される輝度の補正量は、上記３つのパラメータ全てを用いて補正量を決定することを意味している。具体的には、注目画素位置が、楕円領域の中心から離れるほど補正量は小さくなる。また、注目画素の赤色評価量が、前記最大値Ｅｍａｘに比べて小さい場合、補正量は小さくなる。また、注目画素の輝度値が、前記最大値Ｙｍａｘに近い場合、補正量は小さくなる。輝度値が高い画素について補正量を小さくすることについては、目の中のハイライト（キャッチライト）部分を保存できるという効果がある。
【０１６３】
一方、式２２で示される色差の補正量は、式２１から輝度に関する評価量を除去したものとなっている。
【０１６４】
また両式において、ＴＹ１、ＴＹ２、ＴＹ３、ＴＣ１、ＴＣ２もパラメータであり、設定値によって、それぞれの評価量（式２１、式２２の中括弧の中身）を図１９に示すように、１次、２次、３次といった曲線で適用することも可能である。
【０１６５】
上記補正量を用いて、Ｓ１７０７において、実際に補正後の新しいＹＣＣ値を算出する。算出は以下のようにして行う。
【０１６６】
2007004455.tif 000023
【０１６７】
上式において、Ｙｏｌｄ、Ｃｏｌｄ、はＳＸＸＸで得た補正前の輝度・色差成分値、Ｙｎｅｗ、Ｃｎｅｗは本ステップで新たに得られた補正後の輝度・色差成分値である。また、ＷＹ、ＷＣは０．０〜１．０の範囲で任意に設定できる重みである。もし補正強度を指定したい場合には、これらのパラメータを調節すればよい。例えば、補正強度を弱、中、強と３種類設定したい場合、ＷＹ、ＷＣを共に、０．３、０．７、１．０と設定することで、同一の処理フローで、様々な補正結果を得ることが可能である。
【０１６８】
新しい輝度・色差成分値が決定したなら、Ｓ１７０８においてＲＧＢ成分への逆変換が行われ、補正後の画素値として入力画像メモリバッファに上書きするか、あるいは出力用画像が格納されたメモリバッファの所望のアドレスに格納される。
【０１６９】
Ｓ１７０９において、処理した画素が楕円領域内の最後の画素であった場合、現在着目している赤目候補領域に対する補正処理が終了する。
【０１７０】
以上が本実施例における補正処理の説明である。なお、本実施例では、補正部に入力される画像はＲＧＢ成分で構成され、該入力画像を輝度・色差成分に変換して補正した後に、再びＲＧＢ成分に戻す方法について言及したが、本発明はこれに限定されるものではない。例えば、ＲＧＢを明度、彩度に変換し、同様の方法を用いて明度と彩度を補正した後、再びＲＧＢ成分に戻したとしても、ほぼ同様の出力結果を得られることは容易に理解できる。
【０１７１】
さらに、補正量を決めるためのパラメータとして、注目画素の赤色評価量と楕円領域内の最大赤色評価量との割合を用いたが、同パラメータを単純に彩度に置き換えることも可能である。つまり、注目画素の彩度と楕円領域内の最大彩度との割合を用いて補正量を決定することも容易に実現できる。
【０１７２】
以上が第１の実施例の説明である。
【０１７３】
（第２の実施例）
第１の実施例において、上述した適応的２値化処理は、注目画素の左方に所定サイズのウィンドウを設定し、同ウィンドウで赤色評価量の平均値を算出し、同平均値を閾値として注目画素が赤目を構成する画素であるか否かの判定を行った。このような方法は、閾値を算出するために参照しなければならない画素の数が少ないため処理の高速化が図れるが、ウィンドウを注目画素の左方向にしか設定しないため、２値化結果は処理方向に依存することになる。その結果として、図６（ａ）に示すような画像に対して適応的２値化処理を行った場合、図２０（ａ）に示すように、赤目の瞳孔部分の他に、２００１で示したアイラインが赤目対象画素として抽出される場合がある。この理由を以下に説明する。
【０１７４】
例えば、図２０（ａ）中の画素Ａ（２００２）が、現在の２値化対象画素とする。第１の実施例では、画素Ａを２値化するための赤色評価量の閾値は、画素Ａの左方に設定したウィンドウにおける赤色評価量の平均値と比較して、画素Ａの赤色評価量が突出しているか否かの判定を行う。ここで上記ウィンドウは目の左方であるため、通常肌色部分に設定されることになる。欧米人のような色素の薄い人種では、肌色部分の画素値は、例えば（Ｒ，Ｇ，Ｂ）＝（１５１，１３５，１１０）となっている。式３に従って赤色評価量を算出すると、Ｅ＝１１％となり、比較的小さい値として算出される。一方で、目のアイラインを構成する画素Ａは、例えば、（Ｒ，Ｇ，Ｂ）＝（７７，５０，２９）のような多少輝度の低い画素となっており、同様に赤色評価量を算出すると、Ｅ＝３５％となる。両者を比較すると、明らかにウィンドウ内に存在する肌色部分の赤色評価量よりも、アイライン部分の画素Ａの赤色評価量が突出して大きいため、実施例１の適応的２値化処理では、画素Ａは赤目候補画素として抽出されることになる。
【０１７５】
その結果、赤目候補領域は、図２０（ａ）に示されるような、（ｘｍｉｎ，ｙｍｉｎ）および（ｘｍａｘ，ｙｍａｘ）で囲まれる領域であると判断されてしまい、特徴量判定部においては、本来の赤目の瞳孔部分よりも広い領域を対象として、様々な特徴量判定が行われることとなり、その判定結果の信頼性は低下する。
【０１７６】
一方、もし、注目画素Ａに対して同じ大きさのウィンドウを右方向に設定した場合には、ウィンドウ内部には肌色画素の他に、アイラインを構成する画素であったり、場合によっては赤目の瞳孔部分も多く含まれるため、右方に設定したウィンドウ内における平均赤色評価量は増加することになる。その結果、注目画素Ａは、右方ウィンドウ領域に比べて突出した赤色評価量を持つわけではないため、赤目を構成する画素の候補と判定されにくくなる。
【０１７７】
従って、本実施例においては、実施例１の適応的２値化部を改良して、２値化処理を左右双方向で行う処理について説明する。
【０１７８】
本実施例の適応的２値化処理においては、図２１に示すように、まず注目画素に対して左方にウィンドウを設定し、第１の実施例で説明したのと同様の方法により、注目画素の２値化処理を行う。同図（ａ）に示すように、注目画素を左から右方向に移動させながら、２値化結果をＲＡＭ上に確保された２値化画像用バッファに格納してゆく。
【０１７９】
入力画像データのある水平ラインに対して、上記左から右への２値化処理が終了すると、次に、同じ水平ラインに対して今度は注目画素を右から左に移動させながら、２値化処理を行う。この際に、２値化閾値を算出するウィンドウは、注目画素の右方に設定するものとする。
【０１８０】
上記双方向の２値化処理結果が共にオンドットとなる画素のみを、赤目候補画素として、前記２値化結果を格納するワークバッファに記録する。
【０１８１】
上述したように、適応的２値化処理を双方向で行った結果得られた赤目候補画素の例を図２０（ｂ）に示す。片方向の場合に比べて、２００１の部分が除去され、赤目の瞳孔領域のみが適切に抽出されていることがわかる。
【０１８２】
図２に示した適応的２値化部以降の処理は、第１の実施例と同様である。
【０１８３】
以上が、第２の実施例の説明である。
【０１８４】
（第３の実施例）
以上で説明した実施例では、式３の赤色評価量に着目した適応的２値化処理を行うことにより、赤目候補画素を抽出する方法について説明したが、このような方法を適用すると、稀に図２２に示すような赤い瞳孔部分２２０１とは別に、人間の目尻、目頭部分２２０２を赤目候補領域として検出してしまうことがある。人間の目尻、目頭部分を拡大してみると、例えば、（Ｒ，Ｇ，Ｂ）＝（８１，４１，３１）というような「赤黒い」画素が多く存在することがわかる。前記画素の赤色評価量はＥ＝４９％であり、比較的大きな値となる。そのため、適応的２値化部において、ある程度の画素の集合体として検出される可能性が高い。このような領域はエッジや周辺領域の明度、色相、彩度などが目の特徴を兼ね備えているため、第１の実施例で説明した特徴量判定部において全ての判定を満足し、最終的に赤目領域であると誤判定される可能性が高い。
【０１８５】
従って本実施例では、上記問題を解決するための具体的な手段について説明する。
【０１８６】
図２３は、本実施例における処理のブロック図である。第１の実施例で示したものと比較して、候補領域評価部２３０５が付加されている。本実施例における候補領域評価部では、前段である特徴量判定部までの処理において生成された赤目候補リストを参照し、候補領域それぞれについて、相対的な位置と面積を評価して、赤目候補の整理を行う。すなわち、評価した結果、適当ではないと判断される候補領域については、候補リストから除外するように動作する。
【０１８７】
図２５は、上記候補領域評価部の処理フローを示している。今、特徴量判定処理の結果、Ｋ個（０〜Ｋ−１番目）の領域が赤目として抽出されたものとする。Ｓ２５０１ではまず、ｋ番目赤目領域に対して、その中心位置とサイズを算出する。なお、本実施例では、サイズは矩形で抽出された赤目候補領域の短辺としている。
【０１８８】
次に、ｋ番目の赤目領域の面積を、赤目領域リストに格納されている他のｉ番目の候補領域の面積と比較し（Ｓ２５０２〜Ｓ２５０３）、自身よりも大きい面積の候補領域が存在した場合、Ｓ２５０４において図２４に示すような候補領域同士の中心間距離を算出する。さらに、Ｓ２５０５において、上記中心間距離を用いて大きさの評価・判定を行うための閾値Ｔｈ＿Ｓｉｚｅを算出する。
【０１８９】
閾値Ｔｈ＿Ｓｉｚｅは、図２６に示す関係により求めることができる。同図において、横軸は求めた中心間距離、縦軸は閾値Ｔｈ＿Ｓｉｚｅを示している。また、Ｓ＿ａ，Ｓ＿ｂ，Ｌ＿ａ，Ｌ＿ｂはパラメータであり、例えば、Ｌ＿ａ＝３．０、Ｌ＿ｂ＝５．０、Ｓ＿ａ＝１．０、Ｓ＿ｂ＝２．０というような値が設定される。
【０１９０】
上記パラメータの場合、求めた中心間距離がｋ番目のサイズの３倍以下であればＴｈ＿Ｓｉｚｅ＝１．０となる。また、中心間距離がｋ番目のサイズの３〜５倍であれば、図示した直線によりＴｈ＿Ｓｉｚｅの値が決定される。また、中心間距離が５倍を超えるものについては、判定処理は行わない。
【０１９１】
判定処理はＳ２５０６に進み、同ステップにおいて、ｉ番目の面積がｋ番目の面積×Ｔｈ＿Ｓｉｚｅ以上であるか否かの判定を行う。同判定を満たす場合、すなわち、ｋ番目の近隣に自身よりも大きい候補領域が存在した場合には、ｋ番目候補領域は赤目ではないと判定し、候補リストの最後尾と入れ替え総検出数を１デクリメントする（Ｓ２５０７〜Ｓ２５０８）。
【０１９２】
このような判定処理を、候補リストに登録されている領域全てに対して行うことで（Ｓ２５０９〜Ｓ２５１２）、不要な候補領域を除去することが可能である。
【０１９３】
以上が、本実施例における近隣に存在する候補領域対策のための判定フローの説明である。
【０１９４】
（第４の実施例）
ところで、第１の実施例で述べた適応的２値化を用いると、赤目の中に存在するハイライトのために、赤目領域が分断されてしまう場合がある。このことについて、図を用いて説明する。
【０１９５】
図２７（ａ）は、赤目部分の拡大図を示しており、２７０１は虹彩領域、２７０２は赤い瞳孔領域であり、２７０３は、カメラのフラッシュによって発生したハイライト（白）領域を示している。よく知られているように、人間の赤目現象はカメラのフラッシュによって引き起こされる現象であるため、撮影後の画像データの瞳孔領域２７０２内には、高い確率でフラッシュが反射して出来たハイライト領域が存在する。これはキャッチライトとも呼ばれている。通常、ハイライト領域は瞳孔内の微小な点として存在するため、本発明における赤目検出処理には影響しないが、撮影条件によっては、ハイライト領域が瞳孔領域の大部分を占めるほど大きくなったり、図２７（ａ）に示すように、細長い領域になったりする。このような赤目領域に対して、第１の実施例で説明した適応的２値化処理を適用すると、ハイライト領域では赤色評価量は非常に小さい値となるため、赤目画素として認識されず、２値化画像は図２７（ｂ）に示すように、瞳孔領域が２つ領域２７０４、２７０５に分断されてしまう場合がある。このような２つの領域に対してそれぞれ第１の実施例で説明したの特徴量判定処理を行うと、正しく赤目領域であると判定される確率は低下してしまう。
【０１９６】
従って、本実施例においては、上記問題点を解決するために、第１の実施例で説明した赤丸領域抽出部２０３の次に、近隣に存在する候補領域を結合する処理を追加する。
【０１９７】
図２８は、本実施例における処理の概要を示すブロック図である。第３の実施例で説明したブロック図と異なるのは、赤丸領域抽出部２８０３の次に候補領域結合部２８０４が追加された点である。
【０１９８】
図２９は、候補領域結合部２８０４の処理のフローチャートを示している。本実施例における領域結合処理では、赤丸領域抽出部で検出された赤丸領域の左上、右下座標が格納されている候補領域リストを参照し、近隣に存在する候補領域について結合すべきか否か判断する。
【０１９９】
図３０は候補領域リストの一例を示している。図中には４つの候補領域の座標位置しか格納されていないが、実際には、特徴量判定を行う前の候補領域は数十から場合によっては数千個の座標がリストに格納されている。
【０２００】
図２９において、Ｓ２９０１〜Ｓ２９０２でパラメータの初期化を行い、次に、Ｓ２９０３において、リストのｉ番目とｊ番目に格納されている候補領域について、両者が結合候補となり得るか否かの判定を行う。
【０２０１】
具体的には、図３１に示すように、幅Ｗｉ、高さＨｉ画素となるｉ番目の候補領域と、幅Ｗｊ、高さＨｊ画素となるｊ番目の候補領域とを包含するような矩形領域を考え、その幅Ｗｉｊと高さＨｉｊを算出する。次に、以下の式により、両候補領域が近隣に存在し、かつ大きさも同程度であるか否かを判定する。
【０２０２】
2007004455.tif 000024
【０２０３】
上式において、Ｔｈ＿Ｊは１．０を超えない閾値である。上式は、ｉ番目の候補領域の面積とｊ番目の候補領域の面積との和と、両者を包含する矩形領域の面積との比を算出し、上記比がＴｈ＿Ｊより大きい場合、両候補領域は近隣に存在し、かつ大きさも同程度であると判断できることを意味している。もし、ｉ、ｊ番目の候補領域が図３１（ｂ）に示すような位置関係であった場合、明らかに上式で算出した比は小さくなるため、結合対象領域と判断すべきではないと言える。
【０２０４】
Ｓ２９０３の判定の結果、結合候補領域であると判定された場合、Ｓ２９０４において、結合後の領域が、結合と比較して正方形に近いか否かの判定を行う。具体的には、以下の式を用いて判定することが可能である。
【０２０５】
2007004455.tif 000025
【０２０６】
上式において、ｍａｘ（ａ，ｂ）は、ａ，ｂのうち最大の値を、ｍｉｎ（ａ，ｂ）は、ａ，ｂのうち最小の値を意味している。上式は、ｉ、ｊ番目の両候補を包含する矩形の縦横比（１．０以下）と、ｉ番目およびｊ番目の縦横比のうちの大きい値と比較しても、左辺の方が大きい、すなわち、正方形に近いことを意味している。上式を満たすならば、結合後の矩形領域はより正方形に近づくことになり、その結果、赤目領域も円形に近づくことになる。
【０２０７】
Ｓ２９０４の判定を満たす場合、Ｓ２９０５において、リストのｉ番目の座標情報を、両者を包含する矩形領域の座標に更新する。また、ｊ番目の位置情報は不要となるため、リストから削除する。
【０２０８】
このような処理をリストに登録された全ての補正領域に対して行うことにより、図２７（ｂ）に示したような分断された赤目領域についても、検出できる可能性が高くなる。
【０２０９】
以降の処理については、これまで説明した実施例と同様である。
【０２１０】
以上が、第４の実施例の説明である。
【０２１１】
（第５の実施例）
本実施例においては、以上の実施例で説明してきた処理を、ＣＰＵの処理能力や使用可能なメモリ（ＲＡＭ）が制限された環境下において実施する方法について説明する。前記制限された環境下とは、具体的には、プリンタやデジタルカメラなどの本体内部に実装される場合を想定している。
【０２１２】
上記のような環境下では、使用可能なワークメモリは多くても数百ＫＢ〜数ＭＢ程度しか使用することができない。一方で、近年ではデジタルカメラの高解像度化が進み、１０００万画素を超える撮像能力を備えるものも登場している。このような高精細な画像からの検出処理を、上記限られたワークメモリを用いて行うためには、入力画像をある解像度まで低下させることが有効である。例えば、入力解像度が８００万画素の画像に対して、水平垂直方向に１画素間隔でサブサンプルすれば、１／４の解像度、すなわち２００万画素の画像に縮小することが可能であり、この場合、画像を記憶するために必要なワークメモリの容量も１／４となる。
【０２１３】
しかし、上記のように例え２００万画素に縮小したとしても、縮小後の画像全面を同時に保持するためには、入力画像がＲＧＢ２４ｂｉｔデータの場合、約６ＭＢのワークメモリが必要となる。これは、大容量のメモリを備えるパーソナルコンピュータやワークステーションでは問題とならないが、上記限られた環境下においては、ワークメモリを削減するためにさらなる工夫が必要となる。
【０２１４】
そこで本実施例においては、入力画像を縮小し、該縮小画像をさらにバンドに分割し、各バンド単位で順次赤目領域を抽出する方法について説明する。また、上記バンド分割は、バンド境界に存在する赤目の検出も可能とするために、図３２に示すようにオーバーラップ領域を有するようにする。同図において、３２０１は入力画像を縮小して得られた画像である。図中ＢａｎｄＨｅｉｇｈｔは、１バンドを構成するライン数を示している。つまり、赤目の検出処理は、Ｗｉｄｔｈ×ＢａｎｄＨｅｉｇｈｔ（単位：画素）の画像に対して行うことになる。また、本実施例におけるバンド分割は、同図ＯｖｅｒｌａｐＡｒｅａで示したライン数だけ、前のバンドと重複しているようにする。このようにすることで、図中３２０２で示したような、バンド境界に存在する赤目についても検出が可能となる。
【０２１５】
図３３は本実施例における検出処理の流れを示しており、以降は同図に沿って説明を行う。
【０２１６】
本実施例における赤目の検出処理では、まずＳ３３０１において、パラメータＮの初期化を行う。
【０２１７】
次に、Ｓ３３０２において、Ｎバンド目の縮小画像を生成する。本実施例における縮小画像の生成方法については、簡単のため単純間引きで縮小画像を生成する方法について説明する。例えば、８００万画素相当の画像が、ハードウェア１００内に装備されたフラッシュメモリやハードディスクなど、あるいは外部から挿入されたメモリカード内部に格納されているものとする。格納されているフォーマットは、例えばＪＰＥＧ等である。Ｓ３３０２において、前記画像データにアクセスし、画像データがＪＰＥＧ形式で保存されているならば、最初のＭＣＵ（最小符号化単位）ブロックのデコードを行う。このＭＣＵブロックのサイズは、例えば１６×８画素である。デコード結果はＲＡＭ１０３に保存され、そこから更に、１画素間隔でサブサンプルして８×４画素の画像データを生成し、検出用画像を格納するためのワークメモリに順次格納する。この処理を前記ＢａｎｄＨｅｉｇｈｔライン数分のワークメモリが満たされるまで繰り返す。このような処理により、例えば８００万画素の画像を２００万画素相当に縮小したバンド画像を得ることができる。当然のことながら、縮小画像の方法については、前期単純間引きの方法以外にも、最近隣補間や線形縮小を用いた方法など、様々な方法が考えられ、本発明においてはそれらのうちどれを使用しても構わない。
【０２１８】
上記方法により、所定解像度に縮小したバンド画像がワークメモリに展開されたら、Ｓ３３０３において、Ｎバンド目の赤目検出処理を行う。Ｓ３３０３については、さらに詳細な処理フローを図３４に記載している。
【０２１９】
図３４のＳ３４０１において、まずワークメモリに格納されている縮小画像データに対して、上記実施例で説明した適応的２値化処理を行う。各画素毎の２値化結果はオンドットが１、オフドットが０として、入力画像が格納してある場所とは別のワークメモリに保存される。この際に、例えばＮバンド目の最初のＯｖｅｒｌａｐＡｒｅａライン数は重複領域であり、この領域の２値化処理は、既にＮ−１バンド目で実施済みである。従って、Ｎ＝０以外であれば、Ｎバンド目の最初のＯｖｅｒｌａｐＡｒｅａの２値化処理をスキップし、Ｎ−１バンド目の２値化結果を再利用するようにしてもよい。このようにすることで、処理の高速化を図ることができる。
【０２２０】
次に、Ｓ３４０２において、上記２値化結果に対して、上記実施例で説明した境界線追跡処理を施し、縮小バンド画像中から赤丸領域を抽出する。
【０２２１】
次に、上記赤丸領域に対してＳ３４０４の特徴量判定処理を行う前に、Ｓ３４０３において、前記複数の赤丸領域のうち、特徴量判定処理を行う領域を選択するための候補領域選択処理を行う。以下では、この候補領域選択処理について説明を行う。
【０２２２】
図３６は、Ｎ−１、Ｎ、Ｎ＋１バンド目において、ＯｖｅｒｌａｐＡｒｅａ内に４つの赤目候補領域が存在する場合を示している。例えば、候補Ｃについて注目すると、候補Ｃの赤丸領域はＮバンド目とＮ＋１バンド目双方に存在することになるが、両者について特徴量判定を行うと、オーバーラップ領域に存在する赤丸領域に対しては、常に２倍の処理量が必要となり、効率的ではない。そこで、候補Ｃの場合、どちらのバンドで判定を行うべきか考えると、Ｎ＋１バンド目では候補Ｃに対して設定した周辺領域の上部が欠けているのに対し、Ｎバンド目では、周辺領域全てを参照することが可能である。
【０２２３】
このことから、候補Ｃについては、Ｎバンド目での判定結果の方が信頼性が高いと言える。更に一般化すれば、ＯｖｅｒｌａｐＡｒｅａ内に存在する赤丸領域の特徴量判定は、周辺領域をより広く参照できるバンドにおいて処理すべきである。従って、本実施例の候補領域選択処理Ｓ３４０３では、ＯｖｅｒｌａｐＡｒｅａに存在する赤丸領域について、図３７に示すように、候補領域上端からＮ＋１バンド目上端までの距離ＵＰＬｅｎと、候補領域下端からＮバンド目下端までの距離ＢＴＬｅｎを算出し、ＵＰＬｅｎ＜ＢＴＬｅｎを満たすならば、その候補領域はＮバンド目で特徴量判定処理を行うようにする。同様に、図３６の候補ＤについてＵＰＬｅｎ、ＢＴＬｅｎを算出すると、その関係は、ＵＰＬｅｎ＞ＢＴＬｅｎとなるため、候補ＤはＮ＋１バンド目で処理することになる。
【０２２４】
また、上記関係を候補Ａ、候補Ｂについて適用すると、それぞれ、Ｎ−１バンド目、Ｎバンド目で特徴量判定を行うべきであると判断できる。
【０２２５】
以上説明したように、本実施例における候補領域選択処理Ｓ３４０３では、ＯｖｅｒｌａｐＡｒｅａ内に存在する赤目候補領域の上部、および下部のマージンを算出し、その関係に応じて、現在処理しているバンドで特徴量判定を行うか否かを判断することにより、ＯｖｅｒｌａｐＡｒｅａ内における無駄な特徴量判定処理を除去することができる。
【０２２６】
処理は図３４のＳ３４０４に戻り、上記候補領域選択処理で選択された領域に対して、第１の実施例で説明したような特徴量判定処理を行う。その結果、赤目領域と判断できた領域については、Ｓ３４０６において候補領域リストに追加するが、その際に、Ｓ３４０５において算出した、後の補正処理を行う際に必要となるパラメータも同様にリストに追加する。前記パラメータとは、具体的には式２１および式２２で必要となる補正対象領域内での最大輝度値と最大赤色評価量である。
【０２２７】
図３５は、本実施例における赤目候補リストの例を示している。同図では、全部で４つの赤目候補が検出できた場合を示しており、それぞれにインデックス値（０〜３）が割り振られている。また、それぞれの候補領域について、領域の左上、右下座標および、Ｓ３４０５において算出した赤目候補領域内における最大輝度値と最大赤色評価量値が格納されている。
【０２２８】
以上が、Ｎバンド目における検出処理の説明である。図３３に示すように、この処理をバンドが終了するまで実行する（Ｓ３３０４）。
【０２２９】
以下では、本実施例における補正処理について説明する。図３８は、本実施例における補正処理のフローチャートである。同図ではまず、Ｓ３８０１において、候補領域の更新処理を行う。本実施例では、赤目の検出・補正処理をデジタルカメラやプリンタ内部の組み込み処理として実行することを想定しているため、上述したように、検出処理は入力画像を縮小した状態で行った。しかし、これらの装置において、補正を行う対象の画像は、デジタルカメラであれば縮小前のオリジナル解像度の画像であり、プリンタであれば、縮小前の入力画像をさらに印字解像度に拡大した画像データとなる可能性がある。従って、縮小画像上で検出した位置情報を、補正対象画像と縮小画像の解像度の比率に応じて変倍する必要がある。Ｓ３８０１において、変倍処理は、赤目候補リストに格納されている候補位置が例えば図３９に示すような
2007004455.tif 000026
で表現されており、かつ、縮小画像の縦、横の画素数がそれぞれＷ０，Ｈ０であり、補正対象画像の縦横サイズがＷ１，Ｈ１であった場合、次のように算出することができる。
【０２３０】
2007004455.tif 000027
【０２３１】
Ｓ３８０１において、補正画像上での候補領域の座標位置が決定すると、第１の実施例と同様に、候補領域周辺に楕円領域を設定し、同領域内に含まれる画素を補正対象画素として補正処理を行う。
【０２３２】
再び図３８に戻り、Ｓ３８０２においてパラメータＲの初期化を行う。
【０２３３】
次にＳ３８０３において、Ｒライン目の補正対象画像を取得する。本実施例においては、補正対象画像をライン単位で補正してゆく処理について説明するが、本発明はこれに限定されるものではなく、所定のラインで構成されるバンド画像単位に補正処理を行っても構わない。補正対象画像の取得は、例えば図１のＨＤＤやメモリカードなどの２次記憶装置１０５に、ＪＰＥＧ等の圧縮形式で保存されている画像データを、所望のライン数だけ伸張し、そのうちの１ラインを得ることで実現できる。
【０２３４】
次に、Ｓ３８０４において、取得したＲライン目が、補正対象画素を含んでいるか否かの判定を行う。本実施例においても、補正処理は、Ｓ３８０１で更新された矩形領域周辺に設定した楕円領域を対象領域として処理される。そのため、Ｓ３８０４では、取得したＲライン目が楕円領域の上端から下端の間に位置するか否かを、赤目候補リストに格納されている全ての候補領域について判定する。例えば、図４０のような場合、注目しているＲライン目はある赤目候補領域周辺に設定した楕円領域に含まれるため、処理はＳ３８０５に進み、Ｒライン目でかつ楕円領域内に含まれる画素について、第１の実施例で説明したような補正処理が実行される。この補正処理の際に必要となる最大輝度値と最大赤色評価量は、Ｓ３４０５において求め、候補リストに格納されている値を使用することになる。
【０２３５】
以上のような処理（Ｓ３８０３〜Ｓ３８０５）をＲが最終ラインとなるまで続けることにより、画像全体に対して補正処理を実行することができる。
【０２３６】
補正処理が実行された画像データは、２次記憶装置１０５に保存されたり、あるいは、色変換、疑似階調処理が施された後、プリンタエンジンにより印字物上に出力されることになる。
【０２３７】
以上が第５の実施例の説明である。
【０２３８】
（その他の実施例）
本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用しても良い。例えば、赤目の検出部は撮像装置に搭載されており、補正部のみが印刷装置に搭載されていても構わない。
【０２３９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０２４２】
【図１】本発明を実行するためのハードウェア環境の説明図
【図２】第１の実施例における処理のブロック図
【図３】赤目画像の概念図
【図４】第１の実施例における２値化閾値を算出するためのウィンドウの設定方法を示す図
【図５】２値化処理の高速化方法の説明図
【図６】適応的２値化処理結果の説明図
【図７】境界線追跡法の説明図
【図８】境界線追跡法の説明図
【図９】追跡方向の説明図
【図１０】候補領域の定義を説明するための図
【図１１】方向ヒストグラムの例を示す図
【図１２】境界線追跡処理後の判定処理のフロー
【図１３】周辺領域の定義を示す図
【図１４】候補領域が画像境界付近に存在した場合の周辺領域の説明図
【図１５】中央ブロック内において赤色評価量を算出する領域を説明するための図
【図１６】外部領域と中央領域の説明図
【図１７】補正処理のフロー
【図１８】補正対象領域の説明図
【図１９】補正量の算出方法を説明するための図
【図２０】第２の実施例における不具合の説明図
【図２１】第２の実施例における適応的２値化方法の説明図
【図２２】第３の実施例における不具合の説明図
【図２３】第３の実施例における処理のブロック図
【図２４】中心間距離の説明図
【図２５】第３の実施例における処理のフロー
【図２６】第３の実施例における中心間距離とサイズの関係図
【図２７】第４の実施例における不具合の説明図
【図２８】第４の実施例における処理のブロック図
【図２９】第４の実施例における処理のフロー
【図３０】第４の実施例における候補リストの例を示す図
【図３１】結合判定の説明図
【図３２】第５の実施例におけるバンド分割処理の説明図
【図３３】第５の実施例における検出処理の概要のフロー
【図３４】第５の実施例における検出処理のフロー
【図３５】第５の実施例における候補リストの例を示す図
【図３６】第５の実施例における高速化方法の説明図
【図３７】第５の実施例における高速化方法の説明図
【図３８】第５の実施例における補正処理のフロー
【図３９】補正領域の座標の定義を示す図
【図４０】第５の実施例における補正処理の説明図
【符号の説明】
【０２４３】
１００  コンピュータ
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  表示装置
１０５  ２次記憶装置
１０６  ポインティングデバイス
１０７  キーボード
１０８  外部インターフェース
１０９  システムバス
１１０  プリンタ
２０１、２３０１、２８０１  入力端子
２０２、２３０２、２８０２  赤領域抽出部
２０３、２３０３、２８０３  赤丸領域抽出部
２０４、２３０４、２８０５  特徴量判定部
２０５、２３０６、２８０７  補正部
２０６、２３０７、２８０８  出力端子
２３０５、２８０６  候補領域評価部
２８０４  候補領域結合部
【図１】
2007004455.tif 000028
【図２】
2007004455.tif 000029
【図３】
2007004455.tif 000030
【図４】
2007004455.tif 000031
【図５】
2007004455.tif 000032
【図６】
2007004455.tif 000033
【図７】
2007004455.tif 000034
【図８】
2007004455.tif 000035
【図９】
2007004455.tif 000036
【図１０】
2007004455.tif 000037
【図１１】
2007004455.tif 000038
【図１２】
2007004455.tif 000039
【図１３】
2007004455.tif 000040
【図１４】
2007004455.tif 000041
【図１５】
2007004455.tif 000042
【図１６】
2007004455.tif 000043
【図１７】
2007004455.tif 000044
【図１８】
2007004455.tif 000045
【図１９】
2007004455.tif 000046
【図２０】
2007004455.tif 000047
【図２１】
2007004455.tif 000048
【図２２】
2007004455.tif 000049
【図２３】
2007004455.tif 000050
【図２４】
2007004455.tif 000051
【図２５】
2007004455.tif 000052
【図２６】
2007004455.tif 000053
【図２７】
2007004455.tif 000054
【図２８】
2007004455.tif 000055
【図２９】
2007004455.tif 000056
【図３０】
2007004455.tif 000057
【図３１】
2007004455.tif 000058
【図３２】
2007004455.tif 000059
【図３３】
2007004455.tif 000060
【図３４】
2007004455.tif 000061
【図３５】
2007004455.tif 000062
【図３６】
2007004455.tif 000063
【図３７】
2007004455.tif 000064
【図３８】
2007004455.tif 000065
【図３９】
2007004455.tif 000066
【図４０】
2007004455.tif 000067