(57)【要約】【課題】  ３以上の画像の位置合わせにおいて、移動ベクトル誤検出時の影響を抑制して位置を合わせる。また、主被写体のある一部分のぶれを重点的に抑制した位置合わせを可能とする。【解決手段】  撮像手段により撮像される少なくとも３以上の複数の画像において、分割した領域ごとの移動ベクトルを算出する算出手段と、前記算出手段により算出される移動ベクトルに基づいて前記複数の画像を位置合わせする位置合わせ手段と、前記分割した領域ごとに、前記位置合わせ手段で用いられる移動ベクトルを有した回数をカウントするカウント手段と、を有し、前記位置合わせ手段は、前記算出手段により算出される移動ベクトルから、前記カウント手段によりカウントされる回数を用いて、画像間の位置合わせで用いる移動ベクトルを特定することを特徴とする構成とした。【選択図】  図２
2015012482.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段により撮像される少なくとも３以上の複数の画像において、分割した領域ごとの移動ベクトルを算出する算出手段と、
前記算出手段により算出される移動ベクトルに基づいて前記複数の画像の中の一部分を位置合わせする位置合わせ手段と、
前記分割した領域ごとに、前記位置合わせ手段で用いられる移動ベクトルを有した回数をカウントするカウント手段と、を有し、
前記位置合わせ手段は、前記算出手段により算出される移動ベクトルから、前記カウント手段によりカウントされる回数を用いて、画像間の位置合わせで用いる移動ベクトルを特定することを特徴とする画像処理装置。
【請求項２】
前記位置合わせ手段は、
前記分割した領域ごとの移動ベクトルに、前記カウント手段によりカウントされる回数に応じた重みを付けて、前記画像間の位置合わせで用いる移動ベクトルを特定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記位置合わせ手段は、
前記算出手段により算出される移動ベクトルから、主被写体領域であり位置合わせの基準とする特定の領域に対応する移動ベクトルを特定して画像間の位置合わせに用い、
前記複数の画像間での前記複数の画像を撮像する撮像手段の動き情報に基づいて、前記分割した領域ごとの移動ベクトルから、前記複数の画像における背景に対応する移動ベクトルを推定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記位置合わせ手段は、
前記算出手段により算出される移動ベクトルから、主被写体領域であり位置合わせの基準とする特定の領域に対応する移動ベクトルを特定して画像間の位置合わせに用い、
前記複数の画像間での前記複数の画像を撮像する撮像手段の動き情報と、前記移動ベクトルとに基づいて、主被写体の移動方向を判別し、分割した領域ごとに前記主被写体の移動方向に応じた重みを付けて、前記画像間の位置合わせで用いる移動ベクトルを特定することを特徴とする請求項１乃至３のいずれか１つに記載の画像処理装置。
【請求項５】
前記複数の画像間での前記複数の画像を撮像する撮像手段の動き情報は、前記撮像手段の角速度、加速度、変位の少なくとも１つであることを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
前記複数の画像において特定の被写体を検出する被写体検出手段を有し、
前記位置合わせ手段は、前記被写体検出手段により検出される前記特定の被写体に対応する領域の移動ベクトルを前記画像間の位置合わせで用いる移動ベクトルとして特定することを特徴とする請求項１乃至５のいずれか１つに記載の画像処理装置。
【請求項７】
前記位置合わせ手段は、
前記複数の画像における合焦位置に対応する領域の移動ベクトルを前記画像間の位置合わせで用いる移動ベクトルとして特定することを特徴とする請求項１乃至６のいずれか１つに記載の画像処理装置。
【請求項８】
前記複数の画像の背景領域にぼかし処理を施し、前記位置合わせ手段により前記主被写体領域で位置合わせが行われた前記複数の画像を合成する合成手段を有することを特徴とする請求項１乃至７のいずれか１つに記載の画像処理装置。
【請求項９】
前記合成手段は、前記複数の画像の背景領域に、画像間の背景の移動量に対応したぼかし量でぼかし処理を行うことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
撮像手段により撮像される少なくとも３以上の複数の画像において、分割した領域ごとの移動ベクトルを算出する算出ステップと、
前記算出手段により算出される移動ベクトルに基づいて前記複数の画像を位置合わせする位置合わせステップと、
前記分割した領域ごとに、前記位置合わせ手段で用いられる移動ベクトルを有した回数をカウントするカウントステップと、を有し、
前記位置合わせステップでは、前記算出手段により算出される移動ベクトルから、前記カウント手段によりカウントされる回数を用いて、画像間の位置合わせで用いる移動ベクトルを特定することを特徴とする画像処理方法。
【請求項１１】
請求項１０に記載の画像処理方法の手順が記述されたコンピュータで実行可能なプログラム。
【請求項１２】
コンピュータに、請求項１０に記載の画像処理方法の各工程を実行させるためのプログラムが記憶されたコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影で得られた複数の画像を位置合わせして合成する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
移動している被写体のスピード感を表現する撮影技術として流し撮りがある。前記撮影技術は、撮影者が被写体の動きに合わせてカメラをパンニングすることにより、移動している被写体を撮影画像内では静止させて背景は流れるように写すことを目的とする。一般的な流し撮りは、撮影したい被写体（主被写体）の移動速度に合わせてシャッター速度を通常より遅めに調節することで撮影を行う。しかしながら、シャッター速度を遅くしているため、手ぶれや主被写体の移動速度とパンニング速度の差の影響により、主被写体までぶれた画像になることも多い。前記問題を鑑み、画像処理技術による流し撮りの容易化が望まれている。
【０００３】
例えば、特許文献１では、複数の画像に含まれる動体の動きの方向に対する先頭位置を検出し、検出した先頭位置がそれぞれの画像上において同じ位置になるように、動体の位置を調整する画像処理装置が開示されている。特許文献２では、まず、ある一つの画像から特徴点を抽出し、特徴点から基準位置へのベクトルを算出する。次に、もう一つの画像からも特徴点を抽出し、最初の画像から算出された結果に基づいて、対応するベクトルの指し示す画素位置を算出する。そして、画素位置の算出回数を各画素ごとに集計し、集計結果に基づいて、二つの画像の位置を合わせる位置合わせ装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１０９８９９号公報
【特許文献２】特開平１０−９１７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１に開示された従来技術では、動体の先頭位置を基準に位置を合わせているため、先頭位置の動き検出に誤りがあった場合には影響を受けやすい。また、動体の先頭位置以外をどのように扱うかまでは開示されていない。
【０００６】
特許文献２に開示された従来技術では、２画像間における位置合わせを前提としており、３画像以上の位置合わせにおける画像間の関係性までは開示されていない。
【０００７】
そこで、本発明の目的は、３以上の画像の位置合わせにおいて、移動ベクトル誤検出時の影響を抑制して位置を合わせる画像処理装置及び画像処理方法を提供すること。また、主被写体のある一部分のぶれを重点的に抑制した位置合わせを可能とする画像処理装置及び画像処理方法を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の画像処理装置は、撮像手段により撮像される少なくとも３以上の複数の画像において、分割した領域ごとの移動ベクトルを算出する算出手段と、前記算出手段により算出される移動ベクトルに基づいて前記複数の画像を位置合わせする位置合わせ手段と、前記分割した領域ごとに、前記位置合わせ手段で用いられる移動ベクトルを有した回数をカウントするカウント手段と、を有し、前記位置合わせ手段は、前記算出手段により算出される移動ベクトルから、前記カウント手段によりカウントされる回数を用いて、画像間の位置合わせで用いる移動ベクトルを特定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、３以上の画像の位置合わせにおいて、移動ベクトル誤検出時の影響を抑制して位置を合わせることができる。また、主被写体のある一部分のぶれを重点的に抑制した位置合わせを可能とする。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態にかかわる撮像装置の基本構成図
【図２】第１の実施形態にかかわるＣＰＵの処理のフローチャート
【図３】第１の実施形態にかかわる主被写体と探索領域の説明図
【図４】第１の実施形態にかかわる位置合わせのフローチャート
【図５】第１の実施形態にかかわる位置合わせの説明図
【図６】第２の実施形態にかかわるＣＰＵの処理のフローチャート
【図７】第２の実施形態にかかわる位置合わせのフローチャート
【図８】第２の実施形態にかかわる位置合わせの説明図
【図９】本発明の実施形態にかかわる流し撮り撮影で生成される画像のイメージ図
【発明を実施するための形態】
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態にかかわる画像処理装置の一例としての撮像装置のブロック図である。
【００１２】
撮像装置１００は、デジタルカメラ、デジタルビデオカメラのようなカメラはもとより、カメラ機能付き携帯電話、カメラ付きコンピュータ、スキャナなど、撮像機能を備える任意の電子機器であっても良い。また、本実施形態における撮像装置１００の一部あるいは全部をもって本実施形態における画像処理装置とすることができる。画像処理装置としては必ずしも撮像機能を有する必要はなく、撮像素子１０２から出力される画像あるいは各記憶装置に記憶されている画像を処理する機能を有していればよい。
【００１３】
光学系１０１は、レンズ、シャッター、絞りから構成されており、被写体からの光束を撮像素子１０２に導き、被写体の光学像を撮像素子１０２上に結像する。そして、焦点距離、シャッター速度、絞り値などの情報を中央演算装置（以降、ＣＰＵ）１０３へ伝達する。
【００１４】
ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）などの撮像素子１０２は、光学系１０１により結像された光学像を電気信号に変換する。その後ＡＤ変換器を通してデジタル化した後、一次記憶装置１０４に記憶する。また、本実施形態では、撮像素子１０２の画素配列はＲＧＢの画素によるＢａｙｅｒ配列とするが、本発明の適用はこの画素配置に限られない。例えば補色の色フィルタの画素の配列であってもよいし、このような撮影用の画素とは別に測色、測距などの目的で機能画素などを配していてもよい。なお、撮像素子１０２の電気的利得（以降、ＩＳＯ感度）は、ＣＰＵ１０３によって設定される。
【００１５】
ジャイロセンサなどの角速度センサ１０５は、振れを検出し、電気信号として変換してＣＰＵ１０３へ伝達する。
【００１６】
制御部として機能するＣＰＵ１０３は、入力された信号や予め記憶されたプログラムに従い、撮像装置１００を構成する各部を制御することで、撮像装置１００の各機能を実現させる。なお、以下の説明において、ＣＰＵ１０３がプログラムを実行して実現する機能の少なくとも一部は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの専用ハードウェアによって実現されても良い。
【００１７】
一次記憶装置１０４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性装置であり、ＣＰＵ１０３の作業用に使われる。また、一次記憶装置１０４に記憶されている情報は、画像処理部１０６で利用されたり、記録媒体１０７へ記録されたりもする。
【００１８】
二次記憶装置１０８は、例えばＥＥＰＲＯＭのような不揮発性記憶装置であり、撮像装置１００を制御するためのプログラム（ファームウェア）や各種の設定情報を記憶し、ＣＰＵ１０３によって利用される。
【００１９】
記録媒体１０７は、一次記憶装置１０４に記憶されている、撮影により得られた画像のデータなどを記録する。なお、記録媒体１０７は、例えば半導体メモリカードのように撮像装置１００から取り外し可能であり、記録されたデータはパーソナルコンピュータなど他の機器で読み出し可能である。つまり、撮像装置１００は、記録媒体１０７の着脱機構及び読み書き機能を有する。
【００２０】
表示部１０９は、ＣＰＵ１０３の指示により一時記憶装置１０４内に表示用に記憶される情報を表示する機能を有する。本実施形態では、撮像素子１０２から連続的に取得される画像の少なくとも一部を順次表示するライブビュー（ビューファインダ）表示の機能を有する。また、撮影後記録媒体１０７等に記録されている記録画像の再生表示、対話的な操作のためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などの表示の機能を有する。
【００２１】
操作部１１０は、ユーザの操作を受け付けてＣＰＵ１０３へ入力情報を伝達する入力デバイス群であり、例えばボタン、レバー、タッチパネル等はもちろん、音声や視線などを用いた入力機器であっても良い。なお、本実施形態の撮像装置１００は、画像処理装置１０６が撮像画像に適用する画像処理のパターンを複数有し、パターンを撮像モードとして操作部１１０から設定可能である。
【００２２】
画像処理部１０６は、いわゆる現像処理と呼ばれる画像処理をはじめ、撮影モードに応じた色調の調整なども行う。例えばデモザイキング処理などの補間処理、ホワイトバランス処理、収差、歪などの補正処理、シャープネス、ガンマ処理、マトリクス演算、ルックアップテーブル等による色変換処理などがあげられる。表示部１０９で表示するためのリサイズ、ガンマ変換等の表示用処理、記録媒体１０７への記録時の符号化、圧縮等の記録用処理も画像処理部１０６により行う。また、本実施形態にある流し撮り画像を生成する処理も画像処理部１０６が行う。合成される複数の画像や処理過程で生成される画像データは、例えば一次記憶装置１０４に記憶される。なお、画像処理部１０６の機能の少なくとも一部は、ＣＰＵ１０３がソフトウェア的に実現しても良い。
【００２３】
図２は、流し撮り撮影モードでの撮影、記録に関するＣＰＵ１０３の処理に関するフローチャートである。
【００２４】
なお、本実施形態では、画像の撮影、記録までの指示が２段階になっており、以降に出てくる操作部１１０のＳ１は、撮影準備の指示を意味し、操作部１１０のＳ２は、本画像の撮影、記録の指示を意味する。また、本実施形態では、Ｓ１を操作部１１０のシャッターボタンの半押し、Ｓ２をシャッターボタンの全押しと対応付けてユーザが入力可能なようにしている。この他にも操作部１１０がタッチパネルである場合、タッチパネルへのタッチ操作を変えることが考えられ、任意の操作をＳ１、Ｓ２に割り当てることが可能である。
【００２５】
Ｓ２０１で、ＣＰＵ１０３は、操作部１１０からのユーザの入力を受け付ける。
【００２６】
Ｓ２０２で、ＣＰＵ１０３は、入力された情報を基に、光学系１０１の焦点距離、シャッター速度、絞り値などの設定を調節する。
【００２７】
Ｓ２０３で、ＣＰＵ１０３は、入力された情報を基に、撮像素子１０２のＩＳＯ感度などの設定を調節する。
【００２８】
Ｓ２０４で、ＣＰＵ１０３は、変更された設定に関する情報を表示部１０９でユーザに提示する。
【００２９】
Ｓ２０５で、ＣＰＵ１０３は、角速度センサ１０５で検出された撮像装置１００の角速度の情報を受信する。また、Ｓ２０５をＳ２０２やＳ２０３と同様に常に実行することで、焦点距離、シャッター速度、絞り値、ＩＳＯ感度などの情報と併せて、角速度の情報も画像情報として埋め込むことができる。そして、撮影済みの画像に対して、カメラ内での再処理や、ＰＣアプリケーションでの後加工を容易にする。記録する角速度の情報としては、角速度自体であっても良いし、画像間で移動した角度、角変位であっても良い。
【００３０】
なお、Ｓ２０１〜Ｓ２０５の順番はこの限りではなく、処理に応じて自由に順番を入れ替えることができる。
【００３１】
Ｓ２０６で、操作部１１０のＳ１の入力の有無（ＯＮ／ＯＦＦ）を判定し、操作部１１０のＳ１が入力されない限り、ＣＰＵ１０３は、Ｓ２０１〜Ｓ２０５の動作を繰り返し行う。
【００３２】
以降は、Ｓ２０６で、操作部１１０のＳ１が入力（ＯＮ）された後の処理である。
【００３３】
Ｓ２０７で、ＣＰＵ１０３は、光学系１０１の一部である測光センサを用いて明るさを計測する。また、自動露出制御を行うＡＥ（Ａｕｔｏ  Ｅｘｐｏｓｕｒｅ）モードの場合は、シャッター速度と絞り値、ＩＳＯ感度を用いて、自動的に露出を調節する。
【００３４】
Ｓ２０８で、ＣＰＵ１０３は、自動焦点調節制御を行うＡＦ（Ａｕｔｏ  Ｆｏｃｕｓ）モードの場合、光学系１０１の一部あるいは撮像素子１０２内に配されている測距センサを用いて、被写体距離を測定し、デフォーカス量に基づいて焦点調節を行う。
【００３５】
なお、Ｓ２０７、Ｓ２０８の順番はこの限りではなく、処理に応じて自由に順番を入れ替えることができる。
【００３６】
Ｓ２０９では、操作部１１０のＳ２の入力の有無（ＯＮ／ＯＦＦ）を判定し、操作部１１０のＳ２が入力されない限り，ＣＰＵ１０３は、Ｓ２０１〜Ｓ２０８の動作を繰り返し行う。また、Ｓ２０９において操作部１１０のＳ１の入力が継続されているかどうかの検出を行い、操作部１１０のＳ１の入力が行われていない（ＯＦＦ）の場合、ステップＳ２０１に戻るように構成してもよい。
【００３７】
以降は、Ｓ２０９で、操作部１１０のＳ２が入力（ＯＮ）された後の処理である。
【００３８】
Ｓ２１０では、操作部１０からのＳ２の撮影指示を受けて、流し撮り処理に必要な数の画像を撮影する。この際、流し撮りモードでは、ユーザが、流し撮り効果を得るため、撮像装置１００（あるいは撮像素子１０２を含むその一部）をパンニングして撮影を行うことを想定している。流し撮りに用いる画像の数はユーザによりあらかじめ設定されていてもよいし、主被写体の速度、パンニングの量、背景領域をぼかす程度の設定などから自動的に算出される数であってもよい。
【００３９】
Ｓ２１１では、Ｓ２１０で撮影された画像データに対して画像処理部１０６が上述したような現像処理を行う。
【００４０】
Ｓ２１２では、ＣＰＵ１０３は、複数の画像間の分割した領域ごとの移動ベクトルを検出することによる主被写体領域の検出と、検出された主被写体領域での位置合わせ処理を行う。ここで、本実施形態で主被写体領域とは、撮影画像の画像内において後述する背景領域と区別して検出される被写体領域のことを指し、当該領域内の被写体が例えば複数の人物から構成されていてもよいものとする。また、本実施形態では、流し撮りの主被写体領域として、動いている被写体の領域（動体領域）を検出することとする。すなわち、複数の撮影の中で静止している被写体（静止体）は背景として取り扱われる。ただし、上述したとおり、パンニングして撮影が行われることを想定している場合、画像間で比較すると、パンニング方向の逆方向にパンニング量に対応するような動きをする被写体が元は静止している被写体である。パンニング方向に、パンニング量と同様の量の動きをする被写体が動体と判定される。詳細は後述する。一方、三脚等で固定して撮影が行われることを想定している場合、動きベクトルが大きく検出できる領域が主被写体領域と考えられる。
【００４１】
Ｓ２１３では、ＣＰＵ１０３は、画像処理部１０６によってＳ２１２で主被写体領域が一致するように位置合わせが行われた複数枚の画像を合成し、流し撮り画像として合成画像を生成する。流し撮りと同様の視覚効果のある合成画像の生成方法としては複数の方法が考えられる。本実施形態では、撮影で得られた複数の画像の背景領域に、画像間の背景の移動量に基づいたぼかし量（タップ数）でぼかし処理（フィルタ処理等）を施し、主被写体領域が撮影された複数の画像間で一致するように位置合わせを行って加算平均で合成する。ここで、背景の移動量は、角速度センサ１０５によって得られる角速度から算出できる。これに限らず、例えば、主被写体領域が撮影された複数の画像間で一致するように位置合わせを行って加算し、さらに合成後の画像の主被写体領域、つまり動体の存在する動体領域以外の背景領域にぼかし処理を施してもよい。また、合成後の画像を上記のようにぼかした画像と、ぼかす前の画像とをさらに合成した画像を最終的な合成画像としてもよい。
【００４２】
Ｓ２１４では、ＣＰＵ１０３は、Ｓ２１３で生成された合成画像データやその元となった合成前の画像データに画像処理部１０６によって表示用処理が施された画像データを、表示部１０９に表示する。
【００４３】
そして、Ｓ２１５では、ＣＰＵ１０３は、記録媒体１０７にＳ２１３で生成された合成画像データやその元となった合成前の画像データに、記録用に符号化、圧縮等の処理が施された画像データを記録する。また、本実施形態では、記録画像の設定として、現像処理等を行っていないＲＡＷ画像の記録や、現像処理を施し規格に準拠したＪＰＥＧ画像の記録などを設定可能である。それらの設定によってはＳ２１０の現像処理やＳ２１６での符号化等の処理は適用されない場合もある。
【００４４】
また、本実施形態では、Ｓ２１１における現像処理後の画像に対してＳ２１２の主被写体の検出処理、及びＳ２１３の流し撮り合成処理を行ったが、これに限らず、現像処理前の画像に対して各処理を適用することも可能である。
【００４５】
また、Ｓ２１２の主被写体領域の検出処理では、主被写体の位置が移動ベクトルを検出する探索領域内におさまることを前提としており、各画像の主被写体の位置が探索領域内におさまらない場合は、主被写体の位置が探索領域内に収まるようにする必要がある。本実施例では、Ｓ２１２で、画像を縮小し、低コントラストな被写体の特徴点も拾える十分な大きさの探索用ブロックを用いて移動ベクトルを検出、低精度でも主被写体の位置が探索領域におさまるようにした後、より高精度な移動ベクトル検出を行う。図３は、ユーザが車両を主被写体としてパンニングをしながら撮影を行った３枚の画像から車両を主被写体として検出し、画像間を主被写体で位置合わせする様子を示したものである。画像３０１、画像３０４、画像３０５がこの順で撮影された画像をそのまま表示した様子を示し、画像３０６は主被写体を特定するために求められるブロック単位の移動ベクトルの例を示している。画像３０１、画像３０４間で画像３０６のように移動ベクトル３０６を検出し、画像３０１の主被写体を３０２ａと検出し、画像３０１において主被写体３０２ａのいる領域を探索領域３０３として設定する。画像３０４、画像３０５において、画像３０１の画角内と同じ領域に設定された探索領域３０３に主被写体３０２ｂ、３０２ｃがおさまっていないことが分かる。このような場合、主被写体３０２ｂ、主被写体３０２ｃが探索領域３０３におさまるよう画像３０４、画像３０５を画像３０８、画像３０９のようにメモリ内で移動する。画像３０８、画像３０９における点線は、移動前の画像３０４、画像３０５での画像の端を示している。なお、図３では、画像３０１が基準画像であるため、画像３０７は移動していない。
【００４６】
図４（ａ）は、図２のＳ２１２で行われる主被写体領域（動体領域）の検出、および主被写体領域での画像間の位置合わせ処理の詳細を示したフローチャートである。
【００４７】
Ｓ４０１で、ＣＰＵ１０３は、画像を複数の領域に分割した探索用ブロックを設定し、探索用ブロック単位で画像間における移動ベクトルを検出する。検出した移動ベクトルの中で、ほぼ同じベクトルとなるものの数を数える。計数後の状態を横軸にベクトルの大きさ、縦軸に数（度数）でヒストグラム化したものを図４（ｂ）に示す。横軸は０を境に、移動ベクトルの方向を区別している。まず、角速度センサ１０５で検出される振れ（すなわち複数の画像間の撮像手段の動き情報）に基づく背景の移動量４１０を基準として図のように移動ベクトルが背景の移動量から離れた主被写体成分４１１と背景の移動量近傍の背景成分４１２に分類する。次に、分類された主被写体成分４１１の移動ベクトルの中で、数が最も多かった移動ベクトルを主被写体ベクトル４１３とする。ここで角速度センサ１０５で検出される振れの情報を用いずに移動ベクトルのヒストグラムから主被写体と背景を分類することも可能である。この場合、例えば流し撮りがユーザのパンニング撮影によって各画像でほぼ中心付近に主被写体がいると仮定し、ベクトルの大きさがゼロに近く、画像内で連続した領域に固まって存在する移動ベクトルに対応する領域が、主被写体領域と考えられる。しかし、移動ベクトルの探索領域の大きさによっては移動ベクトルの誤検出も存在するため、上記実施形態のように、センサからの振れ情報を参照した方がより精度良く主被写体と背景を分類できる。
【００４８】
上述のようにして、Ｓ４０２で、ＣＰＵ１０３は、主被写体領域に該当する移動ベクトルを検出した探索用ブロックが、それ以前の画像の位置合わせで用いられた移動ベクトルを持ったことがある場合、その回数に相当する重みを付加する。
【００４９】
Ｓ４０３で、ＣＰＵ１０３は、主被写体領域に対応する移動ベクトルを特定する。本実施形態では、角速度センサ１０５からの信号に基づいて対象の画像間での背景の移動量を推定し、背景に対応する移動ベクトルを除いたときに、数が最多である移動ベクトルを主被写体に対応する移動ベクトルと推定する。ただし、カウントし、移動ベクトル間で比較する数はＳ４０２で領域ごとに付加される重みを踏まえた数である。また、本実施形態では、撮像装置１００の角速度を角速度センサ１０５によって検出しているが、これに限らず、加速度センサ、その他位置を計測するセンサ等を用いてもよい。
【００５０】
また、Ｓ４０１で移動ベクトルの数を数える際、Ｓ４０２の探索用ブロックの重みを考慮して（重みの分、カウントするなどして）同時に処理を行っても良い。
【００５１】
Ｓ４０４で、ＣＰＵ１０３は、当該主被写体の移動ベクトルを用いて、一次記憶装置１０４のメモリ内でシフト移動による画像の位置合わせを行う。ここでは、主被写体の移動ベクトルの決定方法として、撮影がパンニングを伴って行われていることを想定しているので、上記方法で背景の移動ベクトルを分類した。上記のように背景の移動ベクトルを角速度センサ１０５の信号によって分類できない場合には、２番目に多い移動ベクトルを判定したり、当該移動ベクトルを持つ領域がある程度のかたまりを持って存在しているかを検出して、主被写体の移動ベクトルを推定する。また、三脚を使って撮像装置１００を固定して撮影を行う場合を想定している場合、単に画像上で最多な移動ベクトルを主被写体の移動ベクトルと判定することも出来る。また、移動ベクトルは、Ｈ方向、Ｖ方向を別々に扱っても良いし、合せたものを扱っても良い。
【００５２】
Ｓ４０５で、ＣＰＵ１０３は、主被写体に対応する移動ベクトルと推定された移動ベクトルが算出された探索用ブロックに、次の探索に用いるために重みを付加する。
【００５３】
最後に、Ｓ４０６で、位置合わせする残りの画像の有無を判定する。すなわち、位置合わせする画像がある限り、Ｓ４０１に戻り次の画像の位置合わせを行い、全ての画像の位置合わせが終了した際、図２のＳ２１２の処理を終了する。
【００５４】
図４（ａ）の位置合わせ処理における主被写体領域の移動ベクトルの推定方法の詳細を、さらに図５（ａ）、（ｂ）を用いて説明する。
【００５５】
図５（ａ）において、５０１〜５０４は、連続して撮影された画像とし、領域５０５における位置合わせを例として取り上げる。領域５０５を拡大して探索用ブロックを配置したものが５０６である。各探索用ブロックに対して、図３の３０６のような移動ベクトルを検出する。
【００５６】
図５（ｂ）は５０６のように設定された各探索用ブロックに対応する重みを示したものであり、ＲＡＭ上に探索用ブロックの位置と対応づけられて一時的に記憶されている。５０７が初期値であり、本実施形態では初期値０を取る。５０８は、画像５０１と画像５０２の移動ベクトルの検出結果であり、５１２、５１５は、それぞれ画像５０２と画像５０３の移動ベクトルの検出結果、画像５０３と画像５０４との検出結果を示している。そして検出結果５０８、５１２、５１５の移動ベクトルから主被写体の移動ベクトルを算出する際に用いる重み分布はそれぞれ５０９、５１３、５１６である。対応する重み分布５０９における模様５１０ａは検出結果５０８の中で最も数の多い移動ベクトルとほぼ同じベクトルである領域を示している。模様５１１ａは、検出結果５０８の中で、２番目に数の多い移動ベクトルとほぼ同じベクトルである領域を示している。さらに、検出結果５１２に対応する重み分布５１３における模様５１０ｂ、模様５１１ｂは、移動ベクトルの検出結果５１２の中で、最も数の多い移動ベクトル、２番目に数の多い移動ベクトルとそれぞれほぼ同じベクトルである領域を示している。また、検出結果５１５に対応する重み分布５１６における模様５１０ｃ、模様５１１ｃは、移動ベクトルの検出結果５１５の中で、最も数の多い移動ベクトル、２番目に数の多い移動ベクトルとそれぞれほぼ同じベクトルである領域を示している。
【００５７】
検出結果５０９では、重み分布５０９における各探索用ブロックの重みは初期値の０であるため、移動ベクトルの数が最も多い移動ベクトルを主被写体の移動ベクトルとすれば良い。したがって、重み分布５０９にて模様５１０ａと模様５１１ａの移動ベクトルの数を比較すると、模様５１０ａが５個、模様５１１ｂが４個で模様５１０ａの方が大きい。このため、模様５１０ａの移動ベクトルが主被写体領域の移動ベクトルとして、後の位置合わせ処理にて用いられる。
【００５８】
次に、検出結果５１２では、重み分布５１３において、画像５０１と画像５０２の位置合わせで用いられた移動ベクトルを持つ探索用ブロックに、重みとして１が加算されている。本例では、模様５１０ｂが移動ベクトルの数が４個、探索用ブロックの重みが２の合計６となる。したがって、模様５１０ｂの移動ベクトルを用いて位置合わせを行う。ちなみに、重みを踏まえて合計を比較したときに、最有力候補となる移動ベクトルが２種類以上になる場合は、移動ベクトルの数と探索用ブロックの重みのどちらかにより比重を与えておき、決定するものとする。あるいは、検出順に従うものとする。
【００５９】
最後に、検出結果５１５では、重み分布５１６において、画像５０３と画像５０４の位置合わせで用いられた移動ベクトルを持つ探索用ブロックに、今までの重みを引き継いだ上で１が加算されている。模様５１０ｃは、移動ベクトルの数が４個、探索用ブロックの重みが４の合計８。また、模様５１１ｃは、移動ベクトルの数が４個、探索用ブロックの重みが３の合計７となる。したがって、模様５１０ｃの移動ベクトルを主被写体領域に対応する移動ベクトルとして用いて位置合わせを行う。
【００６０】
以上のように、本実施形態では、過去に位置合わせに用いられた被写体領域と同じ領域からの評価値を優先的に見て位置合わせする。こうすることで、５０１と５０２、５０２と５０３、５０３と５０４のように直接移動ベクトルを検出していない５０１と５０４のような関係にある画像も、画像のずれを抑えることができる。また、同じ領域の移動ベクトルを単に用いているわけではなく、重みをつけて優先的に扱うようにしている。すなわち、移動ベクトルの誤検出が発生した際も、他領域の移動ベクトルと積み重ねられてきた重みを利用することで、誤検出の影響を抑制することができる。
【００６１】
なお、図５では、ブロックの重みを１として説明しているが、この限りではなく、重みとなる係数を自由に調節することができる。例えば、係数を０から１の間に設定し、位置合わせで用いられた回数をかけることで重みとしても良い。
【００６２】
以上のように、本実施形態では、３以上の画像の位置合わせにおいて、画像間で検出された主被写体の移動ベクトルに対応する領域に重みを付けて次の画像間の主被写体の移動ベクトル算出に用いる。このようにすることで、移動ベクトル誤検出時の影響を抑制して位置を合わせることができる。また、この位置合わせ手法を用いて適切な流し撮り風の合成画像を生成することができる。
【００６３】
（第２の実施形態）
第１の実施形態では、複数の画像を主被写体で順次位置合わせする際に、画像間で検出された主被写体の移動ベクトルに対応する領域に重みを付けていき、位置合わせの精度を向上させる処理を示した。本実施形態ではさらに、角速度センサ１０５の信号や、公知の画像解析による顔検出、人体検出などの被写体検出結果などの補助情報を用いて、主被写体領域の中でも特にぶれさせたくない領域で位置合わせが行われるようにする。第２の実施形態にかかる撮像装置の構成は図１に示す第１の実施形態での構成と同様であるため、説明を省略する。
【００６４】
図６は、流し撮り撮影モードでの撮影、記録に関するＣＰＵ１０３の処理に関するフローチャートである。
【００６５】
図２と同様のステップには同一のステップ番号を付して説明を省略する。Ｓ６０１では、角速度センサ１０５の信号から検出される角速度や、公知の被写体検出結果を用いて主被写体領域と主被写体領域の中でもとくに重要とされるであろう特定の領域を決定し、この特定の領域を基準に位置合わせを行う。
【００６６】
図７は、図６のＳ６０１で行われる補助情報を用いた主被写体検出および位置合わせの処理の詳細を示したフローチャートである。なお、図４と同様の処理を行うステップには同一のステップ番号を付して説明を省略する。
【００６７】
本実施形態では、Ｓ７０１で、ＣＰＵ１０３は、角速度センサ１０５で検出される撮像装置１００の角速度や、前述した被写体検出結果などから決まる被写体内で重要となる領域を基に、探索用ブロックに重みを設定する。図８を用いてより詳細に説明する。
【００６８】
ここでは、撮像装置１００の角速度からパンニング方向が判別でき、領域ごとの移動ベクトルから相対的に主被写体の移動方向９０１が判別できたとする。このとき、重み分布９０２の重みを左の色塗り部９０３のように主被写体の先頭を優先するように設定する。なお、色塗り部９０４のように主被写体の先頭の一部、例えば、主被写体の最先端を優先するように重みを設定しても良い。
【００６９】
画像処理部１０６内に組み込まれた顔検出回路等の被写体検出手段によって顔が検出された場合は、検出した被写体（領域）内の、重要となるであろう領域９０５、たとえば顔領域内の目の領域を中心に、重み分布９０６のように探索用ブロックの重みを設定する。また例えば、重み分布９０２と、重み分布９０６の考え方を組み合わせて重み分布９０７のように探索用ブロックの重みを設定してもよい。重要な特定の領域を決定する他の方法としては、ＡＦ動作における合焦領域の情報に基づいて合焦位置に対応する主被写体領域を特定の領域としても良い。
【００７０】
以上のように、本実施形態では、過去に位置合わせに用いられた被写体領域と同じ領域からの評価値を優先的に見て位置合わせする。こうすることで、画像５０１と画像５０４のような直接移動ベクトルを検出していない関係にある画像も、画像のずれを抑えることができる。特に本実施形態では、撮像装置の動き情報あるいは被写体検出情報に基づいて、特に基準としたい特定の領域を決定している。また、同じ領域の移動ベクトルを単に用いているわけではなく、重みを付けて優先的に扱うようにしている。すなわち、移動ベクトルの誤検出が発生した際も、他領域の移動ベクトルと積み重ねられてきた重みを利用することで、誤検出の影響を抑制することができる。
【００７１】
また、本実施形態では、探索用ブロックに重みを付加することで、主被写体のある一部分のぶれを重点的に抑制した位置合わせが可能となる。また、撮像装置１００の角速度のような撮影条件や、顔検出や人体検出のような被写体認識を用いることで、主被写体の特徴のある部分でぶれを抑制することが可能なため、より被写体ぶれの目立ちにくい画像を提供することができる。
【００７２】
上記各実施形態において生成される合成後の画像のイメージを図９（ａ）〜（ｄ）に示す。画像９０４は、画像９０１，９０２、９０３に基づいてステップＳ２１３で合成を行い生成された画像のイメージ図である。動体であり、主被写体である車両がくっきりと写り、背景の木が流れて写っている。本方法では、撮影間隔（フレームレート）や合成枚数、ぼかし処理のタップ数等によって背景の流れ方を変更、制御することができる。
【００７３】
（他の実施形態）
本発明の目的は以下のようにしても達成できる。すなわち、前述した各実施形態の機能を実現するための手順が記述されたソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給する。そしてそのシステムまたは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行するのである。
【００７４】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
【００７５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどが挙げられる。また、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等も用いることができる。
【００７６】
また、コンピュータが読み出したプログラムコードを実行可能とすることにより、前述した各実施形態の機能が実現される。さらに、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施形態の機能が実現される場合も含まれる。
【００７７】
更に、以下の場合も含まれる。まず記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。
【００７８】
また、本発明はデジタルカメラのような撮影を主目的とした機器にかぎらず、携帯電話、パーソナルコンピュータ（ラップトップ型、デスクトップ型、タブレット型など）、ゲーム機など、撮像装置を内蔵もしくは外部接続する任意の機器に適用可能である。従って、本明細書における「撮像装置」は、撮像機能を備えた任意の電子機器を包含することが意図されている。
【符号の説明】
【００７９】
１００  撮像装置
１０１  光学系
１０２  撮像素子
１０３  中央演算装置（ＣＰＵ）
１０４  一次記憶装置
１０５  画像処理装置
１０６  記録媒体
１０７  二次記憶装置
１０８  表示部
１０９  操作部
【図１】
2015012482.tif 000003
【図２】
2015012482.tif 000004
【図３】
2015012482.tif 000005
【図４】
2015012482.tif 000006
【図５】
2015012482.tif 000007
【図６】
2015012482.tif 000008
【図７】
2015012482.tif 000009
【図８】
2015012482.tif 000010
【図９】
2015012482.tif 000011