IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7031280画像処理装置、画像処理システムおよびプログラム
<>
  • 特許-画像処理装置、画像処理システムおよびプログラム 図1
  • 特許-画像処理装置、画像処理システムおよびプログラム 図2
  • 特許-画像処理装置、画像処理システムおよびプログラム 図3
  • 特許-画像処理装置、画像処理システムおよびプログラム 図4
  • 特許-画像処理装置、画像処理システムおよびプログラム 図5
  • 特許-画像処理装置、画像処理システムおよびプログラム 図6
  • 特許-画像処理装置、画像処理システムおよびプログラム 図7
  • 特許-画像処理装置、画像処理システムおよびプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-28
(45)【発行日】2022-03-08
(54)【発明の名称】画像処理装置、画像処理システムおよびプログラム
(51)【国際特許分類】
   H04N 5/232 20060101AFI20220301BHJP
   H04N 7/18 20060101ALI20220301BHJP
   G03B 15/00 20210101ALI20220301BHJP
   G03B 17/00 20210101ALI20220301BHJP
   G03B 5/00 20210101ALI20220301BHJP
【FI】
H04N5/232 480
H04N5/232 290
H04N7/18 K
H04N5/232 380
G03B15/00 W
G03B15/00 A
G03B17/00 Q
G03B5/00 K
【請求項の数】 9
(21)【出願番号】P 2017242107
(22)【出願日】2017-12-18
(65)【公開番号】P2019110434
(43)【公開日】2019-07-04
【審査請求日】2020-09-16
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100110607
【弁理士】
【氏名又は名称】間山 進也
(72)【発明者】
【氏名】川崎 我一
【審査官】高野 美帆子
(56)【参考文献】
【文献】特開2014-160226(JP,A)
【文献】特開2014-068336(JP,A)
【文献】特開2016-105534(JP,A)
【文献】特開2016-042629(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/222-5/257
H04N 7/18
G03B 15/00
G03B 17/00
G03B 5/00
(57)【特許請求の範囲】
【請求項1】
撮像装置で撮像された複数のフレームを含む動画データ、前記撮像装置の基準方向に対する傾き角の時系列データおよび前記撮像装置に生じた角速度の時系列データを記憶する記憶手段と、
前記角速度の時系列データに基づいて、前記動画データの複数のフレームに対し、前記基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、
前記画像の回転が施された複数のフレームに基づく画像データを出力する出力手段と、
前記傾き角の時系列データの第1の時点の値に基づいて、前記第1の時点での前記撮像装置の正面方向を計算する手段と、
前記角速度の時系列データに基づいて、それぞれフレームに対応する複数の時点にわたる前記撮像装置の正面方向を計算する手段と、
前記傾き角の時系列データに基づいて、各時点の前記正面方向から前記画像の回転を施す際の各時点の補正角度を計算する手段と
を含む、画像処理装置。
【請求項2】
前記画像処理装置は、当該画像処理装置と通信する外部装置からの補正された動画を求める要求に応答して、前記動画データの前記複数のフレームに対する画像の回転を開始し、前記画像の回転が施された複数のフレームに基づく画像データの出力を開始することを特徴とする、請求項1に記載の画像処理装置。
【請求項3】
回転が施される前記画像は、全天球画像であり、前記画像の回転では、前記傾き角の時系列データに基づいて、前記動画データの前記複数のフレームに対し、さらに前記全天球画像の天頂補正が施されることを特徴とする、請求項1または2に記載の画像処理装置。
【請求項4】
前記画像処理装置は、さらに、
計算された各時点の補正角度に対し、前記所定周波数範囲として高周波成分を通過するフィルタ処理を施す手段を含む、請求項1~3のいずれか1項に記載の画像処理装置。
【請求項5】
前記画像処理装置は、さらに、
補正角度が、定義域をまたいで変化したことを検知して、調整値を加算または減算する手段を含む、請求項1~4のいずれか1項に記載の画像処理装置。
【請求項6】
前記複数の時点にわたる前記正面方向は、前記第1の時点での正面方向を起点として、前記角速度の時系列データの各軸の角速度に応じた無限小回転を積算することによって、計算される、請求項1~5のいずれか1項に記載の画像処理装置。
【請求項7】
画像処理システムであって、
撮像装置で撮像された複数のフレームを含む動画データ、前記動画データの撮像時の前記撮像装置の基準方向に対する傾き角の時系列データおよび前記動画データの撮像時に前記撮像装置に生じた角速度の時系列データを記憶する記憶手段と、
前記角速度の時系列データに基づいて、前記動画データの複数のフレームに対し、前記基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、
前記画像の回転が施された複数のフレームに基づく画像データを出力する出力手段と、
前記傾き角の時系列データの第1の時点の値に基づいて、前記第1の時点での前記撮像装置の正面方向を計算する手段と、
前記角速度の時系列データに基づいて、それぞれフレームに対応する複数の時点にわたる前記撮像装置の正面方向を計算する手段と、
前記傾き角の時系列データに基づいて、各時点の前記正面方向から前記画像の回転を施す際の各時点の補正角度を計算する手段と
を含む、画像処理システム。
【請求項8】
前記画像処理システムは、撮像装置と、前記撮像装置と通信する情報処理装置とを含み、前記情報処理装置は
指示を受け付けたことに応答して、補正された動画を求める要求を前記撮像装置に対し発行する受付手段と、
前記撮像装置から出力された画像データを表示する表示手段と
を含み、前記撮像装置は、前記記憶手段と、前記出力手段とを含み、当該撮像装置と通信する前記情報処理装置からの補正された動画を求める要求に応答して、前記動画データの前記複数のフレームに対する画像の回転を開始し、前記画像の回転が施された複数のフレームに基づく画像データの出力を開始することを特徴とする、請求項に記載の画像処理システム。
【請求項9】
コンピュータを、
撮像装置で撮像された複数のフレームを含む動画データ、前記撮像装置の基準方向に対する傾き角の時系列データおよび前記撮像装置に生じた角速度の時系列データを記憶する記憶手段、および
前記角速度の時系列データに基づいて、前記動画データの複数のフレームに対し、前記基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、
前記画像の回転が施された複数のフレームに基づく画像データを出力する出力手段
前記傾き角の時系列データの第1の時点の値に基づいて、前記第1の時点での前記撮像装置の正面方向を計算する手段、
前記角速度の時系列データに基づいて、それぞれフレームに対応する複数の時点にわたる前記撮像装置の正面方向を計算する手段、
前記傾き角の時系列データに基づいて、各時点の前記正面方向から前記画像の回転を施す際の各時点の補正角度を計算する手段
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置、画像処理システムおよびプログラムに関する。
【背景技術】
【0002】
近年、手持ちで、半球ないし全天球の視野で静止画や動画を撮像できるカメラが普及している。このような手持ちサイズのカメラでは、カメラの姿勢を正確にコントロールして撮影することが難しい。このため、カメラ本体が傾いた状態での撮影に対応して、撮像された画像を傾き補正する機能を備えたものが知られている。
【0003】
画像の傾きを補正する技術としては、例えば、特開2013‐214947号公報(特許文献1)が知られている。特許文献1は、2つの魚眼レンズを有する静止画撮影装置において、内部に備えた鉛直方向からの傾きを得るための加速度センサが検出した傾き角に応じて、魚眼画像の正則画像への変換パラメータを算出する構成を開示する。しかしながら、特許文献1の全天球動画補正装置では、加速度センサを使用しての補正であったため、鉛直方向を中心とした回転に対して補正が行われないという点で、充分なものではなかった。
【0004】
また、特開2017-147682号公報(特許文献2)は、撮像手段と、全天球フレームデータを作成する画像合成部と、撮像手段の姿勢情報を検出する姿勢検出手段と、姿勢情報に基づいて全天球フレームデータの座標を変換する補正量データを作成する補正量算出部と、全天球フレームデータと補正量データを関連付けて全天球画像を得る関連付け手段を具える、全天球撮像システムを開示する。この全天球撮像システムにおいて、補正量算出部は、全天球フレームデータについて、グローバル座標における鉛直方向に対する傾き補正と、グローバル座標における水平面内での揺れは微小揺れ成分を除いた補正を行なう補正量データを作成し関連付け手段に送信する。
【0005】
しかしながら、上記特許文献2の従来技術では、撮影時に撮像手段の姿勢情報を検出して補正量データを算出するので、撮影時の負荷が高くなってしまう点で、充分なものではなかった。また、グローバル座標における水平面内での微小揺れ成分を除いた補正を行なう補正量データのみが全天球フレームデータに関連付けられて保存されるため、微小揺れ成分の情報が活用できなくなる点で充分なものではなかった。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、上記点に鑑みてなされたものであり、本開示は、画像の所定基準方向周りの回転のぶれを効率的に補正することができる、画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示によれば、上記課題を解決するために、下記特徴を有する、画像処理装置を提供する。画像処理装置は、撮像装置で撮像された複数のフレームを含む動画データ、撮像装置の基準方向に対する傾き角の時系列データおよび撮像装置に生じた角速度の時系列データを記憶する記憶手段を含む。画像処理装置は、また、角速度の時系列データに基づいて、動画データの複数のフレームに対し、基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施し、画像の回転が施された複数のフレームに基づく画像データを出力する出力手段を含む。
【発明の効果】
【0008】
上記構成により、画像の所定基準方向周りの回転のぶれを効率的に補正することができる。
【図面の簡単な説明】
【0009】
図1】本実施形態による全天球動画システムを構成する全天球カメラの断面図。
図2】本実施形態による全天球動画システムのハードウェア構成図。
図3】本実施形態による全天球動画システム上に実現される全天球動画補正機能に関連する主要な機能ブロック図。
図4】(A)全天球画像の生成における画像データフロー図、および、全天球画像のデータ構造を(B)平面で表した場合および(C)球面で表した場合について説明する図。
図5】本実施形態による全天球画像の天頂補正および回転補正について説明する図。
図6】本実施形態による全天球画像の天頂補正および回転補正によって得られる全天球画像を説明する図。
図7】本実施形態による全天球動画システムを構成する全天球カメラが実行する、全天球動画補正処理を示すフローチャート。
図8】本実施形態において回転補正のための正面ベクトルの計算方法を説明する図。
【発明を実施するための形態】
【0010】
以下、本実施形態について説明するが、実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態では、画像処理装置および画像処理システムの一例として、それぞれ、全天球カメラおよび全天球動画システムを用いて説明する。
【0011】
以下、図1および図2を参照しながら、本実施形態による全天球動画システムの全体構成について説明する。
【0012】
図1は、本実施形態による全天球動画システムを構成する全天球カメラ110の断面図である。図1に示す全天球カメラ110は、撮像体12と、上記撮像体12およびコントローラやバッテリなどの部品を保持する筐体14と、上記筐体14に設けられたシャッター・ボタン18とを備える。
【0013】
図1に示す撮像体12は、2つの結像光学系20A,20Bと、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなどの2つの撮像素子22A,22Bとを含み構成される。結像光学系20各々は、例えば6群7枚の魚眼レンズとして構成されている。上記魚眼レンズは、図1に示す実施形態では、180度(=360度/n;光学系数n=2)より大きい全画角を有し、好適には、185度以上の画角を有し、より好適には、190度以上の画角を有する。このような広角な結像光学系20と撮像素子22とを1個ずつ組み合わせたものを広角撮像光学系と参照する。
【0014】
2つの結像光学系20A,20Bの光学素子(レンズ、プリズム、フィルタおよび開口絞り)は、撮像素子22A,22Bに対して位置関係が定められる。より具体的には、結像光学系20A,20Bの光学素子の光軸が、対応する撮像素子22の受光領域の中心部に直交して位置するように、かつ、受光領域が、対応する魚眼レンズの結像面となるように位置決めが行われる。
【0015】
図1に示す実施形態では、結像光学系20A,20Bは、同一仕様のものであり、それぞれの光軸が合致するようにして、互いに逆向きに組み合わせられる。撮像素子22A,22Bは、受光した光分布を画像信号に変換し、コントローラ上の画像処理手段に順次、画像フレームを出力する。詳細は後述するが、撮像素子22A,22Bでそれぞれ撮像された画像は、合成処理されて、これにより、立体角4πステラジアンの画像(以下「全天球画像」と参照する。)が生成される。全天球画像は、撮影地点から見渡すことのできる全ての方向を撮影したものとなる。そして、全天球画像の連続するフレームにより、全天球動画が構成される。ここで、説明する実施形態では、全天球画像および全天球動画を生成するものとして説明するが、全天周画像や全天周動画、水平面のみ360度を撮影した、いわゆるパノラマ画像およびパノラマ動画であってもよい。
【0016】
図2(A)は、本実施形態による全天球動画システムを構成する全天球カメラ110のハードウェア構成を示す。全天球カメラ110は、説明する実施形態における画像処理装置または撮像装置に対応する。
【0017】
全天球カメラ110は、CPU(Central Processing Unit)112と、ROM(Read Only Memory)114と、画像処理ブロック116と、動画圧縮ブロック118と、DRAM(Dynamic Random Access Memory)インタフェース120を介して接続されるDRAM132と、外部センサインタフェース124を介して接続される姿勢角センサ136とを含み構成される。
【0018】
CPU112は、全天球カメラ110の各部の動作および全体動作を制御する。ROM114は、CPU112が解読可能なコードで記述された制御プログラムや各種パラメータを格納する。画像処理ブロック116は、2つの撮像素子130A,130B(図1における撮像素子22A,22Bである。)と接続され、それぞれで撮像された画像の画像信号が入力される。画像処理ブロック116は、ISP(Image Signal Processor)などを含み構成され、撮像素子130から入力された画像信号に対し、シェーディング補正、ベイヤー補間、ホワイト・バランス補正、ガンマ補正などを行う。
【0019】
動画圧縮ブロック118は、MPEG-4 AVC/H.264などの動画圧縮および伸張を行うコーデック・ブロックである。DRAM132は、各種信号処理および画像処理を施す際にデータを一時的に保存する記憶領域を提供する。
【0020】
姿勢角センサ136は、3軸の加速度成分および3軸の角速度成分を検出するセンサである。検出された加速度成分および角速度成分は、後述するように、重力方向への全天球画像の天頂補正および重力方向周りの回転補正を施すために用いられる。姿勢角センサ136は、さらに、方位角などを求めるための地磁気センサなど他のセンサを備えてもよい。
【0021】
全天球カメラ110は、さらに、外部ストレージインタフェース122と、USB(Universal Serial Bus)インタフェース126と、シリアルブロック128とを含み構成される。外部ストレージインタフェース122には、外部ストレージ134が接続される。外部ストレージインタフェース122は、メモリカードスロットに挿入されたメモリカードなどの外部ストレージ134に対する読み書きを制御する。USBインタフェース126には、USBコネクタ138が接続される。USBインタフェース126は、USBコネクタ138を介して接続されるスマートフォンなどの外部装置とのUSB通信を制御する。シリアルブロック128は、スマートフォンなどの外部装置とのシリアル通信を制御し、無線NIC(Network Interface Card)140が接続される。
【0022】
電源スイッチの操作によって電源がオン状態になると、上記制御プログラムがメインメモリにロードされる。CPU112は、メインメモリに読み込まれたプログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをメモリ上に一時的に保存する。これにより、全天球カメラ110の後述する各機能部および処理が実現される。
【0023】
図2(B)は、本実施形態による全天球動画システムを構成する情報端末150のハードウェア構成を示す。情報端末150は、説明する実施形態における情報処理装置に対応する。
【0024】
図2(B)に示す情報端末150は、CPU152と、RAM154と、内部ストレージ156と、入力装置158と、外部ストレージ160と、ディスプレイ162と、無線NIC164と、USBコネクタ166とを含み構成される。
【0025】
CPU152は、情報端末150の各部の動作および全体動作を制御する。RAM154は、CPU152の作業領域を提供する。内部ストレージ156は、CPU152が解読可能なコードで記述された、オペレーティング・システムや、本実施形態による情報端末150側の処理を担うアプリケーションなどの制御プログラムを格納する。
【0026】
入力装置158は、タッチスクリーンなどの入力装置であり、ユーザ・インタフェースを提供する。入力装置158は、全天球動画の補正など操作者による各種の指示を受け付ける。外部ストレージ160は、メモリカードスロットなどに装着された着脱可能な記録媒体であり、動画形式の画像データや静止画データなどの各種データを記録する。ディスプレイ162は、ユーザ操作に応答して補正された全天球動画を画面表示する。無線NIC164は、全天球カメラ110などの外部機器との無線通信の接続を確立する。USBコネクタ166は、全天球カメラ110などの外部機器とのUSB接続をする。
【0027】
情報端末150に電源が投入され電源がオン状態になると、内部ストレージ156から制御プログラムが読み出され、RAM154にロードされる。CPU152は、RAM154に読み込まれた制御プログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをメモリ上に一時的に保存する。これにより、情報端末150の後述する各機能部および処理が実現される。
【0028】
以下、図3図6を参照しながら、本実施形態による全天球動画システムが備える全天球動画補正機能について説明する。
【0029】
図3は、本実施形態による全天球動画システム上で実現される全天球動画補正機能に関連する主要な機能ブロック210を示す。全天球カメラ110の機能ブロック210は、図3に示すように、全天球動画撮像部212と、記憶部214と、全天球動画補正部220と、受信部230と、画像出力部232とを含み構成される。これに対して、情報端末150の機能ブロック250は、指示受付部252と、表示部254とを含み構成される。
【0030】
まず、全天球カメラ110側から説明する。全天球動画撮像部212は、2つの撮像素子130A,130Bを用いて連続したフレームを順次撮像し、全天球動画データ240を記憶部214に記録する。さらに、全天球動画撮像部212は、撮像中、姿勢角センサ136を用いて3軸方向の加速度成分および3軸方向の角速度成分を計測し、全天球動画データ240のメタデータとしてこれらの計測した情報を記録する。
【0031】
記憶部214は、全天球動画撮像部212によって記録された1または複数の全天球動画データ240を記憶する。記憶部214は、図2に示した外部ストレージ134や他のストレージなどの記憶領域の一部として与えられる。全天球動画データ240は、図3に示すように、全天球カメラ110で撮像された全天球フレームデータ242と、撮影中の全天球カメラ110の基準方向に対する傾き角の時系列データである天頂補正データ244と、撮影中に全天球カメラ110に生じた角速度の時系列データである角速度データ246とを含み構成される。
【0032】
全天球フレームデータ242は、撮像を開始してから終了するまでのそれぞれ全天球動画を構成する複数のフレームを含み、全天球動画データ240の本体となる動画データである。
【0033】
以下、図4を参照しながら、全天球画像の生成および生成される全天球画像について説明する。図4(A)は、全天球画像生成における各画像のデータ構造および画像のデータフローを説明する。まず、撮像素子130各々で直接撮像される画像は、概ね全天球のうちの半球を視野に収めた画像である。結像光学系に入射した光は、所定の射影方式に従って撮像素子130の受光領域に結像される。ここで撮像される画像は、受光領域が平面エリアを成す2次元の撮像素子で撮像されたものであり、平面座標系で表現された画像データとなる。また、典型的には、得られる画像は、図4(A)において「魚眼画像A」および「魚眼画像B」で示されるように、各撮影範囲が投影されたイメージサークル全体を含む魚眼画像として構成される。
【0034】
この複数の撮像素子130で撮像された各フレームの複数の魚眼画像が、歪み補正および合成処理されて、各フレームに対応する1つの全天球画像が構成される。合成処理では、平面画像として構成される各魚眼画像から、まず、相補的な各半休部分を含む各全天球画像が生成される。そして、各半球部分を含む2つの全天球画像が、重複領域のマッチングに基づいて位置合わせされ、画像合成され、全天球全体を含む全天球画像が生成される。
【0035】
図4(B)は、本実施形態で用いられる全天球画像の画像データのデータ構造を平面で表して説明する図である。図4(C)は、全天球画像の画像データのデータ構造を球面で表して説明する図である。図4(B)に示すように、全天球画像の画像データは、所定の軸に対してなされる垂直角度φと、所定の軸周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。垂直角度φは、0度~180度(あるいは-90度~+90度)の範囲となり、水平角度θは、0度~360度(あるいは-180度~+180度)の範囲となる。
【0036】
全天球フォーマットの各座標値(θ,φ)は、図4(C)に示すように、撮影地点を中心とした全方位を表す球面上の各点と対応付けられており、全方位が全天球画像上に対応付けられる。魚眼レンズで撮影された魚眼画像の平面座標と、全天球画像の球面上の座標とは、所定の変換テーブルにて対応付けされる。変換テーブルは、それぞれのレンズ光学系の設計データ等に基づいて、所定の投影モデルに従い製造元等で予め作成されたデータであり、魚眼画像を全天球画像へ変換するデータである。
【0037】
ここで、全天球フレームデータ242が全天球動画を構成するものとして説明しているが、必ずしも図4に示すような合成後の全天球画像のフォーマットで各フレームが記録されていることを要するものではない。全天球フレームデータ242は、再生時に全天球動画が構成可能であれば、いかなる形態で記録されていてもよい。
【0038】
例えば、再生時にフレームごとに魚眼画像から歪み補正および合成を行って全天球画像を生成することを前提として、撮像素子130A,130Bで直接撮像される2つの魚眼画像の動画データ(図4(A)に示す魚眼画像Aおよび魚眼画像Bそれぞれに対応する動画データ)、または、2つの魚眼画像を接合した接合画像の動画データ(魚眼画像Aおよび魚眼画像Bを並べて接合して1つの画像とした場合の動画データ)が記録されていてもよい。なお、以下、説明の便宜上、全天球フレームデータ242は、歪み補正および合成処理後の全天球画像のフォーマットで各フレームの画像を保持するものとして説明する。
【0039】
また、「動画」と参照するが、動画が再生可能であれば、いかなる形態で記録されてもよい。例えば、H.264/MPEG-4 AVC(Advanced Video Coding)、H.265/HEVC(High Efficiency Video Coding)などの所定のコーデックで、複数のフレームを圧縮した動画データとして記録されていてもよい。また、Motion JPEG(Joint Photographic Experts Group)は、連続した静止画として動画を表現する形式であるが、このように、複数のフレームの静止画像の連続した系列として動画データが記録されていてもよい。
【0040】
ここで、再び図3を参照する。天頂補正データ244は、全天球動画の各フレームに関連付けて記録される、撮像を開始してから終了するまでの全天球カメラ110の基準方向に対する傾き角の時系列データである。ここで、基準方向は、典型的には、重力加速度が作用する重力方向である。重力方向に対する傾き角は、姿勢角センサ136に含まれる加速度センサで計測された信号に基づいて生成される。傾き角は、典型的には、加速度の次元の値からなるベクトルとして構成される。加速度センサは、重力と慣性力とを区別しないので、好ましくは、姿勢角センサ136に含まれる角速度センサで計測された信号に基づいて、加速度センサから得られた傾き角が補正されてもよい。
【0041】
なお、説明する実施形態では、フレームに対して傾き角が一対一で対応し、フレームと傾き角とは同期されて記録されているものとして説明する。しかしながら、記録する傾き角のレートは、必ずしもフレームレートと同一としなくともよい。フレームレートと一致しない場合は、フレームレートでのリサンプリングなどを行うことにより、フレームに一対一で対応した傾き角を得ればよい。
【0042】
角速度データ246は、姿勢角センサ136の角速度センサで計測される、撮像を開始してから終了するまでの全天球カメラ110(内の角速度センサ)の3軸周りで生じた角速度の時系列データである。角速度は、フレームに1対1に対応して記録されている必要はなく、典型的には、フレームレートよりも速いレートで記録することができる。この場合、タイムスタンプを手がかりとして、後で各フレームとの対応関係を求めることができる。あるいは、全天球動画の各フレームに1対1で対応して角速度が記録されてもよい。
【0043】
全天球動画補正部220は、記憶部214に記憶された全天球動画データ240を読み出し、全天球フレームデータ242の各フレームに対し、天頂補正および回転補正を施し、補正された全天球動画データを出力する。
【0044】
ここで、図5および図6を参照しながら、天頂補正および回転補正について説明する。図5は、本実施形態において行われる全天球画像の天頂補正および回転補正を説明する図である。図6は、本実施形態において行われる全天球画像の天頂補正および回転補正によって得られる全天球画像を説明する図である。図6(A)は、天頂補正前の動画のフレームを示し、図6(B)は、天頂補正後の動画のフレームを示す。
【0045】
上述したように、全天球画像フォーマットの画像データは、所定の軸z0に対してなす垂直角度φと、上記所定の軸z0周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。ここで、所定の軸は、なんら補正がなされない場合は、全天球カメラ110を基準として定義される軸となる。例えば、図1に示す全天球カメラの撮像体12側を頭部としてその反対側を底部として、底部から頭部へ筐体の中心を通る中心軸を、水平角度θおよび垂直角度φを定義する所定の軸z0として全天球画像を定義することができる。また、例えば2つの結像光学系20A,20Bのうちの一方の光学素子の光軸方向が水平角度θで中心に位置するように、全天球画像の水平角度θを定義することができる。
【0046】
天頂補正とは、図5の左図のように実際には基準方向(重力方向)に対して中心軸z0が傾いている状態で撮像された全天球画像(図6(A))を、図5の右図のようにあたかも中心軸z0が基準方向Zに一致した状態で撮影されたかのような全天球画像(図6(B))に補正する処理(Roll,Pitch方向の補正)をいう。これに対して、回転補正とは、天頂補正により基準方向に中心軸z0が一致するように補正された全天球画像において、さらに、基準方向Z周りの変動(図6の水平角度θ方向の変動)を低減する補正(Yaw方向の補正)をいう。
【0047】
以下、さらに図3を参照しながら、全天球動画補正部220の動作について、より詳細に説明する。全天球動画補正部220は、より詳細には、カメラ正面計算部222と、補正角度計算部224と、補正角度調整部226と、画像回転部228とを含み構成される。
【0048】
カメラ正面計算部222は、天頂補正データ244および角速度データ246に基づいて、全天球カメラ110の正面方向(一方の光軸方向)の時系列を計算する。より具体的には、カメラ正面計算部222は、まず、天頂補正データ244のうちの先頭フレームの傾き角の値T(0)に基づいて、先頭フレームの時点での全天球カメラ110の正面方向V(0)を計算する。カメラ正面計算部222は、先頭フレームの時点での正面方向V(0)が求められると、初期値V(0)を起点として、角速度データ246の角速度Gyro(n)に基づいて、それぞれフレームに対応する複数の時点にわたる全天球カメラ110の正面方向V(n)の時系列を計算する。正面方向V(n)は、先頭フレームの時点での正面方向V(0)を起点として、角軸の角速度に応じた無限小回転を積算することによって計算することができる。計算された正面方向V(n)の時系列は、補正角度計算部224に入力される。
【0049】
補正角度計算部224は、天頂補正データ244の傾き角データT(m)に基づいて、各フレーム時点の全天球カメラ110の正面方向V(n)から、各フレーム時点の基準方向周りの補正角度Angle(n)を計算する。計算された補正角度Angle(n)は、補正角度調整部226に入力される。
【0050】
補正角度調整部226は、計算された各時点の補正角度Angle(n)に対し、実際に補正を適用する際に不自然とならないような調整を施す。補正角度Angle(n)は、通常、所定の定義域(例えば、-180度~+180度)の範囲内の値として求められる。このため、補正角度Angle(n)は、時系列でみたときに、+180度近傍から-180度近傍へ(あるいは反対方向に)飛んでしまう場合がある。そこで、補正角度調整部226は、補正角度Angle(n)の前後の変化量に基づいて補正角度が定義域をまたいで変化したことを検知し、各時点の補正角度Angle(n)に対し、調整値を加算または減算する。これにより、補正角度の定義域の範囲を拡張し、補正角度の時系列の連続性を維持する。そして、補正角度調整部226は、拡張された定義域上の補正角度に対し、所定周波数範囲、好ましくは高周波成分のみを通過させるフィルタ処理を施す。フィルタ処理後の補正角度AngleOut(n)は、画像回転部228に入力される。
【0051】
画像回転部228は、天頂補正データ244に基づいて、全天球フレームデータ242の複数のフレーム各々に対し、全天球画像の天頂補正を施す。本実施形態による画像回転部228は、同時に、複数のフレームに対し、計算された補正角度AngleOut(n)に基づいて、基準方向周りの所定周波数範囲の変動が低減されるように画像の回転を施す。
【0052】
全天球フレームデータ242中の各フレームの画像が合成後の全天球フォーマットの画像である場合は、画像回転部228は、各フレームの全天球画像の回転座標変換を行う。一方で、全天球フレームデータ242中の各フレームが、合成前の複数の魚眼画像である場合は、画像回転部228は、フレーム各々に対し天頂補正および回転補正を施すとともに、複数の魚眼画像から全天球画像への変換を行う。
【0053】
受信部230は、全天球カメラ110と通信する情報端末150からの各種要求を受信する。受信部230は、情報端末150から全天球動画の補正要求(例えば再生に際して補正後の全天球動画を求める要求)を受信すると、全天球動画補正部220に対し要求を渡す。全天球動画補正部220は、全天球動画の補正要求に応答して、指定された全天球動画データ240の天頂補正および回転補正、並びに補正後の画像データの出力を開始する。画像出力部232は、全天球動画補正部220により天頂補正および回転補正が施された複数のフレームに基づく全天球動画の画像データを要求元の情報端末150に出力する。なお、この際は、画像データは、補正された複数のフレーム各々の全天球画像に基づき、所定の動画圧縮形式でエンコードし、最終的な動画データとして出力されてもよいし、静止画の系列として出力されてもよい。
【0054】
情報端末150は、全天球カメラ110と通信し、全天球画像を閲覧再生するためのアプリケーションがインストールされたスマートフォンやタブレットコンピュータ、パーソナルコンピュータなどの端末装置である。情報端末150は、アプリケーションを介して操作者から各種指示を受け付けて、全天球カメラ110に対し各種要求を発行する。情報端末150の指示受付部252は、操作者からの指定の全天球動画の補正指示(例えば補正をしながらの動画再生の指示)を受け付けたことに応答して、全天球カメラ110に対し、所定の全天球動画の補正後の動画データを求める要求を発行する。情報端末150の表示部254は、全天球カメラ110から出力されてくる全天球動画の画像データに基づいて、情報端末150が備えるディスプレイ162などの表示装置上に全天球動画を表示する。
【0055】
なお、情報端末150側で、補正後の画像データに基づいてどのような画像が表示されるのかは任意である。例えば、全天球画像をそのまま表示装置上に表示してもよいし、全天球画像を球体オブジェクトに張り付けて、所定の位置から所定の視野角のカメラで球体オブジェクトを観察した場合の画像をフレームとして動画表示することもできる。
【0056】
なお、本実施形態では、情報端末150ではなく、全天球カメラ110側のリソースを用いて天頂補正および回転補正の実体的な処理を行い、情報端末150には補正結果を出力して表示させる構成を採用する。この構成により、情報端末150が備える処理性能にかかわらず、天頂補正および回転補正を施しながらの動画再生を安定に行うことが可能となる。
【0057】
なお、説明する実施形態では、出力の態様として、全天球動画の画像データを情報端末150へ送信するものとしているが、これに限定されるものではない。全天球カメラ110が表示装置を備える場合は、その表示装置上で表示する態様とすることもできる。あるいは、全天球動画の画像データを別のファイルとして保存する態様とすることもできる。
【0058】
以下、図7および図8を参照しながら、本実施形態における回転補正について、より詳細に説明する。図7は、本実施形態による全天球動画システムを構成する全天球カメラ110側で行われる全天球動画補正処理を示すフローチャートである。図8は、本実施形態において回転補正のための正面ベクトルの計算方法を説明する。
【0059】
図7に示す処理は、全天球カメラ110が、当該全天球カメラ110と通信する外部の情報端末150からの所定の全天球動画の補正後の動画データを求める要求を受信したことに応答して、ステップS100から開始される。
【0060】
ステップS101では、全天球カメラ110は、上記要求で指定される全天球動画データ240を読み出す。ここでの全天球動画データ240の読み出しでは、上述した本体である全天球フレームデータ242に加えて、メタデータである天頂補正データ244および角速度データ246が読み出される。
【0061】
ステップS102では、全天球カメラ110は、天頂補正データ244のうちの先頭フレームの傾き角ベクトルT(0)に基づいて、先頭フレーム時点での全天球カメラ110の正面方向V(0)を計算する。まず、先頭フレームの傾き角ベクトルT(0)と、重力方向ベクトルG=(0,0,1)とのクォータニオンQ(0)が生成される。傾き角ベクトルT(0)は、先頭フレームの時点のグローバル座標系と、全天球カメラ110のローカル座標系との回転変位を表している。クォータニオンQ(0)の回転軸A(0)および回転角θ(0)は、下記式(1)および(2)で表される。そして、クォータニオンQ(0)は、図8(A)に示すように、回転軸A(0)周りの回転角θ(0)の回転を表す。
【0062】
【数1】
【0063】
そして、図8(A)に示すように、得られたクォータニオンQ(0)でグローバル正面ベクトル(0,1,0)を回転させて、全天球カメラ110の正面方向ベクトルの初期値V(0)を求める。ここでは、全天球カメラ110の中心軸z0と、グローバル座標系のZ軸(重力方向)が一致し、かつ、全天球カメラ110の正面方向(一方の光学系の光軸)と、グローバル座標系のY軸とが一致している状態を基準として、傾いた状態での全天球カメラ110の正面を示す正面方向ベクトルの初期値V(0)が求められる。
【0064】
ステップS103では、全天球カメラ110は、角速度データ246に基づいて、それぞれフレームに対応する複数の時点にわたる全天球カメラ110の正面方向ベクトルV(n)の時系列を計算する。各時点の正面方向ベクトルV(n)は、角速度データ246におけるサンプリング間の時間差を求め、3軸周りの角速度Gyro(n)に応じた無限小回転をサンプリング毎に積算することにより、計算することができる。全天球カメラ110にかかっている負荷によってサンプリング間隔がばらつく可能性があるところ、サンプリング間の時間差は、タイムスタンプから好適に求めることができる。ステップS103では、図8(B)に示すように、先頭フレームの時点の正面方向ベクトルV(0)を起点として正面方向ベクトルV(n)の時系列が計算される。
【0065】
ステップS104~S110のループでは、フレーム毎に、回転補正の補正角を算出しながら、天頂補正および回転補正を適用する。
【0066】
ステップS105では、全天球カメラ110は、注目フレームに対応するカメラ正面方向ベクトルV(n)を探し、天頂補正データ244に基づいて、回転補正のための補正角度を計算する。角速度データ246は、典型的にはフレームレートと異なるサンプリングレートを有し、ここでは、天頂補正データ244の注目フレームとタイムスタンプと近い正面方向ベクトルVが探索される。
【0067】
ここで、m番目のフレームに対する正面方向ベクトルがV(n)であったとする。まず、m番目のフレームの傾き角ベクトルT(m)から求められるクォータニオンQ(m)が計算される。このクォータニオンQ(m)の回転軸A(m)および回転角θ(m)は、上記式(1)および(2)と同様に、下記式(3)および(4)で表される。
【0068】
【数2】
【0069】
そして、図8(B)で示すように、クォータニオンQ(m)でm番目のフレームに対する正面方向ベクトルがV(n)を回転させて、V’(n)を求める。これにより、天頂補正後にカメラ正面ベクトルV(n)が向く方向が求められる。そして、得られたベクトルV’(n)に基づいて、グローバル座標のXY平面内で、補正角度Angle(n)を下記式により求める。
【0070】
【数3】
【0071】
ここで、上記式(5)中の関数atan2(x座標,y座標)は、逆正接を-180度~180度(-π~π)の範囲で返す関数である。
【0072】
ステップS106では、全天球カメラ110は、ハイパスフィルタの前処理として、ステップS105で求められた補正角度を連続性が維持されるように調整し、調整後の補正角AngleIn(n)を計算する。
【0073】
説明する実施形態において、補正角度Angle(n)は、逆正接により、-180度~+180度の定義域の範囲内の値として求められる。このため、補正角度Angle(n)は、時系列としてみたときに、+180度近傍から-180度近傍へ(あるいは反対方向に)飛んでしまう場合がある。ステップS106では、下記疑似コードで表すように、補正角度Angle(n)の前後の変化量から補正角度が定義域をまたいで変化したことが検知され、調整値が加算または減算される。なお、下記疑似コード中、thresholdは、補正角度が定義域をまたいで変化したことを検知するための変化量に対する閾値である。また、最後のコードのAngle(0)は、上記式(5)で求められる補正角度の初期値であり、これを基準に補正が行われることを示している。下記疑似コード中、n-1は、nが対応するフレームの1つ前のフレームに対応する。
【0074】
【数4】
【0075】
ステップS107では、全天球カメラ110は、注目フレームの時点の調整された補正角度AngleIn(n)に対し、高周波成分を通過させるハイパスフィルタ処理を施し、フィルタ処理後の補正角度AngleOut(n)を求める。ハイパスフィルタ通過後の補正角度AngleOut(n)は、下記式にて計算することができる。なお、下記式中Pは、サンプリング周期であり、Hcは、カットオフ周波数である。下記式中、n+1は、nが対応するフレームの1つ後のフレームに対応する。
【0076】
【数5】
【0077】
ステップS108では、全天球カメラ110は、全天球フレームデータ242の注目フレームに対し、計算された補正角度および天頂補正データ244内の対応する傾きベクトルT(m)に基づいて、天頂補正に加えて、基準方向周りの高周波成分の変動が低減されるような回転補正をかける。ステップS109では、全天球カメラ110は、回転変換された全天球画像のフレームを出力する。
【0078】
全天球動画データ240に含まれるすべてのフレームについて、ステップS105~S109の処理が行われると、ステップS104~ステップS110のループを抜けて、ステップS111で、本処理が終了される。
【0079】
全天球カメラ110が正しく垂直方向に載置される場合、補正せずとも、図6(B)に示すよう撮影した者が認識する天頂および水平線が一致するように撮像することが可能である。しかしながら、一般に、カメラを手持ちして、位置および姿勢を正確に固定して撮像することは困難である。本体カメラが傾いたままで撮像されると、天頂補正しなければ、図6(A)に示すように、互いの画像の天頂がずれ、水平線が歪んでしまう。また、本体カメラに手ぶれなどにより回転が生じると、回転補正しなければ、水平線にぶれが残った状態となってしまう。
【0080】
これに対して、本実施形態においては、重力方向などの基準方向Zと全天球カメラ110の中心軸z0の方向が一致しているように、かつ、基準方向Z周りの変動が軽減されるように全フレームの画像が変換される。これにより、補正後の全天球動画の視聴者は、違和感のない視聴が可能になる。
【0081】
以上説明したように、上述までの実施形態によれば、画像の所定基準方向周りの回転のぶれを効率的に補正することができる画像処理装置、画像処理システムおよびプログラムを提供することが可能となる。
【0082】
特に、撮影時にメタデータとして保存された角速度データを使用して回転補正を行うので、撮影時の負荷が軽減される。また、回転補正を行わないか、微小成分のみを抑制するように回転補正を行うかを再生時に決定できる。
【0083】
なお、上述した実施形態では、画像処理装置の一例として、全天球カメラ110を用いて説明した。そして、全天球カメラ110側のリソースを用いて天頂補正および回転補正の実体的な処理を行う構成により、再生側の装置が備える処理性能にかかわらず、天頂補正および回転補正を施しながらの動画再生を安定に行うことを可能した。しかしながら、画像処理装置は、必ずしも全天球カメラ110などの撮像装置であることを要しない。他の実施形態では、全天球カメラ110とは別のパーソナルコンピュータなどの情報処理装置が画像処理装置として用いられてもよい。
【0084】
なお、上述した実施形態では、180度より大きな画角を有するレンズ光学系で撮像された2つの部分画像を重ね合わせて合成するものとしたが、これに限定されない。他の実施形態では、1または複数のレンズ光学系により撮像された3以上の部分画像の重ね合わせ合成に適用してもよい。また、上述した実施形態では、魚眼レンズを用いた撮像システムを一例に説明してきたが、超広角レンズを用いた全天球動画撮像システムに適用してもよい。
【0085】
さらに、上記実施形態では、全天球動画システムとして、全天球カメラ110と情報端末150とを別体として説明を行ったが、これに限られない。すなわち、全天球動画システムは、全天球カメラ110と情報端末150とを一体として構成してもよい。
【0086】
またさらに、上記実施形態では、重力方向と全天球カメラ110の中心軸とが一致するとき、傾きがない状態としていたが、これに限られない。重力方向以外では、たとえば水平方向やその他所望の方向を基準方向として設定し、その基準方向に対する全天球カメラ110や撮像素子130A、130B等所定の物体との傾きに基づいて画像の傾きを修正するようにしてもよい。
【0087】
なお、上記機能部は、アセンブラ、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などにより記述されたデータとして記録媒体により配布することができる。
【0088】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0089】
12…撮像体、14…筐体、18…シャッター・ボタン、20…結像光学系、22,130…撮像素子、110,130…全天球カメラ、112,152…CPU、114…ROM、116…画像処理ブロック、118…動画圧縮ブロック、120,126…インタフェース、122…外部ストレージインタフェース、124…外部センサインタフェース、126…USBインタフェース、128…シリアルブロック、132…DRAM、134,160…外部ストレージ、136…姿勢角センサ、138,166…USBコネクタ、150…情報端末、154…RAM、156…内部ストレージ、158…入力装置、162…ディスプレイ、164…無線NIC、210,250…機能ブロック、212…全天球動画撮像部、214…記憶部、220…全天球動画補正部、222…カメラ正面計算部、224…補正角度計算部、226…補正角度調整部、228…画像回転部、230…受信部、232…画像出力部、240…全天球動画データ、242…全天球フレームデータ、244…天頂補正データ、246…角速度データ、252…指示受付部、254…表示部、
【先行技術文献】
【特許文献】
【0090】
【文献】特開2013‐214947号公報
【文献】特開2017-147682号公報
図1
図2
図3
図4
図5
図6
図7
図8