本発明に係る実施形態を詳述するのに先立って、複数のカメラを用いて仮想視点画像を生成するシステムにおいて、スポーツ競技の判定等のためにスロー再生のリプレイ画像を生成する際の課題についてさらに説明する。
複数視点画像に基づく仮想視点コンテンツの生成においては、仮想視点画像が生成される。すなわち、複数のカメラが撮影した画像がサーバなどの画像処理部に集約され、当該画像処理部が、三次元モデル生成、レンダリングなどの処理を施し、仮想視点画像を生成する。そして、この仮想視点画像をユーザ端末に伝送することで、ユーザは仮想視点コンテンツの閲覧ができる。
ここで、上述したようにリプレイ画像を生成するためには、ハイフレームレートの高容量データが必要であるが、カメラの台数が多くなるほど、複数のカメラ全てをハイフレームレートで実用的な時間で伝送することは困難である。
上記特許文献1で開示される技術は、複数のカメラの画像をつなぎ合わせて広範囲な画像を生成する構成には適しているが、同一の被写体を複数のカメラを用いて撮影し、その画像から仮想視点画像を生成する本画像処理システムには適用できない。すなわち、カメラごとにフレームレートが変更される構成の特許文献1の技術は、各画像をつなぎ合わせて広範囲な画像を生成するのに各画像の制御が独立している。このため、画像をつなぎ合わせる際に画素の欠陥や欠落などがあっても画像を生成することができ、フレームレートが異なっていても問題はない。一方で、上述したような本システムは、複数のカメラが同一時刻に同一の被写体を撮影した画像から仮想視点画像を生成する。このため、仮想視点画像生成に用いる全てのカメラの画像が高精度に同一時刻で撮影したものでない場合、生成される仮想視点画像が劣化してしまうという問題がある。
また、本システムは、スポーツ競技などの生放送に対応するためのライブ画像とスロー再生を含めたリプレイ画像を混在させて仮想視点画像生成を行うことが好ましい。そのため、ライブ画像のフレームレートは落とさずに、より高速なフレームレートでのリプレイ画像の生成が必要となる。
以上のような課題を解決するため、本発明に係る実施形態は、複数のカメラを用いて仮想視点画像を生成するシステムにおいて、画質の高い仮想視点画像の生成に必要な複数の撮影画像をハイフレームレートで伝送できる技術を提供するものである。
以下、図面に従って本発明に係る実施形態を詳述する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施の形態1>
競技場(スタジアム)やコンサートホールなどの施設に複数のカメラ及びマイクを設置し撮影及び集音を行うシステムについて、図1を用いて説明する。
<画像処理システム100の説明>
図1は、画像処理システム100の構成を説明するための図である。画像処理システム100は、センサシステム110a,…,110zと、画像コンピューティングサーバ200と、コントローラ300と、スイッチングハブ180と、エンドユーザ端末190とを含む。
コントローラ300は、制御ステーション310と、仮想カメラ操作UI330とを含む。制御ステーション310は、画像処理システム100を構成するそれぞれのブロックに対して、ネットワーク310a,310b,310c、180a、180b、及び170a,…,170yを通じて動作状態の管理及びパラメータ設定制御などを行う。
<センサシステム110の説明>
最初に、センサシステム110a,…,センサシステム110zの26セットの画像及び音声をセンサシステム110zから画像コンピューティングサーバ200へ送信する動作について説明する。
画像処理システム100では、センサシステム110a,…,センサシステム110zがデイジーチェーンにより接続される。ここで、本実施形態において、特別な説明がない場合は、センサシステム110aからセンサシステム110zまでの26セットのシステムを区別せずセンサシステム110と記載する。各センサシステム110内の装置についても同様に、特別な説明がない場合は区別せず、マイク111、カメラ112、雲台113、外部センサ114、及びカメラアダプタ120と記載する。なお、センサシステムの台数として26セットと記載しているが、あくまでも一例であり、台数をこれに限定するものではない。また、本実施形態では、特に断りがない限り、画像という文言は、動画と静止画の概念を含むものとして説明する。すなわち、本実施形態の画像処理システム100は、静止画及び動画の何れについても処理可能である。また、本実施形態では、画像処理システム100により提供される仮想視点コンテンツには、仮想視点画像と仮想視点音声が含まれる例を中心に説明するが、これに限らない。例えば、仮想視点コンテンツに音声が含まれていなくても良い。また、例えば、仮想視点コンテンツに含まれる音声が、仮想視点に最も近いマイクにより集音された音声であっても良い。また、本実施形態では、説明の簡略化のため、部分的に音声についての記載を省略しているが、基本的に画像と音声は共に処理されるものとする。
センサシステム110a,…,110zは、それぞれ1台ずつのカメラ112a,…,112zを含む。すなわち、画像処理システム100は、同一の被写体を複数の方向から撮影するための複数のカメラを有する。カメラ112は、何れも光軸が固定され、パンやチルトといった左右や上下の動きは行わない。複数のセンサシステム110同士は、デイジーチェーンにより接続される。この接続形態により、撮影画像の4Kや8Kなどへの高解像度化及びハイフレームレート化に伴う画像データの大容量化において、接続ケーブル数の削減や配線作業の省力化ができる効果がある。
センサシステム110は、マイク111と、カメラ112と、雲台113と、外部センサ114と、カメラアダプタ120とを含んで構成されるが、この構成に限定するものではない。
マイク111aにて集音された音声と、カメラ112aにて撮影された画像は、カメラアダプタ120aにおいて後述の画像処理が施された後、デイジーチェーン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とを含む。
タイムサーバ290は、時刻及び同期信号を配信する機能を有し、スイッチングハブ180を介してセンサシステム110a,…,110zに時刻及び同期信号を配信する。時刻と同期信号を受信したカメラアダプタ120a,…,120zは、カメラ112a,…,112zを、時刻と同期信号とをもとにGenlockさせ画像フレーム同期を行う。すなわち、タイムサーバ290は、複数のカメラ112の撮影タイミングを同期させる。
フロントエンドサーバ230は、センサシステム110zから取得した画像及び音声から、セグメント化された伝送パケットを再構成してデータ形式を変換する。その後、カメラの識別子、画像か音声かを示すデータ種別、フレーム番号に応じてデータベース250に書き込む。
なお、フロントエンドサーバ230では、カメラアダプタ120から取得したデータをDRAM上に一次的に記憶し、前景画像、背景画像、音声データ及び三次元モデルデータが揃うまでバッファする。なお、前景画像、背景画像、音声データ及び三次元モデルデータをまとめて、以降では、撮影データと呼ぶ。撮影データには、ルーティング情報やタイムコード情報(時間情報)、カメラ識別子等のメタ情報が付与されており、フロントエンドサーバ230は、このメタ情報を元にデータの属性を確認する。これにより、フロントエンドサーバ230は、同一時刻のデータであることなどを判断してデータがそろったことを確認する。これは、ネットワークによって各カメラアダプタ120から転送されたデータについて、ネットワークパケットの受信順序は保証されず、ファイル生成に必要なデータが揃うまでバッファする必要があるためである。
また、背景画像は、前景画像とは異なるフレームレートで撮影されてもよい。例えば、背景画像のフレームレートが1fpsである場合、1秒毎に1つの背景画像が取得されるため、背景画像が取得されない時間については、背景画像が無い状態で全てのデータが揃ったとしてよい。また、フロントエンドサーバ230は、所定時間を経過してもデータが揃っていない場合には、データ集結ができないことを示す情報をデータベース250に通知する。
データベース250は、フロントエンドサーバ230から取得した、各カメラアダプタ120からの各フレームや画像データの受信状況を状態管理テーブルで管理する。例えば、各時刻と各カメラについて画像データが届いていなければ0、届いていれば1のフラグを立てることで対応できる。また、所定の時間ごと(例えば、1秒間)に、全て届いていれば1を、届いていない場合は所定時間内の各時刻と各カメラについて同様のフラグを立てることで管理できる。
バックエンドサーバ270は、仮想カメラ操作UI330から仮想視点の指定を受け付け、受け付けられた視点に基づいて、データベース250から対応する画像及び音声データを読み出し、レンダリング処理を行って仮想視点画像を生成する。この時、データベース250は、バックエンドサーバ270からの読み出し要求に対して、状態管理テーブルの受信状況に合わせてバックエンドサーバ270にデータを提供する。
なお、画像コンピューティングサーバ200の構成はこれに限らない。例えば、フロントエンドサーバ230、データベース250、及びバックエンドサーバ270のうち少なくとも2つが一体に構成されていてもよい。また、フロントエンドサーバ230、データベース250、及びバックエンドサーバ270の少なくとも何れかが複数存在していてもよい。また、画像コンピューティングサーバ200の任意の位置に、上記の装置以外の装置が含まれていてもよい。さらに、画像コンピューティングサーバ200の機能の少なくとも一部をエンドユーザ端末190や仮想カメラ操作UI330が有していてもよい。
レンダリング処理された仮想視点画像は、バックエンドサーバ270からエンドユーザ端末190に送信され、エンドユーザ端末190を操作するユーザは視点の指定に応じた画像の閲覧及び音声の視聴が出来る。すなわち、バックエンドサーバ270は、複数のカメラ112により撮影された撮影画像(複数視点画像)と視点情報とに基づく仮想視点コンテンツを生成する。より具体的には、バックエンドサーバ270は、例えば、複数のカメラアダプタ120により複数のカメラ112による撮影画像から切り出された所定領域の画像データと、ユーザ操作により指定された視点に基づいて、仮想視点コンテンツを生成する。そして、バックエンドサーバ270は、生成した仮想視点コンテンツをエンドユーザ端末190に提供する。
本実施形態における仮想視点コンテンツは、仮想的な視点から被写体を撮影した場合に得られる画像としての仮想視点画像を含むコンテンツである。言い換えると、仮想視点画像は、指定された視点における見えを表す画像であるとも言える。仮想的な視点(仮想視点)は、ユーザにより指定されても良いし、画像解析の結果等に基づいて自動的に指定されても良い。すなわち、仮想視点画像には、ユーザが任意に指定した視点に対応する任意視点画像(自由視点画像)が含まれる。また、複数の候補からユーザが指定した視点に対応する画像や、装置が自動で指定した視点に対応する画像も、仮想視点画像に含まれる。なお、本実施形態では、仮想視点コンテンツに音声データ(オーディオデータ)が含まれる場合の例を中心に説明するが、必ずしも音声データが含まれていなくても良い。
仮想カメラ操作UI330は、バックエンドサーバ270を介してデータベース250にアクセスする。バックエンドサーバ270で画像生成処理に係わる共通処理を行い、操作UIに係わるアプリケーションの差分部分を仮想カメラ操作UI330で行っている。
このように、画像処理システム100においては、被写体を複数の方向から撮影するための複数のカメラ112による撮影画像に基づいて、バックエンドサーバ270により仮想視点画像が生成される。なお、本実施形態における画像処理システム100は、上記で説明した物理的な構成に限定される訳ではなく、論理的に構成されていてもよい。
<機能ブロック図の説明>
次に、図1に記載のシステムにおけるカメラアダプタ120、バックエンドサーバ270、仮想カメラ操作UI330の機能ブロック図を説明する。
図2は、カメラアダプタ120の機能構成を説明するためのブロック図である。カメラアダプタ120は、ネットワークアダプタ6110と、伝送部6120と、画像処理部6130と、外部機器制御部6140と、を含む。ネットワークアダプタ6110は、データ送受信部6111と、時刻制御部6112とを含む。
データ送受信部6111は、デイジーチェーン170、ネットワーク291、及びネットワーク310aを介し、他のカメラアダプタ120、フロントエンドサーバ230、タイムサーバ290、及び制御ステーション310とデータ通信を行う。例えば、データ送受信部6111は、カメラ112による撮影画像から前景背景分離部6131により分離された前景画像と背景画像とを、別のカメラアダプタ120に対して出力する。出力先のカメラアダプタ120は、画像処理システム100のカメラアダプタ120のうち、データルーティング処理部6122の処理に応じて予め定められた順序における次のカメラアダプタ120である。各カメラアダプタ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を介してメッセージを受け取る。そして、メッセージに含まれるデータ種別に応じて、伝送プロトコル規定のパケットサイズにフラグメントされ画像データまたは音声データに復元する。なお、データを復元した際にデータが圧縮されている場合は、データ圧縮・伸張部6121が伸張処理を行う。
データルーティング情報保持部6125は、データ送受信部6111で送受信されるデータの送信先を決定するためのアドレス情報を保持する機能を有する。データルーティング情報保持部6125は、例えば、同一の注視点にフォーカスされた複数のカメラ112の設置情報および当該設置情報に基づき隣接するカメラ識別子を保持する。なお、設置情報は、制御ステーション310から各カメラアダプタ120に送信されて、データルーティング情報保持部6125に保存される。例えば、図1において、デイジーチェーン接続におけるカメラアダプタ120間でデータを伝送する構成において、伝送順序をあらかじめ決定しておいてもよい。具体的には、スイッチングハブ180から遠い位置にある2台のカメラ112から別方向に向けてスイッチングハブ180方向に伝送するように、制御ステーション310から送信される設置情報と伝送順序の情報に基づき、画像データの伝送ルートを決定する。このように構成することによって、カメラアダプタ120間のデータの相関を用いて、画像処理したデータをさらに別のカメラアダプタ120に伝送することが可能となる。
フレームレート変更部6126は、データ送受信部6111を介して他のカメラアダプタ120またはフロントエンドサーバ230へ画像データを転送するためのフレームレートを切り替える機能を有している。また、フレームレート変更部6126は、バックエンドサーバ270から送信されるフレームレート変更メッセージを受信する機能も有している。なお、フレームレート変更メッセージには、カメラの識別子、ノーマルフレームレートかハイフレームレートかを示すフレームレートの種別を示すメタ情報が含まれる。画像データのフレームレートを切り替える処理は、上記フレームレート変更メッセージに応じて実行される。この切り替え処理により、ライブ画像に十分なノーマルフレームレート(例えば、秒間60フレーム)と、スロー再生も可能なリプレイ画像用のハイフレームレート(例えば、秒間240フレーム)のどちらかに設定される。なお、フレームレートは2段階に限定されるものではなく、解像度等のデータ伝送量や画像仕様に応じて適宜設定すればよい。
なお、画像・音声伝送処理部6124は、画像データのフレームデータを、最大フレームレートで保持し、フレームレート変更メッセージに基づいて、ノーマルフレームレートのときは適宜対応するフレームのデータを抜き出して送信する。
また、カメラ制御部6141が、適宜フレームレート変更メッセージに応じて、カメラ112で出力フレームレートを切り替える構成でもよい。この場合は、画像データを一時的に保持するメモリを小さくすることができるが、伝送速度を考慮すると、最大フレームレートで一時的に保存しておいて、フレームレート変更メッセージに応じて、フレームレートを変更する方が好ましい。
画像処理部6130は、前景背景分離部6131と、三次元モデル情報生成部6132と、キャリブレーション制御部6133とを含む。画像処理部6130は、カメラ制御部6141の制御によりカメラ112が撮影した画像データ及び他のカメラアダプタ120から受取った画像データに対して処理を行う。
前景背景分離部6131は、カメラ112が撮影した画像データを前景画像と背景画像に分離する機能を有している。すなわち、複数のカメラアダプタ120それぞれの前景背景分離部6131は、複数のカメラ112のうち対応するカメラ112による撮影画像から所定領域を抽出する。所定領域は、例えば、撮影画像に対するオブジェクト検出処理の結果、オブジェクトが検出された領域である。前景背景分離部6131は、撮影画像から抽出した所定領域内の画像を前景画像、所定領域以外の領域の画像(すなわち、前景画像以外)を背景画像として、撮影画像を前景画像と背景画像とに分離する。なお、オブジェクトとは、例えば、人物である。ただし、これに限られず、オブジェクトは、特定の人物(選手、監督、および/または審判など)であっても良いし、ボール等の画像パターンが予め定められている物体であっても良い。また、オブジェクトとして、動体が検出されるようにしても良い。人物等の重要なオブジェクトを含む前景画像とそのようなオブジェクトを含まない背景画像を分離して処理することで、画像処理システム100において生成される仮想視点画像の上記のオブジェクトに該当する部分の画像の品質を向上できる。また、前景画像と背景画像の分離を複数のカメラアダプタ120それぞれが行うことで、複数のカメラ112を備えた画像処理システム100における負荷を分散させることができる。
三次元モデル情報生成部6132は、前景背景分離部6131で分離された前景画像及び他のカメラアダプタ120から受取った前景画像を利用し、例えば、ステレオカメラの原理を用いて三次元モデルに係わる画像情報を生成する機能を有している。
キャリブレーション制御部6133は、入力された画像に対して、カメラ毎の色のばらつきを抑えるための色補正処理や、カメラの振動に起因するブレに対して画像の位置合せ及び画像の切り出し処理などを行う。
キャリブレーション制御部6133は、キャリブレーションに必要な画像データを、カメラ制御部6141を介してカメラ112から取得し、キャリブレーションに係わる演算処理を行うフロントエンドサーバ230に送信する機能を有している。なお、本実施形態ではキャリブレーションに係わる演算処理をフロントエンドサーバ230で行っているが、演算処理を行うノードはフロントエンドサーバ230に限定されない。例えば、制御ステーション310やカメラアダプタ120(他のカメラアダプタ120を含む)など他のノードで演算処理が行われてもよい。また、キャリブレーション制御部6133は、カメラ制御部6141を介してカメラ112から取得した画像データに対して、予め設定されたパラメータに応じて撮影中のキャリブレーション(動的キャリブレーション)を行う機能を有している。
外部機器制御部6140は、カメラアダプタ120に接続する機器を制御する機能を有し、カメラ制御部6141と、マイク制御部6142と、雲台制御部6143と、センサ制御部6144とを含む。
カメラ制御部6141は、カメラ112と接続し、カメラ112の制御、撮影画像取得、同期信号提供、及び時刻設定などを行う機能を有している。カメラ112の制御には、例えば、撮影パラメータ(画素数、色深度、フレームレート、及びホワイトバランスなど)の設定及び参照、カメラ112の状態(撮影中、停止中、同期中、及びエラーなど)の取得、撮影の開始及び停止や、ピント調整などがある。同期信号提供は、時刻同期制御部6123がタイムサーバ290と同期した時刻を利用し、撮影タイミング(制御クロック)をカメラ112に提供することで行われる。時刻設定は、時刻同期制御部6123がタイムサーバ290と同期した時刻を例えばSMPTE12Mのフォーマットに準拠したタイムコードで提供することで行われる。これにより、カメラ112から受取る画像データに提供したタイムコードが付与されることになる。
マイク制御部6142、センサ制御部6144、雲台制御部6143は、それぞれ接続される、マイク111、外部センサ114、雲台113を制御する機能を有する。
<バックエンドサーバ270の説明>
図3は、バックエンドサーバ270の機能構成を説明するためのブロック図である。バックエンドサーバ270は、データ受信部3001と、背景テクスチャ貼り付け部3002と、前景テクスチャ決定部3003と、前景テクスチャ境界色合わせ部3004と、仮想視点前景画像生成部3005と、レンダリング部3006とを有する。さらに、仮想視点音声生成部3007と、合成部3008と、仮想視点コンテンツ出力部3009と、前景オブジェクト決定部3010と、要求リスト生成部3011と、要求データ出力部3012とを有する。また、背景メッシュモデル管理部3013と、レンダリングモード管理部3014と、カメラ選択部3015も有する。
データ受信部3001は、データベース250およびコントローラ300から送信されるデータを受信する。データベース250からは、スタジアムの形状を示す三次元データ(背景メッシュモデル)、前景画像、背景画像、前景画像の三次元モデル(以降、前景三次元モデルと称する)、及び音声を受信する。
また、データ受信部3001は、仮想視点画像の生成に係る視点を指定するコントローラ300から出力される仮想カメラパラメータを受信する。仮想カメラパラメータとは、仮想視点の位置や姿勢などを表すデータであり、例えば、外部パラメータの行列と内部パラメータの行列が用いられる。
さらに、データ受信部3001は、データベース250やコントローラ300などの外部の装置から、複数のカメラ112に関する情報を取得してもよい。複数のカメラ112に関する情報は、例えば、複数のカメラ112の数に関する情報や複数のカメラ112の動作状態に関する情報などである。カメラ112の動作状態には、例えば、カメラ112の正常状態、故障状態、待機状態、起動状態、及び再起動状態の少なくとも何れかが含まれる。また、各カメラアダプタ120から出力されるデータが、異なるフレームレートであることによって、同一時刻にデータ集結ができていないことを示す情報についても取得する。
背景テクスチャ貼り付け部3002は、背景メッシュモデル管理部3013から取得する背景メッシュモデルで示される三次元空間形状に対して背景画像をテクスチャとして貼り付ける。そうすることで、テクスチャ付き背景メッシュモデルを生成する。メッシュモデルとは、例えば、CADデータなど三次元の空間形状を面の集合で表現したデータのことである。テクスチャとは、物体の表面の質感を表現するために貼り付ける画像のことである。
前景テクスチャ決定部3003は、前景画像及び前景三次元モデル群より前景三次元モデルのテクスチャ情報を決定する。前景テクスチャ境界色合わせ部3004は、各前景三次元モデルのテクスチャ情報と各三次元モデル群からテクスチャの境界の色合わせを行い、前景オブジェクト毎に色付き前景三次元モデル群を生成する。
仮想視点前景画像生成部3005は、仮想カメラパラメータに基づいて、前景画像群を仮想視点からの見た目となるように透視変換する。レンダリング部3006は、レンダリングモード管理部3014で決定された、仮想視点画像の生成に用いられる生成方式に基づいて、背景画像と前景画像をレンダリングして全景の仮想視点画像を生成する。
本実施形態では仮想視点画像の生成方式として、モデルベースレンダリング(Model−Based Rendering:MBR)とイメージベース(Image−Based Rendering:IBR)の2つのレンダリングモードが用いられる。
MBRとは、被写体を複数の方向から撮影した複数の撮影画像に基づいて生成される三次元モデルを用いて仮想視点画像を生成する方式である。レンダリングモードがMBRの場合、背景メッシュモデルと前景テクスチャ境界色合わせ部3004で生成した前景三次元モデル群を合成することで全景モデルが生成され、その全景モデルから仮想視点画像が生成される。
IBRとは、対象のシーンを複数視点から撮影した入力画像群を変形、合成することによって仮想視点からの見えを再現した仮想視点画像を生成する技術である。本実施形態では、IBRを用いる場合、MBRを用いて三次元モデルを生成するための複数の撮影画像より少ない1又は複数の撮影画像に基づいて仮想視点画像が生成される。レンダリングモードがIBRの場合、背景テクスチャモデルに基づいて仮想視点から見た背景画像が生成され、そこに仮想視点前景画像生成部3005で生成された前景画像を合成することで仮想視点画像が生成される。なお、レンダリング部3006はMBRとIBR以外のレンダリング手法を用いてもよい。
レンダリングモード管理部3014は、仮想視点画像の生成に用いられる生成方式としてのレンダリングモードを決定し、決定結果を保持する。本実施形態では、レンダリングモード管理部3014は、複数のレンダリングモードから使用するレンダリングモードを決定する。この決定は、データ受信部3001が取得した情報に基づいて行われる。例えば、レンダリングモード管理部3014は、取得された情報から特定されるカメラの数が閾値以下である場合に、仮想視点画像の生成に用いられる生成方式をIBRに決定する。
一方、カメラ数が閾値より多い場合は生成方式をMBRに決定する。これにより、カメラ数が多い場合には、MBRを用いて仮想視点画像を生成することで視点の指定可能範囲が広くなる。また、カメラ数が少ない場合には、IBRを用いることで、MBRを用いた場合の三次元モデルの精度の低下による仮想視点画像の画質低下を回避することができる。また、例えば、撮影から画像出力までの許容される処理遅延時間の長短に基づいて生成方式を決めてもよい。遅延時間が長くても視点の自由度を優先する場合はMBR、遅延時間が短いことを要求する場合はIBRを用いる。また、例えば、コントローラ300やエンドユーザ端末190が仮想視点の高さを指定可能であることを示す情報をデータ受信部3001が取得した場合には、仮想視点画像の生成に用いられる生成方式をMBRに決定する。これにより、生成方式がIBRであることによってユーザによる仮想視点の高さの変更要求が受け入れられなくなることを防ぐことができる。このように、状況に応じて仮想視点画像の生成方式を決定することで、適切に決定された生成方式で仮想視点画像を生成できる。また、複数のレンダリングモードを要求に応じて切り替え可能な構成にすることで、柔軟にシステムを構成することが可能になり、本実施形態をスタジアム以外の被写体にも適用可能となる。
また、データ集結ができないことを示す情報が画像データの代わりに存在した場合、周囲の画像から補間して処理をすることによって、画像の欠損が無いようにすることができる。
仮想視点音声生成部3007は、仮想カメラパラメータに基づいて、仮想視点において聞こえる音声(音声群)を生成する。合成部3008は、レンダリング部3006で生成された画像群と仮想視点音声生成部3007で生成された音声を合成して仮想視点コンテンツを生成する。
仮想視点コンテンツ出力部3009は、コントローラ300とエンドユーザ端末190へEthernet(登録商標)を用いて仮想視点コンテンツを出力する。ただし、外部への伝送手段はEthernet(登録商標)に限定されるものではなく、SDI、DisplayPort、及びHDMI(登録商標)などの信号伝送手段を用いてもよい。なお、バックエンドサーバ270は、レンダリング部3006で生成された、音声を含まない仮想視点画像を出力してもよい。
前景オブジェクト決定部3010は、仮想カメラパラメータと前景三次元モデルに含まれる前景オブジェクトの空間上の位置を示す前景オブジェクトの位置情報から、表示される前景オブジェクト群を決定して、前景オブジェクトリストを出力する。つまり、前景オブジェクト決定部3010は、仮想視点の画像情報を物理的なカメラ112にマッピングする処理を実施する。
要求リスト生成部3011は、指定時間の前景オブジェクトリストに対応する前景画像群と前景三次元モデル群、及び背景画像と音声データをデータベース250に要求するための、要求リストを生成する。前景オブジェクトについては仮想視点を考慮して選択されたデータがデータベース250に要求されるが、背景画像と音声データについてはそのフレームに関する全てのデータが要求される。バックエンドサーバ270の起動後、背景メッシュモデルが取得されるまで背景メッシュモデルの要求リストが生成される。
要求データ出力部3012は、入力された要求リストを元に、データベース250に対してデータ要求のコマンドを出力する。背景メッシュモデル管理部3013は、データベース250から受信した背景メッシュモデルを記憶する。
カメラ選択部3015は、背景画像および前景三次元モデルに含まれる前景オブジェクトから、カメラのフレームレートを設定するための判断およびフレームレートを設定するカメラ識別子の選択をする。また、カメラアダプタ120内のフレームレート変更部6126に送信するためのフレームレート変更メッセージの生成および送信を行う。なお、フレームレート変更メッセージには、カメラの識別子、ノーマルフレームレートかハイフレームレートかのフレームレートの種別を示すメタ情報が含まれる。
図4は、カメラ選択部3015の動作について説明するための図である。図4では、被写体を異なる方向から撮影する複数のカメラ9100a,…,9100gが設置されている。本実施の形態に係るカメラ選択部3015は、例えば、球技のライン越え判定が可能な視野を有するカメラをハイフレームレートに設定するカメラとして選択する。すなわち、カメラ選択部3015は、注目するオブジェクト(以下、「注目オブジェクト)と呼ぶ)が注目領域に入ったときに、注目領域と所定の位置関係にあるカメラを、ハイフレームレートに設定するカメラとして選択する。例えば、撮影対象がサッカーゲームとする。注目オブジェクトであるボールがフィールドラインの近傍領域(注目領域)に入ったときに、近傍領域に近い位置にあるカメラ、例えば、フィールドラインの延直線上に位置するカメラをハイフレームレートのカメラとして選択する。
図4を参照して、具体的に、注目オブジェクト9101(本例では、ボール)が、地点9101a→地点9101b→地点9101cと移動し、フィールドライン9102の近傍領域9103に入った場合について説明する。この場合、カメラ選択部3015は、複数のカメラ9100のうち、フィールドライン9102の延直線上に一番近いカメラ9100fを選択する。なお、より画質の高い仮想視点画像を生成するために、その隣り合うカメラ9100e及び9100gも選択するようにしてもよい。つまり、カメラ選択部3015は、注目オブジェクト9101がフィールドライン9102の近傍領域9103に入ったことに応じて、選択範囲9104のカメラを選択する。
カメラの選択のタイミングは、注目領域にオブジェクトが入ったときである。例えば、背景画像におけるフィールドライン9102の近傍領域9103を、注目領域としてあらかじめ設定しておく。そして、カメラ選択部3015は、注目オブジェクトの世界座標系上の座標値と注目領域の座標値とを比較して、注目オブジェクトが注目領域に入ったと判断すると、カメラの選択処理を実行する。
注目領域は、撮影対象において注目されるシーンや場所に基づいて適宜設定される。例えば、サッカーであれば、ラインやゴールポストからの距離情報、野球であれば、各ベース付近、マウンド、ポール等に基づいて設定される。このように設定することによって、生成するリプレイ画像をスポーツ競技の判定に使用したり、重要なプレイが行われやすい範囲をスロー再生したりすることが可能となる。
図5は、選択されるカメラを説明するための図である。図5において、競技場(スタジアム)のフィールド9205周辺に設置されたカメラ9200a,…,9200z,9200A,…,9200Dのうち、黒塗りのカメラは、ハイフレームレート、白抜きのカメラは、ノーマルフレームレートのカメラである。
カメラ選択部3015は、注目オブジェクト9201がフィールドライン9202を超えたかどうかを判定可能な視野を有するカメラを選択する。すなわち、注目オブジェクト9201がフィールドライン9202の近傍領域に入ったとき、フィールドライン9202の延直線9203に近い位置に設置されたカメラが選択される。具体的には、注目オブジェクト9201を第1の方向から撮影するカメラ9200i,9200jと、第1の方向と対向する第2の方向から撮影するカメラ9200p,9200q,である。なお、選択されるカメラの台数は、状況に応じて適宜設定すればよい。
加えて、カメラ選択部3015は、注目オブジェクト9201の座標位置を基準として、延直線9203を90度回転させた、すなわち、延直線9203と注目オブジェクト9201の位置で直交する延直線9204に近い位置に設置されたカメラを選択する。具体的には、カメラ9200m,9200nと、カメラ9200A,9200Bである。これは、リプレイ画像として仮想視点画像を閲覧する場合に様々な方向から閲覧したい要求に対応するためである。
さらに、カメラ選択部3015は、それ以外のカメラを、例えば、交互に、すなわち、1台おきにハイフレームレートのカメラをとして選択する。具体的には、カメラ9200D,9200b,9200d,9200f,9200h,9200l,9200r,9200t,9200v,9200x,9200zである。これは、上記と同様に、仮想視点画像を生成するためであって、前述したMBRにより、複数の方向から撮影した複数の撮影画像に基づいて三次元モデルを生成するためである。
カメラ選択部3015は、最終的に選択されたカメラについて、フレームレートをハイフレームレートとするフレームレート変更メッセージを生成する。また、選択されなかったカメラについて、フレームレートをノーマルフレームレートとするフレームレート変更メッセージを生成する。生成されたフレームレート変更メッセージは、ネットワーク270aを経由して各センサシステム110に入力される。各センサシステム110のカメラアダプタ120はこれを受信し、フレームレート変更部6126(図2参照)に入力し、メッセージの内容に応じてフレームレート変更部6126がフレームレートを変更する。
なお、ノーマルフレームレートに設定されたカメラが撮影した画像データの時刻においては、ハイフレームレートに設定されたカメラで同一時刻に撮影した画像データがデータベース250に存在することになる。すなわち、ノーマルフレームレートとハイフレームレートの全てのカメラで撮影された同一時刻の画像データがデータベース250には集結している。しかしながら、ノーマルフレームレートに設定されたカメラが撮影する時刻以外のフレームにおいては、ハイフレームレートに設定されたカメラの画像データのみがデータベース250に存在することになる。したがって、ノーマルフレームレートに設定されたカメラが撮影する時刻以外では、全てのカメラの画像データがデータベース250には集結できていないことになる。
データベース250に画像データが集結できている場合は、先述したようにバックエンドサーバ270でレンダリング処理されて仮想視点画像を生成することができる。しかしながら、データベース250にある時刻における画像データが集結できていない場合は、バックエンドサーバ270で仮想視点画像を生成することができない。
そこで、本実施の形態では、カメラ選択部3015は、上述のように、少なくとも1台おきにノーマルフレームレートとハイフレームレートのカメラとして選択する。すなわち、同一時刻に、隣り合うカメラのうちの少なくとも一つのカメラの画像データが存在するように設定される。したがって、当該時刻に画像データが無いカメラの画像データは、隣接するカメラの画像データから当該カメラの画像データを生成することが可能となる。
仮想視点前景画像生成部3005において、当該画像データの生成は、例えば、射影変換を用いる。射影変換は、一般的な画像処理なのでここで詳細は説明しないが、隣接するカメラの平面の画像データを用いて、当該カメラの平面に射影する変換である。この変換によって、フレームデータの無い当該カメラの画像データを生成することができる。また、生成したい時刻の前後におけるノーマルフレームレートの画像データのピクセルデータの動き情報から新たなピクセルデータを計算し画像データを生成してもよい。
なお、上述した画像データが集結できている場合と画像データが集結できていない場合の各処理の実行は、バックエンドサーバ270が読み出すデータベース250が保持する状態管理テーブルのデータ集結状態に基づく。ところで、上記の構成では、少なくとも1台おきにノーマルフレームレートとハイフレームレートにカメラが設定されるとした。しかしながら、この構成に限定されるわけではなく、画像データが集結できていない場合の射影変換による画像データ生成が問題なく可能であれば必ずしも1台おきである必要はない。
図6は、仮想カメラ8001について説明するための図である。図6(a)において、仮想カメラ8001は、設置されたどのカメラ112とも異なる視点において撮影を行うことができる仮想的なカメラである。すなわち、画像処理システム100において生成される仮想視点画像が、仮想カメラ8001による撮影画像である。図6(a)において、円周上に配置された複数のセンサシステム110それぞれがカメラ112を有している。例えば、仮想視点画像を生成することにより、あたかもサッカーゴールの近くの仮想カメラ8001で撮影されたかのような画像を生成することができる。仮想カメラ8001の撮影画像である仮想視点画像は、設置された複数のカメラ112の画像を画像処理することで生成される。オペレータ(ユーザ)は仮想カメラ8001の位置等操作することで、自由な視点(視線方向)からの撮影画像を得ることができる。図6(b)において、仮想カメラパス8002は、仮想カメラ8001の1フレームごとの位置や姿勢を表す情報の列を示している。詳細は後述する。
図7は、仮想カメラ操作UI330の機能構成を説明するためのブロック図である。仮想カメラ操作UI330は、仮想カメラ管理部8130および操作UI部8120を有する。これらは同一機器上に実装されてもよいし、それぞれサーバとなる装置とクライアントとなる装置に別々に実装されてもよい。
仮想カメラ操作部8101は、オペレータの仮想カメラ8001に対する操作、すなわち仮想視点画像の生成に係る視点を指定するためのユーザによる指示を受け付ける。オペレータの操作内容は、例えば、仮想カメラ8001の位置の変更(移動)、姿勢の変更(回転)、及びズーム倍率の変更などである。また、仮想カメラ操作部8101は、ライブ画像およびリプレイ画像の生成に利用される。リプレイ画像を生成する際は、カメラの位置及び姿勢の他に時間を指定する操作が行われる。リプレイ画像では、例えば、時間を止めて仮想カメラ8001を移動させることも可能である。
仮想カメラパラメータ導出部8102は、仮想カメラ8001の位置や姿勢などを表す仮想カメラパラメータを導出する。仮想パラメータは、演算によって導出されてもよいし、ルックアップテーブルの参照などによって導出されてもよい。仮想カメラパラメータとして、例えば、外部パラメータを表す行列と内部パラメータを表す行列が用いられる。ここで、仮想カメラ8001の位置と姿勢は外部パラメータに含まれ、ズーム値は内部パラメータに含まれる。
仮想カメラ制約管理部8103は、仮想カメラ操作部8101により受け付けられる指示に基づく視点の指定が制限される制限領域を特定するための情報を取得し管理する。この情報は、例えば、仮想カメラ8001の位置や姿勢、ズーム値などに関する制約である。
衝突判定部8104は、仮想カメラパラメータ導出部8102で導出された仮想カメラパラメータが仮想カメラ制約を満たしているかを判定する。制約を満たしていない場合は、例えば、オペレータによる操作入力をキャンセルし、制約を満たす位置から仮想カメラ8001が動かないよう制御したり、制約を満たす位置に仮想カメラ8001を戻したりする。
フィードバック出力部8105は、衝突判定部8104の判定結果をオペレータにフィードバックする。例えば、オペレータの操作により、仮想カメラ制約が満たされなくなる場合に、そのことをオペレータに通知する。
仮想カメラパス管理部8106は、オペレータの操作に応じた仮想カメラ8001のパス(仮想カメラパス8002)を管理する。図6(b)において示したように、仮想カメラパス8002とは、仮想カメラ8001の1フレームごとの位置や姿勢を表す情報の列である。例えば、仮想カメラ8001の位置や姿勢を表す情報として仮想カメラパラメータが用いられる。例えば、60フレーム/秒のフレームレートの設定における1秒分の情報は、60個の仮想カメラパラメータの列となる。仮想カメラパス管理部8106は、衝突判定部8104で判定済みの仮想カメラパラメータを、バックエンドサーバ270に送信する。バックエンドサーバ270は、受信した仮想カメラパラメータを用いて、仮想視点画像及び仮想視点音声を生成する。また、仮想カメラパス管理部8106は、仮想カメラパラメータを仮想カメラパス8002に付加して保持する機能も有する。例えば、仮想カメラ操作UI330を用いて、1時間分の仮想視点画像及び仮想視点音声を生成した場合、1時間分の仮想カメラパラメータが仮想カメラパス8002として保存される。
オーサリング部8107は、オペレータがリプレイ画像を生成する際の編集機能を提供する。オーサリング部8107は、ユーザ操作に応じて、リプレイ画像用の仮想カメラパス8002の初期値として、仮想カメラパス管理部8106が保持する仮想カメラパス8002の一部を取り出す。仮想カメラ画像・音声出力部8108は、バックエンドサーバ270から受け取った仮想カメラ画像・音声を出力する。オペレータは出力された画像及び音声を確認しながら仮想カメラ8001を操作する。
<カメラ選択部3015の処理の説明>
続いて、バックエンドサーバ270のカメラ選択部3015の処理について説明する。図8は、カメラ選択部3015の処理を示すフローチャートである。
ステップS101において、カメラ選択部3015は、前景画像に注目オブジェクトがあるかどうかの判断を実行する。この処理は、撮影シーンに応じて適宜設定される注目オブジェクト(例えば、ボールなど)が前景画像に含まれているかどうかの判断を実行する。この判断は、例えば、画像データから特徴量を抽出し、学習アルゴリズムによって得られる学習結果データに照合して認識結果を獲得することで実行する。また、動体検出または画像認識など、所定の画像処理により注目オブジェクトを検出してもよい。これに限定されず、ユーザが制御ステーション310などから手動で指定しても構わない。前景画像に注目オブジェクトがあると判断した場合(ステップS101において、YES)、処理はステップS102に進む。そうでない場合(ステップS101において、NO)、処理はステップS110に進む。
ステップS102において、カメラ選択部3015は、背景画像に注目するライン(注目ライン)があるかどうかの判断を実行する。この処理は、データベース250から出力される背景画像データに基づく。注目ラインは、あらかじめエンドユーザ端末190を用いて、ユーザにより設定されている。フィールドのラインなど撮影シーンに応じて適宜設定された注目される範囲が背景画像データに含まれているかを確認する処理を行う。背景画像に注目ラインがあると判断した場合(ステップS103において、YES)、処理はステップS103に進む。そうでない場合(ステップS102において、NO)、処理はステップS110に進む。なお、注目ラインは、例えば、競技を行うフィールド上のラインであってよい。また、注目ラインは、注目オブジェクトの位置を通る直線であってもよい。
ステップS103において、カメラ選択部3015は、注目オブジェクトと注目ラインの座標位置を比較する処理を実行する。この処理は、ステップS101とステップS102で抽出されたオブジェクトとラインなどの世界座標系上の座標情報を用いて比較処理を行い、差分情報などの比較処理結果を一時的に保存する。
ステップS104において、カメラ選択部3015は、注目オブジェクトが注目領域に存在するかどうかの判断を実行する。例えば、図5においては、カメラ選択部3015は、注目オブジェクト9201がフィールドライン9202の近傍領域に存在するかどうか判断する。注目オブジェクトが注目領域内と判断された場合(ステップS104において、YES)、処理はステップS105に進む。そうでない場合(ステップS104において、NO)、処理はステップS110に進む。なお、注目領域は、例えば、競技を行うフィールド上のセンターエリア、ペナルティエリア、キックマークの近傍、サイドラインの近傍、ゴールラインの近傍またはゴールエリアであってもよい。
ステップS105において、カメラ選択部3015は、ステップS102で獲得した注目ラインの座標値データに基づき、注目ラインの延直線上に近い位置にあるカメラを選択する。例えば、図5においては、フィールドライン9202の延直線9203に近い位置にあるカメラ9200i,9200j、及びカメラ9200q,9200pが選択される。なお、カメラの設置情報は、あらかじめ世界座標系の座標値として位置づけられており、適宜設置情報を読み出し、平面の座標系に射影変換するなどして、対象となるカメラを特定する。
ステップS106において、カメラ選択部3015は、ステップS102で獲得した注目ラインの座標を注目オブジェクトの座標位置を基準に90度回転させ、回転させた注目ラインの延直線に近い位置にあるカメラを選択する。例えば、図5においては、延直線9203を90度回転させて得られた延直線9204に近いカメラ9200A,9200B、及びカメラ9200m,9200nが選択される。なお、ステップS102で獲得した注目ラインの座標を注目オブジェクトの座標位置を基準に90度で回転ではなく、任意の角度で回転させてよい。また、注目ラインの座標を注目オブジェクトの座標位置を基準に、例えば、60度〜120度など、幅がある角度帯で回転させてもよい。
ステップS107において、カメラ選択部3015は、ステップS105とステップS106で選択したカメラを除くカメラについて、例えば、1台おきにカメラを選択する処理を実行する。ステップS108において、カメラ選択部3015は、選択されたカメラに対してフレームレートを変更する情報を含めたフレームレート変更メッセージを作成する。
ステップS109において、カメラ選択部3015は、カメラアダプタ120のフレームレート変更部6126に対してフレームレート変更メッセージを送信し、処理を終了する。ステップS110において、カメラ選択部3015は、判断結果に基づいたメタ情報を生成し、エンドユーザ端末190に出力して処理を終了する。
上述した一連の処理とすることで、複数のカメラを備えた画像処理システムにおいて、注目オブジェクトを撮影するカメラを選択的にハイフレームレートにするメッセージを生成および出力することが可能となる。
<仮想視点前景画像生成部3005の処理の説明>
図9は、バックエンドサーバ270の仮想視点前景画像生成部3005の処理を示すフローチャートである。本システムでは、ノーマルフレームレートとハイフレームレートのカメラが設定されることから、ある時刻においてデータベース250に画像データが集結できている場合と画像データが集結できていない場合がある。仮想視点前景画像生成部3005は、画像データが集結できていない場合は、画像データを生成する処理を行う。仮想視点前景画像生成部3005の処理の後、レンダリング部3006において、仮想視点画像が生成される。
ステップS201において、仮想視点前景画像生成部3005は、データベース250からデータ集結状態を示す状態管理テーブルを読み出す。ステップS202において、仮想視点前景画像生成部3005は、仮想カメラパラメータに基づき、ある時刻において、仮想視点画像生成に必要な対象となるカメラの画像データが全て存在しているかどうかを読み出した状態管理テーブルから判断する。対象となるカメラの画像データが全て存在していると判断した場合(ステップS202において、YES)、処理は終了する。対象となるカメラの画像データのうち存在していないものがあると判断した場合(ステップS202において、NO)、処理はステップS203に進む。
ステップS203において、仮想視点前景画像生成部3005は、対象となるカメラのカメラ識別子のうち、例えば、一番数値の小さいものを初期値としてセットする。ステップS204において、仮想視点前景画像生成部3005は、セットされたカメラ識別子の画像データがあるかどうかを、状態管理テーブルに基づき判断する。画像データが無いと判断した場合(ステップS204において、NO)、処理はステップS205に進む。画像データがあると判断した場合(ステップS204において、YES)、処理はステップS207に進む。
ステップS205において、仮想視点前景画像生成部3005は、画像データを生成するために、画像補間に使用するためのデータをデータベース250から取得する。なお、ここで、データベース250から取得するデータとしては、例えば、当該カメラに隣接するカメラの画像データである。
ステップS206において、仮想視点前景画像生成部3005は、ステップS205で取得した画像データを射影変換するなどして、対象となるカメラの補間画像を生成する処理を実行する。
ステップS207では、仮想視点前景画像生成部3005は、対象となるカメラの画像データが全て存在するかどうかのチェックが終了したか判断する。チェックが終了していないと判断した場合(ステップS207において、NO)、処理はステップS204に戻り、対象となるカメラのカメラ識別子のうち、現在のカメラ識別子の次に数値の小さいものについてチェックする。一方、対象となるカメラの画像データが全て存在するかどうかのチェックが終了したと判断した場合(ステップS207において、YES)、仮想視点前景画像生成部3005は、処理を終了する。
なお、本実施形態において、ハイフレームレートのカメラ台数は、あらかじめ全体のカメラ台数とデータ容量で決定されているが、この構成に限定されるわけではない。例えば、フロントエンドサーバ230内に帯域監視部を構成してもよい。この場合、帯域監視部は、帯域を伝送するデータ容量に応じてカメラ台数を計算し、カメラ選択部3015にフィードバック制御することになる。
<ハードウェア構成について>
続いて、本実施形態を構成する各装置のハードウェア構成について説明する。上述の通り、本実施形態では、カメラアダプタ120がFPGA及び/又はASICなどのハードウェアを実装し、これらのハードウェアによって、上述した各処理を実行する場合の例を中心に説明した。それはセンサシステム110内の各種装置や、フロントエンドサーバ230、データベース250、バックエンドサーバ270、及びコントローラ300についても同様である。しかしながら、上記装置のうち、少なくとも何れかが、例えばCPU、GPU、DSPなどを用い、ソフトウェア処理によって本実施形態の処理を実行するようにしても良い。
図10は、カメラアダプタ120のハードウェア構成を示すブロック図である。なお、フロントエンドサーバ230、データベース250、バックエンドサーバ270、制御ステーション310、仮想カメラ操作UI330、及びエンドユーザ端末190などの装置も、図10のハードウェア構成となりうる。カメラアダプタ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の各部を繋いで情報を伝達する。
上述の実施形態は、画像処理システム100が競技場やコンサートホールなどの施設に設置される場合の例を中心に説明した。施設の他の例としては、例えば、遊園地、公園、競馬場、競輪場、カジノ、プール、スケートリンク、スキー場、ライブハウスなどがある。また、各種施設で行われるイベントは、屋内で行われるものであっても屋外で行われるものであっても良い。また、本実施形態における施設は、一時的に(期間限定で)建設される施設も含む。
<実施の形態2>
実施の形態1では、カメラ選択部は、オブジェクトが撮像領域の所定範囲に入ったときに、所定の手続きに基づきハイフレームレートにするカメラを選択していた。本実施の形態では、オブジェクトと仮想視点の位置関係に基づき、ハイフレームレートのカメラを選択する点が実施の形態1と異なる。
図11は、実施の形態2に係るバックエンドサーバ270の機能構成を説明するためのブロック図である。実施の形態1に係るバックエンドサーバ270を説明した図3と同じ符号については、上述した通りであるので詳細な説明は省略する。本実施の形態に係るカメラ選択部3016は、コントローラ300から仮想カメラパラメータを取得する点が、実施の形態1に係るカメラ選択部3015と異なる。カメラ選択部3016は、この情報を用いて、カメラのフレームレートを設定するための判断およびカメラ識別子の選択、フレームレート変更メッセージの生成および送信を行う。
図12は、カメラ選択部3016の動作について説明するための図である。図12(a)は、注目オブジェクト9301を撮影するカメラA〜G及び仮想視点9302を示し、図12(b)は、カメラA〜Gの撮影タイミングの遷移を示している。
本実施の形態におけるカメラ選択部3016は、仮想視点の視線方向と撮影方向が近いカメラをハイフレームレートに設定するカメラとして選択する。例えば、撮影対象がサッカーゲームとする。注目オブジェクトであるボールと連動して仮想視点が移動しているときに、仮想視点の視線方向と撮影方向が近いカメラ、すなわち、注目オブジェクトと仮想視点とを通る直線上に位置するカメラをハイフレームレートのカメラとして選択する。
図12(a)を参照して、具体的に、注目オブジェクト9301が、地点9301a→地点9301b→地点9301cと移動している場合について説明する。注目オブジェクト9301の移動に連動して、仮想視点9302は、地点9302a→地点9302b→地点9302cと移動する。ここで、世界座標系上で注目オブジェクト9301と仮想視点9302とを通る直線に一番近いカメラBを選択する。なお、より画質の高い仮想視点画像を生成するために、その隣り合うカメラA及びカメラCも選択するようにしてもよい。カメラ選択部3016は、注目オブジェクト9301及び仮想視点9302の移動に連動して、選択範囲9303a→選択範囲9303bE)→選択範囲9303cのカメラを選択する。
図12(b)を参照して、図12(a)で説明したカメラA〜Gの撮影タイミングの遷移について説明する。図12(b)では、カメラごとの撮影タイミングがプロットされている。図中の黒丸は、その時刻において撮影するカメラ、白丸は、その時刻において撮影しないカメラである。また、ノーマルフレームレートの時間軸情報をtNn、ハイフレームレートの時間軸情報をtHnとする。時刻tN0,tN1,tN2,…のタイミングで撮影された撮影画像に基づいて、注目オブジェクトの仮想視点画像がライブ画像として生成される。時刻tH0,tH1,tH2,…のタイミングで撮影された撮影画像に基づいて、オブジェクトの仮想視点画像がリプレイ画像として生成される。
カメラの選択のタイミングは、ノーマルフレームレートのタイミングである。例えば、時刻tN0で取得した仮想視点と注目オブジェクトの位置から、時刻tH0,tH1,tH2,tH3において、選択範囲9303aのカメラがハイフレームレートのカメラとして選択される。範囲9304a、9304b、9304cは、それぞれ時刻tN0,tN1,tN2で選択されたハイフレームカメラに対応している。ただし、この例では、選択するカメラの決定からフレームレートの設定までの遅延時間は考慮していない。
また、カメラ選択部3016は、上述したように、注目オブジェクトに対する仮想視点の視線方向に基づいて選択されるカメラ以外のカメラを、例えば、一台おきにハイフレームレートのカメラとして選択する。具体的には、カメラA,C,E,Gである。これは、仮想視点画像を生成するためであって、前述したMBRにより、複数の方向から撮影した複数の撮影画像に基づいて三次元モデルを生成する。ある時刻において、存在しないハイフレームレートの画像データは、隣り合うカメラの画像データを用いて補間して生成すればよい。補間画像の生成処理は、前述したように、バックエンドサーバ270の仮想視点前景画像生成部3005において実行する。
図13は、選択されるカメラを説明するための図である。図13において、競技場(スタジアム)のフィールド9205周辺に設置されたカメラ9200a,…,9200z,9200A,…,9200Dのうち、黒塗りのカメラはハイフレームレートのカメラ、白抜きのカメラはノーマルフレームレートのカメラである。
カメラ選択部3016は、仮想視点と同じ視線、および逆方向からの仮想視点コンテンツを閲覧できるようにするため、注目オブジェクト9402と仮想視点9401を通る直線9403に近いカメラを選択する。具体的には、カメラ9200u及びカメラ9200jである。
加えて、注目オブジェクト9402の座標位置を基準として、直線9403を90度回転させた直線9404に近いカメラを選択する。具体的には、カメラ9200c及び9200pである。
さらに、カメラ選択部3016は、それ以外のカメラを、例えば、1台おきに選択する。具体的には、カメラ9200b,9200d,9200f,9200h,9200l,9200n,9200r,9200t,9200v,9200x,9200z,9200B,9200Dである。
カメラ選択部3016は、最終的に選択されたカメラについて、先述した実施形態の構成のようにフレームレートをハイフレームレートとするようフレームレート変更メッセージを生成する。生成されたフレームレート変更メッセージは、ネットワーク270aを経由して各センサシステム110に入力される。各センサシステム110のカメラアダプタ120はこれを受信し、フレームレート変更部6126(図2参照)に入力し、メッセージの内容に応じて、フレームレート変更部6126がフレームレートを変更する。仮想視点画像の生成も実施の形態1と同様の構成と動作で行われる。
このように構成することで、複数のカメラを備えた画像処理システムにおいて、所定の方向を撮影するカメラを選択的にハイフレームレートにする。これにより、ノーマルフレームレートの伝送帯域を変更せず、画素の欠陥、欠落の無い仮想視点コンテンツを生成することが可能となる。しかも、リプレイ時にはライブ時と同じ視点での閲覧、さらには、ライブ時とは異なる反対方向からの仮想視点コンテンツを閲覧することが可能となる。
<他の実施の形態>
先述したカメラ選択部は、バックエンドサーバ270内に構成したが、当該構成に限定されるものではない。例えば、フロントエンドサーバ230に構成してもよく、実施の形態1と同様に、オブジェクト情報と対象となる背景画像データの情報を一時的に保存および判断できる構成であればよい。また、同様の構成をカメラアダプタ120で実現してもよく、カメラ台数に応じてコストが変動するものの、カメラ画像データの流れにおいて上流で処理できるので、より高速にカメラ選択の判断が可能となる。
さらには、カメラ選択の判断要素として、実施の形態1では、注目オブジェクトと背景画像データに基づいて実行したが、当該構成に限定されるものではない。例えば、仮想視点と複数のオブジェクトとの位置関係で、カメラを選択してもよい。この場合、複数のオブジェクトに対して仮想カメラが移動するようなリプレイ画像用の仮想カメラパスを生成して、その仮想カメラパスに基づいて、ハイフレームレートにするカメラを選択することになる。また、さらには、複数のオブジェクトの位置関係に基づいて、カメラを選択し、当該情報に基づいて、仮想カメラパラメータを生成して、仮想画像を生成してもよい。
また、上述の実施の形態では、ハイフレームレートの時刻において、存在しない画像データの補間画像生成処理は、バックエンドサーバ270の仮想視点前景画像生成部3005において実行していた。しかしながら、当該構成に限定されるものではなく、フロントエンドサーバ230の画像処理部2150で実行し、データベース250に出力してもよい。
上記のように構成することによって、先述の実施の形態と同様に、注目オブジェクトを撮影するカメラを選択的にハイフレームレートにするので、ノーマルフレームレートの伝送帯域を変更せず、画質の高い仮想視点コンテンツを生成することが可能となる。
また、上述の実施の形態において、カメラ選択部3015は、ハイフレームレートにするカメラを選択していた。しかしながら、カメラ選択部3015は、注目するオブジェクトの位置に応じて、フレームレートを下げるカメラを選択してもよい。この場合、例えば、カメラ選択部3015は、球技のライン越え判定が可能な視野を有さないカメラを、フレームレートを下げるカメラとして選択する。また、例えば、図4において、カメラ選択部3015は、フィールドライン9102の延直線上に一番遠いカメラ9100aやその周辺のカメラを、フレームレートを下げるカメラとして選択してもよい。また、この場合、カメラ選択部3015は、図8のステップS108において、フレームレートを下げるカメラに、フレームレートを下げることを指示するフレームレート変更メッセージを送信してもよい。
また、上述の実施の形態において、注目オブジェクトは、ボールとして説明を行ったがこれに限らない。例えば、注目オブジェクトは、選手や審判などの人物であってもよい。また、注目オブジェクトを相手チームのペナルティエリアに存在するオフェンス側の選手などの特定の領域に存在する人物としてもよい。この場合、ゴールやシュートなど注目すべきイベントが生じるシーンをハイフレームレートで撮影することができる。また、注目オブジェクトを、複数のオブジェクトとしてもよい。また、注目オブジェクトは、特定条件を満たすオブジェクトであってもよい。例えば、ボールをキープしている選手を注目オブジェクトとしてもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。