以下、図面を参照して、本発明を適用した実施の形態について説明する。
[画像処理装置の構成]
図1は、本発明を適用した画像処理装置の一実施の形態の構成例を示す図である。
この画像処理装置11は、例えばカメラなどの撮像装置であり、取り込まれた入力画像について、その入力画像が上手く撮れているか否か、つまり入力画像の撮れ具合(入力画像の見映え)の評価を示す得点を算出する。そして、画像処理装置11は、得られた入力画像の得点に基づいて、より見映えのよい入力画像が得られるようにするためのアドバイスを表示する。
ここで、入力画像の評価は、その入力画像が、より写真の専門家により撮像された画像に近いほど高くなり、入力画像の得点の値も大きくなるものとされる。すなわち、得点が高い入力画像ほど、より上手く撮れた画像であるとされる。また、入力画像の得点は、入力画像から抽出される特徴、つまり評価の指標ごとに求められる。
画像処理装置11は、撮像部21、取得部22、ぼけ度得点算出部23、輝度得点算出部24、エッジ得点算出部25、彩度得点算出部26、アドバイス生成部27、表示制御部28、および表示部29から構成される。
撮像部21は、撮像素子などからなり、ユーザの操作に応じて入力画像を撮像して、撮像により得られた入力画像を取得部22および表示制御部28に供給する。例えば、入力画像は、各画素が画素値としてR(赤),G(緑),およびB(青)の成分の値を有する動画像とされる。
取得部22は、撮像部21から供給された入力画像の1フレーム分をキャプチャして、これにより得られた入力画像(静止画像)をぼけ度得点算出部23乃至彩度得点算出部26に供給する。また、取得部22は、ユーザの指示に応じて、キャプチャした入力画像を撮像された静止画像として図示せぬ記録部に供給し、記録させる。
ぼけ度得点算出部23乃至彩度得点算出部26は、取得部22から供給された入力画像から、予め定められた特徴の特徴量を抽出し、その特徴に基づく、入力画像に対する見映えの評価を示す特徴別の得点を算出する。
すなわち、ぼけ度得点算出部23は、予め定められた特徴の特徴量として、入力画像からエッジ強度を抽出し、そのエッジ強度に基づいて、入力画像のぼけ具合を指標とするぼけ度の得点を算出する。輝度得点算出部24は、予め定められた特徴の特徴量として、入力画像から輝度値を抽出し、その輝度値に基づいて、入力画像の被写体部分(前景部分)における輝度値の分布に基づく評価を示す輝度の得点を算出する。
エッジ得点算出部25は、予め定められた特徴の特徴量として、入力画像からエッジ強度を抽出し、そのエッジ強度に基づいて、入力画像の背景部分におけるエッジの複雑さに基づく評価を示すエッジの得点を算出する。彩度得点算出部26は、予め定められた特徴の特徴量として、入力画像から彩度を抽出し、その彩度に基づいて、入力画像における彩度の分布の平均および分散に基づく評価を示す彩度の得点を算出する。
ぼけ度得点算出部23乃至彩度得点算出部26は、算出したぼけ度の得点、輝度の得点、エッジの得点、および彩度の得点をアドバイス生成部27に供給する。なお、以下、ぼけ度の得点、輝度の得点、エッジの得点、および彩度の得点のそれぞれを特に区別する必要のない場合、単に特徴別の得点とも称する。
アドバイス生成部27は、ぼけ度得点算出部23乃至彩度得点算出部26から供給された特徴別の得点に基づいて、ユーザがより見映えのよい入力画像を撮像できるようにするためのアドバイスを生成し、表示制御部28に供給する。例えば、アドバイスは、文字メッセージを表示させるためのデータとされ、入力画像から抽出される特徴(特徴別の得点)ごとに、予め定められたアドバイスが用意されている。
表示制御部28は、撮像部21から供給された入力画像を表示部29に供給して表示させるとともに、アドバイス生成部27からのアドバイスを表示部29に供給し、アドバイスを表示部29に表示させる。表示部29は、例えば液晶ディスプレイなどからなり、表示制御部28の制御に従って入力画像やアドバイスを表示する。
表示部29に表示される入力画像は、画像処理装置11に取り込まれた、いわゆるプレビュー画像であり、ユーザは、表示部29に表示されている入力画像を見ながら画像処理装置11を動かして、画像処理装置11の被写体に対する向きを変えて構図を決定する。
そして、ユーザは、構図を決定すると、画像処理装置11を操作して、撮像を指示する。すると、取得部22は、撮像が指示された時点での入力画像のフレームをキャプチャし、その結果得られた1フレーム分の入力画像を、撮像された入力画像として記録させる。
このとき、ユーザが、表示部29に表示されるアドバイスに従って、入力画像の構図を変更したり、画像処理装置11を操作してホワイトバランス等の調整を行ったりしてから撮像を指示すると、より見映えのよい入力画像が得られる。
[ぼけ度得点算出部の構成]
また、図1のぼけ度得点算出部23は、より詳細には、図2に示すように構成される。
すなわち、ぼけ度得点算出部23は、エッジマップ生成部61、ダイナミックレンジ検出部62、演算パラメータ調整部63、ローカルマックス生成部64、エッジポイント抽出部65、抽出量判定部66、エッジ分析部67、ぼけ度検出部68、および変換部69から構成される。
エッジマップ生成部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は、エッジポイントの分析結果に基づいて、入力画像のぼけ具合を示す指標であるぼけ度を検出し、そのぼけ度をぼけ度スコアとして変換部69に供給する。ここで、ぼけ度スコアは、入力画像のぼけの度合いを示しており、その値が大きいほど入力画像全体がぼけていることを示している。
変換部69は、予め保持している変換テーブルを用いて、ぼけ度検出部68から供給されたぼけ度スコアを、ぼけ度の得点に変換し、アドバイス生成部27に供給する。ぼけ度の得点は、ぼけ度スコア、つまりぼけの度合いを指標とした入力画像に対する見映えの評価であり、入力画像がぼけているほど、その得点の値は小さくなる。
[輝度得点算出部の構成]
また、図1の輝度得点算出部24は、より詳細には図3に示すように構成される。
すなわち、輝度得点算出部24は、平均輝度算出部91、被写体抽出部92、乗算部93、ヒストグラム生成部94、正規化部95、スコア算出部96、および変換部97から構成される。また、取得部22からの入力画像は、平均輝度算出部91、被写体抽出部92、および乗算部93に供給される。
平均輝度算出部91は、取得部22から供給された入力画像に基づいて、入力画像の各画素の輝度値の平均値である平均輝度を算出し、変換部97に供給する。
被写体抽出部92は、取得部22から供給された入力画像に基づいて、入力画像における被写体の含まれる領域を抽出するための被写体マップを生成し、乗算部93に供給する。
例えば、被写体マップの画素の画素値は、その画素と同じ位置にある入力画像の領域が、被写体を含む領域であると推定される場合には「1」とされ、その画素と同じ位置にある入力画像の領域が、被写体を含まない領域であると推定される場合には「0」とされる。また、ここでいう被写体は、ユーザが入力画像を一瞥した場合に、ユーザが注目すると推定される入力画像上の物体、つまりユーザが目を向けると推定される物体とされる。したがって、被写体は必ずしも人に限られる訳ではない。
乗算部93は、取得部22からの入力画像の画素の画素値に、被写体抽出部92からの被写体マップの画素の画素値を乗算することにより、入力画像における被写体の領域の画像である被写体画像を生成し、ヒストグラム生成部94に供給する。被写体画像において、被写体部分の画素の画素値は、その画素と同じ位置の入力画像の画素の画素値と同じ値となり、被写体画像において、被写体を含まない背景部分の画素の画素値は0とされる。つまり、乗算部93における乗算処理によって、入力画像における被写体の領域が特定(抽出)され、その被写体の部分からなる被写体画像が生成される。
ヒストグラム生成部94は、乗算部93からの被写体画像に基づいて、被写体画像の輝度値のヒストグラムを生成し、正規化部95に供給する。正規化部95は、ヒストグラム生成部94からのヒストグラムを正規化し、スコア算出部96に供給する。
また、スコア算出部96は、正規化部95から供給されたヒストグラムに基づいて輝度スコアを算出し、変換部97に供給する。ここで、輝度スコアは、予め用意された見映えのよい画像の前景部分の輝度分布に対する、入力画像の前景部分の輝度分布の類似の度合いを示している。
変換部97は、予め保持している変換テーブルを用いて、スコア算出部96からの輝度スコアを輝度の得点に変換する。変換により得られる輝度の得点は、入力画像の前景部分の輝度分布を指標とした、入力画像の見映えの評価を示す値である。また、変換部97は、変換により得られた輝度の得点と、平均輝度算出部91からの平均輝度とをアドバイス生成部27に供給する。
[被写体抽出部の構成]
ここで、図3の被写体抽出部92は、より詳細には図4に示すように構成される。
すなわち、被写体抽出部92は、輝度情報抽出部121、色情報抽出部122、エッジ情報抽出部123、顔情報抽出部124、動き情報抽出部125、および被写体マップ生成部126から構成される。また、取得部22からの入力画像は、被写体抽出部92の輝度情報抽出部121乃至動き情報抽出部125に供給される。
輝度情報抽出部121乃至動き情報抽出部125は、取得部22から供給された入力画像から被写体の領域がより多く有する特徴の特徴量を抽出して、入力画像の各領域における被写体の領域らしさを示す情報マップを生成する。
具体的には、輝度情報抽出部121は、入力画像から輝度値を抽出して、入力画像の各領域における、輝度に関する情報を示す輝度情報マップを生成し、被写体マップ生成部126に供給する。色情報抽出部122は、入力画像から所定の色の成分を抽出して、入力画像の各領域における、色に関する情報を示す色情報マップを生成し、被写体マップ生成部126に供給する。
エッジ情報抽出部123は、入力画像からエッジ強度を抽出して、入力画像の各領域における、エッジに関する情報を示すエッジ情報マップを生成し、被写体マップ生成部126に供給する。顔情報抽出部124は、入力画像から人の顔の有する特徴の特徴量を抽出して、入力画像の各領域における、被写体としての人の顔に関する情報を示す顔情報マップを生成し、被写体マップ生成部126に供給する。動き情報抽出部125は、入力画像から動きベクトルを抽出して、入力画像の各領域における、動きに関する情報を示す動き情報マップを生成し、被写体マップ生成部126に供給する。
なお、以下、輝度情報抽出部121乃至動き情報抽出部125から出力される、輝度情報マップ乃至動き情報マップのそれぞれを個々に区別する必要のない場合、単に情報マップとも称する。これらの情報マップに含まれる情報は、被写体の含まれる領域により多く含まれる特徴の特徴量を示す情報とされ、その情報が入力画像の各領域に対応させて並べられたものが情報マップとされる。つまり、情報マップは、入力画像の各領域における特徴量を示す情報であるといえる。
したがって、各情報マップにおける、より情報量の多い領域、つまり特徴量の多い領域に対応する入力画像上の領域は、より被写体が含まれる可能性の高い領域となり、各情報マップにより入力画像における被写体の含まれる領域を特定することができる。
被写体マップ生成部126は、輝度情報抽出部121乃至動き情報抽出部125から供給された情報マップを線形結合し、被写体マップを生成する。すなわち、輝度情報マップ乃至動き情報マップの各領域の情報(特徴量)が、同じ位置にある領域ごとに重み付き加算されて被写体マップが生成される。被写体マップ生成部126は、生成した被写体マップを乗算部93に供給する。
[輝度情報抽出部の構成]
次に、図5乃至図9を参照して、図4の輝度情報抽出部121乃至動き情報抽出部125のより詳細な構成について説明する。
図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から供給された差分画像に基づいて輝度情報マップを生成し、被写体マップ生成部126に供給する。
[色情報抽出部の構成]
図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から供給された差分画像に基づいて色情報マップを生成し、被写体マップ生成部126に供給する。色情報マップ生成部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から供給された差分画像に基づいて、各方向のエッジ情報マップを生成し、被写体マップ生成部126に供給する。
[顔情報抽出部の構成]
図8は、図4の顔情報抽出部124のより詳細な構成例を示す図である。
顔情報抽出部124は、顔検出部251および顔情報マップ生成部252から構成される。
顔検出部251は、取得部22から供給された入力画像から被写体としての人の顔の領域を検出し、その検出結果を顔情報マップ生成部252に供給する。顔情報マップ生成部252は、顔検出部251からの検出結果に基づいて顔情報マップを生成し、被写体マップ生成部126に供給する。
[動き情報抽出部の構成]
図9は、図4の動き情報抽出部125のより詳細な構成例を示す図である。
動き情報抽出部125は、ローカルモーションベクタ抽出部281、グローバルモーションベクタ抽出部282、差分算出部283、および動き情報マップ生成部284から構成される。
ローカルモーションベクタ抽出部281は、取得部22から供給された入力画像と、その入力画像とは撮像時刻の異なる他の入力画像とを用いて、入力画像の各画素の動きベクトルをローカルモーションベクタとして検出し、差分算出部283に供給する。グローバルモーションベクタ抽出部282は、取得部22から供給された入力画像と、その入力画像とは撮像時刻の異なる他の入力画像とを用いて、入力画像の各画素の動きベクトルを求め、さらに例えば、それらの各画素の動きベクトルの平均値をグローバルモーションベクタとし、差分算出部283に供給する。このグローバルモーションベクタは、入力画像全体の動きの方向を示している。
差分算出部283は、ローカルモーションベクタ抽出部281からのローカルモーションベクタと、グローバルモーションベクタ抽出部282からのグローバルモーションベクタとの差分の絶対値を求めて動きの差分画像を生成し、動き情報マップ生成部284に供給する。ここで、動きの差分画像における任意の画素の画素値は、その画素と同じ位置にある入力画像の画素のローカルモーションベクタと、入力画像全体のグローバルモーションベクタとの差分の絶対値を示している。したがって、動きの差分画像の画素の画素値は、入力画像の画素に表示される物体(または前景)の入力画像全体に対する、つまり背景に対する相対的な動き量を示している。
動き情報マップ生成部284は、差分算出部283からの動きの差分画像に基づいて動き情報マップを生成し、被写体マップ生成部126に供給する。
[エッジ得点算出部の構成]
さらに、図1のエッジ得点算出部25は、より詳細には図10に示すように構成される。
すなわち、エッジ得点算出部25は、被写体抽出部311、反転部312、フィルタ処理部313、正規化部314、乗算部315、領域エッジ強度算出部316、ヒストグラム生成部317、スコア算出部318、および変換部319から構成される。
被写体抽出部311は、取得部22から供給された入力画像に基づいて被写体マップを生成し、反転部312に供給する。なお、この被写体抽出部311は、図4の被写体抽出部92と同様の構成とされるため、その説明は省略する。
反転部312は、被写体抽出部311から供給された被写体マップの画素の画素値を反転させて乗算部315に供給する。すなわち、被写体マップにおいて、画素値が1である画素は、その画素の画素値が0とされ、反対に、画素値が0である画素は、その画素の画素値が1とされる。したがって、反転後の被写体マップの画素の画素値は、その画素と同じ位置にある入力画像の領域が、被写体が含まれると推定される領域である場合には「0」とされ、その画素と同じ位置にある入力画像の領域が、被写体が含まれないと推定される領域である場合には「1」とされる。つまり、反転後の被写体マップは、入力画像における被写体が含まれない背景領域を特定するためのマップとなる。
フィルタ処理部313は、取得部22から供給された入力画像に、ラプラシアンフィルタを用いたフィルタ処理を施すことにより、入力画像の各領域におけるエッジ強度を画素の画素値とするラプラシアン画像を生成し、正規化部314に供給する。正規化部314は、フィルタ処理部313からのラプラシアン画像を正規化し、乗算部315に供給する。
乗算部315は、正規化部314からのラプラシアン画像の画素の画素値に、反転部312からの反転された被写体マップの画素の画素値を乗算することにより、入力画像における背景の領域のエッジ強度の画像である背景画像を生成する。乗算部315は、生成した背景画像を、領域エッジ強度算出部316およびヒストグラム生成部317に供給する。
背景画像において、被写体を含まない背景部分の画素の画素値は、その画素と同じ位置のラプラシアン画像の画素の画素値と同じ値となり、背景画像において、被写体部分の画素の画素値は0となる。つまり、乗算部315における乗算処理によって、入力画像における背景の領域が特定(抽出)され、その背景部分におけるエッジ強度からなる背景画像が生成される。
領域エッジ強度算出部316は、乗算部315から供給された背景画像に基づいて、背景画像の各端近傍の領域における領域エッジ強度を算出する。
例えば、入力画像を表示部29に表示させた場合に、ユーザが、表示部29の表示画面を正面から見たときに、ユーザから見た入力画像の上側の端および右側の端に対応する背景画像上の端を、上端および右端と呼ぶこととする。また、背景画像上の互いに直交する方向をx方向およびy方向とし、背景画像のx方向側の端が右端であり、背景画像のy方向側の端が上端であるとする。さらに、背景画像のx方向と反対方向側の端を左端とし、背景画像のy方向とは反対方向側の端を下端とする。
この場合、領域エッジ強度算出部316は、背景画像の上端近傍の領域、下端近傍の領域、左端近傍の領域、および右端近傍の領域を、それぞれ上端領域、下端領域、左端領域、および右端領域とし、それらの各領域内の画素の画素値の合計値を、各領域の領域エッジ強度とする。
例えば、背景画像上において、x方向に連続して並ぶ画素からなる画素の列をx方向のラインと呼ぶこととすると、領域エッジ強度算出部316は、背景画像の上端からy方向と反対方向に連続して並ぶ10個のx方向のラインからなる領域を、上端領域とする。そして、領域エッジ強度算出部316は、上端領域内に含まれる画素の画素値の合計値を、上端領域の領域エッジ強度とする。
同様に、背景画像の下端からy方向に連続して並ぶ10個のx方向のラインからなる領域が、下端領域とされる。また、背景画像上において、y方向に連続して並ぶ画素からなる画素の列をy方向のラインと呼ぶこととすると、背景画像の左端からx方向に連続して並ぶ10個のy方向のラインからなる領域が左端領域とされる。さらに、背景画像の右端からx方向と反対方向に連続して並ぶ10個のy方向のラインからなる領域が右端領域とされる。
背景画像の画素の画素値はエッジ強度の値であるので、各領域エッジ強度は、入力画像の端近傍の領域のうちの背景部分の領域のエッジ強度を示している。領域エッジ強度算出部316は、算出した各領域の領域エッジ強度を変換部319に供給する。
ヒストグラム生成部317は、乗算部315からの背景画像に基づいて、背景画像のエッジ強度のヒストグラムを生成し、スコア算出部318に供給する。スコア算出部318は、ヒストグラム生成部317からのヒストグラムに基づいてエッジスコアを算出し、変換部319に供給する。ここで、エッジスコアは、入力画像の背景部分におけるエッジの複雑さを示している。
変換部319は、予め保持している変換テーブルを用いて、スコア算出部318からのエッジスコアをエッジの得点に変換する。変換により得られるエッジの得点は、入力画像の背景部分のエッジの複雑さを指標とした、入力画像の見映えの評価を示す値である。また、変換部319は、変換により得られたエッジの得点と、領域エッジ強度算出部316からの領域エッジ強度とをアドバイス生成部27に供給する。
[彩度得点算出部の構成]
さらに、図1の彩度得点算出部26は、より詳細には図11に示すように構成される。
すなわち、彩度得点算出部26は、変換部341、ヒストグラム生成部342、スコア算出部343、および変換部344から構成される。
変換部341は、取得部22から供給された、R,G,Bの各成分からなる入力画像を、H(色相),S(彩度),V(明度)の各成分の値からなる入力画像に変換し、ヒストグラム生成部342に供給する。
ヒストグラム生成部342は、変換部341から供給された入力画像の画素のうち、特定の条件を満たす画素の彩度の成分のヒストグラムを生成し、スコア算出部343に供給する。スコア算出部343は、ヒストグラム生成部342からのヒストグラムに基づいて彩度スコアを算出し、変換部344に供給する。ここで、彩度スコアは、入力画像全体の彩度成分の平均値および分散値からなる。
変換部344は、予め保持している変換テーブルを用いて、スコア算出部343からの彩度スコアを彩度の得点に変換し、アドバイス生成部27に供給する。変換により得られる彩度の得点は、入力画像の彩度成分の平均値および分散値を指標とした、入力画像の見映えの評価を示す値である。
[撮像処理の説明]
ところで、ユーザが図1の画像処理装置11を操作し、入力画像を撮像する撮像モードを選択すると、画像処理装置11は、ユーザの指示に応じて撮像処理を開始する。
以下、図12のフローチャートを参照して、画像処理装置11による撮像処理について説明する。
ステップS11において、取得部22は、撮像部21により撮像された入力画像を取得して、ぼけ度得点算出部23乃至彩度得点算出部26に供給する。
例えば、取得部22は、入力画像の1フレーム分の画像データを撮像部21から取得する。また、表示制御部28は、撮像部21から供給された入力画像を表示部29に供給し、表示部29に入力画像を表示させる。これにより、ユーザは、表示された入力画像を見ながら、撮像しようとする入力画像の構図を決めることができる。
ステップS12において、ぼけ度得点算出部23は、ぼけ度得点算出処理を行って、入力画像に対するぼけ度の得点を算出し、アドバイス生成部27に供給する。また、ステップS13において、輝度得点算出部24は、輝度得点算出処理を行って、入力画像に対する輝度の得点および平均輝度を算出し、アドバイス生成部27に供給する。
ステップS14において、エッジ得点算出部25は、エッジ得点算出処理を行って、入力画像に対するエッジの得点および領域エッジ強度を算出し、アドバイス生成部27に供給する。ステップS15において、彩度得点算出部26は、彩度得点算出処理を行って、入力画像に対する彩度の得点を算出し、アドバイス生成部27に供給する。
なお、ステップS12乃至ステップS15において行われる、ぼけ度得点算出処理乃至彩度得点算出処理の詳細は後述する。
ステップS16において、アドバイス生成部27は、アドバイス生成処理を行って、ぼけ度得点算出部23乃至彩度得点算出部26から供給された、特徴別の得点、平均輝度、および領域エッジ強度に基づき、アドバイスを生成する。基本的には、特徴別の得点が閾値と比較され、その比較結果に応じて、特徴別に予め用意されたアドバイスが生成される。生成されたアドバイスは、アドバイス生成部27から表示制御部28に供給される。なお、アドバイス生成処理の詳細は後述する。
ステップS17において、表示制御部28は、アドバイス生成部27からのアドバイスを表示部29に供給し、表示部29にアドバイスを表示させる。表示されるアドバイスは、入力画像の特徴別の得点がより高くなるようにするために、どうするべきかを示す文字メッセージとされる。具体的には、例えば、表示部29に「フラッシュをオンして下さい」などの文字メッセージがアドバイスとして表示される。
このようにして表示されたアドバイスに従って、入力画像を撮像すれば、ユーザは、より得点の高い入力画像、つまりより見映えのよい入力画像を得ることができる。ユーザがアドバイスに従って、画像処理装置11を操作した場合には、画像処理装置11は、その操作に応じた処理を適宜行う。例えば、ホワイトバランスが調整されるように、ユーザにより操作がされた場合、画像処理装置11はユーザの操作に応じて、入力画像のホワイトバランスの調整を行う。
ステップS18において、取得部22は、ユーザにより入力画像の撮像が指示されたか否かを判定する。ステップS18において、撮像が指示されたと判定された場合、ステップS19において、撮像部21は入力画像を撮像する。取得部22は、撮像部21から供給された入力画像のうち、撮像が指示された時刻におけるフレームをキャプチャし、その結果得られた画像を撮像された入力画像とする。そして、取得部22は、得られた入力画像を図示せぬ記録部に供給し、記録させる。なお、このとき撮像された入力画像が表示部29に表示されるようにしてもよい。
これに対して、ステップS18において、撮像が指示されなかったと判定された場合、入力画像の撮像は行われず、処理はステップS20に進む。
ステップS18において撮像が指示されなかったと判定されたか、またはステップS19において入力画像が撮像された場合、ステップS20において、画像処理装置11は、処理を終了するか否かを判定する。例えば、ユーザにより撮像モードの終了が指示された場合、処理を終了すると判定される。
ステップS20において、処理を終了しないと判定された場合、処理はステップS11に戻り、上述した処理が繰り返される。すなわち、新たな時刻のフレームの入力画像が表示され、その入力画像に対して生成されたアドバイスが表示される。
一方、ステップS20において、終了すると判定された場合、画像処理装置11は、行っている処理を停止し、撮像処理は終了する。
このようにして、画像処理装置11は、入力画像から特徴別の得点を求め、それらの得点から、より見映えのよい画像を撮像するためのアドバイスを生成して表示させる。このように、特徴別の得点からアドバイスを生成して表示することにより、より的確なアドバイスを提示することができる。
すなわち、入力画像から各特徴の特徴量を抽出し、それらの特徴に基づく指標により入力画像を評価することで、入力画像の構図や被写体によらず、より確実に入力画像を評価することができる。そして、例えば、いくつかの特徴別の得点のうち、1つの得点だけが低ければ、その特徴を指標とする評価が悪いため、入力画像の見映えが悪くなっているということである。そのような場合には、その特徴に対して予め定められたアドバイス、つまりその特徴の得点が高くなるようなアドバイスを提示すれば、入力画像の見映えをよりよいものとすることが可能となる。
画像処理装置11では、特徴別に入力画像に対する見映えが評価され、その評価に応じてアドバイスが提示されるので、入力画像の被写体が人物である場合だけでなく、どのような被写体であっても、より適切なアドバイスを提示することができる。また、特徴別に入力画像を評価するので、入力画像の構図も特定のものに限定されてしまうことはない。
なお、以上においては、入力画像の撮像時にアドバイスが提示される例について説明したが、既に撮像された入力画像に対してアドバイスが提示されるようにしてもよい。そのような場合、記録されている入力画像が指定され、指定された入力画像を対象として図12のステップS12乃至ステップS17の処理が行われ、入力画像に対してアドバイスが提示される。
[ぼけ度得点算出処理の説明]
次に、図13のフローチャートを参照して、図12のステップS12の処理に対応するぼけ度得点算出処理について説明する。
ステップS51において、エッジマップ生成部61は、取得部22から供給された入力画像を用いてエッジマップを生成する。
具体的には、エッジマップ生成部61は、入力画像を2×2画素の大きさのブロックに分割して、次式(1)乃至式(6)により、各ブロック内の画素間の画素値の差分の絶対値MTL-TR乃至絶対値MBL-BRを算出する。
なお、式(1)乃至式(6)において、a,b,c,dのそれぞれは、入力画像の2×2画素の大きさのブロック内の画素の画素値を示している。例えば、図14に示すように、画素値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は、図15の左側に示すように、スケール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)を満足するエッジポイントは、図16A乃至図16Dに示すエッジなど、その構造に関わらず、一定以上の強度を有するエッジを構成するエッジポイントであると推定される。
ここで、図16Aに示すエッジは、急峻なインパルス状のエッジとされ、図16Bに示すエッジは、図16Aのエッジよりは傾きが緩やかなパルス状のエッジとされ、図16Cに示すエッジは、傾きがほぼ垂直な階段状のエッジとされている。また、図16Dに示すエッジは、図16Cのエッジよりは傾きが緩やかな、階段状のエッジとされている。
エッジ分析部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)を満足するエッジポイントは、一定以上の強度を有するが、図16Aまたは図16Cのエッジと比較して強度の弱い、図16Bまたは図16Dの構造を有するエッジを構成するエッジポイントであると推定される。
さらに、エッジ分析部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)を満足するエッジポイントは、一定以上の強度の図16Bまたは図16Dの構造を有するエッジのうち、ぼけが発生し、鮮明さを失ったエッジを構成するエッジポイントであると推定される。換言すれば、そのエッジポイントにおいてぼけが発生していると推定される。
エッジ分析部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は、一定以上の強度の図16Bまたは図16Dの構造を有するエッジを構成すると推定されるエッジポイントのうち、ぼけが発生しているエッジを構成すると推定されるエッジポイントが占める比率である。したがって、ぼけ度BlurEstimationが大きいほど、入力画像のぼけ具合は大きいと推定される。
ぼけ度検出部68は、ぼけ度スコアを求めると、求められたぼけ度スコアを変換部69に供給する。ぼけ度スコアの算出時には、入力画像に応じて、エッジポイントを抽出する条件、およびエッジポイントの抽出量が適切に制御されるので、より高い精度で入力画像のぼけ具合を検出することができる。
ステップS60において、変換部69は、予め保持している変換テーブルを用いて、ぼけ度検出部68からのぼけ度スコアをぼけ度の得点に変換し、アドバイス生成部27に供給する。
例えば、ぼけ度スコアのとり得る値が0乃至1であり、ぼけ度スコアの値が、より大きいほど入力画像全体がぼけているものとすると、変換部69は、図17に示すぼけ度スコアの変換テーブルにより、ぼけ度の得点を得る。
すなわち、ぼけ度スコアが0.2未満である場合、ぼけ度の得点は10とされ、ぼけ度スコアが0.2以上0.3未満である場合、ぼけ度の得点は9とされ、ぼけ度スコアが0.3以上0.5未満である場合、ぼけ度の得点は8とされる。
また、ぼけ度スコアが0.5以上0.7未満である場合、ぼけ度の得点は7とされ、ぼけ度スコアが0.7以上0.9未満である場合、ぼけ度の得点は5とされ、ぼけ度スコアが0.9以上である場合、ぼけ度の得点は0とされる。
ここで、ぼけ度スコアの各範囲の値に対して定まる得点は、予め用意されたプロ画像およびアマ画像から得られたぼけ度スコアに基づいて定められる。なお、プロ画像とは、写真の専門家により撮像された、一般的な評価が高い(見映えのよい)画像をいい、アマ画像とは、素人により撮像された、一般的な評価が低い(見映えの悪い)画像をいう。
例えば、複数のプロ画像およびアマ画像についてぼけ度スコアを求め、図18に示す結果が得られたとする。なお、図中、縦軸はサンプルとされたプロ画像またはアマ画像の数を示しており、横軸はぼけ度スコアの値を示している。
図18では、図中、上側はプロ画像のぼけ度スコアの分布を示しており、図中、下側はアマ画像のぼけ度スコアの分布を示している。
プロ画像のぼけ度スコアは、殆どのサンプルが0.3未満となっており、ぼけ度スコアが0.8以上となるサンプルはない。つまり、画像のぼけ具合が小さいほど、ぼけ度スコアも小さくなるので、プロ画像には、ぼけた画像が殆どないことになる。
これに対して、アマ画像のぼけ度スコアは、殆どのサンプルが0.4未満であるが、0.4以上のものもいくつか存在する。つまり、アマ画像には、全体がぼけた画像もいくつか含まれている。
プロ画像のぼけ度スコアと、アマ画像のぼけ度スコアとを比較すると、プロ画像の分布における矢印A11により示される範囲、つまりぼけ度スコアが0.8以上であるプロ画像は1つもない。これに対し、アマ画像の分布における矢印A12により示される範囲、つまりぼけ度スコアが0.8以上であるアマ画像はいくつか存在する。
したがって、入力画像について求めたぼけ度スコアが、0.8以上である場合には、その入力画像はアマ画像、つまり撮れ具合のよくない、見映えの悪い画像である可能性が高い。そこで、ぼけ度スコアが0.8以上である場合、つまり入力画像がアマ画像である可能性が高い場合には、ぼけ度の得点による評価が低くなるように、ぼけ度の得点が小さい値に定められる。また、一般的に、全体的にぼけのない画像ほど見映えのよい画像とされるため、ぼけ度スコアが小さいほど、ぼけ度の得点が大きい値となるようにされる。
なお、他の特徴別スコアについても、予め用意されたプロ画像およびアマ画像の特徴別スコアを比較することで、各特徴別スコアの値の範囲に対する得点の値が定められ、特徴別スコアごとの変換テーブルが予め求められている。
このとき、プロ画像とアマ画像とで特徴別スコアの分布の違いが顕著な値の範囲に対しては、その違いに応じて、より大きい得点またはより小さい得点を定めることで、より適切(正確)に入力画像の見映えを評価できるようになる。つまり、評価の精度を向上させることができる。
図13のフローチャートの説明に戻り、変換テーブルによりぼけ度スコアがぼけ度の得点に変換されると、ぼけ度得点算出処理は終了し、その後、処理は、図12のステップS13に進む。
以上のように、ぼけ度得点算出部23は、入力画像からぼけ度を検出し、その検出結果に基づいて、ぼけの度合いを指標とする入力画像の見映えの評価を示すぼけ度の得点を算出する。なお、以上においては、入力画像の全体のぼけ具合をぼけ度スコアとして求めると説明したが、入力画像における被写体部分のみを対象として、被写体部分のぼけ具合をぼけ度スコアとして求めてもよい。
[輝度得点算出処理の説明]
次に、図19のフローチャートを参照して、図12のステップS13の処理に対応する輝度得点算出処理について説明する。
ステップS81において、平均輝度算出部91は、取得部22から供給された入力画像から入力画像の平均輝度を算出し、変換部97に供給する。例えば、平均輝度算出部91は、入力画像の各画素について、画素の画素値から画素の輝度値を算出し、さらに各画素の輝度値の平均値を平均輝度として算出する。
ステップS82において、被写体抽出部92は、被写体マップ生成処理を行って、取得部22から供給された入力画像から被写体マップを生成し、乗算部93に供給する。なお、被写体マップ生成処理の詳細は後述する。
ステップS83において、乗算部93は、取得部22から供給された入力画像に、被写体抽出部92から供給された被写体マップを乗算して、被写体画像を生成し、ヒストグラム生成部94に供給する。すなわち、被写体画像の注目する画素を注目画素とすると、注目画素と同じ位置にある、被写体マップの画素の画素値と入力画像の画素の画素値との積が注目画素の画素値とされる。この被写体画像は、入力画像における被写体部分だけが表示される画像である。
ステップS84において、ヒストグラム生成部94は、乗算部93から供給された被写体画像に基づいて、被写体画像の画素の輝度値の範囲をビンとした輝度のヒストグラムを生成し、正規化部95に供給する。また、正規化部95は、ヒストグラム生成部94からのヒストグラムを正規化して、スコア算出部96に供給する。
ステップS85において、スコア算出部96は、正規化部95から供給されたヒストグラムに基づいて、K-NN(K-Nearest Neighbor)法などにより輝度スコアを算出し、変換部97に供給する。
例えば、スコア算出部96は、予め用意されたプロ画像およびアマ画像について、ステップS82乃至ステップS84の処理と同様の処理により生成された輝度のヒストグラムを複数保持している。スコア算出部96は、予め保持している複数のプロ画像およびアマ画像のそれぞれのヒストグラムと、正規化部95からのヒストグラムとの距離を算出する。
すなわち、スコア算出部96は、被写体画像の輝度のヒストグラムと、予め保持している1つのヒストグラムとの各ビンの頻度値の差分の合計値を、それらのヒストグラム同士の距離とする。つまり、同じ代表値のビン同士の頻度値の差分が求められ、各ビンについて求めた差分の総和がヒストグラム同士の距離とされる。
そして、スコア算出部96は、被写体画像のヒストグラムと、予め保持しているヒストグラムとの距離のなかから、その距離の値の小さい順にK個の距離を選択する。
さらに、スコア算出部96は、選択したK個の距離のうち、被写体画像とプロ画像のヒストグラムの距離の数から、被写体画像とアマ画像のヒストグラムの距離の数を減算し、その結果得られた値を輝度スコアとする。
ここで、被写体画像のヒストグラムと、プロ画像またはアマ画像のヒストグラムとの距離は、各ビンの頻度値の差分の総和であるので、それらの画像同士の輝度の分布が似ているほど、距離の値は小さくなる。つまり、距離が小さいほど、被写体画像は、処理対象となっているプロ画像またはアマ画像に近いことになる。
そして、プロ画像のヒストグラムとの距離の数と、アマ画像のヒストグラムとの距離の数との差分が輝度スコアとされるため、被写体画像に輝度の分布が類似するプロ画像がより多いほど、輝度スコアの値は大きくなる。すなわち、この輝度スコアは、被写体画像のプロ画像に対する輝度分布の類似の度合いを示しており、輝度スコアの値が大きい入力画像ほど、より撮れ具合の評価の高い画像、つまり見映えのよい画像となる。
ステップS86において、変換部97は、予め保持している変換テーブルを用いて、スコア算出部96からの輝度スコアを輝度の得点に変換する。例えば、変換部97は、図2の変換部69が保持している変換テーブルと同様にして予め求められた変換テーブルを保持しており、変換テーブルを用いて、輝度スコアを輝度の得点に変換する。輝度スコアの値が大きいほど、被写体部分の輝度分布がプロ画像に近いので、輝度スコアの値が大きいほど、その輝度スコアは、より値の大きい得点に変換される。
変換部97により輝度スコアが輝度の得点に変換されると、変換部97は、得られた輝度の得点と、平均輝度算出部91からの平均輝度とをアドバイス生成部27に供給して輝度得点算出処理は終了し、その後、処理は図12のステップS14に進む。
以上のようにして、輝度得点算出部24は、入力画像から被写体の領域を抽出し、その被写体の領域における輝度の分布と、予め用意されたプロ画像およびアマ画像の被写体の領域における輝度分布とを比較して、輝度スコアを算出する。そして、輝度得点算出部24は、得られた輝度スコアを、変換テーブルにより輝度の得点に変換する。
このように、入力画像の被写体の領域のみを対象として輝度分布を比較し、輝度の得点を算出することで、前景(被写体)部分の輝度分布を指標として、より適切に入力画像の見映えを評価することができるようになる。
例えば、一般に、画像における被写体部分の輝度が明るい画像は、背景部分が暗くても上手く撮れた評価の高い画像とされる。この場合に、画像全体を処理の対象とし、輝度分布を指標として画像の見映えを評価すると、被写体の部分の輝度分布は、プロ画像の被写体部分の輝度分布に近いにも関わらず、背景部分の輝度分布が異なると、その画像の評価は低いものとなってしまう。
このように、輝度分布を指標として画像の見映えを評価する場合、画像のうちの被写体の領域の輝度分布が重要であり、背景部分の輝度分布は必ずしも評価に必要とされない。つまり、被写体部分の輝度分布から充分に入力画像の評価は可能であり、背景部分の輝度分布を考慮すると、逆に、評価方法が複雑になってしまったり、誤った評価がされてしまったりする恐れもある。
そこで、輝度得点算出部24において、入力画像の被写体の領域のみを処理対象として輝度の得点を算出することで、より簡単かつより適切に入力画像の見映えを評価することができるようになる。
[被写体マップ生成処理の説明]
さらに、図20のフローチャートを参照して、図19のステップS82の処理に対応する被写体マップ生成処理について説明する。
ステップS111において、輝度情報抽出部121は、輝度情報抽出処理を行って、取得部22から供給された入力画像に基づいて輝度情報マップを生成し、被写体マップ生成部126に供給する。そして、ステップS112において、色情報抽出部122は、色情報抽出処理を行って、取得部22から供給された入力画像に基づいて色情報マップを生成し、被写体マップ生成部126に供給する。
ステップS113において、エッジ情報抽出部123は、エッジ情報抽出処理を行って、取得部22から供給された入力画像に基づいてエッジ情報マップを生成し、被写体マップ生成部126に供給する。また、ステップS114において、顔情報抽出部124は、顔情報抽出処理を行って、取得部22から供給された入力画像に基づいて顔情報マップを生成し、被写体マップ生成部126に供給する。さらに、ステップS115において、動き情報抽出部125は、動き情報抽出処理を行って、取得部22から供給された入力画像に基づいて動き情報マップを生成し、被写体マップ生成部126に供給する。
なお、これらの輝度情報抽出処理、色情報抽出処理、エッジ情報抽出処理、顔情報抽出処理、および動き情報抽出処理の詳細は後述する。
ステップS116において、被写体マップ生成部126は、輝度情報抽出部121乃至動き情報抽出部125から供給された輝度情報マップ乃至動き情報マップを用いて、被写体マップを生成し、図3の乗算部93に供給する。
例えば、被写体マップ生成部126は、情報マップごとに予め求められている重みである、情報重みWbを用いて各情報マップを線形結合し、さらに、その結果得られたマップの画素値に、予め求められた重みである、被写体重みWcを乗算して正規化し、被写体マップとする。
つまり、これから求めようとする被写体マップ上の注目する画素を注目画素とすると、注目画素と同じ位置の各情報マップの画素の画素値に、情報マップごとの情報重みWbが乗算され、情報重みWbの乗算された画素値の総和が、注目画素の画素値とされる。さらに、このようにして求められた被写体マップの各画素の画素値に、被写体マップに対して予め求められた被写体重みWcが乗算されて正規化され、最終的な被写体マップとされる。
なお、より詳細には、色情報マップとして、RGの差分の色情報マップと、BYの差分の色情報マップとが用いられ、エッジ情報マップとして、0度、45度、90度、135度のそれぞれの方向のエッジ情報マップが用いられて、被写体マップが生成される。また、被写体重みWcは予め学習により求められており、正規化は、被写体マップの各画素の画素値が、0または1の何れかの値となるようになされる。すなわち、正規化では、所定の閾値を用いた閾値処理により、各画素の画素値が2値化される。
このようにして被写体マップが生成されて乗算部93に供給されると、被写体マップ生成処理は終了し、その後、処理は図19のステップS83に進む。
以上のようにして、被写体抽出部92は、入力画像の領域から各情報を抽出し、被写体マップを生成する。
[輝度情報抽出処理の説明]
次に、図21乃至図25のフローチャートを参照して、図20のステップS111乃至ステップS115の処理のそれぞれに対応する処理について説明する。
まず、図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から供給された差分画像に基づいて輝度情報マップを生成し、被写体マップ生成部126に供給する。輝度情報マップが輝度情報マップ生成部154から被写体マップ生成部126に供給されると、輝度情報抽出処理は終了し、処理は図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からの差分画像を用いて色情報マップを生成し、被写体マップ生成部126に供給する。
例えば、色情報マップ生成部187は、差分算出部185から供給されたRGの差分の差分画像を、予め求められた差分画像ごとの差分重みWaにより重み付き加算して、1つのRGの差分の色情報マップとする。
同様に、色情報マップ生成部188は、差分算出部186から供給されたBYの差分の差分画像を、予め求められた差分重みWaにより重み付き加算して、1つのBYの差分の色情報マップとする。なお、色情報マップの生成時において、各差分画像が同じ大きさとなるように、差分画像のアップコンバートが行われる。
色情報マップ生成部187および色情報マップ生成部188が、このようにして得られたRGの差分の色情報マップ、およびBYの差分の色情報マップを被写体マップ生成部126に供給すると、色情報抽出処理は終了し、処理は図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からの差分画像を用いて各方向のエッジ情報マップを生成し、被写体マップ生成部126に供給する。
例えば、エッジ情報マップ生成部223は、差分算出部219から供給された差分画像を、予め求められた差分重みWaにより重み付き加算して0度方向のエッジ情報マップとする。
同様に、エッジ情報マップ生成部224乃至エッジ情報マップ生成部226は、差分算出部220乃至差分算出部222からの差分画像を差分重みWaにより重み付き加算して、45度、90度、および135度の各方向のエッジ情報マップを生成する。なお、エッジ情報マップの生成時において、各差分画像が同じ大きさとなるように、差分画像のアップコンバートが行われる。
エッジ情報マップ生成部223乃至エッジ情報マップ生成部226が、このようにして得られた各方向の合計4つのエッジ情報マップを被写体マップ生成部126に供給すると、エッジ情報抽出処理は終了し、処理は図20のステップS114に進む。
このようにして、エッジ情報抽出部123は、入力画像から特定の方向のエッジの差分画像を求め、その差分画像からエッジ情報マップを生成する。すなわち、エッジ情報抽出部123では、入力画像の各領域における特定方向のエッジ強度と、その領域の周囲の領域の平均的な特定方向のエッジ強度との差分が特徴量として抽出されて、その特徴量を示すエッジ情報マップが生成される。このようにして得られた方向ごとのエッジ情報マップによれば、入力画像において、周囲の領域と比べて、特定の方向へのエッジ強度の大きい領域、つまり入力画像を一瞥した観察者の目に付きやすい領域を簡単に検出することができる。
なお、エッジ情報抽出処理では、エッジの抽出にガボアフィルタが用いられると説明したが、その他、Sobelフィルタや、Robertsフィルタなどのエッジ抽出フィルタが用いられるようにしてもよい。
[顔情報抽出処理の説明]
次に、図24のフローチャートを参照して、図20のステップS114の処理に対応する顔情報抽出処理について説明する。
ステップS241において、顔検出部251は、取得部22から供給された入力画像から、人の顔の領域を検出し、その検出結果を顔情報マップ生成部252に供給する。例えば、顔検出部251は、入力画像に対してガボアフィルタを用いたフィルタ処理を施し、入力画像から人の目、口、鼻などの特徴的な領域を抽出することにより、入力画像における顔の領域を検出する。
ステップS242において、顔情報マップ生成部252は、顔検出部251からの検出結果を用いて顔情報マップを生成し、被写体マップ生成部126に供給する。
例えば、入力画像からの顔の検出結果として、顔が含まれると推定される入力画像上の矩形の領域(以下、候補領域と称する)が複数検出されたとする。ここで、入力画像上の所定の位置近傍に複数の候補領域が検出され、それらの候補領域の一部が互いに重なることもあることとする。すなわち、例えば、入力画像上の1つの顔の領域に対して、その顔を含む複数の領域が候補領域として得られた場合には、それらの候補領域の一部が互いに重なることになる。
顔情報マップ生成部252は、顔の検出により得られた候補領域に対して、候補領域ごとに、入力画像と同じ大きさの検出画像を生成する。この検出画像は、検出画像上における処理対象の候補領域と同じ領域内の画素の画素値が、候補領域とは異なる領域内の画素の画素値よりも大きい値とされる。
また、検出画像上の画素の画素値は、より人の顔が含まれる可能性が高いと推定された候補領域の画素と同じ位置の画素ほど、画素値が大きくなる。顔情報マップ生成部252は、このようにして得られた検出画像を足し合わせて、1つの画像を生成して正規化し、顔情報マップとする。したがって、顔情報マップ上において、入力画像上の複数の候補領域の一部が重なる領域と同じの領域の画素の画素値は大きくなり、より顔が含まれる可能性が高いことになる。なお、正規化は、顔情報マップの画素の画素値が、例えば0乃至255の間の値となるようにされる。
顔情報マップが生成されると、顔情報抽出処理は終了し、処理は図20のステップS115に進む。
このようにして、顔情報抽出部124は、入力画像から顔を検出し、その検出結果から顔情報マップを生成する。このようにして得られた顔情報マップによれば、入力画像において、被写体としての人の顔の領域を簡単に検出することができる。
[動き情報抽出処理の説明]
次に、図25のフローチャートを参照して、図20のステップS115の処理に対応する動き情報抽出処理について説明する。
ステップS271において、ローカルモーションベクタ抽出部281は、取得部22から供給された入力画像を用いて、勾配法などにより入力画像の各画素のローカルモーションベクタを検出し、差分算出部283に供給する。
ステップS272において、グローバルモーションベクタ抽出部282は、取得部22から供給された入力画像を用いてグローバルモーションベクタを検出し、差分算出部283に供給する。
ステップS273において、差分算出部283は、ローカルモーションベクタ抽出部281からのローカルモーションベクタと、グローバルモーションベクタ抽出部282からのグローバルモーションベクタとの差分の絶対値を求めて動きの差分画像を生成する。そして、差分算出部283は、生成した動きの差分画像を動き情報マップ生成部284に供給する。
ステップS274において、動き情報マップ生成部284は、差分算出部283から供給された差分画像を正規化して動き情報マップとし、被写体マップ生成部126に供給する。ここで、差分画像の正規化は、各画素の画素値が、例えば0乃至255の間の値となるようにされる。動き情報マップが生成されると、動き情報抽出処理は終了し、処理は図20のステップS116に進む。
このようにして、動き情報抽出部125は、入力画像から動きを検出し、その検出結果から動き情報マップを生成する。このようにして得られた動き情報マップによれば、入力画像において、動きのある物体の領域を簡単に検出することができる。入力画像において、動きのある物体の領域は、入力画像を一瞥した観察者の目に付きやすい領域であり、被写体である可能性が高い。
図4の被写体抽出部92では、以上のようにして各情報マップが生成され、それらの情報マップから被写体マップが生成される。
[エッジ得点算出処理の説明]
また、以下、図26乃至図28を参照して、図12のステップS14乃至ステップS16の処理に対応する、エッジ得点算出処理、彩度得点算出処理、およびアドバイス生成処理について説明する。
まず、図26のフローチャートを参照して、図12のステップS14の処理に対応するエッジ得点算出処理について説明する。この処理は、図10のエッジ得点算出部25により行われる。
ステップS301において、被写体抽出部311は、被写体マップ生成処理を行って、取得部22から供給された入力画像から被写体マップを生成し、反転部312に供給する。なお、この被写体マップ生成処理は、図20を参照して説明した被写体マップ生成処理と同様の処理であるため、その説明は省略する。
ステップS302において、反転部312は、被写体抽出部311から供給された被写体マップに反転処理を施して、乗算部315に供給する。すなわち、被写体マップの各画素の画素値が、1から0に、または0から1に反転される。これにより、反転後の被写体マップを用いれば、入力画像における背景部分の抽出が可能となる。
ステップS303において、フィルタ処理部313は、取得部22から供給された入力画像に、ラプラシアンフィルタを用いたフィルタ処理を施してラプラシアン画像を生成し、正規化部314に供給する。また、正規化部314は、フィルタ処理部313からのラプラシアン画像を正規化し、乗算部315に供給する。
ステップS304において、乗算部315は、正規化部314からのラプラシアン画像に、反転部312からの反転された被写体マップを乗算して背景画像を生成し、領域エッジ強度算出部316およびヒストグラム生成部317に供給する。すなわち、同じ位置にあるラプラシアン画像および被写体マップの画素の画素値の積が求められ、その積が背景画像の画素の画素値とされる。このようにして得られる背景画像は、入力画像における被写体の領域ではない部分、つまり背景部分のエッジ強度を示す画像である。
ステップS305において、領域エッジ強度算出部316は、乗算部315から供給された背景画像を用いて、背景画像の上端領域、下端領域、左端領域、および右端領域のそれぞれの領域エッジ強度を算出し、変換部319に供給する。例えば、領域エッジ強度算出部316は、背景画像の上端領域内の画素の画素値の合計値を、上端領域の領域エッジ強度として算出する。
ステップS306において、ヒストグラム生成部317は、乗算部315から供給された背景画像を用いて、入力画像の背景部分におけるエッジの複雑さを示すヒストグラムを生成する。
すなわち、まずヒストグラム生成部317は、背景画像に対して閾値処理を施す。具体的には、背景画像の画素のうち、画素値が閾値以上の画素は、画素値をそのままの値とし、画素値が閾値未満の画素は、その画素の画素値を0とする。
次に、ヒストグラム生成部317は、閾値処理を施した背景画像について、背景画像の画素の画素値の範囲、つまりエッジ強度の値の範囲をビンとしたエッジのヒストグラムを生成する。そして、ヒストグラム生成部317は、生成したエッジのヒストグラムをスコア算出部318に供給する。
ステップS307において、スコア算出部318は、ヒストグラム生成部317から供給されたヒストグラムを用いてエッジスコアを算出し、変換部319に供給する。
例えば、閾値処理後の背景画像の画素値の取り得る値の範囲が0から1までであるとする。このとき、スコア算出部318は、ヒストグラムのうち、画素値(エッジ強度)「0.1」乃至「0.2」の範囲に含まれる1または複数のビンのうち、最も頻度値が高いビンの頻度値を、最大頻度値Maとして抽出する。つまり、ビンの代表値が0.1から0.2の間であるビンのうち、最も頻度値が大きいビンが選択され、そのビンの頻度値が最大頻度値Maとされる。
また、スコア算出部318は、ヒストグラムのうち、画素値(エッジ強度)「0.8」乃至「0.9」の範囲に含まれる1または複数のビンのうち、最も頻度値が低いビンの頻度値を、最小頻度値Mbとして抽出する。つまり、ビンの代表値が0.8から0.9の間であるビンのうち、最も頻度値が小さいビンが選択され、そのビンの頻度値が最小頻度値Mbとされる。
そして、スコア算出部318は、最大頻度値Maから最小頻度値Mbを減算し、その結果得られた値をエッジスコアとする。このようにして得られるエッジスコアは、入力画像の背景部分における、エッジ強度の小さい画素の数と、エッジ強度の大きい画素の数との差、つまり背景部分におけるエッジの複雑さを示している。
一般に、アマ画像では、背景部分のエッジが複雑であり、最大頻度値Maが大きくなり最小頻度値Mbは小さくなることが多い。つまり、アマ画像に近い画像のエッジスコアは、大きい値となる可能性が高い。一方、プロ画像では、背景部分のエッジが簡素、すなわちエッジ強度の大きい画素が少なく、最大頻度値Maと最小頻度値Mbは小さくなることが多い。つまり、プロ画像に近い画像のエッジスコアは、小さい値となる可能性が高い。したがって、エッジスコアは、その値が小さいほど、入力画像の見映えの評価が高いことを示している。
ステップS308において、変換部319は、予め保持している変換テーブルを用いて、スコア算出部318からのエッジスコアをエッジの得点に変換する。例えば、変換部319は、図2の変換部69が保持している変換テーブルと同様にして予め求められた変換テーブルを保持しており、変換テーブルを用いて、エッジスコアをエッジの得点に変換する。エッジスコアの値が小さいほど、背景部分のエッジの複雑さが簡素でプロ画像に近いので、エッジスコアの値が小さいほど、そのエッジスコアは、より値の大きい得点に変換される。
変換部319によりエッジスコアがエッジの得点に変換されると、変換部319は、得られたエッジの得点と、領域エッジ強度算出部316からの領域エッジ強度とをアドバイス生成部27に供給してエッジ得点算出処理は終了し、その後、処理は図12のステップS15に進む。
このようにして、エッジ得点算出部25は、入力画像から背景部分を抽出し、背景部分のエッジ強度に基づいて、背景部分のエッジ強度の複雑さを示すエッジスコアを算出する。そして、エッジ得点算出部25は、エッジスコアを変換テーブルによりエッジの得点に変換する。
このように、背景部分のみを処理対象として、エッジの得点を算出することで、より適切に入力画像の見映えを評価することができるようになる。
すなわち、アマ画像は背景部分のエッジが複雑となり、プロ画像は背景部分のエッジが簡素となる傾向がある。そこで、そのような傾向を利用し、背景部分のみのエッジの複雑さを示すエッジスコアを求め、エッジスコアを得点に変換することで、被写体部分におけるエッジが複雑か否かに関わらず、より簡単かつ適切に入力画像の見映えを評価することができるようになる。
[彩度得点算出処理の説明]
次に、図27のフローチャートを参照して、図12のステップS15の処理に対応する彩度得点算出処理について説明する。
ステップS331において、変換部341は、取得部22から供給された入力画像を、H(色相),S(彩度),V(明度)の各成分の値からなる入力画像に変換し、ヒストグラム生成部342に供給する。
ステップS332において、ヒストグラム生成部342は、変換部341から供給された入力画像を用いて、彩度の成分のヒストグラムを生成し、スコア算出部343に供給する。例えば、ヒストグラム生成部342は、入力画像の画素のうち、H(色相)成分が所定の閾値th1以上であり、かつV(明度)成分が所定の閾値th2以上である画素を抽出し、抽出した画素を用いて、画素のS(彩度)成分の値の範囲をビンとするヒストグラムを生成する。
ステップS333において、スコア算出部343は、ヒストグラム生成部342から供給された彩度のヒストグラムを用いて彩度スコアを算出し、変換部344に供給する。
例えば、スコア算出部343は、彩度のヒストグラムに対してGMM(Gaussian Mixture Model)による近似を行い、1または複数の分布について、各分布の重要度、平均値、および分散を求める。なお、ここでいう分布とは、近似により得られた全体の分布曲線における1つのピークを有する部分をいう。
スコア算出部343は各分布のうち、最も重要度の高い分布の分散および平均値のそれぞれを、彩度スコアとする。このようにして得られた彩度スコアは、入力画像全体の彩度成分の平均値および分散を示しており、これらの平均値および分散の値によって、入力画像が、よりプロ画像に近いか、またはよりアマ画像に近いかを特定することができる。したがって、彩度スコアにより、入力画像の見映えを評価することができる。
ステップS334において、変換部344は、予め保持している変換テーブルを用いて、スコア算出部343からの彩度スコアを彩度の得点に変換する。
例えば、変換部344は、図2の変換部69が保持している変換テーブルと同様にして予め求められた変換テーブルを、彩度スコアとしての平均値および分散ごとに保持しており、変換テーブルを用いて、彩度スコアを得点に変換する。これにより、彩度の得点として、平均値の得点、および分散の得点が得られる。
例えば、入力画像の彩度成分の平均値および分散が、よりプロ画像の平均値および分散に近いほど、平均値の得点および分散の得点の値が大きくなるように、彩度スコアが変換される。つまり、彩度成分の平均値および分散を評価の指標とした場合、平均値の得点および分散の得点が高いほど、入力画像はプロ画像に近いことになる。つまり、より入力画像の見映えがよいことになる。
彩度の得点が算出されると、変換部344は、算出した彩度の得点をアドバイス生成部27に供給し、彩度得点算出処理は終了する。そして、その後、処理は図12のステップS16に進む。
以上のようにして、彩度得点算出部26は、入力画像における彩度の平均値および分散を彩度スコアとして算出し、変換テーブルにより彩度スコアを彩度の得点に変換する。このように入力画像全体を対象として、彩度の平均値および分散を求めて彩度の得点を算出することにより、より適切に入力画像の見映えを評価することができるようになる。
すなわち、彩度を指標として画像の見映えを評価する場合、画像全体を見る必要があるため、入力画像全体を対象として、彩度の平均値および分散を算出することで、より適切に入力画像の見映えを評価することができるようになる。
[アドバイス生成処理の説明]
次に、図28のフローチャートを参照して、図12のステップS16の処理に対応するアドバイス生成処理について説明する。
ステップS361において、アドバイス生成部27は、ぼけ度得点算出部23から供給されたぼけ度の得点が、予め定められた閾値thb以下であるか否かを判定する。
ステップS361において、ぼけ度の得点が閾値thb以下でないと判定された場合、処理はステップS365に進む。
ぼけ度の得点は、入力画像全体のぼけの度合いが小さいほど高くなるので、ぼけ度の得点が所定の閾値thbよりも大きい場合、入力画像は全体としてぼけていないことになる。したがって、入力画像のぼけを改善する必要はないので、ぼけ度を指標とした得点をより高くするためのアドバイスは出力されない。
一方、ステップS361において、ぼけ度の得点が閾値thb以下であると判定された場合、ステップS362において、アドバイス生成部27は、エッジ得点算出部25からのエッジの得点が予め定められた閾値the以下であるか否かを判定する。
ステップS362において、エッジの得点が閾値the以下であると判定された場合、ステップS363において、アドバイス生成部27は、被写体にピントを合わせるべき旨のアドバイスを生成し、表示制御部28に供給する。
エッジの得点は、入力画像の背景部分のエッジが複雑なほど低くなるので、エッジの得点がある程度以下である場合、入力画像の背景部分にピント(焦点)が合った状態であるということができる。
したがって、ぼけ度の得点が所定の閾値thb以下であり、かつエッジの得点が閾値the以下であるということは、入力画像の全体がある程度ぼけているが、背景部分にはある程度ピントが合っている状態である。つまり、入力画像の前景(被写体)はぼけていて、背景にピントが合った状態である。
そこで、このような場合、アドバイス生成部27は、ぼけ度の得点をより高くするためのアドバイスとして、被写体にピントを合わせるべきである旨のアドバイスを生成する。このアドバイスに従って焦点調節を行えば、ユーザは、被写体にピントの合った、より見映えのよい画像を得ることができる。
これに対して、ステップS362において、エッジの得点が閾値the以下でないと判定された場合、ステップS364において、アドバイス生成部27は、ピントを合わせるべき旨のアドバイスを生成し、表示制御部28に供給する。
ぼけ度の得点が所定の閾値thb以下であり、かつエッジの得点が閾値theより大きい場合、入力画像の全体がぼけており、背景部分もぼけている状態である。つまり、入力画像内のどの部分にもピント(焦点)が合っていない状態である。
そこで、このような場合には、アドバイス生成部27は、入力画像のぼけを改善するべく、ピントを合わせるべきである旨のアドバイスを生成する。このアドバイスに従って焦点調節を行えば、ユーザは、所望する被写体にピントの合った、より見映えのよい画像を得ることができる。
ステップS361において、ぼけ度の得点が閾値thb以下でないと判定された場合、またはステップS363若しくはステップS364においてアドバイスが生成された場合、処理はステップS365に進む。
ステップS365において、アドバイス生成部27は、エッジ得点算出部25からのエッジの得点が予め定められた閾値the以下であるか否かを判定する。
ステップS365において、エッジの得点が閾値the以下でないと判定された場合、処理はステップS368に進む。
エッジの得点は、入力画像の背景部分が簡素なほど高くなり、その得点が高いほど、よりプロ画像に近い画像、つまりより見映えのよい画像であるとされる。したがって、エッジの得点が所定の閾値theよりも大きい場合、入力画像の背景のエッジは簡素であり、エッジの複雑さを指標とした場合には、入力画像は充分に見映えのよい画像である。そのため、入力画像の背景のエッジの複雑さを改善する必要はなく、エッジの複雑さを指標とした得点をより高くするためのアドバイスは出力されない。
これに対して、ステップS365において、エッジの得点が閾値the以下であると判定された場合、ステップS366において、アドバイス生成部27は、背景をぼかすべき旨のアドバイスを生成し、表示制御部28に供給する。
エッジの得点が閾値the以下である入力画像は、入力画像の背景部分のエッジが複雑であるために、見映えが悪くなっている画像である。そこで、アドバイス生成部27は、背景のエッジの複雑さを指標とする見映えの評価をより高いものとするために、背景をぼかすべきである旨のアドバイスを生成する。このアドバイスに従って焦点調節を行えば、ユーザは、背景が簡素な、より見映えのよい画像を得ることができる。
また、ステップS367において、アドバイス生成部27は、必要に応じて、エッジ得点算出部25から供給された領域エッジ強度を用いて、入力画像の構図を変更すべき旨のアドバイスを生成し、表示制御部28に供給する。
すなわち、アドバイス生成部27は、上端領域、下端領域、左端領域、および右端領域のそれぞれの領域エッジ強度と、予め定められた閾値とを比較して、その比較結果に応じて、構図を変更すべき旨のアドバイスを、適宜、出力する。
各領域の領域エッジ強度は、背景画像の各領域内の画素のエッジ強度の合計であるので、領域エッジ強度の値が大きい領域ほど、より背景部分のエッジが複雑な領域である。
例えば、左端領域の領域エッジ強度も、右端領域の領域エッジ強度も、閾値以上である場合、背景にはエッジの複雑なものが含まれているので、アドバイス生成部27は、背景が簡素な構図となるようにアドバイスを生成する。具体的には、「もっと被写体に寄って下さい」など、被写体側に近寄って撮像すべきである旨のアドバイスが生成される。
このアドバイスに従って撮像を行えば、入力画像における被写体の占める割合が大きく、背景がよりぼける構図となるので、ユーザは、背景が簡素な、より見映えのよい画像を得ることができる。つまり、背景のエッジの複雑さを指標とした場合に、より評価の高い入力画像を得ることができる。
また、例えば、左端領域の領域エッジ強度は閾値より小さいが、右端領域の領域エッジ強度が閾値以上である場合、入力画像の背景の左端側はエッジが簡素であるが、反対の右端側の領域は、エッジが複雑になってしまっている。
そのような場合、アドバイス生成部27は、入力画像の右端側の背景の領域がより簡素になるように構図を変更すべきである旨のアドバイスを生成する。具体的には、例えば、「カメラを左に寄せて下さい」など、ユーザから見て左側に移動すべきである旨のアドバイスが生成される。このアドバイスに従って撮像を行えば、入力画像の背景の両端の領域においてエッジが簡素な構図となるので、ユーザは、背景のエッジの複雑さを指標とした場合に、より評価の高い入力画像を得ることができる。
また、ステップS365において、エッジの得点が閾値the以下でないと判定されたか、またはステップS367においてアドバイスが生成されると、処理はステップS368に進む。ステップS368おいて、アドバイス生成部27は、輝度得点算出部24から供給された輝度の得点が、予め定められた閾値thl以下であるか否かを判定する。
ステップS368において、輝度の得点が閾値thl以下でないと判定された場合、処理はステップS374に進む。
輝度の得点は、入力画像の前景部分の輝度分布がプロ画像により近いほど高くなり、その得点が高いほど、より見映えのよい画像であるとされる。したがって、輝度の得点が所定の閾値thlよりも大きい場合、入力画像の前景の輝度分布は、一般的な評価の高いプロ画像に類似しており、前景の輝度分布を指標とした場合には、入力画像は充分に見映えのよい画像である。そのため、入力画像の前景の輝度分布を改善する必要はなく、輝度の得点をより高くするためのアドバイスは出力されない。
これに対して、ステップS368において、輝度の得点が閾値thl以下であると判定された場合、ステップS369において、アドバイス生成部27は、輝度得点算出部24から供給された平均輝度が、予め定められた閾値thd以下であるか否かを判定する。
ステップS369において、平均輝度が閾値thd以下であると判定された場合、ステップS370において、アドバイス生成部27は、フラッシュをオンすべき旨のアドバイスを生成し、表示制御部28に供給する。
輝度の得点が閾値thl以下である場合、入力画像は、プロ画像と前景の輝度分布が類似していない画像である。このような入力画像は、前景部分が明るすぎるか、または暗すぎる画像である場合が多い。また、入力画像の平均輝度が所定の閾値thd以下である場合、入力画像全体が暗いということである。
したがって、輝度の得点が閾値thl以下であり、かつ平均輝度が閾値thd以下である入力画像は、前景部分だけでなく、入力画像全体が暗すぎる画像である可能性が高い。そこで、アドバイス生成部27は、入力画像全体が明るくなるように、フラッシュをオンすべきである旨のアドバイスを生成する。このアドバイスに従って撮像を行えば、撮像時のフラッシュにより、少なくとも入力画像の前景部分は充分明るくなるので、前景の輝度分布を指標とした場合に、より評価の高い入力画像を得ることができる。
これに対して、ステップS369において、平均輝度が閾値thd以下でないと判定された場合、ステップS371において、アドバイス生成部27は、平均輝度が、予め定められた閾値thu以上であるか否かを判定する。ここで、閾値thuは、閾値thdよりも大きい値であり、入力画像全体が明るすぎるか否かを判定するための閾値とされる。
ステップS371において、平均輝度が閾値thu以上であると判定された場合、ステップS372において、アドバイス生成部27は、明るさを抑えるようにホワイトバランスを調整すべき旨のアドバイスを生成し、表示制御部28に供給する。
輝度の得点が閾値thl以下であり、かつ平均輝度が閾値thu以上である入力画像は、入力画像全体が明るすぎる画像である可能性が高い。そこで、アドバイス生成部27は、入力画像全体の明るさが抑えられるように、ホワイトバランスを調整すべきである旨のアドバイスを生成する。このアドバイスに従ってホワイトバランスの調整を行えば、入力画像全体の明るさが抑えられて、前景の輝度分布を指標とした場合に、より評価の高い入力画像を得ることができる。
一方、ステップS371において、平均輝度が閾値thu以上でないと判定された場合、ステップS373において、アドバイス生成部27は、被写体部分のホワイトバランスを調整すべき旨のアドバイスを生成し、表示制御部28に供給する。
輝度の得点が閾値thl以下であり、かつ平均輝度が閾値thdより大きく、閾値thu未満である入力画像は、入力画像の前景部分だけが明るすぎるか、または暗すぎる画像である可能性が高い。そこで、アドバイス生成部27は、前景部分、つまり被写体の輝度が適切になるように、被写体部分のホワイトバランスを調整すべきである旨のアドバイスを生成する。このアドバイスに従って前景のホワイトバランスの調整を行えば、入力画像の被写体の明るさが適度な明るさとなり、前景の輝度分布を指標とした場合に、より評価の高い入力画像を得ることができる。
また、ステップS368において輝度の得点が閾値thl以下でないと判定されたか、または、ステップS370、ステップS372、若しくはステップS373においてアドバイスが生成されると、処理はステップS374に進む。
ステップS374において、アドバイス生成部27は、彩度得点算出部26から供給された彩度の得点が、予め定められた閾値ths以下であるか否かを判定する。
より詳細には、アドバイス生成部27は、彩度の得点としての彩度成分の平均値の得点が、閾値ths1以下であるか否か、および彩度の得点としての彩度成分の分散の得点が、閾値ths2以下であるか否かを判定する。
そして、アドバイス生成部27は、少なくとも平均値の得点または分散の得点の何れか一方が、閾値ths1または閾値ths2以下である場合、彩度の得点が閾値ths以下であると判定する。
ステップS374において、彩度の得点が閾値ths以下でないと判定された場合、アドバイス生成処理は終了し、処理は図12のステップS17に進む。
彩度の得点は、入力画像の彩度成分の分散および平均値が、プロ画像により近いほど高くなり、その得点が高いほど、全体が鮮やかな見映えのよい画像であるとされる。したがって、彩度の得点が所定の閾値thsよりも大きい場合、入力画像の彩度成分の分散および平均値は、一般的な評価の高いプロ画像に類似しており、彩度を指標とした場合には、入力画像は色鮮やかな見映えのよい画像である。そのため、入力画像の鮮やかさを改善する必要はなく、彩度の得点をより高くするためのアドバイスは出力されない。
一方、ステップS374において、彩度の得点が閾値ths以下であると判定された場合、ステップS375において、アドバイス生成部27は、被写体の色が目立つようにホワイトバランスを調整すべき旨のアドバイスを生成し、表示制御部28に供給する。
彩度の得点が閾値ths以下である場合、入力画像は、プロ画像と彩度の平均値または分散が類似していない画像である。このような入力画像は、全体的に色がくすんだ感じの精彩感のない画像である場合が多い。そこで、アドバイス生成部27は、入力画像全体、特に被写体の部分の色が目立つように、ホワイトバランスを調整するべきである旨のアドバイスを生成する。このアドバイスに従って被写体のホワイトバランスの調整を行えば、被写体を中心に入力画像全体が色鮮やかになり、彩度を指標とした場合に、より評価の高い入力画像を得ることができる。
なお、ステップS375において、ホワイトバランスの調整ではなく、入力画像を明るくするために、露出の調整をすべきである旨のアドバイスが出力されるようにしてもよい。
被写体の色が目立つようにホワイトバランスを調整すべき旨のアドバイスが出力されると、アドバイス生成処理は終了し、その後、処理は図12のステップS17に進む。
このようにして、アドバイス生成部27は、特徴別の得点に応じて、予め用意されたアドバイスを出力する。このように、特徴別の得点に応じて、その得点がより高くなるようなアドバイスを出力することで、各特徴の得点をより高くすることができ、その結果、より見映えのよい入力画像を撮像することができるようになる。すなわち、より適切なアドバイスをユーザに対して提示することができる。
なお、その他、評価の指標として、入力画像全体における色の分布が用いられるようにしてもよい。そのような場合、例えば、入力画像とプロ画像またはアマ画像との色の分布の類似度等から、色の分布の得点が算出され、その得点に応じてアドバイスが出力される。例えば、色分布を用いれば、ホワイトバランスをどのように調整すべきかをアドバイスすることが可能となる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図29は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、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に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。