JP2008129665A - 画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム - Google Patents
画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム Download PDFInfo
- Publication number
- JP2008129665A JP2008129665A JP2006310980A JP2006310980A JP2008129665A JP 2008129665 A JP2008129665 A JP 2008129665A JP 2006310980 A JP2006310980 A JP 2006310980A JP 2006310980 A JP2006310980 A JP 2006310980A JP 2008129665 A JP2008129665 A JP 2008129665A
- Authority
- JP
- Japan
- Prior art keywords
- eye
- red
- point
- color difference
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
- Image Analysis (AREA)
Abstract
【課題】顔を撮影した画像からその顔に含まれる赤目領域を適切に抽出することを目的とする。
【解決手段】記録メディア300等の記録媒体や撮像部400から入力された画像データに含まれる顔を検出するとともにその検出された顔に含まれる目領域を設定する画像処理装置において、その目領域において左右方向の各ラインにおける色差の値を抽出するとともに抽出された色差の値の変化の態様に基づいて左右方向の各ラインにおける赤目領域候補を抽出し、さらに、抽出された赤目領域候補からノイズが除去された後に存在する赤目領域候補に基づいて設定された範囲内を上下方向の各ラインにおける色差の値を抽出するとともに抽出された色差の値の変化の態様に基づいて上下方向の各ラインにおける赤目領域候補を抽出し、左右方向および上下方向の各ラインにおける赤目領域候補に基づいて目領域に含まれる赤目領域を設定する。
【選択図】図1
【解決手段】記録メディア300等の記録媒体や撮像部400から入力された画像データに含まれる顔を検出するとともにその検出された顔に含まれる目領域を設定する画像処理装置において、その目領域において左右方向の各ラインにおける色差の値を抽出するとともに抽出された色差の値の変化の態様に基づいて左右方向の各ラインにおける赤目領域候補を抽出し、さらに、抽出された赤目領域候補からノイズが除去された後に存在する赤目領域候補に基づいて設定された範囲内を上下方向の各ラインにおける色差の値を抽出するとともに抽出された色差の値の変化の態様に基づいて上下方向の各ラインにおける赤目領域候補を抽出し、左右方向および上下方向の各ラインにおける赤目領域候補に基づいて目領域に含まれる赤目領域を設定する。
【選択図】図1
Description
本発明は、画像処理装置に関し、特に、顔が含まれる画像からその顔における赤目領域を抽出する画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
暗い場所においてデジタルスチルカメラ等の撮像装置で被写体を撮影する場合、フラッシュやストロボを用いて撮影する場合が多い。このような暗い場所で被写体として人間を撮影する場合に、フラッシュ等を用いて撮影すると、人の目が赤色や金色に光って写ってしまう、いわゆる赤目現象が発生することが多い。
このように、フラッシュ等を用いて撮影すると赤目現象が発生することが多いため、撮影した画像(撮影画像)から赤目を検出し、検出された赤目を画像処理によって自動的に補正するデジタルスチルカメラ等の撮像装置が多数提案されている。このような赤目に関する画像処理を行うためには、補正対象である赤目領域を撮影画像から抽出する必要がある。
例えば、撮影画像から顔領域を検出し、検出された顔領域においてクラスタリング処理された目や口等の特徴的部位の特徴領域を検出し、検出された特徴領域の色判別処理により赤目の候補となる赤目候補画素を抽出し、抽出された赤目候補画素をさらにクラスタリングして赤目候補領域とし、この赤目候補領域の特性に関して所定の演算により評価値を算出し、算出された評価値と所定の閾値とを比較した結果に基づいて赤目領域を抽出する画像処理方法が提案されている(例えば、特許文献1参照。)。
特開2005−108197号公報(図1)
上述の従来技術によれば、色判別処理により抽出された赤目候補画素に対応する赤目候補領域の特性に基づく評価値と所定の閾値とを比較した結果に基づいて赤目領域を抽出することができる。
しかしながら、いわゆる赤目現象は、人の目が赤色や金色に光って写ってしまう現象であるものの、撮影環境や撮影条件等によっては人の目が真っ赤になるものから明るい茶色になるものまで多種のパターンがある。このように、いわゆる赤目現象は、多種のパターンがあるため、顔領域において検出された特徴領域から色判別処理により赤目の候補となる赤目候補画素を抽出する場合、適切な赤目候補画素を抽出することができない場合がある。
また、例えば、赤みの低い赤目について赤目補正処理を実行する場合には、赤みの低い赤目に対応する色判別処理を実行するとともに、赤みの低い赤目に対応する閾値を設定することが考えられる。しかし、このような処理を実行する場合には、赤みの低い赤目を赤目領域として抽出することができるものの、赤みを帯びた瞼(まぶた)やまつ毛部分等を赤目領域として抽出してしまうことがある。このため、例えば、赤みの低い赤目について赤目補正処理を実行する場合に、補正対象である赤目領域を適切に抽出できないという問題が発生する。
以上で示したように、従来技術では、人間の顔を撮影した画像からその顔に含まれる赤目領域を適切に抽出することができず、いわゆる赤目現象が発生した場合に適切な赤目補正をすることができないという問題があった。
そこで、本発明は、顔を撮影した画像からその顔に含まれる赤目領域を適切に抽出することを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、画像データを入力する入力手段と、上記入力手段により入力された画像データに含まれる顔を検出する顔検出手段と、上記顔検出手段により検出された顔に含まれる目領域を設定する目領域設定手段と、上記目領域設定手段により設定された目領域において所定方向の各ラインにおける色差の値を抽出する色差抽出手段と、上記色差抽出手段により抽出された色差の値の変化の態様に基づいて上記所定方向の各ラインにおける赤目領域候補を抽出する赤目領域候補抽出手段と、上記赤目領域候補抽出手段により抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手段と、上記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて上記目領域設定手段により設定された目領域に含まれる赤目領域を設定する赤目領域設定手段とを具備することを特徴とする画像処理装置、およびこれにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラムである。なお、第1の側面乃至第3の側面においては、上記色差抽出手段により抽出された色差の値のうちの色差(赤)の値を用いる。これにより、画像データに含まれる顔における目領域を設定し、その目領域において所定方向の各ラインにおける色差の値の変化の態様に基づいて各ラインにおける赤目領域候補を抽出するとともにその赤目領域候補の中からノイズである赤目領域候補を除去し、ノイズが除去された後に存在する赤目領域候補に基づいてその目領域に含まれる赤目領域を設定するという作用をもたらす。
また、この第1の側面において、上記赤目領域候補抽出手段は、上記所定方向の一のラインにおいて上記色差抽出手段により抽出された色差の値が一定の増加をする範囲である増加範囲と当該増加範囲の後に上記抽出された色差の値が一定の減少をする範囲である減少範囲とを含む特徴範囲を検出して当該検出された特徴範囲の中から当該一のラインにおける赤目領域候補を抽出することができる。これにより、所定方向の一のラインにおいて抽出された色差の値が一定の増加をする増加範囲と、その増加後にその色差の値が一定の減少をする減少範囲とを含む特徴範囲を検出し、その特徴範囲の中から当該一のラインにおける赤目領域候補を抽出するという作用をもたらす。この場合において、上記赤目領域候補抽出手段は、上記増加範囲において上記色差抽出手段により抽出された色差の値が上記所定方向における1画素前の色差の値よりも第1閾値以上の値となる最初の点である第1の端点を検出するとともに上記減少範囲において上記色差抽出手段により抽出された色差の値が上記特徴範囲における色差の最大値に基づいて決定される第2閾値よりも小さくなった後に最初に増加する点の上記所定方向における1画素前の点である第2の端点を検出して上記検出された第1の端点と第2の端点との範囲を第2の特徴範囲とし当該第2の特徴範囲の中から上記一のラインにおける赤目領域候補を抽出することができる。これにより、増加範囲において抽出された色差の値が、所定方向における1画素前の色差の値よりも第1閾値以上の値となる最初の点である第1の端点を検出するとともに、減少範囲において抽出された色差の値が、特徴範囲における色差の最大値に基づいて決定される第2閾値よりも小さくなった後に最初に増加する点の所定方向における1画素前の点である第2の端点を検出し、その第1の端点と第2の端点との範囲である第2の特徴範囲の中から一のラインにおける赤目領域候補を抽出するという作用をもたらす。
また、この第1の側面において、上記赤目領域候補抽出手段は、上記検出された特徴範囲の中から範囲内の色差の最大値が第3閾値以下である特徴範囲または範囲内の色差の最大値と最小値との差の値が第4閾値よりも小さい特徴範囲を除去することができる。これにより、特徴範囲における色差の最大値が第3閾値以下である場合、または、その特徴範囲における色差の最大値と最小値との差の値が第4閾値よりも小さい場合には、その特徴範囲を除去するという作用をもたらす。
また、この第1の側面において、上記赤目領域候補抽出手段は、上記一のラインに複数の特徴範囲が存在する場合において当該複数の特徴範囲のうちの隣り合う2つの特徴範囲における色差の最大値の差の値が第5閾値の範囲内であるとともに当該隣り合う2つの特徴範囲における中央点または範囲内最大値に対応する点の上記所定方向の差の値が第6閾値の範囲内である場合には当該2つの特徴範囲を一の特徴範囲として連結することができる。これにより、一のラインに複数の特徴範囲が存在する場合において、それらの特徴範囲のうちの隣り合う2つの特徴範囲における色差の最大値の差の値が第5閾値の範囲内であるとともに、その隣り合う2つの特徴範囲における中央点または範囲内最大値に対応する点の所定方向の差の値が第6閾値の範囲内である場合には、その2つの特徴範囲を一の特徴範囲として連結するという作用をもたらす。
また、この第1の側面において、上記赤目領域候補抽出手段は、上記第2の特徴範囲に含まれる増加範囲において上記色差抽出手段により抽出された色差の値が第7閾値以下の値となる点を第1点とし、当該第1点の上記所定方向における1画素前の点を第2点とし、当該第1点の上記所定方向における1画素後の点を第3点とした場合において当該第1点および当該第3点の色差の値の差の値が当該第1点および当該第2点の色差の値の差の値よりも第8閾値を超えて大きい場合における当該第1点のうちで最も中央点側にある点を修正第1の端点とし、上記第2の特徴範囲に含まれる減少範囲において上記色差抽出手段により抽出された色差の値が第9閾値以下の値となる点を第4点とし、当該第4点の上記所定方向における1画素後の点を第5点とし、当該第4点の上記所定方向における1画素前の点を第6点とした場合において当該第4点および当該第6点の色差の値の差の値が当該第4点および当該第5点の色差の値の差の値よりも第10閾値を超えて大きい場合における当該第4点のうちで最も中央点側にある点を修正第2の端点とし、上記修正第1の端点と上記修正第2の端点との範囲を修正第2の特徴範囲とし、当該修正第2の特徴範囲の中から上記一のラインにおける赤目領域候補を抽出することができる。これにより、第1点と第2点と第3点とに基づいて求められる修正第1の端点と、第4点と第5点と第6点とに基づいて求められる修正第2の端点との範囲を修正第2の特徴範囲とし、修正第2の特徴範囲の中から一のラインにおける赤目領域候補を抽出するという作用をもたらす。この場合において、上記色差抽出手段は、上記目領域設定手段により設定された目領域において上記所定方向の各ラインにおける色差の値とともに輝度の値を抽出し、上記赤目領域候補抽出手段は、上記第2の特徴範囲に含まれる増加範囲において上記色差抽出手段により抽出された色差の値が第7閾値以下の値となる点を第7点とし、当該第7点の上記所定方向における1画素前の点を第8点とした場合において当該第8点の輝度の値から当該第7点の輝度の値を引いて求められる差の値が第15閾値を超えている場合における当該第7点のうちで最も中央点側にある点を修正第1の端点候補とし、当該修正第1の端点候補と上記修正第1の端点とのうちで中央点側にある点を第3の端点とし、上記第2の特徴範囲に含まれる減少範囲において上記色差抽出手段により抽出された色差の値が第9閾値以下の値となる点を第9点とし、当該第9点の上記所定方向における1画素後の点を第10点とした場合において当該第10点の輝度の値から当該第9点の輝度の値を引いて求められる差の値が第16閾値を超えている場合における当該第9点のうちで最も中央点側にある点を修正第2の端点候補とし当該修正第2の端点候補と上記修正第2の端点とのうちで中央点側にある点を第4の端点とし、上記第3の端点と上記第4の端点との範囲を修正第2の特徴範囲とし、当該修正第2の特徴範囲の中から上記一のラインにおける赤目領域候補を抽出することができる。これにより、第7点の輝度の値と第8点の輝度の値とに基づいて求められる修正第1の端点候補と修正第1の端点とのうちで中央点側にある点を第3の端点とし、第9点の輝度の値と第10点の輝度の値とに基づいて求められる修正第2の端点候補と修正第2の端点とのうちで中央点側にある点を第4の端点とし、第3の端点と第4の端点との範囲を修正第2の特徴範囲とし、修正第2の特徴範囲の中から上記一のラインにおける赤目領域候補を抽出するという作用をもたらす。
また、この第1の側面において、上記色差抽出手段は、上記目領域設定手段により設定された目領域において上記所定方向の各ラインにおける色差の値とともに輝度の値を抽出し、上記赤目領域候補抽出手段は、上記修正第2の特徴範囲の中から上記修正第1の端点および修正第2の端点の輝度の値が第11閾値以上となる修正第2の特徴範囲を除去することができる。これにより、修正第2の特徴範囲の中から、修正第1の端点および修正第2の端点の輝度の値が第11閾値以上となる修正第2の特徴範囲を除去するという作用をもたらす。
また、この第1の側面において、上記ノイズ除去手段は、上記抽出された各ラインの赤目領域候補のうちで色差の値が最大となるラインの赤目領域候補を基準領域に設定した場合において上記各ラインの赤目領域候補のうちでその一部の領域範囲が当該基準領域の上記所定方向における範囲内に存在するとともにその色差の最大値が上記基準領域の色差の最大値に基づいて求められた第12閾値以上であるもの以外の赤目領域候補を除去することができる。これにより、各ラインの赤目領域候補のうちで色差の値が最大となるラインの赤目領域候補を基準領域に設定し、各ラインの赤目領域候補のうちでその一部の領域範囲が基準領域の所定方向における範囲内に存在するとともにその色差の最大値が第12閾値以上であるもの以外の赤目領域候補を除去するという作用をもたらす。
また、この第1の側面において、上記ノイズ除去手段は、上記各ラインのうちで一のラインに複数の赤目領域候補が存在する場合には当該一のラインに存在する複数の赤目領域候補のうちから赤目領域候補の範囲内における色差の値が最大となる赤目領域候補以外の赤目領域候補を除去することができる。これにより、各ラインのうちで一のラインに複数の赤目領域候補が存在する場合には、それらの複数の赤目領域候補のうちから赤目領域候補の範囲内における色差の値が最大となる赤目領域候補以外の赤目領域候補を除去するという作用をもたらす。
また、この第1の側面において、上記ノイズ除去手段は、上記抽出された各ラインの赤目領域候補のうちで上記所定方向の幅が上記顔検出手段により検出された顔に対応する顔領域の大きさに基づいて算出された最大瞳孔サイズよりも大きい赤目領域候補が存在する場合には当該赤目領域候補が存在するライン以外のラインにおける赤目領域候補の上記所定方向の修正第1の端点および修正第2の端点の平均値を求めて当該平均値を上記最大瞳孔サイズよりも大きい赤目領域候補の修正第1の端点および修正第2の端点の値と置き換えることができる。これにより、各ラインの赤目領域候補のうちで、所定方向の幅が最大瞳孔サイズよりも大きい赤目領域候補が存在する場合には、その赤目領域候補が存在するライン以外のラインにおける赤目領域候補の所定方向の修正第1の端点および修正第2の端点の平均値を求め、その平均値を、最大瞳孔サイズよりも大きい赤目領域候補の修正第1の端点および修正第2の端点の値と置き換えるという作用をもたらす。
また、この第1の側面において、上記ノイズ除去手段は、上記赤目領域候補抽出手段により抽出された赤目領域候補が存在する各ラインのうちで上記所定方向と直行する方向である直行方向における端部に存在するラインについてその1画素隣のラインに赤目領域候補が存在しない場合には当該端部のラインに存在する赤目領域候補を除去することができる。これにより、赤目領域候補が存在する各ラインのうちで、直行方向における端部に存在するラインについて、その1画素隣のラインに赤目領域候補が存在しない場合には、その端部のラインに存在する赤目領域候補を除去するという作用をもたらす。
また、この第1の側面において、上記顔検出手段により検出された顔の縦横比を保持した状態で当該顔に対応する顔画像の大きさを上記色差抽出手段による色差の値の抽出に適する大きさに変換するとともに当該顔に対応する顔画像を上記色差抽出手段による色差の値の抽出に適する解像度に変換する正規化手段を具備することができる。これにより、検出された顔の縦横比を保持した状態で、その顔画像の大きさを色差の値の抽出に適する大きさに変換するとともに、その顔に対応する顔画像を色差の値の抽出に適する解像度に変換するという作用をもたらす。
また、この第1の側面において、上記赤目領域設定手段は、上記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて上記目領域設定手段により設定された目領域に矩形枠を配置するとともに当該矩形枠に基づいて円形枠を配置して当該矩形枠と当該円形枠との重複範囲を赤目領域として設定することができる。これにより、ノイズが除去された後に存在する赤目領域候補に基づいて目領域に矩形枠を配置するとともに、その矩形枠に基づいて円形枠を配置し、矩形枠と円形枠との重複範囲を赤目領域として設定するという作用をもたらす。
また、本発明の第2の側面は、画像データを入力する入力手段と、上記入力手段により入力された画像データに含まれる顔を検出する顔検出手段と、上記顔検出手段により検出された顔に含まれる目領域を設定する目領域設定手段と、上記目領域設定手段により設定された目領域において所定方向の各ラインにおける色差の値を抽出する第1の色差抽出手段と、上記第1の色差抽出手段により抽出された色差の値の変化の態様に基づいて上記所定方向の各ラインにおける赤目領域候補を抽出する第1の赤目領域候補抽出手段と、上記第1の赤目領域候補抽出手段により抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手段と、上記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて設定された範囲内において上記所定方向と直行する方向である直行方向の各ラインにおける色差の値を抽出する第2の色差抽出手段と、上記第2の色差抽出手段により抽出された色差の値の変化の態様に基づいて上記直行方向の各ラインにおける赤目領域候補を抽出する第2の赤目領域候補抽出手段と、上記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補と上記第2の赤目領域候補抽出手段により抽出された赤目領域候補とに基づいて上記目領域設定手段により設定された目領域に含まれる赤目領域を設定する赤目領域設定手段とを具備することを特徴とする画像処理装置、およびこれにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、画像データに含まれる顔における目領域を設定し、その目領域において所定方向の各ラインにおける色差の値の変化の態様に基づいて各ラインにおける赤目領域候補を抽出するとともにその赤目領域候補の中からノイズである赤目領域候補を除去し、さらに、ノイズが除去された後に存在する赤目領域候補に基づいて設定された範囲内において直行方向の各ラインにおける色差の値を抽出するとともにこの抽出された色差の値の変化の態様に基づいて直行方向の各ラインにおける赤目領域候補を抽出し、この抽出された赤目領域候補と、ノイズが除去された後に存在する赤目領域候補とに基づいてその目領域に含まれる赤目領域を設定するという作用をもたらす。
また、本発明の第3の側面は、被写体の画像を撮像する撮像手段と、上記撮像手段により撮像された画像に対応する画像データを入力する入力手段と、上記入力手段により入力された画像データに含まれる顔を検出する顔検出手段と、上記顔検出手段により検出された顔に含まれる目領域を設定する目領域設定手段と、上記目領域設定手段により設定された目領域において所定方向の各ラインにおける色差の値を抽出する色差抽出手段と、上記色差抽出手段により抽出された色差の値の変化の態様に基づいて上記所定方向の各ラインにおける赤目領域候補を抽出する赤目領域候補抽出手段と、上記赤目領域候補抽出手段により抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手段と、上記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて上記目領域設定手段により設定された目領域に含まれる赤目領域を設定する赤目領域設定手段とを具備することを特徴とする撮像装置、およびこれにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、画像データに含まれる顔における目領域を設定し、その目領域において所定方向の各ラインにおける色差の値の変化の態様に基づいて各ラインにおける赤目領域候補を抽出するとともにその赤目領域候補の中からノイズである赤目領域候補を除去し、ノイズが除去された後に存在する赤目領域候補に基づいてその目領域に含まれる赤目領域を設定するという作用をもたらす。
本発明によれば、顔を撮影した画像からその顔に含まれる赤目領域を適切に抽出することができるという優れた効果を奏し得る。
次に本発明の実施の形態について図面を参照して詳細に説明する。
図1は、本発明の実施の形態における画像処理装置100の機能構成例を示すブロック図である。
画像処理装置100は、CPU110と、RAM120と、カメラ信号処理エンジン130と、解像度変換エンジン140と、画像圧縮伸張エンジン150と、顔検出エンジン160と、目頭目尻検出エンジン170と、画像回転エンジン180と、画像表示エンジン190と、外部メディアコントローラ200と、データバス210と、画像信号用バス220と、バス230とを備える。
また、画像処理装置100は、記録メディア300と、撮像部400と、画像表示装置500とに接続される。
記録メディア300は、JPEG(Joint Photographic Experts Group)形式の画像データ等の各種データを記録する情報記録媒体である。
撮像部400は、光学系と撮像素子とから構成され、光学系を通して撮影された画像を画像信号に光電変換し、光電変換された画像信号をカメラ信号処理エンジン130に出力するものである。
画像表示装置500は、画像表示エンジン190から出力された各種画像データに対応する画像を表示する画像表示装置である。画像表示装置として、例えば、液晶ディスプレイ(LCD)や電子ビューファインダ(EVF)が用いられる。
CPU(Central Processing Unit)110は、各種制御プログラムに基づいて画像処理装置100全体を制御するものである。
RAM(Random Access Memory)120は、各種データを格納するメモリであり、画像処理のための各種の画像保存領域を備える。具体的には、RAM120は、再生画像保存領域120aと、顔検出用画像保存領域120bと、目検出用顔画像保存領域120cと、赤目領域抽出用顔画像保存領域120dとを備える。再生画像保存領域120aは、画像圧縮伸張エンジン150により展開された静止画像データ等を保存する保存領域である。顔検出用画像保存領域120bは、顔検出エンジン160が静止画像データから顔画像を検出する場合に、解像度変換エンジン140により顔検出に適した解像度に変換された静止画像データ等を保存する保存領域である。目検出用顔画像保存領域120cは、目頭目尻検出エンジン170が顔画像を含む周辺画像から目尻および目頭を検出する場合に、解像度変換エンジン140により解像度変換された周辺画像等を保存する保存領域である。赤目領域抽出用顔画像保存領域120dは、CPU110が顔画像を含む周辺画像から赤目領域を抽出する場合に、解像度変換エンジン140により解像度変換された周辺画像等を保存する保存領域である。また、RAM120は、顔検出、目頭目尻検出をする場合に用いられる各種サンプル画像を格納する。
カメラ信号処理エンジン130は、撮像部400から出力された画像信号に対して適正な信号処理を施して画像信号用バス220に出力するものである。
解像度変換エンジン140は、入力された各種画像データを各画像処理に適した解像度に変換するものである。
画像圧縮伸張エンジン150は、入力された各種画像データを各画像処理に応じて圧縮または伸張するものである。
顔検出エンジン160は、RAM120の顔検出用画像保存領域120bに保存されている静止画像から顔画像を検出するものである。具体的には、顔検出エンジン160は、顔検出用画像保存領域120bに保存されている静止画像に含まれている顔画像について顔領域の位置、大きさ、顔の向き等を検出する。なお、顔検出用画像保存領域120bに保存されている静止画像に複数の顔画像が含まれている場合には、検出可能な複数の顔画像を顔検出エンジン160が検出する。
図2(a)は、顔検出エンジン160が画像P1から顔F1〜F3を検出する場合における検出例の概略を示す図である。ここで、画像P11〜P13は、顔F1〜F3を含む周辺画像である。
目頭目尻検出エンジン170は、RAM120の目検出用顔画像保存領域120cに保存されている顔画像を含む周辺画像から左右の目頭および目尻を検出するものである。
図2(b)は、目頭目尻検出エンジン170が画像P11から右目の目頭を検出する場合における検出例の概略を示す図であり、図2(c)は、目頭目尻検出エンジン170が画像P11から右目の目尻を検出する場合における検出例の概略を示す図である。目頭目尻検出エンジン170は、判別対象枠W1を用いて、図2(b)に示すように、画像P11から右目の目頭を検出し、図2(c)に示すように、画像P11から右目の目尻を検出する。なお、左目の目頭および目尻についても同様に目頭目尻検出エンジン170が検出する。
画像回転エンジン180は、RAM120の目検出用顔画像保存領域120cに保存されている周辺画像に含まれる顔が当該顔の前後方向を軸にして回転している場合(顔の向きが正面を向いている場合であって顔の上下左右方向と顔を含む周辺画像の上下左右方向が一致していない場合を意味し、以下では、「顔が回転している場合」と称する。)に、当該顔の上下左右方向と周辺画像の上下左右方向とが一致するように当該顔画像を回転処理するための画像処理を実行するものである。
画像表示エンジン190は、CPU110の制御に基づいて、各種画像データを画像表示装置500に出力するものである。
外部メディアコントローラ200は、記録メディア300と接続され、記録メディア300から入力された画像データをデータバス210を介してRAM120等に出力するとともに、各種画像データを記録メディア300に出力するものである。
次に本発明の実施の形態における画像処理装置100の動作について図面を参照して説明する。
図3は、画像処理装置100による赤目補正処理の処理手順を示すフローチャートである。
本実施の形態では、画像処理装置100において記録メディア300に記録されているJPEG画像データを再生する場合における赤目補正処理の例について説明する。
最初に、画像処理装置100において、記録メディア300に記録されているJPEG画像データに対応する画像から顔画像を検出する顔検出処理が実行される(ステップS901〜ステップS904)。
具体的には、JPEG画像データが保存されている記録メディア300が外部メディアコントローラ200に接続されると、記録メディア300に保存されているJPEG画像データが読み出され、読み出されたJPEG画像データが外部メディアコントローラ200を経由してRAM120に出力される(ステップS901)。そして、読み出されたJPEG画像データがRAM120に保存される。
続いて、RAM120に保存されているJPEG画像データが画像圧縮伸張エンジン150に転送される。JPEG画像データが転送されると、転送されたJPEG画像データを画像圧縮伸張エンジン150が伸張して静止画像データとして展開する(ステップS902)。
続いて、画像圧縮伸張エンジン150により展開された静止画像データが、RAM120の再生画像保存領域120aに順次転送されて保存される。
RAM120に保存されているJPEG画像データの全ての画像データについて展開・転送処理が終了した後に、RAM120の再生画像保存領域120aに保存されている静止画像データが解像度変換エンジン140に転送される。続いて、解像度変換エンジン140に静止画像データが転送されると、転送された静止画像データを解像度変換エンジン140が顔検出に適した解像度に変換する(ステップS903)。続いて、解像度変換された静止画像データがRAM120の顔検出用画像保存領域120bに出力され、顔検出用画像保存領域120bに保存される。
続いて、顔検出用画像保存領域120bに保存されている静止画像データが顔検出エンジン160に入力される。静止画像データが顔検出エンジン160に入力されると、静止画像データに対応する画像から顔画像を顔検出エンジン160が検出する(ステップS904)。例えば、図2(a)に示すように、画像P1が顔検出エンジン160に入力されると、画像P1に含まれる人間の顔F1〜F3を検出する。このとき、顔検出エンジン160は、検出された顔について、その顔の顔領域の位置と大きさと顔の向きとを含む顔情報を生成する。さらに、図2(a)に示すように、静止画像データに対応する画像に複数の顔が含まれている場合には、その複数人の顔を検出する。なお、静止画像データに対応する画像から顔画像を検出する場合には、図4に示す目頭検出方法と同様に、静止画像データに対応する画像を順次縮小し、縮小された画像について顔検出エンジン160が顔検出処理を順次実行する。
次に、顔検出エンジン160によって検出された顔画像から目頭および目尻を検出し、その検出された目頭および目尻から目領域を設定する目領域設定処理が実行される(ステップS905〜ステップS909、ステップS950)。
具体的には、顔検出エンジン160が検出した顔の顔領域の位置および大きさは、顔検出用画像に対応する位置および大きさであるため、顔検出エンジン160が検出した顔の顔領域の位置および大きさは再生画像に対応する位置および大きさに変換される(ステップS905)。
続いて、顔検出エンジン160が検出した顔領域の位置および大きさに基づいて、再生画像保存領域120aに保存されている静止画像データに対応する画像から顔領域とその周辺部が取り出され(ステップS906)、その取り出された顔画像を含む周辺画像が解像度変換エンジン140に出力される。なお、顔検出エンジン160によって検出された顔画像が複数存在する場合には、それぞれの顔画像について同様に処理される。例えば、図2(a)に示す画像P1から画像P11〜P13が取り出され、取り出された画像P11〜P13が解像度変換エンジン140に出力される。
周辺画像が解像度変換エンジン140に入力されると、解像度変換エンジン140は入力された周辺画像を目頭目尻検出に適する解像度に変換する(ステップS907)。その結果、解像度変換エンジン140は、解像度変換された周辺画像をRAM120の目検出用顔画像保存領域120cに出力する。すなわち、解像度変換された周辺画像が目検出用顔画像保存領域120cに保存される。
続いて、目検出用顔画像保存領域120cに保存されている周辺画像に含まれる顔が回転している場合には、その周辺画像が画像回転エンジン180に出力される。周辺画像が画像回転エンジン180に入力されると、周辺画像に含まれる顔の上下左右方向と周辺画像の上下左右方向とが一致するように、周辺画像に含まれる顔を画像回転エンジン180が回転補正し(ステップS908)、その回転補正された周辺画像を目検出用顔画像保存領域120cに出力する。すなわち、その回転補正された周辺画像が目検出用顔画像保存領域120cに保存される。
続いて、目検出用顔画像保存領域120cに保存されている周辺画像が目頭目尻検出エンジン170に出力される。周辺画像が目頭目尻検出エンジン170に入力されると、入力された周辺画像において目頭目尻検出エンジン170が判別対象枠内の判別対象範囲を順次走査して目頭および目尻を検出する(ステップS909)。
続いて、検出された目頭および目尻に基づいて顔画像に含まれる左右の目の目領域が設定される(ステップS950)。なお、左右の目のうちで目頭および目尻の少なくとも1つが検出できなかった場合には、検出された目頭または目尻や過去の統計データ等に基づいて顔画像に含まれる左右の目の目領域が推定され設定される(ステップS950)。なお、左右の目の目領域が設定される場合に、周辺画像における目領域の位置および大きさを含む目領域情報が生成される。
続いて、顔検出エンジン160によって検出された顔領域の位置および大きさに基づいて、再生画像保存領域120aに保存されている静止画像データに対応する画像から顔領域とその周辺部が取り出され、その取り出された顔画像を含む周辺画像が解像度変換エンジン140に出力される。周辺画像が解像度変換エンジン140に入力されると、解像度変換エンジン140は入力された周辺画像を赤目領域抽出処理に適する解像度に変換する(ステップS911)。なお、顔検出エンジン160が検出した顔画像が複数存在する場合には、それぞれの顔画像について同様に処理される。続いて、解像度変換された周辺画像を解像度変換エンジン140がRAM120の赤目領域抽出用顔画像保存領域120dに出力する。すなわち、解像度変換された周辺画像が赤目領域抽出用顔画像保存領域120dに保存される。
続いて、赤目領域抽出用顔画像保存領域120dに保存されている周辺画像に含まれる顔が回転している場合には、その周辺画像が画像回転エンジン180に出力される。周辺画像が画像回転エンジン180に入力されると、周辺画像に含まれる顔の上下左右方向と周辺画像の上下左右方向とが一致するように、周辺画像に含まれる顔を画像回転エンジン180が回転補正し(ステップS912)、その回転補正された周辺画像を赤目領域抽出用顔画像保存領域120dに出力する。すなわち、その回転補正された周辺画像が赤目領域抽出用顔画像保存領域120dに保存される。
続いて、目領域の設定の際に検出された目領域情報が赤目領域抽出用顔画像保存領域120dに保存されている周辺画像に対応するように変換され、変換された目領域情報に基づいて、赤目領域抽出用顔画像保存領域120dに保存されている周辺画像に含まれる顔から、赤目領域抽出用の左右の目領域が設定される。そして、設定された赤目領域抽出用の目領域について、赤目領域の抽出処理が行われる(ステップS1000)。このとき、抽出された赤目領域について、その赤目領域の位置および大きさを含む赤目領域情報が生成される。これらの処理は、CPU110によって実行される。
続いて、抽出された赤目領域の位置および大きさは、赤目抽出用画像に対応する位置および大きさであるため、補正対象であるRAM120の再生画像保存領域120aに保存されている静止画像データに対応する再生静止画像の大きさに対応するように、抽出された赤目領域の位置および大きさが変換される(ステップS913)。
続いて、抽出された赤目領域内の画素に対して1画素ずつ赤目条件を満たすかどうかが判断される。これにより、赤目条件を満たす場合には、どのような補正処理を実行するのかが画素値等に基づいて決定され、自然な赤目のない目に見えるように、赤目の補正処理が実行される(ステップS914)。
次に、顔検出エンジン160が検出した顔画像を含む周辺画像から、目頭目尻検出エンジン170が右目の目頭を検出する目頭検出方法について図面を参照して説明する。なお、右目の目尻、左目の目頭および目尻、顔の検出についても、この目頭検出方法と同様の方法で検出することができる。
図4は、目頭目尻検出エンジン170が、顔F1を含む周辺画像P11から顔F1の右目E1の目頭を検出する場合における検出方法の概略を示す図である。図4に示すように、目頭目尻検出エンジン170に入力された周辺画像P11において判別対象枠W1が順次走査することによって顔F1を含む周辺画像P11から顔F1の右目E1の目頭を検出する。なお、詳細については図6を参照して説明する。
図5は、目頭目尻検出エンジン170が右目の目頭を検出する場合において用いられる対象物サンプル(目頭画像)および非対象物サンプル(目頭以外の画像)の例を示す図である。これらのサンプル画像の特徴量を用いるようにしてもよく、目頭目尻検出エンジン170においてこれらのサンプル画像を用いた学習を予め行わせ、学習によって得られた特徴量等のデータを用いるようにしてもよい。
図6は、目頭目尻検出エンジン170による右目の目頭検出処理の処理手順を示すフローチャートである。なお、この処理手順は、図3に示すステップS909における目頭・目尻検出処理のうちの右目の目頭検出処理を示すものであるが、目頭・目尻検出処理のうちの右目の目尻、左目の目頭および目尻、顔の検出処理についても同様の処理手順である。
最初に、目検出用顔画像保存領域120cに保存されている周辺画像が目頭目尻検出エンジン170に入力される(ステップS930)。周辺画像が目頭目尻検出エンジン170に入力されると(ステップS930)、入力された周辺画像において判別対象枠が左上隅に配置される(ステップS931)。
続いて、入力された周辺画像において判別対象枠内の画像が取り出され(ステップS932)、取り出された画像が目頭画像であるか否かが判別される(ステップS933)。例えば、判別対象枠内の画像から検出された特徴量と、RAM120に保存されている対象物サンプルおよび非対象物サンプルから抽出された特徴量とを比較し、比較した結果に基づいて、取り出された画像が目頭画像であるか否かが判別される。なお、特徴量とは、対象となる画像の特徴を表すパラメータであり、対象となる画像における各画素の色情報(色相、彩度)、濃度等である。例えば、2つのピクセル間の輝度値の差を用いることができる。なお、判別対象枠内の画像の判別方法としては、これらに限定されるものではなく、他の判別方法を用いるようにしてもよい。
その結果、取り出された画像が目頭画像であると判別された場合には(ステップS934)、取り出された画像の位置および大きさがRAM120に記憶される。
例えば、図4(a)に示す周辺画像P11が目頭目尻検出エンジン170に入力されると(ステップS930)、入力された周辺画像P11において判別対象枠W1が左上隅に配置される(ステップS931)。
続いて、入力された周辺画像P11において判別対象枠W1内の画像が取り出され(ステップS932)、RAM120に保存されている対象物サンプルおよび非対象物サンプルに基づいて、取り出された画像が目頭画像であるか否かが判別される(ステップS933)。ここでは、図4(a)に示す周辺画像P11に含まれる顔の大きさが大きいため、取り出された各画像が目頭画像ではないと判別される(ステップS934)。
取り出された画像について判別された結果、取り出された画像が目頭画像ではないと判別された後(ステップS934)、または、取り出された画像が目頭画像であると判別され(ステップS934)、取り出された画像の位置および大きさがRAM120に記憶された後に(ステップS935)、入力された周辺画像において判別対象枠が右端に配置されているか否かが判断される(ステップS936)。
入力された周辺画像において判別対象枠が右端に配置されていなければ(ステップS936)、判別対象枠が左右方向の右側に1画素分進められ(ステップS937)、入力された周辺画像において判別対象枠内の画像が取り出される(ステップS932)。
一方、入力された周辺画像において判別対象枠が右端に配置されていれば(ステップS936)、入力された周辺画像において判別対象枠が下端に配置されているか否かが判断される(ステップS938)。
入力された周辺画像において判別対象枠が下端に配置されていなければ(ステップS938)、判別対象枠が左端に進められるとともに上下方向の下側に1画素分進められ(ステップS939)、入力された周辺画像において判別対象枠内の画像が取り出される(ステップS932)。
つまり、本実施の形態では、入力された周辺画像が判別対象枠により左右方向に順次走査され、判別対象枠が周辺画像の右端に達した場合には、判別対象枠が左端に進められるとともに上下方向の下側にも進められ、引き続き、周辺画像が判別対象枠により左右方向に順次走査される。
一方、入力された周辺画像において判別対象枠が下端に配置されていれば(ステップS938)、入力された周辺画像の一辺の長さが判別対象枠の一辺の長さ以下になっているか否かが判断される(ステップS940)。つまり、入力された周辺画像において判別対象枠が右端および下端に配置されていれば、入力された周辺画像の全ての領域を走査したことになるため、入力された周辺画像をさらに縮小して走査をする必要があるか否かが判断される。
入力された周辺画像の一辺の長さが、判別対象枠の一辺の長さ以下とはなっていなければ(ステップS940)、入力された周辺画像をさらに縮小して走査をする必要があるため、入力された周辺画像が所定の縮小率で縮小され(ステップS941)、縮小された周辺画像において判別対象枠が左上隅に配置される(ステップS931)。
一方、入力された周辺画像の一辺の長さが、判別対象枠の一辺の長さ以下となっていれば(ステップS940)、目頭画像であると判別された画像が複数存在するか否かが判断される(ステップS942)。
例えば、図4(c)に示すように、周辺画像P11bの一辺の長さが判別対象枠W1の矩形の一辺の長さ以下になった場合には、入力された周辺画像の走査が終了したことになるため、走査の動作を終了する。
続いて、目頭画像であると判別された画像が複数存在する場合には(ステップS942)、複数の目頭画像の中から2個の目頭画像が抽出され(ステップS943)、抽出された2個の目頭画像について、それらの特徴量に基づいて何れかの目頭画像が選択され、選択されなかった目頭画像が削除される(ステップS944)。続いて、目頭画像であると判別された画像が複数存在するか否かが判断され(ステップS942)、目頭画像であると判別された画像が1個になるまで繰り返される(ステップS942〜ステップS944)。このように選択処理をすることによって適切な目頭画像を判別することができる。
以上で示したように、入力された周辺画像において右目の目頭画像が検出されることによって、右目の目頭が検出される。また、検出された右目の目頭に基づいて、周辺画像における右目の目頭の位置および大きさが検出される。
次に、顔検出エンジン160によって検出された顔画像において目領域を設定する目領域設定方法について図面を参照して説明する。
最初に、顔領域と目領域との関係、および、目の横幅と縦幅との関係について簡単に説明する。
調査して得られた統計データに基づけば、人間の顔の左右方向の最大長さの値を1とした場合において、その顔の目の左右方向の最大長さの値は、例えば0.1〜0.2であり、その顔の目の上下方向の最大長さの値は、例えば0.1である。また、目の目頭と目尻との左右方向の距離の値を1とした場合に、その目の上下方向の最大長さの値は、例えば0.65である。なお、これらの数値は、事前に調査して得られた結果を示す一例であり、さらに統計データを取って事前に調査して、これらと異なる数値を使用することもできる。
また、本実施の形態において、目頭および目尻の位置に対する目領域の上下位置の決定については、個人差や顔の傾きの影響を受けること、および、目領域に対して赤目となる瞳孔領域は小さく余裕があること等に基づいて、目頭および目尻の上下方向の位置の平均位置を中心位置とした場合に、中心位置から上端および下端までの長さは等しいものと想定する。
次に、顔検出エンジン160が検出した顔画像において右目の目頭および目尻が検出された場合における右目の目領域の設定方法について図面を参照して説明する。
図7は、検出された目頭または目尻と、これらに基づいて設定される目領域との関係を示す図である。
図7(a)は、右目E1の目頭E1aと目尻E1b、および左目E2の目頭E2aと目尻E2bが検出されている場合において、右目E1の目頭E1aと目尻E1bに基づいて右目の目領域EE1が設定され、左目E2の目頭E2aと目尻E2bに基づいて左目の目領域EE2が設定される場合の概略を示す図である。
図7(b)は、右目E1の目尻E1b、および左目E2の目頭E2aと目尻E2bが検出されている場合において、右目E1の目尻E1b、および左目E2の目頭E2aと目尻E2bとに基づいて右目の目領域EE1が設定され、左目E2の目頭E2aと目尻E2bに基づいて左目の目領域EE2が設定される場合の概略を示す図である。
図7(c)は、左目E2の目頭E2aおよび目尻E2bが検出されている場合において、左目E2の目頭E2aおよび目尻E2bに基づいて右目の目領域EE1および左目の目領域EE2が設定される場合の概略を示す図である。
図7(d)は、左目E2の目頭E2aのみが検出されている場合において、左目E2の目頭E2aと顔F1の左右方向の最大長さの値HL1とに基づいて右目の目領域EE1および左目の目領域EE2が設定される場合の概略を示す図である。
図7(e)は、右目E1および左目E2の目頭および目尻の何れも検出されなかった場合において、過去の統計データと顔F1の左右方向の最大長さの値HL1とに基づいて右目の目領域EE1および左目の目領域EE2が設定される場合の概略を示す図である。
図8は、目頭目尻検出エンジン170が検出した右目E1の目頭E1aおよび目尻E1bに基づいて目領域EE1を設定する目領域設定方法の概略を示す図である。
例えば、図7(a)および図8に示すように、右目E1について目頭E1aおよび目尻E1bが検出された場合には、検出された目頭E1aおよび目尻E1bに基づいて目領域が設定される。具体的には、目頭E1aの上下方向の位置と目尻E1bの上下方向の位置とから、目頭E1aの上下方向の位置と目尻E1bの上下方向の位置との平均位置O1を求める。そして、求めた平均位置O1を目領域EE1の上下方向に対する中心位置として決定する。
続いて、目頭E1aの位置と目尻E1bの位置との左右方向の距離の値L1を求める。そして、次の(式1)を用いて、求めた距離の値L1に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする。
H1=L1×A……(式1)
H1=L1×A……(式1)
本実施の形態では、「A=0.65+α」を用いる。なお、αは目領域に余裕を持たせるために使用する値であり、本実施の形態では、例えば「α=0.05」を使用する。
続いて、次の(式2)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1aを求める。また、次の(式3)を用いて、目領域EE1において、中心位置から下端までの距離を示す値H1bを求める。
H1a=H1×(1/2)……(式2)
H1b=H1×(1/2)……(式3)
H1a=H1×(1/2)……(式2)
H1b=H1×(1/2)……(式3)
続いて、求めた値L1と値H1aと値H1bとを用いて、検出された目頭E1aおよび目尻E1bのそれぞれが両端に位置するように、目領域EE1を設定する。このようにして、周辺画像における目領域EE1の位置および大きさを求める。
次に、顔検出エンジン160が検出した顔画像において右目の目尻のみが検出された場合における右目の目領域の設定方法について図面を参照して説明する。
図9は、目頭目尻検出エンジン170が検出した右目E1の目尻に基づいて目領域を設定する目領域設定方法の概略を示す図である。
例えば、図7(b)および図9に示すように、右目E1について目尻E1bのみが検出された場合には、検出された目尻E1bに基づいて目領域が設定される。具体的には、目尻E1bの上下方向の位置を目領域EE1の上下方向に対する中心位置O1として決定する。
続いて、目頭の位置と目尻E1bの位置との左右方向の距離の値L3を求める。ただし、右目E1の目頭を検出できなかったため、左右方向の距離の値L3を直接求めることができない。
ここで、図7(b)に示すように、左目E2の目頭E2aと目尻E2bとが検出されている場合には、左目E2の目頭E2aと目尻E2bとの左右方向の距離の値L2を求める。また、左目の目頭または目尻の何れか一方が検出されていない場合には、左右方向の距離の値L2を求めることができないため、上述した人間の顔領域と目領域との関係を利用して目頭と目尻との左右方向の距離の値L3を求める。具体的には、周辺画像に含まれる顔F1の左右方向の最大長さの値を1とした場合に、顔F1の目の左右方向の最大長さの値は、例えば0.2とする。そして、周辺画像に含まれる顔F1の左右方向の最大長さの値をHL1とした場合に、次の(式4)を用いて、目頭と目尻との左右方向の距離の値L3を求める。
L3=0.2×HL1……(式4)
L3=0.2×HL1……(式4)
続いて、次の(式5)を用いて、求めた距離の値L2またはL3に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする。なお、Aは、上記で示した(式1)のAと同様の値である。
H1=L2(L3)×A……(式5)
H1=L2(L3)×A……(式5)
また、上記で示した(式2)および(式3)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1a、および、中心位置から下端までの距離を示す値H1bを求める。
続いて、求めた値L2またはL3と値H1aと値H1bとを用いて、検出された目尻E1bが右端に位置するように、目領域EE1を設定する。また、周辺画像における目領域EE1の位置と大きさを求める。
次に、顔検出エンジン160が検出した顔画像において右目の目頭および目尻の何れも検出されなかった場合における右目の目領域の設定方法について図7を参照して説明する。
例えば、図7(c)〜(e)に示すように、右目E1について目頭および目尻の何れも検出されなかった場合には、左目の目頭または目尻、または、過去の統計データに基づいて右目の目領域が設定される。
具体的には、図7(c)に示すように、左目の目頭E2aおよび目尻E2bが検出されている場合には、目頭E2aの上下方向の位置と目尻E2bの上下方向の位置とから、目頭E2aの上下方向の位置と目尻E2bの上下方向の位置との平均位置を求める。そして、求めた平均位置を目領域EE1の上下方向に対する中心位置として決定する。
続いて、左目E2の目頭E2aと目尻E2bとの左右方向の距離の値L2を求める。
続いて、上述した(式5)を用いて、求めた距離の値L2に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする。
続いて、目領域EE1の上下方向の値H1を用いて、上記で示した(式2)および(式3)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1a、および、中心位置から下端までの距離を示す値H1bを求める。
続いて、求めた値L2と値H1aと値H1bとを用いて、左目の目頭E2aおよび目尻E2bの位置に基づいて目領域EE1を設定する。なお、周辺画像における目領域EE1の左右方向の位置は、周辺画像に含まれる顔F1の中心位置に対して目領域EE2と左右対称となる位置とする。そして、周辺画像における目領域EE1の位置と大きさを求める。
また、図7(d)に示すように、左目の目頭または目尻の何れかが検出されている場合には、検出された目頭または目尻の上下方向の位置を目領域EE1の上下方向に対する中心位置として決定する。例えば、左目の目頭E2aが検出された場合には、検出された目頭E2aの上下方向の位置を目領域EE1の上下方向に対する中心位置として決定する。
続いて、周辺画像に含まれる顔F1の左右方向の最大長さの値をHL1とした場合に、上述した(式4)を用いて、目頭と目尻との左右方向の距離の値L3を求める。
続いて、上述した(式5)を用いて、求めた距離の値L3に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする。
続いて、目領域EE1の上下方向の値H1を用いて、上記で示した(式2)および(式3)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1a、および、中心位置から下端までの距離を示す値H1bを求める。
続いて、求めた値L3と値H1aと値H1bとを用いて、左目E2の目頭E2aまたは目尻E2bの位置に基づいて目領域EE1を設定する。なお、周辺画像における目領域EE1の左右方向の位置は、周辺画像に含まれる顔F1の中心位置に対して目領域EE2と左右対称となる位置とする。そして、周辺画像における目領域EE1の位置と大きさを求める。
図10は、顔の上下方向の最大長さおよび左右方向の最大長さをそれぞれ1とした場合における右目の目頭および目尻の分布について、調査して求められた統計データを示す図である。なお、図10(a)に示す矩形の枠WE1は、99.7%の右目の目頭が存在した領域を示すものであり、図10(b)に示す矩形の枠WE2は、99.7%の右目の目尻が存在した領域を示すものである。
この統計データは、顔検出エンジン160が検出した顔画像の顔領域において、顔の上下方向の最大長さおよび左右方向の最大長さをそれぞれ1とした場合に、この顔の右目の目頭および目尻の分布を順次求めたものである。なお、この統計データとしては、顔検出エンジン160が検出した顔画像のうちで、顔が正面を向いているものを使用した。
また、本実施の形態では、右目の目頭または目尻の99.7%を占める領域(枠WE1または枠WE2に含まれる領域)を用いて、目領域を設定するが、スピードを優先する場合には、性能の低下を招くことが予想されるが領域をさらに狭めたものを使用することも可能である。
なお、図10には右目のみを示すが、左目も左右対称に折り返した位置にあると考えて問題ない。また、図10に示す数値は一例であり、顔検出の結果に応じて具体的な数値を順次求めるようにしてもよい。また、顔の検出後に、検出された顔の人種の推定が可能な場合には、人種に応じた目領域サイズの違いを考慮するようにしてもよい。このようにすることによって、さらに確度の高い推定をすることができる。
ここで、図7(e)に示すように、左目の目頭および目尻の何れも検出されなかった場合には、図10に示す過去の統計データに基づいて、右目の目頭および目尻の存在する可能性が高い位置を求める。具体的には、図10(a)に示す矩形の枠WE1の中心位置を目頭の位置とし、図10(b)に示す矩形の枠WE2の中心位置を目尻の位置とする。続いて、過去の統計データに基づいて求めた目頭の位置および目尻の位置を用いて、目頭の上下方向の位置と目尻の上下方向の位置との平均位置を求める。そして、求めた平均位置を目領域EE1の上下方向に対する中心位置として決定する。
続いて、周辺画像に含まれる顔F1の左右方向の最大長さの値をHL1とした場合に、上述した(式4)を用いて、目頭と目尻との左右方向の距離の値L3を求める。
続いて、上述した(式5)を用いて、求めた距離の値L3に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする。
続いて、目領域EE1の上下方向の値H1を用いて、上記で示した(式2)および(式3)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1a、および、中心位置から下端までの距離を示す値H1bを求める。
続いて、求めた値L3と値H1aと値H1bとを用いて、過去の統計データに基づいて求めた目頭の位置および目尻が両端に位置するように、目領域EE1を設定する。また、周辺画像における目領域EE1の位置と大きさを求める。
なお、目頭と目尻との左右方向の距離については、周辺画像に含まれる顔F1の左右方向の最大長さからL3を求める代わりに、過去の統計データに基づいて求めた目頭および目尻に基づいて求めるようにしてもよい。
図11は、画像処理装置100による目領域設定の処理手順を示すフローチャートである。なお、この処理手順は、図3に示すステップS950における目領域設定処理を示すものである。また、これらの処理手順は、CPU110が実行するものである。
最初に、RAM120に記憶されている顔情報と、その顔画像に対応する顔の両目の目頭および目尻の検出結果とが入力される(ステップS951)。入力された両目の目頭および目尻の検出結果のうちで、片方の目の目頭および目尻の検出結果が抽出され(ステップS952)、抽出された片方の目において目頭および目尻の検出に成功しているか否かが判断される(ステップS953)。
例えば、図8および図7(a)に示すように、右目E1について目頭E1aおよび目尻E1bが検出されている場合には(ステップS953)、目頭E1aの上下方向の位置と目尻E1bの上下方向の位置とから、目頭E1aの上下方向の位置と目尻E1bの上下方向の位置との平均位置O1を求め、求めた平均位置O1を目領域EE1の上下方向に対する中心位置として決定する(ステップS954)。
続いて、目頭E1aの位置と目尻E1bの位置との左右方向の距離の値L1を求め、上述した(式1)を用いて、求めた距離の値L1に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする(ステップS955)。
続いて、上述した(式2)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1aを求め、上述した(式3)を用いて、目領域EE1において、中心位置から下端までの距離を示す値H1bを求める。そして、求めた値L1と値H1aと値H1bとを用いて、検出された目頭E1aおよび目尻E1bのそれぞれが両端に位置するように、目領域EE1を設定する。また、周辺画像における目領域EE1の位置と大きさを求める(ステップS956)。
一方、抽出された片方の目において目頭および目尻の検出に成功していない場合には(ステップS953)、抽出された片方の目において目頭または目尻の何れかの検出に成功しているか否かが判断される(ステップS957)。抽出された片方の目において目頭または目尻の何れかの検出に成功している場合には(ステップS957)、検出された目頭の上下方向の位置または目尻の上下方向の位置を目領域の上下方向に対する中心位置として決定する(ステップS958)。
例えば、図9および図7(b)に示すように、右目E1において目尻E1bが検出されている場合には(ステップS957)、目尻E1bの上下方向の位置を目領域EE1の上下方向に対する中心位置O1として決定する(ステップS958)。
続いて、他方の目の目頭および目尻の検出に成功しているか否かが判断される(ステップS959)。他方の目の目頭および目尻の検出に成功している場合には(ステップS959)、他方の目の目頭と目尻との左右方向の距離の値を求め、求めた値に所定値を乗じた値を目領域の上下方向の値として決定する(ステップS960)。
例えば、図7(b)に示すように、左目E2の目頭E2aと目尻E2bとが検出されている場合には(ステップS959)、左目E2の目頭E2aと目尻E2bとの左右方向の距離の値L2を求める。続いて、上述した(式5)を用いて、求めた距離の値L2に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする。
一方、他方の目の目頭および目尻の検出に成功していない場合には(ステップS959)、周辺画像に含まれる顔の左右方向の最大長さの値をHL1とし、上述した(式4)を用いて、目頭と目尻との左右方向の距離の値L3を求める。そして、上述した(式5)を用いて、求めた距離の値L3に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする(ステップS964)。
また、抽出された片方の目において目頭および目尻の何れの検出にも成功していない場合には(ステップS957)、他方の目の目頭または目尻の何れかの検出に成功しているか否かが判断される(ステップS961)。他方の目の目頭または目尻の何れかの検出に成功している場合には(ステップS961)、検出された他方の目の目頭の上下方向の位置または目尻の上下方向の位置に基づいて目領域の上下方向に対する中心位置を決定する(ステップS962)。
例えば、図7(c)に示すように、他方の目の目頭E2aおよび目尻E2bが検出されている場合には(ステップS961)、他方の目の目頭の上下方向の位置と目尻の上下方向の位置とから、これらの平均位置が求められ、求めた平均位置が目領域の上下方向に対する中心位置として決定される(ステップS962)。また、図7(d)に示すように、他方の目の目頭または目尻の何れかが検出されている場合には(ステップS961)、検出された他方の目の目頭の上下方向の位置または目尻の上下方向の位置が目領域の上下方向に対する中心位置として決定される(ステップS962)。
検出された他方の目の目頭の上下方向の位置または目尻の上下方向の位置に基づいて目領域の上下方向に対する中心位置が決定された後に(ステップS962)、ステップS959に進む。
一方、他方の目の目頭または目尻の何れの検出にも成功していない場合には(ステップS961)、過去の統計データに基づいて右目の目頭および目尻の存在する可能性が高い位置を求め、過去の統計データに基づいて求めた目頭の上下方向の位置と目尻の上下方向の位置との平均位置を求め、求めた平均位置を目領域の上下方向に対する中心位置として決定する(ステップS963)。
例えば、図7(e)に示すように、左目の目頭および目尻の何れも検出されなかった場合には(ステップS961)、図10に示す過去の統計データに基づいて、右目の目頭および目尻の存在する可能性が高い位置を求め、過去の統計データに基づいて求めた目頭の上下方向の位置と目尻の上下方向の位置との平均位置を求め、求めた平均位置を目領域EE1の上下方向に対する中心位置として決定する(ステップS963)。
続いて、周辺画像に含まれる顔の左右方向の最大長さの値をHL1とし、上述した(式4)を用いて、目頭と目尻との左右方向の距離の値L3を求める。そして、上述した(式5)を用いて、求めた距離の値L3に所定の値Aを乗じた値を、目領域EE1の上下方向の値H1とする(ステップS964)。
続いて、以上で求めた目領域EE1の上下方向の値H1を用いて、上記で示した(式2)および(式3)を用いて、目領域EE1において、中心位置から上端までの距離を示す値H1a、および、中心位置から下端までの距離を示す値H1bを求める。そして、求めた値L2またはL3と値H1aと値H1bとを用いて目領域EE1を設定する。また、周辺画像における目領域EE1の位置と大きさを求める(ステップS956)。
続いて、入力された顔の両目の目領域が設定されたか否かが判断される(ステップS965)。入力された顔の両目の目領域が設定されていれば(ステップS965)、目領域設定の処理手順の動作を終了する。一方、入力された顔の両目の目領域が設定されていなければ(ステップS965)、残っている他方の目について、目領域設定の処理手順の動作を繰り返す(ステップS952〜ステップS964)。
次に、顔検出エンジン160が検出した顔画像において赤目領域を抽出する赤目領域抽出方法について図面を参照して説明する。
最初に、図3に示すステップS911において、解像度変換エンジン140により周辺画像を赤目領域抽出処理に適する解像度に変換する解像度変換処理について図面を参照して説明する。
図12は、図3に示すステップS950で設定された右目の目領域において左右方向に右側に向かって1ラインを走査した場合における色差(赤)の値の変化を表すグラフを示す図である。なお、以下で示す各グラフ(図32に示すグラフを除く)において、横軸は、目領域における左右方向(水平方向)の1ラインの位置を示す軸であり、以下ではx軸とする。また、縦軸は、目領域における画像データの色差(赤)の値を示す軸である。
また、以下で示す各図において、黒塗りの三角は走査によって抽出された山型範囲の開始点を示すものであり、黒塗りの丸は走査によって抽出された山型範囲の範囲内最大点を示すものであり、黒塗りの四角は走査によって抽出された山型範囲の終了点を示すものである。なお、山型範囲とは、例えば、図13の範囲RE10で示すように、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化を表すグラフにおいて、その変化の形状が山型となる範囲である。また、山型範囲の開始点と終了点とは、各グラフにおいて左から右に向かう曲線上における山型範囲の開始点および終了点である。なお、本実施の形態における山型範囲の開始点および終了点については、図18に示すステップS1106において詳細に説明する。
また、本実施の形態における説明において、左側とは各図に向かって左側を意味し、右側とは各図に向かって右側を意味する。
図12(a)は、顔検出エンジン160によって検出された顔画像が高解像度の画像とされた状態で右目の目領域の1ラインが走査された場合において、走査によって抽出された色差(赤)の変化を表すグラフを示す図である。図12(a)に示すように、高解像度の画像では情報量が多いため、色差(赤)の変化に微小変化が含まれる。このように、色差(赤)の変化に微小変化が含まれると、細かい揺らぎや高周波ノイズが発生し易く、これらの影響によって赤目領域を誤検出する可能性が高い。なお、図12(a)においては、山型範囲の開始点と終了点と範囲内最大点との一部を省略して示す。
図12(b)は、顔検出エンジン160によって検出された顔画像が正規化された状態で右目の目領域の1ラインが走査された場合において、走査によって抽出された色差(赤)の変化を表すグラフを示す図である。図12(b)に示すように、正規化された画像では情報量が比較的少ないため、微小変化を含むことが少ない。このため、色差(赤)の変化が比較的単純になり、色差(赤)の変化が滑らかになるものの、赤目抽出のために必要な特徴量は問題なく残している。このように、正規化によって顔画像が赤目領域抽出処理に適する解像度に変換されることによって、細かい揺らぎや高周波ノイズの発生を防止する。
ここで、具体的な正規化処理について説明する。正規化処理とは、顔検出エンジン160によって検出された顔画像について、解像度変換エンジン140が、赤目領域抽出に適するように、その顔画像の縦横比を保持した状態でその顔画像の大きさを一定の大きさにするとともに、赤目領域抽出に適した解像度に変換して赤目領域抽出用画像を作成する処理である。
顔検出エンジン160および目頭目尻検出エンジン170によって検出された顔画像、目頭画像、目尻画像に対応する画像データを検証した結果、縦横比を保持した状態で顔画像の横幅を320ピクセル程度にすると効果的であるという結果が得られた。このため、本実施の形態では、この数値を使用して説明する。しかし、使用するRAMの容量や処理時間の制限等に応じて、この数値以下の数値を用いるようにしてもよい。この場合には、抽出精度が多少低下するものの、抽出処理は可能である。このように、正規化のサイズは、抽出精度やスピード条件等に基づいて決定することが好ましい。
なお、赤目領域抽出の対象となる画像が、赤目領域抽出に適した大きさよりも小さい場合には、正規化処理を省略するようにしてもよい。
次に、目領域の各ラインを走査することによって抽出された色差(赤)の値に基づいて、単一の閾値により赤目領域を設定する赤目領域設定の例について図面を参照して説明する。
図13〜図15は、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化と、単一の閾値を用いて設定された赤目領域RE10〜RE12とを表すグラフを示す図である。図13〜図15に示すように、単一の閾値を用いて赤目領域を設定する場合において、赤目領域と判断された範囲は、その範囲内の色差(赤)の最低値や高低差がまちまちである。また、必要な領域よりも広い領域を赤目領域と判断する場合があるとともに、必要な領域よりも狭い領域を赤目領域と判断する場合がある。これに対して、本実施の形態では、以下で示すように、単一の閾値を用いるとともに色差(赤)の変化や輝度等に基づいて赤目領域を抽出する。
次に、図3に示すステップS1000における赤目領域抽出処理について図面を参照して説明する。
なお、以下で示す赤目領域抽出処理においては、輝度および色差(赤)に基づいて赤目領域抽出処理を実行する。このため、顔画像を含む周辺画像(目領域)に対応する画像データが輝度および色差(赤および青)の画像データではない場合には、赤目抽出処理を実行する前に、顔画像を含む周辺画像(目領域)に対応する画像データのそれぞれを所定の変換式を用いて、輝度および色差(赤および青)に変換する。
図16は、画像処理装置100による赤目領域抽出の処理手順(ステップS1000)を示すフローチャートである。なお、これらの処理手順は、CPU110が実行するものである。
図17は、図16に示すステップS1100、ステップS1200、ステップS1300、ステップS1400の各処理に応じた目領域における赤目の抽出状況の概略を示す図である。図17に示すように、以下では、ステップS950で設定された右目E1の目領域EE1を用いて赤目領域抽出処理を説明する。目領域EE1には右目E1が含まれ、右目E1には、目尻E1bと虹彩領域E1cと瞳孔領域E1dとが存在する。なお、右目E1には、いわゆる赤目現象が発生しており、虹彩領域E1c内において瞳孔領域E1dの周りに赤色となっている領域REEが発生している。
また、上述したように、黒塗りの三角は走査によって抽出された山型範囲の開始点を示すものであり、黒塗りの丸は走査によって抽出された山型範囲の範囲内最大点を示すものであり、黒塗りの四角は走査によって抽出された山型範囲の終了点を示すものである。なお、図17(a)〜(d)の詳細については、図16を参照して説明する。
最初に、赤目領域抽出用顔画像保存領域120dに保存されている周辺画像に含まれる顔から、ステップS950で設定された目領域が取り出され、取り出された目領域において左右方向の1画素のライン毎に走査が行われる。この走査によって、目領域の1ラインにおける色差(赤および青)および輝度の値が1画素毎に抽出される。続いて、走査された目領域の1ラインにおける色差(赤)の値とそのラインの位置との関係に基づいて、抽出された色差(赤)の値の変化が山型となる範囲である山型範囲を抽出する。そして、各ラインにおいて、抽出された山型範囲の中から赤目領域候補を抽出する(ステップS1100)。なお、山型範囲とは、走査された目領域の1ラインにおける色差(赤)の値とそのラインの位置との関係を示すグラフにおいて、色差(赤)の値の変化が山型となる範囲を意味し、例えば、図19に示す開始点M1sからM1eまでの範囲M1、および開始点M2sからM2eまでの範囲M2である。
図17(a)は、ステップS950で設定された右目E1の目領域EE1において左右方向に各ラインの走査が行われた結果が目領域EE1に表示されている状態を示す図である。すなわち、抽出された山型範囲(赤目領域候補)の開始点(黒塗り三角)と範囲内最大点(黒塗り丸)と終了点(黒塗り四角)とが目領域EE1に表示されている。図17(a)に示すように、赤目現象により赤色となっている虹彩領域E1cの内側付近において、山型範囲の開始点と終了点とが抽出され、瞳孔領域E1dの周辺付近に山型範囲の範囲内最大点が抽出されている。しかし、赤みを帯びている右目E1の上下瞼(まぶた)付近と、赤みを帯びている目尻E1b付近の領域NZ1とにおいても、山型範囲の開始点と範囲内最大点と終了点とが抽出されている。
続いて、各ラインにおいて抽出された赤目領域候補について、上下のライン間の関連を考慮し、ノイズである赤目領域候補を除去する(ステップS1200)。
図17(b)は、図17(a)に示した右目E1の目領域EE1において、ノイズ除去処理が実行された後の赤目領域候補と右目E1の目領域EE1との関係を示す概略図である。図17(b)に示すように、右目E1の上下瞼付近と、目尻E1b付近の領域NZ1とにおいて抽出された赤目領域候補が、ノイズ除去処理により除去される。
続いて、ノイズを除去した後に残った各ラインにおける赤目領域候補について、各赤目領域候補の左右方向の範囲のうちで、最も左側の位置から最も右側の位置を設定する。続いて、設定された最も左側の位置から最も右側の位置を走査範囲として、ステップS950で設定された目領域において上下方向(垂直方向)の1画素のライン毎に走査が行われる。この走査によって、ステップS1100の処理と同様に、目領域の1ラインにおける色差(赤および青)および輝度の値が1画素毎に抽出される。続いて、走査された目領域の1ラインにおける色差(赤)の値とそのラインの位置との関係に基づいて、抽出された色差(赤)の値の変化が山型となる範囲である山型範囲を抽出する。そして、各ラインにおいて、抽出された山型範囲の中から赤目領域候補を抽出する(ステップS1300)。このように、左右方向の走査とともに上下方向の走査を実行することによって、赤目領域候補の抽出精度を高めることができる。なお、縦方向の1ラインずつの走査については、処理時間の制限等がある場合には、精度の低下を招くものの省略することも可能である。
図17(c)は、図17(b)に示した右目E1の目領域EE1において、上下方向に各ラインの走査が行われた結果、抽出された山型範囲の開始点と範囲内最大点と終了点と、右目E1の目領域EE1との関係を示す概略図である。図17(c)に示すように、ノイズ除去処理により右目E1の上下瞼付近において除去された赤目領域候補のうちの一部が抽出されている。なお、図17(c)では、ステップS1300においてのみ抽出された開始点と範囲内最大点と終了点とについて、白抜きの三角、丸、四角で示す。
続いて、赤目領域候補の中から赤目領域を設定する(ステップS1400)。
図17(d)は、図17(c)に示した右目E1の目領域EE1において、抽出された山型範囲の開始点と範囲内最大点と終了点とを囲むように配置された矩形枠S1および円形枠C1を示す概略図である。ステップS1100〜ステップS1300において抽出された赤目領域候補に基づいて赤目領域を設定する。
なお、本実施の形態において、赤目領域を設定する場合における赤目領域の領域情報については、図17(d)に示すように、円と矩形(長方形)とを組み合わせた図形に基づいて生成する。このため、ステップS1100〜ステップS1300において抽出された左右方向および上下方向の開始点と終了点とを囲むように矩形枠S1および円形枠C1が配置され、矩形枠S1と円形枠C1との重複範囲が赤目領域の領域情報として生成される。このように、円と矩形とを組み合わせた図形に基づいて赤目領域の領域情報を生成することによって、解像度が異なる画像に対して、抽出された赤目領域を座標変換して処理する際の処理効率を高めることができる。また、図17(d)に示すように、円と矩形とを組み合わせた図形により赤目領域を設定することによって、赤めの肌、まつ毛、瞼等のように、赤目領域であると誤検出しやすい領域の多くを除外することが可能である。特に、日本人の場合には、瞳孔領域が上瞼によって覆われることが多いため、赤目領域であると誤検出しやすい領域の多くを除外することが可能である。なお、ステップS1100〜ステップS1300において抽出された左右方向および上下方向の赤目領域候補の開始点と終了点とを含む赤目領域候補の各ラインの値の集合を、赤目領域の領域情報として生成するようにしてもよい。
次に、図16に示すステップS1100において、目領域から赤目領域候補を抽出する赤目領域候補抽出処理について図面を参照して説明する。
図18は、画像処理装置100による赤目領域候補抽出処理(ステップS1100)の処理手順を示すフローチャートである。なお、これらの処理手順は、CPU110が実行するものである。
最初に、赤目領域抽出用顔画像保存領域120dに保存されている周辺画像が入力される(ステップS1101)。
続いて、目領域の設定の際に検出された目領域情報が赤目領域抽出用顔画像保存領域120dに保存されている周辺画像に対応するように変換される(ステップS1102)。
続いて、変換された目領域情報に基づいて、赤目領域抽出用顔画像保存領域120dに保存されている周辺画像に含まれる顔から、ステップS950で設定された目領域が取り出される(ステップS1103)。この場合に、その顔の両目の目領域が取り出される。
続いて、取り出された両目の目領域のうちの何れかの目領域が選択され、選択された目領域の左上隅に走査ポインタが設定される(ステップS1104)。例えば、図17(a)に示す右目の目領域EE1が選択され、右目の目領域EE1の目尻E1bの上側にある左上隅に走査ポインタが設定される。
続いて、目領域の左右方向において左から右に向かって、画像データの色差(赤および青)および輝度の値を抽出するための走査が実行される(ステップS1105)。この走査は、画像データの1画素毎に左右方向の1ラインが走査される。なお、走査によって抽出された画像データの色差(赤および青)および輝度の値は、そのラインの位置と対応してRAM120に順次保存される。
続いて、走査された目領域における色差(赤)の値とそのラインの位置との関係に基づいて、抽出された色差(赤)の値の変化が山型となる範囲である山型範囲を抽出する(ステップS1106)。この場合に、開始点と範囲内最大点と終了点とが検出された山型範囲のみを抽出する。なお、山型範囲における開始点とは、基準点における色差(赤)の値が1ピクセル前の点の値よりも所定の閾値である第1閾値以上大きくなった場合における当該基準点を意味し、範囲内最大点とは、山型範囲における色差(赤)の値が最大の値である点を意味し、終了点とは、山型範囲内における範囲内最大点の色差(赤)の値に基づいて求められる第2閾値よりも小さくなった後に最初に現れる谷の点を意味する。また、山型範囲を抽出する場合には、開始点と範囲内最大点と終了点とのx座標の値と、x座標の値に対応する色差(赤)および輝度の値とを含む範囲情報が生成される。なお、第1閾値として、例えば、『4×(「目領域の横サイズ」÷64)』の値を用いることができる。なお、第1閾値は、「目領域の横サイズ」を64等分して正規化した値に基づいて算出される閾値である。また、第2閾値として、例えば、「{「開始点の色差(赤)の値」+(「山型範囲における色差(赤)の最大値」×3)}÷4」の値を用いることができる。本発明の実施の形態で示す第1閾値乃至第16閾値の例は、色差(赤)の値が8bitで表され、−128〜127の値を取る場合における数値を用いたものである。なお、目頭やまつ毛部分等のように、赤目部分と同様に色差(赤)の値が山型に変化する部分が存在する場合があるものの、この時点ではこのような領域を山型範囲として抽出しても問題はない。また、山型範囲を抽出する場合において、色差(赤)の値を8bitで−128〜127で表す場合には、閾値を0とし、色差(赤)の値が閾値0以上となる山型範囲を抽出するようにしてもよい。
図19は、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化を表すグラフを示す図である。例えば、図19に示すグラフにおいて、山型範囲として、山型範囲M1と山型範囲M2とが抽出され、山型範囲M1については、開始点M1sと範囲内最大点M1mと終了点M1eとのx座標値が抽出され、山型範囲M2については、開始点M2sと範囲内最大点M2mと終了点M2eとのx座標値が抽出される。
図20は、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化を表すグラフを示す図である。例えば、図20に示すグラフにおける範囲M3においては、色差(赤)の値が増加しているものの、範囲M3の範囲内の各点における色差(赤)の値と1ピクセル前の点の値との差が第1閾値以上にならないため、範囲M3の範囲内における各点は開始点として抽出されない。また、範囲M4においては、色差(赤)の値の変化が山型の形状をしているものの、範囲M4の範囲内の各点における色差(赤)の値が、範囲M4内における範囲内最大点の色差(赤)の値に基づいて求められる第2閾値よりも小さくならないため、範囲M4の範囲内における各点は終了点として抽出されない。このように、開始点と範囲内最大点と終了点とが検出されなかった場合には、抽出された色差(赤)の値の変化が山型となっている場合であっても山型範囲として抽出されない。
続いて、走査ポインタが右端に到達したか否かが判断される(ステップS1107)。走査ポインタが右端に到達していなければ(ステップS1107)、走査および山型範囲の抽出の処理を繰り返す(ステップS1105、ステップS1106)。
走査ポインタが右端に到達していれば(ステップS1107)、抽出された山型範囲の中から、次に示す条件(a)または条件(b)を満たす山型範囲を除去する(ステップS1108)。
条件(a): 山型範囲における色差(赤)の最大値が、第3閾値以下であること
条件(b): 山型範囲において、色差(赤)の最大値から色差(赤)の最小値を引いて求められる差分値が、第4閾値よりも小さいものであること
条件(a): 山型範囲における色差(赤)の最大値が、第3閾値以下であること
条件(b): 山型範囲において、色差(赤)の最大値から色差(赤)の最小値を引いて求められる差分値が、第4閾値よりも小さいものであること
例えば、図19に示すグラフにおいて、山型範囲M1における色差(赤)の最大値である範囲内最大点M1mの値が、第3閾値以下である場合、または、山型範囲M1において、色差(赤)の最大値である範囲内最大点M1mの値から、色差(赤)の最小値である開始点M1sの値を引いて求められる差分値dが、第4閾値よりも小さい場合には、山型範囲M1は、条件(a)または条件(b)を満たすので、除去される。なお、第3閾値として、例えば、「12」の値を用いることができる。また、第4閾値として、例えば、「16」の値を用いることができる。
図21は、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化を表すグラフを示す図である。例えば、図21に示すように、図19に示したグラフにおいて抽出された山型範囲M1が除去され、山型範囲M2が残る。
続いて、ステップS1108における除去処理の後において、1ラインに複数の山型範囲が存在するか否かが判断される(ステップS1109)。1ラインに複数の山型範囲が存在する場合には(ステップS1109)、複数の山型範囲のうちの隣り合う山型範囲のそれぞれについて、次の条件(c)および条件(d)が満たすか否かが確認され、隣り合う山形範囲が次の条件(c)および条件(d)が満たす場合には、その隣り合う山形範囲を1個の山型範囲として連結する(ステップS1110)。このように、隣り合う山形範囲を1個の山型範囲として連結した場合においても、連結前の各山型範囲情報が保持される。
条件(c): 隣り合う2つの山型範囲をそれぞれ第1山型範囲および第2山型範囲とした場合に、第1山型範囲の範囲内最大点と第2山型範囲の範囲内最大点との差の値が、第5閾値の範囲内であること。
条件(d): 隣り合う山型範囲における中央または範囲内最大点のx座標値の差の値が第6閾値の範囲内であること。なお、第6閾値は、顔領域サイズまたは目領域サイズから求められるキャッチライト最大サイズに対応する閾値である。
条件(c): 隣り合う2つの山型範囲をそれぞれ第1山型範囲および第2山型範囲とした場合に、第1山型範囲の範囲内最大点と第2山型範囲の範囲内最大点との差の値が、第5閾値の範囲内であること。
条件(d): 隣り合う山型範囲における中央または範囲内最大点のx座標値の差の値が第6閾値の範囲内であること。なお、第6閾値は、顔領域サイズまたは目領域サイズから求められるキャッチライト最大サイズに対応する閾値である。
図22は、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化を表すグラフを示す図である。例えば、山型範囲M6およびM7にキャッチライトが含まれている場合には、図22に示すように、山型範囲M6とM7との間に谷型形状が形成される。例えば、図22に示すように、ステップS1108における除去処理の後において、1ラインに複数の山型範囲M5〜M7が存在する場合について説明する。この場合には、複数の山型範囲M5〜M7のうちで、隣り合う山型範囲(M5とM6、M6とM7)について、上記の条件(c)および条件(d)が満たすか否かが確認される。
例えば、山型範囲M5の範囲内最大点と、山型範囲M6の範囲内最大点との差分値d5が、第5閾値SL5の範囲内ではなく、または、山型範囲M5の中央位置または範囲内最大点のx座標値と、山型範囲M6の中央位置または範囲内最大点のx座標値との差分値m5が顔領域サイズから求められる第6閾値CL1の範囲内ではない場合には、条件(c)および条件(d)を満たさないため、1個の山型範囲として連結されない。
一方、山型範囲M6の範囲内最大点と、山型範囲M7の範囲内最大点との差分値d6が、第5閾値SL5の範囲内であり、かつ、山型範囲M6の中央位置または範囲内最大点のx座標値と、山型範囲M7の中央位置または範囲内最大点のx座標値との差分値m6が顔領域サイズから求められる第6閾値CL1の範囲内である場合には、条件(c)および条件(d)を満たすため、1個の山型範囲M67として連結される。このように、連結処理をすることによって、キャッチライトにより赤目領域の中央付近に色差(赤)の谷が形成されているような場合においても、適切に赤目領域を抽出することができる。なお、第5閾値として、例えば、『(「隣り合う2つの山型範囲における色差(赤)の最大値」−12)÷2」』の値を用いることができる。また、第6閾値として、例えば、『「目領域の横サイズ」÷5」』の値を用いることができる。
なお、連結処理の後においても、1ラインに複数の山型範囲が存在する場合には、隣り合う山型範囲について、上記の条件(c)および条件(d)が満たすか否かが確認される。例えば、山型範囲M6およびM7が1個の山型範囲M67として連結された場合には、複数の山型範囲M5、M67のうちで、隣り合う山型範囲(M5とM67)について、上記の条件(c)および条件(d)が満たすか否かが確認される。ただし、ステップS1110における連結処理が終了した時点でも、山型範囲が複数個存在する場合もある。
続いて、ステップS1110における連結処理の後の山型範囲のそれぞれについて、開始点および終了点を修正する(ステップS1111)。例えば、虹彩領域が茶色の目の場合や赤目の程度が低く明るい茶色程度にしかなっていない場合等においては、赤目領域として虹彩領域を含む領域を抽出している可能性が高い。そこで、赤目領域の色差(赤)の値は、虹彩領域の色差(赤)の変化よりも急峻に変化することが多いことを利用して、開始点および終了点を修正する。これにより、適切に赤目領域を抽出することができる。なお、虹彩領域は、瞳孔領域の外側においてドーナツ状に存在する領域であり、虹彩は、色素に富み、人種によって青、茶、緑等の色彩上の特徴がある。また、虹彩は、その沈着状態によっても茶色や青色の眼になる。
最初に、開始点の修正処理について説明する。修正対象となる山型範囲内において最も左側にある範囲内最大点から、左方向に色差(赤)の値を確認しながら進み、最初に色差(赤)の値が第7閾値以下になった座標位置を検出する。なお、「最も左側にある範囲内最大点」とは、複数個の山型範囲が連結された場合における連結山型範囲を考慮した記述である。このため、連結処理がされていない山型範囲については、範囲内最大点が1点である。
続いて、検出された座標位置を基準点として、この基準点における色差(赤)の値が取り出されるとともに、この基準点の左右の点における色差(赤)の値が取り出される。ここで、基準点における色差(赤)の値をt1とし、基準点の1画素分左側の点における色差(赤)の値をt2とし、基準点の1画素分右側の点における色差(赤)の値をt3とした場合において、次の(式6)を満たすか否かが順次判断される。
(t2−t1)−(t1−t3)>第8閾値…(式6)
(t2−t1)−(t1−t3)>第8閾値…(式6)
検出された座標位置を基準点とした場合において、上記の(式6)を満たさない場合には、基準点を1画素分左側に進めて、1画素分左側に進めた後の基準点が上記の(式6)を満たすか否かが順次判断される。そして、上記の(式6)を満たす基準点が修正後の開始点として設定される。
次に、終了点の修正処理について説明する。終了点の修正処理についても開始点の修正処理と同様である。つまり、修正対象となる山型範囲内において最も右側にある範囲内最大点から、右方向に色差(赤)の値を確認しながら進み、最初に色差(赤)の値が第9閾値以下になった座標位置を検出する。
続いて、検出された座標位置を基準点として、この基準点における色差(赤)の値が抽出されるとともに、この基準点の左右の点における色差(赤)の値が抽出される。ここで、基準点における色差(赤)の値をt4とし、基準点の1画素分右側の点における色差(赤)の値をt5とし、基準点の1画素分左側の点における色差(赤)の値をt6とした場合において、次の(式7)を満たすか否かが順次判断される。
(t5−t4)−(t4−t6)>第10閾値…(式7)
(t5−t4)−(t4−t6)>第10閾値…(式7)
検出された座標位置を基準点とした場合において、上記の(式7)を満たさない場合には、基準点を1画素分右側に進めて、1画素分右側に進めた後の基準点が上記の(式7)を満たすか否かが順次判断される。そして、上記の(式7)を満たす基準点が修正後の終了点として設定される。
図23は、図22に示すグラフにおいて、山型範囲M6およびM7を含む周辺部分が拡大されたグラフを示す図である。
例えば、図23を用いて、開始点の修正処理について説明する。修正対象となる連結山型範囲M67において最も左側にある範囲内最大点M6mから、左方向(矢印Z1方向)に色差(赤)の値を確認しながら進み、最初に色差(赤)の値が第7閾値SL7以下になった座標位置P1を検出する。続いて、座標位置P1を基準点として、この基準点における色差(赤)の値が抽出されるとともに、この基準点の左右の点における色差(赤)の値が抽出される。そして、座標位置P1を基準点として、上記の(式6)を満たすか否かが順次判断される。
検出された座標位置を基準点とした場合において、上記の(式6)を満たさない場合には、基準点を矢印Z1方向に1画素分進めて、1画素分進めた後の基準点が上記の(式6)を満たすか否かが順次判断される。そして、上記の(式6)を満たす基準点を修正後の開始点として設定する。
次に、図23を用いて、終了点の修正処理について説明する。修正対象となる山型範囲M67において最も右側にある範囲内最大点M7mから、右方向(矢印Z2方向)に色差(赤)の値を確認しながら進み、最初に色差(赤)の値が第9閾値SL7以下になった座標位置を検出する。なお、この例では、第7閾値と第9閾値とを同じ値SL7として説明するが、第7閾値と第9閾値とを異なる値としてもよい。続いて、座標位置P2を基準点として、この基準点における色差(赤)の値が抽出されるとともに、この基準点の左右の点における色差(赤)の値が抽出される。そして、座標位置P2を基準点として、上記の(式7)を満たすか否かが順次判断される。
検出された座標位置を基準点とした場合において、上記の(式7)を満たさない場合には、基準点を矢印Z2方向に1画素分進めて、1画素分進めた基準点が上記の(式7)を満たすか否かが順次判断される。そして、上記の(式7)を満たす基準点を修正後の終了点として設定する。例えば、図23に示すM67eが終了点として設定される。このように、修正後における開始点および終了点は、修正処理において基準点を進めていく中で、勾配がゆるくなった点が設定される。これにより、山型範囲として急峻な範囲のみが抽出される。なお、第7閾値として、例えば、『(2×「山型範囲における色差(赤)の最大値」+12)÷3』の値を用いることができる。また、第8閾値として、例えば、「1」の値を用いることができる。さらに、第9閾値として、例えば、第7閾値と同様に、『(2×「山型範囲における色差(赤)の最大値」+12)÷3』の値を用いることができる。また、第10閾値として、例えば、第8閾値と同様に、「1」の値を用いることができる。
図24は、目領域の1ラインを走査することによって抽出された色差(赤)の値の変化を表すグラフを示す図であって、図22に示した山型範囲M5と、連結山型範囲M67との開始点および終了点の修正処理後における山型範囲M5Aおよび連結山型範囲M67Aを示す図である。
図25および図26は、抽出された色差(赤)の値の変化を表すグラフと、目領域に含まれる目との関係を示す図である。図25は、開始点および終了点について修正処理する前における山型範囲M8を示す図であり、目の白目部分がややにじんでいるため、その部分が赤目領域として抽出されている。また、図26は、開始点および終了点について修正処理した後における山型範囲M8Aを示す図であり、比較的急峻に変化する範囲のみが抽出され、適切な赤目領域のみが抽出される。図25および図26に示すように、開始点および終了点について修正処理をすることによって、赤目領域に対して適切な大きさにすることができる。
続いて、開始点および終了点の修正処理が終了した山型範囲について、その開始点および終了点の輝度値が参照され、この開始点および終了点の輝度値が、第11閾値以上の山型範囲が除去される(ステップS1112)。そして、ステップ1112の除去処理により残った山型範囲を赤目領域候補とする。なお、第11閾値は、検出された顔領域中の肌色領域の輝度値に基づいて求めた値である。このように、肌の色は赤目領域の色よりも明るいという性質を利用して、開始点および終了点の輝度値に基づいた除去処理を実行することによって、赤みのある肌領域等を除去することができる。なお、第11閾値として、例えば、『「肌色領域の輝度の平均値」×0.7』の値を用いることができる。
続いて、設定された目領域の全てのラインの走査が終了したか否かが判断される(ステップS1113)。設定された目領域の全てのラインの走査が終了していなければ(ステップS1113)、走査ポインタが目領域の左端に進められるとともに下側に1画素分進められ(ステップS1114)、ステップS1105に進む。
設定された目領域の全てのラインの走査が終了していれば(ステップS1113)、入力された周辺画像に含まれる顔の両目の目領域について赤目領域候補の抽出が終了したか否か判断される(ステップS1115)。両目の目領域について赤目領域候補の抽出が終了していなければ(ステップS1115)、赤目領域候補の抽出が終了していない目領域が取り出され(ステップS1116)、ステップS1104に進む。
両目の目領域について赤目領域候補の抽出が終了していれば(ステップS1115)、赤目領域候補の抽出処理を終了する。
次に、赤目領域候補の抽出処理において抽出された各ラインの山型範囲について、ライン間の関連を確認し、ノイズ範囲を除去する処理について図面を参照して説明する。
図27は、画像処理装置100によるノイズである赤目領域候補を除去するノイズ除去処理(ステップS1200)の処理手順を示すフローチャートである。なお、この処理手順は、ライン間の関連を考慮してノイズ範囲を除去するものである。また、これらの処理手順は、CPU110が実行するものである。
最初に、ステップS1100における赤目領域候補抽出処理において抽出された目領域全体の赤目領域候補の中で、「範囲内最大点」における色差(赤)の値が最も大きい赤目領域候補と、この赤目領域候補が存在するラインを求める(ステップS1201)。続いて、「範囲内最大点」における色差(赤)の値が最も大きい赤目領域候補の範囲を「基準範囲」として設定する(ステップS1202)。この場合に、以下で示す条件(f)に用いる第12閾値を、基準範囲の範囲内最大点の値に基づいて求める。なお、第12閾値として、例えば、『(「山型範囲における色差(赤)の最大値」+12)÷2』の値を用いることができる。
図28(a)は、ステップS1100において抽出された結果が目領域EE1に表示されている状態を示す図である。なお、図17に示す符号と同一のものについては、説明を省略する。例えば、図28(a)に示すように、基準範囲M100が設定される。
続いて、抽出された赤目領域候補の中から、基準範囲に設定されている赤目領域候補以外の赤目領域候補が取り出される(ステップS1203)。この場合に、左右方向の各ラインにおいて抽出された赤目領域候補の全てが取り出される。なお、何れの赤目領域候補から取り出すようにしてもよい。
続いて、取り出された赤目領域候補について、それぞれ、次の条件(e)および条件(f)を満たすか否かが判断される(ステップS1204)。
条件(e): 取り出された赤目領域候補の左右方向における範囲の一部が、基準範囲の左右方向における領域範囲内にあること
条件(f): 取り出された赤目領域候補の範囲内最大点の値が、基準範囲の範囲内最大点の値に基づいて求められた第12閾値以上であること
条件(e): 取り出された赤目領域候補の左右方向における範囲の一部が、基準範囲の左右方向における領域範囲内にあること
条件(f): 取り出された赤目領域候補の範囲内最大点の値が、基準範囲の範囲内最大点の値に基づいて求められた第12閾値以上であること
取り出された赤目領域候補が、条件(e)および条件(f)を満たさない場合には(ステップS1204)、取り出された赤目領域候補が除去される(ステップS1205)。例えば、図28(a)に示す領域NZ1に含まれる2つの赤目領域候補は、その左右方向における範囲の一部が基準範囲M100の左右方向における領域範囲内になく、何れも条件(e)を満たさないため、何れも除去される。
図28(b)は、条件(e)および条件(f)を満たさない赤目領域候補が除去された結果が目領域EE1に表示されている状態を示す図である。
図28(b)に示すように、条件(e)および条件(f)に基づいて除去処理を実行した場合には、赤目領域のうちの上下部分が除去される場合がある。この場合に、赤目領域のうちの上下部分が除去され過ぎる場合があるものの、ステップS1300で実行される縦ラインの走査処理で再度領域を拡張することが可能であるため、ここでは問題ない。
続いて、基準範囲に設定されている赤目領域候補以外の赤目領域候補の全てが取り出されたか否かが判断される(ステップS1206)。全ての赤目領域候補が取り出されていなければ(ステップS1206)、ステップS1203に進み、赤目領域候補の除去処理を繰り返す(ステップS1203〜ステップS1205)。
全ての赤目領域候補が取り出されていれば(ステップS1206)、設定された目領域の1ラインが取り出される(ステップS1207)。この場合に、取り出されるラインは何れのラインでもよい。
続いて、取り出された1ラインに複数の赤目領域候補が存在するか否かが判断される(ステップS1208)。取り出した1ラインに複数の赤目領域候補が存在する場合には(ステップS1208)、範囲内最大点の色差(赤)の値が一番大きい赤目領域候補のみが残され、それ以外の赤目領域候補が除去される(ステップS1209)。
続いて、設定された目領域の全てのラインが取り出されたか否かが判断される(ステップS1210)。設定された目領域の全てのラインが取り出されていなければ(ステップS1210)、ステップS1207に進み、赤目領域候補の除去処理を繰り返す(ステップS1207〜ステップS1209)。
続いて、設定された目領域の1ラインが取り出され(ステップS1211)、取り出されたラインの赤目領域候補の左右方向の幅が、顔領域の大きさに基づいて算出された最大瞳孔サイズよりも大きいか否かが判断される(ステップS1212)。なお、最大瞳孔サイズは、目領域の大きさに基づいて算出するようにしてもよい。
取り出されたラインの赤目領域候補の左右方向の幅が、最大瞳孔サイズよりも大きい場合には(ステップS1212)、目領域におけるその他のラインの赤目領域候補の左右方向の開始点および終了点の平均値が算出される(ステップS1213)。そして、算出された開始点および終了点の平均値を、最大瞳孔サイズよりも大きい赤目領域候補の開始点および終了点の値と置き換える(ステップS1214)。
続いて、設定された目領域の全てのラインが取り出されたか否かが判断される(ステップS1215)。設定された目領域の全てのラインが取り出されていなければ(ステップS1215)、ステップS1211に進み、赤目領域候補の除去処理を繰り返す(ステップS1211〜ステップS1214)。
続いて、各ラインの赤目領域候補のうちで孤立しているものが存在するか否かが判断される(ステップS1216)。具体的には、赤目領域候補が抽出された左右方向の各ラインのうちで、一番上に存在するラインについては、その1画素下のラインに赤目領域候補が存在するか否かが判断される(ステップS1216)。一方、赤目領域候補が抽出された左右方向の各ラインのうちで、一番下に存在するラインについては、その1画素上のラインに赤目領域候補が存在するか否かが判断される(ステップS1216)。これは、上下の瞼領域が赤目領域であると誤検出されていないかを確認するために実行する処理である。上下方向に隣接する範囲がなく、孤立したラインが存在する場合には(ステップS1216)、上または下の瞼を赤目領域であると誤検出している可能性が高いため、その範囲を除外する(ステップS1217)。
図29は、右目E1の目領域EE1において左右方向に各ラインの走査が行われた結果が目領域EE1に表示されている状態を示す図である。なお、図17に示す符号と同一のものについては、説明を省略する。例えば、図29は、赤目領域候補が抽出されたラインの中の一番下のラインに孤立ラインが発生している例を示す図である。この孤立ラインは、下瞼部分に対応する領域NZ2に存在するものであり、下瞼部分が誤検出されていることを示す。
続いて、両目の目領域についてノイズ除去処理が終了したか否か判断される(ステップS1218)。両目の目領域についてノイズ除去処理が終了していなければ(ステップS1218)、ノイズ除去処理が終了していない目領域が取り出され(ステップS1219)、ステップS1201に進む。
両目の目領域についてノイズ除去処理が終了していれば(ステップS1218)、ノイズ除去処理を終了する。
次に、図16に示すステップS1300において、ノイズ除去後の赤目領域候補において上下方向に走査することによって赤目領域候補を抽出する赤目領域候補抽出処理について図面を参照して説明する。
図30は、画像処理装置100による赤目領域候補抽出処理(ステップS1300)の処理手順を示すフローチャートである。なお、これらの処理手順は、CPU110が実行するものである。
図30に示すステップS1305〜ステップS1310、ステップS1312〜ステップS1316における各処理は、左右方向に走査する代わりに上下方向に走査することを除けば、図18に示すステップS1105〜ステップS1110、ステップS1112〜ステップS1116における各処理と同様であるため、以下では、これらの説明を省略する。
最初に、両目の目領域のうちの何れかの目領域が選択される(ステップS1301)。続いて、ステップS1200におけるノイズ除去処理の後に残った赤目領域候補の開始点のうちで、最も左側に位置する開始点を走査範囲の左端とし、ステップS1200におけるノイズ除去処理の後に残った赤目領域候補の終了点のうちで、最も右側に位置する終了点を走査範囲の右端として走査範囲を設定する(ステップS1302)。このように、ステップS1300における赤目領域候補抽出処理においては、ステップS1100およびステップS1200において抽出された赤目領域候補の左右方向の範囲内において上下方向を走査する。
目領域のうちで、設定された走査範囲内の領域の左上隅に走査ポインタが設定される(ステップS1304)。例えば、図31に示す右目の目領域EE1の走査範囲SH1内の左上隅に走査ポインタが設定される。
図31は、ステップS1200におけるノイズ除去処理の後の赤目領域候補の開始点および終了点に基づいて設定された上下方向の走査範囲SH1が目領域EE1に表示されている状態を示す図である。なお、図17に示す符号と同一のものについては、説明を省略する。
このように、上下方向の走査により赤目領域候補の抽出処理をすることによって、ステップS1100およびステップS1200における赤目領域候補の抽出処理において除去しすぎてしまった領域を拡張させることができるとともに、除去することができなかった瞼領域等を除去することができるため、赤目領域の抽出精度を向上させることができる。
なお、上述したように、上下方向の走査による赤目領域候補の抽出処理は、左右方向の走査による赤目領域候補の抽出処理とほぼ同様であるが、上下方向の走査による抽出処理の場合には、瞼部分が赤目領域と連続している可能性が高い。このため、より範囲を厳しく見るために、山型範囲の開始点および終了点の修正処理において、左右方向の処理で示した処理以外に輝度の確認処理を行う。これは、肌の色は赤目領域の色よりも明るいこと、また、目と肌との間にあるまつ毛は輝度値が小さくなることを利用して瞼部分を除去するためである。
ここで、左右方向の走査による抽出処理と異なる処理であるステップS1311について図32を参照して説明する。
図32は、目領域の上下方向を1ライン走査することによって抽出された色差(赤)および輝度の値の変化を表すグラフを示す図である。なお、図32に示すグラフにおいて、横軸は、目領域における画像データの色差(赤)および輝度の値を示す軸であり、縦軸は、目領域における上下方向の1ラインの位置を示す軸である。また、図32に示すグラフにおいて、折線LL1は、色差(赤)の値の変化を示す折線であり、折線LL2は、輝度の値の変化を示す折線である。図32(a)は、上下方向に走査することによって抽出された山型範囲M10と山型範囲M11との開始点および終了点の修正処理前における山型範囲M10および山型範囲M11と、山型範囲M10と山型範囲M11とが連結された連結山型範囲M1011とを示す図である。図32(b)は、図32(a)に示す連結山型範囲M1011の開始点および終了点の修正処理後における山型範囲M10および山型範囲M11と、連結山型範囲M1011Aとを示す図である。
ステップS1310における連結処理の後の山型範囲のそれぞれについて、開始点および終了点を修正する(ステップS1311)。
最初に、開始点の修正処理について説明する。修正対象となる山型範囲内において最も上側にある範囲内最大点から、上方向に色差(赤)の値を確認しながら進み、最初に色差(赤)の値が第13閾値以下になった座標位置を検出する。
続いて、検出された座標位置を基準点として、この基準点における色差(赤)の値が抽出されるとともに、この基準点の上下の点における色差(赤)の値が抽出される。ここで、基準点における画素の色差(赤)の値をt11とし、基準点の1画素分上側の点における画素の色差(赤)の値をt12とし、基準点の1画素分下側の点における画素の色差(赤)の値をt13とした場合において、次の(式8)を満たすか否かが順次判断される。
(t12−t11)−(t11−t13)>第14閾値…(式8)
(t12−t11)−(t11−t13)>第14閾値…(式8)
検出された座標位置を基準点とした場合において、上記の(式8)を満たさない場合には、基準点を1画素分上側に進めて、基準点が上記の(式8)を満たすか否かが順次判断される。そして、上記の(式8)を満たす基準点を修正後の第1の開始点候補とする。
続いて、色差(赤)の値が第13閾値以下になった座標位置を基準点として、この基準点における輝度の値が抽出されるとともに、この基準点の1画素分上側の点における輝度の値が抽出される。ここで、基準点における画素の輝度の値をt17とし、基準点の1画素分上側の点における画素の輝度の値をt18とした場合において、次の(式9)を満たすか否かが順次判断される。
(t18−t17)>第15閾値…(式9)
(t18−t17)>第15閾値…(式9)
検出された座標位置を基準点とした場合において、上記の(式9)を満たさない場合には、基準点を1画素分上側に進めて、基準点が上記の(式9)を満たすか否かが順次判断される。そして、上記の(式9)を満たす基準点を修正後の第2の開始点候補とする。
以上で求められた第1の開始点候補および第2の開始点候補のうちで、修正対象となる山型範囲における中央に近い開始点候補を修正後の開始点とする。
続いて、終了点の修正処理を行う。なお、終了点の修正処理についても、開始点の修正処理と同様である。
ここで、例えば、図32を用いて、開始点の修正処理について説明する。修正対象となる山型範囲M1011において最も上側にある範囲内最大点M10mから、上方向(矢印Z3方向)に色差(赤)の値を確認しながら進み、最初に色差(赤)の値が第13閾値SL13以下になった座標位置P10を検出する。続いて、座標位置P10を基準点として、この基準点における色差(赤)の値が抽出されるとともに、この基準点の左右の点における色差(赤)の値が抽出される。そして、座標位置P10を基準点として、上記の(式8)を満たすか否かが判断される。
上記の(式8)を満たさない場合には、基準点を矢印Z3方向に1画素分進めて、基準点が上記の(式8)を満たすか否かが順次判断される。そして、上記の(式8)を満たす基準点を修正後の第1の開始点候補D1とする。
続いて、検出された座標位置P10を基準点として、基準点P10における輝度の値が抽出されるとともに、この基準点の1画素分上側の点における輝度の値が抽出される。そして、座標位置P10を基準点として、上記の(式9)を満たすか否かが判断される。
上記の(式9)を満たさない場合には、基準点を1画素分上側に進めて、基準点が上記の(式9)を満たすか否かが順次判断される。そして、上記の(式9)を満たす基準点を修正後の第2の開始点候補D2とする。
以上で求められた第1の開始点候補D1および第2の開始点候補D2のうちで、修正対象となる山型範囲における中央に近い開始点候補である第1の開始点候補D1が修正後の開始点と設定される。なお、第13閾値として、例えば、第7閾値と同様に、『(2×「山型範囲における色差(赤)の最大値」+12)÷3』の値を用いることができる。また、第14閾値として、例えば、第8閾値と同様に、「1」の値を用いることができる。さらに、第15閾値として、例えば、「1」の値を用いることができる。また、終了点の修正処理に用いる第16閾値として、例えば、第15閾値と同様に、「1」の値を用いることができる。
図33は、抽出された赤目領域候補の開始点と範囲内最大点と終了点と、右目E1の目領域EE1との関係を示す概略図である。図33(a)は、右目E1の目領域EE1において、ステップS1100およびステップS1200において抽出された赤目領域候補の開始点と範囲内最大点と終了点とを示す図である。図33(a)に示すように、ステップS1200においてライン間の関係を考慮してノイズを除去した後の赤目領域候補は、その上下部分が暗く色差の値が小さいため、赤目領域候補から除去されている。図33(b)は、右目E1の目領域EE1において、ステップS1300において抽出された赤目領域候補の開始点と範囲内最大点と終了点とを示す図である。図33(b)に示すように、ステップS1300において上下方向の走査によって抽出された赤目領域候補は、その上下部分が拡張され、上下範囲の精度が向上している。
なお、ステップS1315において、周辺画像に含まれる顔の両目の目領域について赤目領域候補の抽出が終了したか否か判断され、両目の目領域について赤目領域候補の抽出が終了していなければ(ステップS1315)、赤目領域候補の抽出が終了していない目領域が取り出され(ステップS1316)、ステップS1304に進む。
両目の目領域について赤目領域候補の抽出が終了していれば(ステップS1315)、赤目領域候補の抽出処理を終了する。
図34は、設定された赤目領域についての位置情報を生成する場合に、周辺画像P11における生成方法の概略を示す図である。図34(a)は、目領域EE1と、設定された赤目領域との関係を示す図である。図34(b)は、周辺画像P11と、目領域EE1および設定された赤目領域との関係を示す図である。図34(c)は、画像P1と、周辺画像P11との関係を示す図である。なお、図34(a)〜(c)の詳細については、図36を参照して説明する。
図35は、矩形枠S2と円形枠C2とを組み合わせた図形枠を用いて赤目領域を設定する場合における左目E2の目領域EE2と、その図形枠との関係を示す図である。図35に示すように、赤目領域を設定する場合には、矩形枠S2と円形枠C2とが重なる部分を赤目領域として設定する。このため、矩形枠S2または円形枠C2のいずれかに含まれる領域であって、矩形枠S2と円形枠C2とが重なる部分以外の部分である領域B1〜B6を除外することができる。
図36は、画像処理装置100による赤目領域設定処理(ステップS1400)の処理手順を示すフローチャートである。なお、これらの処理手順は、CPU110が実行するものである。
最初に、ステップS1200におけるノイズ除去処理後の赤目領域候補の開始点のうちで最も左側にある開始点が検出され、この開始点の1画素分左側の位置を左端と決定する。同様に、ステップS1200におけるノイズ除去処理後の赤目領域候補の終了点のうちで最も右側にある終了点が検出され、この終了点の1画素分右側の位置を右端と決定する。そして、決定された右端から左端までを矩形の左右方向の範囲として決定する(ステップS1401)。
続いて、ステップS1200におけるノイズ除去処理後の赤目領域候補の各ラインのうちで最も上側にあるラインが検出され、さらに、ステップS1300における上下方向の走査により抽出された赤目領域候補の開始点のうちで最も上側にある開始点の位置が検出される。そして、検出された最も上側にあるラインの位置と、検出された最も上側にある開始点の位置とのうちで、最も上側に存在する位置の1画素分上側の位置を上端と決定する。また、同様に、ステップS1200におけるノイズ除去処理後の赤目領域候補の各ラインのうちで最も下側にあるラインが検出され、さらに、ステップS1300における上下方向の走査により抽出された赤目領域候補の終了点のうちで最も下側にある終了点の位置が検出される。そして、検出された最も下側にあるラインの位置と、検出された最も下側にある終了点の位置とのうちで、最も下側に存在する位置の1画素分下側の位置を下端と決定する。そして、決定された上端から下端までを矩形の上下方向の範囲として決定する(ステップS1402)。
続いて、ステップS1401で決定された矩形の左右方向の範囲と、ステップS1402で決定された矩形の上下方向の範囲とに基づいて矩形枠が設定される(ステップS1403)。例えば、図34(a)に示すように、矩形枠S1が設定される。
続いて、設定された矩形枠の縦横比が、所定の閾値の範囲内であるか否かが判断される(ステップS1404)。設定された矩形枠の縦横比が、所定の閾値の範囲内でない場合には、赤目ではない領域が抽出された可能性が高いため、赤目設定処理を終了する。
設定された矩形枠の縦横比が、所定の閾値の範囲内である場合には(ステップS1404)、設定された矩形の長辺を直径とした円であって、設定された矩形の重心を中心とする円形枠を設定する(ステップS1405)。例えば、図34(a)に示すように、円形枠C1が設定される。
続いて、設定された矩形枠と円形枠とを用いて、矩形枠と円形枠とが重なり合う領域が最終的な赤目補正の対象となる領域である赤目領域として設定される(ステップS1406)。この場合に、赤目領域の位置情報が生成される。
次に、補正対象であるRAM120の再生画像保存領域120aに保存されている再生静止画像のサイズに対応するように、設定された赤目領域をサイズ変換する変換処理について図34を参照して説明する。
例えば、図34に示すように、顔F1および周辺画像P11を含む画像P1において、目領域EE1に含まれる赤目領域をサイズ変換する場合について説明する。
図34(a)に示すように、目領域EE1の左上を原点(0、0)とした場合において、矩形枠S1の開始点を(x1、y1)とし、矩形枠S1の幅を(w、h)とする。また、図34(b)に示すように、周辺画像P11の左上を原点(0、0)とした場合において、目領域EE1の開始点を(x2、y2)とし、赤目領域抽出用画像を作成する場合における赤目領域抽出用画像と、再生静止画像との解像度変換比をαとする。
また、再生静止画像である画像P1の左上を原点(0、0)とした場合において、赤目領域抽出用顔画像を取り出した場合における取り出し開始点を(X1、Y1)とする。
この場合において、再生静止画像上の赤目領域を形成する矩形の開始点(X、Y)とサイズ(W、H)とは、次の(式10)〜(式13)で表すことができる。
X=((x1+x2)/α)+X1…(式10)
Y=((y1+y2)/α)+Y1…(式11)
W=w/α…(式12)
H=h/α…(式13)
X=((x1+x2)/α)+X1…(式10)
Y=((y1+y2)/α)+Y1…(式11)
W=w/α…(式12)
H=h/α…(式13)
また、図34(a)および図34(b)に示すように、目領域EE1の左上を原点(0、0)とした場合において、円形枠C1の中心座標を(x3、y3)とし、円形枠C1の半径の長さの値をrとする。
この場合において、再生静止画像上の赤目領域を形成する円形の中心点(Cx、Cy)および半径Rは、次の(式14)〜(式16)で表すことができる。
Cx=(x3+x2)/α+X1…(式14)
Cy=(y3+y2)/α+Y1…(式15)
R=r/α…(式16)
Cx=(x3+x2)/α+X1…(式14)
Cy=(y3+y2)/α+Y1…(式15)
R=r/α…(式16)
以上で示したように、補正対象であるRAM120の再生画像保存領域120aに保存されている再生静止画像のサイズに対応するように、設定された赤目領域をサイズ変換する。
なお、解像度変換エンジン140と、画像圧縮伸張エンジン150と、顔検出エンジン160と、目頭目尻検出エンジン170と、画像回転エンジン180とについては、ハードウェアとソフトウェアの何れで実現するようにしてもよく、DSP(Digital Signal Processor)等のプログラマブルなハードウェアを使用するようにしてもよい。また、顔検出処理、目頭目尻検出処理、赤目領域抽出処理において、処理の対象となる画像についてそれぞれの処理に適した解像度に変換する解像度変換処理を独立して実行しているが、処理の対象となる画像を共通して使用することができる場合には、共通で使用するようにしてもよい。
なお、本実施の形態では、目頭目尻検出処理、赤目領域抽出処理において、周辺画像に含まれる顔が回転している場合には、画像回転エンジン180が回転処理を実行するが、目頭目尻検出処理または赤目領域抽出処理に係るアルゴリズムが、顔の回転に対応している場合には、画像回転処理を実行しなくてもよい。
また、目頭目尻の検出に失敗した場合や赤目領域を抽出することができなかった場合においては、検出された顔領域の大きさと向きに基づいて目領域の存在範囲を推定し、この目領域の存在範囲内において判別対象枠を順次移動させていくことによってリトライ処理を実行し、検出率を上げていくようにしてもよい。
このように、本発明の実施の形態によれば、色差の値の変化の態様(パターン)に基づいて目領域の赤目領域候補を抽出するとともに、この赤目領域候補からノイズ等を除去した後の赤目領域候補に基づいて赤目領域を設定するため、補正対象である赤目領域を適切に抽出することができる。すなわち、閾値等を用いて色差(赤)の値のみに基づいて、赤目領域を抽出する場合には、人の目が真っ赤になるものから明るい茶色になるものまで多種のパターンがある赤目現象に対応することができない場合がある。これに対して、本実施の形態では、色差の値の変化の態様(パターン)に基づいて目領域の赤目領域候補を抽出するとともに補足的に閾値を使用することによって、赤目領域の誤抽出の発生を低減させるとともに、赤みの低い赤目に対しても適切な赤目領域を抽出することができる。
また、本発明の実施の形態で示した赤目領域抽出処理は、比較的単純な処理を実行するものであるため、組み込みマイコン等の処理に対しても適応することができる。さらに、比較的単純な処理を実行するものであるため、赤目領域抽出処理の処理時間を短縮することができる。また、画像データの保存方法を工夫することによって、赤目領域抽出に必要となるRAMの容量を少なくすることが可能である。
以上で示したように、本実施の形態では、人間の顔を撮影した画像からその顔に含まれる赤目領域を適切に抽出することができる。これにより、いわゆる赤目現象が発生した場合に適切な赤目補正をすることができる。
また、近年の高画素化によって赤目領域が多くの情報を含むようになったため、赤目領域の情報が多くのパターンをもつようになった。さらに、これらにはデータの揺らぎや高周波ノイズが多数含まれる場合が多い。このため、赤目領域を抽出する場合に、これらのノイズや揺らぎの影響を受けにくくし、かつ必要な情報を残すように、小さい一定のサイズに顔領域を正規化することによって、誤検出の可能性を低減し、変化のパターン数を減らすことが可能となる。
このように、本実施の形態においては、色差(赤)の値の変化に基づいて赤目領域を抽出するための正規化処理をすることによって、ノイズの影響を低減させ、適切な赤目補正をすることができる。また、処理の単純化やミスを低減することができ、同時に処理速度を向上させることが可能である。
また、赤目領域を抽出する場合において、対象となる画像に正規化処理を施した場合には、補正対象の原画像に補正処理を行うため、抽出された領域の座標変換を行う必要がある。この場合、抽出された赤目領域を単純な図形の組み合わせで設定することによって、座標変換を容易に行うことが可能となる。また、矩形と円とを用いた単純な図形を用いて赤目領域を設定することによって、さらに演算処理を高速化させることができる。なお、赤目領域の形状は、円または楕円の形をしている場合が多く、また、瞼が赤目の上下に掛かり赤目の一部が欠けている可能性が高い。このため、矩形と円とを組み合わせた図形を用いることによって、補正対象となる赤目領域が欠けてしまう可能性を低減することができる。また、補正対象である赤目領域と分離することが難しい、赤みがかった瞼等の領域を比較的多く除外することができる。
なお、本実施の形態においては、人間の目について説明したが、人間以外の動物(例えば、犬や猫のペット)の目についても本実施の形態を適用することができる。
また、画像処理装置100と撮像部400とをデジタルスチルカメラ等の撮像装置に備え、撮像部400により撮像された画像に対応する画像データについてその撮像装置が目領域設定処理または赤目補正処理を実行する場合に、本実施の形態を適用することができる。さらに、パーソナルコンピュータ等の情報処理装置に本実施の形態を適用することができる。
本実施の形態では、赤目検出処理において検出された顔における両目について各処理を実行するが、それぞれの目についての処理を順次行うようにしてもよい。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
すなわち、請求項1、請求項15において、入力手段は、例えば外部メディアコントローラ200に対応する。
また、請求項1、請求項15、請求項16において、顔検出手段は、例えば顔検出エンジン160に対応する。また、目領域設定手段は、例えばCPU110に対応する。
また、請求項1、請求項7、請求項8、請求項15、請求項16において、色差抽出手段は、例えばCPU110に対応する。
また、請求項1乃至請求項8、請求項16において、赤目領域候補抽出手段は、例えばCPU110に対応する。
また、請求項1、請求項9乃至請求項12、請求項15において、ノイズ除去手段は、例えばCPU110に対応する。
また、請求項1、請求項14乃至請求項16において、赤目領域設定手段は、例えばCPU110に対応する。
また、請求項15において、第1の色差抽出手段は、例えばCPU110に対応する。また、第1の赤目領域候補抽出手段は、例えばCPU110に対応する。また、第2の色差抽出手段は、例えばCPU110に対応する。また、第2の赤目領域候補抽出手段は、例えばCPU110に対応する。
また、請求項16において、撮像手段は、例えば撮像部400に対応する。また、入力手段は、例えばカメラ信号処理エンジン130に対応する。
また、請求項17または請求項18において、入力手順は、例えばステップS901に対応する。また、顔検出手順は、例えばステップS904に対応する。また、目領域設定手順は、例えばステップS950に対応する。また、色差抽出手順は、例えばステップS1105に対応する。また、赤目領域候補抽出手順は、例えばステップS1106に対応する。また、ノイズ除去手順は、例えばステップS1200に対応する。また、赤目領域設定手順は、例えばステップS1400に対応する。
なお、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。
100 画像処理装置
110 CPU
120 RAM
120a 再生画像保存領域
120b 顔検出用画像保存領域
120c 目検出用顔画像保存領域
120d 赤目領域抽出用顔画像保存領域
130 カメラ信号処理エンジン
140 解像度変換エンジン
150 画像圧縮伸張エンジン
160 顔検出エンジン
170 目頭目尻検出エンジン
180 画像回転エンジン
190 画像表示エンジン
200 外部メディアコントローラ
210 データバス
220 画像信号用バス
230 バス
300 記録メディア
400 撮像部
500 画像表示装置
C1、C2 円形枠
S1、S2 矩形枠
110 CPU
120 RAM
120a 再生画像保存領域
120b 顔検出用画像保存領域
120c 目検出用顔画像保存領域
120d 赤目領域抽出用顔画像保存領域
130 カメラ信号処理エンジン
140 解像度変換エンジン
150 画像圧縮伸張エンジン
160 顔検出エンジン
170 目頭目尻検出エンジン
180 画像回転エンジン
190 画像表示エンジン
200 外部メディアコントローラ
210 データバス
220 画像信号用バス
230 バス
300 記録メディア
400 撮像部
500 画像表示装置
C1、C2 円形枠
S1、S2 矩形枠
Claims (18)
- 画像データを入力する入力手段と、
前記入力手段により入力された画像データに含まれる顔を検出する顔検出手段と、
前記顔検出手段により検出された顔に含まれる目領域を設定する目領域設定手段と、
前記目領域設定手段により設定された目領域において所定方向の各ラインにおける色差の値を抽出する色差抽出手段と、
前記色差抽出手段により抽出された色差の値の変化の態様に基づいて前記所定方向の各ラインにおける赤目領域候補を抽出する赤目領域候補抽出手段と、
前記赤目領域候補抽出手段により抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手段と、
前記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて前記目領域設定手段により設定された目領域に含まれる赤目領域を設定する赤目領域設定手段と
を具備することを特徴とする画像処理装置。 - 前記赤目領域候補抽出手段は、前記所定方向の一のラインにおいて前記色差抽出手段により抽出された色差の値が一定の増加をする範囲である増加範囲と当該増加範囲の後に前記抽出された色差の値が一定の減少をする範囲である減少範囲とを含む特徴範囲を検出して当該検出された特徴範囲の中から当該一のラインにおける赤目領域候補を抽出する
ことを特徴とする請求項1記載の画像処理装置。 - 前記赤目領域候補抽出手段は、前記増加範囲において前記色差抽出手段により抽出された色差の値が前記所定方向における1画素前の色差の値よりも第1閾値以上の値となる最初の点である第1の端点を検出するとともに前記減少範囲において前記色差抽出手段により抽出された色差の値が前記特徴範囲における色差の最大値に基づいて決定される第2閾値よりも小さくなった後に最初に増加する点の前記所定方向における1画素前の点である第2の端点を検出して前記検出された第1の端点と第2の端点との範囲を第2の特徴範囲とし当該第2の特徴範囲の中から前記一のラインにおける赤目領域候補を抽出する
ことを特徴とする請求項2記載の画像処理装置。 - 前記赤目領域候補抽出手段は、前記検出された特徴範囲の中から範囲内の色差の最大値が第3閾値以下である特徴範囲または範囲内の色差の最大値と最小値との差の値が第4閾値よりも小さい特徴範囲を除去する
ことを特徴とする請求項2記載の画像処理装置。 - 前記赤目領域候補抽出手段は、前記一のラインに複数の特徴範囲が存在する場合において当該複数の特徴範囲のうちの隣り合う2つの特徴範囲における色差の最大値の差の値が第5閾値の範囲内であるとともに当該隣り合う2つの特徴範囲における中央点または範囲内最大値に対応する点の前記所定方向の差の値が第6閾値の範囲内である場合には当該2つの特徴範囲を一の特徴範囲として連結する
ことを特徴とする請求項2記載の画像処理装置。 - 前記赤目領域候補抽出手段は、
前記第2の特徴範囲に含まれる増加範囲において前記色差抽出手段により抽出された色差の値が第7閾値以下の値となる点を第1点とし、当該第1点の前記所定方向における1画素前の点を第2点とし、当該第1点の前記所定方向における1画素後の点を第3点とした場合において当該第1点および当該第3点の色差の値の差の値が当該第1点および当該第2点の色差の値の差の値よりも第8閾値を超えて大きい場合における当該第1点のうちで最も中央点側にある点を修正第1の端点とし、
前記第2の特徴範囲に含まれる減少範囲において前記色差抽出手段により抽出された色差の値が第9閾値以下の値となる点を第4点とし、当該第4点の前記所定方向における1画素後の点を第5点とし、当該第4点の前記所定方向における1画素前の点を第6点とした場合において当該第4点および当該第6点の色差の値の差の値が当該第4点および当該第5点の色差の値の差の値よりも第10閾値を超えて大きい場合における当該第4点のうちで最も中央点側にある点を修正第2の端点とし、
前記修正第1の端点と前記修正第2の端点との範囲を修正第2の特徴範囲とし、当該修正第2の特徴範囲の中から前記一のラインにおける赤目領域候補を抽出する
ことを特徴とする請求項3記載の画像処理装置。 - 前記色差抽出手段は、前記目領域設定手段により設定された目領域において前記所定方向の各ラインにおける色差の値とともに輝度の値を抽出し、
前記赤目領域候補抽出手段は、
前記第2の特徴範囲に含まれる増加範囲において前記色差抽出手段により抽出された色差の値が第7閾値以下の値となる点を第7点とし、当該第7点の前記所定方向における1画素前の点を第8点とした場合において当該第8点の輝度の値から当該第7点の輝度の値を引いて求められる差の値が第15閾値を超えている場合における当該第7点のうちで最も中央点側にある点を修正第1の端点候補とし、当該修正第1の端点候補と前記修正第1の端点とのうちで中央点側にある点を第3の端点とし、
前記第2の特徴範囲に含まれる減少範囲において前記色差抽出手段により抽出された色差の値が第9閾値以下の値となる点を第9点とし、当該第9点の前記所定方向における1画素後の点を第10点とした場合において当該第10点の輝度の値から当該第9点の輝度の値を引いて求められる差の値が第16閾値を超えている場合における当該第9点のうちで最も中央点側にある点を修正第2の端点候補とし当該修正第2の端点候補と前記修正第2の端点とのうちで中央点側にある点を第4の端点とし、
前記第3の端点と前記第4の端点との範囲を修正第2の特徴範囲とし、当該修正第2の特徴範囲の中から前記一のラインにおける赤目領域候補を抽出する
ことを特徴とする請求項6記載の画像処理装置。 - 前記色差抽出手段は、前記目領域設定手段により設定された目領域において前記所定方向の各ラインにおける色差の値とともに輝度の値を抽出し、
前記赤目領域候補抽出手段は、前記修正第2の特徴範囲の中から前記修正第1の端点および修正第2の端点の輝度の値が第11閾値以上となる修正第2の特徴範囲を除去する
ことを特徴とする請求項6記載の画像処理装置。 - 前記ノイズ除去手段は、前記抽出された各ラインの赤目領域候補のうちで色差の値が最大となるラインの赤目領域候補を基準領域に設定した場合において前記各ラインの赤目領域候補のうちでその一部の領域範囲が当該基準領域の前記所定方向における範囲内に存在するとともにその色差の最大値が前記基準領域の色差の最大値に基づいて求められた第12閾値以上であるもの以外の赤目領域候補を除去する
ことを特徴とする請求項8記載の画像処理装置。 - 前記ノイズ除去手段は、前記各ラインのうちで一のラインに複数の赤目領域候補が存在する場合には当該一のラインに存在する複数の赤目領域候補のうちから赤目領域候補の範囲内における色差の値が最大となる赤目領域候補以外の赤目領域候補を除去する
ことを特徴とする請求項8記載の画像処理装置。 - 前記ノイズ除去手段は、前記抽出された各ラインの赤目領域候補のうちで前記所定方向の幅が前記顔検出手段により検出された顔に対応する顔領域の大きさに基づいて算出された最大瞳孔サイズよりも大きい赤目領域候補が存在する場合には当該赤目領域候補が存在するライン以外のラインにおける赤目領域候補の前記所定方向の修正第1の端点および修正第2の端点の平均値を求めて当該平均値を前記最大瞳孔サイズよりも大きい赤目領域候補の修正第1の端点および修正第2の端点の値と置き換える
ことを特徴とする請求項8記載の画像処理装置。 - 前記ノイズ除去手段は、前記赤目領域候補抽出手段により抽出された赤目領域候補が存在する各ラインのうちで前記所定方向と直行する方向である直行方向における端部に存在するラインについてその1画素隣のラインに赤目領域候補が存在しない場合には当該端部のラインに存在する赤目領域候補を除去する
ことを特徴とする請求項2記載の画像処理装置。 - 前記顔検出手段により検出された顔の縦横比を保持した状態で当該顔に対応する顔画像の大きさを前記色差抽出手段による色差の値の抽出に適する大きさに変換するとともに当該顔に対応する顔画像を前記色差抽出手段による色差の値の抽出に適する解像度に変換する正規化手段を具備する
ことを特徴とする請求項1記載の画像処理装置。 - 前記赤目領域設定手段は、前記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて前記目領域設定手段により設定された目領域に矩形枠を配置するとともに当該矩形枠に基づいて円形枠を配置して当該矩形枠と当該円形枠との重複範囲を赤目領域として設定する
ことを特徴とする請求項1記載の画像処理装置。 - 画像データを入力する入力手段と、
前記入力手段により入力された画像データに含まれる顔を検出する顔検出手段と、
前記顔検出手段により検出された顔に含まれる目領域を設定する目領域設定手段と、
前記目領域設定手段により設定された目領域において所定方向の各ラインにおける色差の値を抽出する第1の色差抽出手段と、
前記第1の色差抽出手段により抽出された色差の値の変化の態様に基づいて前記所定方向の各ラインにおける赤目領域候補を抽出する第1の赤目領域候補抽出手段と、
前記第1の赤目領域候補抽出手段により抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手段と、
前記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて設定された範囲内において前記所定方向と直行する方向である直行方向の各ラインにおける色差の値を抽出する第2の色差抽出手段と、
前記第2の色差抽出手段により抽出された色差の値の変化の態様に基づいて前記直行方向の各ラインにおける赤目領域候補を抽出する第2の赤目領域候補抽出手段と、
前記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補と前記第2の赤目領域候補抽出手段により抽出された赤目領域候補とに基づいて前記目領域設定手段により設定された目領域に含まれる赤目領域を設定する赤目領域設定手段と
を具備することを特徴とする画像処理装置。 - 被写体の画像を撮像する撮像手段と、
前記撮像手段により撮像された画像に対応する画像データを入力する入力手段と、
前記入力手段により入力された画像データに含まれる顔を検出する顔検出手段と、
前記顔検出手段により検出された顔に含まれる目領域を設定する目領域設定手段と、
前記目領域設定手段により設定された目領域において所定方向の各ラインにおける色差の値を抽出する色差抽出手段と、
前記色差抽出手段により抽出された色差の値の変化の態様に基づいて前記所定方向の各ラインにおける赤目領域候補を抽出する赤目領域候補抽出手段と、
前記赤目領域候補抽出手段により抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手段と、
前記ノイズ除去手段によりノイズが除去された後に存在する赤目領域候補に基づいて前記目領域設定手段により設定された目領域に含まれる赤目領域を設定する赤目領域設定手段と
を具備することを特徴とする撮像装置。 - 画像データを入力する入力手順と、
前記入力手順で入力された画像データに含まれる顔を検出する顔検出手順と、
前記顔検出手順で検出された顔に含まれる目領域を設定する目領域設定手順と、
前記目領域設定手順で設定された目領域において所定方向の各ラインにおける色差の値を抽出する色差抽出手順と、
前記色差抽出手順で抽出された色差の値の変化の態様に基づいて前記所定方向の各ラインにおける赤目領域候補を抽出する赤目領域候補抽出手順と、
前記赤目領域候補抽出手順で抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手順と、
前記ノイズ除去手順でノイズが除去された後に存在する赤目領域候補に基づいて前記目領域設定手順で設定された目領域に含まれる赤目領域を設定する赤目領域設定手順と
を具備することを特徴とする画像処理方法。 - 画像データを入力する入力手順と、
前記入力手順で入力された画像データに含まれる顔を検出する顔検出手順と、
前記顔検出手順で検出された顔に含まれる目領域を設定する目領域設定手順と、
前記目領域設定手順で設定された目領域において所定方向の各ラインにおける色差の値を抽出する色差抽出手順と、
前記色差抽出手順で抽出された色差の値の変化の態様に基づいて前記所定方向の各ラインにおける赤目領域候補を抽出する赤目領域候補抽出手順と、
前記赤目領域候補抽出手順で抽出された赤目領域候補の中からノイズである赤目領域候補を除去するノイズ除去手順と、
前記ノイズ除去手順でノイズが除去された後に存在する赤目領域候補に基づいて前記目領域設定手順で設定された目領域に含まれる赤目領域を設定する赤目領域設定手順と
をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006310980A JP2008129665A (ja) | 2006-11-17 | 2006-11-17 | 画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006310980A JP2008129665A (ja) | 2006-11-17 | 2006-11-17 | 画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008129665A true JP2008129665A (ja) | 2008-06-05 |
Family
ID=39555440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006310980A Pending JP2008129665A (ja) | 2006-11-17 | 2006-11-17 | 画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008129665A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020594A (ja) * | 2008-07-11 | 2010-01-28 | Kddi Corp | 瞳画像認識装置 |
JP2021043946A (ja) * | 2020-05-28 | 2021-03-18 | 株式会社スワローインキュベート | 画像処理方法、画像処理装置、及び画像処理プログラム |
JP2021043869A (ja) * | 2019-09-13 | 2021-03-18 | 株式会社スワローインキュベート | 画像処理方法、画像処理装置、及び画像処理プログラム |
-
2006
- 2006-11-17 JP JP2006310980A patent/JP2008129665A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020594A (ja) * | 2008-07-11 | 2010-01-28 | Kddi Corp | 瞳画像認識装置 |
JP2021043869A (ja) * | 2019-09-13 | 2021-03-18 | 株式会社スワローインキュベート | 画像処理方法、画像処理装置、及び画像処理プログラム |
JP2021043946A (ja) * | 2020-05-28 | 2021-03-18 | 株式会社スワローインキュベート | 画像処理方法、画像処理装置、及び画像処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5880182B2 (ja) | 画像生成装置、画像生成方法及びプログラム | |
JP4623199B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP5456159B2 (ja) | 背景から前景の頭頂部を分離するための方法および装置 | |
JP4623201B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP4889538B2 (ja) | 画像処理装置 | |
JP5223318B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP4373828B2 (ja) | 特定領域検出方法、特定領域検出装置、およびプログラム | |
JP4623200B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP4556813B2 (ja) | 画像処理装置、及びプログラム | |
JP5949331B2 (ja) | 画像生成装置、画像生成方法及びプログラム | |
US9667841B2 (en) | Image processing apparatus and image processing method | |
JP2009118009A (ja) | 撮像装置、その制御方法およびプログラム | |
US10404912B2 (en) | Image capturing apparatus, image processing apparatus, image capturing system, image processing method, and storage medium | |
JP6111723B2 (ja) | 画像生成装置、画像生成方法及びプログラム | |
KR20100124738A (ko) | 입력 화상을 처리하는 기계 구현 방법, 입력 화상을 처리하는 장치 및 컴퓨터 판독가능 매체 | |
JP2012198781A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2011100395A (ja) | 判別装置、判別方法およびプログラム | |
JP2008129665A (ja) | 画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム | |
KR101726692B1 (ko) | 객체 추출 장치 및 방법 | |
US8891833B2 (en) | Image processing apparatus and image processing method | |
US8971636B2 (en) | Image creating device, image creating method and recording medium | |
CN115761827A (zh) | 一种化妆进度检测方法、装置、设备及存储介质 | |
JP2008129664A (ja) | 画像処理装置、撮影装置、および、これらにおける画像処理方法ならびに当該方法をコンピュータに実行させるプログラム | |
JP2017147498A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5336798B2 (ja) | 画像処理装置および画像処理方法、プログラム |