(57)【要約】【課題】赤目検出結果の正誤を確認し、誤検出を確実に防ぐ。【解決手段】画像Ｓの全領域を探索することにより赤目と推定し得る赤目候補を検出し（赤目候補検出処理１）、検出された赤目候補の周辺を探索することにより、その赤目候補を含む顔を検出し（顔検出処理２）、検出された顔に含まれる赤目候補の近傍に探索範囲を限定して、赤目候補を検出する際により高い精度で再度探索を行い、赤目候補から赤目を推定し（赤目推定処理３）、赤目として推定された赤目候補が目頭または目尻であるか否かを判別することによって赤目推定処理３の推定結果の正誤を確認する。【選択図】図１
2006285956.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出し、
検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出し、
検出された顔に含まれる赤目候補を赤目として推定する赤目検出方法において、
赤目として推定された前記赤目候補が目頭または目尻であるか否かをさらに判別することによって前記赤目の推定結果の正誤を確認することを特徴とする赤目検出方法。
【請求項２】
検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定することを特徴とする請求項１記載の赤目検出方法。
【請求項３】
前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第１の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出し、
検出された前記赤目候補の前記スコアが前記第１の閾値より大きい第２の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認することを特徴とする請求項１または２記載の赤目検出方法。
【請求項４】
検出された前記顔の領域において、黒目の検出を行い、
該黒目の検出により黒目が検出された場合に、赤目として推定された前記赤目候補が目頭または目尻であると判別することを特徴とする請求項１、２または３記載の赤目検出方法。
【請求項５】
黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うことを特徴とする請求項４記載の赤目検出方法。
【請求項６】
赤目として推定された２つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得し、
前記プロファイルを用いて前記判別を行うことを特徴とする請求項１、２または３記載の赤目検出方法。
【請求項７】
前記プロファイルが、前記２つの赤目候補が真の赤目である場合のプロファイル、前記２つの赤目候補が目頭である場合のプロファイルおよび前記２つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うことを特徴とする請求項６記載の赤目検出方法。
【請求項８】
少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出する赤目候補検出手段と、
該赤目候補検出手段により検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出する顔検出手段と、
該顔検出手段により検出された顔に含まれる赤目候補を赤目として推定する赤目推定手段とを備えてなる赤目検出装置であって、
前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であるか否かを判別することによって、該赤目の推定結果の正誤を確認する正誤確認手段をさらに備えたことを特徴とする赤目検出装置。
【請求項９】
前記赤目推定手段が、前記顔検出手段により検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定するものであることを特徴とする請求項８記載の赤目検出装置。
【請求項１０】
前記赤目候補検出手段が、前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第１の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出するものであり、
前記正誤確認手段が、検出された前記赤目候補の前記スコアが前記第１の閾値より大きい第２の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認するものであることを特徴とする請求項８または９記載の赤目検出装置。
【請求項１１】
前記正誤確認手段が、前記顔検出手段により検出された前記顔の領域において、黒目の検出を行う黒目検出手段を備え、
該黒目検出手段により黒目が検出された場合に、前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であると判別するものであることを特徴とする請求項８、９または１０記載の赤目検出装置。
【請求項１２】
前記黒目検出手段が、黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うものであることを特徴とする請求項１１記載の赤目検出装置。
【請求項１３】
前記正誤確認手段が、前記赤目推定手段により赤目として推定された２つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得するプロファイル取得手段を備え、
該プロファイル取得手段により取得された前記プロファイルを用いて、前記判別を行うものであることを特徴とする請求項８、９または１０記載の赤目検出装置。
【請求項１４】
前記正誤確認手段が、前記プロファイルが、前記２つの赤目候補が真の赤目である場合のプロファイル、前記２つの赤目候補が目頭である場合のプロファイルおよび前記２つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うものであることを特徴とする請求項１３記載の赤目検出装置。
【請求項１５】
少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出する処理と、
検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出する処理と、
検出された顔に含まれる赤目候補を赤目として推定する処理とをコンピュータに実行させるプログラムであって、
赤目として推定された前記赤目候補が目頭または目尻であるか否かを判別することによって前記赤目の推定結果の正誤を確認する処理をさらにコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、写真画像の中から赤目現象が発生している目の位置を検出する赤目検出方法および装置並びにプログラムに関するものである。
【背景技術】
【０００２】
夜間あるいは暗い場所で人物や動物をストロボ撮影すると、瞳孔（あるいは瞳孔の一部）が、赤色あるいは金色に撮影されてしまうことがある。このため、赤く、あるいは銀色に撮影されてしまった瞳孔（以下、銀色の場合も含めて「赤目」と称する）を、デジタル画像処理により本来の瞳孔の色に補正する方法が種々提案されている。
【０００３】
例えば、特許文献１には、オペレータが指定した領域の中から、瞳孔の色、位置、大きさに基づいて赤目を自動認識する方法および装置が開示されている。また、特許文献２にも、オペレータが指定した領域について画素ごとに所定の特徴量を計算し、瞳孔部分の特徴を最も有する部分を補正対象として選択する方法が開示されている。但し、瞳孔部分の特徴のみに基づく認識処理では、赤い電飾など局所的に赤みを持つ対象を赤目と区別することは難しい。このため、オペレータの操作を介さず、すべて自動で処理することは困難である。
【０００４】
これに対し、特許文献３に開示されている方法では、先に顔を検出し、顔として検出された領域を対象に赤目の検出を行う。この方法では、赤い電飾などが赤目として誤検出されることはないが、顔を誤検出してしまうと赤目も正確には検出できないため、顔検出の精度が問題となる。
【特許文献１】特開２０００−１３６８０号公報
【特許文献２】特開２００１−１４８７８０号公報
【特許文献３】特開２０００−１２５３２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
顔の検出方法として最も簡単なのは、肌色で楕円形状の領域を顔と推定して検出する方法である。但し、人の顔の色は必ずしも一定ではないため、この方法では顔とみなす肌色の幅を、ある程度広く定義する必要がある。しかし、色と形状のみで判定する方法で色の範囲を広めに設定すれば、誤検出が発生する可能性は高くなる。このため、顔判定の精度を高めるためには、色と形状のみならず、顔のより細かい特徴を利用して顔か否かを判定することが好ましい。しかし、顔の特徴をきめ細かく抽出しようとすれば、顔検出処理に要する時間は大幅に増加する。
【０００６】
すなわち、特許文献３の方法は、高い精度で赤目を検出できるものの、処理時間に対する配慮がなされておらず、処理能力が比較的低い装置（例えば安価なデジタルカメラなど）に赤目検出機能を搭載する場合、実用に耐え得る装置を実現することができない。
【０００７】
少ない計算量で、短時間に精度良く赤目を検出するために、最初に比較的緩い条件で赤目候補を検出しておき、検出された赤目候補の近傍において顔を検出する。そして、検出された顔領域において、赤目候補を検出する際より厳しい条件で赤目の判定を行うことによって赤目を確定する方法が考えられる。この方法によれば、まず赤目候補を検出して、その近傍の領域において顔の検出を行っているので、短時間かつ精度良く顔を検出することができる。そして、検出した顔領域において赤目候補を検出する際より厳しい条件で赤目の判定を行っているので、赤目を効率良く検出することができる。
【０００８】
赤目検出の目的は、検出された赤目を瞳孔の元の色に補正することにあるため、この赤目検出結果の正誤、すなわち検出された赤目は真の赤目なのか否かは補正後の画像のイメージを大きく左右する。検出された赤目が真の赤目なのか否かをオペレータにより確認する方法が考えられるが、それでは時間がかかり、オペレータの負担を増やしてしまうため、検出結果の正誤の確認が自動的にできるようにすることが希望されている。
【０００９】
赤目検出において誤検出となる原因として、白目が赤くなっている場合がある。すなわち、本来白くあるべき目頭または目尻が赤くなっている場合があり、その部分を赤目として誤検出してしまうと、補正により白目の部分が黒くされ、目の全体が黒くされてしまうことになり、補正後の画像を赤目以上に不自然にしてしまうことになる。すなわち、目を含む領域において、図３１に示すように、人によって目頭または目尻の内側の赤い部位（図中Ａ部位とＢ部位）はその大きさが瞳孔に匹敵する大きさになる場合があり、赤目の誤検出の最大きな原因になっている。
【００１０】
本発明は、上記事情に鑑み、赤目の誤検出を防ぐことができる赤目検出方法および装置並にそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明の赤目検出方法は、少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出し、
検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出し、
検出された顔に含まれる赤目候補を赤目として推定する赤目検出方法において、
赤目として推定された前記赤目候補が目頭または目尻であるか否かをさらに判別することによって前記赤目の推定結果の正誤を確認することを特徴とするものである。
【００１２】
本発明の赤目検出方法において、検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定するようにしてもよい。
【００１３】
また、本発明の赤目検出方法において、前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第１の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出し、
検出された前記赤目候補の前記スコアが前記第１の閾値より大きい第２の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認するようにしてもよい。
【００１４】
ここで、前記判別を行うのに際して、検出された前記顔の領域において、黒目の検出を行い、該黒目の検出により黒目が検出された場合に、赤目として推定された前記赤目候補が目頭または目尻であると判別するようにすることができる。
【００１５】
この場合において、黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うようにしてもよい。
【００１６】
また、前記判別を行うに際して、赤目として推定された２つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得し、前記プロファイルを用いて前記判別を行うようにすることができる。
【００１７】
この場合において、前記プロファイルが、前記２つの赤目候補が真の赤目である場合のプロファイル、前記２つの赤目候補が目頭である場合のプロファイルおよび前記２つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うようにしてもよい。
【００１８】
本発明の赤目検出装置は、少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出する赤目候補検出手段と、
該赤目候補検出手段により検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出する顔検出手段と、
該顔検出手段により検出された顔に含まれる赤目候補を赤目として推定する赤目推定手段とを備えてなる赤目検出装置であって、
前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であるか否かを判別することによって、該赤目の推定結果の正誤を確認する正誤確認手段をさらに備えたことを特徴とするものである。
【００１９】
本発明の赤目検出装置において、前記赤目推定手段は、前記顔検出手段により検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定するものであってもよい。
【００２０】
また、本発明の赤目検出装置において、前記赤目候補検出手段は、前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第１の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出するものであり、
前記正誤確認手段は、検出された前記赤目候補の前記スコアが前記第１の閾値より大きい第２の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認するものであってもよい。
【００２１】
ここで、前記顔検出手段により検出された前記顔の領域において、黒目の検出を行う黒目検出手段を備え、該黒目検出手段により黒目が検出された場合に、前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であると判別するものであるように前記正誤確認手段を構成することができる。
【００２２】
この場合において、前記黒目検出手段は、黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うものであってもよい。
【００２３】
また、前記赤目推定手段により赤目として推定された２つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得するプロファイル取得手段を備え、該プロファイル取得手段により取得された前記プロファイルを用いて、前記判別を行うものであるように前記正誤確認手段を構成してもよい。
【００２４】
この場合において、前記正誤確認手段は、前記プロファイルが、前記２つの赤目候補が真の赤目である場合のプロファイル、前記２つの赤目候補が目頭である場合のプロファイルおよび前記２つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うものであってもよい。
【００２５】
本発明の赤目検出方法を、コンピュータに実行させるプログラムとして提供するようにしてもよい。
【発明の効果】
【００２６】
本発明によれば、赤目として推定された赤目候補が目頭または目尻であるか否かをさらに判別することによって赤目の推定結果の正誤を確認することができ、誤検出を防止することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００２８】
＜概要＞
はじめに、図１および図２を参照して、赤目を検出する手順の概要を説明する。図１は赤目検出の手順を示す図である。図に示すように、本実施の形態では、赤目候補検出処理１、顔検出処理２および赤目推定処理３の３段階の処理を実行することにより、画像Ｓに含まれる赤目を推定する。そして、推定された赤目が真の赤目であるか否かを確認する正誤確認処理４をさらに実行して誤検出された赤目を排除し、真の赤目が検出されたか否かを示す情報と、検出された場合にその位置情報とを検出結果Ｋとして出力する。
【００２９】
図２は、画像Ｓの一例であり、目が赤目７ａ，７ｂとして撮影されてしまった人物と、赤い電飾７ｃが写った写真画像を表している。以下、図２の画像を処理する場合を例示しながら、赤目候補検出処理１、顔検出処理２および赤目推定処理３、正誤確認処理４の処理について、概要を説明する。
【００３０】
赤目候補検出処理１は、画像Ｓの中から赤目と推定し得る部分（赤目候補）を探索し、赤目候補を発見した場合に、その赤目候補の位置座標などを所定の記憶媒体に記憶する処理である。赤目候補検出処理１では、大きさも向きも不明の赤目を画像Ｓ全体の中から検出しなければならないため、検出の精度よりも処理効率が優先される。本実施の形態では、赤目候補検出処理１では、瞳孔の特徴のみに基づいて赤目か否かを判定する。このため、図２に例示した画像を処理した場合、赤目７ａ、７ｂのほかに、背景の電飾７ｃなども、赤目候補として検出されてしまう可能性がある。
【００３１】
顔検出処理２は、画像Ｓの中から、顔と推定される部分を探索する処理である。但し、顔の探索は、赤目候補検出処理１において検出された各赤目候補の周辺領域においてのみ行う。赤目候補が真の赤目である場合、その周辺領域には必ず顔が存在するはずである。顔検出処理２では、顔らしきものを発見できた場合には、その顔の大きさ、向きなどの情報を、顔探索の基準となった赤目候補と対応づけて記憶媒体に記憶する。一方、顔らしきものを発見できなかった場合には、顔探索の基準となった赤目候補に関する情報を、記憶媒体から削除する。
【００３２】
図２に例示した画像を処理した場合、電飾７ｃの周辺からは顔らしきものは検出されないため、電飾７ｃの情報は、記憶媒体から削除される。赤目７ａおよび７ｂについては、周辺領域から顔６が検出される。したがって、赤目７ａおよび７ｂに関する情報は顔６の情報と対応付けられ、あらためて記憶媒体に記憶される。
【００３３】
赤目推定処理３は、顔検出処理２において顔と対応付けられて記憶された赤目候補に対して夫々の赤目候補が真の赤目として推定できるか否かをあらためて判定するとともに、赤目として推定できる場合には、その正確な位置を確定する処理である。
【００３４】
赤目推定処理３では、顔検出処理２の結果を処理に利用する。具体的には、顔の情報を利用して赤目の大きさや向きを推定して赤目とみなす対象の範囲を絞り込む。さらには、顔の情報に基づいて赤目の位置を推定し、その周辺の限られた範囲を対象として赤目候補検出処理１よりも高精度な検出処理を実行する。
【００３５】
赤目推定処理３では、赤目候補が真の赤目として推定できないと判断した場合には、その赤目候補に関する情報を記憶媒体から削除する。一方、赤目候補が真の赤目として推定できると判断した場合には、その正確な位置を求める。
【００３６】
また、赤目推定処理３では、顔の情報を利用して赤目候補の位置を評価し、赤目候補が目の位置としては不適切な位置にある場合には、その赤目候補の情報を記憶媒体から削除する。
【００３７】
例えば、人物の額に日の丸印が赤くペイントされていた場合には、赤目候補検出処理１では、その印が赤目候補として検出され、顔検出処理２では、その印の周辺から顔が検出される。しかし、その後の赤目推定処理３では、その赤目候補が額、すなわち目の位置としては不適切な位置にあるとの判断がなされるので、その赤目候補の情報は記憶媒体から削除される。
【００３８】
図２に例示した画像の場合、赤目推定処理３により、７ａおよび７ｂは赤目として推定され、その正確な位置が確定され、正誤確認処理４に供される。
【００３９】
上述した３つの処理によって、目のあるべき部位に位置し、赤目として推定できる赤目候補が抽出される。
【００４０】
正誤確認処理４は、赤目推定処理３により赤目として推定された赤目が真の赤目か否かをさらに確認する処理であり、具体的には、赤目推定処理３により赤目として推定された赤目が目頭または目尻である否かを判別することによって、赤目推定処理３の正誤を確認する。正誤確認処理４は、さらに、赤目推定処理３の推定結果が正しければ、赤目が検出されたことを示す結果と、赤目推定処理３により得られた赤目の位置を示す情報とを検出結果Ｋとして出力する一方、赤目推定処理３の推定結果が誤りであれば、赤目が無いことを示す結果を検出結果Ｋとして出力する。
【００４１】
上記手順により赤目を検出する装置は、例えば、メモリなどの記憶媒体と、プログラムに規定された処理を実行し得る演算手段と、外部からのデータ入出力を制御する入出力インタフェースとを備えた装置に、上記各処理を実行させるプログラムを実装することにより実現することができる。
【００４２】
あるいは、赤目候補検出処理１、顔検出処理２および赤目推定処理３、正誤確認処理を実行するように設計されたメモリ・ロジック混載型デバイスを所定の装置に組み込むことによっても実現できる。
【００４３】
すなわち、汎用のコンピュータはもちろんのこと、デジタル写真プリンタやデジタルカメラなど特定の用途向けに作られた装置であっても、プログラムや半導体デバイスを搭載することが可能な装置はすべて、上記手順により赤目を検出する装置として動作させることができる。
【００４４】
＜赤目候補検出処理１＞
次に、赤目候補検出処理１について、詳細に説明する。赤目候補検出処理１では、赤目検出装置は、まず、取得した画像の色空間を変換する。具体的には、画像を構成する各画素のＲ(赤)，Ｇ（緑），Ｂ(青)の値を、所定の変換式により、Ｙ（輝度）、Ｃｂ（緑と青の色差）、Ｃｒ（緑と赤の色差）、Ｃｒ＊（肌色と赤の色差）の値に置き換えることにより、画像の表色系を変換する。
【００４５】
Ｙ，Ｃｂ，Ｃｒは、一般にＪＰＥＧ画像などで利用されている座標系であり、Ｃｒ＊は、ＲＧＢ空間において赤色と肌色とをもっともよく分離する方向を表す座標軸である。この座標軸の方向は、赤色のサンプルと肌色のサンプルに線形判別分析法を適用して予め決定しておく。このような座標軸を定義することにより、後に行う判定の精度を、通常のＹＣｂＣｒ空間で判定を行う場合よりも高めることができる。
【００４６】
図３は、色空間変換された後の画像Ｓの一部を拡大して表した図である。赤目検出装置は、次に、図に示すように画像Ｓ上に判定対象範囲８を設定し、その判定対象範囲８内の画像が赤目の特徴をどの程度備えているかを調べる。本実施の形態では、判定対象範囲８の大きさは１０画素×１０画素である。
【００４７】
判定対象範囲８内の画像が赤目の特徴をどの程度備えているかは、次のような方法で調べる。まず、予め赤目らしさを表す特徴量と、特徴量の値に応じたスコアと、所定の閾値を定義する。例えば、画素の値が赤色を表す値であることは、その画素の周辺に赤目があると判断する１つの根拠となり得る。よって、画素の値は赤目らしさを表す特徴量となり得る。ここでは、その画素の値を特徴量と定義した場合を例にあげて説明する。
【００４８】
スコアは、どの程度赤目らしいかを表す指標となるものである。上記例の場合であれば、誰の目にも赤色とわかる色を表す画素値には高いスコアが、また、一応赤色ではあるが見る者によっては茶色と判断するかもしれない色を表す画素値には低いスコアがつくように、特徴量とスコアとの対応付けを定義する。一方、明らかに赤色ではない色（例えば黄色）を表す画素値にはゼロまたはマイナスのスコアがつくように、特徴量とスコアとの対応付けを定義する。図４に、特徴量とスコアの対応関係の定義を表すスコアテーブルの例を示す。
【００４９】
判定対象範囲の画像が赤目を表しているか否かは、まず判定対象範囲内の各画素について特徴量を算出し、続いてその特徴量を図４に例示した定義に基づいてスコアに換算し、判定対象範囲内の全画素のスコアを集計する。そして、スコアの集計値が所定の閾値以上であれば判定対象範囲の画像が表す対象は赤目であると判定し、閾値よりも小さければ赤目ではないと判定する。
【００５０】
以上の説明から明らかであるように、この方法では、判定の精度は、特徴量、スコアテーブルおよび閾値の定義のしかたに大きく依存する。このため、本実施の形態では、予め赤目検出装置に、赤目を表すサンプル画像と赤目以外の対象を表すサンプル画像（いずれも１０画素×１０画素）を用いた学習を行わせ、学習により習得した適切な特徴量、スコアテーブルおよび閾値を判定に用いることとしている。
【００５１】
学習の手法は、マシーンラーニング技術として知られているニューラルネットワークの手法あるいはブースティングの手法など公知のあらゆる手法を用いることができ、特に限定されない。但し、赤目候補検出処理で検出漏れが発生してしまうと、以下の処理ではその赤目を再検出することはできないので、学習用サンプルの中には赤目とわかりにくい画像も取り入れる必要がある。
【００５２】
例えば、図５（ａ）に示すような標準的なサンプル画像のほか、図５（ｂ）に示すように標準的なサンプル画像とは瞳孔の大きさが異なる画像、図５（ｃ）に示すように瞳孔の中心位置がずれた画像、図５（ｄ）、（ｅ）に示すように、瞳孔の一部分のみが赤くなった不完全な赤目の画像なども学習用サンプルに取り入れる。
【００５３】
これらの学習用サンプルを使って、複数の特徴量の候補の中から有効なものを選出する。そして、選出した特徴量と、生成したスコアテーブルを用いて、赤目を表すサンプル画像に対して上記のような判定処理を繰り返し、判定において所定の正答率を維持できるように閾値を決定する。
【００５４】
この際、本実施の形態では、個々の判定対象範囲について、Ｎ種類（但しＮは２以上の整数）の特徴量、スコアテーブル、閾値を使用してＮ種類の判定を行い、すべての判定において赤目と判定された場合にのみ、その判定対象範囲の座標を赤目候補リストに登録することとしている。すなわち、複数種類の特徴量、スコアテーブル、閾値を組み合わせることにより判定の精度を高め、信頼性の高い判定結果のみがリストに登録されるようにしている。なお、ここで、赤目候補リストへの登録とは、記憶媒体に位置座標データその他の情報を記憶せしめることを意味する。
【００５５】
図６は、Ｎ種類の判定処理の流れを表す図である。赤目検出装置は、まず、図に示すように、設定された判定対象範囲について、１種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照して１回目の判定を行う。特徴量算出パラメータは、特徴量の算出式を定義する係数などのパラメータである。
【００５６】
１回目の赤目判定処理で赤目と判定した場合には、続いて、同じ判定対象範囲について、２種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照して２回目の判定を行う。１回目の赤目判定処理で赤目ではないと判定した場合には、その時点でその判定対象範囲が表す画像は赤目ではないと判断し、次の判定対象範囲を設定する。
【００５７】
以降も、（ｉ−１）回目の判定（２≦ｉ≦Ｎ）で赤目と判定した場合には、ｉ種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照してｉ回目の判定を行い、（ｉ−１）回目の判定（２≦ｉ≦Ｎ）で赤目ではないと判定した場合には、その時点でその判定対象範囲についての判定処理を終了する。
【００５８】
なお、各回の判定では、前述のように、まず各画素について特徴量が算出され（Ｓ１０１）、続いてその特徴量がスコアに換算され（Ｓ１０２）、判定対象範囲内の全画素のスコアが集計される（Ｓ１０３）。そして、スコアの集計値が所定の閾値以上であれば判定対象範囲の画像が表す対象は赤目であると判定され、閾値よりも小さければ赤目ではないと判定される（Ｓ１０４）。
【００５９】
赤目検出装置は、Ｎ種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照したＮ回目の判定において赤目と判定した場合のみ、その判定対象範囲の位置座標を赤目候補リストに登録する。
【００６０】
以上に説明した判定処理は、画像Ｓに含まれる赤い部分が１０画素×１０画素の範囲に収まる大きさであることを前提としているが、実際には、図７（ａ）に示すように画像Ｓに含まれる赤目７ｄが１０画素×１０画素の判定対象範囲８よりも大きい場合もある。このため、本実施の形態では、赤目検出装置に入力された画像Ｓに対して上記判定処理を行うのみならず、画像Ｓの解像度を落とすことにより生成した、より低解像度の画像１３に対しても、同じ判定処理を行う。
【００６１】
図７（ｂ）に示すように、画像の解像度を落とせば赤目７ｄは１０画素×１０画素の判定対象範囲８内に納まり、画像Ｓに対する判定と同じ特徴量などを用いて判定を行うことが可能になる。解像度の異なる画像は、赤目検出装置に画像Ｓが入力された時点で生成してもよいし、赤目候補検出処理の実行中に必要に応じて画像Ｓの解像度変換を行って生成してもよい。
【００６２】
なお、判定対象範囲８を細かく（例えば１画素ずつ）ずらして判定を行った場合、図８に示すように、異なる判定対象範囲９、１０を対象とする判定処理において同じ赤目が重複して検出され、１つの赤目が別個の赤目候補１１および１２としてリストに登録されることがある。また、解像度の異なる画像を対象とした検出処理で、同じ赤目が重複して検出されることもある。
【００６３】
このため、本実施の形態では、解像度が異なるすべての画像について判定対象範囲の走査が終了した時点で、赤目候補リストに登録されている座標情報を確認し、明らかに同じ赤目を表していると思われる複数の座標情報を発見した場合には、１個の座標情報のみを残し、他をリストから削除する。具体的には、前述の集計スコアが最も高かったものを赤目候補として残し、他をリストから削除する。
【００６４】
このようにして整理された後の赤目候補リストは赤目候補検出処理１の処理結果として出力され、後に続く顔検出処理２で利用される。
【００６５】
本実施の形態では、以上に説明した赤目候補検出処理において、検出に用いる画像の解像度の選択の仕方、判定対象範囲の設定の仕方、Ｎ種類の特徴量算出パラメータの使用順などを工夫することにより、検出の精度を落とすことなく、計算量を減らして処理時間を短縮している。以下、赤目候補検出処理の処理効率を高める手法について、さらに説明する。
【００６６】
＜赤目候補検出処理の効率化のための手法＞
以下に説明する赤目候補検出処理の効率化のための手法は、単独で用いてもよいし、組み合わせて用いてもよい。
【００６７】
第１の手法は、Ｎ種類の判定を行う過程で、先に行う判定ほど計算量が少なくなるように、特徴量を定義する方法である。図６を参照して説明したように、本実施の形態では、赤目検出装置は、ｉ回目の判定で赤目ではないと判定した場合、ｉ＋１回目以降の判定処理を行わない。これは早い段階で行われる判定処理ほど、実行される回数が多いということである。よって、実行される回数が多い処理を計算量が少ない処理とすれば、全体の処理効率を高めることができる。
【００６８】
上記説明で例示した特徴量の定義、すなわち画素（ｘ，ｙ）の値を特徴量と定義する方法は、最も計算量が少なくなる例といってよい。
【００６９】
このほか、赤目らしさを表す特徴量のうち少ない計算量で求めることができるものとしては、画素（ｘ，ｙ）の値と画素（ｘ＋ｄｘ，ｙ＋ｄｙ）の値の差分が考えられる。瞳孔の周辺の色は、白（白目）、肌色（瞼）など特定の色であることから、差分の値も赤目らしさを表す特徴量となり得る。同様に、画素（ｘ，ｙ）の値と画素（ｘ＋ｄｘ１，ｙ＋ｄｙ１）の値の差分ｖ１と、画素（ｘ，ｙ）の値と画素（ｘ＋ｄｘ１，ｙ＋ｄｙ１）の値の差分ｖ２の組や、４点以上の画素値の差分の組なども赤目らしさの特徴量となり得る。なお、特徴量の算出に必要なｄｘ、ｄｘ１、ｄｘ２、ｄｙ、ｄｙ１あるいはｄｙ２などの値は、特徴量算出パラメータとして記憶しておく。
【００７０】
上記特徴量よりも多くの計算を必要とする特徴量としては、例えば、画素（ｘ，ｙ）近傍の３×３個の画素（画素（ｘ，ｙ）を含む）の値の平均値が考えられる。また、画素(ｘ，ｙ)を中心とする３×３個の画素の縦方向差分と横方向差分の組み合わせも特徴量となり得る。縦方向差分は図９（ａ）に示すようなフィルタを用いて、３×３個の画素の重み付き平均を計算すればよい。同様に、横方向差分は図９（ｂ）に示すようなフィルタを用いて、３×３個の画素の重み付き平均を計算すればよい。同程度の計算量で求められる特徴量としては、例えば特定方向に並んだ画素の値の積分値や平均値がある。
【００７１】
さらに多くの計算を必要とする特徴量もある。図９（ａ）および図９（ｂ）のフィルタを用いて計算した値からは、画素（ｘ，ｙ）における勾配方向、すなわち画素の値（色濃度）が変化する方向を求めることができるが、その勾配方向は、赤目らしさを表す特徴量となり得る。勾配方向は、所定の方向（例えば画素（ｘ，ｙ）から画素（ｘ＋ｄｘ，ｙ＋ｄｙ）に向かう方向）を基準とした勾配方向の角度θとして算出することができる。また、論文「ＤＲ画像における腫瘤影検出−アイリスフィルタ」，松本一男他，電子情報通信学会論文誌，Ｖｏｌ．Ｊ７５−ＤＩＩ，ｎｏ．３，ｐｐ．６６３−３７０，１９９２には、勾配ベクトルの分布に基づいて画像を評価する手法が示されているが、そのような勾配ベクトルの分布も赤目らしさを表す特徴量となり得る。
【００７２】
第２の手法は、第１の手法と同じ考え方に基づいているが、判定に用いる特徴量を、比較的少ない計算量で算出できる特徴量と、算出に多くの計算を要する特徴量の２つのグループに分類して、段階的に判定を行う。すなわち、画像上で、判定対象範囲を２回走査する。
【００７３】
図１０は、第２の手法を用いた場合の判定処理の流れを示すフローチャートである。フローチャートに示すように、１回目の走査では、まず判定対象範囲を設定し（Ｓ２０１）、その判定対象範囲を対象として計算量が少ない特徴量のみを用いて判定を行い（Ｓ２０２）、画像の全域を走査し終えるまで（Ｓ２０３）、判定対象範囲を１画素ずつずらしながら同様の判定を繰り返す。２回目の走査では、１回目の走査で検出された赤目候補の周辺に、その赤目候補を含むような判定対象範囲を設定し（Ｓ２０４）、計算量が多い特徴量のみを用いて判定を行い（Ｓ２０５）、処理すべき赤目候補がなくなるまで（Ｓ２０７）、同様の判定を繰り返す。
【００７４】
この手法では、計算量が多い特徴量を用いた判定処理は、限られた判定対象範囲でしか実行されない。このため、全体として計算量を低減することができ、処理効率を高めることができる。また、第２の手法によれば、最初の走査により得られた判定結果を先に画面などに出力しておいて、次の詳細な判定を行うことができる。すなわち、第１の手法と第２の手法の計算量は同等であるが、ユーザの目からみた装置の反応という点では、第２の手法を採用するほうが好ましい。
【００７５】
なお、第２の手法で、計算量に基づいて特徴量をグループ分けするときのグループ数は２グループに限定されるものではなく、３以上のグループに分類して段階的に判定の精度を高め（計算量が多くなるようにし）てもよい。また、１つのグループに属する特徴量は１種類でも複数種類でもよい。
【００７６】
第３の手法は、図１１に示すように、判定対象範囲を走査する際に１画素ずつではなく２画素以上ずらす方法である。図は１０画素ずつずらす例を示している。判定対象とする範囲の総数が減れば全体の計算量は低減されるので、処理効率を高めることができる。なお、この手法を用いる場合には、図５（ｃ）に例示したように、赤目の中心がずれたサンプル画像を多く用いて学習を行っておくことが好ましい。
【００７７】
第４の手法は、解像度が低い画像を対象とした判定処理を最初に行う方法である。解像度が低い画像では、高解像度の画像と比べ、判定対象領域は相対的に大きくなるので、画像中の広い範囲をまとめて処理することができる。そこで、先に低解像度の画像で判定を行って、明らかに赤目が含まれていない領域を先に除外しておき、高解像度の画像を用いた判定では除外されなかった一部の領域についてのみ判定を行う。
【００７８】
この手法は、例えば、赤目を有する人物が画像の下半分に配置されており、画像の上半分は真っ暗な夜景であるような画像で、特に有効である。図１２（ａ）および図１２（ｂ）に、そのような画像を例示する。図１２（ａ）は低解像度画像１３、図１２（ｂ）は赤目検出装置に入力された画像Ｓ（高解像度画像）を表す。
【００７９】
図１２（ａ）と図１２（ｂ）から明らかであるように、先に低解像度画像１３を用いて判定対象範囲８の全域走査を行えば、画像の上半分の赤目が含まれていない領域を、少ない計算処理で赤目候補から排除することができる。そこで、まず低解像度画像１３の全域で判定対象範囲８を走査して、赤目候補を検出しておき、解像度の高い画像Ｓの赤目候補の周囲でのみ判定対象範囲８を走査して２回目の候補検出を行えば、判定の回数を大幅に低減することができる。なお、この手法を用いる場合には、図５（ｂ）に例示したように、小さい赤目のサンプル画像を多く用いて学習を行っておくことが好ましい。
【００８０】
次に、第３の手法や第４の手法と組み合わせて用いると効果的な第５の手法について、図１３を参照して説明する。第３の手法や第４の手法では、少ない計算量で赤目候補を早く絞り込むことができるものの、検出される赤目候補の位置の検出精度は高いとは言えない。そこで、絞り込んだ赤目候補の周辺で、再度赤目候補の探索を行う。第４の手法を用いた場合には、赤目候補周辺の赤目候補の探索は、より高解像度の画像を対象に行う。
【００８１】
例えば、第３の手法あるいは第４の手法により画素１４を中心画素とする赤目候補が検出された場合には、画素１４を中心とする判定対象範囲１５を設定し、前回の判定と同じ、または前回の判定よりも精度の高い判定に用いられる特徴量、スコアテーブル、閾値を用いて、判定を行う。さらに、画素１４に隣接する画素１６を中心とする判定対象範囲１７を設定し、同じく精度の高い判定を行う。
【００８２】
同様に、画素１４に隣接する他の７個の画素についても、その画素を中心とする判定対象範囲を設定し、赤目か否かの判定を行う。さらに、画素１４に隣接する８個の画素を取り囲むように配置された１６個の画素について、同様の判定を行ってもよい。それらの判定対象範囲のさらに外側に、画素１４を中心とする判定対象範囲１５と少なくとも一部が重複するような判定対象範囲を複数設定して、同様の判定を行ってもよい。
【００８３】
この赤目候補の周辺領域の探索で別の赤目候補が検出された場合には、その赤目候補の座標（例えば画素１６の座標）をリストに追加する。このように、赤目候補の周辺領域を丁寧に探索することによって、正確な赤目候補の位置を得ることができる。
【００８４】
なお、この場合１つの赤目が重複して検出されることとなるので、探索終了後に前述のような整理を行う。具体的には、赤目候補の周辺領域の探索により赤目候補と判定されリストに追加された座標値のうち、判定の際に求めたスコアが最も高かった判定対象範囲の座標値をリストに残し、他の値はリストから削除する。
【００８５】
なお、前述のように、第５の手法では、範囲を絞り込んだ後に再度赤目候補を探索するときの判定の精度を、前回行った判定の精度より高くすることで、検出される赤目候補の位置精度を高めることができる。以下に説明する第６の手法は、２回目以降の探索における判定精度を前回探索時の判定精度よりも高めたい場合に適した手法である。
【００８６】
第６の手法では、前述の第２の手法と同様、特徴量を、比較的少ない計算量で算出できる特徴量と、算出に多くの計算を要する特徴量の２つのグループに分類しておく。
【００８７】
図１４は、第６の手法を用いた場合の判定処理の流れを示すフローチャートである。フローチャートに示すように、１回目の走査では、まず判定対象範囲を設定し（Ｓ２０１）、その判定対象範囲を対象として計算量が少ない特徴量のみを用いて判定を行い（Ｓ２０２）、画像の全域を走査し終えるまで（Ｓ２０３）、判定対象範囲を第３の手法として説明したように大まかに（２画素以上）ずらしながら同様の判定を繰り返す。あるいは、第４の手法として説明したように、低解像度の画像を対象とした走査および判定を行ってもよい。
【００８８】
２回目の走査では、第５の手法として説明したように１回目の走査で検出された赤目候補の周辺に判定対象範囲を設定し（Ｓ２０４）、判定を行い（Ｓ２０６）、処理すべき赤目候補がなくなるまで（Ｓ２０７）、同様の判定を繰り返す。ステップＳ２０６で判定を行う際には、計算量が少ない特徴量と計算量が多い特徴量の両方を用いる。但し、ステップＳ２０６で計算量が少ない特徴量を用いた判定を行うときは、ステップＳ２０２で計算量が少ない特徴量を用いた判定を行うときよりも閾値を高く設定する。具体的には、ステップＳ２０２では、判定対象範囲の中心からはずれた位置に配置されている赤目も検出できるように低めの閾値を用いる。一方、ステップＳ２０６では、判定対象範囲の中心に位置する赤目しか検出できないような高めの閾値を用いる。これにより、検出される赤目の位置精度を高めることができる。
【００８９】
なお、計算量に基づいて特徴量をグループ分けするときのグループ数は２グループに限定されるものではなく、３以上のグループに分類して段階的に判定の精度を高め（計算量が多くなるようにし）てもよい。また、１つのグループに属する特徴量は１種類でも複数種類でもよい。
【００９０】
本実施の形態の赤目検出装置は、赤目候補の検出を行う際に、必要に応じて上記手法を単独で、あるいは組み合わせて用いるため、効率よく赤目候補を検出することができる。
【００９１】
＜顔検出処理２＞
次に、顔検出処理２について説明する。顔検出処理２では、赤目候補検出処理１と同様に、画像上に判定対象範囲を設定して、その判定対象範囲内の画像が顔の特徴をどの程度備えているかを調べる。予めサンプル画像を用いた学習を行うことにより適切な特徴量やスコアテーブルを選出すること、学習により習得された最適な閾値を設定しておくこと、判定対象範囲において画素ごとに特徴量を算出した後その特徴量をスコアに換算し、集計スコアと閾値の比較により判定すること、画像の解像度を変化させながら探索を行うことなどは、赤目候補検出処理１と同じである。
【００９２】
顔検出処理２では、画像の全領域において顔を探索することはせず、赤目候補検出処理１により検出された赤目候補を基準とし、赤目候補の周辺においてのみ顔の探索を行う。図１５は、赤目候補１８および１９が検出された画像Ｓ上に、判定対象範囲２０を設定した状態を表している。
【００９３】
また、顔検出処理２では、図１５に示すように判定対象範囲２０を赤目候補周辺で平行に走査しながら顔を探索するのみならず、図１６に示すように回転させながらの探索も行う。目（瞳孔）と異なり、顔は向きによって算出される特徴量の値が大きく変わってしまうからである。本実施の形態では、所定の向きで顔を検出できなかった場合には、判定対象範囲を３０度回転させ、回転された判定対象範囲について再度特徴量の算出、特徴量のスコアへの換算、スコアの集計および閾値との比較を行う。
【００９４】
顔検出処理２では、ウェーブレット変換により抽出される特徴量に基づいて、顔か否かの判定を行う。図１７は、顔検出処理の流れを示すフローチャートである。
【００９５】
赤目検出装置は、まず、判定対象範囲内の画像のＹ（輝度）成分に対し、ウェーブレット変換を施す（Ｓ３０１）。これにより、１／４の大きさのサブバンド画像、ＬＬ０画像、ＬＨ０画像、ＨＬ０画像およびＨＨ０画像（以下これらを、０レベルの画像と称する）、１／１６の大きさのサブバンド画像、ＬＬ１画像、ＬＨ１画像、ＨＬ１画像およびＨＨ１画像が生成される（以下、１レベルの画像と称する）、１／６４のサブバンド画像、ＬＬ２画像、ＬＨ２画像、ＨＬ２画像およびＨＨ２画像が生成される（以下、２レベルの画像と称する）。
【００９６】
その後、赤目検出装置は、ウェーブレット変換により得られたサブバンド画像を局所分散を用いて正規化し、量子化する（Ｓ３０２）。
【００９７】
ウェーブレット変換により画像を分解した場合、分解により得られるＬＨ画像は分解前の画像の水平方向のエッジの特徴が強調された画像となる。また、ＨＬ画像は垂直方向のエッジの特徴が強調された画像となる。このため、顔の判定処理では、図１８に示すように、特徴量の算出は、０レベル、１レベルおよび２レベルのＬＨ画像とＨＬ画像を対象として行う（Ｓ３０３）。本実施の形態では、ＬＨ画像、ＨＬ画像のウェーブレット係数の、任意の４点の組み合わせを、顔らしさを現す特徴量と定義する。続いて、赤目候補検出処理１と同様に、算出された特徴量をスコアに換算し（Ｓ３０４）、求められた各画素のスコアを集計し（Ｓ３０５）、集計スコアを閾値と比較する（Ｓ３０５）。赤目検出装置は、集計スコアが閾値以上であれば顔、閾値よりも小さければ顔ではないと判断する。
【００９８】
赤目検出装置は、上記探索により顔を検出できた場合には、探索の基準となった赤目候補と顔とを対応付けて顔リストに登録する。図１５および図１６に示した例では、赤目１８と顔２１の対応付けが顔リストに登録され、さらに赤目１９と顔２１の対応付けが顔リストに登録される。
【００９９】
また、同じ顔が重複して検出された場合には、登録されている情報を整理する。上記例では、顔２１と赤目候補１８および１９の情報が１つにまとめられ、それらの対応付けがあらためて顔リストに登録される。この顔リストは、後述する赤目推定処理３において参照される。
【０１００】
＜赤目推定処理３＞
次に、赤目推定処理３について説明する。赤目推定処理３では、顔検出処理２において顔と対応付けられて記憶された赤目候補が赤目として推定することができるか否かをあらためて判定する。言い換えれば、赤目候補検出処理１の検出結果に対して精度を向上させるための検証を行うものであり、赤目候補検出処理１において行う赤目の判定よりも正確に行う必要がある。以下、赤目推定処理３における赤目の判定処理について説明する。
【０１０１】
図１９は、赤目候補検出処理１において画像Ｓの中から検出された赤目候補１８および１９と、顔検出処理２において検出された顔２１と、赤目推定処理３において画像Ｓ上に設定された探索範囲２２を表している。赤目候補検出処理１は文字通り赤目候補を検出することが目的であったため、赤目を探索する範囲は画像全体であった。これに対し、赤目推定処理３は、赤目候補検出処理１の検出結果の検証が目的であるため、探索範囲は、図に示すように赤目候補の近傍に限定してよい。
【０１０２】
また、赤目推定処理３では、顔検出処理２において取得された顔の大きさや向きの情報を参照して、赤目候補の向きを推定し、赤目候補の大きさや向きにあった探索範囲を設定する。すなわち、瞳孔の上下方向が探索範囲の縦方向となるように探索範囲を設定する。図１９に示した例は、探索範囲２２を、顔２１の傾きに合わせて斜めに設定したところを表している。
【０１０３】
次に、探索範囲２２で行う赤目判定処理について説明する。図２０は、図１９に例示した赤目候補１８近傍の探索範囲２２を表す図である。赤目判定処理では、探索範囲２２中に、判定対象領域２３を設定する。
【０１０４】
続いて、赤目候補検出処理１で行う赤目判定と同じように、判定対象領域２３の各画素について特徴量の計算を行い、計算により求められた特徴量をスコアテーブルを用いて赤目らしさを表すスコアに換算する。そして、判定対象領域２３内のすべての画素に対応するスコアの集計値が閾値よりも大きければ赤目と判定し、閾値よりも小さければ赤目ではないと判定する。
【０１０５】
以降、探索範囲２２内で、判定対象領域２３を走査しながら、同様の判定を繰り返す。赤目推定処理３の場合には、赤目候補検出処理１と異なり、探索範囲２２内には必ず赤目候補が存在する。したがって、探索範囲２２内で判定対象領域２３を走査しながら判定を行った場合には、多くの領域で赤目であるという判定結果が得られるはずである。探索範囲２２内で判定対象領域２３を走査しながら判定を行ったにも拘わらず、赤目であると判定された回数が少ないとすれば、その赤目候補１８は赤目ではない可能性がある。これは、判定対象領域２３を走査する過程で赤目と判定された回数が、赤目候補検出処理１の検出結果の信頼性を表す指標として有効であることを意味する。
【０１０６】
また、赤目推定処理３では、赤目候補検出処理１と同様、解像度の異なる複数の画像を対象として赤目の判定を行う。図２１は、解像度の異なる画像Ｓ、２４および２６の赤目候補１８周辺に、同じ大きさの探索領域２２、２５および２７を設定した状態を表している。
【０１０７】
赤目推定処理３では、赤目候補検出処理１の場合と異なり、画像の解像度を細かく変更する。具体的には、図２１（ｂ）の画像２４や図２１（ｃ）の画像２６の画素数が、図２１（ａ）の画像Ｓの画素数の、例えば９８％、９６％程度となるように細かく解像度を変化させる。
【０１０８】
図２１の例では、探索範囲２２内で判定対象領域を走査しながら判定を行ったときも、探索範囲２７内で判定対象領域を走査しながら判定を行ったときも、赤目と判定される回数には大きな差は生じないはずである。したがって、例えば探索範囲２２内では何回も赤目と判定されたのにも拘わらず、探索範囲２７内では赤目と判定された回数が極端に少ないといった場合には、その赤目候補は赤目ではない可能性がある。このように、解像度の異なる画像を対象に判定を行った場合に何回赤目と判定されるかも、赤目候補検出処理１の検出結果の信頼度の目安となり得る。
【０１０９】
本実施の形態の赤目推定処理３では、各探索範囲内で赤目と判定された回数と、異なる解像度の画像上で赤目と判定された回数の合計を、その探索範囲の基準となった赤目候補が赤目と判定された回数とし、その回数が所定の回数より多い場合には、その赤目候補は真の赤目である可能性が高いとし、赤目と推定する。一方、その回数が所定の回数以下であるときは、その赤目候補は誤検出されたものであり、赤目ではないと判断する。この場合、赤目検出装置は、その赤目候補の情報を、その情報が記憶されているリストから削除する。
【０１１０】
赤目推定処理３では、赤目として推定された赤目候補に対して、その位置を確定する。前述のように、探索範囲内で判定対象領域を走査しながら判定を行った場合には、多くの判定対象領域で赤目であるという判定結果が得られる。そこで、本実施の形態では、赤目であるという判定結果が得られた複数の判定対象領域の中心座標の重み付け平均値を赤目の位置を表す値と定義している。重み付けは、判定対象領域を対象として赤目判定を行ったときに求める集計スコアに応じた重み付けをする。
【０１１１】
図２２は、赤目の位置座標を確定する方法について説明するための図であり、探索範囲２２と、赤目であるという判定結果が得られた判定対象領域の中心座標（図中の×印）を示している。このようにＭ個（Ｍは任意の整数。図の例では４８。）の判定対象領域で赤目であるとの判定結果が得られた場合には、ｉ番目（０≦ｉ＜Ｍ）の判定対象領域の中心座標を（ｘｉ，ｙｉ）、ｉ番目の判定対象領域の赤目判定処理で得られた集計スコアをＳｉと表すこととすると、赤目の位置（ｘ，ｙ）は、次式（１）により表される。
【数１】
2006285956.tif 000003
【０１１２】
図２３は、以上に説明した赤目推定処理の流れをまとめたフローチャートである。フローチャートに示すように、赤目推定処理では、まず赤目候補の周辺に探索範囲を設定し（Ｓ４０１）、その探索範囲を対象として図１９から図２１を参照して説明したような赤目判定を行う（Ｓ４０２）。探索範囲の探索が終了したら（Ｓ４０３）、探索の過程で赤目と判定された回数を所定の値と比較する（Ｓ４０４）。赤目と判定された回数が所定値以下であれば、その赤目候補をリストから削除する。赤目と判定された回数が所定値より大きければ、該赤目候補を赤目として推定すると共に、次に図２２を参照して説明した処理により赤目の位置を確定する（Ｓ４０５）。赤目候補検出処理１において検出された全ての赤目候補について上記処理が終了したら（Ｓ４０６）、赤目推定処理は終了する。
【０１１３】
なお、赤目推定処理３において探索範囲内で判定対象範囲を設定して赤目判定を行うときに算出する特徴量、スコア変換に用いるスコアテーブルおよび判定に用いる閾値は、赤目候補検出処理１において赤目判定に使用した特徴量、スコアテーブルおよび閾値をそのまま用いてもよいし、別途、赤目推定処理３用の特徴量、スコアテーブルおよび閾値を用意してもよい。
【０１１４】
赤目推定処理３用に特徴量、スコアテーブルおよび閾値を定義する場合には、学習を行う際に用いるサンプル画像として、標準的な赤目を表す画像のみを用いる。すなわち、大きさ、方向ともに似たような赤目のサンプル画像のみを集めて学習を行わせる。これにより、真の赤目以外は検出されないようにして、判定の精度を高める。
【０１１５】
赤目候補検出処理１の場合には、学習に用いるサンプル画像のバリエーションを少なくしてしまうと検出漏れが発生する可能性が高くなるので好ましくない。しかし、赤目推定処理３は、検出結果を検証する目的で行う処理であり、また赤目候補が検出された範囲を探索範囲とするため、学習しておくべきサンプル画像のバリエーションは比較的少なくてよい。赤目推定処理３では、学習に用いるサンプル画像のバリエーションが少ない分、赤目か否かの判定基準は厳しくなるため、赤目候補検出処理１よりも識別の精度は高くなる。
【０１１６】
本実施の形態において、赤目候補の検出、顔の検出、赤目の推定という３段階で赤目の検出を行っているため、従来の方法よりも処理が増加するように見える。しかしながら、実際には赤目推定処理３は、上記説明から明らかであるように、顔について複雑な特徴抽出処理を行うことに比べれば、計算量は遥かに少ない。また、対象範囲も赤目候補周辺に限定しているため、従来に比べて大幅に処理が増えたり、装置が複雑になったりすることはない。
【０１１７】
＜正誤確認処理４＞
次に正誤確認処理４の詳細について説明する。上述した３段階の処理、すなわち赤目候補検出処理１、顔検出処理２、赤目推定処理３の３つの処理によって、画像Ｓに赤目が無いという結果、または画像Ｓに赤目である可能性の高い赤目候補は赤目として推定されたという結果が得られる。正誤確認処理４は、赤目として推定された赤目候補が真の赤目であるか否かの確認を行う。具体的には、赤目として推定された赤目候補が目頭または目尻である否かの判別を行い、この判別の結果に基づいて正誤の確認をする。以下、赤目として推定された赤目候補が目頭または目尻である否かを判別する２つの例となる手法説明する。
【０１１８】
図２４は、第１の手法の処理手順を示す図である。図示のように、本第１の手法では、黒目検出処理４１ａと確認実行処理４１ｂとによって、赤目推定処理３により赤目として推定された赤目候補（例えば図２に示す赤目候補７ａ、７ｂ）が真の赤目であるか否かを確認する。赤目推定処理３では、赤目候補検出処理１により得られた赤目候補に対して赤目候補検出処理１より精度の高い赤目判定処理を行うと共に、目のあるべき位置にある赤目候補を赤目候補から排除している。よって、赤目推定処理３により赤目として推定された赤目候補の位置が目のあるべき位置に存在する。しかし、図３１に示すように、目尻と目頭の赤い部位（部位Ａと部位Ｂ）も目のあるべき位置に存在するため、この２つの部位のいずれかが大きい人の写真画像の場合、赤目がないにもかかわらず、図３１に示す部位Ａと部位Ｂのような元々赤い部位が赤目として推定され、赤目の誤検出を来たしてしまうという問題がある。
【０１１９】
一方、瞳孔が赤目として写っていない写真画像においては、瞳孔が元の色として写った黒目が存在するはずである。この第１の手法では、このような事情に着目し、まず、顔検出処理２により検出された顔において、黒目を検出する黒目検出処理を行う。黒目を検出する処理では、従来の種々の方法を用いることができ、例えば前述した赤目候補検出処理１または赤目推定処理３に用いられた手法を適用すればよい。ここで、黒目検出の精度を高めるために、赤目候補検出処理１に用いられた手法よりも赤目推定処理３に用いられた手法を適用することが望ましい。なお、黒目検出処理４１ａにおいて、学習に使うサンプル画像として、赤目を表すサンプル画像の代わりに黒目を表すサンプル画像を用いる点を除けば、具体的な手法については赤目候補検出処理１または赤目推定処理３に用いられた手法と同じであるので、ここでその詳細な説明を省略する。
【０１２０】
確認実行処理４１ｂは、黒目検出処理４１ａの検出結果に基づいて赤目推定処理３の推定結果の正誤の確認をする。具体的には、黒目検出処理４１ａにより黒目が検出されれば、赤目推定処理３により赤目として推定された赤目候補は目頭または目尻（より正確的には目頭または目尻の赤い部分）であり、赤目推定処理３の推定結果が誤りであると判断する一方、黒目検出処理４１ａにより黒目が検出されなければ、赤目推定処理３により赤目として推定された赤目候補は目頭または目尻ではなく、真の赤目であると判断する。そして、確認実行処理４１ｂは、赤目推定処理３の推定結果が誤りである場合には、赤目が検出されていないことを示す情報を、赤目推定処理３の推定結果が正しいである場合には、赤目推定処理３により赤目として推定された赤目の位置情報を検出結果Ｋとして、出力する。
【０１２１】
図２５は、第２の手法の手順を示す図である。図示のように、本第２の手法では、プロファイル作成処理４２ａと確認実行処理４２ｂとによって、赤目推定処理３により赤目として推定された赤目候補が真の赤目であるか否かを確認する。図２６、プロファイル作成処理４２ａについて説明する。
【０１２２】
プロファイル作成処理４２ａでは、赤目推定処理３により赤目として推定された２つの赤目候補の位置を結ぶ直線上の各画素の画素値のプロファイルを作成する。ここで、直線の長さは、２つの赤目候補の位置を左右端点とする長さではなく、顔検出処理２により検出された顔の外枠まで伸びた長さとする。また、画素値としては例えば輝度値Ｙを用いる。図２６、図２７、図２８は、プロファイル作成処理４２ａにより作成されたプロファイルの例を示している。各図において、横軸Ｌは、２つの赤目候補の位置（図中Ｅ１、Ｅ２）を結ぶ直線上の各画素の位置を示すものであり、縦軸は横軸Ｌにより示される各位置の画素の夫々の輝度値Ｙを示すものである。なお、図中Ｅ０は、２つの赤目候補の位置Ｅ１、Ｅ２間の中心位置である。
【０１２３】
確認実行処理４２ｂは、プロファイル作成処理４２ａにより得られたプロファイルを用いて、まず、赤目推定処理３により赤目として推定された赤目候補が目頭または目尻であるか否かの確認を行う。
【０１２４】
図２６は、２つの赤目候補が目頭でも目尻でもなく、真の赤目である場合のプロファイルを示すものであり、図示のように、この場合のプロファイルは、赤目候補の位置Ｅ１、Ｅ２において、輝度値Ｙが最も低い谷となっており、この２つの谷の外側においても内側においても、該谷より低い谷が存在しない形となっている。
【０１２５】
また、図２７は、２つの赤目候補が目尻である場合のプロファイルを示すものであり、図示のように、この場合のプロファイルは、赤目候補の位置Ｅ１、Ｅ２においても、輝度値Ｙが谷となっているが、この２つの谷の内側において、中心位置Ｅ０を中心点にして対称的に存在する、赤目候補位置Ｅ１、Ｅ２における谷よりもさらに輝度値が低い２つの谷がある形になっている。なお、赤目候補位置Ｅ１、Ｅ２における谷よりもさらに輝度値が低いこの２つの谷は、黒目の存在によってできたものである。
【０１２６】
また、図２８は、２つの赤目候補が目頭である場合のプロファイルを示すものであり、図示のように、この場合のプロファイルは、赤目候補の位置Ｅ１、Ｅ２においても、輝度値Ｙが谷となっているが、この２つの谷の外側において、中心位置Ｅ０を中心点にして対称的に存在する、赤目候補位置Ｅ１、Ｅ２における谷よりもさらに輝度値が低い２つの谷がある形になっている。なお、赤目候補位置Ｅ１、Ｅ２における谷よりもさらに輝度値が低いこの２つの谷は、黒目の存在によってできたものである。
【０１２７】
確認実行処理４２ｂでは、プロファイルを用いて確認を行うが、確認を実行する前に、前処理として、中心位置Ｅ０を含む範囲内に連続して存在する谷を除去する。画像に写った人物が濃色の眼鏡をかけた場合において、プロファイルにおいては、図２９に示すように中心位置Ｅ０を中心点にしてに連続した谷が生じてしまうため、この前処理によって、眼鏡の影響を除去することができる。
【０１２８】
確認実行処理４２ｂは、このような前処理を行って得たプロファイルが、図２６、図２７、図２８のいずれに示すプロファイルに該当するかを確認し、図２６に示すプロファイルに該当する場合には、赤目推定処理３により推定された赤目が目頭でも目尻でもない、すなわち赤目推定処理３の推定結果が正しいとし、赤目推定処理３により赤目として推定された赤目の位置情報を検出結果Ｋとして出力する一方、図２７と図２８とのいずれか一方に該当する場合には、赤目推定処理３により推定された赤目が目頭または目尻であり、すなわち赤目推定処理３の推定結果が誤りとし、赤目が検出されていないことを示す情報を、検出結果Ｋとして出力する。
【０１２９】
本実施の形態の赤目検出装置は、赤目推定処理３の推定結果の正誤を確認するのに際して、上述したいずれの手法を用いてもよい。
【０１３０】
＜検出結果の利用＞  
赤目の検出結果は、例えば赤目の修正に利用される。図３０は、赤目を修正する処理の一例を示す図である。例示した処理では、まず検出された赤目について、色差Ｃｒの値が所定の値を越えている画素を抽出する。続いて、モフォロジー処理を施して、その領域を整形する。最後に、整形した領域を構成する各画素の色を、瞳孔の色として適切な色（所定の明るさのグレーなど）に置き換える。
【０１３１】
なお、画像中の赤目の修正処理については、特開２０００−１３６８０号公報や、特開２００１−１４８７８０号公報などにも開示がある。そのほか、公知のあらゆる手法を採用することができる。
【０１３２】
あるいは、赤目を検出した後、赤目現象が発生したことの警告のみ行い、赤目の修正は行わないという形態も考えられる。例えば、デジタルカメラに赤目検出機能を実装し、撮影直後の画像を対象として赤目検出処理を実行し、赤目が検出された際にカメラのスピーカから撮り直しを促す警告音を出力させる形態などが、これに相当する。
【０１３３】
このように、本実施形態によれば、検出された赤目が目頭または目尻であるか否かを判別することによって、赤目の誤検出を確実に防ぐことができる。
【０１３４】
また、本実施形態において、赤目を検出する目的は、通常、赤目を修正するためにあり、また、赤目が写った画像よりも黒目が写った画像（すなわち正常画像）のほうが多いため、赤目を推定してから、例えば黒目の検出を行って黒目が存在するか否かによってこの赤目が目頭目尻であるか否かを判別するようにし、効率よく赤目の検出を行うようにしているが、例えば赤目を検出する前にまず黒目の検出を行い、黒目が検出された画像に対して赤目が無いとするようにするが、黒目が検出されなかった画像に対してのみ赤目の検出を行うようにすることもできる。
【０１３５】
また、本発明の赤目検出装置は、上述した実施形態に限られることがなく、本発明の主旨を変えない限り、様々な増減、変更を加えることができる。例えば、本発明の実施例においては、人間の赤目検出について説明したが、人間以外の動物の異常目に対しても適用可能である。すなわち、人物の顔に代えて動物の顔を検出し、人物の顔の赤目に代えてその動物の顔の緑目や銀目などの異常目を検出するようにしてもよい。
【図面の簡単な説明】
【０１３６】
【図１】本実施の形態における赤目検出の手順を示す図
【図２】赤目検出の対象となる画像の一例を示す図
【図３】赤目検出の対象となる画像の一部を拡大して表した図
【図４】特徴量とスコアの対応関係の定義（スコアテーブル）の一例を示す図
【図５】赤目の学習用サンプルの例を示す図
【図６】Ｎ種類の判定処理の流れを示す図
【図７】赤目の検出と画像解像度の関係について説明するための図
【図８】重複検出された赤目候補に対する処理について説明するための図
【図９】特徴量の算出方法の一例を示す図
【図１０】赤目候補検出処理の処理効率を高めるための第２の手法について説明するための図
【図１１】赤目候補検出処理の処理効率を高めるための第３の手法について説明するための図
【図１２】赤目候補検出処理の処理効率を高めるための第４の手法について説明するための図
【図１３】赤目候補検出処理の処理効率を高めるための第５の手法について説明するための図
【図１４】赤目候補検出処理の処理効率を高めるための第６の手法について説明するための図
【図１５】顔検出処理における判定対象範囲の走査について説明するための図
【図１６】顔検出処理における判定対象範囲の回転について説明するための図
【図１７】顔検出処理の流れを示すフローチャート
【図１８】顔検出処理における特徴量の算出方法について説明するための図
【図１９】赤目推定処理における探索範囲の設定方法について説明するための図
【図２０】図１９の探索範囲内に設定された判定対象範囲の例を示す図
【図２１】解像度の異なる画像上に探索範囲を設定した例を表す図
【図２２】赤目の位置を確定する処理について説明するための図
【図２３】赤目推定処理の流れを示すフローチャート
【図２４】正誤確認処理の手順を示す図（その１）
【図２５】正誤確認処理の手順を示す図（その２）
【図２６】プロファイルの例を示す図（その１）
【図２７】プロファイルの例を示す図（その２）
【図２８】プロファイルの例を示す図（その３）
【図２９】プロファイルの例を示す図（その４）
【図３０】赤目修正処理の一例を示す図
【図３１】目頭および目尻が赤目検出に及ぼす影響を説明するための図
【符号の説明】
【０１３７】
６，２１  顔
７ａ，７ｂ，７ｃ，７ｄ，１１，１２，１８，１９  赤目候補
８，９，１０，１５，１７，２３  赤目の判定対象範囲
１３，２４，２６  低解像度画像
１４，１６  画素
２０  顔の判定対象範囲
２２，２５，２７  探索範囲
【図１】
2006285956.tif 000004
【図２】
2006285956.tif 000005
【図３】
2006285956.tif 000006
【図４】
2006285956.tif 000007
【図５】
2006285956.tif 000008
【図６】
2006285956.tif 000009
【図７】
2006285956.tif 000010
【図８】
2006285956.tif 000011
【図９】
2006285956.tif 000012
【図１０】
2006285956.tif 000013
【図１１】
2006285956.tif 000014
【図１２】
2006285956.tif 000015
【図１３】
2006285956.tif 000016
【図１４】
2006285956.tif 000017
【図１５】
2006285956.tif 000018
【図１６】
2006285956.tif 000019
【図１７】
2006285956.tif 000020
【図１８】
2006285956.tif 000021
【図１９】
2006285956.tif 000022
【図２０】
2006285956.tif 000023
【図２１】
2006285956.tif 000024
【図２２】
2006285956.tif 000025
【図２３】
2006285956.tif 000026
【図２４】
2006285956.tif 000027
【図２５】
2006285956.tif 000028
【図２６】
2006285956.tif 000029
【図２７】
2006285956.tif 000030
【図２８】
2006285956.tif 000031
【図２９】
2006285956.tif 000032
【図３０】
2006285956.tif 000033
【図３１】
2006285956.tif 000034