JP3862688B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP3862688B2
JP3862688B2 JP2003319808A JP2003319808A JP3862688B2 JP 3862688 B2 JP3862688 B2 JP 3862688B2 JP 2003319808 A JP2003319808 A JP 2003319808A JP 2003319808 A JP2003319808 A JP 2003319808A JP 3862688 B2 JP3862688 B2 JP 3862688B2
Authority
JP
Japan
Prior art keywords
camera
coordinate system
image
common coordinate
conversion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003319808A
Other languages
English (en)
Other versions
JP2004274701A (ja
Inventor
隆明 遠藤
昭宏 片山
幸雄 坂川
大輔 小竹
雅博 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003319808A priority Critical patent/JP3862688B2/ja
Priority to US10/779,791 priority patent/US7518636B2/en
Publication of JP2004274701A publication Critical patent/JP2004274701A/ja
Application granted granted Critical
Publication of JP3862688B2 publication Critical patent/JP3862688B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Stereoscopic And Panoramic Photography (AREA)
  • Adjustment Of Camera Lenses (AREA)
  • Studio Circuits (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Studio Devices (AREA)

Description

本発明は、複数の画像に対して画像処理を施す画像処理装置及び画像処理方法に関するものである。
移動体に搭載された撮像装置によって現実空間を撮像し、撮像された実写画像データをもとに、撮像した現実空間を計算機を用いて仮想空間として表現する試みが提案されている(たとえば非特許文献1、非特許文献2などを参照)。
移動体に搭載された撮像装置によって撮像された実写画像データをもとに、撮像した現実空間を仮想空間として表現する手法としては、実写画像データをもとに現実空間の幾何形状モデルを再現し、従来のCG技術で表現する手法が挙げられるが、モデルの正確性や精密度、写実性などの点で限界がある。一方、モデルを用いた再現を行わずに、実写画像を用いて仮想空間を表現するImage-Based Rendering(IBR)技術が近年注目を集めている。IBR技術は、複数の実写画像をもとに、任意の視点から見た画像を生成する技術である。IBR技術は実写画像に基づいているために、写実的な仮想空間の表現が可能である。
このようなIBR技術を用いてウォークスルー可能な仮想空間を構築するためには、使用者の仮想空間内の位置に応じた画像の生成・呈示を行う必要がある。そのため、この種のシステムにおいては、実写画像データの各フレームと仮想空間内の位置とを対応付けて保存しておき、使用者の仮想空間における位置と視線方向に基づいて対応するフレームを取得し、これを再生する。
現実空間内の位置データを得る手法としては、カー・ナビゲーション・システムなどにも用いられているGPS(Global Positioning System)に代表される人工衛星を用いた測位システムを利用するのが一般的である。GPSなどから得られる位置データと、実写画像データを対応付ける手法としては、タイムコードを用いて対応付ける手法が提案されている(例えば、特許文献1参照)。この手法では、位置データに含まれる時刻データと、実写画像データの各フレームに付加したタイムコードとを対応付けることで、実写画像データの各フレームと位置データとの対応付けを行う。
このような仮想空間内のウォークスルーにおいては、使用者が各視点位置で所望の方向を見ることができるようにする。このため、各視点位置の画像を、再生時の画角よりも広い範囲をカバーするパノラマ実写画像で保存しておき、使用者の仮想空間における視点位置と視線方向とに基づいてパノラマ実写画像から再生すべき部分画像を切り出し、これを表示することが考えられる。
ここで、撮像の際に撮像装置が揺れていた場合には、パノラマ実写画像も揺れることになり、さらには表示する部分画像も揺れてしまう。この場合、特殊な防振装置やレールなどの物理的な手段によって撮像装置の振動を防止すると、撮影装置を自由に移動させることができないため、撮影条件が制約されてしまう。また、これらの物理的な手段を用いる方法では、既に撮影された映像の振動を軽減することは原理的に不可能である。
動画像処理を用いれば、既に撮影された映像の振動を軽減することも可能である。たとえば、画像中の特徴点を見付けてそれを複数フレームにわたって追跡すれば、追跡された特徴点の組を基に因子分解法などの幾何計算によって、カメラの位置・姿勢を推定することが可能である。従来、このようなカメラの位置・姿勢の推定は例えば市販のマッチムーブソフトを用いて行うことが可能であり、映像の各フレームにおけるカメラの位置・姿勢が推定できれば、求められたカメラの位置・姿勢の推定値を基に、映像の揺れを軽減させることも可能であった。
特開平11−168754号公報 遠藤、片山、田村、廣瀬、渡辺、谷川:"移動車輌搭載カメラを用いた都市空間の電脳映像化について"(信学ソサイエティ、PA-3-4、pp。276-277、1997年) 廣瀬、渡辺、谷川、遠藤、片山、田村:"移動車輌搭載カメラを用いた電脳映像都市空間の構築(2)−実写画像を用いた広域仮想空間の生成−"(日本バーチャルリアリティ学会第2回大会論文集、pp。67-70、1997年)
しかしながら、マッチムーブソフトなどを用いた動画像処理において、複数台のカメラの位置・姿勢を同時に推定することはできなかった。また、動画像処理によって求められるカメラの位置・姿勢の推定値には誤差が含まれていた。そのため、複数台のカメラによって撮影した画像の振動を、カメラ毎に動画像処理によって軽減してから1枚のパノラマ画像に繋ぎ合わせると、画像同士の繋ぎ目の重なり具合がフレーム毎に変動してしまうという課題を有していた。
本発明は以上の問題に鑑みてなされたものであり、パノラマ画像の揺れを軽減させることを目的とする。
上述の目的は、本発明による画像処理方法であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定し、複数の撮影装置のうちの一以上の各々について姿勢を推定し、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求め、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求め、補正変換を用いて、複数の撮影装置個々の揺れを軽減する補正変換を求め、複数の撮影装置の各々が撮影した撮影画像に対し、対応する補正変換を施し、変換後の複数の撮影画像を合成してパノラマ画像を作成する、ことを特徴とする画像処理方法によって達成される。
また、上述の目的は、本発明による画像処理方法であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定し、複数の撮影装置のうちの一以上の各々について姿勢を推定し、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求め、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求め、複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成作成し、パノラマ画像に共通座標系の揺れを軽減する補正変換を施す、ことを特徴とする画像処理方法によっても達成される。
また、上述の目的は、本発明による画像処理装置であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定する手段と、複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求める手段と、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求める手段と、補正変換を用いて、複数の撮影装置個々の揺れを軽減する補正変換を求める手段と、複数の撮影装置の各々が撮影した撮影画像に対し、対応する補正変換を施す手段と、変換後の複数の撮影画像を合成してパノラマ画像を作成する手段と、を有することを特徴とする画像処理装置によっても達成される。
さらに、上述の目的は、本発明による画像処理装置であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定する手段と、複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求める手段と、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求める手段と、複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を作成する手段と、パノラマ画像に共通座標系の揺れを軽減する補正変換を施す手段と、を有することを特徴とする画像処理装置によっても達成される。
本発明によれば、パノラマ映像の揺れを軽減させることができる。
以下、添付図面に従って、本発明の好適な実施形態について説明する。なお、以下に示す実施形態で説明する画像処理方法は、例えば当該画像処理方法を実現するコンピュータプログラムをコンピュータ装置である画像処理装置で実行することによって実現することができる。
[第1の実施形態]
以下の実施形態では、複数のカメラの各々で撮像した画像をつなぎ合わせて作成されるパノラマ画像を1度に撮像できるような仮想的なパノラマカメラ(以下、仮想パノラマカメラと呼ぶ)を想定し、このような仮想パノラマカメラの位置・姿勢データを基に、パノラマ映像の作成時に揺れを軽減させる画像処理方法を示す。この方法を説明するために、4台のカメラを用いた例を図1に示す。
4台のカメラの相対位置・姿勢は予めカメラキャリブレーション等の手法で求めておく。そして、仮想パノラマカメラ座標系115を定義して、各カメラの座標系111〜114と仮想パノラマカメラ座標系115の間の変換を求めておく。座標系の間の変換は、例えば4×4行列によって表すことができる。
ここで、仮想パノラマカメラの座標系の原点は、仮想パノラマカメラのレンズ中心の位置となる。仮想パノラマカメラのレンズ中心位置は、たとえば、パノラマ画像の作成方法に応じて、各カメラのレンズ中心の重心位置や、ある1台のカメラのレンズ中心の位置などになる。なお、各カメラの位置データを画像処理に使用しない場合には、仮想パノラマカメラの原点は任意の位置としてもよい。
上述の各カメラを同期させて撮像した映像からパノラマ画像を作成する処理の過程で揺れを軽減させる処理を、図2に示す同処理のフローチャートを用いて説明する。
まずステップS201で、各カメラを同期させて撮像した映像を処理装置に入力する。
次にステップS202で、各カメラ(n=1〜4)の各フレーム(m=2〜M)における座標系からフレーム1における座標系への変換Hnmを、マッチムーブソフト等を用いて求める。ここでMは映像の総フレーム数を表すものとする。ここでは全てのカメラの全てのフレームにおける変換を求める。
次にステップS203で、仮想パノラマカメラの位置・姿勢をカメラ毎に推定する。つまり、図3に示すように、Hnmを基に、仮想パノラマカメラのフレームmにおける座標系からフレーム1における座標系への変換Hvm_nを求める。
具体的には、Hvm_n
vm_n=H・Hnm・H −1
によって求めることができる。ここでHは、仮想パノラマカメラの座標系からカメラnの座標系への変換を表す。ここで、各カメラが固定されていて、それらの相対位置・姿勢が変化しない場合には、Hも変化しないので、Hは予め求めておくことができる。
次にステップS204で、仮想パノラマカメラの揺れを軽減する変換を求める。そのために、まず初めに、ステップS203でカメラ台数分だけ求めた仮想パノラマカメラの位置・姿勢の推定値に基づいて、仮想パノラマカメラの位置・姿勢を推定する。つまり、図4に示すように、カメラn(n=1〜4)に対して求められたHvm_nを基に、仮想パノラマカメラのフレームmにおける座標系からフレーム1における座標系への変換Hvmを推定する。
具体的には、カメラn(n=1〜4)に対して求められたHvm_nを、位置・姿勢を表すベクトルxvm_n=(xvm_n、yvm_n、zvm_n、θvm_n、φvm_n、ψvm_n)の形式に変換し、それら4個のベクトルから1個のベクトルxvm=(xvm、yvm、zvm、θvm、φvm、ψvm)を算出し、それを4×4行列Hvmの形式に変換する。
ここでxvmは、例えばxvm_1〜xvm_4の平均とすることができる。平均を取ることによって、xvm_1〜xvm_4のどれかの誤差が大きかった場合にも、xvmの誤差を小さくすることができる。
またxvmを計算する際に、ある1つのカメラに対して求められた位置・姿勢ベクトルが、他のカメラに対して求められた位置・姿勢ベクトルと比較して、予め設定しておいた閾値以上に異なっている場合には、その1つのカメラに対して求められた位置・姿勢ベクトルを計算に用いないようにすることもできる。そうすることによって、xvmの誤差を小さくすることができる。
またxvmは、xvm_1〜xvm_4の1つまたは幾つかの値だけを用いるようにすることもできる。1つまたは幾つかの値だけを用いる場合には、xvm_1〜xvm_4の全ての値を用いる場合と比較して、処理時間を減少させることができる。また、進行方向から離れた向きのカメラに対して求められた位置・姿勢ベクトルを用いなければ、xvmの誤差を小さくすることもできる。
またxvmは、例えばxvm_1〜xvm_4の重み付け平均とすることもできる。例えば、進行方向に沿って前方と後方のカメラに対して求められた位置・姿勢ベクトルの重みを大きくし、進行方向からカメラの向きが離れるに従って重みを小さくすればよい。なぜならば、進行方向と直交する方向の映像と比較して、進行方向に沿った方向の映像の方が、マッチムーブソフトによる推定結果が優れているという傾向が見られるからである。一方、xvm_1〜xvm_4の重心からの距離に応じた重み付け平均を取ることによって、xvmの誤差を小さくすることもできる。
ここで、xvm_1〜xvm_4の重み付け平均を取る処理は、重みの設定の仕方によっては、単なる平均とすることも、1つのカメラに対して求められた位置・姿勢ベクトルを計算に用いないようにすることも、1つまたは幾つかの値だけを用いるようにすることもできることは明らかである。
そして、求められたHvmに基づき、仮想パノラマカメラの揺れを軽減する変換Hvm_sを求める。例えば、Hvm_sは位置・姿勢ベクトルx=(0、0、0、−θvm、−φvm、−ψvm)を4×4行列の形式に変換したものとすればよい。ここで、θはロール角、φはピッチ角、ψはヨー角を表すものとする。このような変換を施せば、フレームmにおける仮想パノラマカメラの姿勢をフレーム1における姿勢と略同一とすることができる。なお、x=(0、0、0、−θvm、−φvm、0)としてヨー角を補正しないようにしてもよい。そうすれば、仮想パノラマカメラが旋回しながら移動している場合に、旋回の動きを除去してしまうことを防ぐことができる。
次にステップS205で、カメラn(n=1〜4)の揺れを軽減する変換Hnm_sを求める(図5)。具体的には、Hnm_s
nm_s=H −1・Hvm_s・H
によって求められる。
次にステップS206で、カメラn(n=1〜4)で撮像された画像に対して変換Hnm_sを施した画像を繋ぎ合わせて、揺れが軽減されたパノラマ画像を作成する。パノラマの繋ぎ合わせには公知の手法を用いることができる。
次にステップS207で、全てのフレームに対して処理が終わったかどうかを判定する。終わっていなかった場合には、フレーム番号を更新し、ステップS203から処理を繰り返す。全てのフレームに対して処理が終わっていた場合には、ステップS208に進む。
最後にステップS208で、作成したパノラマ画像を表示装置に表示する。
以上の処理により、仮想パノラマカメラの位置・姿勢データを基に、パノラマ映像の作成時に揺れを軽減させることができる。
ここで、以上の処理における全ての変換において、位置データを使わずに姿勢データのみを用いることもできる。
なお本実施形態ではカメラ4台で全周方向の情景を撮像していたが、これに限定されることなく、任意の台数のカメラでもよい。
[第2の実施形態]
本実施形態では、仮想パノラマカメラの位置・姿勢データを基にパノラマ映像の揺れを表示時に軽減させる画像処理方法を示す。第1の実施形態と同様に4台のカメラを用いた例について説明する。
図1に示す4台のカメラの相対位置・姿勢は予めカメラキャリブレーション等の手法で求めておく。そして、例えば各カメラのレンズ中心の重心を原点とする仮想パノラマカメラ座標系115を定義して、各カメラの座標系111〜114と仮想パノラマカメラ座標系115の間の変換を求めておく。座標系の間の変換は、例えば4×4行列によって表すことができる。
上述の各カメラを同期させて撮像した映像の揺れを表示時に軽減させる処理を、図6に示す同処理のフローチャートを用いて説明する。
まずステップS601で、各カメラを同期させて撮像した映像を処理装置に入力する。
次にステップS602で、各カメラ(n=1〜4)の各フレーム(m=2〜M)における座標系からフレーム1における座標系への変換Hnmを、マッチムーブソフト等を用いて求める。ここでMは映像の総フレーム数を表すものとする。ここでは全てのカメラの全てのフレームにおける変換を求める。
次にステップS603で、仮想パノラマカメラの位置・姿勢をカメラ毎に推定する。つまり、図3に示すように、Hnmを基に、仮想パノラマカメラのフレーム1における座標系からフレームmにおける座標系への変換Hvm_nを求める。変換Hvm_nは、第1の実施形態のステップS203において説明した方法を用いて求める。
次にステップS604で、仮想パノラマカメラの揺れを軽減する変換を求める。そのために、図4に示すように、カメラn(n=1〜4)に対して求められたHvm_nを基に、仮想パノラマカメラのフレームmにおける座標系からフレーム1における座標系への変換Hvmを推定し、そして、求められたHvmに基づき、仮想パノラマカメラの揺れを軽減する変換Hvm_sを求める。変換Hvm_sは、第1の実施形態のステップS204において説明した方法を用いて求める。
次にステップS605で、全てのフレームに対して処理が終わったかどうかを判定する。終わっていなかった場合には、フレーム番号を更新し、ステップS603から処理を繰り返す。全てのフレームに対して処理が終わっていた場合には、ステップS607に進む。
一方ステップS606で、カメラn(n=1〜4)で撮像されて、処理装置に入力された画像を繋ぎ合わせて、パノラマ画像を作成する。
最後にステップS607で、フレームmのパノラマ画像に対して仮想パノラマカメラの揺れを軽減する変換Hvm_sを施して、揺れた軽減されたパノラマ画像を表示装置に表示する。
以上の処理により、仮想パノラマカメラの位置・姿勢データを基に、パノラマ映像の揺れを表示時に軽減させることができる。
ここで、以上の処理における全ての変換において、位置データを使わずに姿勢データのみを用いることもできる。
なお本実施形態ではカメラ4台で全周方向の情景を撮像していたが、これに限定されることなく、任意の台数のカメラでもよい。
[第3の実施形態]
本実施形態では、複数のカメラの姿勢情報を基に計算した仮想パノラマカメラの姿勢情報を用いて、パノラマ映像の表示時に振動を軽減する画像処理方法を示す。
まず、本実施形態によるパノラマ映像生成システムについて説明する。図7は本実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。本システムは、映像収集システム110と画像処理装置1とを含んで構成される。画像処理装置1は、撮影映像保存部10、個別カメラ姿勢情報計算部20、操作部30、表示部40、個別カメラ姿勢情報保存部50、仮想パノラマカメラ姿勢計算部60、仮想パノラマカメラ姿勢情報保存部70、パノラマ映像生成部80、パノラマ映像保存部90、振動除去部100を有する。
撮影映像保存部10は、後で説明する映像収集システム110によって得られた実写映像を例えばハードディスクドライブ等の記憶装置に格納する。
個別カメラ姿勢情報計算部20は、撮影映像保存部10に格納された映像の各フレームの姿勢情報を計算する。処理の詳細は後で説明する。
操作部30は、本システムのユーザがシステムに指示入力等を行うためのものであり、マウス、キーボード等の入力装置を備える。上述の個別カメラ姿勢情報計算部20では、操作部30からの操作入力に従って、表示部40の表示を見ながら、カメラパラメータなどを設定する。
カメラ姿勢情報保存部50は、上述の個別カメラ姿勢情報計算部20で算出した各カメラの姿勢情報を格納する。
仮想パノラマカメラ姿勢情報計算部60は、上述の個別カメラ姿勢情報保存部50に格納された各カメラの姿勢情報を統合して仮想パノラマカメラの姿勢情報を計算する。処理の詳細は後で説明する。
仮想パノラマカメラ姿勢情報保存部70は、上述の仮想パノラマカメラ姿勢計算部60で算出した仮想パノラマカメラの姿勢情報を格納する。
パノラマ映像生成部80は、撮影映像保存部10に格納された同時刻の映像フレームを順次繋ぎ合わせて、パノラマ映像の生成処理を行う。処理の詳細は後で説明する。
パノラマ映像保存部90は、上述のパノラマ映像生成部80で生成したパノラマ映像を格納する。
振動除去部100は、仮想パノラマカメラ姿勢情報保存部70に格納された仮想パノラマカメラの姿勢情報を用いて、パノラマ映像保存部90に格納されたパノラマ映像の振動を軽減し、表示部40に表示する。
図8は、撮影映像保存部10に保存される映像を収集するための映像収集システム110の構成例を示す図である。図8に示されるように、この映像収集システム110は、撮影部1101、記録部1102、キャプチャ部1103の3つの部分に分けられる。撮影部1101は周囲の情景を移動しながら撮影するのに用いられ、記録部1102は撮影部1101からの映像出力を記録するのに用いられ、キャプチャ部1103は収集された映像を画像処理装置1の撮影映像保存部10に格納するのに用いられる。
ここで撮影部1101は、図9に示すように、N台(N≧2)のカメラ1101−1〜Nと同期信号発生部1104から成る。カメラ1101−1〜Nにはそれぞれ同期信号発生部1104からの外部同期信号を入力することが可能であり、本実施形態では、同期信号発生部1104より出力される外部同期信号を用いて、カメラ1101−1〜Nのシャッタータイミングを一致させている。カメラ1101−1〜Nはたとえば図1に示したように放射状に配置することができる。または、カメラ1101−1〜Nの視界を多角錐ミラーで反射させることによって、夫々の視点を一致させてもよい。いずれの場合も、カメラ1101−1〜Nはしっかりと固定し、夫々の相対位置・姿勢が変化しないようにする。
次に、画像処理装置1について説明する。図10は、本実施形態による画像処理装置1のハードウェア構成例を示すブロック図である。図10に示したハードウェア構成は市販されている通常のパーソナルコンピュータの構成と同等である。図10において、例えばハードディスクに代表されるディスク405は撮影映像保存部10を構成するものであり、図8〜図9に関連して説明した映像収集システム110によって得られた映像が記憶される。なお、ディスク405は上述の撮影映像保存部10のみならず、図7に示したカメラ姿勢情報保存部50、仮想パノラマカメラ姿勢情報保存部70、パノラマ映像保存部90をも構成するものである。
CPU401は、ディスク405またはROM406、または外部記憶装置(不図示)に保存されているプログラムを実行することにより、個別カメラ姿勢情報計算部20、仮想パノラマカメラ姿勢情報計算部60、パノラマ映像生成部80として機能する。
CPU401が表示コントローラ(CRTC)402に対して各種の表示指示を行うことにより、表示コントローラ402およびフレームバッファ403によって表示器(CRT)404に所望の表示がなされる。なお、図では表示コントローラ402としてCRTC、表示器404としてCRTを示したが、表示器としては陰極線管に限らず、液晶表示器等を用いてもよいことはもちろんである。なお、CRTC402、フレームバッファ403及びCRT404は、図7の表示部40を構成する。マウス408およびキーボード409およびジョイスティック410は、当該画像処理装置1へのユーザの操作入力を行うためのものであり、図7の操作部30を構成する。
次に、画像処理装置1における処理の詳細を説明する。この方法を説明するために、N台のカメラを放射状に配置した場合の例を図11に示す。
N台のカメラ1101−1〜Nの相対姿勢は予め既知のカメラキャリブレーションなどの手法で求めておく。そして、たとえば各カメラのレンズ中心の重心を原点とする仮想パノラマカメラ座標系510を定義して、各カメラのレンズ中心を原点とする座標系1111−1〜Nと仮想パノラマカメラ座標系510の間の変換を求めておく。座標系間の変換は、たとえば4×4行列によって表すことができる。
上述の各カメラを同期させて撮影した映像を基に、パノラマ映像の表示時に振動を軽減する処理の流れを、図12に示す同処理のフローチャートを用いて説明する。
まずステップS100で、各カメラ1101−1〜Nの姿勢情報を個別に計算する。処理の詳細は、後で、図13に示す同処理のフローチャートを用いて説明する。
次にステップS120で、各カメラ1101−1〜Nの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算する。処理の詳細は、後で、図14に示す同処理のフローチャートを用いて説明する。
一方、ステップS140で、カメラ1101−1〜Nによって得られた映像の各フレームを繋ぎ合わせて、パノラマ映像を生成する。処理の詳細は、後で、図15に示す同処理のフローチャートを用いて説明する。
最後にステップS160で、ステップS120で求めた仮想パノラマカメラの位置姿勢に基づき、ステップS140で生成したパノラマ映像の各フレームに対して仮想パノラマカメラの振動を軽減する変換を施して、振動が軽減されたパノラマ映像を表示装置に表示する。処理の詳細は、後で、図16に示す同処理のフローチャートを用いて説明する。以上の処理により、パノラマ映像の表示時に振動を軽減することができる。
(個別カメラの姿勢情報の計算)
ここで、図12のステップS100における処理の詳細を、図13に示す同処理のフローチャートを用いて説明する。これは個別カメラ姿勢情報計算部20における処理の詳細の説明でもある。
まずステップS1001において、カメラ番号を指す変数nを初期値「1」に設定する。
次にステップS1002において、カメラ1101−nによって得られた映像を、撮影映像保存部10より取得する。ここで、撮影部1101が、カメラ1101−nを光軸回りに略90度回転(ロール)させて縦長の映像を撮影する構成である場合には、取得した映像を略90度回転させることによってロールの角度を調整しておく。また、撮影部1101が、カメラ1101−nの視界を多角錐ミラーで反射させる構成である場合には、取得した映像を反転させておく等してミラーの影響を除去する。
ステップS1003では、撮像素子のサイズや焦点距離など、カメラ1101−nの既知のカメラパラメータを入力する。
そしてステップS1004では、カメラ1101−nの各フレームにおける姿勢情報を計算する。具体的には、各フレームm(m=2〜M)における座標系からフレーム1における座標系への変換Hnmを、マッチムーブソフトなどを用いて求める。ここでMはカメラ1101−nによって撮影された映像の総フレーム数を表すものとする。なお、姿勢情報は変換Hnmから容易に計算することができるので、本実施形態では変換Hnmが姿勢情報を表すものとする。
そしてステップS1005において、各フレームにおけるカメラの姿勢情報Hnmを、カメラ姿勢情報保存部50に格納する。
ステップS1006では、カメラ番号を指すnに「1」を足す。ステップS1007で、全てのカメラの映像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS1002へ戻る。
以上の処理により、各カメラの各フレームにおける姿勢情報を個別に求めることができる。
(仮想パノラマカメラの姿勢情報の計算)
次に、ステップS120における処理の詳細を、図14に示す同処理のフローチャートを用いて説明する。これは仮想パノラマカメラ姿勢情報計算部60における処理の詳細の説明でもある。
まずステップS1201において、カメラ姿勢情報保存部50から、各カメラの各フレームにおける姿勢情報Hnmを取得する。
次にステップS1202において、フレーム番号を指すmを初期値「1」に設定し、そしてステップS1203において、カメラ番号を指すnを初期値「1」に設定する。
ステップS1204では、仮想パノラマカメラの姿勢情報をカメラ毎に計算する。つまり、図3に示すように、Hnmを基に、仮想パノラマカメラのフレームmにおける座標系からフレーム1における座標系への変換Hvm_nを求める。ここで、変換Hvm_nが仮想パノラマカメラの姿勢情報を表すものとする。
具体的には、Hvm_n
vm_n=H・Hnm・H −1
によって求めることができる。ここでHは、カメラ1101−nの座標系から仮想パノラマカメラの座標系への変換を表す。ここで、各カメラが固定されていて、それらの相対姿勢が変化しない場合には、Hも変化しないので、Hは予め求めておくことができる。
ステップS1205では、各フレームにおける仮想パノラマカメラの姿勢情報Hvmを、仮想パノラマカメラ姿勢情報保存部70に格納する。
ステップS1206では、カメラ番号を指すnに「1」を足す。ステップS1207で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS1204へ戻る。
次にステップS1208で、仮想パノラマカメラの姿勢情報を統合する。具体的には、ステップS1204でカメラ台数分だけ求めた仮想パノラマカメラの姿勢情報に基づいて、仮想パノラマカメラの姿勢情報を計算する。つまり、図4に示すように、カメラ1101−1〜Nに対して求められたHvm_nを基に、仮想パノラマカメラのフレームmにおける座標系からフレーム1における座標系への変換Hvmを計算する。
より具体的には、カメラ1101−1〜Nに対して求められたHvm_nを、姿勢情報を表すベクトルxvm_n=(θvm_n、φvm_n、ψvm_n)の形式に変換し、それらN個のベクトルから1個のベクトルxvm=(θvm、φvm、ψvm)を算出し、それを4×4の回転行列Hvmの形式に変換する。ここで、θvm_nはロール角、φvm_nはピッチ角、ψvm_nはヨー角を表すものとする。
なお、たとえば左手座標系では、変換Hvm_nからθvm_n、φvm_n、ψvm_nを求める計算式は、Hvm_nの各要素が
Figure 0003862688
と表されるとすると、
Figure 0003862688
となる。また、4×4の回転行列Hvmは、
Figure 0003862688
と表される。
ここでxvmは、たとえばxvm_1〜xvm_Nの平均とすることができる。この場合、xvmは、
Figure 0003862688
となる。平均を取ることによって、xvm_1〜xvm_Nの何れかの誤差が大きかった場合にも、xvmの誤差を小さくすることができる。
一方、単純にxvm_1〜xvm_Nの値の平均を取るのではなく、信頼度に応じた計算によってxvmを算出することにより、さらにxvmの誤差を小さくすることもできる。
以下、いくつかの例を説明する。
vm_n(n=1〜N)の値は、たとえば、画像中の特徴点を見付けてそれを複数フレームにわたって追跡し、追跡された特徴点のセットを基に因子分解法などの幾何計算を行うことによって求めることができる。その場合、xvm_nの値の信頼度は、特徴点を平均何フレームにわたって追跡できたかに依存する。つまり、xvm_nの信頼度rは、平均追跡可能フレーム数をmとすると、
=f(m
によって表すことができる。ここでfは何らかの関数を表すものとする。
たとえば単純に比例の関係にある場合には、
=m
によって表すことができる。このとき、平均追跡可能フレーム数がある閾値(たとえば10)未満ならば誤差が許容できないとすると、
<10
の場合にはxvm_nをxvmの計算に使わないようにすることにより、xvmの誤差を小さくすることができる。
またxvmは、たとえばxvm_1〜xvm_Nの信頼度に応じた重み付け平均とすることにより、さらに正確に推定することもできる。 この場合、xvmは、
Figure 0003862688
となる。
vm_nの信頼度rは、平均追跡可能フレーム数mを基に計算するのではなく、映像収集システム110を構成する各カメラの向きに応じて予め計算しておくこともできる。ここで、映像収集システム110の進行方向とカメラの光軸方向のなす角が90度に近い場合には、画面上での特徴点の移動量が大きくなるため、平均追跡可能フレーム数が少なくなる傾向がある。そこで、進行方向または進行逆方向とカメラの光軸方向のなす角が大きいほど信頼度rを予め小さな値に設定しておいてもよい。
たとえば、進行方向のベクトルをv、カメラの光軸方向のベクトルをvとすると、信頼度rは、それらの内積を用いて、
Figure 0003862688
と表すことができる。ただし、rn0はある定数を表す。
ここで、各カメラに対応する信頼度は、映像収集システム110の中心から点対称となるように設定することができる。なお、映像収集システム110を自動車に搭載して左車線を走行した場合には、進行方向左側のカメラの方が右側のカメラよりも対象物までの距離が近いため、特徴点を追跡できる平均フレーム数mが少なくなる。そこで、進行方向左側のカメラの信頼度を右側よりも低く設定してもよい。
また、進行方向とのなす角が90度に近いカメラに対応するxvm_nの値をそもそも計算しないようにしてもよい。そうすることにより、計算時間を減少させつつ、xvmの誤差を小さくすることができる。
なお、xvm_1〜xvm_Nの重み付け平均を取る処理は、重みとなる信頼度rの設定の仕方によっては、単なる平均とすることも、いくつかの値を用いないようにすることもできることは明らかである。つまり、全てのnに対してrを同一にすれば、単なる平均となり、あるnに対してrを0にすれば、対応するxvm_nの値は使用されないことになる。
ここで、図14に示すフローチャートの説明に戻る。ステップS1209では、フレーム番号を指すmに「1」を足す。ステップS1210で、全てのフレーム画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS1203へ戻る。
以上の処理により、仮想パノラマカメラの各フレームにおける姿勢情報を求めることができる。
(パノラマ画像の生成)
次に、図12のステップS140におけるパノラマ画像生成処理例の詳細を、図15に示す同処理のフローチャートを用いて説明する。これはパノラマ映像生成部80における処理の詳細の説明でもある。本処理では、連続する複数のフレームに対して以下の処理を順次行うことにより、パノラマ映像を生成する。
まずステップS1401において、不図示のパラメータ保存部から画像修正やパノラマ画像生成に用いる各種パラメータを読み込み、ステップS1402において、カメラ番号を指すnを初期値「1」に設定する。
次にステップS1403において、カメラ1101−nによって得られた映像のフレームを、撮影映像保存部10より取得する。ここで、上述したように、撮影部1101が、カメラ1101−nを光軸回りに略90度回転させて縦長の映像を撮影する構成である場合には、取得した画像を90度回転させることによってロールの角度を調整しておく。また、撮影部1101が、カメラ1101−nの視界を多角錐ミラーで反射させる構成である場合には、取得した画像を反転させておく。
そしてステップS1404では読み込んだ画像の縦横比を補正し、ステップS1405ではレンズの歪曲を補正する。本実施形態では樽型歪曲を修正する。さらにステップS1406で画像面の回転を行い、ステップS1407では、不図示のパラメータ保存部から読み込んだ画角に応じて、画像を平面から円筒面に投影し、変換画像を生成する。
ステップS1408では、カメラの番号を指すnに「1」を足す。ステップS1409で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS1403へ戻る。
最後にステップS1410において、不図示のパラメータ保存部から読み込んだ上下左右シフト量や混合割合などを用いて、N枚(カメラ台数分)の変換画像を繋ぎ合わせる。そしてステップS1411で、生成されたパノラマ画像を、パノラマ映像保存部90に格納する。
以上の処理により、各種パラメータに基づいて、パノラマ映像を生成することができる。
(振動の影響を軽減したパノラマ画像生成・表示)
次に、図12のステップS160における処理例の詳細を、図16に示す同処理のフローチャートを用いて説明する。これは振動除去部100における処理の詳細の説明でもある。
まずステップS1601において、仮想パノラマカメラ姿勢情報保存部70から、仮想パノラマカメラの各フレームにおける姿勢情報Hvmを取得する。
次にステップS1602において、操作部30の操作に応じて、フレーム番号を指すmを設定し、ステップS1603において、パノラマ映像のフレームmをパノラマ映像保存部90より取得する。
そしてステップS1604において、取得したパノラマ画像に対して、仮想パノラマカメラの振動を軽減する変換を施して、振動が軽減されたパノラマ画像を表示部40に表示する。
ここで、仮想パノラマカメラの振動を軽減する変換Hvm_sは、ステップS1601で取得したHvmから求めることができる。たとえばHvm_sは、Hvmから求められるロール角θ、ピッチ角φ、ヨー角ψを基に、姿勢ベクトルxvm=(−θvm、−φvm、−ψvm)を構成し、それを4×4の回転行列の形式で表したものとすればよい。このような変換を施せば、フレームmにおける仮想パノラマカメラの姿勢をフレーム1における姿勢と略同一とすることができる。なお、xvm=(−θvm、−φvm、0)としてヨー角を補正しないようにしてもよい。そうすれば、画像収集システム110が旋回しながら移動していた場合に、振動軽減処理によって旋回の動きを除去してしまうことを防ぐことができる。
最後にステップS1605で、表示処理を終了するかどうかを判定する。終了しない場合には、ステップS1602から処理を繰り返す。
以上の処理により、振動が軽減されたパノラマ映像を表示することができる。
以上のように、第3の実施形態によれば、複数のカメラの姿勢情報を基に計算した仮想パノラマカメラの姿勢情報を用いて、パノラマ映像の表示時に振動を軽減することができる。
[第4の実施形態]
第3の実施形態では、姿勢情報がロール角、ピッチ角、ヨー角の3つの方位情報から構成される場合について説明した。本実施形態では、姿勢情報に、3つの方位情報に加えて3次元の位置情報も含まれる場合について説明する。
本実施形態における、仮想パノラマカメラ姿勢情報計算部60における処理の流れは、図14に示す、第3の実施形態におけるフローチャートと同一である。ただし、ステップS1208における、仮想パノラマカメラの姿勢情報の統合方法が異なる。
本実施形態では、カメラ1101−1〜Nに対して求められたHvm_nは、姿勢情報を表すベクトルxvm_n=(Xvm_n、Yvm_n、Zvm_n、θvm_n、φvm_n、ψvm_n)の形式に変換し、それらN個のベクトルから1個のベクトルxvm=(Xvm、Yvm、Zvm、θvm、φvm、ψvm)を算出し、それを4×4行列Hvmの形式に変換したものとすればよい。
なお、たとえば左手座標系では、変換Hvm_nからXvm_n、Yvm_n、Zvm_n、θvm_n、φvm_n、ψvm_nを求める計算式は、Hvm_nの各要素が
Figure 0003862688
と表されるとすると、
Figure 0003862688
となる。また、行列Hvmは、
Figure 0003862688
となる。
ここで、N個のベクトルから1個のベクトルxvmを算出する方法は、第3の実施形態で説明した方法と同一である。
また、本実施形態における、振動除去部100における処理の流れは、図16に示す、第3の実施形態におけるフローチャートと同一である。ただし、ステップS1604における、仮想パノラマカメラの振動を軽減する変換Hvm_sの算出方法が異なる。
本実施形態では、Hvm_sは、Hvmから求められる座標Xvm、Yvm、Zvm、および、ロール角θvm、ピッチ角φvm、ヨー角ψvmを基に、姿勢ベクトルxvm=(−Xvm、−Yvm、−Zvm、−θvm、−φvm、−ψvm)を構成し、それを4×4行列の形式で表したものとすればよい。なお、xvm=(−Xvm、−Yvm、−Zvm、−θvm、−φvm、0)としてヨー角を補正しないようにしてもよい。
以上のように、第4の実施形態によれば、姿勢情報に3次元の位置情報も含まれる場合にも、パノラマ映像の表示時に振動を軽減することができる。
[第5の実施形態]
本実施形態では、複数のカメラの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算し、それを基に複数のカメラの姿勢情報を再計算した結果を用いて、パノラマ映像の生成時に振動を軽減する画像処理方法を示す。
まず、本実施形態によるパノラマ映像生成システムについて説明する。図17は本実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。本システムは、映像収集システム110と画像処理装置2とを含んで構成される。画像処理装置2は、撮影映像保存部210、個別カメラ姿勢情報計算部220、操作部230、表示部240、個別カメラ姿勢情報保存部250、仮想パノラマカメラ姿勢情報計算部260、仮想パノラマカメラ姿勢情報保存部270、連動カメラ姿勢情報計算部280、連動カメラ姿勢情報保存部290、除振パノラマ映像生成部300、除振パノラマ映像保存部310を有する。
ここで、撮影映像保存部210、個別カメラ姿勢情報計算部220、操作部230、表示部240、個別カメラ姿勢情報保存部250、仮想パノラマカメラ姿勢情報計算部260、仮想パノラマカメラ姿勢情報保存部270の構成は、夫々、第3の実施形態における撮影映像保存部10、個別カメラ姿勢情報計算部20、操作部30、表示部40、個別カメラ姿勢情報保存部50、仮想パノラマカメラ姿勢情報計算部60、仮想パノラマカメラ姿勢情報保存部70の構成と同一である。
連動カメラ姿勢情報計算部280は、仮想パノラマカメラ姿勢情報計算部260の計算結果を基に、各カメラの姿勢情報を再計算する。処理の詳細は後で説明する。
連動カメラ姿勢情報保存部290は、上述の連動カメラ姿勢情報計算部280で算出した各カメラの姿勢情報を格納する。
除振パノラマ映像生成部300は、撮影映像保存部210に格納された映像を振動軽減してから繋ぎ合わせることにより、振動が軽減されたパノラマ映像の生成処理を行う。処理の詳細は後で説明する。
除振パノラマ映像保存部310は、上述の除振パノラマ映像生成部300で生成した、振動が軽減されたパノラマ映像を格納する。
次に、画像処理装置2について説明する。本実施形態による画像処理装置2は、図10に示す、第3の実施形態による画像処理装置1のハードウェア構成と同一構成により実現できる。ただし、個々の構成の一部が異なる。
ディスク405は上述の撮影映像保存部210のみならず、図17に示した個別カメラ姿勢情報保存部250、仮想パノラマカメラ姿勢情報保存部270、連動カメラ姿勢情報保存部290、除振パノラマ映像保存部310をも構成するものである。
CPU401は、個別カメラ姿勢情報計算部220、仮想パノラマカメラ姿勢情報計算部260、連動カメラ姿勢情報計算部280、除振パノラマ映像生成部300として機能する。
CRTC402、フレームバッファ403及びCRT404は、上述の表示部240を構成する。マウス408およびキーボード409は、当該画像処理装置2へのユーザの操作入力を行うためのものであり、上述の操作部230を構成する。
次に、画像処理装置2における処理の詳細を説明する。第3の実施形態と同様に、図11のようにN台のカメラを放射状に配置した場合について説明する。
上述の各カメラを同期させて撮影した映像の振動を軽減してからパノラマ映像を生成する処理を、図18に示す同処理のフローチャートを用いて説明する。
まずステップS200で、各カメラの姿勢情報を個別に計算する。処理の内容は、第3の実施形態で図13のフローチャートを用いて説明した処理の内容と同一である。
次にステップS220で、各カメラの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算する。処理の内容は、第3の実施形態で図14のフローチャートを用いて説明した処理の内容と同一である。
次にステップS240で、仮想パノラマカメラの姿勢情報を基に、各カメラの姿勢情報を再計算する。処理の詳細は、後で、図19に示す同処理のフローチャートを用いて説明する。
次にステップS260で、カメラ1101−1〜Nによって得られた映像の各フレームを振動軽減しながら繋ぎ合わせて、パノラマ映像を生成する。処理の詳細は、後で、図20に示す同処理のフローチャートを用いて説明する。以上の処理により、パノラマ映像の生成時に振動を軽減することができる。
(連動カメラ姿勢情報計算処理)
次に、図18のステップS240における連動カメラ姿勢情報計算処理例の詳細を、図19に示す同処理のフローチャートを用いて説明する。これは連動カメラ姿勢情報計算部280における処理の詳細の説明でもある。
まずステップS2401において、仮想パノラマカメラ姿勢情報保存部270から、仮想パノラマカメラの各フレームにおける姿勢情報Hvmを取得する。
次にステップS2402において、フレーム番号を指すmを初期値「1」に設定する。そしてステップS2403において、仮想パノラマカメラの振動を軽減する変換Hvm_sをHvmから求める。
たとえばHvm_sは、Hvmから求められるロール角θ、ピッチ角φ、ヨー角ψを基に、姿勢ベクトルxvm=(−θvm、−φvm、−ψvm)を構成し、それを4×4の回転行列の形式で表したものとすればよい。このような変換を施せば、フレームmにおける仮想パノラマカメラの姿勢をフレーム1における姿勢と略同一とすることができる。なお、xvm=(−θvm、−φvm、0)としてヨー角を補正しないようにしてもよい。そうすれば、画像収集システムが旋回しながら移動していた場合に、振動軽減処理によって旋回の動きを除去してしまうことを防ぐことができる。
次にステップS2404において、カメラ番号を指すnを初期値「1」に設定する。そしてステップS2405において、カメラ1101−nの振動を軽減する変換Hnm_sを求める(図5参照)。具体的には、Hnm_s
nm_s=H −1・Hvm_s・H
によって求めることができる。ここで、Hnm_sを基にカメラ1101−nの姿勢情報を求めることができるので、本実施形態ではHnm_sがカメラ1101−nの姿勢情報を表すものとする。
ステップS2406では、算出したカメラの姿勢情報Hnm_sを、連動カメラ姿勢情報保存部290に格納する。
ステップS2407では、カメラ番号を指すnに「1」を足す。ステップS2408で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS2405へ戻る。
ステップS2409では、フレーム番号を指すmに「1」を足す。ステップS2410で、全てのフレーム画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS2403へ戻る。以上の処理により、各カメラの各フレームにおける姿勢情報を求めることができる。
(振動の影響を軽減したパノラマ画像生成・表示)
次に、図18のステップS260における処理例の詳細を、図20に示す同処理のフローチャートを用いて説明する。これは除振パノラマ映像生成部300における処理の詳細の説明でもある。本処理では、連続する複数のフレームに対して以下の処理を順次行うことにより、振動が軽減されたパノラマ映像を生成する。
まずステップS2601において、不図示のパラメータ保存部から画像修正やパノラマ画像生成に用いる各種パラメータを読み込み、ステップS2602において、連動カメラ姿勢情報保存部290から、各カメラの各フレームにおける姿勢情報を取得する。そしてステップS2603において、カメラの番号を指すnを初期値「1」に設定する。
次にステップS2604において、カメラ1101−nによって得られた映像のフレームを、撮影映像保存部210より取得する。ここで、上述したように、撮影部1101が、カメラ1101−nを光軸回りに略90度回転させて縦長の映像を撮影する構成である場合には、取得した画像を90度回転させることによってロールの角度を調整しておく。また、撮影部1101が、カメラ1101−nの視界を多角錐ミラーで反射させる構成である場合には、取得した画像を反転させておく。
そしてステップS2605では読み込んだ画像の縦横比を補正し、ステップS2606ではレンズの歪曲を補正する。本実施形態では樽型歪曲を修正する。
ステップ2607では、上記の画像に対して、カメラ1101−nの振動を軽減する変換Hnm_sを施して、振動を軽減する。
さらにステップS2608で画像面の回転を行い、ステップS2609では、不図示のパラメータ保存部から読み込んだ画角に応じて、画像を平面から円筒面に投影し、変換画像を生成する。
ステップS2610では、カメラ番号を指すnに「1」を足す。ステップS2611で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップS2604へ戻る。
最後にステップS2612において、不図示のパラメータ保存部から読み込んだ上下左右シフト量と混合割合を用いて、N枚(カメラ台数分)の変換画像を繋ぎ合わせる。そしてステップS2613で生成された、振動が軽減されたパノラマ画像を、除振パノラマ映像保存部310に格納する。
以上の処理により、振動が軽減されたパノラマ映像を生成することができる。
以上のように、第5の実施形態によれば、複数のカメラの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算し、それを基に複数のカメラの姿勢情報を再計算した結果を用いて、パノラマ映像の生成時に振動を軽減することができる。
[第6の実施形態]
第5の実施形態では、姿勢情報がロール角、ピッチ角、ヨー角の3つの方位情報から構成される場合について説明した。本実施形態では、姿勢情報に、3つの方位情報に加えて3次元の位置情報も含まれる場合について説明する。
本実施形態における、仮想パノラマカメラ姿勢情報計算部260における処理の流れは、図14に示す、第3の実施形態におけるフローチャートと同一である。ただし、ステップS1208における、仮想パノラマカメラの姿勢情報の統合方法が異なり、第4の実施形態において説明した方法と同一となる。
また、本実施形態における連動カメラ姿勢情報計算部280における処理の流れは、図19に示す、第5の実施形態におけるフローチャートと同一である。ただし、ステップS2403における、仮想パノラマカメラの振動を軽減する変換Hvm_sの算出方法が異なり、第4の実施形態において説明した方法と同一となる。
以上のように、第6の実施形態によれば、姿勢情報に3次元の位置情報も含まれる場合にも、パノラマ映像の生成時に振動を軽減することができる。
[第7の実施形態]
第1〜第6の実施形態では、カメラ(仮想パノラマカメラまたは各カメラ)の姿勢情報を用いて振動の軽減を行っていた。本実施形態では、カメラの姿勢情報に変換を施してから振動の軽減を行う場合について説明する。
たとえば、映像の第1フレームと最終フレームでは所望の姿勢となるように、カメラ(仮想パノラマカメラまたは各カメラ)の姿勢情報を変換してもよい。その際、姿勢を指定していないフレームの姿勢情報は、変換量が線形に変化するように変換すればよい。たとえば、カメラのロール角が第1フレームではθ、最終フレームではθであり、所望のロール角が第1フレームではθ’、最終フレームではθ’である場合に、フレームm(m=1〜M)における変換後のロール角θ’は、変換前のロール角をθとすると、
Figure 0003862688
と表すことができる。
ロール角以外の要素に関しても同様の計算式を用いればよい。なお、途中のいくつかのフレームでも所望の姿勢となるようにカメラの姿勢情報を変換してもよい。このように変換することにより、たとえば他のパノラマ映像への分岐が存在した場合に、映像が切り替わる際の姿勢の変化を少なくすることができる。
また、振動軽減の際の姿勢の変換量(θ’−θ)に上限を設けてもよい。そうすることにより、姿勢が大きく変化した場合に、映像が表示されなくなる領域が大きくなり過ぎることを防止できる。たとえば、変換量に上限が無ければフレームmにおけるロール角θが角θ’に変換されるような場合に、ロール角の変換量の上限を5度に設定すると、上限付きの変換値θm” は、
Figure 0003862688
と表すことができる。または、変換量の最大値が例えば12度だった場合に、上限付きの変換値θm” を、
Figure 0003862688
によって求めてもよい。もちろん、ロール角以外の要素も同様の計算式によって求めることができる。
上と同様の目的を達成するために、振動の全てを軽減するのではなく、振動の高周波成分のみを軽減するようにしてもよい。たとえば、高周波成分は、求められた変換量を、その前後数フレームの変換量の加重平均で除すことによって算出することができる。
以上のように、第7の実施形態によれば、各カメラの姿勢情報を変換してから振動の軽減を行うことにより、パノラマ映像の表示品質を改善することができる。
[他の実施形態]
上述の実施形態において説明した画像処理方法は、1つの機器から構成される処理装置によって実現しても良いし、複数の機器から構成されるシステムによって実現しても良い。
尚、前述した実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線/無線通信を用いて当該プログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを実行することによって同等の機能が達成される場合も本発明に含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、MO、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等の光/光磁気記憶媒体、不揮発性の半導体メモリなどがある。
有線/無線通信を用いたプログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル(プログラムデータファイル)を記憶し、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法などが挙げられる。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してホームページからダウンロードさせることによって供給し、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
パノラマ画像の撮像用に4台のカメラを用いた例を示す図である。 第1の実施形態における、仮想パノラマカメラの位置・姿勢データを基にパノラマ映像の作成時に揺れを軽減させる処理を説明するフローチャートである。 仮想パノラマカメラの位置・姿勢をカメラ毎に推定する変換を説明する図である。 カメラ台数分だけ求めた仮想パノラマカメラの位置・姿勢の推定値に基づいて、仮想パノラマカメラの位置・姿勢を推定する変換を説明する図である。 カメラの揺れを軽減させる変換を説明する図である。 第2の実施形態における、仮想パノラマカメラの位置・姿勢データを基にパノラマ映像の揺れを表示時に軽減させる処理を説明するフローチャートである。 第3の実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。 撮影映像保存部10に保存される映像を収集するための映像データ収集システム110の構成例を示す図である。 撮影部1101の構成を詳細に示すブロック図である。 画像処理装置1のハードウェア構成例を示すブロック図である。 パノラマ映像の撮影用にカメラを放射状に配置した例を示す図である。 パノラマ映像の表示時に振動を軽減する処理を説明するフローチャートである。 個別カメラ姿勢情報計算部20における処理を説明するフローチャートである。 仮想パノラマカメラ姿勢情報計算部60における処理を説明するフローチャートである。 パノラマ映像生成部80における処理を説明するフローチャートである。 振動除去部100における処理を説明するフローチャートである。 第5の実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。 パノラマ映像の生成時に振動を軽減する処理を説明するフローチャートである。 連動カメラ姿勢情報計算部280における処理を説明するフローチャートである。 除振パノラマ映像生成部300における処理を説明するフローチャートである。

Claims (12)

  1. 複数の撮影装置個々の座標系との間の変換可能である共通座標系を設定し、
    前記複数の撮影装置のうちの一以上の各々について姿勢を推定し、
    前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
    前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
    前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求め、
    前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施し、
    変換後の複数の撮影画像を合成してパノラマ画像を作成する、
    ことを特徴とする画像処理方法。
  2. 複数の撮影装置個々の座標系との間の変換可能である共通座標系を設定し、
    前記複数の撮影装置のうちの一以上の各々について姿勢を推定し、
    前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
    前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
    前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成作成し、
    前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す、
    ことを特徴とする画像処理方法。
  3. 前記共通座標系及び又は前記複数の撮影装置個々の揺れを軽減する補正変換が、ール及びピッチの補正を行う変換であることを特徴とする請求項1又は請求項2記載の画像処理方法。
  4. 前記共通座標系又は前記複数の撮影装置個々の揺れを軽減する補正変換が、ヨー、ロール及びピッチの補正を行う変換であることを特徴とする請求項1又は請求項2記載の画像処理方法。
  5. 前記複数の撮影装置の各々及び前記共通座標系について、姿勢推定時に位置も推定することを特徴とする請求項1又は請求項2記載の画像処理方法。
  6. 前記共通座標系及び前記複数の撮影装置個々の揺れを軽減する補正変換が、ヨー、ロール及びピッチ及び位置の補正を行う変換であることを特徴とする請求項記載の画像処理方法。
  7. 複数の撮影装置個々の座標系との間の変換可能である共通座標系を設定する手段と、
    前記複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、
    前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求める手段と、
    前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求める手段と、
    前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求める手段と、
    前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施す手段と、
    変換後の複数の撮影画像を合成してパノラマ画像を作成する手段と、
    を有することを特徴とする画像処理装置。
  8. 複数の撮影装置個々の座標系との間の変換可能である共通座標系を設定する手段と、
    前記複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、
    前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求める手段と、
    前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求める手段と、
    前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を作成する手段と、
    前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す手段と、
    を有することを特徴とする画像処理装置。
  9. コンピュータ装置を、請求項記載の画像処理装置として機能させるコンピュータプログラム。
  10. コンピュータ装置を、請求項記載の画像処理装置として機能させるコンピュータプログラム。
  11. 請求項記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
  12. 請求項10記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2003319808A 2003-02-21 2003-09-11 画像処理装置及び画像処理方法 Expired - Fee Related JP3862688B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003319808A JP3862688B2 (ja) 2003-02-21 2003-09-11 画像処理装置及び画像処理方法
US10/779,791 US7518636B2 (en) 2003-02-21 2004-02-18 Image processing apparatus and image processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003044488 2003-02-21
JP2003319808A JP3862688B2 (ja) 2003-02-21 2003-09-11 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2004274701A JP2004274701A (ja) 2004-09-30
JP3862688B2 true JP3862688B2 (ja) 2006-12-27

Family

ID=32992919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003319808A Expired - Fee Related JP3862688B2 (ja) 2003-02-21 2003-09-11 画像処理装置及び画像処理方法

Country Status (2)

Country Link
US (1) US7518636B2 (ja)
JP (1) JP3862688B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2559726C (en) * 2004-03-24 2015-10-20 A9.Com, Inc. System and method for displaying images in an online directory
US7782374B2 (en) * 2005-03-03 2010-08-24 Nissan Motor Co., Ltd. Processor and processing method for generating a panoramic image for a vehicle
JP4710653B2 (ja) * 2005-03-03 2011-06-29 日産自動車株式会社 車載画像処理装置及び車両用画像処理方法
JP4715334B2 (ja) * 2005-06-24 2011-07-06 日産自動車株式会社 車両用画像生成装置および方法
JP4832013B2 (ja) 2005-07-05 2011-12-07 富士フイルム株式会社 像振れ補正装置
WO2007013231A1 (ja) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. 撮影領域調整装置
JP4739004B2 (ja) * 2005-12-15 2011-08-03 キヤノン株式会社 情報処理装置及び情報処理方法
KR100653200B1 (ko) * 2006-01-09 2006-12-05 삼성전자주식회사 기하 정보를 교정하여 파노라마 영상을 제공하는 방법 및장치
JP4665781B2 (ja) * 2006-02-02 2011-04-06 カシオ計算機株式会社 撮像装置、画像処理方法及びプログラム
JP4914171B2 (ja) * 2006-10-16 2012-04-11 キヤノン株式会社 撮像装置の制御方法及びカメラシステム
US8855856B2 (en) * 2007-05-08 2014-10-07 GM Global Technology Operations LLC Vehicle roll control method using controllable friction force of MR dampers
NO327279B1 (no) 2007-05-22 2009-06-02 Metaio Gmbh Kamerapositurestimeringsanordning og- fremgangsmate for foroket virkelighetsavbildning
US20090202102A1 (en) * 2008-02-08 2009-08-13 Hermelo Miranda Method and system for acquisition and display of images
JP5149725B2 (ja) * 2008-07-22 2013-02-20 キヤノン株式会社 画像処理装置及びその制御方法
JP5550092B2 (ja) * 2009-06-22 2014-07-16 Necネットワーク・センサ株式会社 水中画像全方位表示処理装置及び方法
CN103856727B (zh) * 2014-03-24 2017-01-25 北京工业大学 一种多路实时视频拼接处理系统
WO2017020150A1 (zh) * 2015-07-31 2017-02-09 深圳市大疆创新科技有限公司 一种图像处理方法、装置及摄像机
US9986150B2 (en) 2015-09-30 2018-05-29 Ricoh Co., Ltd. Algorithm to estimate yaw errors in camera pose
US10104282B2 (en) 2015-09-30 2018-10-16 Ricoh Co., Ltd. Yaw user interface
WO2017090986A1 (en) * 2015-11-23 2017-06-01 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling electronic apparatus thereof
KR102629927B1 (ko) * 2015-11-23 2024-01-30 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10404915B1 (en) * 2016-04-07 2019-09-03 Scott Zhihao Chen Method and system for panoramic video image stabilization
KR101850503B1 (ko) * 2016-09-27 2018-04-19 주식회사 켐트로닉스 Svm 시스템을 위한 카메라 영상 왜곡보정 시스템 및 그의 보정방법
US10518702B2 (en) * 2017-01-13 2019-12-31 Denso International America, Inc. System and method for image adjustment and stitching for tractor-trailer panoramic displays
JP7009107B2 (ja) * 2017-08-03 2022-01-25 キヤノン株式会社 撮像装置およびその制御方法
CN108702464B (zh) * 2017-10-16 2021-03-26 深圳市大疆创新科技有限公司 一种视频处理方法、控制终端及可移动设备
CN108038820B (zh) * 2017-11-14 2021-02-02 影石创新科技股份有限公司 一种实现子弹时间拍摄效果的方法、装置及全景相机
CN109688327B (zh) * 2018-12-18 2020-08-07 影石创新科技股份有限公司 一种全景视频防抖的方法、装置及便携式终端

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4851897A (en) 1985-05-22 1989-07-25 Canon Kabushiki Kaisha Image pickup system having a lens assembly and means for providing information relating to the spectral characteristic of the lens assembly
US5255077A (en) 1989-09-29 1993-10-19 Canon Kabushiki Kaisha White balance control based upon magnitude of flicker
US6449013B1 (en) 1993-10-27 2002-09-10 Canon Kabushiki Kaisha Image pickup apparatus capable of taking color natural images and high-resolution images of a monochrome object
US6122078A (en) * 1995-08-24 2000-09-19 Vexcel Imaging Gmbh Self calibrating scanner with single or multiple detector arrays and single or multiple optical systems
JPH11168754A (ja) 1997-12-03 1999-06-22 Mr System Kenkyusho:Kk 画像の記録方法、画像データベースシステム、画像記録装置及びコンピュータプログラムの記憶媒体
US7015954B1 (en) * 1999-08-09 2006-03-21 Fuji Xerox Co., Ltd. Automatic video system using multiple cameras
US7673246B2 (en) 2001-12-12 2010-03-02 Canon Kabushiki Kaisha Image information processing apparatus and method, virtual space presentation apparatus, information administration apparatus, and control methods thereof
JP2004032278A (ja) 2002-06-25 2004-01-29 Canon Inc 撮像装置

Also Published As

Publication number Publication date
JP2004274701A (ja) 2004-09-30
US20040183898A1 (en) 2004-09-23
US7518636B2 (en) 2009-04-14

Similar Documents

Publication Publication Date Title
JP3862688B2 (ja) 画像処理装置及び画像処理方法
US9723203B1 (en) Method, system, and computer program product for providing a target user interface for capturing panoramic images
US20110211040A1 (en) System and method for creating interactive panoramic walk-through applications
JP3541855B2 (ja) 3次元データ抽出方法及び装置
JP4758842B2 (ja) 映像オブジェクトの軌跡画像合成装置、映像オブジェクトの軌跡画像表示装置およびそのプログラム
CN106918331A (zh) 相机模块、测量子系统和测量系统
JP6765512B2 (ja) 飛行経路生成方法、情報処理装置、飛行経路生成システム、プログラム及び記録媒体
WO2008152740A1 (ja) デジタル空撮3次元計測システム
JP4272966B2 (ja) 3dcg合成装置
JP2019045991A (ja) 生成装置、生成方法、及びプログラム
JP5214355B2 (ja) 車両走行軌跡観測システム、車両走行軌跡観測方法、およびそのプログラム
JP2020160944A (ja) 点検作業支援装置、点検作業支援方法及び点検作業支援プログラム
JP2005208857A (ja) 画像生成方法
JP2006171939A (ja) 画像処理装置及び方法
CN110036411A (zh) 生成电子三维漫游环境的装置和方法
JP3660108B2 (ja) 画像保存方法及び機械読み取り可能媒体
KR102225321B1 (ko) 복수 영상 센서로부터 취득한 영상 정보와 위치 정보 간 연계를 통한 도로 공간 정보 구축을 위한 시스템 및 방법
JP6997164B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記録媒体
JP3781034B2 (ja) ステレオ画像形成方法及び装置
JP2005063012A (ja) 全方位カメラ運動と3次元情報の復元方法とその装置及びプログラム並びにこれを記録した記録媒体
CN111581322A (zh) 视频中兴趣区域在地图窗口内显示的方法和装置及设备
JP2005063129A (ja) 時系列画像からのテクスチャ画像獲得方法,テクスチャ画像獲得装置,テクスチャ画像獲得プログラムおよびそのプログラムを記録した記録媒体
CN111788457A (zh) 形状推断装置、形状推断方法、程序以及记录介质
JP2021089487A (ja) 画像処理装置、プログラム及び画像処理システム
JP2006172026A (ja) カメラ運動と3次元情報の復元装置、復元方法、およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060926

R150 Certificate of patent or registration of utility model

Ref document number: 3862688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091006

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131006

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees