(57)【特許請求の範囲】
【請求項１】
振れ検出信号に基づいて、像ブレを補正する補正手段と、
撮影画面内の所定の検出領域から動きベクトルを検出する検出手段と、
前記検出された動きベクトルと、前記振れ検出信号とに基づいて、被写体が前記検出領域に収まっているかを判定し、前記被写体が前記検出領域に収まっていない場合に、前記被写体が前記検出領域に収まるように前記補正手段を制御する制御手段とを備える
ことを特徴とする像ブレ補正装置。
【請求項２】
前記制御手段は、
前記検出された動きベクトルと、前記振れ検出信号とに基づいて、前記検出された動きベクトルから前記被写体のベクトルを選択し、
前記被写体のベクトルの数に基づいて、前記被写体が前記検出領域に収まっているかを判定する
ことを特徴とする請求項１に記載の像ブレ補正装置。
【請求項３】
前記制御手段は、
前記被写体のベクトルの数が閾値未満である場合に、前記被写体が前記検出領域に収まっていないと判定する
ことを特徴とする請求項２に記載の像ブレ補正装置。
【請求項４】
前記制御手段は、
前記検出された動きベクトルと前記振れ検出信号とに基づいて得られるベクトルの度数分布を用いて、前記振れ検出信号の出力値に基づき背景のベクトルを決定し、前記背景のベクトル以外のベクトルを被写体のベクトルとして決定する
ことを特徴とする請求項２または請求項３に記載の像ブレ補正装置。
【請求項５】
前記制御手段は、前記検出領域の領域のうち、焦点検出領域の周辺の領域から検出される動きベクトルに対して重み付けを行い、前記重み付けの結果を用いて前記被写体のベクトルを決定する
ことを特徴とする請求項２乃至４のいずれか１項に記載の像ブレ補正装置。
【請求項６】
前記制御手段は、
前記被写体が前記検出領域に収まっていないと判定した場合に、前記補正手段の現在の位置が閾値未満であるかを判定し、
前記補正手段の現在の位置が閾値未満である場合に、前記被写体が前記検出領域に収まるように前記補正手段を駆動する
ことを特徴とする請求項１乃至５のいずれか１項に記載の像ブレ補正装置。
【請求項７】
前記制御手段は、
前記補正手段の位置が閾値以上である場合に、前記被写体が前記検出領域に収まるように前記検出領域を移動する
ことを特徴とする請求項６に記載の像ブレ補正装置。
【請求項８】
前記制御手段は、
前記補正手段の位置が閾値以上である場合に、前記検出領域の中心が焦点検出領域に配置されるように前記検出領域を移動する
ことを特徴とする請求項７に記載の像ブレ補正装置。
【請求項９】
前記検出手段は、前記検出領域に対応する複数の検出ブロックの動きベクトルを検出し、
前記制御手段は、前記補正手段の位置が閾値以上である場合に、前記複数の検出ブロックを移動するともに、前記被写体の種類に応じて前記検出ブロックの配置数とサイズを変更する
ことを特徴とする請求項７または請求項８に記載の像ブレ補正装置。
【請求項１０】
請求項１乃至９のいずれか１項に記載の像ブレ補正装置を有する撮像装置。
【請求項１１】
振れ検出信号に基づいて、像ブレを補正する補正手段を備える像ブレ補正装置の制御方法であって、
撮影画面内の所定の検出領域から動きベクトルを検出する検出工程と、
前記検出された動きベクトルと、前記振れ検出信号とに基づいて、被写体が前記検出領域に収まっているかを判定し、前記被写体が前記検出領域に収まっていない場合に、前記被写体が前記検出領域に収まるように前記補正手段を駆動する制御工程とを有する
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、像ブレ補正装置、撮像装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
手振れにより撮影画像に生じるブレ（像ブレ）を、補正レンズなどの光学式補正手段を駆動することによって補正する像ブレ補正装置が提案されている。また、カメラの撮影方法の一つとして、流し撮りがある。流し撮りは、例えば、水平方向に移動している主被写体の動きにカメラを追従させながら撮影する手法である。ユーザは、流し撮り時に、被写体の躍動感を出すために、シャッター速度を遅くする。遅いシャッター速度でカメラを振りながら被写体を上手く追従して撮影するためには、経験が必要であり、特に初心者にとって流し撮りは難しい撮影手法である。
【０００３】
特許文献１は、被写体のベクトルを検出し、検出した動きベクトルに基づいて補正レンズを駆動させることで、流し撮りをサポートするカメラ装置を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１１０７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
動きベクトルの検出方法として、相関演算に基づく相関法やブロックマッチング法等が知られている。例えば、ブロックマッチング法では、入力された画像信号を複数の適当な大きさの検出ブロック（例えば８画素×８ライン）に分割する。そして、検出ブロック単位で、前のフレームにおける一定範囲の画素との差を計算し、この差の絶対値の和が最小となる前のフレームの検出ブロックを探索する。そして、画面間の相対的なずれをその検出ブロックの動きベクトルとして検出する。
【０００６】
複数の検出ブロックに対応する動きベクトルの検出領域の配置については、用途に応じて適切な配置がある。例えば、画像切り出しによる電子式の手振れ補正を行う場合では、画面全体の振れを検出したほうが良いので、検出ブロックを画面全体に均等に配置したほうが良い。一方、流し撮りで比較的大きな角速度（例えば４０ｄｐｓ）でカメラを振りながら撮影する場合を想定する。この場合には、検出ブロックの検出レンジを広くとるため、検出ブロックのサイズを小さくして画面中心付近に配置したほうが好ましい。しかし、検出ブロックを画面中心付近に配置すると、被写体が動きベクトルの検出領域から外れた位置にある場合に、被写体のベクトルを検出することができない。
【０００７】
本発明は、被写体が動きベクトルの検出領域内に収まっていない場合に、被写体を動きベクトルの検出領域内へ収めて被写体のベクトルを検出することができる像ブレ補正装置の提供を目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態の像ブレ補正装置は、振れ検出信号に基づいて、像ブレを補正する補正手段と、撮影画面内の所定の検出領域から動きベクトルを検出する検出手段と、前記検出された動きベクトルと、前記振れ検出信号とに基づいて、被写体が前記検出領域に収まっているかを判定し、前記被写体が前記検出領域に収まっていない場合に、前記被写体が前記検出領域に収まるように前記補正手段を制御する制御手段とを備える。
【発明の効果】
【０００９】
本発明の像ブレ補正装置によれば、被写体が動きベクトルの検出領域内に収まっていない場合に、被写体を動きベクトルの検出領域内へ収めて被写体のベクトルを検出することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の撮像装置の構成を示す図である。
【図２】被写体ベクトル選択部の構成例を説明する図である。
【図３】１フレーム毎に算出されるベクトルの度数分布を示す図である。
【図４】検出ブロックの配置の例について説明する図である。
【図５】デジタルカメラによる動きベクトルの検出結果に応じた動作処理を説明するフローチャートである。
【図６】検出ブロックの移動について説明する図である。
【発明を実施するための形態】
【００１１】
図１は、本実施形態の撮像装置の構成を示す図である。
図１に示す撮像装置は、デジタルカメラである。以下の説明では、画像の横方向または縦方向のいずれか一方のブレを補正する制御に関して説明し、他方のブレを補正する制御については、説明を省略する。なお、本発明は、監視カメラ、Ｗｅｂカメラ、携帯電話などの撮影装置にも適用可能である。
【００１２】
デジタルカメラ１００は、マイクロコンピュータ（μＣＯＭ）１０１乃至フォーカス情報入力部１１９を備える。μＣＯＭ１０１は、デジタルカメラ１００全体を制御する。μＣＯＭ１０１は、ＨＰＦ１０３乃至乗算部１１７を備える。角速度検出部１０２は、撮像装置１００に加わる振れを角速度信号（振れ検出信号）として検出する。図１に示す例では、角速度検出部１０２は、角速度センサである。角速度検出部１０２が出力する信号は、角速度データとしてμＣＯＭ１０１内部のハイパスフィルタ（以下、ＨＰＦ）１０３に供給される。
【００１３】
ＨＰＦ１０３は、任意の周波数帯域でその特性を変更し得る機能を有しており、角速度データに含まれる低周波数成分を遮断してから高周波数帯域の信号を出力する。なお、ＨＰＦ１０３は、角速度検出部１０２の出力からフィルタ（ＬＰＦ）を通過させた信号を減算する構成にしても良い。このフィルタは、角速度検出部１０２の出力に対して高周波数帯域の信号を遮断する。
【００１４】
焦点距離演算部１０４は、ズーム情報入力部１１８が入力するズーム情報に基づいて、不図示の撮像光学系の焦点距離を算出し、振れ補正系を駆動するのに最適な値となるようにＨＰＦ１０３の出力を補正する。振れ補正系は、例えば、シフトレンズである。μＣＯＭ１０１は、振れ検出信号に基づいて振れ補正系を駆動することによって、撮影画像のブレ（像ブレ）を補正する。振れ補正系は、光軸と異なる方向（この例では、垂直な方向）に移動されることにより光軸を偏光する。これにより、装置の振れにより生じる撮像面上の被写体の移動が補正された像が、撮像素子に結像される。本実施形態では、振れ補正系は、被写体を追尾しながら撮影する、流し撮りのサポートにも用いられる。
【００１５】
積分器１０５は、任意の周波数帯域でその特性を変更し得る機能を有しており、焦点距離演算部１０４からの出力を積分し、振れ補正系の駆動量を算出する。加算器１０６は、振れ補正系の駆動量と後述する被写体の移動量とを加算する。振れ補正系位置検出部１１２は、振れ補正系の位置を検出する。振れ補正系位置検出部１１２は、磁石と、磁石に対向する位置に供えられたホールセンサとを有する。
【００１６】
Ａ／Ｄ変換器１１３は、振れ補正系位置検出部１１２の出力をＡ（アナログ）／Ｄ（デジタル）変換し、デジタル化したデータを出力する。減算器１０７は、加算器１０６の出力からＡ／Ｄ変換器１１３の出力を減算して、制御フィルタ１０８へ供給する。
【００１７】
制御フィルタ１０８は、入力データを所定のゲインで増幅する増幅器、及び位相補償フィルタで構成されている。減算器１０７から供給された偏差データは、制御フィルタ１０８において増幅器及び位相補償フィルタによる信号処理が行われた後、パルス幅変調部１０９に出力される。
【００１８】
パルス幅変調部１０９は、制御フィルタ１０８を通過して供給されたデータを、パルス波のデューティー比を変化させる波形（即ちＰＷＭ波形）に変調して、モータ駆動部１１０に供給する。モータ１１１は、振れ補正系の駆動用のボイスコイル型モータであり、モータ駆動部１１０によって駆動される。これにより、振れ補正系が光軸と垂直な方向に移動される。
【００１９】
動きベクトル検出部１１４は、不図示の信号処理部で生成された現在の映像信号に含まれる輝度信号と、１フレーム前の映像信号に含まれる輝度信号とに基づいて、ブロックマッチング法を用いて、画像の動きベクトルを検出する。具体的には、動きベクトル検出部１１４は、映像信号を複数の適当な大きさの検出ブロックに分割し、ブロック単位で前のフレームの一定範囲の画素との差を計算し、この差の絶対値の和が最小となる前のフレームの検出ブロックを探索する。複数の検出ブロックに対応する範囲が動きベクトルの検出領域となる。動きベクトル検出部１１４は、画面間の相対的なずれを、その検出ブロックの動きベクトルとして検出する。すなわち、動きベクトル検出部１１４は、撮影画像に基づいて、撮影画面内の所定の検出領域から動きベクトルを検出する検出手段として機能する。動きベクトル検出部１１４によって検出された動きベクトルデータは、被写体ベクトル選択部１１５に供給される。被写体ベクトル選択部１１５は、被写体のベクトルを選択（決定）する。積分器１１６は、被写体のベクトルを積分し、角度情報とする。乗算部１１７は、積分器１１６の出力にゲインＫを乗算し、加算器１０６に供給する。
【００２０】
図２は、被写体ベクトル選択部の構成例を説明する図である。
被写体ベクトル選択部１１５は、度数分布処理部２０１、被写体ベクトル重み付け処理部２０２、被写体ベクトル各速度換算部２０３とを備える。度数分布処理部２０１は、動きベクトル検出部１１４の出力である撮影画面内のベクトル情報と、角速度検出部１０２の出力である角速度情報とに基づいて、撮影画面内で検出された全ベクトルのうち、被写体のベクトルを選択する。被写体ベクトル角速度換算部２０３は、選択された被写体のベクトルを、ピクセル単位から角速度単位へ換算する。積分器１１６は、角速度単位に換算されたベクトルを積分し角度情報とし、乗算部１１７に入力する。以下に、図３を用いて度数分布処理部２０１の動作処理について説明する。
【００２１】
図３は、１フレーム毎に算出されるベクトルの度数分布を示す図である。
動きベクトル検出部１１４が検出した動きベクトル自体では、どのベクトルが被写体、背景を示すかを区別できない。度数分布処理部２０１は、角速度検出部１０２の出力値を用いて、被写体のベクトルを選択する。例えば、カメラを三脚に固定して移動する被写体を撮影する場合、角速度検出部１０２の出力値は、約０ｄｐｓ相当になる。また、画面内において、動体は被写体のみであり、背景部分は、角速度検出部１０２の出力値とほぼ同等の値になる。したがって、度数分布処理部２０１は、一定の周期毎に算出される角速度検出部１０２の出力値を、度数分布においてベクトルと比較できるようにピクセル単位に換算する。
【００２２】
度数分布処理部２０１は、動きベクトル検出部１１４の出力と、角速度検出部１０２の出力値とを度数分布で比較する。これにより、度数分布処理部２０１は、被写体と背景とを区別する。図３に示す度数分布に示す例では、度数分布処理部２０１は、角速度検出部１０２の出力値３０３付近のベクトル群３０２を、背景ベクトル群とする。この例では、カメラを一定方向に振っていると想定すると、度数分布処理部２０１は、出力値３０３から離れたベクトル群３０１を、被写体ベクトル群として抽出する。すなわち、度数分布処理部２０１は、動きベクトルと振れ検出信号とに基づいて得られるベクトルの度数分布に基づき、振れ検出信号の出力値の近傍のベクトルを背景のベクトルとし、背景のベクトル以外のベクトルを被写体のベクトルとして決定する。
【００２３】
被写体ベクトル重み付け処理部２０２は、度数分布処理部２０１で抽出された被写体ベクトル群に対して重み付けを行う。被写体ベクトル重み付け処理部２０２は、フォーカス情報入力部１２０から入力されるフォーカス情報を用いて、被写体ベクトル群に対して重み付けを行う。フォーカス情報は、画面内のＡＦ枠の位置情報つまり焦点検出領域の位置情報を含んでいる。
【００２４】
撮影者は、ＡＦ枠に被写体の止めたい部分を合せる。したがって、被写体ベクトル重み付け処理部２０２は、ＡＦ枠周辺の検出ブロックから検出されるベクトルに対して重み付けを行うことで信頼度を向上させる。被写体ベクトル重み付け処理部２０２は、重み付けの結果を用いて、被写体ベクトル群から最終的に出力する被写体のベクトルを決定する。被写体ベクトル重み付け処理部２０２が出力した被写体のベクトルは、被写体ベクトル角速度換算２０３でピクセル単位から角速度単位へ換算される。積分器１１６が、換算されたベクトルを積分し、角度情報として乗算部１１７に入力する。乗算部１１７が、積分器１１６の出力にゲインＫを乗算して、加算器１０６に供給する。
【００２５】
図４は、検出ブロックの配置の例について説明する図である。
本実施例では、検出ブロックの配置を手振れ用と流し撮り用とで変えている。手振れによる像ブレの補正用に動きベクトルを使用する場合は、画面全体の振れを検出したいので、図４（Ａ）のように、検出ブロックを画面全体に均等に配置する。一方、流し撮り時に振れ補正系を駆動して被写体が画面内の所定の位置に来るように制御することで、流し撮りをサポートする場合には、画面全体の動きベクトルではなく被写体部分のみのベクトルが必要である。したがって、この場合には、図４（Ｂ）に示すように、画面中央付近に検出ブロックを密集させて配置する。
【００２６】
流し撮りでは、撮影者が大きくパンニングをしており（例えば４０ｄｐｓ相当）、被写体の移動量とカメラの振り量の差分を被写体の動き量としてベクトル検出するので、像ブレ補正時よりも大きな動き量を検出する必要がある。したがって、検出ブロックのサイズを小さくして、動きベクトル検出部の検出レンジを広くできるようにする。さらに、検出ブロックは、被写体の止めたい個所に集中して配置する方が好ましい。しかし、画面中心付近に集中して検出ブロックを配置する場合、例えば被写体が画面端にいる場合にレリーズボタンを押下すると、動きベクトルの検出領域４０２に収まっていないので被写体のベクトルを検出できない。本実施例の像ブレ補正装置は、被写体のベクトルの検出結果に応じて、被写体が動きベクトルの検出領域に収まるように振れ補正系を駆動制御する。
【００２７】
図５は、デジタルカメラによる動きベクトルの検出結果に応じた動作処理を説明するフローチャートである。
本実施形態において、被写体ベクトル選択部１１５は、被写体のベクトルの数が閾値未満である場合に、被写体が検出領域に収まっていないと判定し、この被写体が検出領域に収まるように振れ補正系を駆動する。まず、ステップＳ５０１において、μＣＯＭ１０１が、防振ＳＷがオンであるかを判断する。防振ＳＷのオンは、カメラの手振れ補正設定が有効になっていることを示す。防振ＳＷがオンでない場合は、処理を終了する。防振ＳＷがオンである場合は、処理がステップＳ５０２に進む。
【００２８】
ステップＳ５０２において、動きベクトル検出部１１４が、割込み周期毎に撮影画面全体の動きベクトルを検出する。続いて、角速度検出部１０２が、割込み周期毎にカメラに加わる角度振れを検出する。
【００２９】
次に、被写体ベクトル選択部１１５が、割込み周期毎に、ステップＳ５０２で検出された動きベクトルとステップＳ５０２で検出された角度振れの値に基づいて、ベクトルの度数分布を作成する。そして、被写体ベクトル選択部１１５が、ベクトルの度数分布に基づいて、被写体のベクトルを抽出する。
【００３０】
次に、ステップＳ５０５において、被写体ベクトル選択部１１５が、抽出した被写体のベクトルの数が、予め設定された閾値１以上であるかを判断する。被写体のベクトルの数が閾値１以上であることは、被写体が動きベクトルの検出領域に所定の割合以上（例えば９０％以上）入っていることを示す。したがって、被写体のベクトルの数が閾値１以上である場合は、被写体ベクトル選択部１１５は、被写体が検出領域に収まっており、検出ブロックに対して被写体のベクトルが十分検出できていると判断し、ベクトル検出のために振れ補正系を駆動させない。被写体のベクトルの数が閾値１未満である場合は、処理がステップＳ５０６に進む。
【００３１】
ステップＳ５０６において、被写体ベクトル選択部１１５が、被写体のベクトルの数が、予め設定された閾値２以上であるかを判断する。閾値２は、閾値１より小さい数に設定されている。被写体のベクトルの数が閾値２以上であることは、被写体が動きベクトルの検出領域に所定の割合以上（例えば１０％以上）入っていることを示す。被写体のベクトルの数が閾値２以上である場合は、処理がステップＳ５０８に進む。被写体のベクトルの数が閾値２未満である場合は、被写体が、動きベクトルの検出領域に収まっていない可能性がある。したがって、この場合は、処理がステップＳ５０７に進む。
【００３２】
本実施形態において、被写体が動きベクトルの検出領域に収まっていない場合には、μＣＯＭ１０１は、被写体が動きベクトルの検出領域に収まるように振れ補正系を駆動する。しかし、振れ補正系が光学中心付近から離れて駆動端付近にいる場合は、動きベクトル検出のための駆動量を確保できない場合がある。したがって、ステップＳ５０７において、μＣＯＭ１０１が、振れ補正系の現在の位置を検出する。
【００３３】
ステップＳ５０８において、被写体ベクトル選択部１１５が、被写体のベクトルの数が予め設定された閾値３以上であり、かつ被写体のベクトルのエラー判定がないかを判断する。閾値３は、閾値２より大きく閾値１より小さい値に設定される。被写体のベクトルの数が閾値３以上であることは、被写体が検出ブロックに所定の割合以上（例えば５０％以上）入っていることを示す。被写体のベクトルの数が閾値３以上であり、かつ被写体のベクトルのエラー判定がない場合は、振れ補正系を駆動させずに処理を終了する。被写体のベクトルの数が閾値３未満である場合や、被写体のベクトルのエラー判定がある場合は、処理がステップＳ５０７に進む。
【００３４】
ステップＳ５０９において、μＣＯＭ１０１が、ステップＳ５０７で検出した振れ補正系の現在の位置が予め設定した閾値未満であるかを判断する。振れ補正系の現在の位置が予め設定した閾値未満である場合、μＣＯＭ１０１は、振れ補正系を駆動しても駆動端まで余裕があると判断する。そして、処理がステップＳ５１０に進む。振れ補正系の現在の位置が予め設定した閾値以上である場合、μＣＯＭ１０１は、振れ補正系を駆動すると駆動端まで余裕がないと判断する。そして、この場合には、振れ補正系を駆動させる処理以外の処理で被写体のベクトルを検出できるようにする必要がある。したがって、処理がステップＳ５１１に進む。
【００３５】
ステップＳ５１０において、μＣＯＭ１０１が、被写体のベクトル数が閾値２以上となるような振れ補正系の駆動量を算出する。μＣＯＭ１０１は、振れ補正系の位置に応じてゲインＫ（図１）を可変させる。例えば、光学中心位置付近にいる場合は、駆動端まで余裕があるので、μＣＯＭ１０１は、１倍程度のゲインＫを設定する。そして、ステップＳ５１２において、μＣＯＭ１０１が、ステップＳ５１０で算出した駆動量に基づいて振れ補正系を駆動する。μＣＯＭ１０１は、過去のフレーム毎に検出しておいた動きベクトルの情報から被写体の移動している向きを決定し、決定した向きの逆方向へ振れ補正系を駆動させる。これにより、被写体を動きベクトルの検出領域の中心付近に収め、被写体のベクトル数を検出することができるようになる。
【００３６】
ステップＳ５１１において、μＣＯＭ１０１は、被写体が動きベクトルの検出領域に収まるように検出領域を移動する。具体的には、μＣＯＭ１０１は、検出ブロックを１フレーム毎に移動させることによって、被写体を動きベクトルの検出領域に収める。以下に、検出ブロックの移動について説明する。
【００３７】
図６は、検出ブロックの移動について説明する図である。
図６（Ａ）は、検出ブロックの移動の一例を示す。図６（Ａ）に示す例では、μＣＯＭ１０１は、検出ブロック６０１を有する動きベクトルのテンプレートを画面内で１フレーム毎に平行移動させている。すなわち、μＣＯＭ１０１は、ＡＦ枠６０２の位置に動きベクトルの検出領域の中心が配置されるように検出領域を移動させる。
【００３８】
図６（Ｂ）は、検出ブロックの移動の他の例を示す。図６（Ｂ）に示す例では、μＣＯＭ１０１は、被写体認識情報を用いて、被写体の種類に応じて検出ブロックの配置数とサイズを変更した上で、変更後の検出ブロック６０３を、被写体が動きベクトルの検出領域に入るように移動する。例えば、人物の全身を画面内に収めて流し撮りする場合は、μＣＯＭ１０１は、検出ブロックのサイズを縦長とする。
【００３９】
以上説明したように、本実施例の像ブレ補正装置によれば、被写体が動きベクトルの検出領域に入らず被写体のベクトルが検出できない場合でも、振れ補正系を駆動して被写体を動きベクトルの検出領域内へ収めることで被写体のベクトルを検出することができる。
【符号の説明】
【００４０】
１０１  μＣＯＭ
１１５  被写体ベクトル選択部
【図１】
0006659132.tif 000002
【図２】
0006659132.tif 000003
【図３】
0006659132.tif 000004
【図４】
0006659132.tif 000005
【図５】
0006659132.tif 000006
【図６】
0006659132.tif 000007