(57)【特許請求の範囲】
【請求項１】
複数のカメラに係る位置及び姿勢の情報を含むカメラ情報を記憶する第１の記憶手段と、
前記複数のカメラからそれぞれカメラ画像を取得する画像取得手段と、
前記画像取得手段によって取得されたカメラ画像から物体を検出する検出手段と、
前記複数のカメラの中の少なくとも２つのカメラで視野が重複する位置に前記検出手段によって検出された物体が存在するか否かを判定する第１の判定手段と、
前記第１の判定手段により前記検出された物体が前記視野が重複する領域に存在すると判定された場合に、前記第１の記憶手段に記憶された前記少なくとも２つのカメラに係るカメラ情報に基づいて前記物体の３次元位置を推定する第１の位置推定手段と、
前記第１の位置推定手段によって３次元位置が推定された物体の物体情報を記憶する第２の記憶手段と、
前記第２の記憶手段に記憶された情報に係る物体と、前記検出手段によって検出された物体とが同一であるか否かを判定する第２の判定手段と、
前記第１の判定手段により前記検出された物体が前記視野が重複する領域に存在しないと判定され、かつ前記第２の判定手段により同一であると判定された場合に、前記第１の記憶手段に記憶された前記物体が検出されたカメラに係るカメラ情報と、前記第２の記憶手段に記憶された物体情報とに基づいて前記物体の３次元位置を推定する第２の位置推定手段とを備えることを特徴とする位置検出装置。
【請求項２】
前記第２の記憶手段は、前記物体情報として前記物体の高さの情報を記憶することを特徴とする請求項１に記載の位置検出装置。
【請求項３】
前記検出手段によって検出された物体を追尾して、同一の物体であることを示す追尾ラベルを前記物体に付与する追尾手段をさらに備え、
前記第２の判定手段は、前記第２の記憶手段に記憶された情報に係る物体に付与された追尾ラベルに基づいて前記検出手段によって検出された物体と同一であるか否かを判定することを特徴とする請求項１に記載の位置検出装置。
【請求項４】
前記検出手段によって検出された物体から特徴を抽出する特徴抽出手段をさらに備え、
前記第２の判定手段は、前記第２の記憶手段に記憶された情報に係る物体から抽出された特徴に基づいて、前記検出手段によって検出された物体と同一であるか否かを判定することを特徴とする請求項１に記載の位置検出装置。
【請求項５】
複数のカメラに係る位置及び姿勢の情報を含むカメラ情報を記憶する第１の記憶手段を備えた位置検出装置の位置検出方法であって、
前記複数のカメラからそれぞれカメラ画像を取得する画像取得工程と、
前記画像取得工程において取得されたカメラ画像から物体を検出する検出工程と、
前記複数のカメラの中の少なくとも２つのカメラで視野が重複する位置に前記検出工程において検出された物体が存在するか否かを判定する第１の判定工程と、
前記第１の判定工程において前記検出された物体が前記視野が重複する領域に存在すると判定された場合に、前記第１の記憶手段に記憶された前記少なくとも２つのカメラに係るカメラ情報に基づいて前記物体の３次元位置を推定する第１の位置推定工程と、
前記第１の位置推定工程において３次元位置が推定された物体の物体情報を第２の記憶手段に記憶する記憶工程と、
前記第２の記憶手段に記憶された情報に係る物体と、前記検出工程によって検出された物体とが同一であるか否かを判定する第２の判定工程と、
前記第１の判定工程において前記検出された物体が前記視野が重複する領域に存在しないと判定され、かつ前記第２の判定工程により同一であると判定された場合に、前記第１の記憶手段に記憶された前記物体が検出されたカメラに係るカメラ情報と、前記第２の記憶手段に記憶された物体情報または前記物体に係る所定の情報とに基づいて前記物体の３次元位置を推定する第２の位置推定工程とを備えることを特徴とする位置検出方法。
【請求項６】
複数のカメラに係る位置及び姿勢の情報を含むカメラ情報を記憶する第１の記憶手段を備えた位置検出装置を制御するためのプログラムであって、
前記複数のカメラからそれぞれカメラ画像を取得する画像取得工程と、
前記画像取得工程において取得されたカメラ画像から物体を検出する検出工程と、
前記複数のカメラの中の少なくとも２つのカメラで視野が重複する位置に前記検出工程において検出された物体が存在するか否かを判定する第１の判定工程と、
前記第１の判定工程において前記検出された物体が前記視野が重複する領域に存在すると判定された場合に、前記第１の記憶手段に記憶された前記少なくとも２つのカメラに係るカメラ情報に基づいて前記物体の３次元位置を推定する第１の位置推定工程と、
前記第１の位置推定工程において３次元位置が推定された物体の物体情報を第２の記憶手段に記憶する記憶工程と、
前記第２の記憶手段に記憶された情報に係る物体と、前記検出工程によって検出された物体とが同一であるか否かを判定する第２の判定工程と、
前記第１の判定工程において前記検出された物体が前記視野が重複する領域に存在しないと判定され、かつ前記第２の判定工程により同一であると判定された場合に、前記第１の記憶手段に記憶された前記物体が検出されたカメラに係るカメラ情報と、前記第２の記憶手段に記憶された物体情報または前記物体に係る所定の情報とに基づいて前記物体の３次元位置を推定する第２の位置推定工程とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、複数のカメラを用いて物体の３次元的な位置を取得するために用いて好適な位置検出装置、位置検出方法及びプログラムに関する。
【背景技術】
【０００２】
従来、監視カメラシステムにおいて、複数のカメラを監視領域に配置し、複数のカメラで同一の物体を同時に撮像することにより、物体の３次元的な位置（以下、３次元位置）を推定する手法が知られている。例えば、特許文献１及び２には、カメラの位置及び姿勢と、カメラ画像上の物体の位置とから、ステレオ視の原理で物体の３次元位置を推定する方法が開示されている。また、特許文献３には、事前に定めた人物の平均的な身長とカメラキャリブレーションとにより得られるカメラパラメータを用いて人の足元の位置を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−５１１４２７号公報
【特許文献２】特開２００８−２２８５８２号公報
【特許文献３】特開２０１４−２３８６７４号公報
【非特許文献】
【０００４】
【非特許文献１】Ｚｈｅｎｇｙｏｕ  Ｚｈａｎｇ「Ａ  Ｆｌｅｘｉｂｌｅ  Ｎｅｗ  Ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ」，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ２２（１１）：１３３０−１３３４，  ２０００
【非特許文献２】Ｐｉｅｒｒｅ  Ｍｏｕｌｏｎ，  Ｐａｓｃａｌ  Ｍｏｎａｓｓｅ，  ａｎｄ  Ｒｅｎａｕｄ  Ｍａｒｌｅｔ「Ａｄａｐｔｉｖｅ ｓｔｒｕｃｔｕｒｅ ｆｒｏｍ ｍｏｔｉｏｎ ｗｉｔｈ ａ ｃｏｎｔｒａｒｉｏ ｍｏｄｅｌ ｅｓｔｉｍａｔｉｏｎ」ＡＣＣＶ２０１２
【非特許文献３】Ｍ．Ｄ．Ｂｒｅｉｔｅｎｓｔｅｉｎ  ｅｔ  ａｌ．，「Ｒｏｂｕｓｔ  ｔｒａｃｋｉｎｇ−ｂｙ−ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  ｄｅｔｅｃｔｏｒ  ｃｏｎｆｉｄｅｎｃｅ  ｐａｒｔｉｃｌｅ  ｆｉｌｔｅｒ」，ＩＣＣＶ２００９
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１及び２に記載の方法は、複数のカメラによりステレオ視の原理で物体の３次元位置を推定するが、１台のカメラのみで物体が観測されている状況ではステレオ視が困難であり、物体の位置を推定する精度が低下するという問題がある。
【０００６】
ここで、１台のカメラのみで物体が観測される状況は、例えば監視領域へ配置するカメラの台数が少ない場合など、複数のカメラの視野が重ならない監視領域が存在する場合に発生する。また、複数のカメラの視野が重なっている場合においても、物体の検出漏れが生じた場合や他の物体によって物体が遮蔽された場合など、１台のカメラからしか物体が観測できない場合がある。このため、１台のカメラのみで物体が観測される状況を防ぐために、監視領域に多数のカメラを配置する必要がある。
【０００７】
また、特許文献３に記載の方法では、事前に定めた人物の平均的な身長を用いて足元の位置を推定するため、平均的な体格から離れた人物または子供を監視する場合には、物体の位置を推定する精度が大きく低下するという問題がある。また、平均的な身長の人物であっても、カメラと人物の頭部とを通る直線が水平に近いほど、位置を推定した場合の誤差は増大してしまう。
【０００８】
本発明は前述の問題点に鑑み、物体が映っているカメラの台数によらず、物体の３次元的な位置を精度良く取得できるようにすることを目的としている。
【課題を解決するための手段】
【０００９】
本発明に係る位置検出装置は、複数のカメラに係る位置及び姿勢の情報を含むカメラ情報を記憶する第１の記憶手段と、前記複数のカメラからそれぞれカメラ画像を取得する画像取得手段と、前記画像取得手段によって取得されたカメラ画像から物体を検出する検出手段と、前記複数のカメラの中の少なくとも２つのカメラで視野が重複する位置に前記検出手段によって検出された物体が存在するか否かを判定する第１の判定手段と、前記第１の判定手段により前記検出された物体が前記視野が重複する領域に存在すると判定された場合に、前記第１の記憶手段に記憶された前記少なくとも２つのカメラに係るカメラ情報に基づいて前記物体の３次元位置を推定する第１の位置推定手段と、前記第１の位置推定手段によって３次元位置が推定された物体の物体情報を記憶する第２の記憶手段と、前記第２の記憶手段に記憶された情報に係る物体と、前記検出手段によって検出された物体とが同一であるか否かを判定する第２の判定手段と、前記第１の判定手段により前記検出された物体が前記視野が重複する領域に存在しないと判定され、かつ前記第２の判定手段により同一であると判定された場合に、前記第１の記憶手段に記憶された前記物体が検出されたカメラに係るカメラ情報と、前記第２の記憶手段に記憶された物体情報とに基づいて前記物体の３次元位置を推定する第２の位置推定手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、物体が映っているカメラの台数によらず、物体の３次元的な位置を精度良く取得することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る位置検出装置の機能構成例を示すブロック図である。
【図２】実施形態に係る位置検出装置のハードウェア構成例を示すブロック図である。
【図３】第１の実施形態における４つのカメラの位置関係を説明するための図である。
【図４】第１の実施形態において、物体の３次元位置を取得する処理手順の一例を示すフローチャートである。
【図５】キャリブレーションの概要を説明するための図である。
【図６】視野重複画像領域内の物体の３次元位置を推定する詳細な処理手順の一例を示すフローチャートである。
【図７】第１の実施形態において、視野重複画像領域外の物体の３次元位置を推定する詳細な処理手順の一例を示すフローチャートである。
【図８】カメラ画像間において人物を対応付ける方法を説明するための図である。
【図９】物体の３次元位置を推定する方法を説明するための図である。
【図１０】視野重複画像領域を取得する方法を説明するための図である。
【図１１】物体の高さ座標から物体の３次元位置を推定する方法を説明するための図である。
【図１２】処理結果の表示画面の一例を示す図である。
【図１３】第２の実施形態に係る位置検出装置の機能構成例を示すブロック図である。
【図１４】第２の実施形態における４つのカメラの位置関係を説明するための図である。
【図１５】第２の実施形態において、物体の３次元位置を取得する処理手順の一例を示すフローチャートである。
【図１６】第２の実施形態において、視野重複画像領域外の物体の３次元位置を推定する詳細な処理手順の一例を示すフローチャートである。
【図１７】第３の実施形態において、物体の３次元位置を取得する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について説明する。以下では、検出対象物体として人物を例に説明するが、他の検出対象の物体でもよく、例えば、車両、動物などでもよい。
【００１３】
（第１の実施形態）
図２は、本実施形態に係る位置検出装置１００のハードウェア構成例を示すブロック図である。
図２において、第１のカメラ２０１〜第ｎのカメラ２０ｎは、それぞれＣＣＤ、ＣＭＯＳ等で構成され、被写体像を光から電気信号に変換するための撮像素子を備えたカメラであり、２台以上存在する。信号処理回路２１２は、第１のカメラ２０１〜第ｎのカメラ２０ｎのそれぞれから得られた被写体像に関する時系列信号を処理し、デジタル信号に変換する回路である。
【００１４】
ＣＰＵ２１３は、ＲＯＭ２１４に格納されている制御プログラムを実行することにより、位置検出装置１００全体の制御を行う。ＲＯＭ２１４は、ＣＰＵ２１３が実行する制御プログラムや各種パラメータデータ等を格納する。制御プログラムは、ＣＰＵ２１３で実行されることにより、後述するフローチャートに示す各処理を実行するための各種手段として、位置検出装置１００を機能させる。ＲＡＭ２１５は、画像データや各種情報などを記憶する。また、ＲＡＭ２１５は、ＣＰＵ２１３のワークエリア及びデータの一時待避領域として機能する。ディスプレイ２１６は、画像及び各種情報を表示するための表示部である。
【００１５】
なお、本実施形態では、後述するフローチャートの各ステップに対応する処理を、ＣＰＵ２１３を用いてソフトウェアで実現することとするが、その処理の一部または全部を電子回路などのハードウェアで実現するようにしても構わない。また、本実施形態に係る位置検出装置１００は、第１のカメラ２０１〜第ｎのカメラ２０ｎ及び信号処理回路２１２を省いて汎用ＰＣを用いて実現してもよいし、専用装置として実現するようにしても構わない。
【００１６】
図１は、本実施形態に係る位置検出装置１００の機能構成例を示すブロック図である。
図１において、位置検出装置１００は、画像取得部１０１、物体検出部１０２、物体追尾部１０３、物体属性取得部１０４、カメラ情報記憶部１０５、及び位置推定方法マップ記憶部１０６を有する。さらに、位置検出装置１００は、物体記憶部１０７、物体位置推定部１０８、表示制御部１１２、カメラ情報取得部１１３、及び位置推定方法マップ取得部１１４を有する。
【００１７】
カメラ情報取得部１１３は、カメラキャリブレーションを行うことにより、第１のカメラ２０１〜第ｎのカメラ２０ｎのそれぞれの内部パラメータ、位置、及び姿勢に関する設定情報（カメラ情報）を取得し、カメラ情報記憶部１０５に記憶する。
画像取得部１０１は、第１のカメラ２０１〜第ｎのカメラ２０ｎのそれぞれから画像データ（以下、カメラ画像）を取得する。
【００１８】
物体検出部１０２は、画像取得部１０１で取得されたカメラ画像の中から物体を検出する。本実施形態では、検出する物体は人物とする。
物体追尾部１０３は、物体検出部１０２により検出されたカメラ画像中の物体を追尾する。また、物体追尾部１０３は、追尾する物体に対して、同一の物体であることを識別するための追尾ラベルを付与する。本実施形態では、物体検出部１０２により検出された人物の頭部のカメラ画像上の位置に応じて、人物の位置を推定する方法を切り替える。
位置推定方法マップ記憶部１０６には、人物の位置を推定する方法を切り替える条件が記憶されており、詳細は後述する。
【００１９】
物体属性取得部１０４は、カメラ情報記憶部１０５に記憶されているカメラ情報と物体検出部１０２による検出結果とに基づいて物体の高さに関する情報を取得する。ここで、物体の高さとは、床面を基準とした物体の代表点の高さ方向の位置座標である。なお、代表点は必ずしも物体の最も高い位置である必要はなく、本実施形態では、代表点を人物の頭部の中心とする。また、本実施形態では、物体属性取得部１０４は物体の高さに関する情報を取得するが、物体の大きさに関連する情報を取得してもよい。
【００２０】
また、物体属性取得部１０４は第１の位置推定部１１０を有している。第１の位置推定部１１０は、カメラ情報記憶部１０５に記憶されたカメラ情報と第１のカメラ２０１〜第ｎのカメラ２０ｎにおける物体検出部１０２の検出結果とから物体の３次元的な位置（以下、３次元位置）を推定する。
【００２１】
物体記憶部１０７は、物体属性取得部１０４により取得された物体の高さに関する情報を含む物体情報を記憶する。
物体位置推定部１０８は、カメラ情報記憶部１０５に記憶されたカメラ情報と、物体検出部１０２による検出結果と、物体追尾部１０３による追尾結果と、物体記憶部１０７に記憶された物体情報とから、物体の３次元位置を推定する。また、物体位置推定部１０８は、同一物体認識部１０９と第２の位置推定部１１１とを有している。
【００２２】
同一物体認識部１０９は、物体記憶部１０７に記憶された物体情報と物体検出部１０２により検出された物体とが同一であるか否かを判定する。第２の位置推定部１１１は、カメラ情報記憶部１０５に記憶されたカメラ情報と物体検出部１０２による検出結果と物体記憶部１０７に記憶された物体情報とから、物体の３次元位置を計算する。
表示制御部１１２は、物体の検出結果及び３次元位置をカメラ画像とともにディスプレイ２１６に表示する制御を行う。
【００２３】
図４は、本実施形態に係る動作を説明するためのフローチャートである。なお、本実施形態では、視野が重複して４台のカメラが設置されているものとする。本実施形態では、図３に示すように、第１のカメラ２０１〜第４のカメラ２０４が配置され、これらのカメラの視野３０１の一部が重なるように配置されている。なお、カメラの台数はこれに限らず、２台以上の任意の数でもよい。
【００２４】
まず、ステップＳ４０１において、カメラ情報取得部１１３は、カメラキャリブレーションを行うことにより、第１のカメラ２０１〜第４のカメラ２０４の内部パラメータ、位置、及び姿勢の情報を取得する。ここで、内部パラメータとは、カメラの焦点距離であり、カメラの位置及び姿勢とともに後述する物体位置の推定に利用される。
【００２５】
図５は、キャリブレーションの概要を説明するための図である。まず、図５（ａ）に示すように、キャリブレーションボード５０１を環境に設置し、非特許文献１に記載の手法により各カメラの内部パラメータを算出する。さらに、図５（ｂ）に示すように、環境に設置された多数のキャリブレーションボード５０１を複数のカメラで同時に観測することによって、カメラの位置及び姿勢を推定する。カメラ情報取得部１１３は、このような手順で得られたカメラ情報をカメラ情報記憶部１０５に記憶する。
【００２６】
本実施形態では、環境に設置された多数のキャリブレーションボードを用いてカメラの位置及び姿勢を推定した。一方、非特許文献２に記載の手法を用いてカメラの位置及び姿勢の情報を取得してもよい。具体的には、各カメラのカメラ画像中のコーナーやＳＩＦＴ特徴等の特徴点を抽出し、これらの特徴点群を画像間で対応付けた後、カメラの位置、姿勢、及び点群の位置を求めることによってカメラの位置及び姿勢の情報を取得してもよい。また、カメラの内部パラメータと、カメラの位置及び姿勢とを同時に算出してもよい。
【００２７】
次に、ステップＳ４０２において、画像取得部１０１は、第１のカメラ２０１〜第４のカメラ２０４のそれぞれからフレーム単位のカメラ画像を取得する。本実施形態では、カメラ数が４つであるため、４枚のカメラ画像が取得される。
【００２８】
次に、ステップＳ４０３において、物体検出部１０２は、ステップＳ４０２で取得されたカメラ画像から人物を検出する。また、物体追尾部１０３は、過去に取得されたカメラ画像における人物の検出結果に基づいて、その人物の追尾を行う。この処理では、まず、物体検出部１０２は、カメラ画像から人物の頭部領域を抽出する。そして、この処理により、人物領域を示す矩形の代表点座標（ｘ，ｙ）と、矩形の高さｈ及び幅ｗとを得る。さらに、物体追尾部１０３は、現在の人物領域と過去の同一人物の人物領域とを対応付けることよって、複数時刻にわたって同一物体を追尾する。この処理の結果、人物ごとに追尾ラベルｉを得る。ここで、追尾ラベルｉとは、それぞれの追尾される人物を識別するための符号である。物体を検出し、追尾する手法として例えば非特許文献３に記載の手法が挙げられる。
【００２９】
次に、ステップＳ４０４において、位置推定方法マップ取得部１１４は、位置推定方法マップを取得し、位置推定方法マップ記憶部１０６に記憶する。位置推定方法マップとは、各カメラから得られたカメラ画像中の人物頭部の位置に応じて人物の３次元位置を推定する方法を切り替えるために用いる多値画像である。位置推定方法マップ取得部１１４は、カメラの視野の重なりのある画像領域（以下、視野重複画像領域）の情報を取得することにより位置推定方法マップを取得する。
【００３０】
図１０は、視野重複画像領域を取得する方法を説明するための図である。まず、図１０（ａ）に示すように、複数のカメラの視野の視体積１００１が交差する立体と、人物の平均的な高さにある平面１００２とが交差する平面領域を視野重複監視領域１００３とする。本実施形態では、人物の平均的な高さは事前に定めた値を用いるものとするが、システムの稼働中に統計的に人物の平均的な高さを求めてもよい。
【００３１】
次に、図１０（ｂ）に示すように、各カメラで撮影されたカメラ画像において、視野重複監視領域１００３に該当する画像領域を求め、その領域を視野重複画像領域１００４とする。そして、図１０（ｃ）に示すように、視野重複画像領域１００４に該当する部分領域に位置推定モードＡを割り当て、視野重複画像領域１００４に該当しない部分領域に位置推定モードＢを割り当てる。そして、このような割り当てをすべてのカメラ画像に対して行う。
【００３２】
本実施形態では、位置推定方法マップを多値画像としたが、多角形や曲線等の閉領域の組み合わせにより位置推定方法マップを表現してもよいし、他の表現方法を用いてもよい。また、画像の部分領域ごとではなく、カメラごとに位置推定方法が異なるようにしてもよく、位置推定方法は３つ以上であってもよい。位置推定方法マップ及び視野重複画像領域を求める方法は別の方法でもよい。例えば、位置推定方法マップあるいは視野重複画像領域をユーザが指定できるようにしてもよい。
【００３３】
以上のようにステップＳ４０４では、位置推定方法マップを取得し、後述するように位置推定モードに応じて３次元位置を推定する方法を切り替えるようにする。位置推定方法マップを利用して３次元位置の推定方法を切り替えることにより、後述のステップＳ４０６及びＳ４０９のそれぞれの位置推定方法において、処理対象の人物を容易に絞り込むことができ、計算コストを軽減することができる。
【００３４】
次に、ステップＳ４０５において、物体属性取得部１０４は、位置推定方法マップの位置推定モードＡの領域、すなわち視野重複画像領域に人物が存在するか否かを判定する。この判定は、人物の代表点座標（ｘ，ｙ）が視野重複画像領域に属するか否かを判定することにより行われる。この判定の結果、視野重複画像領域に人物が存在する場合はステップＳ４０６に進み、視野重複画像領域に人物が存在しない場合はステップＳ４０８に進む。
【００３５】
ステップＳ４０６においては、第１の位置推定部１１０は、複数のカメラを用いた人物の位置推定を行う。この処理では、位置推定モードＡの領域に存在する人物を対象に処理を行う。
【００３６】
図６は、ステップＳ４０６において第１の位置推定部１１０が行う詳細な処理手順の一例を示すフローチャートである。
まず、ステップＳ６０１において、ステップＳ４０３で検出された人物を２つのカメラ画像間で対応付ける。具体的には、あるカメラ画像で検出された人物が、他のカメラ画像のどの人物に対応するかを探索する。
【００３７】
カメラ画像間における人物の対応付けは、人物領域の代表点をエピポーラ幾何によって対応付けることにより行われる。例えば、図８に示す第１のカメラ画像の人物Ａの代表点は、第２のカメラ画像ではエピポーラ線８０１と呼ばれる直線で表される。第１のカメラ画像と第２のカメラ画像との間の位置関係の情報を含む基礎行列Ｆは、カメラ情報記憶部１０５に記憶されているカメラ情報の中のカメラの位置、姿勢、及び内部パラメータから計算できる。さらに、第１のカメラ画像の人物Ａの２次元座標を表すベクトルをｘとすると、第２のカメラ画像上のエピポーラ線ｌは以下の式（１）で表される。
ｌ＝Ｆｘ      ・・・式（１）
【００３８】
第２のカメラ画像の人物の代表点とエピポーラ線８０１との間の距離が一定値以下の場合は、この第２のカメラ画像の人物と第１のカメラ画像の人物とで対応することになる。例えば、図８において、第１のカメラ画像の人物Ａは、第２のカメラ画像上では人物Ｂに対応する。次に、２つのカメラ画像間で対応付く人物の組を生成する。例えば、図８において、人物Ａが人物Ｂに対応し、人物Ｃが人物Ｄに対応する場合には、組｛Ａ，Ｂ｝と組｛Ｃ，Ｄ｝との情報を生成する。このように２つのカメラのすべての組合せでステップＳ６０１の処理を行う。
【００３９】
次に、ステップＳ６０２において、ステップＳ６０１で対応付けた人物の組からその人物の３次元位置を推定する。具体的には、まず、図９に示すように、各カメラ画像に対し、カメラ中心９０１と人物領域の代表点９０２とを通る３次元空間中の直線を求める。この直線は、カメラの位置、姿勢、内部パラメータ及び代表点９０２の画像上の座標より求めることができる。次に、各カメラの直線の交点９０３を求め、この交点９０３の座標を人物の３次元位置とする。なお、直線の推定誤差により、実際にはこれらの直線が１点で交わらない場合がある。この場合には、各直線からの距離の和が最小になる点を交点の代わりに採用する。
【００４０】
次に、ステップＳ６０３において、ステップＳ６０２で推定された３次元位置から多カメラ間の物体対応を求める。ステップＳ６０２の段階では、２つのカメラ間でしか対応付けを行っていないため、同一の物体であるにもかかわらず複数の点として３次元位置が推定されている。そのため、ステップＳ６０３では、同一物体における複数の点（３次元位置）を１つにまとめる。なお、ステップＳ６０３の処理は、カメラが３台以上設置されている場合に行われる処理であり、カメラが２台しか設置されていない場合はこの処理は不要である。まず、ステップＳ６０２で推定した３次元位置同士の距離が互いに閾値以下であるグループを探索する。そして、これらのグループに属する２つのカメラ間で対応する物体を、多カメラ間で対応付く物体とする。さらに、そのグループに属する３次元位置の平均を求め、この平均をこのグループの代表の３次元位置とする。
【００４１】
図４の説明に戻り、次に、ステップＳ４０７において、物体属性取得部１０４は、人物の高さ座標を、対応する各カメラの追尾ラベルとともに物体記憶部１０７に物体情報として記憶する。ここで、人物の高さ座標は、ステップＳ４０６で得られた人物の３次元位置から得られる。
【００４２】
次に、ステップＳ４０８において、物体位置推定部１０８は、位置推定方法マップの位置推定モードＢの領域に人物が存在するか否かを判定する。この判定の結果、位置推定モードＢの領域に人物が存在する場合はステップＳ４０９に進み、位置推定モードＢの領域に人物が存在しない場合はステップＳ４１０に進む。
【００４３】
ステップＳ４０９においては、物体位置推定部１０８は、ステップＳ４０７で記憶された人物の高さ座標と位置推定モードＢの領域に存在する人物の情報とを用いて、位置推定モードＢの領域に存在する人物の３次元位置を推定する。
【００４４】
図７は、ステップＳ４０９において物体位置推定部１０８が行う詳細な処理手順の一例を示すフローチャートである。
まず、ステップＳ７０１において、同一物体認識部１０９は、位置推定モードＢの領域に存在するそれぞれの人物について、これらの人物の高さ座標を取得する。具体的には、まず、物体記憶部１０７に物体情報とともに記憶されている追尾ラベルと位置推定モードＢの領域に存在する人物の追尾ラベルとを比較する。そして、物体記憶部１０７に物体情報とともに記憶されている追尾ラベルの中に、位置推定モードＢの領域に存在する人物の追尾ラベルと同じ追尾ラベルが含まれている場合は、同一人物とみなす。そして、該当する追尾ラベルに係る物体情報からその人物の高さ座標を取得する。なお、追尾ラベルが同一で人物の高さ座標が複数存在する場合（位置推定モードＡの領域で複数回３次元位置が推定された場合）は、最初に算出された人物の高さ座標を取得する。一方、位置推定モードＢの領域に存在する人物の追尾ラベルと同一の追尾ラベルが物体記憶部１０７に記憶されていない場合は、その人物については高さ座標を取得しない。
【００４５】
このように図７のステップＳ７０１では、追尾ラベルを用いて人物の軌跡をたどることによって人物が同一であるか否かを判定する。このような方法で人物が同一であるか否かを判定することにより、監視領域に存在する人物の見た目が類似している場合など、見た目で判別が難しい人物でも同一か否かを判定することができる。そのため、人物が同一であるか否かの判定精度を向上させることができる。
【００４６】
次に、ステップＳ７０２において、第２の位置推定部１１１は、ステップＳ７０１で取得した高さ座標を用いて、位置推定モードＢの領域に存在する人物の３次元位置を推定する。この処理では、ステップＳ７０１で高さ座標が取得できた人物のみを処理対象とする。
【００４７】
図１１は、ステップＳ７０２で人物の３次元位置を推定する方法を説明するための図である。まず、カメラ中心１１０１とカメラ画像の平面１１０２上の人物頭部の位置１１０３とを通る３次元空間中の直線を求める。次に、人物頭部の高さ座標と同じ高さに、床面に平行な平面１１０４を仮定する。そして、平面１１０４と３次元空間中の直線の交点１１０５を求め、この交点１１０５を人物の３次元位置として推定する。
【００４８】
具体的には、以下のようにして人物の３次元位置を求める。まず、カメラ中心と画像上の人物頭部の位置とを通る光線ベクトルｒを以下の式（２）により計算する。
【００４９】
【数１】
0006700752.tif 000002
【００５０】
ここで、Ｒはカメラの回転行列を表し、カメラキャリブレーションによる既知の値である。また、ｕ、ｖはカメラ座標系における人物頭部の位置を表し、ｆはカメラ座標系のスケールで換算した焦点距離を表す。次に、光線ベクトルｒ、ある実数α、カメラ位置を表わすベクトルｃを用いて、人物頭部の３次元位置Ｘは以下の式（３）で表すことができる。
Ｘ＝αｒ＋ｃ      ・・・式（３）
【００５１】
ここで、このαの値を求めるために、人物頭部の高さ座標と同じ高さの床面に平行な平面を利用する。人物頭部の高さをｈとすると、以下の式（４）が成り立つ。
ｈ＝αｒz＋ｃz      ・・・式（４）
【００５２】
式（４）において、ｒzはｒのｚ成分を表し、ｃzはｃのｚ成分を表す。そして、式（４）を式（３）に代入することによって、最終的に人物頭部の３次元位置Ｘは以下の式（５）により計算できる。
【００５３】
【数２】
0006700752.tif 000003
【００５４】
次に、ステップＳ７０３において、第２の位置推定部１１１は、ステップＳ７０１で高さ座標が取得できなかった人物について、平均的な人物の高さ座標を用いて３次元位置を推定する。この処理における３次元位置の推定方法はステップＳ７０２と同様であるが、物体記憶部１０７に記憶されている人物の高さ座標の代わりに、人物の高さ座標として所定の一定値あるいは統計値を用いる。本実施形態では、人物の高さ座標は事前に定めた値を用いるが、物体記憶部１０７に記憶された人物の高さ座標の平均など、システムの稼働中に求めた値を用いてもよい。
【００５５】
このように図７のステップＳ７０３では、平均的な人物の高さ座標を用いて３次元位置を推定する。平均的な人物の高さ座標を用いることにより、高さ座標の情報を有していない場合であっても３次元位置を推定することができる。
【００５６】
図４の説明に戻り、次に、ステップＳ４１０において、表示制御部１１２は、以上の処理で求めた人物追尾結果および３次元位置の推定結果をディスプレイ２１６に表示する。
【００５７】
図１２は、処理結果の表示画面の一例を示す図である。図１２に示すように、画面構成は、１つ以上のカメラ画像１２０１と３次元マップ１２０４とで構成される。
カメラ画像１２０１には、ステップＳ４０３で追尾された人物領域を示すシンボル（枠）１２０２がカメラ画像１２０１に重畳表示される。カメラが異なっていても同一の人物であるか否かをユーザが容易に識別できるように、それぞれのカメラの同一の人物の枠は同じ色に着色される。
一方、３次元マップ１２０４には、人物の３次元位置を示すシンボル１２０３とカメラの位置及び向きを示すシンボル１２０５とが床面とともに３次元画像として表示される。また、カメラ画像１２０１の人物と３次元マップ１２０４の人物とが同一であるか否かをユーザが容易に識別できるように、それぞれを同じ色で着色される。
【００５８】
次に、ステップＳ４１１において、画像取得部１０１は、処理を継続するか否かを判定する。この判定の結果、カメラからさらなるカメラ画像が取得可能で処理を継続する場合はステップＳ４０２に戻り、取得不可で処理を終了する場合は、そのまま処理を終了する。
【００５９】
以上のように本実施形態によれば、１台のカメラでのみ物体が観測されている状況でも３次元位置を推定することができ、３次元位置を推定する精度を向上させることができる。また、個別の物体の高さを用いることにより、実際に近い物体の高さを用いて位置を推定することができ、３次元位置を推定する精度を向上させることができる。
【００６０】
本実施形態では、同一物体か否かを判定するために、物体記憶部１０７に追尾ラベルを記憶した。一方、このようなカメラごとに割り当てられるカメラ固有の追尾ラベルの代わりに、シーン固有のラベルを物体記憶部１０７に記憶してもよい。ここで、シーン固有のラベルとは、カメラが異なっている場合でも同一の物体である場合には同じラベルを割り当てるようなラベルである。例えば、１つのカメラで撮影されたカメラ画像上で追尾が一旦途切れ、追尾ラベルが変化した場合であっても同一の物体と判定することができる。シーン固有のラベルを生成する方法としては、例えば、ステップＳ６０１及びステップＳ６０３においてカメラ間の物体の対応付けを行う際に、追尾ラベル同士を対応付ける。そして、この対応付けされた追尾ラベル群に、あるシーン固有のラベルを割り当てる。
【００６１】
また、本実施形態では、ステップＳ４０４において人物の位置によって位置推定方法を切り替えるために位置推定マップを取得し、位置推定モードＡまたは位置推定モードＢの位置推定方法を行うようにした。一方、両方の位置推定方法が行われる位置推定モードを設けてもよい。例えば、ステップＳ４０９では、位置推定モードＡ及びＢの両方を対象として３次元位置を推定してもよい。このようにすることにより、より推定精度を向上させることができる。特に、検出漏れや他の物体によって物体が遮蔽された場合など、１台のカメラからしか物体が観測できない場合に、推定精度を向上させることができる。
【００６２】
また、本実施形態では、あるカメラの物体検出結果は物体属性取得部１０４と物体位置推定部１０８との両方に入力されるが、物体属性取得部１０４あるいは物体位置推定部１０８のいずれかにだけ入力されるようにしてもよい。例えば、あるカメラに関する物体検出結果は物体属性取得部１０４のみに入力され、別のあるカメラに関する物体検出結果は物体位置推定部１０８に入力されるようにしてもよい。また、一部のカメラからはいずれかに入力され、別の一部のカメラからは両方に入力されるという構成にしてもよい。
【００６３】
（第２の実施形態）
以下、本発明の第２の実施形態について説明する。本実施形態では、第１の実施形態と異なる点についてのみ説明する。
【００６４】
図１３は、本実施形態に係る位置検出装置１３００の機能構成例を示すブロック図である。図１に示した構成と異なる点は、物体追尾部１０３が識別特徴抽出部１３０３に置き換わっている点である。
図１３において、識別特徴抽出部１３０３は、物体検出部１０２で検出された物体から識別特徴を抽出する。ここで、識別特徴とは、物体領域同士が同一物体のものか否かを判定するために用いる特徴量であり、本実施形態では、人物の頭部領域の下端付近の服領域のＲＧＢ値をＲＧＢ色特徴として取得する。一方、識別特徴として、身長や性別、年齢、服装、容姿などの属性情報や、Histogram of Oriented Gradients（ＨＯＧ）特徴などの画像特徴、画像そのものを抽出してもよい。そして、物体位置推定部１０８は、カメラ情報記憶部１３０５に記憶されたカメラ情報と物体検出部１３０２による検出結果と識別特徴抽出部１３０３による識別特徴の抽出結果と物体記憶部１３０７に記憶された物体情報とから、物体の３次元位置を推定する。
【００６５】
図１４は、本実施形態におけるカメラの配置例を説明するための図である。図３に示した例では、全てのカメラにおいて、他のカメラと視野が重複する領域が存在していた。これに対して図１４に示す例では、第１のカメラ２０１と第２のカメラ２０２との間では、視野１４０１が重複する領域が存在するが、第３のカメラ２０３及び第４のカメラ２０４はどのカメラとも視野が重複していない。
【００６６】
図１５は、本実施形態に係る動作を説明するためのフローチャートである。なお、図４と重複する処理については同じ符号を付しており、その説明は省略する。
ステップＳ１５０３においては、物体検出部１０２は、ステップＳ４０２で取得されたカメラ画像から人物を検出する。そして、識別特徴抽出部１３０３は、検出された人物から識別特徴を抽出する。
ステップＳ１５０７においては、物体属性取得部１０４は、人物の高さ座標とその人物の識別特徴とを物体記憶部１０７に物体情報として記憶する。
【００６７】
ステップＳ１５０９の処理は、図４のステップＳ４０９と一部の処理内容が異なっている。以下、ステップＳ１５０９の処理の詳細について説明する。
【００６８】
図１６は、ステップＳ１５０９において物体位置推定部１０８が行う詳細な処理手順の一例を示すフローチャートである。
まず、ステップＳ１６０１において、同一物体認識部１０９は、位置推定モードＢの領域に存在するそれぞれの人物について、これらの人物の高さ座標を取得する。具体的には、物体記憶部１０７に人物の高さ座標とともに記憶された人物の識別特徴と位置推定モードＢの領域に存在する人物から抽出した識別特徴とを比較する。そして、識別特徴同士の類似度が閾値以上である場合には同一人物とみなし、その人物の高さ座標を取得する。本実施形態では、ＲＧＢ色特徴の類似度としてコサイン距離を用いる。なお、類似度が閾値以上である識別特徴が複数存在する場合は、最も早い時間に抽出された識別特徴を有する人物の高さ座標を取得する。一方、識別特徴同士の類似度が閾値以上となるものが物体記憶部１０７に存在しない場合は、位置推定モードＢの領域に存在する人物と同一人物の高さ座標が物体記憶部１０７に記憶されていないものとみなす。したがってこの場合は、人物の高さ座標を取得しない。次のステップＳ７０２及びＳ７０３は、図７と同様であるため、説明は省略する。
【００６９】
なお、本実施形態では、ステップＳ１６０１で人物の識別特徴を用いることによって人物が同一であるか否かを判定した。一方、第１の実施形態と組み合わせ、人物の識別特徴と追尾との両方を用いることによって、人物が同一であるか否かを判定してもよい。
【００７０】
以上のように本実施形態によれば、人物の識別特徴を用いて人物が同一であるか否かを判定するようにしたので、図１４に示すようなカメラ配置のように、視野の重なりがないカメラが存在する場合でも同一人物か否かを識別することができる。そのため、カメラの配置の自由度が増すとともに、視野の重なり部分を減らせるため、カメラを配置する個数を減少させることができる。特に、監視領域が他の人物で混雑している場合など、人物の追尾が難しい場合に２次元位置の推定精度を向上させることができる。
【００７１】
なお、本実施形態では、あるカメラの物体検出結果は物体属性取得部１０４と物体位置推定部１０８との両方に入力されるが、物体属性取得部１０４あるいは物体位置推定部１０８のいずれかにだけ入力されるようにしてもよい。例えば、あるカメラに関する物体検出結果は物体属性取得部１０４のみに入力され、別のあるカメラに関する物体検出結果は物体位置推定部１０８に入力されるものとしてもよい。また、一部のカメラからはいずれかに入力され、別の一部のカメラからは両方に入力されるという構成にしてもよい。
【００７２】
（第３の実施形態）
以下、本発明の第３の実施形態について説明する。本実施形態では、第１の実施形態と異なる点についてのみ説明する。
【００７３】
図１７は、本実施形態に係る動作を説明するためのフローチャートである。なお、図４と重複する処理については同じ符号を付しており、その説明は省略する。
ステップＳ１７０４の処理は、図４のステップＳ４０６と基本的には同様である。ただし、図４のステップＳ４０６では、位置推定モードＡの領域に存在する人物を対象に処理を行ったが、ステップＳ１７０４では、全ての領域の人物を対象に処理を行う。したがって、ステップＳ１７０４の処理の場合は、どのカメラとの組合せでも対応付けができない人物も存在する場合があり、そのような人物に対しては３次元位置の推定は行われない。
【００７４】
ステップＳ１７０５においては、物体属性取得部１０４は、人物の高さ座標を追尾ラベルとともに物体記憶部１０７に物体情報として記憶する。
【００７５】
次のステップＳ１７０６においては、基本的には図４のステップＳ４０９と内容が異なる。まず、図４のステップＳ４０９では、位置推定モードＢの領域に存在するそれぞれの人物を処理対象としていたのに対し、本実施形態では、ステップＳ６０１でどのカメラとの組合せでも対応付けができなかった人物を処理対象とする。どのカメラとの組合せでも対応付けができない人物とは、例えば、複数のカメラの視野が重ならない監視領域に存在した場合や、検出漏れが発生した場合、他の物体によって遮蔽された場合など、１台のカメラからしか検出できない人物である。ステップＳ１７０６では、このような人物に対し、図７と同様の処理を行うことによって、３次元位置を推定する。
【００７６】
以上のように本実施形態によれば、１台のカメラでのみ人物が検出されている状況でも３次元位置を推定することができ、３次元位置の推定精度を向上させることができる。図１７のステップＳ１７０６の処理で、複数のカメラで検出されなかった人物を処理対象とすることにより、複数のカメラで３次元位置を推定できなかった人物も３次元位置を推定することができ、３次元位置の推定の漏れを減少させることができる。
【００７７】
（その他の実施形態）
前述した第１〜第３の実施形態では、物体属性取得部１０４は、画像解析によって３次元位置を求めて物体の高さを求めたが、距離センサ等の他の方法により物体の高さを求めてもよい。その場合、物体属性取得部１０４は、距離センサから距離画像を入力することによって物体の高さ座標を得る。このような構成にすることにより、カメラとその他のセンサとを混在して利用できるようにし、カメラ以外で得た情報を利用することによって、カメラによる３次元位置の推定精度を向上させることができる。
【００７８】
また、第２の実施形態では、物体属性取得部１０４は、画像解析によって３次元位置を求めて物体の高さを求めたが、距離センサ等で計測せずに事前に個別の物体の高さを計測しておき、識別特徴とともに外部のデータベースに蓄積しておいてもよい。そして、データベースから物体の高さ及び識別特徴を読み出すようにしてもよい。
【００７９】
例えば、データベースに顔認証または個人認証のための識別特徴と人物の高さ座標との情報を蓄積しておくようにしてもよい。この場合、同一物体認識部１０９は、画像取得部１０１が取得したカメラ画像で抽出された識別特徴と、データベースに蓄積されている識別特徴と比較する。このようにすることで、３次元位置を推定する際に物体の高さを計測する装置を不要にすることができ、カメラの配置やシステムなどの自由度を上げることができる。また、３次元位置を推定するためにカメラの視野を重複して配置させる必要性が減少するため、監視領域に設置するカメラ台数を減少させることもできる。
【００８０】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８１】
１０１  画像取得部
１０２  物体検出部
１０５  カメラ情報記憶部
１０７  物体記憶部
１１０  第１の位置推定部
１１１  第２の位置推定部
【図１】
0006700752.tif 000004
【図２】
0006700752.tif 000005
【図３】
0006700752.tif 000006
【図４】
0006700752.tif 000007
【図５】
0006700752.tif 000008
【図６】
0006700752.tif 000009
【図７】
0006700752.tif 000010
【図８】
0006700752.tif 000011
【図９】
0006700752.tif 000012
【図１０】
0006700752.tif 000013
【図１１】
0006700752.tif 000014
【図１２】
0006700752.tif 000015
【図１３】
0006700752.tif 000016
【図１４】
0006700752.tif 000017
【図１５】
0006700752.tif 000018
【図１６】
0006700752.tif 000019
【図１７】
0006700752.tif 000020