(発明するに至った知見)
ケーブルレリーズまたは制御信号を分配することによって複数の端末装置(例えば複数のカメラなど)に同時に撮影させる方法では、高い精度で同時に撮影させることができるが、事前に機材の準備が必要である。したがって、この撮影方法は、旅行先またはイベントの参加先でのその場限りの撮影の用途には適さない。動画像に映し出されている視覚イベントを用いる例では、イベントを行う物体の動きが極めて遅ければ、類似するフレームが多数発生するため、端末装置間の時刻合わせの精度は低下する。つまり、複数の端末装置のそれぞれの撮影によって得られるフレームから、最も似ているフレームを探索することが難しい。周期的に点滅を行う照明装置からの光に撮影のタイミングを同期させる方法では、そのタイミングを合わせることは可能であっても、どの時刻で撮影されたのかはわからない。したがって、撮影によって得られた各画像がネットワークで伝送される際に遅延が発生すると、各画像の撮影時刻のずれが発生する。また、フラッシュ照明は目障りでもあるので、人の多い大規模空間では使いにくいという課題もある。
このような問題を解決するために、本発明の一態様に係る撮影方法は、第1の端末装置が撮影を行う撮影方法であって、前記第1の端末装置のクロックを基準クロックに同期させ、前記基準クロックに基づく撮影時刻を示す撮影時刻情報を、通信ネットワークを介して取得し、前記基準クロックに既に同期された前記第1の端末装置のクロックに基づいて、前記撮影時刻情報によって示される撮影時刻に撮影を行う。
これにより、第1の端末装置のクロックが基準クロックに予め同期されているため、撮影時刻情報を撮影時刻よりも少し前に取得すれば、基準クロックに基づく撮影時刻に高い精度で一致するタイミングに撮影を行うことができる。したがって、撮影される時刻を高い精度で所望のタイミングに容易に合わせることができる。
また、前記撮影方法は、さらに、第2の端末装置が前記通信ネットワークを介して前記撮影時刻情報を取得し、前記第2の端末装置が、前記基準クロックに基づいて、前記撮影時刻情報によって示される撮影時刻に撮影を行ってもよい。例えば、前記基準クロックはサーバに備えられているクロックであり、前記第2の端末装置は、当該第2の端末装置のクロックを前記基準クロックに同期させ、前記第1および第2の端末装置はそれぞれ前記撮影時刻情報を前記サーバから取得する。または、前記基準クロックは前記第2の端末装置に備えられているクロックであり、前記第1および第2の端末装置はそれぞれ前記撮影時刻情報をサーバから取得する。
これにより、複数の端末装置間における撮影タイミングをより高い精度で一致させることができる。
また、前記第1の端末装置のクロックの同期では、前記第1の端末装置は、当該第1の端末装置のシステムクロックに基づいて管理される撮影用クロックを、当該第1の端末装置のクロックとして前記基準クロックに同期させてもよい。なお、撮影用クロックはいわゆる仮想クロックである。
これにより、第1の端末装置のシステムクロックは調整されずに、撮影用クロックが調整されて基準クロックに同期されるため、第1の端末装置における撮影以外の処理に対する、クロックの同期による影響を避けることができる。したがって、システムクロックに基づいて行われる第1の端末装置における撮影以外の処理を、同期が行われた後にも維持することができる。
また、前記撮影方法では、さらに、前記基準クロックに既に同期された当該第1の端末装置のクロックに基づく、前記撮影が行われた時刻を示すタイムスタンプを、前記撮影によって得られた画像に付加してサーバに送信してもよい。
これにより、サーバは、第1の端末装置から画像を取得すると、その画像が撮影された時刻を容易に特定することができる。その結果、サーバは、例えば三次元画像の生成などの、その時刻を用いた画像の処理を適切に行うことができる。
また、前記撮影方法では、さらに、前記第1の端末装置における、撮影開始から撮影が実行されるまでの撮影遅延時間を特定し、前記第1の撮影装置による撮影では、前記撮影時刻情報によって示される撮影時刻よりも前記撮影遅延時間だけ前の時刻に、前記撮影を開始してもよい。
例えば、撮影時刻情報に示される撮影時刻に撮影を開始しても、実際に撮影が行われるタイミングが、様々な物理的な要因によって、その撮影時刻から遅れる場合がある。しかし、本発明の一態様では、その遅れる時間が撮影遅延時間として特定され、その撮影遅延時間だけ前の時刻に撮影が開始される。したがって、様々な物理的な要因に影響を受けることなく、基準クロックに基づく撮影時刻により高い精度で一致するタイミングに撮影を行うことができる。
また、前記撮影遅延時間の特定では、前記第1の端末装置が、前記基準クロックに基づく時刻が更新されるごとに、更新された当該時刻を表示する被写体を撮影し、前記被写体の撮影が開始された、前記第1の端末装置のクロックに基づく時刻と、前記被写体の撮影によって得られた画像に映し出されている時刻との差分を、前記撮影遅延時間として特定してもよい。
これにより、実際に撮影が行われた時刻が、画像に映し出されているため、正確な撮影遅延時間を特定することができる。
また、前記第1の端末装置のクロックの同期では、前記第1の端末装置は、第1のパケットをサーバに送信することによって、前記サーバから、前記基準クロックに基づく時刻を示す第2のパケットを受信し、前記第2のパケットによって示される時刻と、前記第1のパケットが前記サーバに送信されたときの、前記第1の端末装置のクロックに基づく時刻との差分が、ゼロになるように、前記第1の端末装置のクロックを調整することによって、前記第1の端末装置のクロックを前記基準クロックに同期させてもよい。
これにより、例えばNTPまたはRTCPなどを用いて、第1の端末装置のクロックを基準クロックに、簡単に且つ正確に同期させることができる。
また、前記第1の端末装置のクロックの同期では、前記第1の端末装置が、前記基準クロックに基づく時刻が更新されるごとに、更新された当該時刻を表示する被写体を撮影し、前記被写体が撮影された、前記第1の端末装置のクロックに基づく時刻と、前記被写体の撮影によって得られた画像に映し出されている時刻との差分がゼロになるように、前記第1の端末装置のクロックを調整することによって、前記第1の端末装置のクロックを前記基準クロックに同期させてもよい。例えば、前記被写体は、前記基準クロックに基づいて更新された時刻を、一次元コードまたは二次元コードとして表示する。
これにより、実際に撮影が行われた、基準クロックに基づく時刻が、画像に映し出されているため、第1の端末装置のクロックを基準クロックに、より簡単に且つより正確に同期させることができる。
また、前記撮影方法では、さらに、前記基準クロックに基づく時刻を表現するための各桁の数値を個別に符号化し、符号化された各桁の数値を前記被写体に表示させてもよい。例えば、前記各桁の数値のうち、第1の桁の数値は、前記基準クロックに基づく時刻の更新ごとに、更新されて、符号化および表示され、第2の桁の数値は、前記時刻の更新がN回(Nは2以上の整数)行われるごとに、更新されて、符号化および表示される。
これにより、例えば、基準クロックに基づく時刻を表現するための、秒の桁の数値と、1/10秒の桁の数値と、1/100秒の桁の数値とがそれぞれ個別に符号化されて表示される。また、例えば、基準クロックに基づく時刻の精度が1/100秒であれば、1/100秒の桁の数値は、基準クロックの時刻の更新ごとに、更新されて、符号化および表示され、1/10秒の桁の数値は、基準クロックの時刻の更新が10回行われるごとに、更新されて、符号化および表示される。したがって、第1の端末装置による動画撮影のフレームレートが遅いために、1/100秒の精度で、画像に映し出される基準クロックの時刻を特定することができなくても、秒または1/10秒の精度で、その時刻を特定することができる。その結果、動画撮影のフレームレートによる影響を抑えて、第1の端末装置のクロックを基準クロックに正確に同期させることができる。
また、前記一次元コードまたは二次元コードは、水平方向の幅が垂直方向の幅よりも長い長方形であってもよい。
これにより、被写体にタイムコードとして映し出される1次元コードまたは二次元コードを、水平方向のどの角度から撮影しても、そのタイムコードによって表現される時刻を正確に読み取ることができる。つまり、撮影方向によるタイムコードの読み取りエラーの発生を抑えることができる。
また、前記第1の端末装置による撮影では、前記撮影時刻情報によって示される撮影時刻から動画の撮影を開始し、前記撮影方法では、さらに、前記第1の端末装置が、前記動画の撮影によって第1の周期ごとに得られるピクチャのうち、前記第1の周期よりも長い第2の周期ごとに得られるピクチャのみをサーバに送信してもよい。例えば、前記撮影方法では、さらに、前記第1の端末装置が、前記第2の周期を示す周期情報を前記サーバから取得し、前記サーバへの送信では、前記第1の周期ごとに得られるピクチャの中から、取得された前記周期情報によって示される前記第2の周期ごとに得られるピクチャのみを選択し、選択されたピクチャを前記サーバに送信する。
これにより、サーバに送信される動画像のフレームレートを適切に落とすことができ、サーバによる処理負担を軽減することができる。
また、本発明の一態様に係るシステムは、通信ネットワークを介して接続される複数の端末装置およびサーバからなる撮影システムであって、前記サーバは、基準クロックと、前記複数の端末装置のそれぞれのクロックを、前記サーバの基準クロックに同期させるための処理を行うサーバ同期処理部と、前記サーバの基準クロックに基づく撮影時刻を示す撮影時刻情報を前記複数の端末装置のそれぞれに前記通信ネットワークを介して送信する情報送信部とを備え、前記複数の端末装置のそれぞれは、クロックと、前記サーバ同期処理部による処理に応じて、当該端末装置のクロックを、前記サーバの基準クロックに同期させる端末同期処理部と、前記情報送信部から送信される前記撮影時刻情報を、前記通信ネットワークを介して取得する情報取得部と、前記サーバの基準クロックに既に同期された当該端末装置のクロックに基づいて、前記撮影時刻情報によって示される撮影時刻に撮影を行う撮影部とを備える。
これにより、複数の端末装置のクロックのそれぞれが基準クロックに予め同期されているため、それらの端末装置は、撮影時刻情報を撮影時刻よりも少し前に取得すれば、基準クロックに基づく撮影時刻に高い精度で一致するタイミングに、同時に撮影を行うことができる。したがって、複数の端末装置のそれぞれで撮影される時刻を高い精度で所望のタイミングに容易に合わせることができる。
また、本発明の一態様に係るサーバは、基準クロックと、複数の端末装置のそれぞれのクロックを、前記基準クロックに同期させるための処理を行う同期処理部と、前記基準クロックに基づく撮影時刻を示す撮影時刻情報を前記複数の端末装置のそれぞれに通信ネットワークを介して送信する情報送信部とを備える。
これにより、複数の端末装置のクロックを基準クロックに同期させることができ、撮影時刻情報を撮影時刻よりも少し前に各端末装置に送信すれば、それらの端末装置に対して、基準クロックに基づく撮影時刻に高い精度で一致するタイミングに撮影を行わせることができる。したがって、撮影される時刻を高い精度で所望のタイミングに容易に合わせることができる。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
実施の形態1における撮影方法について説明する。
図1は、本実施の形態における撮影方法によって撮影を行う撮影システムを示す図である。
本実施の形態における撮影システムは、それぞれ通信ネットワーク(以下、単にネットワークという)を介して接続される端末装置110A、端末装置110Bおよびサーバ120を備える。端末装置110Aおよび端末装置110Bは、それぞれ動画または静止画の撮影機能を有する第1および第2の端末装置であって、それぞれ例えばカメラ、スマートフォン、または監視カメラとして構成されている。端末装置110Aは、内部時計であるクロック111aを備え、端末装置110Bも、端末装置110Aと同様に、内部時計であるクロック111bを備える。なお、本実施の形態では、端末装置110Aおよび端末装置110Bは、それぞれ同一の構成を有するため、端末装置110Aについて詳細に説明する。サーバ120は、内部時計であるクロック121を備える。このサーバ120のクロック121は基準クロックとして用いられる。これらのクロック111a,111b,121はそれぞれ個別に、時刻を周期的に更新する。
サーバ120は、端末装置110Aおよび端末装置110Bと通信することにより、端末装置110Aのクロック111aおよび端末装置110Bのクロック111bのそれぞれをサーバ120のクロック121に同期させる。これにより、クロック111aおよびクロック111bの時刻は、基準クロックであるクロック121の時刻に一致する。そして、サーバ120は、ネットワークを介して、端末装置110Aおよび端末装置110Bのそれぞれに撮影時刻を通知することによって、その撮影時刻に、端末装置110Aおよび端末装置110Bのそれぞれに撮影をさせる。
これにより、本実施の形態における撮影システムでは、複数の端末装置による動画または静止画の撮影の時刻を高精度に一致させることができる。
図2は、本実施の形態における端末装置110Aの構成を示すブロック図である。
端末装置110Aは、上述のクロック111aと、端末同期処理部112と、情報取得部113と、撮影部114と、端末画像処理部115とを備える。
端末同期処理部112は、サーバ120とパケットの送受信を行って、端末装置110Aのクロック111aの時刻を補正(または調整)することによって、そのクロック111aをサーバ120のクロック121に同期させる。つまり、端末同期処理部112は、クロック111aの時刻をクロック121の時刻に合わせる。
情報取得部113は、サーバ120のクロック121に基づく撮影時刻を示す撮影時刻情報を、そのサーバ120からネットワークを介して取得する。
撮影部114は、サーバ120のクロック121に既に同期された端末装置110Aのクロック111aに基づいて、取得された撮影時刻情報に示される撮影時刻に撮影を行う。なお、撮影部114は、動画撮影を行う場合には、その撮影時刻を撮影開始時刻として扱い、その撮影開始時刻から所定のフレームレートでの動画撮影を開始する。
端末画像処理部115は、撮影部114による撮影によって得られた画像をサーバ120に送信する。また、画像をサーバ120に送信する際には、端末画像処理部115は、撮影が行われた、またはその画像が得られた、補正後のクロック111aに基づく時刻を、タイムスタンプとしてその画像に付与する。さらに、端末画像処理部115は、その画像を得るために撮影を行った端末装置(具体的には端末装置110A)を識別するための識別子をその画像に付与する。言い換えれば、端末画像処理部115は、基準クロックに既に同期された端末装置110Aのクロックに基づく、撮影が行われた時刻を示すタイムスタンプを、撮影によって得られた画像に付加する。そして、端末画像処理部115は、タイムスタンプおよび識別子が付与された画像をサーバ120に送信する。これにより、サーバ120は、端末装置110Aから画像を取得すると、その画像が撮影された時刻を容易に特定することができる。なお、タイムスタンプによって示される時刻は、実際に撮影が行われて画像が得られた時刻であって、静止画の撮影において撮影開始から撮影完了までの時間が0であれば、上述の撮影時刻情報によって示される撮影時刻と一致する。また、端末画像処理部115は、端末装置110Bと共有される画像(以下、共有画像という)をサーバ120から取得すると、その共有画像を表示する。
なお、端末装置110Bも、端末装置110Aと同様に、端末装置110Bのクロック111bを基準クロックであるサーバ120のクロック121に同期させる。そして、端末装置110Bは、ネットワークを介して上述の撮影時刻情報を取得する。端末装置110Bは、基準クロックに基づいて、つまり、基準クロックに既に同期された端末装置110Bのクロック111bに基づいて、撮影時刻情報によって示される撮影時刻に撮影を行う。
このように本実施の形態では、複数の端末装置のクロックが基準クロックに同期され、サーバ120から送信される撮影時刻情報に示される撮影時刻に、複数の端末装置が撮影を行う。したがって、複数の端末装置間における撮影タイミングをより高い精度で一致させることができる。
図3は、本実施の形態におけるサーバ120の構成を示すブロック図である。
サーバ120は、上述のクロック121と、サーバ同期処理部122と、情報送信部123と、サーバ画像処理部124とを備える。
サーバ同期処理部122は、端末装置110Aとパケットの送受信を行い、端末装置110Aのクロック111aがサーバ120のクロック121と同期するための処理を行う。サーバ同期処理部122は、このような同期のための処理を端末装置110Aだけでなく、端末装置110Bに対しても同様に行う。これにより、端末装置110Aのクロック111aと端末装置110Bのクロック111bとが、サーバ120の基準クロックであるクロック121と同期する。
情報送信部123は、上述の撮影時刻情報を端末装置110Aおよび端末装置110Bに送信する。これにより、端末装置110Aと端末装置110Bは、撮影時刻情報によって示される撮影時刻に、つまり同時に、撮影を行う。
サーバ画像処理部124は、端末装置110Aおよび端末装置110Bのそれぞれから、撮影によって得られた画像を取得する。そして、サーバ画像処理部124は、端末装置110Aによる撮影によって得られた画像を共有画像として端末装置110Bに送信する。または、サーバ画像処理部124は、端末装置110Bによる撮影によって得られた画像を共有画像として端末装置110Aに送信する。あるいは、サーバ画像処理部124は、端末装置110Aによる撮影によって得られた画像と、端末装置110Bによる撮影によって得られた画像とを合成することによって例えば三次元画像を生成する。そして、サーバ画像処理部124は、その三次元画像を共有画像として端末装置110Aおよび端末装置110Bのそれぞれに送信する。
また、本実施の形態におけるサーバ画像処理部124は、端末装置110Aおよび端末装置110Bの位置推定を行う。具体的には、端末装置110Aは、端末装置110Aの位置推定を行うために必要とされる複数の画像をサーバ120に送信する。この複数の画像は、ユーザによって端末装置110Aがそれぞれ異なる方向に向けられるたびに、端末装置110Aによって撮影された画像である。サーバ画像処理部124は、端末装置110Aから送信された上述の複数の画像に映し出されている被写体の大きさおよび向きなどから、端末装置110Aの位置を推定する。このように推定された端末装置110Aの位置は、上述の三次元画像の生成に利用される。なお、端末装置110Aおよび端末装置110Bによる撮影によって得られた画像を用いて特徴量マッチング等の画像処理を行うことにより、端末装置110Aおよび端末装置110Bそれぞれの位置を推定するようにしても構わない。
図4Aは、端末同期処理部112およびサーバ同期処理部122の処理動作を示すフローチャートである。端末同期処理部112は、NTP(Network Time Protocol)を用いて、端末装置110Aのクロック111aをサーバ120のクロック121に同期させる。
具体的には、端末装置110Aの端末同期処理部112は、端末装置110Aのクロック111aに基づく時刻を示すタイムスタンプを格納するパケットを、サーバ120に送信する(ステップS201)。なお、このタイムスタンプによって示される時刻は、そのパケットが端末装置110Aから送信される時刻である。
次に、サーバ120のサーバ同期処理部122は、端末装置110Aから上述のパケットを受信すると、サーバ120のクロック121に基づく時刻を示すタイムスタンプを格納したパケットを端末装置110Aへ送り返す(ステップS202)。なお、このタイムスタンプによって示される時刻は、そのパケットがサーバ120から送信される時刻である。
端末装置110Aの端末同期処理部112は、サーバ120から送り返されたパケットに格納されているタイムスタンプの時刻と、ステップS201で送信されたパケットに格納されているタイムスタンプの時刻との差分を、遅延時間として算出する(ステップS203)。ネットワークにおける伝送と、サーバ120におけるパケットに対する応答処理とにそれぞれ遅延が発生していなければ、上述の遅延時間は、端末装置110Aのクロック111aとサーバ120のクロック121との時差である。したがって、端末装置110Aの端末同期処理部112は、その遅延時間だけ、端末装置110Aのクロック111aの時刻を補正(例えば、加算または減算)する(ステップS204)。つまり、端末装置110Aは、第1のパケットをサーバに送信することによって、サーバ120から、基準クロックに基づく時刻を示す第2のパケットを受信する。端末装置110Aは、その第2のパケットによって示される時刻と、第1のパケットがサーバ120に送信されたときの、端末装置110Aのクロック111aに基づく時刻との差分が、ゼロになるように、端末装置110Aのクロック111aを調整する。端末装置110Aは、この調整、つまり補正によって、端末装置110Aのクロック111aを、基準クロックであるサーバ120のクロック121に同期させる。
実際には、ネットワークにおける伝送とサーバの応答処理とにはそれぞれ遅延が発生している。したがって、端末同期処理部112は、これらの遅延を考慮して遅延時間を算出してもよい。例えば、端末同期処理部112は、端末装置110Aがサーバ120にパケットを送信する時刻(Tcs)と、サーバ120が端末装置110Aからパケットを受信する時刻(Tsr)と、サーバ120が端末装置110Aにパケットを送り返す時刻(Tss)と、端末装置110Aがパケットをサーバ120から受信した時刻(Tcr)とを計測する。なお、サーバ120から送り返されるパケットには、時刻Tsrを示すタイムスタンプおよび時刻Tssを示すタイムスタンプが含まれている。次に、端末同期処理部112は、遅延時間=(Tss+Tsr)/2−(Tcs+Tcr)/2によって、遅延時間を算出する(ステップS203)。
なお、本実施の形態では、NTPを用いるが、RTCP(Real−time Transport Control Protocol)を用いてもよい。RTCPでも、NTPと同様に、端末装置のタイムスタンプをパケットに格納することができる。したがって、RTCPを用いる場合でも、NTPと同様に、端末装置のクロックをサーバのクロックに一致させることができる。RTCPは、リアルタイムの映像伝送プロトコルRTP(Real−time Transport Protocol)と一緒に用いられる仕組みであって、映像の受信側から送信側へ伝送状態をフィードバッグする仕組みである。RTCPパケットによって、映像の実際の受信品質を示す情報とともに、映像の受信側のタイムスタンプが、映像の送信側へ送信される。映像の送信側は、その受信品質を示す情報を受信すると、上述のNTPのように、その情報を受信した時刻を示すタイムスタンプ(Tsr)と、その情報に対する応答を送る時刻を示すタイムスタンプ(Tss)とを格納したパケットを、映像の受信側(本実施の形態では端末装置110A)へ送り返す。端末装置110Aは、送り返されたパケットを受信した時刻を示すタイムスタンプ(Tcr)を計測する。そして、端末装置110Aは、上述の4つのタイムスタンプに基づいて、NTPの場合と同様に、遅延時間を算出し、クロック111aの時刻を補正する。また、NTPまたはRTP以外のプロトコルなどを用いてクロック111aの時刻を補正してもよい。
このように、端末装置110Aのクロック111aは、サーバ120のクロック121と同期される。端末装置110Bのクロック111bも、同様に、サーバ120のクロック121と同期される。したがって、サーバ120にネットワークを介して接続される各端末装置のクロックは、サーバ120の基準クロックであるクロック121と同期される。つまり、端末装置110Aのクロック111aの時刻と、端末装置110Bのクロック111bの時刻とが一致する。その結果、端末装置間のクロックの同期が得られる。言い換えれば、各端末装置のクロックの時刻が合わせられる。
このような各クロックの同期、すなわち時刻合わせは、共有のためにサーバ120に送信される静止画または動画の撮影(いわゆる本番撮影)前に行われる。これにより、適切なタイミングで各端末装置に撮影をさせることができ、それらの撮影によって得られた画像を三次元画像の生成に利用することができる。
図4Bは、端末装置110Aによる撮影方法を示すフローチャートである。
端末装置110Aのユーザは、例えば撮影会などのイベントに参加する。このとき、端末装置110Aはサーバ120に接続する(ステップS211)。ここで、サーバ120は、ユーザ認証を行ってもよい。次に、端末装置110Aは、ユーザに対して、周辺を一定時間撮影するように指示する(ステップS212)。例えば、端末画像処理部115は、「周辺を一定時間撮影してください」といメッセージを表示することによって、上述の指示を行う。この指示は、端末装置110Aの位置をサーバ120に推定させるために行われる。この指示にしたがって、ユーザは、自らの周辺を見渡すように、端末装置110Aの向きを変えながら、端末装置110Aに撮影(例えば動画撮影)させる。このとき、端末装置110Aの撮影部114は、ユーザによって端末装置110Aがそれぞれ異なる方向に向けられるたびに撮影を行う。そして、端末装置110Aの端末画像処理部115は、その撮影によって画像(例えばピクチャまたはフレーム)が得られるごとに、その画像をサーバ120に送信する。サーバ120のサーバ画像処理部124は、端末装置110Aから送信されるそれらの画像に基づいて、端末装置110Aの位置を推定する。
なお、端末装置110Aは、ステップS212において、ユーザに対して指示を行う際には、目印となるようなランドマークを被写体に含めるように指示してもよい。これにより、サーバ120による位置推定の精度を向上させることができる。例えば、ユーザが野球場にいる場合には、端末装置110Aは、ホームベース、一塁ベース、二塁ベースおよび三塁ベースからなるダイヤモンドを被写体に含めるように指示する。あるいは、端末装置110Aは、野球場の電光掲示板を撮影するように指示する。また、ユーザがサッカー場にいる場合には、端末装置110Aは、ゴール、ペナルティエリア、あるいは、センターサークルなどの、特徴的なものを撮影するように指示する。
端末装置110Aの端末同期処理部112は、この位置推定が(例えば数秒)行われている間に、NTPまたはRTCPの手法を用いて、端末装置110Aのクロック111aをサーバ120のクロック121に同期させる(ステップS213)。つまり、このときに、端末装置110Aは、図4Aに示すフローチャートにしたがって、自らのクロック111aをサーバ120のクロック121に同期させる。
次に、サーバ120は、クロックの同期および位置推定を含む処理であるキャリブレーションが完了すると、そのことを示す通知(キャリブレーション完了通知)を端末装置110Aに送信する。端末装置110Aはそのキャリブレーション完了通知を受信すると、撮影部114によるキャリブレーションのための撮影を中断させる(ステップS214)。さらに、端末装置110Aは、ユーザに対して、キャリブレーションが完了したことを通知する(ステップS215)。例えば、端末画像処理部115は、「キャリブレーションが完了しました。通常利用が可能です。」といメッセージを表示することによって、上述の通知を行う。キャリブレーションには、ユーザに端末装置110Aの向きを変えてもらうなどの協力が必要である。したがって、ユーザは、上述の通知を受けることによって、その協力が不要になったことを把握することができる。
次に、サーバ120の情報送信部123は、撮影時刻情報を端末装置110Aに送信する。端末装置110Aの情報取得部113は、撮影時刻情報を受信すると、その撮影時刻情報によって示される撮影時刻に、撮影部114に撮影をさせる(ステップS216)。このときに行われる撮影は、位置推定を行うための撮影ではなく、ユーザが所望の画像を得るための撮影(いわゆる本番撮影)である。また、撮影部114は、動画の撮影を行う際には、その撮影時刻を撮影開始時刻として扱い、その撮影開始時刻から、所定のフレームレートで動画の撮影を開始する。
このように、本実施の形態では、端末装置110Aは、クロックの同期を行うときに、待ち時間が発生するため、この待ち時間に、位置推定をサーバ120に行わせる。三次元画像の生成のための複数の端末装置による撮影では、各端末装置の位置は重要である。したがって、ステップS213では、端末装置110Aの位置が推定されるように、ユーザは周辺を見渡すように端末装置110Aに撮影を行わせる。なお、端末装置110Aが、監視カメラなどのように撮影部114(カメラ)を動かす能力がある場合には、上述の周辺を見渡すような撮影を自動的に行う。また、端末装置110Aが、ユーザに携帯されるカメラ、ビデオカメラまたは携帯端末などの場合には、ユーザに対して周辺を撮影するように指示する。
図5は、撮影(本番撮影)を行うためのサーバ120と端末装置110Aとの処理動作を示すフローチャートである。この図5は、図4BのステップS216の処理動作を詳細に示す。
サーバ120と端末装置との間でのネットワークによる伝送遅延は、端末装置の能力によって異なる場合が多いと想定される。例えば、Wi−Fi(登録商標)経由の通信と、3GまたはLTE(Long Term Evolution)などの無線通信とでは、応答速度も通信速度も異なる。サーバ120から全ての端末装置へ一斉に撮影開始指示のパケットを送るやり方では、各端末装置での撮影のタイミングにずれが発生してしまう。そこで、サーバ120は、本番撮影が動画撮影の場合、X時Y分Z秒から撮影を開始しなさいというように、具体的な撮影開始時刻を示す撮影時刻情報を、その撮影開始時刻よりもやや前の時点で、各端末装置へ送信する。なお、上述のXは0〜23までの整数であり、YおよびZはそれぞれ0〜59までの整数である。以下、具体的に説明する。
サーバ120は、端末装置110Aの撮影開始時刻を上述の撮影時刻として決定する(ステップS301)。この撮影開始時刻は、例えば、動画撮影の開始時刻であって、既に動画撮影を行っているその他の端末装置(例えば、端末装置110B)の撮影タイミングと、端末装置110Aの撮影タイミングとが同期するように決定された時刻である。なお、サーバ120は、撮影開始時刻に加えて、撮影のフレームレートも決定してもよい。また、サーバ120は、フレームレートまたは画像解像度などの能力に関する情報交換を端末装置110Aと行った後に、撮影開始時刻およびフレームレートを決定してもよい。
サーバ120は、撮影開始時刻の少し前の時刻に、撮影開始時刻を示す撮影時刻情報を端末装置110Aに送信する(ステップS302)。少し前の時刻とは、ネットワークの伝送遅延および撮影開始の遅延を考慮した時間である。次に、端末装置110Aは、撮影時刻情報を受け取る(ステップS303)。端末装置110Aは、撮影部114の準備処理を行い、撮影時刻情報に示される撮影開始時刻まで撮影部114を待機させる(ステップS304)。具体的には、撮影部114の処理がソフトウェアで実現される場合には、端末装置110Aは、撮影開始時刻までの残り時間だけソフトウェアをスリープさせるか、撮影開始時刻にソフトウェアが起動するように、タイマテーブルへの登録を行う。クロック111aに基づく現在時刻が撮影開始時刻に達すると、撮影部114は撮影を開始する(ステップS305)。なお、撮影部114の準備処理は端末装置によって異なる。したがって、ステップS304において、端末装置110Aがあらかじめ準備処理を行っておくことは、複数の端末装置の撮影タイミングを一致させるのに効果的である。
ここで、撮影開始時刻に撮影のトリガを発生させても、撮影開始時刻から実際に撮影が行われるまでには遅延が発生する場合がある。具体的には、トリガがソフトウェアで実現される場合、トリガ発生から、撮影部114の物理的または光学系の実際の動作までは遅延がある。この遅延には、状況によって変化する遅延も含まれるが、端末装置や撮影部114のソフトウェアまたはデバイスに固有の遅延も含まれる。以下、状況によって変化する遅延時間を変動遅延時間といい、ソフトウェアまたはデバイスに固有の遅延時間を固有遅延時間という。さらに、変動遅延時間と固有遅延時間を含む時間を撮影遅延時間という。
そこで、端末装置110Aを含む各端末装置は、自身の端末装置または撮影部のモデルを示す情報を、サーバ120に送信する。サーバ120は、モデルごとに、そのモデルの固有遅延時間を示すテーブルを参照し、送信された上述の情報に示されるモデルに対応する固有遅延時間を特定する。そして、サーバ120は、端末装置ごとに、その端末装置に対して特定された固有遅延時間をその端末装置に通知する。また、変動遅延時間は、光学系への入射光の量または画像の解像度などによって変動し、端末装置本体が静止しているか、動かされているかによっても変動する。したがって、各端末装置は、これらの状況または環境を示すパラメータを取得し、それらのパラメータに応じた変動遅延時間をサーバから取得する。
この場合、各端末装置は、固有遅延時間および変動遅延時間から撮影遅延時間を導出する。例えば、各端末装置は、固有遅延時間と変動遅延時間とを加算することによって撮影遅延時間を導出する。あるいは、各端末装置は、固有遅延時間と変動遅延時間とのうちの長い方の時間を撮影遅延時間として導出する。そして、端末装置は、撮影時刻情報を受信すると、撮影時刻情報によって示される撮影時刻から、その導出された撮影遅延時間だけ前の時点に、スリープの状態から起動して(つまり、タイマ起動して)撮影を行う。
つまり、端末装置110Aは、その端末装置110Aにおける撮影開始から撮影が実行されるまでの撮影遅延時間を特定し、記撮影時刻情報によって示される撮影時刻よりもその撮影遅延時間だけ前の時刻に、撮影を開始する。これにより、様々な物理的な要因に影響を受けることなく、基準クロックに基づく撮影時刻により高い精度で一致するタイミングに撮影を行うことができる。
なお、固有遅延時間を、以下のように計測してもよい。つまり、固有遅延時間が既知である端末装置Rと、固有遅延時間の計測対象とされる端末装置Xとに、上述のようなNTP等によるクロックの同期を実行させる。さらに、それらの端末装置Rおよび端末装置Xに対して、同一の撮影時刻を指定して、同一状況または同一環境下で撮影させる。このとき、撮影の対象として、高精度に時刻が表示されている時計(例えばストップウォッチなど)を撮影させる。端末装置Rの撮影によって得られた画像に映し出されている時刻と、端末装置Xの撮影によって得られた画像に映し出されている時刻との差分を、端末装置Rの既知である固有遅延時間に加算または減算することによって、端末装置Xの固有遅延時間を導出ることができる。なお、上述のNTP等によるクロックの同期は省略してもよい。また、計測または導出される固有遅延時間の誤差を軽減するため、固有遅延時間を繰り返し導出したり、エラー値を排除したり、繰り返し導出された固有遅延時間を平均化したりしてもよい。また、サービスの提供者または端末装置のメーカが、このような計測を予め行ってもよいし、端末装置の所有者が行ってもよい。
このように、本実施の形態では、各端末装置のクロックの時刻は、基準となるサーバ120のクロックの時刻に一致する。したがって、各端末装置は、ネットワークの伝送遅延または端末装置の撮影遅延時間に影響されることなく、同じ時刻に撮影を行うことができる。
なお、サーバ120のクロック121には、GPS(Global Positioning System)時計または原子時計などを用い、そのクロック121を世界の基準時計に合わせてもよい。この場合、端末装置110Aは、サーバ120のクロック121との間で、クロック111aの同期を直接行わずに、世界の基準時計と同期されている任意の別のクロックとの間で、クロック111aの同期を行ってもよい。例えば、基準クロックは端末装置110Bに備えられているクロック111bであって、端末装置110Aは、自らのクロック111aを、端末装置110Bのクロック111bに同期させる。
また、端末装置110Aは、クロック111aの同期を、撮影の直前に開始するのではなく、撮影開始から所定の時間経過後に開始してもよい。これにより、端末装置110Aの立ち上がり時の負担を減らし、スムーズに撮影を開始することができる。
なお、撮影時刻情報には、撮影終了時刻を含めるようにして構わない。これにより、端末装置110A及び端末装置110Bは、撮影終了時刻に合せて同時に撮影を終了することができる。また、端末装置110A及び端末装置110Bは、撮影映像をリアルタイムにサーバ120に送信するようにしても構わない。また、撮影映像をいったんは端末装置110A及び端末装置110Bのローカルディスクに保存し、撮影終了後にサーバ120に送信するようにしても構わない。
(実施の形態2)
実施の形態1のように、端末装置がクロックの同期を行い、さらに、撮影時刻から撮影遅延時間だけ前に撮影を開始することにより、複数の端末装置間における実際の撮影時刻を高精度に一致させることができる。しかし、それでも、様々な予測困難な外的要因により、同期がうまくとれない場合がある。
そこで、本実施の形態では、撮影の同期がとれているのか、とれていなければ、撮影のタイミングがずれている時間はどれぐらいなのかを、直接的に検知する方法を提供する。つまり、本実施の形態では、時計などを撮影し、撮影によって得られる画像に映し出されている時刻と、端末装置のクロックの時刻とを比較することによって、撮影のタイミングがずれている時間を直接的に検知する。以下、本実施の形態について、具体的に説明する。
図6は、本実施の形態における撮影方法によって撮影を行う撮影システムを示す図である。
本実施の形態における撮影システムは、複数の端末装置110Cと、サーバ120Cと、表示装置130とを備える。なお、説明を簡単にするために、図6には端末装置110Cを1つだけ示している。また、本実施の形態における撮影システムに含まれる構成要素のうち、実施の形態1の構成要素と同じ参照符号が付されたものは、実施の形態1の構成要素と同一であるため、それらの構成要素についての詳細な説明は省略する。
サーバ120Cは、基準クロックであるクロック121と、サーバ同期処理部122cと、情報送信部123と、サーバ画像処理部124とを備える。サーバ同期処理部122cは、NTPなどの手法と異なる手法によって、端末装置110Cの撮影系クロック111cがサーバ120のクロック121と同期するための処理を行う。このようなサーバ同期処理部122cは、タイムコード符号化部125、タイムコード検出復号部126および遅延時間導出部127を備える。
タイムコード符号化部125は、所定の周期ごとに、サーバ120のクロック121に基づく現在の時刻TSSVRをタイムコードに符号化する。タイムコードは、時刻を示す例えばQRコード(登録商標)などの二次元コードである。なお、このようなタイムコードは、視覚的に時刻を示すものであれば、模様、文字、数字または記号などによって構成されるどのような画像であってもよい。このようなタイムコードは、符号化によって生成されるごとに、表示装置130に随時送信されて連続的に切り替えて表示される。
ここで、表示装置130は、任意の画像を表示することができ、その画像を時間的に変化させることができる装置である。より具体的には、表示装置130は、一般的な紙の印刷物ではなく、例えば、液晶、ブラウン管、大画面LED装置、発光装置、または可視光外領域の光電波信号(典型的には近赤外線画像、遠赤外線画像、マイクロレーダー画像、またはX線画像)を表示する装置などである。なお、時刻を表示する機能を有するものであれば、表示装置130の代わりに、機械的または物理的な動作を行う時計を用いてもよい。しかし、一般的な時計の場合には、秒針が最小の表示単位であり、時刻を秒単位よりも短い周期で表示することができない。そのため、同期の精度を高めることが難しい。そこで、1/10秒または1/1000秒の精度で時刻を表示する機能を備える時計を用いれば、同期の精度を高めることができる。このような時計は、デジタル時計であれば、1/10秒などの精度の時刻の表示を行う機能を有する時計であり、アナログ時計であれば、その精度の時刻を目で見て認識可能なように針を動かす機能を有する時計である。
このような表示装置130によって、サーバ120のクロック121の時刻TSSVRがタイムコードの形で表示される。
タイムコード検出復号部126は、端末装置110Cから、その端末装置110Cによる撮影によって得られた画像を取得する。そして、タームコード検出復号部126は、その画像に映し出されているタイムコードを復号することによって、そのタイムコードが示す時刻TSSVRを特定する。
遅延時間導出部127は、タイムコード検出復号部126によって特定されたタイムコードの時刻TSSVRと、端末装置110Cの撮影系クロック111cに基づく、端末装置110Cによる撮影が行われた時刻TSCAPとを取得する。そして、遅延時間導出部127は、時刻TSSVRと時刻TSCAPとの差分を遅延時間として導出し、その遅延時間を示す遅延時間情報を端末装置110Cに送信する。
端末装置110Cは、クロック111aと、撮影系クロック111cと、端末同期処理部112cと、情報取得部113と、撮影部114cと、端末画像処理部115とを備える。
撮影系クロック111cは、システムクロックとして用いられるクロック111aとは異なり、撮影に対して専用的に用いられるクロックである。例えば、撮影系クロック111cは、端末装置110Cの起動時、または、端末装置110CのOS(Operating System)の再起動時に、システムクロックと一致するように初期化される。つまり、この撮影系クロック111cは、端末装置110Cのシステムクロックに基づいて管理される撮影用クロックである。なお、端末装置110Cによる撮影の遅延時間が予めわかっている場合には、撮影系クロック111cの時刻をその遅延時間だけ、システムクロックよりも早めておいてもよい。
なお、端末装置110Cのシステムクロックを補正することはOS等の制約によりできない場合がある。また、可能な場合でも、撮影以外の稼働中の他のサービスへの影響を避けるために、システムクロックの補正はしない方がよい場合もある。それらの場合のために、撮影系クロック111cが備えられている。この撮影系クロック111cは、端末装置110Cにおいて動作する、撮影のためのソフトウェアに限定されたクロック(いわゆる仮想クロック)である。また、本実施の形態では、撮影系クロック111cとサーバ120Cのクロック121との間の遅延時間を算出し、その遅延時間だけ撮影系クロック111cの時刻を補正する。しかし、システムクロックであるクロック111aとサーバ120Cのクロック121との間の遅延時間を算出し、その遅延時間だけクロック111aの時刻を補正することによって得られる時刻に、撮影系クロック111cの時刻を合わせてもよい。
このように、本実施の形態では、第1の端末装置である端末装置110Cは、端末装置110Cのシステムクロック(つまりクロック111a)に基づいて管理される撮影系クロック111cを、基準クロック(つまりサーバ120Cのクロック121)に同期させる。
撮影部114cは、端末同期処理部112cからの指示に基づいて、表示装置130に表示されるタイムコードを撮影し、その撮影によって得られた画像(以下、タイムコード撮影画像という)を、端末同期処理部112cに出力する。
また、撮影部114cは、実施の形態1の撮影部114と同様に、サーバ120Cのクロック121に既に同期された撮影系クロック111cに基づいて、取得された撮影時刻情報によって示される撮影時刻に撮影を行う。なお、撮影部114cは、動画撮影を行う場合には、その撮影時刻を撮影開始時刻として扱い、その撮影開始時刻から所定のフレームレートで動画撮影を開始する。
端末同期処理部112cは、撮影部114cによってタイムコードが撮影された時刻TSCAPを、撮影系クロック111cに基づいて特定し、その時刻TSCAPをサーバ120に送信する。さらに、端末同期処理部112cは、サーバ120Cから遅延時間情報を取得すると、その遅延時間情報によって示される遅延時間だけ、撮影系クロック111cの時刻を補正する。これによって、撮影系クロック111cは、サーバ120Cのクロック121に同期される。
端末画像処理部115は、撮影部114cによる撮影によって得られた画像をサーバ120Cに送信する。また、画像をサーバ120Cに送信する際には、端末画像処理部115は、撮影が行われてその画像が得られた、補正後の撮影系クロック111cに基づく時刻をタイムスタンプとしてその画像に付与する。さらに、端末画像処理部115は、その画像を得るために撮影を行った端末装置(具体的には端末装置110C)を識別するための識別子をその画像に付与する。そして、端末画像処理部115は、タイムスタンプおよび識別子が付与された画像をサーバ120Cに送信する。なお、タイムスタンプによって示される時刻は、実際に撮影が行われて画像が得られた時刻であって、静止画の撮影において撮影開始から撮影完了までの時間が0であれば、上述の撮影時刻情報によって示される撮影時刻と一致する。また、端末画像処理部115は、他の端末装置と共有される共有画像をサーバ120Cから取得すると、その共有画像を表示する。
つまり、本実施の形態では、端末装置110Cは、表示装置130に表示されているタイムコードを撮影部114cに撮影させ、その撮影によってタイムコード撮影画像を得る。端末装置110Cによって撮影が行われた時刻TSCAPと、タイムコード撮影画像に映し出されているタイムコードから特定される時刻TSSVRとが、例えば、時刻TSSVR > 時刻TSCAPの関係にあれば、時刻TSCAPは、時刻TSSVRよりも遅れている。ここで、時刻TSCAPは、撮影が行われた撮影系クロック111cに基づく時刻であって、時刻TSSVRは、撮影が行われた時点におけるサーバ120のクロック121に基づく時刻である。したがって、撮影系クロック111cは、基準クロックであるサーバ120のクロック121よりも遅れている。具体的には、時刻TSCAPが0.100秒であって、時刻TSSVRが0.400秒であれば、撮影系クロック111cは、サーバ120のクロック121よりも、0.300秒だけ遅れている。
端末装置110Cは、この遅れた時間(遅延時間)だけ、撮影系クロック111cを早める。つまり、撮影系クロック111cを補正(または調整)する。これによって、撮影系クロック111cは、サーバ120のクロック121と同期する。このような補正が行われた後、端末装置110Cの動作にかかる時間にばらつきがなければ、端末装置110Cの撮影系クロック111cとサーバ120のクロック121との間で常に同期がとれているため、時刻TSSVR=時刻TSCAPの関係がなりたつ。
このような、本実施の形態における端末装置110Cは、図4Bに示すフローチャートにしたがって撮影を行ってもよい。このとき、端末装置110Cは、本番撮影の前に、ステップS213において、上述の撮影系クロック111cの補正を、キャリブレーションに含まれる処理として実行する。例えば、端末装置110Cは、ステップS212の指示にしたがって、ステップS213では、野球場の電光掲示板として構成される表示装置130に表示されているタイムコードが被写体に含まれるように、周辺を一定時間撮影する。なお、本番撮影の時間が長い場合などには、撮影系クロック111cの補正(すなわち同期)を定期的に行ってもよい。
このように、本実施の形態では、複数の端末装置110Cがそれぞれ表示装置130を撮影することによって、それらの撮影系クロック111cの補正を行う。したがって、表示装置130に表示されるタイムコードに基づいて、複数の端末装置110Cの撮影系クロック111cを同期させることができる。言い換えれば、本実施の形態では、端末装置110Cは、基準クロックに基づく時刻が更新されるごとに、更新された当該時刻を表示する被写体を撮影する。そして、端末装置110Cは、被写体が撮影された、端末装置110Cの撮影系クロック111cに基づく時刻と、被写体の撮影によって得られたタイムコード撮影画像に映し出されている時刻との差分がゼロになるように、端末装置110Cの撮影系クロック111cを調整する。これによって、端末装置110Cは、自らの撮影系クロック111cを基準クロックに同期させる。したがって、実際に撮影が行われた、基準クロックに基づく時刻が、画像に映し出されているため、端末装置110Cの撮影系クロック111cを基準クロックに、より簡単に且つより正確に同期させることができる。
ここで、撮影系クロック111cは、端末装置110Cが備えるシステムクロックであるクロック111aとは異なるものである。なお、1つの端末装置内に2つのクロックが併存することは煩雑であるため、システムクロックも同時に補正してもよい。しかし、システムクロックは撮影以外の別の目的に使われている可能性もあるので、システムクロックを補正せずに、撮影目的のために独立して用いられる撮影系クロック111cのみを補正するほうが望ましい。
なお、本実施の形態では、被写体である表示装置130は、基準クロックに基づいて更新された時刻をQRコード(登録商標)として表示するが、QRコード(登録商標)に限らず、一次元コードまたは二次元コードとして表示してもよい。
図7は、端末同期処理部112cおよびサーバ同期処理部122cによる同期処理を示すフローチャートである。
サーバ120のタイムコード符号化部125は、クロック121に基づく現在の時刻TSSVRを取得し(ステップS501)、その時刻TSSVRをタイムコードに符号化する(ステップS502)。表示装置130は、そのタイムコードを取得して表示する(ステップS503)。
端末装置110Cの撮影部114cは、表示されているタイムコードが被写体に含まれるように撮影する。このとき、端末同期処理部112cは、その撮影が行われた時点における撮影系クロック111cに基づく時刻TSCAPを取得する(ステップS504)。そして、端末同期処理部112cは、上述の撮影によって得られたタイムコード撮影画像と時刻TSCAPとをサーバ120に送信する。
サーバ120のタイムコード検出復号部126は、タイムコード撮影画像から時刻TSSVRを検出する。続いて、サーバ120の遅延時間導出部127は、時刻TSSVR−時刻TSCAPによって、遅延時間を算出する(ステップS505)。そして、遅延時間導出部127は、その遅延時間を示す遅延時間情報を端末装置110Cに送信する。
次に、端末装置110Cの端末同期処理部112cは、その遅延時間情報に基づいて、遅延時間がゼロとなるように、撮影系クロック111cの時刻を補正する(ステップS506)。
なお、本実施の形態では、撮影系クロック111cの時刻を補正するが、この時刻を補正しなくてもよい。つまり、サーバ120は、算出された端末装置110Cの遅延時間を保持し、撮影時刻を決定したときには、その撮影時刻よりも遅延時間だけ早い時刻を示す撮影時刻情報を、端末装置110Cに送信する。これによって、遅延時間が相殺されて、決定された撮影時刻に、端末装置110Cに撮影をさせることができる。また、この場合には、端末装置110Cは撮影系クロック111cを備えなくてもよい。
また、ステップS501の処理からステップS503の処理まで、つまり、サーバ120Cのクロック121の時刻TSSVRが取得されから、その時刻TSSVRがタイムコードとして表示されるまでに、遅延が発生する場合がある。このような場合には、タイムコード符号化部125は、時刻TSSVRにその遅延にかかる時間を加算した時刻を、タイムコードに符号化してもよい。これにより、表示装置130に表示されるタイムコードの時刻と、サーバ120Cのクロック121の時刻とを厳密に一致させることができる。
ここで、本実施の形態におけるタイムコードについて詳しく説明する。本実施の形態におけるタイムコードは、具体的には、誤り耐性のあるコードであるQRコード(登録商標)である。
図8Aは、QRコード(登録商標)を説明するための図である。この図8Aに示すように、QRコード(登録商標)は、3つのファインダパターンと、タイミングパターンと、アライメントパターンと、コード化されたデータ部分とからなる。3つのファインダパターンは、コードの検出に用いられる。タイミングパターンは、直線上に白黒のドットが繰り返し配置されて構成されたパターンであって、これによりドットのピッチが特定される。アライメントパターンは、モジュールが一定間隔で配置されて構成されるパターンであって、これによりQRコード(登録商標)の変形量が特定される。データ部分は、オリジナルのデータが符号化されることによって得られるエラー訂正可能な(冗長度を持つ)符号である。
本実施の形態におけるタイムコードは、このような検出容易性、変形耐性、およびエラー訂正の能力を持つQRコード(登録商標)である。また、本実施の形態におけるタイムコードは、複数の端末装置によって同時に撮影されるため、斜め方向から、または遠方から撮影されるケースが想定される。したがって、本実施の形態におけるタイムコードをQRコード(登録商標)とすることによって、上述のようなケースであっても、タイムコードからの時刻の検出にエラーが発生してしまうことを抑えることができる。
図8B〜図8Eは、本実施の形態におけるタイムコードの他の例を示す図である。
例えば、本実施の形態におけるタイムコードは、図8B〜図8Dに示すように、横長のQRコード(登録商標)のようなコードであってもよい。つまり、本実施の形態におけるタイムコードは、水平方向の幅が垂直方向の幅よりも長い長方形のコードであってもよい。例えば、図8Bに示すタイムコードは、水平方向に配列された2つのファインダパターンを備え、タイムコードの縦の長さ(垂直方向の高さ)は、ファインダパターンの縦の長さと等しい。
このように、図8B〜図8Dに示すタイムコードは横長の長方形であるため、水平方向の広い角度からの撮影に対して強いエラー耐性を有する。つまり、このタイムコードは、変形耐性とピッチ検出機能を有する。したがって、複数の端末装置110Cが、水平方向に取り囲むような各位置からそのタイムコードを撮影する場合であっても、それぞれの端末装置110Cは、そのタイムコードによって示される時刻を適切に特定することができる。さらに、このタイムコードは垂直方向に短いため、タイムコードを目立たないようにすることができる。
また、図8Cに示すように、タイムコードは、1つだけファインダパターンを備えていてもよい。つまり、図8Cに示すタイムコードは、図8Bに示すタイムコードに含まれる2つのファインダパターンのうちの左右どちらか一方がなく、他方のファインダパターンのみを有する。
また、通常のQRコード(登録商標)では、ドット(セル)の形状は正方形であるが、図8Dに示すように、本実施の形態におけるタイムコードは、横長の長方形のドット(セル)から構成されていてもよい。これにより、水平方向の変形耐性をさらに高めることができる。
また、本実施の形態におけるタイムコードは、なるべく目立たずに表示されることが望ましいため、正方形の格子状の白黒ドットパターンからなるコードではなく、図8Eに示すように、六角形パターンからなるコードであってもよい。具体的には、このコードでは、一行毎に、ドットの座標が0.5ドット分だけ横方向にずれている。さらに、ドットの形状は正方形ではなく六角形である。このように、タイムコードを、六角形の格子状にすることによって、四角の格子状よりも、人間がタイムコードを見た場合における違和感を少なくすることができる。また、四角の格子状のコードでは、上下または左右のドット間の距離が、斜め方向のドット間の距離よりも短い。そのため、上下または左右のドット間で誤認識が発生しやすい。具体的には、ドットを特定する際、そのドットの隣のドットのレベルを参照してしまうことがある。一方、六角形の格子状のコードでは、ドットと、そのドットに隣接する6つのドットのそれぞれとの間の距離はすべてほぼ等しい。したがって、各方向における誤認識率は均等であり、誤認識という観点において弱点となる方向は無い。
次に、タイムコードで表現できる最小の時間単位について説明する。一般的な時計では、秒が最小の単位である。本実施の形態では、同期の精度を1m秒の誤差に抑えるために、タイムコードに示される時刻は1m秒の精度を有し、そのタイムコードは1m秒の周期で更新されて表示される。
図9A〜図9Cは、本実施の形態におけるタイムコードの他の例を示す図である。
例えば、タイムコードは、図9Aに示すように、横長のQRコード(登録商標)のような形状のコードであって、1m秒単位の精度の時刻を表す。そして、このタイムコードは、1m秒ごとに更新されて表示される。このような短い周期で更新されるタイムコードを適切に撮影するためには、端末装置は、ハイスピードカメラなどの特殊な機能を有する必要がある。
そこで、本実施の形態では、時刻は、その時刻を表すための桁ごとに分割されて符号化されてもよい。例えば、時刻「a.bcd」秒を符号化するときには、図9Bに示すように、「a」と「b」と「c」と「d」とをそれぞれ独立して符号化する。なお、a、b、c、およびdはそれぞれ0〜9のうちのいずれかの数値である。言い換えれば、秒の桁の数値と、1/10秒の桁の数値と、1/100秒の桁の数値と、1/1000秒の桁の数値からなる時刻を符号化するときには、秒の桁の数値を符号化し、1/10秒の桁の数値を符号化し、1/100秒の桁の数値を符号化し、さらに、1/1000秒の桁の数値を符号化する。図9Bに示すタイムコードは、これらの符号化によって得られた各符号が横方向に配列されて構成されている。また、各符号は、横方向に配列されるドットのパターンとして構成されている。また、それぞれの符号は独立に復号される。
これにより、秒の桁の符号は、秒単位で更新されて表示され、1/10秒の桁の符号は、1/10秒単位で更新されて表示され、1/100秒の桁の符号は、1/100秒単位で更新されて表示され、1/1000秒の桁の符号は、1/1000秒単位で更新されて表示される。したがって、ハイスピードカメラのような特殊な機能を有する応答性能がよい端末装置は、秒の桁の符号から1/1000秒の桁の符号まで、各符号を正しく復号することができる。さらに、上述の端末装置よりも応答性能が劣る端末装置は、1/1000秒の桁の符号を復号することはできなくても、例えば、1/10秒の桁の符号、および秒の桁の符号を復号することができる。
また、図9Bに示すタイムコードでは、符号ごとに、その符号に対応するファインダパターン、バージョン情報、サイズ、およびエラー耐性強度情報などが付加されているが、符号ごとにこれらの情報を付加しなくてもよい。つまり、図9Cに示すように、タイムコードは、ファインダパターン、バージョン情報、サイズ、エラー耐性強度情報などの情報をそれぞれ1つだけ有する。例えば、これらの情報は各符号に共通に用いられる。これにより、タイムコードの表示面積を減らすことができる。なお、タイムコードの中で、一定間隔ごとにアライメントパターンが配置されていれば、そのタイムコードの変形を容易に検出することができる。したがって、タイムコードが長い場合には、複数のアライメントパターンをタイムコード内に配置してもよい。
このように、本実施の形態では、時刻を桁ごとの数値に分けて符号化してもよい。つまり、基準クロックに基づく時刻を表現するための各桁の数値を個別に符号化し、符号化された各桁の数値を被写体である表示装置130に表示させてもよい。このとき、各桁の数値のうち、第1の桁の数値(例えば1/1000秒の桁の数値)は、基準クロックに基づく時刻の更新ごとに、例えば1/1000秒ごとに、更新されて、符号化および表示される。また、各桁の数値のうち、第2の桁の数値(例えば、1/100秒の桁の数値)は、時刻の更新がN回(例えば10回)行われるごとに、更新されて、符号化および表示される。これにより、端末装置は、自らの応答性能がどのようなレベルであっても、その応答性能に応じた精度で、その時刻を検出することができる。なお、時刻を桁ごとの数値に分けて符号化することは一例であり、時刻をどのように分けて符号化してもよい。例えば、時刻を、秒の数値、分の数値、および時の数値のように分けて符号化してもよい。また、一日の最初からの経過時間をN進数で表現し、その経過時間を桁ごとの数値に分割して符号化してもよい。また、日付、時または分などの情報は、タイムコード以外から容易に得られるため、例えば、秒以下の桁の数値のみ、あるいは、秒未満の桁の数値のみを符号化してもよい。また、タイムコードは、これら時刻の表現形式(時刻の起点または時刻の単位など)を示す識別情報を備えてもよい。また、タイムコードは、符号化される時刻の桁の範囲を示す付加情報を備えてもよい。
(変形例)
上記実施の形態1および2では、本番撮影時に撮影部によって動画撮影が行われる場合、端末画像処理部115は、撮影部による撮影によって得られる全てのフレームをサーバに順次送信する。本変形例では、端末画像処理部115は、サーバへのデータ転送量を削減するために、撮影によって得られる各フレームを間引いて、一部のフレームのみをサーバに送信する。これにより、サーバへのデータ転送量を削減することができる。
図10は、本変形例に係る端末画像処理部115の処理動作を示すフローチャートである。なお、撮影部(撮影部114または撮影部114c)は、例えば30fpsまたは60fpsのフレームレートで動画撮影を行う。この場合、33m秒または16.5m秒の周期で、画像がフレームとして生成される。なお、撮影部によって生成される画像は、狭義の意味のフレームに限定されず、どのようなピクチャであってもよい。以下、撮影部によって生成される画像をピクチャとして説明する。
まず、端末画像処理部115は、撮影によって生成されたピクチャを撮影部から取得する(ステップS701)。次に、端末画像処理部115は、撮影時刻情報によって示される撮影開始時刻から、上述のピクチャを取得した時刻までの経過時間(timeElapsed)を算出する(ステップS702)。なお、動画撮影の場合には、撮影時刻情報によって示される撮影時刻は撮影開始時刻として扱われる。また、ピクチャを取得した時刻は、クロック111aまたはクロック111cに基づく時刻である。つまり、端末画像処理部115は、撮影開始時刻をstartTimeとし、ピクチャを取得した時刻をnow()とすると、端末画像処理部115は、timeElapsed=now()−startTimeによって、経過時間を算出する。
次に、端末画像処理部115は、ステップS701で取得されたピクチャのピクチャ番号PNを算出する(ステップS703)。このとき、端末画像処理部115は、サーバ(サーバ120またはサーバ120C)のサーバ画像処理部124から予め取得されている時間間隔(periodTrgt)を用いる。つまり、端末画像処理部115は、timeElapsedをperiodTrgtで除算することによって得られる商の整数部分を、ピクチャ番号PNとして算出する。
そして、端末画像処理部115は、ピクチャ番号PNが最終ピクチャ番号(lastPN)と異なるか否かを判定する(ステップS704)。なお、最終ピクチャ番号は、ステップS701の処理前に「−1」に初期化されている。ここで、ピクチャ番号PNが最終ピクチャ番号と異なると判定されると(ステップS704のY)、端末画像処理部115は、そのピクチャ番号PNのピクチャをサーバに送信する(ステップS705)。そして、端末画像処理部115は、最終ピクチャ番号(lastPN)をそのピクチャ番号PNに更新する(ステップS706)。
ステップS704で、ピクチャ番号PNが最終ピクチャ番号と同一であると判定された場合(ステップS704のN)、またはステップS706の処理の後、端末画像処理部115は、撮影部による動画撮影が終了したか否かを判定する(ステップS707)。端末画像処理部115は、動画撮影が終了したと判定すると(ステップS707のY)、サーバにピクチャを送信する処理を終了する。一方、端末画像処理部115は、動画撮影が終了していないと判定すると(ステップS707のN)、ステップS701からの処理を繰り返し実行する。
このように、本変形例では、端末装置は、撮影時刻情報によって示される撮影時刻から動画の撮影を開始し、その動画の撮影によって第1の周期ごとに得られるピクチャのうち、その第1の周期よりも長い第2の周期ごとに得られるピクチャのみをサーバに送信する。なお、端末装置は、第1の端末装置であって、上記各実施の形態における端末装置110A、端末装置110Bおよび端末装置110Cのうちの何れであってもよい。また、第1の周期は、端末装置の撮影部による動画撮影のフレームレートの逆数であり、第2の周期は、上述の時間間隔(periodTrgt)である。また、端末装置は、その第2の周期を示す周期情報をサーバから取得する。したがって、端末装置は、第1の周期ごとに得られるピクチャの中から、取得された周期情報によって示される第2の周期ごとに得られるピクチャのみを選択し、選択されたピクチャをサーバに送信する。
これにより、撮影部によって短い周期でピクチャが順次生成されても、それらのピクチャの中から、サーバから通知される長い周期(periodTrgt)で順次生成されたピクチャのみを選択してサーバに送信することができる。したがって、撮影部が例えば30fpsなどの高フレームレートで動画撮影を行っていても、サーバに送信される動画像のフレームレートを10fpsまたは1fpsなどの低フレームレートに抑えることができる。したがって、サーバへのデータ転送量を削減することができる。
また、端末装置(端末装置110A〜端末装置110Cのうちの何れかの端末装置)のバッテリーなどの要因によって、その端末装置による動画撮影中に、1ピクチャが撮影されるタイミングが変動したり、ピクチャの撮影が欠落してしまうことがある。したがって、複数の端末装置が撮影時刻情報にしたがって同時に動画撮影を開始しても、動画撮影中において、それらの複数の端末装置による1ピクチャの撮影のタイミングがずれてしまうことがある。
しかしながら、本変形例では、サーバに送信される動画像のフレームレートを低く抑えることができるため、端末装置のバッテリーの急激な減少を防ぐことができる。その結果、複数の端末装置のそれぞれに共通の時間間隔(periodTrgt)を通知しておくことによって、複数の端末装置による上述の撮影のタイミングのずれの発生を抑えることができる。
以上、一つまたは複数の態様に係る撮影方法について、幾つかの実施の形態および変形例に基づいて説明したが、本発明は、これらの実施の形態および変形例に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を上記各実施の形態または変形例に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
例えば、本発明の一態様に係る撮影方法は、図11に示すフローチャートによって示される撮影方法であってもよい。
図11は、本発明の一態様に係る撮影方法を示すフローチャートである。
本発明の一態様に係る撮影方法は、端末装置が撮影を行う撮影方法であって、ステップS901〜903の各処理を実行する。なお、端末装置は、上述の端末装置110A〜110Cのうちの何れかである。ステップS901では、端末装置は、その端末装置のクロックを基準クロックに同期させる。この基準クロックは例えばサーバ120に備えられているクロック121である。なお、この基準クロックは、他の端末装置または装置などに備えられているクロックであってもよい。次に、ステップS902では、端末装置は、その基準クロックに基づく撮影時刻を示す撮影時刻情報を、例えばサーバ120から通信ネットワークを介して取得する。さらに、ステップS903では、端末装置は、基準クロックに既に同期されたその端末装置のクロックに基づいて、上述の撮影時刻情報によって示される撮影時刻に撮影を行う。
これにより、端末装置のクロックが基準クロックに予め同期されているため、撮影時刻情報を撮影時刻よりも少し前に取得すれば、基準クロックに基づく撮影時刻に高い精度で一致するタイミングに撮影を行うことができる。したがって、撮影される時刻を高い精度で所望のタイミングに容易に合わせることができる。
なお、上記各実施の形態および変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態および変形例の端末装置などを実現するソフトウェアは、例えば、図11に示すフローチャートの各ステップをコンピュータに実行させるプログラムである。
また、上記実施の形態1では、端末装置110Aは、NTPなどの手法を用いてクロック111aを基準クロックに同期させたが、このような同期が行われた後に、さらに、実施の形態2のタイムコードを撮影してもよい。このタイムコードの撮影によって、端末装置110Aは、クロック111aを基準クロックにより高精度に同期させてもよい。さらに、上記実施の形態1では、固有遅延時間を計測するために、端末装置Rおよび端末装置Xのそれぞれに時計を撮影させたが、この時計の代わりに、実施の形態2のタイムコードを撮影させてもよい。
さらに、上記実施の形態1では、撮影遅延時間を特定するために、端末装置は、サーバと通信を行ったが、実施の形態2のタイムコードの撮影によって、その撮影遅延時間を特定してもよい。つまり、端末装置は、基準クロックに基づく時刻が更新されるごとに、更新された当該時刻を表示する被写体である表示装置130を撮影する。そして、端末装置は、その被写体の撮影が開始された、端末装置のクロックに基づく時刻と、被写体の撮影によって得られた画像に映し出されている時刻との差分を、撮影遅延時間として特定する。このようなタイムコードの撮影によっても、撮影遅延時間を適切に特定することができる。
また、上記実施の形態2では、タイムコード検出復号部126と遅延時間導出部127は、サーバ120Cに備えられていたが、端末装置110Cに備えられていてもよい。また、表示装置130はサーバ120Cに備えられていてもよい。
また、上記実施の形態1および2とその変形例では、システムクロックであるクロック111aまたは撮影系クロック111cの時刻を補正し、その補正後の時刻を示すタイムスタンプを画像(具体的にはピクチャまたはフレーム)に付与した。しかし、端末装置は、システムクロックであるクロック111aまたは撮影系クロック111cの補正前の時刻をタイムスタンプとして画像に付与し、その画像をサーバに送付してもよい。この場合には、サーバが、端末装置のクロックとサーバのクロックとの間の遅延時間に基づいて、画像に付与されているタイムスタンプを補正する。なお、この場合には、サーバに送信される画像が多いほど、サーバにおける処理負担は大きくなる。一方、実施の形態1および2とその変形例では、画像に付与されているタイムスタンプは既に補正されているため、サーバは、それらのタイムスタンプを補正する必要がなく、処理負担を大幅に低減することができる。
また、上記実施の形態1および2とその変形例では、端末装置は撮影によって得られた画像をリアルタイムにサーバに送信したが、リアルタイムに送信しなくてもよい。例えば、端末装置は、撮影によって得られた画像を一時的に蓄積し、ネットワークの伝送帯域に余裕があるときに、その蓄積されている画像をサーバに送信してもよい。また、端末装置は、撮影によって得られた画像のデータ量を削減して、そのデータ量が削減された画像をリアルタイムにサーバに送信してもよい。例えば、端末装置は、画像を縮小することによって、または、画像が動画像であればフレームレートを落とすことによって、データ量を削減する。この場合、端末装置は、さらに、ネットワークの伝送帯域に余裕があるときに、フルサイズの画像、またはフルフレームレートの画像をサーバに送信してもよい。
なお、本発明の1つまたは複数の態様に係る撮影方法などについて、上記各実施の形態および変形例に基づいて説明してきたが、本発明は、上記各実施の形態および変形例に限定されないのはもちろんである。以下のような場合も本発明の1つまたは複数の態様に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(実施の形態3)
上記各実施の形態で示した画像処理方法及び装置の構成の他の応用例とそれを用いたシステムを説明する。当該システムは、インテリジェント化と対象空間の広域化とが進む映像システムに適用でき、例えば、(1)店舗或いは工場のセキュリティカメラ、又は警察の車載カメラなどに実装される監視システム、(2)個人所有のカメラ或いは各車載カメラ、又は道路に備えられたカメラなどを用いた交通情報システム、(3)ドローンなど遠隔操作又は自動制御可能な装置を用いた環境調査又は配送システム、及び(4)エンターテイメント施設又はスタジアム等における設置カメラ、ドローン等の移動カメラ、又は個人所有のカメラなどを用いた映像などのコンテンツ送受信システムなどに適用できる。
図12は、本実施の形態における映像情報処理システムex100の構成を示す図である。本実施の形態においては、死角の発生を防止する例、及び特定の領域を撮影禁止にする例について説明する。
図12に示す映像情報処理システムex100は、映像情報処理装置ex101と、複数のカメラex102と、映像受信装置ex103とを含む。なお、映像受信装置ex103は、必ずしも映像情報処理システムex100に含まれる必要はない。
映像情報処理装置ex101は、保存部ex111と、解析部ex112とを備える。N個のカメラex102のそれぞれは、映像を撮影する機能と撮影した映像データを映像情報処理装置ex101に送信する機能とを有する。また、カメラex102は、撮影中の映像を表示する機能を有する場合もある。なお、カメラex102は、撮影された映像信号をHEVC又はH.264のような符号化方式を用いてエンコードしたうえで映像情報処理装置ex101に送信してよいし、エンコードされていない映像データを映像情報処理装置ex101に送信してもよい。
ここで、各カメラex102は、監視カメラ等の固定カメラ、無人飛行型ラジコンや車等に搭載された移動カメラ、又は、ユーザが所持するユーザカメラである。
移動カメラは、映像情報処理装置ex101から送信された指示信号を受信し、受信された指示信号に応じて、移動カメラ自体の位置又は撮影方向を変更する。
また、撮影開示前に複数のカメラex102の時刻が、サーバ又は基準カメラの時刻情報などを用いてキャリブレーションされる。また、複数のカメラex102の空間位置が、撮影対象となる空間のオブジェクトの写り方又は基準カメラからの相対位置に基づいてキャリブレーションされる。
情報処理装置ex101に含まれる保存部ex111は、N個のカメラex102から送信された映像データを保存する。
解析部ex112は、保存部ex111に保存された映像データから死角を検出し、死角の発生を防止するための移動カメラへの指示を示す指示信号を移動カメラへ送信する。移動カメラは指示信号に従って移動を行い、撮影を継続する。
解析部ex112は、例えば、SfM(Structure from Motion)を用いて死角検出を行う。SfMとは、異なる位置から撮影された複数の映像から被写体の三次元形状を復元する手法であり、被写体形状及びカメラ位置を同時に推定する形状復元技術として広く知られている。例えば、解析部ex112は、SfMを用いて、保存部ex111に保存された映像データから施設内又はスタジアム内の三次元形状を復元し、復元できない領域を死角として検出する。
なお、解析部ex112は、カメラex102の位置及び撮影方向が固定であり、位置及び撮影方向の情報が既知の場合は、これらの既知の情報を用いてSfMを行ってもよい。また、移動カメラの位置及び撮影方向が、移動カメラが備えるGPS及び角度センサ等により取得できる場合は、移動カメラは、当該移動カメラの位置及び撮影方向の情報を解析部ex112に送信し、解析部ex112は、送信された位置及び撮影方向の情報を用いてSfMを行ってもよい。
なお、死角検出の方法は上述したSfMを用いた方法に限られるものではない。例えば、解析部ex112は、レーザレンジファインダなどのデプスセンサの情報を用いることで、撮影対象であるオブジェクトの空間距離を把握してもよい。また、解析部ex112は、カメラ位置、撮影方向及びズーム倍率等の情報を、空間内の予め設定したマーカ又は特定のオブジェクトが画像に含まれるか、含まれる場合にはそのサイズ等から検出してもよい。このように、解析部ex112は、各カメラの撮影領域を検出できる任意の方法を用いて、死角の検出を行う。また、解析部ex112は、複数の撮影対象について互いの位置関係等の情報を映像データ又は近接距離センサ等から取得し、取得した位置関係に基づいて死角が発生する可能性の高い領域を特定してもよい。
ここで死角とは、撮影したい領域中で映像が存在しない部分だけでなく、他の部分と比較して画質の悪い部分、及び予め定められた画質を得られていない部分などを含む。この検出対象の部分は、当該システムの構成又は目的に応じて適宜設定されればよい。例えば、撮影される空間中の特定の被写体について、要求される画質が高く設定されてもよい。また、逆に撮影空間中の特定の領域について、要求される画質が低く設定されてもよいし、映像が撮影されていなくても死角と判定しないように設定されてもよい。
なお、上述した画質とは、映像中の撮影対象となる被写体が占める面積(例えばピクセル数)、又は撮影対象となる被写体にピントが合っているかといった映像に関する様々な情報を含むものであり、それらの情報又はその組み合わせを基準に死角であるか否かが判定されればよい。
なお、上記の説明では、実際に死角となっている領域の検出について説明したが、死角の発生を防止するために検出する必要のある領域は実際に死角となっている領域に限定されない。例えば、複数の撮影対象が存在し、少なくともその一部が移動している場合には、ある撮影対象とカメラとの間に別の撮影対象が入ることによって新たな死角が生じる可能性がある。これに対し、解析部ex112は、例えば撮影された映像データ等から複数の撮影対象の動きを検出し、検出された複数の撮影対象の動きとカメラex102の位置情報に基づいて、新たに死角となる可能性のある領域を推定してもよい。この場合、映像情報処理装置ex101は、死角となる可能性のある領域を撮影するように移動カメラに指示信号を送信し、死角の発生を防止してもよい。
なお、移動カメラが複数ある場合、映像情報処理装置ex101は、死角、又は死角となる可能性がある領域を撮影させるために指示信号を送信する移動カメラを選択する必要がある。また、移動カメラ及び死角、又は死角となる可能性がある領域がそれぞれ複数存在する場合、映像情報処理装置ex101は、複数の移動カメラのそれぞれについて、どの死角、又は死角となる可能性がある領域を撮影させるかを決定する必要がある。例えば、映像情報処理装置ex101は、死角、又は死角となる可能性のある領域と各移動カメラが撮影中の領域の位置とに基づいて、死角、又は死角となる領域に最も近い移動カメラを選択する。また、映像情報処理装置ex101は、各移動カメラについて、当該移動カメラが現在撮影中の映像データが得られない場合に新たに死角が発生するか否かを判定し、現在撮影中の映像データが得られなくても死角が発生しないと判断された移動カメラを選択してもよい。
以上の構成により、映像情報処理装置ex101は、死角を検出し、死角を防止するように移動カメラに対して指示信号を送信することにより、死角の発生を防止できる。
(変形例1)
なお、上記説明では、移動カメラに移動を指示する指示信号が送信される例を述べたが、指示信号は、ユーザカメラのユーザに移動を指示するための信号であってもよい。例えば、ユーザカメラは、指示信号に基づき、ユーザにカメラの方向を変更するように指示する指示画像を表示する。なお、ユーザカメラは、ユーザの移動の指示として、地図上に移動経路を示した指示画像を表示してもよい。また、ユーザカメラは、取得される画像の質を向上させるために撮影方向、角度、画角、画質、及び撮影領域の移動など詳細な撮影の指示を表示してもよく、さらに映像情報処理装置ex101側で制御可能であれば、映像情報処理装置ex101は、そのような撮影に関するカメラex102の特徴量を自動で制御してもよい。
ここで、ユーザカメラは、例えば、スタジアム内の観客又は施設内の警備員が持つスマートフォン、タブレット型端末、ウェアラブル端末、又はHMD(Head Mounted Display)である。
また、指示画像を表示する表示端末は、映像データを撮影するユーザカメラと同一である必要はない。例えば、ユーザカメラに予め対応付けられた表示端末に対して、ユーザカメラが指示信号又は指示画像を送信し、当該表示端末が指示画像を表示してもよい。また、ユーザカメラに対応する表示端末の情報が、予め映像情報処理装置ex101に登録されてもよい。この場合は、映像情報処理装置ex101は、ユーザカメラに対応する表示端末に対して指示信号を直接送信することで、表示端末に指示画像を表示させてもよい。
(変形例2)
解析部ex112は、例えばSfMを用いて、保存部ex111に保存された映像データから施設内又はスタジアム内の三次元形状を復元することで自由視点映像(三次元再構成データ)を生成してもよい。この自由視点映像は、保存部ex111に保存される。映像情報処理装置ex101は、映像受信装置ex103から送信される視野情報(及び/又は、視点情報)に応じた映像データを保存部ex111から読み出して、映像受信装置ex103に送信する。なお、映像受信装置ex103は、複数のカメラ111の一つであってもよい。
(変形例3)
映像情報処理装置ex101は、撮影禁止領域を検出してもよい。この場合、解析部ex112は撮影画像を解析し、移動カメラが撮影禁止領域を撮影している場合には移動カメラに対して撮影禁止信号を送信する。移動カメラは撮影禁止信号を受信している間は撮影を停止する。
解析部ex112は、例えば、SfMを用いて復元された三次元の仮想空間と、撮影映像とのマッチングを取ることで、空間内で予め設定されている移動カメラが撮影禁止領域を撮影中かを判定する。または、解析部ex112は、空間内に配置されたマーカ又は特徴的なオブジェクトをトリガーとして移動カメラが撮影禁止領域を撮影中かを判定する。撮影禁止領域とは、例えば施設内又はスタジアム内のトイレなどである。
また、ユーザカメラが撮影禁止領域を撮影している場合には、ユーザカメラは、無線又は有線で接続されるディスプレイ等にメッセージを表示したり、スピーカ又はイヤホンから音又は音声を出力したりすることで、現在の場所が撮影禁止場所であることをユーザに知らせてもよい。
例えば、上記メッセージとして、現在カメラを向けている方向が撮影禁止である旨が表示される。または、表示される地図上に撮影禁止領域と現在の撮影領域とが示される。また、撮影の再開は、例えば、撮影禁止信号が出力されなくなれば自動的に行われる。または、撮影禁止信号が出力されておらず、かつ、ユーザが撮影再開を行う操作をした場合に、撮影が再開されてもよい。また、撮影の停止と再開とが短期間で複数回起こった場合には、再度キャリブレーションが行われてもよい。または、ユーザに現在位置を確認したり移動を促したりするための通知が行われてもよい。
また、警察など特別な業務の場合には、記録のためこのような機能をオフにするパスコード又は指紋認証などが用いられてもよい。さらに、そのような場合であっても撮影禁止領域の映像が外部に表示されたり保存される場合には自動でモザイクなど画像処理が行われてもよい。
以上の構成により、映像情報処理装置ex101は、撮影禁止の判定を行い、撮影を停止するようにユーザに通知することで、ある領域を撮影禁止に設定できる。
(変形例4)
映像から三次元の仮想空間を構築するためには、複数視点の映像を集める必要があるため、映像情報処理システムex100は、撮影映像を転送したユーザに対してインセンティブを設定する。例えば、映像情報処理装置ex101は、映像を転送したユーザに対し、無料又は割引料金で映像配信を行ったり、オンライン又はオフラインの店又はゲーム内で使用できるような金銭的な価値、又はゲームなどのバーチャル空間での社会的地位など非金銭的な価値のあるポイントを付与する。また、映像情報処理装置ex101は、リクエストが多いなど価値のある視野(及び/又は、視点)の撮影映像を転送したユーザに対しては特に高いポイントを付与する。
(変形例5)
映像情報処理装置ex101は、解析部ex112の解析結果に基づき、ユーザカメラに対して付加情報を送信してもよい。この場合、ユーザカメラは撮影映像に付加情報を重畳して、画面に表示する。付加情報とは、例えば、スタジアムでの試合が撮影されている場合には、選手名又は身長などの選手の情報であり、映像内の各選手に対応付けて当該選手の名前又は顔写真などが表示される。なお、映像情報処理装置ex101は、映像データの一部又は全部の領域に基づきインターネット経由の検索により、付加情報を抽出してもよい。また、カメラex102は、Bluetooth(登録商標)をはじめとする近距離無線通信又は、スタジアム等の照明から可視光通信によりそのような付加情報を受け取り、受け取った付加情報を、映像データにマッピングしてもよい。また、カメラex102は、このマッピングを、カメラex102に有線又は無線により接続される記憶部に保持されるテーブルであって、可視光通信技術により得られる情報と付加情報との対応関係を示すテーブルなどの一定規則に基づいて行なってもよいし、インターネット検索により最も確からしい組み合わせの結果を用いて行なってもよい。
また、監視システムにおいては、施設内の警備員が持つユーザカメラに対して、例えば注意人物の情報が重畳されることで、監視システムの高精度化を図ることができる。
(変形例6)
解析部ex112は,自由視点映像とユーザカメラの撮影映像とのマッチングを取ることで、ユーザカメラが施設内又はスタジアム内のどの領域を撮影中かを判定してもよい。なお、撮影領域の判定方法はこれに限られず、上述した各実施の形態で説明した様々な撮影領域の判定方法又はその他の撮影領域の判定方法を用いられてもよい。
映像情報処理装置ex101は、解析部ex112の解析結果に基づき、ユーザカメラに対して過去映像を送信する。ユーザカメラは撮影映像に過去映像を重畳して、又は撮影映像を過去映像に置換して、画面に表示する。
例えば、ハーフタイム中に、過去映像として前半のハイライトシーンが表示される。これにより、ユーザはハーフタイム中に、前半のハイライトシーンを自分が見ている方向の映像として楽しむことができる。なお過去映像は、前半のハイライトシーンに限らず、そのスタジアムで行われた過去の試合のハイライトシーンなどでもよい。また、映像情報処理装置ex101が過去映像を配信するタイミングはハーフタイム中に限らず、例えば試合終了後でも、試合中でもよい。特に試合中の場合には、解析部ex112の解析結果に基づき、映像情報処理装置ex101はユーザが見逃した重要と考えられるシーンを配信してもよい。また、映像情報処理装置ex101はユーザからリクエストがあった場合のみ過去映像を配信してもよく、又は過去映像の配信前に配信許可のメッセージを配信してもよい。
(変形例7)
映像情報処理装置ex101は、解析部ex112の解析結果に基づき、ユーザカメラに対して広告情報を送信してもよい。ユーザカメラは撮影映像に広告情報を重畳して、画面に表示する。
広告情報は例えば変形例5で示した、ハーフタイム中又は試合終了後の過去映像配信直前に配信されてもよい。これにより、配信業者は広告主からの広告料を得ることができ、ユーザに安価又は無料で映像配信サービスを提供できる。また、映像情報処理装置ex101は、広告情報の配信直前に広告配信許可のメッセージを配信してもよいし、ユーザが広告を視聴した場合のみ無料でサービスを提供してもよいし、広告を視聴しない場合より安価にサービスを提供してもよい。
また、広告に従ってユーザが「今すぐ注文する」などをクリックすると、当該システム又は何らかの位置情報に基づいてユーザの位置を把握しているスタッフ又は会場の自動の配送システムが注文された飲み物を席まで届けてくれる。決裁はスタッフへの手渡しでもよいし、予めモバイル端末のアプリ等に設定されているクレジットカード情報に基づいて行われてもよい。また、広告にはeコマースサイトへのリンクが含まれ、通常の自宅配送等のオンラインショッピングが可能な状態になっていてもよい。
(変形例8)
映像受信装置ex103は、カメラex102(ユーザカメラ)の一つであってもよい。
この場合、解析部ex112は、自由視点映像とユーザカメラの撮影映像とのマッチングを取ることで、ユーザカメラが施設内又はスタジアム内のどの領域を撮影中かを判定する。なお、撮影領域の判定方法はこれに限らない。
例えば、ユーザが、画面に表示されている矢印の方向にスワイプ操作をすると、ユーザカメラはその方向へ視点を移動させることを示す視点情報を生成する。映像情報処理装置ex101は、解析部ex112が判定したユーザカメラの撮影領域から視点情報の分だけ移動させた領域を撮影した映像データを保存部ex111から読み出し、当該映像データのユーザカメラへの送信を開始する。そしてユーザカメラは撮影映像ではなく、映像情報処理装置ex101から配信された映像を表示する。
以上により、施設内又はスタジアム内のユーザは、画面スワイプのような簡易な動作で、好きな視点からの映像を視聴できる。例えば野球場の3塁側で観戦している観客が、1塁側の視点からの映像を視聴できる。また、監視システムにおいては、施設内の警備員が画面スワイプのような簡易な動作で、自身が確認したい視点又はセンターからの割り込みとして注視すべき映像などを、視点を適用的に変えながら視聴することができるので、監視システムの高精度化を図ることができる。
また、施設内又はスタジアム内のユーザへの映像の配信は、例えばユーザカメラと撮影対象との間に障害物が存在し、見えない領域がある場合等にも有効である。この場合、ユーザカメラは、ユーザカメラの撮影領域のうち障害物が含まれる一部の領域の映像を、撮影映像から、映像情報処理装置ex101からの配信映像に切り替えて表示してもよいし、画面全体を撮影映像から配信映像に切り替えて表示してもよい。また、ユーザカメラは、撮影映像と配信映像とを合成して障害物を透過して視聴対象が見えているような映像を表示してもよい。この構成によると、障害物の影響でユーザの位置から撮影対象が見えない場合にも、映像情報処理装置ex101から配信された映像を視聴することができるので、障害物の影響を軽減することができる。
また、障害物により見えない領域の映像として配信映像を表示する場合は、上述した画面スワイプのようなユーザによる入力処理に応じた表示の切り替え制御とは異なる表示の切り替え制御が行われてもよい。例えば、ユーザカメラの移動及び撮影方向の情報、並びに予め得られている障害物の位置情報に基づいて撮影領域に障害物が含まれると判定される場合に、撮影映像から配信映像への表示の切り替えが自動的に行われもよい。また、撮影映像データの解析により撮影対象ではない障害物が映っていると判定された場合に、撮影映像から配信映像への表示の切り替えが自動的に行われてもよい。また、撮影映像に含まれる障害物の面積(例えばピクセル数)が所定の閾値を超えた場合、又は撮影対象の面積に対する障害物の面積の比が所定の割合を超えた場合に、撮影映像から配信映像への表示の切り替えが自動的に行われてもよい。
なお、ユーザの入力処理に応じて撮影映像から配信映像への表示の切り替え及び配信映像から撮影映像への表示の切り替えが行われてもよい。
(変形例9)
各カメラex102で撮影された映像データの重要度に基づき映像データを映像情報処理装置ex101に転送する速度が指示されてもよい。
この場合、解析部ex112は保存部ex111に保存された映像データ、又は当該映像データを撮影したカメラex102の重要度を判定する。ここでの重要度の判定は、例えば映像中に含まれる人の数或いは移動物体の数、映像データの画質などの情報、又はその組み合わせに基づいて行われる。
また、映像データの重要度の判定は、映像データが撮影されたカメラex102の位置又は映像データが撮影している領域に基づいてもよい。例えば、対象のカメラex102の近くに撮影中の他のカメラex102が複数存在する場合に、対象のカメラex102で撮影された映像データの重要度を低くする。また、対象のカメラex102の位置が他のカメラex102から離れていても同じ領域を撮影している他のカメラex102が複数存在する場合に、対象のカメラex102で撮影された映像データの重要度を低くする。また、映像データの重要度の判定は、映像配信サービスにおけるリクエストの多さに基づいて行われてもよい。なお、重要度の判定方法は、上述したものやその組み合わせに限られず、監視システム又は映像配信システムの構成又は目的に応じた方法であればよい。
また、重要度の判定は撮影された映像データに基づくものでなくてもよい。例えば、映像情報処理装置ex101以外の端末へ映像データを送信するカメラex102の重要度が高く設定されてもよい。逆に、映像情報処理装置ex101以外の端末へ映像データを送信するカメラex102の重要度が低く設定されてもよい。これにより、例えば、映像データの伝送を必要とする複数のサービスが通信帯域を共有している場合に、各サービスの目的又は特性に応じた通信帯域の制御の自由度が高くなる。これにより、必要な映像データが得られないことによる各サービスの品質の劣化を防止できる。
また、解析部ex112は、自由視点映像とカメラex102の撮影映像とを用いて、映像データの重要度を判定してもよい。
映像情報処理装置ex101は、解析部ex112で行われた重要度の判定結果に基づき、カメラex102に対して通信速度指示信号を送信する。映像情報処理装置ex101は、例えば、重要度が高い映像を撮影しているカメラex102に対して高い通信速度を指示する。また、映像情報処理装置ex101は、速度の制御だけではなく、重要な情報については、欠落によるデメリットを低減するために複数回送るような方式を指示する信号を送信してもよい。これにより、施設内又はスタジアム内全体の通信を効率的に行うことができる。なお、カメラex102と映像情報処理装置ex101との通信は、有線通信であっても無線通信であってもよい。また、映像情報処理装置ex101は、有線通信及び無線通信のいずれか一方のみを制御してもよい。
カメラex102は、通信速度指示信号に従った通信速度で、撮影映像データを映像情報処理装置ex101に送信する。なお、カメラex102は所定の回数再送が失敗した場合には、その撮影映像データの再送を停止し、次の撮影映像データの転送を開始してもよい。これにより、施設内又はスタジアム内全体の通信を効率的に行うことができ、解析部ex112における処理の高速化を実現できる。
また、カメラex102は、それぞれに割り当てられた通信速度が撮影した映像データを転送するために十分な帯域でない場合は、撮影した映像データを、割り当てられた通信速度で送信可能なビットレートの映像データに変換し、変換後の映像データを送信してもよし、映像データの転送を中止してもよい。
また、上述したように死角の発生を防止するために映像データが使用される場合、撮影された映像データに含まれる撮影領域のうちの一部の領域のみが死角を埋めるために必要である可能性がある。この場合、カメラex102は、少なくとも、映像データから、死角の発生を防止するために必要とされる領域のみを抽出することで抽出映像データを生成し、生成された抽出映像データを映像情報処理装置ex101に送信してもよい。この構成によると、死角の発生の抑制をより少ない通信帯域で実現できる。
また、例えば、付加情報の重畳表示又は映像配信が行われる場合には、カメラex102は、映像情報処理装置ex101にカメラex102の位置情報及び撮影方向の情報を送信する必要がある。この場合、映像データを転送するためには十分ではない帯域しか割り当てられなかったカメラex102は、カメラex102で検出された位置情報及び撮影方向の情報のみを送信してもよい。また、映像情報処理装置ex101においてカメラex102の位置情報及び撮影方向の情報を推定する場合は、カメラex102は、撮影した映像データを、位置情報及び撮影方向の情報の推定に必要な解像度に変換し、変換された映像データを映像情報処理装置ex101に送信してもよい。この構成によると、少ない通信帯域しか割り当てられなかったカメラex102に対しても、付加情報の重畳表示又は映像配信のサービスを提供できる。また、映像情報処理装置ex101は、より多くのカメラex102から撮影領域の情報を取得できるため、例えば注目されている領域を検出する等の目的で、撮影領域の情報を利用するような場合においても有効である。
なお、上述した割り当てられた通信帯域に応じた映像データの転送処理の切り替えは、通知された通信帯域に基づいてカメラex102が行ってもよいし、映像情報処理装置ex101が各カメラex102の動作を決定し、決定された動作を示す制御信号を各カメラex102に通知してもよい。これにより、動作の切り替えの判定に必要な計算量、カメラex102の処理能力、及び必要となる通信帯域等に応じて、適切に処理の分担を行える。
(変形例10)
解析部ex112は、映像受信装置ex103から送信された視野情報(及び/又は、視点情報)に基づき、映像データの重要度を判定してもよい。例えば、解析部ex112は、視野情報(及び/又は、視点情報)が示す領域を多く含む撮影映像データの重要度を高く設定する。また、解析部ex112は、映像中に含まれる人の数、又は移動物体の数を考慮して、映像データの重要度を判定してもよい。なお、重要度の判定方法はこれに限らない。
なお、本実施の形態で説明した通信制御方法は、必ずしも複数の映像データから三次元形状の再構築を行うシステムにおいて用いられる必要はない。例えば複数のカメラex102が存在する環境において、映像データを選択的又は伝送速度に差をつけて有線通信及び/又は無線通信で送信する場合であれば、本実施の形態で説明した通信制御方法は有効である。
(変形例11)
映像配信システムにおいて、映像情報処理装置ex101は、撮影シーンの全体を示す概観映像を映像受信装置ex103に送信してもよい。
具体的には、映像情報処理装置ex101は、映像受信装置ex103から送信された配信リクエストを受信した場合、保存部ex111から施設内又はスタジアム内全体の概観映像を読み出し、当該外観映像を映像受信装置ex103に送信する。この概観映像は更新間隔が長くてもよく(低フレームレートでもよく)、また画質が低くてもよい。視聴者は、映像受信装置ex103の画面上に表示された概観映像中で、見たい部分をタッチする。これにより、映像受信装置ex103は、タッチされた部分に対応する視野情報(及び/又は、視点情報)を映像情報処理装置ex101に送信する。
映像情報処理装置ex101は、視野情報(及び/又は、視点情報)に応じた映像データを保存部ex111から読み出し、当該映像データを映像受信装置ex103に送信する。
また、解析部ex112は、視野情報(及び/又は、視点情報)で示される領域に対して優先的に三次元形状の復元(三次元再構成)を行うことで自由視点映像を生成する。解析部ex112は、施設内又はスタジアム内全体の三次元形状を、概観を示す程度の精度で復元する。これにより、映像情報処理装置ex101は、三次元形状の復元を効率的に行うことができる。その結果、視聴者が見たい領域の自由視点映像の高フレームレート化、及び高画質を実現できる。
(変形例12)
なお、映像情報処理装置ex101は、例えば、設計図面などから事前に生成された施設又はスタジアムの三次元形状復元データを事前映像として、予め保存しておいてもよい。なお、事前映像はこれに限らず、デプスセンサから得られる空間の凹凸と、過去又はキャリブレーション時の画像又は映像データから導出されるピクチャとをオブジェクトごとにマッピングした仮想空間データであってもよい。
例えば、スタジアムでサッカーが行われている場合、解析部ex112は、選手及びボールのみに限定して三次元形状の復元を行い、得られた復元データと事前映像とを合成することで自由視点映像を生成してもよい。あるいは、解析部ex112は、選手及びボールに対して優先して三次元形状の復元を行ってもよい。これにより、映像情報処理装置ex101は、三次元形状の復元を効率的に行うことができる。その結果、視聴者が注目する選手及びボールに関する自由視点映像の高フレームレート化及び高画質化を実現できる。また、監視システムにおいては、解析部ex112は、人物及び移動物体のみに限定して、又はそれらを優先して三次元形状の復元を行ってもよい。
(変形例13)
各装置の時刻は、サーバの基準時刻等に基づき、撮影開始時にキャリブレーションされてもよい。解析部ex112は、複数のカメラex102で撮影された複数の撮影映像データのうち、時刻設定の精度に応じて、予め設定された時間範囲内に属する時刻に撮影された複数の映像データを用いて、三次元形状の復元を行う。この時刻の検出には、例えば撮影映像データが保存部ex111に格納された時刻が用いられる。なお、時刻の検出方法はこれに限らない。これにより、映像情報処理装置ex101は、三次元形状の復元を効率的に行うことができるので、自由視点映像の高フレームレート化及び高画質化を実現できる。
または、解析部ex112は、保存部ex111に保存された複数の映像データのうち、高画質データのみを用いて、又は高画質データを優先的に用いて、三次元形状の復元を行ってもよい。
(変形例14)
解析部ex112は,カメラ属性情報を用いて、三次元形状の復元を行ってもよい。この場合、カメラex102は、撮影映像データとカメラ属性情報とを映像情報処理装置ex101に送信する。カメラ属性情報は、例えば、撮影位置、撮影角度、撮影時刻、又はズーム倍率などである。
これにより、映像情報処理装置ex101は、三次元形状の復元を効率的に行うことができるので、自由視点映像の高フレームレート化及び高画質化を実現できる。
具体的には、カメラex102は、施設内又はスタジアム内に三次元座標を定義し、カメラex102がどのあたりの座標をどの角度から、どれ位のズームで、どの時間に撮ったかという情報を映像と共にカメラ属性情報として映像情報処理装置ex101に送信する。また、カメラex102の起動時に、施設内又はスタジアム内の通信ネットワーク上の時計とカメラ内の時計との同期がとられ、時間情報が生成される。
また、カメラex102の起動時又は任意のタイミングで施設内又はスタジアム内の特定のポイントにカメラex102を向けることにより、カメラex102の位置及び角度情報が取得される。図13は、カメラex102に起動時に、カメラex102の画面上に表示される通知の一例を示す図である。ユーザがこの通知に従い、スタジアム北側の広告中のサッカーボール中心にある「+」に、画面中央に表示された「+」を合わせて、カメラex102のディスプレイをタッチすると、カメラex102は、カメラex102から広告までのベクトル情報を取得しカメラ位置及び角度の基準を特定する。その後、カメラex102のモーション情報からその時々のカメラ座標及び角度が特定される。もちろん、この表示に限るものではなく、矢印等を用いて撮影期間中も座標、角度、又は撮影領域の移動速度等を指示するような表示が用いられてもよい。
カメラex102の座標の特定は、GPS、WiFi(登録商標)、3G、LTE(Long Term Evolution)、及び5G(無線LAN)の電波を用いて行われてもよいし、ビーコン(Bluetooth(登録商標)、超音波)など近距離無線を利用して行われてもよい。また、施設内又はスタジアム内のどの基地局に撮影映像データが届いたかという情報が用いられてもよい。
(変形例15)
当該システムはスマートフォン等のモバイル端末上で動作するアプリケーションとして提供されてもよい。
上記システムへのログインには、各種SNS等のアカウントが用いられてもよい。なお、アプリ専用のアカウント、又は機能が制限されたゲストアカウントが用いられてもよい。このようにアカウントが用いられることで、好みの映像又は好みのアカウント等を評価することができる。また、撮影中又は視聴中の映像データに類似した映像データ、撮影中又は視聴中の映像データの視点に類似した視点の映像データなどに優先的に帯域を割り振ることで、これらの映像データの解像度を高めることができる。これにより、これらの視点からの三次元形状の復元をより精度よく行うことができる。
また、ユーザは、当該アプリケーションで、好みの画像映像を選択し、相手方をフォローすることで、選択した画像を他のユーザよりも優先して見たり、相手方の承認などを条件にテキストチャット等でつながりをもつことができる。このように、新たなコミュニティの生成が可能である。
このようにユーザ同士がコミュニティ内でつながることにより、撮影自体、また撮影した画像の共有などが活発化し、より精度の高い三次元形状の復元を促すことができる。
また、コミュニティ内のつながりの設定に応じて、ユーザは、他人が撮影した画像又は映像を編集したり、他人の画像と自分の画像とをコラージュして新たな画像又は映像を作成したりできる。これにより、新たな画像又は映像を当該コミュニティ内の人のみでシェアするなど、新たな映像作品のシェアが可能になる。また、この編集においてCGのキャラクタを挿入するなどにより、拡張現実(Augmented Reality)のゲーム等にも映像作品を利用できる。
また、当該システムによると三次元モデルデータが逐次出力可能になるため、ゴールシーンなどの特徴的なシーンでの三次元モデルデータに基づき、施設が有する3Dプリンタなどが立体オブジェクトを出力することができる。これにより、試合後に、その試合中のシーンに基づくオブジェクトをキーホルダーのようなお土産として売ったり、参加ユーザに配布することも可能である。もちろん通常の写真として、もっとも良い視点からの画像をプリントすることも可能である。
(変形例16)
上記システムを用いて、例えば、警察の車載カメラ、及び警察官のウェアラブルカメラの映像などから、地域全体の大雑把な状態を、当該システムに接続されたセンターで管理することができる。
一般のパトロールの時は、例えば数分おきで静止画の送受信が行なわれる。また、センターは、過去の犯罪データ等を用いて分析した結果に基づいた犯罪マップに基づいて犯罪発生の可能性が高い地域を特定する、もしくはこのように特定された犯罪発生確率に関連する地域データを保持している。特定された犯罪発生確率の高い地域では、画像の送受信の頻度を上げたり、画像を動画に変更したりしてもよい。また、事件発生時は、動画、又はSfM等を用いた三次元再構成データが用いられてもよい。また、センターもしくは各端末が、同時にデプスセンサ又はサーモセンサなど他のセンサの情報を用いて画像又は仮想空間を補正することで、警察官は、より正確に状況を把握できる。
また、センターは、三次元再構成データを用いることで、複数の端末にそのオブジェクトの情報をフィードバックできる。これにより、各端末を持つ個々人がオブジェクトをトラッキングできる。
また、最近では、建造物或いは環境の調査、又はスポーツなどの臨場感ある撮影等の目的で、クワッドコプター、ドローンなどの飛行可能な装置による空中からの撮影が行なわれる。このような自律移動装置による撮影は、画像がブレるということが問題になりやすいが、SfMは位置及び傾きによりそのブレを補正しながら三次元化を行なうことが可能である。これにより、画質の向上、及び空間の復元精度の向上を実現できる。
また、車外を撮影する車載カメラの設置が、国によっては義務付けられている。このような車載カメラにおいても、複数の画像からモデル化された三次元データを用いることで、行き先の方向の天気及び路面の状態、並びに渋滞度合い等をより精度よく把握できる。
(実施の形態3)
上記各実施の形態で示した画像処理方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した画像処理方法の応用例とそれを用いたシステムを説明する。当該システムは、画像処理方法を用いた装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図14は、コンテンツ配信サービスを実現するコンテンツ供給システムex200の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex206、ex207、ex208、ex209、ex210が設置されている。
このコンテンツ供給システムex200は、インターネットex201にインターネットサービスプロバイダex202および通信網ex204、および基地局ex206からex210を介して、コンピュータex211、PDA(Personal Digital Assistant)ex212、カメラex213、スマートフォンex214、ゲーム機ex215などの各機器が接続される。
しかし、コンテンツ供給システムex200は図14のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex206からex210を介さずに、各機器が電話線、ケーブルテレビ、又は光通信などの通信網ex204に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex213はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex216はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、スマートフォンex214は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)、又は高周波帯域を利用した通信方式などに対応するスマートフォン機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex200では、カメラex213等が基地局ex209、通信網ex204を通じてストリーミングサーバex203に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex213を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して符号化処理を行い、ストリーミングサーバex203に送信する。一方、ストリーミングサーバex203は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex211、PDAex212、カメラex213、スマートフォンex214、ゲーム機ex215等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する。
なお、撮影したデータの符号化処理はカメラex213で行っても、データの送信処理をするストリーミングサーバex203で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex203で行ってもよいし、互いに分担して行ってもよい。また、カメラex213に限らず、カメラex216で撮影した静止画像および/または動画像データを、コンピュータex211を介してストリーミングサーバex203に送信してもよい。この場合の符号化処理はカメラex216、コンピュータex211、ストリーミングサーバex203のいずれで行ってもよいし、互いに分担して行ってもよい。さらに復号された画像の表示についても、システムにつながった複数の機器が連動して同じ画像を表示してもよいし、大きな表示部を有する装置で全体の画像を表示し、スマートフォンex214等では画像の一部の領域を拡大して表示してもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex211や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex211等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、スマートフォンex214がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データはスマートフォンex214が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex203は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex200では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex200では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex200の例に限らず、図15に示すように、デジタル放送用システムex300にも、上記各実施の形態を適用してもよい。具体的には、放送局ex301では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex302に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである。これを受けた放送衛星ex302は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex304が受信する。受信した多重化データを、テレビ(受信機)ex400またはセットトップボックス(STB)ex317等の装置が復号化して再生する。
また、DVD、BD等の記録メディアex315、もしくはSDなどのメモリex316に記録した多重化データを読み取り復号化する、または記録メディアex315もしくはメモリex316に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex318にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex319に表示され、多重化データが記録された記録メディアex315、又はメモリex316により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex303または衛星/地上波放送のアンテナex304に接続されたセットトップボックスex317内に動画像復号化装置を実装し、これをテレビのモニタex319で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図16は、スマートフォンex214を示す図である。また、図17は、スマートフォンex214の構成例を示す図である。スマートフォンex214は、基地局ex210との間で電波を送受信するためのアンテナex450、映像、静止画を撮ることが可能なカメラ部ex465、カメラ部ex465で撮像した映像、アンテナex450で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex458を備える。スマートフォンex214は、さらに、タッチパネル等である操作部ex466、音声を出力するためのスピーカ等である音声出力部ex457、音声を入力するためのマイク等である音声入力部ex456、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存可能なメモリ部ex467、又は図15に例示されたメモリex316、もしくはユーザを特定し、ネットワークをはじめ各種データへのアクセスの認証をするためのSIMex468とのインタフェース部であるスロット部ex464を備える。
スマートフォンex214は、表示部ex458及び操作部ex466等を統括的に制御する主制御部ex460に対して、電源回路部ex461、操作入力制御部ex462、映像信号処理部ex455、カメラインタフェース部ex463、LCD(Liquid Crystal Display)制御部ex459、変調/復調部ex452、多重/分離部ex453、音声信号処理部ex454、スロット部ex464、メモリ部ex467がバスex470を介して互いに接続されている。
電源回路部ex461は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりスマートフォンex214を動作可能な状態に起動する。
スマートフォンex214は、CPU、ROM、RAM等を有する主制御部ex460の制御に基づいて、音声通話モード時に音声入力部ex456で収音した音声信号を音声信号処理部ex454でデジタル音声信号に変換し、これを変調/復調部ex452でスペクトラム拡散処理し、送信/受信部ex451でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex450を介して送信する。またスマートフォンex214は、音声通話モード時にアンテナex450を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex452でスペクトラム逆拡散処理し、音声信号処理部ex454でアナログ音声信号に変換した後、これを音声出力部ex457から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作部ex466等の操作によって入力された電子メールのテキストデータは操作入力制御部ex462を介して主制御部ex460に送出される。主制御部ex460は、テキストデータを変調/復調部ex452でスペクトラム拡散処理をし、送信/受信部ex451でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex450を介して基地局ex210へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex458に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex455は、カメラ部ex465から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し、符号化された映像データを多重/分離部ex453に送出する。また、音声信号処理部ex454は、映像、静止画等をカメラ部ex465で撮像中に音声入力部ex456で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex453に送出する。
多重/分離部ex453は、映像信号処理部ex455から供給された符号化された映像データと音声信号処理部ex454から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex452でスペクトラム拡散処理をし、送信/受信部ex451でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex450を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex450を介して受信された多重化データを復号化するために、多重/分離部ex453は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex470を介して符号化された映像データを映像信号処理部ex455に供給するとともに、符号化された音声データを音声信号処理部ex454に供給する。映像信号処理部ex455は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し、LCD制御部ex459を介して表示部ex458から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex454は、音声信号を復号し、音声出力部ex457から音声が出力される。
また、上記スマートフォンex214等の端末は、テレビex400と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex300において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。