以下、本実施形態について説明するが、本実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態では、画像処理システム、画像処理装置および撮像システムの一例として、2組のレンズ光学系および固体撮像素子を備え、2つの撮像光学系を通して撮像した2つの動画像をつなぎ合わせて合成動画像を生成する画像処理機能を備えた、撮像装置10を用いて説明する。
[第1実施形態]
図1は、第1実施形態による撮像装置10のハードウェア構成図である。第1実施形態による撮像装置10は、コントローラ12を含み、コントローラ12は、CPU(Central Processing Unit)14、SRAM(Static Random Access Memory)16、ROM(Read Only Memory)18、画像処理ブロック20、SDRAM(Synchronous Dynamic Random Access Memory)インタフェース22および外部ストレージ・インタフェース24を備える。
CPU14は、当該撮像装置10の各部の動作を制御する。SRAM16は、画像処理を行うための記憶領域を提供する。ROM18は、CPU14が解読可能なコードで記述された制御プログラムや各種パラメータを格納する。
撮像装置10は、さらに、それぞれ固体撮像素子28およびレンズ光学系30を含む複数のカメラユニット26を含み、これらがコントローラ12に接続されて、画像処理ブロック20に画像データを入力している。固体撮像素子28は、特に限定されるものではないが、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサを用いることができる。この固体撮像素子28およびレンズ光学系30の組を撮像光学系と参照する場合がある。図1に示す実施形態では、カメラユニット26は、2つ設けられており、以下、左カメラユニット26aおよび右カメラユニット26bと参照する。固体撮像素子28は、コントローラ12内のCPU14からの制御指令により制御される。
画像処理ブロック20は、2つのレンズ光学系30a,30bを通して固体撮像素子28a,28bから、信号処理を経て入力された画像データに対し、順次、ホワイト・バランス処理やガンマ補正処理し、この撮像された2つの画像データを、順次、画像合成する。画像処理ブロック20は、また、H.264などの動画圧縮および伸張を行うコーデック・ブロックを備えており、合成された複数フレームの画像からなる画像列をエンコードし、動画圧縮する。
撮像装置10は、さらに、SDRAM32を含み構成され、SDRAM32は、SDRAMインタフェース22を介してコントローラ12と接続されている。撮像装置10は、さらに、外部ストレージ34を含み構成され、外部ストレージ34は、外部ストレージ・インタフェース24を介してコントローラ12と接続されている。その他、加速度センサなどが、外部センサ・インタフェースを介してコントローラ12に接続されてもよい。
電源がオン状態になると、ROM18に格納された制御プログラムがメインメモリにロードされる。CPU14は、メインメモリに読み込まれたプログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをSRAM16およびSDRAM32に一時的に保存する。このようにして、後述する各処理および各機能部が実現される。
動画撮影時、固体撮像素子28a,28bによってデジタル化された画像データが、同一タイミングで、フレーム毎にコントローラ12の画像処理ブロック20に入力される。入力された画像データは、画像処理ブロック20、CPU14、SRAM16、SDRAM32などによって、フレーム毎に画像処理され、最終的には動画形式で外部ストレージ34に保存される。
図2は、第1実施形態による撮像装置10のカメラユニットの配置を説明する図である。図2に示すように、左カメラユニット26aおよび右カメラユニット26bは、それぞれ異なる方向を向きつつ、一部画角が重複するように配置されている。このような構成により、それぞれのカメラユニット26により動画像が撮影され、各フレームの画像がつなぎ合わせられて、各カメラユニット26が有する画角の2倍弱の画角での動画撮影が可能となる。
図1および図2に示した撮像装置10において、複数の動画像をつなぎ合わせる場合、複数のカメラユニット26の間に視差が存在するため、フレーム毎に最適なつなぎ位置の検出を行う必要がある。最適なつなぎ位置の検出は、重複する領域において共通して存在する被写体が重なるように行われるが、動画像の場合、フレーム間で位置合わせのため注目する被写体が異なる可能性がある。
図3は、従来技術による動画像のつなぎ合わせにおける不具合について説明する図である。図3には、時間1、時間2および時間3の各時点の左カメラユニットで撮像した左フレーム、右カメラユニットで撮影した右フレームおよびこれらをつなぎ合わせた後の合成フレームが示されている。時間1、時間2および時間3は、説明した順で時間が流れている。また、左フレームおよび右フレームには、隣接するカメラユニットとの間で重複する重複領域と、当該カメラユニット単独の領域との境界が点線で示されている。撮影されたシーンとしては、奥に木が立っている風景で、人物が手前を左から右へ走って横切るシーンを想定している。つまり、人物は、左カメラユニットと右カメラユニットの間を横切る形となる。動画撮像では、1秒間に30フレーム程度以上の撮影を行うため、図3に示すようなフレーム間で人物が大きく動くことは実際には想定し難いが、模式的に説明するため人物の動きを強調して表現している。また、図2に示したものと同様に2つのカメラユニットが配置されているものとする。
図3に示すように、人物が横切る前および後に対応する時間1および時間3の時点では、左フレームおよび右フレームの重複領域においては、背景の木が写っているが、手前の人物は写っていない。このため、典型的には、木の特徴に基づいて、左フレーム内の木と右フレーム内の木とが適切に重なるように位置合わせされて、図3に示すような合成フレームの画像が合成される。
一方、人物が重複領域を横切っている途中のタイミングに対応する時間2の時点では、左フレームおよび右フレームの重複領域において、背景の木に加えて人物が写っている。このとき、例えば人物に重みをおいて重ね合わせることにより画像全体としてのずれが少ないと判断されると、図3に示すように、木が二重像となった状態で画像つなぎ処理が行われる。
図3に示す一連の合成フレームを動画像としてみた場合は、途中、背景の木が不連続に動くような印象となり、視聴者に強い違和感を与える。時間2のつなぎ合わせにおいて木に重みをおいて重ねることにより画像全体としてのずれが少ないと判断され、人物が二重像となった状態で画像つなぎ処理が行われた場合も同様である。
なお、時間2のフレームにおいて、左フレームでは、木の右側に人物が写っているのに対して、右フレームでは、木の左側に人物が写っている。このような位置関係の相違は、カメラユニットの視差、すなわち、撮影する視点が異なることによるものである。このような、近景と遠景との位置関係のずれは、複数の撮像光学系を通して同時に撮影する構成では、避けることは難しい。
そこで、本実施形態による撮像装置10では、複数の動画像を合成して1つの動画像を生成する際に、複数の動画像のフレーム毎につなぎ位置を検出した後、時間的近傍フレームに対し検出されたつなぎ位置を用いて、各時点のつなぎ位置を補正した上で画像つなぎ合わせを行う構成を採用する。これにより、フレーム間のつなぎ位置の連続性の維持を図る。
以下、図4〜図7を参照しながら、第1実施形態による動画像のつなぎ合わせ処理について説明する。図4は、第1実施形態による動画像のつなぎ合わせ処理に関連する機能ブロックをデータフローとともに示す図である。なお、図4に示す機能ブロックは、例えば、図1に示した画像処理ブロック20、CPU14、またはこれらの組み合わせ、および、SRAM16、SDRAM32、またはこれらの組み合わせによって実施される。
図4には、機能ブロック100として、左フレーム入力部102と、右フレーム入力部104と、左フレーム記憶部110と、右フレーム記憶部120と、つなぎ位置検出部130と、つなぎ位置情報記憶部140と、つなぎ位置情報補正部150と、画像つなぎ処理部160と、動画圧縮部170とが示されている。
左フレーム入力部102および右フレーム入力部104には、左カメラユニット26aおよび右カメラユニット26bで撮像された所定レートのフレームの画像データが入力される。なお、フレームは、動画像を構成する各コマの画像を意味し、複数のフレームの画像の系列により、本実施形態における画像列が構成される。
左フレーム記憶部110および右フレーム記憶部120は、それぞれ、左フレーム入力部102および右フレーム入力部104に入力されたフレームの画像データを読み込み、記憶する。左フレーム記憶部110,右フレーム記憶部120は、少なくとも1つのフレーム分の画像データを一時記憶するものである。説明する実施形態においては、複数フレーム分の記憶領域を有し、FIFO(First In First Out)方式でフレームの画像データを保持している。つまり、全記憶領域が埋まった状態で新しいフレームが記憶されると、最も先に記憶されていたフレームが押し出され、削除される。図5(A)は、説明する実施形態における各フレーム記憶部の詳細な構成を示す。図5(A)に示すように左フレーム記憶部110および右フレーム記憶部120は、2フレーム分の記憶領域を有している。
つなぎ位置検出部130は、左フレーム記憶部110および右フレーム記憶部120に読み込まれた略同一時点のフレームの画像データをつなぎ合わせる際の最適なつなぎ位置を検出する。つなぎ位置の検出には、特に限定されるものではないが、典型的には、テンプレート・マッチング技術を適用することができる。つなぎ位置検出部130は、本実施形態におけるつなぎ位置検出処理手段を構成する。
つなぎ位置情報記憶部140は、つなぎ位置検出部130により検出された複数時点のつなぎ位置情報を一時記憶する、つなぎ位置情報記憶手段である。つなぎ位置情報記憶部140は、説明する実施形態においては、複数フレーム分の記憶領域を有し、FIFO方式でつなぎ位置情報を保持する。つまり、全記憶領域が埋まった状態で新しいつなぎ位置情報が記憶されると、最も先に記憶されていたつなぎ位置情報が押し出され、削除される。図5(A)には、説明する実施形態におけるつなぎ位置情報記憶部140の詳細な構成が示されている。図5(A)に示すように、本実施形態によるつなぎ位置情報記憶部140は、3フレーム分の記憶領域を有している。
つなぎ位置情報補正部150は、つなぎ位置情報記憶部140に記憶された複数時点のつなぎ位置情報を、例えば、時間で平均処理することにより平滑化して補正する。平均処理としては、特に限定されるものではないが、例えば、重み付け平均、ローパスフィルタやメディアンフィルタを使った処理を行うことができる。つまり、複数の時点でのつなぎ位置情報を用いて、各時点のつなぎ位置情報を補正する処理を行う。つなぎ位置情報補正部150は、本実施形態における補正手段を構成する。
画像つなぎ処理部160は、左フレーム記憶部110および右フレーム記憶部120から略同一時点のフレームの画像データを読み出し、つなぎ位置情報補正部150により補正されたつなぎ位置情報(以下、補正つなぎ位置情報と参照する。)を用いて合成する。画像つなぎ処理部160は、本実施形態における画像合成処理手段である。
図5(A)に示す実施形態では、各フレーム記憶部110,120に2フレーム分の画像データが記憶され、つなぎ位置情報記憶部140には3フレーム分のつなぎ位置情報が保持される。画像つなぎ処理部160は、最新のフレームのつなぎ位置情報を含む複数時点のつなぎ位置情報から計算された補正つなぎ位置情報を用いて、その中間に対応する一つ前のフレームの画像データをフレーム記憶部110,120から読み出して、これを合成対象とする。このようにすることで、撮像装置10に求められるメモリ容量を削減することができる。
動画圧縮部170は、H.264、MPEG4などの動画圧縮および伸張を行うコーデック・ブロックを備えている。動画圧縮部170には、合成された複数の合成フレームからなる画像列が入力されている。この動画圧縮部170は、これらの入力された画像列を動画圧縮し、画像列を構成する各合成フレームをコマとする動画データを生成する。動画圧縮部170は、合成フレームで構成される画像列に基づき動画データを生成する、本実施形態における動画像生成手段を構成する。
以下、図6を参照して、合成された動画像を生成するための画像合成処理について説明する。図6は、第1実施形態による撮像装置10が実行する、合成された動画像を生成するための画像合成処理を示すフローチャートである。
図6に示す処理は、固体撮像素子28a,28bからの画像データが画像処理ブロック20のフレーム入力部102,104に入力開始されたことに応答して、ステップS100から開始される。ステップS101では、撮像装置10は、左フレーム記憶部110および右フレーム記憶部120に、最新の左フレームおよび右フレームの画像データを記憶する。このとき、既に2フレーム分の記憶領域が埋まっている場合は、最も古いフレームが削除される。
ステップS102では、撮像装置10は、つなぎ位置検出部130で、最新の左フレームおよび右フレーム間のつなぎ位置を検出し、つなぎ位置情報を生成する。なお、つなぎ位置情報は、一方のフレームの画像に対し他方のフレームの画像を重ねる位置の基準位置からのずれ量として求められる。つなぎ位置情報は、典型的には、縦方向および横方向のずれ量を画素数で表した情報となる。また、説明する実施形態では、つなぎ位置情報は、フレーム間での1つの基準位置からのずれ量として求めるものとするが、他の実施形態では、フレーム間で複数の基準位置に対してずれ量を求めて、これらを補間して各画素に対して適用してもよい。
ステップS103では、撮像装置10は、つなぎ位置情報記憶部140に対し、最新のフレームで検出したつなぎ位置情報を記憶する。このとき、既に3フレーム分の記憶領域が埋まっている場合は、最も古いつなぎ位置情報が削除される。
ステップS104では、撮像装置10は、フレーム記憶部110,120の記憶領域がすべて埋まっているか否かを判定する。ステップS104で、記憶領域がすべて埋まっていないと判定された場合(NO)は、ステップS101へ処理をループさせ、充分なフレームが入力されるのを待つ。これに対して、ステップS104で、記憶領域がすべて埋まっていると判定された場合(YES)は、ステップS105へ処理が進められる。なお、図5(A)に示す実施形態では、処理開始後の1番目のフレームを処理するときだけ記憶領域が埋まっていないと判定され、2番目のフレーム以降は、2フレーム分の記憶領域は常に埋まることとなる。
ステップS105では、撮像装置10は、つなぎ位置情報記憶部140に記憶された複数のつなぎ位置情報を読み出し、つなぎ位置情報補正部150で、これらを重み付け平均する。つなぎ位置情報記憶部140に記憶された3つのつなぎ位置情報を(ΔX−1,ΔY−1)、(ΔX0,ΔY0)、(ΔX+1,ΔY+1)とすると、補正つなぎ位置情報(ΔXave,ΔYave)は、下記式(1)で計算される。ただし、下記式中、ΔX−1,ΔX0,ΔX+1は、最新フレームの2つ前、最新フレームの1つ前、最新フレームの画像横方向のつなぎ位置を示し、ΔY−1,ΔY0,ΔY+1は、画像縦方向のつなぎ位置を示す。また、C−1,C0,C+1は、重みであり、例えば、C−1,C+1は、0.2とし、C0は0.6として、画像合成の対象となる時点に対するつなぎ位置情報(ΔX0,ΔY0)に対応する係数C0の重みを大きくすることができる。
(数1)
ΔXave=C−1×ΔX−1+C0×ΔX0+C+1×ΔX+1
ΔYave=C−1×ΔY−1+C0×ΔY0+C+1×ΔY+1
上記式(1)を用いることにより、次ステップ以降でつなぎ処理される最新のフレームから検出されたつなぎ位置情報(ΔX0,ΔY0)に重みを置きつつ、その前後の近傍フレームから検出されたつなぎ位置情報(ΔX−1,ΔY−1),(ΔX+1,ΔY+1)を混ぜて補正する。これにより、フレーム間の連続性を高めることができる。
ステップS106では、撮像装置10は、フレーム記憶部110,120で、最も古いフレームを読み出す。FIFO形式であるので、1フレーム分読み出せば、自動的に最も古いフレームが読み出される。説明する実施形態では、最も古いフレームは、つなぎ位置情報(ΔX0,ΔY0)に対応するものとなる。
ステップS107では、撮像装置10は、画像つなぎ処理部160で、重み付け平均した補正つなぎ位置情報(ΔXave,ΔYave)を用いて、ステップS106で読み出された最も古い左フレームおよび右フレーム間で画像つなぎ処理を行う。
ステップS108では、撮像装置10は、入力されたものが最終フレームであるか否かを判断する。ステップS108で、最終フレームではないと判定された場合(NO)は、ステップS101へループされ、画像合成処理を継続する。これに対して、ステップS108で、それ以上のフレームが入力されず、最終フレームであると判定された場合(YES)は、ステップS109へ処理を分岐させて、本画像合成処理を終了する。
図6に示す処理により生成された合成フレームからなる合成画像列は、順次、動画圧縮部170に出力され、動画圧縮部170でさらに動画圧縮されて、動画データとして書き出されることになる。
以下、図7を参照しながら、本実施形態による画像合成処理結果について説明する。図7は、第1実施形態による画像合成処理の処理結果を説明する図である。なお、図7に示す例は、図3を用いて従来技術による問題点を説明した際と同じ画像列が入力された場合の処理結果を示す。
図3と同様に、時間1および時間3のフレームでは、フレーム間で背景となる木が重なる位置をつなぎ位置として検出し、これに対し、時間2のフレームでは、人物が重なるが背景の木が大きくずれる位置を繋ぎ位置として検出している。しかしながら、本実施形態による画像合成処理では、各フレームでつなぎ位置情報を検出した後、時間的近傍、すなわち前後のフレームに対し(木が重なるように)検出されたつなぎ位置情報を用いて重み付け平均化し、この補正されたつなぎ位置情報を用いて実際のつなぎ合わせを行っている。
ここで、時間2のフレームについて説明すると、時間1、時間2および時間3のフレームに対応するつなぎ位置情報を重み付け平均することになる。これにより、平均化前のつなぎ位置は人物が重なり、背景の木が大きくずれる位置であったが、平均化後のつなぎ位置は、人物および背景の木に緩やかに重なるという、中間的な位置となる。これにより、時間2のフレームの合成フレームを単独で見ると必ずしも画像がぴったり重なっていないが、動画として鑑賞する場合は、従来技術で強い違和感となっていた背景の木が不連続に動くというような印象を抑制することができる。
上述した第1実施形態では、フレーム記憶部110,120は、それぞれ、2フレーム分の記憶領域を備え、つなぎ位置情報記憶部140は、3フレーム分の記憶領域を備えていた。しかしながら、これに限定されるものではなく、他の実施形態では、フレーム記憶部110,120に記憶するフレーム数を削減することにより、フレーム記憶部110,120の領域を節約することができる。ここで、つなぎ位置情報記憶部140の記憶領域は、フレーム記憶部110,120より大きければ、つなぎの補正処理が実施できる。
図5(B)は、そのような他の実施形態による左フレーム記憶部210、右フレーム記憶部220およびつなぎ位置情報記憶部240の詳細を示す図である。なお、図4および図5(A)に示した第1実施形態と同様の働きをする機能部に対しては、下2桁が同じ200番台の符号を付している。図5(B)に示す実施形態では、具体的には、フレーム記憶部210,220が、1フレーム分しか記憶できない容量とされ、つなぎ位置情報記憶部240が、2フレーム分のデータしか記憶できない容量とされている。
図5(B)に示す構成の場合には、つなぎ位置情報記憶部240には、ひとつ前のフレームのつなぎ位置情報と、最新のフレームのつなぎ位置情報とが記憶されている。すなわち、先に説明した第1実施形態との相違点は、ひとつ先のフレームのつなぎ位置情報を有しないことである。これにより、省容量でフレーム間の連続性を維持することができる。
つなぎ位置の補正処理は、上述した第1実施形態では、画像合成の対象となるフレームと前後各1フレームの3フレームに対するつなぎ位置情報を用い、図5(B)に示す他の実施形態では、合成対象フレームと直後の1フレームの2フレームに対するつなぎ位置情報を用いたが、これに限定されず、種々の変形例が存在する。
例えば、合成対象フレームと前後各3フレームの7フレームを用いて、より広い範囲でフレーム間の連続性を維持するよう構成することもできる。また、合成対象フレームと前2フレームと後5フレームで合計8フレームというように、前後の対称性を維持しなくともよい。このような変形例では、つなぎ位置の補正処理に合わせて、フレーム記憶部およびつなぎ位置情報記憶部の容量を準備すればよい。
以上説明した第1の実施形態では、2つのカメラユニット26を用いて、撮影方向をずらして2つの動画像を撮影し、これらをつなぎ合わせて、所定方向に通常の2倍弱の画角での動画撮影を可能とするものであった。しかしながら、使用するカメラユニット26の数は、2に限定されるものではなく、3以上の任意の数とすることができる。また、上述したように水平方向または垂直方向にずらして、該方向において通常よりも大きい画角での動画撮影を可能とするほか、水平方向および垂直方向の両方に画角の拡張を行ってもよい。さらに、他の実施形態では、水平方向または垂直方向で一周してパノラマ画像を合成する場合に適用することもでき、水平方向および垂直方向の両方向で一周する全天球画像を合成する場合に適用することもでき、特に限定されるものではない。
[第2実施形態]
以下、撮影地点からの全ての方向を撮影する全天球撮像装置300を用いて、第2実施形態について説明する。
図8は、第2実施形態による全天球撮像装置300を示す断面図である。図8に示す全天球撮像装置300は、撮像体302と、上記撮像体302およびコントローラやバッテリなどの部品を保持する筐体304と、上記筐体304に設けられたシャッター・ボタン306とを備える。図8に示す撮像体302は、2つの固体撮像素子308a,308bと、2つのレンズ光学系310a,310bとを含む。レンズ光学系310各々は、例えば6群7枚の魚眼レンズとして構成することができる。上記魚眼レンズは、図8に示す実施形態では、180度(=360度/n;n=2)より大きい全画角を有し、好適には、185度以上の画角を有し、より好適には、190度以上の画角を有する。ここで、固体撮像素子308の位置は紙面上で上下に設けられているが、レンズ光学系310を適宜に調整して、紙面上に垂直の位置に設けられても良い。
2つのレンズ光学系310a,310bの光学素子(レンズ、プリズム、フィルタおよび開口絞り)は、固体撮像素子308a,308bに対して位置関係が定められる。図8に示す実施形態では、レンズ光学系310a,310bは、同一仕様のものであり、それぞれの光軸が合致するようにして、互いに逆向きに組み合わせられている。固体撮像素子308a,308bは、受光した光分布を画像信号に変換して、コントローラ上の画像処理ブロックに出力する。
画像処理ブロックは、固体撮像素子308a,308bからそれぞれ入力される画像列の各魚眼画像をつなぎ合わせて合成し、立体角4πラジアンの動画像(以下「全天球動画像」と参照する。)を生成する。全天球動画像は、撮影地点から見渡すことのできる全ての方向を撮影した動画となる。このように、複数の撮像光学系は、それぞれ、所定の画角を有するが、この複数の撮像光学系の画角を合わせることにより、4πステアラジアンの立体角がカバーされ、合成される合成画像は、全天球画像を構成することになる。ここで、図8に示す実施形態では、全天球画像を生成しているが、水平面のみ360度を撮影した、いわゆるパノラマ画像であってもよい。
上述したように、魚眼レンズが180度を超える全画角を有するため、全天球画像を構成する際には、各撮像光学系による画像において、重複する画像部分があり、この重複領域が、同一像を表す基準データとして画像つなぎ合わせの参考とされる。生成された全天球画像の動画像は、例えば、SD(登録商標)カードやコンパクトフラッシュ(登録商標)などの外部ストレージなどに出力される。なお、ハードウェア構成としては、図1を参照して説明した第1実施形態と同様の構成を採用することができるので、説明を省略する。
図8に示すような全天球撮像装置300においても、事前の処理として、2枚の魚眼画像を全天球画像フォーマットに変換する処理を行うことで、第1の実施形態について説明したものと同様の画像つなぎ処理を適用することができる。
以下、図9〜図18を参照しながら、第2実施形態による全天球撮像装置300が備える全天球動画像合成機能について詳細を説明する。図9は、第2実施形態による全天球撮像装置300上に実現される全天球動画像合成処理の主要な機能ブロックを示す。第2実施形態による画像処理ブロック400は、図9に示すように、フレーム記憶部402と、位置検出用歪み補正部404と、つなぎ位置検出部406と、つなぎ位置情報記憶部408と、つなぎ位置情報補正部410と、テーブル修正部412と、テーブル生成部414と、画像合成用歪み補正部416と、画像合成部418とを含み構成される。
また、画像処理ブロック400には、2つの固体撮像素子308a,308bから、各種画像信号処理を経て、各フレーム毎に2つの部分画像が入力される。ここで、固体撮像素子308aをソースとするフレームの画像を「部分画像0」のように参照し、固体撮像素子308bをソースとするフレームの画像を「部分画像1」のように参照する。画像処理ブロック400には、さらに、それぞれのレンズ光学系の設計データ等に基づいて、所定の投影モデルに従い製造元等で予め作成された、位置検出用変換テーブル430が提供される。この変換テーブル430は、魚眼レンズの歪みを補正するという意味合いを有することから、歪み補正テーブルと参照される場合がある。
位置検出用歪み補正部404は、つなぎ位置検出処理の前段の処理として、入力される部分画像0および部分画像1に対し、位置検出用変換テーブル430を用いて歪み補正を施し、位置検出用補正画像(以下、単に補正画像と参照する場合がある。)0および位置検出用補正画像1を生成する。入力される部分画像0,1は、平面座標系(x,y)で表現された画像データであり、これに対し、位置検出用変換テーブル430を用いて歪み補正がかけられた補正画像は、球面座標系(動径を1とし、2つの偏角θ,φを有する極座標系である。)で表現された全天球画像フォーマットの画像データとなる。位置検出用歪み補正部404は、第2実施形態における位置合わせ用変換手段を構成する。
図11は、第2の実施形態による全天球撮像装置300における射影関係を説明する図である。第2実施形態において、1つ魚眼レンズで撮影された画像は、撮影地点から概ね半球分の方位を撮影したものとなる。また、魚眼レンズでは、図11(A)に示すように、光軸に対する入射角度φに対応した像高hで画像生成される。像高hと、入射角度φとの関係は、所定の投影モデルに応じた射影関数で決定される。射影関数は、魚眼レンズの性質によって異なるが、上記投影モデルとしては、等距離射影方式(h=f×φ)、中心投影方式(h=f・tanφ)、立体射影方式(h=2f・tan(φ/2))、等立体角射影方式(h=2f・sin(φ/2))および正射影方式(h=f・sinφ)を挙げることができる。いずれの方式においても、光軸からの入射角度φと焦点距離fとに対応して結像の像高hが決定される。また、説明する実施形態では、画像対角線よりもイメージサークル径が小さな、いわゆる円周魚眼レンズの構成を採用するものとし、得られる部分画像は、図11(B)に示すように、撮影範囲の概ね半球分が投影されたイメージサークル全体を含む平面画像となる。
図12は、第2実施形態で用いられる全天球画像フォーマットの画像データのデータ構造を説明する図である。図12に示すように、全天球画像フォーマットの画像データは、所定の軸に対するなす角度に対応する垂直角度φと、上記軸周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。水平角度θは、0〜360度(−180度〜+180度とも表現できる。)の範囲となり、垂直角度φは、0〜180度(同様に−90度〜+90度とも表現できる。)の範囲となる。各座標値(θ,φ)は、撮影地点を中心とした全方位を表す球面上の各点と対応付けられており、全方位が全天球画像上にマッピングされる。魚眼レンズで撮影された画像の平面座標と、全天球画像フォーマットの球面上の座標との関係は、図11で説明したような射影関数を用いることによって対応付けることができる。
図13は、第2に実施形態による位置検出用歪み補正部404および画像合成用歪み補正部416が参照する変換データを説明する図である。変換テーブル430,432は、平面座標系で表現される部分画像から、球面座標系で表現される画像への射影を規定する。変換テーブル430,432は、図13(A)および(B)に示すように、各魚眼レンズ毎に、補正後画像の座標値(θ,φ)と、該座標値(θ,φ)にマッピングされる補正前の部分画像の座標値(x、y)とを対応付ける情報を、全座標値(θ,φ)(θ=0,・・・360度,φ=0,・・・,180度)に対して保持する。図13の例示では、1画素が担当する角度は、φ方向およびθ方向いずれも1/10度であり、変換テーブル430,432は、各魚眼レンズについて、3600×1800の対応関係を示す情報を有している。
つなぎ位置検出の際に用いられる位置検出用変換テーブル430は、事前に製造元等で理想的なレンズモデルからの歪みを補正した上で計算され、テーブル化されたものである。これとは対照的に、画像合成用変換テーブル432は、詳細は後述するが、位置検出用変換テーブル430から所定の変換処理よって生成されるものである。
図14は、第2実施形態による位置検出処理の際における、2つの魚眼レンズで撮像された2つの部分画像の球面座標系へのマッピングを説明する図である。位置検出用歪み補正部404による処理の結果、魚眼レンズで撮像された2つの部分画像0,1は、図14に示すように、全天球画像フォーマット上に展開される。魚眼レンズ0により撮影された部分画像0は、典型的には、全天球のうちの概ね上半球にマッピングされ、魚眼レンズ1により撮影された部分画像1は、全天球のうちの概ね下半球にマッピングされる。全天球フォーマットで表現された補正画像0および補正画像1は、魚眼レンズの全画角が180度を超えるため、それぞれ半球からはみ出し、その結果、補正画像0および補正画像1を重ね合わせると、画像間で撮影範囲が重複する重複領域が発生する。
事前処理として、全天球フォーマットへの変換を行うことで、その後は、図14に示す重複領域においてつなぎ検出を行える。よって、第1実施形態において説明したつなぎ位置補正処理を適用して画像つなぎを行い、そのまま変換した画像を用いて、複数の合成フレームからなる全天球動画を生成することができる。これに対して、図9に示す実施形態では、位置合わせ用の球面画像とは異なる画像合成用の球面画像を別途生成する方式を採用している。以下、図9を参照しながら、かかる方式について説明を続ける。
位置検出用歪み補正部404による補正後は、つなぎ位置検出部406により、上記重複領域において、画像間のつなぎ位置が検出されることになる。つなぎ位置検出部406は、第2実施形態における検出手段を構成する。本実施形態による位置検出用変換テーブル430では、図14に示すように、2つのレンズ光学系各々の光軸を球面の2つの極(φ=0度,180度)に射影するとともに、画像間の重複領域を球面の赤道近傍(φ=90度±((全画角−180度)/2))に射影するように作成される。
球面座標系では、垂直角度φが0度または180度である極に近接するほど、歪みが大きくなり、つなぎ位置検出精度が劣化してしまう。これに対し、上述したような射影とすることによって、θ方向にずれたときの歪み量が小さな垂直角度90度付近に、重複領域を位置させて、つなぎ位置検出が行われることになり、つなぎ位置検出精度を向上させることができる。ひいては、歪みの大きなレンズ光学系で撮像された画像あっても、高い精度でつなぎ位置を検出することが可能となる。
ここで、つなぎ位置検出部406は、位置検出用歪み補正部404により変換された補正画像0,1の入力を受けて、パターンマッチング処理により、入力された補正画像0,1間のつなぎ位置を検出し、つなぎ位置情報を生成する。つなぎ位置情報記憶部408は、第1実施形態と同様に、つなぎ位置検出部406により検出された複数時点のつなぎ位置情報を一時記憶する。つなぎ位置情報補正部410は、つなぎ位置情報記憶部408に記憶された複数時点のつなぎ位置情報を、例えば、時間で平均処理することにより補正する。この補正されたつなぎ位置情報を、補正つなぎ位置情報と呼ぶ。
テーブル修正部412は、補正つなぎ位置情報に基づいて、事前準備された位置検出用変換テーブル430に対して修正を施し、テーブル生成部414に渡す。テーブル生成部414は、上記テーブル修正部412により修正された変換データから、回転座標変換に基づき、画像合成用変換テーブル432を生成する。テーブル修正部412は、第2実施形態における修正手段を構成し、テーブル生成部414は、第2実施形態におけるテーブル生成手段を構成する。
画像合成用歪み補正部416は、画像合成処理の前段の処理として、元の部分画像0および部分画像1に対し、画像合成用変換テーブル432を用いて歪み補正をかけ、画像合成用補正画像0および画像合成用補正画像1を生成する。なお、ここで処理の対象となる部分画像0,1は、フレーム記憶部402に記憶された最も古いフレームに対応するものである。画像合成用歪み補正部416は、第2実施形態における合成用変換手段を構成する。
生成される画像合成用補正画像0,1は、位置検出用補正画像と同様に、球面座標系で表現されている一方で、上記回転座標変換により、位置検出用補正画像とは座標軸の定義が異なったものとなる。
図18は、第2実施形態による画像合成処理の際における、2つの魚眼レンズで撮像された2つの部分画像の球面座標系へのマッピングを説明する図である。上記回転座標変換により、図14に示すような、一方のレンズ光学系の光軸を軸とした水平角度および垂直角度の座標軸の定義から、図18に示すような、光軸に垂直な軸を基準とした水平角度および垂直角度の定義に変換される。これにより、画像合成用歪み補正部416による処理の結果、魚眼レンズで撮像された2つの部分画像0,1は、図18に示すように、全天球画像フォーマット上に展開される。魚眼レンズ0により撮影された部分画像0は、典型的には、全天球のうちの概ね左半球にマッピングされ、魚眼レンズ1により撮影された部分画像1は、全天球のうちの概ね右半球にマッピングされる。
図18を図14と比較すると明らかであるが、画像合成用では、位置補正用の全天球フォーマットに対し、異なった位置に部分画像0および部分画像1がマッピングされており、シーンの天頂方向が画像の上下方向となるφ方向に一致している。部分画像0,1の中心部が、より歪みの少ない赤道上にマッピングされ、補正画像0および補正画像1間の重複領域になる周辺部が、図9に示したものと異なり、垂直角度0度および180度付近、並びに、水平角度0度および180度の近傍領域にマッピングされる。
画像合成部418は、得られた画像合成用補正画像0および画像合成用補正画像1を合成し、全天球画像フォーマットの合成画像のフレームを生成する。動画圧縮部422には、合成された複数の全天球画像の合成フレームからなる画像列が入力されており、動画圧縮部422は、これらを動画圧縮し、画像列を構成する各合成フレームをコマとする動画像を生成し、動画データ440を書き出す。画像合成部418は、第2実施形態における、球面座標系の画像を重ね合わせて合成する合成手段を構成する。
図9に示す画像処理ブロック400は、さらに、表示画像生成部420を含むことができる。上記生成された合成画像は、全天球画像フォーマットで表現されるため、そのまま、ディスプレイなどの平面表示デバイスに表示させると、垂直角度0度および180度に近づくほど画像が歪んで表示されることになる。表示画像生成部420は、全天球画像を平面表示デバイスに投影するための画像処理を実行する手段である。
表示画像生成部420は、例えば、全天球画像フォーマットの合成画像から、球面座標系から特定方向および特定画角の平面座標系への順次変換し、ユーザが指定する特定の視野方向の一定画角の画像に投影する処理を行うことができる。これにより、視聴者は、所定の視点および視野で観察した場合に相当する動画像を視聴することができるようになる。
なお、図9において破線450で示された、部分画像0,1を入力としてつなぎ位置情報を出力するための、位置検出用歪み補正部404およびつなぎ位置検出部406を合わせたものが、第2実施形態における検出処理手段を構成する。また、図9において破線460で示された、部分画像0,1を入力とし、かつ、つなぎ位置情報補正部410からの補正つなぎ位置情報を入力とし、最終的な合成された全天球画像を出力するための、テーブル修正部412、テーブル生成部414、画像合成用歪み補正部416および画像合成部418を合わせたものが、第2実施形態における画像合成処理手段を構成する。
以下、図10、図15、図16および図17を参照しながら、第2実施形態による全天球動画像合成処理の流れを説明する。図10は、第2実施形態による全天球撮像装置300が実行する全天球動画像合成処理の全体的な流れを示すフローチャートである。図10に示す処理は、例えば、シャッター・ボタン306の押下によりCPUから撮像(撮影)指令が発行されたことに応答して、ステップS200から開始される。
ステップS201では、全天球撮像装置300は、部分画像0用フレーム記憶部402aおよび部分画像1用フレーム記憶部402bに、最新のフレームの部分画像0および部分画像1の画像データを記憶する。このとき、既に最大フレーム分の記憶領域が埋まっている場合は、最も古いフレームが削除される。
ステップS202では、全天球撮像装置300は、位置検出用歪み補正部404により、2つの固体撮像素子308a,308bによって取得された部分画像0および部分画像1に対し、位置検出用変換テーブル430を用いて歪み補正を行う。これによって、図14に示すような全天球画像フォーマットの位置検出用補正画像0および位置検出用補正画像1が得られる。
ステップS203では、全天球撮像装置300は、つなぎ位置検出部406で、最新のフレームの位置検出用部分画像0および位置検出用部分画像1の重複領域でつなぎ位置を検出し、つなぎ位置情報を生成する。説明する実施形態では、つなぎ位置情報は、テンプレート・マッチングにより、一方の1以上の画像から切り出されたテンプレート画像に対し他方の対応する探索範囲の画像との間でマッチングスコアが最大となる位置の基準位置からのずれ量として計算される。
図15は、第2実施形態によるつなぎ位置検出処理におけるテンプレート画像および探索画像の生成方法を説明する図である。説明する実施形態では、テンプレート生成用画像500は、位置検出用補正画像1の重複領域の部分の画像であり、探索用画像510は、位置検出用補正画像0の重複領域の部分の画像である。ここで、テンプレート画像を構成する画素サイズである所定のブロック・サイズが指定され、隣接するテンプレート画像が生成される間隔である所定の生成間隔が指定されるものとする。また、最初のテンプレート画像を切り出す座標である生成開始座標も与えられるものとする。なお、ブロック・サイズおよび生成間隔は、つなぎ合わせの所望の精度および処理量を勘案して定めればよい。
ブロック・サイズをW画素×H画素とし、生成開始座標を(sx,sy)とし、生成間隔をstep画素とすると、図15に示すような態様で複数のテンプレート画像502−1〜502−#が生成される。生成されるテンプレートのブロック数#は、テンプレート生成用画像500の水平方向サイズ(説明する実施形態で全天球フォーマットの幅サイズ=3600画素)を生成間隔(step)で割った値の整数値となる。
生成された複数のテンプレート画像502−1〜502−#に対し、探索用画像510上での対応部分514が所定の探索範囲512内で探索されることになる。テンプレート・マッチングとしては、ゼロ平均正規化相互相関(Zero-mean Normalized Cross-Correlation)法、SSD(Sum of Square Difference)法、SAD(Sum of Absolute Difference)法、ZSSD(Zero-mean Sum of Square Difference)法、ZSAD(Zero mean Sum of Absolute Difference)法、NCC(Normalized Cross-Correlation)法、またはこれらの任意の組み合わせを採用することができる。
なお、全天球画像フォーマットのθ座標の両端(0度および360度)はつながっているため、テンプレート画像の生成やテンプレート・マッチングの際は、右端の隣は左端として、左端の隣は右端として取り扱うことができる。上述したステップ203では、この各テンプレート画像502−1〜502−#に対して、それぞれ、マッチングスコアが最大となる位置の基準位置からのずらし量が検出される。
ステップS204では、全天球撮像装置300は、つなぎ位置情報記憶部408に対し、最新のフレームで検出した各テンプレート画像毎のつなぎ位置情報を記憶する。このとき、既に最大フレーム分の記憶領域が埋まっている場合は、最も古いつなぎ位置情報が削除される。
ステップS205では、全天球撮像装置300は、フレーム記憶部402a,402bの記憶領域がすべて埋まっているか否かを判定する。ステップS205で、記憶領域がすべて埋まっていないと判定された場合(NO)は、ステップS201へ処理をループさせ、充分なフレームが入力されるのを待つ。これに対して、ステップS205で、記憶領域がすべて埋まっていると判定された場合(YES)は、ステップS206へ処理が進められる。
ステップS206では、全天球撮像装置300は、つなぎ位置情報記憶部408に記憶された複数時点の各テンプレート画像毎のつなぎ位置情報を読み出し、つなぎ位置情報補正部410で、各テンプレート画像毎にこれらを重み付け平均する。ステップS207では、全天球撮像装置300は、重み付け平均された各テンプレート画像毎の補正つなぎ位置情報を用いて、位置検出用変換テーブル430を、画像が球面座標上で位置合わせされるように修正する。
図16は、本実施形態において、位置検出用変換テーブル430を修正する前段処理として生成される各画素毎の補正つなぎ位置を含む補正つなぎ位置テーブルのデータ構造を示す図である。ステップS207の前段処理では、テンプレート画像毎の補正つなぎ位置情報に基づき、図16に示すような、変換後の各座標値(θ,φ)に対して、補正されたずらし量(Δθ,Δφ)が対応付けられた情報を全座標値について保持するテーブルを生成する。このとき、上記つなぎ位置検出および補正処理により求められたテンプレート・ブロック(i)毎の補正されたずらし量(Δθi,Δφi)を、テンプレート・ブロックの中心座標の値として設定し、各座標値(θ,φ)に対応する補正されたずらし量(Δθ,Δφ)を補間して、補正つなぎ位置を計算することができる。なお、説明する実施形態では、各画素毎の補正つなぎ位置をテーブル形式で保持する構成としたが、特に限定されるものではない。
具体的には、まず、図17(A)に示すように、上記テンプレート・ブロック各々に対するずらし量(Δθi,Δφi)に加えて、θがテンプレート・ブロックの中心座標の値と等しく、かつ、上端(φ=0)および下端(幅が3600画素の場合はφ=3599である。)に位置する座標において、ずらし量(Δθ,Δφ)を(0,0)として設定する。その他のずらし量未設定の座標については、図16(B)に示すように、近傍の設定済み4点(図ではA〜Dである。)からなる格子を考え、その中でずらし量を、2次元線形補間演算により算出する。
なお、説明する実施形態では、全天球フォーマットにおける上端(φ=0)および下端(φ=3599)に対しずらし量(0,0)を設定するようにした。しかしながら、より内側(φ>0およびφ<3599)にずらし量(0,0)とする座標を設定して上記2次元線形補間演算をしてもよい。この場合、その座標よりφ方向が外側である座標においては、すべてずらし量(0,0)を設定するようにすればよい。
上述した前段処理により、図16に示すように、全天球画像フォーマットの座標値毎にずらし量が求まるので、ステップS207では、部分画像0の歪み補正に用いた検出用歪み補正テーブル0において、入力座標値(θ,φ)に対し、修正前には(θ+Δθ,φ+Δφ)に対応付けられていた(x,y)を対応付けるように修正する。なお、部分画像1の歪み補正に用いた検出用歪み補正テーブル1については対応付けを変える必要はない。
再び図10を参照すると、ステップS208では、全天球撮像装置300は、テーブル生成部414により、修正された位置検出用変換テーブル430から、回転座標変換することによって、画像合成用変換テーブル432を生成する。ステップS209では、全天球撮像装置300は、フレーム記憶部402a,402bで、最も古いフレームの部分画像0および部分画像1を読み出す。ステップS210では、全天球撮像装置300は、補正つなぎ位置情報に基づいて修正および生成された画像合成用変換テーブル432を用いて、最も古いフレームの部分画像0および部分画像1に対して歪み補正をし、合成用補正画像0および合成用補正画像1を生成する。
画像合成用歪み補正部416による処理の結果、魚眼レンズで撮像された2つの部分画像0,1は、図18に示すように、全天球画像フォーマット上に展開される。画像合成用変換テーブル432が既に補正つなぎ位置情報に基づいて生成されたものであるため、この段階で、合成用補正画像0および合成用補正画像1は、そのまま重ね合わせればよいようにつなぎ補正が反映されている。ステップS211では、全天球撮像装置300は、画像合成部418で、合成用補正画像0および合成用補正画像1を合成する。
ステップS212では、全天球撮像装置300は、入力されたものが最終フレームであるか否かを判断する。ステップS212で、最終フレームではないと判定された場合(NO)は、ステップS201へループされ、画像合成処理を継続する。これに対して、ステップS212で、それ以上のフレームが入力されず、最終フレームであると判定された場合(YES)は、ステップS213へ処理を分岐させて、本画像合成処理を終了する。
図10に示す処理により生成された全天球画像の合成フレームからなる合成画像列は、順次、動画圧縮部422に出力され、動画圧縮部422でさらに動画圧縮されて、動画データとして書き出されることになる。
[第3実施形態]
上述した第2実施形態では、画像処理システム、画像処理装置および撮像システムの一例として、全天球の静止画を自身が備える撮像光学系により複数の動画像を撮影し、画像処理ブロック400で合成された動画像を生成する全天球撮像装置300を用いて説明した。しかしながら、画像処理装置、画像処理システムおよび撮像システムの構成は、特に限定されるものではない。他の実施形態では、複数の撮像光学系で撮影された複数の部分画像(動画)の入力を受けて全天球画像(動画)を生成するカメラ・プロセッサ、撮影を専ら担当する全天球撮像装置で撮影された複数の部分画像(動画)の入力を受けて全天球画像(動画)を合成するパーソナル・コンピュータ、ワークステーション、物理コンピュータ・システム上の仮想マシンなどの情報処理装置、スマートフォン、タブレットなどの携帯情報端末などを上記画像処理装置として構成することもできる。また、上述したようなカメラ・プロセッサ、情報処理装置、携帯情報端などの画像処理装置と、該画像処理装置から分離された撮像光学系とを含む撮像システムとして構成してもよい。さらに、上記機能部を複数のコンピュータに分散実装した画像処理システムとして構成してもよい。
以下、図19を参照しながら、全天球撮像装置と、この全天球撮像装置で撮影された複数の部分画像の入力を受けて、合成された全天球動画像を生成する外部のコンピュータ装置とを含む、第3実施形態における全天球撮像システムについて説明する。図19は、第3実施形態における全天球撮像システム600の概略を示す。
第3実施形態による全天球撮像システム600は、専ら撮像を担当する全天球撮像装置610と、この全天球撮像装置610と接続され、専ら画像処理を担当するコンピュータ装置630とを含み構成される。なお、図19には、主要な構成のみが示されており、詳細な構成が省略させていることに留意されたい。また、図19に示す実施形態による全天球撮像システム600は、全天球画像を合成する画像処理が専らコンピュータ装置630で行われることを除いて、図8〜図18を参照して説明した第2実施形態と同様の構成を備えるので、以下、相違点を中心に説明する。
図19に示す実施形態において、全天球撮像装置610は、デジタル・スチルカメラ・プロセッサ612と、鏡胴ユニット614と、プロセッサ612に接続される3軸加速度センサ616とを含む。プロセッサ612は、USBブロック618をさらに含み、USBコネクタ620を介して接続されるコンピュータ装置630とのUSB通信を制御する。
図19に示すコンピュータ装置630は、デスクトップ型のパーソナル・コンピュータ、ワークステーションなどの汎用コンピュータなどとして構成することができる。コンピュータ装置630は、プロセッサ、メモリ、ROM、ストレージなどのハードウェア・コンポーネントを備える。第3実施形態において、コンピュータ装置630は、USBインタフェース632を含み、USBバスを介して、全天球撮像装置610と接続されている。
コンピュータ装置630は、さらに、画像合成にかかる処理ブロックとして、フレーム記憶部634と、位置検出用歪み補正部636と、つなぎ位置検出部638と、つなぎ位置情報記憶部640と、つなぎ位置情報補正部642と、テーブル修正部644と、テーブル生成部646と、画像合成用歪み補正部648と、画像合成部650とを含み構成される。本実施形態では、鏡胴ユニット614の複数の撮像光学系により撮像された2つの部分画像が合成された動画データ(つまり、平面座標系の部分画像0および部分画像1をそのまま接合して構成された2つのイメージサークルを含む平面画像)と、全天球撮像装置610の位置検出用変換テーブルとが、USBバスを介して外部のコンピュータ装置630に転送される。
コンピュータ装置630において、位置検出用歪み補正部636は、全天球撮像装置610から転送された動画データに含まれる各フレームの部分画像0,1に対し、併せて転送された位置検出用変換テーブルを用いて歪み補正を施し、フレーム毎に位置検出用補正画像0,1を生成する。つなぎ位置検出部638は、変換された補正画像0,1間のつなぎ位置を検出し、つなぎ位置情報を生成する。つなぎ位置情報記憶部640は、つなぎ位置検出部638により検出された複数時点のつなぎ位置情報を一時記憶する。つなぎ位置情報補正部642は、つなぎ位置情報記憶部640に記憶された複数時点のつなぎ位置情報を、時間で平均処理する。テーブル修正部644は、平滑化されたつなぎ位置情報に基づいて、転送された位置検出用変換テーブルに対して修正を施す。テーブル生成部646は、修正された変換データから、回転座標変換を施し、画像合成用変換テーブルを生成する。
フレーム記憶部634は、全天球撮像装置610から転送された動画データに含まれる各フレームの部分画像0,1を一時記憶する。画像合成用歪み補正部648は、画像合成処理の前段の処理として、一時記憶された最も古い元の部分画像0および部分画像1に対し、画像合成用変換テーブルを用いて歪み補正をかけ、画像合成用補正画像0,1を生成する。画像合成部650は、得られた画像合成用補正画像0,1を合成し、全天球画像フォーマットの合成画像を生成する。
本実施形態によるコンピュータ装置630は、ROMやHDDなどからプログラムを読み出し、RAMが提供する作業空間に展開することにより、CPUの制御の下、上述した各機能部および各処理を実現することができる。
なお、図19は、分離して構成された全天球画像撮像システムを例示するものであり、図19に示した具体的な実施形態に限定されるものではない。全天球画像撮像システムを実現するための各機能部は、1以上の撮像装置、1以上のコンピュータ・システム上に種々の態様で分散実装することができる。
以上説明したように、上述までの実施形態によれば、それぞれ複数の画像からなる複数の画像列を、複数時点の画像間における位置関係を考慮した補正を施して合成することができる、画像処理システム、画像処理装置、プログラムおよび撮像システムを提供することができる。
なお、上述した第2実施形態では、180度より大きな画角を有するレンズ光学系で撮像された2つの部分画像を重ね合わせて合成するものとしたが、他の実施形態では、1または複数のレンズ光学系により撮像された3以上の部分画像の重ね合わせ合成に適用してもよい。また、上述した実施形態では、魚眼レンズを用いた撮像システムを一例に説明してきたが、超広角レンズを用いた全天球撮像システムに適用してもよい。さらに、上述した好適な実施形態では、全天球画像の重ね合わせについて説明したが、特に限定されるものではなく、複数の画像のつなぎ位置を検出するいかなる画像処理に適用可能であることは言うまでもない。
また、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。また、上記機能部の一部または全部は、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)などのプログラマブル・デバイス(PD)上に実装することができ、あるいはASIC(特定用途向集積)として実装することができ、上記機能部をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(Very High Speed Integrated Circuits Hardware Description Language)、Verilog−HDLなどにより記述されたデータとして記録媒体により配布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
(付記)
(付記1)
第1の画像列および第2の画像列が入力される画像入力手段と、
前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とに基づいて、つなぎ位置情報を検出する検出処理手段と、
前記検出処理手段により検出された複数時点のつなぎ位置情報を用いて各時点のつなぎ位置情報を補正する補正手段と、
前記補正手段により補正された補正つなぎ位置情報に基づいて、前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とを合成する処理を実行する画像合成処理手段と
を含む、画像処理システム。
(付記2)
前記第1の画像列を構成する少なくとも1つの画像を一時記憶する第1画像記憶手段と、
前記第2の画像列を構成する少なくとも1つの画像を一時記憶する第2画像記憶手段と、
前記検出処理手段により検出された複数時点のつなぎ位置情報を一時記憶するつなぎ位置情報記憶手段と
をさらに含み、前記画像合成処理手段は、前記補正つなぎ位置情報が求められた複数のつなぎ位置情報のうちの最新のものの時点よりも前の時点に対応する、前記第1画像記憶手段および前記第2画像記憶手段に記憶された画像を合成の対象とすることを特徴とする、付記1に記載の画像処理システム。
(付記3)
前記画像合成処理手段により合成された複数の合成画像を含む合成画像列に基づき、動画像データを生成する動画像生成手段をさらに含む、付記1または2に記載の画像処理システム。
(付記4)
前記検出処理手段は、前記第1の画像列を構成する画像と、前記第2の画像列を構成する画像との間に存在する重複領域における複数の対応点各々の位置ずらし量を検出し、前記補正手段は、複数の対応点各々の位置ずらし量を重み付け時間平均することを特徴とする、付記1〜3のいずれか1つに記載の画像処理システム。
(付記5)
それぞれ、レンズ光学系および固体撮像素子を含み、互いに異なる方向を撮像し、画像列を与える複数の撮像手段をさらに含み、前記複数の撮像手段の間には視差が存在することを特徴とする、付記1〜4のいずれか1つに記載の画像処理システム。
(付記6)
前記複数の撮像手段は、それぞれ、所定画角を有し、前記複数の撮像手段の画角を合わせることにより4πステアラジアンの立体角がカバーされ、前記画像合成処理手段により合成された合成画像は、全天球画像を構成する、付記5に記載の画像処理システム。
(付記7)
前記画像合成処理手段は、
前記撮像手段により撮像された平面座標系の画像を球面座標系の画像へ変換するための基本変換テーブルと、
前記補正手段により補正された補正つなぎ位置情報に基づいて、前記基本変換テーブルを修正する修正手段と、
前記修正手段により修正された修正変換テーブルに基づいて、前記第1の画像列を構成する画像と前記第2の画像列を構成する画像とをそれぞれ球面座標系の画像に変換する合成用変換手段と、
前記第1の画像列の変換された球面座標系の画像と、前記第2の画像列の変換された球面座標系の画像とを重ね合わせて合成する合成手段と
を含む、付記5または6に記載の画像処理システム。
(付記8)
前記検出処理手段は、
前記基本変換テーブルを適用し、前記第1の画像列を構成する画像と前記第2の画像列を構成する画像とをそれぞれ球面座標系上の画像に変換する位置合わせ用変換手段と、
前記第1の画像列に基づく変換された球面座標系の画像と、前記第2の画像列に基づく変換された球面座標系の画像との間のつなぎ位置を規定する前記つなぎ位置情報を検出する検出手段と
を含み、前記画像合成処理手段は、
前記修正手段により修正された修正変換テーブルに対し回転座標変換を適用し、合成用変換テーブルを生成するテーブル生成手段
をさらに含み、
前記合成用変換手段は、前記テーブル生成手段により前記修正変換テーブルから生成された合成用変換テーブルを適用して、前記第1の画像列を構成する画像と、前記第2の画像列を構成する画像とを変換することを特徴とする、付記7に記載の画像処理システム。
(付記9)
前記複数の撮像手段を備え、前記複数の撮像手段各々が与える画像列を含む画像データを出力する撮像装置と、
画像入力手段、前記検出処理手段、前記補正手段および前記画像合成処理手段を備え、前記撮像装置から出力された前記画像データの入力を受ける画像処理装置と
を含む、付記6〜8のいずれか1つに記載の画像処理システム。
(付記10)
第1の画像列および第2の画像列が入力される画像入力手段と、
前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とに基づいて、つなぎ位置情報を検出する検出処理手段と、
前記検出処理手段により検出された複数時点のつなぎ位置情報を用いて各時点のつなぎ位置情報を補正する補正手段と、
前記補正手段により補正された補正つなぎ位置情報に基づいて、前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とを合成する処理を実行する画像合成処理手段と
を含む、画像処理装置。
(付記11)
コンピュータまたはプログラマブル・デバイスを、
第1の画像列および第2の画像列が入力される画像入力手段、
前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とに基づいて、つなぎ位置情報を検出する検出処理手段、
前記検出処理手段により検出された複数時点のつなぎ位置情報を用いて各時点のつなぎ位置情報を補正する補正手段、および
前記補正手段により補正された補正つなぎ位置情報に基づいて、前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とを合成する処理を実行する画像合成処理手段
として機能させるためのプログラム。
(付記12)
それぞれ、レンズ光学系および固体撮像素子を含み、互いに異なる方向を撮像する第1の撮像手段および第2の撮像手段と、
前記第1の撮像手段により与えられる第1の画像列と、前記第2の撮像手段により与えられる第2の画像列とが入力される画像入力手段と、
前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とに基づいて、つなぎ位置情報を検出する検出処理手段と、
前記検出処理手段により検出された複数時点のつなぎ位置情報を用いて各時点のつなぎ位置情報を補正する補正手段と、
前記補正手段により補正された補正つなぎ位置情報に基づいて、前記第1の画像列を構成する画像と、該画像と略同時点の、前記第2の画像列を構成する画像とを合成する処理を実行する画像合成処理手段と
を含む、撮像システム。
(付記13)
第1の画像列を構成する画像との略同時点の第2の画像列を構成する画像に基づいて、複数時点のつなぎ位置情報を検出する検出処理手段と、
前記複数時点のつなぎ位置情報を用いて各時点のつなぎ位置情報を補正する補正手段と、
前記補正された補正つなぎ位置情報に基づいて、前記第1の画像列を構成する画像と、前記第2の画像列を構成する画像とを合成する処理を実行する画像合成処理手段と
を含む、画像処理システム。