以下、図面を参照して、本発明を適用した実施の形態について説明する。
[画像処理装置の構成]
図1は、本発明を適用した画像処理装置の一実施の形態の構成例を示す図である。
この画像処理装置11は、例えばカメラなどの撮像装置により撮像して得られた入力画像について、その入力画像が上手く撮れているか否か、つまり入力画像の撮れ具合(入力画像の見映え)の評価を示す評価値(以下、総合スコアと呼ぶこととする)を算出する。入力画像の評価は、その入力画像が、より写真の専門家により撮像された画像に近いほど高くなり、入力画像の総合スコアの値は小さくなるものとされる。すなわち、総合スコアの値が小さい入力画像ほど、より上手く撮れた画像であるとされる。
画像処理装置11は、記録部21、取得部22、ぼけ度スコア算出部23、輝度スコア算出部24、エッジスコア算出部25、色分布スコア算出部26、彩度スコア算出部27、総合スコア算出部28、表示制御部29、および表示部30から構成される。
記録部21は、ハードディスクなどからなり、ユーザによって撮像装置で撮像された入力画像を複数記録している。例えば、入力画像は、各画素が画素値としてR(赤),G(緑),およびB(青)の成分の値を有する画像とされる。取得部22は、記録部21から入力画像を取得して、ぼけ度スコア算出部23乃至彩度スコア算出部27および表示制御部29に供給する。
ぼけ度スコア算出部23乃至彩度スコア算出部27は、取得部22から供給された入力画像から、予め定められた特徴の特徴量を抽出し、その特徴に基づく、入力画像に対する評価を示す特徴別のスコアを算出する。
すなわち、ぼけ度スコア算出部23は、予め定められた特徴の特徴量として、入力画像からエッジ強度を抽出し、そのエッジ強度に基づいて、入力画像のぼけ具合を示すぼけ度スコアを算出する。輝度スコア算出部24は、予め定められた特徴の特徴量として、入力画像から輝度値を抽出し、その輝度値に基づいて、入力画像の被写体部分(前景部分)における輝度値の分布に基づく評価を示す輝度スコアを算出する。
エッジスコア算出部25は、予め定められた特徴の特徴量として、入力画像からエッジ強度を抽出し、そのエッジ強度に基づいて、入力画像の背景部分におけるエッジの複雑さに基づく評価を示すエッジスコアを算出する。色分布スコア算出部26は、予め定められた特徴の特徴量として、入力画像から各色の成分を抽出し、その色の成分に基づいて、入力画像における色の分布に基づく評価を示す色分布スコアを算出する。
彩度スコア算出部27は、予め定められた特徴の特徴量として、入力画像から彩度を抽出し、その彩度に基づいて、入力画像における彩度の分布の平均および分散に基づく評価を示す彩度スコアを算出する。ぼけ度スコア算出部23乃至彩度スコア算出部27は、算出したぼけ度スコア、輝度スコア、エッジスコア、色分布スコア、および彩度スコアを総合スコア算出部28に供給する。
なお、以下、ぼけ度スコア、輝度スコア、エッジスコア、色分布スコア、および彩度スコアのそれぞれを特に区別する必要のない場合、単に特徴別スコアとも称する。
総合スコア算出部28は、ぼけ度スコア算出部23乃至彩度スコア算出部27から供給された特徴別スコアに基づいて総合スコアを算出し、表示制御部29に供給する。表示制御部29は、総合スコア算出部28からの総合スコアに基づいて、取得部22から供給された入力画像のうち、評価の高いいくつかの入力画像を選択する。また、表示制御部29は、選択した入力画像を表示部30に供給して、入力画像の表示を制御する。表示部30は、例えば液晶ディスプレイなどからなり、表示制御部29の制御に従って入力画像を表示する。
[ぼけ度スコア算出部の構成]
また、図1のぼけ度スコア算出部23は、より詳細には、図2に示すように構成される。
すなわち、ぼけ度スコア算出部23は、エッジマップ生成部61、ダイナミックレンジ検出部62、演算パラメータ調整部63、ローカルマックス生成部64、エッジポイント抽出部65、抽出量判定部66、エッジ分析部67、およびぼけ度検出部68から構成される。
エッジマップ生成部61は、取得部22から供給された入力画像に基づいて、互いに大きさが異なる3種類のブロック単位で入力画像のエッジの強度(エッジ強度)を検出し、検出したエッジ強度を画素値とするエッジマップを生成する。このエッジマップは、ブロックの大きさごとに生成され、ブロックの小さいものから順番に、スケールSC1乃至スケールSC3のエッジマップとされる。エッジマップ生成部61は、生成したこれらの3つのエッジマップを、ダイナミックレンジ検出部62およびローカルマックス生成部64に供給する。
ダイナミックレンジ検出部62は、エッジマップ生成部61からのエッジマップを用いて、入力画像のエッジ強度の最大値と最小値の差であるダイナミックレンジを検出し、その検出結果を演算パラメータ調整部63に供給する。
演算パラメータ調整部63は、ダイナミックレンジ検出部62から供給された検出結果に基づいて、入力画像のぼけ具合の検出に用いるエッジポイントの抽出量(以下、エッジポイント抽出量とも称する)が適切な値になるように、エッジポイントの抽出に用いる演算パラメータを調整する。ここで、エッジポイントとは、画像内のエッジを構成する画素をいう。
また、演算パラメータには、エッジポイントであるか否かの判定に用いるエッジ基準値、およびエッジポイント抽出量が適切であるか否かの判定に用いる抽出基準値が含まれる。演算パラメータ調整部63は、エッジ基準値をエッジポイント抽出部65および抽出量判定部66に供給し、抽出基準値を抽出量判定部66に供給する。
ローカルマックス生成部64は、エッジマップ生成部61から供給されたエッジマップを、それぞれ所定の大きさのブロックに分割し、各ブロックの画素値の最大値を抽出することによりローカルマックスを生成する。ローカルマックスは、エッジマップのスケールごとに生成され、ローカルマックス生成部64からエッジポイント抽出部65およびエッジ分析部67に供給される。以下、スケールSC1乃至スケールSC3のエッジマップから生成されたローカルマックスを、それぞれローカルマックスLM1乃至ローカルマックスLM3と称する。
エッジポイント抽出部65は、演算パラメータ調整部63からのエッジ基準値、およびローカルマックス生成部64からのローカルマックスに基づいて、入力画像からエッジポイントを抽出する。また、エッジポイント抽出部65は、抽出したエッジポイントの情報を示すエッジポイントテーブルを生成し、抽出量判定部66に供給する。なお、以下、ローカルマックスLM1乃至ローカルマックスLM3のそれぞれから得られたエッジポイントテーブルを、エッジポイントテーブルET1乃至エッジポイントテーブルET3と称する。
抽出量判定部66は、エッジポイント抽出部65からのエッジポイントテーブル、および演算パラメータ調整部63からの抽出基準値に基づいて、エッジポイント抽出量が適切であるか否かを判定する。抽出量判定部66は、エッジポイント抽出量が適切でない場合、エッジポイント抽出量が適切でない旨を演算パラメータ調整部63に通知し、エッジポイント抽出量が適切である場合、そのときのエッジ基準値およびエッジポイントテーブルをエッジ分析部67に供給する。
エッジ分析部67は、抽出量判定部66からのエッジポイントテーブルに基づいて、入力画像のエッジポイントの分析を行い、その分析結果をぼけ度検出部68に供給する。ぼけ度検出部68は、エッジポイントの分析結果に基づいて、入力画像のぼけ具合を示す指標であるぼけ度を検出し、そのぼけ度をぼけ度スコアとして総合スコア算出部28に供給する。
[輝度スコア算出部の構成]
また、図1の輝度スコア算出部24は、より詳細には図3に示すように構成される。
すなわち、輝度スコア算出部24は、被写体抽出部91、乗算部92、ヒストグラム生成部93、正規化部94、およびスコア算出部95から構成され、取得部22からの入力画像は、被写体抽出部91および乗算部92に供給される。
被写体抽出部91は、取得部22から供給された入力画像に基づいて、入力画像における被写体の含まれる領域を抽出するための被写体マップを生成し、乗算部92に供給する。
例えば、被写体マップの画素の画素値は、その画素と同じ位置にある入力画像の領域が、被写体を含む領域であると推定される場合には「1」とされ、その画素と同じ位置にある入力画像の領域が、被写体を含まない領域であると推定される場合には「0」とされる。また、ここでいう被写体は、ユーザが入力画像を一瞥した場合に、ユーザが注目すると推定される入力画像上の物体、つまりユーザが目を向けると推定される物体とされる。したがって、被写体は必ずしも人に限られる訳ではない。
乗算部92は、取得部22からの入力画像の画素の画素値に、被写体抽出部91からの被写体マップの画素の画素値を乗算することにより、入力画像における被写体の領域の画像である被写体画像を生成し、ヒストグラム生成部93に供給する。被写体画像において、被写体部分の画素の画素値は、その画素と同じ位置の入力画像の画素の画素値と同じ値となり、被写体画像において、被写体を含まない背景部分の画素の画素値は0とされる。つまり、乗算部92における乗算処理によって、入力画像における被写体の領域が特定(抽出)され、その被写体の部分からなる被写体画像が生成される。
ヒストグラム生成部93は、乗算部92からの被写体画像に基づいて、被写体画像の輝度値のヒストグラムを生成し、正規化部94に供給する。正規化部94は、ヒストグラム生成部93からのヒストグラムを正規化し、スコア算出部95に供給する。また、スコア算出部95は、正規化部94から供給されたヒストグラムに基づいて輝度スコアを算出し、総合スコア算出部28に供給する。
[被写体抽出部の構成]
ここで、図3の被写体抽出部91は、より詳細には図4に示すように構成される。
すなわち、被写体抽出部91は、輝度情報抽出部121、色情報抽出部122、エッジ情報抽出部123、顔情報抽出部124、および被写体マップ生成部125から構成される。また、取得部22からの入力画像は、被写体抽出部91の輝度情報抽出部121乃至顔情報抽出部124に供給される。
輝度情報抽出部121乃至顔情報抽出部124は、取得部22から供給された入力画像から被写体の領域がより多く有する特徴の特徴量を抽出して、入力画像の各領域における被写体の領域らしさを示す情報マップを生成する。
具体的には、輝度情報抽出部121は、入力画像から輝度値を抽出して、入力画像の各領域における、輝度に関する情報を示す輝度情報マップを生成し、被写体マップ生成部125に供給する。色情報抽出部122は、入力画像から所定の色の成分を抽出して、入力画像の各領域における、色に関する情報を示す色情報マップを生成し、被写体マップ生成部125に供給する。
エッジ情報抽出部123は、入力画像からエッジ強度を抽出して、入力画像の各領域における、エッジに関する情報を示すエッジ情報マップを生成し、被写体マップ生成部125に供給する。顔情報抽出部124は、入力画像から人の顔の有する特徴の特徴量を抽出して、入力画像の各領域における、被写体としての人の顔に関する情報を示す顔情報マップを生成し、被写体マップ生成部125に供給する。
なお、以下、輝度情報抽出部121乃至顔情報抽出部124から出力される、輝度情報マップ乃至顔情報マップのそれぞれを個々に区別する必要のない場合、単に情報マップとも称する。これらの情報マップに含まれる情報は、被写体の含まれる領域により多く含まれる特徴の特徴量を示す情報とされ、その情報が入力画像の各領域に対応させて並べられたものが情報マップとされる。つまり、情報マップは、入力画像の各領域における特徴量を示す情報であるといえる。
したがって、各情報マップにおける、より情報量の多い領域、つまり特徴量の多い領域に対応する入力画像上の領域は、より被写体が含まれる可能性の高い領域となり、各情報マップにより入力画像における被写体の含まれる領域を特定することができる。
被写体マップ生成部125は、輝度情報抽出部121乃至顔情報抽出部124から供給された情報マップを線形結合し、被写体マップを生成する。すなわち、輝度情報マップ乃至顔情報マップの各領域の情報(特徴量)が、同じ位置にある領域ごとに重み付き加算されて被写体マップが生成される。被写体マップ生成部125は、生成した被写体マップを乗算部92に供給する。
[輝度情報抽出部の構成]
次に、図5乃至図8を参照して、図4の輝度情報抽出部121乃至顔情報抽出部124のより詳細な構成について説明する。
図5は、輝度情報抽出部121のより詳細な構成例を示す図である。
輝度情報抽出部121は、輝度画像生成部151、ピラミッド画像生成部152、差分算出部153、および輝度情報マップ生成部154から構成される。
輝度画像生成部151は、取得部22から供給された入力画像を用いて、入力画像の画素の輝度値を、画素の画素値とする輝度画像を生成し、ピラミッド画像生成部152に供給する。ここで、輝度画像の任意の画素の画素値は、その画素と同じ位置にある入力画像の画素の輝度値を示している。
ピラミッド画像生成部152は、輝度画像生成部151から供給された輝度画像を用いて、互いに解像度の異なる複数の輝度画像を生成し、それらの輝度画像を輝度のピラミッド画像として差分算出部153に供給する。
例えば、レベルL1乃至レベルL8までの8つの解像度の階層のピラミッド画像が生成され、レベルL1のピラミッド画像が最も解像度が高く、レベルL1からレベルL8まで順番にピラミッド画像の解像度が低くなるものとする。
この場合、輝度画像生成部151により生成された輝度画像が、レベルL1のピラミッド画像とされる。また、レベルLi(但し、1≦i≦7)のピラミッド画像における、互いに隣接する4つの画素の画素値の平均値が、それらの画素と対応するレベルL(i+1)のピラミッド画像の1つの画素の画素値とされる。したがって、レベルL(i+1)のピラミッド画像は、レベルLiのピラミッド画像に対して縦横半分(割り切れない場合は切り捨て)の大きさの画像となる。
差分算出部153は、ピラミッド画像生成部152から供給された複数のピラミッド画像のうち、互いに階層の異なる2つのピラミッド画像を選択し、選択したピラミッド画像の差分を求めて輝度の差分画像を生成する。なお、各階層のピラミッド画像は、それぞれ大きさ(画素数)が異なるので、差分画像の生成時には、より小さい方のピラミッド画像が、より大きいピラミッド画像に合わせてアップコンバートされる。
差分算出部153は、予め定められた数だけ輝度の差分画像を生成すると、生成したそれらの差分画像を正規化し、輝度情報マップ生成部154に供給する。輝度情報マップ生成部154は、差分算出部153から供給された差分画像に基づいて輝度情報マップを生成し、被写体マップ生成部125に供給する。
[色情報抽出部の構成]
図6は、図4の色情報抽出部122のより詳細な構成例を示す図である。
色情報抽出部122は、RG差分画像生成部181、BY差分画像生成部182、ピラミッド画像生成部183、ピラミッド画像生成部184、差分算出部185、差分算出部186、色情報マップ生成部187、および色情報マップ生成部188から構成される。
RG差分画像生成部181は、取得部22から供給された入力画像を用いて、入力画像の画素のR(赤)成分とG(緑)成分との差分を、画素の画素値とするRG差分画像を生成し、ピラミッド画像生成部183に供給する。RG差分画像の任意の画素の画素値は、その画素と同じ位置にある入力画像の画素のRの成分と、Gの成分との差分の値を示している。
BY差分画像生成部182は、取得部22から供給された入力画像を用いて、入力画像の画素のB(青)成分とY(黄)成分との差分を、画素の画素値とするBY差分画像を生成し、ピラミッド画像生成部184に供給する。BY差分画像の任意の画素の画素値は、その画素と同じ位置にある入力画像の画素のB(青)成分と、Y(黄)成分との差分の値を示している。
ピラミッド画像生成部183およびピラミッド画像生成部184は、RG差分画像生成部181およびBY差分画像生成部182から供給されたRG差分画像およびBY差分画像を用いて、互いに解像度の異なる複数のRG差分画像およびBY差分画像を生成する。
そして、ピラミッド画像生成部183およびピラミッド画像生成部184は、生成したそれらのRG差分画像およびBY差分画像を、RGの差分のピラミッド画像、およびBYの差分のピラミッド画像として差分算出部185および差分算出部186に供給する。
例えば、RGの差分のピラミッド画像、およびBYの差分のピラミッド画像として、輝度のピラミッド画像の場合と同様に、それぞれレベルL1乃至レベルL8までの8つの解像度の階層のピラミッド画像が生成される。
差分算出部185および差分算出部186は、ピラミッド画像生成部183およびピラミッド画像生成部184から供給された複数のピラミッド画像のうち、互いに階層の異なる2つのピラミッド画像を選択し、選択したピラミッド画像の差分を求めてRGの差分の差分画像、およびBYの差分の差分画像を生成する。なお、各階層のピラミッド画像は、それぞれ大きさが異なるので、差分画像の生成時には、より小さい方のピラミッド画像がアップコンバートされて、より大きい方のピラミッド画像と同じ大きさとされる。
差分算出部185および差分算出部186は、予め定められた数だけRGの差分の差分画像、およびBYの差分の差分画像を生成すると、生成したそれらの差分画像を正規化し、色情報マップ生成部187および色情報マップ生成部188に供給する。色情報マップ生成部187および色情報マップ生成部188は、差分算出部185および差分算出部186から供給された差分画像に基づいて色情報マップを生成し、被写体マップ生成部125に供給する。色情報マップ生成部187ではRGの差分の色情報マップが生成され、色情報マップ生成部188ではBYの差分の色情報マップが生成される。
[エッジ情報抽出部の構成]
図7は、図4のエッジ情報抽出部123のより詳細な構成例を示す図である。
エッジ情報抽出部123は、エッジ画像生成部211乃至エッジ画像生成部214、ピラミッド画像生成部215乃至ピラミッド画像生成部218、差分算出部219乃至差分算出部222、およびエッジ情報マップ生成部223乃至エッジ情報マップ生成部226から構成される。
エッジ画像生成部211乃至エッジ画像生成部214は、取得部22から供給された入力画像に対して、ガボアフィルタを用いたフィルタ処理を施し、例えば0度、45度、90度、および135度の方向のエッジ強度を画素の画素値とするエッジ画像を生成し、ピラミッド画像生成部215乃至ピラミッド画像生成部218に供給する。
例えば、エッジ画像生成部211により生成されるエッジ画像の任意の画素の画素値は、その画素と同じ位置にある入力画像の画素における0度の方向のエッジ強度を示している。なお、各エッジの方向とは、ガボアフィルタを構成するガボア関数における角度成分により示される方向をいう。
ピラミッド画像生成部215乃至ピラミッド画像生成部218は、エッジ画像生成部211乃至エッジ画像生成部214から供給された各方向のエッジ画像を用いて、互いに解像度の異なる複数のエッジ画像を生成する。そして、ピラミッド画像生成部215乃至ピラミッド画像生成部218は、生成したそれらの各方向のエッジ画像を、エッジの各方向のピラミッド画像として差分算出部219乃至差分算出部222に供給する。
例えば、エッジの各方向のピラミッド画像として、輝度のピラミッド画像の場合と同様に、それぞれレベルL1乃至レベルL8までの8つの階層のピラミッド画像が生成される。
差分算出部219乃至差分算出部222は、ピラミッド画像生成部215乃至ピラミッド画像生成部218から供給された、複数のピラミッド画像のうち、互いに階層の異なる2つのピラミッド画像を選択し、選択したピラミッド画像の差分を求めてエッジの各方向の差分画像を生成する。なお、各階層のピラミッド画像は、それぞれ大きさが異なるので、差分画像の生成時には、より小さい方のピラミッド画像がアップコンバートされる。
差分算出部219乃至差分算出部222は、予め定められた数だけエッジの各方向の差分画像を生成すると、生成したそれらの差分画像を正規化し、エッジ情報マップ生成部223乃至エッジ情報マップ生成部226に供給する。エッジ情報マップ生成部223乃至エッジ情報マップ生成部226は、差分算出部219乃至差分算出部222から供給された差分画像に基づいて、各方向のエッジ情報マップを生成し、被写体マップ生成部125に供給する。
[顔情報抽出部の構成]
図8は、図4の顔情報抽出部124のより詳細な構成例を示す図である。
顔情報抽出部124は、顔検出部251および顔情報マップ生成部252から構成される。
顔検出部251は、取得部22から供給された入力画像から被写体としての人の顔の領域を検出し、その検出結果を顔情報マップ生成部252に供給する。顔情報マップ生成部252は、顔検出部251からの検出結果に基づいて顔情報マップを生成し、被写体マップ生成部125に供給する。
[エッジスコア算出部の構成]
さらに、図1のエッジスコア算出部25は、より詳細には図9に示すように構成される。
すなわち、エッジスコア算出部25は、被写体抽出部281、反転部282、フィルタ処理部283、正規化部284、乗算部285、ヒストグラム生成部286、およびスコア算出部287から構成される。
被写体抽出部281は、取得部22から供給された入力画像に基づいて被写体マップを生成し、反転部282に供給する。なお、この被写体抽出部281は、図4の被写体抽出部91と同様の構成とされるため、その説明は省略する。
反転部282は、被写体抽出部281から供給された被写体マップの画素の画素値を反転させて乗算部285に供給する。すなわち、被写体マップにおいて、画素値が1である画素は、その画素の画素値が0とされ、反対に、画素値が0である画素は、その画素の画素値が1とされる。したがって、反転後の被写体マップの画素の画素値は、その画素と同じ位置にある入力画像の領域が、被写体が含まれると推定される領域である場合には「0」とされ、その画素と同じ位置にある入力画像の領域が、被写体が含まれないと推定される領域である場合には「1」とされる。つまり、反転後の被写体マップは、入力画像における被写体が含まれない背景領域を特定するためのマップとなる。
フィルタ処理部283は、取得部22から供給された入力画像に、ラプラシアンフィルタを用いたフィルタ処理を施すことにより、入力画像の各領域におけるエッジ強度を画素の画素値とするラプラシアン画像を生成し、正規化部284に供給する。正規化部284は、フィルタ処理部283からのラプラシアン画像を正規化し、乗算部285に供給する。
乗算部285は、正規化部284からのラプラシアン画像の画素の画素値に、反転部282からの反転された被写体マップの画素の画素値を乗算することにより、入力画像における背景の領域の画像である背景画像を生成し、ヒストグラム生成部286に供給する。背景画像において、被写体を含まない背景部分の画素の画素値は、その画素と同じ位置のラプラシアン画像の画素の画素値と同じ値となり、背景画像において、被写体部分の画素の画素値は0となる。つまり、乗算部285における乗算処理によって、入力画像における背景の領域が特定(抽出)され、その背景部分におけるエッジ強度からなる背景画像が生成される。
ヒストグラム生成部286は、乗算部285からの背景画像に基づいて、背景画像のエッジ強度のヒストグラムを生成し、スコア算出部287に供給する。スコア算出部287は、ヒストグラム生成部286からのヒストグラムに基づいてエッジスコアを算出し、総合スコア算出部28に供給する。
[色分布スコア算出部の構成]
また、図1の色分布スコア算出部26は、より詳細には図10に示すように構成される。
すなわち、色分布スコア算出部26は、R成分ヒストグラム生成部311、G成分ヒストグラム生成部312、B成分ヒストグラム生成部313、正規化部314乃至正規化部316、ヒストグラム生成部317、およびスコア算出部318から構成される。
R成分ヒストグラム生成部311乃至B成分ヒストグラム生成部313は、取得部22から供給された入力画像から、R(赤)、G(緑)、およびB(青)の各成分のヒストグラムを生成し、正規化部314乃至正規化部316に供給する。正規化部314乃至正規化部316は、R成分ヒストグラム生成部311乃至B成分ヒストグラム生成部313からの成分ごとのヒストグラムを正規化し、ヒストグラム生成部317に供給する。
ヒストグラム生成部317は、正規化部314乃至正規化部316から供給された色成分ごとのヒストグラムを用いて、R,G,Bの各成分からなる1つの色の値の範囲をビンとした1つのヒストグラムを生成し、スコア算出部318に供給する。スコア算出部318は、ヒストグラム生成部317から供給されたヒストグラムに基づいて色分布スコアを算出し、総合スコア算出部28に供給する。
[彩度スコア算出部の構成]
さらに、図1の彩度スコア算出部27は、より詳細には図11に示すように構成される。
すなわち、彩度スコア算出部27は、変換部341、ヒストグラム生成部342、およびスコア算出部343から構成される。
変換部341は、取得部22から供給された、R,G,Bの各成分からなる入力画像を、H(色相),S(彩度),V(明度)の各成分の値からなる入力画像に変換し、ヒストグラム生成部342に供給する。
ヒストグラム生成部342は、変換部341から供給された入力画像の画素のうち、特定の条件を満たす画素の彩度の成分のヒストグラムを生成し、スコア算出部343に供給する。スコア算出部343は、ヒストグラム生成部342からのヒストグラムに基づいて彩度スコアを算出し、総合スコア算出部28に供給する。
[スライドショー表示処理の説明]
ところで、ユーザが図1の画像処理装置11を操作し、記録部21に記録されている複数の入力画像を指定して、それらの入力画像のスライドショー表示を指示すると、画像処理装置11は、ユーザの指示に応じてスライドショー表示処理を開始する。
以下、図12のフローチャートを参照して、画像処理装置11によるスライドショー表示処理について説明する。
ステップS11において、取得部22は、ユーザにより指定された入力画像の1つを記録部21から取得して、ぼけ度スコア算出部23乃至彩度スコア算出部27、および表示制御部29に供給する。
例えば、ユーザが記録部21に記録されているフォルダを指定して、そのフォルダに格納されている入力画像のスライドショー表示を指示したとすると、取得部22は、ユーザにより指定されたフォルダ内の1つの入力画像を取得する。なお、入力画像のスライドショー表示とは、複数の入力画像を順番に表示していく処理をいう。
ステップS12において、ぼけ度スコア算出部23は、ぼけ度スコア算出処理を行って、入力画像に対するぼけ度スコアを算出し、総合スコア算出部28に供給する。また、ステップS13において、輝度スコア算出部24は、輝度スコア算出処理を行って、入力画像に対する輝度スコアを算出し、総合スコア算出部28に供給する。
ステップS14において、エッジスコア算出部25は、エッジスコア算出処理を行って、入力画像に対するエッジスコアを算出し、総合スコア算出部28に供給する。ステップS15において、色分布スコア算出部26は、色分布スコア算出処理を行って、入力画像に対する色分布スコアを算出し、総合スコア算出部28に供給する。
さらに、ステップS16において、彩度スコア算出部27は、彩度スコア算出処理を行って、入力画像に対する彩度スコアを算出し、総合スコア算出部28に供給する。
なお、ステップS12乃至ステップS16において行われる、ぼけ度スコア算出処理乃至彩度スコア算出処理の詳細は後述する。
ステップS17において、総合スコア算出部28は、ぼけ度スコア算出部23乃至彩度スコア算出部27から供給された特徴別スコアに基づいて、入力画像に対する総合スコアを算出する。
すなわち、総合スコア算出部28は、特徴別スコアごとに予め保持している変換テーブルを用いて、特徴別スコアを、その特徴別スコアの値に対して予め定められた得点に変換し、各特徴別スコアについて得られた得点の合計(総和)を総合スコアとする。
例えば、特徴別スコアとしてのぼけ度スコアのとり得る値が0乃至1であり、ぼけ度スコアの値が、より大きいほど入力画像全体がぼけているものとすると、総合スコア算出部28は、図13に示すぼけ度スコアの変換テーブルにより、ぼけ度スコアの得点を得る。
すなわち、ぼけ度スコアが0.2未満である場合、ぼけ度スコアの得点は0とされ、ぼけ度スコアが0.2以上0.3未満である場合、ぼけ度スコアの得点は1とされ、ぼけ度スコアが0.3以上0.5未満である場合、ぼけ度スコアの得点は2とされる。
また、ぼけ度スコアが0.5以上0.7未満である場合、ぼけ度スコアの得点は3とされ、ぼけ度スコアが0.7以上0.9未満である場合、ぼけ度スコアの得点は5とされ、ぼけ度スコアが0.9以上である場合、ぼけ度スコアの得点は10とされる。
ここで、ぼけ度スコアの値の各範囲に対して定まる得点は、予め用意されたプロ画像およびアマ画像から得られたぼけ度スコアに基づいて定められる。なお、プロ画像とは、写真の専門家により撮像された、一般的な評価が高い(撮れ具合のよい)画像をいい、アマ画像とは、素人により撮像された、一般的な評価が低い(撮れ具合の悪い)画像をいう。
例えば、複数のプロ画像およびアマ画像についてぼけ度スコアを求め、図14に示す結果が得られたとする。なお、図中、縦軸はサンプルとされたプロ画像またはアマ画像の数を示しており、横軸はぼけ度スコアの値を示している。
図14では、図中、上側はプロ画像のぼけ度スコアの分布を示しており、図中、下側はアマ画像のぼけ度スコアの分布を示している。
プロ画像のぼけ度スコアは、殆どのサンプルが0.3未満となっており、ぼけ度スコアが0.8以上となるサンプルはない。つまり、画像のぼけ具合が小さいほど、ぼけ度スコアも小さくなるので、プロ画像には、ぼけた画像が殆どないことになる。
これに対して、アマ画像のぼけ度スコアは、殆どのサンプルが0.4未満であるが、0.4以上のものもいくつか存在する。つまり、アマ画像には、全体がぼけた画像もいくつか含まれている。
プロ画像のぼけ度スコアと、アマ画像のぼけ度スコアとを比較すると、プロ画像の分布における矢印A11により示される範囲、つまりぼけ度スコアが0.8以上であるプロ画像は1つもない。これに対し、アマ画像の分布における矢印A12により示される範囲、つまりぼけ度スコアが0.8以上であるアマ画像はいくつか存在する。
したがって、入力画像について求めたぼけ度スコアが、0.8以上である場合には、その入力画像はアマ画像、つまり撮れ具合のよくない画像である可能性が高い。また、各特徴別スコアについての得点の合計値が総合スコアとされ、総合スコアは、より小さいほど撮れ具合がよいことを示している。
そこで、ぼけ度スコアが0.8以上である場合、つまり入力画像がアマ画像である可能性が高い場合には、総合スコアが大きくなるように、ぼけ度スコアについての得点が大きい値に定められる。また、一般的に、ぼけのない画像ほど撮れ具合のよい画像とされるため、ぼけ度スコアが小さいほど、ぼけ度スコアについての得点も小さい値となるようにされる。
同様に、他の特徴別スコアについても、予め用意されたプロ画像およびアマ画像の特徴別スコアを比較することで、各特徴別スコアの値の範囲に対する得点が定められ、特徴別スコアごとの変換テーブルが予め求められる。
このとき、プロ画像とアマ画像とで特徴別スコアの分布の違いが顕著な値の範囲に対しては、その違いに応じて、より大きい得点またはより小さい得点を定めることで、より適切(正確)に入力画像の撮れ具合を評価できるようになる。つまり、評価の精度を向上させることができる。
また、1つの特徴スコアを用いても、入力画像の撮れ具合を適切に評価することは困難であるが、総合スコアは、複数の特徴別スコアから求めるため、入力画像の撮れ具合をより適切に評価できるようになる。
例えば、図14の例では、ぼけ度スコアが0.2未満である画像は、プロ画像もアマ画像も多数存在する。そのため、入力画像のぼけ度スコアが0.2未満である場合には、ぼけ度スコアだけからは、入力画像がプロ画像に近いか、またはアマ画像に近いかを正確に評価することは難しい。
しかしながら、各特徴スコアには、入力画像がプロ画像に近いか、またはアマ画像に近いかをより正確に特定できる値の範囲が存在する。したがって、各特徴別スコアの値の範囲に対して得点を定めておき、特徴別スコアごとの得点を合計して総合スコアとすれば、より適切に入力画像の撮れ具合を評価することができるようになる。
以上のように、変換テーブルを用いて各特徴別スコアを得点に変換し、それらの得点の総和を求めることで総合スコアとすることは、各特徴別スコアを重み付き加算して総合スコアとすることに相当する。
図12のフローチャートの説明に戻り、総合スコアが求められると、総合スコア算出部28は、求めた総合スコアを表示制御部29に供給する。そして、処理はステップS17からステップS18に進む。
ステップS18において、画像処理装置11は、全ての入力画像について、総合スコアを求めたか否かを判定する。例えば、ユーザにより指定された、スライドショー表示の対象となる全ての入力画像の総合スコアが求められた場合、全ての入力画像について、総合スコアを求めたと判定される。
ステップS18において、まだ全ての入力画像について、総合スコアを求めていないと判定された場合、処理はステップS11に戻り、上述した処理が繰り返される。すなわち、取得部22により、次の入力画像が取得され、その入力画像に対する総合スコアが求められる。
これに対して、ステップS18において、全ての入力画像について、総合スコアを求めたと判定された場合、ステップS19において、表示制御部29は、スライドショー表示する入力画像を選択する。
例えば、表示制御部29は、総合スコア算出部28から供給された各入力画像の総合スコアに基づいて、取得部22から供給された入力画像のうち、総合スコアが所定の閾値以下のものを表示する入力画像として選択する。なお、総合スコアは、その値が低いほど、入力画像の撮れ具合の評価が高いことを示している。
このように、総合スコアが閾値以下である入力画像を選択すれば、撮れ具合の評価がある程度高い入力画像、つまりある程度プロ画像に近い入力画像だけをスライドショー表示させることが可能となる。なお、表示させる入力画像は、例えば、総合スコアの低い順に、予め定められた枚数だけ選択されるようにしてもよい。
ステップS20において、表示制御部29は、ステップS19において選択した入力画像を、順次、表示部30に供給して表示させることで、入力画像をスライドショー表示させる。そして、入力画像がスライドショー表示されると、スライドショー表示処理は終了する。このようにして、選択された入力画像がスライドショー表示されると、ユーザは、評価の高い入力画像だけを鑑賞することができる。
以上のように、画像処理装置11は、各入力画像について、特徴別スコアを求め、それらの特徴別スコアに基づいて、総合スコアを算出する。このように、複数の特徴別スコアに基づいて総合スコアを算出することにより、より適切に入力画像の撮れ具合を評価することができる。
[ぼけ度スコア算出処理の説明]
次に、図15のフローチャートを参照して、図12のステップS12の処理に対応するぼけ度スコア算出処理について説明する。
ステップS51において、エッジマップ生成部61は、取得部22から供給された入力画像を用いてエッジマップを生成する。
具体的には、エッジマップ生成部61は、入力画像を2×2画素の大きさのブロックに分割して、次式(1)乃至式(6)により、各ブロック内の画素間の画素値の差分の絶対値MTL-TR乃至絶対値MBL-BRを算出する。
なお、式(1)乃至式(6)において、a,b,c,dのそれぞれは、入力画像の2×2画素の大きさのブロック内の画素の画素値を示している。例えば、図16に示すように、画素値aはブロック内の図中、左上の画素の画素値を示している。また、画素値bは、図中、ブロック内の右上の画素の画素値を示しており、画素値cはブロック内の左下の画素の画素値を示しており、画素値dはブロック内の右下の画素の画素値を示している。
したがって、絶対値MTL-TR乃至絶対値MBL-BRのそれぞれは、ブロック内の各方向に隣接する画素同士の画素値の差分の絶対値、つまり各方向のエッジ強度を示している。
次に、エッジマップ生成部61は、次式(7)により、絶対値MTL-TR乃至絶対値MBL-BRの平均値MAveを算出する。この平均値MAveは、ブロック内の上下、左右および斜め方向のエッジ強度の平均値を示している。
エッジマップ生成部61は、算出した各ブロックの平均値MAveを、入力画像の対応するブロックと同じ順序に並べることにより、スケールSC1のエッジマップを生成する。
さらに、エッジマップ生成部61は、スケールSC2およびスケールSC3のエッジマップを生成するために、次式(8)により、スケールSC2およびスケールSC3の平均化画像を生成する。
なお、式(8)において、Pi(x,y)は、スケールSCi(但し、i=1,2)の平均化画像における座標(x,y)に位置する画素の画素値を示している。また、Pi+1(x,y)は、スケールSCi+1の平均化画像における座標(x,y)に位置する画素の画素値を示している。なお、スケールSC1の平均化画像は入力画像であるとする。
したがって、スケールSC2の平均化画像は、入力画像を2×2画素の大きさのブロックに分割した各ブロック内の画素の画素値の平均値を、1つの画素の画素値とした画像である。また、スケールSC3の平均化画像は、スケールSC2の平均化画像を2×2画素の大きさのブロックに分割した各ブロック内の画素の画素値の平均値を、1つの画素の画素値とした画像である。
エッジマップ生成部61は、スケールSC2およびスケールSC3の平均化画像に対して、それぞれ式(1)乃至式(7)を用いて入力画像に対して行ったのと同様の処理を行い、スケールSC2およびスケールSC3のエッジマップを生成する。
したがって、スケールSC1乃至スケールSC3のエッジマップは、それぞれ異なる周波数帯域のエッジ成分を入力画像から抽出して得られた画像となる。なお、スケールSC1のエッジマップの画素数は入力画像の1/4(縦1/2×横1/2)となり、スケールSC2のエッジマップの画素数は入力画像の1/16(縦1/4×横1/4)となり、スケールSC3のエッジマップの画素数は入力画像の1/64(縦1/8×横1/8)となる。
エッジマップ生成部61は、生成したスケールSC1乃至スケールSC3のエッジマップをダイナミックレンジ検出部62およびローカルマックス生成部64に供給する。このように、異なる大きさのブロック単位で、異なるスケールのエッジマップを生成することにより、エッジ強度のばらつきを抑えることができる。
ステップS52において、ダイナミックレンジ検出部62は、エッジマップ生成部61から供給されたエッジマップを用いて、入力画像のダイナミックレンジを検出し、その検出結果を演算パラメータ調整部63に供給する。
具体的には、ダイナミックレンジ検出部62は、スケールSC1乃至スケールSC3のエッジマップのなかから画素値の最大値と最小値を検出し、検出した画素値の最大値から最小値を引いた値を入力画像のエッジ強度のダイナミックレンジとする。すなわち、入力画像のエッジ強度の最大値と最小値の差がダイナミックレンジとして検出される。
なお、上述した方法以外にも、例えば、エッジマップごとにダイナミックレンジを検出し、検出したダイナミックレンジの最大値や平均値などを実際に使用するダイナミックレンジとして採用することも考えられる。
ステップS53において、演算パラメータ調整部63は、ダイナミックレンジ検出部62から供給されたダイナミックレンジに応じて、演算パラメータの初期値を設定する。
すなわち、演算パラメータ調整部63は、ダイナミックレンジが所定の閾値未満である場合、入力画像をローダイナミックレンジの画像とし、ダイナミックレンジが閾値以上である場合、入力画像をハイダイナミックレンジの画像とする。
そして、演算パラメータ調整部63は、入力画像がローダイナミックレンジの画像である場合、演算パラメータにローダイナミックレンジの画像用の初期値を設定する。また、演算パラメータ調整部63は、入力画像がハイダイナミックレンジの画像である場合、演算パラメータにハイダイナミックレンジの画像用の初期値を設定する。
ここで、ローダイナミックレンジの画像は、ハイダイナミックレンジの画像と比較してエッジが少なく、抽出されるエッジポイントの量が少ないと推定される。したがって、入力画像のぼけ度の検出精度を一定のレベル以上とするのに充分な量のエッジポイントを抽出できるように、ローダイナミックレンジの画像用のエッジ基準値の初期値は、ハイダイナミックレンジの画像用のエッジ基準値の初期値と比較して小さい値とされる。また、ローダイナミックレンジの画像用の抽出基準値の初期値は、ハイダイナミックレンジの画像用の抽出基準値の初期値と比較して小さい値とされる。
演算パラメータ調整部63は、ダイナミックレンジに応じて設定したエッジ基準値をエッジポイント抽出部65に供給し、エッジ基準値および抽出基準値を抽出量判定部66に供給する。
ステップS54において、ローカルマックス生成部64は、エッジマップ生成部61から供給されたエッジマップを用いてローカルマックスを生成し、エッジポイント抽出部65およびエッジ分析部67に供給する。
例えば、ローカルマックス生成部64は、図17の左側に示すように、スケールSC1のエッジマップを2×2画素のブロックに分割する。そして、ローカルマックス生成部64は、エッジマップの各ブロックの最大値を抽出して、抽出した最大値を対応するブロックと同じ順序に並べることにより、スケールSC1のローカルマックスLM1を生成する。つまり、各ブロック内の画素の画素値の最大値が抽出される。
また、ローカルマックス生成部64は、図中、中央に示すように、スケールSC2のエッジマップを4×4画素のブロックに分割する。そして、ローカルマックス生成部64は、エッジマップの各ブロックの最大値を抽出して、抽出した最大値を対応するブロックと同じ順序に並べることにより、スケールSC2のローカルマックスLM2を生成する。
さらにローカルマックス生成部64は、図中、右側に示すように、スケールSC3のエッジマップを8×8画素のブロックに分割する。そして、ローカルマックス生成部64は、エッジマップの各ブロックの最大値を抽出して、抽出した最大値を対応するブロックと同じ順序に並べることにより、スケールSC3のローカルマックスLM3を生成する。
ステップS55において、エッジポイント抽出部65は、演算パラメータ調整部63からのエッジ基準値、およびローカルマックス生成部64から供給されたローカルマックスを用いて、入力画像からエッジポイントを抽出する。
具体的には、エッジポイント抽出部65は、入力画像の画素を1つ選択し、注目画素とする。また、エッジポイント抽出部65は、選択した注目画素の入力画像上におけるxy座標系の座標を(x,y)として、次式(9)により、注目画素に対応するローカルマックスLM1の画素の座標(x1,y1)を求める。
(x1,y1)=(x/4,y/4) ・・・(9)
なお、式(9)において、x/4およびy/4の値の小数点以下は切り捨てられるものとする。
ローカルマックスLM1の1つの画素は、入力画像の4×4画素のブロックから生成されるため、入力画像の注目画素に対応するローカルマックスLM1の画素の座標は、注目画素のx座標およびy座標をそれぞれ1/4にした値となる。
同様に、エッジポイント抽出部65は、次式(10)および式(11)により、注目画素に対応するローカルマックスLM2の画素の座標(x2,y2)、および注目画素に対応するローカルマックスLM3の画素の座標(x3,y3)を求める。
(x2,y2)=(x/16,y/16) ・・・(10)
(x3,y3)=(x/64,y/64) ・・・(11)
なお、式(10)および式(11)において、x/16、y/16、x/64、およびy/64の値の小数点以下は切り捨てられるものとする。
さらに、エッジポイント抽出部65は、ローカルマックスLM1の座標(x1,y1)の画素の画素値がエッジ基準値以上である場合、注目画素をローカルマックスLM1におけるエッジポイントとして抽出する。そして、エッジポイント抽出部65は、注目画素の座標(x,y)とローカルマックスLM1の座標(x1,y1)の画素値を対応づけて記憶する。
同様に、エッジポイント抽出部65は、ローカルマックスLM2の座標(x2,y2)の画素の画素値がエッジ基準値以上である場合、注目画素をローカルマックスLM2におけるエッジポイントとして抽出し、注目画素の座標(x,y)とローカルマックスLM2の座標(x2,y2)の画素値を対応づけて記憶する。また、エッジポイント抽出部65は、ローカルマックスLM3の座標(x3,y3)の画素の画素値がエッジ基準値以上である場合、注目画素をローカルマックスLM3におけるエッジポイントとして抽出し、注目画素の座標(x,y)とローカルマックスLM3の座標(x3,y3)の画素値を対応づけて記憶する。
エッジポイント抽出部65は、入力画像上の全ての画素が注目画素とされるまで以上の処理を繰り返す。
これにより、ローカルマックスLM1に基づいて、入力画像上の4×4画素のブロックのうち、エッジ強度がエッジ基準値以上となるブロックに含まれる画素がエッジポイントとして抽出される。
同様に、ローカルマックスLM2に基づいて、入力画像上の16×16画素のブロックのうち、ブロック内のエッジ強度がエッジ基準値以上となるブロックに含まれる画素がエッジポイントとして抽出される。また、ローカルマックスLM3に基づいて、入力画像上の64×64画素のブロックのうち、ブロック内のエッジ強度がエッジ基準値以上となるブロックに含まれる画素がエッジポイントとして抽出される。
したがって、エッジ強度がエッジ基準値以上となる入力画像の4×4画素、16×16画素、または64×64画素のブロックの少なくとも1つに含まれる画素がエッジポイントとして抽出される。
エッジポイント抽出部65は、ローカルマックスLM1に基づいて抽出したエッジポイントの座標(x,y)と、そのエッジポイントに対応するローカルマックスLM1の画素の画素値とが対応づけられたテーブルであるエッジポイントテーブルET1を生成する。
同様に、エッジポイント抽出部65は、ローカルマックスLM2に基づいて抽出したエッジポイントの座標(x,y)と、そのエッジポイントに対応するローカルマックスLM2の画素の画素値とが対応づけられたエッジポイントテーブルET2を生成する。また、エッジポイント抽出部65は、ローカルマックスLM3に基づいて抽出したエッジポイントの座標(x,y)と、そのエッジポイントに対応するローカルマックスLM3の画素の画素値とが対応づけられたエッジポイントテーブルET3も生成する。
そして、エッジポイント抽出部65は、生成したそれらのエッジポイントテーブルを、抽出量判定部66に供給する。
ステップS56において、抽出量判定部66は、エッジポイント抽出部65から供給されたエッジポイントテーブルを用いて、エッジポイント抽出量が適切であるか否かを判定する。例えば、抽出量判定部66は、抽出されたエッジポイントの合計数、すなわちエッジポイントテーブルET1乃至エッジポイントテーブルET3のデータ数の合計が、演算パラメータ調整部63から供給された抽出基準値未満である場合、エッジポイント抽出量が適切でないと判定する。
ステップS56において、エッジポイント抽出量が適切でないと判定された場合、抽出量判定部66は、エッジポイント抽出量が適切でない旨を演算パラメータ調整部63に通知し、処理はステップS57に進む。
ステップS57において、演算パラメータ調整部63は、抽出量判定部66からの通知に応じて演算パラメータを調整する。
例えば、演算パラメータ調整部63は、現時点よりも、より多くのエッジポイントが抽出されるように、エッジ基準値を、現時点において設定されている値から所定の値だけ小さくする。演算パラメータ調整部63は、調整したエッジ基準値をエッジポイント抽出部65および抽出量判定部66に供給する。
演算パラメータが調整されると、その後、処理は、ステップS55に戻り、エッジポイント抽出量が適切であると判定されるまで、上述した処理が繰り返される。
また、ステップS56において、エッジポイント抽出量が適切であると判定された場合、抽出量判定部66は、演算パラメータ調整部63からのエッジ基準値と、エッジポイントテーブルとをエッジ分析部67に供給し、処理はステップS58に進む。
以上の処理により、ぼけ度の検出精度を向上させるために、ローダイナミックレンジの入力画像については、ぼけ度の検出精度を一定のレベル以上とするのに充分な量のエッジポイントを確保できるよう、エッジ強度の弱いブロックからもエッジポイントが抽出される。一方、ハイダイナミックレンジの入力画像については、より強いエッジを構成するエッジポイントが抽出されるように、できるだけエッジ強度の強いブロックからエッジポイントが抽出されるようになる。
ステップS58において、エッジ分析部67は、抽出量判定部66から供給されたエッジ基準値およびエッジポイントテーブルと、ローカルマックス生成部64から供給されたローカルマックスとを用いて、エッジ分析を行う。
具体的には、エッジ分析部67は、エッジポイントテーブルET1乃至エッジポイントテーブルET3に基づいて、入力画像から抽出されたエッジポイントのうちの1つを注目画素とする。そして、エッジ分析部67は、注目画素のxy座標系の座標を(x,y)とし、上述した式(9)乃至(11)により、注目画素に対応するローカルマックスLM1乃至ローカルマックスLM3の画素の座標(x1,y1)乃至座標(x3,y3)を求める。
エッジ分析部67は、ローカルマックスLM1の座標(x1,y1)の画素を左上隅の画素とするm×m画素(例えば、4×4画素)のローカルマックスLM1上のブロック内の画素の画素値の最大値をLocal Max1(x1,y1)に設定する。また、エッジ分析部67は、ローカルマックスLM2の座標(x2,y2)の画素を左上隅の画素とするn×n画素(例えば、2×2画素)のブロック内の画素値の最大値をLocal Max2(x2,y2)に設定し、ローカルマックスLM3の座標(x3,y3)の画素値をLocal Max3(x3,y3)に設定する。
なお、Local Max1(x1,y1)の設定に用いるm×m、および、Local Max2(x2,y2)の設定に用いるn×nのパラメータは、ローカルマックスLM1乃至ローカルマックスLM3の1画素に対応する入力画像のブロックの大きさの差を調整するためのパラメータである。
エッジ分析部67は、Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が以下の条件式(12)を満足するか否かを判定する。Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式(12)を満足する場合、エッジ分析部67は、変数Nedgeの値を1つインクリメントする。
なお、条件式(12)を満足するエッジポイントは、図18A乃至図18Dに示すエッジなど、その構造に関わらず、一定以上の強度を有するエッジを構成するエッジポイントであると推定される。
ここで、図18Aに示すエッジは、急峻なインパルス状のエッジとされ、図18Bに示すエッジは、図18Aのエッジよりは傾きが緩やかなパルス状のエッジとされ、図18Cに示すエッジは、傾きがほぼ垂直な階段状のエッジとされている。また、図18Dに示すエッジは、図18Cのエッジよりは傾きが緩やかな、階段状のエッジとされている。
エッジ分析部67は、Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式(12)を満足する場合、さらに、以下の条件式(13)または条件式(14)を満足するか否かを判定する。Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式(13)または条件式(14)を満足する場合、エッジ分析部67は、変数Nsmallblurの値を1つインクリメントする。
なお、条件式(12)を満足し、かつ条件式(13)または条件式(14)を満足するエッジポイントは、一定以上の強度を有するが、図18Aまたは図18Cのエッジと比較して強度の弱い、図18Bまたは図18Dの構造を有するエッジを構成するエッジポイントであると推定される。
さらに、エッジ分析部67は、Local Max1(x1,y1)、Local Max2(x2,y2)およびLocal Max3(x3,y3)が条件式(12)を満足し、かつ条件式(13)または条件式(14)を満足する場合、Local Max1(x1,y1)が、以下の条件式(15)を満足するか否かを判定する。Local Max1(x1,y1)が条件式(15)を満足する場合、エッジ分析部67は、変数Nlargeblurの値を1つインクリメントする。
なお、条件式(12)を満足し、かつ条件式(13)または条件式(14)を満足し、かつ条件式(15)を満足するエッジポイントは、一定以上の強度の図18Bまたは図18Dの構造を有するエッジのうち、ぼけが発生し、鮮明さを失ったエッジを構成するエッジポイントであると推定される。換言すれば、そのエッジポイントにおいてぼけが発生していると推定される。
エッジ分析部67は、入力画像から抽出された全てのエッジポイントが注目画素とされるまで、以上の処理を繰り返す。これにより、抽出されたエッジポイントのうち、エッジポイントの数Nedge、エッジポイントの数Nsmallblur、およびエッジポイントの数Nlargeblurが求められる。
ここで、数Nedgeは、条件式(12)を満足するエッジポイントの数であり、数Nsmallblurは、条件式(12)を満足し、かつ、条件式(13)または条件式(14)を満足するエッジポイントの数である。また、数Nlargeblurは、条件式(12)を満足し、かつ、条件式(13)または条件式(14)を満足し、かつ、条件式(15)を満足するエッジポイントの数である。
エッジ分析部67は、算出した数Nsmallblurおよび数Nlargeblurをぼけ度検出部68に供給する。
ステップS59において、ぼけ度検出部68は、エッジ分析部67からの数Nsmallblurおよび数Nlargeblurを用いて次式(16)を計算し、入力画像のぼけ具合の指標となるぼけ度BlurEstimationを、ぼけ度スコアとして求める。
すなわち、ぼけ度BlurEstimationは、一定以上の強度の図18Bまたは図18Dの構造を有するエッジを構成すると推定されるエッジポイントのうち、ぼけが発生しているエッジを構成すると推定されるエッジポイントが占める比率である。したがって、ぼけ度BlurEstimationが大きいほど、入力画像のぼけ具合は大きいと推定される。
ぼけ度検出部68は、ぼけ度スコアを求めると、求められたぼけ度スコアを総合スコア算出部28に供給して、ぼけ度スコア算出処理は終了し、処理は、図12のステップS13に進む。
以上のようにして、ぼけ度スコア算出部23は、入力画像から、入力画像全体のぼけ具合を示すぼけ度スコアを算出する。ぼけ度スコアの算出時には、入力画像に応じて、エッジポイントを抽出する条件、およびエッジポイントの抽出量が適切に制御されるので、より高い精度で入力画像のぼけ具合を検出することができる。
なお、以上においては、入力画像の全体のぼけ具合をぼけ度スコアとして求めると説明したが、入力画像における被写体部分のみを対象として、被写体部分のぼけ具合をぼけ度スコアとして求めてもよい。
[輝度スコア算出処理の説明]
次に、図19のフローチャートを参照して、図12のステップS13の処理に対応する輝度スコア算出処理について説明する。
ステップS81において、被写体抽出部91は、被写体マップ生成処理を行って、取得部22から供給された入力画像から被写体マップを生成し、乗算部92に供給する。なお、被写体マップ生成処理の詳細は後述する。
ステップS82において、乗算部92は、取得部22から供給された入力画像に、被写体抽出部91から供給された被写体マップを乗算して、被写体画像を生成し、ヒストグラム生成部93に供給する。すなわち、被写体画像の注目する画素を注目画素とすると、注目画素と同じ位置にある、被写体マップの画素の画素値と入力画像の画素の画素値との積が注目画素の画素値とされる。この被写体画像は、入力画像における被写体部分だけが表示される画像である。
ステップS83において、ヒストグラム生成部93は、乗算部92から供給された被写体画像に基づいて、被写体画像の画素の輝度値の範囲をビンとした輝度のヒストグラムを生成し、正規化部94に供給する。また、正規化部94は、ヒストグラム生成部93からのヒストグラムを正規化して、スコア算出部95に供給する。
ステップS84において、スコア算出部95は、正規化部94から供給されたヒストグラムに基づいて、K-NN(K-Nearest Neighbor)法などにより輝度スコアを算出し、総合スコア算出部28に供給する。
例えば、スコア算出部95は、予め用意されたプロ画像およびアマ画像について、ステップS81乃至ステップS83の処理と同様の処理により生成された輝度のヒストグラムを複数保持している。スコア算出部95は、予め保持している複数のプロ画像およびアマ画像のそれぞれのヒストグラムと、正規化部94からのヒストグラムとの距離を算出する。
すなわち、スコア算出部95は、入力画像の輝度のヒストグラムと、予め保持している1つのヒストグラムとの各ビンの頻度値の差分の合計値を、それらのヒストグラム同士の距離とする。つまり、同じ代表値のビン同士の頻度値の差分が求められ、各ビンについて求めた差分の総和がヒストグラム同士の距離とされる。
そして、スコア算出部95は、被写体画像のヒストグラムと、予め保持しているヒストグラムとの距離のなかから、その距離の値の小さい順にK個の距離を選択する。
さらに、スコア算出部95は、選択したK個の距離のうち、被写体画像とプロ画像のヒストグラムの距離の数から、被写体画像とアマ画像のヒストグラムの距離の数を減算し、その結果得られた値を輝度スコアとする。
ここで、被写体画像のヒストグラムと、プロ画像またはアマ画像のヒストグラムとの距離は、各ビンの頻度値の差分の総和であるので、それらの画像同士の輝度の分布が似ているほど、距離の値は小さくなる。つまり、距離が小さいほど、被写体画像は、処理対象となっているプロ画像またはアマ画像に近いことになる。
そして、プロ画像のヒストグラムとの距離の数と、アマ画像のヒストグラムとの距離の数との差分が輝度スコアとされるため、被写体画像に輝度の分布が類似するプロ画像がより多いほど、輝度スコアの値は大きくなる。すなわち、この輝度スコアは、被写体画像のプロ画像に対する輝度分布の類似の度合いを示しており、輝度スコアの値が大きい入力画像ほど、より撮れ具合の評価の高い画像となる。
このように、輝度スコアが算出されると、スコア算出部95は、算出した輝度スコアを総合スコア算出部28に供給し、輝度スコア算出処理は終了する。そして、その後、処理は図12のステップS14に進む。
以上のようにして、輝度スコア算出部24は、入力画像から被写体の領域を抽出し、その被写体の領域における輝度の分布と、予め用意されたプロ画像およびアマ画像の被写体の領域における輝度分布とを比較して、輝度スコアを算出する。このように、入力画像の被写体の領域のみを対象として輝度分布を比較し、輝度スコアを算出することで、より適切に入力画像の撮れ具合を評価することができるようになる。
例えば、一般に、画像における被写体の部分の輝度が明るい画像は、背景部分が暗くても上手く撮れた評価の高い画像とされる。この場合に、画像全体を処理の対象とし、輝度分布を指標として画像の撮れ具合を評価すると、被写体の部分の輝度分布は、プロ画像の被写体部分の輝度分布に近いにも関わらず、背景部分の輝度分布が異なると、その画像の評価は低いものとなってしまう。
このように、輝度分布を指標として画像の撮れ具合を評価する場合、画像のうちの被写体の領域の輝度分布が重要であり、背景部分の輝度分布は必ずしも評価に必要とされない。つまり、被写体部分の輝度分布から充分に入力画像の評価は可能であり、背景部分の輝度分布を考慮すると、逆に、評価方法が複雑になってしまったり、誤った評価がされてしまったりする恐れもある。
そこで、輝度スコア算出部24において、入力画像の被写体の領域のみを処理対象として輝度スコアを算出することで、より簡単かつより適切に入力画像の撮れ具合を評価することができるようになる。
[被写体マップ生成処理の説明]
さらに、図20のフローチャートを参照して、図19のステップS81の処理に対応する被写体マップ生成処理について説明する。
ステップS11において、輝度情報抽出部121は、輝度情報抽出処理を行って、取得部22から供給された入力画像に基づいて輝度情報マップを生成し、被写体マップ生成部125に供給する。そして、ステップS112において、色情報抽出部122は、色情報抽出処理を行って、取得部22から供給された入力画像に基づいて色情報マップを生成し、被写体マップ生成部125に供給する。
ステップS113において、エッジ情報抽出部123は、エッジ情報抽出処理を行って、取得部22から供給された入力画像に基づいてエッジ情報マップを生成し、被写体マップ生成部125に供給する。また、ステップS114において、顔情報抽出部124は、顔情報抽出処理を行って、取得部22から供給された入力画像に基づいて顔情報マップを生成し、被写体マップ生成部125に供給する。
なお、これらの輝度情報抽出処理、色情報抽出処理、エッジ情報抽出処理、および顔情報抽出処理の詳細は後述する。
ステップS115において、被写体マップ生成部125は、輝度情報抽出部121乃至顔情報抽出部124から供給された輝度情報マップ乃至顔情報マップを用いて、被写体マップを生成し、図3の乗算部92に供給する。
例えば、被写体マップ生成部125は、情報マップごとに予め求められている重みである、情報重みWbを用いて各情報マップを線形結合し、さらに、その結果得られたマップの画素値に、予め求められた重みである、被写体重みWcを乗算して正規化し、被写体マップとする。
つまり、これから求めようとする被写体マップ上の注目する画素を注目画素とすると、注目画素と同じ位置の各情報マップの画素の画素値に、情報マップごとの情報重みWbが乗算され、情報重みWbの乗算された画素値の総和が、注目画素の画素値とされる。さらに、このようにして求められた被写体マップの各画素の画素値に、被写体マップに対して予め求められた被写体重みWcが乗算されて正規化され、最終的な被写体マップとされる。
なお、より詳細には、色情報マップとして、RGの差分の色情報マップと、BYの差分の色情報マップとが用いられ、エッジ情報マップとして、0度、45度、90度、135度のそれぞれの方向のエッジ情報マップが用いられて、被写体マップが生成される。また、被写体重みWcは予め学習により求められており、正規化は、被写体マップの各画素の画素値が、0または1の何れかの値となるようになされる。すなわち、正規化では、所定の閾値を用いた閾値処理により、各画素の画素値が2値化される。
このようにして被写体マップが生成されて乗算部92に供給されると、被写体マップ生成処理は終了し、その後、処理は図19のステップS82に進む。
以上のようにして、被写体抽出部91は、入力画像の領域から各情報を抽出し、被写体マップを生成する。
[輝度情報抽出処理の説明]
次に、図21乃至図24のフローチャートを参照して、図20のステップS111乃至ステップS114の処理のそれぞれに対応する処理について説明する。
まず、図21のフローチャートを参照して、図20のステップS111の処理に対応する輝度情報抽出処理について説明する。
ステップS151において、輝度画像生成部151は、取得部22から供給された入力画像を用いて輝度画像を生成し、ピラミッド画像生成部152に供給する。例えば、輝度画像生成部151は、入力画像の画素のR、G、およびBの各成分の値に、成分ごとに予め定められた係数を乗算し、係数の乗算された各成分の値の和を、入力画像の画素と同じ位置にある輝度画像の画素の画素値とする。つまり、輝度成分(Y)および色差成分(Cb,Cr)からなるコンポーネント信号の輝度成分が求められる。なお、画素のR、G、およびBの各成分の値の平均値が、輝度画像の画素の画素値とされてもよい。
ステップS152において、ピラミッド画像生成部152は、輝度画像生成部151から供給された輝度画像に基づいて、レベルL1乃至レベルL8の各階層のピラミッド画像を生成し、差分算出部153に供給する。
ステップS153において、差分算出部153は、ピラミッド画像生成部152から供給されたピラミッド画像を用いて差分画像を生成して正規化し、輝度情報マップ生成部154に供給する。正規化は、差分画像の画素の画素値が、例えば0乃至255の間の値となるように行われる。
具体的には、差分算出部153は、各階層の輝度のピラミッド画像のうち、レベルL6およびレベルL3、レベルL7およびレベルL3、レベルL7およびレベルL4、レベルL8およびレベルL4、並びにレベルL8およびレベルL5の各階層の組み合わせのピラミッド画像の差分を求める。これにより、合計5つの輝度の差分画像が得られる。
例えば、レベルL6およびレベルL3の組み合わせの差分画像が生成される場合、レベルL6のピラミッド画像が、レベルL3のピラミッド画像の大きさに合わせてアップコンバートされる。つまり、アップコンバート前のレベルL6のピラミッド画像の1つの画素の画素値が、その画素に対応する、アップコンバート後のレベルL6のピラミッド画像の互いに隣接するいくつかの画素の画素値とされる。そして、レベルL6のピラミッド画像の画素の画素値と、その画素と同じ位置にあるレベルL3のピラミッド画像の画素の画素値との差分が求められ、その差分が差分画像の画素の画素値とされる。
これらの差分画像を生成する処理は、輝度画像にバンドパスフィルタを用いたフィルタ処理を施して、輝度画像から所定の周波数成分を抽出することと等価である。このようにして得られた差分画像の画素の画素値は、各レベルのピラミッド画像の輝度値の差、つまり入力画像における所定の画素における輝度と、その画素の周囲の平均的な輝度との差分を示している。
一般的に、画像において周囲との輝度の差分の大きい領域は、その画像を見る人の目を引く領域であるので、その領域は被写体の領域である可能性が高い。したがって、各差分画像において、より画素値の大きい画素が、より被写体の領域である可能性の高い領域であることを示しているということができる。
ステップS154において、輝度情報マップ生成部154は、差分算出部153から供給された差分画像に基づいて輝度情報マップを生成し、被写体マップ生成部125に供給する。輝度情報マップが輝度情報マップ生成部154から被写体マップ生成部125に供給されると、輝度情報抽出処理は終了し、処理は図20のステップS112に進む。
例えば、輝度情報マップ生成部154は、供給された5つの差分画像を、予め求められた差分画像ごとの重みである差分重みWaにより重み付き加算し、1つの画像を求める。すなわち、各差分画像の同じ位置にある画素の画素値のそれぞれに差分重みWaが乗算されて、差分重みWaが乗算された画素値の総和が求められる。
なお、輝度情報マップの生成時において、各差分画像が同じ大きさとなるように、差分画像のアップコンバートが行われる。
このようにして、輝度情報抽出部121は、入力画像から輝度画像を求め、その輝度画像から輝度情報マップを生成する。輝度情報抽出部121では、入力画像の各領域の輝度と、その領域の周囲の領域の平均的な輝度との差分が特徴量として抽出されて、その特徴量を示す輝度情報マップが生成される。このようにして得られた輝度情報マップによれば、入力画像において、輝度の差の大きい領域、つまり入力画像を一瞥した観察者の目に付きやすい領域を簡単に検出することができる。
[色情報抽出処理の説明]
次に、図22のフローチャートを参照して、図20のステップS112の処理に対応する色情報抽出処理について説明する。
ステップS181において、RG差分画像生成部181は、取得部22から供給された入力画像を用いて、RG差分画像を生成し、ピラミッド画像生成部183に供給する。
ステップS182において、BY差分画像生成部182は、取得部22から供給された入力画像を用いてBY差分画像を生成し、ピラミッド画像生成部184に供給する。
ステップS183において、ピラミッド画像生成部183およびピラミッド画像生成部184は、RG差分画像生成部181からのRG差分画像、およびBY差分画像生成部182からのBY差分画像を用いて、ピラミッド画像を生成する。
例えば、ピラミッド画像生成部183は、解像度の異なる複数のRG差分画像を生成することにより、レベルL1乃至レベルL8の各階層のピラミッド画像を生成し、差分算出部185に供給する。同様に、ピラミッド画像生成部184は、解像度の異なる複数のBY差分画像を生成することにより、レベルL1乃至レベルL8の各階層のピラミッド画像を生成し、差分算出部186に供給する。
ステップS184において、差分算出部185および差分算出部186は、ピラミッド画像生成部183およびピラミッド画像生成部184から供給されたピラミッド画像に基づいて差分画像を生成して正規化し、色情報マップ生成部187および色情報マップ生成部188に供給する。差分画像の正規化では、例えば、画素の画素値が0乃至255の間の値となるようにされる。
例えば、差分算出部185は、各階層のRGの差分のピラミッド画像のうち、レベルL6およびレベルL3、レベルL7およびレベルL3、レベルL7およびレベルL4、レベルL8およびレベルL4、並びにレベルL8およびレベルL5の各階層の組み合わせのピラミッド画像の差分を求める。これにより、合計5つのRGの差分の差分画像が得られる。
同様に、差分算出部186は、各階層のBYの差分のピラミッド画像のうち、レベルL6およびレベルL3、レベルL7およびレベルL3、レベルL7およびレベルL4、レベルL8およびレベルL4、並びにレベルL8およびレベルL5の各階層の組み合わせのピラミッド画像の差分を求める。これにより、合計5つのBYの差分の差分画像が得られる。
これらの差分画像を生成する処理は、RG差分画像またはBY差分画像にバンドパスフィルタを用いたフィルタ処理を施して、RG差分画像またはBY差分画像から所定の周波数成分を抽出することと等価である。このようにして得られた差分画像の画素の画素値は、各レベルのピラミッド画像の特定の色成分の差、つまり入力画像の画素における特定の色の成分と、その画素の周囲の平均的な特定の色の成分との差分を示している。
一般的に、画像において周囲と比べて目立つ色の領域、つまり特定の色成分の周囲との差分の大きい領域は、その画像を見る人の目を引く領域であるので、その領域は被写体の領域である可能性が高い。したがって、各差分画像において、より画素値の大きい画素が、より被写体の領域である可能性の高い領域であることを示しているということができる。
ステップS185において、色情報マップ生成部187および色情報マップ生成部188は、差分算出部185および差分算出部186からの差分画像を用いて色情報マップを生成し、被写体マップ生成部125に供給する。
例えば、色情報マップ生成部187は、差分算出部185から供給されたRGの差分の差分画像を、予め求められた差分画像ごとの差分重みWaにより重み付き加算して、1つのRGの差分の色情報マップとする。
同様に、色情報マップ生成部188は、差分算出部186から供給されたBYの差分の差分画像を、予め求められた差分重みWaにより重み付き加算して、1つのBYの差分の色情報マップとする。なお、色情報マップの生成時において、各差分画像が同じ大きさとなるように、差分画像のアップコンバートが行われる。
色情報マップ生成部187および色情報マップ生成部188が、このようにして得られたRGの差分の色情報マップ、およびBYの差分の色情報マップを被写体マップ生成部125に供給すると、色情報抽出処理は終了し、処理は図20のステップS113に進む。
このようにして、色情報抽出部122は、入力画像から特定の色の成分の差分の画像を求め、その画像から色情報マップを生成する。すなわち、色情報抽出部122では、入力画像の各領域の特定の色成分と、その領域の周囲の領域の平均的な特定の色成分との差分が特徴量として抽出されて、その特徴量を示す色情報マップが生成される。このようにして得られた色情報マップによれば、入力画像において、特定の色成分の差の大きい領域、つまり入力画像を一瞥した観察者の目に付きやすい領域を簡単に検出することができる。
なお、色情報抽出部122では、入力画像から抽出される色の情報として、R(赤)の成分と、G(緑)の成分の差分、およびB(青)の成分と、Y(黄)の成分との差分が抽出されると説明したが、色差成分Crと色差成分Cbなどが抽出されるようにしてもよい。ここで、色差成分Crは、R成分と輝度成分との差分であり、色差成分Cbは、B成分と輝度成分との差分である。
[エッジ情報抽出処理の説明]
図23は、図20のステップS113の処理に対応するエッジ情報抽出処理を説明するフローチャートである。以下、このエッジ情報抽出処理について説明する。
ステップS211において、エッジ画像生成部211乃至エッジ画像生成部214は、取得部22から供給された入力画像に対して、ガボアフィルタを用いたフィルタ処理を施し、0度、45度、90度、および135度の方向のエッジ強度を画素の画素値とするエッジ画像を生成する。そして、エッジ画像生成部211乃至エッジ画像生成部214は、生成されたエッジ画像をピラミッド画像生成部215乃至ピラミッド画像生成部218に供給する。
ステップS212において、ピラミッド画像生成部215乃至ピラミッド画像生成部218は、エッジ画像生成部211乃至エッジ画像生成部214からのエッジ画像を用いて、ピラミッド画像を生成し、差分算出部219乃至差分算出部222に供給する。
例えば、ピラミッド画像生成部215は、解像度の異なる複数の0度方向のエッジ画像を生成することにより、レベルL1乃至レベルL8の各階層のピラミッド画像を生成し、差分算出部219に供給する。同様に、ピラミッド画像生成部216乃至ピラミッド画像生成部218は、レベルL1乃至レベルL8の各階層のピラミッド画像を生成して差分算出部220乃至差分算出部222に供給する。
ステップS213において、差分算出部219乃至差分算出部222は、ピラミッド画像生成部215乃至ピラミッド画像生成部218からのピラミッド画像を用いて差分画像を生成して正規化し、エッジ情報マップ生成部223乃至エッジ情報マップ生成部226に供給する。差分画像の正規化では、例えば、画素の画素値が0乃至255の間の値となるようにされる。
例えば、差分算出部219は、ピラミッド画像生成部215から供給された、各階層の0度方向のエッジのピラミッド画像のうち、レベルL6およびレベルL3、レベルL7およびレベルL3、レベルL7およびレベルL4、レベルL8およびレベルL4、並びにレベルL8およびレベルL5の組み合わせのピラミッド画像の差分を求める。これにより、合計5つのエッジの差分画像が得られる。
同様に、差分算出部220乃至差分算出部222は、各階層のピラミッド画像のうち、レベルL6およびレベルL3、レベルL7およびレベルL3、レベルL7およびレベルL4、レベルL8およびレベルL4、並びにレベルL8およびレベルL5の各階層の組み合わせのピラミッド画像の差分を求める。これにより、各方向のエッジについて、それぞれ合計5つの差分画像が得られる。
これらの差分画像を生成する処理は、エッジ画像にバンドパスフィルタを用いたフィルタ処理を施して、エッジ画像から所定の周波数成分を抽出することと等価である。このようにして得られた差分画像の画素の画素値は、各レベルのピラミッド画像のエッジ強度の差、つまり入力画像の所定の位置のエッジ強度と、その位置の周囲の平均的なエッジ強度との差を示している。
一般的に、画像において周囲と比べてエッジ強度の強い領域は、その画像を見る人の目を引く領域であるので、その領域は被写体の領域である可能性が高い。したがって、各差分画像において、より画素値の大きい画素が、より被写体の領域である可能性の高い領域であることを示しているということができる。
ステップS214において、エッジ情報マップ生成部223乃至エッジ情報マップ生成部226は、差分算出部219乃至差分算出部222からの差分画像を用いて各方向のエッジ情報マップを生成し、被写体マップ生成部125に供給する。
例えば、エッジ情報マップ生成部223は、差分算出部219から供給された差分画像を、予め求められた差分重みWaにより重み付き加算して0度方向のエッジ情報マップとする。
同様に、エッジ情報マップ生成部224乃至エッジ情報マップ生成部226は、差分算出部220乃至差分算出部222からの差分画像を差分重みWaにより重み付き加算して、45度、90度、および135度の各方向のエッジ情報マップを生成する。なお、エッジ情報マップの生成時において、各差分画像が同じ大きさとなるように、差分画像のアップコンバートが行われる。
エッジ情報マップ生成部223乃至エッジ情報マップ生成部226が、このようにして得られた各方向の合計4つのエッジ情報マップを被写体マップ生成部125に供給すると、エッジ情報抽出処理は終了し、処理は図20のステップS114に進む。
このようにして、エッジ情報抽出部123は、入力画像から特定の方向のエッジの差分画像を求め、その差分画像からエッジ情報マップを生成する。すなわち、エッジ情報抽出部123では、入力画像の各領域における特定方向のエッジ強度と、その領域の周囲の領域の平均的な特定方向のエッジ強度との差分が特徴量として抽出されて、その特徴量を示すエッジ情報マップが生成される。このようにして得られた方向ごとのエッジ情報マップによれば、入力画像において、周囲の領域と比べて、特定の方向へのエッジ強度の大きい領域、つまり入力画像を一瞥した観察者の目に付きやすい領域を簡単に検出することができる。
なお、エッジ情報抽出処理では、エッジの抽出にガボアフィルタが用いられると説明したが、その他、Sobelフィルタや、Robertsフィルタなどのエッジ抽出フィルタが用いられるようにしてもよい。
[顔情報抽出処理の説明]
次に、図24のフローチャートを参照して、図20のステップS114の処理に対応する顔情報抽出処理について説明する。
ステップS241において、顔検出部251は、取得部22から供給された入力画像から、人の顔の領域を検出し、その検出結果を顔情報マップ生成部252に供給する。例えば、顔検出部251は、入力画像に対してガボアフィルタを用いたフィルタ処理を施し、入力画像から人の目、口、鼻などの特徴的な領域を抽出することにより、入力画像における顔の領域を検出する。
ステップS242において、顔情報マップ生成部252は、顔検出部251からの検出結果を用いて顔情報マップを生成し、被写体マップ生成部125に供給する。
例えば、入力画像からの顔の検出結果として、顔が含まれると推定される入力画像上の矩形の領域(以下、候補領域と称する)が複数検出されたとする。ここで、入力画像上の所定の位置近傍に複数の候補領域が検出され、それらの候補領域の一部が互いに重なることもあることとする。すなわち、例えば、入力画像上の1つの顔の領域に対して、その顔を含む複数の領域が候補領域として得られた場合には、それらの候補領域の一部が互いに重なることになる。
顔情報マップ生成部252は、顔の検出により得られた候補領域に対して、候補領域ごとに、入力画像と同じ大きさの検出画像を生成する。この検出画像は、検出画像上における処理対象の候補領域と同じ領域内の画素の画素値が、候補領域とは異なる領域内の画素の画素値よりも大きい値とされる。
また、検出画像上の画素の画素値は、より人の顔が含まれる可能性が高いと推定された候補領域の画素と同じ位置の画素ほど、画素値が大きくなる。顔情報マップ生成部252は、このようにして得られた検出画像を足し合わせて、1つの画像を生成して正規化し、顔情報マップとする。したがって、顔情報マップ上において、入力画像上の複数の候補領域の一部が重なる領域と同じの領域の画素の画素値は大きくなり、より顔が含まれる可能性が高いことになる。なお、正規化は、顔情報マップの画素の画素値が、例えば0乃至255の間の値となるようにされる。
顔情報マップが生成されると、顔情報抽出処理は終了し、処理は図20のステップS15に進む。
このようにして、顔情報抽出部124は、入力画像から顔を検出し、その検出結果から顔情報マップを生成する。このようにして得られた顔情報マップによれば、入力画像において、被写体としての人の顔の領域を簡単に検出することができる。
図4の被写体抽出部91では、以上のようにして各情報マップが生成され、それらの情報マップから被写体マップが生成される。
[エッジスコア算出処理の説明]
また、以下、図25乃至図27を参照して、図12のステップS14乃至ステップS16の処理に対応する、エッジスコア算出処理、色分布スコア算出処理、および彩度スコア算出処理について説明する。
まず、図25のフローチャートを参照して、図12のステップS14の処理に対応するエッジスコア算出処理について説明する。この処理は、図9のエッジスコア算出部25により行われる。
ステップS271において、被写体抽出部281は、被写体マップ生成処理を行って、取得部22から供給された入力画像から被写体マップを生成し、反転部282に供給する。なお、この被写体マップ生成処理は、図20を参照して説明した被写体マップ生成処理と同様の処理であるため、その説明は省略する。
ステップS272において、反転部282は、被写体抽出部281から供給された被写体マップに反転処理を施して、乗算部285に供給する。すなわち、被写体マップの各画素の画素値が、1から0に、または0から1に反転される。これにより、反転後の被写体マップを用いれば、入力画像における背景部分の抽出が可能となる。
ステップS273において、フィルタ処理部283は、取得部22から供給された入力画像に、ラプラシアンフィルタを用いたフィルタ処理を施してラプラシアン画像を生成し、正規化部284に供給する。また、正規化部284は、フィルタ処理部283からのラプラシアン画像を正規化し、乗算部285に供給する。
ステップS274において、乗算部285は、正規化部284からのラプラシアン画像に、反転部282からの反転された被写体マップを乗算して背景画像を生成し、ヒストグラム生成部286に供給する。すなわち、同じ位置にあるラプラシアン画像および被写体マップの画素の画素値の積が求められ、その積が背景画像の画素の画素値とされる。このようにして得られる背景画像は、入力画像における被写体の領域ではない部分、つまり背景部分のエッジ強度を示す画像である。
ステップS275において、ヒストグラム生成部286は、乗算部285から供給された背景画像を用いて、入力画像の背景部分におけるエッジの複雑さを示すヒストグラムを生成する。
すなわち、まずヒストグラム生成部286は、背景画像に対して閾値処理を施す。具体的には、背景画像の画素のうち、画素値が閾値以上の画素は、画素値をそのままの値とし、画素値が閾値未満の画素は、その画素の画素値を0とする。
次に、ヒストグラム生成部286は、閾値処理を施した背景画像について、背景画像の画素の画素値の範囲、つまりエッジ強度の値の範囲をビンとしたエッジのヒストグラムを生成する。そして、ヒストグラム生成部286は、生成したエッジのヒストグラムをスコア算出部287に供給する。
ステップS276において、スコア算出部287は、ヒストグラム生成部286から供給されたヒストグラムを用いてエッジスコアを算出し、総合スコア算出部28に供給する。
例えば、閾値処理後の背景画像の画素値の取り得る値の範囲が0から1までであるとする。このとき、スコア算出部287は、ヒストグラムのうち、画素値(エッジ強度)「0」乃至「0.1」の範囲に含まれる1または複数のビンのうち、最も頻度値が高いビンの頻度値を、最大頻度値Maとして抽出する。つまり、ビンの代表値が0から0.1の間であるビンのうち、最も頻度値が大きいビンが選択され、そのビンの頻度値が最大頻度値Maとされる。
また、スコア算出部287は、ヒストグラムのうち、画素値(エッジ強度)「0.8」乃至「0.9」の範囲に含まれる1または複数のビンのうち、最も頻度値が低いビンの頻度値を、最小頻度値Mbとして抽出する。つまり、ビンの代表値が0.8から0.9の間であるビンのうち、最も頻度値が小さいビンが選択され、そのビンの頻度値が最小頻度値Mbとされる。
そして、スコア算出部287は、最大頻度値Maから最小頻度値Mbを減算し、その結果得られた値をエッジスコアとする。このようにして得られるエッジスコアは、入力画像の背景部分における、エッジ強度の小さい画素の数と、エッジ強度の大きい画素の数との差、つまり背景部分におけるエッジの複雑さを示している。
一般に、アマ画像では、背景部分のエッジが複雑であり、最大頻度値Maが大きくなり最小頻度値Mbは小さくなることが多い。つまり、アマ画像に近い画像のエッジスコアは、大きい値となる可能性が高い。一方、プロ画像では、背景部分のエッジが簡素、すなわちエッジ強度の大きい画素が少なく、最大頻度値Maと最小頻度値Mbは小さくなることが多い。つまり、プロ画像に近い画像のエッジスコアは、小さい値となる可能性が高い。したがって、エッジスコアは、その値が小さいほど、入力画像の撮れ具合の評価が高いことを示している。
算出されたエッジスコアが、スコア算出部287から総合スコア算出部28に供給されると、エッジスコア算出処理は終了し、その後、処理は図12のステップS15に進む。
このようにして、エッジスコア算出部25は、入力画像から背景部分を抽出し、背景部分のエッジ強度に基づいて、背景部分のエッジ強度の複雑さを示すエッジスコアを算出する。このように、背景部分のみを処理対象として、エッジスコアを算出することで、より適切に入力画像の撮れ具合を評価することができるようになる。
すなわち、アマ画像は背景部分のエッジが複雑となり、プロ画像は背景部分のエッジが簡素となる傾向がある。そこで、そのような傾向を利用し、背景部分のみのエッジの複雑さを示すエッジスコアを求めることで、被写体部分におけるエッジが複雑か否かに関わらず、より簡単かつ適切に入力画像の撮れ具合を評価することができるようになる。
[色分布スコア算出処理の説明]
次に、図26のフローチャートを参照して、図12のステップS15の処理に対応する色分布スコア算出処理について説明する。
ステップS301において、R成分ヒストグラム生成部311乃至B成分ヒストグラム生成部313は、取得部22から供給された入力画像から、R(赤)、G(緑)、およびB(青)の各成分のヒストグラムを生成し、正規化部314乃至正規化部316に供給する。例えば、R成分のヒストグラムとして、入力画像のR成分の値の範囲をビンとしたヒストグラムが生成される。
また、正規化部314乃至正規化部316は、R成分ヒストグラム生成部311乃至B成分ヒストグラム生成部313からの成分ごとのヒストグラムを正規化し、ヒストグラム生成部317に供給する。
ステップS302において、ヒストグラム生成部317は、正規化部314乃至正規化部316から供給された色成分ごとのヒストグラムを用いて、R,G,Bの各成分からなる色のヒストグラムを生成し、スコア算出部318に供給する。
例えば、R,G,Bの各成分のヒストグラムが、16のビンからなる場合、R,G,およびBの成分からなる色についての163のビンからなる1つのヒストグラムが生成される。このヒストグラムは、入力画像全体における色の分布を示している。
ステップS303において、スコア算出部318は、ヒストグラム生成部317から供給されたヒストグラムに基づいて、K-NN法などにより色分布スコアを算出し、総合スコア算出部28に供給する。
例えば、スコア算出部318は、予め用意されたプロ画像およびアマ画像について、ステップS301およびステップS302の処理と同様の処理により生成された、色のヒストグラムを複数保持している。スコア算出部318は、予め保持している複数のプロ画像およびアマ画像のそれぞれのヒストグラムと、ヒストグラム生成部317からのヒストグラムとの距離を算出する。
ここで、ヒストグラム同士の距離は、入力画像の色のヒストグラムと、予め保持している1つのヒストグラムとの各ビンの頻度値の差分の合計値とされる。
さらに、スコア算出部318は、求めた複数の距離のなかから、その距離の値の小さい順にK個の距離を選択し、選択した距離のうち、入力画像とプロ画像のヒストグラムの距離の数から、入力画像とアマ画像のヒストグラムの距離の数を減算する。そして、スコア算出部318は、その減算の結果得られた値を色分布スコアとする。
このようにして得られた色分布スコアは、上述した輝度スコアと同様に、入力画像に色の分布が類似するプロ画像がより多いほど、その値が大きくなる。すなわち、色分布スコアは、入力画像のプロ画像に対する色分布の類似の度合いを示しており、色分布スコアの値が大きい入力画像ほど、より撮れ具合の評価の高い画像となる。
色分布スコアが算出されると、スコア算出部318は、算出した色分布スコアを総合スコア算出部28に供給し、色分布スコア算出処理は終了する。そして、その後、処理は図12のステップS16に進む。
以上のようにして、色分布スコア算出部26は、入力画像における色分布と、予め用意されたプロ画像およびアマ画像の色分布とを比較して、色分布スコアを算出する。このように入力画像全体の色分布を比較して、色分布スコアを算出することで、より適切に入力画像の撮れ具合を評価することができるようになる。
すなわち、色分布を指標として画像の撮れ具合を評価する場合、画像全体を見る必要があるため、入力画像全体を対象とし、入力画像と他の画像の色分布を比較することで、より適切に入力画像の撮れ具合を評価することができるようになる。
[彩度スコア算出処理の説明]
次に、図27のフローチャートを参照して、図12のステップS16の処理に対応する彩度スコア算出処理について説明する。
ステップS331において、変換部341は、取得部22から供給された入力画像を、H(色相),S(彩度),V(明度)の各成分の値からなる入力画像に変換し、ヒストグラム生成部342に供給する。
ステップS332において、ヒストグラム生成部342は、変換部341から供給された入力画像を用いて、彩度の成分のヒストグラムを生成し、スコア算出部343に供給する。例えば、ヒストグラム生成部342は、入力画像の画素のうち、H(色相)成分が所定の閾値th1以上であり、かつV(明度)成分が所定の閾値th2以上である画素を抽出し、抽出した画素を用いて、画素のS(彩度)成分の値の範囲をビンとするヒストグラムを生成する。
ステップS333において、スコア算出部343は、ヒストグラム生成部342から供給された彩度のヒストグラムを用いて彩度スコアを算出し、総合スコア算出部28に供給する。
例えば、スコア算出部343は、彩度のヒストグラムに対してGMM(Gaussian Mixture Model)による近似を行い、1または複数の分布について、各分布の重要度、平均値、および分散を求める。なお、ここでいう分布とは、近似により得られた全体の分布曲線における1つのピークを有する部分をいう。
スコア算出部343は各分布のうち、最も重要度の高い分布の分散および平均値のそれぞれを、彩度スコアとする。したがって、図12のステップS17の処理においては、彩度スコアとしての彩度の分散および平均値のそれぞれが、変換テーブルにより得点に変換される。
このようにして得られた彩度スコアは、入力画像全体の彩度成分の平均値および分散を示しており、これらの平均値および分散の値によって、入力画像が、よりプロ画像に近いか、またはよりアマ画像に近いかを特定することができる。したがって、彩度スコアにより、入力画像の撮れ具合を評価することができる。
彩度スコアが算出されると、スコア算出部343は、算出した彩度スコアを総合スコア算出部28に供給し、彩度スコア算出処理は終了する。そして、その後、処理は図12のステップS17に進む。
以上のようにして、彩度スコア算出部27は、入力画像における彩度の平均値および分散を彩度スコアとして算出する。このように入力画像全体を対象として、彩度の平均値および分散を求めて彩度スコアとすることにより、より適切に入力画像の撮れ具合を評価することができるようになる。
すなわち、彩度を指標として画像の撮れ具合を評価する場合、画像全体を見る必要があるため、入力画像全体を対象として、彩度の平均値および分散を算出することで、より適切に入力画像の撮れ具合を評価することができるようになる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図28は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)601,ROM(Read Only Memory)602,RAM(Random Access Memory)603は、バス604により相互に接続されている。
バス604には、さらに、入出力インターフェース605が接続されている。入出力インターフェース605には、キーボード、マウス、マイクロホンなどよりなる入力部606、ディスプレイ、スピーカなどよりなる出力部607、ハードディスクや不揮発性のメモリなどよりなる記録部608、ネットワークインターフェースなどよりなる通信部609、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア611を駆動するドライブ610が接続されている。
以上のように構成されるコンピュータでは、CPU601が、例えば、記録部608に記録されているプログラムを、入出力インターフェース605及びバス604を介して、RAM603にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU601)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア611に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア611をドライブ610に装着することにより、入出力インターフェース605を介して、記録部608にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部609で受信し、記録部608にインストールすることができる。その他、プログラムは、ROM602や記録部608に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。