(57)【要約】【課題】冗長に広いサーチ範囲を設定することなく動きベクトルを算出できるようにする。【解決手段】ローカル動きベクトル算出部１７は、ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内でターゲットブロックとの相関が最大となるブロック位置を検出してターゲットブロックの動きベクトル（ローカル動きベクトル）を算出する。グローバル動きベクトル算出部１８は、ターゲット画像中において設定された複数のターゲットブロック毎のローカル動きベクトルから、ターゲット画像とリファレンス画像間の動きベクトルを算出する。予測動きベクトル設定部１９は、ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルを設定する。サーチ範囲は、ターゲットブロックの位置と予測動きベクトルに基づいてリファレンス画像上に設定する。【選択図】        図４
2012151796.tif 000002
【特許請求の範囲】
【請求項１】
ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内で前記ターゲットブロックとの相関が最大となるブロック位置を検出して前記ターゲットブロックの動きベクトルを算出する第１の動きベクトル算出部と、
前記ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、前記ターゲット画像と前記リファレンス画像間の動きベクトルを算出する第２の動きベクトル算出部と、
前記ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルを設定する予測動きベクトル設定部とを有し、
前記第１の動きベクトル算出部は、前記ターゲットブロックの位置と前記予測動きベクトルに基づいて、前記リファレンス画像上に前記サーチ範囲を設定する画像処理装置。
【請求項２】
前記第１の動きベクトル算出部は、前記ターゲット画像上における前記ターゲットブロックの位置に相当する前記リファレンス画像上のブロック位置を、前記予測動きベクトルに基づいて移動して、移動後のブロック位置を基準として前記サーチ範囲を設定する請求項１記載の画像処理装置。
【請求項３】
関数値の設定を行う関数値設定部を備え、
前記予測動きベクトル設定部は、前記画像間の動きベクトルに前記関数値をオフセット成分として加えて前記予測動きベクトルを設定する請求項１記載の画像処理装置。
【請求項４】
前記画像は、撮像方向を移動させて生成された画像であり、前記関数値は、前記撮像方向を移動させる動きを近似した関数の関数値である請求項３記載の画像処理装置。
【請求項５】
前記関数値は一定値である請求項４記載の画像処理装置。
【請求項６】
前記関数値は、時間に対する変化が直線的である関数の関数値である請求項４記載の画像処理装置。
【請求項７】
前記関数値は、時間に対する変化が放物線状となる関数の関数値である請求項４記載の画像処理装置。
【請求項８】
ユーザ操作に応じた操作信号を生成する入力部を備え、
前記予測動きベクトル設定部は、前記操作信号に基づき前記関数値の初期値の符号を設定する請求項３記載の画像処理装置。
【請求項９】
前記予測動きベクトル設定部は、過去に算出された画像間の動きベクトルの１つまたは２つ以上を用いて、前記予測動きベクトルを設定する請求項１記載の画像処理装置。
【請求項１０】
前記予測動きベクトル設定部は、過去に算出された画像間の動きベクトルの１つまたは２つ以上を用いて線形予測を行い、該線形予測の予測結果を用いて前記予測動きベクトルを設定する請求項９記載の画像処理装置。
【請求項１１】
前記ターゲット画像と前記リファレンス画像を生成する撮像装置の動きを検出する動き検出センサを備え、
前記予測動きベクトル設定部は、前記動き検出センサのセンサ出力を用いて、前記予測動きベクトルの設定を行う請求項１記載の画像処理装置。
【請求項１２】
前記動き検出センサは、角速度と加速度および磁気の少なくともいずれかを検出するセンサである請求項１１記載の画像処理装置。
【請求項１３】
前記第２の動きベクトル算出部で算出された動きベクトルに基づき広角画像の一部となる部分画像の領域を設定して、該部分画像を繋ぎ合わせて前記広角画像を生成する画像合成処理部をさらに有する請求項１記載の画像処理装置。
【請求項１４】
ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内で前記ターゲットブロックとの相関が最大となるブロック位置を検出して前記ターゲットブロックの動きベクトルを算出する工程と、
前記ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、前記ターゲット画像と前記リファレンス画像間の動きベクトルを算出する工程と、
前記ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルの設定を行う工程とを含み、
前記サーチ範囲は、前記ターゲットブロックの位置と前記予測動きベクトルに基づいて、前記リファレンス画像上に設定する画像処理方法。
【請求項１５】
ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内で前記ターゲットブロックとの相関が最大となるブロック位置を検出して前記ターゲットブロックの動きベクトルを算出する手順と、
前記ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、前記ターゲット画像と前記リファレンス画像間の動きベクトルを算出する手順と、
前記ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルの設定を行う手順と、
前記ターゲットブロックの位置と前記予測動きベクトルに基づいて、前記リファレンス画像上に前記サーチ範囲を設定する手順と
をコンピュータで実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この技術は、画像処理装置と画像処理方法およびプログラムに関する。詳しくは、連続して撮像された画像間の動きベクトルを算出する際に、サーチ範囲を最適化できるようにする。
【背景技術】
【０００２】
従来、撮像装置の撮像方向を移動しながら撮像を行うことにより得られた複数枚の撮像画像から例えば短冊状に画像を切り出して繋ぎ合わせることで１枚の広角画像（パノラマ画像）を生成することが行われている。また、撮像画像間の動きベクトルを算出して、算出した動きベクトルに基づき、繋ぎ合わせ部分の画像が連続した画像となるように切り出し領域を設定することが行われている。
【０００３】
図１は、従来の動作を説明するための図であり、撮像装置の撮像方向を移動しながら撮像を行うことにより得られた時刻ｔ-3から時刻ｔまでの４枚の撮像画像の位置関係を示している。
【０００４】
時刻ｔ-1の画像（リファレンス画像）と、時刻ｔの画像（ターゲット画像とする）との画像間の動きベクトル（以下「グローバル動きベクトル」という）を求める場合、リファレンス画像の中心から上下左右等距離の範囲をサーチ範囲とする。このサーチ範囲内でリファレンス画像とのマッチング度合いを判別して、マッチング度合いが最も高い場所となる動きベクトルをグローバル動きベクトルとする。グローバル動きベクトルの算出において、ターゲット画像全体とリファレンス画像全体を直接マッチングする場合、マッチングの取れる画像領域は、画像の一部のみであり、グローバル動きベクトルを精度よく算出することができない。したがって、例えば特許文献１のように、画像を幾つかの細かいブロックに分割して、ブロック毎の動きベクトル（以下「ローカル動きベクトル」という）を算出したのち、それらを統合的に処理してグローバル動きベクトルを算出することが行われている。
【０００５】
図２は、ブロックとローカル動きベクトルの関係を示している。ターゲット画像とリファレンス画像の関係を絶対座標基準で表すと図２の（Ａ）に示す位置関係になり、画像基準で表すと図２の（Ｂ），（Ｃ）のようになる。
【０００６】
ターゲット画像上にローカル動きベクトルを算出するターゲットブロックを設定したとき、従来技術では、リファレンス画像上の同一位置を中心として、上下左右が等距離であるサーチ範囲を設けている。このサーチ範囲内において、ターゲットブロックとリファレンス画像とのマッチングを順次行い、最も相関の高い位置が最適マッチング位置とターゲットブロックの位置との相対座標がローカル動きベクトルを示すことになる。
【０００７】
ターゲットブロックの設定は、全画面を単純に等間隔に分割した各領域でもよく、重複を許した分割領域でもよい。また、予めエッジ情報等から特徴点を抽出し、それらを含む限定箇所のみを対象ブロックとしてもよい。なお、図２の（Ｃ）のようにサーチ範囲を設定しても、マッチング対象の画像が存在しない領域は意味がない。したがって、実際には図３の（Ｂ）に示すようにサーチ範囲が設定される。
【０００８】
また、ターゲット画像とリファレンス画像は、共通画像領域（図２，図３の斜線で示す領域）にのみ一致する画像が存在する。したがって、全ブロックのローカル動きベクトルのうち、共通画像領域に属するもののみを、マッチング度合い等の信頼性情報から抽出する。さらに、抽出された信頼度の高い１つまたは複数のローカル動きベクトルを統合的に処理することにより、グローバル動きベクトルを算出する。このようにして得られたグローバル動きベクトルに基づきターゲット画像をずらして、リファレンス画像と繋ぎ合わせることで、繋ぎ部分の画像が連続している広角画像を生成することができる。なお、ローカル動きベクトルからグローバル動きベクトルを算出する手法としては、例えばアフィン変換とＲＡＮＳＡＣ（Random Sample Consensus）アルゴリズムを組み合わせた方法等が広く知られている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２１９０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、リファレンス画像上におけるターゲットブロックと同一位置を中心として、上下左右が等距離のサーチ範囲を設定する場合、本来得たい移動量をカバーしようとするためには、サーチ範囲として広い領域を設定しなければならない。しかし、サーチ範囲を広くするためにはハードウェアの規模を大きくしなければならず、処理時間も増加してしまう。また、処理時間が増加するとフレームレートを低下させなければならず、フレームレートが低いと、フレーム間の移動量が大きくなってしまうことから、サーチ範囲をさらに広くしなければならない。また、フレーム間の移動量が大きく時間的に離れているため、画像を繋ぎ合わした場合、繋ぎ合わせ部分の画像が滑らかでなくなってしまうおそれもある。
【００１１】
したがって、広角画像の画質を優先させる場合は、撮像装置の撮像方向を動かす速度（例えば撮像装置のスイング速度や平行移動速度等）を制限しなければならない。また、一定以上の速度を可能とすることによりユーザビリティを優先させる場合は、広角画像の画質劣化を許容しなければならない。
【００１２】
そこで、この技術では、冗長に広いサーチ範囲を設定することなく動きベクトルを算出できる画像処理装置と画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
この技術の第１の側面は、ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内で前記ターゲットブロックとの相関が最大となるブロック位置を検出して前記ターゲットブロックの動きベクトルを算出する第１の動きベクトル算出部と、前記ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、前記ターゲット画像と前記リファレンス画像間の動きベクトルを算出する第２の動きベクトル算出部と、前記ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルを設定する予測動きベクトル設定部とを有し、前記第１の動きベクトル算出部は、前記ターゲットブロックの位置と前記予測動きベクトルに基づいて、前記リファレンス画像上に前記サーチ範囲内を設定する画像処理装置にある。
【００１４】
この技術においては、ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内でターゲットブロックとの相関が最大となるブロック位置を検出してターゲットブロックの動きベクトルが算出される。また、ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、ターゲット画像とリファレンス画像間の動きベクトルが算出される。また、ターゲット画像よりも過去の画像間で算出されている例えば１フレーム前の動きベクトルまたは２つ以上の動きベクトル、またはこの動きベクトルを用いた線形予測結果に、関数値をオフセット成分として加えて予測動きベクトルが設定される。関数値は、撮像方向を移動させる動きを近似した関数の関数値であり、一定値、時間に対する変化が直線的である関数の関数値、時間に対する変化が放物線状となる関数の関数値等が用いられる。また、ユーザ操作に応じた操作信号に基づき関数値の初期値の符号が設定される。さらに、角速度と加速度および磁気の少なくともいずれかを検出する動き検出センサが設けられている場合、動き検出センサのセンサ出力を用いて予測動きベクトルの設定が行われる。このようにして設定された予測動きベクトルに基づき、ターゲット画像上におけるターゲットブロックの位置に相当するリファレンス画像上のブロック位置が移動されて、相関が最大となるブロック位置を基準としてサーチ範囲が設定される。
【００１５】
この技術の第２の側面は、ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内で前記ターゲットブロックとの相関が最大となるブロック位置を検出して前記ターゲットブロックの動きベクトルを算出する工程と、前記ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、前記ターゲット画像と前記リファレンス画像間の動きベクトルを算出する工程と、前記ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルの設定を行う工程とを含み、前記サーチ範囲は、前記ターゲットブロックの位置と前記予測動きベクトルに基づいて、前記リファレンス画像上に設定する画像処理方法にある。
【００１６】
この技術の第３の側面は、ターゲット画像中に設定された複数画素からなるターゲットブロックについて、リファレンス画像において設定したサーチ範囲内で前記ターゲットブロックとの相関が最大となるブロック位置を検出して前記ターゲットブロックの動きベクトルを算出する手順と、前記ターゲット画像中において設定された複数のターゲットブロック毎の動きベクトルから、前記ターゲット画像と前記リファレンス画像間の動きベクトルを算出する手順と、前記ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルの設定を行う手順と、前記ターゲットブロックの位置と前記予測動きベクトルに基づいて、前記リファレンス画像上に前記サーチ範囲を設定する手順とをコンピュータで実行させるプログラムにある。
【００１７】
なお、本技術のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【００１８】
この技術によれば、ターゲット画像中に設定された複数画素からなるターゲットブロックについて動きベクトルを算出する場合、ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルが設定される。さらに、ターゲットブロックの位置と予測動きベクトルに基づいて、リファレンス画像上にサーチ範囲内が設定される。したがって、冗長に広いサーチ範囲を設定する必要がなく、ハードウェア規模を拡大しなくともターゲットブロックの動きベクトルを速やかに算出できる。
【図面の簡単な説明】
【００１９】
【図１】従来の動作を説明するための図である。
【図２】ブロックとローカル動きベクトルの関係を示す図である。
【図３】実際に設定されるサーチ範囲を示す図である。
【図４】画像処理装置を撮像装置に適用した場合の構成を例示した図である。
【図５】サーチ範囲設定動作を絶対座標基準で示した図である。
【図６】サーチ範囲設定動作を示す図である。
【図７】フレーム間の動きベクトルの変化量を人毎に示した図である。
【図８】スイング方向の垂直成分の予測のイメージを示す図である。
【図９】第１の予測動きベクトル設定動作におけるオフセット成分を示す図である。
【図１０】第２の予測動きベクトル設定動作におけるオフセット成分を示す図である。
【図１１】撮像装置の動作を示すフローチャート（その１）である。
【図１２】撮像装置の動作を示すフローチャート（その２）である。
【発明を実施するための形態】
【００２０】
以下、本技術について説明する。本技術では、時間的に連続した２枚の画像間の動きベクトル（グローバル動きベクトル）を算出するために画像間でマッチング処理を行う場合に、サーチ範囲の設定を適正化することで、効率的な動きベクトルの算出を行えるようにする。なお、本技術の説明は以下の順序で行う。また、撮像装置をスイングさせることで撮像方向の移動を行う場合について説明する。
１．撮像装置の構成
２．サーチ範囲設定動作
２−１．第１の予測動きベクトル設定動作
２−２．第２の予測動きベクトル設定動作
２−３．第３の予測動きベクトル設定動作
３．広角画像生成動作
【００２１】
＜１．撮像装置の構成＞
図４は、本技術の画像処理装置を撮像装置に適用した場合の構成を例示している。撮像装置１０は、撮像光学系１１、撮像部１２、タイミング信号生成部（ＴＧ部）１３、前処理部１４、画像処理部１５、メモリ部１６、ローカル動きベクトル算出部１７、グローバル動きベクトル算出部１８、予測動きベクトル設定部１９、画像合成部２０、記録部２１、解像度変換部２２、表示部２３、制御部２５、入力部２６を有している。また、撮像装置１０では、バス２９を介して、画像処理部１５、メモリ部１６、ローカル動きベクトル算出部１７、予測動きベクトル設定部１９、画像合成部２０、記録部２１、解像度変換部２２、および制御部２５が接続されている。なお、撮像装置１０には、動き検出センサ２７を設けてもよい。
【００２２】
撮像光学系１１は、レンズを主体として構成されており、図示しない被写体の光学像を撮像部１２の受光面に結像させる。
【００２３】
撮像部１２は、ＣＭＯＳやＣＣＤ等の固体撮像素子を用いて構成されている。また撮像部１２は、タイミング信号生成部１３が接続されている。撮像部１２は、タイミング信号生成部１３で生成されたタイミング信号に基づき撮像素子を駆動して、撮像光学系１１によって受光面に結像された光学像に応じた撮像信号を生成して前処理部１４に出力する。
【００２４】
前処理部１４は、撮像部１２から出力されたアナログの撮像信号に対して相関二重サンプリング処理（ＣＤＳ）、アナログ増幅処理等を行い、処理後の撮像信号をＡ／Ｄ変換処理して画像処理部１５に出力する。
【００２５】
画像処理部１５は、前処理部１４から出力された画像データに対して、カメラ信号処理や種々の補正処理、画像データを所定の方式の信号例えば輝度データと色差データに変換する。画像処理部１５で種々の画像処理を行うことにより得られた画像データは、メモリ部１６に記憶される。
【００２６】
メモリ部１６は、撮像画像や広角画像を一時記憶するためのワーキングメモリとして用いられる。メモリ部１６は、画像処理部１５から出力された画像データや後述する画像合成部２０で合成処理が行われた画像データを記憶する。
【００２７】
ローカル動きベクトル算出部１７は、第１の動きベクトル算出部であり、ターゲット画像とリファレンス画像との間で、ターゲットブロック毎にマッチング処理を順次行って、ターゲットブロック毎に動きベクトルを算出する。なお、以下の説明では、ターゲットブロック毎に算出した動きベクトルをローカル動きベクトルという。
【００２８】
ローカル動きベクトル算出部１７は、後述する予測動きベクトル設定部１９で設定された予測動きベクトルに基づいて、ターゲット画像上におけるターゲットブロックの位置に相当するリファレンス画像上のブロック位置を移動させる。ローカル動きベクトル算出部１７は、移動後のブロック位置を基準としてサーチ範囲を設定して、サーチ範囲内でターゲットブロックとのマッチング処理を行う。さらに、ローカル動きベクトル算出部１７は、マッチング処理においてターゲットブロックとの相関が最大となるサーチ範囲内のブロック位置を検出して、検出したブロック位置とターゲットブロックの位置からローカル動きベクトルを算出する。
【００２９】
グローバル動きベクトル算出部１８は、第２の動きベクトル算出部であり、時間的に連続した２枚の画像間の動きベクトルを算出する。なお、以下の説明では、画像間で算出した動きベクトルをグローバル動きベクトルという。
【００３０】
グローバル動きベクトル算出部１８は、ローカル動きベクトル算出部１７で算出されたローカル動きベクトルに基づいてグローバル動きベクトルを算出する。例えば、ターゲットフレームについて求めた複数個のローカル動きベクトルのすべてを、同じ重みで用いてグローバル動きベクトルを算出する。また、引用文献１のように、ターゲットフレームについての複数個のローカル動きベクトルのそれぞれの信頼性指標値を算出して、この信頼性指標値を正規化して、例えば０以上、１以下の重み係数をそれぞれのローカル動きベクトルに対して設定する。さらに、各ローカル動きベクトルについて設定した重み係数に応じて重み付けを行い、重み付け後のローカル動きベクトルからグローバル動きベクトルを算出してもよい。なお、グローバル動きベクトルの演算負荷を軽くするため、正規化した信頼性指標値と閾値を比較して重み係数を２値化して用いるようにしてもよい。
【００３１】
予測動きベクトル設定部１９は、ターゲット画像よりも過去の画像間で検出されているグローバル動きベクトルを用いて予測動きベクトルの設定を行う。また、予測動きベクトル設定部１９は、グローバル動きベクトルだけでなく関数値をオフセット成分として加えて予測動きベクトルの設定を行うようにしてもよい。この場合、予測動きベクトル設定部１９は、撮像装置１０のスイング動作を近似した関数の関数値を用いる。予測動きベクトル設定部１９は、設定した予測動きベクトルをローカル動きベクトル算出部１７に通知する。
【００３２】
画像合成部２０は、広角画像の生成に用いる部分画像を決定して、この部分画像を繋ぎ合わせて広角画像を生成する。画像合成部２０は、部分画像の決定において、繋ぎ合わせ部分の画像が連続した画像となるように、クローバル動きベクトルに基づき部分画像として用いる画像領域を設定する。また、画像合成部２０は、部分画像を繋ぎ合わせて広角画像を生成する画像合成において、例えばメモリ部１６に広角画像の画像データが所定の順序で記録された状態となるように、部分画像の画像データの書き込み位置を制御する。
【００３３】
記録部２１は、メモリ部１６に記憶されている広角画像の画像データをメモリカード等の記録媒体に記録する。
【００３４】
解像度変換部２２は、メモリ部１６に記憶されている画像、または記録部２１に記録されている画像を、表示部２３の解像度に合わせた画像データとする解像度変換を行う。
【００３５】
表示部２３は、液晶表示素子や有機ＥＬ表示素子等を用いて構成されている。表示部２３は、解像度変換部２２から供給された画像データに基づいて撮像画像や広角画像を表示する。また、表示部２３では、カメラスルー画の表示、撮像装置の設定や操作に関するメニュー表示等も行う。
【００３６】
制御部２５には入力部２６が接続されている。入力部２６は、ユーザからの操作入力を受け付けるものであり、電源スイッチやシャッターキー、ズームキー等の各種の操作キー、メニュー表示やメニュー項目の選択および各種設定を行うための操作キー等が設けられている。入力部２６は、ユーザ操作に応じた操作信号を制御部２５に出力する。
【００３７】
制御部２５は、マイクロコンピュータ等を用いて構成されており、記憶しているプログラムを実行して、撮像装置１０の動作がユーザ操作に応じた動作となるように各部を制御する。さらに、予測動きベクトル設定部１９でグローバル動きベクトルと関数値を用いて予測動きベクトルの設定を行う場合、制御部２５は関数値設定部としての動作を行い、関数値を生成して予測動きベクトル設定部１９に供給する。
【００３８】
＜２．サーチ範囲設定動作＞
撮像装置１０は、時間的に連続した２枚の画像間の動きベクトルであるグローバル動きベクトルを得るため、ブロック単位のマッチング処理を行い、ローカル動きベクトルを算出する。また、マッチング処理では、予測動きベクトルを用いることでサーチ範囲の設定を最適化して、効率的なローカル動きベクトルの算出を行う。
【００３９】
図５は、サーチ範囲設定動作を絶対座標基準で示している。撮像装置１０は、例えば、既知の情報である過去に算出された画像間の動きベクトルの１つまたは２つ以上を用いて予測動きベクトルを設定する。また、撮像装置１０は、予測動きベクトルに基づきサーチ範囲を設定することで、サーチ範囲を従来よりも狭い領域としてもローカル動きベクトルを検出できるようにする。すなわち、撮像装置１０は、冗長に広い範囲をサーチ範囲とすることなく動きベクトルを検出できるようにすることで、処理速度の向上および高解像度画像における大きい移動ベクトルの検出を可能とする。撮像装置１０は、具体的には図６に示すように、画像基準でターゲットブロックの位置を、予測動きベクトルに応じて移動して、リファレンス画像上における移動後の位置を基準とした上下左右が等距離の範囲をサーチ範囲に設定する。また、予測動きベクトルの誤差の偏りが既知の場合には、偏りに応じてサーチ範囲を移動させる。
【００４０】
＜２−１．第１の予測動きベクトル設定動作＞
次に、第１の予測動きベクトル設定動作について説明する。過去の値から将来の値を予測する手法としては、種々のアルゴリズムが用いられており、最も典型的に用いられるアルゴリズムが線形予測である。
【００４１】
式（１）は、線形予測を示す式である。ここで、時刻を「ｔ」（なおｔの単位はフレーム数とする）、事前に観測された過去の動きベクトルを「ｘ（ｔ）」、予測係数を「ａｉ」とすると、式（１）から時刻ｔにおける予測動きベクトルｖ（ｔ）を算出できる。
【数１】
2012151796.tif 000003
なお、スイング動作開始時を「ｔ＝０」とした場合、スイング動作開始前「ｔ＜０」のベクトル値は「ｘ（ｔ）＝０」とする。
【００４２】
ここで、広角画像の生成において、ユーザは意図的にカメラをスイング動作するのに対して、システムで想定するフレームレートは５〜１５フレーム／秒程度である。したがって、予測すべき対象の時間周波数成分と、サンプリングの時間間隔との乖離が大きく、予測が成り立たないおそれがある。また、予測を必要とする対象が例えば振り始めの期間でありスイング速度のブレが大きいと、過去のサンプルも殆ど得られていないことから、線形予測の有効性を活かせない。
【００４３】
したがって、撮像装置１０で高いフレームレートで動きベクトルの算出が可能であり、撮像装置１０のスイング動作が等速である場合、予測動きベクトル設定部１９は、式（１）に示す線形予測を用いることで精度よく予測動きベクトルを設定できる。
【００４４】
ところで、広角画像を生成するためのスイング動作は、一般的に、振り始めの期間におけるフレーム間のグローバル動きベクトルの変化量が大きく、人の違いによってもフレーム間の動きベクトルの変化量が相違する。図７は、振り始めの期間におけるフレーム間のグローバル動きベクトルの変化を、スイング動作を行った人毎に示している。この図７で明らかなように、振り始めの期間におけるフレーム間のグローバル動きベクトルの変化が大きく、人の違いによるバラツキが大きいことも明らかである。
【００４５】
そこで、予測動きベクトル設定部１９は、画像間の動きベクトルに関数値をオフセット成分として加えて予測動きベクトルを設定する。例えば式（１）に示す線形予測に対して、式（２）に示すように時刻ｔのみに依存する関数ｆ（ｔ）を加えて、さらに線形予測のフレーム数ｐを「１」，予測係数ａｉを「−１」とした式（３）を用いて予測動きベクトルｖ（ｔ）の設定を行う。
【数２】
2012151796.tif 000004
【００４６】
また、撮像装置１０のスイング方向に対して垂直な成分の動きベクトルｗ（ｔ）は式（４）もしくは式（５）を用いて算出する。なお、事前に観測された過去のグローバル動きベクトルを「ｙ（ｔ）」とする。なお、スイング方向に垂直な成分は殆ど「０」であり、スイング方向に比べて狭いサーチ範囲で十分カバーできる。なおスイング開始前「ｔ＜０」のベクトル値は「ｙ（ｔ）＝０」とする。
ｗ（ｔ）＝ｙ（ｔ−１）      ・・・（４）
ｗ（ｔ）＝０                ・・・（５）
【００４７】
このように、スイング方向に垂直な成分が殆ど「０」である場合、式（３）によるスイング方向の予測と、式（５）によるスイング方向の垂直成分の予測のイメージは、図８に示すようになる。すなわち、予測動きベクトル（ｖ（ｔ），ｗ（ｔ））は、直前のフレームで観測されたグローバル動きベクトル（ｘ（t-1），ｙ（t-1））に、スイング方向のみのｆ（ｔ）によるオフセット成分を付加することになる。
【００４８】
図９は、前値に対する予測のオフセット成分を例示している。図９の（Ａ）は、ユーザが撮像装置のスイングを開始したときの一般的な特性を示している。シャッターを押してからスイング動作を開始するものと仮定すると、一般的に撮像装置をスイングする動作は、速度「０」からスタートした後、ある速度まで急速に上昇し、その後一定速を維持したのち、比較的緩やかに速度が低下するものと想像できる。つまり、振り始めの期間におけるオフセット成分ｆ（ｔ）は、ある高い値からスタートして、滑らかに「０」に漸近する形状が予想されて、図９の（Ａ）に示す特性となる。
【００４９】
したがって、制御部２５は、図９の（Ａ）の特性であるスイング動作を近似した関数、例えば時間に対する変化が直線的である関数で近似させた図９の（Ｂ）に示す特性で、時間の経過に対応するオフセット成分ｆ（ｔ）を算出する。また、制御部２５は、図９の（Ａ）の特性であるスイング動作を近似した関数、例えば時間に対する変化が放物線状となる関数で近似させた図９の（Ｃ）に示す特性で、時間の経過に対応するオフセット成分ｆ（ｔ）を算出してもよい。このようにして、制御部２５は関数値の算出を行い、予測動きベクトル設定部１９は、過去の画像間で算出されているグローバル動きベクトルと時間に対する変化が直線的である関数または時間に対する変化が放物線状となる関数の関数値を用いて、予測動きベクトルを設定する。また、予測動きベクトル設定部１９は、過去の画像間で算出されているグローバル動きベクトルの１つまたは２つ以上を用いて線形予測を行う。なお、予測動きベクトル設定部１９は、図９の（Ａ）の特性を直線で近似して算出すれば、演算コストを低く抑えることができる。
【００５０】
さらに、時刻ｔ＝０におけるオフセット成分ｆ（ｔ）の初期値、すなわちｆ（０）は、スイング方向によって異なる値となる。例えばスイング方向が逆である場合、初期値の符号が逆となる。したがって、予めスイング方向をユーザに選択させる、またはジャイロ等のセンサによりスイング方向を感知すれば、スイング方向に対応させて初期値の符号を設定できる。なお、時刻ｔ＝０におけるオフセット成分ｆ（ｔ）の値は、実験等によって予め最適値を求めておけばよい。
【００５１】
＜２−２．第２の予測動きベクトル設定動作＞
第１の予測動きベクトル設定動作では、過去のグローバル動きベクトルと振り始めからの経過時間に基づく関数値を用いて現フレームの予測動きベクトルを算出する方法について説明した。次に第２の予測動きベクトル設定動作では、式（３）よりも簡略化した式（６）を用いる方法について説明する。
ｖ（ｔ）＝ｆ＋ｘ（ｔ−１）  ・・・（６）
【００５２】
式（６）では、前値に対して常に固定値（一定の関数値に相当）をオフセット成分として付加している。例えば、式（３）において時刻（０）の値を、固定値のオフセット成分とする。
【００５３】
図１０は、オフセット成分が固定値となる場合、例えば、図１０の（Ａ）は、スイング動作が等速度運動である場合を示している。等速度運動を近似する場合、制御部２５は、オフセット成分を時間によらず常に「０」とする。また、図１０の（Ｂ）は、スイング動作が等加速度運動である場合を示している。等加速度運動を近似する場合、制御部２５は、オフセット成分を「０」でない一定値とする。
【００５４】
なお、予測動きベクトル設定部１９は、過去の画像間で算出されているグローバル動きベクトルの１つを用いて線形予測を行う。また、予測動きベクトル設定部１９は、過去の画像間で算出されているグローバル動きベクトルの２つ以上を用いて線形予測を行ってもよい。
【００５５】
時刻ｔ＝０におけるオフセット成分ｆ（ｔ）の初期値、すなわちｆ（０）は、第１のサーチ範囲設定動作と同様に、予めスイング方向をユーザに選択させる。または、ジャイロ等のセンサによりスイング方向を感知して、スイング方向に対応させて初期値の符号を設定できる。また、時刻ｔ＝０におけるオフセット成分ｆ（ｔ）の値は、実験等によって予め最適値を求めておく。さらに、式（６）から前値を削除した式（７）を用いることもできる。
ｖ（ｔ）＝ｆ                ・・・（７）
【００５６】
このようにして予測動きベクトルを設定すれば、第１の予測動きベクトル設定動作に比べて、予測動きベクトルの算出を容易に行うことができる。
【００５７】
＜２−３．第３の予測動きベクトル設定動作＞
第１の予測動きベクトル設定動作と第２の予測動きベクトル設定動作では、撮像装置１０で生成された画像を用いて予測動きベクトルを算出する方法について説明した。しかし、予測動きベクトルは画像を用いて算出する場合に限られない。例えば、撮像装置１０に動きを検出する動き検出センサ２７を設けた場合、予測動きベクトル設定部１９は、動き検出センサ２７で検出された動きに基づいて効率的に予測動きベクトルを設定することが可能となる。
【００５８】
動き検出センサ２７としては、ジャイロ（角速度センサ）、加速度センサ、および電子コンパス（磁気センサ）のいずれか、またはそれらを組み合わせて用いる。動き検出センサ２７による動き検出のサンプリングレートは、画像のフレームレートの時刻ｔに依存しないため、引数としては、フレームレートと異なる時刻ｕを用いる。
【００５９】
式（８）〜式（１０）は、動き検出センサ２７で検出された動きに基づくオフセット成分ｇ（ｕ）を用いて予測動きベクトルｖ（ｔ）を算出する式である。なお、式（８）は、式（２）に示す線形予測と動き検出センサ２７を組み合わせて用いた場合を示している。式（９）は、式（３）における時刻ｔのみに依存する関数ｆ（ｔ）を動き検出センサ２７の動き検出結果で置き換えた場合に相当する。さらに、式（１０）は動き検出センサ２７の動き検出結果のみに基づく場合に相当する。
【数３】
2012151796.tif 000005
【００６０】
このように、動き検出センサ２７を用いる場合、スイング動作に限らない任意のカメラ移動に対するフレキシブルな予測が可能なる。また、前値の存在しない時刻ｔ＝０における予測等も可能となる。なお、動き検出センサ２７は、撮像装置１０で手振れ補正等を行うために設けられている動き検出センサを利用してもよい。
【００６１】
＜３．広角画像生成動作＞
図１１，図１２は、予測動きベクトルに基づいてサーチ範囲を設定してローカル動きベクトルの算出を行い、算出したローカル動きベクトルに基づくグローバル動きベクトルを用いて部分画像を設定して広角画像を生成する場合の撮像装置１０の動作を示している。
【００６２】
ステップＳＴ１で撮像装置１０は、スイング開始フラグをリセットする。撮像装置１０の制御部２５は、スイング動作の開始を示すスイング開始フラグをリセットしてステップＳＴ２に進む。
【００６３】
ステップＳＴ２で撮像装置１０は、入力画像を取得する。撮像装置１０の撮像部１２は、撮像画像の生成を行いステップＳＴ３に進む。
【００６４】
ステップＳＴ３で撮像装置１０は、予測動きベクトルを設定する。撮像装置１０の予測動きベクトル設定部１９は、過去の画像間で算出されているグローバル動きベクトルや、グローバル動きベクトルと関数値を用いて予測動きベクトルの設定を行いステップＳＴ４に進む。
【００６５】
ステップＳＴ４で撮像装置１０は、サーチ範囲を決定する。撮像装置１０のローカル動きベクトル算出部１７は、ターゲット画像上におけるターゲットブロックの位置に相当するリファレンス画像上の位置を、ステップＳＴ３で設定された予測動きベクトルに基づいて移動させる。また、ローカル動きベクトル算出部１７は、移動後の位置を基準としてサーチ範囲を決定してステップＳＴ５に進む。
【００６６】
ステップＳＴ５で撮像装置１０は、ローカル動きベクトルを算出する。撮像装置１０のローカル動きベクトル算出部１７は、ターゲット画像上におけるターゲットブロックの画像と、リファレンス画像上のサーチ範囲の画像でマッチング処理を行い、相関の最も高い位置を検出して、ターゲットブロックの動きベクトルを算出する。また、ローカル動きベクトル算出部１７は、ターゲット画像上におけるターゲットブロック毎にローカル動きベクトルを算出してステップＳＴ６に進む。
【００６７】
ステップＳＴ６で撮像装置１０は、グローバル動きベクトルの算出を行う。撮像装置１０のグローバル動きベクトル算出部１８は、ターゲットブロック毎に算出されたローカル動きベクトルからターゲット画像とリファレンス画像間の動きベクトルであるグローバル動きベクトルを算出してステップＳＴ７に進む。
【００６８】
ステップＳＴ７で撮像装置１０は、スイング開始であるか判別する。撮像装置１０の制御部２５は、スイング動作が開始されたか否か判別して、動作が開始されたと判別した場合にはステップＳＴ８に進み、スイング動作が開始されていないと判別した場合にはステップＳＴ１０に進む。なお、スイング動作の開始は、例えば動き検出センサによって撮像装置１０の動き検出を行い、動き検出結果に基づいて判別する。また、シャッター操作が行われてから所定期間が経過した場合にスイング動作の開始と判別することもできる。
【００６９】
ステップＳＴ８で撮像装置１０は、算出されたグローバル動きベクトルが閾値を超えているか判別する。撮像装置１０の制御部２５は、グローバル動きベクトルが閾値を超えていないときはステップＳＴ２に戻り、グローバル動きベクトルが閾値を超えている場合にはステップＳＴ９に進む。すなわち、制御部２５は、スイング動作が行われて画像間のグローバル動きベクトルが閾値を超えたとき、スイング動作が実際に行われたと判別してステップＳＴ９に進む。
【００７０】
ステップＳＴ９で撮像装置１０は、スイング動作開始フラグをセットする。撮像装置１０の制御部２５は、スイング動作の開始を示すスイング開始フラグをセットしてステップＳＴ１０に進む。
【００７１】
ステップＳＴ１０で撮像装置１０は、グローバル動きベクトルを保存する。撮像装置１０の制御部２５は、予測動きベクトル設定部１９で予測動きベクトルを設定できるように、算出されているグローバル動きベクトルを保存してステップＳＴ１１に進む。なお、グローバル動きベクトルは、予測動きベクトル設定部１９に保存させてもよく、メモリ部１６等に保存させるようにしてもよい。
【００７２】
ステップＳＴ１１で撮像装置１０は、エラーが発生しているか判別する。撮像装置１０の制御部２５は、算出されたローカル動きベクトルまたはグローバル動きベクトルの信頼性や、動き検出センサの動き検出結果によって、広角画像の生成でエラーが発生しているか否かを判別する。制御部２５は、エラーが発生していない場合ステップＳＴ１２に進み、エラーが発生した場合ステップＳＴ１５に進む。
【００７３】
ステップＳＴ１２で撮像装置１０は、動作終了であるか判別する。撮像装置１０の制御部２５は、動作終了である場合にはステップＳＴ１３に進む。例えば、制御部２５は、シャッター押し下げ操作が終了された場合、始めてグローバル動きベクトルが所定値を下回った場合、想定される広角画像のサイズが所定サイズを超える場合等のいずれかとなった場合にはステップＳＴ１３に進む。また、制御部２５は、動作終了でない場合にはステップＳＴ２に戻る。
【００７４】
ステップＳＴ１３で撮像装置１０は、画像合成処理を行う。撮像装置１０の画像合成部２０は、算出されたグローバル動きベクトルに基づき、部分画像を繋ぎ合わせたときに繋ぎ部分が連続するように部分画像の領域を設定する。さらに、画像合成部２０は、既に生成されている画像または部分画像が２番目の部分画像であるときは最初の部分画像に対して、設定した部分画像の領域の画像を繋ぎ合わせる合成処理を行い広角画像を生成してステップＳＴ１４に進む。
【００７５】
ステップＳＴ１４で撮像装置１０は、画像を保存する。撮像装置１０は、生成した広角画像をメモリ部に記憶させて処理を終了する。
【００７６】
ステップＳＴ１５で撮像装置１０は、エラーメッセージ表示を行う。撮像装置１０は、発生したエラーに関するメッセージを、例えば表示部２３に表示して処理を終了する。
【００７７】
なお、スイング開始フラグは、算出されたグローバル動きベクトルが閾値よりも大きくなったとき、すなわち撮像装置１０のスイング動作が実際に行われてスイング速度が閾値に応じた速度以上となったときにセットされることになる。したがって、スイング動作が実際に行われているか否かをスイング開始フラグによって判別できる。
【００７８】
撮像装置で連写しながら撮像方向を動かして広角画像を生成するアプリケーション等においては、ユーザビリティの観点から、撮像装置の撮像方向を動かす速度（例えば撮像装置のスイング速度や平行移動速度等）をある一定以上に保ちつつ、リアルタイムでグローバル動きベクトルを算出できることが望ましい。つまり、想定される移動量は大きいことが望ましく、そのうえ処理時間の増加は許容されにくい。ここで、本技術では、グローバル動きベクトルの算出に用いるローカル動きベクトルの算出において、予測動きベクトルを用いてサーチ範囲を設定すると、冗長に広いサーチ範囲を設定しなくともローカル動きベクトルを算出することが可能となる。したがって、ハードウェアの規模を大きくする必要がなく、ローカル動きベクトルの算出に要する処理時間を短くできる。このため、ユーザビリティを低下させることなく、画質の良好な広角画像の生成することが可能となる。
【００７９】
さらに、撮像装置で連写しながら、左右または上下に撮像方向を移動して広角画像を生成するようなアプリケーションだけでなく、任意の撮像装置の動きから超広角な画像を生成する場合に対しても有効である。また、広角画像の生成に留まらず、シーン認識や三次元計測等、広角撮影を応用した技術分野に対しても適用可能である。
【００８０】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００８１】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【００８２】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送する。コンピュータは、このようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【００８３】
また、本技術は、上述した実施の形態に限定して解釈されるべきではない。例えば、撮像装置の動きはスイング動作に限らず平行移動動作等であってもよい。この実施の形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【００８４】
この技術を用いた画像処理装置や画像処理方法およびプログラムでは、ターゲット画像中に設定された複数画素からなるターゲットブロックについて動きベクトルを算出する場合、ターゲット画像よりも過去の画像間で算出されている動きベクトルを用いて予測動きベクトルが設定される。さらに、ターゲットブロックの位置と予測動きベクトルに基づいて、リファレンス画像上にサーチ範囲内を設定する。したがって、冗長に広いサーチ範囲を設定する必要がなく、ハードウェア規模を拡大しなくともターゲットブロックの動きベクトルを速やかに算出できるので、例えば広角画像の生成において速いスイング動作等に対応することが可能となり、ユーザビリティを低下させることなく、画質の良好な広角画像を生成できる。このため、デジタルスチルカメラやビデオカメラなどの撮像装置、および、撮像された映像の記録・再生装置において、複数枚の撮影画像から広角画像を生成する機能を有する場合に適している。
【符号の説明】
【００８５】
１０・・・撮像装置、１１・・・撮像光学系、１２・・・撮像部、１３・・・タイミング信号生成部（ＴＧ部）、１４・・・前処理部、１５・・・画像処理部、１６・・・メモリ部、１７・・・ローカル動きベクトル算出部、１８・・・グローバル動きベクトル算出部、１９・・・予測動きベクトル設定部、２０・・・画像合成部、２１・・・記録部、２２・・・解像度変換部、２３・・・表示部、２５・・・制御部、２６・・・入力部、２７・・・動き検出センサ、２９・・・バス
【図１】
2012151796.tif 000006
【図２】
2012151796.tif 000007
【図３】
2012151796.tif 000008
【図４】
2012151796.tif 000009
【図５】
2012151796.tif 000010
【図６】
2012151796.tif 000011
【図８】
2012151796.tif 000012
【図９】
2012151796.tif 000013
【図１０】
2012151796.tif 000014
【図１１】
2012151796.tif 000015
【図１２】
2012151796.tif 000016
【図７】
2012151796.tif 000017