(57)【特許請求の範囲】
【請求項１】
カメラにより得られる検出領域内の画素ごとに、当該カメラから測定対象までの距離を計測する計測部と、
前記測定対象が接地する平面に前記画素を写像した場合の画素位置と前記距離とを関連付けた第１距離情報と、前記画素位置において前記平面に対して垂直な高さ方向の距離を示す第２距離情報とを含む３次元データを画素ごとに格納する格納部と、
前記格納部に格納された３次元データから、閾値以内となる前記第２距離情報を含む３次元データのみ抽出し、当該抽出したデータに対してクラスタリングして、前記測定対象を含む画素領域を表す人候補領域をサンプリングフレームごとに得るクラスタリング部と、
前記クラスタリング部によりサンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、当該同一の人候補領域の移動軌跡を追跡する追跡部と、
前記追跡部の追跡結果に基づいて、前記人候補領域が予め当該人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部と、を具備することを特徴する人数カウンタ。
【請求項２】
前記クラスタリング部は、第１閾値以上の前記第２距離情報を有する３次元データを抽出してこれを第１抽出データとし、当該第１抽出データに対し第１クラスタリングを行って前記人候補領域ごとに当該人候補領域内の前記第２距離情報のうちの最大値を最大高さとして検出し、当該最大高さを上限として、当該最大高さから第２閾値までの高さ範囲を前記第１抽出データから抽出して第２抽出データを得、当該第２抽出データに対し第２クラスタリングを行うことを特徴とする請求項１に記載の人数カウンタ。
【請求項３】
前記測定対象の検出を行う検出部をさらに具備し、
前記検出部は、前記最大高さの前記第２距離情報を有する画素と当該画素の周辺画素とを含む画素領域の面積を示す第１画素面積が第３閾値範囲内であり、かつ前記最大高さの次に高い第２距離情報を有する画素と当該画素の周辺画素とを含む画素領域の面積を示す第２画素面積が第４閾値範囲内であり、前記第２画素面積および前記第１画素面積の第２距離情報の距離差が第５閾値範囲内であり、かつ前記第２画素面積が前記第１画素面積を中心として対称に存在する場合、前記第１画素面積および前記第２画素面積を人として検出することを特徴とする請求項２に記載の人数カウンタ。
【請求項４】
前記検出部は、前記第２画素面積が前記第１画素面積を中心として片側にのみ存在し、かつ前記最大高さが第６閾値よりも低い場合、前記第１画素面積および前記第２画素面積を小動物として検出することを特徴とする請求項３に記載の人数カウンタ。
【請求項５】
前記検出部は、前記第１画素面積が前記第３閾値範囲より大きい場合、前記第２画素面積が前記第４閾値範囲より大きい場合、または、前記第２画素面積および前記第１画素面積の第２距離情報の距離差が前記第５閾値より大きい場合のいずれか１つを満たすときは、前記第１画素面積および前記第２画素面積の少なくとも一方を荷物として検出することを特徴する請求項３または請求項４に記載の人数カウンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば出入り口を通過する人数をカメラの撮像画像情報をもとに検出する人数カウンタに関する。
【背景技術】
【０００２】
従来の人数カウンタは、部屋の出入り口にカメラを取り付け、その撮像画像情報から画像処理を用いて人物認識を行って人数をカウントしている（例えば、特許文献１を参照。）。また、カメラにより人物認識を行って人物を追跡し、逆行している人物や滞留している人物を検出している（例えば、特許文献２を参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−４９７１８号公報
【特許文献２】特開２００８−１９７９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の人数カウンタはカメラとして一般に輝度カメラを使用している。輝度カメラは、照射されている自然光の被写体像をレンズで集光し、ＣＣＤやＣＭＯＳセンサーなどのエリアセンサーの受光面で結像させることで映像を生成するもので、各画素から得られる情報は各画素に入射された輝度情報となる。このため、従来の人数カウンタでは、人物を認識する場合に、人物の服装が床などの背景と比較してコントラストが低いと人物と背景を分離することが困難となり、その結果精度良く人数をカウントすることができない。
【０００５】
本発明は、上述の課題を解決するためになされたものであり、輝度情報を利用する場合に比べ高精度な人物認識および人物追跡を行えるようにし、これにより精度よく人数をカウントすることができる人数カウンタを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明に係る人数カウンタは、カメラの検出領域内の画素ごとに、カメラにより得られる検出領域内の画素ごとに、当該カメラから測定対象までの距離を計測する計測部と、前記測定対象が接地する平面に前記画素を写像した場合の画素位置と前記距離とを関連付けた第１距離情報と、前記画素位置において前記平面に対して垂直な高さ方向の距離を示す第２距離情報とを含む３次元データを画素ごとに格納する格納部と、前記格納部に格納された３次元データから、閾値以内となる前記第２距離情報を含む３次元データのみ抽出し、抽出したデータに対してクラスタリングして、前記測定対象を含む画素領域を表す人候補領域をサンプリングフレームごとに得るクラスタリング部と、前記クラスタリング部によりサンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、当該同一の人候補領域の移動軌跡を追跡する追跡部と、前記追跡部の追跡結果に基づいて、前記人候補領域が予め当該人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部と、を具備することを特徴する。
【発明の効果】
【０００７】
本発明の人数カウンタによれば、人物と背景の輝度が同じである場合など輝度情報を利用する方法では識別できない状態においても、距離情報を用いることにより測定対象の輝度に依らず測定対象を識別することができ、より高精度な人物認識および人物追跡により精度よく人数をカウントすることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る人数カウンタを示すブロック図。
【図２】本実施形態に係る人数カウンタの動作を示すフローチャート。
【図３】本実施形態に係る検出領域を示す図。
【図４】人物データの一例を示す図。
【図５】人数のカウント領域を示す図。
【図６】追跡データの一例を示す図。
【図７】人候補領域の移動ベクトルを示す図。
【図８】本実施形態に係る人検出の動作を示すフローチャート。
【図９】人候補領域のクラスタリングの動作を示すフローチャート。
【図１０】検出領域において高さ閾値で抽出した人候補領域を示す図。
【図１１】高さ閾値に基づいてＸＹ平面へ写像しクラスタリングされた人候補領域を示す図。
【図１２】人候補領域の最大高さと所定の距離Ｄを説明する図。
【図１３】検出領域において距離Ｄで抽出した人候補領域を示す図。
【図１４】所定の距離Ｄに基づいてＸＹ平面へ写像しクラスタリングされた人候補領域を示す図。
【図１５】本実施形態に係る人追跡の動作を示すフローチャート。
【図１６】相関テーブルの一例を示す図。
【図１７】第２の実施形態に係る人特徴抽出の動作を示すフローチャート。
【図１８】人候補領域に含まれる測定対象が人である場合を示す図。
【図１９】人候補領域に含まれる測定対象が小動物である場合を示す図。
【図２０】人候補領域に含まれる測定対象が人および荷物である場合を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら本発明に係わる人数カウンタのいくつかの実施形態を詳細に説明する。なお、各実施形態では、同一の番号を付した部分については同様の動作をおこなうものとして、重ねての説明を省略する。  
（第１の実施形態）  
この発明の第１の実施形態に係る人数カウンタの構成について図１を参照して詳細に説明する。  
本実施形態に係る人数カウンタ１００は、レーザ発光部１０１と、パルス制御部１０２と、レーザ受光部１０３と、位相検出部１０４と、Ａ／Ｄ変換部１０５と、距離計測部１０６と、距離メモリ１０７と、振幅検出部１０８と、Ａ／Ｄ変換部１０９と、輝度計測部１１０と、輝度メモリ１１１と、ミラー１１２と、Ｘ軸制御部１１３と、Ｙ軸制御部１１４と、クラスタリング部１１５と、測定対象検出部１１６と、測定対象追跡部１１７と、人数カウント部１１８とを含む。  
なお、レーザ発光部１０１と、パルス制御部１０２と、レーザ受光部１０３と、位相検出部１０４と、Ａ／Ｄ変換部１０５と、距離計測部１０６と、距離メモリ１０７と、振幅検出部１０８と、Ａ／Ｄ変換部１０９と、輝度計測部１１０と、輝度メモリ１１１と、ミラー１１２と、Ｘ軸制御部１１３と、Ｙ軸制御部１１４とをまとめて距離カメラとも呼ぶ。
【００１０】
パルス制御部１０２は、レーザ発光部１０１から発光させるためにパルス状からなる制御信号を生成し、レーザ発光部１０１および位相検出部１０４へ送る。  
レーザ発光部１０１は、ＬＥＤ（Ｌｉｇｈｔ−Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）又はレーザダイオードからなり、パルス制御部１０２から制御信号を受け取り、光をパルス状に発生する。なお、レーザ発光部１０１は、主に赤外光を発生するレーザが考えられるが、これらＬＥＤやレーザダイオードに限らず他の発光素子でもよい。
【００１１】
レーザ受光部１０３は、レーザ発光部１０１が発した光の測定対象となる被写体による反射光を受光して光電変換によりパルス状のアナログ信号（以下、受信信号とも呼ぶ）を得る。また、レーザ受光部１０３に使われる受光素子として、例えばＰＤ（Ｐｈｏｔｏ  Ｄｉｏｄｅ）が考えられるが、これに限らず他の受光素子でもよい。
【００１２】
位相検出部１０４は、パルス制御部１０２から制御信号を、またレーザ受光部１０３からは受信信号をそれぞれ受け取る。そして、この受け取った制御信号と受信信号との位相差を検出し、この検出した位相差を表す位相信号を得る。位相信号はＤＣレベルで表されるアナログ信号からなる。
【００１３】
Ａ／Ｄ変換部１０５は、位相検出部１０４から位相信号を受け取り、ディジタル化を行いディジタル信号に変換する。アナログ−ディジタル変換は一般的に行われている手法を用いればよく、ここでの詳細な説明は省略する。
距離計測部１０６は、Ａ／Ｄ変換部１０５からディジタル信号を受け取り、距離カメラから測定対象までの距離を示す情報である距離情報を算出する。距離情報は次のように算出することができる。始めに、ディジタル信号を、レーザが測定対象に到達するまでにかかる時間の２倍に比例する数値に変換する。次に、この値に光速を乗じて２で割った値が距離情報となる。
【００１４】
距離メモリ１０７は、距離計測部１０６から距離情報を受け取る。またそれと共に、後述するＸ軸制御部１１３およびＹ軸制御部１１４から、ある画素を基準としてＸＹ平面座標に写像した場合の画素位置を示す情報である、Ｘ軸制御情報およびＹ軸制御情報を受け取る。そして、この受け取った距離情報とＸ軸制御情報及びＹ軸制御情報とを対応付けて格納する。ＸＹ平面座標は、測定対象が接地している平面である床面と平行な面とする。ここで、距離メモリ１０７は、例えばＲＡＭ、フラッシュメモリ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、レジスタ、ハードディスク、取外し可能ディスク、ＣＤ−ＲＯＭである。なお、これらの例に限らず、その技術分野で知られている記憶媒体であればよい。
【００１５】
振幅検出部１０８は、レーザ受光部１０３から受信信号を受け取り、受信信号のパルスの最大振幅を検出してその検出値を表すアナログ信号を得る。  
Ａ／Ｄ変換部１０９は、振幅検出部１０８から最大振幅の検出値を表すアナログ信号を受け取り、ディジタル化を行いディジタル信号に変換する。
【００１６】
輝度計測部１１０は、Ａ／Ｄ変換部１０９からディジタル信号を受け取り、測定対象の輝度に関する情報である輝度情報を算出する。  
輝度メモリ１１１は、輝度計測部１１０から輝度情報を受け取ると共に、Ｘ軸制御部１１３およびＹ軸制御部１１４からＸ軸制御情報およびＹ軸制御情報を受け取り、この受け取った輝度情報とＸ軸制御情報及びＹ軸制御情報とを対応付けて格納する。また、輝度メモリ１１１は、距離メモリ１０７同様、その技術分野で知られている記憶媒体であれば何でもよい。
【００１７】
ミラー１１２は、レーザ発光部１０１から照射されるレーザを反射させて、カメラの撮像可能な全画素位置（以下、検出領域とも呼ぶ）に対応するようにレーザの照射角度を調整する。また、照射角度の調整は、後述するＸ軸制御部１１３およびＹ軸制御部１１４から軸制御情報を受け取ることにより行われる。  
Ｘ軸制御部１１３およびＹ軸制御部１１４はそれぞれ、ミラー１１２に対して検出領域に対応する角度制御を行うためのＸ軸制御情報およびＹ軸制御情報を生成する。さらに、Ｘ軸制御部１１３およびＹ軸制御部１１４は、Ｘ軸制御情報およびＹ軸制御情報を距離メモリ１０７および輝度メモリ１１１へそれぞれ送る。Ｘ軸制御情報およびＹ軸制御情報は、例えば、検出領域にある画素をＸＹ平面座標における各点とみなして、（Ｘ、Ｙ）＝（２０００、１０００）のように表される。
【００１８】
クラスタリング部１１５は、距離メモリ１０７および輝度メモリ１１１からそれぞれ、各画素位置における距離情報および輝度情報を受け取り、測定対象に対して人候補領域を設定するためのクラスタリングを行い、領域始点および領域終点を求める。人候補領域は、人であると推定される測定対象を含み、かつ測定対象を表す画素領域よりも大きい画素領域である。  
なお、人候補領域の画素領域の大きさは、測定対象を表す画素領域が全て包含される領域であれば任意の画素領域でよい。領域始点および領域終点は、人候補領域を定める画素位置である。例えば、ＸＹ平面座標上で、領域始点が（Ｘ、Ｙ）＝（２０００、１０００）であり、領域終点が（Ｘ、Ｙ）＝（２３００、１１００）である場合、人候補領域は３００×１００の矩形領域を表す。なお、ここではＸＹ平面座標で人候補領域を指定しているが、３次元空間座標で人候補領域を指定してもよい。この場合、領域始点および領域終点は３つのパラメータで表される。人候補領域のクラスタリング方法については図１２および図１３を用いて後述する。
【００１９】
測定対象検出部１１６は、クラスタリング部１１５から領域始点および領域終点を受け取り、人候補領域から測定対象判定として人検出を行い、人物を特定する人物データを得る。  
測定対象追跡部１１７は、測定対象検出部１１６で得た人物データを時系列に検出することで人物追跡を行い、人物の移動軌跡を表すデータである追跡データを、検出した人数分作成する。
【００２０】
人数カウント部１１８は、測定対象追跡部１１７から追跡データを人数分受け取り、所定のカウント領域を通過した人数をカウントする。カウント領域は、検出領域内の任意の矩形領域であり、人候補領域の座標の追跡データをもとに、人候補領域がこの矩形領域を通過すれば通過人数を１人として計測する。
【００２１】
次に、人数カウンタ１００の動作について図２のフローチャートを用いて詳細に説明する。本実施形態における検出領域の一例として、図３に示す領域を検出領域としてサンプリングした場合を想定して、人数カウンタ１００の動作を説明する。  
図３では、測定対象となる、人物Ａ、人物Ｂおよび人物Ｃが３次元空間座標における検出領域内に存在する。このように、床面に人が直立している状態のときに、人が床面と接している画素位置から高さ方向（図３に示すように、Ｚ軸方向とも呼ぶ）にどれほど距離があるかを、距離メモリ１０７に格納している距離情報を用いて算出する。高さ方向の距離の算出方法は、一般的な手法であるためここでの詳細な説明は省略する。以下では、距離情報と、さらに画素位置から算出した高さ方向の距離と画素位置とを対応付けた情報を３次元データと呼ぶ。
【００２２】
始めに、ステップＳ２０１では、距離メモリ１０７からあるサンプリング時刻におけるサンプリングフレームに関する３次元データを取得する。  
続いて、ステップＳ２０２では、測定対象検出部１１６において、３次元データをもとに検出領域内で人であると推定される領域を表す人候補領域を検出し、その結果を表す人物データ１を生成する。また、検出した人数をＮｈ１とする。ステップＳ２０２で行う人検出方法については、図８および図９のフローチャートを参照して詳細に後述する。  
ステップＳ２０３では、人物データ１を取得してリストを生成する。リストは測定対象検出部１１６において保持してもよいし、外部にあるメモリに保存してもよい。
【００２３】
ここで、人物データのリストの一例を図４を参照して説明する。  
人物のインデックス、人物を検出した領域の最大高さ、最大高さ座標、時刻、人候補領域を表す領域の始点、および人候補領域を表す領域の終点を、１人の人物に関する人物データとしてリストを生成する。図４では、３人の人物の人物データが生成されており、例えばインデックスが１の人物データは、最大高さ（概算身長）が１７５ｃｍ、最大高さの位置する座標が（１０５０，２２５０）、検出した時刻が「１４：１０：３２」、人候補領域を表す領域始点が（１０００，２０００）、領域終点が（１１００，２５００）となっている。この場合の人候補領域は１００×５００である。このような人物データを検出人数Ｎｈ１分生成する。
【００２４】
ステップＳ２０４では、検出人数Ｎｈ１のうち、人物を少なくとも１人検出したか否かを判定し、人物を検出した場合はステップＳ２０５へ進み、人物を検出していない場合はステップＳ２０１へ戻り、上述したステップＳ２０１からステップＳ２０４までの処理を繰り返す。  
ステップＳ２０５では、人カウンタＮを「０」に初期化する。
【００２５】
次に、ステップＳ２０６からステップＳ２０８までの処理は、ステップＳ２０１からステップＳ２０３までの処理と同様である。すなわち、距離メモリ１０７から次のサンプリング時刻のサンプリングフレームに関する３次元データを取得して、人候補領域を検出し、その結果を表す人物データ２を検出人数Ｎｈ２分生成して、リストを生成する。  
ステップＳ２０９では、検出人数Ｎｈ２のうち人を少なくとも１人検出したか否かを判定し、人を検出した場合はステップＳ２１１へ進み、人を検出していない場合はステップＳ２１０で追跡データを「０」にクリアしたのちステップＳ２０１へ戻り、以後ステップＳ２０１からステップＳ２０９までの処理を繰り返す。
【００２６】
次に、ステップＳ２１１では、人物データ１と人物データ２との相関値から、人物の移動を追跡する。ステップＳ２１１の詳細な動作については、図１４を用いて詳細に後述する。  
ステップＳ２１２では、人がカウント領域を通過したか否かの判定を行う。通過判定は、カウント領域外にある人候補領域がカウント領域内に進入し、人候補領域が進入方向を維持したまま、再びカウント領域外に進んだ場合を、通過と判定する。人がカウント領域を通過したと判定した場合、ステップＳ２１３に進み、人数カウント部１１８において、人カウンタＮを１つインクリメントする。人がカウント領域を通過していないと判定した場合、ステップＳ２１４に進む。
【００２７】
通過判定の一例として図５を用いて詳細に説明する。  
図５は、検出領域の画素をＸＹ平面座標で表現しており、図３に示す３次元空間座標を上から見た（Ｚ＝０）図である。同図において、検出領域内には任意の矩形領域が設けられ、人候補領域はカウント領域外の上方の座標からカウント領域内を通過してカウント領域外の下方の座標に移動している。この状態を人物がその矩形領域を通過したと判定する。なお、図５の例では検出領域をＸＹ平面座標で考えているが、３次元空間でカウント領域を設けてもよい。
【００２８】
ステップＳ２１４では、人候補領域の座標を含む追跡データを保存する。追跡データの一例を図６および図７を用いて詳細に説明する。図６に示すように、追跡データには、図４に示すパラメータが時系列に沿って記録される。また、測定対象追跡部１１７において、同一の人物、すなわち人物インデックスが同じ人物を追跡中の場合、追跡フラグを「１」と設定する。これに対し、同一の人物を追跡していない場合には、追跡フラグを「０」と設定する。  
図６の例では、人物１および人物２は、追跡中の状態であるから追跡フラグを「１」と設定し、人物３は追跡していない状態にあるとして追跡フラグを「０」と設定している。この追跡データから図７のように人物の移動軌跡を表すことができる。また、移動軌跡の近似直線から人物の移動ベクトルを求めることができ、検出領域外のどの方向にどのような速度で向かったかという情報も算出することができる。
【００２９】
ステップＳ２１５では、図６に示す追跡データをもとに、人数カウント数、追跡軌跡および移動方向などの結果を出力する。  
最後にステップＳ２１６では、ステップＳ２０３で取得した人物データ１をステップＳ２０８で取得した人物データ２に置き換えて更新する。そして、その後新たなサンプリングフレームから人物データ１と比較する次の人物データ２を取得するためにステップＳ２０６へ戻り、ステップＳ２０６からステップＳ２１６までの同様の処理を繰り返す。上述した本実施形態における人数カウンタ１００の動作は、強制的に動作が終了するまで、例えば人数カウンタ１００の電源を切るまで継続する。
【００３０】
次に、ステップＳ２０２における人検出の流れについて図８のフローチャートを用いて詳細に説明する。  
始めにステップＳ８０１では、人候補領域のインデックスを示す変数である人候補領域Ｉｄｘを「１」に、検出領域の人物を数えるカウンタＮｈを「０」にそれぞれ初期化する。Ｎｈの値が最終的な検出人数を示す。  
ステップＳ８０２では、測定対象を人候補領域として一纏めにするためにクラスタリングを行う。人候補領域のクラスタリングは人検出を行うために必要な処理であり、人とそれ以外の領域を区別するために行う。
【００３１】
ここで、ステップＳ８０２における人候補領域のクラスタリング方法について、図９に示すフローチャートを用いて詳細に説明する。  
始めに、ステップＳ９０１では、３次元データの距離情報から高さ閾値ＬＬ以上の３次元データを抽出する。  
次に、ステップＳ９０２では、ステップＳ９０１で抽出した閾値以上の高さの範囲にある３次元データを、床平面を基準とする平面座標に写像する。つまり、床からの高さが高さ閾値ＬＬに満たないものは測定対象から除外される。
【００３２】
さらに、ステップＳ９０３では、各画素に対応する座標において、高さ閾値ＬＬより高い距離情報をもつ３次元データがあるか否かで全画素を２値に分類する。例えば、ある画素が持つ距離情報が高さ閾値ＬＬと同じ距離情報であれば、その画素を「０」と設定し、距離情報が高さ閾値ＬＬよりも高い距離情報であれば「１」に設定する。このように２値に分類した各画素を纏めて、粗い人候補領域を生成する。このステップＳ９０３における粗い人候補領域の生成を、ここでは第１クラスタリングと呼ぶ。また、この時生成された人候補領域の総数をＮｍａｘとする。例えば、人候補領域が３つある場合、Ｎｍａｘは「３」となる。また人候補領域を検出すると、人候補領域Ｉｄｘにインデックスを１から順番に割り振る。
【００３３】
ステップＳ９０４では、ステップＳ９０３で処理された人候補領域Ｉｄｘを１つ取り出す。  
ステップＳ９０５では、ステップＳ９０４で抽出した人候補領域の３次元データの中で最大の高さである最大高さＬｍａｘを検出する。  
ステップＳ９０６では、人候補領域に対して、最大高さＬｍａｘから、所定の距離Ｄだけ低いＬｍｉｎを算出する。なお、距離Ｄは、例えば人の上半身部分が抽出できるように設定すればよい。すなわち、最大高さＬｍａｘに比例して距離Ｄの長さを調節すればよい。
【００３４】
ステップＳ９０７では、人候補領域の３次元データをＬｍａｘからＬｍｉｎまでの高さ範囲でデータを抽出する。  
ステップＳ９０８では、ステップＳ９０７で抽出されたデータを床面へ写像する。  
ステップＳ９０９では、Ｌｍｉｎより高い距離情報をもつ３次元データがあるか否かで全画素を２値に分類し、分類した各画素を纏めて再び人候補領域を生成する第２クラスタリングをおこなう。
【００３５】
ステップＳ９１０では、これらの処理で得られた人候補領域Ｉｄｘを保存する。  
ステップＳ９１１では、人候補領域Ｉｄｘのインデックスをインクリメントする。  
ステップＳ９１２では、人候補領域Ｉｄｘのインデックスが人候補領域の総数Ｎｍａｘよりも多いか否かを判定し、ＩｄｘがＮｍａｘ以下である場合、ステップＳ９０４に戻り、ステップＳ９０４からステップＳ９１０までの処理を繰り返す。ＩｄｘがＮｍａｘよりも多い場合、ステップＳ９０３でクラスタリングした人候補領域全てについてステップＳ９０４からステップＳ９０９までの処理を行ったことを意味するので、人候補領域のクラスタリングの処理を終了する。
【００３６】
ここで、人候補領域のクラスタリング処理について図１０から図１３を用いて詳細に説明する。  
３次元データの領域に対して、高さ方向について高さ閾値ＬＬ以上を抽出すると、図１０のようになる。高さ閾値ＬＬは一例として、人物の膝より上の高さを抽出できるように設定している。
【００３７】
抽出した人候補領域を、床平面を基準とする平面座標に写像した図を図１１に示す。図３の３次元空間座標をＸＹ平面座標上に写像した図であり、ＸＹ平面座標に表される各画素には、その画素位置における高さ方向の距離情報を有する。すなわち、斜線部分が３次元データから求められる高さ閾値ＬＬから距離差がある画素の領域であり、測定対象の部分である。また、破線で示した矩形の領域が人候補領域であり、測定対象を含みかつ測定対象よりも大きい画素の領域を取る。これは、測定対象の動作により、サンプリングフレームによって測定対象の形状が異なることが考えられ、１つのサンプリングフレームの形状（例えば、図１１の斜線部分）だけを基準とすると、他のサンプリングフレームにおいて同一の人物であると判定することが難しくなるからである。
次に、図１２に示すように、１つの人候補領域を抽出し、人候補領域の高さ方向に最大高さＬｍａｘを検索し、Ｌｍａｘから高さ方向に距離Ｄだけ低いＬｍｉｎを算出する。さらに、全ての人候補領域に対してそれぞれＬｍｉｎを算出する。  
図１０に示す各人物に対して、ＬｍａｘとＬｍｉｎとの範囲で３次元データを抽出した図を図１３に示す。平面の基準（高さ方向Ｚ＝０の平面）としてＬｍｉｎを用いて、再び人候補領域を設定している。このように距離Ｄを設定することで、人物の身長が異なっても、人物の頭から相対距離Ｄだけ低い高さでデータを抽出することができ、身長差などの影響を除くことができる。
【００３８】
この人候補領域をＬｍｉｎの高さを基準とした平面に写像した図を図１４に示す。  
図１１に示す第１クラスタリング処理のみでは、足および腕などの距離情報が検出されることにより、測定対象ごとに斜線部分の形状が統一されないが、図１４に示す第２クラスタリング処理を行うことで、人物のそれぞれに対して距離Ｄを頭から胸部までに設定することができ、足、腕などの距離情報が検出される影響を低減して統一された測定対象の形状を得ることができる。
【００３９】
ここで、図８のステップＳ８０３に戻ると、ステップＳ８０２において人候補領域のクラスタリング処理を行った後の、人候補領域Ｉｄｘを取り出す。  
ステップＳ８０４では、この人候補領域の面積が予め設定した最小の面積Ｓｍｉｎよりも大きいか否かを判定する。面積Ｓｍｉｎの値は、人候補領域を写像した領域に基づいて、例えば各人候補領域から平均値を算出することにより設定する。面積Ｓｍｉｎよりも人候補領域の面積が小さい場合、ステップＳ８０９に進む。一方、面積Ｓｍｉｎよりも人候補領域の面積が大きい場合、ステップＳ８０５へ進む。
【００４０】
ステップＳ８０５では、抽出した人候補領域が人である可能性が高いものとして人候補領域に対して人特徴検出を行い、その人候補領域を人と判定する。判定方法としては、例えば、人候補領域の中心に平均して最大高さＬｍａｘを持つ画素領域があり、最大高さＬｍａｘを持つ画素領域を中心として、周辺の画素領域がＬｍａｘよりも高さが低く、かつ左右対称な距離情報を持つと判定されたとする。この場合、Ｌｍａｘを持つ画素周辺が頭部に、周辺画素が肩に対応して人候補領域に含まれる測定対象は人であると判定することができる。
【００４１】
ステップＳ８０６は、ステップＳ８０５において人特徴検出ができたか否かを判定し、人特徴が検出できない場合、ステップＳ８０９に進む。一方、人特徴が検出できた場合、ステップＳ８０７に進み、人数カウンタＮｈをインクリメントする。  
ステップＳ８０８では、人候補領域Ｉｄｘが人特徴検出によって人であると判定されたため、この人候補領域Ｉｄｘを人物Ｉｄｘと決定する。
【００４２】
ステップＳ８０９では、抽出した人候補領域は人ではないと判定して人候補領域Ｉｄｘを削除する。  
ステップＳ８１０では、人候補領域Ｉｄｘをインクリメントする。  
ステップＳ８１１では、人候補領域Ｉｄｘが人候補領域数Ｎｍａｘよりも大きいか否かを判定する。人候補領域ＩｄｘがＮｍａｘ以下の場合、ステップＳ８０３に戻り、ステップＳ８０３からステップＳ８１１までの処理を繰り返す。一方、人候補領域ＩｄｘがＮｍａｘよりも大きい場合、ステップＳ８１２へ進み、人物データを保存する。以上のステップによって人検出処理を終了する。
【００４３】
次に、図２に示す人追跡（ステップＳ２１１）の処理動作について図１５のフローチャートを用いて詳細に説明する。  
始めに、ステップＳ１５０１では、図２のステップＳ２０２およびステップＳ２０７において検出した、人物Ｉｄｘ１および人物Ｉｄｘ２を初期化して、人物Ｉｄｘ１および人物Ｉｄｘ２の初期値を「１」に設定する。  
次に、ステップＳ１５０２では、人物データ１の人物Ｉｄｘ１を取り出す。
【００４４】
ステップＳ１５０３では、人物Ｉｄｘ１と人物Ｉｄｘ２との相関値を格納する変数Ｖ、最大の相関値を格納する変数Ｖｍａｘ、人物データ２の人物のインデックスを格納する変数ＭａｎＩｄｘを用意し、「０」に初期化する。  
ステップＳ１５０４では、人物データ２の人物Ｉｄｘ２から順番に人物のインデックスを１人ずつ取り出す。
【００４５】
ステップＳ１５０５では、人物Ｉｄｘ１と人物Ｉｄｘ２との相関値をＶに格納する。相関値は、人候補のクラスタリングを行った際に分離した人候補領域の形状で相関値を取る方法や、領域内の最大高さＬｍａｘとＬｍｉｎとで抽出した３次元データを使用した方法などがあげられる。例えば、人候補領域間の形状から相関値を求める方法としては正規化相関法がある。正規化相関によるマッチングでは、検出領域内で人物Ｉｄｘ１の人候補領域を１画素ずつずらしながら、次のサンプリングフレームにおいて取得した人物Ｉｄｘ２うちの１人の人物インデックスの人候補領域と、お互いの距離情報の相関値を計算し、最大の相関値が得られる画素位置に人候補領域が存在するとみなして最大の相関値を得る。  
なお、距離情報の相関値のみではなく、図１の輝度メモリに格納されている輝度情報を用いることにより輝度の濃淡データも出力できるので、人候補領域に相当する濃淡データを使用して上述した正規化相関法により相関値を算出してもよい。
ステップＳ１５０６では、相関値ＶがＶｍａｘよりも大きいか否かを判定し、ＶがＶｍａｘよりも大きい場合はステップＳ１５０７へ進み、ＶがＶｍａｘ以下の場合はステップＳ１５０８に進む。  
ステップＳ１５０７では、ＶｍａｘをステップＳ１５０５で格納した相関値Ｖに置き換えて更新し、ＭａｎＩｄｘを人物データ２の人物Ｉｄｘ２に置き換えて更新する。  
ステップＳ１５０８では、人物Ｉｄｘ２を１だけインクリメントする。
【００４６】
ステップＳ１５０９では、人物Ｉｄｘ２が検出人数Ｎｈ２よりも大きいか否かを判定する。人物Ｉｄｘ２が検出人数Ｎｈ２よりも大きい場合、１人の人物Ｉｄｘ１に対し、図２のステップＳ２０７において検出された人数Ｎｈ２分の処理を終了したためステップＳ１５１０へ進む。一方、人物Ｉｄｘ２が検出人数Ｎｈ２以下である場合、残りの人物の処理を行うためステップＳ１５０４へ戻りステップＳ１５０４からステップＳ１５０９までの処理を繰り返す。
【００４７】
ステップＳ１５１０では、Ｖｍａｘが最小相関値よりも大きいか否かを判定する。最小相関値は予め最適な値を設定しておく。Ｖｍａｘが最小相関値よりも大きい場合、人物Ｉｄｘ１と同一の人物と判定される人物Ｉｄｘ２が存在するため、ステップＳ１５１１において相関テーブルを更新する。一方、Ｖｍａｘが最小相関値以下の場合、ステップＳ１５１３へ進む。相関テーブルは、人物データ１の人物が人物データ２の人物とどのような相関値を示すかを記録したものである。
【００４８】
相関テーブルの一例を図１６を用いて詳細に説明する。相関テーブルには、人物データ１の人物インデックスと、そのインデックスの人物と最大の相関値を持つ人物データ２中の人物インデックスと、その最大相関値とを関連付けて格納する。Ｎｏ．３にある人物データ１のインデックス３の人物は、人物データ２中に存在する複数の人物との相関値が低く、該当する人物がいないために、人物データ２の人物インデックスと、人物データ２の最大相関値とが「０」になっている。つまり、人物データ１の検出人数Ｎｈ１が３人、人物データ２の検出人数Ｎｈ２が２人になり、検出領域から人物が１人いなくなることを示している。
【００４９】
ステップＳ１５１２では、人物データ１のインデックスである人物Ｉｄｘ１を１つインクリメントする。  
ステップＳ１５１３では、人物Ｉｄｘ１が検出人数Ｎｈ１より大きいか否かを判定し、人物Ｉｄｘ１が検出人数Ｎｈ１より大きい場合、図２のステップＳ２０２の処理において検出されたＮｈ１人分の処理を終えたため、ステップＳ１５１４へ進む。一方、人物Ｉｄｘ１が検出人数Ｎｈ１以下である場合、まだ処理の終えていない人物Ｉｄｘ１が存在するため、ステップＳ１５０２へ戻り、未処理の人物Ｉｄｘ１についてステップＳ１５０２からステップＳ１５１３の処理を繰り返す。
【００５０】
ステップＳ１５１４では、上述した追跡データを更新する。  
ステップＳ１５１５では、人物Ｉｄｘ１の人数が人物Ｉｄｘ２の人数よりも多いか否かを判定する。人物Ｉｄｘ１の人数が人物Ｉｄｘ２の人数よりも多い場合、ステップＳ１５１６へ進み、相関テーブルから相関値の低い人物Ｉｄｘ１の追跡停止を決定し、図６に示すような追跡データの追跡フラグをゼロに設定し、人追跡処理を終了する。一方、人物Ｉｄｘ１の人数が人物Ｉｄｘ２の人数以下である場合、ステップＳ１５１７へ進む。
【００５１】
ステップＳ１５１７では、人物Ｉｄｘ１の人数が人物Ｉｄｘ２の人数よりも少ないか否かを判定する。人物Ｉｄｘ１の人数が人物Ｉｄｘ２の人数よりも小さい場合、ステップＳ１５１８に進み、人物追跡を新たに開始し、図６に示す追跡データに新たなデータを加える。一方、人物Ｉｄｘ１の人数が人物Ｉｄｘ２の人数より多い、すなわち、ステップＳ１５１５との関係から人物Ｉｄｘ１の人数と人物Ｉｄｘ２の人数とが等しい場合、人物データ２に含まれる検出人数に対して処理を終えたことを示すため、人追跡処理を終了する。
【００５２】
以上に示した第１の実施形態によれば、距離情報を用いて測定対象をクラスタリングすることにより、輝度情報を利用する方法よりも高精度な人物認識および人物追跡を行うことができ、精度よく人数カウントが可能となる。
（第２の実施形態）  
この発明の第２の実施形態は、図８の人検出処理における人特徴検出（ステップＳ８０５）に以下の判断を用いることにより、人候補領域に含まれる測定対象が人であるか、あるいは、犬または猫などの小動物であるかを判定し、さらに人が荷物を運んでいる状態であっても人と荷物の分離判定を高精度に行い、さらに人の概算身長や、荷物の高さなどを測定することを特徴とする。
【００５３】
測定対象の判定処理について図１７のフローチャート、および図１８から図２０を用いて詳細に説明する。図１８から図２０に示すように、本実施形態に係る人数カウンタ１００は、人数カウンタ１００に係るレーザ発光部１０１およびレーザ受光部１０３を天井１８０１に設置し、天井１８０１から床１８０２に向かって人候補領域を測定する。さらに、人数カウンタ１００の出力をモニタ部１８０４およびカウンタ表示部１８０５に表示する。表示方法としては、例えばモニタ部１８０４には距離情報および輝度情報をそれぞれ出力して表示させ、カウンタ表示部１８０５には人数カウント部１１８からの検出人数を表示させる方法が用いられる。距離情報および輝度情報は、人数カウント部１１８からまとめて外部に出力されてもよいし、距離メモリ１０７および輝度メモリ１１１からそれぞれ抽出して外部に出力されてもよい。
【００５４】
始めに、ステップＳ１７０１では、検出領域内の画素ごとの距離情報から垂直距離Ｈｎを算出する。  
垂直距離Ｈｎの算出は、レーザ発光部１０１およびレーザ受光部１０３から床１８０２までの距離Ａｎと、レーザ発光部１０１およびレーザ受光部１０３から床１８０２に下ろした垂線からの角度θｎとから（式１）により求められる。  
Ｈｎ＝Ａｎ・ｃｏｓθｎ             （式１）  
（ｎ＝１，２，３，…，ｎ−１，ｎ：測定対象の周辺の床に相当する画素）
次に、ステップＳ１７０２では、画素ごとの距離のばらつきを低減するため、周辺画素を数個まとめて垂直距離Ｈｎの平均値Ｈを(式２)により算出する。  
Ｈ＝（ΣＨｎ）／ｎ         （式２）  
ステップＳ１７０３では、最短距離Ｊｍｎのインデックスであるｍの初期値を「１」に設定する。最短距離Ｊｍｎとは、検出領域内において、レーザ発光部１０１およびレーザ受光部１０３から測定対象までの距離のうち１番短い距離を指す。また、ｍが「１」の場合は最短距離を持つ画素集合であり、ｍが「２」の場合は最短距離を持つ画素を除いて次に最も距離が短い画素集合であることを表す。
【００５５】
ステップＳ１７０４では、床１８０２までの距離を有する画素以外に、最短距離を未検出の画素があるか否かを判定する。この判定の結果、未検出の画素がある場合にはステップＳ１７０６へ進み、未検出の画素がない場合には測定対象の判定処理を終了する。  
ステップＳ１７０５では、未検出の画素のうち、最短距離Ｊｍｎの距離情報をもつ画素を検出し、さらにその周辺画素についても検出する。周辺画素の算出方法は、垂直距離Ｈｎの算出方法と同様に（式１）を用いて計算すればよい。
【００５６】
ステップＳ１７０６では、(式２)を用いて垂直距離Ｈｎと同様に平均した最短距離Ｊｍを算出する。なお、最短距離Ｊｍがわかれば測定対象が人である場合、人の概算身長Ｌも(式３)より求めることができる。  
Ｌ＝Ｈ−Ｊ               （式３）  
ステップＳ１７０７では、最短距離Ｊｍを含む周辺画素で表される画素領域の面積（画素面積とも呼ぶ）が閾値以内であるか否かの判定を行う。画素面積が閾値以内である場合、人または小動物の頭部である可能性が高いとして、ステップＳ１７０９へ進む。一方、画素面積が閾値よりも大きい場合にはステップＳ１７０８へ進む。
【００５７】
ステップＳ１７０８では、画素面積で表される領域を人の頭部ではなく荷物であると判定する。その後、ｍをインクリメントしてステップＳ１７０４へ戻り、ステップＳ１７０４からステップＳ１７０７までの処理を繰り返し行う。  
ステップＳ１７０９では、Ｊｍの次に距離が短い距離情報を持つ画素とその周辺画素とを算出し、（式２）を用いて同様に平均化した距離Ｊｍ＋１を算出する。  
ステップＳ１７１０では、距離Ｊｍ＋１である画素面積が閾値以内であり、かつ距離Ｊｍと距離Ｊｍ＋１との距離差が閾値以内であるか否かを判定する。２つの条件を満たす場合、ステップＳ１７１１へ進み、距離Ｊｍである画素面積を頭部認識部分とし、距離Ｊｍ＋１である画素面積を頭部周辺肩認識部分とする。一方、少なくとも１つの条件を満たさない場合は、ステップＳ１７０８へ進み、ＪｍおよびＪｍ＋１である画素面積は荷物であると判定する。
【００５８】
ステップＳ１７１２では、頭部認識した画素面積を中心として、頭部周辺肩認識部分の画素面積が左右対称に存在するか否かを判定する。画素面積が左右対称に存在する場合、ステップＳ１７１３へ進む。一方、画素面積が左右対称に存在しない場合、ステップＳ１７１４へ進む。  
ステップＳ１７１３では、頭部周辺肩認識部分が人の肩に対応すると考えられるため、距離Ｊｍおよび距離Ｊｍ＋１である画素面積は人であると判定する。その後、ｍをインクリメントして、ステップＳ１７０４へ戻り、上述した処理を行う。  
ステップＳ１７１４では、頭部周辺の肩認識部分が頭部認識部分の片側に存在し、さらにその画素面積が閾値より大きければ、距離Ｊｍおよび距離Ｊｍ＋１である画素面積は人ではなく小動物であると判定する。その後、ｍをインクリメントして、ステップＳ１７０４へ戻り、上述の処理を行う。
【００５９】
ここで、測定対象が人である場合の特徴検出の一例を図１８を用いて説明する。  
図１８（ａ）は、天井１８０１に設置したレーザ発光部１０１およびレーザ受光部１０３の真下に人１８０３が存在する状態を表し、図１８（ｂ）は、図１８（ａ）を真横から見た高さ方向の距離情報を表した図である。また、レーザ発光部１０１およびレーザ受光部１０３による検出領域はモニタ部１８０４のように表される。図１８（ｂ）に示すように、この検出領域に対して、最短距離Ｊｍである画素面積（頭部認識部分）を中心に、次に距離が短い画素を含む画素面積（頭部周辺肩認識部分）が左右対称に存在しているため、最短距離Ｊである画素面積が頭部、次に距離の短い画素面積が人の肩に該当することがわかる。よって、図１７に示した人特徴検出処理により測定対象が人１８０３であることが判定できる。
【００６０】
次に、測定対象が犬または猫などの小動物である場合を図１９を用いて説明する。  
（ａ）は小動物１９０１が距離カメラの真下に存在する状態である。（ｂ）に示すように、頭部認識部分に対して、頭部周辺肩認識部分が片側にのみ存在し、かつ頭部周辺肩認識部分が人である場合と比較して長いため、小動物１９０１と判定する。  
さらに、最短距離Ｊが人よりも長い、つまり、概算身長Ｌが低く、かつ頭部周辺肩認識部分において、肩の中心と頭部の中心が偏ったものは犬または猫などとすることで、小動物の分類ができる。例えば、Ｌが１ｍ以内は犬、Ｌが０．５ｍ以内は猫とするような閾値を予めもたせることで犬と猫とを区別することができる。
【００６１】
次に、人と台車等荷物と分離判定について図２０を用いて説明する。  
（ａ）は、測定対象として人２００１が台車を押して荷物２００２を運んでいる状態を示している。分離判定手順として、始めに、最短距離Ｊ１の画素を検出し、次に距離の短いＪ２の画素を検出する。図１７に示すステップＳ１７０７からステップＳ１７１３までの処理により、距離Ｊ１および距離Ｊ２の部分は人２００１であると判定する。  
さらに、人２００１であると認識した画素面積以外の画素の中で、最短距離Ｊ３を有する画素を検出する。距離Ｊ３である画素を含む画素集合は、図１７のステップＳ１７０７によりＪ３である画素面積が閾値範囲より大きいと判定されるか、ステップＳ１７１１により周辺に肩に相当する部分がないと判定されるため、荷物２００２であると判定される。なお、小動物が頭を下げている場合も荷物として判定される可能性があるが、その場合は人特徴検出処理をある期間継続して判定を行い、随時更新すればよい。
【００６２】
以上に示した第２の実施形態によれば、測定対象が人であるか、あるいは、犬または猫などの小動物であるかを判定することができ、さらに人が荷物を運んでいる状態であっても人と荷物の分離判定を高精度に行うことが可能であり、さらに人の概算身長や荷物の高さなどを測定できる。
【００６３】
なお、本発明は上記各実施形態そのままに限定されるものではなく、各実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００６４】
１００・・・人数カウンタ、１０１・・・レーザ発光部、１０２・・・パルス制御部、１０３・・・レーザ受光部、１０４・・・位相検出部、１０５、１０９・・・Ａ／Ｄ変換部、１０６・・・距離計測部、１０７・・・距離メモリ、１０８・・・振幅検出部、１１０・・・輝度計測部、１１１・・・輝度メモリ、１１２・・・ミラー、１１３・・・Ｘ軸制御部、１１４・・・Ｙ軸制御部、１１５・・・クラスタリング部、１１６・・・測定対象検出部、１１７・・・測定対象追跡部、１１８・・・人数カウント部、１８０１・・・天井、１８０２・・・床、１８０３、２００１・・・人、１８０４・・・モニタ部、１８０５・・・カウンタ表示部、１９０１・・・小動物、２００２・・・荷物。
【図１】
0005396192.tif 000002
【図２】
0005396192.tif 000003
【図３】
0005396192.tif 000004
【図４】
0005396192.tif 000005
【図５】
0005396192.tif 000006
【図６】
0005396192.tif 000007
【図７】
0005396192.tif 000008
【図８】
0005396192.tif 000009
【図９】
0005396192.tif 000010
【図１０】
0005396192.tif 000011
【図１１】
0005396192.tif 000012
【図１２】
0005396192.tif 000013
【図１３】
0005396192.tif 000014
【図１４】
0005396192.tif 000015
【図１５】
0005396192.tif 000016
【図１６】
0005396192.tif 000017
【図１７】
0005396192.tif 000018
【図１８】
0005396192.tif 000019
【図１９】
0005396192.tif 000020
【図２０】
0005396192.tif 000021