身長推定装置、身長推定方法、及び身長推定プログラム
【課題】画像上で人物の足元位置が隠蔽されていても当該人物の身長を精度よく推定する。
【解決手段】撮像部130は、対象人物を含む画像を時系列で撮像する。頭部検出部141は、時系列で撮像された画像それぞれから対象人物の頭部を検出する。足元位置推定部143は、検出された頭部を用いて、時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する。実空間位置推定部145は、推定された足元位置を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する。身長推定部147は、仮定身長毎に、推定された実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を対象人物の身長に推定する。
【解決手段】撮像部130は、対象人物を含む画像を時系列で撮像する。頭部検出部141は、時系列で撮像された画像それぞれから対象人物の頭部を検出する。足元位置推定部143は、検出された頭部を用いて、時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する。実空間位置推定部145は、推定された足元位置を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する。身長推定部147は、仮定身長毎に、推定された実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を対象人物の身長に推定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、身長推定装置、身長推定方法、及び身長推定プログラムに関する。
【背景技術】
【0002】
従来から、画像上の人物の足元位置から当該人物の実空間上の位置を推定し、推定した実空間上の位置から当該人物の身長を推定し、推定した身長を用いて当該人物の画像上の隠蔽箇所を特定し、当該人物の実空間上の正確な位置を推定・追跡する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−237872号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような従来技術では、画像上の人物の足元位置が隠蔽されている場合、身長の推定精度が低下してしまう。
【0005】
本発明は、上記事情に鑑みてなされたものであり、画像上で人物の足元位置が隠蔽されていても当該人物の身長を精度よく推定する身長推定装置、身長推定方法、及び身長推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかる身長推定装置は、対象人物を含む画像を時系列で撮像する撮像部と、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出部と、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定部と、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定部と、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定部と、を備えることを特徴とする。
【0007】
また、本発明の別の態様にかかる身長推定方法は、撮像部が、対象人物を含む画像を時系列で撮像する撮像ステップと、頭部検出部が、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、足元位置推定部が、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、実空間位置推定部が、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、身長推定部が、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、を含むことを特徴とする。
【0008】
また、本発明の別の態様にかかる身長推定プログラムは、対象人物を含む画像を時系列で撮像する撮像ステップと、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、をコンピュータに実行させるためのものである。
【発明の効果】
【0009】
本発明によれば、画像上で人物の足元位置が隠蔽されていても当該人物の身長を精度よく推定することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、第1実施形態の身長推定装置の構成の一例を示すブロック図である。
【図2】図2は、第1実施形態の足元位置推定部による足元位置推定手法の一例の説明図である。
【図3】図3は、第1実施形態の記憶部に記憶される仮定身長毎の対象人物の実空間上の位置の一例の説明図である。
【図4】図4は、第1実施形態の身長推定部により作成された移動軌跡の一例を示す図である。
【図5】図5は、仮定身長と当該仮定身長から推定される対象人物の実空間上の位置との関係の一例を示す図である。
【図6】図6は、仮定身長と当該仮定身長から推定される対象人物の横移動との関係の一例を示す図である。
【図7】図7は、仮定身長と当該仮定身長から推定される対象人物の実空間上の移動距離との関係の一例を示す図である。
【図8】図8は、仮定身長と当該仮定身長から推定される対象人物の実空間上の移動距離との関係の一例を示す図である。
【図9】図9は、仮定身長と当該仮定身長から推定される対象人物の縦移動との関係の一例を示す図である。
【図10】図10は、第1実施形態の身長推定装置で行われる身長推定処理の手順の流れの一例を示すフローチャートである。
【図11】図11は、第1実施形態の身長推定装置の身長推定部で行われる処理の手順の流れの一例を示すフローチャートである。
【図12】図12は、第2実施形態の身長推定装置の構成の一例を示すブロック図である。
【図13】図13は、第2実施形態の身長推定装置で行われる追跡処理の手順の流れの一例を示すフローチャートである。
【図14】図14は、変形例1の身長推定装置で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【図15】図15は、変形例2の身長推定装置で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、本発明にかかる身長推定装置、身長推定方法、及び身長推定プログラムの実施形態を詳細に説明する。
【0012】
(第1実施形態)
まず、第1実施形態の身長推定装置の構成について説明する。
【0013】
図1は、第1実施形態の身長推定装置100の構成の一例を示すブロック図である。図1に示すように、身長推定装置100は、入力部110と、記憶部120と、撮像部130と、制御部140と、表示部150とを、備える。
【0014】
入力部110は、各種データを入力するものであり、例えば、キーボードやマウスなどの既存の入力装置により実現できる。入力部110は、例えば、複数の仮定身長、後述の撮像部130の撮像パラメータ、及び基準データなどを入力する。
【0015】
撮像パラメータは、本実施形態では、撮像部130の設置高、俯角、画角、及び画像上の消失点とするが、これに限定されるものではない。基準データは、本実施形態では、基準物の高さ、撮像部130から基準物の距離、基準物の画像上の位置とするが、これに限定されるものではない。基準データは、撮像部130の内部・外部パラメータなどであってもよい。
【0016】
記憶部120には、入力部110から入力された各種データや後述の制御部140により処理されたデータなどが記憶される。記憶部120は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及びRAM(Random Access Memory)などの磁気的、光学的、又は電気的に記憶可能な既存の各種記憶装置の少なくともいずれかにより実現できる。
【0017】
撮像部130は、対象人物を含む画像を時系列で撮像するものであり、例えば、デジタルカメラなどにより実現できる。
【0018】
制御部140は、身長推定装置100の各部を制御するものであり、例えば、CPU(Central Processing Unit)などにより実現できる。制御部140は、頭部検出部141と、足元位置推定部143と、実空間位置推定部145と、身長推定部147とを、備える。
【0019】
頭部検出部141は、撮像部130により時系列で撮像された画像それぞれから対象人物の頭部を検出する。頭部検出部141は、例えば、フィルタを用いて画像から対象人物の頭部を検出する。フィルタは、例えば、「移動体の上端を頭部上端とする」など頭部と思われる位置を検出できれば、どのようなものであってもよい。
【0020】
足元位置推定部143は、頭部検出部141により検出された頭部を用いて、撮像部130により時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する。具体的には、足元位置推定部143は、入力部110により入力され記憶部120に記憶されている複数の仮定身長及び撮像パラメータと頭部検出部141により検出された頭部とを用いて、撮像部130により時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する。
【0021】
図2は、第1実施形態の足元位置推定部143による足元位置推定手法の一例の説明図である。図2に示す例では、設置高Hcam、俯角α、垂直画角βv(図示省略)、及び消失点Pv(Xv,Yv)は、撮像パラメータに該当し、既知である。また、対象人物160の画像上の頭部座標Ph(Xh,Yh)は、頭部検出部141により検出される頭部に該当し、既知である。また、対象人物160の身長Hman、は、仮定身長に該当し、既知である。なお本実施形態では、仮定身長は、155cm〜185cmの範囲で5cm刻みに設定されているものとする。つまり、仮定身長は、155cm、160cm、165cm、170cm、175cm、180cm、及び185cmであるものとする。
【0022】
ここで、対象人物160の画像上の足元位置座標をPf(Xf,Yf)とすると、足元位置推定部143は、対象人物160の身長Hman(仮定身長)毎に、数式(1)を用いて、対象人物160の足元位置Yfを推定する。
【0023】
【数1】
【0024】
ここで、Aは、数式(2)により表され、Bは、数式(3)により表される。
【0025】
【数2】
【0026】
【数3】
【0027】
ここで、撮像部130の光軸と撮像部130から頭部に向かうベクトルとのなす角ρhは、数式(4)により表される。
【0028】
【数4】
【0029】
なお、imgHeightは、画像の高さ(縦方向の画素数)であり、既知であるものとする。
【0030】
実空間位置推定部145は、足元位置推定部143により推定された足元位置を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する。具体的には、実空間位置推定部145は、入力部110により入力され記憶部120に記憶されている撮像パラメータ及び基準データと足元位置推定部143により推定された足元位置とを用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する。
【0031】
実空間位置推定部145は、例えば、特開2008−286638号公報に記載されている手法を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定することができる。但し、特開2008−286638号公報に記載されている手法では、カメラを水平設置(俯角=0)とすることを条件としているため、俯角の影響を取り除く必要がある。
【0032】
具体的に説明すると、特開2008−286638号公報に記載されている手法では、遠近法を用いて、人物の見かけ上の大きさ(画像上の人物の高さに相当する画素数)から人物とカメラとの距離を求めている。しかし、画像上の人物の高さに相当する画素数は、俯角が0でない場合、人物とカメラとの距離だけではなく、俯角の影響も受けることになる。
【0033】
このため、本実施形態において特開2008−286638号公報に記載されている手法を用いる場合、実空間位置推定部145は、俯角の影響により変化してしまった画像上の人物の高さに相当する画素数を数式(5)で補正する。そして実空間位置推定部145は、補正後の画像上の人物の高さに相当する画素数に遠近法を適用することにより、俯角の影響を取り除いた人物の大きさを求め、実空間上の人物の位置を推定する。
【0034】
S’=S(cosα+sinαtan(α+ρh)) …(5)
【0035】
なお、S’[pixels]は、補正後の画像上の人物の高さに相当する画素数であり、S[pixels]は、補正前の画像上の人物の高さに相当する画素数である。
【0036】
そして実空間位置推定部145は、推定した各仮定身長の対象人物の実空間上の位置を時系列(フレーム)毎に記憶部120に記憶する。なお実空間位置推定部145は、仮定身長毎の対象人物の実空間上の位置を、直近Fフレーム分記憶部120に記憶しておく。つまり、実空間位置推定部145は、最古フレームにおける仮定身長毎の対象人物の実空間上の位置を記憶部120から削除した後に、最新フレームにおける仮定身長毎の対象人物の実空間上の位置を記憶部120に記憶する。なお本実施形態では、Fを10とするが、これに限定されるものではなく、適宜設定することができる。
【0037】
図3は、第1実施形態の記憶部120に記憶される仮定身長毎の対象人物の実空間上の位置の一例の説明図である。図3に示す例では、実空間位置推定部145は、フレームNo、日時、身長(複数の仮定身長)、及び位置(仮定身長に対応する実空間上の位置)を対応付けて記憶部120に記憶している。
【0038】
身長推定部147は、仮定身長毎に、推定された実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を対象人物の身長に推定する。
【0039】
具体的には、身長推定部147は、仮定身長それぞれに対し、推定された実空間上の時系列の位置毎に当該位置の次の位置へ対象人物が移動可能か否かを判定する。本実施形態では、身長推定部147は、時系列の間隔、即ち、フレーム間で対象人物が移動可能な範囲を予め定めており、推定された実空間上の時系列の位置毎に当該位置と次の位置との距離が予め定めた移動可能な範囲に収まるか否かで対象人物が移動可能か否かを判定する。ここで、人間の平均歩行速度をV、フレーム間をΔtとすると、移動可能な範囲Rは、R=V×Δtとなる。そして身長推定部147は、移動可能である場合に当該位置と当該次の位置とを結ぶ移動軌跡を作成し、所定数以上の移動軌跡が作成された仮定身長を対象人物の身長に推定する。なお身長推定部147は、対象人物の身長の推定に使用した位置などの情報を記憶部120から削除する。
【0040】
図4は、第1実施形態の身長推定部147により作成された移動軌跡の一例を示す図である。なお図4に示す例では、仮定身長が155cm、165cm、175cm、及び185cmの場合の移動軌跡を示している。身長推定部147は、図4に示す例の場合、仮定身長を175cmとした場合に最も多くの移動軌跡が作成されているため、対象人物の身長を175cmに推定する。
【0041】
ここで、仮定身長と当該仮定身長から推定される実空間上の位置及び移動距離との関係について説明する。
【0042】
図5は、仮定身長と当該仮定身長から推定される対象人物の実空間上の位置との関係の一例を示す図である。なお、対象人物160〜162は同一人物であるが、説明の関係上異なる符号を付している。
【0043】
仮定身長が対象人物160の実際の身長よりも大きい場合、対象人物160の実空間上の位置は、実空間位置推定部145により実際の位置よりも手前側に推定される。つまり、図5に示す例の場合、仮定身長が対象人物160の実際の身長よりも大きいと、実空間位置推定部145は、対象人物160を対象人物161として推定する。
【0044】
同様に、仮定身長が対象人物160の実際の身長よりも小さい場合、対象人物160の実空間上の位置は、実空間位置推定部145により実際の位置よりも奥側に推定される。つまり、図5に示す例の場合、仮定身長が対象人物160の実際の身長よりも小さいと、実空間位置推定部145は、対象人物160を対象人物162として推定する。
【0045】
図6は、仮定身長と当該仮定身長から推定される対象人物の横移動との関係の一例を示す図である。
【0046】
図6に示すように、仮定身長が対象人物160の実際の身長よりも大きい場合、即ち、対象人物160が対象人物161として推定された場合、対象人物161が撮像部130を横切る方向、即ち、横方向に移動すると、対象人物161のフレーム毎の位置の横方向の間隔は、対象人物160のフレーム毎の位置の横方向の間隔よりも小さくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まれば、対象人物161の隣接する各位置の距離も移動可能な範囲に収まるので、身長推定部147は、対象人物161の隣接する各位置を移動軌跡で結ぶことができる。
【0047】
一方、仮定身長が対象人物160の実際の身長よりも小さい場合、即ち、対象人物160が対象人物162として推定された場合、対象人物162が撮像部130を横切る方向、即ち、横方向に移動すると、対象人物162のフレーム毎の位置の横方向の間隔は、対象人物160のフレーム毎の位置の横方向の間隔よりも大きくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まっても、対象人物162の隣接する各位置の距離が移動可能な範囲に収まるとは限らず、この場合、身長推定部147は、対象人物162の隣接する各位置を移動軌跡で結ぶことができない。
【0048】
つまり、仮定身長が対象人物160の実際の身長よりも小さくなればなるほど、身長推定部147により作成される移動軌跡は人間らしい移動軌跡とはならないことになる。
【0049】
図7及び図8は、仮定身長と当該仮定身長から推定される対象人物の実空間上の移動距離との関係の一例を示す図である。
【0050】
図7に示すように、仮定身長が対象人物160の実際の身長に一致する場合に、対象人物160の頭部が画像上の縦方向(実空間上の奥行き方向)にp[pixels]移動したとする。この場合、対象人物160の実空間上の位置は、実空間位置推定部145によりx1[m]奥側の位置に推定される。
【0051】
一方、図8に示すように、仮定身長が対象人物160の実際の身長よりも大きい場合、即ち、対象人物160が対象人物161として推定された場合に、対象人物161の頭部が画像上の縦方向(実空間上の奥行き方向)にp[pixels]移動したとする。この場合、対象人物161の実空間上の位置は、実空間位置推定部145によりx2(x2>x1)[m]奥側の位置に推定される。
【0052】
図9は、仮定身長と当該仮定身長から推定される対象人物の縦移動との関係の一例を示す図である。
【0053】
図9に示すように、仮定身長が対象人物160の実際の身長よりも小さい場合、即ち、対象人物160が対象人物162として推定された場合、対象人物162が撮像部130に対して前進・後退する方向、即ち、縦方向に移動すると、対象人物162のフレーム毎の位置の縦方向の間隔は、対象人物160のフレーム毎の位置の縦方向の間隔よりも小さくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まれば、対象人物162の隣接する各位置の距離も移動可能な範囲に収まるので、身長推定部147は、対象人物162の隣接する各位置を移動軌跡で結ぶことができる。
【0054】
一方、仮定身長が対象人物160の実際の身長よりも大きい場合、即ち、対象人物160が対象人物161として推定された場合、対象人物161が撮像部130に対して前進・後退する方向、即ち、縦方向に移動すると、対象人物161のフレーム毎の位置の縦方向の間隔は、対象人物160のフレーム毎の位置の縦方向の間隔よりも大きくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まっても、対象人物161の隣接する各位置の距離が移動可能な範囲に収まるとは限らず、この場合、身長推定部147は、対象人物161の隣接する各位置を移動軌跡で結ぶことができない。
【0055】
つまり、仮定身長が対象人物160の実際の身長よりも大きくなればなるほど、身長推定部147により作成される移動軌跡は人間らしい移動軌跡とはならないことになる。
【0056】
以上より、仮定身長が対象人物160の実際の身長に近くなればなるほど、身長推定部147により作成される移動軌跡は人間らしい移動軌跡となる。
【0057】
また、身長推定部147は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長、及び当該複数の仮定身長それぞれの移動軌跡数を用いて、対象人物の身長を推定する。上述したように、仮定身長が対象人物の実際の身長に近いほど人間らしい移動軌跡が作成されるため、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、これらの仮定身長は隣接している可能性が高い。このため本実施形態では、例えば、所定数以上の移動軌跡が作成された仮定身長が2つ存在する場合、身長推定部147は、数式(6)を用いて、対象人物の身長を推定する。
【0058】
【数5】
【0059】
ここで、Hは、対象人物の推定身長であり、Ha、Hbは、それぞれ隣接する仮定身長であり、Naは、Haの移動軌跡数であり、Nbは、Hbの移動軌跡数である。
【0060】
本実施形態では、身長推定部147は、移動軌跡が作成された数を基準として最も人間らしい移動軌跡を判断しているが、これに限定されず、連続して作成された移動軌跡の数や、作成された移動軌跡の形などを基準として最も人間らしい移動軌跡を判断するようにしてもよい。
【0061】
表示部150は、各種情報を表示するものであり、例えば、ディスプレイなどにより実現できる。表示部150は、身長推定部147により推定された身長を表示する。なお表示部150は、身長推定部147により推定された身長とともに作成された軌跡を表示するようにしてもよい。更に表示部150は、仮定身長毎に身長推定部147により作成された軌跡を表示するようにしてもよい。
【0062】
次に、第1実施形態の身長推定装置の動作について説明する。
【0063】
図10は、第1実施形態の身長推定装置100で行われる身長推定処理の手順の流れの一例を示すフローチャートである。
【0064】
まず、入力部110は、複数の仮定身長、撮像パラメータ、及び基準データを入力する(ステップS100)。
【0065】
続いて、撮像部130は、対象人物を含む画像を時系列で撮像する(ステップS102)。
【0066】
続いて、頭部検出部141は、撮像部130により時系列で撮像された画像それぞれから対象人物の頭部を検出する(ステップS104)。撮像された画像それぞれから対象人物の頭部を検出できなかった場合(ステップS104でNo)、再度、頭部検出を行う(ステップS104)。
【0067】
撮像された画像それぞれから対象人物の頭部を検出できた場合(ステップS104でYes)、足元位置推定部143は、頭部検出部141により検出された頭部を用いて、撮像部130により時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する(ステップS106)。
【0068】
続いて、実空間位置推定部145は、足元位置推定部143により推定された足元位置を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する(ステップS108)。そして実空間位置推定部145は、記憶部120に時系列で仮定身長毎に実空間上の位置を記憶する(ステップS110)。
【0069】
続いて、身長推定部147は、仮定身長毎に、実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、基準を超える移動軌跡が作成されたか否かを確認する(ステップS112)。基準を超える移動軌跡が作成された場合(ステップS112でYes)、当該移動軌跡を最も人間らしい移動軌跡とし、当該移動軌跡が作成された仮定身長を対象人物の身長に推定する(ステップS114)。一方、基準を超える移動軌跡が作成されなかった場合(ステップS112でNo)、ステップS104へ戻る。
【0070】
図11は、第1実施形態の身長推定装置100の身長推定部147で行われる処理の手順の流れの一例を示すフローチャートである。
【0071】
身長推定部147は、全ての仮定身長を確認すると処理を終了する(ステップS120でYes)。身長推定部147は、全ての仮定身長を確認していない場合(ステップS120でNo)、未確認の仮定身長を取得し、仮定身長Haとする(ステップS122)。
【0072】
続いて、身長推定部147は、仮定身長Haについて、直近Fフレーム中の隣接フレームを全て処理していない場合(ステップS124でNo)、未処理の隣接フレームを取得し、フレームFi、Fjとする(ステップS126)。なお、仮定身長Haについて、直近Fフレーム中の隣接フレームを全て処理している場合(ステップS124でYes)、ステップS120へ戻る。
【0073】
続いて、身長推定部147は、フレームFi、Fjの時間Δtを計算し、対象人物がフレームFi、Fj間で移動可能な範囲Rを計算する(ステップS128)。
【0074】
続いて、身長推定部147は、フレームFi、Fjで推定された実空間上の位置の距離が範囲R以下であるか否かを確認する(ステップS130)。
【0075】
フレームFi、Fjで推定された実空間上の位置の距離が範囲R以下である場合(ステップS130でYes)、身長推定部147は、フレームFi、Fjで推定された実空間上の位置を紐付け、両位置を結ぶ移動軌跡を作成する(ステップS132)。なお、フレームFi、Fjで推定された実空間上の位置の距離が範囲R以下でない場合(ステップS130でNo)、ステップS124へ戻る。
【0076】
続いて、身長推定部147は、N(0<N<F)フレーム以上連結した場合、即ち、N以上の移動軌跡を作成した場合(ステップS134でYes)、仮定身長Haを対象人物の身長に推定し、作成した移動軌跡とともに出力する(ステップS136)。そして、ステップS124へ戻る。なお、N(0<N<F)フレーム以上連結しなかった場合も(ステップS134でNo)、ステップS124へ戻る。
【0077】
以上のように第1実施形態によれば、人物の頭部さえ撮像されていれば、当該人物の足元を推定することにより、身長を推定できるので、画像上で人物の足元位置が隠蔽されていても当該人物の身長を推定することができる。特に、足元は、影や鏡面反射など誤検知の要因となり易いので、足元を検知せずに身長を推定することにより、当該人物の身長を精度よく推定することができる。
【0078】
(第2実施形態)
第2実施形態では、推定した身長を用いて対象人物を追跡する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0079】
図12は、第2実施形態の身長推定装置200の構成の一例を示すブロック図である。第2実施形態の身長推定装置200では、足元位置推定部243及び実空間位置推定部245が第1実施形態と相違し、追跡部249を更に備える。
【0080】
足元位置推定部243は、身長推定部147により対象人物の身長が推定された後に撮像部130により撮像された画像から、対象人物の足元位置を身長推定部147により推定された身長である推定身長を用いて推定する。
【0081】
実空間位置推定部245は、足元位置推定部243により推定された足元位置を用いて、推定身長の対象人物の実空間上の位置を推定する。
【0082】
追跡部249は、実空間位置推定部245により推定された推定身長の対象人物の実空間上の位置を追跡する。
【0083】
図13は、第2実施形態の身長推定装置200で行われる追跡処理の手順の流れの一例を示すフローチャートである。
【0084】
まず、撮像部130は、対象人物を含む画像を撮像する(ステップS200)。
【0085】
続いて、頭部検出部141は、撮像部130により撮像された画像から対象人物の頭部を検出する(ステップS202)。撮像された画像から対象人物の頭部を検出できなかった場合(ステップS202でNo)、ステップS200へ戻る。
【0086】
撮像された画像から対象人物の頭部を検出できた場合(ステップS202でYes)、足元位置推定部243は、頭部検出部141により検出された頭部及び身長推定部147により推定された推定身長を用いて、撮像部130により撮像された画像から対象人物の足元位置を推定する(ステップS204)。
【0087】
続いて、実空間位置推定部245は、足元位置推定部243により推定された足元位置を用いて、推定身長の対象人物の実空間上の位置を推定する(ステップS206)。
【0088】
続いて、追跡部249は、新たな追跡情報を作成した場合には(ステップS208でYes)、追跡情報を更新する(ステップS210)。これにより、追跡部249は、推定身長の対象人物の実空間上の位置を追跡する。そして、ステップS200へ戻る。一方、新たな追跡情報が作成されなかった場合も(ステップS208でNo)、ステップS200へ戻る。
【0089】
ここで、追跡情報の更新について説明する。
【0090】
まず、追跡部249は、実空間位置推定部245により推定身長の対象人物の実空間上の位置が推定されると、距離閾値Dtに初期値Dt0を設定する。なお、初期値Dt0は100[m]など十分に大きな値が好ましい。
【0091】
続いて、追跡部249は、記憶部120に記憶されている追跡情報から、推定身長の対象人物の前回の実空間上の位置Piとその取得時刻Tiを取得する。そして、追跡部249は、位置PiとステップS206で実空間位置推定部245により推定された推定身長の対象人物の最新の実空間上の位置Pとを用いて、両位置の距離Diを計算する(Di=P−Pi)。更に、追跡部249は、人間の平均歩行速度V、時刻Ti、及び対象人物の最新の実空間上の位置Pの取得時刻Tを用いて、推定身長の対象人物の時刻T−時刻Ti間に移動可能な範囲Rを計算する(R=V×(T−Ti))。
【0092】
続いて、追跡部249は、距離Diが範囲R以下かつ距離閾値Dt以下である場合、位置P及び時刻Tを新たな追跡情報として記憶部120に記憶し、追跡情報を更新する。この際、追跡部249は、位置Piと位置Pとを紐付け、両位置を結ぶ移動軌跡を作成する。また追跡部249は、距離閾値Dtに距離Diを設定し、次回の追跡情報の更新時に用いる。
【0093】
但し、上述の手法で追跡情報を更新すると、光や影などによるノイズによって、推定された実空間上の位置に誤差が生じ、追跡が失敗してしまうおそれがある。このため、移動速度の移動平均を用いて追跡情報を更新するようにしてもよい。これにより、ノイズによって突発的に発生する誤差を抑制することができる。
【0094】
この場合、まず、追跡部249は、実空間位置推定部245により推定身長の対象人物の実空間上の位置が推定されると、分散閾値Vtに初期値Vt0を設定する。なお、初期値Vt0は100[m/s]など十分に大きな値が好ましい。
【0095】
続いて、追跡部249は、記憶部120に記憶されている追跡情報から、推定身長の対象人物の直近nフレーム分の実空間上の位置Pi_1〜Pi_nとその取得時刻Ti_1〜Ti−nを取得する。なお、時系列は、i_n、i_n−1、…i_1の順番であるものとする。
【0096】
続いて、追跡部249は、隣接する位置間の移動速度Vi_1〜Vi_nを計算する。例えば、Vi_1は、Vi_1=D(P,Pi_1)/(T−Ti_1)で表され、Vi_nは、Vi_n=D(Pi_n−1,Pi_n)/(Ti_n−1−Ti_n)で表される。なお、D(x,y)は、位置xと位置y間の距離を求める関数である。
【0097】
続いて、追跡部249は、移動速度Vi_1〜Vi_nから移動平均Miと分散Viとを計算する。
【0098】
続いて、追跡部249は、移動平均Miが人らしい移動速度の上限値Th以下かつ分散Viが分散閾値Vt以下である場合、位置P及び時刻Tを新たな追跡情報として記憶部120に記憶し、追跡情報を更新する。この際、追跡部249は、位置Pi_1と位置Pとを紐付け、両位置を結ぶ移動軌跡を作成する。また追跡部249は、分散閾値Vtに分散Viを設定し、次回の追跡情報の更新時に用いる。
【0099】
ここで、位置を紐付けるために、分散Viと分散閾値Vtとを比較しているのは、人は、急に止まれないため、移動速度の分散が小さい移動の方が人らしい移動と判断できるためである。
【0100】
以上のように、第2実施形態によれば、影や鏡面反射など誤検知の要因となり易い足元を考慮せずに人物を追跡することができるため、精度よく追跡することができる。
【0101】
(変形例)
なお、本発明は、上記実施形態に限定されるものではなく、種々の変形が可能である。
【0102】
(変形例1)
例えば、対象人物を追跡中に対象人物がしゃがんでしまうと、対象人物の頭部の高さが変化してしまうため、対象人物の実空間上の正しい位置を推定できなくなってしまう。このため第2実施形態において、対象人物の追跡時にしゃがみ込み判定を行うようにしてもよい。
【0103】
対象人物がしゃがみ込む場合、実空間上の同一位置にいる対象人物の身長が徐々に低くなるという現象が生じる。このため、追跡部249は、この現象を認識することで、対象人物がしゃがみ込んだのか、身長が低い別の人物が現れたのかを判定すればよい。
【0104】
図14は、変形例1の身長推定装置200で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【0105】
まず、撮像部130は、対象人物を含む画像を撮像する(ステップS300)。
【0106】
続いて、追跡部249は、対象人物の実空間上の位置を追跡する(ステップS302)。そして、追跡部249が新規の人物を検知した場合(ステップS304でYes)、実空間位置推定部245は、新規の人物の実空間上の位置Pc(Xc,Yc)および身長Hcを推定する(ステップS306)。
【0107】
続いて、追跡部249は、対象人物の追跡情報から、対象人物の身長Hiと位置Pi(Xi,Yi)を参照し(ステップS308)、位置Pcと位置Piとが一定範囲内に存在するか否かを確認する(ステップS310)。
【0108】
そして、追跡部249は、位置Pcと位置Piとが一定範囲内に存在する場合(ステップS310でYes)、しゃがみ込み判定用の情報として、追跡番号i、位置Pcの取得時刻Tc、身長Hcを記憶部120に記憶し(ステップS312)、処理を終了する。
【0109】
一方、位置Pcと位置Piとが一定範囲内に存在せず(ステップS310でNo)、しゃがみ込み判定用の情報が記憶部120に記憶されており(ステップS314でYes)、しゃがみ込み判定用の情報が同一の追跡番号で所定数ある場合(ステップS316でYes)、追跡部249は、時刻Tcの時間経過に伴い、身長HcがΔHの範囲内で低くなっているか否か判定する(ステップS318)。そして追跡部249は、身長HcがΔHの範囲内で低くなっている場合(ステップS320でYes)、しゃがみ込みありと判定する(ステップS322)。
【0110】
なお、ステップS304で新規の人物を検知しなかった場合(ステップS304でNo)、ステップS314でしゃがみ込み判定用の情報が記憶部120に記憶されていない場合(ステップS314でNo)、ステップS316でしゃがみ込み判定用の情報が同一の追跡番号で所定数ない場合(ステップS316でNo)、及びステップS320で身長HcがΔHの範囲内で低くなっていない場合(ステップS320でNo)、追跡部249は、しゃがみ込みなしと判定する(ステップS324)。
【0111】
(変形例2)
上記変形例1のしゃがみ込み判定手法は、撮像部130と対象人物の足元との間に遮蔽物がなく、画像上の足元位置から実空間上の人物位置を推定できることが前提である。変形例2では、このような前提を用いることなく、対象人物のしゃがみ込み判定を行う例について説明する。
【0112】
図15は、変形例2の身長推定装置200で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【0113】
まず、撮像部130は、対象人物を含む画像を撮像する(ステップS400)。
【0114】
続いて、追跡部249は、対象人物の実空間上の位置を追跡する(ステップS402)。そして、追跡部249が新規の人物を検知し(ステップS404でYes)、所定時間内に対象人物が消失した追跡情報が記憶部120に記憶されている場合(ステップS406でYes)、追跡部249は、追跡情報から消失した人物(対象人物)の身長Haと移動軌跡Qa{Pa1,…,PaN}を参照するとともに(ステップS408)、新規の人物の身長Hbと移動軌跡Qb{Pb1,…,PbM}を参照する(ステップS410)。
【0115】
続いて、追跡部249は、身長Haが身長Hbよりも大きい場合(ステップS412でYes)、移動軌跡Qaと移動軌跡Qbとから連続性を判定し(ステップS414)、連続性がある場合(ステップS416でYes)、しゃがみ込みありと判定する(ステップS418)。
【0116】
ここで、連続性の判断については、前述した移動範囲や移動速度による判定方法を用いればよい。例えば、移動範囲を用いて判定する場合、追跡部249は、移動軌跡Qaのうち消失する直前の位置Pa1と、移動軌跡Qbのうち最初に検出された位置PbMとが、人らしい移動範囲内に入るか否かを判定すればよい。また例えば、移動速度を用いて判定する場合、追跡部249は、消失する直前のK個の位置Qa’{Pa1,…,PaK}(K<N)と検出された直後の位置Qb’{PM−L+1,…,PbM}(L<M)から連続性を判定すればよい。
【0117】
一方、ステップS404で新規の人物を検知しなかった場合(ステップS404でNo)、ステップS406で所定時間内に対象人物が消失した追跡情報が記憶部120に記憶されていない場合(ステップS406でNo)、ステップS412で身長Haが身長Hbよりも小さい場合(ステップS412でNo)、及びステップS416で連続性がない場合(ステップS416でNo)、追跡部249は、しゃがみ込みなしと判定する(ステップS420)。
【0118】
(変形例3)
上記実施形態では、身長推定部147は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長、及び当該複数の仮定身長それぞれの移動軌跡数を用いて、対象人物の身長を推定したが、当該複数の仮定身長それぞれの移動速度の分散を用いて、対象人物の身長を推定するようにしてもよい。
【0119】
この場合、身長推定部147は、仮定身長Haから算出した移動軌跡Qa{Pa1(Xa1,Ya1),…,Pai,…,PaN}を求める。ここで、位置Pai(i=1,…,N)が推定されたときの時刻をTaiとし、i=1のとき、最新のデータが入力されるものとする。そして身長推定部147は、求めた移動軌跡Qaから移動速度の分散値Vaを求める(数式(7)参照)。ここで、数式(7)の変数は、数式(9)及び数式(11)に示すとおりである。
【0120】
同様に、身長推定部147は、仮定身長Hbから算出した移動軌跡Qb{Pb1(Xb1,Yb1),…,Pbi,…,PbM}を求める。ここで、位置Pbi(i=1,…,M)が推定されたときの時刻をTbiとし、i=1のとき、最新のデータが入力されるものとする。そして身長推定部147は、求めた移動軌跡Qbから移動速度の分散値Vbを求める(数式(8)参照)。ここで、数式(8)の変数は、数式(10)及び数式(12)に示すとおりである。
【0121】
【数6】
【0122】
【数7】
【0123】
【数8】
【0124】
【数9】
【0125】
【数10】
【0126】
【数11】
【0127】
そして、身長推定部147は、数式(13)を用いて、対象人物の身長を推定する。
【0128】
【数12】
【0129】
(変形例4)
上記第2実施形態では、推定身長を用いて対象人物を追跡したが、追跡中に対象人物の足元を確実に撮像できた場合には、当該足元から推定した身長に置き換えて対象人物を追跡するようにしてもよい。
【0130】
(変形例5)
上記各実施形態及び各変形例の身長推定装置を、例えば、強盗の身長推定及び追跡に使用する場合、推定身長や移動軌跡に加え、他の特徴(人相や服装)を出力するようにしてもよい。また、上記各実施形態及び各変形例の身長推定装置は、棚などで人物の足元が見えないことが多い小売店舗や人ごみなどの場所において用いると好適であり、マーケティングや人流解析などへの応用が期待できる。
【0131】
(ハードウェア構成)
上記各実施形態及び各変形例の身長推定装置は、CPU(Central Processing Unit)などの制御装置と、ROMやRAMなどの記憶装置と、HDDやSSDなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信I/Fなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0132】
上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【0133】
また、上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムを、ROM等に予め組み込んで提供するようにしてもよい。
【0134】
上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【符号の説明】
【0135】
100、200 身長推定装置
110 入力部
120 記憶部
130 撮像部
140 制御部
141 頭部検出部
143、243 足元位置推定部
145、245 実空間位置推定部
147 身長推定部
249 追跡部
150 表示部
【技術分野】
【0001】
本発明は、身長推定装置、身長推定方法、及び身長推定プログラムに関する。
【背景技術】
【0002】
従来から、画像上の人物の足元位置から当該人物の実空間上の位置を推定し、推定した実空間上の位置から当該人物の身長を推定し、推定した身長を用いて当該人物の画像上の隠蔽箇所を特定し、当該人物の実空間上の正確な位置を推定・追跡する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−237872号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような従来技術では、画像上の人物の足元位置が隠蔽されている場合、身長の推定精度が低下してしまう。
【0005】
本発明は、上記事情に鑑みてなされたものであり、画像上で人物の足元位置が隠蔽されていても当該人物の身長を精度よく推定する身長推定装置、身長推定方法、及び身長推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかる身長推定装置は、対象人物を含む画像を時系列で撮像する撮像部と、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出部と、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定部と、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定部と、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定部と、を備えることを特徴とする。
【0007】
また、本発明の別の態様にかかる身長推定方法は、撮像部が、対象人物を含む画像を時系列で撮像する撮像ステップと、頭部検出部が、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、足元位置推定部が、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、実空間位置推定部が、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、身長推定部が、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、を含むことを特徴とする。
【0008】
また、本発明の別の態様にかかる身長推定プログラムは、対象人物を含む画像を時系列で撮像する撮像ステップと、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、をコンピュータに実行させるためのものである。
【発明の効果】
【0009】
本発明によれば、画像上で人物の足元位置が隠蔽されていても当該人物の身長を精度よく推定することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、第1実施形態の身長推定装置の構成の一例を示すブロック図である。
【図2】図2は、第1実施形態の足元位置推定部による足元位置推定手法の一例の説明図である。
【図3】図3は、第1実施形態の記憶部に記憶される仮定身長毎の対象人物の実空間上の位置の一例の説明図である。
【図4】図4は、第1実施形態の身長推定部により作成された移動軌跡の一例を示す図である。
【図5】図5は、仮定身長と当該仮定身長から推定される対象人物の実空間上の位置との関係の一例を示す図である。
【図6】図6は、仮定身長と当該仮定身長から推定される対象人物の横移動との関係の一例を示す図である。
【図7】図7は、仮定身長と当該仮定身長から推定される対象人物の実空間上の移動距離との関係の一例を示す図である。
【図8】図8は、仮定身長と当該仮定身長から推定される対象人物の実空間上の移動距離との関係の一例を示す図である。
【図9】図9は、仮定身長と当該仮定身長から推定される対象人物の縦移動との関係の一例を示す図である。
【図10】図10は、第1実施形態の身長推定装置で行われる身長推定処理の手順の流れの一例を示すフローチャートである。
【図11】図11は、第1実施形態の身長推定装置の身長推定部で行われる処理の手順の流れの一例を示すフローチャートである。
【図12】図12は、第2実施形態の身長推定装置の構成の一例を示すブロック図である。
【図13】図13は、第2実施形態の身長推定装置で行われる追跡処理の手順の流れの一例を示すフローチャートである。
【図14】図14は、変形例1の身長推定装置で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【図15】図15は、変形例2の身長推定装置で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、本発明にかかる身長推定装置、身長推定方法、及び身長推定プログラムの実施形態を詳細に説明する。
【0012】
(第1実施形態)
まず、第1実施形態の身長推定装置の構成について説明する。
【0013】
図1は、第1実施形態の身長推定装置100の構成の一例を示すブロック図である。図1に示すように、身長推定装置100は、入力部110と、記憶部120と、撮像部130と、制御部140と、表示部150とを、備える。
【0014】
入力部110は、各種データを入力するものであり、例えば、キーボードやマウスなどの既存の入力装置により実現できる。入力部110は、例えば、複数の仮定身長、後述の撮像部130の撮像パラメータ、及び基準データなどを入力する。
【0015】
撮像パラメータは、本実施形態では、撮像部130の設置高、俯角、画角、及び画像上の消失点とするが、これに限定されるものではない。基準データは、本実施形態では、基準物の高さ、撮像部130から基準物の距離、基準物の画像上の位置とするが、これに限定されるものではない。基準データは、撮像部130の内部・外部パラメータなどであってもよい。
【0016】
記憶部120には、入力部110から入力された各種データや後述の制御部140により処理されたデータなどが記憶される。記憶部120は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及びRAM(Random Access Memory)などの磁気的、光学的、又は電気的に記憶可能な既存の各種記憶装置の少なくともいずれかにより実現できる。
【0017】
撮像部130は、対象人物を含む画像を時系列で撮像するものであり、例えば、デジタルカメラなどにより実現できる。
【0018】
制御部140は、身長推定装置100の各部を制御するものであり、例えば、CPU(Central Processing Unit)などにより実現できる。制御部140は、頭部検出部141と、足元位置推定部143と、実空間位置推定部145と、身長推定部147とを、備える。
【0019】
頭部検出部141は、撮像部130により時系列で撮像された画像それぞれから対象人物の頭部を検出する。頭部検出部141は、例えば、フィルタを用いて画像から対象人物の頭部を検出する。フィルタは、例えば、「移動体の上端を頭部上端とする」など頭部と思われる位置を検出できれば、どのようなものであってもよい。
【0020】
足元位置推定部143は、頭部検出部141により検出された頭部を用いて、撮像部130により時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する。具体的には、足元位置推定部143は、入力部110により入力され記憶部120に記憶されている複数の仮定身長及び撮像パラメータと頭部検出部141により検出された頭部とを用いて、撮像部130により時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する。
【0021】
図2は、第1実施形態の足元位置推定部143による足元位置推定手法の一例の説明図である。図2に示す例では、設置高Hcam、俯角α、垂直画角βv(図示省略)、及び消失点Pv(Xv,Yv)は、撮像パラメータに該当し、既知である。また、対象人物160の画像上の頭部座標Ph(Xh,Yh)は、頭部検出部141により検出される頭部に該当し、既知である。また、対象人物160の身長Hman、は、仮定身長に該当し、既知である。なお本実施形態では、仮定身長は、155cm〜185cmの範囲で5cm刻みに設定されているものとする。つまり、仮定身長は、155cm、160cm、165cm、170cm、175cm、180cm、及び185cmであるものとする。
【0022】
ここで、対象人物160の画像上の足元位置座標をPf(Xf,Yf)とすると、足元位置推定部143は、対象人物160の身長Hman(仮定身長)毎に、数式(1)を用いて、対象人物160の足元位置Yfを推定する。
【0023】
【数1】
【0024】
ここで、Aは、数式(2)により表され、Bは、数式(3)により表される。
【0025】
【数2】
【0026】
【数3】
【0027】
ここで、撮像部130の光軸と撮像部130から頭部に向かうベクトルとのなす角ρhは、数式(4)により表される。
【0028】
【数4】
【0029】
なお、imgHeightは、画像の高さ(縦方向の画素数)であり、既知であるものとする。
【0030】
実空間位置推定部145は、足元位置推定部143により推定された足元位置を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する。具体的には、実空間位置推定部145は、入力部110により入力され記憶部120に記憶されている撮像パラメータ及び基準データと足元位置推定部143により推定された足元位置とを用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する。
【0031】
実空間位置推定部145は、例えば、特開2008−286638号公報に記載されている手法を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定することができる。但し、特開2008−286638号公報に記載されている手法では、カメラを水平設置(俯角=0)とすることを条件としているため、俯角の影響を取り除く必要がある。
【0032】
具体的に説明すると、特開2008−286638号公報に記載されている手法では、遠近法を用いて、人物の見かけ上の大きさ(画像上の人物の高さに相当する画素数)から人物とカメラとの距離を求めている。しかし、画像上の人物の高さに相当する画素数は、俯角が0でない場合、人物とカメラとの距離だけではなく、俯角の影響も受けることになる。
【0033】
このため、本実施形態において特開2008−286638号公報に記載されている手法を用いる場合、実空間位置推定部145は、俯角の影響により変化してしまった画像上の人物の高さに相当する画素数を数式(5)で補正する。そして実空間位置推定部145は、補正後の画像上の人物の高さに相当する画素数に遠近法を適用することにより、俯角の影響を取り除いた人物の大きさを求め、実空間上の人物の位置を推定する。
【0034】
S’=S(cosα+sinαtan(α+ρh)) …(5)
【0035】
なお、S’[pixels]は、補正後の画像上の人物の高さに相当する画素数であり、S[pixels]は、補正前の画像上の人物の高さに相当する画素数である。
【0036】
そして実空間位置推定部145は、推定した各仮定身長の対象人物の実空間上の位置を時系列(フレーム)毎に記憶部120に記憶する。なお実空間位置推定部145は、仮定身長毎の対象人物の実空間上の位置を、直近Fフレーム分記憶部120に記憶しておく。つまり、実空間位置推定部145は、最古フレームにおける仮定身長毎の対象人物の実空間上の位置を記憶部120から削除した後に、最新フレームにおける仮定身長毎の対象人物の実空間上の位置を記憶部120に記憶する。なお本実施形態では、Fを10とするが、これに限定されるものではなく、適宜設定することができる。
【0037】
図3は、第1実施形態の記憶部120に記憶される仮定身長毎の対象人物の実空間上の位置の一例の説明図である。図3に示す例では、実空間位置推定部145は、フレームNo、日時、身長(複数の仮定身長)、及び位置(仮定身長に対応する実空間上の位置)を対応付けて記憶部120に記憶している。
【0038】
身長推定部147は、仮定身長毎に、推定された実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を対象人物の身長に推定する。
【0039】
具体的には、身長推定部147は、仮定身長それぞれに対し、推定された実空間上の時系列の位置毎に当該位置の次の位置へ対象人物が移動可能か否かを判定する。本実施形態では、身長推定部147は、時系列の間隔、即ち、フレーム間で対象人物が移動可能な範囲を予め定めており、推定された実空間上の時系列の位置毎に当該位置と次の位置との距離が予め定めた移動可能な範囲に収まるか否かで対象人物が移動可能か否かを判定する。ここで、人間の平均歩行速度をV、フレーム間をΔtとすると、移動可能な範囲Rは、R=V×Δtとなる。そして身長推定部147は、移動可能である場合に当該位置と当該次の位置とを結ぶ移動軌跡を作成し、所定数以上の移動軌跡が作成された仮定身長を対象人物の身長に推定する。なお身長推定部147は、対象人物の身長の推定に使用した位置などの情報を記憶部120から削除する。
【0040】
図4は、第1実施形態の身長推定部147により作成された移動軌跡の一例を示す図である。なお図4に示す例では、仮定身長が155cm、165cm、175cm、及び185cmの場合の移動軌跡を示している。身長推定部147は、図4に示す例の場合、仮定身長を175cmとした場合に最も多くの移動軌跡が作成されているため、対象人物の身長を175cmに推定する。
【0041】
ここで、仮定身長と当該仮定身長から推定される実空間上の位置及び移動距離との関係について説明する。
【0042】
図5は、仮定身長と当該仮定身長から推定される対象人物の実空間上の位置との関係の一例を示す図である。なお、対象人物160〜162は同一人物であるが、説明の関係上異なる符号を付している。
【0043】
仮定身長が対象人物160の実際の身長よりも大きい場合、対象人物160の実空間上の位置は、実空間位置推定部145により実際の位置よりも手前側に推定される。つまり、図5に示す例の場合、仮定身長が対象人物160の実際の身長よりも大きいと、実空間位置推定部145は、対象人物160を対象人物161として推定する。
【0044】
同様に、仮定身長が対象人物160の実際の身長よりも小さい場合、対象人物160の実空間上の位置は、実空間位置推定部145により実際の位置よりも奥側に推定される。つまり、図5に示す例の場合、仮定身長が対象人物160の実際の身長よりも小さいと、実空間位置推定部145は、対象人物160を対象人物162として推定する。
【0045】
図6は、仮定身長と当該仮定身長から推定される対象人物の横移動との関係の一例を示す図である。
【0046】
図6に示すように、仮定身長が対象人物160の実際の身長よりも大きい場合、即ち、対象人物160が対象人物161として推定された場合、対象人物161が撮像部130を横切る方向、即ち、横方向に移動すると、対象人物161のフレーム毎の位置の横方向の間隔は、対象人物160のフレーム毎の位置の横方向の間隔よりも小さくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まれば、対象人物161の隣接する各位置の距離も移動可能な範囲に収まるので、身長推定部147は、対象人物161の隣接する各位置を移動軌跡で結ぶことができる。
【0047】
一方、仮定身長が対象人物160の実際の身長よりも小さい場合、即ち、対象人物160が対象人物162として推定された場合、対象人物162が撮像部130を横切る方向、即ち、横方向に移動すると、対象人物162のフレーム毎の位置の横方向の間隔は、対象人物160のフレーム毎の位置の横方向の間隔よりも大きくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まっても、対象人物162の隣接する各位置の距離が移動可能な範囲に収まるとは限らず、この場合、身長推定部147は、対象人物162の隣接する各位置を移動軌跡で結ぶことができない。
【0048】
つまり、仮定身長が対象人物160の実際の身長よりも小さくなればなるほど、身長推定部147により作成される移動軌跡は人間らしい移動軌跡とはならないことになる。
【0049】
図7及び図8は、仮定身長と当該仮定身長から推定される対象人物の実空間上の移動距離との関係の一例を示す図である。
【0050】
図7に示すように、仮定身長が対象人物160の実際の身長に一致する場合に、対象人物160の頭部が画像上の縦方向(実空間上の奥行き方向)にp[pixels]移動したとする。この場合、対象人物160の実空間上の位置は、実空間位置推定部145によりx1[m]奥側の位置に推定される。
【0051】
一方、図8に示すように、仮定身長が対象人物160の実際の身長よりも大きい場合、即ち、対象人物160が対象人物161として推定された場合に、対象人物161の頭部が画像上の縦方向(実空間上の奥行き方向)にp[pixels]移動したとする。この場合、対象人物161の実空間上の位置は、実空間位置推定部145によりx2(x2>x1)[m]奥側の位置に推定される。
【0052】
図9は、仮定身長と当該仮定身長から推定される対象人物の縦移動との関係の一例を示す図である。
【0053】
図9に示すように、仮定身長が対象人物160の実際の身長よりも小さい場合、即ち、対象人物160が対象人物162として推定された場合、対象人物162が撮像部130に対して前進・後退する方向、即ち、縦方向に移動すると、対象人物162のフレーム毎の位置の縦方向の間隔は、対象人物160のフレーム毎の位置の縦方向の間隔よりも小さくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まれば、対象人物162の隣接する各位置の距離も移動可能な範囲に収まるので、身長推定部147は、対象人物162の隣接する各位置を移動軌跡で結ぶことができる。
【0054】
一方、仮定身長が対象人物160の実際の身長よりも大きい場合、即ち、対象人物160が対象人物161として推定された場合、対象人物161が撮像部130に対して前進・後退する方向、即ち、縦方向に移動すると、対象人物161のフレーム毎の位置の縦方向の間隔は、対象人物160のフレーム毎の位置の縦方向の間隔よりも大きくなる。このため、対象人物160の隣接する各位置の距離が移動可能な範囲に収まっても、対象人物161の隣接する各位置の距離が移動可能な範囲に収まるとは限らず、この場合、身長推定部147は、対象人物161の隣接する各位置を移動軌跡で結ぶことができない。
【0055】
つまり、仮定身長が対象人物160の実際の身長よりも大きくなればなるほど、身長推定部147により作成される移動軌跡は人間らしい移動軌跡とはならないことになる。
【0056】
以上より、仮定身長が対象人物160の実際の身長に近くなればなるほど、身長推定部147により作成される移動軌跡は人間らしい移動軌跡となる。
【0057】
また、身長推定部147は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長、及び当該複数の仮定身長それぞれの移動軌跡数を用いて、対象人物の身長を推定する。上述したように、仮定身長が対象人物の実際の身長に近いほど人間らしい移動軌跡が作成されるため、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、これらの仮定身長は隣接している可能性が高い。このため本実施形態では、例えば、所定数以上の移動軌跡が作成された仮定身長が2つ存在する場合、身長推定部147は、数式(6)を用いて、対象人物の身長を推定する。
【0058】
【数5】
【0059】
ここで、Hは、対象人物の推定身長であり、Ha、Hbは、それぞれ隣接する仮定身長であり、Naは、Haの移動軌跡数であり、Nbは、Hbの移動軌跡数である。
【0060】
本実施形態では、身長推定部147は、移動軌跡が作成された数を基準として最も人間らしい移動軌跡を判断しているが、これに限定されず、連続して作成された移動軌跡の数や、作成された移動軌跡の形などを基準として最も人間らしい移動軌跡を判断するようにしてもよい。
【0061】
表示部150は、各種情報を表示するものであり、例えば、ディスプレイなどにより実現できる。表示部150は、身長推定部147により推定された身長を表示する。なお表示部150は、身長推定部147により推定された身長とともに作成された軌跡を表示するようにしてもよい。更に表示部150は、仮定身長毎に身長推定部147により作成された軌跡を表示するようにしてもよい。
【0062】
次に、第1実施形態の身長推定装置の動作について説明する。
【0063】
図10は、第1実施形態の身長推定装置100で行われる身長推定処理の手順の流れの一例を示すフローチャートである。
【0064】
まず、入力部110は、複数の仮定身長、撮像パラメータ、及び基準データを入力する(ステップS100)。
【0065】
続いて、撮像部130は、対象人物を含む画像を時系列で撮像する(ステップS102)。
【0066】
続いて、頭部検出部141は、撮像部130により時系列で撮像された画像それぞれから対象人物の頭部を検出する(ステップS104)。撮像された画像それぞれから対象人物の頭部を検出できなかった場合(ステップS104でNo)、再度、頭部検出を行う(ステップS104)。
【0067】
撮像された画像それぞれから対象人物の頭部を検出できた場合(ステップS104でYes)、足元位置推定部143は、頭部検出部141により検出された頭部を用いて、撮像部130により時系列で撮像された画像それぞれから対象人物の足元位置を仮定身長毎に推定する(ステップS106)。
【0068】
続いて、実空間位置推定部145は、足元位置推定部143により推定された足元位置を用いて、対象人物の実空間上の位置を仮定身長毎に時系列で推定する(ステップS108)。そして実空間位置推定部145は、記憶部120に時系列で仮定身長毎に実空間上の位置を記憶する(ステップS110)。
【0069】
続いて、身長推定部147は、仮定身長毎に、実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、基準を超える移動軌跡が作成されたか否かを確認する(ステップS112)。基準を超える移動軌跡が作成された場合(ステップS112でYes)、当該移動軌跡を最も人間らしい移動軌跡とし、当該移動軌跡が作成された仮定身長を対象人物の身長に推定する(ステップS114)。一方、基準を超える移動軌跡が作成されなかった場合(ステップS112でNo)、ステップS104へ戻る。
【0070】
図11は、第1実施形態の身長推定装置100の身長推定部147で行われる処理の手順の流れの一例を示すフローチャートである。
【0071】
身長推定部147は、全ての仮定身長を確認すると処理を終了する(ステップS120でYes)。身長推定部147は、全ての仮定身長を確認していない場合(ステップS120でNo)、未確認の仮定身長を取得し、仮定身長Haとする(ステップS122)。
【0072】
続いて、身長推定部147は、仮定身長Haについて、直近Fフレーム中の隣接フレームを全て処理していない場合(ステップS124でNo)、未処理の隣接フレームを取得し、フレームFi、Fjとする(ステップS126)。なお、仮定身長Haについて、直近Fフレーム中の隣接フレームを全て処理している場合(ステップS124でYes)、ステップS120へ戻る。
【0073】
続いて、身長推定部147は、フレームFi、Fjの時間Δtを計算し、対象人物がフレームFi、Fj間で移動可能な範囲Rを計算する(ステップS128)。
【0074】
続いて、身長推定部147は、フレームFi、Fjで推定された実空間上の位置の距離が範囲R以下であるか否かを確認する(ステップS130)。
【0075】
フレームFi、Fjで推定された実空間上の位置の距離が範囲R以下である場合(ステップS130でYes)、身長推定部147は、フレームFi、Fjで推定された実空間上の位置を紐付け、両位置を結ぶ移動軌跡を作成する(ステップS132)。なお、フレームFi、Fjで推定された実空間上の位置の距離が範囲R以下でない場合(ステップS130でNo)、ステップS124へ戻る。
【0076】
続いて、身長推定部147は、N(0<N<F)フレーム以上連結した場合、即ち、N以上の移動軌跡を作成した場合(ステップS134でYes)、仮定身長Haを対象人物の身長に推定し、作成した移動軌跡とともに出力する(ステップS136)。そして、ステップS124へ戻る。なお、N(0<N<F)フレーム以上連結しなかった場合も(ステップS134でNo)、ステップS124へ戻る。
【0077】
以上のように第1実施形態によれば、人物の頭部さえ撮像されていれば、当該人物の足元を推定することにより、身長を推定できるので、画像上で人物の足元位置が隠蔽されていても当該人物の身長を推定することができる。特に、足元は、影や鏡面反射など誤検知の要因となり易いので、足元を検知せずに身長を推定することにより、当該人物の身長を精度よく推定することができる。
【0078】
(第2実施形態)
第2実施形態では、推定した身長を用いて対象人物を追跡する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0079】
図12は、第2実施形態の身長推定装置200の構成の一例を示すブロック図である。第2実施形態の身長推定装置200では、足元位置推定部243及び実空間位置推定部245が第1実施形態と相違し、追跡部249を更に備える。
【0080】
足元位置推定部243は、身長推定部147により対象人物の身長が推定された後に撮像部130により撮像された画像から、対象人物の足元位置を身長推定部147により推定された身長である推定身長を用いて推定する。
【0081】
実空間位置推定部245は、足元位置推定部243により推定された足元位置を用いて、推定身長の対象人物の実空間上の位置を推定する。
【0082】
追跡部249は、実空間位置推定部245により推定された推定身長の対象人物の実空間上の位置を追跡する。
【0083】
図13は、第2実施形態の身長推定装置200で行われる追跡処理の手順の流れの一例を示すフローチャートである。
【0084】
まず、撮像部130は、対象人物を含む画像を撮像する(ステップS200)。
【0085】
続いて、頭部検出部141は、撮像部130により撮像された画像から対象人物の頭部を検出する(ステップS202)。撮像された画像から対象人物の頭部を検出できなかった場合(ステップS202でNo)、ステップS200へ戻る。
【0086】
撮像された画像から対象人物の頭部を検出できた場合(ステップS202でYes)、足元位置推定部243は、頭部検出部141により検出された頭部及び身長推定部147により推定された推定身長を用いて、撮像部130により撮像された画像から対象人物の足元位置を推定する(ステップS204)。
【0087】
続いて、実空間位置推定部245は、足元位置推定部243により推定された足元位置を用いて、推定身長の対象人物の実空間上の位置を推定する(ステップS206)。
【0088】
続いて、追跡部249は、新たな追跡情報を作成した場合には(ステップS208でYes)、追跡情報を更新する(ステップS210)。これにより、追跡部249は、推定身長の対象人物の実空間上の位置を追跡する。そして、ステップS200へ戻る。一方、新たな追跡情報が作成されなかった場合も(ステップS208でNo)、ステップS200へ戻る。
【0089】
ここで、追跡情報の更新について説明する。
【0090】
まず、追跡部249は、実空間位置推定部245により推定身長の対象人物の実空間上の位置が推定されると、距離閾値Dtに初期値Dt0を設定する。なお、初期値Dt0は100[m]など十分に大きな値が好ましい。
【0091】
続いて、追跡部249は、記憶部120に記憶されている追跡情報から、推定身長の対象人物の前回の実空間上の位置Piとその取得時刻Tiを取得する。そして、追跡部249は、位置PiとステップS206で実空間位置推定部245により推定された推定身長の対象人物の最新の実空間上の位置Pとを用いて、両位置の距離Diを計算する(Di=P−Pi)。更に、追跡部249は、人間の平均歩行速度V、時刻Ti、及び対象人物の最新の実空間上の位置Pの取得時刻Tを用いて、推定身長の対象人物の時刻T−時刻Ti間に移動可能な範囲Rを計算する(R=V×(T−Ti))。
【0092】
続いて、追跡部249は、距離Diが範囲R以下かつ距離閾値Dt以下である場合、位置P及び時刻Tを新たな追跡情報として記憶部120に記憶し、追跡情報を更新する。この際、追跡部249は、位置Piと位置Pとを紐付け、両位置を結ぶ移動軌跡を作成する。また追跡部249は、距離閾値Dtに距離Diを設定し、次回の追跡情報の更新時に用いる。
【0093】
但し、上述の手法で追跡情報を更新すると、光や影などによるノイズによって、推定された実空間上の位置に誤差が生じ、追跡が失敗してしまうおそれがある。このため、移動速度の移動平均を用いて追跡情報を更新するようにしてもよい。これにより、ノイズによって突発的に発生する誤差を抑制することができる。
【0094】
この場合、まず、追跡部249は、実空間位置推定部245により推定身長の対象人物の実空間上の位置が推定されると、分散閾値Vtに初期値Vt0を設定する。なお、初期値Vt0は100[m/s]など十分に大きな値が好ましい。
【0095】
続いて、追跡部249は、記憶部120に記憶されている追跡情報から、推定身長の対象人物の直近nフレーム分の実空間上の位置Pi_1〜Pi_nとその取得時刻Ti_1〜Ti−nを取得する。なお、時系列は、i_n、i_n−1、…i_1の順番であるものとする。
【0096】
続いて、追跡部249は、隣接する位置間の移動速度Vi_1〜Vi_nを計算する。例えば、Vi_1は、Vi_1=D(P,Pi_1)/(T−Ti_1)で表され、Vi_nは、Vi_n=D(Pi_n−1,Pi_n)/(Ti_n−1−Ti_n)で表される。なお、D(x,y)は、位置xと位置y間の距離を求める関数である。
【0097】
続いて、追跡部249は、移動速度Vi_1〜Vi_nから移動平均Miと分散Viとを計算する。
【0098】
続いて、追跡部249は、移動平均Miが人らしい移動速度の上限値Th以下かつ分散Viが分散閾値Vt以下である場合、位置P及び時刻Tを新たな追跡情報として記憶部120に記憶し、追跡情報を更新する。この際、追跡部249は、位置Pi_1と位置Pとを紐付け、両位置を結ぶ移動軌跡を作成する。また追跡部249は、分散閾値Vtに分散Viを設定し、次回の追跡情報の更新時に用いる。
【0099】
ここで、位置を紐付けるために、分散Viと分散閾値Vtとを比較しているのは、人は、急に止まれないため、移動速度の分散が小さい移動の方が人らしい移動と判断できるためである。
【0100】
以上のように、第2実施形態によれば、影や鏡面反射など誤検知の要因となり易い足元を考慮せずに人物を追跡することができるため、精度よく追跡することができる。
【0101】
(変形例)
なお、本発明は、上記実施形態に限定されるものではなく、種々の変形が可能である。
【0102】
(変形例1)
例えば、対象人物を追跡中に対象人物がしゃがんでしまうと、対象人物の頭部の高さが変化してしまうため、対象人物の実空間上の正しい位置を推定できなくなってしまう。このため第2実施形態において、対象人物の追跡時にしゃがみ込み判定を行うようにしてもよい。
【0103】
対象人物がしゃがみ込む場合、実空間上の同一位置にいる対象人物の身長が徐々に低くなるという現象が生じる。このため、追跡部249は、この現象を認識することで、対象人物がしゃがみ込んだのか、身長が低い別の人物が現れたのかを判定すればよい。
【0104】
図14は、変形例1の身長推定装置200で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【0105】
まず、撮像部130は、対象人物を含む画像を撮像する(ステップS300)。
【0106】
続いて、追跡部249は、対象人物の実空間上の位置を追跡する(ステップS302)。そして、追跡部249が新規の人物を検知した場合(ステップS304でYes)、実空間位置推定部245は、新規の人物の実空間上の位置Pc(Xc,Yc)および身長Hcを推定する(ステップS306)。
【0107】
続いて、追跡部249は、対象人物の追跡情報から、対象人物の身長Hiと位置Pi(Xi,Yi)を参照し(ステップS308)、位置Pcと位置Piとが一定範囲内に存在するか否かを確認する(ステップS310)。
【0108】
そして、追跡部249は、位置Pcと位置Piとが一定範囲内に存在する場合(ステップS310でYes)、しゃがみ込み判定用の情報として、追跡番号i、位置Pcの取得時刻Tc、身長Hcを記憶部120に記憶し(ステップS312)、処理を終了する。
【0109】
一方、位置Pcと位置Piとが一定範囲内に存在せず(ステップS310でNo)、しゃがみ込み判定用の情報が記憶部120に記憶されており(ステップS314でYes)、しゃがみ込み判定用の情報が同一の追跡番号で所定数ある場合(ステップS316でYes)、追跡部249は、時刻Tcの時間経過に伴い、身長HcがΔHの範囲内で低くなっているか否か判定する(ステップS318)。そして追跡部249は、身長HcがΔHの範囲内で低くなっている場合(ステップS320でYes)、しゃがみ込みありと判定する(ステップS322)。
【0110】
なお、ステップS304で新規の人物を検知しなかった場合(ステップS304でNo)、ステップS314でしゃがみ込み判定用の情報が記憶部120に記憶されていない場合(ステップS314でNo)、ステップS316でしゃがみ込み判定用の情報が同一の追跡番号で所定数ない場合(ステップS316でNo)、及びステップS320で身長HcがΔHの範囲内で低くなっていない場合(ステップS320でNo)、追跡部249は、しゃがみ込みなしと判定する(ステップS324)。
【0111】
(変形例2)
上記変形例1のしゃがみ込み判定手法は、撮像部130と対象人物の足元との間に遮蔽物がなく、画像上の足元位置から実空間上の人物位置を推定できることが前提である。変形例2では、このような前提を用いることなく、対象人物のしゃがみ込み判定を行う例について説明する。
【0112】
図15は、変形例2の身長推定装置200で行われるしゃがみ込み判定処理の手順の流れの一例を示すフローチャートである。
【0113】
まず、撮像部130は、対象人物を含む画像を撮像する(ステップS400)。
【0114】
続いて、追跡部249は、対象人物の実空間上の位置を追跡する(ステップS402)。そして、追跡部249が新規の人物を検知し(ステップS404でYes)、所定時間内に対象人物が消失した追跡情報が記憶部120に記憶されている場合(ステップS406でYes)、追跡部249は、追跡情報から消失した人物(対象人物)の身長Haと移動軌跡Qa{Pa1,…,PaN}を参照するとともに(ステップS408)、新規の人物の身長Hbと移動軌跡Qb{Pb1,…,PbM}を参照する(ステップS410)。
【0115】
続いて、追跡部249は、身長Haが身長Hbよりも大きい場合(ステップS412でYes)、移動軌跡Qaと移動軌跡Qbとから連続性を判定し(ステップS414)、連続性がある場合(ステップS416でYes)、しゃがみ込みありと判定する(ステップS418)。
【0116】
ここで、連続性の判断については、前述した移動範囲や移動速度による判定方法を用いればよい。例えば、移動範囲を用いて判定する場合、追跡部249は、移動軌跡Qaのうち消失する直前の位置Pa1と、移動軌跡Qbのうち最初に検出された位置PbMとが、人らしい移動範囲内に入るか否かを判定すればよい。また例えば、移動速度を用いて判定する場合、追跡部249は、消失する直前のK個の位置Qa’{Pa1,…,PaK}(K<N)と検出された直後の位置Qb’{PM−L+1,…,PbM}(L<M)から連続性を判定すればよい。
【0117】
一方、ステップS404で新規の人物を検知しなかった場合(ステップS404でNo)、ステップS406で所定時間内に対象人物が消失した追跡情報が記憶部120に記憶されていない場合(ステップS406でNo)、ステップS412で身長Haが身長Hbよりも小さい場合(ステップS412でNo)、及びステップS416で連続性がない場合(ステップS416でNo)、追跡部249は、しゃがみ込みなしと判定する(ステップS420)。
【0118】
(変形例3)
上記実施形態では、身長推定部147は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長、及び当該複数の仮定身長それぞれの移動軌跡数を用いて、対象人物の身長を推定したが、当該複数の仮定身長それぞれの移動速度の分散を用いて、対象人物の身長を推定するようにしてもよい。
【0119】
この場合、身長推定部147は、仮定身長Haから算出した移動軌跡Qa{Pa1(Xa1,Ya1),…,Pai,…,PaN}を求める。ここで、位置Pai(i=1,…,N)が推定されたときの時刻をTaiとし、i=1のとき、最新のデータが入力されるものとする。そして身長推定部147は、求めた移動軌跡Qaから移動速度の分散値Vaを求める(数式(7)参照)。ここで、数式(7)の変数は、数式(9)及び数式(11)に示すとおりである。
【0120】
同様に、身長推定部147は、仮定身長Hbから算出した移動軌跡Qb{Pb1(Xb1,Yb1),…,Pbi,…,PbM}を求める。ここで、位置Pbi(i=1,…,M)が推定されたときの時刻をTbiとし、i=1のとき、最新のデータが入力されるものとする。そして身長推定部147は、求めた移動軌跡Qbから移動速度の分散値Vbを求める(数式(8)参照)。ここで、数式(8)の変数は、数式(10)及び数式(12)に示すとおりである。
【0121】
【数6】
【0122】
【数7】
【0123】
【数8】
【0124】
【数9】
【0125】
【数10】
【0126】
【数11】
【0127】
そして、身長推定部147は、数式(13)を用いて、対象人物の身長を推定する。
【0128】
【数12】
【0129】
(変形例4)
上記第2実施形態では、推定身長を用いて対象人物を追跡したが、追跡中に対象人物の足元を確実に撮像できた場合には、当該足元から推定した身長に置き換えて対象人物を追跡するようにしてもよい。
【0130】
(変形例5)
上記各実施形態及び各変形例の身長推定装置を、例えば、強盗の身長推定及び追跡に使用する場合、推定身長や移動軌跡に加え、他の特徴(人相や服装)を出力するようにしてもよい。また、上記各実施形態及び各変形例の身長推定装置は、棚などで人物の足元が見えないことが多い小売店舗や人ごみなどの場所において用いると好適であり、マーケティングや人流解析などへの応用が期待できる。
【0131】
(ハードウェア構成)
上記各実施形態及び各変形例の身長推定装置は、CPU(Central Processing Unit)などの制御装置と、ROMやRAMなどの記憶装置と、HDDやSSDなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信I/Fなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0132】
上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【0133】
また、上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムを、ROM等に予め組み込んで提供するようにしてもよい。
【0134】
上記各実施形態及び各変形例の身長推定装置で実行される身長推定プログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【符号の説明】
【0135】
100、200 身長推定装置
110 入力部
120 記憶部
130 撮像部
140 制御部
141 頭部検出部
143、243 足元位置推定部
145、245 実空間位置推定部
147 身長推定部
249 追跡部
150 表示部
【特許請求の範囲】
【請求項1】
対象人物を含む画像を時系列で撮像する撮像部と、
時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出部と、
検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定部と、
推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定部と、
前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定部と、
を備えることを特徴とする身長推定装置。
【請求項2】
前記身長推定部は、前記仮定身長それぞれに対し、推定された前記実空間上の時系列の位置毎に当該位置の次の位置へ前記対象人物が移動可能か否かを判定し、移動可能である場合に前記位置と前記次の位置とを結ぶ移動軌跡を作成し、所定数以上の移動軌跡が作成された仮定身長を前記対象人物の身長に推定することを特徴とする請求項1に記載の身長推定装置。
【請求項3】
前記身長推定部は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長、及び当該複数の仮定身長それぞれの移動軌跡数を用いて、前記対象人物の身長を推定することを特徴とする請求項2に記載の身長推定装置。
【請求項4】
前記身長推定部は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長それぞれの移動軌跡から当該複数の仮定身長それぞれの前記対象人物の移動速度の分散を算出し、当該複数の仮定身長、及び当該複数の仮定身長それぞれの前記対象人物の移動速度の分散を用いて、前記対象人物の身長を推定することを特徴とする請求項2に記載の身長推定装置。
【請求項5】
前記足元位置推定部は、前記対象人物の身長が推定された後に撮像された画像から前記対象人物の足元位置を前記身長推定部により推定された身長である推定身長を用いて推定し、
前記実空間位置推定部は、推定された前記足元位置を用いて、前記推定身長の前記対象人物の実空間上の位置を推定し、
推定された前記推定身長の前記対象人物の実空間上の位置を追跡する追跡部を更に備えることを特徴とする請求項1〜4のいずれか1つに記載の身長推定装置。
【請求項6】
前記追跡部は、追跡中に前記推定身長の前記対象人物がしゃがみ込んだか否かを判定することを特徴とする請求項5に記載の身長推定装置。
【請求項7】
撮像部が、対象人物を含む画像を時系列で撮像する撮像ステップと、
頭部検出部が、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、
足元位置推定部が、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、
実空間位置推定部が、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、
身長推定部が、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、
を含むことを特徴とする身長推定方法。
【請求項8】
対象人物を含む画像を時系列で撮像する撮像ステップと、
時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、
検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、
推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、
前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、
をコンピュータに実行させるための身長推定プログラム。
【請求項1】
対象人物を含む画像を時系列で撮像する撮像部と、
時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出部と、
検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定部と、
推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定部と、
前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定部と、
を備えることを特徴とする身長推定装置。
【請求項2】
前記身長推定部は、前記仮定身長それぞれに対し、推定された前記実空間上の時系列の位置毎に当該位置の次の位置へ前記対象人物が移動可能か否かを判定し、移動可能である場合に前記位置と前記次の位置とを結ぶ移動軌跡を作成し、所定数以上の移動軌跡が作成された仮定身長を前記対象人物の身長に推定することを特徴とする請求項1に記載の身長推定装置。
【請求項3】
前記身長推定部は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長、及び当該複数の仮定身長それぞれの移動軌跡数を用いて、前記対象人物の身長を推定することを特徴とする請求項2に記載の身長推定装置。
【請求項4】
前記身長推定部は、所定数以上の移動軌跡が作成された仮定身長が複数存在する場合、当該複数の仮定身長それぞれの移動軌跡から当該複数の仮定身長それぞれの前記対象人物の移動速度の分散を算出し、当該複数の仮定身長、及び当該複数の仮定身長それぞれの前記対象人物の移動速度の分散を用いて、前記対象人物の身長を推定することを特徴とする請求項2に記載の身長推定装置。
【請求項5】
前記足元位置推定部は、前記対象人物の身長が推定された後に撮像された画像から前記対象人物の足元位置を前記身長推定部により推定された身長である推定身長を用いて推定し、
前記実空間位置推定部は、推定された前記足元位置を用いて、前記推定身長の前記対象人物の実空間上の位置を推定し、
推定された前記推定身長の前記対象人物の実空間上の位置を追跡する追跡部を更に備えることを特徴とする請求項1〜4のいずれか1つに記載の身長推定装置。
【請求項6】
前記追跡部は、追跡中に前記推定身長の前記対象人物がしゃがみ込んだか否かを判定することを特徴とする請求項5に記載の身長推定装置。
【請求項7】
撮像部が、対象人物を含む画像を時系列で撮像する撮像ステップと、
頭部検出部が、時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、
足元位置推定部が、検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、
実空間位置推定部が、推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、
身長推定部が、前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、
を含むことを特徴とする身長推定方法。
【請求項8】
対象人物を含む画像を時系列で撮像する撮像ステップと、
時系列で撮像された前記画像それぞれから前記対象人物の頭部を検出する頭部検出ステップと、
検出された前記頭部を用いて、時系列で撮像された前記画像それぞれから前記対象人物の足元位置を仮定身長毎に推定する足元位置推定ステップと、
推定された前記足元位置を用いて、前記対象人物の実空間上の位置を前記仮定身長毎に時系列で推定する実空間位置推定ステップと、
前記仮定身長毎に、推定された前記実空間上の時系列の位置を用いて人間らしい移動軌跡を作成し、最も人間らしい移動軌跡が作成された仮定身長を前記対象人物の身長に推定する身長推定ステップと、
をコンピュータに実行させるための身長推定プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2013−37406(P2013−37406A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−170549(P2011−170549)
【出願日】平成23年8月3日(2011.8.3)
【出願人】(000202361)綜合警備保障株式会社 (266)
【Fターム(参考)】
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願日】平成23年8月3日(2011.8.3)
【出願人】(000202361)綜合警備保障株式会社 (266)
【Fターム(参考)】
[ Back to top ]