(57)【要約】【課題】  画像処理装置を提供すること。【解決手段】  画像処理装置１１０は、撮像装置で撮像された複数のフレームを含む動画データ２４２、撮像装置の基準方向に対する傾き角の時系列データ２４４および撮像装置に生じた角速度の時系列データ２４６を記憶する記憶手段２１４と、角速度の時系列データ２４６に基づいて、動画データ２４０の複数のフレームに対し、基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、画像の回転が施された複数のフレームに基づく画像データを出力する出力手段２３２とを含む。【選択図】  図３
2019110434.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置で撮像された複数のフレームを含む動画データ、前記撮像装置の基準方向に対する傾き角の時系列データおよび前記撮像装置に生じた角速度の時系列データを記憶する記憶手段と、
前記角速度の時系列データに基づいて、前記動画データの複数のフレームに対し、前記基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、
前記画像の回転が施された複数のフレームに基づく画像データを出力する出力手段と
を含む、画像処理装置。
【請求項２】
前記画像処理装置は、当該画像処理装置と通信する外部装置からの補正された動画を求める要求に応答して、前記動画データの前記複数のフレームに対する画像の回転および前記画像の回転が施された複数のフレームに基づく画像データの出力を開始することを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
回転が施される前記画像は、全天球画像であり、前記画像の回転では、前記傾き角の時系列データに基づいて、前記動画データの前記複数のフレームに対し、さらに前記全天球画像の天頂補正が施されることを特徴とする、請求項１または２に記載の画像処理装置。
【請求項４】
前記画像処理装置は、さらに、
前記傾き角の時系列データの第１の時点の値に基づいて、前記第１の時点での前記撮像装置の正面方向を計算する手段と、
前記角速度の時系列データに基づいて、それぞれフレームに対応する複数の時点にわたる前記撮像装置の正面方向を計算する手段と、
前記傾き角の時系列データに基づいて、各時点の前記正面方向から前記画像の回転を施す際の各時点の補正角度を計算する手段と
を含む、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像処理装置は、さらに、
計算された各時点の補正角度に対し、前記所定周波数範囲として高周波成分を通過するフィルタ処理を施す手段を含む、請求項４に記載の画像処理装置。
【請求項６】
前記画像処理装置は、さらに、
補正角度が、定義域をまたいで変化したことを検知して、調整値を加算または減算する手段を含む、請求項４または５に記載の画像処理装置。
【請求項７】
前記複数の時点にわたる前記正面方向は、前記第１の時点での正面方向を起点として、前記角速度の時系列データの各軸の角速度に応じた無限小回転を積算することによって、計算される、請求項４〜６のいずれか１項に記載の画像処理装置。
【請求項８】
画像処理システムであって、
撮像装置で撮像された複数のフレームを含む動画データ、前記動画データの撮像時の前記撮像装置の基準方向に対する傾き角の時系列データおよび前記動画データの撮像時に前記撮像装置に生じた角速度の時系列データを記憶する記憶手段と、
前記角速度の時系列データに基づいて、前記動画データの複数のフレームに対し、前記基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、
前記画像の回転が施された複数のフレームに基づく画像データを出力する出力手段と
を含む、画像処理システム。
【請求項９】
前記画像処理システムは、撮像装置と、前記撮像装置と通信する情報処理装置とを含み、前記情報処理装置は、補正された動画を求める要求を受け付ける受付手段と、
前記撮像装置から出力された画像データを表示する表示手段と
を含み、前記撮像装置は、前記記憶手段と、前記出力手段とを含み、当該画像処理装置と通信する外部装置からの補正された動画を求める要求に応答して、前記動画データの前記複数のフレームに対する画像の回転および前記画像の回転が施された複数のフレームに基づく画像データの出力を開始することを特徴とする、請求項８に記載の画像処理システム。
【請求項１０】
コンピュータを、
撮像装置で撮像された複数のフレームを含む動画データ、前記撮像装置の基準方向に対する傾き角の時系列データおよび前記撮像装置に生じた角速度の時系列データを記憶する記憶手段、および
前記角速度の時系列データに基づいて、前記動画データの複数のフレームに対し、前記基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、
前記画像の回転が施された複数のフレームに基づく画像データを出力する出力手段
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置、画像処理システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、手持ちで、半球ないし全天球の視野で静止画や動画を撮像できるカメラが普及している。このような手持ちサイズのカメラでは、カメラの姿勢を正確にコントロールして撮影することが難しい。このため、カメラ本体が傾いた状態での撮影に対応して、撮像された画像を傾き補正する機能を備えたものが知られている。
【０００３】
画像の傾きを補正する技術としては、例えば、特開２０１３‐２１４９４７号公報（特許文献１）が知られている。特許文献１は、２つの魚眼レンズを有する静止画撮影装置において、内部に備えた鉛直方向からの傾きを得るための加速度センサが検出した傾き角に応じて、魚眼画像の正則画像への変換パラメータを算出する構成を開示する。しかしながら、特許文献１の全天球動画補正装置では、加速度センサを使用しての補正であったため、鉛直方向を中心とした回転に対して補正が行われないという点で、充分なものではなかった。
【０００４】
また、特開２０１７−１４７６８２号公報（特許文献２）は、撮像手段と、全天球フレームデータを作成する画像合成部と、撮像手段の姿勢情報を検出する姿勢検出手段と、姿勢情報に基づいて全天球フレームデータの座標を変換する補正量データを作成する補正量算出部と、全天球フレームデータと補正量データを関連付けて全天球画像を得る関連付け手段を具える、全天球撮像システムを開示する。この全天球撮像システムにおいて、補正量算出部は、全天球フレームデータについて、グローバル座標における鉛直方向に対する傾き補正と、グローバル座標における水平面内での揺れは微小揺れ成分を除いた補正を行なう補正量データを作成し関連付け手段に送信する。
【０００５】
しかしながら、上記特許文献２の従来技術では、撮影時に撮像手段の姿勢情報を検出して補正量データを算出するので、撮影時の負荷が高くなってしまう点で、充分なものではなかった。また、グローバル座標における水平面内での微小揺れ成分を除いた補正を行なう補正量データのみが全天球フレームデータに関連付けられて保存されるため、微小揺れ成分の情報が活用できなくなる点で充分なものではなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示は、上記点に鑑みてなされたものであり、本開示は、画像の所定基準方向周りの回転のぶれを効率的に補正することができる、画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本開示によれば、上記課題を解決するために、下記特徴を有する、画像処理装置を提供する。画像処理装置は、撮像装置で撮像された複数のフレームを含む動画データ、撮像装置の基準方向に対する傾き角の時系列データおよび撮像装置に生じた角速度の時系列データを記憶する記憶手段を含む。画像処理装置は、また、角速度の時系列データに基づいて、動画データの複数のフレームに対し、基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、画像の回転が施された複数のフレームに基づく画像データを出力する出力手段を含む。
【発明の効果】
【０００８】
上記構成により、画像の所定基準方向周りの回転のぶれを効率的に補正することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態による全天球動画システムを構成する全天球カメラの断面図。
【図２】本実施形態による全天球動画システムのハードウェア構成図。
【図３】本実施形態による全天球動画システム上に実現される全天球動画補正機能に関連する主要な機能ブロック図。
【図４】（Ａ）全天球画像の生成における画像データフロー図、および、全天球画像のデータ構造を（Ｂ）平面で表した場合および（Ｃ）球面で表した場合について説明する図。
【図５】本実施形態による全天球画像の天頂補正および回転補正について説明する図。
【図６】本実施形態による全天球画像の天頂補正および回転補正によって得られる全天球画像を説明する図。
【図７】本実施形態による全天球動画システムを構成する全天球カメラが実行する、全天球動画補正処理を示すフローチャート。
【図８】本実施形態において回転補正のための正面ベクトルの計算方法を説明する図。
【発明を実施するための形態】
【００１０】
以下、本実施形態について説明するが、実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態では、画像処理装置および画像処理システムの一例として、それぞれ、全天球カメラおよび全天球動画システムを用いて説明する。
【００１１】
以下、図１および図２を参照しながら、本実施形態による全天球動画システムの全体構成について説明する。
【００１２】
図１は、本実施形態による全天球動画システムを構成する全天球カメラ１１０の断面図である。図１に示す全天球カメラ１１０は、撮像体１２と、上記撮像体１２およびコントローラやバッテリなどの部品を保持する筐体１４と、上記筐体１４に設けられたシャッター・ボタン１８とを備える。
【００１３】
図１に示す撮像体１２は、２つの結像光学系２０Ａ，２０Ｂと、ＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなどの２つの撮像素子２２Ａ，２２Ｂとを含み構成される。結像光学系２０各々は、例えば６群７枚の魚眼レンズとして構成されている。上記魚眼レンズは、図１に示す実施形態では、１８０度（＝３６０度／ｎ；光学系数ｎ＝２）より大きい全画角を有し、好適には、１８５度以上の画角を有し、より好適には、１９０度以上の画角を有する。このような広角な結像光学系２０と撮像素子２２とを１個ずつ組み合わせたものを広角撮像光学系と参照する。
【００１４】
２つの結像光学系２０Ａ，２０Ｂの光学素子（レンズ、プリズム、フィルタおよび開口絞り）は、撮像素子２２Ａ，２２Ｂに対して位置関係が定められる。より具体的には、結像光学系２０Ａ，２０Ｂの光学素子の光軸が、対応する撮像素子２２の受光領域の中心部に直交して位置するように、かつ、受光領域が、対応する魚眼レンズの結像面となるように位置決めが行われる。
【００１５】
図１に示す実施形態では、結像光学系２０Ａ，２０Ｂは、同一仕様のものであり、それぞれの光軸が合致するようにして、互いに逆向きに組み合わせられる。撮像素子２２Ａ，２２Ｂは、受光した光分布を画像信号に変換し、コントローラ上の画像処理手段に順次、画像フレームを出力する。詳細は後述するが、撮像素子２２Ａ，２２Ｂでそれぞれ撮像された画像は、合成処理されて、これにより、立体角４πステラジアンの画像（以下「全天球画像」と参照する。）が生成される。全天球画像は、撮影地点から見渡すことのできる全ての方向を撮影したものとなる。そして、全天球画像の連続するフレームにより、全天球動画が構成される。ここで、説明する実施形態では、全天球画像および全天球動画を生成するものとして説明するが、全天周画像や全天周動画、水平面のみ３６０度を撮影した、いわゆるパノラマ画像およびパノラマ動画であってもよい。
【００１６】
図２（Ａ）は、本実施形態による全天球動画システムを構成する全天球カメラ１１０のハードウェア構成を示す。全天球カメラ１１０は、説明する実施形態における画像処理装置または撮像装置に対応する。
【００１７】
全天球カメラ１１０は、ＣＰＵ（Central Processing Unit）１１２と、ＲＯＭ（Read Only Memory）１１４と、画像処理ブロック１１６と、動画圧縮ブロック１１８と、ＤＲＡＭ（Dynamic Random Access Memory）インタフェース１２０を介して接続されるＤＲＡＭ１３２と、外部センサインタフェース１２４を介して接続される姿勢角センサ１３６とを含み構成される。
【００１８】
ＣＰＵ１１２は、全天球カメラ１１０の各部の動作および全体動作を制御する。ＲＯＭ１１４は、ＣＰＵ１１２が解読可能なコードで記述された制御プログラムや各種パラメータを格納する。画像処理ブロック１１６は、２つの撮像素子１３０Ａ，１３０Ｂ（図１における撮像素子２２Ａ，２２Ｂである。）と接続され、それぞれで撮像された画像の画像信号が入力される。画像処理ブロック１１６は、ＩＳＰ（Image Signal Processor）などを含み構成され、撮像素子１３０から入力された画像信号に対し、シェーディング補正、ベイヤー補間、ホワイト・バランス補正、ガンマ補正などを行う。
【００１９】
動画圧縮ブロック１１８は、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４などの動画圧縮および伸張を行うコーデック・ブロックである。ＤＲＡＭ１３２は、各種信号処理および画像処理を施す際にデータを一時的に保存する記憶領域を提供する。
【００２０】
姿勢角センサ１３６は、３軸の加速度成分および３軸の角速度成分を検出するセンサである。検出された加速度成分および角速度成分は、後述するように、重力方向への全天球画像の天頂補正および重力方向周りの回転補正を施すために用いられる。姿勢角センサ１３６は、さらに、方位角などを求めるための地磁気センサなど他のセンサを備えてもよい。
【００２１】
全天球カメラ１１０は、さらに、外部ストレージインタフェース１２２と、ＵＳＢ（Universal Serial Bus）インタフェース１２６と、シリアルブロック１２８とを含み構成される。外部ストレージインタフェース１２２には、外部ストレージ１３４が接続される。外部ストレージインタフェース１２２は、メモリカードスロットに挿入されたメモリカードなどの外部ストレージ１３４に対する読み書きを制御する。ＵＳＢインタフェース１２６には、ＵＳＢコネクタ１３８が接続される。ＵＳＢインタフェース１２６は、ＵＳＢコネクタ１３８を介して接続されるスマートフォンなどの外部装置とのＵＳＢ通信を制御する。シリアルブロック１２８は、スマートフォンなどの外部装置とのシリアル通信を制御し、無線ＮＩＣ（Network Interface Card）１４０が接続される。
【００２２】
電源スイッチの操作によって電源がオン状態になると、上記制御プログラムがメインメモリにロードされる。ＣＰＵ１１２は、メインメモリに読み込まれたプログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをメモリ上に一時的に保存する。これにより、全天球カメラ１１０の後述する各機能部および処理が実現される。
【００２３】
図２（Ｂ）は、本実施形態による全天球動画システムを構成する情報端末１５０のハードウェア構成を示す。情報端末１５０は、説明する実施形態における情報処理装置に対応する。
【００２４】
図２（Ｂ）に示す情報端末１５０は、ＣＰＵ１５２と、ＲＡＭ１５４と、内部ストレージ１５６と、入力装置１５８と、外部ストレージ１６０と、ディスプレイ１６２と、無線ＮＩＣ１６４と、ＵＳＢコネクタ１６６とを含み構成される。
【００２５】
ＣＰＵ１５２は、情報端末１５０の各部の動作および全体動作を制御する。ＲＡＭ１５４は、ＣＰＵ１５２の作業領域を提供する。内部ストレージ１５６は、ＣＰＵ１５２が解読可能なコードで記述された、オペレーティング・システムや、本実施形態による情報端末１５０側の処理を担うアプリケーションなどの制御プログラムを格納する。
【００２６】
入力装置１５８は、タッチスクリーンなどの入力装置であり、ユーザ・インタフェースを提供する。入力装置１５８は、全天球動画の補正など操作者による各種の指示を受け付ける。外部ストレージ１６０は、メモリカードスロットなどに装着された着脱可能な記録媒体であり、動画形式の画像データや静止画データなどの各種データを記録する。ディスプレイ１６２は、ユーザ操作に応答して補正された全天球動画を画面表示する。無線ＮＩＣ１６４は、全天球カメラ１１０などの外部機器との無線通信の接続を確立する。ＵＳＢコネクタ１６６は、全天球カメラ１１０などの外部機器とのＵＳＢ接続をする。
【００２７】
情報端末１５０に電源が投入され電源がオン状態になると、内部ストレージ１５６から制御プログラムが読み出され、ＲＡＭ１５４にロードされる。ＣＰＵ１５２は、ＲＡＭ１５４に読み込まれた制御プログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをメモリ上に一時的に保存する。これにより、情報端末１５０の後述する各機能部および処理が実現される。
【００２８】
以下、図３〜図６を参照しながら、本実施形態による全天球動画システムが備える全天球動画補正機能について説明する。
【００２９】
図３は、本実施形態による全天球動画システム上で実現される全天球動画補正機能に関連する主要な機能ブロック２１０を示す。全天球カメラ１１０の機能ブロック２１０は、図３に示すように、全天球動画撮像部２１２と、記憶部２１４と、全天球動画補正部２２０と、受信部２３０と、画像出力部２３２とを含み構成される。これに対して、情報端末１５０の機能ブロック２５０は、指示受付部２５２と、表示部２５４とを含み構成される。
【００３０】
まず、全天球カメラ１１０側から説明する。全天球動画撮像部２１２は、２つの撮像素子１３０Ａ，１３０Ｂを用いて連続したフレームを順次撮像し、全天球動画データ２４０を記憶部２１４に記録する。さらに、全天球動画撮像部２１２は、撮像中、姿勢角センサ１３６を用いて３軸方向の加速度成分および３軸方向の角速度成分を計測し、全天球動画データ２４０のメタデータとしてこれらの計測した情報を記録する。
【００３１】
記憶部２１４は、全天球動画撮像部２１２によって記録された１または複数の全天球動画データ２４０を記憶する。記憶部２１４は、図２に示した外部ストレージ１３４や他のストレージなどの記憶領域の一部として与えられる。全天球動画データ２４０は、図３に示すように、全天球カメラ１１０で撮像された全天球フレームデータ２４２と、撮影中の全天球カメラ１１０の基準方向に対する傾き角の時系列データである天頂補正データ２４４と、撮影中に全天球カメラ１１０に生じた角速度の時系列データである角速度データ２４６とを含み構成される。
【００３２】
全天球フレームデータ２４２は、撮像を開始してから終了するまでのそれぞれ全天球動画を構成する複数のフレームを含み、全天球動画データ２４０の本体となる動画データである。
【００３３】
以下、図４を参照しながら、全天球画像の生成および生成される全天球画像について説明する。図４（Ａ）は、全天球画像生成における各画像のデータ構造および画像のデータフローを説明する。まず、撮像素子１３０各々で直接撮像される画像は、概ね全天球のうちの半球を視野に収めた画像である。結像光学系に入射した光は、所定の射影方式に従って撮像素子１３０の受光領域に結像される。ここで撮像される画像は、受光領域が平面エリアを成す２次元の撮像素子で撮像されたものであり、平面座標系で表現された画像データとなる。また、典型的には、得られる画像は、図４（Ａ）において「魚眼画像Ａ」および「魚眼画像Ｂ」で示されるように、各撮影範囲が投影されたイメージサークル全体を含む魚眼画像として構成される。
【００３４】
この複数の撮像素子１３０で撮像された各フレームの複数の魚眼画像が、歪み補正および合成処理されて、各フレームに対応する１つの全天球画像が構成される。合成処理では、平面画像として構成される各魚眼画像から、まず、相補的な各半休部分を含む各全天球画像が生成される。そして、各半球部分を含む２つの全天球画像が、重複領域のマッチングに基づいて位置合わせされ、画像合成され、全天球全体を含む全天球画像が生成される。
【００３５】
図４（Ｂ）は、本実施形態で用いられる全天球画像の画像データのデータ構造を平面で表して説明する図である。図４（Ｃ）は、全天球画像の画像データのデータ構造を球面で表して説明する図である。図４（Ｂ）に示すように、全天球画像の画像データは、所定の軸に対してなされる垂直角度φと、所定の軸周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。垂直角度φは、０度〜１８０度（あるいは−９０度〜＋９０度）の範囲となり、水平角度θは、０度〜３６０度（あるいは−１８０度〜＋１８０度）の範囲となる。
【００３６】
全天球フォーマットの各座標値（θ，φ）は、図４（Ｃ）に示すように、撮影地点を中心とした全方位を表す球面上の各点と対応付けられており、全方位が全天球画像上に対応付けられる。魚眼レンズで撮影された魚眼画像の平面座標と、全天球画像の球面上の座標とは、所定の変換テーブルにて対応付けされる。変換テーブルは、それぞれのレンズ光学系の設計データ等に基づいて、所定の投影モデルに従い製造元等で予め作成されたデータであり、魚眼画像を全天球画像へ変換するデータである。
【００３７】
ここで、全天球フレームデータ２４２が全天球動画を構成するものとして説明しているが、必ずしも図４に示すような合成後の全天球画像のフォーマットで各フレームが記録されていることを要するものではない。全天球フレームデータ２４２は、再生時に全天球動画が構成可能であれば、いかなる形態で記録されていてもよい。
【００３８】
例えば、再生時にフレームごとに魚眼画像から歪み補正および合成を行って全天球画像を生成することを前提として、撮像素子１３０Ａ，１３０Ｂで直接撮像される２つの魚眼画像の動画データ（図４（Ａ）に示す魚眼画像Ａおよび魚眼画像Ｂそれぞれに対応する動画データ）、または、２つの魚眼画像を接合した接合画像の動画データ（魚眼画像Ａおよび魚眼画像Ｂを並べて接合して１つの画像とした場合の動画データ）が記録されていてもよい。なお、以下、説明の便宜上、全天球フレームデータ２４２は、歪み補正および合成処理後の全天球画像のフォーマットで各フレームの画像を保持するものとして説明する。
【００３９】
また、「動画」と参照するが、動画が再生可能であれば、いかなる形態で記録されてもよい。例えば、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（Advanced Video Coding）、Ｈ．２６５／ＨＥＶＣ（High Efficiency Video Coding）などの所定のコーデックで、複数のフレームを圧縮した動画データとして記録されていてもよい。また、Ｍｏｔｉｏｎ  ＪＰＥＧ（Joint Photographic Experts Group）は、連続した静止画として動画を表現する形式であるが、このように、複数のフレームの静止画像の連続した系列として動画データが記録されていてもよい。
【００４０】
ここで、再び図３を参照する。天頂補正データ２４４は、全天球動画の各フレームに関連付けて記録される、撮像を開始してから終了するまでの全天球カメラ１１０の基準方向に対する傾き角の時系列データである。ここで、基準方向は、典型的には、重力加速度が作用する重力方向である。重力方向に対する傾き角は、姿勢角センサ１３６に含まれる加速度センサで計測された信号に基づいて生成される。傾き角は、典型的には、加速度の次元の値からなるベクトルとして構成される。加速度センサは、重力と慣性力とを区別しないので、好ましくは、姿勢角センサ１３６に含まれる角速度センサで計測された信号に基づいて、加速度センサから得られた傾き角が補正されてもよい。
【００４１】
なお、説明する実施形態では、フレームに対して傾き角が一対一で対応し、フレームと傾き角とは同期されて記録されているものとして説明する。しかしながら、記録する傾き角のレートは、必ずしもフレームレートと同一としなくともよい。フレームレートと一致しない場合は、フレームレートでのリサンプリングなどを行うことにより、フレームに一対一で対応した傾き角を得ればよい。
【００４２】
角速度データ２４６は、姿勢角センサ１３６の角速度センサで計測される、撮像を開始してから終了するまでの全天球カメラ１１０（内の角速度センサ）の３軸周りで生じた角速度の時系列データである。角速度は、フレームに１対１に対応して記録されている必要はなく、典型的には、フレームレートよりも速いレートで記録することができる。この場合、タイムスタンプを手がかりとして、後で各フレームとの対応関係を求めることができる。あるいは、全天球動画の各フレームに１対１で対応して角速度が記録されてもよい。
【００４３】
全天球動画補正部２２０は、記憶部２１４に記憶された全天球動画データ２４０を読み出し、全天球フレームデータ２４２の各フレームに対し、天頂補正および回転補正を施し、補正された全天球動画データを出力する。
【００４４】
ここで、図５および図６を参照しながら、天頂補正および回転補正について説明する。図５は、本実施形態において行われる全天球画像の天頂補正および回転補正を説明する図である。図６は、本実施形態において行われる全天球画像の天頂補正および回転補正によって得られる全天球画像を説明する図である。図６（Ａ）は、天頂補正前の動画のフレームを示し、図６（Ｂ）は、天頂補正後の動画のフレームを示す。
【００４５】
上述したように、全天球画像フォーマットの画像データは、所定の軸ｚ０に対してなす垂直角度φと、上記所定の軸ｚ０周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。ここで、所定の軸は、なんら補正がなされない場合は、全天球カメラ１１０を基準として定義される軸となる。例えば、図１に示す全天球カメラの撮像体１２側を頭部としてその反対側を底部として、底部から頭部へ筐体の中心を通る中心軸を、水平角度θおよび垂直角度φを定義する所定の軸ｚ０として全天球画像を定義することができる。また、例えば２つの結像光学系２０Ａ，２０Ｂのうちの一方の光学素子の光軸方向が水平角度θで中心に位置するように、全天球画像の水平角度θを定義することができる。
【００４６】
天頂補正とは、図５の左図のように実際には基準方向（重力方向）に対して中心軸ｚ０が傾いている状態で撮像された全天球画像（図６（Ａ））を、図５の右図のようにあたかも中心軸ｚ０が基準方向Ｚに一致した状態で撮影されたかのような全天球画像（図６（Ｂ））に補正する処理（Ｒｏｌｌ，Ｐｉｔｃｈ方向の補正）をいう。これに対して、回転補正とは、天頂補正により基準方向に中心軸ｚ０が一致するように補正された全天球画像において、さらに、基準方向Ｚ周りの変動（図６の水平角度θ方向の変動）を低減する補正（Ｙａｗ方向の補正）をいう。
【００４７】
以下、さらに図３を参照しながら、全天球動画補正部２２０の動作について、より詳細に説明する。全天球動画補正部２２０は、より詳細には、カメラ正面計算部２２２と、補正角度計算部２２４と、補正角度調整部２２６と、画像回転部２２８とを含み構成される。
【００４８】
カメラ正面計算部２２２は、天頂補正データ２４４および角速度データ２４６に基づいて、全天球カメラ１１０の正面方向（一方の光軸方向）の時系列を計算する。より具体的には、カメラ正面計算部２２２は、まず、天頂補正データ２４４のうちの先頭フレームの傾き角の値Ｔ（０）に基づいて、先頭フレームの時点での全天球カメラ１１０の正面方向Ｖ（０）を計算する。カメラ正面計算部２２２は、先頭フレームの時点での正面方向Ｖ（０）が求められると、初期値Ｖ（０）を起点として、角速度データ２４６の角速度Ｇｙｒｏ（ｎ）に基づいて、それぞれフレームに対応する複数の時点にわたる全天球カメラ１１０の正面方向Ｖ（ｎ）の時系列を計算する。正面方向Ｖ（ｎ）は、先頭フレームの時点での正面方向Ｖ（０）を起点として、角軸の角速度に応じた無限小回転を積算することによって計算することができる。計算された正面方向Ｖ（ｎ）の時系列は、補正角度計算部２２４に入力される。
【００４９】
補正角度計算部２２４は、天頂補正データ２４４の傾き角データＴ（ｍ）に基づいて、各フレーム時点の全天球カメラ１１０の正面方向Ｖ（ｎ）から、各フレーム時点の基準方向周りの補正角度Ａｎｇｌｅ（ｎ）を計算する。計算された補正角度Ａｎｇｌｅ（ｎ）は、補正角度調整部２２６に入力される。
【００５０】
補正角度調整部２２６は、計算された各時点の補正角度Ａｎｇｌｅ（ｎ）に対し、実際に補正を適用する際に不自然とならないような調整を施す。補正角度Ａｎｇｌｅ（ｎ）は、通常、所定の定義域（例えば、−１８０度〜＋１８０度）の範囲内の値として求められる。このため、補正角度Ａｎｇｌｅ（ｎ）は、時系列でみたときに、＋１８０度近傍から−１８０度近傍へ（あるいは反対方向に）飛んでしまう場合がある。そこで、補正角度調整部２２６は、補正角度Ａｎｇｌｅ（ｎ）の前後の変化量に基づいて補正角度が定義域をまたいで変化したことを検知し、各時点の補正角度Ａｎｇｌｅ（ｎ）に対し、調整値を加算または減算する。これにより、補正角度の定義域の範囲を拡張し、補正角度の時系列の連続性を維持する。そして、補正角度調整部２２６は、拡張された定義域上の補正角度に対し、所定周波数範囲、好ましくは高周波成分のみを通過させるフィルタ処理を施す。フィルタ処理後の補正角度ＡｎｇｌｅＯｕｔ（ｎ）は、画像回転部２２８に入力される。
【００５１】
画像回転部２２８は、天頂補正データ２４４に基づいて、全天球フレームデータ２４２の複数のフレーム各々に対し、全天球画像の天頂補正を施す。本実施形態による画像回転部２２８は、同時に、複数のフレームに対し、計算された補正角度ＡｎｇｌｅＯｕｔ（ｎ）に基づいて、基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施す。
【００５２】
全天球フレームデータ２４２中の各フレームの画像が合成後の全天球フォーマットの画像である場合は、画像回転部２２８は、各フレームの全天球画像の回転座標変換を行う。一方で、全天球フレームデータ２４２中の各フレームが、合成前の複数の魚眼画像である場合は、画像回転部２２８は、フレーム各々に対し天頂補正および回転補正を施すとともに、複数の魚眼画像から全天球画像への変換を行う。
【００５３】
受信部２３０は、全天球カメラ１１０と通信する情報端末１５０からの各種要求を受信する。受信部２３０は、情報端末１５０から全天球動画の補正要求（例えば再生に際して補正後の全天球動画を求める要求）を受信すると、全天球動画補正部２２０に対し要求を渡す。全天球動画補正部２２０は、全天球動画の補正要求に応答して、指定された全天球動画データ２４０の天頂補正および回転補正、並びに補正後の画像データの出力を開始する。画像出力部２３２は、全天球動画補正部２２０により天頂補正および回転補正が施された複数のフレームに基づく全天球動画の画像データを要求元の情報端末１５０に出力する。なお、この際は、画像データは、補正された複数のフレーム各々の全天球画像に基づき、所定の動画圧縮形式でエンコードし、最終的な動画データとして出力されてもよいし、静止画の系列として出力されてもよい。
【００５４】
情報端末１５０は、全天球カメラ１１０と通信し、全天球画像を閲覧再生するためのアプリケーションがインストールされたスマートフォンやタブレットコンピュータ、パーソナルコンピュータなどの端末装置である。情報端末１５０は、アプリケーションを介して操作者から各種指示を受け付けて、全天球カメラ１１０に対し各種要求を発行する。情報端末１５０の指示受付部２５２は、操作者からの指定の全天球動画の補正指示（例えば補正をしながらの動画再生の指示）を受け付けたことに応答して、全天球カメラ１１０に対し、所定の全天球動画の補正後の動画データを求める要求を発行する。情報端末１５０の表示部２５４は、全天球カメラ１１０から出力されてくる全天球動画の画像データに基づいて、情報端末１５０が備えるディスプレイ１６２などの表示装置上に全天球動画を表示する。
【００５５】
なお、情報端末１５０側で、補正後の画像データに基づいてどのような画像が表示されるのかは任意である。例えば、全天球画像をそのまま表示装置上に表示してもよいし、全天球画像を球体オブジェクトに張り付けて、所定の位置から所定の視野角のカメラで球体オブジェクトを観察した場合の画像をフレームとして動画表示することもできる。
【００５６】
なお、本実施形態では、情報端末１５０ではなく、全天球カメラ１１０側のリソースを用いて天頂補正および回転補正の実体的な処理を行い、情報端末１５０には補正結果を出力して表示させる構成を採用する。この構成により、情報端末１５０が備える処理性能にかかわらず、天頂補正および回転補正を施しながらの動画再生を安定に行うことが可能となる。
【００５７】
なお、説明する実施形態では、出力の態様として、全天球動画の画像データを情報端末１５０へ送信するものとしているが、これに限定されるものではない。全天球カメラ１１０が表示装置を備える場合は、その表示装置上で表示する態様とすることもできる。あるいは、全天球動画の画像データを別のファイルとして保存する態様とすることもできる。
【００５８】
以下、図７および図８を参照しながら、本実施形態における回転補正について、より詳細に説明する。図７は、本実施形態による全天球動画システムを構成する全天球カメラ１１０側で行われる全天球動画補正処理を示すフローチャートである。図８は、本実施形態において回転補正のための正面ベクトルの計算方法を説明する。
【００５９】
図７に示す処理は、全天球カメラ１１０が、当該全天球カメラ１１０と通信する外部の情報端末１５０からの所定の全天球動画の補正後の動画データを求める要求を受信したことに応答して、ステップＳ１００から開始される。
【００６０】
ステップＳ１０１では、全天球カメラ１１０は、上記要求で指定される全天球動画データ２４０を読み出す。ここでの全天球動画データ２４０の読み出しでは、上述した本体である全天球フレームデータ２４２に加えて、メタデータである天頂補正データ２４４および角速度データ２４６が読み出される。
【００６１】
ステップＳ１０２では、全天球カメラ１１０は、天頂補正データ２４４のうちの先頭フレームの傾き角ベクトルＴ（０）に基づいて、先頭フレーム時点での全天球カメラ１１０の正面方向Ｖ（０）を計算する。まず、先頭フレームの傾き角ベクトルＴ（０）と、重力方向ベクトルＧ＝（０，０，１）とのクォータニオンＱ（０）が生成される。傾き角ベクトルＴ（０）は、先頭フレームの時点のグローバル座標系と、全天球カメラ１１０のローカル座標系との回転変位を表している。クォータニオンＱ（０）の回転軸Ａ（０）および回転角θ（０）は、下記式（１）および（２）で表される。そして、クォータニオンＱ（０）は、図８（Ａ）に示すように、回転軸Ａ（０）周りの回転角θ（０）の回転を表す。
【００６２】
【数１】
2019110434.tif 000003
【００６３】
そして、図８（Ａ）に示すように、得られたクォータニオンＱ（０）でグローバル正面ベクトル（０，１，０）を回転させて、全天球カメラ１１０の正面方向ベクトルの初期値Ｖ（０）を求める。ここでは、全天球カメラ１１０の中心軸ｚ０と、グローバル座標系のＺ軸（重力方向）が一致し、かつ、全天球カメラ１１０の正面方向（一方の光学系の光軸）と、グローバル座標系のＹ軸とが一致している状態を基準として、傾いた状態での全天球カメラ１１０の正面を示す正面方向ベクトルの初期値Ｖ（０）が求められる。
【００６４】
ステップＳ１０３では、全天球カメラ１１０は、角速度データ２４６に基づいて、それぞれフレームに対応する複数の時点にわたる全天球カメラ１１０の正面方向ベクトルＶ（ｎ）の時系列を計算する。各時点の正面方向ベクトルＶ（ｎ）は、角速度データ２４６におけるサンプリング間の時間差を求め、３軸周りの角速度Ｇｙｒｏ（ｎ）に応じた無限小回転をサンプリング毎に積算することにより、計算することができる。全天球カメラ１１０にかかっている負荷によってサンプリング間隔がばらつく可能性があるところ、サンプリング間の時間差は、タイムスタンプから好適に求めることができる。ステップＳ１０３では、図８（Ｂ）に示すように、先頭フレームの時点の正面方向ベクトルＶ（０）を起点として正面方向ベクトルＶ（ｎ）の時系列が計算される。
【００６５】
ステップＳ１０４〜Ｓ１１０のループでは、フレーム毎に、回転補正の補正角を算出しながら、天頂補正および回転補正を適用する。
【００６６】
ステップＳ１０５では、全天球カメラ１１０は、注目フレームに対応するカメラ正面方向ベクトルＶ（ｎ）を探し、天頂補正データ２４４に基づいて、回転補正のための補正角度を計算する。角速度データ２４６は、典型的にはフレームレートと異なるサンプリングレートを有し、ここでは、天頂補正データ２４４の注目フレームとタイムスタンプと近い正面方向ベクトルＶが探索される。
【００６７】
ここで、ｍ番目のフレームに対する正面方向ベクトルがＶ（ｎ）であったとする。まず、ｍ番目のフレームの傾き角ベクトルＴ（ｍ）から求められるクォータニオンＱ（ｍ）が計算される。このクォータニオンＱ（ｍ）の回転軸Ａ（ｍ）および回転角θ（ｍ）は、上記式（１）および（２）と同様に、下記式（３）および（４）で表される。
【００６８】
【数２】
2019110434.tif 000004
【００６９】
そして、図８（Ｂ）で示すように、クォータニオンＱ（ｍ）でｍ番目のフレームに対する正面方向ベクトルがＶ（ｎ）を回転させて、Ｖ’（ｎ）を求める。これにより、天頂補正後にカメラ正面ベクトルＶ（ｎ）が向く方向が求められる。そして、得られたベクトルＶ’（ｎ）に基づいて、グローバル座標のＸＹ平面内で、補正角度Ａｎｇｌｅ（ｎ）を下記式により求める。
【００７０】
【数３】
2019110434.tif 000005
【００７１】
ここで、上記式（５）中の関数ａｔａｎ２（ｘ座標，ｙ座標）は、逆正接を−１８０度〜１８０度（−π〜π）の範囲で返す関数である。
【００７２】
ステップＳ１０６では、全天球カメラ１１０は、ハイパスフィルタの前処理として、ステップＳ１０５で求められた補正角度を連続性が維持されるように調整し、調整後の補正角ＡｎｇｌｅＩｎ（ｎ）を計算する。
【００７３】
説明する実施形態において、補正角度Ａｎｇｌｅ（ｎ）は、逆正接により、−１８０度〜＋１８０度の定義域の範囲内の値として求められる。このため、補正角度Ａｎｇｌｅ（ｎ）は、時系列としてみたときに、＋１８０度近傍から−１８０度近傍へ（あるいは反対方向に）飛んでしまう場合がある。ステップＳ１０６では、下記疑似コードで表すように、補正角度Ａｎｇｌｅ（ｎ）の前後の変化量から補正角度が定義域をまたいで変化したことが検知され、調整値が加算または減算される。なお、下記疑似コード中、ｔｈｒｅｓｈｏｌｄは、補正角度が定義域をまたいで変化したことを検知するための変化量に対する閾値である。また、最後のコードのＡｎｇｌｅ（０）は、上記式（５）で求められる補正角度の初期値であり、これを基準に補正が行われることを示している。下記疑似コード中、ｎ−１は、ｎが対応するフレームの１つ前のフレームに対応する。
【００７４】
【数４】
2019110434.tif 000006
【００７５】
ステップＳ１０７では、全天球カメラ１１０は、注目フレームの時点の調整された補正角度ＡｎｇｌｅＩｎ（ｎ）に対し、高周波成分を通過させるハイパスフィルタ処理を施し、フィルタ処理後の補正角度ＡｎｇｌｅＯｕｔ（ｎ）を求める。ハイパスフィルタ通過後の補正角度ＡｎｇｌｅＯｕｔ（ｎ）は、下記式にて計算することができる。なお、下記式中Ｐは、サンプリング周期であり、Ｈｃは、カットオフ周波数である。下記式中、ｎ＋１は、ｎが対応するフレームの１つ後のフレームに対応する。
【００７６】
【数５】
2019110434.tif 000007
【００７７】
ステップＳ１０８では、全天球カメラ１１０は、全天球フレームデータ２４２の注目フレームに対し、計算された補正角度および天頂補正データ２４４内の対応する傾きベクトルＴ（ｍ）に基づいて、天頂補正に加えて、基準方向周りの高周波成分の変動が低減されるような回転補正をかける。ステップＳ１０９では、全天球カメラ１１０は、回転変換された全天球画像のフレームを出力する。
【００７８】
全天球動画データ２４０に含まれるすべてのフレームについて、ステップＳ１０５〜Ｓ１０９の処理が行われると、ステップＳ１０４〜ステップＳ１１０のループを抜けて、ステップＳ１１１で、本処理が終了される。
【００７９】
全天球カメラ１１０が正しく垂直方向に載置される場合、補正せずとも、図６（Ｂ）に示すよう撮影した者が認識する天頂および水平線が一致するように撮像することが可能である。しかしながら、一般に、カメラを手持ちして、位置および姿勢を正確に固定して撮像することは困難である。本体カメラが傾いたままで撮像されると、天頂補正しなければ、図６（Ａ）に示すように、互いの画像の天頂がずれ、水平線が歪んでしまう。また、本体カメラに手ぶれなどにより回転が生じると、回転補正しなければ、水平線にぶれが残った状態となってしまう。
【００８０】
これに対して、本実施形態においては、重力方向などの基準方向Ｚと全天球カメラ１１０の中心軸ｚ０の方向が一致しているように、かつ、基準方向Ｚ周りの変動が軽減されるように全フレームの画像が変換される。これにより、補正後の全天球動画の視聴者は、違和感のない視聴が可能になる。
【００８１】
以上説明したように、上述までの実施形態によれば、画像の所定基準方向周りの回転のぶれを効率的に補正することができる画像処理装置、画像処理システムおよびプログラムを提供することが可能となる。
【００８２】
特に、撮影時にメタデータとして保存された角速度データを使用して回転補正を行うので、撮影時の負荷が軽減される。また、回転補正を行わないか、微小成分のみを抑制するように回転補正を行うかを再生時に決定できる。
【００８３】
なお、上述した実施形態では、画像処理装置の一例として、全天球カメラ１１０を用いて説明した。そして、全天球カメラ１１０側のリソースを用いて天頂補正および回転補正の実体的な処理を行う構成により、再生側の装置が備える処理性能にかかわらず、天頂補正および回転補正を施しながらの動画再生を安定に行うことを可能した。しかしながら、画像処理装置は、必ずしも全天球カメラ１１０などの撮像装置であることを要しない。他の実施形態では、全天球カメラ１１０とは別のパーソナルコンピュータなどの情報処理装置が画像処理装置として用いられてもよい。
【００８４】
なお、上述した実施形態では、１８０度より大きな画角を有するレンズ光学系で撮像された２つの部分画像を重ね合わせて合成するものとしたが、これに限定されない。他の実施形態では、１または複数のレンズ光学系により撮像された３以上の部分画像の重ね合わせ合成に適用してもよい。また、上述した実施形態では、魚眼レンズを用いた撮像システムを一例に説明してきたが、超広角レンズを用いた全天球動画撮像システムに適用してもよい。
【００８５】
さらに、上記実施形態では、全天球動画システムとして、全天球カメラ１１０と情報端末１５０とを別体として説明を行ったが、これに限られない。すなわち、全天球動画システムは、全天球カメラ１１０と情報端末１５０とを一体として構成してもよい。
【００８６】
またさらに、上記実施形態では、重力方向と全天球カメラ１１０の中心軸とが一致するとき、傾きがない状態としていたが、これに限られない。重力方向以外では、たとえば水平方向やその他所望の方向を基準方向として設定し、その基準方向に対する全天球カメラ１１０や撮像素子１３０Ａ、１３０Ｂ等所定の物体との傾きに基づいて画像の傾きを修正するようにしてもよい。
【００８７】
なお、上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。また、上記機能部の一部または全部は、例えばフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのプログラマブル・デバイス（ＰＤ）上に実装することができ、あるいはＡＳＩＣ（特定用途向集積）として実装することができ、上記機能部をＰＤ上に実現するためにＰＤにダウンロードする回路構成データ（ビットストリームデータ）、回路構成データを生成するためのＨＤＬ（Hardware Description Language）、ＶＨＤＬ（Very High Speed Integrated Circuits Hardware Description Language）、Ｖｅｒｉｌｏｇ−ＨＤＬなどにより記述されたデータとして記録媒体により配布することができる。
【００８８】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００８９】
１２…撮像体、１４…筐体、１８…シャッター・ボタン、２０…結像光学系、２２，１３０…撮像素子、１１０，１３０…全天球カメラ、１１２，１５２…ＣＰＵ、１１４…ＲＯＭ、１１６…画像処理ブロック、１１８…動画圧縮ブロック、１２０，１２６…インタフェース、１２２…外部ストレージインタフェース、１２４…外部センサインタフェース、１２６…ＵＳＢインタフェース、１２８…シリアルブロック、１３２…ＤＲＡＭ、１３４，１６０…外部ストレージ、１３６…姿勢角センサ、１３８，１６６…ＵＳＢコネクタ、１５０…情報端末、１５４…ＲＡＭ、１５６…内部ストレージ、１５８…入力装置、１６２…ディスプレイ、１６４…無線ＮＩＣ、２１０，２５０…機能ブロック、２１２…全天球動画撮像部、２１４…記憶部、２２０…全天球動画補正部、２２２…カメラ正面計算部、２２４…補正角度計算部、２２６…補正角度調整部、２２８…画像回転部、２３０…受信部、２３２…画像出力部、２４０…全天球動画データ、２４２…全天球フレームデータ、２４４…天頂補正データ、２４６…角速度データ、２５２…指示受付部、２５４…表示部、
【先行技術文献】
【特許文献】
【００９０】
【特許文献１】特開２０１３‐２１４９４７号公報
【特許文献２】特開２０１７−１４７６８２号公報
【図１】
2019110434.tif 000008
【図２】
2019110434.tif 000009
【図３】
2019110434.tif 000010
【図４】
2019110434.tif 000011
【図５】
2019110434.tif 000012
【図６】
2019110434.tif 000013
【図７】
2019110434.tif 000014
【図８】
2019110434.tif 000015