説明

画像合成装置

【課題】撮影中に被写体が移動しても、生成される動きベクトルの重み付けテーブルを被写体の位置に適正に対応させる。
【解決手段】撮影した複数の画像を位置合わせベクトルに従って位置合わせをして合成するための画像合成装置は、撮影時の予め決められた時点から撮影完了までの経過時間を計測し、複数画像の撮影における被写体領域の情報を取得し、撮影した各画像を複数の領域に分割し、各分割領域の動きベクトルを検出し、経過時間および被写体領域の情報を使用して、各画像から検出された動きベクトルの重み付けを行い、重み付けられた動きベクトルを用いて位置合わせベクトルを算出するよう構成されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影した複数の画像を位置合わせした上で合成する画像合成装置に関する。
【背景技術】
【0002】
従来、撮影した複数の画像を合成する場合、画像のブレ補正等において画像の動きベクトルを検出する方法として、ブロックマッチング法や相関演算に基づく相関法が知られている。ブロックマッチング法は、入力された画像信号を複数の適当な大きさのブロック(例えば8画素×8ライン)に分割し、このブロック単位で現在のフィールド(又はフレーム)と前のフィールドとの画素値の差分を計算する。そして、この差分に基づいて、現在のフィールドのブロックに対して相関の高い前のフィールドのブロックを探索し、ブロックの動きベクトルを画面間の相対的なズレとして求める。
【0003】
例えば、特許文献1および特許文献2は、それぞれ動きベクトルの選択方法および重み付けの方法について開示している。特許文献1は、画像領域の大きさや、ベクトルの安定度を指標にした代表的な動きベクトル(画像全体の動きベクトル)の選択方法を示している。特許文献2は、被写体領域を検出して主要被写体の重要度を考慮し、主要被写体のブレを低減させるような動きベクトル(補正ベクトル)を算出する方法を開示している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−251474号公報
【特許文献2】特開2009−188837号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来は、撮影した複数の画像を合成する場合、まず画像のブレ補正等のために画像の所定領域にたいして動きベクトルを検出し、検出された動きベクトルに重み付けを行なって位置合わせ用のベクトルを合成している。この場合の重み付けは、画像領域の特徴や被写体を検出した被写体領域に対応した重み付けを用いていた。
【0006】
ところで、撮影時には操作者による第1のシャッタースイッチの操作(例えば半押し)に応じて被写体の検出、フォーカス制御、適正露出制御など行い、第2シャッタースイッチの操作(例えば全押し)に応じて本撮影が行われる。この場合、撮影画像の被写体位置、被写体の特徴などの情報は、操作者が第1のシャッタースイッチを操作して被写体をロックした際に取得されるのが一般的である。
【0007】
図1および図2は従来の方法による動きベクトルの重み付け生成と第1および第2のシャッタースイッチの操作との関係を説明するための図である。
【0008】
操作者が第1のシャッタースイッチを操作するとAF制御、AE制御101、201を行い被写体ロック102、202(AFロック、AEロック状態)となる。次に操作者が第2シャッタースイッチを操作すると静止画撮影103、203が行われる。このときの第1のシャッタースイッチの操作からの経過時間は111、211である。104、204は第1のシャッタースイッチの操作時点の撮影画角であり、被写体が109、209、検出被写体領域が107、207である。被写体領域107、207はAF制御またはAE制御時に検出された例えば主被写体領域のことである。また105、205は第2のシャッタースイッチの操作および被写体ロック102、202の時点での撮影画角である。このときの実際の被写体が110、210であり、検出被写体領域が108、208である。106、206は合成時の位置合わせ用の動きベクトルの重み付けテーブルであり、数字が大きいほどこの領域の動きベクトルの重み付けが大きく、数字が小さいほど重み付けは小さい。重み付けテーブル106、206は被写体ロック102、202の時点での被写体情報(位置、サイズ、特徴など)を基に生成され、被写体の領域にたいしてより大きな重み付けが与えられる。
【0009】
時間111のように、第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間(ロック状態)が短い場合は、 被写体109が時間111の経過後でも110とほぼ同じ位置にあり移動していないと考えられる。従って、生成される重み付けテーブル206は実際の被写体110の位置に対して適正に対応している。しかし、時間211のように、第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間(ロック状態)が長い場合は、被写体209は時間211の経過後には210の位置に移動するようなことがある。このような場合、生成される動きベクトルの重み付けテーブル206は、実際の被写体210の位置に対して適正に対応してないという問題があった。
【課題を解決するための手段】
【0010】
上述の課題を解決するため、本発明によれば、撮影した複数の画像を位置合わせベクトルに従って位置合わせをして合成するための画像合成装置は、撮影の経過時間を計測し、複数画像の撮影における被写体領域の情報を取得し、撮影した各画像を複数の領域に分割し、各分割領域の動きベクトルを検出し、経過時間および被写体領域の情報を使用して、検出された動きベクトルの重み付けを行い、重み付けられた動きベクトルを用いて位置合わせベクトルを算出するよう構成されている。
【発明の効果】
【0011】
本発明によれば、第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間に被写体が移動しても、動きベクトルの重み付けテーブルを移動後の被写体の位置に適正に対応するよう生成することが可能となる。これにより高い位置合わせ精度で複数画像の合成が行え、合成された画像の画質を向上させることが可能となる。また常に被写体の検出を行う場合に比べて、消費電力を極力抑えることが可能となる。
【図面の簡単な説明】
【0012】
【図1】第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間が短い場合の動きベクトルの重み付けテーブルの従来例を説明するための図。
【図2】第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間が長い場合の動きベクトルの重み付けテーブルの従来例を説明するための図。
【図3】本発明の実施形態に係わる画像合成装置を有する撮像装置のブロック図。
【図4】画像間の動きベクトルを検出するためのブロックマッチングを説明するための図。
【図5】本発明に係わる第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間と撮影処理との関係を説明するための図。
【図6】主被写体と主被写体領域を説明するための図。
【図7】本発明に係わる第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの撮影処理のフローチャートを示す図。
【図8】合成するための複数画像を撮影するためのフローチャートを示す図。
【図9】撮影された複数の画像の合成処理のフローチャートを示す図。
【図10】動きベクトルの検出領域であるブロックを説明するための図。
【図11】動きベクトルの重み付けテーブルの構成を説明するための図。
【図12】重み付けの基本テーブルの生成を説明するための図。
【図13】経過時間の閾値T0の求め方の一例を説明するための図。
【図14】経過時間TとウェイトWiの関係を示す図。
【図15】第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間が短い場合に生成される本発明に係わる重み付けテープルを説明するための図。
【図16】第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間が長い場合に生成される本発明の重み付けテーブルの一つの例を説明するための図。
【図17】第1のシャッタースイッチの操作から第2のシャッタースイッチの操作までの経過時間が長い場合に生成される本発明の重み付けテーブルの他の例を説明するための図。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の好適な実施形態を説明する。
【0014】
本実施形態は、本発明をデジタルカメラなどの撮像装置に適用した例である。
【0015】
図3は、本発明の画像合成装置を適用した撮像装置300の構成例を示すブロック図である。
【0016】
図3において、303はフォーカスレンズを含む撮影レンズ、301は絞り機能を備えるシャッター、322は光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像部である。323はA/D変換器であり、アナログ信号をデジタル信号に変換する。A/D変換器323は、撮像部322から出力されるアナログ画像信号をデジタル画像信号に変換するために用いられる。302はバリアであり、デジタルカメラ300の撮影レンズ303を含む撮像部を覆うことにより、撮影レンズ303、シャッター301、撮像部322を含む撮像系の汚れや破損を防止する。
【0017】
324は画像処理部であり、A/D変換器323からのデータ又はメモリ制御部315からのデータに対し所定の画素補間、縮小といったリサイズ処理や色変換処理などの画像処理を行う。また、画像処理部324は、システム制御部350による制御の下で撮像した画像データに所定の演算処理を行ない、得られた演算結果に基づいてシステム制御部350が露光制御、測距制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理が行われる。画像処理部324では更に、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。
【0018】
A/D変換器323からの出力データは、画像処理部324及びメモリ制御部315を介して、或いは、メモリ制御部315を介してメモリ332に直接書き込まれる。メモリ332は、撮像部322によって得られたデータをA/D変換器323によりデジタルデータに変換された画像データや、表示部328に表示するための画像データを格納する。メモリ332は、所定枚数の静止画像や所定時間の動画像および音声を格納するのに十分な記憶容量を備えている。
【0019】
また、メモリ332は画像表示用のメモリ(ビデオメモリ)を兼ねている。313はD/A変換器であり、メモリ332に格納されている画像表示用のデータをアナログ信号に変換して表示部328に供給する。こうして、メモリ332に書き込まれた表示用の画像データはD/A変換器313を介して表示部328により表示される。表示部328は、LCD等の表示器上に、D/A変換器313からのアナログ信号に応じた表示を行う。
【0020】
不揮発性メモリ356は、電気的に消去・記録可能なメモリであり、例えばEEPROM等が用いられる。不揮発性メモリ56には、システム制御部50の動作用の定数、プログラム等が記憶される。ここでいう、プログラムとは、本実施形態にて後述する各種フローチャートを実行するためにシステム制御部350がロードして実行するプログラムのことである。
【0021】
350はシステム制御部であり、デジタルカメラ300全体を制御する。前述した不揮発性メモリ356に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。352はシステムメモリであり、RAMが用いられる。システムメモリ352には、システム制御部350の動作用の定数、変数、不揮発性メモリ356から読み出したプログラム等を展開する。また、システム制御部はメモリ332、D/A変換器313、表示部328等を制御することにより表示制御も行う。
【0022】
加速度センサー382は、デジタルカメラ300が物理的な加速度を加えられたかどうか、またその方向などを検知できるセンサーである。加速度センサーの制御はシステム制御部350によって行われ、検知された情報は後述する本実施形態の処理によって適宜扱われる。
【0023】
モード切替スイッチ360、第1のシャッタースイッチ362、第2のシャッタースイッチ364、操作部370はシステム制御部350に各種の動作指示を入力するための操作手段である。
【0024】
モード切替スイッチ360は、システム制御部350の動作モードを静止画記録モード、動画記録モード、再生モード等のいずれかに切り替える。第1のシャッタースイッチ362は、デジタルカメラ300に設けられたシャッターボタン361の操作途中、いわゆる半押し(撮影準備指示)でONとなり第1のシャッタースイッチ信号SW1を発生する。第1のシャッタースイッチ信号SW1により、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作が開始される。
【0025】
第2のシャッタースイッチ364は、シャッターボタン361の操作完了、いわゆる全押し(撮影指示)でONとなり、第2のシャッタースイッチ信号SW2を発生する。システム制御部350は、第2のシャッタースイッチ信号SW2により、撮像部322からの信号読み出しから記録媒体390に画像データを書き込むまでの一連の撮影処理の動作を前記プログラムに従って開始する。
【0026】
操作部370の各操作部材は、表示部328に表示される種々の機能アイコンを選択操作することなどにより、場面ごとに適宜機能が割り当てられ、各種機能ボタンとして作用する。機能ボタンとしては、例えば終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン等がある。例えば、メニューボタンが押されると各種の設定可能なメニュー画面が表示部328に表示される。利用者は、表示部328に表示されたメニュー画面を4方向ボタンやSETボタンとを用いて操作することにより直感的に各種設定を行うことができる。
【0027】
380は電源制御部であり、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出を行う。また、電源制御部380は、その検出結果及びシステム制御部350の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体390を含む各部へ供給する。
【0028】
330は電源部であり、アルカリ電池やリチウム電池等の一次電池、NiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。318はメモリカードやハードディスク等の記録媒体390に対するインターフェースである。記録媒体390は、メモリカード等の記録媒体であり、半導体メモリや磁気ディスク等から構成される。
【0029】
以下、上述したデジタルカメラで本発明の画像合成装置がどのように実施されるかを説明する。まず、撮影機能の概要を説明し、次いで撮影処理の詳細を説明して、本発明の画像合成、特に重み付けテーブルの生成に使用する情報を取得する構成を記載する。
【0030】
上述したデジタルカメラ300では中央1点AFや顔AFを用いた撮影が可能であるとする。中央1点AFとは撮影画面内の中央位置1点に対してAFを行うことである。また、顔AFとは顔検出機能によって検出された撮影画面内の顔に対してAFを行うことである。
【0031】
ここでは動きベクトルの検出の検出領域の設定に関連する顔検出機能について説明する。システム制御部350は顔検出対象の画像データを画像処理部324に送る。システム制御部350の制御下で画像処理部324は、当該画像データに水平方向バンドパスフィルタを作用させる。さらに、システム制御部350の制御下で画像処理部324は処理された画像データに垂直方向バンドパスフィルタを作用させる。これら水平及び垂直方向のバンドパスフィルタにより、画像データからエッジ成分が検出される。
【0032】
その後、システム制御部350は、検出されたエッジ成分に対するパターンマッチングにより、目及び鼻、口、耳の候補群を抽出する。そして、システム制御部350は、抽出された目の候補群の中から、予め設定された条件(例えば2つの目の距離、傾き等)を満たすものを、目の対と判断し、目の対があるもののみ目の候補群として絞り込む。そして、システム制御部350は、絞り込まれた目の候補群とそれに対応する顔を形成する他のパーツ(鼻、口、耳)を対応付け、また、予め設定した非顔条件フィルタを通すことで、顔を検出する。システム制御部350は、顔の検出結果に応じて上記顔情報を出力し、処理を終了する。このとき、顔の数などの特徴量をメモリ352に記憶する。
【0033】
以上のようにライブビュー表示あるいは再生表示される画像データを画像解析して、画像データの特徴量を抽出して被写体情報を検出すること(被写体領域取得)が可能である。本実施形態では被写体情報として顔情報を例に挙げたが、これ以外にも赤目判定や目の検出、目つむり検出、笑顔検出等によって得られる様々な情報がある。
【0034】
なお、顔AFと同時に顔AE,顔FE、顔WBを行うことができる。顔AEとは検出された顔の明るさに合わせて、画面全体の露出を最適化することである。顔FEとは検出された顔を中心にフラッシュの調光をすることである。顔WBとは、検出された顔の色に合わせて画面全体のWBを最適化することである。
【0035】
上述したデジタルカメラ300では、顔検出機能によって検出された撮影画面内の領域を動きベクトル検出に利用する。このようにすると、顔検出による被写体の追尾処理が可能となる。表示用画像など、時系列で連続して撮像する場合、現在のフレームと1つ前の連続したフレーム画像の被写体領域に対して動きベクトルの検出を行い、この結果を被写体領域の移動量として被写体領域の位置を逐次修正することで被写体追尾処理を行う。動きベクトル量はシステム制御部50によって現フレームと1つ前のフレームの被写体領域データに対するブロックマッチングなど相関演算を利用して求める。
【0036】
図4は、相関演算処理の一例であるブロックマッチングの例を示す。図4において、ブロックマッチングの対象となる2つの画像のうちの一つの画像400のベースブロック402内の画像が、他方の画像401の探索範囲405内の画像と最も近似する位置を探索する。前記最も近似する位置とは、矩形領域の全画素に対してSAD演算を行った結果、最小となる位置である。ここで、本明細におけるSAD値とは、差の絶対値の総和(Sum of Absolute Difference)のことである。探索によって求められた撮像位置の座標とベースブロック402の座標の差分が動きベクトルとなる。
【0037】
探索は、以下の手順で行う。
【0038】
画像401のベースブロック402の射影イメージ位置であるベースブロック404の射影イメージを中心とする規定の範囲である探索範囲405の内側にあり、かつベースブロック402と同一サイズであるターゲットブロック403を決める。ターゲットブロック403とベースブロック402をそれぞれ切り出し、SAD値を求める。探索範囲405の内側としてありえる全てのターゲットブロック403についてSAD値を求め、このSAD値が最小となるターゲットブロック403の位置を求めこれを前記撮像位置の座標とする。ここで求まった撮像位置の座標とベースブロック402の座標との差分が求める動きベクトル量となる。
【0039】
図5は静止画撮影時の撮影操作と撮影処理の関連を説明するための図である。操作者が第1のシャッタースイッチを操作するとAF制御(オートフォーカス制御)およびAE制御(自動露出制御)501が行われ、撮影条件を決定した上で被写体ロック502(AFロック、AEロック状態)とする。次に操作者が第2のシャッタースイッチを操作すると静止画撮影503が行われる。操作者によって第2のシャッタースイッチが操作されるまでは、被写体ロック502(AFロック、AEロック状態)は維持される。このときの第1のシャッタースイッチの操作からの経過時間は511である。504は、第1のシャッタースイッチの操作および被写体ロック502の時点での撮影画角であり、被写体が509、検出被写体領域が507で示されている。被写体領域507はAF制御あるいはAE制御時に検出された主被写体領域のことである。例えば顔検出処理によって顔が検出された場合は、顔検出領域が主被写体領域507となる。
【0040】
図6は被写体ロックにおける主被写体領域を説明するための図である。
【0041】
図6(a)は被写体である人物602の顔が顔検出処理によって撮影画像600において検出された例を示す。顔検出された領域が601である。この場合、顔検出領域601が主被写体領域となる。また主被写体情報として顔領域の位置、サイズ、目の位置、口の位置、顔の角度などが得られる。
【0042】
図6(b)は被写体604が人物でない場合の例である。603が、撮影画像605のAF処理の結果としての合焦領域である。この場合、主被写体領域は合焦領域603となる。また主被写体情報として合焦領域の位置、サイズが得られる。
【0043】
図7は操作者による第1のシャッタースイッチ362の操作による被写体ロックから第2のシャッタースイッチの操作(撮影完了)に至る静止画撮影までの処理を説明するためのフローチャートを示す図である。この処理は、不揮発性メモリ56に記憶されたプログラムに基づいてシステム制御部350によって実行される。
ステップS701では第1のシャッタースイッチが操作されたかどうかを判別し、操作が検知されなかった場合はステップS701に戻り、検知された場合にはステップS702に進む。ステップS702は被写体検出処理である。例えば顔検出など被写体の特徴検出を行う。これにより被写体の位置、サイズ、特徴などの情報を得る。例えば顔検出で顔が検出された場合、顔の位置、大きさ、目の位置、口の位置などの情報が得られる。次にステップS703でオートフォーカス処理(AF処理)を行なう。AF処理では例えばステップS702で得た被写体情報を基に主被写体を特定し、この領域に対して合焦処理を行う。なお、主被写体が検出できない場合は予め定められた1つの固定領域、または複数の固定領域から例えば中距離を中心にして合焦処理を行うスポットAF処理または多点AF処理を行う。次にステップS704で自動露出処理(AE処理)を行なう。S702の被写体検出で得た被写体位置、または合焦処理で選択された合焦処理用の固定領域を基に適正な露出で撮影が行えるよう露出制御を行う。次に処理をステップS705の被写体ロックに進める。S702での被写体検出、S703でのAF処理などで得た被写体の情報を被写体ロック時刻(現在時刻)とともにシステムメモリ352に保存し、ステップS103のAF処理での合焦状態、ステップS704のAE処理での適正露出状態を保持する。次にステップS706では被写体ロックで捕らえた被写体の追尾処理を行なう。ステップS706の被写体追尾処理は、ステップS702の被写体検出処理で得た主被写体領域に対して前述した動きベクトルの検出に基づいて行なわれる。例えば表示用撮像画像の時系列で現在フレームと1つ前のフレームの連続した撮像画像の主被写体領域に対してSAD値を利用した動きベクトル検出処理によって動きベクトルを求める。次いで、得られた動きベクトル量だけ主被写体領域の位置を修正する。さらにこれを後続のフレームに対して繰り返すことにより、主被写体領域が連続した表示用撮像画像上を移動してもこれを追尾することができる。次にステップS707では加速度センサーによってある加速度Ar以上の加速度Aが検知されたか判別する。Ar以上の加速度が検知された場合は被写体検出S702に進み被写体検出S702、AF処理S703、AE処理S704、被写体ロックS705の一連の処理を再度行う。Ar以上の加速度が検知されなかった場合はステップS708に進む。ステップS708ではステップS705で保存した被写体ロック時刻と現在時刻との差である経過時間Tと予め(経過時間取得)、設定されている閾値Tr(第2の時間)を比較する。経過時間Tが閾値Trを超えた場合はステップS702の被写体検出処理に進み、被写体検出S702、AF処理S703、AE処理S704、被写体ロックS705の一連の処理を再度行う。従って、経過時間Tも再度計測して取得される。経過時間Tが所定の閾値Trを超えていない場合はステップS709に進む。ステップS709では第2のシャッタースイッチが操作なされたかどうかを判別し、操作されなかった場合はステップS706の被写体追尾処理に戻り再度被写体追尾処理を行う。操作された場合にはステップS710に進む。ステップ710では第2のシャッタースイッチが操作なされた時刻と被写体ロック時刻との差である経過時間Tをシステムメモリ352に保存する。ステップS711は撮影処理であり前述のように撮像部322を介して取得された画像がメモリ332に書き込まれる。画像合成を行う撮影の場合は複数回連続して撮影処理が行われてメモリ332に撮影された複数の画像が記憶される。例えばN枚の画像合成を行うためN回連続撮影した場合は、メモリ332にN枚の画像データが記憶される。
【0044】
図8は、撮影した複数の画像を合成する場合のステップS711での撮影処理のフローチャートを示す図である。ここでNは連続撮影枚数を示し、N枚の画像の合成を行うためにN回連続して撮影を行う。
【0045】
ステップS801でi=1と初期化する。ここでiは撮影枚数のカウント値である。次にステップS802に進む。ステップS802では撮影処理を行なう。撮影処理S802はi番目の1枚分の画像の撮影処理である。前述のように撮像部322などを介して画像データを取得する。次にステップS803に進む。ステップS803では撮影処理S802で取得した画像データをi番目の画像データとしてメモリ332に記憶する。次にステップS804に進む。ステップS804では撮影枚数iに1を足しステップS805に進む。ステップS805では撮影枚数iがN以下かどうかを判別し、N以下の場合はステップS802の撮影処理に戻り、iがNより大きい場合は一連の撮影処理を終了する。このようにN回連続して撮影を行ない、N枚の画像データを取得してメモリ332に記憶する。
【0046】
次に、図9乃至11を参照して本発明の画像合成処理を説明する。
【0047】
図9はメモリ332に記憶されたN枚の画像データを合成して1枚の画像データを生成するための画像合成処理のフローチャートを示す図である。図10は本実施形態での動きベクトル検出ステップS306における検出領域を示す図である。撮影画像1000をM個のブロック領域1001(1〜M)に分割して各領域にたいして動きベクトル検出を行う。例えば画像1と画像kのずれ量である動きベクトルはM個の動きベクトルVm(1〜M)として取得する。図11は動きベクトルの重み付けテーブルを示す図である。動きベクトルの重み付けテーブル1101はM個の重み付けWiで構成される。これらは、図10のM個の動きベクトル検出領域1001のそれぞれに対応している。従って、動きベクトルの重み付けは重み付けWi(i=1〜M)で管理される。
【0048】
図9を参照すると、本発明の画像合成処理では、まずステップS901で処理枚数kをk=1に初期化する。次にステップS902でk枚目の撮影画像データがメモリ332に記憶されているかどうかを確認する。メモリ332にk枚目の画像データが記憶されていない場合はステップS902に戻る。メモリ332にk枚目の画像データが記憶されている場合はステップS903に進む。ステップS903では取得された画像データを画像処理する。この処理は前述した画像処理部324による処理である。次にステップS904で撮影枚数kが1か判別する。k=1で撮影が1枚目の場合はステップS905に進む。kが1でない場合はステップS906に進む。ステップS905では動きベクトルの重み付けテーブルWm(m=1〜M))の生成を行う。ここでの処理の詳細は後述する。動きベクトルの重み付けテーブルは検出された動きベクトルとともにステップS907の位置合わせベクトルの算出時に使用される。ステップS906では動きベクトル検出を行う。1枚目の画像データとk枚目の画像データのずれ量を動きベクトルVmとして求める。このとき画像を領域分割し、画像の領域ごとに動きベクトルVm(m=1〜M)を求める。次にステップS907で位置合わせベクトル算出を行う。位置合わせベクトルVCはステップS906で検出した動きベクトルVm(m=1〜M)とステップS905で生成された動きベクトル重み付けテーブルから位置合わせベクトルVCを算出する。次にステップS908に進み、ステップS907で算出したベクトルVCを基に位置ずれ補正し合成画像(1〜k−1)と画像kの画像合成処理を行う。ここでの画像合成処理の詳細は後述する。位置ずれ補正は例えば画像の回転と平行移動の組み合わせ処理(アフィン変換処理)で行う。次にステップS909に進み、撮影枚数kに1を加える(k=k+1)。次にステップS910に進みkと撮影枚数Nを比較し、kがN以下の場合はステップS902に戻る。kがNより大きい場合は、N枚の画像合成処理を行ったこととなり、一連の画像合成処理を終了する。次にステップS911に進み合成画像の圧縮処理を行なう。
【0049】
以下、図12乃至14を参照して動きベクトルの重み付けテーブルの生成ステップS905の詳細を説明する。
【0050】
最初に、重み付けテーブルWiの生成の元になる基本テーブルの生成を説明する。本発明の動きベクトル重み付けテーブルは、主被写体領域に基づいて生成された動きベクトル重み付け基本テーブルを用いて、撮影時に保存した経過時間Tに従って生成される。
【0051】
図12は動きベクトルの重み付け基本テーブルの生成ステップS905を説明するための図である。図において、1201は主被写体領域である。図6の顔検出領域601や合焦領域603が主被写体領域として定義される。1202は複数のブロック領域のうちの一つとしての動きベクトル検出領域である。1203は一つの動きベクトル検出領域1202に占める主被写体領域1201を示す。例えば、検出領域1202の領域に占める主被写体領域1203の割合から基本重み付けBWiを求めることにより重み付けの基本テーブルBWi(i=1〜M)を生成する。このとき各重み付けBWiは次式1で求める。
BWi=BW0+K×Si (1)
ここで、BW0は最小重み付け値、Kは重み付け係数、Siは検出領域1202の領域に占める主被写体領域1203の割合である。即ち、被写体を多く含むブロックほど基本重み付けが大きくなる。
【0052】
次に動きベクトル重み付け基本テーブルBWi(i=1〜M)から重み付けテーブルWi(i=1〜M)を求める。動きベクトルの重み付けWiは次式2で求める。
Wi=(WA−BWi)×T/T0+BWi (T<T0)、または
= WA (T≧T0) (2)
ここで、Tは経過時間Tの保存ステップS710で取得された経過時間であり、T0は重み付けテーブルが全平均となるまでの経過時間であり、後述するように撮影条件に基づいて予め設定されている(第1の時間)。T≧T0ではWi=WAとなり、重み付けテーブルWi(1〜M)は全平均となる。WAは平均重み付け値、BWiは基本テーブルの基本重み付けである。
【0053】
ここで、上記T0について説明する。T0は被写体の特徴、撮影モードおよびAE処理などで決まる撮影条件によって決定され、設定される値である。被写体の特徴などの情報の取得およびT0の設定は制御部350の制御によって行なわれる。
【0054】
図13に設定されるT0の一例を示す。主被写体が人/顔として検知されたか、AF処理による合焦領域の個数、撮影モードがポートレート、夜景、ランドスケープ、スポーツなどのうちどれか、およびAE処理結果のシャッタースピードで決まるTv値からT0を決定する。図13の表中の式がT0を求める式である。NおよびKは既に説明したとおり、それぞれ合成される画像の枚数および重み付け係数である。
【0055】
図14は、式2で表される経過時間Tと重み付けWiとの関係を示すグラフである。T=0ではWi=BWiである。時間が経過するに従ってWiはWAに近づきT=T0になるとWi=WAとなる。T≧T0ではWi=WAであることがわかる。すなわち時間が経過すると基本重み付けBWiからWAで定義された固定重み付けとなることを示す。固定重み付けWAは例えば全てのWiが等しい全平均重み付けで定義される。もしくは中央を重点に重み付けWiが少し周辺より大きい値を持った中央重点重み付けで定義される。
【0056】
次に位置合わせベクトルの算出S907について説明する。位置合わせベクトルVCはブロックごとに検出した動きベクトルViと動きベクトル重み付けWiから求める。位置合わせベクトルVCは次式3によって表される。
【数1】

【0057】
図15、図16、図17は本発明によって生成される動きベクトルの重み付けの例を説明するための図である。
【0058】
操作者が第1のシャッタースイッチを操作するとAF制御、AE制御1501、1601、1701を行い被写体ロック1502、1602、1702(AFロック、AEロック状態)となる。次に操作者が第2のシャッタースイッチを操作すると静止画撮影1503、1603、1703が行われる。このときの被写体ロックからの経過時間は1511、1611、1711である。1504、1604、1704は被写体ロックの時点での撮影画角であり、1509、1609、1709は被写体、1507、1607、1707は検出被写体領域である。被写体領域1507、1607、1707はAF制御またはAE制御時に検出された例えば主被写体領域のことである。また1505、1605、1705は被写体ロック1502、1602、1702および第2のシャッタースイッチの操作の時点での撮影画角である。このときの実際の被写体が1510、1610、1710、また検出被写体領域が1508、1608、1708である。1506、1606、1706は合成時の位置合わせ用の動きベクトルの重み付けテーブルであり、数字が大きいほどこの領域の動きベクトルの重み付けが大きくなり、数字が小さいほど重み付けは小さくなる。
【0059】
図15の場合、被写体ロックからの経過時間1511が短いため1205のように実際の被写体1210と主被写体領域1508のずれはない。あったとしてもわずかであると考えられる。従って、動きベクトルの重み付けテーブル1506は、重み付けが大きい場所と実際の被写体位置1510とが一致しているように生成される。
【0060】
図16のように被写体ロックからの経過時間1611が長くなると、動きベクトルの重み付けテーブル1606は主被写体領域1608の重み付けブロックの重み付けと被写体周辺のブロックの重み付けの大きさの比が重み付けテーブル1506と比較し小さくなる。被写体ロックからの経過時間1611が長くなると1605のように実際の被写体1610と主被写体領域1608がずれてくる場合があるが、このような場合も主被写体領域のウェイトが小さくなるため位置合わせベクトルVを算出する際の影響度が小さくできる。
【0061】
さらに、図17のように被写体ロックからの経過時間1711が長くなると、動きベクトルの重み付けテーブル1706は主被写体領域1708を含む重み付けブロックの重み付けと被写体周辺のブロックの重み付けの大きさの比がますます小さくなる。そして、期間T0が経過すると重み付けは全体平均化される。
【0062】
なお、以上の例は固定重み付けWAが全平均重み付けの場合をとって説明したが、中央重点ウェイトの場合なども同様に実現できる。
【0063】
また、図15、図16、図17の説明では被写体ロックの時点を経過時間の基点とした場合について説明したが、被写体の検出(図7のステップS702)を経過時間の基点にする場合も同様に説明できる。この場合、被写体の検出からの経過時間Tが所定の期間Trを経過すると、主被写体検出、AF処理、AE処理、およびこれら情報を保持開始する被写体ロックを再処理し、経過時間Tが再計測されることで同様に処理できる。ただし、期間Trは適宜設定しなおす。
【0064】
さらに、被写体追尾を行った場合も経過時間が長くなるに従って被写体と主被写体領域の誤差が蓄積して徐々にずれていくことがある。よって、この場合も被写体の検出を基点とする経過時間Tがある期間Trを経過すると、主被写体検出、AF処理、AE処理、およびこれら情報を保持開始する被写体ロックを再処理し、経過時間Tが再計測されることで同様に処理できる。
【0065】
このように、本発明によれば被写体情報が取得されてからの経過時間が長い場合にも最小限の処理負荷、消費電力で被写体に対して適正な動きベクトルの重み付けが行え、画像合成用ベクトルの精度が高めることができ、これにより合成画像の画質が向上できる。
【0066】
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても達成される。すなわち、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても本件発明の目的が達成されることは言うまでもない。
【0067】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0068】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0069】
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行うことによっても前述した実施形態の機能が実現される。この場合も本件発明に含まれることは言うまでもない。
【0070】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づく処理も本件発明に含まれる。すなわち、機能拡張ボードや機能拡張ユニットに備わるCPU等がプログラムコードの指示に基づき実際の処理の一部又は全部を行って前述した実施形態の機能を実現する場合も本件発明に含まれることは言うまでもない。
【0071】
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。

【特許請求の範囲】
【請求項1】
撮影した複数の画像を位置合わせベクトルに従って位置合わせをして合成するための画像合成装置において、
前記複数の画像の撮影の経過時間を計測して取得するための経過時間取得手段と、
前記複数の画像の撮影における被写体領域の情報を取得するための被写体領域取得手段と、
撮影した各画像を複数の領域に分割し、分割された各領域の動きベクトルを検出するための動きベクトル検出手段と、
前記経過時間および被写体領域の情報を使用して、前記検出された動きベクトルの重み付けを行うための動きベクトル重み付け手段と、
前記重み付けられた動きベクトルを用いて前記位置合わせベクトルを算出する位置合わせベクトル算出手段を備えたことを特徴とする画像合成装置。
【請求項2】
前記動きベクトル重み付け手段は、前記取得された経過時間が予め設定された第1の時間と比較し、前記比較の結果にしたがって前記動きベクトル重み付け手段による重み付けを変更することを特徴とする請求項1記載の画像合成装置。
【請求項3】
前記第1の時間を設定する設定手段を備え、前記設定手段は前記複数の画像の撮影モードと撮影される被写体の特徴の情報を取得し、前記取得された撮影モードと被写体の特徴の情報に従って前記第1の時間を決定することを特徴とする請求項2記載の画像合成装置。
【請求項4】
経過時間取得手段は、前記複数の画像の撮影時の被写体ロックの時点から撮影指示までの経過時間を計測して取得することを特徴とする請求項1乃至3のいずれか一項に記載の画像合成装置。
【請求項5】
経過時間取得手段は、前記複数の画像の撮影時の被写体の検出から撮影指示までの経過時間を計測して取得することを特徴とする請求項1乃至3のいずれか一項に記載の画像合成装置。
【請求項6】
経過時間取得手段が計測した経過時間が予め設定された第2の時間より長くなったときは、前記画像合成装置は前記複数の画像の撮影を繰り返すよう制御し、前記繰り返しにおいて、前記被写体領域取得手段は被写体領域の情報を取得し、前記経過時間取得手段は経過時間を計測して取得することを特徴とする請求項1乃至5のいずれか一項に記載の画像合成装置。
【請求項7】
加速度センサーをさらに備え、前記加速度センサが予め設定された所定の加速度より大きな加速度を検出したときは、前記画像合成装置は前記複数の画像の撮影を繰り返すよう制御し、前記繰り返しにおいて、前記被写体領域取得手段は被写体領域の情報を取得し、前記経過時間取得手段は経過時間を計測して取得することを特徴とする請求項1乃至6のいずれか一項に記載の画像合成装置。
【請求項8】
撮影した複数の画像を位置合わせベクトルに従って位置合わせをして合成するための画像合成装置の制御方法において、
前記複数の画像の経過時間を計測して取得するための経過時間取得ステップと、
前記複数の画像の撮影における被写体領域の情報を取得するための被写体領域取得ステップと、
撮影した各画像を複数の領域に分割し、分割された各領域の動きベクトルを検出するための動きベクトル検出ステップと、
前記経過時間および被写体領域の情報を使用して、前記検出された前記動きベクトルの重み付けを行うための動きベクトル重み付けステップと、
前記重み付けられた動きベクトルを用いて前記位置合わせベクトルを算出する位置合わせベクトル算出ステップを備えたことを特徴とする制御方法。
【請求項9】
コンピュータを、
撮影した複数の画像を位置合わせベクトルに従って位置合わせをして合成するための画像合成装置の制御方法において、
前記複数の画像の撮影の経過時間を計測して取得するための経過時間取得手段、前記複数の画像の撮影における被写体領域の情報を取得するための被写体領域取得手段、撮影した各画像を複数の領域に分割し、分割された各領域の動きベクトルを検出するための動きベクトル検出手段、前記経過時間および被写体領域の情報を使用して、前記検出された前記動きベクトルの重み付けを行うための動きベクトル重み付け手段、および前記重み付けられた動きベクトルを用いて前記位置合わせベクトルを算出する位置合わせベクトル算出手段として機能させるプログラム。
【請求項10】
請求項9のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【請求項11】
コンピュータを、請求項1乃至7のいずれか一項に記載された画像合成装置の各手段として機能させるプログラム。
【請求項12】
コンピュータを、請求項1乃至7のいずれか一項に記載された画像合成装置の各手段として機能させるプログラムを格納した記憶媒体。
【請求項13】
画像を撮影するための撮像手段と、
請求項1乃至7のいずれか一項に記載の画像合成装置と、
前記被写体領域取得手段が取得する前記被写体領域の情報に基づいて被写体追尾処理を行なうための被写体追尾手段を備えた撮像装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2012−257157(P2012−257157A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−130169(P2011−130169)
【出願日】平成23年6月10日(2011.6.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】