(57)【特許請求の範囲】
【請求項１】
画像の部分領域における特徴量が予め設定した条件を満たすか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、複数の画像の中から第１の画像と合成する第２の画像を選択する選択手段と、
前記第２の画像が選択された後に、前記第１の画像と前記第２の画像の間の動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトルに基づき、前記第１の画像と前記第２の画像の位置合わせをして合成処理を行う合成手段とを有し、
前記選択手段は、前記複数の画像の中から、前記特徴量が前記予め設定した条件を満たすと判定された部分領域を有する画像、および、前記第１の画像に設定された複数の部分領域のうち前記特徴量が前記予め設定した条件を満たすと判定された部分領域に対応する画像、の少なくともいずれかを前記第２の画像として選択することを特徴とする画像処理装置。
【請求項２】
前記複数の画像は、時系列で連続して撮像された画像であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段は、前記第１の画像の１つ前あるいは１つ後に撮像された画像から、前記時系列の順に、前記特徴量が前記予め設定した条件を満たすか否かを判定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記選択手段は、前記特徴量が前記予め設定した条件を満たすと判定された部分領域を有し、かつ、前記第１の画像と重複する領域を有する画像を、前記第２の画像として選択することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記時系列で連続して撮像された画像を撮像する間の撮像手段の動き情報を取得する取得手段を有し、
前記合成手段は、前記動き情報に基づいて得られた前記撮像手段の動きが所定の範囲を超えるまでに撮像された画像の中に、前記特徴量が前記予め設定した条件を満たすと判定された画像がない場合には、前記合成処理を行わないことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記判定手段は、前記第１の画像に対して位置を異ならせた複数の部分領域における特徴量が予め設定した条件を満たすか否かを判定し、
前記選択手段は、前記第１の画像の複数の部分領域に、前記特徴量が前記予め設定した条件を満たすと判定された部分領域が複数ある場合には、前記第１の画像からの移動量が最も近くなる部分領域に対応する画像を、前記第２の画像として選択することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記選択手段は、選択した前記第２の画像を新たな第１の画像として、新たな第２の画像の選択を行うことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記部分領域は複数の小領域を含み、
前記判定手段は、前記複数の小領域のそれぞれにおける前記特徴量が基準値を満たしているか否かを判定することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記予め設定した条件は、前記特徴量が前記基準値を満たしていると判定された小領域の数が、閾値以上であることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記特徴量がコントラストおよび輝度の少なくともいずれかであることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記動きベクトル検出手段は、テンプレートマッチングを用いて前記動きベクトルを検出することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
画像を生成する撮像手段と、
前記画像の部分領域における特徴量が予め設定した条件を満たすか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記撮像手段が生成した複数の画像の中から第１の画像と合成する第２の画像を選択する選択手段と、
前記第２の画像が選択された後に、前記第１の画像と前記第２の画像の間の動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトルに基づき、前記第１の画像と前記第２の画像の位置合わせをして合成処理を行う合成手段とを有し、
前記選択手段は、前記複数の画像の中から、前記特徴量が前記予め設定した条件を満たすと判定された部分領域を有する画像、および、前記第１の画像に設定された複数の部分領域のうち前記特徴量が前記予め設定した条件を満たすと判定された部分領域に対応する画像、の少なくともいずれかを前記第２の画像として選択することを特徴とする撮像装置。
【請求項１３】
画像の部分領域における特徴量が予め設定した条件を満たすか否かを判定する判定ステップと、
前記判定ステップにおける判定結果に基づいて、複数の画像の中から第１の画像と合成する第２の画像を選択する選択ステップと、
前記第２の画像が選択された後に、前記第１の画像と前記第２の画像の間の動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトルに基づき、前記第１の画像と前記第２の画像の位置合わせをして合成処理を行う合成ステップとを有し、
前記選択ステップでは、前記複数の画像の中から、前記特徴量が前記予め設定した条件を満たすと判定された部分領域を有する画像、および、前記第１の画像に設定された複数の部分領域のうちの前記特徴量が前記予め設定した条件を満たすと判定された部分領域に対応する画像、の少なくともいずれかの画像を、前記第２の画像として選択することを特徴とする画像処理方法。
【請求項１４】
画像処理装置のコンピュータに動作させるプログラムであって、
前記コンピュータに、
画像の部分領域における特徴量が予め設定した条件を満たすか否かを判定する判定ステップと、
前記判定ステップにおける判定結果に基づいて、複数の画像の中から第１の画像と合成する第２の画像を選択する選択ステップと、
前記第２の画像が選択された後に、前記第１の画像と前記第２の画像の間の動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトルに基づき、前記第１の画像と前記第２の画像の位置合わせをして合成処理を行う合成ステップとを実行させ、
前記選択ステップでは、前記複数の画像の中から、前記特徴量が前記予め設定した条件を満たすと判定された部分領域を有する画像、および、前記第１の画像に設定された複数の部分領域のうちの前記特徴量が前記予め設定した条件を満たすと判定された部分領域に対応する画像、の少なくともいずれかの画像を、前記第２の画像として選択することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続して撮像した複数の画像を合成する技術に関する。
【背景技術】
【０００２】
従来のカメラなどの撮像装置では、撮影可能な画角の広さは撮影レンズの特性により制限されている。広い範囲の画像を撮ろうとすると、解像度を犠牲にしなければならない。また、取得できる画像のアスペクト比も、ハードウェアにより制限されている。
【０００３】
以上の課題を解決するために、従来からパノラマ合成の技術が知られている。パノラマ合成では、互いに重複している領域のある複数の画像を合成して、大きな画像を生成する。この方法を用いると、レンズの特性を超えた広い範囲の画像を取得することができる。また、複数の画像を合成することにより、アスペクト比を変えることもできる。
【０００４】
上述したパノラマ合成で、違和感のない合成画像を取得するために、撮像装置における画像の位置合わせが不可欠である。特許文献１では、動きベクトルを用いて、位置合わせを行うという方法が提示されている。この方法では、合成に用いる異なる画像のコントラスト、輝度成分、あるいは色差成分などから得られる特徴量を用いて動きベクトルを検出する。
【０００５】
ここで、撮影する画像のサイズが大きくなるほど、合成する画像の位置合わせに用いるベクトル演算に要する負荷が大きくなる。そこで、特許文献２には、画像の全体から動きベクトルを検出するのではなく、画像の一部の領域のみから動きベクトルを求めることが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１３４９９３号公報
【特許文献２】特開２００９−２７４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、動きベクトルを得るために設定した一部の領域が、特徴の少ない画像からなる領域である場合は、精度の高い動きベクトルの検出が困難となり、良好なパノラマ合成ができなくなるといった問題がある。
【０００８】
本発明の目的は、取得した複数の画像に被写体の特徴量が少ない画像が含まれている場合でも、良好な合成画像を生成する画像処理装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上記課題を解決するため、画像の部分領域における特徴量が予め設定した条件を満たすか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、複数の画像の中から第１の画像と合成する第２の画像を選択する選択手段と、前記第２の画像が選択された後に、前記第１の画像と前記第２の画像の間の動きベクトルを検出する動きベクトル検出手段と、前記動きベクトルに基づき、前記第１の画像と前記第２の画像の位置合わせをして合成処理を行う合成手段とを有し、前記選択手段は、前記複数の画像の中から、前記特徴量が前記予め設定した条件を満たすと判定された部分領域を有する画像、および、前記第１の画像に設定された複数の部分領域のうち前記特徴量が前記予め設定した条件を満たすと判定された部分領域に対応する画像、の少なくともいずれかを前記第２の画像として選択することを特徴とする画像処理装置を提供するものである。
【発明の効果】
【００１０】
本発明によれば、複数の画像に被写体の特徴量が少ない画像が含まれている場合でも、良好な合成画像を生成できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係るデジタルカメラの機能構成を示すブロック図である。
【図２】第１の実施形態に係るデジタルカメラの動作を示すフローチャットである。
【図３】本発明に係るテンプレートマッチングの処理を説明するための図である。
【図４】第１の実施形態に係るコントラストを抽出するコントラスト抽出領域を説明するための図である。
【図５】本発明に係る位置合わせを説明するための図である。
【図６】本発明に係る合成画像の生成を説明するための図である。
【図７】第２の実施形態および第３の実施形態に係るデジタルカメラの機能構成を示すブロック図である。
【図８】第２の実施形態に係るデジタルカメラの動作を示すフローチャットである。
【図９】第３の実施形態に係るデジタルカメラの動作を示すフローチャットである。
【図１０】第３の実施形態に係るコントラストを抽出するコントラスト抽出領域を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本発明の好適な実施形態を説明する。なお、撮像装置の例として、デジタルカメラを挙げて説明するが、本発明は以下で説明される構成に限定されるものではない。
【００１３】
（第１の実施形態）
＜撮像装置の構成＞
図１は、本発明の実施形態に係るデジタルカメラ１００の機能構成を示すブロック図である。制御部１０１は、例えばＣＰＵやＭＰＵなどのシグナルプロセッサである。制御部１０１は、デジタルカメラ１００が備える各ブロックの動作プログラムをＲＯＭ１０２より読み出し、ＲＡＭ１０３に展開して実行することによりデジタルカメラ１００が備える各ブロックの動作を制御する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、デジタルカメラ１００が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。制御部１０１は、ＲＯＭ１０２から動作プログラムなど、制御に必要なパラメータなどを読み出しながら制御を行う。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、デジタルカメラ１００が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。
【００１４】
光学系１０４は、被写体像を撮像部１０５に結像する。撮像部１０５は、例えばＣＣＤやＣＭＯＳセンサ等の撮像素子であり、光学系１０４により撮像素子に結像された光学像を光電変換し、得られた画像信号を画像処理部１０６に出力する。
【００１５】
画像処理部１０６は、撮像部１０５から出力された画像、あるいはＲＡＭ１０３に記憶されている画像データに対して、ホワイトバランス調整、色補間、フィルタリングなど、様々な画像処理を適用する。この画像処理部１０６は、特定の処理を行う回路を集めた集積回路（ＡＳＩＣ）で構成される。あるいは、制御部１０１がＲＯＭ１０２から読み出したプログラムに従って処理することで、制御部１０１が画像処理部１０６の機能の一部または全部を兼用するようにしてもよい。制御部１０１が画像処理部１０６の全ての機能を兼用する場合には、画像処理部１０６をハードウェアとして有する必要はなくなる。
【００１６】
記録媒体１０７はメモリカードや内蔵メモリ等であり、画像処理部で処理された画像を記録する。また、制御部１０１による指示で、処理しようとする画像を画像処理部１０６に出力する。
【００１７】
表示部１０８は、液晶ディスプレイ（ＬＣＤ）や有機ＥＬディスプレイ等の表示デバイスより構成される。表示部１０８は、撮像部１０５で取り込まれた被写体像を、制御部１０１を経由して取得し、リアルタイム表示する、あるいは記録媒体１０７に記録された画像を表示するなど、様々な情報を表示する。
【００１８】
＜デジタルカメラの動作＞
以下では、ユーザによってパノラマ撮影モードが設定され、かつ、レリーズ操作が行われた後のデジタルカメラ１００の動作について説明する。以下の説明では、デジタルカメラがパンニングされているときの例として説明するが、デジタルカメラがチルティングされているときも同様の技術を適用できる。
【００１９】
図２は、第１の実施形態における、デジタルカメラ１００の動作を示すフローチャートである。ユーザによってレリーズ操作が行われると、デジタルカメラ１００はステップＳ２０１以降の処理を開始する。
【００２０】
ステップＳ２０１は、ユーザからパノラマ撮影の終了指示があったかどうかを判断する。例えば、撮影中にユーザによって再度レリーズ操作がなされた場合や、デジタルカメラ１００がこれまでと逆方向に所定量に渡ってパンニングされた場合に、終了指示があったと判定する。ここで、終了指示がない場合、ステップＳ２０２に進み、終了指示がある場合、Ｓ２０６に進む。１フレーム目の撮像が行われる前であれば、このステップＳ２０１は飛ばしても構わない。
【００２１】
ステップＳ２０２では、制御部１０１の指示のもとで、撮像部１０５が光学系１０４により結像された被写体像を画像に変換し、画像処理部１０６に出力する。
【００２２】
ステップＳ２０３では、画像処理部１０６が画像から被写体の特徴量抽出を行う。被写体の特徴量は、精度の高い動きベクトルが検出できるか否かの判定に用いられる。以下では、図３と図４とを用いて、コントラストの算出を例として、被写体の特徴量の抽出方法を詳細に説明する。なお、特徴量としてコントラストの算出を行う理由は、コントラストが高くなるエッジ部分を多く含むテクスチャを選択した方が画像間のベクトルを正確に求めることができるためである。
【００２３】
被写体の特徴量を抽出する領域と、後述するステップＳ２０６のベクトル検出処理でベクトルの抽出に用いられるベクトル検出領域は、予め定められた位置に設定される。図３に、時間的に連続して取得した２つの画像を示す。図３（ａ）は、ベクトル検出画像（２つの画像のうち時間的に後の画像）であり、ベクトル検出領域群を３２０で示している。ベクトル検出領域群３２０に含まれるそれぞれのベクトル検出領域に含まれる画像は、ベクトル検出を行うときのテンプレート画像３２１として用いられ、各テンプレート画像に対して１つのベクトルを求める。
【００２４】
図４は、コントラストを抽出するコントラスト抽出領域と、抽出したコントラストを説明するための図である。領域４００は、撮像対象を示す。領域４０１〜４０３は、パンニングしながら撮影したそれぞれの画像に対応する領域である。ここで、領域４０１〜４０３のサイズが若干異なるが、これは見やすくするために線が重複しないように記載したためであって、領域４０１〜４０３のサイズが異なると限定すると解釈すべきでない。コントラスト抽出領域４１１〜４１３は、演算負荷の低減のため、通常、領域４０１〜４０３のそれぞれの画像全体を占めるのではなく、部分領域を占める。しかも、光学系により結像される画像の両側には歪みが生じやすいので、コントラスト抽出領域４１１〜４１３は、領域４０１〜４０３のそれぞれの中央付近に位置することが好ましい。
【００２５】
コントラスト抽出領域４１１〜４１３は、ベクトル検出領域群３２０に含まれるベクトル検出領域と同じ数の小領域を有しており、この小領域のそれぞれが、ベクトル検出領域のいずれか１つを包含する。画像処理部１０６は、コントラスト抽出領域４１１〜４１３の各小領域においてエッジを検出し、さらに検出したエッジに対して積分処理や平均値処理などを行い、その出力値をコントラストとして表す。図４（ｂ）のコントラスト抽出領域４１１〜４１３におけるコントラストの算出結果を、図４（ｃ）に示す。図４（ｃ）のコントラスト抽出領域４２１〜４２３において、白い領域はコントラストが高く、黒い領域はコントラストが小さいことを表している。なお、図４はコントラスト抽出領域の１つの例を示すものであって、ベクトル検出領域群３２０に対応する位置となるならば、コントラスト抽出領域を画像全体に割り当ててもよいし、図４とは異なる画像の一部の領域に割り当ててもよい。例えば、コントラスト抽出領域の複数の小領域が、１つのベクトル検出領域３２１に重畳するのであれば、これら複数の小領域から得られたコントラストの合計値や平均値を、この１つのベクトル検出領域３２１に対応するコントラストとして扱えば良い。
【００２６】
ステップＳ２０４では、制御部１０１は、ステップＳ２０３において位置合わせ処理に必要な特徴量が取得できたかどうかを判定する。位置合わせ処理に必要な特徴量が取得できたという判定結果が得られた場合、ステップＳ２０５に進む。位置合わせ処理に必要な特徴量が取得できたという判定結果が得られない場合には、ステップＳ２０１の処理に戻り、改めて画像を取得する。この一連の動作が、ユーザがパンニング操作をしているとき行われていれば、このとき取得する画像は、パンニング方向に構図が変更された画像となる。
【００２７】
ここでは、被写体の特徴量がコントラストであるときを例として、位置合わせ処理に必要な特徴量が取得できたかどうかを判定する方法について説明する。まず、ステップＳ２０３で、コントラスト抽出領域４１１〜４１３の各小領域において抽出した被写体の特徴量としてのコントラストを、基準値と比較する。コントラストが基準値以上であれば、そのコントラストが得られた小領域に対応するベクトル検出領域においては、精度の良いベクトル検出結果を得ることができる。１つの画像におけるコントラスト抽出領域のすべての小領域についてこのような判定を行い、コントラストが基準値以上となった小領域の数が閾値以上であるかどうかを判定する。ステップＳ２０８で位置合わせ処理を行う際に必要なベクトルの数や幾何変形処理の方法によるが、一般的にはアフィン変換の場合３個以上、射影変換の場合４個以上のベクトルが必要となる。そのため、コントラストが基準値以上となった小領域の数に対する閾値を、アフィン変換の場合は３以上の値に設定し、射影変換の場合は４以上の値に設定する。
【００２８】
また、被写体の特徴量としてコントラストではなく、白とびまたは黒潰れ領域を検出しても良い。この場合では、輝度情報を取得し、所定の閾値と比較して白とびまたは黒潰れの判定を行う。白とびまたは黒潰れ以外のベクトル抽出領域が何個残っているかを判定する。
【００２９】
上記の判定では、「コントラスト判定」と「白とび、黒潰れ判定」との２例をあげているが、精度の良いベクトルが検出できるか否かが判定できる値であれば、これらに限られるものではない。
【００３０】
制御部１０１は、コントラスト値が基準値以上と判定された小領域の数が閾値以上である画像を取得できるまで、ステップＳ２０２乃至ステップＳ２０４の処理を繰り返す。これらのステップを実行することによって、後述するステップＳ２０６でのベクトル検出において、確実に動きベクトル検出ができるようになる画像を得ることができる。ステップ２０４での判定がなければ、必要な特徴量が得られないまま、ステップＳ２０６のベクトル検出に入る恐れがあり、ベクトル検出が失敗したり、不自然な合成画像が生成したりする可能性がある。
【００３１】
ステップＳ２０５で、制御部１０１は、合成指示がある場合は、この繰り返しの処理を終了させて、ステップＳ２０６に進む。この合成指示は、ユーザによるボタンの操作でもよく、ユーザが撮像装置に予め設定した条件（画像の枚数、総幅、サイズなど）が達成したことにより自動的に合成指示を発するとしてもよい。このステップは、終了指示がない場合であっても、画像合成に用いる十分な数の画像が取得できた場合に、画像の取得を止め、ベクトル検出に入らせるためのものである。
【００３２】
ステップＳ２０６では、画像処理部１０６は、コントラストが基準値以上と判定された小領域の数が閾値以上である複数の画像を選択する。そして、画像の間の動きベクトルの検出を行う。それぞれの画像に含まれるコントラスト値が基準値以上と判定された小領域に対応するベクトル検出領域を基準画像として、動きベクトルの検出を行う。動きベクトルの検出方法は公知の方法でよく、一例としてテンプレートマッチング方式が挙げられる。この方法では、画像の間のズレ量を所定の範囲のテンプレートを設定して比較し、比較値が最も小さくなる位置（画像間で最も相関が高い位置）のズレ量をベクトルとして検出する。
【００３３】
テンプレートマッチングについては、図３を用いて説明する。テンプレートマッチングを行う際には、移動量を検出するためにベクトル検出画像のベクトル検出領域群からテンプレート３２１ａを決定する。本実施形態では、ベクトル検出領域群を画像の一部の領域のみに設定しているため、画像全体から動きベクトルを検出する場合に比べて、動くベクトルの検出に要する演算負荷を軽減することができる。このテンプレート３２１ａは、図４のステップＳ２０３においてコントラストが基準値以上と判定された小領域に対応するベクトル検出領域に対してのみ設定されてもよい。基準画像３００とベクトル検出画像３０１の画像の対応領域（同じ被写体が写っている範囲）を点線３５１から３５２までの間で示している。ベクトル検出画像から決定したテンプレート３２１ａの領域と、基準画像上においてテンプレート３２１ａに対応する基準画像の領域とをベクトル探索開始位置とする。基準画像上において、ベクトル検出画像におけるテンプレート３２１ａの座標と同じ座標となる基準画像の領域を、領域３３１と仮定する。そして、領域３３１を中心として領域３３１よりも広く設定したベクトル探索範囲３４１において、テンプレート３２１ａと比較演算を行い、もっとも相関が高い位置とベクトル探索開始位置とのズレを動きベクトルとして検出する。この操作を、設定されたテンプレート画像の全てに対して行い、テンプレート画像の数に対応する個数の動きベクトルを検出する。
【００３４】
ステップＳ２０７では、画像処理部１０６は、ステップＳ２０６で検出した動きベクトルを用いて、ステップＳ２０２で取得した複数の画像のうち、ステップＳ２０４で必要な特徴量が抽出できたと判定された画像を用いて、位置合わせ処理を行う。位置合わせ処理について図５を用いて詳細に説明を行う。
【００３５】
位置合わせ処理を行うために、画像間の変形量を補正するための位置合わせ係数を算出する。図５を用いて位置合わせ係数について説明する。図５の画像５０１と画像５０２とはステップＳ２０４で必要な特徴量が抽出できたと判定された画像で、位置合わせ対象画像は画像５０２である。画像間の位置合わせで行う補正処理は、実際には図４（ｂ）のようにデジタルカメラのパンニング動作に対応する並進成分だけでない。並進成分に加え手振れが発生することで回転やあおりの成分が発生し、その結果、画像５０２のように画像が回転やあおりの影響を受けた画像が取得される場合がある。このような場合に並進成分や回転成分、あおり成分を幾何変形によって補正するための係数として、変換係数を算出する。この幾何変形を行う変換係数を位置合わせ係数と呼ぶ。例えば、幾何変形前の画像５０２を模式的に表したものが枠５０３であり、幾何変形後の画像５０２を模式的に表したものが枠５０４である。矢印５１１に相当する位置合わせ係数Ａは一般的に式（１）で表され、画像の座標をＩ（ｘ座標，ｙ座標）とすると式（２）の演算を行うことで、枠５０３から枠５０４への幾何変形が行われる。
【００３６】
【数１】
0006656035.tif 000002
【００３７】
【数２】
0006656035.tif 000003
【００３８】
位置合わせ係数を算出するために、位置合わせの基準とする画像と、補正対象の画像との２つの画像を設定する。ステップＳ２０４で必要な特徴量が抽出できたと判定された画像のうち、基準画像の直後に相当するフレームの画像が、補正対象の画像となる。そして、図３を用いて説明したように、テンプレートマッチングによりベクトルを算出する。
【００３９】
続いて求めたベクトル群を用いて、幾何変換係数を求める。例えば、式（２）のように、位置合わせ対象画像の特徴点の座標Ｉに所定の変換係数Ａを掛けることで求めた座標Ｉ´と、基準画像の特徴点の座標との差分εが最も小さくなる変換係数Ａを求める。
【００４０】
この変換係数Ａを求める手法としては、ニュートン法やガウスニュートン法等、公知の最適化手法を用いて求める。求められた変換係数Ａを位置合わせ係数として採用する。
【００４１】
ステップＳ２０８は、ステップＳ２０７で位置合わせ処理を行った画像に対して、画像間の境界付近を合成して画像を繋げる画像合成処理を行う。画像合成処理について図６を用いて説明する。図６の画像６０１〜６０３は、位置合わせ処理を行った後の画像である。この３つの画像の境界部で順次合成を行う。
【００４２】
画像６０１と画像６０２とを合成する場合、画像６０１の水平の中心位置のライン６２１を境界として合成を行う。具体的にはライン６２１から左の領域に画像６０１を出力し、ライン６２１から右の領域に画像６０２を出力し、ライン６２１上は両方の画像の画素情報をミックスして繋ぎ目を自然に見せる処理を行う。あるいは、ライン上に画像６０１と画像６０２との画素情報を５０％ずつ合成した値を出力し、ラインからの距離が離れるに従ってラインの左側では画像６０１を、ラインの右側では画像６０２の割合を大きくしながら合成を行う。合成後の画像は、合成画像６１１となる。
【００４３】
続いて、合成画像６１１と画像６０３との合成を行う。このときは１つ前の画像６０２の水平中心のライン６２２を境界とした合成を行う。合成後の画像は合成画像６１２となる。このように、順次位置合わせをした後に画像の合成を行う。画像６０２、画像６０３に対して画像合成を行うことで画像６０１に対して領域６３１の領域分だけ画角を拡大することができる。
【００４４】
第１の実施形態によれば、図４の領域４０１〜４０３のような、隣接する領域にコントラストなどの特徴量のある被写体が少ない場合でも、ベクトル検出や合成などの段階で失敗することなく良好なパノラマ画像を生成することができる。もし、取得した全ての画像を合成に用いるとすれば、画像４０２の領域４１２のような特徴量の少ない領域があっても、その特徴量の少ない領域からベクトル検出を行い、合成を行うことになる。その結果、ベクトル検出が失敗し、位置合わせがうまくできず、結果的に不自然な合成画像を生成してしまい、一連の作業が無駄になる恐れがある。上記述べた方法を用いて、無理に画像４０２を用いて合成に使うことなく、よりベクトル検出しやすい領域４１３を持つ画像４０３を使うことで、無駄な作業なく、自然な合成画像を生成することができる。
【００４５】
なお、第１の実施形態では時系列に撮像を行いながら合成画像を生成する例をあげて説明を行ったが、時系列に撮像した画像を全て記憶してから、後ほど合成画像を生成するようにしてもよい。この場合、必ずしも先に撮像した画像を基準画像とする必要はなく、最後に撮像した画像を最初の基準画像として設定しても良いし、任意のフレームの画像を最初の基準画像として設定してもよい。
【００４６】
また、時系列に撮像した全ての画像に対してステップＳ２０４の判定処理を行う必要はない。パンニング速度が小さい場合には、合成に用いる画像を数フレーム飛ばしたとしても画像間の重複領域を十分に確保することができる。そのため、ジャイロ等によってデジタルカメラ１００のパンニング速度が小さいことが検出されている場合には、数フレームごとにステップＳ２０４の判定処理を行ってもよい。
【００４７】
また、図２のステップＳ２０６では、コントラストが基準値以上と判定された小領域の数が閾値以上である画像から動きベクトルの検出を行ったが、これに限られるものではない。ステップＳ２０６の動きベクトルの検出は全ての画像に対して行い、ステップＳ２０７の位置合わせ処理の際に、コントラストが基準値以上と判定された小領域の数が閾値以上である画像を選択するようにしてもよい。このような構成とすれば、特徴量の抽出と、動きベクトルの検出という２つの処理を並行して行うことができるというメリットがある。
【００４８】
（第２の実施形態）
第２の実施形態におけるデジタルカメラ１００は、図７に示すように、第１の実施形態と異なりジャイロセンサによって構成された装置動き検出部を有する。装置動き検出部７０９はデジタルカメラ１００の動きを検出するデバイスであり、デジタルカメラ１００の単位時間当たりの角度変化、すなわち角速度に基づいてヨー方向とピッチ方向の動きを検出する。
【００４９】
以下では、図８のフローチャットを用いて、第１の実施形態との違いを中心に説明する。なお、以下の説明では、デジタルカメラがパンニングをされている例をあげて説明を行うが、デジタルカメラがチルティングをされている場合においても同様に適用できる。図８のステップＳ８０１、Ｓ８０２、Ｓ８０３乃至Ｓ８０８はそれぞれ、図２のステップＳ２０１、Ｓ２０２、Ｓ２０３乃至Ｓ２０８と同様の処理である。
【００５０】
ステップＳ８０２では、撮像部１０５が光学系１０４により結像された被写体像を画像に変換し、画像処理部１０６に出力する。
【００５１】
ステップＳ８１１では、装置動き検出部７０９がデジタルカメラの動き情報を取得する。デジタルカメラの動き情報とは、デジタルカメラがパンニングされたときの角速度の大きさと方向とである。
【００５２】
ステップＳ８１２では、制御部１０１が、パンニングで時間的に連続して取得した２つの画像を撮像する時間間隔にサンプリングされた、装置動き検出部８０９で取得した角速度情報を積分し、パンニング角度を算出する。
【００５３】
続いて制御部１０１が、パンニング角度が予め設定した画角範囲に収まっているかどうかを判断する。収まっていなければ、処理を終了する。収まっていれば、次のステップＳ８０３に進む。ここで、上記の予め設定した画角範囲を、撮像部１０５が取得する画像の画角に対応する範囲にすれば、ここの処理は、パンニング角度が撮像画像の画角内に収まっているかどうかを判断することになる。パンニング角度が撮像画像の画角内に収まっていれば、時間的に連続して撮像する２つの画像に重複領域が存在する。逆に、時間的に連続して撮像する２つの画像に重複領域が存在していなければ、パンニング角度が撮像画像の画角内に収まらず、ステップＳ８０３に進むことができず、処理が終了する。つまり、上記の予め設定した画角範囲を、撮像部１０５が取得する画像の画角の範囲にすることで、連続する画像間で重複領域が存在しないぐらい早い速度でパンニングされた場合に、フローをこのステップＳ９１２でストップさせることができる。この画角範囲はユーザによって変更することが可能である。ユーザがこの予め設定した画角範囲を狭く設定すれば、図９のステップＳ９０３に進むためには、時間的に連続して撮像する２つの画像間に、より広い重複領域が存在することが求められる。前述したように、重複領域で２枚の画像を用いて合成をするため、一般的に、重複領域が広い分、ノイズなどによる影響を低減することができる。こうしたユーザの設定によって、重複領域を広くし、より画質の良いパノラマ合成画像を取得することができる。
【００５４】
その後の処理は、第１の実施形態と同様なので、説明を省略する。
【００５５】
このように、第２の実施形態によれば、パンニング動作が速すぎる場合は処理を終了させることができ、ステップＳ８０１乃至Ｓ８０４が繰り返されてしまうことを防ぐことができるようになる。
【００５６】
（第３の実施形態）
第３の実施形態では、位置合わせの基準画像の被写体の特徴量の分布により、どの程度パンニングした画像であれば、被写体の特徴量が十分満たされるかを予測し、予測したパンニング角度に基づいて合成に用いる画像を選択する。撮像装置の内部構成は第２の実施形態と同様であるため、説明は省略する。
【００５７】
＜デジタルカメラの動作＞
以下では、第３の実施形態を用いるとき、パンニングの動作をしているときのデジタルカメラ１００の動作について説明する。第１の実施形態または第２の実施形態と同様な部分については、説明を簡略にする。なお、以下の説明では、デジタルカメラがパンニングをされている例をあげて説明を行うが、デジタルカメラがチルティングをされている場合においても同様に適用できる。
【００５８】
図９は、第３の実施形態を用いるとき、デジタルカメラ１００の動作を示すフローチャートである。
【００５９】
ステップＳ９０２では、撮像部１０５が光学系１０４により結像された被写体像を画像に変換し、画像処理部１０６に出力する。この撮像部１０５による画像の生成は連続的に行われ、パンニング動作中に撮像された画像の表示に用いられる。
【００６０】
ステップＳ９２１では、被写体の特徴量抽出を行う。このステップと第１の実施形態のステップＳ２０３との違いは、このステップでは、基準画像に対してコントラスト抽出領域を設定することと、このコントラスト抽出領域を複数回変更しながら特徴量の抽出処理を行うことである。以下、図１０を用いて詳しく説明する。
【００６１】
図１０（ａ）の画像１００１は、ベクトル検出処理の基準画像である。画像１００１に対して、初めてベクトル検出を行うとき、図１０（ｂ）の画像１００１の中央付近の領域１０１１をコントラスト抽出領域と設定する。デジタルカメラの右方向へのパンニング動作につれ、コントラスト抽出領域１０１１、１０１２および１０１３として示すように、コントラスト抽出領域も右方向へ移動している。矢印１０２１または矢印１０２２は、コントラスト抽出領域が領域１０１１から領域１０１２または１０１３まで移動したときの像面移動量を示している。図１０（ｃ）のコントラスト抽出領域１０３１〜１０３３は、コントラスト抽出領域１０１１〜１０１３のそれぞれの小領域における被写体の特徴量としてのコントラストを表している。白い領域はコントラストが高く、黒い領域はコントラストが小さいことを意味している。
【００６２】
ステップＳ９２２では、ステップＳ９２１で抽出したそれぞれのコントラスト抽出領域の被写体の特徴量を基に、位置合わせ処理に必要な特徴量が抽出できる領域を選択し、その領域に対応する画像位置に至るためのパンニング角度を算出する。この算出したパンニング角度を、予測パンニング角度と言うものとする。なお、図１０（ｃ）の例においては、コントラスト抽出領域１０３１および１０３２はコントラストが高いと判定された小領域の数が閾値に達しておらず、コントラスト抽出領域１０３３は閾値に達しているため、コントラスト抽出領域１０３３が選択される。なお、複数の領域ともにコントラストが高いと判定された小領域の数が閾値に達した場合は、任意に選択してもよいが、像面移動量が最も小さいものを選ぶ方が好ましい。
【００６３】
次に、予測パンニング角度の算出方法について述べる。まず、コントラストが高いと判定された小領域の数が閾値以上であるコントラスト抽出領域を目標領域と決定する。たとえば、もし閾値を４と設定すると、コントラストが高いことを示す白いブロックの数が４以上である領域１０３３を目標領域と決定する。このときの像面移動量は１０２２となり、この像面移動量に対応するデジタルカメラ１００のパンニング角度が予測パンニング角度となる。次に、デジタルカメラ１００のパンニング角度が予測パンニング角度と所定内の誤差範囲に収まっているかを判定し、所定内の誤差範囲に収まっている場合にはステップＳ９２４の画像選択の処理を行う。
【００６４】
ここで、像面移動量をｓ、焦点距離をｆ、角速度をω、パンニング中で単位時間に取得する画像の数をｒ、画素ピッチをｐとすると、パンニング角度θは、下記の式１で求めることができる。
【００６５】
【数３】
0006656035.tif 000004
【００６６】
または、デジタルカメラに回転などの運動をさせる機械駆動をする手段を加え、予め回転速度を決め、この回転速度に基づいて（式３）を利用して、予測パンニング角度を算出してもよい。この場合は、カメラ動きを取得する必要はない。
【００６７】
ステップＳ９０１では、終了指示があるかどうかを判断する。終了指示があれば、ステップＳ９０６に進み、終了指示がなければ、ステップＳ９１１に進む。
【００６８】
ステップＳ９１１は、第２の実施形態のステップＳ８１１と同様に、デジタルカメラ１００のパンニング中の動き情報を取得する。
【００６９】
ステップＳ９２３は、デジタルカメラ１００のパンニング角度が、予測パンニング角度になっているかを判定する。厳密には、ステップＳ９２２で算出した予測パンニング角度に対して、デジタルカメラ１００のパンニング角度が所定値内の誤差に収まっているかを判定する。収まっていない場合には、ステップＳ９０１に戻り、終了指示がなければ、ステップＳ９１１で再度動き情報を取得する。
【００７０】
ステップＳ９２４では、時系列で撮像部１０５によって生成された画像のうち、予測パンニング角度において生成された画像を選択し、画像処理部１０６に出力する。このステップＳ９２４で選択された画像が、ステップＳ９０６における動きベクトルの検出と、ステップＳ９０７における画像の位置合わせに用いられる。そして、ステップＳ９２４において、この選択した画像を基準画像として、被写体の特徴量抽出を行う。
【００７１】
以上説明したように、第３の実施形態においても、第１の実施形態と同様に、隣接する領域にコントラストなどの特徴量のある被写体が少ない場合でも、ベクトル検出や合成などの段階で失敗することなく良好なパノラマ画像を生成することができる。
【００７２】
（その他の実施形態）
以上の実施形態は、デジタルカメラでの実施をもとに説明したが、デジタルカメラに限定するものではない。たとえば、撮像素子が内蔵した携帯機器などで実施してもよく、画像を取得することができるネットワークカメラなどでもよい。
【００７３】
なお、本発明は、上述の実施形態の１つ以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し作動させる処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７４】
以上で説明したような処理によれば、隣接する画像間の被写体の特徴量が少ない場合で、検出範囲を拡大しても被写体の特徴量が増えると期待できない場合でも、良好なパノラマ画像を生成できる。
【符号の説明】
【００７５】
１００  デジタルカメラ
１０１  制御部
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  光学系
１０５  撮像部
１０６  画像処理部
１０７  記録媒体
１０８  表示部
７０９  装置動き検出部
【図１】
0006656035.tif 000005
【図２】
0006656035.tif 000006
【図３】
0006656035.tif 000007
【図４】
0006656035.tif 000008
【図５】
0006656035.tif 000009
【図６】
0006656035.tif 000010
【図７】
0006656035.tif 000011
【図８】
0006656035.tif 000012
【図９】
0006656035.tif 000013
【図１０】
0006656035.tif 000014