(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022086610
(43)【公開日】2022-06-09
(54)【発明の名称】歩行追跡装置、及び歩行追跡プログラム
(51)【国際特許分類】
G06T 7/20 20170101AFI20220602BHJP
G06T 7/00 20170101ALI20220602BHJP
H04N 7/18 20060101ALI20220602BHJP
【FI】
G06T7/20 300A
G06T7/00 350C
H04N7/18 G
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2020198718
(22)【出願日】2020-11-30
(71)【出願人】
【識別番号】000000011
【氏名又は名称】株式会社アイシン
(71)【出願人】
【識別番号】504174135
【氏名又は名称】国立大学法人九州工業大学
(74)【代理人】
【識別番号】100096655
【弁理士】
【氏名又は名称】川井 隆
(74)【代理人】
【識別番号】100091225
【弁理士】
【氏名又は名称】仲野 均
(72)【発明者】
【氏名】山田 英夫
(72)【発明者】
【氏名】柴田 雅聡
(72)【発明者】
【氏名】榎田 修一
【テーマコード(参考)】
5C054
5L096
【Fターム(参考)】
5C054CA04
5C054CC02
5C054FC12
5C054FE09
5C054HA19
5L096AA06
5L096BA02
5L096BA18
5L096CA04
5L096DA02
5L096EA28
5L096EA39
5L096FA35
5L096FA60
5L096FA67
5L096GA30
5L096GA51
5L096HA05
5L096HA11
5L096JA05
5L096KA04
(57)【要約】
【課題】歩行追跡の頑健性を高める。
【解決手段】歩行追跡装置1は、動画の異なるフレーム画像に写った歩行者9が同一人物であることを同定して追跡する。同定は、歩行者9の外見情報による同定と歩行状態による同定を相補的に組み合わせて行い、これによって頑健性を高めている。歩行状態による同定は歩行者9が連続的な歩行動作を行う際の姿勢に着目したものである。歩行者は、歩行する際に周期2πの周期的な歩行動作を行うが、この歩行動作の各歩行段階を位相角φで表し、更に、歩行方向をθで表し、θとφの組み合わせによって歩行状態を定義する。類似した外見情報と歩行状態を有する複数の歩行者が近接して歩行していることは希であるため、外見情報と歩行状態を組み合わせることにより、頑健に歩行者9を識別して同定することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
歩行している被写体を撮影した動画を取得する動画取得手段と、
前記被写体の周期的な歩行動作に基づく歩行状態を用いて、前記取得した動画を構成するフレーム画像間での前記被写体を同定する同定手段と、
前記取得した動画で前記同定した被写体を追跡する追跡手段と、
を具備したことを特徴とする歩行追跡装置。
【請求項2】
前記同定手段は、前記歩行動作に加えて、前記被写体の歩行する方向を前記歩行状態に含めて前記同定を行うことを特徴とする請求項1に記載の歩行追跡装置。
【請求項3】
前記同定手段は、前記歩行動作の連続性に基づく歩行状態を用いることを特徴とする請求項1、又は請求項2に記載の歩行追跡装置。
【請求項4】
前記被写体の外見情報を取得する外見情報取得手段を具備し、
前記同定手段は、前記歩行状態と、前記取得した外見情報と、を用いて前記被写体を同定することを特徴とする請求項1、請求項2、又は請求項3に記載の歩行追跡装置。
【請求項5】
前記被写体の骨格情報を取得する骨格情報取得手段と、
各種の歩行状態を骨格情報によって学習したニューラルネットワークと、
を具備し、
前記同定手段は、前記取得した骨格情報を前記ニューラルネットワークに入力して、当該ニューラルネットワークが出力する歩行状態を取得する、
ことを特徴とする請求項1から請求項4までのうちの何れか1の請求項に記載の歩行追跡装置。
【請求項6】
前記ニューラルネットワークは、全身の骨格情報の少なくとも一部の領域から構成された学習データを用いて学習した、
ことを特徴とする請求項5に記載の歩行追跡装置。
【請求項7】
前記ニューラルネットワークは、骨格の先端領域から中心領域に向けて骨格情報が欠如するように構成された学習データで学習した、
ことを特徴とする請求項6に記載の歩行追跡装置。
【請求項8】
前記ニューラルネットワークは、骨格の領域ごとに学習した複数の領域ネットワークと、当該領域ネットワークのそれぞれの出力を、骨格情報の欠如に応じて重み付けする重み付けネットワークと、によって前記歩行状態を出力する、
ことを特徴とする請求項6、又は請求項7に記載の歩行追跡装置。
【請求項9】
前記動画取得手段は、複数のカメラで撮影した前記被写体の複数の動画を取得し、
前記同定手段は、前記取得した複数の動画のフレーム画像間で前記被写体を対応させることにより前記被写体を同定する、
ことを特徴とする請求項1から請求項8までのうちの何れか1の請求項に記載の歩行追跡装置。
【請求項10】
前記ニューラルネットワークが出力した歩行状態の時間変化を提示する提示手段を具備したことを特徴とする請求項5から請求項9までのうちの何れか1の請求項に記載の歩行追跡装置。
【請求項11】
歩行している被写体を撮影した動画を取得する動画取得機能と、
前記被写体の周期的な歩行動作に基づく歩行状態を用いて、前記取得した動画を構成するフレーム画像間での前記被写体を同定する同定機能と、
前記取得した動画で前記同定した被写体を追跡する追跡機能と、
をコンピュータで実現する歩行追跡プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、歩行追跡装置、及び歩行追跡プログラムに関し、例えば、動画上で歩行者を追跡するものに関する。
【背景技術】
【0002】
歩行中の歩行者をカメラで動画撮影し、その動画上で歩行者を同定して追跡する技術の需要が高まっている。
例えば、特許文献1の技術では、外観による特徴や座標、及び歩行の方向などを手がかりにして複数のカメラで撮影した人物を追跡しつつ、アバターに変換している。
【0003】
しかし、一般的に、カメラによる歩行者の追跡は、監視カメラ設置エリアなど多数の人々が行き交う場所で行われる。
このような集団で歩行するようなシーンで歩行者を追跡する場合、外見の似た他者が近くを同じ方向に歩いていたり、歩行者の身体の一部が他の歩行者の陰に隠れたり、あるいは、服装のデザインの影響で角度によって歩行者の外見の見え方が変化したり、など、同様な情報が取得できるため、個々の歩行者を分離して追跡することが困難な場合があった。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、歩行追跡の頑健性を高めることを目的とする。
【課題を解決するための手段】
【0006】
(1)請求項1に記載の発明では、歩行している被写体を撮影した動画を取得する動画取得手段と、前記被写体の周期的な歩行動作に基づく歩行状態を用いて、前記取得した動画を構成するフレーム画像間での前記被写体を同定する同定手段と、前記取得した動画で前記同定した被写体を追跡する追跡手段と、を具備したことを特徴とする歩行追跡装置を提供する。
(2)請求項2に記載の発明では、前記同定手段が、前記歩行動作に加えて、前記被写体の歩行する方向を前記歩行状態に含めて前記同定を行うことを特徴とする請求項1に記載の歩行追跡装置を提供する。
(3)請求項3に記載の発明では、前記同定手段が、前記歩行動作の連続性に基づく歩行状態を用いることを特徴とする請求項1、又は請求項2に記載の歩行追跡装置を提供する。
(4)請求項4に記載の発明では、前記被写体の外見情報を取得する外見情報取得手段を具備し、前記同定手段は、前記歩行状態と、前記取得した外見情報と、を用いて前記被写体を同定することを特徴とする請求項1、請求項2、又は請求項3に記載の歩行追跡装置を提供する。
(5)請求項5に記載の発明では、前記被写体の骨格情報を取得する骨格情報取得手段と、各種の歩行状態を骨格情報によって学習したニューラルネットワークと、を具備し、前記同定手段は、前記取得した骨格情報を前記ニューラルネットワークに入力して、当該ニューラルネットワークが出力する歩行状態を取得する、ことを特徴とする請求項1から請求項4までのうちの何れか1の請求項に記載の歩行追跡装置を提供する。
(6)請求項6に記載の発明では、前記ニューラルネットワークが、全身の骨格情報の少なくとも一部の領域から構成された学習データを用いて学習した、ことを特徴とする請求項5に記載の歩行追跡装置を提供する。
(7)請求項7に記載の発明では、前記ニューラルネットワークが、骨格の先端領域から中心領域に向けて骨格情報が欠如するように構成された学習データで学習した、ことを特徴とする請求項6に記載の歩行追跡装置を提供する。
(8)請求項8に記載の発明では、前記ニューラルネットワークが、骨格の領域ごとに学習した複数の領域ネットワークと、当該領域ネットワークのそれぞれの出力を、骨格情報の欠如に応じて重み付けする重み付けネットワークと、によって前記歩行状態を出力する、ことを特徴とする請求項6、又は請求項7に記載の歩行追跡装置を提供する。
(9)請求項9に記載の発明では、前記動画取得手段が、複数の前記カメラで撮影した前記被写体の複数の動画を取得し、前記同定手段は、前記取得した複数の動画のフレーム画像間で前記被写体を対応させることにより前記被写体を同定する、ことを特徴とする請求項1から請求項8までのうちの何れか1の請求項に記載の歩行追跡装置を提供する。
(10)請求項10に記載の発明では、前記ニューラルネットワークが出力した歩行状態の時間変化を提示する提示手段を具備したことを特徴とする請求項5から請求項9までのうちの何れか1の請求項に記載の歩行追跡装置を提供する。
(11)請求項11に記載の発明では、歩行している被写体を撮影した動画を取得する動画取得機能と、前記被写体の周期的な歩行動作に基づく歩行状態を用いて、前記取得した動画を構成するフレーム画像間での前記被写体を同定する同定機能と、前記取得した動画で前記同定した被写体を追跡する追跡機能と、をコンピュータで実現する歩行追跡プログラムを提供する。
【発明の効果】
【0007】
本発明によれば、歩行状態を用いて対象を同定することにより、歩行追跡の頑健性を高めることができる。
【図面の簡単な説明】
【0008】
【
図1】歩行追跡装置のハードウェア的な構成を示した図である。
【
図2】歩行状態の検出手順を説明するための図である。
【
図8】歩行状態を用いた人物同定方法を説明するための図である。
【
図10】歩行追跡処理を説明するためのフローチャートである。
【
図11】歩行状態計算処理を説明するためのフローチャートである。
【
図12】隠れを有する学習データを説明するための図である。
【
図14】MLPの全体構成を説明するための図である。
【
図15】歩行状態計算処理を説明するためのフローチャートである。
【
図16】学習モデルの精度を比較した実験結果を説明するための図である。
【
図17】歩行状態による対応付け手順を説明するためのフローチャートである。
【発明を実施するための形態】
【0009】
(1)実施形態の概要
歩行追跡装置1(
図1)は、動画の異なるフレーム画像に写った歩行者9が同一人物であることを同定して追跡する。
同定は、歩行者9の外見情報による同定と歩行状態による同定を相補的に組み合わせて行い、これによって頑健性を高めている。外見情報による同定は、一般的に利用されている技術を用いる。
【0010】
歩行状態による同定は今回新たに開発した技術であって、歩行者9が連続的な歩行動作を行う際の姿勢に着目したものである。
歩行者は、歩行する際に周期2πの周期的な歩行動作を行うが、この歩行動作の各歩行段階を位相角φで表し、更に、歩行方向をθで表し、θとφの組み合わせによって歩行状態を定義する。
【0011】
類似した外見情報と歩行状態を有する複数の歩行者が近接して歩行していることは希であるため、外見情報と歩行状態を組み合わせることにより、頑健に歩行者9を識別して同定することができる。
また、歩行状態自体も、歩行方向θと歩行段階φを相補的に組み合わせてあるため、多少歩行方向がぶれたり、歩調が乱れたりしても、頑健に歩行者9の歩行状態を検出することができる。
【0012】
(2)実施形態の詳細
カメラで歩行者を動画撮影し、2つのフレーム画像に写った歩行者を対応させて同一人物であると同定する場合、同じ動画データの時間的に前後するフレーム画像間で歩行者を対応させて同定する場合と、複数台のカメラで撮影した異なる動画データのフレーム画像間で歩行者を対応させて同定する場合がある。
以下、第1~第3実施形態で前者について説明し、第4実施形態で後者について説明するが、歩行状態を用いて2つのフレーム画像に写っている歩行者を同定する技術は共通である。
【0013】
[第1実施形態]
図1(a)は、第1実施形態に係る歩行追跡装置1のハードウェア的な構成を示した図である。
歩行追跡装置1は、CPU(Central Processing Unit)2、ROM(Read Only Memory)3、RAM(Random Access Memory)4、表示部5、入力部6、通信制御部7、カメラ8、記憶部10などから構成されている。
【0014】
歩行追跡装置1は、歩行者9を動画撮影して、動画内で歩行者9を追跡する。骨格を有する対象であれば、歩行状態を検出して歩行を追跡できるが、本実施形態では、追跡対象を人とし、歩行追跡装置として利用する。
【0015】
図では、単一の歩行者9を図示しているが、歩行追跡装置1は、集団で歩行している複数の歩行者9、9、・・・を個別に追跡することができる。
歩行追跡装置1は、歩行者ごとにばらばらである歩行状態を用いて個々の歩行者9を識別するため、集団的な歩行で特に顕著な頑健性を示す。
歩行追跡装置1は、例えば、自律走行ロボットに搭載されて省人化を行ったり、監視カメラ映像を用いて防犯対策やマーケティング分析などを行うのに用いられる。
【0016】
CPU2は、記憶部10やROM3などに記憶されたプログラムに従って、各種の情報処理や制御を行う中央処理装置である。
本実施形態では、歩行追跡プログラムに従って情報処理することにより、動画データを構成する2つのフレーム画像に写った歩行者9を同定し、この同定処理を繰り返すことによって歩行者9を動画内で追跡する。
【0017】
ROM3は、読み取り専用メモリであって、歩行追跡装置1を動作させるための基本的なプログラムやパラメータなどを記憶している。
RAM4は、読み書きが可能なメモリであって、CPU2が動作する際のワーキングメモリを提供する。
本実施形態では、動画を構成するフレーム画像(1コマの静止画像)の画像データを展開して記憶したり、計算結果を記憶したりすることにより、CPU2が、歩行者9を追跡するのを支援する。
【0018】
表示部5は、液晶画面などの表示デバイスを用いて構成されており、歩行追跡装置1の操作画面や動画の表示などを行う。
入力部6は、キーボードやマウスなどの入力デバイスを用いて構成されており、操作画面への入力などを受け付ける。
【0019】
通信制御部7は、インターネットやLAN(Local Area Network)などの通信ネットワーク11を介して、外部の装置との通信を行う。
本実施形態では、例えば、遠隔地のイベント会場などの外部のカメラで撮影した動画データを通信ネットワーク11経由で受信して、この動画について歩行追跡処理を行うことができる。
【0020】
カメラ8は、汎用の動画撮影カメラであって、レンズで構成された光学系と、これによって結像した像を電気信号に変換する画像素子を用いて構成されている。
カメラ8は、歩行者9が歩行している場所を所定のフレームレートで撮影し、これら連続するフレーム画像で構成された動画をRGB信号などの所定の画像信号によって出力する。
このように歩行追跡装置1は、歩行している被写体(歩行者9)を撮影した動画をカメラ8や通信ネットワーク11経由で外部の装置などから取得する動画取得手段を備えている。
【0021】
記憶部10は、ハードディスクやEEPROM(Electrically Erasable Programmable Read-Only Memory)などの記憶媒体を用いて構成されており、歩行追跡プログラムやその他のプログラム、及びデータ(解析に必要なパラメータや解析によって得た歩行者9の歩行経路や歩行状態の時間的推移など)を記憶している。
【0022】
歩行追跡装置1は、ニューラルネットワークの一種であるMLP(Multilayer perceptron)による深層学習を用いて歩行者9の歩行状態を解析するが、これを高速化するためにGPGPU(General-Purpose computing on Graphics Processing Units)を用いたり、あるいは、CPU、GPU、メモリなどを一体にモジュール化した小型コンピュータを用いて小型化することもできる。この小型コンピュータは、自律走行ロボットに搭載して人物を自動追尾するのに適している。
【0023】
図1(b)の式(1)は、歩行追跡装置1が歩行追跡のために行う計算式の一例を示している。
式(1)は、2つのフレーム画像に写っている歩行者9を対応させて同定するのに用いる式であって、第1実施形態~第3実施形態では、単一のカメラ8で撮影した時間的に前後するフレーム画像間で歩行者9を同定するのに用い、第4実施形態では、複数台のカメラ8、8、・・・で同時刻に撮影した2つのフレーム画像間で歩行者9を同定するのに用いる。
このように、動画撮影したカメラ8の異同にかかわらず、式(1)を用いて2つのフレーム画像間で歩行者9を同定することができる。
【0024】
歩行追跡装置1は、動画フレームで歩行者9を矩形によって人物検索し、歩行者9の外見情報を用いて計算した同一人物である確率と、歩行者9の歩行状態を用いて計算した同一人物である確率の線形和によって、歩行者9が同一人物である確率を計算する。係数αは、0<α<1の実数であり、例えば、0.3<α<0.7程度の範囲で実験により好適な値を設定する。
歩行追跡装置1は、外見情報と歩行状態を併せて判定した同一人物である確率が所定の閾値以上である場合に、歩行者9を同一人物であると同定する。閾値は、実験により求める。
このように、歩行追跡装置1は、被写体の外見情報を取得する外見情報取得手段を備え、歩行状態と、当該外見情報と、を用いて被写体を同定する。
【0025】
フレーム画像から人物を矩形で画像認識する技術や外見情報による同一人物程度の判定技術は、一般に用いられている技術を用いる。
外見情報を用いて同定する技術には、色分布によるカラーヒストグラム特徴を用いるもの、輝度勾配分布によるHOG特徴量を用いるもの、及び、深層学習で構築した距離空間に基づくもの(同一人物同士を近づけ、異なる人物同士を遠ざける距離空間を学習したもの)などがある。
これらは、何れも外見(Appearance)に基づくものであり、例えば、服の色や種類が類似している場合や、照明が変化する場合、あるいは、カメラ設置位置による見え方が違う場合に誤同定することがある。
【0026】
一方、歩行状態による同一人物程度は、歩行者9の姿勢(Pose)に着目して人物同定を行う技術であって、本願発明者が今回新たに開発した技術である。
近接する時刻であれば、カメラ位置によらず同一人物は同じ姿勢をとるため、姿勢に基づいて人物同定を行うことが可能となる。
【0027】
外見情報と歩行状態は、異なる観点から得られる情報であるため、相補効果が顕著である。
そのため、式(1)に示したように、外見情報による同定と、歩行状態による同定と、を相補的に組み合わせることによって、外見情報で生じる誤同定の原因に対しても頑健となり、人物同定判断の精度を大幅に高めることができる。
【0028】
例えば、人々が集団で歩行していて、歩行者9の近くを歩行している他の歩行者の外見が類似している場合は、歩行状態による区別が可能であり、逆に、歩行状態が類似している場合は、外見情報による区別が可能である。
以下では、今回新たに導入した歩行状態の検出について説明する。
【0029】
図2は、歩行状態の検出手順の全体像を説明するための図である。
まず、歩行追跡装置1は、フレーム画像から歩行者9を矩形により人物検出する。そして、検出した歩行者9の姿勢情報を骨格情報15によって抽出する。
骨格情報15の抽出には、例えば、OpenPoseやPoseNetといったソフトウェアで一般的に利用されている技術を用いることができる。
このように、歩行追跡装置1は、被写体の骨格情報を取得する骨格情報取得手段を備えている。
【0030】
次に、歩行追跡装置1は、抽出した骨格情報15を、予め骨格情報に対応する歩行状態を学習しておいたMLP16に入力して歩行状態sを推定する。
このように、歩行追跡装置1は、各種の歩行状態を骨格情報によって学習したニューラルネットワークを備えている。
【0031】
後述するように、本実施形態では、歩行者9が歩行する際の周期的な歩行動作に基づいて歩行状態sを定義し、歩行方向の2次元と、歩行段階の2次元で張られた4次元の歩行状態空間17における4次元ベクトルとして歩行状態sを表す。
なお、ベクトルのsは、図では太字で表しているが、文字コードの誤変換を防ぐために、明細書中では通常の英文字sで表す。他のベクトル量についても同様とする。
このように、歩行追跡装置1は、ニューラルネットワークを用いて被写体の周期的な歩行動作の連続性に基づく歩行状態を取得する。
【0032】
そして、歩行追跡装置1は、歩行状態空間17で、1つ前の動画フレーム画像で検出した歩行状態(s2とする)と、今回の動画フレームで検出した歩行状態(s1とする)の差をユーグリッド距離Uによって計測し、これによって人物同定を行う。
【0033】
平面上の2点間の距離は、ピタゴラスの定理で与えられるが、これを一般化したのがユーグリッド距離であって、ユーグリッド距離Uは、s1とs2の各成分の差分の二乗の和の平方根で求めることができる。
歩行状態が近いほどユーグリッド距離Uは小さくなるため、これによって2つの歩行状態の類似度を定量的に比較することができる。そのため、ユーグリッド距離Uが近いほど同一人物である確率が高くなるように同定判断を行うことができる。なお、これは一例であって、他の計量を用いてもよい。
【0034】
このように、歩行追跡装置1は、骨格情報をニューラルネットワークに入力して、当該ネットワークが出力する歩行状態を用いて、動画を構成するフレーム画像間での被写体を同定する同定手段を備えている。
そして、歩行追跡装置1は、フレーム画像での同定処理を逐次行うことにより、歩行者9を動画内で追跡することができる。
このように、歩行追跡装置1は、動画で同定した被写体を追跡する追跡手段を備えている。
【0035】
図3は、骨格情報を説明するための図である。
本実施形態では、骨格情報をジョイント番号0~24の合計25個のジョイントで定義した。以下、ジョイント番号0のジョイントをJ0などと略記する。ジョイントは、骨格情報において関節として機能する部位であって、ジョイントを中心としてこれらを結ぶ線分を回転させることにより姿勢を変化させることができる。本実施形態で用いたジョイントと人体部位との対応関係は次の通りである。
【0036】
J0:鼻、J1:首、J2:右肩、J3:右肘、J4:右手首、J8:腰部中心、J9:腰部右、J10:右膝、J11:右足首、J15:右目、J17:右耳、J22:右足親指、J23:右足小指、J24:右かかと、以下、対応する左半身も同様である。
【0037】
歩行追跡装置1は、矩形で検出した人物の画像において、各ジョイントの画像上での2次元座標値を取得することにより、姿勢に応じた骨格情報を2次元データとして抽出する。
座標を取得する元となる画像は、フレーム画像から人物検出で切り出した矩形の画像における座標でもよいし、フレーム画像上での座標でもよい。
【0038】
ジョイントは、更に多く定義したり、あるいは少なく定義したり、自由に設定することができる。例えば、背骨に該当する領域に更にジョイントを追加してより細かい姿勢を検出することもできるが、通常歩行は背筋を伸ばした状態で行うため必要ないと考えられる。このように、検出したい姿勢の属性に応じて適切なジョイントを定義することによって不要な計算を避けることができる。実験の結果、上記25点のジョイントで良好に歩行状態の推定を行うことができた。
【0039】
図4は、歩行方向を説明するための図である。
図4(a)は、撮影エリアを上から見たところを示しており、歩行者9の歩行方向dを、歩行面に平行な平面上の単位ベクトルで表す。
図の例では、撮影方向のD1軸と、これに垂直なD2軸で張られるD平面を設定し、歩行者9を中心として回転する単位ベクトルによって歩行方向dを定義した。
【0040】
計測する角度の基点は、どこでもよいが、図の例のようにD1を基点とする反時計回りの角度θ(0°≦θ<360°)で計測すると、歩行方向dの成分は、
図4(b)に示したように、d=(d1、d2)=(cosθ、sinθ)となる。
【0041】
図5は、歩行段階を説明するための図である。
図5(a)に示したように、歩行動作(足や手を運動させて体の重心を移動させる全身の連続動作)を歩行方向に垂直な方向から観察すると、歩行者9は、同じ周期的な動作を連続的に繰り返している。
【0042】
1歩行周期は、例えば、右足を着地する(歩行者9a)→右足に重心を乗せる(歩行者9b)→左足を振り出す(歩行者9c)→左足を着地する(歩行者9d)→右足を振り出す(歩行者9e、図は省略)、の各歩行段階で構成されている。
このように歩行動作は周期的な動作であるため、歩行段階は1歩行周期の位相で表すことができる。
【0043】
そこで、
図5(b)で示したように直交するP1、P2軸で張られるP平面を想定し、歩行の位相の位相角φ(0°≦φ<360°)に対応してP平面上を回転する単位ベクトル(p1,p2)によって歩行段階pを定義した。
位相角の起点は、どこでもよいが、図の例では、歩行者9aの段階を位相角φの起点とし、歩行者9b~9eの段階に進むに従って反時計回りに増大するようにφを定義した。
なお、
図5(b)では、歩行者9eを省略し、P1、P2軸による単位円上に歩行者9a~9dを順に表示した概念図であって、P1、P2軸と、歩行者9a~9dの正確な対応関係を示すものではない。
【0044】
このように歩行段階pを2次元ベクトルで表すと、その成分は、
図5(c)に示したように、p=(p1、p2)=(cosφ、sinφ)となる。
【0045】
図6は、歩行状態を説明するための図である。
図6(a)に示したように、歩行方向dと歩行段階pを合わせた4次元ベクトルで歩行状態s=(d1、d2、p1、p2)を定義する。
図示すると、歩行状態sは、
図6(b)で示したようなD1、D2、P1、P2軸で張られる4次元の歩行状態空間17内のベクトルsで表される。
4次元空間は図示することはできないため、図では、模式的にD1~P2軸を示してある。
【0046】
このように歩行方向dと歩行段階pを組み合わせて歩行状態sを定義すると、歩行方向dや歩行段階pのばらつきによる歩行状態sのずれが小さくなるように、これらが相補的に機能するため、歩行状態検出の頑健性を高めることができる
【0047】
歩行状態をこのように4次元ベクトルで表現したのは、後述する機械学習や人物同定の計算が容易になるからであり、他の手法で歩行状態の表現をすることもできる。
歩行状態は、同一時刻(多少前後してもよい)の歩行方向θと歩行段階の位相角φの組み合わせで規定されるため、直交するθ軸とφ軸からなる平面での点(θ、φ)(0≦θ、φ<2π)で表したり、単位球からなる球座標(θ、φ)で表すこともできる。これらのうち、理論計算や実装など、それぞれの場面で便利な座標系を用いればよい。
【0048】
なお、本実施形態では、θとφの組み合わせによって歩行状態を定義したが、φだけ、即ち歩行段階pだけで歩行状態を定義することも可能である。
また、更に他の要素を加えて更に高次元のベクトルとすることもできる。
歩行追跡装置1が備える同定手段は、歩行方向と歩行段階から歩行状態を生成することにより、歩行動作に加えて、被写体の歩行する方向を歩行状態に含めて同定を行うことができる。
【0049】
ところで、歩行者が歩行する様子、即ち歩容によって歩行者を識別する技術は、従来各種のものが提案されているが、これらは何れも、歩行者がある時間歩いたシーケンスにおいて歩容を取得している。これに対し、本実施形態の歩行追跡装置1は、歩行者9が歩いている一場面を切り取ったワンショットの画像から歩行状態を推定できるところが大きな特徴の1つである。
【0050】
図7は、MLPを説明するための図である。
歩行追跡装置1は、MLP(多層パーセプトロン:ニューラルネットワークの一種)による深層学習によって歩行状態sを計算した。
MLP16は、入力層、中間層、及び出力層を備えている。中間層の層数は3、各中間層のノード数は64とした。
【0051】
入力層は、フレーム画像上でのJ0の座標値(x0、y0)、J1の座標値(x1、y1)、・・・、J24の座標値(x24、y24)の、それぞれを入力する50個のノードを備えている。
出力層は、歩行状態s=(d1、d2、p1、p2)の各成分を出力する4個のノードを備えている。
【0052】
活性化関数はReLUを用い、エポック数を100、バッチサイズを256とした。ReLUは、MLPで一般的に使われる非線形の関数である。活性化関数の非線形性により、対象(ここでは歩行状態)を非線形分離することができる。
エポック数は、学習回数であり、バッチサイズは、学習データをバッチに分けて学習させる際の各バッチに含まれる学習データ数である。
【0053】
学習については、様々な歩行状態の画像を用意し、これらのジョイント座標値j=[x0、y0、・・・、x24、y24]と歩行状態s=[d1、d2、p1、p2]からなる学習データ(j、s)を用いて教師あり学習を行った。
つまり、学習データ(j、s)のjを入力すると、MLP16はsを出力するが、これを正解であるところの学習データ(j、s)のsと比較し、その誤差が小さくなるように中間層などのパラメータを調節した。
このようにパラメータが調整されたMLP16を用いると、あるフレーム画像から抽出た骨格情報15のジョイント座標値を入力するだけで、歩行状態s、即ち、歩行方向dと歩行段階pを同時に算出することができる。
【0054】
図8は、歩行状態を用いた人物同定方法を説明するための図である。
人物同定は、先に述べたように歩行状態空間17でのユーグリッド距離Uを用いて行う。
例えば、歩行状態s1、s2を、それぞれ、最新のフレーム画像の歩行者9から抽出した歩行状態と、これより1つ前のフレーム画像の歩行者9から抽出した歩行状態とする。
なお、第4実施形態で、複数台のカメラ8a、8bからの動画で歩行者9を同定する場合は、カメラ8aで撮影したフレーム画像aから抽出した歩行状態と、カメラ8bで同一時刻に撮影したフレーム画像bから抽出した歩行状態とする。
【0055】
カメラ8による動画撮影のフレームレートは例えば30fps程度であり、この場合時間的に隣接するフレーム画像の撮影時間差は、0.03秒程度である。これを人間の歩行動作の速さと比較すると非常に速く、隣接するフレーム画像内での姿勢変化はないと考えられる。
このように同一時刻の概念は、追跡対象の動く早さと、フレーム画像の撮影間隔の対比により規定され、撮影間隔での歩行状態sの変化が同定処理に実質的に影響を与えない範囲内である時間差は、同一時刻と考えられる。
【0056】
これにより、最新のフレーム画像と1つ前のフレーム画像は、ほぼ同一時刻に撮影した画像と考えられ、最新のフレーム画像から計算した歩行状態s1と、1つ前のフレーム画像から計算した歩行状態s2が、同一人物によるものであった場合、これらの差は非常に小さいことが期待できる。
【0057】
そこで、本実施形態では、歩行状態s1、s2の差を式(2)で示したユーグリッド距離Uで表し、両歩行状態の人物が同一人物である確率probを式(3)で定義した。
式(2)で示したユーグリッド距離Uが小さいほど歩行状態s1、s2の差が小さく、両フレーム画像での歩行者9の姿勢が近くなり、同一人物である可能性が高くなる。
そして、式(3)によれば、ユーグリッド距離Uが小さいほど確率が1に近づいて同一人物である確率が高まり、その近づき方を定数γによって調節することができる。
両人物が同一であると同定判断するための確率の閾値と定数γは、実験により適当な値を設定する。
【0058】
変形例として、歩行状態s1、s2の内積を用いて人物同定することも可能である。
例えば、歩行状態s1、s2の大きさが、それぞれ1となるように規格化して内積を計算すると、歩行状態s1、s2の距離を内積によって-1から1までの値で測量することができる。内積計算は、計算機で容易に計算できるため、これを用いることも考えられる。
これらは、一例であって、他の計算式によって人物同定を行ってもよい。
【0059】
以上の例では、時間的に隣接する2つのフレーム画像での歩行状態について説明したが、実質的に同一時刻と考えられる範囲内で時間的に前後したフレーム画像であれば、間欠的に取得したフレーム画像で解析可能である。
このように、歩行追跡装置1は、実質的に同一時刻での歩行状態sを抽出して比較するため、歩行者9が方向を変えたり歩調を変化させたりしても、これに追随して追跡することができる。
【0060】
図9は、実験結果を説明するための図である。
図9(a)の左図は、歩行方向dの実験結果を表したグラフである。
横軸は実線31で示したグランドトゥルースを表しており、縦軸は、実際に動画から計算した歩行者の歩行方向dの予測値(MLP16が出力した値)の分布(縦線)を表している。
グランドトゥルースとは、機械学習の精度を評価するための比較用のデータである。
図に示したように、予測値は、グランドトゥルース上に分布しており、高い精度で歩行方向dを予測することができている。
【0061】
図9(a)の右図は、歩行段階pの実験結果を表したグラフである。
同様に、実線32でグランドトゥルースを表し、縦線で予測値の分布を表している。歩行方向dに比べると、予測値のばらつきが若干広がるものの、予測値は、概ねグランドトゥルース上に分布しており、高い精度で歩行段階pを予測することができている。
【0062】
図9(b)は、これら実験による歩行方向d、歩行段階p、及び歩行状態sのRMSEを示した表である。
RMSE(Root Mean Square Error:二乗平均平方根誤差)は、式(4)で表され、グランドトゥルース(yobs、i)と予測値(ypred、i)とのずれの二乗の総和の平均の平方根である。この値が小さいほどMLP16の性能が良く、予測精度が高いことを意味している。
【0063】
表に示したように、歩行方向d、歩行段階p、及び歩行状態sのRMSEは、それぞれ、0.110、0.229、0.179となり、これらは、十分に実用に耐える値である。
なお、表では、歩行方向dと歩行段階pについて、平均誤差をベクトルの角度に換算した値も併記してあり、それぞれ、6.3°、13.1°である。
【0064】
図10は、歩行追跡装置1が行う歩行追跡処理を説明するためのフローチャートである。
以下の処理は、記憶部10に記憶した歩行追跡プログラムに従ってCPU2が行うものである。
まず、CPU2は、カメラ8が撮影した動画のフレーム画像を取得してRAM4に記憶する(ステップ5)。
【0065】
次に、CPU2は、ステップ5でRAM4に記憶したフレーム画像において、矩形によって人物検出を行い、これによって追跡対象となる歩行者9を設定する(ステップ10)。
人物検出で複数の歩行者9、9、・・・が検出された場合は、これら全員を追跡対象としてもよいし、これから選択した単数、又は複数の歩行者9、9、・・・を追跡対象としてもよい。複数の歩行者9、9、・・・を追跡対象とする場合は、個々の歩行者9の追跡を並列処理にて同時に行う。
また、追跡対象とする歩行者9を選択する場合は、何らかのアルゴリズムに従って自動的に選択してもよいし、手動で選択してもよい。
【0066】
次に、CPU2は、追跡対象として設定した歩行者9の外見情報を取得してRAM4に記憶する(ステップ15)。
複数の歩行者9、9、・・・を追跡対象として設定した場合は、それぞれの歩行者9について外見情報を取得する。以下同様に、複数の歩行者9、9、・・・を追跡する場合は、歩行者ごとに処理する。
【0067】
次に、CPU2は、歩行者9の骨格情報15を抽出してMLP16に入力することにより歩行状態を取得し、これをRAM4に記憶する(ステップ20)。
以上の外見情報と歩行状態が、追跡に用いる初期値となり、以降の動作で外見情報と歩行状態を連続的に追跡していく際の起点となる。
【0068】
次に、CPU2は、カメラ8の撮影した動画から次のフレーム画像を取得してRAM4に記憶する(ステップ25)。
次に、CPU2は、外見情報計算処理を行って、式(1)右辺第1項の外見情報による確率を計算してRAM4に記憶する(ステップ30)。
【0069】
CPU2は、この外見情報による確率の計算を、例えば、次のようにして行う。
まず、CPU2は、ステップ25でRAM4に記憶したフレーム画像から歩行者9を人物検出し、その外見情報を取得してRAM4に記憶する。
そして、CPU2は、ステップ15でRAM4に記憶した1つ前のフレーム画像から取得した外見情報を読み取り、それを今回記憶した外見情報と比較して、その類似度によって同一人物である確率を計算する。
この計算は、一例であって、外見情報を用いて一般的に行われている他の方法を用いてもよい。
【0070】
次に、CPU2は、歩行状態計算処理を行って、ステップ25でRAM4に記憶したフレーム画像による歩行状態を計算してRAM4に記憶すると共に、式(1)右辺第2項の歩行状態による確率を計算してRAM4に記憶する(ステップ35)。
次に、CPU2は、ステップ30で記憶した外見情報による確率とステップ35で記憶した歩行状態による確率をRAM4から読み出し、これらを式(1)に代入して、歩行者9が同一人物である確率を計算してRAM4に記憶する。
【0071】
そして、CPU2は、同一人物である確率が所定の閾値以上である場合は、今回のフレーム画像から検出した人物が、追跡対象の歩行者9であると同定する(ステップ40)。
同定により、ステップ25でRAM4に記憶したフレーム画像での追跡が成功したことになる。
【0072】
確率が閾値未満であった場合、CPU2は、今回の判定はスキップして、次回のフレーム画像で再度判定を試みるとか、検索した人物が複数いる場合は、歩行者9に近接する人物が歩行者9である可能性があるため、これについて判定するとか、あるいは、アラームを発して処理を終了するなど、何らかの処理を行う。
【0073】
追跡を続行する場合(ステップ45;Y)、CPU2は、ステップ25に戻って次のフレーム画像について判定を行う。この場合は、前回にステップ30、35でRAM4に記憶した外見情報と歩行状態を用いて判定を行う。
一方、追跡を続行しない場合(ステップ45;N)、CPU2は、処理を終了する。
【0074】
図11は、ステップ35(
図10)の歩行状態計算処理を説明するためのフローチャートである。
まず、CPU2は、矩形領域によって人物検出した歩行者9から骨格情報15を抽出してRAM4に記憶する(ステップ60)。
CPU2は、例えば、矩形領域によって切り出した画像におけるJ0~J24の座標値によって骨格情報15を構成する。
【0075】
次に、CPU2は、ステップ60でRAM4に記憶した骨格情報15をMLP16に入力し(ステップ65)、次いで、MLP16によって計算した歩行状態s1を取得してRAM4に記憶する(ステップ70)。
次に、CPU2は、前のフレーム画像で取得した歩行状態s2をRAM4から読み出して取得する(ステップ75)。
【0076】
そして、CPU2は、ステップ70で記憶した歩行状態s1(今回のフレーム画像での歩行状態)をRAM4から読み出して取得し、これとステップ75で読み出した歩行状態s2(1つ前のフレーム画像での歩行状態)を
図8の式(3)に代入して歩行状態による確率を計算し、これをRAM4に記憶する(ステップ80)。
【0077】
[第2実施形態]
第1実施形態では、例えば、OpenPoseやPoseNetなどで用いられている骨格検出可能な手法を利用して歩行者9の姿勢を算出した。
しかし、障害物の存在や人とのすれ違いなど、環境によっては歩行者9の一部が隠れによって観測できず、骨格座標が部分的にしか検出できない場合があり、このようなときは歩行状態の推定が困難となる場合がある。
【0078】
そこで、第2実施形態では、隠れによって骨格情報15の一部が観測できない学習データを人為的に作成し、これをMLP16に入力して隠れを含めた学習を行った。
これにより、隠れによって未検出のジョイントがあっても頑健な歩行状態の推定を実施することができる。
【0079】
図12は、隠れを有する学習データを説明するための図である。
本実施形態では、骨格情報15の一部の領域に含まれるジョイントを未検出に設定することにより、隠れによって未検出となったジョイントを含む学習データを用意した。
例えば、図に示した領域35を隠すと右頭部が未検出となった骨格情報15が得られ、領域36を隠すと左手が未検出となった骨格情報15が得られ、領域37を隠すと右足が未検出となった骨格情報15が得られる。
【0080】
このように骨格情報15を部分的に隠すことにより、骨格の先端領域から中心領域に向けて骨格情報が欠如するように、また、隠れ領域の面積が全面積の0~80%の間となるように隠れ領域を設定した学習データを多数用意した。
骨格の先端から骨格の中心に向けて領域が隠れるようにしたのは、歩行中には手足などの四肢や片半身が隠れる場合が多いためである。
【0081】
本実施形態では、全身の骨格情報15に加えて、このようなランダムな位置に隠れ(未検出ジョイント)を発生させた骨格情報15の学習データをMLP16に学習させた。
このように骨格の先端領域から中心領域に向けて骨格情報が欠如するように、全身の骨格情報の少なくとも一部の領域から構成された学習データを用いて学習したMLP16を用いて実験したところ、全身の骨格情報15がある場合に加えて、隠れがある場合でも歩行状態を高い精度で予測することができた。
実験結果は、第3実施形態において、第1~第3実施形態での実験結果を比較する形で説明する。
【0082】
[第3実施形態]
本実施形態では、骨格情報15を上半身・下半身などの部分領域に分割して、それぞれの部分領域を個別に学習したMLP16を用意し、これらによる結果を統合して歩行状態を推定する。
【0083】
図13は、部分領域を説明するための図である。
本実施形態では、図の破線で示したように、骨格情報15を、全身(R0)、右半身(R1)、左半身(R2)、上半身(R3)、下半身(R4)の5領域に分類し、領域R0~領域R4の各領域について隠れありの学習を行った。以下、領域R1の骨格情報15を骨格情報(R1)などと記すことにする。
なお、この領域分割例は一例であって、更に多数の領域、あるいは少数の領域に分割してもよい。
【0084】
図14は、本実施形態に係るMLP16の全体構成を説明するための図である。
本実施形態ではMLPを6個用いるが、これらをMLP(R0)、MLP(R1)、MLP(R2)、MLP(R3)、MLP(R4)、MLP(重み)とする。
第2実施形態では、全身の骨格情報15や、ジョイントの一部が欠如し、未検出となった骨格情報15を多数用いてMLP16を学習させたが、本実施形態でも同じく、全身や隠れのある骨格情報15を用いて学習を行った。
【0085】
MLP(R0)は、骨格情報(R0)を用いて学習しており、骨格情報15を入力すると、領域R0に含まれるジョイントの座標値を用いて歩行状態を出力する。
同様に、MLP(R1)~MLP(R4)は、それぞれ骨格情報(R1)~骨格情報(R4)を用いて学習しており、骨格情報15を入力すると、それぞれ、領域R1~R4に含まれるジョイントの座標値を用いて領域別歩行状態を出力する。
このように、本実施形態では、隠れを含めた骨格情報15で領域ごとに歩行状態推定の学習を行った複数のMLPを並列に配置して使用する。
【0086】
このように、領域ごとに学習したMLPを用いると、隠れの発生した骨格情報15に対して、隠れの発生していない領域での推定が得意なMLPが存在するため、隠れに対する頑健性が向上する。
例えば、主に右半身のジョイントが検出された骨格情報15に関しては、右半身用のMLP(R1)での推定値の精度が高く、左半身用のMLP(R2)での推定値は、精度が高くないと予想される。また、下半身用の領域R4など、他の領域での推定値も、MLP(R1)ほどではないものの、MLP(R2)よりは、ある程度確かであると思われる。
【0087】
この場合、MLP(R1)による歩行状態の重み付けを最も大きく、MLP(R2)による歩行状態の重み付けを最も小さく、他のMLPによる歩行状態を、その間で適度に重み付けし、これらを合算すると、最も確からしい歩行状態を求めることができる。
MLP(重み)は、骨格情報15の隠れのパターンに対して、このようなMLP(R0)~MLP(R4)による領域別歩行状態の適切な重み付けを学習している。
【0088】
隠れのパターンは、検出フラグによって与えられる。検出フラグは、各ジョイントに対して、例えば、検出したものを1で表し、未検出のものを0で表したフラグ情報である。
主に右半身のジョイントが検出された骨格情報15に関しては、その領域あたりのフラグが主に1になるなど、ジョイントの検出/未検出のパターンを検出フラグで表すことができる。
【0089】
MLP(重み)の学習は、骨格情報15によってMLP(R0)~MLP(R4)が出力した各領域別歩行状態と、骨格情報15から取得した検出フラグをMLP(重み)に入力し、これによってMLP(重み)が出力した歩行状態と正解の歩行状態の誤差が小さくなるようにMLP(重み)の各パラメータを調節することにより行った。
【0090】
このように調節されたMLP(重み)は、検出フラグの各パターンに従って、MLP(R0)~MLP(R4)が出力した領域別歩行状態を、検出フラグに基づいて動的に重み付けして合成し(例えば、単純に加算して)、最終的な推定結果となる歩行状態を出力する。
上述したように、ニューラルネットワーク(MLP(R0)~MLP(R4)、MLP(重み))は、骨格の領域ごとに学習した複数の領域ネットワーク(MLP(R0)~MLP(R4))と、当該領域ネットワークのそれぞれの出力を、骨格情報の欠如に応じて重み付けする重み付けネットワーク(MLP(重み))と、によって歩行状態を出力している。
【0091】
図15は、本実施形態における歩行状態計算処理を説明するためのフローチャートである。
図11と同じステップには同じ番号を付して説明を簡略化する。
まず、CPU2は、矩形領域によって検出した歩行者9から骨格情報15を抽出してRAM4に記憶する(ステップ60)。
次に、CPU2は、当該記憶した骨格情報15で、ジョイントの検出/未検出を調べてて検出フラグを生成し、これをRAM4に記憶する(ステップ105)。
【0092】
次に、CPU2は、ステップ60で記憶した骨格情報15を分割して骨格情報(R0)~骨格情報(R4)を生成し、これらをRAM4に記憶する(ステップ110)。
次に、CPU2は、ステップ110でRAM4に記憶した領域別の骨格情報を、それぞれ対応する領域別のMLP(R0)~MLP(R4)に入力する(ステップ115)。
次に、CPU2は、MLP(R0)~MLP(R4)が出力した領域別歩行状態を取得してRAM4に記憶する(ステップ120)。
【0093】
次に、CPU2は、ステップ120でRAM4に記憶した領域別歩行状態と、ステップ105でRAM4に記憶した検出フラグをMLP(重み)に入力する(ステップ125)。
そしてCPU2は、MLP(重み)によって計算した歩行状態s1を取得してRAM4に記憶する(ステップ70)。
【0094】
次に、CPU2は、前のフレーム画像で取得した歩行状態s2をRAM4から読み出して取得する(ステップ75)。
そして、CPU2は、ステップ70で記憶した歩行状態s1とステップ75で読み出した歩行状態s2を用いて歩行状態による確率を計算し、これをRAM4に記憶する(ステップ80)。
以上のように、第3実施形態では、各領域の学習モデルにより歩行状態を推定し、各ジョイントの検出/未検出により、動的に各領域の推定結果に重み付けを付与して歩行状態を算出することができる。
【0095】
図16は、第1実施形態、第2実施形態、及び第3実施形態による学習モデルの精度を比較した実験結果を説明するための図である。
第1実施形態、第2実施形態、第3実施形態で行った処理形態を、それぞれ、隠れ未学習モデル、隠れ学習モデル、領域分割モデルと呼ぶことにする。
実験では、テストデータの未検出ジョイントの割合rを変化させることにより、隠れに対する頑健性を評価した。
【0096】
各モデルの評価は、
図16(a)のグラフのようになった。
縦軸はRMSEを表し、横軸は未検出ジョイントの割合rを示している。ジョイントの未検出(隠れ)割合は、最大80%とし、20%間隔で測定を行った。RMSEが小さいほど精度が高いことを示している。具体的な数値は、
図16(b)の表に示した通りである。
【0097】
グラフ中の実線41、42、43は、それぞれ、隠れ未学習モデル、隠れ学習モデル、領域分割モデルを表している。
グラフから分かるように、隠れがない場合(r=0)は、どのモデルも高い精度を示しており、隠れ未学習モデルが他のモデルよりも若干よい精度を示している。
しかし、隠れ未学習モデルは、隠れが生じた場合(0<r≦0.8)、精度が大幅に低下し、r=0.8では、RMSEが1.0近くまで達している。
【0098】
一方、隠れ学習モデルと領域分割モデルは、隠れが生じた場合でも精度の低下が軽減されており、隠れを含む学習の効果が現れている。
特に、r=0.8においては、領域分割モデルは、隠れ学習モデルよりも10%近く高い精度を示した。
【0099】
表に示したように、0≦r≦0.8で総合的に評価した場合、領域分割モデル(RMSE=0.316)、隠れ学習モデル(RMSE=0.353)、隠れ未学習モデル(RMSE=0.794)の順で評価が高かった。
このように、隠れ学習モデルと領域分割モデルは、隠れに対して頑健な状態推定を行うことができ、領域分割モデルは特に効果が高いことがわかった。
【0100】
[第4実施形態]
本実施形態では、複数のカメラの映像に写った歩行者9をカメラ間で対応づけて追跡する場合について説明する。
この例では、例えば、イベント会場などに設置した複数台のカメラ8、8、・・・の動画データを通信ネットワーク11経由で歩行追跡装置1に送信する。
このように、歩行追跡装置1の有する動画取得手段は、複数のカメラで撮影した被写体の複数の動画を取得する。
そして、これらカメラ8、8、・・・の映像の重なったエリアにおいて、複数のカメラによる同一時刻のフレーム画像で歩行者9を同定する。
これにより、複数のカメラ映像を連携させて歩行者9を追跡することができる。
【0101】
あるいは、カメラ8をステレオカメラとして自律走行ロボットに搭載することもできる。
この場合、ロボットは、右フレーム画像と左フレーム画像で歩行者9を対応させて歩行者9を立体視しながら、これによって得られる3次元情報を用いて歩行者9を追跡する。
【0102】
このように複数台のカメラ8、8、・・・を用いる場合、カメラの取付位置などの影響によって歩行者9の見え方が各映像で異なる。外見情報は、これによる影響を受けやすいため、歩行状態を付加情報として用いることは、誤った対応付けを抑止するために特に有効である。
【0103】
また、一般の複数カメラによる追跡では、歩行者の座標値を歩行者の特定に用いるため、各カメラの相対位置や姿勢を正確に設定するキャリブレーションが必要であるが、歩行追跡装置1は、歩行者9に固有の歩行状態を手がかりとして同定を行うため、正確なキャリブレーションは必ずしも必要ない。
そのため、固定カメラの設置が容易であるほか、複数のドローンに搭載したカメラを配置、移動させながら歩行者9を追跡することも可能である。
【0104】
本実施形態では、2台のカメラ8a、8bで、それぞれ同時刻に撮影したフレーム画像aでの歩行者9と、フレーム画像bでの歩行者9を対応づける場合について説明する。
ここで、カメラ8aとカメラ8bは、異なる位置から歩行者9を撮影するため、カメラ8a、8bから見た歩行方向の角度θが異なる。そのため、例えば、カメラ8bによるD平面の座標軸がカメラ8aによる座標軸に対してΔθの角度を成すとき、カメラ8bによる歩行方向からΔθを減算して歩行状態を補正するなどして、両カメラ8の歩行方向を揃えて比較する。
なお、歩行段階の位相角φは、両カメラ8に共通である。また、歩行状態を歩行段階から成る2次元ベクトルで定義し、θによらない歩行状態を定義することもできる。
【0105】
図17は、歩行状態による対応付け手順を説明するためのフローチャートである。
図11と同じステップには、a、bを付して処理対象となるフレーム画像のa、bを区別しながら説明を簡略化する。
まず、CPU2は、フレーム画像aから骨格情報15を抽出して(ステップ60a)、MLP16に入力し(ステップ65a)、MLP16が出力した歩行状態s1を取得してRAM4に記憶する(ステップ70a)。
【0106】
次に、CPU2は、フレーム画像bから骨格情報15を抽出して(ステップ60b)、MLP16に入力し(ステップ65b)、MLP16が出力した歩行状態s2を取得してRAM4に記憶する(ステップ70b)。
【0107】
次に、CPU2は、ステップ70aでRAM4に記憶した歩行状態s1と、ステップ70bでRAM4に記憶した歩行状態s2を用いて式(3)(
図8の式(3))による歩行状態による確率を計算し、これをRAM4に出力する(ステップ80)。
【0108】
また、CPU2は、外見情報についても、フレーム画像a、bについて外見情報による確率を計算し、式(1)に従って、同一人物である確率を計算する。カメラのキャリブレーションが行われている場合は、外見情報と歩行状態に加えて、歩行者9の座標値を用いて同定することもできる。
このように、歩行追跡装置1が有する同定手段は、複数の動画のフレーム画像間で被写体を対応させることにより被写体を同定している。
【0109】
以上、異なるカメラ8の映像間で歩行者9を同定する場合について説明したが、本実施形態に、第1実施形態~第3実施形態の技術を組み合わせることも可能である。
この場合、カメラ8aによる時間的に隣接するフレーム画像a1、a2で歩行者9を同定し、カメラ8bによる時間的に隣接するフレーム画像b1、b2で歩行者9を同定すると共に、更に、同一時刻のフレーム画像a1、b1間(あるいは、フレーム画像a2、b2間、撮影時刻が近ければフレーム画像a1、b2などの組み合わせも可能)で歩行者9を同定して対応づける。
ここで、2台のカメラ8a、8bで歩行者9を同定する場合について説明したが、3台以上のカメラ8で撮影する場合も同様にして歩行者9の同定を行うことができる。
【0110】
以上、各実施形態について説明したが、これらは、歩行を検出するという要素技術であるため、様々な技術的、及びビジネス的な展開が考えられる。
歩行追跡装置1を自律走行ロボットに搭載する場合、例えば、ホテルで顧客を追尾しながら顧客の荷物を運んだり、イベント会場の入り口で入場者を追跡して検温したり、あるいは、工場で資材を積載した状態で担当者の後についていったり、といった用途に用いることができる。
【0111】
監視カメラ映像を用いる場合、例えば、店内のカメラと商店街に設置したカメラを連携させて、店に忘れ物をした顧客を追跡して担当者が忘れ物を届けたり、迷子の子供を追跡して保護したりなど、色々な用途に用いることができる。
また、歩行追跡装置1は、未来に向かって歩行者9を追跡するほか、撮影した動画を逆に辿ることにより(即ち、動画を逆に再生して)、歩行者9が歩行してきた経路を過去に向かって追跡することもできる。
これにより、ある店で商品を購入した顧客の歩行経路を過去に向かって追跡し、どのような動線を経て当該店にやってきたかを調べる、といったマーケティング分析に用いることもできる。
【0112】
更に、歩行は歩行者の健康状態を反映するため、医療分野への展開が考えられる。
例えば、リハビリで歩行訓練している患者の歩行を撮影して歩行状態の時間的推移を計測し、歩行方向や歩行周期のばらつきなどを統計学的手法を用いて解析して訓練の進捗状況を把握する、といった歩行診断装置としての利用方法が考えられる。
【0113】
この場合、歩行追跡装置1は、記憶部10に記憶した歩行状態の時間的変化を統計的な処理を施すなどして表示部5で提示する。
このように、歩行追跡装置1は、ニューラルネットワークが出力した歩行状態の時間変化を提示する提示手段を備えている。
【0114】
また、健康診断の際に高齢者に歩行してもらって歩行状態を保存しておき、その経年変化を観察することにより、老化の進行具合を観察したり、病気の早期発見を行ったりすることも考えられる。
更に、スマートフォンなどを用いて患者に自宅で歩行するところを動画撮影してもらい、これを病院に設置した歩行追跡装置1に送信して、病院で歩行状態を解析するといったような、遠隔診断も可能である。
【0115】
また、発明者の実験によると、歩行追跡装置1は、歩行状態を継続的に観察するため、歩行の異常を検知する能力に優れている。
そこで、歩行追跡装置1は、異常歩行検出装置として用いることが可能である。
例えば、ホテルのロビーで異常歩行を検出した場合、顧客が重い荷物を運んでいる場合や気分が悪くなった場合などが考えられ、これを異常歩行検出装置で検出して早期の支援を行うことができる。
あるいは、重い荷物を運んでいる顧客の歩行状態を学習させておき、事務所に設置した異常歩行検出装置でこれを検出した場合は、歩行追跡装置1を搭載した自律走行ロボットが顧客の場所に急行して荷物を受け取り、顧客の歩行を追跡しながら顧客の荷物を搬送する、といった運用も考えられる。
【0116】
更に、歩行追跡装置1は、歩行状態を付加情報として用いるため、同じ外見をした集団で歩行者9を追跡する場合に特に効果を発揮する。
これは、例えば、同じ制服を着用した高校生などの集団が団体旅行している場合に適用できる。
また、同じ外見の集団が同一の歩行状態である場合は行進を行っている、とか、人々の歩行状態が一斉に変化して一方向に急激に移動を始めた場合は、何らかの緊急の事象が起こって人々が避難行動を始めた、などと歩行が行われているシーンを推論することも可能である。
【0117】
更に、骨格情報によって姿勢を把握できればよいので、歩行追跡装置1を動物に適用することも可能である。特に、群れで暮らす動物は外見が同じため、歩行追跡装置1の歩行状態による追跡が効果的である。
例えば、近年、農業分野や牧畜分野のIT化が急速に進んでおり、牧羊の数理解析モデルの研究に基づく牧羊ロボットの開発が行われている。
【0118】
羊は外見が同じなので、外見で羊の個体を識別するのは困難であるが、歩行状態はばらばらであるので歩行追跡装置1で認識・追跡することができる。
これにより、例えば、複数の羊オーナーから集めた羊の群れを牧畜しているところを複数のドローンで撮影し、オーナーごとに個別の羊を追跡して動画配信したり、あるいは、各羊を追跡しながら画像解析することにより食べた牧草の量を羊ごとに推定し、その代金をオーナーに課金する、といった新たなビジネスを生む可能性を秘めている。
【0119】
また、原理的には節足動物に対しても適用可能であり、蟻のような集団で行動する昆虫や蟹のような甲殻類に適用して、学術的な研究に利用することも考えられる。
これらは一例であって、歩行状態を用いた観察対象の同定は要素的な技術であるため、裾野の広い応用分野を有している。
【符号の説明】
【0120】
1 歩行追跡装置
2 CPU
3 ROM
4 RAM
5 表示部
6 入力部
7 通信制御部
8 カメラ
9 歩行者
10 記憶部
11 通信ネットワーク
15 骨格情報
16 MLP
17 歩行状態空間
31、32、41、42、43 実線
35、36、37 領域