(57)【要約】【課題】撮像画像における任意領域の被写体ブレをより精度良く抑制可能な撮像装置を提供する。【解決手段】撮像装置１００は角速度センサ１０５を備え、流し撮り時に被写体の画像ブレを抑制する像ブレ補正を行う。一次記憶部１０４は、角速度センサ１０５による角速度検出情報と、撮像光学系１０１の焦点距離と、取得された複数の画像から検出される動きベクトルを、所定のフレーム数に亘って記憶する。ＣＰＵ１０３は、直近の動きベクトルの検出結果から、指定枠内で被写体の動きベクトルが検出された領域を特定する。ＣＰＵ１０３は検出された動きベクトルと同じ動きベクトルをもつ領域を特定し、同じ被写体領域を含む領域から検出されている過去に検出された動きベクトルを取得する。ＣＰＵ１０３は取得された動きベクトル、角速度検出情報、焦点距離により被写体角速度を算出し、被写体角速度の推移に基づいて露光時の被写体角速度を決定する。【選択図】図３
2018180372.tif 000002
【特許請求の範囲】
【請求項１】
撮像光学系を通して被写体を撮像する撮像装置であって、
撮像素子により撮像される複数の画像から算出される動きベクトルを取得する取得手段と、
取得された前記動きベクトルを記憶する記憶手段と、
撮像された第１の画像にて被写体の動きベクトルが検出されている検出領域を特定し、前記第１の画像よりも過去に取得された第２の画像にて前記被写体に対応する領域で検出されている前記動きベクトルを前記記憶手段から取得し、取得された複数の前記動きベクトルに基づいて画像内の被写体領域の像ブレを抑制する制御を行う制御手段と、を備える
ことを特徴とする撮像装置。
【請求項２】
画像のブレを補正する像ブレ補正手段を有し、
前記制御手段は、検出手段により検出される振れの角速度の検出信号と前記撮像光学系の焦点距離に関する情報と複数の前記動きベクトルとに基づいて算出した前記被写体の角速度と、前記検出信号が示す角速度との差分を算出して前記像ブレ補正手段を制御する
ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記制御手段は、設定された枠内で検出される被写体領域の画像のブレを抑制する制御を行う
ことを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記枠は、オートフォーカス用の枠、または操作手段により指定される枠である
ことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記制御手段は、前記検出信号が示す角速度、および前記焦点距離を用いて前記被写体領域の動きベクトルを特定する
ことを特徴とする請求項３に記載の撮像装置。
【請求項６】
前記制御手段は、前記動きベクトルの大きさが閾値より小さい場合に、当該動きベクトルを前記被写体領域の動きベクトルとして特定する
ことを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記制御手段は、撮像された複数の画像間における撮像面上の移動量を閾値と比較し、当該移動量が閾値以上離れている動きベクトルを前記被写体領域の動きベクトルとして特定する
ことを特徴とする請求項５に記載の撮像装置。
【請求項８】
前記制御手段は、前記第２の画像にて第１の被写体領域で前記動きベクトルが検出されていない場合、第３の画像にて第２の被写体領域を特定し、前記第２の画像にて前記第２の被写体領域を含む領域で検出された前記動きベクトルを、前記記憶手段から取得する
ことを特徴とする請求項３に記載の撮像装置。
【請求項９】
前記制御手段は、前記第２の画像にて前記第２の被写体領域を含む領域で検出されている前記動きベクトルとして、前記第１の画像にて前記検出領域から取得される前記被写体領域の動きベクトルとの差分が閾値より小さい動きベクトルを、前記記憶手段から取得する
ことを特徴とする請求項８に記載の撮像装置。
【請求項１０】
前記制御手段は、前記枠の中央位置により近い前記検出領域を特定する
ことを特徴とする請求項３または請求項４に記載の撮像装置。
【請求項１１】
前記第１の画像は最新のフレームの画像であり、
前記制御手段は、前記第１の画像内で設定された枠内に含まれる前記検出領域を特定する
ことを特徴とする請求項１乃至１０のいずれか１項に記載の撮像装置。
【請求項１２】
前記制御手段は、前記第１の画像にて特定された前記検出領域と同じ位置である、過去のフレームでの検出領域にて検出された前記動きベクトルを、前記記憶手段から取得する
ことを特徴とする請求項１１に記載の撮像装置。
【請求項１３】
前記制御手段は、前記第１の画像内で設定された枠内に複数の前記検出領域が含まれる場合、前記複数の検出領域のうちで中央位置により近い検出領域を特定する
ことを特徴とする請求項１２に記載の撮像装置。
【請求項１４】
前記制御手段は、前記第１の画像内で設定された枠内に第１および第２の検出領域が含まれる場合、前記過去のフレームにて、前記第１の検出領域に対応する領域で取得される前記動きベクトルの数が、前記第２の検出領域に対応する領域で取得される動きベクトルの数より多いときに前記第１の検出領域を特定する
ことを特徴とする請求項１２に記載の撮像装置。
【請求項１５】
前記制御手段は、前記第１の画像内で設定された枠内に第１および第２の検出領域が含まれる場合、前記過去のフレームにて前記第２の検出領域に対応する領域よりも前記第１の検出領域に対応する領域にて、前記最新のフレームにより近いフレームで前記動きベクトルが取得されるときに前記第１の検出領域を特定する
ことを特徴とする請求項１２に記載の撮像装置。
【請求項１６】
前記制御手段は、取得された複数の画像に基づいて算出された前記被写体の角速度から露光時の前記被写体の角速度を決定する
ことを特徴とする請求項２に記載の撮像装置。
【請求項１７】
流し撮りを支援するモードを設定する設定手段を備え、
前記制御手段は、前記設定手段により前記モードが設定された場合、前記撮像光学系を構成する補正レンズ、または前記撮像素子の移動を制御することにより、画像内の被写体領域の像ブレを抑制する制御を行う
ことを特徴とする請求項１乃至１６のいずれか１項に記載の撮像装置。
【請求項１８】
撮像光学系を通して被写体を撮像する撮像装置にて実行される制御方法であって、
撮像素子により撮像される複数の画像から算出される動きベクトルを取得する工程と、
取得された前記動きベクトルを記憶手段に記憶する工程と、
撮像された第１の画像にて被写体の動きベクトルが検出されている検出領域を特定し、前記第１の画像よりも過去に取得された第２の画像にて前記被写体に対応する領域で検出されている前記動きベクトルを前記記憶手段から取得し、取得された複数の前記動きベクトルに基づいて画像内の被写体領域の像ブレを抑制する制御を行う制御工程と、を有する
ことを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体の画像ブレを抑制可能な撮像装置および制御方法に関する。
【背景技術】
【０００２】
流し撮りは、動体である被写体を撮影するときに、被写体を追いながら通常よりも遅いシャッタ速度で撮影する方法であり、背景が流れ、被写体が静止している画像が得られる。流し撮りにより、スピード感あふれる写真を撮影できるが、長秒撮影が行われるので、露光期間中に被写体の移動速度とカメラを移動する速度とを合わせることが難しく、熟練を要する撮影技術の一つである。
【０００３】
特許文献１では、被写体の角速度とカメラ内の角速度センサの出力との差分量にしたがってシフトレンズを駆動することで、流し撮りの対象である被写体の画像ブレ（被写体ブレ）を補正する撮像装置が開示されている。特許文献２では、被写体の移動速度（角速度）の時系列変化をもとに被写体の加速度を算出し、露光時における被写体の移動速度を予測して補正する撮像装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１７８４８号公報
【特許文献２】特開２００９−２６７８３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１および特許文献２に開示された撮像装置では、撮像画像内の被写体領域ごとに角速度が異なる被写体を撮影する場合、ユーザが意図した被写体領域から継続的に被写体の角速度を算出することが難しい。このような被写体は、例えば、カメラに対して斜めに向かってくる奥行きのある被写体等である。撮像される各フレーム画像において異なる画像領域から算出される被写体領域の角速度を用いたのでは、露光時における被写体の移動速度を精度良く予測して、撮像画像における任意領域の被写体ブレを抑制することは困難である。
本発明は、撮像画像における任意領域の被写体ブレをより精度良く抑制可能な撮像装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態の撮像装置は、撮像光学系を通して被写体を撮像する撮像装置であって、撮像素子により撮像される複数の画像から算出される動きベクトルを取得する取得手段と、取得された前記動きベクトルを記憶する記憶手段と、撮像された第１の画像にて被写体の動きベクトルが検出されている検出領域を特定し、前記第１の画像よりも過去に取得された第２の画像にて前記被写体に対応する領域で検出されている前記動きベクトルを前記記憶手段から取得し、取得された複数の前記動きベクトルに基づいて画像内の被写体領域の像ブレを抑制する制御を行う制御手段と、を備える。
【発明の効果】
【０００７】
本発明の撮像装置によれば、撮像画像における任意領域の被写体ブレをより精度良く抑制可能な撮像装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態の撮像装置を示すブロック図である。
【図２】本発明の実施形態における流し撮りアシストのフローチャートである。
【図３】第１実施形態における被写体角速度算出を説明するフローチャートである。
【図４】図３に続く処理を説明するフローチャートである。
【図５】第１実施形態における被写体角速度算出の例を示す説明図である。
【図６】第１実施形態における被写体角速度算出の別例を示す説明図である。
【図７】第２実施形態における被写体角速度算出のフローチャートである。
【図８】第２実施形態における被写体角速度算出の説明図である。
【発明を実施するための形態】
【０００９】
以下に、本発明の好ましい実施形態を、添付図面に基づいて詳細に説明する。各実施形態では、流し撮りを支援する機能（以下、流し撮りアシストという）を有する撮像装置を説明する。流し撮りアシストの設定が行われたモードを、「流し撮りアシストモード」という。
【００１０】
［第１実施形態］
図１は、本実施形態の撮像装置の基本構成を示すブロック図である。撮像装置１００は、デジタルカメラ、デジタルビデオカメラ、または、撮像機能を有する、携帯電話やコンピュータ等の電子機器である。
【００１１】
撮像光学系１０１は、フォーカスレンズ、ズームレンズ、シフトレンズ等のレンズ群、およびシャッタや絞り等の光学部材を備える。撮像光学系１０１は、ＣＰＵ（中央演算処理装置）１０３により制御されて、被写体からの光を撮像素子１０２に結像させる。撮像光学系１０１に含まれるシフトレンズは、撮像装置１００に加わる振れにより撮像画像に生じる像ブレを光学的に補正する補正レンズであり、撮像光学系１０１の光軸と略直交する方向に移動可能である。補正レンズおよびその駆動機構部は像ブレ補正手段を構成する。本実施形態ではシフトレンズにより被写体の結像位置の補正する光学的像ブレ補正の例を示すが、これに限定されない。例えば撮像素子１０２自体をシフトさせる方法や、撮像素子の移動とシフトレンズの移動を併用する方法等がある。
【００１２】
撮像素子１０２はＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）型イメージセンサ、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｌｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）型イメージセンサ等である。撮像素子１０２は、撮像光学系１０１を通過して結像した光を受光して画像信号に光電変換する。
【００１３】
角速度センサ１０５はジャイロセンサ等の振れ検出用デバイスである。角速度センサ１０５は撮像装置１００の移動量や振れを示す角速度を検出し、角速度検出信号をＣＰＵ１０３へ出力する。
【００１４】
ＣＰＵ１０３は、入力された信号やメモリに予め記憶されたプログラムに従い、撮像装置１００を構成する各部を制御して各種の機能を実現させる。一次記憶部１０４は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性記憶デバイスを備え、一時的なデータを記憶する。ＲＡＭはＣＰＵ１０３の作業用に使われる。また一次記憶部１０４に記憶されている情報は、画像処理部１０６が使用し、記録媒体１０７へ記録される。
【００１５】
二次記憶部１０８は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｔｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性記憶デバイスを備える。二次記憶部１０８は、撮像装置１００を制御するためのプログラム（ファームウェア）や各種の設定情報を記憶し、ＣＰＵ１０３によって使用される。記録媒体１０７には、一次記憶部１０４に記憶されているデータである、撮影により取得された画像データ等が記録される。記録媒体１０７は、例えば半導体メモリカードのように撮像装置１００に対して着脱可能である。撮像装置１００は、記録媒体１０７の装着機構部を備え、ＣＰＵ１０３は記録媒体１０７へのデータの書き込み、および記録媒体１０７からのデータの読み出しを制御する。記録媒体１０７に記録されたデータは、ユーザが記録媒体１０７をパーソナルコンピュータ等の情報処理装置に装着して読み出すことが可能である。
【００１６】
表示部１０９は、液晶表示デバイス等を備え、ＣＰＵ１０３からの制御指令にしたがって画面に画像を表示する。例えば表示部１０９は、撮影時のビューファインダ画像の表示、撮影された画像の表示、対話的な操作のためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面等の表示を行う。
【００１７】
操作部１１０は、ユーザの操作指示を受け付けてＣＰＵ１０３へ入力情報を伝達する入力デバイス群を備える。入力デバイスは、例えば操作ボタン、レバー、タッチパネル、音声や視線等を利用した入力機器である。操作部１１０は、ユーザが撮影指示を入力するための操作部材であるレリーズスイッチを含む。具体的には、レリーズスイッチは２段階スイッチの構成であり、ユーザが１段目の半押し操作を行うと、第１スイッチ（ＳＷ１と記す）がオンになり、撮影準備指示が行われる。ＣＰＵ１０３は、ＡＦ（オートフォーカス）処理やＡＥ（自動露出）処理等の撮影準備動作の制御を行う。次にユーザが２段目の全押し操作を行うと、第２スイッチ（ＳＷ２と記す）がオンになり、撮影指示が行われる。ＣＰＵ１０３は撮影指示を受け付け、撮像素子１０２の露光制御を行って画像データを取得する処理を行う。
【００１８】
画像処理部１０６は、撮像素子１０２により取得される撮像画像データに対して所定の画像処理を行う。撮像装置１００は、画像処理部１０６が撮像画像データに適用する画像処理のパターンを複数有しており、ユーザは操作部１１０を使って、複数のパターンに対応する撮影モードを設定可能である。画像処理部１０６は、いわゆる現像処理を行う他、撮影モードに応じた色調の調整処理等を行う。なお、画像処理部１０６の機能の一部を、ＣＰＵ１０３が行うソフトウェア処理によって実現してもよい。
【００１９】
図２は、本実施形態における流し撮りアシストモード時の処理を示すフローチャートである。以下の処理はＣＰＵ１０３が所定のプログラムを実行して撮像装置１００の構成部を制御することにより実現される。
【００２０】
Ｓ２０１において、ＣＰＵ１０３は、カウント変数（ｎと記す）をゼロに初期化する。カウント変数ｎは、後述する被写体角速度の算出に必要なパラメータが何回（何フレーム）検出されたかを計数するための変数である。Ｓ２０２でＣＰＵ１０３は、撮像光学系１０１の焦点距離の情報を取得する。焦点距離はズームレンズを駆動するズーム機構部の検出情報として取得される。
【００２１】
Ｓ２０３では角速度センサ１０５が撮像装置１００の角速度を検出する。ＣＰＵ１０３は、角速度センサ１０５による検出信号から角速度の検出データを取得する。Ｓ２０４において、ＣＰＵ１０３は、撮像素子１０２によって連続して取得された画像を複数のブロック領域に分割する処理を実行した後、画像処理部１０６を用いて、連続して取得された画像間における動きベクトルを検出する。動きベクトルは撮像時刻の異なる複数の画像データから検出される被写体の動き量および方向を示す。ＣＰＵ１０３は検出された動きベクトルを撮像面上の移動量に換算する。なお、Ｓ２０２〜Ｓ２０４で取得または検出される結果に関しては、本処理に必要な回数（フレーム数）分のデータをＣＰＵ１０３が一次記憶部１０４に記憶させるものとする。
【００２２】
Ｓ２０５はカウント変数ｎのインクリメント処理である。ＣＰＵ１０３は、被写体角速度算出に必要なパラメータ（焦点距離、角速度、動きベクトル）の検出回数（フレーム数）を計数するカウント変数ｎの値に１を加算する。Ｓ２０６にてＣＰＵ１０３は、カウント変数ｎの値を所定の閾値（αと記す）と比較し、被写体角速度を算出するために必要な過去のデータが十分揃っているかどうかを判定する。Ｓ２０６でカウント変数ｎの値が閾値α未満である場合、ＣＰＵ１０３は、被写体角速度の予測に必要な過去のデータが十分でないと判断し、Ｓ２０２へ処理を戻す。Ｓ２０２からＳ２０５までの処理が繰り返し実行される。一方、Ｓ２０６でカウント変数ｎの値が閾値α以上である場合、ＣＰＵ１０３はＳ２０７に処理を進める。
【００２３】
Ｓ２０７でＣＰＵ１０３は被写体角速度を算出する。被写体角速度の算出処理の詳細については図３および図４を用いて後述する。Ｓ２０８にてＣＰＵ１０３は、露光の開始を判断する。ユーザが操作部１１０に含まれるレリーズスイッチの全押し操作を行い、第２スイッチＳＷ２がオンになったか否かについて判定が行われる。Ｓ２０８において、全押し操作が行われず、ＳＷ２がオフである場合、Ｓ２０２へ処理を戻し、ＣＰＵ１０３はＳ２０２からＳ２０７までの処理を繰り返し実行する。一方、Ｓ２０８において全押し操作が行われてＳＷ２がオンになった場合、ＣＰＵ１０３はＳ２０９へ処理を進める。Ｓ２０９でＣＰＵ１０３は、撮像光学系１０１の駆動機構部を制御し、流し撮り対象である被写体の像ブレを抑制するようにシフトレンズの駆動制御を開始する。ＣＰＵ１０３は流し撮りアシストにおいて、被写体の移動速度と撮像装置を移動させる速度との差分を検出し、検出した差分に相当するズレ量を、シフトレンズの駆動によって低減する制御を行う。撮像装置を移動させる角速度と被写体の角速度との差分が低減される結果、流し撮りの成功確率を高めることができる。Ｓ２１０でＣＰＵ１０３は撮像素子１０２の露光を開始させ、撮像動作を制御する。
【００２４】
図３および図４のフローチャートを参照して、図２のＳ２０７に示す被写体角速度の算出処理について詳細に説明する。Ｓ３０１において、ＣＰＵ１０３は図２のＳ２０４で検出された最新フレームの動きベクトルの検出結果のうち、ＡＦ（オートフォーカス）用の焦点検出枠に収まっている被写体ベクトルの検出領域を特定する。被写体ベクトルは、画面内の被写体領域に該当する動きベクトルである。なお、複数の被写体ベクトルの検出領域が存在する場合には、各被写体ベクトルの検出領域に対して以降の処理を行うものとする。
【００２５】
被写体ベクトルの特定方法としては、例えば、動きベクトルの大きさが所定の閾値未満である、小さな動きベクトルを被写体ベクトルとする方法がある。また撮像装置１００のパンニングにより発生する、画像間における撮像面上の移動量から所定の閾値以上離れている動きベクトルを被写体ベクトルとする方法等がある。または、その他の方法で被写体ベクトルを特定してもよい。以下では画像間における撮像面上の移動量と所定の閾値から動きベクトルを求めて被写体ベクトルを特定する方法を説明する。
【００２６】
撮像装置１００の角速度をω［ｒａｄ／ｓｅｃ］と表記し、焦点距離をｆ［ｍｍ］と表記し、画像を取得する間隔をfps［ｆｒａｍｅ／ｓｅｃ］と表記する。［］内に単位を示す。パンニングにより発生する、画像間における撮像面上の移動量をａ［ｍｍ］と表記すると、移動量ａは下記式１を用いて算出することができる。
【数１】
2018180372.tif 000003
tan()は正接関数である。
【００２７】
Ｓ３０２にてＣＰＵ１０３は、被写体角速度の予測に用いる、十分なフレーム数（αと記す）を、計数用の変数Ｃｏｕｎｔに設定する。以下では変数Ｃｏｕｎｔの値に対応するフレームを「Ｃｏｕｎｔフレーム」と表記する。Ｓ３０３でＣＰＵ１０３は、Ｃｏｕｎｔフレームより後に検出された動きベクトルを用いて、最新フレームと同じ被写体領域（以下、第１の被写体領域という）が、Ｃｏｕｎｔフレームの画像でどの動きベクトル検出領域に含まれるかを特定する。例えば、最新フレームであれば参照するフレーム存在しないが、最新フレームよりも１フレーム前であれば最新フレームを参照できる。
【００２８】
Ｓ３０４でＣＰＵ１０３は、Ｓ３０３で特定した第１の被写体領域を含む領域の動きベクトルと同じ動きベクトルを有する領域を特定する。同じ動きベクトルとは、比較する２つの動きベクトルが等しいとき、または比較する２つの動きベクトルの差分が閾値より小さいときの動きベクトルである。Ｓ３０５でＣＰＵ１０３は、Ｓ３０３で特定した第１の被写体領域を含む領域において動きベクトルが検出できているかどうかを判定する。Ｓ３０５で動きベクトルが検出できていると判定された場合、ＣＰＵ１０３は図４のＳ３０８へ処理を進める。またＳ３０５で動きベクトルが検出できていないと判定された場合、ＣＰＵ１０３は、Ｓ３０６へ処理を進める。
【００２９】
Ｓ３０６にてＣＰＵ１０３は、「Ｃｏｕｎｔ＋１」フレーム目の処理時にＳ３０４で特定したときと同じ動きベクトルを有する被写体領域を第２の被写体領域とする。ＣＰＵ１０３は、Ｃｏｕｎｔフレーム目の画像において第２の被写体領域を含む領域を特定する。Ｓ３０７でＣＰＵ１０３は、Ｓ３０６で特定した第２の被写体領域を含む領域において動きベクトルが検出できているか否かを判定する。Ｓ３０７で動きベクトルが検出できていると判定した場合、ＣＰＵ１０３は図４のＳ３０８へ処理を進める。またＳ３０７で動きベクトルが検出できていないと判定した場合、ＣＰＵ１０３は図４のＳ３１１へ処理を進める。
【００３０】
Ｓ３０８でＣＰＵ１０３はＳ３０５またはＳ３０７で検出されている動きベクトルを被写体角速度の予測対象に加える。なお、図３のＳ３０７で、第２の被写体領域を含む領域から検出された動きベクトルを被写体角速度の予測対象に加えた場合、以降のＳ３０３の処理でＣＰＵ１０３は第１および第２の被写体領域を用いて被写体領域を特定する処理を行う。
【００３１】
Ｓ３０９でＣＰＵ１０３は、変数Ｃｏｕｎｔのデクリメント（Ｃｏｕｎｔ−１）を行うことによって、現フレームの処理を完了して次のＳ３１０へ進む。Ｓ３１０でＣＰＵ１０３は、Ｓ３０２で設定した被写体角速度予測に用いる十分なフレーム数のすべての処理を終了したかどうかを判定する。つまりＣｏｕｎｔ値がゼロになっているか否かの判定処理が行われる。Ｃｏｕｎｔ値がゼロ以外である場合、被写体角速度の予測を行うために必要な数のデータが揃っていないと判断され、Ｓ３０３へ戻る。ＣＰＵ１０３は、Ｓ３０３からＳ３０９までの処理を繰り返し実行する。一方、Ｓ３１０でＣｏｕｎｔ値がゼロである場合、ＣＰＵ１０３はＳ３１１へ処理を進める。
【００３２】
Ｓ３１１にてＣＰＵ１０３は、Ｓ３０８で被写体角速度の予測対象となった動きベクトルを用いて、露光時の被写体角速度を予測して被写体角速度を決定する。被写体角速度の予測処理は最小二乗法等を用いて行われる。なお、Ｓ３１１において、露光時の被写体角速度を予測するために最低限必要なフレーム数が確保できていない場合、ＣＰＵ１０３は、被写体加速度をゼロ、すなわち、被写体の速度が等速であるとして最新フレームの被写体角速度を設定する。Ｓ３１１の処理後、リターン処理へ移行する。
【００３３】
図５および図６を参照して、本実施形態における被写体角速度の算出処理を説明する。図５は、本実施形態における被写体角速度算出の基本処理の説明図である。図５（Ａ）は、被写体４０１に対して、オートフォーカス用の枠（以下、ＡＦ枠という）４０２が指定されている状態を示す。まず、図３のＳ３０１で説明したように、ＡＦ枠４０２の枠内の動きベクトル検出領域において、被写体ベクトルを持つ領域４０３が特定される。図５（Ｂ）は、図５（Ａ）よりも前のフレーム画像を示す。図３のＳ３０３で説明したように、図５（Ａ）と図５（Ｂ）との間で、動きベクトルの大きさに基づいて、同じ被写体領域がより多く含まれる領域４０４が特定される。図５（Ｃ）は図５（Ｂ）よりも前のフレーム画像を示す。同様にして、図５（Ａ）と図５（Ｂ）との間の動きベクトルの大きさと、図５（Ｂ）と図５（Ｃ）との間の動きベクトルの大きさに基づいて、同じ被写体領域がより多く含まれる領域４０６が特定される。図５（Ｂ）と同じ動きベクトルの検出領域は領域４０５であるが、動きベクトルの大きさに基づいて特定される領域は領域４０６である。これにより、同じ被写体領域がより多く含まれる領域４０６を選択することができる。
【００３４】
以上の処理により、図３のＳ３１１において、異なるフレーム画像での同じ被写体領域から露光時の被写体角速度を算出することが可能となるため、任意領域の被写体ブレを、より精度良く抑制することができる。
【００３５】
図６は、本実施形態における被写体角速度の算出処理の別例を示す説明図である。図６（Ａ）から（Ｅ）の順に、より過去のフレームの画像を示す。図６（Ａ）は、図５（Ａ）と同様に、被写体４０１に対してＡＦ枠４０２が指定された状態を示す。図３のＳ３０１において、ＡＦ枠４０２内の動きベクトルの検出領域のうちで、被写体ベクトルを持つ領域４０３が特定されるものとする。このとき、図３のＳ３０４において、被写体ベクトルを持つ領域４０３と同じ動きベクトルを持つ領域５０１が特定される。
【００３６】
例えば、図６（Ｂ）において、領域４０３と同じ被写体領域がより多く含まれる領域は領域５０２である。図６（Ｃ）は、領域４０３と同じ被写体領域がより多く含まれる領域５０４が手前にある被写体（例えばポール）５０５に妨害されてしまった状況を示す。この例では図６（Ｂ）と図６（Ｃ）との間の動きベクトルが検出できない場合を想定する。このような場合、図３のＳ３０６において、図６（Ａ）と図６（Ｂ）との間で被写体ベクトルと同じ動きベクトルを持つ領域５０１に相当する領域５０３、５０６、５０８（図６（Ｂ）から（Ｄ）参照）の領域が用いられる。よって、図６（Ａ）と図６（Ｂ）との間、および図６（Ｃ）と図６（Ｄ）との間での被写体角速度予測用の動きベクトル（被写体ベクトル）をそれぞれ導出することができる。なお、図６（Ｄ）では、領域４０３と同じ被写体領域がより多く含まれる領域であると予測される領域５０７の前方（手前側）に、妨害する被写体５０５がない状態となる。したがって、被写体ベクトルと同じ動きベクトルを持つ領域５０８と同じ動きベクトルが領域５０７から検出されるので、再び、領域５０７を同じ被写体領域がより多く含まれる領域として扱うことができる。領域５０７を、同じ被写体領域がより多く含まれる領域として扱える場合には、図６（Ｄ）と図６（Ｅ）との間の動きベクトルとして、領域５０７を用いることができる。他方、領域５０７を、同じ被写体領域がより多く含まれる領域として扱えない場合には、図６（Ｄ）と図６（Ｅ）との間の動きベクトルとしては領域５０８が用いられる。同様に、例えば、図６（Ｅ）以降のフレームにおいて領域５１０から動きベクトルが検出できない場合であったとしても、領域５０７と領域５０８から同じ動きベクトルが検出されていれば、領域５０９の動きベクトルを用いることができる。
【００３７】
以上の処理により、第２スイッチＳＷ２の操作前に行われる被写体角速度の算出段階において、各フレーム画像内の任意領域で障害物等が被写体と重なる場合でも、被写体ブレをより精度良く抑制可能な撮像装置を提供することができる。
【００３８】
本実施形態によれば、算出された被写体ベクトルの推移に基づいて露光時の被写体角速度を正確に予測し、撮像画像における任意領域の被写体ブレをより精度良く抑制することができる。
【００３９】
なお、本実施形態では、ユーザが被写体ブレを抑制したい領域を指定する方法として、ＡＦ枠での指定方法を説明したが、この限りではない。例えば、表示部１０９に表示されるＧＵＩ画面等を用いてユーザが直接に固定枠を指定する方法でもよい。この場合、指定された固定枠内にて被写体ベクトルの検出領域が特定されるので、ユーザの撮影意図をより明示的に反映させることが可能である。また被写体ベクトルの検出領域が複数存在する場合には、図４のＳ３１１の被写体角速度予測時に、図３のＳ３０６およびＳ３０７の処理を行った回数が少ない検出領域を優先させることで、より精度良く被写体角速度を予測できる。さらには、被写体ブレを抑制したい領域の中央位置により近い検出領域を優先的に用いることで、ユーザの撮影意図をより明示的に反映させることができる。説明の都合上、動きベクトルを比較する際に同じ大きさという表現を用いたが、所定の閾値を設けて、動きベクトルの差分値が所定の閾値以内であれば同じ大きさの動きベクトルであると見なしてもよい。
【００４０】
［第２実施形態］
次に本発明の第２実施形態を説明する。本実施形態において第１実施形態と同様の構成については既に使用した符号を用いることにより、それらの詳細な説明を省略し、主に相違点を説明する。
【００４１】
図７を参照して、本実施形態における被写体角速度の算出処理を説明する。図７は被写体角速度算出にかかる時間が短いケースを想定したフローチャートである。Ｓ６０１では図３のＳ３０１と同様に、ＣＰＵ１０３は、図２のＳ２０４で検出された最新フレームの動きベクトル検出結果のうち、ＡＦ枠内に収まっている被写体ベクトルの検出領域を特定する。なお、被写体ベクトルの検出領域が複数である場合には、各被写体ベクトルの検出領域に対して以降の処理を行うものとする。被写体ベクトルの特定方法に関しては、第１実施形態にて説明済みである。Ｓ６０２において、ＣＰＵ１０３は、被写体角速度の予測にて最大で用いるフレーム数αを変数Ｃｏｕｎｔに設定する。
【００４２】
基本的に、被写体角速度の算出にかかる時間が短い場合、同じ被写体領域は同じ動きベクトル検出領域に含まれる可能性が高い。したがって、Ｓ６０３にてＣＰＵ１０３はＣｏｕｎｔフレームにおいて、最新フレームで被写体ベクトルが検出された動きベクトル検出領域と同じ検出領域で動きベクトルが検出されているかどうかを判定する。なお、Ｃｏｕｎｔフレームが最新フレームである場合には当該フレーム自身との比較となるため、動きベクトルが検出できているものとして扱われる。
【００４３】
Ｓ６０３で動きベクトルが検出できていると判定した場合、ＣＰＵ１０３はＳ６０４へ処理を進め、前記動きベクトルを被写体角速度の予測対象に加える。またＳ６０３で動きベクトルが検出できていないと判定した場合、ＣＰＵ１０３はＳ６０５へ処理を進める。
【００４４】
Ｓ６０５でＣＰＵ１０３はＣｏｕｎｔの値のデクリメントを行い、現フレームの処理を完了してＳ６０６の判定処理に進む。Ｓ６０６でＣＰＵ１０３は、Ｓ６０２で設定した被写体角速度の予測に最大で用いるフレーム数α分（つまり、α回）の処理を終了したか否かを判定する。ここではＣｏｕｎｔ値がゼロになっているか否かについて判定される。Ｓ６０６でＣｏｕｎｔ値がゼロ以外であると判定された場合、被写体角速度の予測を行うために必要な数のデータが揃っていない。そのため、ＣＰＵ１０３はＳ６０３に戻り、Ｓ６０３からＳ６０５までの処理を繰り返し実行する。一方、Ｓ６０６でＣｏｕｎｔ値がゼロであると判定された場合、ＣＰＵ１０３はＳ６０７へ処理を進める。Ｓ６０７でＣＰＵ１０３は被写体角速度の予測対象となった動きベクトルを用いて、最小二乗法等により露光時の被写体角速度を予測して被写体角速度を決定する。そしてリターン処理へ移行する。
【００４５】
図８は、図７のＳ６０７に示す被写体角速度の予測処理の説明図である。図８（Ａ）〜（Ｃ）において、フレームｉを最新フレーム、フレームｉｉを一つ前のフレーム、フレームｉｉｉを二つ前のフレームとする。フレームｉｖを三つ前のフレームとし、フレームｖを四つ前のフレームとする。さらに、ＡＦ枠内にて実線の矩形枠の領域は、動きベクトルが検出できた領域を示し、ＡＦ枠内にて点線の矩形枠の領域は、動きベクトルが検出できなかった領域を示す。
【００４６】
図８（Ａ）は、被写体ベクトルの検出領域の位置に基づく優先順位を説明する図である。図７のＳ６０１において、ＡＦ枠４０２内の動きベクトル検出領域のうちで、被写体ベクトルを有する領域７０１、７０２が特定される。図８（Ａ）の場合、領域７０１、７０２ともに動きベクトルを安定して検出できている。したがって、ユーザの意図をより明示的に反映させるためにＣＰＵ１０３は、ＡＦ枠４０２の中央位置により近い方の領域７０１の動きベクトルを用いて露光時の被写体角速度を予測する。
【００４７】
図８（Ｂ）は、被写体ベクトルの検出数に基づく優先順位を説明する図である。図７のＳ６０１において、ＡＦ枠４０２内の動きベクトル検出領域のうちでフレームｉでは、被写体ベクトルを有する領域７０３、７０４が特定される。図８（Ｂ）の場合、領域７０４、および領域７０４に対応するフレームｉｉ〜ｖでの領域７０６、７０８、７１０，７１２において動きベクトルが検出できている。一方、領域７０３、および領域７０３に対応するフレームｉｉｉ、ｖでの領域７０７、７１１において動きベクトルが検出できているが、過去の２フレームｉｉ、ｉｖでの領域７０５、７０９において動きベクトルが検出できていない。このような場合、動きベクトルを検出できているフレーム数の多い方が、図７のＳ６０７で、より精度良く被写体角速度の予測を行えるので、ＣＰＵ１０３は領域７０４の動きベクトルを用いて露光時の被写体角速度を予測する。
【００４８】
図８（Ｃ）は、最新フレームおよび被写体ベクトルが検出されたフレームに基づく優先順位を説明する図である。図７のＳ６０１において、ＡＦ枠４０２内の動きベクトル検出領域のうち、被写体ベクトルを有する領域７１３、７１４が特定される。図８（Ｃ）の場合、領域７１３、７１４ともに過去の２フレームで動きベクトルが検出できていない。領域７１３については、一つ前のフレームｉｉでの領域７１５と、三つ前のフレームｉｖでの領域７１９において動きベクトルが検出できていない。また領域７１４については、二つ前のフレームｉｉｉでの領域７１８と、三つ前のフレームｉｖでの領域７２０において動きベクトルが検出できていない。
【００４９】
このような場合、最新フレームにより近いフレームにおいて動きベクトルを検出できている方が、図７のＳ６０７で、より精度良く被写体角速度の予測を行える。一つ前のフレームｉｉでの領域７１６において動きベクトルを検出できているので、ＣＰＵ１０３は領域７１４の動きベクトルを用いて露光時の被写体角速度を予測する。
【００５０】
本実施形態では、被写体角速度の算出にかかる時間が短い場合でも、同じ動きベクトルの検出領域から被写体角速度を算出することが可能となる。よって、処理を簡略化した上で任意領域の被写体ブレを、より精度良く抑制可能な撮像装置を提供できる。
【符号の説明】
【００５１】
１００：撮像装置
１０１：撮像光学系
１０２：撮像素子
１０３：中央演算処理装置（ＣＰＵ）
１０５：角速度センサ
１０６：画像処理装置
１０９：表示部
１１０：操作部
【図１】
2018180372.tif 000004
【図２】
2018180372.tif 000005
【図３】
2018180372.tif 000006
【図４】
2018180372.tif 000007
【図５】
2018180372.tif 000008
【図６】
2018180372.tif 000009
【図７】
2018180372.tif 000010
【図８】
2018180372.tif 000011