以下、実施形態について、図面を用いて説明する。
図1は、カメラの外部パラメータの推定方法、推定装置および推定プログラムの一実施形態を示す。図1に示す推定装置10は、例えば、視聴者が希望する任意の視点の映像(自由視点映像)を生成する自由視点映像生成システムSYSに含まれる。自由視点映像生成システムSYSは、推定装置10の他に、異なる視点から共通の被写体を撮影する複数のカメラCAM(CAMa、CAMb、CAMc、・・・、CAMn)と自由視点映像生成部20とを有する。推定装置10は、2つのカメラCAM間の位置関係等を示す回転行列および並進ベクトルを含むカメラCAMの外部パラメータを推定するキャリブレーションを実行する。例えば、推定装置10は、被写体を互いに異なる位置から撮影する複数のカメラCAMの外部パラメータを推定し、推定した外部パラメータを自由視点映像生成部20に転送する。自由視点映像生成部20は、複数のカメラCAMでそれぞれ撮影された画像と推定装置10により推定されたカメラCAMの外部パラメータ等を用いて、自由視点映像を生成する。すなわち、推定装置10により推定されたカメラCAMの外部パラメータは、自由視点映像を生成するために用いられる。
推定装置10は、例えば、コンピュータ等の情報処理装置により実現され、CPU(Central Processing Unit)等のプロセッサ100とメモリ1000とを有する。プロセッサ100およびメモリ1000は、バスBUSに接続される。
例えば、プロセッサ100は、メモリ1000に格納される推定プログラム(カメラCAMの外部パラメータの推定プログラム)を実行し、推定装置10の動作を制御する。なお、推定プログラムは、推定装置10の記憶装置のうちのメモリ1000以外の記憶装置に格納されてもよく、推定装置10の外部の記憶装置に格納されてもよい。また、推定プログラムは、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等のコンピュータにより読み取り可能な記録媒体RECに格納されてもよい。この場合、記録媒体RECに格納された推定プログラムは、推定装置10に設けられる図示しない入出力インタフェースを介して記録媒体RECからメモリ1000等に転送される。なお、推定プログラムは、記録媒体RECから図示しないハードディスクに転送された後、ハードディスクからメモリ1000に転送されてもよい。
プロセッサ100は、例えば、メモリ1000に格納される推定プログラムを実行することにより、特徴点抽出部200、骨格抽出部300、特徴点対応付け部400、骨格対応付け部500および推定部600の機能を実現する。すなわち、推定装置10は、特徴点抽出部200、骨格抽出部300、特徴点対応付け部400、骨格対応付け部500および推定部600を有する。なお、特徴点抽出部200、骨格抽出部300、特徴点対応付け部400、骨格対応付け部500および推定部600は、ハードウェアのみで実現されてもよい。
特徴点抽出部200は、所定のフレームレートで被写体を撮影する複数のカメラCAMの各々から画像を順次取得する。そして、特徴点抽出部200は、複数のカメラCAMから取得した画像の各々から、カメラCAMで撮影された空間の特徴点を抽出する。カメラCAMで撮影された空間の特徴点は、例えば、物体の角等の自然特徴点である。以下、カメラCAMで撮影された空間の特徴点は、自然特徴点とも称される。
骨格抽出部300は、特徴点抽出部200に転送される画像を取得する。すなわち、各カメラCAMで撮影された画像は、特徴点抽出部200および骨格抽出部300に転送される。そして、骨格抽出部300は、複数のカメラCAMから取得した画像の各々から、画像中の人物の骨格を抽出する。例えば、骨格抽出部300は、画像中の人物の関節の位置(以下、骨格点とも称する)を人物の骨格として抽出する。
特徴点対応付け部400は、各画像から抽出された自然特徴点を示す特徴情報を、特徴点抽出部200から受ける。そして、特徴点対応付け部400は、複数のカメラCAMから取得した複数の画像のうちの2つの画像のペア毎に、2つの画像の一方から抽出した自然特徴点と2つの画像の他方から抽出した自然特徴点とを対応付けて2つの画像間の第1対応点を決定する。例えば、特徴点対応付け部400は、カメラCAMaで撮影された画像から抽出された自然特徴点と、カメラCAMbで撮影された画像から抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点をペアにする。これにより、カメラCAMa、CAMbでそれぞれ撮影された2つの画像間の第1対応点(自然特徴点のペア)が特定される。また、例えば、特徴点対応付け部400は、カメラCAMbで撮影された画像から抽出された自然特徴点と、カメラCAMcで撮影された画像から抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点をペアにする。これにより、カメラCAMb、CAMcでそれぞれ撮影された2つの画像間の第1対応点(自然特徴点のペア)が特定される。そして、特徴点対応付け部400は、画像間の第1対応点(自然特徴点のペア)を示す情報を推定部600に転送する。
骨格対応付け部500は、各画像から抽出された人物の骨格(例えば、骨格点)を示す骨格情報を、骨格抽出部300から受ける。そして、骨格対応付け部500は、複数のカメラCAMから取得した複数の画像のうちの2つの画像のペア毎に、2つの画像の一方から抽出した骨格と2つの画像の他方から抽出した骨格とを対応付けて2つの画像間の第2対応点を決定する。例えば、骨格対応付け部500は、カメラCAMaで撮影された画像から抽出された骨格点と、カメラCAMbで撮影された画像から抽出された骨格点との間で、同一人物の同じ関節の位置を示す骨格点をペアにする。これにより、カメラCAMa、CAMbでそれぞれ撮影された2つの画像間の第2対応点(骨格点のペア)が特定される。また、例えば、骨格対応付け部500は、カメラCAMbで撮影された画像から抽出された骨格点と、カメラCAMcで撮影された画像から抽出された骨格点との間で、同一人物の同じ関節の位置を示す骨格点をペアにする。これにより、カメラCAMb、CAMcでそれぞれ撮影された2つの画像間の第2対応点(骨格点のペア)が特定される。このように、推定装置10は、2つの画像間の対応点として、第1対応点(自然特徴点のペア)の他に、第2対応点(骨格点のペア)を特定する。骨格対応付け部500は、画像間の第2対応点(骨格点のペア)を示す情報を推定部600に転送する。
同一人物か否かは、例えば、各人物において、互いに隣接する骨格点間の長さおよび角度に基づいて判定される。互いに隣接する骨格点間の長さおよび角度は、人物の関節間の長さおよび角度に対応する。このため、例えば、複数の人物(選手)が同じユニホームを着用するバスケットボール、バレーボール等のスポーツシーンにおいても、2つの画像間で人物の関節間の長さおよび角度が類似する人物を特定することにより、画像間で同一人物を特定することができる。この場合、同一人物の特定に骨格点を用いない場合に比べて、同一人物の特定精度を向上させることができる。すなわち、推定装置10は、同一人物の特定に骨格点を用いない場合に比べて、特徴点等を誤って対応付けることを抑制できる。
推定部600は、2つの画像間の第1対応点および第2対応点に基づいて、カメラCAMの外部パラメータを推定する。例えば、推定部600は、特徴点対応付け部400および骨格対応付け部500で特定された2つの画像間の第1対応点および第2対応点から、8個の対応点を選択する。そして、推定部600は、選択した8個の対応点を用いて8点アルゴリズムを実行することにより、カメラCAMの内部パラメータおよび外部パラメータの情報を含む基礎行列を算出する。カメラCAMの内部パラメータは、カメラCAMの焦点距離、画像の中心座標等であり、予め算出される。この場合、推定部600は、カメラCAMの内部パラメータおよび外部パラメータのうちの外部パラメータのみの情報を含む基本行列を、カメラCAMの内部パラメータおよび基礎行列から算出する。そして、推定部600は、基本行列を分解して外部パラメータを算出し、算出した外部パラメータを自由視点映像生成部20に転送する。
このように、推定部600は、例えば、フレーム毎に、複数のカメラCAMで撮影された複数の画像から抽出される自然特徴点の対応関係および人物の骨格の対応関係に基づいて、カメラCAMの外部パラメータを推定する。推定装置10は、自然特徴点の他に、骨格を用いて画像間の対応点を決定するため、特徴点等を誤って対応付けして対応点を決定することを抑制でき、カメラCAMの外部パラメータの推定精度が低下することを抑制できる。すなわち、推定装置10は、カメラCAMの姿勢または位置が撮影期間中に変化した場合でも、カメラCAMの外部パラメータを自由視点映像の生成に用いる画像から精度よく推定できる。
なお、推定装置10の構成は、図1に示す例に限定されない。例えば、カメラCAMで撮影された画像を受信し、カメラCAMから受信した画像を特徴点抽出部200および骨格抽出部300にバスBUSを介して転送するインタフェースが推定装置10に含まれてもよい。また、例えば、プロセッサ100は、自由視点映像を生成するプログラムを実行することにより、自由視点映像生成部20の機能を実現してもよい。
図2は、図1に示した推定装置10の動作の一例を示す。図2に示す動作は、カメラCAMの外部パラメータの推定方法の一例である。また、図2に示す動作をコンピュータ等の推定装置10に実行させるためのプログラムは、カメラCAMの外部パラメータの推定プログラムの一例である。図2に示す動作は、カメラCAMで撮影される映像のフレーム毎に実行される。なお、図2に示す動作は、数フレームおきに実行されてもよい。
ステップS10では、特徴点抽出部200は、複数のカメラCAMから取得した画像の各々から自然特徴点を抽出する。
次に、ステップS20では、骨格抽出部300は、複数のカメラCAMから取得した画像の各々から人物の骨格点を抽出する。これにより、例えば、スポーツシーンの自由視点映像を自由視点映像生成システムSYSが生成する場合、試合中の選手の骨格点が骨格抽出部300により抽出される。
次に、ステップS30では、特徴点対応付け部400は、ステップS10で抽出された自然特徴点のうち、互いに隣接するカメラCAMで撮影された画像から抽出された自然特徴点を対応付けて画像間の第1対応点を決定する。これにより、互いに隣接するカメラCAMで撮影された画像間の対応点として、第1対応点(自然特徴点のペア)が特定される。
次に、ステップS40では、骨格対応付け部500は、ステップS20で抽出された骨格点のうち、互いに隣接するカメラCAMで撮影された画像から抽出された骨格点を対応付けて画像間の第2対応点を決定する。これにより、互いに隣接するカメラCAMで撮影された画像間の対応点として、第2対応点が、第1対応点(自然特徴点のペア)とは別に特定される。このように、推定装置10は、自然特徴点の他に骨格点を用いて画像間の対応点を特定するため、複数の選手が同じユニホームを着用するスポーツシーンにおいても、骨格点を抽出しない場合に比べて、人物(選手)を誤って対応付けることを抑制できる。
次に、ステップS50では、推定部600は、ステップS30で決定した画像間の第1対応点およびステップS40で決定した画像間の第2対応点に基づいて、カメラCAMの外部パラメータを推定する。推定装置10は、特徴点等の対応付けに骨格点を用いない場合に比べて、特徴点等の画像間の対応付けを正確にできるため、カメラCAMの外部パラメータをフレーム毎に精度よく推定できる。
なお、推定装置10の動作は、図2に示す例に限定されない。例えば、ステップS20の処理は、ステップS10の処理の前に実効されてもよい。あるいは、ステップS20の処理は、ステップS30の処理の後に実効されてもよい。
以上、図1および図2に示す実施形態では、推定装置10は、自然特徴点の他に、人物の骨格を、複数のカメラCAMから取得した画像の各々から抽出する。そして、推定装置10は、2つの画像から抽出された自然特徴点を対応付けて2つの画像間の第1対応点を決定する。さらに、推定装置10は、2つの画像から抽出された骨格を対応付けて2つの画像間の第2対応点を決定する。これにより、2つの画像間の対応点として、第1対応点および第2対応点が特定される。推定装置10は、自然特徴点の他に、骨格を用いて画像間の対応点を決定するため、特徴点等を誤って対応付けることを抑制でき、誤った対応点を用いてカメラCAMの外部パラメータを推定することを抑制できる。これにより、カメラCAMの外部パラメータの推定精度が低下することを抑制することができる。
なお、例えば、推定装置10は、カメラCAMの姿勢または位置が撮影期間中に変化した場合でも、カメラCAMの姿勢または位置が変化した後に取得した画像から、カメラCAMの外部パラメータを推定できる。したがって、推定装置10は、カメラCAMの姿勢または位置が撮影期間中に変化した場合でも、カメラCAMの外部パラメータを精度よく推定できる。
図3は、カメラの外部パラメータの推定方法、推定装置および推定プログラムの別の実施形態を示す。図1から図2で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図3に示す推定装置12は、例えば、複数のカメラCAMと自由視点映像生成部20とともに、自由視点映像生成システムSYSに含まれる。推定装置12は、図1で説明した推定装置10と同様に、カメラCAMの外部パラメータを推定するキャリブレーションを実行する。例えば、推定装置12は、被写体を互いに異なる位置から撮影する複数のカメラCAMの外部パラメータを推定し、推定した外部パラメータを自由視点映像生成部20に転送する。自由視点映像生成部20は、複数のカメラCAMでそれぞれ撮影された画像と推定装置12により推定されたカメラCAMの外部パラメータ等を用いて、自由視点映像を生成する。すなわち、推定装置12により推定されたカメラCAMの外部パラメータは、自由視点映像を生成するために用いられる。図3に示す例では、複数のカメラCAMは、被写体を囲むように配置され、カメラCAMaは、カメラCAMbとカメラCAMnとの間に配置され、カメラCAMbは、カメラCAMaとカメラCAMcとの間に配置される。
推定装置12は、図1に示したプロセッサ100の代わりにプロセッサ102を有することを除いて、図1に示した推定装置10と同一または同様である。例えば、推定装置12は、コンピュータ等の情報処理装置により実現され、プロセッサ102およびメモリ1000を有する。プロセッサ102およびメモリ1000は、バスBUSに接続される。また、メモリ1000には、後述する骨格抽出部302(302a、302b、302c、・・・、302n)に使用される学習データLDPが格納される。図3では、学習データLDPは、メモリ1000からバスBUSを介して各骨格抽出部302に転送されるため、各骨格抽出部302とバスBUSとの間のデータ経路の一部を破線で示す。なお、学習データLDPは、推定装置12の記憶装置のうちのメモリ1000以外の記憶装置に格納されてもよく、推定装置12の外部の記憶装置に格納されてもよい。
プロセッサ102は、例えば、メモリ1000に格納される推定プログラム(カメラCAMの外部パラメータの推定プログラム)を実行し、推定装置12の動作を制御する。なお、推定プログラムは、推定装置12の記憶装置のうちのメモリ1000以外の記憶装置に格納されてもよく、推定装置12の外部の記憶装置に格納されてもよい。また、推定プログラムは、CD−ROM、DVD、USBメモリ等のコンピュータにより読み取り可能な記録媒体RECに格納されてもよい。この場合、記録媒体RECに格納された推定プログラムは、推定装置12に設けられる図示しない入出力インタフェースを介して記録媒体RECからメモリ1000等に転送される。なお、推定プログラムは、記録媒体RECから図示しないハードディスクに転送された後、ハードディスクからメモリ1000に転送されてもよい。
推定装置12は、複数の特徴点抽出部202(202a、202b、202c、・・・、202n)と、複数の骨格抽出部302(302a、302b、302c、・・・、302n)とを有する。さらに、推定装置12は、複数の特徴点対応付け部402(402a、402b、402c、・・・、402n)と、複数の骨格対応付け部502(502a、502b、502c、・・・、502n)と、推定部602とを有する。
例えば、プロセッサ102は、推定プログラムを実行することにより、複数の特徴点抽出部202、複数の骨格抽出部302、複数の特徴点対応付け部402、複数の骨格対応付け部502および推定部602の機能を実現する。なお、複数の特徴点抽出部202、複数の骨格抽出部302、複数の特徴点対応付け部402、複数の骨格対応付け部502および推定部602は、ハードウェアのみで実現されてもよい。
複数の特徴点抽出部202の各々は、複数のカメラCAMの各々に対応して設けられ、対応するカメラCAMから画像を順次取得する。そして、各特徴点抽出部202は、対応するカメラCAMから取得した画像から、カメラCAMで撮影された空間の特徴点(自然特徴点)を抽出する。複数の特徴点抽出部202は、複数のカメラCAMの各々から取得した画像から、撮影された空間の特徴点を抽出する特徴点抽出部の一例である。
複数の骨格抽出部302の各々は、複数のカメラCAMの各々に対応して設けられ、対応するカメラCAMから画像を順次取得する。すなわち、複数の骨格抽出部302の各々は、複数の特徴点抽出部202の各々に対応して設けられ、対応する特徴点抽出部202に転送される画像を取得する。このように、各カメラCAMで撮影された画像は、対応する特徴点抽出部202および骨格抽出部302に転送される。そして、各骨格抽出部302は、対応するカメラCAMから取得した画像から、画像中の人物の骨格を抽出する。
例えば、各骨格抽出部302は、人物の画像データ等である学習データLDPを、バスBUSを介してメモリ1000から受ける。そして、各骨格抽出部302は、学習データLDPを用いた深層学習により、画像中の人物の関節の位置(骨格点)を人物の骨格として抽出する。なお、各骨格抽出部302は、深層学習以外の機械学習等により、画像中の人物の骨格点を抽出してもよい。複数の骨格抽出部302は、複数のカメラCAMの各々から取得した画像から人物の骨格を抽出する骨格抽出部の一例である。
複数の特徴点対応付け部402の各々は、互いに隣接するカメラCAMのペアに対応して設けられる。すなわち、複数の特徴点対応付け部402の各々は、特徴点抽出部202のペアに対応して設けられる。例えば、複数の特徴点対応付け部402の各々は、対応する特徴点抽出部202のペアの各々から、自然特徴点を示す特徴情報を受ける。そして、複数の特徴点対応付け部402は、複数のカメラCAMから取得した複数の画像のうちの2つの画像のペア毎に、2つの画像の一方から抽出した自然特徴点と2つの画像の他方から抽出した自然特徴点とを対応付けて2つの画像間の第1対応点を決定する。
例えば、特徴点対応付け部402aは、特徴点抽出部202a、202bのペアに対応して設けられる。この場合、特徴点対応付け部402aは、カメラCAMaで撮影された画像から抽出された自然特徴点を示す特徴情報を特徴点抽出部202aから受け、カメラCAMbで撮影された画像から抽出された自然特徴点を示す特徴情報を特徴点抽出部202bから受ける。そして、特徴点対応付け部402aは、特徴点抽出部202aにより抽出された自然特徴点と、特徴点抽出部202bにより抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点をペアにする。これにより、互いに隣接するカメラCAMa、CAMbでそれぞれ撮影された2つの画像間の第1対応点(自然特徴点のペア)が特定される。
同様に、特徴点対応付け部402bは、特徴点抽出部202b、202cのペアに対応して設けられる。この場合、特徴点対応付け部402bは、カメラCAMbで撮影された画像から抽出された自然特徴点を示す特徴情報を特徴点抽出部202bから受け、カメラCAMcで撮影された画像から抽出された自然特徴点を示す特徴情報を特徴点抽出部202cから受ける。そして、特徴点対応付け部402bは、特徴点抽出部202bにより抽出された自然特徴点と、特徴点抽出部202cにより抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点をペアにする。これにより、互いに隣接するカメラCAMb、CAMcでそれぞれ撮影された2つの画像間の第1対応点(自然特徴点のペア)が特定される。
また、特徴点対応付け部402nは、特徴点抽出部202n、202aのペアに対応して設けられる。この場合、特徴点対応付け部402nは、カメラCAMnで撮影された画像から抽出された自然特徴点を示す特徴情報を特徴点抽出部202nから受け、カメラCAMaで撮影された画像から抽出された自然特徴点を示す特徴情報を特徴点抽出部202aから受ける。そして、特徴点対応付け部402nは、特徴点抽出部202nにより抽出された自然特徴点と、特徴点抽出部202aにより抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点をペアにする。これにより、互いに隣接するカメラCAMn、CAMaでそれぞれ撮影された2つの画像間の第1対応点(自然特徴点のペア)が特定される。
複数の特徴点対応付け部402は、複数のカメラCAMから取得した複数の画像のうちの2つの画像のペア毎に、2つの画像間の第1対応点を決定する特徴点対応付け部の一例である。
複数の骨格対応付け部502の各々は、互いに隣接するカメラCAMのペアに対応して設けられる。すなわち、複数の骨格対応付け部502の各々は、骨格抽出部302のペアに対応して設けられる。例えば、複数の骨格対応付け部502の各々は、対応する骨格抽出部302のペアの各々から、画像中の人物の骨格(例えば、骨格点)を示す骨格情報を受ける。そして、複数の骨格対応付け部502は、複数のカメラCAMから取得した複数の画像のうちの2つの画像のペア毎に、2つの画像の一方から抽出した骨格と2つの画像の他方から抽出した骨格とを対応付けて2つの画像間の第2対応点を決定する。
例えば、骨格対応付け部502aは、骨格抽出部302a、302bのペアに対応して設けられる。この場合、骨格対応付け部502aは、カメラCAMaで撮影された画像から抽出された骨格点を示す骨格情報を骨格抽出部302aから受け、カメラCAMbで撮影された画像から抽出された骨格点を示す骨格情報を骨格抽出部302bから受ける。そして、骨格対応付け部502aは、骨格抽出部302aにより抽出された骨格点と、骨格抽出部302bにより抽出された骨格点との間で、同一人物の同じ関節の位置を示す骨格点をペアにする。これにより、互いに隣接するカメラCAMa、CAMbでそれぞれ撮影された2つの画像間の第2対応点(骨格点のペア)が特定される。
同様に、骨格対応付け部502bは、骨格抽出部302b、302cのペアに対応して設けられる。この場合、骨格対応付け部502bは、カメラCAMbで撮影された画像から抽出された骨格点を示す骨格情報を骨格抽出部302bから受け、カメラCAMcで撮影された画像から抽出された骨格点を示す骨格情報を骨格抽出部302cから受ける。そして、骨格対応付け部502bは、骨格抽出部302bにより抽出された骨格点と、骨格抽出部302cにより抽出された骨格点との間で、同一人物の同じ関節の位置を示す骨格点をペアにする。これにより、互いに隣接するカメラCAMb、CAMcでそれぞれ撮影された2つの画像間の第2対応点(骨格点のペア)が特定される。
また、骨格対応付け部502nは、骨格抽出部302n、302aのペアに対応して設けられる。この場合、骨格対応付け部502nは、カメラCAMnで撮影された画像から抽出された骨格点を示す骨格情報を骨格抽出部302nから受け、カメラCAMaで撮影された画像から抽出された骨格点を示す骨格情報を骨格抽出部302aから受ける。そして、骨格対応付け部502nは、骨格抽出部302nにより抽出された骨格点と、骨格抽出部302aにより抽出された骨格点との間で、同一人物の同じ関節の位置を示す骨格点をペアにする。これにより、互いに隣接するカメラCAMn、CAMaでそれぞれ撮影された2つの画像間の第2対応点(骨格点のペア)が特定される。
複数の骨格対応付け部502は、複数のカメラCAMから取得した複数の画像のうちの2つの画像のペア毎に、2つの画像間の第2対応点を決定する骨格対応付け部の一例である。推定装置12は、推定装置10と同様に、2つの画像間の対応点として、第1対応点(自然特徴点のペア)の他に、第2対応点(骨格点のペア)を特定する。したがって、推定装置12は、推定装置10と同様に、同一人物の特定に骨格点を用いない場合に比べて、特徴点等を誤って対応付けることを抑制できる。
推定部602は、互いに隣接するカメラCAMのペアに対応して設けられる外部パラメータ推定部620(620a、620b、620c、・・・、620n)を有する。したがって、複数の外部パラメータ推定部620の各々は、複数の特徴点対応付け部402の各々に対応するとともに、複数の骨格対応付け部502の各々に対応する。
複数の外部パラメータ推定部620の各々は、対応する特徴点対応付け部402から画像間の第1対応点(自然特徴点のペア)を示す情報を受け、対応する骨格対応付け部502から画像間の第2対応点(骨格点のペア)を示す情報を受ける。そして、複数の外部パラメータ推定部620の各々は、2つの画像間の第1対応点および第2対応点に基づいて、対応するカメラCAMの外部パラメータを推定する。
例えば、外部パラメータ推定部620aは、カメラCAMa、CAMbで撮影された画像間の第1対応点を示す情報を特徴点対応付け部402aから受け、カメラCAMa、CAMbで撮影された画像間の第2対応点を示す情報を骨格対応付け部502aから受ける。そして、外部パラメータ推定部620aは、カメラCAMa、CAMb間の位置関係等を示す回転行列および並進ベクトルを含むカメラCAMの外部パラメータを、カメラCAMa、CAMbで撮影された画像間の第1対応点および第2対応点に基づいて推定する。
同様に、外部パラメータ推定部620bは、カメラCAMb、CAMcで撮影された画像間の第1対応点を示す情報を特徴点対応付け部402bから受け、カメラCAMb、CAMcで撮影された画像間の第2対応点を示す情報を骨格対応付け部502bから受ける。そして、外部パラメータ推定部620bは、カメラCAMb、CAMc間の位置関係等を示す回転行列および並進ベクトルを含むカメラCAMの外部パラメータを、カメラCAMb、CAMcで撮影された画像間の第1対応点および第2対応点に基づいて推定する。
また、外部パラメータ推定部620nは、カメラCAMn、CAMaで撮影された画像間の第1対応点を示す情報を特徴点対応付け部402nから受け、カメラCAMn、CAMaで撮影された画像間の第2対応点を示す情報を骨格対応付け部502nから受ける。そして、外部パラメータ推定部620nは、カメラCAMn、CAMa間の位置関係等を示す回転行列および並進ベクトルを含むカメラCAMの外部パラメータを、カメラCAMn、CAMaで撮影された画像間の第1対応点および第2対応点に基づいて推定する。
そして、推定部602は、例えば、各外部パラメータ推定部620により推定されたカメラCAMの外部パラメータをバンドル調整により最適化して自由視点映像生成部20に転送する。このように、推定部602は、2つの画像間の第1対応点および第2対応点に基づいて、カメラCAMの外部パラメータを推定する。
なお、推定装置12の構成は、図3に示す例に限定されない。例えば、カメラCAMで撮影された画像を受信し、カメラCAMから受信した画像を特徴点抽出部202および骨格抽出部302にバスBUSを介して転送するインタフェースが推定装置12に含まれてもよい。また、例えば、プロセッサ102は、自由視点映像を生成するプログラムを実行することにより、自由視点映像生成部20の機能を実現してもよい。
図4は、図3に示した骨格抽出部302により抽出される骨格の一例を示す。骨格抽出部302は、画像IMG中の人物PNの関節の位置等を示す骨格点BP(図4に示す黒丸)を、学習データLDPを用いた深層学習により抽出する。なお、画像中の人物PNの関節の位置を推定する方法は、例えば、Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh, “Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields”, in arXiv 1611.08050, 2016、[平成29年9月4日検索]、インターネット<URL:
1511929379642_0.pdf
>に開示されている。
図5は、図3に示した推定装置12による画像IMGa、IMGb間の対応付けの一例を示す。なお、図5は、バスケットボールの試合を複数のカメラCAMで撮影して自由視点映像を生成する場合において、推定装置12が画像IMGa、IMGb間の対応付けを実行する例を示す。画像IMGaは、カメラCAMaで撮影された画像であり、画像IMGbは、カメラCAMbで撮影された画像である。
特徴点対応付け部402aは、画像IMGaから抽出された自然特徴点と画像IMGbから抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点をペアPC(PC1、PC2)にする。例えば、画像IMGa、IMGb間の自然特徴点のペアPC1(第1対応点)は、コート内に白線で描かれたフリースローレーンの角を示し、自然特徴点のペアPC2(第1対応点)は、バックボードの角を示す。
また、骨格対応付け部502aは、画像IMGaから抽出された骨格点BPと画像IMGbから抽出された骨格点BPとの間で、同一の人物PNの同じ関節の位置を示す骨格点BPをペアPP(PP1、PP2、PP3、PP4)にする。例えば、画像IMGa、IMGb間の骨格点BPのペアPP1(第2対応点)は、人物PN1(PN1a、PN1b)の膝を示し、骨格点BPのペアPP2(第2対応点)は、人物PN2(PN2a、PN2b)の肘を示す。また、画像IMGa、IMGb間の骨格点BPのペアPP3(第2対応点)は、人物PN3(PN3a、PN3b)の肩を示し、骨格点BPのペアPP4(第2対応点)は、人物PN4(PN4a、PN4b)の膝を示す。画像IMGa中の人物PN5aは、画像IMGbに写っていないため、対応付けされない。
なお、画像IMGa中の人物PNと画像IMGb中の人物PNとが同一人物か否かは、各人物PNの関節の角度θおよび関節間の長さLを含む人物情報に基づいて判定される。例えば、骨格対応付け部502aは、各画像IMGa、IMGbから抽出した骨格点BPに基づいて、各画像IMGa、IMGb中の各人物PNの関節の角度θおよび関節間の長さLを算出する。そして、骨格対応付け部502aは、画像IMGa中の着目する人物PNの関節の角度θおよび関節間の長さLのそれぞれと同じまたはほぼ同じ値の要素(角度θ、長さL)を有する画像IMGb中の人物PNを、着目する人物PNと同一であると判定する。
図5に示すかぎ括弧内には、人物PN1(PN1a、PN1b)の膝の角度θ0(θ0a、θ0b)、膝から股関節までの長さL1(L1a、L1b)および膝から足首までの長さL2(L2a、L2b)を算出する例を示す。骨格点BP0aは、画像IMGa中の人物PN1aの膝に対応する。また、骨格点BP1aは、人物PN1aの股関節に対応し、骨格点BP0aに隣接する骨格点BPである。骨格点BP2aは、人物PN1aの足首に対応し、骨格点BP0aに隣接する骨格点BPである。同様に、骨格点BP0bは、画像IMGb中の人物PN1bの膝に対応する。また、骨格点BP1bは、人物PN1bの股関節に対応し、骨格点BP0bに隣接する骨格点BPである。骨格点BP2bは、人物PN1bの足首に対応し、骨格点BP0bに隣接する骨格点BPである
例えば、骨格対応付け部502aは、人物PN1aの骨格点BP0a、BP1aを結ぶ線と骨格点BP0a、BP2aを結ぶ線との角度θ0aを、人物PN1aの膝の角度θ0aとして算出する。また、骨格対応付け部502aは、骨格点BP0a、BP1a間の長さL1aを、人物PN1aの膝から股関節までの長さL1aとして算出し、骨格点BP0a、BP2a間の長さL2aを、人物PN1aの膝から足首までの長さL2aとして算出する。同様に、骨格対応付け部502aは、骨格点BP0b、BP1b、BP2bを用いて、人物PN1bの膝の角度θ0b、膝から股関節までの長さL1bおよび膝から足首までの長さL2bを算出する。
なお、人物PN1a、PN1bの膝以外の関節の角度θおよび関節間の長さLも、膝の角度θ0、膝から股関節までの長さL1および膝から足首までの長さL2と同様の方法により算出される。これにより、人物PN毎に、複数の角度θおよび複数の長さLが算出される。骨格対応付け部502aは、例えば、人物PN1aの複数の角度θおよび複数の長さLを要素とする人物情報と画像IMGb中の各人物PNの人物情報との間で、互いに対応する要素(角度θ、長さL)の差分の絶対値和を対応付け評価値として算出する。そして、骨格対応付け部502aは、画像IMGa中の人物PN1aに対する画像IMGb中の複数の人物PNの対応付け評価値のうち、最小の対応付け評価値になる人物PN(図5に示す例では、人物PN1b)を、人物PN1aと同一と判定する。
そして、骨格対応付け部502aは、画像IMGa、IMGb間で同一人物と判定した人物PN1a、PN1bの骨格点BPのうち、互いに対応する部位を示す骨格点BPのペアPPを、画像IMGa、IMGb間の骨格点BPのペアPPに決定する。すなわち、骨格対応付け部502aは、人物情報を用いて、2つの画像IMGa、IMGbの一方から抽出した骨格点BPと2つの画像IMGa、IMGbの他方から抽出した骨格点BPとを対応付けて2つの画像IMGa、IMGb間の第2対応点を決定する。
このように、骨格対応付け部502aは、2つの画像IMGa、IMGb間で人物PNの関節の角度θおよび関節間の長さLが類似する人物PNを特定することにより、画像IMGa、IMGb間で同一人物を特定することができる。このため、一人分の空間より広い範囲を撮影対象とする場合、例えば、バスケットボール等のスポーツシーンにおいても、推定装置12は、同一人物の特定に骨格点BPを用いない場合に比べて、同一人物の特定精度を向上できる。例えば、同一人物の特定に骨格点BPを用いない場合、人物PN1、PN3が同じユニホームを着用しているため、人物PN1と人物PN3とで類似した特徴が抽出され、人物PN1aと人物PN3bとが同一人物と判定されるおそれがある。これに対し、推定装置12は、2つの画像IMGa、IMGb間で人物PNの関節の角度θおよび関節間の長さLが類似する人物PN1a、PN1bを特定するため、人物PN1aと人物PN3bが同一人物であると誤って判定することを抑制できる。すなわち、推定装置12は、同一人物の特定に骨格点BPを用いない場合に比べて、特徴点等を誤って対応付けることを抑制できる。
なお、推定装置12による画像IMGa、IMGb間の対応付けの方法は、図5に示す例に限定されない。例えば、骨格対応付け部502aは、画像IMGa中の人物PN1aに対する画像IMGb中の複数の人物PNの最小の対応付け評価値が予め決められた閾値以上の場合、人物PN1aと同一の人物PNは画像IMGb中に存在しないと判定してもよい。また、人物情報は、人物PNの関節の角度θおよび関節間の長さLの少なくとも一方を含んでいればよい。また、人物情報を用いた同一人物か否かの判定は、人物情報間の互いに対応する要素(角度θ、長さL)の差分の絶対値和を用いる方法に限定されない。
図6は、図3に示した推定装置12の動作の一例を示す。図6に示す動作は、カメラCAMの外部パラメータの推定方法の一例である。また、図6に示す動作をコンピュータ等の推定装置12に実行させるためのプログラムは、カメラCAMの外部パラメータの推定プログラムの一例である。図6に示す動作は、カメラCAMで撮影される映像のフレーム毎に実行される。なお、図6に示す動作は、数フレームおきに実行されてもよい。
ステップS100では、各特徴点抽出部202および各骨格抽出部302は、複数のカメラCAMのうちの対応するカメラCAMで撮影された画像IMGを取得する。例えば、特徴点抽出部202aおよび骨格抽出部302aは、カメラCAMaで撮影された画像IMGaを取得する。
次に、ステップS200では、各特徴点抽出部202は、複数のカメラCAMのうちの対応するカメラCAMで撮影された画像IMGから自然特徴点を抽出する。例えば、特徴点抽出部202aは、画像IMGaから自然特徴点を抽出する。
次に、ステップS300では、各骨格抽出部302は、複数のカメラCAMのうちの対応するカメラCAMで撮影された画像IMGから人物PNの骨格点BPを抽出する。例えば、骨格抽出部302aは、学習データLDPを用いた深層学習により、画像IMGaから人物PNの骨格点BPを抽出する。
次に、ステップS400では、推定装置12は、カメラCAMの外部パラメータを算出する第1算出処理を、互いに隣接するカメラCAMのペア毎に実行する。第1算出処理の詳細は、図7で説明する。第1算出処理により、カメラCAMの外部パラメータが、互いに隣接するカメラCAMのペア毎に算出される。なお、図7に示す第1算出処理では、人物PNを撮影していないカメラCAMの外部パラメータは、算出されない。
次に、ステップS500では、推定装置12は、互いに隣接するカメラCAMの全てのペアで第1算出処理が終了したか否かを判定する。互いに隣接するカメラCAMの全てのペアで第1算出処理が終了した場合、推定装置12の動作は、ステップS600に移る。一方、互いに隣接するカメラCAMの全てのペアのうちのいずれかのペアで第1算出処理が終了していない場合、推定装置12の動作は、ステップS500に戻る。すなわち、推定装置12は、互いに隣接するカメラCAMの全てのペアで第1算出処理が終了するまで、ステップS600の処理の実行を待機する。
ステップS600では、推定部602は、ステップS400の第1算出処理により算出された各カメラCAMの外部パラメータを最適化するバンドル調整を実行する。
次に、ステップS700では、推定部602は、カメラCAMの最終的な外部パラメータを決定する。例えば、推定部602は、ステップS600のバンドル調整により最適化された各カメラCAMの外部パラメータを、最終的な外部パラメータに決定する。そして、推定部602は、カメラCAMの最終的な外部パラメータを自由視点映像生成部20に転送する。このように、推定装置12は、カメラCAMで撮影される映像のフレーム毎に、カメラCAMの外部パラメータを推定し、推定したカメラCAMの外部パラメータを自由視点映像生成部20に転送する。
ここで、スポーツシーンにおいて、自由視点映像を生成する場合、カメラCAM間の位置関係等を推定するためにコート内に設置されたキャリブレーションボードを事前に撮影してカメラCAMの外部パラメータを計測する従来方法が知られている。この種の従来方法では、カメラCAMの外部パラメータが計測された後、試合の開始前までにキャリブレーションボードが撤去されるため、試合中にカメラCAMの外部パラメータを再計測することは困難である。したがって、従来方法では、試合中の選手の動き等により床が振動してカメラCAMの姿勢等が変化した場合、カメラCAMの外部パラメータは、事前に計測した値、すなわち、自由視点映像の生成に用いる外部パラメータの値から変化する。この場合、自由視点映像の品質は、試合中のカメラCAMの外部パラメータの値が事前に計測した値から変化しない場合に比べて低下する。
これに対し、推定装置12は、上述したように、カメラCAMで撮影される映像のフレーム毎に、カメラCAMの外部パラメータを推定する。あるいは、推定装置12は、数フレームおきに、カメラCAMの外部パラメータを推定する。このため、例えば、スポーツシーンにおいて、試合中の選手の動き等により床が振動してカメラCAMの姿勢等が変化した場合でも、推定装置12は、姿勢等の変化に応じたカメラCAMの外部パラメータを推定できる。すなわち、自由視点映像の生成に用いるカメラCAMの外部パラメータを従来方法に比べて精度よく推定することができる。この結果、自由視点映像の品質を従来方法に比べて向上させることができる。
なお、推定装置12の動作は、図6に示す例に限定されない。例えば、ステップS300の処理は、ステップS200の処理の前に実効されてもよい。
図7は、図6に示した第1算出処理(ステップS400)の一例を示す。なお、図7に示す第1算出処理は、互いに隣接するカメラCAMの1ペアに対する第1算出処理である。例えば、図7に示す第1算出処理は、互いに隣接するカメラCAMのペア毎に並列に実行される。なお、図7に示す第1算出処理は、互いに隣接するカメラCAMのペア毎に順次実行されてもよい。図7では、カメラCAMa、CAMbのペアに対する第1算出処理を説明する。
ステップS410では、骨格対応付け部502aは、カメラCAMa、CAMbのペアから取得した画像IMGa、IMGbの両方から人物PNの骨格点BPが抽出されたか否かを判定する。ペアの画像IMGa、IMGbの両方から人物PNの骨格点BPが抽出された場合、推定装置12の動作は、ステップS420に移る。一方、ペアの画像IMGa、IMGbの少なくとも一方から人物PNの骨格点BPが抽出されない場合、カメラCAMa、CAMbのペアに対する第1算出処理は、終了する。すなわち、推定装置12は、ペアの画像IMGa、IMGbの少なくとも一方から人物PNの骨格点BPが抽出されない場合、カメラCAMa、CAMb間の位置関係を示す外部パラメータを抽出しない。
ここで、スポーツシーンにおける自由視点映像の生成という観点では、選手(人物PN)が写っている領域の自由視点映像を精度よく生成できればよい。このため、スポーツシーンでは、選手(人物PN)の写っている領域が偏った場合、選手(人物PN)が存在する領域の特徴点に基づいたキャリブレーション(カメラCAMの外部パラメータの推定)ができればよい。すなわち、人物PNが存在しない領域の特徴点に基づいたキャリブレーション(カメラCAMの外部パラメータの推定)は、省かれてもよい。この場合、カメラCAMの外部パラメータの推定精度を複数のカメラCAMの撮影範囲全体で満遍なく向上する場合に比べて、カメラCAMの外部パラメータを推定するための演算量を低減することができる。
ステップS420では、特徴点対応付け部402aは、図6に示したステップS200で抽出された自然特徴点のうち、ペアの画像IMGa、IMGbから抽出された自然特徴点を対応付けて画像IMGa、IMGb間の第1対応点を決定する。例えば、特徴点対応付け部402aは、図5で説明したように、画像IMGaから抽出された自然特徴点と画像IMGbから抽出された自然特徴点との間で、同じ物体の特徴を示す自然特徴点のペアPCを、画像IMGa、IMGb間の第1対応点として決定する。これにより、画像IMGa、IMGb間の対応点として、第1対応点(自然特徴点のペアPC)が特定される。
次に、ステップS430では、骨格対応付け部502aは、図6に示したステップS300で抽出された骨格点BPのうち、ペアの画像IMGa、IMGbから抽出された骨格点BPを対応付けて画像IMGa、IMGb間の第2対応点を決定する。例えば、骨格対応付け部502aは、図5で説明したように、画像IMGaから抽出された骨格点BPと画像IMGbから抽出された骨格点BPとの間で、同一の人物PNの同じ関節の位置を示す骨格点BPのペアPPを特定する。そして、骨格対応付け部502aは、特定した骨格点BPのペアPPを、画像IMGa、IMGb間の第2対応点に決定する。これにより、画像IMGa、IMGb間の対応点として、第2対応点が、第1対応点(自然特徴点のペア)とは別に特定される。このように、推定装置12は、自然特徴点と骨格点BPとを用いて画像IMGa、IMGb間の対応点を特定する。このため、推定装置12は、複数の人物PN(選手)が同じユニホームを着用するスポーツシーンにおいても、骨格点BPを抽出しない場合に比べて、人物PNを誤って対応付けることを抑制できる。
次に、ステップS440では、外部パラメータ推定部620aは、8点アルゴリズムを用いて基礎行列を算出する。基礎行列は、カメラCAMの内部パラメータ(カメラCAMの焦点距離、画像IMGの中心座標等)の情報と、カメラCAMの外部パラメータ(2つのカメラCAM間の位置関係等を示す回転行列および並進ベクトル)の情報とを含む。
例えば、外部パラメータ推定部620aは、ステップS420で決定した画像IMGa、IMGb間の第1対応点およびステップS430で決定した画像IMGa、IMGb間の第2対応点から、8個の対応点を選択する。そして、外部パラメータ推定部620aは、選択した8個の対応点を用いて8点アルゴリズムを実行することにより、カメラCAMの内部パラメータおよび外部パラメータの情報を含む基礎行列を算出する。なお、外部パラメータ推定部620aは、8点の対応点の組み合わせを変更して8点アルゴリズを複数回実行して、基礎行列を算出してもよい。
次に、ステップS450では、外部パラメータ推定部620aは、特異値分解(SVD:Singular Value Decomposition)により基本行列を分解してカメラCAMの外部パラメータ(回転行列、並進ベクトル)を算出する。基本行列は、カメラCAMの内部パラメータと外部パラメータのうちの外部パラメータのみの情報を含み、2つのカメラCAM間の相対的な位置および姿勢を示す。
例えば、外部パラメータ推定部620aは、既知のカメラCAMの内部パラメータとステップS440で算出した基礎行列とに基づいて基本行列を算出する。そして、外部パラメータ推定部620aは、特異値分解(SVD)により基本行列を分解して、カメラCAMa、CAMb間の相対的な位置および姿勢を示す回転行列および並進ベクトルを算出する。これにより、カメラCAMの外部ベクトルが算出される。ステップS450の処理の終了により、カメラCAMa、CAMbのペアに対する第1算出処理は、終了する。
このように、外部パラメータ推定部620aは、ステップS420で決定した画像IMGa、IMGb間の第1対応点およびステップS430で決定した画像IMGa、IMGb間の第2対応点に基づいて、カメラCAMの外部パラメータを算出する。外部パラメータ推定部620aは、特徴点等の対応付けに骨格点BPを用いない場合に比べて、画像IMGa、IMGb間の対応点が正確に特定されるため、カメラCAMの外部パラメータをフレーム毎または数フレームおきに精度よく算出できる。
なお、第1算出処理は、図7に示す例に限定されない。例えば、外部パラメータ推定部620aは、ステップS440において、9個以上の対応点を用いて基礎行列を算出してもよい。
以上、図3から図7に示す実施形態においても、図1および図2に示した実施形態と同様の効果を得ることができる。例えば、推定装置12は、自然特徴点の他に、人物PNの骨格点BPを、複数のカメラCAMから取得した画像IMGの各々から抽出する。そして、推定装置12は、2つの画像IMGから抽出された自然特徴点を対応付けて2つの画像IMG間の第1対応点を決定する。さらに、推定装置12は、画像IMGから抽出した骨格点BPに基づいて、人物PNの関節の角度θおよび関節間の長さLの少なくとも一方を含む人物情報を生成する。そして、推定装置12は、人物情報を用いて、2つの画像IMGの一方から抽出した骨格点BPと2つの画像IMGの他方から抽出した骨格点BPとを対応付けて2つの画像IMG間の第2対応点を決定する。これにより、2つの画像IMG間の対応点として、第1対応点および第2対応点が特定される。推定装置12は、自然特徴点と骨格点BPとを用いて画像IMG間の対応点を決定するため、特徴点等を誤って対応付けることを抑制でき、誤った対応点を用いてカメラCAMの外部パラメータを推定することを抑制できる。これにより、カメラCAMの外部パラメータの推定精度が低下することを抑制することができる。
また、例えば、推定装置12は、スポーツシーンにおいて、カメラCAMの姿勢または位置が試合中に変化した場合でも、カメラCAMの姿勢または位置が変化した後に取得した画像IMGから、カメラCAMの外部パラメータを推定できる。したがって、推定装置12は、カメラCAMの姿勢または位置が変化した場合でも、カメラCAMの姿勢または位置の変化に応じて、カメラCAMの外部パラメータを精度よく推定できる。すなわち、推定装置12は、カメラCAMの姿勢または位置が撮影期間中に変化した場合でも、カメラCAMの外部パラメータを精度よく推定できる。
図8は、カメラの外部パラメータの推定方法、推定装置および推定プログラムの別の実施形態を示す。図1から図7で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図8に示す推定装置14は、例えば、複数のカメラCAMと自由視点映像生成部20とともに、自由視点映像生成システムSYSに含まれる。推定装置14は、図3で説明した推定装置12と同様に、カメラCAMの外部パラメータを推定するキャリブレーションを実行する。例えば、推定装置14は、被写体を互いに異なる位置から撮影する複数のカメラCAMの外部パラメータを推定し、推定した外部パラメータを自由視点映像生成部20に転送する。自由視点映像生成部20は、複数のカメラCAMでそれぞれ撮影された画像IMGと推定装置14により推定されたカメラCAMの外部パラメータ等を用いて、自由視点映像を生成する。すなわち、推定装置14により推定されたカメラCAMの外部パラメータは、自由視点映像を生成するために用いられる。図8に示す例では、複数のカメラCAMは、図3に示した複数のカメラCAMと同様に、被写体を囲むように配置される。なお、図8では、図を見やすくするために、図3に示したカメラCAMn等の記載を省略している。
推定装置14は、図3に示したプロセッサ102の代わりにプロセッサ104を有することを除いて、図3に示した推定装置12と同一または同様である。例えば、推定装置14は、コンピュータ等の情報処理装置により実現され、プロセッサ104およびメモリ1000を有する。プロセッサ104およびメモリ1000は、バスBUSに接続される。なお、メモリ1000には、学習データLDPの他に、後述する追加特徴抽出部320(320a、320b、・・・)に使用される学習データLDAが格納される。
図8では、図3と同様に、各骨格抽出部302とバスBUSとの間のデータ経路の一部を破線で示す。また、図8では、学習データLDAは、メモリ1000からバスBUSを介して各追加特徴抽出部320に転送されるため、各追加特徴抽出部320とバスBUSとの間のデータ経路の一部を破線で示す。なお、学習データLDP、LDAは、推定装置14の記憶装置のうちのメモリ1000以外の記憶装置に格納されてもよく、推定装置14の外部の記憶装置に格納されてもよい。
プロセッサ104は、例えば、メモリ1000に格納される推定プログラム(カメラCAMの外部パラメータの推定プログラム)を実行し、推定装置14の動作を制御する。なお、推定プログラムは、推定装置14の記憶装置のうちのメモリ1000以外の記憶装置に格納されてもよく、推定装置14の外部の記憶装置に格納されてもよい。また、推定プログラムは、CD−ROM、DVD、USBメモリ等のコンピュータにより読み取り可能な記録媒体RECに格納されてもよい。この場合、記録媒体RECに格納された推定プログラムは、推定装置14に設けられる図示しない入出力インタフェースを介して記録媒体RECからメモリ1000等に転送される。なお、推定プログラムは、記録媒体RECから図示しないハードディスクに転送された後、ハードディスクからメモリ1000に転送されてもよい。
プロセッサ104は、図3に示したプロセッサ102と同様に、推定プログラムを実行することにより、複数の特徴点抽出部202等の機能を実現する。なお、プロセッサ104は、図3に示した複数の骨格対応付け部502の代わりに複数の骨格対応付け部504(504a、504b、・・・)の機能を実現する。さらに、プロセッサ104は、図3に示したプロセッサ102が実現する機能に追加して、複数の追加特徴抽出部320(320a、320b、・・・)および複数の対応付け補助部520(520a、520b、・・・)の機能を実現する。なお、複数の特徴点抽出部202、複数の骨格抽出部302、複数の追加特徴抽出部320、複数の特徴点対応付け部402、複数の骨格対応付け部504、複数の対応付け補助部520および推定部602は、ハードウェアのみで実現されてもよい。
このように、推定装置14では、複数の骨格対応付け部504が図3に示した複数の骨格対応付け部502の代わりに設けられ、複数の追加特徴抽出部320および複数の対応付け補助部520が図3に示した推定装置12に追加される。推定装置14のその他の構成は、図3に示した推定装置12と同一または同様である。例えば、推定装置14は、複数の特徴点抽出部202、複数の骨格抽出部302、複数の追加特徴抽出部320、複数の特徴点対応付け部402、複数の骨格対応付け部504、複数の対応付け補助部520および推定部602を有する。
複数の特徴点抽出部202の各々は、図3に示した複数の特徴点抽出部202の各々と同一または同様である。複数の骨格抽出部302の各々は、図3に示した複数の骨格抽出部302の各々と同一または同様である。複数の特徴点対応付け部402の各々は、図3に示した複数の特徴点対応付け部402の各々と同一または同様である。
複数の追加特徴抽出部320の各々は、複数のカメラCAMの各々に対応して設けられ、対応するカメラCAMから画像IMGを順次取得する。すなわち、複数の追加特徴抽出部320の各々は、複数の特徴点抽出部202の各々に対応して設けられ、対応する特徴点抽出部202に転送される画像IMGを取得する。このように、各カメラCAMで撮影された画像IMGは、対応する特徴点抽出部202、骨格抽出部302および追加特徴抽出部320に転送される。そして、各追加特徴抽出部320は、対応するカメラCAMから取得した画像IMGから、骨格以外の人物PNの特徴を示す追加特徴点を抽出する。
追加特徴点は、例えば、人物PNの顔を示す顔特徴点および人物PNに着用された服飾を示す服飾特徴点の少なくとも1つを含む。また、服飾特徴点は、例えば、服飾上に設けられ、人物PNを識別する識別情報と、人物PNに着用されたシューズとの少なくとも1つを示す。例えば、識別情報は、背番号および人物PNの名前のいずれかである。なお、複数のカメラCAMにより球技が撮影される場合、追加特徴点は、ボールを示すボール特徴点を含んでもよい。
各追加特徴抽出部320は、例えば、人物PNの顔の画像データ、人物PNに着用された服飾の画像データ等を含む学習データLDAを、バスBUSを介してメモリ1000から受ける。そして、各追加特徴抽出部320は、学習データLDAに基づいて、画像IMG中の人物PNの顔を示す顔特徴点および人物PNに着用された服飾を示す服飾特徴点の少なくとも1つを含む追加特徴点を抽出する。
なお、各追加特徴抽出部320は、複数のカメラCAMにより球技が撮影される場合、ボールを示すボール特徴点を追加特徴点として抽出してもよい。例えば、各追加特徴抽出部320は、人物PNの顔の画像データ、服飾の画像データおよびボールの画像データ等を含む学習データLDAに基づいて、画像IMG中の人物PNの顔特徴点、服飾特徴点およびボール特徴点等を追加特徴点として抽出してもよい。
ここで、画像中の人物PNの顔を認識する方法は、例えば、Peiyun Hu, Deva Ramanan, “Finding Tiny Faces”, in arXiv pre-print 1612.04402, 2016、[平成29年9月4日検索]、インターネット<URL:
1511929379642_1.pdf
>に開示されている。
複数の対応付け補助部520の各々は、互いに隣接するカメラCAMのペアに対応して設けられる。すなわち、複数の対応付け補助部520の各々は、追加特徴抽出部320のペアに対応して設けられる。例えば、各対応付け補助部520は、対応する追加特徴抽出部320のペアの各々から、画像IMG中の人物PNの追加特徴点(例えば、人物PNの顔、人物PNに着用された服飾等)を示す追加特徴情報を受ける。そして、各対応付け補助部520は、追加特徴抽出部320のペアの一方から受けた追加情報で示される追加特徴点と追加特徴抽出部320のペアの他方から受けた追加情報で示される追加特徴点とを対応付けて2つの画像IMG間の追加対応点を決定する。例えば、対応付け補助部520aは、追加特徴抽出部320aにより抽出された追加特徴点と、追加特徴抽出部320bにより抽出された追加特徴点との間で、類似する特徴(類似する顔、類似する服飾等)をペアにする。これにより、互いに隣接するカメラCAMa、CAMbでそれぞれ撮影された2つの画像IMG間の追加対応点(追加特徴点のペア)が特定される。複数の対応付け補助部520の各々は、対応する骨格対応付け部504に追加対応点を示す情報を転送する。
複数の骨格対応付け部504の各々は、対応する対応付け補助部520で決定された追加対応点を2つの画像IMG間の第2対応点の決定に用いることを除いて、図3に示した複数の骨格対応付け部502の各々と同一または同様である。すなわち、複数の骨格対応付け部504の各々は、2つの画像IMG間の追加対応点を用いて、2つの画像IMGの一方から抽出された骨格点BPと2つの画像IMGの他方から抽出された骨格点BPとを対応付けて2つの画像IMG間の第2対応点を決定する。例えば、各骨格対応付け部504は、2つの画像IMG間の追加対応点により対応付けられた人物PNに対しては、対応付けられた人物PN間の対応付け評価値(関節の角度θ等の差分の絶対値和)に基づいて、同一人物か否かを判定する。なお、各骨格対応付け部504は、追加特徴点の対応付け先が互いに存在しない人物PNに対しては、追加特徴点の対応付け先が互いに存在しない人物PN間の対応付け評価値(関節の角度θ等の差分の絶対値和)に基づいて、同一人物か否かを判定してもよい。
例えば、図5に示した画像IMGa中の人物PN5aの背番号と画像IMGb中の人物PN3bの背番号とが異なる場合、人物PN5aの追加特徴点と人物PN3bの追加特徴点とはペアにならない。なお、画像IMGb中の人物PN3bの追加特徴点は、背番号が一致する画像IMGa中の人物PN3aの追加特徴点と対応付けられる。関節の角度θおよび関節間の長さLが人物PN5a、PN3b間で類似する場合でも、人物PN3bの追加特徴点が人物PN5a以外の人物PN3aの追加特徴点に対応付けられているため、人物PN5aと人物PN3bとが同一人物とは判定されない。この場合、骨格対応付け部504aは、人物PN3aの追加特徴点と人物PN3bの追加特徴点とが対応付けられ、かつ、関節の角度θおよび関節間の長さLが人物PN3a、PN3b間で類似するため、人物PN3aと人物PN3bとが同一人物と判定する。骨格対応付け部504aは、画像IMGa、IMGb間の追加対応点を用いることにより、人物PN5aと人物PN3bとが同一人物であると誤って判定することを抑制できる。
また、例えば、図5に示す画像IMGa、IMGbにおいて、ボール特徴点が抽出された場合、対応付け補助部520aは、画像IMGa中の人物PN1aが保持するボールと画像IMGb中の人物PN1bが保持するボールとを対応付ける。これにより、画像IMGa、IMGb間のボール特徴点のペアが画像IMGa、IMGb間の追加対応点として特定される。この結果、例えば、人物PN1の体型および姿勢に類似する人物PNが存在する場合でも、骨格対応付け部504aは、ボール特徴点のペア(追加対応点)に基づいて、画像IMGa中の人物PN1aと画像IMGb中の人物PN1bとを対応付けることができる。
このように、推定装置14は、追加特徴点を用いて、2つの画像IMG間の第2対応点を決定する。
推定部602は、図3に示した推定部602と同一または同様である。すなわち、推定部602が有する複数の外部パラメータ推定部620の各々は、図3に示した複数の外部パラメータ推定部620の各々と同一または同様である。
なお、推定装置14の構成は、図8に示す例に限定されない。例えば、カメラCAMで撮影された画像IMGを受信し、カメラCAMから受信した画像IMGを特徴点抽出部202、骨格抽出部302および追加特徴抽出部320にバスBUSを介して転送するインタフェースが推定装置14に含まれてもよい。また、追加特徴抽出部320は、複数のカメラCAMにより球技が撮影されるか否かに拘わらず、ボールを示すボール特徴点を抽出するための処理を実行してもよい。また、例えば、プロセッサ104は、自由視点映像を生成するプログラムを実行することにより、自由視点映像生成部20の機能を実現してもよい。
図9は、図8に示した推定装置14の動作の一例を示す。図9に示す動作は、カメラCAMの外部パラメータの推定方法の一例である。また、図9に示す動作をコンピュータ等の推定装置14に実行させるためのプログラムは、カメラCAMの外部パラメータの推定プログラムの一例である。図9に示す動作は、カメラCAMで撮影される映像のフレーム毎に実行される。なお、図9に示す動作は、数フレームおきに実行されてもよい。図6で説明したステップと同一または同様のステップについては、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
図9に示す動作は、図6に示したステップS400の第1算出処理の代わりにステップS402の第1算出処理が実行されることを除いて、図6に示した動作と同一または同様である。ステップS402の第1算出処理は、2つの画像IMG間の第2対応点の決定に追加特徴点を用いることを除いて、図6に示したステップS400の第1算出処理と同一または同様である。ステップS402の第1算出処理の詳細は、図10で説明する。
図10は、図9に示した第1算出処理(ステップS402)の一例を示す。なお、図10に示す第1算出処理は、互いに隣接するカメラCAMの1ペアに対する第1算出処理である。例えば、図10に示す第1算出処理は、互いに隣接するカメラCAMのペア毎に並列に実行される。なお、図10に示す第1算出処理は、互いに隣接するカメラCAMのペア毎に順次実行されてもよい。図7で説明したステップと同一または同様のステップについては、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
図10に示す第1算出処理では、ステップS412の処理が図7に示した第1算出処理に追加される。そして、図10に示す第1算出処理は、図7に示したステップS430の処理の代わりにステップS432の処理を含む。図10に示す第1算出処理のその他の処理は、図7に示した第1算出処理と同一または同様である。図10では、図7と同様に、カメラCAMa、CAMbのペアに対する第1算出処理を説明する。
ステップS410において、カメラCAMa、CAMbのペアから取得した画像IMGa、IMGbの両方から人物PNの骨格点BPが抽出されたと骨格対応付け部504aが判定した場合、推定装置14は、ステップS412の処理を実行する。なお、ペアの画像IMGa、IMGbの少なくとも一方から人物PNの骨格点BPが抽出されない場合、図7で説明したように、カメラCAMa、CAMbのペアに対する第1算出処理は、終了する。
ステップS412では、追加特徴抽出部320aは、カメラCAMaで撮影された画像IMGaから追加特徴点(例えば、人物PNの顔、人物PNに着用された服飾等を示す特徴点)を抽出する。例えば、追加特徴抽出部320aは、学習データLDAに基づいて、画像IMGa中の人物PNの顔を示す顔特徴点および人物PNに着用された服飾を示す服飾特徴点の少なくとも1つを含む追加特徴点を抽出する。ステップS412の処理が実行された後、推定装置14の動作は、ステップS420に移る。そして、ステップS420の処理が実行された後、推定装置14の動作は、ステップS432に移る。
ステップS432では、骨格対応付け部504aは、ステップS412で抽出された追加特徴点を用いて、ペアの画像IMGa、IMGbの各々から抽出された骨格点BPを対応付けて画像IMGa、IMGb間の第2対応点を決定する。例えば、骨格対応付け部504aは、図8で説明したように、画像IMGa、IMGb間の追加対応点を用いて、画像IMGaから抽出された骨格点BPと画像IMGbから抽出された骨格点BPとを対応付けて画像IMGa、IMGb間の第2対応点を決定する。これにより、画像IMGa、IMGb間の対応点として、第2対応点が、第1対応点とは別に特定される。骨格対応付け部504aは、画像IMGa、IMGb間の追加特徴点のペアを用いて骨格点BPの対応付けを決定するため、体型および姿勢が類似する人物PNが存在する場合でも、追加特徴点を用いない場合に比べて、骨格点BPの対応付けを正確にできる。
ステップS432の処理が実行された後、推定装置14の動作は、ステップS440に移る。そして、ステップS440の処理が実行された後、推定装置14の動作は、ステップS450に移る。ステップS450の処理の終了により、カメラCAMa、CAMbのペアに対する第1算出処理は、終了する。
推定装置14は、追加特徴点を第2対応点の決定に用いない場合に比べて、画像IMGa、IMGb間の第2対応点を正確に特定できるため、カメラCAMの外部パラメータをフレーム毎または数フレームおきに精度よく算出できる。なお、第1算出処理は、図10に示す例に限定されない。例えば、ステップS420の処理は、ステップS412の処理より前に実効されてもよい。
以上、図8から図10に示す実施形態においても、図1から図7に示した実施形態と同様の効果を得ることができる。例えば、推定装置14は、自然特徴点の他に、人物PNの骨格点BPを用いて画像IMG間の対応点を決定するため、特徴点等を誤って対応付けることを抑制でき、誤った対応点を用いてカメラCAMの外部パラメータを推定することを抑制できる。
さらに、推定装置14は、自然特徴点および骨格点BPの他に、骨格点BP以外の人物PNの特徴を示す追加特徴点を複数のカメラCAMから取得した画像IMGの各々から抽出する。そして、推定装置14は、人物PNの関節の角度θおよび関節間の長さLの少なくとも一方を含む人物情報と、人物PNの追加特徴点とを用いて、2つの画像IMG間で骨格点BPを対応付けて2つの画像IMG間の第2対応点を決定する。これにより、推定装置14は、追加特徴点を第2対応点の決定に用いない場合に比べて、2つの画像IMG間の第2対応点を正確に特定できる。すなわち、推定装置14は、誤った第2対応点等を用いてカメラCAMの外部パラメータを推定することを抑制できる。この結果、カメラCAMの外部パラメータの推定精度が低下することを抑制することができる。
また、例えば、推定装置14は、スポーツシーンにおいて、カメラCAMの姿勢または位置が試合中に変化した場合でも、カメラCAMの姿勢または位置が変化した後に取得した画像IMGから、カメラCAMの外部パラメータを推定できる。したがって、推定装置14は、カメラCAMの姿勢または位置が変化した場合でも、カメラCAMの姿勢または位置の変化に応じて、カメラCAMの外部パラメータを精度よく推定できる。すなわち、推定装置12は、カメラCAMの姿勢または位置が撮影期間中に変化した場合でも、カメラCAMの外部パラメータを精度よく推定できる。
以上の実施形態において説明した発明を整理して、付記として以下の通り開示する。
(付記1)
被写体を互いに異なる位置から撮影する複数のカメラの外部パラメータを推定する推定方法において、
前記複数のカメラの各々から取得した画像から、撮影された空間の特徴点を抽出し、
前記複数のカメラの各々から取得した画像から人物の骨格を抽出し、
前記複数のカメラから取得した複数の画像のうちの2つの画像のペア毎に、前記2つの画像の一方から抽出した前記特徴点と前記2つの画像の他方から抽出した前記特徴点とを対応付けて前記2つの画像間の第1対応点を決定し、
前記2つの画像のペア毎に、前記2つの画像の一方から抽出した前記骨格と前記2つの画像の他方から抽出した前記骨格とを対応付けて前記2つの画像間の第2対応点を決定し、
前記2つの画像間の前記第1対応点および前記第2対応点に基づいて、カメラの外部パラメータを推定する
ことを特徴とする推定方法。
(付記2)
付記1に記載の推定方法において、
画像から抽出した前記骨格に基づいて、人物の関節の角度および関節間の長さの少なくとも一方を含む人物情報を生成し、
前記人物情報を用いて、前記2つの画像の一方から抽出した前記骨格と前記2つの画像の他方から抽出した前記骨格とを対応付けて前記2つの画像間の前記第2対応点を決定する
ことを特徴とするカメラの外部パラメータの推定方法。
(付記3)
付記1または付記2に記載の推定方法において、
前記複数のカメラの各々から取得した画像から、前記骨格以外の人物の特徴を示す追加特徴点を抽出し、
前記追加特徴点を用いて、前記2つの画像の一方から抽出した前記骨格と前記2つの画像の他方から抽出した前記骨格とを対応付けて前記2つの画像間の前記第2対応点を決定する
ことを特徴とするカメラの外部パラメータの推定方法。
(付記4)
付記3に記載の推定方法において、
前記追加特徴点は、人物の顔を示す顔特徴点および人物に着用された服飾を示す服飾特徴点の少なくとも1つを含む
ことを特徴とする推定方法。
(付記5)
付記4に記載の推定方法において、
前記服飾特徴点は、前記服飾上に設けられ、人物を識別する識別情報と、人物に着用されたシューズとの少なくとも1つを示す
ことを特徴とする推定方法。
(付記6)
付記5に記載の推定方法において、
前記識別情報は、背番号および人物の名前のいずれかである
ことを特徴とする推定方法。
(付記7)
付記3ないし付記6のいずれか1項に記載の推定方法において、
前記複数のカメラにより球技が撮影される場合、前記追加特徴点は、ボールを示すボール特徴点を含む
ことを特徴とするカメラの外部パラメータの推定方法。
(付記8)
付記1ないし付記7のいずれか1項に記載の推定方法において、
前記外部パラメータは、任意の視点の自由視点映像を生成するために用いられる
ことを特徴とする推定方法。
(付記9)
被写体を互いに異なる位置から撮影する複数のカメラの外部パラメータを推定する推定装置において、
前記複数のカメラの各々から取得した画像から、撮影された空間の特徴点を抽出する特徴点抽出部と、
前記複数のカメラの各々から取得した画像から人物の骨格を抽出する骨格抽出部と、
前記複数のカメラから取得した複数の画像のうちの2つの画像のペア毎に、前記2つの画像の一方から抽出した前記特徴点と前記2つの画像の他方から抽出した前記特徴点とを対応付けて前記2つの画像間の第1対応点を決定する特徴点対応付け部と、
前記2つの画像のペア毎に、前記2つの画像の一方から抽出した前記骨格と前記2つの画像の他方から抽出した前記骨格とを対応付けて前記2つの画像間の第2対応点を決定する骨格対応付け部と、
前記2つの画像間の前記第1対応点および前記第2対応点に基づいて、カメラの外部パラメータを推定する推定部と
を有することを特徴とする推定装置。
(付記10)
被写体を互いに異なる位置から撮影する複数のカメラの外部パラメータの推定プログラムにおいて、
前記複数のカメラの各々から取得した画像から、撮影された空間の特徴点を抽出し、
前記複数のカメラの各々から取得した画像から人物の骨格を抽出し、
前記複数のカメラから取得した複数の画像のうちの2つの画像のペア毎に、前記2つの画像の一方から抽出した前記特徴点と前記2つの画像の他方から抽出した前記特徴点とを対応付けて前記2つの画像間の第1対応点を決定し、
前記2つの画像のペア毎に、前記2つの画像の一方から抽出した前記骨格と前記2つの画像の他方から抽出した前記骨格とを対応付けて前記2つの画像間の第2対応点を決定し、
前記2つの画像間の前記第1対応点および前記第2対応点に基づいて、カメラの外部パラメータを推定する
処理をコンピュータに実行させるための推定プログラム。
(付記11)
被写体を互いに異なる位置から撮影する複数のカメラの外部パラメータの推定プログラムを記録した記録媒体であって、
前記複数のカメラの各々から取得した画像から、撮影された空間の特徴点を抽出し、
前記複数のカメラの各々から取得した画像から人物の骨格を抽出し、
前記複数のカメラから取得した複数の画像のうちの2つの画像のペア毎に、前記2つの画像の一方から抽出した前記特徴点と前記2つの画像の他方から抽出した前記特徴点とを対応付けて前記2つの画像間の第1対応点を決定し、
前記2つの画像のペア毎に、前記2つの画像の一方から抽出した前記骨格と前記2つの画像の他方から抽出した前記骨格とを対応付けて前記2つの画像間の第2対応点を決定し、
前記2つの画像間の前記第1対応点および前記第2対応点に基づいて、カメラの外部パラメータを推定する
処理をコンピュータに実行させるための推定プログラムを記録した記録媒体。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。