(57)【特許請求の範囲】
【請求項１】
被写体を追尾する制御を行う追尾制御装置であって、
撮像素子で撮像された撮像画像より被写体を検出する被写体検出手段と、
前記撮像画像のうち所定範囲の画像を第１の画像として取得する取得手段と、
前記撮像素子により取得された異なるフレームにおける画像信号に基づいて前記被写体の動きベクトルを取得し、取得された前記動きベクトルに基づいて補正量を取得する補正量取得手段と、
前記被写体検出手段により検出された前記被写体の位置と、撮像範囲内に予め設定された所定の位置との差分量に基づいて追尾制御量を取得する追尾制御量取得手段と、
前記補正量と前記追尾制御量とを加算して制御量を取得し、前記制御量に基づいて前記第１の画像における前記被写体の位置を制御することで追尾制御を行う制御手段と、を備えることを特徴とする追尾制御装置。
【請求項２】
前記追尾制御量取得手段は、前記差分量の大きさが閾値以下である場合の前記追尾制御量よりも前記差分量の大きさが閾値を超える場合の前記追尾制御量のほうが大きくなるように、前記差分量に基づいて前記追尾制御量を取得することを特徴とする請求項１に記載の追尾制御装置。
【請求項３】
前記追尾制御量取得手段は、入力された前記差分量に基づいてカウント値を出力する出力部を有し、前記カウント値に基づいて前記追尾制御量を取得し、前記出力部は、前記差分量が前記閾値以下であるとき、カウント値を最小値に設定し、前記最小値をカウント値として出力することを特徴とする請求項２に記載の追尾制御装置。
【請求項４】
前記被写体の位置および大きさを検出して前記撮像画像内に被写体領域を設定する設定手段を備え、
前記補正量取得手段は、前記被写体領域の情報に基づいて前記動きベクトルを取得することを特徴とする請求項１から３のいずれか１項に記載の追尾制御装置。
【請求項５】
前記補正量取得手段は、前記撮像画像内に設定される複数の検出領域にてそれぞれ検出される前記動きベクトルに対して重みづけ係数を設定し、前記動きベクトルの値に前記重みづけ係数を乗算して前記被写体の動きベクトルを取得することを特徴とする請求項１から４のいずれか１項に記載の追尾制御装置。
【請求項６】
振れ検出信号を出力する振れ検出手段を備え、
前記補正量取得手段は、前記被写体の動きベクトルと前記振れ検出信号とに基づいて前記補正量を取得することを特徴とする請求項１から５のいずれか１項に記載の追尾制御装置。
【請求項７】
前記補正量取得手段は、前記動きベクトルと前記追尾制御量から抽出した高周波成分に基づいて前記補正量を取得することを特徴とする請求項１から６のいずれか１項に記載の追尾制御装置。
【請求項８】
前記補正量取得手段は、前記被写体の動きベクトルに基づく移動量から前記高周波成分に対応する移動量を減算して前記補正量を取得することを特徴とする請求項７に記載の追尾制御装置。
【請求項９】
前記補正量取得手段は、前記被写体の動きベクトルに基づく移動量から前記高周波成分に対応する移動量を減算して取得した減算信号にゲイン係数を乗算して前記補正量を取得する請求項８に記載の追尾制御装置。
【請求項１０】
前記補正量取得手段は、前記補正量または前記被写体の位置もしくは当該被写体の位置の変化量に対応する前記ゲイン係数を設定することを特徴とする請求項９に記載の追尾制御装置。
【請求項１１】
前記補正量取得手段は、前記追尾制御量に対して微分処理をすることで高周波成分を抽出することを特徴とする請求項７から１０のいずれか１項に記載の追尾制御装置。
【請求項１２】
前記制御手段は、前記撮像素子に光束を導く撮像光学系を構成する光学素子、前記撮像素子、又は前記撮像画像から前記第１の画像を取得する範囲の少なくともいずれかの位置を制御することで、前記被写体の追尾制御を行うことを特徴とする請求項１から１１のいずれか１項に記載の追尾制御装置。
【請求項１３】
請求項１から１２のいずれか１項に記載の追尾制御装置と、
前記被写体を撮像する撮像手段を備えることを特徴とする撮像装置。
【請求項１４】
被写体を追尾する制御を行う追尾制御装置にて実行される追尾制御方法であって、
撮像素子で撮像された撮像画像より被写体を検出する被写体検出工程と、
前記撮像画像のうち所定範囲の画像を第１の画像として取得する画像取得工程と、
前記撮像素子により取得された異なるフレームにおける画像信号に基づいて前記被写体の動きベクトルを取得し、取得された前記動きベクトルに基づいて補正量を取得する補正量取得工程と、
前記被写体検出工程により検出された前記被写体の位置と、撮像範囲内に予め設定された所定の位置との差分量に基づいて追尾制御量を取得する追尾制御量取得工程と、
前記補正量と前記追尾制御量とを加算して制御量を取得し、前記制御量に基づいて前記第１の画像における前記被写体の位置を制御することで追尾制御を行う制御工程と、を有することを特徴とする追尾制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体を追尾し、被写体画像を画面の所定位置に移動させ、または保持する制御に関する。
【背景技術】
【０００２】
露出決定やピント合わせが自動化され、手振れ等による撮影画像の像ブレを防ぐ制御装置が搭載されたデジタルカメラ等がある。また被写体の顔や人体を検出する検出機能が提案されている。例えば人物の顔を判断するためのパターンが予め定められており、画像内に含まれる該パターンに一致する箇所が人物の顔として検出される。検出された人物の顔画像の情報は、合焦制御や露出制御等で参照される。
【０００３】
移動している被写体の撮影時や、焦点距離の大きい望遠での撮影時には、以下の問題がある。動体である被写体の移動により被写体が画角から外れてしまう場合、動き続ける被写体を、手動操作のみで精度良く追尾するには撮影者の特別な技術が必要である。また、望遠レンズを有するカメラで撮影を行う場合、手振れによる像ブレが大きくなるので、主被写体を撮影画像の中心に保持することが難しい。撮影者が被写体を画角内に捉え直そうとしてカメラを操作した場合、撮影者が意図して操作したときの手ぶれ量に応じて像ブレ補正が行われてしまう。そのため、像ブレ補正制御の影響により被写体を画角内に捉え、または撮影画像の中心に被写体画像を位置させるために撮影者が行う微調整の操作が難しくなる。
【０００４】
特許文献１には、光軸と交差させる方向に光学系の一部を移動させることによって、自動的に被写体を追尾する撮像装置が開示されている。撮像素子により取得される画像信号から被写体の位置が検出され、被写体追尾演算量が算出される。ブレ補正演算量に被写体追尾演算量を合成することで、像ブレを補正しつつ被写体追尾制御が可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−９３３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
被写体の画像位置を画面内の特定位置に保持するように被写体追尾制御を行うシステムでは、被写体検出の遅れや検出精度が追尾制御に大きな影響を与える可能性がある。例えば、撮像された画像の解析によって行われる被写体検出では実時間に対して検出の遅れが必ず発生する。被写体の画像位置を画角内で特定の位置に保持するために位置フィードバック制御が行われる。その際、検出遅れによる無駄時間を加味してフィードバック制御を行わなければならない。
【０００７】
また撮像素子に入力される前に被写体の光像を、シフトレンズ等の駆動により補正する被写体追尾制御がある。この場合、被写体検出での実時間に対する遅れが被写体の追尾性能に大きな影響を与える可能性がある。被写体追従性を高めるためにフィードバックゲインを大きくすると、撮影条件によっては発振することが懸念される。逆に発振しないようにフィードバックゲインを小さくすると被写体追従性が低下し、被写体を逃がしやすくなってしまうという問題がある。
本発明の目的は、被写体を追尾する追尾制御において、被写体追従性を高めることである。
【課題を解決するための手段】
【０００８】
本発明に係る装置は、被写体を追尾する制御を行う追尾制御装置であって、撮像素子で撮像された撮像画像より被写体を検出する被写体検出手段と、前記撮像画像のうち所定範囲の画像を第１の画像として取得する取得手段と、前記撮像素子により取得された異なるフレームにおける画像信号に基づいて前記被写体の動きベクトルを取得し、取得された前記動きベクトルに基づいて補正量を取得する補正量取得手段と、前記被写体検出手段により検出された前記被写体の位置と、撮像範囲内に予め設定された所定の位置との差分量に基づいて追尾制御量を取得する追尾制御量取得手段と、前記補正量と前記追尾制御量とを加算して制御量を取得し、前記制御量に基づいて前記第１の画像における前記被写体の位置を制御することで追尾制御を行う制御手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、被写体を追尾する追尾制御において、被写体追従性を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る撮像装置を模式的に示す図である。
【図２】本発明の実施形態に係る撮像装置の構成例を示す図である。
【図３】検出された被写体の追尾制御を説明する図である。
【図４】第１実施形態における追尾量算出部の機能ブロック図である。
【図５】第１実施形態における補正ベクトル検出部の機能ブロック図である。
【図６】第１実施形態における補正ベクトル検出処理を説明する図である。
【図７】第１実施形態における度数分布処理を説明する図である。
【図８】第１実施形態における振れ補正角度算出部の機能ブロック図である。
【図９】被写体の追尾制御例を説明するフローチャートである。
【図１０】第２実施形態における補正ベクトル検出を説明する図である。
【図１１】第２実施形態における検出ブロックの配置変更を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の各実施形態について、添付図面を参照して詳細に説明する。本発明に係る光学機器は各種のレンズ装置や撮像装置、望遠鏡、双眼鏡等に適用可能である。以下の実施形態では、デジタルスチルカメラ、デジタルビデオカメラ等の撮像装置への適用例を説明するが、Ｗｅｂカメラ、携帯電話等の撮影装置に搭載可能である。
【００１２】
［第１実施形態］
図１は、本発明の第１実施形態に係る撮像装置を模式的に示す図である。撮像装置１０１は像ブレ補正装置および被写体追尾制御装置を具備する。像ブレ補正装置は、例えば光軸１０２に対して矢印１０３ｐ、１０３ｙで示すピッチ方向、ヨー方向の角度振れに対して像ブレ補正を行う。３次元直交座標系のうちＺ軸方向を光軸方向とし、Ｚ軸に直交する第１の軸をＸ軸とし、Ｚ軸およびＸ軸に直交する第２の軸をＹ軸と定義する。矢印１０３ｐに示すＸ軸回り方向がピッチ方向であり、矢印１０３ｙに示すＹ軸回り方向がヨー方向である。
【００１３】
図２は撮像装置１０１の構成を模式的に示す平面図である。図２は撮像装置１０１の撮像部の構成と、ＣＰＵ（中央演算処理装置）１０５により実行される像ブレ補正処理および被写体の自動追尾処理の機能ブロックを示す。
撮像装置１０１は本体部にレリーズボタン１０４（図１参照）を備える。レリーズボタン１０４の操作時にスイッチのＯＮ／ＯＦＦ信号がＣＰＵ１０５に送られる。ＣＰＵ１０５は本実施形態の制御装置として機能する。なお、本発明はＣＰＵ１０５を備える任意の光学機器に適用可能である。
【００１４】
撮像光学系の光軸１０２上には、振れ補正レンズ（補正レンズともいう）１１４と撮像素子１０６が位置する。撮像装置１０１は、角度振れの角速度を検出する角速度検出手段（以下、角速度計という。）を備える。角速度計１０３は、図１の矢印１０３ｐのピッチ方向および矢印１０３ｙのヨー方向の角度振れを検出する。角速度計１０３の出力する検出信号はＣＰＵ１０５に入力される。被写体の自動追尾制御が行われない場合、振れ補正角度算出部１０８は、角速度計１０３の出力に基づいて振れ補正角度を演算する。具体的には、振れ補正角度算出部１０８は、角速度計１０３の出力に対して、角速度計１０３に検出ノイズとして付加されるＤＣ（直流）成分をカットした後、積分処理を実行して角度信号を出力する。ＤＣ成分のカットには、例えばＨＰＦ（ハイパスフィルタ）が用いられる。振れ補正角度算出部１０８の出力は加算部１１２を介して敏感度調整部１０９に入力される。
【００１５】
敏感度調整部１０９は、ズームおよびフォーカス位置情報１０７と、これらにより求まる焦点距離や撮影倍率に基づいて、振れ補正角度算出部１０８の出力を増幅し、振れ補正目標値を出力する。ズーム位置情報はズームユニットから取得され、フォーカス位置情報はフォーカスユニットから取得される。ズームおよびフォーカス位置情報１０７に基づいて振れ補正目標値を算出する理由は、フォーカスやズーム等の光学情報の変化により補正レンズ１１４の振れ補正ストロークに対する撮像面での振れ補正敏感度が変化するからである。敏感度調整部１０９は振れ補正目標値を駆動制御部１１３に出力する。
【００１６】
補正レンズ１１４は、撮影画像における被写体画像をシフト方向に移動させる。駆動制御部１１３は補正レンズ１１４を駆動制御し、振れ補正と被写体の追尾制御を行う。また駆動制御部１１３は、補正レンズ１１４を光軸とは異なる方向に駆動することで像ブレ補正（光学式防振）を実行する。図２に示す例では、補正レンズ１１４を用いた光学式防振が採用されている。これに限らず像ブレ補正として、撮像素子を光軸と垂直な面内で移動させることで像ブレを行う補正方法を適用してもよい。または、撮像素子が出力する各撮影フレームの画像の切り出し位置を変更することで、振れの影響を軽減させる電子式防振を適用してもよい。あるいは複数の像ブレ補正方法を組み合わせることも可能である。
【００１７】
次に、補正レンズ１１４を用いた被写体の自動追尾制御方法について説明する。図２に示す被写体検出部１１０は、撮像素子１０６から撮像された画像信号を取得し、撮影画像内の被写体の画像位置（被写体位置）を検出する。被写体位置情報は追尾量算出部１１１および後述の補正ベクトル検出部１１６に出力される。追尾量算出部１１１は、ズームおよびフォーカス位置情報１０７と、検出された被写体位置情報に基づいて、補正レンズ１１４の駆動により被写体を追尾するために用いる制御量を算出する。以下、被写体を追尾して被写体の画像位置を画面における特定の位置（例えば中央位置）に位置させるための制御量（追尾制御量）を追尾補正量という。追尾補正量は振れ補正角度算出部１０８および加算部１１２に出力される。
【００１８】
加算部１１２は、振れ補正角度算出部１０８が出力する振れ補正量と追尾量算出部１１１が出力する追尾補正量とを加算する。加算部１１２の出力は、敏感度調整部１０９に入力される。これにより、補正レンズ１１４の振れ補正ストロークに合わせて敏感度調整が行われ、駆動制御部１１３は敏感度調整部１０９の出力に基づいて、補正レンズ１１４の駆動量を算出する。駆動量に基づいて補正レンズ１１４が駆動されることで、被写体の追尾制御と像ブレ補正が行われる。
【００１９】
動きベクトル検出部１１５は、撮像素子１０６から撮像された画像信号を取得し、画像の動きベクトルを検出する。動きベクトル検出部１１５は検出した動きベクトル情報を補正ベクトル検出部１１６に出力する。補正ベクトル検出部１１６は、検出された動きベクトル情報と被写体検出部１１０の出力から、補正ベクトルを算出して振れ補正角度算出部１０８に出力する。
【００２０】
次に、被写体検出部１１０が行う被写体位置の検出処理について詳細に説明する。撮像素子１０６は被写体からの反射光を電気信号に光電変換することで画像情報を取得する。画像情報はＡ／Ｄ変換部でデジタル画像信号に変換され、デジタル画像信号が被写体検出部１１０に送られる。撮影画像内に捉えた被写体の画像が複数である場合、それらの被写体から主被写体を自動的に認識する方法として以下の方法がある。
【００２１】
主被写体検出の第１の方法は人物を検出する方法である。この場合、被写体検出部１１０は被写体の顔や人体を検出する。顔検出処理では、人物の顔を判断するためのパターンが予め定められており、撮像された画像内に含まれる該パターンに一致する箇所を人物の顔画像として検出することができる。被写体検出部１１０は、検出された各被写体について、被写体の顔としての確からしさを示す信頼度を算出する。信頼度は、例えば画像内における顔領域の大きさや、顔パターンとの一致度等から算出される。すなわち被写体検出部１１０は、撮影画像内における被写体の大きさ、または当該被写体と予め記憶された被写体のパターンとの一致度に基づいて当該被写体の信頼度演算を行う。
【００２２】
主被写体検出の第２の方法は、撮像された画像内の色相や彩度等のヒストグラムを使用する方法である。撮影画像内に捉えられている被写体画像に関し、その色相や彩度等のヒストグラムから導出される分布を複数の区間に分け、区間ごとに撮像された画像を分類する処理が実行される。例えば、撮像された画像について複数の色成分のヒストグラムが作成され、その山型の分布範囲で区分けし、同一の区間の組み合わせに属する領域にて撮像された画像が分類され、被写体の画像領域が認識される。認識された被写体の画像領域ごとに評価値を算出することで、当該評価値が最も高い被写体の画像領域を主被写体領域として判定することができる。
【００２３】
主被写体領域の決定後には、その特徴量を用いて、以降に順次撮像された画像から特徴量と類似する領域を検出することで主被写体領域を追尾することができる。主被写体領域の特徴量は、例えば色相分布や大きさ等から演算される。検出された被写体の位置情報は、追尾量算出部１１１に入力される。追尾量算出部１１１は、被写体の数が１つの場合、被写体画像の中心位置が画面中央付近に位置するように追尾補正量を演算する。また撮影者が、随時出力される映像信号にしたがって撮像装置の表示部の画面に表示される映像を見ながら、撮像装置の操作部材を操作することによって、表示画面上で被写体位置を指定することも可能である。この場合、撮影者が表示画面に表示される複数の被写体の画像の中から主被写体を指定する操作を行うと、指定された位置での色相分布や大きさ等の特徴量が算出される。算出された特徴量を用いて、以降に順次撮像された画像から、当該特徴量と類似する特徴量をもつ領域を検出して、検出された領域を主被写体領域として追尾することができる。
【００２４】
図３は、検出された主被写体の追尾制御を説明する図である。図３（Ａ）は、被写体追尾制御の開始前における撮影画像３０１ａを例示する。図３（Ｂ）は、被写体追尾制御の開始後における撮影画像３０１ｂを例示する。図３（Ａ）の撮影画像３０１ａにおいて、中央に示す黒点は画面中央位置３０４を示す。追尾制御の開始前に被写体３０２ａの画像位置は画面中央位置３０４から離れている。被写体中心位置３０３ａは、被写体３０２ａの画像における中心位置を示す。ＣＰＵ１０５が被写体追尾制御を開始させると、時間経過につれて被写体中心位置３０３ａと画面中央位置３０４との距離が徐々に小さくなっていく。被写体追尾制御によって最終的には図３（Ｂ）に示すように、被写体中心位置３０３ａと画面中央位置３０４とがほぼ一致する。
【００２５】
次に、図４を参照して追尾量算出部１１１の構成について説明する。図４は追尾量算出部１１１の一例を示す機能ブロック図である。追尾量算出部１１１は、画面の縦方向および横方向の各軸にて追尾補正量を演算するが、簡単化のために、以下では片軸についてのみ説明する。
【００２６】
減算部４０３は、被写体検出部１１０が出力する被写体位置情報に基づき、被写体位置（中心位置）４０１の座標から画面中央位置４０２の座標を減算する。これにより、被写体画像の中心位置が画面中央位置４０２から画像上でどれくらいの距離であるかを示す差分量（以下、中心ズレ量という）が算出される。中心ズレ量は画面中央位置４０２での差分量を０とした符号付きのデータである。減算部４０３の出力は、カウント値テーブル参照部（以下、単に参照部という）４０４に入力される。
【００２７】
参照部４０４は、中心ズレ量、つまり差分量の大きさに基づいて、追尾のためのカウント値を演算する。具体的には以下の通りである。
・中心ズレ量が所定閾値Ａ以下であるか、または、所定閾値「−Ａ」以上である場合
カウント値はゼロまたは最小値に設定される。中心ズレ量の大きさが所定の閾値以下である場合、画面中央位置から所定範囲内では追尾をしない不感帯領域が設定される。
・中心ズレ量が所定閾値Ａより大きいか、または、所定閾値「−Ａ」未満である場合
カウント値は、中心ズレ量が大きくなるにつれて大きくなるように設定される。カウント値の符号については、中心ズレ量の符合に合わせて演算される。
【００２８】
参照部４０４の出力は、信号選択部４０６が第１の入力として取得する。信号選択部４０６は、第２の入力としてダウンカウント値出力部４０５の出力するダウンカウント値を取得する。また信号選択部４０６には制御用信号として、追尾ＳＷ（スイッチ）４０７の状態を示す信号が入力される。追尾ＳＷ４０７がオンに設定されている場合、信号選択部４０６は参照部４０４の出力を選択して、加算部４０８に出力する。また追尾ＳＷ４０７がオフに設定されている場合、信号選択部４０６はダウンカウント値を選択して、加算部４０８に出力する。ダウンカウント値については後で説明する。
【００２９】
加算部４０８は、信号選択部４０６の出力と、追尾量に係る前回サンプリング値を取得して両者を加算する。加算部４０８の出力は上下限値設定部４０９に入力される。上下限値設定部４０９は追尾補正量を所定の範囲内に制限する。つまり追尾補正量は、所定の上限値以上にならず、かつ所定の下限値以下にならないようにリミッタがかけられて値が変更される。上下限値設定部４０９の出力は、遅延部４１０とＬＰＦ（ローパスフィルタ）４１１にそれぞれ入力される。
【００３０】
遅延部４１０は、現時点よりも所定のサンプリング時間だけ過去の追尾補正量、つまり前回のサンプリング値を演算結果として、加算部４０８およびダウンカウント値出力部４０５にそれぞれ出力する。ダウンカウント値出力部４０５は、前回のサンプリング時点での追尾補正量（前回サンプリング値）がプラスの符号である場合、ダウンカウント値をマイナスに設定する。またダウンカウント値出力部４０５は、前回サンプリング値がマイナスの符号である場合、ダウンカウント値をプラスに設定する。これにより、追尾補正量の絶対値が小さくなるように処理が行われる。またダウンカウント値出力部４０５は、前回サンプリング値がゼロ近傍の範囲（０±所定範囲）以内である場合、ダウンカウント値を０に設定する。ダウンカウント値は信号選択部４０６への第２の入力となる。
【００３１】
ＬＰＦ４１１は、上下限値設定部４０９の出力に対して、被写体検出時の高周波ノイズをカットし、処理後の信号を補正レンズ量変換部４１２に出力する。補正レンズ量変換部４１２は、ＬＰＦ４１１の出力を、補正レンズ１１４によって被写体追尾動作を行うための信号に変換する。こうして最終的な追尾補正量が演算され、追尾補正量に基づいて補正レンズ１１４が駆動されることで、徐々に被写体画像の中心位置が撮影画像の中心付近に位置するように追尾補正処理が行われる。
【００３２】
次に動きベクトル検出部１１５が行う動きベクトルの検出処理について説明する。
撮像素子１０６は被写体からの反射光を電気信号に光電変換することで画像信号を取得する。取得された画像信号はデジタル信号に変換されてから、動きベクトル検出部１１５に送られる。動きベクトル検出部１１５は、あらかじめ記憶されている１フレーム前の画像と現在の画像、つまり時間的に連続する２つの画像を比較することで、画像の相対的なズレ情報から動きベクトルを算出する。このとき、画像をいくつかのエリアに分割する処理が行われる。分割された小エリア（分割領域）でそれぞれの画像情報を比較することによって、各エリアでの動きベクトルが算出される。動きベクトル検出部１１５は算出した動きベクトルを補正ベクトル検出部１１６に出力する。
【００３３】
補正ベクトル検出部１１６は、各エリアにて算出された動きベクトル（フレーム間の移動ピクセル）に基づいて度数分布処理を行い、最も度数の大きいピクセルから画像全体の動きベクトルを決定する。以下、補正ベクトル検出部１１６が、動きベクトル検出部１１５からの動きベクトル情報と、被写体検出部１１０の出力に基づいて補正ベクトルを算出する処理について説明する。
【００３４】
図５は補正ベクトル検出部１１６の構成例を示す制御ブロック図である。ベクトル重みづけ処理部（以下、重みづけ処理部という）５０１は、動きベクトル検出部１１５の出力と、被写体検出部１１０の出力を取得する。動きベクトル検出部１１５の出力は、画面内に配置されたエリア（検出領域）ごとの動きベクトル値を表す。被写体検出部１１０の出力は、被写体中心位置および被写体の縦横の大きさを表す。
【００３５】
まず、被写体検出部１１０からの情報を用いない場合の動きベクトル検出方法を説明する。被写体追尾機能がＯＦＦ設定である場合、あるいは特徴的な被写体が画面内に存在しない場合には、被写体位置情報は使用しない。この場合、重みづけ処理部５０１は、動きベクトル検出部１１５からエリアごとのベクトル値を取得してそのまま度数分布処理部５０２に出力する。
【００３６】
図６（Ａ）は、画面内に動体である被写体６０１が存在する場合の画像例を示す。破線の枠範囲６０２は、主被写体として検出された画像範囲を表している。図６（Ｂ）は、動きベクトル検出部１１５における検出ブロック６０３〜６０５の配置例を示す。矩形状の検出ブロックは画面全体に均等に配置されている。例えば、画面内で動いている被写体６０１が存在していても、画面内にて被写体６０１の画像の大きさが画面に占める比率が小さい場合を想定する。この場合、被写体６０１以外のエリアで検出される動きベクトル値にかかわる検出ブロック数の方が、被写体６０１にかかわる検出ブロック数よりも多い。度数分布処理部５０２は、画面内で検出された全ベクトルから度数分布処理を行う。図７を参照して具体的に説明する。図７（Ａ）および（Ｂ）にそれぞれ示す度数分布図の横軸は移動量（単位：ピクセル）を表し、縦軸は度数を表す。
【００３７】
図７（Ａ）は、被写体が動体である場合に、度数分布処理部５０２にて検出された、あるフレームでの度数分布例を示す。図６（Ａ）のような被写体６０１が存在するエリアでの検出ブロックは、ベクトル群７０２のように移動量に幅をもった度数分布を示す。また、被写体６０１に対応するエリア以外での検出ブロックは、ベクトル群７０３のような度数分布を示す。動体である被写体がいないエリアでのベクトル検出結果に関しては、主に手振れと手振れ補正の影響を受けた検出結果となる。一方、ベクトル群７０２で示すように、移動している被写体６０１に対応するエリアでのベクトル検出結果については、動体の速度と手振れ補正の影響を受けたベクトル検出結果となる。ここで、被写体６０１に対応するエリアにかかわる検出ブロック数は、被写体６０１以外のエリアにかかわる検出ブロック数に対して少ない。つまり、ベクトル群７０２の総度数に比べて、ベクトル群７０３の総度数の方が大きい。図７（Ａ）の検出例では、最も度数の多いピクセル移動量が度数ピーク７０１の位置となるため、移動している被写体６０１が存在しないエリアで検出された動きベクトルの値が設定されることになる。
【００３８】
本実施形態の重みづけ処理部５０１は、被写体検出部１１０からの被写体重心位置と被写体画像の大きさから被写体エリアを設定し、被写体エリアと被写体エリアでない領域での検出ブロックごとに重みづけ処理を行う。これにより、主被写体エリアのベクトルを検出することができる。具体的には、図６（Ａ）にて被写体６０１が主被写体として指定されるか、あるいは自動的に認識された場合を想定する。枠範囲６０２は、主被写体エリアを表しており、被写体検出部１１０により検出される被写体中心位置と、縦方向および横方向のそれぞれの被写体画像の大きさから設定される。
【００３９】
図６（Ｂ）に示す検出ブロック６０３は、枠範囲６０２に収まっている検出ブロックを示しており、重みづけ処理部５０１は当該検出ブロックに対する重みづけ係数値を１とする。つまり、重みづけ係数値として１を各検出ブロック６０３の動きベクトル値に乗算し、各動きベクトル値を更新する処理が行われる。重みづけ処理部５０１は、枠範囲６０２のエリアから所定位置だけ離れた第１のエリアを設定し、当該エリア内に位置する検出ブロック６０４に対して重みづけ係数値を、例えば０．３とする。重みづけ係数値として０．３を各検出ブロック６０４の動きベクトル値に乗算し、各動きベクトル値を更新する処理が行われる。重みづけ処理部５０１は、枠範囲６０２のエリアからさらに離れた第２のエリアを設定し、当該エリア内に位置する検出ブロック６０５に対して重みづけ係数値を０とする。つまり、重みづけ係数値として０が各検出ブロック６０５の動きベクトル値に乗算されるので、動きベクトル値はゼロとなる。このように重みづけ処理部５０１は、各検出ブロックの動きベクトル値に対し、被写体検出部１１０からの被写体中心位置と被写体の大きさから設定した被写体エリアに基づいて重みづけ係数を算出する。重みづけ処理部５０１は重みづけ係数を用いた乗算を行って各検出ブロックの動きベクトル値を更新する。
【００４０】
度数分布処理部５０２は、重みづけ処理された動きベクトルを取得して度数分布処理を行う。図７（Ｂ）は、動体である被写体が存在する場合に度数分布処理部５０２にて検出された、あるフレームでの度数分布例を示す。具体的には、図６（Ａ）にて被写体６０１が主被写体として指定されるか、あるいは自動的に認識された場合を想定する。ベクトル群７０２と７０３の意味は図７（Ａ）の場合と同じであるが、それらの度数分布が異なる。ベクトル群７０３については、移動している被写体がいないエリアでのベクトル検出結果を示し、殆どの検出ブロックで重みづけ係数値が０に設定される。このため、図７（Ａ）に比べて、度数が小さくなっている。一方、ベクトル群７０２については、移動している被写体６０１の速度と手振れ補正の影響を受けたベクトル検出結果が得られ、重みづけ係数値は１または０．３に設定される。このため図７（Ｂ）のベクトル群７０２に関する度数分布は、図７（Ａ）にてベクトル群７０２に対応する度数分布とほとんど同じ結果となる。図７（Ｂ）の度数分布において、最も度数の多いピクセル移動量は度数ピーク７０４の位置となる。この位置は、移動している被写体６０１が存在するエリア内の検出ブロックで検出された動きベクトル値の範囲内であり、被写体領域およびその近傍領域での動きベクトル値が移動量として決定される。
【００４１】
図５の被写体ベクトル角速度換算部５０３は、度数分布処理部５０２により検出された動きベクトル（フレーム間の差分ベクトル）を取得し、ピクセル単位から角速度単位へ換算する。カメラの振れ角速度をω、焦点距離（ｍｍ）をｆ、ピクセル（ｐｉｘｅｌ）単位での動きベクトルをＡ、フレームレート（ｆｐｓ）をＢ、セルピッチ（１ピクセル当たりの距離（ｍｍ））をＸと表記する。カメラの振れ角速度相当の単位に変換する処理では、下記式（１）が使用される。
ω  ＝  Ａ  ×  Ｂ  ×  Ｘ  ÷  ｆ                     ・・・（１）
角速度単位に変換された動きベクトルは、振れ補正角度算出部１０８に入力される。振れ補正角度算出部１０８には、角速度計１０３の出力である角速度と、追尾量算出部１１１の出力である追尾補正量が同時に入力される。
【００４２】
次に、振れ補正角度算出部１０８における振れ補正角度算出処理について説明する。図８は振れ補正角度算出部１０８の内部処理を説明するブロック図である。
【００４３】
角速度計１０３の出力する角速度信号はＨＰＦ８０１に入力される。ＨＰＦ８０１は、角速度計１０３に検出ノイズとして付加されるオフセット成分を除去するためにＤＣ成分をカットする。ＨＰＦ８０１は、ＨＰＦ処理した角速度信号を加減算部８０２および角速度減算量算出部８０５に出力する。加減算部８０２は、ＨＰＦ処理された角速度信号と、後述の可変ゲイン部８０８および角速度減算量算出部８０５の各出力信号を取得する。加減算部８０２にて、ＨＰＦ８０１の出力と、可変ゲイン部８０８の出力であるベクトルフィードバック角速度はいずれも正入力として加算処理され、角速度減算量算出部８０５からの角速度減算量は負入力として減算処理される。ベクトルフィードバック角速度と角速度減算量の算出については後で詳述する。積分器８０３は加減算部８０２の出力を取得して積分処理を行い、目標角度を算出する。積分器８０３は積分結果をリミット部８０４と角速度減算量算出部８０５と可変ゲイン部８０８にそれぞれ出力する。リミット部８０４は積分器８０３による積分後の目標角度信号を取得する。リミット部８０４は目標角度信号の信号値が最大可動範囲を超える場合に当該信号値が最大値に保持されるように制限する。リミット部８０４は、振れ補正目標値に対する上下限としてリミット閾値が設定されているので、予め設定された範囲内の振れ補正角度が算出される。
【００４４】
角速度減算量算出部８０５はＨＰＦ８０１と積分器８０３の各出力を取得して角速度減算量を算出する。加減算部８０２において角速度から角速度減算量を減算する目的は、振れ補正の可動範囲内で振れ補正目標値を算出することである。リミット部８０４には、入力信号値が最大可動範囲を超える場合、最大値に制限するために振れ補正目標値を上下限が設定されている。しかし、角速度が振れ補正の可動範囲を超えてしまうと、その後の振れ補正が不能状態になり、大きな像ブレが発生する可能性がある。そこで角速度減算量算出部８０５は、振れ補正目標値（制御周期の前回サンプリング値）を用いて角速度減算量を算出して加減算部８０２に出力する。加減算部８０２は角速度から角速度減算量を減算し、その後に積分器８０３が積分する。これにより、振れ補正の可動範囲内で振れ補正目標値を算出することができる。
【００４５】
角速度減算量算出部８０５は、角速度減算量として、ＨＰＦ８０１の出力する角速度信号にゲインαまたはβを乗算した信号を生成する。具体的には、第１の閾値をＡ１とし、第２の閾値をＡ２として、「Ａ１＜Ａ２」の関係を満たすものとする。振れ補正目標位置がＡ１以下である場合、ゲインαの値が０に設定される。また、振れ補正目標位置がＡ２以上である場合、ゲインαの値が１に設定される。振れ補正目標位置がＡ１より大きく、Ａ２未満である場合には、ゲインαの値は、閾値Ａ１とＡ２との間を線形補間した一次式にしたがって算出される値となる。
【００４６】
また、第３の閾値をＢ１とし、第４の閾値をＢ２として、「Ｂ１＞Ｂ２」、および「Ａ１＝−Ｂ１、Ａ２＝−Ｂ２」の関係を満たすものとする。振れ補正目標位置がＢ１以上である場合、ゲインβの値が０に設定される。振れ補正目標位置がＢ２以下である場合、ゲインβの値が１に設定される。振れ補正目標位置がＢ１未満であって、Ｂ２より大きい場合には、ゲインβの値は閾値Ｂ１とＢ２との間を線形補間した一次式にしたがって算出される値となる。
【００４７】
角速度減算量算出部８０５は、設定されたゲインαおよびβを用いて、下記式（２）、（３）により角速度減算量を算出する。
・ＨＰＦ角速度の符号がプラスの場合  ：  角速度減算量  ＝  ＨＰＦ角速度  ×  α  ・・・（２）
・ＨＰＦ角速度の符号がマイナスの場合：  角速度減算量  ＝  ＨＰＦ角速度  ×  β  ・・・（３）
ＨＰＦ角速度はＨＰＦ８０１によって処理された角速度であり、角速度減算量に関してＨＰＦ角速度の符号に応じて乗算されるゲインが異なる。すなわちＨＰＦ角速度の符号がプラスの場合、ＨＰＦ角速度にゲインαが乗算され、ＨＰＦ角速度の符号がマイナスの場合、ＨＰＦ角速度にゲインβが乗算される。算出された角速度減算量は、加減算部８０２でＨＰＦ角速度から減算される。これにより、補正レンズが可動端に到達して振れ補正不能状態になることを防ぎ、可動範囲内での振れ補正制御を行うことができる。なお、可動端は補正レンズが移動可能な可動範囲の限界位置またはその近傍に相当する。
【００４８】
次に図８の可変ゲイン部８０８から出力されるベクトルフィードバック角速度（以下、ＦＢ角速度という）の演算処理について説明する。
【００４９】
補正ベクトル検出部１１６は、図５から図７を用いて説明した方法で、角速度換算後の補正ベクトル値の信号を出力する。この信号は減算部８０７に入力される。一方、追尾量算出部１１１は、図４を用いて説明した方法で算出した追尾量（制御周期の前回サンプリング値）を微分器８０６に出力する。微分器８０６は微分処理を行い、追尾量を角速度相当の値に変換した追尾角速度を減算部８０７に出力する。減算部８０７は、補正ベクトル検出部１１６から取得した補正ベクトル値を正入力とし、微分器８０６から取得した追尾角速度を負入力として、減算処理を行う。減算結果を示す信号（減算信号）は可変ゲイン部８０８に出力される。減算部８０７の出力は、検出されたベクトル（角速度相当への換算後のベクトル）から追尾量分の角速度を減算した信号であり、カメラ振れから振れ補正分を減算した振れ補正後のカメラ揺れ残り角速度相当の値となる。
【００５０】
ここで、移動している被写体の画像が画面上に存在しない場合について説明する。この場合、補正ベクトル検出部１１６は画面全体に配置されたすべての検出ブロックを用いた度数分布処理を行い、動きベクトルを決定する。カメラ振れから振れ補正の振れ量分が除去された振れ補正揺れ残りの動きベクトルが出力される。この出力は加減算部８０２にてＨＰＦ８０１の出力に加算されることで振れ補正効果を向上させることができる。また、移動している被写体の画像が画面上に存在する場合であっても、図６にて被写体が指定されていない場合には、図７（Ａ）において、被写体（動体）の移動にかかわるベクトルは除去される。図６（Ａ）の枠範囲６０２以外のエリアにおいて動きベクトルが検出される検出ブロックの数の方が、枠範囲６０２における検出ブロック数よりも多い。このため、カメラ振れから振れ補正の振れ量分が除去された振れ補正揺れ残りの動きベクトルが検出され、振れ補正効果が向上する。
【００５１】
また、図５から図７にて説明した方法で移動している被写体が検出された場合、補正ベクトル検出部１１６は、被写体（動体）の移動量を含むベクトルとして動きベクトルを検出する。よって、被写体の移動を補正するように振れ補正を行うことができる。図６において、移動している被写体６０１が追尾被写体として設定されている場合、被写体の大きさとして検出される枠範囲６０２の大きさと位置に基づいて、重みづけ処理が実行される。つまり、図６（Ｂ）を用いて説明したように各検出ブロックに対する重みづけ処理が行われ、図７（Ｂ）に示すように度数分布処理が行われる。この場合に検出される動きベクトルは、被写体６０１の移動量を含む動きベクトルである。
【００５２】
以上のように検出された被写体の移動量を含む動きベクトルは、角速度相当への換算後に減算部８０７に入力され、追尾量分の角速度が減算された後、可変ゲイン部８０８に入力される。可変ゲイン部８０８は、入力に対して０から１の間で設定されたゲイン係数（Ｋと記す）を乗算する。可変ゲイン部８０８には、積分器８０３からの振れ補正目標値（制御周期の前回サンプリング値）が同時に入力され、振れ補正目標値に応じてＫ値が設定される。具体的には、所定の角度閾値１と角度閾値２が設定され、「角度閾値１＜角度閾値２」、および「角度閾値２＜４５度」の関係を満たすものとする。振れ補正目標値の絶対値が角度閾値１以内である場合、Ｋ値が１に設定され、振れ補正目標値の絶対値が角度閾値２以上である場合、Ｋ値が０に設定される。振れ補正目標値の絶対値が角度閾値１と角度閾値２との間である場合には、ゲイン係数値１から０の間を線形補間して得られるテーブル（または一次式）にしたがってＫ値が設定される。この例では２つのポイントを設定して作成されるテーブルを用いて、２点間での線形補間処理を行っているが、３ポイント以上の設定によりテーブルを作成することもできる。
【００５３】
振れ補正目標値が相対的に小さい場合には、補正レンズが振れ補正の可動端へ到達するまでに、まだ余裕があるので、補正ベクトルを角速度に加算して振れ補正目標値が算出される。一方、振れ補正目標値が相対的に大きく、補正レンズが振れ補正の可動端へ到達するまでの余裕がない場合に可変ゲイン部８０８はゲインを小さい値に制御し、補正ベクトルの値を制限する。補正レンズの可動端への到達によって振れ補正の制御不能となる状態を防ぐことができる。
【００５４】
以上のように、補正ベクトル検出部１１６からの被写体の移動量を含む動きベクトルと、追尾量算出部１１１からの追尾角度と、振れ補正目標値（制御周期の前回サンプリング値）とからＦＢ角速度が算出される。ＦＢ角速度は可変ゲイン部８０８から加減算部８０２に出力される。加減算部８０２は、ＦＢ角速度と、ＨＰＦ８０１を通した角速度と、角速度減算量算出部８０５からの角速度減算量とを取得し、補正用角速度を算出する。補正用角速度は積分処理後に、振れ補正の可動範囲でリミット処理が行われ、振れ補正角度が算出される。このようにすると、振れ補正の可動範囲内で振れ補正の制御と被写体の追尾制御を同時に行うことができる。
【００５５】
上記の例では振れ補正目標値に応じて、可変ゲイン部８０８のゲインを変更する方法を例示したが、被写体検出部１１０からの被写体の画像位置または画像位置の変化量に基づいてゲイン係数を設定することもできる。被写体位置が画面の中心付近である場合、追尾量算出部１１１での追尾制御は行われないので、ＦＢ角速度を用いて積極的に振れ補正制御が行われる。また、被写体位置が画面の中心から離れている場合、追尾量算出部１１１による追尾制御が行われる。そのとき、追尾制御により画角を移動させるベクトルが発生するが、戻す速度が速い場合には少なからずベクトルの検出ノイズが発生する可能性がある。その検出ノイズの影響でＦＢ角速度を用いた追尾制御において誤制御が発生することを防ぐために、被写体の画像位置またはその位置変化量に基づいて可変ゲイン部８０８のゲイン設定が行われる。具体的には、振れ補正角度算出部１０８は、被写体の画像位置が画面中心から離れている場合や当該画像位置に係る所定の変化量を検出した場合、可変ゲイン部８０８のゲインを相対的に小さく設定することで、追尾制御性の低下を抑制する。
【００５６】
図９を参照して、振れ補正制御および被写体追尾制御の処理例を説明する。図９のフローチャートに示す処理は、撮像装置１０１の主電源がオン操作された場合に開始し、ＣＰＵ１０５の制御下にて一定のサンプリング周期で実行される。
【００５７】
まず、Ｓ９０１において、ＣＰＵ１０５は防振ＳＷがＯＮ操作されたか否かを判断する。防振ＳＷは、ユーザが像ブレ補正の操作指示に使用する操作スイッチである。防振ＳＷがＯＦＦである場合、処理がＳ９１５に進み、ＣＰＵ１０５は、補正レンズ１１４のレンズ駆動量をゼロに設定する。そしてＳ９１６に移行する。また、防振ＳＷがＯＮである場合には処理がＳ９０２に進む。
【００５８】
Ｓ９０２にてＣＰＵ１０５は角速度計１０３の出力を取り込む。Ｓ９０３でＣＰＵ１０５は振れ補正が可能な状態であるか否かを判断する。具体的には、ＣＰＵ１０５は、カメラに電源が供給された時点から角速度計１０３の出力が安定する状態までの期間において、振れ補正が可能な状態でないと判断する。これにより、電源供給直後に角速度計１０３の出力値が不安定な状態で振れ補正が行われないようにすることができる。振れ補正が可能な状態でない場合にはＳ９１５に移行する。一方、ＣＰＵ１０５は、角速度計１０３の出力が安定した状態である場合、振れ補正が可能な状態であると判断し、Ｓ９０４に処理を進める。
【００５９】
Ｓ９０４でＣＰＵ１０５は、被写体の追尾ＳＷがＯＮ操作されたか否かを判断する。追尾ＳＷがＯＦＦである場合、Ｓ９１１に移行する。Ｓ９１１でＣＰＵ１０５は、追尾補正量をゼロに設定する。次のＳ９１２でＣＰＵ１０５は、動きベクトルをゼロに設定した後、Ｓ９１３に移行する。Ｓ９０４で追尾ＳＷがＯＮである場合には、Ｓ９０５に処理を進める。
【００６０】
Ｓ９０５にてＣＰＵ１０５は、追尾対象の有無について判断する。例えば、自動で検出された顔や人体が主被写体として選択され、または画像の色相や彩度等に基づいて画像内の特徴量から主被写体が検出される。撮像された画像のライブビユー表示を行っている表示デバイス（例えばＬＣＤ：液晶表示装置）の画面にタッチパネルを搭載した撮像装置では、ユーザがタッチ操作で指定したポイントから被写体を認識する処理が行われる。Ｓ９０５において、被写体追尾の対象がないと判断された場合、Ｓ９１１に移行し、被写体追尾の対象があると判断された場合、Ｓ９０６に処理を進める。
【００６１】
Ｓ９０６にて被写体検出部１１０は、被写体画像の中心位置と大きさを検出する。続いて、Ｓ９０７で追尾量算出部１１１は被写体検出部１１０から取得した被写体位置情報から追尾量を算出する。Ｓ９０８で動きベクトル検出部１１５は、検出ブロックの位置（図６（Ｂ）参照）における動きベクトルをそれぞれ算出する。次にＳ９０９で補正ベクトル検出部１１６は、各動きベクトルの画像内の配置位置と、Ｓ９０７で算出された被写体位置および大きさに基づき、図６（Ｂ）を用いて説明した方法で動きベクトルごとの重みづけ係数を算出する。
【００６２】
次にＳ９１０で補正ベクトル検出部１１６は、Ｓ９０８で算出された各ベクトルと、Ｓ９０９で算出された各ベクトルの重みづけ係数とから、図５乃至図７で説明した度数分布処理を行い、補正された動きベクトル（補正動きベクトル）を算出する。Ｓ９１３で振れ補正角度算出部１０８は、Ｓ９１０で算出された補正動きベクトルまたはＳ９１２で設定された動きベクトルと、Ｓ９０７またはＳ９１１にて算出または設定された追尾量と、Ｓ９０２で取得された角速度出力から振れ補正量を算出する。振れ補正角度の算出処理については、図８を用いて説明した通りである。
【００６３】
Ｓ９１４においてＣＰＵ１０５は、Ｓ９１３で算出された振れ補正量と、Ｓ９０７またはＳ９１１にて算出または設定された追尾補正量とを加算して、補正レンズ１１４のレンズ駆動量を算出する。Ｓ９１６にて駆動制御部１１３は、レンズ駆動量に基づき補正レンズ１１４を駆動する。これにより、振れ補正と被写体追尾が行われる。図９のサブルーチンが終了すると、次回のサンプリング周期の到来時点まで待ち状態となる。
【００６４】
本実施形態では、撮像された画像内の被写体画像の位置と大きさに応じて設定されたベクトル検出エリアに基づいて、被写体位置における動きベクトルが検出される。被写体位置に基づいて、被写体画像を画面内の特定の位置（例えば中央付近や、ユーザが指定した位置）に位置させるための追尾量が算出される。補正された動きベクトルと、角速度出力と、被写体位置に基づいて演算された追尾量とから算出される駆動制御量にしたがって補正レンズが駆動され、振れ補正および追尾制御が行われる。これにより、被写体検出の遅れが大きい場合や検出誤差が生じ得る場合、例えば被写体がゆっくり移動し、追尾制御がないとしたときに画面中心部から被写体画像が離れてしまうシーン等において、本実施形態の追尾制御が有効である。本実施形態によれば、画面内の特定の位置、例えば画面中央付近に被写体の画像を保持することが可能である。また、被写体の動きが大きく、急峻な被写体画像の位置変化により、被写体画像が画面中央部から離れたところに位置する可能性が高い場合においても、本実施形態の追尾制御が有効である。このような場合には直ちに画面中央部に被写体画像が位置するように追尾制御が実行されるので、追尾動作の性能を向上させることができる。
【００６５】
本実施形態では、振れ補正手段として補正レンズを用いて、光軸に垂直な面内で移動させる、いわゆる光学式防振制御への適用例を説明した。しかし、本発明は以下の構成を有する被写体追尾装置に適用することもできる。
（１）撮像素子を光軸に垂直な面内で移動させる構成。
（２）撮像素子が出力する各撮影フレームの切り出し位置を変更する画像処理によって電子式制御を行う構成。
（３）撮像素子と撮影レンズ群を含む鏡筒を回転駆動させる機構部を備える構成。
（４）撮像装置とは別に設けた駆動機構部（例えば、撮像装置のパンニング動作やチルティング動作を行う回転雲台等）を組み合わせた構成。
（５）上記（１）から（４）に示す複数の構成の組み合わせ。
なお、このことは後述する実施形態でも同じである。
【００６６】
［第２実施形態］
図１０を参照して、本発明の第２実施形態における動きベクトル検出例を説明する。以下では、本実施形態にて第１実施形態との相違点を主として説明し、第１実施形態の場合と同様の構成要素については既に使用した符号を用いることにより、それらの詳細な説明を省略する。
【００６７】
図１０（Ａ）は、撮影画面内に動体である被写体１００１が存在する場合の画像例を示す。破線の枠範囲１００２は、被写体検出部１１０にて被写体位置と被写体の大きさから求められる被写体エリアに相当する画像範囲を表している。図１０（Ｂ）は、動きベクトル検出部１１５における検出ブロックの配置例を示しており、検出ブロックが画面全体に均等に配置されている状態を表した模式図である。
【００６８】
図１０（Ｂ）では、第１実施形態にて説明した図６（Ｂ）に比べて検出ブロックの数が少ない。図６（Ｂ）のように所定数以上の検出ブロックが画面全体に亘って配置されている場合、回路構造やプログラム規模の増大、処理負荷の増大等が問題となる。多数の検出ブロックを画面全面に亘って配置することは困難であるため、検出ブロックの数を制限することになる。しかし、検出ブロックの数が少ない場合、図１０（Ｂ）のように検出ブロック同士の間隔が大きくなってしまう。そのため、図６および図７で説明したように被写体エリアに基づいて重みづけ処理を行い、被写体エリアでの動きベクトルを検出しても、実際に枠範囲１００２内で検出可能な検出ブロックの数は非常に少なくなる。このことは被写体画像の大きさが小さくなるほど顕著になる。検出ブロックの数が少ない場合、１個の検出ブロックで高い精度が必要となり、仮に間違ったベクトル検出が行われると、正確でない振れ補正制御につながる可能性がある。
【００６９】
そこで本実施形態では、被写体検出部１１０により検出される被写体位置と被写体の大きさに基づいて、ベクトル検出部１１５における検出ブロックの配置を変更する処理について説明する。検出ブロックの配置変更によって、被写体１００１の動き量を含んだ動きベクトルを精度良く検出することができる。図１１を参照して具体例を説明する。
【００７０】
図１１は、被写体位置と被写体の大きさに基づいて、動きベクトルにかかわる検出ブロックの配置を変更する処理例を示す。図１１（Ａ）は、ある時刻における、撮影待機中のライブビュー表示の１フレームの画像または動画撮影における１フレームの画像の一例を示す。主被写体１１０１は動体（自動車）であり、その進行方向を図１１の左方向とする。被写体エリア１１０２を破線の矩形枠で示す。図１１（Ｂ）は、図１１（Ａ）の時刻から時間が経過したときの撮影画像例を示す。被写体エリア１１０３を破線の矩形枠で示す。図１１（Ｃ）は、図１１（Ａ）と同時刻における動きベクトル検出部１１５の検出ブロック配置例を示す。図１１（Ｄ）は、図１１（Ｂ）と同時刻における動きベクトル検出部１１５の検出ブロック配置例を示す。
【００７１】
図１１（Ｃ）に示すように、ＣＰＵ１０５は検出された被写体位置と大きさに基づいて、被写体エリア１１０２にできるだけ検出ブロックが収まるように検出ブロック位置を移動させる。これにより、主被写体１１０１が存在する位置での検出ブロックの数を多くすることができる。検出可能なブロック数が多い分、被写体の移動を含めた動きベクトルを検出することができるので、精度のよい被写体追尾を行える。図１１（Ｄ）においても、検出された被写体位置と大きさに基づいて、被写体エリア１１０３が設定され、被写体エリア１１０３にできるだけ検出ブロックが収まるように検出ブロック位置が移動される。
【００７２】
但し、被写体検出精度によって、リアルタイムに動きベクトルの検出ブロックの配置を変更することには課題がある。被写体検出においては、検出処理の負荷等により、実時間に対して遅れを無くして検出することが難しいため、被写体検出結果には検出時間の遅れが必ず生じる。また、被写体位置の検出精度や被写体の大きさの検出精度を高くして検出することは難しく、多少の誤差が生じてしまう。動きベクトルに関しては、フレーム間の差分によりベクトル検出が行われるので、コントラストが高いシーンであれば、高精度で遅れの少ない検出を行えるという利点がある。このように被写体検出と動きベクトル検出には時間差があり、被写体の位置や大きさの検出に誤差がある。このため、画面上での主被写体１１０１の移動速度が大きい場合、被写体の位置に応じて検出ブロックの配置を変更すると、被写体ベクトルの誤検出が発生する可能性がある。この場合、被写体検出の遅れと精度にも関連して、間違った位置に検出ブロックが配置されてしまうことが懸念される。
そこで本実施形態では、被写体検出部１１０により検出される被写体の画像位置の変化量が小さい（被写体速度が小さい）場合にＣＰＵ１０５により、検出ブロックを配置する範囲を縮小する処理が行われる。この場合、被写体の検出位置と動きベクトルの検出ブロックの位置との差分が小さく、検出精度が高いと判断できるからである。一方、被写体の画像位置の変化量が大きい（被写体速度が大きい）場合にはＣＰＵ１０５により、検出ブロックを配置する範囲を大きく設定する処理が行われる。これにより、誤検出の発生を抑えることができる。
【００７３】
また、被写体の画像位置の変化量が大きい場合には、補正ベクトルの検出精度が低くなっていると判定され、図８の可変ゲイン部８０８のゲインが小さい値に設定される。その結果、ベクトルフィードバック制御による被写体の誤追尾の発生を抑えることができる。一方、被写体の画像位置の変化量が小さい場合には、補正ベクトルの検出精度が高いと判定され、可変ゲイン部８０８のゲインが大きい値に設定される。その結果、ベクトルフィードバック制御による被写体追尾性能を向上させることができる。
【００７４】
本実施形態では、撮像された画像内の被写体の画像位置と大きさとから、動きベクトルの検出ブロックの配置が変更される。被写体の画像位置の付近に検出ブロックが集まるように検出ブロックが配置される。被写体の画像位置における動きベクトルが補正ベクトルとして検出し易くなるように設定され、補正ベクトルと角速度出力とに基づいて振れ補正および追尾制御が行われる。これにより、被写体の自動追尾性能が向上する。
【００７５】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７６】
１０１  撮像装置
１０２  光軸
１０３  角速度計
１０５  ＣＰＵ
１０６  撮像素子
１１４  振れ補正レンズ
【図１】
0006727791.tif 000002
【図２】
0006727791.tif 000003
【図３】
0006727791.tif 000004
【図４】
0006727791.tif 000005
【図５】
0006727791.tif 000006
【図６】
0006727791.tif 000007
【図７】
0006727791.tif 000008
【図８】
0006727791.tif 000009
【図９】
0006727791.tif 000010
【図１０】
0006727791.tif 000011
【図１１】
0006727791.tif 000012