(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023172127
(43)【公開日】2023-12-06
(54)【発明の名称】情報推定装置及び情報推定方法
(51)【国際特許分類】
G06N 3/08 20230101AFI20231129BHJP
G06N 3/04 20230101ALI20231129BHJP
【FI】
G06N3/08
G06N3/04
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022083725
(22)【出願日】2022-05-23
(71)【出願人】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(74)【代理人】
【識別番号】100093067
【弁理士】
【氏名又は名称】二瓶 正敬
(72)【発明者】
【氏名】安達 仁吾
(57)【要約】
【課題】推定結果の正解率を落とさずに維持しながら、ニューラルネットワークの計算処理の負荷を軽減させる。
【解決手段】コンボリューション層12と、プーリング層13と、全結合層14とを少なくとも有して構成されているニューラルネットワークの学習を行って学習済みニューラルネットワークを設定した後、コンボリューション層12から出力されたデータが全結合層14に供給されるように接続して、学習済みニューラルネットワークに学習データを入力し、全結合層14から出力されるデータをヒートマップとして取得する。収集リスト作成部30は、正解ラベルに対応する正解ヒートマップを抽出して収集リストを作成する。相関値計算部50は、収集リストから各モデル要素同士の相関を示す相関値を計算する。主要モデル要素抽出部60は、相関値が所定の閾値以下であり、他のモデル要素との相関が低い複数の主要モデル要素を抽出する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数のモデル要素からなる推定対象モデルにおいて、前記複数のモデル要素の各パラメータが時間に従って変化する時系列データと、当該時系列データに付与された正解ラベルとがペアになった学習データに基づいて学習を行うことが可能なニューラルネットワークを備えた情報推定装置であって、
前記ニューラルネットワークは、
供給されたデータを、前記複数のモデル要素の各パラメータ同士が時間的および空間的に影響を及ぼし合う効果を表現するデータに変換するコンボリューション層と、
供給されたデータを、特定の特徴量次元からなるデータに変換するプーリング層と、
供給されたデータを、前記推定対象モデルの状態の分類数の次元からなるデータに変換する全結合層と、
を少なくとも有して構成されており、
前記コンボリューション層から出力されたデータが前記プーリング層に供給され、前記プーリング層から出力されたデータが前記全結合層に供給されるように接続して、前記学習データを用いて前記ニューラルネットワークの学習を行って学習済みニューラルネットワークを設定した後に、前記コンボリューション層から出力されたデータが前記全結合層に供給されるように接続して、前記学習済みニューラルネットワークに学習データを入力し、前記全結合層から出力されるデータをヒートマップとして格納するヒートマップ格納部と、
前記ヒートマップ格納部に格納されたヒートマップから、正解ラベルに対応する正解ヒートマップを抽出して蓄積する収集リストを作成する収集リスト作成部と、
前記収集リスト作成部で作成された前記収集リストから、各モデル要素同士の相関を示す相関値を計算する相関値計算部と、
前記相関値計算部で計算された前記相関値が所定の閾値以下であり、他のモデル要素との相関が低い複数のモデル要素を複数の主要モデル要素として抽出する主要モデル要素抽出部と、
を有し、
前記主要モデル要素抽出部で抽出された前記複数の主要モデル要素からなる推定対象モデルを再構成し、再構成された推定対象モデルを用いて前記ニューラルネットワークを再学習して推定処理を行うように構成されている情報推定装置。
【請求項2】
前記収集リスト作成部は、各時間フレームに含まれるヒートマップ値の合計値を計算して、前記ヒートマップ値の合計値が所定の閾値以上である各時間フレームのヒートマップ値のみを含む収集リストを作成するように構成されている請求項1に記載の情報推定装置。
【請求項3】
前記モデル要素として骨格の関節点が設定された骨格モデル、または、前記モデル要素としてシステム環境から得られる事象を表すノードが設定されたグラフモデルが、前記推定対象モデルとして用いられる請求項1又は2に記載の情報推定装置。
【請求項4】
複数のモデル要素からなる推定対象モデルにおいて、前記複数のモデル要素の各パラメータが時間に従って変化する時系列データと、当該時系列データに付与された正解ラベルとがペアになった学習データに基づいて学習を行うことが可能なニューラルネットワークを備えた情報推定装置における情報推定方法であって、
前記ニューラルネットワークは、
供給されたデータを、前記複数のモデル要素の各パラメータ同士が時間的および空間的に影響を及ぼし合う効果を表現するデータに変換するコンボリューション層と、
供給されたデータを、特定の特徴量次元からなるデータに変換するプーリング層と、
供給されたデータを、前記推定対象モデルの状態の分類数の次元からなるデータに変換する全結合層と、
を少なくとも有して構成されており、
前記コンボリューション層から出力されたデータが前記プーリング層に供給され、前記プーリング層から出力されたデータが前記全結合層に供給されるように接続して、前記学習データを用いて前記ニューラルネットワークの学習を行って学習済みニューラルネットワークを設定するステップと、
前記学習済みニューラルネットワークを設定した後に、前記コンボリューション層から出力されたデータが前記全結合層に供給されるように接続して、前記学習済みニューラルネットワークに学習データを入力し、前記全結合層から出力されるデータをヒートマップとしてヒートマップ格納部に格納するヒートマップ格納ステップと、
前記ヒートマップ格納ステップで格納されたヒートマップから、正解ラベルに対応する正解ヒートマップを抽出して蓄積する収集リストを作成する収集リスト作成ステップと、
前記収集リスト作成ステップで作成された前記収集リストから、各モデル要素同士の相関を示す相関値を計算する相関値計算ステップと、
前記相関値計算ステップで計算された前記相関値が所定の閾値以下であり、他のモデル要素との相関が低い複数のモデル要素を複数の主要モデル要素として抽出する主要モデル要素抽出ステップと、
前記主要モデル要素抽出ステップで抽出された前記複数の主要モデル要素からなる推定対象モデルを再構成し、再構成された推定対象モデルを用いて前記ニューラルネットワークを再学習して推定処理を行う推定ステップと、
を有する情報推定方法。
【請求項5】
前記収集リスト作成ステップにおいて、各時間フレームに含まれるヒートマップ値の合計値を計算して、前記ヒートマップ値の合計値が所定の閾値以上である各時間フレームのヒートマップ値のみを含む収集リストを作成する請求項4に記載の情報推定方法。
【請求項6】
前記モデル要素として骨格の関節点が設定された骨格モデル、または、前記モデル要素としてシステム環境から得られる事象を表すノードが設定されたグラフモデルが、前記推定対象モデルとして用いられる請求項4又は5に記載の情報推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークを用いて、複数のモデル要素から構成された推定対象モデルの時系列データから推定対象モデルの状態を推定する情報推定装置及び情報推定方法に関する。
【背景技術】
【0002】
近年、ニューラルネットワークの急激な発展により、様々なものを推定することが可能になってきている。その中でも、ニューラルネットワークを用いて、人間や動物、物の動きの変化、あるいは、システムに実装されたセンサなどによる個々の観測値の変化から、人間や動物、物に関する行動、あるいはシステム全体の状態を推定する技術が開発されてきている。
【0003】
このニューラルネットワークに係る技術では、複数のモデル要素により構成された推定対象モデルにおいて、当該推定対象モデルを構成する複数のモデル要素に関連付けられたパラメータの時間変化を含む時系列データをニューラルネットワークへ入力することで、推定対象モデル全体の状態を推定結果として出力するように構成される。
【0004】
推定対象モデルの一例として、骨格モデルが知られている。
【0005】
骨格モデルでは、例えば
図1(a)に示すように、モデル要素として人や動物、物などの骨格の関節点(目、鼻、口などの個々のパーツを含む)が設定されるとともに、モデル要素のパラメータとして各関節点の空間的座標が設定される。骨格モデルでは、例えばカメラなどにより人間を撮影することで、骨格の各関節点の座標の時間的な変化を含む時系列データが用いられる。骨格モデルを用いた推定技術では、骨格の各関節点の座標がどう動くのかを表した時系列データを入力データとしてニューラルネットワークに入力することで、事前に決められた骨格の行動分類ごとのスコアが出力され、一番スコアの高い行動が入力データに対応する行動として推定できるようになっている。人や動物、物などの骨格の各関節点の座標の時間変化は各関節点の経時的な動きを表しており、ニューラルネットワークは、各関節点の時間的な変化から、走る、食べる、寝るなどの骨格モデル全体の具体的な行動(推定対象モデル全体の状態)を推定することができるようになっている。
【0006】
なお、骨格モデルの関節点(キーポイントとも呼ばれる)の位置や個数などは特に限定されず、一般的にデータやデバイスなどに様々な定義がなされている。具体的には、骨格モデルの関節点として18点又は25点の位置を定義したOpen Poseや、32点の位置を定義したKinect(登録商標)などが知られている。
【0007】
骨格モデルを扱うニューラルネットワークとしては、例えば特許文献1及び非特許文献1~4に記載されている技術が知られている。
【0008】
また、推定対象モデルの一例として、グラフモデルが知られている。
【0009】
グラフモデルでは、例えば
図1(b)に示すように、モデル要素として物体や事象などを設定するとともに、モデル要素のパラメータとして物体や事象などの具体的な観測値を含む座標が設定される。グラフモデルでは、例えばシステムに実装されたセンサなどにより取得した、物体や事象などの観測値の時間的な変化を含む時系列データが用いられる。グラフモデルを用いた推定技術では、物体や事象などのモデル要素をノードで表し、各ノードに関連する観測値がどのように変化するのかを表した時系列データを入力データとしてニューラルネットワークに入力することで、事前に決められたシステム全体の状態分類ごとのスコアが出力され、一番スコアの高い状態が入力データに対応する状態として推定できるようになっている。具体的には、温度や時刻、速度などの事象を個別に表すノードが繋がったグラフモデルが設定されて、各ノードの観測値の時間的な変化から、安全、危険などのシステム全体の具体的な状態(推定対象モデル全体の状態)を推定することができるようになっている。
【0010】
ニューラルネットワークを用いた推定技術では、ニューラルネットワークへの入力データとして、推定対象モデルを構成する複数のモデル要素のそれぞれのパラメータの時系列データが準備される。そして、上記の時系列データを入力データとして、推定対象モデル全体の状態が事前に設定された分類のいずれであるかを示す推定結果を出力するようにニューラルネットワークに学習させる。ニューラルネットワークの学習では、例えば、学習データに正解を与えた状態で学習させる教師あり学習が行われる。
【0011】
例えば
図1(a)に示す骨格モデルでは、学習データとして、「関節点数」×「関節点の座標数(2次元又は3次元などの空間的座標数)」×「時間フレーム数」からなるテンソルで表される時系列データが入力データとして準備されるとともに、これらの入力データに対応して、事前に決められた行動リストのうちのいずれが正解であるのかを示す正解ラベルデータが準備される。
【0012】
なお、ここでいう座標とは、例えば2次元であれば(x,y)や(x,y,確からしさ)である。x、yは、その関節点の座標である。確からしさは、0から1までの値をとるその座標に対する確からしさである。ある関節点がオクルージョンで見えない場合、確からしさはゼロになり、座標x、yはある適当な値、例えば同様にゼロが入れられる。また、3次元の場合には、座標は(x,y,z)や(x,y,z,確からしさ)となる。
【0013】
また、例えば
図1(b)に示すグラフモデルでは、学習データとして、「ノード数」×「ノードのパラメータ数」×「時間フレーム数」からなるテンソルで表される時系列データが入力データとして準備されるとともに、これらの入力データに対応して、事前に決められた状態リストのうちのいずれが正解であるのかを示す正解ラベルデータが準備される。状態を表すグラフモデルの場合には、各ノードが持つパラメータは状態値(観測値)x、又は(x,確からしさ)となる。つまり、温度tを表す温度ノードでは、t又は(t,確からしさ)、湿度mを表す湿度ノードでは、m又は(m,確からしさ)などのようになる。
【0014】
そして、学習データをニューラルネットワークに入力し、正解ラベルデータで正解となる出力データが出力されるように学習が行われる。
【0015】
また、通常、学習済みニューラルネットワークの性能評価を行うためにテストデータを入力するテストが行われる。テストデータは、学習データと同様に時系列データ及び正解ラベルデータを有しており、テスト時には、学習済みニューラルネットワークが正解の推定結果を出力できるかどうかの確認が行われる。
【0016】
上述のように学習及びテストを行った学習済みニューラルネットワークを実際に用いることで、未知の状態の推定対象モデルから得られた時系列データに対して推定処理を行い、推定対象モデル全体の状態が事前に決められた分類のうちのいずれであるかを推定することができる。
【0017】
例えば
図1(a)に示す骨格モデルの場合には、リアルタイムに人間の関節点の動きをカメラで観測して、その観測データを学習済みニューラルネットワークに入力することで、人間の行動を随時推定することができる。
【0018】
また、例えば
図1(b)に示すグラフモデルの場合には、リアルタイムに温度や湿度、天気、冷房電気代などをセンサで観測して、その観測データを学習済みニューラルネットワークに入力することで、システム全体の状態を随時推定することができる。
【先行技術文献】
【特許文献】
【0019】
【非特許文献】
【0020】
【非特許文献1】Sijie Yan, Yuanjun Xiong and Dahua Lin. Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition, AAAI, 2018
【非特許文献2】Pengfei Zhang, Cuiling Lan, Wenjun Zeng, Junliang Xing, Jianru Xue, Nanning Zheng. Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition, CVPR2020
【非特許文献3】Yuxin Chen, Ziqi Zhang, Chunfeng Yuan, Bing Li, Ying Deng, Weiming Hu. Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition, ICCV2021
【非特許文献4】Yi-Fan Song, Zhang Zhang, Caifeng Shan, Liang Wang. Richly Activated Graph Convolutional Network for Robust Skeleton-based Action Recognition, IEEE T-CSVT, 2020
【発明の概要】
【発明が解決しようとする課題】
【0021】
ニューラルネットワークを用いた推定技術では、ニューラルネットワークを備えた情報推定装置(推定器)に膨大なデータが入力されるため、ニューラルネットワークでは、相当の計算処理が行われる必要がある。特に、モデル要素数が増大するほどニューラルネットワークの計算処理の負荷が増大する傾向にある。例えば推定対象モデルを構成するモデル要素数が増えて入力データが膨大になればなるほどニューラルネットワークにおける計算処理の負荷が大きくなり、その結果、計算処理に時間がかかるという問題や、多くのメモリ数を扱える計算機が必要となるという問題などが生じる。
【0022】
例えば骨格モデルの場合には、複数人数の人間を観測対象とする場合や、指の関節数、顔の表情、目の動きなどの細かい要素まで骨格モデル中に入れた場合には、骨格モデルの関節点数及び関節点ごとに設定されたパラメータ数が大幅に増えて、ニューラルネットワークの計算処理の負荷が大きくなるという問題がある。
【0023】
また、例えばグラフモデルの場合においても同様に、システム環境を表現する状態の要因(例えば、温度や湿度、明るさ、速度など)を増やした場合には、グラフモデルのノード数及びノードごとに設定されたパラメータ数が大幅に増えて、ニューラルネットワークの計算処理の負荷が大きくなるという問題がある。
【0024】
モデル要素数及びパラメータ数が増えるとニューラルネットワークの計算処理の負荷が大きくなるという問題に鑑みて、モデル要素のいくつかを省いてモデルの状態の推定に影響を及ぼす主要なモデル要素のみを残すという対処法が考えられる。
【0025】
例えば、骨格モデルにおいて推定したい行動パターンが単純な場合、例えば自動車の乗員の行動パターンなどのように限定された行動の分類のみを行いたい場合には、全身の骨格は不要であり、身体の一部又は上半身の関節点だけが行動推定に重要となることが予想される。この場合、入力データである骨格モデルの関節点のいくつかを省いてニューラルネットワークの計算処理を軽量化することが考えられる。
【0026】
しかしながら、どのモデル要素(関節点)が大きく影響し、どのモデル要素(関節点)があまり影響しないのかを実際に判別することは容易ではなく、どのモデル要素(関節点)を省いてどのモデル要素(関節点)を残すのが最適であるかについての指針が必要となる。
【0027】
本発明は、上記の問題に鑑みてなされたものであり、推定結果の正解率を落とさずに維持しながら、ニューラルネットワークの計算処理の負荷を軽減させることが可能な情報推定装置及び情報推定方法を提供することを目的とする。
【課題を解決するための手段】
【0028】
上記の目的を達成するため、本発明によれば、複数のモデル要素からなる推定対象モデルにおいて、前記複数のモデル要素の各パラメータが時間に従って変化する時系列データと、当該時系列データに付与された正解ラベルとがペアになった学習データに基づいて学習を行うことが可能なニューラルネットワークを備えた情報推定装置であって、
前記ニューラルネットワークは、
供給されたデータを、前記複数のモデル要素の各パラメータ同士が時間的および空間的に影響を及ぼし合う効果を表現するデータに変換するコンボリューション層と、
供給されたデータを、特定の特徴量次元からなるデータに変換するプーリング層と、
供給されたデータを、前記推定対象モデルの状態の分類数の次元からなるデータに変換する全結合層と、
を少なくとも有して構成されており、
前記コンボリューション層から出力されたデータが前記プーリング層に供給され、前記プーリング層から出力されたデータが前記全結合層に供給されるように接続して、前記学習データを用いて前記ニューラルネットワークの学習を行って学習済みニューラルネットワークを設定した後に、前記コンボリューション層から出力されたデータが前記全結合層に供給されるように接続して、前記学習済みニューラルネットワークに学習データを入力し、前記全結合層から出力されるデータをヒートマップとして格納するヒートマップ格納部と、
前記ヒートマップ格納部に格納されたヒートマップから、正解ラベルに対応する正解ヒートマップを抽出して蓄積する収集リストを作成する収集リスト作成部と、
前記収集リスト作成部で作成された前記収集リストから、各モデル要素同士の相関を示す相関値を計算する相関値計算部と、
前記相関値計算部で計算された前記相関値が所定の閾値以下であり、他のモデル要素との相関が低い複数のモデル要素を複数の主要モデル要素として抽出する主要モデル要素抽出部と、
を有し、
前記主要モデル要素抽出部で抽出された前記複数の主要モデル要素からなる推定対象モデルを再構成し、再構成された推定対象モデルを用いて前記ニューラルネットワークを再学習して推定処理を行うように構成されている情報推定装置が提供される。
【0029】
また、上記の目的を達成するため、本発明によれば、複数のモデル要素からなる推定対象モデルにおいて、前記複数のモデル要素の各パラメータが時間に従って変化する時系列データと、当該時系列データに付与された正解ラベルとがペアになった学習データに基づいて学習を行うことが可能なニューラルネットワークを備えた情報推定装置における情報推定方法であって、
前記ニューラルネットワークは、
供給されたデータを、前記複数のモデル要素の各パラメータ同士が時間的および空間的に影響を及ぼし合う効果を表現するデータに変換するコンボリューション層と、
供給されたデータを、特定の特徴量次元からなるデータに変換するプーリング層と、
供給されたデータを、前記推定対象モデルの状態の分類数の次元からなるデータに変換する全結合層と、
を少なくとも有して構成されており、
前記コンボリューション層から出力されたデータが前記プーリング層に供給され、前記プーリング層から出力されたデータが前記全結合層に供給されるように接続して、前記学習データを用いて前記ニューラルネットワークの学習を行って学習済みニューラルネットワークを設定するステップと、
前記学習済みニューラルネットワークを設定した後に、前記コンボリューション層から出力されたデータが前記全結合層に供給されるように接続して、前記学習済みニューラルネットワークに学習データを入力し、前記全結合層から出力されるデータをヒートマップとしてヒートマップ格納部に格納するヒートマップ格納ステップと、
前記ヒートマップ格納ステップで格納されたヒートマップから、正解ラベルに対応する正解ヒートマップを抽出して蓄積する収集リストを作成する収集リスト作成ステップと、
前記収集リスト作成ステップで作成された前記収集リストから、各モデル要素同士の相関を示す相関値を計算する相関値計算ステップと、
前記相関値計算ステップで計算された前記相関値が所定の閾値以下であり、他のモデル要素との相関が低い複数のモデル要素を複数の主要モデル要素として抽出する主要モデル要素抽出ステップと、
前記主要モデル要素抽出ステップで抽出された前記複数の主要モデル要素からなる推定対象モデルを再構成し、再構成された推定対象モデルを用いて前記ニューラルネットワークを再学習して推定処理を行う推定ステップと、
を有する情報推定方法が提供される。
【発明の効果】
【0030】
本発明によれば、複数のモデル要素により構成される推定対象モデルに関して、ニューラルネットワークの推定結果に対する各モデル要素の影響度(寄与度)を判断し、ニューラルネットワークの推定結果に影響を及ぼす主要なモデル要素を抽出するとともに、ニューラルネットワークの推定結果にあまり影響を及ぼさないモデル要素を適切に省くことができるようになる。その結果、抽出された主要なモデル要素のパラメータのみを含む軽量化及び簡略化された時系列データを用いて、ニューラルネットワークの学習及びニューラルネットワークによる推定を行うことで、推定結果の正解率をほとんど落とさずに信頼性の高い推定結果を得ることができ、かつ、ニューラルネットワークにおける計算処理の負荷の軽減化(例えば計算時間の短縮やメモリ使用量の低減など)を実現することができるようになる。
【図面の簡単な説明】
【0031】
【
図1】本発明及び従来技術においてニューラルネットワークに適用される推定対象モデルの一例を示す図であり、(a)は人間の骨格モデルの一例を示す図、(b)は環境を表すグラフモデルの一例を示す図である。
【
図2】本発明の第1実施形態における情報推定装置の構成の一例を示すブロック図である。
【
図3】本発明の第1実施形態における学習段階の処理を説明するための図である。
【
図4】本発明の第1実施形態における主要モデル要素抽出段階の収集リストの作成までの処理を説明するための図である。
【
図5】本発明の第1実施形態において作成される収集リストの一例を示す図である。
【
図6】本発明の第1実施形態における主要モデル要素抽出段階で、相関値計算部による計算処理で得られた相関表(左半分)の一例を示す図である。
【
図7】本発明の第1実施形態における主要モデル要素抽出段階で、相関値計算部による計算処理で得られた相関表(右半分)の一例を示す図である。
【
図8】本発明の第1実施形態における主要モデル要素抽出段階で、主要モデル要素抽出部により実行される処理の一例を示すフローチャートである。
【
図9】本発明に関連して実施された実験における実施例及び比較例のそれぞれの実験結果を示す表である。
【
図10】本発明の第1実施形態における推定処理を説明するための図である。
【
図11】本発明の第2実施形態に関連する無反応期間を説明するための図である。
【
図12】本発明の第2実施形態において収集リスト作成部により実行される無反応期間削除処理の一例を示すフローチャートである。
【
図13】本発明の第2実施形態において収集リスト作成部により作成される収集リストを説明するための図である。
【発明を実施するための形態】
【0032】
以下、図面を参照しながら、本発明の第1及び第2実施形態について説明する。
【0033】
<本発明の概要>
本発明は、ニューラルネットワークを用いて、複数のモデル要素により構成された推定対象モデル全体の状態を推定する技術に関する。本発明では、ニューラルネットワークの推定結果に対する各モデル要素の影響度(寄与度)を判断し、ニューラルネットワークの推定結果に影響を及ぼす主要なモデル要素を抽出するとともに、ニューラルネットワークの推定結果にあまり影響を及ぼさないモデル要素を適切に省くことができるようになる。その結果、抽出された主要なモデル要素のパラメータのみを含む軽量化及び簡略化された時系列データを用いて、ニューラルネットワークの学習及びニューラルネットワークによる推定を行うことで、推定結果の正解率をほとんど落とさずに信頼性の高い推定結果を得ることができ、かつ、ニューラルネットワークにおける計算処理の負荷の軽減化(例えば計算時間の短縮やメモリ使用量の低減など)を実現することができるようになる。
【0034】
なお、本発明で用いられる推定対象モデルは、複数のモデル要素により構成されており、各モデル要素は1つ又は複数のパラメータが設定されているものであり、特に限定されないが、例えば上述した
図1(a)に示す骨格モデルや
図1(b)に示すグラフモデルを用いることができる。
【0035】
骨格モデルの場合には、モデル要素は人間の骨格の関節点であり、各モデル要素に設定されたパラメータは各関節点の空間的座標である。例えば人間の動きをカメラなどで撮影することで、その画像から骨格モデルのデータを得ることができる。また、推定結果として得られる推定対象モデル全体の状態は、人間の行動(走る、食べる、寝るなど)である。
【0036】
グラフモデルの場合には、モデル要素は、あるシステム環境における事象を表すノードであり、各モデル要素に設定されたパラメータは各事象に関連する情報である。例えば各事象に関連する情報として、システムに実装されたセンサなどで検出された各事象の観測値(センサデータ)を用いることで、グラフモデルのデータを得ることができる。また、推定結果として得られる推定対象モデル全体の状態は、システム環境全体の状態(安全、危険など)である。
【0037】
以下では、推定対象モデルの一例として主に骨格モデルを対象として説明するが、本発明で用いられる推定対象モデルは、骨格モデルに限定されるものではない。
【0038】
<第1実施形態>
本発明の第1実施形態について説明する。
【0039】
<情報推定装置の構成>
まず、本発明の第1実施形態における情報推定装置1全体の構成について説明する。
図2は、本発明の第1実施形態における情報推定装置1全体の構成の一例を示す機能ブロック図である。
【0040】
なお、
図2に示すブロック図は、本発明に関連した機能を表しているにすぎず、実際の実装では、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されてもよい。ソフトウェアで実装される機能は、1つ又は複数の命令若しくはコードとして任意のコンピュータ可読媒体に記憶され、これらの命令又はコードは、CPU(Central Processing Unit:中央処理ユニット)などのハードウェアベースの処理ユニットによって実行可能である。また、本発明に関連した機能は、IC(Integrated Circuit:集積回路)やICチップセットなどを含む様々なデバイスによって実現されてもよい。
【0041】
一例として、本発明の第1実施形態における情報推定装置1は、所定のプログラミング言語で処理手順が記述されたプログラムを実行することが可能なコンピュータにより実現される。本発明の第1実施形態における情報推定装置1を実現するコンピュータは、ハードウェアとして、例えばプログラムを実行するCPUなどのプロセッサ、プログラムや処理対象のデータを格納するHDD(Hard Disk Drive:ハードディスクドライブ)やSDD(Solid State Drive:ソリッドステートドライブ)などのストレージ、処理中のプログラムやデータを一時的に格納するRAM(Random Access Memory:ランダムアクセスメモリ)などのメモリ、ユーザによる操作入力を受け付けるマウスやキーボードなどの操作入力装置、ユーザに対して視覚的な情報を提供するディスプレイなどを備えて構成されている。ストレージは、USB(Universal Serial Bus:ユニバーサルシリアルバス)メモリなどの可搬型記憶媒体であってもよく、ネットワークを介して接続されているネットワークストレージであってもよい。
【0042】
図2に示す情報推定装置1は、推定処理部10、ヒートマップ格納部20、収集リスト作成部30、収集リスト格納部40、相関値計算部50、主要モデル要素抽出部60を有して構成されている。
【0043】
推定処理部10は、複数の層が配置された階層構造を有するニューラルネットワークを備えており、入力データに対して事前に設定された数理モデルに基づいて計算処理を行い、その計算によって得られた結果を出力するように構成されている。具体的には、推定処理部10は教師あり学習を行う分類器であり、入力層及び中間層を含む任意の層11、コンボリューション層12、プーリング層13、全結合層14、ソフトマックス層を含む出力層15が階層構造をなすニューラルネットワークを備えている。
【0044】
図2に示す任意の層11は、ニューラルネットワークの入力層からコンボリューション層12の前段の層までを含む1つ又は複数の層を表している。任意の層11の構造は特に限定されず、例えば複数のコンボリューション層やプーリング層が配置された構造であってもよい。
【0045】
任意の層11の後段には、コンボリューション層12が配置されている。コンボリューション層12は、複数のモデル要素の各パラメータ同士が時間的及び空間的に影響を及ぼし合う効果を表現する層であり、前段に配置された層から供給されたデータの畳み込みを行うよう構成されている。
【0046】
コンボリューション層12では、供給されたデータの座標の次元、つまり2次元や3次元などが、特徴量と呼ばれるさらに多数の次元のベクトルに拡張される。この特徴量は、コンボリューション層12の中で、空間上の近傍、つまり、ある1つの関節点の特徴量が、骨などによって接続された近隣の関節点の特徴量に加わったり、ある時刻における関節点の特徴量が、時間軸の前後の時刻における同一の関節点の特徴量に加わったりする。すなわち、コンボリューション層12では、ある関節点の特徴量が空間的な近傍に位置する他の関節点の特徴量に影響を及ぼす効果、及び、ある関節点の特徴量が時間的な近傍に位置する同一の関節点の特徴量に影響を及ぼす効果を表現する処理が行われる。
【0047】
コンボリューション層12の後段には、プーリング層13が配置されている。プーリング層13は、複数のモデル要素の各パラメータ同士の時間的及び空間的な影響を、特定の特徴量次元からなるベクトルに融合する層であり、前段に配置されたコンボリューション層12から供給されたデータのマッピングを行うように構成されている。
【0048】
プーリング層13の後段には、全結合層14が配置されている。全結合層14は、特定の特徴量次元からなるベクトルを、推定モデルの状態の分類数の次元からなるベクトルに変換する層であり、特定の特徴量次元からなるベクトルの全ての変数の相関を反映して、その相関を分類数の次元からなるベクトルとして出力するように構成されている。
【0049】
全結合層14の後段には、出力層15が配置されている。出力層15は、例えばソフトマックス層により構成され、全結合層14から供給されたデータの規格化及び強調化を行って、事前に設定された分類ごとのスコアをニューラルネットワークにおける推定結果として出力するように構成されている。ソフトマックス層から出力されたスコア(推定結果)は、例えばストレージや外部の二次記憶装置に格納されてもよく、表示用に加工が施されて表示画面上に表示されてもよく、ネットワークを介して接続された他の装置へ送信されてもよい。
【0050】
なお、推定処理部10が備えるニューラルネットワーク自体は、従来の技術における階層構造型ニューラルネットワークと同様の構成を有している。すなわち、推定処理部10は、従来技術と同様に、複数のモデル要素により構成された推定対象モデルにおいて、当該推定対象モデルを構成する複数のモデル要素に関連付けられたパラメータの時間変化を含む時系列データをニューラルネットワークへ入力することで、推定対象モデル全体の状態を推定結果として出力するように構成されている。
【0051】
ただし、後述する主要モデル要素抽出段階では、プーリング層13が削除(スキップ)され、
図2のデータラインL1に示すように、コンボリューション層12が出力したデータは全結合層14に供給されるように構成されている。また、後述する主要モデル要素抽出段階では、
図2のデータラインL2に示すように、全結合層14が出力したデータはヒートマップ(heatmap)としてヒートマップ格納部20に格納されるように構成されている。
【0052】
推定処理部10は、例えば情報推定装置1のプロセッサが、ストレージに事前に格納されている所定のニューラルネットワーク用プログラムを実行することにより実現される。推定処理部10では、ニューラルネットワークの設定値や階層構造などをユーザが事前に設定することで、ユーザが所望するニューラルネットワークを実現できるようになっている。
【0053】
ヒートマップ格納部20は、後述する主要モデル要素抽出段階において、全結合層14が出力したデータをヒートマップとして収集及び格納する機能を有している。ヒートマップ格納部20は、例えば情報推定装置1のストレージにより構成される。
【0054】
収集リスト作成部30は、後述する主要モデル要素抽出段階において、ヒートマップ格納部20に格納されているヒートマップから、正解ラベルに対応するヒートマップ(正解ヒートマップ)を抽出する機能を有している。収集リスト作成部30は、例えば情報推定装置1のプロセッサが、ストレージに事前に格納されている所定の収集リスト作成用プログラムを実行することにより実現される。なお、収集リスト作成部30は、全結合層14が出力したデータであるヒートマップを直接取得して、このヒートマップから正解ラベルに対応するヒートマップ(正解ヒートマップ)を抽出するように構成されていてもよい。さらに、収集リスト作成部30は、収集リスト格納部40に格納された収集リストを取得して、この収集リストに基づいて収集リストの再作成を行うように構成されていてもよい。
【0055】
収集リスト格納部40は、後述する主要モデル要素抽出段階において、収集リスト作成部30が作成した収集リストを格納する機能を有している。収集リスト格納部40は、例えば情報推定装置1のストレージにより構成される。
【0056】
相関値計算部50は、後述する主要モデル要素抽出段階において、収集リスト格納部40に格納されている収集リストから推定対象モデルの各モデル要素同士の相関値を算出する機能を有している。相関値計算部50は、例えば情報推定装置1のプロセッサが、ストレージに事前に格納されている所定の相関値計算用プログラムを実行することにより実現される。
【0057】
主要モデル要素抽出部60は、後述する主要モデル要素抽出段階において、相関値計算部50が計算した各モデル要素同士の相関値を参照して、ニューラルネットワークの推定結果に影響を及ぼす主要なモデル要素を抽出する機能を有している。なお、本明細書における「主要」とは、ニューラルネットワークの推定結果への影響度(寄与度)が高いことを意味している。主要モデル要素抽出部60から出力される主要なモデル要素は、例えばストレージや外部の二次記憶装置に格納されてもよく、表示用に加工が施されて表示画面上に表示されてもよく、ネットワークを介して接続された他の装置へ送信されてもよい。
【0058】
<情報推定装置における処理>
本発明の第1実施形態における情報推定装置1は、学習段階、主要モデル要素抽出段階、再学習段階の3つの段階における処理を実行することで、推定対象モデルの状態を実際に推定できる状態に設定される。
【0059】
(学習段階)
本発明の第1実施形態における情報推定装置1では、初めに学習段階が実施される。例えば正解ラベルが付与されているデータを学習データとテストデータとに分け、まず、未学習ニューラルネットワークに対して、学習データに正解を与えた状態で学習させる教師あり学習が行われる。学習データとしては、上述した骨格モデルの時系列データ、すなわち、「時間フレーム数」×「関節点の数」×「関節点の座標数(2次元又は3次元などの空間的座標数)」からなるテンソルで表される入力データと、これらの入力データに対応して、事前に決められた行動リストのうちのいずれが正解であるのかを示す正解ラベルデータが準備される。そして、学習データを未学習ニューラルネットワークに入力して、正解となる出力データが出力されるように学習が行われる。
【0060】
また、従来技術と同様に、学習済みニューラルネットワークの性能評価を行うためにテストデータを入力するテストが行われる。テストデータは、学習データと同様に時系列データ及び正解ラベルデータを有している。テスト時には、学習済みニューラルネットワークが正解の推定結果を出力できるかどうかの確認が行われ、適切に学習が行われたかどうかを評価することができる。
【0061】
ここで、
図3を参照しながら、本発明の第1実施形態における学習段階の処理について説明する。
図3は、本発明の第1実施形態における学習段階の処理を説明するための図である。
【0062】
学習段階では、未学習のニューラルネットワークへの入力データとして、「時間フレーム数」×「関節点数」×「座標数(2次元又は3次元などの空間的座標数)」の次元を持つ学習データが入力される。学習データが入力されると、任意の層11によって計算処理が実施され、コンボリューション層12には、「時間フレーム数」×「関節点数」×「特徴量数」の次元を持つデータが入力される。
【0063】
コンボリューション層12に入力された「時間フレーム」×「関節点数」×「特徴量数」の次元を持つデータは、コンボリューション層12における畳み込み処理によって、「時間フレーム」×「関節点数」×「特徴量数」の次元を持つデータに変換されて出力される。
【0064】
コンボリューション層12が出力したデータは、プーリング層13に入力される。プーリング層13では、コンボリューション層12が出力したデータに対して、平均値の算出又は最大値の抽出などを実施することによって関節点数及び時間の次元が潰され、ある単一の特徴量数の次元数を持つ特徴量のベクトルに纏められて、「特徴量数」の次元を持つデータが出力される。
【0065】
プーリング層13が出力したデータは、全結合層14に入力される。全結合層14では、供給されたデータが、推定対象モデルの状態の分類数の次元からなるデータに変換されて出力される。全結合層14は、例えばプーリング層13が出力したデータは、単一の特徴量数の次元を持つベクトルに纏められており、全結合層14において、プーリング層13が出力したデータはそれぞれの値の相関を反映した「推定行動数」(分類数)の次元を持つデータに変換されて出力される。
【0066】
全結合層14が出力したデータは、ソフトマックス層により構成される出力層15に入力される。出力層15では、例えば全結合層14が出力したデータの規格化及び強調化が行われ、各行動の推定確率(スコア)を含んだ「推定行動数」の次元を持つデータに変換されて出力される。この「推定行動数」の次元を持つデータに含まれる各行動の推定確率であるスコアを参照することで、「時間フレーム」×「関節点数」×「座標数」の次元を持つ入力データが、どのような行動から得られたものであるかを推測することが可能である。
【0067】
学習時には、正解である分類から出力されるスコアが最大になるようにバックプロパゲーションを行い、ニューラルネットワーク内部のパラメータを更新する。これにより、正解となる出力データが出力されるように学習が行われる。
【0068】
なお、上記の学習段階では、通常のニューラルネットワークにおいて実施される学習段階と同じ処理が行われる。従来技術に係るニューラルネットワークでは、学習段階が完了すると学習済みニューラルネットワークが設定され、この学習済みニューラルネットワークを用いて実際に推定処理が行われて、スコアが最大となる分類が骨格モデルの状態(行動)であると推定することができる。
【0069】
従来技術に係る学習済みニューラルネットワークを用いた推定処理では、「時間フレーム数」×「関節点数」×「座標数」の次元を持つデータが入力データとして用いられる。しかしながら、この「時間フレーム数」×「関節点数」×「座標数」の次元が大きくなればなるほど、ニューラルネットワークの計算処理の負荷が大きくなるという問題が生じ得る。本発明は、この問題に鑑みてなされたものであり、上述した学習段階で得られた学習済みニューラルネットワークをそのまま推定処理に用いるのではなく、さらに、主要モデル要素抽出段階及び再学習段階を実施し、モデル要素数(関節点数)を少なくして入力データの次元数を低減させることで、ニューラルネットワークの計算処理の負荷を軽減させることができるようになっている。
【0070】
(主要モデル要素抽出段階)
本発明の第1実施形態における情報推定装置1では、次いで、上述の学習段階によって設定された学習済みニューラルネットワークに対して、主要モデル要素抽出段階が実施される。この主要モデル要素抽出段階では、学習済みニューラルネットワークが入力データに関して、どのニューラルネットワークの部分が入力データに活性化して正解の推定出力に寄与するのかを視覚化する処理が行われる。
【0071】
例えば上記の非特許文献4には、ニューラルネットワークの処理に関して、入力データのどの時刻のどの関節が、ニューラルネットワークの中で推定スコアに大きく反映しているのかについて、ヒートマップ(heatmap)という値で視覚化する計算手法が提案されている。主要モデル要素抽出段階では、非特許文献4で提案されている手法を利用して、ニューラルネットワークがヒートマップを出力するように設定し、これにより、どの関節点がどの行動推定において重要な関節点(主要モデル要素)であり、どの関節点を省くことができるのかを確認する。
【0072】
主要モデル要素抽出段階では、
図2に示す推定処理部10におけるプーリング層13を削除(スキップ)して、コンボリューション層12からの出力が全結合層14に供給されるように設定する。コンボリューション層12の後に配置されたプーリング層13では、コンボリューション層12が出力したデータに関して、関節点ごと及び時間ごとの次元を潰して次元数を低減する処理が行われるが、このプーリング層13を削除することで、コンボリューション層12が出力したデータに含まれる関節点ごと及び時間ごとの次元を潰さずに、コンボリューション層12から全結合層14にデータが供給されるようにする。
【0073】
全結合層14は、コンボリューション層12が出力したデータに対して、それら全てのデータの相関を入力の関節点ごとごと及び時間ごとに反映したデータであるヒートマップ値を出力する。全結合層14が出力するデータは、行動分類のスコアの1次元配列ではなく、「時間フレーム数」×「関節点数」×「推定行動数」の次元を持つデータとなる。これは、ある入力データに対して、ある与えられた関節点あるいは時刻に対し、ある推定行動の出力に寄与するスコアと見ることができる。つまり、全結合層14が出力したデータであるヒートマップは、ある入力データに対する正解推定スコアへの寄与度を表しており、このヒートマップを参照することで、ある時間でのあるスナップショットに関して、どの関節点がどの行動に関するスコアに貢献しているのか見ることができる。
【0074】
<収集リストの作成>
以下、
図4を参照しながら、本発明の第1実施形態における主要モデル要素抽出段階の収集リストの作成までの処理について説明する。
図4は、本発明の第1実施形態における主要モデル要素抽出段階の収集リストの作成までの処理を説明するための図である。
【0075】
図4に示すように、主要モデル要素抽出段階では、学習済みニューラルネットワークに対して、「時間フレーム数」×「関節点数」×「座標数」の次元を持つ学習データ又はテストデータ(正解が与えられているデータ)を入力データとして入力する。学習データ又はテストデータが入力されると、任意の層11によって計算処理が実施されて、コンボリューション層12には、「時間フレーム数」×「関節点数」×「特徴量数」の次元を持つデータが入力される。
【0076】
コンボリューション層12では、コンボリューション層12に入力された「時間フレーム数」×「関節点数」×「特徴量数」の次元を持つデータに対して畳み込み処理が実施される。その結果、コンボリューション層12から「時間フレーム数」×「関節点数」×「特徴量数」の次元を持つデータが出力される。
【0077】
コンボリューション層12が出力したデータは、プーリング層13をスキップして全結合層14に入力される。全結合層14では、コンボリューション層12が出力したデータは、それぞれの値の相関を反映した「時間フレーム数」×「関節点数」×「推定行動数」の次元を持つデータ(ヒートマップ)に変換されて出力される。「時間フレーム」×「関節点数」×「推定行動数」の次元を持つデータは、ヒートマップとしてヒートマップ格納部20に格納される。
【0078】
次いで、抽出リスト作成部30は、「時間フレーム数」×「関節点数」×「推定行動数」の次元を持つヒートマップの中から、入力データに対して付与されている正解ラベルに対応する行動のデータ、すなわち、「時間フレーム数」×「関節点数」×「1次元(正解ラベルに対応する行動)」の次元を持つ正解ヒートマップを抽出して収集リストに追加し、収集リスト格納部40に格納する。
【0079】
このようにして収集リスト格納部40に格納された収集リストには、正解ラベルに対応する行動を表すデータとして、「時間フレーム数」×「関節点数」の次元を持つデータが蓄積される。
【0080】
図5は、本発明の第1実施形態において作成される収集リストの一例を示す図である。
図5では、横軸方向に、すべての関節点を含む列がN個(全関節点数N)並んでおり、縦軸方向に、N個すべての関節点のヒートマップ値の各時刻におけるスナップショットを含む行がT個×データ数(全時間フレーム数T_total)並んでいる。
【0081】
収集リストには、様々な時刻での各関節点に関する正解ヒートマップが行として随時追加される。すなわち、
図5の表では、各時刻におけるデータが収集されると、
図5に示す収集リストの表が下に伸びるように行が追加される。
【0082】
例えば、時間フレーム数Tが120個、関節点数Nが25個のデータが、100セット(データ数100)存在しているとする。これは、25個の関節点数が設定された人間を1秒当たり30フレーム(30bps)で4秒間撮影して得られる時系列データ(1セット)を100セット準備した状態である。この場合、収集リストには、時間フレーム数120個×データ数100セット=12000個のスナップショット数(データ総数T_total=12000)の行数だけ縦軸方向に並び、全関節点の数(25個)だけ横軸方向に並んだ2次元の表中に、それぞれの関節点数及び時間に対応したヒートマップ値が格納される。
【0083】
<相関表の作成>
本発明の第1実施形態における情報推定装置1は、相関値計算部50を有している。相関値計算部50は、収集リスト格納部40に格納されている収集リストを読み出し、この収集リストから、列のN個の関節点同士の相関値を計算するように構成されている。相関値は、N個中の任意の2つのペアごとの値として計算することができる。例えば、T時刻分の集められたある関節点Xのヒートマップ値xと別の関節点Yのヒートマップ値yとの相関値rは以下のように計算することができる。
【0084】
T_total個分のスナップショット中の関節Xのヒートマップ値xの平均は、以下の式により計算することができる。なお、T_totalはデータ総数であり、T×データ数である。
【0085】
【0086】
T_total個分のスナップショット中の関節Yのヒートマップ値yの平均は、以下の式により計算することができる。
【0087】
【0088】
このとき、全てのT_total時刻分のデータを考慮した関節点Xと関節点Yとのヒートマップ値の相関値rxyは、以下の式により計算することができる。
【0089】
【0090】
なお、入力データ数に関する相関値の取り方に関しては、例えば、入力データ1つにつき、その時間フレーム数T個の間の相関値を1つ出して、入力データ数ごとにそれを計算し、後で和を取って、全入力データしての相関値を計算してもよい。もしくは、一気に[入力データ数]×[時間フレーム数]をまとめて、その中の相関値を計算してもよい。
【0091】
相関値計算部50による計算処理で得られた相関値について説明する。
図6及び
図7は、本発明の第1実施形態における主要モデル要素抽出段階で、相関値計算部50による計算処理で得られた相関表の左半分及び右半分を示す図である。ここでは、紙面の都合上、1つの相関表を左右に分割しており、
図6に示す相関表の左半分及び
図7に示す相関表の右半分を結合することで1つの相関表となる。
【0092】
相関値計算部50による計算処理で得られた相関値は、
図6及び
図7に示すように、各関節点同士の相関値を含む相関表の形式で表すことができる。相関表の横軸及び縦軸はそれぞれ全ての関節点の一覧が並んでいる。横軸と縦軸とが交差するフィールドには、横軸の関節点のヒートマップ値と縦軸の関節点のヒートマップ値との相関値(上述した数式で得られる相関値r)が格納されている。なお、
図6及び
図7に示す相関表において、左上から右下までの対角線上の値は自己相関値=「1.00」であり、この対角線の右上側と左下側とは対称となっており、同一の値となっている。
【0093】
<主要モデル要素抽出処理>
本発明の第1実施形態における情報推定装置1は、主要モデル要素抽出部60を有している。主要モデル要素抽出部60は、相関値計算部50による計算で得られた相関値を含む相関表から、他の関節点との相関の弱い関節点、すなわち、他の関節点と連動していない独立性を持つ関節点を抽出することができるように構成されている。相関表では、例えば特定の列の関節点に着目した場合、この特定の列の関節点と、その他の複数の関節点との相関値が並んだ状態となっている。特定の列の関節点とその他の関節点との相関値すべてが事前に定められた閾値より低い場合には、この特定の列の関節点は、その他のいずれの関節点とも相関性が低く、すなわち、その他の関節点すべてから独立して機能する主要な関節点であると判断することができる。
【0094】
以下、
図8を参照しながら、本発明の第1実施形態における情報推定装置1の主要モデル要素抽出部60において実行される主要モデル要素抽出処理について説明する。
図8は、本発明の第1実施形態における情報推定装置1の主要モデル要素抽出部60において実行される主要モデル要素抽出処理の一例を示すフローチャートである。
【0095】
図8に示すように、主要モデル要素抽出部60は、まず、収集リスト格納部40に格納されている収集リストを取得する(ステップS1)。
【0096】
次いで、主要モデル要素抽出部60は、特定の関節点i(最初の処理では例えばi=1に設定)を選択し(ステップS2)、まだ相関を見ていない他の関節点が存在するかどうかを確認する(ステップS3)。
【0097】
当該他の関節点が存在する場合には、その関節点j(j≠i)を選択する(ステップS4)。主要モデル要素抽出部60は、特定の関節点iのヒートマップ値と他の関節点jのヒートマップ値との相関値(
図6及び
図7に示す相関表の特定のフィールドに格納されているヒートマップ値同士の相関値)を参照し、当該相関値が事前に設定された所定の閾値との大小関係を比較する(ステップS5)。ステップS5では、例えば相関値が閾値以下(相関値≦閾値)かどうかを確認する。
【0098】
ステップS5で相関値が閾値以下である場合(相関値≦閾値)には、特定の関節点iが主要モデル要素である可能性がある。主要モデル要素抽出部60は、再度ステップS3に戻って処理を行い、まだ相関を見ていない他の関節点(ステップS5で相関値を確認していない関節点)が存在するかどうかを確認する(ステップS3)。当該他の関節点が存在する場合には、その関節点j(j≠i)を選択して(ステップS4)、当該相関値が事前に設定された所定の閾値との大小関係を比較する処理を行う(ステップS5)。
【0099】
すなわち、ステップS3~S5の処理では、特定の関節点iに着目して、特定の関節点iのヒートマップ値と他の関節点j(j≠i)のヒートマップ値とのすべての相関値が閾値以下かどうかを確認する。そして、特定の関節点iのヒートマップ値と他のすべての関節点j(j≠i)のヒートマップ値との相関値が閾値以下の場合には、当該特定の関節点iを、他の関節点jから独立した主要モデル要素であると判断して(ステップS6)、特定の関節点iに対する処理を終了する。
【0100】
一方、ステップS5で閾値以下ではない相関値が存在する場合(相関値>閾値)には、その時点で特定の関節点iは主要モデル要素ではないと判断して(ステップS7)、特定の関節点iに対する処理を終了する。
【0101】
次いで、ステップS6及びステップS7で特定の関節点iに対する処理を終了すると、主要モデル要素抽出部60は、次いで、特定の関節点として選択していない別の関節点が存在するかどうかを確認する(ステップS8)。特定の関節点として選択していない別の関節点が存在する場合には、特定の関節点として別の関節点(例えばi=i+1)を選択し(ステップS9)、再度ステップS2以降の処理を行う。一方、特定の関節点として選択していない別の関節点が存在しない場合、すなわち、すべての関節点を特定の関節点として選択した場合には、主要モデル要素抽出処理は終了となる。
【0102】
なお、ステップS5で参照する閾値は、主要モデル要素抽出処理を実行する前にユーザが設定することが可能である。閾値として設定する値を適宜調整することによって、主要モデル要素抽出処理で抽出される主要モデル要素数の増減を調整することができる。最終的に抽出される主要モデル要素数が所望の個数より少ない場合には閾値を減少させて主要モデル要素抽出処理を再度実行し、最終的に抽出される主要モデル要素数が所望の個数より多い場合には閾値を増加させて主要モデル要素抽出処理を再度実行することで、主要モデル要素抽出処理で抽出される主要モデル要素数を所望の個数に近づけることができる。
【0103】
一例として、
図6及び
図7に示す相関表に対して、主要モデル要素抽出処理を実施したとする。このとき、主要モデル要素であると判断する基準値である閾値を「0.87」に設定した場合には、
図6及び
図7に示す関節点のうちの「■」が付与された関節点、すなわち、「0:Nose」、「1:Neck」、「3:RElbow」、「4:RWrist」、「6:LElbow」、「7:LWrist」、「15:REye」、「16:LEye」、「17:REar」、「18:LEar」の10個の関節点が主要モデル要素として抽出される。
【0104】
(再学習段階)
主要モデル要素抽出処理で抽出された主要モデル要素は他の関節点との相関が低く、それぞれ独立した要素として推定対象モデル全体の状態推定に大きく寄与するものであるとみなすことができる。本発明の第1実施形態における情報推定装置1では、上述した学習段階で設定された学習済みニューラルネットワークをいったんリセットして未学習ニューラルネットワークにするとともに、主要モデル要素抽出処理で抽出されなかった主要モデル要素以外の要素を取り除き、主要モデル要素抽出処理で抽出された主要モデル要素のみを用いて、未学習ニューラルネットワークの学習が再度実施される。
【0105】
具体的には、学習段階で使用した正解ラベルが付与されているデータから主要モデル要素(主要関節点)以外の要素を間引いて、主要モデル要素に係るパラメータを残したデータを作成する。そして、このデータを学習データとテストデータとに分けて、まず、未学習ニューラルネットワークに対して、学習データに正解を与えた状態で学習させる教師あり学習が行われる。学習データとしては、主要関節点により構成される骨格モデルの時系列データ、すなわち、「時間フレーム数」×「主要関節点数」×「主要関節点の座標数(2次元又は3次元などの空間的座標数)」からなるテンソルで表される入力データと、これらの入力データに対応して、事前に決められた行動リストのうちのいずれが正解であるのかを示す正解ラベルデータが準備される。そして、学習データを未学習ニューラルネットワークに入力して、正解となる出力データが出力されるように学習が行われる。
【0106】
再学習段階では、述した学習段階と同様のニューラルネットワークの学習処理が実施される。ただし、学習段階では、「関節点数」に比例した次元を持つ入力データが用いられている。これに対し、再学習段階では、「関節点数」が「主要関節点数」に低減されて、入力データに含まれるパラメータ数は大きく減少しており、上述の学習段階と比較して軽量化及び簡略化された入力データとなっている。具体的には、学習段階では関節点数が25個であったのに対し、再学習段階では
図6及び
図7に示す相関表に示す10個の主要関節点(主要モデル要素)のみが用いられる。このように、推定結果に大きな影響度(寄与度)を有する主要モデル要素のみを残して、その他のモデル要素を間引くことによって、ニューラルネットワークにおける計算処理の負荷を大きく軽減させることができる。
【0107】
また、上述した学習段階と同様に、学習済みニューラルネットワークの性能評価を行うためにテストデータを入力するテストが行われる。テストデータは、学習データと同様に時系列データ及び正解ラベルデータを有している。テスト時には、学習済みニューラルネットワークが正解の推定結果を出力できるかどうかの確認が行われ、適切に学習が行われたかどうかを評価することができる。なお、このテストデータも「関節点数」が「主要関節点数」に低減されて軽量化及び簡略化されたデータとなっており、ニューラルネットワークにおける計算処理の負荷を大きく軽減させることができる。
【0108】
<実施例>
本発明者は、本発明の作用を確認する実験として、コンピュータ内にニューラルネットワークを構築して、ニューラルネットワークの学習及び評価を行った。なお、本実験では、ニューラルネットワークとして非特許文献3に記載されているCTR-GCNを使用し、2次元の座標を持つ25個の関節点の骨格モデルに関して、合計120個の時間フレームを用いたニューラルネットワークの学習及び評価を行った。
図9に、本発明に関連して実施された実験における実施例及び比較例のそれぞれの実験結果を示す。
【0109】
本実験では、実施例として、学習段階及び主要モデル要素抽出段階を実施して、
図6及び
図7の相関表に示すように25個の関節点から10個の主要関節点を抽出し、再学習段階においてニューラルネットワークの学習及び評価を行った。また、本発明に対する比較例として、上述した学習段階のみを実施して、25個の関節点を間引くことなく、ニューラルネットワークの学習及び評価を行った。
【0110】
比較例では入力データの関節点数が25個であるのに対し、実施例では入力データの関節点数が10個(主要関節点数)に低減されている。本実験で使用したCTR-GCNでは、ある層で関節点数の2乗に比例したメモリ量で計算処理を行う必要があり、比較例における計算処理では関節点数25の2乗(25
2)のメモリ量が必要となるのに対し、実施例における計算処理では関節点数10の2乗(10
2)のメモリ量まで低減させることができる。すなわち、
図9に示すように、実施例におけるニューラルネットワークの必要最大メモリを1とした場合に、比較例における計算処理は6.25となり、実施例におけるニューラルネットワークの必要最大メモリは、比較例におけるニューラルネットワークの必要最大メモリの約16%まで低減させることができ、省メモリ化を実現することもできた。また、実施例における計算量を比較例における計算量より大きく低減させることもでき、計算時間の短縮化を実現することもできた。
【0111】
また、
図9に示すように、比較例では行動推定の正解率が78.3%であったのに対し、実施例では行動推定の正解率76.18%であった。実施例では関節点数を大きく低減させたにもかかわらず、比較例の正確率とほぼ同程度の値を得ることができた。
【0112】
ここで、
図10を参照しながら、本発明の第1実施形態における推定処理について説明する。
図10は、本発明の第1実施形態における推定処理を説明するための図である。
【0113】
本発明の第1実施形態における情報推定装置1を用いて推定処理を行う場合、上述の再学習段階によって設定された学習済みニューラルネットワークへの入力データとして、「時間フレーム数」×「主要関節点数」×「主要関節点の座標数(2次元又は3次元などの空間的座標数)」の次元を持つ推定対象データが入力される。推定対象データが入力されると、任意の層11によって計算処理が実施され、コンボリューション層12には、「時間フレーム数」×「主要関節点数」×「特徴量数」の次元を持つデータが入力される。
【0114】
コンボリューション層12に入力された「時間フレーム」×「主要関節点数」×「特徴量数」の次元を持つデータは、コンボリューション層12における畳み込み処理によって、「時間フレーム」×「主要関節点数」×「特徴量数」の次元を持つデータに変換されて出力される。
【0115】
コンボリューション層12が出力したデータは、プーリング層13に入力される。プーリング層13では、コンボリューション層12が出力したデータに対して、平均値の算出又は最大値の抽出などを実施することによって関節点数及び時間の次元が潰され、「特徴量数」の次元を持つデータに変換されて出力される。
【0116】
プーリング層13が出力したデータは、全結合層14に入力される。全結合層14では、プーリング層13が出力したデータは、それぞれの値の相関を反映した「推定行動数」(分類数)の次元を持つデータに変換されて出力される。
【0117】
全結合層14が出力したデータは、ソフトマックス層により構成される出力層15に入力される。ソフトマックス層では、例えば、全結合層14が出力したデータの正規化が行われて、各行動の推定確率(スコア)を含んだ「推定行動数」の次元を持つデータに変換されて出力される。この「推定行動数」の次元を持つデータに含まれる各行動の推定確率であるスコアを参照することで、「時間フレーム数」×「主要関節点数」×「座標数」の次元を持つ推定対象データが、どのような行動から得られたものであるかを推測することが可能である。
【0118】
このように、本発明の第1実施形態における情報推定装置1では、上述の再学習段階によって設定された学習済みニューラルネットワークを用いることで、未知の状態の推定対象モデルから得られた時系列データに対して推定処理を行い、推定対象モデル全体の状態が事前に決められた分類のうちのいずれであるかを推定することができる。推定処理では、「時間フレーム数」×「主要関節点数」×「主要関節点の座標数(2次元又は3次元などの空間的座標数)」からなるテンソルで表されるデータが入力データとして用いられ、この入力データに基づいて骨格モデルの状態(行動)を特定する推定結果が出力される。すなわち、本発明の第1実施形態における情報推定装置1では、上述の再学習段階によって設定された学習済みネットワークに軽量化及び簡略化されたデータを入力することで、推定結果の正解率をほとんど落とさずに維持しながら、ニューラルネットワークの計算処理の負荷を軽減させることができるようになる。
【0119】
<第2実施形態>
本発明の第2実施形態について説明する。
【0120】
上述した本発明の第1実施形態では、関節点及びノードなどのモデル要素同士の相関を調べるために、学習データ又はテストデータなどの正解が与えられた時系列データ中のすべてのモデル要素のヒートマップ値を集めた収集リストを作成し、すべてのモデル要素のヒートマップ値を含む相関リストから相関値を計算している。
【0121】
これに対して、本発明の第2実施形態では、さらに相関値の正確性を向上させるため、時系列データ中の有意なデータのヒートマップ値だけを含む収集リストを作成して、相関値を計算することを提案する。
【0122】
上述した本発明の第1実施形態では、
図4に示すように、学習済みニューラルネットワークに学習データ又はテストデータなどの正解が与えられた時系列データを入力して、全結合層14が出力したデータをヒートマップとして収集している。
【0123】
ただし、学習データ及びテストデータにも質の良し悪しがある。学習データ及びテストデータの作成時には、所定の目的の行動を行っている人間をカメラなどで所定時間だけ撮影することで時系列データを取得する。しかしながら、このとき人間は所定時間中ずっと所定の目的の行動を行っているわけではなく、例えば、撮影の開始時又は終了時は何も行動を行わっていない瞬間(以下、無反応期間と記載する)が含まれている場合がある。
【0124】
以下、無反応期間について説明する。
図11は、本発明の第2実施形態において着目する「無反応期間」を説明するための図である。
図11の中央部には、人間の指差し行動を30bpsで4秒間撮影して合計120個の時間フレームを取得し、これら合計120個の時間フレームから、35個の関節点(3次元の空間的座標)を定義した骨格モデルを用いて得られた各関節点のヒートマップ値が2次元マップによって示されている。このマップは、縦軸が時間、横軸が関節点であり、縦軸の時間及び横軸の関節点が交差する位置において、特定の時間における特定の関節点のヒートマップ値が、輝度(暗いほど不活性、明るいほど活性)によって表されている。
【0125】
図11に示すように、例えば4秒間の指差し行動であっても、4秒間すべてにおいて、指差し行動が実行されているわけではない。例えば
図11に示すマップでは、最初の1秒間は、何も行動していない無反応期間が含まれている。学習データ及びテストデータは、こうした無反応期間を含んだデータである。上述した第1実施形態では、学習データ及びテストデータの時間(例えば4秒間)内のすべての値を対象としてヒートマップ値を収集しているが、その結果、上述した無反応期間におけるヒートマップ値も含んだ収集リストが作成されて、相関値の計算が行われてしまうことになる。
【0126】
そこで、第2実施形態では、時系列データの時間フレームにおいて、無反応期間の時間フレームを取り除き、推定したい目的の行動を実際に行っている時間フレームのみを抽出して各関節点のヒートマップ値を収集することを提案する。具体的には、ある時系列データにおいて、毎時間フレームごとに、各関節点のヒートマップ値の合計値を算出して、その時間フレームでのすべての関節点のヒートアップ値の合計値が所定の閾値より低い場合には、その時間フレームを無反応期間とみなして削除する処理を行う。その結果、正解の行動のスコアに寄与している割合が高い時間フレームのみ時系列データ中の有意なデータとして残したうえで、すべての関節点のヒートマップ値を関節点ごとに含む収集リストを作成し、各関節点同士の相関値の計算を行うようにする。
【0127】
以下、
図12を参照しながら、本発明の第2実施形態における情報推定装置1の収集リスト作成部30において実行される無反応期間削除処理について説明する。
図12は、本発明の第2実施形態における情報推定装置1の収集リスト作成部50において実行される無反応期間削除処理の一例を示すフローチャートである。
【0128】
図12に示すように、収集リスト作成部30は、まず、収集リスト格納部40に格納されている収集リストを取得する(ステップS11)。なお、ここでは一例として、収集リスト作成部30が、上述した第1実施形態において収集リスト格納部40に格納した収集リストを再取得して、収集リストの再作成を行う場合について説明するが、収集リスト作成部30は、ヒートマップ格納部20から取得したヒートマップ値を収集リストの行として追加する処理を行う際に下記の処理を行って、有意なデータのみを収集リストの行として追加するようにしてもよい。
【0129】
次いで、収集リスト作成部30は、特定の時間フレームt(最初の処理では例えばt=1に設定)を選択し(ステップS12)、選択した特定の時間フレームtに含まれるすべての関節点のヒートマップ値の合計値を計算する(ステップS13)。そして、収集リスト作成部30は、ステップS13で計算した合計値と、事前に設定された所定の閾値との大小関係を比較する(ステップS14)。ステップS14では、例えば合計値が閾値以上(合計値≧閾値)かどうかを確認する。
【0130】
ステップS14で合計値が閾値以上である場合(合計値≧閾値)には、この特定の時間フレームは無反応期間に属するものではなく有意なデータであると判断し、この特定の時間フレームを残す(ステップS15)。一方、ステップS14で合計値が閾値以上ではない場合(合計値<閾値)には、この特定の時間フレームは無反応期間に属するものであると判断して、この特定の時間フレームを削除する(ステップS16)。
【0131】
特定の時間フレームが無反応期間に属するかどうかの判断が終了すると、収集リスト作成部30は、まだ無反応期間に属するかどうかの判断を行っていない別の時間フレームが存在するかどうかを確認する(ステップS17)。特定の時間フレームとして選択していない別の時間フレームが存在する場合には、特定の時間フレームとして別の時間フレーム(例えばt=t+1)を選択し(ステップS18)、再度ステップS12以降の処理を行う。一方、時間フレームとして別の時間フレームが存在しない場合、すなわち、すべての時間フレームに関して無反応期間に属するかどうかの判断を行った場合には、無反応期間削除処理は終了となる。
【0132】
図13は、本発明の第2実施形態において作成される収集リストの一例を模式的に示す図である。
図13に示す収集リストの構成は、
図5に示す収集リストと同様であり、ここでは説明を省略する。
【0133】
図13に示す収集リストでは、上から2番目の時間フレーム2に関して、すべての関節点のヒートマップ値の合計値が閾値より小さい値(合計値<閾値)となっている。収集リスト作成部30は、この時間フレーム2は無反応期間に属するものであると判断して、この時間フレーム2を収集リストから削除する。
【0134】
このように収集リストから無反応期間に属する時間フレームが削除されることで、収集リスト作成部30によって再作成された収集リストには、無反応期間に属さない有意なデータのみが残る。上述した第1実施形態と同様に、相関値計算部50は、この収集リストから相関表を作成する処理を行い、主要モデル要素抽出部60は、この相関表から主要モデル要素を抽出する処理を行う。このとき、第2実施形態では、収集リストから無反応期間に属するデータが削除されているため、より高い精度で主要モデル要素を抽出することができる。また、無反応期間に属する有意ではないデータに係る計算処理を行う必要がなく、計算時間を短縮させることができる。
【産業上の利用可能性】
【0135】
本発明は、複数のモデル要素により構成される推定対象モデルに関して、ニューラルネットワークの推定結果に対する各モデル要素の影響度(寄与度)を判断し、ニューラルネットワークの推定結果に影響を及ぼす主要なモデル要素を抽出するとともに、ニューラルネットワークの推定結果にあまり影響を及ぼさないモデル要素を適切に省くことができるようになり、ニューラルネットワークに係る技術全般に適用可能である。また、本発明は、ニューラルネットワークによる推定正解率を維持しながら、計算処理の高速化(計算時間の短縮)や計算装置のハードウェアの軽量化(メモリ使用量の低減)を実現することができるため、例えば自動車や歩行者などの移動体に係る推定など、高速処理及び高い信頼性が必要とされる環境で大いにその機能が発揮されるものである。
【符号の説明】
【0136】
1 情報推定装置
10 推定処理部
11 任意の層(入力層+中間層)
12 コンボリューション層
13 プーリング層
14 全結合層
15 出力層(ソフトマックス層)
20 ヒートマップ格納部
30 収集リスト作成部
40 収集リスト格納部
50 相関値計算部
60 主要モデル要素抽出部