(57)【要約】【課題】より高い精度で画像のボケ具合を検出する。【解決手段】エッジマップ作成部３１１は、所定の大きさのブロック単位で画像のエッジ強度を検出する。演算パラメータ調整部３１３は、エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定する。エッジポイント抽出部３１５は、エッジ強度がエッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出する。本発明は、例えば、画像のボケ具合を検出する画像処理装置に適用できる。【選択図】図１９
2010217954.tif 000002
【特許請求の範囲】
【請求項１】
所定の大きさのブロック単位で画像のエッジ強度を検出するエッジ強度検出手段と、
前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定するパラメータ設定手段と、
前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出するエッジポイント抽出手段と
を含む画像処理装置。
【請求項２】
前記エッジ強度検出手段は、第１の大きさの第１のブロック単位で前記画像の前記エッジ強度を検出し、さらに、前記画像を第１の大きさのブロックに分割した各ブロック内の画素の平均値からなる第１の平均化画像の前記エッジ強度を前記第１の大きさのブロック単位で検出することにより、前記第１の大きさとは異なる第２の大きさの第２のブロック単位で前記画像の前記エッジ強度を検出し、さらに、前記第１の平均化画像を前記第１の大きさのブロックに分割した各ブロック内の画素の平均値からなる第２の平均化画像の前記エッジ強度を前記第１の大きさのブロック単位で検出することにより、前記第１の大きさおよび前記第２の大きさとは異なる第３の大きさの第３のブロック単位で前記画像のエッジの強度を検出し、
前記エッジポイント抽出手段は、前記エッジ強度が前記エッジ基準値以上の前記第１乃至第３のブロックのいずれかに含まれ、かつ、前記第１の平均化画像の画素値が所定の範囲内のブロックに含まれる画素を前記エッジポイントとして抽出する
請求項１に記載の画像処理装置。
【請求項３】
前記パラメータ設定手段は、さらに、前記画像のダイナミックレンジに基づいて、前記エッジポイントの抽出量が適切であるか否かの判定に用いる抽出基準値を設定するとともに、前記エッジポイントの抽出量が前記抽出基準値と比較して適切な量になるように前記エッジ基準値を調整する
請求項１に記載の画像処理装置。
【請求項４】
抽出された前記エッジポイントにおいてボケが発生しているか否かを分析する分析手段と、
前記分析手段による分析結果に基づいて、前記画像のボケ具合を検出するボケ度検出手段と
をさらに含む請求項１に記載の画像処理装置。
【請求項５】
前記エッジポイント抽出手段は、所定の分類パラメータに基づいて前記画像の種類を分類し、前記画像のダイナミックレンジおよび種類に基づいて、前記エッジ基準値を設定する
請求項１に記載の画像処理装置。
【請求項６】
前記分類パラメータは、前記画像のサイズおよび前記画像の撮影シーンのうち少なくとも１つを含む
請求項５に記載の画像処理装置。
【請求項７】
前記エッジ強度検出手段は、ブロック内の画素間の画素値の差分値に基づいて、前記画像のエッジの強度を検出する
請求項１に記載の画像処理装置。
【請求項８】
画像のボケ具合を検出する画像処理装置が、
所定の大きさのブロック単位で前記画像のエッジ強度を検出し、
前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定し、
前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出する
ステップを含む画像処理方法。
【請求項９】
画像のボケ具合を検出するコンピュータに、
所定の大きさのブロック単位で前記画像のエッジ強度を検出し、
前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定し、
前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出する
ステップを含む処理を実行させるプログラム。
【請求項１０】
画像のエッジ強度を所定の大きさのブロック単位で検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記画像の種類を分類し、前記エッジ強度が第１の閾値であるエッジ基準値以上のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出し、前記エッジポイントの抽出量が第２の閾値である抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かを分析し、前記画像がボケているか否かを判定する画像処理手段と、
前記エッジ基準値および前記抽出基準値の組み合わせを抽出するパラメータ抽出手段と
を含み、
前記画像処理手段は、前記エッジ基準値および前記抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像の種類を分類するとともに、前記教師画像がボケているか否かを判定し、
前記パラメータ抽出手段は、前記画像処理手段による前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせを、前記画像の種類毎に抽出する
学習装置。
【請求項１１】
前記画像処理手段は、前記エッジ基準値、前記抽出基準値、および、前記画像のダイナミックレンジに基づいて前記画像の種類を分類するためのダイナミックレンジ判定値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記ダイナミックレンジ判定値に基づいて前記教師画像の種類を分類するとともに、前記教師画像がボケているか否かを判定し、
前記パラメータ抽出手段は、前記画像処理手段による前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値、前記抽出基準値、および、前記ダイナミックレンジ判定値の組み合わせを、前記画像の種類毎に抽出する
請求項１０に記載の学習装置。
【請求項１２】
画像のボケ具合の検出に用いるパラメータを学習する学習装置が、
第１の閾値であるエッジ基準値および第２の閾値である抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像のエッジ強度を所定の大きさのブロック単位で検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記教師画像の種類を分類し、前記エッジ強度が前記エッジ基準値以上のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出し、前記エッジポイントの抽出量が前記抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かを分析し、前記教師画像がボケているか否かを判定し、
前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせを、前記画像の種類毎に抽出する
ステップを含む学習方法。
【請求項１３】
第１の閾値であるエッジ基準値および第２の閾値である抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像のエッジ強度を所定の大きさのブロック単位で検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記教師画像の種類を分類し、前記エッジ強度が前記エッジ基準値以上のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出し、前記エッジポイントの抽出量が前記抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かを分析し、前記教師画像がボケているか否かを判定し、
前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせを、前記画像の種類毎に抽出する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、学習装置および方法、並びに、プログラムに関し、特に、画像のボケ具合の検出に用いて好適な画像処理装置および方法、学習装置および方法、並びに、プログラムに関する。
【背景技術】
【０００２】
従来、ウェーブレット変換を用いて、画像内のエッジを構成する画素（以下、エッジポイントと称する）を抽出し、抽出したエッジポイントのタイプを分析することにより、画像のボケ具合を示す指標であるボケ度を検出する手法が提案されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Hanghang Tong, Mingjing Li, Hongjiang Zhang, Changshui Zhang, “Blur Detection for Digital Images Using Wavelet Transform”, Multimedia and Expo, 2004. ICME '04. 2004 IEEE International Conference on , 27-30 June 2004, page(s) 17-20
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、風景、人の顔など被写体の種類により、画像内に含まれるエッジの量（以下、エッジ量とも称する）は大きく変化する。例えば、テクスチャが多く含まれる人工的な模様や建築物などの画像ではエッジ量が多くなり、テクスチャがあまり含まれない自然の風景や人の顔などの画像ではエッジ量が少なくなる。
【０００５】
しかしながら、非特許文献１に記載の発明では、常に一定のパラメータを用いてエッジポイントを抽出し、抽出したエッジポイントを分析することによりボケ度を検出するため、画像に含まれるエッジ量によって、ボケ度の検出精度にバラツキが生じてしまう。例えば、テクスチャがあまり含まれないエッジ量が少ない画像については、十分な量のエッジポイントを抽出できず、その結果、ボケ度の検出精度が低下してしまう傾向にあった。
【０００６】
本発明は、このような状況を鑑みてなされたものであり、より高い精度で画像のボケ具合を検出できるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の第１の側面の画像処理装置は、所定の大きさのブロック単位で画像のエッジ強度を検出するエッジ強度検出手段と、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定するパラメータ設定手段と、前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出するエッジポイント抽出手段とを含む。
【０００８】
前記エッジ強度検出手段には、第１の大きさの第１のブロック単位で前記画像の前記エッジ強度を検出させ、さらに、前記画像を第１の大きさのブロックに分割した各ブロック内の画素の平均値からなる第１の平均化画像の前記エッジ強度を前記第１の大きさのブロック単位で検出させることにより、前記第１の大きさとは異なる第２の大きさの第２のブロック単位で前記画像の前記エッジ強度を検出させ、さらに、前記第１の平均化画像を前記第１の大きさのブロックに分割した各ブロック内の画素の平均値からなる第２の平均化画像の前記エッジ強度を前記第１の大きさのブロック単位で検出させることにより、前記第１の大きさおよび前記第２の大きさとは異なる第３の大きさの第３のブロック単位で前記画像のエッジの強度を検出させ、前記エッジポイント抽出手段には、前記エッジ強度が前記エッジ基準値以上の前記第１乃至第３のブロックのいずれかに含まれ、かつ、前記第１の平均化画像の画素値が所定の範囲内のブロックに含まれる画素を前記エッジポイントとして抽出させることができる。
【０００９】
前記パラメータ設定手段には、さらに、前記画像のダイナミックレンジに基づいて、前記エッジポイントの抽出量が適切であるか否かの判定に用いる抽出基準値を設定させるとともに、前記エッジポイントの抽出量が前記抽出基準値と比較して適切な量になるように前記エッジ基準値を調整させることができる。
【００１０】
抽出された前記エッジポイントにおいてボケが発生しているか否かを分析する分析手段と、前記分析手段による分析結果に基づいて、前記画像のボケ具合を検出するボケ度検出手段とをさらに設けることができる。
【００１１】
前記エッジポイント抽出手段には、所定の分類パラメータに基づいて前記画像の種類を分類し、前記画像のダイナミックレンジおよび種類に基づいて、前記エッジ基準値を設定させることができる。
【００１２】
前記分類パラメータに、前記画像のサイズおよび前記画像の撮影シーンのうち少なくとも１つを含めるようにすることができる。
【００１３】
前記エッジ強度検出手段には、ブロック内の画素間の画素値の差分値に基づいて、前記画像のエッジの強度を検出させることができる。
【００１４】
本発明の第１の側面の画像処理方法は、画像のボケ具合を検出する画像処理装置が、所定の大きさのブロック単位で前記画像のエッジ強度を検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定し、前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出するステップを含む。
【００１５】
本発明の第１の側面のプログラムは、画像のボケ具合を検出するコンピュータに、所定の大きさのブロック単位で前記画像のエッジ強度を検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値を設定し、前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出するステップを含む処理を実行させる。
【００１６】
本発明の第１の側面においては、所定の大きさのブロック単位で画像のエッジ強度が検出され、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて、前記画像のボケ具合の検出に用いる画素であるエッジポイントの抽出に用いるエッジ基準値が設定され、前記エッジ強度が前記エッジ基準値以上、かつ、ブロック内の画素の画素値が所定の範囲内のブロックであるエッジブロックに含まれる画素を前記エッジポイントとして抽出される。
【００１７】
本発明の第２の側面の学習装置は、画像のエッジ強度を所定の大きさのブロック単位で検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記画像の種類を分類し、前記エッジ強度が第１の閾値であるエッジ基準値以上のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出し、前記エッジポイントの抽出量が第２の閾値である抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かを分析し、前記画像がボケているか否かを判定する画像処理手段と、前記エッジ基準値および前記抽出基準値の組み合わせを抽出するパラメータ抽出手段とを含み、前記画像処理手段は、前記エッジ基準値および前記抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像の種類を分類するとともに、前記教師画像がボケているか否かを判定し、前記パラメータ抽出手段は、前記画像処理手段による前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせを、前記画像の種類毎に抽出する。
【００１８】
前記画像処理手段には、前記エッジ基準値、前記抽出基準値、および、前記画像のダイナミックレンジに基づいて前記画像の種類を分類するためのダイナミックレンジ判定値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記ダイナミックレンジ判定値に基づいて前記教師画像の種類を分類させるとともに、前記教師画像がボケているか否かを判定させ、前記パラメータ抽出手段には、前記画像処理手段による前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値、前記抽出基準値、および、前記ダイナミックレンジ判定値の組み合わせを、前記画像の種類毎に抽出させることができる。
【００１９】
本発明の第２の側面の学習方法は、画像のボケ具合の検出に用いるパラメータを学習する学習装置が、第１の閾値であるエッジ基準値および第２の閾値である抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像のエッジ強度を所定の大きさのブロック単位で検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記教師画像の種類を分類し、前記エッジ強度が前記エッジ基準値以上のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出し、前記エッジポイントの抽出量が前記抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かを分析し、前記教師画像がボケているか否かを判定し、前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせを、前記画像の種類毎に抽出するステップを含む。
【００２０】
本発明の第２の側面のプログラムは、第１の閾値であるエッジ基準値および第２の閾値である抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像のエッジ強度を所定の大きさのブロック単位で検出し、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記教師画像の種類を分類し、前記エッジ強度が前記エッジ基準値以上のブロックであるエッジブロックに含まれる画素をエッジポイントとして抽出し、前記エッジポイントの抽出量が前記抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かを分析し、前記教師画像がボケているか否かを判定し、前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせを、前記画像の種類毎に抽出するステップを含む処理をコンピュータに実行させる。
【００２１】
本発明の第２の側面においては、第１の閾値であるエッジ基準値および第２の閾値である抽出基準値の複数の組み合わせをそれぞれ用いて、複数の教師画像について、前記教師画像のエッジ強度が所定の大きさのブロック単位で検出され、前記エッジ強度の最大値と最小値の差であるダイナミックレンジに基づいて前記教師画像の種類が分類され、前記エッジ強度が前記エッジ基準値以上のブロックであるエッジブロックに含まれる画素がエッジポイントとして抽出され、前記エッジポイントの抽出量が前記抽出基準値以上である場合、前記エッジポイントにおいてボケが発生しているか否かが分析され、前記教師画像がボケているか否かが判定され、前記教師画像がボケているか否かの判定精度が最も高くなる前記エッジ基準値および前記抽出基準値の組み合わせが、画像の種類毎に抽出される。
【発明の効果】
【００２２】
本発明の第１の側面によれば、画像のボケ具合の検出に用いるエッジポイントを抽出することができる。特に、本発明の第１の側面によれば、適切にエッジポイントを抽出することができ、その結果、より高い精度で画像のボケ具合を検出することができる。
【００２３】
本発明の第２の側面によれば、画像のボケ具合の検出に用いるエッジ基準値および抽出基準値の組み合わせを抽出することができる。特に、本発明の第２の側面によれば、適切なエッジ基準値および抽出基準値の組み合わせを抽出することができ、その結果、より高い精度で画像のボケ具合を検出することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明を適用した画像処理装置の第１の実施の形態を示すブロック図である。
【図２】本発明の第１の実施の形態の画像処理装置により実行されるボケ度検出処理を説明するためのフローチャートである。
【図３】エッジマップの作成処理を説明するための図である。
【図４】ローカルマックスの作成処理を説明するための図である。
【図５】エッジの構造の例を示す図である。
【図６】エッジの構造の他の例を示す図である。
【図７】エッジの構造のさらに他の例を示す図である。
【図８】エッジの構造のさらに他の例を示す図である。
【図９】本発明を適用した画像処理装置の第２の実施の形態を示すブロック図である。
【図１０】本発明の第２の実施の形態の画像処理装置により実行されるボケ度検出処理を説明するためのフローチャートである。
【図１１】本発明を適用した画像処理装置の第３の実施の形態を示すブロック図である。
【図１２】本発明の第３の実施の形態の画像処理装置により実行されるボケ度検出処理を説明するためのフローチャートである。
【図１３】画像の白飛びによりボケ度の検出精度が低下する例を説明するための図である。
【図１４】画像の白飛びによりボケ度の検出精度が低下する例を説明するための図である。
【図１５】画像の白飛びによりボケ度の検出精度が低下する例を説明するための図である。
【図１６】画像の白飛びによりボケ度の検出精度が低下する例を説明するための図である。
【図１７】画像の白飛びによりボケ度の検出精度が低下する例を説明するための図である。
【図１８】画像の白飛びによりボケ度の検出精度が低下する例を説明するための図である。
【図１９】本発明を適用した画像処理装置の第４の実施の形態を示すブロック図である。
【図２０】本発明の第４の実施の形態の画像処理装置により実行されるボケ度検出処理を説明するためのフローチャートである。
【図２１】FLAGの設定方法について説明するための図である。
【図２２】本発明を適用した学習装置の一実施の形態を示すブロック図である。
【図２３】学習処理に用いられるパラメータの組み合わせの例を示す図である。
【図２４】学習装置により実行される学習処理を説明するためのフローチャートである。
【図２５】学習装置により実行される学習処理を説明するためのフローチャートである。
【図２６】学習装置により実行される学習処理を説明するためのフローチャートである。
【図２７】エッジ基準値および抽出基準値の各組み合わせに対して得られたhighSharp、highBlurのROC曲線の例を示す図である。
【図２８】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００２５】
以下、発明を実施するための最良の形態（以下、実施の形態と称する）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（ダイナミックレンジにより画像を分類し、ボケ度を検出する例）
２．第１の実施の形態の変形例
３．第２の実施の形態（ダイナミックレンジおよび画像のサイズにより画像を分類し、ボケ度を検出する例）
４．第２の実施の形態の変形例
５．第３の実施の形態（ダイナミックレンジおよび撮影場所により画像を分類し、ボケ度を検出する例）
６．第３の実施の形態の変形例
７．第４の実施の形態（白飛び対策を施してボケ度を検出する例）
８．第４の実施の形態の変形例
９．第５の実施の形態（ボケ度検出に用いるパラメータの学習処理）
１０．第５の実施の形態の変形例
【００２６】
＜１．第１の実施の形態＞
まず、図１乃至図８を参照して、本発明を適用した画像処理装置の第１の実施の形態について説明する。
【００２７】
［画像処理装置の機能の構成例］
図１は、本発明を適用した画像処理装置の第１の実施の形態としての、画像処理装置１の機能の構成例を示すブロック図である。
【００２８】
画像処理装置１は、入力された画像（以下、入力画像と称する）内のエッジポイントにおいてボケが発生しているか否かを分析し、分析結果に基づいて、入力画像のボケ具合を検出する。画像処理装置１は、エッジマップ作成部１１、ダイナミックレンジ検出部１２、演算パラメータ調整部１３、ローカルマックス作成部１４、エッジポイント抽出部１５、抽出量判定部１６、エッジ分析部１７、および、ボケ度検出部１８を含むように構成される。
【００２９】
エッジマップ作成部１１は、図２を参照して後述するように、スケール１乃至３の大きさが異なる３種類のブロック単位で入力画像のエッジの強度（以下、エッジ強度と称する）を検出し、検出したエッジ強度を画素値とするスケール１乃至３のエッジマップ（以下、エッジマップ１乃至３と称する）を作成する。エッジマップ作成部１１は、作成したエッジマップ１乃至３を、ダイナミックレンジ検出部１２およびローカルマックス作成部１４に供給する。
【００３０】
ダイナミックレンジ検出部１２は、図２を参照して後述するように、入力画像のエッジ強度の最大値と最小値の差であるダイナミックレンジを検出し、検出したダイナミックレンジを示す情報を演算パラメータ調整部１３に供給する。
【００３１】
演算パラメータ調整部１３は、図２を参照して後述するように、検出されたダイナミックレンジに基づいて、入力画像のボケ具合の検出に用いるエッジポイントの抽出量（以下、エッジポイント抽出量とも称する）が適切な値になるように、エッジポイントの抽出に用いる演算パラメータを調整する。演算パラメータは、エッジポイントであるか否かの判定に用いるエッジ基準値、および、エッジポイント抽出量が適切であるか否かの判定に用いる抽出基準値を含む。演算パラメータ調整部１３は、設定したエッジ基準値を示す情報をエッジポイント抽出部１５および抽出量判定部１６に供給し、設定した抽出基準値を示す情報を抽出量判定部１６に供給する。
【００３２】
ローカルマックス作成部１４は、図２を参照して後述するように、エッジマップ１乃至３をそれぞれ所定の大きさのブロックに分割し、各ブロックの画素値の最大値を抽出することにより、スケール１乃至３のローカルマックス（以下、ローカルマックス１乃至３と称する）を作成する。ローカルマックス作成部１４は、作成したローカルマックス１乃至３をエッジポイント抽出部１５およびエッジ分析部１７に供給する。
【００３３】
エッジポイント抽出部１５は、図２を参照して後述するように、エッジ基準値、および、ローカルマックス１乃至３に基づいて、入力画像からエッジポイントを抽出し、抽出したエッジポイントの情報を示すスケール１乃至３のエッジポイントテーブル（以下、エッジポイントテーブル１乃至３と称する）を作成し、抽出量判定部１６に供給する。
【００３４】
抽出量判定部１６は、図２を参照して後述するように、エッジポイントテーブル１乃至３および抽出基準値に基づいて、エッジポイント抽出量が適切であるか否かを判定する。
抽出量判定部１６は、エッジポイント抽出量が適切でないと判定した場合、エッジポイント抽出量が適切でないことを演算パラメータ調整部１３に通知し、エッジポイント抽出量が適切であると判定した場合、そのときのエッジ基準値およびエッジポイントテーブル１乃至３をエッジ分析部１７に供給する。
【００３５】
エッジ分析部１７は、図２を参照して後述するように、抽出されたエッジポイントの分析を行い、分析結果を示す情報をボケ度検出部１８に供給する。
【００３６】
ボケ度検出部１８は、図２を参照して後述するように、エッジポイントの分析結果に基づいて、入力画像のボケ具合を示す指標であるボケ度を検出する。ボケ度検出部１８は、検出したボケ度を示す情報を外部に出力する。
【００３７】
なお、以下、入力画像の画素値の範囲が、０（黒色、最も暗い）から２５５（白色、最も明るい）までである場合の例について説明する。
【００３８】
［動作説明］
次に、図２のフローチャートを参照して、画像処理装置１により実行されるボケ度検出処理について説明する。なお、この処理は、例えば、検出対象となる入力画像がエッジマップ作成部１１に入力されたとき開始される。
【００３９】
ステップＳ１において、エッジマップ作成部１１は、エッジマップを作成する。具体的には、エッジマップ作成部１１は、入力画像を２×２画素の大きさのブロックに分割し、以下の式（１）乃至（６）に基づいて、各ブロック内の画素間の画素値の差分の絶対値MTL_TR乃至MBL_BRを算出する。
【００４０】
【数１】
2010217954.tif 000003
【００４１】
なお、式（１）乃至（６）において、図３に示されるように、画素値ａはブロック内の左上の画素の画素値、画素値ｂはブロック内の右上の画素の画素値、画素値ｃはブロック内の左下の画素の画素値、および、画素値ｄはブロック内の右下の画素の画素値を示している。
【００４２】
次に、エッジマップ作成部１１は、以下の式（７）に基づいて、差分絶対値MTL_TR乃至MBL_BRの平均値MAveを算出する。
【００４３】
【数２】
2010217954.tif 000004
【００４４】
すなわち、平均値MAveは、ブロック内の上下、左右および斜め方向のエッジ強度の平均値を示している。
【００４５】
エッジマップ作成部１１は、算出した平均値MAveを対応するブロックと同じ順序に並べることにより、エッジマップ１を作成する。
【００４６】
さらに、エッジマップ作成部１１は、エッジマップ２およびエッジマップ３を作成するために、以下の式（８）に基づいて、スケール２および３の平均化画像を作成する。
【００４７】
【数３】
2010217954.tif 000005
【００４８】
なお、式（８）において、Pi(x,y)は、スケールｉの平均化画像の座標(x,y)の画素値を示し、Pi+1(x,y)は、スケールi+1の平均化画像の座標(x,y)の画素値を示している。なお、スケール１の平均化画像は入力画像とする。すなわち、スケール２の平均化画像は、入力画像を２×２画素の大きさのブロックに分割した各ブロックの画素値の平均値からなる画像であり、スケール３の平均化画像は、スケール２の平均化画像を２×２画素の大きさのブロックに分割した各ブロックの画素値の平均値からなる画像である。
【００４９】
エッジマップ作成部１１は、スケール２およびスケール３の平均化画像に対して、それぞれ式（１）乃至（７）を用いて入力画像に対して行ったのと同様の処理を行い、エッジマップ２およびエッジマップ３を作成する。
【００５０】
従って、エッジマップ１乃至３は、スケール１乃至３のそれぞれ異なる周波数帯域のエッジ成分を入力画像から抽出した画像となる。なお、エッジマップ１の画素数は入力画像の1/4（縦1/2×横1/2）となり、エッジマップ２の画素数は入力画像の1/16（縦1/4×横1/4）となり、エッジマップ３の画素数は入力画像の1/64（縦1/8×横1/8）となる。
【００５１】
エッジマップ作成部１１は、作成したエッジマップ１乃至３をダイナミックレンジ検出部１２およびローカルマックス作成部１４に供給する。
【００５２】
ステップＳ２において、ローカルマックス作成部１４は、ローカルマックスを作成する。具体的には、ローカルマックス作成部１４は、図４の左側に示されるように、エッジマップ１を２×２画素のブロックに分割し、各ブロックの最大値を抽出し、抽出した最大値を対応するブロックと同じ順序に並べることにより、ローカルマックス１を作成する。また、ローカルマックス作成部１４は、図４の中央に示されるように、エッジマップ２を４×４画素のブロックに分割し、各ブロックの最大値を抽出し、抽出した最大値を対応するブロックと同じ順序に並べることにより、ローカルマックス２を作成する。さらに、ローカルマックス作成部１４は、図４の右側に示されるように、エッジマップ３を８×８画素のブロックに分割し、各ブロックの最大値を抽出し、抽出した最大値を対応するブロックと同じ順序に並べることにより、ローカルマックス３を作成する。ローカルマックス作成部１４は、作成したローカルマックス１乃至３をエッジポイント抽出部１５およびエッジ分析部１７に供給する。
【００５３】
ステップＳ３において、ダイナミックレンジ検出部１２は、ダイナミックレンジを検出する。具体的には、ダイナミックレンジ検出部１２は、エッジマップ１乃至３の中から画素値の最大値と最小値を検出し、検出した画素値の最大値から最小値を引いた値、すなわち、入力画像のエッジ強度の最大値と最小値の差をダイナミックレンジとして検出する。ダイナミックレンジ検出部１２は、検出したダイナミックレンジを示す情報を演算パラメータ調整部１３に供給する。
【００５４】
なお、上述した方法以外にも、例えば、各エッジマップごとにダイナミックレンジを検出し、検出したダイナミックレンジの最大値や平均値などを実際に使用するダイナミックレンジとして採用することも考えられる。
【００５５】
ステップＳ４において、演算パラメータ調整部１３は、ダイナミックレンジが所定の閾値未満であるかを判定する。ダイナミックレンジが所定の閾値未満である、すなわち、ローダイナミックレンジであると判定された場合、処理はステップＳ４に進む。
【００５６】
ステップＳ５において、演算パラメータ調整部１３は、演算パラメータをローダイナミックレンジの画像用の初期値に設定する。すなわち、演算パラメータ調整部１３は、エッジ基準値および抽出基準値の初期値をローダイナミックレンジの画像用の値に設定する。なお、ローダイナミックレンジの画像用のエッジ基準値および抽出基準値の初期値は、図２２乃至図２７を参照して後述する学習処理により求められる。演算パラメータ調整部１３は、設定したエッジ基準値を示す情報をエッジポイント抽出部１５および抽出量判定部１６に供給し、設定した抽出基準値を示す情報を抽出量判定部１６に供給する。
【００５７】
ステップＳ６において、エッジポイント抽出部１５は、エッジポイントを抽出する。具体的には、エッジポイント抽出部１５は、入力画像において注目画素を１つ選択し、選択した注目画素の座標を(x,y)とした場合、以下の式（９）に基づいて、注目画素に対応するローカルマックス１の画素の座標(x1,y1)を求める。
【００５８】
(x1,y1)＝(x/4,y/4)  ・・・（９）
ただし、小数点以下は切り捨て。
【００５９】
すなわち、ローカルマックス１の１画素は、入力画像の４×４画素のブロックから生成されるため、入力画像の注目画素に対応するローカルマックス１の画素の座標は、注目画素のｘ座標およびｙ座標をそれぞれ1/4にした値となる。
【００６０】
同様に、エッジポイント抽出部１５は、以下の式（１０）および式（１１）に基づいて、注目画素に対応するローカルマックス２の画素の座標(x2,y2)、および、注目画素に対応するローカルマックス３の画素の座標(x3,y3)を求める。
【００６１】
(x2,y2)＝(x/16,y/16)  ・・・（１０）
(x3,y3)＝(x/64,y/64)  ・・・（１１）
ただし、小数点以下は切り捨て。
【００６２】
エッジポイント抽出部１５は、ローカルマックス１の座標(x1,y1)の画素値がエッジ基準値以上である場合、注目画素をローカルマックス１におけるエッジポイントとして抽出し、注目画素の座標(x,y)とローカルマックス１の座標(x1,y1)の画素値を対応づけて記憶する。同様に、エッジポイント抽出部１５は、ローカルマックス２の座標(x2,y2)の画素値がエッジ基準値以上である場合、注目画素をローカルマックス２におけるエッジポイントとして抽出し、注目画素の座標(x,y)とローカルマックス２の座標(x2,y2)の画素値を対応づけて記憶し、ローカルマックス３の座標(x3,y3)の画素値がエッジ基準値以上である場合、注目画素をローカルマックス３におけるエッジポイントとして抽出し、注目画素の座標(x,y)とローカルマックス３の座標(x3,y3)の画素値を対応づけて記憶する。
【００６３】
エッジポイント抽出部１５は、入力画像の全ての画素が注目画素となるまで以上の処理を繰り返し、ローカルマックス１に基づいて、入力画像の４×４画素のブロックのうちエッジ強度がエッジ基準値以上となるブロックに含まれる画素をエッジポイントとして抽出し、ローカルマックス２に基づいて、入力画像の１６×１６画素のブロックのうちブロック内のエッジ強度がエッジ基準値以上となるブロックに含まれる画素をエッジポイントとして抽出し、ローカルマックス３に基づいて、入力画像の６４×６４画素のブロックのうちブロック内のエッジ強度がエッジ基準値以上となるブロックに含まれる画素をエッジポイントとして抽出する。従って、エッジ強度がエッジ基準値以上となる入力画像の４×４画素、１６×１６画素、または、６４×６４画素のブロックの少なくとも１つに含まれる画素がエッジポイントとして抽出される。
【００６４】
エッジポイント抽出部１５は、ローカルマックス１に基づいて抽出したエッジポイントの座標(x,y)とそのエッジポイントに対応するローカルマックス１の画素の画素値とが対応づけられたテーブルであるエッジポイントテーブル１、ローカルマックス２に基づいて抽出したエッジポイントの座標(x,y)とそのエッジポイントに対応するローカルマックス２の画素の画素値とが対応づけられたテーブルであるエッジポイントテーブル２、および、ローカルマックス３に基づいて抽出したエッジポイントの座標(x,y)とそのエッジポイントに対応するローカルマックス３の画素の画素値とが対応づけられたテーブルであるエッジポイントテーブル３を作成し、抽出量判定部１６に供給する。
【００６５】
ステップＳ７において、抽出量判定部１６は、エッジポイント抽出量が適切であるかを判定する。抽出量判定部１６は、抽出されたエッジポイントの合計数、すなわち、エッジポイントテーブル１乃至３のデータ数の合計を抽出基準値と比較し、抽出基準値未満である場合、エッジポイント抽出量が適切でないと判定し、処理はステップＳ８に進む。
【００６６】
ステップＳ８において、演算パラメータ調整部１３は、演算パラメータを調整する。具体的には、抽出量判定部１６は、エッジポイント抽出量が適切でないことを演算パラメータ調整部１３に通知する。演算パラメータ調整部１３は、いまより多くのエッジポイントが抽出されるように、エッジ基準値を所定の値だけ小さくする。演算パラメータ調整部１３は、調整したエッジ基準値を示す情報をエッジポイント抽出部１５および抽出量判定部１６に供給する。
【００６７】
その後、処理はステップＳ６に戻り、ステップＳ７において、エッジポイント抽出量が適切であると判定されるまで、ステップＳ６乃至Ｓ８の処理が繰り返し実行される。すなわち、エッジポイント抽出量が適切な値になるまで、エッジ基準値を調整しながら、エッジポイントを抽出し、エッジポイントテーブル１乃至３を作成する処理が繰り返される。
【００６８】
一方、ステップＳ７において、抽出量判定部１６は、抽出されたエッジポイントの合計数が抽出基準値以上である場合、エッジポイント抽出量が適切であると判定し、処理はステップＳ１３に進む。
【００６９】
また、ステップＳ４において、ダイナミックレンジが所定の閾値以上である、すなわち、ハイダイナミックレンジであると判定された場合、処理はステップＳ９に進む。
【００７０】
ステップＳ９において、演算パラメータ調整部１３は、演算パラメータをハイダイナミックレンジの画像用の初期値に設定する。すなわち、演算パラメータ調整部１３は、エッジ基準値および抽出基準値の初期値をハイダイナミックレンジの画像用の値に設定する。なお、ハイダイナミックレンジの画像用のエッジ基準値および抽出基準値の初期値は、図２２乃至図２７を参照して後述する学習処理により求められる。演算パラメータ調整部１３は、設定したエッジ基準値を示す情報をエッジポイント抽出部１５および抽出量判定部１６に供給し、設定した抽出基準値を示す情報を抽出量判定部１６に供給する。
【００７１】
ステップＳ１０において、ステップＳ６の処理と同様に、エッジポイントテーブル１乃至３が作成され、作成されたエッジポイントテーブル１乃至３が抽出量判定部１６に供給される。
【００７２】
ステップＳ１１において、ステップＳ７の処理と同様に、エッジポイント抽出量が適切であるかが判定され、エッジポイント抽出量が適切でないと判定された場合、処理はステップＳ１２に進む。
【００７３】
ステップＳ１２において、ステップＳ８の処理と同様に、演算パラメータが調整され、その後、処理はステップＳ１０に戻り、ステップＳ１１において、エッジポイント抽出量が適切であると判定されるまで、ステップＳ１０乃至Ｓ１２の処理が繰り返し実行される。
【００７４】
一方、ステップＳ１１において、エッジポイント抽出量が適切であると判定された場合、処理はステップＳ１３に進む。
【００７５】
なお、以上の処理により、ボケ度の検出精度を向上させるために、ローダイナミックレンジの入力画像については、入力画像のボケ度の検出精度を一定のレベル以上とするのに十分な量のエッジポイントを確保できるよう、エッジ強度の弱いブロックからもエッジポイントが抽出され、ハイダイナミックレンジの入力画像については、より強いエッジを構成するエッジポイントが抽出されるように、できるだけエッジ強度の強いブロックからエッジポイントが抽出されるようになる。
【００７６】
ステップＳ１３において、エッジ分析部１７は、エッジ分析を行う。具体的には、抽出量判定部１６は、エッジポイント抽出量が適切であると判定した時点のエッジ基準値、および、エッジポイントテーブル１乃至３をエッジ分析部１７に供給する。
【００７７】
エッジ分析部１７は、エッジポイントテーブル１乃至３に基づいて、入力画像から抽出されたエッジポイントのうちの１つを注目画素に選択する。エッジ分析部１７は、選択した注目画素の座標を(x,y)とした場合、上述した式（９）乃至（１１）に基づいて、注目画素に対応するローカルマックス１乃至３の画素の座標(x1,y1)乃至座標(x3,y3)を求める。エッジ分析部１７は、ローカルマックス１の座標(x1,y1)の画素を左上隅の画素とするm×m画素（例えば、４×４画素）のブロック内の画素値の最大値をLocal Max1(x1,y1)に設定し、ローカルマックス２の座標(x2,y2)の画素を左上隅の画素とするn×n画素（例えば、２×２画素）のブロック内の画素値の最大値をLocal Max2(x2,y2)に設定し、ローカルマックス３の座標(x3,y3)の画素値をLocal Max3(x3,y3)に設定する。
【００７８】
なお、Local Max1(x1,y1)の設定に用いるm×m、および、Local Max2(x2,y2)の設定に用いるn×nのパラメータは、ローカルマックス１乃至３の１画素に対応する入力画像のブロックの大きさの差を調整するためのパラメータである。
【００７９】
エッジ分析部１７は、Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が以下の条件式（１２）を満足するか否かを判定する。Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式（１２）を満足する場合、エッジ分析部１７は、変数Nedgeの値を１つインクリメントする。
【００８０】
【数４】
2010217954.tif 000006
【００８１】
なお、条件式（１２）を満足するエッジポイントは、図５に示される急峻なインパルス状のエッジ、図５のエッジよりは傾きが緩やかな図６に示されるパルス状のエッジ、図７に示される傾きがほぼ垂直な階段状のエッジ、および、図７のエッジよりは傾きが緩やかな図８に示される階段状のエッジなど、その構造に関わらず、一定以上の強度を有するエッジを構成するエッジポイントであると推定される。
【００８２】
また、エッジ分析部１７は、Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式（１２）を満足する場合、さらに、以下の条件式（１３）または条件式（１４）を満足するか否かを判定する。Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式（１３）または条件式（１４）を満足する場合、エッジ分析部１７は、変数Nsmallblurの値を１つインクリメントする。
【００８３】
【数５】
2010217954.tif 000007
【００８４】
なお、条件式（１２）を満足し、かつ、条件式（１３）または条件式（１４）を満足するエッジポイントは、一定以上の強度を有するが、図５または図７のエッジと比較して強度の弱い図６または図８の構造を有するエッジを構成するエッジポイントであると推定される。
【００８５】
さらに、エッジ分析部１７は、Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式（１２）を満足し、かつ、条件式（１３）または条件式（１４）を満足する場合、Local Max1(x1,y1)が、以下の条件式（１５）を満足するか否かを判定する。Local Max1(x1,y1)が条件式（１５）を満足する場合、エッジ分析部１７は、変数Nlargelblurの値を１つインクリメントする。
【００８６】
【数６】
2010217954.tif 000008
【００８７】
なお、条件式（１２）を満足し、かつ、条件式（１３）または条件式（１４）を満足し、かつ、条件式（１５）を満足するエッジポイントは、一定以上の強度の図６または図８の構造を有するエッジのうち、ボケが発生し鮮明さを失ったエッジを構成するエッジポイントであると推定される。換言すれば、そのエッジポイントにおいてボケが発生していると推定される。
【００８８】
エッジ分析部１７は、入力画像から抽出された全てのエッジポイントが注目画素となるまで、以上の処理を繰り返す。これにより、抽出されたエッジポイントのうち、条件式（１３）を満足するエッジポイントの数Nedge、条件式（１２）を満足し、かつ、条件式（１３）または条件式（１４）を満足するエッジポイントの数Nsmallblur、条件式（１２）を満足し、かつ、条件式（１３）または条件式（１４）を満足し、かつ、条件式（１５）を満足するエッジポイントの数Nlargelblurが求められる。エッジ分析部１７は、算出したNsmallblurおよびNlargelblurを示す情報をボケ度検出部１８に供給する。
【００８９】
ステップＳ１４において、ボケ度検出部１８は、以下の式（１６）に基づいて、入力画像のボケ具合の指標となるボケ度BlurEstimationを検出する。
【００９０】
【数７】
2010217954.tif 000009
【００９１】
すなわち、ボケ度BlurEstimationは、一定以上の強度の図６または図８の構造を有するエッジを構成すると推定されるエッジポイントのうち、ボケが発生しているエッジを構成すると推定されるエッジポイントが占める比率である。従って、ボケ度BlurEstimationが大きいほど、入力画像のボケ具合は大きく、ボケ度BlurEstimationが小さいほど、入力画像のボケ具合は小さいと推定される。
【００９２】
ボケ度検出部１８は、検出したボケ度BlurEstimationを外部に出力し、ボケ度検出処理は終了する。例えば、外部の装置は、ボケ度BlurEstimationを所定の閾値と比較することにより、入力画像がぼけているか否かを判定する。
【００９３】
なお、ステップＳ１３およびＳ１４の処理の詳細については、上述した非特許文献１に記載されている。
【００９４】
以上のようにして、入力画像に応じて、エッジポイントを抽出する条件、および、エッジポイントの抽出量が適切に制御されるので、より高い精度で入力画像のボケ具合を検出することができる。
【００９５】
また、ウェーブレット変換などの複雑な演算を行わずに、エッジ強度を検出するので、非特許文献１に記載の発明と比較して、エッジ強度の検出に要する時間を短縮することができる。
【００９６】
＜２．第１の実施の形態の変形例＞
なお、以上の説明では、エッジマップを作成する場合に、ブロック内の上下、左右および斜めの３方向のエッジ強度の平均値を求める例を示したが、例えば、１方向または２方向のエッジ強度の平均値を求めるようにしてもよい。
【００９７】
また、以上の説明では、入力画像をローダイナミックレンジとハイダイナミックレンジの２種類に分類して処理を行う例を示したが、ダイナミックレンジの範囲により３種類以上に分類して処理を行うようにしてもよい。これにより、より高い精度で入力画像のボケ具合を検出できるようになる。
【００９８】
さらに、以上の説明では、抽出されたエッジポイントの量が少なすぎる場合に、より多くのエッジポイントが抽出されるように、エッジ基準値を小さくする例を示したが、さらに、抽出されたエッジポイントの量が多すぎる場合に、抽出されるエッジポイントの量を減らすように、エッジ基準値を大きくするようにしてもよい。すなわち、エッジポイントの抽出量が適切な量になる方向にエッジ基準値を調整するようにしてもよい。
【００９９】
また、例えば、ローダイナミックレンジの入力画像であると判定した場合に、抽出されたエッジポイントの量が多すぎるとき、ハイダイナミックレンジの入力画像として処理するようにしてもよい。
【０１００】
また、上述したエッジマップおよびローカルマックスを作成する場合のブロックのサイズは、その一例であり、上述したサイズと異なるサイズに設定することも可能である。
【０１０１】
＜３．第２の実施の形態＞
次に、図９および図１０を参照して、本発明を適用した画像処理装置の第２の実施の形態について説明する。なお、画像処理装置の第２の実施の形態では、入力画像のダイナミックレンジに加えて、入力画像の画像サイズも考慮して、エッジ基準値および抽出基準値の初期値の設定が行われる。
【０１０２】
［画像処理装置の機能の構成例］
図９は、本発明を適用した画像処理装置の第２の実施の形態としての、画像処理装置１０１の機能の構成例を示すブロック図である。
【０１０３】
画像処理装置１０１は、エッジマップ作成部１１１、ダイナミックレンジ検出部１１２、演算パラメータ調整部１１３、ローカルマックス作成部１１４、エッジポイント抽出部１１５、抽出量判定部１１６、エッジ分析部１１７、ボケ度検出部１１８、および、画像サイズ検出部１１９を含むように構成される。なお、図中、図１と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０１０４】
画像サイズ検出部１１９は、入力画像の画像サイズ（画素数）を検出し、検出した入力画像の画像サイズを示す情報を演算パラメータ調整部１１３に供給する。
【０１０５】
演算パラメータ調整部１１３は、図１０を参照して後述するように、検出された入力画像の画像サイズおよびダイナミックレンジに基づいて、エッジ基準値および抽出基準値を含む演算パラメータを調整する。演算パラメータ調整部１１３は、設定したエッジ基準値を示す情報をエッジポイント抽出部１１５および抽出量判定部１１６に供給し、設定した抽出基準値を示す情報を抽出量判定部１１６に供給する。
【０１０６】
［動作説明］
次に、図１０のフローチャートを参照して、画像処理装置１０１により実行されるボケ度検出処理について説明する。なお、この処理は、例えば、検出対象となる入力画像がエッジマップ作成部１１１および画像サイズ検出部１１９に入力されたとき開始される。
【０１０７】
ステップＳ１０１乃至Ｓ１０３の処理は、図２のステップＳ１乃至Ｓ３の処理と同様であり、その説明は繰り返しになるので省略する。なお、これらの処理により、入力画像のエッジマップおよびローカルマックスが作成され、入力画像のダイナミックレンジが検出される。
【０１０８】
ステップＳ１０４において、画像サイズ検出部１１９は、画像サイズを検出する。例えば、画像サイズ検出部１１９は、入力画像の縦方向および横方向の画素数を画像サイズとして検出する。画像サイズ検出部１１９は、検出した画像サイズを示す情報を演算パラメータ調整部１１３に供給する。
【０１０９】
ステップＳ１０５において、演算パラメータ調整部１１３は、画像サイズが所定の閾値以上であるかを判定する。演算パラメータ調整部１１３は、入力画像の画素数が所定の閾値未満（例えば、256×256画素）である場合、画像サイズが所定の閾値以上でないと判定し、処理はステップＳ１０６に進む。
【０１１０】
ステップＳ１０６乃至Ｓ１１４の処理は、図２のステップＳ４乃至Ｓ１２の処理と同様であり、その説明は繰り返しになるので省略する。なお、これらの処理により、エッジ基準値および抽出基準値を調整しながら、画像サイズが所定の閾値未満の入力画像からエッジポイントが抽出される。その後、処理はステップＳ１２４に進む。
【０１１１】
一方、ステップＳ１０５において、画像サイズが所定の閾値以上であると判定された場合、処理はステップＳ１１５に進む。
【０１１２】
ステップＳ１１５乃至Ｓ１２３の処理は、図２のステップＳ４乃至Ｓ１２の処理と同様であり、その説明は繰り返しになるので省略する。なお、これらの処理により、エッジ基準値および抽出基準値を調整しながら、画像サイズが所定の閾値以上の入力画像からエッジポイントが抽出される。その後、処理はステップＳ１２４に進む。
【０１１３】
なお、ステップＳ１０７、Ｓ１１１、Ｓ１１６およびＳ１２０において設定されるエッジ基準値および抽出基準値の初期値は、入力画像の画像サイズおよびダイナミックレンジに基づいて、４種類のエッジ基準値および抽出基準値の初期値の組み合わせの中から１つが選択され、設定される。
【０１１４】
例えば、画像サイズが大きいほど、抽出基準値の初期値がより大きい値に設定される。従って、同じローダイナミックレンジの画像の場合、画像サイズが所定の閾値未満のとき、画像サイズが所定の閾値以上のときと比べて、抽出基準値の初期値が小さな値に設定される。ハイダイナミックレンジの画像の場合も同様である。
【０１１５】
これは、同じダイナミックレンジの画像の場合、画像サイズが小さいほど、画像内のエッジが少なく、抽出されるエッジポイントの量が少なくなると推定される。従って、画像サイズが小さい画像に対して、画像サイズが大きい画像と同様の数だけエッジポイントを抽出しようとした場合、エッジポイントの抽出精度が低下する恐れがある。それを避けるために、画像サイズが所定の閾値未満のとき、画像サイズが所定の閾値以上のときと比べて、抽出基準値の初期値が小さい値に設定される。
【０１１６】
ステップＳ１２４およびＳ１２５の処理は、図２のステップＳ１３およびＳ１４の処理と同様であり、その説明は繰り返しになるので省略する。なお、この処理により、入力画像の各画素のエッジ分析が行われ、エッジ分析の結果に基づいて、入力画像のボケ度BlurEstimationが検出される。その後、ボケ検出処理は終了する。
【０１１７】
以上のようにして、入力画像のダイナミックレンジだけでなく、画像サイズも考慮して、エッジ基準値および抽出基準値の初期値が設定されるので、より高い精度で入力画像のボケ具合を検出することができる。
【０１１８】
＜４．第２の実施の形態の変形例＞
なお、以上の説明では、入力画像の画像サイズを２種類に分類して処理を行う例を示したが、３種類以上に分類して、抽出基準値の初期値を設定するようにしてもよい。
【０１１９】
また、入力画像の画像サイズに応じて、エッジ基準値の初期値を変更するようにしてもよい。
【０１２０】
さらに、入力画像の画像サイズに応じて、入力画像のダイナミックレンジの分類に用いる閾値を変更するようにしてもよい。
【０１２１】
また、以上の説明では、入力画像の画像サイズを分類してから、入力画像のダイナミックレンジを分類する例を示したが、処理の順序を逆にすることも可能である。
【０１２２】
＜５．第３の実施の形態＞
次に、図１１および図１２を参照して、本発明を適用した画像処理装置の第３の実施の形態について説明する。なお、画像処理装置の第２の実施の形態では、入力画像のダイナミックレンジに加えて、入力画像の撮影シーンも考慮して、エッジ基準値および抽出基準値の初期値の設定が行われる。
【０１２３】
［画像処理装置の機能の構成例］
図１１は、本発明を適用した画像処理装置の第３の実施の形態としての、画像処理装置２０１の機能の構成例を示すブロック図である。
【０１２４】
画像処理装置２０１は、エッジマップ作成部２１１、ダイナミックレンジ検出部２１２、演算パラメータ調整部２１３、ローカルマックス作成部２１４、エッジポイント抽出部２１５、抽出量判定部２１６、エッジ分析部２１７、ボケ度検出部２１８、および、シーン認識部２１９を含むように構成される。なお、図中、図１と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０１２５】
シーン認識部２１９は、所定のシーン認識手法を用いて、入力画像の撮影シーンを認識する。例えば、シーン認識部２１９は、入力画像が室内または屋外のどちらで撮影されたかを認識する。シーン認識部２１９は、認識結果を示す情報を演算パラメータ調整部２１３に供給する。
【０１２６】
演算パラメータ調整部２１３は、図１２を参照して後述するように、検出された入力画像の撮影シーンおよびダイナミックレンジに基づいて、エッジ基準値および抽出基準値を含む演算パラメータを調整する。演算パラメータ調整部２１３は、設定したエッジ基準値を示す情報をエッジポイント抽出部２１５および抽出量判定部２１６に供給し、設定した抽出基準値を示す情報を抽出量判定部２１６に供給する。
【０１２７】
［動作説明］
次に、図１２のフローチャートを参照して、画像処理装置２０１により実行されるボケ度検出処理について説明する。なお、この処理は、例えば、検出対象となる入力画像がエッジマップ作成部２１１およびシーン認識部２１９に入力されたとき開始される。
【０１２８】
ステップＳ２０１乃至Ｓ２０３の処理は、図２のステップＳ１乃至Ｓ３の処理と同様であり、その説明は繰り返しになるので省略する。なお、これらの処理により、入力画像のエッジマップおよびローカルマックスが作成され、入力画像のダイナミックレンジが検出される。
【０１２９】
ステップＳ２０４において、シーン認識部２１９は、シーン認識を行う。具体的には、シーン認識部２１９は、所定のシーン認識手法を用いて、入力画像が室内または屋外のどちらで撮影されたかを認識する。シーン認識部２１９は、認識結果を示す情報を演算パラメータ調整部２１３に供給する。
【０１３０】
ステップＳ２０５において、演算パラメータ調整部２１３は、シーン認識の結果に基づいて、撮影場所が室内であるか、あるいは、屋外であるかを判定する。撮影場所が室内であると判定された場合、処理はステップＳ２０６に進む。
【０１３１】
ステップＳ２０６乃至Ｓ２１４の処理は、図２のステップＳ４乃至Ｓ１２の処理と同様であり、その説明は繰り返しになるので省略する。なお、これらの処理により、エッジ基準値および抽出基準値を調整しながら、画像サイズが所定の閾値未満の入力画像からエッジポイントが抽出される。その後、処理はステップＳ２２４に進む。
【０１３２】
一方、ステップＳ２０５において、撮影場所が屋外であると判定された場合、処理はステップＳ２１５に進む。
【０１３３】
ステップＳ２１５乃至Ｓ２２３の処理は、図２のステップＳ４乃至Ｓ１２の処理と同様であり、その説明は繰り返しになるので省略する。なお、これらの処理により、エッジ基準値および抽出基準値を調整しながら、画像サイズが所定の閾値以上の入力画像からエッジポイントが抽出される。その後、処理はステップＳ２２４に進む。
【０１３４】
なお、ステップＳ２０７、Ｓ２１１、Ｓ２１６およびＳ２２０において設定されるエッジ基準値および抽出基準値の初期値は、入力画像の撮影場所およびダイナミックレンジに基づいて、４種類のエッジ基準値および抽出基準値の初期値の組み合わせの中から１つが選択され、設定される。
【０１３５】
ステップＳ２２４およびＳ２２５の処理は、図２のステップＳ１３およびＳ１４の処理と同様であり、その説明は繰り返しになるので省略する。なお、この処理により、入力画像の各画素のエッジ分析が行われ、エッジ分析の結果に基づいて、入力画像のボケ度BlurEstimationが検出される。その後、ボケ検出処理は終了する。
【０１３６】
以上のようにして、入力画像のダイナミックレンジだけでなく、撮影場所も考慮して、エッジ基準値および抽出基準値の初期値が設定されるので、より高い精度で入力画像のボケ具合を検出することができる。
【０１３７】
＜６．第３の実施の形態の変形例＞
なお、以上の説明では、入力画像の撮影場所を２種類に分類して処理を行う例を示したが、撮影場所を３種類以上に分類して、演算パラメータの初期値を設定するようにしてもよい。
【０１３８】
また、撮影場所以外の他の撮影シーンのパラメータを用いて入力画像を分類するようにしてもよい。例えば、撮影時間（例えば、昼間か夜間か）、天候（例えば、晴れ、曇り、雨、雪）などにより入力画像を分類して、演算パラメータの初期値を設定するようにしてもよい。さらに、複数の撮影シーンのパラメータを組み合わせて、入力画像を分類して、演算パラメータの初期値を設定するようにしてもよい。
【０１３９】
さらに、入力画像の画像サイズと撮影シーンを含み合わせて、入力画像を分類して、演算パラメータの初期値を設定するようにしてもよい。
【０１４０】
また、入力画像の撮影シーンに応じて、入力画像のダイナミックレンジの分類に用いる閾値を変更するようにしてもよい。
【０１４１】
さらに、以上の説明では、撮影シーンを分類してから、入力画像のダイナミックレンジを分類する例を示したが、処理の順序を逆にすることも可能である。
【０１４２】
＜７．第４の実施の形態＞
次に、図１３乃至図２１を参照して、本発明を適用した画像処理装置の第４の実施の形態について説明する。なお、画像処理装置の第４の実施の形態では、入力画像に白飛びが発生している場合のボケ具合の検出精度を向上させる対策が施される。
【０１４３】
［入力画像に白飛びが発生している場合の問題点］
入力画像に白飛びが発生している場合、白飛びが発生している部分においては、ボケが発生していないにも関わらず、画素値の変化が実際の被写体の輝度の変化より小さくなる。そのため、ボケ度BlurEstimationの検出精度が低下する場合がある。これについて、図１３乃至図１８を参照して、具体的に説明する。
【０１４４】
図１３は、蛍光灯を撮影した場合の入力画像の例を示している。図１３の入力画像では、蛍光灯およびその周辺において白飛びが発生している。すなわち、蛍光灯が明るすぎて、蛍光灯およびその周辺の画素値が最大値または最大値に近い値となり、実際の被写体の輝度の変化に対して、画素値の変化が小さくなっている。
【０１４５】
図１４は、図１３の入力画像の枠Ｆ１で囲まれる部分、すなわち、蛍光灯のエッジ付近を拡大した図であり、図１５は、図１４の拡大図の画素値の分布を示している。なお、図１５において斜線で示される部分は、画素値が２５０以上の画素を示している。
【０１４６】
以下、図１５の枠Ｆ２で囲まれる部分（以下、画像Ｆ２と称する）に注目して説明する。
【０１４７】
図１６の下の図は、画像Ｆ２に対応するエッジマップ１の画素値の分布を示している。また、図１７のまん中の図は、画像Ｆ２に対応するスケール２の平均化画像の画素値の分布を示し、いちばん下の図は、画像Ｆ２に対応するエッジマップ２の画素値の分布を示している。
【０１４８】
スケール２の平均化画像では、白飛びが発生している部分と発生していない部分の境界付近において、白飛びを含む部分の画素値が大きくなり、含まない部分の画素値が小さくなる傾向が見られる。そのため、白飛びが発生している部分と発生していない部分の境界付近において、エッジマップ２の画素値が大きくなる傾向が見られる。従って、入力画像の同じ部分に対応するエッジマップ１とエッジマップ２とを比較した場合、エッジマップ２の画素値の方がエッジマップ１の画素値より大きくなるケースが増加する。例えば、画像Ｆ２に対応するエッジマップ１とエッジマップ２とを比較した場合、図１８の太枠で示される部分のように、エッジマップ２の画素値の方がエッジマップ１の画素値より大きくなる。なお、図１８の太枠で示される画素は、エッジマップ１の２×２画素のブロック内で画素値が最大となり、ローカルマックス１の画素として抽出される画素、および、エッジマップ２の４×４画素のブロック内（ただし、図中２×２画素の範囲しか示していない）で画素値が最大となり、ローカルマックス２の画素として抽出される画素を示している。
【０１４９】
従って、白飛びが発生している入力画像では、上述した条件式（１３）または条件式（１４）が満足され、変数Nlargelblurの値が大きくなる傾向が見られる。その結果、上述した式（１６）の分母の値が大きくなり、ボケ度BlurEstimationの値が実際より小さくなり、ボケ画像をボケ画像でないと誤判定する割合が高くなる。
【０１５０】
後述するように、画像処理装置の第４の実施の形態では、以上を考慮して、入力画像に白飛びが発生している場合のボケ度BlurEstimationの検出精度を向上させる対策が施される。
【０１５１】
［画像処理装置の機能の構成例］
図１３は、本発明を適用した画像処理装置の第４の実施の形態としての、画像処理装置３０１の機能の構成例を示すブロック図である。
【０１５２】
画像処理装置３０１は、エッジマップ作成部３１１、ダイナミックレンジ検出部３１２、演算パラメータ調整部３１３、ローカルマックス作成部３１４、エッジポイント抽出部３１５、抽出量判定部３１６、エッジ分析部３１７、ボケ度検出部３１８、および、画像サイズ検出部３１９を含むように構成される。なお、図中、図９と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０１５３】
エッジマップ作成部３１１は、図１のエッジマップ作成部１１、図９のエッジマップ作成部１１１、および、図１１のエッジマップ作成部２１１と比較して、エッジマップ２の作成方法が異なる。なお、この点については、図２０および図２１を参照して後述する。
【０１５４】
エッジポイント抽出部３１５は、図１のエッジポイント抽出部１５、図９のエッジポイント抽出部１１５、および、図１１のエッジポイント抽出部２１５と比較して、エッジポイントの抽出方法が異なる。なお、この点については、図２０および図２１を参照して後述する。
【０１５５】
［動作説明］
次に、図２０のフローチャートを参照して、画像処理装置３０１により実行されるボケ度検出処理について説明する。なお、この処理は、例えば、検出対象となる入力画像がエッジマップ作成部３１１および画像サイズ検出部３１９に入力されたとき開始される。
【０１５６】
ステップＳ３０１において、エッジマップ作成部３１１は、エッジマップを作成する。なお、上述したように、エッジマップ作成部３１１は、図１のエッジマップ作成部１１、図９のエッジマップ作成部１１１、および、図１１のエッジマップ作成部２１１と比較して、エッジマップ２の作成方法が異なる。
【０１５７】
具体的には、エッジマップ作成部３１１は、画素値が所定の閾値THw以上（例えば、２４０）の画素を含むスケール２の平均化画像のブロックに対応するエッジマップ２の画素値を、所定の値FLAGに設定する。例えば、上述した画像Ｆ２について考えた場合、図２１に示されるように、スケール２の平均化画像において画素値が２４０を超えている画素を含むブロックＢ１およびブロックＢ２に対応するエッジマップ２の画素の画素値が、値FLAGに設定される。
【０１５８】
なお、画素値が所定の閾値THw以上の画素を含まないスケール２の平均化画像のブロックに対応するエッジマップ２の画素値の算出方法は、上述した方法と同様である。また、画素値が閾値THw以上の画素を含まないブロックに対応するエッジマップ２の画素値は、必ず閾値THw未満となるため、値FLAGは、閾値THw以上の値であればよく、例えば、２５５に設定される。これにより、エッジマップ２において、値FLAGが設定されている画素と他の画素とを区別することができる。
【０１５９】
なお、エッジマップ１およびエッジマップ３の作成方法については、上述した方法と同様であり、その説明は繰り返しになるので省略する。
【０１６０】
エッジマップ作成部３１１は、作成したエッジマップ１乃至３をダイナミックレンジ検出部３１２およびローカルマックス作成部３１４に供給する。
【０１６１】
ステップＳ３０２において、ローカルマックス作成部３１４は、図２のステップＳ２と同様の処理により、ローカルマックス１乃至３を作成し、作成したローカルマックス１乃至３をエッジポイント抽出部３１５およびエッジ分析部３１７に供給する。
【０１６２】
このとき、上述したように、ローカルマックス２は、エッジマップ２を４×４画素のブロックに分割し、各ブロックの最大値を抽出し、抽出した最大値を対応するブロックと同じ順序に並べることにより作成される。従って、エッジマップ２において値FLAGが設定されている画素を含むブロックに対応するローカルマックス２の画素の画素値は、必ず値FLAGに設定される。すなわち、エッジマップ２からローカルマックス２に値FLAGが引き継がれる。
【０１６３】
なお、ローカルマックス１およびローカルマックス３については、図２のステップＳ２において作成されるローカルマックス１およびローカルマックス３と同様である。
【０１６４】
ステップＳ３０３乃至ステップＳ３２５の処理は、ステップＳ３０８、Ｓ３１２、Ｓ３１７およびＳ３２１の処理を除いて、上述した図１０のステップＳ１０３乃至Ｓ１２５の処理と同様であり、その説明は繰り返しになるので省略する。
【０１６５】
ステップＳ３０８において、エッジポイント抽出部３１５は、図２のステップＳ６と同様の処理により、エッジポイントを抽出する。ただし、エッジポイント抽出部３１５は、選択した注目画素に対応するローカルマックス２の画素値が値FLAGに設定されている場合、その注目画素がローカルマックス１またはローカルマックス３に基づいてエッジポイントとして抽出されていても、エッジポイントから除外する。これにより、ローカルマックス１乃至ローカルマックス３のいずれかにおいて画素値がエッジ基準値以上となるブロックに含まれ、かつ、スケール２の平均化画像において画素値がTHw未満であるブロックに含まれる入力画像の画素が、エッジポイントとして抽出される。
【０１６６】
ステップＳ３１２、Ｓ３１７およびＳ３２１においても、ステップＳ３０８の処理と同様に、エッジポイントが抽出される。
【０１６７】
従って、入力画像において画素値が所定の値以上となる白飛びが発生している部分に含まれる画素が、エッジポイントとして抽出されなくなる。換言すれば、エッジ強度がエッジ基準値以上、かつ、入力画像において画素値が所定の値未満となるブロックに含まれる画素が、エッジポイントとして抽出される。その結果、入力画像の白飛びが、ボケ度の検出結果に影響を与えることが防止され、より高い精度で入力画像のボケ具合を検出することができる。
【０１６８】
＜８．第４の実施の形態の変形例＞
なお、以上の説明では、画像処理装置の第２の実施の形態に対して、白飛び対策を適用する例を示したが、第１の実施の形態および第３の実施の形態に、白飛び対策を適用することも可能である。
【０１６９】
また、黒つぶれが発生している画素をエッジポイントから除去するようにしてもよい。これは、例えば、画素値が閾値THb以下（例えば、20以下）の画素を含むスケール２の平均化画像のブロックに対応するエッジマップ２の画素の画素値を、値FLAGを設定することにより実現される。
【０１７０】
さらに、白飛びまたは黒つぶれのいずれかが発生している画素をエッジポイントから除去するようにしてもよい。これは、例えば、画素値が閾値THb以下または閾値THw以上の画素を含むスケール２の平均化画像のブロックに対応するエッジマップ２の画素の画素値を、値FLAGを設定することにより実現される。
【０１７１】
また、エッジマップ２ではなく、エッジマップ１において、画素値を値FLAGに設定する処理を行うようにしてもよい。具体的には、画素値が閾値THw以上の画素を含む入力画像のブロックに対応するエッジマップ１の画素値を、値FLAGに設定するようにしてもよい。この場合、エッジマップ２に対して処理を行う場合と比較して、白飛びが発生している画素をより正確にエッジポイントから除去することができ、ボケ度BlurEstimationの検出精度が向上する一方、処理時間は遅くなる。
【０１７２】
さらに、エッジマップ２ではなく、エッジマップ３において、画素値を値FLAGに設定する処理を行うようにしてもよい。具体的には、画素値が閾値THw以上の画素を含むスケール３の平均化画像のブロックに対応するエッジマップ３の画素値を、値FLAGに設定するようにしてもよい。この場合、エッジマップ２に対して処理を行う場合と比較して、処理時間が速くなる一方、白飛びが発生している画素をエッジポイントから除去する精度が低下し、ボケ度BlurEstimationの検出精度は低下する。
【０１７３】
＜９．第５の実施の形態＞
次に、図２２乃至図２７を参照して、本発明の第５の実施の形態について説明する。なお、本発明の第５の実施の形態では、上述したボケ度検出処理に用いられるパラメータの学習が行われる。
【０１７４】
［学習装置の機能の構成例］
図２２は、本発明を適用した学習装置の一実施の形態を示すブロック図である。図２２の学習装置５０１は、図１の画像処理装置１において使用される、ダイナミックレンジの判定に用いる閾値（以下、ダイナミックレンジ判定値と称する）、エッジ基準値、および、抽出基準値の最適な組み合わせを学習する装置である。
【０１７５】
学習装置５０１は、教師データ取得部５１１、パラメータ供給部５１２、画像処理部５１３、学習データ生成部５１４、および、パラメータ抽出部５１５を含むように構成される。また、画像処理部５１３は、エッジマップ作成部５２１、ダイナミックレンジ検出部５２２、画像分類部５２３、ローカルマックス作成部５２４、エッジポイント抽出部５２５、抽出量判定部５２６、エッジ分析部５２７、ボケ度検出部５２８、および、画像判定部５２９を含むように構成される。
【０１７６】
教師データ取得部５１１は、外部から入力される教師データを取得する。ここで、教師データは、学習処理の対象となる教師画像、および、その教師画像がボケているか否かを示す正解データを含む。正解データは、例えば、教師画像がボケ画像であるか否かを示し、ユーザが実際に教師画像を見て判断した結果、あるいは、所定の画像処理により分析した結果などから求められる。なお、以下、ボケ画像でない画像をシャープ画像と称する。
【０１７７】
教師データ取得部５１１は、教師データに含まれる教師画像を、エッジマップ作成部５２１に供給する。また、教師データ取得部５１１は、教師データに含まれる正解データを学習データ生成部５１４に供給する。
【０１７８】
パラメータ供給部５１２は、学習データ生成部５１４から通知される変数iおよび変数jの値に基づいて、ダイナミックレンジ判定値、エッジ基準値および抽出基準値からなる複数のパラメータの組み合わせのうちの１つを選択する。パラメータ供給部５１２は、選択したパラメータのうち、ダイナミックレンジ判定値を画像分類部５２３に通知し、エッジ基準値をエッジポイント抽出部５２５およびエッジ分析部５２７に通知し、抽出基準値を抽出量判定部５２６に通知する。
【０１７９】
図２３は、パラメータ供給部５１２から供給されるパラメータの組み合わせの例を示している。この例では、ダイナミックレンジ判定値THdr[i]は、60から100までの41種類の値をとり、エッジ基準値RVe[j]は、10から30までの21種類の値をとり、抽出基準値RVa[j]は、1から200までの200種類の値をとる。従って、パラメータの組み合わせは、41×21×200＝172200種類となる。
【０１８０】
例えば、パラメータ供給部５１２は、学習データ生成部５１４からi＝1、j＝1が通知された場合、ダイナミックレンジ判定値THdr[1]＝60、エッジ基準値RVe[1]＝10、および、抽出基準値RVa[1]＝1の組み合わせを選択する。そして、パラメータ供給部５１２は、ダイナミックレンジ判定値THdr[1]を画像分類部５２３に通知し、エッジ基準値RVe[1]をエッジポイント抽出部５２５およびエッジ分析部５２７に通知し、抽出基準値RVa[1]を抽出量判定部５２６に通知する。
【０１８１】
画像処理部５１３は、パラメータ供給部５１２から供給されるダイナミックレンジ判定値THdr[i]に基づいて、教師画像をハイダイナミックレンジの画像またはローダイナミックレンジの画像のいずれかに分類する。画像処理部５１３は、分類した結果を学習データ生成部５１４に通知する。また、画像処理部５１３は、パラメータ供給部５１２から供給されるエッジ基準値RVe[i]および抽出基準値RVa[i]に基づいて、教師画像がボケ画像またはシャープ画像のいずれであるかを判定する。画像処理部５１３は、判定結果を学習データ生成部５１４に通知する。
【０１８２】
より具体的には、画像処理部５１３のエッジマップ作成部５２１は、図１のエッジマップ作成部１１と同様の機能を有しており、与えられた教師画像からエッジマップ１乃至３を作成する。エッジマップ作成部５２１は、作成したエッジマップ１乃至３をダイナミックレンジ検出部５２２およびローカルマックス作成部５２４に供給する。
【０１８３】
ダイナミックレンジ検出部５２２は、図１のダイナミックレンジ検出部１２と同様の機能を有しており、教師画像のダイナミックレンジを検出する。ダイナミックレンジ検出部５２２は、検出したダイナミックレンジを示す情報を画像分類部５２３に供給する。
【０１８４】
画像分類部５２３は、パラメータ供給部５１２から供給されるダイナミックレンジ判定値THdr[i]に基づいて、教師画像をハイダイナミックレンジの画像またはローダイナミックレンジの画像のいずれかに分類する。画像分類部５２３は、分類した結果を学習データ生成部５１４に通知する。
【０１８５】
ローカルマックス作成部５２４は、図１のローカルマックス作成部１４と同様の機能を有しており、エッジマップ１乃至３に基づいて、ローカルマックス１乃至３を作成する。ローカルマックス作成部５２４は、作成したローカルマックス１乃至３をエッジポイント抽出部５２５およびエッジ分析部５２７に供給する。
【０１８６】
エッジポイント抽出部５２５は、図１のエッジポイント抽出部１５と同様の機能を有しており、パラメータ供給部５１２から供給されるエッジ基準値RVe[i]、および、ローカルマックス１乃至３に基づいて、教師画像からエッジポイントを抽出する。また、エッジポイント抽出部５２５は、抽出したエッジポイントの情報を示すエッジポイントテーブル１乃至３を作成する。エッジポイント抽出部５２５は、作成したエッジポイントテーブル１乃至３を抽出量判定部５２６に供給する。
【０１８７】
抽出量判定部５２６は、図１の抽出量判定部１６と同様の機能を有しており、エッジポイントテーブル１乃至３、および、パラメータ供給部５１２から供給される抽出基準値RVa[i]に基づいて、エッジポイント抽出量が適切であるか否かを判定する。抽出量判定部５２６は、エッジポイント抽出量が適切であると判定した場合、エッジポイントテーブル１乃至３をエッジ分析部５２７に供給する。また、抽出量判定部５２６は、エッジポイント抽出量が適切でないと判定した場合、エッジポイント抽出量が適切でないことを学習データ生成部５１４に通知する。
【０１８８】
エッジ分析部５２７は、図１のエッジ分析部１７と同様の機能を有しており、エッジポイントテーブル１乃至３、ローカルマックス１乃至３、および、エッジ基準値RVe[i]に基づいて、教師画像のエッジポイントの分析を行う。エッジ分析部５２７は、分析結果を示す情報をボケ度検出部５２８に供給する。
【０１８９】
ボケ度検出部５２８は、図１のボケ度検出部１８と同様の機能を有しており、エッジポイントの分析結果に基づいて、教師画像のボケ度を検出する。ボケ度検出部５２８は、検出したボケ度を示す情報を画像判定部５２９に供給する。
【０１９０】
画像判定部５２９は、図２４乃至図２６を参照して後述するように、ボケ度検出部５２８により検出されたボケ度に基づいて、教師画像のボケ判定を行う。すなわち、画像判定部５２９は、教師画像が、ボケ画像またはシャープ画像のどちらであるかを判定する。画像判定部５２９は、判定結果を示す情報を学習データ生成部５１４に供給する。
【０１９１】
学習データ生成部５１４は、図２４乃至図２６を参照して後述するように、正解データ、画像分類部５２３による教師画像の分類結果、および、画像判定部５２９による判定結果に基づいて、学習データを生成する。学習データ生成部５１４は、生成した学習データを示す情報をパラメータ抽出部５１５に供給する。また、学習データ生成部５１４は、教師データ取得部５１１に教師データの取得を指令する。
【０１９２】
パラメータ抽出部５１５は、図２４乃至図２７を参照して後述するように、学習データに基づいて、パラメータ供給部５１２から供給されるパラメータの組み合わせのうち、画像のボケ度の検出に最も適した組み合わせを抽出する。パラメータ抽出部５１５は、抽出したパラメータの組み合わせを示す情報を、図１の画像処理装置１などの外部の装置に供給する。
【０１９３】
［動作説明］
次に、図２４乃至図２６のフローチャートを参照して、学習装置５０１により実行される学習処理について説明する。なお、この処理は、例えば、図示せぬ操作部を介して、学習処理の開始の指令が学習装置５０１に入力されたとき、開始される。
【０１９４】
ステップＳ５０１において、教師データ取得部５１１は、教師データを取得する。教師データ取得部５１１は、取得した教師データに含まれる教師画像をエッジマップ作成部５２１に供給する。また、教師データ取得部５１１は、教師データに含まれる正解データを学習データ生成部５１４に供給する。
【０１９５】
ステップＳ５０２において、エッジマップ作成部５２１は、図２のステップＳ１と同様の処理により、教師画像に対するエッジマップ１乃至３を作成する。エッジマップ作成部５２１は、作成したエッジマップ１乃至３をダイナミックレンジ検出部５２２およびローカルマックス作成部５２４に供給する。
【０１９６】
ステップＳ５０３において、ローカルマックス作成部５２４は、図２のステップＳ２と同様の処理により、教師画像に対するローカルマックス１乃至３を作成する。ローカルマックス作成部５２４は、作成したローカルマックス１乃至３を、エッジポイント抽出部５２５およびエッジ分析部５２７に供給する。
【０１９７】
ステップＳ５０４において、ダイナミックレンジ検出部５２２は、図２のステップＳ３と同様の処理により、教師画像のダイナミックレンジを検出する。ダイナミックレンジ検出部５２２は、検出したダイナミックレンジを示す情報を画像分類部５２３に供給する。
【０１９８】
ステップＳ５０５において、学習データ生成部５１４は、変数iの値を１に設定し、変数jの値を１に設定する。学習データ生成部５１４は、設定した変数iおよび変数jの値をパラメータ供給部５１２に通知する。パラメータ供給部５１２は、ダイナミックレンジ判定値THdr[i]（いまの場合、THdr[1]）を画像分類部５２３に通知する。また、パラメータ供給部５１２は、エッジ基準値RVe[i]（いまの場合、RVe[1]）をエッジポイント抽出部５２５およびエッジ分析部５２７に通知する。さらに、パラメータ供給部５１２は、抽出基準値RVa[i]（いまの場合、RVa[1]）を抽出量判定部５２６に通知する。
【０１９９】
ステップＳ５０６において、画像分類部５２３は、ダイナミックレンジ判定値THdr[i]に基づいて、教師画像の種類を分類する。具体的には、画像分類部５２３は、教師画像のダイナミックレンジ＜THdr[i]である場合、教師画像をローダイナミックレンジの画像に分類する。また、画像分類部５２３は、教師画像のダイナミックレンジ≧THdr[i]である場合、教師画像をハイダイナミックレンジの画像に分類する。画像分類部５２３は、分類した結果を学習データ生成部５１４に通知する。
【０２００】
ステップＳ５０７において、学習データ生成部５１４は、画像分類部５２３による分類結果および正解データに基づいて、教師画像がローダイナミックレンジのボケ画像であるか否かを判定する。ローダイナミックレンジのボケ画像であると判定された場合、処理はステップＳ５０８に進む。
【０２０１】
ステップＳ５０８において、学習データ生成部５１４は、変数lowBlurImage[i]の値を１つインクリメントする。なお、変数lowBlurImage[i]は、ダイナミックレンジ判定値THdr[i]および正解データに基づいて、ローダイナミックレンジのボケ画像に分類された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５１４に進む。
【０２０２】
一方、ステップＳ５０７において、ローダイナミックレンジのボケ画像でないと判定された場合、処理はステップＳ５０９に進む。
【０２０３】
ステップＳ５０９において、学習データ生成部５１４は、画像分類部５２３による分類結果および正解データに基づいて、教師画像がハイダイナミックレンジのボケ画像であるか否かを判定する。ハイダイナミックレンジのボケ画像であると判定された場合、処理はステップＳ５１０に進む。
【０２０４】
ステップＳ５１０において、学習データ生成部５１４は、変数highBlurImage[i]の値を１つインクリメントする。なお、変数highBlurImage[i]は、ダイナミックレンジ判定値THdr[i]および正解データに基づいて、ハイダイナミックレンジのボケ画像に分類された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５１４に進む。
【０２０５】
一方、ステップＳ５０９において、ハイダイナミックレンジのボケ画像でないと判定された場合、処理はステップＳ５１１に進む。
【０２０６】
ステップＳ５１１において、学習データ生成部５１４は、画像分類部５２３による分類結果および正解データに基づいて、教師画像がローダイナミックレンジのシャープ画像であるか否かを判定する。ローダイナミックレンジのシャープ画像であると判定された場合、処理はステップＳ５１２に進む。
【０２０７】
ステップＳ５１２において、学習データ生成部５１４は、変数lowSharpImage[i]の値を１つインクリメントする。なお、変数lowSharpImage[i]は、ダイナミックレンジ判定値THdr[i]および正解データに基づいて、ローダイナミックレンジのシャープ画像に分類された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５１４に進む。
【０２０８】
一方、ステップＳ５１１において、ローダイナミックレンジのシャープ画像でないと判定された場合、すなわち、教師画像がハイダイナミックレンジのシャープ画像である場合、処理はステップＳ５１３に進む。
【０２０９】
ステップＳ５１３において、学習データ生成部５１４は、変数highSharpImage[i]の値を１つインクリメントする。なお、変数highSharpImage[i]は、ダイナミックレンジ判定値THdr[i]および正解データに基づいて、ハイダイナミックレンジのシャープ画像に分類された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５１４に進む。
【０２１０】
ステップＳ５１４において、エッジポイント抽出部５２５は、図２のステップＳ６と同様の処理により、エッジ基準値RVe[i]およびローカルマックス１乃至３に基づいて、エッジポイントを抽出し、エッジポイントテーブル１乃至３を作成する。エッジポイント抽出部５２５は、作成したエッジポイントテーブル１乃至３を抽出量判定部５２６に供給する。
【０２１１】
ステップＳ５１５において、抽出量判定部５２６は、エッジポイント抽出量が適切であるか否かを判定する。抽出量判定部５２６は、エッジポイント抽出量≧抽出基準値RVa[j]である場合、エッジポイント抽出量が適切であると判定し、処理はステップＳ５１６に進む。
【０２１２】
ステップＳ５１６において、エッジ分析部５２７は、エッジ分析を行う。具体的には、抽出量判定部５２６は、エッジポイントテーブル１乃至３をエッジ分析部５２７に供給する。エッジ分析部５２７は、図２のステップＳ１３の処理と同様に、エッジポイントテーブル１乃至３、ローカルマックス１乃至３、および、エッジ基準値RVe[i]に基づいて、教師画像のエッジ分析を行う。エッジ分析部５２７は、エッジ分析により算出されたNsmallblurおよびNlargelblurを示す情報をボケ度検出部５２８に供給する。
【０２１３】
ステップＳ５１７において、ボケ度検出部５２８は、図２のステップＳ１４の処理と同様に、ボケ度BlurEstimationを算出する。ボケ度検出部５２８は、算出したボケ度BlurEstimationを示す情報を画像判定部５２９に供給する。
【０２１４】
ステップＳ５１８において、画像判定部５２９は、ボケ判定を行う。具体的には、画像判定部５２９は、ボケ度BlurEstimationを所定の閾値と比較する。そして、画像判定部５２９は、ボケ度BlurEstimation≧所定の閾値である場合、教師画像はボケ画像であると判定し、ボケ度BlurEstimation＜所定の閾値である場合、教師画像はシャープ画像であると判定する。画像判定部５２９は、判定結果を示す情報を学習データ生成部５１４に供給する。
【０２１５】
ステップＳ５１９において、学習データ生成部５１４は、判定結果が正しいか否かを判定する。学習データ生成部５１４は、画像判定部５２９による判定結果と正解データが一致する場合、判定結果が正しいと判定し、処理はステップＳ５２０に進む。
【０２１６】
ステップＳ５２０において、ステップＳ５０７の処理と同様に、ローダイナミックレンジのボケ画像であるか否かが判定される。ローダイナミックレンジのボケ画像であると判定された場合、処理はステップＳ５２１に進む。
【０２１７】
ステップＳ５２１において、学習データ生成部５１４は、変数lowBlurCount[i][j]の値を１つインクリメントする。なお、変数lowBlurCount[i][j]は、ダイナミックレンジ判定値THdr[i]に基づいてローダイナミックレンジの画像に分類され、かつ、エッジ基準値RVe[j]および抽出基準値RVa[j]に基づいて、正しくボケ画像であると判定された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５２７に進む。
【０２１８】
一方、ステップＳ５２０において、ローダイナミックレンジのボケ画像でないと判定された場合、処理はステップＳ５２２に進む。
【０２１９】
ステップＳ５２２において、ステップＳ５０９の処理と同様に、ハイダイナミックレンジのボケ画像であるか否かが判定される。ハイダイナミックレンジのボケ画像であると判定された場合、処理はステップＳ５２３に進む。
【０２２０】
ステップＳ５２３において、学習データ生成部５１４は、変数highBlurCount[i][j]の値を１つインクリメントする。なお、変数highBlurCount[i][j]は、ダイナミックレンジ判定値THdr[i]に基づいてハイダイナミックレンジの画像に分類され、かつ、エッジ基準値RVe[j]および抽出基準値RVa[j]に基づいて、正しくボケ画像であると判定された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５２７に進む。
【０２２１】
一方、ステップＳ５２２において、ハイダイナミックレンジのボケ画像でないと判定された場合、処理はステップＳ５２４に進む。
【０２２２】
ステップＳ５２４において、ステップＳ５１１の処理と同様に、ローダイナミックレンジのシャープ画像であるか否かが判定される。ローダイナミックレンジのシャープ画像であると判定された場合、処理はステップＳ５２５に進む。
【０２２３】
ステップＳ５２５において、学習データ生成部５１４は、変数lowSharpCount[i][j]の値を１つインクリメントする。なお、変数lowSharpCount[i][j]は、ダイナミックレンジ判定値THdr[i]に基づいてローダイナミックレンジの画像に分類され、かつ、エッジ基準値RVe[j]および抽出基準値RVa[j]に基づいて、正しくシャープ画像であると判定された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５２７に進む。
【０２２４】
一方、ステップＳ５２４において、ローダイナミックレンジのシャープ画像でないと判定された場合、すなわち、教師画像がハイダイナミックレンジのシャープ画像である場合、処理はステップＳ５２６に進む。
【０２２５】
ステップＳ５２６において、学習データ生成部５１４は、変数highSharpCount[i][j]の値を１つインクリメントする。なお、変数highSharpCount[i][j]は、ダイナミックレンジ判定値THdr[i]に基づいてハイダイナミックレンジの画像に分類され、かつ、エッジ基準値RVe[j]および抽出基準値RVa[j]に基づいて、正しくシャープ画像であると判定された教師画像の枚数をカウントするための変数である。その後、処理はステップＳ５２７に進む。
【０２２６】
一方、ステップＳ５１９において、学習データ生成部５１４は、画像判定部５２９による判定結果と正解データが一致しない場合、判定結果が間違っていると判定する。その後、ステップＳ５２０乃至Ｓ５２６の処理はスキップされ、処理はステップＳ５２７に進む。
【０２２７】
また、ステップＳ５１５において、抽出量判定部５２６は、エッジポイント抽出量＜抽出基準値RVa[j]である場合、エッジポイント抽出量が適切でないと判定する。その後、ステップＳ５１６乃至Ｓ５２６の処理はスキップされ、処理はステップＳ５２７に進む。
【０２２８】
ステップＳ５２７において、学習データ生成部５１４は、変数j＜JMAXであるか否かを判定する。変数j＜JMAXであると判定された場合、処理はステップＳ５２８に進む。なお、例えば、上述した図２３のパラメータの組み合わせが用いられる場合、JMAXの値は4200となる。
【０２２９】
ステップＳ５２８において、学習データ生成部５１４は、変数jの値を１つインクリメントする。学習データ生成部５１４は、現在の変数iおよび変数jの値をパラメータ供給部５１２に通知する。パラメータ供給部５１２は、ダイナミックレンジ判定値THdr[i]を画像分類部５２３に通知する。また、パラメータ供給部５１２は、エッジ基準値RVe[j]をエッジポイント抽出部５２５およびエッジ分析部５２７に通知する。さらに、パラメータ供給部５１２は、抽出基準値RVa[j]を抽出量判定部５２６に通知する。
【０２３０】
その後、処理はステップＳ５１４に戻り、ステップＳ５２７において、変数j≧JMAXであると判定されるまで、ステップＳ５１４乃至Ｓ５２８の処理が繰り返し実行される。
【０２３１】
一方、ステップＳ５２７において、変数j≧JMAXであると判定された場合、処理はステップＳ５２９に進む。
【０２３２】
ステップＳ５２９において、学習データ生成部５１４は、変数i＜IMAXであるか否かを判定する。変数i＜IMAXであると判定された場合、処理はステップＳ５３０に進む。なお、例えば、上述した図２３のパラメータの組み合わせが用いられる場合、IMAXの値は41となる。
【０２３３】
ステップＳ５３０において、学習データ生成部５１４は、変数iの値を１つインクリメントし、変数jの値を１に設定する。学習データ生成部５１４は、現在の変数iおよび変数jの値をパラメータ供給部５１２に通知する。パラメータ供給部５１２は、ダイナミックレンジ判定値THdr[i]を画像分類部５２３に通知する。また、パラメータ供給部５１２は、エッジ基準値RVe[j]をエッジポイント抽出部５２５およびエッジ分析部５２７に通知する。さらに、パラメータ供給部５１２は、抽出基準値RVa[j]を抽出量判定部５２６に通知する。
【０２３４】
その後、処理はステップＳ５０６に戻り、ステップＳ５２９において、変数i≧IMAXであると判定されるまで、ステップＳ５０６乃至Ｓ５３０の処理が繰り返し実行される。
【０２３５】
一方、ステップＳ５３０において、変数i≧IMAXであると判定された場合、処理はステップＳ５３１に進む。
【０２３６】
ステップＳ５３１において、学習データ生成部５１４は、所定の枚数の教師画像について学習したか否かを判定する。学習データ生成部５１４は、まだ所定の枚数の教師画像について処理してないと判定した場合、教師データ取得部５１１に教師データの取得を指令する。その後、処理はステップＳ５０１に戻り、ステップＳ５３１において、所定の枚数の教師画像について処理したと判定されるまで、ステップＳ５０１乃至Ｓ５３１の処理が繰り返し実行される。
【０２３７】
これにより、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[j]、抽出基準値RVa[j]の各組み合わせを用いた場合の、所定の枚数の教師画像に対するボケ判定の判定結果が求められ、学習データとして蓄積される。
【０２３８】
一方、ステップＳ５３１において、学習データ生成部５１４は、所定の枚数の教師画像について学習したと判定した場合、変数lowBlurImage[i]、highBlurImage[i]、lowSharpImage[i]、highSharpImage[i]、lowBlurCount[i][j]、highBlurCount[i][j]、lowSharpCount[i][j]、highSharpCount[i][j]の値を、学習データとしてパラメータ抽出部５１５に供給する。その後、処理はステップＳ５３２に進む。
【０２３９】
ステップＳ５３２において、パラメータ抽出部５１５は、変数iの値を１に設定し、変数jの値を１に設定する。
【０２４０】
ステップＳ５３３において、パラメータ抽出部５１５は、変数MinhighCV、MinlowCV、highJ、lowJの値を初期化する。すなわち、パラメータ抽出部５１５は、変数MinhighCVおよび変数MinlowCVの値を、それぞれ後述するhighCVおよびlowCVが取り得る最大値より大きい値に設定する。また、パラメータ抽出部５１５は、変数highJおよび変数lowJの値を０に設定する。
【０２４１】
ステップＳ５３４において、パラメータ抽出部５１５は、以下の式（１７）乃至（２０）に基づいて、highSharp、lowSharp、highBlur、lowBlurを算出する。
【０２４２】
【数８】
2010217954.tif 000010
【０２４３】
highSharpは、ダイナミックレンジ判定値THdr[i]に基づいてハイダイナミックレンジに分類されたシャープ画像のうち、エッジ基準値RVe[j]および抽出基準値RVa[j]に基づいて、ボケ画像であると誤判定されたシャープ画像の割合を示している。すなわち、highSharpは、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[j]、抽出基準値RVa[j]を用いた場合に、ハイダイナミックレンジのシャープ画像をボケ画像であると誤判定する確率を示している。同様に、lowSharpは、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[j]、抽出基準値RVa[j]を用いた場合に、ローダイナミックレンジのシャープ画像をボケ画像であると誤判定する確率を示している。
【０２４４】
また、highBlurは、ダイナミックレンジ判定値THdr[i]に基づいてハイダイナミックレンジに分類されたボケ画像のうち、エッジ基準値RVe[j]および抽出基準値RVa[j]に基づいて、ボケ画像であると正しく判定されたボケ画像の割合を示している。すなわち、highBlurは、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[j]、抽出基準値RVa[j]を用いた場合に、ハイダイナミックレンジのボケ画像をボケ画像であると正しく判定する確率を示している。同様に、lowBlurは、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[j]、抽出基準値RVa[j]を用いた場合に、ローダイナミックレンジのボケ画像をボケ画像であると正しく判定する確率を示している。
【０２４５】
ステップＳ５３５において、パラメータ抽出部５１５は、以下の式（２１）および式（２２）に基づいて、highCV、lowCVを算出する。
【０２４６】
【数９】
2010217954.tif 000011
【０２４７】
highCVは、ステップＳ５３４で求めたhighShapの値をx1、highBlurの値をy1とした場合、x軸をhighSharp、y軸をhighBlurとする座標系における、座標（0，1）と座標（x1，y1）との間の距離を示している。従って、ハイダイナミックレンジの画像に対するボケ判定の精度が高いほど、highCVの値は小さくなり、ハイダイナミックレンジの画像に対するボケ判定の精度が低いほど、highCVの値は大きくなる。
【０２４８】
同様に、lowCVは、ステップＳ５３４で求めたlowShapの値をx2、lowBlurの値をy2とした場合、x軸をlowSharp、y軸をlowBlurとする座標系における、座標（0，1）と座標（x2，y2）との間の距離を示している。従って、ローダイナミックレンジの画像のボケ判定の精度が高いほど、lowCVの値は小さくなり、ローダイナミックレンジの画像のボケ判定の精度が低いほど、lowCVの値は大きくなる。
【０２４９】
ステップＳ５３６において、パラメータ抽出部５１５は、highCV＜MinhighCVであるか否かを判定する。highCV＜MinhighCVであると判定された場合、すなわち、今回求めたhighCVがこれまでの最小値である場合、処理はステップＳ５３７に進む。
【０２５０】
ステップＳ５３７において、パラメータ抽出部５１５は、変数highJに現在の変数jの値を設定し、変数MinhighCVに今回求めたhighCVの値を設定する。その後、処理はステップＳ５３８に進む。
【０２５１】
一方、ステップＳ５３６において、highCV≧MinhighCVであると判定された場合、ステップＳ５３７の処理はスキップされ、処理はステップＳ５３８に進む。
【０２５２】
ステップＳ５３８において、パラメータ抽出部５１５は、lowCV＜MinlowCVであるか否かを判定する。lowCV＜MinlowCVであると判定された場合、すなわち、今回求めたlowCVがこれまでの最小値である場合、処理はステップＳ５３９に進む。
【０２５３】
ステップＳ５３９において、パラメータ抽出部５１５は、変数lowJに現在の変数jの値を設定し、変数MinlowCVに今回求めたlowCVの値を設定する。その後、処理はステップＳ５４０に進む。
【０２５４】
一方、ステップＳ５３８において、lowCV≧MinlowCVであると判定された場合、ステップＳ５３９の処理はスキップされ、処理はステップＳ５４０に進む。
【０２５５】
ステップＳ５４０において、パラメータ抽出部５１５は、変数j＜JMAXであるか否かを判定する。j＜JMAXであると判定された場合、処理はステップＳ５４１に進む。
【０２５６】
ステップＳ５４１において、パラメータ抽出部５１５は、変数jの値を１つインクリメントする。
【０２５７】
その後、処理はステップＳ５３４に戻り、ステップＳ５４０において、変数j≧JMAXであると判定されるまで、ステップＳ５３４乃至Ｓ５４１の処理が繰り返し実行される。これにより、ダイナミックレンジ判定値がTHdr[i]（いまの場合、THdr[1]）である場合における、エッジ基準値RVe[j]および抽出基準値RVa[j]（j＝1〜JMAX）の各組み合わせに対するhighCVおよびlowCVが算出される。また、highCVが最小となったときの変数jの値が変数highJに格納され、lowCVが最小となったときの変数jの値が変数lowJに格納される。
【０２５８】
図２７は、１つのダイナミックレンジ判定値THdr[i]について、エッジ基準値RVe[j]および抽出基準値RVa[j]の各組み合わせに対して得られた（highSharp，highBlur）の値をプロットすることにより描かれるROC（Receiver Operating Characteristic）曲線の例を示している。なお、この座標系のx軸はhighSharpを示し、y軸はhighBlurを示している。
【０２５９】
このROC曲線において座標（0，1）との間の距離が最小となる点に対応するエッジ基準値および抽出基準値の組み合わせが、エッジ基準値RVe[highJ]および抽出基準値RVa[highJ]となる。すなわち、ダイナミックレンジ判定値がTHdr[i]に設定されている場合、エッジ基準値RVe[highJ]および抽出基準値RVa[highJ]の組み合わせを用いたとき、ハイダイナミックレンジの画像に対するボケ判定の精度が最も高くなる。
【０２６０】
同様に、ダイナミックレンジ判定値がTHdr[i]に設定されている場合、エッジ基準値RVe[lowJ]および抽出基準値RVa[lowJ]の組み合わせを用いたとき、ローダイナミックレンジの画像に対するボケ判定の精度が最も高くなる。
【０２６１】
一方、ステップＳ５４０において、変数j≧JMAXであると判定された場合、処理はステップＳ５４２に進む。
【０２６２】
ステップＳ５４２において、パラメータ抽出部５１５は、以下の式（２３）に基づいて、CostValue[i]を算出する。
【０２６３】
【数１０】
2010217954.tif 000012
【０２６４】
式（２３）の右辺の第１項は、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[highJ]、抽出基準値RVa[highJ]、エッジ基準値RVe[lowJ]および抽出基準値RVa[lowJ]の組み合わせを用いた場合に、シャープ画像を正しくシャープ画像であると判定する確率を示している。また、式（２３）の右辺の第２項は、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[highJ]、抽出基準値RVa[highJ]、エッジ基準値RVe[lowJ]および抽出基準値RVa[lowJ]の組み合わせを用いた場合に、ボケ画像を正しくボケ画像であると判定する確率を示している。
【０２６５】
すなわち、CostValue[i]は、ダイナミックレンジ判定値THdr[i]、エッジ基準値RVe[highJ]、抽出基準値RVa[highJ]、エッジ基準値RVe[lowJ]および抽出基準値RVa[lowJ]の組み合わせを用いた場合の、画像のボケ判定の精度を示している。より具体的には、CostValue[i]は、ダイナミックレンジ判定値THdr[i]によりハイダイナミックレンジに分類される画像に対して、エッジ基準値RVe[highJ]および抽出基準値RVa[highJ]の組み合わせを用いてボケ判定を行い、ダイナミックレンジ判定値THdr[i]によりローダイナミックレンジに分類される画像に対して、エッジ基準値RVe[lowJ]および抽出基準値RVa[lowJ]の組み合わせを用いてボケ判定を行ったときに、シャープ画像を正確にシャープ画像であると判定する確率とボケ画像を正確にボケ画像であると判定する確率の和を示している。従って、CostValue[i]の最大値は２となる。
【０２６６】
ステップＳ５４３において、パラメータ抽出部５１５は、変数highJ[i]の値を現在の変数highJの値に設定し、変数lowJ[i]の値を現在の変数lowJの値に設定する。
【０２６７】
ステップＳ５４４において、パラメータ抽出部５１５は、変数i＜IMAXであるか否かを判定する。変数i＜IMAXであると判定された場合、処理はステップＳ５４５に進む。
【０２６８】
ステップＳ５４５において、パラメータ抽出部５１５は、変数iの値を１つインクリメントし、変数jの値を１に設定する。
【０２６９】
その後、処理はステップＳ５３３に戻り、ステップＳ５４４において、変数i≧IMAXであると判定されるまで、ステップＳ５３３乃至Ｓ５４５の処理が繰り返し実行される。これにより、THdr[1]からTHdr[IMAX]までの各ダイナミックレンジ判定値THdr[i]に対して、highCVが最小となるエッジ基準値RVe[j]および抽出基準値RVa[j]の組み合わせ、lowCVが最小となるエッジ基準値RVe[j]および抽出基準値RVa[j]の組み合わせが抽出される。また、各ダイナミックレンジ判定値THdr[i]に対して、抽出されたエッジ基準値RVe[j]および抽出基準値RVa[j]の組み合わせを用いた場合のCostValue[i]が算出される。
【０２７０】
一方、ステップＳ５４４において、変数i≧IMAXであると判定された場合、処理はステップＳ５４６に進む。
【０２７１】
ステップＳ５４６において、パラメータ抽出部５１５は、CostValue[i]が最大となるパラメータの組み合わせを抽出する。換言すれば、パラメータ抽出部５１５は、画像のボケ判定の精度が最も高くなるパラメータの組み合わせを抽出する。具体的には、パラメータ抽出部５１５は、CostValue[1]からCostValue[IMAX]までのCostValue[i]の中から最大値を抽出する。また、パラメータ抽出部５１５は、CostValue[i]が最大となるiの値をIとし、highJ[I]＝HJ、lowJ[I]＝LJとした場合、ダイナミックレンジ判定値THdr[I]、エッジ基準値RVe[HJ]、抽出基準値RVa[HJ]、エッジ基準値RVe[LJ]、および、抽出基準値RVa[LJ]の組み合わせを、図２を参照して上述したボケ度検出処理に用いるパラメータとして抽出する。
【０２７２】
そして、ダイナミックレンジ判定値THdr[I]が、図２のステップＳ４の処理において画像のダイナミックレンジを判定する際の閾値として用いられる。また、エッジ基準値RVe[LJ]および抽出基準値RVa[LJ]が、ステップＳ５の処理において設定される演算パラメータの初期値として用いられる。さらに、エッジ基準値RVe[HJ]および抽出基準値RVa[HJ]が、ステップＳ９の処理において設定される演算パラメータの初期値として用いられる。
【０２７３】
以上のようにして、図１の画像処理装置１において使用されるダイナミックレンジ判定値、エッジ基準値の初期値、および、抽出基準値の初期値をより適切な値に設定することができる。また、エッジ基準値および抽出基準値の初期値を、ダイナミックレンジ判定値により分類される画像の種類毎に、より適切な値に設定することができる。その結果、より高い精度で入力画像のボケ具合を検出することができる。
【０２７４】
＜１０．第５の実施の形態の変形例＞
なお、同様の処理により、ダイナミックレンジの範囲に基づいて画像の種類を３種類以上に分類し、各画像の種類ごとに適切なエッジ基準値および抽出基準値の初期値を求めることも可能である。
【０２７５】
また、ダイナミックレンジ判定値の学習を行わずに、ダイナミックレンジ判定値を所定の値に固定して、同様の処理により、エッジ基準値および抽出基準値の初期値のみ求めるようにすることも可能である。
【０２７６】
さらに、上述した画像サイズ、撮影場所など、ダイナミックレンジ以外の画像の特徴量に基づいて画像の種類を分類し、画像の種類毎にエッジ基準値および抽出基準値の初期値を設定する場合にも、この学習処理を適用することが可能である。例えば、画像サイズにより画像の種類を分類する場合、図２３のパラメータの組み合わせにおいて、ダイナミックレンジ判定値の代わりに、画像サイズの判定値を用いることにより、画像サイズの判定値、エッジ基準値および抽出基準値の適切な組み合わせを求めることができる。
【０２７７】
また、同様に、複数の特徴量（例えば、ダイナミックレンジと画像サイズ）を組み合わせて画像の種類を分類し、画像の種類毎にエッジ基準値および抽出基準値の初期値を設定する場合にも、この学習処理を適用することが可能である。
【０２７８】
さらに、例えば、上述した白飛び対策における閾値THwなど、エッジ基準値および抽出基準値以外の演算パラメータについても、同様の学習処理により、適切な値を求めることができる。これは、例えば、図２３のパラメータの組み合わせにおける演算パラメータのセットに、求めたい演算パラメータの項目を追加して、学習処理を行うことにより実現することができる。
【０２７９】
また、以上の説明では、学習装置５０１において、教師画像からエッジマップを作成する例を示したが、外部の装置で教師画像に対するエッジマップを作成し、エッジマップを教師データに含めるようにしてもよい。同様に、外部の装置で教師画像に対するローカルマックスを作成し、ローカルマックスを教師データに含めるようにしてもよい。
【０２８０】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２８１】
図２８は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０２８２】
コンピュータにおいて、CPU（Central Processing Unit）７０１，ROM（Read Only Memory）７０２，RAM（Random Access Memory）７０３は、バス７０４により相互に接続されている。
【０２８３】
バス７０４には、さらに、入出力インタフェース７０５が接続されている。入出力インタフェース７０５には、キーボード、マウス、マイクロホンなどよりなる入力部７０６、ディスプレイ、スピーカなどよりなる出力部７０７、ハードディスクや不揮発性のメモリなどよりなる記憶部７０８、ネットワークインタフェースなどよりなる通信部７０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア７１１を駆動するドライブ７１０が接続されている。
【０２８４】
以上のように構成されるコンピュータでは、CPU７０１が、例えば、記憶部７０８に記憶されているプログラムを、入出力インタフェース７０５及びバス７０４を介して、RAM７０３にロードして実行することにより、上述した一連の処理が行われる。
【０２８５】
コンピュータ（CPU７０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア７１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０２８６】
そして、プログラムは、リムーバブルメディア７１１をドライブ７１０に装着することにより、入出力インタフェース７０５を介して、記憶部７０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部７０９で受信し、記憶部７０８にインストールすることができる。その他、プログラムは、ROM７０２や記憶部７０８に、あらかじめインストールしておくことができる。
【０２８７】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２８８】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２８９】
１  画像処理装置，  １１  エッジマップ作成部，  １２  ダイナミックレンジ検出部，  １３  演算パラメータ調整部，  １４  ローカルマックス作成部，  １５  エッジポイント抽出部，  １６  抽出量判定部，  １７  エッジ分析部，  １８  ボケ度検出部，  １０１  画像処理装置，  １１１  エッジマップ作成部，  １１２  ダイナミックレンジ検出部，  １１３  演算パラメータ調整部，  １１４  ローカルマックス作成部，  １１５  エッジポイント抽出部，  １１６  抽出量判定部，  １１７  エッジ分析部，  １１８  ボケ度検出部，  １１９  画像サイズ検出部，  ２０１  画像処理装置，  ２１１  エッジマップ作成部，  ２１２  ダイナミックレンジ検出部，  ２１３  演算パラメータ調整部，  ２１４  ローカルマックス作成部，  ２１５  エッジポイント抽出部，  ２１６  抽出量判定部，  ２１７  エッジ分析部，  ２１８  ボケ度検出部，  ２１９  シーン認識部，  ３０１  画像処理装置，  ３１１  エッジマップ作成部，  ３１２  ダイナミックレンジ検出部，  ３１３  演算パラメータ調整部，  ３１４  ローカルマックス作成部，  ３１５  エッジポイント抽出部，  ３１６  抽出量判定部，  ３１７  エッジ分析部，  ３１８  ボケ度検出部，  ３１９  画像サイズ検出部，  ５０１  学習装置，  ５１１  教師データ取得部，  ５１２  パラメータ供給部，  ５１３  画像処理部，  ５１４  学習データ生成部，  ５１５  パラメータ抽出部，  ５２１  エッジマップ作成部，  ５２２  ダイナミックレンジ検出部，  ５２３  画像分類部，  ５２４  ローカルマックス作成部，  ５２５  エッジポイント抽出部，  ５２６  抽出量判定部，  ５２７  エッジ分析部，  ５２８  ボケ度検出部，  ５２９  画像判定部
【図１】
2010217954.tif 000013
【図２】
2010217954.tif 000014
【図３】
2010217954.tif 000015
【図４】
2010217954.tif 000016
【図５】
2010217954.tif 000017
【図６】
2010217954.tif 000018
【図７】
2010217954.tif 000019
【図８】
2010217954.tif 000020
【図９】
2010217954.tif 000021
【図１０】
2010217954.tif 000022
【図１１】
2010217954.tif 000023
【図１２】
2010217954.tif 000024
【図１３】
2010217954.tif 000025
【図１４】
2010217954.tif 000026
【図１５】
2010217954.tif 000027
【図１６】
2010217954.tif 000028
【図１７】
2010217954.tif 000029
【図１８】
2010217954.tif 000030
【図１９】
2010217954.tif 000031
【図２０】
2010217954.tif 000032
【図２１】
2010217954.tif 000033
【図２２】
2010217954.tif 000034
【図２３】
2010217954.tif 000035
【図２４】
2010217954.tif 000036
【図２５】
2010217954.tif 000037
【図２６】
2010217954.tif 000038
【図２７】
2010217954.tif 000039
【図２８】
2010217954.tif 000040