以下に、図面を用いながら本発明の実施形態について詳細に説明する。
図1は本発明を適用できる撮像装置のシステムの構成を示したブロック図である。本実施形態ではデジタルカメラを例にあげて説明を行うが、デジタルビデオカメラであっても本発明を適用することは可能である。
図1において、101は撮像装置全体を制御する制御部であり、不図示のプログラム格納メモリに記憶されたプログラムに従って、以下に記載される各処理を実行する。また、この制御部101は、追尾対象とする被写体の画像データを基準データとして記憶し、動画中からこの基準データと最も相関の高い領域を連続して抽出することで、追尾機能を実現させることできる。102はフォーカスレンズおよびズームレンズを含む複数のレンズで構成された撮影光学部材である。103は撮影光学部材102のフォーカスレンズおよびズームレンズの光軸上の位置を調整するレンズアクチュエータである。104は制御部101とレンズアクチュエータ103の通信を行うためのドライバである。
105は、撮影光学部材102を透過してきた被写体像を受光して光電変換を行い、アナログ信号の画像データを生成する撮像素子である。撮像素子としてはCCD(Charge Coupled Device)イメージセンサや、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサが適用される。106は撮像素子105から出力されたアナログ信号の画像データに対して、サンプリング、ゲイン調整、A/D変換等を行い、デジタル信号の画像データとして出力するAFE(アナログフロントエンド回路)である。
107は、AFE106から出力されたデジタル信号の画像データに対して各種の画像処理を行い、処理済みの輝度信号、色差信号からなる画像データを出力する画像処理部である。例えば、各種の画像処理としてはホワイトバランス処理、色収差補正処理、色滲み抑圧処理、歪曲収差補正処理、エッジ強調処理、あるいは、ノイズリダクション処理等が含まれている。また、画像処理部107は、焦点制御に用いるAF評価値の生成のため、AFE106から出力された画像データに対して不要な高周波成分を取り除くフィルタリング処理を施し、その結果得られた画像データを内部記憶部108に蓄積する。
108は画像処理部107にて画像処理が施された画像データや、表示装置1011が用いる表示用の画像データ、あるいは、光学ズーム処理や電子ズーム処理のズームポジションを一時的に記憶させておくための内部記憶部である。109は本撮影によって得られた画像データを、このデジタルカメラに着脱可能な記憶媒体に記憶させるための外部記憶部である。
110は画像処理部107から出力された画像データを表示用の画像データのサイズとなるようにリサイズし、この表示用の画像データを用いて画像を表示する表示部である。表示部110は本撮影で得られた静止画を表示するだけでなく、撮像素子105で生成された動画をリアルタイムで表示することで、被写体の様子をユーザが観察することが可能となる。また、追尾領域を表す追尾枠を動画に重畳して表示する。111はデジタルカメラを操作するユーザからの入力による指示を、電気信号に変換して制御部101に伝える操作部材である。操作部材111には、メニューボタン、ズームボタン、レリーズボタン、モード切り替えダイヤル、十字ボタン、あるいは、タッチパネルなどが含まれる。
この図1に示すデジタルカメラは、電源を投入すると、撮影した画像を再生するための再生モードと、撮影を行うための撮影モードのいずれかに設定されるものとする。ユーザは操作部材111を用いることで再生モードと撮影モードの切り替えを自由に行うことができる。
図2は、撮影モードが設定された場合のデジタルカメラの動作を示すフローチャートである。デジタルカメラの電源が投入され、撮影モードが設定されると、撮像素子105は動画を生成し、表示部110は生成された動画の画像データを用いてリアルタイムで被写体の画像を表示する。
ステップS201では、制御部101は、操作部材111から撮影モードを終了するための指示が入力されたか否かを判定する。撮影モードを終了させるための指示とは、電源をオフにする操作か、あるいは、再生モードに切り替えるための操作である。制御部101は撮影モードを終了させるための指示があれば本フローチャートを終了し、そうでなければステップS202に進む。
ステップS202では、制御部101は、操作部材111に含まれるズームボタンが操作されたか否かを判定し、ズームボタンが操作されていればステップS203に進み、操作されていなければステップS204に進む。
ステップS203では、制御部101は後述するズーム処理を行い、ステップS201に戻る。
ステップS204では、制御部101は、操作部材111に含まれるレリーズボタンが操作されたか否かを判定し、操作されていればステップS205に進み、操作されていなければステップS206に進む。
ステップS205では、制御部101は静止画の撮影処理を行う。操作部材111に含まれるレリーズボタンが半押しされると、その時点における画像データに得られたAF評価値や輝度値から本撮影用の焦点位置および露出値を求め、レリーズボタンが全押しされると、その焦点位置および露出値で静止画の本撮影を行う。この本撮影によって得られた静止画は、本撮影後すぐに表示部110に表示され、ユーザが確認することができる。この撮影処理を終えると、ステップS201に戻る。
ステップS206では、制御部101は、操作部材111に含まれるダイヤル、十字ボタン、あるいは、タッチパネルによって、ユーザによって追尾領域の位置が指定されたか否かを判定し、指定されていればステップS207に進む。指定されていなければステップS201に戻る。
ステップS207では、制御部101は後述する追尾領域サイズ決定処理を行い、ステップS208に進む。
ステップS208では、制御部101は後述するAF評価値決定処理を行い、ステップS201に戻る。
次に、ステップS203のズーム処理について説明する。本実施形態では、ズームレンズが望遠端に到達していないのであれば、ズームレンズを駆動する光学ズーム処理によってズーム処理を行う。そして、フォーカスレンズが望遠端に到達し、かつ、さらにズーム倍率を高くするよう指示された場合には、ズームレンズの駆動だけではカバーできないズーム倍率を実現するために電子ズーム処理を行う。
電子ズーム処理は、撮像素子105で生成された画像データの一部の領域を切り出して拡大率を変えて表示することで、見た目上のズーム倍率を高くするものである。画像データの一部の領域を切り出すため、電子ズーム処理を行わない場合に比較して、表示されている画像データを生成している画素数は減少する。電子ズーム処理はこのように画像データに含まれる画素数が減少するため、光学ズーム処理で達成できるズーム倍率については光学ズーム処理を行い、光学ズーム処理だけでは達成できないズーム倍率についてのみ電子ズーム処理を行うものとする。
図3は、図2のステップS203のズーム処理を説明するためのフローチャートである。
ステップS301では、制御部101は、ドライバ104、内部記憶部108に対してズーム処理に必要な初期化を行う。
ステップS302では、制御部101は、操作部材111のズームボタンからズーム操作に相当する入力を取り込み、ズーム操作が行われているか否かを判断する。ここで、ズーム操作が行われていないと判断した場合には、本フローチャートを終了し、ズーム操作が行われていればステップS303に進む。
ステップS303では、制御部101は、ズーム制御が可能であるか否かを判定する。ズーム制御の可否の判定は、ドライバ104経由で、レンズアクチュエータ103が駆動するフォーカスレンズの位置を確認することによる機械的な制御限界と、予め規定され、内部記憶部108に記憶されている電子ズーム処理の制御限界の双方から判定される。ズームレンズが広角端に位置しているときに、ズーム倍率を低くするよう指示された場合や、ズームレンズが望遠端に達し、電子ズーム処理も限界に達しているときに、ズーム倍率を高くするよう指示された場合には、ズーム制御が不可能であると判定する。制御部101は、ズーム制御が可能であると判定すればステップS304に進み、不可能であると判定した場合には本フローチャートを終了する。
ステップS304では、制御部101は、現在のズーム状態が電子ズーム域であるか否かを判定する。具体的には、ズームレンズが望遠端に達していないズーム状態であれば、電子ズーム域ではないと判定する。ズームレンズが望遠端に達しており、かつ、電子ズーム処理によって画像データの一部の領域を切り出しているズーム状態であれば、電子ズーム域であると判定する。ただし、ズームレンズが望遠端に達しており、かつ、電子ズーム処理によって画像データの一部の領域を切り出されていないズーム状態である場合は、ズーム倍率の指示の内容によって判定が異なる。この状態でズーム倍率を高くするよう指示されていれば電子ズーム域であると判定し、同じくこの状態でズーム倍率を低くするよう指示されていれば電子ズーム域でないと判定する。
制御部101は、電子ズーム域であると判定した場合にはステップS305に進み、電子ズーム域でないと判定した場合にはステップS306に進む。
ステップS305では、制御部101は、ズーム倍率の指示にしたがって画像データを切り出す範囲を決定し、電子ズーム処理を行う。この際、内部記憶部108の任意のアドレスに現在の電子ズーム処理でのズームポジションを記憶する。そして、ステップS302に戻る。
ステップS306では、制御部101は、ズーム倍率の指示にしたがってズームレンズを駆動するようレンズアクチュエータ103に指令を出して光学ズーム処理を行う。この際、内部記憶部108の任意のアドレスに現在の光学ズーム処理でのズームポジションを記憶する。そして、ステップS302に戻る。
以上のようにして、ズーム倍率に応じて、光学ズーム処理と電子ズーム処理を切り替えている。
次に、ステップS208のAF評価値決定処理について説明する。図4は、内部記憶部108に記憶され、AF評価値を求める際に用いられる画像データの格納状態を模式化した図である。
図4(a)の401は電子ズーム処理が行われていない状態での画像データを示し、403はこの画像データ401に設定された追尾領域の一例を示す。図4(b)の411は電子ズーム処理が行われていない状態での画像データを示す。電子ズーム処理が行われることによって、画像データ411のうち点線で囲まれた一部の領域(ここでは、画像データ411の5分の4に相当)が画像データ412として切り出される。413はこの画像データ412に設定された追尾領域の一例を示す。画像データ412は画像データ401と同じサイズに拡大処理されて表示部110に表示されており、表示部110に表示された画像上では、追尾領域403と追尾領域413の見た目上のサイズは等しくなる。
図4(c)はAF評価値を求める際に用いられる追尾領域403の画像データの格納状態を示すものであり、図4(d)はAF評価値を求める際に用いられる追尾領域413の画像データの格納状態を示すものである。
図4(c)の小領域421、中領域422、大領域423はそれぞれ追尾領域403が取りうるサイズを示しており、小領域421は6行6列、中領域422は8行8列、大領域423は10行10列の画素で構成されている。この追尾領域はあくまで一例であって、異なる画素数や、異なる形状の追尾領域であっても構わない。424は追尾領域403の各行における画素の最大値を格納する最大値格納領域であり、追尾領域403の行数と同じ数の画素値を格納する。つまり、最大値格納領域は、追尾領域403のサイズが小領域421と等しいときは6個の値を格納し、中領域422と等しいときは8個、大領域423と等しいときは10個の値を格納する。
図4(d)の小領域431、中領域432、大領域433は、図4(c)の小領域421、中領域422、大領域423の相対的なサイズの比率が近くなるように、追尾領域413を3通りのサイズに分類したものである。ただし、追尾領域413は、追尾領域403と見た目上のサイズが等しい場合には、その領域に含まれる画素数は追尾領域403よりも少なくなる。さらに、電子ズーム処理のズーム倍率が変化すれば、この小領域431、中領域432、大領域433のそれぞれに含まれる画素数も変化する。図4(b)の例では、小領域431は5行5列、中領域432は7行7列、大領域433は8行8列の画素となる。434は追尾領域413の各行における画素の最大値を格納する最大値格納領域であり、追尾領域413の行数と同じ数の画素値を格納する。
図5は、図2のステップS208のAF評価値決定処理を説明するためのフローチャートである。ここでは、電子ズーム処理が行われていない場合を例に説明を行う。電子ズーム処理が行われている場合は、下記図5の説明のうち、追尾領域403を追尾領域413に、最大値格納領域424を最大値格納領域434に置き換えればよい。
ステップS501では、制御部101は、最大値格納領域424に格納されている値をリセットし、追尾領域403における参照位置を最上段の左端に設定する。制御部101は、追尾領域403の最上段の左端から参照位置を順に移動させ、追尾領域403に含まれる全ての画素値を読み出す。
ステップS502では、制御部101は、追尾領域403の参照位置の画素値と、その参照位置の行に対応する最大値格納領域424の値を比較する。制御部101は、比較の結果、追尾領域403の参照位置の画素値のほうが大きければステップS503に進み、そうでなければステップS504へ進む。
ステップS503では、制御部101は、その参照位置の行に対応する最大値格納領域424の値を、追尾領域403の参照位置の画素値に更新し、ステップS504に進む。はじめは最大値格納領域424の値はリセットされているため、最上段の最大値格納領域424には、追尾領域403の最上段の左端の画素値が格納される。
ステップS504では、制御部101は、同一行内の全ての画素値を参照したかを判定し、参照していればステップS506に進み、まだ参照していない画素値があればステップS505に進む。
ステップS505では、制御部101は、参照位置を隣接する右側の画素に移動させ、ステップS502に戻る。
ステップS506では、制御部101は、全ての行の画素値を参照したかを判定し、まだ参照していない行があればステップS507に進み、全ての行を参照していればステップS508に進む。
ステップS507では、制御部101は、参照位置を隣接する下側の行の左端の画素に移動させ、ステップS502に戻る。
このように処理することで、制御部101は、追尾領域403の各行における画素値の最大値を、その行に対応する最大値格納領域424に格納する処理を、追尾領域403の全ての行について行う。
ステップS508では、制御部101は、最大値格納領域424に格納した画素値を用いてAF評価値を計算し、このフローチャートを終了する。AF評価値の求め方は、具体的には、最大値格納領域424に含まれる各行の最大値を全て加算し、その加算値が大きくなるほど、その値が大きくなるようにAF評価値を設定する。これは、ピントが合っているほど、その領域から得られる画素値は大きくなるためである。
ここで、AF評価値を決定する際には、追尾領域403、413に含まれる画素の行数が多いほど、加算によって最大値格納領域424、434に含まれるランダムノイズ成分を抑圧することができる。言い換えれば、追尾領域403、413に含まれる画素の行数が少ないほど、最大値格納領域424、434の値を加算したとしても、この加算結果のうちランダムノイズ成分が占める比率が高くなってしまい、それだけAF評価値の値の精度も低下してしまう。
そこで、制御部101は、追尾領域に含まれる画素の行数を確保するため、ズーム倍率に応じて、設定可能な追尾領域の最小サイズを変更するようにしている。具体的には、電子ズーム処理のズーム倍率が閾値よりも高い場合のときは、追尾領域413のサイズを小領域431に設定することを禁止し、中領域432および大領域433のいずれかのみ設定できるようにする。なお、図4および図5を用いて説明したAF評価値決定処理は一例であって、公知の他の方法によってAF評価値を求めるようにしても構わない。画素値を参照する画素の数が増えるほど、ランダムノイズを抑制できる方法であれば、他の方法でAF評価値を求める場合であっても、本実施形態と同様の効果を得ることが可能である。
図6は、表示部110に表示されている動画の1フレームの画像と、この1フレームの画像上における追尾領域のサイズを説明するための図である。図6(a)〜図6(c)において、601は表示部110に表示されている画像であり、611、612、613はこの画像601上で設定された追尾領域を示す。図6(d)において、602は、後述するようにユーザに指定された位置では追尾機能を実行するために必要な基準データを得ることができなかった場合に、表示部110に表示される画像である。
図7は、図2のステップS207の追尾領域サイズ設定処理を説明するためのフローチャートである。
ステップS701において、操作部材111を用いてユーザから指示された位置に追尾領域の中心位置を設定する。ユーザから追尾領域の位置を指示する操作がなされると、表示部110には動画に重畳して仮の追尾枠を表示し、ユーザが操作部材を操作することで、この追尾枠を移動させる。操作部材111には、例えば、ダイヤルや十字ボタンが含まれており、ユーザがこれらを操作することによって、追尾枠を画像上の任意の位置に移動させることができる。あるいは、操作部材111には表示部110と一体的に構成されたタッチパネルが含まれており、ユーザが表示部110の画面上の任意の位置に触れることで、その位置へ追尾枠を移動させるようにしてもよい。また、追尾枠の変わりに、十字のマークやカーソルを表示部110に表示させることで、ユーザに任意の位置を指定させるようにしてもよい。本実施形態では、制御部101は、ユーザが指定させた位置へ追尾枠を移動させ、この追尾枠の中心位置を追尾領域の中心位置として設定する。
本実施形態では、追尾領域は、予め定められた小サイズ、中サイズ、大サイズのいずれかのサイズの追尾領域が選択される。これら小サイズ、中サイズ、大サイズの追尾領域は、ズーム倍率がどのような値に設定されようとも、表示部110に表示された画像に対するサイズの比率が一定となるように設定されている。
ステップS702において、制御部101は、内部記憶部108に記憶されたズームポジションを読み出し、電子ズーム処理が行われているか否かを判定する。制御部101は、電子ズーム処理が行われている場合にはステップS703に進み、行われていない場合にはステップS705に進む。
ステップS703において、制御部101は、ズーム倍率が閾値以上であるか否かを判定し、閾値以上であればステップS704に進み、閾値未満であればステップS705に進む。
ステップS704では、制御部101は、追尾領域の初期サイズとして、中サイズの追尾領域を設定する。図6を用いて説明すると、ユーザにて指定された位置を中心に、図6(b)における中サイズの追尾領域612を設定することになる。
ステップS705では、制御部101は、追尾領域の初期サイズとして、小サイズの追尾領域を設定する。同様に図6を用いて説明すると、ユーザにて指定された位置を中心に、図6(a)における小サイズの追尾領域611を設定することになる。
このように、制御部101は、ズーム倍率が閾値未満であれば、光学ズーム処理が行われている場合でも、電子ズーム処理が行われている場合でも、ともに、小サイズの追尾領域611を設定する。この小サイズの追尾領域611の、表示部110に表示された画像601に対するサイズの比率は、ズーム倍率によらずに一定に設定されているため、電子ズーム処理におけるズーム倍率が高くなるほど、追尾領域611に含まれる画素数は減少する。そのため、ズーム倍率が閾値以上となると、追尾領域611に含まれる画素数が、ステップS208のAF評価値決定処理においてAF評価値の精度を確保するために必要な数に達しなくなる。そこで、制御部101は、ズーム倍率が閾値以上になった場合は、追尾領域の初期サイズとして、AF評価値の精度を確保するために必要な画素数を確保できる中サイズの追尾領域612を設定するようにしている。
ステップS706では、制御部101は、追尾領域内の画像データが所定の条件を満たしているか否かを判定する。具体的には、追尾領域内の画素から求めた最大輝度と最小輝度の差分を求め、この差分が基準値以上であればステップS707に進み、基準値未満であればステップS708に進む。
ステップS707では、制御部101は、追尾領域に含まれている画素値で構成された画像データを基準データとして内部記憶部108に記憶させる。そして、基準データを得ることができたのであれば、このフローチャートを終了し、図2のステップS208のAF評価値決定処理に進む。
ステップS706のような判定を行うのは、追尾領域内の画素から基準値以上の輝度差分が得られたのであれば、輝度値を用いたパターンマッチングを行ったとしても、別の被写体を誤抽出してしまう可能性が低いと考えられるためである。例えば、図6(a)、図6(b)に示す例では、小サイズの追尾領域611、中サイズの追尾領域612には車のフロントガラスしか含まれておらず、追尾領域内の輝度差分が基準値に達していない。この状態で輝度値を用いたパターンマッチングで追尾を行うと、フロントガラス内の輝度値が類似しているため、車の位置が止まっていたとしても、追尾領域がフロントガラスからはみ出さない範囲でふらついてしまい、安定しない。これに対し、図6(c)に示す例では、大サイズの追尾領域611には、フロントガラスだけでなく、フロントガラスと背景の境界部や、フロントガラスと車の屋根との境界部が含まれており、輝度差分が基準値よりも大きくなる。輝度値を用いたパターンマッチングで追尾を行ったとしても、これらの境界部が同じ位置関係で含まれる領域を抽出することになるため、車の位置がスライドしたとしても、それに応じて追尾領域を追従させることができる。
なお、ステップS706では、制御部101は、追尾領域内の画素から求めた最大輝度と最小輝度の差分を求めたが、これに限られるものではない。この所定の条件は、追尾の精度を確保するための条件であれば、どのようなものであっても構わない。例えば、背景技術で記載したように、追尾領域の画素値から輝度信号および色差信号のそれぞれの分散が基準値以上であれば、その時点の追尾領域の画素値を基準データとして記憶するようにしてもよい。これは追尾領域の画素値が類似している場合(分散が小さい場合)は、追尾領域には上述したフロントガラスのような一様な被写体しか含まれていない可能性が高いと考えられるためである。あるいは、輝度値を求めずに、彩度および色相の値のそれぞれの差分が基準値以上であったり、それぞれの分散が基準値以上であったりすれば、その時点の追尾領域の画素値を基準データとして記憶するようにしてもよい。
ステップS708では、制御部101は、追尾領域が最大のサイズ(大サイズ613)に設定されているか否かを判定する。追尾領域が最大のサイズに設定されていなければ、ステップS709に進む。すでに追尾領域が最大のサイズに設定されているのであれば、それ以上追尾領域を拡大することはできないので、ステップS710に進む。
ステップS709では、制御部101は、追尾領域のサイズを一段階だけ拡大する。設定されている追尾領域が小サイズであれば中サイズに、設定されている追尾領域が中サイズであれば、大サイズに設定し、ステップS706に戻る。
ステップS710では、制御部101は、追尾機能の精度を確保するために必要な基準データを取得することができなかったため、ユーザにその旨を通知するため、表示部110に図6(d)に例示した表示を行わせ、このフローチャートを終了する。
このように、本実施形態によれば、追尾領域に含まれる画素数を確保するため、ズーム倍率に応じて表示部110に表示される画像のサイズに対する追尾領域のサイズの比率の最小値を制限している。
なお、本実施形態では、電子ズーム処理が行われ、かつ、そのズーム倍率が閾値以上となった場合にのみ、小サイズの追尾領域を設定できない構成としたが、これに限られるものではない。追尾領域が設定可能なサイズの種類をさらに増やし、ズーム倍率にも複数の閾値を設定し、ズーム倍率が超えた閾値の数が増えるほど追尾領域の設定可能な最小サイズを大きくするように制限しても構わない。あるいは、ズーム倍率によって設定可能な追尾領域のサイズを連続的に変化させ、AF評価値の精度を確保するために必要とされる所定数の画素が含まれるように、そのズーム倍率に応じた追尾領域の最小サイズを演算で求めて設定するようにしてもよい。
また、追尾領域とAF評価値を求めるために画素値を読み出す領域を等しく設定したが、これに限られるものではない。追尾領域のサイズが大きくなるほど、AF評価値を求めるために画素値を読み出す領域のサイズが大きくなる関係であれば、これらは必ずしもサイズが一致する必要はない。ただし、その場合であっても、追尾領域の最小サイズは、その最小サイズに応じたAF評価値を求めるための領域に、AF評価値の精度を確保するために必要なだけの数の画素が含まれているように設定する必要がある。
また、光学ズーム処理を行うための撮影光学部材、あるいは、レンズアクチュエータを備えておらず、電子ズーム処理のみによってズームを行う撮像装置であっても、本発明を適用することは可能である。