説明

計測装置,計測方法および計測プログラム

【課題】 レーザレンジファインダで複数の対象を計測して多様な情報を得る。
【解決手段】 計測装置(10)は、スキャン面(Scn)が水平面に対して傾斜したLRF(14)で複数の対象(T1,T2,…)を計測する。計測装置のコンピュータ(12)は、ステップS1で複数の対象に関する3次元形状モデル(M1,M2)をデータベース(50)に登録し、その後、ステップS3でLRF14を制御してスキャン面の水平面に対する傾斜角(α)を変化させつつ、ステップS5〜S19(およびS21〜S39)で複数の対象それぞれのパーティクルフィルタ(38a,38b,…)を用いてLRF14からの計測データと3次元形状モデルとの比較を行うことにより複数の対象それぞれの3次元形状および姿勢、特に人の体の方向および頭の方向を少なくとも推定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、計測装置,計測方法および計測プログラムに関し、特に、3次元距離計測センサ(たとえばレーザレンジファインダ,レーザレンジスキャナ,3Dスキャナ,測域センサなど)で対象を計測する、計測装置,計測方法および計測プログラムに関する。
【背景技術】
【0002】
この種の従来の装置としては、たとえば特許文献1に開示されたものが知られている。この背景技術では、複数のレーザレンジファインダ(LRF)で被験者を計測して、計測結果から被験者の位置および移動速度を推定し、さらに人形状モデルを用いて被験者の体の向きおよび腕の動きをも推定している。
【特許文献1】特開2009−168578号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1の背景技術では、どのLRFも、スキャン面が腰の高さで水平となるように設置されている。したがって、LRFからの計測データには、腰の高さでの距離情報しか含まれていないので、3次元形状や姿勢を推定することはできない。
【0004】
また、特許文献1の背景技術は、複数の人が密集した状況ではLRFからの計測データに基づいて一人一人を分離することが難しくなるという問題点を有する。
【0005】
それゆえに、この発明の主たる目的は、新規な、計測装置,計測方法および計測プログラムを提供することである。
【0006】
この発明の他の目的は、3次元距離計測センサで複数の対象を計測して多様な情報を得ることができる、計測装置,計測方法および計測プログラムを提供することである。
【0007】
この発明のその他の目的は、3次元距離計測センサで人の体の方向および頭の方向を計測できる、計測装置,計測方法および計測プログラムを提供することである。
【課題を解決するための手段】
【0008】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、そのスキャン面(Scn)が水平面に対して傾斜した3次元距離計測センサ(14)で複数の対象(T1,T2,…)を計測する計測装置(10)であって、複数の対象に関する3次元形状モデル(M1,M2)が登録されたデータベース(50)、3次元距離計測センサを制御してスキャン面の水平面に対する傾斜角(α)を変化させる変化手段(S3)、および3次元距離計測センサからの計測データ(34)とデータベースに登録された3次元形状モデルとの比較に基づいて複数の対象それぞれの3次元形状および姿勢を少なくとも推定する第1推定手段(S5〜S19,S21〜S39)を備える。
【0010】
第1の発明によれば、スキャン面の傾斜角を変化させつつ計測を行うことで、複数の対象の分離が容易となり、こうして分離された複数の対象それぞれの3次元形状および姿勢を推定することができる。
【0011】
なお、各対象は、動いている方が好ましいが、停止していてもよい。
【0012】
なお、傾斜角が大きければ(α=90度またはそれに近い角度であれば)、対象同士の重なり合いが小さくなるので複数の対象を容易に分離できる一方、計測領域は狭くなる。このため、変化手段による傾斜角の変化範囲は、分離の容易さと計測領域の広さとのバランスを考慮して、適宜な範囲が選ばれる。ある実施例では、傾斜角の変化範囲を24度〜90度(24°≦α≦90°)としているが、たとえば20度〜80度や30度〜150度などでもよい。
【0013】
第2の発明は、第1の発明に従属する計測装置であって、第1推定手段は複数の対象それぞれに対応する複数の時系列フィルタリングを並列に実行することによって推定を行う。
【0014】
なお、時系列フィルタリングには、ある実施例ではパーティクルフィルタを用いるが、カルマンフィルタなど他の時系列フィルタを用いてもよい。
【0015】
第2の発明によれば、複数の対象(T1,T2,…)それぞれにパーティクルフィルタ(38a,38b,…)を適用することで、それぞれの3次元形状および姿勢を高い精度で推定することができる。
【0016】
第3の発明は、第2の発明に従属する計測装置であって、3次元形状モデルは肩から上の身体形状モデル(M1)を含み、姿勢は頭部の向き(Α)を含む。
【0017】
第3の発明によれば、頭部のサイズおよび向きを推定することができる。また、頭部のサイズから身長も推定できる。
【0018】
第4の発明は、第3の発明に従属する計測装置であって、3次元形状モデルはさらに全身の骨格モデル(M2)を含み、姿勢は頭部以外の各部位の向きをさらに含む。
【0019】
第4の発明によれば、腕や脚といった部位のサイズおよび向きも推定できる。
【0020】
第5の発明は、第3の発明に従属する計測装置であって、第1推定手段は複数の対象それぞれの位置および移動方向をさらに推定し、第1推定手段の推定結果に基づいて複数の対象それぞれの頭部が移動方向とは異なる方向を向いたと判断される場合に当該頭部の向いた先に位置する目標を特定する特定手段(S67)、および複数の対象それぞれについて特定手段の特定結果に基づく個別行動情報を作成する第1作成手段(S69)をさらに備える。
【0021】
第5の発明によれば、位置および移動方向に加えて頭部の向きを考慮することで、各対象が移動しながら見た目標を特定できる。また、こうして特定した結果に基づいて、「対象T1は店舗A,B,…および案内板Pを見た」,「対象T2は店舗C,D,…および案内板Qを見た」といった個別行動情報を作成できる。
【0022】
第6の発明は、第5の発明に従属する計測装置であって、第1推定手段の推定結果を複数の対象間で比較して、位置が近接しかつ移動方向が共通であってしかも頭部が一定以上の頻度で相対する方向を向く対象群がある場合に、当該対象群をグループと推定する第2推定手段(S81〜S91)をさらに備える。
【0023】
第6の発明によれば、位置および移動方向に加えて頭部の向きを考慮することで、グループ推定が容易に行える。
【0024】
第7の発明は、第6の発明に従属する計測装置であって、第1推定手段の推定結果に基づいて複数の対象それぞれの属性を推定する第3推定手段(S51)、および第2推定手段でグループと推定された対象群に関する第3推定の推定結果に基づいて、当該グループを複数のカテゴリのいずれかに分類する分類手段(S101)をさらに備える。
【0025】
なお、ある実施例では、属性は性別,大人/子供の区別などを含み、性別,大人/子供の区別は、たとえば頭部の3次元形状から推定される。複数のカテゴリとは、たとえば友達同士,家族連れ,カップルなどである。
【0026】
第7の発明によれば、複数の対象それぞれの属性を推定できる。また、グループと推定された対象群の属性から、グループの分類も可能になる。
【0027】
第8の発明は、第7の発明に従属する計測装置であって、第1作成手段で作成された個別行動情報を第2推定手段の推定に基づくグループ毎に解析してグループ行動情報を作成する第2作成手段(S103)をさらに備える。
【0028】
第8の発明によれば、個別行動をグループ毎に解析することでグループ行動に関する情報が得られる。ある実施例では、グループと推定された対象群について個別行動情報の和集合をとることで、たとえば「グループG1は店舗A,B,C,…および案内板Pを見た」といったグループ行動情報を作成している。
【0029】
第9の発明は、第8の発明に従属する計測装置であって、第2作成手段で作成されたグループ行動情報を分類手段の分類に基づくカテゴリ毎に解析してグループ行動パターン情報を作成する第3作成手段(S105)をさらに備える。
【0030】
第9の発明によれば、グループ行動をカテゴリ毎に解析することで、各カテゴリに特有の行動パターンに関する情報が得られる。ある実施例では、たとえば、“友達同士”に分類されたグループ群(G1,G5)についてグループ行動情報の積集合をとることで、「友達同士のグループは店舗Aおよび案内板Pを見る」といったグループ行動パターン情報を作成している。
【0031】
第10の発明は、第1の発明に従属する計測装置であって、複数の対象の少なくとも1つは人であり、3次元距離計測センサからの計測データに基づいて人の頭および肩を検出する検出手段(S115〜S119)、および検出手段によって検出された頭および肩の間の位置関係に基づいて人の体の方向(θb)および頭の方向(θh)を計算する計算手段(S121〜S135)をさらに備え、第1推定手段は計算手段の計算結果に基づいて人の姿勢に関する推定を行う。
【0032】
第10の発明によれば、3次元距離計測センサで人の姿勢として体の方向および頭の方向を計測して、計測結果に基づく姿勢推定が行える。
【0033】
第11の発明は、第10の発明に従属する計測装置であって、3次元距離計測センサは人の頭頂点(HTP)よりも高い位置に設置され、検出手段は、3次元距離計測センサからの計測データのうち人に対応する計測データを高さ方向に層化する層化手段(S115)、および層化手段の層化結果から頭頂点を含む頭上層(HLY)および当該頭上層から所定数層隔てて下にある肩の層(SLY)を抽出する抽出手段(S117)を含み、計算手段は、抽出手段によって抽出された肩の層に基づいて両肩をつなぐ線(SLN)に垂直な方向を計算する第1計算手段(S127,S129)、抽出手段によって抽出された頭上層のうち第1計算手段によって計算された方向に対して最後部(HRA)にある頭後点(HRP)を計算する第2計算手段(S131)、抽出手段によって抽出された頭上層のうち第2計算手段によって計算された頭後点に対して最前部(HFA)にある頭前点(HFP)を計算する第3計算手段(S133)、および第2計算手段によって計算された頭後点から第3計算手段によって計算された頭前点に向かう方向を計算する第4計算手段(S135)を含み、第1推定手段は、第1計算手段によって計算された方向を体の方向として推定し、第4計算手段によって計算された方向を頭の方向として推定する。
【0034】
第11の発明によれば、人に対応する計測データを層化して最上位の頭上層(HLY)および所定数層下位の肩の層(SLY)を抽出することで、頭および肩が検出できる。なお、人に対応する計測データは、3次元距離計測センサからの計測データに対してたとえばクラスタリングを行うことにより得られる。また、肩の層から両肩をつなぐ線に垂直な方向を求めることで、体の方向が計算できる。さらに、頭上層から体の方向に基づいて頭後点を求め、そして、頭後点から頭前点に向かう方向を求めることで、頭の方向が計算できる。
【0035】
第12の発明は、第11の発明に従属する計測装置であって、計算手段は、抽出手段によって抽出された頭上層に基づいて頭の中心点(P)を計算する第5計算手段(S121)、肩の層が両肩を含むか一方の肩しか含まないかを判別する判別手段(S123)、および、判別手段によって肩の層が一方の肩しか含まないと判別された場合に、当該一方の肩と第5計算手段によって検出された頭の中心点とに基づいて、両肩は頭に対して左右対称な位置にありかつ頭は両肩をつなぐ線よりも前方にあるという条件を満たすように、他方の肩を計算する第6計算手段(S125)をさらに含み、第1計算手段は、判別手段によって肩の層が両肩を含むと判別された場合には当該両肩をつなぐ線に垂直な方向を計算し、一方の肩しか含まないと判別された場合には当該一方の肩および第6計算手段によって計算された他方の肩をつなぐ線に垂直な方向を計算する。
【0036】
第12の発明によれば、頭上層から頭の中心点を計算できる。また、肩の層が一方の肩しか含まない場合に、当該一方の肩と頭の中心点とに基づいて、「両肩は頭に対して左右対称な位置にある」という条件、および「頭は両肩をつなぐ線よりも前方にある」という条件を満たすように、他方の肩が計算できる。肩の層が両肩を含む場合には当該両肩をつなぐ線に垂直な方向を求め、一方の肩しか含まない場合には当該一方の肩および計算された他方の肩をつなぐ線に垂直な方向を求めるので、頭と少なくとも一方の肩とを検出すれば、体の方向が計算できる。
【0037】
第13の発明は、第12の発明に従属する計測装置であって、判別手段は肩の層を構成する点群の頭の中心点に対する分布に基づいて判別を行う。
【0038】
第13の発明によれば、肩の層を構成する点群が頭の中心点に対して両側に均等に分布しているか片側に偏って分布しているかで、両肩か一方の肩かの判別が行える。
【0039】
第14の発明は、第12または13の発明に従属する計測装置であって、第1推定手段は第5計算手段によって計算された頭の中心点の位置を人の位置として推定する。
【0040】
第14の発明によれば、頭の中心点から人の位置が推定できる。言い換えると、位置推定のために求めた頭の中心点を利用することで、頭と一方の肩しか検出されなくても、体の方向が計算できる。
【0041】
第15の発明は、そのスキャン面(Scn)が水平面に対して傾斜した3次元距離計測センサ(14)で複数の対象(T1,T2,…)を計測する計測方法であって、複数の対象に関する3次元形状モデル(M1,M2)をデータベース(50)に登録する登録ステップ(S1)、3次元距離計測センサを制御してスキャン面の水平面に対する傾斜角(α)を変化させる変化ステップ(S3)、および3次元距離計測センサからの計測データ(34)とデータベースに登録された3次元形状モデルとの比較に基づいて複数の対象それぞれの3次元形状および姿勢を少なくとも推定する第1推定ステップ(S5〜S19,S21〜S39)を備える。
【0042】
第16の発明は、計測プログラム(30)であって、そのスキャン面(Scn)が水平面に対して傾斜した3次元距離計測センサ(14)で複数の対象(T1,T2,…)を計測する計測装置(10)のコンピュータ(12)を、複数の対象に関する3次元形状モデル(M1,M2)が登録されたデータベース(50)、3次元距離計測センサを制御してスキャン面の水平面に対する傾斜角(α)を変化させる変化手段(S3)、および3次元距離計測センサからの計測データ(34)とデータベースに登録された3次元形状モデルとの比較に基づいて複数の対象それぞれの3次元形状および姿勢を少なくとも推定する第1推定手段(S5〜S19,S21〜S39)として機能させる。
【0043】
第17の発明は、人の頭頂点(HTP)よりも高い位置に設置された3次元距離計測センサ(14)で当該人の体の方向(θb)および頭の方向(θh)を計測する計測装置(10)であって、3次元距離計測センサからの計測データに基づいて人の頭および肩を検出する検出手段(S115〜S119)、および検出手段によって検出された頭および肩の間の位置関係に基づいて人の体の方向(θb)および頭の方向(θh)を計算する計算手段(S121〜S135)を備える。
【0044】
第17の発明によれば、3次元距離計測センサで人の体の方向および頭の方向を計測できる。
【0045】
第18の発明は、第17の発明に従属する計測装置であって、検出手段は、3次元距離計測センサからの計測データのうち人に対応する計測データを高さ方向に層化する層化手段(S115)、および層化手段の層化結果から頭頂点を含む頭上層(HLY)および当該頭上層から所定数層隔てて下にある肩の層(SLY)を抽出する抽出手段(S117)を含み、計算手段は、抽出手段によって抽出された肩の層に基づいて両肩をつなぐ線(SLN)に垂直な方向を計算する第1計算手段(S127,S129)、抽出手段によって抽出された頭上層のうち第1計算手段によって計算された方向に対して最後部(HRA)にある頭後点(HRP)を計算する第2計算手段(S131)、抽出手段によって抽出された頭上層のうち第2計算手段によって計算された頭後点に対して最前部(HFA)にある頭前点(HFP)を計算する第3計算手段(S133)、および第2計算手段によって計算された頭後点から第3計算手段によって計算された頭前点に向かう方向を計算する第4計算手段(S135)を含む。
【0046】
第18の発明によれば、人に対応する計測データを層化して最上位の頭上層および所定数層下位の肩の層を抽出することで、頭および肩が検出できる。なお、人に対応する計測データは、たとえばレーザレンジファインダからの計測データに対してクラスタリングを行うことにより得られる。また、肩の層から両肩をつなぐ線に垂直な方向を求めることで、体の方向が計算できる。さらに、頭上層から体の方向に基づいて頭後点を求め、そして、頭後点から頭前点に向かう方向を求めることで、頭の方向が計算できる。
【0047】
第19の発明は、第18の発明に従属する計測装置であって、計算手段は、抽出手段によって抽出された頭上層に基づいて頭の中心点(P)を計算する第5計算手段(S121)、肩の層が両肩を含むか一方の肩しか含まないかを判別する判別手段(S123)、および、判別手段によって肩の層が一方の肩しか含まないと判別された場合に、当該一方の肩と第5計算手段によって検出された頭の中心点とに基づいて、両肩は頭に対して左右対称な位置にありかつ頭は両肩をつなぐ線よりも前方にあるという条件を満たすように、他方の肩を計算する第6計算手段(S125)をさらに含み、第1計算手段は、判別手段によって肩の層が両肩を含むと判別された場合には当該両肩をつなぐ線に垂直な方向を計算し、一方の肩しか含まないと判別された場合には当該一方の肩および第6計算手段によって計算された他方の肩をつなぐ線に垂直な方向を計算する。
【0048】
第19の発明によれば、頭上層から頭の中心点を計算できる。また、肩の層が一方の肩しか含まない場合に、当該一方の肩と頭の中心点とに基づいて、「両肩は頭に対して左右対称な位置にある」という条件、および「頭は両肩をつなぐ線よりも前方にある」という条件を満たすように、他方の肩が計算できる。肩の層が両肩を含む場合には当該両肩をつなぐ線に垂直な方向を求め、一方の肩しか含まない場合には当該一方の肩および計算された他方の肩をつなぐ線に垂直な方向を求めるので、頭と少なくとも一方の肩とを検出すれば、体の方向が計算できる。
【0049】
第20の発明は、第19の発明に従属する計測装置であって、判別手段は肩の層を構成する点群の頭の中心点に対する分布に基づいて判別を行う。
【0050】
第20の発明によれば、肩の層を構成する点群が頭の中心点に対して両側に均等に分布しているか片側に偏って分布しているかで、両肩か一方の肩かの判別が行える。
【0051】
第21の発明は、第19または20の発明に従属する計測装置であって、第5計算手段の計算結果,第1計算手段の計算結果および第4計算手段の計算結果を入力として時系列フィルタリングを実行することによって人の位置(P),体の方向(θb)および頭の方向(θh)を推定する推定手段(S21〜S31)をさらに備える。
【0052】
第21の発明によれば、時系列フィルタリングによって人の位置,体の方向および頭の方向を追跡できる。
【0053】
なお、時系列フィルタリングには、ある実施例ではパーティクルフィルタ(好ましくはSIRパーティクルフィルタ)を用いるが、カルマンフィルタなど他の時系列フィルタを用いてもよい。
【0054】
第22の発明は、人の頭頂点(HTP)よりも高い位置に設置された3次元距離計測センサ(14)で当該人の体の方向(θb)および頭の方向(θh)を計測する計測方法であって、3次元距離計測センサからの計測データに基づいて人の頭および肩を検出する検出ステップ(S115〜S119)、および検出ステップによって検出された頭および肩の間の位置関係に基づいて人の体の方向(θb)および頭の方向(θh)を計算する計算ステップ(S121〜S135)を含む。
【0055】
第23の発明は、計測プログラムであって、人の頭頂点(HTP)よりも高い位置に設置された3次元距離計測センサ(14)で当該人の体の方向(θb)および頭の方向(θh)を計測する計測装置(10)コンピュータを、3次元距離計測センサからの計測データに基づいて人の頭および肩を検出する検出手段(S115〜S119)、および検出手段によって検出された頭および肩の間の位置関係に基づいて人の体の方向(θb)および頭の方向(θh)を計算する計算手段(S121〜S135)として機能させる。
【0056】
第22,23の各発明によっても、第17の発明と同様に、3次元距離計測センサで人の体の方向および頭の方向を計測できる。
【発明の効果】
【0057】
この発明によれば、3次元距離計測センサで複数の対象を計測して多様な情報を得ることができる、計測装置,計測方法および計測プログラムが実現される。また、3次元距離計測センサで人の体の方向および頭の方向を計測できる、計測装置,計測方法および計測プログラムが実現される。
【0058】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0059】
【図1】この発明の一実施例である計測装置の構成を示すブロック図である。
【図2】LRFによる計測処理を説明するための図解図であり、(A)が計測領域(スキャン面)を示し、(B)が対象と計測領域との関係を示す。
【図3】傾斜したLRFからの計測データに施される座標変換処理を説明するための図解図であり、(A)が水平なスキャン面と傾斜したスキャン面との関係を示し、(B)が座標変換に用いるパラメータを示す。
【図4】16個のLRFのショッピングセンタへの配置例を示す図解図(上面図)である。
【図5】1つのLRFの計測領域の一例を示す図解図である。
【図6】1つのLRFによる走査例を示す図解図である。
【図7】メモリマップを示す図解図である。
【図8】CPU動作の一部を示すフロー図である。
【図9】CPU動作の他の一部を示すフロー図である。
【図10】CPU動作のその他の一部を示すフロー図である。
【図11】CPU動作のさらにその他の一部を示すフロー図である。
【図12】CPU動作の他の一部を示すフロー図である。
【図13】CPU動作のその他の一部を示すフロー図である。
【図14】肩から上の身体形状モデルを示す図解図である。
【図15】全身の骨格モデルを示す図解図であり、この骨格モデルの肩から上は図14の形状モデルと対応している。
【図16】メモリに記憶された各種情報のデータ構造を示す図解図であり、(A)は対象情報の、(B)はグループ情報の、(C)は個別行動情報の、(D)はグループ行動情報の、そして(E)はグループ行動パターン情報の、データ構造例を示す。
【図17】対象全体の移動方向と頭部の向き(視線方向)の関係を示す図解図である。
【図18】人の位置および姿勢に関する変数を示す図解図である。
【図19】LRFの出力(3Dスキャンデータ)に基づいて人の位置および姿勢(体の方向および頭の方向)を計測する方法(頭と両肩が検出された場合)を示すフロー図である。
【図20】人体に対応する3Dスキャンの層化を示す図解図である。
【図21】人体に対応する3Dスキャンの一形状(RLFの計測角が90度,人がLRFに対して横向きの場合)を示す図解図である。
【図22】人体に対応する3Dスキャンの他の形状(LRFの計測角が90度,人がLRFに対して正面向きの場合)を示す図解図である。
【図23】人体に対応する3Dスキャンのその他の形状(LRFの計測角が0の場合:人の向きは任意)を示す図解図である。
【図24】人体に対応する3Dスキャンのさらにその他の形状(LRFの計測角が30〜40度,人がLRFに対して横または斜め向きの場合)を示す図解図である。
【図25】LRFの出力(3Dスキャンデータ)に基づいて人の位置および姿勢(体の方向および頭の方向)を計測する方法(頭と一方の肩が検出された場合)を示すフロー図である。
【図26】図25の検出結果(頭と一方の肩)に対して「肩よりも頭が前方にある」という特徴から可能な他方の肩の配置を示す図解図であり、(A)は人がLRFに対して左横を向いている(言い換えるとLRFが人の右側面をスキャンしている)場合を、(B)は人がLRFに対して右横を向いている(LRFが人の左側面をスキャンしている)場合の配置を示す。
【図27】CPU動作の別の一部を示すフロー図である。
【図28】人の姿勢をLRFの出力に基づいて推定した結果(追跡なし)とモーショントラッカで実測した結果との比較を示す図解図であり、(A)は体の方向に関する比較を、(B)は頭の方向に関する比較を示す。
【図29】人の位置および姿勢をLRFの出力に基づいてパーティクルフィルタで追跡しつつ推定した結果とモーショントラッカで実測した結果との比較の一部を示す図解図であり、(A)は位置xに関する比較を、(B)は位置yに関する比較を示す。
【図30】人の位置および姿勢をLRFの出力に基づいてパーティクルフィルタで追跡しつつ推定した結果とモーショントラッカで実測した結果との比較の他の一部を示す図解図であり、(A)は体の方向θbに関する比較を、(B)は頭の方向θhに関する比較を示す。
【発明を実施するための形態】
【0060】
(第1実施例)
図1を参照して、この実施例の計測装置10はコンピュータ12を含み、コンピュータ12には複数(ここでは16台)のレーザレンジファインダ(以下“LRF”と記す)14が接続される。なお、以下では、「3次元距離計測センサ」として、「レーザレンジファインダ」を例にとって説明するものの、この発明は、このような場合に限定されるものではなく、センサから対象までの3次元の距離が計測可能なセンサであれば他の装置を使用してもよい。たとえば、Microsoft社のKinect(登録商標)センサやパナソニック製の3次元距離画像センサD−IMagerなどを使用することも可能である。この種のセンサは、レーザレンジスキャナ,3Dスキャナ,測域センサなどと呼ばれる場合もある。
【0061】
コンピュータ12は、一般的なパーソナルコンピュータ(PC)でよく、たとえばキーボードなどの入力器12a,モニタなどの表示器12b,CPU12cおよびメモリ12dなどを備えている。なお、場合によっては、副コンピュータ(図示せず)に各LRF14を接続し、副コンピュータをコンピュータ12と接続する構成でもよい。
【0062】
LRFは一般に、レーザ光を照射し、それが対象(物体や人体など)で反射して戻ってくるまでの時間から距離を計測する。この実施例のLRF14は、軸の周りをたとえば±45度の範囲で回転するミラー(図示せず)を含み、レーザ光の進路(角度β:図2参照)をこの回転ミラーでたとえば0.6度ずつ変化させながら計測を行う(レーザ光でスキャンする)ことができる。以下では、LRF14によってレーザ光でスキャン(走査)される平面をスキャン面と呼ぶ。また、LRF14で計測可能な距離は、レーザ光が人の目に影響を与えないよう、所定距離R(たとえば15m)以下に制限されている。このため、LRF14の計測領域(スキャン面Scn)は、たとえば図2(A)に示すような扇形、つまり半径Rで中心角90度の扇形となる。なお、スキャン面Scnの中心角は90度とは限らず、たとえば180度や360度などでもよい。
【0063】
さらに、LRF14は、上記のようなスキャン面Scnの傾斜角(つまり水平面に対するスキャン面Scnの角度α)をも、たとえば24度から90度の範囲で0.6度ずつ変化させる。つまり、2つの角度α,βを変化させながら距離dの計測を行うことができる。したがって、LRF14からの距離情報は3つの変数d,α,βを含んでおり、このような距離情報を“3次元距離情報”と呼ぶ。
【0064】
コンピュータ12は、このようなLRF14を通じて、対象の3次元距離情報を取得する。LRF14からの3次元距離情報には、図2(B)に示すように、対象Objをスキャン面Scnで切ったとき、その切断面Crsの輪郭線Ln上の各点Pについて距離dおよび角度α,βを示す情報(ローカル座標系)が含まれている。ただし、このLRF14からは、レーザ光が到達しない影の部分の2次元距離情報は得られないので、対象の全体像が必要な場合には、別の1つまたは2つ以上のLRF14を、たとえば対象を挟んで反対側に、または対象を取り囲むように配置する必要がある。
【0065】
したがって、複数のLRF14を所定の位置(既知)に設置すれば、コンピュータ12は、各々から対象の3次元距離情報を取得して、3次元空間(ワールド座標系)における位置(たとえば重心など特徴点の位置座標(x,y,z))および移動速度、さらには3次元形状および方向、そして姿勢(たとえば頭部,腕,脚など特徴部位の向き)を計算することができる。
【0066】
ただし、LRF14で計測を行う場合、図3(A)に示すように、スキャン面Scnが水平面から傾斜しているために、図3(B)に示すように、対象までの水平面上の距離と比べて、計測される距離が見かけ上長くなる。また、図4に示すように、対象までの距離に応じて、対象を計測する高さ(z)が変化する。したがって、ローカル座標系からワールド座標系への変換処理に加えて、傾斜を補正するための座標系の変換処理も必要となる。
【0067】
具体的には、図3(A)および図3(B)を参照して、計測された各点の変換後の位置ベクトルx’=SP’は、傾斜LRF14iが水平に設置されていたと仮定した場合の位置ベクトルx=SPから、次式(数1)のように求められる。
【0068】
【数1】

【0069】
ここでnはセンサを回転する軸に平行な単位ベクトル、αはセンサの水平面からの傾斜角である。座標変換式は、回転行列を用いて次式(数2)のように記述できる。
【0070】
【数2】

【0071】
ここでIは3行3列の単位ベクトルであり、nの要素をn=(n,n,n)と定義した(nはnの転置)。
【0072】
このように、計測装置10は、スキャン面Scnの傾斜角αを変化させながら計測を行うので、1回の計測によって(たとえば傾斜角αが最小値24度から最大値90度まで変化する期間に)、対象の3次元形状を計算することができる。また、対象が停止していても、その3次元形状を計算することができる(ただし、対象が動いていれば、多様な位置関係で計測が行えるので、3次元形状の計算精度が高まる点で好ましい)。
【0073】
また、傾斜角αがこのように変化することで、計測領域が拡がると共に、複数の対象が密集している状態でも、対象群を直上ないしその近傍から計測した計測データに基づいて1つ1つの対象に容易に分離することができる。そして、様々な傾斜角で計測した計測データに基づいて、分離した1つ1つの対象の3次元形状を精度よく計算することができる。
【0074】
また、計測装置10では、上記のように計算した3次元形状から対象の種類(たとえば人体か物体か)ないし属性(たとえば、人体なら性別や大人/子供の区別、物体ならショッピングカート/手荷物の区別など)やプロファイル(たとえば身長など)を推定したり、姿勢(たとえば頭部の向き)から行動(たとえば通路沿いの店舗や案内板を見ながら歩く行動)を推定したりすることも可能となる。
【0075】
そして、特に、上記のような計算および推定を複数の対象について同時に行うことで、対象間の関係(たとえば友人同士か家族連れか、あるいは他人か)を推定することもできるし、友人同士や家族連れといったグループの行動パターン(たとえば、友人同士が特定の店舗や案内板に注目したり、家族連れが特定の通路を通ったり、といった行動パターン)を解析することも可能となる。
【0076】
16台のLRF14のショッピングセンタへの設置例を図4に示す。図4はショッピングセンタ内を上から見た上面図である。ショッピングセンタ内には、ワールド座標系として、たとえば床面上の点Oを原点に、床面の長辺および短辺に沿ってX軸およびY軸が定義され、さらにX軸およびY軸の両方に垂直なZ軸(鉛直上方)が定義される。
【0077】
この例では、図4からわかるように、16台のLRF14は、ショッピングセンタを横(X軸方向)に貫く通路およびその両端に位置する広場ないしオープン形式の飲食店舗に跨って(ここでは10台が通路に、6台が広場等に)配置され、これら通路および広場等を計測領域としてカバーする。この黒枠で示された計測領域は、たとえば約1220平方メートルの広さを有し、計測領域の周囲には、各種の飲食店舗や物販店舗が軒を連ねている。
【0078】
16台のLRF14のうち、通路沿いの10台(黒丸)は低所たとえば3.5mの高さに設置され、広場等の6台(白丸)は高所たとえば10mの高さに設置される。こうして、個々のLRF14の高さを当該LRF14が担当する計測領域の広さに応じて変えることで、効率のよい計測が行える。
【0079】
個々のLRF14は、たとえば図5に示すように、鉛直下方から前方に66度(24°≦α≦90°),左右に90度(−45°≦β≦45°)の範囲を計測することができる。したがって、あるLRF14の設置高さを8mとすると、身長1.8mの歩行者を対象として計測可能な範囲は、そのLRF14の直下で左右に12.4m、そのLRF14の66°(10.7m)前方では左右に30.5mとなる。
【0080】
ある1つのLRF14による走査例を図6に示す。図6を参照して、1つ1つの黒点は、ある1つのLRF14から角度α,βを変えながら周期的に射出されたレーザ光が対象である人体または床面に到達する位置を表している。十字印“+”は、LRF14の直下位置を示す。このようなレーザ走査によって、LRF14自身から各黒点までの距離が計測され、計測結果から対象の位置や姿勢などの情報が得られる。
【0081】
なお、LRF14の角度分解能が0.6度×0.6度(つまり角度α,βの変化が0.6度刻み)の場合、LRF14から対象までの距離が8mであれば、黒点の間隔は8cm程度となって、人体の位置や姿勢を求めるのに十分な距離分解能が得られる。
【0082】
このようなLRF14を複数台設置して、異なる方向から計測を行うことで、孤立した対象に対して詳細な計測が行えると共に、隣接する複数の対象に対しても、それらを互いに分離することが容易になり、かつ遮蔽(ある対象が別の対象の陰に隠れること)による計測漏れを回避することができるので、安定した計測が行える。
【0083】
なお、図1〜図6に示した構成や数値は一例であり、LRF14の個数およびそれらの配置、ならびに個々のLRF14の設置高さ,角度変域および角度分解能などは、必要に応じて適宜変更してよい。
【0084】
次に、計測装置10のコンピュータ12が行う処理について説明する。最初、概要を説明する。コンピュータ12は、まず、16台のLRF14からの計測データに基づいて、対象の状態(たとえば位置,移動方向,3次元形状および姿勢など)をパーティクルフィルタでリアルタイムに推定する状態推定処理を実行する。
【0085】
パーティクルフィルタは、予測および観測を繰り返すことによって現在の対象の状態を推定する時系列フィルタの一種であり、具体的には、現状態から起こりうる次状態を多数のパーティクルに見立てて、観測された状態との間の尤度(類似度)をパーティクル毎に求め、全パーティクルを尤度に応じて加重平均した結果を現在の対象の状態であると推定する。そして、重みに従う新たなパーティクルを発生させ、同様の処理を繰り返すことで、対象の状態を逐次推定することができる。
【0086】
状態推定処理では、1つ1つの対象の状態を専用のパーティクルフィルタで推定する。したがって、たとえば10個の対象が検出されている状態では、10個のパーティクルフィルタが並列に動作しており、別の対象が検出されると、11個目のパーティクルフィルタが新たに生成される。
【0087】
コンピュータ12はまた、上記のような状態推定処理と並列的に、各対象の状態に基づいて、各対象が“一人”であるかグループに属するかを推定するグループ推定処理、および各対象が個別に行う行動(たとえば店舗や案内板を見る行動)を推定する個別行動推定処理をも実行する。
【0088】
そして、各種の推定処理が完了した後、コンピュータ12はさらに、推定結果に基づいてグループ行動を解析する。このグループ行動解析処理では、各グループを“友達同士”,“家族連れ”,“カップル”などのカテゴリに分類したり、個別行動情報をグループ毎に解析してグループ行動情報を作成したり、グループ行動情報をカテゴリ毎に解析してグループ行動パターン情報を作成したりする。
【0089】
次に、具体的な処理手順について、図7のメモリマップおよび図8〜図13のフローチャートを用いて、図14〜図17の図解も参照しながら説明する。上述したような一連の処理は、コンピュータ12のCPU12cが、メモリ12dに記憶された図7に示すようなプログラムおよびデータに基づいて、図8〜図13に示すようなフローに従う処理を実行することにより実現される。
【0090】
図7を参照して、メモリ12dにはプログラムエリア20およびデータエリア22が形成され、プログラムエリア22に計測プログラム32が格納される。計測プログラム32は、CPU12cを介してLRF14による計測処理を実現するソフトウェアプログラムであり、図8〜図13のフローのうち特に図8のメインフローに対応している。
【0091】
計測プログラム32には、サブのソフトウェアプログラムである推定プログラム32aおよび解析プログラム32bが含まれている。推定プログラム32aは、パーティクルフィルタによる状態推定処理(図9)、属性/プロファイル推定処理(図10)、個別行動推定処理(図11)およびグループ推定処理(図12)を担当し、解析プログラム32bは、グループ解析処理(図13)を担当する。なお、図示は省略するが、プログラムエリア20には、入力器12aおよび表示器12bを制御してキー入力,画像出力などを実現する入出力制御プログラムなども記憶される。
【0092】
データエリア22には、計測データ34,変換データ36,パーティクルフィルタ38,対象情報40,グループ情報42,個別行動情報44,グループ行動情報46,グループ行動パターン情報48,3次元形状モデルデータベース(DB)50および地図データ52が記憶さる。計測データ34は、各LRF14による計測の結果を示すデータである(先述したような3次元距離情報を含む)。変換データ36は、計測データ34に後述するような2種類の座標変換処理を施して得られるデータである。パーティクルフィルタ38は、変換データ36に基づいて各対象(T1,T2,…)の状態を推定するための時系列フィルタであり、対象T1用パーティクルフィルタ38a,対象T2用パーティクルフィルタ38b,…を含む。
【0093】
対象情報40は、各対象(T1,T2,…)の状態や属性/プロファイルを示す情報であり、パーティクルフィルタ38による推定の結果に基づいて作成される。具体的には、図16(A)に示すように、状態として位置,移動方向,3次元形状および姿勢が、属性/プロファイルとして身長,性別および大人/子供の区別が記述される。
【0094】
グループ情報42は、対象情報40から推定されるグループを示す情報であり、具体的には、図16(B)に示すように、各グループ(G1,G2,…)について要素およびカテゴリが記述される。このグループ情報42からは、対象T1およびT2でグループG1が構成され、二人は友達同士であることが分かる。また、対象T5〜T7でグループG2が構成され、三人は家族連れであることが分かる。なお、どのグループにも含まれない対象については、“一人”であるとみなされる。
【0095】
個別行動情報44は、各対象(T1,T2,…)の個別的な行動を示す情報であり、対象情報40から推定される。個別行動情報44には、図16(C)に示すように、各対象(T1,T2,…)について、当該対象の地図上での軌跡と共に、当該対象の行動が「(対象T1は)店舗A,B,…および案内板Pを見た」,「(対象T2は)店舗A,C,…および案内板Pを見た」のように記述される。
【0096】
グループ行動情報46は、各グループ(G1,G2,…)の行動を示す情報であり、グループ情報42および個別行動情報44に基づいて作成される。グループ行動情報46には、図16(D)に示すように、各グループ(G1,G2,…)について軌跡および行動が記述される。たとえば、グループG1の軌跡は、グループG1に属する対象T1およびT2の軌跡を平均したものである。グループG1の行動は、グループG1に属する対象T1およびT2の行動に関する和集合であり、具体的には、「(対象T1は)店舗A,B,…および案内板Pを見た」および「(対象T2は)店舗A,C,…および案内板Pを見た」に基づいて「店舗A,B,C,…および案内板Pを見た」などのように記述される。
【0097】
グループ行動パターン情報48は、同じカテゴリに属するグループ行動に共通のパターンを示す情報であり、グループ情報42およびグループ行動情報46に基づいて作成される。グループ行動パターン情報48には、図16(E)に示すように、各カテゴリ(友達同士,家族連れ,カップル)について要素および行動パターンが記述される。たとえば、“友達同士” の行動パターンは、“友達同士”に属するグループG1,G5,…の行動に関する積集合であり、「(友達同士のグループは)店舗Aおよび案内板Pを見る」などのように記述される。
【0098】
3次元形状モデルDB50は、対象の3次元形状および姿勢を推定するための2種類のモデルM1およびM2を登録したデータベースである。モデルM1は、図14に示すような肩から上の身体形状を示すモデルであり、頭頂部の中心位置Oを原点として高さzおよび方向θにおける半径rを定義すると、r(z,θ)のように表現される。一方、モデルM2は、図15に示すような全身の骨格を示すモデルであり、楕円で示された頭部の骨、四辺形で示された胴体の骨、および8本の線分で示された手足の骨と、これらの骨を繋ぐ8個の黒丸で示された関節とで表現される。モデルM2では、肩から上がモデルM1に対応しており、各骨の長さR1〜R4,L1〜L4は既知である(計測データ34に基づいて計算された値がセットされる)。
【0099】
図8を参照して、計測処理が開始されると、CPU12cは、まず、ステップS1で初期処理を行う。初期処理では、たとえば、データエリア22内の各種情報(40〜49)の初期化、3次元形状モデルDB50へのモデルM1およびM2の登録、および地図データ52の取込みなどが行われる。
【0100】
初期処理が完了すると、ステップS3に進んで、各LRF14の傾斜角(α)を制御する。初回実行時には、変数αに初期値(たとえば24度)をセットし、2回目以降の実行時には、αを0.6度ずつ増加させていき、αが上限値(たとえば90度)に達するとαを初期値に戻して同様の動作を繰り返す。各LRF14は、CPU12cが指定した変数αに従ってスキャン面の傾斜角を変化させる。
【0101】
次に、ステップS5で各LRF14から計測データ34を取得し、ステップS7では、その取得した計測データ34に、スキャン面Scnの傾斜を補正するための座標変換(数1および数2参照)を施す。そして、その座標変換された計測データをステップS9で空間的に統合する。言い換えると、ステップS7で座標変換された計測データに対してさらに、ローカル座標系からワールド座標系への座標変換を施す。
【0102】
次に、ステップS11で、2種類の座標変換が施された後の計測データつまり変換データ36に基づいて対象を検出する。具体的な検出方法としては、床面の位置を予め入力しておき、床面より一定以上高い位置で検出された一定数以上の計測点の集合を対象とみなす方法がある。または、同じ方向を一定時間計測して、得られた最大距離を背景の位置として登録し、背景より一定距離以上手前にある1計測点の集合を対象とする方法も挙げられる。対象間の距離が接触するほど接近していない場合には、3次元空間上で相対的に近い距離に集まった計測点の集合を、クラスタリングによって個別の対象として分離して抽出することも可能である。いずれにしても、LRF14による3次元計測では、カメラを用いた3次元計測手法と比較して、個々の対象を分離しやすい利点がある。そして特に、スキャン面Scnの傾斜角αを変化させながら計測を行う場合には、計測領域が拡がると共に、個々の対象を分離して3次元形状を精度よく計算することができる。
【0103】
その後、ステップS13に進んで、新たな対象が検出されたか否かを判別し、ここでNOであれば、ステップS15に移って、既検出の対象が消滅したか否かをさらに判別する。ここでもNOであれば、ステップS3に戻って上記と同様の処理を(たとえば0.1秒毎に:以下同様)繰り返す。
【0104】
ステップS13でYESであれば、ステップS17に進んで、当該対象用のパーティクルフィルタ38を生成し、その後、ステップS3に戻って上記と同様の処理を繰り返す。ステップS15でYESであれば、ステップS19に進んで、当該対象用のパーティクルフィルタ38を削除し、その後、ステップS3に戻って上記と同様の処理を繰り返す。
【0105】
したがって、たとえば、2つの対象T1およびT2が検出されている状態では、これら対象T1およびT2用の2つのパーティクルフィルタ38aおよび38bがデータエリア22に記憶され、それらによる2つの状態推定処理が並列に実行されている。この状態で、新たな対象T3が検出されると、対象T3用のパーティクルフィルタ38cが追加され、一方、既検出の対象(たとえばT1)が消滅すると、当該対象用のパーティクルフィルタ38(たとえば対象T1用パーティクルフィルタ38a)は削除される。
【0106】
こうして生成されたパーティクルフィルタ38a,38b,…による対象T1,T2,…の状態推定処理は、それぞれ図9のフローに従って実行される。すなわち、図9と同様のフローが、現在検出されている対象の数と同数だけ並列に実行される。このうち、パーティクルフィルタ38aによる対象T1の状態推定処理は、以下のようになる。
【0107】
図9を参照して、まず、ステップS21で、パーティクルフィルタ38aに含まれる各パーティクルを初期化した後、ステップS23に進んで、対象T1の状態に関する複数の仮説を生成する。ここで状態には、位置,移動方向,3次元形状および姿勢(たとえば頭部の向き)などが含まれる。そして、ステップS25で、各パーティクルにいずれか1つの仮説を付与する。
【0108】
次に、ステップS27で、新たな計測データ34が取得されたか否かを判別し、NOであれば待機する。先述した計測処理(図8参照)によってデータエリア22内の計測データ34ひいては変換データ36が更新されると、ステップS27でYESと判別し、ステップS29〜S39の一連の処理を実行する。
【0109】
すなわち、ステップS29では、モデルM1に基づいて、現在の計測値に対する各パーティクルの尤度を計算し、ステップS31では、全パーティクルを計算した尤度に応じて加重平均する。ステップS33では、その加重平均値を対象T1の状態に関する推定値として出力する。データエリア22に記憶された対象情報40は、こうして出力される推定値に基づいて更新される。
【0110】
さらに、ステップS35で、先に計算した尤度に基づきパーティクルの選択を行い、パーティクルの集合を更新した後、ステップS37に進んで、次の計測時点での各パーティクルの状態を予測する。そして、ステップS39で予測結果に基づき仮説を更新した後、ステップS25に戻って上記と同様の処理を繰り返す。
【0111】
これによって、対象T1の位置および姿勢は、具体的には以下のように推定される。この推定処理は、要するに、対象T1に対応する計測点の集合(ステップS5の検出結果)をXとして、Xに最も合うようなモデルM1の位置および正面の方向Αを求める手続きである。なお、モデルM1の正面方向Αは、対象T1の視線方向とみなしてよい。
【0112】
すなわち、最初、対象T1に対応する計測点(x,y,z)の集合をXにセットする。次に、先述のr(z,θ)で表現されるモデルM1(図13参照)に対し、ある位置および方向つまり(X,Α)を与える。そして、Xの各点Xiに次式(数3)による演算を行い、演算結果の集合をX’とする。
【0113】
【数3】

【0114】
このX’に対して、モデルM1つまりr=r(θ,z)との誤差errorを次式(数4)のように定義する。
【0115】
【数4】

【0116】
ここでX’=(x’,y’,z’)t ,r’=√{x’+y’}である(ただし上付tは行列の転置を意味する)。
【0117】
以上のような準備の後、パーティクルフィルタを用いて(X,Α)の様々な値に対するerrorを計算し、計算結果が最小になる(X*,Α*)を、対象T1に関する位置および方向の推定値とする。
【0118】
なお、(X*,Α*)の求め方については、たとえば、次式(数5)で与えられる計測点の中心位置〈X〉を初期値として、その周辺の値を探索する方法がある。
【0119】
【数5】

【0120】
ここで、〈x〉,〈y〉はそれぞれXに含まれる計測点のx,y座標の平均であり、zmaxはXに含まれる計測点のz座標の最大値である。具体的には、Xとして〈X〉の近傍の様々な値を、Αとして全ての方向の様々な角度値をそれぞれ選択しながら、上式(数4)でerrorを計算し、計算結果が最小になるようなXおよびΑの組み合わせを(X*,Α*)として出力すればよい。
【0121】
なお、ここでは、位置および姿勢として、肩から上の位置および向きを推定したが、より特定的に、頭部の位置および向きを推定してもよい。この場合、たとえば肩に対する頭部の回転角度をパラメータとして持つモデル(図示せず)を用いることも考えられる。人の頭部の形状には個人差があるものの、左右の対象性などの一般的な特徴を反映したモデルを用いることで、頭部の向きの推定は可能である。さらには、このようなモデルを対象T1,T2,…毎に準備して、各対象から計測された頭部形状に基づいて各モデルを動的に変化させる(対象T1,T2,…毎に頭部の形状を学習していく)ことで、各対象について頭部の位置および向きを精度よく推定することができる。その際、頭部の平均的な向きは移動方向に一致すると仮定すれば、各対象が歩きながら見た店舗や案内看板を推定することも可能である。
【0122】
また、対象T1,T2,…の密度が比較的低い(重なり合わない程度に間隔が空いている)場合には、モデルM1を用いて求めた肩から上(頭部)の位置および方向を基準として、全身の骨格を示すモデルM2を適用することによって、さらに腕や脚の姿勢も推定できる。
【0123】
モデルM1に加えてモデルM2を適用する利点は、モデルM1によって身長が既知となった結果、モデルM2によって腕や脚といった各部位の長さを精度よく推定できる点にある。加えて、モデルM1によって肩から上(頭部)の位置および向きが既知となるので、腕や脚といった各部位について可能な姿勢の候補数が削減され、その結果、モデルM2による姿勢の推定を効率的に行える点も挙げられる。
【0124】
モデルM2を用いた姿勢の推定では、まず、モデルM1を用いて求めた肩から上(頭部)の位置および方向に整合するように、モデルM2の頭部と肩(胴体)の姿勢を決め、次に、腕や脚といった各部位について、モデルM1を用いる場合と同様に可能な姿勢(ここでは8個の関節角の組)の候補を計算する。そして、計測点との誤差が最小になるような関節角の組を求め、それを各部位の姿勢として出力すればよい。
【0125】
移動方向および3次元形状についても、上記と同様に、まず可能な候補を計算し、次に、パーティクルフィルタ38aを用いて、計測点との誤差が最小となる移動方向および3次元形状を求め、それらを推定結果として対象情報40に記述すればよい。
【0126】
パーティクルフィルタ38b,30c,…による対象T2,T3,…の状態推定処理もそれぞれ上記と同様に実行され、それらの推定結果が対象情報40に反映される。
【0127】
上記のようにして推定された対象T1,T2,T3,…の状態(対象情報40)に基づく属性/プロファイル推定処理は、それぞれ図10のフローに従って実行される。すなわち、図10と同様のフローが、現在検出されている対象の数と同数だけ並列に実行される。このうち、対象T1の属性/プロファイル推定処理は、以下のようになる。
【0128】
最初、ステップS51で、繰り返し推定される3次元形状に基づいて、対象T1の属性ないしプロファイル、ここでは身長,性別および大人/子供を特定する。そして、特定に成功したか否かをステップS53で判別し、NOであればステップS51に戻って上記と同様の処理を繰り返す。ステップS53でYESであれば、その特定結果を対象情報40に記述した後、ステップS51に戻って上記と同様の処理を繰り返す。
【0129】
また、上記のようにして推定された対象T1,T2,T3,…の状態(対象情報40)に基づく個別行動推定処理は、それぞれ図11のフローに従って実行される。すなわち、図11と同様のフローが、現在検出されている対象の数と同数だけ並列に実行される。このうち、対象T1の個別行動推定処理は、以下のようになる。
【0130】
図11を参照して、最初、ステップS61で、繰り返し推定される位置(対象T1の現在位置)を蓄積していき、蓄積結果を対象T1の軌跡として個別行動情報44に記述する。次に、ステップS63で、繰り返し推定される2つの方向つまり移動方向および肩から上(頭部)の方向を比較して、肩から上(頭部)が移動方向とは異なる方向を向いたか否かを次のステップS65で判別する。
【0131】
肩から上(頭部)が移動方向に対して一定角度以上回転し、かつその状態が一定時間以上継続した場合に、ステップS65でYESと判別してステップS67に進む。一方、肩から上(頭部)の回転角が一定角度に満たないか、たとえ回転角が一定角度以上であってもその状態の継続時間が一定時間に満たない場合には、ステップS65でNOと判別し、ステップS61に戻って上記と同様の処理を繰り返す。
【0132】
ステップS67では、地図データ52に基づいて、たとえば図17に示すように、肩から上(頭部)の向いた先、つまり視線方向に存在する店舗や案内板(ここでは店舗Aおよび案内板P)を特定する。そして、ステップS69で、その特定結果に基づいて、対象T1の行動たとえば「店舗Aと案内板Pを見た」を個別行動情報44に記述する。その後、ステップS61に戻って上記と同様の処理を繰り返す。
【0133】
これにより、個別行動情報44に記述された対象T1の軌跡および行動が周期的に更新されていく。たとえば、行動に関する記述は、「店舗Aと案内板Pを見た」→「店舗A,Bと案内板Pを見た」→「店舗A,B,…と案内板Pを見た」のように変化する。対象T2,T3,…の個別行動推定処理もそれぞれ上記と同様に実行され、それらの推定結果が個別行動情報44に反映される(図16(C)参照)。
【0134】
また、先述のようにして推定された対象T1,T2,T3,…の状態に基づいて、図12のフローに従うグループ推定処理がさらに実行される。図12を参照して、最初、ステップS81で、グループ情報42を初期化する。これによって、各対象は、ひとまず“一人”とみなされる。次に、ステップS83で、対象情報40に基づいて、対象T1,T2,…の間で互いの位置および移動方向を比較し、そして、ステップS85で、位置が近接しかつ移動方向が共通の対象があるか否かを判別する。ここでNOであれば、所定時間の待機状態を経てステップS83に戻り、上記と同様の処理を繰り返す。
【0135】
ステップS85でYESであれば、ステップS87に進んで、当該対象の間で互いの姿勢(肩から上ないし頭部の向き)を比較し、そしてステップS89で、肩から上ないし頭部が一定以上の頻度で相対する向きを向くか否かを判別する。ここでNOであれば、所定時間の待機状態を経てステップS83に戻り、上記と同様の処理を繰り返す。
【0136】
ステップS89でYESであれば、ステップS91に進んで、当該対象を1つのグループとしてグループ情報42(図16(B)参照)に登録する。その後、ステップS83に戻って上記と同様の処理を繰り返す。
【0137】
これによって、たとえば対象T1およびT2が1つのグループであると推定された場合、対象T1およびT2を要素とするグループG1がグループ情報42に登録される。その後に、たとえば対象T5〜T7が1つのグループであると推定されたとすると、対象T5〜T7を要素とするグループG2がグループ情報42に追加登録される。なお、図示は省略するが、ある時点まで1つのグループであると推定されていた対象(たとえばT1およびT2)が消滅ないし離散した場合、当該グループ(たとえばG1)の登録はグループ情報42から抹消される。
【0138】
一方、グループG1,G2,…の行動を解析するグループ行動解析処理は、上記のようして推定された対象T1,T2,T3,…の個別行動(個別行動情報44)に基づいて、図13のフローに従って実行される。
【0139】
図13を参照して、最初のステップS101では、対象情報40に記述された身長,性別および大人/子供の区別、ならびにグループ情報42に記述された要素の数(現在検出されている対象T1,T2,…の総数)に基づいて、各グループを友達同士,家族連れおよびカップルのいずれかのカテゴリに分類し、結果をグループ情報42に追記する。
【0140】
次のステップS93では、個別行動情報44をグループ毎に解析して、グループ行動情報46を作成する。具体的には、グループG1に属する対象T1およびT2の軌跡からそれらの平均を求め、その平均軌跡をグループ行動情報46に記述する。また、対象T1およびT2の行動の和集合を求め、結果をグループ行動情報46にさらに記述する。
【0141】
その次のステップS95では、グループ行動情報46をカテゴリ毎に解析して、グループ行動パターン情報48を作成する。具体的には、友達同士に分類されたグループ(たとえばG1,G5,…)の行動からそれらの積集合を求め、その結果を友達同士のグループの行動パターン(たとえば「店舗Aと案内板Pを見る」)としてグループ行動パターン情報48に記述する。家族連れ,カップルについても、同様に行動の積集合を求め、それぞれの結果を家族連れ,カップルの行動パターンとしてグループ行動パターン情報48に記述する。
【0142】
こうして、各グループの分類,行動および行動パターンについて解析が完了すると、このグループ解析処理は終了される。
【0143】
なお、以上のフローでは、対象の状態をパーティクルフィルタ38で推定したが、カルマンフィルタなど他の時系列フィルタで推定してもよいし、時系列フィルタリング以外の方法たとえば動的計画法(Dynamic Programming)によるDPマッチングなどによって推定してもよい。
【0144】
以上から明らかなように、この実施例の計測装置10は、スキャン面Scnが傾斜した16台のLRF14をショッピングセンタ内に配置して、複数の対象(T1,T2,…)を計測する。なお、LRF14の台数は、計測領域に応じて適宜な台数が選ばれてよく、場合によっては1台でもよい。LRF14の配置は、それぞれの計測領域が適宜オーバーラップするように決められるが、場合によっては、オーバーラップはなくてもよい。
【0145】
詳しくは、計測装置10のコンピュータ12は、ステップS1で、複数の対象に関する3次元形状モデル(M1,M2)をDB50に登録し、その後、ステップS3で、LRF14を制御してスキャン面Scnの水平面に対する傾斜角αを24度〜90度の範囲で変化させつつ、ステップS5〜S19およびS21〜S39で複数の対象それぞれのパーティクルフィルタ38a,38b,…を用いてLRF14からの計測データ34(変換データ36)と3次元形状モデル50(M1,M2)との比較を行うことにより複数の対象それぞれの状態(位置,移動方向,3次元形状および姿勢)を推定する。なお、傾斜角αの変化範囲は、24度〜90度に限らず、分離の容易さと計測領域の広さとのバランスを考慮して、適宜な範囲(たとえば20度〜80度や30度〜150度など)を選べばよい。
【0146】
こうして、傾斜角αを変化させつつ計測を行うことで、複数の対象T1,T2,…の分離が容易となり、分離された複数の対象T1,T2,…それぞれにパーティクルフィルタ38a,38b,…を用いることで、それぞれの3次元形状および姿勢を精度よく推定することができる。また、動く対象でも停止した対象でも、その3次元形状を推定できる。
【0147】
特に、3次元形状モデルとして、肩から上の身体形状モデルM1を用いることで、肩から上ないし頭部の3次元形状および向き(Α:図17参照)を推定できるし、全身の骨格モデルM2も併用することで、腕や脚の向きの推定も可能になる。
【0148】
また、頭部の3次元形状から、身長などのプロファイルや、性別,大人/子供の区別といった属性を推定することができるし、頭部の向きΑからは、特定の店舗や案内板を見るといった行動(個別行動)の推定も可能である。
【0149】
そして、複数の対象T1,T2,…の間で位置,移動方向および姿勢(頭部の向きΑ)を比較することによってグループか一人かの推定も行えるし、グループG1,G2,…を各対象の属性に基づいて複数のカテゴリ(友達同士,家族連れおよびカップルなど)に分類することも可能である。
【0150】
さらには、個別行動情報44をグループ毎に解析することでグループ行動情報46を作成したり、グループ行動情報46をカテゴリ毎に解析してグループ行動パターン情報48を作成したりすることもできる。
【0151】
このほか、混雑した状況でも一人一人の位置が計測可能になることにより、特定の場所を訪れる正確な人数を集計することができる。また、混雑した状況でも一人一人の移動軌跡を求めることが可能であり、一人一人の移動軌跡からグループ単位での移動軌跡(平均軌跡)を求めることもできる。これらにより、人の移動を妨げる原因を調査したり、環境内に新たな物体を置いた場合やイベントを行った場合の人の流れを調べたりすることが可能になる。
【0152】
また、上記のような調査を行う際に、大人と子供を区別して集計したり、男女別に集計したりすることができるし、大人/子供や性別といった属性による行動パターンの違いを解析することも可能になる。
【0153】
さらに、肩の位置から人の上半身の方向を知ることができるし、特に、顔の向いている方向から人の興味を持つ対象を推定することも可能である。多くの人が興味を示す対象の位置を求めることにより、案内の設置や広告の設置を検討する根拠を得ることができる。
【0154】
加えて、グループ推定を行い、グループを単位として群集の行動を解析することで、一人一人を他人として扱った場合と比べて、より実際に近い行動を知ることができる。
【0155】
こうして、計測装置10は、LRF14で複数の対象T1,T2,…を計測して、多様な情報を得ることができる。
【0156】
そして、これらの情報は、たとえば、環境内でロボットを動かす際に有用である。具体的には、ロボットは、環境内での人の移動の統計解析を行うことにより、場所や時間による人の動きの違いを理解して、人の動きを遮らないように動くことができる。また、人の通常移動する経路に沿って、人の動きに寄り添いながらサービスをすることが可能になる。また、サービスを行う場所まで移動する際に、多くの人が移動する経路を避ける制御を行ったり、多くの人が興味を示す方向を避ける(つまり人の視界にできるだけ入らないようにする)制御を行ったりすることも可能である。また、リアルタイムに計測された人の位置および頭部の向き(視線方向:人が興味を示した方向)に基づいて、人の興味に応じたサービスを行うことも可能である。また、人のグループを認識することにより、グループの中に割り込まないように移動したり、グループ全員で食事のできる場所を紹介したりといった、グループで訪れた人に適したサービスを提案することが可能である。
(第2実施例)
この実施例(第2実施例)の計測装置10のハードウェア構成は、前の実施例(第1実施例)の計測装置10のそれと同様である。よって、図1〜図3を援用し、詳しい説明を省略する。また、計測装置10の基本動作および設置環境等も、前の実施例の場合と同様なので、図4〜図6を援用し、詳しい説明を省略する。
【0157】
この実施例と前の実施例との間で計測装置10の動作上の主要な相違は、人の姿勢を推定するにあたって、後者が、図17に示されるように、頭部ないしは肩から上の全体的な方向を検出している(つまり体の方向と頭の方向とを特に区別していない)のに対し、前者は、図18に示されるように、体の方向(θb)と頭の方向(θh)とを明確に区別する点にある。
【0158】
これは、コンピュータ12の処理でいえば、パーティクルフィルタによる状態推定処理(図9参照)に供される変数(位置,移動方向,3次元形状および姿勢を示す変数)のうち、姿勢を示す変数の数が、前の実施例の場合よりも1つ多い、という違いになる。
【0159】
したがって、メモリ12dの内容およびCPU12の処理も、一部を除いて前の実施例と同様なので、図7〜図17を援用し、共通点についての説明は省略または簡略化する。以下、上記の相違点を中心に、図18〜図30を用いて詳しく説明する。
【0160】
図19には、LRF14の出力(3Dスキャンデータ)に基づいて人の位置および姿勢(体の方向および頭の方向)を計測する方法(頭と両肩が検出された場合)が示される。この位置&姿勢計測方法は、(A)頭上部および肩の検出、(B)特徴抽出、および(C)位置および姿勢の計算、の大きく3段階で構成される。
(A)頭上部および肩の検出
一人の被験者(人体の少なくとも肩から上)に対応する3Dスキャンデータ(以下単に“3Dスキャン”)を層化し、頭上層のデータ(“頭上層”)および肩の層のデータ(“肩の層”)を抽出する。
【0161】
具体的には、計測装置10は、図20に示されるように、LRF14の出力に基づく人体の3Dスキャン(SC)を、最も上の点つまり頭頂点(HTP)から所定幅(たとえば10cm)で水平方向にスライスして、上から1番目の層(頭頂点を0として、0〜10cmの範囲に入る点の集合)および4番目の層(30〜40cmの範囲に入る点の集合)をそれぞれ頭上層(HLY)および肩の層(SLY)として抽出する。
【0162】
なお、スライス幅は、固定値でもよいが、好ましくは、身長(大人/子供)に応じて変化するパラメータであり、たとえば、身長170cm(大人)の場合は10cm、身長100cm(子供)の場合は6.5cm、などのように設定される。
【0163】
または、上記のように一定間隔で均等にスライスする代わりに、人体形状に応じた間隔で不均等にスライスしてもよい(たとえば、第1層は10cm、第4層は13cmなど)。または、いったん均等にスライスした後、各層に属する点の数を計数して、その比率が人体形状と適合するように各層の幅を調節する方法もある。
【0164】
図20の人体に対応する典型的な3Dスキャンの形状を、頭上層および肩の層にそれぞれ黒およびグレーのハッチングを付けて、図21〜図24に示す。図21は、LRF14の計測角が90度で、人がLRF14に対して横向きの場合の形状を、図22は、LRF14の計測角が90度で、人がLRF14に対して正面向きの場合の形状を、図23は、LRF14の計測角が0で、人がLRF14に対して正面向きの場合の形状を、図24は、LRF14の計測角が30〜40度で、人がLRF14に対して横または斜め向きの場合の形状を、それぞれ示している。
【0165】
なお、この実施例で「計測角」とは、LRF14の光軸が鉛直線に対してなす角をいい、LRF14を真下に向けた場合は0度、真横に向けた場合は90度となる。前の実施例で用いた「傾斜角」(α:図3(A)参照)との間では、“計測角=90°−α”の関係がある。
【0166】
LRF14の計測領域を図5のように設定した場合、つまりLRF14を8mの高さに設置して、鉛直線に対し±45度の振り角で0〜66度の範囲を計測する場合に得られるのは、図23または図24のような3Dスキャンである。図23の例では、頭上部の全部または大部分と左右両方の肩とを視認できるのに対し、図24の例では、頭上部の一部と一方の肩しか視認できない。ここでは、図23に示されるように、頭上部の全部または大部分と両肩とが検出されたものとする。
(B)特徴抽出
まず、(1)頭上層から“頭の中心点”を求め、(2)肩の層からは“体の方向ベクトル”を求める。次に、(3)頭上層から、体の方向ベクトルに対して最も後ろにある“頭の後部点”(“頭後点”ともいう:図18参照)を求め、さらに(4)頭上層から、“頭の後部点”に対して最も遠いところにある“頭の前部点”(“頭前点”ともいう)を求める。
【0167】
より具体的には、図18も参照して、計測装置10は、(1)頭上層の中心点(P:つまり頭上層に含まれる点の平均、あるいは頭上層の重心)を求め、これを“頭の中心点”とする。また、(2)肩の層に主成分分析を施し、その第2主成分を“体の方向”とする。なお、この場合の第1主成分は、両肩をつなぐ線の方向である。前後の向きは、「一般に肩よりも頭が前方にある」という人体の特徴に基づいて決められる。これにより、体の方向を示すベクトル(体の方向ベクトルVb)が求まる。
【0168】
次に、計測装置10は、(3)頭上層において、体の方向ベクトルVbに対して最も後方のものから一定数の点(たとえば頭上層全体の1/5の点)を特定し、その特定された点で構成される頭後領域(HRA)の中心点を求めて、これを“頭後点”(HRP)とする。1/5という割合は、一例に過ぎず、適宜変更されてよい(たとえば25%など)。
【0169】
なお、上記のように頭後領域を決める場合、図18に示されるように、頭上層を頭後領域HRAとそれ以外の領域とに区分する境界線BN1は、両肩をつなぐ線SLNと一般に一致しない。他の実施例では、頭上層のうち両肩をつなぐ線SLNよりも後方の領域を頭後領域と定義してもよい(この場合の境界線BN1は、両肩をつなぐ線SLNと常に一致する:図示せず)。両肩をつなぐ線SLNは、たとえば、肩の層の中心点を通り、かつ肩の層の第1主成分に平行な直線として求めることができる。また、境界線BN1は、直線とは限らず、曲線でもよい(部分的にまたは全体的に湾曲したり折れ曲がったりしていてもよい)。
【0170】
次に、計測装置10は、(4)頭上層において、頭後点に対して遠い順に一定数の点(たとえば頭上層全体の1/5の点)を特定し、その特定された点で構成される頭前領域(HFA)の中心点を求め、これを“頭前点”(HFP)とする。1/5という割合もまた、適宜変更されてよい(たとえば30%など)。
【0171】
なお、この場合、頭上層を頭前領域とそれ以外の領域とに区分する境界線BN2は、図18に示されるように曲線(円弧)となるが、他の実施例では、直線でもよい。たとえば、頭の中心点Pに関して、頭後領域側の境界線BN1と対称な直線を求め、これを境界線BN2と定義する。この場合、頭上層において境界線BN2よりも前方の領域が、頭前領域となる。
(C)位置および姿勢の計算
前段の(1)で求めた頭の中心点を人の“位置”P(x,y)とし、(2)で求めた体の方向ベクトルVbの方向を“体の方向”θbとし、そして(3)で求めた頭後点から(4)で求めた頭前点に向かう方向を“頭の方向”θhとする。具体的には、計測装置10は、人の状態を示す変数のうち位置および姿勢を示す変数(x,y,θbおよびθh)に計算結果をセットする。
【0172】
一方、頭上部の一部と片方の肩しか検出されない場合の計測方法は、たとえば図25のようになる。この計測方法は、前述した図19の計測方法の一部を変更したものであり、共通部分の説明は省略または簡略化する。
(A)頭上部および肩の検出
前述と同様の手順で3Dスキャンを層化し、第1および第4層を抽出した結果、図24に示すように、頭上部の一部と一方の肩とが検出されたとする。
(B)特徴抽出
まず、(1)頭上層から前述と同様の手順で“頭の中心点”を求める。また、(2a)頭上層および肩の層(つまり頭と一方の肩)から、他方の肩(頭に隠れて見えない肩)を計算する。人体の左右対称性つまり「両肩は頭に対して左右対称な位置にある」という特徴、および「一般に肩よりも頭が前方にある(頭は両肩をつなぐ線よりも前方にある)」という特徴を考慮すると、検出された頭および一方の肩の位置に対して可能な他方の肩の位置は、図26(A)および図26(B)に示すように2通りある。どちらの配置が適当かは、前後の向きで決まる。そして、前後の向きは、人体の特徴点たとえば頭の中心点の移動方向に基づいて判定できる。一例として、現フレームで求めた頭の中心点と、前フレームで求めた頭の中心点との比較から前後の向きを判定し、この向きに適合する方の配置を採用すればよい。
【0173】
次に、(2b)検出された方の肩と、計算された方の肩とをつなぐ線(SLN1またはSLN2:図26(A)および図26(B)参照)に垂直なベクトルを求め、これを体の方向ベクトル(Vb)とする。そして、前述と同様の手順で、(3)頭上層から体の方向ベクトルに対して最も後ろにある頭後点を求め、さらに、(4)頭上層から頭後点に対して最も遠いところにある頭前点を求める。
(C)位置および姿勢の計算
前段の(1)で求めた頭の中心点を人の“位置”P(x,y)とし、(2b)で求めた体の方向ベクトルの方向を“体の方向”θbとし、そして(3)で求めた頭後点から(4)で求めた頭前点に向かう方向を“頭の方向”θhとする。
【0174】
この場合、頭上層に頭の一部しか含まれないため、位置の誤差が生じるが、モーショントラッカを用いた検証結果によれば、最大10cm程度の誤差にとどまる。また、体の方向の誤差は平均10度(両肩が見えていれば平均5度)、頭の方向の誤差は平均20度(計測角が小さいか、人がLRF14の方を向いていれば10度)である(詳細は後述)。
【0175】
以上のような位置および姿勢の計測方法は、コンピュータ12(CPU12c)が図27のフローに従い動作することで実現される。図27のフローは、図9のフローにおいて、ステップS29で尤度計算を行うときパーティクルフィルタに入力される、現在の位置および姿勢に関する計測値を求める処理(以下“位置&姿勢計測処理”と呼ぶ)である。そして、図27のフローは、図9のフローと同様、図8のフローのステップS11で検出された対象毎に実行される。したがって、たとえば同時に3人の被験者が検出されている状態では、図9のフローおよび図27のフローが3組、並列的に実行されることになる。
【0176】
図27を参照して、CPU12cは、まず、ステップS111で初期処理を実行する。具体的には、“位置”,“体の方向”および“頭の方向”(を示す変数x,y,bθおよびθh)を初期化したり、3Dスキャン,頭上層および肩の層といったテンポラリデータの保持領域(図示は省略するが、たとえば図7に示すメモリ12dのデータエリア22内に形成される)をクリアしたりする。
【0177】
初期処理が完了すると、ステップS113に進み、データエリア22から当該対象の3Dスキャンデータを取得する。なお、各対象の3Dスキャンデータは、LRF14の出力に対してクラスタリングを行って得られるデータであり、データエリア22に記憶された対象情報40の中に含まれている。次に、ステップS113で取得した3Dスキャンデータに対し、ステップS115で層化処理(図20参照)を施す。そして、層化結果から頭上層(HLY)および肩の層(SLY)をステップS117で抽出する。なお、3Dスキャンを層化して頭上層および肩の層を抽出する具体的な手順は、先に説明したので省略する。
【0178】
次に、ステップS117の抽出結果に基づいて、頭および肩が検出されたか否かをステップS119で判別する。具体的には、たとえば、抽出された頭部層に含まれる点の個数を計数して、その個数が第1所定数を上回れば頭が検出されたとみなし、そうでなければ頭は検出されなかったとみなす。同様に、肩の層に含まれる点の個数を計数して、その個数が第2所定数を上回れば肩が検出されたとみなし、そうでなければ肩は検出されなかったとみなす。ステップS119の判別結果は、頭および肩が共に検出されたとみなされる場合にYESとなり、少なくとも一方が検出されなかったとみなされる場合にはNOとなる。
【0179】
ステップS119でNOであれば、ステップS113に戻って上記と同様の処理を繰り返す。なお、このステップS113からS119を経てS113に戻るループ、またはテップS113からS135を経てS131に戻るループ(後述)は、1フレームに1回の周期で(たとえば1/30秒毎に)実行される。なお、この周期は一例であり、適宜変更されてよい(たとえば6フレームに1回など)。周期が時間的に変動してもよい。
【0180】
ステップS119でYESであれば、ステップS121に進み、ステップS117で抽出した頭上層から頭の中心点(P)を計算し、結果を“位置”とする(変数x,yにセットする)。具体的な計算方法は、先に説明したので省略する。次のステップS123では、検出された肩は両肩であるか否かを判別する。具体的には、肩の層において、“頭の中心点”を挟んで両側(左右)に略均等でかつ一定以上離れた2つの領域が形成されている場合、YES(両肩である)と判別する。一方、“頭の中心点”の片側に単一の領域しか形成されていない場合、または、両側に2つの領域が形成されていても、互いに不均等(一方が小さ過ぎ)であったり距離が近過ぎたりする場合、NO(片方の肩である)と判別する。
【0181】
ステップS123でNOであれば、ステップS125を経てステップS127進む。ステップS123でYESであれば、直ちにステップS127に進む。ステップS125では、ステップS117で抽出した頭上層つまり一方の肩と、ステップS121で計算した頭の中心点とに基づいて、他方の肩(頭に隠れて見えない肩)を計算する(図26(A),図26(B)参照)。具体的な計算方法は、先に説明したので省略する。
【0182】
なお、先の説明では、他方の肩の位置として図26(A)および図26(B)のどちらに示された位置が適当かを前後の向きに基づいて判断する際に、現フレームで求めた頭の中心点と前フレームで求めたそれとの比較から移動方向を判別して前後の向きを決定したが、対象情報40に記述された3次元形状から前後の向きを決定することもできる。たとえば、3次元形状から顔の面や鼻の突起などを検出できた場合には、頭の中心点に対して顔や鼻がある方を前方とみなせばよい。
【0183】
ステップS127では、検出(または推定)した両肩をつなぐ線に垂直なベクトルつまり体の方向ベクトルVbを主成分分析によって計算する。具体的な計算方法は、先に説明したので省略する。なお、主成分分析に代えて、一方の肩の中心点および他方の肩の中心点をそれぞれ求め、これら2つの中心点をつなぐ線の法線ベクトルを計算しても、体の方向ベクトルVbを求めることができる。こうして計算した体の方向ベクトルVbの方向をステップS129で“体の方向”として(変数θbにセットして)、ステップS131に進む。
【0184】
ステップS131では、ステップS117で抽出した頭上層およびステップS129で計算した体の方向に基づいて頭後点(HRP:図18参照)を計算し、次のステップS133では、ステップS117で抽出した頭上層およびステップS131で計算した頭後点に基づいて頭前点(HFP:図18参照)を計算する。頭後点さらには頭前点の具体的な計算方法は、先に説明したので省略する。
【0185】
そして、ステップS131で計算した頭後点からステップS133で計算した頭前点へ向かう方向を求め、これを“頭の方向”とする(変数θhにセットする)。その後、ステップS113に戻って上記と同様の処理を繰り返す。
【0186】
これにより、当該対象の現時点での“位置”,“体の方向”および“頭の方向”が繰り返し(周期的に)計算され、毎回の計算結果は、現在時刻情報と関連付けられて、対象情報40に追記される。こうして、対象情報40には、当該対象の“位置”,“体の方向”および“頭の方向”を示す計測値(変数x,y,θbおよびθhの時間的な変化を示す情報)が記述される結果となる。
【0187】
図9に示したパーティクルフィルタによる状態推定処理では、次の点が変更される。ステップS23では、当該対象の状態(位置,移動方向,3次元形状および姿勢)に関する複数の仮説を生成する際に、位置として上記の“位置”が、姿勢として上記の“体の方向”および“頭の方向”が採用される。ステップS29では、3次元形状モデルに基づいて現在の計測値に対する各パーティクルの尤度を計算する際に、現在の位置および姿勢に関する計測値として、当該対象の“位置”,“体の方向”および“頭の方向”に関する計測値(変数x,y,θbおよびθhの値)が参照される。
【0188】
この実施例でのステップS29の尤度計算は、たとえば次のように行われる。パーティクルフィルタとしては、SIR(Sampling Importance Resampling)パーティクルフィルタを用いる。これにより、異なるLRF14の計測エリア間を遷移中にも連続追跡が行え、よりスムーズな推定結果が得られる。また、2Dレンジスキャナのような他のタイプのレーザレンジファインダ(測域センサ)を用いたり、異なる種類のセンサを組み合わせて用いたりすることも容易になる。ただし、場合によっては、SIR以外のパーティクルフィルタ、たとえばSIS(Importance Sampling)パーティクルフィルタなどを用いてもよい。
【0189】
パーティクルの状態は、位置(x,y),速度v,移動方向θ,体の方向θおよび頭の方向θによって与えられる(前出のθbおよびθhは、以下では下付添字を用いてθおよびθのように記される)。これらは、図4や図18に示すワールド座標系(X,Y,Z)で定義される変数であり、移動方向θ,体の方向θおよび頭の方向θは、所定方向(たとえばX軸方向)に対する角度として示される。フィルタ予測ステップで使われる動きモデルは、ゼロ平均ガウスノイズを付加することによるこれらの変数の更新を含む。パーティクルmに関する速度,移動方向,体の方向および頭の方向のノイズパラメータとして、σ=0.2[m/s2],σ=σ=σ=0.2[rad]を用いる。予測位置(x’,y’)は、予測された速度および移動方向に基づいて計算される。
【0190】
パーティクルmの重みを決定するために、5つの独立した尤度モデルの組み合わせとして、入力の尤度p(z|m)を次式(6)のように定義する(簡略な表記法を用いる)。
【0191】
p = pxybmhb …(6)
位置に関する尤度は、ガウス関数pxy(z|m)〜N(dxy,σxy)で定義される。ここでdxyは、計測および予測された頭部位置間のユークリッド距離である。分散パラメータσxyは、実験では0.2[m]に設定される。
【0192】
体の方向に関する尤度は、推定された体の方向p(z|m)〜N(d,σb1)を中心とするガウシアンで定義される。ここでd=|θ−θ’|は、抽出および予測された体の方向([−π,π]に規格化されている)の間の絶対差分であり、分散はσb1=0.5[rad]に設定される。同様に、頭の方向に関する尤度は、p(z|m)〜N(d,σ),d=|θ−θ’|およびσ=0.5[rad]で与えられる。
【0193】
上式(6)の最後の2項は、推定された値についての実用的な限定と選択を導くものであり、pbm(m)の項が整列した体および移動方向への僅かな傾向を与える。人は専ら前向きに歩くという事実を反映したものであり、これは次式(7)のように定義される。
【0194】
bm 〜wbm1N(dbm,σm)+wbm2 …(7)
ここでdbm =|θ’−θ’|は、予測された体の方向と移動方向との間の絶対差分であり、wbm1=0.2,wbm2=0.8,そしてσbm=0.5[rad]である。
【0195】
上式(6)のphb(m)項は、体の方向および頭の方向の間の差分に注目して、尤もらしいこと―大半の人は頭を前方から90度以上回すことができない、という仮定は順当に見える―の確認をまず試みる。加えて、「人は前方を向いて頭を回転させる傾向がある」(実験的証拠が“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”に示されている)、という仮定も採用する。これは、次式(8)のようにモデル化される。
【0196】
hb<πであればphb=1−dhb /(2π),そうでなければphb=0…(8)
ここでdhbは、体の方向と頭の方向との間の絶対差分(ラジアン単位)である。このモデルは、頭の方向推定における大きなエラーおよびアウトライヤ(飛び値)の影響を制限すると共に、推定が行えないときに頭の方向を体の方向に揃える。
【0197】
こうして、対象の姿勢を推定する際に、“体の方向”および“頭の方向”が明確に区別される。また、そのような推定結果を利用することで、個別行動推定処理(図11参照)やグループ推定処理(図12参照)において、より細かい推定を行ったり、推定の精度を高めたりすることができる。
【0198】
具体的には、図11の個別行動推定処理において、ステップS63で“体の方向”および“頭の方向”の各々を移動方向と比較し、ステップS65では“体の方向”および“頭の方向”の各々が移動方向とは異なる向きを向いたかを判別することで、頭および体が当該店舗の方を向いたのか、頭だけが店舗の方を向いたのかの区別が可能となる。たとえば、頭および体が当該店舗の方を向いた場合は関心の度合いが高く、頭だけが店舗の方を向いた場合は関心の度合いが低い、と仮定すれば、ステップS69では、当該対象が当該店舗を見た旨と共に、関心の度合いをも記述することができる。
【0199】
また、図12のグループ推定処理において、ステップS87では、“頭の方向”だけでなく“体の方向”についても比較を行い、ステップS89では、頭および体の両方が相対する向きを向く(つまり当該対象間で体ごと向かい合う)頻度について判別を行い、そしてステップS91では、体ごと向かい合う頻度の高い対象をグループ情報42に登録し、単に顔だけ向かい合った対象の登録を回避することで、より精度の高いグループ情報42が得られる。
【0200】
最後に、検証実験の結果を記しておく。まず、推定結果(追跡なし)について検証する。実験では、KinectTMセンサを支柱の約2.5mの高さ(つまり天井で制限される高さ)に取り付けた。また、同じ場所にViconモーションキャプチャシステムをインストールし、頭および肩にマーカを付けて、姿勢および頭部方向の実測値も得た。合計12人の被験者(男性9人,女性3人)が実験に参加した。被験者には、センサの前に立って頭を左右に回す動きを8通りの異なる胴体角度(45度のステップ)で繰り返し行ってもらった。同様のプロセスは、センサから4つの異なる距離:0.7m(センサ角33度);および2m,2.5m,3m(センサ角63度)で繰り返された。
【0201】
位置推定におけるエラーは、主として頭部レイヤの部分視界によるが、全ての実験で小さかった(RMSE(Root Mean Square Error)つまり二乗平均平方根誤差が平均7.5cm)。胴体角および頭部角については、全航跡でのRMSEの平均値はそれぞれ26.8度および36.8度であった。我々は、胴体および頭部角度の推定結果をより詳細に分析した。
【0202】
また、体および頭の方向の推定結果とモーショントラッカからの実測データとの比較例が、図28(A)および図28(B)に示される。図28(A)において、推定された体の方向は、モーショントラッカの出力と多くの部分でよく一致する。ただし、センサが人の側面だけを捉えた部分、つまり10秒および30秒の付近では、より大きな偏差が生じている。これは、前述のように、片方の肩が頭の影に隠れて見えないことに起因している。図28(B)に示す頭の方向推定でも、人の側面を見ているために大きなエラーが見られるが、部分的には、体の方向推定で生じたエラーの影響もある。
【0203】
次に、トラッキング結果を検証する。実験では、Viconトラッカと2個のKinectTMセンサを持つ構成を採用した。これらのセンサは、2.5mの高さに55度の計測角で設置され、共働して約2×3mのエリアをカバーした。このエリアは、モーショントラッカのトラッキングエリアと概ね一致する。被験者には、エリア内を自由に動いたり見回したりしてもらった。
【0204】
図29(A),図29(B),図30(A)および図30(B)は、一実行例について、変数x,y,θbおよびθhを、パーティクルフィルタによる追跡と、モーショントラッカによる計測との間で比較した結果を示している。これらの比較から、位置(x,y)および体の方向(θb)はトラッカ出力によく追従しており、センサ間の遷移(y=0mの付近)もスムーズであることが見て取れる。頭の方向(θh)のトラッキングエラーは予想よりも大きいが、これは推定エラーが大きかったことによる。一般に、トラッキング実行でのRMSE値は、推定時のそれに匹敵するか、それより幾分良好であった。
【0205】
以上のように、この実施例では、3Dレンジセンサの一種であるLRF14を用いて、人の位置ならびに体および頭の方向を推定する方法について説明した。その方法は、要するに、次のステップで構成される:1) 頭上層および肩の層の抽出―位置は頭上層の平均であり、体の方向は肩の線に垂直である;および2) 頭後点および頭前点の計算―頭の向きはこれら2点間をつなぐ線の方向である。
【0206】
この方法によれば、センサの計測結果が信頼できるエリアでは、安定した位置推定(誤差10cm以下)が行える。体および頭の方向についても同様である。我々の検証試験では、体の方向について、平均エラーは10度、両方の肩が見えていれば5度であり、頭の方向については、小さな計測角または被験者がセンサを向いている場合で10%、それ以外の場合で20%であった。
【0207】
加えて、パーティクルフィルタ(好ましくはSIRパーティクルフィルタ)を用いることで、複数センサによる連続的かつスムーズなトラッキングが行える。特定のタイプのレンジセンサに依存することがなく、広いエリアのトラッキングへの適用も容易なので、様々な環境で体および頭の方向について360度に渡る正確な情報が得られる。
【符号の説明】
【0208】
10 …計測装置
12 …コンピュータ
14 …レーザレンジファインダ(LRF)
52 …3次元形状モデルデータベース(DB)
M1 …肩から上の身体形状モデル
M2 …全身の骨格モデル
T1,T2 …対象
Scn …スキャン面
P …人の位置(頭上層の中心点)
HTP …頭頂点
HLY,SLY …頭上層,肩の層
SN,SLN1,SLN2 …両肩をつなぐ線
HRA,HFA …頭後領域,頭前領域
HRP,HFP …頭後点,頭前点
θb,θh …体の方向,頭の方向

【特許請求の範囲】
【請求項1】
そのスキャン面が水平面に対して傾斜した3次元距離計測センサで複数の対象を計測する計測装置であって、
前記複数の対象に関する3次元形状モデルが登録されたデータベース、
前記3次元距離計測センサを制御してスキャン面の水平面に対する傾斜角を変化させる変化手段、および
前記3次元距離計測センサからの計測データと前記データベースに登録された3次元形状モデルとの比較に基づいて前記複数の対象それぞれの3次元形状および姿勢を少なくとも推定する第1推定手段を備える、計測装置。
【請求項2】
前記第1推定手段は前記複数の対象それぞれに対応する複数の時系列フィルタリングを並列に実行することによって推定を行う、請求項1または2記載の計測装置。
【請求項3】
前記3次元形状モデルは肩から上の身体形状モデルを含み、
前記姿勢は頭部の向きを含む、請求項2記載の計測装置。
【請求項4】
前記3次元形状モデルはさらに全身の骨格モデルを含み、
前記姿勢は頭部以外の各部位の向きをさらに含む、請求項3記載の計測装置。
【請求項5】
前記第1推定手段は前記複数の対象それぞれの位置および移動方向をさらに推定し、
前記第1推定手段の推定結果に基づいて前記複数の対象それぞれの頭部が移動方向とは異なる方向を向いたと判断される場合に当該頭部の向いた先に位置する目標を特定する特定手段、および
前記複数の対象それぞれについて前記特定手段の特定結果に基づく個別行動情報を作成する第1作成手段をさらに備える、請求項3記載の計測装置。
【請求項6】
前記第1推定手段の推定結果を前記複数の対象間で比較して、その結果、位置が近接しかつ移動方向が共通であってしかも頭部が一定以上の頻度で相対する方向を向く対象群がある場合に、当該対象群をグループと推定する第2推定手段をさらに備える、請求項5記載の計測装置。
【請求項7】
前記第1推定手段の推定結果に基づいて前記複数の対象それぞれの属性を推定する第3推定手段、および
前記第2推定手段でグループと推定された対象群に関する前記第3推定の推定結果に基づいて、当該グループを複数のカテゴリのいずれかに分類する分類手段をさらに備える、請求項6記載の計測装置。
【請求項8】
前記第1作成手段で作成された個別行動情報を前記第2推定手段の推定に基づくグループ毎に解析してグループ行動情報を作成する第2作成手段をさらに備える、請求項7記載の計測装置。
【請求項9】
前記第2作成手段で作成されたグループ行動情報を前記分類手段の分類に基づくカテゴリ毎に解析してグループ行動パターン情報を作成する第3作成手段をさらに備える、請求項8記載の計測装置。
【請求項10】
前記複数の対象の少なくとも1つは人であり、
前記3次元距離計測センサからの計測データに基づいて前記人の頭および肩を検出する検出手段、および
前記検出手段によって検出された頭および肩の間の位置関係に基づいて前記人の体の方向および頭の方向を計算する計算手段をさらに備え、
前記第1推定手段は前記計算手段の計算結果に基づいて前記人の姿勢に関する推定を行う、請求項1記載の計測装置。
【請求項11】
前記3次元距離計測センサは前記人の頭頂点よりも高い位置に設置され、
前記検出手段は、
前記3次元距離計測センサからの計測データのうち前記人に対応する計測データを高さ方向に層化する層化手段、および
前記層化手段の層化結果から前記頭頂点を含む頭上層および当該頭上層から所定数層隔てて下にある肩の層を抽出する抽出手段を含み、
前記計算手段は、
前記抽出手段によって抽出された肩の層に基づいて両肩をつなぐ線に垂直な方向を計算する第1計算手段、
前記抽出手段によって抽出された頭上層のうち前記第1計算手段によって計算された方向に対して最後部にある頭後点を計算する第2計算手段、
前記抽出手段によって抽出された頭上層のうち前記第2計算手段によって計算された頭後点に対して最前部にある頭前点を計算する第3計算手段、および
前記第2計算手段によって計算された頭後点から前記第3計算手段によって計算された頭前点に向かう方向を計算する第4計算手段を含み、
前記第1推定手段は、前記第1計算手段によって計算された方向を前記体の方向として推定し、前記第4計算手段によって計算された方向を前記頭の方向として推定する、請求項10記載の計測装置。
【請求項12】
前記計算手段は、
前記抽出手段によって抽出された頭上層に基づいて頭の中心点を計算する第5計算手段、
前記肩の層が両肩を含むか一方の肩しか含まないかを判別する判別手段、および
前記判別手段によって前記肩の層が一方の肩しか含まないと判別された場合に、当該一方の肩と前記第5計算手段によって検出された頭の中心点とに基づいて、両肩は頭に対して左右対称な位置にありかつ頭は両肩をつなぐ線よりも前方にあるという条件を満たすように、他方の肩を計算する第6計算手段をさらに含み、
前記第1計算手段は、前記判別手段によって前記肩の層が両肩を含むと判別された場合には当該両肩をつなぐ線に垂直な方向を計算し、一方の肩しか含まないと判別された場合には当該一方の肩および前記第6計算手段によって計算された他方の肩をつなぐ線に垂直な方向を計算する、請求項11記載の計測装置。
【請求項13】
前記判別手段は前記肩の層を構成する点の前記頭の中心点に対する分布に基づいて判別を行う、請求項12記載の計測装置。
【請求項14】
前記第1推定手段は前記第5計算手段によって計算された頭の中心点の位置を前記人の位置として推定する、請求項12または13記載の計測装置。
【請求項15】
そのスキャン面が水平面に対して傾斜した3次元距離計測センサで複数の対象を計測する計測方法であって、
前記複数の対象に関する3次元形状モデルをデータベースに登録する登録ステップ、
前記3次元距離計測センサを制御してスキャン面の水平面に対する傾斜角を変化させる変化ステップ、および
前記3次元距離計測センサからの計測データと前記データベースに登録された3次元形状モデルとの比較に基づいて前記複数の対象それぞれの3次元形状および姿勢を少なくとも推定する第1推定ステップを備える、計測方法。
【請求項16】
そのスキャン面が水平面に対して傾斜した3次元距離計測センサで複数の対象を計測する計測装置のコンピュータを、
前記複数の対象に関する3次元形状モデルが登録されたデータベース、
前記3次元距離計測センサを制御してスキャン面の水平面に対する傾斜角を変化させる変化手段、および
前記3次元距離計測センサからの計測データと前記データベースに登録された3次元形状モデルとの比較に基づいて前記複数の対象それぞれの3次元形状および姿勢を少なくとも推定する第1推定手段として機能させる、計測プログラム。
【請求項17】
人の頭頂点よりも高い位置に設置された3次元距離計測センサで当該人の体の方向および頭の方向を計測する計測装置であって、
前記3次元距離計測センサからの計測データに基づいて前記人の頭および肩を検出する検出手段、および
前記検出手段によって検出された頭および肩の間の位置関係に基づいて前記人の体の方向および頭の方向を計算する計算手段を備える、計測装置。
【請求項18】
前記検出手段は、
前記3次元距離計測センサからの計測データのうち前記人に対応する計測データを高さ方向に層化する層化手段、および
前記層化手段の層化結果から前記頭頂点を含む頭上層および当該頭上層から所定数層隔てて下にある肩の層を抽出する抽出手段を含み、
前記計算手段は、
前記抽出手段によって抽出された肩の層に基づいて両肩をつなぐ線に垂直な方向を計算する第1計算手段、
前記抽出手段によって抽出された頭上層のうち前記第1計算手段によって計算された方向に対して最後部にある頭後点を計算する第2計算手段、
前記抽出手段によって抽出された頭上層のうち前記第2計算手段によって計算された頭後点に対して最前部にある頭前点を計算する第3計算手段、および
前記第2計算手段によって計算された頭後点から前記第3計算手段によって計算された頭前点に向かう方向を計算する第4計算手段を含む、請求項17記載の計測装置。
【請求項19】
前記計算手段は、
前記抽出手段によって抽出された頭上層に基づいて頭の中心点を計算する第5計算手段、
前記肩の層が両肩を含むか一方の肩しか含まないかを判別する判別手段、および
前記判別手段によって前記肩の層が一方の肩しか含まないと判別された場合に、当該一方の肩と前記第5計算手段によって検出された頭の中心点とに基づいて、両肩は頭に対して左右対称な位置にありかつ頭は両肩をつなぐ線よりも前方にあるという条件を満たすように、他方の肩を計算する第6計算手段をさらに含み、
前記第1計算手段は、前記判別手段によって前記肩の層が両肩を含むと判別された場合には当該両肩をつなぐ線に垂直な方向を計算し、一方の肩しか含まないと判別された場合には当該一方の肩および前記第6計算手段によって計算された他方の肩をつなぐ線に垂直な方向を計算する、請求項18記載の計測装置。
【請求項20】
前記判別手段は前記肩の層を構成する点群の前記頭の中心点に対する分布に基づいて判別を行う、請求項19記載の計測装置。
【請求項21】
前記第5計算手段の計算結果,前記第1計算手段の計算結果および前記第4計算手段の計算結果を入力として時系列フィルタリングを実行することによって前記人の位置,体の方向および頭の方向を推定する推定手段をさらに備える、請求項19または20記載の計測装置。
【請求項22】
人の頭頂点よりも高い位置に設置された3次元距離計測センサで当該人の体の方向および頭の方向を計測する計測方法であって、
前記3次元距離計測センサからの計測データに基づいて前記人の頭および肩を検出する検出ステップ、および
前記検出ステップによって検出された頭および肩の間の位置関係に基づいて前記人の体の方向および頭の方向を計算する計算ステップ含む、計測方法。
【請求項23】
人の頭頂点よりも高い位置に設置された3次元距離計測センサで当該人の体の方向および頭の方向を計測する計測装置コンピュータを、
前記3次元距離計測センサからの計測データに基づいて前記人の頭および肩を検出する検出手段、および
前記検出手段によって検出された頭および肩の間の位置関係に基づいて前記人の体の方向および頭の方向を計算する計算手段として機能させる、計測プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2012−215555(P2012−215555A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2012−33610(P2012−33610)
【出願日】平成24年2月20日(2012.2.20)
【国等の委託研究の成果に係る記載事項】(出願人による申告)JST戦略的創造研究推進事業/チーム型研究(CREST)、研究領域「共生社会に向けた人間調和型情報技術の構築」、研究課題名「ロボットによる街角の情報環境の構築」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】