(57)【特許請求の範囲】
【請求項１】
被写体を撮像し、フレーム画像を得る撮像部と、
上記フレーム画像の内、追尾対象とする領域を設定する追尾領域設定部と、
上記撮像された複数フレームの少なくとも追尾対象領域画像とその周辺画像を記憶する画像記憶部と、
上記設定された領域のフレーム間の動きを評価する評価画像を取得する評価画像取得部と、
上記評価画像と、上記画像記憶部に記憶された複数フレームの画像のうちの１フレームから被写体の動きを検出する第１の動き検出部と、
上記評価画像と、上記画像記憶部に記憶された画像のうち上記第１の動き検出部で検出するフレームより相対的に時間間隔の広いフレームから被写体の動きを検出する第２の動き検出部と、
上記第１の動き検出部で所定値よりも小さい動きを検出した場合は、上記第２の動き検出結果を動き量として判定し、かつ、上記第１の動き検出部で動きなしと検出し、上記第２の動き検出部で所定値よりも大きい動きを検出した場合は、動き量ゼロと判定する動き判定部と、
を有することを特徴とする追尾装置。
【請求項２】
上記画像記憶部は、撮像部で撮像したフレーム画像から間引かれた少なくとも追尾対象領域画像とその周辺画像を記憶することを特徴とする請求項１に記載の追尾装置。
【請求項３】
上記動き判定部は、上記第１の動き検出部で動き量を検出した場合は、上記第１の動き検出結果を動き量として判定することを特徴とする請求項１に記載の追尾装置。
【請求項４】
上記第２の動き検出部は、上記第１の動き検出部による第１の動き検出時のフレーム間隔よりも少なくとも３フレーム離れたフレーム間の動きを検出することを特徴とする請求項１に記載の追尾装置。
【請求項５】
上記第２の動き検出部は、少なくとも上記第１の動き検出部の出力結果、または上記第２の動き検出部による第２の動き検出結果に基づいて、フレーム間隔を決定することを特徴とする請求項１に記載の追尾装置。
【請求項６】
上記第２の動き検出部は、上記撮像部のフレームレートに基づいてフレーム間隔を決定することを特徴とする請求項１に記載の追尾装置。
【請求項７】
上記動き判定結果に基づいた位置を追尾検出領域として表示する表示部を有することを特徴とする請求項１乃至６のいずれか１項に記載の追尾装置。
【請求項８】
被写体を撮像し、フレーム画像を得る撮像部と、
上記フレーム画像の内、追尾対象として設定された領域の画像を参照画像とし、この参照画像を記憶する参照画像記憶部と、
現フレーム画像を評価画像として記憶する評価画像記憶部と、
上記評価画像と隣接フレームの関係にある参照画像とに基づいて上記被写体の第１の動きを検出し、上記評価画像と離散フレームの関係にある参照画像とに基づいて上記被写体の第２の動きを検出する動き検出部と、
上記第１の動きが動きなしと検出し、上記第２の動きが動きありを検出した場合は、上記第２の動きの検出結果を動き量として判定上記第１の動き検出部で動きなしと検出し、上記第２の動き検出部で所定値よりも大きい動きを検出した場合は、動き量ゼロと判定する動き判定部と、
上記動き判定結果に基づいて追尾対象とする領域、および追尾指標を移動させて表示する表示制御部と、
を有することを特徴とする追尾装置。
【請求項９】
被写体を撮像し、フレーム画像を取得するたびに、追尾対象として設定された領域の画像を参照画像として記憶し、
現フレーム画像を評価画像として記憶し、
上記評価画像と、隣接フレームの参照画像に基づいて第１の動きを算出し、
上記評価画像と、離散フレームの参照画像に基づいて第２の動きを算出し、
上記第１の動きが動きなしと検出し、上記第２の動きが動きありと検出した場合は、上記第２の動きの検出結果を動き量として判定し、上記第１の動き検出部で動きなしと検出し、上記第２の動き検出部で所定値よりも大きい動きを検出した場合は、動き量ゼロと判定し、
上記判定結果に基づいて、上記追尾対象の追尾を行う、
ことを特徴とする追尾方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体画像中で指定した追尾対象を追跡可能な追尾装置および追尾方法に関する。
【背景技術】
【０００２】
移動する被写体にピントや露出を合わせるために追尾装置を搭載した撮影装置が知られている（特許文献１、２参照）。追尾装置としては、被写体の色情報や輝度パターン等の特徴を追尾する技術が知られている。輝度パターンを用いて追尾する追尾装置では、１つの画像内に設定された領域を参照画像とし、この参照画像の画像データと、前述の１つの画像と時系列的に続く評価画像の画像データと相関演算をブロックマッチングにより行い、参照画像と最も整合する画像の位置を検出し、この位置から被写体の動きベクトルを求めている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許２６０５００４号公報
【特許文献２】特開平９−６５１９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
被写体を追尾するために、従来のブロックマッチングでは、隣接するフレーム画像の間で、１画素ずつ画素をずらしながら、参照画像と評価画像の差分の累積値を算出し、動きベクトルを求めている。このため、分解能（ここでは１画素）以下の速度で被写体が移動している場合には、得られる動きベクトルは０と判定され、追尾被写体を表示する表示枠は移動せず、また被写体を追尾することができない。
【０００５】
分解能以下の速度の被写体を追尾する方法として、ブロックマッチングに入力する画像を補間により拡大し、動きベクトルの分解能を高くする方法がある。しかし、この場合には、処理する画像のサイズが大きくなり、回路規模が増大する問題がある。
【０００６】
本発明は、このような事情を鑑みてなされたものであり、回路規模を大きくすることなく、動きベクトル検出の分解能以下の速度で被写体が移動している場合であっても被写体を追尾することが可能な追尾装置および追尾方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため第１の発明に係わる追尾装置は、被写体を撮像し、フレーム画像を得る撮像部と、上記フレーム画像の内、追尾対象とする領域を設定する追尾領域設定部と、上記撮像された複数フレームの少なくとも追尾対象領域画像とその周辺画像を記憶する画像記憶部と、上記設定された領域のフレーム間の動きを評価する評価画像を取得する評価画像取得部と、上記評価画像と、上記画像記憶部に記憶された複数フレームの画像のうちの１フレームから被写体の動きを検出する第１の動き検出部と、上記評価画像と、上記画像記憶部に記憶された画像のうち上記第１の動き検出部で検出するフレームより相対的に時間間隔の広いフレームから被写体の動きを検出する第２の動き検出部と、上記第１の動き検出部で所定値よりも小さい動きを検出した場合は、上記第２の動き検出結果を動き量として判定し、かつ、上記第１の動き検出部で動きなしと検出し、上記第２の動き検出部で所定値よりも大きい動きを検出した場合は、動き量ゼロと判定する動き判定部と、を有する。
【０００８】
第２の発明に係わる追尾装置は、上記第１の発明において、上記画像記憶部は、撮像部で撮像したフレーム画像から間引かれた少なくとも追尾対象領域画像とその周辺画像を記憶する。
【０００９】
第３の発明に係わる追尾装置は、上記第１の発明において、上記動き判定部は、上記第１の動き検出部で動き量を検出した場合は、上記第１の動き検出結果を動き量として判定する。
第４の発明に係わる追尾装置は、上記第１の発明において、上記第２の動き検出部は、上記第１の動き検出部による第１の動き検出時のフレーム間隔よりも少なくとも３フレーム離れたフレーム間の動きを検出する。
【００１０】
第５の発明に係わる追尾装置は、上記第１の発明において、上記第２の動き検出部は、少なくとも上記第１の動き検出部の出力結果、または上記第２の動き検出部による第２の動き検出結果に基づいて、フレーム間隔を決定する。
第６の発明に係わる追尾装置は、上記第１の発明において、上記第２の動き検出部は、上記撮像部のフレームレートに基づいてフレーム間隔を決定する。
第７の発明に係わる追尾装置は、上記第１ないし第６の発明において、上記動き判定結果に基づいた位置を追尾検出領域として表示する表示部を有する。
【００１１】
第８の発明に係わる追尾装置は、被写体を撮像し、フレーム画像を得る撮像部と、上記フレーム画像の内、追尾対象として設定された領域の画像を参照画像とし、この参照画像を記憶する参照画像記憶部と、現フレーム画像を評価画像として記憶する評価画像記憶部と、上記評価画像と隣接フレームの関係にある参照画像とに基づいて上記被写体の第１の動きを検出し、上記評価画像と離散フレームの関係にある参照画像とに基づいて上記被写体の第２の動きを検出する動き検出部と、上記第１の動きが動きなしと検出し、上記第２の動きが動きありを検出した場合は、上記第２の動きの検出結果を動き量として判定上記第１の動き検出部で動きなしと検出し、上記第２の動き検出部で所定値よりも大きい動きを検出した場合は、動き量ゼロと判定する動き判定部と、上記動き判定結果に基づいて追尾対象とする領域、および追尾指標を移動させて表示する表示制御部と、を有する。
【００１２】
第９の発明に係わる追尾方法は、被写体を撮像し、フレーム画像を取得するたびに、追尾対象として設定された領域の画像を参照画像として記憶し、現フレーム画像を評価画像として記憶し、上記評価画像と、隣接フレームの参照画像に基づいて第１の動きを算出し、上記評価画像と、離散フレームの参照画像に基づいて第２の動きを算出し、上記第１の動きが動きなしと検出し、上記第２の動きが動きありと検出した場合は、上記第２の動きの検出結果を動き量として判定し、上記第１の動き検出部で動きなしと検出し、上記第２の動き検出部で所定値よりも大きい動きを検出した場合は、動き量ゼロと判定し、上記判定結果に基づいて、上記追尾対象の追尾を行う。
【発明の効果】
【００１３】
本発明によれば、回路規模を大きくすることなく、動きベクトル検出の分解能以下の速度で被写体が移動している場合であっても被写体を追尾することが可能な追尾装置および追尾方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係わるカメラの主として電気回路の構成を示すブロック図である。
【図２】本発明の一実施形態に係わるカメラの動き検出部の内部構成を示すブロック図である。
【図３】本発明の一実施形態に係わるカメラにおける動作を示すフローチャートである。
【図４】本発明の一実施形態に係わるカメラにおける動作を示すタイミングチャートである。
【図５】本発明の一実施形態に係わるカメラにおいて、ブロックマッチングの概念を説明する図である。
【図６】本発明の一実施形態に係わるカメラにおいて、動きベクトルの分解能以下で移動する被写体の場合の追尾ターゲットの移動の様子を示す図である。
【図７】本発明の一実施形態に係わるカメラにおいて、動きベクトルの変化の様子を示す図であり、（ａ）は移動速度が速い場合を示し、（ｂ）は移動速度が遅い場合を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面に従って本発明を適用したカメラを用いて好ましい実施形態について説明する。本発明の好ましい一実施形態に係わるカメラは、デジタルカメラであり、概略、撮像部を有し、この撮像部によって被写体像を画像データに変換し、この変換された画像データに基づいて、被写体像を表示部にライブビュー表示する。撮影時には、撮影者はライブビュー表示を観察し、構図やシャッタチャンスを決定する。ライブビュー表示の際に、撮影者が被写体を指定すると、指定された被写体を追跡し、この被写体に対してピント合わせを行うと共に適正露出となるように露出制御を行う。レリーズがなされると、撮影を行う。再生モードを選択すると、記録媒体に記録した撮影画像を表示部に再生表示することができる。
【００１６】
図１は、本実施形態に係わるカメラ１の主として電気的構成を示すブロック図である。撮像光学系１１の光軸上に、撮像素子１３が配置されている。撮像素子１３の出力はＡＦＥ（Analogue Front End）１５に接続され、ＡＦＥ１５の出力は動き検出部１７およびバス３３に接続されている。バス３３には、前述の動き検出部１７の他に、画像処理部１９、ＲＡＭ（Random Access Memory）２１、ＲＯＭ（Read Only Memory）２３、システムコントローラ２５、記録部２７、表示部２９、操作部３１が接続されている。
【００１７】
撮像光学系１１は、被写体光束を撮像素子１３に集光させ、被写体像を結像させるための光学系である。撮像部としての機能を有する撮像素子１３は、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等のイメージセンサであり、撮像光学系１１により結像された被写体像を各画素で光電変換し、フレーム画像（画像信号）を取得し、ＡＦＥ１５に出力する。
【００１８】
ＡＦＥ１５は、撮像素子１３から出力されるフレーム画像をデジタル化したフレーム画像（画像データ）に変換する等の処理を行う。このＡＦＥ１５によって処理された画像データは、動き検出部１７およびバス３３に出力され、バス３３に出力された画像データはＲＡＭ２１に一時記憶される。
【００１９】
動き検出部１７は、参照画像とは異なる時点で取得した評価画像と相関演算を行い、相関値を検出し、また、動きベクトルを検出する。この動き検出部１７の詳細な構成については、図２を用いて後述する。
【００２０】
画像処理部１９は、ＲＡＭ２１に一時記憶された画像データを読み出し、この画像データに対して、ホワイトバランス補正処理、同時化処理、色変換処理等の画像処理を行う。また、画像処理部１９は、後述する記録部２７に画像データを記録する際に画像圧縮を行い、また記録部２７から読み出した画像データの伸張を行う。
【００２１】
ＲＡＭ２１は、ＤＲＡＭやＳＤＲＡＭ等の揮発性メモリで構成され、一時記憶用に用いられ、バス３３を介して、ＡＦＥ１５から出力された画像データの一時記憶や、各種情報の一時記憶の際に用いられる。前述の動き検出部１７によって演算された相関値もＲＡＭ２１に一時記憶される。ＲＯＭ２３は、フラッシュＲＯＭ等の不揮発性メモリで構成され、カメラ１の全体を制御するためのプログラムや、各種調整値が記憶される。
【００２２】
記録部２７は、レリーズ時に取得された画像データを記録する記録媒体や、この記録媒体への記録制御部等を有する。記録媒体は、コンパクトフラッシュ（登録商標）、ＳＤカード等、外部からカメラ１に装填可能である。
【００２３】
表示部２９は、カメラ１の背面等に配置され、ＬＣＤモニタや有機ＥＬモニタ等を含み、撮像素子１３からの画像データに基づくライブビュー表示や、記録部２７から読み出した画像データに基づく再生表示等を行う。また、表示部２９には、動き検出部１７等によって検出された追尾被写体の動き量に基づいて追尾指標（ターゲットマーク）の表示を行う。
【００２４】
操作部３１は、電源釦、レリーズ釦、メニュー釦等、各種入力キー等の操作部材である。ユーザが操作部３１のいずれかの操作部材を操作すると、システムコントローラ２５は、ユーザの操作に応じた各種シーケンスを実行する。
【００２５】
システムコントローラ２５は、ＣＰＵ（Central Processing Unit）等の中央処理装置を含み、ＲＯＭ２３に記憶されたプログラムに従って、カメラ１の全体制御を行う。すなわち、撮像光学系１１、撮像素子１３、ＡＦＥ１５、動き検出部１７、画像処理部１９、記録部２７、表示部２９等の各部を制御し、またＲＡＭ２１やＲＯＭ２３のメモリ制御等を行う。
【００２６】
システムコントローラ２５は、追尾領域設定部としての機能を果たす。この追尾領域設定部は、レリーズ釦の半押し等により、撮像フレーム画像内に追尾対象とする領域を設定する。また、システムコントローラ２５は、動き判定部として機能し、動き検出部１７において、隣接フレーム間で動きがないことを検出し、また数フレーム離れた離散フレーム間で動きを検出した場合には、この離散フレーム間での動き量を、追尾被写体の動きとする。
【００２７】
次に、動き検出部１７の詳細な構成について図２を用いて説明する。ＡＦＥ１５の出力は、動き検出部１７内のバッファメモリ４１、第１の動き検出用メモリ４３、および第２の動き検出用メモリ４５にそれぞれ接続されている。評価画像取得部（または評価画像記憶部）として機能するバッファメモリ４１は、現フレームの画像（評価画像とも称する）の画像データを一時記憶するためのメモリである。厳密は、バッファメモリ４１に一時記憶される画像データは現フレームの直前のフレームであるが、本明細書においては、便宜上、現フレームと称する。
【００２８】
画像記憶部（または参照画像記憶部）として機能する第１の動き検出用メモリ４３は、現フレームの１フレーム前の画像（参照画像とも称する）の画像データを一時記憶するためのメモリであり、また、画像記憶部として機能する第２の動き検出用メモリ４５は、現フレームのｎフレーム前の画像（参照画像とも称する）の画像データを一時記憶するためのメモリである。
【００２９】
なお、図２には、１フレーム前とｎフレーム前の画像データを一時記憶するためのメモリのみを記載してあるが、実際には、１フレーム前とｎフレーム前の間の画像データを一時記憶するためのメモリも用意されており、画像データの更新の際には、画像データのシフトを行う。また、第１の動き検出用メモリ４３および第２の動き検出用メモリ４５は、撮像素子１３によって撮像したフレーム画像から少なくとも追尾被写体の領域の画像とその周辺画像を記憶するが、記憶にあたって画像データを間引いてから記憶するようにしてもよい。
【００３０】
バッファメモリ４１の出力、第１の動き検出用メモリ４３の出力、および第２の動き検出用メモリ４５の出力は動きベクトル検出部４７に接続されている。動きベクトル検出部４７は、２つの画像データを用い、これらの画像の間で相関演算を行い、第１の相関値および第２の相関値を算出する。動きベクトル検出部４７の出力は、バス３１を介してＲＡＭ２１に接続されている。
【００３１】
すなわち、動きベクトル検出部４７は、バッファメモリ４１に記憶された評価画像の画像データと第１の動き検出用メモリ４３に記憶された参照画像の画像データを用いて、動きベクトル検出部４７は第１の相関値を演算し、この第１の相関演算値はＲＡＭ２１に一時記憶する。また、バッファメモリ４１に記憶された評価画像の画像データと第２の動き検出用メモリ４５に記憶された参照画像の画像データを用いて、動きベクトル検出部４７は第２の相関値を演算し、この第２の相関演算値はＲＡＭ２１に一時記憶する。
【００３２】
また、動きベクトル検出部４７は、第１の動き検出部および第２の動き検出部として機能し、動き量（第１のベクトルＡおよび第２のベクトルＢ）を算出する。第１のベクトルＡは、動きベクトル検出部４７によって第１の相関値が一番高くなった際における評価画像と参照画像の相対的な位置の差を、ｘ座標およびｙ座標の差分、すなわち、（ｘ１、ｙ１）で表わす。したがって、第１の動き検出部として機能する動きベクトル検出部４７は、評価画像と第１の動き検出用メモリ４３に記憶された画像、すなわち隣接フレーム間における追尾被写体の動きを検出する。
【００３３】
同様に第２のベクトルＢは、動きベクトル検出部４７によって第２の相関値が一番高くなった際における評価画像と参照画像の相対的な位置の差を、ｘ座標およびｙ座標の差分、すなわち、（ｘ２、ｙ２）で表わす。したがって、第２の動き検出部として機能する動きベクトル検出部４７は、評価画像と第２の動き検出用メモリ４５に記憶された画像、すなわち離散フレーム間における追尾被写体の動きを検出する。第１及び第２のベクトルは、ＲＡＭ２１に出力され、ログデータとして一時記憶される。
【００３４】
次に、本実施形態における追尾動作の概要について、図５を用いて説明する。本実施形態における追尾動作は、追尾対象決定時の追尾対象を示す参照画像と相関値の高い部分を、次のフレームの画像の中から検出することによって行う。この相関値の高い部分の検出は、いわゆるブロックマッチングによって行う。
【００３５】
図５（ａ）は、現フレームより１フレーム前の画像（Ｎ−１フレーム）であり、撮影者が追尾の対象として「Ａ」の文字の部分を指定したときの様子を示す。撮影者が「Ａ」を指定することにより、「Ａ」を含む領域が参照画像４００として選択される。参照画像４００は、横６画素、縦６画素分のサイズであり、画素（ａ１，ｂ１）〜画素（ａ６，ｂ６）の３６画素から構成される。
【００３６】
図５（ｂ）は現フレームの画像（Ｎフレーム）であり、撮影者が「Ａ」の文字を指定したときより、１フレーム後の画像である。この画像の中から、「Ａ」を含むと予測される範囲を評価画像４０２とする。評価画像４０２は、横１８画素、縦１２画素分のサイズであり、画素（ｘ１，ｙ１）〜画素（ｘ１８，ｙ１２）の２１６画素から構成される。
【００３７】
ブロックマッチングによる相関値の演算では、画素（ａ１，ｂ１）〜画素（ａ６，ｂ６）の参照画像４００を、評価画像４０２の内の画素（ｘ１，ｙ１）〜画素（ｘ６，ｙ６）に重ね、対応する画素同士の差分の累積値を求める。次に、評価画像４０２の内でｘ方向に１画素分ずらして同様に対応する画素同士の差分の累積値を求める。評価画像４０２内で参照画像４００の位置をずらしながら、累積値を求め、この中で累積値が最も低い値となるところが最もマッチングが高い。このときの累積値が最も高くなるように変換した値が相関値である。最も相関値が高くなる位置を追尾位置とする。そして、この相関値の最も高かった位置に対応する６×６の画像を参照画像４００として更新する。
【００３８】
このようにブロックマッチングによる相関値の演算では、参照画像４００を評価画像４０２上で移動させながら相関値を求め、相関値が最も高くなる評価画像４０２上の位置を追尾位置とする。また相関値が最も高くなる参照画像を新たな参照画像４００として更新を行う。また、相関値が最も高くなるときの参照画像４００に対応する評価画像４０２上の位置までの移動量が動きベクトル（第１のベクトルまたは第２のベクトル）となる。
【００３９】
図６は、分解能以下の低速で移動する被写体を追尾する場合を示し、（ａ）は従来の分解能以下の低速の場合には追尾できない様子を、（ｂ）は本実施形態における分解能以下の低速であっても追尾できる様子を示す。また、図７は本実施形態の場合であって、図７（ａ）は移動速度が高い場合、図７（ｂ）は移動速度が低い場合において、それぞれの場合の総動きベクトルと実際の移動量の関係を示す図である。
【００４０】
従来の追尾装置においては、現フレーム（Ｎフレームにおいて）追尾被写体（図６の例では亀）３０２を指定すると、指定領域の参照画像が設定され、またターゲットマーク３００が表示される（図６（ａ）参照）。現フレームの次のフレーム（Ｎ＋１フレーム）では、追尾被写体３０２は低速で移動するが、その移動量は分解能以下（すなわち、１画素以下）であることから、動きベクトルは０であり、ターゲットマーク３００は移動しない（図６（ｂ）参照）。
【００４１】
同様に、Ｎ＋２フレーム、Ｎ＋３フレームにおいて、追尾被写体３０２は低速で移動するが、その移動量は分解能以下（すなわち、１画素以下）であることから、動きベクトルは０であり、ターゲットマーク３００は移動しない（図６（ｃ）（ｄ）参照）。
【００４２】
これに対して、本実施形態においては、追尾被写体が低速の場合には、３フレーム前の参照画像と評価画像から第２の相関値を求め、このとき最大となる相関値から第２のベクトルを算出し、この第２のベクトルから移動量を求め、ターゲットマーク３００の表示を行う。
【００４３】
現フレーム（Ｎフレームにおいて）追尾被写体３０２を指定すると、指定領域の参照画像が設定され、またターゲットマーク３００が表示される（図６（ｅ）参照）。現フレームの次のフレーム（Ｎ＋１フレーム）では、追尾被写体３０２は低速で移動する。このときの移動量に基づく動きベクトルは、第１のベクトルでは分解能以下であるが、第２のベクトルが分解能以上あれば、算出することができ、その位置は仮想ターゲットマーク３０１の位置である。ただし、この仮想ターゲットマーク３０１は表示されない。このときの累積の移動量は分解能以下（すなわち、１画素以下）であることから、ターゲットマーク３００は移動しない（図６（ｆ）参照）。
【００４４】
同様に、現フレームより２フレーム後のフレーム（Ｎ＋２フレーム）では、追尾被写体３０２の位置は仮想ターゲットマーク３０１であるが、累積の移動量は分解能以下であることから、ターゲットマーク３００は移動しない（図６（ｇ）参照）。しかし、現フレームより３フレーム後のフレーム（Ｎ＋３フレーム）となると、追尾被写体３０２の累積の移動量は分解能以上となることから、ターゲットマーク３００は移動する（図６（ｈ）参照）。
【００４５】
次に、本実施形態における追尾被写体の実際の動きと動きベクトルの変化について、図７を用いて説明する。図７（ａ）は追尾被写体の移動速度が速い場合（分解能以上）を、また図７（ｂ）は追尾被写体の移動速度が遅い場合（分解能以下）を示す。
【００４６】
図７（ａ）に示す例では、追尾被写体は時刻Ａ２〜Ａ７の間、等速（速度＝１）で移動している。この場合、第１のベクトルＡは、現フレームと１フレーム前の画像を比較していることから移動距離は１となり、第２のベクトルＢは、現フレームと３フレーム前の画像を比較していることから移動距離は３となる。また、移動開始からの総動きベクトル（総移動量）は、各時刻にたいして１を加算した値となり、実際の移動量と一致する。
【００４７】
図７（ｂ）に示す例では、追尾被写体は時刻Ａ２〜Ａ７の間、等速（速度＝１／３）で移動している。この場合、第１のベクトルＡは、現フレームと１フレーム前の画像を比較していることから実際の移動距離は１／３となるが、分解能以下であることから第１のベクトルＡとしての移動距離は０となる。また、第２のベクトルＢは、現フレームと３フレーム前の画像を比較していることから移動距離は１となり、この値は分解能以上である。
【００４８】
図７（ｂ）の例においては、時刻Ａ２からＡ７の間の実際の移動量は１／３ずつ増加するが、総動きベクトル（総移動量）は、分解能を超えるたびに１ずつ増加し、時刻Ａ４（Ｂ４）において１となり、時刻Ａ７（Ｂ７）において２となる。
【００４９】
このように、本実施形態においては、追尾被写体の移動速度が、分解能以下の低速である場合には、第２のベクトルを用いて、移動量を求め、その移動量が分解能を超えると、ターゲット位置を移動させるようにしている。
【００５０】
次に、本実施形態における動作を図３に示すフローチャートを用いて説明する。このフローチャートは、ＲＯＭ２３に記憶されているプログラムに従って、システムコントローラ２５によって実行される。カメラ１の電源釦が操作されると、スタートする。まず、ライブビュー動作を開始する（Ｓ１１）。このステップでは、撮像素子１３からの画像データに基づいて、表示部２９にライブビュー表示を開始する。
【００５１】
ライブビュー動作を開始すると、次に、ターゲットロックオンを行う（Ｓ１３）。撮影者が被写体追尾を行う場合には、メニュー画面等において被写体追尾モード等を予め設定しておき、その上で、追尾したい被写体を画面の中央におき、レリーズ釦を半押しすることにより、ターゲットロックオンする。ターゲットロックオンすると指定された領域の画像データを参照画像の画像データとする。なお、表示部２９にタッチパネルを配置した場合には、追尾した被写体をタッチすることによりターゲットロックオンするようにしてもよい。ターゲットロックオンすると、動き検出部１７は動作を開始し、追尾したい被写体の動きを追跡する。
【００５２】
続いて、被写体が検出されたか否かを判定する（Ｓ１５）。ここでは、動き検出部１７によって追尾対象となる被写体を検出できたか否かを判定する。この判定の結果、追尾対象となる被写体を検出できなかった場合には、ステップＳ１３に戻り、検出されるのを待つ。
【００５３】
ステップＳ１５における判定の結果、被写体が検出されると、次に、第１及び第２の参照画像の領域を設定する（Ｓ１７）。ここでは、ターゲットロックオンされた追尾被写体の領域を第１及び第２の参照画像として設定する。ここで設定した参照画像は、第１の動き検出用メモリ４３および第２の動き検出メモリ４５の両方に一時記憶する。
【００５４】
第１及び第２の参照画像を設定すると、次に、追尾被写体位置を示すターゲットマークの表示を行う（Ｓ１９）。ここでは、ステップＳ１３においてターゲットロックオンされた被写体の位置を示すターゲットマークを表示部２９上にライブビュー表示に重畳表示し、撮影者が追尾対象を視認できるようにする。
【００５５】
ターゲットマークを表示すると、次に、評価画像が取得されたか否かを判定する（Ｓ２１）。ここでは、ターゲットロックオンされた際のフレームの次のフレームの画像データを取得したか否かを判定する。なお、本実施形態においては、撮像素子１３は、１／１５秒、１／３０秒、１／６０秒、または１／１２０秒程度のフレームレートで画像を取得する。後述するステップＳ５７からステップＳ２１に進んだ際には、次フレームの画像データを取得したか否かを判定する。評価画像としては、１フレームの全画像または参照画像を含むと推定される範囲内の画像とする。
【００５６】
ステップＳ２１における判定の結果、評価画像を取得した場合には、次に、評価画像の領域を記憶する（Ｓ２３）。ここでは、取得した評価画像の画像データをバッファメモリ４１に一時記憶する。
【００５７】
評価画像の記憶を行うと、次に、第１の参照画像と評価画像に基づき第１のベクトルＡ（ｘ１、ｙ１）を算出する（Ｓ２５）。ここでは、第１の動き検出用メモリ４３に記憶された第１の参照画像の画像データと、バッファメモリ４１に記憶された評価画像の画像データを用いて、動きベクトル検出部が第１のベクトルＡ（ｘ１、ｙ１）を算出する。
【００５８】
第１のベクトルＡを算出すると、次に、第１のベクトルＡを記憶する（Ｓ２７）。前述したように、第１のベクトルＡは、ＲＡＭ２１に一時記憶される。
【００５９】
第１のベクトルＡを記憶すると、次に、追尾開始後Ｎフレームが経過したか否かを判定する（Ｓ２９）。追尾開始後、撮像素子１３からフレーム画像が出力されるたびにカウントしておき、このステップでは、カウントしたフレーム数がＮフレームを超えたか否かによって判定する。なお、図６および図７で説明した例では、Ｎは３である。
【００６０】
ステップＳ２９における判定の結果、追尾開始後Ｎフレーム経過していなかった場合には、フレーム移動量に第１のベクトルＡ（ｘ１、ｙ１）を採用する（Ｓ３１）。ここでは、ステップＳ２５において、算出した第１のベクトルＡを採用する。
【００６１】
ステップＳ２９における判定の結果、追尾開始後Ｎフレームが経過すると、次に、第２の参照画像と評価画像に基づき第２のベクトルＢ（ｘ２、ｙ２）を算出する（Ｓ３３）。第２の動き検出用メモリ４５に一時記憶した第２の参照画像の画像データと、ステップＳ２３において取得し、バッファメモリ４１に一時記憶した評価画像の画像データを用いて、動きベクトル検出部４７が第２のベクトルＢを算出する。第２の参照画像の画像データを用いて動きベクトルを算出することにより、評価画像の動きを検出し易くすることができる。
【００６２】
第２のベクトルＢを算出すると、次に、過去Ｎフレームの間、全て第１のベクトルＡがｘ＝０であるか否かを判定する（Ｓ３５）。ここでは、ＲＡＭ２１に記憶されている第１のベクトルＡのログデータに基づいて判定する。なお、図６および図７を用いて説明したように、第１のベクトルＡの動き量が分解能以下である場合には、ｘ＝０となる。
【００６３】
ステップＳ３５における判定の結果、過去Ｎフレームの間、第１のベクトルＡの全てのｘ１が０でなかった場合には、フレームの移動量に第１のベクトルＡのｘ１を採用する（Ｓ３７）。第１のベクトルＡの移動量が分解能よりも大きかったことから、この値をフレームの移動量とする。
【００６４】
一方、ステップＳ３５における判定の結果、過去Ｎフレームの間、全て第１のベクトルＡがｘ＝０であった場合には、次に、第２のベクトルｘ＜基準値か否かを判定する（Ｓ３９）。ここでは、ステップＳ３３において算出した第２のベクトルＢのｘ２が基準値よりも小さいか否かを判定する。ここで基準値としては、追尾被写体が大きく移動したと判定できる程度の値であればよい。
【００６５】
ステップＳ３９における判定の結果、第２のベクトルＢのｘ２が基準値よりも大きい場合には、フレームの移動量ｘ＝０とする。つまり、第１のベクトルＡのｘ１を採用する（Ｓ３７）。ここでは、過去Ｎフレーム前の参照画像を用いて求めた第２のベクトルＢのｘの値が基準値よりも大きいことから、ｘ＝０とする。一方、ステップＳ３９における判定の結果、第２のベクトルＢのｘ２が基準値よりも小さかった場合には、フレームの移動量に第２のベクトルＢのｘ２を採用する（Ｓ４３）。
【００６６】
ステップＳ３７またはＳ４３において、ｘ方向のフレームの移動を採用すると、次に、過去Ｎフレームの間、第１のベクトルＡの全てのｙ１が０であったか否かを判定する（Ｓ４５）。ここでは、ＲＡＭ２１に記憶されている第１のベクトルＡのログデータに基づいて判定する。
【００６７】
ステップＳ４５における判定の結果、過去Ｎフレームの間、第１のベクトルＡの全てのｙ１が０でなかった場合には、フレームの移動量に第１のベクトルＢのｙを採用する（Ｓ４７）。第１のベクトルＡの移動量が分解能よりも大きかったことから、この値をフレームの移動量とする。
【００６８】
一方、ステップＳ４５における判定の結果、過去Ｎフレームの間、第１のベクトルＡの全てのｙ１が０であった場合には、次に、第２のベクトルＢのｙ２が基準値よりも小さいか否かを判定する（Ｓ４９）。ここでは、ステップＳ３３において算出した第２のベクトルＢのｙ２が基準値よりも小さいか否かを判定する。ここで基準値としては、追尾被写体が大きく移動したと判定できる程度の値であればよい。
【００６９】
ステップＳ４９における判定の結果、第２のベクトルＢのｙ２が基準値よりも大きかった場合には、フレームの移動量ｙ２を０とする。つまり、第１のベクトルＡのｙ１を採用する（Ｓ４７）。ここでは、過去Ｎフレーム前の参照画像を用いて求めた第２のベクトルＢのｙ２の値が大きいことから、ｙ＝０とする。一方、ステップＳ４９における判定の結果、第２のベクトルＢのｙ２が基準値よりも小さかった場合には、フレームの移動量に第２のベクトルＢのｙ２を採用する（Ｓ５３）。
【００７０】
ステップＳ４７またはＳ５３において、ｙ方向のフレームの移動を採用すると、次に、被写体位置の情報の更新と、ターゲットマーク表示位置の変更を行う（Ｓ５５）。追尾被写体の位置は、ステップＳ３１、Ｓ３７、Ｓ４１、およびＳ４３において算出されたｘ方向の動き量と、ステップＳ３１、Ｓ４７、Ｓ５１、およびＳ５３において算出されたｙ方向の動き量に基づいて、決定される。追尾被写体位置が決まると、表示部２９に表示されているライブビュー表示に、追尾被写体位置（ターゲットマーク）を示す枠表示を重畳して表示する。
【００７１】
ターゲットマークを表示すると、次に、撮影開始の操作が行われたか否かを判定する（Ｓ５７）。ここでは、操作部３１の内のレリーズ釦の全押し操作が行われたか否かを判定する。この判定の結果、撮影開始の操作が行われていなかった場合には、ステップＳ２１に戻り、追尾動作を続行する。
【００７２】
一方、ステップＳ４５における判定の結果、撮影開始の操作が行われた場合には、撮影準備動作を行う（Ｓ５９）。撮影準備動作として、追尾被写体位置にピントが合うようにＡＦ動作を行い、適正露出となるようにＡＥ動作を行う。
【００７３】
続いて、静止画像データを取得し、画像ファイルの生成を行う（Ｓ６１）。ここでは、撮像素子１３から画像信号を取得し、この画像信号に基づく画像データの画像処理を行い、画像ファイルを生成してから、記録部２７に記録する。画像ファイルを記録すると、一連動作を終了し、電源釦がオンであれば、ステップＳ１１に戻る。
【００７４】
本実施形態における追尾動作を、図４に示すタイミングチャートを用いて説明する。図４に示すように、順次、垂直同期信号（ＶＤ）に同期して、フレーム１〜９において、露光動作が行われると、画像データが出力される。画像データ１と画像データ２の２つの画像データを用いて、動きベクトル検出部４７によって相関演算１が行われ、第１のベクトルＡ２が算出される（Ｓ２５のタイミング）。以後、画像データが出力されるたびに、相関演算１が行われる。なお、図４中のＡ２〜Ａ７が出力されるタイミングは、図７の時刻Ａ２〜Ａ７のタイミングと同じである。
【００７５】
また、画像データ４が出力されると、この画像データ４と画像データ１を用いて、動きベクトル検出部４７によって相関演算２が行われ、第２のベクトルＢが算出される（Ｓ３３のタイミング）。以後、画像データが出力されるたびに、相関演算２が行われる。なお、図４中のＢ４〜Ｂ７が出力されるタイミングは、図７の時刻Ｂ４〜Ｂ７のタイミングと同じである。
【００７６】
このように、露光を開始し、３フレーム目の露光が終わると、第１のベクトルＡ２が算出され、４フレーム目の露光が終わると、第１のベクトルＡ３が算出され、５フレーム目の露光が終わると、第１のベクトルＡ４および第２のベクトルＢ４が算出され、以後、各フレームの露光が終わると第１及び第２のベクトルが算出される。第１および第２のベクトルが算出されると、図３のステップＳ３３以下のフローに従って、フレームの移動量を決め、追尾被写体の位置情報を更新すると共に、ターゲットマークの表示位置の変更を行う。
【００７７】
なお、本実施形態においては、動き量を求めるためのベクトルを検出するフレームレート間隔は一定であったが、評価画像と隣接フレームの参照画像との第１の動き量と、評価画像と離散フレームの参照画像との第２の動き量に基づいて、ベクトルを検出するフレーム間隔を変更するようにしてもよい。
【００７８】
ベクトルを検出するフレーム間隔を変更にあたって、設定されている撮像フレームを判定するフレームレート判定部を設ける。このフレームレート判定部によって判定されたフレームレートに応じて、動き検出のフレーム間隔を変更する。例えば、設定されている撮像フレームが３０ｆｐｓの場合、動きベクトル検出部４７における第１の動き検出のフレーム間隔を１とし、第２の動き検出のフレーム間隔が２と設定されているとする。設定されている撮像フレームが６０ｆｐｓとなると、第１の動き検出のフレーム間隔を２とし、第２の動き検出のフレーム間隔を４とする。また、設定されている撮像フレームが１２０ｆｐｓとなると、第１の動き検出のフレーム間隔を４とし、第２の動き検出のフレーム間隔を８とすればよい。
【００７９】
以上説明したように、本発明の一実施形態においては、評価画像と、画像記憶部に記憶された複数フレームの画像のうちの１フレームから被写体の第１の動きを検出し、評価画像と、画像記憶部に記憶された画像のうち第１の動きの検出する際のフレームより相対的に時間間隔の広いフレームから被写体の第２の動きを検出し、第１の動き検出では動きなしと検出し、第２の動き検出では動きを検出した場合は、第２の動き検出の結果を動き量として判定するようにしている。このため、回路規模を大きくすることなく、動きベクトル検出の分解能以下の速度で被写体が移動している場合であっても被写体を追尾することが可能となる。
【００８０】
本発明の一実施形態においては、隣接フレームの参照画像と評価画像から第１の動き量を、また離散フレームの参照画像と評価画像とから第２の動き量を求めている。従来の動き量の算出にあたっては、隣接フレームの第１の動き量に基づいて、被写体を追尾するために、追尾被写体の動きが小さい場合には、動き量が小さく検出することができなかった。これに対して、本実施形態においては、隣接フレームの第１の動き量が小さい場合には、離散フレームの第２の動き量から追尾被写体の動き量を検出することができる。また、本実施形態によれば、第１の動き量と第２の動き量を算出することから、それぞれの参照画像や評価画像のデータ量を小さくしても十分精度を確保することができる。そのため、回路規模が小さくすることができる。
【００８１】
なお、本発明の一実施形態においては、離散フレーム間として３フレーム離れた画像を使用したが、３フレームに限らず、これよりも多くても構わない。また、隣接フレームとして現フレームと１フレーム離れた画像を使用したが、１フレームに限らず２フレーム以上で構わない。この場合、離散フレームとしては、隣接フレームよりも離れたフレームを使用すればよい。
【００８２】
また、本発明の一実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話や携帯情報端末（ＰＤＡ：Personal Digital Assist）、ゲーム機器等に内蔵されるカメラでも構わない。
【００８３】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８４】
１・・・カメラ、１１・・・撮像光学系、１３・・・撮像素子、１５・・・ＡＦＥ、１７・・・動き検出部、１９・・・画像処理部、２１・・・ＲＡＭ、２３・・・ＲＯＭ、２５・・・システムコントローラ、２７・・・記録部、２９・・・表示部、３１・・・操作部、３３・・・バス、４１・・・バッファメモリ、４３・・・第１の動き検出用メモリ、４５・・・第２の動き検出用メモリ、４７・・・動きベクトル検出部、３００・・・ターゲットマーク、３０１・・・仮想ターゲットマーク、３０２・・・追尾被写体
【図１】
0005683898.tif 000002
【図２】
0005683898.tif 000003
【図３】
0005683898.tif 000004
【図４】
0005683898.tif 000005
【図５】
0005683898.tif 000006
【図６】
0005683898.tif 000007
【図７】
0005683898.tif 000008