(57)【要約】【課題】  複数の撮像装置が、それぞれ屈折率が異なる物質により満たされた複数の領域の境界面に対して両側に位置する場合であっても、共通の座標系における当該複数の撮像装置の位置を特定できるようにする。【解決手段】  キャリブレーション部５００は、空気中と水中との境界である水面を少なくとも一部含む撮像領域を撮像する複数のカメラ１１０のうち、水面より上側に位置するカメラ１１０ａにより取得された画像から、空気中のマーカ８１０ａを検出する。またキャリブレーション部５００は、水面より下側に位置するカメラ１１０ｗにより取得された画像から、水中のマーカ８１０ｗを検出する。そしてキャリブレーション部５００は、これらの検出結果と、空中マーカ８１０ａと水中マーカ８１０ｗの位置又は位置関係を示す位置情報とに基づいて、共通の座標系における複数のカメラ１１０の位置を特定する。【選択図】  図５
2020182079.tif 000002
【特許請求の範囲】
【請求項１】
第１領域と、前記第１領域を満たす物質とは屈折率が異なる物質で満たされた第２領域との境界面を少なくとも一部含む撮像領域を撮像する複数の撮像装置のうち、前記境界面に対して前記第１領域側に位置する撮像装置により取得された画像から、前記第１領域内の所定の第１オブジェクトを検出する第１検出手段と、
前記複数の撮像装置のうち前記境界面に対して前記第２領域側に位置する撮像装置により取得された画像から、前記第２領域内の所定の第２オブジェクトを検出する第２検出手段と、
前記第１オブジェクトと前記第２オブジェクトの位置、及び、前記第１オブジェクトと前記第２オブジェクトの位置関係の、少なくとも何れかを示す位置情報を取得する取得手段と、
前記第１検出手段による検出結果と前記第２検出手段による検出結果と前記取得手段により取得された位置情報とに基づいて、共通の座標系における前記複数の撮像装置の位置を特定する特定手段とを有することを特徴とする情報処理装置。
【請求項２】
前記第１検出手段は、前記第１領域内に設置された撮像装置により取得された画像から前記第１オブジェクトを検出し、
前記第２検出手段は、前記第２領域内に設置された撮像装置により取得された画像から前記第２オブジェクトを検出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１領域を満たす物質と前記第２領域を満たす物質は流体であることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１領域を満たす物質は空気であり、前記第２領域を満たす物質は液体であることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記特定手段は、
前記第１検出手段による検出結果に基づいて、前記境界面に対して前記第１領域側に位置する撮像装置の第１座標系における位置を示す第１情報を取得し、
前記第２検出手段による検出結果に基づいて、前記境界面に対して前記第２領域側に位置する撮像装置の第２座標系における位置を示す第２情報を取得し、
前記取得手段により取得された位置情報に基づいて前記第１情報と前記第２情報との少なくとも何れかを変換することで、前記共通の座標系における前記複数の撮像装置の位置を特定することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記第１オブジェクトと前記第２オブジェクトは、前記第１領域と前記第２領域とに跨って存在する物体のそれぞれ異なる部分に位置することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記物体は前記境界面に位置することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第１オブジェクトと前記第２オブジェクトは、互いに異なる内容の２次元マーカであることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記第１オブジェクトとしてのマーカは、当該マーカが前記第１領域内に位置することを特定可能な情報を表すことを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記第１オブジェクトとしてのマーカは、当該マーカの傾きを特定可能な情報を表すことを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
前記境界面に対して前記第１領域側に位置する撮像装置により取得された画像には、前記第１オブジェクトと前記第２オブジェクトとが含まれ、
前記特定手段により用いられる前記第１検出手段による検出結果は、前記第１オブジェクトの検出結果であることを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記第１検出手段は、前記境界面に対して前記第１領域側に位置する撮像装置により取得された画像から、前記第１オブジェクトと前記第２オブジェクトとを検出し、
前記特定手段により用いられる前記第１検出手段による検出結果は、前記第１オブジェクトの検出結果と前記第２オブジェクトの検出結果とを含むことを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１３】
前記特定手段はさらに、前記共通の座標系における前記複数の撮像装置の向きを特定することを特徴とする請求項１乃至１２の何れか１項に記載の情報処理装置。
【請求項１４】
前記複数の撮像装置は、前記境界面に対して前記第１領域側に位置する第１撮像装置群と、前記境界面に対して前記第２領域側に位置する第２撮像装置群を有し、
前記第１検出手段は、前記第１撮像装置群により取得された複数の画像から前記第１オブジェクトを検出し、
前記第２検出手段は、前記第２撮像装置群により取得された複数の画像から前記第２オブジェクトを検出し、
前記特定手段は、前記第１検出手段による複数の画像からの前記第１オブジェクトの検出結果と、前記第２検出手段による複数の画像からの前記第２オブジェクトの検出結果と、前記取得手段により取得された位置情報とに基づいて、前記共通の座標系における前記複数の撮像装置の位置を特定することを特徴とする請求項１乃至１３の何れか１項に記載の情報処理装置。
【請求項１５】
前記複数の撮像装置は、それぞれ異なる方向から撮像することで、仮想視点画像の生成に用いられる複数の画像を取得することを特徴とする請求項１乃至１４の何れか１項に記載の情報処理装置。
【請求項１６】
複数の撮像装置のうち第１領域内に位置する第１撮像装置群により前記第１領域内のオブジェクトを撮像することで得られる画像と、前記複数の撮像装置のうち前記第１領域を満たす物質とは屈折率が異なる物質で満たされた第２領域内に位置する第２撮像装置群により前記第２領域内のオブジェクトを撮像することで得られる画像とに基づいて、前記複数の撮像装置のキャリブレーションを行う処理手段と、
前記処理手段によるキャリブレーションにより得られた情報と、前記複数の撮像装置により複数の方向から撮像することで得られる複数の画像と、仮想視点の位置及び向きを示す視点情報とに基づいて、仮想視点画像を生成する生成手段とを有することを特徴とする情報処理システム。
【請求項１７】
前記第１領域を満たす物質は空気であり、前記第２領域を満たす物質は液体であることを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
第１領域と、前記第１領域を満たす物質とは屈折率が異なる物質で満たされた第２領域との境界面を少なくとも一部含む撮像領域を撮像する複数の撮像装置のうち、前記境界面に対して前記第１領域側に位置する撮像装置により取得された画像から、前記第１領域内の所定の第１オブジェクトを検出する第１検出工程と、
前記複数の撮像装置のうち前記境界面に対して前記第２領域側に位置する撮像装置により取得された画像から、前記第２領域内の所定の第２オブジェクトを検出する第２検出工程と、
前記第１オブジェクトと前記第２オブジェクトの位置、及び、前記第１オブジェクトと前記第２オブジェクトの位置関係の、少なくとも何れかを示す位置情報を取得する取得工程と、
前記第１検出工程における検出結果と前記第２検出工程における検出結果と前記取得工程において取得された位置情報とに基づいて、共通の座標系における前記複数の撮像装置の位置を特定する特定工程とを有することを特徴とする情報処理方法。
【請求項１９】
前記第１検出工程は、前記第１領域内に設置された撮像装置により取得された画像から前記第１オブジェクトを検出し、
前記第２検出工程は、前記第２領域内に設置された撮像装置により取得された画像から前記第２オブジェクトを検出することを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記第１領域を満たす物質は空気であり、前記第２領域を満たす物質は液体であることを特徴とする請求項１８又は１９に記載の情報処理方法。
【請求項２１】
コンピュータを、請求項１乃至１５の何れか１項に記載の情報処理装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像に基づいて撮像装置の位置を特定する技術に関するものである。
【背景技術】
【０００２】
複数の撮像装置を異なる位置に設置して同期撮像し、当該撮像により得られた複数の撮像画像を用いて、視点を任意に変更可能な仮想視点画像を生成する技術がある。具体的には、複数の撮像画像に基づいて、撮像画像に含まれる被写体の３次元形状データを生成し、仮想視点の位置及び向きに基づくレンダリング処理を行うことにより、仮想視点画像が生成される。
【０００３】
複数の撮像装置により取得された撮像画像に基づいて被写体の３次元形状データを生成するためには、共通の座標系における各撮像装置の位置を特定する必要がある。特許文献１には、同じマーカを複数の撮像装置により撮像することで得られた複数の画像を用いて、共通の座標系における各撮像装置の位置を特定することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−２０７２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の方法では、複数の撮像装置が、それぞれ屈折率が異なる物質により満たされた複数の領域の境界面に対して両側に位置する場合に、当該複数の撮像装置の位置の特定結果に誤りが生じる虞がある。例えば、アーティスティックスイミングなどの水上競技を撮像対象として仮想視点画像を生成する場合には、水面より上と水面より下にそれぞれ撮像装置を設置することが考えられる。空気中と水中とでは光の屈折率が異なるため水面で光の反射が生じたり、水面の揺らぎが生じたりすることにより、撮像装置から見て水面より奥に位置するマーカを撮像画像から安定的に検出できない。そのため、水中にのみマーカを設置して撮像した画像を用いた場合には、水面より上の撮像装置の位置の特定結果に誤りが生じうる。同様に、空気中にのみマーカを設置して撮像した画像を用いた場合には、水面より下の撮像装置の位置の特定結果に誤りが生じうる。
【０００６】
本発明は上記の課題に鑑み、複数の撮像装置が、それぞれ屈折率が異なる物質により満たされた複数の領域の境界面に対して両側に位置する場合であっても、共通の座標系における当該複数の撮像装置の位置を特定できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明に係る情報処理装置は、例えば以下の構成を有する。すなわち、第１領域と、前記第１領域を満たす物質とは屈折率が異なる物質で満たされた第２領域との境界面を少なくとも一部含む撮像領域を撮像する複数の撮像装置のうち、前記境界面に対して前記第１領域側に位置する撮像装置により取得された画像から、前記第１領域内の所定の第１オブジェクトを検出する第１検出手段と、前記複数の撮像装置のうち前記境界面に対して前記第２領域側に位置する撮像装置により取得された画像から、前記第２領域内の所定の第２オブジェクトを検出する第２検出手段と、前記第１オブジェクトと前記第２オブジェクトの位置、及び、前記第１オブジェクトと前記第２オブジェクトの位置関係の、少なくとも何れかを示す位置情報を取得する取得手段と、前記第１検出手段による検出結果と前記第２検出手段による検出結果と前記取得手段により取得された位置情報とに基づいて、共通の座標系における前記複数の撮像装置の位置を特定する特定手段とを有する。
【発明の効果】
【０００８】
本発明によれば、複数の撮像装置が、それぞれ屈折率が異なる物質により満たされた複数の領域の境界面に対して両側に位置する場合であっても、共通の座標系における当該複数の撮像装置の位置を特定できる。
【図面の簡単な説明】
【０００９】
【図１】カメラシステムの設置例を示す図である。
【図２】情報処理システムの構成例を示す図である。
【図３】装置のハードウェア構成例を示す図である。
【図４】キャリブレーションに係る処理の例を示すフローチャートである。
【図５】マーカの設置例を示す図である。
【図６】マーカの設置例を示す図である。
【図７】マーカの設置例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
［情報処理システムの構成］
図１および図２を用いて、情報処理システム１０の構成例について説明する。情報処理システム１０は、複数の撮像装置による撮像に基づく複数の画像（多視点画像）と、指定された仮想視点とに基づいて、指定された仮想視点からの見えを表す仮想視点画像を生成するシステムである。本実施形態における仮想視点画像は、自由視点映像とも呼ばれるものであるが、ユーザが自由に（任意に）指定した視点に対応する画像に限定されず、例えば複数の候補からユーザが選択した視点に対応する画像なども仮想視点画像に含まれる。また、本実施形態では仮想視点の指定がユーザ操作により行われる場合を中心に説明するが、仮想視点の指定が画像解析の結果等に基づいて自動で行われてもよい。また、本実施形態では仮想視点画像が動画である場合を中心に説明するが、仮想視点画像は静止画であってもよい。
【００１２】
情報処理システム１０は、撮像領域を複数の方向から撮像する撮像装置としての複数のカメラを有する。本実施形態では、撮像対象となる撮像領域が、アーティスティックスイミングや競泳、水球などの水上競技が行われるプールの近傍であるものとする。複数のカメラは、このような撮像領域を取り囲むようにそれぞれ異なる位置に設置され、同期して撮像を行う。また、情報処理システム１０に含まれる複数のカメラは、設置場所が異なる複数の撮像装置群に分類される。図１に示す例において、空気中カメラシステム１００ａは水面より上側、具体的にはプール周囲の空気中に設置された複数のカメラ１１０ａを有する撮像装置群であり、主に水上の空気中を撮像する。一方、水中カメラシステム１００ｗは水面より下側、具体的にはプールの隅の水中に設置された複数のカメラ１１０ｗを有する撮像装置群であり、主に水中を撮像する。ただし、空気中のカメラ１００ａと水中のカメラ１００ｗのいずれも、空気中の領域と水中の領域との境界面であるプールの水面を少なくとも一部含む撮像領域を撮像する。
【００１３】
なお、複数のカメラは撮像領域の全周にわたって設置されていなくてもよく、設置場所の制限等によっては撮像領域の一部の方向にのみ設置されていてもよい。また、図１ではカメラ１１０−１ａ、１１０−２ａ、１１０−１ｗ、及び１１０−２ｗを示しており、図２ではこれに加えてカメラ１１０−３ａ及び１１０−３ｗを示しているが、カメラの数はこれに限定されない。例えば、空気中カメラシステム１００ａと水中カメラシステム１００ｗとがそれぞれ３０台程度のカメラを有していてもよい。また、撮像対象は上記に限定されるものではなく、撮像対象に応じてカメラの数が異なっていてもよい。また、望遠カメラと広角カメラなど機能が異なるカメラが設置されていてもよい。
【００１４】
本明細書では、符号末尾にアルファベットのａが付けられた構成要素は空気中に存在するものとし、符号末尾にアルファベットのｗが付けられた構成要素は水中に存在するものとする。また、空気中カメラシステム１００ａ内のカメラを区別しない場合にはカメラ１１０ａと表記し、水中カメラシステム１００ｗ内のカメラを区別しない場合にはカメラ１１０ｗと表記し、空気中か水中かも区別しない場合には単にカメラ１１０と表記する。空気中カメラシステム１００ａと水中カメラシステム１００ｗのその他の構成要素についても、同様に符号を表記する。
【００１５】
図１および図２に示すように、空気中カメラシステム１００ａが有する複数のカメラ１１０ａは、それぞれに対応するカメラ制御部２１０ａを介してデイジーチェイン接続される。水中カメラシステム１００ｗが有する複数のカメラ１１０ｗも同様に、それぞれに対応するカメラ制御部２１０ｗを介してデイジーチェイン接続される。なお、空気中カメラシステム１００ａと水中カメラシステム１００ｗとが分離して接続されることは必須ではなく、空気中カメラシステム１００ａと水中カメラシステム１００ｗとが直列に接続されていてもよい。また、デイジーチェイン接続は必須ではなく、複数のカメラ制御部２１０がスター型などのネットワークトポロジーで接続されていてもよい。
【００１６】
空気中カメラシステム１００ａが有する複数のカメラ１１０ａは、プールの水上を撮像するために適した位置及び向きで設置され、例えば水面近傍などの注目位置を所定の画質で撮像できるように焦点距離とフォーカスが設定される。水中カメラシステム１００ｗのカメラ１１０ｗも同様に、プールの水中を撮像するために適した位置及び向きで設置され、水面近傍などの注目位置を所定の画質で撮像できるように焦点距離とフォーカスが設定される。本実施形態では、水中カメラシステム１００ｗが有するカメラ１１０ｗは防水機能を有しており、水中に直接設置されているものとする。ただしこれに限らず、カメラ１１０ｗは、水中に設置された防水性を担保するハウジング等に収容されていてもよい。また、プールが透明なアクリルガラス等でできており、カメラ１１０ｗはプールの外側で且つ水面より下側から水中を撮像できるように設置されていてもよい。
【００１７】
図２に示すように、空気中カメラシステム１００ａは、カメラ１１０ａと、カメラ１１０ａに接続されたカメラ制御部２１０ａを複数有する。そして各カメラ制御部２１０ａは、同期クライアント２１１ａと画像送信部２１２ａとを有する。空気中カメラシステム１００ａが有する複数のカメラ制御部２１０ａはデイジーチェイン接続され、最も端のカメラ制御部２１０−１ａは時刻サーバ３００およびデータ保存部４００に接続される。水中カメラシステム１００ｗの構成も同様である。
【００１８】
各カメラ制御部２１０の同期クライアント２１１は、時刻サーバ３００および他のカメラ制御部２１０の同期クライアント２１１と通信して同期処理を行う。同期プロトコルとしては、ＰＴＰ（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を使用するものとするが、この方式に限定されるものではない。各同期クライアント２１１が同期処理の結果に応じてＧｅｎＬｏｃｋ信号とＴｉｍｅｃｏｄｅをカメラ１１０に対して出力することで、複数のカメラ１１０の同期が実現される。そして、複数のカメラ１１０は同期撮像を行い、各カメラ１１０は取得した撮像画像と撮像時刻を示すＴｉｍｅｃｏｄｅとをカメラ制御部２１０の画像送信部２１２へ出力する。画像送信部２１２は、カメラ１１０により取得された撮像画像をデータ保存部４００へ送信する。
【００１９】
データ保存部４００は、カメラ１１０により取得された撮像画像の他にも、仮想視点画像の生成に必要な各種の情報を保存する。データ保存部４００に保存される情報には、キャリブレーション部５００によるキャリブレーションにより得られた情報も含まれる。キャリブレーション部５００は、キャリブレーション計算部５１０（以降、計算部５１０と表記）とキャリブレーション条件入力部５２０（以降、入力部５２０と表記）とを有し、データ保存部４００から取得した撮像画像に基づいてキャリブレーションを行う。キャリブレーション部５００により実行されるキャリブレーションは、情報処理システム１０に含まれる複数のカメラ１１０それぞれのカメラパラメータを取得する情報取得処理である。キャリブレーションにより取得されるカメラパラメータには、少なくともカメラの位置を示すパラメータが含まれる。ただしこれに限らず、キャリブレーションにより取得されるカメラパラメータには、カメラの向きを示すパラメータや、カメラの焦点距離を示すパラメータや、カメラのレンズ歪の状態を示すパラメータなどが含まれていてもよい。キャリブレーションの処理の詳細については後述する。
【００２０】
画像生成部６００は、データ保存部４００から多視点画像とキャリブレーションにより得られた情報（カメラパラメータ）を取得し、これらと視点設定部７００から取得した視点情報とに基づいて仮想視点画像を生成する。仮想視点画像の生成に用いられる視点情報は、仮想視点の位置及び向きを示す情報である。具体的には、視点情報は、仮想視点の３次元位置を表すパラメータと、パン、チルト、及びロール方向における仮想視点の向きを表すパラメータとを含む、パラメータセットである。なお、視点情報の内容は上記に限定されない。例えば、視点情報としてのパラメータセットには、仮想視点の視野の大きさ（画角）を表すパラメータが含まれてもよい。また、視点情報は複数のパラメータセットを有していてもよい。例えば、視点情報が、仮想視点画像の動画を構成する複数のフレームにそれぞれ対応する複数のパラメータセットを有し、連続する複数の時点それぞれにおける仮想視点の位置及び向きを示す情報であってもよい。視点設定部７００は、ユーザ操作に応じて視点情報を生成し、画像生成部６００へ視点情報を出力する。
【００２１】
仮想視点画像は、例えば以下のような方法で生成される。まず、複数のカメラ１１０によりそれぞれ異なる方向から撮像すること取得された複数の画像（複数視点画像）から、人物やボールなどに対応する前景領域を抽出した前景画像と、前景領域以外の背景領域を抽出した背景画像が取得される。また、人物等の３次元形状を表す前景モデルと前景モデルに色付けするためのテクスチャデータとが前景画像に基づいて生成され、プールなどの背景の３次元形状を表す背景モデルに色づけするためのテクスチャデータが背景画像に基づいて生成される。この前景モデルの生成には、各カメラ１１０の位置や向きの情報が必要であり、キャリブレーション部５００によるキャリブレーションで得られたカメラパラメータが用いられる。そして、前景モデルと背景モデルに対してテクスチャデータをマッピングし、視点情報が示す仮想視点に応じてレンダリングを行うことにより、仮想視点画像が生成される。ただし、仮想視点画像の生成方法はこれに限定されず、３次元モデルを用いずに撮像画像の射影変換により仮想視点画像を生成する方法など、種々の方法を用いることができる。画像生成部６００は、生成した仮想視点画像を表示装置や記憶装置へ出力する。
【００２２】
［ハードウェア構成］
次に、情報処理システム１０が有する情報処理装置の１つであるキャリブレーション部５００のハードウェア構成について、図３を用いて説明する。なお、カメラ制御部２１０や画像生成部６００など、情報処理システム１０に含まれる他の装置も、キャリブレーション部５００と同様のハードウェア構成であってよい。キャリブレーション部５００は、ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、補助記憶装置５０４、表示部５０５、操作部５０６、通信Ｉ／Ｆ５０７、及びバス５０８を有する。
【００２３】
ＣＰＵ５０１は、ＲＯＭ５０２やＲＡＭ５０３に格納されているコンピュータプログラムやデータを用いてキャリブレーション部５００の全体を制御することで、キャリブレーション部５００の各機能を実現する。なお、キャリブレーション部５００がＣＰＵ５０１とは異なる１又は複数の専用のハードウェアを有し、ＣＰＵ５０１による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、およびＤＳＰ（デジタルシグナルプロセッサ）などがある。ＲＯＭ５０２は、変更を必要としないプログラムなどを格納する。ＲＡＭ５０３は、補助記憶装置５０４から供給されるプログラムやデータ、及び通信Ｉ／Ｆ５０７を介して外部から供給されるデータなどを一時記憶する。補助記憶装置５０４は、例えばハードディスクドライブ等で構成され、撮像画像やキャリブレーションによられる情報などの種々のデータを記憶する。
【００２４】
表示部５０５は、例えば液晶ディスプレイやＬＥＤ等で構成され、ユーザがキャリブレーション部５００を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などを表示する。操作部５０６は、例えばキーボードやマウス、ジョイスティック、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をＣＰＵ５０１に入力する。ＣＰＵ５０１は、表示部５０５を制御する表示制御部、及び操作部５０６を制御する操作制御部として動作する。通信Ｉ／Ｆ５０７は、外部の装置との通信に用いられる。例えば、キャリブレーション部５００が外部の装置と有線で接続される場合には、通信用のケーブルが通信Ｉ／Ｆ５０７に接続される。キャリブレーション部５００が外部の装置と無線通信する機能を有する場合には、通信Ｉ／Ｆ５０７はアンテナを備える。バス５０８は、キャリブレーション部５００の各部をつないで情報を伝達する。
【００２５】
本実施形態では表示部５０５と操作部５０６がキャリブレーション部５００の内部に存在するものとするが、表示部５０５と操作部５０６との少なくとも一方が別の装置として存在していてもよいし、これらが存在しなくてもよい。
【００２６】
［キャリブレーション処理］
キャリブレーション部５００によるキャリブレーションは、仮想視点画像の生成対象となる競技等のシーンが開始される前に撮像されたキャリブレーション用の画像を用いて行われる。以降では、キャリブレーションを行うために必要な画像を取得するための撮像をキャリブレーション撮像と表記し、キャリブレーション撮像より後に行われる仮想視点画像の生成対象となるシーンの撮像をシーン撮像と表記する。なお、仮想視点画像がリアルタイムで生成されず、録画しておいた撮像画像に基づいて生成される場合には、キャリブレーション撮像がシーン撮像より後であってもよい。
【００２７】
キャリブレーション撮像は、撮像領域内に基準となるオブジェクトが位置する状態で行われる。本実施形態では、基準となるオブジェクトがカメラ１１０により取得される撮像画像から検出可能なマーカ８１０であり、マーカ８１０を表示するボード８００が複数のカメラ１１０で撮像可能な位置に設置されるものとする。マーカ８１０はボード８００に印刷されていてもよいし、ボード８００がマーカ８１０を表示するディスプレイを有していてもよい。また、ボード８００の形状や基準となるオブジェクトはこれらの例に限定されない。
【００２８】
図５は、キャリブレーション撮像時における撮像領域の例を示す。ボード８００は２つのマーカ８１０ａとマーカ８１０ｗを有し、水面より上（空気中）の領域と水面より下（水中）の領域とに跨って存在する物体である。マーカ８１０ａはボード８００の空気中の部分に位置し、マーカ８１０ｗはボード８００の水中の部分に位置する。マーカ８１０ａは空気中のカメラ１１０−１ａと１１０−２ａにより撮像可能であり、マーカ８１０ｗは水中のカメラ１１０−１ｗと１１０−２ｗにより撮像可能である。各マーカ８１０は互いに内容が異なる２次元マーカであり、マーカ８１０を撮像した画像からは例えばマーカ８１０の識別情報を読み取り可能である。ただしマーカ８１０の内容はこれに限定されない。以下では、ボード８００がプール内を移動可能であるものとして図４の説明を行う。ただし、ボード８００がプールの底の所定位置に固定されていてもよい。
【００２９】
キャリブレーション部５００によるキャリブレーションに係る処理の詳細について、図４のフローチャートを用いて説明する。図４に示す処理は、キャリブレーション部５００のＣＰＵ５０１がＲＯＭ５０２に格納されたプログラムをＲＡＭ５０３に展開して実行することで実現される。なお、図４に示す処理の少なくとも一部を、ＣＰＵ５０１とは異なる１又は複数の専用のハードウェアにより実現してもよい。図４に示す処理は、キャリブレーション撮像で取得された複数の撮像画像がデータ保存部４００に記憶され、且つキャリブレーション部５００とデータ保存部４００との通信が可能となったタイミングで開始される。ただし、図４に示す処理の開始タイミングはこれに限定されない。
【００３０】
図４の説明では、マーカ８１０の位置を変えながら一定の期間にわたってキャリブレーション撮像を行い、データ保存部４００に複数フレームの画像が記憶されるものとする。このような複数フレームの画像を用いてキャリブレーションを行うことで、キャリブレーションの精度を向上できる。ただしこれに限定されず、キャリブレーション期間中においてマーカ８１０の位置が固定されていてもよい。また、単一の時刻に撮像された画像がデータ保存部４００に記憶され、この画像を用いてキャリブレーションが行われてもよい。
【００３１】
Ｓ１０１において、計算部５１０は、データ保存部４００からどの時刻の撮像画像を取得するかを選択する。Ｓ１０２において、計算部５１０は、選択した時刻Ｔに複数のカメラ１１０により撮像された複数の画像をデータ保存部４００から取得する。Ｓ１０２の画像取得において取得される画像には、空気中カメラシステム１００ａに含まれるカメラ１１０ａにより空気中のマーカ８１０ａを撮像することで得られる画像が含まれる。また、Ｓ１０２において取得される画像には、水中カメラシステム１００ｗに含まれるカメラ１１０ｗにより水中のマーカ８１０ｗを撮像することで得られる画像も含まれる。
【００３２】
Ｓ１０３において、計算部５１０は、取得した画像それぞれに対して検出処理を行う。検出処理によって画像からマーカ８１０が検出された場合はＳ１０４へ進み、検出されなかった場合はＳ１０５へ進む。ここで計算部５１０は、空気中のカメラ１１０ａにより撮像された画像に対しては水上のマーカ８１０ａの検出処理を行い、水中のカメラ１１０ｗにより撮像された画像に対しては水中のマーカ８１０ｗの検出処理を行う。なお計算部５１０は、画像からマーカ８１０を検出した後に、そのマーカ８１０が水上のマーカ８１０ａか水中のマーカ８１０ｗかを判定してもよい。
【００３３】
Ｓ１０４において、計算部５１０は、時刻Ｔと検出されたマーカ８１０から読み取ったマーカ番号Ｎの組（Ｔ，Ｎ）と、画像内でのマーカ８１０の位置を示す座標（ｘ，ｙ）とを、その画像を撮像したカメラの識別情報と関連付けて記録する。Ｓ１０５において、計算部５１０は、データ保存部４００に記憶されたキャリブレーション用の画像の全フレームについてマーカ８１０の検出処理を行ったかを判定する。まだ検出処理を行っていないフレームの画像がある場合はＳ１０１に戻って未処理のフレームの時刻Ｔを選択し、全フレームの画像が処理済みである場合にはＳ１０６へ進む。
【００３４】
Ｓ１０６において、入力部５２０は、マーカ８１０の位置情報とカメラ１１０の位置及び姿勢の計算初期値を取得する。マーカ８１０の位置情報は、空気中のマーカ８１０ａと水中のマーカ８１０ｗの位置関係を示す。入力部５２０は、例えば空気中に位置する３つのマーカ８１０ａと水中に位置する３つのマーカ８１０ｗに関する位置情報を取得する。なお、入力部５２０が取得する位置情報はこれに限定されない。例えば、マーカ８１０の位置が固定されている場合には、入力部５２０はマーカ８１０ａとマーカ８１０ｗそれぞれの位置を定数の座標で示す情報を位置情報として取得してもよい。入力部５２０はこれらの情報をユーザ操作に応じた入力に基づいて取得するものとするが、これに限らず、外部の装置からマーカ８１０の位置を測定した結果を取得してもよい。
【００３５】
Ｓ１０７において、計算部５１０は、時刻Ｔとマーカ番号（Ｔ，Ｎ）を指標ＩＤとして、Ｓ１０４において記録された情報とＳ１０６において取得された情報に基づいてキャリブレーションを行う。キャリブレーションの基準となる指標は、同一のマーカ８１０であっても異なる時刻に撮像されたマーカ８１０であれば異なる指標として扱う。そのため、（Ｔ，Ｎ）の組を指標ＩＤとして扱う。Ｓ１０８において、計算部５１０は、キャリブレーションにより得られたカメラパラメータをデータ保存部４００に出力して保存する。データ保存部４００に保存されたカメラパラメータは、画像生成部６００による仮想視点画像の生成に用いられる。
【００３６】
本実施形態におけるキャリブレーション処理では、空気中のカメラ１１０ａのキャリブレーションには主に空気中のマーカ８１０ａの検出結果が用いられ、水中のカメラ１１０ｗのキャリブレーションには主に水中のマーカ８１０ｗの検出結果が用いられる。これらのキャリブレーションを独立して行うと、ある座標系における座標で表される空気中のカメラ１１０ａのカメラパラメータと、別の座標系における座標で表される水中のカメラ１１０ｗのカメラパラメータとが得られる。こうして得られたカメラパラメータに基づいて、例えば水面付近の仮想視点画像などのように水中の画像と水上の画像とを含む仮想視点画像を生成した場合、座標系のずれに起因する画像の乱れが生じる虞がある。
【００３７】
そこで計算部５１０は、入力部５２０が取得したマーカ８１０の位置情報に基づいて処理を行うことで、共通の座標系における座標で表された、空気中のカメラ１１０ａと水中のカメラ１１０ｗのカメラパラメータを取得する。例えば、計算部５１０は、空気中のカメラ１１０ａにより撮像された画像から空気中のマーカ８１０ａを検出した結果に基づいて、空気中のカメラ１１０ａの第１座標系における位置を表すカメラパラメータを取得する。また、計算部５１０は、水中のカメラ１１０ｗにより撮像された画像から水中のマーカ８１０ｗを検出した結果に基づいて、水中のカメラ１１０ｗの第２座標系における位置を表すカメラパラメータを取得する。
【００３８】
そして計算部５１０は、入力部５２０が取得した位置情報から特定されるマーカ８１０ａとマーカ８１０ａの特定結果に基づいて、第２座標系に応じた水中のカメラ１１０ｗのカメラパラメータを第１座標系に応じた値に変換する。すなわちキャリブレーション部５００は、空気中のカメラ１１０ａにより撮像された画像と水中のカメラ１１０ｗにより撮像された画像とに基づいて、共通の座標系における複数のカメラ１１０のカメラパラメータを取得する。このようにしてキャリブレーションで得られたカメラパラメータを用いて仮想視点画像を生成することで、画像の乱れを抑制することができる。
【００３９】
なお、単一の座標系における座標値で表されたカメラパラメータの取得方法はこれに限定されない。例えば、計算部５１０は、第１座標系に応じた空気中のカメラ１１０ａのカメラパラメータを第２座標系に応じた値に変換してもよい。また例えば、第１座標系に応じた空気中のカメラ１１０ａのカメラパラメータと、第２座標系に応じた水中のカメラ１１０ｗのカメラパラメータとの両方を、第３座標系に応じた値に変換してもよい。また、計算部５１０は、カメラパラメータの変換において水の屈折率を用いることで座標系のスケールのずれを補正してもよい。ただし、屈折率を座標の計算に用いることは必須ではない。例えば、図５に示すようなマーカを複数使用し、空気中マーカと水中マーカのそれぞれについての既知の位置情報と、マーカの検出結果から計算された位置情報とのずれに基づいて、補正を行ってもよい。
【００４０】
第１座標系と第２座標系それぞれにおけるカメラパラメータの取得には、複数のカメラ１１０により取得される複数の撮像画像におけるマーカ８１０の検出位置に基づいてキャリブレーションを行う既知の方法を用いることができる。すなわち、空気中カメラシステム１００ａにより得られる複数の画像からのマーカ８１０ａの検出結果に基づいて、空気中のカメラ１１０ａの第１座標系におけるカメラパラメータが取得できる。また、水中カメラシステム１００ｗにより得られる複数の画像からのマーカ８１０ｗの検出結果に基づいて、水中のカメラ１１０ｗの第２座標系におけるカメラパラメータが取得できる。
【００４１】
図４を用いた上記の説明では、キャリブレーション撮像が終了して撮像画像がデータ保存部４００に保存された後にキャリブレーション部５００によるキャリブレーション処理が行われるものした。ただしこれに限らず、キャリブレーション撮像を一定期間にわたって行う場合に、カメラ１１０による撮像と平行してキャリブレーション部５００によるキャリブレーション処理が行われてもよい。
【００４２】
［マーカの設置例］
以下では、キャリブレーション撮像を行う際のマーカ８１０の設置例について説明する。上述の説明で触れた図５に示す設置例では、空気中のマーカ８１０ａと水中のマーカ８１０ｗを同一の物体であるボード８００に表示させている。すなわち、ボード８００が有する２つのマーカの間にプールの水面が位置する。ボード８００において、マーカ８１０ａが表示される位置とマーカ８１０ｗが表示される位置との位置関係は予め決められている。そのため、入力部５２０が取得したマーカ８１０ａとマーカ８１０ｗの位置情報とを用いてキャリブレーションを行うことで、マーカ８１０ａを基準としたカメラパラメータとマーカ８１０ｗを基準としたカメラパラメータを適切に統合することができる。
【００４３】
なお、図５に示すようなマーカ８１０を用いてキャリブレーションを行う場合に、空気中のカメラ１１０ａの撮像画像から水中のマーカ８１０ｗを検出した結果や、水中のカメラ１１０ｗの撮像画像から空気中のマーカ８１０ａを検出した結果を用いてもよい。例えば、空気中のマーカ８１０ａは当該マーカ８１０ａが空気中に位置することを特定可能な情報を表し、水中のマーカ８１０ｗは当該マーカ８１０ｗが水中に位置することを特定可能な情報を表す。具体的には、空気中のマーカ８１０ａと水中のマーカ８１０ｗはそれぞれ異なる識別子を読み取り可能な情報を表す。そして計算部５１０は、撮像画像から検出されたマーカ８１０が空気中のマーカ８１０ａであるか水中のマーカ８１０ｗであるかを判定する。
【００４４】
計算部５１０は、空気中のカメラ１１０ａの撮像画像から検出されたマーカ８１０ｗが水中のマーカであると判定した場合、既知の相対屈折率によって検出結果を補正することで、水面における光の屈折の影響によるマーカの位置ずれを補正する。また計算部５１０は、水中のカメラ１１０ｗの撮像画像から検出されたマーカ８１０ａが空気中のマーカであると判定した場合、既知の相対屈折率によって検出結果を補正する。そして計算部５１０は、空気中のカメラ１１０ａの撮像画像から空気中のマーカ８１０ａを検出した結果と、水中のカメラ１１０ｗの撮像画像から水中のマーカ８１０ｗを検出した結果に加えて、上記の補正された検出結果を用いてキャリブレーションを行う。このような方法によれば、より多くのマーカ８１０の検出結果を用いてキャリブレーションを行うことができるため、キャリブレーションの精度を向上させることができる。
【００４５】
キャリブレーションのためのマーカ８１０の設置方法は、図５の例に限定されない。図６は、マーカ８１０の別の設置例を示す。プールサイドの空気中には、マーカ８１０−１ａを表示するボード８００−１ａとマーカ８１０−２ａを表示するボード８００−２ａが設置される。プール内の水中には、マーカ８１０−１ｗを表示するボード８００−１ｗとマーカ８１０−２ｗを表示するボード８００−２ｗが設置される。マーカ８１０−１ａ、マーカ８１０−２ａ、マーカ８１０−１ｗ、及びマーカ８１０−２ｗは、それぞれ、カメラ１１０−１ａ、カメラ１１０−２ａ、カメラ１１０−１ｗ、及びカメラ１１０−２ｗにより撮像可能な位置に設置される。これら複数のマーカ８１０はキャリブレーション撮像中において固定されており、マーカ８１０の位置関係は変化しない。入力部５２０は各マーカ８１０の世界座標系における位置を示す位置情報を取得し、計算部５１０はその位置情報から各マーカ８１０の位置を特定した特定結果と各カメラ１１０により撮像された画像とを用いてキャリブレーションを行う。
【００４６】
このように複数のマーカ８１０を設置する場合に、空気中のマーカ８１０ａは水中のカメラ１１０ｗの撮像範囲に入らないように設置され、水中のマーカ８１０ｗは空気中のカメラ１１０ａの撮像範囲に入らないように設置されてもよい。このようにすれば、空気中のカメラ１１０ａの撮像画像から検出された水中のマーカ８１０ｗの検出結果を誤ってキャリブレーションに用いることでキャリブレーション精度が低下することを回避できる。同様に、水中のカメラ１１０ｗの撮像画像から検出された空気中のマーカ８１０ａの検出結果を誤ってキャリブレーションに用いることでキャリブレーション精度が低下することを回避できる。この場合には、マーカ８１０ａの内容とマーカ８１０ｗの内容とが同一であってもよい。
【００４７】
一方、図５の説明において上述したように、各マーカ８１０がそのマーカの識別子を読み取り可能な情報を表してもよい。この場合には、撮像画像から検出された各マーカ８１０が空気中のマーカであるか水中のマーカであるかを計算部５１０が判定できるため、空気中のマーカ８１０ａと水中のマーカ８１０ｗとの両方が同じカメラ１１０の撮像画像に含まれてもよい。これにより、マーカ８１０の設置に関する制約が少なくなる。なおこの場合に、空気中のカメラ１１０ａの撮像画像から水中のマーカ８１０ｗを検出した結果と、水中のカメラ１１０ｗの撮像画像から空気中のマーカ８１０ａを検出した結果は、キャリブレーションに用いられなくてもよい。
【００４８】
図７は、マーカ８１０の別の設置例を示す。図７の例においては、ボード８００が空気中と水中との境界面である水面に位置する。ボード８００は上面（空気中の面）にマーカ８１０ａを有し、下面（水中の面）にマーカ８１０ｗを有する。図７（ａ）は水面にボード８００が浮かべられたプールを横から見た図であり、図７（ｂ）は図７（ａ）における矢印Ａの方向から見たボード８００の矢視図を示し、図７（ｃ）は図７（ａ）における矢印Ｂの方向から見たボード８００の矢視図を示す。ボード８００は固定されていないため、ボード８００を移動させながらキャリブレーション撮像を行うことができる。入力部５２０はマーカ８１０ａとマーカ８１０ｗの位置関係を示す位置情報を取得し、計算部５１０はその位置情報から特定したマーカ８１０の位置関係と各カメラ１１０により撮像された画像とを用いてキャリブレーションを行う。
【００４９】
なお、キャリブレーション撮像中に水面が波立っていると、マーカ８１０の傾きが変化して、キャリブレーション精度が低下することが考えられる。そこで、マーカ８１０ａとマーカ８１０ｗの少なくとも何れかは、マーカの傾きを特定可能な情報を表してもよい。例えば、ボード８００がジャイロセンサ又は水準器を有し、これらによって検出された傾きに応じて異なる内容のマーカ８１０が、ボード８００が有するディスプレイに表示されてもよい。そして計算部５１０は、撮像画像から検出したマーカ８１０の内容を読み取ることでマーカ８１０の傾きを判定し、マーカの傾きに基づいて補正された検出結果を用いてカメラパラメータを計算してもよい。これにより、キャリブレーション撮像中にマーカ８１０の傾きが変化する場合におけるキャリブレーション精度を向上させることができる。なお、計算部５１０は、マーカ８１０の面に対する法線方向を判定し、その判定結果に基づいてカメラパラメータを計算してもよい。また別の方法として、真円が含まれるマーカを使用し、撮影画像に含まれる楕円の形状からマーカ方向を推定してもよい。
【００５０】
以上説明したように、本実施形態におけるキャリブレーション部５００は、水面を少なくとも一部含む撮像領域を撮像する複数のカメラ１１０のうち、水面より上側に位置するカメラ１１０ａにより取得された画像から、空気中のマーカ８１０ａを検出する。またキャリブレーション部５００は、水面より下側に位置するカメラ１１０ｗにより取得された画像から、水中のマーカ８１０ｗを検出する。そしてキャリブレーション部５００は、これらの検出結果と、空気中のマーカ８１０ａと水中のマーカ８１０ｗの位置又は位置関係を示す位置情報とに基づいて、共通の座標系における複数のカメラ１１０の位置を特定する。
【００５１】
このような構成によれば、複数のカメラ１１０が、互いに屈折率が異なる空気中の領域と水中の領域との境界である水面に対して両側に位置する場合であっても、共通の座標系における複数のカメラ１１０の位置を特定することができる。そして、このように特定された複数のカメラ１１０の位置を示すカメラパラメータに基づいて仮想視点画像を生成することで、仮想視点画像の画質の低下を抑制することができる。
【００５２】
以上の説明では、撮像領域内に、空気で満たされた領域（水上の領域）と、空気とは屈折率が異なる物質である水で満たされた領域（水中の領域）とが存在する場合の例を説明したが、本実施形態におけるキャリブレーション方法の適用先はこれに限定されない。例えば、撮像領域内に、空気で満たされた領域と、ガラスや樹脂又は油などで満たされた領域が存在する場合も、本実施形態におけるキャリブレーション方法を適用することで、キャリブレーション精度を向上させることができる。また例えば、撮像領域内に水で満たされた領域と油で満たされた領域とが存在してもよい。撮像領域を満たす物質が流体である場合、特に空気と液体である場合には、境界面に揺らぎが生じやすいため、本実施形態によるキャリブレーション精度の向上の効果が大きい。なお、本実施形態において領域を満たす物質とは、その３次元領域を主に構成する物質（例えば３次元領域の体積の半分以上を占める物質）を指す。
【００５３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ等）によっても実現可能である。また、そのプログラムをコンピュータにより読み取り可能な記録媒体に記録して提供してもよい。
【符号の説明】
【００５４】
１０  情報処理システム
１１０  カメラ
５００  キャリブレーション部
８１０  マーカ
【図１】
2020182079.tif 000003
【図２】
2020182079.tif 000004
【図３】
2020182079.tif 000005
【図４】
2020182079.tif 000006
【図５】
2020182079.tif 000007
【図６】
2020182079.tif 000008
【図７】
2020182079.tif 000009