(本発明の基礎となった知見)
映像配信システムとして、例えば、複数のユーザが所有する複数のカメラ(例えばスマートフォン等)で撮影された映像をサーバで保存し、視聴者に配信するシステムが想定される。このようなシステムでは、サーバで保有する映像の数が膨大になるが、視聴者が所有する端末装置が表示可能な映像の数には限りがある。
このような場合、全ての映像を視聴者が確認し、その中から所望の映像を選択することは難しい。また、複数のユーザが所有する複数のカメラの種類(機能)はそれぞれ異なることが想定されるので、これに対応する必要がある。
本発明の一態様に係るカメラ選択方法は、同一の場面を撮影しているN(2以上の自然数)台のカメラから、表示する映像の撮影元のM(MはNより小さい自然数)台のカメラを選択するカメラ選択方法であって、前記N台のカメラの位置及び撮影方向を取得する取得ステップと、取得された前記N台のカメラの位置及び撮影方向に基づき、前記N台のカメラから前記M台のカメラを選択する選択ステップとを含む。
これにより、当該カメラ選択方法は、カメラの位置及び撮影方向に基づき、複数のカメラから適切にカメラを選択できる。
例えば、前記選択ステップでは、前記N台のカメラの位置及び撮影方向に基づき、M台のカメラの撮影空間の重複がより少なく、かつ、M台のカメラの撮影空間が対象空間をカバーする割合がより大きくなるM台のカメラを優先して選択してもよい。
これにより、当該カメラ選択方法は、複数のカメラにより対象領域の全体をカバーできるように複数のカメラを選択できる。
例えば、前記選択ステップでは、前記N台のカメラの位置及び撮影方向に基づき、対象空間又は対象被写体を複数の方向から等間隔に撮影しているM台のカメラを優先して選択してもよい。
これにより、当該カメラ選択方法は、複数のカメラにより対象被写体の全方向の映像をカバーできるように複数のカメラを選択できる。
例えば、前記取得ステップでは、前記N台のカメラで撮影された画像を用いて三次元再構成を行うことで、前記N台のカメラの位置及び撮影方向を算出してもよい。
これにより、精度よく各カメラの撮影範囲を判定できる。
例えば、前記取得ステップでは、前記N台のカメラの各々から送信された、当該カメラが備えるセンサで得られた情報を用いて、前記N台のカメラの位置及び撮影方向を算出してもよい。
これにより、容易に各カメラの位置及び撮影方向を判定できる。
例えば、前記取得ステップでは、さらに、前記N台のカメラの焦点距離を取得し、前記選択ステップでは、取得された前記N台のカメラの位置、撮影方向及び焦点距離に基づき、前記N台のカメラから前記M台のカメラを選択してもよい。
これにより、精度よく各カメラの撮影範囲を判定できる。
例えば、前記カメラ選択方法は、さらに、前記選択ステップの後のフレームにおいて、選択されている前記M台のカメラのうちの一部のカメラを他のカメラに切り替えるか否かを判定する第1判定ステップと、前記第1判定ステップにおいて、切り替えると判定された場合に、前記N台のカメラの位置及び撮影方向に基づき、前記一部のカメラの代わりの新たなカメラを選択する切替ステップとを含んでもよい。
これにより、全てのカメラを切り替える場合に比べ、処理量を低減できる。
例えば、前記第1判定ステップでは、フレーム間で対象被写体を追跡し、前記対象被写体の追跡に失敗した場合に、前記選択するカメラを切り替えると判定してもよい。
例えば、前記第1判定ステップでは、フレーム間で前記対象被写体の三次元モデルを対応付け、対応付けた前記対象被写体の三次元モデルを現時刻のフレームに投影し、得られたフレーム内に対象被写体が存在しない場合に、前記追跡が失敗したと判定してもよい。
これにより、精度よく被写体を追跡できる。
例えば、前記カメラ選択方法は、さらに、前記選択ステップの後のフレームにおいて、前記選択ステップを再度行うか否かを判定する第2判定ステップと、前記第2判定ステップにおいて、前記選択ステップを行うと判定された場合、前記N台のカメラの位置及び撮影方向に基づき、前記N台のカメラから前記M台のカメラを再度選択する再選択ステップとを含んでもよい。
例えば、前記第1判定ステップでは、前回の切り替えからの経過時間が第1時間未満の場合には、切り替えを行わないと判断し、前記経過時間が前記第1時間以上かつ前記第1時間より長い第2時間未満の場合には前記一部のカメラを前記他のカメラに切り替えるか否かを第1基準で判定し、前記経過時間が前記第2時間以上の場合には前記一部のカメラを前記他のカメラに切り替えるか否かを前記第1基準より緩い第2基準で判定してもよい。
これにより、選択されるカメラが頻繁に切替ることを抑制できる。
例えば、前記選択ステップは、前記N台のカメラで撮影された映像に基づき、前記N台のカメラの各々の第1評価値を算出するステップと、前記N台のカメラの位置及び撮影方向に基づき、前記N台のカメラに含まれるM台のカメラの組み合わせであるカメラ群の各々の第2評価値を算出するステップと、前記カメラ群に含まれるM台のカメラの前記第1評価値と、当該カメラ群の前記第2評価値とに基づき、当該カメラ群の第3評価値を算出するステップと、前記第3評価値が最も高いカメラ群に含まれる前記M台のカメラを選択するステップとを含んでもよい。
これにより、各カメラで撮影された映像に基づく評価値と、カメラの位置及び撮影方向に基づく評価値とに基づき、適切にカメラを選択できる。
また、本発明の一態様に係る映像配信システムは、同一の場面を撮影しているN(2以上の自然数)台のカメラから、表示する映像の撮影元のM(MはNより小さい自然数)台のカメラを選択する映像配信システムであって、前記N台のカメラの位置及び撮影方向を取得する取得部と、取得された前記N台のカメラの位置及び撮影方向に基づき、前記N台のカメラから前記M台のカメラを選択する選択部とを備える。
これにより、当該映像配信システムは、カメラの位置及び撮影方向に基づき、複数のカメラから適切にカメラを選択できる。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態)
(1)本実施の形態に係るカメラ選択方法では、多数のN台の母数カメラから、推定したカメラ位置及びカメラ姿勢(撮影方向)に基づき表示アプリケーションなどで表示可能なM本の映像を撮影しているカメラを初期選択する。また、当該カメラ選択方法では、初期選択したM台のカメラについて、カメラ切替が必要かを判定し、必要な場合は、N−M台のカメラから新たなカメラを選択する。
また、当該カメラ選択方法では、選択されているカメラ全体をリセットした場合は、新たに初期選択を行う。
また、母数カメラ台数N及び初期選択で選ばれたカメラ台数Mは随時増減してもよい。
(2)カメラ位置及びカメラ姿勢の推定は、N本以下の映像を使用する方法、或いはカメラのセンサ情報を使用する方法、又はこの両方を使用する方法がある。
(3)初期選択の方法は、撮影対象空間を死角なく撮影する方法、或いは特定の被写体を複数の方向から撮影する方法、又はこの両方を含む方法がある。
(4)M本の映像内のシーン、又はカメラの動きを任意の時間間隔毎に確認し、カメラを切替えるかどうか判定する。例えば、切替えるカメラ台数は1台以上M台以下である。また、1台のカメラを切替える場合、切替え前にカメラが撮影していたシーンに近いシーンを撮影しているカメラを選択する。また、切替え前のカメラ1台に対し、新たに2台以上を選択してもよい。
1より多くM台未満のカメラを切替える場合、1台のカメラを切替える場合と同様の選択処理を切替えるカメラそれぞれに対して行う。また、M台のカメラを切替える場合、初期選択と同じ処理を行う。この時、Mの値を増減させてもよい。
これにより、視聴可能な映像の母数が膨大な場合でも、視聴者、サーバ管理者、映像管理者、及び映像監視者に負担をかけることなく、視聴者にとって価値の高い多視点映像コンテンツの配信を実現できる。
まず、本実施の形態に係る映像配信システム100の構成を説明する。図1は、本実施の形態に係る映像配信システム100の全体構成を示すブロック図である。この映像配信システム100は、各々がネットワーク104A又は104Bを介して通信可能な、複数のカメラ101と、端末装置102と、サーバ103とを含む。
複数のカメラ101は、異なる視点から同一の場面を同一の時間帯に撮影することで複数の視点映像を生成する。各カメラ101は、複数のユーザの各々に携帯される。例えば、複数のカメラ101は、スポーツスタジアムのような場所にいる複数の観客に所有される。また、各カメラ101は、映像の撮影、及び音声の取得を行う。また、各カメラ101は、映像の撮影と同時に、カメラ101の位置情報及び姿勢情報(撮影方向)などを示す映像以外のセンサ情報をGPS、WiFi又はジャイロセンサなどを用いて取得する。カメラ101は、少なくとも撮影機能を有する機器であればよく、例えば、デジタルスチルカメラ、デジタルビデオカメラ、スマートフォン、又は携帯端末等である。なお、複数のカメラ101には、観客が所有するカメラだけでなく、固定カメラ又は放送用のカメラが含まれてもよい。また、各カメラ101は、撮影された視点映像、音声、及びセンサ情報を、ネットワーク104Aを経由してサーバ103へ送信する。
また、本実施の形態では、複数のカメラ101は、例えば、ユーザに携帯されるデジタルカメラ又はスマートフォン等であり、各カメラ101の種類(機能)はそれぞれ異なる場合が想定される。
ネットワーク104A及び104Bは、例えば、インターネットである。なお、図1では、ネットワーク104A及び104Bを個別に記載しているが、単一のネットワークを介して、複数のカメラ101と、端末装置102と、サーバ103とが接続されてもよい。また、機器間の通信の一部又は全ては、ネットワーク104A又は104Bを介さず、直接行われてもよい。また、機器間の接続は、有線接続及び無線接続のどちらであってもよい。
サーバ103は、複数のカメラ101で撮影された視点映像を一時的に保持する。また、サーバ103は、端末装置102を介したユーザ106からの指示に従って、保持する複数の視点映像の一部をネットワーク104B経由で端末装置102に配信する。その際、サーバ103は、膨大な数の視点映像の中から、カメラ情報を用いた選択方法により端末装置102で再生可能な数の映像を選択する。カメラ情報は、カメラの位置、方向、及び焦点距離を示す。カメラ情報は、予めサーバに登録されている情報、映像と同時に取得されたセンサ情報、映像を処理して算出した情報、又は、センサ情報と映像情報とを用いて算出した情報である。選択方法は、撮影対象空間を死角なく撮影する方法、或いは特定の被写体を複数の方向から撮影する方法、又はその両方である。なお、カメラ情報は、上記情報に加え、画角(ズーム倍率)の情報を含んでもよい。
また、サーバ103は、ユーザ106の指示、或いは撮影シーン又はカメラの動きの解析結果に従って視点映像の切替等の処理を行う。
端末装置102は、ユーザ106の指示に従ってサーバ103から視点映像を受信し、ユーザ106の指示に従った方法にて視点映像をモニタ105に出力する。なお、モニタ105は、PCモニタ、又は、タブレット端末、スマートフォン、携帯電話或いはノートPCのモニタなど、どのような出力デバイスであってもよい。なお、ここでは端末装置102とモニタ105とを個別に記載しているが、モニタ105は端末装置102に含まれてもよい。
また、ユーザからの指示は、例えば、画面タッチ操作又はマウスなどにより行われるが、どのような入力デバイスが用いられてもよい。
ユーザの指示は、サーバ103へ送信される。ユーザの指示は、サーバ103での映像の配信開始、又は視点映像の切替のトリガとして用いられる。また、ユーザの指示に基づきサーバ103は映像選択方法を決定する。
なお、音声データは必ずしも全てのカメラ101で取得される必要はない。また、映像配信システム100は、音声のみを取得するマイクを含んでもよい。サーバ103は、選択された映像に付加されている音声をそのまま一緒に端末装置102に配信してもよいし、対象領域又は対象被写体に最も近いカメラ101(又はマイク)で取得された音声を選択してもよいし、取得した中から音質の良い音声を選択してもよいし、複数の音声を音声合成することにより配信する音声を作成してもよい。
なお、複数の視点映像が複数のカメラ101からリアルタイムに送信され、当該視点映像を、ユーザ106が端末装置102を用いてリアルタイムに視聴してもよいし、映像の送信及び視聴の少なくとも一方がリアルタイムに行なわれなくてもよい。つまり、ユーザ106は過去に撮影された視点映像を任意のタイミングで視聴してもよい。また、以下で述べる、映像信号(映像)の送信及び受信とは、主に、映像信号が連続的に送信又は受信されるストリーム送信及び受信を意味する。
次に、サーバ103の構成を説明する。図2は、サーバ103の構成を示すブロック図である。このサーバ103は、受信部111と、蓄積部112と、制御部113と、カメラ情報算出部114と、初期カメラ選択部115と、カメラ切替判定部116と、切替カメラ選択部117と、リセット判定部118と、送信部119とを備える。
受信部111は、複数のカメラ101から送信された視点映像及びセンサ情報を受信する。蓄積部112は、受信部111で受信された視点映像及びセンサ情報に、送信元のカメラ101を識別するID情報を付与して格納する。センサ情報とは、WiFi、GPS、又はジャイロセンサ等から出力される情報であり、カメラ位置及びカメラ姿勢を特定可能な情報である。また、蓄積部112は、視点映像及びセンサ情報を用いて、カメラ情報算出部114で算出されたカメラ位置及びカメラ姿勢を格納する。
なお、蓄積部112は、受信部111が受信した視点映像及びセンサ情報をそのまま格納してもよいし、例えば、カメラ情報算出部114で三次元再構成処理を行うために、複数の視点映像をそれぞれフレームに分割し、同じ時刻のフレームを1つのセットとして格納してもよい。
制御部113は、各処理部の制御を行う。
カメラ情報算出部114は、蓄積部112から複数の視点映像を取得し、三次元再構成方法により、カメラ位置及びカメラ姿勢を算出する。なお、カメラ情報算出部114は、蓄積部112からセンサ情報を取得し、当該センサ情報を用いてカメラ位置及びカメラ姿勢を算出してもよいし、視点映像及びセンサ情報の両方を用いてカメラ位置及びカメラ姿勢を算出してもよい。算出されたカメラ位置及びカメラ姿勢は蓄積部112に格納される。
初期カメラ選択部115は、被写体を撮影している膨大な数のカメラ101から、ユーザに提供する視点数の選択カメラを選択する。初期カメラ選択部115は、この選択に、カメラ情報算出部114で算出されたカメラ位置及びカメラ姿勢を使用する。
カメラ切替判定部116は、表示中の映像を撮影しているカメラで撮影対象の空間又は被写体を捉えられているか確認し、捉えられていない場合はカメラを切替えると判定する。
切替カメラ選択部117は、カメラ切替判定部116によりカメラを切替えると判定された場合、新たなカメラを選択する。切替カメラ選択部117は、この選択に、カメラ情報算出部114で算出されたカメラ位置及びカメラ姿勢を使用する。また、切替カメラ選択部117は、適切なカメラが存在しない場合には、選択カメラの台数を減らす。
リセット判定部118は、ユーザ106よりリセット指示が出た場合、又は、選択カメラの台数が0或いは閾値以下になった場合、初期カメラ選択を再度行う。
以下、サーバ103の動作を説明する。まず、カメラ情報算出部114の処理を説明する。図3は、カメラ情報算出部114によるカメラ情報算出処理のフローチャートである。
まず、カメラ情報算出部114は、入力処理として、複数のカメラ101により撮影された視点映像、センサ情報、又はその両方を蓄積部112から取得する(S101)。なお、いずれの情報を取得するかは、制御部113により指示される。また、カメラ情報算出部114は、三次元再構成処理を行うために、複数の視点映像をフレームに分割し、同時刻のフレーム同士の画像セットを作成してもよい。
入力処理により取得された情報が視点映像である場合(S102でYes)、カメラ情報算出部114は、三次元再構成処理を行う(S103)。具体的には、カメラ情報算出部114は、複数の視点映像を用いて各カメラの三次元再構成を行うことで、カメラ位置及びカメラ姿勢を算出する。三次元再構成では、エピポーラ幾何を拘束条件とし、x、y、zの3軸からなる三次元座標空間における各カメラの並進ベクトル及び回転行列が算出される。エピポーラ幾何に基づく三次元再構成の具体例については、図4を用いて後ほど詳細に説明する。並進ベクトルT及び回転行列Rはそれぞれ下記(式1)及び(式2)で表現される。並進ベクトルTは三次元空間におけるカメラ位置を示し、回転行列Rは三次元空間の各軸に対するカメラの傾き、つまりカメラ姿勢を示す。なお、α、β、γはそれぞれカメラをx、y、z軸周りに回転させた角度を示す。
入力処理により取得された情報がセンサ情報である場合(S102でNoかつS104でYes)、カメラ情報算出部114は、WiFi、GPS又はジャイロセンサ等のセンサ情報を用いてカメラ位置及びカメラ姿勢を算出する(S105)。例えば、カメラ情報算出部114は、三次元座標空間を設定し、三次元座標空間におけるカメラ位置の座標及び三次元座標空間の各軸に対するカメラの傾き、つまりカメラ姿勢を算出する。
次に、カメラ情報算出部114は、ステップS103又はS105で算出したカメラ位置及びカメラ姿勢は蓄積部112に格納する(S106)。
また、ステップS101〜S106の一連の処理が、所定の時間間隔で繰り返し実行される。
なお、映像入力の判定(S102)とセンサ情報入力の判定(S104)の処理順は、この順序に限定されず、逆の順序であってもよし、一部又は全てが並列に行われてもよい。
以下、図4を用いて三次元再構成の原理を説明する。
例えば、三次元再構成では、エピポーラ幾何を拘束条件として、世界座標系におけるカメラの座標及び姿勢が算出される。さらに、カメラにより撮影された画像上の点の世界座標系における三次元位置が算出される。
ここで、図4に示す0は、世界座標系の原点であり、T1、T2、T3は、世界座標系におけるカメラ1、カメラ2、カメラ3のカメラ座標であり、R1、R2、R3は、世界座標系に対するカメラ1、カメラ2、カメラ3のカメラ座標系の傾きであり、Mは被写体上の点であり、m1、m2、m3は、カメラ1、カメラ2、カメラ3で撮影された画像1、画像2、画像3に写った被写体上の点Mの位置である。
各カメラの位置及び撮影方向を取得するには、世界座標系におけるカメラの回転行列及び並進ベクトルを算出する必要がある。まず、画像1と画像2との回転行列及び並進ベクトルを算出する方法を述べる。画像1上の点m1=(u1、v1、1)と画像2上の点m2=(u2、v2、1)とが対応している時、両者にはエピポーラ方程式m1 TFm2=0の関係が成り立つ。ここでFをFundamental matrix(F行列)と呼ぶ。
各カメラの内部パラメータKを用いた変換式である(式3)によりそれぞれの点を各カメラ座標系の点である(式4)及び(式5)として取得でき、エピポーラ方程式が(式6)のにように書き換えられる。
ここで、EをEssential matrix(E行列)と呼ぶ。また、複数の対応点を用いてE行列の各要素を算出できる。また、画像間の点m1及びm2のような対応点を複数用いてF行列の各要素を算出した後、変換式EK−1FKによりE行列を取得してもよい。このE行列を分解することにより、世界座標系において画像1から画像2への回転行列及び並進ベクトルを取得できる。
世界座標系におけるカメラ1の位置及び世界座標系の各軸に対するカメラ1の傾きが既知の場合は、上記相対関係を用いて、世界座標系におけるカメラ1及びカメラ2の位置及び姿勢を取得できる。世界座標系におけるカメラ1の位置及び姿勢は、映像以外のセンサ情報から算出してもよし、予め計測しておいてもよい。なお、カメラ1のカメラ座標系を世界座標系として、他のカメラの位置及び姿勢を算出してもよい。
また、画像1と画像2との回転行列及び並進ベクトルを用いて形成される三角形により世界座標系上の三次元点Mを取得できる。
また、本実施の形態では、上記の幾何学的関係を3視点以上に拡張する。画像1と画像2に対し画像3を追加する例として具体的には、画像2と画像3、及び画像1と画像3についてもそれぞれE行列を算出し、各カメラ間の相対的な回転行列及び並進ベクトルを取得し、これらを統合することにより、画像3のカメラの世界座標系における回転行列及び並進ベクトルを算出できる。また、画像3と画像1及び画像2とのそれぞれで対応点から画像3の回転行列及び並進ベクトルを算出してもよい。詳細には、画像1と画像3、及び画像2と画像3で対応点を求める。ここで、画像1上のm1及び画像2上のm2に対応する画像3上のm3が得られた場合、この対応点の三次元座標Mは取得できているため、画像3上の点と三次元空間内の座標との対応を取得できる。この時、下記(式7)の関係が成り立つ。
ここでPをPerspective matrix(P行列)と呼ぶ。P行列、E行列及び内部行列には、P=KEという関係が成り立つため、画像3のE行列を取得できる。これにより回転行列及び並進ベクトルが求められる。
以下、サーバ103による映像選択処理について説明する。図5は、サーバ103による映像選択処理のフローチャートである。
まず、初期カメラ選択部115は、初期カメラ選択処理を行う(S111)。具体的には、初期カメラ選択部115は、被写体を撮影している膨大な数のカメラ101から、ユーザに提供する任意の数のカメラを選択する。初期カメラ選択部115は、この選択に、カメラ情報算出部114で算出されたカメラ位置及びカメラ姿勢を使用する。
次に、カメラ切替判定部116は、カメラ切替判定処理を行う(S112)。具体的には、カメラ切替判定部116は、表示中の映像を撮影しているカメラで撮影対象の空間又は被写体を捉えられているか確認し、捉えられていない場合、カメラを切替えると判定する。
ステップS112においてカメラを切替えると判定された場合(S113でYes)、切替カメラ選択部117は、新たなカメラを選択する切替カメラ選択処理を行う(S114)。具体的には、カメラ切替判定部116は、この選択に、カメラ情報算出部114で算出されたカメラ位置及びカメラ姿勢を使用する。
なお、適切なカメラが存在しない場合、切替カメラ選択部117は、選択するカメラの台数を減らしてもよい。また、切替前のカメラ1台に対し、適切なカメラが複数存在する場合は、切替カメラ選択部117は、選択するカメラの台数を増やしてもよい。
次に、リセット判定部118は、リセット判定処理を行う(S115)。具体的には、リセット判定部118は、ユーザよりリセット指示が出た場合、又は、選択するカメラの台数が0或いは閾値以下になった場合、現在選択されている全てのカメラをリセットすると判定する。
ステップS115においてリセットすると判定された場合(S116でYes)、新たに初期カメラ選択が行われる(S111)。なお、このとき、初期カメラ選択部115は、新たに初期選択するカメラの台数を現在の選択カメラの台数から増加又は減少させてもよい。
また、ステップS112〜S116の一連の処理が、所定の時間間隔で繰り返し実行される。
以下、初期カメラ選択部115による初期カメラ選択処理(図5のS111)について説明する。図6は、初期映像選択処理(S111)のフローチャートである。
本実施の形態では、撮影モードとして、空間撮影モード、追跡撮影モード、及びハイブリッド撮影モードの3つの撮影モードが存在する。なお、3つの撮影モードの全てが用いられる必要はなく、一つ又は二つの撮影モードのみが用いられてもよい。
これの撮影モードの選択は、制御部113によって制御される。具体的には、制御部113は、ユーザの指定、イベントの発生、追跡対象の自動検知、又は選択カメラ台数に基づき、撮影モードを選択する。
空間撮影モードとは、指定された実空間中の領域である対象領域を撮影するためにカメラを選択するモードである。追跡撮影モードとは、指定された実空間中の動いている人物又は物体などのオブジェクトである対象被写体を追跡撮影するためにカメラを選択するモードである。ハイブリッド撮影モードは、空間撮影モード及び追跡撮影モードの両方を組み合わせたモードである。
撮影モードが空間撮影モードである場合(S121でYes)、初期カメラ選択部115は、ユーザの指定した映像上の領域に対応する三次元領域、又はシーン解析により重要と判定した三次元領域である対象領域を最も多く含んでいる映像を撮影している1台のカメラをメインカメラとして選択する(S122)。また、このカメラを空間メインカメラとも呼ぶ。
また、初期カメラ選択部115は、三次元再構成を行った場合、映像上の領域と三次元位置の対応付けに三次元モデルを使用する。また、初期カメラ選択部115は、シーン解析では、撮影対象空間の中心、又は撮影対象空間への出入口を重要と判定する。
次に、初期カメラ選択部115は、メインカメラを基準として撮影対象空間を均等な間隔、又は死角なく撮影するように複数のサブカメラを選択する(S123)。これらのカメラを空間サブカメラとも呼ぶ。
一方、撮影モードが追跡撮影モードである場合(S124でYes)、初期カメラ選択部115は、ユーザの指定した1つの被写体、又はシーン解析により重要と判定した1つの被写体である対象被写体を最も多く含んでいる映像を撮影している1台のカメラをメインカメラとして選択する(S125)。このカメラを追跡メインカメラとも呼ぶ。なお、初期カメラ選択部115は、対象被写体が複数ある場合は、1つの対象被写体に対し1台のメインカメラを選択する。
また、初期カメラ選択部115は、シーン解析では、異常行動している人物、又は試合で最も注目されている人物等を重要と判定する。
なお、初期カメラ選択部115は、対象被写体が最も多く含んでいることを基準とする代わりに、対象被写体を最も正面から撮影していることを基準としてもよい。
次に、初期カメラ選択部115は、メインカメラを基準として被写体を均等な間隔で取り囲むように複数のサブカメラを選択する(S126)。これらのカメラを追跡サブカメラとも呼ぶ。
一方、撮影モードがハイブリッド撮影モードである場合(S121でNoかつS124でNo)、初期カメラ選択部115は、空間撮影モードのメインカメラの選択と同様の方法で空間メインカメラを1台選択し、対象撮影モードのメインカメラ選択と同様の方法で追跡メインカメラを1台選択する(S127)。
次に、初期カメラ選択部115は、サブカメラの台数を任意の割合で空間撮影モードと対象撮影モードに割当てる。そして、初期カメラ選択部115は、空間撮影モードと同じ方法で空間サブカメラを選択し、追跡撮影モードと同じ方法で追跡サブカメラを選択する(S128)。
なお、空間撮影モードの確認(S121)と追跡撮影モードの確認(S124)との順序は、この順序に限らず、逆の順序であってもよし、一部又は全てが並列に行われてもよい。
以下、カメラ切替判定部116によるカメラ切替判定処理(図5のS112)について説明する。図7は、カメラ切替判定処理(S112)のフローチャートである。
カメラ切替判定部116は、初期カメラ選択処理で選択された複数のカメラの各々に対してステップS131〜S133の処理を行う。
まず、カメラ切替判定部116は、処理対象のカメラ(以下、対象カメラと記す)が空間カメラ(空間メインカメラ又は空間サブカメラ)であるかを判定する(S131)。
対象カメラが空間カメラである場合(S131でYes)、カメラ切替判定部116は、対象カメラが動くことにより指定された撮影領域がフレームアウトした場合、切替が必要と判定する(S132)。具体的には、カメラ切替判定部116は、カメラ位置の移動量及び撮影方向の回転量が、カメラの視野角に応じて事前に設定された、カメラ位置の移動量及び撮影方向の回転量の閾値を超えた場合、撮影領域がフレームアウトしたと判定する。
一方、対象カメラが追跡カメラ(追跡メインカメラ又は追跡サブカメラ)である場合(S131でNo)、カメラ切替判定部116は、追跡カメラ切替判定処理を行う(S133)。例えば、カメラ切替判定部116は、カメラ情報取得処理において三次元再構成を行った場合は三次元モデルを使用して追跡を行う。
以下、追跡カメラ切替判定処理(図7のS133)について説明する。図8は、追跡カメラ切替判定処理(S133)のフローチャートである。
まず、カメラ切替判定部116は、二次元画像上で追跡を行うか、三次元モデル内で追跡を行うかを判定する(S141)。具体的には、カメラ切替判定部116は、三次元再構成を行わない場合は、二次元画像上で追跡を行うと判定する。また、カメラ切替判定部116は、三次元再構成を行う場合は、サーバの許容負荷、要求追跡精度、又はユーザ指定に基づき、二次元画像上で追跡を行うか、三次元モデル内で追跡を行うかを選択する。
なお、カメラ切替判定部116は、二次元画像上で追跡を行う処理と、三次元モデル内で追跡を行う処理とを選択的に行うのではなく、どちらか一方のみを行ってもよい。
二次元画像上で追跡を行う場合(S141でYes)、カメラ切替判定部116は、シーン解析により指定された又はユーザにより指定された、画像中の対象被写体を選択中の追跡カメラが撮影している時系列画像のみを使用した対象被写体の追跡を開始する(S142)。
カメラ切替判定部116は、撮影フレームレート間隔で、現在のフレームと過去のフレームとの間で同一の被写体を対応付ける(S143)。
追跡が成功した場合(S144でYes)、つまり、被写体の対応付けが成功した場合、カメラ切替判定部116は、次のフレームに対してステップS143以降の処理を行う。一方、追跡が失敗した場合(S144でNo)、つまり、被写体の対応付けが失敗した場合、カメラ切替判定部116は、選択中のカメラでは対象被写体を追跡できなくなったと判定し、カメラ切替が必要と判定する(S145)。
一方、三次元モデル内で追跡を行う場合(S141でNo)、カメラ切替判定部116は、対象被写体を三次元モデルに対応付け、三次元モデル内での対象被写体の追跡を開始する(S146)。
カメラ切替判定部116は、撮影フレームレート間隔で、現在の三次元モデルと過去の三次元モデルとで同一の被写体を対応付ける。そして、カメラ切替判定部116は、対応付けられた被写体を選択中の追跡カメラの現時刻のフレームへ投影する(S147)。
追跡が成功した場合、つまり、フレーム間での三次元モデルの対応付けが完了し、かつ、投影により得られた現時刻のフレーム内に対象被写体が含まれる場合(S148でYes)、カメラ切替判定部116は、次のフレームに対してステップS147以降の処理を行う。一方、追跡が失敗した場合(S148でNo)、つまり、フレーム間での三次元モデルの対応付けが失敗した場合、又は、投影により得られた現時刻のフレーム内に対象被写体が含まれない場合、カメラ切替判定部116は、選択中のカメラでは対象被写体を追跡できなくなったと判定し、カメラ切替が必要と判定する(S145)。
また、追跡カメラ切替判定処理及び追跡カメラの切替カメラ選択処理は、二次元画像のみで被写体を追跡するケースと三次元モデルのみで被写体を追跡するケースとこれらの両方を用いるケースとの3つがある。各ケースの詳細は図10〜図12で説明する。
以下、切替カメラ選択処理(図5のS114)について説明する。図9は、切替カメラ選択処理(S114)のフローチャートである。
切替が必要と判定されたカメラの各々に対して、図9に示すステップS151〜S157の処理が行われる。
対象カメラが空間カメラである場合(S151でYes)、切替カメラ選択部117は、任意に設定された範囲にある複数台の候補カメラから、カメラ位置、カメラ姿勢、及び焦点距離が、切替前の空間カメラの初期映像選択時のカメラ位置、カメラ姿勢、及び焦点距離に最も近いカメラを新たな空間カメラとして選択する(S152)。
具体的には、下記評価式(式8)が用いられる。
score=w1*(pos(cA)−pos(cB))^2
+w2*(dir(cA)−dir(cB))^2
+w3*(for(cA)−for(cB))^2 ・・・(式8)
ここで、w1、w2及びw3は重み係数であり、pos(ck)はカメラkのカメラ位置を示し、dir(ck)はカメラkのカメラ姿勢を示し、for(ck)はカメラkの焦点距離を示し、cAは切替前の空間カメラを示し、cBは候補カメラを示す。
上記の評価式を使用する場合、切替カメラ選択部117は、複数台の候補カメラの中で最もscoreの小さな1台を新たな空間カメラとして選択する。
一方、対象カメラが追跡カメラである場合(S151でNo)、切替カメラ選択部117は、二次元画像のみを用いて切替カメラの選択を行うか、三次元モデルを用いて切替カメラの選択を行うかを判定する(S153)。なお、この判定の手法は、例えば、上述したステップS141と同様である。
切替カメラ選択部117は、二次元画像のみを用いて切替カメラを選択する場合(S153でYes)、カメラ切替判定部116で追跡した被写体がフレームから消失した時の位置を推定する。そして、切替カメラ選択部117は、その推定位置を撮影しているカメラのうち、被写体が最も中心に存在、又は被写体が最も大きく映っているカメラを選択する(S154)。
一方、切替カメラ選択部117は、三次元モデルを用いて切替カメラを選択する場合(S153でNo)、カメラ切替判定処理において、二次元画像上で被写体の追跡を行ったか、三次元モデル上で被写体の追跡を行ったかを判定する(S155)。
二次元画像上で被写体の追跡を行った場合(S155でYes)、切替カメラ選択部117は、カメラ切替判定部116で追跡した被写体が消失した1つ前のフレームの被写体の三次元モデルを算出する。そして、切替カメラ選択部117は、その三次元モデルを撮影しているカメラのうち、被写体が最も中心に存在、又は被写体が最も大きく映っているカメラを選択する(S156)。
一方、三次元モデル上で被写体の追跡を行った場合(S155でNo)、切替カメラ選択部117は、カメラ切替判定部116で追跡した被写体を撮影しているカメラのうち、被写体が最も中心に存在、又は被写体が最も大きく映っているカメラを選択する(S157)。
なお、いずれの切替方法においても、切替カメラ選択部117は、切替に適したカメラが存在しない場合は、切替を行わず、選択するカメラ台数を減らしてもよいし、切替えに適したカメラが複数存在する場合は、1台のカメラを複数のカメラに増やしてもよい。
なお、カメラの撮影モードの確認(S151)、切替方法の確認(S153)、及び追跡方法の確認(S155)の処理順は、この順序に限定されず、任意の順序であってよい。また、一部又は全てが並列に行われてもよい。
以下、追跡カメラ切替判定処理及び切替カメラ選択処理において、二次元画像のみを用いて被写体を追跡する動作を詳細に説明する。図10及び図11は、この動作を説明するための図である。
図10は、追跡カメラで時刻t、t+1及びt+2に撮影されたフレーム201A、201B及び201Cを示す図である。
まず、カメラ切替判定部116は、時刻t+1において、時刻t+1のフレーム201Bと時刻tのフレーム201Aとの間の対応付けにより被写体202を追跡する。なお、この対応付けは、連続するフレーム間で行う必要はなく、1以上のフレームを跨いだ2つのフレーム間で行われてもよいし、未来の例えば、時刻t+2のフレームも含めた3以上のフレーム間で行われてもよい。
具体的には、カメラ切替判定部116は、この対応付けを、被写体を囲む矩形領域のテンプレートマッチングを用いて行う。なお、カメラ切替判定部116は、矩形領域を分割したサブ領域毎のテンプレートマッチングの結果を統合し、統合された結果を用いて対応付けを行ってもよいし、被写体上の複数の特徴点又は局所特徴量の対応付けにより、フレーム間の対応付けを行ってもよい。
また、カメラ切替判定部116は、被写体領域を正解領域とし、その周辺領域を非正解領域としたオンライン学習を行うことによる追跡を行ってもよい。
また、カメラ切替判定部116は、被写体の追跡を選択中のカメラ1台のみを用いて行うのではなく、選択中のカメラを含む複数のカメラを用いて行い、複数のカメラの追跡結果を統合し、統合結果を用いて追跡を行ってもよい。例えば、カメラ切替判定部116は、予め複数視点から撮影された被写体を学習したデータベースを用いて特定物体識別を行うことで、各カメラの映像における同一被写体を認識する。
また、時刻t+2において、被写体202が追跡カメラからフレームアウトする。図11は、時刻t+2における実空間の状況を示す図である。カメラ101Aは、選択中の追跡カメラであり、領域203Aを撮影している。
時刻t+2で被写体202がフレームアウトしたため、カメラ切替判定部116はカメラの切替が必要であると判定する。
また、切替カメラ選択部117は、カメラ情報算出部114で算出した選択中の追跡カメラの位置、姿勢及び焦点距離から画像の視野に映る領域203Aを算出する。そして、切替カメラ選択部117は、フレームアウトした被写体202がこの領域203Aの右側付近にいると推定する。
切替カメラ選択部117は、領域203Aの右側付近を撮影している複数のカメラのうち、被写体202を最も中心に撮影している、又は被写体の面積が最も大きい映像を撮影しているカメラ101Bを新たな追跡カメラとして選択する。この例では、カメラ101Bは、被写体202を含む領域203Bを撮影している。
ここで、追跡を続行するためには、カメラ101Bで撮影された画像内で被写体202を特定する必要がある。例えば、切替カメラ選択部117は、カメラ101Aの時刻t+1のフレームとカメラ101Bの時刻t+2のフレームとの間で対応付けを行う。例えば、この対応付けには、カメラ101Aのフレーム間で実施した追跡方法と同様の方法を用いる。
なお、2つのカメラ101Aと101Bとの間の視野の違いを補正するために、切替カメラ選択部117は、さらにカメラ位置、姿勢及び焦点距離などのカメラ情報を用いて、射影変換したフレームを用いて追跡を行ってもよい。
また、カメラ切替は、被写体がフレームアウトした場合に限らず、被写体が選択中の追跡カメラの撮影領域内に存在しているが、オクルージョンによりフレームから消失した場合にも行われる。
また、切替カメラ選択部117は、必ずしも被写体がフレームから消失して即座にカメラを切替える必要はなく、消失中も被写体の動きを推定し続け、再びフレーム内に出現するのを待ってもよい。つまり、切替カメラ選択部117は、予め定められた期間(複数フレーム)の間、被写体がフレーム内に含まれない場合にカメラ切替を行ってもよい。
以下、追跡カメラ切替判定処理及び切替カメラ選択処理において、三次元モデルのみを用いて被写体を追跡する動作を詳細に説明する。図12は、この動作を説明するための図である。
まず、時刻tにおいて、画像(フレーム201A)上において追跡対象の被写体202が指定された場合、画像上の被写体202を三次元モデル内で特定する必要がある。
カメラ切替判定部116は、カメラ情報算出部114において算出された、選択中の追跡カメラの位置、姿勢及び焦点距離を用いて、画像と三次元空間との透視投影行列を算出する。カメラ切替判定部116は、この透視投影行列を用いて、画像内の被写体202上の特徴点を三次元空間へ投影することにより、三次元モデル内での被写体202を特定する。
時刻t+1においては、カメラ切替判定部116は、時刻t+1の三次元モデルと時刻tの三次元モデルとの間の対応付けにより被写体202を追跡する。なお、対応付けは連続する時刻の三次元モデル間で行う必要はなく、1以上の時刻(フレーム)を跨いだ2つの時刻の三次元モデル間で行われてもよいし、未来の例えば、時刻t+2の三次元モデルも含めた3以上の時刻の三次元モデル間で行われてもよい。
具体的には、カメラ切替判定部116は、対応付けを、被写体を囲むボクセルのマッチングを用いて行う。なお、カメラ切替判定部116は、ボクセルを分割したサブボクセル毎のマッチング結果を統合し、統合された結果を用いて対応付けを行ってもよいし、被写体上の複数の三次元特徴点又は三次元局所特徴量の対応付けにより、被写体の対応付けを行ってもよい。
また、カメラ切替判定部116は、被写体領域を正解領域とし、その周辺領域を非正解領域としたオンライン学習を行うことによる追跡を行ってもよい。
また、カメラ切替判定部116は、追跡中において、各時刻の三次元モデル中の被写体202を各時刻の画像平面へ投影し、得られた画像を用いて被写体202がカメラの視野内に存在するか確認する。具体的には、カメラ切替判定部116は、この投影を、時刻tでの画像と三次元モデルとの対応付けと同様の方法で行う。
時刻t+2において、被写体202が追跡カメラからフレームアウトする。切替カメラ選択部117は、新たな追跡カメラを選択するために、被写体202の三次元モデルを各カメラの画像平面へ投影する。切替カメラ選択部117は、この投影を、時刻tでの画像と三次元モデルとの対応付けと同様の方法で行う。
そして、切替カメラ選択部117は、投影された被写体202が最も中心にある、又は被写体の面積が最も大きな画像を撮影したカメラ101を選択する。
なお、図10及び図11で説明した二次元画像を用いる場合と同様に、カメラ切替は、被写体がフレームアウトした場合に限らず、被写体が選択中の追跡カメラの撮影領域内に存在しているが、オクルージョンによりフレームから消失した場合にも行われる。
また、切替カメラ選択部117は、必ずしも被写体がフレームから消失して即座にカメラを切替えることはなく、消失中も被写体の動きを推定し続け、再びフレーム内に出現するのを待ってもよい。
以下、追跡カメラ切替判定処理及び切替カメラ選択処理において、二次元画像及び三次元モデルの両方を用いて被写体を追跡する動作を詳細に説明する。図13は、この場合の動作を説明するための図である。
時刻tにおいては、カメラ切替判定部116は、図10で説明した二次元画像を用いる場合と同様の方法により被写体202の追跡を行う。
時刻t+2では追跡カメラが被写体202を見失っているため、切替カメラ選択部117は、被写体202の追跡に成功できている中で最新の時刻t+1のフレーム201Bと時刻t+1の三次元モデルとを用いて、新たな追跡カメラを選択する。
カメラ切替判定部116は、時刻t+1のフレーム201B中の被写体202と時刻t+1の三次元モデル中の被写体202との対応付けを、図10で説明した二次元画像を用いる場合と同様の方法により行う。また、切替カメラ選択部117は、三次元モデルを用いた新たな追跡カメラの選択を、図12と同様の方法により行う。カメラ切替判定部116は、ここで選択された新たな追跡カメラの撮影する時系列画像を用いて、図10及び図11と同じ方法により被写体202の追跡を継続する。
なお、図10〜図12と同様に、カメラ切替は、被写体がフレームアウトした場合に限らず、被写体が選択中の追跡カメラの撮影領域内に存在しているが、オクルージョンによりフレームから消失した場合にも行われる。
また、切替カメラ選択部117は、必ずしも被写体がフレームから消失して即座にカメラを切替えることはなく、消失中も被写体の動きを推定し続け、再びフレーム内に出現するのを待ってもよい。
なお、図12及び図13においては、カメラ情報算出部114は、カメラ位置、姿勢、及び焦点距離の算出のみを行い、カメラ切替判定部116により被写体202の三次元モデルの再構成が行われてもよい。その場合、カメラ切替判定部116は、母数となる全てのカメラ101の映像を使用してもよいし、被写体202を映している映像のみ使用してもよいし、選択中の追跡カメラ及びその近傍のカメラの映像のみを使用してもよい。
なお、図8及び図10〜図13の追跡カメラ切替判定処理の被写体追跡においては、カメラ切替判定部116は、ユーザに表示する選択カメラとは独立して、母数カメラの中から追跡に適したものを選択し、それらを用いて追跡を行ってもよい。
以下、リセット判定処理(図5のS115)について説明する。図14は、リセット判定処理(S115)のフローチャートである。
撮影モードが空間撮影モードである場合(S161でYes)、リセット判定部118は、下記の4つの条件のうち1つでも満たされる場合にカメラ選択のリセットが必要と判定する(S162)。(1)ユーザにより別の撮影モードへの切替が指定された。(2)ユーザにより別の対象領域が指定された。(3)シーン解析により別の重要領域(対象領域)が指定された。(4)空間カメラの台数が0台或いは下限台数以下、又は上限台数以上である。
撮影モードが追跡撮影モードである場合(S163でYes)、リセット判定部118は、下記4つの条件のうち1つでも満たされる場合にカメラ選択のリセットが必要と判定する(S164)。(1)ユーザにより別の撮影モードへの切替が指定された。(2)ユーザにより別の対象被写体が指定された。(3)シーン解析により別の重要被写体(対象被写体)が指定された。(4)追跡カメラの台数が0台或いは下限台数以下、又は上限台数以上である。
撮影モードがハイブリッド撮影モードである場合(S161でNoかつS163でNo)、リセット判定部118は、空間撮影モードと同様の条件、及び追跡撮影モードと同様の条件のうち1つでも満たされる場合にカメラ選択のリセットが必要と判定する(S165)。
以下、イベント会場(例えば、スポーツ競技場又はライブ会場等)における空間撮影モードでのカメラ選択の具体例を説明する。図15及び図16は、イベント会場における空間撮影モードでのカメラ選択の具体例を説明するための図である。
まず、図15を用いて、カメラ間隔が均等になるように複数の選択カメラを選択する例について説明する。
初期カメラ選択部115は、ユーザの指定した映像上の領域に対応する三次元領域、又はシーン解析により重要と判定した三次元領域である対象領域を最も多く含んでいる映像を撮影しているカメラ101Aをメインカメラとして選択する。また、初期カメラ選択部115は、メインカメラを基準として撮影方向が均等な間隔となるようにサブカメラを選択する。
また、サーバ103は、カメラの選択結果と共に各選択カメラがメインカメラとサブカメラのどちらであるかという情報を出力してもよい。この情報は表示アプリで使用される。
図15のようにバスケットコートを360°囲むように観客席が設置されているイベント会場を例として説明する。
初期カメラ選択部115は、色々な座席からの観戦風景をユーザが視聴できるようにメインカメラ101Aの座席位置を基準として、均等な座席間隔となるようにサブカメラ101B〜101Eを選択する。メインカメラ101Aは、ユーザが指定した位置に最も近いカメラであってもよいし、ユーザが指定した位置を最も中心又は大きく撮影しているカメラであってもよいし、最も会場が見やすい位置に最も近いカメラであってもよい。会場の見やすさは予め設定されている。
サブカメラ101B〜101Eは、メインカメラ101Aとイベント会場の中心位置を基に選択される。
例えば、初期カメラ選択部115は、メインカメラ及びサブカメラであわせて5台のカメラを選択する場合、イベント会場の中心にあるセンターサークルの中心を原点として、メインカメラを0°の方位とすると、約72°間隔となるようにサブカメラを選択する。原点に対する方位は、カメラ位置及びカメラ方向に基づき算出される。なお、原点は、必ずしもイベント会場の中心でなくてもよく、ゴール、電光掲示板又はベンチの位置などであってもよい。
または、初期カメラ選択部115は、指定位置を映しているカメラから5台を選択する全ての組合せについてカメラ間隔を算出し、センターサークルの中心を原点として、5台のカメラが最も均等に配置されている組合せを選択してもよい。この時、各カメラをメイン及びサブに区別する必要はない。
次に、図16を用いて撮影位置を基にカメラを選択する例を説明する。図16に示すようにバスケットコートを360°囲むように観客席が設置されているイベント会場を例として説明する。
初期カメラ選択部115は、色々な座席からの観戦風景をユーザが視聴できるように、イベント会場であるバスケットコートを死角なく撮影するように空間カメラを選択する。
例えば、初期カメラ選択部115は、5台のカメラを選択する場合、予めカメラ5台分がそれぞれ撮影する視野である撮影視野を設定しておく。これらの撮影視野はユーザが選択してもよいし、初期カメラ選択部115がバスケットコートを5等分するように撮影視野を設定してもよい。
初期カメラ選択部115は、各撮影視野に最も近い視野を撮影しているカメラを空間カメラとして選択する。なお、初期カメラ選択部115は、カメラの視野を、カメラ位置、カメラ姿勢及び焦点距離から算出する。
なお、初期カメラ選択部115は、撮影視野を、選択したカメラ映像を切替えると、映像がシームレスに繋がって見えるように重複なく設定してもよい。また、選択映像を合成して広視野角の映像を生成し、当該映像を表示アプリで表示できる場合、初期カメラ選択部115は、合成に適するように撮影視野が互いに重複するように複数の撮影視野を設定してもよい。
以下、イベント会場における追跡撮影モードでのカメラ選択の具体例を説明する。図17、図18及び図19は、イベント会場における追跡撮影モードでのカメラ選択の具体例を説明するための図である。
図17は、対象被写体が1名の場合の初期カメラ選択処理を説明するための図である。図17に示すように、バスケットの試合において、1人の対象被写体に注目する場合を説明する。
例えば、初期カメラ選択部115は、ユーザによる被写体の指定、又はシーン解析によりボールを持っている人物を特定し、特定した人物である1名の注目プレイヤを被写体202(対象被写体)として選択する。
初期カメラ選択部115は、注目プレイヤを正面又は最も大きく撮影しているカメラ101Aをメインカメラとして選択し、メインカメラを基準として、均等な撮影方向となるようにサブカメラ101B〜101Eを選択する。例えば、初期カメラ選択部115は、5台のカメラを選択する場合、注目プレイヤの位置を原点として、メインカメラを0°の方位とすると、約72°間隔となるようにサブカメラを選択する。初期カメラ選択部115は、原点に対する方位をカメラ位置及びカメラ方向に基づき算出する。なお、対象被写体は、人物に限らず、ゴール又は電光掲示板であってもよい。
図18は、イベント会場における追跡撮影モードにおける、被写体が1名の場合の切替カメラ選択処理を説明するための図である。図18に示すように、バスケットの試合において、1人の対象被写体に注目する場合を説明する。
追跡撮影モードでは、切替カメラ選択部117は、被写体を追跡し、現在の追跡カメラが被写体を捉えられなくなった場合にカメラの切替を行う。例えば、切替カメラ選択部117は、ある追跡カメラの視野から被写体が消失しそうになった場合、被写体の追跡結果に応じて被写体をより視野の中央に映しているカメラを探索し、探索により得られたカメラを、元の追跡カメラの代わりに新たな追跡カメラに設定する。
多視点映像を用いた三次元再構成を行う場合は、被写体が三次元モデルとして再構成されているため、切替カメラ選択部117は、三次元空間内で被写体の追跡を行う。切替カメラ選択部117は、被写体上の三次元点を視野の最も中心又は最も大きく映しているカメラに追跡カメラを切り替えていく。
多視点映像を用いた三次元再構成を行わない場合は、切替カメラ選択部117は、二次元映像による被写体の追跡を行う。この時の追跡において、切替カメラ選択部117は、過去のフレームと現在のフレームとを用いて、被写体の次の動きを予測し、被写体の行き先の空間を撮影しているカメラに追跡カメラを切り替える。
例えば、図18に示すように被写体202が動く場合、切替カメラ選択部117は、当該被写体202の追跡を行う。
被写体202の三次元モデルを再構成する場合は、切替カメラ選択部117は、三次元空間で追跡を行い、再構成しない場合は、二次元映像で被写体202の動きを予測する。そして、切替カメラ選択部117は、被写体202を視野の最も中心又は最も大きく映しているカメラ101Fに選択カメラを切り替える。
図19は、イベント会場において被写体が複数名の場合の動作を説明するための図である。図19に示すようにバスケットの試合において、複数の被写体202A及び202Bに注目する場合を説明する。
初期カメラ選択部115は、ユーザによる被写体の指定又はシーン解析により2名以上の注目プレイヤを被写体202A及び202Bとして選択し、1名に少なくとも1つのカメラを割当てる。初期カメラ選択部115は、それぞれの注目プレイヤを正面又は最も大きく撮影しているカメラをメインカメラとして選択する。つまり、注目プレイヤの人数と同数のメインカメラが存在する。次に、初期カメラ選択部115は、それぞれのメインカメラを基準として、均等な撮影方向となるようにサブカメラを選択する。
例えば、2名の注目プレイヤを5台のカメラで撮影する場合、初期カメラ選択部115は、注目プレイヤA(被写体202A)に3台のカメラを割り当て、注目プレイヤB(被写体202B)に2台のカメラを割当てる。各注目プレイヤにメインカメラが1台ずつ割り当てられているので、初期カメラ選択部115は、注目プレイヤAについては、注目プレイヤAの位置を原点とし、メインカメラ101Aを0°の方位とし、約120°間隔になるようにサブカメラ101B及び101Cを選択する。また、初期カメラ選択部115は、注目プレイヤBについても同様に、注目プレイヤBの位置を原点とし、メインカメラ101Dを0°の方位とし、約180°間隔になるようにサブカメラ101Eを選択する。
また、初期カメラ選択部115は、選択カメラの台数を、ユーザの指定による優先度の高いプレイヤ、又は、シーン解析によりボールを持っている、或いはボールにより近いプレイヤに多く割当てるようにする。また、初期カメラ選択部115は、注目プレイヤの数が選択カメラ台数を超える場合も同様に優先度をつけて、高い順に選択カメラを割当てる。
また、カメラ切替判定部116は、図18と同様の方法で注目プレイヤの追跡を行う。
なお、初期カメラ選択部115は、選択カメラの数の範囲内で、空間撮影モードと追跡撮影モードとの組合せであるハイブリッド撮影モードでカメラを選択してもよい。
以下、図20及び図21を用いて、ショッピングセンターの監視環境における動作例を説明する。図20は、ショッピングセンターの監視環境における空間撮影モードでのカメラ選択を説明するため図である。
図20に示すようにショッピングセンターにおいて、天井又は柱に設置された固定カメラと警備員が装着するモバイルカメラによる監視環境を例として説明する。
初期カメラ選択部115は、ショッピングセンター全体を監視できるように死角なくカメラを選択する。また、初期カメラ選択部115は、ユーザがUI上で指定した場所或いは人、又は、商材の出入口のように監視において重要と判断される場所を撮影しているカメラをメインカメラに設定する。そして、初期カメラ選択部115は、メインカメラが撮影していない場所を補うようにサブカメラを選択する。
例えば、図20の例では、出入口付近を撮影しているカメラ101Aがメインカメラとして選択され、ショッピングセンター全体を監視できるようにサブカメラ101B〜101Eが選択される。
また、初期カメラ選択部115は、ショッピングセンターにおける固定の監視カメラが撮影できる領域及び死角となる領域を事前情報として取得する。なお、死角となる領域は警備員がモバイルカメラで撮影することにより補ってもよい。
図21は、ショッピングセンターの監視環境における追跡撮影モードでのカメラ選択を説明するための図である。
図21に示すように、にショッピングセンターの監視において、1人の被写体202に注目する場合を説明する。
初期カメラ選択部115は、ユーザがUI上で指定した被写体、又はシーン解析により異常行動している人物を特定し、特定した少なくとも1名の注目人物を対象被写体として選択する。また、初期カメラ選択部115は、注目人物とカメラとの距離、注目人物の正面に対するカメラの角度、又は注目人物の画像上の面積(画素数)を基にショッピングセンター内のカメラの順位付けを行い、上位から選択するカメラ台数分のカメラを選択する。この時、初期カメラ選択部115は、最上位のカメラをメインカメラとして選択する。
図21に示す例では、カメラ101Aがメインカメラとして選択され、カメラ101B〜101Dがサブカメラとして選択される。
なお、対象被写体は人物に限らず、出火場所又は商品の転倒などのイベント発生場所が対象被写体として設定されてもよい。
なお、図15から図21のいずれの場合においても、サーバ103が端末装置102に配信する音声は、メインカメラで取得した音声であってもよいし、メインカメラに最も近い端末で取得した音声であってもよいし、ユーザがUI上で指定した場所に最も近い端末で取得した音声であってもよいし、被写体に最も近い端末で取得した音声であってもよいし、最も音質の良い音声であってもよいし、複数端末から取得した音声を合成することで得られた音声であってもよい。
以下、図6で説明した初期カメラ選択処理の詳細及び別の例について説明する。図22は、初期カメラ選択処理のフローチャートである。
まず、初期カメラ選択部115は、カメラ単体の評価値を算出する(S201)。そして、初期カメラ選択部115は、算出した評価値に基づき、一台のメインカメラを選択する。具体的には、初期カメラ選択部115は、評価値が最も高いカメラをメインカメラとして選択する。
次に、初期カメラ選択部115は、選択するカメラの台数を取得する(S202)。例えば、初期カメラ選択部115は、ユーザにより指定された、又は予め設定されているカメラの台数を取得する。
次に、初期カメラ選択部115は、カメラ位置による組み合わせ評価値(カメラ位置評価値)を算出する(S203)。具体的には、初期カメラ選択部115は、メインカメラと、選択台数−1台のサブカメラとの組合せごとに、カメラ位置に基づき評価値を算出する。
次に、初期カメラ選択部115は、ステップS201及びS203で算出されたカメラ単体の評価値及びカメラ位置評価値を用いてカメラ群を選択する(S204)。具体的には、初期カメラ選択部115は、2つの評価値から得られた総合評価値が最も高いカメラ群を選択する。
例えば、初期カメラ選択部115は、カメラ群に含まれる複数のカメラ各々のカメラ単体の評価値の総和と、当該カメラ群のカメラ位置評価値との積を総合評価値として算出する。なお、総合評価値の算出方法はこれに限らず、重み付け加算等の任意の手法を用いてよい。
最後に、初期カメラ選択部115は、選択したカメラ群を出力する(S205)。
なお、ここでは、初期カメラ選択部115は、先にメインカメラを選択し、当該選択カメラを含むカメラ群に対して、総合評価値に基づく判定を行っているが、全ての組み合わせから最も総合評価値が最も高い組み合わせを先に求め、その組み合わせに含まれる複数のカメラの中でカメラ単体の評価値が最も高いカメラをメインカメラとして選択してもよい。
以下、カメラ単体の評価値算出処理(図22のS201)について説明する。図23は、カメラ単体の評価値算出処理のフローチャートである。
まず、初期カメラ選択部115は、ポイントクラウドを取得する(S211)。ここでポイントクラウドとは、再構成された三次元モデル及びカメラ位置情報を含む。
次に、初期カメラ選択部115は、三次元モデル上の対象被写体(対象物体)又は対象領域の点群にフラグを付与する(S212)。
図24は対象領域211の選択例を示す図である。図25は対象被写体212の選択例を示す図である。また、対象被写体又は対象領域の選択方法としては、ユーザが手動で対象被写体又は対象領域を選択する方法と、自動的に対象被写体又は対象領域を選択する方法とがある。
ユーザが手動で対象被写体又は対象領域を選択する場合、ユーザはUI上から対象被写体又は対象領域を選択する。そして、初期カメラ選択部115は、二次元平面上の選択領域を三次元モデル上に逆投影することで、三次元モデル上の対象被写体又は対象領域を選択する。
自動的に対象被写体又は対象領域を選択する場合であって、サーバ103が予めマップ情報を取得している場合、初期カメラ選択部115は、出入り口などの重点監視領域を対象領域として選択する。または、初期カメラ選択部115は、姿勢認識等により不審者を自動検知し、当該不審者を対象被写体として選択する。
また、サーバ103が予めマップ情報を取得していない場合、初期カメラ選択部115は、人間の流量の多い領域ほど重要度が高いと判定し、人間の流量の多い領域を対象領域として選択する。または、初期カメラ選択部115は、姿勢認識等により不審者を自動検知し、当該不審者を対象被写体として選択する。
次に、初期カメラ選択部115は、カメラ位置情報を用いて点群を二次元平面に投影することで画像を作成する(S213)。
次に、初期カメラ選択部115は、投影された各画像中のフラグが付与されている領域を抽出する(S214)。
次に、初期カメラ選択部115は、各画像中の抽出された領域の評価値を算出することで、当該画像(カメラ)の評価値を算出する(S215)。
例えば、初期カメラ選択部115は、抽出された領域の画像中の大きさが大きいほど評価値を上げる。また、初期カメラ選択部115は、可視化領域の割合が大きいほど評価値を上げてもよい。ここで可視化領域とは、抽出された領域を実際に画像中で確認できる面積の割合であり、対象領域又は対象被写体の手前に他の物体等が存在する場合には、この割合が小さくなる。また、初期カメラ選択部115は、対象領域又は対象被写体の各部分に優先度を付け、優先度が高い部分がより多く又は大きく写っているほど評価値を上げてもよい。例えば、初期カメラ選択部115は、被写体の顔が写っている場合に評価値を上げてもよい。また、初期カメラ選択部115は、画像の鮮明度等が高いほど、又は歪みが小さいほど評価値を上げてもよい。
以下、カメラ位置評価値算出処理(図22のS203)について説明する。図26は、カメラ位置評価値算出処理のフローチャートである。
まず、初期カメラ選択部115は、選択モードを取得する(S231)。ここで、選択モードとは、俯瞰モードと、集中モードとを含む。例えば、初期カメラ選択部115は、ユーザにより指定された、又は予め設定されている選択モードを取得する。
俯瞰モードは、図27に示すように、対象被写体212(又は対象領域)を全方向から等間隔で撮影しているカメラ101A〜101Dを選択するモードである。集中モードは、図28に示すように、対象被写体212(又は対象領域)を特定の方向から撮影しているカメラ101A〜101Dを集中的に選択するモードである。例えば、スポーツ観戦等で、スタジアムの全方向に観客席が設けられている場合には、俯瞰モードが有効である。また、コンサートなど、ステージの一方の方向のみに観客席が設けられている場合、又は、ユーザが特定の視点方向からの映像を集中的に見たい場合に集中モードが有効である。
次に、初期カメラ選択部115は、選択された台数分のカメラを含むカメラ群を複数抽出する(S232)。次に、初期カメラ選択部115は、選択モードに応じて各カメラ群のカメラ位置評価値を算出する(S233)。
具体的には、俯瞰モードの場合には、初期カメラ選択部115は、複数のカメラが目標代表点より一定角度毎に存在しているかどうかに応じてカメラ位置評価値を決定する。具体的には、初期カメラ選択部115は、複数のカメラが等間隔であるほど評価値を上げる。また、初期カメラ選択部115は、カメラの撮像範囲に対する対象被写体の写っている面積の割外が、所定値よりも高い場合には、位置情報を優先してもよい。つまり、初期カメラ選択部115は、対象被写体がアップになりすぎている場合には評価値を下げてもよい。
また、集中モードの場合には、初期カメラ選択部115は、複数のカメラがどれだけ指定方向に存在しているかに応じてカメラ位置評価値を決定する。具体的には、初期カメラ選択部115は、複数のカメラが指定方向に集中しているほど評価値を上げる。
なお、初期カメラ選択部115は、被写体の向き(顔の方向など)を考慮し、被写体がカメラの方向を向いているほど評価値を上げてもよい。この場合、例えば、顔認識等により被写体の向きを検知できる。
また、カメラ群の抽出(S232)及びカメラ位置評価値の算出(S233)の方法としては以下の方法を用いることができる。
例えば、初期カメラ選択部115は、総当りであらゆるカメラの組み合わせをカメラ群として抽出する。または、初期カメラ選択部115は、複数のカメラを、類似する構成(位置が近い等)のカメラ群が同一のクラスになるように分類し、各クラスの代表カメラの全ての組み合わせをカメラ群として抽出してもよい。または、初期カメラ選択部115は、カメラ単体の評価値に基づきメインカメラを選択し、当該メインカメラを含むあらゆるカメラの組み合わせをカメラ群として抽出してもよい。
また、時間方向でのカメラ切り替え判定として以下の手法を用いてもよい。例えば、カメラ切替判定部116は、以前に選択されたカメラ群の情報を保持しておく。カメラ切替判定部116は、各時間において、カメラ群評価値を保持し、切り替えるかどうかを選択する。この際、時間方向には切り替え頻度を制御するパラメータを用意し、カメラ切替判定部116は、当該パラメータを用いて切り替えを行うかどうかを判定する。具体的には、カメラ切替判定部116は、当該パラメータを用いることで、前回の切り替えから経過した時間が短いほど、切り替えを行わないように制御する。例えば、カメラ切替判定部116は、前回の切り替えからの経過時間が第1時間未満の場合には、切り替えを行わないと判断し、第1時間以上かつ第2時間未満の場合には第1基準で判定を行い、第2時間以上の場合には第1基準より緩い(第1基準よりも切り替えると判定されやすい)第2基準で判定を行ってもよい。
また、上述した図5の説明では、サーバ103は、初期カメラ選択処理(S111)の後、カメラ切替又はリセットが必要な場合に、カメラ切替及びリセットを行っているが、所定の周期で初期カメラ選択処理のみを繰り返し行ってもよい。この場合にも、上記と同様のパラメータを用い、切り替えが頻繁に行われないように制御してもよい。
以上のように、本実施の形態に係るカメラ選択方法は、同一の場面を撮影しているN(2以上の自然数)台のカメラ101から、表示する映像の撮影元のM(MはNより小さい自然数)台のカメラ101(選択カメラ)を選択するカメラ選択方法であって、図29に示す処理を行う。
まず、サーバ103は、N台のカメラ101の位置及び撮影方向を取得する(S241)。具体的には、サーバ103は、N台のカメラ101で撮影された画像を用いて三次元再構成を行うことで、N台のカメラ101の位置及び撮影方向を算出する。または、サーバ103は、N台のカメラ101の各々から送信された、当該カメラ101が備えるセンサ(例えばGPS、WiFi又はジャイロセンサ等)で得られた情報を用いて、N台のカメラの位置及び撮影方向を算出する。
次に、サーバ103は、取得されたN台のカメラ101の位置及び撮影方向に基づき、N台のカメラ101からM台のカメラ101を選択する(S242)。具体的には、サーバ103は、N台のカメラ101の位置及び撮影方向に基づき、M台のカメラ101により対象空間を死角なく撮影できるようにM台のカメラ101を選択する。つまり、サーバ103は、N台のカメラ101の位置及び撮影方向に基づき、M台のカメラ101の撮影空間の重複がより少なく、かつ、M台のカメラ101の撮影空間が対象空間をカバーする割合がより大きくなるM台のカメラ101を優先して選択する。または、サーバ103は、N台のカメラ101の位置及び撮影方向に基づき、対象空間又は対象被写体を複数の方向から等間隔に撮影しているM台のカメラ101を優先して選択する。
なお、サーバ103は、ステップS241において、さらに、N台のカメラ101の焦点距離を取得し、ステップS242において、取得されたN台のカメラ101の位置、撮影方向及び焦点距離に基づき、N台のカメラ101からM台のカメラ101を選択してもよい。
これにより、当該カメラ選択方法は、カメラの位置及び撮影方向に基づき、複数のカメラから自動的に適切なカメラを選択できる。
また、図5に示すように、サーバ103は、さらに、ステップS242(S111)の後のフレームにおいて、選択されているM台のカメラ101のうちの一部のカメラを他のカメラに切り替えるか否かを判定する(S112)。具体的には、図8に示すように、サーバ103は、フレーム間で対象被写体を追跡し、対象被写体の追跡に失敗した場合に、選択するカメラを切り替えると判定する。より具体的には、サーバ103は、フレーム間で対象被写体の三次元モデルを対応付け、対応付けた対象被写体の三次元モデルを現時刻のフレームに投影し、得られたフレーム内に対象被写体が存在しない場合に、追跡が失敗したと判定する(S147)。
また、サーバ103は、ステップS112において、切り替えると判定された場合に(S112でYes)、N台のカメラ101の位置及び撮影方向に基づき、上記一部のカメラの代わりの新たなカメラを選択する(S114)。
また、サーバ103は、さらに、ステップS242(S111)の後のフレームにおいて、ステップS242(S111)を再度行うか否かを判定する(S115)。サーバ103は、ステップS115において、ステップS242(S111)を行うと判定された場合(S116でYes)、N台のカメラ101の位置及び撮影方向に基づき、N台のカメラ101からM台のカメラ101を再度選択する(S111)。
また、ステップS112では、前回の切り替えからの経過時間が第1時間未満の場合には、切り替えを行わないと判断し、経過時間が第1時間以上かつ前記第1時間より長い第2時間未満の場合には上記一部のカメラを他のカメラに切り替えるか否かを第1基準で判定し、経過時間が第2時間以上の場合には上記一部のカメラを他のカメラに切り替えるか否かを第1基準より緩い第2基準で判定してもよい。
また、図22に示すように、サーバ103は、ステップS242(S111)において、N台のカメラで撮影された映像に基づき、N台のカメラの各々の第1評価値(カメラ単体の評価値)を算出する(S201)。また、サーバ103は、N台のカメラ101の位置及び撮影方向に基づき、N台のカメラ101に含まれるM台のカメラ101の組み合わせであるカメラ群の各々の第2評価値(カメラ位置評価値)を算出する(S203)。そして、サーバ103は、カメラ群に含まれるM台のカメラの第1評価値と、当該カメラ群の第2評価値とに基づき、当該カメラ群の第3評価値を算出し、第3評価値が最も高いカメラ群に含まれるM台のカメラを選択する(S204)。
以上、実施の形態に係るカメラ選択方法及び映像配信システムついて説明したが、本発明は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る映像配信システムに含まれる各装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
言い換えると、映像配信システムに含まれる各装置は、処理回路(processing circuitry)と、当該処理回路に電気的に接続された(当該処理回路からアクセス可能な)記憶装置(storage)とを備える。処理回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、処理回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。処理回路は、記憶装置を用いて、上記実施の形態に係るカメラ選択方法を実行する。
さらに、本発明は上記ソフトウェアプログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
また、上記のカメラ選択方法等に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、本発明の一つ又は複数の態様に係る映像配信システム、及びカメラ選択方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つ又は複数の態様の範囲内に含まれてもよい。