以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
先ず、本実施形態に係る画像処理システムの構成例について、図1のブロック図を用いて説明する。本実施形態に係る画像処理システム100は、競技場(スタジアム)やコンサートホールなどの施設を複数方向から撮影及び収音し、該撮影及び収音の結果を用いて任意の視点(仮想視点)からの映像及び音を仮想視点コンテンツとしてユーザに提供可能にする。図1に示す如く、本実施形態に係る画像処理システム100は、撮影及び収音を行う複数のセンサシステム110a〜110z、センサシステム110a〜110zが収集した情報を管理するサーバシステム200を有する。更に画像処理システム100は、各種の制御を行うコントローラ300、サーバシステム200が提供する任意の視点における映像及び音をユーザに提供する端末装置190、を有する。
先ず、センサシステム110a〜110zについて説明する。以下では、センサシステム110a〜110zで共通の説明を行う場合には、センサシステム110a〜110zをまとめてセンサシステム110と称する。また、マイク111a〜111zで共通の説明を行う場合には、マイク111a〜111zをまとめてマイク111と称する。また、カメラ(撮像装置)112a〜112zで共通の説明を行う場合には、カメラ112a〜112zをまとめてカメラ112と称する。また、雲台113a〜113zで共通の説明を行う場合には、雲台113a〜113zをまとめて雲台113と称する。また、外部センサ114a〜114zで共通の説明を行う場合には、外部センサ114a〜114zをまとめて外部センサ114と称する。また、カメラアダプタ120a〜120zで共通の説明を行う場合には、カメラアダプタ120a〜120zをまとめてカメラアダプタ120と称する。また、センサシステム110a〜110zのうちセンサシステム110a側に向かって上流、センサシステム110z側に向かって下流とする。つまり、センサシステム110aは最上流のセンサシステム、センサシステム110zは最下流のセンサシステムとなる。
図1に示す如く、センサシステム110a〜110z(実際にはカメラアダプタ120a〜120z)はネットワーク170a〜170yを介してデイジーチェーンにより接続されている。センサシステム110a〜110zのうちセンサシステム110a、110zはそれぞれネットワーク180a、180bを介してスイッチングハブ180に接続されている。また、センサシステム110a〜110yのそれぞれは、後段のセンサシステム110b〜110zとネットワーク170a〜170yを介して接続されている。
ネットワーク170a〜170y、180a、180bは、Ethernet(登録商標)であるIEEE標準準拠のGbE(ギガビットイーサーネット)や10GbEであってもよい。また、ネットワーク170a〜170y、180a、180bは、インターコネクトInfiniband、産業用イーサーネット等を組合せて構成されてもよい。また、ネットワーク170a〜170y、180a、180bは、これらのネットワークに限らず、他の種別のネットワークであってもよい。
マイク111a〜111zは何れも音を収集するためのもので、収集した音のデータ(音声データ)はそれぞれカメラアダプタ120a〜120zに送出される。
カメラ112a〜112zは何れも画像を撮像するためのもので、撮像した画像はそれぞれカメラアダプタ120a〜120zに送出される。カメラ112a〜112zが撮像する画像は静止画像であっても良いし、動画像を構成する各フレームの画像であっても良い。つまり、カメラ112a〜112zは静止画像を撮像するカメラであっても良いし、動画像を撮像するカメラであっても良い。
雲台113a〜113zはそれぞれカメラ112a〜112zが載置されて、その姿勢を変更するためのものである。
外部センサ114a〜114zは何れも様々なセンサにより構成することができ、例えば、自身の振動を検出するためにジャイロセンサであっても良い。外部センサ114a〜114zが検出した情報はそれぞれ、カメラアダプタ120a〜120zにて処理される。
カメラアダプタ120a〜120zのそれぞれは、マイク111a〜111z、カメラ112a〜112z、外部センサ114a〜114zから送出された情報を処理する。より詳しくは、カメラアダプタ120aは、マイク111a、カメラ112a、外部センサ114aからの情報を処理し、その処理結果に基づく転送情報(パケット)を後段のカメラアダプタ120bに転送する機能(発信機能)を有する。カメラアダプタ120b〜120yのそれぞれは、カメラアダプタ120a〜120xから転送された転送情報(パケット)を、後段のカメラアダプタ120c〜120zに転送する機能(転送機能)を有する。更にカメラアダプタ120b〜120yは、マイク111b〜111y、カメラ112b〜112y、外部センサ114b〜114yからの情報を処理し、その処理結果に基づく転送情報(パケット)を後段のカメラアダプタ120c〜120zに転送する機能(発信機能)も有する。カメラアダプタ120zは、カメラアダプタ120yから転送された転送情報(パケット)を、後段のスイッチングハブ180に転送する機能(転送機能)を有する。更にカメラアダプタ120zは、マイク111z、カメラ112z、外部センサ114zからの情報を処理し、その処理結果に基づく転送情報(パケット)を後段のスイッチングハブ180に転送する機能(発信機能)を有する。このように、カメラアダプタ120aについては発信機能を有し、カメラアダプタ120b〜120zについては発信機能及び転送機能を有していることになる。
このような構成により、カメラアダプタ120zからは、センサシステム110a〜110zからの転送情報が、スイッチングハブ180を介してサーバシステム200に対して送出される。
なお、センサシステム110の構成は図1に示した構成に限らない。例えば、センサシステム110はマイク111を有していなくても良いし、外部センサ114を有していなくても良い。また、マイク111、カメラ112、外部センサ114、カメラアダプタ120の数についても図1に示した数(=1)に限らず、複数であっても良い。また、カメラ112とカメラアダプタ120とが一体となって構成されていてもよい。その場合、マイク111は一体化されたカメラ112に内蔵されてもよいし、カメラ112の外部に接続されていてもよい。また、カメラアダプタ120の機能の一部を後述するサーバシステム200が実施するようにしても良い。
次にサーバシステム200について説明する。サーバシステム200は、スイッチングハブ180を介してセンサシステム110a〜110zを同期させる制御を行ったり、スイッチングハブ180を介してセンサシステム110zから受信した転送情報に基づいて、被写体の三次元モデルを生成する。またサーバシステム200は、コントローラ300から指定された視点(仮想視点)に対応する画像(上記三次元モデルを用いた画像)や音のデータを、スイッチングハブ180を介してセンサシステム110zから受信した転送情報に基づいて生成する。そしてサーバシステム200は、該生成した画像や音のデータを端末装置190に送信する。上記の通り、センサシステム110の構成によっては、音の収集は行わないため、このような構成の場合、サーバシステム200は、仮想視点に対応する音は生成せずに、仮想視点に対応する画像を生成して端末装置190に対して送信する。サーバシステム200は単体のサーバ装置で構成しても良いし、複数台のサーバ装置で構成しても良い。
次にコントローラ300について説明する。コントローラ300は、仮想視点を指定するためにも使用される。仮想視点の指定方法には様々な方法が考えられる。例えば、仮想視点を指定するためのGUI(グラフィカルユーザインターフェース)を表示画面に表示し、ユーザがキーボードやマウスを用いて該GUIを操作して仮想視点を指定しても良い。また、予め定められた規則に従ってコントローラ300が仮想視点を移動させても良い。また、コントローラ300は、スイッチングハブ180、ネットワーク180a、180b、170a〜170yを介してセンサシステム110a〜110zの動作制御も行う。なお、図1では、サーバシステム200とコントローラ300とは別個の装置としているが、サーバシステム200とコントローラ300とを一体化しても良い。
次に、端末装置190について説明する。端末装置190は、スマートフォンやタブレット端末装置、PC(パーソナルコンピュータ)などの機器であり、サーバシステム200から送信された情報を受信してユーザに提示可能な機器である。つまり端末装置190は、サーバシステム200から仮想視点に対応する画像を受信すると、該画像を表示し、サーバシステム200から仮想視点に対応する音声データを受信すると、該音声データに基づいて該音を再生する。なお、サーバシステム200による画像や音の出力先は、端末装置190に限らない。
以上説明した各機能部の動作は一例であり、上記の動作のみを行うことに限らない。また、図1ではセンサシステム110の数を26としているが、センサシステム110の数は26に限らない。また、センサシステム110a〜110zの接続形態は上記のようにデイジーチェーンに限らない。例えば、センサシステム110a〜110zのそれぞれをスイッチングハブ180に接続し、スイッチングハブ180を経由してセンサシステム110間でデータの送受信を行うスター型のネットワーク構成を採用しても良い。
また、図1では、デイジーチェーンとなるようセンサシステム110a〜110zの全てがカスケード接続されている構成を示した。しかし、例えば、センサシステム110a〜110zをいくつかのグループに分割し、グループ単位でセンサシステム110間をデイジーチェーン接続してもよい。この場合、グループ内で終端となるセンサシステム110のカメラアダプタ120がスイッチングハブ180に接続される。このような構成は、スタジアムにおいて特に有効である。例えば、スタジアムが複数階で構成され、フロア毎にセンサシステム110を配備する場合が考えられる。この場合に、フロア毎、あるいはスタジアムの半周毎にサーバシステム200への転送情報の転送を行うことができ、全センサシステム110を1つのデイジーチェーンで接続する配線が困難な場所でも設置の簡便化及びシステムの柔軟化を図ることができる。なお、デイジーチェーン接続されてサーバシステム200への入力を行うカメラアダプタ120が1つであるか2つ以上であるかに応じて、サーバシステム200での処理の制御が切り替えられる。すなわち、センサシステム110が複数のグループに分割されているかどうかに応じて制御が切り替えられる。サーバシステム200への入力を行うカメラアダプタ120が1つの場合は、デイジーチェーン接続で伝送を行いながら競技場全周画像が生成されるため、サーバシステム200において全周の画像データが揃うタイミングは同期がとられている。すなわち、センサシステム110がグループに分割されていなければ、同期はとれる。しかし、サーバシステム200への入力を行うカメラアダプタ120が複数になる(センサシステム110がグループに分割される)場合は、それぞれのデイジーチェーンのレーン(経路)によって遅延が異なる場合が考えられる。そのため、サーバシステム200において全周の画像データが揃うまで待って同期をとる同期制御によって、転送情報の集結をチェックしながら後段の画像処理を行う必要があることを明記しておく。
また、以上説明した各機能部の機能の一部若しくは全部を他の機能部に実施させるようにしても良い。また、情報の送受信時に該情報の符号化/復号を適宜行うようにしても良い。また、画像処理システム100は、図1で説明した物理的な構成に限定される訳ではなく、論理的に構成されていてもよい。
次に、カメラアダプタ120の機能構成例について、図2のブロック図を用いて説明する。図2に示す如く、カメラアダプタ120は、外部機器制御部6140、画像処理部6130、伝送部6120、ネットワークアダプタ6110を有する。図2に示した各機能部は全てハードウェアで実装しても良いし、一部若しくは全部をソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、カメラアダプタ120は、このソフトウェアを実行するプロセッサを有する必要がある。
先ず、ネットワークアダプタ6110について説明する。ネットワークアダプタ6110は、カメラアダプタ120自身が生成した転送情報や上流側のネットワークアダプタ6110から転送されてきた転送情報を、後段のネットワークアダプタ6110に対して転送するためのものである。
次に、伝送部6120について説明する。伝送部6120は、処理部6122と情報保持部6125とを有する。
情報保持部6125には、自身よりも下流側に位置するカメラアダプタ120を特定するための情報が登録されている。本実施形態では、カメラ112a〜120zはW(Wは1以上の整数)個のグループに区分されており、グループ内のカメラは何れも同じ注視点にフォーカスしたカメラであるものとする。つまり、カメラ112a〜120zは、W個の注視点のそれぞれにフォーカスしているカメラグループによって構成されている。然るにカメラ112α(α=a〜z)に対応するカメラアダプタ120αの情報保持部6125には、カメラ112αと同グループに属する他のカメラに対応するカメラアダプタ120αのアドレス情報が登録されている。カメラ112a〜120zがW個のグループに区分されているということは、カメラ112a〜120zのそれぞれに対応するカメラアダプタ120a〜120zも同様にW個のグループに区分されていることになる。従って、カメラアダプタ120a〜120zのそれぞれには、自身が属するグループを特定するための情報(例えばグループ番号)であるグループ情報が設定されているものとする。
カメラ112a〜120i(カメラアダプタ120a〜120i)が2つのグループに分かれている構成を図11に示す。図11では、カメラ112a〜120iが2つのグループ(注視点グループA、注視点グループB)に区分されている。より詳しくは、カメラ112a、112c、112e、112gは、注視点Aとしての被写体6302Aにフォーカスされたものであり、注視点グループAを形成している。一方、カメラ112b、112d、112f、112h、112iは、注視点Bとしての被写体6302Bにフォーカスされたものであり、注視点グループBを形成している。
ここでは、同じ注視点グループに属するカメラ112の中で最も近い(接続ホップ数が小さい)カメラ112の組を論理的に隣接していると表現する。例えば、カメラ112aとカメラ112bは、物理的には隣接しているが、異なる注視点グループに属するため論理的には隣接していない。カメラ112aと論理的に隣接しているのは、カメラ112cである。一方、カメラ112hとカメラ112iは、物理的に隣接しているだけでなく、論理的にも隣接している。
図2に戻って、処理部6122は、情報保持部6125に登録されているアドレス情報を用いて、カメラアダプタ120から転送される転送情報の転送先(ルーティング先)を決定する。本実施形態では、処理部6122は、情報保持部6125に登録されているアドレス情報に対応するカメラアダプタ120(カメラ112)の並び順において、自身よりも1つ下流のカメラアダプタ120のアドレス情報をルーティング先として決定する。以下では、「情報保持部6125に登録されているアドレス情報に対応するカメラアダプタ120(カメラ112)の並び順において、自身よりも1つ下流のカメラアダプタ120」を、「自身よりも論理的に1つ下流のカメラアダプタ120」と称する場合がある。
なお、各グループの最下流のカメラ112に対応するカメラアダプタ120の情報保持部6125には何も登録されておらず、該カメラアダプタ120の処理部6122は、ルーティング先をスイッチングハブ180として決定する。
次に、画像処理部6130について説明する。画像処理部6130は、分離部6131と生成部6132とを有する。分離部6131は、カメラ112が撮像した画像の前景部分を表す前景画像と、背景部分を表す背景画像と、を生成する。例えば分離部6131は、画像中の被写体(人などのオブジェクト)の領域内の画像を前景画像として抽出し、残りの領域内の画像を背景画像とする。
生成部6132は、分離部6131が生成した前景画像と、ネットワークアダプタ6110が受信した転送情報に含まれている前景画像と、を用いて、例えばステレオカメラの原理を用いて、被写体の三次元モデルを生成する際に利用される画像情報を生成する。
次に、外部機器制御部6140について説明する。外部機器制御部6140は、マイク制御部6142、カメラ制御部6141、雲台制御部6143、センサ制御部6144を有する。
マイク制御部6142は、マイク111の制御や、マイク111による収音の開始/終了の制御を行う。マイク111の制御とは、例えば、ゲイン調整や、マイク111の状態の取得などである。また、マイク制御部6142は、マイク111から出力された音声信号に対してA/D変換を含む様々な処理を行うことで音声データを生成する。
カメラ制御部6141は、コントローラ300からの指示に応じてカメラ112の動作制御を行うためのもので、例えばカメラ112の同期制御や、カメラ112の撮像パラメータの設定(画素数、色深度、フレームレート、ホワイトバランスの設定等)を行う。撮像パラメータの制御は、コントローラ300からの指示に応じて行うことに限らず、例えば、オートフォーカス機能などはコントローラ300からの指示に応じて行うのではなく、カメラ制御部6141が撮像画像を分析するなどして行う。更にカメラ制御部6141は、カメラ112から出力される画像信号に対してA/D変換を含む様々な画像処理を行うことで画像のデータを生成する。更にカメラ制御部6141は、カメラ112の状態(撮影中、停止中、同期中、及びエラーなどのステータス情報)の取得や、カメラ112に対して撮像開始/終了を指示する。マイク111やカメラ112の状態(ステータス情報)は定期的に、若しくはコントローラ300からの要求に応じてコントローラ300に対して送出される。
雲台制御部6143は、コントローラ300からの指示などに応じて、雲台113の動作制御を行い、これによりカメラ112の姿勢を該指示に応じた姿勢に変更することができる(パン・チルト制御)。更に雲台制御部6143は、雲台113の状態を取得する。
センサ制御部6144は、外部センサ114の動作制御を行うと共に、外部センサ114から出力された信号にA/D変換を含む様々な処理を行うことで、センサ値を取得する。例えば、外部センサ114としてジャイロセンサが利用される場合、センサ制御部6144は、外部センサ114からカメラ112の振動を表す情報(振動情報)を取得することができる。そして、センサ制御部6144が取得した振動情報を用いて、画像処理部6130は、分離部6131での処理に先立って、振動を抑えた画像を生成することができる。振動情報は例えば、8Kカメラの画像を、振動情報を考慮して、元の8Kサイズよりも小さいサイズで切り出して、隣接設置されたカメラ112の画像との位置合わせを行う場合に利用される。これにより、建造物の躯体振動が各カメラに異なる周波数で伝搬しても、カメラアダプタ120に配備された本機能で位置合わせを行う。その結果、電子的に防振された画像データを生成でき、サーバシステム200におけるカメラ112の台数分の位置合わせの処理負荷を軽減する効果が得られる。なお、センサシステム110のセンサは外部センサ114に限らず、カメラアダプタ120に内蔵されたセンサであっても同様の効果が得られる。
そしてネットワークアダプタ6110は、分離部6131が生成した前景画像及び背景画像、マイク制御部6142が生成した音声データ、生成部6132が生成した画像情報、を含む転送情報をパケットとして、処理部6122が決定したルーティング先に向けて転送する。なお、パケットのヘッダ情報には、カメラアダプタ120に設定されているグループ情報が含まれている。
なお、パケットに含める情報は上記の情報に限らない。例えば、画像や音に係るメタデータをパケットに含めるようにしても良い。また、前景画像及び背景画像の両方を必ずパケットに含めることに限らず、例えば、背景画像をパケットに含めないようにしても良い。また上記の通り、パケットに含める情報は適宜圧縮しても構わない。
以下では説明を簡単にするために、パケットに音声データを含めるための構成/処理については説明を省く。
次に、カメラアダプタ120が転送情報を生成するために行う処理について、同処理のフローチャートを示す図3を用いて説明する。ステップS6501では、カメラ制御部6141は、カメラ112により撮像された撮像画像を取得する。ステップS6502では、分離部6131は、ステップS6501で取得した撮像画像を前景画像と背景画像とに分離する。撮像画像のどの部分を前景とし、どの部分を背景とするのかについては特定の形態に限らない。ステップS6503では、分離部6131は、前景画像及び背景画像を圧縮する。圧縮方式については特定の圧縮方式に限らない。例えば、前景画像に対しては可逆圧縮を行い、背景画像に対しては非可逆圧縮を行う。なお、上記の通り、前景画像及び背景画像は圧縮しなくても良いし、一方のみを圧縮しても良い。
次に、カメラアダプタ120の動作について、図4のフローチャートを用いて説明する。なお、図4のフローチャートに従った処理は、カメラアダプタ120b〜120yにおいて行われる。カメラアダプタ120aは、前景画像及び背景画像、グループ情報を含むパケットを生成してカメラアダプタ120bに伝送する処理を行う。カメラアダプタ120zは図4のフローチャートにおいてルーティング先をスイッチングハブ180とした処理を行う。
ステップS6601では、ネットワークアダプタ6110は、自カメラアダプタ120の1つ上流側のカメラアダプタ120のネットワークアダプタ6110から転送されたパケットを受信する。ここで、自カメラアダプタ120の動作モードとしてバイパス制御モードが設定されている場合には、処理はステップS6602を介してステップS6611に進む。一方、自カメラアダプタ120の動作モードとしてバイパス制御モードが設定されていない場合(通常制御モードが設定されている場合)には、処理はステップS6602を介してステップS6603に進む。
ステップS6611では、ネットワークアダプタ6110は、ステップS6601で受信したパケットを、1つ下流側のカメラアダプタ120のネットワークアダプタ6110に転送(バイパス伝送)する。
一方、ステップS6603では、伝送部6120は、ステップS6601で受信したパケットのヘッダ情報に含められているグループ情報が、自カメラアダプタ120のグループ情報と同じであるか否かを判断する。同じであると判断した場合、ステップS6601で受信したパケットはバイパス伝送対象のパケットではないと判断する。一方、同じではないと判断した場合、ステップS6601で受信したパケットはバイパス伝送対象のパケットであると判断する。バイパス伝送対象のパケットとしては、これ以外にもあり、例えば、コントローラ300から送信された各種の制御指示のパケット等がある。
ステップS6601で受信したパケットがバイパス伝送対象のパケットである場合には、処理はステップS6604を介してステップS6610に進む。一方、ステップS6601で受信したパケットがバイパス伝送対象のパケットではない場合には、処理はステップS6604を介してステップS6608に進む。
ステップS6610では、ネットワークアダプタ6110は、ステップS6601で受信したパケットを、1つ下流側のカメラアダプタ120のネットワークアダプタ6110に転送(バイパス伝送)する。
一方、ステップS6608では、分離部6131は、カメラ112により撮像された撮像画像を前景画像と背景画像とに分離する。伝送部6120は、ステップS6601で受信したパケットを画像処理部6130に転送する。生成部6132は、分離部6131により分離された前景画像と、伝送部6120によって伝送されたパケット(ステップS6601で受信したパケット)中の前景画像とを用いて、三次元モデルを生成するために要する画像情報(三次元モデル情報)を生成する。
ステップS6609では、ネットワークアダプタ6110は、ステップS6608で生成した三次元モデル情報、ステップS6608で生成した前景画像及び背景画像、自カメラアダプタ120のグループ情報、を含むパケットを生成する。また、処理部6122は、情報保持部6125が保持するアドレス情報を参照し、このパケットのルーティング先として、自カメラアダプタ120よりも論理的に1つ下流側のカメラアダプタ120のネットワークアダプタ6110を決定する。そしてネットワークアダプタ6110は、該生成したパケットと、ステップS6601で受信したパケットと、を1つ下流側のカメラアダプタ120のネットワークアダプタ6110に転送する(ルーティング先は処理部6122が決定したルーティング先)。
ここで、上記のバイパス伝送(バイパス制御)について、図5を例にとり説明する。図5では、カメラアダプタ120bによるバイパス伝送について示している。カメラアダプタ120aから受信したパケットがバイパス伝送対象のパケットである場合や、カメラアダプタ120bの動作モードがバイパス制御モードであるとする。この場合、ルーティング先の制御は行われず、伝送部6120bは、カメラアダプタ120aから受信したパケットを画像処理部6130bに転送することなく、1つ下流側のカメラアダプタ120cにネットワークアダプタ6110bを介して転送する。
例えばカメラアダプタ120bは、カメラ112bの状態が撮影停止中やキャリブレーション中、又はエラー処理中である場合には、動作モードをバイパス制御モードに切り替える。また例えば、伝送部6120または画像処理部6130などの動作不良などが発生した場合にも、バイパス制御モードに切り替える。また、ネットワークアダプタ6110が伝送部6120の状態を検知し、能動的にバイパス制御モードに切り替えても良い。なお、伝送部6120または画像処理部6130がエラー状態や停止状態にあることを検知するサブCPUをカメラアダプタ120bに配備し、サブCPUがエラー検知を行った場合にネットワークアダプタ6110の動作モードをバイパス制御モードに切り替えるようにしても良い。これにより、各機能ブロックのフォールト状態とバイパス制御を独立して制御できる効果がある。
また、カメラアダプタ120は、カメラ112の状態がキャリブレーション状態から撮影状態に遷移した場合や、伝送部6120などが動作不良から復旧した場合に、バイパス制御モードから通常の通信モードに遷移してもよい。
このバイパス制御モードにより、カメラアダプタ120はデータ転送を高速に行う事ができ、また不慮の故障などが発生しデータルーティングに係わる判断ができない場合でも次のカメラアダプタ120cへデータを転送することができる。
通常制御モードにおけるパケットの転送形態(バイパス制御)の一例について、図12を用いて説明する。図12では、カメラアダプタ120gにおいて生成したパケットの、カメラアダプタ120h〜120nのそれぞれにおける通過ルートを示している。ここで、カメラアダプタ120g、120h、120nは注視点グループAに属しており、カメラアダプタ120iは注視点グループBに属しているものとする。
このとき、カメラアダプタ120gから出力されたパケットは先ずカメラアダプタ120hのネットワークアダプタ6110hに入力される。伝送部6120hは、このパケットのヘッダ情報に含まれているグループ情報が示すグループが注視点グループAであるかを判断する。このパケットのヘッダ情報には注視点グループAを示すグループ情報が含まれており、カメラアダプタ120hが属するグループと同一である。そのため、伝送部6120は、このパケットをネットワークアダプタ6110hから画像処理部6130hに伝送し、このパケットは、画像処理部6130hにおける三次元モデル情報の生成に用いられる。そしてネットワークアダプタ6110hは、カメラアダプタ120gから入力したパケットをネットワークアダプタ6110iに転送する。
カメラアダプタ120hから出力されたパケットは先ずカメラアダプタ120iのネットワークアダプタ6110iに入力される。伝送部6120iは、このパケットのヘッダ情報に含まれているグループ情報が示すグループが注視点グループAであるかを判断する。このパケットのヘッダ情報には注視点グループAを示すグループ情報が含まれており、カメラアダプタ120iが属するグループ(注視点グループB)と異なる。そのため、伝送部6120iは、このパケットを画像処理部6130iに転送することなく、ネットワークアダプタ6110iを介してネットワークアダプタ6110jに転送する。
ネットワークアダプタ6110nにパケットが入力されると、伝送部6120nは、このパケットのヘッダ情報に含まれているグループ情報が示すグループが注視点グループAであるかを判断する。このパケットのヘッダ情報には注視点グループAを示すグループ情報が含まれており、カメラアダプタ120nが属するグループと同じである。しかし、画像処理部6130nが、このパケット内の前景画像が三次元モデル情報の生成に必要な前景画像ではない(自カメラアダプタ120との相関が低いデータである)と判断したとする。このとき伝送部6120nは、このパケットをネットワークアダプタ6110nを介して次のネットワークアダプタ6110oに転送する。
次に、上記のカメラ制御部6141の機能構成例とその周辺の機能部との関連について、図6のブロック図を用いて説明する。
映像データ受信部61411は、カメラ112による撮像画像を取得して、映像データ解析部61412及び画像処理部6130に転送する。
映像データ解析部61412は、映像データ受信部61411から転送された撮像画像の画素値(輝度値)の統計量を解析する。撮像画像の画素値の統計量の解析の詳細については後述する。更に映像データ解析部61412は、映像データ受信部61411から転送された撮像画像に添付(多重化)されているカメラ112の現在の各露出パラメータ(IRIS、シャッタースピード、ISO/ゲイン、ND(Neutral Density)フィルタに関する情報)を取得する。
露出制御部61413は、映像データ解析部61412が解析した統計量に基づいて、現在の露出が適正であるか否かを判断し、適正でないと判断した場合には、現在のカメラ112の露出パラメータを変更してカメラ112の新たな露出パラメータを決定する。露出制御部61413の動作の詳細については、後述する。
コマンド送信部61414は、露出制御部61413が決定したカメラ112の各露出パラメータをカメラ112へ送信する。カメラ112は、コマンド送信部61414から送信された各露出パラメータに従って露出を変更する。更にコマンド送信部61414は、コントローラ300からカメラ112を制御するためのコマンドを受信した場合には、このコマンドもカメラ112へ送信する。
コマンド解析部61415は、コントローラ300から出力されたコマンドを解析する。そしてコマンド解析部61415は、この解析の結果、該コマンドがカメラ112を制御するためのカメラ制御コマンドであれば、該コマンドをコマンド送信部61414に転送し、該コマンドが露出調整情報であれば、該コマンドを記憶部61416へ送る。
露出調整情報とは、カメラの露出パラメータのうち、IRIS、シャッタースピード、ISO/ゲインのそれぞれの許容範囲(上限値及び下限値)を表す情報を含む。例えば、IRISは被写界深度、シャッタースピードは動きボケや動きの滑らかさ、ISO/ゲインはノイズにそれぞれ影響するので、コントローラ300からカメラアダプタ120に対して、適正な画質を得るための許容範囲を設定する。露出制御部61413は、各露出パラメータを許容範囲内に収まるように変更して、適正露出に調整する。さらに、露出制御部61413は、IRIS、シャッタースピード、ISO/ゲインを許容範囲内で変更しても適正露出に調整できないときは、その旨を警告信号発生部61417へ通知する。また、露出調整情報は、IRIS、シャッタースピード、ISO/ゲインのうち、どの露出パラメータを優先して変更するかを表す情報も含む。
なお、本システムのように、複数のカメラの映像を合成した映像を生成するシステムの場合は、すべてのカメラの動きボケの量が同一であることが望ましい、すなわち、すべてのカメラのシャッタースピードが同一であることが望ましい。したがって、シャッタースピードの変更はコントローラ300から一括で制御するものとして、露出制御部61413によるカメラ個別のシャッタースピードの変更を禁止するのが望ましい。
警告信号発生部61417は、露出制御部61413から、「IRIS、シャッタースピード、ISO/ゲインを許容範囲内で変更しても適正露出に調整できない」旨の通知を受けると、伝送部6120、ネットワークアダプタ6110を介して、コントローラ300へ露出警告信号を送信する。
コントローラ300は、露出警告信号を発したカメラアダプタ120に対応するカメラがNDフィルタを切り替えるタイミングを制御し、該カメラアダプタ120に対してNDフィルタ切替制御信号を送信する。NDフィルタ切替制御信号は、ネットワークアダプタ6110、伝送部6120、コマンド解析部61415、コマンド送信部61414を介してカメラ112へ送られ、カメラ112は該NDフィルタ切替制御信号に応じてNDフィルタを切り替える。NDフィルタは物理的なフィルタであり、例えばNDフィルタ切替制御信号に従いカメラ112の制御によって自動的に撮像用レンズの前面、後面、またはレンズ群の中間部分に挿入される。NDフィルタを複数種類用意しておき、それを切り替えるものとしてもよいし、1つのNDフィルタの有無を切り替えるものとしてもよい。また、NDフィルタ以外の物理的フィルタを挿入するものとしてもよい。
次に、映像データ解析部61412による撮像画像の画素値の統計量の解析の詳細について、図7を用いて説明する。図7は、1枚の撮像画像における、各輝度値に対する画素数のヒストグラムを表しており、横軸は輝度値、縦軸は画素数を表している。図7では、撮像画像の各画素の輝度値が10ビット(輝度値=0〜1023)で表されるものとしている。
RGB上限値に相当する明るさの光よりも強い光に対応する画素の映像信号値はRGB上限値となり、該画素には白飛びが起きている。一方、RGB下限値に相当する明るさの光よりも弱い光に対応する画素の映像信号値はRGB下限値となり、該画素には黒潰れが起きている。RGB上限値及びRGB下限値は、映像信号のフォーマット毎に規定された固定値であり、例えばSDI規格の10ビット映像信号では、0と1023の値は同期信号として使用され、1〜3と1020〜1022の値は使用禁止となっている。すなわち有効な輝度値は4〜1019の範囲であり、RGB上限値は1019、RGB下限値は4となる。白飛び判定閾値及び黒潰れ判定閾値はそれぞれ、白飛びや黒潰れに近い値になったことを検出して露出調整することで白飛びや黒潰れを未然に防ぐために予め設定されたものである。以下では、白飛び判定閾値をθ1、黒潰れ判定閾値をθ2としている。映像データ解析部61412には、このような白飛び判定閾値θ1及び黒潰れ判定閾値θ2が予め設定されている。なお、この白飛び判定閾値θ1及び黒潰れ判定閾値θ2は、ユーザ操作などに応じて適宜変更しても構わない。
映像データ解析部61412が撮像画像の各画素の輝度値を解析した結果、図7(A)に示す如く、撮像画像中にθ2未満の輝度値を有する画素が存在し、且つθ1より大きい輝度値を有する画素が存在しない場合、該撮像画像については黒潰れと判断する。撮像画像について黒潰れと映像データ解析部61412が判断した場合、露出制御部61413は、露出を現在の露出よりも上げるように各露出パラメータを決定する(IRISを開く、ISO/ゲインを上げるなど)。このように決定した各露出パラメータを設定したカメラ112の撮像画像では、図7(B)に示す如く、輝度値が全体的に上がる。
また図7(C)に示す如く、映像データ解析部61412が撮像画像の各画素の輝度値を解析した結果、撮像画像中にθ2未満の輝度値の画素は存在せず、且つθ1より大きい輝度値の画素が存在する場合、該撮像画像については白飛びと判断する。撮像画像について白飛びと映像データ解析部61412が判断した場合、露出制御部61413は、露出を現在の露出よりも下げるように各露出パラメータを決定する(IRISを絞る、ISO/ゲインを下げるなど)。このように決定した各露出パラメータを設定したカメラ112の撮像画像では、輝度値が全体的に下がる。
なお、白飛び判定閾値よりも大きい輝度値を有する画素が存在したとしても、その数が比較的小さい規定数よりも小さい場合には、画質にはあまり影響がないものと判断し、白飛び判定閾値よりも大きい輝度値を有する画素の数を0と見なしても良い。同様に、黒潰れ判定閾値未満の輝度値を有する画素が存在したとしても、その数が比較的小さい規定数よりも小さい場合には、画質にはあまり影響がないものと判断し、黒潰れ判定閾値未満の輝度値を有する画素の数を0と見なしても良い。
また図7(D)に示す如く、映像データ解析部61412が撮像画像の各画素の輝度値を解析した結果、撮像画像中にθ2未満の輝度値の画素及びθ1より大きい輝度値の画素の両方が存在したとする。このとき、θ2未満の輝度値を有する画素の数≧θ1より大きい輝度値を有する画素の数であれば、撮像画像については黒潰れと判断する。一方、θ2未満の輝度値を有する画素の数<θ1より大きい輝度値を有する画素の数であれば、撮像画像については白飛びと判断する。
次に、カメラ112の各露出パラメータの決定処理について、同処理のフローチャートを示す図8を用いて説明する。
ステップS3001では、映像データ解析部61412は、映像データ受信部61411から転送された撮像画像の画素値(輝度値)の統計量として、θ1よりも大きい輝度値を有する画素の数N1、θ2未満の輝度値を有する画素の数N2を取得する。更に映像データ解析部61412は、映像データ受信部61411から転送された撮像画像に添付(多重化)されているカメラ112の現在の各露出パラメータを取得する。
ステップS3002では、露出制御部61413は、N1、N2に基づいて、撮像画像中における白飛びや黒潰れの有無を判定する。ステップS3002で白飛びと判定された場合、処理はステップS3003を介してステップS3006に進む。一方、ステップS3002において黒潰れと判定された場合、処理はステップS3003、S3004を介してステップS3005に進む。一方、ステップS3002において白飛びとも黒潰れとも判定していない場合は、図8のフローチャートに従った処理は終了する。
ステップS3006では、露出制御部61413は、カメラ112の露出を現在の露出よりも下げるように各露出パラメータを決定するための「現在の露出パラメータに対する変更量」として適当な負の値を設定する。つまり、露出の変更方向としてマイナス方向を設定している。
一方、ステップS3005では、露出制御部61413は、カメラ112の露出を現在の露出よりも上げるように各露出パラメータを決定するための「現在の露出パラメータに対する変更量」として適当な正の値を設定する。つまり、露出の変更方向としてプラス方向を設定している。
ステップS3007では、露出制御部61413は、現在の露出パラメータを、ステップS3005若しくはステップS3006において設定した変更量だけ変更可能であるか否かを判断する。すなわち、露出制御部61413は、現在の露出パラメータを、ステップS3005若しくはステップS3006において設定した露出の変更方向に変更可能であるか否かを判断する。例えば、露出制御部61413は、IRIS及びISO/ゲインの許容範囲内で上記の変更量だけの変更が可能であるか否かを判断する。この判断の結果、変更可能と判断した場合には、処理はステップS3008に進み、変更不可能と判断した場合には、処理はステップS3009に進む。
ステップS3008で露出制御部61413は、現在の露出パラメータ(IRISまたはISO/ゲインの値)を、ステップS3005若しくはステップS3006において設定した変更量だけ変更することで、カメラ112の新たな露出パラメータを決定する。そしてコマンド送信部61414は、変更後の露出パラメータをカメラ112へ送信する。
一方、ステップS3009では、露出制御部61413は、IRIS、シャッタースピード、ISO/ゲインを許容範囲内で変更しても適正露出に調整できない旨を警告信号発生部61417へ通知する。警告信号発生部61417は、露出制御部61413からこの通知を受けると、伝送部6120、ネットワークアダプタ6110を介して、コントローラ300へ露出警告信号を送信する。
次に、コマンド解析部61415がコントローラ300からNDフィルタ切替制御信号を受信した場合にカメラアダプタ120において行われる処理について、図9のフローチャートを用いて説明する。
コマンド解析部61415がコントローラ300からネットワークアダプタ6110及び伝送部6120を介してNDフィルタ切替制御信号を受信すると、処理はステップS3021を介してステップS3022に進む。
ステップS3022では、コマンド解析部61415は、コントローラ300から受信したNDフィルタ切替制御信号をコマンド送信部61414に対して出力する。コマンド送信部61414は、コマンド解析部61415から受けたNDフィルタ切替制御信号をカメラ制御コマンドとしてカメラ112に対して送信する。これによりカメラ112側ではNDフィルタの切り替え処理が開始される。
ステップS3023では、伝送部6120は、カメラアダプタ120の動作モードをバイパス制御モードに切り替える。これによりネットワークアダプタ6110は、上流側から転送された転送情報は下流側に転送すると共に、カメラアダプタ120が生成する転送情報は下流側には転送しない(転送制御)。
ステップS3024では、露出制御部61413は、カメラ112の動作状態として、「カメラ112がNDフィルタの切り替え処理を実行中であるのか、それとも完了したのか」を示す動作情報を取得する。そして取得した動作情報が、「カメラ112がNDフィルタの切り替え処理を実行中」を示す場合には、処理はステップS3023に戻る。一方、取得した動作情報が、「カメラ112がNDフィルタの切り替え処理を完了した」ことを示す場合には、処理はステップS3025に進む。
ステップS3025では、伝送部6120は、カメラアダプタ120の動作モードを通常制御モードに切り替える。これによりネットワークアダプタ6110は、上流側から転送された転送情報は下流側に転送すると共に、カメラアダプタ120が生成する転送情報を下流側に転送可能となる。
このように、NDフィルタ切替制御と連動してバイパス制御を行うことによって、NDフィルタ切替中の映像が三次元モデル生成に使用されなくなり、NDフィルタの形状が三次元モデル化されてしまうおそれがなくなる。また、三次元モデル生成に使用しない映像を伝送しないことで、伝送帯域を有効活用できる。
図10では、カメラ112a〜120hが2つのグループ(注視点グループA、注視点グループB)に区分されている。より詳しくは、カメラ112a、112c、112e、112gは、注視点Aとしての被写体6302Aにフォーカスされたものであり、注視点グループAを形成している。一方、カメラ112b、112d、112f、112hは、注視点Bとしての被写体6302Bにフォーカスされたものであり、注視点グループBを形成している。
然るに、注視点グループAにおいてカメラ112cと論理的に隣接しているカメラはカメラ112aとカメラ112eであり、注視点グループAにおいてカメラ112eと論理的に隣接しているカメラはカメラ112cとカメラ112gである。同様に、注視点グループBにおいてカメラ112dと論理的に隣接しているカメラはカメラ112bとカメラ112fであり、注視点グループBにおいてカメラ112fと論理的に隣接しているカメラはカメラ112dとカメラ112hである。
カメラのNDフィルタ切替中はNDフィルタの動きが撮像画像中に映り込むため、該カメラによる撮像画像を使用せずに三次元モデルを生成するのが望ましい。例えば、図10のカメラ112cのNDフィルタを切り替えているときは、カメラ112cと論理的に隣接しているカメラ112a及びカメラ112eによる撮像画像によって、カメラ112cの撮像画像における欠損部分を補う。したがって、論理的に隣接するカメラ同士が同時にNDフィルタを切り替えないように、コントローラ300で各カメラのNDフィルタ切替タイミングを制御する。
ここで、NDフィルタ切替中のカメラのバイパス制御について、図13及び図14を用いて説明する。図13及び図14は、図10のカメラの一部(カメラ112a〜カメラ112d)におけるバイパス制御を示したものである。
図13においては、カメラアダプタ120a、120b、120c、120dがそれぞれ露出警告信号を発している。コントローラ300の警告信号受信部3101は、露出警告信号を受信する。
コントローラ300の制御カメラ決定部3102は、露出警告信号を送信したカメラの中からNDフィルタを切り替えるカメラをカメラ相関情報に基づいて1つ以上決定する。カメラ相関情報とは、具体的には、各カメラについて論理的に隣接しているカメラを特定するためのテーブルであり、予め作成されて記憶部3103に格納されている。NDフィルタを切り替えるカメラを決定する処理については後述する。
コントローラ300の送信部3104は、制御カメラ決定部3102がNDフィルタを切り替えるカメラとして決定した1つ以上のカメラへカメラ制御信号を送信する。カメラ制御信号には、NDフィルタ切替制御信号が含まれる。
カメラアダプタ120の伝送部6120は、NDフィルタ切替制御信号を受信すると、該カメラアダプタ120についてバイパス制御を行う。バイパス制御については、図5を用いて上述したとおりである。
図13においては、コントローラ300は、カメラ112a及びカメラ112bをNDフィルタ切替カメラとして決定し、それぞれ対応するカメラアダプタ120a及びカメラアダプタ120bへNDフィルタ切替制御信号を送信する。これによって、カメラ112a及びカメラ112bのNDフィルタ切替が実行され、その間、カメラアダプタ120a及びカメラアダプタ120bはバイパス制御される。
図9のフローチャートで説明したように、NDフィルタ切替が完了すると、カメラアダプタ120a及びカメラアダプタ120bのバイパス制御は解除される。また、NDフィルタ切替により、露出調整のためのIRISやISO/ゲインの許容範囲内での変更が可能になると、露出警告信号が解除される。
すると、次にコントローラ300は、図14に示すように、カメラ112c及びカメラ112dをNDフィルタ切替カメラとして決定し、それぞれ対応するカメラアダプタ120c及びカメラアダプタ120dへNDフィルタ切替制御信号を送信する。これによって、カメラ112c及びカメラ112dのNDフィルタ切替が実行され、その間、カメラアダプタ120c及びカメラアダプタ120dはバイパス制御される。
ここで、コントローラ300の制御カメラ決定部3102がNDフィルタ切替を行うカメラを決定する処理について、図15のフローチャートを用いて説明する。ステップS3041では、制御カメラ決定部3102は、変数Nの値を1に初期化する。
ステップS3042では、制御カメラ決定部3102は、カメラ112a〜120zのうち最上流からN番目のカメラ(1番目のカメラはカメラ112a)のステータス情報を参照して、N番目のカメラがNDフィルタ切替中か否かを判断する。この判断の結果、N番目のカメラがNDフィルタの切り替え中であれば、処理はステップS3043に進み、N番目のカメラがNDフィルタの切り替え中ではない場合には、処理はステップS3044に進む。
ステップS3043では、制御カメラ決定部3102は、N番目のカメラをNDフィルタ切替カメラとして決定し、処理はステップS3048へ進む。一方、ステップS3044では、制御カメラ決定部3102は、N番目のカメラが露出警告信号を発しているか否かを判断する。この判断の結果、N番目のカメラが露出警告信号を発している場合には、処理はステップS3045に進み、N番目のカメラが露出警告信号を発していない場合には、処理はステップS3048に進む。
ステップS3045では、制御カメラ決定部3102は、記憶部3103に記憶されているカメラ相関情報を参照し、N番目のカメラがNDフィルタ切替カメラとして決定済のいずれかのカメラと論理的に隣接しているか否かを判断する。
例えば、カメラアダプタ120a〜120zのそれぞれのアドレス情報及びグループ情報を、対応するカメラの並び順(最上流から最下流に向けた並び順)で並べたリストをカメラ相関情報として記憶部3103に格納しておく。つまり、リストの1行目には最上流のカメラ112aに対応するカメラアダプタ120aのアドレス情報及びグループ情報が登録されており、2行目〜26行目にはカメラアダプタ120b〜120zのアドレス情報及びグループ情報がそれぞれ登録されている。この場合、N番目のカメラのグループ情報が登録されている行(リストのN行目)から1行目に向かって該グループ情報と同じグループ情報が登録されている行を検索した場合に、最初に見つけた行をM1とする。また、N番目のカメラのグループ情報が登録されている行(リストのN行目)から26行目に向かって該グループ情報と同じグループ情報が登録されている行を検索した場合に、最初に見つけた行をM2とする。状況によっては、M1,M2の両方が存在する場合もあれば、一方のみが存在する場合がある。そして、M1,M2の両方(一方しか存在しなければ、一方)に登録されているアドレス情報に対応するカメラが何れもNDフィルタ切替カメラとして決定済のカメラでない、という条件が満たされた場合、「N番目のカメラがNDフィルタ切替カメラとして決定済のカメラと論理的に隣接していない」と判断する。一方、この条件が満たされない限りは、「N番目のカメラがNDフィルタ切替カメラとして決定済のいずれかのカメラと論理的に隣接している」と判断する。
なお、N番目のカメラがNDフィルタ切替カメラとして決定済のいずれかのカメラと論理的に隣接しているか否かを判断するための判断方法には様々な方法があり、上記の方法に限らない。
ステップS3045における判断の結果、隣接していると判断した場合には、処理はステップS3048に進み、隣接していないと判断した場合には、処理はステップS3046に進む。
ステップS3046では、制御カメラ決定部3102は、N番目のカメラをNDフィルタ切替カメラとして決定する。ステップS3047では、送信部3104は、ステップS3046でNDフィルタ切替カメラとして決定したN番目のカメラに対応するカメラアダプタ120へNDフィルタ切替制御信号を送信する。
ステップS3048では、制御カメラ決定部3102は、変数Nの値がカメラの総数(図1の場合は26)に達したか否かを判断する。この判断の結果、達したと判断した場合には、図15のフローチャートに従った処理は完了し、達していないと判断した場合には、処理はステップS3049に進む。ステップS3049では、制御カメラ決定部3102は、変数Nの値を1つインクリメントする。そして処理はステップS3042へ戻る。
このように、論理的に隣接するカメラのNDフィルタ切替を同時に行わないように制御することで、多数のカメラのNDフィルタ切替を行う場合も映像の欠損部分を他のカメラの映像で補って三次元モデルを生成できる。
<変形例1>
第1の実施形態では、着目カメラの撮像画像における欠損部分を補うために、該着目カメラに論理的に隣接するカメラによる撮像画像を利用していた。しかし、これに限らず、着目カメラと同グループ内のカメラにおいて着目カメラと隣接する隣接カメラ及び該隣接カメラと隣接するカメラによる撮像画像を利用しても良い。「着目カメラと同グループ内のカメラにおいて着目カメラと隣接する隣接カメラ及び該隣接カメラと隣接するカメラによる撮像画像」とは、例えば、次のような撮像画像である。同グループに属する(注視点が同じ)カメラA〜カメラEが、カメラA−カメラB−カメラC−カメラD−カメラEというように接続されている状態を考える。このような状態において、カメラCによる撮像画像における欠損部分を補うために利用する撮像画像として、カメラA、B、D、Eによる撮像画像を利用する。
また、着目カメラと同グループ内のカメラにおいて上下左右のカメラによる撮像画像を利用しても良い。「着目カメラと同グループ内のカメラにおいて上下左右のカメラによる撮像画像」とは、例えば、次のような撮像画像である。つまり、同グループに属する(注視点が同じ)カメラA〜カメラEが、以下のように配置されているとする。
3階席:−カメラA−カメラB−カメラC−
2階席:−カメラD−カメラE−カメラF−
1階席:−カメラG−カメラH−カメラI−
つまり、3階席では、カメラA−カメラB−カメラCというように接続されており、2階席では、カメラD−カメラE−カメラFというように接続されており、1階席では、カメラG−カメラH−カメラIというように接続されているとする。階が異なるカメラ同士は直接接続されていない。このとき、カメラEによる撮像画像における欠損部分を補うために利用する撮像画像として、カメラB、D、F、Hによる撮像画像を利用しても良い。
何れにせよ、着目カメラと同グループに属するカメラの中で該着目カメラにより近い規定台数のカメラ(所定のカメラ)を利用する。第1の実施形態では、同じ注視点グループに属するカメラ112の中で最も近い(接続ホップ数が小さい)カメラ112の組を論理的に隣接していると表現したが、これらの例に示すように、「論理的に隣接している」ことの定義には様々な定義が考えられる。
<変形例2>
以下のようにカメラA〜カメラZが、グラウンドなどの周囲を囲むようにして配置されている場合、カメラAとカメラZとは直接は接続されていないものの、近接した位置に配置されている。
−カメラA−カメラB−カメラC−・・・
・
−カメラZ ・
| ・
カメラY ・
| ・
カメラX−・・・・・・・・・・・・・・
このような配置によれば、カメラAによる撮像画像とカメラZによる撮像画像との相関は高くなるため、一方の撮像画像の欠損を補うために他方の撮像画像を利用することができる。このような場合、例えば、上記のステップS3045の「N番目のカメラがNDフィルタ切替カメラとして決定済のいずれかのカメラと論理的に隣接しているか否かを判断する処理」では、カメラAとカメラZとが仮想的に接続されているものとする。そして、カメラAの1つ上流側のカメラをカメラZ、カメラZの1つ下流側のカメラをカメラAとしてステップS3045の処理を行う。
[第2の実施形態]
バイパス制御の際は、あるカメラの撮像画像が使用できないとき、該カメラに論理的に隣接するカメラの映像で補って三次元モデルを生成するが、通常の場合と比べて画質が多少低下する。そこで、本実施形態に係るシステムでは、高画質が必要なシーンか、それとも画質低下が許容されるシーンかをオペレータが判断し、手動操作によって、NDフィルタを切り替えるタイミングを指定する。以下では、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。
本実施形態に係る画像処理システムの一例を図16に示す。図16に示した構成は、図13に示した構成において、コントローラ300に警告報知部3105と、カメラ制御操作部3106と、を追加したものである。
警告報知部3105は、警告信号受信部3101が露出警告信号を受信すると、その旨をユーザに報知する。報知方法や報知形態については特定の報知方法、特定の報知形態に限らない。例えば、コントローラ300が有するモニタに露出警告信号を受信したことを示すメッセージを表示しても良いし、更に露出警告信号の送信元を示す情報も加えて表示しても良い。また、露出警告信号を受信したことを音声にて報知しても良いし、ランプを点灯/点滅させるなどして報知しても良い。
オペレータは、警告報知部3105による上記の報知を確認すると、バイパス制御による画質低下が許容されるシーンになってからカメラ制御操作部3106を操作する。例えば、スポーツの試合において、インプレイでないとき(ボールが外へ出たとき、けが人の治療中など)は、画質低下が許容されるシーンと判断してもよい。この操作をトリガとして、送信部3104は、NDフィルタ切替制御信号を送信する。
送信部3104によるNDフィルタ切替制御信号の送信は、カメラ制御操作部3106が操作されると必ず行われても良い。
警告信号発生部61417は、白飛びや黒潰れと判定された領域の位置やサイズに対する緊急度(緊急の度合い)を示す情報を露出警告信号に含め、コントローラ300の警告報知部3105は、緊急度に応じて区別した報知を行ってもよい。例えば、ランプの色や点灯数、表示文字の色やサイズや内容、音声の音量や内容などによって、緊急度を区別することができる。
白飛びや黒潰れが発生すると適切な三次元モデル生成ができないため、白飛びや黒潰れの緊急度が高ければ、バイパス制御による多少の画質低下があるとしてもNDフィルタ切替を急いで行う必要がある。オペレータは露出調整度の緊急度を考慮して、カメラ制御操作部3106を操作して、NDフィルタ切替操作を行う。
また、図17に示す如く、カメラアダプタ120の露出制御部61413は、白飛び判定閾値及び黒潰れ判定閾値を複数設けることによって、緊急度を算出して、警告信号発生部61417へ通知してもよい。より高い白飛び判定閾値を超える画素が存在するとき、または、より低い黒潰れ判定閾値未満の画素が存在するときほど、緊急度が高いと判定する。このように、本実施形態によれば、バイパス制御による画質低下を考慮して、適切なタイミングでNDフィルタを切り替えることができる。
[第3の実施形態]
第1,2の実施形態では、撮像画像に欠損が生じるようなカメラの動作としてNDフィルタを例にとり説明した。しかし、撮像画像に欠損が生じるようなカメラの動作には様々なものが考えられる。
本実施形態に係るカメラ112は、該カメラ112のレンズに付着した水滴を除去するためのワイパーを有しており、該レンズに水滴が付着したことを検知した場合に、警告信号をコントローラ300に通知する。コントローラ300は第1の実施形態と同様、警告信号を発したカメラのうち論理的に隣接するカメラのワイパーを同時に動作させないようにする。
本実施形態に係るカメラ制御部6141の機能構成例について、図18のブロック図を用いて説明する。図18において図6と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
カメラ112のレンズ(不図示)の先端付近に設けた水滴センサ1121は、レンズに付着した水滴の量を検知するものであり、レンズに付着した水滴の量が規定量を超えると、その旨をカメラアダプタ120へ通知する。カメラアダプタ120の警告信号発生部61417は、水滴センサ1121からの上記通知を受けた場合には、伝送部6120、ネットワークアダプタ6110を介して、コントローラ300へワイパー警告信号を送信する。
コントローラ300は、ワイパー警告信号を受信すると、第1,2の実施形態と同様に、論理的に隣接するそれぞれのカメラで同時にワイパーを動作させないように、ワイパー警告信号を発したカメラのうちワイパーを動作させるカメラを決定する。そしてコントローラ300は、決定したカメラのカメラアダプタ120に対し、カメラ制御信号(ワイパー制御信号)を送信する。ワイパー制御信号を受信したカメラアダプタ120の送信部61418はワイパー1122へワイパー制御コマンドを送信するとともに、伝送部6120はバイパス制御を行う。ワイパー1122は、ワイパー制御コマンドを受信すると、ワイパーを動作させて、カメラのレンズの水滴を除去する。
そして水滴センサ1121が、レンズに付着した水滴の量が規定量未満になったことを検知すると、警告信号発生部61417はワイパー警告信号を解除し、コントローラ300によって、残りのカメラのワイパー制御が行われる。
このように、ワイパー制御のときも、論理的に隣接するカメラのワイパー動作を同時に行わないように制御することで、多数のカメラのワイパー動作を行う場合も映像の欠損部分を他のカメラの映像で補って三次元モデルを生成できる。本実施形態においては、ワイパー制御とNDフィルタ制御の両方を行うようにしてもよい。
なお、以上説明した第1〜3の実施形態(変形例も含む)の一部若しくは全部を適宜組み合わせて使用しても構わないし、第1〜3の実施形態(変形例も含む)の一部若しくは全部を選択的に使用しても構わない。
また、上記の実施形態では、特定処理の具体例として、NDフィルタとワイパーの制御を挙げたが、NDフィルタとワイパーは、動作中に撮像画像に映り込む物体の一例として挙げたに過ぎない。特定処理はNDフィルタとワイパーの両方の処理またはいずれかとしてもよいし、それ以外の処理としてもよい。すなわち、本実施形態のコントローラ300は、動作中に撮像画像に映り込む物体の制御が、着目カメラ(着目撮像装置)と、着目カメラの欠損部分を補うカメラとにおいて同時に実行されないように制御する。
また、上記の実施形態では、複数のカメラ112による撮像画像を用いて三次元モデルを生成し、当該三次元モデルに基づいて仮想視点画像を生成する場合の例を中心に説明した。しかし、仮想視点画像の生成方法は三次元モデルに基づく方法には限定されない。すなわち、複数のカメラ112による撮像画像を合成することで、三次元モデルの生成を介さずに、仮想視点画像を生成するシステムにおいても、本実施形態の特徴的な構成は適用可能である。すなわち、画像処理システム100に属する複数のカメラ112から、仮想視点の指定に基づいて選択される1又は複数のカメラ112の撮像画像に基づいて仮想視点画像を生成するシステムにも適用できる。この場合、コントローラ300は、当該1又は複数のカメラ112の特定処理が、他のカメラ112の特定処理とは異なるタイミングで実行されるように制御する。つまり、本実施形態のコントローラ300は、画像処理システム100に属する複数のカメラ112の特定処理(例えば、NDフィルタやワイパーの動作)が同時に実行されないように制御する。これにより、特定処理がすべてのカメラ112において同時に実行されることによる仮想視点コンテンツへの悪影響を低減できる。
また、上記の実施形態では、画像処理システム100に属する複数のカメラ112のそれぞれにおける特定処理の実行タイミングを、コントローラ300が制御する場合の例を中心に説明した。しかし、これに限らず、各カメラアダプタ120や各カメラ112において特定処理のタイミングが制御されるようにしても良い。例えば、注視点グループごとにマスターカメラアダプタを1台ずつ設け、各マスターカメラアダプタが注視点グループに属する各カメラ112の特定処理のタイミングを制御しても良い。また例えば、各カメラアダプタ120が他のカメラアダプタ120とネゴシエーションすることで特定処理のタイミングが制御されるようにしても良い。
[第4の実施形態]
コントローラ300を構成する各機能部は何れもハードウェアで実装しても良いが、一部をソフトウェア(コンピュータプログラム)で実装しても良い。例えば、記憶部をメモリで実装し、残りの機能部をコンピュータプログラムで実装しても良い。この場合、この記憶部として機能するメモリを有し、且つこのコンピュータプログラムを実行するプロセッサを有するコンピュータ装置は、コントローラ300に適用可能である。コントローラ300に適用可能なコンピュータ装置のハードウェア構成例について、図19のブロック図を用いて説明する。
CPU1901は、RAM1902やROM1903に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりCPU1901は、コンピュータ装置全体の動作制御を行うと共に、コントローラ300が行うものとして上述した各処理を実行若しくは制御する。
RAM1902には、外部記憶装置1906からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1907を介して外部(センサシステム110等)から受信したデータを格納するためのエリアを有する。更にRAM1902は、CPU1901が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM1902は各種のエリアを適宜提供することができる。ROM1903には、書き換え不要の本装置の設定データやブートプログラムなどが格納されている。
操作部1904は、マウスやキーボードなどのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をCPU1901に対して入力することができる。
表示部1905はCRTや液晶画面、プロジェクタ装置などにより構成されており、CPU1901による処理結果を画像や文字などでもって表示若しくは投影することができる。なお、操作部1904と表示部1905とを一体化させてタッチパネル画面を構成しても良い。
外部記憶装置1906は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1906には、OS(オペレーティングシステム)や、コントローラ300が行うものとして上述した各処理をCPU1901に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置1906に保存されているコンピュータプログラムには、図13,14に示したコントローラ300の各機能部のうち記憶部以外の各機能部の機能をCPU1901に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置1906に保存されているデータには、上記の説明において既知の情報として説明したものが含まれている。図13,14に示した記憶部は、RAM1902や外部記憶装置1906によって実現可能である。
外部記憶装置1906に保存されているコンピュータプログラムやデータは、CPU1901による制御に従って適宜RAM1902にロードされ、CPU1901による処理対象となる。
I/F1907は、外部の機器との間のデータ通信を行うためのもので、例えば、センサシステム110やサーバシステム200との間のデータ通信は、このI/F1907を介して行われる。
CPU1901、RAM1902、ROM1903、操作部1904、表示部1905、外部記憶装置1906、I/F1907は何れもバス1908に接続されている。なお、コントローラ300に適用可能なコンピュータ装置のハードウェア構成例は図19に示した構成に限るものではない。また、図19に示したハードウェア構成例は、サーバシステム200や端末装置190にも適用可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。