人数カウンタ
【課題】高精度な人物認識および人物追跡により精度よく人数をカウントできる。
【解決手段】画素ごとに、カメラから測定対象までの距離を計測する計測部106と、測定対象が接地する平面に画素を写像した場合の画素位置と距離とを関連付けた距離情報と、画素位置において平面に対して垂直な高さ方向の距離を示す距離情報とを含む3次元データを画素ごとに格納する格納部107と、3次元データから、閾値以内となる距離情報を含む3次元データのみ抽出してクラスタリングし、人候補領域をサンプリングフレームごとに得るクラスタリング部115と、サンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、同一の人候補領域の移動軌跡を追跡する追跡部117と、人候補領域が予め人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部118と、を具備する。
【解決手段】画素ごとに、カメラから測定対象までの距離を計測する計測部106と、測定対象が接地する平面に画素を写像した場合の画素位置と距離とを関連付けた距離情報と、画素位置において平面に対して垂直な高さ方向の距離を示す距離情報とを含む3次元データを画素ごとに格納する格納部107と、3次元データから、閾値以内となる距離情報を含む3次元データのみ抽出してクラスタリングし、人候補領域をサンプリングフレームごとに得るクラスタリング部115と、サンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、同一の人候補領域の移動軌跡を追跡する追跡部117と、人候補領域が予め人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部118と、を具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば出入り口を通過する人数をカメラの撮像画像情報をもとに検出する人数カウンタに関する。
【背景技術】
【0002】
従来の人数カウンタは、部屋の出入り口にカメラを取り付け、その撮像画像情報から画像処理を用いて人物認識を行って人数をカウントしている(例えば、特許文献1を参照。)。また、カメラにより人物認識を行って人物を追跡し、逆行している人物や滞留している人物を検出している(例えば、特許文献2を参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−49718号公報
【特許文献2】特開2008−197946号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の人数カウンタはカメラとして一般に輝度カメラを使用している。輝度カメラは、照射されている自然光の被写体像をレンズで集光し、CCDやCMOSセンサーなどのエリアセンサーの受光面で結像させることで映像を生成するもので、各画素から得られる情報は各画素に入射された輝度情報となる。このため、従来の人数カウンタでは、人物を認識する場合に、人物の服装が床などの背景と比較してコントラストが低いと人物と背景を分離することが困難となり、その結果精度良く人数をカウントすることができない。
【0005】
本発明は、上述の課題を解決するためになされたものであり、輝度情報を利用する場合に比べ高精度な人物認識および人物追跡を行えるようにし、これにより精度よく人数をカウントすることができる人数カウンタを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述の課題を解決するため、本発明に係る人数カウンタは、カメラの検出領域内の画素ごとに、カメラにより得られる検出領域内の画素ごとに、当該カメラから測定対象までの距離を計測する計測部と、前記測定対象が接地する平面に前記画素を写像した場合の画素位置と前記距離とを関連付けた第1距離情報と、前記画素位置において前記平面に対して垂直な高さ方向の距離を示す第2距離情報とを含む3次元データを画素ごとに格納する格納部と、前記格納部に格納された3次元データから、閾値以内となる前記第2距離情報を含む3次元データのみ抽出し、抽出したデータに対してクラスタリングして、前記測定対象を含む画素領域を表す人候補領域をサンプリングフレームごとに得るクラスタリング部と、前記クラスタリング部によりサンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、当該同一の人候補領域の移動軌跡を追跡する追跡部と、前記追跡部の追跡結果に基づいて、前記人候補領域が予め当該人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部と、を具備することを特徴する。
【発明の効果】
【0007】
本発明の人数カウンタによれば、人物と背景の輝度が同じである場合など輝度情報を利用する方法では識別できない状態においても、距離情報を用いることにより測定対象の輝度に依らず測定対象を識別することができ、より高精度な人物認識および人物追跡により精度よく人数をカウントすることが可能となる。
【図面の簡単な説明】
【0008】
【図1】本実施形態に係る人数カウンタを示すブロック図。
【図2】本実施形態に係る人数カウンタの動作を示すフローチャート。
【図3】本実施形態に係る検出領域を示す図。
【図4】人物データの一例を示す図。
【図5】人数のカウント領域を示す図。
【図6】追跡データの一例を示す図。
【図7】人候補領域の移動ベクトルを示す図。
【図8】本実施形態に係る人検出の動作を示すフローチャート。
【図9】人候補領域のクラスタリングの動作を示すフローチャート。
【図10】検出領域において高さ閾値で抽出した人候補領域を示す図。
【図11】高さ閾値に基づいてXY平面へ写像しクラスタリングされた人候補領域を示す図。
【図12】人候補領域の最大高さと所定の距離Dを説明する図。
【図13】検出領域において距離Dで抽出した人候補領域を示す図。
【図14】所定の距離Dに基づいてXY平面へ写像しクラスタリングされた人候補領域を示す図。
【図15】本実施形態に係る人追跡の動作を示すフローチャート。
【図16】相関テーブルの一例を示す図。
【図17】第2の実施形態に係る人特徴抽出の動作を示すフローチャート。
【図18】人候補領域に含まれる測定対象が人である場合を示す図。
【図19】人候補領域に含まれる測定対象が小動物である場合を示す図。
【図20】人候補領域に含まれる測定対象が人および荷物である場合を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら本発明に係わる人数カウンタのいくつかの実施形態を詳細に説明する。なお、各実施形態では、同一の番号を付した部分については同様の動作をおこなうものとして、重ねての説明を省略する。
(第1の実施形態)
この発明の第1の実施形態に係る人数カウンタの構成について図1を参照して詳細に説明する。
本実施形態に係る人数カウンタ100は、レーザ発光部101と、パルス制御部102と、レーザ受光部103と、位相検出部104と、A/D変換部105と、距離計測部106と、距離メモリ107と、振幅検出部108と、A/D変換部109と、輝度計測部110と、輝度メモリ111と、ミラー112と、X軸制御部113と、Y軸制御部114と、クラスタリング部115と、測定対象検出部116と、測定対象追跡部117と、人数カウント部118とを含む。
なお、レーザ発光部101と、パルス制御部102と、レーザ受光部103と、位相検出部104と、A/D変換部105と、距離計測部106と、距離メモリ107と、振幅検出部108と、A/D変換部109と、輝度計測部110と、輝度メモリ111と、ミラー112と、X軸制御部113と、Y軸制御部114とをまとめて距離カメラとも呼ぶ。
【0010】
パルス制御部102は、レーザ発光部101から発光させるためにパルス状からなる制御信号を生成し、レーザ発光部101および位相検出部104へ送る。
レーザ発光部101は、LED(Light−Emitting Diode)又はレーザダイオードからなり、パルス制御部102から制御信号を受け取り、光をパルス状に発生する。なお、レーザ発光部101は、主に赤外光を発生するレーザが考えられるが、これらLEDやレーザダイオードに限らず他の発光素子でもよい。
【0011】
レーザ受光部103は、レーザ発光部101が発した光の測定対象となる被写体による反射光を受光して光電変換によりパルス状のアナログ信号(以下、受信信号とも呼ぶ)を得る。また、レーザ受光部103に使われる受光素子として、例えばPD(Photo Diode)が考えられるが、これに限らず他の受光素子でもよい。
【0012】
位相検出部104は、パルス制御部102から制御信号を、またレーザ受光部103からは受信信号をそれぞれ受け取る。そして、この受け取った制御信号と受信信号との位相差を検出し、この検出した位相差を表す位相信号を得る。位相信号はDCレベルで表されるアナログ信号からなる。
【0013】
A/D変換部105は、位相検出部104から位相信号を受け取り、ディジタル化を行いディジタル信号に変換する。アナログ−ディジタル変換は一般的に行われている手法を用いればよく、ここでの詳細な説明は省略する。
距離計測部106は、A/D変換部105からディジタル信号を受け取り、距離カメラから測定対象までの距離を示す情報である距離情報を算出する。距離情報は次のように算出することができる。始めに、ディジタル信号を、レーザが測定対象に到達するまでにかかる時間の2倍に比例する数値に変換する。次に、この値に光速を乗じて2で割った値が距離情報となる。
【0014】
距離メモリ107は、距離計測部106から距離情報を受け取る。またそれと共に、後述するX軸制御部113およびY軸制御部114から、ある画素を基準としてXY平面座標に写像した場合の画素位置を示す情報である、X軸制御情報およびY軸制御情報を受け取る。そして、この受け取った距離情報とX軸制御情報及びY軸制御情報とを対応付けて格納する。XY平面座標は、測定対象が接地している平面である床面と平行な面とする。ここで、距離メモリ107は、例えばRAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、取外し可能ディスク、CD−ROMである。なお、これらの例に限らず、その技術分野で知られている記憶媒体であればよい。
【0015】
振幅検出部108は、レーザ受光部103から受信信号を受け取り、受信信号のパルスの最大振幅を検出してその検出値を表すアナログ信号を得る。
A/D変換部109は、振幅検出部108から最大振幅の検出値を表すアナログ信号を受け取り、ディジタル化を行いディジタル信号に変換する。
【0016】
輝度計測部110は、A/D変換部109からディジタル信号を受け取り、測定対象の輝度に関する情報である輝度情報を算出する。
輝度メモリ111は、輝度計測部110から輝度情報を受け取ると共に、X軸制御部113およびY軸制御部114からX軸制御情報およびY軸制御情報を受け取り、この受け取った輝度情報とX軸制御情報及びY軸制御情報とを対応付けて格納する。また、輝度メモリ111は、距離メモリ107同様、その技術分野で知られている記憶媒体であれば何でもよい。
【0017】
ミラー112は、レーザ発光部101から照射されるレーザを反射させて、カメラの撮像可能な全画素位置(以下、検出領域とも呼ぶ)に対応するようにレーザの照射角度を調整する。また、照射角度の調整は、後述するX軸制御部113およびY軸制御部114から軸制御情報を受け取ることにより行われる。
X軸制御部113およびY軸制御部114はそれぞれ、ミラー112に対して検出領域に対応する角度制御を行うためのX軸制御情報およびY軸制御情報を生成する。さらに、X軸制御部113およびY軸制御部114は、X軸制御情報およびY軸制御情報を距離メモリ107および輝度メモリ111へそれぞれ送る。X軸制御情報およびY軸制御情報は、例えば、検出領域にある画素をXY平面座標における各点とみなして、(X、Y)=(2000、1000)のように表される。
【0018】
クラスタリング部115は、距離メモリ107および輝度メモリ111からそれぞれ、各画素位置における距離情報および輝度情報を受け取り、測定対象に対して人候補領域を設定するためのクラスタリングを行い、領域始点および領域終点を求める。人候補領域は、人であると推定される測定対象を含み、かつ測定対象を表す画素領域よりも大きい画素領域である。
なお、人候補領域の画素領域の大きさは、測定対象を表す画素領域が全て包含される領域であれば任意の画素領域でよい。領域始点および領域終点は、人候補領域を定める画素位置である。例えば、XY平面座標上で、領域始点が(X、Y)=(2000、1000)であり、領域終点が(X、Y)=(2300、1100)である場合、人候補領域は300×100の矩形領域を表す。なお、ここではXY平面座標で人候補領域を指定しているが、3次元空間座標で人候補領域を指定してもよい。この場合、領域始点および領域終点は3つのパラメータで表される。人候補領域のクラスタリング方法については図12および図13を用いて後述する。
【0019】
測定対象検出部116は、クラスタリング部115から領域始点および領域終点を受け取り、人候補領域から測定対象判定として人検出を行い、人物を特定する人物データを得る。
測定対象追跡部117は、測定対象検出部116で得た人物データを時系列に検出することで人物追跡を行い、人物の移動軌跡を表すデータである追跡データを、検出した人数分作成する。
【0020】
人数カウント部118は、測定対象追跡部117から追跡データを人数分受け取り、所定のカウント領域を通過した人数をカウントする。カウント領域は、検出領域内の任意の矩形領域であり、人候補領域の座標の追跡データをもとに、人候補領域がこの矩形領域を通過すれば通過人数を1人として計測する。
【0021】
次に、人数カウンタ100の動作について図2のフローチャートを用いて詳細に説明する。本実施形態における検出領域の一例として、図3に示す領域を検出領域としてサンプリングした場合を想定して、人数カウンタ100の動作を説明する。
図3では、測定対象となる、人物A、人物Bおよび人物Cが3次元空間座標における検出領域内に存在する。このように、床面に人が直立している状態のときに、人が床面と接している画素位置から高さ方向(図3に示すように、Z軸方向とも呼ぶ)にどれほど距離があるかを、距離メモリ107に格納している距離情報を用いて算出する。高さ方向の距離の算出方法は、一般的な手法であるためここでの詳細な説明は省略する。以下では、距離情報と、さらに画素位置から算出した高さ方向の距離と画素位置とを対応付けた情報を3次元データと呼ぶ。
【0022】
始めに、ステップS201では、距離メモリ107からあるサンプリング時刻におけるサンプリングフレームに関する3次元データを取得する。
続いて、ステップS202では、測定対象検出部116において、3次元データをもとに検出領域内で人であると推定される領域を表す人候補領域を検出し、その結果を表す人物データ1を生成する。また、検出した人数をNh1とする。ステップS202で行う人検出方法については、図8および図9のフローチャートを参照して詳細に後述する。
ステップS203では、人物データ1を取得してリストを生成する。リストは測定対象検出部116において保持してもよいし、外部にあるメモリに保存してもよい。
【0023】
ここで、人物データのリストの一例を図4を参照して説明する。
人物のインデックス、人物を検出した領域の最大高さ、最大高さ座標、時刻、人候補領域を表す領域の始点、および人候補領域を表す領域の終点を、1人の人物に関する人物データとしてリストを生成する。図4では、3人の人物の人物データが生成されており、例えばインデックスが1の人物データは、最大高さ(概算身長)が175cm、最大高さの位置する座標が(1050,2250)、検出した時刻が「14:10:32」、人候補領域を表す領域始点が(1000,2000)、領域終点が(1100,2500)となっている。この場合の人候補領域は100×500である。このような人物データを検出人数Nh1分生成する。
【0024】
ステップS204では、検出人数Nh1のうち、人物を少なくとも1人検出したか否かを判定し、人物を検出した場合はステップS205へ進み、人物を検出していない場合はステップS201へ戻り、上述したステップS201からステップS204までの処理を繰り返す。
ステップS205では、人カウンタNを「0」に初期化する。
【0025】
次に、ステップS206からステップS208までの処理は、ステップS201からステップS203までの処理と同様である。すなわち、距離メモリ107から次のサンプリング時刻のサンプリングフレームに関する3次元データを取得して、人候補領域を検出し、その結果を表す人物データ2を検出人数Nh2分生成して、リストを生成する。
ステップS209では、検出人数Nh2のうち人を少なくとも1人検出したか否かを判定し、人を検出した場合はステップS211へ進み、人を検出していない場合はステップS210で追跡データを「0」にクリアしたのちステップS201へ戻り、以後ステップS201からステップS209までの処理を繰り返す。
【0026】
次に、ステップS211では、人物データ1と人物データ2との相関値から、人物の移動を追跡する。ステップS211の詳細な動作については、図14を用いて詳細に後述する。
ステップS212では、人がカウント領域を通過したか否かの判定を行う。通過判定は、カウント領域外にある人候補領域がカウント領域内に進入し、人候補領域が進入方向を維持したまま、再びカウント領域外に進んだ場合を、通過と判定する。人がカウント領域を通過したと判定した場合、ステップS213に進み、人数カウント部118において、人カウンタNを1つインクリメントする。人がカウント領域を通過していないと判定した場合、ステップS214に進む。
【0027】
通過判定の一例として図5を用いて詳細に説明する。
図5は、検出領域の画素をXY平面座標で表現しており、図3に示す3次元空間座標を上から見た(Z=0)図である。同図において、検出領域内には任意の矩形領域が設けられ、人候補領域はカウント領域外の上方の座標からカウント領域内を通過してカウント領域外の下方の座標に移動している。この状態を人物がその矩形領域を通過したと判定する。なお、図5の例では検出領域をXY平面座標で考えているが、3次元空間でカウント領域を設けてもよい。
【0028】
ステップS214では、人候補領域の座標を含む追跡データを保存する。追跡データの一例を図6および図7を用いて詳細に説明する。図6に示すように、追跡データには、図4に示すパラメータが時系列に沿って記録される。また、測定対象追跡部117において、同一の人物、すなわち人物インデックスが同じ人物を追跡中の場合、追跡フラグを「1」と設定する。これに対し、同一の人物を追跡していない場合には、追跡フラグを「0」と設定する。
図6の例では、人物1および人物2は、追跡中の状態であるから追跡フラグを「1」と設定し、人物3は追跡していない状態にあるとして追跡フラグを「0」と設定している。この追跡データから図7のように人物の移動軌跡を表すことができる。また、移動軌跡の近似直線から人物の移動ベクトルを求めることができ、検出領域外のどの方向にどのような速度で向かったかという情報も算出することができる。
【0029】
ステップS215では、図6に示す追跡データをもとに、人数カウント数、追跡軌跡および移動方向などの結果を出力する。
最後にステップS216では、ステップS203で取得した人物データ1をステップS208で取得した人物データ2に置き換えて更新する。そして、その後新たなサンプリングフレームから人物データ1と比較する次の人物データ2を取得するためにステップS206へ戻り、ステップS206からステップS216までの同様の処理を繰り返す。上述した本実施形態における人数カウンタ100の動作は、強制的に動作が終了するまで、例えば人数カウンタ100の電源を切るまで継続する。
【0030】
次に、ステップS202における人検出の流れについて図8のフローチャートを用いて詳細に説明する。
始めにステップS801では、人候補領域のインデックスを示す変数である人候補領域Idxを「1」に、検出領域の人物を数えるカウンタNhを「0」にそれぞれ初期化する。Nhの値が最終的な検出人数を示す。
ステップS802では、測定対象を人候補領域として一纏めにするためにクラスタリングを行う。人候補領域のクラスタリングは人検出を行うために必要な処理であり、人とそれ以外の領域を区別するために行う。
【0031】
ここで、ステップS802における人候補領域のクラスタリング方法について、図9に示すフローチャートを用いて詳細に説明する。
始めに、ステップS901では、3次元データの距離情報から高さ閾値LL以上の3次元データを抽出する。
次に、ステップS902では、ステップS901で抽出した閾値以上の高さの範囲にある3次元データを、床平面を基準とする平面座標に写像する。つまり、床からの高さが高さ閾値LLに満たないものは測定対象から除外される。
【0032】
さらに、ステップS903では、各画素に対応する座標において、高さ閾値LLより高い距離情報をもつ3次元データがあるか否かで全画素を2値に分類する。例えば、ある画素が持つ距離情報が高さ閾値LLと同じ距離情報であれば、その画素を「0」と設定し、距離情報が高さ閾値LLよりも高い距離情報であれば「1」に設定する。このように2値に分類した各画素を纏めて、粗い人候補領域を生成する。このステップS903における粗い人候補領域の生成を、ここでは第1クラスタリングと呼ぶ。また、この時生成された人候補領域の総数をNmaxとする。例えば、人候補領域が3つある場合、Nmaxは「3」となる。また人候補領域を検出すると、人候補領域Idxにインデックスを1から順番に割り振る。
【0033】
ステップS904では、ステップS903で処理された人候補領域Idxを1つ取り出す。
ステップS905では、ステップS904で抽出した人候補領域の3次元データの中で最大の高さである最大高さLmaxを検出する。
ステップS906では、人候補領域に対して、最大高さLmaxから、所定の距離Dだけ低いLminを算出する。なお、距離Dは、例えば人の上半身部分が抽出できるように設定すればよい。すなわち、最大高さLmaxに比例して距離Dの長さを調節すればよい。
【0034】
ステップS907では、人候補領域の3次元データをLmaxからLminまでの高さ範囲でデータを抽出する。
ステップS908では、ステップS907で抽出されたデータを床面へ写像する。
ステップS909では、Lminより高い距離情報をもつ3次元データがあるか否かで全画素を2値に分類し、分類した各画素を纏めて再び人候補領域を生成する第2クラスタリングをおこなう。
【0035】
ステップS910では、これらの処理で得られた人候補領域Idxを保存する。
ステップS911では、人候補領域Idxのインデックスをインクリメントする。
ステップS912では、人候補領域Idxのインデックスが人候補領域の総数Nmaxよりも多いか否かを判定し、IdxがNmax以下である場合、ステップS904に戻り、ステップS904からステップS910までの処理を繰り返す。IdxがNmaxよりも多い場合、ステップS903でクラスタリングした人候補領域全てについてステップS904からステップS909までの処理を行ったことを意味するので、人候補領域のクラスタリングの処理を終了する。
【0036】
ここで、人候補領域のクラスタリング処理について図10から図13を用いて詳細に説明する。
3次元データの領域に対して、高さ方向について高さ閾値LL以上を抽出すると、図10のようになる。高さ閾値LLは一例として、人物の膝より上の高さを抽出できるように設定している。
【0037】
抽出した人候補領域を、床平面を基準とする平面座標に写像した図を図11に示す。図3の3次元空間座標をXY平面座標上に写像した図であり、XY平面座標に表される各画素には、その画素位置における高さ方向の距離情報を有する。すなわち、斜線部分が3次元データから求められる高さ閾値LLから距離差がある画素の領域であり、測定対象の部分である。また、破線で示した矩形の領域が人候補領域であり、測定対象を含みかつ測定対象よりも大きい画素の領域を取る。これは、測定対象の動作により、サンプリングフレームによって測定対象の形状が異なることが考えられ、1つのサンプリングフレームの形状(例えば、図11の斜線部分)だけを基準とすると、他のサンプリングフレームにおいて同一の人物であると判定することが難しくなるからである。
次に、図12に示すように、1つの人候補領域を抽出し、人候補領域の高さ方向に最大高さLmaxを検索し、Lmaxから高さ方向に距離Dだけ低いLminを算出する。さらに、全ての人候補領域に対してそれぞれLminを算出する。
図10に示す各人物に対して、LmaxとLminとの範囲で3次元データを抽出した図を図13に示す。平面の基準(高さ方向Z=0の平面)としてLminを用いて、再び人候補領域を設定している。このように距離Dを設定することで、人物の身長が異なっても、人物の頭から相対距離Dだけ低い高さでデータを抽出することができ、身長差などの影響を除くことができる。
【0038】
この人候補領域をLminの高さを基準とした平面に写像した図を図14に示す。
図11に示す第1クラスタリング処理のみでは、足および腕などの距離情報が検出されることにより、測定対象ごとに斜線部分の形状が統一されないが、図14に示す第2クラスタリング処理を行うことで、人物のそれぞれに対して距離Dを頭から胸部までに設定することができ、足、腕などの距離情報が検出される影響を低減して統一された測定対象の形状を得ることができる。
【0039】
ここで、図8のステップS803に戻ると、ステップS802において人候補領域のクラスタリング処理を行った後の、人候補領域Idxを取り出す。
ステップS804では、この人候補領域の面積が予め設定した最小の面積Sminよりも大きいか否かを判定する。面積Sminの値は、人候補領域を写像した領域に基づいて、例えば各人候補領域から平均値を算出することにより設定する。面積Sminよりも人候補領域の面積が小さい場合、ステップS809に進む。一方、面積Sminよりも人候補領域の面積が大きい場合、ステップS805へ進む。
【0040】
ステップS805では、抽出した人候補領域が人である可能性が高いものとして人候補領域に対して人特徴検出を行い、その人候補領域を人と判定する。判定方法としては、例えば、人候補領域の中心に平均して最大高さLmaxを持つ画素領域があり、最大高さLmaxを持つ画素領域を中心として、周辺の画素領域がLmaxよりも高さが低く、かつ左右対称な距離情報を持つと判定されたとする。この場合、Lmaxを持つ画素周辺が頭部に、周辺画素が肩に対応して人候補領域に含まれる測定対象は人であると判定することができる。
【0041】
ステップS806は、ステップS805において人特徴検出ができたか否かを判定し、人特徴が検出できない場合、ステップS809に進む。一方、人特徴が検出できた場合、ステップS807に進み、人数カウンタNhをインクリメントする。
ステップS808では、人候補領域Idxが人特徴検出によって人であると判定されたため、この人候補領域Idxを人物Idxと決定する。
【0042】
ステップS809では、抽出した人候補領域は人ではないと判定して人候補領域Idxを削除する。
ステップS810では、人候補領域Idxをインクリメントする。
ステップS811では、人候補領域Idxが人候補領域数Nmaxよりも大きいか否かを判定する。人候補領域IdxがNmax以下の場合、ステップS803に戻り、ステップS803からステップS811までの処理を繰り返す。一方、人候補領域IdxがNmaxよりも大きい場合、ステップS812へ進み、人物データを保存する。以上のステップによって人検出処理を終了する。
【0043】
次に、図2に示す人追跡(ステップS211)の処理動作について図15のフローチャートを用いて詳細に説明する。
始めに、ステップS1501では、図2のステップS202およびステップS207において検出した、人物Idx1および人物Idx2を初期化して、人物Idx1および人物Idx2の初期値を「1」に設定する。
次に、ステップS1502では、人物データ1の人物Idx1を取り出す。
【0044】
ステップS1503では、人物Idx1と人物Idx2との相関値を格納する変数V、最大の相関値を格納する変数Vmax、人物データ2の人物のインデックスを格納する変数ManIdxを用意し、「0」に初期化する。
ステップS1504では、人物データ2の人物Idx2から順番に人物のインデックスを1人ずつ取り出す。
【0045】
ステップS1505では、人物Idx1と人物Idx2との相関値をVに格納する。相関値は、人候補のクラスタリングを行った際に分離した人候補領域の形状で相関値を取る方法や、領域内の最大高さLmaxとLminとで抽出した3次元データを使用した方法などがあげられる。例えば、人候補領域間の形状から相関値を求める方法としては正規化相関法がある。正規化相関によるマッチングでは、検出領域内で人物Idx1の人候補領域を1画素ずつずらしながら、次のサンプリングフレームにおいて取得した人物Idx2うちの1人の人物インデックスの人候補領域と、お互いの距離情報の相関値を計算し、最大の相関値が得られる画素位置に人候補領域が存在するとみなして最大の相関値を得る。
なお、距離情報の相関値のみではなく、図1の輝度メモリに格納されている輝度情報を用いることにより輝度の濃淡データも出力できるので、人候補領域に相当する濃淡データを使用して上述した正規化相関法により相関値を算出してもよい。
ステップS1506では、相関値VがVmaxよりも大きいか否かを判定し、VがVmaxよりも大きい場合はステップS1507へ進み、VがVmax以下の場合はステップS1508に進む。
ステップS1507では、VmaxをステップS1505で格納した相関値Vに置き換えて更新し、ManIdxを人物データ2の人物Idx2に置き換えて更新する。
ステップS1508では、人物Idx2を1だけインクリメントする。
【0046】
ステップS1509では、人物Idx2が検出人数Nh2よりも大きいか否かを判定する。人物Idx2が検出人数Nh2よりも大きい場合、1人の人物Idx1に対し、図2のステップS207において検出された人数Nh2分の処理を終了したためステップS1510へ進む。一方、人物Idx2が検出人数Nh2以下である場合、残りの人物の処理を行うためステップS1504へ戻りステップS1504からステップS1509までの処理を繰り返す。
【0047】
ステップS1510では、Vmaxが最小相関値よりも大きいか否かを判定する。最小相関値は予め最適な値を設定しておく。Vmaxが最小相関値よりも大きい場合、人物Idx1と同一の人物と判定される人物Idx2が存在するため、ステップS1511において相関テーブルを更新する。一方、Vmaxが最小相関値以下の場合、ステップS1513へ進む。相関テーブルは、人物データ1の人物が人物データ2の人物とどのような相関値を示すかを記録したものである。
【0048】
相関テーブルの一例を図16を用いて詳細に説明する。相関テーブルには、人物データ1の人物インデックスと、そのインデックスの人物と最大の相関値を持つ人物データ2中の人物インデックスと、その最大相関値とを関連付けて格納する。No.3にある人物データ1のインデックス3の人物は、人物データ2中に存在する複数の人物との相関値が低く、該当する人物がいないために、人物データ2の人物インデックスと、人物データ2の最大相関値とが「0」になっている。つまり、人物データ1の検出人数Nh1が3人、人物データ2の検出人数Nh2が2人になり、検出領域から人物が1人いなくなることを示している。
【0049】
ステップS1512では、人物データ1のインデックスである人物Idx1を1つインクリメントする。
ステップS1513では、人物Idx1が検出人数Nh1より大きいか否かを判定し、人物Idx1が検出人数Nh1より大きい場合、図2のステップS202の処理において検出されたNh1人分の処理を終えたため、ステップS1514へ進む。一方、人物Idx1が検出人数Nh1以下である場合、まだ処理の終えていない人物Idx1が存在するため、ステップS1502へ戻り、未処理の人物Idx1についてステップS1502からステップS1513の処理を繰り返す。
【0050】
ステップS1514では、上述した追跡データを更新する。
ステップS1515では、人物Idx1の人数が人物Idx2の人数よりも多いか否かを判定する。人物Idx1の人数が人物Idx2の人数よりも多い場合、ステップS1516へ進み、相関テーブルから相関値の低い人物Idx1の追跡停止を決定し、図6に示すような追跡データの追跡フラグをゼロに設定し、人追跡処理を終了する。一方、人物Idx1の人数が人物Idx2の人数以下である場合、ステップS1517へ進む。
【0051】
ステップS1517では、人物Idx1の人数が人物Idx2の人数よりも少ないか否かを判定する。人物Idx1の人数が人物Idx2の人数よりも小さい場合、ステップS1518に進み、人物追跡を新たに開始し、図6に示す追跡データに新たなデータを加える。一方、人物Idx1の人数が人物Idx2の人数より多い、すなわち、ステップS1515との関係から人物Idx1の人数と人物Idx2の人数とが等しい場合、人物データ2に含まれる検出人数に対して処理を終えたことを示すため、人追跡処理を終了する。
【0052】
以上に示した第1の実施形態によれば、距離情報を用いて測定対象をクラスタリングすることにより、輝度情報を利用する方法よりも高精度な人物認識および人物追跡を行うことができ、精度よく人数カウントが可能となる。
(第2の実施形態)
この発明の第2の実施形態は、図8の人検出処理における人特徴検出(ステップS805)に以下の判断を用いることにより、人候補領域に含まれる測定対象が人であるか、あるいは、犬または猫などの小動物であるかを判定し、さらに人が荷物を運んでいる状態であっても人と荷物の分離判定を高精度に行い、さらに人の概算身長や、荷物の高さなどを測定することを特徴とする。
【0053】
測定対象の判定処理について図17のフローチャート、および図18から図20を用いて詳細に説明する。図18から図20に示すように、本実施形態に係る人数カウンタ100は、人数カウンタ100に係るレーザ発光部101およびレーザ受光部103を天井1801に設置し、天井1801から床1802に向かって人候補領域を測定する。さらに、人数カウンタ100の出力をモニタ部1804およびカウンタ表示部1805に表示する。表示方法としては、例えばモニタ部1804には距離情報および輝度情報をそれぞれ出力して表示させ、カウンタ表示部1805には人数カウント部118からの検出人数を表示させる方法が用いられる。距離情報および輝度情報は、人数カウント部118からまとめて外部に出力されてもよいし、距離メモリ107および輝度メモリ111からそれぞれ抽出して外部に出力されてもよい。
【0054】
始めに、ステップS1701では、検出領域内の画素ごとの距離情報から垂直距離Hnを算出する。
垂直距離Hnの算出は、レーザ発光部101およびレーザ受光部103から床1802までの距離Anと、レーザ発光部101およびレーザ受光部103から床1802に下ろした垂線からの角度θnとから(式1)により求められる。
Hn=An・cosθn (式1)
(n=1,2,3,…,n−1,n:測定対象の周辺の床に相当する画素)
次に、ステップS1702では、画素ごとの距離のばらつきを低減するため、周辺画素を数個まとめて垂直距離Hnの平均値Hを(式2)により算出する。
H=(ΣHn)/n (式2)
ステップS1703では、最短距離Jmnのインデックスであるmの初期値を「1」に設定する。最短距離Jmnとは、検出領域内において、レーザ発光部101およびレーザ受光部103から測定対象までの距離のうち1番短い距離を指す。また、mが「1」の場合は最短距離を持つ画素集合であり、mが「2」の場合は最短距離を持つ画素を除いて次に最も距離が短い画素集合であることを表す。
【0055】
ステップS1704では、床1802までの距離を有する画素以外に、最短距離を未検出の画素があるか否かを判定する。この判定の結果、未検出の画素がある場合にはステップS1706へ進み、未検出の画素がない場合には測定対象の判定処理を終了する。
ステップS1705では、未検出の画素のうち、最短距離Jmnの距離情報をもつ画素を検出し、さらにその周辺画素についても検出する。周辺画素の算出方法は、垂直距離Hnの算出方法と同様に(式1)を用いて計算すればよい。
【0056】
ステップS1706では、(式2)を用いて垂直距離Hnと同様に平均した最短距離Jmを算出する。なお、最短距離Jmがわかれば測定対象が人である場合、人の概算身長Lも(式3)より求めることができる。
L=H−J (式3)
ステップS1707では、最短距離Jmを含む周辺画素で表される画素領域の面積(画素面積とも呼ぶ)が閾値以内であるか否かの判定を行う。画素面積が閾値以内である場合、人または小動物の頭部である可能性が高いとして、ステップS1709へ進む。一方、画素面積が閾値よりも大きい場合にはステップS1708へ進む。
【0057】
ステップS1708では、画素面積で表される領域を人の頭部ではなく荷物であると判定する。その後、mをインクリメントしてステップS1704へ戻り、ステップS1704からステップS1707までの処理を繰り返し行う。
ステップS1709では、Jmの次に距離が短い距離情報を持つ画素とその周辺画素とを算出し、(式2)を用いて同様に平均化した距離Jm+1を算出する。
ステップS1710では、距離Jm+1である画素面積が閾値以内であり、かつ距離Jmと距離Jm+1との距離差が閾値以内であるか否かを判定する。2つの条件を満たす場合、ステップS1711へ進み、距離Jmである画素面積を頭部認識部分とし、距離Jm+1である画素面積を頭部周辺肩認識部分とする。一方、少なくとも1つの条件を満たさない場合は、ステップS1708へ進み、JmおよびJm+1である画素面積は荷物であると判定する。
【0058】
ステップS1712では、頭部認識した画素面積を中心として、頭部周辺肩認識部分の画素面積が左右対称に存在するか否かを判定する。画素面積が左右対称に存在する場合、ステップS1713へ進む。一方、画素面積が左右対称に存在しない場合、ステップS1714へ進む。
ステップS1713では、頭部周辺肩認識部分が人の肩に対応すると考えられるため、距離Jmおよび距離Jm+1である画素面積は人であると判定する。その後、mをインクリメントして、ステップS1704へ戻り、上述した処理を行う。
ステップS1714では、頭部周辺の肩認識部分が頭部認識部分の片側に存在し、さらにその画素面積が閾値より大きければ、距離Jmおよび距離Jm+1である画素面積は人ではなく小動物であると判定する。その後、mをインクリメントして、ステップS1704へ戻り、上述の処理を行う。
【0059】
ここで、測定対象が人である場合の特徴検出の一例を図18を用いて説明する。
図18(a)は、天井1801に設置したレーザ発光部101およびレーザ受光部103の真下に人1803が存在する状態を表し、図18(b)は、図18(a)を真横から見た高さ方向の距離情報を表した図である。また、レーザ発光部101およびレーザ受光部103による検出領域はモニタ部1804のように表される。図18(b)に示すように、この検出領域に対して、最短距離Jmである画素面積(頭部認識部分)を中心に、次に距離が短い画素を含む画素面積(頭部周辺肩認識部分)が左右対称に存在しているため、最短距離Jである画素面積が頭部、次に距離の短い画素面積が人の肩に該当することがわかる。よって、図17に示した人特徴検出処理により測定対象が人1803であることが判定できる。
【0060】
次に、測定対象が犬または猫などの小動物である場合を図19を用いて説明する。
(a)は小動物1901が距離カメラの真下に存在する状態である。(b)に示すように、頭部認識部分に対して、頭部周辺肩認識部分が片側にのみ存在し、かつ頭部周辺肩認識部分が人である場合と比較して長いため、小動物1901と判定する。
さらに、最短距離Jが人よりも長い、つまり、概算身長Lが低く、かつ頭部周辺肩認識部分において、肩の中心と頭部の中心が偏ったものは犬または猫などとすることで、小動物の分類ができる。例えば、Lが1m以内は犬、Lが0.5m以内は猫とするような閾値を予めもたせることで犬と猫とを区別することができる。
【0061】
次に、人と台車等荷物と分離判定について図20を用いて説明する。
(a)は、測定対象として人2001が台車を押して荷物2002を運んでいる状態を示している。分離判定手順として、始めに、最短距離J1の画素を検出し、次に距離の短いJ2の画素を検出する。図17に示すステップS1707からステップS1713までの処理により、距離J1および距離J2の部分は人2001であると判定する。
さらに、人2001であると認識した画素面積以外の画素の中で、最短距離J3を有する画素を検出する。距離J3である画素を含む画素集合は、図17のステップS1707によりJ3である画素面積が閾値範囲より大きいと判定されるか、ステップS1711により周辺に肩に相当する部分がないと判定されるため、荷物2002であると判定される。なお、小動物が頭を下げている場合も荷物として判定される可能性があるが、その場合は人特徴検出処理をある期間継続して判定を行い、随時更新すればよい。
【0062】
以上に示した第2の実施形態によれば、測定対象が人であるか、あるいは、犬または猫などの小動物であるかを判定することができ、さらに人が荷物を運んでいる状態であっても人と荷物の分離判定を高精度に行うことが可能であり、さらに人の概算身長や荷物の高さなどを測定できる。
【0063】
なお、本発明は上記各実施形態そのままに限定されるものではなく、各実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
100・・・人数カウンタ、101・・・レーザ発光部、102・・・パルス制御部、103・・・レーザ受光部、104・・・位相検出部、105、109・・・A/D変換部、106・・・距離計測部、107・・・距離メモリ、108・・・振幅検出部、110・・・輝度計測部、111・・・輝度メモリ、112・・・ミラー、113・・・X軸制御部、114・・・Y軸制御部、115・・・クラスタリング部、116・・・測定対象検出部、117・・・測定対象追跡部、118・・・人数カウント部、1801・・・天井、1802・・・床、1803、2001・・・人、1804・・・モニタ部、1805・・・カウンタ表示部、1901・・・小動物、2002・・・荷物。
【技術分野】
【0001】
本発明は、例えば出入り口を通過する人数をカメラの撮像画像情報をもとに検出する人数カウンタに関する。
【背景技術】
【0002】
従来の人数カウンタは、部屋の出入り口にカメラを取り付け、その撮像画像情報から画像処理を用いて人物認識を行って人数をカウントしている(例えば、特許文献1を参照。)。また、カメラにより人物認識を行って人物を追跡し、逆行している人物や滞留している人物を検出している(例えば、特許文献2を参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−49718号公報
【特許文献2】特開2008−197946号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の人数カウンタはカメラとして一般に輝度カメラを使用している。輝度カメラは、照射されている自然光の被写体像をレンズで集光し、CCDやCMOSセンサーなどのエリアセンサーの受光面で結像させることで映像を生成するもので、各画素から得られる情報は各画素に入射された輝度情報となる。このため、従来の人数カウンタでは、人物を認識する場合に、人物の服装が床などの背景と比較してコントラストが低いと人物と背景を分離することが困難となり、その結果精度良く人数をカウントすることができない。
【0005】
本発明は、上述の課題を解決するためになされたものであり、輝度情報を利用する場合に比べ高精度な人物認識および人物追跡を行えるようにし、これにより精度よく人数をカウントすることができる人数カウンタを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述の課題を解決するため、本発明に係る人数カウンタは、カメラの検出領域内の画素ごとに、カメラにより得られる検出領域内の画素ごとに、当該カメラから測定対象までの距離を計測する計測部と、前記測定対象が接地する平面に前記画素を写像した場合の画素位置と前記距離とを関連付けた第1距離情報と、前記画素位置において前記平面に対して垂直な高さ方向の距離を示す第2距離情報とを含む3次元データを画素ごとに格納する格納部と、前記格納部に格納された3次元データから、閾値以内となる前記第2距離情報を含む3次元データのみ抽出し、抽出したデータに対してクラスタリングして、前記測定対象を含む画素領域を表す人候補領域をサンプリングフレームごとに得るクラスタリング部と、前記クラスタリング部によりサンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、当該同一の人候補領域の移動軌跡を追跡する追跡部と、前記追跡部の追跡結果に基づいて、前記人候補領域が予め当該人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部と、を具備することを特徴する。
【発明の効果】
【0007】
本発明の人数カウンタによれば、人物と背景の輝度が同じである場合など輝度情報を利用する方法では識別できない状態においても、距離情報を用いることにより測定対象の輝度に依らず測定対象を識別することができ、より高精度な人物認識および人物追跡により精度よく人数をカウントすることが可能となる。
【図面の簡単な説明】
【0008】
【図1】本実施形態に係る人数カウンタを示すブロック図。
【図2】本実施形態に係る人数カウンタの動作を示すフローチャート。
【図3】本実施形態に係る検出領域を示す図。
【図4】人物データの一例を示す図。
【図5】人数のカウント領域を示す図。
【図6】追跡データの一例を示す図。
【図7】人候補領域の移動ベクトルを示す図。
【図8】本実施形態に係る人検出の動作を示すフローチャート。
【図9】人候補領域のクラスタリングの動作を示すフローチャート。
【図10】検出領域において高さ閾値で抽出した人候補領域を示す図。
【図11】高さ閾値に基づいてXY平面へ写像しクラスタリングされた人候補領域を示す図。
【図12】人候補領域の最大高さと所定の距離Dを説明する図。
【図13】検出領域において距離Dで抽出した人候補領域を示す図。
【図14】所定の距離Dに基づいてXY平面へ写像しクラスタリングされた人候補領域を示す図。
【図15】本実施形態に係る人追跡の動作を示すフローチャート。
【図16】相関テーブルの一例を示す図。
【図17】第2の実施形態に係る人特徴抽出の動作を示すフローチャート。
【図18】人候補領域に含まれる測定対象が人である場合を示す図。
【図19】人候補領域に含まれる測定対象が小動物である場合を示す図。
【図20】人候補領域に含まれる測定対象が人および荷物である場合を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら本発明に係わる人数カウンタのいくつかの実施形態を詳細に説明する。なお、各実施形態では、同一の番号を付した部分については同様の動作をおこなうものとして、重ねての説明を省略する。
(第1の実施形態)
この発明の第1の実施形態に係る人数カウンタの構成について図1を参照して詳細に説明する。
本実施形態に係る人数カウンタ100は、レーザ発光部101と、パルス制御部102と、レーザ受光部103と、位相検出部104と、A/D変換部105と、距離計測部106と、距離メモリ107と、振幅検出部108と、A/D変換部109と、輝度計測部110と、輝度メモリ111と、ミラー112と、X軸制御部113と、Y軸制御部114と、クラスタリング部115と、測定対象検出部116と、測定対象追跡部117と、人数カウント部118とを含む。
なお、レーザ発光部101と、パルス制御部102と、レーザ受光部103と、位相検出部104と、A/D変換部105と、距離計測部106と、距離メモリ107と、振幅検出部108と、A/D変換部109と、輝度計測部110と、輝度メモリ111と、ミラー112と、X軸制御部113と、Y軸制御部114とをまとめて距離カメラとも呼ぶ。
【0010】
パルス制御部102は、レーザ発光部101から発光させるためにパルス状からなる制御信号を生成し、レーザ発光部101および位相検出部104へ送る。
レーザ発光部101は、LED(Light−Emitting Diode)又はレーザダイオードからなり、パルス制御部102から制御信号を受け取り、光をパルス状に発生する。なお、レーザ発光部101は、主に赤外光を発生するレーザが考えられるが、これらLEDやレーザダイオードに限らず他の発光素子でもよい。
【0011】
レーザ受光部103は、レーザ発光部101が発した光の測定対象となる被写体による反射光を受光して光電変換によりパルス状のアナログ信号(以下、受信信号とも呼ぶ)を得る。また、レーザ受光部103に使われる受光素子として、例えばPD(Photo Diode)が考えられるが、これに限らず他の受光素子でもよい。
【0012】
位相検出部104は、パルス制御部102から制御信号を、またレーザ受光部103からは受信信号をそれぞれ受け取る。そして、この受け取った制御信号と受信信号との位相差を検出し、この検出した位相差を表す位相信号を得る。位相信号はDCレベルで表されるアナログ信号からなる。
【0013】
A/D変換部105は、位相検出部104から位相信号を受け取り、ディジタル化を行いディジタル信号に変換する。アナログ−ディジタル変換は一般的に行われている手法を用いればよく、ここでの詳細な説明は省略する。
距離計測部106は、A/D変換部105からディジタル信号を受け取り、距離カメラから測定対象までの距離を示す情報である距離情報を算出する。距離情報は次のように算出することができる。始めに、ディジタル信号を、レーザが測定対象に到達するまでにかかる時間の2倍に比例する数値に変換する。次に、この値に光速を乗じて2で割った値が距離情報となる。
【0014】
距離メモリ107は、距離計測部106から距離情報を受け取る。またそれと共に、後述するX軸制御部113およびY軸制御部114から、ある画素を基準としてXY平面座標に写像した場合の画素位置を示す情報である、X軸制御情報およびY軸制御情報を受け取る。そして、この受け取った距離情報とX軸制御情報及びY軸制御情報とを対応付けて格納する。XY平面座標は、測定対象が接地している平面である床面と平行な面とする。ここで、距離メモリ107は、例えばRAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、取外し可能ディスク、CD−ROMである。なお、これらの例に限らず、その技術分野で知られている記憶媒体であればよい。
【0015】
振幅検出部108は、レーザ受光部103から受信信号を受け取り、受信信号のパルスの最大振幅を検出してその検出値を表すアナログ信号を得る。
A/D変換部109は、振幅検出部108から最大振幅の検出値を表すアナログ信号を受け取り、ディジタル化を行いディジタル信号に変換する。
【0016】
輝度計測部110は、A/D変換部109からディジタル信号を受け取り、測定対象の輝度に関する情報である輝度情報を算出する。
輝度メモリ111は、輝度計測部110から輝度情報を受け取ると共に、X軸制御部113およびY軸制御部114からX軸制御情報およびY軸制御情報を受け取り、この受け取った輝度情報とX軸制御情報及びY軸制御情報とを対応付けて格納する。また、輝度メモリ111は、距離メモリ107同様、その技術分野で知られている記憶媒体であれば何でもよい。
【0017】
ミラー112は、レーザ発光部101から照射されるレーザを反射させて、カメラの撮像可能な全画素位置(以下、検出領域とも呼ぶ)に対応するようにレーザの照射角度を調整する。また、照射角度の調整は、後述するX軸制御部113およびY軸制御部114から軸制御情報を受け取ることにより行われる。
X軸制御部113およびY軸制御部114はそれぞれ、ミラー112に対して検出領域に対応する角度制御を行うためのX軸制御情報およびY軸制御情報を生成する。さらに、X軸制御部113およびY軸制御部114は、X軸制御情報およびY軸制御情報を距離メモリ107および輝度メモリ111へそれぞれ送る。X軸制御情報およびY軸制御情報は、例えば、検出領域にある画素をXY平面座標における各点とみなして、(X、Y)=(2000、1000)のように表される。
【0018】
クラスタリング部115は、距離メモリ107および輝度メモリ111からそれぞれ、各画素位置における距離情報および輝度情報を受け取り、測定対象に対して人候補領域を設定するためのクラスタリングを行い、領域始点および領域終点を求める。人候補領域は、人であると推定される測定対象を含み、かつ測定対象を表す画素領域よりも大きい画素領域である。
なお、人候補領域の画素領域の大きさは、測定対象を表す画素領域が全て包含される領域であれば任意の画素領域でよい。領域始点および領域終点は、人候補領域を定める画素位置である。例えば、XY平面座標上で、領域始点が(X、Y)=(2000、1000)であり、領域終点が(X、Y)=(2300、1100)である場合、人候補領域は300×100の矩形領域を表す。なお、ここではXY平面座標で人候補領域を指定しているが、3次元空間座標で人候補領域を指定してもよい。この場合、領域始点および領域終点は3つのパラメータで表される。人候補領域のクラスタリング方法については図12および図13を用いて後述する。
【0019】
測定対象検出部116は、クラスタリング部115から領域始点および領域終点を受け取り、人候補領域から測定対象判定として人検出を行い、人物を特定する人物データを得る。
測定対象追跡部117は、測定対象検出部116で得た人物データを時系列に検出することで人物追跡を行い、人物の移動軌跡を表すデータである追跡データを、検出した人数分作成する。
【0020】
人数カウント部118は、測定対象追跡部117から追跡データを人数分受け取り、所定のカウント領域を通過した人数をカウントする。カウント領域は、検出領域内の任意の矩形領域であり、人候補領域の座標の追跡データをもとに、人候補領域がこの矩形領域を通過すれば通過人数を1人として計測する。
【0021】
次に、人数カウンタ100の動作について図2のフローチャートを用いて詳細に説明する。本実施形態における検出領域の一例として、図3に示す領域を検出領域としてサンプリングした場合を想定して、人数カウンタ100の動作を説明する。
図3では、測定対象となる、人物A、人物Bおよび人物Cが3次元空間座標における検出領域内に存在する。このように、床面に人が直立している状態のときに、人が床面と接している画素位置から高さ方向(図3に示すように、Z軸方向とも呼ぶ)にどれほど距離があるかを、距離メモリ107に格納している距離情報を用いて算出する。高さ方向の距離の算出方法は、一般的な手法であるためここでの詳細な説明は省略する。以下では、距離情報と、さらに画素位置から算出した高さ方向の距離と画素位置とを対応付けた情報を3次元データと呼ぶ。
【0022】
始めに、ステップS201では、距離メモリ107からあるサンプリング時刻におけるサンプリングフレームに関する3次元データを取得する。
続いて、ステップS202では、測定対象検出部116において、3次元データをもとに検出領域内で人であると推定される領域を表す人候補領域を検出し、その結果を表す人物データ1を生成する。また、検出した人数をNh1とする。ステップS202で行う人検出方法については、図8および図9のフローチャートを参照して詳細に後述する。
ステップS203では、人物データ1を取得してリストを生成する。リストは測定対象検出部116において保持してもよいし、外部にあるメモリに保存してもよい。
【0023】
ここで、人物データのリストの一例を図4を参照して説明する。
人物のインデックス、人物を検出した領域の最大高さ、最大高さ座標、時刻、人候補領域を表す領域の始点、および人候補領域を表す領域の終点を、1人の人物に関する人物データとしてリストを生成する。図4では、3人の人物の人物データが生成されており、例えばインデックスが1の人物データは、最大高さ(概算身長)が175cm、最大高さの位置する座標が(1050,2250)、検出した時刻が「14:10:32」、人候補領域を表す領域始点が(1000,2000)、領域終点が(1100,2500)となっている。この場合の人候補領域は100×500である。このような人物データを検出人数Nh1分生成する。
【0024】
ステップS204では、検出人数Nh1のうち、人物を少なくとも1人検出したか否かを判定し、人物を検出した場合はステップS205へ進み、人物を検出していない場合はステップS201へ戻り、上述したステップS201からステップS204までの処理を繰り返す。
ステップS205では、人カウンタNを「0」に初期化する。
【0025】
次に、ステップS206からステップS208までの処理は、ステップS201からステップS203までの処理と同様である。すなわち、距離メモリ107から次のサンプリング時刻のサンプリングフレームに関する3次元データを取得して、人候補領域を検出し、その結果を表す人物データ2を検出人数Nh2分生成して、リストを生成する。
ステップS209では、検出人数Nh2のうち人を少なくとも1人検出したか否かを判定し、人を検出した場合はステップS211へ進み、人を検出していない場合はステップS210で追跡データを「0」にクリアしたのちステップS201へ戻り、以後ステップS201からステップS209までの処理を繰り返す。
【0026】
次に、ステップS211では、人物データ1と人物データ2との相関値から、人物の移動を追跡する。ステップS211の詳細な動作については、図14を用いて詳細に後述する。
ステップS212では、人がカウント領域を通過したか否かの判定を行う。通過判定は、カウント領域外にある人候補領域がカウント領域内に進入し、人候補領域が進入方向を維持したまま、再びカウント領域外に進んだ場合を、通過と判定する。人がカウント領域を通過したと判定した場合、ステップS213に進み、人数カウント部118において、人カウンタNを1つインクリメントする。人がカウント領域を通過していないと判定した場合、ステップS214に進む。
【0027】
通過判定の一例として図5を用いて詳細に説明する。
図5は、検出領域の画素をXY平面座標で表現しており、図3に示す3次元空間座標を上から見た(Z=0)図である。同図において、検出領域内には任意の矩形領域が設けられ、人候補領域はカウント領域外の上方の座標からカウント領域内を通過してカウント領域外の下方の座標に移動している。この状態を人物がその矩形領域を通過したと判定する。なお、図5の例では検出領域をXY平面座標で考えているが、3次元空間でカウント領域を設けてもよい。
【0028】
ステップS214では、人候補領域の座標を含む追跡データを保存する。追跡データの一例を図6および図7を用いて詳細に説明する。図6に示すように、追跡データには、図4に示すパラメータが時系列に沿って記録される。また、測定対象追跡部117において、同一の人物、すなわち人物インデックスが同じ人物を追跡中の場合、追跡フラグを「1」と設定する。これに対し、同一の人物を追跡していない場合には、追跡フラグを「0」と設定する。
図6の例では、人物1および人物2は、追跡中の状態であるから追跡フラグを「1」と設定し、人物3は追跡していない状態にあるとして追跡フラグを「0」と設定している。この追跡データから図7のように人物の移動軌跡を表すことができる。また、移動軌跡の近似直線から人物の移動ベクトルを求めることができ、検出領域外のどの方向にどのような速度で向かったかという情報も算出することができる。
【0029】
ステップS215では、図6に示す追跡データをもとに、人数カウント数、追跡軌跡および移動方向などの結果を出力する。
最後にステップS216では、ステップS203で取得した人物データ1をステップS208で取得した人物データ2に置き換えて更新する。そして、その後新たなサンプリングフレームから人物データ1と比較する次の人物データ2を取得するためにステップS206へ戻り、ステップS206からステップS216までの同様の処理を繰り返す。上述した本実施形態における人数カウンタ100の動作は、強制的に動作が終了するまで、例えば人数カウンタ100の電源を切るまで継続する。
【0030】
次に、ステップS202における人検出の流れについて図8のフローチャートを用いて詳細に説明する。
始めにステップS801では、人候補領域のインデックスを示す変数である人候補領域Idxを「1」に、検出領域の人物を数えるカウンタNhを「0」にそれぞれ初期化する。Nhの値が最終的な検出人数を示す。
ステップS802では、測定対象を人候補領域として一纏めにするためにクラスタリングを行う。人候補領域のクラスタリングは人検出を行うために必要な処理であり、人とそれ以外の領域を区別するために行う。
【0031】
ここで、ステップS802における人候補領域のクラスタリング方法について、図9に示すフローチャートを用いて詳細に説明する。
始めに、ステップS901では、3次元データの距離情報から高さ閾値LL以上の3次元データを抽出する。
次に、ステップS902では、ステップS901で抽出した閾値以上の高さの範囲にある3次元データを、床平面を基準とする平面座標に写像する。つまり、床からの高さが高さ閾値LLに満たないものは測定対象から除外される。
【0032】
さらに、ステップS903では、各画素に対応する座標において、高さ閾値LLより高い距離情報をもつ3次元データがあるか否かで全画素を2値に分類する。例えば、ある画素が持つ距離情報が高さ閾値LLと同じ距離情報であれば、その画素を「0」と設定し、距離情報が高さ閾値LLよりも高い距離情報であれば「1」に設定する。このように2値に分類した各画素を纏めて、粗い人候補領域を生成する。このステップS903における粗い人候補領域の生成を、ここでは第1クラスタリングと呼ぶ。また、この時生成された人候補領域の総数をNmaxとする。例えば、人候補領域が3つある場合、Nmaxは「3」となる。また人候補領域を検出すると、人候補領域Idxにインデックスを1から順番に割り振る。
【0033】
ステップS904では、ステップS903で処理された人候補領域Idxを1つ取り出す。
ステップS905では、ステップS904で抽出した人候補領域の3次元データの中で最大の高さである最大高さLmaxを検出する。
ステップS906では、人候補領域に対して、最大高さLmaxから、所定の距離Dだけ低いLminを算出する。なお、距離Dは、例えば人の上半身部分が抽出できるように設定すればよい。すなわち、最大高さLmaxに比例して距離Dの長さを調節すればよい。
【0034】
ステップS907では、人候補領域の3次元データをLmaxからLminまでの高さ範囲でデータを抽出する。
ステップS908では、ステップS907で抽出されたデータを床面へ写像する。
ステップS909では、Lminより高い距離情報をもつ3次元データがあるか否かで全画素を2値に分類し、分類した各画素を纏めて再び人候補領域を生成する第2クラスタリングをおこなう。
【0035】
ステップS910では、これらの処理で得られた人候補領域Idxを保存する。
ステップS911では、人候補領域Idxのインデックスをインクリメントする。
ステップS912では、人候補領域Idxのインデックスが人候補領域の総数Nmaxよりも多いか否かを判定し、IdxがNmax以下である場合、ステップS904に戻り、ステップS904からステップS910までの処理を繰り返す。IdxがNmaxよりも多い場合、ステップS903でクラスタリングした人候補領域全てについてステップS904からステップS909までの処理を行ったことを意味するので、人候補領域のクラスタリングの処理を終了する。
【0036】
ここで、人候補領域のクラスタリング処理について図10から図13を用いて詳細に説明する。
3次元データの領域に対して、高さ方向について高さ閾値LL以上を抽出すると、図10のようになる。高さ閾値LLは一例として、人物の膝より上の高さを抽出できるように設定している。
【0037】
抽出した人候補領域を、床平面を基準とする平面座標に写像した図を図11に示す。図3の3次元空間座標をXY平面座標上に写像した図であり、XY平面座標に表される各画素には、その画素位置における高さ方向の距離情報を有する。すなわち、斜線部分が3次元データから求められる高さ閾値LLから距離差がある画素の領域であり、測定対象の部分である。また、破線で示した矩形の領域が人候補領域であり、測定対象を含みかつ測定対象よりも大きい画素の領域を取る。これは、測定対象の動作により、サンプリングフレームによって測定対象の形状が異なることが考えられ、1つのサンプリングフレームの形状(例えば、図11の斜線部分)だけを基準とすると、他のサンプリングフレームにおいて同一の人物であると判定することが難しくなるからである。
次に、図12に示すように、1つの人候補領域を抽出し、人候補領域の高さ方向に最大高さLmaxを検索し、Lmaxから高さ方向に距離Dだけ低いLminを算出する。さらに、全ての人候補領域に対してそれぞれLminを算出する。
図10に示す各人物に対して、LmaxとLminとの範囲で3次元データを抽出した図を図13に示す。平面の基準(高さ方向Z=0の平面)としてLminを用いて、再び人候補領域を設定している。このように距離Dを設定することで、人物の身長が異なっても、人物の頭から相対距離Dだけ低い高さでデータを抽出することができ、身長差などの影響を除くことができる。
【0038】
この人候補領域をLminの高さを基準とした平面に写像した図を図14に示す。
図11に示す第1クラスタリング処理のみでは、足および腕などの距離情報が検出されることにより、測定対象ごとに斜線部分の形状が統一されないが、図14に示す第2クラスタリング処理を行うことで、人物のそれぞれに対して距離Dを頭から胸部までに設定することができ、足、腕などの距離情報が検出される影響を低減して統一された測定対象の形状を得ることができる。
【0039】
ここで、図8のステップS803に戻ると、ステップS802において人候補領域のクラスタリング処理を行った後の、人候補領域Idxを取り出す。
ステップS804では、この人候補領域の面積が予め設定した最小の面積Sminよりも大きいか否かを判定する。面積Sminの値は、人候補領域を写像した領域に基づいて、例えば各人候補領域から平均値を算出することにより設定する。面積Sminよりも人候補領域の面積が小さい場合、ステップS809に進む。一方、面積Sminよりも人候補領域の面積が大きい場合、ステップS805へ進む。
【0040】
ステップS805では、抽出した人候補領域が人である可能性が高いものとして人候補領域に対して人特徴検出を行い、その人候補領域を人と判定する。判定方法としては、例えば、人候補領域の中心に平均して最大高さLmaxを持つ画素領域があり、最大高さLmaxを持つ画素領域を中心として、周辺の画素領域がLmaxよりも高さが低く、かつ左右対称な距離情報を持つと判定されたとする。この場合、Lmaxを持つ画素周辺が頭部に、周辺画素が肩に対応して人候補領域に含まれる測定対象は人であると判定することができる。
【0041】
ステップS806は、ステップS805において人特徴検出ができたか否かを判定し、人特徴が検出できない場合、ステップS809に進む。一方、人特徴が検出できた場合、ステップS807に進み、人数カウンタNhをインクリメントする。
ステップS808では、人候補領域Idxが人特徴検出によって人であると判定されたため、この人候補領域Idxを人物Idxと決定する。
【0042】
ステップS809では、抽出した人候補領域は人ではないと判定して人候補領域Idxを削除する。
ステップS810では、人候補領域Idxをインクリメントする。
ステップS811では、人候補領域Idxが人候補領域数Nmaxよりも大きいか否かを判定する。人候補領域IdxがNmax以下の場合、ステップS803に戻り、ステップS803からステップS811までの処理を繰り返す。一方、人候補領域IdxがNmaxよりも大きい場合、ステップS812へ進み、人物データを保存する。以上のステップによって人検出処理を終了する。
【0043】
次に、図2に示す人追跡(ステップS211)の処理動作について図15のフローチャートを用いて詳細に説明する。
始めに、ステップS1501では、図2のステップS202およびステップS207において検出した、人物Idx1および人物Idx2を初期化して、人物Idx1および人物Idx2の初期値を「1」に設定する。
次に、ステップS1502では、人物データ1の人物Idx1を取り出す。
【0044】
ステップS1503では、人物Idx1と人物Idx2との相関値を格納する変数V、最大の相関値を格納する変数Vmax、人物データ2の人物のインデックスを格納する変数ManIdxを用意し、「0」に初期化する。
ステップS1504では、人物データ2の人物Idx2から順番に人物のインデックスを1人ずつ取り出す。
【0045】
ステップS1505では、人物Idx1と人物Idx2との相関値をVに格納する。相関値は、人候補のクラスタリングを行った際に分離した人候補領域の形状で相関値を取る方法や、領域内の最大高さLmaxとLminとで抽出した3次元データを使用した方法などがあげられる。例えば、人候補領域間の形状から相関値を求める方法としては正規化相関法がある。正規化相関によるマッチングでは、検出領域内で人物Idx1の人候補領域を1画素ずつずらしながら、次のサンプリングフレームにおいて取得した人物Idx2うちの1人の人物インデックスの人候補領域と、お互いの距離情報の相関値を計算し、最大の相関値が得られる画素位置に人候補領域が存在するとみなして最大の相関値を得る。
なお、距離情報の相関値のみではなく、図1の輝度メモリに格納されている輝度情報を用いることにより輝度の濃淡データも出力できるので、人候補領域に相当する濃淡データを使用して上述した正規化相関法により相関値を算出してもよい。
ステップS1506では、相関値VがVmaxよりも大きいか否かを判定し、VがVmaxよりも大きい場合はステップS1507へ進み、VがVmax以下の場合はステップS1508に進む。
ステップS1507では、VmaxをステップS1505で格納した相関値Vに置き換えて更新し、ManIdxを人物データ2の人物Idx2に置き換えて更新する。
ステップS1508では、人物Idx2を1だけインクリメントする。
【0046】
ステップS1509では、人物Idx2が検出人数Nh2よりも大きいか否かを判定する。人物Idx2が検出人数Nh2よりも大きい場合、1人の人物Idx1に対し、図2のステップS207において検出された人数Nh2分の処理を終了したためステップS1510へ進む。一方、人物Idx2が検出人数Nh2以下である場合、残りの人物の処理を行うためステップS1504へ戻りステップS1504からステップS1509までの処理を繰り返す。
【0047】
ステップS1510では、Vmaxが最小相関値よりも大きいか否かを判定する。最小相関値は予め最適な値を設定しておく。Vmaxが最小相関値よりも大きい場合、人物Idx1と同一の人物と判定される人物Idx2が存在するため、ステップS1511において相関テーブルを更新する。一方、Vmaxが最小相関値以下の場合、ステップS1513へ進む。相関テーブルは、人物データ1の人物が人物データ2の人物とどのような相関値を示すかを記録したものである。
【0048】
相関テーブルの一例を図16を用いて詳細に説明する。相関テーブルには、人物データ1の人物インデックスと、そのインデックスの人物と最大の相関値を持つ人物データ2中の人物インデックスと、その最大相関値とを関連付けて格納する。No.3にある人物データ1のインデックス3の人物は、人物データ2中に存在する複数の人物との相関値が低く、該当する人物がいないために、人物データ2の人物インデックスと、人物データ2の最大相関値とが「0」になっている。つまり、人物データ1の検出人数Nh1が3人、人物データ2の検出人数Nh2が2人になり、検出領域から人物が1人いなくなることを示している。
【0049】
ステップS1512では、人物データ1のインデックスである人物Idx1を1つインクリメントする。
ステップS1513では、人物Idx1が検出人数Nh1より大きいか否かを判定し、人物Idx1が検出人数Nh1より大きい場合、図2のステップS202の処理において検出されたNh1人分の処理を終えたため、ステップS1514へ進む。一方、人物Idx1が検出人数Nh1以下である場合、まだ処理の終えていない人物Idx1が存在するため、ステップS1502へ戻り、未処理の人物Idx1についてステップS1502からステップS1513の処理を繰り返す。
【0050】
ステップS1514では、上述した追跡データを更新する。
ステップS1515では、人物Idx1の人数が人物Idx2の人数よりも多いか否かを判定する。人物Idx1の人数が人物Idx2の人数よりも多い場合、ステップS1516へ進み、相関テーブルから相関値の低い人物Idx1の追跡停止を決定し、図6に示すような追跡データの追跡フラグをゼロに設定し、人追跡処理を終了する。一方、人物Idx1の人数が人物Idx2の人数以下である場合、ステップS1517へ進む。
【0051】
ステップS1517では、人物Idx1の人数が人物Idx2の人数よりも少ないか否かを判定する。人物Idx1の人数が人物Idx2の人数よりも小さい場合、ステップS1518に進み、人物追跡を新たに開始し、図6に示す追跡データに新たなデータを加える。一方、人物Idx1の人数が人物Idx2の人数より多い、すなわち、ステップS1515との関係から人物Idx1の人数と人物Idx2の人数とが等しい場合、人物データ2に含まれる検出人数に対して処理を終えたことを示すため、人追跡処理を終了する。
【0052】
以上に示した第1の実施形態によれば、距離情報を用いて測定対象をクラスタリングすることにより、輝度情報を利用する方法よりも高精度な人物認識および人物追跡を行うことができ、精度よく人数カウントが可能となる。
(第2の実施形態)
この発明の第2の実施形態は、図8の人検出処理における人特徴検出(ステップS805)に以下の判断を用いることにより、人候補領域に含まれる測定対象が人であるか、あるいは、犬または猫などの小動物であるかを判定し、さらに人が荷物を運んでいる状態であっても人と荷物の分離判定を高精度に行い、さらに人の概算身長や、荷物の高さなどを測定することを特徴とする。
【0053】
測定対象の判定処理について図17のフローチャート、および図18から図20を用いて詳細に説明する。図18から図20に示すように、本実施形態に係る人数カウンタ100は、人数カウンタ100に係るレーザ発光部101およびレーザ受光部103を天井1801に設置し、天井1801から床1802に向かって人候補領域を測定する。さらに、人数カウンタ100の出力をモニタ部1804およびカウンタ表示部1805に表示する。表示方法としては、例えばモニタ部1804には距離情報および輝度情報をそれぞれ出力して表示させ、カウンタ表示部1805には人数カウント部118からの検出人数を表示させる方法が用いられる。距離情報および輝度情報は、人数カウント部118からまとめて外部に出力されてもよいし、距離メモリ107および輝度メモリ111からそれぞれ抽出して外部に出力されてもよい。
【0054】
始めに、ステップS1701では、検出領域内の画素ごとの距離情報から垂直距離Hnを算出する。
垂直距離Hnの算出は、レーザ発光部101およびレーザ受光部103から床1802までの距離Anと、レーザ発光部101およびレーザ受光部103から床1802に下ろした垂線からの角度θnとから(式1)により求められる。
Hn=An・cosθn (式1)
(n=1,2,3,…,n−1,n:測定対象の周辺の床に相当する画素)
次に、ステップS1702では、画素ごとの距離のばらつきを低減するため、周辺画素を数個まとめて垂直距離Hnの平均値Hを(式2)により算出する。
H=(ΣHn)/n (式2)
ステップS1703では、最短距離Jmnのインデックスであるmの初期値を「1」に設定する。最短距離Jmnとは、検出領域内において、レーザ発光部101およびレーザ受光部103から測定対象までの距離のうち1番短い距離を指す。また、mが「1」の場合は最短距離を持つ画素集合であり、mが「2」の場合は最短距離を持つ画素を除いて次に最も距離が短い画素集合であることを表す。
【0055】
ステップS1704では、床1802までの距離を有する画素以外に、最短距離を未検出の画素があるか否かを判定する。この判定の結果、未検出の画素がある場合にはステップS1706へ進み、未検出の画素がない場合には測定対象の判定処理を終了する。
ステップS1705では、未検出の画素のうち、最短距離Jmnの距離情報をもつ画素を検出し、さらにその周辺画素についても検出する。周辺画素の算出方法は、垂直距離Hnの算出方法と同様に(式1)を用いて計算すればよい。
【0056】
ステップS1706では、(式2)を用いて垂直距離Hnと同様に平均した最短距離Jmを算出する。なお、最短距離Jmがわかれば測定対象が人である場合、人の概算身長Lも(式3)より求めることができる。
L=H−J (式3)
ステップS1707では、最短距離Jmを含む周辺画素で表される画素領域の面積(画素面積とも呼ぶ)が閾値以内であるか否かの判定を行う。画素面積が閾値以内である場合、人または小動物の頭部である可能性が高いとして、ステップS1709へ進む。一方、画素面積が閾値よりも大きい場合にはステップS1708へ進む。
【0057】
ステップS1708では、画素面積で表される領域を人の頭部ではなく荷物であると判定する。その後、mをインクリメントしてステップS1704へ戻り、ステップS1704からステップS1707までの処理を繰り返し行う。
ステップS1709では、Jmの次に距離が短い距離情報を持つ画素とその周辺画素とを算出し、(式2)を用いて同様に平均化した距離Jm+1を算出する。
ステップS1710では、距離Jm+1である画素面積が閾値以内であり、かつ距離Jmと距離Jm+1との距離差が閾値以内であるか否かを判定する。2つの条件を満たす場合、ステップS1711へ進み、距離Jmである画素面積を頭部認識部分とし、距離Jm+1である画素面積を頭部周辺肩認識部分とする。一方、少なくとも1つの条件を満たさない場合は、ステップS1708へ進み、JmおよびJm+1である画素面積は荷物であると判定する。
【0058】
ステップS1712では、頭部認識した画素面積を中心として、頭部周辺肩認識部分の画素面積が左右対称に存在するか否かを判定する。画素面積が左右対称に存在する場合、ステップS1713へ進む。一方、画素面積が左右対称に存在しない場合、ステップS1714へ進む。
ステップS1713では、頭部周辺肩認識部分が人の肩に対応すると考えられるため、距離Jmおよび距離Jm+1である画素面積は人であると判定する。その後、mをインクリメントして、ステップS1704へ戻り、上述した処理を行う。
ステップS1714では、頭部周辺の肩認識部分が頭部認識部分の片側に存在し、さらにその画素面積が閾値より大きければ、距離Jmおよび距離Jm+1である画素面積は人ではなく小動物であると判定する。その後、mをインクリメントして、ステップS1704へ戻り、上述の処理を行う。
【0059】
ここで、測定対象が人である場合の特徴検出の一例を図18を用いて説明する。
図18(a)は、天井1801に設置したレーザ発光部101およびレーザ受光部103の真下に人1803が存在する状態を表し、図18(b)は、図18(a)を真横から見た高さ方向の距離情報を表した図である。また、レーザ発光部101およびレーザ受光部103による検出領域はモニタ部1804のように表される。図18(b)に示すように、この検出領域に対して、最短距離Jmである画素面積(頭部認識部分)を中心に、次に距離が短い画素を含む画素面積(頭部周辺肩認識部分)が左右対称に存在しているため、最短距離Jである画素面積が頭部、次に距離の短い画素面積が人の肩に該当することがわかる。よって、図17に示した人特徴検出処理により測定対象が人1803であることが判定できる。
【0060】
次に、測定対象が犬または猫などの小動物である場合を図19を用いて説明する。
(a)は小動物1901が距離カメラの真下に存在する状態である。(b)に示すように、頭部認識部分に対して、頭部周辺肩認識部分が片側にのみ存在し、かつ頭部周辺肩認識部分が人である場合と比較して長いため、小動物1901と判定する。
さらに、最短距離Jが人よりも長い、つまり、概算身長Lが低く、かつ頭部周辺肩認識部分において、肩の中心と頭部の中心が偏ったものは犬または猫などとすることで、小動物の分類ができる。例えば、Lが1m以内は犬、Lが0.5m以内は猫とするような閾値を予めもたせることで犬と猫とを区別することができる。
【0061】
次に、人と台車等荷物と分離判定について図20を用いて説明する。
(a)は、測定対象として人2001が台車を押して荷物2002を運んでいる状態を示している。分離判定手順として、始めに、最短距離J1の画素を検出し、次に距離の短いJ2の画素を検出する。図17に示すステップS1707からステップS1713までの処理により、距離J1および距離J2の部分は人2001であると判定する。
さらに、人2001であると認識した画素面積以外の画素の中で、最短距離J3を有する画素を検出する。距離J3である画素を含む画素集合は、図17のステップS1707によりJ3である画素面積が閾値範囲より大きいと判定されるか、ステップS1711により周辺に肩に相当する部分がないと判定されるため、荷物2002であると判定される。なお、小動物が頭を下げている場合も荷物として判定される可能性があるが、その場合は人特徴検出処理をある期間継続して判定を行い、随時更新すればよい。
【0062】
以上に示した第2の実施形態によれば、測定対象が人であるか、あるいは、犬または猫などの小動物であるかを判定することができ、さらに人が荷物を運んでいる状態であっても人と荷物の分離判定を高精度に行うことが可能であり、さらに人の概算身長や荷物の高さなどを測定できる。
【0063】
なお、本発明は上記各実施形態そのままに限定されるものではなく、各実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
100・・・人数カウンタ、101・・・レーザ発光部、102・・・パルス制御部、103・・・レーザ受光部、104・・・位相検出部、105、109・・・A/D変換部、106・・・距離計測部、107・・・距離メモリ、108・・・振幅検出部、110・・・輝度計測部、111・・・輝度メモリ、112・・・ミラー、113・・・X軸制御部、114・・・Y軸制御部、115・・・クラスタリング部、116・・・測定対象検出部、117・・・測定対象追跡部、118・・・人数カウント部、1801・・・天井、1802・・・床、1803、2001・・・人、1804・・・モニタ部、1805・・・カウンタ表示部、1901・・・小動物、2002・・・荷物。
【特許請求の範囲】
【請求項1】
カメラにより得られる検出領域内の画素ごとに、当該カメラから測定対象までの距離を計測する計測部と、
前記測定対象が接地する平面に前記画素を写像した場合の画素位置と前記距離とを関連付けた第1距離情報と、前記画素位置において前記平面に対して垂直な高さ方向の距離を示す第2距離情報とを含む3次元データを画素ごとに格納する格納部と、
前記格納部に格納された3次元データから、閾値以内となる前記第2距離情報を含む3次元データのみ抽出し、当該抽出したデータに対してクラスタリングして、前記測定対象を含む画素領域を表す人候補領域をサンプリングフレームごとに得るクラスタリング部と、
前記クラスタリング部によりサンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、当該同一の人候補領域の移動軌跡を追跡する追跡部と、
前記追跡部の追跡結果に基づいて、前記人候補領域が予め当該人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部と、を具備することを特徴する人数カウンタ。
【請求項2】
前記クラスタリング部は、第1閾値以上の前記第2距離情報を有する3次元データを抽出してこれを第1抽出データとし、当該第1抽出データに対し第1クラスタリングを行って前記人候補領域ごとに当該人候補領域内の前記第2距離情報のうちの最大値を最大高さとして検出し、当該最大高さを上限として、当該最大高さから第2閾値までの高さ範囲を前記第1抽出データから抽出して第2抽出データを得、当該第2抽出データに対し第2クラスタリングを行うことを特徴とする請求項1に記載の人数カウンタ。
【請求項3】
前記測定対象の検出を行う検出部をさらに具備し、
前記検出部は、前記最大高さの前記第2距離情報を有する画素と当該画素の周辺画素とを含む画素領域の面積を示す第1画素面積が第3閾値範囲内であり、かつ前記最大高さの次に高い第2距離情報を有する画素と当該画素の周辺画素とを含む画素領域の面積を示す第2画素面積が第4閾値範囲内であり、前記第2画素面積および前記第1画素面積の第2距離情報の距離差が第5閾値範囲内であり、かつ前記第2画素面積が前記第1画素面積を中心として対称に存在する場合、前記第1画素面積および前記第2画素面積を人として検出することを特徴とする請求項2に記載の人数カウンタ。
【請求項4】
前記検出部は、前記第2画素面積が前記第1画素面積を中心として片側にのみ存在し、かつ前記最大高さが第6閾値よりも低い場合、前記第1画素面積および前記第2画素面積を小動物として検出することを特徴とする請求項3に記載の人数カウンタ。
【請求項5】
前記検出部は、前記第1画素面積が前記第3閾値範囲より大きい場合、前記第2画素面積が前記第4閾値範囲より大きい場合、または、前記第2画素面積および前記第1画素面積の第2距離情報の距離差が前記第5閾値より大きい場合のいずれか1つを満たすときは、前記第1画素面積および前記第2画素面積の少なくとも一方を荷物として検出することを特徴する請求項3または請求項4に記載の人数カウンタ。
【請求項1】
カメラにより得られる検出領域内の画素ごとに、当該カメラから測定対象までの距離を計測する計測部と、
前記測定対象が接地する平面に前記画素を写像した場合の画素位置と前記距離とを関連付けた第1距離情報と、前記画素位置において前記平面に対して垂直な高さ方向の距離を示す第2距離情報とを含む3次元データを画素ごとに格納する格納部と、
前記格納部に格納された3次元データから、閾値以内となる前記第2距離情報を含む3次元データのみ抽出し、当該抽出したデータに対してクラスタリングして、前記測定対象を含む画素領域を表す人候補領域をサンプリングフレームごとに得るクラスタリング部と、
前記クラスタリング部によりサンプリングフレームごとに得られた複数の人候補領域間の相関値に基づいて同一の人候補領域を判定し、当該同一の人候補領域の移動軌跡を追跡する追跡部と、
前記追跡部の追跡結果に基づいて、前記人候補領域が予め当該人候補領域より大きく設定した画素領域を通過した場合に、その通過数を通過人数としてカウントするカウント部と、を具備することを特徴する人数カウンタ。
【請求項2】
前記クラスタリング部は、第1閾値以上の前記第2距離情報を有する3次元データを抽出してこれを第1抽出データとし、当該第1抽出データに対し第1クラスタリングを行って前記人候補領域ごとに当該人候補領域内の前記第2距離情報のうちの最大値を最大高さとして検出し、当該最大高さを上限として、当該最大高さから第2閾値までの高さ範囲を前記第1抽出データから抽出して第2抽出データを得、当該第2抽出データに対し第2クラスタリングを行うことを特徴とする請求項1に記載の人数カウンタ。
【請求項3】
前記測定対象の検出を行う検出部をさらに具備し、
前記検出部は、前記最大高さの前記第2距離情報を有する画素と当該画素の周辺画素とを含む画素領域の面積を示す第1画素面積が第3閾値範囲内であり、かつ前記最大高さの次に高い第2距離情報を有する画素と当該画素の周辺画素とを含む画素領域の面積を示す第2画素面積が第4閾値範囲内であり、前記第2画素面積および前記第1画素面積の第2距離情報の距離差が第5閾値範囲内であり、かつ前記第2画素面積が前記第1画素面積を中心として対称に存在する場合、前記第1画素面積および前記第2画素面積を人として検出することを特徴とする請求項2に記載の人数カウンタ。
【請求項4】
前記検出部は、前記第2画素面積が前記第1画素面積を中心として片側にのみ存在し、かつ前記最大高さが第6閾値よりも低い場合、前記第1画素面積および前記第2画素面積を小動物として検出することを特徴とする請求項3に記載の人数カウンタ。
【請求項5】
前記検出部は、前記第1画素面積が前記第3閾値範囲より大きい場合、前記第2画素面積が前記第4閾値範囲より大きい場合、または、前記第2画素面積および前記第1画素面積の第2距離情報の距離差が前記第5閾値より大きい場合のいずれか1つを満たすときは、前記第1画素面積および前記第2画素面積の少なくとも一方を荷物として検出することを特徴する請求項3または請求項4に記載の人数カウンタ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2011−39792(P2011−39792A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−186772(P2009−186772)
【出願日】平成21年8月11日(2009.8.11)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願日】平成21年8月11日(2009.8.11)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】
[ Back to top ]