(58)【調査した分野】(Int.Cl.,DB名)
前記変更部は、前記合焦判定部により最初に合焦状態であると判定された際の初期の焦点距離が、次回以降に合焦状態であると判定された際の現在の焦点距離よりも広角側の場合は、前記フォーカスエリアを拡大し、前記初期の焦点距離が、前記現在の焦点距離よりも望遠側の場合は、前記フォーカスエリアを縮小する
請求項3に記載の撮像装置。
前記生成部は、前記撮像レンズに対応する基準のトラッキングデータを前記生成したトラッキングデータに近似したデータと、前記生成したトラッキングデータとの誤差が所定の範囲外である場合、前記生成したトラッキングデータを破棄する
請求項1から請求項4の何れか1項に記載の撮像装置。
前記生成部は、前記記憶部に基準となる焦点距離が記憶されていない場合、前記基準となる焦点距離に対応するフォーカスレンズの位置を、前記基準となる焦点距離の所定の範囲内の複数の焦点距離及び前記複数の焦点距離に対応する複数のフォーカスレンズの位置を用いて補間することにより前記基準となる焦点距離に対応するフォーカスレンズの位置を導出することによって前記トラッキングデータを生成する
請求項1から請求項5の何れか1項に記載の撮像装置。
前記静止判定部は、前記複数の画像として、前記合焦判定部により最初に合焦状態であると判定された際に前記撮像部が前記被写体を撮像して得られた初期画像と、次回以降に合焦状態であると判定された際に前記撮像部が前記被写体を撮像して得られた現在画像とを用いて、前記被写体が静止しているか否かを判定する
請求項1から請求項7の何れか1項に記載の撮像装置。
前記静止判定部は、前記焦点距離に応じて、前記初期画像又は前記現在画像に対してトリミング及びリサイズを行って得られた画像を用いて、前記被写体が静止しているか否かを判定する
請求項8に記載の撮像装置。
前記静止判定部は、前記現在画像を撮像した際の焦点距離が前記初期画像を撮像した際の焦点距離よりも望遠側の場合は、前記初期画像に対してトリミング及びリサイズを行い、前記現在画像を撮像した際の焦点距離が前記初期画像を撮像した際の焦点距離よりも広角側の場合は、前記現在画像に対してトリミング及びリサイズを行う
請求項9に記載の撮像装置。
ズームレンズ及びフォーカスレンズを含む撮像光学系を有する撮像レンズと前記撮像レンズを通過した光学像を撮像する撮像部とを備えた撮像装置が実行する撮像方法であって、
自装置及び被写体の少なくとも一方が静止しているか否かを判定し、
前記被写体に合焦した合焦状態であるか否かを判定し、
合焦状態であると判定し、かつ自装置及び被写体の少なくとも一方が静止していると判定した場合に、焦点距離と前記フォーカスレンズの位置とを記憶部に記憶し、
前記記憶部に記憶した複数の焦点距離と前記フォーカスレンズの位置とを用いて、前記焦点距離の変化に応じて前記フォーカスレンズの位置を変化させるためのトラッキングデータを生成し、
生成したトラッキングデータを用いてズームトラッキング制御を行い、
前記被写体が静止しているか否かを判定する場合に、合焦状態であると判定した際に前記撮像部が前記被写体を撮像して得られた複数の画像を用いて、前記被写体が静止しているか否かを判定する
撮像方法。
ズームレンズ及びフォーカスレンズを含む撮像光学系を有する撮像レンズと前記撮像レンズを通過した光学像を撮像する撮像部とを備えた撮像装置を制御するコンピュータに、
自装置及び被写体の少なくとも一方が静止しているか否かを判定し、
前記被写体に合焦した合焦状態であるか否かを判定し、
合焦状態であると判定し、かつ自装置及び被写体の少なくとも一方が静止していると判定した場合に、焦点距離と前記フォーカスレンズの位置とを記憶部に記憶し、
前記記憶部に記憶した複数の焦点距離と前記フォーカスレンズの位置とを用いて、前記焦点距離の変化に応じて前記フォーカスレンズの位置を変化させるためのトラッキングデータを生成し、
生成したトラッキングデータを用いてズームトラッキング制御を行い、
前記被写体が静止しているか否かを判定する場合に、合焦状態であると判定した際に前記撮像部が前記被写体を撮像して得られた複数の画像を用いて、前記被写体が静止しているか否かを判定する
処理を実行させるためのプログラム。
【発明を実施するための形態】
【0024】
以下、図面を参照して、本開示の技術を実施するための形態例を詳細に説明する。
【0025】
[第1実施形態]
まず、
図1及び
図2を参照して、本実施形態に係る撮像装置10の構成を説明する。
図1に示すように、撮像装置10は、レンズ交換式のデジタルカメラであり、撮像装置本体12及び撮像レンズ14を含む。撮像レンズ14は、撮像装置本体12に対して交換可能に装着される。
【0026】
本実施形態に係る撮像装置10は、撮像系の動作モードとして、静止画撮像モードと動画撮像モードとを有する。静止画撮像モードは、被写体が撮像されて得られた静止画像を記録する動作モードであり、動画撮像モードは、被写体が撮像されて得られた動画像を記録する動作モードである。
【0027】
撮像装置10では、ユーザから撮像装置10に対して与えられた指示に応じて、静止画撮像モードと動画撮像モードとが選択的に設定される。また、静止画撮像モードでは、ユーザから撮像装置10に対して与えられた指示に応じて、マニュアルフォーカスモードとオートフォーカスモードとが選択的に設定される。なお、以下では、オートフォーカスを「AF(AutoFocus)」と表記する。
【0028】
AFモードでは、撮像装置本体12に設けられたレリーズボタン(図示省略)を半押し状態にすることにより撮像条件の調整が行われ、その後、引き続き全押し状態にすると本露光が行われる。つまり、レリーズボタンを半押し状態にすることによりAE(AutoExposure:自動露出)機能が働いて露出状態が設定された後、AF機能が働いて合焦制御が行われ、レリーズボタンを全押し状態にすると撮像が行われる。
【0029】
撮像装置本体12はマウント13を備えており、撮像レンズ14は、マウント15を備えている。撮像レンズ14は、マウント13にマウント15が結合されることにより撮像装置本体12に交換可能に装着される。撮像レンズ14は、レンズユニット18、絞り19、及び制御装置20を含む。絞り19は、レンズユニット18よりも撮像装置本体12側に設けられており、レンズユニット18を透過した被写体光の光量を調節し、被写体光を撮像装置本体12内に導く。制御装置20は、マウント13、15を介して撮像装置本体12に電気的に接続されており、撮像装置本体12からの指示に従って撮像レンズ14の全体を制御する。
【0030】
撮像装置本体12は、撮像素子22、第1ミラー24、第2ミラー26、本体側主制御部28、ミラー駆動部30、撮像素子ドライバ32、画像信号処理回路34、画像メモリ36、画像処理部38、表示制御部40、及びディスプレイ42を含む。また、撮像装置本体12は、受付I/F(InterFace)44、受付デバイス46、メディアI/F48、メモリカード50、外部I/F52、ファインダ54、及びジャイロセンサ58を更に含む。撮像素子22が、撮像レンズ14を通過した光学像を撮像する撮像部の一例である。
【0031】
本体側主制御部28は、撮像装置10を制御するコンピュータの一例であり、CPU(Central Processing Unit)60、一次記憶部62、及び二次記憶部64を備えている。CPU60は、撮像装置10の全体を制御する。一次記憶部62は、各種プログラムの実行時のワークエリア等として用いられる揮発性のメモリである。一次記憶部62の一例としては、RAM(Random Access Memory)が挙げられる。二次記憶部64は、各種プログラム及び各種パラメータ等を予め記憶した不揮発性のメモリである。二次記憶部64の一例としては、フラッシュメモリが挙げられる。
【0032】
CPU60、一次記憶部62、及び二次記憶部64は、バスライン56に接続されている。また、ミラー駆動部30、撮像素子ドライバ32、画像信号処理回路34、画像メモリ36、画像処理部38、表示制御部40、受付I/F44、メディアI/F48、外部I/F52、及びジャイロセンサ58も、バスライン56に接続されている。
【0033】
第1ミラー24は、撮像素子22の受光面22Aとレンズユニット18との間に介在しており、受光面被覆位置αと受光面開放位置βとに移動可能な可動ミラーである。第1ミラー24は、ミラー駆動部30に接続されており、ミラー駆動部30は、CPU60の制御下で、第1ミラー24を駆動させ、第1ミラー24を受光面被覆位置αと受光面開放位置βとに選択的に配置する。すなわち、第1ミラー24は、受光面22Aに対して被写体光を受光させない場合にミラー駆動部30によって受光面被覆位置αに配置され、受光面22Aに対して被写体光を受光させる場合にミラー駆動部30によって受光面開放位置βに配置される。
【0034】
受光面被覆位置αでは、第1ミラー24が受光面22Aを覆い、かつ、レンズユニット18から導かれた被写体光を反射して第2ミラー26に導く。第2ミラー26は、第1ミラー24から導かれた被写体光を反射することで光学系(図示省略)を介して、ファインダ54に導く。ファインダ54は、第2ミラー26によって導かれた被写体光を透過させる。受光面開放位置βでは、第1ミラー24によって受光面22Aが覆われた状態が解除され、被写体光が第1ミラー24で反射されることなく、受光面22Aによって受光される。
【0035】
撮像素子ドライバ32は、撮像素子22に接続されており、CPU60の制御下で、撮像素子22に駆動パルスを供給する。撮像素子22の各画素は、撮像素子ドライバ32によって供給された駆動パルスに従って駆動する。なお、本実施形態では、撮像素子22として、CCD(Charge Coupled Device)イメージセンサを用いているが、本開示の技術はこれに限定されるものではなく、例えば、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の他のイメージセンサを用いてもよい。
【0036】
画像信号処理回路34は、CPU60の制御下で、撮像素子22から1フレーム分の画像信号を画素毎に読み出す。画像信号処理回路34は、読み出した画像信号に対して、相関二重サンプリング処理、自動利得調整、及びA/D変換等の各種処理を行う。画像信号処理回路34は、画像信号に対して各種処理を行うことでデジタル化した画像信号を、CPU60から供給されるクロック信号で規定される所定のフレームレート(例えば、数十フレーム/秒)で1フレーム毎に画像メモリ36に出力する。画像メモリ36は、画像信号処理回路34から入力された画像信号を一時的に保持する。
【0037】
画像処理部38は、画像メモリ36から所定のフレームレートで1フレーム毎に画像信号を取得し、取得した画像信号に対して、ガンマ補正と、輝度及び色差変換と、圧縮処理等の各種処理を行う。また、画像処理部38は、各種処理を行って得た画像信号を所定のフレームレートで1フレーム毎に表示制御部40に出力する。更に、画像処理部38は、各種処理を行って得た画像信号を、CPU60の要求に応じて、CPU60に出力する。
【0038】
表示制御部40は、ディスプレイ42に接続されており、CPU60の制御下で、ディスプレイ42を制御する。また、表示制御部40は、画像処理部38から入力された画像信号を1フレーム毎に所定のフレームレートでディスプレイ42に出力する。ディスプレイ42は、表示制御部40から所定のフレームレートで入力された画像信号により示される画像をライブビュー画像として表示する。また、ディスプレイ42は、単一フレームで撮像されて得られた単一フレーム画像である静止画像も表示する。なお、ディスプレイ42には、ライブビュー画像の他に、メニュー画面等も表示される。
【0039】
受付デバイス46は、不図示のダイヤル、レリーズボタン、十字キー、MENUキー、及びタッチパネル等を有しており、ユーザからの各種指示を受け付ける。受付デバイス46は、受付I/F44に接続されており、受け付けた指示の内容を示す指示内容信号を受付I/F44に出力する。受付I/F44は、受付デバイス46から入力された指示内容信号をCPU60に出力する。CPU60は、受付I/F44から入力された指示内容信号に応じた処理を実行する。
【0040】
メディアI/F48は、メモリカード50に接続されており、CPU60の制御下で、メモリカード50に対する画像ファイルの記録及び読み出しを行う。メディアI/F48によってメモリカード50から読み出された画像ファイルは、CPU60の制御下で、画像処理部38によって伸長処理が施されてディスプレイ42に再生画像として表示される。
【0041】
外部I/F52は、マウント13にマウント15が接続されることで、撮像レンズ14の制御装置20と接続され、CPU60と制御装置20との間の各種情報の送受信を司る。
【0042】
ジャイロセンサ58は、撮像装置10の振動を検出するためのセンサの一例であり、撮像装置10の振動に応じた信号を出力する。CPU60は、ジャイロセンサ58からの出力信号を積分することによって、撮像装置10の振れ角を導出する。
【0043】
一例として
図2に示すように、本実施形態に係るレンズユニット18は、入射レンズ70、ズームレンズ72、及びフォーカスレンズ74を含む。入射レンズ70、ズームレンズ72、及びフォーカスレンズ74は、光軸L1に沿って設けられており、絞り19側から光軸L1に沿ってフォーカスレンズ74、ズームレンズ72、及び入射レンズ70の順に配置されている。
【0044】
被写体光は、入射レンズ70に入射される。入射レンズ70は、被写体光を透過させ、ズームレンズ72に導く。本実施形態に係るズームレンズ72は、光軸L1に沿って移動可能な複数のレンズを含み、ズームレンズ72の状態を調節することによって撮像レンズ14の焦点距離(以下、単に「焦点距離」という)を調節する。具体的には、ズームレンズ72は、撮像レンズ14に設けられたズームリング(図示省略)が回転されることにより各レンズが光軸L1に沿って近づいたり、遠ざかったりすることによってレンズ間の光軸L1に沿った位置関係が調節され、焦点距離が調節される。ズームレンズ72は、入射レンズ70から入射された被写体光を透過させ、フォーカスレンズ74に導く。
【0045】
フォーカスレンズ74は、光軸L1に沿って移動可能なレンズであり、光軸L1に沿って移動することで撮像素子22の受光面22Aに形成される被写体像のピントを変化させる。なお、以下では、単にフォーカスレンズ74の位置と記載した場合は、光軸L1に沿ったフォーカスレンズ74の位置を表すものとする。フォーカスレンズ74は、ズームレンズ72から入射された被写体光を透過させ、絞り19に導く。絞り19は、フォーカスレンズ74から入射された被写体光の光量を調整し、かつ被写体光を透過させて撮像装置本体12に導く。
【0046】
撮像レンズ14の制御装置20は、レンズ側主制御部76、焦点距離センサ78、フォーカスレンズ駆動部80、レンズ位置センサ82、絞り駆動部84、及び外部I/F86を含む。
【0047】
レンズ側主制御部76は、CPU88、一次記憶部90、及び二次記憶部92を備えている。CPU88は、撮像レンズ14の全体を制御する。一次記憶部90は、各種プログラムの実行時のワークエリア等として用いられる揮発性のメモリである。一次記憶部90の一例としては、RAMが挙げられる。二次記憶部92は、各種プログラム及び各種パラメータ等を予め記憶した不揮発性のメモリである。二次記憶部92の一例としては、フラッシュメモリが挙げられる。
【0048】
CPU88、一次記憶部90、及び二次記憶部92は、バスライン94に接続されている。また、焦点距離センサ78、フォーカスレンズ駆動部80、レンズ位置センサ82、絞り駆動部84、及び外部I/F86も、バスライン94に接続されている。
【0049】
外部I/F86は、マウント15にマウント13が接続されることで、撮像装置本体12の外部I/F52と接続され、外部I/F52と協働して、CPU88と撮像装置本体12のCPU60との間の各種情報の送受信を司る。
【0050】
焦点距離センサ78は、ズームリングの回転状態から、ズームレンズ72の状態を検出し、検出したズームレンズ72の状態を焦点距離に換算する。そして、焦点距離センサ78は、換算して得られた焦点距離を示す焦点距離情報をCPU88に出力する。
【0051】
フォーカスレンズ駆動部80は、フォーカスレンズ駆動用モータ(図示省略)を含む。フォーカスレンズ駆動部80は、受付デバイス46によって受け付けられた指示に応じて、CPU88の制御下で、フォーカスレンズ駆動用モータを作動させることで、フォーカスレンズ74を光軸L1に沿って移動させる。すなわち、フォーカスレンズ駆動部80は、CPU88からの指示に従って、フォーカスレンズ駆動用モータを作動させ、フォーカスレンズ駆動用モータの動力をフォーカスレンズ74に伝達することにより、フォーカスレンズ74を光軸L1に沿って移動させる。レンズ位置センサ82は、例えば、エンコーダを含み、フォーカスレンズ74の位置を検出し、検出した位置を示すレンズ位置情報をCPU88に出力する。
【0052】
絞り駆動部84は、絞り駆動用モータ(図示省略)を含む。絞り駆動部84は、受付デバイス46によって受け付けられた指示に応じて、CPU88の制御下で、絞り駆動用モータを作動させることで、絞り19の開口の大きさを調節する。
【0053】
また、本実施形態に係る撮像装置10は、所謂コントラストAF方式でオートフォーカスを行う。具体的には、本実施形態に係る撮像装置10は、一例として
図3に示すように、フォーカスレンズ74を光軸L1に沿って後側(受光面側)から前側(被写体側)に移動させながら、撮影画角内のエリアにおけるオートフォーカスの評価値(以下、「AF評価値」という)を導出する。なお、以下では、一例として
図4に示すように、このAF評価値の導出に用いる撮影画角内のエリアを「オートフォーカスエリア(AFエリア)」という。AFエリアの撮影画角内における位置は、例えば、ユーザによりディスプレイ42に表示されたライブビュー画像(所謂スルー画像)に対して指定されたり、撮影画角内の被写体を追尾したりすることによって決定される。また、本実施形態では、AFエリアのサイズ(縦横の長さ)は、デフォルト値が設定されている。
【0054】
そして、撮像装置10は、導出したAF評価値がピーク値となる位置にフォーカスレンズ74を移動させることによって、合焦制御を行う。なお、本実施形態では、AF評価値として、AFエリアのコントラスト値を適用している。また、以下では、フォーカスレンズ74の位置を変更しながらAF評価値を導出する際の連続する位置間の距離(
図3に示すD1)を「距離D1」という。なお、この距離D1は、各連続する位置間で同じ距離でもよいし、異なる距離であってもよい。
【0055】
一例として
図5に示すように、レンズ側主制御部76の二次記憶部92は、基準トラッキングデータ96を記憶している。基準トラッキングデータ96は、撮像レンズ14に対応する基準のトラッキングデータである。
【0056】
一例として
図6に示すように、基準トラッキングデータ96は、所定の撮影距離における焦点距離とフォーカスレンズ74の位置との対応関係を示すデータを含む。なお、ここでいう撮影距離とは、受光面22Aから被写体までの距離を表す。
【0057】
一方、一例として
図7に示すように、本体側主制御部28の二次記憶部64は、撮像プログラム98を記憶している。CPU60は、二次記憶部64から撮像プログラム98を読み出して一次記憶部62に展開し、展開した撮像プログラム98に従って後述するトラッキングデータ生成処理(
図8参照)、及びズームトラッキング制御処理(
図15参照)を実行する。換言すると、CPU60は、撮像プログラム98を実行することで静止判定部、合焦判定部、記憶制御部、生成部、及びズームトラッキング制御部として動作する。
【0058】
次に、
図8〜
図15を参照して、本実施形態に係る撮像装置10の作用を説明する。なお、
図8に示すトラッキングデータ生成処理は、例えば、撮像装置10の電源スイッチがオン状態とされた場合に実行される。
【0059】
図8のステップS10で、CPU60は、被写体に合焦した合焦状態(以下、単に「合焦状態」という)であるか否かを判定する。例えば、ユーザが、撮像装置10を用いた撮影を行うにあたり、撮像装置本体12に設けられたレリーズボタンを半押し状態にした場合、AF機能が働いて合焦状態となる。このように、合焦状態となると、ステップS10の判定が肯定判定となり、処理はステップS12に移行する。ステップS10の判定が否定判定となった場合は、ステップS10が再度実行される。
【0060】
ステップS12で、CPU60は、初期処理として、配列の添字に用いる変数iに0を格納する。また、CPU60は、初期処理として、フォーカスレンズ74の位置を記憶するための配列TRACK_F[]の記憶領域を一次記憶部62上に確保する。また、CPU60は、初期処理として、焦点距離を記憶するための配列TRACK_Z[]の記憶領域を一次記憶部62上に確保する。これらの配列の記憶領域が、焦点距離とフォーカスレンズ74の位置とを記憶する記憶部の一例である。なお、CPU60は、配列TRACK_F[]及び配列TRACK_Z[]の少なくとも一方の記憶領域を二次記憶部64上に確保してもよい。また、本明細書では、配列全体を表す場合は、配列TRACK_F[](配列TRACK_Z[])と表記し、配列の個々の要素を表す場合は、TRACK_F[i](TRACK_Z[i])と表記する。
【0061】
ステップS14で、CPU60は、外部I/F52を介して焦点距離を取得する。具体的には、CPU60は、CPU88に対し、焦点距離を取得する指示を出力する。CPU88は、CPU60から焦点距離を取得する指示が入力されると、焦点距離センサ78により検出された焦点距離を取得する。CPU88は、取得した焦点距離をCPU60に出力する。そして、CPU60は、CPU88から入力された焦点距離を取得し、取得した焦点距離をTRACK_Z[i]に格納することによって記憶する制御を行う。
【0062】
また、CPU60は、外部I/F52を介してフォーカスレンズ74の位置を取得する。具体的には、CPU60は、CPU88に対し、フォーカスレンズ74の位置を取得する指示を出力する。CPU88は、CPU60からフォーカスレンズ74の位置を取得する指示が入力されると、レンズ位置センサ82により検出されたフォーカスレンズ74の位置を取得する。CPU88は、取得したフォーカスレンズ74の位置をCPU60に出力する。そして、CPU60は、CPU88から入力されたフォーカスレンズ74の位置を取得し、取得したフォーカスレンズ74の位置をTRACK_F[i]に格納することによって記憶する制御を行う。
【0063】
また、CPU60は、焦点距離をTRACK_Z[i]に格納し、かつフォーカスレンズ74の位置をTRACK_F[i]に格納した後、変数iに1を加算する。
【0064】
ステップS16で、CPU60は、撮像素子22により撮像され、画像信号処理回路34による各種処理を経た画像を示す画像データを取得する。なお、以下では、本ステップS16で取得された画像データを「初期画像データ」といい、初期画像データが示す画像を「初期画像」という。すなわち、ステップS14の処理により取得された焦点距離が、初期画像を撮像した際の焦点距離の一例である。以下では、ステップS14の処理により取得された焦点距離を「初期の焦点距離」という。
【0065】
ステップS18で、CPU60は、ステップS10と同様に、被写体に合焦した合焦状態であるか否かを判定する。この判定が否定判定となった場合は、ステップS18が再度実行され、肯定判定となった場合は、処理はステップS20に移行する。ステップS10及びステップS18の処理により、CPU60は、合焦判定部として動作する。
【0066】
ステップS20で、CPU60は、撮像装置10が静止しているか否かを判定することによって撮像装置10の静止判定を行う。具体的には、CPU60は、ジャイロセンサ58からの出力信号を積分することによって撮像装置10の振れ角を導出する。そして、CPU60は、導出した振れ角が、所定期間の間、所定の範囲内であるか否かを判定することによって、撮像装置10が静止しているか否かを判定する。
【0067】
一例として
図9に示すように、撮像装置10が三脚に固定されて静止している場合、及び撮像装置10がユーザにより手で持たれて静止している場合よりも、撮像装置10を手に持っているユーザがパンニング動作を行っている場合の方が、振れ角の変動量が大きくなる。そこで、本実施形態では、撮像装置10が三脚に固定された静止している場合、及び撮像装置10がユーザにより手で持たれて静止している場合の振れ角に所定のマージンを加味した2つの閾値TH1、TH2(TH1<TH2)を予め定めておく。そして、CPU60は、導出した振れ角が、所定期間の間、閾値TH1以上閾値TH2以下の範囲内であるか否かを判定することによって、撮像装置10が静止しているか否かを判定する。
【0068】
ステップS20の処理が終了すると、ステップS22で
図10に示す被写体静止判定処理が実行される。ステップS20及びステップS22の処理により、CPU60は、静止判定部として動作する。
【0069】
図10のステップS50で、CPU60は、ステップS14と同様に、外部I/F52を介して焦点距離を取得する。ステップS52で、CPU60は、撮像素子22により撮像され、画像信号処理回路34による各種処理を経た画像を示す画像データを取得する。なお、以下では、本ステップS52で取得された画像データを「現在画像データ」といい、現在画像データが示す画像を「現在画像」という。すなわち、ステップS50の処理により取得された焦点距離が、現在画像を撮像した際の焦点距離の一例である。以下では、ステップS50の処理により取得された焦点距離を「現在の焦点距離」という。
【0070】
ステップS54で、CPU60は、ステップS50の処理により取得された現在の焦点距離が、ステップS14の処理により取得された初期の焦点距離よりも望遠側であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS58に移行し、肯定判定となった場合は、処理はステップS56に移行する。
【0071】
ステップS56で、CPU60は、一例として
図11に示すように、初期画像に対し、現在画像に対応する領域をトリミングする画像処理を行う。更に、CPU60は、初期画像に対してトリミングを行って得られた画像の画素数が現在画像の画素数に一致するように、初期画像に対してトリミングを行って得られた画像をリサイズ(拡大)する画像処理を行う。なお、CPU60は、現在画像の画像数が初期画像に対してトリミングを行って得られた画像の画素数に一致するように、現在画像をリサイズ(縮小)する画像処理を行ってもよい。
【0072】
一方、ステップS58で、CPU60は、ステップS50の処理により取得された現在の焦点距離が、ステップS14の処理により取得された初期の焦点距離よりも広角側であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS62に移行し、肯定判定となった場合は、処理はステップS60に移行する。
【0073】
ステップS60で、CPU60は、一例として
図12に示すように、現在画像に対し、初期画像に対応する領域をトリミングする画像処理を行う。更に、CPU60は、現在画像に対してトリミングを行って得られた画像の画素数が初期画像の画素数に一致するように、現在画像に対してトリミングを行って得られた画像をリサイズ(拡大)する画像処理を行う。なお、CPU60は、初期画像の画像数が現在画像に対してトリミングを行って得られた画像の画素数に一致するように、初期画像をリサイズ(縮小)する画像処理を行ってもよい。
【0074】
ステップS62で、CPU60は、以上の処理を経た初期画像と現在画像との類似度を導出する。この類似度を導出する手法としては、例えば、画素値の平均値を用いる手法、画素値のヒストグラムを用いる手法、及びディープラーニング技術を用いる手法等が挙げられる。
【0075】
なお、ステップS54の判定が肯定判定となった場合は、本ステップS62における初期画像は、ステップS56の処理により初期画像に対してトリミング及びリサイズを行って得られた画像である。また、この場合、本ステップS62における現在画像は、ステップS52の処理により取得された現在画像データが示す現在画像である。
【0076】
一方、ステップS54の判定が否定判定となり、ステップS58の判定が肯定判定となった場合は、本ステップS62における初期画像は、ステップS16の処理により取得された初期画像データが示す初期画像である。また、この場合、本ステップS62における現在画像は、ステップS60の処理により現在画像に対してトリミング及びリサイズを行って得られた画像である。
【0077】
また、ステップS54及びステップS58の双方が否定判定となった場合は、本ステップS62における初期画像は、ステップS16の処理により取得された初期画像データが示す初期画像である。また、この場合、本ステップS62における現在画像は、ステップS52の処理により取得された現在画像データが示す現在画像である。
【0078】
ステップS64で、CPU60は、ステップS62の処理により導出された類似度が所定値以上であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS68に移行し、肯定判定となった場合は、処理はステップS66に移行する。
【0079】
ステップS66で、CPU60は、被写体が静止していると判定する。一方、ステップS68で、CPU60は、被写体が静止していない、すなわち、動いていると判定する。ステップS66又はステップS68の処理が終了すると、被写体静止判定処理が終了する。被写体静止判定処理が終了すると、処理はトラッキングデータ生成処理のステップS24に移行する。このように、本実施形態では、焦点距離に応じて、初期画像又は現在画像に対してトリミング及びリサイズを行って得られた画像を用いて、被写体が静止しているか否かを判定しているため、被写体が静止しているか否かを精度良く判定することができる。
【0080】
ステップS24で、CPU60は、ステップS20の処理により撮像装置10が静止していると判定され、かつステップS22の処理により被写体が静止していると判定されたか否かを判定する。この判定が否定判定となった場合、すなわち、撮像装置10及び被写体の少なくとも一方が動いていると判定された場合は、処理はステップS30に移行し、肯定判定となった場合は、処理はステップS26に移行する。
【0081】
ステップS26で、CPU60は、ステップS14と同様に、外部I/F52を介して焦点距離を取得する。そして、CPU60は、取得した焦点距離をTRACK_Z[i]に格納することによって記憶する制御を行う。また、CPU60は、ステップS14と同様に、外部I/F52を介してフォーカスレンズ74の位置を取得する。そして、CPU60は、取得したフォーカスレンズ74の位置をTRACK_F[i]に格納することによって記憶する制御を行う。ステップS26の処理により、CPU60は、記憶制御部として動作する。ステップS28で、CPU60は、変数iに1を加算する。ステップS28の処理が終了すると、処理はステップS18に戻る。
【0082】
すなわち、ユーザが、撮像装置10を用いて被写体を撮影する際に、撮像装置本体12に設けられたレリーズボタンを半押し状態にするたびに、AF機能が働くことによる合焦状態での焦点距離及びフォーカスレンズ74の位置が取得される。そして、取得された焦点距離及びフォーカスレンズ74の位置がTRACK_Z[i]及びTRACK_F[i]に格納される。
【0083】
一方、ステップS30で、CPU60は、記憶した焦点距離及びフォーカスレンズ74の位置の組み合わせの数をカウントするための変数TRACK_COUNTに、変数iの値を格納する。ステップS32で、CPU60は、変数TRACK_COUNTの値が所定値以上であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS46に移行し、肯定判定となった場合は、処理はステップS34に移行する。
【0084】
ステップS34で、CPU60は、配列TRACK_Z[]及び配列TRACK_F[]に格納された複数の焦点距離及びフォーカスレンズ74の位置を用いて、焦点距離の変化に応じてフォーカスレンズ74の位置を変化させるためのトラッキングデータを生成する。具体的には、一例として
図13に示すように、配列TRACK_Z[]に基準となる焦点距離と同じ焦点距離が格納されている場合、CPU60は、その焦点距離と、その焦点距離に対応するフォーカスレンズ74の位置とをトラッキングデータに含める。
図13の例では、これらの焦点距離及びフォーカスレンズ74の位置が、破線上に位置する黒丸で示されている。
【0085】
一方、配列TRACK_Z[]に格納されていない基準となる焦点距離については、CPU60は、その焦点距離の所定の範囲内の複数の焦点距離と、その焦点距離に対応する複数のフォーカスレンズ74の位置とを用いて補間する。この補間により、CPU60は、基準となる焦点距離に対応するフォーカスレンズ74の位置を導出し、基準となる焦点距離と、導出したフォーカスレンズ74の位置とをトラッキングデータに含める。
図13の例では、これらの焦点距離及びフォーカスレンズ74の位置が、破線上に位置する白丸で示されている。なお、配列TRACK_Z[]に同じ焦点距離が複数格納されている場合は、それぞれの焦点距離に対応するフォーカスレンズ74の位置の平均値を、その焦点距離に対応するフォーカスレンズ74の位置としてもよい。ステップS34の処理により、CPU60は、生成部として動作する。
【0086】
ステップS36で、CPU60は、二次記憶部92から基準トラッキングデータ96を取得する。具体的には、CPU60は、CPU88に対し、基準トラッキングデータ96を取得する指示を出力する。CPU88は、CPU60から基準トラッキングデータ96を取得する指示が入力されると、二次記憶部92から基準トラッキングデータ96を読み出す。CPU88は、読み出した基準トラッキングデータ96をCPU60に出力する。そして、CPU60は、CPU88から入力された基準トラッキングデータ96を取得する。
【0087】
ステップS38で、CPU60は、一例として
図14に示すように、ステップS36の処理により取得された基準トラッキングデータ96を、ステップS34の処理により生成されたトラッキングデータに近似したデータ(以下、「近似トラッキングデータ」という)を導出する。なお、
図14の例では、近似トラッキングデータを一点鎖線で示し、ステップS34の処理により生成されたトラッキングデータを白丸で示している。また、
図14の例では、基準トラッキングデータ96を実線で示している。ここで、近似トラッキングデータを導出する処理の具体的な一例を説明する。
【0088】
ここでは、基準トラッキングデータ96をF
org(z)と表し、ステップS34の処理により生成されたトラッキングデータをF
act(z)と表し、近似トラッキングデータをF
cor(z)と表す。なお、zは、基準となる焦点距離各々に対応する0以上zp
max以下の整数である。また、z=0は、WIDE端を表し、zp
maxは、TELE端を表す。本実施形態では、CPU60は、F
org(z)をF
act(z)の近傍に1次関数(例えば、アフィン写像)により変換することによって近似トラッキングデータを生成する。すなわち、近似トラッキングデータは、以下の(1)式で表すことができる。
F
cor(z)=A×F
org(z)+B(A、Bは実数)・・・(1)
【0089】
より具体的には、CPU60は、以下の(2)式により表される0からzp
maxまでの各zについてのF
act(z)とF
org(z)との差の二乗の総和が最小となるように(1)式におけるAとBとを導出する。そして、CPU60は、導出したAとBとを用いて、(1)式に従って、近似トラッキングデータを導出する。
【0091】
ステップS40で、CPU60は、ステップS34の処理により生成されたトラッキングデータと、ステップS38の処理により導出された近似トラッキングデータとの誤差を導出する。本実施形態では、CPU60は、上記誤差の一例として、以下の(3)式に従って、決定係数R2を導出する。この決定係数R2は、上記誤差が小さくなるほど1に近付く値である。なお、(3)式におけるFact
AVGは、ステップS34の処理により生成されたトラッキングデータに含まれるフォーカスレンズ74の位置の平均値である。
【0093】
ステップS42で、CPU60は、ステップS40の処理により導出された誤差が所定の範囲内(例えば、0.9以上1.0以下の範囲内)であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS46に移行し、肯定判定となった場合は、処理はステップS44に移行する。
【0094】
ステップS44で、CPU60は、ステップS34の処理により生成されたトラッキングデータを、二次記憶部64に記憶する。なお、CPU60は、ステップS34の処理により生成されたトラッキングデータを、二次記憶部92に記憶してもよいし、二次記憶部64及び二次記憶部92の双方に記憶してもよい。ステップS44の処理が終了すると、処理はステップS10に戻る。一方、ステップS46で、CPU60は、トラッキングデータを破棄する。例えば、CPU60は、一次記憶部62上に確保された配列TRACK_F[]の記憶領域及び配列TRACK_Z[]の記憶領域を解放することによってトラッキングデータを破棄する。ステップS46の処理が終了すると、処理はステップS10に戻る。
【0095】
図8を参照して説明したように、開示の技術における最初に合焦状態であると判定された際というのは、撮像装置10の電源スイッチがオン状態とされてから最初にステップS10の処理により合焦状態であると判定された際を意味する。更に、開示の技術における最初に合焦状態であると判定された際というのは、ステップS24の処理により撮像装置10及び被写体が静止していないと判定された後に、最初にステップS10の処理により合焦状態であると判定された際も意味する。
【0096】
また、開示の技術における次回以降に合焦状態であると判定された際というのは、ステップS10の処理により最初に合焦状態であると判定された後に、ステップS24の処理により撮像装置10及び被写体が静止していないと判定されるまでの間に、ステップS18の処理により合焦状態であると判定された際を意味する。
【0097】
次に、
図15を参照して、上記トラッキングデータ生成処理のステップS44の処理により二次記憶部64に記憶されたトラッキングデータを用いたズームトラッキング制御処理について説明する。なお、
図15に示すズームトラッキング制御処理は、例えば、撮像装置10の電源スイッチがオン状態とされた場合に実行される。
【0098】
図15のステップS70で、CPU60は、上記トラッキングデータ生成処理のステップS14と同様に、外部I/F52を介して焦点距離を取得する。ステップS72で、CPU60は、今回(直前)のステップS70の処理により取得された焦点距離が前回のステップS70の処理により取得された焦点距離から変化しているか否かを判定する。この判定が否定判定となった場合は、処理はステップS70に戻り、肯定判定となった場合は、処理はステップS74に移行する。なお、ステップS72で、CPU60は、今回のステップS70の処理により取得された焦点距離が前回のステップS70の処理により取得された焦点距離から変化している場合でも、その変化量が許容誤差の範囲内の場合は、焦点距離が変化していないと判定してもよい。
【0099】
ステップS74で、CPU60は、二次記憶部64に記憶されたトラッキングデータを取得する。ステップS76で、CPU60は、ステップS74の処理により取得されたトラッキングデータを用いて、直前のステップS70の処理により取得された焦点距離に対応するフォーカスレンズ74の位置を導出する。
【0100】
ステップS78で、CPU60は、ステップS76の処理により導出された位置にフォーカスレンズ74を移動させる指示をCPU88に出力する。CPU88は、CPU60からフォーカスレンズ74を移動させる指示が入力されると、フォーカスレンズ駆動部80を制御し、CPU60から入力された位置にフォーカスレンズ74を移動させる。ステップS78の処理が終了すると、処理はステップS70に戻る。ステップS76及びステップS78の処理により、CPU60は、ズームトラッキング制御部として動作する。
【0101】
以上説明したように、本実施形態によれば、撮像装置10及び被写体が静止していると判定した場合に記憶された複数の焦点距離とフォーカスレンズ74の位置とを用いてトラッキングデータを生成している。従って、トラッキングデータを精度良く生成することができる。
【0102】
[第2実施形態]
開示の技術の第2実施形態を説明する。なお、本実施形態に係る撮像装置10の構成は、第1実施形態と同様(
図1及び
図2参照)であるため、説明を省略する。また、本実施形態に係るトラッキングデータ生成処理(
図8参照)、被写体静止判定処理(
図10参照)、及びズームトラッキング制御処理(
図15参照)も第1実施形態と同様であるため、説明を省略する。
【0103】
ところで、焦点距離が変化すると、AFエリア内に位置する被写体がAFエリア外に外れてしまう場合、及びAFエリア外に位置する被写体がAFエリア内に入ってくる場合がある。これらの場合、AF機能による合焦の精度が低下することにより、AF機能により被写体に合焦した状態で撮像して得られた現在画像及び初期画像を用いた被写体の静止判定処理の精度が低下してしまう場合がある。そこで、本実施形態では、焦点距離に応じてAFエリアのサイズを変化させる。
【0104】
本実施形態に係るCPU60は、二次記憶部64から撮像プログラム98を読み出して一次記憶部62に展開し、展開した撮像プログラム98に従ってエリア変更処理(
図16参照)を更に実行する。換言すると、CPU60は、撮像プログラム98を実行することで更に変更部として動作する。
【0105】
次に、
図16を参照して、本実施形態に係る撮像装置10の作用を説明する。なお、
図16に示すエリア変更処理は、例えば、撮像装置10の電源スイッチがオン状態とされた場合に実行される。
【0106】
図16のステップS80で、CPU60は、上記トラッキングデータ生成処理のステップS18からステップS28までの何れかの処理が実行中であるか否かを判定する。この判定が肯定判定となった場合は、処理はステップS82に移行し、否定判定となった場合は、ステップS80が再度実行される。ステップS82で、CPU60は、上記トラッキングデータ生成処理のステップS14と同様に、外部I/F52を介して焦点距離を取得する。以下では、ステップS82の処理により取得された焦点距離を「現在の焦点距離」という。
【0107】
ステップS84で、CPU60は、上記トラッキングデータ生成処理のステップS14の処理により取得された初期の焦点距離が、ステップS82の処理により取得された現在の焦点距離よりも広角側であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS88に移行し、肯定判定となった場合は、処理はステップS86に移行する。
【0108】
ステップS86で、CPU60は、初期の焦点距離に対する現在の焦点距離の変化量に応じて、AFエリアを拡大する。ステップS86の処理が終了すると、処理はステップS80に戻る。
【0109】
一方、ステップS88で、CPU60は、上記トラッキングデータ生成処理のステップS14の処理により取得された初期の焦点距離が、ステップS82の処理により取得された現在の焦点距離よりも望遠側であるか否かを判定する。この判定が否定判定となった場合は、処理はステップS80に戻り、肯定判定となった場合は、処理はステップS90に移行する。
【0110】
ステップS90で、CPU60は、初期の焦点距離に対する現在の焦点距離の変化量に応じて、AFエリアを縮小する。ステップS90の処理が終了すると、処理はステップS80に戻る。ステップS86及びステップS90の処理により、CPU60は、変更部として動作する。
【0111】
以上説明したように、本実施形態によれば、焦点距離に応じてAFエリアのサイズを変更しているため、同一の被写体がAFエリア内に位置する可能性が高くなる。この結果、AF機能による合焦の精度の低下が抑制されるため、AF機能により被写体に合焦した状態で撮像して得られた現在画像及び初期画像を用いた被写体の静止判定処理の精度の低下を抑制することができる。更に、被写体の静止判定処理の精度の低下が抑制されるため、被写体が静止していると判定された場合に得られた焦点距離及びフォーカスレンズ74の位置を用いて生成されるトラッキングデータの精度の低下も抑制することができる。
【0112】
なお、上記各実施形態では、撮像装置10及び被写体の双方が静止していると判定した場合に、焦点距離及びフォーカスレンズ74の位置を記憶する場合について説明したが、これに限定されない。例えば、撮像装置10及び被写体の何れか一方が静止していると判定した場合に、焦点距離及びフォーカスレンズ74の位置を記憶する形態としてもよい。
【0113】
また、上記各実施形態では、撮像装置10の振れ角が、所定期間の間、所定の範囲内であるか否かを判定することによって、撮像装置10が静止しているか否かを判定する場合について説明したが、これに限定されない。例えば、最初に合焦状態であると判定された際のジャイロセンサ58からの出力と、次回以降に合焦状態であると判定された際のジャイロセンサ58からの出力とを用いて、撮像装置10が静止しているか否かを判定する形態としてもよい。
【0114】
この場合、上記トラッキングデータ生成処理のステップS14又はステップS16で、CPU60は、ジャイロセンサ58からの出力信号を積分することによって撮像装置10の初期の振れ角を導出する。更に、上記トラッキングデータ生成処理のステップS20で、CPU60は、ジャイロセンサ58からの出力信号を積分することによって撮像装置10の現在の振れ角を導出する。そして、CPU60は、導出した初期の振れ角と、現在の振れ角との差が所定の範囲内であるか否かを判定することによって、撮像装置10が静止しているか否かを判定する形態が例示される。
【0115】
また、上記各実施形態では、撮像装置10の振動を検出するためのセンサとして、ジャイロセンサを適用した場合について説明したが、これに限定されない。例えば、撮像装置10の振動を検出するためのセンサとして、加速度センサを適用する形態としてもよい。
【0116】
また、上記各実施形態において、撮像装置10が静止している状態で、予めジャイロセンサ58の出力信号を表す情報を二次記憶部64に記憶する形態としてよい。この場合、上記トラッキングデータ生成処理のステップS20で、CPU60は、ジャイロセンサ58からの出力信号から、二次記憶部64に記憶された情報が示すジャイロセンサ58の出力信号を減算する。そして、CPU60は、減算して得られた信号を積分することによって撮像装置10の振れ角を導出する形態が例示される。なお、この形態例において、撮像装置10が静止し、かつズームレンズ72の状態が変化している(すなわち、焦点距離が変化している)状態で、予めジャイロセンサ58の出力信号を表す情報を二次記憶部64に記憶する形態としてよい。
【0117】
また、上記各実施形態でCPUがソフトウェア(プログラム)を実行することにより実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、上記各種処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0118】
また、上記各実施形態では、撮像プログラム98が二次記憶部64に予め記憶(インストール)されている態様を説明したが、これに限定されない。撮像プログラム98は、CD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、撮像プログラム98は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0119】
2018年3月23日に出願された日本国特許出願2018−057221号の開示は、その全体が参照により本明細書に取り込まれる。また、本明細書に記載された全ての文献、特許出願、および技術規格は、個々の文献、特許出願、および技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。