(57)【特許請求の範囲】
【請求項１】
撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割手段と、
前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出手段と、
パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出手段により検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離手段と、
距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定手段と、を備え、
前記特定手段は、前記複数の領域のうちの、設定された基準位置に対応した領域の前記被写体の距離に関する情報と、その他の領域の前記被写体の距離に関する情報との差分値を用いて、前記被写体ベクトルに重み付けをすることを特徴とする画像処理装置。
【請求項２】
撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割手段と、
前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出手段と、
パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出手段により検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離手段と、
距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定手段と、を備え、
前記特定手段は、前記複数の領域のうちの、設定された基準位置に対応した領域の前記動きベクトルと、その他の領域の前記動きベクトルとの差分値を用いて、前記被写体ベクトルに重み付けをすることを特徴とする画像処理装置。
【請求項３】
撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割手段と、
前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出手段と、
パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出手段により検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離手段と、
距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定手段と、を備え、
前記特定手段は、設定された基準位置を基準とした前記被写体ベクトルの連続領域を用いて、前記被写体領域を特定することを特徴とする画像処理装置。
【請求項４】
前記特定された被写体領域についての被写体ベクトルを用いて、被写体の速度を算出する算出手段をさらに備えることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記算出された被写体の速度に基づいて、画像の振れを補正する振れ補正手段の動きを制御し、流し撮り撮影をアシストするアシスト手段をさらに備えることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記アシスト手段は、前記算出された被写体の速度と前記パンニングの速度の差分に基づいて、前記振れ補正手段の動きを制御することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記被写体の距離に関する情報は、デフォーカス量であることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記基準位置として測距位置を取得する取得手段をさらに備えることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記分割された領域ごとに、色比を検出する色比検出手段をさらに備え、前記特定手段は、前記色比が所定の閾値以内であれば、同一の被写体として見なして前記被写体領域を特定することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割工程と、
前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出工程と、
パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出工程において検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離工程と、
距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定工程と、を有し、
前記特定工程は、前記複数の領域のうちの、設定された基準位置に対応した領域の前記被写体の距離に関する情報と、その他の領域の前記被写体の距離に関する情報との差分値を用いて、前記被写体ベクトルに重み付けをすることを特徴とする画像処理方法。
【請求項１１】
撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割工程と、
前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出工程と、
パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出工程において検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離工程と、
距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定工程と、を有し、
前記特定工程は、前記複数の領域のうちの、設定された基準位置に対応した領域の前記動きベクトルと、その他の領域の前記動きベクトルとの差分値を用いて、前記被写体ベクトルに重み付けをすることを特徴とする画像処理方法。
【請求項１２】
撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割工程と、
前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出工程と、
パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出工程において検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離工程と、
距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定工程と、を有し、
前記特定工程は、設定された基準位置を基準とした前記被写体ベクトルの連続領域を用いて、前記被写体領域を特定することを特徴とする画像処理方法。
【請求項１３】
請求項１０乃至１２のいずれか１項に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１４】
請求項１０乃至１２のいずれか１項に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、流し撮り撮影の補助を行う技術に関するものである。
【背景技術】
【０００２】
移動している被写体のスピード感を表現する撮影技術として流し撮りの手法が知られている。この撮影手法は、撮影者が被写体の動きに合わせてカメラをパンニングすることにより、移動している被写体を静止させて背景は流すことを目的としている。一般的な流し撮りは、撮影したい被写体の移動速度に合わせて露光時間を通常より長めに調節することで撮影を行う。
【０００３】
流し撮り撮影においては、撮影者が被写体の動きに合わせてパンニングをする必要があるが、パンニング速度が速すぎたり遅すぎたりすることで、被写体の移動速度とパンニング速度の間に差が発生してしまうと、被写体までブレた画像になることも多い。このような問題に対し、ユーザの流し撮り撮影の補助を行う技術として、手ブレを補正するためのシフトレンズを移動させることにより被写体の移動速度とパンニング速度の差を吸収する手法が提案されている。例えば特許文献１では、ジャイロセンサで装置の振れを検出するとともに画像の動きベクトルから被写体を検出し、検出された被写体を画像中央に位置させるための補正量を算出し、光軸シフトレンズの移動で補正して流し撮り撮影を行う構成が開示されている。特許文献２では、画像を複数の領域に分割し、領域ごとに検出した被写体輝度と被写体距離、撮影倍率、被写体の移動分布を用いて、主被写体を検出する構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１７８４８号公報
【特許文献２】特開２００３−２７９８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１に開示された技術では、ジャイロセンサで装置の振れを検出し、画像の動きベクトルから被写体を検出している。そのため、被写体が向かってくる場合や被写体が複数存在する場合などに、大きさと向きが似ている動きベクトルが複数検出されることがあり、ユーザが止めたい被写体の場所に合わせてブレを抑えることは難しいという問題がある。
【０００６】
また特許文献２に開示された技術では、移動被写体が複数存在するような流し撮り撮影を考えると、カメラのパンニングの影響を考慮していないため、カメラのパンニング速度と被写体の移動速度がずれているときに、ユーザが止めたい被写体を適切に検出することは難しい。
【０００７】
本発明は上述した課題に鑑みてなされたものであり、その目的は、流し撮りを行う場合に、撮影者が止めたいと思う被写体をより正確にブレなく撮影できるようにすることである。
【課題を解決するための手段】
【０００８】
本発明に係わる画像処理装置は、撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割手段と、前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出手段と、パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出手段により検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離手段と、距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定手段と、を備え、前記特定手段は、前記複数の領域のうちの、設定された基準位置に対応した領域の前記被写体の距離に関する情報と、その他の領域の前記被写体の距離に関する情報との差分値を用いて、前記被写体ベクトルに重み付けをすることを特徴とする。
また、本発明に係わる画像処理装置は、撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割手段と、前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出手段と、パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出手段により検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離手段と、距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定手段と、を備え、前記特定手段は、前記複数の領域のうちの、設定された基準位置に対応した領域の前記動きベクトルと、その他の領域の前記動きベクトルとの差分値を用いて、前記被写体ベクトルに重み付けをすることを特徴とする。
また、本発明に係わる画像処理装置は、撮像手段により連続的に撮影された複数フレームの画像をそれぞれ画面内で複数の領域に分割する分割手段と、前記複数フレームの画像について、前記分割された領域ごとに動きベクトルを検出する動きベクトル検出手段と、パンニング検出手段により検出した装置のパンニングの速度と、前記動きベクトル検出手段により検出された動きベクトルとを用いて、被写体の動きを示す被写体ベクトルと、背景の動きを示す背景ベクトルを分離する分離手段と、距離検出手段により前記複数フレームの画像について前記分割された領域ごとに検出された被写体の距離に関する情報を用いて、前記被写体ベクトルに重み付けをし、被写体領域を特定する特定手段と、を備え、前記特定手段は、設定された基準位置を基準とした前記被写体ベクトルの連続領域を用いて、前記被写体領域を特定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、流し撮りを行う場合に、撮影者が止めたいと思う被写体をより正確にブレなく撮影することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係わる撮像装置の基本構成を示すブロック図。
【図２】第１の実施形態における流し撮り撮影アシストの処理を示すフローチャート。
【図３】動きベクトルのヒストグラムの推移を表わした図。
【図４】被写体領域と背景領域を判別する方法の説明図。
【図５】被写体ベクトル領域を示した図。
【図６】第１の実施形態における距離マップと動きベクトルの推移を表わした図。
【図７】第１の実施形態における距離マップの信頼度テーブルを示した図。
【図８】第１の実施形態における被写体の移動量の算出方法を示した図。
【図９】第１の実施形態における効果シーンを示した図。
【図１０】第２の実施形態における流し撮り撮影アシストの処理を示すフローチャート。
【図１１】第２の実施形態における距離マップと動きベクトルの推移を表わした図。
【図１２】第２の実施形態における距離マップと動きベクトルの信頼度テーブルを示した図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付図面を参照して詳細に説明する。
【００１２】
（第１の実施形態）
図１は、本発明の画像処理装置の第１の実施形態である撮像装置１００の基本構成を示すブロック図である。撮像装置１００は、デジタルカメラ、デジタルビデオカメラのようなカメラはもとより、カメラ機能付き携帯電話、カメラ付きコンピュータなど、カメラ機能を備える任意の電子機器であっても良い。
【００１３】
図１において、光学系１０１は、レンズ、シャッター、絞りから構成されており、ＣＰＵ１０３の制御によって被写体からの光を撮像素子１０２に結像させる。ＣＣＤイメージセンサ、ＣＭＯＳイメージセンサなどからなる撮像素子１０２は、光学系１０１を通って結像した光を画像信号に変換する。ジャイロセンサなどの角速度センサ１０５は、撮像装置１００の移動量を表わすパンニング角速度を検出し、電気信号に変換してＣＰＵ１０３へ伝達する。測距センサ１０６は、撮像素子１０２で撮像された被写体の被写体距離やデフォーカス量（以降、距離マップと呼ぶ）を検出（距離検出）し、電気信号に変換してＣＰＵ１０３へ伝達する。測距センサ１０６の代わりとして、撮像素子１０２により位相差やコントラストを検出して焦点位置を求め、それに基づいて被写体距離を求めてもよい。
【００１４】
ＣＰＵ１０３は、入力された信号や予め記憶されたプログラムに従い、撮像装置１００を構成する各部を制御することで、撮像装置１００の機能を実現させる。一次記憶装置１０４は例えばＲＡＭのような揮発性メモリであり、一時的にデータを記憶するとともに、ＣＰＵ１０３の作業領域として使われる。また、一次記憶装置１０４に記憶されている情報は、画像処理装置１０７で利用されたり、記録媒体１０８へ記録されたりもする。二次記憶装置１０９は例えばＥＥＰＲＯＭのような不揮発性メモリであり、撮像装置１００を制御するためのプログラム（ファームウェア）や各種の設定情報を記憶し、ＣＰＵ１０３によって利用される。
【００１５】
記録媒体１０８は、一次記憶装置１０４に記憶されている、撮影により得られた画像のデータなどを記録する。なお、記録媒体１０８は例えば半導体メモリカードなどで、撮像装置１００から取り外し可能であり、パーソナルコンピュータなどに装着することにより記録されたデータを読み出すことが可能である。つまり、撮像装置１００は、記録媒体１０８の着脱機構及び読み書き機能を有する。表示部１１０は、撮影時のビューファインダー画像の表示、撮影した画像の表示、対話的な操作のためのＧＵＩ画像などの表示を行う。
【００１６】
操作部１１１は、ユーザの操作を受け付けてＣＰＵ１０３へ入力情報を伝達する入力デバイス群であり、例えばボタン、レバー、タッチパネル等はもちろん、音声や視線などを用いた入力機器であってもよい。なお、本実施形態の撮像装置１００では、画像処理装置１０７が撮像画像に適用する画像処理のパターンを複数有し、そのパターンを撮像モードとして操作部１１１から設定可能である。画像処理装置１０７は、いわゆる現像処理と呼ばれる画像処理をはじめ、色調の調整なども行う。なお、画像処理装置１０７の機能の少なくとも一部は、ＣＰＵ１０３がソフトウェア的に実現しても良い。
【００１７】
なお、図１においては、撮像装置１００を光学系１０１が撮像装置の本体と一体化された装置としているが、光学系の部分を撮像装置の本体に対して着脱可能にして、レンズ交換式の撮像システムとして構成してもよい。
【００１８】
図２は、本実施形態における流し撮り撮影をアシストする動作の流れを示したフローチャートである。なお、このフローは、例えば操作部１１１に含まれるシャッターボタンの半押しなどにより開始させることが可能である。また、この流し撮り撮影のアシスト動作は、ライブビューや測光センサなどにより連続的に複数フレームの画像を取得している状態で行われる。
【００１９】
まずＳ２０１において、ＣＰＵ１０３は、角速度センサ１０５で検出された撮像装置１００のパンニング角速度を検出（パンニング検出）する。次にＳ２０２において、ＣＰＵ１０３は、撮像素子１０２で連続して取得された画像を画面内でそれぞれ複数のブロック領域に分割し、ブロック領域ごとに測距センサ１０６で検出された距離マップを検出する。Ｓ２０３において、ＣＰＵ１０３は、Ｓ２０２と同様に分割されたブロック領域ごとに、画像処理装置１０７を用いて画像間における動きベクトルを検出（ベクトル検出）する。そして、検出された動きベクトルを撮像面上の移動量ｖ［ｍｍ］に換算する。
【００２０】
Ｓ２０４において、焦点距離をｆ［ｍｍ］、画像を取得する間隔（以降、フレームレートと呼ぶ）をｆｐｓ［ｆｒａｍｅ／ｓｅｃ］としたとき、ＣＰＵ１０３は、Ｓ２０１で取得した撮像装置１００のパンニングの角速度ω［ｒａｄ／ｓｅｃ］を、式（１）を用いて画像間における撮像面上の移動量Ｌ［ｍｍ］に変換する。
【００２１】
Ｌ＝ｆ・tan（ω／ｆｐｓ）      …（１）
Ｓ２０５において、ＣＰＵ１０３は、Ｓ２０３で検出した動きベクトルから、例えば図３（ａ）のような縦軸がベクトルのブロック数、横軸がベクトルの大きさのヒストグラムを、画像処理装置１０７で作成する。
【００２２】
Ｓ２０６において、ＣＰＵ１０３は、Ｓ２０４で移動量Ｌ［ｍｍ］に変換した撮像装置１００の角速度ω［ｒａｄ／ｓｅｃ］と、Ｓ２０５で作成した動きベクトルのヒストグラムを用いて、被写体の動きを表わすベクトル（以降、被写体ベクトルと呼ぶ）と、背景の動きを表わすベクトル（以降、背景ベクトルと呼ぶ）を判別（分離）する。被写体の判別は、例えばＳ２０４で移動量Ｌ［ｍｍ］に変換した撮像装置１００の角速度ω［ｒａｄ／ｓｅｃ］に近い動きベクトルを背景ベクトルとし、それ以外で検出数の多い動きベクトルを被写体ベクトルとして行えばよい。また、撮像装置１００の角速度ω［ｒａｄ／ｓｅｃ］がある程度の大きさがある場合は、フレーム間で背景もある程度動いていると考えられるため、動きが小さいベクトルを被写体ベクトルとしてもよい。なお、ここでいう被写体ベクトルと背景ベクトルは撮像面上の移動量に換算された後の値を表わす。
【００２３】
他にも、Ｓ２０２で検出した距離マップを用いて、被写体を判別する方法がある。図４（ａ）、図４（ｂ）を、ある連続するフレームで取得された画像とする。４０３を画像中の左側方向に移動している被写体としたとき、背景４０２は流し撮り撮影においてフレーム間で移動してしまうため、ブロック領域４０１で検出される被写体距離はフレームごとに異なる。また、図４（ｃ）をある任意のフレームで取得された画像とすると、メイン被写体と異なる動きをしている被写体４０４はぶれてしまうため、距離マップが取得しにくい。したがって、フレーム間で安定して同じ距離マップを検出できるブロック領域を被写体領域としても良い。
【００２４】
分割されたブロック領域が低コントラストな場合は、Ｓ２０２で被写体距離を検出したり、Ｓ２０３で動きベクトルを検出したりできない場合があるので、被写体領域をある程度広くとって最終的な被写体速度を算出することが望ましい。したがって、Ｓ２０７において、ＣＰＵ１０３は、画像処理装置１０７を用いて、被写体距離や動きベクトルを検出できなかったブロック領域に対し、式（２）で隣接ブロック領域と色比（Ｒ／Ｇ、Ｂ／Ｇ）を比較（色比検出）し、所定の閾値以内であれば同じ被写体と判定する。
【００２５】
閾値Ｒm≦｛（Ｒi／Ｇi）−（Ｒi-1／Ｇi-1）｝≦閾値Ｒp
閾値Ｂm≦｛（Ｂi／Ｇi）−（Ｂi-1／Ｇi-1）｝≦閾値Ｒp      …（２）
図４（ｄ）、４（ｅ）を用いて、図２のＳ２０７の処理について説明する。図４（ｄ）、４（ｅ）は、あるフレームにおける被写体速度の算出領域例を示した図である。図４（ｄ）の４０３を画像中の左側方向に移動している被写体、４０５を分割されたブロック領域とする。また、図４（ｅ）の４０６を被写体ベクトルが検出されたブロック領域、４０７を被写体距離や動きベクトルが検出できなかった領域とする。被写体ベクトルが検出された最大連続ブロック領域で最終的な被写体速度を算出すると仮定したとき、被写体速度は被写体の後方４０８の領域で算出されることになってしまう。しかし、色で判別を行うことで、被写体全体の領域４０９で被写体速度を算出することができる。以上のようにして、被写体を判別する。
【００２６】
以下、本実施形態の特徴的な部分である、距離マップを用いた被写体ベクトルへの重み付け方法に関して説明する。
【００２７】
図２のＳ２０８において、ＣＰＵ１０３は、Ｓ２０２で検出されたブロック領域ごとの距離マップを用いて、Ｓ２０６で被写体ベクトルとして判別された動きベクトルに重み付けをする。
【００２８】
図３、図５、図６を用いて、Ｓ２０８の処理について説明する。まず、図３は、あるフレームにおける動きベクトルのヒストグラムの推移を示した図である。なお、本実施形態では、図３（ａ）〜（ｃ）のみを説明に用いる。次に、図５は、あるフレームにおける被写体ベクトル領域を示した図である。最後に、図６は、図５に示すフレームにおける被写体速度算出領域の推移を示した図である。
【００２９】
図６（ａ１）〜（ａ６）は距離マップにおけるデフォーカス量を表わしており、合焦位置は０、被写体が合焦位置よりも手前にある場合は負の値、被写体が合焦位置よりも奥にある場合は正の値をとるものとする。また、合焦位置からのずれ量の大きさを数字で表わす。図６（ｂ１）〜（ｂ６）は動きベクトルを表わしており、動きベクトルの方向を矢印の方向で、動きベクトルの大きさを矢印の長さで示すものとする。
【００３０】
図５（ａ）の５０１のように分割されたブロック領域から検出された距離マップを図６（ａ１）、動きベクトルを図６（ｂ１）とする。また、動きベクトルの分布を、縦軸に「ベクトルのブロック数」をとり、横軸に「ベクトルの大きさ」をとってヒストグラムとして表わしたものを図３（ａ）とする。図３（ａ）の３０１は、Ｓ２０４において撮像面上の移動量Ｌ［ｍｍ］に変換された撮像装置１００の角速度ω［ｒａｄ／ｓｅｃ］である。
【００３１】
図２のＳ２０６において、ＣＰＵ１０３は、撮像装置１００の角速度３０１と同等程度の移動量である３０２を背景ベクトル、背景ベクトルとは異なり、動き量も小さいベクトル３０６を被写体ベクトルとして判別する。被写体ベクトル３０６として判別されたブロック領域を図５（ｂ）の５０６（領域５０６は領域５０３、５０４、５０５を合わせたもの）としたときの距離マップを示したものが図６（ａ２）、動きベクトルを示したものが図６（ｂ２）である。なお、図５の背景５０２の動きベクトル、被写体５０３〜５０５の動きベクトルを、それぞれ図３の３０２、３０３〜３０５で表わすものとする。
【００３２】
なお、図３において、被写体５０３の動きベクトル３０３を斜めハッチングで示し、被写体５０４の動きベクトル３０４をクロスハッチングで示し、被写体５０５の動きベクトル３０５をドットで示している。ここで、例えば被写体５０３に着目すると、被写体５０３である１台の車の中でも各部分において動きベクトルの検出誤差等がある。そのため、動きベクトルの大きさは、図６（ｂ２）の被写体５０３に対応する部分を見てもわかるように、−２ｍｍ、−１ｍｍ、０ｍｍの範囲に分布しており、図３（ａ）では、斜めハッチングの部分がこの３つにまたがっている。被写体５０４についても同様に、被写体５０４に対応する動きベクトル３０４の大きさは、図３（ａ）の−３ｍｍ、−２ｍｍにまたがって分布している。一方、被写体５０５に対応する動きベクトル３０５の大きさは、図６（ａ２）に示すように０なので、図３（ａ）では０ｍｍの位置に分布している。
【００３３】
図７は、距離マップで被写体ベクトルに重み付けするための信頼度テーブルである。図７の信頼度テーブルに従うと、被写体５０４に対応するブロック領域（図６（ａ３）の６０４）は、デフォーカス量が２０となっているため、信頼度が０％となる。また、被写体５０５に対応するブロック領域（図６（ａ３）の６０５）は、デフォーカス量が−１０となっているため、信頼度が５０％となる。つまり、ピントがずれていてぼけてしまっている被写体は、流し撮りにおいて止めたい被写体部分ではないであろうと判断する。なお、図７の閾値は一例であり、これに限定されるものではない。
【００３４】
図３（ｂ）、図６（ａ４）、図６（ｂ３）は、図２のＳ２０８の処理を行った後の状態を示す図である。図５の被写体５０４に対応する図６（ａ３）のブロック領域６０４の信頼度が０％となっているため、図３（ａ）の動きベクトル３０４は、図３（ｂ）の３０７のように被写体ベクトルから除外される。図６（ａ３）のブロック領域６０５、すなわち図５（ｂ）の被写体５０５に対応するブロック領域の信頼度が５０％となっているため、図３（ａ）の動きベクトル３０５は、図３（ｂ）のように被写体ベクトルに含まれるブロック数が１／２となる。以上のようにして、距離マップを用いて、被写体ベクトルに重み付けを行う。
【００３５】
図２のＳ２０９において、ＣＰＵ１０３は、画像処理装置１０７を用いて、距離マップと被写体ベクトルが合焦位置と同等な連続領域を抽出する。本実施形態では、複数領域が抽出された場合、最も大きな連続領域を抽出するものとするが、画面中央など構図から抽出領域を判断しても良い。
【００３６】
図３と図６を用いて、Ｓ２０９の処理について説明する。図６（ａ５）のブロック領域６０５は、合焦位置のブロック領域と隣接していないため、異なる被写体の動きベクトルとして判別される。したがって、図３（ｂ）の動きベクトル３０５は、図３（ｃ）の３０８のように被写体ベクトルから除外される。
【００３７】
以上のようにして、最終的な被写体ベクトル領域を特定し、被写体ベクトル領域に含まれる動きベクトルを平均することで、被写体ベクトルを算出する。
【００３８】
図２のＳ２１０において、ＣＰＵ１０３は、画像処理装置１０７を用いて被写体ベクトルから被写体速度を算出する。あるフレーム間における被写体の像面上の移動量（被写体ベクトルの大きさ）をｖ［ｍｍ］、焦点距離をｆ［ｍｍ］、フレームレートをｆｐｓ［ｆｒａｍｅ／ｓｅｃ］としたとき、式（３）を用いて、被写体の撮像面上の移動量（被写体ベクトルの大きさ）ｖ［ｍｍ］を角速度ωv［ｒａｄ／ｓｅｃ］に変換する。
【００３９】
ωv＝ｆｐｓ×tan-1（ｖ／ｆ）        …（３）
そして、撮像装置１００の角速度ω［ｒａｄ／ｓｅｃ］、フレーム間における被写体ベクトルの角速度変換値をωv［ｒａｄ／ｓｅｃ］としたとき、式（４）を用いて、被写体角速度ωs［ｒａｄ／ｓｅｃ］を算出する。
【００４０】
ωs＝（ω＋ωv）                               …（４）
以上のようにして、被写体速度を算出する。
【００４１】
Ｓ２１１において、ＣＰＵ１０３は、露光動作を行うかどうかの判定を行う。なお、ここでは操作部１１１に含まれるシャッターボタンの全押し（以降、ＳＷ２のＯＮ）がなされたかどうかの判定を行う。ＳＷ２のＯＮが行われていない場合、ＣＰＵ１０３は、Ｓ２０１からＳ２１０までの動作を繰り返し行う。ＳＷ２のＯＮが行われた場合、Ｓ２１２へ進む。
【００４２】
Ｓ２１２において、ＣＰＵ１０３は、撮像素子１０２を露光させている間、Ｓ２１０で算出した被写体速度と、撮像装置１００の角速度の差分値に基づいて、光学系１０１のシフトレンズを動作させ、流し撮り撮影のアシストを行う。
【００４３】
図８は、被写体が左右だけでなく前後にも移動している、すなわち、被写体距離も変化している場合の例を示した図である。図８（ａ）において、あるｎフレーム目の被写体の位置を８０１、ｎ＋１フレーム目の被写体の位置を８０２とすると、本来の被写体速度に該当する移動量ｖ0を表わしているのは８０３である。しかしながら、被写体距離固定として被写体の移動量を検出すると、像面上の移動量８０８（ｖ2）が同じである８０４（ｖ1）が被写体の移動量として検出されてしまう。
【００４４】
図８（ｂ）において、ＳＷ２がＯＮされる前の被写体の移動量をｖ0，ｖ1，ｖ2、ＳＷ２がＯＮされた後、すなわち、露光中の被写体の移動量をｖ0'，ｖ1'，ｖ2'とすると、被写体が等速運動（ｖ0＝ｖ0'）している場合でも、像面上の移動量は変化してしまう（ｖ2≠ｖ2'）。したがって、被写体距離固定として被写体距離が変化してしまう被写体の移動量を検出するためには、ＳＷ２がＯＮされる前の被写体の移動量ｖ1ではなく、ＳＷ２がＯＮされた後の被写体の移動量ｖ1'を予測する必要がある。本実施形態では距離マップにより、被写体距離（Ｌ1，Ｌ2）を検出できるため、式（５）を用いて、本来の被写体速度に該当する移動量ｖ0を算出する。
【００４５】
ｖ0＝√（Ｌ02＋ｖ12）
Ｌ0＝√（Ｌ12−ｖ12）−Ｌ2       …（５）
そして、上記演算結果と式（６）を用いて、ＳＷ２がＯＮされた後の移動量ｖ1'を算出する。
【００４６】
ｖ1'＝２√（ｖ02−Ｌ02）−ｖ1
ｖ0'＝ｖ0
Ｌ0'＝２Ｌ0                                            …（６）
上記移動量ｖ1'を用いて算出した被写体速度をもとにシフトレンズを動作させることで、被写体が左右だけでなく前後にも移動している場合にも流し撮り撮影のアシストを行うことができる。このように、流し撮り撮影のユーザ補助において、被写体領域、及び、被写体速度をより高精度に検出することが可能となる。
【００４７】
なお、本実施形態では、図９（ａ）のような複数の被写体の中から１つの被写体９０１に絞り込む例を説明した。しかし、図９（ｂ）のように向かってくる被写体、すなわち、同一被写体内でも被写体距離が異なる領域があるものに対しても、上記と同様の処理で９０２のように被写体速度を算出する領域を制限することができる。
【００４８】
また、本実施形態においてはシフトレンズにより被写体の結像位置を補正する例を示したが、本発明はこれに限定されるものではなく、例えば撮像素子１０２自体をシフトさせるなどといった形態でも実現することが可能である。
【００４９】
（第２の実施形態）
この第２の実施形態では、撮像装置の構成は、図１で示した第１の実施形態の撮像装置１００の構成と同様であるため、ここでは説明を省略する。
【００５０】
図１０は、第２の実施形態における流し撮り撮影をアシストする動作の流れを示したフローチャートである。なお、このフローは、例えば操作部１１１に含まれるシャッターボタンの半押しなどにより開始させることが可能である。また、この流し撮り撮影のアシスト動作は、ライブビューや測光センサなどにより連続的に複数フレームの画像を取得している状態で行われる。
【００５１】
まず、Ｓ１００１において、ＣＰＵ１０３は、ユーザが操作部１１１を用いて設定した測距位置を取得する。なお、Ｓ２０１〜Ｓ２０７に関しては、第１の実施形態における図２のＳ２０１〜Ｓ２０７と同様であるため、ここでは説明を省略する。
【００５２】
以下、本実施形態の特徴部分である、測距位置と距離マップを用いた動きベクトルへの重み付け、及び、被写体ベクトルの算出方法について説明する。
【００５３】
Ｓ１００２において、ＣＰＵ１０３は、Ｓ１００１で取得した測距位置（図１１の１１０１）と対応する距離マップと動きベクトルのブロック領域を検出する。Ｓ１００３において、ＣＰＵ１０３は、Ｓ１００２で検出したブロック領域の距離マップと動きベクトルを用いて、他ブロックの距離マップと動きベクトルに重み付けを行う。
【００５４】
図３、図５、図１１、図１２を用いて、Ｓ１００２、Ｓ１００３の動作の詳細について説明する。まず、図３は、あるフレームにおける動きベクトルのヒストグラムの推移を示した図である。なお、本実施形態では、（ａ）と（ｄ）のみを説明に用いる。次に、図５は、あるフレームにおける被写体ベクトル領域を示した図である。そして、図１１は、図５に示すフレームにおける被写体速度算出領域の推移を示した図である。図１１（ａ１）〜（ａ４）は測距位置を基準とした被写体距離の差分値を示し、図１１（ｂ１）〜（ｂ４）は動きベクトルを示している。最後に、図１２は、被写体ベクトルに重み付けするための信頼度テーブルを示している。図１２（ａ）は距離マップの信頼度テーブル、図１２（ｂ）は動きベクトルの信頼度テーブルを示している。
【００５５】
第１の実施形態と同様、図３の３０６を被写体ベクトル、図５（ｂ）の５０６（領域５０６は領域５０３、５０４、５０５を合わせたもの）を被写体ベクトルとして判別されたブロック領域とする。また、図５の背景５０２の動きベクトル、被写体５０３〜５０５の動きベクトルを、それぞれ図３の３０２、３０３〜３０５で表わすものとする。また、図１１（ａ１）は、被写体ベクトルとして判定されたブロック領域５０６の距離マップ、図１１（ｂ１）は、被写体ベクトルとして判定されたブロック領域５０６の動きベクトルを表わしている。
【００５６】
図１１（ａ１）の１１０１を測距位置としたとき、図１２（ａ）の距離マップの信頼度テーブルに従うと、図１１（ａ１）のブロック領域６０４は、被写体距離の差分値が２０となっているため、信頼度が０％となる。また、ブロック領域６０５は、被写体距離の差分値が−１０となっているため、信頼度が５０％となる。ここで、距離マップの信頼度テーブルによる重み付けの結果を、図１１（ａ２）に示す。なお、『×』は信頼度０％、『／』は、信頼度５０％を示している。
【００５７】
同様に、図１２（ｂ）の動きベクトルの信頼度テーブルに従うと、式（７）の条件下では、図１１（ｂ１）のブロック領域６０４は信頼度が０％、ブロック領域６０５は信頼度が５０％となる。ここで、動きベクトルの信頼度テーブルによる重み付け結果を、図１１（ｂ２）に示す。なお、『×』は信頼度０％、『＼』は、信頼度５０％を示している。
【００５８】
ブロック領域６０４：動きベクトルの大きさの差≧ｂ
ブロック領域６０５：動きベクトルの大きさの差＝（ａ＋ｂ）／２      …（７）
そして、式（８）を用いて、距離マップと動きベクトルの信頼度を掛け合わせることで、被写体ベクトルへの重み付け量を決定する。なお、図１１（ａ３）、（ｂ３）は、被写体ベクトルへの重み付け量を示しており、『×』は信頼度２５％、『＼』は信頼度５０％を表わしている。
【００５９】
（被写体ベクトル信頼度）＝（距離マップ信頼度）×（動きベクトル信頼度）
…（８）
このようにして、測距位置に対して被写体距離と動きベクトルが類似しているブロック領域を被写体領域として検出するように重み付けを行う。なお、上記で説明した距離マップと動きベクトルの重み付け方法は一例であり、これに限定されるものではない。以上、Ｓ１００２、Ｓ１００３の詳細について示した。
【００６０】
図１０のＳ１００４の処理により測距点位置と連続した領域を抽出することで、図１１のブロック領域６０５は除外されるため、図１１（ａ３）、（ｂ３）は、図１１（ａ４）、（ｂ４）のようになる。なお、Ｓ１００４に関しては、第１の実施形態で説明した図２のＳ２０９と基本的には同じであり、合焦位置を基準にするか、測距位置を基準にするかの違いだけであるため、ここでは説明を省略する。
【００６１】
図３（ｄ）は、図３（ａ）に対して、Ｓ１００３〜Ｓ１００４の処理を行った結果である。図３（ａ）の３０４は距離マップの信頼度が低いため、３０５は測距位置から連続していない領域であるため、それぞれ図３（ｄ）の３０９、３１０のように被写体ベクトルから除外される。また、図１１（ａ４）の６０３のように信頼度による重み付けをすることで、図３の３１１のように被写体ベクトルに対して影響を与える割合を減らすことができる。
【００６２】
Ｓ２１０において、ＣＰＵ１０３は、画像処理装置１０７を用いて、上記のように重み付けされた被写体ベクトルから被写体速度を算出する。なお、被写体速度の算出方法に関しては、第１の実施形態と同様であるため、ここでは説明を省略する。Ｓ２１１，Ｓ２１２に関しては、第１の実施形態と同様であるため、ここでは説明を省略する。上記のようなステップを経ることで、流し撮り撮影をアシストすることができる。
【００６３】
以上により、測距位置を基準とした被写体ベクトルの検出が可能となるため、よりユーザが止めたい被写体領域に合わせた被写体速度を検出することが可能となる。
【００６４】
なお、本実施形態においては、シフトレンズにより被写体の結像位置を補正する例を示したが、本発明はこれに限定されるものではなく、例えば撮像素子１０２自体をシフトさせるなどといった形態でも実現することが可能である。
【００６５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６６】
１００：撮像装置、１０１：光学系、１０２：撮像素子、１０３：中央演算装置（ＣＰＵ）、１０４：一次記憶装置、１０５：角速度センサ、１０６：測距センサ、１０７：画像処理装置、１０８：記録媒体、１１０：表示部、１１１：操作部
【図１】
0006497987.tif 000002
【図２】
0006497987.tif 000003
【図３】
0006497987.tif 000004
【図４】
0006497987.tif 000005
【図５】
0006497987.tif 000006
【図６】
0006497987.tif 000007
【図７】
0006497987.tif 000008
【図８】
0006497987.tif 000009
【図９】
0006497987.tif 000010
【図１０】
0006497987.tif 000011
【図１１】
0006497987.tif 000012
【図１２】
0006497987.tif 000013