以下、図面を参照して、本発明の一実施形態による画像処理装置を説明する。図1は同実施形態による仮想全天球画像を視聴するためのシステム構成を示すブロック図である。この図において、図20に示す従来の装置と同一の部分には同一の符号を付し、その説明を簡単に行う。仮想全天球画像を視聴するためのシステムは、画像処理システム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における仮想全天球画像を得る。
全天球カメラ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の周囲を取り囲むように設置されている。図1においてNは、4以上の整数であり、同程度の画質の仮想全天球画像を得ようとするのであればコート10が大きいほど大きな値となり、コート10の大きさが同じであれば仮想全天球画像の画質を高いものにしようとするほど大きな値となる。
画像処理装置30は、各カメラ3−1、3−2、3−3、…、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において処理される画像は、図20に示した従来の画像処理システム1で処理される画像と同様であるので、図20を用いて画像処理システム1の動作について簡単に説明する。全天球カメラ2は、コート10内の仮想視点11に設置されて、図21(A)に示す背景画像20を競技開始前に撮影する。競技が開始されるとカメラ群3の各カメラが撮影を開始する。例えば、カメラ群3内のカメラ3−1、3−2、3−3は、図21(B)に示す部分画像21〜23を撮影する。
画像処理装置30は、撮影された部分画像21〜23のそれぞれから仮想視点11を含み、かつ、競技中の選手を含む領域211、221、231を切り出す。画像処理装置30は、切り出した領域211、221、231の画像に対して、画像処理を行うことで背景画像20に貼り付け可能な部分画像211a、221a、231aを生成する。画像処理装置30は、背景画像20に対して部分画像211a、221a、231aを合成することで、図21(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よりオブジェクト情報を読み出して、各撮影時刻において、複数のオブジェクトの中から重要なオブジェクトである主オブジェクトを特定して、仮想視点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は、例えば、図21(B)に示す部分画像21を、カメラ3−1を特定するカメラコードに関連付けて格納し、部分画像22を、カメラ3−3を特定するカメラコードに関連付けて格納し、部分画像23を、カメラ3−3を特定するカメラコードに関連付けて格納する。
背景画像格納部302は、全天球カメラ2で撮影した全天球画像である背景画像20を格納する。背景画像格納部302は、例えば、コート10内の仮想視点11に設置した天球カメラ2で撮影した図21(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は、例えば、図21(B)に示す部分画像21〜23のそれぞれから切り出し領域211、221、231を切り出す処理を行う。
画像合成部36は、画像切り出し部35が切り出した画像と合成情報取得部33が取得した合成情報と、背景画像を入力とし、画像切り出し部35が切り出した画像に対して、合成情報取得部33が取得した合成情報に含まれる変換情報のアフィン変換行列に基づいて変形処理を行い、部分画像を生成する。画像合成部36は、生成した部分画像をアフィン変換行列に基づいて背景画像20に貼り付けて合成することで仮想全天球画像を生成し、出力する。なお、アフィン変換行列は、背景画像20において部分画像を貼り付ける領域を示す情報を含む。画像合成部36は、生成した仮想全天球画像を画像サーバ6へ送信する機能を有する。
画像合成部36は、例えば、図21(B)に示す部分画像21〜23のそれぞれから切り出し領域211、221、231を切り出した画像に対して、アフィン変換行列に基づいた変形処理を行うことで、部分画像211a、221a、231aを生成する。画像合成部36は、例えば、背景画像20に対して、部分画像211a、221a、231aを所定の領域に貼り付けて合成することで図21(C)に示す仮想全天球画像24を生成する。
部分画像を背景画像20に貼り付けて仮想全天球画像24を生成した際に、隣り合う部分画像間の境界領域において重複が発生する場合がある。図4は、隣り合う部分画像間の境界領域において重複が発生する場合の具体例を示す図である。図4に示すように、仮想全天球画像24に貼り付けた部分画像211bと部分画像221bとが境界領域25において重複している。なお、図4に示す部分画像211bと部分画像221bが、図21(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は、図21(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の実施形態は、前述した合成処理中に行う境界処理について変形を加えたものである。第1の実施形態では、前述したように、ブレンディング処理を行うのではなく、部分画像の合成時に目に付きにくい境界とするものである。ここで、図7を参照して仮想全天球画像の生成処理について簡単に説明する。図7は、仮想全天球画像の生成処理を示す模式図である。まず、カメラCi−1、Ci、Ci+1によって撮影されたそれぞれの動画(映像)からそれぞれ取得された入力画像を事前に獲得する。カメラによって撮影された動画(映像)は、複数フレームの画像により構成されるものであり、ここでは処理対象フレームの画像を入力画像として獲得する。また、エネルギー画像の生成のために、処理対象フレームよりも過去の1つまたは複数のフレームの画像も事前に獲得する。そして、得られたそれぞれの入力画像から前景となる切り出し画像Si−1、Si、Si+1をそれぞれ切り出す。
次に、切り出し画像Si−1、Si、Si+1に対して、予め求めてあるアフィン変換行列Ai−1、Ai、Ai+1によって画像変換を行い、部分画像S’i−1、S’i、S’i+1を生成する。そして、予め撮影してあった全天球画像Bと合成処理を行う。このとき、部分画像を重なり合うように並べて合成するのではなく、シームカービングの処理を適用して、部分画像と部分画像の継ぎ目が目に付かないようにして合成を行う。このように合成するようにすることにより。仮想視点Pvから見た仮想全天球画像を生成することが可能となる。この仮想全天球画像をHDM82によって、ユーザが見たい場面の方向へ視線を向けることにより、あたかもコート10内の仮想視点11のからフットサルの試合を観戦することが可能となる。
ここで、本実施形態において用いるシームカービングについて説明する。シームの定義は、視覚的に重要でない画素を連結した画像列であり、これをシームと呼ぶ。画像の上端から下端を結ぶように連結したシームを縦シームという。シームカービングでは横シームもあるが、ここでは、縦シームのみを用いるため、縦シームについて説明する。シームカービングは、画像を拡大縮小する際に用いる技術であり、シームを削除することで、画像を縮小することができる。また、このシームを複製することにより画像の拡大にも適用可能である。シームカービングでは、視覚的に重要でないシームを検出することが重要である。これを行うために、画像のエネルギーという考えを導入する。基本的なアイデアは、人間の目に敏感に感じる画素はそのエネルギーが大きいとすることである。各画素について、エネルギーの値を付与した画像をエネルギー画像という。
図8は、シームを求める動作を示す模式図である。まずシームが定義されていない部分画像に対して、エネルギー計算(図8(B))を行う。この結果、エネルギー画像(図8(C))が得られることになる。このエネルギー画像に対して、公知のシームカービング処理のうち、縦シームを求める処理を行うことによって縦シームが得られる。シームカービングの処理については公知の技術(公知文献3参照)であるため、ここでは詳細な説明を省略するが、一般に累積エネルギーの低い境界がシームとして求められることになる。
公知文献3: Avidan, Shai, and Ariel Shamir. "Seam carving for content-aware image resizing." ACM Transactions on graphics (TOG). Vol. 26. No. 3. ACM, 2007.
そして、エネルギー画像上において求めたシームを元の部分画像上に重ね合わせる(図8(A))ことによって、継ぎ目として用いることができるシームを定義することが可能となる。
次に、図9を参照して、2つの部分画像を結合する処理について説明する。図9は、2つの部分画像を結合する処理を示す説明図である。前述したように、2つの部分画像1、2は、その一部が重複している領域(これを境界領域という)を有している。この境界領域について、部分領域1、2のいずれかの境界領域部分を用いて、シームカービング処理の縦シームを求める処理のみを行うことによって、縦シームを求める。そして、求めた縦シームを2つの部分画像1、2を結合するための結合線として用いる。ここでは、縦シームを例にして説明したが、結合する画像が上下に並べられている場合は、横シームを求めることになる。すなわち、2つの画像を結合する際に並べた方向と直交する方向のシームを求めることになる。このようにすることにより、前述したブレンディング処理が不要になるとともに、目で気づきにくい場所に結合線を設定するようにしたため、2つの部分画像1、2を結合する際に自然に結合を行うことが可能となる。
しかし、シームカービングによって、単に結合線(継ぎ目)を求めて結合しただけでは、以下のような問題が生じる。すなわち、視聴者が注目している領域に部分画像の境界(継ぎ目)があると目に付きやすいという問題である。そこで、本実施形態では、視聴者は人などの前景が動いていく方向を見ているはずであるという仮定の基に、人などの前景画像であるオブジェクトが移動する方向にはシームを作らないようにした。図10は、前景の進行方向に基づいてエネルギー画像を生成して処理を行う例を示す図である。視聴者は、図10(A)に示すように、画像に映っている人の進行方向の領域(破線で囲んだ領域)に視線が向くため、その領域にシームを作ってしまうとシームに基づいて結合した結合線が目立つことになる。
これは、図10(B)に示す対象の部分画像から単にエネルギー画像を生成したため、画像に映っている人の進行方向の領域にシームができてしまったためである。これに対して、図10(C)のように、新たに第2のエネルギー画像を生成し、この第2のエネルギー画像を加算することで前景の進行方法にシームを作らないようにする。第2のエネルギー画像は、前景の動きに基づいて、シームを作りたくない領域(ここでは、前景が進行しようとしている方向の領域)のエネルギーが高くなうようにしたエネルギー画像である。
ここで、エネルギー画像の生成方法について説明する。図11、図12は、エネルギー画像の生成方法を示す説明図である。ある境界領域に関し、過去s(≧1)フレームの画像を用いて各ピクセルに関してオプティカルフローを算出する(図11(A))。オプティカルフローを算出する手法については公知であるため、ここでは詳細な説明を省略する。
次に、先に求めたオプティカルフローについて、位置と方向に関して、K−meansなどを用いてクラスタリングする(図11(B))。続いて、各クラスタについて、エネルギー画像を求める。エネルギー画像は境界領域と同じサイズの画像であるとする。図12のようにクラスタKi(jはクラス番号。1≦j)に含まれるオプティカルフローの平均をそのクラスタのオプティカルフローをfiとし、Kiの重心をgiとすると、平均(gi+Δv)のx座標、分散1の正規分布にしたがってエネルギー画像を作成する。
なお、Δv=αfiであり、正規分布の横軸は図12のようにfiと平行であるとする。αは係数であり、適当な数値を与えてよい。ただし、クラスタKi付近に存在する移動物体が次時刻にgi+Δv付近に来るような値を与えることが望ましい。また、エネルギーの最大値emaxは予め定め(255など)、正規分布で得られるエネルギーの最大値がemaxと等しくなるように正規化する。なお、emaxはemax=Nfi+Pfiのように、Kiに含まれるオプティカルフローの数(Nfi)やオプティカルフローの大きさ(Pfi)によって変化させてもよい(図11(C))。
次に、各クラスタで作成したエネルギー画像を足し合わせ、境界領域のエネルギー画像とする。なお、図11(C))で求めたfiはクラスタKiに含まれるオプティカルフローの最大値、最小値、中央値などでもよい。
次に、図13を参照して、図9に示す2つの部分画像を結合する動作を説明する。図13は、図9に示す2つの部分画像を結合する動作を示すフローチャートである。まず、境界決定部39は、エネルギー画像を前述した方法によって生成する(ステップS301)。
次に、境界決定部39は、2つのエネルギー画像を足し合わせて、第3のエネルギー画像を生成する(ステップS302)。そして、境界決定部39は、シームカービング処理によって、足し合わされたエネルギー画像から縦シームを求める(ステップS303)。この処理によって、図9(B)に示す縦シームが定義されることになる。
次に、境界決定部39は、求めた縦シームを用いて境界を決定する(ステップS304)。続いて、境界決定部39は、求めた境界に基づいて、部分画像の切り出しを行う(ステップS305)。この画像切り出しは、2つの部分画像に対して行う。そして、境界決定部39は、2つの結合線を重ね合わせるようにして2つの部分画像を結合する(ステップS306)。
次に、境界決定部39は、未だ処理していない境界領域があるか否かにより処理が終了であるか否かを判定し(ステップS307)。未処理の境界領域があれば処理を繰り返す。
このような処理によって、人などの前景が移動する方向に部分画像の継ぎ目ができることを防止することができるため、視聴品質の低下を抑制した仮想全天球画像を生成することができる。
<第2実施形態>
次に、本発明の第2の実施形態による画像処理装置を説明する。第2の実施形態では、第1の実施形態と同様に、ブレンディング処理を行うのではなく、部分画像の合成時に目に付きにくい境界とするものである。前述したように、シームカービングによって、単に継ぎ目を求めて結合しただけでは、以下のような問題が生じる。すなわち、視聴者が注目している領域(視線方向)に部分画像の境界(継ぎ目)があると目に付きやすいという問題である。そこで、本実施形態では、視聴者が注目している方向(視聴者が見ている可能性が高い領域であり、視野のほぼ中央のことである)にはシームを作らないようにする。図14は、向いている方向で重み付けを行う例を示す図である。視聴者は、図14(A)に示すように、視線の方向にシームを作ってしまうとシームに基づいて結合した結合線が目立つことになる。
これは、図14(B)に示す対象の部分画像から単にエネルギー画像を生成したため、画像に映っている人の左側にシームができてしまったためである。これに対して、図14(C)のように、新たに第2のエネルギー画像を生成し、この第2のエネルギー画像を加算することで視線の方向にシームを作らないようにする。第2のエネルギー画像は、シームを作りたくない領域(ここでは、視聴者が見ている可能性が高い領域のことであり、視野のほぼ中央の領域)のエネルギーが高くなるようにしたエネルギー画像である。
ここで、エネルギー画像の生成方法について説明する。向いている方向を表す情報として画像上の点D=(dx,dy)が既知であり、点Dは境界領域に含まれているとする。この点Dは、HMD82の方向の情報から取得する。境界決定部39は、平均dx、分散1の正規分布にしたがってエネルギー画像を作成する。このとき、正規分布の横軸は水平であるとする。なお、エネルギーの最大値emaxは予め定め、正規分布で得られるエネルギーの最大値がemaxと等しくなるように正規化する。
第2実施形態における図9に示す2つの部分画像を結合する動作は、図13に示す処理動作と同様であるのでここでは詳細な説明を省略する。
このような処理によって、視聴者の視線方向に部分画像の継ぎ目ができることを防止することができるため、視聴品質の低下を抑制した仮想全天球画像を生成することができる。
<第3の実施形態>
次に、本発明の第3の実施形態による画像処理装置を説明する。第3の実施形態では、第1の実施形態と同様に、ブレンディング処理を行うのではなく、結合部(継ぎ目)が部分画像の中心から離れると幾何的整合性が崩れてしまうことを防止するための結合方法である。前述したように、シームカービングによって、単に継ぎ目を求めて結合しただけでは、以下のような問題が生じる。すなわち、結合部が部分画像の中心から離れた位置に生成されてしまうと、画像の幾何的整合性が崩れてしまうという問題である。そこで、本実施形態では、整合性が崩れない位置に結合部を設けるようにする。図15は、中心からの距離で重み付けを行う例を示す図である。本手法の性質上、中心に結合部(継ぎ目)を設定した方が幾何学的に正しい画像となる(図15(A))。
したがって、従来の手法によって結合部(継ぎ目)を設定すると、画像の中心から離れた位置に結合部(継ぎ目)ができてしまう(図15(B))。これに対して、図15(C)のように、新たに第2のエネルギー画像を生成し、この第2のエネルギー画像を加算することで中心から離れた位置にシームを作らないようにする。第2のエネルギー画像は、シームを作りたくない領域(ここでは、中心から離れた位置の領域)のエネルギーが高くなうようにしたエネルギー画像である。
ここで、エネルギー画像の生成方法について説明する。図16は、エネルギー画像の生成方法を示す説明図である。図16に示すようにカメラCiとCi+1で撮影した部分画像中で、仮想視点の位置をそれぞれvi,vi+1とし,vi+1とviの中点をc=(cx,cy)とする。平均cx、分散1の正規分布にしたがってエネルギー画像を作成する。このとき、正規分布の横軸は水平であるとする。なお、エネルギーの最大値emaxは予め定め、正規分布で得られるエネルギーの最大値がemaxと等しくなるように正規化する。
第3実施形態における図9に示す2つの部分画像を結合する動作は、図13に示す処理動作と同様であるのでここでは詳細な説明を省略する。
このような処理によって、部分画像の継ぎ目が画像の中心付近に設定されるようになるため、幾何的整合性が崩れることを防止することができるため、視聴品質の低下を抑制した仮想全天球画像を生成することができる。
<第4の実施形態>
次に、本発明の第4の実施形態による画像処理装置を説明する。第4の実施形態では、第1の実施形態と同様に、ブレンディング処理を行うのではなく、結合部(継ぎ目)が部分画像の中心から離れると幾何的整合性が崩れてしまうことを防止するための結合方法である。前述したように、シームカービングによって、単に継ぎ目を求めて結合しただけでは、以下のような問題が生じる。すなわち、結合部が部分画像の中心から離れた位置に生成されてしまうと、画像の幾何的整合性が崩れてしまうという問題である。そこで、本実施形態では、整合性が崩れない位置に結合部を設けるようにする。図17は、前景の動きの速さに基づいてエネルギーをも求める例を示す図である。本手法の性質上、中心に結合部(継ぎ目)を設定した方が幾何学的に正しい画像となる。
したがって、従来の手法によって結合部(継ぎ目)を設定すると、画像の中心から離れた位置に結合部(継ぎ目)ができてしまう(図17(B))。これに対して、図17(C)のように、新たに第2のエネルギー画像を生成し、この第2のエネルギー画像を加算することで中心から離れた位置にシームを作らないようにする。第2のエネルギー画像は、シームを作りたくない領域(ここでは、ゆっくり動く前景は避け、速く動く前景は避けないようにする)のエネルギーが高くなるようにしたエネルギー画像である。速く動いている前景(例えば、ボール)は二重像や消失が発生しても気づきにくいことを利用している。
ここで、エネルギー画像の生成方法について説明する。ある境界領域に関し、過去s(≧1)フレームの画像から各ピクセルに関してオプティカルフローを算出する。そして、求めたオプティカルフローについて、位置と方向に関してK−meansなどを適用してクラスタリングする。
次に、各クラスタについて、第3の実施形態と同様にクラスタKjに含まれるオプティカルフローの平均をfjとする。このとき、fjの大きさ(|fj|)がしきい値tv以下の場合(すなわちゆっくり動く物体の場合)、前述の処理によって求めた時と同様にエネルギー画像を求める。一方、fjの大きさ(|fj|)がtv以上の場合(すなわち速く動く物体の場合)、このクラスタKjに対するエネルギー画像は求めない。そして、各クラスタで作成したエネルギー画像を足し合わせ、重複領域のエネルギー画像とする。
第4実施形態における図9に示す2つの部分画像を結合する動作は、図13に示す処理動作と同様であるのでここでは詳細な説明を省略する。
このような処理によって、部分画像の継ぎ目が画像の中心付近に設定されるようになるため、幾何的整合性が崩れることを防止することができるため、視聴品質の低下を抑制した仮想全天球画像を生成することができる。特に、ゆっくり動く物体(前景)は避け、速く動く物体(前景)は、避けないようにしたため、視聴品質の低下を抑制した仮想全天球画像を生成することができる。
以上説明したように、2つの部分画像を結合する際に、画像の継ぎ目を視聴者の目に気づかれない位置に設定するようにしたため、視聴品質の低下を抑制した仮想全天球画像を生成することができる。また、2つの部分画像を結合する際に、幾何的整合性が崩れることを防止するようにしたため、同様に視聴品質の低下を抑制した仮想全天球画像を生成することができる。
前述した方法によって2つの部分画像を結合する処理を繰り返すことにより、図18に示すような仮想全天球画像を得ることができるようになる。図18は仮想全天球画像を生成した例を示す図である。図18左は、従来技術による仮想全天球画像の例を示す。図18右は、シームカービングの処理を適用して、結合部(継ぎ目)の位置を最適化したため、質の高い仮想伝天球画像が生成できているのが分かる。
図19は、カメラの入力画像から切り出す部分画像の例を示す説明図である。図19に示すように、左図では、被写体である人が3台のカメラ全てに映っていたため、3重像が発生してしまう。一方、右図のように、シームカービングの処理によって部分画像の領域を大きくすることができるようになるため、1つの部分画像内に被写体である人を収めることができ、3重像が発生することを防止することができる。
前述した実施形態における画像処理装置の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。