以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
また、以下の実施形態では、スタジアムのフィールド(グラウンド)の3次元形状データの生成を例に説明を行うが、本発明の適用はこれに限られない。本発明は、一般的な地形、道路の形状、壁面の形状、絵画の形状、壁画の形状についての3次元情報の取得にも応用することができる。
本実施形態において、3次元形状データは、ほぼ平面である被写体面の3次元形状を表すデータであり、例えば、撮像対象となる撮像空間を一意に示す世界座標空間における3次元空間のx、y、zの位置情報を持った点群で表現されるものである。また、3次元形状データは、点群で表現されるものに限定されず、他のデータ形式で表現されてもよく、例えば、三角形や四角形などの単純な凸多角形(ポリゴンと呼ばれる)の面で構成されるポリゴンメッシュデータやボクセルなどで表現されてもよい。
また、本実施形態における画像は、画像データであって、必ずしもディスプレイ等の表示デバイスで表示させるために生成される、視認可能な画像でなくてもよい。
[実施形態1]
図1は本実施形態における、3次元形状データを生成する生成装置100の構成の一例を示す図である。生成装置100は、CPU(Central Processing Unit)101、メインメモリ102、記憶部103、入力部104、表示部105、外部I/F部106を備え、各部がバス107を介して接続されている。まず、CPU101は、生成装置100を統括的に制御する演算処理装置であり、記憶部103等に格納された各種プログラムを実行して様々な処理を行う。メインメモリ102は、各種処理で用いるデータやパラメータなどを一時的に格納するほか、CPU101に作業領域を提供する。記憶部103は、各種プログラムやGUI(Graphical User Interface)表示に必要な各種データを記憶する大容量記憶装置で、例えばハードディスクやシリコンディスク等の不揮発性メモリが用いられる。
入力部104は、キーボードやマウス、電子ペン、タッチパネル等の装置であり、ユーザからの操作入力を受け付ける。表示部105は、液晶パネルなどで構成され、分析結果のGUI表示などを行う。外部I/F部106は、カメラ群109を構成する各カメラとLAN108を介して接続され、映像データや制御信号データの送受信を行う。バス107は上述の各部を接続し、データ転送を行う。
生成装置100は、LAN108経由でカメラ群109と接続されている。カメラ群109は、生成装置100からの制御信号をもとに、撮影の開始や停止、カメラ設定(シャッタースピード、絞りなど)の変更、撮影した映像データの転送を行う。
なお、生成装置100の構成については、上記以外にも、様々な構成要素が存在するが、本実施形態の主眼ではないので、その説明は省略する。
図2は、カメラ群109を構成する各カメラの配置例を示した図である。ここではスタジアムに10台のカメラを設置した例を示すが、カメラの台数や設置位置はこれに限られない。競技を行うフィールド201上に選手202やボールが存在し、10台のカメラ203a~203jがフィールド201の周りに配置されている。カメラ群109を構成する個々のカメラ203a~203jにおいて、フィールド201全体、或いはフィールド201の注目領域が画角内に収まるように、適切なカメラの向き、焦点距離、露出制御パラメータ等が設定されている。
図3は本実施形態の概要を示す図である。本実施形態では、まずSTEP.1のように、フィールド201に描かれるラインの2次元的な位置や形状を基に、フィールドを複数の領域に分割する。図4には、フィールドに描かれたラインの形状を表す。このラインは、ある方向に延伸し、その方向に垂直な方向に有限の幅を持つパターンのことを指す。ラインの長さや幅は、競技の規格でその大きさが決められている。本実施形態では、ラインのような特定パターン(模様)を基に、領域毎にフィールドの高さを取得するため、このラインを含むように、フィールド201を仮想的に複数の分割領域に分割する。この分割は、カメラで撮影して得られた撮影画像において分割されてもよい。図3(a)においては、6つの分割領域(S1~S6)に分割される例を示す。なお、分割領域は、撮像画像に対して仮想的に設定されてもよいし、後述する投影画像に対して仮想的に設定されてもよい。
この特定パターンであるラインに関する情報(例えば、フィールド上の位置や、延伸方向の長さや延伸方向に垂直な方向の幅などの形状を示す情報)に関しては、事前に入力部104を介して生成装置100に入力される。ただし、撮影画像や、この後のSTEP.2で出力する投影画像から生成装置100が決定するようにしてもよい。本実施形態では、ラインに関する情報を事前に入力されて生成装置100が取得する場合について述べる。
次にSTEP.2のように、被写体面であるフィールドからの距離(高さ)が異なる投影面での投影画像を、カメラの撮影画像に基づき生成する。図3(b)では、分割領域S1については、カメラ1~10のすべてのカメラで撮影している例を示す。この場合、領域S1については、カメラ1により取得された撮影画像をフィールドからの高さが異なる複数の投影面へ投影し、複数の投影画像を生成する。例えば、高さを5cm刻みで、フィールドの中央点の高さを0cmとして、-15cmから+15cmまでの投影面に投影して投影画像を生成する場合、カメラ1により取得された撮影画像からは、7枚の投影画像が生成される。この投影画像を、分割領域S1を撮影しているカメラ1~10の10台から生成すると、分割領域S1で、被写体面の距離毎に、計70(=7×10)枚の投影画像が生成される。また、他の分割領域においても同様に、複数の投影画像が生成される。ただし、例えば、ある分割領域においては、カメラ3によって撮影されていなかった場合は、そのカメラ3以外のカメラの撮影画像から、投影画像を生成するようにする。
また、この投影面の高さは、フィールド上における任意の点を基準としてもよい。例えば、フィールドの中央点を基準点として、このフィールドの基準点を含む平行な平面に平行な面を投影面として設定してもよい。具体的には、その基準点を3次元座標で(0,0,0)として、基準点近傍の被写体面上の領域をxy平面である基準平面として、その基準平面からのz方向の距離を変えて投影面を設定してもよい。
STEP.2によって、フィールドからの高さを変えることにより、図3(b)のカメラ1の複数の投影画像のように、投影画像内のラインの位置が変わる。これは、カメラ1がラインの延伸方向に垂直な方向から分割領域S1を撮影しているからである。そして、撮影画像をフィールドからの高さが異なる投影画像において、撮影画像の画素位置と投影面上の位置との対応関係から、投影面の高さが変わると、延伸方向と垂直な方向に対してそれぞれの投影画像内におけるラインの位置が変わる。
一方、図3(b)のカメラ10の複数の投影画像では、投影画像内のラインの位置は変わらないように見える。これは、カメラ10がラインの延伸方向に平行な方向から分割領域S1を撮影しているからである。この場合は、撮影画像の画素位置と投影面上の位置との対応関係により、投影画像内のラインの位置は、投影面が変わると、延伸方向と平行な方向に変わるため、ラインの位置が変わらないように見える。
なお、STEP.1とSTEP.2の順番は入れ替えてもよい。具体的には、フィールドからの高さ毎に、カメラ203a~203jの投影画像を生成し、その高さ毎の投影画像を領域毎に分割するようにしてもよい。
次に、本実施形態については、STEP.3のように投影画像を、設定領域毎に、及びフィールドからの高さ毎に合成し、合成画像を生成する。図3(b)、(c)に示すように、領域S1において、例えば高さ+15cmにおいて、カメラ1~10のそれぞれの撮影画像から生成された投影画像301Aa~301Ajの10枚の画像が合成されて、合成画像302Aが生成される。他の合成画像(例えば合成画像302D、302G)も同様に生成される。ここで、301Aaの“A”は、高さを表し、同じ“A”であれば、フィールドからの高さが同じであることを表している。また、“a”は、カメラ番号を指し、同じ“a”であれば同じカメラで取得された撮像画像に基づく投影画像であることを意味する。
次に、STEP.4のように、分割領域S1のフィールドからの高さ毎の合成画像302A~302Gの中から、ラインが最も鮮鋭となる合成画像を決定する。そして、決定された合成画像に対応するフィールドからの高さを、分割領域S1におけるフィールドからの高さと決定する。このSTEP.4の処理を設定領域毎に行うことで、各分割領域におけるフィールドからの高さが決定される。なお、画像の鮮鋭度ではなく、他の評価値に基づき、各分割領域におけるフィールドからの高さを決定するようにしてもよい。
最後にSTEP.5のように、決定された各分割領域におけるフィールドからの高さを基に、フィールドの3次元形状データを生成する。以下で、生成装置100が行う処理について詳細に説明する。
図5は、生成装置100の機能構成を示すブロック図である。本実施形態では、生成装置100によりスタジアムのフィールドの3次元形状データを生成する。生成装置100は、画像取得部501、カメラパラメータ取得部502、投影部503、領域設定部504、信頼度算出部505、合成部506、距離決定部507、生成部508、及び特定パターン取得部509を有する。
画像取得部501は、カメラ群109で撮影された複数の撮影画像を取得する。カメラ群109は、図2で示すカメラ203a~203jの10台のカメラで構成される。そして、画像取得部501は、カメラ203a~203jそれぞれから撮影画像を取得する。画像取得部501は、カメラパラメータ取得部502及び投影部503に、撮影画像を出力する。
カメラパラメータ取得部502は、画像取得部501から出力された撮影画像からカメラキャリブレーションを行い、カメラの外部パラメータ、内部パラメータ、歪曲パラメータを含むカメラパラメータを取得する。外部パラメータは、カメラの位置姿勢を表すパラメータであり、回転行列及び位置ベクトル等である。内部パラメータは、カメラ固有のパラメータであり、焦点距離、及び画像中心等である。カメラパラメータ取得部502は、投影部503及び信頼度算出部505に、カメラパラメータを出力する。
投影部503は、画像取得部501から出力された複数の撮影画像と、カメラパラメータ取得部502から出力されたカメラパラメータと、後述する領域設定部504から出力される設定領域を示す情報を基に、投影画像を生成する。投影画像は、撮影画像それぞれを被写体面からの距離が異なる投影面に投影し、設定領域毎及び被写体面からの距離毎に投影画像を生成する。投影部503は、合成部506に、設定領域毎及び被写体面からの距離毎の投影画像を出力する。
特定パターン取得部509は、外部から特定パターンに関する情報を取得する。特定パターンに関する情報は、特定パターンの被写体面上の位置情報、特定パターンの形状を示す情報、被写体面の他の領域と特定パターンとの色差を示す情報などを含む。特定パターンがフィールドに描かれたラインの場合、ラインの延伸方向やその長さ、ラインの延伸方向に垂直な方向の幅がラインの形状を示す情報である。特定パターン取得部509は、特定パターンに関する情報を領域設定部504及び距離決定部507に出力する。
領域設定部504は、特定パターン取得部509から出力された特定パターンに関する情報を基に、被写体面の3次元位置情報を決定するための被写体面上に仮想的に複数の領域を設定する。具体的には、領域設定部504は、特定パターンの少なくとも一部が、複数の設定領域それぞれに含まれるように仮想的に領域を設定する。なお、設定される領域は、ここでは投影画像上で設定する例を示すが、撮像画像で領域を設定してもよい。領域設定部504は、投影部503及び信頼度算出部505に、被写体面の基準点の距離を決定するための複数の設定領域を示す情報を出力する。
信頼度算出部505は、領域設定部504が設定した領域毎、及びカメラ毎(投影画像毎)のカメラ信頼度を算出する。カメラ信頼度は、カメラパラメータ取得部502から出力されたカメラパラメータと、領域設定部504から出力された複数の設定領域を示す情報と、特定パターン取得部509から出力された特定パターンの位置及び形状を示す情報に基づき算出される。カメラ信頼度は、後述する合成部506が投影画像を合成する際に利用される。信頼度算出部505は、合成部506に、カメラ信頼度を出力する。
合成部506は、信頼度算出部505から出力されたカメラ信頼度を基に、被写体面からの距離が同じ投影面における、設定領域毎の投影画像を合成し、合成画像を生成する。このカメラ信頼度は、重み付き平均化処理により合成を行う際に、各投影画像の重みとして利用される。ここでいう重み付き平均化処理とは、複数の投影画像それぞれの対応する画素の画素値どうしを重み付きで平均化して画素値を算出することをいう。合成部506は、設定領域毎及び被写体面からの距離毎の合成画像を、距離決定部507に出力する。
距離決定部507は、合成部506から出力された、設定領域毎及び被写体面からの距離毎の合成画像と、特定パターン取得部509から出力された特定パターンの位置及び形状を示す情報とに基づいて、被写体面からの距離を決定する。具体的には、距離決定部507は、設定領域毎及び被写体面からの距離毎の合成画像において、特定パターンの評価値を計算し、その評価値を基に被写体面からの距離を決定する。例えば、距離決定部507は、評価値として鮮鋭度を用いることができる。この場合、ある設定領域の、被写体面からの距離毎の合成画像において、特定パターンの鮮鋭度が最も高い合成画像に対応する被写体面からの距離を、その設定領域における被写体面からの距離と決定する。距離決定部507は、生成部508に、設定領域毎に決定された被写体面の基準点からの距離を出力する。この距離決定部507により、設定領域の3次元位置情報が決定される。つまり、設定領域のxy座標は領域設定部504に基づく座標であり、距離決定部507が決定した被写体面の基準点からの距離は、z座標に対応する。
生成部508は、距離決定部507から出力された設定領域毎に決定された被写体面の基準点からの距離、つまり、設定領域毎に決定された3次元位置情報を基に、被写体面の3次元形状データを生成する。生成部508は、被写体面の3次元形状データを出力する。
次に、生成装置100で行われる処理について、図6に示すフローチャートを参照して、詳細に説明する。この一連の処理は、CPU101が、所定のプログラムを記憶部103から読み込んでメインメモリ102に展開し、これをCPU101が実行することで実現される。
S601において、キャリブレーション処理により、カメラパラメータを取得する。まず、画像取得部501がLAN108経由でカメラ群109に撮影指示を送る。撮影された画像は、画像取得部501で取得される。カメラ群109は、図2で示すように、撮影方向が異なる複数のカメラ203a~203jで構成されている。カメラパラメータ取得部502が、画像取得部501が取得した画像からカメラ群109の各カメラのパラメータを算出する。カメラパラメータは、カメラの撮影位置が異なる複数の画像を入力とした、カメラキャリブレーション処理によって算出する。以下、簡単なカメラキャリブレーションの手順の例を示す。
第一に、スクエアグリッド等の平面パターンを多視点から撮影する。第二に、撮影画像の特徴点を検出し、画像座標系において特徴点の座標を求める。ここで、スクエアグリッドの特徴点とは、直線の交点のことである。第三に、算出した特徴点座標を用いてカメラの内部パラメータの初期値を算出する。ここでカメラの内部パラメータとは焦点距離や、主点と呼ばれる光学的中心を表すパラメータである。また、カメラの内部パラメータの初期値は必ずしも、画像中の特徴点から算出する必要はなく、カメラの設計値を用いてもよい。第四に、バンドル調整と呼ばれる非線形最適化処理によって、カメラの内部パラメータ、外部パラメータ、歪曲収差係数を算出する。ここでカメラの外部パラメータとは、カメラの位置、視線方向、視線方向を軸とする回転角を表すパラメータのことである。また、歪曲収差係数とは、レンズの屈折率の違いによって生じる半径方向の画像の歪みや、レンズとイメージプレーンが平行にならないことによって生じる円周方向の歪みを表す係数のことである。カメラキャリブレーションの手法は他にも多く存在するが、本実施形態の主眼でないため詳細は省略する。
S602において、画像取得部501がカメラ群109に対してフィールドを撮影するように撮影指示を送る。カメラ群109を構成する撮影方向が異なる複数のカメラ203a~203jが被写体面を撮影して取得した撮影画像を画像取得部501が受け取る。
S603において、特定パターン取得部509は、特定パターンに関する情報を取得する。具体的には、特定パターン取得部509は、特定パターンであるラインの形状やそのラインの被写体面上の位置を含む情報を、S602で取得した撮影画像に基づき、抽出する。
S604において、S603で取得された特定パターンに関する情報に基づいて、領域設定部504が被写体面について、距離を決定するための複数の所定の領域を設定する。具体的には、領域設定部504は、各設定領域に特定パターンの少なくとも一部が含まれるように領域を設定する。また、領域設定部504は、特定パターンである1つのラインを均等に分割するように領域を分割してもよい。分割する場合は、投影面の高さが変化した際に、ラインが一つの領域に含まれるように領域幅を決定するようにするのが好ましい。複数の設定領域により被写体面がすべて覆われるように設定領域が設定されればよい。つまり、より密に高さを算出するために、設定領域が重なるように設定してもよい。また、設定領域は、被写体面を重複なく分割するように設定されてもよい。設定された領域は、互いに同じ大きさや同じ形状でなくてもよく、特定パターンであるラインを含むのであれば領域の大きさや形状が異なっていてもよい。
S605において、投影部503が、S601で取得したカメラパラメータを基に、S604で設定された複数の設定領域毎に、複数の撮影画像を用いて、被写体面からの距離が異なる複数の投影面に投影した投影画像を生成する。なお、投影部503は、撮像画像を異なる投影面に投影して投影画像を生成した後、その投影画像に対して設定領域に対応する投影画像を抽出してもよい。また、投影部503は、撮像画像から設定領域毎で画像を抽出した後、その画像を投影面に投影して設定領域に対応する投影画像を生成するようにしてもよい。
また、カメラキャリブレーションを行う際、図2のフィールド201を高さがおおよそ0mとなる平面の基準とし、フィールドの直軸方向をx軸、短軸方向をy軸、フィールドの鉛直方向をz軸と設定し、原点をフィールド中心に設定する。投影面は、被写体面であるフィールドに水平な面である。投影面に投影する水平方向の範囲に関して、フィールド全体を網羅できるように、ラインの位置や形状を示す情報を用いて決定する。例えば、図4のラインの形状に基づくと、縦80m、横120mの範囲に対して投影を行う。もちろん、実際のフィールドとラインの形状との誤差を考慮して、数%の余剰を持たして投影を行ってもよい。
フィールド全体の高さを算出できるように、高さの異なる複数の投影面に対して行うが、投影する高さの範囲に関して、競技場のフィールド勾配に関する規格に合わせて決定する。例えば、フィールド規格として、フィールド中心に対して、フィールドの端までの勾配が0.3%までなどの規格があるとする。この場合、フィールドの原点からフィールド端までの距離が40mであれば、許容される高さの変動は、12cmまでとなる。そのため、投影する高さの範囲は、これを網羅するように、-15cm~+15cmなどに設定する。この範囲の中で、高さの刻みは任意に設定することが可能である。この刻みの数、つまり投影面の数を多くすれば、精度の高い3次元形状データが得られる。
投影画像を生成する際に、まずカメラの内部パラメータと歪みパラメータに合わせて各カメラの撮影画像の歪み補正を行う。画像の歪み補正に用いるパラメータはS601で算出した内部パラメータ、及び歪曲パラメータである。
次に、投影画像の座標と撮像画像の座標との変換行列を算出する。投影面が存在するワールド座標系からカメラ座標系への変換行列をVと定義する。ここでカメラ座標系とは、座標系の原点を始点とし、x軸、y軸をそれぞれ画像の水平方向、垂直方向とし、z軸をカメラの視線方向になるように設定する。さらに、カメラ座標系からスクリーン座標系への変換行列をPと定義する。これはカメラ座標系に対して存在する3次元座標を有する被写体面を2次元平面上に対して射影する変換行列である。すなわち投影画像上の点Xの同次座標(x、y、z、w)の撮影画像上の点Uの同次座標(x’、y’、z’、w’)に射影する式(1)は、以下のとおりである。
ここで、並進変換を加えるため、座標w及びw’を追加し、4次元座標とした。この式(1)を用いて、各カメラの撮像画像をそれぞれ、異なる高さzの投影面に対して、投影して、投影画像を生成する。具体的には、撮像画像の各座標の画素値を、撮像画像の座標それぞれに対応する投影画像の座標の画素値とすることで投影画像が生成される。
S606において、信頼度算出部505は、S604で設定された設定領域毎に、S601で取得されたカメラパラメータと、S603で取得された特定パターンから、カメラ信頼度を算出する。ここでカメラ信頼度とは、設定領域毎に被写体面の距離を決定する際に、各カメラから取得された撮影画像が、どの程度距離の決定に有用かを示す指標となる。簡単な例を図7に示す。
図7は、カメラ4台(701~704)でフィールドを撮影している模式図である。ここでは、フィールド中央に設定された矩形領域705の高さを求めるものとする。矩形領域705の高さが変化したとき、ラインの延伸方向に対して垂直な視線ベクトル(光軸)を持つカメラ701、703の撮影画像から投影画像を生成した場合、各投影画像におけるラインの位置が大きく変化する。一方、ラインの延伸方向に対して平行な視線ベクトル(光軸)を持つカメラ702、704の撮影画像から投影面の高さを変えて投影画像を生成した場合、各投影画像におけるラインの位置はほとんど変化しない。
本実施形態では、後述するように、設定領域毎に及びフィールド面からの高さ毎に、各カメラの投影画像を合成して合成画像を生成する。その合成画像において、ラインのずれやボケ度合いといった評価値を算出するため、合成画像にそのような特徴が表れやすい画像を選択的に用いる、もしくは重みづけをしてから合成するなどの処理を行うことが望ましい。その画像の選択や合成の際の重みの算出のために、カメラ信頼度を定義する。
従って、図8に示すように、ライン801に対してカメラ802が設置されているとき、ラインの中心に対するカメラの位置を水平角φ、仰角θで定義すると、例えばカメラ信頼度ωは、式(2)で表される。
これは、カメラの視線ベクトルがラインの向きに対して垂直に近く、かつ仰角θが小さいカメラの方が、カメラ信頼度が高くなることを表す。つまり、矩形領域705の高さを決定する際には、図7で示す、カメラ701、703のカメラ信頼度が高くなる。式(2)から明らかなように、設定領域毎に、各カメラのカメラ信頼度は変わるため、設定領域毎、及びカメラ毎にカメラ信頼度を算出する。また、カメラ信頼度は、被写体面からの距離、つまり被写体面の3次元位置情報を決定するために各カメラと対応する撮影画像又は投影画像がどれくらい有用か否かを示す信頼度であると言える。また、カメラ信頼度は、設定領域毎に被写体面の基準点からの距離、つまり被写体面の3次元位置情報を決定するための指標であり、設定領域毎の、各撮影画像又は各投影画像の距離決定時の有用性の度合いを示す指標である。
式(2)からわかるように、特定パターンがラインのようなものであれば、ラインの延伸方向と、カメラの光軸をラインの延伸方向の面内に射影したときの直線方向とのなす角度(90°-φ)が大きいカメラほど、カメラ信頼度が大きくなる。また、仰角θが小さいカメラほどカメラ信頼度が大きくなる。
カメラ信頼度の決定方法は、上記の方法に限られない。カメラからラインまでの物理的な距離d、焦点距離f、画素数pなどによって、ラインを明瞭にカメラで撮影できているかどうかに違いが出るため、それらのパラメータに応じてカメラの信頼度を大きくしてもよい。また、明瞭にラインを撮影できているカメラかつ、水平角、仰角が小さいカメラの信頼度を大きくするなどを組み合わせてカメラ信頼度ωを算出してもよい。この組み合わせによるカメラ信頼度ωは、式(3)のとおりである。ここでα、βは重みパラメータである。
また、カメラ信頼度が所定の閾値より低いカメラ信頼度を0とするなどの、閾値処理を行ってもよい。
S607において、合成部506が、S606で取得したカメラ信頼度を基に、S605で取得した複数の投影画像を、設定領域毎に、同じ投影面の複数の投影画像を合成する。具体的にはまず、各カメラで撮影できている領域は異なるため、設定領域を各カメラが撮影できているかどうかを判定する。具体的には、設定領域毎の投影画像において、各領域の全ての画素に撮影画像を投影した画素値が存在すれば、その設定領域を該当のカメラで撮影できているとする。この判定は、S604において、領域設定部504が行うようにしてもよいし、S605で投影部503が行うようにしてもよい。
次に、設定領域毎に、撮影できている複数のカメラのそれぞれの投影画像を用いて、投影面毎に投影画像を合成する。具体的には、S606で算出した、設定領域毎のカメラ信頼度ωに基づいた重み付きの平均化処理を行い、合成画像を生成する。すなわち、投影画像をrgb画像として、投影面の高さhにおける各設定領域Bjの合成画像は式(4)で表される。なお、カメラ番号をkとする。
S606の処理で述べたように、必ずしもカメラ信頼度を全て用いて重み付き平均画像を生成しなくてもよい。例えば、カメラ信頼度が所定の閾値以下のカメラに対応する投影画像を用いない、もしくは所定の閾値以上のカメラに対応する投影画像だけを用いて平均化処理を行い、合成画像を生成するようにしてもよい。また、カメラ信頼度を用いて平均化処理を行って合成画像を生成しなくても、投影画像の対応する画素どうしの画素値の単純な平均化値や中間値を用いて、合成画像を生成してもよい。
S607において、距離決定部507は、S607にて合成された、設定領域毎及び投影面毎の合成画像に基づいて、設定領域毎の被写体面の基準点からの距離、つまり、設定領域毎の3次元位置情報を決定する。被写体面の基準点からの距離を決定する際は、合成画像の設定領域毎の特定パターンの評価値を評価する。評価値とは、具体的には、以下では鮮鋭度を用いて説明するが、これに限られない。
ある設定領域における、被写体面の基準点からの距離(高さ)毎の合成画像の例を図9に示す。具体的には、図9では、被写体面に対して-15cm~+15cmまで、0.5cm刻みで高さを変えて投影面を設定し、それぞれの高さで合成画像が生成された例を示している。図9に示すように、この合成画像のうち、適切な高さ(0cm)における合成画像では、ラインが鮮明に見える。これは、合成に使用された複数の投影画像それぞれに含まれるラインの位置がほぼ同じ位置で重なるからである。位置が重なるということは、実際のラインの高さがその投影面にあることを意味する。一方、それ以外の高さにおける合成画像では、合成に使用された複数の投影画像それぞれに含まれるラインの位置はずれるため、ラインがぼやけてしまっている。
このため、ラインの鮮鋭度を評価することで、ラインの実際の高さを決定することができる。画像の鮮鋭度を評価するため、例えばラプラシアンフィルタL等のフィルタを使用する。高さhにおける、ある設定領域Bjの合成画像の鮮鋭度Sj,hは式(5)で表される。
なお、画像の鮮鋭度を評価するフィルタは、ラプラシアンフィルタに限定されず、一次微分フィルタ、Prewittフィルタ、Sobelフィルタ等を用いてもよい。また、平滑化フィルタをかけた合成画像とフィルタをかけない元の合成画像との差分を算出して、差分が大きくなるような高さの合成画像を、設定領域の適切な高さとして決定するようにしもよい。
鮮鋭度を評価した後、高さを決定する方法もいくつか存在する。例えば、鮮鋭度が最大となるような高さHjを、設定領域Bjの適切な高さとして決定する(式(6)参照)。
適切な高さが正しく算出できているかどうかの指標として、例えば、高さを変化させた時に鮮鋭度が滑らかに変化しているかどうかを判定するようにしてもよい。具体的には、鮮鋭度が最大となる高さの周辺で、鮮鋭度が滑らかに変化しているか否かについて式(7)を用いて判定する。ここで投影画像を生成している高さ幅(刻み)をaとする。式(7)を満たしていれば。その高さを設定領域Bjの適切な高さであると判断し、満たしていなければ、その次に鮮鋭度が大きい合成画像に対応する高さについて同様の判定を行う。
また、最大の鮮鋭度に近い鮮鋭度が複数算出されたときに、それらの鮮鋭度に対応する投影面の高さを平均して、設定領域の適切な高さとして算出してもよい。
さらに、隣接する設定領域との高さの連続性を拘束条件としてもよい。被写体面の高さは滑らかに変化するため、隣接する設定領域との高さの差は小さくなるはずである。この拘束条件と上記の鮮鋭度を組み合わせて、領域Bjにおける高さhjの尤度Mj,hは、式(8)で算出できる。ここで、α、βは重みパラメータである。そして、この尤度が最も大きくなる高さを設定領域の最適な高さと決定するようにしてもよい。
式(8)の右辺第1項は、被写体面からの距離の連続性を示す、隣り合う2つの設定領域の被写体面からの距離の変化を示す指標である。
このようにして、合成画像を用いて、各設定領域における適切な高さが決定される。また、距離決定部507は、領域設定部504で設定された、設定領域が互いに重複する部分を含む設定領域においては、まず、それぞれの設定領域の頂点の被写体面の基準点からの距離を、上記の方法で決定する。そして、距離決定部507は、それぞれの設定領域の頂点の被写体面の基準点からの距離の中間値や平均値を、重複部分の頂点における被写体面の基準点からの距離と決定するようにしてもよい。
S609において、生成部508が、S608で決定された各設定領域の高さに合わせて、被写体面の3次元形状データを生成する。具体的には、設定領域の幾何学的中心位置に頂点が存在するとして、その頂点座標をS608で決定された高さに合わせて変更する。この場合、信頼度の低いカメラしか高さ算出に用いられていない領域については、3次元形状データを生成する際の頂点として用いないなどの処理を行ってもよい。また、ライン上以外の領域については、ライン部分の頂点座標を用いて頂点座標を生成できる。例えば、ライン上ではない領域の頂点vの高さvzは、その頂点の近傍領域Ωに存在する頂点v’との距離に関する重み付き平均で算出することができる(式(9)、式(10)、式(11)参照)。
3次元形状データの表現方法は、算出した頂点だけを用いて、点群として形状を表現してもよい。この場合、撮像空間を一意に示す世界座標空間における3次元空間のx、y、zの位置情報を持った点群で表現される。また、3次元形状データは、設定領域の幾何学的な中心位置を結ぶ面を生成して、複数の面の集合としてポリゴンメッシュデータとして表現されてもよい。また、3次元形状データは、ボクセルで表現されてもよい。
以上のように、本実施形態では、領域設定部504において、特定パターン(模様)の少なくとも一部を含むように、3次元位置情報を決定する領域を設定し、特定パターン(模様)を利用して被写体面の3次元位置情報を決定している。そのため、精度よく3次元形状データを生成することができる。
本実施形態における模様は、フィールドに描かれたラインを例に説明したが、これに限られない。例えば模様は、図形、標識、絵画などを含んでもよい。また、模様は、人工的な作られた模様でもいいし、自然にできた模様でもよい。また、模様は、被写体面において、模様とは異なる他の領域の色とは、異なる色であることが望ましい。
[実施形態2]
実施形態1では投影画像を合成した後に、設定領域毎の高さを決定した。本実施形態では、投影画像を合成せずに、設定領域毎の高さを決定する形態について説明する。図10は、本実施形態に係る生成装置1000の機能構成を示すブロック図である。また、図11は、生成装置1000で行われる処理のフローチャートである。図10、11において、実施形態1と同じ構成については、同じ符号を付す。
生成装置1000は、画像取得部501、カメラパラメータ取得部502、投影部503、領域設定部504、信頼度算出部1001、合成部506、距離決定部1002、生成部508、及び特定パターン取得部509を有する。実施形態1の信頼度算出部505は、合成部506にカメラ信頼度を出力していたが、本実施形態の信頼度算出部1001は、距離決定部1002にカメラ信頼度を出力する点のみが異なる。
図11において、カメラ信頼度を算出するまでの処理(S601~S606)及び、3次元形状データを生成する処理(S609)は、実施形態1と同様であるため、説明を省略する。以下ではS1101の処理について具体的に説明する。
S1101において、距離決定部1002は、S605で算出されたカメラ信頼度と、S605で取得された設定領域毎及び被写体面からの距離毎の投影画像から、適切な距離を決定する。まずは実施形態1で述べたように、各カメラで撮影できている領域は異なるため、設定領域を各カメラが撮影できているかどうかを判定する。
次に、設定領域に存在するラインを検出する。ラインは、芝生や地面の上に、所定の規格で明瞭に描かれているため、色検出や輝度が大きい領域を抽出する処理によって容易に抽出可能である。投影面の高さを変更した場合、カメラ信頼度が高いカメラに対応する投影画像間では、ラインの位置が大きく変化する。しかし、適切な投影面の高さに投影した場合、どのカメラに対応する投影画像であってもラインの位置もほぼ一致する。すなわち高さhについて、カメラiの投影画像の任意の領域Bi,j,hのラインの存在領域Wi,jの積集合が最大になるような投影面の高さHを、設定領域の最適な高さと決定することができる(式(12)参照)。なお、設定領域の適切な高さを決定する方法は、この方法に限られない。例えば、ラインの存在領域の和集合が最小となるような高さを算出してもよい(式(13)参照)。なお、ラインの存在領域とは、投影画像内のラインが描画される領域のことである。
また隣接する設定領域の連続性を拘束条件とする場合、カメラ信頼度が高い投影画像のラインの存在領域の連続性を考慮すればよい。例えば、領域の一部重複するように領域分割されている場合、隣接するラインの存在領域の積集合が最大となる高さを採用するような拘束条件を加えればよい。
[実施形態3]
以下では、本実施形態の仮想視点画像を生成する画像処理システムについて説明する。上述した実施形態で生成されたフィールドの3次元形状データは、仮想視点画像を生成する際に利用される。
競技場(スタジアム)やコンサートホールなどの施設に複数のカメラ及びマイクを設置し撮影及び集音を行うシステムについて、図12のシステム構成図を用いて説明する。画像処理システム1200は、センサシステム1210a~1210j、画像コンピューティングサーバ1300、コントローラ1400、スイッチングハブ1280、及びエンドユーザ端末1290を有する。
コントローラ1400は、制御ステーション1410と仮想カメラ操作UI1430を有する。制御ステーション1410は、画像処理システム1200を構成するそれぞれのブロックに対してネットワーク1410a~1410c、1391、1280a、1280b、及び1270a~1270iを通じて動作状態の管理及びパラメータ設定制御などを行う。ここで、ネットワークはEthernet(登録商標、以下省略)であるIEEE標準準拠のGbE(ギガビットイーサーネット)や10GbEでもよいし、インターコネクトInfiniband、産業用イーサーネット等を組合せて構成されてもよい。また、これらに限定されず、他の種別のネットワークであってもよい。
最初に、センサシステム1210a~1210jの10セットの画像及び音声をセンサシステム1210jから画像コンピューティングサーバ1300へ送信する動作を説明する。本実施形態の画像処理システム1200は、センサシステム1210a~1210jがデイジーチェーンにより接続される。
本実施形態において、特別な説明がない場合は、センサシステム1210a~1210jまでの10セットのシステムを区別せずセンサシステム1210と記載する。各センサシステム1210内の装置についても同様に、特別な説明がない場合は区別せず、マイク1211、カメラ1212、雲台1213、外部センサ1214、及びカメラアダプタ1220と記載する。なお、センサシステムの台数として6セットと記載しているが、あくまでも一例であり、台数をこれに限定するものではない。撮像システムのカメラ1212a~1212jそれぞれは、異なるカメラの対称位置以外の位置に配置されている。
また、複数のセンサシステム1210は同一の構成でなくてもよく、例えばそれぞれが異なる機種の装置で構成されていてもよい。なお、本実施形態では、特に断りがない限り、画像という文言が、動画と静止画の概念を含むものとして説明する。すなわち、本実施形態の画像処理システム1200は、静止画及び動画の何れについても処理可能である。また、本実施形態では、画像処理システム1200により提供される仮想視点コンテンツには、仮想視点画像と仮想聴収点音響が含まれる例を中心に説明するが、これに限らない。例えば、仮想視点コンテンツに音声が含まれていなくてもよい。また例えば、仮想視点コンテンツに含まれる音声が、仮想視点に最も近いマイクにより集音された音響であってもよい。また、本実施形態では、説明の簡略化のため、部分的に音声についての記載を省略しているが、基本的に画像と音声は共に処理されるものとする。
センサシステム1210a~1210jは、それぞれ1台ずつのカメラ1212a~1212jを有する。すなわち、画像処理システム1200は、被写体を複数の方向から撮影するための複数のカメラ1212を有する。なお、複数のカメラ1212は同一符号を用いて説明するが、性能や機種が異なっていてもよい。複数のセンサシステム1210同士はデイジーチェーンにより接続される。この接続形態により、撮影画像の4Kや8Kなどへの高解像度化及び高フレームレート化に伴う画像データの大容量化において、接続ケーブル数の削減や配線作業の省力化ができる効果があることをここに明記しておく。
なおこれに限らず、接続形態として、各センサシステム1210a~1210jがスイッチングハブ1280に接続されて、スイッチングハブ1280を経由してセンサシステム1210間のデータ送受信を行うスター型のネットワーク構成としてもよい。
また、図12では、デイジーチェーンとなるようセンサシステム1210a~1210jの全てがカスケード接続されている構成を示したがこれに限定するものではない。例えば、複数のセンサシステム1210をいくつかのグループに分割して、分割したグループ単位でセンサシステム1210間をデイジーチェーン接続してもよい。そして、分割単位の終端となるカメラアダプタ1220がスイッチングハブに接続されて画像コンピューティングサーバ1300へ画像の入力を行うようにしてもよい。このような構成は、スタジアムにおいて特に有効である。例えば、スタジアムが複数階で構成され、フロア毎にセンサシステム1210を配備する場合が考えられる。この場合、フロア毎、又はスタジアムの半周毎に画像コンピューティングサーバ1300への入力を行うことができ、全センサシステム1210を1つのデイジーチェーンで接続する配線が困難な場所でも設置の簡便化及びシステムの柔軟化を図ることができる。
また、デイジーチェーン接続されて画像コンピューティングサーバ1300へ画像入力を行うカメラアダプタ1220が1つであるか2つ以上であるかに応じて、画像コンピューティングサーバ1300での画像処理の制御が切り替えられる。すなわち、センサシステム1210が複数のグループに分割されているかどうかに応じて制御が切り替えられる。画像入力を行うカメラアダプタ1220が1つの場合は、デイジーチェーン接続で画像伝送を行いながら競技場全周画像が生成されるため、画像コンピューティングサーバ1300において全周の画像データが揃うタイミングは同期がとられている。すなわち、センサシステム1210がグループに分割されていなければ、同期はとれる。
しかし、画像入力を行うカメラアダプタ1220が複数になる場合は、画像が撮影されてから画像コンピューティングサーバ1300に入力されるまでの遅延がデイジーチェーンのレーン(経路)毎に異なる場合が考えられる。すなわち、センサシステム1210がグループに分割される場合は、画像コンピューティングサーバ1300に全周の画像データが入力されるタイミングは同期がとられないことがある。そのため、画像コンピューティングサーバ1300において、全周の画像データが揃うまで待って同期をとる同期制御によって、画像データの集結をチェックしながら後段の画像処理を行う必要があることを明記しておく。
本実施形態では、センサシステム1210aはマイク1211a、カメラ1212a、雲台1213a、外部センサ1214a、及びカメラアダプタ1220aを有する。なお、この構成に限定するものではなく、少なくとも1台のカメラアダプタ1220aと、1台のカメラ1212aまたは1台のマイク1211aを有していればよい。また例えば、センサシステム1210aは1台のカメラアダプタ1220aと、複数のカメラ1212aで構成されてもよいし、1台のカメラ1212aと複数のカメラアダプタ1220aで構成されてもよい。すなわち、画像処理システム1200内の複数のカメラ1212と複数のカメラアダプタ1220はN対M(NとMは共に1以上の整数)で対応する。また、センサシステム1210は、マイク1211a、カメラ1212a、雲台1213a、及びカメラアダプタ1220a以外の装置を含んでいてもよい。さらに、カメラアダプタ1220の機能の少なくとも一部をフロントエンドサーバ1330が有していてもよい。本実施形態では、センサシステム1210b~1210jについては、センサシステム1210aと同様の構成なので省略する。なお、センサシステム1210aと同じ構成に限定されるものではなく、其々のセンサシステム1210が異なる構成でもよい。
マイク1211aにて集音された音声と、カメラ1212aにて撮影された画像は、カメラアダプタ1220aにおいて、様々な処理などが施された後、デイジーチェーン1270aを通してセンサシステム1210bのカメラアダプタ1220bに伝送される。同様にセンサシステム1210bは、集音された音声と撮影された画像を、センサシステム1210aから取得した画像及び音声と合わせてセンサシステム1210cに伝送する。
カメラアダプタ1220は、カメラ1212が撮影した画像データ及び他のカメラアダプタ1220から受取った画像データに対して、前景背景分離処理、前景3次元形状データ情報生成処理、動的キャリブレーションなどの処理を行う。カメラアダプタ1220により、撮像画像に対する前景背景分離処理に基づき、動的オブジェクトのシルエット画像が生成される。また、他のカメラアダプタ1220から受け取った複数のシルエット画像に基づき、視体積交差法などにより、動的オブジェクトに対応する3次元形状データを生成する。後述する画像コンピューティングサーバ1300により複数の3次元形状データが統合される。なお、カメラアダプタ1220では、動的オブジェクトに対応する3次元形状データを生成せずに、画像コンピューティングサーバ1300により、一括で複数の動的オブジェクトに対応する3次元形状データを生成するようにしてもよい。なお、ここでいう3次元形状データは、上述した実施形態1,2で生成される3次元形状データとは異なり、動的オブジェクトに対応する3次元形状データである。動的オブジェクトとは、時系列で同じ方向から撮影を行った場合において動きのある(その絶対位置が変化し得る)オブジェクト、つまり、動体を指す。動的オブジェクトは、例えば、人物や球技におけるボールを指す。
前述した動作を続けることにより、センサシステム1210a~1210jが取得した画像及び音声は、センサシステム1210jから1280bを用いてスイッチングハブ1280に伝わり、その後、画像コンピューティングサーバ1300へ伝送される。
なお、本実施形態では、カメラ1212a~1212jとカメラアダプタ1220a~1220jが分離された構成にしているが、同一筺体で一体化されていてもよい。その場合、マイク1211a~1211jは一体化されたカメラ1212に内蔵されてもよいし、カメラ1212の外部に接続されていてもよい。
次に、画像コンピューティングサーバ1300の構成及び動作について説明する。本実施形態の画像コンピューティングサーバ1300は、センサシステム1210jから取得したデータの処理を行う。画像コンピューティングサーバ1300はフロントエンドサーバ1330、データベース1350(以下、DBとも記載する。)、バックエンドサーバ1370、タイムサーバ1390を有する。なお、実施形態1,2で生成される被写体面であるフィールドに対応する3次元形状データは、このDB1350に予め格納されている。
タイムサーバ1390は時刻及び同期信号を配信する機能を有し、スイッチングハブ1280を介してセンサシステム1210a~1210jに時刻及び同期信号を配信する。時刻と同期信号を受信したカメラアダプタ1220a~1220jは、カメラ1212a~1212jを時刻と同期信号をもとにGenlockさせ画像フレーム同期を行う。すなわち、タイムサーバ1390は、複数のカメラ1212の撮影タイミングを同期させる。これにより、画像処理システム1200は同じタイミングで撮影された複数の撮影画像に基づいて仮想視点画像を生成できるため、撮影タイミングのずれによる仮想視点画像の品質低下を抑制できる。なお、本実施形態ではタイムサーバ1390が複数のカメラ1212の時刻同期を管理するものとするが、これに限らず、時刻同期のための処理を各カメラ1212又は各カメラアダプタ1220が独立して行ってもよい。
フロントエンドサーバ1330は、センサシステム1210jから取得した画像及び音声から、セグメント化された伝送パケットを再構成してデータ形式を変換した後に、カメラの識別子やデータ種別、フレーム番号に応じてDB1350に書き込む。
次に、バックエンドサーバ1370では、仮想カメラ操作UI1430から視点の指定を受け付け、受け付けられた視点に基づいて、DB1350から対応する画像及び音声データ等のデータを読み出し、レンダリング処理を行って仮想視点画像を生成する。この読みだされるデータとしては、スタジアムに対応する3次元形状データや、フィールドに対応する3次元形状データなども含まれる。
なお、画像コンピューティングサーバ1300の構成はこれに限らない。例えば、フロントエンドサーバ1330、データベース1350、及びバックエンドサーバ1370のうち少なくとも2つが一体となって構成されていてもよい。また、フロントエンドサーバ1330、データベース1350、及びバックエンドサーバ1370の少なくとも何れかが複数含まれていてもよい。また、画像コンピューティングサーバ1300内の任意の位置に上記の装置以外の装置が含まれていてもよい。さらに、画像コンピューティングサーバ1300の機能の少なくとも一部をエンドユーザ端末1290や仮想カメラ操作UI1430が有していてもよい。
レンダリング処理された画像は、バックエンドサーバ1370からエンドユーザ端末1290に送信され、エンドユーザ端末1290を操作するユーザは視点の指定に応じた画像閲覧及び音声視聴ができる。すなわち、バックエンドサーバ1370は、複数のカメラ1212により撮影された撮影画像(複数視点画像)と視点情報とに基づく仮想視点コンテンツを生成する。より具体的には、バックエンドサーバ1370は、例えば複数のカメラアダプタ1220により複数のカメラ1212による撮影画像から抽出された所定領域の画像データと、ユーザ操作により指定された視点に基づいて、仮想視点コンテンツを生成する。そしてバックエンドサーバ1370は、生成した仮想視点コンテンツをエンドユーザ端末1290に提供する。なお、本実施形態において仮想視点コンテンツは画像コンピューティングサーバ1300により生成されるものであり、特にバックエンドサーバ1370により生成される場合を中心に説明する。ただしこれに限らず、仮想視点コンテンツは、画像コンピューティングサーバ1300に含まれるバックエンドサーバ1370以外の装置により生成されてもよいし、コントローラ1400やエンドユーザ端末1290により生成されてもよい。
本実施形態における仮想視点コンテンツは、仮想的な視点から被写体を撮影した場合に得られる画像としての仮想視点画像を含むコンテンツである。言い換えると、仮想視点画像は、指定された視点における見えを表す画像であるとも言える。仮想的な視点(仮想視点)は、ユーザにより指定されてもよいし、画像解析の結果等に基づいて自動的に指定されてもよい。すなわち仮想視点画像には、ユーザが任意に指定した視点に対応する任意視点画像(自由視点画像)が含まれる。また、複数の候補からユーザが指定した視点に対応する画像や、装置が自動で指定した視点に対応する画像も、仮想視点画像に含まれる。
なお、本実施形態では、仮想視点コンテンツに音声データ(オーディオデータ)が含まれる場合の例を中心に説明するが、必ずしも音声データが含まれていなくてもよい。また、バックエンドサーバ1370は、仮想視点画像を例えばH.264やHEVCなどの符号化方式に従って圧縮符号化したうえで、MPEG-DASHプロトコルを使ってエンドユーザ端末1290へ送信してもよい。また、仮想視点画像は、非圧縮でエンドユーザ端末1290へ送信されてもよい。とくに圧縮符号化を行う前者はエンドユーザ端末1290としてスマートフォンやタブレットを想定しており、後者は非圧縮画像を表示可能なディスプレイを想定している。すなわち、エンドユーザ端末1290の種別に応じて画像フォーマットが切り替え可能であることを明記しておく。また、画像の送信プロトコルはMPEG-DASHに限らず、例えば、HLS(HTTP Live Streaming)やその他の送信方法を用いてもよい。
このように、画像処理システム1200は、映像収集ドメイン、データ保存ドメイン、及び映像生成ドメインという3つの機能ドメインを有する。映像収集ドメインはセンサシステム1210~1210jを含む。また、データ保存ドメインはデータベース1350、フロントエンドサーバ1330及びバックエンドサーバ1370を含む。また、映像生成ドメインは仮想カメラ操作UI1430及びエンドユーザ端末1290を含む。なお本構成に限らず、例えば、仮想カメラ操作UI1430が直接センサシステム1210a~1210jから画像を取得する事も可能である。しかしながら、本実施形態では、センサシステム1210a~1210jから直接画像を取得する方法ではなくデータ保存機能を中間に配置する方法をとる。具体的には、フロントエンドサーバ1330がセンサシステム1210a~1210jが生成した画像データや音声データ及びそれらのデータのメタ情報をデータベース1350の共通スキーマ及びデータ型に変換している。これにより、センサシステム1210a~1210jのカメラ1212が他機種のカメラに変化しても、変化した差分をフロントエンドサーバ1330が吸収し、データベース1350に登録することができる。このことによって、カメラ1212が他機種カメラに変わった場合に、仮想カメラ操作UI1430が適切に動作しないおそれを低減できる。
また、仮想カメラ操作UI1430は、直接データベース1350にアクセスせずにバックエンドサーバ1370を介してアクセスする構成である。バックエンドサーバ1370で画像生成処理に係わる共通処理を行い、操作UIに係わるアプリケーションの差分部分を仮想カメラ操作UI1430で行っている。このことにより、仮想カメラ操作UI1430の開発において、UI操作デバイスや、生成したい仮想視点画像を操作するUIの機能要求に対する開発に注力する事ができる。また、バックエンドサーバ1370は、仮想カメラ操作UI1430の要求に応じて画像生成処理に係わる共通処理を追加又は削除する事も可能である。このことによって仮想カメラ操作UI1430の要求に柔軟に対応する事ができる。
このように、画像処理システム1200においては、被写体を複数の方向から撮影するための複数のカメラ1212による撮影に基づく画像データに基づいて、バックエンドサーバ1370により仮想視点画像が生成される。なお、本実施形態における画像処理システム1200は、上記で説明した物理的な構成に限定される訳ではなく、論理的に構成されていてもよい。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。