説明

画像処理装置、画像処理方法及びプログラム

【課題】撮像手段の位置を正しく推定し、好適な画像データの結合結果を得ることにある。
【解決手段】制御部103は、カメラ101を移動させつつ、撮像処理を複数回実行させる。制御部103は、カメラ101により撮像された複数の画像データ間の重複領域を評価し、その評価結果に基づいて、複数の画像データの夫々に対応するカメラ101の位置を推定する。そして、制御部103は、推定してカメラ101の各位置に基づいて、複数の画像データの結合処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連続的に撮像された複数の画像データを結合する技術に関するものである。
【背景技術】
【0002】
近年、電動雲台を駆動し、カメラの向きを変えながら複数枚の画像データを撮影し、撮影した画像データを結合することで、非常に多くの画素からなる画像データを生成するシステムが注目されている。このような撮影システムにおける一番大きな課題は、画像データ群の結合処理である。結合処理としては、画像データ端の類似度から隣り合う画像データを推定し、これを張り合わせる技術が知られている。しかしながら、被写体が均一な領域であったり、画像データの一部が平坦で画像データ間の差があまり無かったりする場合には、正しく隣接する画像データを特定することができず、好ましい結果を得ることができない。また、レンズ収差や被写体のパース等によって、単純な比較では対応点が取れない場合にも正しい結果にはならない可能性がある。
【0003】
このような問題を解決するために、例えば特許文献1には次の手法が開示されている。即ち、特許文献1に開示される手法では、対象物とカメラとの相対的な回転角及びカメラの回転軸の位置が、複数の画像データを貼り合わせるための座標変換パラメータとして算出され、この座標変換パラメータに基づいて、複数の画像データが一つの座標系に変換されて画像データの合成が行われる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7−174538号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示される手法では、隣接する画像データの重複領域における対応点を取り、画像データを貼り合わせる処理を行うので、例えば掛け軸の表装のような細かい繰り返しパターンがある場合に正しく結合できない可能性がある。一方、対応点を取らずに画像データを変形又は結合するためには、レンズの歪曲や周辺光量、倍率色収差の補正を適用することが必要となる。このようなレンズの収差は被写体距離によって様々に変化するため、特許文献1に開示されるように画像データ間の相対位置を算出するのではなく、正しいカメラの位置の推定が必要である。撮影時のカメラの位置を正しく推定することで、画像データ毎の被写体距離を正しく推定し、その距離に応じたレンズ補正処理を適用することが可能になる。また、撮影された画像データに対して回転又は平行移動等の座標変換を単純に適用しただけでは正しくパースを補正することはできない。正しくパースを補正するためにも、正しいカメラの位置の推定が必要となる。
【0006】
そこで、本発明の目的は、撮像手段の位置を正しく推定し、好適な画像データの結合結果を得ることにある。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、撮像手段が移動しつつ連続的に撮像した複数の画像データを結合する画像処理装置であって、前記複数の画像データに対応する前記撮像手段に係る情報に基づいて、前記複数の画像データを3次元空間に配置する配置手段と、前記配置手段により前記3次元空間に配置された前記複数の画像データを、前記3次元空間に仮定された平面に射影する射影手段と、前記射影手段によって射影された前記複数の画像データ間の重複領域を評価する評価手段と、前記評価手段による評価結果に基づいて、前記複数の画像データに対応する前記撮像手段の位置を推定する推定手段と、前記推定手段により推定された前記撮像手段の各位置に基づいて、前記複数の画像データの結合処理を実行する結合手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、撮像手段の位置を正しく推定し、好適な画像データの結合結果を得ることが可能になる。
【図面の簡単な説明】
【0009】
【図1】実施形態に係る撮影システムの構成を示す図である。
【図2】図1の撮影システムの構成を詳細に示す図である。
【図3】撮影システムで生じ得る誤差を説明するための図である。
【図4】本実施形態における画像データの結合処理の概要について説明するための図である。
【図5】射影後画像データ群の一例を示す図である。
【図6】カメラの位置が異なる場合に撮影される被写体領域が異なることを説明するための図である。
【図7】第1の実施形態に係る撮影システムの処理を示すフローチャートである。
【図8】射影後画像データ群から画像データを選択する順序を説明するための図である。
【図9】評価値の算出方法の詳細について説明するための図である。
【図10】第2の実施形態に係る撮影システムの処理を示すフローチャートである。
【図11】第3の実施形態に係る撮影システムの処理を示すフローチャートである。
【図12】重複領域の選択処理を示すフローチャートである。
【図13】第4の実施形態における画像データの結合処理を示すフローチャートである。
【図14】レンズ特性カーブの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0011】
先ず、第1の実施形態について説明する。図1は、第1の実施形態に係る撮影システムの構成を示す図である。図1において、101はカメラである。102は電動雲台である。これらの機材によって、カメラ101本体をPAN、TILTさせて被写体を撮影する。103はカメラ101の動作及び電動雲台102の回転動作を制御する制御部である。また、制御部103は、カメラ101が移動しながら連続的に撮影した画像データ群を結合処理し、超高解像度画像データを生成する処理を実行する。104は幅W、高さHの大きさを持ち、カメラ101から距離Lの位置に設置された撮影対象の被写体である。なお、制御部103は、画像処理装置の適用例となる構成である。
【0012】
図2は、図1の撮影システムの構成を詳細に示す図である。201は撮影光学系レンズである。202は結像した光学像を光電変換する撮像素子(CCD等)である。203は撮像された電気信号に所定の処理を行うための信号処理部である。204は信号処理された画像データを記憶するための記憶部である。205は撮像された画像データ又は記憶された画像データを表示するための表示部(LCD)である。206はカメラ101の動作を制御するカメラ制御部である。207はカメラ操作部である。208は電動雲台102を回転制御するためのステッピングモータである。209はモータドライバである。210はステッピングモータ208の回転動作を制御する雲台制御部である。211はホスト制御部(ホストコンピュータ)である。212はカメラ101への撮影指示や電動雲台102の回転角度を指定するためのホスト操作部である。213はホスト制御部における情報を表示するためのモニタである。214はカメラ101と制御部103とを繋ぐ通信ラインである。215は電動雲台102と制御部103とを繋ぐ通信ラインである。制御部103は、これら通信ラインを通して、カメラ101や電動雲台102へと制御信号を送ることで、これらの装置の動作制御を行う。なお、通信ライン214、215は有線でも無線でも構わない。
【0013】
カメラ101において、撮影光学系レンズ201を介して撮像素子202上に結像した光学像は、信号処理部203により信号処理され、表示部205に表示される。カメラ操作部207によりシャッタ操作が行われるか、ホスト制御部211からシャッタコマンドが送られてくると、カメラ制御部206は現在撮像されている画像データを記憶部204に記憶させる。また、雲台制御部210は、ホスト制御部211より回転動作のコマンドが送られてくると、これに従って回転を行う。
【0014】
本実施形態では、全ての画像データが隣接する画像データと重複するように電動雲台102を制御して複数回の撮影処理が行われる(以下、この撮影方法を分割撮影と称することがある)。本実施形態においては、このような分割撮影で得られる複数の画像データを結合することにより、撮影光学系レンズ201の画角に比べて大きい被写体を撮影することが可能となる。なお、電動雲台102のPANとTILTとの角度がゼロの位置(ホームポジション)においても、カメラ101と被写体104とが正対するかどうかは保証されない。
【0015】
図3は、このような撮影システムで生じ得る誤差を説明するための図である。誤差には大きく4つが考えられる。図3の(1)は、電動雲台102に対して指定された回転角度と実際の回転角度とのずれである。電動雲台102の駆動はギアを介して行われるが、バックラッシュ等により厳密に指定した角度分、カメラ101を駆動できる訳ではない。但し、電動雲台102に搭載するモータにエンコーダ等を設置することで、一定の精度で駆動することは可能である。
【0016】
(2)は、電動雲台102に設置されたカメラ101の傾きである。特に、三脚座を使用してカメラ101を固定した場合、電動雲台102の旋回面に対して、カメラ101が撮影光学系レンズ201の光軸を中心として回転する方向に傾く可能性が高い。
【0017】
(3)は、撮像素子202の中心と電動雲台102の回転中心とのずれである。電動雲台102にコンパクトカメラを備え付けた場合、コンパクトカメラの三脚のねじ穴位置と撮像素子の中心位置とに大きなずれは生じない。しかしながら、一眼レフカメラの場合、三脚座を使用してカメラを取り付ける場合があるため、大きくずれる可能性がある。(4)は、被写体104に対して正対となるカメラ101の位置とホームポジションにおけるカメラ101の位置とのずれである。
【0018】
本実施形態では、上記のようなずれに対し、正しいカメラ101の位置を推定することで良好な画像データの結合結果を得るものである。まずカメラ101の位置の推定による画像データの結合処理の概要を図4、図5、図6を用いて説明し、その後に具体的な処理の流れを図7のフローチャートを用いて説明する。
【0019】
先ず、図4を用いて、本実施形態における画像データの結合処理の概要について説明する。ここでは、説明の簡単のために、被写体を絵画のように平面で近似できるものとする。以下では被写体を近似した面を被写体面と称す。風景等、撮影距離が非常に大きい被写体についても同様に平面として扱うことができるため、本実施形態で述べる手法でそのまま対応可能である。また、予め被写体の形状が分かっている場合には、この形状に合わせた被写体面を構成してもよい。
【0020】
被写体が平面であると仮定した場合、図4(a)のようなある3次元空間上に被写体を想定した被写体面401が設定され、この被写体面401上に画像データがマッピングされる。図4(a)では被写体面401と再構成平面402とが平行に描かれているが、必ずしも平行でなくても構わない。図4(b)では説明の簡単のために、3次元空間をz軸方向から見た図を示している。被写体面401に配置された各画像データ501a〜eの被写体面401との角度は、撮影時のカメラ101の位置によって決まる。
【0021】
以下、図4(b)を用いて画像データの結合処理について説明する。例えば(A)の位置から撮影した場合、ファインダ中心にピントが合うように撮影すると、撮影光学系レンズ201の画角から仮想ピント面Faを設定することができる。ここで、仮想ピント面Fa501aはカメラ101によってピントを合わせた平面であり、カメラ101の位置から被写体を見た光景のうち、仮想ピント面Faを含む領域が画像データに写り込むことになる。この場合、(A)の位置にあるカメラ101は被写体面に対して正対していないため、実際に写る範囲は撮影範囲Ra502の部分になる。
【0022】
そこで、本実施形態では、図4(a)に示すような再構成平面402を設定し、被写体104から無限遠の位置、且つ視線方向を再構成平面402に正対した方向とするような視点からの被写体像を得るパース補正処理を施す。そして、パース補正処理後の画像データを並べることで結合された画像データを得る。以下、このようにして得られた画像データを射影後画像データと称す。例えば説明の簡単のため、撮影光学系レンズ201による歪みがないと仮定した場合、再構成平面402上の点Pa’は、(A)にあるカメラ101と被写体104との距離や撮影時の画角から、被写体面401上の点Paの画素値となる。画像データはデジタル化されたビットマップデータであり、点Paの座標は必ずしも整数値になるとはいえないが、整数値にならない場合には近傍画素を補間して画素値を算出する。ここで、図4(b)の(B)のように、AFに使用されたフレーム501dにおける焦点が当該フレームの中心にない場合には、焦点が被写体面401上に配置されるように仮想ピント面が設定される。
【0023】
このようにして得られた射影後画像データ群の一例を図5(a)に示す。射影後画像データ間には重複領域が生じるが、この重複領域に対してブレンド処理を適用することで射影後画像データ間の境界部分に違和感の無い超解像度画像データを得ることが可能になる。
【0024】
以上で述べたような方法により再構成平面402上に画像データを射影し、複数の画像データを結合することが可能になる。しかしながら、実際に撮影では図3に示したような誤差が生じる。そこで、本実施形態では、重複する射影後画像データ間の重複領域部分の誤差を評価し、この誤差が最小になるようなカメラ101の位置を推定する。例えば本実施形態では、図5(b)に示すように、隣接する射影後画像データの重複領域について、画素値の平均二乗誤差(MSE)を算出し、この値を誤差とする。
【0025】
本実施形態では、重複領域の誤差を最小化するために、3次元空間上に配置した画像データの相対位置を直接変更するのではなく、カメラ101の位置を推定する。例えば図6に示すように、カメラ101の位置が異なる場合、撮影される被写体領域は異なる。図6(a)のA1はカメラ101の位置が(a1)の場合の仮想ピント面であり、A2はカメラ101の位置が(a2)の場合の仮想ピント面である。この場合、被写体面401上での撮影領域はそれぞれA1’、A2’となる。射影後画像データ同士の重複領域の誤差があるということは、撮影領域として想定した領域に誤差があるということなので、その原因となるカメラ101の位置を補正することで対応する。実際には撮影光学系レンズ201による像の歪み(歪曲収差、倍率色収差、周辺減光等)が生じるが、これらの特性は撮影距離L1、L2によって変化する。このような歪みが生じている場合、正しく誤差を評価することができなくなるので、撮影距離に応じたパラメータによるレンズ収差補正処理を適用する。なお、レンズ収差補正処理については、後述する。
【0026】
カメラ101の位置は、撮影距離だけではなく、3次元空間上の位置と各軸に対する回転方向の6パラメータとで定義できる。例えば、図6(b)に示すように、カメラ101の位置(a1)と位置(a3)のようにカメラ101の位置が異なると、それぞれの位置における被写体面401の撮影領域が大きく異なる。このような場合でも、撮影時のAFの際に使用したフレームにおける焦点を被写体面401上に配置するように限定することで、仮想ピント面の移動範囲を制限し、現実的な処理時間で最適な状態を探索できる。
【0027】
以上説明した画像データの結合処理を実現するための処理の流れについて説明する。本実施形態では、射影後画像データ群の中からまず1枚、基準画像データを決定する。次に、基準画像データに近い順に画像データを選択し、選択した画像データに対するカメラ101の位置の推定処理を行う。基準画像データの決定方法にはいくつかの方法が考えられるが、例えば本実施形態では、ホームポジションで撮影された画像データを基準画像データとする。他の決定方法としては、カメラ101の位置情報から各画像データの撮影距離を得て、撮影距離が最小となる画像データを基準画像データとする方法も考えられる。
【0028】
例えば図8に示すような射影後画像データ群について、画像データ8を基準画像データとした場合、基準画像データの中心に対して各射影後画像データの中心が近い順に画像データが選択される。図8に示す射影後画像データ群の場合、画像データ7、画像データ9、画像データ11、画像データ5、画像データ10、画像データ12、・・・のように画像データが選択される。
【0029】
上述したように、本実施形態においては、推定したカメラ101の位置の確からしさは隣接する画像データとの重複領域の差分によって評価される。但し、評価には、基準画像データ、あるいは既にカメラ101の位置の推定処理が終わった画像データとの重複領域のみが使用される。例えば、画像データ7についてカメラ101の位置の推定処理を適用する場合には、画像データ8との重複領域のみを用いて推定処理が実行される。また、画像データ5についてカメラ101の位置の推定処理を実行する場合には、画像データ7、画像データ8、画像データ9との重複領域を用いて推定処理が実行される。このように、基準画像データ、あるいは既にカメラ101の位置の推定処理が終わった画像データとの重複領域のみを使用して推定処理が実行されることで、画像データ群全体の推定処理に必要な計算量を低減することができる。
【0030】
図7は、本実施形態に係る撮影システムの処理を示すフローチャートである。先ずステップS701において、制御部103は、基準画像データを選択する。ステップS702において、制御部103は、カメラ101の位置の推定処理を適用する画像データを選択する。画像データの選択方法は上述した通りである。ステップS703において、制御部103は、撮影時におけるカメラ101の設定情報や電動雲台102の制御情報に基づいて、カメラ101の位置の初期状態を決定する。ステップS704において、制御部103は、ステップS703で得たカメラ101の位置の初期状態に対応する撮影距離に基づいて、画像データに対してレンズ収差補正処理を実行し、カメラ101の位置に応じた再構成平面への射影処理を行う。レンズ収差補正処理の詳細については本発明の主眼ではないので説明を省略するが、例えば特開2009−043060号公報に開示されている方法を適用することができる。この文献では、レンズ収差が撮影距離によっても変化することについて触れられていないが、実際には撮影距離によってもレンズの特性は変化することが知られている。そこで本実施形態では、レンズ特性値データベースを設ける。制御部103は、このレンズ特性値データベースから撮影距離、焦点距離、f値、レンズの種類を用いてレンズ収差補正処理用ルックアップテーブルを検索し、検索によって得たルックアップテーブルに基づいて画像データを補正する。このうち、撮影距離はカメラ101の位置に応じて変化するので、撮影距離が変化した場合には、レンズ収差補正処理用ルックアップテーブルを再検索して正しい補正結果が得られるようにする必要がある。
【0031】
ステップS705において、制御部103は、ステップS704で実行した射影処理の結果生じた重複領域の評価値を算出する。評価値は、重複領域の評価値の算出処理の詳細は後述する。ステップS706において、制御部103は、予め定められた処理に従ってカメラ101の位置を更新する。制御部103は、撮影時の状態を基準値とし、±100段階でパラメータ値を変化させ、総当りで最適解を探索する。撮影時のカメラ101の位置は、3次元空間上での位置、及び、各軸を中心としたピッチ、ヨー、ロールで定義できる。本実施形態では、実空間で1mm刻み(±10cm)、回転方向は0.01度刻みで状態を変化させ、最適な位置を算出する。本実施形態では、総当りで最適位置を探索するが、遺伝的アルゴリズムやニューラルネットワークを用いて高速に最適解を探索してもよいことはいうまでもない。
【0032】
ステップS707において、制御部103は、修正したカメラ101の位置に応じたレンズ収差補正処理、再構成平面への射影処理を実行する。ステップS708において、制御部103は、更新された重複領域に対してステップS705と同様に評価値を算出する。ステップS709において、制御部103は、算出した評価値が最小値であるか否かを判定する。評価値が最小値である場合、処理はステップS710に移行する。一方、評価値が最小値ではない場合、ステップS710をスキップして処理はステップS711に移行する。ステップS710において、制御部103は、最適カメラ位置情報を最小値の評価値に対応するカメラ101の位置に更新する。ステップS711において、制御部103は、推定処理の終了条件を満たしているか否かを判定する。推定処理の終了条件を満たしている場合、処理はステップS712に移行する。一方、推定処理の終了条件を満たしていない場合、処理はステップS706に戻り、制御部103は、カメラ101の位置を再度修正してカメラ101の位置の推定処理を再実行する。本実施形態では最適解を総当りで探索するため、終了条件は全てのパラメータ値の組み合わせについて実行したかどうか、ということになる。その他の終了条件としては、予め定めた誤差量を下回ったかどうかという条件も考えられる。
【0033】
ステップS712の時点では、カメラ101の位置は最適化済みであるため、制御部103は、この最適化されたカメラ101の位置(最適カメラ位置情報)を用いて射影後画像データを求め、この画像データに対応するカメラ101の位置を確定する。ステップS713において、制御部103は、全ての画像データに対してカメラ101の位置の推定処理が完了したか否かを判定する。全ての画像データに対してカメラ101の位置の推定処理が完了した場合、処理を終了する。一方、カメラ101の位置の推定処理が完了していない画像データが存在する場合、制御部103は、ステップS702へ戻って処理を続行する。
【0034】
次に、図9を用いて、評価値の算出方法の詳細について説明する。例えば2枚の射影後画像データA、Bが図9(a)のように配置されたとする。カメラ101の位置の微妙なずれやパースの影響を受けて再構成平面上に射影されるため、画像データA、Bの画素の中心位置は一致しない可能性が高い。それだけでなく、画素サイズ(隣接画素の中心間距離)が異なる場合もある。そこで、図9(b)のように、画像データAと画像データBとの間に仮想重複領域を設定する。画像データA、Bは、同一の再構成平面上に射影されているので、図9(b)に示したような空間がある訳ではないが、画像データAと画像データBとの間に仮想重複領域を設定することで、微妙にずれた画素を比較することが可能になる。仮想重複領域の解像度は任意に設定可能であるが、本実施形態では画像データAと画像データBとの画素サイズの平均となるような解像度に設定する。
【0035】
例えば、図9(b)の場合、仮想重複領域上の画素Pに対応する画像データA上の座標をPA、画像データB上の座標をPBとする。座標PA及びPBは、各画像データ上の画素の中心とずれた位置に存在するため、近傍画素を補間して画素値が算出される。本実施形態では、図9(b)に示したように4近傍画素を用いてバイリニア補間で画素値が決定される。さらに参照画素を増やしてバイキュービック補間等の補間処理を行ってもよいことはいうまでもない。
【0036】
制御部103は、このようにして算出した画素PA、PBの差を計算することで、仮想重複領域上の画素Pの誤差量を決定することができる。制御部103は、仮想重複領域を構成する全ての画素について、誤差量を算出して平均二乗誤差(MSE;Mean Square Error)を求め、この値を評価値とする。そして、制御部103は、図7のフローチャートに示した処理により、カメラ101の位置を少しずつ変更しながら評価値が最小になるようなカメラ101の位置を探索する。これにより、正しいカメラ101の位置の推定に基づく画像データの結合処理を実現することができる。
【0037】
本実施形態によれば、カメラ101の位置を正しく推定し、好適な画像データの結合結果を得ることが可能になる。
【0038】
次に、第2の実施形態について説明する。第2の実施形態に係る撮影システムの構成も図1、図2に示した構成と同様であるため、図1、図2の符号を引用して第2の実施形態の説明を行うものとする。第1の実施形態では、基準画像データを設定し、これに近い画像データから順にカメラ101の位置の推定処理を実行することで、分割撮影によって得られた画像データ群を結合する処理について説明した。この方法を用いると、一回の推定処理に必要な計算量が少なくて済むので、トータルでの処理時間が短くて済むという利点がある。しかしながら、第1の実施形態のように個別にカメラ101の位置を確定していくと、ローカルミニマム(局所解)に陥る可能性が生じる。例えば、基準画像データから遠い位置にある画像データについては、誤差が蓄積された結果、どのようにカメラ101の位置を設定しても画像データが綺麗に結合できなくなる可能性がある。
【0039】
そこで本実施形態では、画像データ全ての重複領域に関する総合評価値を算出し、この総合評価値を最小化することで、各画像データに対するカメラ101の位置の推定を実行する。このような方法を用いることで、指定された探索条件の中での最適解を得る。
【0040】
図10は、第2の実施形態に係る撮影システムの処理を示すフローチャートである。ステップS1001において、制御部103は、各画像データについて、撮影時におけるカメラ101の設定情報や電動雲台102の制御情報に基づいて、カメラ101の位置の初期状態を推定する。そして、制御部103は、各画像データについて得られたカメラ101の位置の初期状態に対応する撮影距離に基づいて、各画像データに対してレンズ収差補正処理を実行し、カメラ101の位置に応じた再構成平面への射影処理を行うことにより画像データ群を結合する。ステップS1002において、制御部103は、画像データ群を結合させた結果生じた各重複領域の評価値の平均値を、画像データ群全体の総合評価値として算出する。
【0041】
ステップS1003において、制御部103は、撮影時の状態を基準値とし、±100段階でパラメータ値を変化させて、各画像データに対応するカメラ101の位置を更新する。ステップS1004において、制御部103は、ステップS1003で更新したカメラ101の位置に応じた各画像データの再構成平面への射影処理を行うことにより画像データ群を結合する。ステップS1005において、制御部103は、画像データ群を結合させた結果生じた各重複領域の評価値を算出する。ステップS1006において、制御部103は、各重複領域の評価値の平均値を、画像データ群全体の総合評価値として算出する。
【0042】
ステップS1007において、制御部103は、ステップS1006にて算出した総合評価値がこれまでの処理過程のなかで最小値の総合評価値であるか否かを判定する。最小値の総合評価値である場合、処理はステップS1008に移行する。一方、最小値の総合評価値でない場合、処理はステップS1008をスキップしてステップS1009に移行する。
【0043】
ステップS1008において、制御部103は各画像データに対応する最適なカメラの位置を、ステップS1003で算出した各画像データに対応するカメラ101の位置に更新する。即ち、ここでは、最適カメラ位置情報が最小値の総合評価値に対応するカメラ101の位置に更新される。ステップS1009において、制御部103は、カメラ101の位置の推定処理の終了条件を満たしているか否かを判定する。本実施形態では、総合評価値が予め定めた値よりも小さい値であることをカメラ101の位置の推定処理の終了条件とする。終了条件を満たしていない場合、処理はステップS1003へ戻り、カメラ101の位置の推定処理が継続される。一方、終了条件を満たしている場合、処理はステップS1010に移行する。ステップS1010において、制御部103は、この時点における各画像データに対応する最適なカメラの位置(最適カメラ位置情報)を用いて画像データ群を再構成平面上に射影し、画像データ群を結合させる。
【0044】
本実施形態によれば、画像データ群全体に関する総合評価値が最小になるようなカメラ10の位置を探索することで、ローカルミニマムに陥らずに最適な結果を得ることが可能になる。
【0045】
次に、第3の実施形態について説明する。第3の実施形態に係る撮影システムの構成も図1、図2に示した構成と同様であるため、図1、図2の符号を引用して第2の実施形態の説明を行うものとする。第2の実施形態では、分割撮影によって得た画像データ群全体について誤差を評価することで、画像データの位置に因らず好適な結合結果を得る方法について述べた。しかしながら、第2の実施形態では、計算量が非常に多くなり、現実的な時間では処理が終わらない可能性がある。
【0046】
ここで、図3に示すような撮影システムで生じ得る誤差を見てみると、例えば(2)の電動雲台102に設置されたカメラ101の傾きについては、全ての画像データで同じ誤差となる可能性が高い。また、(3)の撮像素子202の中心と電動雲台102の回転中心とのずれについても、一回の分割撮影中で変化することは考えにくい。一方、図3の(1)で示した電動雲台102に対して指定された回転角度と実際の回転角度とのずれや、画像データ毎の撮影距離等、画像データ毎に異なる誤差もある。そこで、画像データ群全体で共通となるグローバルな誤差と、画像データ毎に異なるローカルな誤差とを分けて考える。具体的には、重複領域のいくつかを選択してグローバルな誤差に起因する第1のパラメータを推定し、画像データ全てについて補正処理を適用した後、ローカルな誤差に起因する第2のパラメータを推定し、画像データ毎に補正処理を適用する。このような処理により、複数ある誤差の組み合わせの数を低減し、計算量を低減することができる。例えば、ある重複領域について、パラメータが4つである場合に総当りで最適解を求めようとすると、約16億回の評価値算出処理が必要になる。しかしながら、このうち1つのパラメータをグローバルな誤差として別に算出すると、残りの3つのパラメータについては800万回の評価値算出処理を実行するだけでよく、大幅に演算量を低減することができる。
【0047】
図11は、第3の実施形態に係る撮影システムの処理を示すフローチャートである。本実施形態においては、第1のパラメータとしてカメラ101の傾き(図3の(2))を補正した後、第2のパラメータとして残りのパラメータを補正するものとする。
【0048】
ステップS1101において、制御部103は、各画像データについて、撮影時におけるカメラ101の設定情報や電動雲台102の制御情報に基づいて、カメラ101の位置の初期状態を推定する。そして、制御部103は、各画像データについて得られたカメラ101の位置の初期状態に対応する撮影距離に基づいて、各画像データに対してレンズ収差補正処理を実行し、カメラ101の位置に応じた再構成平面への射影処理を行うことにより画像データ群を結合する。
【0049】
ステップS1102において、制御部103は、この初期状態で得た重複領域のうち、特徴的な重複領域を最大n箇所選択する。ステップS1103において、制御部103は、選択した重複領域の誤差が最小になるような第1のパラメータを推定する。ステップS1104において、制御部103は、ステップS1103で得た第1のパラメータによって、各画像データに対応するカメラ101の位置を補正する。例えば本実施形態では、この段階でカメラ101設置時におけるカメラ101の傾きを補正することができる。
【0050】
ステップS1105において、制御部103は、残りの誤差に対応する第2のパラメータの推定を行う。ステップS1106において、制御部103は、ステップS1105で得た第2のパラメータによって、各画像データに対応するカメラ101の位置を補正する。ステップS1107において、制御部103は、各画像データに対応するカメラ101の位置に応じて画像データ群を再構成平面へ射影し、画像データ群の結合処理を実行する。
【0051】
ここで、第1のパラメータは、全ての画像データの重複領域を用いて推定されるのではなく、一部の重複領域を選択して推定される。第1のパラメータは一括で全ての画像データに対応するカメラ101の位置に影響するので、ステップS1102において制御部103はできるだけ特徴的な重複領域を選択し、正しいカメラ101の位置の推定結果を得る必要がある。ここで、エッジ強度が大きい方が正しく誤差を推定できるが、例えば掛け軸の表装のような繰り返しパターンは誤判定の原因になることから、次のような条件を満たす重複領域が優先して選択される。
・エッジ強度が大きい
・一つの重複領域内で検出されるエッジ数が少ない
・一定以上の面積を持つ
【0052】
図12は、図11のステップS1102の詳細を示すフローチャートである。ステップS1201において、制御部103は、重複領域のうちの一定サイズ以上の重複領域を抽出する。例えば幅、高さの両方が50画素以上の重複領域が選択される。本実施形態では、重複領域のサイズを幅と高さとで評価したが、例えば画素数で評価してもよいことはいうまでもない。さらに、ここで重複領域が一つも選択されなかった場合、重複領域が選択されるまで条件を変えて繰り返し試行してもよいし、選択されなかった場合には通常の処理(例えば、第1、第2の実施形態で説明した処理)に切り替えるということも考えられる。
【0053】
ステップS1202において、制御部103は、ステップS1201で選択した各重複領域についてエッジ検出処理を実行する。ステップS1203において、制御部103は、エッジ検出処理の結果に基づいて、各重複領域のエッジ評価値を算出する。本実施形態におけるエッジ評価値Eiは、次の式1のように、エッジ強度値Vと検出エッジ数Nとで算出される値である。
Ei=f(V,N)・・・式1
【0054】
例えば本実施形態では、エッジ検出処理にはソーベルフィルタが用いられる。先ず、制御部103は、ソーベルフィルタを適用して得られた各画素のエッジ強度値をソートして、上位10%のエッジ強度値の平均値をエッジ強度値Vとする。検出エッジ数を得る処理は、例えばハフ変換を応用し、重複領域内の直線の数を得る方法が考えられる。しかしながら、検出エッジ数を算出する処理は比較的重い処理になるので、簡単のためにエッジ画素の割合で代用してもよい。例えば本実施形態では、重複領域中のエッジ画素の割合で定義する。エッジ画素かどうかの判定は、予め定めたエッジ強度値に対する閾値処理によって行われる。例えば本実施形態では、エッジ評価値Eiを次の式2で定義する。
Ei=V/N・・・式2
【0055】
ステップS1204において、制御部103は、エッジ評価値Eiによって重複領域をソートする。ステップS1205において、制御部103は、ソート結果の上位n枚の重複領域を選択する。上述したように本実施形態ではn=5とする。
【0056】
本実施形態によれば、推定対象となるパラメータを2つに分けて処理することで、非常に高速にカメラ101の位置を推定し、画像データの結合処理を実行することが可能になる。
【0057】
次に、第4の実施形態について説明する。第4の実施形態に係る撮影システムの構成も図1、図2に示した構成と同様であるため、図1、図2の符号を引用して第2の実施形態の説明を行うものとする。分割撮影によって得られる画像データの枚数に応じて、第1〜第3の実施形態のうちの何れの実施形態の方法で画像データ群を結合するか切り換えることも考えられる。例えば、分割撮影によって得られた画像データが水平方向にn枚以下、垂直方向にn枚以下の両方を満たす場合、第1の実施形態の方法で画像データを結合し、そうでない場合、第2又は第3の実施形態の方法で画像データを結合する、という処理等が考えられる。ここで、nの値は本実施形態では3とする。
【0058】
図13は、第4の実施形態における画像データの結合処理を示すフローチャートである。以下の説明においては、第1の実施形態のように基準画像データを設定し、これに近い画像データからカメラ101の位置の推定を行う処理を、局所最適化処理と称す。また、第2の実施形態のように、結合対象の画像データ全てに対応するカメラ101の位置が最適になるようにカメラ101の位置の推定処理を実行する方式を、全体最適化処理と称す。
【0059】
ステップS1301において、制御部103は、分割撮影によって得られる画像データの枚数に応じて、局所最適化処理を実行するか、全体最適化処理を実行するかを判定する。即ち、分割撮影によって得られた画像データが水平方向に3枚以下、垂直方向に3枚以下の両方を満たす場合、処理はステップS1302に移行する。一方、そうでない場合、処理はステップS1303に移行する。ステップS1302において、制御部103は、局所最適化処理を実行する。ステップS1303において、制御部103は、全体最適化処理を実行する。本実施形態によれば、このように分割撮影によって得られる画像データの枚数に応じて、カメラ101の位置の推定処理を切り替えることにより、より短い時間で好適な画像データの結合処理を実行することが可能となる。
【0060】
次に、第5の実施形態について説明する。第5の実施形態に係る撮影システムの構成も図1、図2に示した構成と同様である。第1〜第4の実施形態では、レンズ収差補正処理による画質劣化を考慮せずに重複領域の誤差を評価していた。画質劣化とは例えば、歪曲補正による局所的な拡大補間による解像度低下、周辺光量補正によるノイズ量増加等が挙げられる。特に周辺光量補正は画像周辺部のゲインを上げる処理であるため、同時にノイズ成分も強調してしまう。その結果、エッジを正しく検出できなかったり、正しく誤差を評価できなかったりする可能性がある。同様に、パース補正処理を適用した場合にも画素毎に補間処理が適用されるため、解像度が変化した結果、画質が劣化してしまう場合がある。
【0061】
このような劣化に対応するため、本実施形態では、レンズ収差補正処理による画質劣化が考慮された誤差の評価関数を用いる。この評価関数を用いて大きく補正された画素の信頼度を下げることで、正しく重複領域の誤差を評価できるようにする。具体的には、評価値の計算を行う場合、単純なMSEを用いるのではなく、レンズ収差補正量を考慮した評価関数を用いる。
【0062】
図14は、レンズ特性カーブの一例を示す図である。図14(a)は歪曲特性であり、画像データ上での像高と理想像高との差を示している。図14(a)の破線は、画像データ上での像高と理想像高とが一致する場合を示している。画像データ上の像高に対応する理想像高が高い場合、その画素は局所的に拡大補間されることになる。従って、理想像高と画像データ上の像高との差が大きいほど解像度が低下することになる。逆に理想像高が画像データ上の像高よりも小さい場合には局所的に縮小処理されることになり、解像度は増加する。
【0063】
図14(b)は周辺光量特性であり、画像データ上での像高に対するゲインアップ量を示している。図14(b)の破線は、周辺光量補正による画素値のゲインアップが行われない場合を示している。ゲインアップ量に応じて画素値が大きくなるので、ノイズ量も大きくなる。一般的にレンズ収差補正処理では、図14に示すレンズ特性値に加え、補正量を加味してレンズ収差補正処理を実行する。例えば、レンズ特性値に応じた値をそのまま補正する場合を補正量100として、補正量が50の場合、歪曲補正は画像データ上の像高と理想像高との中間を目標値とするような補正を適用する。従って、評価関数ではレンズの特性値以外に、その収差の補正量を考慮する必要がある。重複領域kの評価値をEkとすると、例えば、本実施形態における評価関数は、次の式3のようになる。
Ek=1/M×Σ{(P(i,j)−S(i,j))×(P(i,j)−S(i,j)/L(i,j))}・・・式3
ここで、i、jは重複領域を構成する画素に対応する座標であり、Mは重複領域の画素数とする。また、P(i,j)は重複領域の画素、S(i,j)は重複領域の画素の平均値とする。
【0064】
式3のL(i,j)はレンズ収差補正係数であり、次の式4で表される。
L(i,j)=α×(1+Da/100×(D(i,j)−1))×(1−α)(100+Va/100×(V(i,j)−100))/100・・・式4
αは歪曲補正と周辺光量補正の重みであり、値域は[0,1]とする。αの値が大きいほど、歪曲補正による画質劣化を重視する。Daは歪曲補正適用量(%)、Vaは周辺光量補正適用量(%)である。
【0065】
また、座標(i,j)の像高をl、像高lの理想像高をC(l)とすると、座標(i,j)の歪曲補正特性値D(i,j)は、次の式5で表される。
D(i,j)=C(l)/l・・・式5
なお、V(i,j)は、座標(i,j)に対応する周辺光量補正特性値(ゲインアップ量(%))とする。本実施形態では説明の簡単のために、レンズ収差補正処理及びパース補正処理のうち、歪曲補正と周辺光量補正を挙げて説明したが、これにパース補正や倍率色収差補正が加わってもよいことはいうまでもない。特に倍率色収差補正は、RGB信号のG信号の歪曲収差に対するRとBの倍率であるため、歪曲補正と同様の考え方で対応可能である。
【0066】
本実施形態によれば、重複領域の誤差の評価においてレンズ特性値とレンズ収差補正量とを考慮することで、重複領域の誤差の評価を適切に行い、画像データの結合処理の精度を向上させることが可能になる。
【0067】
なお、第5の実施形態においては、レンズ収差補正処理による画質劣化への対応処理について述べた。即ち、第5の実施形態では、誤差の評価関数で画質劣化量を考慮して対応したが、このような方法以外に、レンズ収差補正量に応じたフィルタを適用するという方法もある。このフィルタには2つの方針が考えられる。
【0068】
1つ目の方針は、レンズ収差補正量に応じてぼかすフィルタを適用することが考えられる。例えば、周辺光量補正によるノイズの強調に対しては、このような方法が有効である。この方法を用いることで、レンズ収差補正処理による画質劣化に対応した重複領域の誤差評価が可能になる。
【0069】
2つ目の方針は、画質劣化を復元するフィルタを適用する方法である。この方法は、予め撮像光学系やレンズ収差補正処理による画質劣化特性をデータ化しておき、この画質劣化特性データに基づいて像を補正する方法である。この画質劣化特性データには、例えば点像分布関数(PSF;Point Spread Function)と呼ばれる方法で表すことができる。PSFは、点像がどのような広がりを持った像に写像されるかを示し、例えば暗黒下で体積が非常に小さい発光体を撮影した場合の像の二次元分布がPSFに相当する。PSFを得る方法には、必ずしも実際に点光源を撮影する必要はなく、レンズ設計データや補正処理内容から計算で算出することが可能である。このようなPSFを用いた補正処理では、サイズの大きい空間フィルタを適用する場合が多い。このような画質の劣化過程を考慮した補正処理を用いれば、単にレンズの収差補正による画質劣化に対応するだけでなく、光学系による解像度低下にも対応可能である。以上で述べた補正処理を画像データに適用することで、画質劣化のない状態で重複領域の比較処理を行うことができる。このようにレンズの特性値を用いることで、より高精度な画像データの結合処理を実行することが可能になる。
【0070】
次に、第6の実施形態について説明する。第6の実施形態に係る撮影システムの構成も図1、図2に示した構成と同様であるため、図1、図2の符号を引用して第2の実施形態の説明を行うものとする。第1〜第5の実施形態では、全てのパラメータを独立に変化させてカメラ101の位置を推定した。しかしながら、ハードウェアの駆動精度を上げることで、計算量を削減することも可能である。例えば電動雲台102にエンコーダを付加することで、電動雲台102の回転方向を一定の精度で取得することが可能である。これにより、3次元空間上におけるカメラ101の位置と各軸の回転方向とによる6パラメータからパラメータ数を削減することが可能になる。
【0071】
例えば本実施形態では、カメラ101の向きを示す方向ベクトルとそのノルム(つまり、撮影距離)とでカメラ101の3次元空間上における位置を表現する。この場合、推定されるパラメータは、撮影距離とカメラ101の姿勢であるヨー、ピッチ、ロールとの4パラメータとなる。各パラメータを±100段階で変化させて総当りで最適解を探索すると仮定した場合、6パラメータの場合は64兆回評価値を計算する必要があるが、4パラメータの場合は16億回にまで削減することが可能になる。実際には総当りではなく、焼きなまし法や山登り法を使った探索を行うのが現実的であるが、この場合でも一回の誤差の評価値計算の演算量を大幅に低減することが可能になる。
【0072】
本実施形態によれば、撮影システムに一定の機能を付加することにより、推定されるパラメータ数を削減し、処理を高速化することが可能である。特に回転方向を限定することで、3次元空間上におけるカメラ101の位置を方向ベクトルとノルムとに分解し、ノルムの推定だけを行うことで最適解の探索が可能になる。
【0073】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
撮像手段が移動しつつ連続的に撮像した複数の画像データを結合する画像処理装置であって、
前記複数の画像データに対応する前記撮像手段に係る情報に基づいて、前記複数の画像データを3次元空間に配置する配置手段と、
前記配置手段により前記3次元空間に配置された前記複数の画像データを、前記3次元空間に仮定された平面に射影する射影手段と、
前記射影手段によって射影された前記複数の画像データ間の重複領域を評価する評価手段と、
前記評価手段による評価結果に基づいて、前記複数の画像データに対応する前記撮像手段の位置を推定する推定手段と、
前記推定手段により推定された前記撮像手段の各位置に基づいて、前記複数の画像データの結合処理を実行する結合手段とを有することを特徴とする画像処理装置。
【請求項2】
前記推定手段は、前記3次元空間における前記撮像手段の方向ベクトルとノルムとで前記撮像手段の位置を表現することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記評価手段は、前記撮像手段に係るレンズ収差補正処理及び前記結合手段に係るパース補正処理のうちの少なくとも何れか一方を考慮した評価関数を用いて、前記複数の画像データ間の重複領域を評価することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記複数の画像データのうち、最も撮影距離が近い画像データを基準画像データとし、前記推定手段は、前記基準画像データに近い画像データから順次、前記撮像手段の位置の推定処理を実行することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記撮像手段に係る情報とは、前記撮像手段が設置される電動雲台の制御情報、及び、前記撮像手段の撮影時における設定情報のうちの少なくとも何れか一方を含むことを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
【請求項6】
撮像手段が移動しつつ連続的に撮像した複数の画像データを結合する画像処理装置によって実行される画像処理方法であって、
前記複数の画像データに対応する前記撮像手段に係る情報に基づいて、前記複数の画像データを3次元空間に配置する配置ステップと、
前記配置ステップにより前記3次元空間に配置された前記複数の画像データを、前記3次元空間に仮定された平面に射影する射影ステップと、
前記射影ステップによって射影された前記複数の画像データ間の重複領域を評価する評価ステップと、
前記評価ステップによる評価結果に基づいて、前記複数の画像データに対応する前記撮像手段の位置を推定する推定ステップと、
前記推定ステップにより推定された前記撮像手段の各位置に基づいて、前記複数の画像データの結合処理を実行する結合ステップとを有することを特徴とする画像処理方法。
【請求項7】
撮像手段が移動しつつ連続的に撮像した複数の画像データを結合する画像処理装置によって実行される画像処理方法をコンピュータに実行させるためのプログラムであって、
前記複数の画像データに対応する前記撮像手段に係る情報に基づいて、前記複数の画像データを3次元空間に配置する配置ステップと、
前記配置ステップにより前記3次元空間に配置された前記複数の画像データを、前記3次元空間に仮定された平面に射影する射影ステップと、
前記射影ステップによって射影された前記複数の画像データ間の重複領域を評価する評価ステップと、
前記評価ステップによる評価結果に基づいて、前記複数の画像データに対応する前記撮像手段の位置を推定する推定ステップと、
前記推定ステップにより推定された前記撮像手段の各位置に基づいて、前記複数の画像データの結合処理を実行する結合ステップとをコンピュータに実行させるためのプログラム。

【図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


【公開番号】特開2012−118875(P2012−118875A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−269544(P2010−269544)
【出願日】平成22年12月2日(2010.12.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】