説明

赤目検出方法および装置並びにプログラム

【課題】赤目検出結果の正誤を確認し、誤検出を確実に防ぐ。
【解決手段】画像Sの全領域を探索することにより赤目と推定し得る赤目候補を検出し(赤目候補検出処理1)、検出された赤目候補の周辺を探索することにより、その赤目候補を含む顔を検出し(顔検出処理2)、検出された顔に含まれる赤目候補の近傍に探索範囲を限定して、赤目候補を検出する際により高い精度で再度探索を行い、赤目候補から赤目を推定し(赤目推定処理3)、赤目として推定された赤目候補が目頭または目尻であるか否かを判別することによって赤目推定処理3の推定結果の正誤を確認する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、写真画像の中から赤目現象が発生している目の位置を検出する赤目検出方法および装置並びにプログラムに関するものである。
【背景技術】
【0002】
夜間あるいは暗い場所で人物や動物をストロボ撮影すると、瞳孔(あるいは瞳孔の一部)が、赤色あるいは金色に撮影されてしまうことがある。このため、赤く、あるいは銀色に撮影されてしまった瞳孔(以下、銀色の場合も含めて「赤目」と称する)を、デジタル画像処理により本来の瞳孔の色に補正する方法が種々提案されている。
【0003】
例えば、特許文献1には、オペレータが指定した領域の中から、瞳孔の色、位置、大きさに基づいて赤目を自動認識する方法および装置が開示されている。また、特許文献2にも、オペレータが指定した領域について画素ごとに所定の特徴量を計算し、瞳孔部分の特徴を最も有する部分を補正対象として選択する方法が開示されている。但し、瞳孔部分の特徴のみに基づく認識処理では、赤い電飾など局所的に赤みを持つ対象を赤目と区別することは難しい。このため、オペレータの操作を介さず、すべて自動で処理することは困難である。
【0004】
これに対し、特許文献3に開示されている方法では、先に顔を検出し、顔として検出された領域を対象に赤目の検出を行う。この方法では、赤い電飾などが赤目として誤検出されることはないが、顔を誤検出してしまうと赤目も正確には検出できないため、顔検出の精度が問題となる。
【特許文献1】特開2000−13680号公報
【特許文献2】特開2001−148780号公報
【特許文献3】特開2000−125320号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
顔の検出方法として最も簡単なのは、肌色で楕円形状の領域を顔と推定して検出する方法である。但し、人の顔の色は必ずしも一定ではないため、この方法では顔とみなす肌色の幅を、ある程度広く定義する必要がある。しかし、色と形状のみで判定する方法で色の範囲を広めに設定すれば、誤検出が発生する可能性は高くなる。このため、顔判定の精度を高めるためには、色と形状のみならず、顔のより細かい特徴を利用して顔か否かを判定することが好ましい。しかし、顔の特徴をきめ細かく抽出しようとすれば、顔検出処理に要する時間は大幅に増加する。
【0006】
すなわち、特許文献3の方法は、高い精度で赤目を検出できるものの、処理時間に対する配慮がなされておらず、処理能力が比較的低い装置(例えば安価なデジタルカメラなど)に赤目検出機能を搭載する場合、実用に耐え得る装置を実現することができない。
【0007】
少ない計算量で、短時間に精度良く赤目を検出するために、最初に比較的緩い条件で赤目候補を検出しておき、検出された赤目候補の近傍において顔を検出する。そして、検出された顔領域において、赤目候補を検出する際より厳しい条件で赤目の判定を行うことによって赤目を確定する方法が考えられる。この方法によれば、まず赤目候補を検出して、その近傍の領域において顔の検出を行っているので、短時間かつ精度良く顔を検出することができる。そして、検出した顔領域において赤目候補を検出する際より厳しい条件で赤目の判定を行っているので、赤目を効率良く検出することができる。
【0008】
赤目検出の目的は、検出された赤目を瞳孔の元の色に補正することにあるため、この赤目検出結果の正誤、すなわち検出された赤目は真の赤目なのか否かは補正後の画像のイメージを大きく左右する。検出された赤目が真の赤目なのか否かをオペレータにより確認する方法が考えられるが、それでは時間がかかり、オペレータの負担を増やしてしまうため、検出結果の正誤の確認が自動的にできるようにすることが希望されている。
【0009】
赤目検出において誤検出となる原因として、白目が赤くなっている場合がある。すなわち、本来白くあるべき目頭または目尻が赤くなっている場合があり、その部分を赤目として誤検出してしまうと、補正により白目の部分が黒くされ、目の全体が黒くされてしまうことになり、補正後の画像を赤目以上に不自然にしてしまうことになる。すなわち、目を含む領域において、図31に示すように、人によって目頭または目尻の内側の赤い部位(図中A部位とB部位)はその大きさが瞳孔に匹敵する大きさになる場合があり、赤目の誤検出の最大きな原因になっている。
【0010】
本発明は、上記事情に鑑み、赤目の誤検出を防ぐことができる赤目検出方法および装置並にそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0011】
本発明の赤目検出方法は、少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出し、
検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出し、
検出された顔に含まれる赤目候補を赤目として推定する赤目検出方法において、
赤目として推定された前記赤目候補が目頭または目尻であるか否かをさらに判別することによって前記赤目の推定結果の正誤を確認することを特徴とするものである。
【0012】
本発明の赤目検出方法において、検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定するようにしてもよい。
【0013】
また、本発明の赤目検出方法において、前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第1の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出し、
検出された前記赤目候補の前記スコアが前記第1の閾値より大きい第2の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認するようにしてもよい。
【0014】
ここで、前記判別を行うのに際して、検出された前記顔の領域において、黒目の検出を行い、該黒目の検出により黒目が検出された場合に、赤目として推定された前記赤目候補が目頭または目尻であると判別するようにすることができる。
【0015】
この場合において、黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うようにしてもよい。
【0016】
また、前記判別を行うに際して、赤目として推定された2つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得し、前記プロファイルを用いて前記判別を行うようにすることができる。
【0017】
この場合において、前記プロファイルが、前記2つの赤目候補が真の赤目である場合のプロファイル、前記2つの赤目候補が目頭である場合のプロファイルおよび前記2つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うようにしてもよい。
【0018】
本発明の赤目検出装置は、少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出する赤目候補検出手段と、
該赤目候補検出手段により検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出する顔検出手段と、
該顔検出手段により検出された顔に含まれる赤目候補を赤目として推定する赤目推定手段とを備えてなる赤目検出装置であって、
前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であるか否かを判別することによって、該赤目の推定結果の正誤を確認する正誤確認手段をさらに備えたことを特徴とするものである。
【0019】
本発明の赤目検出装置において、前記赤目推定手段は、前記顔検出手段により検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定するものであってもよい。
【0020】
また、本発明の赤目検出装置において、前記赤目候補検出手段は、前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第1の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出するものであり、
前記正誤確認手段は、検出された前記赤目候補の前記スコアが前記第1の閾値より大きい第2の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認するものであってもよい。
【0021】
ここで、前記顔検出手段により検出された前記顔の領域において、黒目の検出を行う黒目検出手段を備え、該黒目検出手段により黒目が検出された場合に、前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であると判別するものであるように前記正誤確認手段を構成することができる。
【0022】
この場合において、前記黒目検出手段は、黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うものであってもよい。
【0023】
また、前記赤目推定手段により赤目として推定された2つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得するプロファイル取得手段を備え、該プロファイル取得手段により取得された前記プロファイルを用いて、前記判別を行うものであるように前記正誤確認手段を構成してもよい。
【0024】
この場合において、前記正誤確認手段は、前記プロファイルが、前記2つの赤目候補が真の赤目である場合のプロファイル、前記2つの赤目候補が目頭である場合のプロファイルおよび前記2つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うものであってもよい。
【0025】
本発明の赤目検出方法を、コンピュータに実行させるプログラムとして提供するようにしてもよい。
【発明の効果】
【0026】
本発明によれば、赤目として推定された赤目候補が目頭または目尻であるか否かをさらに判別することによって赤目の推定結果の正誤を確認することができ、誤検出を防止することができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【0028】
<概要>
はじめに、図1および図2を参照して、赤目を検出する手順の概要を説明する。図1は赤目検出の手順を示す図である。図に示すように、本実施の形態では、赤目候補検出処理1、顔検出処理2および赤目推定処理3の3段階の処理を実行することにより、画像Sに含まれる赤目を推定する。そして、推定された赤目が真の赤目であるか否かを確認する正誤確認処理4をさらに実行して誤検出された赤目を排除し、真の赤目が検出されたか否かを示す情報と、検出された場合にその位置情報とを検出結果Kとして出力する。
【0029】
図2は、画像Sの一例であり、目が赤目7a,7bとして撮影されてしまった人物と、赤い電飾7cが写った写真画像を表している。以下、図2の画像を処理する場合を例示しながら、赤目候補検出処理1、顔検出処理2および赤目推定処理3、正誤確認処理4の処理について、概要を説明する。
【0030】
赤目候補検出処理1は、画像Sの中から赤目と推定し得る部分(赤目候補)を探索し、赤目候補を発見した場合に、その赤目候補の位置座標などを所定の記憶媒体に記憶する処理である。赤目候補検出処理1では、大きさも向きも不明の赤目を画像S全体の中から検出しなければならないため、検出の精度よりも処理効率が優先される。本実施の形態では、赤目候補検出処理1では、瞳孔の特徴のみに基づいて赤目か否かを判定する。このため、図2に例示した画像を処理した場合、赤目7a、7bのほかに、背景の電飾7cなども、赤目候補として検出されてしまう可能性がある。
【0031】
顔検出処理2は、画像Sの中から、顔と推定される部分を探索する処理である。但し、顔の探索は、赤目候補検出処理1において検出された各赤目候補の周辺領域においてのみ行う。赤目候補が真の赤目である場合、その周辺領域には必ず顔が存在するはずである。顔検出処理2では、顔らしきものを発見できた場合には、その顔の大きさ、向きなどの情報を、顔探索の基準となった赤目候補と対応づけて記憶媒体に記憶する。一方、顔らしきものを発見できなかった場合には、顔探索の基準となった赤目候補に関する情報を、記憶媒体から削除する。
【0032】
図2に例示した画像を処理した場合、電飾7cの周辺からは顔らしきものは検出されないため、電飾7cの情報は、記憶媒体から削除される。赤目7aおよび7bについては、周辺領域から顔6が検出される。したがって、赤目7aおよび7bに関する情報は顔6の情報と対応付けられ、あらためて記憶媒体に記憶される。
【0033】
赤目推定処理3は、顔検出処理2において顔と対応付けられて記憶された赤目候補に対して夫々の赤目候補が真の赤目として推定できるか否かをあらためて判定するとともに、赤目として推定できる場合には、その正確な位置を確定する処理である。
【0034】
赤目推定処理3では、顔検出処理2の結果を処理に利用する。具体的には、顔の情報を利用して赤目の大きさや向きを推定して赤目とみなす対象の範囲を絞り込む。さらには、顔の情報に基づいて赤目の位置を推定し、その周辺の限られた範囲を対象として赤目候補検出処理1よりも高精度な検出処理を実行する。
【0035】
赤目推定処理3では、赤目候補が真の赤目として推定できないと判断した場合には、その赤目候補に関する情報を記憶媒体から削除する。一方、赤目候補が真の赤目として推定できると判断した場合には、その正確な位置を求める。
【0036】
また、赤目推定処理3では、顔の情報を利用して赤目候補の位置を評価し、赤目候補が目の位置としては不適切な位置にある場合には、その赤目候補の情報を記憶媒体から削除する。
【0037】
例えば、人物の額に日の丸印が赤くペイントされていた場合には、赤目候補検出処理1では、その印が赤目候補として検出され、顔検出処理2では、その印の周辺から顔が検出される。しかし、その後の赤目推定処理3では、その赤目候補が額、すなわち目の位置としては不適切な位置にあるとの判断がなされるので、その赤目候補の情報は記憶媒体から削除される。
【0038】
図2に例示した画像の場合、赤目推定処理3により、7aおよび7bは赤目として推定され、その正確な位置が確定され、正誤確認処理4に供される。
【0039】
上述した3つの処理によって、目のあるべき部位に位置し、赤目として推定できる赤目候補が抽出される。
【0040】
正誤確認処理4は、赤目推定処理3により赤目として推定された赤目が真の赤目か否かをさらに確認する処理であり、具体的には、赤目推定処理3により赤目として推定された赤目が目頭または目尻である否かを判別することによって、赤目推定処理3の正誤を確認する。正誤確認処理4は、さらに、赤目推定処理3の推定結果が正しければ、赤目が検出されたことを示す結果と、赤目推定処理3により得られた赤目の位置を示す情報とを検出結果Kとして出力する一方、赤目推定処理3の推定結果が誤りであれば、赤目が無いことを示す結果を検出結果Kとして出力する。
【0041】
上記手順により赤目を検出する装置は、例えば、メモリなどの記憶媒体と、プログラムに規定された処理を実行し得る演算手段と、外部からのデータ入出力を制御する入出力インタフェースとを備えた装置に、上記各処理を実行させるプログラムを実装することにより実現することができる。
【0042】
あるいは、赤目候補検出処理1、顔検出処理2および赤目推定処理3、正誤確認処理を実行するように設計されたメモリ・ロジック混載型デバイスを所定の装置に組み込むことによっても実現できる。
【0043】
すなわち、汎用のコンピュータはもちろんのこと、デジタル写真プリンタやデジタルカメラなど特定の用途向けに作られた装置であっても、プログラムや半導体デバイスを搭載することが可能な装置はすべて、上記手順により赤目を検出する装置として動作させることができる。
【0044】
<赤目候補検出処理1>
次に、赤目候補検出処理1について、詳細に説明する。赤目候補検出処理1では、赤目検出装置は、まず、取得した画像の色空間を変換する。具体的には、画像を構成する各画素のR(赤),G(緑),B(青)の値を、所定の変換式により、Y(輝度)、Cb(緑と青の色差)、Cr(緑と赤の色差)、Cr(肌色と赤の色差)の値に置き換えることにより、画像の表色系を変換する。
【0045】
Y,Cb,Crは、一般にJPEG画像などで利用されている座標系であり、Crは、RGB空間において赤色と肌色とをもっともよく分離する方向を表す座標軸である。この座標軸の方向は、赤色のサンプルと肌色のサンプルに線形判別分析法を適用して予め決定しておく。このような座標軸を定義することにより、後に行う判定の精度を、通常のYCbCr空間で判定を行う場合よりも高めることができる。
【0046】
図3は、色空間変換された後の画像Sの一部を拡大して表した図である。赤目検出装置は、次に、図に示すように画像S上に判定対象範囲8を設定し、その判定対象範囲8内の画像が赤目の特徴をどの程度備えているかを調べる。本実施の形態では、判定対象範囲8の大きさは10画素×10画素である。
【0047】
判定対象範囲8内の画像が赤目の特徴をどの程度備えているかは、次のような方法で調べる。まず、予め赤目らしさを表す特徴量と、特徴量の値に応じたスコアと、所定の閾値を定義する。例えば、画素の値が赤色を表す値であることは、その画素の周辺に赤目があると判断する1つの根拠となり得る。よって、画素の値は赤目らしさを表す特徴量となり得る。ここでは、その画素の値を特徴量と定義した場合を例にあげて説明する。
【0048】
スコアは、どの程度赤目らしいかを表す指標となるものである。上記例の場合であれば、誰の目にも赤色とわかる色を表す画素値には高いスコアが、また、一応赤色ではあるが見る者によっては茶色と判断するかもしれない色を表す画素値には低いスコアがつくように、特徴量とスコアとの対応付けを定義する。一方、明らかに赤色ではない色(例えば黄色)を表す画素値にはゼロまたはマイナスのスコアがつくように、特徴量とスコアとの対応付けを定義する。図4に、特徴量とスコアの対応関係の定義を表すスコアテーブルの例を示す。
【0049】
判定対象範囲の画像が赤目を表しているか否かは、まず判定対象範囲内の各画素について特徴量を算出し、続いてその特徴量を図4に例示した定義に基づいてスコアに換算し、判定対象範囲内の全画素のスコアを集計する。そして、スコアの集計値が所定の閾値以上であれば判定対象範囲の画像が表す対象は赤目であると判定し、閾値よりも小さければ赤目ではないと判定する。
【0050】
以上の説明から明らかであるように、この方法では、判定の精度は、特徴量、スコアテーブルおよび閾値の定義のしかたに大きく依存する。このため、本実施の形態では、予め赤目検出装置に、赤目を表すサンプル画像と赤目以外の対象を表すサンプル画像(いずれも10画素×10画素)を用いた学習を行わせ、学習により習得した適切な特徴量、スコアテーブルおよび閾値を判定に用いることとしている。
【0051】
学習の手法は、マシーンラーニング技術として知られているニューラルネットワークの手法あるいはブースティングの手法など公知のあらゆる手法を用いることができ、特に限定されない。但し、赤目候補検出処理で検出漏れが発生してしまうと、以下の処理ではその赤目を再検出することはできないので、学習用サンプルの中には赤目とわかりにくい画像も取り入れる必要がある。
【0052】
例えば、図5(a)に示すような標準的なサンプル画像のほか、図5(b)に示すように標準的なサンプル画像とは瞳孔の大きさが異なる画像、図5(c)に示すように瞳孔の中心位置がずれた画像、図5(d)、(e)に示すように、瞳孔の一部分のみが赤くなった不完全な赤目の画像なども学習用サンプルに取り入れる。
【0053】
これらの学習用サンプルを使って、複数の特徴量の候補の中から有効なものを選出する。そして、選出した特徴量と、生成したスコアテーブルを用いて、赤目を表すサンプル画像に対して上記のような判定処理を繰り返し、判定において所定の正答率を維持できるように閾値を決定する。
【0054】
この際、本実施の形態では、個々の判定対象範囲について、N種類(但しNは2以上の整数)の特徴量、スコアテーブル、閾値を使用してN種類の判定を行い、すべての判定において赤目と判定された場合にのみ、その判定対象範囲の座標を赤目候補リストに登録することとしている。すなわち、複数種類の特徴量、スコアテーブル、閾値を組み合わせることにより判定の精度を高め、信頼性の高い判定結果のみがリストに登録されるようにしている。なお、ここで、赤目候補リストへの登録とは、記憶媒体に位置座標データその他の情報を記憶せしめることを意味する。
【0055】
図6は、N種類の判定処理の流れを表す図である。赤目検出装置は、まず、図に示すように、設定された判定対象範囲について、1種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照して1回目の判定を行う。特徴量算出パラメータは、特徴量の算出式を定義する係数などのパラメータである。
【0056】
1回目の赤目判定処理で赤目と判定した場合には、続いて、同じ判定対象範囲について、2種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照して2回目の判定を行う。1回目の赤目判定処理で赤目ではないと判定した場合には、その時点でその判定対象範囲が表す画像は赤目ではないと判断し、次の判定対象範囲を設定する。
【0057】
以降も、(i−1)回目の判定(2≦i≦N)で赤目と判定した場合には、i種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照してi回目の判定を行い、(i−1)回目の判定(2≦i≦N)で赤目ではないと判定した場合には、その時点でその判定対象範囲についての判定処理を終了する。
【0058】
なお、各回の判定では、前述のように、まず各画素について特徴量が算出され(S101)、続いてその特徴量がスコアに換算され(S102)、判定対象範囲内の全画素のスコアが集計される(S103)。そして、スコアの集計値が所定の閾値以上であれば判定対象範囲の画像が表す対象は赤目であると判定され、閾値よりも小さければ赤目ではないと判定される(S104)。
【0059】
赤目検出装置は、N種類目の特徴量算出パラメータ、スコアテーブル、閾値を参照したN回目の判定において赤目と判定した場合のみ、その判定対象範囲の位置座標を赤目候補リストに登録する。
【0060】
以上に説明した判定処理は、画像Sに含まれる赤い部分が10画素×10画素の範囲に収まる大きさであることを前提としているが、実際には、図7(a)に示すように画像Sに含まれる赤目7dが10画素×10画素の判定対象範囲8よりも大きい場合もある。このため、本実施の形態では、赤目検出装置に入力された画像Sに対して上記判定処理を行うのみならず、画像Sの解像度を落とすことにより生成した、より低解像度の画像13に対しても、同じ判定処理を行う。
【0061】
図7(b)に示すように、画像の解像度を落とせば赤目7dは10画素×10画素の判定対象範囲8内に納まり、画像Sに対する判定と同じ特徴量などを用いて判定を行うことが可能になる。解像度の異なる画像は、赤目検出装置に画像Sが入力された時点で生成してもよいし、赤目候補検出処理の実行中に必要に応じて画像Sの解像度変換を行って生成してもよい。
【0062】
なお、判定対象範囲8を細かく(例えば1画素ずつ)ずらして判定を行った場合、図8に示すように、異なる判定対象範囲9、10を対象とする判定処理において同じ赤目が重複して検出され、1つの赤目が別個の赤目候補11および12としてリストに登録されることがある。また、解像度の異なる画像を対象とした検出処理で、同じ赤目が重複して検出されることもある。
【0063】
このため、本実施の形態では、解像度が異なるすべての画像について判定対象範囲の走査が終了した時点で、赤目候補リストに登録されている座標情報を確認し、明らかに同じ赤目を表していると思われる複数の座標情報を発見した場合には、1個の座標情報のみを残し、他をリストから削除する。具体的には、前述の集計スコアが最も高かったものを赤目候補として残し、他をリストから削除する。
【0064】
このようにして整理された後の赤目候補リストは赤目候補検出処理1の処理結果として出力され、後に続く顔検出処理2で利用される。
【0065】
本実施の形態では、以上に説明した赤目候補検出処理において、検出に用いる画像の解像度の選択の仕方、判定対象範囲の設定の仕方、N種類の特徴量算出パラメータの使用順などを工夫することにより、検出の精度を落とすことなく、計算量を減らして処理時間を短縮している。以下、赤目候補検出処理の処理効率を高める手法について、さらに説明する。
【0066】
<赤目候補検出処理の効率化のための手法>
以下に説明する赤目候補検出処理の効率化のための手法は、単独で用いてもよいし、組み合わせて用いてもよい。
【0067】
第1の手法は、N種類の判定を行う過程で、先に行う判定ほど計算量が少なくなるように、特徴量を定義する方法である。図6を参照して説明したように、本実施の形態では、赤目検出装置は、i回目の判定で赤目ではないと判定した場合、i+1回目以降の判定処理を行わない。これは早い段階で行われる判定処理ほど、実行される回数が多いということである。よって、実行される回数が多い処理を計算量が少ない処理とすれば、全体の処理効率を高めることができる。
【0068】
上記説明で例示した特徴量の定義、すなわち画素(x,y)の値を特徴量と定義する方法は、最も計算量が少なくなる例といってよい。
【0069】
このほか、赤目らしさを表す特徴量のうち少ない計算量で求めることができるものとしては、画素(x,y)の値と画素(x+dx,y+dy)の値の差分が考えられる。瞳孔の周辺の色は、白(白目)、肌色(瞼)など特定の色であることから、差分の値も赤目らしさを表す特徴量となり得る。同様に、画素(x,y)の値と画素(x+dx1,y+dy1)の値の差分v1と、画素(x,y)の値と画素(x+dx1,y+dy1)の値の差分v2の組や、4点以上の画素値の差分の組なども赤目らしさの特徴量となり得る。なお、特徴量の算出に必要なdx、dx1、dx2、dy、dy1あるいはdy2などの値は、特徴量算出パラメータとして記憶しておく。
【0070】
上記特徴量よりも多くの計算を必要とする特徴量としては、例えば、画素(x,y)近傍の3×3個の画素(画素(x,y)を含む)の値の平均値が考えられる。また、画素(x,y)を中心とする3×3個の画素の縦方向差分と横方向差分の組み合わせも特徴量となり得る。縦方向差分は図9(a)に示すようなフィルタを用いて、3×3個の画素の重み付き平均を計算すればよい。同様に、横方向差分は図9(b)に示すようなフィルタを用いて、3×3個の画素の重み付き平均を計算すればよい。同程度の計算量で求められる特徴量としては、例えば特定方向に並んだ画素の値の積分値や平均値がある。
【0071】
さらに多くの計算を必要とする特徴量もある。図9(a)および図9(b)のフィルタを用いて計算した値からは、画素(x,y)における勾配方向、すなわち画素の値(色濃度)が変化する方向を求めることができるが、その勾配方向は、赤目らしさを表す特徴量となり得る。勾配方向は、所定の方向(例えば画素(x,y)から画素(x+dx,y+dy)に向かう方向)を基準とした勾配方向の角度θとして算出することができる。また、論文「DR画像における腫瘤影検出−アイリスフィルタ」,松本一男他,電子情報通信学会論文誌,Vol.J75−DII,no.3,pp.663−370,1992には、勾配ベクトルの分布に基づいて画像を評価する手法が示されているが、そのような勾配ベクトルの分布も赤目らしさを表す特徴量となり得る。
【0072】
第2の手法は、第1の手法と同じ考え方に基づいているが、判定に用いる特徴量を、比較的少ない計算量で算出できる特徴量と、算出に多くの計算を要する特徴量の2つのグループに分類して、段階的に判定を行う。すなわち、画像上で、判定対象範囲を2回走査する。
【0073】
図10は、第2の手法を用いた場合の判定処理の流れを示すフローチャートである。フローチャートに示すように、1回目の走査では、まず判定対象範囲を設定し(S201)、その判定対象範囲を対象として計算量が少ない特徴量のみを用いて判定を行い(S202)、画像の全域を走査し終えるまで(S203)、判定対象範囲を1画素ずつずらしながら同様の判定を繰り返す。2回目の走査では、1回目の走査で検出された赤目候補の周辺に、その赤目候補を含むような判定対象範囲を設定し(S204)、計算量が多い特徴量のみを用いて判定を行い(S205)、処理すべき赤目候補がなくなるまで(S207)、同様の判定を繰り返す。
【0074】
この手法では、計算量が多い特徴量を用いた判定処理は、限られた判定対象範囲でしか実行されない。このため、全体として計算量を低減することができ、処理効率を高めることができる。また、第2の手法によれば、最初の走査により得られた判定結果を先に画面などに出力しておいて、次の詳細な判定を行うことができる。すなわち、第1の手法と第2の手法の計算量は同等であるが、ユーザの目からみた装置の反応という点では、第2の手法を採用するほうが好ましい。
【0075】
なお、第2の手法で、計算量に基づいて特徴量をグループ分けするときのグループ数は2グループに限定されるものではなく、3以上のグループに分類して段階的に判定の精度を高め(計算量が多くなるようにし)てもよい。また、1つのグループに属する特徴量は1種類でも複数種類でもよい。
【0076】
第3の手法は、図11に示すように、判定対象範囲を走査する際に1画素ずつではなく2画素以上ずらす方法である。図は10画素ずつずらす例を示している。判定対象とする範囲の総数が減れば全体の計算量は低減されるので、処理効率を高めることができる。なお、この手法を用いる場合には、図5(c)に例示したように、赤目の中心がずれたサンプル画像を多く用いて学習を行っておくことが好ましい。
【0077】
第4の手法は、解像度が低い画像を対象とした判定処理を最初に行う方法である。解像度が低い画像では、高解像度の画像と比べ、判定対象領域は相対的に大きくなるので、画像中の広い範囲をまとめて処理することができる。そこで、先に低解像度の画像で判定を行って、明らかに赤目が含まれていない領域を先に除外しておき、高解像度の画像を用いた判定では除外されなかった一部の領域についてのみ判定を行う。
【0078】
この手法は、例えば、赤目を有する人物が画像の下半分に配置されており、画像の上半分は真っ暗な夜景であるような画像で、特に有効である。図12(a)および図12(b)に、そのような画像を例示する。図12(a)は低解像度画像13、図12(b)は赤目検出装置に入力された画像S(高解像度画像)を表す。
【0079】
図12(a)と図12(b)から明らかであるように、先に低解像度画像13を用いて判定対象範囲8の全域走査を行えば、画像の上半分の赤目が含まれていない領域を、少ない計算処理で赤目候補から排除することができる。そこで、まず低解像度画像13の全域で判定対象範囲8を走査して、赤目候補を検出しておき、解像度の高い画像Sの赤目候補の周囲でのみ判定対象範囲8を走査して2回目の候補検出を行えば、判定の回数を大幅に低減することができる。なお、この手法を用いる場合には、図5(b)に例示したように、小さい赤目のサンプル画像を多く用いて学習を行っておくことが好ましい。
【0080】
次に、第3の手法や第4の手法と組み合わせて用いると効果的な第5の手法について、図13を参照して説明する。第3の手法や第4の手法では、少ない計算量で赤目候補を早く絞り込むことができるものの、検出される赤目候補の位置の検出精度は高いとは言えない。そこで、絞り込んだ赤目候補の周辺で、再度赤目候補の探索を行う。第4の手法を用いた場合には、赤目候補周辺の赤目候補の探索は、より高解像度の画像を対象に行う。
【0081】
例えば、第3の手法あるいは第4の手法により画素14を中心画素とする赤目候補が検出された場合には、画素14を中心とする判定対象範囲15を設定し、前回の判定と同じ、または前回の判定よりも精度の高い判定に用いられる特徴量、スコアテーブル、閾値を用いて、判定を行う。さらに、画素14に隣接する画素16を中心とする判定対象範囲17を設定し、同じく精度の高い判定を行う。
【0082】
同様に、画素14に隣接する他の7個の画素についても、その画素を中心とする判定対象範囲を設定し、赤目か否かの判定を行う。さらに、画素14に隣接する8個の画素を取り囲むように配置された16個の画素について、同様の判定を行ってもよい。それらの判定対象範囲のさらに外側に、画素14を中心とする判定対象範囲15と少なくとも一部が重複するような判定対象範囲を複数設定して、同様の判定を行ってもよい。
【0083】
この赤目候補の周辺領域の探索で別の赤目候補が検出された場合には、その赤目候補の座標(例えば画素16の座標)をリストに追加する。このように、赤目候補の周辺領域を丁寧に探索することによって、正確な赤目候補の位置を得ることができる。
【0084】
なお、この場合1つの赤目が重複して検出されることとなるので、探索終了後に前述のような整理を行う。具体的には、赤目候補の周辺領域の探索により赤目候補と判定されリストに追加された座標値のうち、判定の際に求めたスコアが最も高かった判定対象範囲の座標値をリストに残し、他の値はリストから削除する。
【0085】
なお、前述のように、第5の手法では、範囲を絞り込んだ後に再度赤目候補を探索するときの判定の精度を、前回行った判定の精度より高くすることで、検出される赤目候補の位置精度を高めることができる。以下に説明する第6の手法は、2回目以降の探索における判定精度を前回探索時の判定精度よりも高めたい場合に適した手法である。
【0086】
第6の手法では、前述の第2の手法と同様、特徴量を、比較的少ない計算量で算出できる特徴量と、算出に多くの計算を要する特徴量の2つのグループに分類しておく。
【0087】
図14は、第6の手法を用いた場合の判定処理の流れを示すフローチャートである。フローチャートに示すように、1回目の走査では、まず判定対象範囲を設定し(S201)、その判定対象範囲を対象として計算量が少ない特徴量のみを用いて判定を行い(S202)、画像の全域を走査し終えるまで(S203)、判定対象範囲を第3の手法として説明したように大まかに(2画素以上)ずらしながら同様の判定を繰り返す。あるいは、第4の手法として説明したように、低解像度の画像を対象とした走査および判定を行ってもよい。
【0088】
2回目の走査では、第5の手法として説明したように1回目の走査で検出された赤目候補の周辺に判定対象範囲を設定し(S204)、判定を行い(S206)、処理すべき赤目候補がなくなるまで(S207)、同様の判定を繰り返す。ステップS206で判定を行う際には、計算量が少ない特徴量と計算量が多い特徴量の両方を用いる。但し、ステップS206で計算量が少ない特徴量を用いた判定を行うときは、ステップS202で計算量が少ない特徴量を用いた判定を行うときよりも閾値を高く設定する。具体的には、ステップS202では、判定対象範囲の中心からはずれた位置に配置されている赤目も検出できるように低めの閾値を用いる。一方、ステップS206では、判定対象範囲の中心に位置する赤目しか検出できないような高めの閾値を用いる。これにより、検出される赤目の位置精度を高めることができる。
【0089】
なお、計算量に基づいて特徴量をグループ分けするときのグループ数は2グループに限定されるものではなく、3以上のグループに分類して段階的に判定の精度を高め(計算量が多くなるようにし)てもよい。また、1つのグループに属する特徴量は1種類でも複数種類でもよい。
【0090】
本実施の形態の赤目検出装置は、赤目候補の検出を行う際に、必要に応じて上記手法を単独で、あるいは組み合わせて用いるため、効率よく赤目候補を検出することができる。
【0091】
<顔検出処理2>
次に、顔検出処理2について説明する。顔検出処理2では、赤目候補検出処理1と同様に、画像上に判定対象範囲を設定して、その判定対象範囲内の画像が顔の特徴をどの程度備えているかを調べる。予めサンプル画像を用いた学習を行うことにより適切な特徴量やスコアテーブルを選出すること、学習により習得された最適な閾値を設定しておくこと、判定対象範囲において画素ごとに特徴量を算出した後その特徴量をスコアに換算し、集計スコアと閾値の比較により判定すること、画像の解像度を変化させながら探索を行うことなどは、赤目候補検出処理1と同じである。
【0092】
顔検出処理2では、画像の全領域において顔を探索することはせず、赤目候補検出処理1により検出された赤目候補を基準とし、赤目候補の周辺においてのみ顔の探索を行う。図15は、赤目候補18および19が検出された画像S上に、判定対象範囲20を設定した状態を表している。
【0093】
また、顔検出処理2では、図15に示すように判定対象範囲20を赤目候補周辺で平行に走査しながら顔を探索するのみならず、図16に示すように回転させながらの探索も行う。目(瞳孔)と異なり、顔は向きによって算出される特徴量の値が大きく変わってしまうからである。本実施の形態では、所定の向きで顔を検出できなかった場合には、判定対象範囲を30度回転させ、回転された判定対象範囲について再度特徴量の算出、特徴量のスコアへの換算、スコアの集計および閾値との比較を行う。
【0094】
顔検出処理2では、ウェーブレット変換により抽出される特徴量に基づいて、顔か否かの判定を行う。図17は、顔検出処理の流れを示すフローチャートである。
【0095】
赤目検出装置は、まず、判定対象範囲内の画像のY(輝度)成分に対し、ウェーブレット変換を施す(S301)。これにより、1/4の大きさのサブバンド画像、LL0画像、LH0画像、HL0画像およびHH0画像(以下これらを、0レベルの画像と称する)、1/16の大きさのサブバンド画像、LL1画像、LH1画像、HL1画像およびHH1画像が生成される(以下、1レベルの画像と称する)、1/64のサブバンド画像、LL2画像、LH2画像、HL2画像およびHH2画像が生成される(以下、2レベルの画像と称する)。
【0096】
その後、赤目検出装置は、ウェーブレット変換により得られたサブバンド画像を局所分散を用いて正規化し、量子化する(S302)。
【0097】
ウェーブレット変換により画像を分解した場合、分解により得られるLH画像は分解前の画像の水平方向のエッジの特徴が強調された画像となる。また、HL画像は垂直方向のエッジの特徴が強調された画像となる。このため、顔の判定処理では、図18に示すように、特徴量の算出は、0レベル、1レベルおよび2レベルのLH画像とHL画像を対象として行う(S303)。本実施の形態では、LH画像、HL画像のウェーブレット係数の、任意の4点の組み合わせを、顔らしさを現す特徴量と定義する。続いて、赤目候補検出処理1と同様に、算出された特徴量をスコアに換算し(S304)、求められた各画素のスコアを集計し(S305)、集計スコアを閾値と比較する(S305)。赤目検出装置は、集計スコアが閾値以上であれば顔、閾値よりも小さければ顔ではないと判断する。
【0098】
赤目検出装置は、上記探索により顔を検出できた場合には、探索の基準となった赤目候補と顔とを対応付けて顔リストに登録する。図15および図16に示した例では、赤目18と顔21の対応付けが顔リストに登録され、さらに赤目19と顔21の対応付けが顔リストに登録される。
【0099】
また、同じ顔が重複して検出された場合には、登録されている情報を整理する。上記例では、顔21と赤目候補18および19の情報が1つにまとめられ、それらの対応付けがあらためて顔リストに登録される。この顔リストは、後述する赤目推定処理3において参照される。
【0100】
<赤目推定処理3>
次に、赤目推定処理3について説明する。赤目推定処理3では、顔検出処理2において顔と対応付けられて記憶された赤目候補が赤目として推定することができるか否かをあらためて判定する。言い換えれば、赤目候補検出処理1の検出結果に対して精度を向上させるための検証を行うものであり、赤目候補検出処理1において行う赤目の判定よりも正確に行う必要がある。以下、赤目推定処理3における赤目の判定処理について説明する。
【0101】
図19は、赤目候補検出処理1において画像Sの中から検出された赤目候補18および19と、顔検出処理2において検出された顔21と、赤目推定処理3において画像S上に設定された探索範囲22を表している。赤目候補検出処理1は文字通り赤目候補を検出することが目的であったため、赤目を探索する範囲は画像全体であった。これに対し、赤目推定処理3は、赤目候補検出処理1の検出結果の検証が目的であるため、探索範囲は、図に示すように赤目候補の近傍に限定してよい。
【0102】
また、赤目推定処理3では、顔検出処理2において取得された顔の大きさや向きの情報を参照して、赤目候補の向きを推定し、赤目候補の大きさや向きにあった探索範囲を設定する。すなわち、瞳孔の上下方向が探索範囲の縦方向となるように探索範囲を設定する。図19に示した例は、探索範囲22を、顔21の傾きに合わせて斜めに設定したところを表している。
【0103】
次に、探索範囲22で行う赤目判定処理について説明する。図20は、図19に例示した赤目候補18近傍の探索範囲22を表す図である。赤目判定処理では、探索範囲22中に、判定対象領域23を設定する。
【0104】
続いて、赤目候補検出処理1で行う赤目判定と同じように、判定対象領域23の各画素について特徴量の計算を行い、計算により求められた特徴量をスコアテーブルを用いて赤目らしさを表すスコアに換算する。そして、判定対象領域23内のすべての画素に対応するスコアの集計値が閾値よりも大きければ赤目と判定し、閾値よりも小さければ赤目ではないと判定する。
【0105】
以降、探索範囲22内で、判定対象領域23を走査しながら、同様の判定を繰り返す。赤目推定処理3の場合には、赤目候補検出処理1と異なり、探索範囲22内には必ず赤目候補が存在する。したがって、探索範囲22内で判定対象領域23を走査しながら判定を行った場合には、多くの領域で赤目であるという判定結果が得られるはずである。探索範囲22内で判定対象領域23を走査しながら判定を行ったにも拘わらず、赤目であると判定された回数が少ないとすれば、その赤目候補18は赤目ではない可能性がある。これは、判定対象領域23を走査する過程で赤目と判定された回数が、赤目候補検出処理1の検出結果の信頼性を表す指標として有効であることを意味する。
【0106】
また、赤目推定処理3では、赤目候補検出処理1と同様、解像度の異なる複数の画像を対象として赤目の判定を行う。図21は、解像度の異なる画像S、24および26の赤目候補18周辺に、同じ大きさの探索領域22、25および27を設定した状態を表している。
【0107】
赤目推定処理3では、赤目候補検出処理1の場合と異なり、画像の解像度を細かく変更する。具体的には、図21(b)の画像24や図21(c)の画像26の画素数が、図21(a)の画像Sの画素数の、例えば98%、96%程度となるように細かく解像度を変化させる。
【0108】
図21の例では、探索範囲22内で判定対象領域を走査しながら判定を行ったときも、探索範囲27内で判定対象領域を走査しながら判定を行ったときも、赤目と判定される回数には大きな差は生じないはずである。したがって、例えば探索範囲22内では何回も赤目と判定されたのにも拘わらず、探索範囲27内では赤目と判定された回数が極端に少ないといった場合には、その赤目候補は赤目ではない可能性がある。このように、解像度の異なる画像を対象に判定を行った場合に何回赤目と判定されるかも、赤目候補検出処理1の検出結果の信頼度の目安となり得る。
【0109】
本実施の形態の赤目推定処理3では、各探索範囲内で赤目と判定された回数と、異なる解像度の画像上で赤目と判定された回数の合計を、その探索範囲の基準となった赤目候補が赤目と判定された回数とし、その回数が所定の回数より多い場合には、その赤目候補は真の赤目である可能性が高いとし、赤目と推定する。一方、その回数が所定の回数以下であるときは、その赤目候補は誤検出されたものであり、赤目ではないと判断する。この場合、赤目検出装置は、その赤目候補の情報を、その情報が記憶されているリストから削除する。
【0110】
赤目推定処理3では、赤目として推定された赤目候補に対して、その位置を確定する。前述のように、探索範囲内で判定対象領域を走査しながら判定を行った場合には、多くの判定対象領域で赤目であるという判定結果が得られる。そこで、本実施の形態では、赤目であるという判定結果が得られた複数の判定対象領域の中心座標の重み付け平均値を赤目の位置を表す値と定義している。重み付けは、判定対象領域を対象として赤目判定を行ったときに求める集計スコアに応じた重み付けをする。
【0111】
図22は、赤目の位置座標を確定する方法について説明するための図であり、探索範囲22と、赤目であるという判定結果が得られた判定対象領域の中心座標(図中の×印)を示している。このようにM個(Mは任意の整数。図の例では48。)の判定対象領域で赤目であるとの判定結果が得られた場合には、i番目(0≦i<M)の判定対象領域の中心座標を(xi,yi)、i番目の判定対象領域の赤目判定処理で得られた集計スコアをSiと表すこととすると、赤目の位置(x,y)は、次式(1)により表される。
【数1】

【0112】
図23は、以上に説明した赤目推定処理の流れをまとめたフローチャートである。フローチャートに示すように、赤目推定処理では、まず赤目候補の周辺に探索範囲を設定し(S401)、その探索範囲を対象として図19から図21を参照して説明したような赤目判定を行う(S402)。探索範囲の探索が終了したら(S403)、探索の過程で赤目と判定された回数を所定の値と比較する(S404)。赤目と判定された回数が所定値以下であれば、その赤目候補をリストから削除する。赤目と判定された回数が所定値より大きければ、該赤目候補を赤目として推定すると共に、次に図22を参照して説明した処理により赤目の位置を確定する(S405)。赤目候補検出処理1において検出された全ての赤目候補について上記処理が終了したら(S406)、赤目推定処理は終了する。
【0113】
なお、赤目推定処理3において探索範囲内で判定対象範囲を設定して赤目判定を行うときに算出する特徴量、スコア変換に用いるスコアテーブルおよび判定に用いる閾値は、赤目候補検出処理1において赤目判定に使用した特徴量、スコアテーブルおよび閾値をそのまま用いてもよいし、別途、赤目推定処理3用の特徴量、スコアテーブルおよび閾値を用意してもよい。
【0114】
赤目推定処理3用に特徴量、スコアテーブルおよび閾値を定義する場合には、学習を行う際に用いるサンプル画像として、標準的な赤目を表す画像のみを用いる。すなわち、大きさ、方向ともに似たような赤目のサンプル画像のみを集めて学習を行わせる。これにより、真の赤目以外は検出されないようにして、判定の精度を高める。
【0115】
赤目候補検出処理1の場合には、学習に用いるサンプル画像のバリエーションを少なくしてしまうと検出漏れが発生する可能性が高くなるので好ましくない。しかし、赤目推定処理3は、検出結果を検証する目的で行う処理であり、また赤目候補が検出された範囲を探索範囲とするため、学習しておくべきサンプル画像のバリエーションは比較的少なくてよい。赤目推定処理3では、学習に用いるサンプル画像のバリエーションが少ない分、赤目か否かの判定基準は厳しくなるため、赤目候補検出処理1よりも識別の精度は高くなる。
【0116】
本実施の形態において、赤目候補の検出、顔の検出、赤目の推定という3段階で赤目の検出を行っているため、従来の方法よりも処理が増加するように見える。しかしながら、実際には赤目推定処理3は、上記説明から明らかであるように、顔について複雑な特徴抽出処理を行うことに比べれば、計算量は遥かに少ない。また、対象範囲も赤目候補周辺に限定しているため、従来に比べて大幅に処理が増えたり、装置が複雑になったりすることはない。
【0117】
<正誤確認処理4>
次に正誤確認処理4の詳細について説明する。上述した3段階の処理、すなわち赤目候補検出処理1、顔検出処理2、赤目推定処理3の3つの処理によって、画像Sに赤目が無いという結果、または画像Sに赤目である可能性の高い赤目候補は赤目として推定されたという結果が得られる。正誤確認処理4は、赤目として推定された赤目候補が真の赤目であるか否かの確認を行う。具体的には、赤目として推定された赤目候補が目頭または目尻である否かの判別を行い、この判別の結果に基づいて正誤の確認をする。以下、赤目として推定された赤目候補が目頭または目尻である否かを判別する2つの例となる手法説明する。
【0118】
図24は、第1の手法の処理手順を示す図である。図示のように、本第1の手法では、黒目検出処理41aと確認実行処理41bとによって、赤目推定処理3により赤目として推定された赤目候補(例えば図2に示す赤目候補7a、7b)が真の赤目であるか否かを確認する。赤目推定処理3では、赤目候補検出処理1により得られた赤目候補に対して赤目候補検出処理1より精度の高い赤目判定処理を行うと共に、目のあるべき位置にある赤目候補を赤目候補から排除している。よって、赤目推定処理3により赤目として推定された赤目候補の位置が目のあるべき位置に存在する。しかし、図31に示すように、目尻と目頭の赤い部位(部位Aと部位B)も目のあるべき位置に存在するため、この2つの部位のいずれかが大きい人の写真画像の場合、赤目がないにもかかわらず、図31に示す部位Aと部位Bのような元々赤い部位が赤目として推定され、赤目の誤検出を来たしてしまうという問題がある。
【0119】
一方、瞳孔が赤目として写っていない写真画像においては、瞳孔が元の色として写った黒目が存在するはずである。この第1の手法では、このような事情に着目し、まず、顔検出処理2により検出された顔において、黒目を検出する黒目検出処理を行う。黒目を検出する処理では、従来の種々の方法を用いることができ、例えば前述した赤目候補検出処理1または赤目推定処理3に用いられた手法を適用すればよい。ここで、黒目検出の精度を高めるために、赤目候補検出処理1に用いられた手法よりも赤目推定処理3に用いられた手法を適用することが望ましい。なお、黒目検出処理41aにおいて、学習に使うサンプル画像として、赤目を表すサンプル画像の代わりに黒目を表すサンプル画像を用いる点を除けば、具体的な手法については赤目候補検出処理1または赤目推定処理3に用いられた手法と同じであるので、ここでその詳細な説明を省略する。
【0120】
確認実行処理41bは、黒目検出処理41aの検出結果に基づいて赤目推定処理3の推定結果の正誤の確認をする。具体的には、黒目検出処理41aにより黒目が検出されれば、赤目推定処理3により赤目として推定された赤目候補は目頭または目尻(より正確的には目頭または目尻の赤い部分)であり、赤目推定処理3の推定結果が誤りであると判断する一方、黒目検出処理41aにより黒目が検出されなければ、赤目推定処理3により赤目として推定された赤目候補は目頭または目尻ではなく、真の赤目であると判断する。そして、確認実行処理41bは、赤目推定処理3の推定結果が誤りである場合には、赤目が検出されていないことを示す情報を、赤目推定処理3の推定結果が正しいである場合には、赤目推定処理3により赤目として推定された赤目の位置情報を検出結果Kとして、出力する。
【0121】
図25は、第2の手法の手順を示す図である。図示のように、本第2の手法では、プロファイル作成処理42aと確認実行処理42bとによって、赤目推定処理3により赤目として推定された赤目候補が真の赤目であるか否かを確認する。図26、プロファイル作成処理42aについて説明する。
【0122】
プロファイル作成処理42aでは、赤目推定処理3により赤目として推定された2つの赤目候補の位置を結ぶ直線上の各画素の画素値のプロファイルを作成する。ここで、直線の長さは、2つの赤目候補の位置を左右端点とする長さではなく、顔検出処理2により検出された顔の外枠まで伸びた長さとする。また、画素値としては例えば輝度値Yを用いる。図26、図27、図28は、プロファイル作成処理42aにより作成されたプロファイルの例を示している。各図において、横軸Lは、2つの赤目候補の位置(図中E1、E2)を結ぶ直線上の各画素の位置を示すものであり、縦軸は横軸Lにより示される各位置の画素の夫々の輝度値Yを示すものである。なお、図中E0は、2つの赤目候補の位置E1、E2間の中心位置である。
【0123】
確認実行処理42bは、プロファイル作成処理42aにより得られたプロファイルを用いて、まず、赤目推定処理3により赤目として推定された赤目候補が目頭または目尻であるか否かの確認を行う。
【0124】
図26は、2つの赤目候補が目頭でも目尻でもなく、真の赤目である場合のプロファイルを示すものであり、図示のように、この場合のプロファイルは、赤目候補の位置E1、E2において、輝度値Yが最も低い谷となっており、この2つの谷の外側においても内側においても、該谷より低い谷が存在しない形となっている。
【0125】
また、図27は、2つの赤目候補が目尻である場合のプロファイルを示すものであり、図示のように、この場合のプロファイルは、赤目候補の位置E1、E2においても、輝度値Yが谷となっているが、この2つの谷の内側において、中心位置E0を中心点にして対称的に存在する、赤目候補位置E1、E2における谷よりもさらに輝度値が低い2つの谷がある形になっている。なお、赤目候補位置E1、E2における谷よりもさらに輝度値が低いこの2つの谷は、黒目の存在によってできたものである。
【0126】
また、図28は、2つの赤目候補が目頭である場合のプロファイルを示すものであり、図示のように、この場合のプロファイルは、赤目候補の位置E1、E2においても、輝度値Yが谷となっているが、この2つの谷の外側において、中心位置E0を中心点にして対称的に存在する、赤目候補位置E1、E2における谷よりもさらに輝度値が低い2つの谷がある形になっている。なお、赤目候補位置E1、E2における谷よりもさらに輝度値が低いこの2つの谷は、黒目の存在によってできたものである。
【0127】
確認実行処理42bでは、プロファイルを用いて確認を行うが、確認を実行する前に、前処理として、中心位置E0を含む範囲内に連続して存在する谷を除去する。画像に写った人物が濃色の眼鏡をかけた場合において、プロファイルにおいては、図29に示すように中心位置E0を中心点にしてに連続した谷が生じてしまうため、この前処理によって、眼鏡の影響を除去することができる。
【0128】
確認実行処理42bは、このような前処理を行って得たプロファイルが、図26、図27、図28のいずれに示すプロファイルに該当するかを確認し、図26に示すプロファイルに該当する場合には、赤目推定処理3により推定された赤目が目頭でも目尻でもない、すなわち赤目推定処理3の推定結果が正しいとし、赤目推定処理3により赤目として推定された赤目の位置情報を検出結果Kとして出力する一方、図27と図28とのいずれか一方に該当する場合には、赤目推定処理3により推定された赤目が目頭または目尻であり、すなわち赤目推定処理3の推定結果が誤りとし、赤目が検出されていないことを示す情報を、検出結果Kとして出力する。
【0129】
本実施の形態の赤目検出装置は、赤目推定処理3の推定結果の正誤を確認するのに際して、上述したいずれの手法を用いてもよい。
【0130】
<検出結果の利用>
赤目の検出結果は、例えば赤目の修正に利用される。図30は、赤目を修正する処理の一例を示す図である。例示した処理では、まず検出された赤目について、色差Crの値が所定の値を越えている画素を抽出する。続いて、モフォロジー処理を施して、その領域を整形する。最後に、整形した領域を構成する各画素の色を、瞳孔の色として適切な色(所定の明るさのグレーなど)に置き換える。
【0131】
なお、画像中の赤目の修正処理については、特開2000−13680号公報や、特開2001−148780号公報などにも開示がある。そのほか、公知のあらゆる手法を採用することができる。
【0132】
あるいは、赤目を検出した後、赤目現象が発生したことの警告のみ行い、赤目の修正は行わないという形態も考えられる。例えば、デジタルカメラに赤目検出機能を実装し、撮影直後の画像を対象として赤目検出処理を実行し、赤目が検出された際にカメラのスピーカから撮り直しを促す警告音を出力させる形態などが、これに相当する。
【0133】
このように、本実施形態によれば、検出された赤目が目頭または目尻であるか否かを判別することによって、赤目の誤検出を確実に防ぐことができる。
【0134】
また、本実施形態において、赤目を検出する目的は、通常、赤目を修正するためにあり、また、赤目が写った画像よりも黒目が写った画像(すなわち正常画像)のほうが多いため、赤目を推定してから、例えば黒目の検出を行って黒目が存在するか否かによってこの赤目が目頭目尻であるか否かを判別するようにし、効率よく赤目の検出を行うようにしているが、例えば赤目を検出する前にまず黒目の検出を行い、黒目が検出された画像に対して赤目が無いとするようにするが、黒目が検出されなかった画像に対してのみ赤目の検出を行うようにすることもできる。
【0135】
また、本発明の赤目検出装置は、上述した実施形態に限られることがなく、本発明の主旨を変えない限り、様々な増減、変更を加えることができる。例えば、本発明の実施例においては、人間の赤目検出について説明したが、人間以外の動物の異常目に対しても適用可能である。すなわち、人物の顔に代えて動物の顔を検出し、人物の顔の赤目に代えてその動物の顔の緑目や銀目などの異常目を検出するようにしてもよい。
【図面の簡単な説明】
【0136】
【図1】本実施の形態における赤目検出の手順を示す図
【図2】赤目検出の対象となる画像の一例を示す図
【図3】赤目検出の対象となる画像の一部を拡大して表した図
【図4】特徴量とスコアの対応関係の定義(スコアテーブル)の一例を示す図
【図5】赤目の学習用サンプルの例を示す図
【図6】N種類の判定処理の流れを示す図
【図7】赤目の検出と画像解像度の関係について説明するための図
【図8】重複検出された赤目候補に対する処理について説明するための図
【図9】特徴量の算出方法の一例を示す図
【図10】赤目候補検出処理の処理効率を高めるための第2の手法について説明するための図
【図11】赤目候補検出処理の処理効率を高めるための第3の手法について説明するための図
【図12】赤目候補検出処理の処理効率を高めるための第4の手法について説明するための図
【図13】赤目候補検出処理の処理効率を高めるための第5の手法について説明するための図
【図14】赤目候補検出処理の処理効率を高めるための第6の手法について説明するための図
【図15】顔検出処理における判定対象範囲の走査について説明するための図
【図16】顔検出処理における判定対象範囲の回転について説明するための図
【図17】顔検出処理の流れを示すフローチャート
【図18】顔検出処理における特徴量の算出方法について説明するための図
【図19】赤目推定処理における探索範囲の設定方法について説明するための図
【図20】図19の探索範囲内に設定された判定対象範囲の例を示す図
【図21】解像度の異なる画像上に探索範囲を設定した例を表す図
【図22】赤目の位置を確定する処理について説明するための図
【図23】赤目推定処理の流れを示すフローチャート
【図24】正誤確認処理の手順を示す図(その1)
【図25】正誤確認処理の手順を示す図(その2)
【図26】プロファイルの例を示す図(その1)
【図27】プロファイルの例を示す図(その2)
【図28】プロファイルの例を示す図(その3)
【図29】プロファイルの例を示す図(その4)
【図30】赤目修正処理の一例を示す図
【図31】目頭および目尻が赤目検出に及ぼす影響を説明するための図
【符号の説明】
【0137】
6,21 顔
7a,7b,7c,7d,11,12,18,19 赤目候補
8,9,10,15,17,23 赤目の判定対象範囲
13,24,26 低解像度画像
14,16 画素
20 顔の判定対象範囲
22,25,27 探索範囲

【特許請求の範囲】
【請求項1】
少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出し、
検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出し、
検出された顔に含まれる赤目候補を赤目として推定する赤目検出方法において、
赤目として推定された前記赤目候補が目頭または目尻であるか否かをさらに判別することによって前記赤目の推定結果の正誤を確認することを特徴とする赤目検出方法。
【請求項2】
検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定することを特徴とする請求項1記載の赤目検出方法。
【請求項3】
前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第1の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出し、
検出された前記赤目候補の前記スコアが前記第1の閾値より大きい第2の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認することを特徴とする請求項1または2記載の赤目検出方法。
【請求項4】
検出された前記顔の領域において、黒目の検出を行い、
該黒目の検出により黒目が検出された場合に、赤目として推定された前記赤目候補が目頭または目尻であると判別することを特徴とする請求項1、2または3記載の赤目検出方法。
【請求項5】
黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うことを特徴とする請求項4記載の赤目検出方法。
【請求項6】
赤目として推定された2つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得し、
前記プロファイルを用いて前記判別を行うことを特徴とする請求項1、2または3記載の赤目検出方法。
【請求項7】
前記プロファイルが、前記2つの赤目候補が真の赤目である場合のプロファイル、前記2つの赤目候補が目頭である場合のプロファイルおよび前記2つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うことを特徴とする請求項6記載の赤目検出方法。
【請求項8】
少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出する赤目候補検出手段と、
該赤目候補検出手段により検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出する顔検出手段と、
該顔検出手段により検出された顔に含まれる赤目候補を赤目として推定する赤目推定手段とを備えてなる赤目検出装置であって、
前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であるか否かを判別することによって、該赤目の推定結果の正誤を確認する正誤確認手段をさらに備えたことを特徴とする赤目検出装置。
【請求項9】
前記赤目推定手段が、前記顔検出手段により検出された顔に含まれる赤目候補の近傍の画像が備える特徴の中から、赤く表示された領域を有する瞳孔が備える特徴を前記赤目候補の検出時に行う識別より高い精度で識別し、該特徴を備えた赤目候補を赤目として推定するものであることを特徴とする請求項8記載の赤目検出装置。
【請求項10】
前記赤目候補検出手段が、前記画像における判定対象範囲の画像について、赤く表示された領域を有する瞳孔が備える特徴を表す特徴量を求めて、該特徴量に応じたスコアを算出し、該スコアが第1の閾値以上であるときに、前記判定対象範囲の画像が表す対象は赤目候補であると判定することによって、前記赤目候補を検出するものであり、
前記正誤確認手段が、検出された前記赤目候補の前記スコアが前記第1の閾値より大きい第2の閾値未満である場合にのみ、前記赤目の推定結果の正誤を確認するものであることを特徴とする請求項8または9記載の赤目検出装置。
【請求項11】
前記正誤確認手段が、前記顔検出手段により検出された前記顔の領域において、黒目の検出を行う黒目検出手段を備え、
該黒目検出手段により黒目が検出された場合に、前記赤目推定手段により赤目として推定された前記赤目候補が目頭または目尻であると判別するものであることを特徴とする請求項8、9または10記載の赤目検出装置。
【請求項12】
前記黒目検出手段が、黒目を表すサンプル画像と黒目以外の対象物を表すサンプル画像とを用いたマシーンラーニングの学習により、黒目らしさを表す特徴量、スコアテーブルおよび閾値を定義しておき、判定対象範囲の画像に対する前記特徴量を算出し、該特徴量に応じて前記スコアテーブルからスコアを算出し、該スコアが前記閾値以上のときに前記判定対象範囲を黒目であると判定することにより、前記黒目の検出を行うものであることを特徴とする請求項11記載の赤目検出装置。
【請求項13】
前記正誤確認手段が、前記赤目推定手段により赤目として推定された2つの前記赤目候補を結ぶ直線上の画素値のプロファイルを取得するプロファイル取得手段を備え、
該プロファイル取得手段により取得された前記プロファイルを用いて、前記判別を行うものであることを特徴とする請求項8、9または10記載の赤目検出装置。
【請求項14】
前記正誤確認手段が、前記プロファイルが、前記2つの赤目候補が真の赤目である場合のプロファイル、前記2つの赤目候補が目頭である場合のプロファイルおよび前記2つの赤目候補が目尻である場合のプロファイルのうちいずれに該当するかを確認することにより、前記判別を行うものであることを特徴とする請求項13記載の赤目検出装置。
【請求項15】
少なくとも一部が赤く表示された領域を有する瞳孔が備える特徴を識別することによって、赤目と推定し得る赤目候補を画像から検出する処理と、
検出された前記赤目候補の周辺の画像に対して、顔が備える特徴を識別することによって、前記赤目候補を含む顔を検出する処理と、
検出された顔に含まれる赤目候補を赤目として推定する処理とをコンピュータに実行させるプログラムであって、
赤目として推定された前記赤目候補が目頭または目尻であるか否かを判別することによって前記赤目の推定結果の正誤を確認する処理をさらにコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2006−285956(P2006−285956A)
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願番号】特願2006−30581(P2006−30581)
【出願日】平成18年2月8日(2006.2.8)
【出願人】(000005201)富士写真フイルム株式会社 (7,609)
【Fターム(参考)】