(58)【調査した分野】(Int.Cl.,DB名)
前記行動特定部は、特徴量と人の行動を示す行動ラベルとを対応付けた行動ルールを参照して、前記特徴量計算部によって計算された前記特徴量に対応する行動ラベルを前記被写体者の行動を示す情報として取得する
請求項1から3までのいずれか1項に記載の行動特定装置。
前記行動特定部は、特徴量を入力として、人の行動を示す行動ラベルを出力する行動モデルに対して、前記特徴量計算部によって計算された前記特徴量を入力することにより、前記被写体者の行動を示す行動ラベルを取得する
請求項1から4までのいずれか1項に記載の行動特定装置。
【発明を実施するための形態】
【0008】
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る行動特定装置10の構成を説明する。
行動特定装置10は、コンピュータである。
行動特定装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0009】
プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
【0010】
メモリ12は、データを一時的に記憶する記憶装置である。メモリ12は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
【0011】
ストレージ13は、データを保管する記憶装置である。ストレージ13は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
【0012】
通信インタフェース14は、外部の装置と通信するためのインタフェースである。通信インタフェース14は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High−Definition Multimedia Interface)のポートである。
【0013】
行動特定装置10は、通信インタフェース14を介して、カメラ31と接続されている。カメラ31は、一般的な2D(Dimension)カメラであってもよいが、3Dカメラであってもよい。カメラ31として3Dカメラを用いることにより、奥行に関する情報も得られる。そのため、後述する処理において、人の関節の位置を適切に特定可能になる。
【0014】
行動特定装置10は、機能構成要素として、映像取得部21と、骨格情報取得部22と、特徴量計算部23と、行動特定部24とを備える。行動特定装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、行動特定装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、行動特定装置10の各機能構成要素の機能が実現される。
ストレージ13は、骨格情報データベース131と、特徴量データベース132との機能を実現する。
【0015】
図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
【0016】
***動作の説明***
図2及び
図3を参照して、実施の形態1に係る行動特定装置10の動作を説明する。
実施の形態1に係る行動特定装置10の動作手順は、実施の形態1に係る行動特定方法に相当する。また、実施の形態1に係る行動特定装置10の動作を実現するプログラムは、実施の形態1に係る行動特定プログラムに相当する。
【0017】
図2を参照して、実施の形態1に係る行動特定装置10の全体的な動作を説明する。
(ステップS11:映像取得処理)
映像取得部21は、カメラ31によって取得された映像データを取得する。映像取得部21は、映像データをメモリ12に書き込む。
【0018】
(ステップS12:骨格情報取得処理)
骨格情報取得部22は、ステップS11で取得された映像データに映った1人以上の人である被写体者それぞれを対象の被写体者として設定する。骨格情報取得部22は、対象の被写体者について、骨格の関節の位置を示す骨格情報を取得する。骨格情報取得部22は、取得した骨格情報は骨格情報データベース131に書き込む。
具体的には、骨格情報取得部22は、メモリ12から映像データを読み出す。骨格情報取得部22は、映像データに映った1人以上の被写体者それぞれを対象の被写体者に設定する。骨格情報取得部22は、対象の被写体者の骨格の関節の位置を特定し、被写体者と映像の撮影時刻とを判別可能なインデックスを付与して骨格情報を生成する。関節の位置は、座標値等によって表される。骨格情報取得部22は、生成した骨格情報を骨格情報データベース131に書き込む。
【0019】
骨格情報取得部22は、映像データを構成するある1つのフレームから特定された関節の位置を骨格情報に含めてもよいし、映像データを構成する複数のフレームから特定された関節の位置を骨格情報に含めてもよい。例えば、骨格情報取得部22は、ある時刻における骨格情報を特定する場合に、その時刻のフレームと、その時刻の前の直近数フレームとから関節の位置を特定してもよい。あるいは、骨格情報取得部22は、ある時刻における骨格情報を特定する場合に、その時刻のフレームと、その時刻の前後数フレームとから関節の位置を特定してもよい。
映像データに映る人の関節の位置の抽出方法としては、深層学習を用いる方法と、対象者の関節の位置に物理的にマーカを付け、マーカを識別することで関節を特定する方法等がある。
【0020】
(ステップS13:特徴量計算処理)
特徴量計算部23は、ステップS11で取得された映像データに映った1人以上の人である被写体者それぞれを対象の被写体者として設定する。特徴量計算部23は、ストレージ13に含まれる骨格情報データベース131から対象の被写体者についての骨格情報を取得し、取得された骨格情報を時系列に並べた時系列データから特徴量を計算する。特徴量計算部23は、特徴量を特徴量データベース132に書き込む。
ここで、時系列データは、例えば数秒といったある程度の長さをもった対象期間分の骨格情報を時系列に並べたデータであり、2つ以上の時刻における骨格情報を時系列に並べたデータである。
具体的な、骨格情報から特徴量を計算する処理については、後述する。
【0021】
(ステップS14:行動特定処理)
行動特定部24は、ステップS11で取得された映像データに映った1人以上の人である被写体者それぞれを対象の被写体者として設定する。行動特定部24は、ストレージ13に含まれる特徴量データベース132から、対象の被写体者の特徴量を取得し、取得した特徴量をもとに対象の被写体者の行動を特定する。
具体的には、行動特定部24は、特徴量データベース132から、対象の被写体者の特徴量を取得する。そして、行動特定部24は、特徴量からその人の行動を示す行動ラベルを出力する行動ルールを利用して、取得された特徴量から対象の被写体者の行動を特定する。行動ルールは、人の骨格情報から計算される特徴量と人の行動を示す行動ラベルとを対応付けたルールであり、事前にストレージ13に記憶されている。つまり、行動特定部24は、行動ルールに対して、人の骨格情報から計算された特徴量を入力することにより、行動ラベルが出力として得られる。行動特定部24は、行動ラベルをメモリ12に書き込む。
行動ラベルが示す行動は、例えば、「歩く」、「握手する」、「殴る」、「暴れる」といった行動である。
【0022】
行動特定部24が特徴量データベース132から取り出す特徴量は、ある1時刻で計算された1個ではなく、時系列に連続する複数の特徴量を取り出してもよい。そして、行動特定部24は、特徴量の変遷をもとに、対象の被写体者の行動を特定してもよい。
【0023】
図3を参照して、実施の形態1に係る特徴量計算処理(
図2のステップS13)を説明する。
(ステップS21:時系列データ取得処理)
特徴量計算部23は、現在時刻tからN時刻前までの対象の被写体者についての骨格情報を骨格情報データベース131から取得する。特徴量計算部23は、取得された骨格情報を時系列に並べたデータを時系列データとして設定する。
【0024】
(ステップS22:移動距離計算処理)
特徴量計算部23は、ステップS21で設定された骨格情報の時系列データにおいて、時系列に連続する2つの時刻の骨格情報間における対象の被写体者の骨格の各関節の移動距離を計算する。具体的には、特徴量計算部23は、各関節を対象として、2つの時刻の骨格情報間における対象の関節の位置の差分を計算することによって、対象の関節の移動距離を計算する。特徴量計算部23は、各関節の移動距離を要素とするベクトルあるいは行列を生成する。以下では、各関節の移動距離を要素とするベクトルが生成されたとして説明する。
【0025】
(ステップS23:運動量計算処理)
特徴量計算部23は、ステップS22で生成された、各関節の移動距離を要素とするベクトルを時間方向に合計する。つまり、特徴量計算部23は、各関節を対象として、対象の関節について計算された2つの時刻の間における移動距離を合計する。このようにして計算された値は、現在時刻tから過去時刻t−Nまでの時間幅Nにおける各関節の移動距離の総和である。そのため、この値は、時間幅Nにおける各関節の運動量とみなすことができる。
特徴量計算部23は、全関節の運動量を合計する、あるいは、平均値を取る等してスカラーとし、このスカラーを時間幅Nにおける被写体者の骨格全体の運動量とみなす。そして、特徴量計算部23は、この運動量を特徴量とする。なお、時間幅Nで運動量を除算した値は速度とみなすことができるが、この速度を特徴量としてもよい。
特徴量計算部23は、計算された特徴量に、現在時刻tをインデックスとして付与して、特徴量データベース132に書き込む。
【0026】
ここで、N=1のとき、ステップS13で扱われる骨格情報は、現在時刻及び1時刻前の骨格情報であり、2フレーム間の関節の移動距離が運動量及び速度そのものとなる。実施の形態1では、Nは、1以上の整数である。つまり、時系列データは、2つ以上の時刻における骨格情報を時系列に並べたデータである。なお、Nは、3以上であることが望ましく、さらに10以上のようにある程度の大きさを持っていることが望ましい。
【0027】
上記説明では、運動量又は速度はスカラーであった。しかし、特徴量計算部23は、全関節について運動量又は速度の合計又は平均値を取らずに、各関節の運動量又は速度を要素に持つベクトルデータを特徴量としてもよい。
【0028】
特徴量計算部23は、抽出された被写体者の骨格の関節のうち、任意の数の関節から特徴量を計算してもよい。あるいは、特徴量計算部23は、任意の数の関節分だけ計算された特徴量どうしを加算する又は平均を取る等して、特徴量を抽出した関節数よりも少ない数の特徴量を計算してもよい。
【0029】
特徴量を計算するにあたって、骨格情報のうちの一部の関節の位置が取得できない場合も起こり得る。この場合には、特徴量計算部23は、特徴量データベース132に記憶されている過去の特徴量をもとにする、又は、関節の位置が取得できた関節をもとにする等して、取得できなかった関節の位置又は取得できなかった関節に関する特徴量を補完してもよい。
補完の方法としては、関節の位置が取得できなかった時刻の特徴量を1時刻前の特徴量とする、又は、関節の位置が取得できなかった時刻の特徴量を過去数時刻分の特徴量の変位から線形補完して計算することが考えられる。あるいは、特徴量計算部23は、関節の位置が取得できた関節群全体の運動量から1関節当たりの運動量の平均値を計算し、関節の位置が取得できなかった関節の運動量としても、関節の位置が取得できなかった関節の周囲の関節から成り、関節の位置が取得できた関節群の運動量から1関節当たりの運動量の平均値を計算し、関節の位置が取得できなかった関節の運動量としてもよい。また、特徴量計算部23は、取得できなかった右膝の位置を左膝の位置で補完するというように、取得できなかった関節と左右で対になっている関節、あるいは連結する関節の位置で補完してもよい。
【0030】
***実施の形態1の効果***
以上のように、実施の形態1に係る行動特定装置10は、瞬間的な骨格の変位量を求める場合よりもある程度長い時間幅における骨格情報の時系列データから計算される骨格の運動量又は速度を用いて、被写体者の行動を特定する。これにより、人の向き又はオクルージョンによる一部身体の隠蔽等による被写体者の骨格の関節の誤抽出が発生した場合でも、正しく行動を判別できる可能性が高くなる。その結果、適切に行動を特定可能である。
【0031】
***他の構成***
<変形例1>
実施の形態1では、人の骨格情報から計算される特徴量と人の行動を示す行動ラベルとを対応付けた行動ルールを用いて、行動を特定した。しかし、行動ルールに代えて、ニューラルネットワーク等を用いて生成された学習済みのモデルである行動モデルが用いられてもよい。
行動ルールの代わりに用いられる行動モデルは、人の骨格情報と人の行動を示す行動ラベルとを組にして学習データとし、深層学習などによって構築される。つまり、行動モデルは、人の骨格情報から計算される特徴量を入力として与えると、行動ラベルが出力として得られるモデルである。
行動ルールの代わりに行動モデルが用いられる場合には、
図2のステップS14で行動特定部24は、骨格情報の時系列データから計算される特徴量を行動モデルに入力して、対象の被写体者の行動を示す情報として、行動ラベルを取得する。
【0032】
<変形例2>
実施の形態1では、行動ルールは、ストレージ13に記憶されると説明した。しかし、行動ルールは、行動特定装置10の外部の記憶装置に記憶されていてもよい。この場合には、行動特定装置10は、通信インタフェース14を介して、行動ルールにアクセスすればよい。
【0033】
<変形例3>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例3として、各機能構成要素はハードウェアで実現されてもよい。この変形例3について、実施の形態1と異なる点を説明する。
【0034】
図4を参照して、変形例3に係る行動特定装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、行動特定装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
【0035】
電子回路15としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路15で実現してもよいし、各機能構成要素を複数の電子回路15に分散させて実現してもよい。
【0036】
<変形例4>
変形例4として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【0037】
プロセッサ11とメモリ12とストレージ13と電子回路15とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【0038】
実施の形態2.
実施の形態2では、変形例1で説明した行動モデルの生成処理について説明する。
【0039】
***構成の説明***
図5を参照して、実施の形態2に係る学習装置50の構成を説明する。
学習装置50は、コンピュータである。
学習装置50は、プロセッサ51と、メモリ52と、ストレージ53と、通信インタフェース54とのハードウェアを備える。プロセッサ51は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0040】
プロセッサ51は、プロセッサ11と同様に、プロセッシングを行うICである。メモリ52は、メモリ12と同様に、データを一時的に記憶する記憶装置である。ストレージ53は、ストレージ13と同様に、データを保管する記憶装置である。ストレージ53は、ストレージ13と同様に、可搬記録媒体であってもよい。通信インタフェース54は、通信インタフェース14と同様に、外部の装置と通信するためのインタフェースである。
学習装置50は、通信インタフェース54を介して行動特定装置10と接続されている。
【0041】
学習装置50は、機能構成要素として、学習データ取得部61と、モデル生成部62とを備える。学習装置50の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、学習装置50の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ51によりメモリ52に読み込まれ、プロセッサ51によって実行される。これにより、学習装置50の各機能構成要素の機能が実現される。
【0042】
図5では、プロセッサ51は、1つだけ示されていた。しかし、プロセッサ51は、複数であってもよく、複数のプロセッサ51が、各機能を実現するプログラムを連携して実行してもよい。
【0043】
***動作の説明***
図6を参照して、実施の形態2に係る学習装置50の動作を説明する。
実施の形態2に係る学習装置50の動作手順は、実施の形態2に係る学習方法に相当する。また、実施の形態2に係る学習装置50の動作を実現するプログラムは、実施の形態2に係る学習プログラムに相当する。
【0044】
図5を参照して、実施の形態2に係る学習装置50が行動モデルを生成する動作を説明する。
(ステップS31:学習データ取得処理)
学習データ取得部61は、複数の時刻における人の骨格の関節の位置を示す骨格情報を時系列に並べた時系列データから計算された特徴量と、その人の行動とを関連付けた学習データを取得する。
例えば、学習データは、指定された行動を実際に行った人を撮像して得られた映像データから骨格情報を抽出し、抽出した骨格情報の時系列データから特徴量を計算することによって生成される。つまり、抽出された骨格情報の時系列データから計算された特徴量と、指定された行動とが関連付けられて学習データとされる。
【0045】
(ステップS32:モデル生成処理)
モデル生成部62は、ステップS31で取得された学習データを入力として、学習を行い、行動モデルを生成する。モデル生成部62は、行動モデルを行動特定装置10のストレージ13に書き込む。
実施の形態2では、モデル生成部62は、学習データを入力として、骨格情報の時系列データから計算される特徴量と行動との関係をニューラルネットワークに学習させる。例えば、モデル生成部62は、歩行時と走行時それぞれの骨格情報の時系列データから計算される一定時間幅における運動量を計算し、歩行時の運動量と走行時の運動量とを区別するための決定境界を学習させる。なお、特徴量として、運動量ではなく、速度が用いられる場合には、モデル生成部62は、歩行時と走行時それぞれの骨格情報から計算される一定時間幅における速度を計算し、歩行時の速度と走行時の速度とを区別するための決定境界を学習させればよい。
用いられるニューラルネットワークの構成はDNN(深層ニューラルネットワーク)と、CNN(畳み込みニューラルネットワーク)と、RNN(再帰型ニューラルネットワーク)といった周知のものでよい。
【0046】
***実施の形態2の効果***
以上のように、実施の形態2に係る学習装置50は、学習データに基づき、行動特定装置10が用いる行動モデルを生成する。これにより、適切な学習データを与えることで、行動特定装置10が用いる行動モデルの認識精度を高くすることができる。
【0047】
***他の構成***
<変形例5>
行動特定装置10は、行動モデルに代えて実施の形態1で説明した行動ルールを用いてもよい。
行動モデルに代えて行動ルールが用いられる場合には、
図5のステップS32でモデル生成部62は、行動モデルに代えて行動ルールを生成する。具体的には、モデル生成部62は、ステップS31で取得された各学習データが示す、人の骨格の関節の位置を示す骨格情報の時系列データから計算される特徴量と、その人の行動を示す行動ラベルと対応付けたデータベースを行動ルールとして生成する。
【0048】
<変形例6>
実施の形態2では、各機能構成要素がソフトウェアで実現された。しかし、変形例6として、各機能構成要素はハードウェアで実現されてもよい。この変形例6について、実施の形態2と異なる点を説明する。
【0049】
図7を参照して、変形例6に係る学習装置50の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、学習装置50は、プロセッサ51とメモリ52とストレージ53とに代えて、電子回路55を備える。電子回路55は、各機能構成要素と、メモリ52と、ストレージ53との機能とを実現する専用の回路である。
【0050】
電子回路55としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路55で実現してもよいし、各機能構成要素を複数の電子回路55に分散させて実現してもよい。
【0051】
<変形例7>
変形例7として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【0052】
プロセッサ51とメモリ52とストレージ53と電子回路55とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【0053】
実施の形態3.
実施の形態3は、実施の形態1に係る特徴量計算部23で計算される特徴量が動作の軌跡である点が実施の形態1と異なる。実施の形態3では、この異なる点を説明し、同一の点については説明を省略する。
【0054】
***動作の説明***
図8を参照して、実施の形態3に係る行動特定装置10の動作を説明する。
実施の形態3に係る行動特定装置10の動作手順は、実施の形態3に係る行動特定方法に相当する。また、実施の形態3に係る行動特定装置10の動作を実現するプログラムは、実施の形態3に係る行動特定プログラムに相当する。
【0055】
図8を参照して、実施の形態3に係る特徴量計算処理(
図2のステップS13)を説明する。
(ステップS41:時系列データ取得処理)
特徴量計算部23は、現在時刻tからN時刻前までの対象の被写体者についての骨格情報を骨格情報データベース131から取得する。特徴量計算部23は、取得された骨格情報を時系列に並べたデータを時系列データとして設定する。
【0056】
(ステップS42:軌跡計算処理)
特徴量計算部23は、ステップS41で生成された対象の被写体者の骨格情報の時系列データが表す、現在時刻tから過去時刻t−N間の各時刻における被写体者の骨格の関節の位置の情報を時系列に並べたベクトルあるいは行列を特徴量として生成する。以下では、関節の位置の情報を時系列に並べたベクトルが生成されたとして説明する。このようにして生成されたベクトルは、時系列に並んだ骨格の関節の位置の情報を要素として持つ。そのため、時刻tから時刻t−Nにおける関節の移動経路、つまり動作の軌跡を表す。
このとき、関節の位置の情報は、2次元画像内から抽出された骨格情報を対象としていれば、水平方向の位置を表す座標値xと垂直方向の位置を表す座標値yとを用いて(x,y)といった具合に表される。
特徴量計算部23は、特徴量を計算するにあたって、抽出された被写体者の骨格の関節のうち、任意の数の関節に対して特徴量を計算してもよい。また、特徴量計算部23は、正の整数M,mに関して、骨格情報がM次元の関節の位置情報を持っていた場合、m≦Mとなるようなm個の座標値を利用して特徴量を計算してもよい。
【0057】
***実施の形態3の効果***
以上のように、実施の形態3に係る行動特定装置10は、実施の形態1に係る行動特定装置10と同様に、瞬間的な骨格の変位量を求める場合よりも比較的長い時間幅における骨格情報の時系列から計算される動作の軌跡を用いて、被写体者の行動を特定する。これにより、骨格情報の誤抽出が一時的に発生した場合でも、正しく行動を判別できる可能性が高くなる。その結果、その結果、適切に行動を特定可能である。
【0058】
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
骨格情報取得部(22)は、映像データに映った1人以上の人である被写体者それぞれを対象として、対象の被写体者について、骨格の関節の位置を示す骨格情報を取得する。特徴量計算部(23)は、骨格情報取得部(22)によって取得された、対象期間における対象の被写体者についての骨格情報を時系列に並べた時系列データを用いて、対象の被写体者の特徴量を計算する。行動特定部(24)は、特徴量計算部(23)によって計算された特徴量を入力として、対象の被写体者の行動を特定する。