(57)【要約】【課題】  回転ぶれを判別する。【解決手段】  第２の解析手段３００は、ぶれ画像Ｄ０における複数の位置が異なる部位の画像を対象画像とし、各対象画像のうち、７０％以上の対象画像における直線的なぶれ方向が略同じである場合において、ぶれ画像Ｄ０におけるぶれが回転ぶれではないと判別する。一方、各対象画像のうち、７０％以上の対象画像における直線的なぶれの方向が、該直線的なぶれの方向を有する対象画像の位置の回転方向の変化に従ってこの回転方向またはこの回転方向の逆方向に変化する場合においては、画像Ｄ０におけるぶれが回転ぶれであると判別する。  【選択図】          図１
2006053854.tif 000002
【特許請求の範囲】
【請求項１】
ぶれ画像となるデジタル写真画像の異なる部位に位置する複数の部分画像を夫々用いて、該部分画像における直線的なぶれの方向を取得し、
取得された各前記部分画像における前記直線的なぶれの方向を比較することによって、前記デジタル写真画像におけるぶれが回転ぶれであるか否かの判別を行うことを特徴とする画像処理方法。
【請求項２】
各前記部分画像に対して、複数の異なる方向毎にエッジを検出し、
各前記方向における前記エッジの特徴量を取得し、
該各方向における前記特徴量に基づいて該部分画像における前記直線的なぶれの方向を取得することを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記判別により前記ぶれが回転ぶれであると判別された前記デジタル写真画像に対して前記回転ぶれの方向を取得することを特徴とする請求項１または２記載の画像処理方法。
【請求項４】
前記回転ぶれのぶれ量を求めることを特徴とする請求項３記載の画像処理方法。
【請求項５】
各前記部分画像における前記直線的なぶれの方向が略同じである前記デジタル写真画像におけるぶれが回転ぶれではないように判別することを特徴とする請求項１から４のいずれか１項記載の画像処理方法。
【請求項６】
各前記部分画像における前記直線的なぶれの方向が、該直線的なぶれの方向を有する前記部分画像の位置の回転方向の変化に従って前記回転方向または前記回転方向の逆方向に変化する前記デジタル写真画像におけるぶれが回転ぶれであるように判別することを特徴とする請求項１から５のいずれか１項記載の画像処理方法。
【請求項７】
前記部分画像が、主要被写体の領域の画像および／または点状部の画像であることを特徴とする請求項１から６のいずれか１項記載の画像処理方法。
【請求項８】
前記デジタル写真画像が、人物の写真画像であり、
前記主要被写体が、前記人物の顔であることを特徴とする請求項７記載の画像処理方法。
【請求項９】
前記デジタル写真画像が、人物の写真画像であり、
前記点状部が、前記人物の瞳であることを特徴とする請求項７または８記載の画像処理方法。
【請求項１０】
前記デジタル写真画像を複数の同じ大きさのブロックに分け、
各前記ブロックの画像からエッジを検出し、
検出された前記エッジの数が多い順に、前記ブロックの画像を前記部分画像として複数選出することを特徴とする請求項１から６のいずれか１項記載の画像処理方法。
【請求項１１】
ぶれ画像となるデジタル写真画像の異なる部位に位置する複数の部分画像を夫々用いて、該部分画像における直線的なぶれの方向を取得する部分画像ぶれ方向取得手段と、
取得された各前記部分画像における前記直線的なぶれの方向を比較することによって、前記デジタル写真画像におけるぶれが回転ぶれであるか否かの判別を行う判別手段とを有してなることを特徴とする画像処理装置。
【請求項１２】
前記部分画像ぶれ方向取得手段が、前記部分画像に対して、複数の異なる方向毎にエッジを検出し、
各前記方向における前記エッジの特徴量を取得し、
該各方向における前記特徴量に基づいて該部分画像における前記直線的なぶれの方向を取得するものであることを特徴とする請求項１１のいずれか１項記載の画像処理装置。
【請求項１３】
前記判別手段により前記ぶれが回転ぶれであると判別された前記デジタル写真画像に対して前記回転ぶれの方向を含む回転ぶれ情報を取得するぶれ情報取得手段を備えたことを特徴とする請求項１１または１２記載の画像処理装置。
【請求項１４】
前記回転ぶれ情報が、前記回転ぶれのぶれ量を含むことを特徴とする請求項１３記載の画像処理装置。
【請求項１５】
前記判別手段が、各前記部分画像における前記直線的なぶれの方向が略同じである前記デジタル写真画像におけるぶれが回転ぶれではないように判別するものであることを特徴とする請求項１１から１４のいずれか１項記載の画像処理装置。
【請求項１６】
前記判別手段が、各前記部分画像における前記直線的なぶれの方向が、該直線的なぶれの方向を有する前記部分画像の位置の回転方向の変化に従って前記回転方向または前記回転方向の逆方向に変化する前記デジタル写真画像におけるぶれが回転ぶれであるように判別するものであることを特徴とする請求項１１から１５のいずれか１項記載の画像処理装置。
【請求項１７】
前記部分画像が、主要被写体の領域の画像および／または点状部の画像であることを特徴とする請求項１１から１６のいずれか１項記載の画像処理装置。
【請求項１８】
前記デジタル写真画像が、人物の写真画像であり、
前記主要被写体が、前記人物の顔であることを特徴とする請求項１７記載の画像処理装置。
【請求項１９】
前記デジタル写真画像が、人物の写真画像であり、
前記点状部が、前記人物の瞳であることを特徴とする請求項１７または１８記載の画像処理装置。
【請求項２０】
前記デジタル写真画像を複数の同じ大きさのブロックに分け、
各前記ブロックの画像からエッジを検出し、
検出された前記エッジの数が多い順に、前記ブロックの画像を前記部分画像として複数選出する部分画像選出手段をさらに備えたことを特徴とする請求項１１から１６のいずれか１項記載の画像処理装置。
【請求項２１】
ぶれ画像となるデジタル写真画像の異なる部位に位置する複数の部分画像を夫々用いて、該部分画像における直線的なぶれの方向を取得する部分画像ぶれ方向取得処理と、
取得された各前記部分画像における前記直線的なぶれの方向を比較することによって、前記デジタル写真画像におけるぶれが回転ぶれであるか否かの判別を行う判別処理とをコンピュータに実行させることを特徴とするプログラム。
【請求項２２】
前記部分画像ぶれ方向取得処理が、前記部分画像に対して、複数の異なる方向毎にエッジを検出し、
各前記方向における前記エッジの特徴量を取得し、
該各方向における前記特徴量に基づいて該部分画像における前記直線的なぶれの方向を取得する処理であることを特徴とする請求項２１項記載のプログラム。
【請求項２３】
前記判別処理により前記ぶれが回転ぶれであると判別された前記デジタル写真画像に対して前記回転ぶれの方向を含む回転ぶれ情報を取得するぶれ情報取得処理をさらにコンピュータに実行させることを特徴とする請求項２１または２２記載のプログラム。
【請求項２４】
前記回転ぶれ情報が、前記回転ぶれのぶれ量を含むことを特徴とする請求項２３記載のプログラム。
【請求項２５】
前記判別処理が、各前記部分画像における前記直線的なぶれの方向が略同じである前記デジタル写真画像におけるぶれが回転ぶれではないように判別するものであることを特徴とする請求項２１から２４のいずれか１項記載のプログラム。
【請求項２６】
前記判別処理が、各前記部分画像における前記直線的なぶれの方向が、該直線的なぶれの方向を有する前記部分画像の位置の回転方向の変化に従って前記回転方向または前記回転方向の逆方向に変化する前記デジタル写真画像におけるぶれが回転ぶれであるように判別するものであることを特徴とする請求項２１から２５のいずれか１項記載のプログラム。
【請求項２７】
前記部分画像が、主要被写体の領域の画像および／または点状部の画像であることを特徴とする請求項２１から２６のいずれか１項記載のプログラム。
【請求項２８】
前記デジタル写真画像が、人物の写真画像であり、
前記主要被写体が、前記人物の顔であることを特徴とする請求項２８記載のプログラム。
【請求項２９】
前記デジタル写真画像が、人物の写真画像であり、
前記点状部が、前記人物の瞳であることを特徴とする請求項２７または２８記載のプログラム。
【請求項３０】
前記デジタル写真画像を複数の同じ大きさのブロックに分け、
各前記ブロックの画像からエッジを検出し、
検出された前記エッジの数が多い順に、前記ブロックの画像を前記部分画像として複数選出する部分画像選出処理をさらにコンピュータに行わせることを特徴とする請求項２１から２６のいずれか１項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル写真画像、より具体的にはぶれ画像となるデジタル写真画像におけるぶれの方向を取得する画像処理方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【０００２】
ネガフィルムやリバーサルフィルムなどの写真フィルムに記録された写真画像をスキャナーなどの読取装置で光電的に読み取って得たデジタル写真画像や、デジタルスチルカメラ（ＤＳＣ）で撮像して得たデジタル写真画像などに対して、種々の画像処理を施してプリントすることが行われている。これらの画像処理の一つとして、ボケた画像（ボケ画像）からボケを取り除くボケ画像修復処理が挙げられる。
【０００３】
被写体を撮像して得た写真画像がぼけてしまう理由としては、焦点距離が合わないことに起因するピンボケと、撮像者の手のぶれに起因するぶれボケ（以下略してぶれという）が挙げられる。ピンボケの場合には、点像が２次元的に広がり、すなわち写真画像上における広がりが無方向性を呈することに対して、ぶれの場合には、点像がある軌跡を描き画像上に１次元的に広がり、すなわち写真画像上における広がりがある方向性を呈する。
【０００４】
写真画像撮像時のぶれの方向やぶれ幅などの情報が分かれば、Ｗｉｅｎｅｒフィルタや逆フィルタなどの復元フィルタを写真画像に適用することにより修復ができる。例えば、撮像時にぶれの方向やぶれ幅などの情報を取得することができる装置（例えば加速度センサー）を撮像装置に設け、撮像と共にぶれの方向やぶれ幅などの情報を取得し、取得された情報に基づいて修復を図る方法が広く知られている（例えば、特許文献１参照）。
【０００５】
また、携帯電話の急激な普及に伴って、携帯電話機の機能が向上し、その中でも携帯電話付属のデジタルカメラ（以下略した携帯カメラという）の機能の向上が注目を浴びている。近年、携帯カメラの画素数が１００万の桁に上がり、携帯カメラが通常のデジタルカメラと同様な使い方がされている。友達同士で旅行に行く時の記念写真などは勿論、好きなタレント、スポーツ選手を携帯カメラで撮像する光景が日常的になっている。このような背景において、携帯カメラにより撮像して得た写真画像は、携帯電話機のモニタで鑑賞することに留まらず、例えば、通常のデジタルカメラにより取得した写真画像と同じようにプリントすることも多くなっている。
【０００６】
しかし、携帯カメラは、人間工学的に、本体（携帯電話機）が撮像専用に製造されていないため、撮像時のホールド性が悪いという問題がある。また、携帯カメラは、フラッシュがないため、通常のデジタルカメラよりシャッタースピードが遅い。このような理由から携帯カメラにより被写体を撮像するときに、通常のカメラより手ぶれが起きやすい。極端な手ぶれは、携帯カメラのモニタで確認することができるが、小さな手ぶれは、モニタで確認することができず、プリントして初めて画像のぶれに気付くことが多いため、携帯カメラにより撮像して得た写真画像に対してぶれの補正を施す必要性が高い。
【０００７】
一方、携帯電話機の小型化は、その性能、コストに並び、各携帯電話機メーカの競争の焦点の１つであり、携帯電話機付属のカメラに、ぶれの方向やぶれ幅などの情報を取得する装置を設けることが現実的ではないため、特許文献１に提案されたような方法は、携帯カメラに適用することができない。
【０００８】
そこで、前述したように、ぶれは画像中の点像の１次元的な広がりを引き起こすため、ぶれ画像には、点像の広がりに応じたエッジの広がりが生じる。すなわち、画像中におけるエッジの広がりの態様は画像中におけるぶれと直接関係するものである。この点に着目して、画像データを用いて、画像中におけるエッジの態様を解析することによって画像中のぶれに関する情報、例えばぶれ方向、ぶれ幅などを得る方法が考えられる。この方法を用いれば、撮像装置に特別な装置を必要とせずにぶれの情報を得ることができる。
【特許文献１】特開２００２−１１２０９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、撮像時に手が直線的に動いたことに起因する直線的なぶれ（以下直線ぶれという）の場合には、画像全体においてエッジは略同じ方向に一次元に広かるため、画像全体、または画像のどの部分の画像においてもこのぶれに起因するエッジの広がり態様が同じである一方、撮像時に手が回転したことに起因する回転方向のぶれ（以下回転ぶれという）の場合には、画像中の異なる部位の画像（以下部分画像という）におけるエッジの広がり態様は、部位によって異なる。例えば、図３０（ａ）に示す直線的な手ぶれの場合には、画像全体、および画像のいかなる部位の画像（図中では、部分画像Ａ、Ｂ、Ｃ、Ｄを例示している）においても、エッジが手ぶれ方向と同じ方向ｄに直線的に広がるが、図３０（ｂ）に示すような回転ぶれの場合には、エッジが、各部分画像Ａ、Ｂ、Ｃ、Ｄにおいて局所的にみると、夫々異なるｄ１方向、ｄ２方向、ｄ３方向、ｄ４方向の直線的な広がりを見せるようになっている。そのため、画像全体を用いてエッジの広がり態様を解析してぶれ方向を得ようとしても得ることができず、その一方、部分画像を用いて解析するのでは、その部分の画像のエッジが局部的に直線的に広がるので、直線的なぶれ方向しか得ることができず、画像全体の正確なぶれ方向を得ることができないという問題がある。
【００１０】
本発明は、上記事情に鑑みてなされたものであり、画像の回転ぶれに関する情報を正確に得ることを可能とする画像処理方法および装置並びにプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明の画像処理方法は、ぶれ画像となるデジタル写真画像の異なる部位に位置する複数の部分画像を夫々用いて、該部分画像における直線的なぶれの方向を取得し、
取得された各前記部分画像における前記直線的なぶれの方向を比較することによって、前記デジタル写真画像におけるぶれが回転ぶれであるか否かの判別を行うことを特徴とするものである。
【００１２】
本発明の画像処理方法は、各前記部分画像における前記直線的なぶれの方向が略同じである場合に、前記デジタル写真画像におけるぶれが回転ぶれではないように判別することができる。
【００１３】
ここで、本発明における「デジタル写真画像」は、デジタルカメラなどのデジタル撮像装置により得られた写真画像に限らず、プリントや、写真フィルムや、印刷物などの写真画像をスキャナなどの読取装置で光電的に読取って得た写真画像も含むものである。
【００１４】
本発明の画像処理方法は、前記部分画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該各方向における前記特徴量に基づいて該部分画像における前記直線的なぶれの方向を取得することが好ましい。
【００１５】
ここで、「エッジの特徴量」は、画像におけるエッジの広がりの態様と関係する特徴量を意味し、例えば、エッジの鮮鋭度、前記エッジの鮮鋭度の分布を含むものとすることができる。
【００１６】
「エッジの鮮鋭度」は、エッジの鮮鋭さを現すことができるものであれば如何なるパラメータを用いてもよく、例えば、図２４のエッジプロファイルにより示されるエッジの場合、エッジ幅が大きいほどエッジの鮮鋭度が低いように、エッジ幅をエッジの鮮鋭度として用いることは勿論、エッジの明度変化の鋭さ（図２４におけるプロファイル曲線の勾配）が高いほどエッジの鮮鋭度が高いように、エッジのプロファイル曲線の勾配をエッジの鮮鋭度として用いるようにしてもよい。
【００１７】
また、前記「複数の異なる方向」とは、ぶれの方向を特定するための方向を意味し、ぶれの方向に近い方向を含むことが必要であるため、その数が多ければ多いほど特定の精度が高いが、処理速度との兼ね合いに応じた適宜な個数、例えば、図２３に示すような８方向を用いることが好ましい。
【００１８】
本発明の画像処理方法は、前記判別により前記ぶれが回転ぶれであると判別された前記デジタル写真画像に対して前記回転ぶれの方向を取得することが好ましく、さらに、該回転ぶれのぶれ量を求めることがより好ましい。
【００１９】
また、本発明の画像処理方法は、各前記部分画像における前記直線的なぶれの方向が、該直線的なぶれの方向を有する前記部分画像の位置の回転方向の変化に従って前記回転方向または前記回転方向の逆方向に変化する前記デジタル写真画像におけるぶれが回転ぶれであるように判別することができる。
【００２０】
本発明の画像処理方法に用いる前記部分画像として、主要被写体の領域の画像および／または点状部の画像とすることが好ましい。
【００２１】
本発明の画像処理方法の処理対象となる前記デジタル写真画像が、人物の写真画像である場合、前記主要被写体としては人物の顔を用いることが好ましく、前記点状部としては人物の瞳を用いることが好ましい。
【００２２】
さらに、本発明の画像処理方法は、前記部分画像の選出において、前記デジタル写真画像を複数の同じ大きさのブロックに分け、各前記ブロックの画像からエッジを検出し、検出された前記エッジの数が多い順に、前記ブロックの画像を前記部分画像として複数選出するようにしてもよい。
【００２３】
本発明の画像処理装置は、ぶれ画像となるデジタル写真画像の異なる部位に位置する複数の部分画像を夫々用いて、該部分画像における直線的なぶれの方向を取得する部分画像ぶれ方向取得手段と、
取得された各前記部分画像における前記直線的なぶれの方向を比較することによって、前記デジタル写真画像におけるぶれが回転ぶれであるか否かの判別を行う判別手段とを有してなることを特徴とするものである。
【００２４】
前記部分画像ぶれ方向取得手段は、前記部分画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該各方向における前記特徴量に基づいて該部分画像における前記直線的なぶれの方向を取得するものであることが好ましい。
【００２５】
本発明の画像処理装置は、前記判別手段により前記ぶれが回転ぶれであると判別された前記デジタル写真画像に対して前記回転ぶれの方向を含む回転ぶれ情報を取得するぶれ情報取得手段をさらに備えたことが好ましい。
【００２６】
また、前記回転ぶれ情報は、前記回転ぶれのぶれ量を含むことがより好ましい。
【００２７】
前記判別手段は、各前記部分画像における前記直線的なぶれの方向が略同じである前記デジタル写真画像におけるぶれが回転ぶれではないように判別するものとすることができる。
【００２８】
また、前記判別手段は、各前記部分画像における前記直線的なぶれの方向が、該直線的なぶれの方向を有する前記部分画像の位置の回転方向の変化に従って前記回転方向または前記回転方向の逆方向に変化する前記デジタル写真画像におけるぶれが回転ぶれであるように判別するものとすることができる。
【００２９】
前記部分画像として、主要被写体の領域の画像および／または点状部の画像を用いることが好ましい。
【００３０】
本発明の画像処理装置の処理対象となる前記デジタル写真画像が、人物の写真画像である場合、前記主要被写体としては人物の顔を用いることが好ましく、前記点状部としては人物の瞳を用いることが好ましい。
【００３１】
本発明の画像処理装置は、前記デジタル写真画像を複数の同じ大きさのブロックに分け、各前記ブロックの画像からエッジを検出し、検出された前記エッジの数が多い順に、前記ブロックの画像を前記部分画像として複数選出する部分画像選出手段をさらに備え、該部分画像選出手段により選出された部分画像を用いて前記デジタル写真画像におけるぶれが回転ぶれである否かの判別を行うものであってもよい。
【００３２】
本発明の画像処理方法を、コンピュータに実行させるためのプログラムとして提供してもよい。
【発明の効果】
【００３３】
本発明の画像処理方法および装置によれば、ぶれ画像となるデジタル写真画像の異なる部位に位置する複数の部分画像を夫々用いて、該部分画像における直線的なぶれの方向を取得する。そして、取得された各前記部分画像における前記直線的なぶれの方向を比較することによって、前記デジタル写真画像におけるぶれが回転ぶれであるか否かの判別を行う。こうすることによって、回転ぶれの場合において画像全体からぶれの方向を判別することができない問題を解消することができると共に、１つのみの部分画像を用いてぶれの方向を判別する際に局部的な直線的なぶれ方向を画像のぶれ方向として誤判別することを防ぐことができる。
【００３４】
また、画像中のぶれが回転ぶれであると判別した画像に対して、回転ぶれの方向およびぶれ量などのぶれ情報を取得することができ、後に正確なぶれ補正を行うことができる。
【００３５】
また、例えばズーム撮像などの被写界深度の浅い画像の場合には、撮像者が撮像時において人物の顔などの主要被写体に焦点を当てるので、主要被写体の領域以外の部分は元々焦点が合わず（ピンボケ）、これらの部分の画像を用いて回転ぶれの判別を行っても正確な判別ができないという問題がある。そこで、本発明においては、部分画像として主要被写体の領域の画像を用いるようにすれば、被写界深度の浅い画像の場合においても正確に回転ぶれの判別およびぶれ情報の取得をすることができる。
【００３６】
また、画像中において、階段部分や、カーテンや人物の衣装などの部分がグラデーションとなっている場合があり、このようなグラデーションの部分はボケていなくてもエッジが広がる態様を呈するので、グラデーションの部分の画像をぶれの判別に用いてしまうと誤判別をしてしまうという問題がある。そこで、本発明においては、画像中の例えば人物の瞳などの点状部を部分画像として用いるようにすれば、グラデーション部分がある画像に対しても正確な判別を行うことができる。
【００３７】
さらに、例えば図２１に示す画像の例のように、点線により区切られたブロックのうち、エッジの無い例えば最も左上のブロックを見ても、画像がぶれているが否かが分からず、被写体（図２１の例では花）の輪郭部分のブロックは、画像がぶれているか否かを明顕に示すことができる。本発明において、画像を複数の同じ大きさのブロック画像に分けて夫々のブロックにおけるエッジの数を取得し、エッジの数が多い順に、前記ブロックの画像を前記部分画像として複数選出するようにすれば、ぶれの正確な判別およびぶれ情報の正確な取得ができる。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照して、本発明の実施形態について説明する。
【００３９】
図１は、本発明の画像処理方法および装置並びにそのためのプログラムの実施形態となる画像処理システムの構成を示すブロック図である。本実施形態の画像処理システムは、入力されたデジタル写真画像（以下略して画像という）からボケ情報を取得する処理を行うものであり、この処理は、補助記憶装置に読み込まれた処理プログラムをコンピュータ（たとえばパーソナルコンピュータ等）上で実行することにより実現される。また、この処理プログラムは、ＣＤ−ＲＯＭ等の情報記憶媒体に記憶され、もしくはインターネット等のネットワークを介して配布され、コンピュータにインストールされることになる。
【００４０】
また、画像データは画像を表すものであるため、以下、特に画像と画像データの区別をせずに説明を行う。
【００４１】
図１に示すように、本実施形態の画像処理システムは、画像Ｄ０から瞳を検出して、複数の瞳部分の画像（以下瞳画像という）Ｄ５を得る瞳検出手段１００と、瞳検出手段１００により瞳が検出されなかった場合に画像Ｄ０から複数の部分画像Ｄｂを選出する部分画像選出手段１５０と、瞳検出手段１００により得られた複数の瞳画像Ｄ５、または部分画像選出手段１５０により得られた複数の部分画像Ｄｂを用いて第１の解析を行い、画像Ｄ０がボケ画像であるか否かの判別、ボケ画像の場合にはピンボケ画像かぶれ画像かの判別を行うと共に、ピンボケ画像と判別された画像に対してはさらにピンボケ情報（その詳細については後述する）を取得する第１の解析手段２００と、第１の解析手段２００によりぶれ画像であると判別された画像Ｄ０に対してぶれ方向の判別を行うと共に、ぶれ情報（その詳細については後述する）を取得する第２の解析手段３００と、第１の解析手段および第２の解析手段により得られた情報（ピンボケ情報またはぶれ情報）を出力する出力手段３５０とを備えてなる。以下、画像処理システムの各手段について説明する。
【００４２】
図２は、図１に示す画像処理システムにおける瞳検出手段１００の構成を示すブロック図である。図示のように、瞳検出手段１００は、画像Ｄ０に顔部分が含まれているか否かを識別すると共に、顔部分が含まれていない場合には写真画像Ｄ０をそのまま後述する出力部５０に出力する一方、顔部分が含まれている場合にはさらに左目と右目を検出し、両目の位置および両目間の距離ｄを含む情報Ｓを後述するトリミング部１０および照合部４０に出力する検出部１と、検出部１からの情報Ｓに基づいて、写真画像Ｄ０をトリミングして左目と右目とを夫々含むトリミング画像Ｄ１ａ、Ｄ１ｂ（以下、区別して説明する必要がない場合には、両方を指す意味でＤ１という）を得るトリミング部１０と、トリミング画像Ｄ１に対してグレー変換を行い、トリミング画像Ｄ１のグレースケール画像Ｄ２（Ｄ２ａ，Ｄ２ｂ）を得るグレー変換部１２と、グレースケール画像Ｄ２に対して前処理を行って前処理済み画像Ｄ３（Ｄ３ａ，Ｄ３ｂ）を得る前処理部１４と、前処理済み画像Ｄ３を２値化するための閾値Ｔを算出する２値化閾値算出部１８を有し、該２値化閾値算出部１８により得られた閾値Ｔを用いて前処理済み画像Ｄ３を２値化処理して２値画像Ｄ４（Ｄ４ａ，Ｄ４ｂ）を得る２値化部２０と、２値画像Ｄ４の各画素の座標を円環のハフ空間に投票し、投票された各投票位置の投票値を得ると共に、同じ円心座標を有する投票位置の統合投票値Ｗ（Ｗａ，Ｗｂ）を算出する投票部３０と、投票部３０により得られた各統合投票値のうちの最も大きい統合投票値が対応する円心座標を中心位置候補Ｇ（Ｇａ，Ｇｂ）とすると共に、後述する照合部４０から次の中心位置候補を探すように指示されたとき、次の中心位置候補を求める中心位置候補取得部３５と、中心位置候補取得部３５により取得した中心位置候補は照合基準に満たしているか否かを判別し、照合基準に満たしていればこの中心位置候補を瞳の中心位置として後述する微調整部４５に出力する一方、照合基準に満たしていなければ中心位置候補取得部３５に中心位置候補を取得し直すことをさせると共に、中心位置候補取得部３５により取得された中心位置候補が照合基準を満たすようになるまで中心位置候補取得部３５に中心位置候補の取得し直しを繰り返させる照合部４０と、照合部４０から出力されてきた瞳の中心位置Ｇ（Ｇａ，Ｇｂ）に対して微調整を行い、最終中心位置Ｇ’（Ｇ’ａ，Ｇ’ｂ）を出力部５０に出力する微調整部４５と、最終中心位置Ｇ’に基づいて、中心位置Ｇ’ａを囲む所定の範囲と、Ｇ’ｂを囲む所定の範囲を夫々切り出して瞳画像Ｄ５（Ｄ５ａ，Ｄ５ｂ）を得、この瞳画像Ｄ５を第１の解析手段２００に出力する出力部５０とを有してなる。なお、画像Ｄ０が、顔部分が含まれない画像である場合には、出力部５０は、画像Ｄ０をそのまま部分画像選出手段１５０に出力する。
【００４３】
ここで、画像Ｄ０において複数の顔が識別された場合には、出力部５０までの各手段は、顔毎に夫々の処理を行うものであるが、以下、説明上の便宜のため、１つの顔に対して行われる処理についてのみ説明する。
【００４４】
図３は、図２に示す瞳検出手段１００における検出部１の詳細構成を示すブロック図である。図示のように、検出部１は、写真画像Ｄ０から特徴量Ｃ０を算出する特徴量算出部２と、後述する第１および第２の参照データＥ１，Ｅ２が格納されている記憶部４と、特徴量算出部２が算出した特徴量Ｃ０と記憶部４内の第１の参照データＥ１とに基づいて、写真画像Ｄ０に人物の顔が含まれているか否かを識別する第１の識別部５と、第１の識別部５により写真画像Ｄ０に顔が含まれていると識別された場合に、特徴量算出部２が算出した顔の画像内の特徴量Ｃ０と記憶部４内の第２の参照データＥ２とに基づいて、その顔に含まれる目の位置を識別する第２の識別部６と、並びに第１の出力部７とを備えてなる。
【００４５】
なお、検出部１により識別される目の位置とは、顔における目尻から目頭の間の中心位置（図４中×で示す）であり、図４（ａ）に示すように真正面を向いた目の場合においては瞳の中心位置と同様であるが、図４（ｂ）に示すように右を向いた目の場合は瞳の中心位置ではなく、瞳の中心から外れた位置または白目部分に位置する。
【００４６】
特徴量算出部２は、顔の識別に用いる特徴量Ｃ０を写真画像Ｄ０から算出する。また、写真画像Ｄ０に顔が含まれると識別された場合には、後述するように抽出された顔の画像から同様の特徴量Ｃ０を算出する。具体的には、勾配ベクトル（すなわち写真画像Ｄ０上および顔画像上の各画素における濃度が変化する方向および変化の大きさ）を特徴量Ｃ０として算出する。以下、勾配ベクトルの算出について説明する。まず、特徴量算出部２は、写真画像Ｄ０に対して図５（ａ）に示す水平方向のエッジ検出フィルタによるフィルタリング処理を施して写真画像Ｄ０における水平方向のエッジを検出する。また、特徴量算出部２は、写真画像Ｄ０に対して図５（ｂ）に示す垂直方向のエッジ検出フィルタによるフィルタリング処理を施して写真画像Ｄ０における垂直方向のエッジを検出する。そして、写真画像Ｄ０上の各画素における水平方向のエッジの大きさＨおよび垂直方向のエッジの大きさＶとから、図６に示すように、各画素における勾配ベクトルＫを算出する。また、顔画像についても同様に勾配ベクトルＫを算出する。なお、特徴量算出部２は、後述するように写真画像Ｄ０および顔画像の変形の各段階において特徴量Ｃ０を算出する。
【００４７】
なお、このようにして算出された勾配ベクトルＫは、図７（ａ）に示すような人物の顔の場合、図７（ｂ）に示すように、目および口のように暗い部分においては目および口の中央を向き、鼻のように明るい部分においては鼻の位置から外側を向くものとなる。また、口よりも目の方が濃度の変化が大きいため、勾配ベクトルＫは口よりも目の方が大きくなる。
【００４８】
そして、この勾配ベクトルＫの方向および大きさを特徴量Ｃ０とする。なお、勾配ベクトルＫの方向は、勾配ベクトルＫの所定方向（例えば図６におけるｘ方向）を基準とした０から３５９度の値となる。
【００４９】
ここで、勾配ベクトルＫの大きさは正規化される。この正規化は、写真画像Ｄ０の全画素における勾配ベクトルＫの大きさのヒストグラムを求め、その大きさの分布が写真画像Ｄ０の各画素が取り得る値（８ビットであれば０〜２５５）に均一に分布されるようにヒストグラムを平滑化して勾配ベクトルＫの大きさを修正することにより行う。例えば、勾配ベクトルＫの大きさが小さく、図８（ａ）に示すように勾配ベクトルＫの大きさが小さい側に偏ってヒストグラムが分布している場合には、大きさが０〜２５５の全領域に亘るものとなるように勾配ベクトルＫの大きさを正規化して図８（ｂ）に示すようにヒストグラムが分布するようにする。なお、演算量を低減するために、図８（ｃ）に示すように、勾配ベクトルＫのヒストグラムにおける分布範囲を例えば５分割し、５分割された頻度分布が図８（ｄ）に示すように０〜２５５の値を５分割した範囲に亘るものとなるように正規化することが好ましい。
【００５０】
記憶部４内に格納されている第１および第２の参照データＥ１，Ｅ２は、後述するサンプル画像から選択された複数画素の組み合わせからなる複数種類の画素群のそれぞれについて、各画素群を構成する各画素における特徴量Ｃ０の組み合わせに対する識別条件を規定したものである。
【００５１】
第１および第２の参照データＥ１，Ｅ２中の、各画素群を構成する各画素における特徴量Ｃ０の組み合わせおよび識別条件は、顔であることが分かっている複数のサンプル画像と顔でないことが分かっている複数のサンプル画像とからなるサンプル画像群の学習により、あらかじめ決められたものである。
【００５２】
なお、本実施形態においては、第１の参照データＥ１を生成する際には、顔であることが分かっているサンプル画像として、３０×３０画素サイズを有し、図９に示すように、１つの顔の画像について両目の中心間の距離が１０画素、９画素および１１画素であり、両目の中心間距離において垂直に立った顔を平面上±１５度の範囲において３度単位で段階的に回転させた（すなわち、回転角度が−１５度，−１２度，−９度，−６度，−３度，０度，３度，６度，９度，１２度，１５度）サンプル画像を用いるものとする。したがって、１つの顔の画像につきサンプル画像は３×１１＝３３通り用意される。なお、図９においては−１５度、０度および＋１５度に回転させたサンプル画像のみを示す。また、回転の中心はサンプル画像の対角線の交点である。ここで、両目の中心間の距離が１０画素のサンプル画像であれば、目の中心位置はすべて同一となっている。この目の中心位置をサンプル画像の左上隅を原点とする座標上において（ｘ１，ｙ１）、（ｘ２，ｙ２）とする。また、図面上上下方向における目の位置（すなわちｙ１，ｙ２）はすべてのサンプル画像において同一である。
【００５３】
また、第２の参照データＥ２を生成する際には、顔であることが分かっているサンプル画像として、３０×３０画素サイズを有し、図１０に示すように、１つの顔の画像について両目の中心間の距離が１０画素、９．７画素および１０．３画素であり、各両目の中心間距離において垂直に立った顔を平面上±３度の範囲において１度単位で段階的に回転させた（すなわち、回転角度が−３度，−２度，−１度，０度，１度，２度，３度）サンプル画像を用いるものとする。したがって、１つの顔の画像につきサンプル画像は３×７＝２１通り用意される。なお、図１０においては−３度、０度および＋３度に回転させたサンプル画像のみを示す。また、回転の中心はサンプル画像の対角線の交点である。ここで、図面上上下方向における目の位置はすべてのサンプル画像において同一である。なお、両目の中心間の距離を９．７画素および１０．３画素とするためには、両目の中心間の距離が１０画素のサンプル画像を９．７倍あるいは１０．３倍に拡大縮小して、拡大縮小後のサンプル画像のサイズを３０×３０画素とすればよい。
【００５４】
そして、第２の参照データＥ２の学習に用いられるサンプル画像における目の中心位置を、本実施形態において識別する目の位置とする。
【００５５】
また、顔でないことが分かっているサンプル画像としては、３０×３０画素サイズを有する任意の画像を用いるものとする。
【００５６】
ここで、顔であることが分かっているサンプル画像として、両目の中心間距離が１０画素であり、平面上の回転角度が０度（すなわち顔が垂直な状態）のもののみを用いて学習を行った場合、第１および第２の参照データＥ１，Ｅ２を参照して顔または目の位置であると識別されるのは、両目の中心間距離が１０画素で全く回転していない顔のみである。写真画像Ｄ０に含まれる可能性がある顔のサイズは一定ではないため、顔が含まれるか否かあるいは目の位置を識別する際には、後述するように写真画像Ｄ０を拡大縮小して、サンプル画像のサイズに適合するサイズの顔および目の位置を識別できるようにしている。しかしながら、両目の中心間距離を正確に１０画素とするためには、写真画像Ｄ０のサイズを拡大率として例えば１．１単位で段階的に拡大縮小しつつ識別を行う必要があるため、演算量が膨大なものとなる。
【００５７】
また、写真画像Ｄ０に含まれる可能性がある顔は、図１１（ａ）に示すように平面上の回転角度が０度のみではなく、図１１（ｂ）、（ｃ）に示すように回転している場合もある。しかしながら、両目の中心間距離が１０画素であり、顔の回転角度が０度のサンプル画像のみを使用して学習を行った場合、顔であるにも拘わらず、図１１（ｂ）、（ｃ）に示すように回転した顔については識別を行うことができなくなってしまう。
【００５８】
このため、本実施形態においては、顔であることが分かっているサンプル画像として、図９に示すように両目の中心間距離が９，１０，１１画素であり、各距離において平面上±１５度の範囲にて３度単位で段階的に顔を回転させたサンプル画像を用いて、第１の参照データＥ１の学習に許容度を持たせるようにしたものである。これにより、後述する第１の識別部５において識別を行う際には、写真画像Ｄ０を拡大率として１１／９単位で段階的に拡大縮小すればよいため、写真画像Ｄ０のサイズを例えば拡大率として例えば１．１単位で段階的に拡大縮小する場合と比較して、演算時間を低減できる。また、図１１（ｂ）、（ｃ）に示すように回転している顔も識別することができる。
【００５９】
一方、第２の参照データＥ２の学習には、図１０に示すように両目の中心間距離が９．７，１０，１０．３画素であり、各距離において平面上±３度の範囲にて１度単位で段階的に顔を回転させたサンプル画像を用いているため、第１の参照データＥ１と比較して学習の許容度は小さい。また、後述する第２の識別部６において識別を行う際には、写真画像Ｄ０を拡大率として１０．３／９．７単位で拡大縮小する必要があるため、第１の識別部５において行われる識別よりも演算に長時間を要する。しかしながら、第２の識別部６において識別を行うのは第１の識別部５が識別した顔内の画像のみであるため、写真画像Ｄ０の全体を用いる場合と比較して目の位置の識別を行うための演算量を低減することができる。
【００６０】
以下、図１２のフローチャートを参照しながらサンプル画像群の学習手法の一例を説明する。なお、ここでは第１の参照データＥ１の学習について説明する。
【００６１】
学習の対象となるサンプル画像群は、顔であることが分かっている複数のサンプル画像と、顔でないことが分かっている複数のサンプル画像とからなる。なお、顔であることが分かっているサンプル画像は、上述したように１つのサンプル画像につき両目の中心位置が９，１０，１１画素であり、各距離において平面上±１５度の範囲にて３度単位で段階的に顔を回転させたものを用いる。各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく１に設定される（Ｓ１）。
【００６２】
次に、サンプル画像における複数種類の画素群のそれぞれについて識別器が作成される（Ｓ２）。ここで、それぞれの識別器とは、１つの画素群を構成する各画素における特徴量Ｃ０の組み合わせを用いて、顔の画像と顔でない画像とを識別する基準を提供するものである。本実施形態においては、１つの画素群を構成する各画素における特徴量Ｃ０の組み合わせについてのヒストグラムを識別器として使用する。
【００６３】
図１３を参照しながらある識別器の作成について説明する。図１３の左側のサンプル画像に示すように、この識別器を作成するための画素群を構成する各画素は、顔であることが分かっている複数のサンプル画像上における、右目の中心にある画素Ｐ１、右側の頬の部分にある画素Ｐ２、額の部分にある画素Ｐ３および左側の頬の部分にある画素Ｐ４である。そして顔であることが分かっているすべてのサンプル画像について全画素Ｐ１〜Ｐ４における特徴量Ｃ０の組み合わせが求められ、そのヒストグラムが作成される。ここで、特徴量Ｃ０は勾配ベクトルＫの方向および大きさを表すが、勾配ベクトルＫの方向は０〜３５９の３６０通り、勾配ベクトルＫの大きさは０〜２５５の２５６通りあるため、これをそのまま用いたのでは、組み合わせの数は１画素につき３６０×２５６通りの４画素分、すなわち（３６０×２５６）4通りとなってしまい、学習および検出のために多大なサンプルの数、時間およびメモリを要することとなる。このため、本実施形態においては、勾配ベクトルの方向を０〜３５９を０〜４４と３１５〜３５９（右方向、値：０），４５〜１３４（上方向値：１），１３５〜２２４（左方向、値：２），２２５〜３１４（下方向、値３）に４値化し、勾配ベクトルの大きさを３値化（値：０〜２）する。そして、以下の式を用いて組み合わせの値を算出する。
【００６４】
組み合わせの値＝０（勾配ベクトルの大きさ＝０の場合）
組み合わせの値＝（（勾配ベクトルの方向＋１）×勾配ベクトルの大きさ（勾配ベクトルの大きさ＞０の場合）
これにより、組み合わせ数が９4通りとなるため、特徴量Ｃ０のデータ数を低減できる。
【００６５】
同様に、顔でないことが分かっている複数のサンプル画像についても、ヒストグラムが作成される。なお、顔でないことが分かっているサンプル画像については、顔であることが分かっているサンプル画像上における上記画素Ｐ１〜Ｐ４の位置に対応する画素が用いられる。これらの２つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図１３の一番右側に示す、識別器として用いられるヒストグラムである。この識別器のヒストグラムが示す各縦軸の値を、以下、識別ポイントと称する。この識別器によれば、正の識別ポイントに対応する特徴量Ｃ０の分布を示す画像は顔である可能性が高く、識別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の識別ポイントに対応する特徴量Ｃ０の分布を示す画像は顔でない可能性が高く、やはり識別ポイントの絶対値が大きいほどその可能性は高まる。ステップＳ２では、識別に使用され得る複数種類の画素群を構成する各画素における特徴量Ｃ０の組み合わせについて、上記のヒストグラム形式の複数の識別器が作成される。
【００６６】
続いて、ステップＳ２で作成した複数の識別器のうち、画像が顔であるか否かを識別するのに最も有効な識別器が選択される。最も有効な識別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各識別器の重み付き正答率が比較され、最も高い重み付き正答率を示す識別器が選択される（Ｓ３）。すなわち、最初のステップＳ３では、各サンプル画像の重みは等しく１であるので、単純にその識別器によって画像が顔であるか否かが正しく識別されるサンプル画像の数が最も多いものが、最も有効な識別器として選択される。一方、後述するステップＳ５において各サンプル画像の重みが更新された後の２回目のステップＳ３では、重みが１のサンプル画像、重みが１よりも大きいサンプル画像、および重みが１よりも小さいサンプル画像が混在しており、重みが１よりも大きいサンプル画像は、正答率の評価において、重みが１のサンプル画像よりも重みが大きい分多くカウントされる。これにより、２回目以降のステップＳ３では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく識別されることに、より重点が置かれる。
【００６７】
次に、それまでに選択した識別器の組み合わせの正答率、すなわち、それまでに選択した識別器を組み合わせて使用して各サンプル画像が顔の画像であるか否かを識別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる（Ｓ４）。ここで、組み合わせの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した識別器を用いれば画像が顔であるか否かを十分に高い確率で識別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した識別器と組み合わせて用いるための追加の識別器を選択するために、ステップＳ６へと進む。
【００６８】
ステップＳ６では、直近のステップＳ３で選択された識別器が再び選択されないようにするため、その識別器が除外される。
【００６９】
次に、直近のステップＳ３で選択された識別器では顔であるか否かを正しく識別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく識別できたサンプル画像の重みが小さくされる（Ｓ５）。このように重みを大小させる理由は、次の識別器の選択において、既に選択された識別器では正しく識別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく識別できる識別器が選択されるようにして、識別器の組み合わせの効果を高めるためである。
【００７０】
続いて、ステップＳ３へと戻り、上記したように重み付き正答率を基準にして次に有効な識別器が選択される。
【００７１】
以上のステップＳ３からＳ６を繰り返して、顔が含まれるか否かを識別するのに適した識別器として、特定の画素群を構成する各画素における特徴量Ｃ０の組み合わせに対応する識別器が選択されたところで、ステップＳ４で確認される正答率が閾値を超えたとすると、顔が含まれるか否かの識別に用いる識別器の種類と識別条件とが確定され（Ｓ７）、これにより第１の参照データＥ１の学習を終了する。
【００７２】
そして、上記と同様に識別器の種類と識別条件とを求めることにより第２の参照データＥ２の学習がなされる。
【００７３】
なお、上記の学習手法を採用する場合において、識別器は、特定の画素群を構成する各画素における特徴量Ｃ０の組み合わせを用いて顔の画像と顔でない画像とを識別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば２値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図１３の中央に示した２つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【００７４】
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【００７５】
第１の識別部５は、複数種類の画素群を構成する各画素における特徴量Ｃ０の組み合わせのすべてについて第１の参照データＥ１が学習した識別条件を参照して、各々の画素群を構成する各画素における特徴量Ｃ０の組み合わせについての識別ポイントを求め、すべての識別ポイントを総合して写真画像Ｄ０に顔が含まれるか否かを識別する。この際、特徴量Ｃ０である勾配ベクトルＫの方向は４値化され大きさは３値化される。本実施形態では、すべての識別ポイントを加算して、その加算値の正負によって識別を行うものとする。例えば、識別ポイントの総和が正の値である場合には写真画像Ｄ０には顔が含まれると判断し、負の値である場合には顔は含まれないと判断する。なお、第１の識別部５が行う写真画像Ｄ０に顔が含まれるか否かの識別を第１の識別と称する。
【００７６】
ここで、写真画像Ｄ０のサイズは３０×３０画素のサンプル画像とは異なり、各種サイズを有するものとなっている。また、顔が含まれる場合、平面上における顔の回転角度が０度であるとは限らない。このため、第１の識別部５は、図１４に示すように、写真画像Ｄ０を縦または横のサイズが３０画素となるまで段階的に拡大縮小するとともに平面上で段階的に３６０度回転させつつ（図１４においては縮小する状態を示す）、各段階において拡大縮小された写真画像Ｄ０上に３０×３０画素サイズのマスクＭを設定し、マスクＭを拡大縮小された写真画像Ｄ０上において１画素ずつ移動させながら、マスク内の画像が顔の画像であるか否かの識別を行うことにより、写真画像Ｄ０に顔が含まれるか否かを識別する。
【００７７】
なお、第１参照データＥ１の生成時に学習したサンプル画像として両目の中心位置の画素数が９，１０，１１画素のものを使用しているため、写真画像Ｄ０の拡大縮小時の拡大率は１１／９とすればよい。また、第１および第２の参照データＥ１，Ｅ２の生成時に学習したサンプル画像として、顔が平面上で±１５度の範囲において回転させたものを使用しているため、写真画像Ｄ０は３０度単位で３６０度回転させればよい。
【００７８】
なお、特徴量算出部２は、写真画像Ｄ０の拡大縮小および回転という変形の各段階において特徴量Ｃ０を算出する。
【００７９】
そして、写真画像Ｄ０に顔が含まれるか否かの識別を拡大縮小および回転の全段階の写真画像Ｄ０について行い、一度でも顔が含まれると識別された場合には、写真画像Ｄ０には顔が含まれると識別し、顔が含まれると識別された段階におけるサイズおよび回転角度の写真画像Ｄ０から、識別されたマスクＭの位置に対応する３０×３０画素の領域を顔の画像として抽出する。
【００８０】
第２の識別部６は、第１の識別部５が抽出した顔の画像上において、複数種類の画素群を構成する各画素における特徴量Ｃ０の組み合わせのすべてについて第２の参照データＥ２が学習した識別条件を参照して、各々の画素群を構成する各画素における特徴量Ｃ０の組み合わせについての識別ポイントを求め、すべての識別ポイントを総合して顔に含まれる目の位置を識別する。この際、特徴量Ｃ０である勾配ベクトルＫの方向は４値化され大きさは３値化される。
【００８１】
ここで、第２の識別部６は、第１の識別部５が抽出した顔画像のサイズを段階的に拡大縮小するとともに平面上で段階的に３６０度回転させつつ、各段階において拡大縮小された顔画像上に３０×３０画素サイズのマスクＭを設定し、マスクＭを拡大縮小された顔上において１画素ずつ移動させながら、マスク内の画像における目の位置の識別を行う。
【００８２】
なお、第２参照データＥ２の生成時に学習したサンプル画像として両目の中心位置の画素数が９．０７，１０，１０．３画素のものを使用しているため、顔画像の拡大縮小時の拡大率は１０．３／９．７とすればよい。また、第２の参照データＥ２の生成時に学習したサンプル画像として、顔が平面上で±３度の範囲において回転させたものを使用しているため、顔画像は６度単位で３６０度回転させればよい。
【００８３】
なお、特徴量算出部２は、顔画像の拡大縮小および回転という変形の各段階において特徴量Ｃ０を算出する。
【００８４】
そして、本実施形態では、抽出された顔画像の変形の全段階においてすべての識別ポイントを加算し、加算値が最も大きい変形の段階における３０×３０画素のマスクＭ内の顔画像において、左上隅を原点とする座標を設定し、サンプル画像における目の位置の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）に対応する位置を求め、変形前の写真画像Ｄ０におけるこの位置に対応する位置を目の位置と識別する。
【００８５】
第１の出力部７は、第１の識別部５が写真画像Ｄ０に顔が含まれないと識別した場合には、写真画像Ｄ０をそのまま出力部５０に出力する一方、第１の識別部５が写真画像Ｄ０に顔が含まれると認識した場合には、第２の識別部６が識別した両目の位置から両目間の距離ｄを求め、両目の位置および両目間の距離ｄを情報Ｓとしてトリミング部１０および照合部４０に出力する。
【００８６】
図１５は瞳検出手段１００における検出部１の動作を示すフローチャートである。写真画像Ｄ０に対して、まず、特徴量算出部２が写真画像Ｄ０の拡大縮小および回転の各段階において、写真画像Ｄ０の勾配ベクトルＫの方向および大きさを特徴量Ｃ０として算出する（Ｓ１２）。そして、第１の識別部５が記憶部４から第１の参照データＥ１を読み出し（Ｓ１３）、写真画像Ｄ０に顔が含まれるか否かの第１の識別を行う（Ｓ１４）。
【００８７】
第１の識別部５は、写真画像Ｄ０に顔が含まれると判別する（Ｓ１４：Ｙｅｓ）と、写真画像Ｄ０から顔を抽出する（Ｓ１５）。ここでは、１つの顔に限らず複数の顔を抽出してもよい。次いで、特徴量算出部２が顔画像の拡大縮小および回転の各段階において、顔画像の勾配ベクトルＫの方向および大きさを特徴量Ｃ０として算出する（Ｓ１６）。そして、第２の識別部６が記憶部４から第２の参照データＥ２を読み出し（Ｓ１７）、顔に含まれる目の位置を識別する第２の識別を行う（Ｓ１８）。
【００８８】
続いて、第１の出力部７が写真画像Ｄ０から識別された目の位置および、この目の位置に基づいて求められた両目間の距離ｄを情報Ｓとしてトリミング部１０および照合部４０に出力する（Ｓ１９）。
【００８９】
一方、ステップＳ１４において、写真画像Ｄ０に顔が含まれていないと判別される（Ｓ１４：Ｎｏ）と、第１の出力部７は、写真画像Ｄ０をそのまま出力部５０に出力する（Ｓ１９）。
【００９０】
トリミング部１０は、検出部１から出力されてきた情報Ｓに基づいて、左目のみと右目のみとを夫々含む所定の範囲を切り出してトリミング画像Ｄ１ａとＤ１ｂを得るものである。ここで、トリミングする際の所定の範囲とは、夫々の目の近傍を外枠にした範囲であり、例えば、図１６に示す斜線範囲のように、検出部１より識別した目の位置（目の中心点）を中心とした、図示Ｘ方向とＹ方向の長さが夫々ｄと０．５ｄである長方形の範囲とすることができる。なお、図示斜線範囲は、図中の左目のトリミングの範囲であるが、右目についても同様である。
【００９１】
グレー変換部１２は、トリミング部１０により得られたトリミング画像Ｄ１に対して下記の式（１）に従ってグレー変換処理を行ってグレースケール画像Ｄ２を得る。
【００９２】
Ｙ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂ      （１）
但し、Ｙ：輝度値
Ｒ，Ｇ，Ｂ：Ｒ、Ｇ、Ｂ値
前処理部１４は、グレースケール画像Ｄ２に対して前処理を行うものであり、ここでは、前処理として、平滑化処理と穴埋め処理が行われる。また、平滑化処理は、例えばカウシアンフィルタを適用することによって行われ、穴埋め処理は、補間処理とすることができる。
【００９３】
図４に示すように、写真画像における瞳の部分において、中心より上が部分的に明るくなる傾向があるため、穴埋め処理を行ってこの部分のデータを補間することにより瞳の中心位置の検出精度を向上させることができる。
【００９４】
２値化部２０は、２値化閾値算出部１８を有し、該２値化閾値算出部１８により算出した閾値Ｔを用いて、前処理部１４により得られた前処理済み画像Ｄ３を２値化して２値画像Ｄ４を得るものである。２値化閾値算出部１８は、具体的には前処理済み画像Ｄ３に対して、図１７に示す輝度のヒストグラムを作成し、前処理済み画像Ｄ３の全画素数の数分の１（図示では１／５となる２０％）に相当する出現頻度に対応する輝度値を２値化用の閾値Ｔとして求める。２値化部２０は、この閾値Ｔを用いて前処理済み画像Ｄ３を２値化して２値画像Ｄ４を得る。
【００９５】
投票部３０は、まず、２値化画像Ｄ４における各画素（画素値が１となる画素）の座標を円環のハフ空間（円中心点Ｘ座標，円中心点Ｙ座標，半径ｒ）に投票して、各投票位置の投票値を算出する。通常、１つの投票位置がある画素により投票されると、１回投票されたとして投票値に１が加算されるようにして各投票位置の投票値を求めるようにしているが、ここでは、１つの投票位置がある画素に投票されると、投票値に１を加算するのではなく、投票した画素の輝度値を参照して、輝度値が小さいほど、大きい重みを付けて加算するようにして各投票位置の投票値を求める。図１８は、図２に示す瞳検出手段１００における投票部３０に使用された重付け係数のテーブルを示している。なお、図中Ｔは、２値化閾値算出部１８により算出された２値化用の閾値Ｔである。
【００９６】
投票部３０は、このようにして各投票位置の投票値を求めた後、これらの投票位置のうち、円環中心点座標値、即ち円環ハフ空間（Ｘ，Ｙ，ｒ）における（Ｘ，Ｙ）座標値が同じである投票位置同士の投票値を加算して各々の（Ｘ，Ｙ）座標値に対応する統合投票値Ｗを得て、相対応する（Ｘ，Ｙ）座標値と対応付けて中心位置候補取得部３５に出力する。
【００９７】
中心位置候補取得部３５は、まず、投票部３０からの各々の統合投票値から、最も大きい統合投票値に対応する（Ｘ，Ｙ）座標値を、瞳の中心位置候補Ｇとして取得して、照合部４０に出力する。ここで、中心位置候補取得部３５により取得された中心位置候補Ｇは、左瞳の中心位置Ｇａと右瞳の中心位置Ｇｂとの２つであり、照合部４０は、検出部１により出力された両目間の距離ｄに基づいて、２つの中心位置Ｇａ、Ｇｂの照合を行う。
【００９８】
具体的には、照合部４０は、次の２つの照合基準に基づいて照合を行う。
【００９９】
１． 左瞳の中心位置と右瞳の中心位置とのＹ座標値の差が（ｄ／５０）以下。
【０１００】
２． 左瞳の中心位置と右瞳の中心位置とのＸ座標値の差が（０．８×ｄ〜１．２×ｄ）の範囲内。
【０１０１】
照合部４０は、中心位置候補取得部３５からの２つの瞳の中心位置候補Ｇａ、Ｇｂが上記２つの照合基準を満たしているか否かを判別し、２つの基準とも満たしていれば（以下照合基準を満たしているという）、瞳の中心位置候補Ｇａ、Ｇｂを瞳の中心位置として微調整部４５に出力する。一方、２つの基準または２つの基準のうちの１つを満たしていなければ（以下照合基準を満たしていないという）、中心位置候補取得部３５に次の中心位置候補を取得するように指示すると共に、中心位置候補取得部３５により取得された次の中心位置候補に対して上述した照合、照合基準を満たしている場合の中心位置出力、照合基準を満たしていない場合の中心位置候補を再取得する指示などの処理を、照合基準を満たすようになるまで繰り返す。
【０１０２】
片方、中心位置候補取得部３５は、照合部４０から次の中心位置候補の取得が指示されると、まず、片方（ここでは、左瞳）の中心位置を固定して、もう片方（ここでは右瞳）の各々の統合投票値Ｗｂから、下記の３つの条件に合う投票位置の（Ｘ，Ｙ）座標値を次の中心位置候補として取得する。
【０１０３】
１．最後に照合部４０に出力した中心位置候補の（Ｘ、Ｙ）座標値により示される位置とｄ／３０以上（Ｄ：両目間の距離）離れている。
【０１０４】
２．相対応する統合投票値が、条件１を満たす（Ｘ，Ｙ）座標値に対応する統合投票値のうち、最後に照合部４０に出力した中心位置候補の（Ｘ，Ｙ）座標値に対応する統合投票値の次に大きい。
【０１０５】
３．相対応する統合投票値が、１回目に照合部４０に出力した中心位置候補の（Ｘ，Ｙ）座標値に対応する統合投票値（最も大きい統合投票値）の１０パーセント以上である。
【０１０６】
中心位置候補取得部３５は、まず、左瞳の中心位置を固定して、右瞳に対して求められた統合投票値Ｗｂに基づいて上記３つの条件を満たす右瞳の中心位置候補を探すが、上記３つの条件を満たす候補を見つからない場合には、右瞳の中心位置を固定して、左瞳に対して求められた統合投票値Ｗａに基づいて上記の３つの条件を満たす左瞳の中心位置を探す。
【０１０７】
微調整部４５は、照合部４０から出力してきた瞳の中心位置Ｇ（照合基準を満たしている中心位置候補）に対して微調整を行うものである。まず、左瞳の中心位置の微調整を説明する。微調整部４５は、２値化部２０により得られた左目のトリミング画像Ｄ１ａの２値画像Ｄ４ａに対して、サイズが９×９で、オール１のマスクを用いてマスク演算を３回繰り返し、このマスク演算の結果により得られた最大結果値を有する画素の位置（Ｇｍとする）に基づいて、照合部４０から出力してきた左瞳の中心位置Ｇａに対して微調整を行う。具体的には、例えば、位置Ｇｍと中心位置Ｇａとの平均を取って得た平均位置を瞳の最終中心位置Ｇ’aとするようにしてもよいし、中心位置Ｇａの方に重みを付けて平均演算して得た平均位置を瞳の最終中心位置Ｇ’ａとするようにしてもよい。ここでは、中心位置Ｇａの方に重みを付けて平均演算することにする。
【０１０８】
また、右瞳の中心位置の微調整は、右目のトリミング画像Ｄ１ｂの２値画像Ｄ４ｂを用いて上記と同じように行われる。
【０１０９】
微調整部４５は、このようにして、照合部４０から出力してきた瞳の中心位置Ｇａ、Ｇｂに対して微調整を行って得た最終中心位置Ｇ’ａ、Ｇ’ｂを出力部５０に出力する。
【０１１０】
出力部５０は、顔が含まれていない画像Ｄ０をそのまま第１の解析手段２００に出力するが、顔が含まれた画像Ｄ０に対しては、最終中心位置Ｇ’に基づいて、中心位置Ｇ’ａを囲む所定の範囲と、Ｇ’ｂを囲む所定の範囲を夫々切り出して瞳画像Ｄ５（Ｄ５ａ，Ｄ５ｂ）を得、この瞳画像Ｄ５を第１の解析手段２００に出力する。
【０１１１】
図１９は、図２に示す瞳検出手段１００の処理を示すフローチャートである。図示のように、写真画像Ｄ０は、まず検出部１において顔が含まれているか否かの判別がされる（Ｓ１１０）。判別の結果、写真画像Ｄ０に顔が含まれていなければ（Ｓ１１５：Ｎｏ）、写真画像Ｄ０は検出部１から出力部５０に出力される一方、写真画像Ｄ０に顔が含まれていれば（Ｓ１１５：Ｙｅｓ）、さらに、検出部１において写真画像Ｄ０における目の位置が検出され、両目の位置および両目間の距離ｄが情報Ｓとしてトリミング部１０に出力される（Ｓ１２０）。トリミング部１０において、写真画像Ｄ０がトリミングされ、左目のみを含むトリミング画像Ｄ１ａと右目のみを含むトリミング画像Ｄ１ｂが得られる（Ｓ１２５）。トリミング画像Ｄ１は、グレー変換部１２によりグレー変換されてグレースケール画像Ｄ２となる（Ｓ１３０）。グレースケール画像Ｄ２は、前処理部１４により平滑化処理と穴埋め処理を施され、さらに２値化部２０により２値化処理されて２値画像Ｄ４となる（Ｓ１３５、Ｓ１４０）。投票部３０において、２値画像Ｄ４の各画素の座標は円環のハフ空間に投票され、その結果、各々の円中心点を示す（Ｘ，Ｙ）座標値に対応する統合投票値Ｗが得られる（Ｓ１４５）。中心位置候補取得部３５は、まず、最も大きい統合投票値に対応する（Ｘ，Ｙ）座標値を瞳の中心位置候補Ｇとして照合部４０に出力する（Ｓ１５０）。照合部４０は、前述した照合基準に基づいて中心位置候補取得部３５からの２つの中心位置候補Ｇａ、Ｇｂに対して照合を行い（Ｓ１１５）、２つの中心位置候補Ｇａ、Ｇｂが照合基準を満たしていれば（Ｓ１６０：Ｙｅｓ）、この２つの中心位置候補Ｇａ、Ｇｂを中心位置として微調整部４５に出力する一方、２つの中心位置候補Ｇａ、Ｇｂが照合基準を満たしていなければ（Ｓ１６０：Ｎｏ）、中心位置候補取得部３５に次の中心位置候補を探すように指示する（Ｓ１５０）。ステップＳ１５０からステップＳ１６０までの処理が、照合部４０により、中心位置候補取得部３５からの中心位置候補Ｇが照合基準を満たすと判別されるまで繰り返される。
【０１１２】
微調整部４５は、照合部４０から出力された中心位置Ｇに対して微調整を行い、最終中心位置Ｇ’を得て出力部５０に出力する（Ｓ１６５）。
【０１１３】
出力部５０は、顔が含まれていない画像Ｄ０（Ｓ１１５：Ｎｏ）をそのまま第１の解析手段２００に出力するが、顔が含まれた画像Ｄ０に対しては、最終中心位置Ｇ’に基づいて、中心位置Ｇ’ａを囲む所定の範囲と、Ｇ’ｂを囲む所定の範囲を夫々切り出して瞳画像Ｄ５（Ｄ５ａ，Ｄ５ｂ）を得、この瞳画像Ｄ５を第１の解析手段２００に出力する（Ｓ１７０）。
【０１１４】
このように、図１に示す画像処理システムの瞳検出手段１００から、顔が含まれていない画像Ｄ０が部分画像選出手段１５０に出力され、顔が含まれている画像Ｄ０の瞳画像Ｄ５が第１の解析手段２００に出力される。
【０１１５】
図２０は、図１に示す画像処理システムにおける部分画像選出手段１５０の構成を示すブロック図である。図示のように、部分画像選出手段１５０は、画像Ｄ０全体からエッジを抽出するエッジ抽出手段１１０と、画像Ｄ０を複数例えば１６個のブロックに分けると共に、ブロック毎に、エッジ抽出手段１１０により抽出されたエッジの数を集計するエッジ数集計手段１１５と、エッジ数集計手段１１５により得られた各ブロックのエッジ数に基づいて部分画像Ｄｂを複数選出する選出実行手段１２０とを備えてなるものである。
【０１１６】
本実施形態における選出実行手段１２０は、具体的には、エッジ数集計手段１１５により得られた各ブロックのエッジ数に基づいて、エッジ数が多い順に、エッジ数が最も多いブロックから、例えばエッジ数が５番目に多いブロックまでの画像を部分画像Ｄｂとして選出する。ここで、選出する部分画像Ｄｂの数が例としての５つに限られることがなく、また、選出の方法としても、個数を限定する方法に限らず、例えば所定の閾値以上のエッジ数を有するブロックの画像を全部部分画像Ｄｂとして選出するようにしてもよい。
【０１１７】
このように、本実施形態における部分画像選出手段１５０によれば、図２１の画像を例にすると、端縁部のブロックや、平坦部位のブロックなどエッジ数の少ない領域、すなわちボケ（ピンボケや、ぶれ）があるとしても現れ難い領域の画像は、部分画像として抽出されることがなく、輪郭を含む領域などのエッジが集中する領域の画像は部分画像として抽出されるので、後に第１の解析手段２００、第２の解析手段３００による解析が効率良くかつ正確にできる。
【０１１８】
図２２は、第１の解析手段２００の構成を示すブロック図である。図示のように、第１の解析手段２００は、代表画像選出手段２１０と、エッジ検出手段２１２と、エッジプロファイル作成手段２１３と、エッジ絞込手段２１４と、エッジ特徴量取得手段２１６と、解析実行手段２２０と、記憶手段２２５と、前述各手段を制御する制御手段２３０とを有してなるものであり、ここで、第１の解析手段２００を構成する各手段について説明する。
【０１１９】
代表画像選出手段２１０は、瞳検出手段１００から出力されてきた複数の瞳画像Ｄ５から代表瞳画像、または部分画像選出手段１５０から出力されてきた複数の部分画像Ｄｂから代表部分画像（以下代表瞳画像および代表部分画像を代表画像Ｄｐという）を選出するものである。具体的には、瞳画像Ｄ５の場合には、夫々の瞳画像Ｄ５が対応する顔部分の画像のうち、サイズが最も大きい顔部分の画像における瞳の部分の画像Ｄ５（左瞳または右瞳のいずれか１つであってもよく、その両方でもよい）を、部分画像Ｄｂの場合には、エッジ数が最も多い部分画像Ｄｂを代表画像Ｄｐとして選出する。なお、代表瞳画像として２つの瞳画像Ｄ５が選出された場合には、この２つの代表瞳画像を合わせて代表画像Ｄｐとする。
【０１２０】
ここで、代表画像選出手段２１０は、ボケ画像であるか否かの解析を行うために適した瞳画像Ｄ５または部分画像Ｄｂを代表画像Ｄｐとして選出することを目的とするものであるため、上述した選択の方法以外に、例えば、瞳画像Ｄ５のうち、または部分画像Ｄｂのうち、画像Ｄ０の中央部位に最も近いものを代表画像Ｄｐとして選択する方法などを適用してもよい。
【０１２１】
エッジ検出手段２１２、エッジプロファイル作成手段２１３、エッジ絞込手段２１４、エッジ特徴量取得手段２１６は、制御手段２３０の制御に従って、夫々の処理を代表画像Ｄｐに対してのみ行う場合と、全ての瞳画像Ｄ５または部分画像Ｄｂに対して夫々の処理を行う場合があるが、ここで、まず、これらの手段により処理が行われる画像を対象画像として夫々の手段の動作について説明する。
【０１２２】
エッジ検出手段２１２は、まず、対象画像を用いて図２３に示すような８方向毎に、所定の強度以上のエッジを検出し、これらのエッジの座標位置を得てエッジプロファイル作成手段２１３に出力する。
【０１２３】
エッジプロファイル作成手段２１３は、エッジ検出手段２１２により検出された各方向毎の各々のエッジの座標位置に基づいて、対応する対象画像を用いてこれらのエッジに対して、図２４に示すようなエッジプロファイルを作成してエッジ絞込手段２１４に出力する。
【０１２４】
エッジ絞込手段２１４は、エッジプロファイル作成手段２１３から出力されてきたエッジのプロファイルに基づいて、複雑なプロファイル形状を有するエッジや、光源を含むエッジ（具体的には例えば一定の明度以上のエッジ）などの無効なエッジを除去し、残りのエッジのプロファイルをエッジ特徴量取得手段２１６に出力する。
【０１２５】
エッジ特徴量取得手段２１６は、エッジ絞込手段２１４から出力されてきたエッジのプロファイルに基づいて、図２４に示すようなエッジ幅を各エッジに対して求め、図２５に示すようなエッジ幅のヒストグラムを図２３に示された８つの方向毎に作成してエッジ幅と共にエッジ特徴量Ｓとして解析実行手段２２０に出力する。
【０１２６】
エッジ検出手段２１２、エッジプロファイル作成手段２１３、エッジ絞込手段２１４、エッジ特徴量取得手段２１６は、上述した処理を夫々行うものであり、制御手段２３０は、まず、代表画像Ｄｐのみを対象画像として、代表画像Ｄｐに対する処理をこれらの各手段に行わせる。
【０１２７】
解析実行手段２２０は、主として下記の４つの処理を行う。
【０１２８】
１． 代表画像Ｄｐに対してボケ方向、ボケ度Ｎを求めて、代表画像Ｄｐがボケ画像か通常画像かを判別する。
【０１２９】
２． 代表画像Ｄｐがボケ画像と判別された場合、さらに代表画像Ｄｐがピンボケ画像かぶれ画像かをさらに判別する
３． 代表画像Ｄｐがピンボケ画像と判別された場合、ボケ幅Ｌａを算出する。
【０１３０】
４． 代表画像Ｄｐがぶれ画像と判別された場合、この判別に応じて制御手段２３０がエッジ検出手段２１２、エッジプロファイル作成手段２１３、エッジ絞込手段２１４、エッジ特徴量取得手段２１６に夫々の処理を、代表画像Ｄｐ以外の全ての瞳画像Ｄ５または部分画像Ｄｂに対して行わせて得た各瞳画像Ｄ５または部分画像Ｄｂのエッジ特徴量を用いて夫々のぶれ方向ｈとぶれ幅Ｌｂを算出する。
【０１３１】
ここで、１つ目の処理から説明する。
【０１３２】
解析実行手段２２０は、代表画像Ｄｐにおけるボケ方向を求めるために、まず、図２３に示す８つの方向のエッジ幅のヒストグラム（以下略してヒストグラムという）に対して、互いに直交する２つの方向を１方向組として各方向組（１−５、２−６、３−７、４−８）のヒストグラムの相関値を求める。なお、相関値は求め方によって様々な種類があり、相関値が大きければ相関が小さい種類と、相関値の大小と相関の大小とが一致する、すなわち相関値が小さければ相関が小さい種類との２種類に大きく分けることができる。本実施形態において、例として、相関値の大小と相関の大小とが一致する種類の相関値を用いる。図２６に示すように、画像中にぶれがある場合には、ぶれ方向のヒストグラムと、ぶれ方向と直交する方向のヒストグラムとの相関が小さい（図２６（ａ）参照）のに対して、ぶれと関係ない直交する方向組または画像中にぶれがない（ボケがないまたはピンボケ）場合の直交する方向組では、そのヒストグラムの相関が大きい（図２６（ｂ）参照）。本実施形態の画像処理システムにおける解析実行手段２２０は、このような傾向に着目し、４つの方向組に対して、各組のヒストグラムの相関値を求め、相関が最も小さい方向組の２つの方向を見付け出す。代表画像Ｄｐにぶれがあれば、この２つの方向のうちの１つは、図２３に示す８つの方向のうち、最もぶれ方向に近い方向として考えることができる。
【０１３３】
図２６（ｃ）は、ぶれ、ピンボケ、ボケ（ピンボケおよびぶれ）なしの撮像条件で同じ被写体を撮像して得た夫々の画像に対して求められた、このぶれの方向におけるエッジ幅のヒストグラムを示している。図２６（ｃ）から分かるように、ボケのない通常画像は、最も小さい平均エッジ幅を有し、すなわち、上記において見付け出された２つの方向のうち、平均エッジ幅が大きい方は、最もぶれに近い方向のはずである。
【０１３４】
解析実行手段２２０は、こうして、相関が最も小さい方向組を見付け、この方向組の２つの方向のうち、平均エッジ幅の大きい方をボケ方向とする。
【０１３５】
次に、解析実行手段２２０は、代表画像のボケ度Ｎを求める。画像のボケ度は、画像中のボケの程度の大小を示すものであり、例えば、画像中に最もぼけている方向（ここでは上記において求められたボケ方向）の平均エッジ幅を用いてもよいが、ここでは、ボケ方向における各々のエッジのエッジ幅を用いて図２７に基づいたデータベースを利用してより精度良く求める。図２７は、学習用の通常画像データベースとボケ（ピンボケおよびぶれ）画像データベースを元に、画像中の最もぼけている方向（通常画像の場合には、この方向に対応する方向が望ましいが、任意の方向であってもよい）のエッジ幅分布のヒストグラムを作成し、ボケ画像における頻度と通常画像における頻度（図示縦軸）の比率を評価値（図示スコア）としてエッジ幅毎に求めて得たものである。図２７に基づいて、エッジ幅とスコアとを対応付けてなるデータベース（以下スコアデータベースという）が作成され、記憶手段２２５に記憶されている。
【０１３６】
解析実行手段２２０は、図２７に基づいて作成され、記憶手段２２５に記憶されたスコアデータベースを参照し、代表画像Ｄｐのボケ方向の各エッジに対して、そのエッジ幅からスコアを取得し、ボケ方向の全てのエッジのスコアの平均値を対象画像のボケ度Ｎとして求める。求められた代表画像のボケ度Ｎが所定の閾値（Ｔ１とする）より小さければ、解析実行手段２２０は、代表画像Ｄｐが通常画像として判別すると共に、代表画像Ｄｐが通常画像であるということから代表画像Ｄｐに対応する画像Ｄ０も通常画像であると判別し、画像Ｄ０が通常画像であることを示す情報Ｐを出力手段３５０に出力することをもって、処理を終了する。
【０１３７】
一方、代表画像Ｄｐのボケ度Ｎが閾値Ｔ１以上であれば、解析実行手段２２０は、代表画像Ｄｐがボケ画像であると判別し、２つ目の処理に入る。
【０１３８】
解析実行手段２２０は、２つ目の処理として、まず、代表画像Ｄｐのぶれ度Ｋを求める。
【０１３９】
ボケ画像のボケにおけるぶれの程度の大小を示すぶれ度Ｋは、下記のような要素に基づいて求めることができる。
【０１４０】
１．相関が最も小さい方向組（以下相関最小組）の相関値：この相関値が小さいほどぶれの程度が大きい
解析実行手段２２０は、この点に着目して、図２８（ａ）に示す曲線に基づいて第１のぶれ度Ｋ１を求める。なお、図２８（ａ）に示す曲線に応じて作成されたＬＵＴ（ルックアップテーブル）は、記憶手段２２５に記憶されており、解析実行手段２２０は、相関最小組の相関値に対応する第１のぶれ度Ｋ１を、記憶手段２２５から読み出すようにして第１のぶれ度Ｋ１を求める。
【０１４１】
２．相関最小組の２つの方向のうち、平均エッジ幅が大きい方向の平均エッジ幅：この平均エッジ幅が大きいほどぶれの程度が大きい
解析実行手段２２０は、この点に着目して、図２８（ｂ）に示す曲線に基づいて第２のぶれ度Ｋ２を求める。なお、図２８（ｂ）に示す曲線に応じて作成されたＬＵＴ（ルックアップテーブル）は、記憶手段２２５に記憶されており、解析実行手段２２０は、相関最小組の平均エッジ幅が大きい方向の平均エッジ幅に対応する第２のぶれ度Ｋ２を、記憶手段２２５から読み出すようにして第２のぶれ度Ｋ２を求める。
【０１４２】
３．相関最小組の２つの方向における夫々の平均エッジ幅の差：この差が大きいほどぶれの程度が大きい
解析実行手段２２０は、この点に着目して、図２８（ｃ）に示す曲線に基づいて第３のぶれ度Ｋ３を求める。なお、図２８（ｃ）に示す曲線に応じて作成されたＬＵＴ（ルックアップテーブル）は、記憶手段２２５に記憶されており、解析実行手段２２０は、相関最小組の２つの方向における夫々の平均エッジ幅の差に対応する第３のぶれ度Ｋ３を、記憶手段２２５から読み出すようにして第３のぶれ度Ｋ３を求める。
【０１４３】
解析実行手段２２０は、このようにして第１のぶれ度Ｋ１、第２のぶれ度Ｋ２、第３のぶれ度Ｋ３を求めると共に、下記の式（２）に従って、Ｋ１、Ｋ２、Ｋ３を用いてボケ画像となる代表画像Ｄｐのぶれ度Ｋを求める。
【０１４４】
Ｋ＝Ｋ１×Ｋ２×Ｋ３                            （２）
但し、Ｋ：ぶれ度
Ｋ１：第１のぶれ度
Ｋ２：第２のぶれ度
Ｋ３：第３のぶれ度
解析実行手段２２０は、このように算出した代表画像Ｄｐのぶれ度Ｋに基づいて、ぶれ度Ｋが所定の閾値（閾値Ｔ２）より大きい場合には、代表画像Ｄｐがぶれ画像であると判別し、判別の結果を制御手段２３０に出力する一方、ぶれ度Ｋが閾値Ｔ２以下である場合には、代表画像Ｄｐがピンボケ画像であると判別し、第３の処理、すなわちボケ幅Ｌａを求める処理に進む。
【０１４５】
本実施形態において、解析実行手段２２０は、ピンボケ画像であると判別された代表画像Ｄｐに対して、代表画像Ｄｐにおける各エッジの平均幅を算出してボケ幅Ｌａとする。また、代表画像Ｄｐがピンボケ画像であるということから、解析実行手段２２０は、代表画像Ｄｐに対応する画像Ｄ０もピンボケ画像であると判別し、画像Ｄ０がピンボケ画像であることを示す情報と、そのボケ幅Ｌａとからなるピンボケ情報Ｑ０を出力手段３５０に出力することをもって、処理を終了する。
【０１４６】
一方、前述したように、解析実行手段２２０は、代表画像Ｄｐがぶれ画像であると判別した場合には、この判別結果を制御手段２３０に出力する。制御手段２３０は、代表画像Ｄｐがぶれ画像であることを示す情報を受信すると、瞳画像Ｄ５のうちの、または部分画像Ｄｂのうちの、代表画像Ｄｐとして選出されなかった他の画像を対象画像とし、エッジ検出手段２１２、エッジプロファイル作成手段２１３、エッジ絞込手段２１４、エッジ特徴量取得手段２１６にこれらの対象画像に対して夫々の処理を行って、各々の対象画像のエッジ特徴量を得て解析実行手段２２０に出力する。
【０１４７】
解析実行手段２２０は、第４の処理として、エッジ特徴量取得手段２１６から出力されてきた各々の対象画像（ここでは、代表画像Ｄｐとして選出されなかった瞳画像Ｄ５または部分画像Ｄｂ）に対して、夫々のぶれ方向ｈとぶれ幅Ｌｂを求めて、代表画像Ｄｐに対して先に求められたぶれ方向ｈとぶれ幅Ｌｂと共に、情報Ｑ１として第２の解析手段３００に出力する。ここで、解析実行手段２２０は、各対象画像のぶれ方向を求める際には、各対象画像がぶれ画像であることを前提としているため、前述した第１の処理においてボケ方向を求めるときと同じように、まず、各対象画像に対して、図２３に示す８つの方向のエッジ幅のヒストグラムに対して、互いに直交する２つの方向を１方向組として各方向組（１−５、２−６、３−７、４−８）のヒストグラムの相関値を求め、相関が最も小さい方向組の２つの方向を見付け出す。そして、この２つの方向におけるエッジの平均幅を求めて、エッジの平均幅が大きい方の方向をぶれ方向ｈとすると共に、ぶれ方向ｈにおけるエッジの平均幅をぶれ幅Ｌｂとする。
【０１４８】
すなわち、第２の解析手段３００には、瞳検出手段１００により得られた全ての瞳画像Ｄ５、または部分画像選出手段１５０により選出された全ての部分画像Ｄｂのぶれ方向ｈとぶれ幅Ｌｂが入力される。以下、第２の解析手段３００の処理対象となる瞳画像Ｄ５または部分画像Ｄｂを対象画像として説明を行う。
【０１４９】
第２の解析手段３００は、主として下記の３つの処理を行う。
【０１５０】
１．   画像Ｄ０におけるぶれが回転ぶれではないことを判別する第１の判別
２．   １の第１の判別により回転ぶれではないことが判別されなかった場合において、画像Ｄ０におけるぶれが回転ぶれかであるか否かの第２の判別
３．   画像Ｄ０のぶれ方向ｈ０とぶれ幅Ｌｂ０の取得。
【０１５１】
まず、第１の処理について説明する。
【０１５２】
第２の解析手段３００は、第１の判別として、下記のように画像Ｄ０におけるぶれが回転ぶれではないことを判別する：所定の比率例えば７０％以上の対象画像の夫々のぶれ方向ｈが略同じである場合において、画像Ｄ０におけるぶれが回転ぶれではないように判別する。例えば、２つの対象画像しかない場合には、この２つの対象画像における夫々のぶれ方向ｈが同じであるとき画像Ｄ０におけるぶれが回転ぶれではなく、３つの対象画像の場合には、この３つの対象画像における夫々のぶれ方向ｈが同じであるとき画像Ｄ０におけるぶれが回転ぶれではなく、４つの対象画像の場合には、この４つの対象画像のうちの３つ以上（すなわち３つまたは４つ）の対象画像における夫々のぶれ方向ｈが同じであるとき画像Ｄ０におけるぶれが回転ぶれではなく、５つの対象画像の場合には、この５つの対象画像のうちの４つ以上の対象画像における夫々のぶれ方向ｈが同じであるとき画像Ｄ０におけるぶれが回転ぶれではないように判別する。
【０１５３】
第２の解析手段３００は、ぶれが回転ぶれではないと判別した場合、この略同じであるぶれ方向ｈを画像Ｄ０のぶれ方向ｈ０とすると共に、このぶれ方向ｈ０を有する各対象画像のぶれ幅Ｌｂの平均値を求めて画像Ｄ０のぶれ幅Ｌｂ０とし、画像Ｄ０がぶれ画像であることを示す情報と、そのぶれが回転ぶれではないことを示す情報と、ぶれ方向ｈ０と、ぶれ幅Ｌｂ０とからなる情報をぶれ情報Ｑ２として出力手段３５０に出力することをもって処理を終了する。
【０１５４】
一方、第１の判別により、画像Ｄ０におけるぶれが回転ぶれではないとして判別されなかった場合、第２の解析手段３００は、第２の処理として下記のように回転ぶれか否かの第２の判別を行う。
【０１５５】
図２９は、第２の解析手段３００による第２の判別を説明するための図である。図中中心点Ｏは、基準点であり、点Ａ〜Ｅは、基準点Ｏから離れた点であり、以下点Ａ〜点Ｅを局部点という。基準点Ｏといずれかの局部点とを連接してなる直線がこの局部点の半径線といい、例えば、基準点Ｏと局部点Ａとを連接してなる直線が、局部点Ａの半径線となる。また、局部点Ａにおける矢印ｈ１により示される方向は、基準点Ｏから見て局部点Ａの半径線の左側に向かう方向であるため、以下の説明において、方向ｈ１が局部点Ａの左側の方向という。すなわち、各局部点における方向は、該局部点の半径線の延びる方向と同じ方向を除いて、半径線の左側に向かう方向か右側に向かう方向か（左側の方向が右側の方向か）に分類することができる。
【０１５６】
第２の解析手段３００は、所定の基準点Ｏ（その詳細について後述する）に対して、各対象画像の中心位置を局部点に、各対象画像におけるぶれ方向ｈを夫々相対応する局部点の方向にして図２９に示すような関係を得る。図中局部点Ａ〜Ｅは、各対象画像の夫々の中心点である。第２の解析手段３００は、各局部点における方向（すなわち、この局部点が対応する対象画像のぶれ方向）が、左側の方向か右側の方向かを確認し、所定の比率例えば７０％の局部点における方向が同じ側の方向であれば、画像Ｄ０におけるぶれが、基準点Ｏを回転の中心とする回転ぶれであると判別する。
【０１５７】
第２の解析手段３００は、画像Ｄ０の中心点と、画像Ｄ０を上下左右４つの同じサイズのブロックに分けて得た４つの領域（左上部領域、左下部領域、右下部領域、右上部領域）の夫々の中心点と、画像Ｄ０の４つの端点（左上端点、左下端点、右下端点、右上端点）およびこの４つの端点間の中心点（画像Ｄ０の上端縁の中心点、画像Ｄ０の左端縁の中心点、画像Ｄ０の下端縁の中心点、画像Ｄ０の右端縁の中心点）計１３個の点を、画像Ｄ０の中心点、領域の中心点、端点、端点間の中心点の順に、図２９に示す基準点Ｏに設定すると共に、設定された基準点Ｏにおいて上述したように画像Ｄ０におけるぶれが回転ぶれであるかの判別を行う。
【０１５８】
第２の解析手段３００は、前述した順に基準点を設定して判別を行っていき、いずれか１つの基準点において画像Ｄ０におけるぶれが回転ぶれであると判別すると、他の点を基準点とする処理を中止すると共に、この基準点を、画像Ｄ０における回転ぶれの回転中心とし、各局部点のうちのいずれか１つの局部点を選択して、該局部点と基準点間の距離を算出する。また、第２の解析手段３００は、画像Ｄ０におけるぶれが回転ぶれであると判別したときの前述した７０％以上の局部点の方向が左側の方向か右側の方向かに基づいて、これらの局部点における方向が右側の方向であるときには回転ぶれの方向が基準点を中心とする時計回り方向（ＣＷ方向）であり、これらの局部点における方向が左側の方向であるときには回転ぶれ方向が基準点を中心とする反時計回り方向（ＣＣＷ方向）であるように画像Ｄ０のぶれ方向ｈ０を判別する。そして、第２の解析手段３００は、画像Ｄ０がぶれ画像であることを示す情報と、画像Ｄ０におけるぶれが回転ぶれであることを示す情報と、回転中心の位置を示す情報と、ぶれ方向ｈ０と、ぶれ幅Ｌｂ０（前述の選択された局部点と回転中心間の距離と、この局部点のぶれ幅Ｌｂとからなる）とからなる情報をぶれ情報Ｑ２として出力手段３５０に出力することをもって処理を終了する。
【０１５９】
一方、上述した各点のいずれを基準点としたときにおいても、画像Ｄ０におけるぶれが回転ぶれであると判別されなかった場合、第２の解析手段３００は、画像Ｄ０におけるぶれが回転ぶれではないと判別すると共に（この場合、画像Ｄ０が被写界深度の浅い画像である可能性が高い）、複数の対象画像のうち、最も画像Ｄ０の中心部に近い対象画像のぶれ方向ｈとぶれ幅Ｌｂを画像Ｄ０のぶれ方向ｈ０、ぶれ幅Ｌｂ０とし、画像Ｄ０がぶれ画像であることを示す情報と、そのぶれが回転ぶれではないことを示す情報と、ぶれ方向ｈ０と、ぶれ幅Ｌｂ０とからなる情報をぶれ情報Ｑ２として出力手段３５０に出力することをもって処理を終了する。
【０１６０】
出力手段３５０は、第１の解析手段２００からの情報Ｐ、ピンボケ情報Ｑ０、または第２の解析手段３００からのぶれ情報Ｑ２を画像Ｄ０に付属させて記録媒体に記憶する。勿論、出力手段３５０は、これらの情報を、画像の補正を行う装置に出力したり、ネットワーク上における画像保管サーバや、画像の補正を依頼した依頼者により指定されたネットワーク上のアドレスなどに送信したりするなどのものであってもよい。
【０１６１】
以上、本発明の望ましい実施形態について説明したが、本発明の画像処理方法および装置並びにそのためのプログラムは、上述した実施形態に限られることがなく、本発明の主旨を逸脱しない限り、様々な増減、変化を加えることができる。
【０１６２】
例えば、本実施形態の画像処理システムは、画像Ｄ０から瞳画像を抽出して第１の解析手段２００および第２の解析手段３００に供するようにしているが、顔部分の画像や、他の点状部の画像や、顔部分の画像と瞳画像などの点状部との組合せなどを用いるようにしてもよい。
【０１６３】
また、本実施形態の画像処理システムにおいて、画像Ｄ０が人物の写真画像であるか否かを知らないことを前提とし、まず画像Ｄ０から顔乃至瞳画像を検出し、検出できなかった場合においては画像をブロック分けして得たブロック画像からエッジ数の多いブロック画像を部分画像を得るようにしているが、例えば、証明写真などを処理対象とするシステムにおいては画像Ｄ０が必ず人物の写真画像であるので、図１に示す部分画像選出手段１５０を備えないようにしてもよい。勿論、顔乃至瞳の検出をせずに、部分画像選出手段１５０のみを備えるようにしてもよい。
【０１６４】
また、本実施形態において、部分画像選出手段１５０は、画像を１６個のブロックに分けてようにしているが、ブロックの数が１６個に限られないことはいうまでもない。
【０１６５】
また、写真画像に顔が含まれているか否かの識別も、上述した方法に限られることがなく、従来公知の種々の技術を利用することができる。
【０１６６】
また、上述の実施形態の画像処理システムにおいて、第１の解析手段２００は、相関最小組の２つの方向のうち、平均エッジ幅が大きい方向をぶれ方向としているが、例えば、相関最小組（相関値が１番目に小さい方向組）と、相関値が２番目に小さい方向組について、夫々ぶれ度を算出し、方向組の２つの方向のうち、平均エッジ幅が大きい方向をぶれ候補方向とするようにして２つの方向組からぶれ候補方向を夫々取得し、取得された２つのぶれ候補方向を、算出された２つのぶれ度に応じて、ぶれ度が大きい方向組ほど、該方向組に含まれるぶれ候補方向の重みが大きくなるように重み付けしてぶれ方向を得るようにしてもよい。この場合、ぶれ幅も、２つのぶれ候補方向における夫々の平均エッジ幅を、ぶれ度が大きい方向組ほど、該方向組に含まれるぶれ候補方向の平均エッジ幅の重みが大きくなるように重み付けしてボケ幅を得ることができる。
【０１６７】
また、上述した実施形態において、第１の解析手段２００は、図２８に基づいて、前述した３つの要素に基づいてぶれ度を求めるようにしているが、ぶれ度を求める要素については増減があってもよい。例えば、前述した３つの要素のうちの２つのみを用いてもよく、要素を増やして、例えば相関最小組と、相関最小組と最も大きくずれた（図２３に示す方向組の場合、４５度ずれた）方向組との相関値の差も視野に入れてぶれ度を求めるようにしてもよい。
【０１６８】
また、本実施形態の画像処理システムは、図２３に示す８方向においてエッジの検出を行ってボケ画像か否か、ピンボケ画像かぶれ画像かなどの判別を行っているが、エッジを検出する方向は図２３に示す８方向に限らず、より多く用いてもよい。
【０１６９】
また、本実施形態の画像処理システムにおける第２の解析手段３００は、回転ぶれであるかの識別（第２の解析手段３００による第２の識別）を行う際に、前述した１３個の点を夫々基準点に設定して判別を行うようにしているが、基準点は、例えばカメラの構造特性として、画像中に回転ぶれがあれば、回転の中心は画像の中心点以外の可能性がない場合に画像の中心点のみを基準点にして判別を行うように、画像Ｄ０を撮像したカメラなどの撮像装置の構造特性に基づいて変更または増減を加えるようにしてもよい。
【図面の簡単な説明】
【０１７０】
【図１】本発明の実施形態となる画像処理システムの構成を示すブロック図
【図２】図１に示す画像処理システムにおける瞳検出手段１００の構成を示すブロック図
【図３】瞳検出手段１００の検出部１の構成を示すブロック図
【図４】目の位置を示す図
【図５】（ａ）は水平方向のエッジ検出フィルタを示す図、（ｂ）は垂直方向のエッジ検出フィルタを示す図
【図６】勾配ベクトルの算出を説明するための図
【図７】（ａ）は人物の顔を示す図、（ｂ）は（ａ）に示す人物の顔の目および口付近の勾配ベクトルを示す図
【図８】（ａ）は正規化前の勾配ベクトルの大きさのヒストグラムを示す図、（ｂ）は正規化後の勾配ベクトルの大きさのヒストグラムを示す図、（ｃ）は５値化した勾配ベクトルの大きさのヒストグラムを示す図、（ｄ）は正規化後の５値化した勾配ベクトルの大きさのヒストグラムを示す図
【図９】参照データの学習に用いられる顔であることが分かっているサンプル画像の例を示す図
【図１０】参照データの学習に用いられる顔であることが分かっているサンプル画像の例を示す図
【図１１】顔の回転を説明するための図
【図１２】参照データの学習手法を示すフローチャート
【図１３】識別器の導出方法を示す図
【図１４】識別対象画像の段階的な変形を説明するための図
【図１５】図３に示す検出部１の処理を示すフローチャート
【図１６】瞳検出手段１００を説明するための図
【図１７】輝度ヒストグラム
【図１８】瞳検出手段１００における投票部３０に使用された重付け係数のテーブルの例
【図１９】瞳検出手段１００の処理を示すフローチャート
【図２０】図１に示す画像処理システムにおける部分画像選出手段１５０の構成を示すブロック図
【図２１】図２０に示す部分画像選出手段１５０を説明するための画像の例を示す図
【図２２】図１に示す画像処理システムにおける第１の解析手段２００の構成を示すブロック図
【図２３】エッジを検出する際に用いられる方向の例を示す図
【図２４】エッジプロファイルを示す図
【図２５】エッジ幅のヒストグラムを示す図
【図２６】解析実行手段２２０の動作を説明するための図
【図２７】ボケ度の算出を説明するための図
【図２８】ぶれ度の算出を説明するための図
【図２９】図１に示す画像処理システムにおける第２の解析手段３００を説明するための図
【図３０】画像全体におけるぶれ方向と部分画像におけるぶれ方向を説明するための図
【符号の説明】
【０１７１】
１    検出部
２    特徴量算出部
４    記憶部
５    第１の識別部
６    第２の識別部
７    第１の出力部
１０    トリミング部
１２    グレー変換部
１４    前処理部
１８    ２値化部
２０    ２値化閾値算出部
３０    投票部
３５    中心位置候補取得部
４０    照合部
４５    微調整部
５０    出力部
１００    瞳検出手段
１１０    エッジ抽出手段
１１５    エッジ数抽出手段
１２０    選出実行手段
１５０    部分画像選出手段
２００    第１の解析手段
２１０    代表画像選出手段
２１２    エッジ検出手段
２１３    エッジプロファイル作成手段
２１４    エッジ絞込手段
２１６    エッジ特徴量取得手段
２２０    解析実行手段
２２５    記憶手段
２３０    制御手段
３００    第２の解析手段
３５０    出力手段
Ｃ０    顔を識別するための特徴量
Ｄ０    デジタル写真画像
Ｈ０    参照データ
Ｋ    ぶれ度
Ｌ    ボケ幅
Ｌａ    ボケ幅
Ｌｂ    ぶれ幅
Ｎ    ボケ度
Ｑ０    ピンボケ情報
Ｑ１，Ｑ２    ぶれ情報
Ｓ    エッジ特徴量
【図１】
2006053854.tif 000003
【図２】
2006053854.tif 000004
【図３】
2006053854.tif 000005
【図４】
2006053854.tif 000006
【図５】
2006053854.tif 000007
【図６】
2006053854.tif 000008
【図７】
2006053854.tif 000009
【図８】
2006053854.tif 000010
【図９】
2006053854.tif 000011
【図１０】
2006053854.tif 000012
【図１１】
2006053854.tif 000013
【図１２】
2006053854.tif 000014
【図１３】
2006053854.tif 000015
【図１４】
2006053854.tif 000016
【図１５】
2006053854.tif 000017
【図１６】
2006053854.tif 000018
【図１７】
2006053854.tif 000019
【図１８】
2006053854.tif 000020
【図１９】
2006053854.tif 000021
【図２０】
2006053854.tif 000022
【図２１】
2006053854.tif 000023
【図２２】
2006053854.tif 000024
【図２３】
2006053854.tif 000025
【図２４】
2006053854.tif 000026
【図２５】
2006053854.tif 000027
【図２６】
2006053854.tif 000028
【図２７】
2006053854.tif 000029
【図２８】
2006053854.tif 000030
【図２９】
2006053854.tif 000031
【図３０】
2006053854.tif 000032