(57)【特許請求の範囲】
【請求項１】
複数のカメラと演算装置をネットワークを介して接続した三次元計測装置であって、
複数の撮影部と、
該撮影部から画像を取得する画像取得部と、
前記画像が撮影されたローカル時刻を取得するローカル撮影時刻取得部と、
前記画像から動物体を検出する動物体検出部と、
前記動物体が検出された画像を、それが撮影された前記ローカル時刻と関連付けて保持する画像保持部と、
前記画像保持部に保持されている画像を選択する画像選択部と、
該画像選択部が選択した画像とそれに関連付けられたローカル時刻から前記動物体の三次元位置とカメラ間の同期ずれを推定する三次元位置・同期ずれ推定部と、
前記同期ずれを保持する同期ずれ保持部と、
前記三次元位置・同期ずれ推定部の推定結果を出力する出力部と、
を備え、
前記画像選択部は、
前記カメラ間の距離から計算される空間評価値と、
前記画像保持部に保持されているローカル撮影時刻と前記同期ずれ保持部に保持されている同期ずれから計算される時間評価値と、
に基づき画像を選択して取得することを特徴とする三次元計測装置。
【請求項２】
請求項１に記載の三次元計測装置において、
前記画像選択部は、前記三次元位置・同期ずれ推定部の推定結果から計算される空間評価値に基づき画像を選択して取得することを特徴とする三次元計測装置。
【請求項３】
請求項１または請求項２に記載の三次元計測装置において、
前記画像選択部は、前記複数のカメラの外部・内部パラメータから算出した前記カメラ間の共通視野の関係に基づき画像を選択して取得することを特徴とする三次元計測装置。
【請求項４】
請求項３に記載の三次元計測装置において、
前記画像選択部は、前記三次元位置・同期ずれ推定部の処理結果に基づいて前記カメラ間の共通視野の関係を更新することを特徴とする三次元計測装置。
【請求項５】
請求項１から請求項４のいずれか一項に記載の三次元計測装置において、
前記画像選択部は、前記画像保持部が一定時間更新されていない場合に動物体が検出されていないと判断し、動物体が検出されている場合より多くの画像を選択して取得することを特徴とする三次元計測装置。
【請求項６】
請求項１から請求項５の何れか一項に記載の三次元計測装置であって、
前記カメラに前記撮影部、前記画像取得部、前記ローカル撮影時刻取得部、前記動物体検出部、および、前記画像保持部を設け、他を前記演算装置に設けた構成、または、
前記カメラに前記撮影部を設け、他を前記演算装置に設けた構成、
の何れかの構成であることを特徴とする三次元計測装置。
【請求項７】
請求項１に記載の三次元計測装置において、
前記三次元位置・同期ずれ推定部は、カメラ幾何と計測対象の運動モデルに基づいた目的関数を最小化することで、計測対象の三次元位置と、運動モデルのパラメータと、カメラ間の同期ずれを推定することを特徴とする三次元計測装置。
【請求項８】
請求項１に記載の三次元計測装置において、
前記出力部は、前記カメラの位置・姿勢と、前記画像選択部により選択された前記画像と、前記三次元位置・同期ずれ推定部により推定された計測対象の三次元位置と運動モデルのパラメータと、を二次元もしくは三次元の地図に表示することを特徴とする三次元計測装置。
【請求項９】
請求項４に記載の三次元計測装置において、
前記複数のカメラには、位置・姿勢が変化する動カメラを含み、
該動カメラが撮影した画像から、該動カメラの位置・姿勢の推定、動物体の検出、前記複数のカメラ間の共通視野の関係を更新する動カメラ処理部、
をさらに備えることを特徴とする三次元計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の空間位置やサイズを、その対象物を撮影した複数の画像から推測する三次元計測装置に関する。
【背景技術】
【０００２】
近年、監視分野において、撮影装置が撮影した画像から、対象物の位置やサイズを検出する画像認識技術のニーズが高まっている。この画像認識技術を、複数の撮影装置を用いるシステムへ適用する場合、複数の撮影装置が撮影した全画像を対象物の位置等の推定に使用すると、画像伝送にかかるネットワーク負荷や、画像処理にかかる演算負荷が過大となるため、使用画像を絞り込み、伝送・演算の負荷を軽減する必要がある。【０００３】
これに関連する技術として、例えば、特許文献１の段落００６６には「選択部１１８は、第１視点以外の複数の視点の中から、空間位置の推定誤差が他よりも小さい、前記基準画像との撮像時刻の差が他よりも小さい、及び画質が他よりも高い、の少なくともいずれかの条件を満たす視点を、第２視点に選択する。」との記載がある。【０００４】
すなわち、複数の視点のうち、諸条件の何れかを満たす一つの視点を第２視点として選択し、この絞り込んだ第２視点から得られる画像を用いて、演算負荷を軽減しつつ、物体空間位置の推定精度を高める技術が開示されている（同文献の段落００６３〜００９０参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１８６００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の画像認識技術は、同文献の段落００２６〜００２８等で説明されるように、異なる撮像装置が撮像した画像にＮＴＰサーバやＧＰＳ等から得た共通の撮像時刻情報を付すシステムを前提としており、共通の撮影時刻情報が付された撮影画像を複数用いて、物体の空間位置を推定するものであるため、各撮像装置が撮影画像に独自の撮像時刻情報を付すシステムには適用することができない。【０００７】
また、特許文献１に記載されている発明は、推定に用いる画像の選択時に、カメラ配置などの空間的尺度とカメラ間の同期ずれ量などの時間的尺度のいずれか一方しか考慮しておらず、推定に用いるには不適切な画像を選択してしまう可能性もあり、計測精度が低くなってしまう可能性もある。
【課題を解決するための手段】
【０００８】
上記の問題を解決するため、本発明にかかる三次元計測装置は、複数のカメラと演算装置をネットワークを介して接続するとともに、複数の撮影部と、該撮影部から画像を取得する画像取得部と、前記画像が撮影されたローカル時刻を取得するローカル時刻取得部と、前記画像から動物体を検出する動物体検出部と、前記動物体が検出された画像を、それが撮影された前記ローカル時刻と関連付けて保持する画像保持部と、前記画像保持部に保持されている画像を選択する画像選択部と、該画像選択部が選択した画像とそれに関連付けられたローカル時刻から前記動物体の三次元位置とカメラ間の同期ずれを推定する三次元位置・同期ずれ推定部と、前記同期ずれを保持する同期ずれ保持部と、前記三次元位置・同期ずれ推定部の推定結果を出力する出力部と、を備え、前記画像選択部は、前記カメラ間の距離から計算される空間評価値と、前記画像保持部に保持されているローカル撮影時刻と前記同期ずれ保持部に保持されている同期ずれから計算される時間評価値と、に基づき画像を選択して取得するものとした。
【発明の効果】
【０００９】
本発明によれば、各撮影装置の撮影画像に独自の撮影時刻情報が付されている場合であっても、それらの撮影画像を用いて物体の位置やサイズを高精度に推定することができる。【００１０】
また、複数条件を組み合わせて空間位置推定等に用いる複数画像を選択するので、ネットワーク負荷や演算負荷を更に軽減つつ、高精度に三次元位置が計測することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の三次元計測装置の構成を示すブロック図
【図２】カメラの設置環境の一例を示す概略図
【図３】特定のカメラにおける、ローカル撮影時刻の一例を示す図
【図４】複数のカメラ間の、同期ずれの一例を示す図
【図５】特徴点の検出位置に対する再投影誤差の一例を示す図
【図６】特徴点の三次元位置の運動の一例を示す図
【図７】オプティカルフローに対する再投影誤差の一例を示す図
【図８】共通視野グラフの一例を示す図
【図９】共通視野グラフを作成する処理のフローチャート
【図１０】画像選択部の処理を示すフローチャート
【図１１】図１０のステップＳ６４０で実行される処理の詳細を示すフローチャート
【図１２】出力部が出力する二次元地図の一例を示す図
【図１３】実施例２の三次元計測装置のブロック構成を示す図
【図１４】実施例２の動カメラ処理部の処理を示すフローチャート
【図１５】実施例２の共通視野グラフの一例を示す図
【発明を実施するための形態】
【００１２】
以下、図面を用いて、本発明の実施例を説明する。
【実施例１】
【００１３】
以下、図１〜図１２を参照して、実施例１の三次元計測装置を説明する。
（ブロック構成）
図１は、実施例１の三次元計測装置１００のブロック構成を示す図である。三次元計測装置１００は、複数の画像に基づいて計測対象の三次元位置やサイズを推定するものであり、図１に示すように、主に、複数のカメラ１００Ａと、それらとネットワークを介して接続される演算装置１００Ｂから構成される。【００１４】
カメラ１００Ａは、撮影部１０１と、画像取得部１０２と、ローカル撮影時刻取得部１０３と、動物体検出部１０４と、画像保持部１０５と、を備える。ここでは、カメラ１００Ａ（１）を例に詳細構造を示しており、同等構造のカメラ１００Ａ（２）、１００Ａ（３）については、詳細構造を省略している。【００１５】
また、演算装置１００Ｂは、画像選択部１０６と、三次元位置・同期ずれ推定部１０７と、同期ずれ保持部１０８と、出力部１０９と、を備える。【００１６】
カメラ１００Ａは、たとえば、天井に固定され、ネットワークに接続された監視カメラであり、撮影部１０１によって予め定められた周期で画像を撮影する。画像取得部１０２は撮影部１０１が撮影した画像を取得する。ローカル撮影時刻取得部１０３は、画像取得部１０２によって取得された画像の撮影時刻を、当該カメラ１００Ａのローカル時刻で取得する。ここで、ローカル時刻とは、たとえば、各カメラの起動時間など、カメラ毎に定める任意時間を０とした時刻である。動物体検出部１０４は、画像取得部１０２が取得した画像から動物体を検出する。画像保持部１０５は、動物体が検出された画像を、それが撮影されたローカル撮影時刻と関連付けて保持する。【００１７】
一方、演算装置１００Ｂは、ネットワークに接続されたＰＣやサーバ等である。画像選択部１０６は画像保持部１０５に保持されている画像から所定の条件を満たすものを選択して取得する。なお、この条件の詳細は後述する。三次元位置・同期ずれ推定部１０７は、画像選択部１０６が選択した画像と対応するローカル撮影時刻から、動物体の三次元位置とカメラ間の同期ずれを推定する。同期ずれ保持部１０８は、三次元位置・同期ずれ推定部１０７が推定した複数のカメラ間の同期ずれを保持する。出力部１０９は、三次元位置・同期ずれ推定部１０７の推定結果を出力する。【００１８】
以下の説明では、複数のカメラ１００Ａの識別子をｋとし、Ｎｋをカメラ１００Ａの総数とする。すなわち、三次元計測装置１００は、Ｎｋ台のカメラ１００Ａを備える。【００１９】
図２はカメラ１００Ａの設置環境の一例を示す図である。各カメラ１００Ａは、他のカメラ１００Ａと視野が共通する領域を持っているため、三次元計測装置１００は、複数のカメラ１００Ａの視野共通領域に存在する動物体１５０の三次元位置やサイズを計測することができる。なお、動物体１５０は、たとえば、観測対象となる歩行者や自動車、ロボットなどである。
【００２０】
次に、任意のｋ番目のカメラ１００Ａ（ｋ）を例に、カメラ内部の詳細を説明する。画像取得部１０２は、撮影部１０１から画像を取得する。以下の説明では、撮影部１０１から取得した画像の識別子をｉとする。また、ローカル撮影時刻取得部１０３は、画像取得部１０２が取得した各画像の撮影時刻である、ローカル撮影時刻ｌｋｉを取得する。【００２１】
図３は、カメラ１００Ａ（ｋ）におけるローカル撮影時刻の一例を示す図である。この例では、カメラ１００Ａ（ｋ）の最初の画像の撮影時刻が１２０Ｔ、ｉ番目の画像の撮影時刻が１２１Ｔ、ｉ＋１番目の画像の撮影時刻が１２２Ｔである。そして、最初の撮影時刻１２０Ｔをローカル時刻の基準である０と定めると、撮影時刻１２１Ｔに対応するローカル撮影時刻は１２１Ｔと１２０Ｔの差であるｌkiとなり、撮影時刻１２２Ｔに対応するローカル撮影時刻は１２２Ｔと１２０Ｔの差であるｌki+1となる。なお、各撮影時刻は、カメラ１００Ａが露光を開始した時刻、もしくは、露光を終了した時刻である。【００２２】
ローカル撮影時刻取得部１０３は、カメラ１００Ａ（ｋ）が備えるタイマーからローカル撮影時刻を直接取得できる場合は、タイマーからローカル撮影時刻ｌkiやｌki+1を取得する。一方、タイマーを備えないが、撮影部１０１のフレームレートが一定かつ既知である場合は、カメラ１００Ａ（ｋ）のフレームレートμｋから、式１を用いてローカル撮影時刻ｌkiやｌki+1を計算する。【００２３】
【数１】
0006734940.tif 000002
【００２４】
動物体検出部１０４は、画像取得部１０２が取得した画像に動物体１５０が含まれているか判定する。判定には、たとえば、背景差分法やフレーム間差分法といった公知の動物体検出技術を用いることができる。画像保持部１０５は、動物体１５０が検出された画像を、それが撮影されたローカル撮影時刻と関連付けて保持する。【００２５】
一方、演算装置１００Ｂの画像選択部１０６は、カメラ１００Ａ（ｋ）内の画像保持部１０５に保持されている、動物体１５０が検出された画像から所定の条件を満たす画像を選択して取得する。三次元位置・同期ずれ推定部１０７は、画像選択部１０６が取得した画像と、それに対応するローカル撮影時刻から、動物体１５０の三次元位置とカメラ１００Ａ同士の同期ずれを推定する。同期ずれ保持部１０８は、三次元位置・同期ずれ推定部１０７が推定した複数のカメラ１００Ａ間の同期ずれを保持する。出力部１０９は、三次元位置・同期ずれ推定部１０７の推定結果を出力する。ここで概説した演算装置１００Ｂ内部の処理の詳細は後述する。【００２６】
図４は、複数のカメラ１００Ａ間の同期ずれの一例を示す図である。ここに示す例では、図３と同じく、カメラ１００Ａ（ｋ）の最初の画像の撮影時刻を１２０Ｔ、ｉ番目の撮影画像の撮影時刻を１２１Ｔとしている。また、ｋ＋１番目のカメラ１００Ａ（ｋ＋１）の最初の画像の撮影時刻を１２３Ｔとしている。【００２７】
任意の時刻１３０Ｔを基準とするグローバル時刻と、カメラ１００Ａのローカル時刻の間の差を同期ずれδとしたとき、図４に示す例では、各カメラ１００Ａの最初の撮影画像の撮影時刻１２０Ｔ、１２３Ｔを、各ローカル時刻の基準としているため、カメラ１００Ａ（ｋ）の同期ずれδkは、撮影時刻１２０Ｔと時刻１３０Ｔの差として算出でき、カメラ１００Ａ（ｋ＋１）の同期ずれδk+1は、撮影時刻１２３Ｔと時刻１３０Ｔの差として算出できる。【００２８】
また、カメラ１００Ａ（ｋ）がｉ番目に撮影した画像の、グローバル時刻での撮影時刻であるグローバル撮影時刻τkiは、同期ずれδkとローカル撮影時刻ｌkiから式２により計算される。【００２９】
【数２】
0006734940.tif 000003
【００３０】
なお、図１では、カメラ１００Ａ内に、撮影部１０１、画像取得部１０２、ローカル撮影時刻取得部１０３、動物体検出部１０４、画像保持部１０５を設け、演算装置１００Ｂ内に、画像選択部１０６、三次元位置・同期ずれ推定部１０７、同期ずれ保持部１０８、出力部１０９を設ける構成を示したが、各部をどちらに設けるかはこの構成に制限されず、例えば、カメラ１００Ａ内には撮影部１０１のみを設け、他を演算装置１００Ｂ内に設ける構成としても良い。この場合、複数のカメラ１００Ａが撮影した全ての画像を演算装置１００Ｂに送信する必要があるため、ネットワークの負荷は前者の構成に比べて大きくなるが、後述のように、三次元位置・同期ずれ推定部１０７を用いて、撮影時刻情報を共通しない各カメラ間の同期ずれを推定したうえで、対象物の空間位置やサイズを推測することができる。
（三次元位置・同期ずれ推定部１０７の動作）
次に、図５〜図７を用いて、三次元位置・同期ずれ推定部１０７における処理の内容について説明する。三次元位置・同期ずれ推定部１０７で行われる処理は、特徴点の対応付け、モーションセグメンテーション、最適化、の３つである。【００３１】
最初の処理である、特徴点の対応付け処理では、画像選択部１０６が選択して取得した複数の画像間で計測対象上の同一点を対応付ける。同一点の対応付けには、公知の対応付け手法を用いることができる。たとえば、画像から対応付けが容易な点である特徴点を抽出し、対応付けに用いる。画像間の視点変化が小さい場合には、視点変化が小さい場合に高速・高精度に対応付けを得ることができるＬＫ法（Bruce D. Lucas and Takeo Kanade, An Iterative Image Registration Technique with an Application to Stereo Vision, Int. Joint Conf. on Artificial Intelligence, pp. 674-679, 1981）を用いることができる。また、画像間の視点変化が大きい場合には、ＳＩＦＴ（D.G. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, Int. J. of Computer Vision, vol. 60, no. 2, pp. 91-110, 2004）を用いることができる。【００３２】
次の処理である、モーションセグメンテーション処理では、特徴点の対応付けによって得られた複数の特徴点対応を、画像中での特徴点の位置から、三次元空間における移動に応じたグループに分割する。三次元空間における移動に応じたグループへの分割には、公知のモーションセグメンテーション手法を用いることができる。たとえば、文献（R. Tron and R. Vidal, A Benchmark for the Comparison of 3-D Motion Segmentation Algorithms, Proc. IEEE Conf. on Computer Vision and Pattern Recognition, 8 pages, 2007）で紹介されている手法を用いることができる。【００３３】
最後の処理である、最適化処理では、特徴点の対応付け結果と、モーションセグメンテーション結果から、特徴点の三次元位置とカメラ１００Ａ間の同期ずれを推定する。具体的には、目的関数として再投影誤差の二乗和Ｅを用い、再投影誤差の二乗和ＥをLevenberg-Marquardt法やガウスニュートン法などの公知の非線形最小二乗法を用いて最小化することにより、特徴点の三次元位置とカメラ１００Ａ間の同期ずれを推定する。再投影誤差の二乗和Ｅは式３により計算される。【００３４】
【数３】
0006734940.tif 000004
【００３５】
ここで、Ｅpは特徴点の検出位置に対する再投影誤差の二乗和、Ｅlは特徴点の検出位置から計算されるオプティカルフローに対する再投影誤差の二乗和を表わす。以下では、まず、特徴点の検出位置に対する再投影誤差の二乗和Ｅpについて説明する。【００３６】
図５は特徴点の検出位置に対する再投影誤差の一例を示す図である。特徴点の検出位置に対する再投影誤差２００は、予測した特徴点の三次元位置２０１を、カメラ１００Ａの位置・姿勢を表わすカメラ外部パラメータと、焦点距離や光学中心位置、レンズ歪などのカメラ内部パラメータと、を用いて画像２０２へ投影した投影位置２０３と、同じ画像２０２中での実際の特徴点の検出位置２０４の距離である。カメラ１００Ａの位置・姿勢は、世界座標系２０５からカメラ座標系２０６への回転行列と平行移動ベクトルで表現される。ここで、世界座標系２０５は、三次元空間の任意の位置を原点とする直交座標系、カメラ座標系２０６はカメラ１００Ａの光学中心を原点とし、ｘ軸を画像２０２のｘ軸方向、ｙ軸を画像２０２のｙ軸方向、ｚ軸をカメラ１００Ａの光軸方向に取った直交座標系である。【００３７】
特徴点の検出位置に対する再投影誤差２００の二乗和Ｅpは式４により計算される。【００３８】
【数４】
0006734940.tif 000005
【００３９】
ここで、Ｋは画像選択部１０６が１つ以上の画像を選択したカメラ１００Ａの集合、Ｉkは画像選択部１０６が選択したカメラ１００Ａ（ｋ）が撮影した画像２０２の集合、Ｐkiはカメラ１００Ａ（ｋ）がｉ番目に撮影した画像２０２に対応付けられた特徴点の集合である。（ｘkij、ｙkij）Ｔは正規化画像座標系におけるカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２におけるｊ番目の特徴点の検出位置２０４である。（ｘ’kij、ｙ’kij）Ｔは世界座標系２０５におけるカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２におけるｊ番目の特徴点の三次元位置２０１をカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２へ投影した投影位置２０３である。【００４０】
正規化画像座標系におけるカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２におけるｊ番目の特徴点の検出位置２０４（ｘkij、ｙkij）Ｔは、たとえば、カメラモデルとして透視投影モデルを用いた場合、式５により計算される。ただし、カメラモデルは透視投影モデルに限定されるものではなく、全方位カメラ用のカメラモデルなど、他のカメラモデルを用いても良い。【００４１】
【数５】
0006734940.tif 000006
【００４２】
ここで、（ｃkx、ｃky）Ｔはカメラ１００Ａ（ｋ）の光学中心の位置、（ｆkx、ｆky）Tはカメラ１００Ａ（ｋ）の焦点距離である。（ｕkjj、ｖkij）Ｔはレンズ歪を取り除いた画像座標におけるカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２におけるｊ番目の特徴点の検出位置２０４であり、たとえば、レンズ歪モデルとして、レンズの半径方向の歪曲収差を用いた場合、式６．１、式６．２により計算される。ただし、レンズ歪モデルは、レンズの半径方向の歪曲収差に限定されるものではなく、レンズの半径方向に直交する接線方向の歪曲収差など、他のレンズモデルを用いても良い。【００４３】
【数６】
0006734940.tif 000007
【００４４】
ここで、（ｕ’kjj、ｖ’kij）Tは特徴点の検出処理で求まったカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２におけるｊ番目の特徴点の検出位置２０４である。κ１、κ２はレンズ歪パラメータである。各カメラ１００Ａの光学中心の位置（ｃkx、ｃky）T、焦点距離（ｆkx、ｆky）T、レンズ歪パラメータκ1、κ2といったカメラ内部パラメータは、事前のカメラ校正により既知とする。【００４５】
世界座標系２０５におけるカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２におけるｊ番目の特徴点の三次元位置２０１をカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２へ投影した投影座標２０３（ｘ’kij、ｙ’kij）Tは式７．１、式７．２により計算される。【００４６】
【数７】
0006734940.tif 000008
【００４７】
ここで、ＲkiWCki、ｔkiWCkiは世界座標系２０５からカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２のカメラ座標系２０６への回転行列と平行移動ベクトルである。回転行列と平行移動ベクトルＲkiWCki、ｔkiWCkiといったカメラ外部パラメータは、事前のカメラ校正により既知とする。ｐkijWは世界座標系２０５におけるカメラ１００Ａ（ｋ）でｉ番目に撮影された画像２０２のグローバル撮影時刻τkiにおけるｊ番目の特徴点の三次元位置２０１である。【００４８】
ここで、グローバル撮影時刻τｋｉにおける特徴点の三次元位置２０１  ｐkijWに制約を与えない場合、式４に示す特徴点の検出位置に対する再投影誤差２００の二乗和Ｅpを０にするｐkijWが無数に存在する。すなわち、グローバル撮影時刻τｋｉにおける特徴点の三次元位置２０１  ｐkijWを一意に決定することができない。そこで、特徴点の三次元位置２０１  ｐkijWの運動は、たとえば、等速直線運動や等加速度運動などの運動モデルにしたがうという制約を与える。また、モーションセグメンテーション処理の結果、同じグループに属する特徴点は、同じ運動モデルのパラメータで運動するという制約を追加で与えてもよい。【００４９】
図６は特徴点の三次元位置２０１の運動の一例を示す図である。図６に示す例では、特徴点の三次元位置２０１が等速直線運動２０７により運動している。運動モデルとして等速直線運動を用いた場合、グローバル撮影時刻τkiにおける特徴点の三次元位置２０１  ｐkijWは式８により計算される。【００５０】
【数８】
0006734940.tif 000009
【００５１】
ここで、ｐjWは世界座標系２０５におけるグローバル時刻０におけるｊ番目の特徴点の三次元位置２０１、ｍg(j)Wはｊ番目の特徴点が属するグループの世界座標系２０５における速度である。【００５２】
次に、特徴点の検出位置から計算されるオプティカルフローに対する再投影誤差の二乗和Ｅlについて説明する。図７は、オプティカルフローに対する再投影誤差の一例を示す図である。オプティカルフローに対する再投影誤差２１０は、特徴点の三次元位置２０１を画像２０２へ投影した投影位置２０３と、特徴点の検出位置２０４から計算されるオプティカルフローに対応する直線２１１との間の距離である。【００５３】
特徴点の検出位置から計算されるオプティカルフローに対する再投影誤差２１０の二乗和Ｅlは式９により計算される。【００５４】
【数９】
0006734940.tif 000010
【００５５】
ここで、Ｐはすべての特徴点の集合、Ｋ2は画像選択部１０６により画像が２枚以上選択されている、位置・姿勢が変化しないカメラ１００Ａの集合である。ｑklは特徴点の検出位置２０４から計算されるオプティカルフローに対応する直線２１１である。ｑklはカメラ１００Ａ毎に、すべての選択された画像の特徴点の検出位置２０４に対して直線を当てはめることにより算出する。proj（ｐkijW、ＲklWCkl、ｔklWCkl）は、式７と同様の計算により、カメラ１００Ａ（ｋ）でｉ番目の画像が撮影された時刻におけるｊ番目の特徴点の三次元位置ｐkijWを、ｋｌ番目のカメラ１００Ａ（ｋ１）の位置・姿勢ＲklWCkl、ｔklWCklを用いて、カメラ１００Ａ（ｋ１）で撮影された画像へ投影した投影位置を返す関数である。ｅは、直線と点の距離を返す関数である。【００５６】
三次元位置・同期ずれ推定部１０７は、式１０のように、再投影誤差の二乗和Ｅを最小化することで、特徴点の三次元位置２０１  ｐjW、特徴点の運動ｍg(j)W、カメラ間の同期ずれδkを推定する。【００５７】
【数１０】
0006734940.tif 000011
【００５８】
ここで、Ｇはモーションセグメンテーション処理で得られたすべてのグループの集合である。ｋ’は画像選択部１０６で１つ以上の画像２０２が選択されたカメラ１００Ａの中から任意に決定した時刻の基準となる１個のカメラ１００Ａである。
（共通視野グラフの作成）
三次元計測装置１００では、実際の運用に先立ち、各カメラ１００Ａの位置・姿勢と内部パラメータから、カメラ１００Ａ間の共通視野の関係を表わす共通視野グラフ２５０を作成しておき、実際の運用時に、画像選択部１０６でこれを利用できるようにしている。図８は共通視野グラフ２５０の一例である。【００５９】
ここに示すように、共通視野グラフ２５０は、ノード２５１と、エッジ２５２から構成される。ノード２５１は対応するカメラ番号のカメラ１００Ａを表わし、エッジ２５２は両端のノード２５１に対応するカメラ１００Ａ同士が共通視野を持つことを示す。従って、カメラ０を例にすると、カメラ１およびカメラ２と共通視野を持ち、他のカメラとは共通視野を持たないことが示されている。【００６０】
図９は共通視野グラフ２５０を作成する処理のフローチャートである。【００６１】
最初のステップＳ５００では、共通視野グラフ２５０を初期化する。具体的には、各カメラ１００Ａに対応するノード２５１のみからなり、エッジ２５２を持たないグラフを作成する。【００６２】
ステップＳ５１０では、Ｎk個のノード２５１から２つのノード２５１を選択するNkＣ2個の組み合わせに対するループ処理を開始する。以降では、２つのノードに対応するカメラのうち、任意の１つのカメラを基準カメラ、他方のカメラを判定カメラとする。また、基準カメラのカメラ番号をｋa、判定カメラのカメラ番号をｋbとする。【００６３】
ステップＳ５２０では、２つのカメラが共通視野を持つかどうかを判定するために利用する三次元空間中のサンプル点に対するループ処理を開始する。サンプル点は基準カメラに基づいて作成する。たとえば、基準カメラの正規化画像座標系における画像ｘ座標の最小値ｘkamin、最大値ｘkamax、基準カメラの正規化画像座標系における画像ｙ座標の最小値ｙkamin、最大値ｙkamax、基準カメラのカメラ座標系２０６における奥行きの最小値Ｚkamin、最大値Ｚkamaxにより規定される三次元空間を、それぞれステップ幅ｘstep、ｙstep、Ｚstepでサンプリングし、サンプル点とする。ｘkamin、ｘkamax、ｙkamin、ｙkamaxは基準カメラの画像サイズから決定される。Ｚkamin、Ｚkamax、ｘstep、ｙstep、Ｚstepは、事前に任意に設定する。以降では、サンプル点の基準カメラの正規化画像座標系における画像ｘ座標をｘkas、基準カメラの正規化画像座標系における画像ｙ座標をｙkas、基準カメラのカメラ座標系における奥行きをＺkasとする。【００６４】
ステップＳ５３０では、サンプル点が判定カメラに映るかどうかを判定する。まず、判定カメラのカメラ座標系２０６におけるサンプル点の三次元位置ｐsCkbを式１１．１〜式１１．３により計算する。【００６５】
【数１１】
0006734940.tif 000012
【００６６】
ここで、ＲkaCkaW、ｔkaCkaWは基準カメラのカメラ座標系２０６から世界座標系２０５への回転行列と平行移動ベクトル、ＲkbWCkb、ｔkbWCkbは世界座標系２０５から判定カメラのカメラ座標系２０６への回転行列と平行移動ベクトルである。次に、判定カメラのカメラ座標系２０６におけるサンプル点の三次元位置ｐsCkbの判定カメラの正規化画像座標系における投影位置（ｘ’kbs、ｙ’kbs）Tを式１２．１、式１２．２により計算する。【００６７】
【数１２】
0006734940.tif 000013
【００６８】
最後に、式１３の判定式を計算する。【００６９】
【数１３】
0006734940.tif 000014
【００７０】
ここで、ｘkbmin、ｘkbmaxは判定カメラの正規化画像座標系における画像ｘ座標の最小値と最大値、ｙkbmin、ｙkbmaxは判定カメラの正規化画像座標系における画像ｙ座標の最小値と最大値、Ｚkbmin、Ｚkbmaxは判定カメラのカメラ座標系２０６における奥行きの最小値と最大値である。ｘkbmin、ｘkbmax、ｙkbmin、ｙkbmaxは判定カメラの画像サイズから決定される。Ｚkbmin、Ｚkbmaxは、事前に任意に設定する。式１３．１〜式１３．３のすべての判定式を満たす場合に、判定カメラにサンプル点が映る、すなわち、２つのカメラが共通視野を持つと判定し、ステップＳ５４０に進む。ひとつでも判定式が満たされなかった場合は、次のサンプル点のループ処理に進む。【００７１】
ステップＳ５４０では、基準カメラと判定カメラに対応する共通視野グラフ２５０のノード２５１間をつなぐエッジ２５２を追加する。ここまでの一連の処理により、共通視野グラフ２５０を完成させることができる。
（画像選択部１０６の動作）
次に図１０〜図１１を用いて、画像選択部１０６おける処理の内容について説明する。図１０は画像選択部１０６において実行される処理を示すフローチャートである。ステップＳ６００では、共通視野グラフ２５０を必要に応じて更新する。ステップＳ６１０では、現在、動物体１５０を検出しているかどうかを判定する。動物体１５０を検出している場合には、ステップＳ６２０に進み、動物体１５０を検出していない場合には、ステップＳ６３０に進む。ステップＳ６２０では、動物体１５０を計測するための選択対象画像を抽出する。ステップＳ６３０では、カメラ１００Ａの同期ずれを更新するための選択対象画像を抽出する。ステップＳ６４０では、評価値に基づいて選択対象画像から画像を選択する。以下、各ステップについて詳細に説明する。【００７２】
最初のステップＳ６００では、前の処理周期までの三次元位置・同期ずれ推定部１０７の処理結果に基づいて、共通視野グラフ２５０を更新する。具体的には、まず、事前に設定された回数以上、三次元位置・同期ずれ推定部１０７において、特徴点の対応付けを計算したカメラ１００Ａの組み合わせを抽出する。次に、抽出した組み合わせについて、各特徴点の対応付け処理によって対応付いた特徴点の数の平均を計算する。最後に、特徴点の数の平均が事前に設定した閾値以下の場合には、特徴点の対応が得られない組み合わせであると判定し、共通視野グラフ２５０から、該当するカメラ１００Ａに対応するノード２５１間をつなぐエッジ２５２を取り除く。【００７３】
ステップＳ６１０では、各カメラ１００Ａが、現在、動物体１５０を検出しているかどうかを判定する。具体的には、画像保持部１０５が事前に設定された時間以内に更新されている場合、動物体１５０が検出されていると判定し、ステップＳ６２０に進む。画像保持部１０５が事前に設定された時間以上更新されていない場合、動物体１５０が検出されていないと判定し、ステップＳ６３０に進む。【００７４】
ステップＳ６２０では、動物体１５０を計測するための選択対象の画像２０２を選択対象画像として抽出する。具体的には、まず、事前に設定された時間以内に画像保持部１０５に新しく追加された画像２０２を選択対象画像として抽出する。次に、画像保持部１０５に保持されているローカル撮影時刻と、同期ずれ保持部１０８に保持されている同期ずれから、抽出された画像に対応する最も古いグローバル撮影時刻を計算する。最後に、画像保持部１０５から、最も古いグローバル撮影時刻からτｔｈ以内に撮影された画像２０２を選択対象画像として追加で抽出する。τｔｈは事前に設定された閾値である。【００７５】
ステップＳ６３０では、同期ずれを更新するための選択対象の画像２０２を選択対象画像として抽出する。具体的には、画像保持部１０５に保持されているローカル撮影時刻と、同期ずれ保持部１０８に保持されている同期ずれから、画像保持部１０５に保持されている画像のグローバル撮影時刻を計算し、最も新しいグローバル撮影時刻からτ’th以内に撮影された画像２０２を選択対象画像として抽出する。τ’thは事前に設定された閾値である。ここで、ステップＳ６３０では、τ’thをτthより大きく設定することにより、動物体計測用の選択対象画像を抽出するステップＳ６２０より多くの画像を選択対象画像として抽出する。【００７６】
ステップＳ６４０では、評価値に基づき、選択対象画像から画像を選択する。図１１はステップＳ６４０で実行される処理の詳細を示すフローチャートである。【００７７】
まず、ステップＳ６４１では、選択対象画像に基づいて、共通視野グラフ２５０を更新する。具体的には、撮影した画像が１枚も選択対象画像に含まれていないカメラ１００Ａに対応するノード２５１と、そのノード２５１につながるエッジ２５２を、共通視野グラフ２５０から除外する。【００７８】
ステップＳ６４２では、共通視野グラフ２５０を連結成分分解し、各連結成分に対するループ処理（ステップＳ６４３〜Ｓ６４７）を開始する。共通視野グラフ２５０の連結成分分解には、幅優先探索や深さ優先探索などによる公知の技術を用いることができる。たとえば、図８に示した共通視野グラフ２５０は、２つの連結成分に分解される。１つは、０、１、２、３番目のカメラに対応するノード２５１とそれらをつなぐエッジ２５２からなる連結成分であり、もう１つは、４、５、６番目のカメラに対応するノード２５１とそれらをつなぐエッジ２５２からなる連結成分である。【００７９】
ステップＳ６４３では、処理対象の連結成分に含まれるカメラ１００Ａで撮影された選択対象画像から画像の組み合わせを選択候補画像として選択し、各組み合わせに対するループ処理（ステップＳ６４４〜Ｓ６４６）を開始する。以下では、処理対象の連結成分に含まれるカメラ１００Ａで撮影された選択候補画像の枚数をＮcimgとする。また、処理対象の連結成分に含まれるカメラ１００Ａの数をＮccamとする。具体的には、ステップＳ６４３では、Ｎcimg枚の画像からＮs枚の画像を選択する。まず、各カメラ１００Ａによって撮影された画像の内、最もローカル撮影時刻が新しい画像２０２を選択する。すなわちＮccam枚の画像２０２を選択する。次に残りのＮcimg  −  Ｎccam枚の画像からＮs  −  Ｎccam枚の画像を選択する（Ｎcimg - Ｎccam）Ｃ（Ｎs - Ｎccam）通りの画像２０２の組み合わせを生成し、各組み合わせに対するループ処理を開始する。各組み合わせに含まれる画像を選択候補画像とする。【００８０】
ステップＳ６４４では、選択候補画像に対する、空間評価値Ｖｓを式１４．１〜式１４．３により算出する。【００８１】
【数１４】
0006734940.tif 000015
【００８２】
ここで、Ｃ2は選択候補画像から２枚の画像を選ぶすべての組み合わせの集合である。Ｇは前の処理周期において三次元位置・同期ずれ推定部１０７のモーションセグメンテーション処理で得られたすべてのグループの集合である。ｐgWは前の処理周期において三次元位置・同期ずれ推定部１０７により推定されたグループ内の特徴点の三次元位置の平均であり、グループに対応する動物体の三次元位置を表わす。Ｃ2gは式１２、式１３と同様の処理により判定された、選択候補画像の内、ｐgWの投影位置が画像の範囲内であり、かつ、カメラからｐgWまでの奥行きが事前に設定した値以内の画像を、２枚選ぶすべての組み合わせの集合である。（ｋα、ｉα）、（ｋβ、ｉβ）は集合から選択された２枚の画像２０２のカメラ番号と、画像番号である。ｔkαiαCkαiαW、ｔkβiβCkβiβWは、それぞれｋα番目のカメラ１００Ａ（ｋα）でｉα番目に撮影された画像２０２の世界座標系２０５における位置、ｋβ番目のカメラ１００Ａ（ｋβ）でｉβ番目に撮影された画像２０２の世界座標系２０５における位置である。∠（ｔkαiαCkαiαW、ｐgW、ｔkβiβCkβiβW）は、ｐgWを中心として、ｔkαiαCkαiαW、ｐgW、ｔkβiβCkβiβWの３点がなす角度である。λd、λaは事前に設定された重みである。【００８３】
ステップＳ６４５では、選択候補画像に対する、時間評価値Ｖtを式１５により算出する。【００８４】
【数１５】
0006734940.tif 000016
【００８５】
ここで、στは、選択候補画像のグローバル撮影時刻の標準偏差である。【００８６】
ステップＳ６４６では、選択候補画像に対する空間評価値Ｖsと時間評価値Ｖtから式１６により評価値Ｖを計算する。【００８７】
【数１６】
0006734940.tif 000017
【００８８】
ここで、λs、λtは事前に設定された重みである。【００８９】
ステップＳ６４７では、すべての選択候補画像の組み合わせから、評価値Ｖが最も大きい組み合わせを、三次元位置・同期ずれ推定部１０７の入力として選択する。【００９０】
以上で説明した、各連結成分、各画像の組み合わせに対する、ステップＳ６４１〜Ｓ６４７の処理により、ステップＳ６４０の評価値に基づく画像選択を実現することができる。
（出力部１０９の動作）
次に、図１２を用いて、出力部１０９の動作について説明する。出力部１０９は、三次元位置・同期ずれ推定部１０７により推定された特徴点の三次元位置２０１を管理サーバ等の外部装置に出力する。また、出力部１０９は、三次元位置・同期ずれ推定部１０７により推定された特徴点の三次元位置２０１を三次元もしくは二次元の地図を用いて表示しても良い。【００９１】
図１２は、出力部１０９が外部装置に出力する二次元地図の一例を示す図である。図１２では、カメラ１００Ａの位置・姿勢をカメラのアイコン３０１により表示している。また、三次元位置・同期ずれ推定部１０７により推定された三次元位置２０１をアイコン３０２で表示している。ここで、モーションセグメンテーションの結果を用いて、グループ毎に違うアイコン（○または△）を用いている。また、三次元位置・同期ずれ推定部により推定された各グループの進行方向である運動パラメータを矢印アイコン３０３により表示している。加えて、画像選択部１０６が選択した、アイコン３０２や矢印アイコン３０３の抽出、推定の根拠となる画像を、対応する各カメラ１００Ａを表わすアイコン３０１の近くに吹き出し３０４として表示している。
（作用効果）
上述した実施例１によれば、次の作用効果が得られる。【００９２】
（１）  本実施例の三次元計測装置１００では、画像選択部１０６が、三次元位置・同期ずれ推定部１０７の推定結果と、同期ずれ保持部１０８に保持されている同期ずれと、に応じて三次元位置・同期ずれ推定部１０７が推定に用いる画像を、画像保持部１０５から選択するようにした。そのため、三次元位置・同期ずれ推定部１０８が処理する画像２０２の枚数が少なくなり、計算量が軽減される。【００９３】
（２）  画像選択部１０６は、カメラ１００Ａの位置・姿勢と、共通視野グラフ２５０から、カメラ１００Ａ間の距離に基づいて空間評価値を計算し（図１１、ステップＳ６４４）、画像保持部１０５に保持されているローカル撮影時刻と、同期ずれ保持部１０８に保持されている同期ずれから、時間評価値を計算する（図１１、ステップＳ６４５）。また、画像保持部１０６は、空間評価値と時間評価値から、評価値を計算し、評価値が高い画像２０２の組み合わせを選択する（図１１、ステップＳ６４６）。そのため、カメラ１００Ａ間の距離が大きく、かつ、撮影時刻の差が小さい画像２０２が選択されることにより、三次元位置・同期ずれ推定部１０７による三次元位置の推定精度が高くなる。【００９４】
（３）  画像選択部１０６は、カメラ１００Ａの位置・姿勢と、共通視野グラフ２５０と、前の処理周期における三次元位置・同期ずれ推定部１０７の推定結果と、から空間評価値を計算する（図１１、ステップＳ６４４）。そのため、前の処理周期における計測対象の三次元位置を計測するのに適した画像２０２が選択されることにより、三次元位置・同期ずれ推定部１０７による三次元位置の推定精度が高くなる。【００９５】
（４）  画像選択部１０６は、カメラ１００Ａの内部・外部パラメータから、カメラ１００Ａ間の共通視野の関係を表わす共通視野グラフ２５０を作成し、共通視野グラフ２５０に基づいて三次元位置・同期ずれ推定部１０７が推定に用いる画像２０２を、画像保持部１０５から選択する（図８、図９、ステップＳ５００〜ステップＳ５４０、図１１、ステップＳ６４１、ステップＳ６４２、ステップＳ６４４）。そのため、共通視野が存在するカメラ１００Ａにより撮影された画像２０２の組み合わせのみを伝送・処理することで、伝送・処理される画像２０２の枚数が少なくなり、ネットワーク・サーバの負荷が軽減される。【００９６】
（５）  画像選択部１０６は、前の処理周期までにおける三次元位置・同期ずれ推定部１０７における特徴点の対応付け結果から、共通視野グラフ２５０を更新する（図１０、ステップＳ６００）。そのため、特徴点の対応が得られるカメラ１００Ａにより撮影された画像２０２の組み合わせのみを伝送・処理することで、伝送・処理される画像２０２の枚数が少なくなり、ネットワーク・サーバの負荷が軽減される。【００９７】
（６）  画像選択部１０６は、現在、動物体１５０が検出されているかどうかを判定し、動物体が検出されていない場合には、動物体が検出されている場合より多くの画像を選択対象画像として抽出する（図１０、ステップＳ６１０〜ステップＳ６３０）。そのため、動物体１５０が検出されていない時間を利用して、多くの画像を入力として三次元位置・同期ずれ推定部１０７の処理を実行することにより、高精度に同期ずれを求め、同期ずれ保持部１０８を更新することができる。これにより、次に動物体が検出された際には、高精度な同期ずれに基づき画像を選択することにより、三次元位置・同期ずれ推定部１０７による三次元位置の推定精度が高くなる。【００９８】
（７）  三次元計測装置１００は、画像取得部１０２とローカル撮影時刻取得部１０３と、動物体検出部１０４と、画像保持部１０５と、を各カメラ１００Ａ内に設け、画像選択部１０６と、三次元位置・同期ずれ推定部１０７と、同期ずれ保持部１０８と、出力部１０９と、を各カメラ１００Ａとネットワークを介して接続されたＰＣやサーバに設けても良い。これにより、画像選択部１０５により選択された画像２０２のみを、ネットワークを通して各カメラ１００Ａからサーバに伝送すれば良いため、伝送される画像２０２の枚数が少なくなり、ネットワークの負荷を軽減できる。【００９９】
（８）  三次元位置・同期ずれ推定部１０７は、複数のカメラ１００Ａによって撮影された複数の画像２０２とローカル撮影時刻から、カメラ幾何と計測対象の運動モデルに基づいた、特徴点の検出位置に対する再投影誤差と、特徴点の検出位置から計算されるオプティカルフローに対する再投影誤差と、からなる目的関数を最小化することで、計測対象の三次元位置と、運動モデルのパラメータと、カメラ１００Ａ間の同期ずれを推定する（図５、図６、図７）。そのため、カメラ１００Ａ間の同期ずれと計測対象の運動モデルが考慮されることにより、カメラ１００Ａ間に同期ずれが存在する場合においても、高精度に計測対象の三次元位置を推定することができる。【０１００】
（９）  出力部１０９はカメラ１００Ａの位置・姿勢と、画像選択部１０６により選択された画像と、三次元位置・同期ずれ推定部１０７が推定した計測対象の三次元位置と運動モデルのパラメータを、二次元もしくは三次元の地図に表示するようにした（図１２）。そのため、三次元計測装置１００の利用者は容易に計測結果を確認することができる。
（変形例１）
上述の実施例１では、画像選択部１０６は、前の処理周期において三次元位置・同期ずれ推定部１０７により推定されたグループ内の特徴点の三次元位置の平均ｐgWを用いて、空間評価値Ｖsを算出する（図１１、ステップＳ６４４）。しかし、空間評価値Ｖsの算出方法はこれに限定されない。【０１０１】
変形例１の画像選択部１０６では、前の処理周期において三次元位置・同期ずれ推定部１０７により推定されたグループの運動モデルのパラメータを用いて空間評価値Ｖsを算出する。たとえば、運動モデルのパラメータから計算されるグループの移動方向を表わす三次元ベクトルと、２つのカメラ１００Ａの組み合わせの一方のカメラ１００Ａの位置からもう一方のカメラ１００Ａの位置への三次元ベクトルと、のなす角を空間評価値Ｖｓの算出に用いても良い。【０１０２】
この変形例１によれば、画像選択部１０６は、前の処理周期における計測対象の運動モデルのパラメータにより運動している物体を計測するのに適した画像２０２を選択する。そのため、三次元位置・同期ずれ推定部１０７による三次元位置の推定精度が高くなるという作用効果が得られる。
（変形例２）
上述の実施例１では、画像選択部１０６は、前の処理周期において三次元位置・同期ずれ推定部１０７により推定されたグループ内の特徴点の三次元位置の平均ｐgWを用いて、空間評価値Ｖsを算出する（図１１、ステップＳ６４４）。しかし、空間評価値Ｖsの算出方法はこれに限定されない。【０１０３】
変形例２の画像選択部１０６では、共通視野グラフ２５０の連結成分毎に、すべての処理周期において三次元位置・同期ずれ推定部１０７により推定された特徴点の三次元位置２０１の平均を、ｐgWの代わりに用いて空間評価値Ｖsを算出する。【０１０４】
この変形例２によれば、画像選択部１０６は、カメラ１００Ａが設置されている環境において、計測対象が存在する可能性が高い三次元位置を計測するのに適した画像２０２を選択する。そのため、三次元位置・同期ずれ推定部１０７による三次元位置の推定精度が高くなるという作用効果が得られる。
（変形例３）
上述の実施例１では、画像選択部１０６は、選択候補画像のグローバル撮影時刻から、選択候補画像に対する、時間評価値Ｖtを式１５により算出する（図１１、ステップＳ６４５）。しかし、時間評価値Ｖtの算出方法はこれに限定されない。【０１０５】
変形例３の画像選択部１０６では、選択候補画像のグローバル撮影時刻から、選択候補画像に対する、時間評価値Ｖtを式１７により算出する。【０１０６】
【数１７】
0006734940.tif 000018
【０１０７】
この変形例３によれば、画像選択部１０６は、撮影時刻の差が大きい画像２０２を選択する。そのため、様々な撮影時刻の画像２０２が選択されることにより、三次元位置・同期ずれ推定部１０７による計測対象の運動モデルのパラメータの推定精度が高くなるという作用効果が得られる。
（変形例４）
上述の実施例１では、三次元計測装置１００は、各カメラ１００Ａから画像取得部１０２によって取得された各画像に対して処理を実施した。しかし、三次元計測装置１００の処理はこれに限定されない。【０１０８】
変形例４では、三次元計測装置１００は、各カメラ１００Ａを、部分画像を撮影する部分カメラとみなし、各部分カメラによって取得された各部分画像を、１つの画像２０２とみなして処理する。たとえば、各画像２０２をｘ軸方向、ｙ軸方向ともに半分に分割し、４つの部分画像とする。動物体検出部１０４は各部分画像に動物体が含まれているかどうかを判定する。画像保持部１０５は動物体が含まれていると判定された部分画像を保持する。画像選択部１０６は、画像保持部１０５に保持されている部分画像を選択する。ここで、共通視野グラフ２５０は、各部分カメラをノード２５１として作成する。三次元位置・同期ずれ推定部１０７は、画像選択部１０６により選択された部分画像を入力として特徴点の三次元位置とカメラの同期ずれを推定する。ここで、カメラ１００Ａ（ｋ）を分割した各部分カメラは、１つの同期ずれδkを共有して用いる。【０１０９】
この変形例４によれば、画像選択部１０６は、部分カメラ間の共通視野の関係を表わす共通視野グラフ２５０を作成し、共通視野グラフ２５０に基づいて三次元位置・同期ずれ推定部１０７が推定に用いる部分画像を、画像保持部１０５から選択する。そのため、共通視野が存在する部分カメラにより撮影された部分画像の組み合わせのみを伝送・処理することで、伝送・処理される画像のサイズが小さくなり、ネットワーク・サーバの負荷が軽減されるという作用効果が得られる。
【実施例２】
【０１１０】
以下、図１３〜１５を参照して、実施例２の三次元計測装置を説明する。以下の説明では、実施例１と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、実施例１と同じである。本実施例では、カメラ１００Ａに、位置・姿勢が変化するカメラが含まれている場合を対象とする。以下では、位置・姿勢が変化するカメラを動カメラ４００Ａとする。動カメラ４００Ａは、たとえば、移動ロボットに搭載されたカメラやパン・チルト・ズームカメラである。
（ブロック構成）
図１３は三次元計測装置４００のブロック構成を示す図である。本実施例の三次元計測装置４００は、実施例１の三次元計測装置１００の構成に、動カメラ４００Ａを追加したものであり、その動カメラ４００Ａは他のカメラ１００Ａの構成に加えて、動カメラ処理部４１０をさらに備える。動カメラ処理部４１０は、位置・姿勢が変化する動カメラ４００Ａが撮影した画像を処理するものであり、その詳細を次に説明する。
（動カメラ処理部４１０の動作）
次に、図１４、図１５を用いて、動カメラ処理部４１０での処理の詳細を説明する。図１４は、動カメラ処理部４１０が実行する処理を示すフローチャートであり、ステップＳ７００は、動カメラ４００Ａの位置・姿勢を推定するステップ、ステップＳ７１０は、動カメラ４００Ａで撮影された画像に動物体が含まれているか判定するステップである。ステップＳ７２０では、ステップＳ７１０で動物体が含まれていると判定された場合にはステップＳ７３０に進み、動物体が含まれていないと判定された場合には、動カメラ処理部４１０の処理を終了する。ステップＳ７３０では、動カメラ４００Ａで撮影された画像に対する共通視野グラフを更新する。以下、各ステップを詳細に説明する。【０１１１】
まず、ステップＳ７００では、画像取得部１０２により取得された画像から、画像が撮影された時刻における動カメラ４００Ａの位置・姿勢を推定する。動カメラ４００Ａの位置・姿勢の推定には、Structure from Motion法やVisual Simultaneous Localization and Mapping（ｖＳＬＡＭ）法などの公知の手法を用いることができる。たとえば、ｖＳＬＡＭ法としては、G. Klein and D. Murray, Parallel Tracking and Mapping for Small AR Workspaces, Proc. IEEE and ACM Int. Symp. on Mixed and Augmented Reality, pp.225-234, 2007.を用いることができる。また、動カメラ４００Ａに、位置・姿勢を計測するためのセンサを追加しても良い。たとえば、センサとしてＩＭＵ（Inertial Measurement Unit）を用いる場合には、ＩＭＵにより計測された加速度と角速度を積分することで、位置・姿勢を推定することができる。【０１１２】
次のステップＳ７１０では、画像取得部１０２によって取得された画像に動物体が含まれているか判定する。判定には、たとえば、時間的に連続する画像間のオプティカルフローから、動カメラ４００Ａの動きによるオプティカルフローを取り除いた結果、残ったオプティカルフローを動物体と判定する公知の技術を用いることができる。また、ｖＳＬＡＭ法で用いる時間的に連続する画像間の特徴点対応に、外れ値が多く含まれている場合に、動物体が存在すると判定しても良い。【０１１３】
ステップＳ７３０では、動カメラ４００Ａで撮影された画像に対する共通視野グラフを更新する。図１５は、三次元計測装置４００における共通視野グラフ４５０の一例を示す図である。この共通視野グラフ４５０は、固定カメラに対応するノード２５１に加え、動カメラ４００Ａが撮影した画像毎に用意されたノード４５１を備える。画像毎に別のノード４５１として扱うのは、動カメラ４００Ａで撮影された画像は、画像毎に位置・姿勢が異なる可能性が高いからである。【０１１４】
このステップＳ７３０では、まず、画像取得部１０２により取得された画像に対応するノード４５１を共通視野グラフ４５０に追加する。次に、追加したノード４５１から、共通視野グラフ４５０に既に存在するノード２５１、４５１に対して、共通視野が存在する場合にはエッジ２５２を追加する。具体的には、組み合わせの一方を追加したノード４５１として、三次元計測装置１００における共通視野グラフ２５０を作成するためのステップＳ５１０からステップＳ５４０の処理を実行する。【０１１５】
ここで、ステップＳ７３０の処理の計算コストは、共通視野グラフ４５０に存在するノード２５１、４５１の数に比例する。そこで、処理時間を制限するために、共通視野グラフ４５０内のノード２５１、４５１の数を制限する。具体的には、ローカル撮影時刻が、各カメラ１００Ａ、動カメラ４００Ａの最も新しいローカル撮影時刻から一定以上前の画像に対応するノード４５１と、ノード４５１につながるエッジ２５２を共通視野グラフ４５０から削除する。
（作用効果）
上述した実施例２によれば、三次元計測装置４００では、動カメラ処理部４１０が、画像取得部１０２によって取得された動カメラ４００Ａの画像から、画像撮影時の位置・姿勢の推定、動物体の検出、共通視野グラフの更新をする。そのため、カメラ１００Ａとして、位置・姿勢が変化する動カメラ４００Ａを用いる場合でも、ネットワーク・サーバの負荷を軽減しながら、高精度に三次元位置を計測できるという作用効果が得られる。【０１１６】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【符号の説明】
【０１１７】
１００…三次元計測装置、１００Ａ…カメラ、１００Ｂ…演算装置、１０１…撮影部、１０２…画像取得部、１０３…ローカル撮影時刻取得部、１０４…動物体検出部、１０５…画像保持部、１０６…画像選択部、１０７…三次元位置・同期ずれ推定部、１０８…同期ずれ保持部、１０９…出力部、１５０…動物体、２００…特徴点の検出位置に対する再投影誤差、２１０…オプティカルフローに対する再投影誤差、２５０、４５０…共通視野グラフ、２５１、４５１…ノード、２５２…エッジ、４００…三次元計測装置、４００Ａ…動カメラ、４１０…動カメラ処理部
【図１】
0006734940.tif 000019
【図２】
0006734940.tif 000020
【図３】
0006734940.tif 000021
【図４】
0006734940.tif 000022
【図５】
0006734940.tif 000023
【図６】
0006734940.tif 000024
【図７】
0006734940.tif 000025
【図８】
0006734940.tif 000026
【図９】
0006734940.tif 000027
【図１０】
0006734940.tif 000028
【図１１】
0006734940.tif 000029
【図１２】
0006734940.tif 000030
【図１３】
0006734940.tif 000031
【図１４】
0006734940.tif 000032
【図１５】
0006734940.tif 000033