以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施の形態1>
競技場(スタジアム)やコンサートホールなどの施設に複数のカメラ及びマイクを設置し撮影及び集音を行うシステムについて、図1を用いて説明する。
<画像処理システム100の説明>
図1は、画像処理システム100の一例を示す構成図である。画像処理システム100は、センサシステム110a,...,110zと、画像コンピューティングサーバ200と、コントローラ300と、スイッチングハブ180と、エンドユーザ端末190とを含む。
コントローラ300は、制御ステーション310と、仮想カメラ操作UI330とを含む。制御ステーション310は、画像処理システム100を構成するそれぞれのブロックに対して、ネットワーク310a−310d、180a、180b、及び170a,...,170yを通じて動作状態の管理及びパラメータ設定制御などを行う。
<センサシステム110の説明>
最初に、センサシステム110a,...,センサシステム110zの26セットの画像及び音声をセンサシステム110zから画像コンピューティングサーバ200へ送信する動作について説明する。
画像処理システム100では、センサシステム110a,...,センサシステム110zがデイジーチェーンにより接続される。ここで、本実施の形態において、特別な説明がない場合は、センサシステム110aからセンサシステム110zまでの26セットのシステムを区別せずセンサシステム110と記載する。各センサシステム110内の装置についても同様に、特別な説明がない場合は区別せず、マイク111、カメラ112、雲台113及びカメラアダプタ120と記載する。なお、センサシステムの台数として26セットと記載しているが、あくまでも一例であり、台数をこれに限定するものではない。また、本実施形態では、特に断りがない限り、画像という文言は、動画と静止画の概念を含むものとして説明する。すなわち、本実施形態の画像処理システム100は、静止画及び動画の何れについても処理可能である。
また、本実施形態では、画像処理システム100により提供される仮想視点コンテンツには、仮想視点画像と仮想視点音声が含まれる例を中心に説明するが、これに限らない。例えば、仮想視点コンテンツに音声が含まれていなくても良い。また、例えば、仮想視点コンテンツに含まれる音声が、仮想視点に最も近いマイクにより集音された音声であっても良い。また、本実施形態では、説明の簡略化のため、部分的に音声についての記載を省略しているが、基本的に画像と音声は共に処理されるものとする。
センサシステム110a,...,110zは、それぞれ1台ずつのカメラ112a,...,112zを含む。すなわち、画像処理システム100は、同一の被写体を複数の方向から撮影するための複数のカメラを有する。複数のセンサシステム110同士は、デイジーチェーンにより接続される。
センサシステム110は、マイク111と、カメラ112と、雲台113と、カメラアダプタ120とを含んで構成されるが、この構成に限定するものではない。カメラ112aにて撮影された画像は、カメラアダプタ120aにおいて後述の画像処理が施された後、マイク111aにて集音された音声とともに、デイジーチェーン170aを通してセンサシステム110bのカメラアダプタ120bに伝送される。センサシステム110bは、集音された音声と撮影された画像を、センサシステム110aから取得した画像及び音声と合わせてセンサシステム110cに伝送する。
前述した動作を続けることにより、センサシステム110a,...,110zが取得した画像及び音声は、センサシステム110zからネットワーク180bを用いてスイッチングハブ180に伝わり、その後、画像コンピューティングサーバ200へ伝送される。
なお、本実施形態では、カメラ112a,...,112zと、カメラアダプタ120a,...,120zが分離された構成にしているが、同一筺体で一体化されていてもよい。その場合、マイク111a,...,111zは一体化されたカメラ112に内蔵されてもよいし、カメラ112の外部に接続されていてもよい。
<画像コンピューティングサーバ200の説明>
次に、画像コンピューティングサーバ200の構成及び動作について説明する。画像コンピューティングサーバ200は、センサシステム110zから取得したデータの処理を行う。
画像コンピューティングサーバ200は、フロントエンドサーバ230と、データベース250(以下、DBと記載する場合がある。)と、バックエンドサーバ270と、タイムサーバ290とを含む。さらに、画像コンピューティングサーバ200は、伝送領域算出部401と、カメラ配置記憶部400とを含む。また、データベース250は、伝送領域情報記憶部402を含む。
カメラ配置記憶部400は、制御ステーション310から取得した、各カメラ112の位置、姿勢、方向、レンズ焦点距離等の情報(以下、カメラ配置情報と記載する。)を記憶する。
伝送領域算出部401は、カメラ配置記憶部400に記憶されているカメラの位置、画角から各カメラ112が撮影した画像のうち、仮想視点画像生成のために伝送される画像に対応する領域(以下、伝送領域と記載する。)を算出し、伝送領域情報を生成する。
伝送領域情報記憶部402は、伝送領域算出部401で生成された各カメラ112の伝送領域情報を記憶する。伝送領域情報は、カメラ112の位置または画角が変わるたびに更新される。
タイムサーバ290は、時刻及び同期信号を配信する機能を有し、スイッチングハブ180を介してセンサシステム110a,...,110zに時刻及び同期信号を配信する。時刻と同期信号を受信したカメラアダプタ120a,...,120zは、カメラ112a,...,112zを、時刻と同期信号とをもとにGenlockさせ画像フレーム同期を行う。すなわち、タイムサーバ290は、複数のカメラ112の撮影タイミングを同期させる。これにより、画像処理システム100は同じタイミングで撮影された複数の撮影画像に基づいて仮想視点画像を生成できるため、撮影タイミングのずれによる仮想視点画像の品質低下を抑制できる。
フロントエンドサーバ230は、センサシステム110zから取得した画像及び音声から、セグメント化された伝送パケットを再構成してデータ形式を変換する。その後、カメラの識別子、画像か音声かを示すデータ種別、フレーム番号に応じてデータベース250に書き込む。
データベース250は、フロントエンドサーバ230から取得した、各カメラアダプタ120からの各フレームや画像データの受信状況を状態管理テーブルで管理する。例えば、各時刻と各カメラについて画像データが届いていなければ0、届いていれば1のフラグを立てることで対応できる。また、所定の時間ごと(例えば、1秒間)に、全て届いていれば1を、届いていない場合は所定時間内の各時刻と各カメラについて同様のフラグを立てることで管理できる。
バックエンドサーバ270は、仮想カメラ操作UI330から仮想視点の指定を受け付ける。そして、受け付けられた視点に基づいて、データベース250から対応する画像及び音声データを読み出し、レンダリング処理を行って仮想視点画像を生成する。なお、画像コンピューティングサーバ200の構成はこれに限らない。例えば、フロントエンドサーバ230、データベース250、及びバックエンドサーバ270のうち少なくとも2つが一体に構成されていてもよい。また、フロントエンドサーバ230、データベース250、及びバックエンドサーバ270の少なくとも何れかが複数存在していてもよい。また、画像コンピューティングサーバ200の任意の位置に、上記の装置以外の装置が含まれていてもよい。さらに、画像コンピューティングサーバ200の機能の少なくとも一部をエンドユーザ端末190や仮想カメラ操作UI330が有していてもよい。
レンダリング処理された仮想視点画像は、バックエンドサーバ270からエンドユーザ端末190に送信され、エンドユーザ端末190を操作するユーザは視点の指定に応じた画像の閲覧及び音声の視聴が出来る。すなわち、バックエンドサーバ270は、複数のカメラ112により撮影された撮影画像(複数視点画像)と視点情報とに基づく仮想視点コンテンツを生成する。具体的には、バックエンドサーバ270は、例えば、複数のカメラアダプタ120により複数のカメラ112の撮影画像から切り出された所定領域の画像データ(図4にて詳述)と、ユーザ操作により指定された視点に基づいて、仮想視点コンテンツを生成する。そして、バックエンドサーバ270は、生成した仮想視点コンテンツをエンドユーザ端末190に提供する。
本実施形態における仮想視点コンテンツは、仮想的な視点から被写体を撮影した場合に得られる画像としての仮想視点画像を含むコンテンツである。言い換えると、仮想視点画像は、指定された視点における見えを表す画像であるとも言える。仮想的な視点(仮想視点)は、ユーザにより指定されても良いし、画像解析の結果等に基づいて自動的に指定されても良い。すなわち、仮想視点画像には、ユーザが任意に指定した視点に対応する任意視点画像(自由視点画像)が含まれる。また、複数の候補からユーザが指定した視点に対応する画像や、装置が自動で指定した視点に対応する画像も、仮想視点画像に含まれる。また、バックエンドサーバ270は、仮想視点画像をH.264やHEVCに代表される標準技術により圧縮符号化したうえで、MPEG−DASHプロトコルを使ってエンドユーザ端末190へ送信してもよい。また、仮想視点画像は、エンドユーザ端末190へ送信されてもよい。
このように、画像処理システム100は、被写体を異なる方向から撮影する複数のカメラ112による撮影画像に基づいて、バックエンドサーバ270により仮想視点画像を生成する。なお、本実施形態における画像処理システム100は、上記で説明した物理的な構成に限定される訳ではなく、論理的に構成されていてもよい。
<機能ブロック図の説明>
次に、図1に記載の画像処理システム100における各ノード(カメラアダプタ120、フロントエンドサーバ230、伝送領域算出部401)の機能ブロック図を説明する。
<カメラアダプタ120の説明>
図2は、カメラアダプタ120の機能構成を説明するためのブロック図である。カメラアダプタ120は、ネットワークアダプタ6110と、伝送部6120と、画像処理部6130と、外部機器制御部6140とを含む。
ネットワークアダプタ6110は、データ送受信部6111と、時刻制御部6112とを含む。データ送受信部6111は、デイジーチェーン170、ネットワーク291、及びネットワーク310aを介し、他のカメラアダプタ120、フロントエンドサーバ230、タイムサーバ290、及び制御ステーション310とデータ通信を行う。例えば、データ送受信部6111は、伝送領域算出部401から伝送領域情報を受信する。また、データ送受信部6111は、カメラ112の撮影画像に対して前景背景分離部6131が分離処理を行って生成した前景画像や、伝送領域更新部6134で生成した背景領域画像を、別のカメラアダプタ120に対して送信する。送信先のカメラアダプタ120は、画像処理システム100のカメラアダプタ120のうち、データルーティング処理部6122の処理に応じて予め定められた順序における次のカメラアダプタ120である。各カメラアダプタ120が、前景画像及び背景画像を出力することで、複数の視点から撮影された前景画像と背景画像とに基づいた仮想視点画像が生成される。
時刻制御部6112は、例えば、IEEE1588規格のOrdinay Clockに準拠し、タイムサーバ290との間で送受信したデータのタイムスタンプを保存する機能と、タイムサーバ290と時刻同期を行う機能とを有する。なお、IEEE1588に限定する訳ではなく、他のEtherAVB規格や、独自プロトコルによってタイムサーバとの時刻同期を実現してもよい。
伝送部6120は、データ圧縮・伸張部6121と、データルーティング処理部6122と、時刻同期制御部6123と、画像・音声伝送処理部6124と、データルーティング情報保持部6125と、フレームレート変更部6126とを含む。データ圧縮・伸張部6121は、データ送受信部6111を介して送受信されるデータに対して所定の圧縮方式、圧縮率、及びフレームレートを適用した圧縮を行う機能と、圧縮されたデータを伸張する機能とを有している。
データルーティング処理部6122は、後述するデータルーティング情報保持部6125が保持するデータを利用し、データ送受信部6111が受信したデータ及び画像処理部6130で処理されたデータのルーティング先を決定する。さらに、決定したルーティング先へデータを送信する機能を有している。ルーティング先としては、同一の注視点にフォーカスされたカメラ112に対応するカメラアダプタ120とするのが、それぞれのカメラ112同士の画像フレーム相関が高いため画像処理を行う上で好適である。複数のカメラアダプタ120それぞれのデータルーティング処理部6122による決定に応じて、画像処理システム100において前景画像や背景領域画像をリレー形式で出力するカメラアダプタ120の順序が定まる。
時刻同期制御部6123は、IEEE1588規格のPTP(Precision Time Protocol)に準拠し、タイムサーバ290と時刻同期に係わる処理を行う機能を有している。なお、PTPに限定するのではなく、他の同様のプロトコルを利用して時刻同期してもよい。
画像・音声伝送処理部6124は、画像データ又は音声データを、データ送受信部6111を介して他のカメラアダプタ120またはフロントエンドサーバ230へ転送するためのメッセージを作成する機能を有している。メッセージには、画像データ又は音声データ、及び各データのメタ情報が含まれる。本実施形態のメタ情報には、画像の撮影または音声のサンプリング時のタイムコードまたはシーケンス番号、データ種別、及びカメラ112やマイク111の個体を示す識別子などが含まれる。なお、送信する画像データまたは音声データは、データ圧縮・伸張部6121でデータ圧縮されていてもよい。また、画像・音声伝送処理部6124は、他のカメラアダプタ120からデータ送受信部6111を介してメッセージを受け取る。
データルーティング情報保持部6125は、データ送受信部6111で送受信されるデータの送信先を決定するためのアドレス情報を保持する機能を有する。
画像処理部6130は、前景背景分離部6131と、三次元モデル情報生成部6132と、キャリブレーション制御部6133と、伝送領域更新部6134とを含む。画像処理部6130は、カメラ制御部6141の制御によりカメラ112が撮影した画像データ及び他のカメラアダプタ120から受取った画像データに対して処理を行う。画像処理部6130については、図3において詳述する。
外部機器制御部6140は、カメラアダプタ120に接続する機器を制御する機能を有し、カメラ制御部6141と、マイク制御部6142と、雲台制御部6143とを含む。
カメラ制御部6141は、カメラ112と接続し、カメラ112の制御、撮影画像取得、同期信号提供、及び時刻設定などを行う機能を有している。カメラ112の制御には、例えば、撮影パラメータ(画素数、色深度、フレームレート、及びホワイトバランスなど)の設定及び参照、カメラ112の状態(撮影中、停止中、同期中、及びエラーなど)の取得、撮影の開始及び停止や、ピント調整などがある。同期信号提供は、時刻同期制御部6123がタイムサーバ290と同期した時刻を利用し、撮影タイミング(制御クロック)をカメラ112に提供することで行われる。時刻設定は、時刻同期制御部6123がタイムサーバ290と同期した時刻を例えばSMPTE12Mのフォーマットに準拠したタイムコードで提供することで行われる。これにより、カメラ112から受取る画像データに提供したタイムコードが付与されることになる。
マイク制御部6142および雲台制御部6143は、それぞれ接続される、マイク111および雲台113を制御する機能を有する。雲台制御部6143は、例えば、パン・チルト制御や、状態取得を行う。
<カメラアダプタ120内の画像処理部6130の説明>
図3は、カメラアダプタ120内の画像処理部6130の機能ブロック図である。画像処理部6130は、前景背景分離部6131と、三次元モデル情報生成部6132と、キャリブレーション制御部6133と、伝送領域更新部6134とを含む。
キャリブレーション制御部6133は、キャリブレーションに必要な画像データを、カメラ制御部6141を介してカメラ112から取得する。そして、入力された画像に対して、カメラ毎の色のばらつきを抑えるための色補正処理や、カメラの振動に起因するブレに対して画像の位置を安定させるためのブレ補正処理などを行う。
前景背景分離部6131は、カメラ112が撮影した画像データを前景画像と背景画像に分離処理を行う。すなわち、複数のカメラアダプタ120それぞれの前景背景分離部6131は、複数のカメラ112のうち対応するカメラ112による撮影画像から所定領域を抽出する。所定領域は、例えば、撮影画像に対するオブジェクト検出処理の結果、オブジェクトが検出された領域である。
前景背景分離部6131は、撮影画像から抽出した所定領域内の画像を前景画像、所定領域以外の領域の画像(すなわち、前景画像以外)を背景画像として、撮影画像を前景画像と背景画像とに分離する。なお、オブジェクトとは、例えば、人物である。ただし、これに限られず、オブジェクトは、特定の人物(選手、監督、および/または審判など)であっても良いし、ボール等の画像パターンが予め定められている物体であっても良い。また、オブジェクトとして、動体が検出されるようにしても良い。人物等の重要なオブジェクトを含む前景画像とそのようなオブジェクトを含まない背景画像を分離して処理することで、画像処理システム100において生成される仮想視点画像の上記のオブジェクトに該当する部分の画像の品質を向上できる。また、前景画像と背景画像の分離を複数のカメラアダプタ120それぞれが行うことで、複数のカメラ112を備えた画像処理システム100における負荷を分散させることができる。
なお、分離処理が行われる画像は、当該画像を撮影したカメラと、隣接設置されたカメラの画像とで位置合わせが実行された画像である。位置合わせは、例えば、隣接のカメラ画像をカメラの設置情報から射影変換し、各画像の輝度分布から特徴点を抽出し、当該特徴点同士をマッチングさせることで行う。
前景背景分離部6131は、前景分離部5001と、背景画像5002と、背景更新部5003とを有する。前景分離部5001は、入力された画像に対して、オブジェクト検出を行って前景領域を抽出する。例えば、背景画像5002と比較して得られた背景差分情報に基づいて、前景領域を抽出する。そして、前景領域の各画素を連結して前景画像を生成する。
背景更新部5003は、背景画像5002とカメラの位置合わせが行われた画像を用いて新しい背景画像を生成し、背景画像5002を新しい背景画像に更新する。
伝送領域更新部6134は、伝送領域保持部5011と、背景領域画像生成部5012とを有する。
伝送領域保持部5011は、伝送部6120を介して伝送領域算出部401から伝送領域情報を取得し、背景領域画像生成部5012に送る。
背景領域画像生成部5012は、伝送領域保持部5011より取得した伝送領域情報に従って、背景画像5002から背景領域画像を生成する。背景領域画像の生成については、図11の参照により後述する。
三次元モデル情報生成部6132は、三次元モデル処理部5005と、他カメラ前景受信部5006と、カメラパラメータ受信部5007とを有する。他カメラ前景受信部5006は、他のカメラアダプタ120で前景背景分離された前景画像を受信する。
カメラパラメータ受信部5007は、カメラ固有の内部パラメータ(焦点距離、画像中心、及びレンズ歪みパラメータ等)と、カメラの位置姿勢を表す外部パラメータ(回転行列及び位置ベクトル等)を受信する。
三次元モデル処理部5005は、前景分離部5001で分離された前景画像と、伝送部6120を介して受信した他のカメラ112の前景画像を用いて、例えば、ステレオカメラの原理等から三次元モデルに関わる画像情報を逐次生成する。
<フロントエンドサーバ230の説明>
図4は、フロントエンドサーバ230の機能構成を説明するためのブロック図である。フロントエンドサーバ230は、制御部2110と、データ入力制御部2120と、データ同期部2130と、CADデータ記憶部2135と、キャリブレーション部2140と、画像処理部2150とを含む。さらに、フロントエンドサーバ230は、三次元モデル結合部2160と、画像結合部2170と、撮影データファイル生成部2180と、非撮影データファイル生成部2185と、DBアクセス制御部2190と、伝送領域記憶部2200とを含む。
制御部2110は、CPUやDRAM、プログラムデータや各種データを記憶したHDDやNANDメモリなどの記憶媒体、Ethernet(登録商標)等のハードウェアで構成される。そして、フロントエンドサーバ230の各機能ブロック及びフロントエンドサーバ230のシステム全体の制御を行う。また、モード制御を行って、キャリブレーション動作や撮影前の準備動作、及び撮影中動作などの動作モードを切り替える。また、例えば、ネットワーク310b(Ethernet(登録商標))を通じて制御ステーション310からの制御指示を受信し、各モードの切り替えやデータの入出力などを行う。また、同じくネットワーク310bを通じて制御ステーション310からスタジアムCADデータ(スタジアム形状データ)を取得し、スタジアムCADデータをCADデータ記憶部2135と撮影データファイル生成部2180に送信する。なお、本実施形態におけるスタジアムCADデータ(スタジアム形状データ)はスタジアムの形状を示す三次元データであり、メッシュモデルやその他の三次元形状を表すデータであればよく、CAD形式に限定されない。
データ入力制御部2120は、ネットワーク180a,180b(Ethernet(登録商標))等の通信路とスイッチングハブ180を介して、カメラアダプタ120とネットワーク接続されている。そして、データ入力制御部2120は、ネットワーク180a,180b、スイッチングハブ180を通してカメラアダプタ120から前景画像、背景領域画像、被写体の三次元モデル、音声データ、及びカメラキャリブレーション撮影画像データを取得する。また、データ入力制御部2120は、取得した前景画像及び背景領域画像を、データ同期部2130に送信し、カメラキャリブレーション撮影画像データをキャリブレーション部2140に送信する。
データ同期部2130は、カメラアダプタ120から取得したデータをDRAM上に一次的に記憶し、前景画像、背景領域画像、音声データ及び三次元モデルデータがそろうまでバッファする。なお、前景画像、背景領域画像、音声データ及び三次元モデルデータをまとめて、以降では撮影データと称する。撮影データにはルーティング情報やタイムコード情報(時間情報)、カメラ識別子等のメタ情報が付与されており、データ同期部2130は、このメタ情報を元にデータの属性を確認する。これにより、データ同期部2130は、同一時刻のデータであることなどを判断してデータがそろったことを確認する。これは、ネットワークによって各カメラアダプタ120から転送されたデータについて、ネットワークパケットの受信順序は保証されず、ファイル生成に必要なデータがそろうまでバッファする必要があるためである。データがそろったら、データ同期部2130は、前景画像及び背景領域画像を画像処理部2150に、三次元モデルデータを三次元モデル結合部2160に、音声データを撮影データファイル生成部2180にそれぞれ送信する。
CADデータ記憶部2135は、制御部2110から受け取ったスタジアム形状を示す三次元データを、DRAMまたはHDDやNANDメモリ等の記憶媒体に保存する。そして、画像結合部2170に対して、スタジアム形状データの要求を受け取った際に保存されたスタジアム形状データを送信する。
キャリブレーション部2140は、カメラのキャリブレーション動作を行い、キャリブレーションによって得られたカメラパラメータを後述する非撮影データファイル生成部2185に送る。また同時に、自身の記憶領域にもカメラパラメータを保持し、後述する三次元モデル結合部2160にカメラパラメータ情報を提供する。
画像処理部2150は、前景画像や背景領域画像に対して、カメラ間の色や輝度値の合わせこみ、RAW画像データが入力される場合には現像処理、及びカメラのレンズ歪みの補正等の処理を行う。そして、画像処理を行った前景画像は、撮影データファイル生成部2180に、背景領域画像は画像結合部2170にそれぞれ送信する。
三次元モデル結合部2160は、カメラアダプタ120から取得した同一時刻の三次元モデルデータをキャリブレーション部2140が生成したカメラパラメータを用いて結合する。そして、例えば、VisualHullと呼ばれる方法を用いて、スタジアム全体における前景画像の三次元モデルデータを生成する。生成した三次元モデルは撮影データファイル生成部2180に送信される。
伝送領域記憶部2200は、データベース250内の伝送領域情報記憶部402から伝送領域情報を読み出し、記憶しておく。
画像結合部2170は、画像処理部2150から背景領域画像を取得し、また、伝送領域記憶部2200から関係する伝送領域情報を取得する。さらに、画像結合部2170は、CADデータ記憶部2135から背景構造情報であるスタジアムの三次元形状データ(スタジアム形状データ)を取得し、取得したスタジアムの三次元形状データの座標に対する背景領域画像の位置を特定する。背景領域画像の各々についてスタジアムの三次元形状データの座標に対する位置が特定できると、伝送領域情報に基づいて、背景領域画像を結合して1つの背景画像とする。なお、本背景画像の三次元形状データの作成については、バックエンドサーバ270が実施してもよい。
撮影データファイル生成部2180は、データ同期部2130から音声データを、画像処理部2150から前景画像を、三次元モデル結合部2160から三次元モデルデータを、画像結合部2170から三次元形状に結合された背景画像を取得する。そして、取得したこれらのデータをDBアクセス制御部2190に対して出力する。ここで、撮影データファイル生成部2180は、これらのデータをそれぞれの時間情報に基づいて対応付けて出力する。ただし、これらのデータの一部を対応付けて出力してもよい。例えば、撮影データファイル生成部2180は、前景画像と背景画像とを、前景画像の時間情報及び背景画像の時間情報に基づいて対応付けて出力する。また例えば、撮影データファイル生成部2180は、前景画像、背景画像、及び三次元モデルデータを、前景画像の時間情報、背景画像の時間情報、及び三次元モデルデータの時間情報に基づいて対応付けて撮影データとして出力する。
非撮影データファイル生成部2185は、キャリブレーション部2140からカメラパラメータ、制御部2110からスタジアムの三次元形状データを取得し、ファイル形式に応じて成形した後にDBアクセス制御部2190に送信する。
DBアクセス制御部2190は、InfiniBandなどにより高速な通信が可能となるようにデータベース250と接続される。そして、撮影データファイル生成部2180及び非撮影データファイル生成部2185から受信したファイルをデータベース250に対して送信する。本実施形態では、撮影データファイル生成部2180が時間情報に基づいて対応付けた撮影データは、フロントエンドサーバ230とネットワークを介して接続される記憶装置であるデータベース250へDBアクセス制御部2190を介して出力される。ただし、対応付けられた撮影データの出力先はこれに限らない。例えば、フロントエンドサーバ230は、時間情報に基づいて対応付けられた撮影データを、フロントエンドサーバ230とネットワークを介して接続され仮想視点画像を生成する画像生成装置であるバックエンドサーバ270に出力してもよい。また、データベース250とバックエンドサーバ270の両方に出力してもよい。
<伝送領域算出部401の説明>
図5は、伝送領域算出部401の機能構成を説明するためのブロック図である。伝送領域算出部401は、カメラ順設定部2401と、画角算出部2402と、背景範囲算出部2403と、伝送領域決定部2404と、伝送領域保持部2405とを含む。
カメラ順設定部2401は、カメラ配置記憶部400から各カメラ112の配置情報を取得する。カメラ順設定部2401は、各カメラ112のカメラ配置情報からスイッチングハブ180に最も近いカメラを選択し、最初に背景領域画像を伝送するカメラとして設定する。そして、デイジーチェーン接続の順に、以下に説明するように、そのカメラの背景画像について伝送する伝送領域を決める。ただし、最初に背景領域画像を伝送するカメラの選択についてはこれに限定されず、スタジアムの正面スタンド中央に最も近いカメラを選択してもよく、一意に決定されていれば構わない。
画角算出部2402は、カメラ配置記憶部400から各カメラ112のカメラ配置情報を取得し、伝送領域を決定するカメラの姿勢、焦点距離に基づいて画角を算出する。
背景範囲算出部2403は、算出された画角から、背景画像として撮影される範囲(以下、背景範囲と記載する。)を算出する。なお、背景範囲は、各カメラ112が撮影する撮影範囲と一致する。
伝送領域決定部2404は、後述する伝送領域保持部2405から、当該カメラより以前に伝送された伝送領域を読み出し、当該カメラの背景範囲との重なりを検出する。そして、背景範囲からその重なりを除いた部分を当該カメラの伝送領域として決定する。
伝送領域保持部2405は決定された伝送領域をカメラ112毎に保持しておく。また、伝送領域保持部2405は、決定された伝送領域を示す伝送領域情報を伝送領域情報記憶部402及びスイッチングハブ180を経由してカメラアダプタ120へ送る。
次に、図6から図10を用いて、上記動作の手順を説明する。
図6は、決定の方法を記したフローチャートである。なお、以下で説明する処理は、特に明示が無い場合、コントローラ300の制御により実現される。すなわち、コントローラ300が画像処理システム100内の他の装置(例えば、フロントエンドサーバ230やデータベース250等)を制御することにより、制御が実現される。
図7は、センサシステムの配置の一例を示す図であり、図8〜図10は、図7のセンサシステムにおけるカメラの伝送領域決定の算出手順を示す図である。図7〜図10では、競技場を囲むようにセンサシステム1000−1〜1002−6のカメラ112(以下、カメラ1000−1〜1002−6と記載する場合もある。)が配置されている。カメラ1000−1から1000−8は、注視点1000について撮影している。同様に、カメラ1001,1002は、それぞれ注視点1001,1002について撮影している。また、それぞれのセンサシステムは、カスケード接続されているものとする。右回りに順に配置されるセンサシステム1000−1,1001−1,1002−1,...,1002−6は、例えば、図1のセンサシステム110a,110b,110c,...,110tに該当し、スイッチングハブ180に接続されている。なお、本実施形態では説明を簡易にするために、全てのカメラは同じ高さに設置されるものとし、そのレンズの焦点距離も同じに設定されているとする。
図6に戻って、ステップS601において、カメラ順設定部2401は、配置されたセンサシステムから、伝送領域を決定するカメラを選択する。例えば、図7のカメラ1000−1が最初に選択される。また、伝送領域保持部2405が保持する伝送領域は、最初は空である。
ステップS602において、画角算出部2402は、カメラ112の焦点距離等から画角を算出する。例えば、焦点距離70mmであれば、画角は水平29度、垂直は19度30分と決まる。
ステップS603において、背景範囲算出部2403は、カメラ112の位置、姿勢等と画角算出部2402が算出した画角から、カメラ112の背景範囲を算出する。図8において、カメラ1001−1の背景範囲1000−1aが算出されている。
図6に戻って、ステップS604において、伝送領域決定部2404は、背景範囲1000−1aと、それ以前に伝送された伝送領域との重なりを検出する。図8において、カメラ1000−1は、最初に伝送領域が決定されるカメラであり、伝送領域保持部2405の保持する伝送領域は、上述したように空であるので、背景範囲1000−1aとの重なりは検出されない。
図6に戻って、ステップS605において、伝送領域決定部2404は、背景範囲からステップS604で検出された重なりを除去して伝送領域を決定する。カメラ1000−1については、上述のように重なりは検出されないので、その背景範囲1000−1aの全てが伝送領域として決定される。
ステップS606において、伝送領域保持部2405では、ステップS605で決定された伝送領域を保持する。
ステップS607において、カメラ順設定部2401は、全カメラの伝送領域を決定したかを判断する。全カメラの伝送領域が決定している場合(ステップS607において、YES)、本処理を終了する。そうでない場合(ステップS607において、NO)、ステップS601に戻り、伝送順に次のカメラの伝送領域の決定を行う。ここでは、カメラ1000−1の右隣のカメラ1001−1についての伝送領域を決定する。
ステップS601に戻り、カメラ順設定部2401は、カメラ1001−1を選択する。ステップS602、ステップS603にて、当該カメラの背景範囲を算出する。図9にその様子を示す。カメラ1001−1の撮影する背景範囲1001−1r(点線にて示す)が算出される。
ステップS604において、伝送領域決定部2404は、背景範囲1001−1rと、それ以前に伝送された伝送領域との重なりを検出する。ここでは、伝送領域1000−1aとの重なりを検出する。図9において、領域1001−1pがその重なりに該当する。
図6に戻って、ステップS605において、伝送領域決定部2404は、背景範囲からその重なりを除去して伝送領域を決定する。ここでは、背景範囲1001−1rから領域1001−1pが除去された領域1001−1a及び領域1001−1bが、カメラ1001−1の伝送領域として決定される。
ステップS606において、伝送領域保持部2405は、新たに決定された伝送領域を保持する。すなわち、伝送領域保持部2405は、新たに決定された領域1001−1a,1001−1b及び、すでに記憶していた領域1000−1aを保持する。
ステップS607において、カメラ順設定部2401は、全カメラの伝送領域を決定したかを判断する。全てを決定していない場合(ステップS607において、NO)、ステップS601からステップS606を繰り返す。この場合、次にカメラ1002−1が選択される。図10に、カメラ1001−1からカメラ1002−6まで処理を行った結果、伝送領域保持部2405が保持している伝送領域を示す。このように、各カメラの伝送される背景範囲が重ならないように伝送領域が決定される。そして、これらの伝送領域に従って背景領域画像が生成されるように、伝送領域算出部401は、スイッチングハブ180を介して各センサシステムのカメラアダプタ120に、伝送領域を示す伝送領域情報を通知する。
図11は、背景画像を示す図である。図11において、背景画像1105は、画像1101からなる背景領域画像と、画像1102及び1103からなる背景領域画像とを結合して構成される。画像1101からなる背景領域画像は、例えば、カメラ112aの背景画像のうち、カメラ112aについて決定された伝送領域に対応する画像である。また、画像1102及び1103からなる背景領域画像は、例えば、カメラ112bの背景画像のうち、カメラ112bについて決定された伝送領域に対応する画像である。
各カメラには、伝送領域算出部401から、伝送領域情報が入力される。伝送領域情報は、例えば、伝送領域の数とそれぞれの伝送領域の形状、位置である。伝送領域の形状は、その外接矩形を設定し、その大きさとの内側を1、外側を0とする2値画像とすることで実現される。伝送領域の位置は、当該外接矩形の左上の座標として表すことも可能である。なお、伝送領域情報はこれに限定されず、輪郭をチェイン符号化等で表現することも可能である。このような伝送領域情報に基づいて、背景領域画像は生成される。
<ハードウェア構成>
続いて、本実施形態を構成する各装置のハードウェア構成について説明する。
図12は、カメラアダプタ120のハードウェア構成を示すブロック図である。
カメラアダプタ120は、CPU1201と、ROM1202と、RAM1203と、補助記憶装置1204と、表示部1205と、操作部1206と、通信部1207と、バス1208とを含む。
CPU1201は、ROM1202やRAM1203に格納されているコンピュータプログラムやデータを用いてカメラアダプタ120の全体を制御する。ROM1202は、変更を必要としないプログラムやパラメータを格納する。RAM1203は、補助記憶装置1204から供給されるプログラムやデータ、及び通信部1207を介して外部から供給されるデータなどを一時記憶する。補助記憶装置1204は、例えばハードディスクドライブ等で構成され、静止画や動画などのコンテンツデータを記憶する。
表示部1205は、例えば、液晶ディスプレイ等で構成され、ユーザがカメラアダプタ120を操作するためのGUI(Graphical User Interface)などを表示する。操作部1206は、例えば、キーボードやマウス等で構成され、ユーザによる操作を受けて各種の指示をCPU1201に入力する。通信部1207は、カメラ112やフロントエンドサーバ230などの外部の装置と通信を行う。バス1208は、カメラアダプタ120の各部を繋いで情報を伝達する。
なお、フロントエンドサーバ230、データベース250、バックエンドサーバ270、制御ステーション310、仮想カメラ操作UI330、及びエンドユーザ端末190などの装置も、図12のハードウェア構成となりうる。また、上述した各装置の機能は、CPUなどを用いてソフトウェア処理によって実現してもよい。
以上において説明した構成及び動作(画像伝送)により、注視点に関連して、複数のカメラから画像を伝送する際に、背景範囲の重なりを除去し、伝送する画像の情報量を抑えることで、安価なネットワークで高精細な画像の伝送が可能になる。
なお、上述の実施形態では、伝送領域情報記憶部402をデータベース250の内部に設置して説明したが、これに限定されない。例えば、独立した記憶部であっても構わないし、制御ステーション310や伝送領域算出部401の内部にあってももちろん構わない。
また、上述の実施形態は、画像処理システム100が競技場やコンサートホールなどの施設に設置される場合の例を中心に説明した。施設の他の例としては、例えば、遊園地、公園、競馬場、競輪場、カジノ、プール、スケートリンク、スキー場、ライブハウスなどがある。また、各種施設で行われるイベントは、屋内で行われるものであっても屋外で行われるものであっても良い。また、本実施形態における施設は、一時的に(期間限定で)建設される施設も含む。
<実施の形態2>
以下に、実施の形態2として、実施の形態1とは異なる伝送領域の決定処理について説明する。ここでは、撮影対象である競技場(スタジアム)の三次元形状データ(スタジアム形状データ)を用いて、伝送領域を決定する。
図13は、実施の形態2に係る伝送領域算出部1401の機能ブロック図である。同図において、図5と同じ機能を果たすブロックについては同じ符号を付し、説明を省略する。伝送領域算出部1401は、画角算出部2402と、背景範囲算出部12403と、伝送領域決定部2404と、伝送領域保持部2405と、スタジアム形状データ部2410とを含む。
スタジアム形状データ部2410は、制御ステーション310からスタジアムCADデータ(スタジアム形状データ)を取得し、格納する。背景範囲算出部12403は、画角算出部2402で算出された画角と、スタジアム形状データ部2410からのスタジアム形状データから、背景画像として撮影される背景範囲を算出する。
図14は、競技場の構造を模式的に表した図である。グラウンド3000と観客席3002の間に壁3001が存在する。このため、カメラから取得する背景範囲は台形ではなく、観客席の角度などによって形状が変化する。
図15は、背景画像を示す図である。図15において、背景画像1500は、画像1501からなる背景領域画像と、画像1502及び1503からなる背景領域画像とから構成される。壁3001と観客席3002とは、その傾きがグラウンド3000と異なるため、画像1502は、図11の画像1102と比較すると、形状が変化している。
図16は、背景範囲を示す図である。スタジアム形状データを考慮しない場合、背景範囲は、点線で囲まれた領域7002であるが、これを考慮することによって、その背景範囲は領域7001となる。
このように、スタジアム形状データを考慮しないで伝送領域を算出する場合は、領域7001と領域7002の差をカバーするために、2重に伝送される部分が生じる。しかしながら、スタジアム形状を考慮することで、当該部分の重複を防ぐことができる。
以上において説明した構成及び動作により、背景画像の伝送時に注視点に関連して、競技場(スタジアム)の三次元形状データを用いることで、より正確な伝送領域の決定ができ、さらに伝送時のデータ量を減らすことが可能になる。
<実施の形態3>
図17は、実施の形態3に係る画像処理システム100の構成図である。同図において、図1と同じ機能を果たすブロックについては同じ符号を付し、説明を省略する。実施の形態3に係る伝送領域算出部2401は、制御ステーション310と信号線310eを介して接続され、仮想カメラ操作UI330から仮想視点の指定を受け付ける点が、実施の形態1と異なる。
図18は、伝送領域算出部2401の機能ブロック図である。図18において、図5と同じ機能を果たすブロックについては同じ符号を付し、説明を省略する。
カメラ順設定部12401、仮想カメラ撮影範囲算出部12410、および伝送領域決定部12404は、制御ステーション310からカメラの数(N:自然数)を取得する。伝送領域決定部12404は、後述する仮想カメラ撮影範囲算出部12410により算出された仮想カメラの撮影範囲(以下、仮想撮影範囲と記載する場合がある。)に基づいて、各カメラの伝送領域を決定する。
仮想カメラ撮影範囲算出部12410は、制御ステーション310から、仮想カメラの位置、方向、画角を取得する。そして、仮想カメラの撮影範囲を算出する。
図19から図24を用いて、伝送領域算出部2401の動作を説明する。
図19は、伝送領域算出部2401の決定の方法を記したフローチャートである。なお、以下で説明する処理は、特に明示が無い場合、コントローラ300の制御により実現される。すなわち、コントローラ300が画像処理システム100内の他の装置(例えば、フロントエンドサーバ230やデータベース250等)を制御することにより、制御が実現される。
図20は、仮想カメラの撮影範囲を示す図であり、図21から図24は、図20のセンサシステムにおける仮想カメラ1100の仮想視点画像生成のための伝送領域決定の算出手順を示す図である。なお、図20におけるセンサシステムは、図7において説明したセンサシステムと同様のものである。
図19に戻って、ステップS1901において、カメラ順設定部12401、仮想カメラ撮影範囲算出部12410、および伝送領域決定部12404は、制御ステーション310から、配置されているカメラの数(N)を取得する。
ステップS1902において、仮想カメラ撮影範囲算出部12410は、仮想カメラ操作UI330から視点の指定を受け付ける。受け付けられた視点に基づいて、仮想カメラの位置、方向、画角を設定し、仮想撮影範囲を決定する。図20を参照すると、仮想カメラ撮影範囲算出部12410は、仮想カメラ1100の位置、方向、画角から、仮想撮影範囲1101を算出する。なお、仮想撮影範囲1101の算出にあたっては、実施の形態2に記載したように、三次元形状データを用いて撮影範囲を算出しても構わない。
図19に戻って、ステップS1903において、カメラ順設定部12401は、仮想撮影範囲をカバーする(背景範囲が重なる)カメラのうち、仮想カメラに最も近いカメラを選択する。図21を参照すると、カメラ順設定部12401は、仮想カメラ1100の位置とカメラ配置記憶部400から入力された各カメラの配置情報に基づいて、伝送領域を決定するカメラを選択する。すなわち、仮想撮影範囲1101をカバーするカメラのうち、仮想カメラ1100に最も近い位置にあるカメラ1001−5を選択する。
図19に戻って、ステップS1904において、画角算出部2402は、カメラの画角を算出する。次いで、ステップS1905において、背景範囲算出部2403は、背景範囲を算出する。
ステップS1906において、伝送領域決定部12404は、カメラの数Nと閾値Thを比較する。カメラの数Nが閾値Thよりも大きい場合(ステップS1906において、Yes)、処理はステップS1907に進む。そうでない場合(ステップS1906において、No)、処理はステップS1908に進む。なお、閾値Thは、各カメラの背景範囲が重ならないよう配置されている場合の最大カメラ数を表す。カメラ数が閾値Th以下のときは、各カメラの背景範囲は重ならない。また、各カメラの背景範囲が重なるように配置されている場合であっても、重なった背景範囲の伝送量がシステムにおいて許容できるデータ量であるときのカメラの台数を閾値Thとしてもよい。
ステップS1907において、伝送領域決定部12404は、算出された背景範囲と、それ以前に伝送された伝送領域との重なりを検出する。図21の場合、センサシステム1001−5のカメラは、最初に伝送領域が決定されるカメラであり、その背景範囲1000−51aでは重なりは検出されない。
図19に戻って、ステップS1908において、伝送領域決定部12404は背景範囲から、ステップS1907で検出された重なりを除去して伝送領域を決定する。ステップS1906からステップS1908に進んだ場合は、背景範囲の全てが伝送領域となる。図21において、最初に選択されたカメラ1001−5は、以前に伝送された伝送領域と重なりが検出されないので、その背景範囲1000−51aの全てが伝送領域として決定される。
図19に戻って、ステップS1909において、伝送領域保持部2405では、ステップS1908で決定された伝送領域を保持する。
ステップS1910において、カメラ順設定部12401は、全カメラの伝送領域を決定したかを判断する。全カメラの伝送領域が決定している場合(ステップS1910において、YES)、本処理を終了する。そうでない場合(ステップS1910において、NO)、ステップS1903に戻り、次のカメラを選択する。図22を参照すると、カメラ1001−5の次に仮想カメラ1100に近いカメラは、カメラ1000−8である。当該カメラの背景範囲1000−81aで仮想撮影範囲1101にかかる部分は、既に伝送領域1001−51aに含まれているため、カメラ1000−8はこの時点では選択されない。その次に仮想カメラ1100に近いカメラ1000−7の背景範囲は、仮想撮影範囲1101に新たに重なるため、カメラ1000−7が選択される。
図19に戻って、ステップS1904、およびS1905において、カメラ1000−7の画角、背景範囲が算出される。
ステップS1906において、カメラの数Nと閾値Thを比較し、カメラ数Nが閾値Thよりも大きければ、処理はステップS1907に進み、そうでなければ、処理はステップS1908に進む。
ステップS1907において、伝送領域決定部12404は点線で表される背景範囲1000−71rと、それ以前に伝送される伝送領域との重なりを検出する。
ステップS1908において、伝送領域決定部12404は背景範囲からその重なりを除去して伝送領域を決定する。ここでは、領域1000−71a、および領域1000−71bが伝送領域として決定される。
なお、ステップS1906からステップS1908に進んだ場合は、背景範囲1000−71rの全てがとなる。
ステップS1909、S1910が処理され、カメラ順設定部12401は、次のカメラを選択し、同様の処理を続ける。図23を参照すると、仮想撮影範囲1101を全てカバーした時点の様子が示されている。仮想撮影範囲1101を全てカバーするまでに、伝送領域決定部12404は、カメラ1001−5,1000−7,1001−6,1001−4,1001−3の伝送領域を決定している。続いて、伝送領域が決定されていないカメラ(仮想撮影範囲をカバーしていないカメラ)について、実施の形態1と同様の処理を行う。すなわち、カメラ1000−8が選択され、その後、カメラ1002−6等と続いて処理がされる。以下、全てのカメラについて決定が行われ、その伝送領域情報が各カメラに通知される。
以上において説明した構成及び動作により、仮想視点画像生成に必要な画像から送ることで、バックエンドサーバは必要な画像が揃った時点で画像の生成が可能になり、全ての画像の到達を待たずに処理を開始することができるようになる。このため、仮想視点の移動に対して、レスポンスを向上させることができ、仮想カメラ操作UI330のユーザが違和感なく仮想視点合成を行うことが可能になる。
なお、ステップS1903において、カメラ順設定部12401での仮想カメラ1100の撮影範囲1101に基づくカメラの選択方法はこれに限定されない。図24は、カメラの選択方法を説明するための図である。例えば、図24に示すように、仮想撮影範囲1101をカバーするのに必要なカメラが最小になるようにカメラを選択することも可能である。これらは、仮想カメラの撮影範囲の位置、形状、及び各カメラの背景範囲から容易に求めることができる。例えば、カメラ1台での背景範囲を算出する。あるカメラ1台の背景範囲で仮想カメラの撮影範囲がカバーできればそのカメラを選択する。1台でカバーできなければ2台の組合せ、さらに3台の組合せと増やした場合の仮想撮影範囲1101のカバー状況を算出する。このように組み合わせを増やしていく過程で、最初に全てをカバーした組合せに基づいて、カメラの選択を行えばよい。
また、制御ステーション310からセンサシステムの故障、ネットワークの切断や故障など、任意のセンサシステムから背景領域画像が送付されないことが通知された場合、伝送領域算出部2401は、伝送領域の算出を行う。伝送領域算出部2401は、制御ステーション310から背景領域画像が送付されないセンサシステム(カメラ)を特定する。ここでは、カメラ110Xが特定されたとする。カメラ110Xの伝送領域については、その伝送領域と重なる伝送領域を持つカメラでカバーするように当該カメラの伝送領域を算出し直す。
図25は、新たに伝送領域を算出し直す場合を説明するための図である。図25において、上述のカメラ110Xを、カメラ1000−1とする。カメラ1000−1のである点線で示された1000−1aは、1001−1a,1000−2a,1002−1a,1002−2a,1001−6aでカバーすることができる。このように伝送領域の算出を行い、それぞれの伝送領域情報は、センサシステム1000−1を除くセンサシステムに伝送される。また、伝送領域情報記憶部402に格納する。
以上の動作によって、センサシステムに故障等が生じても当該センサシステムの背景領域画像にあたる画像が伝送されることにより、後段での仮想視点画像の合成に影響を与えないようにすることができる。
<実施の形態4>
以下に、実施の形態4として、実施の形態1〜3とは異なる伝送領域の決定方法について説明する。すなわち、実施の形態1〜3では、カメラの撮影範囲に注目して伝送領域を決定した。実施の形態4では、スタジアムの三次元形状データ(スタジアム形状データ)を用い、撮影される領域の各地点からカメラまでの距離に注目して伝送領域を決定する。
図26は、実施の形態4に係る伝送領域算出部3401の機能ブロック図である。同図において、図5と同じ機能を果たすブロックについては同じ符号を付し、説明を省略する。
伝送領域算出部3401は、画角算出部2402と、背景分布算出部2420と、伝送領域決定部2430と、伝送領域保持部2405とを含む。
背景分布算出部2420は、各センサシステムのカメラによって撮影される全領域を複数の小領域に分割し、その小領域がいずれのカメラに最も近いかを算出する。そして、小領域ごとに、算出した最も近いカメラを記録する。なお、小領域は空間を構成する点群の最小単位からそれらを複数集めた点群単位でも構わない。
伝送領域決定部2430は、背景分布算出部2420によって記録された、小領域についての最も近いカメラの情報をもとに、各カメラについて領域をグルーピングする。そして、グルーピングされた領域を、各カメラの伝送領域とする。
図27は、小領域からのカメラの距離計算を表す図である。背景分布算出部2420は、距離を計算する小領域2500を視野に収めるカメラを全カメラの画角から選択する。図27では、カメラ1001−1,1000−3,1000−4,1001−2,1001−3,1001−4,1000−7,1001−5,1001−6である。小領域2500とこれらのカメラとの距離は、それぞれ距離1001−1d,1000−3d,1000−4d,1001−2d,1001−3d,1001−4d,1000−7d,1001−5d,1001−6dである。
背景分布算出部2420は、これらの距離で最も短距離であるものを選択する。ここでは、距離1001−6dが最小である。背景分布算出部2420は、小領域2500の最短距離のカメラはカメラ1001−6であると記録する。このようにして、背景分布算出部2420は、小領域2500以外についての小領域(不図示)についても最短距離のカメラを算出し、記録する。
そして、伝送領域決定部2430は、背景分布算出部2420が小領域単位で記録した最短距離のカメラの情報からこれらをグルーピングし、各カメラの伝送領域を決定する。
以上において説明した構成及び動作により、各地点で最も近いカメラからの画像を使用することで、高解像度で正確な画像データを取得することができる。これにより、より高画質化を図ることが可能になる。
上述した実施の形態によれば、カメラ112の台数などのシステムを構成する装置の規模、及び撮影画像の出力解像度や出力フレームレートなどに依らず、撮影画像を効率よく伝送することができる。以上、本発明の実施形態について詳述したが、本発明は上述の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。