(57)【要約】  カメラ情報算出装置は、一つの態様において、第１の算出部と第２の算出部とを備える。第１の算出部は、第１のカメラにより撮像される第１の被写体を含む第１の画像と、第３のカメラにより撮像される第１の被写体を含む第１の動画像とに基づいて、第１のカメラの位置を示す第１のカメラ位置情報を算出する。第２の算出部は、第１のカメラと離間して配置される第２のカメラにより撮像される第２の被写体を含む第２の画像と、第３のカメラにより撮像される第２の被写体を含む第２の動画像とに基づいて、第２のカメラの位置を示す第２のカメラ位置情報を算出する。
2020152810.tif 000002
【特許請求の範囲】
【請求項１】
第１のカメラにより撮像される第１の被写体を含む第１の画像と、第３のカメラにより撮像される前記第１の被写体を含む第１の動画像とに基づいて、前記第１のカメラの位置を示す第１のカメラ位置情報を算出する第１の算出部と、
前記第１のカメラと離間して配置される第２のカメラにより撮像される第２の被写体を含む第２の画像と、前記第３のカメラにより撮像される前記第２の被写体を含む第２の動画像とに基づいて、前記第２のカメラの位置を示す第２のカメラ位置情報を算出する第２の算出部と、を備える、
カメラ情報算出装置。
【請求項２】
前記第１のカメラ位置情報は、前記第１ないし第３のカメラに共通の基準座標系と、前記第１のカメラの座標系との対応関係を示す情報であり、
前記第２のカメラ位置情報は、前記基準座標系と、前記第２のカメラの座標系との対応関係を示す情報である、
請求項１に記載のカメラ情報算出装置。
【請求項３】
前記第１の画像に含まれる前記第１の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第１の変換済情報を出力し、
前記第２の画像に含まれる前記第２の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第２の変換済情報を出力する第１の変換部と、
前記第１の動画像に含まれる前記第１の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第３の変換済情報を出力し、
前記第２の動画像に含まれる前記第２の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第４の変換済情報を出力する第２の変換部と、
前記第１の変換済情報と前記第３の変換済情報とを比較して第１の差分を検出し、
前記第２の変換済情報と前記第４の変換済情報とを比較して第２の差分を検出する差分検出部と、を備える、
請求項２に記載のカメラ情報算出装置。
【請求項４】
前記第１の差分に基づいて前記第１のカメラ位置情報を補正し、前記第２の差分に基づいて前記第２のカメラ位置情報を補正する補正部を備える、
請求項３に記載のカメラ情報算出装置。
【請求項５】
前記第１の動画像の撮像領域の少なくとも一部と、前記第２の動画像の撮像領域の少なくとも一部とが重複している、
請求項１乃至４のうちの何れか１項に記載のカメラ情報算出装置。
【請求項６】
第１の被写体を含む第１の画像を撮像する第１のカメラと、
第２の被写体を含む第２の画像を撮像する第２のカメラと、
前記第１の被写体を含む第１の動画像と、前記第２の被写体を含む第２の動画像とを撮像すると共に、前記第１の画像と前記第１の動画像とに基づいて、前記第１のカメラの位置を示す第１のカメラ位置情報を算出する第１算出部と、前記第２の画像と前記第２の動画像とに基づいて、前記第２のカメラの位置を示す第２のカメラ位置情報を算出する第２算出部とを有する第３のカメラと、を備える、
システム。
【請求項７】
第１の被写体を含む第１の画像を撮像する第１のカメラと、
第２の被写体を含む第２の画像を撮像する第２のカメラと、
前記第１の被写体を含む第１の動画像と、前記第２の被写体を含む第２の動画像とを撮像する第３のカメラと、
前記第１の画像と前記第１の動画像とに基づいて、前記第１のカメラの位置を示す第１のカメラ位置情報を算出する第１算出部と、前記第２の画像と前記第２の動画像とに基づいて、前記第２のカメラの位置を示す第２のカメラ位置情報を算出する第２算出部とを有するサーバと、を備える、
システム。
【請求項８】
第１のカメラにより撮像される第１の被写体を含む第１の画像と、第３のカメラにより撮像される前記第１の被写体を含む第１の動画像とに基づいて、前記第１のカメラの位置を示す第１のカメラ位置情報を算出し、
前記第１のカメラと離間して配置される第２のカメラにより撮像される第２の被写体を含む第２の画像と、前記第３のカメラにより撮像される前記第２の被写体を含む第２の動画像とに基づいて、前記第２のカメラの位置を示す第２のカメラ位置情報を算出する、
処理をコンピュータが実行するカメラ情報算出方法。
【請求項９】
第１のカメラにより撮像される第１の被写体を含む第１の画像と、第３のカメラにより撮像される前記第１の被写体を含む第１の動画像とに基づいて、前記第１のカメラの位置を示す第１のカメラ位置情報を算出し、
前記第１のカメラと離間して配置される第２のカメラにより撮像される第２の被写体を含む第２の画像と、前記第３のカメラにより撮像される前記第２の被写体を含む第２の動画像とに基づいて、前記第２のカメラ位置情報を算出する、
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ情報算出装置、システム、カメラ情報算出方法およびプログラムに関する。
【背景技術】
【０００２】
従来、カメラを利用した映像解析を行う際に、マーカーを用いて、カメラの位置を特定可能なカメラ情報を算出する装置が知られている（例えば特許文献１および２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２７９０４９号公報
【特許文献２】特開２０１３−１２７７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来においては、設置されたカメラが複数あり、それらの位置関係を求める場合は、各カメラが撮像した画像の中に、共通のマーカーが含まれるようにしなければならない。例えば複数のカメラ間の距離が離れていて、該複数のカメラ間の撮像領域が重ならず、共通のマーカーを各カメラの撮像画像に撮像することができない場合においては、カメラの位置関係を求めることが困難であるという問題がある。【０００５】
１つの側面では、本発明は、離間して設置された複数のカメラの位置関係を求めることが可能なカメラ情報算出装置、システム、カメラ情報算出方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願の開示するカメラ情報算出装置は、一つの態様において、第１のカメラにより撮像される第１の被写体を含む第１の画像と、第３のカメラにより撮像される前記第１の被写体を含む第１の動画像とに基づいて、前記第１のカメラの位置を示す第１のカメラ位置情報を算出する第１の算出部と、前記第１のカメラと離間して配置される第２のカメラにより撮像される第２の被写体を含む第２の画像と、前記第３のカメラにより撮像される前記第２の被写体を含む第２の動画像とに基づいて、前記第２のカメラの位置を示す第２のカメラ位置情報を算出する第２の算出部と、を備える。
【発明の効果】
【０００７】
本願の開示するカメラ情報算出装置の一つの態様によれば、離間して設置された複数のカメラの位置関係を求めることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態のシステムの構成の一例を示す図である。
【図２】図２は、実施形態のシステムが適用される店舗の平面図である。
【図３】図３は、実施形態のシステムが適用される店舗の平面図である。
【図４】図４は、実施形態の第１のカメラ、第２のカメラ、および、移動カメラの基本的なハードウェア構成の一例を示す図である。
【図５】図５は、実施形態の第１のカメラが有する機能の一例を示す図である。
【図６】図６は、実施形態の第２のカメラが有する機能の一例を示す図である。
【図７】図７は、実施形態の移動カメラが有する機能の一例を示す図である。
【図８】図８は、実施形態の移動カメラが有する機能の詳細例を示す図である。
【図９】図９は、実施形態の算出部が有する機能の一例を示す図である。
【図１０】図１０は、実施形態のマーカー情報変換部が有する機能の一例を示す図である。
【図１１】図１１は、実施形態の空間特徴情報変換部が有する機能の一例を示す図である。
【図１２】図１２は、実施形態のマーカー情報・空間特徴情報変換部が有する機能の一例を示す図である。
【図１３】図１３は、実施形態の移動カメラの動作例を示すフローチャートである。
【図１４】図１４は、変形例のシステムの構成の一例を示す図である。
【図１５】図１５は、変形例のサーバのハードウェア構成の一例を示す図である。
【図１６】図１６は、変形例のサーバが有する機能の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本願の開示するカメラ情報算出装置、システム、カメラ情報算出方法およびプログラムの実施形態を詳細に説明する。
【００１０】
図１は、本実施形態のシステム１の構成の一例を示す図である。図１に示すように、本実施形態のシステム１は、データサーバ１０と、第１のカメラ２０と、第２のカメラ３０と、移動カメラ４０と、を含む。第１のカメラ２０と第２のカメラ３０は、任意の位置・向きで設置可能なカメラである。データサーバ１０は、例えばインターネットなどのネットワーク５０を介して、第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０の各々と通信可能に接続される。
【００１１】
図２は、本実施形態のシステム１が適用される場所、例えば店舗の平面図である。図２の例では、互いに異なるパターンを有する第１のマーカー７０および第２のマーカー８０が店舗のフロア（床面）６０に設置されている。この例では、第１のマーカー７０および第２のマーカー８０の各々は、８×８の矩形マトリクスのパターンを有する平板状の部材である。以下の説明では、第１のマーカー７０と第２のマーカー８０とを区別しない場合は、単に「マーカー」と称する場合がある。
【００１２】
第１のマーカー７０は、第１のカメラ２０により撮像された画像に含まれる「第１の被写体」の一例であり、第１の識別情報に対応する第１のパターンを有している。例えば第１の識別情報は「１」を示すＩＤであり、第１のパターンは、ＩＤ「１」を表すパターンであってもよい。
【００１３】
第１のマーカー７０は、第１のカメラ２０の撮像領域（第１の撮像領域）に設置されるので、第１のカメラ２０により撮像された画像には、第１のマーカー７０が含まれる。以下の説明では、第１のカメラ２０により撮像された画像を「第１の画像」と称する場合がある。つまり、第１のカメラ２０は、第１のマーカー７０を含む第１の画像を撮像する。
【００１４】
第２のマーカー８０は、第２のカメラ３０により撮像された画像に含まれる「第２の被写体」の一例であり、第２の識別情報に対応する第２のパターンを有している。例えば第２の識別情報は「２」を示すＩＤであり、第２のパターンは、ＩＤ「２」を表すパターンであってもよい。
【００１５】
第２のマーカー８０は、第２のカメラ３０の撮像領域（第２の撮像領域）に配置されるので、第２のカメラ３０により撮像された画像には、第２のマーカー８０が含まれる。以下の説明では、第２のカメラ３０により撮像された画像を「第２の画像」と称する場合がある。つまり、第２のカメラ３０は、第２のマーカー８０を含む第２の画像を撮像する。
【００１６】
ここでは、第１のカメラ２０および第２のカメラ３０は、互いに離間して配置され、それぞれの撮像画像に共通のマーカーを撮像することができない位置に配置される。この例では、第１のカメラ２０および第２のカメラ３０は一定以上の距離を空けて配置され、互いの撮像領域が重ならないように配置されている。ただし、これに限らず、例えば第１のカメラ２０および第２のカメラ３０は、互いの撮像領域の一部が重なるものの、それぞれの撮像画像に共通のマーカーを撮像することができない、又は共通のマーカーのパターンを認識できない位置に配置される形態でもよい。
【００１７】
図２の例では、フロア６０を移動しながら撮像を行う移動カメラ４０は、第１の撮像領域の少なくとも一部を撮像可能な位置に存在している。図２の例では、移動カメラ４０は、第１のマーカー７０を撮像可能な位置に存在している。移動カメラ４０は、例えば図２に示す範囲９０内を移動しながら撮像を行うことができ、例えば図３に示すように、第２の撮像領域の少なくとも一部を撮像可能な位置に移動することもできる。図３の例では、移動カメラ４０は、第２のマーカー８０を撮像可能な位置に存在している。つまり、移動カメラ４０は、第１の撮像領域の少なくとも一部を撮像可能な位置と、第２の撮像領域の少なくとも一部を撮像可能な位置との間を移動しながら撮像可能なカメラである。移動カメラ４０は、連続して撮像する、または、複数の撮像領域が重複するように複数回数撮像することができる。移動カメラ４０は、「第３のカメラ」の一例であり、第１のマーカー７０を含む第１の動画像と、第２のマーカー８０を含む第２の動画像とを撮像する。ただし、「第３のカメラ」の形態は、移動カメラ４０に限られるものではない。また、この例では、第１の動画像の撮像領域の少なくとも一部と、第２の動画像の撮像領域の少なくとも一部とが重複しているが、これに限られるものではない。
【００１８】
移動カメラ４０は、例えばカメラ付きの可搬型の装置（例えばスマートフォン、タブレット、ドローン等）であってもよい。本実施形態では、移動カメラ４０は、店舗のフロア６０を移動するユーザが所持するカメラ付きの端末である場合を例に挙げて説明するが、これに限られるものではない。
【００１９】
図４は、第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０の基本的なハードウェア構成の一例を示す図である。図４の例では、最低限必要なハードウェア要素を例示しているが、これに限らず、第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０は、他のハードウェア要素（例えば入力デバイス、表示デバイス等）を備える形態であっても構わない。
【００２０】
図４に示すように、第１のカメラ２０、第２のカメラ３０、移動カメラ４０の各々は、レンズなどの光学系１０１と、撮像素子１０２と、ＣＰＵ（Central  Processing  Unit）１０３と、記憶装置１０４と、通信Ｉ／Ｆ部１０５と、を含む。光学系１０１、撮像素子１０２、ＣＰＵ１０３、記憶装置１０４、通信Ｉ／Ｆ部１０５は、バス１０６を介して相互に接続される。
【００２１】
撮像素子１０２は、レンズなどの光学系１０１により結像された撮像対象の像を、電気信号に変換する素子（撮像を行うための素子）である。ＣＰＵ１０３は、ハードウェアプロセッサの一例に対応する。ＣＰＵ１０３は、装置（第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０のうちの何れか）の動作を制御する。ＣＰＵ１０３は、記憶装置１０４に格納されたプログラムを実行することにより、装置が有する各種の機能を実現する。第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０の各々が有する各種の機能については後述する。
【００２２】
記憶装置１０４は、プログラム等の各種のデータを記憶する。例えば記憶装置１０４は、プログラムを格納する不揮発性のメモリであるＲＯＭ（Read  Only  Memory）、ＣＰＵ１０３の作業領域を有する揮発性のメモリであるＲＡＭ（Random  Access  Memory）などを含む。通信Ｉ／Ｆ部１０５は、ネットワーク５０に接続するためのインタフェースである。
【００２３】
図５は、第１のカメラ２０が有する機能の一例を示す図である。なお、図５の例では、本実施形態に関する機能を主に例示しているが、第１のカメラ２０が有する機能はこれらに限られるものではない。図５に示すように、第１のカメラ２０は、画像取得部２０１、点・線分特徴検出部２０２、内部パラメータ算出部２０３、第１のマーカー検出部２０４、外部パラメータ算出部２０５、空間特徴検出部２０６、レンズ歪情報算出部２５０、線分・円弧特徴検出部２５１、マーカー検出部２５２、マーカー情報記憶部２５３、を有する。
【００２４】
画像取得部２０１は、第１のカメラ２０が撮像した第１の画像を取得する。具体的には、画像取得部２０１は、撮像素子１０２により撮像された第１の画像を取得する。
【００２５】
レンズ歪情報算出部２５０は、画像取得部２０１により取得された第１の画像を解析し、線分データ（直線または円弧）を線分・円弧特徴検出部２５１で検出する。レンズ歪情報算出部２５０は、線分・円弧特徴検出部２５１で検出された線分データに基づいて、第１のカメラ２０のレンズ歪情報を算出する。なお、線分データに基づいてマーカーをマーカー検出部２５２が検出し、レンズ歪情報算出部２５０は、マーカー検出部２５２で検出されたマーカーの形状およびサイズ情報を利用してレンズ歪情報を算出してもよい。レンズ歪のモデル式はレンズの半径方向の歪係数、円周方向の歪係数を用いた高次式で表され、レンズ歪情報はこれらの係数で表される。レンズ歪情報算出部２５０は、算出したレンズ歪情報を内部パラメータ算出部２０３へ送信する。また、レンズ歪情報算出部２５０は、レンズ歪情報と第１の画像の歪を除去した画像を点・線分特徴検出部２０２へ送信する。あるいは、レンズ歪情報算出部２５０で、歪を除去した画像を生成することが無い場合は、レンズ歪情報と第１の画像を点・線分特徴検出部２０２へ送信する。この例では、第１のカメラ２０が撮像した第１の画像を用いてレンズ歪情報を算出しているが、これに限らず、既知のレンズ歪情報が予め与えられる形態であってもよい。
【００２６】
点・線分特徴検出部２０２は、レンズ歪情報算出部２５０によって算出されたレンズ歪情報と、第１の画像あるいは第１の画像の歪を除去した画像とを解析する。より具体的には、点・線分特徴検出部２０２は、第１のマーカー７０の特徴および第１のマーカー７０の周辺情報および画像全体の空間特徴（地面または壁などに対応する直線または平面の特徴）などの特徴データを抽出する。なお、レンズ歪を除去した画像を解析するのではなく、線分・円弧特徴検出部２５１で検出した線分データを、レンズ歪情報を用いて補正した結果を特徴データとして抽出してもよい。
【００２７】
第１のマーカー検出部２０４は、点・線分特徴検出部２０２で検出した特徴データと、マーカー情報記憶部２５３に格納されるマーカー識別情報とに基づいて、第１の画像内の第１のマーカー７０を検出し、検出された第１のマーカー７０の位置および形状を示す第１のマーカー情報を、内部パラメータ算出部２０３、外部パラメータ算出部２０５、およびデータサーバ１０へ送信する。また、この例では、第１のマーカー検出部２０４は、検出した第１のマーカー７０が有する第１のパターンに対応する第１の識別情報を認識し、その認識した第１の識別情報を、第１のマーカー情報と併せてデータサーバ１０へ送信する。第１のマーカー情報は、例えば第１のマーカー７０の一辺のサイズ、第１のパターンを構成する矩形の一辺のサイズ、第１の画像内の第１のマーカー７０の位置を示す情報などを含む。
【００２８】
内部パラメータ算出部２０３は、レンズ歪情報算出部２５０から受信したレンズ歪み情報、既知の第１のカメラ２０のレンズ焦点距離、第１のマーカー検出部２０４から受信した第１のマーカー情報などに基づいて、第１のカメラ２０の内部パラメータを示す第１の内部パラメータを算出する。第１の内部パラメータは、第１のカメラ２０のカメラの３次元座標系（例えばカメラのレンズ中心を原点とする３次元の座標系）の座標点と、第１のカメラ２０により撮像された第１の画像の座標系（２次元の座標系）の座標点との対応関係を決める行列で表される。内部パラメータ算出部２０３は、算出した第１の内部パラメータと、レンズ歪情報算出部２５０から受信したレンズ歪情報と、を外部パラメータ算出部２０５へ送信する。レンズ歪情報は、内部パラメータの１つの情報とすることもでき、以後、「第１の内部パラメータ」と称した場合は、レンズ歪情報が含まれるものとする。なお、第１の内部パラメータを算出する方法としては公知の様々な技術を利用することができる。また、この例では、第１のカメラ２０が撮像した第１の画像を用いて第１の内部パラメータを算出しているが、これに限らず、既知の第１の内部パラメータが予め与えられる形態であってもよい。
【００２９】
外部パラメータ算出部２０５は、内部パラメータ算出部２０３から受信した第１の内部パラメータと、第１のマーカー検出部２０４から受信した第１のマーカー情報とに基づいて、第１のカメラ２０の外部パラメータを示す第１の外部パラメータを算出する。この例では、外部パラメータ算出部２０５は、第１のマーカー検出部２０４により検出された第１のマーカー７０を原点（例えば第１のマーカー７０の中心または４隅の何れか１つ）とする第１のカメラ２０側の３次元座標系を設定する。外部パラメータ算出部２０５は、設定した第１のカメラ２０側の３次元座標系の座標点と、上述の第１のカメラ２０のカメラの３次元座標系の座標点との対応関係を決める行列を、第１の外部パラメータとして算出する。外部パラメータ算出部２０５が算出した第１の外部パラメータは、第１のカメラ２０側の３次元座標系における第１のカメラ２０の位置および姿勢を特定可能な情報である。そして、外部パラメータ算出部２０５は、算出した第１の外部パラメータと、内部パラメータ算出部２０３から受信した第１の内部パラメータとを、第１のカメラ２０のカメラ情報を示す第１のカメラ情報としてデータサーバ１０へ送信する。
【００３０】
空間特徴検出部２０６は、外部パラメータ算出部２０５から受信する第１の内部パラメータおよび第１の外部パラメータと、点・線分特徴検出部２０２から受信する特徴データとに基づいて、第１のマーカー７０の周辺の空間特徴を検出する。そして、第１のマーカー７０の周辺情報および画像全体の空間特徴に関する情報を示す第１の空間特徴情報をデータサーバ１０へ送信する。空間特徴に関する情報（空間特徴情報）には、例えば直線、平面、角などの識別子と、位置情報との組が含まれてもよい。データサーバ１０は、第１のカメラ２０から送信された第１のカメラ情報、第１のマーカー情報、第１の空間特徴情報、および、第１の識別情報を紐付けて管理（記憶）する。
【００３１】
以上に説明した、第１のカメラ２０が有する複数の機能は、ＣＰＵ１０３が記憶装置１０４に格納されたプログラムを実行することにより実現される。ただし、これに限らず、上述の第１のカメラ２０が有する複数の機能の全部または一部が専用のハードウェア回路で実現される形態であってもよい。
【００３２】
図６は、第２のカメラ３０が有する機能の一例を示す図である。なお、図６の例では、本実施形態に関する機能を主に例示しているが、第２のカメラ３０が有する機能はこれらに限られるものではない。図６に示すように、第２のカメラ３０は、画像取得部３０１、点・線分特徴検出部３０２、内部パラメータ算出部３０３、第２のマーカー検出部３０４、外部パラメータ算出部３０５、空間特徴検出部３０６、レンズ歪情報算出部３５０、線分・円弧特徴検出部３５１、マーカー検出部３５２、マーカー情報記憶部３５３、を有する。基本的な機能は、第１のカメラ２０側の機能と同様であるため、以下では適宜に簡略しながら、第２のカメラ３０が有する機能を説明する。
【００３３】
画像取得部３０１は、第２のカメラ３０が撮像した第２の画像を取得する。具体的には、画像取得部３０１は、撮像素子１０２により撮像された第２の画像を取得する。
【００３４】
レンズ歪情報算出部３５０は、画像取得部３０１により取得された第２の画像を解析し、線分データ（直線または円弧）を線分・円弧特徴検出部３５１で検出する。レンズ歪情報算出部３５０は、線分・円弧特徴検出部３５１で検出された線分データに基づいて、第２のカメラ３０のレンズ歪情報を算出する。なお、線分データに基づいてマーカーをマーカー検出部３５２が検出し、レンズ歪情報算出部３５０は、マーカー検出部３５２で検出されたマーカーの形状およびサイズ情報を利用してレンズ歪情報を算出してもよい。レンズ歪のモデル式はレンズの半径方向の歪係数、円周方向の歪係数を用いた高次式で表され、レンズ歪情報はこれらの係数で表される。レンズ歪情報算出部３５０は、算出したレンズ歪情報を内部パラメータ算出部３０３へ送信する。また、レンズ歪情報算出部３５０は、レンズ歪情報と第２の画像の歪を除去した画像を点・線分特徴検出部３０２へ送信する。あるいは、レンズ歪情報算出部３５０で、歪を除去した画像を生成することが無い場合は、レンズ歪情報と第２の画像を点・線分特徴検出部３０２へ送信する。また、この例では、第２のカメラ３０が撮像した第２の画像を用いてレンズ歪情報を算出しているが、これに限らず、既知のレンズ歪情報が予め与えられる形態であってもよい。
【００３５】
点・線分特徴検出部３０２は、レンズ歪情報算出部３５０によって算出されたレンズ歪情報と、第２の画像あるいは第２の画像の歪を除去した画像とを解析する。より具体的には、点・線分特徴検出部３０２は、第２のマーカー８０の特徴、第２のマーカー８０の周辺情報および画像全体の空間特徴などの特徴データを抽出する。なお、レンズ歪を除去した画像を解析するのではなく、線分・円弧特徴検出部３５１で検出した線分データを、レンズ歪情報を用いて補正した結果を特徴データとして抽出してもよい。
【００３６】
第２のマーカー検出部３０４は、点・線分特徴検出部３０２で検出した特徴データと、マーカー情報記憶部３５３に格納されるマーカー識別情報とに基づいて、第２の画像内の第２のマーカー８０を検出し、検出された第２のマーカー８０の位置および形状を示す第２のマーカー情報を、内部パラメータ算出部３０３、外部パラメータ算出部３０５、およびデータサーバ１０へ送信する。また、第２のマーカー検出部３０４は、検出した第２のマーカー８０が有する第２のパターンに対応する第２の識別情報を認識し、その認識した第２の識別情報を、第２のマーカー情報と併せてデータサーバ１０へ送信する。第２のマーカー情報は、例えば第２のマーカー８０の一辺のサイズ、第２のパターンを構成する矩形の一辺のサイズ、第２の画像内の第２のマーカー８０の位置を示す情報などを含む。
【００３７】
内部パラメータ算出部３０３は、レンズ歪情報算出部３５０から受信したレンズ歪み情報、既知の第２のカメラ３０のレンズ焦点距離、第２のマーカー検出部３０４から受信した第２のマーカー情報などに基づいて、第２のカメラ３０の内部パラメータを示す第２の内部パラメータを算出する。第２の内部パラメータは、第２のカメラ３０のカメラの３次元座標系（例えばカメラのレンズ中心を原点とする３次元の座標系）の座標点と、第２のカメラ３０により撮像された第２の画像の座標系（２次元の座標系）の座標点との対応関係を決める行列で表される。内部パラメータ算出部３０３は、算出した第２の内部パラメータと、レンズ歪情報算出部３５０から受信したレンズ歪情報とを外部パラメータ算出部３０５へ送信する。レンズ歪情報は内部パラメータの１つの情報とすることもでき、以後、「第２の内部パラメータ」と称した場合は、レンズ歪情報が含まれるものとする。なお、第２の内部パラメータを算出する方法としては公知の様々な技術を利用することができる。また、この例では、第２のカメラ３０が撮像した第２の画像を用いて第２の内部パラメータを算出しているが、これに限らず、既知の内部パラメータが予め与えられる形態であってもよい。
【００３８】
外部パラメータ算出部３０５は、内部パラメータ算出部３０３から受信した第２の内部パラメータと、第２のマーカー検出部３０４から受信した第２のマーカー情報とに基づいて、第２のカメラ３０の外部パラメータを示す第２の外部パラメータを算出する。外部パラメータ算出部３０５は、第２のマーカー検出部３０４により検出された第２のマーカー８０を原点（例えば第２のマーカー８０の中心または４隅の何れか１つ）とする第２のカメラ３０側の３次元座標系を設定する。外部パラメータ算出部３０５は、設定した第２のカメラ３０側の３次元座標系の座標点と、第２のカメラ３０のカメラの３次元座標系の座標点との対応関係を決める行列を、第２の外部パラメータとして算出する。外部パラメータ算出部３０５が算出した第２の外部パラメータは、第２のカメラ３０側の３次元座標系における第２のカメラ３０の位置および姿勢を特定可能な情報である。そして、外部パラメータ算出部３０５は、算出した第２の外部パラメータと、内部パラメータ算出部３０３から受信した第２の内部パラメータとを、第２のカメラ３０のカメラ情報を示す第２のカメラ情報としてデータサーバ１０へ送信する。
【００３９】
空間特徴検出部３０６は、外部パラメータ算出部３０５から受信する第２の内部パラメータおよび第２の外部パラメータと、点・線分特徴検出部３０２から受信する特徴データとに基づいて、第２のマーカー８０の周辺の空間特徴を検出する。そして、第２のマーカー８０の周辺情報および画像全体の空間特徴に関する情報を示す第２の空間特徴情報をデータサーバ１０へ送信する。データサーバ１０は、第２のカメラ３０から送信された第２のカメラ情報、第２のマーカー情報、第２の空間特徴情報、および、第２の識別情報を紐付けて管理（記憶）する。以下の説明では、データサーバ１０が管理する第１のマーカー情報および第２のマーカー情報を互いに区別しない場合は単に「マーカー情報」と称する場合がある。同様に、データサーバ１０が管理する第１の識別情報および第２の識別情報を互いに区別しない場合は単に「識別情報」と称し、第１の空間特徴情報および第２の空間特徴情報を互いに区別しない場合は単に「空間特徴情報」と称する場合がある。
【００４０】
以上に説明した、第２のカメラ３０が有する複数の機能は、ＣＰＵ１０３が記憶装置１０４に格納されたプログラムを実行することにより実現される。ただし、これに限らず、例えば上述の第２のカメラ３０が有する複数の機能の全部または一部が専用のハードウェア回路で実現される形態であってもよい。
【００４１】
図７は、移動カメラ４０が有する機能の一例を示す図である。なお、図７の例では、本実施形態に関する機能を主に例示しているが、移動カメラ４０が有する機能はこれらに限られるものではない。図７に示すように、移動カメラ４０は、画像取得部４０１、点・線分特徴検出部４０２、内部パラメータ算出部４０３、マーカー検出部４０４、外部パラメータ算出部４０５、空間特徴検出部４０６、レンズ歪情報算出部４５０、線分・円弧特徴検出部４５１、マーカー検出部４５２、マーカー情報記憶部４５３を有する。さらに、移動カメラ４０は、照合部４０７、情報変換部４０８、記憶部４０９、シミュレーション部４１０、データ記憶部４５４を有する。
【００４２】
以下、移動カメラ４０が有する機能について説明する。画像取得部４０１は、移動カメラ４０が撮像した動画像を取得する。より具体的には、画像取得部４０１は、撮像素子１０２により時系列に撮像された第３の画像を順次に取得（動画像を取得）する。
【００４３】
レンズ歪情報算出部４５０は、画像取得部４０１により取得された第３の画像を解析し、線分データ（直線または円弧）を線分・円弧特徴検出部４５１で検出する。レンズ歪情報算出部４５０は、線分・円弧特徴検出部４５１で検出された線分データに基づいて、移動カメラ４０のレンズ歪情報を算出する。なお、線分データに基づいてマーカーをマーカー検出部４５２が検出し、レンズ歪情報算出部４５０は、マーカー検出部４５２で検出されたマーカーの形状およびサイズ情報を利用してレンズ歪情報を算出してもよい。レンズ歪のモデル式はレンズの半径方向の歪係数、円周方向の歪係数を用いた高次式で表され、レンズ歪情報はこれらの係数で表される。レンズ歪情報算出部４５０は、算出したレンズ歪情報を内部パラメータ算出部４０３へ送信する。また、レンズ歪情報算出部４５０は、レンズ歪情報と、第３の画像の歪を除去した画像とを点・線分特徴検出部４０２へ送信する。あるいは、レンズ歪情報算出部４５０で、歪を除去した画像を生成することが無い場合は、レンズ歪情報と第３の画像とを点・線分特徴検出部４０２へ送信する。また、この例では、移動カメラ４０が撮像した動画像の画像（第３の画像）を用いてレンズ歪情報を算出しているが、これに限らず、既知のレンズ歪情報が予め与えられる形態であってもよい。
【００４４】
点・線分特徴検出部４０２は、レンズ歪情報算出部４５０によって算出されたレンズ歪情報と、第３の画像あるいは第３の画像の歪を除去した画像とを解析する。より具体的には、点・線分特徴検出部４０２は、マーカーの特徴、マーカーの周辺情報および画像全体の空間特徴（地面または壁などに対応する直線または平面の特徴）などの、動画像に含まれる特徴データを抽出する。なお、レンズ歪を除去した画像を解析するのではなく、線分・円弧特徴検出部４５１で検出した線分データを、レンズ歪情報を用いて補正した結果を特徴データとして抽出してもよい。
【００４５】
マーカー検出部４０４は、点・線分特徴検出部４０２で検出した特徴データと、マーカー情報記憶部４５３に格納されるマーカー識別情報とに基づいて、動画像内のマーカー（この例では第１のマーカー７０または第２のマーカー８０）を検出する。マーカー検出部４０４は、検出したマーカーの位置および形状を示す第３のマーカー情報を、内部パラメータ算出部４０３および外部パラメータ算出部４０５へ送信する。第３のマーカー情報は、例えばマーカーの一辺のサイズ、マーカーが有するパターンを構成する矩形の一辺のサイズ、動画像内のマーカーの位置を示す情報などを含む。また、マーカー検出部４０４は、検出したマーカーが有するパターンに対応する識別情報を認識し、その認識した第３の識別情報を、第３のマーカー情報と併せて外部パラメータ算出部４０５、およびデータ記憶部４５４へ送信する。例えばマーカー検出部４０４は、複数フレームの画像を用いて、マーカーの検出および第３の識別情報の認識を実施することもできる。
【００４６】
内部パラメータ算出部４０３は、レンズ歪情報算出部４５０から受信したレンズ歪み情報、既知の移動カメラ４０のレンズ焦点距離、レンズの歪み係数、マーカー検出部４０４から受信した第３のマーカー情報などに基づいて、移動カメラ４０の内部パラメータを示す第３の内部パラメータを算出する。第３の内部パラメータは、移動カメラ４０のカメラの３次元座標系（例えばカメラのレンズ中心を原点とする３次元の座標系）の座標点と、移動カメラ４０により撮像された動画像の画像（第３の画像）の座標系（２次元の座標系）の座標点との対応関係を決める行列で表される。内部パラメータ算出部４０３は、算出した第３の内部パラメータと、レンズ歪情報算出部４５０から受信したレンズ歪情報とを外部パラメータ算出部４０５へ送信する。レンズ歪情報は、内部パラメータの１つの情報とすることもでき、以後、「第３の内部パラメータ」と称した場合は、レンズ歪情報が含まれるものとする。なお、内部パラメータを算出する方法としては公知の様々な技術を利用することができる。また、この例では、移動カメラ４０が撮像した動画像の画像（第３の画像）を用いて内部パラメータを算出しているが、これに限らず、既知の内部パラメータが予め与えられる形態であってもよい。
【００４７】
外部パラメータ算出部４０５は、内部パラメータ算出部４０３から受信した第３の内部パラメータと、マーカー検出部４０４から受信した第３のマーカー情報とに基づいて、移動カメラ４０の外部パラメータを示す第３の外部パラメータを算出する。この例では、外部パラメータ算出部４０５は、マーカー検出部４０４により検出された１つ目のマーカー（この例では第１のマーカー７０）を原点（例えば第１のマーカー７０の中心または４隅の何れか１つ）とする移動カメラ４０側の３次元座標系を設定する。外部パラメータ算出部４０５は、設定した移動カメラ４０側の３次元座標系の座標点と、上述の移動カメラ４０のカメラの３次元座標系の座標点との対応関係を決める行列を、第３の外部パラメータとして算出する。外部パラメータ算出部４０５により算出された第３の外部パラメータは、移動カメラ４０側の３次元座標系における移動カメラ４０の位置および姿勢を特定可能な情報である。この例では、外部パラメータ算出部４０５は、２つ目以降のマーカー（この例では第２のマーカー８０）が検出されても原点を変更することはせず、移動カメラ４０により順次に撮像される動画像に基づいて（動画像から求められる被写体の移動量および加速度等も利用可能）、第３の外部パラメータを算出する。
【００４８】
外部パラメータ算出部４０５は、マーカー検出部４０４から第３のマーカー情報を受信するたびに（つまり新たにマーカーが検出されるたびに）、移動カメラ４０の第３の外部パラメータを算出する。そして、外部パラメータ算出部４０５は、その算出した第３の外部パラメータと、内部パラメータ算出部４０３から受信した第３の内部パラメータとを、移動カメラ４０のカメラ情報を示す第３のカメラ情報としてデータ記憶部４５４へ送信する。また、外部パラメータ算出部４０５は、マーカー検出部４０４から受信した第３のマーカー情報をデータ記憶部４５４へ送信する。つまり、この例では、マーカー検出部４０４によりマーカーが検出されるたびに、該マーカーに対応する第３のカメラ情報および第３のマーカー情報がデータ記憶部４５４へ送信される。
【００４９】
空間特徴検出部４０６は、外部パラメータ算出部４０５から受信する第３の内部パラメータおよび第３の外部パラメータと、点・線分特徴検出部４０２から受信する特徴データとに基づいて、マーカーの周辺の空間特徴を検出する。そして、マーカーの周辺情報および画像全体の空間特徴に関する情報を示す第３の空間特徴情報をデータ記憶部４５４へ送信する。この例では、第３の空間特徴情報には、例えば直線、平面、角などの識別子と、位置情報との組が含まれてもよい。データ記憶部４５４は、移動カメラ４０の第３のカメラ情報、第３のマーカー情報、第３の空間特徴情報、および、第３の識別情報が格納される。
【００５０】
照合部４０７は、データ記憶部４５４から第３のマーカー情報と第３の識別情報の組を読出し、当該組に含まれる第３の識別情報と一致する識別情報がデータサーバ１０に存在するか否かを確認する。照合部４０７は、確認した識別情報がデータサーバ１０に存在する場合は、基準座標系を設定する。具体的には、第１のカメラ２０が撮像した第１画像から検出した第１のマーカー７０又は、第２のカメラ３０が撮像した第２画像から検出した第２のマーカー８０と、移動カメラ４０が撮像した動画像から検出したマーカーが同一であると関連づけ、基準座標を設定し、基準座標系に設定されたマーカーの識別情報であることをデータサーバ１０に送信する。この例では、基準座標系は第１のマーカー７０を基準とする。複数の第３の識別情報のうち、基準座標として設定された第３の識別情報は、基準座標系に設定された識別情報を含み、情報変換部４０８と、シミュレーション部４１０へ送信する。また、確認した識別情報がデータサーバ１０に存在する場合、照合部４０７は、該識別情報に紐付く第１又は第２のカメラ情報、第１又は第２のマーカー情報、および、第１又は第２の空間特徴情報を情報変換部４０８へ送信するようにデータサーバ１０へ指示する。この指示を受けたデータサーバ１０は、第１又は第２のカメラ情報、第１又は第２のマーカー情報、および、第１又は第２の空間特徴情報を情報変換部４０８へ送信する。
【００５１】
情報変換部４０８は、データサーバ１０から第１又は第２のカメラ情報、第１又は第２のマーカー情報および第１又は第２の空間特徴情報を受信した場合、第１又は第２のカメラ情報、第１又は第２のマーカー情報および第１又は第２の空間特徴情報を、上述の基準座標系に合わせて変換する。つまり、情報変換部４０８は、移動カメラ４０により撮像された動画像から、第１のカメラ２０により撮像された第１の画像に含まれる第１のマーカー７０、又は、第２のカメラ３０により撮像された第２の画像に含まれる第２のマーカー８０が検出された場合、第１のカメラ２０の第１のカメラ情報等、又は、第２のカメラ３０の第２のカメラ情報等を基準座標系に合わせて変換する。情報変換部４０８の具体的な内容については後述する。情報変換部４０８により変換された情報（変換済みの情報）は記憶部４０９に記憶される。
【００５２】
シミュレーション部４１０は、記憶部４０９に記憶された第１のカメラ２０および第２のカメラ３０の各々の変換済みの情報を読出し、移動カメラ４０側のデータ記憶部４５４から情報を読出して変換し、比較して差分を検出する。シミュレーション部４１０のより具体的な機能については後述する。
【００５３】
図８は、情報変換部４０８、記憶部４０９、シミュレーション部４１０のより具体的な内容を説明するための機能ブロック図である。図８に示すＡの部分は、図７に示すＡの部分に対応している。上述したように、照合部４０７は、データ記憶部４５４から読出した組に含まれる第３の識別情報と一致する識別情報がデータサーバ１０に存在する場合、該識別情報に紐付く第１のカメラ２０又は第２のカメラ３０の情報（第１又は第２のカメラ情報、第１又は第２のマーカー情報、第１又は第２の空間特徴情報）を情報変換部４０８へ送信するようにデータサーバ１０へ指示する。この指示を受けたデータサーバ１０は、第１のカメラ２０又は第２のカメラ３０の情報を情報変換部４０８へ送信する。また、情報変換部４０８は、照合部４０７から基準座標系に設定された識別情報を含む第３の識別情報を受信する。
【００５４】
つまり、移動カメラ４０により撮像された動画像から、第１のカメラ２０により撮像された第１の画像に含まれる第１のマーカー７０、または、第２のカメラ３０により撮像された第２の画像に含まれる第２のマーカー８０が検出されるたびに、第１のカメラ２０又は第２のカメラ３０の情報が情報変換部４０８に入力され、情報変換部４０８による変換が行われる。この例では、移動カメラ４０の動画像から第１のマーカー７０が検出された場合、第１のカメラ２０の第１のカメラ情報、第１のマーカー情報、および第１の空間特徴情報が情報変換部４０８に入力される。その後、第２の撮像領域を撮像可能な位置に移動した移動カメラ４０の動画像から第２のマーカー８０が検出された場合、第２のカメラ３０の第２のカメラ情報、第２のマーカー情報、および第２の空間特徴情報が情報変換部４０８に入力される。
【００５５】
図８に示すように、情報変換部４０８は、算出部４２１、マーカー情報変換部４２２、および、空間特徴情報変換部４２３を有する。
【００５６】
算出部４２１は、上述の基準座標系に合わせて第１のカメラ２０の第１のカメラ情報又は第２のカメラ３０の第２のカメラ情報を変換し、第１又は第２の基準座標系カメラ情報を出力する。図９は、算出部４２１が有する機能の一例を示す図である。図９に示すように、例えば算出部４２１は、第１の算出部５０１と、第２の算出部５０２とを有する。なお、図９の例では、本実施形態に関する機能を主に例示しているが、算出部４２１が有する機能はこれらに限られるものではない。
【００５７】
第１の算出部５０１は、第１のカメラ２０により撮像される第１のマーカー７０を含む第１の画像と、移動カメラ４０により撮像される第１のマーカー７０を含む第１の動画像とに基づいて、第１のカメラ２０の位置を示す第１の基準座標系カメラ情報を算出する。より具体的には、第１の算出部５０１は、移動カメラ４０により撮像された動画像から第１のマーカー７０が検出された場合、第１の画像に基づいて、第１のカメラ情報を基準座標系の第１のカメラ２０の位置を示す第１の基準座標系カメラ情報に変換する。この例では、移動カメラ４０により撮像される第１のマーカー７０を含む動画像が「第１の動画像」に対応しているが、これに限られるものではない。また、この例では、第１の基準座標系カメラ情報は、基準座標系の座標点と、第１のカメラ２０のカメラの３次元座標系の座標点との対応関係を決める第１のカメラ２０の第１の外部パラメータ（基準座標系に合わせた第１の外部パラメータ、以下「変換済みの第１の外部パラメータ」と称する場合がある）であるが、これに限られるものではない。第１の基準座標系カメラ情報は、第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０に共通の基準座標系と、第１のカメラ２０の座標系との対応関係を示す情報であればよい。以下、第１の基準座標系カメラ情報の具体的な算出方法を説明する。
【００５８】
本実施形態の第１の算出部５０１は、データサーバ１０から第１のカメラ２０の情報を受信した場合、つまり、移動カメラ４０により撮像された動画像から第１のマーカー７０が検出された場合、第１の外部パラメータを第１の基準座標系カメラ情報に変換する。第１の算出部５０１は、基準座標系における第１のマーカー７０の３次元位置（ｘ，ｙ，ｚ）および向き（回転）と、第１のカメラ２０の第１の内部パラメータと、第１の画像内の第１のマーカー７０の位置および向きとに基づいて、基準座標系に合わせた第１のカメラ２０の第１の外部パラメータを第１の基準座標系カメラ情報として算出する。
【００５９】
この例では、第１のカメラ２０の第１の内部パラメータは、データサーバ１０から受信した第１のカメラ２０の第１のカメラ情報に含まれている。また、第１の画像内の第１のマーカー７０の位置を示す情報は、データサーバ１０から受信した第１のマーカー情報に含まれている。上述したように、データサーバ１０から受信した第１のカメラ２０の第１のカメラ情報および第１のマーカー情報は、第１の画像を元に求められる。また、この例では、基準座標系における第１のマーカー７０の位置は基準座標系の原点に設定されるため、移動カメラ４０の動画像を用いなくても特定できる。したがって、第１の算出部５０１は、第１の画像に基づいて、基準座標系における第１のカメラ２０の位置を示す第１の基準座標系カメラ情報を算出していると考えることができる。第１の基準座標系カメラ情報は、「第１のカメラ位置情報」の一例であるが、これに限定されない。また、上述したように、この例では、第１の基準座標系カメラ情報は、第１のカメラ２０の変換済みの第１の外部パラメータであるが、これに限られるものではない。
【００６０】
第２の算出部５０２は、第１のカメラ２０と離間して配置される第２のカメラ３０により撮像される第２のマーカー８０を含む第２の画像と、移動カメラ４０により撮像される第２のマーカー８０を含む第２の動画像とに基づいて、第２のカメラ３０の位置を示す第２の基準座標系カメラ情報を算出する。より具体的には、第２の算出部５０２は、移動カメラ４０により撮像された動画像から第２のマーカー８０が検出された場合、第２の画像と、移動カメラ４０により撮像された動画像とに基づいて、第２のカメラ情報を基準座標系の第２のカメラ３０の位置を示す第２の基準座標系カメラ情報に変換する。この例では、移動カメラ４０により撮像される第２のマーカー８０を含む動画像が「第２の動画像」に対応しているが、これに限られるものではない。また、この例では、第２の基準座標系カメラ情報は、基準座標系の座標点と、第２のカメラ３０のカメラの３次元座標系の座標点との対応関係を決める第２のカメラ３０の第２の外部パラメータ（基準座標系に合わせた第２の外部パラメータ、以下「変換済みの第２の外部パラメータ」と称する場合がある）であるが、これに限られるものではない。第２の基準座標系カメラ情報は、基準座標系と、第２のカメラ３０の座標系との対応関係を示す情報であればよい。以下、第２の基準座標系カメラ情報の具体的な算出方法を説明する。
【００６１】
本実施形態の第２の算出部５０２は、データサーバ１０から第２のカメラ３０の情報を受信した場合、つまり、移動カメラ４０により撮像された動画像から第２のマーカー８０が検出された場合、第２の外部パラメータを第２の基準座標系カメラ情報に変換する。上述したように、第２のマーカー８０が検出された場合、第２のマーカー８０に対応する第３のカメラ情報および第３のマーカー情報が、データ記憶部４５４から情報変換部４０８へ送信される。第２の算出部５０２は、データ記憶部４５４から受信した第２のマーカー８０に対応する第３のカメラ情報および第３のマーカー情報に基づいて、基準座標系（この例では第１のマーカー７０を原点）における第２のマーカー８０の３次元位置（ｘ，ｙ，ｚ）および向き（回転）を特定する。より具体的には、第２の算出部５０２は、第３のマーカー情報が示す第２のマーカー８０の位置および向きと、第３のカメラ情報に含まれる第３の外部パラメータおよび第３の内部パラメータとに基づいて、基準座標系における第２のマーカー８０の位置および向きを特定する。第３のカメラ情報に含まれる第３の外部パラメータは、例えば移動カメラ４０の移動量と回転量、つまり、第１のマーカー７０検出時の移動カメラ４０の向きと、第２のマーカー８０検出時の移動カメラ４０の向きとの差分を表している。
【００６２】
上述したように、この例では、第２のマーカー８０に対応する第３のカメラ情報および第３のマーカー情報は、移動カメラ４０により撮像された動画像を元に求められる。したがって、第２の算出部５０２は、移動カメラ４０により撮像された動画像に基づいて、基準座標系における第２のマーカー８０の位置および向きを特定していると考えることができる。
【００６３】
そして、第２の算出部５０２は、基準座標系における第２のマーカー８０の位置および向きと、第２のカメラ３０の第２の内部パラメータと、第２の画像内の第２のマーカー８０の位置および向きとに基づいて、基準座標系に合わせた第２のカメラ３０の第２の外部パラメータを第２の基準座標系カメラ情報として算出する。この例では、第２のカメラ３０の第２の内部パラメータは、データサーバ１０から受信した第２のカメラ情報に含まれている。また、第２の画像内の第２のマーカー８０の位置を示す情報は、データサーバ１０から受信した第２のマーカー情報に含まれている。上述したように、第２のカメラ３０の第２のカメラ情報および第２のマーカー情報は、第２の画像を元に求められる。
【００６４】
以上より、本実施形態の第２の算出部５０２は、第２の画像と、移動カメラ４０により撮像された動画像とに基づいて、基準座標系における第２のカメラ３０の位置を示す第２の基準座標系カメラ情報を算出していると考えることができる。第２の基準座標系カメラ情報は、「第２のカメラ位置情報」の一例であるが、これに限定されない。また、上述したように、この例では、第２の基準座標系カメラ情報は、第２のカメラ３０の変換済みの第２の外部パラメータであるが、これに限られるものではない。以上のようにして算出部４２１により算出された第１の基準座標系カメラ情報および第２の基準座標系カメラ情報は、記憶部４０９に記憶される。以下の説明では、第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を区別しない場合は、「基準座標系カメラ情報」と称する場合がある。
【００６５】
図８に戻って説明を続ける。マーカー情報変換部４２２は、「第１の変換部」の一例であり、第１の画像に含まれる第１のマーカー７０の位置および形状の情報を基準座標系に合わせて変換して第１の変換済情報を出力、又は第２の画像に含まれる第２のマーカー８０の位置および形状の情報を基準座標系に合わせて変換して第２の変換済情報を出力する。以下、具体的に説明する。この例では、マーカー情報変換部４２２は、第１のマーカー情報又は第２のマーカー情報を上述の基準座標系に合わせて変換する。例えばマーカー情報変換部４２２は、算出部４２１により算出された第１の基準座標系カメラ情報又は第２の基準座標系カメラ情報と、第１のカメラ２０の第１の内部パラメータ又は第２のカメラ３０の第２の内部パラメータとを用いて、上記変換を行うことができる。以下では、マーカー情報変換部４２２により変換された第１のマーカー情報を、「変換済みの第１のマーカー情報」と称し、マーカー情報変換部４２２により変換された第２のマーカー情報を、「変換済みの第２のマーカー情報」と称する場合がある。両者を区別しない場合は、「変換済みのマーカー情報」と称する。変換済みのマーカー情報は、記憶部４０９に記憶される。この例では、変換済みの第１のマーカー情報は上述の「第１の変換済情報」に対応し、変換済みの第２のマーカー情報は上述の「第２の変換済情報」に対応しているが、これに限られるものではない。
【００６６】
図１０は、マーカー情報変換部４２２が有する機能の一例を示す図である。図１０に示すように、マーカー情報変換部４２２は、第１の位置形状変換部５１１と、第２の位置形状変換部５１２とを有する。なお、マーカー情報変換部４２２が有する機能はこれらに限られるものではない。
【００６７】
第１の位置形状変換部５１１は、第１の画像内の第１のマーカー７０の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えば第１の位置形状変換部５１１は、上述の第１の基準座標系カメラ情報（この例では、変換済みの第１の外部パラメータ）と、データサーバ１０から取得した第１のカメラ２０の第１の内部パラメータとを用いて、データサーバ１０から取得した第１のマーカー情報を基準座標系に合わせて変換する。以下では、基準座標系に合わせて変換された第１のマーカー情報を、「変換済みの第１のマーカー情報」と称する。
【００６８】
同様に、第２の位置形状変換部５１２は、第２の画像内の第２のマーカー８０の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えば第２の位置形状変換部５１２は、上述の第２の基準座標系カメラ情報（この例では、変換済みの第２の外部パラメータ）と、データサーバ１０から取得した第２のカメラ３０の第２の内部パラメータとを用いて、データサーバ１０から取得した第２のマーカー情報を基準座標系に合わせて変換する。以下では、基準座標系に合わせて変換された第２のマーカー情報を、「変換済みの第２のマーカー情報」と称する。
【００６９】
図８に戻って説明を続ける。空間特徴情報変換部４２３は、第１又は第２の空間特徴情報を上述の基準座標系に合わせて変換する。例えば空間特徴情報変換部４２３は、算出部４２１により算出された第１又は第２の基準座標系カメラ情報と、既知の第１のカメラ２０の第１の内部パラメータ又は第２のカメラ３０の第２の内部パラメータとを用いて、上記変換を行うことができる。以下では、空間特徴情報変換部４２３により変換された第１の空間特徴情報を、「変換済みの第１の空間特徴情報」と称し、変換された第２の空間特徴情報を、「変換済みの第２の空間特徴情報」と称する場合がある。両者を区別しない場合は、「変換済みの空間特徴情報」と称する。変換済みの空間特徴情報は、記憶部４０９に記憶される。
【００７０】
図１１は、空間特徴情報変換部４２３が有する機能の一例を示す図である。図１１に示すように、空間特徴情報変換部４２３は、第１の特徴情報変換部５２１と、第２の特徴情報変換部５２２とを有する。なお、空間特徴情報変換部４２３が有する機能はこれらに限られるものではない。
【００７１】
第１の特徴情報変換部５２１は、上述の第１の空間特徴情報を、上述の基準座標系に合わせて変換する。第１の特徴情報変換部５２１は、例えばスケール、並行移動、回転移動などの変換を行う。例えば第１の特徴情報変換部５２１は、上述の第１の基準座標系カメラ情報（この例では、変換済みの第１の外部パラメータ）と、データサーバ１０から取得した第１のカメラ２０の第１の内部パラメータとを用いて、データサーバ１０から取得した第１の空間特徴情報を基準座標系に合わせて変換する。
【００７２】
同様に、第２の特徴情報変換部５２２は、上述の第２の空間特徴情報を、上述の基準座標系に合わせて変換する。例えば第２の特徴情報変換部５２２は、上述の第２の基準座標系カメラ情報（この例では、変換済みの第２の外部パラメータ）と、データサーバ１０から取得した第２のカメラ３０の第２の内部パラメータとを用いて、データサーバ１０から取得した第２の空間特徴情報を基準座標系に合わせて変換する。
【００７３】
図８に戻って説明を続ける。図８に示すように、記憶部４０９は、カメラ情報記憶部４３１と、マーカー情報記憶部４３２と、空間特徴情報記憶部４３３と、を有する。カメラ情報記憶部４３１は、算出部４２１により算出された基準座標系カメラ情報を記憶する記憶領域である。マーカー情報記憶部４３２は、マーカー情報変換部４２２により変換された変換済みのマーカー情報を記憶する記憶領域である。空間特徴情報記憶部４３３は、空間特徴情報変換部４２３により変換された変換済みの空間特徴情報を記憶する記憶領域である。
【００７４】
図８に示すように、シミュレーション部４１０は、変換済み情報取得部４４１、マーカー情報・空間特徴情報変換部４４２、差分検出部４４３、再計算部４４４、および補正部４４５を有する。
【００７５】
変換済み情報取得部４４１は、変換済み情報（基準座標系カメラ情報、変換済みマーカー情報、および、変換済み空間特徴情報を含む）を記憶部４０９から取得する。この例では、変換済み情報取得部４４１は、第１のカメラ２０および第２のカメラ３０の各々の変換済み情報を取得したタイミングで、第１のカメラ２０および第２のカメラ３０の各々の変換済み情報を差分検出部４４３へ送信する。
【００７６】
マーカー情報・空間特徴情報変換部４４２は、照合部４０７から基準座標系に設定された識別情報を含む第３の識別情報を受信し、移動カメラ４０側の情報を基準座標系に合わせて変換して差分検出部４４３へ送信する。例えばマーカー情報・空間特徴情報変換部４４２は、移動カメラ４０の第３のマーカー情報を上述の基準座標系に合わせて変換する機能を有している。マーカー情報・空間特徴情報変換部４４２は「第２の変換部」の一例であり、移動カメラ４０により撮像される動画像に含まれる第１のマーカー７０の位置および形状の情報を基準座標系に合わせて変換して第３の変換済情報を出力する。また、マーカー情報・空間特徴情報変換部４４２は、移動カメラ４０により撮像される動画像に含まれる第２のマーカー８０の位置および形状の情報を基準座標系に合わせて変換して第４の変換済情報を出力する。より具体的な内容については後述する。さらに、マーカー情報・空間特徴情報変換部４４２は、移動カメラ４０の第３の空間特徴情報を上述の基準座標系に合わせて変換する機能も有している。
【００７７】
図１２は、マーカー情報・空間特徴情報変換部４４２が有する機能の一例を示す図である。図１２に示すように、例えばマーカー情報・空間特徴情報変換部４４２は、第３の位置形状変換部５３１と、第４の位置形状変換部５３２と、第３の特徴情報変換部５３３と、第４の特徴情報変換部５３４と、を有する。なお、マーカー情報・空間特徴情報変換部４４２が有する機能はこれらに限られるものではない。例えばマーカー情報・空間特徴情報変換部４４２は、移動カメラ４０により撮像された動画像に基づいて、上述の基準座標系の空間を構築（例えば３次元点群を示す３Ｄモデルを構築）する機能を有していてもよい。
【００７８】
第３の位置形状変換部５３１は、移動カメラ４０により撮像された動画像内の第１のマーカー７０の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えばマーカー情報・空間特徴情報変換部４４２は、移動カメラ４０により第１のマーカー７０が検出されたときの移動カメラ４０の第３の内部パラメータおよび第３の外部パラメータを用いて、上記変換を行うことができる。また、この例では、基準座標系における第１のマーカー７０の位置は基準座標系の原点に設定されるため、移動カメラ４０により撮像された動画像内の第１のマーカー７０の位置および形状の情報を用いることもできる。この例では、第３の位置形状変換部５３１により変換された第１のマーカー７０の位置および形状の情報は、上述の「第３の変換済情報」に対応しているが、これに限られるものではない。同様に、第４の位置形状変換部５３２は、移動カメラ４０により撮像された動画像内の第２のマーカー８０の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えばマーカー情報・空間特徴情報変換部４４２は、移動カメラ４０により第２のマーカー８０が検出されたときの移動カメラ４０の第３の内部パラメータおよび第３の外部パラメータを用いて、上記変換を行うことができる。この例では、第４の位置形状変換部５３２により変換された第２のマーカー８０の位置および形状の情報は、上述の「第４の変換済情報」に対応しているが、これに限られるものではない。
【００７９】
第３の特徴情報変換部５３３は、移動カメラ４０により撮像された動画像内の第１のマーカー７０の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換する。例えばマーカー情報・空間特徴情報変換部４４２は、移動カメラ４０により第１のマーカー７０が検出されたときの移動カメラ４０の第３の内部パラメータおよび第３の外部パラメータを用いて、上記変換を行うことができる。また、この例では、基準座標系における第１のマーカー７０の位置は基準座標系の原点に設定されるため、移動カメラ４０により撮像された動画像内の第１のマーカー７０の周辺情報の特徴情報を用いることもできる。同様に、第４の特徴情報変換部５３４は、移動カメラ４０により撮像された動画像内の第２のマーカー８０の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換する。例えばマーカー情報・空間特徴情報変換部４４２は、移動カメラ４０により第２のマーカー８０が検出されたときの移動カメラ４０の第３の内部パラメータおよび第３の外部パラメータを用いて、上記変換を行うことができる。
【００８０】
図８に戻って説明を続ける。差分検出部４４３は、第１のカメラ２０および第２のカメラ３０側の変換済みのマーカー情報と、移動カメラ４０側の変換済みのマーカー情報との差分を検出する。この例では、差分検出部４４３は、第１の画像に基づく第１のマーカー７０の位置および形状の情報と、移動カメラ４０により撮像された動画像に基づく第１のマーカー７０の位置および形状の情報との差分を示す第１の差分を検出する。また、差分検出部４４３は、第２の画像に基づく第２のマーカー８０の位置および形状の情報と、移動カメラ４０により撮像された動画像に基づく第２のマーカー８０の位置および形状の情報との差分を示す第２の差分を検出する。より具体的には、以下のとおりである。
【００８１】
差分検出部４４３は、上述の第１の位置形状変換部５１１により変換された第１のマーカー７０の位置および形状の情報（この例では「第１の変換済情報」に対応）と、上述の第３の位置形状変換部５３１により変換された第１のマーカー７０の位置および形状の情報（この例では「第３の変換済情報」に対応）との差分を示す第１の差分を検出する。つまり、差分検出部４４３は、上述の第１の変換済情報と、上述の第３の変換済情報とを比較して第１の差分を検出する。上述したように、第１の位置形状変換部５１１により変換された第１のマーカー７０の位置および形状の情報は、第１の画像内の第１のマーカー７０の位置および形状を基準座標系における位置および形状の情報に変換されたものである。第３の位置形状変換部５３１により変換された第１マーカー７０の位置および形状の情報は、移動カメラ４０により撮像された動画像内の第１のマーカー７０の位置および形状が基準座標系における位置および形状の情報に変換されたものである。
【００８２】
また、差分検出部４４３は、上述の第２の位置形状変換部５１２により変換された第２のマーカー８０の位置および形状の情報（この例では「第２の変換済情報」に対応）と、上述の第４の位置形状変換部５３２により変換された第２のマーカー８０の位置および形状の情報（この例では「第４の変換済情報」に対応）との差分を示す第２の差分を検出する。つまり、差分検出部４４３は、上述の第２の変換済情報と、上述の第４の変換済情報とを比較して第２の差分を検出する。上述したように、第２の位置形状変換部５１２により変換された第２のマーカー８０の位置および形状の情報は、第２の画像内の第２のマーカー８０の位置および形状が基準座標系における位置および形状の情報に変換されたものである。第４の位置形状変換部５３２により変換された第２のマーカー８０の位置および形状の情報は、移動カメラ４０により撮像された動画像内の第２のマーカー８０の位置および形状の情報が基準座標系における位置および形状に変換されたものである。なお、例えば差分検出部４４３は、移動カメラ４０の第３の外部パラメータを用いて固定カメラから見たマーカーを視点変換して第１の差分および第２の差分を検出する形態であってもよいし、それとは逆の視点変換を行う形態であってもよい。
【００８３】
さらに、差分検出部４４３は、上述の第１の特徴情報変換部５２１により変換された空間特徴情報と、上述の第３の特徴情報変換部５３３により変換された空間特徴情報との差分を示す第３の差分を検出する。つまり、差分検出部４４３は、空間特徴情報を含めた詳細な照合（完全一致に限らず、部分一致または近似に基づく照合でもよい）を行って、上述の第３の差分を検出する。上述したように、第１の特徴情報変換部５２１により変換された空間特徴情報は、第１の画像内の第１のマーカー７０の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換したものである。第３の特徴情報変換部５３３により変換された空間特徴情報は、移動カメラ４０により撮像された動画像内の第１のマーカー７０の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換したものである。
【００８４】
同様に、差分検出部４４３は、上述の第２の特徴情報変換部５２２により変換された空間特徴情報と、上述の第４の特徴情報変換部５３４により変換された空間特徴情報との差分を示す第４の差分を検出する。上述したように、第２の特徴情報変換部５２２により変換された空間特徴情報は、第２の画像内の第２のマーカー８０の周辺情報の特徴情報を、基準座標系における特徴情報に変換したものである。第４の特徴情報変換部５３４により変換された空間特徴情報は、移動カメラ４０により撮像された動画像内の第２のマーカー８０の周辺情報の特徴情報を、基準座標系における空間特徴情報に変換したものである。
【００８５】
以上のように差分検出部４４３により検出された第１乃至第４の差分は補正部４４５へ入力する。差分検出部４４３は、第１の差分及び第３の差分、又は第２の差分及び第４の差分の各々の値を、補正部４４５へ送信する。これに限定されず、第１の差分、又は第２の差分のみを検出し、補正部４４５へ送信してもよい。補正部４４５は、第１の差分に基づいて上述の第１の基準座標系カメラ情報（この例では、変換済みの第１の外部パラメータ）を補正し、第２の差分に基づいて上述の第２の基準座標系カメラ情報（この例では、変換済みの第２の外部パラメータ）を補正する。又は、補正部４４５は、第１の差分及び第３の差分に基づいて上述の第１の基準座標系カメラ情報（この例では、変換済みの第１の外部パラメータ）を補正し、第２の差分及び第４の差分に基づいて上述の第２の基準座標系カメラ情報（この例では、変換済みの第２の外部パラメータ）を補正してもよい。より具体的には、補正部４４５は、第１の差分、第３の差分、第２の差分、および、第４の差分の各々が許容値以下となるように、上述の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を補正する。上記許容値は設計条件等に応じて任意に変更可能である。
【００８６】
補正部４４５により第１の基準座標系カメラ情報および第２の基準座標系カメラ情報が補正された場合、補正後の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報は、再計算部４４４に入力される。この例では、再計算部４４４は、補正後の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を補正部４４５から取得した場合、変換済みのマーカー情報および変換済みの空間特徴情報を変換済み情報取得部４４１から取得する。そして、再計算部４４４は、補正部４４５から取得した補正後の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を用いて、変換済み情報取得部４４１から取得した変換済みのマーカー情報および変換済みの空間特徴情報を再計算する。そして、再計算部４４４は、再計算後のマーカー情報および空間特徴情報を差分検出部４４３へ入力する。そして、差分検出部４４３は、再度、上述の第１の差分と第３の差分および第２の差分と第４の差分を検出して補正部４４５に入力する。
【００８７】
補正部４４５は、差分検出部４４３から入力された第１の差分、第３の差分、第２の差分および第４の差分が許容値以下の場合は、そのときの第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を出力するとともに、そのときの変換済みの空間特徴情報（基準座標系に合わせて変換された空間特徴情報）を出力する。
【００８８】
例えば、補正部４４５からの第１の基準座標系カメラ情報、第２の基準座標系カメラ情報および変換済みの空間特徴情報の出力先は、情報処理装置、エッジサーバ（店舗内サーバ）、クラウドサーバなど最終的なサービスを提供するためのサーバなどでもよい。例えばサーバは、これらの情報を用いた処理に基づくサービス情報を生成して、ユーザに提供（例えばユーザが所持する端末（移動カメラ４０）に出力）することができる。上記処理としては、例えば位置補正後の第１のカメラ２０又は第２のカメラ３０の画像を用いた認識処理における様々な処理が想定される。例えば、高さのある障害物が存在するために人または物が移動できない領域であることを判定する処理、人または物の重なりなどを判定する処理、移動経路などのデータを第１のカメラ２０又は第２のカメラ３０の画像に重畳する処理、３Ｄ空間を描画する処理などが想定される。ただし、上記処理は、以上の例示に限られるものではない。
【００８９】
以上に説明した移動カメラ４０が有する複数の機能は、ＣＰＵ１０３が記憶装置１０４に格納されたプログラムを実行することにより実現される。ただし、これに限らず、例えば上述の移動カメラ４０が有する複数の機能の全部または一部が専用のハードウェア回路で実現される形態であってもよい。また、マーカー情報記憶部２５３、マーカー情報記憶部３５３、マーカー情報記憶部４５３、データ記憶部４５４、記憶部４０９は、例えば記憶装置１０４等であってもよい。本実施形態においては、移動カメラ４０は、上述の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を算出する「カメラ情報算出装置」として機能する。
【００９０】
図１３は、本実施形態の移動カメラ４０の動作例を示すフローチャートである。各ステップの具体的な内容は上述したとおりであるので、適宜に省略して説明する。なお、各ステップの順番は任意に変更可能であり、図１３の例に限られるものではない。
【００９１】
図１３に示すようにマーカー検出部４０４が第１のパターン（第１のマーカー７０）を検出すると（ステップＳ１）、シミュレーション部４１０内のマーカー情報・空間特徴情報変換部４４２は移動カメラ４０側の情報を変換する（ステップＳ２）。上述したように、マーカー情報・空間特徴情報変換部４４２は、マーカー検出部４０４により検出された第１のマーカー７０の位置および形状の情報を基準座標系に合わせて変換する。また、マーカー情報・空間特徴情報変換部４４２は、空間特徴検出部４０６により検出された第１のマーカー７０の周辺情報の特徴情報を基準座標系に合わせて変換する。具体的な内容は上述したとおりである。
【００９２】
また、照合部４０７は、マーカー検出部４０４により検出された第１のパターン（第１のマーカー７０）に対応する第１の識別情報がデータサーバ１０に存在するか否かを照合する（ステップＳ３）。ここでは、第１の識別情報がデータサーバ１０に存在するとして説明を続ける。次に、情報変換部４０８は、データサーバ１０から、第１のカメラ情報、第１のマーカー情報および第１の空間特徴情報を取得する（ステップＳ４）。
【００９３】
次に、情報変換部４０８は、ステップＳ４で取得した情報（第１のカメラ情報、第１のマーカー情報および第１の空間特徴情報）を、上述の基準座標系に合わせて変換する（ステップＳ５）。具体的な内容は上述したとおりである。
【００９４】
その後、第２のカメラ３０の撮像領域を撮像可能な位置に移動した移動カメラ４０が第２のパターン（第２のマーカー８０）を検出すると（ステップＳ６）、マーカー情報・空間特徴情報変換部４４２は移動カメラ４０側の情報を変換する（ステップＳ７）。上述したように、マーカー情報・空間特徴情報変換部４４２は、マーカー検出部４０４により検出された第２のマーカー８０の位置および形状の情報を基準座標系に合わせて変換する。また、空間特徴検出部４０６により検出された第２のマーカー８０の周辺情報の特徴情報を基準座標系に合わせて変換する。具体的な内容は上述したとおりである。
【００９５】
また、照合部４０７は、マーカー検出部４０４により検出された第２のパターン（第２のマーカー８０）に対応する第２の識別情報がデータサーバ１０に存在するか否かを照合する（ステップＳ８）。ここでは、第２の識別情報がデータサーバ１０に存在するとして説明を続ける。次に、情報変換部４０８は、データサーバ１０から、第２のカメラ情報、第２のマーカー情報および第２の空間特徴情報を取得する（ステップＳ９）。
【００９６】
次に、情報変換部４０８は、ステップＳ９で取得した情報（第２のカメラ３０のカメラ情報、第２のマーカー情報および第２の空間特徴情報）を、上述の基準座標系に合わせて変換する（ステップＳ１０）。具体的な内容は上述したとおりである。
【００９７】
次に、シミュレーション部４１０内の差分検出部４４３は、上述の第１の差分または第２の差分を検出する（ステップＳ１１）。具体的な内容は上述したとおりである。ステップＳ１１で検出された第１の差分または第２の差分が許容値以上の場合は（ステップＳ１２：Ｙｅｓ）、補正部４４５は、上述の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を補正する（ステップＳ１３）。そして、再計算部４４４は、補正後の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を用いて、第１のカメラ２０又は第２のカメラ３０側のマーカー情報および空間特徴情報を再計算し（ステップＳ１４）、ステップＳ１１以降の処理が繰り返される。
【００９８】
一方、ステップＳ１１で検出された第１の差分または第２の差分が許容値より小さい場合は（ステップＳ１２：Ｎｏ）、そのときの第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を出力するとともに、そのときの変換済みの空間特徴情報を出力する（ステップＳ１５）。
【００９９】
以上に説明したように、移動カメラ４０は、第１のカメラ２０により撮像される第１のマーカー７０を含む第１の画像と、移動カメラ４０により撮像される第１のマーカー７０を含む第１の動画像とに基づいて、第１のカメラ２０の位置を示す第１の基準座標系カメラ情報を算出する。また、移動カメラ４０は、第１のカメラ２０と離間して配置される第２のカメラ３０により撮像される第２のマーカー８０を含む第２の画像と、移動カメラ４０により撮像される第２のマーカー８０を含む第２の動画像とに基づいて、第２のカメラ３０の位置を示す第２の基準座標系カメラ情報を算出する。より具体的には、移動カメラ４０は、移動しながら撮像した動画像から第１のマーカー７０を検出した場合、第１の画像に基づいて、第１のマーカー７０を基準とする基準座標系における第１のカメラ２０の位置を示す第１の基準座標系カメラ情報を算出する。その後、移動カメラ４０は、移動しながら撮像した動画像から第２のマーカー８０を検出した場合、第２の画像と、撮像した動画像とに基づいて、基準座標系における第２のカメラ３０の位置を示す第２の基準座標系カメラ情報を算出する。つまり、本実施形態では、移動カメラ４０の動画像により、第１のカメラ２０の撮像領域と、第２のカメラ３０の撮像領域とが認識され、移動カメラ４０側の基準座標系に第１のカメラ２０および第２のカメラ３０の各々がマッピングされる。
【０１００】
本実施形態によれば、例えば第１のカメラ２０および第２のカメラ３０のそれぞれの撮像画像に共通の被写体を撮像することが困難な場合であっても、基準座標系における第１のカメラ２０と第２のカメラ３０との位置関係を求めることができる。すなわち、本実施形態によれば、それぞれの撮像画像に共通の被写体を撮像することができない複数のカメラの位置関係を求めることができる。
【０１０１】
また、上述したように、移動カメラ４０は、第１の画像に基づく第１のマーカー７０の位置および形状の情報と、移動カメラ４０の動画像に基づく第１のマーカー７０の位置および形状の情報との差分を示す第１の差分（第１のマーカー７０の差分）を検出する。また、移動カメラ４０は、第２の画像に基づく第２のマーカー８０の位置および形状の情報と、移動カメラ４０の動画像に基づく第２のマーカー８０の位置および形状の情報との差分を示す第２の差分（第２のマーカー８０の差分）を検出する。そして、移動カメラ４０は、第１の差分または第２の差分が許容値以下になるよう、第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を補正する。これにより、基準座標系における第１のカメラ２０および第２のカメラ３０の位置関係をより精度良く求めることができる。本実施形態では第１の差分又は第２の差分に基づいて、基準座標系における第１のカメラ２０および第２のカメラ３０の位置を求めたが、これに限定されず、第１の差分及び第３の差分（第１のマーカー７０の周辺情報の差分）又は第２の差分及び第４の差分（第２のマーカー８０の周辺情報の差分）に基づいて、基準座標系における第１のカメラ２０および第２のカメラ３０の位置を求めてもよい。
【０１０２】
以上、実施形態について説明したが、本願の開示するカメラ情報算出装置、システム、カメラ情報算出方法およびプログラムは、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【０１０３】
以下に変形例を記載する。例えば、以下の変形例同士を任意に組み合わせることもできる。
【０１０４】
（１）変形例１
上述の実施形態では、移動カメラ４０が、上述の第１の基準座標系カメラ情報および第２の基準座標系カメラ情報を算出する「カメラ情報算出装置」として機能していたが、移動カメラ４０とは別の装置が「カメラ情報算出装置」として機能する形態であってもよい。例えば図１４に示すように、「カメラ情報算出装置」として機能するサーバ１００が移動カメラ４０とは別に設けられる形態であってもよい。図１４に示すように、本変形例のシステム２は、データサーバ１０、サーバ１００、第１のカメラ２０、第２のカメラ３０、移動カメラ４０を備える。サーバ１００は、ネットワーク５０を介して、データサーバ１０、第１のカメラ２０、第２のカメラ３０、および、移動カメラ４０の各々と通信可能に接続される。
【０１０５】
図１５は、サーバ１００のハードウェア構成の一例を示す図である。図１５の例では、最低限必要なハードウェア要素を例示しているが、これに限らず、サーバ１００は、他のハードウェア要素（例えば入力デバイス、表示デバイス、カメラ等）を備える形態であっても構わない。図１５に示すように、サーバ１００は、ＣＰＵ１１０と、記憶装置１２０と、通信Ｉ／Ｆ部１３０と、これらを相互に接続するバス１４０と、を含む。
【０１０６】
ＣＰＵ１１０は、ハードウェアプロセッサの一例に対応する。ＣＰＵ１１０は、サーバ１００の動作を制御する。ＣＰＵ１１０は、記憶装置１２０に格納されたプログラムを実行することにより、サーバ１００が有する各種の機能を実現する。記憶装置１２０は、プログラム等の各種のデータを記憶する。例えば記憶装置１２０は、プログラムを格納する不揮発性のメモリであるＲＯＭ、ＣＰＵ１１０の作業領域を有する揮発性のメモリであるＲＡＭなどを含む。通信Ｉ／Ｆ部１３０は、ネットワーク５０に接続するためのインタフェースである。
【０１０７】
図１６は、サーバ１００が有する機能の一例を示す図である。なお、サーバ１００が有する機能は図１６の例に限られるものではない。図１６に示すように、サーバ１００は、移動カメラ情報取得部１１１、照合部４０７、情報変換部４０８、記憶部４０９、シミュレーション部４１０、出力部１１２を有する。この例では、上述の実施形態で説明した移動カメラ４０が有する複数の機能のうちの一部（照合部４０７、情報変換部４０８、記憶部４０９およびシミュレーション部４１０）がサーバ１００に搭載されている。
【０１０８】
図１６に示す移動カメラ情報取得部１１１は、移動カメラ４０の第３のカメラ情報、第３のマーカー情報、第３の識別情報、第３の空間特徴情報を移動カメラ４０から取得する。また、図１６に示す出力部１１２は、サーバ１００で算出した第１の基準座標系カメラ情報と第２の基準座標系カメラ情報とを用いた処理に基づくサービス情報を生成し、その生成したサービス情報を移動カメラ４０（ユーザの端末）へ出力する。
【０１０９】
なお、例えばサーバ１００は、１台のコンピュータで構成されてもよいし、複数台のコンピュータ（コンピュータ群）で構成されてもよい。例えばサーバ１００が複数台のコンピュータで構成され、上述したサーバ１００が有する複数の機能が複数台のコンピュータに分散されて搭載される形態であってもよい。
【０１１０】
（２）変形例２
上述の実施形態では、第１のカメラ２０により撮像された第１の画像に含まれる「第１の被写体」の一例として、第１の識別情報に対応する第１のパターン（第１のマーカー７０）を例に挙げて説明した。ただし、これに限らず、例えば第１のマーカー７０が設けられず、第１のマーカー７０以外の被写体を第１の被写体とする形態であってもよい。つまり、第１のカメラ２０の撮像領域に存在し、かつ、第１のカメラ２０の第１の画像と移動カメラ４０の動画像とに共通に含まれる第１のマーカー７０以外の被写体、例えばサイズ・形状が良く知られた物体、または、地面と壁との境目などを第１の被写体とすることもできる。
【０１１１】
同様に、上述の実施形態では、第２のカメラ３０により撮像された第２の画像に含まれる「第２の被写体」の一例として、第２の識別情報に対応する第２のパターン（第２のマーカー８０）を例に挙げて説明した。ただし、これに限らず、例えば第２のマーカー８０が設けられず、第２のマーカー８０以外の被写体を第２の被写体とする形態であってもよい。つまり、第２のカメラ３０の撮像領域に存在し、かつ、第２のカメラ３０の第２の画像と移動カメラ４０の動画像とに共通に含まれる第２のマーカー８０以外の被写体、例えばサイズ・形状が良く知られた物体、または、地面と壁との境目などを第２の被写体とすることもできる。
【０１１２】
（３）変形例３
上述の実施形態では、任意の位置・向きで設置可能な２台のカメラと、２台のカメラそれぞれと１対１に対応する２つのマーカーとが設けられていたが、カメラおよびマーカーの数は２つに限られるものではない。例えば３台以上の任意の位置・向きで設置可能なカメラと、３台以上のカメラそれぞれと１対１に対応する３つ以上のマーカーとが設けられる形態であってもよい。また、任意の位置・向きで設置可能なカメラから少なくとも１つのマーカーが撮像できれば、マーカーはカメラに対して１対１ではなく、カメラより少なく設けられる形態であってもよい。このような形態であっても、上述の実施形態と同様の方法を実施可能である。これにより、３台以上のカメラごとに、移動カメラ４０により最初に検出されたマーカーを基準とする移動カメラ４０側の基準座標系における該カメラの位置を特定するカメラ情報を算出することができる。
【０１１３】
（４）変形例４
上述の実施形態のシステム１は、店舗内（屋内）に適用されているが、これに限らず、例えば屋外に適用することもできる。例えば信号機の付近に固定カメラを設置し、カメラが搭載された車を移動カメラとして運用する形態であってもよい。
【符号の説明】
【０１１４】
１      システム
１０    データサーバ
２０    第１のカメラ
３０    第２のカメラ
４０    移動カメラ
５０    ネットワーク
１００  サーバ
１１１  移動カメラ情報取得部
１１２  出力部
４０１  画像取得部
４０２  点・線分特徴検出部
４０３  内部パラメータ算出部
４０４  マーカー検出部
４０５  外部パラメータ算出部
４０６  空間特徴検出部
４０７  照合部
４０８  情報変換部
４０９  記憶部
４１０  シミュレーション部
４２１  算出部
４２２  マーカー情報変換部
４２３  空間特徴情報変換部
４４１  変換済み情報取得部
４４２  マーカー情報・空間特徴情報変換部
４４３  差分検出部
４４４  再計算部
４４５  補正部
５０１  第１の算出部
５０２  第２の算出部
５１１  第１の位置形状変換部
５１２  第２の位置形状変換部
５２１  第１の特徴情報変換部
５２２  第２の特徴情報変換部
５３１  第３の位置形状変換部
５３２  第４の位置形状変換部
５３３  第３の特徴情報変換部
５３４  第４の特徴情報変換部
【図１】
2020152810.tif 000003
【図２】
2020152810.tif 000004
【図３】
2020152810.tif 000005
【図４】
2020152810.tif 000006
【図５】
2020152810.tif 000007
【図６】
2020152810.tif 000008
【図７】
2020152810.tif 000009
【図８】
2020152810.tif 000010
【図９】
2020152810.tif 000011
【図１０】
2020152810.tif 000012
【図１１】
2020152810.tif 000013
【図１２】
2020152810.tif 000014
【図１３】
2020152810.tif 000015
【図１４】
2020152810.tif 000016
【図１５】
2020152810.tif 000017
【図１６】
2020152810.tif 000018
【国際調査報告】
2020152810.tif 000019
2020152810.tif 000020
2020152810.tif 000021
2020152810.tif 000022