(57)【要約】      （修正有）【課題】適切な動きベクトルにより画像間の位置合わせを行う画像処理装置を提供する。【解決手段】撮像手段が第１の画像と第２の画像とを撮像する間の撮像手段の動き情報を、撮像手段とは別のセンサの出力に基づいて検出しＳ５０９、第１の画像と第２の画像の間の複数の動きベクトルを検出するＳ５１１。そして、検出した動き情報の第１の信頼度の判断とＳ５１２、検出した動きベクトルの第２の信頼度の判断を行いＳ５１３、動きベクトルと動き情報が示すベクトルとのうちの信頼度の高いもの、または、動きベクトルと動き情報から信頼度に応じて求めたベクトルに基づいて、位置合わせを行うＳ５１６。【選択図】図５
2019022162.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段が第１の画像と第２の画像とを撮像する間の前記撮像手段の動き情報を、前記撮像手段とは別のセンサの出力に基づいて検出する第１の検出手段と、
前記第１の画像と第２の画像の間の複数の動きベクトルを検出する第２の検出手段と、
前記第１の検出手段が検出した前記動き情報の第１の信頼度と前記第２の検出手段が検出した前記動きベクトルの第２の信頼度との判断を行う判断手段と、
前記動きベクトルと前記動き情報が示すベクトルとのうちの前記信頼度の高いもの、または、前記動きベクトルと前記動き情報から前記信頼度に応じて求めたベクトルに基づいて、前記第１の画像と前記第２の画像とに対して位置合わせを行う位置合わせ手段とを有することを特徴とする画像処理装置。
【請求項２】
前記第２の検出手段は、前記第１の画像に複数の領域を設定し、該複数の領域を用いて前記複数の動きベクトルを検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
補正手段を有し、
前記補正手段は、前記動き情報と前記第１の信頼度と前記第２の信頼度とに基づいて、前記複数の動きベクトルの少なくとも一部に対して前記補正を行い、
前記位置合わせ手段は、前記補正を行った後の前記複数の動きベクトルを前記位置合わせに用いることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第１の信頼度よりも低い前記第２の信頼度をもつ前記動きベクトルに対して、
前記位置合わせ手段は、該動きベクトルを前記動き情報が示すベクトルに置き換え、置き換えた後の該動きベクトルを前記位置合わせに用いる、
または、
前記位置合わせ手段は、該動きベクトルを前記位置合わせに用いずに、前記動き情報が示すベクトルを前記位置合わせに用いることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記動き情報の分散が第１の値の場合は、前記動き情報の分散が前記第１の値よりも小さい第２の値の場合よりも、前記第１の信頼度が低いことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記第１の検出手段が起動されてから所定の時間以内の場合は、起動されてから所定の時間以内でない場合よりも、前記第１の信頼度が低いことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記第１の画像または前記第２の画像の被写体距離が所定の被写体距離よりも近い場合には、該所定の被写体距離よりも近くない場合よりも、前記第１の信頼度が低いことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第１の画像または前記第２の画像の定められた領域のコントラストが予め定められた閾値よりも低い場合には、前記コントラストが前記閾値以上の場合よりも、前記第２の信頼度が低いことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記第２の検出手段は、前記定められた領域を用いて前記動きベクトルを検出することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記判断手段は、第１の方向と、前記第１の方向と直交する第２の方向とのそれぞれで、前記判断を行い、
前記位置合わせ手段は、前記第１の方向と前記第２の方向とのそれぞれにおいて前記動きベクトルの成分と前記動き情報が示すベクトルの成分とのうちの前記信頼度の高いベクトルの成分、または、前記動きベクトルと前記動き情報とから前記信頼度に応じて求めたベクトルの成分を求め、前記第１の方向と第２の方向のそれぞれにおいて求めたベクトルの成分から合成したベクトルに基づいて、前記位置合わせを行うことを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記第１の方向は、前記第１の画像と第２の画像とを撮像する間の前記撮像手段の移動方向と平行な方向であることを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記第１の方向は、予め設定された方法であることを特徴とする請求項１０に記載の画像処理装置。
【請求項１３】
前記撮像手段が撮像するとき、前記第１の方向または前記第２の方向においてメカシャッタの動作がある場合には、前記メカシャッタの動作がない場合よりも、該方向における前記第１の信頼度が低いことを特徴とする請求項１０乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記第１の画像または前記第２の画像において、前記第１の方向に繰り返しパターンまたは前記第１の方向に沿う線状の被写体を検出した場合には、前記第１の方向に繰り返しパターンおよび前記第１の方向に沿う線状の被写体を検出しなかった場合よりも、前記第１の方向における第２の信頼度が低いと判断し、前記第２の方向に繰り返しパターンまたは前記第２の方向に沿う線状の被写体を検出した場合には、前記第２の方向に繰り返しパターンおよび前記第２の方向に沿う線状の被写体を検出しなかった場合よりも、前記第２の方向における第２の信頼度が低いことを特徴とする請求項１０乃至１３のいずれか１項に記載の画像処理装置。
【請求項１５】
前記位置合わせ手段は、前記動き情報との違いが所定値よりも小さい前記動きベクトルを選択して前記位置合わせに用いるものであって、
前記所定値を前記第１の信頼度により定め、前記第１の信頼度が第３の値の場合の前記所定値が、前記第１の信頼度が前記第３の値より低い第４の値の場合の前記所定値より小さく設定することを特徴とする請求項１乃至１４のいずれか１項に記載の画像処理装置。
【請求項１６】
前記第１の画像と前記第２の画像との対応するエリアにおいて、前記動き情報との違いが所定値よりも大きい前記動きベクトルの数が、予め定められた所定の数よりも多い場合、前記位置合わせ手段は、該エリアにあるすべての前記動きベクトルを前記位置合わせに用いないことを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記センサは、ジャイロセンサであることを特徴とする請求項１乃至１６のいずれか１項に記載の画像処理装置。
【請求項１８】
撮像手段と、
前記撮像手段が第１の画像と第２の画像とを撮像する間の前記撮像手段の動き情報を、前記撮像手段とは別のセンサの出力に基づいて検出する第１の検出手段と、
前記第１の画像と第２の画像の間の複数の動きベクトルを検出する第２の検出手段と、
前記第１の検出手段が検出した前記動き情報の第１の信頼度と前記第２の検出手段が検出した前記動きベクトルの第２の信頼度との判断を行う判断手段と、
前記動きベクトルと前記動き情報が示すベクトルとのうちの前記信頼度の高いもの、または、前記動きベクトルと前記動き情報から前記信頼度に応じて求めたベクトルに基づいて、前記第１の画像と前記第２の画像とに対して位置合わせを行う位置合わせ手段とを有することを特徴とする撮像装置。
【請求項１９】
撮像手段が第１の画像と第２の画像とを撮像する間の前記撮像手段の動き情報を、前記撮像手段とは別のセンサの出力に基づいて検出する第１の検出ステップと、
前記第１の画像と第２の画像の間の複数の動きベクトルを検出する第２の検出ステップと、
前記第１の検出ステップにおいて検出した前記動き情報の第１の信頼度と前記第２の検出ステップにおいて検出した前記動きベクトルの第２の信頼度との判断を行う判断ステップと、
前記動きベクトルと前記動き情報が示すベクトルとのうちの前記信頼度の高いもの、または、前記動きベクトルと前記動き情報から前記信頼度に応じて求めたベクトルに基づいて、前記第１の画像と前記第２の画像とに対して位置合わせを行う位置合わせステップとを有することを特徴とする画像処理装置の制御方法。
【請求項２０】
画像処理装置のコンピュータに動作させるコンピュータのプログラムであって、
撮像手段が第１の画像と第２の画像とを撮像する間の前記撮像手段の動き情報を、前記撮像手段とは別のセンサの出力に基づいて検出する第１の検出ステップと、
前記第１の画像と第２の画像の間の複数の動きベクトルを検出する第２の検出ステップと、
前記第１の検出ステップにおいて検出した前記動き情報の第１の信頼度と前記第２の検出ステップにおいて検出した前記動きベクトルの第２の信頼度との判断を行う判断ステップと、
前記動きベクトルと前記動き情報が示すベクトルとのうちの前記信頼度の高いもの、または、前記動きベクトルと前記動き情報とから前記信頼度に応じて求めたベクトルに基づいて、前記第１の画像と前記第２の画像とに対して位置合わせを行う位置合わせステップとを行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関するものであり、特に複数の画像に対して位置合わせを行う画像処理装置に関するものである。
【背景技術】
【０００２】
デジタルカメラやカメラ機能付きの携帯電話などを移動させながら複数の画像を撮像し、撮像した複数の画像を繋ぎ合わせることによるパノラマ合成の技術が知られている。パノラマ合成では、違和感のない合成画像を取得するために、画像の位置合わせが不可欠である。
【０００３】
特許文献１では、ジャイロセンサなどで検出したデジタルカメラの動き情報と画像の比較で得られた動きベクトルとの両方を用いて、位置合わせを行うという方法が提示されている。特許文献１に提示された技術では、デジタルカメラの動き情報に基づいて、画像の位置合わせに用いる動きベクトルを選択することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５１９７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ジャイロセンサなどのセンサによって検出されたデジタルカメラの動き情報は、撮像条件など複数の要因で信頼度がばらつくことがある。同様に、動きベクトルに関しても、信頼度がばらつくことがある。それに対して特許文献１に開示された技術では、ジャイロセンサなどが検出した動き情報の信頼度を考慮せずに動きベクトルの選択を行っているため、誤った動きベクトルが選択されてしまい、位置合わせの精度が下がる可能性がある。
【０００６】
本発明は、上記の課題を鑑みてなされたものであり、動き情報と動きベクトルとを用いて画像間の位置合わせを行う際に、より適切な動きベクトルを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、撮像手段が第１の画像と第２の画像とを撮像する間の前記撮像手段の動き情報を、前記撮像手段とは別のセンサの出力に基づいて検出する第１の検出手段と、前記第１の画像と第２の画像の間の複数の動きベクトルを検出する第２の検出手段と、前記第１の検出手段が検出した前記動き情報の第１の信頼度と前記第２の検出手段が検出した前記動きベクトルの第２の信頼度との判断を行う判断手段と、前記動きベクトルと前記動き情報が示すベクトルとのうちの前記信頼度の高いもの、または、前記動きベクトルと前記動き情報から前記信頼度に応じて求めたベクトルに基づいて、前記第１の画像と前記第２の画像とに対して位置合わせを行う位置合わせ手段とを有することを特徴とする画像処理装置を提供する。
【発明の効果】
【０００８】
本発明によれば、画像の位置合わせに用いる動きベクトルの精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るデジタルカメラの概略構成を示す背面斜視図である。
【図２】本発明の実施形態に係るデジタルカメラのハードウェア構成を示すブロック図である。
【図３】本発明の実施形態に係るパノラマ撮像中のデジタルカメラの動く方向と画像データの切り出し領域との関係を説明するための図である。
【図４】本発明の実施形態に係るパノラマ画像の合成処理の流れを説明する図である。
【図５】本発明の実施形態を説明するためのフローチャートである。
【図６】本発明の実施形態における検出部が検出した動き情報の誤差を説明するための図である。
【図７】本発明の実施形態における動き情報の信頼度の判断を説明するための図である。
【図８】本発明の実施形態における繰り返しパターンを説明するための図である。
【図９】本発明の実施形態における動きベクトルの信頼度の判断を説明するためのフローチャートである。
【図１０】本発明の実施形態における動きベクトルの補正を説明するためのフローチャートである。
【図１１】本発明の実施形態における動きベクトルの補正を説明するための図である。
【図１２】本発明の実施形態における動きベクトルの除外を説明するための図である。
【図１３】本発明の実施形態において画像全体の動きベクトル用いる位置合わせを説明するための図である。
【発明を実施するための形態】
【００１０】
以下では、添付の図面を参照しながら、本発明の好適な実施形態について詳細に説明する。
【００１１】
図１は、本発明の実施形態に係るデジタルカメラの概略構成を示す背面斜視図である。
【００１２】
デジタルカメラ１００の背面には、画像や各種の情報を表示する表示部１０１と、ユーザによる各種操作を受け付ける各種スイッチやボタン等の操作部材からなる操作部１０２が設けられている。また、デジタルカメラ１００の背面には、撮像モード等を切り替えるモード切替スイッチ１０４と、回転操作可能なコントローラホイール１０３が設けられている。デジタルカメラ１００の上面には、撮像指示を行うシャッタボタン１２１と、デジタルカメラ１００の電源のオン／オフを切り替える電源スイッチ１２２と、被写体に対して閃光を照射するストロボ１４１が設けられている。
【００１３】
デジタルカメラ１００は、接続ケーブル１１１及びコネクタ１１２を介して外部装置と接続可能であり、外部装置に画像データ（静止画データ、動画データ）等を出力することができる。デジタルカメラ１００の下面には、蓋１３１により開閉可能な記憶媒体スロット（不図示）が設けられており、記憶媒体スロットに対してメモリカード等の記憶媒体１３０を挿抜することができるようになっている。
【００１４】
記憶媒体スロットに格納された記憶媒体１３０は、デジタルカメラ１００のシステム制御部２１０（図２参照）と通信可能である。なお、記憶媒体１３０は、記憶媒体スロットに対して挿抜可能なメモリカード等に限定されるものではなく、光学ディスクやハードディスク等の磁気ディスクであってもよく、更に、デジタルカメラ１００の本体に内蔵されていてもよい。
【００１５】
図２は、デジタルカメラ１００のハードウェア構成を示すブロック図である。デジタルカメラ１００は、バリア２０１、撮像レンズ２０２、シャッタ２０３及び撮像部２０４を備える。バリア２０１は、撮像光学系を覆うことにより、撮像光学系の汚れや破損を防止する。撮像レンズ２０２は、ズームレンズ、フォーカスレンズを含むレンズ群により構成されており、撮像光学系を構成する。シャッタ２０３は、絞り機能を備え、撮像部２０４に対する露光量を調節する。撮像部２０４は、光学像を電気信号（アナログ信号）に変換する撮像素子であり、例えば、ＲＧＢの画素が規則的に配置されたベイヤー配列構造を有するＣＣＤセンサやＣＭＯＳセンサ等のイメージセンサである。なお、シャッタ２０３は、機械式シャッタ（以下、メカシャッタという）であってもよいし、撮像素子のリセットタイミングの制御によって蓄積時間を制御する電子シャッタであってもよい。
【００１６】
または、撮像部２０４を、ステレオ画像が取得できる、１つ画素に複数の光電変換部に設けられる構造にすれば、後述する自動焦点検出（ＡＦ）処理がより素早くできる。
【００１７】
デジタルカメラ１００は、Ａ／Ｄ変換器２０５、画像処理部２０６、メモリ制御部２０７、Ｄ／Ａ変換器２０８、メモリ２０９及びシステム制御部２１０を備える。撮像部２０４からＡ／Ｄ変換器２０５へアナログ信号が出力され、Ａ／Ｄ変換器２０５は、取得したアナログ信号をデジタル信号からなる画像データに変換して、画像処理部２０６またはメモリ制御部２０７へ出力する。
【００１８】
画像処理部２０６は、Ａ／Ｄ変換器２０５から取得した画像データまたはメモリ制御部２０７から取得したデータに対して、画素補間やシェーディング補正等の補正処理、ホワイトバランス処理、γ補正処理、色変換処理等を行う。また、画像処理部２０６は、画像の切り出しや変倍処理を行うことで電子ズーム機能を実現する。更に、画像処理部２０６は撮像した画像の画像データを用いて所定の演算処理を行い、こうして得られた演算結果に基づいてシステム制御部２１０が露光制御や測距制御を行う。例えば、システム制御部２１０により、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＥＦ（ストロボプリ発光）処理が行われる。画像処理部２０６は、撮像した画像の画像データを用いて所定の演算処理を行い、得られた演算結果を用いて、システム制御部２１０はＴＴＬ方式のＡＷＢ（オートホワイトバランス）処理を行う。
【００１９】
画像処理部２０６は、複数の画像からパノラマ画像を合成し、またその合成結果の判断を行う画像合成処理回路を有する。画像合成処理回路は、単純な加算平均合成だけでなく、合成対象の画像データの各領域において最も明るい値または暗い値を持つ画素を選択して１枚の画像データを生成する比較明合成や比較暗合成等の処理を行うことができる。また、合成結果を特定の基準に基づいて評価し、判定する。たとえば、合成された画像の数が所定数に満たさない場合や、合成後の画像の長さが基準値に満たさない場合に、合成に失敗したと判定する。なお、画像処理部２０６を備える構成の代わりに、システム制御部２１０によるソフトウェア処理によって画像合成処理の機能を実現する構成としてもよい。
【００２０】
Ａ／Ｄ変換器２０５から出力される画像データは、画像処理部２０６及びメモリ制御部２０７を介して、或いは、メモリ制御部２０７を介して、メモリ２０９に書き込まれる。メモリ２０９は、表示部１０１に表示する画像データを格納する画像表示用メモリ（ビデオメモリ）を兼ねている。メモリ２０９は、所定枚数の静止画像、パノラマ画像（広角画像）、パノラマ画像合成結果を格納することができる記憶容量を備えている。なお、メモリ２０９は、システム制御部２１０が不揮発性メモリ２１１から読み出したプログラム等を展開する作業領域として用いることもできる。
【００２１】
メモリ２０９に格納されている画像表示用データ（デジタルデータ）は、Ｄ／Ａ変換器２０８に送信される。Ｄ／Ａ変換器２０８は、受信したデジタルデータをアナログ信号に変換して表示部１０１に供給し、これにより、表示部１０１に画像が表示される。表示部１０１は、液晶ディスプレイまたは有機ＥＬディスプレイ等の表示装置であり、Ｄ／Ａ変換器２０８からのアナログ信号に基づいて画像を表示する。表示部１０１における画像表示のオン／オフは、システム制御部２１０によって切り替えられ、画像表示をオフにすることで電力消費を低減させることができる。なお、撮像部２０４からＡ／Ｄ変換器２０５を通じてメモリ２０９に蓄積されるデジタル信号をＤ／Ａ変換器２０８によりアナログ信号に変換して表示部１０１に逐次表示することにより、スルー画像を表示する電子ビューファインダ機能を実現することができる。
【００２２】
デジタルカメラ１００は、不揮発性メモリ２１１、システムタイマ２１２、システムメモリ２１３、検出部２１５及びストロボ制御部２１７を備える。不揮発性メモリ２１１は、電気的に消去や記憶が可能なメモリ（例えば、ＥＥＰＲＯＭ等）であり、システム制御部２１０が実行するプログラムや動作用の定数等を格納する。また、不揮発性メモリ２１１は、システム情報を記憶する領域やユーザ設定情報を記憶する領域を有しており、システム制御部２１０は、デジタルカメラ１００の起動時に不揮発性メモリ２１１に記憶された種々の情報や設定を読み出して復元する。
【００２３】
システム制御部２１０は、ＣＰＵを備え、不揮発性メモリ２１１に記憶されている各種のプログラムコードを実行することにより、デジタルカメラ１００の全体的な動作を制御する。なお、システム制御部２１０が不揮発性メモリ２１１から読み出したプログラムや動作用の定数、変数等は、システムメモリ２１３上に展開される。システムメモリ２１３には、ＲＡＭが用いられる。更に、システム制御部２１０は、メモリ２０９やＤ／Ａ変換器２０８、表示部１０１等を制御することにより、表示制御を行う。システムタイマ２１２は、各種の制御に用いる時間や内蔵された時計の時間を計測する。ストロボ制御部２１７は、被写体の明るさに応じて、ストロボ１４１の発光を制御する。検出部２１５は、ジャイロやセンサを含み、デジタルカメラ１００の角速度情報、姿勢情報等を取得する。なお、角速度情報は、デジタルカメラ１００によるパノラマ撮像時の角速度及び角加速度の情報を含む。また、姿勢情報は、水平方向に対するデジタルカメラ１００の傾き等の情報を含む。
【００２４】
図２に示される表示部１０１、操作部１０２、コントローラホイール１０３、シャッタボタン１２１、モード切替スイッチ１０４、電源スイッチ１２２及びストロボ１４１は、図１を参照して説明したものと同じである。
【００２５】
操作部１０２を構成する各種の操作部材は、例えば、表示部１０１に表示される種々の機能アイコンの選択に用いられ、所定の機能アイコンが選択されることにより、場面毎に機能が割り当てられる。即ち、操作部１０２の各操作部材は、各種の機能ボタンとして作用する。機能ボタンとしては、例えば、終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン、ＤＩＳＰボタン等が挙げられる。例えば、メニューボタンが押下されると、各種の設定を行うためのメニュー画面が表示部１０１に表示される。ユーザは、表示部１０１に表示されたメニュー画面と、上下左右の４方向ボタンやＳＥＴボタンとを用いて、直感的に設定操作を行うことができる。
【００２６】
回転操作が可能な操作部材であるコントローラホイール１０３は、４方向ボタンと共に選択項目を指定するとき等に使用される。コントローラホイール１０３を回転操作すると、操作量（回転角度や回転回数等）に応じた電気的なパルス信号が発生する。システム制御部２１０は、このパルス信号を解析して、デジタルカメラ１００の各部を制御する。
【００２７】
シャッタボタン１２１は、第１スイッチＳＷ１と第２スイッチＳＷ２を有する。第１スイッチＳＷ１は、シャッタボタン１２１の操作途中の半押し状態でオンとなり、これにより、撮像準備を指示する信号がシステム制御部２１０に送信される。システム制御部２１０は、第１スイッチＳＷ１がオンになった信号を受信すると、ＡＦ処理、ＡＥ処理、ＡＷＢ処理、ＥＦ処理等の動作を開始する。第２スイッチＳＷ２は、シャッタボタン１２１の操作が完了する全押し状態でオンとなり、これにより、撮像開始を指示する信号がシステム制御部２１０に送信される。システム制御部２１０は、第２スイッチＳＷ２がオンになった信号を受信すると、撮像部２０４からの信号読み出しから記憶媒体１３０への画像データの書き込みまでの一連の撮像動作を行う。
【００２８】
モード切替スイッチ１０４は、デジタルカメラ１００の動作モードを、静止画撮像モード、動画撮像モード、再生モード等の各種モードの間で切り替えるためのスイッチである。静止画撮像モードは、オート撮像モード等の他に、パノラマ撮像によりパノラマ画像を合成するパノラマ画像撮像モードを含む。
【００２９】
デジタルカメラ１００は、電源部２１４及び電源制御部２１８を備える。電源部２１４は、アルカリ電池やリチウム電池等の一次電池、ＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、或いは、ＡＣアダプタ等であり、電源制御部２１８へ電力を供給する。電源制御部２１８は、電源部２１４における電池の装着の有無、電池の種類、電池残量等を検出し、その検出結果及びシステム制御部２１０の指示に基づいて、必要な電圧を必要な期間、記憶媒体１３０を含む各部へ供給する。
【００３０】
デジタルカメラ１００は、記憶媒体１３０が記憶媒体スロット（不図示）に装着された際に、記憶媒体１３０とシステム制御部２１０との間の通信を可能にするための記憶媒体Ｉ／Ｆ２１６を備える。記憶媒体１３０の詳細については、図１を参照して既に説明しているため、ここでの説明を省略する。
【００３１】
次に、パノラマ撮像の方法と、複数の撮像画像からパノラマ画像を合成する方法について説明する。最初に、パノラマ画像を合成するために撮像画像の画像データから所定の領域を切り出す処理について説明する。
【００３２】
図３は、パノラマ撮像中のデジタルカメラ１００の動く方向と画像データの切り出し領域との関係を説明するための図である。
【００３３】
図３（ａ）は、撮像部２０４が有する撮像素子の有効画像領域を示しており、“Ｗｖ”は水平方向の有効画素数であり、“Ｈｖ”は垂直方向の有効画素数である。図３（ｂ）は、撮像画像の画像データから切り出した切り出し領域を示しており、“Ｗｃｒｏｐ”は水平方向の切り出し画素数であり、“Ｈｃｒｏｐ”は垂直方向の切り出し画素数である。
【００３４】
図３（ｃ）は、矢印で示す水平方向にデジタルカメラ１００を移動させながらパノラマ撮像を行った場合の画像データに対する切り出し領域を示す図である。図３（ｃ）においてハッチングにて示した領域Ｓ１が画像データからの切り出し領域を示しており、下記の（式１）および（式２）を満たす。
Ｗｖ＞Ｗｃｒｏｐ・・・・・・（式１）
Ｈｖ＝Ｈｃｒｏｐ・・・・・・（式２）
【００３５】
同様に、図３（ｄ）は、矢印で示す鉛直方向にデジタルカメラ１００を移動させながらパノラマ撮像を行った場合の画像データに対する切り出し領域を示す図である。図３（ｄ）においてハッチングにて示した領域Ｓ２が画像データの切り出し領域を示しており、下記の（式３）および（式４）を満たす。
Ｗｖ＝Ｗｃｒｏｐ・・・・・・（式３）
Ｈｖ＞Ｈｃｒｏｐ・・・・・・（式４）
【００３６】
撮像画像の画像データの切り出し領域は、画像データ毎に異なるようにしてもよい。また、パノラマ撮像の開始時とパノラマ撮像の終了時の画像データについては、画角を広くするために切り出し領域を広くしてもよい。画像データの切り出し領域の決定方法は、例えば、撮像直後のデジタルカメラ１００の角度と１フレーム前のデジタルカメラ１００の角度との差等により決定することができる。パノラマ画像の合成処理に必要な画像データのみを切り出して保存することにより、メモリ２０９の記憶容量を節約することができる。
【００３７】
なお、前述した切り出し領域は、できるだけ撮像画像の中央に設定するとよい。これは、撮像画像の中央は、一般的に歪が少なく、切り出し領域を画像の中央に設定すれば、より自然な合成画像が生成できるからである。
【００３８】
次に、パノラマ画像の合成方法について説明する。システム制御部２１０は、パノラマ撮像時に保存された切り出し領域をメモリ２０９から読み出し、読み出した画像データにパノラマ合成を行う。
【００３９】
図４は、パノラマ画像の合成処理の流れを説明する図である。図４では、ドットハッチングされた領域は、被写界にある並木を模式的に表した領域であり、斜線ハッチングされた領域は、画像データの切り出し領域を表している。図４（ａ）は、ユーザがシャッタボタン１２１を押下し、第１スイッチＳＷ１がオンにされた状態を示し、ユーザは、主被写体に対してピント合わせを行うことを示している。図４（ｂ）は、シャッタボタン１２１の第２スイッチＳＷ２がオンにされた位置を示しており、ユーザが合成しようとしているパノラマ画像の一方の端に合わせて画角を設定している。図４（ｂ）では、撮像部２０４は画像４１０を撮像する。図４（ｃ）乃至図４（ｅ）では、ユーザが合成しようとしているパノラマ画像の他方の端に向けてデジタルカメラ１００を移動させながら、パノラマ撮像を行っている状態を模式的に示している。図４（ｅ）は、ユーザがシャッタボタン１２１の押下をやめ、パノラマ撮像が終了した状態を示している。図４（ｂ）乃至図４（ｅ）では、撮像部２０４が画像４１０乃至４７０計７枚の画像を撮像したが、画像４３０、４５０および４６０は不図示である。画像処理部２０６は、撮像部２０４が撮像した画像４１０乃至４７０に対して切り出し処理を行い、切り出し領域４１１乃至４７１を生成する。システム制御部２１０において、切り出し領域の幅は、予め定めてもよいが、パノラマ撮像中のデジタルカメラ１００の移動速度などに応じて変化させてもよい。
【００４０】
図４（ｆ）は、画像処理部２０６が、撮像部２０４が撮像した複数の画像を合成してできたパノラマ画像を示している。ここで、システム制御部２１０は、合成を行う前に、画像に対して位置合わせを行う。また、手振れなどのため、切り出し領域４１１乃至４７１の上辺と下辺とは合っていないため、画像処理部２０６は、縦方向に対しても切り出し処理を行う。その結果、画像処理部２０６は、領域４００が示したようなパノラマ画像を生成する。
【００４１】
システム制御部２１０は、画像処理部２０６が検出した複数の動きベクトルに基づいて、位置合わせを行う。一例としては、画像処理部２０６は、切り出し領域を任意のサイズの小ブロックに分割し、小ブロック毎に輝度の差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下、ＳＡＤをいう）が最小となる対応点を算出する。システム制御部２１０は、算出したＳＡＤが最小となる対応点より、動きベクトルを算出することができる。システム制御部２１０は、ＳＡＤのほかに、差分二乗和（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＳＤをいう）や正規化相互相関（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ  Ｃｏｒｒｅｌａｔｉｏｎ、以下ＮＣＣをいう）などを用いてもよい。
【００４２】
図４では、説明を容易にするため、切り出し領域４１１乃至４７１の互いに重畳する領域がなく、かつ、互いに隣接している例を示している。もし、重畳する領域が存在していれば、重畳する領域の中央を境目として、画像処理部２０６は、その左側に片方の切り出し領域、右側にもう片方の切り出し領域の画素情報を合成画像に出力する。もしくは、画像処理部２０６は、境目上に両方の切り出し領域の画素情報を５０％ずつ合成した値を出力し、境目からの距離が離れるに従って境目の左側では片方の切り出し領域を、境目の右側ではもう片方の切り出し領域の割合を大きくしながら合成を行う。
【００４３】
本実施形態では、従来の位置合わせと異なり、検出部２１５が検出した角速度情報だけでなく、その信頼度などを用いて、前述した画像処理部２０６が検出した複数の動きベクトルの選択を行う。以下では、フローチャートを用いて本実施形態のフローについて説明する。
【００４４】
図５は、本実施形態を説明するためのフローチャートである。ユーザが、モード切替スイッチ１０４で、パノラマ画像合成モードを選択した場合に、デジタルカメラ１００が図５の処理を実行する。
【００４５】
ステップＳ５０１で、ユーザがパノラマ撮像のための設定を行う。たとえば、ユーザがパノラマ合成画像の画角や撮像方向などの設定を行う。もし、ステップＳ５０１で、ユーザが設定をしなかった場合は、デジタルカメラ１００は、パノラマ撮像において、初期の設定を用いるか、前回のパノラマ撮像のときの設定を用いる。
【００４６】
続いて、ステップＳ５０２で、システム制御部２１０は、第１スイッチＳＷ１が押されたか否かの判定を行い、第１スイッチＳＷ１が押されたと判定された場合、ステップＳ５０３の処理に移る。第１スイッチＳＷ１が押されなかったと判定された場合、ステップＳ５０１の処理に戻る。
【００４７】
ステップＳ５０３で、検出部２１５は、姿勢検知処理を行う。姿勢検知処理では検出部２１５は、デジタルカメラ１００の向きを判断する。もし、ユーザがステップＳ５０１での設定で、デジタルカメラ１００の向きを予め設定したのであれば、ここで、システム制御部２１０は、デジタルカメラ１００の設定された向きと実際の向きとを比較し、異なる場合では適宜に警告を出す。
【００４８】
ステップＳ５０４で、デジタルカメラ１００は、自動露出処理制御（ＡＥ）処理と自動焦点検出（ＡＦ）処理とを行う。
【００４９】
ステップＳ５０５で、システム制御部２１０は、ステップＳ５０４のＡＥ処理結果に基づいて撮像感度などの撮像条件を決定する。
【００５０】
ステップＳ５０６で、デジタルカメラ１００は、被写体の距離を検出する。システム制御部２１０は、被写体の距離を、ステップＳ５０４のＡＦ処理で被写体が合焦状態であると判断したときの撮像部２０４の焦点距離から求める。
【００５１】
次に、ステップＳ５０７で、システム制御部２１０は、第２スイッチＳＷ２が押されたか否かの判定を行う。ステップＳ５０７において、第２スイッチＳＷ２が押されなかったと判定された場合、システム制御部２１０は、ステップＳ５０２に戻り、第１スイッチＳＷ１が押されたままか否か（いわゆる半押しのままか否か）判定する。ステップＳ５０７において、システム制御部２１０は、第２スイッチＳＷ２が押されたと判定された場合、ステップＳ５０８に進み、ステップＳ５０５で決定した撮像条件で撮像部２０４が撮像する。
【００５２】
ステップＳ５０９で、検出部２１５は、角速度などの動き情報の検出を行う。ここで、検出部２１５から得られる角速度の情報は安定せずオフセットが加算された状態で出力されることがあるため、ハイパスフィルタを利用し、オフセットを除去した値を使ってもよい。検出部２１５が検出した動き情報は、のちのステップＳ５１４での位置合わせの係数の算出に用いられる。
【００５３】
ステップＳ５１０で、システム制御部２１０は、ステップＳ５０８で撮像部２０４が撮像した画像は、１枚目の画像かどうかについて判断する。ステップＳ５０８で撮像部２０４が撮像した画像が１枚目の画像の場合、メモリ２０９にこの１枚の画像しかなく、画像処理部２０６が位置合わせを行うことができない。そのため、ステップＳ５１０でシステム制御部２１０が１枚目の画像と判断した場合、フローをステップＳ５０８に戻す。一方、ステップＳ５１０でシステム制御部２１０が１枚目の画像でないと判断した場合、ステップＳ５１１に進む。
【００５４】
ステップＳ５１１で、システム制御部２１０が、動きベクトルの検出を行う。画像処理部２０６は、２枚の画像の一方に対して、複数の小ブロックを設定する。各々の小ブロックを同じサイズに設定することが好ましい。また、画像処理部２０６は、画像の全部でなく画像の一部に小ブロックを設定するようにしてもよい。システム制御部２１０は、一方の画像に設定された複数の小ブロックのいずれかを選択し、他方の画像において、この選択した小ブロックと同じ位置であって、かつ、この小ブロックより広い探索ブロックを設定する。システム制御部２１０は、他方の画像の探索ブロックの中で、一方の画像の選択した小ブロックと最も相関が高くなる（ＳＡＤの値が最小となる）領域を抽出する。システム制御部２１０は、抽出した領域の中心である対応点の座標と、選択した小ブロックの中心位置の座標から、その小ブロックに対応する動きベクトルを算出することができる。システム制御部２１０は、これを全ての小ブロックに対して行い、全ての小ブロックに対応する動きベクトルを算出する。
【００５５】
ステップＳ５１２で、システム制御部２１０は、動き情報の信頼度を判断する。詳細について後述する。
【００５６】
ステップＳ５１３で、システム制御部２１０は、動きベクトルの信頼度を判断する。詳細について後述する。
【００５７】
ステップＳ５１４で、システム制御部２１０は、動きベクトルに対して、補正を行う。詳細について後述する。
【００５８】
ステップＳ５１５で、システム制御部２１０は、補正後の動きベクトルを用いて、位置合わせの係数の算出を行う。並進移動のみでよい場合、システム制御部２１０は、補正後の動きベクトルの平均値を用いることができる。または、システム制御部２１０は、補正後の動きベクトルのうち、同じ方向を示す動きベクトルを数え、最も多い個数の動きベクトルを用いる。画像に対して拡大縮小・回転の処理をする必要があれば、システム制御部２１０は、位置合わせの係数として、例えば射影変換係数を用いる。ただし、位置合わせの係数として射影変換係数だけに限定するわけではなく、アフィン変換係数や水平垂直シフトのみの簡略化した位置合わせの係数を用いてもよい。
【００５９】
ステップＳ５１６で、システム制御部２１０は、位置合わせを行う。たとえば、システム制御部２１０は、（式５）に示した式を用いて位置合わせを行うことができる。
【００６０】
【数１】
2019022162.tif 000003
【００６１】
（式５）では、（ｘ´、ｙ´）は位置合わせを行った後の座標を示し、（ｘ、ｙ）は位置合わせを行う前の座標を示す。行列ＡはステップＳ５１５でシステム制御部２１０が算出した位置合わせの係数を示す。
【００６２】
ステップＳ５１７でシステム制御部２１０は撮像が継続中かを判定し、継続している場合はステップＳ５０８に処理を戻し、撮像が終了したと判定した場合はステップＳ５１８に進む。システム制御部２１０は、ステップＳ５０１のユーザ設定に基づいて、撮像が継続か終了かを判断する。たとえば、ステップＳ５０１で設定した画角に達したら、システム制御部２１０は撮像が終了したと判断する。
【００６３】
ステップＳ５１８で、画像処理部２０６は、パノラマ合成を行う。画像処理部２０６は、それぞれの画像に対して、まず、歪の小さな中央付近の矩形領域を切り出す。次に、画像処理部２０６は、それぞれの画像から切り出した領域に対して合成処理を行う。合成処理の詳細は、前述した図４の説明の通りで、ここで省略する。
【００６４】
＜動き情報の信頼度と動きベクトルの信頼度との判断＞
次に、上述したステップＳ５１２での動き情報の信頼度の判断、およびステップＳ５１３での動きベクトルの信頼度の判断について説明する。
【００６５】
前述したように、システム制御部２１０は、ステップ５１１で、画像間の比較を行うことによって、動きベクトルの検出を行う。しかしながら、画像により、一部の動きベクトルを誤検出してしまう可能性がある。たとえば、空や芝生など、同じような模様が続く風景や波や滝など常に模様が変化する風景に対して、動きベクトルの検出を誤ってしまう可能性が高い。この課題を解決するために、本実施形態で、システム制御部２１０は、誤検出の可能性の高い動きベクトルに対して、検出部２１５が検出した動き情報を用いて補正を行う。
【００６６】
しかしながら、検出部２１５がステップＳ５０９で検出した動き情報も常に正しいとは限らず、大きな誤差を含む可能性もある。システム制御部２１０は、正しくない動き情報を用いて動きベクトルに対して補正を行うと、逆に位置合わせの精度を下げてしまう可能性がある。
【００６７】
したがって、本実施形態では、システム制御部２１０は、動き情報の信頼度および動きベクトルの信頼度を判断し、これらの信頼度を参考にして動きベクトルに対する補正を行う。
【００６８】
動き情報の信頼度は、検出部２１５の性質によって決まるものであり、撮像中に様々な影響を受けて変わってしまう可能性がある。システム制御部２１０は、こうした信頼度が影響を受ける場面を検知したら、信頼度を調整する。
【００６９】
図６は、本実施形態における検出部２１５が検出した動き情報の誤差を説明するための図である。説明を簡単にするため、撮像部２０４が二次元で単一方向に動くと仮定し、システム制御部２１０が、検出部２１５が検出した角速度に基づいて撮像部２０４の動きの速さを得るとする。撮像部２０４が時刻Ｔ１に前の画像を撮像するための露光を完了し、時刻Ｔ２で次の画像を撮像するための露光を開始するものとする。検出部２１５が、時刻Ｔ１と時刻Ｔ２の間で等間隔の６つの時刻で（ｔ１乃至ｔ６）で撮像部２０４の速さを得たとする。システム制御部２１０は、図６（ａ）における縦棒６０１の面積を動き情報として得る。同様に、システム制御部２１０は、図６（ｂ）における縦棒６１１の面積を動き情報として得る。ただし、図６（ａ）と図６（ｂ）とでは、曲線６０３および曲線６１３は、実際の連続的な撮像部２０４の動きの速さを示し、空白部分６０２と６１２とは、検出部２１５の検出の誤差を意味する。図６（ａ）と図６（ｂ）とを比較すると、分散の大きい図６（ｂ）では、誤差を意味する空白部分６１２の面積が大きいとわかる。前述したように、検出部２１５が検出結果から得られた速度の分散が大きいと、動き情報の誤差が大きい可能性がある。
【００７０】
また、動き情報の誤差の変化のもう１つの例としては、シャッタ２０３がメカシャッタである場合のその動作による影響が挙げられる。メカシャッタであるシャッタ２０３が動作すると、デジタルカメラ１００が振動してしまい、検出部２１５に設けられるジャイロセンサの検出精度に影響を与える可能性がある。ただし、こうした影響は、主にメカシャッタが動作する方向で起き、それと直交する方向では起きる影響が少ない。
【００７１】
また、動き情報の誤差に影響を与えるもう１つの要因としては、デジタルカメラ１００の起動直後であることが挙げられる。デジタルカメラ１００の起動直後では、ノイズの重畳の仕方が通常と比べ変わってしまい、検出部２１５が検出した動き情報の誤差が大きくなる可能性がある。
【００７２】
また、動き情報の誤差に影響を与えるもう１つの要因としては、被写体距離が挙げられる。システム制御部２１０は、近距離被写体に対して画像間の動きベクトルを検出する場合に、検出部２１５が検出した動き情報との乖離が大きくなることがある。これは、検出部２１５は、基準となる被写体距離に基づいて、ジャイロから得られた角速度情報を動き情報に換算しているが、被写体距離が近い場合には、この基準となる被写体距離との乖離が大きくなってしまうことが一因である。
【００７３】
前述したような動き情報の検出結果や動きベクトルの検出結果は、二次元座標系（一般的には直交系）を用いて、ＸＹ方向のそれぞれに分離してもよい。システム制御部２１０は、Ｘ方向をデジタルカメラ１００の移動方向と平行する方向とし、Ｙ方向をＸ方向と直交する方向としてよい。つまり、デジタルカメラ１００は、Ｘ方向、Ｙ方向のそれぞれにおいて、動き情報の検出と、動きベクトルの検出を行うとともに、動き情報の信頼度の判断と、動きベクトルの選択とを行う。すなわち、ステップＳ５０９とステップＳ５１１で得られた動き情報と動きベクトルのそれぞれをＸ方向の成分とＹ方向の成分に分離し、それぞれの方向において動きベクトルを選択するための判断を行うようにすればよい。以下では、２次元座標系を用いるステップＳ５１２とステップＳ５１３の詳細について説明する。
【００７４】
図７は、本実施形態における動き情報の信頼度の判断を説明するための図である。前述したように、このフローでは、ＸＹ方向を有する二次元座標系に基づいて説明する。
【００７５】
ステップＳ７０１で、システム制御部２１０は、検出部２１５が検出したＸ方向での速度の分散が所定値より大きいかどうかについて判断し、大きい場合はステップＳ７０２に進み、そうでない場合ステップＳ７０３に進む。ステップＳ７０２では、システム制御部２１０は、Ｘ方向での速度の分散に応じてＸ方向の動き情報の信頼度を下げるか、予め定められた量でＸ方向の動き情報の信頼度を下げる。ステップＳ７０３とステップＳ７０４での処理は、ステップＳ７０１とステップＳ７０２におけるＸ方向をＹ方向に置き換えたものである。
【００７６】
ステップＳ７０５で、システム制御部２１０は、シャッタ２０３がメカシャッタかどうかについて判断する。シャッタ２０３がメカシャッタであれば、ステップＳ７０６に進み、システム制御部２１０は、シャッタ２０３が動作した方向の信頼度を下げる。たとえば、水平方向をＸ方向、鉛直方向をＹ方向とすると、デジタルカメラ１００を横向きに置き、シャッタ２０３が動作する方向がＹ方向であることが多く、システム制御部２１０は、Ｙ方向の動き情報の信頼度を下げる。ユーザがデジタルカメラ１００を斜めに持つとすると、シャッタ２０３が動作する方向が鉛直でなくなる。このような場合でも水平方向をＸ方向、鉛直方向をＹ方向とすれば、システム制御部２１０は、ステップＳ５０３で検出部２１５が検出した姿勢情報に応じて、Ｘ方向とＹ方向との動き情報の信頼度を下げる。
【００７７】
一方、シャッタ２０３が電子シャッタの場合、機械的な動作をせず、デジタルカメラ１００に対して振動を与えることがないため、動き情報の信頼度が変わらない。
【００７８】
ステップＳ７０７で、システム制御部２１０は、デジタルカメラ１００が起動されてから所定の時間以内かどうかについて判断し、時間内であれば、ステップＳ７０８に進み、Ｘ方向およびＹ方向の動き情報の信頼度を下げ、ステップＳ７０９に進む。一方、ステップＳ７０７で、システム制御部２１０は、起動直後でないと判断すると、直接ステップＳ７０９に進む。
【００７９】
ステップＳ７０９で、システム制御部２１０は、被写体距離が所定量より近いかどうかについて判断し、近ければ、ステップＳ７１０に進み、Ｘ方向およびＹ方向の動き情報の信頼度を下げる。一方、ステップＳ７０９で、システム制御部２１０は、被写体距離が所定量ほど近くないと判断する場合、動き情報の信頼度を下げずに終了する。
【００８０】
次に、動きベクトルの信頼度の判断について詳細に説明する。
【００８１】
動きベクトルの信頼度に影響を与える要因の１つとしては、撮像された画像における繰り返しパターンが挙げられる。繰り返しパターンのある画像では、デジタルカメラを動かしても似たような画像が映ることが多く、システム制御部２１０は、ＳＡＤ、ＳＳＤ、ＮＣＣのいずれの方法用いても検出した動きベクトルの誤差が大きい。
【００８２】
図８は本実施形態において繰り返しパターンを説明するための図である。図８は、デジタルカメラ１００が同様な被写体を有する画角８００に対して撮像した３枚の画像８１０、８２０および８３０を示す。画角８００において、横方向で同様な被写体が繰り返し配置されている。デジタルカメラ１００が、最初に画像８１０を撮像し、横方向に移動して画像８２０を撮像し、また、画像８１０を撮像した位置から縦方向に移動して画像８３０を撮像する。システム制御部２１０は、画像８２０および画像８３０それぞれの画像８１０に対する動きベクトルの検出を行う。
【００８３】
図８（ａ）と図８（ｂ）とを比較して、デジタルカメラ１００が移動したにもかかわらず、同じような画像が撮像されたことがわかる。システム制御部２１０は、デジタルカメラ１００が画像８１０と８２０とを撮像する間にまったく動いていないと判断する可能性が高い。このように、システム制御部２１０は、各々のブロックを比較しても正しい動きベクトルを得ることが困難である。
【００８４】
一方、図８（ａ）と図８（ｃ）とを比較することで、画像８３０は画像８１０に対して下方向に移動したことがわかる。システム制御部２１０は、画像８１０と８３０とを比較することで動きベクトルを検出する場合、図８（ａ）と図８（ｂ）と比較する場合と比べて信頼度が高いと考えられる。
【００８５】
上述したように、画像において繰り返しパターンが存在すると、動きベクトルの信頼度が下がる可能性がある。特に、特定な方向に繰り返しパターンが存在すると、その方向における動きベクトルの信頼度が下がる可能性がある。
【００８６】
また、繰り返しパターンのほかに、画像に一方向に伸びた線状の被写体が存在すると、その線に沿った方向においては、繰り返しパターンと同様に動きベクトルの信頼度が下がる可能性がある。
【００８７】
ほかに、動きベクトルの信頼度を下げる要因としては、低コントラスト領域の存在が挙げられる。前述したＳＡＤ、ＳＳＤ、ＮＣＣのいずれの方法でも輝度を用いて動きベクトルの検出を行うことが多く、低コントラスト領域はブロック間の輝度の違いが小さく、誤差が出やすい。
【００８８】
ステップＳ５１３では、システム制御部２１０は、上述したような要因を考慮して、動きベクトルの信頼度を判断する。
【００８９】
図９は、本実施形態におけるステップＳ５１３でシステム制御部２１０が動きベクトルの信頼度の判断を説明するためのフローチャートである。以下の説明では、図７と同じように、システム制御部２１０は、Ｘ方向とＹ方向とのそれぞれについて動きベクトルの信頼度の判断を行う。
【００９０】
ステップＳ９０１では、システム制御部２１０は、信頼度の判断処理を済んでいない動きベクトルを処理対象として選択する。
【００９１】
ステップＳ９０２では、処理対象の動きベクトルを検出したブロックに、Ｘ方向に繰り返しパターンまたは線状の被写体が存在する場合、ステップＳ９０３に進み、システム制御部２１０は、処理対象の動きベクトルのＸ方向の信頼度を下げる。ステップＳ９０２で、Ｘ方向に繰り返しパターンまたは線状の被写体が存在しない場合、フローはステップＳ９０４に進む。
【００９２】
ステップＳ９０４では、処理対象の動きベクトルを検出したブロックに、Ｙ方向に繰り返しパターンまたは線状の被写体が存在する場合、ステップＳ９０５に進み、システム制御部２１０は、処理対象の動きベクトルのＹ方向の信頼度を下げる。ステップＳ９０４で、Ｙ方向に繰り返しパターンまたは線状の被写体が存在しない場合、フローはステップＳ９０６に進む。
【００９３】
上述した線状の被写体および繰り返しパターンの判断では、一例としてシステム制御部２１０がＳＡＤを通じて行う。画像に線状の被写体が存在すると、特定の方向に対してＳＡＤの変化量が極端に小さくなる。システム制御部２１０、画像全体に対してＳＡＤの変化量を判断し、たとえば、Ｘ方向に沿ってＳＡＤの変化量が小さい場合ではＸ方向に線状の被写体が存在すると判断する。Ｙ方向についても同様である。また、画像に繰り返しパターンが存在すると、システム制御部２１０がＳＡＤの微分を求めることによって、ＳＡＤが極小となる点を検出できる。ＳＡＤが極小となる点が複数検出されると、システム制御部２１０は、繰り返しパターンが存在すると判断する。システム制御部２１０は、ＳＡＤの極小値となる点がＸ方向に複数検出する場合には、Ｘ方向に繰り返しパターンが存在すると判断する。Ｙ方向についても同様である。
【００９４】
ステップＳ９０４で、画像処理部２０６は、処理対象の動きベクトルを検出したブロックのコントラストを検出する。システム制御部２１０は、画像処理部２０６が検出したコントラストを予め定められた閾値と比較し、コントラストが閾値より小さければ、ステップＳ９０７に進み、Ｘ方向とＹ方向との動きベクトルの信頼度を下げる。一方、ステップＳ９０６でコントラストが閾値以上であれば、直接ステップＳ９０８に進む。
【００９５】
ステップＳ９０８で、システム制御部２１０は、すべての動きベクトルが処理を済んでいるかどうかについて判断する。すべての動きベクトルが信頼度の判断の処理を済んでいればこのフローを終了し、まだすべての動きベクトルが済んでいなければステップＳ９０１に戻る。
【００９６】
以上では、動き情報および動きベクトルの信頼度の判断について説明した。
【００９７】
＜動きベクトルの補正＞
前述したように、ステップＳ５１１でシステム制御部２１０が検出した動きベクトルには、誤差のある可能性があり、そのせいで画像の位置合わせの精度が下がる可能性もある。そのために、ステップＳ５１４で、システム制御部２１０は動きベクトルに対して補正を行う。まず、システム制御部２１０は、動き情報の信頼度とそれぞれの動きベクトルの信頼度とを比較し、補正が必要な動きベクトルを特定する。その後、システム制御部２１０は、動き情報を用いて補正が必要な動きベクトルに対して補正を行う。以下は、その一例について説明する。
【００９８】
図１０は本実施形態におけるステップＳ５１４での動きベクトルの補正を説明するためのフローチャートである。
【００９９】
ステップＳ１００１で、システム制御部２１０は、動きベクトルの補正処理を済んでいない動きベクトルを処理対象として選択する。
【０１００】
ステップＳ１００２では、システム制御部２１０は、Ｘ方向において、動きベクトルの信頼度と動き情報の信頼度とを比較する。動きベクトルの信頼度が動き情報の信頼度よりも低ければ、システム制御部２１０は、ステップＳ１００３に進み、Ｘ方向の動きベクトルを動き情報のＸ方向の成分に置き換える。一方、ステップＳ１００２で、動きベクトルの信頼度が動き情報の信頼度以上であれば、直接、ステップＳ１００４に進む。
【０１０１】
ステップＳ１００４では、システム制御部２１０は、Ｙ方向において、動きベクトルの信頼度と動き情報の信頼度とを比較する。動きベクトルの信頼度が動き情報の信頼度よりも低ければ、システム制御部２１０は、ステップＳ１００５に進み、Ｙ方向の動きベクトルを動き情報のＹ方向の成分に置き換える。一方、ステップＳ１００４で、動きベクトルの信頼度が動き情報の信頼度以上であれば、直接、ステップＳ１００６に進む。
【０１０２】
ステップＳ１００６で、システム制御部２１０は、すべての動きベクトルが処理を済んでいるかどうかについて判断する。すべての動きベクトルが処理を済んでいればこのフローを終了し、まだすべての動きベクトルが済んでいなければステップＳ１００１に戻る。
【０１０３】
上述した説明では、動き情報の信頼度が動きベクトルの信頼度より小さければ動きベクトルに対して処理を行わないとしたが、これに限らず、様々な変形することができる。たとえば、システム制御部２１０は、動きベクトルの信頼度と動き情報の信頼度との大小関係に応じて、動き情報を参照して動きベクトルを補正し、補正後の動きベクトルを用いて位置合わせを行うようにしてもよい。具体的に、システム制御部２１０は、動きベクトルと動き情報との信頼度を比較し、動きベクトルの信頼度の方が高いとき、動きベクトルをそのまま位置合わせに用いる。一方、動き情報の信頼度の方が高いとき、動き情報をそのまま位置合わせに用いるのでなく、動き情報に対して、動きベクトルとの差が小さくなるように補正を行う。そして、システム制御部２１０は、補正後の動きベクトルを位置合わせに用いる。
【０１０４】
図１１は、本実施形態における動きベクトルの補正を説明するための図である。図１１では、画像１１００と１１０１とに対して位置合わせを行うとき、それぞれのブロックで検出した動きベクトルの補正を図示している。図１１では、水平方向をＸ方向とし、鉛直方向をＹ方向とする。
【０１０５】
図１１（ａ）では、重複する画角を有する画像１１００と１１０１とを示している。図１１（ｂ）では検出部２１５から得られるデジタルカメラ１００の動き情報を示すベクトル１１０２を示している。画像１１００と１１０１と比較すると、デジタルカメラ１００が撮像中、右上に動いていたと思われるが、動き情報を示すベクトルは、上方向の成分がない。これは、誤差による影響とする。
【０１０６】
図１１（ｃ）では、システム制御部２１０がＳＡＤに基づいて検出したブロックごとの動きベクトルをしている。動きベクトル１１０３は、Ｘ方向とＹ方向とともに信頼度が高いため、補正の対象になっていない。動きベクトル１１０４が位置するブロックでは、線状の被写体が検出されたため、システム制御部２１０にＸ方向の信頼度が低いと判断された。動きベクトル１１０４のＸ方向の信頼度が動き情報のＸ方向の信頼度よりも低いとすると、システム制御部２１０は、動きベクトル１１０４のＸ方向の成分を動き情報に基づくベクトル１１０２のＸ方向の成分に置き換える。
【０１０７】
動きベクトル１１０５が位置するブロックには、システム制御部２１０が繰り返しパターン（図示の草地）をＸ方向とＹ方向と両方において検出し、動きベクトル１１０５のＸ方向とＹ方向との信頼度が低いと判断した。動きベクトル１１０５の信頼度がＸ方向とＹ方向とにおいて動き情報の信頼度より低いとすると、システム制御部２１０は、動きベクトル１１０５のＸ方向とＹ方向との成分をともに動き情報を示すベクトル１１０２のものに置き換える。（実質、動きベクトル１１０５そのものを動き情報を示すベクトル１１０２に置き換える。）
【０１０８】
動きベクトル１１０６が位置するブロックは、低コントラスト領域であるため、動きベクトル１１０６の信頼度は、Ｘ方向とＹ方向とにおいて低い。動きベクトル１１０６の信頼度がＸ方向とＹ方向とにおいて動き情報の信頼度より低いとすると、その処理は動きベクトル１１０５に対する処理と同様となる。
【０１０９】
システム制御部２１０が前述した処理を、図１１（ｃ）に示したすべての動きベクトルに対して行うと、図１１（ｄ）に示したような補正後の動きベクトルが得られる。図１１（ｄ）では、点線の矢印が置き換え処理を経た動きベクトルを示す。
【０１１０】
最後に、システム制御部２１０は、図１１（ｄ）に示した補正後の動きベクトルを用いて、位置合わせの係数の算出のためのベクトルを算出する。ここでは、画像１１００と１１０１とを撮像する間にデジタルカメラ１００が並進移動するだけと仮定し、アフィン変換などを行う必要はない。システム制御部２１０は、補正後の動きベクトルの平均で図１１（ｅ）に示したベクトルを算出することができる。
【０１１１】
なお、以上の説明では、信頼度の大小関係に基づいて、検出した動きベクトルか動き情報のどちらかを位置合わせに用いるようにしたが、信頼度の大小関係に応じて、動きベクトルに対する補正の程度を調整してもよい。
【０１１２】
また、以上に述べた実施形態では、システム制御部２１０は、画像に設定したすべてのブロックで検出した動きベクトルを位置合わせに用いるようにしたが、一部の動きベクトルを位置合わせに用いないことも考えられる。たとえば、システム制御部２１０は、それぞれの動きベクトルと動き情報とを比較し、動き情報との差分の大きさが閾値よりも大きい動きベクトルを、補正せずに位置合わせに用いないようにする。つまり、システム制御部２１０は、検出した動きベクトルの一部を、画像の位置合わせの係数の算出に用いる対象から除外する。
【０１１３】
図１２は、本実施形態における動きベクトルの除外を示すための図である。図１２（ａ）はデジタルカメラ１００が移動されながら撮像した２枚の画像と検出部２１５が検出した動き情報とを示し、図１２（ｂ）はシステム制御部２１０が検出した複数の動き情報を示している。システム制御部２１０は、図１２（ｂ）がステップＳ５１４の動きベクトルの補正の直前に、それぞれの動きベクトルと動き情報を示すベクトルとの差分を求める。この差分の大きさが予め定められた閾値よりも大きい動きベクトルは、システム制御部２１０により補正されずに除外される。図１２（ｂ）では、灰色のブロックから検出した動きベクトルは、動き情報との差分の大きさが閾値より大きいとシステム制御部２１０に判断され、それらの動きベクトルは位置合わせに用いられていない。また、システム制御部２１０は、ここで述べた閾値を、動き情報の信頼度によって変えるようにしてもよい。具体的には、システム制御部２１０は、動き情報の信頼度が低い場合には、動きベクトルと動き情報を示すベクトルとの差分との比較対象である閾値の値を大きく設定することで、動きベクトルを除外されにくくするようにする。
【０１１４】
さらに、図１２（ｃ）では、４×４の合計１６個のブロックを含むエリア１２０１を示す。システム制御部２１０は、エリア１２０１内において、所定の数より多いブロックを位置合わせから除外すると判断した場合には、エリア１２０１内のすべてのブロックを、位置合わせから除外するようにする。また、移動体が存在する場合、動き情報との差分の大きい動きベクトルを検出したブロックだけでなく、その周辺のブロックにも移動体の一部が含まれる可能性がある。そのため、差分の大きい動きベクトルを検出したブロックの周辺のブロックも位置合わせから除外することで、より精度の高い位置合わせを実現できる。
【０１１５】
また、図１３は、本実施形態において画像全体の動きベクトルを用いた位置合わせを説明するための図である。図１３（ａ）は、検出部２１５が検出したデジタルカメラ１００の動き情報を示している。動き情報の信頼度の判断方法は上述と同じである。図１３（ｂ）は、システム制御部２１０が検出した画像全体の動きベクトルを示している。画像全体の動きベクトルの検出方法は、まず上述した図１１（ｃ）と同じように、システム制御部２１０は、複数のブロックに分け、ブロックごとに動きベクトルを検出する。システム制御部２１０は、これらの複数の動きベクトルの平均で、画像全体の動きベクトルを決める。そして、システム制御部２１０は、画像全体の動きベクトルの信頼度についても判断する。判断方法としては、システム制御部２１０は、前述したステップＳ５１３の判断方法で各々のブロックの動きベクトルの信頼度を判断し、その平均を画像全体の動きベクトルの信頼度とし、動き情報の信頼度と比較する。または、システム制御部２１０は、それぞれのブロックの動きベクトルの信頼度と動き情報の信頼度とを比較し、Ｘ方向とＹ方向とのそれぞれにおいて、動き情報の信頼度より高い信頼度を持つ動きベクトルの割合を統計する。動き情報の信頼度より高い信頼度を持つ動きベクトルの割合が予め定められた閾値よりも高いと、システム制御部２１０は、画像全体の動きベクトルの信頼度が動き情報より高いと判断する。最後に、システム制御部２１０は、信頼度の比較の結果に基づいて、Ｘ方向とＹ方向とのそれぞれにおいて画像全体の動きベクトルに対して補正が必要であれば、補正を行い、補正済みの画像全体の動きベクトルを位置合わせの係数の算出に用いる。図１３（ｃ）では、一例として、Ｘ方向における画像全体の動きベクトルを動き情報を示すベクトルのＸ方向の成分に置き換える場面を示している。
【０１１６】
なお、以上の実施形態についての説明では、システム制御部２１０が動きベクトルを補正するように説明したが、システム制御部２１０が画像の位置合わせにおいて、いずれかの補正情報を選択するように実施してもよい。たとえば、システム制御部２１０は、画像のブロックごとに、動き情報と動きベクトルとの信頼度を比較し、信頼度の高い方を位置合わせの係数の算出に使用するようにしてもよい。
【０１１７】
本実施形態によれば、検出部２１５が検出した動き情報と動き情報の信頼度とシステム制御部２１０が検出した動きベクトルの信頼度とに基づいて画像の位置合わせに用いる動きベクトルに対して補正を行い、画像の位置合わせの精度を高めることができる。
【０１１８】
（その他の実施形態）
なお、上記実施形態においては、個人向けのデジタルカメラをもとに説明を行ったが、パノラマ撮像および合成機能を搭載していれば、携帯機器やスマートフォン、あるいは、サーバーに接続されたネットワークカメラなどに適用することも可能である。
【０１１９】
なお、本発明は、上述の実施形態の１つ以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し作動させる処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２０】
１００  デジタルカメラ
１０２  操作部
１０４  モード切替スイッチ
１３０  記録媒体
２０４  撮像部
２０６  画像処理部
２０７  メモリ制御部
２０９  メモリ
２１０  システム制御部
２１５  検出部
２１６  Ｉ／Ｆ
【図１】
2019022162.tif 000004
【図２】
2019022162.tif 000005
【図３】
2019022162.tif 000006
【図４】
2019022162.tif 000007
【図５】
2019022162.tif 000008
【図６】
2019022162.tif 000009
【図７】
2019022162.tif 000010
【図８】
2019022162.tif 000011
【図９】
2019022162.tif 000012
【図１０】
2019022162.tif 000013
【図１１】
2019022162.tif 000014
【図１２】
2019022162.tif 000015
【図１３】
2019022162.tif 000016