(57)【要約】【課題】画像から対象物体の誤りのない位置を取得可能にすることを課題とする。【解決手段】情報処理装置は、カメラの撮影エリア内の三次元位置を特定可能な所定のデータを保持する保持手段（２５０）と、カメラで撮影された画像から対象物体を検出してその対象物体の画像内の位置を取得する検出手段（２１０）と、画像内の対象物体の位置に対応した前記所定のデータを取得し、当該所定のデータを用いて対象物体の大きさを算出する大きさ算出手段（２２１）と、その対象物体の大きさと対象物体の既知の大きさとが異なる場合、算出される前記対象物体の大きさが既知の大きさと合うように前記所定のデータを補正する補正手段（２３０，２４０）と、画像内の対象物体の位置と所定のデータとを基に対象物体の三次元位置を算出する位置算出手段（２２２）と、を有する。【選択図】図２
2020056644.tif 000002
【特許請求の範囲】
【請求項１】
カメラにより撮影されるエリア内の三次元位置を特定可能な所定のデータを保持する保持手段と、
前記カメラにて撮影された画像から対象物体を検出して、前記対象物体の画像内における位置を取得する検出手段と、
前記画像内における前記対象物体の位置に対応した前記所定のデータを取得し、当該所定のデータを用いて、前記対象物体の大きさを算出する大きさ算出手段と、
前記算出された対象物体の大きさと前記対象物体の既知の大きさとが異なる場合には、前記算出手段にて算出される前記対象物体の大きさが前記既知の大きさと合うように、前記所定のデータを補正する補正手段と、
前記画像内における前記対象物体の位置と前記所定のデータとを基に前記対象物体の三次元位置を算出する位置算出手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記検出手段は、前記画像内の前記対象物体における所定の特徴点の位置を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記大きさ算出手段は、
前記対象物体の前記所定の特徴点の位置に対応した前記所定のデータを取得し、
前記所定のデータにより特定される位置と、前記画像内の前記対象物体の他の特徴点の位置とを基に、前記対象物体の大きさを算出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記対象物体が人物である場合、前記所定の特徴点の位置は前記人物の足元部の位置であり、前記他の特徴点の位置は前記人物の頭頂部の位置であり、
前記大きさ算出手段は、前記人物の足元部の位置に対応した前記所定のデータにより特定される位置と、前記人物の頭頂部の位置との間の距離で表される人物の身長を、前記対象物体の大きさとして算出することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記大きさ算出手段は、前記人物の足元の位置が不明である場合、前記人物の頭頂部、腰部、肩部、側頭部の、少なくとも二つの位置を基に、前記人物の足元の位置を算出することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記大きさ算出手段は、前記身長が既知の大きさであるとき、当該身長と、前記少なくとも二つの位置の間の距離との比を基に、前記人物の足元の位置を算出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記検出手段は、前記対象物体を認識する手段と、前記認識された対象物体に関する情報を取得する手段と、を有し、
前記認識された対象物体に関する情報には、前記対象物体の前記既知の大きさを示す情報が含まれていることを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記補正手段は、
前記算出された対象物体の大きさと前記対象物体の既知の大きさとが異なる場合に、前記所定のデータの信頼性が低いと判定する判定手段と、
前記判定手段により信頼性が低いと判定された前記所定のデータに対して、前記補正を行って更新する更新手段と、を有することを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記所定のデータは、前記エリア内の領域について前記所定のデータの信頼性が高い領域を表す情報を含み、
前記補正手段は、前記信頼性の高い領域で前記検出された前記対象物体について前記算出手段が算出した前記大きさを基に、前記信頼性が高くない領域に対応した前記所定のデータについて前記補正を行うことを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
異なる位置に設置された二つ以上のカメラにより前記エリア内で重複して撮影された領域から前記検出されて前記算出された前記対象物体の大きさを基に、前記エリア内で前記重複して撮影されていない領域に対応した前記所定のデータについて前記補正を行うことを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１１】
前記検出手段は、一つのカメラにより所定の時間間隔の時間順に連続して前記撮影された画像から前記対象物体を検出し、前記時間順に連続した複数の画像について前記対象物体を追跡することを特徴とする請求項１から１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記補正手段は、前記時間順で前の画像について前記算出手段が算出した対象物体の大きさを、前記対象物体の前記既知の大きさとして保持することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記検出手段は、前記対象物体を追跡している際に他の対象物体との交差が生じた場合、前記交差する対象物体の三次元位置に基づいて前記追跡を継続することを特徴とする請求項１１または１２に記載の情報処理装置。
【請求項１４】
前記算出された前記対象物体の三次元位置を表示するための表示画像を生成する処理手段を有することを特徴とする請求項１から１３のいずれか１項に記載の情報処理装置。
【請求項１５】
複数の前記対象物体の三次元位置が算出された場合、前記対象物体の三次元位置を基に、前記複数の対象物体をグループごとに分けて、前記対象物体ごとにグループ属性情報を付加する付加手段を有することを特徴とする請求項１から１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記所定のデータは、前記エリア内の床面上における三次元位置を特定可能なジオメトリデータであることを特徴とする請求項１から１５のいずれか１項に記載の情報処理装置。
【請求項１７】
情報処理装置が実行する情報処理方法であって、
カメラにより撮影されるエリア内の三次元位置を特定可能な所定のデータを保持する保持工程と、
カメラにて撮影された画像から対象物体を検出して、前記対象物体の画像内における位置を取得する検出工程と、
前記画像内における前記対象物体の位置に対応した前記所定のデータを取得し、当該所定のデータを用いて、前記対象物体の大きさを算出する大きさ算出工程と、
前記算出された対象物体の大きさと前記対象物体の既知の大きさとが異なる場合には、前記算出工程にて算出される前記対象物体の大きさが前記既知の大きさと合うように、前記所定のデータを補正する補正工程と、
前記画像内における前記対象物体の位置と前記所定のデータとを基に前記対象物体の三次元位置を算出する位置算出工程と、
を有することを特徴とする情報処理方法。
【請求項１８】
コンピュータを、請求項１から１６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視カメラ等により撮影された画像情報を処理する技術に関する。
【背景技術】
【０００２】
近年、ネットワークカメラ（以下、ＮＷカメラとする。）の用途は、店舗内の監視・防犯はもちろんのこと、画像解析を活用したアプリケーションにまで広がりを見せている。またＮＷカメラにて撮影された画像は、ソフトウェアを用いた自動的な人体検出を行うことで、禁止区域への侵入検知や人数のカウント、人物の認識などにも利用されている。更に最近は、ＮＷカメラにて撮影された画像から人物の位置を検出し、例えば店舗内における人物の動線を取得してマーケティングに生かすなど、ビジネス分野における応用も盛んになっている。
【０００３】
ここで、カメラにて撮影された画像を解析して人物に関する情報を取得する手法として、特許文献１に開示されている手法がある。特許文献１には、カメラにて撮影された画像に写っている人物の下端（例えば足元）の位置を基に、カメラから人物までの距離や人物の身長等を算出する手法が開示されている。特許文献１の手法では、基準となる座標等のパラメータを予め用意しておき、撮影された画像に写っている人物の下端の位置（座標）と基準のパラメータとに基づいて、距離や身長等が算出される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２８６６３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述した特許文献１の手法において、基準の座標等のパラメータは、例えば一様に平坦な面上に置かれた基準物体の位置を示す基準座標や、カメラを無限遠に遠ざけた場合の基準物体の位置等を基に予め算出されている。一方で、ＮＷカメラにて撮影される実際の環境は、階段やステップなどのように詳細な形状が定義し難い複数の面で構成されている場合や、屋外の坂道、丘陵地などのように平坦な平面ではない様々な面によって構成されている場合も多い。このような環境の場合、前述した特許文献１における一様に平坦な面に基づく座標等のパラメータでは対応することができず、対象物体の位置等を誤って取得してしまう虞がある。
【０００６】
そこで、本発明は、撮影された画像から人物等の対象物体について誤りのない位置を取得可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、カメラにより撮影されるエリア内の三次元位置を特定可能な所定のデータを保持する保持手段と、カメラにて撮影された画像から対象物体を検出して、前記対象物体の画像内における位置を取得する検出手段と、前記画像内における前記対象物体の位置に対応した前記所定のデータを取得し、当該所定のデータを用いて、前記対象物体の大きさを算出する大きさ算出手段と、前記算出された対象物体の大きさと前記対象物体の既知の大きさとが異なる場合には、前記算出手段にて算出される前記対象物体の大きさが前記既知の大きさと合うように、前記所定のデータを補正する補正手段と、前記画像内における前記対象物体の位置と前記所定のデータとを基に前記対象物体の三次元位置を算出する位置算出手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、撮影された画像から人物等の対象物体について誤りのない位置を取得可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の監視システムの概略構成を示す図である。
【図２】実施形態のアーキテクチャを説明する図である。
【図３】実施形態の処理フローチャートである。
【図４】画像内の人物の身長および位置の関係を説明する図である。
【図５】実際の人物と画像内の人物の縮尺比と位置の関係を説明する図である。
【図６】床面のジオメトリデータを修正する原理を説明する図である。
【図７】二台のカメラにより確定領域と未確定の領域を決定する例の説明図である。
【図８】遮蔽物により床面と足元が撮影されていない場合の説明に用いる図である。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照しながら、本発明の実施形態について説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
図１は本実施形態の情報処理装置が適用される一例としての監視システムの概略構成を示した図である。カメラ１０１は、例えばネットワークカメラ（ＮＷカメラ）であり、屋内や屋外等の所望の場所に設置され、所望の監視エリアを撮影する監視カメラであるとする。監視エリアには例えば床１１０があり、また監視エリア内では人などの対象物体１０３の出入りや移動等があるものとする。なお監視エリアの環境には、一様に平坦な床１１０だけでなく、例えば階段やエスカレータ、スロープ、坂道、丘陵地、凹凸面、曲面などの様々な環境が含まれる場合もある。そして、カメラ１０１は、例えば動画のように所定の時間間隔（フレーム周期）ごとの時間順に連続的に撮影した画像を取得し、それら取得した各画像のデータを、解析用のパーソナルコンピュータ（ＰＣ１０２とする。）に送信する。
【００１１】
ＰＣ１０２は、カメラ１０１から送信されてきた画像を取得し、解析プログラムを実行することにより画像解析を行う。なお、ＰＣ１０２とプログラムの代わりに、例えばＡＳＩＣやＦＰＧＡなどのプログラマブルな集積回路に本実施形態に係るアルゴリズムを記録させておき、これらにより画像の解析等が行われてもよい。
【００１２】
図２は、図１の監視システムにおけるアーキテクチャを概略的に表した機能ブロック図である。本実施形態の場合、図２の各機能ブロックは、ＰＣ１０２において解析プログラムの実行により実現されるものとするが、カメラ１０１に含まれていてもよいし、一部がカメラ１０１に含まれ、残りがＰＣ１０２に含まれていてもよい。
【００１３】
図２において、検出追跡部２１０は、カメラ１０１にて撮影された画像の解析を行い、対象物体１０３を検出し、その検出した対象物体１０３を追跡するような、物体検出と物体追跡処理とを実行する。本実施形態の場合、対象物体１０３には人を想定しているため、検出追跡部２１０は人物の検出およびその検出した人物を追跡する処理を実行する。また検出追跡部２１０は、人物を個別に識別する公知の人物認識システムを含んでいてもよい。検出追跡部２１０にて検出された人物の情報は、後述する身長計算部２２１および位置計算部２２２に送られる。
【００１４】
データベース２５０は、カメラの監視エリアを含む実際（実世界）の三次元空間内の位置を特定可能なデータを保持している。本実施形態では三次元空間内の位置を特定可能な所定のデータとしてジオメトリデータを保持する例を挙げており、ジオメトリデータを用いた演算等により三次元空間内における座標位置を特定可能となる。なお、三次元空間内の位置を特定可能なデータは、ジオメトリデータに限定されるものではない。データベース２５０に保持されているジオメトリデータは、事前の測定あるいは計算により生成されていてもよいし、デフォルトとして用意されている複数のデータの中から選択されたデータであってもよい。なお、以下の説明において、実際（実世界）の三次元空間内の位置を、三次元位置と呼ぶことにする。
【００１５】
ここで、カメラの監視エリアの環境としては、前述したように、一様に平坦な床面だけでなく、階段やエスカレータ、ステップ、スロープ、坂道、丘陵地、凹凸面、曲面などの様々な環境が含まれる場合がある。これら階段やエスカレータ、ステップなどのように詳細な形状が定義し難い複数の面で構成された環境、スロープ、坂道、丘陵地、凹凸面、曲面などのように一様な平面ではない面で構成された環境に対しては、ジオメトリデータの定義が難しい。
【００１６】
このため、本実施形態の場合、データベース２５０には、監視エリア内の平坦な床面に対応したジオメトリデータのみが保持されており、階段や坂道等の定義が難しい領域のジオメトリデータは未定になされているとする。すなわち、監視エリア内の床面のジオメトリデータは、一様に平坦な平面の床面（床面は地面等も含むものとする）を前提としたデータとなされており、事前に測定あるいは計算等されてデータベース２５０に格納されているとする。なお、平面の床面のジオメトリデータは、一例として、予め基準となる指標を用いたキャリブレーションを実施することで計測および算出することができる。例えば一定の長さの棒やキャリブレーション用チャート、予め身長が分かっている人物などを、基準となる指標とし、それらを平坦な床面に配置した上でキャリブレーションを行って計測することで、床面のジオメトリデータを取得することができる。もちろんジオメトリデータの計測と算出方法はこの例には限定されず、他の手法が用いられてもよい。
さらに本実施形態の場合、データベース２５０に格納されたジオメトリデータは、後述するように、更新部２４０による変更および更新が可能となされている。
【００１７】
また本実施形態の場合、データベース２５０には、対象物体に関する情報として、例えば人物の特徴量を表す情報や、人物における特徴点間の距離の情報、人物認識に用いる情報などを格納しておくことも可能となされている。本実施形態の場合、人物の特徴量を表す情報としては、その人物の身長を示す情報を挙げることができる。人物の特徴点としては、例えば人物の頭頂部、腰部、肩部、側頭部、足元部など各部位の特徴点を挙げることができ、また、特徴点間の距離は少なくとも二つ以上の各特徴点間の距離とする。これらの人物（対象物体）に関する情報は、予め計測等されてデータベース２５０に格納されてもよいし、画像解析により取得されてデータベース２５０に格納されてもよい。また、人物に関する情報は、データベース２５０ではなく、検出追跡部２１０や身長計算部２２１が保持していてもよい。
【００１８】
身長計算部２２１は、検出追跡部２１０が検出および追跡している対象物体１０３の画像内における位置と、データベース２５０から取得したジオメトリデータとを基に、画像内における対象物体１０３の大きさ算出処理を実行する。本実施形態の場合、対象物体１０３は人物であり、身長計算部２２１は、画像内における人物の頭頂部位置と、足元の位置に応じてデータベース２５０から取得したジオメトリデータとを基に、画像内の人物の身長を算出する。身長計算部２２１における処理の詳細については後述する。
【００１９】
位置計算部２２２は、同様に画像内で検出および追跡されている対象物体１０３の画像内における位置と、データベース２５０から取得したジオメトリデータとを基に、実際の三次元空間内における対象物体１０３の位置を算出する位置算出処理を実行する。本実施形態の場合、対象物体１０３は人物であり、位置計算部２２２は、画像内における人物の足元の位置と、その足元位置に応じてデータベース２５０から取得したジオメトリデータとを基に、実際の人物の三次元空間内における位置を算出する。位置計算部２２２における処理の詳細については後述する。
【００２０】
このように、位置計算部２２２は、画像内における人物の足元位置にあたるジオメトリデータを用いて人物の三次元位置を算出するが、この際に用いられるジオメトリデータは、前述したように平坦な床面を前提としたデータとなされている。一方で、監視エリアの環境は、前述したように階段やエスカレータ、ステップ、スロープ、坂道、丘陵地、凹凸面、曲面などの様々な環境が含まれる場合がある。すなわち、三次元空間内における実際の人物の位置は、ジオメトリデータが定義されている平坦な床面上だけでなく、ジオメトリデータが未定義となっている階段上等であることも有り得る。このため、実際の人物の位置が階段上等のジオメトリデータ未定義の位置であった場合、平坦な床面を前提としたジオメトリデータを用いて算出した人物の三次元位置は、実際の人物の三次元位置とは異なった位置になってしまう。
【００２１】
そこで本実施形態では、判定部２３０において、データベース２５０から取得されたジオメトリデータが、対象物体１０３の三次元位置の算出に用いるのに適切なデータであるかどうかを判定する信頼性判定を行う。信頼性判定において、判定部２３０は、画像内の対象物体１０３についてジオメトリデータを基に算出した大きさと、予め登録された既知の大きさ、もしくは現在の画像より以前の画像内の該当する対象物体１０３から算出された既知の大きさとを、比較する。そして、判定部２３０は、既知の大きさに対して、ジオメトリデータを基に算出した対象物体１０３の大きさが異なる場合、すなわち例えば対象物体の大きさの不一致度が所定の閾値を超える場合、そのジオメトリデータは信頼性が低いと判定する。逆に、それら大きさの不一致度が所定の閾値以下である場合、判定部２３０は、そのジオメトリデータは信頼性が高いと判定する。本実施形態では対象物体１０３が人物であるため、信頼性判定において、判定部２３０は、既知の身長と、画像内の人物についてジオメトリデータから算出した身長とが異なる場合に、そのジオメトリデータの信頼性が低いと判定する。そして、判定部２３０は、ジオメトリデータの信頼性が低いと判定した場合にはその旨を更新部２４０に通知する。
【００２２】
更新部２４０は、信頼性が低いと判定されたジオメトリデータに対して補正処理（修正処理）を行い、ジオメトリデータを更新する。例えば、更新部２４０は、信頼性が低いと判定されたジオメトリデータを、画像内の対象物体１０３の大きさが既知の大きさと合うように、つまり画像内の人物の身長が既知の身長と一致するようにジオメトリデータを補正して更新する。すなわち本実施形態において、算出された身長が既知の身長よりも大きい場合、更新部２４０は、ジオメトリデータにおける床面の位置を、基準面の床面の位置よりも、カメラの光軸方向の近い位置に移動させるように調整する。逆に例えば、算出された身長が既知の身長よりも小さい場合、更新部２４０は、ジオメトリデータにおける床面の位置を、基準面の床面の位置よりも、カメラの光軸方向の遠い位置に移動させるように調整する。このようなジオメトリデータにおける床面の位置を移動させる調整は、算出される身長が既知の身長と一致するようになるまで行われる。
【００２３】
これにより、本実施形態において、身長計算部２２１では、画像から検出および追跡されている人物の身長を計算する際、信頼性が高いジオメトリデータを用いた身長算出の処理が行われることになる。
同様に、位置計算部２２２では、画像から検出および追跡されている人物の三次元位置を計算する際に、信頼性が高いジオメトリデータを用いた人物の三次元位置の算出の処理が行われることになる。
【００２４】
データ処理部２６０は、前述のようにして位置計算部２２２にて算出された人物の三次元位置のデータを基に、例えば監視エリア内における人物の位置をＰＣ１０２のモニタ装置等の画面上に表示するための表示画像を生成する処理を行う。
またデータ処理部２６０は、位置計算部２２２にて複数の人物の三次元位置が取得された場合、各人物の三次元位置を基に、それら複数の人物をグループ分けして、人物ごとにグループ属性情報を付加する処理を行うこともできる。データ処理部２６０は、複数の人物をグループ分けした場合、そのグループ分けの結果を表す表示画像を生成して、ＰＣ１０２のモニタ装置等の画面上に表示させることもできる。
また、データ処理部２６０は、位置計算部２２２にて複数の人物の三次元位置が取得され、それら複数の人物の三次元位置から複数の人物の移動時に交差が生じたかどうかを判断する処理も行うことができる。そして、データ処理部２６０は、複数の人物の交差が生じた際の各人物の三次元位置を基に、検出追跡部２１０における人物追跡が継続されるようにする処理を行うこともできる。
【００２５】
図３は、本実施形態の図２に示した機能ブロックにおける処理の流れを示したフローチャートである。以下の説明では、図３のフローチャートにおける各ステップＳ３１０〜ステップＳ３５２をＳ３１０〜Ｓ３５２と略記する。Ｓ３１０からＳ３５１またはＳ３５２までの処理は、カメラ１０１が所定の時間間隔（フレーム周期）ごとに連続的に撮影した画像ごとに行われる処理である。
【００２６】
先ずＳ３１０において、検出追跡部２１０は、撮影された画像を用いて人物の検出および追跡（追尾）を行う。検出追跡部２１０では、前述したようにカメラ１０１が所定の時間間隔（フレーム周期）ごとに連続的に撮影した画像が入力されるため、例えば人物の頭頂部と足元の位置はフレーム周期ごとに逐次更新されることになる。
【００２７】
次にＳ３２０において、身長計算部２２１は、検出追跡部２１０にて検出および追跡されている人物の足元の位置にあたる、床面のジオメトリデータをデータベース２５０から取得する。
さらにＳ３３０において、身長計算部２２１は、検出追跡部２１０にて検出および追跡されている人物の頭頂部から、Ｓ３２０で取得したジオメトリデータにおける足元位置までの距離を、人物の身長として算出する。
【００２８】
ここで、検出追跡部２１０にて検出および追跡されている人物の身長は、その人物の追跡が行われている期間内において急に変化することはないと仮定できる。そして仮に、この人物の身長が、現在の画像より前の画像で算出された既知の身長から大きく変化している場合、それは人物の身長が変化したのではなく、身長算出に用いたジオメトリデータの信頼性が低いためであると考えられる。また例えば、人物認識に関する情報として人物の身長が予め登録されている場合において、人物認識で特定した人物についてジオメトリデータを基に算出した身長が、登録済みの既知の身長と異なる場合にも、そのジオメトリデータの信頼性は低いと考えられる。
【００２９】
このため、次のＳ３４０において、判定部２３０は、検出追跡部２１０にて検出および追跡されている人物が直立姿勢であるにもかかわらず、その人物の身長に変化があるか否か、つまり既知の身長と異なっているか否かを判定する。
そして、Ｓ３４０において身長に変化がない（既知の身長と略々一致している）と判定された場合、Ｓ３０５において、位置計算部２２２は、Ｓ３２０で取得された足元位置を人物の三次元位置として確定する。
【００３０】
一方、Ｓ３４０において身長に変化がある（既知の身長とは異なっている）と判定された場合、Ｓ３５１において、更新部２４０は、データベース２５０の床面のジオメトリデータを、人物の実際の身長に合うように補正して更新する。
そして、位置計算部２２２は、補正後（更新後）のジオメトリデータを用いて、画像内の人物の三次元位置を再計算する。
これらＳ３５２またはＳ３５１の処理の後、図３のフローチャートの処理は終了し、次のフレーム周期の画像について同様の処理が行われる。
【００３１】
なお、本実施形態では、判定部２３０においてジオメトリデータに関する信頼性をフレーム周期ごとに判定しており、その判定結果である信頼性情報はジオメトリデータに関連付けてデータベース２５０に格納されてもよい。また、フレーム周期ごとに判定されたジオメトリデータの信頼性情報は、ジオメトリデータとは別に保持されてもよく、例えば統計的な処理に用いられてもよい。
【００３２】
また例えば、監視エリア内の一定の領域におけるジオメトリデータの信頼性が保証されているような場合、判定部２３０は、その一定の領域についてジオメトリデータの信頼性判定処理を行わないようにしてもよい。また、ジオメトリデータの信頼性が保証されている領域については、更新部２４０における更新処理の対象外（更新処理の対象としない）にしてもよい。ジオメトリデータの信頼性が保証されている領域は、例えば事前に床面のジオメトリが正確に計測されてジオメトリデータが確定している領域や、複数のカメラにて撮影される重複領域であって三角測量方式等により正確な位置計測が可能な領域などである。複数のカメラにて撮影される重複領域がある場合、それら各カメラの位置、カメラの撮影方向、画角が既知であれば、それら各カメラの視野において共有される領域内での位置関係は、エピポーラ幾何を利用して計算可能である。その他にも、カメラ以外に測距用センサ（デプスセンサ）を設け、その測距用センサを用いて測定した距離情報と、カメラにて撮影された画像の情報とを合わせて用いることで、ジオメトリの信頼性が保証されている領域を決定してもよい。
【００３３】
以下、本実施形態における前述した人物の身長計算および三次元位置計算について、さらに具体的な例を挙げて説明する。
図４は、撮影された画像内の人物の身長および位置の関係説明に用いる図であり、本実施形態の監視システムにおけるカメラ４００と、対象物体である人物４２１，４２２と、床面４１１および床面４１２の配置例が示されている。
【００３４】
図４（Ａ）はそれらカメラ、人物、床面等を横方向（床面４１１に対して水平な方向）から見た様子を示しており、図４（Ｂ）はカメラ４００の視野内（つまり撮影されている範囲）を表している。図４（Ａ）と図４（Ｂ）に示されているように、カメラ４００により撮影される範囲内には、例えば水平な平面の床面４１１と、その床面４１１とは高さが異なる床面４１２とが存在しているとする。床面４１１と床面４１２とを有する環境は例えば屋外や屋内の両方において存在する可能性があり、床面４１１に対して高さが異なる床面４１２の実際の例としては、階段やエスカレータ、スロープ、坂道、丘陵地、凹凸面、曲面などが想定される。また、図４の例の場合、床面４１１上には人物４２１が立っており、床面４１２上には人物４２２が立っているとする。
【００３５】
図４（Ｃ）は、図４（Ｂ）に示したようにカメラ４００の画像から検出される人物の位置を、例えば水平平面の床面４１１に対して真上側の方向から投影した解析結果を表した図である。図４（Ｃ）に示す真上方向から投影する解析では、実際の三次元空間内の縦、横、高さ方向の三次元座標の情報が取得される。なお、三次元座標のうち高さ方向の座標は図の奥行き方向にあたるが、図４（Ｃ）では簡略化のために高さ方向についての図示を省略しており、真上から見た人物４２１，４２２の縦、横方向の三次元位置の関係のみを表している。
【００３６】
ここで、人物の身長および三次元位置の計算を行う場合には、まず基準面が設定される。図４の例の場合は、例えば水平平面である床面４１１を基準面として選択する。そして、事前の測定等により、カメラ４００の中心位置と基準面である床面４１１との間の位置および方向の関係が既知であるとする。また、カメラ４００における撮像素子の解像度、カメラ４００の画角、カメラ４００の向き（つまり光軸の方向）についても既知であるとする。この場合、カメラ４００により撮影された画像内の各画素の位置と、カメラ４００の画角内の実際の三次元位置（三次元座標）とは、一意的に対応している。このため、カメラ４００により撮影された画像内に写っている床面４１１上の各位置（画素位置）が、実際の三次元空間内の床面４１１上のどの三次元位置（三次元座標）に対応しているのかは、一意的に決定することができる。なお、床面４１１上の三次元位置は都度計算して求めてもよいし、カメラ４００の各画素の位置と三次元位置との関係を表す対応テーブルをデータベース２５０に用意しておき、その対応テーブルを用いて床面の三次元位置を取得するようにしてもよい。図４の例の場合、対応テーブルを用いることで、例えば図４（Ｂ）における画像内の床面４１１上の人物４２１の画素位置から、図４（Ｃ）における床面４１１上の人物４２１の三次元位置を取得することができる。
【００３７】
一方、図４の例において、基準面（床面４１１）とは高さが異なる床面４１２とカメラ４００との位置および方向の関係、さらに床面４１１と床面４１２との境界部分４１３およびその境界部分４１３とカメラ４００との位置および方向の関係は未知であるとする。なおこのような場合、基準面とは高さが異なる床面４１２の領域については、仮に、基準面の床面４１１から延長された床面として登録しておくことは可能である。この場合、床面４１２のジオメトリデータは、基準面である床面４１２のジオメトリを延長したデータとして、データベース２５０に格納しておくことも可能である。
【００３８】
本実施形態の監視システムでは、以上のような条件の下、カメラ１０１によりフレーム周期ごとの時間順で連続的に撮影された画像を用いて人物検出および追跡処理を実行する。
図４の例では、検出追跡部２１０により、人物４２１と人物４２２が画像から検知されて追跡されているとする。すなわち、検出追跡部２１０は、図３のフローチャートのＳ３１０において、それら人物のそれぞれ頭頂部の位置と足元の位置に相当する画素位置を特定する。なおこの時、それら人物の姿勢を検出し、人物の姿勢が直立姿勢であることを確認すれば、後述する身長算出の正確性が増すことができるためなおよい。
【００３９】
次に、前述したＳ３２０において、身長計算部２２１は、その検出された各人物の足元の位置に対応したジオメトリデータを取得し、さらに前述したＳ３３０において、それら人物の身長を算出する処理を行う。
【００４０】
図５は、カメラにより実際の人物５０５が撮影されている際の、カメラの中心位置５０２と実際の人物５０５との間の位置および方向の関係、および、カメラで撮影された画像５０３内に写っている人物５０１の一例を示した図である。
図５（Ａ）は、カメラによりフレーム周期ごとに撮影された画像のなかの一枚の画像５０３の一例を示している。また図５（Ｂ）は、カメラの中心位置５０２と実際の人物５０５との間の位置および方向の関係、および、カメラの仮想的な画像面（５０３）に対して人物５０５が投影された人物５０１を示している。また図５（Ｃ）は、カメラの中心位置５０２と実際の人物５０１との間の位置および方向と、人物の身長計算の際に用いられるジオメトリとの関係を表した図である。
【００４１】
前述の身長計算部２２１は、図５（Ｂ）に示したカメラの中心位置５０２と実際の人物５０５との間の位置および方向の関係、および図５（Ａ）に示した画像５０３内における人物５０１の各画素の位置等を基に、実際の人物５０５の身長を計算する。
【００４２】
一般的に、監視システム等で用いられるカメラは、上から見下ろす方向で人物等を撮影するように設置されることが多い。このため、図５（Ａ）および図５（Ｂ）に示すように、撮影された画像５０３内に写っている人物５０１の形は、カメラの仮想的な画像面（５０３）に対して実際の人物５０５が斜めに投影されたような形になる。したがって、画像５０３内における人物５０１の縦横比は、実際の人物５０５の縦横比とは異なっている。また画像５０３内における人物５０１の縦横比は、その人物がカメラの画角内のどの位置、つまりカメラの仮想的な画像面（５０３）上で光軸５０４からどの程度はなれた位置に存在しているかによって異なる。
【００４３】
これらのことから実際の人物５０５の身長を計算する際には、カメラの画角と、カメラの中心位置５０２から実際の人物５０５の足元位置までの距離と、カメラの光軸５０４の方向と、実世界の垂直方向（重力方向）とを考慮する必要がある。身長計算部２２１は、それらを考慮した上で、カメラの縦横解像度（撮像素子の縦と横の有効画素数）と、画像５０３内の人物５０１の足元位置から頭頂部までの長さ（画素数）とから、実際の人物５０５の身長を算出する。
【００４４】
ここで、図５（Ｂ）に示すようにカメラの縦横解像度は縦×横＝Ｈ×Ｗ（画素）であり、画像５０３内における人物５０１の足元位置から頭頂部までの長さはｋ（画素数）であるとする。また、図５（Ｃ）に示すように、カメラの仮想的な画像面（５０３）は光軸５０４に対して直交する面であり、カメラの中心位置５０２から実際の人物５０５の足元位置までの距離はＬであるとする。さらに、カメラの中心位置５０２から仮想的な画像面（５０３）上における人物５０１の足元位置までを結ぶ線分とカメラの光軸５０４との間の角度をδとし、また光軸５０４と実世界の垂直方向（重力方向）との間の角度をθとする。この場合、実際の人物５０５の身長ｌは、ヘロンの公式を用いて下記の式（１）により表される。
【００４５】
ｌ＝ｋ・ｃｏｓδ／ｃｏｓ（δ＋θ）      式（１）
【００４６】
なお、カメラのレンズは歪曲（Ｄｉｓｔｏｒｔｉｏｎ）等の収差を有することが多いため、画像に対しては予め収差を補正する処理を施しておくことが望ましい。また、実際の床面のジオメトリデータとしては様々な形態が考えられるが、本実施形態の場合、ジオメトリデータは、ある角度δにおいてカメラの中心位置５０２から実際の人物５０５の足元位置までの距離Ｌを演算等により特定可能なデータとなされている。したがって、角度δが判明すれば、ジオメトリデータにより距離Ｌを知ることができ、これにより実際の人物５０５の三次元位置を取得することができる。
【００４７】
以下、図６を用いて、カメラの画角内に基準面の床面とは高さが異なった床面が存在している場合において実際の人物の身長および三次元位置を計算する場合の問題点と、その問題点に対処するために本実施形態において行われる処理を詳細に説明する。
【００４８】
図６（Ａ）において、床面６０４は基準面を示し、床面６２４は基準面よりも高い面を示しているとする。したがって、図６（Ａ）の例の場合、ジオメトリデータは基準面である床面６０４に対応したデータになされている。また、実際の人物６２１は、床面６２４上に存在しており、図６の例では、実際の人物６２１の身長および三次元位置を計算するものとする。なお、図６（Ａ）に示した床面６２４は、図６（Ｂ）に示すように基準面の床面６０４に対して傾斜した床面であるとする。このため図６（Ｂ）に示すように、床面６２４上における人物６２１の位置が異なれば、その人物６２１の基準面（６０４）からの高さは異なる。
【００４９】
図６の例の場合、人物６２１が例えば基準面である床面６０４上に立っているのであれば、前述の図５（Ｃ）で説明したようにして人物６２１の正しい身長ｔを算出することが可能となる。
しかしながら、床面６２４は基準面（６０４）に対して傾斜しており、床面６２４上の人物６２１の足元位置は基準面（６０４）とは高さが異なる位置になっている。このため、基準面に対応したジオメトリデータを用いて人物６２１の身長を算出した場合、基準面の床面６０４上の人物６０１の身長ｔ'として算出されることになり、実際の人物６２１の身長ｔとは異なった値が取得されることになる。そして、三次元位置も同様に、基準面の床面６０４上の人物６０１の位置が算出されることになり、実際の人物６２１の床面２４１上の三次元位置に対し、カメラの光軸方向で奥側にずれた位置が算出される。なお前述した図４の例の場合、床面４１１上の人物４２１では実際の身長ｈが算出されるが、床面４１２上の人物４２２では実際より高い身長（人物４２３の身長）が算出され、三次元位置も実際の人物４２２の位置とは異なる三次元位置が算出される。
【００５０】
この時、実際の人物６２１の実際の身長ｔが事前に判明していれば、ジオメトリデータを用いて算出した身長ｔ'が実際の身長ｔとは異なっているかどうかを判断することができる。図６の例のように、身長ｔ'が身長ｔと異なっている場合、判定部２３０は、ジオメトリデータの信頼性が低いと判定することになる。また、判定部２３０は、ジオメトリデータを基に算出した身長ｔ'が実際の身長ｔより大きい場合、当該ジオメトリデータを用いて算出される三次元位置が、実際の人物の三次元位置よりもカメラの光軸方向の奥行き側（遠い方）にずれていると判断する。逆に、ジオメトリデータを基に算出した身長が実際の身長より小さい場合、判定部２３０は、ジオメトリデータを用いて算出される三次元位置が、実際の人物の三次元位置よりもカメラの光軸方向の手前側（近い方）にずれていると判断する。
【００５１】
そして、判定部２３０にてジオメトリデータの信頼性が低いと判定された場合、更新部２４０は、ジオメトリデータを基に算出される身長が事前に求めた既知の身長と一致するように、床面のジオメトリデータにおける床面の位置を補正する。例えば、判定部２３０にてジオメトリデータを基に算出した身長が実際の身長より大きいと判断された場合、更新部２４０は、ジオメトリデータにおける床面の位置を、基準面の床面の位置よりも、カメラの光軸方向で近い位置に移動させるように調整する。また例えば、判定部２３０にてジオメトリデータを基に算出した身長が実際の身長より小さいと判断された場合、更新部２４０は、ジオメトリデータにおける床面の位置を、基準面の床面の位置よりも、カメラの光軸方向で遠い位置に移動させるように調整する。このようなジオメトリデータにおける床面の位置を移動させる調整は、算出される身長が既知の身長と一致するようになるまで行われる。
【００５２】
その後、位置計算部２２２では、算出される身長が事前に求めた身長と一致するように調整した後のジオメトリデータを用いて、人物の三次元位置を再計算する。
このように、本実施形態では、算出される身長が既知の身長と一致するようにジオメトリデータの床面の位置を調整することにより、蓋然性の高いジオメトリデータの床面位置と人物の三次元位置を取得することができる。
【００５３】
また本実施形態の場合、図６（Ｂ）に示すように、人物６２１が移動している場合には、前述のようなジオメトリデータの調整を逐次行うことが可能である。これにより、もしも実際の床面が、図６（Ｂ）に示すように傾斜した床面６２４で構成されていても、その傾斜面の形状をトレースしたようなジオメトリデータの調整が可能となる。
更に、このように逐次調整することによって取得された複数のジオメトリデータの床面の位置を統計的に処理することで、より正確なジオメトリデータを取得することが可能となる。これにより、ジオメトリデータにおける床面の位置と人物の三次元位置の蓋然性をより高めることが可能となる。
【００５４】
前述した実施形態の手法は、人物の身長が既知であることが前提であるため、予め正しい身長を取得しておく必要がある。この場合、身長を含む人物の特徴量に関する情報を予めデータベース２５０に格納しておき、検出追跡部２１０が検出した人物に対して人物認識処理を行い、その人物の身長の情報をデータベース２５０から取得して利用するような手法が考えられる。
【００５５】
ただし、前述のような人物の特徴量に関するデータベースと人物認識システムとを備えていない監視システムも多い。このような場合には、以下に説明するように、人物の検出および追跡を行っている間に、身長の測定と三次元位置の補正を実施するような手法も考えられる。
【００５６】
この手法の場合、例えばカメラにより撮影される監視エリアの領域を、床面に対応したジオメトリデータが定義されている確定領域と、床面に対応したジオメトリデータが定義されていない未確定領域とに分けるようにする。確定領域は、例えば前述したような基準となる指標を用いたキャリブレーションを実施することでジオメトリデータが定義された領域とする。確定領域は、ジオメトリデータの信頼性が高い領域を表しており、ジオメトリデータに確定領域の情報を含めておくようにする。
【００５７】
例えば図４の場合、床面４１１の領域が確定領域となされて登録される。そして、例えば追跡している人物４２２がこの確定領域を通過した場合、当該確定領域に対応したジオメトリデータを用いて算出した身長は正確な身長の情報であるとして、当該人物４２２の追跡情報とともに保存しておくようにする。その後、この人物４２２が確定領域以外の領域（床面４１２の領域）を通過した場合、当該人物４２２の正確な身長の情報を用いてジオメトリデータの補正を行う。これにより、この補正されたジオメトリデータを用いることで、人物４２２の正しい三次元位置を算出することが可能となる。なお、ジオメトリデータの補正が行われた場合、人物の追跡情報を基に、その人物の追跡結果の動線を補正してもよい。また、前述の説明では、確定領域が一つの領域となっている例を挙げたが、確定領域は複数存在していてもよい。
【００５８】
また、通常、監視カメラは、より広い範囲を監視するために、複数台設定されることがある。このような場合、死角をなくすために、二つ以上の監視カメラ間において重複して撮影される領域が設定されることが多い。例えば図７（Ａ）に示すようにカメラ７０１とカメラ７０２が設置されており、カメラ７０１の撮影領域とカメラ７０２の撮影領域には重複領域７０３が設定されているとする。図７（Ｂ）は、カメラ７０１による画像７１１と、カメラ７０２による画像７１２とを示しており、それら画像７１１と画像７１２との間には重複領域７１３があるとする。ここで、カメラ７０１の座標とカメラ７０２の座標が事前に判明しているのであれば、重複領域７０３（７１３）においては三角測量方式による位置推定が可能となる。すなわち、重複領域７０３では、人物の位置を推定し、その位置を基に人物の身長を算出することが可能となる。したがって、図７の例の場合、重複領域（三角測量が可能な領域）において算出した人物の身長は正確な身長の情報であるとして、当該人物の追跡情報とともに保存しておくようにする。そして、この人物が重複領域以外の領域（未確定床面領域）を通過した場合、当該人物の正確な身長の情報を用いてジオメトリデータの補正を行う。これにより人物の正しい三次元位置を算出することが可能となる。
【００５９】
以上説明した実施形態では、画像内の人物の頭頂部から足元までの長さを基に身長を算出する例を挙げが、画像内の人物について、常に頭頂部と足元を検出できるとは限らない。例えば、図８（Ａ）に示すように、植木やパーティションなどの遮蔽物体８００により、カメラ８１０から人物８０１の足元および床面が見えないためそれらの位置が不明になる場合もあり得る。
【００６０】
このような場合、身長計算部２２１は、例えば人物の頭頂部や足元以外の特徴点を用いて、画像内における人物の身長や足元の位置を推定する。図８（Ａ）の人物８０１のように、カメラ８１０からは足元と床面が見えない場合、例えば人物８０１の腰部の位置などを基に人物８０１の身長と足元の位置を推定する。この場合、例えば人物８０１の全身が写っている際に、頭頂部位置から腰部位置までの長さと、頭頂部位置から足元位置までの長さ（身長）との比を、人物の特徴量として算出して、その人物と紐付けしてデータベース２５０等に格納しておくようにする。これにより、図８（Ａ）の人物８０１の場合、画像内に写っている頭頂部から腰部までの長さと、データベース２５０に格納された特徴量の情報とから、人物８０１の身長を算出することができる。例えば頭頂部から腰部までの長さが人物８０１の身長の略々半分であった場合、画像内の人物８０１の頭頂部位置から腰部位置までの長さを下方向に二倍に延長した位置に足元位置があると推定することができる。これにより、その推定した足元位置を基に身長を算出し、ジオメトリデータの補正や三次元位置の算出が可能となる。
【００６１】
また腰部の位置の他にも、例えば肩幅や、頭部の大きさ（頭部の縦の長さあるいは横の幅）など、人物における特徴的な人体箇所に基づいて身長を算出することも可能である。例えば、人物８０１の全身が写っている際に、肩幅あるいは頭部の大きさと、頭頂部位置から足元位置までの長さ（身長）との比を、人物の特徴量として算出して、その人物と紐付けしてデータベース２５０等に格納しておくようにする。これにより、図８（Ａ）の人物８０１について、画像内に写っている肩幅もしくは頭部の大きさと、データベース２５０に格納された特徴量の情報とから、人物８０１の足元位置を推定して身長を算出することができる。
【００６２】
前述した人物の身長以外の特徴量の情報を用いた身長の推定、三次元位置の算出手法を用いれば、人物の足元が見えていない場合でも、人物の身長と三次元位置を取得することが可能である。また、前述した人物の身長以外の特徴量についても、人物の身長と同様に、人物の検出および追跡中に大きく変化することはないと考えられる。したがって身長以外の特徴量を基に算出される身長、あるいは、頭頂部から腰部までの長さ、肩幅、頭部の大きさなどが例えば追跡中に大きく変化した場合には、ジオメトリの信頼性が低いと判定でき、この場合、前述同様にしてジオメトリデータを補正できる。
【００６３】
ただし、前述したような身長以外の特徴量を用いて推定された身長に基づいて調整したジオメトリの精度と信頼性は必ずしも高くないため、例えば、多人数を対象とした統計的処理を行うなど、精度と信頼性を高める処理を行うことが望ましい。例えば、多人数について推定した身長に基づいてジオメトリデータを調整した際の平均値を用いて、より正確なジオメトリを算出するような手法が考えられる。
【００６４】
本実施形態においては、以上説明したようにして正確な三次元位置を取得することで、例えば以下のようなアプリケーションを実現することも可能となる。
人物の追跡は三次元空間内で正確に行われるため、例えば店内における顧客の動きを記録したマーケティングなどに用いることが可能となる。また、複数の人物が存在する場合は、それら各人物の位置関係を取得することができ、それぞれ検出された各人物間の相対的な位置関係を正確に知ることができるので、複数の人物のグルーピングなどに用いることができる。また、一定領域の正確な面積と人の数を取得できるようになるため、人物の密度を測定することも可能となる。
【００６５】
また、本実施形態において取得される情報は、人物追跡時の問題として知られている交差判定の補助情報として利用できる。交差判定における問題とは、二人以上の人物の追跡時に人物が重なる場合があり、その後追跡情報が入れ替わってしまうという問題である。このような場合、二人の人物は一人としか検出されず、奥側の人物の追跡が途絶え、さらにその後の追跡で追跡対象が入れ替わる可能性もある。本実施形態によれば、人物を三次元空間上で追跡できるため、重なった二人の人物が奥にいるのか手前にいるのかを記録でき、追跡が途切れても追跡が途絶えた位置関係から人物の入れ替わりを容易に検知できる。
【００６６】
以上の例では、人物の追跡に関して説明したが、本実施形態の基本的な考えを利用すれば、人物以外の様々な対象物体の追跡等にも応用可能である。例えば、自動車、自転車、オートバイ、ショッピングカートなどの追跡例が考えられる。これらの対象物体は、人物よりも特徴量や特徴点の距離関係が明確であるため、例えば車であれば足元位置としてタイヤの位置を利用し、車長やタイヤ間の距離を用いることで、床面の情報の補正、つまり道路面に関するジオメトリデータの補正が可能となる。例えば対象物体が自動車である場合、画像内から自動車を検出して、その検出した自動車のタイヤ位置を算出し、その算出したタイヤ位置から当該自動車の車長やタイヤ間の距離を算出する。さらに、それら画像から算出した車長やタイヤ間距離と、既知の車長やタイヤ間の距離とを比較して、道路面に関するジオメトリデータの信頼性を判定する。そして、信頼性が低いと判定された場合には、当該道路面に関するジオメトリデータを、画像から算出した車長やタイヤ間距離と、既知の車長やタイヤ間の距離とが略々一致するように補正する。このように、本実施形態の基本的な考えを持ってすれば、様々な応用例が可能であり、したがって、実施形態は前述した例には限定はされない。
【００６７】
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６８】
前述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６９】
１０１：カメラ、１０１：解析用のＰＣ、１０３：対象物体、１１０：床、２１０：検出追跡部、２２１：身長計算部、２２２：位置計算部、２３０：判定部、２４０：更新部、２５０：データベース
【図１】
2020056644.tif 000003
【図２】
2020056644.tif 000004
【図３】
2020056644.tif 000005
【図４】
2020056644.tif 000006
【図５】
2020056644.tif 000007
【図６】
2020056644.tif 000008
【図７】
2020056644.tif 000009
【図８】
2020056644.tif 000010