以下、本実施形態について説明するが、実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態では、画像処理システムおよび撮像システムの一例として、2つの魚眼レンズによる撮像機能および画像処理機能の両方を備える全天球カメラ100を用いて説明する。
以下、図1および図2を参照しながら、本実施形態による全天球カメラ100の全体構成について説明する。図1は、本実施形態による全天球カメラ100の断面図である。図1に示す全天球カメラ100は、撮像体12と、上記撮像体12その他コントローラボードやバッテリなどの部品を保持する筐体14と、上記筐体14に設けられた撮影ボタン18とを備える。
図1に示す撮像体12は、2つの結像光学系20A,20Bと、2つの撮像素子22A,22Bとを含み構成される。撮像素子22A,22Bは、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなどである。結像光学系20は、例えば6群7枚の魚眼レンズとして構成される。上記魚眼レンズは、図1に示す実施形態では、180度(=360度/n;光学系の数n=2)より大きい全画角を有し、好適には、190度以上の画角を有する。このような広角な結像光学系20と撮像素子22とを1個ずつ組み合わせたものを広角撮像光学系と参照する。
2つの結像光学系20A,20Bの光学素子(レンズ、プリズム、フィルタおよび開口絞り)は、撮像素子22A,22Bに対して位置関係が定められる。結像光学系20A,20Bの光学素子の光軸が、対応する撮像素子22の受光領域の中心部に直交して位置するように、かつ、受光領域が、対応する魚眼レンズの結像面となるように位置決めが行われる。
図1に示す実施形態では、結像光学系20A,20Bは、同一仕様のものであり、それぞれの光軸が合致するようにして、互いに逆向きに組み合わせられる。撮像素子22A,22Bは、受光した光分布を画像信号に変換し、コントローラボード上の画像処理ブロックに、順次、画像フレームを出力する。詳細は後述するが、撮像素子22A,22Bでそれぞれ撮像された画像は、合成処理されて、これにより、立体角4πステアラジアンの画像(以下「全天球画像」と参照する。)が生成される。全天球画像は、撮影地点から見渡すことのできる全ての方向を撮影したものとなる。説明する実施形態では、全天球画像を生成するものとして説明するが、水平面のみ360度を撮影した、いわゆるパノラマ画像であってもよく、全天球または水平面360度の全景のうちの一部を撮影した画像であってもよい。また、全天球画像は、静止画として保存することもできるし、動画として保存することもできる。
図2は、本実施形態による全天球カメラ100のハードウェア構成を示す。全天球カメラ100は、CPU(Central Processing Unit)112と、ROM(Read Only Memory)114と、画像処理ブロック116と、動画圧縮ブロック118と、DRAM(Dynamic Random Access Memory)インタフェース120を介して接続されるDRAM132と、外部センサインタフェース124を介して接続される姿勢センサ136とを含み構成される。
CPU112は、全天球カメラ100の各部の動作および全体動作を制御する。ROM114は、CPU112が解読可能なコードで記述された制御プログラムや各種パラメータを格納する。画像処理ブロック116は、2つの撮像素子130A,130B(図1における撮像素子22A,22Bである。)と接続され、それぞれで撮像された画像の画像信号が入力される。画像処理ブロック116は、ISP(Image Signal Processor)などを含み構成され、撮像素子130から入力された画像信号に対し、シェーディング補正、ベイヤー補間、ホワイト・バランス補正、ガンマ補正などを行う。画像処理ブロック116は、さらに、複数の撮像素子130A,130Bから上記処理を経て取得された複数の画像を合成処理し、これにより、上述した全天球画像を生成する処理を行う。
動画圧縮ブロック118は、MPEG−4 AVC/H.264などの動画圧縮および伸張を行うコーデック・ブロックである。動画圧縮ブロック118は、生成された全天球画像の動画データを保存するため、または、保存された動画データを再生出力するために用いられる。DRAM132は、各種信号処理および画像処理を施す際にデータを一時的に保存する記憶領域を提供する。
姿勢センサ136は、加速度センサ、ジャイロセンサ、地磁気センサまたはこれらの組み合わせで構成され、全天球カメラ100の姿勢を特定するために用いられる。例えば、3軸の加速度センサは、3軸の加速度成分を検出することができる。3軸のジャイロセンサは、3軸の角速度を検出することができる。地磁気センサは、磁界の向きを計測することができる。これらのセンサの出力を単独でまたは組み合わせることにより、全天球カメラ100の3つの姿勢角が与えられる。姿勢センサ136から得られる情報は、全天球画像の天頂補正を施すために用いられ、また、後述する注目点に応じた画像回転処理を施すために用いることができる。
全天球カメラ100は、さらに、外部ストレージインタフェース122と、USB(Universal Serial Bus)インタフェース126と、シリアルブロック128と、映像出力インタフェース129とを含み構成される。外部ストレージインタフェース122には、メモリカードスロットに挿入されたメモリカードなどの外部ストレージ134が接続される。外部ストレージインタフェース122は、外部ストレージ134に対する読み書きを制御する。
USBインタフェース126には、USBコネクタ138が接続される。USBインタフェース126は、USBコネクタ138を介して接続されるパーソナル・コンピュータなどの外部機器とのUSB通信を制御する。シリアルブロック128は、パーソナル・コンピュータなどの外部機器とのシリアル通信を制御し、無線NIC(Network Interface Card)140が接続される。映像出力インタフェース129は、HDMI(High-Definition Multimedia Interface,HDMIは登録商標である。)などの外部ディスプレイと接続するためのインタフェースであり、記録前や記録中の画像または、記録した画像を外部ディスプレイなどに映像出力することができる。
なお、一例として、USBコネクタ138、無線NIC140、HDMI(登録商標)による映像出力インタフェース129を示しているが、特定の規格に限定されるものではない。他の実施形態では、有線LAN(Local Area Network)などの有線通信、Bluetooth(登録商標)やワイヤレスUSBなどの他の無線通信、DisplayPort(登録商標)やVGA(Video Graphics Array)などの他の映像出力インタフェースを介して、外部機器と接続されてもよい。
電源スイッチの操作によって通電状態になると、上記制御プログラムがメインメモリにロードされる。CPU112は、メインメモリに読み込まれたプログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをメモリ上に一時的に保存する。これにより、全天球カメラ100の後述する各機能部および処理が実現される。
上述したように、本実施形態による全天球カメラ100は、全天球画像の静止画または動画を撮影する機能を有する。記録された全天球画像を閲覧するため、全天球画像を平面デバイスに適合した画像へ変換する専用ビューアが提供される場合がある。一方で、上記専用ビューアを用いずに、入力される画像をそのまま表示するような汎用ビューアやディスプレイから、全天球カメラ100で撮影される画像を表示させたいという要望がある。また、カメラ本体と通信可能に構成されたディスプレイ上で被写体を確認しながら撮影する、いわゆるライブビューを行いたいという要望もある。
しかしながら、上述した専用ビューアと同等の処理を全天球カメラ100本体に設けようとすると、全天球カメラ100の計装コストを増大させ、ひいては、画像処理の消費電力、発熱量を増大させてしまうことになる。
そこで、本実施形態では、センサ情報により決定された注目点に基づき、全天球画像に対する座標変換処理を実行し、座標変換処理の実行により生成された変換後の全天球画像の一部を切り出すことにより、出力する表示画像を生成する構成を採用する。好ましい実施形態では、変換後の全天球画像の中央部分を切り出す処理を行うことにより、全天球画像における注目点を中心とした部分に対応した画像を表示画像として生成することができる。
上記構成により、全天球画像の一部を映し出した、閲覧者にとって違和感のない表示画像を、負荷の小さな処理で生成することができる。好ましい実施形態では、全天球画像における歪みが少ない中央部分に注目点を中心とした画像が配置されるよう座標変換処理が施され、中央部分に対応する画像が切り出されて表示画像として出力される。このため、閲覧者は、専用ビューアを用いなくとも、自然な画像を閲覧することができる。また、座標変換処理は、天頂補正のために全天球カメラ100に組み込まれた処理であるため、全天球カメラ100に対する余分な計装コストを生じさせない。ひいては、画像処理による電力消費量、発熱を削減することも可能となる。
なお、以下に説明する実施形態においては、上述した映像出力インタフェース129を介して接続した外部ディスプレイに対し表示画像を映像出力するように構成するものとする。しかしながら、このような実施形態に限定されるものではない。他の実施形態では、全天球画像の表示画像を表示するために、USBコネクタ138、無線NIC140のような有線または無線の通信を介して接続されるスマートフォンやタブレットコンピュータなどのユーザ端末装置を用いてもよい。この場合、ユーザは、ユーザ端末装置上で稼働する汎用ビューアのアプリケーションを起動し、全天球カメラ100から出力される画像を汎用ビューアで表示することができる。その他の実施形態では、全天球カメラ100自体がディスプレイを備える場合、全天球カメラ100が備えるディスプレイに表示画像を表示するように構成してもよい。
以下、図3および図4を参照しながら、本実施形態による全天球カメラ100が備える表示画像出力機能について概略を説明する。図3は、本実施形態による全天球カメラ100上に実現される表示画像出力機能に関連する主要な機能ブロック200を示す。
全天球カメラ100の機能ブロック200は、図3に示すように、撮像画像取得部202と、つなぎ合わせ処理部204と、天頂補正部206と、全天球画像生成部208と、画像圧縮部210と、画像展開部212と、注目点決定部214と、画像回転部216と、変換後全天球画像生成部218と、切出処理部220と、拡大/レターボックス処理部222と、出力部224とを含み構成される。
なお、図3には、2つの画像処理の流れが示されている。第1の流れは、全天球カメラ100で撮像された全天球画像を一旦保存し、ユーザ操作に応答して、保存された全天球画像の表示画像を出力する処理の流れである。保存される全天球画像の画像データは、静止画であってもよいし、動画であってもよい。第1の流れは、記録後に閲覧する場合に対応する。第2の流れは、全天球カメラ100で全天球画像を撮影しながら、生成される全天球画像の表示画像を出力する処理の流れである。記録前や記録中に撮影状態をリアルタイムに閲覧する場合に対応する。
以下、まず、記録後の閲覧に対応した第1の処理の流れについて説明する。撮像画像取得部202は、上述した2つの撮像素子130A,130Bを制御し、それぞれからの撮像画像を取得する。静止画の場合は、シャッターが押されたタイミングで取得された1フレーム分の2つの撮像画像が取得される。動画の場合は、連続したフレームが順次撮像され、各フレーム毎に2つの撮像画像が取得される。撮像素子130各々で撮像される画像は、概ね全天球のうちの半球を視野に収めた魚眼画像であり、全天球画像の部分的な画像を構成する。以下、撮像素子130それぞれが撮像した画像を部分画像と参照する場合がある。
つなぎ合わせ処理部204は、取得された2つの部分画像間のつなぎ位置を検出し、2つの部分画像をつなぎ合わせるための処理を実行する。つなぎ位置検出処理では、フレーム毎に、複数の部分画像間に存在する重複領域において、複数の対応点各々の位置ずらし量を検出する処理が行われる。
天頂補正部206は、図2に示した姿勢センサ136を制御し、全天球カメラ100の姿勢角を検出し、生成される全天球画像の天頂方向が所定の基準方向に一致するようにするための補正処理を実行する。ここで、所定の基準方向とは、典型的には、鉛直方向であり、重力加速度が作用する方向である。全天球画像の天頂方向が鉛直方向(天方向)に一致するよう補正することにより、特に動画像において、閲覧時に視野の変更を行う場合でもユーザに3次元酔いなどの違和感を与えないようにすることが可能となる。
全天球画像生成部208は、つなぎ合わせ処理部204および天頂補正部206の処理結果が反映された状態で、撮像された2つの部分画像から全天球画像を生成する処理を実行する。なお、説明する実施形態においては、2つの部分画像から全天球画像を生成するための変換パラメータが存在し、つなぎ合わせ処理部204は、この変換パラメータに対し、つなぎ位置検出の結果を反映する。天頂補正部206も、変換パラメータに対し天頂補正の結果を反映する。そして、全天球画像生成部208は、これらの処理結果が反映された変換パラメータを用いて、2つの部分画像から全天球画像を生成する。このように処理することにより、最終的な全天球画像を得るための処理負荷を軽減することができる。
しかしながら、上述した実施形態に限定されるものではなく、2つの部分画像をつなぎ合わせて全天球画像を生成し、生成された全天球画像に対して天頂補正処理を施して、天頂補正が施された全天球画像を生成するよう構成することもできる。なお、変換パラメータについては後述する。
画像圧縮部210は、静止画圧縮ブロックを含み構成され、静止画を撮影する場合、撮像された画像を、JPEG(Joint Photographic Experts Group)などの所定の静止画形式の画像データに圧縮する。画像圧縮部210は、また、図2に示した動画圧縮ブロック118を含み構成され、動画を撮影する場合、撮像された連続する画像フレームを所定の動画形式の画像データに圧縮する。動画圧縮形式としては、特に限定されるものではないが、H.264/MPEG−4 AVC(Advanced Video Coding)、H.265/HEVC(High Efficiency Video Coding)、Motion JPEG、Motion JPEG2000などの種々の動画圧縮形式を挙げることができる。生成された画像データは、全天球カメラ100に装着された外部ストレージ134や、その他全天球カメラ100が備えるフラッシュメモリなどのストレージに保存される。
第1の処理の流れにおいては、例えば全天球カメラ100のユーザからの再生対象を指定した映像出力指示に応答して、機能部212〜224が動作する。画像展開部212は、上述したストレージに保存された画像データを読み出し、全天球画像を取得する。取得された全天球画像は、メモリ上に展開される。
注目点決定部214は、姿勢センサ136から出力されるセンサ情報に基づいて、注目点を決定する。この第1の流れでは、以降の映像出力処理中、全天球カメラ100は、もはや撮像動作を行っていないので、注目点を操作するための操作コントローラとして用いることができる。姿勢センサ136からのセンサ情報に基づいて、全天球カメラ100が向く方向に対応した注目点(カメラの姿勢角α,β,γ)が決定される。注目点決定部214は、本実施形態における決定手段を構成する。
なお、第1の処理の流れにおいて、表示の対象となる全天球画像には既に天頂補正が施されている。このため、特に限定されるものではないが、操作コントローラとしての全天球カメラ100を真上に向けた状態(つまり、図1に示す全天球カメラ100を、撮像体12側を上にして垂直に設置した状態)を基準とし、全天球カメラ100の姿勢角を定義することができる。なお、説明する実施形態では、全天球カメラ100を操作コントローラとして用いるものとして説明する。しかしながら、操作専用コントローラ、スマートフォン、タブレットコンピュータ、ヘッドマウントディスプレイなど、姿勢センサを備え全天球カメラ100と通信可能な外部装置を操作コントローラとして別途用意してもよい。
画像回転部216は、注目点決定部214により決定された注目点に応じて、全天球画像に対する座標変換処理を実行する。座標変換処理は、より具体的には、全天球画像の各座標を、注目点に応じた角度で3次元回転変換する処理である。座標変換処理については後述する。画像回転部216は、本実施形態による座標変換処理手段を構成する。
変換後全天球画像生成部218は、座標変換処理の実行の結果に基づき、元の全天球画像から、注目点に応じた変換後の全天球画像を生成する処理を実行する。変換後全天球画像生成部218は、本実施形態における画像生成手段を構成する。図4(A)は、本実施形態による全天球カメラ100において、生成される変換後全天球画像を例示する。変換後全天球画像は、注目点が画像の中心に配置されるように座標変換されているので、図4(A)に示す全天球画像の中心が、決定された注目点に対応する。
切出処理部220は、座標変換処理の実行により生成された変換後全天球画像の一部を切り出して、切出画像を生成する。好ましい実施形態では、切出処理部220は、変換後全天球画像の中央部分を切り出す処理であり、これにより、全天球画像における注目点を中心とした一定サイズの部分に対応した画像が切り出される。図4(A)には、全天球画像から切り出される中央部分の領域が破線の矩形で示されている。切出処理部220は、本実施形態における切出手段を構成する。
なお、説明する実施形態では、切出手段は、画像の一部を切り出して切出画像を生成する機能を有するものとして説明する。しかしながら、他の実施形態では、切出手段が備える機能としては、画像の一部を切り出して切出画像を生成するという機能のみならず、解像度を低下させる機能であってもよい。また、説明する実施形態では、画像回転部216による処理を行った後に、切出処理部220による処理を行うものとして説明したが、順序は、これに限定されるものではない。
拡大/レターボックス処理部222は、切出処理部220で切り出された画像に対し、出力先のディスプレイやプロジェクタなどの映像出力装置の解像度およびアスペクト比に応じて拡大処理を実行し、切り出された画像部分の上下に黒帯を追加する処理を行い、表示画像を生成する。出力部224は、拡大/レターボックス処理部222により処理されて生成された表示画像を、映像出力インタフェース129を介して出力する。なお、拡大/レターボックス処理部222による処理は、切出画像が映像出力装置の解像度およびアスペクト比に対応している場合には省略することができる。
図4(B)は、本実施形態による全天球カメラ100において、図4(A)に示される全天球画像に基づいて出力部224により出力される表示画像を例示する。図4(A)に示されるように、全天球画像の周辺部分は歪みが大きいが、中央部分は比較的に歪みが少ない。このため、中央部分を切り出して生成された表示画像は、図4(B)に示すように、閲覧者にとって自然に見える画像となっている。
静止画の場合は、少なくとも注目点が変化する毎、典型的には所定インターバル毎に、同一の全天球画像に対し、上記機能部214〜224による映像出力処理が繰り返し実行され、その時点の注目点に応じて表示画像が更新される。動画の場合は、典型的にはフレーム毎に、上記機能部212〜224による映像出力処理が繰り返し実行され、表示画像が更新される。
ユーザは、操作コントローラとしての全天球カメラ100を、真上方向に向けた状態を基準とし、前後左右に傾けたり、回転させることにより、注目点を変更し、変更された注目点に応じた全天球画像の表示画像を閲覧することが可能となる。
以下、引き続き、図3を参照しながら、記録前または記録中のリアルタイムな閲覧に対応した第2の処理の流れについて説明する。第2の処理の流れにおいては、ユーザからのライブビュー開始の指示に応答して、機能部202,204,214〜224が動作する。
撮像画像取得部202は、第1の流れと同様に、上述した2つの撮像素子130A,130Bを制御し、フレーム毎に2つの部分画像を取得し、メモリ上に展開する。つなぎ合わせ処理部204は、取得された2つの部分画像間のつなぎ位置を検出し、つなぎ位置検出の結果を変換パラメータに反映させる。
注目点決定部214は、操作コントローラの姿勢センサのセンサ情報に基づいて、注目点を決定する。この第2の流れでは、映像出力処理中も全天球カメラ100は、撮像動作を行っているので、注目点を操作するための操作コントローラを別途用意するものとする。ここでは、操作専用コントローラ、スマートフォン、タブレットコンピュータ、ヘッドマウントディスプレイなどの姿勢センサを備え、全天球カメラ100と通信可能な外部装置を操作コントローラとして用いることができる。操作コントローラから送信される姿勢センサのセンサ情報に基づいて、操作コントローラの向いている方向に対応した注目点(操作コントローラの姿勢角α,β,γ)が取得される。
画像回転部216は、注目点決定部214により決定された注目点に応じて、全天球画像の各座標を、注目点に応じた角度で3次元回転変換する座標変換処理を実行する。画像回転部216による結果は、2つの部分画像から全天球画像を生成するための変換パラメータに反映される。
変換後全天球画像生成部218は、つなぎ合わせ処理部204および画像回転部216の処理の実行の結果が反映された変換パラメータを用いて、撮像された2つの部分画像を合成し、変換後の全天球画像を直接生成する処理を実行する。
なお、第2の処理の流れにおいては、注目点を制御する操作コントローラに加えて、全天球画像を撮像する全天球カメラ100の姿勢も変化し得る。このため、画像回転部216による3次元回転変換は、好ましくは、全天球カメラ100の姿勢に応じた天頂補正を加味して行われる。例えば、全天球カメラ100が真上を向いた状態で、かつ、操作コントローラが真上を向いた状態で、全天球画像の天頂が重力方向(天方向)に一致するように基準を定義し、3次元回転変換が施される。
以降、第1の処理の流れと同様に、切出処理部220は、変換後全天球画像の一部を切り出して、切出画像を生成する。拡大/レターボックス処理部222は、切出処理部220で切り出された画像に対し、拡大処理および黒帯追加処理を行う。出力部224は、拡大/レターボックス処理部222により処理されて生成された表示画像を、映像出力インタフェース129を介して出力する。上記機能部202,204,214〜224による処理は、フレーム毎に繰り返し実行される。
第2の処理の流れでは、ユーザは、例えば、全天球カメラ100を固定配置して撮影を行い、外部の操作コントローラを、真上方向を基準として、前後左右に傾けたり、回転させることにより、注目点を変化させて、注目点に応じた全天球画像のライブビューを閲覧することが可能となる。なお、上述した説明では、全天球カメラ100の天頂補正を回転変換に反映するものとして説明した。これにより、全天球カメラ100の鉛直方向に対する傾きに関わらず、操作コントローラの姿勢を変化させることによって、ユーザが体感する重力の方向を基準として直観的に注目点を設定し易くなる。しかしながら、他の実施形態では、全天球カメラ100の姿勢に応じた天頂補正を行わず、操作コントローラの姿勢のみによって注目点を制御するように構成することを妨げるものではない。
以下、図5〜図13を参照しながら、本実施形態による全天球カメラ100が備える表示画像出力機能について、より詳細に説明する。図5および図6は、本実施形態による全天球カメラ100が実行する、第1の処理の流れにおける記録処理および表示画像出力処理を示すフローチャートである。図7は、本実施形態による全天球カメラ100が実行する第2の処理の流れによる表示画像出力処理を示すフローチャートである。
以下、図5および図6を参照しながら、第1の処理の流れにおいて実行される処理について説明する。図5に示す記録処理は、ユーザによる撮影ボタンの押下などの記録指示に応答して、ステップS100から開始される。なお、図5および図6に示す処理では、静止画を撮影し、閲覧する場合に対応する。ステップS101では、全天球カメラ100は、撮像画像取得部202により、撮像素子130A,130Bからの撮像画像を取得する。
図8は、本実施形態による全天球カメラ100における射影関係を説明する図である。本実施形態において、1つ魚眼レンズで撮影された画像は、撮影地点から概ね半球分の方位を撮影したものとなる。また、魚眼レンズは、図8(A)に示すように、光軸に対する入射角度φに対応した像高hで画像を生成する。像高hと、入射角度φとの関係は、所定の投影モデルに応じた射影関数で決定される。
射影関数は、魚眼レンズの性質によって異なる。上記投影モデルとしては、等距離射影方式(h=f・φ)、中心投影方式(h=f・tanφ)、立体射影方式(h=2f・tan(φ/2))、等立体角射影方式(h=2f・sin(φ/2))および正射影方式(h=f・sinφ)を挙げることができる。いずれの方式においても、光軸からの入射角度φと焦点距離fとに対応して結像の像高hが決定される。また、本実施形態では、画像対角線よりもイメージサークル径が小さな、いわゆる円周魚眼レンズの構成を採用するものとし、得られる部分画像は、図8(B)に示すように、撮影範囲の概ね半球分が投影されたイメージサークル全体を含む平面画像となる。
図9は、本実施形態で用いられる全天球画像の画像データのデータ構造を説明する図である。図9に示すように、全天球画像のフォーマットは、所定の軸に対するなす角度に対応する垂直角度φと、上記軸周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。各座標値(θ,φ)は、撮影地点を中心とした全方位を表す球面上の各点と対応付けられており、全方位が全天球画像上にマッピングされる。
図10は、本実施形態による全天球カメラが用いる変換パラメータを説明する図である。変換パラメータは、平面座標系で表現される部分画像から、球面座標系で表現される画像への射影を規定する。変換パラメータは、図10(A)および(B)に示すように、各魚眼レンズ毎に、補正後画像の座標値(θ,φ)と、該座標値(θ,φ)にマッピングされる補正前の部分画像の座標値(x、y)とを対応付ける情報を、全座標値(θ,φ)に対して保持したものである。図10の例示では、1画素が担当する角度は、φ方向およびθ方向いずれも1/10度であり、変換パラメータは、各魚眼レンズについて、3600×1800の対応関係を示す情報を有している。オリジナルの変換パラメータは、事前に製造元等で理想的なレンズモデルからの歪みを補正した上で計算され、テーブル化されたものを用いることができる。
再び図5を参照すると、ステップS102では、全天球カメラ100は、つなぎ合わせ処理部204により、取得された2つの部分画像間の重複領域にてつなぎ位置を検出し、変換パラメータに対し、つなぎ位置検出の結果を反映する。つなぎ位置検出の結果の反映により、図10(A)に示す変換パラメータは、補正後画像の座標値(θ,φ)に対し、つなぎ位置補正を反映した部分画像の座標値(x、y)が対応付けられるように修正される。
ステップS103では、全天球カメラ100は、天頂補正部206により、全天球カメラ100の重力方向に対する姿勢角を検出し、生成される全天球画像の天頂方向が鉛直方向に一致するように変換パラメータを修正する。天頂補正は、詳細を後述する3次元回転変換と同様の処理により実施することができるが、ここでは詳細には立ち入らない。ステップS104では、全天球カメラ100は、全天球画像生成部208により、変換パラメータを用いて、撮像された2つの部分画像から全天球画像を生成する処理を実行する。ステップS104においては、まず、変換パラメータを用いて、部分画像が、平面座標系から球面座標系へ変換される。そして、2つの球面座標系の部分画像が画像合成されて、全天球画像が生成される。
図11は、本実施形態による全天球カメラ100が2つの部分画像から生成する全天球画像を示す。なお、図11には、全天球カメラ100の真上方向と鉛直線が一致していない状態で撮影された2つの部分画像と、この2つの部分画像から天頂補正が施されて生成された全天球画像とが例示されている。図11に示す例では、一方の魚眼レンズが地面を向き、他方の魚眼レンズが空を向くように全天球カメラ100が傾けられた状態で、第1部分画像および第2部分画像が撮像されている。図11を参照する理解されるように、上述した天頂補正により、風景における水平線が中央に位置するように全天球画像が補正される。
再び図5を参照すると、ステップS105では、全天球カメラ100は、画像圧縮部210により、生成された全天球画像の画像データを画像圧縮し、ステップS106で、生成された画像データをストレージに保存する。そして、ステップS107で一旦処理を終了する。
図6に示す表示画像出力処理は、ユーザからの画像データを指定した映像出力指示に応答して、ステップS200から開始される。ステップS201では、全天球カメラ100は、画像展開部212により、指定の全天球画像の画像データをストレージから読み出し、ステップS202で、メモリ上に全天球画像を展開する。
ステップS203では、全天球カメラ100は、注目点決定部214により、全天球カメラ100の姿勢センサ136から出力されるセンサ情報に基づいて、注目点(カメラ本体の姿勢角α,β,γ)を決定する。ここでは、加速度センサ、ジャイロセンサ、地磁気センサの組み合わせにより、カメラ本体を真上に向けた状態を基準としたカメラ本体の姿勢角α,β,γが得られるものとして説明する。ステップS204では、全天球カメラ100は、画像回転部216により、ステップS203で決定された注目点に応じて、全天球画像に対する座標変換処理を実行する。ステップS204に示す座標変換処理では、全天球画像の各座標値(θ1,φ1)を入力値として座標変換が行われ、変換後の各座標値(θ2、φ2)が計算される。
ここで、座標変換処理について説明する。図12は、本実施形態による全天球カメラ100が実行する座標変換処理を説明する図である。ここで、座標変換前の3次元直交座標を(x1,y1,z1)、球面座標を(θ1,φ1)と表記し、座標変換後の3次元直交座標を(x2,y2,z2)、球面座標を(θ2,φ2)と表記する。
座標変換処理では、下記式(1)〜(6)を用いて、球面座標(θ1、φ1)から球面座標(θ2、φ2)への変換を行う。座標変換処理は、下記式(1)〜(3)による座標変換と、下記式(4)による座標変換と、下記式(5)および(6)による座標変換とを含む。
まず、3次元直交座標を用いて回転変換する必要があるため、上記式(1)〜(3)を用いて、球面座標(θ1,φ1)から3次元直交座標(x1、y1、z1)へ変換する処理が行われる。
次に、注目点として与えられるカメラ本体の姿勢角α、β、γを用いて、上記式(4)により、3次元直交座標系(x1,y1,z1)を、3次元直交座標系(x2,y2,z2)に変換する。換言すれば、上記式(4)は、姿勢角(α、β、γ)の定義を与える。つまり、上記式(4)は、元の座標系を、x軸を軸にα回転させ、y軸を軸にβ回転させ、z軸を軸にγ回転させることにより、変換後の座標系になることを意味している。
最後に、上記式(5)および式(6)式を用いて、変換後の3次元直交座標(x2,y2,z2)を球面座標(θ2,φ2)に戻す変換を行う。
再び図6を参照すると、ステップS205では、全天球カメラ100は、変換後全天球画像生成部218により、座標変換処理の実行の結果に基づき、元の全天球画像から、注目点に応じた変換後全天球画像を生成する処理を実行する。上述したステップS204の処理により、全天球画像の座標値(θ1,φ1)各々に対し、変換後の座標値(θ2、φ2)各々が計算されている。このため、変換後全天球画像生成処理は、変換後の全天球画像の入力座標値(θ1,φ1)の画素値として、この座標値(θ1,φ1)に対応して計算された変換後の座標値(θ2、φ2)の画素値を設定する処理となる。これにより、変換後の全天球画像が生成される。
ステップS206では、全天球カメラ100は、切出処理部220により、変換後の全天球画像の中央部分を切り出して、切出画像を生成する。例えば、全天球画像のサイズの縦横1/2のサイズで中心から切り出すことができる。ステップS207では、全天球カメラ100は、拡大/レターボックス処理部222により、出力先映像出力装置の解像度およびアスペクト比に応じて、切り出された画像を拡大および黒帯の追加を行い、表示画像を生成する。ステップS208では、全天球カメラ100は、出力部224により、生成された表示画像を、映像出力インタフェース129を介して出力し、ステップS209で本処理を終了する。
なお、静止画の場合、図6に示すステップS203〜ステップS208の処理は、全天球カメラ100の姿勢が変化し注目点が変更される毎に、または、所定インターバル毎に繰り返される。動画の場合は、図6に示すステップS201〜ステップS208の処理が、各フレームの画像毎に繰り返される。
以下、図7を参照しながら、第2の処理の流れにおいて実行される処理について説明する。図7に示す表示画像出力処理は、ユーザによるライブビュー開始指示に応答して、ステップS300から開始される。ステップS301では、全天球カメラ100は、撮像画像取得部202により、撮像素子130A,130Bからの撮像画像を取得する。
ステップS302では、全天球カメラ100は、つなぎ合わせ処理部204により、取得された2つの部分画像間の重複領域におけるつなぎ位置を検出し、変換パラメータに対し、つなぎ位置検出の結果を反映する。つなぎ位置検出の結果の反映により、図10(A)に示す変換パラメータは、補正後画像の座標値(θ,φ)に対し、つなぎ位置の補正を反映した部分画像の座標値(x、y)が対応付けられるように修正される。
ステップS303では、全天球カメラ100は、注目点決定部214により、外部操作コントローラの姿勢センサから出力されるセンサ情報に基づいて、注目点(操作コントローラの姿勢角α,β,γ)を決定する。ここでは、加速度センサ、ジャイロセンサ、地磁気センサの組み合わせにより、操作コントローラを真上に向けた状態を基準とした操作コントローラの姿勢角α,β,γが得られるものとして説明する。なお、ステップS303では、全天球カメラ100の姿勢角も検出され、操作コントローラが真上に向けられた状態(姿勢角(α,β,γ)=(0,0,0))で全天球画像の天頂方向が鉛直方向に一致するように、決定された姿勢角α,β,γに対し補正がかけられる。以下の説明では、説明の便宜上、全天球カメラ100が真上を向けて配置固定された状態で撮影が行われているものとして説明する。
ステップS304では、全天球カメラ100は、画像回転部216により、ステップS303で決定された注目点に応じて変換パラメータを修正する。ステップS304に示す座標変換処理では、全天球画像の座標値に対応する図10に示した変換パラメータの各変換後座標値(θ,φ)を入力値(θ1,φ1)として座標変換が行われ、上記式(1)〜(6)に従い変換後の座標値(θ2、φ2)が計算される。座標変換処理については、図12を参照して説明しているため、ここでは割愛する。
ステップS305では、全天球カメラ100は、変換後全天球画像生成部218により、座標変換処理の実行の結果が反映された変換パラメータを用いて、撮像された2つの部分画像から変換後全天球画像を直接生成する処理を実行する。変換パラメータの各座標値(θ,φ)に対し、これらを入力値(θ1,φ1)として変換後の各座標値(θ2、φ2)が計算されている。このため、変換後全天球画像生成処理は、変換後全天球画像の入力座標値(θ1,φ1)の画素値として、座標値(θ1,φ1)に対応して計算された変換後の座標値(θ2、φ2)に対応付けられる部分画像の座標値(x,y)の画素値を設定する処理となる。これにより、球面座標系に展開された2つの部分画像が得られ、2つの球面座標系の部分画像が画像合成されて、変換後の全天球画像が生成される。
ステップS306では、全天球カメラ100は、切出処理部220により、変換後全天球画像の中央部分を切り出して、切出画像を生成する。ステップS307では、全天球カメラ100は、拡大/レターボックス処理部222により、出力先の解像度およびアスペクト比に応じて、切り出された画像を拡大および黒帯追加を行い、表示画像を生成する。ステップS308では、全天球カメラ100は、出力部224により、生成された表示画像を、映像出力インタフェース129を介して出力し、ステップS309で本処理を終了する。
なお、図7に示すステップS301〜ステップS308の処理は、フレーム間隔毎に繰り返される。
図13は、本実施形態による全天球カメラ100が各注目点に応じた画像回転により生成する変換後全天球画像を、切り出される中央部分とともに示す図である。図13(B)は、基準となる注目点における変換後全天球画像および切り出される中央部分を示す。図13(B)は、ユーザが操作コントローラ(全天球カメラ100/外部操作コントローラ)を垂直に保持している状態に対応する。
これに対し、図13(A)は、操作コントローラを図13(B)に対応する姿勢から傾け、図13(B)において注目点を下に移動させた場合の変換後全天球画像および切り出される中央部分を示す。また、図13(C)は、操作コントローラを図13(B)に対応する姿勢から本体軸周りに回転させて、図13(B)において注目点を右に移動させた場合の変換後全天球画像および切り出される中央部分を示す。
図13に示すように、上記実施形態では、姿勢センサなどのセンサ情報により決定された注目点に基づき、全天球画像に対する座標変換処理を実行し、座標変換処理の実行により生成された変換後の全天球画像の一部を切り出すことにより、出力する表示画像が生成される。好ましい実施形態では、変換後の全天球画像の中央部分を切り出す処理を行うことにより、全天球画像における注目点を中心とした部分に対応した画像が表示画像として生成される。
上記実施形態によれば、全天球画像の一部を映し出した、閲覧者にとって違和感のない表示画像を、負荷の小さな処理で生成することが可能となる。好ましい実施形態によれば、全天球画像における歪みが少ない中央部分に注目点を中心とした画像が配置されるよう座標変換処理が施されるため、閲覧者は、専用ビューアを用いなくとも、自然な画像を閲覧することが可能となる。また、座標変換処理は、天頂補正のために全天球カメラ100に組み込まれた処理であるため、計装コストの削減、ひいては、画像処理による電力消費量、発熱を削減することも可能となる。
以上説明したように、上述した実施形態によれば、閲覧者にとって違和感のない対象画像の表示画像を、負荷の小さな処理で生成することができる画像処理システム、画像処理方法、プログラムおよび撮像システムを提供することができる。
なお、上述までの実施形態では、全天球カメラ100を一例として、画像処理システムおよび撮像システムについて説明した。しかしながら、画像処理システムおよび撮像システムの構成は、上述した構成に限定されるものではない。
他の実施形態では、上述した機能部202〜224の一部の処理を、外部のパーソナル・コンピュータやサーバ、操作コントローラとして動作させることができるコンピュータなどの1以上の画像処理装置上で分散実装してもよい。特定の実施形態において、上述した注目点決定部214、画像回転部216、変換後全天球画像生成部218、切出処理部220、拡大/レターボックス処理部222および出力部224は、撮像素子130を備える撮像装置である全天球カメラ、または、全天球カメラから分離された画像処理装置上に備えることができる。また、操作コントローラは、全天球カメラ、上述した画像処理装置、または全天球カメラおよび画像処理装置とは分離した装置とすることができる。
さらに、つなぎ合わせ処理部204によるつなぎ合わせ処理、画像回転部216による画像回転、および、切出処理部220による切り出し処理の順序は、図3に示した具体的な実施形態に限定されるものではない。(1)つなぎ合わせ処理をして、画像回転をして、切り出し処理をして出力する他、他の実施形態では、(2)画像回転をして、つなぎ合わせ処理をして、切り出し処理をして出力したり、(3)画像回転をして、切り出し処理をして、つなぎ合わせ処理をして出力したり、(4)つなぎ合わせ処理をして、切り出し処理をして、画像回転をして、出力したり、(5)切り出し処理をして、つなぎ合わせ処理をして、画像回転をして出力したり、(6)切り出し処理をして、画像回転をして、つなぎ合わせ処理をして出力したりすることを妨げるものではない。さらに、動画の状態で画像回転および切出処理を実行してもよい。
なお、上記機能部は、アセンブラ、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)
表示手段に表示する動画データを出力する画像処理システムであって、
入力される画像データの一部の画像データを出力する第一の手段と、
入力される画像データの座標を変換した画像データを出力する第二の手段と、
前記第一の手段と前記第二の手段とで処理された画像データを前記表示手段に表示する動画データとして出力する第三の手段と
を含む、画像処理システム。
(付記2)
複数の画像を合成して1つの画像を生成する画像処理システムであって、
入力される画像データの一部の画像データを出力する第一の手段と、
入力される画像データの座標を変換した画像データを出力する第二の手段と、
入力される複数の画像の画像データを合成して1つの画像データとして出力する第四の手段と、
前記第一の手段と前記第二の手段と前記第四の手段とで処理された画像データを出力する第三の手段と
を含む、画像処理システム。
(付記3)
前記第一の手段は、前記入力される画像データの一部を切り出す切出手段であり、前記第二の手段は、センサ情報に基づいて決定される注目点に基づき、前記入力される画像データに対する座標変換処理を実行する座標変換処理手段である、付記1または2に記載の画像処理システム。
(付記4)
前記第二の手段に入力される画像データは、球面座標系の画像であり、前記座標変換処理は、
前記第二の手段に入力される画像データの座標を3次元座標に座標変換する第1の座標変換と、
前記第1の座標変換処理により得られた3次元座標を3次元回転変換する第2の座標変換と、
前記3次元回転変換により得られた3次元座標を球面座標系に座標変換する第3の座標変換と
を含む、付記3に記載の画像処理システム。
(付記5)
前記切出手段は、前記入力される画像データの中央部分を切り出す処理であり、これにより、前記入力される画像データにおける注目点を中心とした部分に対応した画像が前記一部の画像データとして出力される、付記3または4に記載の画像処理システム。
(付記6)
前記センサ情報は、加速度センサ、ジャイロセンサおよび地磁気センサの少なくとも1つのセンサから得られる情報を含む、付記3〜5のいずれか1つに記載の画像処理システム。
(付記7)
それぞれレンズ光学系および撮像素子を含む複数の撮像手段であって、互いに異なる方向を撮像する前記複数の撮像手段からの複数の画像の画像データを取得する画像取得手段をさらに含む、付記1〜6のいずれか1つに記載の画像処理システム。
(付記8)
前記複数の撮像手段は、それぞれ、所定画角を有し、前記複数の撮像手段の画角を合わせることにより4πステアラジアンの立体角が満たされ、前記第三の手段により出力される画像データは、全天球画像である、付記7に記載の画像処理システム。
(付記9)
表示手段に表示する動画データを出力する画像処理方法であって、画像処理装置が、
入力される画像データの一部の画像データを出力する第一のステップと、
入力される画像データの座標を変換した画像データを出力する第二のステップと、
前記第一のステップと前記第二のステップとで処理された画像データを前記表示手段に表示する動画データとして出力する第三のステップと
を含む、画像処理方法。
(付記10)
複数の画像を合成して1つの画像を生成する画像処理方法であって、画像処理装置が、
入力される画像データの一部の画像データを出力する第一のステップと、
入力される画像データの座標を変換した画像データを出力する第二のステップと、
入力される複数の画像の画像データを合成して1つの画像データとして出力する第四のステップと、
前記第一のステップと前記第二のステップと前記第四のステップとで処理された画像データを出力する第三のステップと
を含む、画像処理方法。
(付記11)
前記第一のステップは、前記入力される画像データの一部を切り出すステップであり、前記第二のステップは、センサ情報に基づいて決定される注目点に基づき、前記入力される画像データに対する座標変換処理を実行するステップである、付記9または10に記載の画像処理方法。
(付記12)
前記第二のステップで入力される画像データは、球面座標系の画像であり、前記座標変換処理は、
前記第二のステップで入力される画像データの座標を3次元座標に座標変換する第1の座標変換と、
前記第1の座標変換処理により得られた3次元座標を3次元回転変換する第2の座標変換と、
前記3次元回転変換により得られた3次元座標を球面座標系に座標変換する第3の座標変換と
を含む、付記11に記載の画像処理方法。
(付記13)
表示手段に表示する動画データを出力する画像処理装置を実現するためのプログラムであって、コンピュータを、
入力される画像データの一部の画像データを出力する第一の手段、
入力される画像データの座標を変換した画像データを出力する第二の手段、および
前記第一の手段と前記第二の手段とで処理された画像データを前記表示手段に表示する動画データとして出力する第三の手段
として機能させるためのプログラム。
(付記14)
複数の画像を合成して1つの画像を生成する画像処理装置を実現するためのプログラムであって、コンピュータを、
入力される画像データの一部の画像データを出力する第一の手段、
入力される画像データの座標を変換した画像データを出力する第二の手段、
入力される複数の画像の画像データを合成して1つの画像データとして出力する第四の手段、および
前記第一の手段と前記第二の手段と前記第四の手段とで処理された画像データを出力する第三の手段
として機能させるためのプログラム。
(付記15)
表示手段に表示する動画データを出力する撮像システムであって、
複数のレンズ光学系および撮像素子を含み、画像データを撮影するための撮像手段と、
注目点を変更するためのコントローラ手段と、
入力される画像データの一部の画像データを出力する第一の手段と、
入力される画像データの座標を変換した画像データを出力する第二の手段と、
前記第一の手段と前記第二の手段とで処理された画像データを前記表示手段に表示する動画データとして出力する第三の手段と
を含む、撮像システム。
(付記16)
複数の画像を合成して1つの画像を生成する撮像システムであって、
複数のレンズ光学系および撮像素子を含み、画像データを撮影するための撮像手段と、
注目点を変更するためのコントローラ手段と、
入力される画像データの一部の画像データを出力する第一の手段と、
入力される画像データの座標を変換した画像データを出力する第二の手段と、
入力される複数の画像の画像データを合成して1つの画像データとして出力する第四の手段と、
前記第一の手段と前記第二の手段と前記第四の手段とで処理された画像データを出力する第三の手段と
を含む、撮像システム。