(57)【特許請求の範囲】
【請求項１】
撮像手段と、
前記撮像手段を所定の方向に動かしながら複数の画像を連続的に撮影する際の前記撮像手段の動き情報を検出する検出手段と、
前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出手段と、
前記算出手段が算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成手段と、を備え、
前記撮像手段が前記複数の画像を連続的に撮影する際の動きはパンニングまたはティルティングであり、
前記検出手段は、前記動き情報として前記撮像手段の角速度と角加速度を検出し、
前記算出手段は、前記検出手段により検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をそれぞれのデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内であり、且つ、前記複数の画像のフレームに対して検出された前記角速度が第１の閾値以下である場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮しないことを特徴とする撮像装置。
【請求項２】
前記算出手段は、前記探索位置にデフォルト設定値を用い、且つ、前記探索範囲をデフォルト設定値よりも狭く設定することを特徴とする請求項１に記載の撮像装置。
【請求項３】
撮像手段と、
前記撮像手段を所定の方向に動かしながら複数の画像を連続的に撮影する際の前記撮像手段の動き情報を検出する検出手段と、
前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出手段と、
前記算出手段が算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成手段と、を備え、
前記撮像手段が前記複数の画像を連続的に撮影する際の動きはパンニングまたはティルティングであり、
前記検出手段は、前記動き情報として前記撮像手段の角速度と角加速度を検出し、
前記算出手段は、前記検出手段により検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をそれぞれのデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内であり、且つ、前記複数の画像のフレームに対して検出された前記角速度が第１の閾値より大きい場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮することを特徴とする撮像装置。
【請求項４】
前記算出手段は、前記動き情報に基づいて前記探索位置をデフォルト設定値から移動させ、前記探索範囲をデフォルト設定値と同じに設定することを特徴とする請求項３に記載の撮像装置。
【請求項５】
撮像手段と、
前記撮像手段を所定の方向に動かしながら複数の画像を連続的に撮影する際の前記撮像手段の動き情報を検出する検出手段と、
前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出手段と、
前記算出手段が算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成手段と、を備え、
前記撮像手段が前記複数の画像を連続的に撮影する際の動きはパンニングまたはティルティングであり、
前記検出手段は、前記動き情報として前記撮像手段の角速度と角加速度を検出し、
前記算出手段は、前記検出手段により検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をそれぞれのデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内にない場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮しないことを特徴とする撮像装置。
【請求項６】
前記算出手段は、前記複数の画像のフレームに対して検出された前記角速度が第２の閾値以上である場合に、前記探索位置にデフォルト設定値を用い、前記探索範囲をデフォルト設定値よりも広く設定することを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記算出手段は、前記複数の画像のフレームに対して検出された前記角速度が第２の閾値よりも小さい場合に、前記探索位置にデフォルト設定値を用い、前記探索範囲をデフォルト設定値よりも広く、且つ、前記角速度が第２の閾値以上である場合に前記探索範囲に設定される広さよりも狭く設定することを特徴とする請求項５に記載の撮像装置。
【請求項８】
前記撮像手段により撮影された前記複数の画像のそれぞれにおいて、前記算出手段で算出した動きベクトルが前記検出手段により検出された前記動き情報に近い領域を背景領域として、前記複数の画像のそれぞれから主被写体領域を前記背景領域から抽出す抽出手段を備え、
前記合成手段は、前記複数の画像における前記主被写体領域の位置を合わせると共に前記背景領域にフィルタリング処理を施して前記合成画像を生成することを特徴とする請求項１乃至７のいずれか１項に記載の撮像装置。
【請求項９】
前記合成手段は、前記撮像手段により撮影された複数の画像を撮影順に位置合わせすることにより広角画像を合成し、
前記算出手段は、ｎを自然数として前記撮像手段により撮影されたｎ枚目の画像とｎ＋１枚目の画像との間で前記被写体の位置を合わせるための前記被写体の移動量を示すベクトルとして前記動きベクトルを算出することを特徴とする請求項１乃至７のいずれか１項に記載の撮像装置。
【請求項１０】
撮像装置の制御方法であって、
撮像手段をパンニングまたはティルティングさせながら複数の画像を連続的に撮影する撮影ステップと、
前記撮影ステップでの前記撮像手段の動き情報として前記撮像手段の角速度と角加速度を検出する検出ステップと、
前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出ステップと、
前記算出ステップで算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成ステップと、を有し、
前記算出ステップでは、前記検出ステップで検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内であり、且つ、前記複数の画像のフレームに対して検出された前記角速度が第１の閾値以下である場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮しないことを特徴とする撮像装置の制御方法。
【請求項１１】
撮像装置の制御方法であって、
撮像手段をパンニングまたはティルティングさせながら複数の画像を連続的に撮影する撮影ステップと、
前記撮影ステップでの前記撮像手段の動き情報として前記撮像手段の角速度と角加速度を検出する検出ステップと、
前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出ステップと、
前記算出ステップで算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成ステップと、を有し、
前記算出ステップでは、前記検出ステップで検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内であり、且つ、前記複数の画像のフレームに対して検出された前記角速度が第１の閾値より大きい場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮することを特徴とする撮像装置の制御方法。
【請求項１２】
撮像装置の制御方法であって、
撮像手段をパンニングまたはティルティングさせながら複数の画像を連続的に撮影する撮影ステップと、
前記撮影ステップでの前記撮像手段の動き情報として前記撮像手段の角速度と角加速度を検出する検出ステップと、
前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出ステップと、
前記算出ステップで算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成ステップと、を有し、
前記算出ステップでは、前記検出ステップで検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内にない場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮しないことを特徴とする撮像装置の制御方法。
【請求項１３】
コンピュータを請求項１乃至９のいずれか１項に記載の撮像装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、撮像装置の制御方法及びプログラムに関し、特に、主被写体又は背景の移動量を検出する技術に関する。
【背景技術】
【０００２】
撮像装置をパンニングさせて撮影を行った場合に、得られた複数の画像フレーム間での被写体の移動量を検出して広角画像を合成する画像処理が行われている。画像フレーム間の被写体の移動量を検出する方法としては、撮像装置の動きに関するジャイロセンサや加速度センサ等の情報を用いる方法がある（特許文献１参照）。また、撮像装置の動きの大きさを示す情報を用いて、画像フレーム間の動き量を検出するための探索範囲を変更する技術が提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２６１３０９号公報
【特許文献２】特開２０１３−１６５４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来技術では、撮像装置に発生する熱や撮像装置の操作等に起因して撮像装置の動きに関する情報が正しく測定されなかった場合、画像フレーム間での正しい動き量を検出することができずに、不自然な合成画像が生成されてしまうという問題がある。
【０００５】
本発明は、撮像装置の動き量を正確に検出して画像合成を行うことができる撮像装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る撮像装置は、撮像手段と、前記撮像手段を所定の方向に動かしながら複数の画像を連続的に撮影する際の前記撮像手段の動き情報を検出する検出手段と、前記撮像手段により撮影された前記複数の画像の間での被写体の移動量を示す動きベクトルを算出する算出手段と、前記算出手段が算出した動きベクトルに基づいて、前記撮影された複数の画像を位置合わせして合成することにより合成画像を生成する合成手段と、を備え、前記撮像手段が前記複数の画像を連続的に撮影する際の前記撮像手段の動きは、前記撮像手段のパンニングまたはティルティングであり、前記検出手段は、前記動き情報として前記撮像手段の角速度と角加速度を検出し、前記算出手段は、前記検出手段により検出された前記動き情報に基づき、前記動きベクトルを算出するための探索位置と探索範囲の少なくとも一方をそれぞれのデフォルト設定値から変更して前記動きベクトルを算出し、前記複数の画像のフレームに対して検出された前記角加速度の値が所定の範囲内であり、且つ、前記複数の画像のフレームに対して検出された前記角速度が第１の閾値以下である場合に、前記探索位置と前記探索範囲の決定に前記動き情報を考慮しないことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、撮像装置の動きに関する情報が正しく検出されなかった場合でも、画像フレーム間の正しい動き量を検出することができ、これにより自然な合成画像を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る撮像装置の一例であるデジタルカメラの概略構成を示すブロック図である。
【図２】図１に示すデジタルカメラをパンニングさせながら連続撮影を行うことによって得られた画像の例と、画像を合成した流し撮り画像の例を示す図である。
【図３】図１に示すデジタルカメラによる流し撮り画像の合成処理のフローチャートである。
【図４】ステップＳ３０３での動き状態判定処理のフローチャートである。
【図５】ステップＳ３０１の撮影中に動き検出部から出力される角速度と角加速度の変化パターンの例を示す図である。
【図６】基準状態でのステップＳ３０４における動きベクトルの探索位置と探索範囲の設定方法を模式的に示す図である。
【図７】図５（ａ）〜（ｄ）の動き検出部からの出力値に対する動きベクトルの探索位置と探索範囲の設定方法を説明する図である。
【図８】図１に示すデジタルカメラによる広角画像の合成処理のフローチャートである。
【図９】ステップＳ９０１で撮影した複数の画像と、複数の画像を合成した広角画像の図である。
【図１０】ステップＳ８０６での複数の画像の位置合わせ処理を模式的に説明する図である。
【図１１】ステップＳ８０７での複数の画像の境界付近を合成する処理を模式的に説明する図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、添付図面を参照して説明する。
【００１０】
図１は、本発明の実施形態に係る撮像装置の一例であるデジタルカメラ１００の概略構成を示すブロック図である。デジタルカメラ１００は、制御部１０１、ＲＯＭ１０２、ＲＡＭ１０３、光学系１０４、撮像部１０５、Ａ／Ｄ変換部１０６、画像処理部１０７、記憶媒体１０８、表示部１０９及び動き検出部１１０を有し、これらはバス１１１により通信可能に接続されている。
【００１１】
ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、デジタルカメラ１００を構成する各ブロックの動作プログラム、各ブロックの動作に必要なパラメータ等を格納する。制御部１０１は、ＣＰＵを有し、デジタルカメラ１００を構成する各ブロックの動作プログラム等をＲＯＭ１０２から読み出し、ＲＡＭ１０３に展開することにより、各ブロックの動作を制御すると共に、デジタルカメラ１００の全体的な制御を行う。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、デジタルカメラ１００を構成する各ブロックの動作において出力されるデータ等を一時的に記憶する。また、ＲＡＭ１０３は、制御部１０１のＣＰＵが動作プログラム等を展開するための作業領域を有する。
【００１２】
光学系１０４は、フォーカスレンズやズームレンズ等のレンズ群や絞り等を有し、被写体像（光学像）を撮像部１０５に結像させる。撮像部１０５は、光学系１０４を通して結像した光学像を光電変換によりアナログ電気信号に変換する撮像素子であり、具体的には、ＣＣＤセンサやＣＭＯＳセンサ等である。Ａ／Ｄ変換部１０６は、撮像部１０５から入力されたアナログ電気信号をデジタル信号である画像データに変換するＡ／Ｄ変換を行い、生成した画像データをＲＡＭ１０３に出力して、記憶させる。
【００１３】
画像処理部１０７は、ＲＡＭ１０３に記憶された画像データに対してホワイトバランス（ＷＢ）調整、色補間、フィルタリング等、各種の画像処理を実行する。本実施形態において画像処理部１０７で実行される特徴的な処理については後述する。記憶媒体１０８は、例えば、デジタルカメラ１００の本体に対して着脱可能なメモリカード等であり、ＲＡＭ１０３に記憶されている各種の画像データを保存し、また、保存した画像データをＲＡＭ１０３へ供給する。表示部１０９は、液晶ディスプレイ等の表示装置を含む。なお、撮像部１０５、画像処理部１０７及びＲＡＭ１０３が協働することによって、表示部１０９に、所謂、スルー表示（ライブビュー表示）を行うことができる。
【００１４】
動き検出部１１０は、ジャイロセンサ等を有し、デジタルカメラ１００の動き量（以下「カメラ動き情報」という）を検出する。具体的には、カメラ動き情報として、デジタルカメラ１００の単位時間当たりの角度変化に基づく、ヨー方向とピッチ方向の各方向の角速度と角加速度が検出される。
【００１５】
＜第１実施形態＞
次に、画像処理部１０７の特徴的な画像処理について説明する。ここでは、主被写体の動きに合わせてデジタルカメラ１００をパンニングさせながら撮影を行うことにより、主被写体の動きが止まり、背景を流したような効果がある画像（流し撮り画像）を生成する例を取り上げる。
【００１６】
図２（ａ），（ｂ），（ｃ），（ｄ）はそれぞれ、デジタルカメラ１００をパンニングさせながら連続撮影を行うことによって得られた画像２０１，２０２，２０３の例を示す図である。また、図２（ｅ）は、図２（ａ）〜（ｄ）の画像を合成した合成画像（流し撮り画像）２０５の例を示す図である。
【００１７】
図２（ａ）〜（ｃ）の画像２０１〜２０３は、デジタルカメラ１００のパンニング動作を検出するために用いられる。また、図２（ｄ）の画像２０４から主被写体２２０（ここでは、車と運転手）を含む主被写体領域２１０が特定される。そして、画像２０１〜２０４を用いて、主被写体２２０以外の領域を背景として、背景画像を流すような画像処理が行われる。これにより、主被写体２２０だけが止まって背景が流れているような、図２（ｅ）に示す合成画像２０５（流し撮り画像）を生成することができる。画像処理部１０７は、制御部１０１の制御下で、合成画像２０５を生成する。
【００１８】
図３は、デジタルカメラ１００による流し撮り画像の合成処理のフローチャートである。図３の各ステップの処理は、制御部１０１が、ＲＯＭ１０２から読み出した所定のプログラムをＲＡＭ１０３上に展開し、デジタルカメラ１００を構成する各部の動作や処理を制御することによって実現される。
【００１９】
ステップＳ３０１において制御部１０１は、画像情報を取得する。具体的には、ステップＳ３０１では、制御部１０１の制御下において、撮像部１０５がデジタルカメラ１００のパンニングにより時間的に連続する複数の画像を取得（撮影）する。ステップＳ３０２において制御部１０１は、デジタルカメラ１００のパンニング中のカメラ動き情報を動き検出部１１０により取得する。つまり、ステップＳ３０１での撮影中に、動き検出部１１０は、カメラ動き情報として、ヨー方向とピッチ方向の各方向の動きを検出する。
【００２０】
ステップＳ３０３において制御部１０１は、ステップＳ３０２で取得したカメラ動き情報に基づき、デジタルカメラ１００の動き状態を判定する。ステップＳ３０３の動き状態判定処理により、動き検出部１１０から出力されるカメラ動き情報が所定の精度を満たしているか否かが判定される。なお、動き状態判定処理の詳細については後述する。
【００２１】
ステップＳ３０４において制御部１０１は、ステップＳ３０１で撮影した画像間の動きベクトルの探索位置と探索範囲を設定する。このとき、ステップＳ３０３での動き状態判定処理の判定結果に基づいて、制御部１０１は、動きベクトルの探索位置と探索範囲の設定方法を変更する。なお、ステップＳ３０４の処理の詳細については後述する。
【００２２】
ステップＳ３０５において制御部１０１は、ステップＳ３０４で設定した動きベクトルの探索位置と探索範囲で動きベクトル探索を行い、動きベクトルを検出する。例えば、図２（ｃ），（ｄ）の画像２０３，２０４での画像間の動きベクトルを検出する。動きベクトルの検出には、テンプレートマッチング方式等の一般的な手法を用いることができる。テンプレートマッチング方式では、基準となる画像（基準画像）と対象画像（ベクトル検出画像）との間のずれ量を所定の範囲のテンプレートを作って比較し、比較値が最も小さくなる位置を動きベクトルとして検出する。
【００２３】
続いて、ステップＳ３０６において制御部１０１は、ステップＳ３０５で検出した動きベクトルに対して、ステップＳ３０２で検出したカメラ動き情報に近い動きベクトルを背景領域であると判定し、それ以外を主被写体領域であると判定する。こうして、主被写体領域が、背景領域から分離、抽出される。
【００２４】
ステップＳ３０７において制御部１０１は、ステップＳ３０６で判定した背景領域に対してボカシ処理を含めた画像処理を行い、流し撮り画像を合成する。背景領域に対してボカシ処理を行う方法としては、デジタルカメラ１００のパンニングの方向に対して方向性を持たせたフィルタリング処理を行う等の周知の手法（例えば、特開２００６−１６５６００号公報記載の技術）を用いることができる。ステップＳ３０７の処理の終了により、本処理は終了となる。
【００２５】
次に、上述したステップＳ３０３の動き状態判定処理の詳細について説明する。図４は、動き状態判定処理のフローチャートである。ステップＳ４０１において制御部１０１は、ステップＳ３０１において複数の画像が撮影される間の動き検出部１１０からの出力である角加速度が安定していたか否かを判定する。
【００２６】
図５は、動き検出部１１０から出力される角速度と角加速度の変化パターンの例を示す図である。ここでは、デジタルカメラ１００の動き状態を、角速度と角加速度を用いて４つの状態に分け、それぞれを図５（ａ）〜（ｄ）に示している。図５（ａ）〜（ｄ）の各図において、横軸には時系列的な撮影フレーム（時間）が取られており、縦軸には撮影フレームに対する角速度と角加速度が取られている。
【００２７】
角加速度の変化が大きい場合には、デジタルカメラ１００のパンニングにおける速度変化が不規則となっていると考えられる。そこで、角加速度の値のプラス側とマイナス側のそれぞれに閾値ＴＨ１，ＴＨ２を設け、閾値ＴＨ１，ＴＨ２の範囲を超える値を取る画像フレームがあった場合に、角加速度は安定してないと判定するものとする。閾値ＴＨ１，ＴＨ２の値は、実験結果に基づいて定めることができる。
【００２８】
図５（ａ）は、パンニングの角速度が遅く、且つ、角加速度が安定している例であり、図５（ｂ）は、パンニングの角速度が速く、且つ、角加速度が安定している例であり、いずれの場合も撮影時のパンニング動作が安定している例である。一方、図５（ｃ），（ｄ）は、角加速度が安定していないために、パンニングの角速度の変化が大きい、つまり、撮影時のパンニングの動作が安定しない例である。
【００２９】
制御部１０１は、角加速度が安定している場合（Ｓ４０１でＹＥＳ）、処理をステップＳ４０２へ進め、角加速度が安定していない場合（Ｓ４０１でＮＯ）、処理をステップＳ４０５へ進める。
【００３０】
ステップＳ４０２において制御部１０１は、動き検出部１１０からの出力である角速度の絶対値が第１の閾値以下であるか否かを判定する。つまり、角加速度が安定している状態であると共に、パンニング中の状態が静止に近いか否かを判定する。
【００３１】
ステップＳ４０２の判定について、図５（ａ），（ｂ）を例に説明する。図５（ａ），（ｂ）では、角速度に第１の閾値ＴＨ１１が設定されている。図５（ａ）では、角速度が±ＴＨ１の範囲内に収まっている。このようにパンニング量が小さい場合には、例えば、ユーザによる手振れの影響が大きく現れていると考えられる。また、動き検出部１１０からの出力値は、デジタルカメラ１００の内部で発生する熱や撮影環境等の影響によりオフセットが一定とならない。そのため、動き検出部１１０からの信号値が小さい場合には、オフセットの揺らぎに動き検出部１１０からの信号値が埋もれてしまい、動き検出部１１０からの信号値の精度が低下している可能性が高いと考えられる。一方、図５（ｂ）では、角速度が常に＋ＴＨ１１よりも大きい範囲にある。この場合、前述の場合と異なり、動き検出部１１０からの信号値に精度低下はないと判定することができる。
【００３２】
よって、制御部１０１は、角速度の絶対値が第１の閾値ＴＨ１１以下である場合（Ｓ４０２でＹＥＳ）、処理をステップＳ４０３へ進める。ステップＳ４０３において制御部１０１は、動き検出部１１０からの出力（角速度、角加速度）に信頼性がないと判定し、動きベクトルを探索するための探索位置と探索範囲の設定に対してカメラ動き情報を考慮しない。一方、制御部１０１は、角速度の絶対値が第１の閾値ＴＨ１１より大きい場合（Ｓ４０２でＮＯ）、処理をステップＳ４０４へ進める。ステップＳ４０４において制御部１０１は、動き検出部１１０からの出力に信頼性があると判定し、動きベクトルを探索するための探索位置と探索範囲の設定に対してカメラ動き情報を考慮する。
【００３３】
ステップＳ４０５において制御部１０１は、動き検出部１１０からの出力である角速度の絶対値が第２の閾値以上となっている画像フレームがあるか否かを判定する。ステップＳ４０５の判定について、図５（ｃ），（ｄ）を例に説明する。図５（ｃ），（ｄ）では、角速度に第２の閾値ＴＨ１２が設定されている。図５（ｃ）には、角速度が第２の閾値ＴＨ１２を超えている画像フレームがあるが、図５（ｄ）には、角速度が第２の閾値ＴＨ１２を超えている画像フレームはない。
【００３４】
制御部１０１は、角速度が第２の閾値ＴＨ１２以上の画像フレームがある（Ｓ４０５でＹＥＳ）、処理をステップＳ４０６へ進める。ステップＳ４０６において制御部１０１は、動き検出部１１０からの出力に信頼性がないと判定し、動きベクトルを探索するための探索位置と探索範囲の設定に対してカメラ動き情報を考慮しない。一方、制御部１０１は、角速度が第２の閾値ＴＨ１２より小さい場合（Ｓ４０５でＮＯ）、処理をステップＳ４０７へ進める。ステップＳ４０７において制御部１０１は、動き検出部１１０からの出力に信頼性がないと判定し、動きベクトルを探索するための探索位置と探索範囲の設定に対してカメラ動き情報を考慮しない。
【００３５】
なお、ステップＳ４０１において角加速度の値が安定していないと判定された時点で、カメラ動き情報に信頼性がないと判定されている。本実施形態では、ステップＳ３０３の次のステップＳ３０４において第２の閾値ＴＨ１２に応じて異なる設定を行うため、ステップＳ４０５〜Ｓ４０７の処理を設けている。また、ここでは、第２の閾値ＴＨ１２として１つの値を設けた場合について説明したが、図５（ｄ）に示すように、角速度のプラス側とマイナス側にそれぞれ第２の閾値ＴＨ１２と第３の閾値ＴＨ１３を設けてもよい。この場合、全ての画像フレームの角速度が、第２の閾値ＴＨ１２と第３の閾値ＴＨ１３との間の範囲に収まっているか否かが判定され、処理は、納まっていない場合はステップＳ４０６へ、納まっている場合はステップＳ４０７へ進められる。
【００３６】
制御部１０１は、ステップＳ４０３，４０４，４０６，４０７により本処理を終了させ、ステップＳ３０４へ処理を進める。
【００３７】
次に、ステップＳ３０４での画像間の動きベクトルの探索位置と探索範囲の設定処理の詳細について説明する。動きベクトルを探索するための設定は、ステップＳ３０３のカメラ動き状態判定結果を用いて制御される。ステップＳ３０３のカメラ動き状態判定でカメラ動き情報が信頼に足ると判定された場合を基本状態と規定し、この基本状態で動きベクトルを探索するための位置と範囲の設定方法について、図６を参照して説明する。
【００３８】
図６は、基準状態での動きベクトルの探索位置と探索範囲の設定方法を模式的に示す図である。図６（ａ）は、動きベクトルを探索するためのテンプレート位置を説明する図である。テンプレートマッチングでは、被写体の移動量を検出するために、基準画像と動きベクトルの検出対象であるベクトル検出画像のいずれか一方の画像から、テンプレート画像と呼ばれる小領域の画像を決定する。図６（ａ）には、ベクトル検出画像６０１に、等間隔に配置した複数のテンプレート画像群６２０が示されており、テンプレート画像群６２０のうちの１つを、説明の便宜上、テンプレート画像６２１としている。
【００３９】
図６（ｂ）は、基準画像６００とベクトル検出画像６０１の対応領域を説明する図である。基準画像６００とベクトル検出画像６０１には、破線６５１から破線６５２の間の範囲で、同じ被写体が写っているものとする。
【００４０】
ベクトル検出画像６０１で決定したテンプレート画像６２１の領域の位置を、起点（動きベクトルを算出するための探索位置のデフォルト設定値）とする。基準画像６００では、ベクトル検出画像６０１のテンプレート画像６２１に対応するテンプレート画像６２２の位置に対してカメラ動き情報分をオフセット６３１として移動させた位置を動きベクトルの探索開始位置とする。そして、この探索開始位置の周囲のベクトル探索範囲６４１（動きベクトルを算出するための探索範囲のデフォルト設定値）をテンプレート画像６２１と比較し、相関の高い位置とテンプレート画像６２１との位置のずれを動きベクトルとして検出する。この操作を、テンプレート画像群６２０の全ての領域について行い、テンプレート画像群６２０の画像数だけの動きベクトルを検出する。
【００４１】
ここで、カメラ動き情報は、動き検出部１１０からの出力値である角速度と角加速度であるため、これらの出力値を画像上の移動量に変換する必要があり、その変換には、例えば、下記式１を用いることができる。下記式１は、動き検出部１１０から出力される角速度から移動した角度を求め、画素ピッチで除算することで画像上の移動量を求める式である。
【００４２】
【数１】
0006594180.tif 000002
【００４３】
なお、画像上の移動量を求める方法は、これに限定されるものではない。例えば、画角が既知であれば、撮像部１０５での露出（撮像素子への電荷蓄積）開始タイミングから露出終了タイミングまでの各サンプリング周期で出力される角速度と画角とを積算した評価値を画素ピッチで除算することで、画像上の移動量を求めることができる。
【００４４】
続いて、動きベクトルの探索位置と探索範囲の設定を制御する方法について、図５乃至図７を参照して説明する。図７（ａ）〜（ｄ）はそれぞれ、図５（ａ）〜（ｄ）の動き検出部１１０からの出力値（角速度、角加速度）に対する動きベクトルの探索位置と探索範囲の設定方法を説明する図である。
【００４５】
動き検出部１１０からの出力値が図５（ａ）の通りである場合、動きベクトルの探索位置の設定は図７（ａ）に示すように行われ、基準画像７００に探索開始位置７２２ａとベクトル探索範囲７４０ａが設定される。探索開始位置７２２ａは、カメラ動き情報分をオフセットとして用いておらず、よって、ベクトル検出画像６０１のテンプレート画像６２１（図６参照）と同じ位置に設定される。また、ベクトル探索範囲７４０ａは、図６（ｂ）に示した基本状態の探索範囲と比べて、より狭い範囲に設定される。
【００４６】
動き検出部１１０からの出力値が図５（ｂ）の通りである場合、動きベクトルの探索位置の設定は図７（ｂ）に示すように行われ、基準画像７００に探索開始位置７２２ｂとベクトル探索範囲７４０ｂが設定される。図７（ｂ）は図６（ｂ）と同等である。探索開始位置７２２ｂはテンプレート画像６２２に、カメラ動き情報分のオフセット７３１はカメラ動き情報分のオフセット６３１に、ベクトル探索範囲７４０ｂはベクトル探索範囲６４１にそれぞれ対応している。図６（ｂ）を参照して説明した通り、動きベクトルの探索開始位置は、探索開始位置７２２ｂをオフセット７３１分だけ移動させた位置となる。
【００４７】
動き検出部１１０からの出力値が図５（ｃ）の通りである場合、動きベクトルの探索位置の設定は図７（ｃ）に示すように行われ、基準画像７００に探索開始位置７２２ｃとベクトル探索範囲７４０ｃが設定される。探索開始位置７２２ｃは、図７（ａ）の探索開始位置７２２ａと同じである。ベクトル探索範囲７４０ｃは、図７（ｂ）に示した基本状態のベクトル探索範囲７４０ｂ及び後述する図７（ｄ）に示すベクトル探索範囲７４０ｄよりも広い範囲に設定される。
【００４８】
動き検出部１１０からの出力値が図５（ｄ）の通りである場合、動きベクトルの探索位置の設定は図７（ｄ）に示すように行われ、基準画像７００に探索開始位置７２２ｄとベクトル探索範囲７４０ｄが設定される。探索開始位置７２２ｄは、図７（ａ）の探索開始位置７２２ａと同じである。ベクトル探索範囲７４０ｄは、図７（ｃ）に示したベクトル探索範囲７４０ｃよりも狭いが、図７（ｂ）に示した基本状態のベクトル探索範囲７４０ｂよりも広い範囲に設定される。
【００４９】
なお、図７（ａ）〜（ｄ）のそれぞれのベクトル探索範囲７４０ａ〜７４０ｄは、デジタルカメラ１００の撮像部１０５（撮像素子）のセンササイズ、焦点距離、画素数、画像間のパンニング時の角度、テンプレートの画像サイズに応じて実験的に決定される。例えば、ＡＰＳ-Ｃサイズの撮像素子、焦点距離が１８ｍｍ、１画像毎のパンニングの角度が２．５度、解像度が２０万画素、テンプレートの画像サイズが２５６×２５６画素の場合を考える。この場合、ベクトル探索範囲７４０ａは６４×６４画素、ベクトル探索範囲７４０ｂは１２８×１２８画素、ベクトル探索範囲７４０ｃは５１２×５１２画素、ベクトル探索範囲７４０ｄは２５６×２５６画素が目安となる。
【００５０】
以上の説明の通り、本実施形態では、動き検出部１１０が検出するデジタルカメラ１００の動き情報が信頼できるものか否かを判定し、動きベクトル検出の探索範囲や探索開始位置を変更することによって適切なベクトル検出を行う。これにより、デジタルカメラ１００で発生する熱やユーザのデジタルカメラ１００の操作によりデジタルカメラ１００の動きに関する情報が正しく測定されない場合でも、画像フレーム間で正しい動き量を検出することができる。したがって、パンニング撮影により得られた複数の画像から自然な流し撮り画像を合成することができる。
【００５１】
＜第２実施形態＞
第１実施形態では、所謂流し撮りによる流し撮り画像の合成処理について説明した。これに対して第２実施形態では、第１実施形態で説明した動きベクトルの探索位置と探索範囲を決定する構成を利用して、デジタルカメラ１００をパンニングさせて連続的に複数の画像を撮影し、撮影画像から広角画像を合成する処理について説明する。
【００５２】
図８は、デジタルカメラ１００による広角画像の合成処理のフローチャートである。図８の各ステップの処理は、制御部１０１が、ＲＯＭ１０２から読み出した所定のプログラムをＲＡＭ１０３上に展開し、デジタルカメラ１００を構成する各部の動作や処理を制御することによって実現される。
【００５３】
ステップＳ８０１〜Ｓ８０５のそれぞれの処理は、図３のフローチャートのステップＳ３０１〜３０５の処理と同じであるため、ここでの説明を省略する。なお、ステップＳ８０１で撮影した複数の画像の例を図９（ａ）に示す。
【００５４】
ステップＳ８０６において制御部１０１は、ステップＳ８０５の処理で検出した動きベクトルを用いて、パンニング撮影（ステップＳ８０１）により撮影した複数の画像（図９（ａ））を撮影順に位置合わせする。図１０は、複数の画像の位置合わせ処理を模式的に説明する図である。この位置合わせ処理では、動きベクトルｎ（ｎ：自然数）に基づき、ｎ枚目の画像（画像ｎ）とｎ＋１枚目の画像（画像ｎ＋１）との間で被写体の位置を合わせる。位置合わせ処理は、並進移動やアフィン変換、射影変換等の周知の幾何変換処理を用いることができる。
【００５５】
ステップＳ８０７において制御部１０１は、ステップＳ８０６で位置合わせした画像に対して、画像間の境界付近を合成する処理を行う。図１１は、複数の画像の境界付近を合成する処理を模式的に説明する図である。複数の画像の境界付近を合成する際には、位置合わせを行った画像ｎから、合成に用いる領域である動きベクトルｎに対応する領域である短冊ｎを切り出し、これらの短冊ｎをつなぎ合わせることによって広角画像を合成する。こうして合成される最終的な広角画像を図９（ｂ）に示す。
【００５６】
以上の説明の通り、本実施形態では、第１実施形態で説明した動きベクトルの探索位置と探索範囲を決定する構成を用いることにより、パンニング撮影により取得した複数の画像から自然な広角画像を合成することができる。
【００５７】
＜その他の実施形態＞
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。例えば、上記の実施形態では、デジタルカメラ１００のパンニングによる流し撮り画像と広角画像のそれぞれの合成処理について説明したが、同様の処理によって、デジタルカメラ１００でのティルティング（チルト動作）による画像合成を行うことができる。また、主被写体として航空機等を流し撮りする場合のように、デジタルカメラ１００の動きは連続的であるが、動きの方向を主被写体の動きに合わせて変化させる場合にも、本発明の適用は可能である。
【００５８】
本発明は、上述した実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５９】
１００    デジタルカメラ
１０１    制御部
１０５    撮像部
１０７    画像処理部
１１０    動き検出部
【図１】
0006594180.tif 000003
【図２】
0006594180.tif 000004
【図３】
0006594180.tif 000005
【図４】
0006594180.tif 000006
【図５】
0006594180.tif 000007
【図６】
0006594180.tif 000008
【図７】
0006594180.tif 000009
【図８】
0006594180.tif 000010
【図９】
0006594180.tif 000011
【図１０】
0006594180.tif 000012
【図１１】
0006594180.tif 000013