(57)【要約】【課題】広角画像の画質劣化を抑制する画像処理装置を提供すること。【解決手段】広角レンズを使用して撮像された撮像画像を取得する撮像画像取得手段４１と、画像処理装置の運動を検出する運動検出手段１３６と、前記撮像画像を少なくとも一部に曲面を有する広角画像に変換して前記運動検出手段が検出した運動に応じた補正量を算出し、前記補正量で前記撮像画像を補正する補正手段４４と、を有する画像処理装置１００を提供する。【選択図】図１
2018201123.tif 000002
【特許請求の範囲】
【請求項１】
広角レンズを使用して撮像された撮像画像を取得する撮像画像取得手段と、
画像処理装置の運動を検出する運動検出手段と、
前記撮像画像を少なくとも一部に曲面を有する広角画像に変換して前記運動検出手段が検出した運動に応じた補正量を算出し、前記補正量で前記撮像画像を補正する補正手段と、
を有する画像処理装置。
【請求項２】
前記補正手段は、前記撮像画像を立体球に変換して前記運動検出手段が検出した運動に応じて前記立体球の点が移動した移動量を算出し、前記移動量に基づいて算出した前記補正量で前記撮像画像を補正する請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、前記撮像画像の平面座標と前記立体球の球面座標を対応付ける対応情報を参照して、前記撮像画像の第一の平面座標を前記立体球に変換し、
前記立体球の座標を前記運動検出手段が検出した運動に応じて変更し、
変更された前記立体球の座標が前記対応情報において対応付けられた第二の平面座標を、前記第一の平面座標が対応付けられていた前記球面座標で置き換えることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記補正手段は、三次元空間の点を広角レンズで撮像された前記立体球の点に投影する透視投影変換と逆の変換を、第一の立体球の点に行い、
前記運動検出手段が検出した運動のｘ、ｙ、ｚ成分により運動前の前記三次元空間の点を運動後の三次元空間の点に変換し、
運動後の三次元空間の点に前記透視投影変換を行い第二の立体球の点を算出し、
前記第二の立体球の点を、前記運動検出手段が検出した運動に応じて変更された前記立体球の座標とすることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記補正手段は、前記第一の立体球の点と前記第二の立体球の点の差分を算出し、前記第一の立体球の点に前記差分を加えて得られる点を前記立体球の球面上に補正する請求項４に記載の画像処理装置。
【請求項６】
前記補正手段は、前記第一の立体球の点と前記立体球の点との差分を算出し、
前記第一の立体球の点に前記差分を加えた点を前記変更された前記立体球の座標として、
変更された前記立体球の座標が前記対応情報において対応付けられた前記第二の平面座標を、前記第一の平面座標が対応付けられていた前記球面座標で置き換える請求項４又は５に記載の画像処理装置。
【請求項７】
前記補正手段は、前記球面座標に対し前記補正手段による補正の程度を示す重み付けが対応付けられた重み付け情報を参照し、
前記球面座標に対応付けられた重み付けで前記立体球の座標を前記運動検出手段が検出した運動に応じて変更することを特徴とする請求項３又は４に記載の画像処理装置。
【請求項８】
前記重み付け情報は、前記球面座標に応じて推測される被写体との距離を考慮して決定されており、
前記距離が短いほど大きく、前記距離が長いほど小さい重み付けが前記球面座標に対し対応付けられていることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記重み付け情報は撮像シーンに応じて予め定められており、
前記補正手段は、ユーザが選択した前記撮像シーンに応じた前記重み付け情報を参照して前記撮像画像を補正することを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１０】
前記画像処理装置が撮像した画像がメッシュで区切って表示された際に、ユーザによりメッシュごとに入力された距離情報に応じて前記重み付け情報を生成することを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１１】
撮像画像取得手段が、広角レンズを使用して撮像された撮像画像を取得するステップと、
運動検出手段が、画像処理装置の運動を検出するステップと、
補正手段が、前記撮像画像を少なくとも一部に曲面を有する広角画像に変換して前記運動検出手段が検出した運動に応じた補正量を算出し、前記補正量で前記撮像画像を補正するステップと、
を有する画像処理方法。
【請求項１２】
情報処理装置を、
広角レンズを使用して撮像された撮像画像を取得する撮像画像取得手段と、
画像処理装置の運動を検出する運動検出手段と、
前記撮像画像を少なくとも一部に曲面を有する広角画像に変換して前記運動検出手段が検出した運動に応じた補正量を算出し、前記補正量で前記撮像画像を補正する補正手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
魚眼レンズや超広角レンズなどの広角レンズを複数使用して３６０度の全方位（以下、全天球という。）を１回の撮像操作で撮像する全天球撮像装置が知られている。全天球撮像装置は、各々のレンズを通過した光を撮像素子に結象させ、得られた各部分画像を画像処理によって結合することで全天球画像を生成する。例えば、１８０度を超える画角を有する２つの広角レンズを用いて、全天球画像を生成することができる。
【０００３】
全天球撮像装置はデジタルカメラの一形態であるが、撮像された画像が手ぶれの影響を受け画質が低下する場合がある。手ぶれによる画質の低下を抑制するため、デジタルカメラには光学式の手ぶれ補正機構が搭載される場合がある（例えば、特許文献１参照。）。また、手ぶれによる画質の低下を抑制するため、デジタルカメラには電子式の手ぶれ補正機構が搭載される場合がある（例えば、特許文献２参照。）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、いずれの手ぶれ補正の方式も全天球画像のような広角画像の手ぶれ補正には適切でないという問題がある。まず、光学式の手ぶれ補正機構はジャイロセンサなどでデジタルカメラの移動を検出し、移動を打ち消すようにレンズ又は撮像素子をモータで移動させる方式であるため、デジタルカメラのサイズ（筐体）が大きくなってしまう。また、電子式の手ぶれ補正機構は撮像素子の一部を使って連続的に取得した画像を比較して手ぶれが少なくなるように撮像素子の一部から画像を切り出す方式である。しかし、全天球画像の場合、広い撮像範囲で高い解像度を実現するため撮像素子の全体で撮像するので、撮像素子の一部から画像を切り出すような画像処理は困難である。
【０００５】
本発明は、上記課題に鑑み、広角画像の画質劣化を抑制する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、広角レンズを使用して撮像された撮像画像を取得する撮像画像取得手段と、画像処理装置の運動を検出する運動検出手段と、前記撮像画像を少なくとも一部に曲面を有する広角画像に変換して前記運動検出手段が検出した運動に応じた補正量を算出し、前記補正量で前記撮像画像を補正する補正手段と、を有する画像処理装置を提供する。
【発明の効果】
【０００７】
広角画像の画質劣化を抑制する画像処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】全天球撮像装置による手ぶれ補正の概略を説明する図の一例である。
【図２】全天球撮像装置の断面図の一例である。
【図３】全天球撮像装置のハードウェア構成図の一例である。
【図４】全天球撮像装置及び端末装置を模式的に示す図の一例である。
【図５】全天球撮像装置と端末装置の機能をブロック状に示す機能ブロック図の一例である。
【図６】画像処理ブロックの機能を説明する図の一例である。
【図７】全天球撮像装置の全体的な動作手順を示すフローチャート図の一例である。
【図８】魚眼レンズを用いた撮像システムにおける射影関係を説明する図である。
【図９】全天球フォーマットの画像データのデータ構造を説明する図である。
【図１０】部分画像の平面座標と球面座標を対応づける変換テーブルを説明する図である。
【図１１】２つの魚眼レンズで撮像された２つの部分画像の球面座標系へのマッピングを説明する図である。
【図１２】重複領域の位置合わせを説明する図の一例である。
【図１３】２つの魚眼レンズで撮像された２つの部分画像の球面座標系へのマッピングを説明する図である。
【図１４】ぶれ補正を説明する図の一例である。
【図１５】ぶれ補正部がぶれ補正を行う手順を示すフローチャート図の一例である。
【図１６】合成用変換テーブルの逆引きに関する処理を説明する図である。
【図１７】ベクトルｗの算出方法を説明する図の一例である。
【図１８】重み付けテーブルを説明する図の一例を示す。
【図１９】重み付けテーブルの選択画面の一例を示す図である。
【図２０】重み付け情報の入力画面の一例を示す図である。
【図２１】手ぶれ補正の実験を説明する図の一例である。
【図２２】手ぶれ補正の効果を説明する図の一例である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態の一例として、画像処理装置及び画像処理装置が行う画像処理方法について図面を参照しながら説明する。
【００１０】
＜処理の概略＞
図１は、全天球撮像装置１００による手ぶれ補正の概略を説明する図の一例である。図１（ａ）は手ぶれ補正の考え方を説明するため平面の画像における手ぶれ補正を示す。全天球撮像装置１００が時刻ｔと時刻ｔ＋１のそれぞれで周囲を撮像し、ベクトルｖで表される移動量だけ移動した。説明を容易にするためベクトルｖは平行移動であるとする。時刻ｔ１の全天球撮像装置１００と点Ｐｇ１，点Ｐｇ２との距離をそれぞれＬ１，Ｌ２とする。
【００１１】
時刻ｔに撮像された画像３９１における点Ｐｇ１と点Ｐｇ２は、時刻ｔ＋１に撮像された画像３９２で距離Ｌ１とＬ２に応じた分だけ平行移動している。当然ながら点Ｐｇ１の移動量の方が点Ｐｇ２の移動量より大きい。したがって、手ぶれによる点Ｐｇ１，Ｐｇ２のズレを補正するには、画像３９２に示すようにベクトルｖとは反対方向に距離Ｌ１，Ｌ２に応じて点Ｐｇ１，Ｐｇ２を平行移動すればよい。手ぶれにより全天球撮像装置１００が回転した場合も同様であり、ベクトルｖで表される回転に応じた方向に距離Ｌ１，Ｌ２に応じて点Ｐｇ１，Ｐｇ２を回転させれば手ぶれによる点Ｐｇ１，Ｐｇ２のズレを補正できると考えられる。
【００１２】
図１（ｂ）は広角レンズで撮像された全天球画像の手ぶれ補正を説明する図の一例である。全天球撮像装置１００が撮像する全天球画像は三次元の立体球３０３である。このため画像３９２のように補正することは困難である。すなわち、手ぶれにより全天球撮像装置１００が移動することは立体球が移動することになるが、立体球３０３がベクトルｖで平行移動したとしても、全天球画像が展開された平面画像３０４には全周囲３６０度の被写体が撮像されているため、平面画像３０４の各点が平行移動することにはならない。例えば、立体球３０３の経度方向に１８０度離れた点Ａ，点Ｂはどちらもベクトルｖで移動するが、平面画像３０４は立体球３０３を平面に展開した画像なので平面画像の点Ａ，点Ｂは逆向きに移動する（実際は点Ａ、Ｂの取り方によって移動方向は種々に変化する）。したがって、平面画像３０４の状態で全天球撮像装置１００が手ぶれ補正することは困難である。
【００１３】
そこで、本実施形態の全天球撮像装置１００は全天球画像を球面座標で表した状態で手ぶれ補正を行う。球面座標は厳密には二次元であるが、湾曲しているため三次元の立体球３０３の状態で手ぶれ補正することになる。全天球撮像装置１００はベクトルｖで表される全天球撮像装置１００の運動（平行移動及び回転）により立体球３０３の画像がどのように変化するかを示すベクトルｗを推定する。全天球撮像装置１００の運動は姿勢センサにより求められる。ベクトルｗは手ぶれによる画像の変化を表すので、ベクトルｗは画像の変化を低減する全天球画像の補正量に相当する。具体的には撮像後の画像と球面座標の全天球画像の対応を変更する。ただし、被写体との距離が考慮される。その後、補正量を反映させられた状態で撮像後の画像から全天球画像を生成することで手ぶれが抑制された全天球画像が得られる。
【００１４】
このように、全天球撮像装置１００の三次元の運動を姿勢センサ等で取得し、取得した運動による手ぶれの補正量を立体球の状態で推定するので、平面画像と同様の手ぶれ補正が困難な広角画像においても手振れを抑制することができる。したがって、光学式の手ぶれ補正機構及び電子的な手ぶれ補正機構を適用する必要がない。
【００１５】
＜用語について＞
撮像画像を取得するとは、撮像画像を撮像する処理に限られず、撮像された撮像画像を外部から取得する場合を含む。
【００１６】
画像処理装置の運動とは、三次元空間における画像処理装置の平行移動と回転の少なくとも一方をいう。
【００１７】
少なくとも一部に曲面を有する広角画像とは、少なくとも一部が湾曲した平面をいう。例えば立体球の一部が挙げられるが、完全な球に限られず湾曲していればよい。
【００１８】
＜構成例＞
図２は、本実施形態による全天球撮像装置１００の断面図である。全天球撮像装置１００は全天球カメラ等と呼ばれる撮像装置である。全天球撮像装置１００は、撮像体１１と、撮像体１１及びコントローラやバッテリなどの部品を保持する筐体１５と、筐体１５に設けられたシャッター・ボタン１４とを備える。 図２に示す撮像体１１は、２つの結像光学系１２Ａ，１２Ｂと、ＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなどの２つの固体撮像素子１３Ａ，１３Ｂを含む。１組の結像光学系１２と固体撮像素子１３をそれぞれ撮像光学系１９Ａ，１９Ｂと称する。
【００１９】
結像光学系１２は、例えば６群７枚の魚眼レンズを有しており、魚眼レンズは１８０度（＝３６０度／ｎ；ｎ＝２）より大きい全画角を有する。より好適には、１８５度以上の画角を有し、更に好適には１９０度以上の画角を有する。
【００２０】
２つの結像光学系１２Ａ、１２Ｂの光学素子（レンズ、プリズム、フィルタ及び開口絞り）は、固体撮像素子１３Ａ，１３Ｂに対し相対的に位置が定められる。結像光学系１２Ａ、１２Ｂの光学素子の光軸が、対応する固体撮像素子１３Ａ，１３Ｂの受光領域の中心部に直交し、かつ、受光領域が対応する魚眼レンズの結像面となるように位置決めされている。
【００２１】
図２の全天球撮像装置１００では、結像光学系１２Ａ、１２Ｂは同一仕様であり、互いの光軸が一致するように、互いに逆向きに組み合わせられる。固体撮像素子１３Ａ、１３Ｂは受光した光を画像信号に変換し、図３に示す画像処理ブロック１１６に出力する。動画として撮像される各画像をフレームと称する場合がある。
【００２２】
後述するように、固体撮像素子１３Ａ，１３Ｂでそれぞれ撮像された画像は、合成処理されてこれにより立体角４π〔ｓｒ：ステラジアン〕の画像（すなわち「全天球画像」）が生成される。全天球画像は、撮像地点から見渡すことのできる全ての方向を撮像したものとなる。本実施形態では全天球画像が生成されるとして説明するが、水平方向のみ広角（例えば、９０度〜３６０度）に撮像されたいわゆるパノラマ画像であってもよい。また、全天球画像は３６０度の全景のうちの一部を撮像した画像であってもよい。 また、全天球画像は静止画でもよいし、動画でもよい。
【００２３】
図３は、全天球撮像装置１００のハードウェア構成図の一例である。全天球撮像装置１００はバス１４２を介して接続された、ＣＰＵ（Central Processing Unit）１１２と、ＲＯＭ（Read Only Memory）１１４と、動画圧縮ブロック１１８と、映像出力インタフェース１２９と、画像処理ブロック１１６と、ＤＲＡＭ（Dynamic Random Access Memory）インタフェース１２０と、外部ストレージインタフェース１２２と、外部センサインタフェース１２４と、ＵＳＢインタフェースと、シリアルブロック１２８とを有する。
【００２４】
ＣＰＵ１１２は、ＲＯＭ１１４に記憶されたプログラムを実行して全天球撮像装置１００の各部の動作及び全体動作を制御する。ＲＯＭ１１４は、ＣＰＵ１１２が解読可能なコードで記述された制御プログラムや各種パラメータを記憶する。
【００２５】
動画圧縮ブロック１１８は、ＭＰＥＧ−４ ＡＶＣ／Ｈ．２６４などの符号化方法で動画圧縮し、また、伸張するコーデック・ブロックである。動画圧縮ブロック１１８は、画像処理ブロックが生成した全天球画像の動画データを保存するため、及び、保存された動画データを再生出力するために用いられる。
【００２６】
映像出力インタフェース１２９は、外部ディスプレイと接続するためのＨＤＭＩ（High-Definition Multimedia Interface。ＨＤＭＩは登録商標。）などのインタフェースである。画像処理ブロック１１６が生成した画像（外部ストレージへの記録前、記録中、又は、記録済みの画像）を外部ディスプレイなどに出力することができる。
【００２７】
画像処理ブロック１１６は、２つの固体撮像素子１３Ａ、１３Ｂと接続され、それぞれで撮像された画像の画像信号を取得する。画像処理ブロック１１６は、ＩＳＰ（Image Signal Processor）などを含み構成され、固体撮像素子１３Ａ、１３Ｂから入力された画像信号に対し、シェーディング補正、ベイヤー補間、ホワイト・バランス補正、及び、ガンマ補正などを行う。 画像処理ブロック１１６は、更に、複数の固体撮像素子１３Ａ，１３Ｂから上記処理を経て取得された複数の画像を合成処理し、これにより、上記した全天球画像を生成する処理を行う。 
ＤＲＡＭインタフェースはＤＲＡＭ１３２と接続され、ＤＲＡＭ１３２へのデータの書き込み及び読み出しを行う。ＤＲＡＭ１３２はＣＰＵ１１２がプログラムを実行する際のワークメモリとなり、また、画像処理ブロック１１６が画像処理を行う際に画像が一時的に記憶される。
【００２８】
外部ストレージインタフェース１２２には、メモリカードスロットに挿入されたメモリカードなどの外部ストレージ１３４が接続される。 外部ストレージインタフェース１２２は、外部ストレージ１３４に対する読み書きを制御する。
【００２９】
外部センサインタフェース１２４には姿勢センサ１３６が接続されている。姿勢センサ１３６は、加速度センサ、ジャイロセンサ、及び、地磁気センサの１つ以上の組み合わせで構成され、全天球撮像装置１００に生じた運動を特定するために用いられる。
【００３０】
例えば、３軸の加速度センサは、３軸方向それぞれの加速度を検出する。３軸のジャイロセンサは、３軸を中心とする回転の角速度を検出する。地磁気センサは、磁界の向き（東西南北の方位）を計測することができる。地磁気センサは電子コンパスと呼ばれる場合がある。これらのセンサの出力を単独で又は組み合わせることにより、全天球撮像装置１００の移動量や姿勢（手ぶれ補正に使用される）が与えられる。更に、姿勢センサ１３６のうち加速度センサから得られる情報は全天球画像の天頂補正を施すために使用される。
【００３１】
ＵＳＢインタフェース１２６には、ＵＳＢコネクタ１３８が接続される。 ＵＳＢインタフェース１２６は、ＵＳＢコネクタ１３８を介して接続されるパーソナル・コンピュータなどの外部機器とのＵＳＢ通信を制御する。
【００３２】
シリアルブロック１２８は、パーソナル・コンピュータなどの外部機器とのシリアル通信を制御し、無線ＮＩＣ（Network Interface Card）１４０が接続される。
【００３３】
なお、映像が入出力されるインタフェースとして、外部ストレージインタフェース１２２、ＵＳＢインタフェース１２６、シリアルブロック１２８，及び映像出力インタフェース１２９が示されているが、映像の入出力は特定の規格に限定されずに行われる。例えば、他の実施形態では、有線ＬＡＮ（Local Area Network）などの有線通信、Bluetooth（登録商標）やワイヤレスＵＳＢなどの他の無線通信、ＤｉｓｐｌａｙＰｏｒｔ（登録商標）やＶＧＡ（Video Graphics Array）などの他の映像出力インタフェースを介して、外部機器と接続されてもよい。 
なお、電源スイッチの操作によって通電状態になると、ＲＯＭ１１４のプログラムがＤＲＡＭ１３２にロードされる。ＣＰＵ１１２は、ＤＲＡＭ１３２に読み込まれたプログラムにしたがって、図３にブロックで示される各部の動作を制御すると共に、制御に必要なデータをＤＲＡＭ上に一時的に保存する。これにより、全天球撮像装置１００の後述する各機能部及び処理が実現される。
【００３４】
＜全天球撮像装置１００と共に使用される端末装置について＞
図４（ａ）は、全天球撮像装置１００及び端末装置５０を模式的に示す。全天球撮像装置１００はディスプレイを有していないため、画像データを表示するため端末装置５０と共に使用される場合が多い。全天球撮像装置１００と端末装置５０はＵＳＢケーブルなどの有線接続の他、無線ＬＡＮやBluetooth（登録商標）などの無線で互いに通信する。
【００３５】
端末装置５０は、一例としては、ＰＣ(Personal Computer)、スマートフォン、タブレット端末、ＰＤＡ（Personal Digital Assistant）、携帯電話、ウェアラブル型の情報処理端末等が挙げられる。
【００３６】
端末装置５０では、全天球撮像装置１００のアプリケーションソフトウェアが動作しており、全天球撮像装置１００が撮像した画像データを端末装置５０が受信して、ディスプレイに表示する。また、端末装置５０が受け付けた各種の設定を端末装置５０が全天球撮像装置１００に送信する。
【００３７】
図４（ｂ）は端末装置５０のハードウェア構成図の一例を示す。端末装置５０は、例えば図４に示すようなハードウェア構成により実現される。端末装置５０は、ＣＰＵ２０１、ＲＡＭ２０２、入力装置２０３、外部Ｉ／Ｆ２０４、ＳＳＤ（Solid State Drive）２０５、ＲＯＭ２０６、表示装置２０７、通信Ｉ／Ｆ２０８、及び、近距離無線通信装置２０９などを備え、それぞれがバスＢで相互に接続されている。
【００３８】
ＣＰＵ２０１は、ＲＯＭ２０６やＳＳＤ２０５などの記憶装置からプログラム２０５ｐやデータをＲＡＭ２０２上に読み出し、処理を実行することで、端末装置５０全体の制御や機能を実現する演算装置である。
【００３９】
入力装置２０３は、例えば、タッチパネルであり、端末装置５０に各操作信号を入力するのに用いられる。なお、入力装置２０３は、キーボードやマウスなどであってもよい。
【００４０】
外部Ｉ／Ｆ２０４は、外部装置とのインタフェースである。外部装置には、記録媒体２０４ａなどがある。記録媒体２０４ａには、本実施形態の表示方法を実現するプログラムが格納され得る。端末装置５０は外部Ｉ／Ｆ２０４を介して、記録媒体２０４ａの読み取り及び／又は書き込みを行うことができる。
【００４１】
記録媒体２０４ａは、例えば、ＳＤメモリカード（SD Memory card）などの記録媒体である。記録媒体２０４ａは、ＵＳＢメモリ（Universal Serial Bus memory）、ＤＶＤ（Digital Versatile Disk）、ＣＤ（Compact Disk）、フレキシブルディスクなどの記録媒体であってもよい。
【００４２】
ＳＳＤ２０５は、プログラム２０５ｐやデータを格納している不揮発性の記憶装置である。格納されるプログラム２０５ｐやデータには、例えば端末装置５０全体を制御する基本ソフトウェアであるＯＳ（Operating System）や、ＯＳ上において各種機能を提供するアプリなどがある。ＳＳＤ２０５は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（データベース）により管理している。なお、端末装置５０は、ＳＳＤ２０５の代わりに又はＳＳＤ２０５と併せて、ＨＤＤ（Hard Disk Drive）等を備えていてもよい。
【００４３】
ＲＡＭ２０２は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＲＯＭ２０６は、電源を切ってもプログラムやデータを保持することができる不揮発性の記憶装置である。ＲＯＭ２０６には、端末装置５０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。
【００４４】
表示装置２０７は、例えば、ＬＣＤ（Liquid Crystal Display）などであり、端末装置５０による処理結果を表示する。
【００４５】
通信Ｉ／Ｆ２０８は、端末装置５０をネットワークに接続するためのインタフェースである。また、通信Ｉ／Ｆ２０８は、携帯電話網やインターネット等に接続するためのインタフェースであってもよい。具体的には、無線ＬＡＮの通信装置、携帯電話網を介した通信装置などである。
【００４６】
近距離無線通信装置２０９は、例えば、Bluetooth（登録商標）、ＮＦＣ（Near Filed Communication）等の通信規格にしたがった通信装置である。ＮＦＣの場合、ＩＣカードのリーダ・ライタなどと呼ばれる場合がある。これにより、端末装置５０は、近距離無線通信装置２０９を介して全天球撮像装置１００とデータ通信を行うことができる。
【００４７】
図５は、全天球撮像装置１００と端末装置５０の機能をブロック状に示す機能ブロック図の一例である。全天球撮像装置１００は、通信部２１、操作受付部２２、及び、基本機能部２３を有する。通信部２１は、端末装置５０と各種の情報の送受信を行う。本実施形態では画像データを端末装置５０に送信したり、端末装置５０から各種の設定を受信したりする。通信部２１は、図３のＣＰＵ１１２がＲＯＭ１１４に記憶されたプログラムを実行し無線ＮＩＣ１４０を制御すること等により実現される。
【００４８】
操作受付部２２は電源のオン／オフ、シャッターの押下などユーザの操作を受け付ける。操作受付部２２は図３のＣＰＵ１１２がＲＯＭ１１４に記憶されたプログラムを実行すること等により実現される。
【００４９】
基本機能部２３は、全天球撮像装置１００が撮像装置として有する基本的な機能を提供する。すなわち、画像データの生成を行う。基本機能部は図３のＣＰＵ１１２がＲＯＭ１１４に記憶されたプログラムを実行し画像処理ブロック１１６、動画圧縮ブロック１１８を制御すること等により実現される。
【００５０】
全天球撮像装置１００は図３のＲＯＭ１１４及びＤＲＡＭ１３２の少なくとも一方により実現される記憶部２９を有する。この記憶部２９には後述する変換テーブル２４、合成用変換テーブル２５、及び、重み付けテーブル２６が記憶されている。詳細は後述されるが、変換テーブル２４は部分画像のｘ、ｙ座標と球面座標（θ、φ）とを対応付ける。合成用変換テーブル２５は２つの部分画像のつなぎ合わせと天頂補正によりｘ、ｙ座標とθ、φ座標との対応が変更された変換テーブルである。重み付けテーブル２６は被写体との距離に応じて手ぶれ補正の程度を変更するためのテーブルである。
【００５１】
一方、端末装置５０は通信部３１、操作受付部３２、及び、表示制御部３３を有している。端末装置５０が有する他の機能は本実施形態の説明に支障がないないとして省略されている。
【００５２】
通信部３１は、全天球撮像装置１００と各種の情報の送受信を行う。本実施形態では画像データを全天球撮像装置１００から受信したり、各種の設定を送信したりする。通信部３１は、図４（ｂ）のＣＰＵ２０１がＳＳＤ２０５に記憶されたプログラム２０５ｐを実行し通信Ｉ／Ｆ２０８を制御すること等により実現される。
【００５３】
操作受付部３２は端末装置５０に対するユーザの各種の操作を受け付ける。本実施形態では後述する重み付けテーブルに関する設定を受け付ける。操作受付部３２は図４（ｂ）のＣＰＵ２０１がＳＳＤ２０５に記憶されたプログラム２０５ｐを実行し入力装置２０３を制御すること等により実現される。
【００５４】
表示制御部３３はアプリケーションソフトウェアが作成する各種の画面を表示装置２０７に表示する。本実施形態では画像データ及び設定画面を表示する。表示制御部３３は図４（ｂ）のＣＰＵ２０１がＳＳＤ２０５に記憶されたプログラム２０５ｐを実行し表示装置２０７を制御すること等により実現される。
【００５５】
＜画像処理ブロック＞
続いて、図６（ａ）（ｂ）を用いて全天球撮像装置１００の画像処理ブロック１１６について説明する。全天球撮像装置１００は種々の画像処理を行う画像処理装置である。図６（ａ）は手ぶれ補正機能を有さない画像処理ブロック１１６の機能ブロック図の一例であり、図６（ｂ）は手ぶれ補正機能を有する画像処理ブロック１１６の機能ブロック図の一例である。図６（ｂ）に示す手ぶれ補正部４４が追加されても、後述するように手ぶれ補正部４４の有無は後段の全天球画像生成部４５の処理に影響を与えない。
【００５６】
図６（ａ）（ｂ）の画像処理ブロック１１６はＡＳＩＣ、ＦＰＧＡ、ＬＳＩなどのハード的な回路により実現されることが想定される。
【００５７】
＜全体の動作手順＞
図７は、全天球撮像装置１００の全体的な動作手順を示すフローチャート図の一例である。
【００５８】
ステップＳ１０：固体撮像素子１３Ａ，１３Ｂがそれぞれ周囲の被写体を撮像することで２つの部分画像が得られる。つなぎ合わせ処理部４２は変換テーブルを使って２つの部分画像をつなぎ合わせる。
【００５９】
ステップＳ２０：つなぎ合わせにより１つの全天球画像が得られるため、重力加速度が作用する方向に基づき天頂補正部４３が天頂補正する。具体的には、全天球画像の向きが回転されるため変換テーブルが回転させられる。これにより合成用変換テーブルを生成する。
【００６０】
ステップＳ３０：次に、手ぶれ補正部４４が手ぶれ補正を行う。具体的には、手ぶれ補正により合成用変換テーブルの部分画像のｘ、ｙ座標と球面座標（θ、φ）の対応を補正する。
【００６１】
ステップＳ４０：全天球画像生成部４５は合成用変換テーブルを用いて全天球画像を生成する。
【００６２】
＜＜撮像画像取得部４１＞＞
以下、全天球撮像装置１００の機能と動作手順の詳細を説明する。
【００６３】
撮像画像取得部４１は上記した２つの固体撮像素子１３Ａ，１３Ｂを制御し、それぞれからの撮像画像（部分画像）を取得する。
【００６４】
図８は、魚眼レンズを用いた撮像システムにおける射影関係を説明する図である。本実施形態において、１つ魚眼レンズで撮像された画像は、撮像地点から概ね半球分の方位を撮像したものとなる。また、魚眼レンズは、図８（ａ）に示すように、光軸３１１に対する入射角度φに対応した像高ｈで画像生成される。像高ｈと入射角度φとの関係は、所定の投影モデルに応じた射影関数で決定される。射影関数は、魚眼レンズの性質によって異なるが、等距離射影方式と呼ばれる投影モデルの魚眼レンズでは、ｆを焦点距離として、下式（１）で表現される。
【００６５】
【数１】
2018201123.tif 000003
上記投影モデルの他の例として、中心投影方式（ｈ＝ｆ・ｔａｎφ）、立体射影方式（ｈ＝２ｆ・ｔａｎ（φ／２））、等立体角射影方式（ｈ＝２ｆ・ｓｉｎ（φ／２））及び正射影方式（ｈ＝ｆ・ｓｉｎφ）を挙げることができる。いずれの方式においても、光軸３１１からの入射角度φと焦点距離ｆに対応して結像の像高ｈが決定される。また、本実施形態では、画像対角線よりもイメージサークル径が小さな、いわゆる円周魚眼レンズの構成を採用するものとし、得られる部分画像は、図８（ｂ）に示すように、撮像範囲の概ね半球分が投影されたイメージサークル全体を含む平面画像となる。
【００６６】
＜＜つなぎ合わせ処理部４２＞＞
続いて、図９〜１１を参照しながらつなぎ合わせ処理部４２の処理について説明する。図９は、本実施形態で用いられる全天球フォーマット３４０の画像データのデータ構造を説明する図である。図９に示すように、全天球フォーマット３４０の画像データは、所定の軸に対するなす角度に対応する垂直角度φと、上記軸周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。水平角度θは、０〜３６０度（−１８０度〜＋１８０度とも表現できる。）の範囲となり、垂直角度φは、０〜１８０度（同様に−９０度〜＋９０度とも表現できる。）の範囲となる。各座標値（θ，φ）は、撮像地点を中心とした全方位を表す球面上の各点と対応付けられており、全方位が全天球画像上にマッピングされる。魚眼レンズで撮像された画像の平面座標と、全天球フォーマット３４０の球面上の座標との関係は、図８で説明したような射影関数を用いることによって対応付けることができる。
【００６７】
図１０は、部分画像の平面座標と球面座標を対応づける変換テーブル２４を説明する図である。図１０（ａ）は変換テーブルの一例を示す。図１０（ｂ）は変換テーブル２４による対応付けを模式的に示す。図１０（ａ）（ｂ）に示すように、変換テーブル２４は各魚眼レンズごとに、補正後画像の座標値（θ,φ）と、該座標値（θ,φ）にマッピングされる補正前の部分画像の座標値（ｘ、ｙ）とを対応付ける情報を、全座標値（θ，φ）（θ＝０，・・・３６０度，φ＝０，・・・１８０度）に対して保持する。図１０の例では、１画素が担当する角度は、φ方向及びθ方向いずれも１／１０度であり、変換テーブル２４は、各魚眼レンズについて、３６００×１８００の対応関係を示す情報を有することになる。
【００６８】
つなぎ合わせ処理で使用される変換テーブル２４は、事前に全天球撮像装置１００の製造元等がレンズ設計データなどを元に、図８で説明したレンズの射影関係に基づき、放射歪曲及び偏心歪曲等に起因した理想的なレンズモデルからの歪みを補正した上で計算して作成される。なお、変換テーブル２４は、平面座標系で表現される部分画像（ｘ，ｙ）から、球面座標系で表現される画像（θ，φ）への射影を規定する１以上の関数の係数データとしてもよい。
【００６９】
図１１は、２つの魚眼レンズ０，１で撮像された２つの部分画像０，１の球面座標系へのマッピングを説明する図である。図１１（ａ）はレンズ０，１と光軸３１１を示し、図１１（ｂ）は位置検出用補正画像０，１の重複領域を示すと共に、部分画像０，１と位置検出用補正画像０，１と球面座標系との対応を示す。
【００７０】
魚眼レンズ０，１で撮像された２つの部分画像０，１は、変換テーブル２４により全天球フォーマット３４０上に展開される。魚眼レンズ０により撮像された部分画像０は、典型的には、全天球のうちの概ね上半球にマッピングされ、魚眼レンズ１により撮像された部分画像１は、全天球のうちの概ね下半球にマッピングされる。全天球フォーマット３４０で表現された部分画像０及び部分画像１は、魚眼レンズの全画角が１８０度を超えるため、それぞれ半球からはみ出し、その結果、位置検出用補正画像０及び位置検出用補正画像１を重ね合わせると、画像間で撮像範囲が重複する重複領域３３０が発生する。
【００７１】
変換テーブル２４により部分画像から全天球フォーマット３４０へ変換されるだけでは、重複領域３３０で画像にズレが生じる。変換テーブル２４は計算により作成されているに過ぎず、全天球撮像装置１００の製造時に魚眼レンズの取り付け誤差等が生じるためである。そこで、図１２に示すように重複領域３３０の位置合わせが行われる。
【００７２】
図１２は、重複領域３３０の位置合わせを説明する図の一例である。全天球フォーマット３４０のうち部分画像０に対応する部分を位置検出用補正画像０と称し、部分画像１に対応する部分を位置検出用補正画像１と称する。図１２のテンプレート用画像３００は、位置検出用補正画像１の重複領域３３０の画像であり、探索用画像３１０は、位置検出用補正画像０の重複領域３３０の画像である。重複領域３３０にはマッチング用のブロック３０２、３１２が生成される（各ブロックには枝番−１から−６が付されている）。ブロック・サイズは、重複領域３３０の縦よりも短い辺の正方形である（長方形でもよくその他の多角形でもよい）。つなぎ合わせ処理部４２は、重複領域３３０に所定の生成間隔でブロック３０２，３１２を生成する。ブロック・サイズ及び生成間隔は、マッチングの所望の精度及び処理量を勘案して定めればよい。
【００７３】
ブロック・サイズをＷ画素×Ｈ画素とし、テンプレート用画像３００のブロック３０２の生成開始座標を（ｓｘ，ｓｙ）とし、生成間隔を図示するｓｔｅｐ画素とすると、図１２に示すような態様で複数のブロック３０２−１〜３０２−６が生成される。テンプレート用画像３００のブロック３０２はテンプレート（ひな形）となる。テンプレートのブロック３０２の数は、全天球画像の幅サイズ＝３６００画素を生成間隔（ｓｔｅｐ）で割った値の整数値となる。
【００７４】
ここで生成された複数のブロック３０２−１〜３０２−６により、探索用画像３１０のブロック３１２−１〜３１２−６が探索される。なお、全天球フォーマット３４０のθ座標の両端（０度及び３６０度）はつながっているため、ブロックの生成やテンプレートマッチングの際は、右端の隣は左端として、左端の隣は右端として取り扱うことができる。
【００７５】
ブロック３０２−１〜３０２−６と最も位置するブロック３１２−１〜３１２−６の位置は分かっていないので、つなぎ合わせ処理部４２は、テンプレート用画像３００のブロック３０２の特徴量を算出し、探索用画像３１０の対応する位置３１４で特徴量を算出する。特徴量の類似度を算出し、step幅の範囲で水平方向に１画素シフトしながら類似度を算出することを繰り返す。step幅の範囲で特徴量が最も類似したシフト量が位置検出用補正画像１と位置検出用補正画像０の重複領域がマッチングした位置（ブロック３１２−１〜３１２−６）である。
【００７６】
なお、図１２ではθ方向にシフトさせていたが、ブロックをφ方向にもシフトさせることでθ及びφ方向に最も類似度が高いマッチング位置を特定できる。つなぎ合わせ処理部４２は部分画像０の変換テーブルの座標値（θ，φ）に対して、シフト量（Δθ，Δφ）を対応付ける。θ方向にのみシフトした場合、Δφはゼロでよい。部分画像１の歪み補正に用いた変換テーブルについては対応付けを変える必要はない。
【００７７】
こうすることで２つの部分画像０、１が最も合致する位置で２つの部分画像０，１をつなぎ合わせることができる。
【００７８】
＜＜天頂補正部４３＞＞
図１１に示したように上記の変換テーブルは、光軸３１１が球面（魚眼レンズ）の極を向き、画像間の重複部分が球面の赤道近傍に射影され、全天球フォーマット３４０の上下方向と、撮像されたシーンの天頂方向が一致していない。
【００７９】
天頂補正部４３は、全天球撮像装置１００の姿勢を検出し、生成される全天球画像の天頂方向が所定の基準方向に一致するようにするための補正処理を実行する。ここで、所定の基準方向とは、典型的には、鉛直方向であり、重力加速度が作用する方向である。全天球画像の天頂方向が鉛直方向（天頂方向）に一致するよう補正することにより、特に動画像において、閲覧時に視野の変更を行う場合でもユーザに三次元酔いなどの違和感を与えないようにすることが可能となる。
【００８０】
天頂補正部４３は、修正された変換テーブルの座標を回転することによって、合成用変換テーブル２５を生成する。
【００８１】
図１３は、２つの魚眼レンズで撮像された２つの部分画像の球面座標系へのマッピングを説明する図である。天頂補正部４３は、回転座標変換により、座標値(θｇ，φｇ)に対応する、つなぎ位置検出用の球面座標系の座標値(θｄ，φｄ)を求める。回転座標変換により、図１１に示すような、一方のレンズ光学系の光軸３１１を軸とした水平角度θｄ及び垂直角度φｄの座標軸の定義から、図１３に示すような、光軸３１１に垂直な軸を基準とした水平角度θｇ及び垂直角度φｇの定義に変換される。式（２）はこの回転座標変換を表す。
【００８２】
座標(θｇ，φｇ)は画像合成用の球面座標系の球面座標である。三次元直交座標（ｘｇ，ｙｇ，ｚｇ）は(θｇ，φｇ)に対応する三次元直交座標である。座標(θｄ，φｄ)はつなぎ合わせ処理に用いられた球面座標である。三次元直交座標（ｘｄ，ｙｄ，ｚｄ）は(θｄ，φｄ)に対応する三次元直交座標である。式（２）の係数βは、三次元直交座標におけるｘ軸周りの回転座標変換を規定する回転角である。本実施形態では、光軸と重力加速度のなす角（約９０度）である。
【００８３】
【数２】
2018201123.tif 000004
式（２）により座標(θｇ，φｇ)と座標(θｄ，φｄ)の対応が求められるため、天頂補正部４３は変換テーブル２４の球面座標（θ、φ）を座標(θｄ，φｄ)で検索し、変換テーブル２４の球面座標（θ、φ）を座標(θｇ，φｇ)で置き換える。これにより合成用変換テーブル２５を生成する。
【００８４】
これにより、合成用変換テーブル２５では、光軸が球面の赤道上に射影され、全天球フォーマット３４０の上下方向と、撮像されたシーンの天頂方向とが一致する。
【００８５】
＜＜全天球画像生成部４５＞＞
全天球画像生成部４５はつなぎ合わせ処理部４２及び天頂補正部４３の処理結果が反映された状態で、撮像された２つの部分画像０，１から全天球画像を生成する。上記のように、２つの部分画像０，１から全天球画像を生成するための変換テーブル２４が予め存在し、つなぎ合わせ処理部４２は、この変換テーブル２４に対し、つなぎ位置検出の結果を反映させる。天頂補正部４３は変換テーブル２４に対し天頂補正の結果を反映させ合成用変換テーブル２５を生成する。そして、全天球画像生成部４５は、これらの処理結果が反映された合成用変換テーブル２５を用いて、２つの部分画像から全天球画像を生成する。
【００８６】
＜ぶれ補正部４４＞
ぶれ補正部４４は、天頂補正部４３が補正した合成用変換テーブルの球面座標（θ、φ）を、ぶれを抑制するように補正する。したがって、全天球画像生成部４５が合成用変換テーブルを使って全天球画像を生成できることに変わりはなく、ぶれ補正部４４の追加は天頂補正部４３及び全天球画像生成部４５に影響しない。
【００８７】
図１４は、ぶれ補正を説明する図の一例である。図１４（ａ）は撮像時刻が異なる時系列のフレームＮ、Ｎ＋１を示す。点ＰｇはフレームＮ，Ｎ＋１に共通に撮像されており、フレームＮ、Ｎ＋１の異なる点ｐ、ｐ′に写っている。したがって、フレームＮ＋１のｐ′をフレームＮのｐに一致させれば手ぶれを補正できる。なお、フレームＮ、Ｎ＋１はそれぞれ全天球撮像装置１００と見なすことができ、全天球撮像装置１００の運動を表すベクトルｖはフレームＮとＮ＋１の位置と姿勢の違いを表す。
【００８８】
全天球撮像装置１００がベクトルｖで表される運動を行った場合、フレームＮとＮ＋１では全天球画像のある点がベクトルｗで移動したように見える。図１４（ｂ）はベクトルｗを示す。ベクトルｗは点ＰからＰ′への有向線分でありベクトルｗが長いほど手ぶれが大きいことが分かる。ベクトルｗが生じなかったように補正されるのでベクトルｗは補正量に相当する。ベクトルｗの算出方法については図１７にて説明する。
【００８９】
図１５は、ぶれ補正部４４がぶれ補正を行う手順を示すフローチャート図の一例である。
【００９０】
ぶれ補正部４４は、全天球撮像装置１００の運動を表すベクトルｖを算出する（Ｓ３０１）。ベクトルｖは姿勢センサ（加速度センサ、ジャイロセンサ）により求まる。加速度センサが検出する加速度を２回、定積分することで移動量を求められる。同様にジャイロセンサが検出する角速度を２回、定積分することで回転角を求められる。積分範囲は、フレームＮを撮像してからフレームＮ＋１が撮像されるまでの時間である。
【００９１】
次に、ぶれ補正部４４は合成用変換テーブル２５を用いて部分画像０，１の座標（ｘ、ｙ）を球面座標の点ｐに変換する（Ｓ３０２）。すなわち、魚眼レンズで固体撮像素子１３Ａ，１３Ｂに投影された部分画像０，１の座標（第一の平面座標）を球面座標の点ｐに変換する。この変換は天頂補正された合成用変換テーブル２５をそのまま用いればよい。
【００９２】
次に、ぶれ補正部４４はベクトルｖに対応するベクトルｗを算出する（Ｓ３０３）。詳細は図１７にて説明する。
【００９３】
次に、ぶれ補正部４４は点ｐにベクトルｗを加えて点ｐ´を決定する（Ｓ３０４）。ｐ´は球面上に存在する。
【００９４】
次に、ぶれ補正部４４は点ｐ´を部分画像０，１の座標(x´, y´)に変換する（Ｓ３０５）。これは合成用変換テーブル２５を逆引きすることにより行われる。図１６を用いて説明する。座標(x´, y´)は第二の平面座標の一例である。
【００９５】
図１６は、合成用変換テーブル２５の逆引きに関する処理を説明する図である。上記のように点ｐ´が求められるので、対応する座標(ｘｐ´,ｙｐ´)が逆引きされる。この座標(ｘｐ´,ｙｐ´)が点ｐのθｐ、φｐと対応付けられることで手ぶれが低減されるので、合成用変換テーブルの座標(ｘｐ´,ｙｐ´)を点ｐに対応する座標（ｘｐ、ｙｐ）で置き換える。
【００９６】
（θｐ、φｐ）と（θｐ´、φｐ´）との差、又は、座標（ｘｐ、ｙｐ）と座標(ｘｐ´,ｙｐ´)の差はベクトルｗの長さに相当しており、これらの差は補正量ということができる。
【００９７】
このようにして生成された合成用変換テーブル２５は全天球画像生成部４５に送出され、全天球画像生成部４５により部分画像から全天球画像が生成される。
【００９８】
<<ベクトルｗの算出>>
図１７はベクトルｗの算出方法を説明する図の一例である。説明の便宜上、回転成分（姿勢の変化）がない場合を図示するが、回転成分がある場合も同様に計算できる。
【００９９】
全天球撮像装置１００がベクトルｖで運動したものとする。図１７の各符号の意味は以下のとおりである。
ｐ（ｘ、ｙ、ｚ）：フレームＮ（時刻ｔ）に点Ｐｇが写っている三次元空間の座標
ｐ′′（ｘ′′、ｙ′′、ｚ′′）：フレームＮ＋１（時刻ｔ＋１）に点Ｐｇが写っている三次元空間の座標
Ｐｇ（Ｘｇ、Ｙｇ、Ｚｇ）：被写体の三次元空間の座標（運動前の三次元空間の点）
ベクトルｖ：全天球撮像装置１００の運動を表すベクトル
ｖｘ、ｖｙ、ｖｚ：グローバル座標におけるベクトルｖのｘ成分、ｙ成分、ｚ成分
Ｐｇ′（Ｘｇ′、Ｙｇ′、Ｚｇ′）：被写体の三次元空間の座標（運動後の三次元空間の点）
グローバル座標系で全天球撮像装置１００がベクトルｖで移動する場合、点ｐはｖｘ、ｖｙ、ｖｚ移動したことになる。したがって、Ｐｇ′（Ｘｇ′、Ｙｇ′、Ｚｇ′）をグローバル座標における被写体の位置とすると各成分は以下のように表せる。
Ｘｇ′＝Ｘｇ−ｖｘ
Ｙｇ′＝Ｙｇ−ｖｙ
Ｚｇ′＝Ｚｇ−ｖｚ
ここで、Ｐｇからｐへの変換は一般に透視投影行列Ｐを使って、
ｐ=ＰＰｇ  …（３）
で表される。Ｐは全天球撮像装置１００において既知の透視投影変換を表す行列である。
【０１００】
【数３】
2018201123.tif 000005
時刻ｔ＋１に被写体Ｐｇが写っている点ｐ′′もＰｇ′に透視投影行列Ｐを掛けて得られるはずである。
ｐ′′＝ＰＰｇ′  …（５）
式（３）を参照すると、ＰｇはｐにＰ-1（逆行列）を掛けることで求められる。したがって、式（３）よりＰｇの各成分ｘｇ、ｙｇ、ｚｇが求められる。また、ｖｘ、ｖｙ、ｖｚも分かっているので、ｘｇ′、ｙｇ′、ｚｇ′も算出できる。これによりＰｇ′が求められた。
【０１０１】
以上により、式（５）からｐ′′を算出できる。ベクトルｗはｐとｐ′′の差分として算出される。このように、本実施形態の全天球撮像装置１００は、部分画像を三次元空間の立体球に変換してベクトルｖに応じて立体球の点Ｐが移動した移動量をベクトルｗとして求める。
【０１０２】
しかしながら、ｐ′′は必ずしも球面上に存在しないので、球面座標（θ、φ）で表すことができないおそれがある。全天球画像は半径ｒ＝１なので、ｐ′′（ｘ′′、ｙ′′、ｚ′′）をｒ＝１となる球面上の点に補正する。ｘ′′、ｙ′′、ｚ′′を定数ｎ倍する。ｎは半径ｒ＝１であることを利用して、ｎ＝1／√（ｘ′′２＋、ｙ′′２＋ｚ′′２）である。
【０１０３】
次に、Ｐ′′は直交座標系で表されているので、極座標（ｒ、θ、φ）に変換する。ただしｒ＝１である。
θ ＝ arctan(ｙ′′/ｘ′′) 
φ ＝ arccos(ｚ′′)
となる。
【０１０４】
以上のようにして、点ｐ′′を球面上の点に補正でき、点ｐが点ｐ′に移動する際のベクトルｗが求められる。
【０１０５】
なお、式（５）でｐ′′を算出したが、Ｐやベクトルｖが正確であればｐ′′がｐ′と一致するか又は一致すると見なしてよい。この場合は、ベクトルｗを算出することなくｐ′′を部分画像０，１の座標(x´, y´)に変換できる（図１４のＳ３０５）。したがって、必ずしもベクトルｗを算出する必要はない。
【０１０６】
＜被写体との距離を考慮した手ぶれ補正＞
図１にて説明したように被写体との距離によって手ぶれの影響の大きさが異なる。しかしながら、全天球撮像装置１００が距離センサを有していない場合は少なくない。そこで、予め重み付けテーブル２６を用意しておくことが考えられる。
【０１０７】
図１８は、重み付けテーブル２６を説明する図の一例を示す。図１８（ａ）は撮像シーンを模式的に示している。一般的な室内では机３５０等が置かれており、全天球撮像装置１００から机３５０までの距離は最も短く、壁との距離は全天球撮像装置１００の置かれた位置によって異なるが中程度で、天井までの距離が最も長い場合が多いと推測される。したがって、緯度（φ）方向では、φが大きくなるほど距離が長くなる傾向にあると言える。
【０１０８】
天頂方向のφを０度、地方向のφを１８０度と定義する。距離が短いほど手ぶれの補正量が大きいので、φが大きいほど大きくなる重み付け情報が定められればよい。重み付け情報は０から１の範囲であるとする。すなわち、０では手ぶれ補正を行わず、０．５では５０％の手ぶれ補正を行い、１では１００％の手ぶれ補正を行うことを意味する。
【０１０９】
図１８（ｂ）は重み付けテーブル２６の一例を示す。図１８（ｃ）は重み付けテーブル２６におけるθとφの取り方を示す。図１８（ｃ）ではφ＝０が天頂方向、φ＝１８０度が地方向であるので、φが大きくなるほど重み付け情報が大きくなっている。
【０１１０】
手ぶれ補正部４４は、ベクトルｗを算出する際、ｖｘ、ｖｙ、ｖｚに０〜１の値を乗じる。φが大きいほどベクトルｗが大きくなるので（φが小さいほどベクトルｗが小さくなる）、φが大きい被写体ほど大きく手ぶれ補正することができる。
【０１１１】
<<重み付けテーブルの選択>>
ユーザが撮像シーンに応じた重み付けテーブル２６を選択してもよい。全天球撮像装置１００と被写体までの距離は撮像シーンによりある程度、類似性がある。例えば、屋内では図１８（ａ）で説明した傾向がある。一方、屋外では壁がないし、地方向の距離も屋内よりも長くなる傾向ある。一方、車内のような狭い空間では、上下左右のどちらの方向でも全天球撮像装置１００と被写体との距離が短い。
【０１１２】
図１９は重み付けテーブル２６の選択画面４０１の一例を示す。全天球撮像装置１００は端末装置５０と無線で通信する。端末装置５０では全天球撮像装置１００のアプリケーションが動作しており、重み付けテーブル２６の選択画面４０１を表示する。重み付けテーブル２６の選択画面には屋内ボタン４０２、屋外ボタン４０３、及び、狭い空間ボタン４０４がそれぞれ表示されており、ユーザは撮像シーンを考慮していずれかのボタンを押下する。端末装置５０はユーザの操作を受け付けて、選択された撮像シーンを全天球撮像装置１００に送信する。これにより、全天球撮像装置１００は撮像シーンに適切な重み付けテーブル２６を採用して手ぶれ補正することができる。
【０１１３】
<<ユーザによる重み付け情報の入力>>
図２０に示すようにユーザが重み付けテーブル２６に重み付け情報を入力してもよい。図２０は、重み付け情報の入力画面４１０を示す。図示するように端末装置５０はいったん撮像した全天球画像（図２０では正距円筒図）を表示する。端末装置５０は全天球画像を点線などでメッシュ４２０に区切って表示する。ユーザはメッシュ４２０ごとに全天球撮像装置１００との距離を判断し、距離情報として遠ボタン４１１、中ボタン４１２、近ボタン４１３のいずれかを押下してからメッシュ４２０を押下する。こうすることで、全天球画像の球面座標（θ、φ）と遠、中、近を対応付けることができる。
【０１１４】
端末装置５０は球面座標（θ、φ）と遠、中、近の対応付けを全天球撮像装置１００に送信する。全天球撮像装置１００は、遠を０、中を０．５、近を１に対応付けて重み付けテーブル２６を作成する。
【０１１５】
なお、ユーザは全てのメッシュ４２０を遠、中、近のいずれかと対応付けることまでは要求されない。全天球撮像装置１００は遠、中、近のいずれかと対応付けていないメッシュを補間することで、重み付け情報を算出する。
【０１１６】
図２０のようにユーザが重み付け情報を入力すれば、撮像シーンにより適した重み付けテーブル２６が得られるので、手ぶれ補正により画質が向上しやすくなる。
【０１１７】
<<距離の測定>>
全天球撮像装置１００が被写体までの距離を測定して、距離に応じた重み付けテーブル２６を作成してもよい。例えば、全天球撮像装置１００がＬＲＦ（Laser Range Finder ）を搭載する。あるいは、ステレオカメラなど距離を測定するセンサを搭載する。全天球撮像装置１００は測定された距離を元に、重み付けテーブル２６を作成する。すなわち、一定以上の遠方の被写体との距離を最大にして最大の距離の重み付け情報を０，最小の距離の重み付け情報を１に設定し、その間の重み付け情報を距離によって決定する。
【０１１８】
距離の測定により重み付け情報が決定されれば、より正確な重み付けテーブル２６が得られるので、手ぶれ補正により画質が向上しやすくなる。
【０１１９】
＜手ぶれ補正の画質向上例＞
図２１，図２２を用いて手ぶれ補正の効果について説明する。図２１は手ぶれ補正の実験を説明する図である。机３５０の上に全天球撮像装置１００が固定されている。全天球撮像装置１００は動画を撮像しながら、実験者が机３５０を床に平行に移動させる。全天球撮像装置１００の撮像範囲に動く物体は存在しないため、全天球撮像装置１００に平行移動の手ぶれが生じたことを再現できる。
【０１２０】
図２２は、手ぶれ補正の効果を説明する図である。まず、実験者は手ぶれ後のある時刻の全天球画像１を用意する。次に、実験者はこの全天球画像に本実施形態で説明した手ぶれ補正を行い、全天球画像２を生成する。図２２（ａ）は参考に示した撮影環境の全天球画像である。図２２（ｂ）は全天球画像１と全天球画像２の差分画像である。差分がない画素は黒画素になり、差分がある画素は白画素になる。
【０１２１】
全天球撮像装置１００の撮像範囲に動く物体は存在しないため、差分が生じれば手ぶれ補正による画像の変化を示す。図２２に示すように、手ぶれ補正により差分が得られており、本実施形態の手ぶれ補正が有効であることが分かる。
【０１２２】
＜まとめ＞
以上説明したように、本実施形態の全天球撮像装置１００は、全天球撮像装置１００の三次元の運動を姿勢センサ等で取得し、取得した運動による手ぶれの補正量を三次元（球面座標）の状態で推定するので、平面画像と同様の手ぶれ補正が困難な広角画像においても手振れを抑制することができる。したがって、光学式の手ぶれ補正機構及び電子的な手ぶれ補正機構を適用する必要がない。
【０１２３】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１２４】
例えば、本実施形態では画像処理ブロック１１６がハードウェア回路であると説明したが、画像処理ブロック１１６の機能をソフトウェアで実現してもよい。また、画像処理ブロック１１６の機能を全天球撮像装置１００でなく端末装置５０等が有していてもよい。また、全天球撮像装置１００をクライアント、端末装置５０をサーバとしてサーバが手ぶれ補正を行ってもよい。
【０１２５】
また、端末装置５０が全天球撮像装置１００として使用されてもよい。この場合、端末装置５０に外付けで２つの魚眼レンズが接続される。端末装置５０は本実施形態の手ぶれ補正を行うことができる。このように、全天球撮像装置１００は情報処理装置でもよい。
【０１２６】
また、図６（ｂ）の構成では天頂補正の後に手ぶれ補正を行っていたが、天頂補正の前に手部ぶれ補正を行ってもよい。この場合、天頂補正が行われていないので、距離情報を考慮することが困難になる。したがって、重み付けテーブルは予め写りこむ被写体が決まっているものとして作成される。例えば、台に固定された全天球撮像装置１００が、台と共に移動されながら撮像する場合は、重み付けテーブルを予め用意できる。
【０１２７】
また、本実施形態ではジャイロセンサで姿勢を検出したが、地磁気センサにより鉛直方向を軸とする全天球撮像装置１００の向きを検出することもできる。
【０１２８】
また、以上の実施例で示した図６などの構成例は、全天球撮像装置１００の処理の理解を容易にするために、主な機能に応じて分割したものである。しかし、各処理単位の分割の仕方や名称によって本願発明が制限されることはない。全天球撮像装置１００の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１２９】
なお、撮像画像取得部４１は撮像画像取得手段の一例であり、姿勢センサ１３６は運動検出手段の一例であり、手ぶれ補正部４４は補正手段の一例である。合成用変換テーブル２５は対応情報の一例であり、Ｐｇは第一の立体球の点の一例であり、Ｐｇ′は第二の立体球の点の一例である。
【符号の説明】
【０１３０】
２４          変換テーブル
２５          合成用変換テーブル
２６          重み付けテーブル
４１          撮像画像取得部
４２          つなぎ合わせ処理部
４３          天頂補正部
４４          補正部
４５          全天球画像生成部
５０          端末装置
１００        全天球撮像装置
【先行技術文献】
【特許文献】
【０１３１】
【特許文献１】特開２００３‐１１０９２９号公報
【特許文献２】特開平０４‐０８８７６１号公報
【図１】
2018201123.tif 000006
【図２】
2018201123.tif 000007
【図３】
2018201123.tif 000008
【図４】
2018201123.tif 000009
【図５】
2018201123.tif 000010
【図６】
2018201123.tif 000011
【図７】
2018201123.tif 000012
【図８】
2018201123.tif 000013
【図９】
2018201123.tif 000014
【図１０】
2018201123.tif 000015
【図１１】
2018201123.tif 000016
【図１２】
2018201123.tif 000017
【図１３】
2018201123.tif 000018
【図１４】
2018201123.tif 000019
【図１５】
2018201123.tif 000020
【図１６】
2018201123.tif 000021
【図１７】
2018201123.tif 000022
【図１８】
2018201123.tif 000023
【図１９】
2018201123.tif 000024
【図２０】
2018201123.tif 000025
【図２１】
2018201123.tif 000026
【図２２】
2018201123.tif 000027