以下、図面を参照して、本発明の一実施形態による画像処理装置を説明する。図1は同実施形態による仮想全天球画像を視聴するためのシステム構成を示すブロック図である。この図において、図12に示す従来の装置と同一の部分には同一の符号を付し、その説明を簡単に行う。仮想全天球画像を視聴するためのシステムは、画像処理システム1及び視聴システム9を備えている。
図1に示すように、画像処理システム1は、全天球カメラ2と、N台(N≧2)の複数のカメラ3−1、3−2、3−3、…、3−N(以下、カメラ群3とする。)と、画像処理装置30と、表示装置5とを備える。画像処理システム1は、フットサルのコート10内に仮想視点11を設定した場合に、コート10外に設置したカメラ群3からの画像の合成によって仮想視点11における仮想全天球画像を得る。なお、以下の説明においてはNは2以上の整数として説明するが、仮想全天球画像の作成のためには、仮想視点を含む方向を撮影するカメラ3が1台以上あればよい。
全天球カメラ2は、全天球画像を撮影するカメラである。全天球カメラ2は、競技が行われる前のタイミングでコート10内の仮想視点11の位置に設置される。全天球カメラ2は、予め、仮想視点11の位置から仮想全天球画像の背景となる背景画像20を撮影する。全天球カメラ2で撮影された背景画像20は、画像処理装置4に入力されて蓄積される。全天球カメラ2は、競技中も仮想視点11に設置したままだと競技の支障となるため、競技開始前に仮想視点11の位置から取り除かれる。
コート10の周囲には、カメラ群3が設置されている。カメラ群3の各カメラ3−1、3−2、3−3、…、3−Nは、背景画像20に対して合成する前景画像を含む部分画像を動画(映像)で撮影するカメラであり、それぞれ仮想視点11を含む画角となるようにコート10の周囲を取り囲むように設置されている。N台のカメラ3−1、3−2、…、3−Nのそれぞれで撮影された動画は、複数フレームの画像により構成される。図1においてNは、4以上の整数であり、同程度の画質の仮想全天球画像を得ようとするのであればコート10が大きいほど大きな値となり、コート10の大きさが同じであれば仮想全天球画像の画質を高いものにしようとするほど大きな値となる。
画像処理装置30は、N台のカメラ3−1、3−2、…、3−Nのそれぞれで撮影された動画から入力画像を事前に取得する。撮影されたそれぞれの動画は複数フレームの画像で構成されており、本実施形態における画像処理装置30は処理対象となるフレームの画像を入力画像として取得する。画像処理装置30は、カメラ群3のN台のカメラ3−1、3−2、…、3−Nからの入力画像に対して画像処理を施して、全天球カメラ2より取得した背景画像20に画像処理後の部分画像を合成する処理を行う。表示装置5は、画像処理装置30で生成した仮想全天球画像を表示する装置であり、液晶ディスプレイ、ヘッドマウントディスプレイ(HMD)等である。
視聴システム9は、画像サーバ6と、ネットワーク7と、複数の視聴装置8とを備える。画像サーバ6は、ネットワーク7を介して画像処理装置30が生成した仮想全天球画像を配信するサーバである。ネットワーク7は、例えばインターネット等の通信網である。視聴装置8は、ネットワーク7に接続可能なユーザ端末81と、ユーザ端末81に接続されたHMD82とから構成される装置である。ユーザ端末81は、ネットワーク7を介して画像サーバ6が配信する仮想全天球画像を受信する機能と、受信した仮想全天球画像をHMD82で視聴可能な映像信号に変換してHMD82へ出力する機能とを備える。
HMD82は、ユーザ端末81から映像信号等を受信する受信部と、受信部を介して受信した映像信号を表示する液晶ディスプレイ等で構成される画面と、視聴者の頭の動きを検出する検出部と、検出部が検出した結果をユーザ端末81に送信する送信部とを備える。HMD82の画面に表示される映像は、仮想全天球画像に基づいた仮想全天球映像の一部であり視野と呼ぶ。HMD82は、検出部が検出した視聴者の頭の動きに応じて表示する映像の範囲である視野を変更する機能を有する。
頭を上下左右に動かすことに応じて視聴している映像が変化するので、HMD82を頭に装着した視聴者は、仮想視点11の位置から競技を見ているかのような映像を視聴することができる。このように、HMD82を装着した視聴者は、あたかも仮想視点11に立って競技を観戦しているかのような臨場感のある映像を視聴することができる。
画像処理システム1において処理される画像は、図12に示した従来の画像処理システム1で処理される画像と同様であるので、図12を用いて画像処理システム1の動作について簡単に説明する。全天球カメラ2は、コート10内の仮想視点11に設置されて、図13(A)に示す背景画像20を競技開始前に撮影する。競技が開始されるとカメラ群3の各カメラが撮影を開始する。例えば、カメラ群3内のカメラ3−1、3−2、3−3は、図13(B)に示す部分画像21〜23を撮影する。
画像処理装置30は、撮影された部分画像21〜23のそれぞれから仮想視点11を含み、かつ、競技中の選手を含む領域211、221、231を切り出す。画像処理装置30は、切り出した領域211、221、231の画像に対して、画像処理を行うことで背景画像20に貼り付け可能な部分画像211a、221a、231aを生成する。画像処理装置30は、背景画像20に対して部分画像211a、221a、231aを合成することで、図13(C)に示すような仮想全天球画像24を生成する。
なお、視聴システム9は、図1に示す構成に限定されるものではない。視聴システム9は、画像処理装置30が生成した仮想全天球画像を編集してから画像サーバ6へ出力する編集装置を備える構成等、仮想全天球画像をネットワーク7経由で配信可能な構成であればよい。視聴装置8の構成は、ネットワーク7を介して受信した仮想全天球画像を利用者が視聴できる構成であれば、どのような構成であってもよい。
次に、図1に示す画像処理装置30の構成について説明する。図2は、画像処理装置30の基本構成例を示す図である。図2に示すように、画像処理装置30は、オブジェクト解析部31と、奥行取得部32と、合成情報取得部33と、画像入力部34と、画像切り出し部35と、画像合成部36と、表示処理部37と、キーボードやマウス等で構成され、奥行に関する情報を入力する入力部38と、貼り合わせる部分画像の境界(継ぎ目)を決定する境界決定部39と、カメラ群3の各カメラが撮影した前景画像を含む部分画像を格納する前景画像格納部301と、背景画像20を格納する背景画像格納部302と、オブジェクト情報格納部303と、合成情報テーブル304とを備える。
オブジェクト解析部31は、前景画像格納部301に格納されている部分画像を入力とし、部分画像に含まれるオブジェクトを抽出して、出力する。ここでオブジェクトとは、背景画像20に含まれていないが部分画像に含まれている人物、物体(例えばボール)等である。オブジェクト解析部31は、抽出したオブジェクトに対して当該オブジェクトを識別するための識別子であるIDを付与する。
カメラ群3の各カメラで撮影される部分画像は、所定のフレーム周期を有する動画像であり、各フレームには撮影時間が関連付けられている。オブジェクト解析部31は、時間方向に一連のフレームから抽出した同一オブジェクトに対して同じIDを付与する。オブジェクト情報格納部303は、オブジェクトを抽出する対象とした部分画像のフレーム毎の撮影時刻に関連付けてオブジェクト解析部31が付与したIDを含むオブジェクトに関する情報を格納する。
例えば、オブジェクト解析部31は、カメラ3−1が撮影した撮影時刻t、t+1、t+2、…の一連のフレームである部分画像21から抽出したオブジェクトには、ID1の識別子を付与する。同様に、オブジェクト解析部31は、カメラ3−2が撮影した撮影時刻t、t+1、t+2、…の一連のフレームである部分画像22から抽出したオブジェクトには、ID2の識別子を付与し、カメラ3−3が撮影した撮影時刻t、t+1、t+2、…の一連のフレームである部分画像23から抽出したオブジェクトには、ID3の識別子を付与する。
オブジェクト解析部31は、部分画像を解析してオブジェクトを抽出する際に、オブジェクトの属性を示すラベルと、オブジェクトのコート10上の空間における3次元的な位置情報である3次元位置情報とを取得する。ラベルの具体例としては、人物であることを示す「人」、ボールであることを示す「ボール」、物体Aであることを示す「物体A」、物体Bであることを示す「物体B」、…等のカメラ群3の撮影範囲を移動する可能性のある物体を識別する情報を用いる。
オブジェクト解析部31は、オブジェクトを抽出するために部分画像を解析処理することで、オブジェクトが「人」、「ボール」、「物体A」、「物体B」のいずれに該当するのかを解析・判定して、その判定結果をラベルとして出力する。なお、オブジェクトが「人」、「ボール」、「物体A」、「物体B」のいずれに該当するのかを解析・判定する手法としては、公知の画像解析技術を用いる。例えば、画像の解析により人を検出する技術を開示する文献として以下の公知文献1がある。
公知文献1:山内悠嗣、外2名、「[サーベイ論文] 統計的学習手法による人検出」、電子情報通信学会技術研究報告、vol.112、no.197、PRMU2012-43、pp.113-126、2012年9月
また、オブジェクト解析部31は、部分画像内におけるオブジェクトの位置、オブジェクトを撮影したカメラ群3内の複数のカメラの位置及びその複数のカメラの撮影範囲(撮影方向及び画角)等の情報に基づいて、コート10上の空間におけるオブジェクトの3次元位置を取得する。このオブジェクトの3次元位置を取得する手法としては、公知の技術を用いる。また、取得位置情報は、2次元位置の情報であってもよい。
オブジェクト情報格納部303は、オブジェクト解析部31が抽出したオブジェクトに関する情報であるオブジェクト情報を入力とし、オブジェクト情報をその撮影時刻に関連付けて格納する。オブジェクト情報は、オブジェクトを識別するIDと、オブジェクトの属性を示すラベルと、オブジェクトの3次元位置とを含む。
図3は、オブジェクト情報格納部303に格納するオブジェクト情報の一例を示す図である。図3に示すように、部分画像の各フレームの撮影時刻を示す時刻t、t+1、t+2、…に関連付けて複数のオブジェクト情報を格納している。時刻tにおいては、オブジェクト1のオブジェクト情報として、ID1、ラベル1、3次元位置情報1が格納され、オブジェクト2のオブジェクト情報として、ID2、ラベル2、3次元位置情報2が格納されている。時刻t+1、時刻t+2においても、同じ情報が格納されている。
奥行取得部32は、オブジェクト情報格納部303よりオブジェクト情報を読み出して、各撮影時刻において、複数のオブジェクトの中から重要なオブジェクトである主オブジェクトを特定して、出力する。奥行取得部32は、仮想視点11から特定した主オブジェクトまでの距離である奥行に関する奥行情報を取得する。重要なオブジェクトとは、例えば、仮想全天球画像の中で視聴者が注視する領域に存在するオブジェクトである。
奥行取得部32は、予め各撮影時刻における主オブジェクトを特定しておく。具体的には、仮想全天球画像を作成するコンテンツ作成者が、各撮影時刻において視聴者が注視すると推定される領域または視聴者が注視すると推定されるオブジェクトを特定する情報を入力部38から入力する。これにより、奥行取得部32は、入力された情報に基づいて各撮影時刻における主オブジェクトを特定する。奥行取得部32において、主オブジェクトを特定する方法は、上述した方法に限定されるものではなく、色々な方法を用いてよい。例えば、撮影した部分画像における視聴者の興味の度合いを領域別に表したマップであるSaliency Mapを求めて奥行取得部32に入力する。奥行取得部32では、入力されたSaliency Mapに基づいて視覚的に顕著な領域に存在するオブジェクトを主オブジェクトとして特定してもよい。また、予め被験者に部分画像である動画を視聴させ、各撮影時刻においてどの領域を見ていたかという視聴ログを獲得し、その視聴ログを奥行取得部32に入力し、入力された視聴ログに基づいて主オブジェクトを特定してもよい。
なお、Saliency Mapの求め方は公知の技術であり、例えば、以下の公知文献2に記載の技術を用いてもよい。
公知文献2:Laurent Itti, Christof Koch, and Ernst Niebur,"A Model of Saliency-Based Visual Attention for Rapid Scene Analysis",IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(11):1254-1259 (1998)
合成情報テーブル304は、部分画像から仮想視点11を含む領域を切り出すための切り出し領域に関する情報である切出領域情報と、その切り出し領域に応じて切り出した画像を部分画像に変換するための情報である変換情報とを含む合成情報を格納する。部分画像は、切り出した画像を背景画像20の対応領域に違和感なく貼り付けるために、切り出した画像に対して上記変換情報に応じて拡大、縮小、回転等の変形処理を行って生成される。この変形処理は、例えば、画像に対してアフィン変換を施すことによって行う。画像に対してアフィン変換を施す場合の変換情報は、例えばアフィン変換行列である。以下、部分領域画像に対して行う変形処理としてアフィン変換を用いる例を示すが、変形処理はアフィン変換に限定される必要はなく、変換情報に応じて拡大、縮小、回転等による画像の変換を行う処理であればどのような処理であってもよい。合成情報テーブル304は、カメラ群3において処理対象となる部分画像を撮影したカメラを特定するカメラコードと、仮想視点11からの奥行と、その奥行に応じたアフィン変換行列である変換情報と、その奥行に応じた切出領域情報とを対応づけて格納するテーブルである。
アフィン変換行列は、以下に示す方法により予め取得して合成情報テーブル304に記憶しておく。例えば、仮想視点11から複数種類の距離(奥行)の位置に格子模様のチェスボードを設置して、仮想視点11に設置した全天球カメラ2で撮影したチェスボードを含む画像と、カメラ群3で撮影したチェスボードを含む画像とを比較する。そして両画像において、撮影したチェスボードの各格子が対応するように画像を変形するアフィン変換行列を求める。このようにして、チェスボードを設置した奥行に対応したアフィン変換行列を求める。
切出領域情報は、以下に示す方法により予め取得して合成情報テーブル304に記憶しておく。例えば、カメラ群3の内の隣接する2つのカメラで撮影された部分画像に同一の被写体(チェスボード)が存在する重複している領域がある場合は、一方の領域のみ残るように双方のカメラの画像に対する切り出し領域を設定する。切り出し領域は、仮想視点11から被写体(チェスボード)まで複数種類の距離(奥行)について、カメラ群3に含まれるカメラ毎に求める。なお、双方のカメラの画像において、数画素〜数十画素の幅の重複領域を残すように切り出し領域を設定してもよい。
合成情報取得部33は、奥行取得部32が取得した奥行を入力とし、奥行に基づいて、合成情報テーブル304から、カメラ群3の各カメラで撮影された部分画像に対応する切り出し領域及びアフィン変換行列を含む合成情報を取得して、出力する。なお、合成情報テーブル304に格納されている奥行は数種類〜数十種類なので、奥行取得部32が取得した奥行と同じ値の奥行のテーブルが無い場合が想定される。このような場合は、合成情報取得部33は、奥行取得部32が取得した奥行の前後の値となる合成情報テーブル304に記録済の2つの奥行の値に対応する合成情報(切出領域情報及び変換情報)を用いて、奥行取得部32が取得した奥行に対応する合成情報を算出する。具体的には、上記記録済の2つの奥行の値に対応する切出領域情報の切り出し領域の座標値を線形補間することにより、その中間に位置する切り出し領域を特定する。上記記録済の2つの奥行の値に対応するアフィン変換行列の各係数を線形補間することにより、その中間値となるアフィン変換行列を算出する。
前景画像格納部301は、各カメラを特定するカメラコードに関連付けてカメラ群3の各カメラで撮影した前景画像を含む部分画像を格納する。部分画像は、撮影時刻及び動画の画像データを含む。前景画像格納部301は、例えば、図13(B)に示す部分画像21を、カメラ3−1を特定するカメラコードに関連付けて格納し、部分画像22を、カメラ3−3を特定するカメラコードに関連付けて格納し、部分画像23を、カメラ3−3を特定するカメラコードに関連付けて格納する。
背景画像格納部302は、全天球カメラ2で撮影した全天球画像である背景画像20を格納する。背景画像格納部302は、例えば、コート10内の仮想視点11に設置した天球カメラ2で撮影した図13(A)に示す背景画像20を格納する。格納する背景画像20は、1フレーム分の画像データでも所定時間分の動画の画像データでもよい。所定時間分の画像データを格納する場合は、背景画像20において周期的に変化する部分(例えば電光掲示板が映っている部分があり、かつ、電光掲示板の表示内容が周期的に変化している部分。)があれば、その周期に応じた時間分の画像データを背景画像20として格納すればよい。
画像処理装置30が全天球カメラ2から背景画像20を取得する構成はどのような構成であってもよい。例えば、画像処理装置30が全天球カメラ2と有線または無線で通信可能な通信部を備えて、その通信部を介して背景画像20を取得する構成であってもよい。また、全天球カメラ2に着脱可能な記録媒体を用いて当該記録媒体に背景画像20を記録して、記録後の記録媒体を画像処理装置30に接続して、画像処理装置30が記録媒体から背景画像20を読み出す構成により、背景画像20を取得する構成であってもよい。また、画像処理装置30が、カメラ群3から部分画像を取得する構成も全天球カメラ2の場合と同様にどのような構成であってもよい。
画像入力部34は、部分画像格納部301から部分画像を取得し、背景画像格納部302から背景画像20を取得して、部分画像を画像切り出し部35へ出力し、背景画像20を画像合成部36へ出力する。画像切り出し部35は、合成情報取得部33が取得した合成情報に含まれる切出領域情報に基づいて、カメラ群3の各カメラからの部分画像に対応する切り出し領域を特定し、部分画像から特定した切り出し領域を切り出して、切り出した画像を画像合成部36へ出力する。画像切り出し部35は、例えば、図13(B)に示す部分画像21〜23のそれぞれから切り出し領域211、221、231を切り出す処理を行う。
画像合成部36は、画像切り出し部35が切り出した画像と合成情報取得部33が取得した合成情報と、背景画像を入力とし、画像切り出し部35が切り出した画像に対して、合成情報取得部33が取得した合成情報に含まれる変換情報のアフィン変換行列に基づいて変形処理を行い、部分画像を生成する。画像合成部36は、生成した部分画像をアフィン変換行列に基づいて背景画像20に貼り付けて合成することで仮想全天球画像を生成し、出力する。なお、アフィン変換行列は、背景画像20において部分画像を貼り付ける領域を示す情報を含む。画像合成部36は、生成した仮想全天球画像を画像サーバ6へ送信する機能を有する。
画像合成部36は、例えば、図13(B)に示す部分画像21〜23のそれぞれから切り出し領域211、221、231を切り出した画像に対して、アフィン変換行列に基づいた変形処理を行うことで、部分画像211a、221a、231aを生成する。画像合成部36は、例えば、背景画像20に対して、部分画像211a、221a、231aを所定の領域に貼り付けて合成することで図13(C)に示す仮想全天球画像24を生成する。
部分画像を背景画像20に貼り付けて仮想全天球画像24を生成した際に、隣り合う部分画像間の境界領域において重複が発生する場合がある。図4は、隣り合う部分画像間の境界領域において重複が発生する場合の具体例を示す図である。図4に示すように、仮想全天球画像24に貼り付けた部分画像211bと部分画像221bとが境界領域25において重複している。なお、図4に示す部分画像211bと部分画像221bが、図13(C)に示した部分画像211a及び部分画像221aと比較して異なる点は、両画像に重複する領域がある点である。
図4に示すように、部分画像211bと部分画像221bとが境界領域25において重複している場合には、画像合成部36は、重複している境界領域25に対して以下に示すブレンディング(Blending)処理を行う。画像合成部36は、Blendingパラメータαを定め、(式1)に基づいて重複領域25の各ピクセルの値を算出する。
g(x、y)=αIi(x、y)+(1−α)Ii+1(x、y) … (式1)
(式1)において、x、yは、仮想全天球画像24上における水平方向、垂直方向の座標である。g(x、y)は、境界領域25内の座標(x、y)の画素値の値である。Ii(x、y)とIi+1(x、y)は、カメラ群3内のカメラ3−i及びカメラ3−(i+1)によって撮影された部分画像に基づいて生成された部分画像の座標(x、y)の画素値の値を表す。また、このαの値は重複領域25で一定であるが、以下の(式2)に示すように変化させてもよい。
α(x)=(x−xs)/(xe−xs) … (式2)
(式2)において、xs及びxeは、図4に示すように重複領域25の両端のx座標であり、xs<xeである。
表示処理部37は、画像合成部36が出力する仮想全天球画像を入力とし、仮想全天球画像を表示装置5において表示可能な映像信号に変換して出力する。仮想全天球画像24は、図13(C)に示す通り、歪みを含む画像であり、かつ、仮想視点11を中心とする360度の景色を含む画像であるので、表示処理部37は、仮想全天球画像から表示装置5に表示させる範囲の画像を切り出して、切り出した画像の歪みを補正する機能を有する。
画像処理装置30は、前景画像格納部301及び背景画像格納部302を備える構成としたが、これに限定されるものではない。例えば、前景画像格納部301及び背景画像格納部302を備える画像格納装置を別に設け、画像処理装置30は、画像格納装置から前景画像格納部301及び背景画像格納部302を取得する構成であってもよい。
境界決定部39は、画像合成部36が出力する仮想全天球画像と合成情報を入力とし、前述した境界領域に対して、ブレンディング処理を行うのではなく、目に付きにくい境界線とすることにより、自然な画像合成を行うための境界領域を決定し、出力する。
次に、画像処理システム1において1フレームの仮想全天球画像を作成する動作について説明する。図5は、画像処理システム1において1フレームの仮想全天球画像を作成する動作を示すフロー図である。図5に示す動作は、各撮影時刻における仮想全天球画像を生成する処理の前に、予めオブジェクト情報、合成情報、背景画像20及び部分画像を取得する処理も含まれる。
仮想視点11に全天球カメラ2を設置し、仮想視点11から所定の距離(奥行)にチェスボードを設置した後に、全天球カメラ2は、チェスボードを含む全天球画像を撮影する(ステップS101)。全天球カメラ2を仮想視点11から取り去って、カメラ群3の各カメラで、仮想視点11及びチェスボードを含む撮影範囲を撮影し、全天球カメラ2で撮影された全天球画像に含まれるチェスボードと、カメラ群3内の一つのカメラで撮影された画像に含まれるチェスボードとを対応させるための合成情報を求める(ステップS102)。なお、ステップS101、102におけるチェスボードの撮影は、仮想視点11から複数種類の距離にチェスボードを設置して行われる。
仮想視点11に全天球カメラ2を設置した後に、全天球カメラ2は、背景画像20を撮影する(ステップS103)。撮影された背景画像20は、背景画像格納部302に格納される。全天球カメラ2を仮想視点11から取り去った後であって、例えば競技開始と共に、カメラ群3は撮影を開始する。これにより、画像処理装置30は、カメラ群3が撮影した部分画像を前景画像格納部301に格納する。オブジェクト解析部31は、前景画像格納部301から部分画像を読み出して解析処理し、解析結果をオブジェクト情報格納部303に格納する。奥行取得部32は、オブジェクト情報格納部303に格納されているオブジェクトの中から、入力部38から入力された情報に基づいて主オブジェクトを特定する。奥行取得部32は、仮想視点11から特定した主オブジェクトまでの奥行情報を取得する(ステップS104)。
合成情報取得部33は、奥行取得部32が取得した奥行を入力とし、奥行に基づいて、合成情報テーブル304から、各部分画像に対応する切り出し領域及びアフィン変換行列を含む合成情報を取得して、出力する(ステップS105)。ステップS105において、合成情報取得部33は、奥行取得部32が取得した奥行と同じ値の奥行のテーブルが無い場合は、奥行取得部32が取得した奥行の前後の値となる奥行に対応する合成情報に基づいて、奥行取得部32が取得した奥行に対応する合成情報を求める。
画像切り出し部35は、合成情報取得部33が取得した合成情報に含まれる切出領域情報を入力とし、切出領域情報に基づいて、カメラ群3の各カメラからの部分画像に対応する切り出し領域を特定し、部分画像から特定した切り出し領域を切り出して、切り出した画像を画像合成部36へ出力する。画像合成部36は、画像切り出し部35が切り出した画像と合成情報取得部33が取得した合成情報と背景画像を入力とし、画像切り出し部35が切り出した画像に対して、合成情報に含まれる変換情報のアフィン変換行列に基づいて変形処理を行い、部分画像を生成する。画像合成部36は、生成した部分画像をアフィン変換行列に基づいて背景画像20に貼り付けて合成することで仮想全天球画像を生成し、出力する(ステップS106)。
画像合成部36は、背景画像20に貼り付ける2つの部分画像間の境界領域において重複している場合には、重複している境界領域に対してブレンディング処理を行う(ステップS107)。
次に、画像処理装置30が動画の仮想全天球画像を作成する基本動作について説明する。図6は、画像処理装置30が動画の仮想全天球画像を作成する動作について説明する図である。図6の動作においては、図5に示したステップS101〜ステップS104における部分画像の撮影までの処理は既に終えているものとする。図6に示すように、画像処理装置30は、最初の撮影時刻のフレームに対する処理を開始する(ステップS201)。
画像入力部34は、前景画像格納部301から部分画像を取得し、背景画像格納部302から背景画像20を取得して、部分画像を画像切り出し部35へ出力し、背景画像20を画像合成部36へ出力する(ステップS202)。奥行取得部32は、オブジェクト情報格納部303に格納されているオブジェクトの中から、入力部38から入力された情報に基づいて主オブジェクトを特定して、特定した主オブジェクトまでの奥行を取得する(ステップS203)。
合成情報取得部33は、奥行取得部32が取得した奥行を入力とし、奥行に基づいて、合成情報テーブル304から、各部分画像に対応する合成情報を取得して、出力する(ステップS204)。画像切り出し部35は、合成情報取得部33が取得した合成情報を入力とし、合成情報に基づいて、部分画像から切り出し領域を切り出して、切り出した画像を画像合成部36へ出力する。画像合成部36は、画像切り出し部35が切り出した画像と合成情報取得部33が取得した合成情報と背景画像を入力とし、画像切り出し部35が切り出した画像に対して、合成情報に含まれるアフィン変換行列に基づいて変形処理を行い、部分画像を生成する。画像合成部36は、生成した部分画像をアフィン変換行列に基づいて背景画像20に貼り付けて合成して、仮想全天球画像を生成して出力する(ステップS205)。画像処理装置30は、次の撮影時刻の部分画像があればステップS201に戻りループを継続し、次の撮影時刻の部分画像がなければ、ループを終了する(ステップS206)。
以上に説明したように画像処理装置30は、視聴者が注目する主オブジェクトに対応した奥行を求めて、求めた奥行に対応した部分画像の生成し、生成した部分画像を背景画像20に貼り付けることで仮想全天球画像を生成することができる。これにより、画像処理装置30は、仮想全天球画像に含まれる主オブジェクトである被写体において分身が起こったり、消失が起こったりすることを抑制することができる。画像処理装置30は、視聴者の注目する被写体の奥行に応じた合成処理を行うことで、仮想全天球画像に含まれる視聴者の注目する被写体における分身の発生を抑制することができ、視聴品質の低下を抑制した仮想全天球画像を視聴者に提供することができる。
<第1の実施形態>
次に、本発明の第1の実施形態による画像処理装置を説明する。第1の実施形態は、前述した合成処理に用いる合成情報を求める処理について変形を加えたものである。ここで、図7を参照して仮想全天球画像の生成処理について簡単に説明する。図7は、仮想全天球画像の生成処理を示す模式図である。まず、カメラCi−1、Ci、Ci+1によって入力画像を事前に獲得する。そして、得られた入力画像から前景となる切り出し画像Si−1、Si、Si+1を切り出す。ここで、iは、カメラが並んだ順に付与された順番号である。切り出し画像Sに付与されたiについてもiの値が同じカメラから切り出したことを示している。また、アフィン変換パラメータAについてもiの値が同じカメラの画像に用いるアフィン変換パラメータを示している。図7は、3枚の切り出し画像Si−1、Si、Si+1を合成する例を示している。切り出し画像の最低数は1枚である。
次に、切り出し画像Si−1、Si、Si+1に対して、予め求めてあるアフィン変換パラメータAi−1、Ai、Ai+1によって画像変換を行い、部分画像S’i−1、S’i、S’i+1を生成する。アフィン変換パラメータには、並進移動の項も含まれる。そして、予め撮影してあった全天球画像Bと合成処理を行う。このように合成するようにすることにより、仮想視点Pvからみた仮想全天球画像を生成することが可能となる。この仮想全天球画像をHDM82によって、ユーザが見たい場面の方向へ視線を向けることにより、あたかもコート10内の仮想視点11のからフットサルの試合を観戦することが可能となる。
従来は、背景の画像(全天球画像B)が予め撮像した静止画であったものを本実施形態では動画にする。ただし、短い周期で同じ動作を繰り返していたり、自然につながっていない動画になっていると違和感の原因となるため、このような問題を同時に解決する。
短時間のループが連続していると、背景において同じ挙動が繰り返されるため不自然になるので、このようにならないようにする。そのための処理動作を図8〜図11を参照して説明する。
まず第1の背景画像生成の処理動作を図8を参照して説明する。図8は、背景画像を生成する動作を示す説明図である。
(1)画像入力部34は、背景動画を背景画像格納部302から読み込む。
(2)背景動画中の所定のMフレーム(Mは2以上の自然数。5〜10程度あればよい。)以上連続したフレーム画像(Mフレームの映像。以下、短時間区間の部分画像と記載。)毎に、同一背景動画中の別のMフレームの映像(短時間区間の部分画像)との類似度を求め、予め定めた類似度のしきい値以上類似しているか否かで、類似する2以上のMフレームの映像(短時間区間の部分画像)を探し、抽出する。例えば、画像(フレーム)間の類似度を求め、Mフレーム分の類似度の積算によって映像間の類似度とし、この類似度が所定の類似度のしきい値以上であれば、類似度を求めた映像同士が類似すると判定する。なお、予め定めたしきい値以上類似しているか否かという探索基準は一例である。複数の尺度に基づいて類似度を求め、それらが所定の基準を満たすか否かで、類似しているか否かを判定するようにすればよい。図8は、5つの類似する短時間区間を探し出した例を示している。
(3)(2)で抽出された短時間区間の部分画像の中から、予め定めた一定時間以上離れている2つの短時間区間の部分画像の組み合わせを選択する。
(4)(3)で選択された、似ている部分画像の組をつなぎ合わせて短時間の動画をループ再生して違和感のない動画を作成する。図8では、左から5番目(最後の短時間区間)の短時間区間と1番目(先頭の短時間区間)の短時間区間の部分画像をつなぎ合わせてループ再生することにより背景画像とする。図8においては、5番目の短時間区間と1番目の短時間区間とをつなぎ合わせる例を説明したが、必ず5番目と1番目をつなぎ合わせるのではなく、1回目の再生は、5番目と1番目とをつなぎ合わせ、2回目の再生では、5番目と、1番目から4番目のいずれかをつなぎ合わせることにより、常に異なった背景画像を再生することが可能となる。繰り返し再生の度に、先頭部分を変化させることによって違和感のないループ再生を行うことが可能となる。
次に、図9を参照して、第2の背景画像生成の処理動作を説明する。図9は、背景画像を生成する動作を示す説明図である。2つの短時間区間の一つの組のうち、時間的に前の部分画像をdst、後の部分画像をsrcと称することにする。
(1)画像入力部34は、背景動画を背景画像格納部302から読み込む。
(2)図8と同様に、予め定めた類似度のしきい値以上類似している所定の数のM(Mは2以上の自然数)フレームが連続した2つの部分画像を探す。図9は、5つの類似する短時間区間を探し出した例を示している。5つの短時間区間を左から短時間区間1〜5と称する。
(3)どこかの短時間区間X(例えば短時間区間2)から、短時間区間Xよりも後ろの短時間区間(短時間区間3〜5)のいずれかまで再生する。
(4)後ろの短時間区間(例えば短時間区間3)まで再生したらそのまま再生を続けるか別の短時間区間点(短時間区間1〜4)へ移動して再生するかをランダムに決めて再生する。
(5)最後の短時間区間5まで再生したら、短時間区間1〜4のいずれかに戻って、(3)、(4)、(5)の処理を繰り返す。
次に、図10を参照して、第3の背景画像生成の処理動作を説明する。図10は、背景画像を生成する動作を示す説明図である。第3の背景画像生成処理では、2パターンの似ている短時間区間(図10に示す例では、○と△の2パターンを示している)を探索する。
(1)画像入力部34は、背景動画を背景画像格納部302から読み込む。
(2)図8と同様に、予め定めた類似度のしきい値以上類似している所定の数のM(Mは2以上の自然数)フレームが連続した2つの部分画像を2パターン探し出す。図10は、3つの類似する第1短時間区間(○)と3つの第2短時間区間(△)を探し出した例を示している。
(3)つなぎ目では第1短時間区間同士、または第2短時間区間同士をつなぎ合わせる。図10に示す例では第1短時間区間1から第2短時間区間1まで再生し、そして、第2短時間区間1と第2短時間区間2とつなぎ合わせて、第2短時間区間2から第1短時間区間2まで再生するという動作を繰り返し行う。ただし、再生する区間の先頭は、第1または第2短時間区間であり、再生する区間の最後も第1または第2短時間区間であってもよい。
第3の背景画像生成処理においては、どの区間を選択するかはランダムに選択すればよいが、つなぎ目は、同じパターンの短時間区間同士をつなぎ合わせる。すなわち、○は○同士、△は△同士をつなぎ合わせる。このように、つなぎ目においては、似ている短時間区間をつなぎ合わせるため、違和感なく背景画像を再生することができる。
次に、図11を参照して、第4の背景画像生成の処理動作を説明する。第3背景画像生成の処理おいては、2パターンの似ている短時間区間を探索したが、第4の背景画像生成処理では、3パターンの似ている短時間区間を探索して背景画像の再生を行う。
(1)画像入力部34は、背景動画を背景画像格納部302から読み込む。
(2)図8と同様に、予め定めた類似度しきい値以上類似している所定の数のM(Mは2以上の自然数)フレームが連続した2つの部分画像を3パターン探し出す。図10は、2つの類似する第1短時間区間(○)と3つの第2短時間区間(△)と2つの第3短時間区間(□)を探し出した例を示している。
(3)つなぎ目では第1短時間区間同士、または第2短時間区間同士、または第3短時間区間同士をつなぎ合わせて再生するという動作を繰り返し行う。ただし、再生する区間の先頭は、第1または第2または第3短時間区間であり、再生する区間の最後も第1または第2、または第3短時間区間であってもよい。
第4の背景画像生成処理においては、どの区間を選択するかはランダムに選択すればよいが、つなぎ目は、同じパターンの短時間区間同士をつなぎ合わせる。すなわち、○は○同士、△は△同士、□は□同士をつなぎ合わせる。なお、探索すべき似ている短時間区間のパターン数は、4以上であってもよい。このように、つなぎ目においては、似ている短時間区間をつなぎ合わせるため、違和感なく背景画像を再生することができる。
このように、入力映像中にある、類似する複数個の短時間区間(Mフレーム)のうち、最初の短時間区間から始まり、最後の短時間区間で終わる映像区間(短時間の動画)を得て、得られた映像区間(短時間の動画)を繰り返して繋ぎ合わせて再生用の背景映像(長時間映像)を得る。
また、入力映像中にある、類似する複数個の短時間区間(Mフレーム)のうち、何れか1つの短時間区間から始まり、それ以降にある短時間区間で終わる映像区間(短時間の動画)を複数個得て、得られた複数個の映像区間(短時間の動画)を重複を許してランダムに繋ぎ合わせて再生用の背景映像(長時間映像)を得る。
前述した処理動作において、共通する処理動作は、入力映像中にある、類似する複数個の短時間区間(Mフレーム)のうち、何れか1つの短時間区間から始まり、それ以降にある短時間区間を繋ぎ合わせて再生用の背景映像(長時間映像)を得る。
<第2の実施形態>
次に、本発明の第2の実施形態による画像処理装置を説明する。第2の実施形態では、複数領域に分割して、領域毎に第1の実施形態の処理動作を行う。第2の実施形態は、より周期が長い映像を作成するものである。領域間を移動するオブジェクトが存在しない小領域に分割して、第1の実施形態を適用する。例えばサッカーであれば、観客は水平方向への移動をほとんど含まないので複数の領域に分割することは容易である。複数の領域毎に、異なる周期のループで動画を作成すれば、全体を通してみると非常に長い周期の動画とすることができる。
第2の実施形態による画像入力部34の処理動作(a)、(b)を説明する。
(a)背景動画を背景画像格納部302から読み込む。
(b)前景が領域外に移動しない複数の領域に分割する。すなわち、横切るオプティカルフローが存在しないように領域分割する。
以降は、第1の実施形態における背景画像生成処理と同様の処理動作を行う。
そして、最後に、領域毎に作成した映像を、合成する。
なお、繋ぎ合わせ部分等で、映像がうまく繋がるような映像の加工を施してもよい。例えば、よりきれいにするためにスムージングしてもよい。また、照明環境の変化が滑らかになるようにつなぐなどしてもよい。短時間区間1のNフレームと短時間区間2のNフレームを並べてつないでも、スムージングのためのαフレームを挟んでN+α+Nフレームとしてつないでも、片方の短時間区間のNフレームを削除してつないでもよい。
以上説明したように、入力映像映像(=再生したい時間よりは短時間の映像)から、全天球映像の背景映像などの長時間映像(=なんとなく映像に見えればいい映像)を、簡易に生成するため、類似しているところをつなげば不連続点が気にならなくなるため、映像を見ている者に違和感を与えることがない。
前述した実施形態における画像処理装置の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。