人物の顔画像から目の特徴を特定する画像処理装置において、上記顔画像の目がある目領域を、目における横方向に微分して第1輝度勾配を求める第1微分部と、上記目領域について、上記第1輝度勾配に応じて、左側が右側より明るい境界に対応する第1エッジ点と、左側が右側より暗い境界に対応する第2エッジ点とを、エッジ点として抽出する第1エッジ抽出部と、ハフ変換を用いて、各エッジ点について、上記第1エッジ点および上記第2エッジ点のいずれであるかに応じて、かつ、投票対象である楕円と該エッジ点との位置関係に応じて、上記楕円に対する投票の重みを変えて投票を行う投票部と、上記投票部の投票結果に基づいて、瞳の輪郭を表す楕円を特定する瞳輪郭特定部とを備えることを特徴とする画像処理装置。上記投票部は、上記第1エッジ点から投票する場合、該第1エッジ点より中心座標が左に位置する上記楕円に対する重みより、該第1エッジ点より中心座標が右に位置する上記楕円に対する重みを大きくして投票し、上記第2エッジ点から投票する場合、該第2エッジ点より中心座標が右に位置する上記楕円に対する重みより、該第2エッジ点より中心座標が左に位置する上記楕円に対する重みを大きくして投票することを特徴とする請求項1に記載の画像処理装置。上記投票部の投票対象は円であり、上記瞳輪郭特定部は、上記投票部の投票結果に基づいて、瞳の輪郭を表す円を特定することを特徴とする請求項1または2に記載の画像処理装置。上記第1微分部は、上記目領域を、目頭と目尻とが並ぶ方向に沿って微分して上記第1輝度勾配を求め、上記第1エッジ抽出部は、正の第1閾値および負の第2閾値によって上記第1輝度勾配を3値化し、上記3値化された第1輝度勾配に応じて上記第1エッジ点および上記第2エッジ点を抽出することを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。上記目領域を、少なくとも目における縦方向に微分して第2輝度勾配を求める第2微分部と、上記目領域について、上記第2輝度勾配に応じて第3エッジ点を抽出する第2エッジ抽出部と、目頭点および目尻点を両端点とし、該両端点と制御点とによって表現される曲線であって、かつ、上記第3エッジ点に適合する上記曲線を、上瞼または下瞼の輪郭を表す曲線として特定する曲線特定部とを備え、上記両端点と制御点とによって表現される上記曲線は、Bスプライン曲線またはベジエ曲線であることを特徴とする請求項1から4のいずれか一項に記載の画像処理装置。上記曲線特定部は、上記目頭点または上記目尻点より上側に位置する上記第3エッジ点に適合する上記曲線を上瞼の輪郭を表す曲線として特定し、上記目頭点または上記目尻点より下側に位置する上記第3エッジ点に適合する上記曲線を下瞼の輪郭を表す曲線として特定し、上記瞳の輪郭を表す楕円、上記上瞼の輪郭を表す曲線、および上記下瞼の輪郭を表す曲線に基づき、上記顔画像における瞳の領域を特定する瞳領域特定部を備えることを特徴とする請求項5に記載の画像処理装置。上記曲線特定部は、ハフ変換を用いて、上記第3エッジ点について、投票対象である上記制御点に対して投票を行い、該投票結果に基づいて、上記第3エッジ点に適合する上記両端点と1つの上記制御点とによって表現されるBスプライン曲線を上記上瞼または下瞼の輪郭を表す曲線として特定することを特徴とする請求項5または6に記載の画像処理装置。上記曲線特定部は、上記目頭点と上記目尻点とを結ぶ線より上側に位置する上記第3エッジ点から上記上瞼の輪郭を表す曲線を特定し、上記目頭点と上記目尻点とを結ぶ線より下側に位置する上記第3エッジ点から上記下瞼の輪郭を表す曲線を特定することを特徴とする請求項5から7のいずれか一項に記載の画像処理装置。上記第2微分部は、上記目領域を、目における縦方向に微分した値を上記第2輝度勾配として求め、上記第2エッジ抽出部は、上記第2輝度勾配の絶対値が第3閾値より大きい点を上記第3エッジ点として抽出することを特徴とする請求項5から8のいずれか一項に記載の画像処理装置。人物の顔画像から目の特徴を特定する画像処理方法において、上記顔画像の目がある目領域を、目における横方向に微分して輝度勾配を求める微分ステップと、上記目領域について、上記輝度勾配に応じて、左側が右側より明るい境界に対応する第1エッジ点と、左側が右側より暗い境界に対応する第2エッジ点とを、エッジ点として抽出するエッジ抽出ステップと、ハフ変換を用いて、各エッジ点について、上記第1エッジ点および上記第2エッジ点のいずれであるかに応じて、かつ、投票対象である楕円と該エッジ点との位置関係に応じて、上記楕円に対する投票の重みを変えて投票を行う投票ステップと、上記投票ステップにおける投票結果に基づいて、瞳の輪郭を表す楕円を特定する瞳輪郭特定ステップとを含むことを特徴とする画像処理方法。しかしながら、上記従来の構成では、正確に瞳の領域を検出できないという問題が生じる。通常、ハフ変換によって円を検出する場合、前処理として画像から輝度のエッジ輪郭を抽出し、そのエッジに対してハフ変換による投票を行い、円を検出する。しかしながら、画像処理に用いる目を含む周辺領域の画像からは、瞳以外のエッジ例えば、上瞼および下瞼の輪郭、まつげ、皺、アイライン等の化粧、または影によるエッジがノイズとして検出される。特に、上瞼および下瞼のエッジは長く、エッジが延びている画素の数が多い。また、上瞼および下瞼のエッジは円形または楕円形に近いことが多いため、上瞼または下瞼にフィットする円に対する投票数が多くなり、上瞼または下瞼を示す円の位置を瞳の位置として誤検出する可能性がある。また、顔画像において瞳の輪郭が全て見えている場合は少なく、目を細めている場合は特に、瞳の上下の輪郭は上瞼および下瞼によって隠れていることが多い。そのため、瞳のエッジによる投票数が少なくなるので、従来の構成では、上瞼または下瞼を示す円の位置を瞳の位置として誤検出しやすくなる。また上述したように、瞳の領域の一部は、上瞼および下瞼によって隠されていることが多い。そのため、顔画像から正確な瞳の領域を検出するためには、瞳の輪郭を円として検出するだけでなく、上瞼および下瞼の境界線目と肌との境界線を正確に検出する必要がある。しかしながら、上記従来の構成は、上瞼および下瞼の形状を考慮しておらず、正確に瞳の領域を検出することはできない。従来、瞼の輪郭目の輪郭は、主に楕円または放物線等の2次曲線円錐曲線によって近似されていた。しかしながら、瞼の輪郭をこれらの曲線で正確に表すことができない場合がある。例えば、瞼の輪郭形状は個人差が大きく、人によっては楕円または放物線では表せないことが多い。また、画像に写った顔の向きによって、特に顔が正面を向いていない場合、瞼の輪郭は楕円または放物線では正確に表現できない形状になる。瞼の輪郭を正確に検出できないと、瞳の領域を精度よく特定することはできない。本発明は、上記の問題点に鑑みてなされたものであり、その目的は、正確に瞳の領域を検出することができる画像処理装置を実現することにある。本発明に係る画像処理装置は、人物の顔画像から目の特徴を特定する画像処理装置であって、上記の課題を解決するために、上記顔画像の目がある目領域を、目における横方向に微分して第1輝度勾配を求める第1微分部と、上記目領域について、上記第1輝度勾配に応じて、左側が右側より明るい境界に対応する第1エッジ点と、左側が右側より暗い境界に対応する第2エッジ点とを、エッジ点として抽出する第1エッジ抽出部と、ハフ変換を用いて、各エッジ点について、上記第1エッジ点および上記第2エッジ点のいずれであるかに応じて、かつ、投票対象である楕円と該エッジ点との位置関係に応じて、上記楕円に対する投票の重みを変えて投票を行う投票部と、上記投票部の投票結果に基づいて、瞳の輪郭を表す楕円を特定する瞳輪郭特定部とを備えることを特徴としている。本発明に係る画像処理方法は、人物の顔画像から目の特徴を特定する画像処理方法であって、上記の課題を解決するために、上記顔画像の目がある目領域を、目における横方向に微分して輝度勾配を求める微分ステップと、上記目領域について、上記輝度勾配に応じて、左側が右側より明るい境界に対応する第1エッジ点と、左側が右側より暗い境界に対応する第2エッジ点とを、エッジ点として抽出するエッジ抽出ステップと、ハフ変換を用いて、各エッジ点について、上記第1エッジ点および上記第2エッジ点のいずれであるかに応じて、かつ、投票対象である楕円と該エッジ点との位置関係に応じて、上記楕円に対する投票の重みを変えて投票を行う投票ステップと、上記投票ステップにおける投票結果に基づいて、瞳の輪郭を表す楕円を特定する瞳輪郭特定ステップとを含むことを特徴としている。上記の構成によれば、目における横方向に微分した第1輝度勾配から、左側が右側より明るい境界に対応する第1エッジ点と、左側が右側より暗い境界に対応する第2エッジ点とを、エッジ点として抽出する。よって、目における縦方向に延びる輪郭をエッジ点として抽出し、横方向に延びる輪郭を排除することになる。それゆえ、瞳の輪郭を表す楕円の特定においてノイズとなる瞼の輪郭等のエッジを排除することができる。また、瞳の領域は周囲の白目の領域より輝度が低いと考えられるので、左側が右側より明るい境界に対応する第1エッジ点は、瞳の左側の輪郭に対応し、左側が右側より暗い境界に対応する第2エッジ点は、瞳の右側の輪郭に対応すると考えられる。すなわち、瞳の輪郭を表す楕円の中心は、多くの第1エッジ点の右側かつ多くの第2エッジ点の左側にあると考えられる。よって、ハフ変換において、第1エッジ点および第2エッジ点のいずれであるかに応じて、かつ、投票対象である楕円と該エッジ点との位置関係に応じて、上記楕円に対する投票の重みを変えて投票を行うことにより、瞳の輪郭を表す楕円を正確に特定することができる。そして、正確に特定した瞳の輪郭を表す楕円を利用して、瞳の領域を特定することができる。また、写真の画像において赤目が発生している場合、赤目領域は周囲の瞳の領域より輝度が大きいと考えられる。よって、赤目領域の輪郭の左右のエッジは、瞳の輪郭の左右のエッジと位置が逆になる。そのため、上記重みづけ投票によって赤目領域からの投票は分散することになる。それゆえ、赤目領域の輪郭を、瞳の輪郭として誤検出することを防ぐことができる。なお、瞳の輪郭を円とみなし、瞳の輪郭を表す円を特定してもよい。また、上記投票部は、上記第1エッジ点から投票する場合、該第1エッジ点より中心座標が左に位置する上記楕円に対する重みより、該第1エッジ点より中心座標が右に位置する上記楕円に対する重みを大きくして投票し、上記第2エッジ点から投票する場合、該第2エッジ点より中心座標が右に位置する上記楕円に対する重みより、該第2エッジ点より中心座標が左に位置する上記楕円に対する重みを大きくして投票してもよい。上記の構成によれば、瞳の左側の輪郭である可能性が高い第1エッジ点から、それより右側に中心座標があり瞳の輪郭として適切と考えられる楕円に大きな重みで投票し、それより左側に中心座標があり瞳の輪郭として適切ではないと考えられる楕円に小さな重みで投票する。また、同様に、瞳の右側の輪郭である可能性が高い第2エッジ点から、それより左側に中心座標があり瞳の輪郭として適切と考えられる楕円に大きな重みで投票し、それより右側に中心座標があり瞳の輪郭として適切ではないと考えられる楕円に小さな重みで投票する。よって、瞳の輪郭として適切な楕円に対する投票を大きくすることができる。それゆえ、瞳の輪郭を表す楕円を正確に特定することができる。また、上記第1微分部は、上記目領域を、目頭と目尻とが並ぶ方向に沿って微分して上記第1輝度勾配を求め、上記第1エッジ抽出部は、正の第1閾値および負の第2閾値によって上記第1輝度勾配を3値化し、上記3値化された第1輝度勾配に応じて上記第1エッジ点および上記第2エッジ点を抽出する構成であってもよい。上記の構成によれば、上記第1微分部は、上記目領域を、目頭と目尻とが並ぶ方向に沿って微分するので、ノイズとなる主に横方向に延びる瞼の輪郭等のエッジを排除することができる。また、上記画像処理装置は、上記目領域を、少なくとも目における縦方向に微分して第2輝度勾配を求める第2微分部と、上記目領域について、上記第2輝度勾配に応じて第3エッジ点を抽出する第2エッジ抽出部と、目頭点および目尻点を両端点とし該両端点と制御点とによって表現される曲線であって、かつ、上記第3エッジ点に適合する上記曲線を、上瞼または下瞼の輪郭を表す曲線として特定する曲線特定部とを備える構成であってもよい。ここで、上記両端点と制御点とによって表現される上記曲線は、上記両端点を通り、上記両端点の間において該曲線の凸の位置および向きが上記制御点によって規定される曲線である。例えば、上記両端点と制御点とによって表現される上記曲線は、Bスプライン曲線またはベジエ曲線である。ここで、上記Bスプライン曲線またはベジエ曲線は、例えば2次Bスプライン曲線、より高次のBスプライン曲線、3次のベジエ曲線、または、より高次のベジエ曲線であってもよい。上記の構成によれば、少なくとも目における縦方向に微分した第2輝度勾配から、第3エッジ点を抽出する。上瞼および下瞼の輪郭は主に横方向に延びるので、上瞼および下瞼の輪郭に対応する主なエッジ点は、第3エッジ点に含まれる。また、両端点と制御点とによって表されるBスプライン曲線等の曲線を用いることで、様々な形状の瞼の輪郭を表現することができる。例えば、顔が正面を向いていない画像では、上瞼の凸の部分が目頭側または目尻側に寄ったものになる。両端点と制御点とによって表される曲線では、制御点によってこのような瞼の輪郭を適切に表現することができる。また、曲線の両端点である目頭点および目尻点は、周知の技術を用いて容易に特定することができる。そのため、曲線特定部は、第3エッジ点に基づいて残りの制御点を特定するだけで、瞼の輪郭を表す曲線を特定することができる。また、上記曲線特定部は、上記目頭点または上記目尻点より上側に位置する上記第3エッジ点に適合する上記曲線を上瞼の輪郭を表す曲線として特定し、上記目頭点または上記目尻点より下側に位置する上記第3エッジ点に適合する上記曲線を下瞼の輪郭を表す曲線として特定してもよく、上記画像処理装置は、上記瞳の輪郭を表す楕円、上記上瞼の輪郭を表す曲線、および上記下瞼の輪郭を表す曲線に基づき、上記顔画像における瞳の領域を特定する瞳領域特定部を備える構成であってもよい。上記の構成によれば、上瞼の輪郭を表す曲線、下瞼の輪郭を表す曲線、および瞳の輪郭を表す楕円を正確に特定することができる。瞳の輪郭を表す楕円の内側、かつ、上瞼の輪郭を表す曲線の下側、かつ、下瞼の輪郭を表す曲線の上側の領域が、顔画像における瞳の領域と考えられる。よって、正確に瞳の領域を特定することができる。また、上記曲線特定部は、ハフ変換を用いて、上記第3エッジ点について、投票対象である上記制御点に対して投票を行い、該投票結果に基づいて、上記第3エッジ点に適合する上記両端点と1つの上記制御点とによって表現されるBスプライン曲線を上記上瞼または下瞼の輪郭を表す曲線として特定してもよい。制御点が1つのBスプライン曲線でも、制御点の位置に応じて曲線の凸の位置および高さを様々に変化させることができる。上記の構成によれば、瞼の輪郭を制御点が1つのBスプライン曲線で適切に表すことができ、また、未知の変数が1つの制御点の座標だけになるので、ハフ変換によって容易に求めることができる。また、上記曲線特定部は、上記目頭点と上記目尻点とを結ぶ線より上側に位置する上記第3エッジ点から上記上瞼の輪郭を表す曲線を特定し、上記目頭点と上記目尻点とを結ぶ線より下側に位置する上記第3エッジ点から上記下瞼の輪郭を表す曲線を特定してもよい。上瞼の輪郭に対応する第3エッジ点は、上記目頭点と上記目尻点とを結ぶ線より上側に位置すると考えられる。また、下瞼の輪郭に対応する第3エッジ点は、上記目頭点と上記目尻点とを結ぶ線より下側に位置すると考えられる。よって、上記の構成によれば、上瞼および下瞼のそれぞれに関係のないノイズとなるエッジ点を除去することができる。よって、より正確に上瞼の輪郭を表す曲線および下瞼の輪郭を表す曲線を特定することができる。また、上記第2微分部は、上記目領域を、目における縦方向に微分した値を上記第2輝度勾配として求め、上記第2エッジ抽出部は、上記第2輝度勾配の絶対値が第3閾値より大きい点を上記第3エッジ点として抽出してもよい。上記の構成によれば、ノイズとなる縦方向に延びる瞳と白目との境界のエッジの一部を除去することができる。よって、より正確に上瞼の輪郭を表す曲線および下瞼の輪郭を表す曲線を特定することができる。なお、上記画像処理装置は、一部をコンピュータによって実現してもよく、この場合には、コンピュータを上記各部として動作させることにより上記画像処理装置をコンピュータにて実現させる制御プログラム、および上記制御プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。以上のように、瞳の輪郭を表す楕円の特定において、目における横方向に微分することで、主として横方向に延びる瞼の輪郭等のエッジを排除することができる。また、瞳の輪郭を表す楕円の中心は、多くの第1エッジ点の右側かつ多くの第2エッジ点の左側にあると考えられる。よって、ハフ変換において、第1エッジ点および上記第2エッジ点のいずれであるかに応じて、かつ、投票対象である楕円と該エッジ点との位置関係に応じて、上記楕円に対する投票の重みを変えて投票を行うことにより、瞳の輪郭を表す楕円を正確に特定することができる。そして、正確に特定した瞳の輪郭を表す楕円を利用して、瞳の領域を特定することができる。以下では、主に、デジタルカメラに搭載され、撮像された画像に含まれる顔画像に対して処理を行う画像処理装置について説明するが、本発明はこれに限定されるものではない。例えば、本発明に係る画像処理装置は、デジタルビデオカメラ、カメラ付き携帯電話、パーソナルコンピュータPCのWebカメラ、写真撮影シール作成機等の撮影装置に搭載され、撮影装置で撮影して得られた画像に対して処理を行ってもよい。また、本発明に係る画像処理装置は、ネットワーク等の通信経路、または外部記憶装置から取得した画像について処理を行ってもよい。また、撮像された静止画だけではなく、動画等の顔画像に処理を行ってもよい。また、デジタルカメラで撮像を行う際にデジタルカメラの表示装置に表示されるプレビュー画像に処理を施してもよい。[実施形態1]以下、本発明の実施形態について、図面を参照して詳細に説明する。<デジタルカメラの構成>図1は、本発明の実施形態に係るデジタルカメラ1の概略構成を示すブロック図である。デジタルカメラ1は、指示入力装置2、撮像装置3、画像記憶装置4、表示装置5、および画像処理装置6を備える。指示入力装置2は、ボタン、キーまたはタッチパネル等の入力装置を備え、利用者から撮像の指示を受け付け、撮像装置3に撮像の指示を出力する。撮像装置3は、例えば、CCDchargecoupleddeviceまたはCMOScomplementarymetaloxidesemiconductor撮像素子等の撮像素子を備える。撮像装置3は、撮像の指示に応じて撮像し、撮像した画像画像データを画像処理装置6に出力する。画像記憶装置4は、各種の情報を記憶するものであり、例えばHDDHardDiskDrive、またはフラッシュメモリ等の記憶デバイスを備える。画像記憶装置4は、画像処理装置6から受け取った画像を記憶して保存しておく。表示装置5は、ディスプレイを備え、入力された画像を表示して利用者に提示する。また、表示装置5は、画像処理装置6から補正処理済みの画像を受け取り、補正処理済みの画像を表示する。<画像処理装置の構成>画像処理装置6は、画像取得部11、顔検出部12、特徴検出部13、目画像抽出部14、瞳輪郭検出部15、瞼輪郭検出部16、瞳領域特定部17、画像補正部18、および出力部19を備える。画像取得部11は、撮像装置3から撮像された画像を処理対象の画像として取得する。なお、画像取得部11は、画像記憶装置4に記憶されている画像を処理対象の画像として取得してもよい。画像取得部11は、取得した処理対象の画像を顔検出部12、特徴検出部13、目画像抽出部14、および画像補正部18に出力する。顔検出部12は、画像取得部11から受け取った画像の中に含まれる顔画像を検出する。顔検出部12は、画像に含まれる顔画像を検出すると、顔画像の位置を特定する。顔画像の位置は、顔画像の所定の点の座標を示してもよいし、顔画像の領域を示してもよい。顔検出部12は、顔画像の位置を、特徴検出部13、および目画像抽出部14に出力する。なお、顔検出部12は、処理対象の画像から複数の顔画像を検出してもよい。複数の顔画像を検出した場合、顔検出部12は、各顔画像の位置を特定し、複数の顔画像の位置を上記各部に出力してもよい。特徴検出部13は、画像取得部11から受け取った処理対象の画像および顔検出部12から受け取った顔画像の位置から、該顔画像の顔の各特徴の位置を検出する。具体的には、特徴検出部13は、例えば目目頭、目尻等、口口端点、口の中心点等、および鼻鼻の頂点等等の顔の器官の特徴、および顔の輪郭等の特徴特徴点を検出し、それらの位置を特定する。各特徴の検出は、公知の技術を用いて行うことができる。ここでは、特徴検出部13は、特に目頭、目尻を検出し、それらの座標を特定する。特徴検出部13は、検出した顔の特徴の位置を目画像抽出部14、瞳輪郭検出部15、および瞼輪郭検出部16に出力する。なお、特徴検出部13は、複数の顔画像の特徴の位置を特定し、複数の顔画像の特徴の位置を上記各部に出力してもよい。目画像抽出部14は、画像取得部11、顔検出部12、および特徴検出部13からそれぞれ処理対象の画像、顔画像の位置、および顔の特徴の位置を受け取る。目画像抽出部14は、受け取った情報に基づき、処理対象となる顔画像の目を含む所定の領域の画像を抽出する。なお、画像の中の顔は傾いていることがある。瞳領域の検出処理が簡単になるように、目画像抽出部14は、抽出した目を含む領域の画像を、目尻の特徴点目尻点と目頭の特徴点目頭点との位置関係が水平になるように必要に応じて回転させた画像を、目画像として生成する。目画像における水平方向目頭と目尻とが並ぶ方向をx方向、それに垂直な縦方向をy方向とする。なお、本実施形態では輝度の情報を用いて瞳領域の検出処理を行うので、目画像抽出部14は、各画素が輝度値のみを有するグレースケールの目画像を生成する。図2は、目画像の一例を示す図である。ここでは、目頭点Eaおよび目尻点Ebを含む目の領域の画像を目画像としている。瞳の領域を特定するために、目画像には瞳およびその周辺が含まれていればよい。目画像抽出部14は、目画像を瞳輪郭検出部15、および、瞼輪郭検出部16に出力する。また、目画像抽出部14は、顔画像と目画像との座標の対応関係を示す情報を、画像補正部18に出力する。なお、目画像抽出部14は、顔に含まれる左右の目のそれぞれについて、目画像を生成し、瞳輪郭検出部15および瞼輪郭検出部16は、各目画像について処理を行う。簡単のため、以下では、1つの顔の1つの左眼の目画像についての処理のみ記載する。なお、右眼についても同様の処理を行う。瞳輪郭検出部15は、目画像抽出部14から目画像を取得し、特徴検出部13から対応する目頭点Eaおよび目尻点Ebの座標を取得する。瞳輪郭検出部15は、瞳の輪郭を円として検出し、検出した円の情報中心座標および半径を、瞳領域特定部17に出力する。瞳輪郭検出部15の詳細な構成は後述する。瞼輪郭検出部16は、目画像抽出部14から目画像を取得し、特徴検出部13から対応する目頭点Eaおよび目尻点Ebの座標を取得する。瞼輪郭検出部16は、瞼の輪郭を曲線として検出し、検出した曲線を表す情報端点および制御点の座標を、瞳領域特定部17に出力する。瞼輪郭検出部16の詳細な構成は後述する。瞳領域特定部17は、瞳輪郭検出部15が特定した瞳の輪郭を表す円と、瞼輪郭検出部16が特定した上瞼の輪郭を表す曲線および下瞼の輪郭を表す曲線とに基づき、目画像における瞳領域を特定する。具体的には、瞳領域特定部17は、瞳の輪郭を表す円の内部であり、かつ、上瞼の輪郭を表す曲線と下瞼の輪郭を表す曲線とに囲まれる領域を、瞳領域として特定する。瞳領域特定部17は、特定した瞳領域を画像補正部18に出力する。画像補正部18は、瞳領域特定部17によって特定された瞳領域に基づいて、顔画像における対応する目の領域の画像を補正する。ここでは、瞳領域の瞳色補正を行う。なお、他の補正処理、例えば瞼の輪郭に基づいて瞳の大きさを大きくする等の補正を行ってもよい。画像補正部18は、補正された画像を出力部19に出力する。出力部19は、画像記憶装置4に補正された画像を出力し、記憶させる。または、出力部19は、表示装置5に補正された画像を出力し、ディスプレイに補正された画像を表示させるよう制御を行う。<瞳輪郭検出部の構成>瞳輪郭検出部15は、目画像抽出部14から目画像を取得し、特徴検出部13から対応する目頭点Eaおよび目尻点Ebの座標を取得する。目頭点Eaおよび目尻点Ebの座標は、目画像に対応付けられる。瞳輪郭検出部15は、第1微分部31、3値化部第1エッジ抽出部32、第1投票部投票部33、および瞳輪郭特定部34を備える。第1微分部31は、目画像に微分フィルタを適用し、水平方向における輝度勾配を検出する。具体的には、第1微分部31は、目画像に対してx方向に微分フィルタここではSobelフィルタを適用し、水平方向の輝度勾配を求める。図3aは、x方向のSobelフィルタを示す図である。なお、目画像またはSobelフィルタを適宜拡大縮小して適用してよい。図3aに示すSobelフィルタを目画像に適用すると、周辺画素の輝度差輝度勾配が大きい注目画素フィルタの中心に位置する画素に対応する値微分値は、左から右に向かって輝度が小さくなる目画像の箇所については、負の値になる。また、左から右に向かって輝度が大きくなる目画像の箇所については、微分値は正の値になる。輝度勾配の大きさに応じて、微分値の絶対値は大きくなる。左から右に向かって輝度が変化しない目画像の箇所については、微分値は0になる。微分値の絶対値は、エッジ強度と言うことができる。3値化部32は、第1微分部31から目画像の各位置に対応する輝度勾配微分値を取得し、目画像の輝度勾配を3値化してエッジ点を抽出し、第1エッジ画像を生成する。具体的には、3値化部32は、水平方向Sobelフィルタを適用して得た微分値dxを、正の閾値taおよび負の閾値tbによって3値化する。目画像の各位置について、dx≦tbであれば-1、tb<dx<taであれば0、ta≦dxであれば1とする。ここでは、|tb|=taとする。第1エッジ画像の値は、-1、0、1のいずれかであり、3値化された値が-1の箇所は、左側の輝度が右側の輝度より大きい箇所エッジ点である。また、3値化された値が1の箇所は、左側の輝度が右側の輝度より小さい箇所エッジ点である。また、3値化された値が0の箇所は、左側の輝度と右側の輝度との差が小さい箇所である。図4は、3値化された水平方向の輝度勾配の値を有する第1エッジ画像を示す図である。水平方向の輝度勾配のみを3値化することにより、横方向に延びる上瞼および下瞼の境界のエッジを除去することができる。すなわち、縦方向に延びる瞳と白目との境界を主に検出できる。さらに、瞳の左側の境界は、3値化された輝度勾配の値が-1となり、瞳の右側の境界は、3値化された輝度勾配の値が1となる。これにより、瞳の左側と右側とを区別することができる。なお、肌の領域は白目の領域より輝度が小さいことが多いので、目頭点Eaに近い位置の3値化された輝度勾配の値は1となり、目尻点Ebに近い位置の3値化された輝度勾配の値は-1となる。なお、微分フィルタとして、Sobelフィルタではなく、他の微分フィルタを用いてもよい。このとき、目頭から目尻への方向における輝度の変化に応じて、微分値を3値化できればよい。第1投票部33は、第1エッジ画像のエッジに位置する各画素値が-1および1の画素を投票実行画素として、ハフ変換によって第1エッジ画像に含まれる円を検出するための投票を行う。ここで、第1投票部33は、3値化された値に応じて投票対象に重みづけをして、投票を行う。円の検出を行うので、投票対象であるハフ空間のパラメータは円の中心座標Xc、Ycおよび円の半径Rcの3つである。また、瞳の領域は、白目の領域より輝度が小さいと考えられる。よって、瞳と白目との境界のうち、左側の境界の3値化された値は必ず-1になり、右側の境界の3値化された値は必ず1になる。すなわち、瞳を表す円の中心座標Xc、Ycは、多くの3値化された値が-1である投票実行画素より右側に位置し、多くの3値化された値が1である投票実行画素より左側に位置すると考えられる。よって、第1投票部33は、第1エッジ画像の各投票実行画素について、その投票実行画素の3値化された値が-1であれば、その投票実行画素を通り、その投票実行画素のx座標より右側に中心座標がある円に対する投票の重みを大きくして投票し、左側に中心座標がある円に対する投票の重みを小さくして投票する。また、その投票実行画素の3値化された値が1であれば、その投票実行画素を通り、その投票実行画素のx座標より右側に中心座標がある円に対する投票の重みを小さくして投票し、左側に中心座標がある円に対する投票の重みを大きくして投票する。例えば、3値化された値が-1である投票実行画素からの投票において、その投票実行画素を通り、その投票実行画素より左側に中心がある円に対しては重み投票数1で投票し、その投票実行画素より右側に中心がある円に対しては重み投票数2で投票する。瞳輪郭特定部34は、第1投票部33による投票結果に基づき、最も多くの投票数を得た円Xc、Yc、Rcを、瞳の輪郭を表す円として特定する。瞳輪郭特定部34は、特定した円の中心座標Xc、Ycおよび半径Rcを、瞳領域特定部17に出力する。このように、3値化された輝度勾配と、投票対象円の位置に応じて、投票に重みづけをすることにより、瞳の輪郭をより表していると考えられる円の合計投票数が大きくなる。そのため、ノイズによって投票された円と、瞳の輪郭を表す円とを判別することができる。なお、瞳を円ではなく楕円と仮定して、瞳輪郭検出部15は、瞳の輪郭を表す楕円を重みづけ投票によって検出してもよい。この場合、第1投票部33は、例えば、楕円の中心または2つの焦点が投票実行画素の左右いずれの側にあるかに応じて、該楕円への投票の重みを変化させてもよい。なお、一般的な楕円は、例えば2つの焦点の座標と、焦点からの距離の和とを表す5つのパラメータで表現される。<瞼輪郭検出部の構成>瞼輪郭検出部16は、目画像抽出部14から目画像を取得し、特徴検出部13から対応する目頭点Eaおよび目尻点Ebの座標を取得する。目頭点Eaおよび目尻点Ebの座標は、目画像に対応付けられる。瞼輪郭検出部16は、第2微分部41、2値化部第2エッジ抽出部42、第2投票部曲線特定部43、および瞼輪郭特定部曲線特定部44を備える。なお、上瞼および下瞼の輪郭の検出は、別々に行われる。以下、上瞼の輪郭を検出する場合について説明するが、下瞼の輪郭も同様にして検出することができる。第2微分部41は、目画像に微分フィルタを適用し、輝度勾配を求める。第2微分部41は、第1微分部31とは異なり、縦方向および横方向における輝度勾配を求める。具体的には、第2微分部41は、目画像に対してy方向およびx方向に微分フィルタここではSobelフィルタを適用し、輝度勾配の絶対値をエッジ強度として検出する。図3bは、y方向のSobelフィルタを示す図である。なお、目画像またはSobelフィルタを適宜拡大縮小して適用してよい。第2微分部41は、y方向のSobelフィルタおよびx方向のSobelフィルタをそれぞれ適用し、y方向の微分値の絶対値とx方向の微分値の絶対値との和を、目画像の各位置におけるエッジ強度とする。2値化部42は、第2微分部41から目画像の各位置に対応するエッジ強度微分値の絶対値を取得し、目画像のエッジ強度を2値化してエッジ点を抽出し、第2エッジ画像を生成する。具体的には、2値化部42は、Sobelフィルタを適用して得た微分値の絶対値dzを、閾値tcによって2値化する。目画像の各位置について、dz<tcであれば0、tc≦dzであれば1とする。第2エッジ画像の値は、0、1のいずれかであり、エッジ強度が大きい箇所エッジ点は1となり、エッジ強度が小さい箇所は0となる。図5は、2値化されたエッジ強度を有する第2エッジ画像を示す図である。2値化することにより、輝度差が大きい肌と目との境界瞼の輪郭、および、瞳と白目との境界瞳の境界が主に抽出される。なお、微分フィルタとして、Sobelフィルタではなく、他の微分フィルタを用いてもよい。第2投票部43は、第2エッジ画像のエッジに位置する各画素値が1の画素を投票実行画素として、ハフ変換によって瞼の輪郭を表す曲線を検出するための投票を行う。なお、上瞼の輪郭を表す曲線を検出する場合、下瞼のエッジはノイズになるので、第2エッジ画像の目頭点Eaおよび目尻点Ebの上側図5に示す線Aの上側に位置する該画素を投票実行画素とする。本実施形態では、Bスプライン曲線を用いて瞼の輪郭を表現する。1つの区間の2次Bスプライン曲線は、2つの端点と、1つの制御点によって定義することができる。Bスプライン曲線は、制御点に向かって凸になっている。Bスプライン曲線は、制御点の位置に応じて、曲線の凸になる位置を変化させることができるので、画像の中の顔が少し横を向いている場合でも、瞼の輪郭を正確に表現することができる。瞼の輪郭の端点である目頭点Eaおよび目尻点Ebの座標は既知であるので、ここでは、1つの制御点の座標Xb、Ybを求めればよい。具体的には、第2投票部43は、第2エッジ画像の目頭点Eaおよび目尻点Ebの上側に位置する各投票実行画素について、該投票実行画素を通るBスプライン曲線の制御点Xb、Ybに投票する。投票対象となる制御点の範囲ハフ空間での投票範囲は必要に応じて所定の範囲等に制限してよい。なお上瞼の場合、制御点は目頭点Eaおよび目尻点Ebの上側にあると考えられる。瞼輪郭特定部44は、第2投票部43による投票結果に基づき、最も多くの投票数を得た制御点Xb、Ybで表されるBスプライン曲線を、上瞼の輪郭を表す曲線として特定する。特定されたBスプライン曲線は、目頭点Eaおよび目尻点Ebを区間の端点とし、制御点Xb、Ybで表される曲線である。瞼輪郭特定部44は、目頭点Ea、目尻点Ebの座標、および特定した制御点Xb、Ybを、瞳領域特定部17に出力する。なお、2次Bスプライン曲線に限らず、より高次のBスプライン曲線またはベジエ曲線等の、いくつかの制御点と、曲線が通過する両端点目頭点および目尻点とによって表される曲線を用いて、瞼の輪郭を検出してもよい。上記の制御点と端点とで表される曲線によって瞼の輪郭を表す場合、曲線が通過する両端点目頭点および目尻点は従来の特徴検出技術により既知であるので、瞼の輪郭を検出するためには、残る制御点の座標を特定するだけでよい。そのため、制御点をハフ変換により容易に求めることができる。また、両端点と制御点により表現される曲線Bスプライン曲線等によれば、様々な瞼の輪郭を精度よく表すことができ、瞼の輪郭を正確に特定することができる。なお、制御点が1つの2次Bスプライン曲線を用いても、様々な瞼の輪郭を精度よく表すことができる上、ハフ空間でのパラメータが2つXb、Ybなので、円を検出する場合よりも計算が少なくて済む。なお、ハフ変換の代わりに、最小二乗法等を用いて、目画像の2値化されたエッジにフィット適合するBスプライン曲線を、瞼の輪郭を表す曲線として求めることもできる。下瞼についても、上瞼と同様に、目頭点Eaおよび目尻点Ebの下側に位置するエッジの各画素から投票を行い、下瞼の輪郭を表すBスプライン曲線の制御点を特定する。なお、上記の例では上瞼および下瞼に対して別々に投票を行うが、目画像の上下の全てのエッジからまとめて投票を行い、投票数の多い上下2つの曲線を上瞼を表す曲線および下瞼を表す曲線として特定してもよい。<画像処理フロー>以下に、画像処理装置6における画像補正処理の流れについて説明する。図6は、画像処理装置6における画像補正処理の流れを示すフローチャートである。なお、ここでは、簡単のため、検出された1つの目に対して処理を行う場合について説明する。画像取得部11は、撮像装置3から撮像された画像を受け取るS1。顔検出部12は、処理対象となる画像に含まれる顔画像を検出し、その顔画像の位置を特定するS2。特徴検出部13は、検出された顔画像に含まれる、目頭点および目尻点の位置を検出するS3。目画像抽出部14は、処理対象となる顔画像の目を含む所定の領域の画像を抽出し、図2に示される目画像を生成するS4。このとき、目尻点と目頭点との位置関係が水平になるように必要に応じて回転させる。第1微分部31は、目画像にx方向の微分を行う微分フィルタを適用し、目の水平方向における輝度勾配を検出するS5。3値化部32は、目画像の輝度勾配を3値化するS6。これにより、目画像の水平方向横方向における明暗の変化に応じて、-1、0、1の値に3値化することができる。図4は、3値化された第1エッジ画像を示す図である。第1投票部33は、第1エッジ画像のエッジに位置する各画素値が-1および1の画素を投票実行画素として、3値化された値に応じて投票対象に重みづけをして、ハフ変換によって円を検出するための投票を行うS7。瞳輪郭特定部34は、第1投票部33による投票結果に基づき、最も多くの投票数を得た円Xc、Yc、Rcを、瞳の輪郭を表す円として特定するS8。第2微分部41は、目画像に微分フィルタを適用し、縦方向および横方向における輝度勾配を検出するS9。2値化部42は、エッジ強度に応じて目画像の輝度勾配を2値化するS10。図5は、2値化された第2エッジ画像を示す図である。第2投票部43は、第2エッジ画像の上側に位置するエッジに対応する各画素値が1の画素を投票実行画素として、ハフ変換によってBスプライン曲線を検出するための投票を行うS11。瞼輪郭特定部44は、第2投票部43による投票結果に基づき、最も多くの投票数を得た制御点Xb1、Yb1で表されるBスプライン曲線を、上瞼の輪郭を表す曲線として特定するS12。また、第2投票部43は、第2エッジ画像の下側に位置するエッジに対応する各画素値が1の画素を投票実行画素として、ハフ変換によってBスプライン曲線を検出するための投票を行うS13。瞼輪郭特定部44は、第2投票部43による投票結果に基づき、最も多くの投票数を得た制御点Xb2、Yb2で表されるBスプライン曲線を、下瞼の輪郭を表す曲線として特定するS14。図7は、特定された瞳の輪郭を表す円と、特定された瞼の輪郭を表す曲線とを示す図である。図7では、瞳の輪郭を表す円Ecが破線で示され、上瞼の輪郭を表す曲線Edおよび下瞼の輪郭を表す曲線Eeが実線で示されている。瞳領域特定部17は、瞳の輪郭を表す円Ecの内部であり、かつ、上瞼の輪郭を表す曲線Edの下側であり、かつ、下瞼の輪郭を表す曲線Eeの上側である領域を、瞳領域Epとして特定するS15。画像補正部18は、顔画像における瞳領域の瞳色補正を行うS16。画像処理装置6は、画像記憶装置4または表示装置5に補正された画像を出力し、処理を終了する。本実施形態では、上述したように、目画像のx方向目頭と目尻とがほぼ並ぶ方向における輝度の変化減少、無し、増大を3値化し、ハフ変換において、x方向における輝度の変化に応じて投票対象円に重みをつけて投票を行う。よって、瞼の輪郭等のノイズを排除することができる。また、3値化によって瞳の左側の輪郭と瞳の右側の輪郭とを区別し、それに応じて投票対象の重みを変えて投票することにより、瞳の輪郭をより表していると考えられる円の投票数が大きくなるようにすることができる。よって、瞳の輪郭を表す円を正確に特定することができる。このように、画像の中の検出対象である瞳は周囲の白目の部分より輝度が小さいという事前知識を、3値化とそれに応じた重みづけによって検出処理に組み込むことができる。よって、一般的な従来のハフ変換を用いた円形の検出よりも、正確に瞳の輪郭を検出することができる。また、撮影された画像に赤目が発生している場合、目画像の瞳の中に輝度の大きな赤目領域が存在する。輝度が小さい瞳の中の輝度が大きい赤目領域の境界は、3値化によって、例えば左側が1、右側が-1となり、瞳のそれぞれの境界と逆の値になる。赤目領域の左側の境界値が1は、そのさらに左側に中心が位置する円に対して重みが大きくなり、赤目領域の右側の境界値が-1は、そのさらに右側に中心が位置する円に対して重みが大きくなる。よって、ノイズである赤目領域の境界による投票の重みは異なる領域に分散することになる。そのため、赤目領域を瞳領域として誤検出することを防ぐことができる。このように、3値化に対する重みづけによって、ハフ変換においてノイズのエッジ点の影響を受けにくくすることができる。また、顔の向き、個人差によって様々に変わりうる上下の各瞼の輪郭を、制御点と両端点とで表される曲線Bスプライン曲線等で表現する。Bスプライン曲線等は、制御点の座標によって曲線の凸の向きと位置とを調整することができるので、様々な形状である瞼の輪郭を、正確に表現することができる。目頭点および目尻点は、公知の技術によって容易に取得することができるので、両端点は既知である。そのため、目画像のエッジに基づいて、残る制御点を容易にハフ変換を用いて特定することができる。このようにして特定された瞳の輪郭を表す円と瞼の輪郭を表す曲線とに基づき、瞼によって部分的に隠れた画像中の瞳の領域を、精度よく特定することができる。よって、瞳の領域に正確に補正を行うことができる。また、正確に特定された瞳の領域に基づき、目等の補正を行うことができる。また、瞳の領域および瞳の中心を正確に検出することができるので、静止画または動画から人物の瞳を検出し、その情報を利用する様々な技術に応用することができる。例えば、検出した瞳から被写体特に幼児の視線を推定し、視線がカメラに向いたときに自動でシャッターを切るオートシャッター機能、または、検出した瞳から運転手の運転状態わき見運転等を推定し、警告等を行う車載ドライビングシステム等に利用することができる。[実施形態2]本実施形態では、瞼検出において縦方向y方向にのみ微分を行う構成について説明する。なお、説明の便宜上、実施形態1にて説明した図面と同じ機能を有する部材構成については、同じ符号を付記し、その詳細な説明を省略する。以下、本実施形態について、図面を参照して詳細に説明する。本実施形態のデジタルカメラの機能構成は、図1に示す実施形態1のデジタルカメラ1と同様である。本実施形態では、瞼輪郭検出部16の各部の処理のみが実施形態1と異なる。第2微分部41は、目画像に微分フィルタを適用し、縦方向における輝度勾配を求める。実施形態1と異なり本実施形態では、第2微分部41は、縦方向における輝度勾配を求め、横方向水平方向における輝度勾配は求めない。具体的には、第2微分部41は、目画像に対してy方向に微分フィルタここではSobelフィルタを適用し、縦方向の輝度勾配の絶対値をエッジ強度として求める。第2微分部41は、y方向のSobelフィルタを適用し、y方向の微分値の絶対値を、目画像の各位置におけるエッジ強度とする。2値化部42は、第2微分部41から目画像の各位置に対応するエッジ強度微分値の絶対値を取得し、目画像のエッジ強度を2値化した第3エッジ画像を生成する。具体的には、2値化部42は、Sobelフィルタを適用して得た微分値の絶対値dyを、閾値tdによって2値化する。目画像の各位置について、dy<tdであれば0、td≦dyであれば1とする。第3エッジ画像の値は、0、1のいずれかであり、エッジ強度が大きい箇所は1となり、エッジ強度が小さい箇所は0となる。図8は、2値化された縦方向のエッジ強度を有する第3エッジ画像を示す図である。縦方向のエッジ強度を2値化することにより、縦方向に延びる瞳と白目との境界のエッジの一部を除去することができる。すなわち、横方向に延びる瞼と白目または瞳との境界を主に抽出することができる。第2投票部43は、第3エッジ画像のエッジに位置する各画素値が1の画素を投票実行画素として、ハフ変換によって瞼の輪郭を表す曲線Bスプライン曲線を検出するための投票を行う。なお、上瞼の輪郭を表す曲線を検出する場合、下瞼のエッジはノイズになるので、第3エッジ画像の目頭点Eaおよび目尻点Ebの上側図8に示す線Bの上側に位置する該画素を投票実行画素とする。瞼輪郭特定部44は、第2投票部43による投票結果に基づき、最も多くの投票数を得た制御点で表されるBスプライン曲線を、上瞼の輪郭を表す曲線として特定する。本実施形態によれば、瞼の輪郭を検出する際にノイズとなる瞳の輪郭の一部のエッジを除去することができる。よって、より正確に瞼の輪郭を表す曲線を特定し、それを用いて精度よく瞳領域を特定することができる。なお、2値化において、微分値の絶対値を2値化するのではなく、輝度勾配に応じて正負の値を取り得る微分値を閾値によって2値化してもよい。例えば、輝度の関係が、瞳<肌瞼<白目となっている場合、上瞼の輪郭において、上瞼と瞳との境界と、上瞼と白目との境界とは、微分値の正負の符号が逆になると考えられる。そのため、2値化によって上瞼と瞳との境界のエッジのみを残すことができる。瞳領域を精度よく特定するためには、瞳と瞼との境界を正確に検出できればよく、白目と瞼との境界は必ずしも特定しなくてもよい。よって、上瞼と瞳との境界のエッジのみにフィットするBスプライン曲線を求めることで、瞳領域を精度よく特定することができる。なお、この場合、目頭点Eaおよび目尻点Ebの上側と下側とについて、異なる閾値を用いて別々に2値化する。最後に、画像処理装置6の各ブロック、特に画像取得部11、顔検出部12、特徴検出部13、目画像抽出部14、瞳輪郭検出部15、瞼輪郭検出部16、瞳領域特定部17、画像補正部18、出力部19、第1微分部31、3値化部32、第1投票部33、瞳輪郭特定部34、第2微分部41、2値化部42、第2投票部43、および瞼輪郭特定部44は、ハードウェアロジックによって構成してもよいし、次のようにCPUcentralprocessingunitを用いてソフトウェアによって実現してもよい。すなわち、画像処理装置6は、各機能を実現する制御プログラムの命令を実行するCPU、上記プログラムを格納したROMreadonlymemory、上記プログラムを展開するRAMrandomaccessmemory、上記プログラムおよび各種データを格納するメモリ等の記憶装置記録媒体などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである画像処理装置6の制御プログラムのプログラムコード実行形式プログラム、中間コードプログラム、ソースプログラムをコンピュータで読み取り可能に記録した記録媒体を、上記画像処理装置6に供給し、そのコンピュータまたはCPUやMPUmicroprocessorunitが記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー登録商標ディスク/ハードディスク等の磁気ディスクやCD-ROMcompactdiscreadonlymemory/MOmagnetooptical/MDMiniDisc/DVDdigitalversatiledisk/CD-RCDRecordable等の光ディスクを含むディスク系、ICカードメモリカードを含む/光カード等のカード系、あるいはマスクROM/EPROMerasableprogrammablereadonlymemory/EEPROMelectricallyerasableandprogrammablereadonlymemory/フラッシュROM等の半導体メモリ系などを用いることができる。また、画像処理装置6を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LANlocalareanetwork、ISDNintegratedservicesdigitalnetwork、VANvalueaddednetwork、CATVcommunityantennatelevision通信網、仮想専用網virtualprivatenetwork、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEEinstituteofelectricalandelectronicengineers1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSLasynchronousdigitalsubscriberloop回線等の有線でも、IrDAinfrareddataassociationやリモコンのような赤外線、Bluetooth登録商標、802.11無線、HDRhighdatarate、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。