(57)【特許請求の範囲】
【請求項１】
そのスキャン面が水平面に対して傾斜した３次元距離計測センサで複数の対象を計測する計測装置であって、
前記複数の対象に関する３次元形状モデルが登録されたデータベース、
前記３次元距離計測センサを制御してスキャン面の水平面に対する傾斜角を変化させる変化手段、
前記３次元距離計測センサからの計測データと前記データベースに登録された３次元形状モデルとの比較に基づいて前記複数の対象それぞれの３次元形状および姿勢ならびに位置および移動方向を少なくとも推定する第１推定手段、
前記第１推定手段の推定結果に基づいて前記複数の対象それぞれの頭部が移動方向とは異なる方向を向いたと判断される場合に当該頭部の向いた先に位置する目標を特定する特定手段、
前記複数の対象それぞれについて前記特定手段の特定結果に基づく個別行動情報を作成する第１作成手段、および
前記第１推定手段の推定結果を前記複数の対象間で比較して、その結果、位置が近接しかつ移動方向が共通であってしかも頭部が一定以上の頻度で相対する方向を向く対象群がある場合に、当該対象群をグループと推定する第２推定手段を備える、計測装置。
【請求項２】
前記第１推定手段は前記複数の対象それぞれに対応する複数の時系列フィルタリングを並列に実行することによって推定を行う、請求項１記載の計測装置。
【請求項３】
前記第１推定手段の推定結果に基づいて前記複数の対象それぞれの属性を推定する第３推定手段、および
前記第２推定手段でグループと推定された対象群に関する前記第３推定の推定結果に基づいて、当該グループを複数のカテゴリのいずれかに分類する分類手段をさらに備える、請求項１または２記載の計測装置。
【請求項４】
前記第１作成手段で作成された個別行動情報を前記第２推定手段の推定に基づくグループ毎に解析してグループ行動情報を作成する第２作成手段をさらに備える、請求項３記載の計測装置。
【請求項５】
前記第２作成手段で作成されたグループ行動情報を前記分類手段の分類に基づくカテゴリ毎に解析してグループ行動パターン情報を作成する第３作成手段をさらに備える、請求項４記載の計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計測装置，計測方法および計測プログラムに関し、特に、３次元距離計測センサ（たとえばレーザレンジファインダ，レーザレンジスキャナ，３Ｄスキャナ，測域センサなど）で対象を計測する、計測装置，計測方法および計測プログラムに関する。
【背景技術】
【０００２】
この種の従来の装置としては、たとえば特許文献１に開示されたものが知られている。この背景技術では、複数のレーザレンジファインダ（ＬＲＦ）で被験者を計測して、計測結果から被験者の位置および移動速度を推定し、さらに人形状モデルを用いて被験者の体の向きおよび腕の動きをも推定している。
【特許文献１】特開２００９−１６８５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１の背景技術では、どのＬＲＦも、スキャン面が腰の高さで水平となるように設置されている。したがって、ＬＲＦからの計測データには、腰の高さでの距離情報しか含まれていないので、３次元形状や姿勢を推定することはできない。
【０００４】
また、特許文献１の背景技術は、複数の人が密集した状況ではＬＲＦからの計測データに基づいて一人一人を分離することが難しくなるという問題点を有する。
【０００５】
それゆえに、この発明の主たる目的は、新規な、計測装置，計測方法および計測プログラムを提供することである。
【０００６】
この発明の他の目的は、３次元距離計測センサで複数の対象を計測して多様な情報を得ることができる、計測装置，計測方法および計測プログラムを提供することである。
【０００７】
この発明のその他の目的は、３次元距離計測センサで人の体の方向および頭の方向を計測できる、計測装置，計測方法および計測プログラムを提供することである。
【課題を解決するための手段】
【０００８】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、そのスキャン面が水平面に対して傾斜した３次元距離計測センサで複数の対象を計測する計測装置であって、複数の対象に関する３次元形状モデルが登録されたデータベース、３次元距離計測センサを制御してスキャン面の水平面に対する傾斜角を変化させる変化手段、３次元距離計測センサからの計測データとデータベースに登録された３次元形状モデルとの比較に基づいて複数の対象それぞれの３次元形状および姿勢ならびに位置および移動方向を少なくとも推定する第１推定手段、第１推定手段の推定結果に基づいて複数の対象それぞれの頭部が移動方向とは異なる方向を向いたと判断される場合に当該頭部の向いた先に位置する目標を特定する特定手段、複数の対象それぞれについて特定手段の特定結果に基づく個別行動情報を作成する第１作成手段、および第１推定手段の推定結果を複数の対象間で比較して、その結果、位置が近接しかつ移動方向が共通であってしかも頭部が一定以上の頻度で相対する方向を向く対象群がある場合に、当該対象群をグループと推定する第２推定手段を備える、計測装置である。
【００１０】
第１の発明では、計測装置（１０）は、スキャン面（Ｓｃｎ）が水平面に対して傾斜した３次元距離計測センサ（１４）で複数の対象（Ｔ１，Ｔ２，…）を計測する。データベース（５０）には、複数の対象に関する３次元形状モデル（Ｍ１，Ｍ２）が登録される。変化手段（Ｓ３）は、３次元距離計測センサを制御してスキャン面の水平面に対する傾斜角（α）を変化させ、第１推定手段（Ｓ５〜Ｓ１９，Ｓ２１〜Ｓ３９）は、その３次元距離計測センサから得られる計測データ（３４）とデータベースに登録された３次元形状モデルとの比較に基づいて複数の対象それぞれの３次元形状および姿勢ならびに位置および移動方向を少なくとも推定する。特定手段（Ｓ６７）は、第１推定手段の推定結果に基づいて複数の対象それぞれの頭部が移動方向とは異なる方向を向いたと判断される場合に当該頭部の向いた先に位置する目標を特定し、第１作成手段（Ｓ６９）は、複数の対象それぞれについて特定手段の特定結果に基づく個別行動情報を作成する。そして、第２推定手段（Ｓ８１〜Ｓ９１）第１推定手段の推定結果を複数の対象間で比較して、位置が近接しかつ移動方向が共通であってしかも頭部が一定以上の頻度で相対する方向を向く対象群がある場合に、当該対象群をグループと推定する。
第１の発明によれば、スキャン面の傾斜角を変化させつつ計測を行うことで、複数の対象の分離が容易となり、こうして分離された複数の対象それぞれの３次元形状および姿勢を推定することができる。そして、位置および移動方向に加えて頭部の向きを考慮することで、グループ推定が容易に行える。
【００１１】
なお、各対象は、動いている方が好ましいが、停止していてもよい。
【００１２】
なお、傾斜角が大きければ（α＝９０度またはそれに近い角度であれば）、対象同士の重なり合いが小さくなるので複数の対象を容易に分離できる一方、計測領域は狭くなる。このため、変化手段による傾斜角の変化範囲は、分離の容易さと計測領域の広さとのバランスを考慮して、適宜な範囲が選ばれる。ある実施例では、傾斜角の変化範囲を２４度〜９０度（２４°≦α≦９０°）としているが、たとえば２０度〜８０度や３０度〜１５０度などでもよい。
【００１３】
第２の発明は、第１の発明に従属する計測装置であって、第１推定手段は複数の対象それぞれに対応する複数の時系列フィルタリングを並列に実行することによって推定を行う。
【００１４】
なお、時系列フィルタリングには、ある実施例ではパーティクルフィルタを用いるが、カルマンフィルタなど他の時系列フィルタを用いてもよい。
【００１５】
第２の発明によれば、複数の対象（Ｔ１，Ｔ２，…）それぞれにパーティクルフィルタ（３８ａ，３８ｂ，…）を適用することで、それぞれの３次元形状および姿勢を高い精度で推定することができる。
【００２４】
第３の発明は、第１または第２の発明に従属する計測装置であって、第１推定手段の推定結果に基づいて複数の対象それぞれの属性を推定する第３推定手段（Ｓ５１）、および第２推定手段でグループと推定された対象群に関する第３推定の推定結果に基づいて、当該グループを複数のカテゴリのいずれかに分類する分類手段（Ｓ１０１）をさらに備える。
【００２５】
なお、ある実施例では、属性は性別，大人／子供の区別などを含み、性別，大人／子供の区別は、たとえば頭部の３次元形状から推定される。複数のカテゴリとは、たとえば友達同士，家族連れ，カップルなどである。
【００２６】
第３の発明によれば、複数の対象それぞれの属性を推定できる。また、グループと推定された対象群の属性から、グループの分類も可能になる。
【００２７】
第４の発明は、第３の発明に従属する計測装置であって、第１作成手段で作成された個別行動情報を第２推定手段の推定に基づくグループ毎に解析してグループ行動情報を作成する第２作成手段（Ｓ１０３）をさらに備える。
【００２８】
第４の発明によれば、個別行動をグループ毎に解析することでグループ行動に関する情報が得られる。ある実施例では、グループと推定された対象群について個別行動情報の和集合をとることで、たとえば「グループＧ１は店舗Ａ，Ｂ，Ｃ，…および案内板Ｐを見た」といったグループ行動情報を作成している。
【００２９】
第５の発明は、第４の発明に従属する計測装置であって、第２作成手段で作成されたグループ行動情報を分類手段の分類に基づくカテゴリ毎に解析してグループ行動パターン情報を作成する第３作成手段（Ｓ１０５）をさらに備える。
【００３０】
第５の発明によれば、グループ行動をカテゴリ毎に解析することで、各カテゴリに特有の行動パターンに関する情報が得られる。ある実施例では、たとえば、“友達同士”に分類されたグループ群（Ｇ１，Ｇ５）についてグループ行動情報の積集合をとることで、「友達同士のグループは店舗Ａおよび案内板Ｐを見る」といったグループ行動パターン情報を作成している。
【発明の効果】
【００５７】
この発明によれば、３次元距離計測センサで複数の対象を計測して多様な情報を得ることができる、計測装置，計測方法および計測プログラムが実現される。また、３次元距離計測センサで人の体の方向および頭の方向を計測できる、計測装置，計測方法および計測プログラムが実現される。
【００５８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００５９】
【図１】この発明の一実施例である計測装置の構成を示すブロック図である。
【図２】ＬＲＦによる計測処理を説明するための図解図であり、（Ａ）が計測領域（スキャン面）を示し、（Ｂ）が対象と計測領域との関係を示す。
【図３】傾斜したＬＲＦからの計測データに施される座標変換処理を説明するための図解図であり、（Ａ）が水平なスキャン面と傾斜したスキャン面との関係を示し、（Ｂ）が座標変換に用いるパラメータを示す。
【図４】１６個のＬＲＦのショッピングセンタへの配置例を示す図解図（上面図）である。
【図５】１つのＬＲＦの計測領域の一例を示す図解図である。
【図６】１つのＬＲＦによる走査例を示す図解図である。
【図７】メモリマップを示す図解図である。
【図８】ＣＰＵ動作の一部を示すフロー図である。
【図９】ＣＰＵ動作の他の一部を示すフロー図である。
【図１０】ＣＰＵ動作のその他の一部を示すフロー図である。
【図１１】ＣＰＵ動作のさらにその他の一部を示すフロー図である。
【図１２】ＣＰＵ動作の他の一部を示すフロー図である。
【図１３】ＣＰＵ動作のその他の一部を示すフロー図である。
【図１４】肩から上の身体形状モデルを示す図解図である。
【図１５】全身の骨格モデルを示す図解図であり、この骨格モデルの肩から上は図１４の形状モデルと対応している。
【図１６】メモリに記憶された各種情報のデータ構造を示す図解図であり、（Ａ）は対象情報の、（Ｂ）はグループ情報の、（Ｃ）は個別行動情報の、（Ｄ）はグループ行動情報の、そして（Ｅ）はグループ行動パターン情報の、データ構造例を示す。
【図１７】対象全体の移動方向と頭部の向き（視線方向）の関係を示す図解図である。
【図１８】人の位置および姿勢に関する変数を示す図解図である。
【図１９】ＬＲＦの出力（３Ｄスキャンデータ）に基づいて人の位置および姿勢（体の方向および頭の方向）を計測する方法（頭と両肩が検出された場合）を示すフロー図である。
【図２０】人体に対応する３Ｄスキャンの層化を示す図解図である。
【図２１】人体に対応する３Ｄスキャンの一形状（ＲＬＦの計測角が９０度，人がＬＲＦに対して横向きの場合）を示す図解図である。
【図２２】人体に対応する３Ｄスキャンの他の形状（ＬＲＦの計測角が９０度，人がＬＲＦに対して正面向きの場合）を示す図解図である。
【図２３】人体に対応する３Ｄスキャンのその他の形状（ＬＲＦの計測角が０の場合：人の向きは任意）を示す図解図である。
【図２４】人体に対応する３Ｄスキャンのさらにその他の形状（ＬＲＦの計測角が３０〜４０度，人がＬＲＦに対して横または斜め向きの場合）を示す図解図である。
【図２５】ＬＲＦの出力（３Ｄスキャンデータ）に基づいて人の位置および姿勢（体の方向および頭の方向）を計測する方法（頭と一方の肩が検出された場合）を示すフロー図である。
【図２６】図２５の検出結果（頭と一方の肩）に対して「肩よりも頭が前方にある」という特徴から可能な他方の肩の配置を示す図解図であり、（Ａ）は人がＬＲＦに対して左横を向いている（言い換えるとＬＲＦが人の右側面をスキャンしている）場合を、（Ｂ）は人がＬＲＦに対して右横を向いている（ＬＲＦが人の左側面をスキャンしている）場合の配置を示す。
【図２７】ＣＰＵ動作の別の一部を示すフロー図である。
【図２８】人の姿勢をＬＲＦの出力に基づいて推定した結果（追跡なし）とモーショントラッカで実測した結果との比較を示す図解図であり、（Ａ）は体の方向に関する比較を、（Ｂ）は頭の方向に関する比較を示す。
【図２９】人の位置および姿勢をＬＲＦの出力に基づいてパーティクルフィルタで追跡しつつ推定した結果とモーショントラッカで実測した結果との比較の一部を示す図解図であり、（Ａ）は位置ｘに関する比較を、（Ｂ）は位置ｙに関する比較を示す。
【図３０】人の位置および姿勢をＬＲＦの出力に基づいてパーティクルフィルタで追跡しつつ推定した結果とモーショントラッカで実測した結果との比較の他の一部を示す図解図であり、（Ａ）は体の方向θｂに関する比較を、（Ｂ）は頭の方向θｈに関する比較を示す。
【発明を実施するための形態】
【００６０】
（第１実施例）
図１を参照して、この実施例の計測装置１０はコンピュータ１２を含み、コンピュータ１２には複数（ここでは１６台）のレーザレンジファインダ（以下“ＬＲＦ”と記す）１４が接続される。なお、以下では、「３次元距離計測センサ」として、「レーザレンジファインダ」を例にとって説明するものの、この発明は、このような場合に限定されるものではなく、センサから対象までの３次元の距離が計測可能なセンサであれば他の装置を使用してもよい。たとえば、Ｍｉｃｒｏｓｏｆｔ社のＫｉｎｅｃｔ（登録商標）センサやパナソニック製の３次元距離画像センサＤ−ＩＭａｇｅｒなどを使用することも可能である。この種のセンサは、レーザレンジスキャナ，３Ｄスキャナ，測域センサなどと呼ばれる場合もある。
【００６１】
コンピュータ１２は、一般的なパーソナルコンピュータ（ＰＣ）でよく、たとえばキーボードなどの入力器１２ａ，モニタなどの表示器１２ｂ，ＣＰＵ１２ｃおよびメモリ１２ｄなどを備えている。なお、場合によっては、副コンピュータ（図示せず）に各ＬＲＦ１４を接続し、副コンピュータをコンピュータ１２と接続する構成でもよい。
【００６２】
ＬＲＦは一般に、レーザ光を照射し、それが対象（物体や人体など）で反射して戻ってくるまでの時間から距離を計測する。この実施例のＬＲＦ１４は、軸の周りをたとえば±４５度の範囲で回転するミラー（図示せず）を含み、レーザ光の進路（角度β：図２参照）をこの回転ミラーでたとえば０．６度ずつ変化させながら計測を行う（レーザ光でスキャンする）ことができる。以下では、ＬＲＦ１４によってレーザ光でスキャン（走査）される平面をスキャン面と呼ぶ。また、ＬＲＦ１４で計測可能な距離は、レーザ光が人の目に影響を与えないよう、所定距離Ｒ（たとえば１５ｍ）以下に制限されている。このため、ＬＲＦ１４の計測領域（スキャン面Ｓｃｎ）は、たとえば図２（Ａ）に示すような扇形、つまり半径Ｒで中心角９０度の扇形となる。なお、スキャン面Ｓｃｎの中心角は９０度とは限らず、たとえば１８０度や３６０度などでもよい。
【００６３】
さらに、ＬＲＦ１４は、上記のようなスキャン面Ｓｃｎの傾斜角（つまり水平面に対するスキャン面Ｓｃｎの角度α）をも、たとえば２４度から９０度の範囲で０．６度ずつ変化させる。つまり、２つの角度α，βを変化させながら距離ｄの計測を行うことができる。したがって、ＬＲＦ１４からの距離情報は３つの変数ｄ，α，βを含んでおり、このような距離情報を“３次元距離情報”と呼ぶ。
【００６４】
コンピュータ１２は、このようなＬＲＦ１４を通じて、対象の３次元距離情報を取得する。ＬＲＦ１４からの３次元距離情報には、図２（Ｂ）に示すように、対象Ｏｂｊをスキャン面Ｓｃｎで切ったとき、その切断面Ｃｒｓの輪郭線Ｌｎ上の各点Ｐについて距離ｄおよび角度α，βを示す情報（ローカル座標系）が含まれている。ただし、このＬＲＦ１４からは、レーザ光が到達しない影の部分の２次元距離情報は得られないので、対象の全体像が必要な場合には、別の１つまたは２つ以上のＬＲＦ１４を、たとえば対象を挟んで反対側に、または対象を取り囲むように配置する必要がある。
【００６５】
したがって、複数のＬＲＦ１４を所定の位置（既知）に設置すれば、コンピュータ１２は、各々から対象の３次元距離情報を取得して、３次元空間（ワールド座標系）における位置（たとえば重心など特徴点の位置座標（ｘ，ｙ，ｚ））および移動速度、さらには３次元形状および方向、そして姿勢（たとえば頭部，腕，脚など特徴部位の向き）を計算することができる。
【００６６】
ただし、ＬＲＦ１４で計測を行う場合、図３（Ａ）に示すように、スキャン面Ｓｃｎが水平面から傾斜しているために、図３（Ｂ）に示すように、対象までの水平面上の距離と比べて、計測される距離が見かけ上長くなる。また、図４に示すように、対象までの距離に応じて、対象を計測する高さ（ｚ）が変化する。したがって、ローカル座標系からワールド座標系への変換処理に加えて、傾斜を補正するための座標系の変換処理も必要となる。
【００６７】
具体的には、図３（Ａ）および図３（Ｂ）を参照して、計測された各点の変換後の位置ベクトルｘ’＝ＳＰ’は、傾斜ＬＲＦ１４ｉが水平に設置されていたと仮定した場合の位置ベクトルｘ＝ＳＰから、次式（数１）のように求められる。
【００６８】
【数１】
0005953484.tif 000002
【００６９】
ここでｎはセンサを回転する軸に平行な単位ベクトル、αはセンサの水平面からの傾斜角である。座標変換式は、回転行列を用いて次式（数２）のように記述できる。
【００７０】
【数２】
0005953484.tif 000003
【００７１】
ここでＩ３は３行３列の単位ベクトルであり、ｎの要素をｎ＝（ｎｘ，ｎｙ，ｎｚ）と定義した（ｔｎはｎの転置）。
【００７２】
このように、計測装置１０は、スキャン面Ｓｃｎの傾斜角αを変化させながら計測を行うので、１回の計測によって（たとえば傾斜角αが最小値２４度から最大値９０度まで変化する期間に）、対象の３次元形状を計算することができる。また、対象が停止していても、その３次元形状を計算することができる（ただし、対象が動いていれば、多様な位置関係で計測が行えるので、３次元形状の計算精度が高まる点で好ましい）。
【００７３】
また、傾斜角αがこのように変化することで、計測領域が拡がると共に、複数の対象が密集している状態でも、対象群を直上ないしその近傍から計測した計測データに基づいて１つ１つの対象に容易に分離することができる。そして、様々な傾斜角で計測した計測データに基づいて、分離した１つ１つの対象の３次元形状を精度よく計算することができる。
【００７４】
また、計測装置１０では、上記のように計算した３次元形状から対象の種類（たとえば人体か物体か）ないし属性（たとえば、人体なら性別や大人／子供の区別、物体ならショッピングカート／手荷物の区別など）やプロファイル（たとえば身長など）を推定したり、姿勢（たとえば頭部の向き）から行動（たとえば通路沿いの店舗や案内板を見ながら歩く行動）を推定したりすることも可能となる。
【００７５】
そして、特に、上記のような計算および推定を複数の対象について同時に行うことで、対象間の関係（たとえば友人同士か家族連れか、あるいは他人か）を推定することもできるし、友人同士や家族連れといったグループの行動パターン（たとえば、友人同士が特定の店舗や案内板に注目したり、家族連れが特定の通路を通ったり、といった行動パターン）を解析することも可能となる。
【００７６】
１６台のＬＲＦ１４のショッピングセンタへの設置例を図４に示す。図４はショッピングセンタ内を上から見た上面図である。ショッピングセンタ内には、ワールド座標系として、たとえば床面上の点Ｏを原点に、床面の長辺および短辺に沿ってＸ軸およびＹ軸が定義され、さらにＸ軸およびＹ軸の両方に垂直なＺ軸（鉛直上方）が定義される。
【００７７】
この例では、図４からわかるように、１６台のＬＲＦ１４は、ショッピングセンタを横（Ｘ軸方向）に貫く通路およびその両端に位置する広場ないしオープン形式の飲食店舗に跨って（ここでは１０台が通路に、６台が広場等に）配置され、これら通路および広場等を計測領域としてカバーする。この黒枠で示された計測領域は、たとえば約１２２０平方メートルの広さを有し、計測領域の周囲には、各種の飲食店舗や物販店舗が軒を連ねている。
【００７８】
１６台のＬＲＦ１４のうち、通路沿いの１０台（黒丸）は低所たとえば３．５ｍの高さに設置され、広場等の６台（白丸）は高所たとえば１０ｍの高さに設置される。こうして、個々のＬＲＦ１４の高さを当該ＬＲＦ１４が担当する計測領域の広さに応じて変えることで、効率のよい計測が行える。
【００７９】
個々のＬＲＦ１４は、たとえば図５に示すように、鉛直下方から前方に６６度（２４°≦α≦９０°），左右に９０度（−４５°≦β≦４５°）の範囲を計測することができる。したがって、あるＬＲＦ１４の設置高さを８ｍとすると、身長１．８ｍの歩行者を対象として計測可能な範囲は、そのＬＲＦ１４の直下で左右に１２．４ｍ、そのＬＲＦ１４の６６°（１０．７ｍ）前方では左右に３０．５ｍとなる。
【００８０】
ある１つのＬＲＦ１４による走査例を図６に示す。図６を参照して、１つ１つの黒点は、ある１つのＬＲＦ１４から角度α，βを変えながら周期的に射出されたレーザ光が対象である人体または床面に到達する位置を表している。十字印“＋”は、ＬＲＦ１４の直下位置を示す。このようなレーザ走査によって、ＬＲＦ１４自身から各黒点までの距離が計測され、計測結果から対象の位置や姿勢などの情報が得られる。
【００８１】
なお、ＬＲＦ１４の角度分解能が０．６度×０．６度（つまり角度α，βの変化が０．６度刻み）の場合、ＬＲＦ１４から対象までの距離が８ｍであれば、黒点の間隔は８ｃｍ程度となって、人体の位置や姿勢を求めるのに十分な距離分解能が得られる。
【００８２】
このようなＬＲＦ１４を複数台設置して、異なる方向から計測を行うことで、孤立した対象に対して詳細な計測が行えると共に、隣接する複数の対象に対しても、それらを互いに分離することが容易になり、かつ遮蔽（ある対象が別の対象の陰に隠れること）による計測漏れを回避することができるので、安定した計測が行える。
【００８３】
なお、図１〜図６に示した構成や数値は一例であり、ＬＲＦ１４の個数およびそれらの配置、ならびに個々のＬＲＦ１４の設置高さ，角度変域および角度分解能などは、必要に応じて適宜変更してよい。
【００８４】
次に、計測装置１０のコンピュータ１２が行う処理について説明する。最初、概要を説明する。コンピュータ１２は、まず、１６台のＬＲＦ１４からの計測データに基づいて、対象の状態（たとえば位置，移動方向，３次元形状および姿勢など）をパーティクルフィルタでリアルタイムに推定する状態推定処理を実行する。
【００８５】
パーティクルフィルタは、予測および観測を繰り返すことによって現在の対象の状態を推定する時系列フィルタの一種であり、具体的には、現状態から起こりうる次状態を多数のパーティクルに見立てて、観測された状態との間の尤度（類似度）をパーティクル毎に求め、全パーティクルを尤度に応じて加重平均した結果を現在の対象の状態であると推定する。そして、重みに従う新たなパーティクルを発生させ、同様の処理を繰り返すことで、対象の状態を逐次推定することができる。
【００８６】
状態推定処理では、１つ１つの対象の状態を専用のパーティクルフィルタで推定する。したがって、たとえば１０個の対象が検出されている状態では、１０個のパーティクルフィルタが並列に動作しており、別の対象が検出されると、１１個目のパーティクルフィルタが新たに生成される。
【００８７】
コンピュータ１２はまた、上記のような状態推定処理と並列的に、各対象の状態に基づいて、各対象が“一人”であるかグループに属するかを推定するグループ推定処理、および各対象が個別に行う行動（たとえば店舗や案内板を見る行動）を推定する個別行動推定処理をも実行する。
【００８８】
そして、各種の推定処理が完了した後、コンピュータ１２はさらに、推定結果に基づいてグループ行動を解析する。このグループ行動解析処理では、各グループを“友達同士”，“家族連れ”，“カップル”などのカテゴリに分類したり、個別行動情報をグループ毎に解析してグループ行動情報を作成したり、グループ行動情報をカテゴリ毎に解析してグループ行動パターン情報を作成したりする。
【００８９】
次に、具体的な処理手順について、図７のメモリマップおよび図８〜図１３のフローチャートを用いて、図１４〜図１７の図解も参照しながら説明する。上述したような一連の処理は、コンピュータ１２のＣＰＵ１２ｃが、メモリ１２ｄに記憶された図７に示すようなプログラムおよびデータに基づいて、図８〜図１３に示すようなフローに従う処理を実行することにより実現される。
【００９０】
図７を参照して、メモリ１２ｄにはプログラムエリア２０およびデータエリア２２が形成され、プログラムエリア２２に計測プログラム３２が格納される。計測プログラム３２は、ＣＰＵ１２ｃを介してＬＲＦ１４による計測処理を実現するソフトウェアプログラムであり、図８〜図１３のフローのうち特に図８のメインフローに対応している。
【００９１】
計測プログラム３２には、サブのソフトウェアプログラムである推定プログラム３２ａおよび解析プログラム３２ｂが含まれている。推定プログラム３２ａは、パーティクルフィルタによる状態推定処理（図９）、属性／プロファイル推定処理（図１０）、個別行動推定処理（図１１）およびグループ推定処理（図１２）を担当し、解析プログラム３２ｂは、グループ解析処理（図１３）を担当する。なお、図示は省略するが、プログラムエリア２０には、入力器１２ａおよび表示器１２ｂを制御してキー入力，画像出力などを実現する入出力制御プログラムなども記憶される。
【００９２】
データエリア２２には、計測データ３４，変換データ３６，パーティクルフィルタ３８，対象情報４０，グループ情報４２，個別行動情報４４，グループ行動情報４６，グループ行動パターン情報４８，３次元形状モデルデータベース（ＤＢ）５０および地図データ５２が記憶さる。計測データ３４は、各ＬＲＦ１４による計測の結果を示すデータである（先述したような３次元距離情報を含む）。変換データ３６は、計測データ３４に後述するような２種類の座標変換処理を施して得られるデータである。パーティクルフィルタ３８は、変換データ３６に基づいて各対象（Ｔ１，Ｔ２，…）の状態を推定するための時系列フィルタであり、対象Ｔ１用パーティクルフィルタ３８ａ，対象Ｔ２用パーティクルフィルタ３８ｂ，…を含む。
【００９３】
対象情報４０は、各対象（Ｔ１，Ｔ２，…）の状態や属性／プロファイルを示す情報であり、パーティクルフィルタ３８による推定の結果に基づいて作成される。具体的には、図１６（Ａ）に示すように、状態として位置，移動方向，３次元形状および姿勢が、属性／プロファイルとして身長，性別および大人／子供の区別が記述される。
【００９４】
グループ情報４２は、対象情報４０から推定されるグループを示す情報であり、具体的には、図１６（Ｂ）に示すように、各グループ（Ｇ１，Ｇ２，…）について要素およびカテゴリが記述される。このグループ情報４２からは、対象Ｔ１およびＴ２でグループＧ１が構成され、二人は友達同士であることが分かる。また、対象Ｔ５〜Ｔ７でグループＧ２が構成され、三人は家族連れであることが分かる。なお、どのグループにも含まれない対象については、“一人”であるとみなされる。
【００９５】
個別行動情報４４は、各対象（Ｔ１，Ｔ２，…）の個別的な行動を示す情報であり、対象情報４０から推定される。個別行動情報４４には、図１６（Ｃ）に示すように、各対象（Ｔ１，Ｔ２，…）について、当該対象の地図上での軌跡と共に、当該対象の行動が「（対象Ｔ１は）店舗Ａ，Ｂ，…および案内板Ｐを見た」，「（対象Ｔ２は）店舗Ａ，Ｃ，…および案内板Ｐを見た」のように記述される。
【００９６】
グループ行動情報４６は、各グループ（Ｇ１，Ｇ２，…）の行動を示す情報であり、グループ情報４２および個別行動情報４４に基づいて作成される。グループ行動情報４６には、図１６（Ｄ）に示すように、各グループ（Ｇ１，Ｇ２，…）について軌跡および行動が記述される。たとえば、グループＧ１の軌跡は、グループＧ１に属する対象Ｔ１およびＴ２の軌跡を平均したものである。グループＧ１の行動は、グループＧ１に属する対象Ｔ１およびＴ２の行動に関する和集合であり、具体的には、「（対象Ｔ１は）店舗Ａ，Ｂ，…および案内板Ｐを見た」および「（対象Ｔ２は）店舗Ａ，Ｃ，…および案内板Ｐを見た」に基づいて「店舗Ａ，Ｂ，Ｃ，…および案内板Ｐを見た」などのように記述される。
【００９７】
グループ行動パターン情報４８は、同じカテゴリに属するグループ行動に共通のパターンを示す情報であり、グループ情報４２およびグループ行動情報４６に基づいて作成される。グループ行動パターン情報４８には、図１６（Ｅ）に示すように、各カテゴリ（友達同士，家族連れ，カップル）について要素および行動パターンが記述される。たとえば、“友達同士” の行動パターンは、“友達同士”に属するグループＧ１，Ｇ５，…の行動に関する積集合であり、「（友達同士のグループは）店舗Ａおよび案内板Ｐを見る」などのように記述される。
【００９８】
３次元形状モデルＤＢ５０は、対象の３次元形状および姿勢を推定するための２種類のモデルＭ１およびＭ２を登録したデータベースである。モデルＭ１は、図１４に示すような肩から上の身体形状を示すモデルであり、頭頂部の中心位置Ｏを原点として高さｚおよび方向θにおける半径ｒを定義すると、ｒ（ｚ，θ）のように表現される。一方、モデルＭ２は、図１５に示すような全身の骨格を示すモデルであり、楕円で示された頭部の骨、四辺形で示された胴体の骨、および８本の線分で示された手足の骨と、これらの骨を繋ぐ８個の黒丸で示された関節とで表現される。モデルＭ２では、肩から上がモデルＭ１に対応しており、各骨の長さＲ１〜Ｒ４，Ｌ１〜Ｌ４は既知である（計測データ３４に基づいて計算された値がセットされる）。
【００９９】
図８を参照して、計測処理が開始されると、ＣＰＵ１２ｃは、まず、ステップＳ１で初期処理を行う。初期処理では、たとえば、データエリア２２内の各種情報（４０〜４９）の初期化、３次元形状モデルＤＢ５０へのモデルＭ１およびＭ２の登録、および地図データ５２の取込みなどが行われる。
【０１００】
初期処理が完了すると、ステップＳ３に進んで、各ＬＲＦ１４の傾斜角（α）を制御する。初回実行時には、変数αに初期値（たとえば２４度）をセットし、２回目以降の実行時には、αを０．６度ずつ増加させていき、αが上限値（たとえば９０度）に達するとαを初期値に戻して同様の動作を繰り返す。各ＬＲＦ１４は、ＣＰＵ１２ｃが指定した変数αに従ってスキャン面の傾斜角を変化させる。
【０１０１】
次に、ステップＳ５で各ＬＲＦ１４から計測データ３４を取得し、ステップＳ７では、その取得した計測データ３４に、スキャン面Ｓｃｎの傾斜を補正するための座標変換（数１および数２参照）を施す。そして、その座標変換された計測データをステップＳ９で空間的に統合する。言い換えると、ステップＳ７で座標変換された計測データに対してさらに、ローカル座標系からワールド座標系への座標変換を施す。
【０１０２】
次に、ステップＳ１１で、２種類の座標変換が施された後の計測データつまり変換データ３６に基づいて対象を検出する。具体的な検出方法としては、床面の位置を予め入力しておき、床面より一定以上高い位置で検出された一定数以上の計測点の集合を対象とみなす方法がある。または、同じ方向を一定時間計測して、得られた最大距離を背景の位置として登録し、背景より一定距離以上手前にある1計測点の集合を対象とする方法も挙げられる。対象間の距離が接触するほど接近していない場合には、３次元空間上で相対的に近い距離に集まった計測点の集合を、クラスタリングによって個別の対象として分離して抽出することも可能である。いずれにしても、ＬＲＦ１４による３次元計測では、カメラを用いた３次元計測手法と比較して、個々の対象を分離しやすい利点がある。そして特に、スキャン面Ｓｃｎの傾斜角αを変化させながら計測を行う場合には、計測領域が拡がると共に、個々の対象を分離して３次元形状を精度よく計算することができる。
【０１０３】
その後、ステップＳ１３に進んで、新たな対象が検出されたか否かを判別し、ここでＮＯであれば、ステップＳ１５に移って、既検出の対象が消滅したか否かをさらに判別する。ここでもＮＯであれば、ステップＳ３に戻って上記と同様の処理を（たとえば０．１秒毎に：以下同様）繰り返す。
【０１０４】
ステップＳ１３でＹＥＳであれば、ステップＳ１７に進んで、当該対象用のパーティクルフィルタ３８を生成し、その後、ステップＳ３に戻って上記と同様の処理を繰り返す。ステップＳ１５でＹＥＳであれば、ステップＳ１９に進んで、当該対象用のパーティクルフィルタ３８を削除し、その後、ステップＳ３に戻って上記と同様の処理を繰り返す。
【０１０５】
したがって、たとえば、２つの対象Ｔ１およびＴ２が検出されている状態では、これら対象Ｔ１およびＴ２用の２つのパーティクルフィルタ３８ａおよび３８ｂがデータエリア２２に記憶され、それらによる２つの状態推定処理が並列に実行されている。この状態で、新たな対象Ｔ３が検出されると、対象Ｔ３用のパーティクルフィルタ３８ｃが追加され、一方、既検出の対象（たとえばＴ１）が消滅すると、当該対象用のパーティクルフィルタ３８（たとえば対象Ｔ１用パーティクルフィルタ３８ａ）は削除される。
【０１０６】
こうして生成されたパーティクルフィルタ３８ａ，３８ｂ，…による対象Ｔ１，Ｔ２，…の状態推定処理は、それぞれ図９のフローに従って実行される。すなわち、図９と同様のフローが、現在検出されている対象の数と同数だけ並列に実行される。このうち、パーティクルフィルタ３８ａによる対象Ｔ１の状態推定処理は、以下のようになる。
【０１０７】
図９を参照して、まず、ステップＳ２１で、パーティクルフィルタ３８ａに含まれる各パーティクルを初期化した後、ステップＳ２３に進んで、対象Ｔ１の状態に関する複数の仮説を生成する。ここで状態には、位置，移動方向，３次元形状および姿勢（たとえば頭部の向き）などが含まれる。そして、ステップＳ２５で、各パーティクルにいずれか１つの仮説を付与する。
【０１０８】
次に、ステップＳ２７で、新たな計測データ３４が取得されたか否かを判別し、ＮＯであれば待機する。先述した計測処理（図８参照）によってデータエリア２２内の計測データ３４ひいては変換データ３６が更新されると、ステップＳ２７でＹＥＳと判別し、ステップＳ２９〜Ｓ３９の一連の処理を実行する。
【０１０９】
すなわち、ステップＳ２９では、モデルＭ１に基づいて、現在の計測値に対する各パーティクルの尤度を計算し、ステップＳ３１では、全パーティクルを計算した尤度に応じて加重平均する。ステップＳ３３では、その加重平均値を対象Ｔ１の状態に関する推定値として出力する。データエリア２２に記憶された対象情報４０は、こうして出力される推定値に基づいて更新される。
【０１１０】
さらに、ステップＳ３５で、先に計算した尤度に基づきパーティクルの選択を行い、パーティクルの集合を更新した後、ステップＳ３７に進んで、次の計測時点での各パーティクルの状態を予測する。そして、ステップＳ３９で予測結果に基づき仮説を更新した後、ステップＳ２５に戻って上記と同様の処理を繰り返す。
【０１１１】
これによって、対象Ｔ１の位置および姿勢は、具体的には以下のように推定される。この推定処理は、要するに、対象Ｔ１に対応する計測点の集合（ステップＳ５の検出結果）をＸとして、Ｘに最も合うようなモデルＭ１の位置および正面の方向Αを求める手続きである。なお、モデルＭ１の正面方向Αは、対象Ｔ１の視線方向とみなしてよい。
【０１１２】
すなわち、最初、対象Ｔ１に対応する計測点（ｘ，ｙ，ｚ）の集合をＸにセットする。次に、先述のｒ（ｚ，θ）で表現されるモデルＭ１（図１３参照）に対し、ある位置および方向つまり（Ｘｃ，Α）を与える。そして、Ｘの各点Ｘiに次式（数３）による演算を行い、演算結果の集合をＸ’とする。
【０１１３】
【数３】
0005953484.tif 000004
【０１１４】
このＸ’に対して、モデルＭ１つまりｒ＝ｒ（θ，ｚ）との誤差ｅｒｒｏｒを次式（数４）のように定義する。
【０１１５】
【数４】
0005953484.tif 000005
【０１１６】
ここでＸ’＝（ｘ’，ｙ’，ｚ’）t ，ｒ’＝√｛ｘ’２＋ｙ’２｝である（ただし上付tは行列の転置を意味する）。
【０１１７】
以上のような準備の後、パーティクルフィルタを用いて（Ｘｃ，Α）の様々な値に対するｅｒｒｏｒを計算し、計算結果が最小になる（Ｘｃ*，Α*）を、対象Ｔ１に関する位置および方向の推定値とする。
【０１１８】
なお、（Ｘｃ*，Α*）の求め方については、たとえば、次式（数５）で与えられる計測点の中心位置〈Ｘｃ〉を初期値として、その周辺の値を探索する方法がある。
【０１１９】
【数５】
0005953484.tif 000006
【０１２０】
ここで、〈ｘ〉，〈ｙ〉はそれぞれＸに含まれる計測点のｘ，ｙ座標の平均であり、ｚmaxはＸに含まれる計測点のz座標の最大値である。具体的には、Ｘｃとして〈Ｘｃ〉の近傍の様々な値を、Αとして全ての方向の様々な角度値をそれぞれ選択しながら、上式（数４）でｅｒｒｏｒを計算し、計算結果が最小になるようなＸｃおよびΑの組み合わせを（Ｘｃ*，Α*）として出力すればよい。
【０１２１】
なお、ここでは、位置および姿勢として、肩から上の位置および向きを推定したが、より特定的に、頭部の位置および向きを推定してもよい。この場合、たとえば肩に対する頭部の回転角度をパラメータとして持つモデル（図示せず）を用いることも考えられる。人の頭部の形状には個人差があるものの、左右の対象性などの一般的な特徴を反映したモデルを用いることで、頭部の向きの推定は可能である。さらには、このようなモデルを対象Ｔ１，Ｔ２，…毎に準備して、各対象から計測された頭部形状に基づいて各モデルを動的に変化させる（対象Ｔ１，Ｔ２，…毎に頭部の形状を学習していく）ことで、各対象について頭部の位置および向きを精度よく推定することができる。その際、頭部の平均的な向きは移動方向に一致すると仮定すれば、各対象が歩きながら見た店舗や案内看板を推定することも可能である。
【０１２２】
また、対象Ｔ１，Ｔ２，…の密度が比較的低い（重なり合わない程度に間隔が空いている）場合には、モデルＭ１を用いて求めた肩から上（頭部）の位置および方向を基準として、全身の骨格を示すモデルＭ２を適用することによって、さらに腕や脚の姿勢も推定できる。
【０１２３】
モデルＭ１に加えてモデルＭ２を適用する利点は、モデルＭ１によって身長が既知となった結果、モデルＭ２によって腕や脚といった各部位の長さを精度よく推定できる点にある。加えて、モデルＭ１によって肩から上（頭部）の位置および向きが既知となるので、腕や脚といった各部位について可能な姿勢の候補数が削減され、その結果、モデルＭ２による姿勢の推定を効率的に行える点も挙げられる。
【０１２４】
モデルＭ２を用いた姿勢の推定では、まず、モデルＭ１を用いて求めた肩から上（頭部）の位置および方向に整合するように、モデルＭ２の頭部と肩（胴体）の姿勢を決め、次に、腕や脚といった各部位について、モデルＭ１を用いる場合と同様に可能な姿勢（ここでは８個の関節角の組）の候補を計算する。そして、計測点との誤差が最小になるような関節角の組を求め、それを各部位の姿勢として出力すればよい。
【０１２５】
移動方向および３次元形状についても、上記と同様に、まず可能な候補を計算し、次に、パーティクルフィルタ３８ａを用いて、計測点との誤差が最小となる移動方向および３次元形状を求め、それらを推定結果として対象情報４０に記述すればよい。
【０１２６】
パーティクルフィルタ３８ｂ，３０ｃ，…による対象Ｔ２，Ｔ３，…の状態推定処理もそれぞれ上記と同様に実行され、それらの推定結果が対象情報４０に反映される。
【０１２７】
上記のようにして推定された対象Ｔ１，Ｔ２，Ｔ３，…の状態（対象情報４０）に基づく属性／プロファイル推定処理は、それぞれ図１０のフローに従って実行される。すなわち、図１０と同様のフローが、現在検出されている対象の数と同数だけ並列に実行される。このうち、対象Ｔ１の属性／プロファイル推定処理は、以下のようになる。
【０１２８】
最初、ステップＳ５１で、繰り返し推定される３次元形状に基づいて、対象Ｔ１の属性ないしプロファイル、ここでは身長，性別および大人／子供を特定する。そして、特定に成功したか否かをステップＳ５３で判別し、ＮＯであればステップＳ５１に戻って上記と同様の処理を繰り返す。ステップＳ５３でＹＥＳであれば、その特定結果を対象情報４０に記述した後、ステップＳ５１に戻って上記と同様の処理を繰り返す。
【０１２９】
また、上記のようにして推定された対象Ｔ１，Ｔ２，Ｔ３，…の状態（対象情報４０）に基づく個別行動推定処理は、それぞれ図１１のフローに従って実行される。すなわち、図１１と同様のフローが、現在検出されている対象の数と同数だけ並列に実行される。このうち、対象Ｔ１の個別行動推定処理は、以下のようになる。
【０１３０】
図１１を参照して、最初、ステップＳ６１で、繰り返し推定される位置（対象Ｔ１の現在位置）を蓄積していき、蓄積結果を対象Ｔ１の軌跡として個別行動情報４４に記述する。次に、ステップＳ６３で、繰り返し推定される２つの方向つまり移動方向および肩から上（頭部）の方向を比較して、肩から上（頭部）が移動方向とは異なる方向を向いたか否かを次のステップＳ６５で判別する。
【０１３１】
肩から上（頭部）が移動方向に対して一定角度以上回転し、かつその状態が一定時間以上継続した場合に、ステップＳ６５でＹＥＳと判別してステップＳ６７に進む。一方、肩から上（頭部）の回転角が一定角度に満たないか、たとえ回転角が一定角度以上であってもその状態の継続時間が一定時間に満たない場合には、ステップＳ６５でＮＯと判別し、ステップＳ６１に戻って上記と同様の処理を繰り返す。
【０１３２】
ステップＳ６７では、地図データ５２に基づいて、たとえば図１７に示すように、肩から上（頭部）の向いた先、つまり視線方向に存在する店舗や案内板（ここでは店舗Ａおよび案内板Ｐ）を特定する。そして、ステップＳ６９で、その特定結果に基づいて、対象Ｔ１の行動たとえば「店舗Ａと案内板Ｐを見た」を個別行動情報４４に記述する。その後、ステップＳ６１に戻って上記と同様の処理を繰り返す。
【０１３３】
これにより、個別行動情報４４に記述された対象Ｔ１の軌跡および行動が周期的に更新されていく。たとえば、行動に関する記述は、「店舗Ａと案内板Ｐを見た」→「店舗Ａ，Ｂと案内板Ｐを見た」→「店舗Ａ，Ｂ，…と案内板Ｐを見た」のように変化する。対象Ｔ２，Ｔ３，…の個別行動推定処理もそれぞれ上記と同様に実行され、それらの推定結果が個別行動情報４４に反映される（図１６（Ｃ）参照）。
【０１３４】
また、先述のようにして推定された対象Ｔ１，Ｔ２，Ｔ３，…の状態に基づいて、図１２のフローに従うグループ推定処理がさらに実行される。図１２を参照して、最初、ステップＳ８１で、グループ情報４２を初期化する。これによって、各対象は、ひとまず“一人”とみなされる。次に、ステップＳ８３で、対象情報４０に基づいて、対象Ｔ１，Ｔ２，…の間で互いの位置および移動方向を比較し、そして、ステップＳ８５で、位置が近接しかつ移動方向が共通の対象があるか否かを判別する。ここでＮＯであれば、所定時間の待機状態を経てステップＳ８３に戻り、上記と同様の処理を繰り返す。
【０１３５】
ステップＳ８５でＹＥＳであれば、ステップＳ８７に進んで、当該対象の間で互いの姿勢（肩から上ないし頭部の向き）を比較し、そしてステップＳ８９で、肩から上ないし頭部が一定以上の頻度で相対する向きを向くか否かを判別する。ここでＮＯであれば、所定時間の待機状態を経てステップＳ８３に戻り、上記と同様の処理を繰り返す。
【０１３６】
ステップＳ８９でＹＥＳであれば、ステップＳ９１に進んで、当該対象を１つのグループとしてグループ情報４２（図１６（Ｂ）参照）に登録する。その後、ステップＳ８３に戻って上記と同様の処理を繰り返す。
【０１３７】
これによって、たとえば対象Ｔ１およびＴ２が１つのグループであると推定された場合、対象Ｔ１およびＴ２を要素とするグループＧ１がグループ情報４２に登録される。その後に、たとえば対象Ｔ５〜Ｔ７が１つのグループであると推定されたとすると、対象Ｔ５〜Ｔ７を要素とするグループＧ２がグループ情報４２に追加登録される。なお、図示は省略するが、ある時点まで１つのグループであると推定されていた対象（たとえばＴ１およびＴ２）が消滅ないし離散した場合、当該グループ（たとえばＧ１）の登録はグループ情報４２から抹消される。
【０１３８】
一方、グループＧ１，Ｇ２，…の行動を解析するグループ行動解析処理は、上記のようして推定された対象Ｔ１，Ｔ２，Ｔ３，…の個別行動（個別行動情報４４）に基づいて、図１３のフローに従って実行される。
【０１３９】
図１３を参照して、最初のステップＳ１０１では、対象情報４０に記述された身長，性別および大人／子供の区別、ならびにグループ情報４２に記述された要素の数（現在検出されている対象Ｔ１，Ｔ２，…の総数）に基づいて、各グループを友達同士，家族連れおよびカップルのいずれかのカテゴリに分類し、結果をグループ情報４２に追記する。
【０１４０】
次のステップＳ９３では、個別行動情報４４をグループ毎に解析して、グループ行動情報４６を作成する。具体的には、グループＧ１に属する対象Ｔ１およびＴ２の軌跡からそれらの平均を求め、その平均軌跡をグループ行動情報４６に記述する。また、対象Ｔ１およびＴ２の行動の和集合を求め、結果をグループ行動情報４６にさらに記述する。
【０１４１】
その次のステップＳ９５では、グループ行動情報４６をカテゴリ毎に解析して、グループ行動パターン情報４８を作成する。具体的には、友達同士に分類されたグループ（たとえばＧ１，Ｇ５，…）の行動からそれらの積集合を求め、その結果を友達同士のグループの行動パターン（たとえば「店舗Ａと案内板Ｐを見る」）としてグループ行動パターン情報４８に記述する。家族連れ，カップルについても、同様に行動の積集合を求め、それぞれの結果を家族連れ，カップルの行動パターンとしてグループ行動パターン情報４８に記述する。
【０１４２】
こうして、各グループの分類，行動および行動パターンについて解析が完了すると、このグループ解析処理は終了される。
【０１４３】
なお、以上のフローでは、対象の状態をパーティクルフィルタ３８で推定したが、カルマンフィルタなど他の時系列フィルタで推定してもよいし、時系列フィルタリング以外の方法たとえば動的計画法(Dynamic Programming)によるＤＰマッチングなどによって推定してもよい。
【０１４４】
以上から明らかなように、この実施例の計測装置１０は、スキャン面Ｓｃｎが傾斜した１６台のＬＲＦ１４をショッピングセンタ内に配置して、複数の対象（Ｔ１，Ｔ２，…）を計測する。なお、ＬＲＦ１４の台数は、計測領域に応じて適宜な台数が選ばれてよく、場合によっては１台でもよい。ＬＲＦ１４の配置は、それぞれの計測領域が適宜オーバーラップするように決められるが、場合によっては、オーバーラップはなくてもよい。
【０１４５】
詳しくは、計測装置１０のコンピュータ１２は、ステップＳ１で、複数の対象に関する３次元形状モデル（Ｍ１，Ｍ２）をＤＢ５０に登録し、その後、ステップＳ３で、ＬＲＦ１４を制御してスキャン面Ｓｃｎの水平面に対する傾斜角αを２４度〜９０度の範囲で変化させつつ、ステップＳ５〜Ｓ１９およびＳ２１〜Ｓ３９で複数の対象それぞれのパーティクルフィルタ３８ａ，３８ｂ，…を用いてＬＲＦ１４からの計測データ３４（変換データ３６）と３次元形状モデル５０（Ｍ１，Ｍ２）との比較を行うことにより複数の対象それぞれの状態（位置，移動方向，３次元形状および姿勢）を推定する。なお、傾斜角αの変化範囲は、２４度〜９０度に限らず、分離の容易さと計測領域の広さとのバランスを考慮して、適宜な範囲（たとえば２０度〜８０度や３０度〜１５０度など）を選べばよい。
【０１４６】
こうして、傾斜角αを変化させつつ計測を行うことで、複数の対象Ｔ１，Ｔ２，…の分離が容易となり、分離された複数の対象Ｔ１，Ｔ２，…それぞれにパーティクルフィルタ３８ａ，３８ｂ，…を用いることで、それぞれの３次元形状および姿勢を精度よく推定することができる。また、動く対象でも停止した対象でも、その３次元形状を推定できる。
【０１４７】
特に、３次元形状モデルとして、肩から上の身体形状モデルＭ１を用いることで、肩から上ないし頭部の３次元形状および向き（Α：図１７参照）を推定できるし、全身の骨格モデルＭ２も併用することで、腕や脚の向きの推定も可能になる。
【０１４８】
また、頭部の３次元形状から、身長などのプロファイルや、性別，大人／子供の区別といった属性を推定することができるし、頭部の向きΑからは、特定の店舗や案内板を見るといった行動（個別行動）の推定も可能である。
【０１４９】
そして、複数の対象Ｔ１，Ｔ２，…の間で位置，移動方向および姿勢（頭部の向きΑ）を比較することによってグループか一人かの推定も行えるし、グループＧ１，Ｇ２，…を各対象の属性に基づいて複数のカテゴリ（友達同士，家族連れおよびカップルなど）に分類することも可能である。
【０１５０】
さらには、個別行動情報４４をグループ毎に解析することでグループ行動情報４６を作成したり、グループ行動情報４６をカテゴリ毎に解析してグループ行動パターン情報４８を作成したりすることもできる。
【０１５１】
このほか、混雑した状況でも一人一人の位置が計測可能になることにより、特定の場所を訪れる正確な人数を集計することができる。また、混雑した状況でも一人一人の移動軌跡を求めることが可能であり、一人一人の移動軌跡からグループ単位での移動軌跡（平均軌跡）を求めることもできる。これらにより、人の移動を妨げる原因を調査したり、環境内に新たな物体を置いた場合やイベントを行った場合の人の流れを調べたりすることが可能になる。
【０１５２】
また、上記のような調査を行う際に、大人と子供を区別して集計したり、男女別に集計したりすることができるし、大人／子供や性別といった属性による行動パターンの違いを解析することも可能になる。
【０１５３】
さらに、肩の位置から人の上半身の方向を知ることができるし、特に、顔の向いている方向から人の興味を持つ対象を推定することも可能である。多くの人が興味を示す対象の位置を求めることにより、案内の設置や広告の設置を検討する根拠を得ることができる。
【０１５４】
加えて、グループ推定を行い、グループを単位として群集の行動を解析することで、一人一人を他人として扱った場合と比べて、より実際に近い行動を知ることができる。
【０１５５】
こうして、計測装置１０は、ＬＲＦ１４で複数の対象Ｔ１，Ｔ２，…を計測して、多様な情報を得ることができる。
【０１５６】
そして、これらの情報は、たとえば、環境内でロボットを動かす際に有用である。具体的には、ロボットは、環境内での人の移動の統計解析を行うことにより、場所や時間による人の動きの違いを理解して、人の動きを遮らないように動くことができる。また、人の通常移動する経路に沿って、人の動きに寄り添いながらサービスをすることが可能になる。また、サービスを行う場所まで移動する際に、多くの人が移動する経路を避ける制御を行ったり、多くの人が興味を示す方向を避ける（つまり人の視界にできるだけ入らないようにする）制御を行ったりすることも可能である。また、リアルタイムに計測された人の位置および頭部の向き（視線方向：人が興味を示した方向）に基づいて、人の興味に応じたサービスを行うことも可能である。また、人のグループを認識することにより、グループの中に割り込まないように移動したり、グループ全員で食事のできる場所を紹介したりといった、グループで訪れた人に適したサービスを提案することが可能である。
（第２実施例）
この実施例（第２実施例）の計測装置１０のハードウェア構成は、前の実施例（第１実施例）の計測装置１０のそれと同様である。よって、図１〜図３を援用し、詳しい説明を省略する。また、計測装置１０の基本動作および設置環境等も、前の実施例の場合と同様なので、図４〜図６を援用し、詳しい説明を省略する。
【０１５７】
この実施例と前の実施例との間で計測装置１０の動作上の主要な相違は、人の姿勢を推定するにあたって、後者が、図１７に示されるように、頭部ないしは肩から上の全体的な方向を検出している（つまり体の方向と頭の方向とを特に区別していない）のに対し、前者は、図１８に示されるように、体の方向（θｂ）と頭の方向（θｈ）とを明確に区別する点にある。
【０１５８】
これは、コンピュータ１２の処理でいえば、パーティクルフィルタによる状態推定処理（図９参照）に供される変数（位置，移動方向，３次元形状および姿勢を示す変数）のうち、姿勢を示す変数の数が、前の実施例の場合よりも１つ多い、という違いになる。
【０１５９】
したがって、メモリ１２ｄの内容およびＣＰＵ１２の処理も、一部を除いて前の実施例と同様なので、図７〜図１７を援用し、共通点についての説明は省略または簡略化する。以下、上記の相違点を中心に、図１８〜図３０を用いて詳しく説明する。
【０１６０】
図１９には、ＬＲＦ１４の出力（３Ｄスキャンデータ）に基づいて人の位置および姿勢（体の方向および頭の方向）を計測する方法（頭と両肩が検出された場合）が示される。この位置＆姿勢計測方法は、（Ａ）頭上部および肩の検出、（Ｂ）特徴抽出、および（Ｃ）位置および姿勢の計算、の大きく３段階で構成される。
（Ａ）頭上部および肩の検出
一人の被験者（人体の少なくとも肩から上）に対応する３Ｄスキャンデータ（以下単に“３Ｄスキャン”）を層化し、頭上層のデータ（“頭上層”）および肩の層のデータ（“肩の層”）を抽出する。
【０１６１】
具体的には、計測装置１０は、図２０に示されるように、ＬＲＦ１４の出力に基づく人体の３Ｄスキャン（ＳＣ）を、最も上の点つまり頭頂点（ＨＴＰ）から所定幅（たとえば１０ｃｍ）で水平方向にスライスして、上から１番目の層（頭頂点を０として、０〜１０ｃｍの範囲に入る点の集合）および４番目の層（３０〜４０ｃｍの範囲に入る点の集合）をそれぞれ頭上層（ＨＬＹ）および肩の層（ＳＬＹ）として抽出する。
【０１６２】
なお、スライス幅は、固定値でもよいが、好ましくは、身長（大人／子供）に応じて変化するパラメータであり、たとえば、身長１７０ｃｍ（大人）の場合は１０ｃｍ、身長１００ｃｍ（子供）の場合は６．５ｃｍ、などのように設定される。
【０１６３】
または、上記のように一定間隔で均等にスライスする代わりに、人体形状に応じた間隔で不均等にスライスしてもよい（たとえば、第１層は１０ｃｍ、第４層は１３ｃｍなど）。または、いったん均等にスライスした後、各層に属する点の数を計数して、その比率が人体形状と適合するように各層の幅を調節する方法もある。
【０１６４】
図２０の人体に対応する典型的な３Ｄスキャンの形状を、頭上層および肩の層にそれぞれ黒およびグレーのハッチングを付けて、図２１〜図２４に示す。図２１は、ＬＲＦ１４の計測角が９０度で、人がＬＲＦ１４に対して横向きの場合の形状を、図２２は、ＬＲＦ１４の計測角が９０度で、人がＬＲＦ１４に対して正面向きの場合の形状を、図２３は、ＬＲＦ１４の計測角が０で、人がＬＲＦ１４に対して正面向きの場合の形状を、図２４は、ＬＲＦ１４の計測角が３０〜４０度で、人がＬＲＦ１４に対して横または斜め向きの場合の形状を、それぞれ示している。
【０１６５】
なお、この実施例で「計測角」とは、ＬＲＦ１４の光軸が鉛直線に対してなす角をいい、ＬＲＦ１４を真下に向けた場合は０度、真横に向けた場合は９０度となる。前の実施例で用いた「傾斜角」（α：図３（Ａ）参照）との間では、“計測角＝９０°−α”の関係がある。
【０１６６】
ＬＲＦ１４の計測領域を図５のように設定した場合、つまりＬＲＦ１４を８ｍの高さに設置して、鉛直線に対し±４５度の振り角で０〜６６度の範囲を計測する場合に得られるのは、図２３または図２４のような３Ｄスキャンである。図２３の例では、頭上部の全部または大部分と左右両方の肩とを視認できるのに対し、図２４の例では、頭上部の一部と一方の肩しか視認できない。ここでは、図２３に示されるように、頭上部の全部または大部分と両肩とが検出されたものとする。
（Ｂ）特徴抽出
まず、（１）頭上層から“頭の中心点”を求め、（２）肩の層からは“体の方向ベクトル”を求める。次に、（３）頭上層から、体の方向ベクトルに対して最も後ろにある“頭の後部点”（“頭後点”ともいう：図１８参照）を求め、さらに（４）頭上層から、“頭の後部点”に対して最も遠いところにある“頭の前部点”（“頭前点”ともいう）を求める。
【０１６７】
より具体的には、図１８も参照して、計測装置１０は、（１）頭上層の中心点（Ｐ：つまり頭上層に含まれる点の平均、あるいは頭上層の重心）を求め、これを“頭の中心点”とする。また、（２）肩の層に主成分分析を施し、その第２主成分を“体の方向”とする。なお、この場合の第１主成分は、両肩をつなぐ線の方向である。前後の向きは、「一般に肩よりも頭が前方にある」という人体の特徴に基づいて決められる。これにより、体の方向を示すベクトル（体の方向ベクトルＶｂ）が求まる。
【０１６８】
次に、計測装置１０は、（３）頭上層において、体の方向ベクトルＶｂに対して最も後方のものから一定数の点（たとえば頭上層全体の１／５の点）を特定し、その特定された点で構成される頭後領域（ＨＲＡ）の中心点を求めて、これを“頭後点”（ＨＲＰ）とする。１／５という割合は、一例に過ぎず、適宜変更されてよい（たとえば２５％など）。
【０１６９】
なお、上記のように頭後領域を決める場合、図１８に示されるように、頭上層を頭後領域ＨＲＡとそれ以外の領域とに区分する境界線ＢＮ１は、両肩をつなぐ線ＳＬＮと一般に一致しない。他の実施例では、頭上層のうち両肩をつなぐ線ＳＬＮよりも後方の領域を頭後領域と定義してもよい（この場合の境界線ＢＮ１は、両肩をつなぐ線ＳＬＮと常に一致する：図示せず）。両肩をつなぐ線ＳＬＮは、たとえば、肩の層の中心点を通り、かつ肩の層の第１主成分に平行な直線として求めることができる。また、境界線ＢＮ１は、直線とは限らず、曲線でもよい（部分的にまたは全体的に湾曲したり折れ曲がったりしていてもよい）。
【０１７０】
次に、計測装置１０は、（４）頭上層において、頭後点に対して遠い順に一定数の点（たとえば頭上層全体の１／５の点）を特定し、その特定された点で構成される頭前領域（ＨＦＡ）の中心点を求め、これを“頭前点”（ＨＦＰ）とする。１／５という割合もまた、適宜変更されてよい（たとえば３０％など）。
【０１７１】
なお、この場合、頭上層を頭前領域とそれ以外の領域とに区分する境界線ＢＮ２は、図１８に示されるように曲線（円弧）となるが、他の実施例では、直線でもよい。たとえば、頭の中心点Ｐに関して、頭後領域側の境界線ＢＮ１と対称な直線を求め、これを境界線ＢＮ２と定義する。この場合、頭上層において境界線ＢＮ２よりも前方の領域が、頭前領域となる。
（Ｃ）位置および姿勢の計算
前段の（１）で求めた頭の中心点を人の“位置”Ｐ（ｘ，ｙ）とし、（２）で求めた体の方向ベクトルＶｂの方向を“体の方向”θｂとし、そして（３）で求めた頭後点から（４）で求めた頭前点に向かう方向を“頭の方向”θｈとする。具体的には、計測装置１０は、人の状態を示す変数のうち位置および姿勢を示す変数（ｘ，ｙ，θｂおよびθｈ）に計算結果をセットする。
【０１７２】
一方、頭上部の一部と片方の肩しか検出されない場合の計測方法は、たとえば図２５のようになる。この計測方法は、前述した図１９の計測方法の一部を変更したものであり、共通部分の説明は省略または簡略化する。
（Ａ）頭上部および肩の検出
前述と同様の手順で３Ｄスキャンを層化し、第１および第４層を抽出した結果、図２４に示すように、頭上部の一部と一方の肩とが検出されたとする。
（Ｂ）特徴抽出
まず、（１）頭上層から前述と同様の手順で“頭の中心点”を求める。また、（２ａ）頭上層および肩の層（つまり頭と一方の肩）から、他方の肩（頭に隠れて見えない肩）を計算する。人体の左右対称性つまり「両肩は頭に対して左右対称な位置にある」という特徴、および「一般に肩よりも頭が前方にある（頭は両肩をつなぐ線よりも前方にある）」という特徴を考慮すると、検出された頭および一方の肩の位置に対して可能な他方の肩の位置は、図２６（Ａ）および図２６（Ｂ）に示すように２通りある。どちらの配置が適当かは、前後の向きで決まる。そして、前後の向きは、人体の特徴点たとえば頭の中心点の移動方向に基づいて判定できる。一例として、現フレームで求めた頭の中心点と、前フレームで求めた頭の中心点との比較から前後の向きを判定し、この向きに適合する方の配置を採用すればよい。
【０１７３】
次に、（２ｂ）検出された方の肩と、計算された方の肩とをつなぐ線（ＳＬＮ１またはＳＬＮ２：図２６（Ａ）および図２６（Ｂ）参照）に垂直なベクトルを求め、これを体の方向ベクトル（Ｖｂ）とする。そして、前述と同様の手順で、（３）頭上層から体の方向ベクトルに対して最も後ろにある頭後点を求め、さらに、（４）頭上層から頭後点に対して最も遠いところにある頭前点を求める。
（Ｃ）位置および姿勢の計算
前段の（１）で求めた頭の中心点を人の“位置”Ｐ（ｘ，ｙ）とし、（２ｂ）で求めた体の方向ベクトルの方向を“体の方向”θｂとし、そして（３）で求めた頭後点から（４）で求めた頭前点に向かう方向を“頭の方向”θｈとする。
【０１７４】
この場合、頭上層に頭の一部しか含まれないため、位置の誤差が生じるが、モーショントラッカを用いた検証結果によれば、最大１０ｃｍ程度の誤差にとどまる。また、体の方向の誤差は平均１０度（両肩が見えていれば平均５度）、頭の方向の誤差は平均２０度（計測角が小さいか、人がＬＲＦ1４の方を向いていれば１０度）である（詳細は後述）。
【０１７５】
以上のような位置および姿勢の計測方法は、コンピュータ１２（ＣＰＵ１２ｃ）が図２７のフローに従い動作することで実現される。図２７のフローは、図９のフローにおいて、ステップＳ２９で尤度計算を行うときパーティクルフィルタに入力される、現在の位置および姿勢に関する計測値を求める処理（以下“位置＆姿勢計測処理”と呼ぶ）である。そして、図２７のフローは、図９のフローと同様、図８のフローのステップＳ１１で検出された対象毎に実行される。したがって、たとえば同時に３人の被験者が検出されている状態では、図９のフローおよび図２７のフローが３組、並列的に実行されることになる。
【０１７６】
図２７を参照して、ＣＰＵ１２ｃは、まず、ステップＳ１１１で初期処理を実行する。具体的には、“位置”，“体の方向”および“頭の方向”（を示す変数ｘ，ｙ，ｂθおよびθｈ）を初期化したり、３Ｄスキャン，頭上層および肩の層といったテンポラリデータの保持領域（図示は省略するが、たとえば図７に示すメモリ１２ｄのデータエリア２２内に形成される）をクリアしたりする。
【０１７７】
初期処理が完了すると、ステップＳ１１３に進み、データエリア２２から当該対象の３Ｄスキャンデータを取得する。なお、各対象の３Ｄスキャンデータは、ＬＲＦ１４の出力に対してクラスタリングを行って得られるデータであり、データエリア２２に記憶された対象情報４０の中に含まれている。次に、ステップＳ１１３で取得した３Ｄスキャンデータに対し、ステップＳ１１５で層化処理（図２０参照）を施す。そして、層化結果から頭上層（ＨＬＹ）および肩の層（ＳＬＹ）をステップＳ１１７で抽出する。なお、３Ｄスキャンを層化して頭上層および肩の層を抽出する具体的な手順は、先に説明したので省略する。
【０１７８】
次に、ステップＳ１１７の抽出結果に基づいて、頭および肩が検出されたか否かをステップＳ１１９で判別する。具体的には、たとえば、抽出された頭部層に含まれる点の個数を計数して、その個数が第１所定数を上回れば頭が検出されたとみなし、そうでなければ頭は検出されなかったとみなす。同様に、肩の層に含まれる点の個数を計数して、その個数が第２所定数を上回れば肩が検出されたとみなし、そうでなければ肩は検出されなかったとみなす。ステップＳ１１９の判別結果は、頭および肩が共に検出されたとみなされる場合にＹＥＳとなり、少なくとも一方が検出されなかったとみなされる場合にはＮＯとなる。
【０１７９】
ステップＳ１１９でＮＯであれば、ステップＳ１１３に戻って上記と同様の処理を繰り返す。なお、このステップＳ１１３からＳ１１９を経てＳ１１３に戻るループ、またはテップＳ１１３からＳ１３５を経てＳ１３１に戻るループ（後述）は、１フレームに１回の周期で（たとえば１／３０秒毎に）実行される。なお、この周期は一例であり、適宜変更されてよい（たとえば６フレームに１回など）。周期が時間的に変動してもよい。
【０１８０】
ステップＳ１１９でＹＥＳであれば、ステップＳ１２１に進み、ステップＳ１１７で抽出した頭上層から頭の中心点（Ｐ）を計算し、結果を“位置”とする（変数ｘ，ｙにセットする）。具体的な計算方法は、先に説明したので省略する。次のステップＳ１２３では、検出された肩は両肩であるか否かを判別する。具体的には、肩の層において、“頭の中心点”を挟んで両側（左右）に略均等でかつ一定以上離れた２つの領域が形成されている場合、ＹＥＳ（両肩である）と判別する。一方、“頭の中心点”の片側に単一の領域しか形成されていない場合、または、両側に２つの領域が形成されていても、互いに不均等（一方が小さ過ぎ）であったり距離が近過ぎたりする場合、ＮＯ（片方の肩である）と判別する。
【０１８１】
ステップＳ１２３でＮＯであれば、ステップＳ１２５を経てステップＳ１２７進む。ステップＳ１２３でＹＥＳであれば、直ちにステップＳ１２７に進む。ステップＳ１２５では、ステップＳ１１７で抽出した頭上層つまり一方の肩と、ステップＳ１２１で計算した頭の中心点とに基づいて、他方の肩（頭に隠れて見えない肩）を計算する（図２６（Ａ），図２６（Ｂ）参照）。具体的な計算方法は、先に説明したので省略する。
【０１８２】
なお、先の説明では、他方の肩の位置として図２６（Ａ）および図２６（Ｂ）のどちらに示された位置が適当かを前後の向きに基づいて判断する際に、現フレームで求めた頭の中心点と前フレームで求めたそれとの比較から移動方向を判別して前後の向きを決定したが、対象情報４０に記述された３次元形状から前後の向きを決定することもできる。たとえば、３次元形状から顔の面や鼻の突起などを検出できた場合には、頭の中心点に対して顔や鼻がある方を前方とみなせばよい。
【０１８３】
ステップＳ１２７では、検出（または推定）した両肩をつなぐ線に垂直なベクトルつまり体の方向ベクトルＶｂを主成分分析によって計算する。具体的な計算方法は、先に説明したので省略する。なお、主成分分析に代えて、一方の肩の中心点および他方の肩の中心点をそれぞれ求め、これら２つの中心点をつなぐ線の法線ベクトルを計算しても、体の方向ベクトルＶｂを求めることができる。こうして計算した体の方向ベクトルＶｂの方向をステップＳ１２９で“体の方向”として（変数θｂにセットして）、ステップＳ１３１に進む。
【０１８４】
ステップＳ１３１では、ステップＳ１１７で抽出した頭上層およびステップＳ１２９で計算した体の方向に基づいて頭後点（ＨＲＰ：図１８参照）を計算し、次のステップＳ１３３では、ステップＳ１１７で抽出した頭上層およびステップＳ１３１で計算した頭後点に基づいて頭前点（ＨＦＰ：図１８参照）を計算する。頭後点さらには頭前点の具体的な計算方法は、先に説明したので省略する。
【０１８５】
そして、ステップＳ１３１で計算した頭後点からステップＳ１３３で計算した頭前点へ向かう方向を求め、これを“頭の方向”とする（変数θｈにセットする）。その後、ステップＳ１１３に戻って上記と同様の処理を繰り返す。
【０１８６】
これにより、当該対象の現時点での“位置”，“体の方向”および“頭の方向”が繰り返し（周期的に）計算され、毎回の計算結果は、現在時刻情報と関連付けられて、対象情報４０に追記される。こうして、対象情報４０には、当該対象の“位置”，“体の方向”および“頭の方向”を示す計測値（変数ｘ，ｙ，θｂおよびθｈの時間的な変化を示す情報）が記述される結果となる。
【０１８７】
図９に示したパーティクルフィルタによる状態推定処理では、次の点が変更される。ステップＳ２３では、当該対象の状態（位置，移動方向，３次元形状および姿勢）に関する複数の仮説を生成する際に、位置として上記の“位置”が、姿勢として上記の“体の方向”および“頭の方向”が採用される。ステップＳ２９では、３次元形状モデルに基づいて現在の計測値に対する各パーティクルの尤度を計算する際に、現在の位置および姿勢に関する計測値として、当該対象の“位置”，“体の方向”および“頭の方向”に関する計測値（変数ｘ，ｙ，θｂおよびθｈの値）が参照される。
【０１８８】
この実施例でのステップＳ２９の尤度計算は、たとえば次のように行われる。パーティクルフィルタとしては、ＳＩＲ(Sampling Importance Resampling)パーティクルフィルタを用いる。これにより、異なるＬＲＦ１４の計測エリア間を遷移中にも連続追跡が行え、よりスムーズな推定結果が得られる。また、２Ｄレンジスキャナのような他のタイプのレーザレンジファインダ（測域センサ）を用いたり、異なる種類のセンサを組み合わせて用いたりすることも容易になる。ただし、場合によっては、ＳＩＲ以外のパーティクルフィルタ、たとえばＳＩＳ(Importance Sampling)パーティクルフィルタなどを用いてもよい。
【０１８９】
パーティクルの状態は、位置（ｘ，ｙ），速度ｖ，移動方向θｍ ，体の方向θｂおよび頭の方向θｈ によって与えられる（前出のθｂおよびθｈは、以下では下付添字を用いてθｂおよびθｈのように記される）。これらは、図４や図１８に示すワールド座標系（Ｘ，Ｙ，Ｚ）で定義される変数であり、移動方向θｍ ，体の方向θｂ および頭の方向θｈ は、所定方向（たとえばＸ軸方向）に対する角度として示される。フィルタ予測ステップで使われる動きモデルは、ゼロ平均ガウスノイズを付加することによるこれらの変数の更新を含む。パーティクルｍに関する速度，移動方向，体の方向および頭の方向のノイズパラメータとして、σｍｖ＝０．２[m/s2]，σｍｍ＝σｍｂ＝σｍｈ＝０．２[rad]を用いる。予測位置（ｘ’，ｙ’）は、予測された速度および移動方向に基づいて計算される。
【０１９０】
パーティクルｍの重みを決定するために、５つの独立した尤度モデルの組み合わせとして、入力の尤度ｐ（ｚ｜ｍ）を次式（６）のように定義する（簡略な表記法を用いる）。
【０１９１】
ｐ = ｐｘｙｐｂｐｈｐｂｍｐｈｂ  …（６）
位置に関する尤度は、ガウス関数ｐｘｙ（ｚ｜ｍ）〜Ｎ（ｄｘｙ，σｌｘｙ）で定義される。ここでｄｘｙは、計測および予測された頭部位置間のユークリッド距離である。分散パラメータσｌｘｙは、実験では０．２[m]に設定される。
【０１９２】
体の方向に関する尤度は、推定された体の方向ｐｂ（ｚ｜ｍ）〜Ｎ（ｄｂ，σｌｂ１）を中心とするガウシアンで定義される。ここでｄｂ=｜θｂ−θ’ｂ｜は、抽出および予測された体の方向（［−π，π］に規格化されている）の間の絶対差分であり、分散はσｌｂ１=０．５[rad]に設定される。同様に、頭の方向に関する尤度は、ｐｈ（ｚ｜ｍ）〜Ｎ（ｄｈ，σｌｈ），ｄｈ=|θｈ−θ’ｈ|およびσｌｈ=０．５[rad]で与えられる。
【０１９３】
上式（６）の最後の２項は、推定された値についての実用的な限定と選択を導くものであり、ｐｂｍ（ｍ）の項が整列した体および移動方向への僅かな傾向を与える。人は専ら前向きに歩くという事実を反映したものであり、これは次式（７）のように定義される。
【０１９４】
ｐｂｍ  〜ｗｂｍ１Ｎ（ｄｂｍ，σｌｂｍ）＋ｗｂｍ２  …（７）
ここでｄｂｍ =｜θ’ｂ−θ’ｍ｜は、予測された体の方向と移動方向との間の絶対差分であり、ｗｂｍ１＝０．２，ｗｂｍ２＝０．８，そしてσｌｂｍ=０．５[rad]である。
【０１９５】
上式（６）のｐｈｂ（ｍ）項は、体の方向および頭の方向の間の差分に注目して、尤もらしいこと―大半の人は頭を前方から９０度以上回すことができない、という仮定は順当に見える―の確認をまず試みる。加えて、「人は前方を向いて頭を回転させる傾向がある」（実験的証拠が“J. Schrammel, E. Mattheiss, S. Dobelt, L. Paletta, A. Almer, and M. Tscheligi, “Attentional behavior of users on the move towards pervasive advertising media,” in Pervasive Advertising, J. Muller, F. Alt, and D. Michelis, Eds. Springer, 2011, ch. 14”に示されている）、という仮定も採用する。これは、次式（８）のようにモデル化される。
【０１９６】
ｄｈｂ＜πであればｐｈｂ＝１−ｄｈｂ ／（２π），そうでなければｐｈｂ＝０…（８）
ここでｄｈｂは、体の方向と頭の方向との間の絶対差分（ラジアン単位）である。このモデルは、頭の方向推定における大きなエラーおよびアウトライヤ（飛び値）の影響を制限すると共に、推定が行えないときに頭の方向を体の方向に揃える。
【０１９７】
こうして、対象の姿勢を推定する際に、“体の方向”および“頭の方向”が明確に区別される。また、そのような推定結果を利用することで、個別行動推定処理（図１１参照）やグループ推定処理（図１２参照）において、より細かい推定を行ったり、推定の精度を高めたりすることができる。
【０１９８】
具体的には、図１１の個別行動推定処理において、ステップＳ６３で“体の方向”および“頭の方向”の各々を移動方向と比較し、ステップＳ６５では“体の方向”および“頭の方向”の各々が移動方向とは異なる向きを向いたかを判別することで、頭および体が当該店舗の方を向いたのか、頭だけが店舗の方を向いたのかの区別が可能となる。たとえば、頭および体が当該店舗の方を向いた場合は関心の度合いが高く、頭だけが店舗の方を向いた場合は関心の度合いが低い、と仮定すれば、ステップＳ６９では、当該対象が当該店舗を見た旨と共に、関心の度合いをも記述することができる。
【０１９９】
また、図１２のグループ推定処理において、ステップＳ８７では、“頭の方向”だけでなく“体の方向”についても比較を行い、ステップＳ８９では、頭および体の両方が相対する向きを向く（つまり当該対象間で体ごと向かい合う）頻度について判別を行い、そしてステップＳ９１では、体ごと向かい合う頻度の高い対象をグループ情報４２に登録し、単に顔だけ向かい合った対象の登録を回避することで、より精度の高いグループ情報４２が得られる。
【０２００】
最後に、検証実験の結果を記しておく。まず、推定結果（追跡なし）について検証する。実験では、ＫｉｎｅｃｔＴＭセンサを支柱の約２．５ｍの高さ（つまり天井で制限される高さ）に取り付けた。また、同じ場所にＶｉｃｏｎモーションキャプチャシステムをインストールし、頭および肩にマーカを付けて、姿勢および頭部方向の実測値も得た。合計１２人の被験者（男性９人，女性３人）が実験に参加した。被験者には、センサの前に立って頭を左右に回す動きを８通りの異なる胴体角度（４５度のステップ）で繰り返し行ってもらった。同様のプロセスは、センサから４つの異なる距離：０．７ｍ（センサ角３３度）；および２ｍ，２．５ｍ，３ｍ（センサ角６３度）で繰り返された。
【０２０１】
位置推定におけるエラーは、主として頭部レイヤの部分視界によるが、全ての実験で小さかった（ＲＭＳＥ(Root Mean Square Error)つまり二乗平均平方根誤差が平均７．５ｃｍ）。胴体角および頭部角については、全航跡でのＲＭＳＥの平均値はそれぞれ２６．８度および３６．８度であった。我々は、胴体および頭部角度の推定結果をより詳細に分析した。
【０２０２】
また、体および頭の方向の推定結果とモーショントラッカからの実測データとの比較例が、図２８（Ａ）および図２８（Ｂ）に示される。図２８（Ａ）において、推定された体の方向は、モーショントラッカの出力と多くの部分でよく一致する。ただし、センサが人の側面だけを捉えた部分、つまり１０秒および３０秒の付近では、より大きな偏差が生じている。これは、前述のように、片方の肩が頭の影に隠れて見えないことに起因している。図２８（Ｂ）に示す頭の方向推定でも、人の側面を見ているために大きなエラーが見られるが、部分的には、体の方向推定で生じたエラーの影響もある。
【０２０３】
次に、トラッキング結果を検証する。実験では、Ｖｉｃｏｎトラッカと２個のＫｉｎｅｃｔＴＭセンサを持つ構成を採用した。これらのセンサは、２．５ｍの高さに５５度の計測角で設置され、共働して約２×３ｍのエリアをカバーした。このエリアは、モーショントラッカのトラッキングエリアと概ね一致する。被験者には、エリア内を自由に動いたり見回したりしてもらった。
【０２０４】
図２９（Ａ），図２９（Ｂ），図３０（Ａ）および図３０（Ｂ）は、一実行例について、変数ｘ，ｙ，θｂおよびθｈを、パーティクルフィルタによる追跡と、モーショントラッカによる計測との間で比較した結果を示している。これらの比較から、位置（ｘ，ｙ）および体の方向（θｂ）はトラッカ出力によく追従しており、センサ間の遷移（ｙ＝０ｍの付近）もスムーズであることが見て取れる。頭の方向（θｈ）のトラッキングエラーは予想よりも大きいが、これは推定エラーが大きかったことによる。一般に、トラッキング実行でのＲＭＳＥ値は、推定時のそれに匹敵するか、それより幾分良好であった。
【０２０５】
以上のように、この実施例では、３Ｄレンジセンサの一種であるＬＲＦ１４を用いて、人の位置ならびに体および頭の方向を推定する方法について説明した。その方法は、要するに、次のステップで構成される：1) 頭上層および肩の層の抽出―位置は頭上層の平均であり、体の方向は肩の線に垂直である；および2) 頭後点および頭前点の計算―頭の向きはこれら２点間をつなぐ線の方向である。
【０２０６】
この方法によれば、センサの計測結果が信頼できるエリアでは、安定した位置推定（誤差１０ｃｍ以下）が行える。体および頭の方向についても同様である。我々の検証試験では、体の方向について、平均エラーは１０度、両方の肩が見えていれば５度であり、頭の方向については、小さな計測角または被験者がセンサを向いている場合で１０％、それ以外の場合で２０％であった。
【０２０７】
加えて、パーティクルフィルタ（好ましくはＳＩＲパーティクルフィルタ）を用いることで、複数センサによる連続的かつスムーズなトラッキングが行える。特定のタイプのレンジセンサに依存することがなく、広いエリアのトラッキングへの適用も容易なので、様々な環境で体および頭の方向について３６０度に渡る正確な情報が得られる。
【符号の説明】
【０２０８】
１０  …計測装置
１２  …コンピュータ
１４  …レーザレンジファインダ（ＬＲＦ）
５２  …３次元形状モデルデータベース（ＤＢ）
Ｍ１  …肩から上の身体形状モデル
Ｍ２  …全身の骨格モデル
Ｔ１，Ｔ２  …対象
Ｓｃｎ  …スキャン面
Ｐ  …人の位置（頭上層の中心点）
ＨＴＰ  …頭頂点
ＨＬＹ，ＳＬＹ  …頭上層，肩の層
ＳＮ，ＳＬＮ１，ＳＬＮ２  …両肩をつなぐ線
ＨＲＡ，ＨＦＡ  …頭後領域，頭前領域
ＨＲＰ，ＨＦＰ  …頭後点，頭前点
θｂ，θｈ  …体の方向，頭の方向
【図１】
0005953484.tif 000007
【図２】
0005953484.tif 000008
【図３】
0005953484.tif 000009
【図４】
0005953484.tif 000010
【図５】
0005953484.tif 000011
【図６】
0005953484.tif 000012
【図７】
0005953484.tif 000013
【図８】
0005953484.tif 000014
【図９】
0005953484.tif 000015
【図１０】
0005953484.tif 000016
【図１１】
0005953484.tif 000017
【図１２】
0005953484.tif 000018
【図１３】
0005953484.tif 000019
【図１４】
0005953484.tif 000020
【図１５】
0005953484.tif 000021
【図１６】
0005953484.tif 000022
【図１７】
0005953484.tif 000023
【図１８】
0005953484.tif 000024
【図１９】
0005953484.tif 000025
【図２０】
0005953484.tif 000026
【図２１】
0005953484.tif 000027
【図２２】
0005953484.tif 000028
【図２３】
0005953484.tif 000029
【図２４】
0005953484.tif 000030
【図２５】
0005953484.tif 000031
【図２６】
0005953484.tif 000032
【図２７】
0005953484.tif 000033
【図２８】
0005953484.tif 000034
【図２９】
0005953484.tif 000035
【図３０】
0005953484.tif 000036