[第1実施形態]
本発明の第1実施形態について図面を参照して詳細に説明する。図1には、レンズ鏡筒111と、画像処理装置140を備える撮像装置100と、記憶媒体200との構成がブロック図で示されている。撮像装置100は、レンズ鏡筒111から入射される光学像を撮像し、得られた画像を静止画又は動画の画像として、記憶媒体200に記憶させる。
まず、レンズ鏡筒111の構成を説明する。
レンズ鏡筒111は、焦点調整レンズ(以下、「AF(Auto Focus)レンズ」という)112と、レンズ駆動部116と、AFエンコーダ117と、鏡筒制御部118を備える。なお、レンズ鏡筒111は、撮像装置100に着脱可能に接続されてもよいし、撮像装置100と一体であってもよい。
AFレンズ112は、レンズ駆動部116により駆動され、後述する撮像部110の撮像素子119の受光面(光電変換面)に、光学像を導く。
AFエンコーダ117は、AFレンズ112の移動を検出し、AFレンズ112の移動量に応じた信号を、鏡筒制御部118に出力する。ここで、AFレンズ112の移動量に応じた信号とは、例えば、AFレンズ112の移動量に応じて位相が変化するサイン(sin)波信号であってもよい。
鏡筒制御部118は、撮像装置100のCPU190から入力される駆動制御信号に応じて、レンズ駆動部116を制御する。ここで、駆動制御信号とは、AFレンズ112を光軸方向に駆動させる制御信号である。鏡筒制御部118は、駆動制御信号に応じて、例えば、レンズ駆動部116に出力するパルス電圧のステップ数を変更する。
また、鏡筒制御部118は、AFレンズ112の移動量に応じた信号に基づいて、レンズ鏡筒111におけるAFレンズ112の位置(フォーカスポジション)を、CPU190に出力する。ここで、鏡筒制御部118は、例えば、AFレンズ112の移動量に応じた信号を、AFレンズ112の移動方向に応じて積算することで、レンズ鏡筒111におけるAFレンズ112の移動量(位置)を算出してもよい。
レンズ駆動部116は、鏡筒制御部118の制御に応じてAFレンズ112を駆動し、AFレンズ112をレンズ鏡筒111内で光軸方向に移動させる。
次に、撮像装置100の構成を説明する。
撮像装置100は、撮像部110と、画像処理装置140と、表示部150と、バッファメモリ部130と、操作部180と、記憶部160と、CPU190と、通信部170とを備える。
撮像部110は、撮像素子119と、A/D(Analog/Digital)変換部120とを備える。撮像部110は、設定された撮像条件(例えば絞り値、露出値等)に従って、CPU190により制御される。
撮像素子119は、光電変換面を備え、レンズ鏡筒111(光学系)により光電変換面に結像された光学像を電気信号に変換して、A/D変換部120に出力する。撮像素子119は、例えば、CMOS(Complementary Metal Oxide Semiconductor)で構成されていてもよい。また、撮像素子119は、光電変換面の一部の領域について、光学像を電気信号に変換するようにしてもよい(画像切り出し)。
また、撮像素子119は、操作部180を介してユーザからの撮影指示を受け付けた際に得られる画像を、A/D変換部120を介して記憶媒体200に記憶させる。一方、撮像素子119は、操作部180を介してユーザからの撮影指示を受け付けていない状態において、連続的に得られる画像をスルー画像として、バッファメモリ部130及び表示部150に、A/D変換部120を介して出力する。
A/D変換部120は、撮像素子119によって変換された電気信号をデジタル化して、デジタル信号である画像をバッファメモリ部130に出力する。
操作部180は、例えば、電源スイッチ、シャッタボタン、マルチセレクタ(十字キー)、又はその他の操作キーを備え、ユーザによって操作されることでユーザの操作入力を受け付け、操作入力に応じた信号をCPU190に出力する。
画像処理装置140は、記憶部160に記憶されている画像処理条件に基づいて、バッファメモリ部130に一時的に記憶されている画像を画像処理する。そして、画像処理された画像は、通信部170を介して記憶媒体200に記憶される。また、画像処理装置140は、バッファメモリ部130に一時的に記憶されている画像から、画像の特徴の特徴量毎に定まる領域と、後述する「領域の情報(ラベル属性)」とを検出する。そして、画像処理装置140は、画像の特徴の特徴量毎に定まる領域と、領域の情報とを対応付けて、記憶部160及び記憶媒体200に記憶させる。
ここで、領域の情報(ラベル属性)とは、例えば、画像における領域の分布(位置、形状(慣性モーメント))、面積、数、被写体距離(デフォーカス量)、動きベクトル(差分データ)、色相、彩度、明度、テクスチャ(模様)、エッジ、AFコントラスト評価値、設定したフラグ、設定したラベル(識別子)、算出した評点、及び設定した優先度などである。これらについては、画像処理装置140の説明で後述する。
なお、特徴量は、例えば、統計的(Statistics)な特徴量、又は動的(Dynamics)な特徴量であってもよい。
表示部150は、例えば液晶ディスプレイであって、撮像部110によって得られた画像、及び操作画面等を表示する。
バッファメモリ部130は、撮像部110によって撮像された画像を、一時的に記憶する。
記憶部160は、シーン判定の際にCPU190によって参照される判定条件と、シーン判定によって判断されたシーン毎に対応付けられた撮像条件と、領域の情報等とを記憶する。
CPU190は、設定された撮像条件(例えば絞り値、露出値等)に従って撮像部110を制御する。また、CPU190は、領域の情報を、記憶部160又は記憶媒体200から取得する。
そして、CPU190は、領域の情報に基づいて、プレ処理又はポスト処理として、焦点調整(AF)の設定、露出調整(AE)の設定、ホワイトバランス調整(AWB)の設定、被写体像(オブジェクト)の追尾の設定、夜景か否かの判定の設定、色補正処理の設定、被写体像の拡大表示の設定、パンニング表示の設定、ズーム倍率に連動した明るさの最適化の設定、などを制御する。
また、CPU190は、領域の情報に基づいて、トーンカーブ(階調カーブ)の設定、静止画及び動画の同時撮影を実行するか否かの設定などを制御する。
また、CPU190は、領域の情報に基づいて、プレ処理又はポスト処理として、連写するか否かの設定、及び、連写において、合焦させる被写体像の切り替えの設定、焦点距離の連続変更の設定、撮像装置100の発光部(不図示)が発光する閃光の発光量の変更の設定、露光量の変更の設定、又はシャッタスピードの変更を実行するか否かの設定などを制御する。
また、CPU190は、操作部180から入力された「操作入力に応じた信号」に基づいて、静止画又は動画として、画像処理装置140に画像を画像処理させる。
通信部170は、カードメモリ等の取り外しが可能な記憶媒体200と接続され、この記憶媒体200への情報(画像データ、領域の情報など)の書込み、読み出し、あるいは消去を行う。
記憶媒体200は、撮像装置100に対して着脱可能に接続される記憶部であって、情報(画像データ、領域の情報など)を記憶する。なお、記憶媒体200は、撮像装置100と一体であってもよい。
次に、画像処理装置140の詳細について説明する。
画像処理装置140は、特徴量算出部141と、領域検出部142と、評点算出部143と、優先度設定部144とを備える。
特徴量算出部141は、撮像部110が撮像した画像を、バッファメモリ部130から取得する。そして、特徴量算出部141は、バッファメモリ部130から取得した画像における複数の特徴(例えば、色相、彩度、明度、テクスチャ、エッジ等)毎に、その特徴量を算出し、算出した特徴量を領域検出部142に出力する。
領域検出部142は、特徴量算出部141が算出した特徴量を取得する。また、領域検出部142は、撮像部110が撮像した画像を、バッファメモリ部130から取得する。そして、領域検出部142は、取得した画像に含まれる領域であって特徴量毎に定まる領域を、画像から検出する。ここで、領域検出部142が検出する領域は、例えば、撮像部110が撮像した画像に含まれる被写体像の領域でもよいし、また、例えば、記憶媒体200に記憶されていた画像に含まれる被写体像の領域でもよい。
さらに、領域検出部142は、特徴量毎に検出した画像に含まれる領域を識別するラベル(識別子)を設定する(ラベリング処理)。ここで、ラベルとは、特徴量が互いに近い画素により構成された領域であって、グループ化された領域(集合)である。また、ラベリングとは、特徴量が互いに近い(例えば、彩度h=0〜20度に該当する)画素に隣接する領域を、順次検出してグループ化することである。例えば、輝度値(Y)=128±30である領域を検出し(ラベリング)、検出したラベルに名称(例えば、ラベル1、ラベル2、…)をつけるのが一般的である。
領域を検出するための特徴量には、動きベクトル、色相、彩度、明度、テクスチャ・エッジ、距離(デプス、デプスマップ、デフォーカス量)、及び、画像におけるコントラスト(例えば、隣接する画素のコントラスト)などがある。領域検出部142は、これら1種類以上の各評価値を特徴量とし、ラベリングすることで、領域(ラベル)を検出する。
また、例えば、色相を特徴量とした場合に、その特徴量に基づいて複数の領域が検出されたとすると、領域検出部142は、これら複数の領域について、位置、形状、かたまり度(慣性モーメント)、大きさ、異質度・違和感(ある評価値における特異の程度)などを評価する。また、これら評価結果に基づいて、各領域の優先度が設定される。ここで、異質度とは、特徴量のヒストグラムにおける、特異な分布の度合いである。例えば、緑の背景に一輪の赤い花が咲いている画像を、色相に基づいて評価した場合、赤い色相は、色相のヒストグラムにおいて、特異に分布する。
また、領域検出部142は、特徴量のコントラスト値に基づいて、特徴量毎に検出した領域をラベリングしてよい。また、領域を識別するラベルは、例えば、主要な被写体像の領域であるか否か、を識別するラベルであってもよい。また、領域検出部142は、各特徴量のヒストグラムの分布について、その特徴量をいくつかの値域に区分し、値域毎に画像をビットマップ(BMP)に変換して、変換したビットマップをラベリングする。
ここで、主要な被写体像とは、例えば、奥行のある(パースペクティブ)画像において被写体距離が短い(至近側に撮像された)被写体像、一定時間以上静止している被写体像、色相が肌色である被写体像、画角からはみ出していない被写体像、特徴量のヒストグラムで特異な分布をしている値若しくは値域の被写体像、領域の「かたまり度」が高い(慣性モーメントが小さい)被写体像などである。なお、主要な被写体像の領域であるかの条件は、適宜定められてよい。
そして、領域検出部142は、領域を識別するラベルを、領域の情報として、領域毎に記憶部160及び記憶媒体200に記憶させる。
評点算出部143は、異なる特徴(例えば、色相と彩度)の特徴量毎に基づいてラベリングした領域同士を比較するための評点を、ラベル毎に算出する(評点算出処理)。そして、評点算出部143は、算出した評点を、優先度設定部144に出力する。
優先度設定部144は、評点算出部143が算出した評点に基づいて、画像における「領域の優先度」を設定する。この「領域の優先度」とは、人がより注目しているであろう領域の優先度である。優先度設定部144は、設定した「領域の優先度」を、領域の情報として、領域毎に記憶部160及び記憶媒体200に記憶させる。
領域の優先度は、次のように定められてもよい。以下では、優先度を示す数字が小さいほど、領域の優先度が高いものとする。なお、以下に示す優先度は、一例である。
優先度1.
動いている領域(動いている領域が画像に複数ある場合、画角からはみ出していない領域、又は画角の中央に分布する領域)。また、パンニングしたことにより、動いている領域が画像に広く分布している場合は、動いていない領域。
これらの領域は、優先度「1」に設定される。
人は、動いている領域及びパンニングした際に変化量の少ない領域に注目するためである。
優先度2.
画角(構図)、奥行(パースペクト)、被写体距離(デプス、深度)に関する領域。画角の中央付近に分布する領域。画像に奥行がある場合、至近側に分布する領域のうち、画角からはみ出していない領域であって、面積が所定の範囲内である(極端に大きくない)領域。
これらの領域は、優先度「2」に設定される。
主要な被写体像の領域が、至近から無限までの広い範囲に存在する可能性があるためである。
優先度3.
顔検出、顔が検出された領域における肌色検出、動物の毛並みのテクスチャ(模様)、又は植物のテクスチャに基づいて検出した領域。
これらの領域は、優先度「3」に設定される。
人や動物が撮像されている場合、人は、顔に注目するためである。
優先度4.
特異である特徴量(例えば、色相環において不連続である色相)がある領域。背景の領域とそれ以外の領域とに分割された領域。彩度が高い領域。周囲と比較して明度が著しく異なる領域。周囲と比較して色相(色合い)が著しく異なる領域。テクスチャ(模様)が周囲と異なる領域。周囲と比較して空間周波数(画像周波数)が高い領域。ある特徴量において不連続な分布が一定量あり、その特徴量に基づいてラベリングされた結果、領域が形成された場合に、画像において違和感がある領域。
これらの領域は、優先度「4」に設定される。
優先度5.
特定の色相又は彩度に基づいて検出した領域。
これらの領域は、優先度「5」に設定される。
人は、赤色、黄色、肌色の領域に注目するためである。
優先度6.
明度(明暗)に基づいて検出した領域。
これらの領域は、優先度「6」に設定される。
優先度7.
テクスチャ(模様)に基づいて検出した領域。
これらの領域は、優先度「7」に設定される。
優先度8.
空間周波数(画像周波数)に基づいて検出した領域。
これらの領域は、優先度「8」に設定される。
優先度9.
縦又は横に延びたエッジで囲まれた領域であって、一定以上の太さがある領域。
これらの領域は、優先度「9」に設定される。
次に、画像処理装置140における画像処理を説明する。
図2には、画像処理装置140における画像処理の概要が、フローチャートで示されている。まず、画像処理装置140は、スルー画像を取得する。ここで、画像処理装置140は、時間的に連続するスルー画像(スルー画列)を取得してもよい(ステップS1)。そして、画像処理装置140は、プリマティブな画像処理をスルー画像に施す(ステップS2)。ここで、プリマティブな画像処理とは、例えば、簡易的な露出調整(簡易AE)、ホワイトバランス調整(AWB)、ノイズリダクション(NR)である。
特徴量算出部141は、画像の特徴から、その特徴毎に特徴量を算出する(ステップS3)。そして、領域検出部142は、特徴量毎(例えば、特徴が色相である場合、緑色、赤色ごと)に画像から領域を検出する。そして、領域検出部142は、「特徴量の相関」又は「領域間の特徴量の相対距離」などに基づいて、領域とその周囲の領域とで特徴量が異なる度合い(違和感)を検出する(ステップS4)。
また、領域検出部142は、特徴量算出部141が算出した特徴量に基づいてラベリングする。例えば、領域検出部142は、色相軸での相対距離が離れている領域の特徴量にてラベリングし、領域とその周囲の領域とで特徴量が異なる度合い(違和感)を検出することで、撮像された緑色の草原に数本の赤色の花を検出する(ステップS4a)。また、特徴量算出部141は、ラベルが有効か否かを判定する(ステップS4b)。
さらに、特徴量算出部141は、領域とその周囲とで特徴量が異なる度合いに基づいて、後段処理で使用する特徴量を選択する。例えば、特徴量算出部141は、領域とその周囲とで異なる度合いが大きい特徴量を、後段処理で使用する特徴量とする。例えば、領域とその周囲とで、「色相」が大きく異なる場合、特徴量算出部141は、「色相の特徴量」を後段処理で使用させる(ステップS5)。
領域検出部142は、特徴量毎に検出した領域に、その領域を識別するラベルを設定する。また、領域検出部142は、設定したラベルを、領域の情報として、領域毎に記憶部160に記憶させる(ステップS6)。
また、評点算出部143は、領域検出部142が検出した領域毎に評点を算出し、領域の情報として、記憶部160及び記憶媒体200に記憶させる(ステップS7)。そして、優先度設定部144は、評点算出部143が算出した評点に基づいて、領域検出部142が検出した領域の優先度を設定し、領域毎に記憶部160及び記憶媒体200に記憶させる(ステップS8)。
さらに、領域検出部142は、検出した領域を整形する。例えば、領域検出部142は、領域におけるフォーカス用色調のコントラスト評価値が予め定められた閾値以上になるように、領域を整形(拡張)する(ステップS9)。そして、領域検出部142は、「領域の情報」を更新し、記憶部160及び記憶媒体200に記憶させる(ステップS10)。
CPU190は、記憶部160から、領域の情報(ラベル)を取得する。そして、CPU190は、領域検出部142が領域に設定した「ラベル」に基づいて、焦点調整(AF)の設定、露出調整(AE)の設定、ホワイトバランス調整(AWB)の設定、被写体像の追尾の設定、撮影シーン(例えば、夜景か否か)の判定の設定、色補正処理の設定、被写体像の拡大表示の設定、パンニング表示の設定、ズーム倍率に連動した明るさの最適化の設定、などを制御する。
また、CPU190は、領域検出部142が領域に設定した「ラベル」に基づいて、トーンカーブ(階調カーブ)の設定、静止画及び動画の同時撮影(同時録画)を実行するか否かの設定などを制御する。
また、CPU190は、領域検出部142が領域に設定した「ラベル」に基づいて、連写するか否かの設定、及び、連写において、合焦させる被写体像の切り替えの設定、焦点距離の連続変更の設定、撮像装置100の発光部(不図示)が発光する閃光の発光量の変更の設定、露光量の変更の設定、又はシャッタスピードの変更を実行するか否かの設定などを制御する。
また、CPU190は、記憶部160から、領域の情報(領域の優先度)を取得し、優先度設定部144が設定した「領域の優先度」に基づいて、これらの処理を制御してもよい(ステップS11)。
そして、CPU190は、操作部180を介してユーザからの撮影指示を受け付けた場合、撮像部110に撮像させる(ステップS12)。さらに、画像処理装置140は、領域の情報に基づいて、後段処理(画像処理)を実行する(ステップS13)。そして、領域検出部142は、領域の情報を、画像(領域)と対応付けて記憶部160及び記憶媒体200に記憶させる(ステップS14)。
図3には、撮像装置100がスルー画像において被写体をフレーミングし、被写体像を追尾(トラッキング)する場合における、画像処理装置140の画像処理の手順が、フローチャートで示されている。なお、優先ラベル、及び評点がある程度高いラベルが画像に無い(主要被写体がどれか判り難い)場合、撮像装置100は、3A(AF、AWB、AE)処理に移行する。又は、撮像装置100は、コントラストAF領域と評点の低いラベルのコントラストAF領域とを併用し、至近に撮像された領域かつAFコントラスト評価値のピークが高い領域を、優先度の高い領域として採用する。
まず、画像処理装置140は、スルー画像を取得する。ここで、画像処理装置140は、時間的に連続するスルー画像(スルー画列)を取得してもよい(ステップSa1)。そして、画像処理装置140は、プリマティブな画像処理(例えば、簡易的な露出調整)をスルー画像に施す(ステップSa2)。
CPU190は、焦点調整(AF)を実行する。ここで、CPU190は、コントラストスキャンを実行し、AFコントラスト評価値がピークを示したレンズ位置を、画像の部分(ブロック)毎に、記憶部160に記憶させる(ステップSa3)。
なお、CPU190は、AFコントラスト評価値がピークを示したレンズ位置に基づいて、画像における被写体距離の分布を示すデプスマップを作成してもよい。デプスマップについては、図35を用いて後述する。
そして、CPU190は、撮像部110に、debayer(色補間)処理を実行させる。また、CPU190は、画像処理装置140に、ノイズ低減処理(NR)、及びホワイトバランス調整(AWB)を実行させる(ステップSa4)。
特徴量算出部141は、撮像部110が撮像した画像を、バッファメモリ部130から取得し、取得した画像における特徴量として、動きベクトル(動き量、及び動き方向)を算出する(ステップSa5)。そして、特徴量算出部141は、動き量が予め定められた閾値以上であるか否かを判定する(ステップSa6)。
動き量が予め定められた閾値以上である場合(ステップSa6−YES)、領域検出部142は、動き量が予め定められた閾値以上である領域に、「動きラベル」を設定する(ステップSa7)。ここで、動きラベルとは、動きベクトルに基づいて検出した領域であることを示すラベルである。領域検出部142が「動きラベル」を設定する処理については、図5〜7を用いて後述する。さらに、画像処理装置140は、画像処理した画像を、動画として、記憶媒体200に記憶させる(ステップSa8)。そして、画像処理装置140の処理は、ステップSa10に進む。
一方、ステップSa6において、動き量が予め定められた閾値以上でない場合(ステップSa6−NO)、領域検出部142は、特徴量毎に領域を検出し、検出した領域にラベルを設定する(ラベリング処理)。そして、領域検出部142は、ラベル(識別子)を領域の情報として、領域毎に記憶部160に記憶させる。
評点算出部143は、異なる特徴(例えば、色相と彩度)の特徴量に基づいて検出した領域同士を比較するための評点を、領域毎に算出する(ステップSa9)。評点算出部143が領域毎に評点を算出する処理については、図8〜10を用いて後述する。
特徴量算出部141は、撮像部110が撮像した画像を、バッファメモリ部130から取得する(ステップSa10)。そして、特徴量算出部141は、取得した画像における動きベクトル(動き量、及び動き方向)を算出する(ステップSa11)。
特徴量算出部141は、領域検出部142が検出した領域以外の領域で、画像に変化があるか否かを、算出した動きベクトルに基づいて判定する。領域検出部142が検出した領域以外の領域で、画像に変化がある場合(ステップSa12−YES)、画像処理装置140の処理は、ステップSa7に戻る。特徴量算出部141は、算出した動きベクトルに基づいて、さらに、画像が動いている範囲が画像の全域か否かを判定する。画像が動いている範囲が画像の全域である場合(ステップSa12−YES)も同様に、画像処理装置140の処理は、ステップSa7に戻る。
一方、ステップSa12において、領域検出部142が検出した領域以外の領域で、画像に変化がなく、かつ、画像が動いている範囲が、画像の全域でない場合(ステップSa12−NO)、特徴量算出部141は、領域検出部142が検出した領域毎に、動きベクトル以外の特徴量を検出し、評点算出部143に出力する。そして、評点算出部143は、領域検出部142がラベルを付けた領域毎に、評点を算出する。
さらに、優先度設定部144は、評点算出部143が算出した評点に基づいて、画像における領域の優先度を設定する(ステップSa13)。優先度設定部144が領域に優先度を設定する処理については、図11〜16を用いて後述する。そして、優先度設定部144は、領域の優先度をCPU190に出力する。
CPU190は、領域検出部142が領域に付けた「ラベル」に基づいて、領域検出部142が検出した領域に対して、焦点調整(AF)を制御する。例えば、CPU190は、「主要な被写体像の領域であることを識別するラベル」が付いた領域に対して、優先的に合焦するように、焦点調整を制御する。
また、CPU190は、優先度設定部144が設定した「領域の優先度」に基づいて、領域検出部142が検出した領域に対して、焦点調整(AF)を制御してもよい。例えば、CPU190は、優先度が最も高く設定された領域を、主要な被写体像の領域として、その領域に対して優先的に合焦するように、焦点調整を制御してもよい(ステップSa14)。
CPU190は、領域検出部142が明度の階調に基づいて領域に付けたラベルに基づいて、領域検出部142が検出した領域に対して、露出調整(AE)を制御する。例えば、CPU190は、「主要な被写体像の領域であることを識別するラベル」が付いた領域に対して、最適な露出量となるように、露出調整を制御する。
また、CPU190は、優先度設定部144が明度の階調に基づいて設定した「領域の優先度」に基づいて、領域検出部142が検出した領域に対して、露出調整(AE)を制御してもよい。例えば、CPU190は、優先度が最も高く設定された領域を、主要な被写体像の領域として、その領域に対して最適な露出量となるように、露出調整を制御してもよい(ステップSa15)。
CPU190は、領域検出部142が「領域の情報(例えば、白色)」に基づいて領域に付けた「ラベル」に基づいて、領域検出部142が検出した領域に対して、ホワイトバランス調整(AWB)を制御する。例えば、CPU190は、「主要な被写体像の領域であることを識別するラベル」が付いた領域に対して、最適なホワイトバランスとなるように、ホワイトバランス調整を制御する。
また、CPU190は、優先度設定部144が「領域の情報(例えば、白色)」に基づいて設定した「領域の優先度」に基づいて、領域検出部142が検出した領域に対して、ホワイトバランス調整(AWB)を制御してもよい。例えば、CPU190は、優先度が最も高く設定された領域を、主要な被写体像の領域として、その領域に対して最適なホワイトバランスとなるように、ホワイトバランス調整を制御してもよい(ステップSa16)。
CPU190は、領域検出部142が明度の階調に基づいて領域に付けた「ラベル」に基づいて、領域検出部142が検出した領域に対して、画像のシーン判定を実行する。例えば、CPU190は、「主要でない被写体像の領域であることを識別するラベル」が付いた領域を、点光源が撮像された領域として、点光源の領域の分布に基づいて、夜景が撮像された画像であるか否かを判定する。
また、CPU190は、優先度設定部144が明度の階調に基づいて設定した「領域の優先度」に基づいて、画像のシーンを判定してもよい。例えば、CPU190は、優先度が最も低く設定された領域を、点光源が撮像された領域として、点光源の領域の分布に基づいて、夜景が撮像された画像であるか否かを判定してもよい(ステップSa17)。
そして、画像処理装置140の処理は、ステップSa10及びステップSa18に進む。このようにして、画像処理装置140は、ステップSa10〜ステップSa17の処理を繰り返す。
画像処理装置140がステップSa10〜ステップSa17の処理を繰り返す間、CPU190は、撮像部110に、debayer(色補間)処理を実行させる。また、CPU190は、画像処理装置140に、ノイズ低減処理(NR)、ホワイトバランス調整(AWB)、トーンカーブ(階調カーブ)設定、Retinex(階調補正)処理、色補正処理、レンダリング、エッジ強調処理を実行させる(ステップSa18)。
画像処理装置140は、検出した領域を追尾するための演算を実行する範囲である「トラッキングエリア」を示す枠の画像を、バッファメモリ部130に出力する(ステップSa19)。また、画像処理装置140は、トラッキングエリアを示す枠の画像を重畳(オーバーレイ)させた画像を、表示部150に表示させる。このように、画像処理装置140は、ステップSa10〜17に示す処理と並列に、ステップSa18〜ステップSa20の処理を繰り返す。
画像処理装置140がステップSa10〜ステップSa17の処理を繰り返すループにおいて、CPU190は、操作部180を介してユーザからの撮影指示を受け付ける。
図4には、CPU190が操作部180を介して撮影指示を受け付けた場合に、画像処理装置140が実行する画像処理の手順が、フローチャートで示されている。
CPU190は、操作部180を介してユーザからの撮影指示を受け付けた(検出した)場合、撮影指示を受け付けたことを示す信号を、画像処理装置140に出力する(ステップSb1)。撮影指示を受け付けたことを示す信号をCPU190から取得した場合(ステップSb1−YES)、画像処理装置140及びCPU190の処理は、ステップSb2に進む。
CPU190は、領域検出部142が明度の階調により領域に設定した「ラベル」に基づいて、領域検出部142が検出した領域に対して、露出調整(AE、調光)を制御する。 また、CPU190は、優先度設定部144が明度の階調に基づいて設定した「領域の優先度」に基づいて、領域検出部142が検出した領域に対して、露出調整を制御してもよい(ステップSb2)。
CPU190は、領域検出部142が明度の階調により領域に設定した「ラベル」に基づいて、レンズ鏡筒111から入射される光学像を、撮像部110に撮像(露光)させる。 また、CPU190は、優先度設定部144が明度の階調に基づいて設定した「領域の優先度」に基づいて、レンズ鏡筒111から入射される光学像を、撮像部110に撮像(露光)させてもよい(ステップSb3)。
そして、CPU190は、撮像部110に、debayer(色補間)処理を実行させる。また、CPU190は、画像処理装置140に、ノイズ低減処理(NR)を実行させる(ステップSb4)。
さらに、CPU190は、領域検出部142が「領域の情報(色相など)」により領域に設定した「ラベル」に基づいて、領域検出部142が検出した領域に対して、ホワイトバランス調整(AWB)を制御する。また、CPU190は、優先度設定部144が「領域の情報(色相など)」に基づいて設定した「領域の優先度」に基づいて、領域検出部142が検出した領域に対して、ホワイトバランス調整を制御してもよい(ステップSb5)。
画像処理装置140は、画像に対してトーンカーブ(階調カーブ)を設定し、Retinex(領域毎の階調補正)処理を実行する(ステップSb6)。そして、画像処理装置140は、色補正処理、及びレンダリングを実行する(ステップSb7)。さらに、画像処理装置140は、エッジ強調処理を実行する(ステップSb8)。
画像処理装置140は、画像処理した画像を、表示部150に静止画像(フリーズ画像)として表示させる(ステップSb9)。そして、画像処理装置140は、所定の画像フォーマット(例えば、JPEGフォーマット)に画像を変換する(ステップSb10)。そして、画像処理装置140は、所定の画像フォーマットに変換した画像を、記憶媒体200に記憶させる(ステップSb11)。
さらに、領域検出部142は、領域の情報を記憶部160及び記憶媒体200に記憶させる。例えば、画像処理装置140は、領域の情報を、「Exchangeable image file format(Exif(登録商標))」のタグ情報として、記憶部160及び記憶媒体200に記憶させてもよい(ステップSb12)。
次に、画像に大きな動きがある場合、すなわち、動き量が閾値以上である場合(図3のステップSa6を参照)、動き量が閾値以上である領域に、領域検出部142が「動きラベル」を設定する処理(図3のステップSa7を参照)の詳細を説明する。
図5には、スルー画像において、移動する被写体像の領域に、領域検出部142が「動きラベル」を設定する処理の手順が、フローチャートで示されている。まず、特徴量算出部141は、動き量をヒストグラム化する(ステップSc1)。そして、領域検出部142は、ヒストグラムに基づいて、動き量(平均)が閾値以下である画素の数が、予め定められた画素数以上であり、かつ、動き量にピーク値があるか否かを判定(ピーク値を検出)する(ステップSc2)。
スルー画像において、動き量(平均)が閾値以下である画素の数が、予め定められた画素数以上であり、かつ、動き量にピーク値がある場合(ステップSc2−YES)、領域検出部142は、動き量がピーク値を示す画像の位置における「動き量」に基づいて、画素ラベリングを実行する(ステップSc3)。そして、領域検出部142は、動き量がピーク値を示す画像の位置における「動き方向」に基づいて、例えば、動き方向を角度45度ずつ8つの角度に分類して、分類した角度ごとに画素ラベリングを実行する(ステップSc4)。
さらに、領域検出部142は、動き量に基づいて検出した領域と、動き方向に基づいて検出した領域との重なる部分(位置的積集合)を検出し、検出した重なる部分の面積を算出する(ステップSc5)。また、領域検出部142は、スルー画像において孤立した領域(ノイズ)を除去する(ステップSc6)。
また、領域検出部142は、ラベリングした領域に、動きラベルを設定する。ここで、動きラベルを付けた領域が、複数ある場合、優先度設定部144は、色相、彩度、特異である色相(例えば、色相環において不連続である色相)、特異である明度(例えば、周囲と比較して著しく異なる明度)などに基づいて、画像における領域の優先度を設定する(ステップSc7)。さらに、領域検出部142は、動きラベルを、領域の情報として、領域毎に記憶部160に記憶させる(ステップSc8)。
図6には、スルー画像において、移動する被写体像を追尾する場合に、領域検出部142が「動きラベル」を設定する処理の手順が、フローチャートで示されている。
スルー画像において、動き量(平均)が閾値以下である画素の数が、予め定められた画素数より少ない、又は動き量にピーク値がない場合(図5のステップSc2−NO)、さらに、領域検出部142は、動き量(平均)が閾値以上である画素の数が、予め定められた画素数以上であり、かつ、動き量のヒストグラムにおいて、動き量が少ない側にピーク値があるか否か、を判定(ピーク値を検出)する(ステップSc9)。
動き量(平均)が閾値以上である画素の数が、予め定められた画素数以上であり、かつ、動き量のヒストグラムにおいて、動き量が少ない側にピーク値がある場合(ステップSc9−YES)、領域検出部142は、動き量がピーク値を示す領域に対して、画素ラベリングを実行する(ステップSc10)。
そして、領域検出部142は、動き量に基づいて画素ラベリングした領域を、色相又は明度に基づいて、再びラベリングする(ステップSc11)。また、領域検出部142は、再びラベリングした領域に、動きラベルを設定する(ステップSc12)。さらに、画像処理装置140は、動きラベルを、領域の情報として、領域毎に記憶部160に記憶させる(ステップSc13)。
図7には、スルー画像において、降雪、降雨、又は噴水などが撮像されている場合に、領域検出部142が「動きラベル」を設定する処理の手順が、フローチャートで示されている。動き量(平均)が閾値以上である画素の数が、予め定められた画素数より少ない、又は動き量のヒストグラムにおいて、動き量が少ない側にピーク値がない場合(図6のステップSc9−NO)、領域検出部142は、スルー画像において、動き量が二分され、かつ動き方向が一定であるか否か、を判定する(ステップSc14)。
スルー画像において、動き量が二分され、かつ動き方向が一定である場合(ステップSc14−YES)、領域検出部142は、動き量が閾値以上である画素が、画像に分散しているか否かを判定する(ステップSc15)。動き量が閾値以上である画素が、画像に分散している場合(ステップSc15−YES)、領域検出部142は、ヒストグラムにおいて動き量が少ない側のピーク値を示す領域に対して、画素ラベリングを実行する(ステップSc16)。
そして、領域検出部142は、検出した領域において面積が大きい色相(平均色相)を算出する(ステップSc17)。さらに、領域検出部142は、時間的に連続するスルー画像(スルー画列)の一部を、動きベクトルによりマスクして、複数のマスク画像を作成する(ステップSc18)。領域検出部142は、スルー画像(スルー画列)の一部を、動きベクトルによりマスクすることで、例えば、雨粒以外の領域を、マスク画像に抽出する。そして、領域検出部142は、作成した複数のマスク画像を合成し、合成したマスク画像を、色相に基づいて、再びラベリングする(ステップSc19)。
領域検出部142は、ラベリングした領域に、動き量が少ない領域(例えば、雨粒以外の領域)であることを示すラベル(以下、「通常ラベル」という)を設定する(ステップSc20)。そして、領域検出部142は、領域の情報として、通常ラベルを領域毎に記憶部160に記憶させる(ステップSc21)。
一方、スルー画像において、動き量が二分されていない、又は動き方向が一定でない場合(ステップSc14−NO)、領域検出部142の処理は、図3のステップSa8に進む。同様に、動き量が閾値以上である画素が、画像に分散していない場合(ステップSc15−NO)、領域検出部142の処理は、図3のステップSa8に進む。
次に、画像に大きな動きがない場合、すなわち、動き量が閾値以上でない場合(図3のステップSa6を参照)に、領域検出部142が、特徴量毎に領域を検出し、検出した領域にラベルを設定する処理(図3のステップSa9を参照)の詳細を説明する。
図8には、彩度S(C)及び色相hの特徴量毎に検出した領域に、ラベルを設定するラベリング処理の手順が、フローチャートで示されている。なお、ステップSd3〜8と、ステップSd10〜13とは、並列に処理される。
特徴量算出部141は、画像におけるRGB色空間を、Lab色空間に変換する。画像処理装置140は、後段処理において、Lab色空間で表現されたデータを使用する(ステップSd1)。そして、特徴量算出部141は、彩度S(C)及び色相hの特徴量を、画像から算出する(ステップSd2)。
まず、特徴量算出部141は、彩度S(C)のヒストグラムを算出する(ステップSd3)。そして、領域検出部142は、彩度が特に高い領域を検出する。ここで、領域検出部142は、ヒストグラムの分布に基づいて、高彩度領域にピークがあるか否かを判定する(ピークと谷を検出)。さらに、領域検出部142は、ピーク値と平均彩度との差に基づいて、彩度の特異度を判定する(ステップSd4)。
図9には、彩度S(C)のヒストグラムと、その部分拡大図とが示されている。領域検出部142は、ヒストグラムにおけるピークS1と谷を検出する。
図8に戻り、手順の説明を続ける。さらに、特徴量算出部141は、ピーク波形の標準偏差σを算出する(ステップSd5)。ここで、標準偏差σが予め定められた閾値以下である(鋭いピーク波形である)場合、領域検出部142は、そのピーク波形を示す領域(例えば、3σの範囲)に対して、ラベリング処理を実行する(ステップSd6)。
領域検出部142は、彩度に基づいて検出した領域と、ステップSd10〜12に後述する「色相に基づいて検出した領域」とが重なる部分のビットマップ画像を作成する(異なる特徴の組み合わせ)。そして、評点算出部143は、彩度に基づいて検出した領域と、色相に基づいて検出した領域とが重なる部分の評点に、「2」点を加算する。例えば、彩度に基づいて検出した領域と、赤色に基づいて検出した領域(評点=3点)とが重なる部分の評点は、「5=3+2」点となる(ステップSd7)。
さらに、領域検出部142は、彩度に基づいて検出した領域と、色相に基づいて検出した領域とが重なる部分に、彩度に基づいて検出した領域であることを示す「彩度ラベル」を設定する(ステップSd8)。そして、領域検出部142の処理は、ステップSd9に進む。
一方、領域検出部142は、ステップSd2の次に、色相hに基づいて領域を検出する。このために、特徴量算出部141は、画像から色相hを算出する。そして、領域検出部142は、特徴量算出部141が算出した色相毎に、1枚の画像から複数のビットマップ画像を作成する(ステップSd10)。さらに、領域検出部142は、色相に基づいて検出した領域に対して、ラベリング処理を実行する(ステップSd11)。
さらに、評点算出部143は、赤又は黄色相の領域の評点を「3」点と、紫、シアン、又はエメラルド色相の領域の評点を「2」点と、その他の色相の領域の評点を「1」点と算出する(ステップSd12)。
また、領域検出部142は、色相に基づいて検出した領域に、色相に基づいて検出した領域であることを示す「色相ラベル」を設定する(ステップSd13)。そして、領域検出部142の処理は、図8のステップSd9に進む。
優先度設定部144は、画像における領域の優先度を、その領域の評点に応じて設定する。そして、優先度設定部144は、評点に応じて設定した「領域の優先度」を、領域毎に記憶部160に記憶させる。
また、領域検出部142は、優先度設定部144が設定した評点が高い領域に、優先度が高い領域であることを示す「優先ラベル」を設定する。さらに、領域検出部142は、動きラベルを設定した領域のうち、優先度が最も高い領域に、「最優先ラベル」を設定する(ステップSd9)。そして、領域検出部142は、設定したラベル(識別子)を、領域毎に記憶部160に記憶させる。
CPU190は、領域検出部142が設定した「ラベル」に基づいて、領域検出部142が検出した領域に対して、焦点調整(AF)などを制御する(例えば、図2のステップS11と、図3のステップSa14とを参照)。例えば、CPU190は、「最優先ラベル」が設定された領域を、最も主要な被写体像の領域として、その領域に対して優先的に合焦するように、焦点調整(AF)を制御する。
また、CPU190は、優先度設定部144が設定した「領域の優先度」に基づいて、領域検出部142が検出した領域に対して、焦点調整(AF)などを制御してもよい。例えば、CPU190は、優先度が最も高く設定された領域を、主要な被写体像の領域として、その領域に対して優先的に合焦するように、焦点調整を制御してもよい。
次に、評点算出部143が、領域毎に評点を算出する手順について説明する。
図10には、領域毎に評点を算出する処理(例えば、図8のステップSd7及び12を参照)の手順が、フローチャートで示されている。
領域検出部142は、特徴量に応じて、ラベリングの条件を設定する(ステップSe1)。この条件は、適宜定められてよい。例えば、領域検出部142は、肌色相に基づいて検出した領域に「最優先ラベル」を設定する、などの条件であってもよい。そして、領域検出部142は、ラベリングの条件に基づいて、画素ラベリングを実行する(ステップSe2)。そして、領域検出部142は、評点を算出する対象から、スルー画像において孤立した領域(孤立点)を除外する(ステップSe3)。
評点算出部143は、領域毎に、その領域の重心を算出する(ステップSe4)。そして、評点算出部143は、画像の中心(画角中心)から領域の重心までの距離を、領域毎に算出する(ステップSe5)。そして、評点算出部143は、画像の中心(画角中心)から領域の重心までの距離に応じて、領域毎に評点を付ける。ここで、評点算出部143は、画像の中心(画角中心)に近い領域ほど、その領域に高い評点を付ける(例えば、評点=2点、1.5点、1点、0.5点の順)(ステップSe6)。
さらに、評点算出部143は、領域がその重心に集中している度合いを評価するために、領域毎の慣性モーメントを算出する(ステップSe7)。評点算出部143は、慣性モーメントが予め定められた閾値以上である領域、すなわち、重心に集中していない領域を、評点を付ける対象から除外する(ステップSe8)。
評点算出部143は、領域の慣性モーメントに応じて、その領域に評点を付ける。評点算出部143は、慣性モーメントが小さい(重心に集中している)領域には、高い評点を付ける(例えば、評点=2点、1.5点、1点、0.5点の順)(ステップSe9)。
さらに、評点算出部143は、領域検出部142が検出した領域の面積(画素数)を算出し、画像の面積に対して予め定められた比率(例えば、7割)以上の面積がある領域を、評点を付ける対象から除外する(ステップSe10)。これは、そのような領域が、背景を示す領域など、主要な被写体像の領域でない可能性があるためである。
そして、評点算出部143は、領域の面積(画素数)に応じて、領域に評点を付ける。例えば、評点は、「2〜0.5」点までの4段階であってもよい。また、評点算出部143は、予め定められた面積に近い領域ほど、その領域に高い評点を付ける(ステップSe11)。さらに、評点算出部143は、領域の情報として、評点を領域毎に記憶部160に記憶させる(ステップSe12)。
次に、優先ラベル(高い優先度及び評点)が設定された領域に、合焦させる処理の手順について説明する。
図11には、優先ラベル(高い優先度及び評点)を設定した領域に合焦させる処理の手順が、フローチャートで示されている。この処理は、例えば、図3のステップSa9(より詳しくは、図8のステップSd9)、又は図3のステップSa14で実行される。
領域検出部142は、同一ラベルにグループ化する色相の上限閾値と下限閾値との差を、所定のコントラスト値を取得できるまで広げ、広げた閾値に基づいて画素ラベリングする(ステップSg1)。これにより、ラベルの面積は拡張される。
図12には、領域30と、コントラストスキャンする領域であるコントラストAF領域40と、領域30の色相コントラストとが示されている。そして、図12(A)には、図11のステップSg1における、領域30と、コントラストAF領域40とが示されている。また、図12(B)には、図12(A)における色相コントラストであり、コントラストAF領域40における領域30の色相コントラストが示されている。そして、図12(B)には、領域30が拡張されたことにより、コントラストAF領域40における領域30の色相の範囲も拡張されたことが示されている。
図11に戻り、手順の説明を続ける。領域検出部142は、色相の範囲が拡張された色相コントラストにおいて、コントラスト値が優位である(ピーク値を示す)色相(色チャネル等)を検出する(ステップSg2)。所定のコントラスト値を取得できるまで、領域検出部142の処理は、ステップSg1及びステップSg2を繰り返す。
図13には、ステップSg2における、領域30と、コントラストAF領域40とが示されている。そして、図13には、コントラストAF領域40は、領域30においてエッジのパワーが強い領域に設定されることが示されている。
図11に戻り、手順の説明を続ける。領域検出部142は、領域30のテクスチャ(模様)に基づいて、領域30においてエッジのパワーが強い領域を検出する(ステップSg3)。そして、領域検出部142は、領域30の「エッジの色相」を検出する(ステップSg4)。
領域検出部142は、エッジのパワーが強い領域に、コントラストスキャンする領域である「コントラストAF領域」を設定する。ここで、領域検出部142は、被写体距離が不明である領域であっても、優先ラベル(高い優先度及び評点)が設定されている領域であれば、コントラストAF領域を設定する(ステップSg5)。
領域検出部142は、検出した領域の「領域の情報」と、夜景などの点光源が撮像されていることを示す「点光源フラグ」とに基づいて、コントラストスキャンにおける露光量を設定する(ステップSg6)。
そして、領域検出部142は、検出した領域が、低コントラスト又は低輝度であるか否かを判定する(ステップSg7)。検出した領域が、低コントラスト又は低輝度でない場合(ステップSg7−NO)、CPU190は、コントラストAF領域において、コントラストスキャンを実行する(ステップSg8)。
一方、検出した領域が、低コントラスト(低輝度)である場合(ステップSg7−YES)、領域検出部142は、検出した領域の境界(外周)近傍でエッジを探索し、探索したエッジの色相(色構成)を検出する(ステップSg9)。
領域検出部142は、領域30の境界(外周)を含む範囲にコントラストAF領域40を設定し、設定したコントラストAF領域40に、エッジがあるか否かを判定(エッジを検出)する(ステップSg10)。
図14には、領域30の境界(外周)を含む範囲に設定したコントラストAF領域40において、エッジを検出する処理を説明するための図が示されている。そして、図14には、コントラストAF領域40が、領域30の境界(外周)を含む範囲に設定されることが示されている。
図11に戻り、手順の説明を続ける。コントラストAF領域40にエッジがない場合(ステップSg10−NO)、領域検出部142は、低コントラストである領域30のコントラストAF領域40にエッジを検出するため、色相及び輝度のコントラストを検出する感度を上げる。例えば、領域検出部142は、露光時間を長くする、又はガンマテーブルを変更することにより、色相及び輝度のコントラストを検出する感度を上げる(ステップSg11)。
図15には、領域検出部142が検出した領域31と、領域31に設定したコントラストAF領域41と、領域検出部142が検出した領域32と、領域32に設定したコントラストAF領域42と、が示されている。ここで、一例として、領域31の色相及び輝度は、低コントラストでないものとする。一方、領域32の色相及び輝度は、低コントラストであるものとする。
領域検出部142は、領域31のコントラストAF領域41にエッジを検出するため、通常のガンマテーブルを、コントラストAF領域41に設定する。一方、領域検出部142は、低コントラスト(低輝度)である領域32のコントラストAF領域42にエッジを検出するため、感度を上げた高ガンマテーブルを、コントラストAF領域42に設定する。このように、領域検出部142は、低コントラスト又は低輝度である領域32に対して、色相及び輝度のコントラストを検出する感度を上げる。
図11に戻り、手順の説明を続ける。コントラストAF領域40にエッジがある場合(ステップSg10−YES)、領域検出部142の処理は、ステップSg8に進む。CPU190は、特徴量算出部141が検出した標本化周波数とコントラスト値とに基づいて、コントラストスキャンを実行する(ステップSg8)。そして、CPU190は、複数のラベルをコントラスト領域に設定した場合、ヒストグラムのピークの高さよりも、評点(優先度)の高さを優先し、評点(優先度)が高い領域に、合焦させる(ステップSg12)。
図16には、領域検出部142が検出した領域と、評点算出部143が算出した評点と、領域検出部142が設定したコントラストAF領域との一例が示されている。ここで、コントラストAF領域43は、領域検出部142が領域33に設定したコントラストAF領域である。また、一例として、領域33の評点を「20」点と、領域30の評点を「23」点と、領域31の評点を「15」点と、領域32の評点を「14」点とする。また、領域30には、優先ラベルが設定されているものとする。
このような場合、CPU190は、優先ラベルが設定された領域30を、主要な被写体像の領域として、領域30に合焦させてもよい。また、CPU190は、評点(優先度)が最も高い領域30を、主要な被写体像の領域として、領域30に合焦させてもよい。また、CPU190は、領域の評点(優先度)が高い順に、合焦させる領域を連続的に変更してもよい。
また、コントラストが取れない場合、CPU190は、ラベルの内側に設定したコントラストAF領域のほかに、ラベルに外接するコントラストAF領域を設定してもよい。この場合、CPU190は、ラベルの内側に設定したコントラストAF領域とラベルに外接するコントラストAF領域とを併用して、至近側に合焦させてもよい。
以上のように、画像処理装置140は、画像の特徴毎に、特徴の特徴量を検出する特徴量算出部141と、画像に含まれる領域であって特徴量毎に定まる領域を画像から算出し、ラベル(識別子)を設定する領域検出部142と、異なる特徴の特徴量に基づいて検出した領域同士を比較するための評点を、領域毎に算出する評点算出部143と、評点に基づいて、画像における領域の優先度を設定する優先度設定部144と、を備える。
これにより、画像処理装置140は、撮像された画像から主要被写体の領域を予測することができる。例えば、画像処理装置140は、撮像された画像における、主要な被写体像の領域と、主要でない被写体像の領域とを識別することができる。また、画像処理装置140は、複数の特徴(例えば、色相及び彩度)に基づいて領域を検出することで、AF、AE,AWB、追尾、シーン判定、及び色処理の精度を向上させることができる。また、画像処理装置140は、追尾精度を向上させたことで、撮影までのタイムラグ(遅延)を短縮させることができる。これにより、画像処理装置140は、評点(優先度)が最も高い領域30を、主要な被写体像の領域として識別することができる。
また、画像処理装置140は、コントラストAF領域の面積を可変(拡張)させて、標本化周波数をスイープさせることで、コントラストが拾える標本化周波数を検出し、コントラストの検出に最適な標本化周波数で、コントラストのピークを検出する。
これにより、画像処理装置140は、領域が低コントラストであったとしても、色相、輝度、RGB、及び色差(Cr,Cb)の少なくとも1つのコントラストを検出する感度を上げて、コントラストスキャンを実行するので、撮像された画像における領域を、高精度に識別することができる。例えば、画像処理装置140は、撮像された画像における、主要な被写体像の領域と、主要でない被写体像の領域とを識別することができる。
<特異である色相に基づく領域の検出について>
領域検出部142は、特異である色相(例えば、色相環において不連続である色相)に基づいて、領域を検出してもよい。
図17には、色相に基づいて領域を検出する処理手順が、フローチャートで示されている。ステップSd14〜17は、図8のステップSd3〜8と、並列に処理される。特徴量算出部141は、図8のステップSd2の次に、画像における色相hのヒストグラムを作成する(ステップSd14)。
領域検出部142は、ヒストグラムの分布に基づいて、ヒストグラムにピークがあるか否かを判定する。また、領域検出部142は、色相ヒストグラム又は色相環における色相の連続性を検出し、色相ヒストグラムにおいて不連続となる色相があるか否かを判定する(ステップSd15)。
図18には、色相ヒストグラムの一例が示されている。領域検出部142は、色相ヒストグラムにおいてピークを示す領域と、色相ヒストグラムにおいて不連続となる色相(不連続領域)の領域とを検出する。
図17に戻り、手順の説明を続ける。領域検出部142は、色相ヒストグラムにおいてピークを示す色相、又は不連続となる色相に基づいて、領域を検出する(ステップSd16)。さらに、領域検出部142は、検出した領域をラベリングする(ステップSd17)。
領域検出部142は、特異である色相に基づいて検出した領域に、特異である色相に基づいて検出した領域であることを示す「特異色相ラベル」を設定する。また、評点算出部143は、領域検出部142が検出した領域の評点を、「4」点と算出する(ステップSd18)。そして、領域検出部142の処理は、図8のステップSd9に進む。
これにより、画像処理装置140は、特異である色相に基づいて、領域を検出することができる。
<特異である明度に基づく領域の検出について>
領域検出部142は、特異である明度(例えば、周囲と比較して著しく異なる明度)に基づいて、領域を検出してもよい。
図19には、明度に基づいて領域を検出する処理手順が、フローチャートで示されている。ここで、ステップSd19〜23は、図8のステップSd2〜8と、並列に処理される。
特徴量算出部141は、図8のステップSd1の次に、画像における明度Lのヒストグラムを作成する(ステップSd19)。領域検出部142は、ヒストグラムの分布に基づいて、ヒストグラムにピークがあるか否かを判定する(ステップSd20)。
領域検出部142は、明度ヒストグラムにおいてピークを示す明度、又はヒストグラムの谷によって不連続となる明度に基づいて、領域を検出する(ステップSd21)。そして、領域検出部142は、特異である明度に基づいて検出した領域に、「特異明度ラベル」を設定する(ステップSd22)。
さらに、領域検出部142は、明度に基づいて検出した領域に、明度に基づいて検出した領域であることを示す「明度ラベル」を設定する。また、評点算出部143は、領域検出部142が検出した領域の評点を、「4」点と算出する(ステップSd23)。そして、領域検出部142の処理は、図8のステップSd9に進む。
また、領域検出部142は、ステップSd20の次に、ピーク値を示す明度と、明度の平均値との差が、閾値以上であるか否かを判定する(ステップSd24)。ピーク値を示す明度と、明度の平均値との差が、閾値以上でない場合(ステップSd24−NO)、明度に差がないので、領域検出部142の処理は、ステップSd21に進む。
一方、ピーク値を示す明度と、明度の平均値との差が、閾値以上である場合(ステップSd24−YES)、明度に差があるので、領域検出部142は、点光源が撮像されていること(夜景が撮像されていること)を示す「点光源フラグ」をオンにして、点光源フラグを画像(領域)に設定する(シーン判定)(ステップSd25)。
領域検出部142は、明度ヒストグラムにおいてピークを示す明度、又は不連続となる明度に基づいて、領域を検出する。そして、領域検出部142は、明度に基づいて検出した領域をラベリングする(ステップSd24)。そして、領域検出部142の処理は、ステップSd23に進む。
これにより、画像処理装置140は、特異である明度に基づいて、領域を検出することができる。
<角度検出オペレータにより検出するテクスチャ(模様)に基づく、領域の検出について>
領域検出部142は、角度検出オペレータ(空間フィルタ)により検出するテクスチャ(模様)に基づいて、領域を検出してもよい。
図20には、角度検出オペレータにより検出するテクスチャに基づいて、領域を検出する処理手順が、フローチャートで示されている。ここで、ステップSd26〜31は、図8のステップSd1〜8と、並列に処理される。
特徴量算出部141は、角度検出オペレータにより画像をスキャン(例えば、ラスタースキャン)して、明度L(輝度Y)又は色相(色成分RGB)の特徴量を算出する。そして、特徴量算出部141は、例えば、角度「22.5」度ごとの8つの領域に、画像を区分する(ステップSd26)。ここで、角度検出オペレータとは、エッジの角度毎に、画像にエッジを検出するための空間フィルタである。図21には、角度「22.5」度ごとにエッジを検出するための8パターンの角度検出オペレータが示されている。
図20に戻り、手順の説明を続ける。特徴量算出部141は、エッジの角度毎に、エッジの特徴量(パワー値、ΣP)を示すヒストグラムを作成する(ステップSd27)。なお、特徴量算出部141は、特徴量算出部141は、エッジの角度毎に、エッジの長さを示すヒストグラムを作成してもよい。
領域検出部142は、ヒストグラムの分布に基づいて、ヒストグラムにピークがあるか否かを判定する(ステップSd28)。図22には、エッジの角度毎に、エッジの特徴量(パワー値、ΣP)を示すヒストグラムの例が示されている。領域検出部142は、図22に示されたヒストグラムに、エッジの特徴量のピークA及びBがあると判定したとする。ここで、角度が「22.5」度であるエッジの特徴量(パワー値、ΣP)が、ピークAを示したとする。また、角度が「135」度であるエッジの特徴量(パワー値、ΣP)が、ピークBを示したとする。
図20に戻り、手順の説明を続ける。領域検出部142は、特徴量がピークを示した角度毎に、その角度のエッジの分布(領域)を示すビットマップ(パワーマップ)を作成する(ステップSd29)。図23には、テクスチャ(エッジの分布)に基づいて領域検出部142が検出した領域の例が示されている。そして、図23(A)には、角度が「22.5」度であるエッジが分布する領域1〜5の例が示されている。また、図23(B)には、角度が「135」度であるエッジが分布する領域6の例が示されている。領域検出部142は、特徴量がピークを示した角度毎に、その角度のエッジが分布する領域を示すビットマップを作成する。さらに、領域検出部142は、テクスチャに基づいて検出した領域をラベリングする。また、評点算出部143は、領域検出部142がテクスチャに基づいて検出した領域の評点を、「2」点と算出する(ステップSd30)。
また、領域検出部142は、角度検出オペレータにより検出したテクスチャに基づいて検出した領域に、テクスチャに基づいて検出した領域であることを示す「テクスチャラベル」を設定する(ステップSd31)。そして、領域検出部142の処理は、図8のステップSd9に進む。
ステップSd32及び33は、ステップSd27〜30と、並列に処理される。領域検出部142は、ヒストグラム(図22を参照)において、特徴量が閾値以上であるエッジの角度毎に、その角度のエッジが分布する領域を示すビットマップ(パワーマップ)を作成する(ステップSd32)。
さらに、領域検出部142は、エッジを細線化する。そして、領域検出部142は、画像の奥行を示す要素(パースペクティブ要素)、すなわち、細線化したエッジの空間周波数、間隔(スパン)、又は分布に基づいて、検出した領域をラベリングする。例えば、領域検出部142は、エッジの間隔が密である領域に、ラベルを付けてもよい。また、評点算出部143は、角度検出オペレータにより領域検出部142が検出した領域の評点を、「1」点と算出する(ステップSd33)。そして、領域検出部142の処理は、ステップSd31に進む。
これにより、画像処理装置140は、角度検出オペレータにより検出するテクスチャに基づいて、領域を検出することができる。
<離散コサイン変換(DCT)係数により検出するテクスチャ(模様)に基づく、領域の検出について>
領域検出部142は、JPEG規格に準拠した離散コサイン変換(DCT)係数により検出するテクスチャ(模様)に基づいて、領域を検出してもよい。
図24には、DCT係数に基づいて、領域検出部142が領域を検出する処理手順が、フローチャートで示されている。ここで、ステップSd34〜42は、図8のステップSd1〜8と、並列に処理される。
特徴量算出部141は、画像に対し、DCTブロック(=8×8画素)単位でDCT演算処理を実行する(ステップSd34)。そして、特徴量算出部141は、量子化テーブル(例えば、JPEG規格に準拠した量子化テーブル)に基づいて、DCT係数を量子化する(ステップSd35)。
特徴量算出部141は、DCTブロックにおける代表値を、そのDCTブロックに予め定められた帯域毎に、算出する。ここで、DCTブロックにおける代表値とは、例えば、帯域毎のDCT係数の2乗値、又は帯域毎のDCT係数の絶対値である。そして、特徴量算出部141は、画像に含まれる全てのDCTブロックについて、各DCTブロックにおける代表値を算出する(ステップSd36)。
なお、DCTブロックにおける代表値は、DCT係数の2乗値、又はDCT係数の絶対値を、複数の帯域にわたって加算した値(総和)であってもよい。
領域検出部142は、代表値が定められたDCTブロックの分布を示すビットマップ(パワーマップ)を、DCTブロックに予め定められた帯域毎に作成する(ステップSd37)。なお、ビットマップ(パワーマップ)を作成する場合、領域検出部142は、DCTブロック毎に、逆離散コサイン変換を実行してもよい。
そして、特徴量算出部141は、DCTブロックにおける代表値を「0〜255」範囲に正規化する(ステップSd38)。さらに、特徴量算出部141は、予め定められた閾値(例えば、値「30」)以下の代表値を、値「0」にする(ステップSd39)。
さらに、領域検出部142は、代表値の範囲(例えば、値「31〜100」と、値「101〜170」と、値「171〜255」との3つの範囲)毎に、各ビットマップから複数のビットマップを作成する(ステップSd40)。そして、領域検出部142は、複数のビットマップから領域を検出し、検出した領域をラベリングする(ステップSd41)。
領域検出部142は、作成した全てのビットマップについて、ラベリング処理を実行したか否かを判定する(ステップSd42)。領域をラベリングしていないビットマップがある場合(ステップSd42−NO)、領域検出部142の処理は、ステップSd40に戻る。
一方、全てのビットマップについて、領域をラベリングした場合(ステップSd42−YES)、領域検出部142は、作成した全てのビットマップを重ねた場合に、領域同士が重なる部分(位置的積集合)の面積を算出する。そして、領域同士が重なる部分の面積が予め定められた面積以上である場合、領域検出部142は、それらの領域を結合してもよい(ステップSd43)。
そして、評点算出部143は、DCT係数により領域検出部142が検出した領域の評点を、「2」点と算出する(ステップSd44)。
さらに、領域検出部142は、DCT係数により検出したテクスチャに基づいて検出した領域に、テクスチャに基づいて検出した領域であることを示す「テクスチャラベル」を設定する(ステップSd45)。そして、領域検出部142の処理は、図8のステップSd9に進む。
図25には、DCT係数に基づいて、領域検出部142が領域を検出する処理を説明するための図が示されている。ここで、1枚の画像に、複数のDCTブロック10aが並んでいる。そして、各DCTブロック10aには、一例として、予め定められた帯域11−n(nは、1〜5の整数)があるものとする。特徴量算出部141は、DCTブロック10aにおける代表値を、そのDCTブロックに予め定められた帯域毎に、算出する(図24のステップSd36を参照)。そして、領域検出部142は、DCTブロック10a毎に、逆離散コサイン変換を実行し、DCTブロック10bを作成する。
領域検出部142は、DCTブロック10b−n(予め定められた帯域11−n)の画像における分布を示すビットマップ12−nを、DCTブロック10aに予め定められた帯域11−n毎に作成する(図24のステップSd37を参照)。例えば、領域検出部142は、DCTブロック10b−1を並べることで、予め定められた帯域11−1の画像における分布を示すビットマップ12−1を作成する。
さらに、領域検出部142は、代表値の範囲毎に、各ビットマップから複数のビットマップを作成する(図24のステップSd40を参照)。ここで、一例として、ビットマップ13は、予め定められた帯域11−1の「DCTブロックにおける代表値」が、値「31〜100」である領域16を含むものとする。また、ビットマップ14は、予め定められた帯域11−1の「DCTブロックにおける代表値」が、値「101〜170」である領域17及び18を含むものとする。さらに、ビットマップ15は、予め定められた帯域11−1の「DCTブロックにおける代表値」が、値「171〜255」である領域19及び20を含むものとする。
そして、領域検出部142は、作成した全てのビットマップを重ねて、ビットマップ21を作成し、領域同士が重なる部分を検出する。図25では、一例として、領域18及び20が重なる部分である領域22と、領域16及び17が重なる部分である領域23とが、ビットマップ21に検出されている。
さらに、領域検出部142は、領域22及び23が重なる部分(位置的積集合)の面積を算出し、その重なる部分の面積が予め定められた面積以上である場合には、領域22及び23を結合してもよい(図24のステップSd43を参照)。
また、評点算出部143は、領域検出部142が検出した領域の評点に、評点を加算してもよい。図26には、高周波帯域のDCT係数に基づいて、領域検出部142が検出した領域の評点に、評点算出部143が評点を加算する処理が、フローチャートで示されている。ここで、ステップSd46〜56は、図8のステップSd1〜8と、並列に処理される。
特徴量算出部141は、画像に対し、DCTブロック(=8×8画素)単位でDCT演算処理を実行する(ステップSd46)。そして、特徴量算出部141は、量子化テーブルに基づいて、DCT係数を量子化する(ステップSd47)。
特徴量算出部141は、DCTブロックから高周波帯域を選択する(ステップSd48)。そして、特徴量算出部141は、選択した高周波帯域のDCT係数に基づいて、そのDCTブロックにおける代表値を算出する。ここで、DCTブロックにおける代表値は、例えば、選択した高周波帯域のDCT係数の2乗値、又は選択した高周波帯域のDCT係数の絶対値である。そして、特徴量算出部141は、画像に含まれる全てのDCTブロックについて、DCTブロックにおける代表値を算出する(ステップSd49)。
領域検出部142は、代表値が定められたDCTブロックの分布(選択した高周波帯域の分布)を示すビットマップ(パワーマップ)を、DCTブロックに予め定められた帯域毎に作成する。そして、特徴量算出部141は、DCTブロックにおける代表値を「0〜255」範囲に正規化する(ステップSd50)。さらに、特徴量算出部141は、予め定められた閾値(例えば、値「30」)以下の代表値を、値「0」にする(ステップSd51)。
さらに、領域検出部142は、代表値の範囲(例えば、値「31〜100」と、値「101〜170」と、値「171〜255」との3つの範囲)毎に、各ビットマップから複数のビットマップを作成する(ステップSd52)。そして、領域検出部142は、複数のビットマップから領域を検出し、検出した領域をラベリングする(ステップSd53)。
領域検出部142は、作成した全てのビットマップについて、ラベリング処理を実行したか否かを判定する(ステップSd54)。領域をラベリングしていないビットマップがある場合(ステップSd54−NO)、領域検出部142の処理は、作成した全てのビットマップについて、ラベリング処理を実行するため、ステップSd52に戻る。
一方、全てのビットマップについて、領域をラベリングした場合(ステップSd54−YES)、領域検出部142は、作成した全てのビットマップを重ねた場合に、高周波帯域に基づいて検出した領域と、予め定められた他の周波帯域に基づいて検出した領域とが重なる部分(積集合)の面積を算出する。そして、領域同士が重なる部分の面積が予め定められた面積以上である場合、評点算出部143は、重なる部分を含む領域の評点に、「1」点を加算する(ステップSd55)。
領域検出部142は、高周波帯域のDCT係数により検出したテクスチャに基づいて検出した領域に、DCT係数により検出したテクスチャに基づいて検出した領域であることを示す「テクスチャラベル」を設定する(ステップSd56)。そして、領域検出部142の処理は、図8のステップSd9に進む。
このように、画像処理装置140は、離散コサイン変換(DCT)係数により検出するテクスチャ(模様)に基づいて、領域を検出することができる。
<縦、横、又は斜めに延びたエッジの特徴量に基づく、領域の検出について>
領域検出部142は、縦、横、又は斜めに延びたエッジの特徴量に基づいて、撮像されたポール(柱)、バー(棒)、パースペクティブ(奥行)、建造物の領域を、それぞれ検出してもよい。
図27には、エッジの特徴量に基づいて、領域検出部142が領域を検出する処理手順が、フローチャートで示されている。ここで、ステップSd27〜62は、図8のステップSd1〜8と、並列に処理される。
特徴量算出部141は、エッジの特徴量(強度)を算出する(ステップSd57)。そして、領域検出部142は、太さが閾値以上であるエッジ、及び長さが閾値以上であるエッジを検出する(ステップSd58)。さらに、領域検出部142は、太さが所定の閾値以上であり、かつ長さが所定の閾値以上のエッジの領域を、ラベリングする対象とする(ステップSd59)。
また、特徴量算出部141は、画像の中心(画角中心)からエッジまでの距離を算出する。そして、領域検出部142は、画像の中心からエッジまでの距離が閾値以上であれば、そのエッジが主要な被写体像の領域でないとして、そのエッジの領域を、ラベリングする対象から除外する(ステップSd60)。さらに、領域検出部142は、ラベリングする対象としたエッジ領域の画素値(明度、色相等)に基づいて、ラベリング処理を実行する。そして、評点算出部143は、領域検出部142がエッジに基づいて検出した領域の評点を、「1」点と算出する(ステップSd61)。
領域検出部142は、エッジに基づいて検出した領域に、エッジに基づいて検出した領域であることを示す「エッジラベル」を設定する(ステップSd62)。そして、領域検出部142の処理は、図8のステップSd9に進む。
また、ステップSd63及び64は、ステップSd60及び61と、並列に処理される。領域検出部142は、画像の水平方向に対する角度が「0〜30」度の範囲にあるエッジと、画像の水平方向に対する角度が「150〜180」度の範囲にあるエッジとを検出する(ステップSd63)。
さらに、領域検出部142は、画像の中心に向かうエッジが画像において離散的に分布している場合、奥行のある画像であることを示す「パースペクティブフラグ」をオンにして、領域の情報として、記憶部160に記憶させる(ステップSd64)。
そして、領域検出部142は、画像の水平方向に対する角度が「0〜30」度の範囲にあるエッジが分布する領域に、「ポールラベル」を設定する。また、領域検出部142は、画像の水平方向に対する角度が「150〜180」度の範囲にあるエッジが分布する領域に、「バーラベル」を設定する。さらに、領域検出部142は、画像の中心に向かうエッジであって、画像において離散的に分布しているエッジが分布する領域に、「パースペクティブラベル」を設定する(ステップSd62)。パースペクティブが設定されたラベルには奥行があるため、同一ラベル内でも異なる複数の焦点位置が存在する。このため、パースペクティブが設定されたラベルに対して合焦させるには、制御が必要である。
なお、領域検出部142は、例えば、エッジが分布する領域が四角形である領域に、建造物が撮像された領域であることを示す「建造物ラベル」を設定してもよい。
これにより、画像処理装置140は、縦、横、又は斜めに延びたエッジの特徴量に基づいて、柱、棒、奥行、又は建造物を示す領域を検出することができる。
<ラベル又は優先度(評点)に基づく露光(AE)処理について>
画像処理装置140は、優先ラベル(高い優先度及び評点)が設定された領域の露光量が最適となるように、露光処理を実行してもよい。
図28には、ラベル又は優先度(評点)に基づく露光(AE)処理の手順が、フローチャートで示されている。この処理は、例えば、図3のステップSa9(図8のステップSd9)、又は図3のステップSa15で実行される。
特徴量算出部141は、優先度が高い領域(例えば、評点の上位3つ)について、ヒストグラムを作成する(ステップSh1)。なお、特徴量算出部141は、「点光源フラグ」がオンである領域について、ヒストグラムを作成しないようにしてもよい。
そして、特徴量算出部141は、優先度が高い(評点が高い)領域の特徴量を合算し、ヒストグラムを作成する(ステップSh2)。さらに、特徴量算出部141は、ヒストグラムの標準偏差値σがヒストグラムのフルレンジの30%となる露光量を算出する(ステップSh3)。
CPU190は、特徴量算出部141が算出した露光量に基づいて、背景が撮像された領域(背景を示す領域)の画素値(例えば、明度)が飽和しないように、撮像部110に露光量を調整させる(ステップSh4)。また、特徴量算出部141は、ヒストグラムの標準偏差値σがヒストグラムのフルレンジの30%となるように、Retinex等の部位別(階調補正)処理のパラメータを算出することで、露光の不足分を補償する(ステップSh5)。
CPU190は、優先度設定部144が設定した「領域の優先度」に基づいて、優先度が高い領域のコントラストを強調するように、画像処理装置140におけるトーンカーブ(階調カーブ)の設定を制御する。また、CPU190は、領域検出部142が領域に設定した「ラベル」に基づいて、優先ラベルを設定した領域のコントラストを強調するように、画像処理装置140におけるトーンカーブ(階調カーブ)の設定を制御してもよい(ステップSh6)。
また、ステップSh7〜9は、ステップSh2〜6と、並列に処理される。特徴量算出部141は、優先度が高い領域(画像の一部)についてのヒストグラムにおける明度(輝度)の最大及び最小(ヒストグラムの5%内側の各端点でもよい)を算出する(ステップSh7)。さらに、特徴量算出部141は、画像全域についてのヒストグラムにおける明度(輝度)の最大及び最小(ヒストグラムの5%内側の各端点でもよい)を算出する(ステップSh8)。
領域検出部142は、優先度が高い領域(画像の一部)についてのヒストグラムにおける明度の最大と、画像全域についてのヒストグラムにおける明度の最小との差が、予め定められた閾値以上である場合、明度のダイナミックレンジが広いことを示す「高ダイナミックレンジフラグ」をオンにして、領域の情報として、画像(領域)に高ダイナミックレンジフラグを設定する。
同様に、領域検出部142は、優先度が高い領域(画像の一部)についてのヒストグラムにおける明度の最小と、画像全域についてのヒストグラムにおける明度の最大との差が、予め定められた閾値以上である場合、明度のダイナミックレンジが広いことを示す「高ダイナミックレンジフラグ」をオンにして、領域の情報として、画像(領域)に高ダイナミックレンジフラグを設定する(ステップSh9)。
これにより、画像処理装置140は、ラベル又は優先度(評点)に基づいて、露光(AE)処理を実行することができる。
<ラベル又は優先度(評点)に基づくホワイトバランス調整(AWB)処理について>
画像処理装置140は、優先ラベル(高い優先度及び評点)が設定された領域のホワイトバランスが最適となるように、ホワイトバランス調整処理を実行してもよい。
図29には、ラベル又は優先度(評点)に基づくホワイトバランス調整(AWB)処理の手順が、フローチャートで示されている。この処理は、例えば、図3のステップSa9(図8のステップSd9)、又は図3のステップSa15で実行される。
特徴量算出部141は、画像から白点を算出する。ここで、特徴量算出部141は、背景が撮像された領域(背景を示す領域)から、白点を検出するようにしてもよい(ステップSi1)。背景が撮像された領域(背景を示す領域)については、図38及び39を用いて、後述する。
そして、特徴量算出部141は、画像に白点があるか否かを判定する(ステップSi2)。画像に白点がある場合(ステップSi2−YES)、CPU190は、その白点の領域に基づいて、ホワイトバランス調整(AWB)処理を制御する(ステップSi3)。
一方、画像に白点がない場合(ステップSi2−NO)、特徴量算出部141は、優先ラベル、又は領域の優先度(評点)に基づいて、主要な被写体像の領域における色相について、ガマットマッピング(色域座標変換)を実行する。そして、特徴量算出部141は、ガマットマッピングにより、撮像された光の光源の種類(例えば、太陽光、蛍光灯など)を推定する(ステップSi4)。
そして、特徴量算出部141は、光源の種類を検出したか否かを判定する(ステップSi5)。光源の種類を検出した場合(ステップSi5−YES)、CPU190は、特徴量算出部141が検出した光源の種類に基づいて、ホワイトバランス調整処理を制御する(ステップSi3)。
一方、光源の種類を検出していない場合(ステップSi5−NO)、特徴量算出部141は、領域に設定したラベル、領域(画像)に設定したフラグ、及び領域の分布に基づいて、シーンを判定し、光源の種類を推定する。例えば、特徴量算出部141は、「点光源フラグ」がオンで領域(画像)に設定され、かつ、周囲と比較して明度が著しく異なる領域(点光源)が、画像に広く分布している場合には、シーンが夜景であると判定してもよい(ステップSi6)。そして、CPU190は、特徴量算出部141が推定した光源の種類に基づいて、画像処理装置140のホワイトバランス調整処理を制御する(ステップSi3)。
これにより、画像処理装置140は、ラベル又は優先度(評点)に基づいて、ホワイトバランス調整(AWB)を実行することができる。
<ラベル又は優先度(評点)に基づいて、画像を再生する処理について>
画像処理装置140は、検出した領域をラベル又は優先度(評点)に基づいて分類し、分類に応じて、視覚的に効果的な方法で画像を再生してもよい。
図30には、画像処理装置140による画像の再生表示を含めた基本的な画像処理手順が、フローチャートで示されている。ここで、図30のステップS1〜S14は、図2のステップS1〜S14と同じステップである。画像処理装置140は、領域の情報に対応付けられた画像を、領域の情報に基づいて、効果的な演出を伴って再生し、表示部150に表示させる(ステップS15)。
図31には、ラベル又は優先度(評点)に基づく再生表示の手順が、フローチャートで示されている。この再生表示処理は、図30のステップS15で実行される。まず、領域検出部142は、記憶部160又は記憶媒体200から、領域の情報を取得する(ステップSf1)。
そして、領域の情報として記憶されていた「動き量」が閾値以上である場合、すなわち、動きのある画像である場合、画像処理装置140は、ステップSf1の次に、動画として画像を再生する(ステップSf2)。そして、画像処理装置140は、優先ラベルが設定された領域を中心にズーム再生し、表示部150に表示させる(ステップSf3)。さらに、画像処理装置140は、優先度が1つ低い領域を中心にパンニング表示して、ズーム再生し、表示部150に表示させる(ステップSf4)。
また、動きラベルが設定された領域の情報として記憶されていた動きベクトルの「動き量」が閾値以上である場合、動きラベルが設定された領域の移動速度が速い場合、画像処理装置140は、ステップSf1の次に、画像をスロー再生し、表示部150に表示させる(ステップSf5)。
また、動き量が二分され、かつ動き方向が一定であり、かつ動き量が閾値以上である画素が、画像に分散している場合(図7を参照)、すなわち、前景(例えば、降雪)が撮像され、かつ優先ラベルに合焦している画像である場合、画像処理装置140は、ステップSf1の次に、領域の前景に合焦させて画像を再生(前ピン再生)し、表示部150に表示させる(ステップSf6)。そして、画像処理装置140は、領域に徐々に合焦させるように、焦点を変化させながら画像を再生処理し、表示部150に表示させる(ステップSf7)。画像処理装置140は、画像の合成比を変化させる(ステップSf8)。
また、「通常ラベル」を設定した領域を再生表示する場合(図7のステップSc20を参照)、すなわち、降雪などの前景でない領域を再生表示する場合、画像処理装置140は、ステップSf1の次に、画像を再生する(ステップSf9)。そして、画像処理装置140は、設定された優先度が高い順に、領域をパンニング表示して、ズーム再生し、表示部150に表示させる(ステップSf10)。さらに、「通常ラベル」を設定した領域が、テクスチャに基づいて検出した領域である場合、画像処理装置140は、エッジを強めにして、ズーム再生し、表示部150に表示させる(ステップSf11)。
また、特異である色相、高彩度、又は高評点の色相ラベルが設定された領域である場合、画像処理装置140は、ステップSf1の次に、色相ラベルが設定された領域の彩度を連続的に上げながら再生し、表示部150に表示させる(ステップSf12)。さらに、色相環における反対色相の領域がある場合、画像処理装置140は、反対色相の領域の彩度を上げて画像を再生し、表示部150に表示させる(ステップSf13)。
また、階調域(ダイナミックレンジ)が広い画像である場合、画像処理装置140は、ステップSf1の次に、優先ラベルが設定された領域の階調域を、画像全域の階調域と合わせて、画像を連続再生し、表示部150に表示させる。例えば、画像処理装置140は、Retinex(階調補正)処理における係数を変更することで、白飛びや黒つぶれを抑えながら、明度が低い領域の階調を連続的に上げて画像を再生し、表示部150に表示させる(ステップSf14)。さらに、画像処理装置140は、階調域が異なる画像を交互に表示することで、残像効果を持たせながら連続再生し、表示部150に表示させる(ステップSf15)。
図32には、ラベル又は優先度(評点)に基づく再生表示の手順が、フローチャートで示されている。この再生表示処理は、図30のステップS15で実行される。また、図32のステップSf1は、図31のステップSf1と同じである。
パースペクティブフラグがオンに設定されている場合、すなわち、奥行のある(パースペクティブ)画像である場合、画像処理装置140は、ステップSf1の次に、被写体距離が短い(至近側に撮像された)被写体像の領域に合焦させて画像を再生し、表示部150に表示させる(ステップSf16)。そして、画像処理装置140は、至近から無限まで焦点距離を変化させながら画像を再生し、表示部150に表示させる。また、画像処理装置140は、優先ラベルが設定された領域をズーム再生し、表示部150に表示させる(ステップSf17)。
また、特異明度ラベル(図19のステップSd22を参照)が設定された領域である場合、画像処理装置140は、ステップSf1の次に、トーンカーブ(階調カーブ)を連続的に変化させながら、特異明度ラベルが設定された領域をズーム再生し、表示部150に表示させる。
例えば、画像処理装置140は、特異明度ラベルが設定された領域が明るい場合、その領域の白飛びを抑えながら、コントラストを強調する処理を実行してもよい。また、画像処理装置140は、特異明度ラベルが設定された領域が暗い場合、感度を上げた高ガンマテーブルを、その領域に設定してもよい(ステップSf18)。
また、点光源フラグがオンに設定されている場合、すなわち、例えば、点光源、夕景、夜景が撮像された画像である場合、画像処理装置140は、ステップSf1の次に、画像の明度を下げて再生を開始する。次に、画像処理装置140は、明度を上げて画像を再生し、表示部150に表示させる(ステップSf19)。これにより、画像処理装置140は、点光源を強調することができる。
また、縦、横、又は斜めに延びたエッジの領域を含む画像である場合、画像処理装置140は、ステップSf1の次に、ズーム再生及びパンニング表示により、エッジの領域を再生し、表示部150に表示させる。そして、画像処理装置140は、領域の明度に応じて、明度コントラストを変化させる(ステップSf20)。
これにより、画像処理装置140は、領域の情報に対応付けられた画像を、効果的な演出を伴って再生することができる。
[第2実施形態]
本発明の第2実施形態について図面を参照して詳細に説明する。第2実施形態では、領域検出部142が、異なる特徴の特徴量に基づいて検出した領域同士を、結合又は分割する点が、第1実施形態と異なる。以下では、第1実施形態との相違点についてのみ説明する。
領域検出部142は、第1の特徴(例えば、彩度)の特徴量に基づいて検出した第1の領域と、第2の特徴(例えば、テクスチャ)の特徴量に基づいて検出した第2の領域との重なる部分の面積を算出し、その重なる部分の面積が予め定められた面積以上である場合、第1の領域に第2の領域を結合する。
また、領域検出部142は、第3の特徴(例えば、彩度)の特徴量に基づいて検出した第3の領域に対応する被写体距離と、第4の特徴(例えば、テクスチャ)の特徴量に基づいて検出した第4の領域に対応する被写体距離とが同じ距離であるが否かを判定する。そして、第3の領域に対応する被写体距離と、第4の領域に対応する被写体距離とが同じ距離である場合、領域検出部142は、第3の領域に第4の領域を結合する。
また、領域検出部142は、領域を結合する場合、結合する前の領域毎の評点を合算し、合算した評点を、結合した後の領域の評点とする。また、領域検出部142は、領域に含まれる複数の小領域が、それぞれ異なる被写体距離に対応する場合には、領域を複数の小領域に分割する。
また、領域検出部142は、デプスマップに基づいて、領域を結合又は分割する。デプスマップの詳細については、図35を用いて後述する。
図33には、領域を結合する処理、及び領域を分割する処理の手順が、フローチャートで示されている。領域検出部142は、第1の特徴(例えば、彩度)の特徴量に基づいて検出した第1の領域と、第2の特徴(例えば、テクスチャ)の特徴量に基づいて検出した第2の領域との重なる部分の面積を算出する。そして、領域検出部142は、その重なる部分の面積が予め定められた面積以上である場合、第1の領域に第2の領域を結合する(同一のラベルにする)。また、評点算出部143は、結合した領域の各評点を加算し、結合した領域の「領域の情報」を更新する(ステップSk1)。
図34には、第1の特徴の特徴量に基づいて検出した第1の領域50と、第2の特徴の特徴量に基づいて検出した第2の領域51とが示されている。図34において、領域検出部142は、第1の領域50と、第2の領域51との重なる部分(OR)の面積を算出する。そして、領域検出部142は、重なる部分の面積が予め定められた面積以上である場合、第1の領域50に、第2の領域51を結合する。
図33に戻り、手順の説明を続ける。領域検出部142は、被写体距離が同じ距離である領域を検出する。ここで、領域検出部142は、記憶部160からデプスマップを取得し、デプスマップに基づいて、被写体距離が同じ距離である領域を検出してもよい。そして、領域検出部142は、被写体距離が同じ距離である領域同士が近接している場合、それらの領域を結合し、結合した領域にラベルを設定する。また、評点算出部143は、近接していた各領域の評点の自乗和の平方根を、結合した領域の新たな評点とし、結合した領域の「領域の情報」(図10のステップSe12を参照)として記憶させる。
また、領域検出部142は、被写体距離が同じ距離である領域同士が近接していない場合でも、被写体距離が同じ距離である領域に、同じグループであることを示すラベルを設定する(グルーピング)。例えば、被写体距離が共に同じ距離であるが近接していない領域に、領域検出部142は、「グループA−1」、「グループA−2」のように、同じグループAであることを示すラベルを設定してもよい。また、領域検出部142は、同じグループであることを示すラベルが設定された領域のうち、「テクスチャラベル」が設定された領域を優先し、「テクスチャラベル」が設定された領域に対して、焦点調整(AF)を実行させてもよい(ステップSk2)。
デプスマップについて説明する。図35には、デプスマップの例が示されている。ここで、デプスマップとは、画像における被写体距離の分布を示したマップである。なお、デプスマップは、画像における被写体像のデフォーカス量の分布を示したマップであってもよい。
デプスマップ60には、領域検出部142が検出した領域を結合又は分割するための評価領域61〜71が、一例として、設定されている。そして、各評価領域には、その評価領域に対応する被写体距離がある。ここで、評価領域に対応する被写体距離とは、その評価領域に撮像された被写体の被写体距離である。
以下、一例として、評価領域67〜71には、それらの評価領域に撮像された被写体の被写体距離に応じて、被写体距離「1(至近)」が対応し、評価領域65及び66には、同様に被写体距離「2」が対応し、評価領域64には、同様に被写体距離「3」が対応し、評価領域61〜63には、同様に被写体距離「4(無限)」が対応するものとする。
図35において、対応する被写体距離が「1(至近)」である評価領域は、黒色で示されている。また、対応する被写体距離が「4(無限)」である評価領域は、白色で示されている。また、対応する被写体距離がそれ以外である評価領域は、その被写体距離に応じた白と黒との中間色で示されている(グレー化)。
ここで、特徴量算出部141は、例えば、領域検出部142が色相毎に検出した領域のエッジの色成分量(色相の特徴量)の勾配と、色成分量の比又は差とに基づいて、被写体距離を検出してもよい。ここで、色成分量の勾配とは、画像における軸(例えば、水平軸)上の位置と、その位置に応じて変化する色成分量を示す図(グラフ)において、色成分量を示す線の勾配である。そして、特徴量算出部141は、このようにして算出した評価領域61〜71に対応する被写体距離に基づいて、デプスマップ60を作成してもよい。
また、特徴量算出部141は、例えば、領域検出部142が色相毎に検出した領域のエッジの線広がり関数(LSF)の標準偏差値に基づいて、被写体距離を検出してもよい。ここで、特徴量算出部141は、検出した領域のエッジのデフォーカス量が多いほど、エッジの線広がり関数の標準偏差値が大きいことに基づいて、被写体距離を検出してもよい。そして、特徴量算出部141は、このようにして検出した評価領域61〜71に対応する被写体距離に基づいて、デプスマップ60を作成してもよい。
デスマップ60は、例えば、位相差検出方式により検出した被写体距離、コントラストAF方式により検出した写体距離、又は撮像装置100と被写体との間を光線又は音波が往復した時間により検出した被写体距離などに基づいて作成されてもよい。なお、デプスマップ60は、上記のようにして作成されたものに限定されない。
図36には、図33のステップSk2における、領域検出部142が検出した領域の結合処理及びグルーピング処理を説明するための図として、領域80及び81が示されている。この領域80及び81は、領域検出部142が同じ特徴の特徴量に基づいて検出した領域であってもよいし、領域検出部142が異なる特徴の特徴量に基づいて検出した領域であってもよい。
ここで、一例として、画像における領域80の位置と、デプスマップ60(図35を参照)における評価領域67の位置とが対応しているとする。また、画像における領域81の位置と、デプスマップ60における評価領域69の位置とが対応しているとする。
この場合、評価領域67及び69(図35を参照)には、同じ被写体距離「1(至近)」が対応しているので、領域検出部142は、被写体距離が同じ距離である領域80及び81(図36を参照)を検出する。そして、領域80及び81が近接していないので、領域検出部142は、同じグループであることを示すラベルを、領域80及び81に設定する(グルーピング)。
また、一例として、画像における領域80の位置と、デプスマップ60における評価領域67の位置とが対応しているとする。また、画像における領域81の位置と、デプスマップ60における評価領域68の位置とが対応しているとする。
この場合、評価領域67及び68(図35を参照)には、同じ被写体距離「1(至近)」が対応しているので、領域検出部142は、被写体距離が同じ距離である領域80及び81(図36を参照)を検出する。そして、領域80及び81が近接しているので、領域検出部142は、領域80及び81を結合し、結合した領域にラベルを設定する。
図33に戻り、手順の説明を続ける。領域検出部142が検出した領域に含まれる複数の小領域が、それぞれ異なる被写体距離に対応する場合、領域検出部142は、デプスマップ60に基づいて、被写体距離毎に領域を小領域に分割する(分割処理)。また、評点算出部143は、領域検出部142が分割した小領域の評点を算出する(ステップSk3)。
図37には、図33のステップSk3における、領域検出部142が検出した領域の分割処理を説明するための図として、領域90と、その領域90に含まれる小領域91〜93とが示されている。
ここで、一例として、画像における小領域91の位置と、デプスマップ60(図35を参照)における評価領域64の位置とが対応しているとする。また、一例として、画像における小領域92の位置と、デプスマップ60における評価領域69の位置とが対応しているとする。また、一例として、画像における小領域93の位置と、デプスマップ60における評価領域66の位置とが対応しているとする。
この場合、評価領域64、69、及び66(図35を参照)には、それぞれ異なる被写体距離が対応しているので、領域検出部142は、被写体距離毎に、領域91に含まれる小領域91〜93(図37を参照)を検出する。そして、小領域91〜93が、それぞれ異なる被写体距離に対応するので、領域検出部142は、デプスマップ60に基づいて、領域90を被写体距離(評価領域64、69、及び66)毎に小領域91〜93に分割する。
図33に戻り、手順の説明を続ける。評点算出部143は、デプスマップに基づく被写体距離に応じて、領域の評点に加点する。ここで、評点算出部143は、至近側の領域(前景を示す領域)には高い評点を加点する。一方、評点算出部143は、無限側の領域(背景を示す領域)には低い評定を加点する(ステップSk4)。
なお、評点算出部143は、第1の評価領域に対応する被写体距離と、第2の評価領域に対応する被写体距離との差(相対距離)に応じて、領域の評点に加点してもよい。
領域検出部142は、領域の射影に基づいて、背景を示す領域を検出する。そして、評点算出部143は、背景を示す領域の評点を減点する。さらに、領域検出部142は、優先ラベルを設定する対象から、背景を示す領域を除外する(ステップSk5)。なお、同様に、領域検出部142は、優先ラベルを設定する対象から、前景(例えば、降雪)を示す領域を除外してもよい。
ステップSk5において、領域検出部142が、領域の射影に基づいて、背景を示す領域を検出する処理を説明する。図38には、領域検出部142が、領域の射影に基づいて、背景を示す領域を検出する処理の手順が、フローチャートで示されている。
領域検出部142は、面積の大小に応じて、画像における領域を第1グループと第2グループとに分ける。そして、第1グループの領域の「X軸に対する射影(X射影)」が、第2グループの領域のX射影を包含し、かつ、第1グループの領域の「Y軸に対する射影(Y射影)」が、第2グループの領域のY射影を包含する場合、領域検出部142は、背景が撮像された領域(背景を示す領域)として、第1グループの領域を検出し、第1グループの領域に「背景ラベル」を設定する(ステップSn1)。
図39には、図38のステップSn1における、背景を示す領域を検出する処理を説明するための図が示されている。ここで、画像の垂直方向にX軸と、画像の水平方向にY軸とが設定されているとする。さらに、領域検出部142は、面積の大小に応じて、画像における領域を、第1グループの領域95と第2グループの領域94とに分けたとする。
そして、第1グループの領域95のX射影96xが、第2グループの領域94のX射影97xを包含し、かつ、第1グループの領域95のY射影96yが、第2グループの領域94のY射影97yを包含する場合、領域検出部142は、第1グループの領域95に、背景を示す領域であることを示す「背景ラベル」を設定する。
図38に戻り、背景を示す領域を検出する処理の手順の説明を続ける。ステップSn1において、第1グループの領域95に「背景ラベル」を設定しなかった場合でも、第1グループの領域95の面積が、予め定められた面積より広く、かつ、第2グループの領域94から外側に向かう法線が、第1グループの領域95に角度「180」度以上かかる場合には、領域検出部142は、第1グループの領域95に「背景ラベル」を設定する(ステップSn2)。
図40には、図38のステップSn2における、背景を示す領域を検出する処理を説明するための図が示されている。図40では、図39と異なり、第1グループの領域95のY射影96yが、第2グループの領域94のY射影97yを包含していない。そして、第1グループの領域95の面積が、予め定められた面積より広く、かつ、第2グループの領域94から外側に向かう法線98及び99が、第1グループの領域95に角度180度以上かかる場合、領域検出部142は、第1グループの領域95に「背景ラベル」を設定する。
図33に戻り、手順の説明を続ける。画像には、被写体距離が不明である領域があってもよい。そして、領域検出部142は、被写体距離が不明である領域に、高い評点(例えば、上位3つ以内)が付けられているか否かを判定する(ステップSk6)。
被写体距離が不明である領域に、高い評点が付けられていない場合(ステップSk6−NO)、領域検出部142は、検出した領域に、評点に応じて「優先ラベル」を設定する。ここで、領域検出部142は、複数の領域に「優先ラベル」を設定してもよい(ステップSk7)。
一方、被写体距離が不明である領域に、高い評点が付けられている場合(ステップSk6−YES)、領域検出部142は、その高い評点が付けられている領域に「優先ラベル」を設定する。これは、主要な被写体像の領域であるにも関わらず、低コントラストであるために、被写体距離が不明となっている場合があるためである。
また、評点算出部143は、至近側(例えば、被写体距離「1(至近)」)の領域に付けられた評点のうち最高の評点を、「優先ラベル」を設定した領域の評点に加算する。そして、評点算出部143の処理は、ステップSk7に進む(ステップSk8)。
以上に説明した、領域にラベルを設定する処理と、評点を算出する処理をまとめると、これらの処理の概要は、次のようになる。
まず、画像処理装置140は、特徴量毎にラベリングにより領域を検出し、検出した領域について、ラベリング処理、及び評点算出処理を実行する。領域検出部142は、特徴量毎に定まる領域を、画像から検出する。そして、領域検出部142は、例えば、動きのある領域に、動きラベルを設定する。また、例えば、評点算出部143は、画像の中心(画角中心)から領域の重心までの距離、慣性モーメント、及び領域の面積(画素数)に応じて、領域に評点を設定する。
次に、画像処理装置140は、特徴量に基づいて、領域の評点に加点する。例えば、評点算出部143は、特異である特徴量(例えば、色相環において不連続である色相)がある領域、彩度が高い領域、周囲と比較して色相(色合い)が著しく異なる領域、色相(特定の色相)に基づいて検出した領域、周囲と比較して明度が著しく異なる領域、角度検出オペレータ又はDCTにより検出するテクスチャに基づいて検出した領域、縦又は横に延びたエッジに基づいて検出した領域などの評点に、加点する。
次に、画像処理装置140は、被写体距離(デプス、深度)に基づいて、領域の評点に加点する。例えば、評点算出部143は、被写体距離の差(相対距離)に応じて、領域の評点に加点する。
さらに、画像処理装置140は、領域を結合、分割、又はグルーピングし、領域にラベルを設定する。例えば、領域検出部142は、被写体距離が同じ距離である領域同士が近接している場合、それらの領域を結合し、結合した領域にラベルを設定する。また、例えば、領域検出部142は、デプスマップ60に基づいて、領域を小領域に分割する。また、例えば、領域検出部142は、被写体距離が同じ距離である領域に、同じグループであることを示すラベルを設定する。
次に、画像処理装置140は、結合、分割、又はグルーピングした領域の評点に加点する。例えば、評点算出部143は、結合した領域の評点に加点する。また、例えば、評点算出部143は、前景又は背景を示す領域の評点を減点する。また、例えば、領域検出部142は、被写体距離が不明である領域であって、高い評点が付けられている領域に「優先ラベル」を設定する。そして、評点算出部143は、至近側の領域に付けられた評点を、「優先ラベル」を設定した領域の評点に加算する。
次に、画像処理装置140は、「優先ラベル」を設定する。例えば、領域検出部142は、検出した領域に、その評点に応じて「優先ラベル」を設定する。ここで、領域検出部142は、複数の領域に、その評点が上位である順に「優先ラベル」を設定してもよい。
以上のように、画像処理装置140は、第1の特徴の特徴量に基づいて検出した第1の領域と、第2の特徴の特徴量に基づいて検出した第2の領域と、の重なる部分の面積を算出し、その重なる部分の面積が予め定められた面積以上である場合、その第1の領域にその第2の領域を結合する。これにより、画像処理装置140は、検出した小領域をまとめた領域を、主要な被写体像の領域として識別することができる。
また、画像処理装置140は、第3の特徴の特徴量に基づいて検出した第3の領域に対応する距離(被写体距離)と、第4の特徴の特徴量に基づいて検出した第4の領域に対応する距離と、が同じ距離である場合、その第3の領域にその第4の領域を結合する。これにより、画像処理装置140は、検出した領域をまとめた領域を、主要な被写体像の領域として識別することができる。
また、画像処理装置140は、領域を結合する場合、結合する前の領域毎の評点を合算し、合算した評点を、結合した後の領域の評点とする。これにより、画像処理装置140は、結合した領域の評点に基づいて、主要な被写体像の領域を識別することができる。
また、画像処理装置140は、領域を構成する複数の小領域が、それぞれ異なる距離(被写体距離)に対応する場合、領域を複数の小領域に分割する。これにより、画像処理装置140は、検出した領域に含まれた複数の小領域に基づいて、主要な被写体像の領域を識別することができる。
また、画像処理装置140は、画像における距離(被写体距離)の分布を示すデプスマップに基づいて、領域を結合又は分割する。これにより、画像処理装置140は、取得又は作成したデプスマップに基づいて、主要な被写体像の領域を識別することができる。
[第3実施形態]
本発明の第3実施形態について図面を参照して詳細に説明する。第3実施形態では、焦点調整(AF)領域が、画角の中央に固定されている(AFエリアが画角の中央にある)場合に、被写体像の領域が低コントラストであったとしても、画像処理装置140が主要な被写体像の領域を識別し、コントラストを確保する点が、第1及び第2実施形態と異なる。第3実施形態では、画像における固定点に設定されたAF領域に、確実に被写体があると仮定して、AF領域のコントラストを上げる方法を採る。ここで、CPU190は、ラベルの内側又はラベルのエッジを含む領域を、コントラストAF領域に設定し、コントラストスキャンにより合焦位置を探索する。以下では、第1及び第2実施形態との相違点についてのみ説明する。
図41には、焦点調整(AF)領域が固定されている場合における合焦動作の手順が、フローチャートで示されている。まず、CPU190は、ユーザからの操作入力に基づいて、焦点調整(AF)領域を、画角の中央に設定する(ステップSp1)。そして、画像処理装置140は、スルー画像を取得する。ここで、画像処理装置140は、時間的に連続するスルー画像(スルー画列)を取得してもよい(ステップSp2)。
CPU190は、撮像部110に、debayer(色補間)処理を実行させる。また、CPU190は、画像処理装置140に、ノイズ低減処理(NR)、及びホワイトバランス調整(AWB)を実行させる(ステップSp3)。そして、特徴量算出部141は、撮像部110が撮像した画像を、バッファメモリ部130から取得し、焦点調整(AF)領域に撮像された被写体像の領域のラベル作成用特徴量を算出する(ステップSp4)。
さらに、特徴量算出部141は、特徴量毎にヒストグラムを作成し、後段処理で使用する特徴量(弁別可能な特徴量)を選択する(ステップSp5)。そして、領域検出部142は、選択した特徴量のヒストグラムにおけるピーク又は谷に基づいて、ヒストグラムの不連続領域(分割数、分割域)を算出する(図18を参照)(ステップSp6)。
領域検出部142は、ヒストグラムにおいてピーク波形又は不連続領域を示す特徴量(図18では、色相)に基づいて、ラベリングにより領域を検出する(ステップSp7)。優先度設定部144は、評点算出部143が算出した評点に基づいて、領域検出部142が検出した領域に優先度を設定する。そして、領域検出部142は、優先度が高い領域(有効領域)を選択する(ステップSp8)。
領域検出部142は、選択した領域を拡張するために、条件を緩和(例えば、ラベリングするための特徴量の閾値を下げるなど)して、再びラベリング処理を実行する。ここで、選択した領域が複数ある場合、領域検出部142は、それぞれの領域を拡張する(ステップSp9)。特徴量算出部141は、領域検出部142が拡張した領域の境界(外周)から5%内側の領域についてヒストグラムを作成する。さらに、領域検出部142は、ヒストグラムに基づいて、コントラストの検出に有利な色相(色チャネル)を選択する。例えば、領域検出部142は、コントラスト値が高い色相(色チャネル)を、コントラストの検出に有利な色相(色チャネル)として選択する(ステップSp10)。
領域検出部142は、選択した領域の色相及び輝度のコントラスト値が低い(低コントラストである)か、又は色相及び輝度のコントラスト値がさらに低い(さらに低コントラストである)か、を判定する(ステップSp11)。例えば、領域検出部142は、予め定められた第1閾値よりコントラスト値が低い場合、その領域のコントラスト値を、低コントラストと判定してもよい。また、例えば、領域検出部142は、第1閾値より値が小さい第2閾値よりコントラスト値が低い場合、その領域のコントラスト値を、さらに低コントラストと判定してもよい。
選択した領域の色相及び輝度のコントラスト値が低い場合(ステップSp11−低コントラスト)、領域検出部142は、コントラストAF領域を拡張し、選択した領域に高ガンマテーブル(図15を参照)を設定する(ステップSp12)。
領域検出部142は、高ガンマテーブルを設定した領域の境界(外周)から5%内側を含む領域に、コントラストAF領域を設定する(ステップSp13)。CPU190は、領域検出部142が選択した色相について、コントラストスキャンを実行し、領域検出部142が選択した色相のコントラストがピークを示したレンズ位置を、記憶部160に記憶させる(ステップSp14)。
CPU190は、コントラストがピークを示したレンズ位置にAFレンズ112を移動させることで、コントラストAF領域に撮像された領域に合焦させる。ここで、コントラストAF領域に複数の「選択した領域」が撮像されている場合、CPU190は、その領域のうち被写体距離が最も短い(最至近に撮像された)領域に合焦させる(ステップSp15)。
一方、選択した領域の色相及び輝度のコントラスト値が、さらに低い場合(ステップSp11−さらに低コントラスト)、領域検出部142は、選択した領域の境界(外周)近傍のエッジを検出する(ステップSp16)。そして、領域検出部142は、選択した領域の境界(外周)近傍でエッジを探索し、エッジの色相(色構成)を検出する(ステップSp17)。
さらに、領域検出部142は、色相を検出した領域でエッジを探索し、エッジの色相を検出した領域を、SN比が確保できるまで拡張する(ステップSp18)。なお、領域検出部142は、アパーチャ(F値)を変更させる、又は高ガンマテーブルに変更することにより、色相及び輝度のコントラストを検出する感度を上げてもよい。
そして、領域検出部142は、色相を検出した領域に、コントラストAF領域を設定する(ステップSp19)。領域検出部142の処理は、ステップSp14に進む。
なお、同じ優先度のラベルが複数あった場合、合焦位置の探索に複数のラベルが使用されてもよい。
焦点調整(AF)領域が固定されている場合における合焦動作の手順は、次のようにしてもよい。
特徴量算出部141は、ラベルの検出に最適な特徴量を算出する(ステップSr1)。領域検出部142は、特徴量算出部141が算出した特徴量に基づいて、ラベルを検出する(ステップSr2)。領域検出部142は、コントラストAF領域に、ラベルを設定する(ステップSr3)。領域検出部142は、設定したラベルの外側にあるエッジを抽出する(ステップSr4)。領域検出部142は、抽出したエッジを含むまで、ラベルを拡張する(ステップSr5)。領域検出部142は、コントラストAF領域にラベルを設定する(ステップSr6)。領域検出部142は、ガンマテーブルを2系統有し、うち1系統を高ガンマテーブルとする(ステップSr7)。CPU190は、AFレンズ112を駆動して、コントラストスキャンを実行する(ステップSr8)。領域検出部142は、ラベルの内側又は外側のいずれかにおいて、至近側に分布するラベルを合焦点と判定する(ステップSr9)。
以上のように、画像処理装置140は、被写体像の領域の色相及び輝度のコントラスト値が低い場合、コントラストAF領域を拡張し、選択した領域に高ガンマテーブルを設定する。また、画像処理装置140は、被写体像の領域の色相及び輝度のコントラスト値がさらに低い場合、エッジの色相を検出した領域を、SN比が確保できるまで拡張する。
これにより、焦点調整(AF)領域が画角の中央に固定されている場合に、被写体像の領域が低コントラストであったとしても、画像処理装置140は、色相及び輝度のコントラストを検出する感度を上げて、コントラストスキャンを実行するので、撮像された画像における領域を、高精度に識別することができる。例えば、画像処理装置140は、撮像された画像における、主要な被写体像の領域と、主要でない被写体像の領域とを識別することができる。
<被写体認識技術との組み合わせ>
画像処理装置140は、人の顔の位置を顔検出(被写体認識技術)により検出し、検出した顔の位置に基づいて、胴体又は髪の位置を推定し、推定した位置にラベルに設定してもよい。
胴体又は髪のラベルを用いたほうが、顔のラベルを用いるよりも有利な評価値(高SN、高コントラスト)を算出することができる場合、CPU190は、顔のラベルの代わりに、胴体又は髪のラベルを使用して、コントラストスキャンを実行してもよい。また、動物を検出する場合も同様であり、領域検出部142は、動物の顔と同一の色相又はテクスチャのラベルを、動物の顔の周辺で探索してもよい。CPU190は、探索されたラベルにおける有利な評価値を使用して、コントラストスキャンを実行する。
上記以外の被写体認識技術を用いた場合も、同様の考え方が適用できる。この場合、顔ラベルのコントラストのピークと、顔の周辺にあるラベルのコントラストのピークとが同じレベルであることが前提である。CPU190は、この前提が成り立っていることを確認した上で、顔の周辺にあるラベルのコントラスト評価値を使用して、コントラストスキャンを実行する。また、CPU190は、この前提が成り立っていることを確認する処理を省き、予め定められた位置関係(例えば、顔と胴体との位置関係)に基づいて、顔の周辺にあるラベルのコントラスト評価値を使用して、コントラストスキャンを実行してもよい。
[第4実施形態]
本発明の第4実施形態について図面を参照して詳細に説明する。第4実施形態では、夜景ポートレート(夜景P)を撮像する場合に、画像処理装置140がコントラストの検出に有利な特徴量(例えば、色相の特徴量)を選択する点が、第1〜第3実施形態と異なる。以下では、第1〜第3実施形態との相違点についてのみ説明する。
図42には、夜景を撮像する場合における合焦動作の手順が、フローチャートで示されている。まず、CPU190は、ユーザからの操作入力に基づいて、撮像モードを夜景ポートレートモードに設定する(ステップSq1)。これにより、CPU190は、撮像装置100に備える発光部(不図示)に、AF補助光を発光させる。発光部(不図示)がAF補助光を発光することで、AF補助光は、被写体に照射される(ステップSq2)。そして、画像処理装置140は、スルー画像を取得する。ここで、画像処理装置140は、時間的に連続するスルー画像(スルー画列)を取得してもよい(ステップSq3)。
CPU190は、撮像部110に、debayer(色補間)処理を実行させる。また、CPU190は、画像処理装置140に、ノイズ低減処理(NR)、及びホワイトバランス調整(AWB)を実行させる(ステップSq4)。そして、特徴量算出部141は、撮像部110が撮像した画像を、バッファメモリ部130から取得し、顔検出処理を実行して、画像において顔が撮像された領域を算出する(ステップSq5)。
ここで、AF補助光が顔に照射された場合における顔の色相は、例えば、撮像装置100の製造前に予め測定されて、顔の色相の予測値として、記憶部160に予め記憶されているものとする。そして、領域検出部142は、AF補助光が顔に照射された場合における、顔の色相の予測値に基づいて、画像において顔が撮像された領域をラベリングする。この結果、CPU190は、ラベルの明度とAFレンズ112(図1を参照)の変倍位置とに基づいて、撮像装置100から顔までの、おおよその距離を算出して、AFレンズ112を駆動する。複数のラベルが画像に存在する場合、CPU190は、最も明度の高いラベルの顔に合焦させるよう、AFレンズ112を駆動する。また、複数のラベルが同様の明度である場合、CPU190は、画角の中央に最も近いラベルに合焦させるよう、AFレンズ112を駆動する(ステップSq6)。
これにより、CPU190は、顔ラベルに対してまったく合焦していない大ぼけの状態を回避して、各ラベルのコントラストを比較することができる。なお、領域検出部142は、顔が撮像された領域が画像に複数ある場合、各領域の評点等に応じて、優先ラベル及び優先度を設定する。
また、複数種類の光源からの光(ミックス光)が顔に照射されているなどの理由で、顔が撮像された領域に、AF補助光が顔に照射された場合における、顔の色相の予測値がない場合、特徴量算出部141は、顔検出により顔領域を検出し、検出した顔領域における平均色相を算出する(ステップSq7)。そして、領域検出部142は、画像において顔が撮像された領域を、特徴量算出部141が検出した平均色相に基づいて、ラベリングする(ステップSq8)。そして、領域検出部142は、顔が撮像された領域に「顔ラベル」を設定する(ステップSq9)。
特徴量算出部141は、顔が撮像された領域の外周から5%内側の領域について、RGBヒストグラムを作成する。さらに、領域検出部142は、ヒストグラムに基づいて、コントラストの検出に有利な特徴量を選択する(ステップSq10)。以下では、一例として、領域検出部142が、コントラスト値が高い色相(色チャネル)を、コントラストの検出に有利な色相として選択したとして説明する。
領域検出部142は、顔が撮像された領域のRGB及び輝度が、低コントラストである否かを判定する(ステップSq11)。例えば、領域検出部142は、コントラスト値が予め定められた閾値より低い場合、その領域のコントラスト値が低コントラストである、と判定する。一方、領域検出部142は、コントラスト値が予め定められた閾値以上である場合、その領域のコントラスト値が低コントラストでない、と判定する。
顔が撮像された領域のRGBチャネル及び輝度のコントラスト値が、低コントラストである場合(ステップSq11−YES)、領域検出部142は、顔の輪郭の色チャネルを選択する(ステップSq12)。そして、CPU190は、選択された色チャネルに基づいて、コントラストスキャンを実行する(ステップSq13)。
一方、顔ラベルのコントラスト値が、低コントラストでない場合(ステップSq11−NO)、領域検出部142は、顔が撮像された領域の外周から5%内側を含む領域に、コントラストAF領域を設定する(ステップSq14)。そして、領域検出部142の処理は、ステップSq13に進む。
<夜景Pを撮像する場合における、顔検出ができる場合と、顔検出ができない場合との合焦動作について>
顔検出ができる場合(顔検出ができる程度の光量がある場合)、領域検出部142は、検出した顔に基づいて、その顔の周辺をラベリングする。CPU190は、検出された顔に基づいて、検出した顔から撮像装置100までの、おおよその距離を算出して、AFレンズ112を駆動する。
一方、顔検出ができない場合、例えば、顔検出ができる程度の定常光量がなく、かつ、AF補助光が顔に照射されたことにより、定常光とAF補助光とのミックス光によって、顔の色相が特定できない場合、領域検出部142は、AF補助光の発光時と消灯時との差分画像に基づいて、AF補助光が照射された領域を検出する。また、領域検出部142は、AF補助光が顔に照射された場合における、顔の色相の予測値に基づいて、画像において顔が撮像された領域をラベリングする(顔ラベル作成)。
図43には、夜景Pを撮像する場合における、顔検出ができる場合と、顔検出ができない場合との合焦動作の手順が、フローチャートで示されている。CPU190は、AF補助光を発光させる(ステップSt1)。領域検出部142は、特定色相(例えば、ミックス光の色相)を探索する(ステップSt2)。領域検出部142は、特定色相があるか否かを判定する(ステップSt3)。特定色相がある場合(ステップSt3−YES)、領域検出部142は、ラベルのコントラストを評価する(ステップSt4)。低コントラストである場合、領域検出部142は、高ガンマテーブルを設定する。また、高ガンマテーブルを設定しても、まだ低コントラストである場合、領域検出部142は、ラベルを拡張する。ここで、領域検出部142は、高ガンマテーブルでない通常ガンマテーブルを設定する(ステップSt5)。CPU190は、コントラストスキャンを実行する(ステップSt6)。
一方、特定色相がない場合(ステップSt3−NO)、領域検出部142は、顔検出が可能であるか否かを判定する(ステップSt7)。顔検出が可能である場合(ステップSt7−YES)、領域検出部142は、顔の色相の予測値に基づいて、ラベリングする(ステップSt8)。顔検出が可能である場合(ステップSt7−NO)、領域検出部142は、AF補助光の発光時と消灯時との差分画像に基づいて、ラベリングする(ステップSt9)。
以上のように、夜景Pを撮像する場合に、画像処理装置140は、AF補助光が顔に照射された場合における顔の色相、又は顔が撮像された領域における平均色相を検出して、その色相に基づいて、領域をラベリングし、コントラストの検出に有利な色チャネルを選択する。
これにより、夜景Pを撮像する場合に、被写体像の顔の領域が低コントラストであったとしても、コントラストの検出に有利な色チャネルを選択してコントラストスキャンを実行するので、被写体像の顔の領域を、高精度に識別することができる。例えば、画像処理装置140は、撮像された画像における、主要な被写体像の「顔の領域」と、主要でない被写体像の領域とを識別することができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
例えば、特徴量算出部141は、領域検出部142が色相毎に検出した領域のエッジの線広がり関数(LSF)の「半値幅」に基づいて、被写体距離又はデフォーカス量を検出してもよい。
また、例えば、領域検出部142は、領域の情報(例えば、領域の位置、形状、被写体距離など)に基づいて、被写体像の領域を切り抜いて(グラフカット)、切り抜いた被写体像の領域を他の画像に合成してもよい。
また、例えば、CPU190は、1方向にのみAFレンズ112を駆動(フォーカスポジションを変更)させながら、撮像部110に撮像(連写)させてもよい(AFブラケット)。ここで、「優先ラベル」が設定された被写体像の領域は、AFブラケットの実行前に、コントラストスキャンされていてもよい。また、CPU190は、AFブラケットを実行しながら、被写体像の領域をコントラストスキャンしてもよい。
また、例えば、AFブラケットにより撮像(連写)された画像は、その画像が含む領域の優先度に応じて、画像の記録及び再生表示の順序が並べ替えられてもよい。例えば、画像処理装置140は、優先度が最も高い領域が撮像された画像を時間的に連続する最初の画像とし、優先度が最も低い領域が撮像された画像を、時間的に連続する最後の画像として、画像の順序を並べ替えて、記録及び再生表示を実行してもよい。
また、例えば、動作モードに応じて、又は「パースペクティブフラグ」がオンである場合、追尾する被写体像の領域を切り替える指示を、CPU190が操作部180を介して受け付けている間、又は受け付けるたびに、CPU190は、追尾する被写体像の領域を、優先ラベルに応じて、又は優先度の高い順に切り替えてもよい(トラッキング制御)。さらに、CPU190が操作部180を介して撮影指示を受け付けた場合、CPU190は、撮像部110に撮像(露光)させてもよい。
また、例えば、CPU190は、図3のステップSa3において、初期AFとして、コントラストAF方式、又は位相差検出方式などの焦点調整を実行してよい。
また、例えば、画像処理装置140は、後段処理において、RGB色空間で表現されたデータを使用してもよい。
また、図2、3、4、5、6、7、8、10、11、17、19、20、24、26、27、28、29、30、31、32、33、38、41、42、及び43を用いて説明した手順を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、実行処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。