(57)【要約】【課題】適切な位置及び数のマーカを検出することにより、精度よくカメラの位置及び姿勢のキャリブレーションを行うことを目的とする。【解決手段】同一の領域を撮像する第１の撮像手段と第２の撮像手段それぞれにより撮像された第１の画像と第２の画像それぞれにおいて、マーカの位置を特定する特定手段と、マーカの位置に基づいて、マーカの移動先を決定する決定手段と、移動先に関する移動先情報を出力する出力手段と、移動先へ移動後のマーカの位置に基づいて、第１の撮像手段及び第２の撮像手段のうち少なくとも一方の撮像手段の位置のキャリブレーションを行うキャリブレーション手段とを有する。【選択図】図３
2018026724.tif 000002
【特許請求の範囲】
【請求項１】
同一の領域を撮像する第１の撮像手段と第２の撮像手段それぞれにより撮像された第１の画像と第２の画像それぞれにおいて、マーカの位置を特定する特定手段と、
前記マーカの位置に基づいて、前記マーカの移動先を決定する決定手段と、
前記移動先に関する移動先情報を出力する出力手段と、
前記移動先へ移動後の前記マーカの位置に基づいて、前記第１の撮像手段及び前記第２の撮像手段のうち少なくとも一方の撮像手段の位置のキャリブレーションを行うキャリブレーション手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記出力手段は、前記移動先情報を前記第１の画像及び前記第２の画像のうち少なくとも一方の画像に重畳して出力することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、前記マーカの位置に基づいて、複数の移動先と、各移動先の重要度と、を決定し、
前記出力手段は、複数の移動先とそれぞれの重要度とを示す移動先情報を出力することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記マーカの位置に基づいて、前記第１の撮像手段と前記第２の撮像手段のうち少なくとも一方の設置位置のキャリブレーションが可能か否かを判定する判定手段をさらに有し、
前記出力手段は、前記キャリブレーションが可能な場合と不可能な場合とを識別可能に前記移動先情報を出力することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記移動先情報は、前記移動先を示す情報を含むことを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記移動先情報は、前記移動先の方向を示す情報を含むことを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記移動先情報は、前記移動先までの移動量を示す情報を含むことを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記移動先情報は、前記移動先までの移動経路を示す情報を含むことを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
画像処理装置が実行する画像処理方法であって、
同一の領域を撮像する第１の撮像手段と第２の撮像手段それぞれにより撮像された第１の画像と第２の画像それぞれにおいて、マーカの位置を特定する特定ステップと、
前記マーカの位置に基づいて、前記マーカの移動先を決定する決定ステップと、
前記移動先に関する移動先情報を出力する出力ステップと、
前記移動先へ移動後の前記マーカの位置に基づいて、前記第１の撮像手段及び前記第２の撮像手段のうち少なくとも一方の撮像手段の位置のキャリブレーションを行うキャリブレーションステップと
を含むことを特徴とする画像処理方法。
【請求項１０】
コンピュータを、
同一の領域を撮像する第１の撮像手段と第２の撮像手段それぞれにより撮像された第１の画像と第２の画像それぞれにおいて、マーカの位置を特定する特定手段と、
前記マーカの位置に基づいて、前記マーカの移動先を決定する決定手段と、
前記移動先に関する移動先情報を出力する出力手段と、
前記移動先へ移動後の前記マーカの位置に基づいて、前記第１の撮像手段及び前記第２の撮像手段のうち少なくとも一方の撮像手段の位置のキャリブレーションを行うキャリブレーション手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、監視カメラシステムにおいて、複数のカメラを監視領域に配置し、複数のカメラで同一の被写体を同時に撮像することで、被写体の３次元位置を推定する手法が知られている。特許文献１には、カメラの位置と姿勢、カメラ画像上の被写体の位置から、ステレオ視の原理で３次元位置を推定する技術が開示されている。このような３次元情報を扱うマルチカメラシステムでは、事前にカメラの位置と姿勢をキャリブレーションによって決定する必要がある。非特許文献１には、動画像から複数のカメラでキャリブレーションマーカ（以降マーカと呼ぶ）を検出することで、カメラの位置を推定する方法が開示されている。ここで、マーカとは画像上で位置座標を特定しやすいような特徴的な色や形状を持った物体であり、例えば周囲と異なる色を持ったボールなどが使用される。カメラの位置と姿勢に関するパラメータを未知変数とし、画像上のマーカの座標を入力として解くことによって、カメラの位置と姿勢を求めることができる。画像上のマーカの座標からカメラの位置や姿勢を求める方法として、基礎行列を算出する手法やＳｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎによる手法が知られている（非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５４５４５７３号公報
【非特許文献】
【０００４】
【非特許文献１】野口真身、加藤丈和、"マーカー追跡による同期のない複数カメラキャリブレーション、"情報処理学会研究報告コンピュータビジョンとイメージメディア（ＣＶＩＭ）２００５
【非特許文献２】Ｒｉｃｈａｒｄ  Ｈａｒｔｌｅｙ  ａｎｄ  Ａｎｄｒｅｗ  Ｚｉｓｓｅｒｍａｎ「Ｍｕｌｔｉｐｌｅ  Ｖｉｅｗ  Ｇｅｏｍｅｔｒｙ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ＳＥＣＯＮＤ  ＥＤＩＴＩＯＮ」Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ  ２００３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カメラの位置と姿勢を決定する場合において、適切な位置と数のマーカの検出結果が得られないと、正しいカメラの位置及び姿勢を求めることができず、この場合、カメラの位置及び姿勢の推定精度が低下してしまうという問題があった。例えば、マーカの取得位置が画像の特定個所のみに集中して存在するなど偏っている場合、解が特定個所に過剰適合するため、それ以外の個所での誤差が大きくなる。また、キャリブレーションを好適に行うために、適切なマーカの位置や数をユーザが把握するのは難しい。
【０００６】
本発明はこのような問題点に鑑みなされたもので、適切な位置及び数のマーカを検出することにより、精度よくカメラの位置及び姿勢のキャリブレーションを行うことを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明は、画像処理装置であって、同一の領域を撮像する第１の撮像手段と第２の撮像手段それぞれにより撮像された第１の画像と第２の画像それぞれにおいて、マーカの位置を特定する特定手段と、前記マーカの位置に基づいて、前記マーカの移動先を決定する決定手段と、前記移動先に関する移動先情報を出力する出力手段と、前記移動先へ移動後の前記マーカの位置に基づいて、前記第１の撮像手段及び前記第２の撮像手段のうち少なくとも一方の撮像手段の位置のキャリブレーションを行うキャリブレーション手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、適切な位置及び数のマーカを検出することにより、精度よくカメラの位置及び姿勢のキャリブレーションを行うことができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムの全体図である。
【図２】監視領域の説明図である。
【図３】画像処理装置のソフトウェア構成を示す図である。
【図４】画像処理を示すフローチャートである。
【図５】移動先決定処理を示すフローチャートである。
【図６】Ｓ５０２の処理の説明図である。
【図７】Ｓ５０３の処理の説明図である。
【図８】候補領域マップの一例を示す図である。
【図９】移動先情報出力処理を示すフローチャートである。
【図１０】移動先候補画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
図１は、本実施形態に係る画像処理システム１００の全体図である。画像処理システム１００は、複数のカメラ１１０と、画像処理装置１２０と、携帯端末装置１３０とを有している。カメラ１１０は、監視カメラであり、監視領域の所定の場所に設置されているものとする。カメラ１１０は、撮像素子により得られた被写体像に関する時系列信号を処理し、デジタル信号に変換することにより画像を得る。本実施形態においては、画像処理システム１００はカメラ１１０を備えることとするが、カメラ１１０の数は、４台に限定されるものではなく２台以上であればよい。
【００１１】
画像処理装置１２０は、４台のカメラ１１０の画像から、不審者の検出を行う。画像処理装置１２０はさらに不審者の位置を正確に特定するために、各カメラ１１０の設置位置及び姿勢のキャリブレーションを行う。カメラ１１０の位置及び姿勢のキャリブレーションを行うべく、ユーザは、マーカを手に持ち、監視領域を歩き回り、各位置におけるマーカの画像を各カメラ１１０が撮像する。キャリブレーションに用いられるマーカは、例えば赤色の球であるものとする。そして、画像処理装置１２０は、カメラ１１０により撮像されたマーカの画像に基づいて、カメラ１１０の位置及び姿勢のキャリブレーションを行う。
【００１２】
各カメラ１１０は、画像処理装置１２０に接続している。また、携帯端末装置１３０は、無線ＬＡＮ等のネットワークを介して画像処理装置１２０に接続している。携帯端末装置１３０は、ユーザによりマーカと共に所持される。携帯端末装置１３０のディスプレイ１３１には、ユーザが次にどこに移動すべきかを示す情報等が表示される。なお、画像処理装置１２０と携帯端末装置１３０の間の通信は無線ＬＡＮ以外の無線通信でもよく、また優先通信でもよい。また、携帯端末装置１３０は、専用端末とするが、他の例としては、汎用のタブレットやノートＰＣ、スマートフォン、ヘッドマウントディスプレイなどであってもよい。また、携帯端末装置１３０は、ユーザが所持するものではなく、画像処理装置１２０とともに所定の場所に固定されているものでもよい。
【００１３】
画像処理装置１２０は、ＣＰＵ１２１と、ＲＯＭ１２２と、ＲＡＭ１２３と、ディスプレイ１２４と、入力装置１２５と、通信装置１２６と、を有している。ＣＰＵ１２１は、ＲＯＭ１２２に格納されている制御プログラムを実行することにより、画像処理装置１２０全体の制御を行う。ＲＯＭ１２２は、ＣＰＵ１２１が実行する制御プログラムや各種パラメータデータを格納する。ＲＡＭ１２３は、画像や各種情報を記憶する。また、ＲＡＭ１２３は、ＣＰＵ１２１のワークエリアやデータの一時待避領域として機能する。ディスプレイ１２４は各種情報を表示する。入力装置１２５は、マウス等のポインティングデバイスや、キーボード等であり、ユーザからの入力を受け付ける。
【００１４】
なお、後述する画像処理装置１２０の機能や処理は、ＣＰＵ１２１がＲＯＭ１２２に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。他の例としては、画像処理装置１２０の機能や処理の一部または全部を電子回路などのハードウェアで実現するようにしてもよい。また、携帯端末装置１３０のハードウェア構成は、画像処理装置１２０のハードウェア構成と同様である。
【００１５】
図２は、監視領域の説明図である。４台のカメラ１１０は、図２に示すように、撮影範囲が重複するように設置されているものとする。たとえば、カメラ１とカメラ２は、同一の領域２００を撮影範囲に含んでいる。また、図２に示すように、ユーザＡは、マーカ２１０と携帯端末装置１３０を所持している。ユーザＡはマーカ２１０を手に持ち、自律的あるいは携帯端末装置１３０に表示される情報に従って、監視領域を歩き回る。
【００１６】
図３は、画像処理装置１２０のソフトウェア構成を示す図である。画像処理装置１２０は、画像取得部３０１と、マーカ特徴記憶部３０２と、マーカ検出部３０３と、フィルタ部３０４と、マーカ位置記憶部３０５と、判定部３０６と、を有している。画像処理装置１２０はまた、移動先決定部３０７と、経路決定部３０８と、通知部３０９と、キャリブレーション部３１０と、カメラ情報記憶部３１１と、を有している。
【００１７】
カメラ情報記憶部３１１は、事前にカメラ１１０の内部パラメータのキャリブレーションを行うことにより決定した各カメラ１１０の内部パラメータに関する情報を保持する。本実施形態においては、内部パラメータは焦点距離であるものとする。内部パラメータのキャリブレーションについては例えば以下に示す文献を参照することができる。
Ｚｈｅｎｇｙｏｕ  Ｚｈａｎｇ「Ａ  Ｆｌｅｘｉｂｌｅ  Ｎｅｗ  Ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ」，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ２２（１１）：１３３０−１３３４，  ２０００
【００１８】
マーカ特徴記憶部３０２は、検出対象のマーカの特徴に関する情報を予め記憶している。本実施形態においては、マーカの特徴は、マーカの色であるものとする。画像取得部３０１は、各カメラ１１０から画像を取得する。マーカ検出部３０３は、画像取得部３０１が取得した画像からマーカを検出し、その画像上での位置座標を特定する。フィルタ部３０４は、マーカ検出部３０３で検出されたマーカ群から、キャリブレーションに有用なマーカ群を抽出し、抽出したマーカ群の各マーカの位置座標をマーカ位置記憶部３０５に記憶する。有用なマーカ群の抽出の具体的な方法については後述する。マーカ位置記憶部３０５は、マーカの画像上での位置座標を記憶する。
【００１９】
キャリブレーション部３１０は、マーカ位置記憶部３０５に記憶されたマーカの位置座標とカメラ情報記憶部３１１に記憶されたカメラの内部パラメータを用いて、カメラ１１０の位置及び姿勢のキャリブレーションを行い、位置及び姿勢を決定する。移動先決定部３０７は、画像に基づいてマーカの移動先を決定する。経路決定部３０８は、マーカの移動先に基づいて、マーカの移動経路を決定する。通知部３０９は、移動先決定部３０７により決定された移動先や経路決定部３０８により決定された移動経路等を含む移動先情報を携帯端末装置１３０に出力する。
【００２０】
図４は、画像処理装置１２０による画像処理を示すフローチャートである。Ｓ４００において、ＣＰＵ１２１は、システムの初期化を行う。ＣＰＵ１２１は、まず、事前に求めた各カメラの内部パラメータをカメラ情報記憶部３１１から取得する。次に、ＣＰＵ１２１は、事前に設定したマーカの色をマーカ特徴記憶部３０２から取得する。このマーカの色は画像からマーカを検出する処理に用いられる。次に、Ｓ４０１において、画像取得部３０１は、各カメラ１１０から同時刻に撮影された画像を取得する。本実施形態においては、カメラ１１０が４台のため、画像取得部３０１は、４枚の画像を取得する。
【００２１】
次に、Ｓ４０２において、マーカ検出部３０３は、マーカ特徴記憶部３０２に記憶されているマーカの色を用いて、各画像からマーカを検出し、検出したマーカの位置座標を特定する。具体的には、マーカ検出部３０３は、画像をＨＳＶ色空間に変換し、マーカ特徴記憶部３０２に記憶されているマーカの色相の値との差がしきい値α以下の候補画素を抽出する。マーカ検出部３０３は、候補画素の数がしきい値β以下の場合は、その画像からマーカは検出されなかったと判定する。マーカ検出部３０３は、候補画素の数がしきい値βより大きい場合にマーカが検出されたと判定し、この場合には、候補画素についてラべリング処理を行い、最も大きい領域の重心をマーカの位置として特定する。本処理は、マーカの位置を特定する特定処理の一例である。
【００２２】
次に、Ｓ４０３において、フィルタ部３０４は、Ｓ４０２において検出されたマーカ群をキャリブレーションに採用するか否かを判定する。フィルタ部３０４は、マーカ群をキャリブレーションに採用する場合には（Ｓ４０３でＹｅｓ）、処理をＳ４０４へ進める。フィルタ部３０４は、マーカ群をキャリブレーションに採用しない場合には（Ｓ４０３でＮｏ）、マーカ群を破棄し、処理をＳ４０１へ進める。フィルタ部３０４は、マーカ群を採用するか否かの判定は、検出されたマーカ群にマーカ位置記憶部３０５に記憶された過去のマーカ群の中に類似した位置を持つマーカが含まれるか否かによって行う。マーカ群が特定個所に集中するとキャリブレーションの精度が低下するため、この処理ではそれを抑制する。
【００２３】
より具体的には、フィルタ部３０４は以下の処理を行う。すなわち、Ｓ４０１において得られた画像群から検出されたマーカ群をマーカ群Ａとし、マーカ位置記憶部３０５に記憶された過去のある時刻のマーカ群をマーカ群Ｂとする。また、ａｉ、ｂｉ（ｉ＝１，２，．．．，Ｃ）をそれぞれマーカ群Ａ、Ｂに含まれるマーカの位置座標を表すベクトル、Ｃをカメラ台数、ｉをカメラのインデックスとする。そして、フィルタ部３０４は、マーカ群Ａとマーカ群Ｂの位置の相違度ｆ（Ａ，Ｂ）を（式１）により求める。
【数１】
2018026724.tif 000003
ここで、記号｜｜・｜｜はベクトルのノルムを表す。すなわち、同じカメラで検出されたマーカ間の距離の和を相違度ｆ（Ａ，Ｂ）としている。ただし、マーカが検出されず、距離が求まらない場合には、距離を無限大とする。過去に記憶されたマーカ群の中に（式１）で計算される相違度ｆがしきい値以下のものがなければ、フィルタ部３０４は、検出したマーカ群を採用すると判定する。
【００２４】
Ｓ４０４において、フィルタ部３０４は、Ｓ４０３において検出されたマーカ群をマーカ位置記憶部３０５に記録する。次に、Ｓ４０５において、移動先決定部３０７は、マーカの移動先、すなわちキャリブレーションに必要なマーカ画像に対応するマーカの位置の候補を決定する。本処理は、マーカの移動先を決定する決定処理の一例である。
【００２５】
図５は、移動先決定処理（Ｓ４０５）における移動先決定部３０７の詳細な処理を示すフローチャートである。移動先決定部３０７は、Ｓ５００の処理を４台のカメラに対するすべてのペアに対して繰り返す。本実施形態においては、カメラ１１０が４台存在するため、６通りの組み合わせがある。このためＳ５００の処理は６回繰り返される。
【００２６】
Ｓ５００において、移動先決定部３０７は、マーカの位置座標からカメラ間の基礎行列（ｆｕｎｄａｍｅｎｔａｌ  ｍａｔｒｉｘ）を算出する。基礎行列とは、カメラ間の３次元的な位置、姿勢の情報を含む３行３列の行列である。この基礎行列は、後述のキャリブレーションが可能か否かの判定やマーカの誤検出の除去に使用される。マーカの位置座標には、マーカの誤検出が含まれる。そのため、このようなマーカの誤検出があっても基礎行列を求めるために、移動先決定部３０７は、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  ｓａｍｐｌｅ  ｃｏｎｓｅｎｓｕｓ）法によって基礎行列を計算する（非特許文献２参照）。ＲＡＮＳＡＣは一部のサンプルをランダムに選んでモデルを決定することを複数回繰り返し、最もデータに合致するモデルを選ぶことで、外れ値に頑健にモデルを計算する手法である。ここで、マーカの位置座標の数が少ない場合や配置が同一平面上に存在するなど好適でない場合には、基礎行列が正しく計算ができないことが知られている。そのため、Ｓ５００では基礎行列の計算ができない場合には、基礎行列は算出されない。
【００２７】
すべてのペアに対する基礎行列が算出されると、次に、移動先決定部３０７は、すべてのカメラに対し、Ｓ５０１〜Ｓ５０４の処理を繰り返す。本実施形態においては、カメラ１１０が４台存在するため、Ｓ５０１〜Ｓ５０４の処理が４回繰り返される。Ｓ５０１において、移動先決定部３０７は、キャリブレーションが可能か否かを判定する。Ｓ５００において基礎行列が算出できるペアが存在しなかったカメラは、他のカメラとの３次元的な位置関係を決定することが難しい。そのため、移動先決定部３０７は、このようなカメラはキャリブレーションが可能でないと判定する。一方で、移動先決定部３０７は、Ｓ５００で基礎行列が算出できるペアが存在したカメラはキャリブレーションが可能であると判定する。本処理は、マーカの位置に基づいて、キャリブレーションが可能か否かを判定する判定処理の一例である。移動先決定部３０７は、キャリブレーションが可能であると判定した場合は（Ｓ５０１でＹｅｓ）、処理をＳ５０２へ進める。移動先決定部３０７は、キャリブレーションが可能でないと判定した場合は（Ｓ５０１でＮｏ）、処理をＳ５０３へ進める。
【００２８】
Ｓ５０２において、移動先決定部３０７は、基礎行列を用いてマーカ点群から誤検出を除去する。具体的には、移動先決定部３０７は、基礎行列を用いて画像のあるマーカ点に対応する他の画像のマーカ点を探索し、対応が存在しない場合そのマーカ点を誤検出として除外する。
【００２９】
あるカメラで撮影された画像上のある点は他のカメラで撮影された画像上ではエピポーラ線と呼ばれる直線として投影される。基礎行列をＦ、画像のある点をｘ、エピポーラ線をｌとすると、（式２）の関係が成り立つ。
ｌ＝Ｆｘ        …（式２）
移動先決定部３０７は、まず、あるマーカ点について、他のすべてのカメラの画像上でエピポーラ線を作成する。そして、移動先決定部３０７は、このエピポーラ線ｌと距離がしきい値以下のマーカ点が存在しない場合、対応するマーカ点がないものと判定してその点ｘを除去する。例えば、図６（ａ）のカメラ１の画像６００のマーカＣの点によって、図６（ｂ）に示すカメラ２の画像６１０において、エピポーラ線６１１が得られたとする。この場合、マーカＢとこのエピポーラ線の距離がしきい値以下のため、マーカＣはマーカＢに対応するとみなされる。
【００３０】
次に、Ｓ５０３及びＳ５０４において、移動先決定部３０７は、マーカ位置記憶部３０５に記憶されている過去から処理時点までに得られたマーカ点群からマーカの位置の分布を特定し、移動先の候補領域を示すマップを生成する。すなわち、まずＳ５０３において、移動先決定部３０７は、カメラ１１０により得られた画像を５×５のブロックに分け、ブロック毎に検出されたマーカ点を計数する。なお、移動先決定部３０７は、画像を複数の領域に分割すればよく、分割後の領域の数及び各領域の形状及びサイズは実施形態に限定されるものではない。移動先決定部３０７は、これを各カメラについて行う。図７を用いて、ある１台のカメラに対するＳ５０３の処理を説明する。まず、図７（ａ）のように、過去の複数の時点において得られた、マーカを含む画像それぞれを５×５のブロックに分割する。そして、ブロック毎にすべての時点の画像においてマーカが位置するマーカ点数を計測する。これにより、図７（ｂ）に示すような、ブロック毎のマーカ点数が得られる。
【００３１】
次に、Ｓ５０４において、移動先決定部３０７は、Ｓ５０３において計測されたマーカ点数に応じて、各ブロック（領域）の重要度を決定する。ここで、重要度は、移動先としてのマーカ位置の撮影画像の必要性が高いことを意味する。すなわち、重要度が高い程、マーカの撮影画像を収集すべきであることを意味する。Ｓ５０３において得られたマーカ点数が小さい程マーカ画像の収集が不十分であると考えられる。そこで、移動先決定部３０７は、マーカ点数が小さい程より大きい重要度を割り当てることとする。本実施形態においては、移動先決定部３０７は、マーカ点数が０の場合に重要度２を割り当て、マーカ点数が１の場合に重要度１を割り当て、マーカ点数が２の場合に重要度０を割り当てる。これにより、図７（ｃ）に示す候補領域マップが得られる。候補領域マップは、各ブロックに重要度が割り当てられたマップである。Ｓ５０１〜Ｓ５０４をすべてのカメラに対して繰り返すことにより、各カメラに対し、候補領域マップが生成される。
【００３２】
図４に戻り、移動先決定処理（Ｓ４０５）の処理の後、ＣＰＵ１２１は、処理をＳ４０６へ進める。Ｓ４０６において、経路決定部３０８は、複数の移動先と各移動先への重要度に基づいて、移動経路を決定する。より具体的には、経路決定部３０８は、重要度の高いブロックに先に移動するように、ブロック間を結ぶ移動経路を決定する。例えば、カメラ１に対し、図８に示す候補領域マップ８００が得られているとする。候補領域マップ８００において、ブロック８１１は、重要度２の領域であり、ブロック８１２〜８１３は、重要度１の領域であるとする。さらに、処理時点において、候補領域マップ８００のブロック８２０に対応する位置にマーカ画像が検出されたとする。この場合、ブロック８２０からブロック８１１、ブロック８１４、ブロック１５、ブロック８１３、ブロック８１２の順に移動するような移動経路が決定される。
【００３３】
図４に戻り、移動経路決定処理（Ｓ４０６）の処理の後、ＣＰＵ１２１は、処理をＳ４０７へ進める。Ｓ４０７において、通知部３０９は、移動先に関する情報（移動先情報）を携帯端末装置１３０の表示部に表示させるべく、携帯端末装置１３０に出力する。本処理は、移動先情報を出力する出力処理の一例である。ここで、移動先情報は、移動先、すなわち、マーカ画像が必要なマーカ位置を示す情報と、各移動先の重要度と、各移動先を経由する移動経路を示す情報とを含んでいる。
【００３４】
図９は、移動先情報出力処理（Ｓ４０７）における通知部３０９の詳細な処理を示すフローチャートである。通知部３０９は、まずＳ９００〜Ｓ９０２の処理を、すべてのカメラに対して繰り返す。本実施形態においては、カメラ１１０が４台存在するため、Ｓ９００〜Ｓ９０２の処理は４回繰り返される。
【００３５】
Ｓ９００において、通知部３０９は、キャリブレーションが可能か否かを判定する。なお、通知部３０９は、キャリブレーションが可能か否かについては、Ｓ５０１の処理結果を参照して判定すればよい。また、他の例としては、通知部３０９は、Ｓ５０１と同じ処理を行い、キャリブレーションが可能か否かを判定してもよい。通知部３０９は、キャリブレーションが可能な場合には（Ｓ９００でＹｅｓ）、処理をＳ９０１へ進める。通知部３０９は、キャリブレーションが不可能な場合には（Ｓ９００でＮｏ）、処理をＳ９０２へ進める。
【００３６】
Ｓ９０１において、通知部３０９は、候補領域マップ８００をカメラ１１０により得られた画像に重畳して携帯端末装置１３０に表示すべく携帯端末装置１３０に出力する。具体的には、通知部３０９は、候補領域マップ８００の重要度が高い程より濃い赤のブロックを画像に重畳して描画する。これにより、マーカ画像の収集が重要な領域程濃い赤色で示される。一方、Ｓ９０２においても、通知部３０９は、候補領域マップ８００をカメラ１１０により得られた画像に重畳して携帯端末装置１３０に表示すべく出力するが、Ｓ９０２においてはＳ９０１の場合と異なる色で候補領域マップ８００を描画する。本実施形態においては、通知部３０９は、候補領域マップ８００の重要度が高い程より濃い青のブロックを画像に重畳して描画する。図１０は、候補領域マップ８００が重畳された画像を受信した携帯端末装置１３０のディスプレイ１３１に表示された移動先候補画面１０００の一例を示す図である。移動先候補画面１０００には、４台のカメラそれぞれに対する候補領域マップ８００が重畳された画像、すなわち４つの画像が同時に表示される。
【００３７】
このように、通知部３０９は、キャリブレーションが可能な場合と不可能な場合とを識別可能に、候補領域マップ８００を出力するよう制御し、ディスプレイ１３１には各カメラについての移動先候補が表示される。これにより、ユーザはどこに移動すればよいかを知ることができるだけでなく、そのカメラがキャリブレーション可能か否かを同時にかつ容易に把握することができる。
【００３８】
なお、通知部３０９は、キャリブレーションが可能な場合と不可能な場合とをユーザが識別可能に候補領域マップ８００を出力すればよく、そのための具体的な方法は実施形態に限定されるものではない。他の例としては、通知部３０９は、黄色と緑等他の色で区別してもよい。また、他の例としては、通知部３０９は、丸印とバツ印のように図形や記号の種類を異ならせてもよい。また、通知部３０９は、「可」と「不可」のように文字を用いて表してもよい。また、通知部３０９は、異なる点滅方法で候補領域マップ８００を表示してもよい。また、携帯端末装置１３０における候補領域マップ８００の出力は、表示に限定されるものではなく、例えば音声等であってもよい。この場合、通知部３０９は、キャリブレーションの可否に応じて異なる音声情報を出力すればよい。
【００３９】
すべてのカメラに対するＳ９００からＳ９０２の処理が終了すると、通知部３０９は、処理をＳ９０３へ進める。Ｓ９０３において、通知部３０９は、移動経路を携帯端末装置１３０のディスプレイ１３１に表示すべく携帯端末装置１３０に出力する。なお、このとき、通知部３０９は、携帯端末装置１３０が移動経路を音声出力するための音声情報も出力する。例えば、カメラ１に対し図８の候補領域マップ８００が生成されたとする。この場合には、通知部３０９は、この候補領域マップ８００からＳ４０６において決定された移動経路を示す文字を、画像と候補領域マップ８００が表示された画面上にさらに重畳して表示すべく出力する。これにより、携帯端末装置１３０のディスプレイ１３１には移動経路がさらに表示される。
【００４０】
移動経路として、例えば、マーカに対し候補領域が左にあればカメラに対して左へ、右にあれば右へ、上にあれば奥へ、下にあれば手前へ移動するように誘導するような文字情報が表示される。図８の例では、「カメラ１に対し左奥に移動」と表示され、続けて、左手前、左奥、右奥という順番で移動するような移動経路が表示される。なお、通知部３０９は、移動経路と共に、または移動経路に替えて、移動先となるブロックまでの移動量や移動経路を携帯端末装置１３０に表示すべく携帯端末装置１３０に出力してもよい。また、移動経路のユーザへの通知方法は、実施形態に限定されるものではなく、色、矢印などの記号・図形、音声、点滅などの動き、振動などであってもよい。また、他の例としては、地図などの平面図に移動経路や移動方向を示してもよい。以上で、移動先情報通知処理が終了する。
【００４１】
図４に戻り、移動先情報通知処理（Ｓ４０７）の後、ＣＰＵ１２１は、処理をＳ４０８へ進める。Ｓ４０８において、ＣＰＵ１２１は、マーカ画像の撮影を継続するか否かを判定する。本実施形態においては、ＣＰＵ１２１は、キャリブレーション不可と判定されたカメラが存在する場合に継続すると判定し、すべてのカメラがキャリブレーション可能と判定された場合には継続しないと判定する。ＣＰＵ１２１は、継続する場合には（Ｓ４０８でＹｅｓ）、処理をＳ４０１へ進める。ＣＰＵ１２１は、継続しない場合には（Ｓ４０８でＮｏ）、処理をＳ４０９へ進める。なお、継続か否かの判定は実施形態に限定されない。他の例としては、ＣＰＵ１２１は、マーカの画像の撮影が必要なブロックの数が一定値以下になった場合や、マーカの画像の撮影が必要なブロックの分布の片寄が一定値以下になった場合に継続しない、といった条件でもよい。また、これらの条件を組み合わせてもよい。
【００４２】
また、他の例としては、ＣＰＵ１２１は、ユーザ入力に応じて、継続するか否かを判定してもよい。また、ユーザが継続か否かを入力するユーザインターフェースを用いてもよい。例えば、ＣＰＵ１２１は、ＧＵＩ上でのユーザによる画面上のボタンの押下やキーボードの操作を受け付けることによって、継続か否かを判定してもよい。自動的に判定することで、ユーザの装置についての知識や熟練度にかかわらず、適切に判定ができる効果が見込める。一方、ユーザが判定できるようにする機構を導入することで、自動判定が難しい場合に適切に判定する効果が見込める。
【００４３】
Ｓ４０９において、キャリブレーション部３１０は、Ｓ４０１において得られたマーカの位置座標に基づいてカメラのキャリブレーションを実行する。ユーザが移動先情報に応じて移動した場合には、移動後のマーカの位置座標も参照してキャリブレーションを実行することができる。キャリブレーション部３１０は、Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎによりカメラキャリブレーションを行う。この方法によって、画像上のマーカ点群からカメラの位置、姿勢を計算することが可能である。Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎについては、以下の文献を参照することができる。
Ｐｉｅｒｒｅ  Ｍｏｕｌｏｎ，  Ｐａｓｃａｌ  Ｍｏｎａｓｓｅ，  ａｎｄ  Ｒｅｎａｕｄ  Ｍａｒｌｅｔ「Ａｄａｐｔｉｖｅ  ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  ｍｏｔｉｏｎ  ｗｉｔｈ  ａ  ｃｏｎｔｒａｒｉｏ  ｍｏｄｅｌ  ｅｓｔｉｍａｔｉｏｎ」ＡＣＣＶ２０１２
【００４４】
次に、Ｓ４１０において、移動先決定部３０７は、移動先の候補領域を決定する。Ｓ４１０の処理は、Ｓ４０５の処理と同様の処理であり、候補領域マップを生成する。なお、Ｓ４１０の処理においては、Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎの過程でマーカ点が誤検出か否かの決定を行えるようにし、これをマーカ誤検出に係る判定に用いてもよい。
【００４５】
次に、Ｓ４１１において、キャリブレーション部３１０は、キャリブレーションに成功したか否かを判定する。キャリブレーション部３１０は、Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎですべてのカメラの位置と姿勢が求めることができた場合、キャリブレーションが成功したと判定する。キャリブレーション部３１０は、１台のカメラでもカメラの位置と姿勢が求まらなかった場合には、キャリブレーションが失敗したと判定する。キャリブレーション部３１０は、キャリブレーションに成功した場合は（Ｓ４１１でＹｅｓ）、処理をＳ４１２へ進める。キャリブレーション部３１０は、キャリブレーションに失敗した場合には（Ｓ４１１でＮｏ）、処理をＳ４１３へ進める。
【００４６】
Ｓ４１２において、通知部３０９は、成功時の情報を携帯端末装置１３０のディスプレイ１３１に表示すべく、携帯端末装置１３０に出力する。成功時の情報は、Ｓ４０９において決定した候補領域マップをＳ９０１において説明したように赤の濃淡で画像上に描画した情報である。通知部３０９は、さらに成功時の情報として、カメラの位置や姿勢を地図にプロットして可視化したものや推定誤差を出力してもよい。Ｓ４１３において、通知部３０９は、失敗時の情報を携帯端末装置１３０のディスプレイ１３１に表示すべく、携帯端末装置１３０に出力する。失敗時の情報は、Ｓ４０９において決定した候補領域マップをＳ９０２において説明したように青の濃淡で画像上に描画した情報である。通知部３０９は、さらに失敗時の情報として、キャリブレーションに失敗したカメラの名称や番号を出力してもよい。携帯端末装置１３０は、Ｓ４１２及びＳ４１３において出力された情報を受信した場合も、移動先候補を色の濃淡で示した図１０に示すような移動先候補画面１０００をディスプレイ１３１に表示する。
【００４７】
以上のように、本実施形態においては、画像処理装置１２０は、移動先や移動経路をユーザに提示することができる。したがって、マーカを所持するユーザは、キャリブレーションに必要なマーカの画像を撮影するためのマーカの移動先を容易に把握することができる。すなわち、画像処理システム１００は、適切な位置及び数のマーカを検出することができ、これにより、精度よくカメラの位置及び姿勢のキャリブレーションを行うことができる。マーカを取得するべき場所をユーザに提示することで、適切にマーカの画像を取得することができ、キャリブレーションの成功頻度や精度の向上の効果が見込める。また、ユーザはカメラキャリブレーションに係わる知識や熟練度にかかわらずキャリブレーションを適切に行えるようになる効果が見込める。
【００４８】
本実施形態の第１の変形例について説明する。Ｓ４０３においては、過去のマーカ群の中に類似した位置のマーカ群が存在する場合、Ｓ４０２において検出したマーカ群を破棄した。類似した位置のマーカ群の収集を抑制することによって、特定の画像上の位置または３次元位置にマーカが集中することを抑制することができる。画像上の特定の領域に他の領域よりも極端に多くのマーカが存在した場合、その特定の部分にキャリブレーションが過剰適合し、他の領域での誤差が増加する。そのため、特定の領域にマーカが集まることを抑制することで、キャリブレーション精度の向上が見込める。例えば、マーカを持った人物が立ち止まっている場合などで、キャリブレーション精度の低下を抑制できる。
【００４９】
第２の変形例としては、Ｓ４１１において、キャリブレーション部３１０は、すべてのカメラの位置と姿勢が求まった場合、キャリブレーションが成功したと判定したが、他の条件を用いてもよい。例えば、一定個数以上や一定割合以上のカメラで位置と姿勢が求まった場合や、位置と姿勢の推定誤差がしきい値以下の場合などの条件を用いてもいい。また、カメラの位置、姿勢の推定結果を可視化したものや推定誤差の数値をユーザに提示する手段を設け、これをもとにユーザがキャリブレーションが成功したか否か選択する手段を設けてもよい。
【００５０】
第３の変形例としては、ディスプレイ１３１に表示される移動先候補画面１０００における表示態様は実施形態に限定されるものではない。他の例としては、携帯端末装置１３０は、キャリブレーションに失敗したカメラ、キャリブレーションが不可のカメラ、マーカ収集が不十分なカメラ、位置や姿勢の推定誤差が大きいカメラなど、複数のカメラのうち一部のカメラの結果を選択して表示してもよい。また、携帯端末装置１３０は、キャリブレーションの可不可、マーカ画像の収集の不十分さの度合、マーカの個数、推定誤差などの基準でカメラの結果の順番を並び変えて表示してもよい。このように選択的にユーザに指示情報を通知することで、ユーザがキャリブレーションに問題があるカメラや問題が大きいカメラを特定しやすくなる。
【００５１】
第４の変形例としては、画像処理システム１００は、マーカ画像を収集すべき領域を示す情報を出力したが、これに替えて、マーカ画像の収集が完了している領域を示す情報を出力してもよい。収集するべき領域と収集しなくてもよい領域は反転の関係にあるため、実質的に等価である。この場合、図５のＳ５０４において、移動先決定部３０７は、マーカ点数が小さい程より小さい重要度を割り当てればよい。
【００５２】
第５の変形例としては、マーカ点数の集計の処理は実施形態に限定されるものではない。本実施形態においては、５×５の領域ごとにマーカ点数を集計したが、マーカ点を点群としてプロットする方法や点群密度に応じた等高線やヒートマップ等の方法でマーカを収集するべき領域、マーカを収集しなくてもよい領域をユーザに提示してもよい。
【００５３】
第６の変形例としては、本実施例ではマーカを赤い球としたが、他の形状や色の物体でもよい。ＱＲコード（登録商標）のような２次元コードが印刷された面でもいい。また、マーカを保持する物体、人物の顔や頭部、体のパーツなどの位置を認識してマーカとしてもよい。
【００５４】
第７の変形例としては、マーカを移動させるのは人間以外でもよく、例えばマーカを装着した自律走行するロボットや車両、自律飛行するドローン等の無人機に移動先情報を出力し、無人機を誘導してもよい。通知部３０９は、無線通信、有線通信、音声などで無人機に移動経路または移動方向を通知する。そして、無人機は通知された移動経路または移動方向に移動する。マーカが自動的に移動することで、キャリブレーションの省力化の効果や、作業者の熟練度によらずキャリブレーションが行えるようになる効果が見込める。
【００５５】
第８の変形例としては、図５のＳ５０１においてキャリブレーション可能か否かを判定する処理は実施形態に限定されず、他の手法によるカメラの３次元的な位置、姿勢を含む情報を用いてもよい。移動先決定部３０７は、例えば、基本行列（Ｅｓｓｅｎｔｉａｌ  Ｍａｔｒｉｘ）や多焦点テンソル（Ｍｕｌｔｉｆｏｃａｌ  Ｔｅｎｓｏｒ）、射影行列（Ｐｒｏｊｅｃｔｉｏｎ  Ｍａｔｒｉｘ）を用いてもよい。また、移動先決定部３０７は、Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎの結果、キャリブレーションと同様の手法によるカメラの位置、姿勢推定の結果などを用いてもよい。また、移動先決定部３０７は、本実施形態においては、カメラの３次元的な位置、姿勢を含む情報が算出できたか否かによりキャリブレーションが可能か否かを判定した。これに替えて、移動先決定部３０７は、えて、カメラの３次元的な位置、姿勢を含む情報の推定誤差が大きい場合（例えば、しきい値以上の場合）にキャリブレーション不可と判定してもよい。
【００５６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００５７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５８】
１００  画像処理システム
１１０  カメラ
１２０  画像処理装置
１３０  携帯端末装置
【図１】
2018026724.tif 000004
【図２】
2018026724.tif 000005
【図３】
2018026724.tif 000006
【図４】
2018026724.tif 000007
【図５】
2018026724.tif 000008
【図６】
2018026724.tif 000009
【図７】
2018026724.tif 000010
【図８】
2018026724.tif 000011
【図９】
2018026724.tif 000012
【図１０】
2018026724.tif 000013