(57)【特許請求の範囲】
【請求項１】
撮像手段によって取得された入力画像を用いてリアルタイムにパノラマ画像を生成するするパノラマ画像生成装置であって、
前記入力画像の輝度画像を生成する輝度画像生成手段と、
フィルタ処理を施して前記輝度画像の複数の解像度レベルの画像データを作成する多重解像度画像生成手段と、
前記輝度画像の動きを計算するための基準となる基準画像および当該基準画像の基準位置からの動きを表す絶対動きデータを保存する基準画像データ保存手段と、
入力画像の輝度画像を登録する手段であって、所定の条件を満たした画像のみを新たな登録輝度画像として追加していく輝度画像登録手段と、
新たに取得された入力画像の輝度画像を比較画像として、該比較画像と基準画像の最低解像度の画像データについて、基準画像と比較画像間の動きデータを平行移動量として算出する全範囲マッチング処理を実行することによって前記比較画像の動きデータを算出し、該動きデータをもとに、前記比較画像と重なりを有する登録輝度画像であって前記比較画像の移動方向の重なり度合いと垂直方向の重なり度合いが夫々ある一定値の範囲内にある一または二以上の登録輝度画像を抽出する処理と、前記抽出した登録輝度画像全てまたは前記抽出した登録輝度画像をさらに所定の条件によって絞り込んだ登録輝度画像と前記比較画像について、前記全範囲マッチング処理で算出した動きデータを初期値として、アフィンパラメータを用いて前記最低解像度よりも解像度レベルの高い画像データに対して順にブロックマッチング処理を実行することによって、前記比較画像の前記基準位置からの多自由度の絶対動きデータを算出する動きデータ演算手段と、
当該動きデータ演算手段によって算出された絶対動きデータを用いて前記入力画像を順次重ね合わせてパノラマ画像を生成する画像合成手段と、
最初に取り込んだ入力画像の輝度画像を基準画像として設定する一方、入力画像の取得ごとに順次、前回の比較画像を今回の基準画像に設定し、あるいは、基準画像とのずれが所定値以上となった比較画像を新たな基準画像として設定する基準画像設定手段と、
を備え、
前記輝度画像登録手段は、最初の基準画像を登録輝度画像として登録する一方、直前に登録された輝度画像と前記比較画像とのずれが所定値以上か否かを判定して、所定値以上の場合は、当該比較画像を前記登録輝度画像として登録すると共に前記動きデータ演算手段で算出した該比較画像の前記絶対動きデータを登録し、登録輝度画像同士ある幅の重なりを持った複数の画像群として構成することを特徴とするパノラマ画像生成装置。
【請求項２】
前記画像合成手段は、合成する入力画像を複数のブロックないし画素単位に分割し、該ブロックあるいは画素の入力画像中の位置に基づいて加重平均処理により合成比率を変えることを特徴とする請求項１に記載のパノラマ画像生成装置。
【請求項３】
撮像手段によって取得された入力画像を用いてリアルタイムにパノラマ画像を生成するプログラムであって、
前記入力画像の輝度画像を生成する輝度画像生成処理と、
フィルタ処理を施して前記輝度画像の複数の解像度レベルの画像データを作成する多重解像度画像生成処理と、
前記輝度画像の動きを計算するための基準となる基準画像および当該基準画像の基準位置からの動きを表す絶対動きデータを保存する基準画像データ保存処理と、
入力画像の輝度画像を登録する処理であって、所定の条件を満たした画像のみを新たな登録輝度画像として追加していく輝度画像登録処理と、
新たに取得された入力画像の輝度画像を比較画像として、該比較画像と基準画像の最低解像度の画像データについて、基準画像と比較画像間の動きデータを平行移動量として算出する全範囲マッチング処理を実行することによって前記比較画像の動きデータを算出し、
該動きデータをもとに、前記比較画像と重なりを有する登録輝度画像であって前記比較画像の移動方向の重なり度合いと垂直方向の重なり度合いが夫々ある一定値の範囲内にある一または二以上の登録輝度画像を抽出する処理と、前記抽出した登録輝度画像全てまたは前記抽出した登録輝度画像をさらに所定の条件によって絞り込んだ登録輝度画像と前記比較画像について、前記全範囲マッチング処理で算出した動きデータを初期値として、アフィンパラメータを用いて前記最低解像度よりも解像度レベルの高い画像データに対して順にブロックマッチング処理を実行することによって、前記比較画像の前記基準位置からの多自由度の絶対動きデータを算出する動きデータ演算処理と、
当該動きデータ演算処理によって算出された絶対動きデータを用いて前記入力画像を順次重ね合わせてパノラマ画像を生成する画像合成処理と、
最初に取り込んだ入力画像の輝度画像を基準画像として設定する一方、入力画像の取得ごとに順次、前回の比較画像を今回の基準画像に設定し、あるいは、基準画像とのずれが所定値以上となった比較画像を新たな基準画像として設定する基準画像設定処理と、を含み、
前記輝度画像登録処理は、最初の基準画像を登録輝度画像として登録する一方、直前に登録された輝度画像と前記比較画像とのずれが所定値以上か否かを判定して、所定値以上の場合は、当該比較画像を前記登録輝度画像として登録すると共に前記動きデータ演算手段で算出した該比較画像の前記絶対動きデータを登録し、登録輝度画像同士ある幅の重なりを持った複数の画像群として構成すること特徴とするコンピュータ実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数枚の画像がつながったパノラマ画像を作成するためのパノラマ画像生成装置およびプログラムに関するものである。
【背景技術】
【０００２】
近年、デジタルカメラ等を用いて異なる視野を撮影した複数の画像をコンピュータ処理によって合成して、１枚の広視野のパノラマ画像を作成する技術が提案されている。
【０００３】
たとえば、特許文献１では、パノラマ画像モードに設定されたカメラが撮像した高解像度の画像フレームを低解像度化してビデオフレームを生成し、カメラのパンニングに従って、基準ビデオフレームと新しいビデオフレームとの間の相対的な動きを推定し、その動き推定値が所定の閾値を越えると、新たな高解像度画像フレームを取得して、そのときのビデオフレームを新しい基準ビデオフレームにしている。そして、基準ビデオフレームの動き推定値を初期値として高解像度の画像フレームの相対的位置を演算して、高解像度の画像フレームを綴じ合わせて（スティッチングして）、モザイク（パノラマ画像）を構築する手法が記載されている。
【０００４】
また、特許文献２では、撮像エリアを徐々にずらしながら被写体を撮影し、撮影画像の局所特徴点の移動先を連続撮影された画像上で追跡することにより、連続撮影された画像を一枚のパノラマ画像に合成する方法が記載されている。
【特許文献１】特開２００５−１５１５６３号公報
【特許文献２】特開２００４−２４７７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、パノラマ画像（パノラマキャンパス）に新たに取得した高解像度画像をスティッチングしてパノラマ画像を生成する場合、距離や角度等の違いによる画像間の歪みをいかに補正して自然なパノラマ画像をリアルタイムに生成するかが問題となる。
【０００６】
上記の各特許文献のように水平または垂直の一方向にパンニングするのみならば、順次対応する特徴点をもとに新たな画像を補正してスティッチングしていけば良いが、水平、垂直、斜めあるいは移動方向を変えてカメラを動かして、２次元的に広がりをもったパノラマ画像を作成するような場合、何フレームか前に撮像した画像との間でスティッチングをする必要があり、このような場合に誤差が蓄積してつなぎ目が不自然なパノラマ画像にならないようにしなければならない。
【０００７】
また、特徴点の移動を追跡してパノラマ画像を合成するような場合は、いかに過去に検出した特徴点と比較して精度の高い位置合わせを行うかが問題となる。
【０００８】
特に、上記の従来技術のように一方向のみの移動によってパノラマ画像を作成するような場合は、直前の基準フレームや特徴点等のデータと比較し、過去のデータは削除することができるためにメモリ容量はあまり問題にならないが、２次元的に広がりをもったパノラマ画像を作成するような場合は過去のデータを保持する必要があり、いかにメモリ容量を減らし、コンピュータの処理負荷を軽くするかという問題がある。
【０００９】
本発明は、上述のかかる事情に鑑みてなされたものであり、コンピュータに負荷をかけず、少ないメモリ容量で２次元的に広がりをもった自然なパノラマ画像を生成することのできるパノラマ画像生成装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明に係わるパノラマ画像生成装置は、撮像手段によって取得された入力画像の輝度画像を生成する輝度画像生成手段と、前記輝度画像の動きを計算するための基準となる基準画像および当該基準画像の基準位置からの動きを表す絶対動きデータを保存する基準画像データ保存手段と、新たに取得された入力画像の輝度画像を比較画像として、基準画像に対する相対動きデータを計算し、基準画像の絶対動きデータをもとに前記比較画像の基準位置からの絶対動きデータを算出する動きデータ演算手段と、当該算出された絶対動きデータを用いて入力画像を重ね合わせてパノラマ画像を合成する画像合成手段と、所定の条件に基づいて前記比較画像を新たな基準画像として設定する基準画像設定手段と、を備えたことを特徴とする。
【００１１】
本発明では、高解像度の入力画像から輝度画像を作成し、この輝度画像（比較画像）の基準位置からの動きデータを算出して、高解像度のパノラマ画像を生成する。このとき、動きデータ演算手段は、まず比較画像の基準画像に対する相対的な動きデータを計算し、次に基準画像と共に保存されている当該基準画像の基準位置からの動きデータ（絶対動きデータ）を用いて、比較画像の絶対動きデータを算出する。この比較画像の絶対動きデータを用いて、入力画像を順次スティッチングしてパノラマ画像を生成する。また、所定の条件に基づいて比較画像を新たな基準画像として設定し、この比較画像の絶対動きデータと共に保存する。
【００１２】
所定の条件としては、たとえば、入力画像の取得ごとに順次、前回の比較画像を今回の基準画像にしていくという手法や、基準画像とのずれが所定値以上となった比較画像を新たな基準画像として設定するという手法がある。後者の手法は、相対動きデータを求める際の演算誤差が前者に比べて蓄積しにくいというメリットがある。
【００１３】
なお、絶対動きデータは、基準位置からの動きが算出可能であれば足りる趣旨であり、画像ごとに絶対動きデータを関連付けて保存する場合のみならず、取得順に画像間の相対動きデータを保存しておき、相対動きデータの履歴を追うことによって、基準位置からの動きが算出できるような場合も含む趣旨である。
【００１４】
また、本発明に係わるパノラマ画像生成装置は、入力画像の輝度画像を登録する手段であって、直前に登録された輝度画像と前記比較画像とのずれが所定値以上か否かを判定して、所定値以上の場合は、当該比較画像とその動きデータを登録する輝度画像登録手段を備え、前記動きデータ演算手段は、前記輝度画像登録手段によって登録されている輝度画像のうち、前記比較画像の移動方向と垂直方向の重なり度合いに基づいて一または二以上の輝度画像を抽出して、前記基準画像と当該抽出された輝度画像とを用いて、前記比較画像の前記相対動きデータを算出することを特徴とする。
【００１５】
本発明では、最初に作成した輝度画像およびその後は所定以上のずれ量のある輝度画像のみを順次その動きデータと共を保存し、基準画像と共に比較画像の動きデータの算出に使用する。これによって、入力画像の精度の高いスティッチング処理が可能となり、また輝度画像をすべて保存する必要がなくなりメモリ容量を節約することができる。
【００１６】
また、本発明に係わるパノラマ画像生成装置は、輝度画像の特徴点を検出する特徴点群検出手段と、前記検出された特徴点の特徴量および座標データを保存する手段とを備え、
前記動きデータ演算手段は、前記比較画像の特徴点に基づいて、前記比較画像の前記相対絶対動きデータを算出することを特徴とする。
【００１７】
本発明では、パノラマ画像生成のために、輝度画像の特徴点のマッチングを行って対応する特徴点間の動きデータによって画像の移動量や方向を算定する。このとき、輝度画像の基準画像の特徴点を他の特徴点群と識別可能に保存しておき、最新の入力画像の輝度画像を比較画像として、比較画像の動きデータを計算して、その動きの度合い、すなわち、画像間のずれ量にもとづいて新たな基準画像を設定するようにする。輝度画像ではなく、特徴点データによって、パノラマ画像生成のための画像間の移動量を管理するので、さらにメモリ容量を節約することができる。また、単に基準画像と比較画像の特徴点の動きデータを計算するのではなく、算出した動きデータをもとに保存している特徴点群の中に比較画像の特徴点に対応する点が存在するか否かを判定し、存在する場合は、さらにその特徴点間の動きデータを計算する。これにより、合成の際にさらに精度の高い歪み補正処理が可能となり、品質の高いパノラマ画像を生成することができる。
【００１８】
特徴点は、いわゆる点で管理する場合のみでなく、特徴点およびその周囲のブロックとして管理するような場合も含む趣旨である。
【００１９】
本発明に係わるパノラマ画像生成装置では、さらに、前記画像合成手段は、合成する入力画像を複数のブロックないし画素単位に分割し、該ブロックあるいは画素の入力画像中の位置、かつ／または、入力画像に対応する絶対動きデータの変化によって合成比率を変えることを特徴とする。
【００２０】
本発明では、カメラの移動等による画像ぶれやレンズのひずみによる画像の歪みを、加重平均処理等によって合成比率を変えることにより、鮮明な部分の重み付けを大きくして、品質の高いパノラマ画像の生成を可能にする。また、一定量のずれ量があるごとに強く合成し、その間は弱く合成することによって、鮮明な画像を生成することができる。
【００２１】
また、本発明に係わるパノラマ画像生成プログラムは、撮像手段によって取得された入力画像を用いてパノラマ画像を生成するプログラムであって、前記入力画像の輝度画像を作成する処理と、輝度画像間の動きを計算するための基準となる基準画像および当該基準画像の基準位置からの動きを表す絶対動きデータを保存する処理と、新たに取得された入力画像の輝度画像を比較画像として、基準画像に対する相対動きデータを演算し、基準画像の絶対動きデータをもとに前記比較画像の基準位置からの絶対動きデータを演算する動きデータ演算処理と、前記動きデータ演算処理によって算出された比較画像の絶対動きデータを用いて入力画像を重ね合わせてパノラマ画像を合成する画像合成処理と、所定の条件に基づいて前記比較画像を新たな基準画像として設定する基準画像更新処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００２２】
以上、本発明によれば、輝度画像であるスナップショット画像で動きを検出し、その動きデータを用いてパノラマ画像を生成するのでコンピュータに負荷をかけず、少ないメモリ容量で２次元的に広がりをもった自然なパノラマ画像を生成することができる。また、特徴点の検出においては、直前の基準画像の特徴点のみでなく、その周辺の特徴点との動きデータ含めて位置合わせを行うので精度の良い画像合成（スティッチング）が可能となる。
【００２３】
さらに、画像合成の際に被写体ぶれなど合成画像の劣化につながる条件を設定し、条件に当てはまる画像やブロックを加重平均処理によりあまり強く合成しないようにすることにより、品質の良いパノラマ画像を作成することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態を説明する。図１は、第１の実施の形態によるパノラマ画像生成装置の機能ブロック図である。
【００２５】
ここで、パノラマ画像生成装置１は、写真を撮影するための撮像手段１１、撮像した画像データを取り込んで動きベクトルやアフィンパラメータなどの動きデータを計算し、パノラマ画像を生成する演算処理部１３、パノラマ画像を表示する表示手段１２、および入力した画像データ、生成した動きデータやパノラマ画像等の種々のデータを保存する記憶部１４を備えている。
【００２６】
また、演算処理部１３は、撮像手段１１で撮影した画像データを入力して記憶部１４に保存する画像データ入力手段３１、入力された各画像データをもとに動きデータを検出するための元となる輝度画像を作成する輝度画像生成手段３２、フィルタ処理を施して複数の解像度レベルの画像データを作成する多重解像度画像生成手段３３、画像の特徴点を抽出する画像特徴点抽出手段３９、輝度画像の多重解像度画像データや画像特徴点を用いて動きデータを計算する動きデータ演算手段３６、新たに取得した輝度画像（比較画像）の動きを計算するための基準となる画像（基準画像）を設定する基準画像設定手段３４、この基準画像と過去に登録した輝度画像とのずれ量を計算して、そのずれ量に基づいて基準画像およびその動きデータをスナップショットとして登録する輝度画像登録手段３５、動きデータをもとに入力画像を順次スティッチングしていきパノラマ画像を生成する画像合成手段３７、および、パノラマ画像を出力する合成画像出力手段３８を備えている。各手段３１〜３９はＣＰＵの機能として処理実行されるものである。また、各手段は、分割して設ける必要は無く、それぞれ機能を兼ねるようにしてもよい。
【００２７】
ここで、記憶部１４に保存される各データの説明をする。
入力画像データ保存手段５１に保存されている入力画像データは、幅w, 高さh としたときw×h 個の格子を持ち、各格子に画素値（例えばRGB, YCbCr）の値を持つデータである。
【００２８】
輝度画像データ保存手段５２に保存されている輝度画像データは、画素値として輝度成分の値を有する画像データである。また、必要により入力画像データをもとに格子を間引くあるいは平均化するなどして縮小される。
【００２９】
多重解像度保存手段５３に保存されている多重解像度データは、フィルタ処理によって、複数レベルの解像度を有するものである。
【００３０】
また、画像の動きデータ保存手段５７に保存されている動きデータとしては、通常アフィンパラメータや動きベクトルを用いる。なお、動きベクトルとして、複数の動きベクトル点、動きベクトル線、動きベクトル領域から構成される動きベクトルメッシュデータを用いるようにしても良い。
【００３１】
合成画像データ保存手段５８に保存されている合成画像データは、入力画像データ５１と同様の解像度と画素値を有し、動きデータ５５をもとに対応する点を合わせてスティッチングされた画像データである。
【００３２】
次に上記の構成を有するパノラマ画像生成装置１を動作させることによって動きデータを計算する方法について説明する。
【００３３】
（画像データ入力処理）
まず、撮像手段１１によって取得された画像データは、画像データ入力手段３１によって、入力画像データ保存手段５１に保存される。この入力画像データは、入力画像データは、幅w, 高さh としたときw×h 個の格子を持ち、各格子に画素値（例えばRGB, YCbCr）の値を持つデータである。
【００３４】
（輝度画像生成処理）
次に、輝度画像生成手段３２を起動して、入力画像データ保存手段５１に保存されている入力画像をもとに必要により画素を一定の間隔で間引き、間引いた画素の平均をとって縮小し、動きデータを検出するための元となる輝度画像を作成する。元画像のサイズ等によっては、縮小処理は行われず、輝度画像への変換のみが行われる。作成された輝度画像は、輝度画像データ保存手段５２に保存される。
【００３５】
（多重解像度画像生成処理）
次に、この輝度画像は、多重解像度画像生成手段３３によって、フィルタ処理されて低解像度の画像が作成され多重解像度画像データ保存手段５３に保存される。
【００３６】
多重解像度画像生成手段３３は起動されると輝度画像に対して、必要に応じてエッジ画像の生成処理等を行い、解像度レベル０（最高解像度）の画像を作成し、さらに、解像度レベル０の画像に対してぼかしフィルタや平均値フィルタなどを適用して解像度の低い画像データを作成し、これら作成した多重解像度画像データを多重解像度画像データ保存手段５３に格納する。なお、多重解像度画像は、ぼかしフィルタ等を使用する代わりに、一定の比率で縮小することによって解像度を段階的に低くするようにしても良い。
【００３７】
（画像特徴点抽出処理）
画像特徴点抽出手段３９は、輝度画像のエッジやコーナの強さによって画像特徴点を抽出する。なお、画像特徴点がある位置に生成されると、その近傍に別の画像特徴点は生成されないようにすると良い。これは画像中のある位置の動きデータは、その近傍の動きデータとほぼ同じ値を持つことが予想され、また画像全体の動きを検出するためには、全体にまんべんなく画像特徴点を分布させるのが良いからである。特徴点抽出処理は多重解像度画像のうちブロックマッチング処理を行う解像度の画像についてのみ行われる。また、後述の動きデータ演算処理終了後に破棄される。
【００３８】
（動きデータ演算処理）
動きデータ演算手段３６は、輝度画像データ保存手段５３に保存されている輝度画像のうち、基準画像と比較画像と一または二以上の登録輝度画像を用いて、次の手順に従って動きデータを計算する。なお、比較画像は、撮像手段１１によって新たに取得した入力画像の輝度画像であり、基準画像は、比較画像の動きを演算する基準となる画像である。基準画像は、最初に取得した輝度画像がまず基準画像として設定され、以降は先の基準画像に対してずれ量が所定値以上になったときに新たな基準画像として設定される。
【００３９】
次に、基準画像に対する比較画像の動き検出する動き検出処理について説明する。
<ステップＳ１>まず、輝度画像である比較画像と基準画像の粗解像度（最低解像度）の画像データを用いて全範囲マッチングまたはブロックマッチングを行い、２枚の画像間の平行移動量(dx, dy)を求める。
【００４０】
最粗解像度をせいぜい数十ピクセル×数十ピクセル程度にすれば、全範囲マッチングを用いてもそれほど計算負荷がかからない。またパノラマ撮影のためのパンニング等の動きにおいては平行移動量が全体の動きの中で支配的であるため、平行移動量(dx, dy)のみを求めればよい。
【００４１】
以下、全範囲マッチング処理の手順を説明する。
まず、局所明度画像生成処理として、以下の式で画像の局所的な明るさを算出する。
【数１】
0004377932.tif 000002
【００４２】
ここで、I(x, y) は入力画像の座標 (x, y) における明るさ、I'(x, y) は出力局所明度画像の座標 (x, y)における明るさ、s は局所領域のサイズを決める定数である。この式で与えられる局所明度は、あるピクセルの周囲の平均明度に対する相対的な明度となる。この処理により、パノラマ撮影のためのカメラの移動で光のあたり具合が変化したり、品質の悪い撮像レンズ等によって生じる画像周囲部の暗さを補正することができる。
【００４３】
次に、最適移動量計算処理で画像I1 から画像I2  への移動量  (dx, dy) を求める。まずI1からI2  へ (dx, dy) 移動したときの移動エネルギー E(dx, dy) を以下のように定義する。
【数２】
0004377932.tif 000003
【００４４】
ここでWは画像の幅、Hは画像の高さを表すものとする。E(dx, dy) は  (dx, dy)  ずらしたときの画像I1とI2の共通部分における、ピクセル値の差分の絶対値を平均したものになる。ここで、E(dx, dy)はピクセル値の差分の二乗和を平均したものなどにしてもよい。
【００４５】
E(dx, dy) が小さければ小さいほど画像同士が似ているということであり、その値が最小となるような(dx, dy) を出力する。
【００４６】
以上の処理によって、動きデータとして画像Ｉ１から画像Ｉ2への移動量（ｄｘ、ｄｙ）を求める。
【００４７】
<ステップＳ２（登録輝度画像を用いた動きデータの補正処理）>
上記ステップＳ１によって、基準画像と比較画像との間のおおよその動きデータを算出した後、多重解像度データ保存手段５３に保存されている登録輝度画像の中で、比較画像と重なりを持つ、一または二以上の登録輝度画像を抽出する。登録輝度画像を効果的に抽出するためには、まず、比較画像と基準画像との動きデータから、比較画像の移動方向がわかるので、その移動方向に対して垂直方向にずれているが、移動方向に対しては重なり度合いの大きいような登録輝度画像を抽出するようにすると良い。例えば、図３（Ａ）で入力画像がｘ方向に動いている場合、ｙが画像サイズ（図中「ｂ」）の１／８〜５／８程度、ｘが画像幅（図中「ａ」）の１／４以下の登録画像を抽出する。
【００４８】
条件を満たす登録輝度画像が複数抽出されたときは、これら複数の登録輝度画像を用いて以降の処理を実行しても良いが、たとえば、最も過去の登録輝度画像を優先するとか、最も離れている登録輝度画像同士を使用するなど、所定の条件によって絞り込むようにしても良い。
【００４９】
そして、登録輝度画像とともに対応する絶対動きデータを取得し、それをもとに基準画像からの相対動きデータを計算しておく。この相対動きデータは後のステップで利用される。ステップＳ２は２次元的に広がりを持つようなパノラマ画像を作成するときのみ必要となる。
【００５０】
<ステップＳ３>次に、前段階で求めた動きデータを入力画像の動きデータの初期値とし、特徴点抽出処理で抽出した特徴点についてブロックマッチング処理を実行する。ブロックマッチング処理において、たとえば、国際公開公報（ＷＯ２００６／０７５３９４）に記載されている技術を用いるようにしても良い。すなわち、入力画像の多重解像度処理を行って、解像度の低い画像から解像度の高い画像へと、順にその動きデータを求める。このとき、前段階で求めた動きデータを次の段階（１レベル解像度の高い画像）の動きデータの初期値として使用するのである。
【００５１】
なお、動きデータについては、ブロックマッチング処理で求めた各ブロック（各特徴点）の動きを、重み付き最小二乗法で処理することによってアフィンパラメータを求めるようにする。
【００５２】
これにより、最低解像度画像によって求めた２自由度の動きデータや一つ前の解像度で求めた多自由度の動きデータをもとに、さらに高精度な多自由度の動きデータを算出することができる。
【００５３】
この場合の式は以下の如くである。
【数３】
0004377932.tif 000004
【００５４】
ここで、
【数４】
0004377932.tif 000005
【数５】
0004377932.tif 000006
【数６】
0004377932.tif 000007
【００５５】
上記の処理によって求めたアフィンパラメータを、次の解像度における動きデータの初期値として用いる。
【００５６】
ステップＳ２によって登録輝度画像が一以上選択された場合は、登録輝度画像の基準画像からの相対動きデータを元に、比較画像と重なりをもつような登録輝度画像上の特徴点を検出する。そして、当該特徴点ついてもブロックマッチング処理を行い、そのブロックの動きデータについても重みつき最小二乗法の処理の際の対応座標として加えて、アフィンパラメータを求めるようにする。その際、登録輝度画像の特徴点の重みｒｉと基準画像の特徴点の重みｒｉとの比率によって、折り返して撮影した際の歪みの補正率が変化する。経験的に、登録輝度画像の特徴点の重みを基準画像のものより若干大きめに設定しておくと良い。
【００５７】
<ステップＳ４>次に最終解像度（通常は解像度レベル０）か否かを判断して、最終解像度でなければ、Ｌ＝Ｌ−１として、すなわち、解像度レベルが一つ上の解像度の画像データについてステップＳ３以降の処理を繰り返す。最終解像度になった場合、入力輝度画像の動きデータが計算されているので、その動きデータを元の高解像度の画像に対応する動きデータに変換してから、動きデータ保存手段５７に保存する。
【００５８】
なお、上記の処理で算出した動きデータは、基準画像に対する比較画像の動きデータ、すなわち相対動きデータである。パノラマ画像の生成においては、基準位置（たとえば最初の基準画像）を保持しておき、常にその基準位置からの動きデータ（絶対動きデータ）を求めることにより、後述する画像合成処理がしやすくなり、誤差の蓄積も少なくして高品質のパノラマ画像を生成することができる。
【００５９】
（画像合成処理）
次に、上記処理によって求めた絶対動きデータをもとに画像のスティッチング処理を実行し、画像を合成して、パノラマ画像（パノラマキャンパス）を作成する。画像合成処理によって、最新の入力画像を含めたパノラマ画像を作成した時点で、その入力画像を削除する。
【００６０】
画像合成処理において、たとえば、円筒写像を用いた歪み補正を行い、対応するピクセルあるいはブロックごとに加重平均処理によって画像合成を実行する。重み付けは入力画像の中心からの距離を用いて行う。また、動きに応じて周期的に入力画像全体の重みを変えるようにしても良い。このとき手ぶれ検出を行って、その手ぶれ量によって、重み付けを変えるようにしても良い。手ぶれ検出手法としては、たとえばジャイロセンサや所定のボケ関数とのマッチング度合い、あるいは、ソフトウェアによる動き検出などがある。
【００６１】
（基準画像設定処理）
基準画像設定手段３４は、まず、最初に取り込んだ入力画像の輝度画像を基準画像として設定し、次に取り込んだ入力画像の輝度画像を比較画像とし、動きデータ演算手段３６によって動きデータの計算を実行する。また、最初の基準画像をもとにパノラマ画像作成のための基準位置として、以降の動きデータは、この基準位置からの動きデータ（絶対動きデータ）に換算してスティッチング処理を実行する。
【００６２】
また、基準画像設定手段３４は、順次、前回の比較画像を今回の基準画像として設定していってもよいし、所定量以上の動き（ずれ）があったときに設定してもよい。
【００６３】
（輝度画像登録処理）
輝度画像登録手段３５は、上記の処理によって設定した最初の基準画像を登録輝度画像５６として保存する。その後、順次、最後に登録した登録輝度画像に対する基準画像の動きを検出し、所定量以上の動き（ずれ）があったときに、この基準画像およびこの基準画像の絶対動きデータを追加登録する。絶対動きデータは最初に設定した基準位置からの動きデータをあらわし、通常は最初に登録された基準画像からの動きデータとする。
【００６４】
登録輝度画像は図２に示すように、画像同士、ある幅の重なりをもった複数の画像群として構成される。この登録輝度画像群を以降の説明においてスナップショットという。なおスナップショットとしては、輝度画像データと共に絶対動きデータも一緒に保存するが、動きデータは、上述の縮小輝度画像の動きデータではなく、ステップＳ４の処理の結果得られる高解像度の入力画像の動きデータをもとに作成された多自由度の動きデータを保存するようにすると良い。
【００６５】
まず、比較画像と登録輝度画像の絶対動きデータから画像間の距離を計算し、どの登録輝度画像からも所定量以上離れたことを検出して、そのときの輝度画像を新たなスナップショットとして登録する。スナップショットとして登録するか否かの判断基準となるずれ量、すなわち図３（Ｂ）におけるｘ，ｙは、共に画像サイズ（図中のそれぞれ「ａ，ｂ」）の約１／４程度にするのが好ましい。
【００６６】
以上の処理によって、パノラマ画像は、撮像手段１１によって入力画像を取得するごとにスティッチング処理を実行し、処理終了後、入力された画像データは削除し、スナップショットは所定量離れたときの輝度画像のみを保存する。
【００６７】
本実施形態の形態によれば、高解像度の入力画像から作成された輝度画像については常に保存していくのではなく、所定の条件を満たした画像のみを保存し、新たな登録輝度画像（スナップショット）として追加していく。また、基準画像をもとに比較画像の動きを検出して、その動きデータをもとに、スナップショットの中から比較画像と重なりを有する登録輝度画像を抽出して、この登録輝度画像との間で動きデータを算出する。これらのデータを用いて入力画像をパノラマ画像へスティッチングするので、品質の高いパノラマ画像を生成することができる。  
【００６８】
特に、リアルタイムにパノラマ画像を生成するときには、コンピュータの負荷を減らし、マッチングの精度をいかに高めるかが問題となるが、上述の如く、低解像度の輝度画像においては、所定範囲の２次元全範囲マッチング処理を行い、さらに、高解像度の輝度画像では一つ粗い解像度のマッチング結果（動きデータ）を元に多自由度の動きデータを計算することによって、精度の高いスティッチングが可能となる。
【００６９】
次に、第２の実施の形態を説明する。本実施の形態は、スナップショットを保持する替わりに輝度画像の特徴点データを保持し、特徴点およびその周辺のブロック群の動きデータを求めることによって、入力画像の動きデータを検知してスティッチング処理を実行するものである。
【００７０】
図４は、本実施の形態によるパノラマ画像生成装置１の機能ブロック図である。図１との違いは、輝度画像登録手段３５および登録輝度画像保存手段５６をなくし、画像特徴点抽出手段３９によって抽出された特徴点データを保存すべきか否かを判定する画像特徴点選択手段４０と、画像特徴点選択手段４０によって選択された画像特徴点データのみを保存する画像特徴点群データ保存手段５９を追加したことである。その他は、図１と同様であるので、同一要素には同一符号を付して説明を省略する。
【００７１】
また、画像特徴点群データは、画像データの特徴点データの集合であり、各画像特徴点はその座標値(x,y) や、その特徴点の強さを表す特徴量などから構成される。またその際、特徴点データに関連付ける形で、その特徴点の周りのピクセルのみをブロックの形でその輝度値とともに保存しておき、輝度画像および多重解像度画像を破棄するようにすると良い。
【００７２】
第１の実施の形態で説明したように、輝度画像生成処理の後に、画像特徴点抽出手段３９を起動して画像特徴点抽出処理を実行するが、その検出した画像の特徴点データは動き検出処理終了後に破棄されることなく、画像特徴点選択手段４０によって選択された各特徴点の絶対動きデータとともに、画像特徴点群データ保存手段５９に保存される。このことにより、画像特徴点群データには直前のフレームのみならず、過去のフレームの特徴点群データも保存されることになる。選択のしかたとしては、全部残す、特徴量の大きいもののみを残す、所定値以上はなれたもののみを残す、などがある。また、登録後一定時間経ったものを削除するようにしても良い。
【００７３】
次に、動きデータ演算処理において、動きデータ演算手段３６は、上記第１の実施の形態で説明したステップＳ１を実行した後、登録輝度画像がないためステップＳ２をスキップする。その後、ステップＳ３のブロックマッチング処理において、画像特徴点群データ５９を参照して輝度画像である比較画像の特徴点と対応する点を検索する。対応する点を探索する際には、比較画像の前解像度の相対動きデータから求めた絶対動きデータと、各特徴点の絶対動きデータを比較し、特徴点が比較画像内にある場合に、その絶対動きデータの差分を初期値として探索を行う。
【００７４】
そして、上述のステップＳ３、ステップＳ４を実行することによって、対応する特徴点およびその周辺のブロック群ごとに動きデータを求める。
【００７５】
以上の処理の結果、図５（Ａ）に示す輝度画像の特徴点（図中○△×）による動きデータをもとに高解像度画像の特徴点および周囲のブロック群の動きデータを求め、この動きデータをもとに歪み補正を実施して図５（Ｂ）に示すようにスティッチング処理を行って、所定サイズのモザイクパネル（図中網がけないし灰色に表示されている部分）からなるパノラマキャンパスを生成する。
【００７６】
以上、本実施の形態によれば、パノラマ画像作成のための撮像画像の動きを輝度画像の特徴点によって求めるため、撮像時の複雑な動きについても精度よく追従して、良質のパノラマ画像を生成することができる。特に、輝度画像によって特徴点を検出し、特徴量の大きさに基づいて合成比率を変えることによって、マッチングミスの影響を小さくして、良質のパノラマ画像を得ることができる。
【００７７】
また、比較画像の特徴点と過去の画像特徴点群データとのマッチングを行うので、スティッチング処理の際に、過去に取得した輝度画像の特徴点も含んだ精度の高い位置あわせが可能となる。
【産業上の利用可能性】
【００７８】
本発明は、パーソナルコンピュータ等の汎用計算機で実現できるほか、デジタルカメラやデジタルカメラ機能付きの携帯電話などで実現することができる。
【図面の簡単な説明】
【００７９】
【図１】本発明の第１の実施の形態によるパノラマ画像生成装置の機能ブロック図である。
【図２】図１の輝度画像データ保存手段５２に保存されるスナップショットの位置的関係の説明図である。
【図３】図３（Ａ）は動きデータ演算手段３６による登録輝度画像の抽出条件の説明図、図３（Ｂ）は輝度画像登録手段３５によって基準画像として登録するか否かを判定するずれ量の説明図である。
【図４】本発明の第２の実施の形態によるパノラマ画像生成装置の機能ブロック図である。
【図５】図５（Ａ）は複数のスナップショットの特徴点による位置合わせ処理の概念図、図５（Ｂ）は位置あわせの結果に基づくパノラマキャンパスの生成処理の概念図である。
【符号の説明】
【００８０】
１  パノラマ画像生成装置
１１  撮像手段
１２  表示手段
１３  演算処理部
１４  記憶部
３１  画像データ入力手段
３２  輝度画像生成手段
３３  多重解像度画像生成手段
３４  基準画像設定手段
３５  輝度画像登録手段
３６  動きデータ演算手段
３７  画像合成手段
３８  合成画像出力手段
３９  画像特徴点抽出手段
４０  画像特徴点選択手段
５１  入力画像データ保存手段
５２  輝度画像データ保存手段
５３  多重解像度データ保存手段
５４  比較画像データ
５５  基準画像データ
５６  登録輝度画像データ
５７  動きデータ保存手段
５８  合成画像データ保存手段
５９  画像特徴点群データ保存手段
【図１】
0004377932.tif 000008
【図２】
0004377932.tif 000009
【図３】
0004377932.tif 000010
【図４】
0004377932.tif 000011
【図５】
0004377932.tif 000012