IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-182085行動認識装置、学習装置、および行動認識方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182085
(43)【公開日】2023-12-26
(54)【発明の名称】行動認識装置、学習装置、および行動認識方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20231219BHJP
【FI】
G06T7/00 660Z
G06T7/00 350B
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022095486
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】根尾 敦
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA04
5L096EA13
5L096EA33
5L096EA39
5L096FA33
5L096FA60
5L096FA66
5L096FA67
5L096FA69
5L096GA30
5L096GA51
5L096HA11
5L096KA04
5L096MA07
(57)【要約】
【課題】形状の一部が欠損した認識対象の複数種類の行動を高精度に認識する場合に、記憶容量の低減および行動認識の高速化を図ること。
【解決手段】行動認識装置は、多変量解析で統計的な成分を生成する成分分析により学習対象の形状から得られる学習対象に関する成分群と、学習対象の行動と、を用いて学習された行動分類モデルにアクセス可能であり、解析対象データから認識対象の形状を検出し、認識対象の形状のうち欠損箇所の位置を示す欠損位置情報を生成し、非欠損情報から欠損箇所を補間し、補間後の非欠損情報を認識対象の形状として更新し、成分分析により、補間された認識対象の形状に基づいて、学習対象に関する成分群と同数の認識対象に関する成分群を生成し、行動分類モデルに、生成された認識対象に関する成分群と、欠損位置情報と、を入力することにより、認識対象の行動を示す認識結果を出力する。
【選択図】図1
【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する行動認識装置であって、
多変量解析で統計的な成分を生成する成分分析により学習対象の形状から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて学習された行動分類モデルにアクセス可能であり、
前記プロセッサは、
解析対象データから認識対象の形状を検出する検出処理と、
前記検出処理によって検出された前記認識対象の形状のうち欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、
前記欠損箇所を含む前記認識対象の形状のうち前記欠損箇所以外の箇所である非欠損情報から前記欠損箇所を補間し、補間後の前記非欠損情報を前記認識対象の形状として更新する補間処理と、
前記成分分析により、前記補間処理によって補間された前記認識対象の形状に基づいて、前記学習対象に関する成分群と同数の前記認識対象に関する成分群を生成する成分分析処理と、
前記行動分類モデルに、前記成分分析処理によって生成された前記認識対象に関する成分群と、前記欠損位置情報と、を入力することにより、前記認識対象の行動を示す認識結果を出力する行動認識処理と、
を実行することを特徴とする行動認識装置。
【請求項2】
請求項1に記載の行動認識装置であって、
前記行動認識処理では、前記プロセッサは、前記解析対象データの取得元の環境を示す環境情報と、前記認識対象に関する成分群と、前記学習対象の行動と、前記欠損位置情報とを、前記行動分類モデルに入力することにより、前記認識対象の行動を示す認識結果を出力する、
ことを特徴とする行動認識装置。
【請求項3】
請求項1に記載の行動認識装置であって、
前記行動分類モデルは、多変量解析で統計的な成分を生成する次元削減により前記学習対象の形状から得られる前記学習対象に関する第1変数からの昇順の成分群と、前記学習対象の行動と、を用いて学習されており、
前記成分分析処理では、前記プロセッサは、前記次元削減により、前記補間処理によって補間された前記認識対象の形状に基づいて、前記学習対象に関する第1変数からの昇順の成分群と同数の前記認識対象に関する第1変数からの昇順の成分群を生成する、
ことを特徴とする行動認識装置。
【請求項4】
請求項1に記載の行動認識装置であって、
前記行動分類モデルは、前記学習対象の形状および前記形状を構成する複数の頂点の角度から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて学習されており、
前記プロセッサは、
前記認識対象の形状に基づいて、前記認識対象の形状を構成する複数の頂点の角度を算出する算出処理を実行し、
前記成分分析処理では、前記プロセッサは、前記認識対象の形状と、前記算出処理によって算出された前記認識対象の頂点の角度と、に基づいて、前記認識対象に関する成分群を生成する、
ことを特徴とする行動認識装置。
【請求項5】
請求項1に記載の行動認識装置であって、
前記行動分類モデルは、前記学習対象の形状および前記学習対象の移動量から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて学習されており、
前記プロセッサは、
前記認識対象の異なる時点の複数の形状に基づいて、前記認識対象の移動量を算出する算出処理を実行し、
前記成分分析処理では、前記プロセッサは、前記認識対象の形状と、前記算出処理によって算出された前記認識対象の移動量と、に基づいて、前記認識対象に関する成分群を生成する、
ことを特徴とする行動認識装置。
【請求項6】
請求項1に記載の行動認識装置であって、
前記プロセッサは、
前記認識対象の形状の大きさを正規化する第1正規化処理を実行し、
前記成分分析処理では、前記プロセッサは、前記第1正規化処理による正規化後の前記認識対象の形状に基づいて、前記認識対象に関する成分群を生成する、
ことを特徴とする行動認識装置。
【請求項7】
請求項1に記載の行動認識装置であって、
前記プロセッサは、前記認識対象の形状および頂点の角度が取りうる値域を正規化する第2正規化処理を実行し、
前記成分分析処理では、前記プロセッサは、前記第2正規化処理による第2正規化後の前記認識対象の形状および頂点の角度に基づいて、前記認識対象に関する成分群を生成する、
ことを特徴とする行動認識装置。
【請求項8】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する学習装置であって、
前記プロセッサは、
学習対象の形状および行動を含む教師データを取得する取得処理と、
前記取得処理によって取得された前記学習対象の形状を欠損させる欠損処理と、
前記欠損処理によって前記学習対象の形状から欠損させた欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、
前記学習対象の形状のうち前記欠損処理によって欠損させた前記欠損箇所以外の箇所である非欠損情報から補間し、補間後の前記非欠損情報を前記学習対象の形状として更新する補間処理と、
多変量解析で統計的な成分を生成する成分分析により、前記補間処理によって補間された前記学習対象の形状に基づいて、前記学習対象に関する成分群を生成する成分分析処理と、
前記成分分析処理によって生成された前記学習対象に関する成分群と、前記学習対象の行動と、前記欠損位置情報と、に基づいて、前記学習対象の行動を学習して、前記学習対象の行動を分類する行動分類モデルを生成する行動学習処理と、
を実行することを特徴とする学習装置。
【請求項9】
請求項8に記載の学習装置であって、
前記プロセッサは、前記学習対象の形状に基づいて、前記学習対象の形状を構成する複数の頂点の角度を算出する算出処理を実行し、
前記成分分析処理では、前記プロセッサは、前記学習対象の形状と、前記算出処理によって算出された前記学習対象の頂点の角度と、に基づいて、前記学習対象に関する成分群を生成する、
ことを特徴とする学習装置。
【請求項10】
請求項8に記載の学習装置であって、
前記プロセッサは、前記学習対象の異なる時点の複数の形状に基づいて、前記学習対象の移動量を算出する算出処理を実行し、前記成分分析処理では、前記プロセッサは、前記学習対象の形状と、前記算出処理によって算出された前記学習対象の移動量と、に基づいて、前記学習対象に関する成分群を生成する、
ことを特徴とする学習装置。
【請求項11】
請求項8に記載の学習装置であって、
前記プロセッサは、前記学習対象の形状の大きさを正規化する第1正規化処理を実行し、前記成分分析処理では、前記プロセッサは、前記第1正規化処理による第1正規化後の前記学習対象の形状に基づいて、前記学習対象に関する成分群を生成する、
ことを特徴とする学習装置。
【請求項12】
請求項9に記載の学習装置であって、
前記プロセッサは、前記学習対象の形状および頂点の角度が取りうる値域を正規化する第2正規化処理を実行し、前記成分分析処理では、前記プロセッサは、前記第2正規化処理による第2正規化後の前記学習対象の形状および頂点の角度に基づいて、前記学習対象に関する成分群を生成する、
ことを特徴とする学習装置。
【請求項13】
請求項8に記載の学習装置であって、
前記欠損処理では、前記プロセッサは、前記学習対象の形状のうち特定の箇所を欠損させる、
ことを特徴とする学習装置。
【請求項14】
請求項8に記載の学習装置であって、
前記取得処理では、前記プロセッサは、前記学習対象の形状を取得した際の環境情報を取得し、
前記行動学習処理では、前記プロセッサは、前記学習対象に関する成分群と、前記学習対象の行動と、前記欠損位置情報と、前記環境情報と、に基づいて、前記学習対象の行動を学習して、前記学習対象の行動を分類する行動分類モデルを生成する、
ことを特徴とする学習装置。
【請求項15】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する行動認識装置が実行する行動認識方法であって、
多変量解析で統計的な成分を生成する成分分析により学習対象の形状から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて学習された行動分類モデルにアクセス可能であり、
前記プロセッサは、
解析対象データから認識対象の形状を検出する検出処理と、
前記検出処理によって検出された前記認識対象の形状のうち欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、
前記欠損箇所を含む前記認識対象の形状のうち前記欠損箇所以外の箇所である非欠損情報から前記欠損箇所を補間し、補間後の前記非欠損情報を前記認識対象の形状として更新する補間処理と、
前記成分分析により、前記補間処理によって補間された前記認識対象の形状に基づいて、前記学習対象に関する成分群と同数の前記認識対象に関する成分群を生成する成分分析処理と、
前記行動分類モデルに、前記成分分析処理によって生成された前記認識対象に関する成分群と、前記欠損位置情報と、を入力することにより、前記認識対象の行動を示す認識結果を出力する行動認識処理と、
を実行することを特徴とする行動認識方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、行動認識装置、学習装置、および行動認識方法に関する。
【背景技術】
【0002】
本技術分野の背景技術として、特許文献1は、認識対象の複数種類の行動を高精度に認識する行動認識装置を開示する。この行動認識装置は、多変量解析で統計的な成分を生成する成分分析により学習対象の形状から得られる成分群と、学習対象の行動と、を用いて、成分群ごとに学習された行動分類モデル群にアクセス可能であり、解析対象データから認識対象の形状を検出し、成分分析により、認識対象の形状に基づいて、1以上の成分と、成分の各々の寄与率と、を生成し、各々の寄与率から得られる累積寄与率に基づいて、1以上の成分の各々の次元を示す序数を決定し、決定された次元を示す序数の成分を1以上含む特定の成分群と同じ成分群で学習された特定の行動分類モデルを、行動分類モデル群から選択し、特定の行動分類モデルに特定の成分群を入力することにより、認識対象の行動を示す認識結果を出力する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-43974号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した特許文献1は、行動分類モデル群から特定の行動分類モデルを選択して行動認識する技術であり、1つの行動分類モデルを駆使して行動認識する点については、考慮されていない。
【0005】
本発明は、形状の一部が欠損した認識対象の複数種類の行動を高精度に認識する場合に、記憶容量の低減および行動認識の高速化を図ることを目的とする。
【課題を解決するための手段】
【0006】
本願において開示される発明の一側面となる行動認識装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する行動認識装置であって、多変量解析で統計的な成分を生成する成分分析により学習対象の形状から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて学習された行動分類モデルにアクセス可能であり、前記プロセッサは、解析対象データから認識対象の形状を検出する検出処理と、前記検出処理によって検出された前記認識対象の形状のうち欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、前記欠損箇所を含む前記認識対象の形状のうち前記欠損箇所以外の箇所である非欠損情報から前記欠損箇所を補間し、補間後の前記非欠損情報を前記認識対象の形状として更新する補間処理と、前記成分分析により、前記補間処理によって補間された前記認識対象の形状に基づいて、前記学習対象に関する成分群と同数の前記認識対象に関する成分群を生成する成分分析処理と、前記行動分類モデルに、前記成分分析処理によって生成された前記認識対象に関する成分群と、前記欠損位置情報と、を入力することにより、前記認識対象の行動を示す認識結果を出力する行動認識処理と、を実行することを特徴とする。
【0007】
本願において開示される発明の一側面となる学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する学習装置であって、前記プロセッサは、学習対象の形状および行動を含む教師データを取得する取得処理と、前記取得処理によって取得された前記学習対象の形状を欠損させる欠損処理と、前記欠損処理によって前記学習対象の形状から欠損させた欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、前記学習対象の形状のうち前記欠損処理によって欠損させた前記欠損箇所以外の箇所である非欠損情報から補間し、補間後の前記非欠損情報を前記学習対象の形状として更新する補間処理と、多変量解析で統計的な成分を生成する成分分析により、前記補間処理によって補間された前記学習対象の形状に基づいて、前記学習対象に関する成分群を生成する成分分析処理と、前記成分分析処理によって生成された前記学習対象に関する成分群と、前記学習対象の行動と、前記欠損位置情報と、に基づいて、前記学習対象の行動を学習して、前記学習対象の行動を分類する行動分類モデルを生成する行動学習処理と、を実行することを特徴とする。
【発明の効果】
【0008】
本発明の代表的な実施の形態によれば、形状の一部が欠損した認識対象の複数種類の行動を高精度に認識する場合に、記憶容量の低減および行動認識の高速化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0009】
図1図1は、実施例1にかかる行動認識システムのシステム構成例を示す説明図である。
図2図2は、コンピュータのハードウェア構成例を示すブロック図である。
図3図3は、学習データの一例を示す説明図である。
図4図4は、実施例1にかかる行動認識システムの機能的構成例を示すブロック図である。
図5図5は、骨格情報処理部の詳細な機能的構成例を示すブロック図である。
図6図6は、関節角度算出部が実行する関節角度の詳細な算出方法を示す説明図である。
図7図7は、移動量算出部が実行するフレーム間の移動量の詳細な算出方法の例を示す説明図である。
図8図8は、正規化部が実行する骨格情報の正規化の詳細な手法を示す説明図である。
図9図9は、教師信号DBが保持する教師信号の詳細な例を示す説明図である。
図10図10は、教師信号を入力データとして主成分分析部が生成した主成分を、主成分空間上にプロットした例を示す説明図である。
図11図11は、主成分分析部および欠損位置情報生成部が、行動学習部に出力するデータを示す説明図である。
図12図12は、行動学習部が行動を学習し、行動認識部が行動を分類するための詳細な手法を示す説明図である。
図13図13は、主成分分析部が次元数決定の際に用いる累積寄与率の推移を示すグラフである。
図14図14は、実施例1にかかるサーバ(学習装置)による学習処理の詳細な処理手順例を示すフローチャートである。
図15図15は、実施例1にかかる骨格情報処理の詳細な処理手順例を示すフローチャートである。
図16図16は、実施例1にかかるクライアント(行動認識装置)による行動認識処理手順例を示すフローチャートである。
図17図17は、実施例2にかかる行動認識システムの機能的構成例を示すブロック図である。
図18図18は、実施例3にかかる教師信号DBが保持する教師信号の詳細な例を示す説明図である。
図19図19は、実施例3にかかる主成分分析部および欠損位置情報生成部が、行動学習部に出力するデータを示す説明図である。
図20図20は、実施例3にかかる行動認識システムの機能的構成例を示すブロック図である。
図21図21は、実施例3にかかるクライアント(行動認識装置)による行動認識処理手順例を示すフローチャートである。
図22図22は、実施例4にかかる骨格情報処理部の機能的構成例を示すブロック図である。
図23図23は、実施例4にかかる骨格情報処理部の詳細な処理手順例を示すフローチャートである。
図24図24は、実施例5にかかる行動認識システムの機能的構成例を示すブロック図である。
図25図25は、実施例6にかかる行動認識システムの機能的構成例を示すブロック図である。
図26図26は、行動学習部および行動認識部が行動を分類するための基礎となる手法である決定木を示す説明図である。
図27図27は、決定木による分類の詳細な展開方法を示す説明図である。
図28図28は、アンサンブル学習と、行動学習部と行動認識部が行動を分類するために用いる手法を示す説明図である。
図29図29は、実施例7にかかる行動認識システムの機能的構成例を示すブロック図である。
図30図30は、実施例7にかかるサーバ(学習装置)による学習処理の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明に係る実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。
【0011】
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【0012】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【実施例0013】
<行動認識システム>
図1は、実施例1にかかる行動認識システムのシステム構成例を示す説明図である。行動認識システム100は、サーバ101と、1台以上のクライアント102と、を有する。サーバとクライアントとは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク105を介して通信可能に接続される。サーバ101は、クライアント102を管理するコンピュータである。クライアント102は、センサ103に接続され、センサ103からのデータを取得するコンピュータである。
【0014】
センサ103は、解析環境から解析対象データを検出する。センサ103は、たとえば、静止画または動画を撮像するカメラである。また、センサ103は、音声や匂いを検出してもよい。教師信号DB104は、学習データ(人の骨格情報)と行動情報(たとえば、「立つ」、「倒れる」といった人の姿勢や動作)との組み合わせを教師信号として保持するデータベースである。教師信号DB104は、サーバ101に記憶されていてもよく、サーバ101またはクライアント102とネットワーク105を介して通信可能なコンピュータに接続されていてもよい。
【0015】
行動認識システム100は、教師信号DB104を用いた学習機能と、学習機能により得られた行動分類モデルを用いた行動認識機能と、を有する。行動分類モデルとは、人や動物などの認識対象の行動を分類するための学習モデルである。学習機能および行動認識機能は、行動認識システム100に実装されていれば、サーバ101およびクライアント102のいずれに実装されていてもよい。たとえば、サーバ101が学習機能を実装し、クライアント102が行動認識機能を実装してもよい。また、サーバ101が学習機能および行動認識機能を実装し、クライアント102は、センサ103からのデータをサーバ101に送信したり、サーバ101からの行動認識機能による行動認識結果を受け付けたりしてもよい。
【0016】
また、クライアント102が学習機能および行動認識機能を実装し、サーバ101は、クライアント102からの行動分類モデルや行動認識結果を管理してもよい。なお、学習機能を実装するコンピュータを学習装置と称し、学習機能および行動認識機能のうち少なくとも行動認識機能を実装するコンピュータを行動認識装置と称す。また、図1では、クライアントサーバ型の行動認識システム100を例に挙げたが、スタンドアロン型の行動認識装置でもよい。実施例1では、説明の便宜上、サーバ101が学習機能を実装し(学習装置)、クライアント102が行動認識機能を実装した(行動認識装置)行動認識システム100を例に挙げて説明する。
【0017】
<コンピュータのハードウェア構成例>
図2は、コンピュータ(サーバ101、クライアント102)のハードウェア構成例を示すブロック図である。コンピュータ200は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インターフェース(通信IF)205と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、コンピュータ200を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力する。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス204は、データを出力する。出力デバイス204としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF205は、ネットワーク105と接続し、データを送受信する。
【0018】
<学習データ>
図3は、学習データの一例を示す説明図である。学習データ380は、対象者ごとに骨格情報320と、関節角度370と、により構成される。骨格情報320は、センサ103から取得した解析対象データを基に検出される。関節角度370は、骨格情報320を基に算出される。対象者一人分の学習データ380は、たとえば、その対象者が被写体となる複数の時系列なフレームの各々から得られる骨格情報320および関節角度370の組み合わせにより構成される。
【0019】
骨格情報320は、複数(本例では18個)の骨格点300~317の各々について、名前321と、x軸におけるx座標値322と、x軸に直交するy軸におけるy座標値323と、を有する。関節角度370も、複数(本例では18個)の骨格点300~317の各々について、名前371を有する。なお、名前371において、∠a-b-c(a,b,cは骨格点の名前321)は、線分abと線分bcとのなす骨格点bの関節角度370である。なお、骨格情報320は、たとえば、指の関節を含んでもよい。また、関節角度370も、これら以外の関節角度370を含んでもよい。
【0020】
なお、図3では、骨格点300~317の座標値を2次元の位置情報(x座標値およびy座標値の組み合わせ)としたが、3次元の位置情報としてもよい。具体的には、たとえば、x軸およびy軸に直交するz軸(たとえば、奥行き方向)におけるz座標値が追加されてもよい。
【0021】
<行動認識システム100の機能的構成例>
図4は、実施例1にかかる行動認識システム100の機能的構成例を示すブロック図である。サーバ101は、教師信号取得部401と、欠損発生部402と、欠損制御部421と、欠損位置情報生成部422と、欠損情報補間部423と、骨格情報処理部403と、主成分分析部404と、行動学習部406と、を有する。クライアント102は、骨格検出部451と、欠損位置情報生成部462と、欠損情報補間部461と、骨格情報処理部453と、主成分分析部454と、行動認識部457と、を有する。
【0022】
これらは、具体的には、たとえば、図2に示した記憶デバイス202に記憶されたプログラムをプロセッサ201に実行させることにより実現される。まず、サーバ101側の機能的構成例について説明する。
【0023】
教師信号取得部401は、教師信号DB104から取得した教師信号について学習に用いる教師信号を単数、または複数取得して、選択した教師信号を欠損発生部402に出力する。教師信号における骨格情報320は、骨格点の欠損が1つもない非欠損情報である。
【0024】
欠損制御部421は、乱数、または予め定めた数に従って、欠損させる骨格点を設定し、欠損発生情報として、欠損発生部402と、欠損位置情報生成部422と、に出力する。欠損させる骨格点の数は、単数、複数、または欠損させないことを示す0の場合もある。ここで予め定めた数とは、たとえば、後述する骨格検出部451が、センサ103から取得した解析対象データに映る人の骨格情報320を検出する際に検出漏れの可能性が高い骨格位置を示す数とする。
【0025】
欠損発生部402は、教師信号取得部401から取得した教師信号の内、骨格情報320に対して欠損発生情報に従い骨格点を欠損させる。欠損発生部402は、欠損後(欠損させる骨格点が0個の場合も含む)の骨格情報320を教師信号内の骨格情報320として更新する。またノイズ耐性を強くするため、骨格点を欠損させる際に骨格情報320に対して、欠損させない骨格点の位置をずらすようなノイズを加えて、骨格情報320を更新してもよい。欠損した単数または複数の骨格情報320を「欠損情報」と表記する。
【0026】
そして、欠損発生部402は、欠損させた骨格点の名前321および位置情報(x座標値322、y座標値323)である欠損情報を含む教師信号を、欠損情報補間部423に出力する。
【0027】
欠損情報補間部423は、欠損情報を、欠損していない骨格情報320から補間する。欠損していない単数または複数の骨格情報320を非欠損情報と表記する。
【0028】
具体的には、たとえば、欠損情報補間部423は、非欠損情報の内、欠損情報の骨格点と連結されていた骨格点または欠損情報の骨格点に近い位置にある骨格点から、欠損情報を補間してもよい。
【0029】
また、欠損情報補間部423は、欠損情報に対して予め定めた位置情報を代入してもよい。また、欠損情報補間部423は、これまでに取得した別のフレームの骨格情報320について欠損情報を含むと判断された骨格情報320の欠損情報を用いて補間してもよい。このように、欠損情報の補間手法は限定されない。欠損情報補間部423は、補間した骨格情報320を骨格情報処理部403に出力する。
【0030】
欠損位置情報生成部422は、欠損制御部421からの欠損発生情報より、欠損させた骨格点の位置情報を欠損位置情報として、行動学習部406に出力する。
【0031】
骨格情報処理部403は、欠損情報補間部423による補間後の骨格情報320を処理する。具体的には、たとえば、骨格情報処理部403は、取得した補間後の教師信号の内、骨格情報320から関節角度370とフレーム間の移動量とを算出する。また、骨格情報処理部403は、骨格情報320に対して絶対的な位置情報を除外し、骨格情報320の大きさが一定となる正規化を実行する。そして、骨格情報処理部403は、関節角度370と、フレーム間の移動量と、正規化した骨格情報320と、を主成分分析部404に出力する。
【0032】
図5は、骨格情報処理部403,453の詳細な機能的構成例を示すブロック図である。骨格情報処理部403,453は、関節角度算出部501と、移動量算出部502と、正規化部503と、を有する。
【0033】
関節角度算出部501は、取得した教師信号の内、補間後の骨格情報320から関節角度370を算出し、移動量算出部502と正規化部503を介して主成分分析部404に出力する。
【0034】
移動量算出部502は、取得した教師信号の内、補間後の骨格情報320からフレーム間の移動量を算出し、正規化部503を介して主成分分析部404に出力する。
【0035】
正規化部503は、取得した教師信号の内、補間後の骨格情報320に対して絶対的な位置情報を除外し、補間後の骨格情報320の大きさが一定となる正規化を実行して主成分分析部404に出力する。
【0036】
図4に戻り、主成分分析部404は、骨格情報処理部403から取得した教師信号の内、正規化した骨格情報320と、関節角度370と、フレーム間の移動量と、を入力データとして、主成分分析を実行して単数または複数の主成分を生成し、行動学習部406に出力する。なお、骨格情報320、関節角度370、およびフレーム間の移動量のうち、少なくとも正規化した骨格情報320が入力データであればよい。
【0037】
主成分分析では下記式(1)に示す通り、入力データxに係数wijを各々乗算し、加算することで主成分yを生成する。主成分分析の一般式を下記式(2)に示す。係数wijは、下記式(3)に示す通り、yの分散をV(y)として定義した場合、分散V(y)が最大となるように定める。
【0038】
ただし、係数wijに制約を持たせない場合、分散V(y)の絶対量は無限に大きく取ることができ、係数wijは一意に決定することができないため、下記式(4)の制約を付すことが望ましい。また、情報の重複を無くすため、新たに生成する主成分yとこれまでに生成した主成分yの共分散は0となる下記式(5)の制約を付すことが望ましい。
【0039】
【数1】
【0040】
ただし、制約として付す上記式(4)と上記式(5)は、これに限らず別の制約条件を付したり、または制約を外したりして係数wijを算出しても問題ない。こうして生成した新たな主成分yの分散V(yj)について下記式(6)に示す通りλとして別途定義した場合、下記式(7)に示す通り入力データxの分散V(x)の合計とλの合計は等しい。
【0041】
【数2】
【0042】
ここでpは入力データxの数とする。新たに生成した主成分yの分散V(y)は高い方が元の情報をより多く反映しており、分散値が高い主成分から順に第1、第2、…、第m主成分という。新たに生成した変数yの分散と元のデータの分散の比を寄与率といい、下記式(8)で示される。また、第1主成分の寄与率から分散値の降順(主成分の序数mの昇順)に寄与率を加算した結果を累積寄与率といい、下記式(9)で示される。
【0043】
【数3】
【0044】
寄与率と累積寄与率は、新たに生成した主成分yや生成した複数の主成分が元のデータの情報量をどの程度表しているかといった尺度となり、主成分と共に生成される。なお、多変量解析で統計的な成分を生成する成分分析の一例として、主成分分析を適用したが、主成分分析の替わりに、同じく成分分析の一例である独立成分分析を実行してもよい。
【0045】
独立成分分析の場合、主成分は独立成分となる。この独立成分が入力データxiにどのくらい影響を与えているのかを示す指標として、寄与率を用いてもよい。独立成分分析では、独立成分ごとの独立成分分析における混合係数行列の2乗和が、各独立成分の強度となる。
【0046】
独立成分の強度は独立成分の入力データxにおける分散を示す。すなわち、独立成分分析によって得られた独立成分はいずれも分散が1に統一されるため、混合係数の2乗和をとれば入力データxの分散になる。そして、独立成分の強度を、全独立成分の強度の総和で割った値を、その独立変数の寄与率とすればよい。
【0047】
主成分分析部404は、1以上の成分の各々の次元を示す序数kを制御する。具体的には、たとえば、主成分分析部404は、生成した主成分の内、行動学習部406で学習に用いる主成分を分散値の高い順に何次元まで使用するかを決定し、第1主成分から、決定した次元k(kは1以上の整数)を序数とする第k主成分までの主成分を、分散値の高い順に行動学習部406に出力する。具体的には、たとえば、主成分分析部404は、累積寄与率のしきい値以上でかつ当該しきい値に最も近い主成分の次元kを採用する。もしくは、主成分分析部404は、累積寄与率のしきい値以下でかつ当該しきい値に最も近い主成分の次元kを採用する。
【0048】
行動学習部406は、主成分分析部404から取得した主成分と、欠損位置情報生成部422から取得した欠損位置情報と、教師信号DB104から取得した教師信号内の行動情報とを、関連付けて学習する。具体的には、たとえば、行動学習部406は、主成分分析部404から取得した第1主成分から第k主成分までの主成分群と欠損位置情報とを連結したデータを説明変数とし、教師信号DB104から取得した教師信号内の行動情報を目的変数として、機械学習により、行動分類モデルを生成する。行動学習部406は、学習の結果生成した行動分類モデルを、行動認識部457に出力する。
【0049】
つぎに、クライアント102側の機能的構成例について説明する。骨格検出部451は、センサ103から取得した解析対象データに映る人の骨格情報320を検出し、欠損情報補間部461と欠損位置情報生成部462とに出力する。骨格情報320の検出には機械学習により生成した人の骨格情報320を推定可能なNN(neural network)を用いてもよいし、検出したい人の骨格点にマーカーを付与して、画像に映るマーカー位置から骨格情報320を検出してもよく、骨格情報320を検出する方法は限定されない。骨格情報320のうちx座標値322およびy座標値323が検出されずに不定値となった骨格点が欠損情報であり、骨格情報320のうち欠損情報を除く骨格点が非欠損情報である。たとえば、骨格点300~317のうち骨格点310のx座標値322およびy座標値323のみが不定値であれば、骨格点310が欠損情報であり、骨格点300~309、311~317が非欠損情報である。
【0050】
欠損情報補間部461は、欠損情報補間部423と同様の機能を有する。欠損情報補間部461は、骨格検出部451からの骨格情報320に対して、欠損情報補間部423と同様の処理を実行して、欠損情報(上記の例では骨格点310)を、非欠損情報(上記の例では骨格点300~309、311~317)から補間し、補間した骨格情報320を骨格情報処理部453に出力する。
【0051】
欠損位置情報生成部462は、欠損位置情報生成部422と同様の機能を有する。欠損位置情報生成部462は、骨格検出部451からの骨格情報320に対して、欠損位置情報生成部422と同様の処理を実行して、骨格検出部451で検出した骨格情報320の内、オクルージョンなどにより取得できない骨格点があるか否かを判断し、取得できなかった骨格点があれば、その骨格点を欠損箇所としてその位置を示す欠損位置情報を生成し、行動認識部457に出力する。
【0052】
骨格情報処理部453は、骨格情報処理部403と同様の機能を有する。骨格情報処理部453は、骨格検出部451で検出した骨格情報320に対して骨格情報処理部403と同様の処理を実行して、関節角度370と、フレーム間の移動量と、正規化した骨格情報320と、を主成分分析部454に出力する。
【0053】
主成分分析部454は、主成分分析部404と同様の機能を有する。主成分分析部454は、骨格情報処理部453からの出力データに対して主成分分析部404と同様の処理を実行して、単数または複数の主成分を生成し、行動認識部457に出力する。
【0054】
主成分分析部454は、各々の寄与率から得られる累積寄与率に基づいて、1以上の成分の各々の次元を示す序数kを決定する。具体的には、たとえば、主成分分析部454は、取得した寄与率および累積寄与率から、取得した主成分の内、分散の高い順に何次元までの主成分を行動認識部457に出力するかを示す次元数kを決定する。次元数kとは、主成分の次元を示す序数kである。たとえば、第1主成分であれば、次元数(序数)k=1であり、第2主成分であれば、次元数(序数)k=2である。主成分分析部454は、分散の高い順に第1主成分から第k主成分までの主成分群を行動認識部457に出力する。
【0055】
行動認識部457は、行動学習部406で生成した行動分類モデルと、第1主成分から第k主成分までの主成分群と、欠損位置情報と、に基づいて、センサ103から取得した解析対象データに映る人の行動を認識する。具体的には、たとえば、行動認識部457は、解析対象データから得らえた主成分群(第1主成分~第k主成分)と欠損位置情報とを、選択した行動分類モデルに入力することにより、解析対象データに映る人の行動を示す予測値を認識結果として出力する。
【0056】
<関節角度算出の例>
図6は、関節角度算出部501が実行する関節角度370の詳細な算出方法を示す説明図である。関節角度算出部501は、連結する3点の骨格点600~602において関節角度θを算出する。骨格点600~602の骨格情報620について、原点630を基準とする位置ベクトルO、A、Bのように各々定義する。関節角度算出部501は、骨格点600を原点とする相対ベクトルを下記式(10),(11)に示す通り算出し、算出したベクトルから下記式(12)が成立し、下記式(13)に示す通り逆余弦を算出することで関節角度θを算出する。
【0057】
【数4】
【0058】
<フレーム間の移動量算出の例>
図7は、移動量算出部502が実行するフレーム間の移動量の詳細な算出方法の例を示す説明図である。移動量算出部502は、フレーム間の移動量の算出において、同一被写体についての第Nフレーム目の骨格情報701と第N-Mフレーム目の骨格情報702とを用いる。N、Mは1以上の整数であり、N>Mである。Mの値は任意に設定可能である。下記式(14)~(16)に示す通り、移動量算出部502は、各フレーム間で示される同一人物の同一骨格点300~317の距離を各々算出する。18個の骨格点300~317のフレーム間の移動量が、当該人物についてのフレーム間の移動量となる。
【0059】
【数5】
【0060】
ただ、移動量算出部502が実行するフレーム間の移動量はこれに限定されるものではなく、下記式(17)に示す通り、移動量算出部502は、各フレーム間で示される同一人物の同一骨格点300~317の距離を各々算出し、全18個の骨格点300~317のフレーム間の移動量を合算した値を、当該人物についてのフレーム間の移動量としてもよい。
【数6】
【0061】
また、移動量算出部502は、第nフレームの骨格情報701と第n-mフレームの骨格情報702の内、重心となる重心骨格情報711と重心骨格情報712を用いてもよい。具体的には、たとえば、移動量算出部502は、下記式(18)~(19)に示す通り、人物ごとに重心を算出し、下記式(20)に示す通り、算出した重心に対して、当該人物についてのフレーム間の移動量を算出してもよい。
【0062】
【数7】
【0063】
<正規化の例>
図8は、正規化部503が実行する骨格情報320の正規化の詳細な手法を示す説明図である。まず、正規化部503は、(a)すべてまたは一部の骨格情報320から重心を算出し、(b)重心を原点とする相対座標に変換する。その後、正規化部503は、(c)18個の骨格点300~317を囲う最小の長方形の対角線の長さLで、(d)骨格情報320の各骨格点の位置情報を割る。(d)で得られた骨格情報320を教師信号とした場合、割り算後の骨格点300~317の位置情報も組み込まれることとなる。
【0064】
たとえば、正規化部503が実行されないと「180cmの人が地点Aで座る」といった行動について骨格検出および行動分類のための学習が実行されると、「地点A以外では座らない」、「180cm以外の人は座らない」といった判定が下される可能性がある。こうした限定を除外し、行動分類に汎用性を持たせるため、画像内の絶対的な位置情報と、骨格の大きさに関する情報について除去するため、正規化部503が骨格情報320の正規化を実行する。
【0065】
<教師信号DB104が保持する教師信号>
図9は、教師信号DB104が保持する教師信号の詳細な例を示す説明図である。解析対象データとなる(a)画像900に映る人において、(b)骨格情報320Aと、関節角度370(不図示)と、骨格情報320Aに関連付けられる(c)行動情報901(「立つ」)と、の組み合わせが、教師信号となる。同様に、解析対象データとなる(a)画像910に映る人において、(b)骨格情報320Bと、関節角度370(不図示)と、骨格情報320Bに関連付けられる(c)行動情報911(「倒れる」)と、の組み合わせが、教師信号となる。
【0066】
<主成分分析部404による次元削減>
図10は、教師信号を入力データとして主成分分析部404が生成した主成分を、主成分空間上にプロットした例を示す説明図である。凡例は教師信号に含まれる行動情報1000~1004を示す。
【0067】
図10において、(a)はX軸に第1主成分を、Y軸に第2主成分をとり、第2主成分までの情報を2次元平面上にプロットした例を示す。(b)はX軸に第1主成分を、Y軸に第2主成分をとり、Z軸に第3主成分をとり、第3主成分までの情報を3次元空間上にプロットした例を示す。
【0068】
(a)において、立つ1000と、座る1001と、倒れる1004は、第2主成分までの2次元平面上でも分離可能な様子が伺えるが、歩く1002と、しゃがむ1003は第2主成分までの2次元平面上では分離困難な様子が伺える。ここで、(b)において、第3主成分までを含めた3次元空間上で、歩く1002としゃがむ1003をプロットした場合、分離の可能性が拡大する場合がある。
【0069】
このため、主成分分析部404が生成した主成分を多く用いれば高精度な行動分類の可能性がある。ただし、主成分の次元を示す序数kを多くすると計算量は増加するため、精度と計算量からどこまでの主成分を考慮し、どのくらいの次元の空間で行動を表すかを判断する必要がある。
【0070】
したがって、主成分分析部404は、行動学習部406で学習に用いる主成分の最大序数を変化させ、第1主成分~最大序数の主成分までの主成分群を行動学習部406に出力する。具体的には、たとえば、上述した行動分類の要求精度(たとえば、最低限必要な主成分の次元を示す序数)または/および許容計算量をあらかじめ設定しておき、主成分分析部404が、行動学習部406で学習に用いる主成分の最大序数を変化させ、要求精度または/および許容計算量を最大限充足する序数を決定する。
【0071】
たとえば、要求精度が次元を示す序数「3」(第3主成分)という条件の場合、主成分分析部404は、最大序数を「3」に決定し、第1主成分~第3主成分までの主成分群を行動学習部406に出力する。
【0072】
また、許容計算量が条件に設定されている場合、主成分分析部404は、第1主成分から昇順に計算量を順次取得し、最大序数を、許容計算量をはじめて超えたときの序数(たとえば、「5」)より1つ少ない序数(たとえば、「4」)に決定し、第1主成分から最大序数k=4の第4主成分までの主成分群を行動学習部406に出力する。
【0073】
また、要求精度が次元を示す序数「3」(第3主成分)以上という条件で、かつ、許容計算量が条件に設定されている場合、第3主成分までの累積計算量が許容計算量以下であれば、主成分分析部404は、最大序数を「3」から「4」に変化させる。そして、第4主成分までの累積計算量が許容計算量を超えれば、主成分分析部404は、最大序数kを「3」に決定し、第1主成分~第3主成分までの主成分群を行動学習部406に出力する。
【0074】
一方、第3主成分までの累積計算量が許容計算量を超えれば、主成分分析部404は、最大序数を「3」から「2」に変化させる。そして、第2主成分までの累積計算量が許容計算量以下であれば、主成分分析部404は、最大序数kを「2」に決定し、第1主成分~第2主成分までの主成分群を行動学習部406に出力する。
【0075】
なお、行動学習部406に出力する主成分群は、第1主成分から昇順に限定する必要はない。たとえば、主成分分析部404は、予め定めた主成分群を特定の数だけ取り出してもよい。また、主成分分析部404は、特定の主成分群を除外した上で行動学習部406に出力する主成分群を決定してもよい。このように、行動学習部406に出力する主成分群は第1主成分から昇順の主成分群に限定されない。
【0076】
また、この場合においても、許容計算量が条件に設定されている場合、主成分分析部404は、上述した第1主成分からの昇順に限定していない主成分群について、序数の昇順に計算量を順次取得し、許容計算量をはじめて超えたときの序数より1つ前の序数までの主成分群を行動学習部406に出力する。たとえば、主成分群が第2主成分、第3主成分、第5主成分からなる場合、第2主成分では許容計算量を超えず、第2主成分および第3主成分でも許容計算量を超えず、第2主成分、第3主成分、および第5主成分ではじめて許容計算量を超えた場合、主成分分析部404は、第2主成分から第5主成分の1つ前の第3主成分までを、行動学習部406に出力する主成分群に決定してもよい。
【0077】
<行動学習部406に出力するデータ>
図11は、主成分分析部404および欠損位置情報生成部422が、行動学習部406に出力するデータを示す説明図である。主成分分析部404は、補間後の骨格情報320と、関節角度370と、フレーム間の移動量と、を入力データとして、主成分分析を実行して単数または複数の主成分1101を生成する。
【0078】
欠損位置情報生成部422は、欠損位置情報1100を生成する。欠損位置情報1100は、たとえば、骨格情報320の内、各々の骨格が欠損しているか、否かを示すフラグ情報として骨格の数だけ用意される変数で示す。たとえば、骨格情報320が18個の骨格点で構成される場合、フラグ情報は18個の変数で用意され、各骨格点について、欠損せずに骨格点の座標情報があれば「1」を、欠損していれば「0」のフラグ情報として、欠損位置情報1100を生成する。
【0079】
また、欠損位置情報1100は、多値の変数として、各値がどの骨格点が欠損しているかを示す情報として生成してもよく、欠損位置情報1100のデータフォーマットは限定されない。このように行動学習部406には、主成分分析部404が生成する主成分1101と、欠損位置情報生成部422が生成する欠損位置情報1100と、をまとめたデータ1102が出力される。なお、主成分分析部454および欠損位置情報生成部462が行動認識部457に出力するデータもデータ1102同様のデータとなる。
【0080】
行動学習部406は、データ1102を用いて学習を行い、行動分類モデルを生成し、行動認識部457に出力する。
【0081】
図12は、行動学習部406が行動を学習し、行動認識部457が行動を分類するための詳細な手法を示す説明図である。図12において、(a)は、次元削減後の第2変数までの行動のプロット点の分布を示し、(b)は、欠損位置情報1100を加味した行動分類結果を示す。主成分空間上での各行動について、行動学習部406は、各行動を領域毎に分類するため、境界線1210や境界平面1220を生成する。行動を学習し分類する際の手法は、k平均法や、サポートベクトルマシン、決定木や、ランダムフォレストなどいずれを採用してもよく、行動学習方法は限定されない。
【0082】
行動学習部406の行動学習時の欠損位置情報1100は、主成分空間上にプロットされ、各行動情報に付与される。行動情報(立つ、座る、歩く、倒れる、挙手する、しゃがむ)ごとにプロットされた点をプロット点1200~1205とする。ここでは簡単のため、骨格点の欠損が発生していない場合の行動のプロット点1200~1203は白い点とし、骨格点の欠損が発生した場合の行動のプロット点1204,1205は塗潰すことで表現する。
【0083】
骨格点の欠損が発生している行動のプロット点1204は、行動「挙手する」が付与されており、骨格点の欠損が発生している行動のプロット点1205は、行動情報「しゃがむ」が付与されている。なお、同一形状のプロット点(1200、1204)、(1201,1205)は、補間後の骨格情報320を主成分分析にかけた場合に同様の数値情報を示すことを表す。
【0084】
欠損がある骨格情報320は欠損情報補間部423によって、骨格点が補間される。しかし、補間された骨格点は検出された骨格点に比較して誤差量を多く含む場合があるため、欠損を含まない行動と同一次元で行動を分類した際には行動分類精度を劣化させる可能性がある。そこで、骨格情報320について、補間された情報か、検出された情報かを区分けして分類することで、行動分類精度の向上につなげることができる。すなわち、補間した誤差を含む主成分に欠損位置情報1100を付加することで、主成分に別次元の情報が加わり、新たな次元上に分類のための境界平面1220を設けられることで行動分類の精度は向上する。
【0085】
なお、図12における欠損位置情報1100は、プロット点1204,1205の塗潰しで表現したため、1bitの情報として扱われているが、たとえば、欠損位置情報1100は骨格点の数だけ用意される変数で表現され、この場合は多値の情報として取り扱われる。この場合、各行動は多次元空間上にプロットされるようになり、欠損位置情報1100によって、より詳細な行動分類が実現可能となる。
【0086】
なお、行動は、教師信号DB104において、学習データ(人の骨格情報320および関節角度370)と行動の組み合わせとして保持されており、欠損制御部421および欠損位置情報生成部422の処理により変更されるものではない。欠損制御部421および欠損発生部402により故意に欠損を発生させ、発生させた欠損の欠損位置情報1100を欠損位置情報生成部422により生成するのは、欠損して補間した誤差を含む主成分においても、欠損位置情報1100を加味した新たな軸で正しく行動分類を実行するためである。
【0087】
行動認識部457は、行動学習部406が学習して生成した行動分類モデルを用いて、行動を認識する。具体的には、たとえば、クライアント102は、新たに入力された骨格情報320について、欠損情報補間部461に欠損情報があれば欠損情報を補間する。行動認識部457は、補間後の骨格情報320について、主成分分析を適用し、新たに生成された主成分および欠損位置情報1100を行動分類モデルに入力する。これにより、行動認識部457は、行動分類モデルが設定する境界線1210や境界平面1220に従って、新たに入力された骨格情報320がどの領域に属するかを判定し、判定された領域に従って行動を認識する。
【0088】
図13は、主成分分析部404が次元数決定の際に用いる累積寄与率の推移を示すグラフである。累積寄与率は、新たに生成した複数の主成分が元のデータの情報量をどの程度表しているかといったことを示す尺度となる。このため、主成分の数を増やして、行動分類の際の次元数を増やしても、累積寄与率に大きな変化が見られない場合は、大きな精度向上は見込めない。
【0089】
そこで、主成分分析部404は、予め定めた累積寄与率の閾値を超えるのに必要な数だけ主成分を使用することとし、次元数を決定する。たとえば、予め定めた累積寄与率の閾値を「0.8」とする場合、第2主成分まであれば条件を満たすため、ここでの次元数kは「2」として、第1主成分と第2主成分とを行動学習部406に出力する。
【0090】
なお、行動学習部406に出力する主成分群は、第1主成分から昇順に限定する必要はない。たとえば、主成分分析部404は、予め定めた累積寄与率の閾値を超えずかつ累積寄与率が最大となる主成分の序数kの組み合わせを決定してもよい。また、主成分分析部404は、このような主成分の序数kの組み合わせを、行動分類モデルに適用される主成分群から選択してもよい。このように、行動学習部406に出力する主成分群は第1主成分から昇順の主成分群に限定されない。
【0091】
なお、主成分分析部454が行動認識部457に出力する単数または複数の主成分群の選択方法は主成分分析部404と同様の方法とする。
【0092】
<学習処理>
図14は、実施例1にかかるサーバ101(学習装置)による学習処理の詳細な処理手順例を示すフローチャートである。サーバ101は、教師信号取得部401により、教師信号DB104から取得した教師信号について学習に用いる教師信号を単数、または複数取得する(ステップS1400)。
【0093】
サーバ101は、欠損制御部421は、乱数、または予め定めた数に従って、欠損させる骨格点を設定し、欠損発生部402により、設定結果に従って、ステップS1400で取得した教師信号内の骨格情報320に対して骨格点を欠損させ、欠損させた骨格情報320を教師信号内の骨格情報320として更新する(ステップS1401)。
【0094】
サーバ101は、欠損位置情報生成部422により、欠損制御部421が設定した欠損させる骨格点の位置情報を、欠損位置情報として生成する(ステップS1410)。
【0095】
サーバ101は、欠損情報補間部423により、欠損情報(欠損した単数または複数の骨格情報320)を、非欠損情報から補間する(ステップS1411)。欠損情報補間部423が実行された教師信号を、更新教師信号と称す。
【0096】
サーバ101は、骨格情報処理部403により、更新教師信号ごとに骨格情報処理を実行する(ステップS1402)。具体的には、たとえば、サーバ101は、関節角度算出部501、移動量算出部502、および正規化部503による処理を実行する。
【0097】
図15は、実施例1にかかる骨格情報処理の詳細な処理手順例を示すフローチャートである。サーバ101は、関節角度算出部501により、更新教師信号ごとに、更新教師信号内の骨格情報320から関節角度370を算出する(ステップS1501)。つぎに、サーバ101は、移動量算出部502により、更新教師信号ごとに、更新教師信号内の骨格情報320からフレーム間の移動量を算出する(ステップS1501)。
【0098】
そして、サーバ101は、正規化部により、更新教師信号ごとに、骨格情報320に対して絶対的な位置情報を除外し、骨格情報320の大きさが一定となる正規化を実行する(ステップS1403)。これにより、更新教師信号について、関節角度370と、フレーム間の移動量と、正規化した骨格情報320と、が得られる。そして、図13のステップS1403に移行する。
【0099】
図14に戻り、サーバ101は、主成分分析部404により、正規化した骨格情報320と、関節角度370と、フレーム間の移動量と、を入力データとして、主成分分析を実行して、単数または複数の主成分を生成する。生成した主成分の内、学習に用いる主成分を分散値の高い順に何次元使用するか決定し、決定したk次元までの主成分(第1主成分~第k主成分)を分散値の高い順に選択する(ステップS1403)。
【0100】
ステップS1407では、ステップS1401で欠損させた骨格情報320について、まだ欠損させていない骨格情報320があれば(ステップS1407:No)、ステップS1401の処理に戻り、サーバ101は、これまでに欠損させていない骨格点を欠損させる(ステップS1401)。
【0101】
一方、すべての骨格情報320について欠損させた場合(ステップS1407:Yes)、ステップS1408の処理に進む。ただステップS1407の処理の判断はこれに限らず、サーバ101は、予め定めた繰返し回数に従ってステップS1401に戻るか、ステップS1408に進むかを判断してもよい。また、欠損させる骨格を予め定めておき、サーバ101は、予め定めた骨格をすべて欠損させたか否かでステップS1401に戻るか、ステップS1408に進むか判断してもよい。
【0102】
ステップS1408では、ステップS1400で選択した教師信号について、まだ選択していない教師信号があれば(ステップS1408:No)、サーバ101は、これまでに選択していない教師信号を選択する(ステップS1400)。一方、すべての教師信号について選択した場合は(ステップS1408:Yes)、ステップS1405の処理に進む。ただステップS1408の処理の判断はこれに限らず、サーバ101は、予め定めた繰返し回数に従ってステップS1400に戻るか、ステップS1405の処理に進むかを判断してもよい。
【0103】
なお、ステップS1407とステップS1408との処理によって繰り返し処理が発生し、繰返し回数だけステップS1403の主成分分析の処理が発生するが、各回で処理された主成分分析の結果は追加して保持され、すべての値を主成分分析部404にて保持する。すべての繰り返し処理が終了した際には、主成分分析部404にて保持するすべての値が行動学習部406に出力される。
【0104】
サーバ101は、行動学習部406により、主成分分析部404から入力した主成分と欠損位置情報生成部422から入力した欠損位置情報とを説明変数とし、更新教師信号内の行動情報を目的変数として、学習を行い、学習の結果、行動分類モデルを生成する(ステップS1405)。
【0105】
<行動認識処理>
図16は、実施例1にかかるクライアント102(行動認識装置)による行動認識処理手順例を示すフローチャートである。クライアント102は、骨格検出部451により、センサ103から取得した解析対象データに映る人の骨格情報320を検出する(ステップS1600)。つぎに、クライアント102は、欠損位置情報生成部462により、検出した骨格情報320の内、オクルージョンなどにより検出できなかった骨格点の位置情報を欠損位置情報として生成する(ステップS1601)。
【0106】
クライアント102は、欠損情報補間部423により、欠損情報を、非欠損情報から補間する(ステップS1610)。
【0107】
つぎに、クライアント102は、骨格情報処理部453により、ステップS1610で欠損情報を補間した骨格情報320について、ステップS1402の処理と同様に、骨格情報処理を実行する(ステップS1602)。具体的には、たとえば、クライアント102は、図15に示したように、関節角度算出部501、移動量算出部502、および正規化部503による処理(ステップS1501~S1503)を実行する。
【0108】
つぎに、クライアント102は、主成分分析部454により、ステップS1602で正規化した骨格情報320と関節角度370とフレーム間の移動量とを入力データとして、主成分分析を実行して、単数または複数の主成分を生成する。主成分分析部454は、生成した主成分について、ステップS1403で決定された序数kにより、第1主成分~第k主成分を、行動認識(ステップS1606)で使用する主成分に決定する。(ステップS1603)。
【0109】
つぎに、クライアント102は、行動認識部457により、ステップS1305で学習した行動分類モデルと、ステップS1603で生成した主成分と、ステップS1601で生成した欠損位置情報と、に基づいて、センサ103から取得した解析対象データに映る人の行動を認識する(ステップS1606)。クライアント102は、ステップS1606の認識結果をサーバ101に送信してもよく、また、認識結果を用いて、クライアント102に接続されている機器を制御してもよい。
【0110】
たとえば、センサ103が配備されている解析環境が工場である場合、行動認識システム100は、認識結果を用いて、工場内での作業員の作業監視や、製品の欠陥検査などに適用可能である。解析環境が電車である場合、行動認識システム100は、認識結果を用いて、電車内での乗客の監視や車内設備の監視、火災などの災害検知などに適用可能である。
【0111】
このように、実施例1によれば、認識対象の複数種類の行動を高精度に認識することができる。また、一部欠損した形状においても精度良く行動認識を行うために複数の行動分類モデルを生成する必要はない。これにより、学習期間の短縮化や行動分類モデルの保存領域の縮小化を図ることができる。特に、オクルージョンになどにより骨格点300~317が一部欠損した場合においても、行動分類モデルを増やすことなく、欠損した骨格点に応じた複数種類の行動を高精度に認識することができる。
【実施例0112】
実施例2を、実施例1との相違点を中心に説明する。なお、実施例1と共通する点については、同一符号を付し、その説明を省略する。
【0113】
図17は、実施例2にかかる行動認識システム100の機能的構成例を示すブロック図である。実施例2では、教師信号DB104に、欠損制御部421により欠損させる骨格点の位置情報を保有しており、その位置情報を欠損制御部421に出力する。
【0114】
骨格検出部451がセンサ103から取得した解析対象データに映る人の骨格情報320を検出する際に検出漏れする可能性は、骨格や解析対象データの特性による。たとえば、手首や、足首などの人体の末端の骨格点ほど検出漏れを起こす可能性が高い。また、たとえば、解析対象データがハイアングルである場合は、上半身に隠れて下半身の骨格点の検出漏れの発生確率が高くなるし、通路を横から水平方向のアングルから撮影した場合には、右半身や、左半身の骨格点の検出漏れが発生しやすくなる。
【0115】
こうした特徴が予め分かっている場合にはそうした欠損を発生させて重点的に学習させた方が行動認識精度の向上が望める。このため、教師信号DB104には欠損制御部421により欠損させる骨格点の位置情報を保有させておく。この欠損制御部421により欠損させる骨格点の位置情報を、欠損示唆情報と称す。欠損制御部421は、欠損示唆情報を教師信号DB104から取得して欠損発生部402に出力する。欠損発生部402は、欠損させる骨格点の位置情報により、骨格点を欠損させる。これにより、予め特定の欠損が発生しやすい状況においても精度よく行動認識を図ることができる。
【0116】
このように、実施例2によれば、予め特定の欠損が発生しやすい状況においてはその情報を教師信号DB104に保有し、保有した情報を用いて、故意に欠損を発生させて学習を行うことにより、精度よく行動認識を図ることができる。
【実施例0117】
実施例3を、実施例1と実施例2との相違点を中心に説明する。なお、実施例1~実施例3と共通する点については、同一符号を付し、その説明を省略する。
【0118】
図18は、実施例3にかかる教師信号DB104が保持する教師信号の詳細な例を示す説明図である。実施例3では、教師信号DB104は行動学習部406で説明変数として学習に用いるための環境情報1801,1811を保有する。環境情報1801,1811は、解析対象データの取得元の環境に関する情報であり、たとえば、解析対象データの取得元であるセンサ103を設置したアングル情報や、センサ103を設置した周辺に存在する物体の形状情報などがある。その他、解析対象データの取得時間帯の情報や、開発者が独自に生成する変数を加えても良く、環境情報1801,1811はこれらに限定されない。
【0119】
図19は、実施例3にかかる主成分分析部404および欠損位置情報生成部422が、行動学習部406に出力するデータを示す説明図である。教師信号DB104が保有する環境情報1900(1801,1811)は、骨格情報320に付随して主成分分析部404まで出力される。環境情報1900は主成分分析の処理の対象とはせず、主成分分析部404が生成した主成分1101および欠損位置情報1100と共に、説明変数として、行動学習部406に出力される。
【0120】
図20は、実施例3にかかる行動認識システム100の機能的構成例を示すブロック図である。実施例3では、教師信号取得部401は、教師信号取得部2000に変更され、環境情報検出部2001が追加される。
【0121】
教師信号取得部2000は、教師信号DB104から、環境情報を含む教師信号について学習に用いる教師信号を単数、または複数取得して、選択した教師信号を欠損発生部402に出力する。なお、環境情報1900は行動学習部406の入力とされ、行動分類モデル生成に用いられる。
【0122】
環境情報検出部2001は、センサ103から取得した解析対象データより、教師信号DB104に定義される環境情報1900を検出し、骨格検出部451に出力する。なお、環境情報1900はセンサ103の設置位置などに依存する場合もあり、この場合は、解析対象データではなく、センサ103を設置した際の環境情報1900を予め環境情報検出部2001に保有し、骨格検出部451に出力してもよく、環境情報1900の検出の方法は限定されない。
【0123】
<行動認識処理>
図21は、実施例3にかかるクライアント102(行動認識装置)による行動認識処理手順例を示すフローチャートである。実施例3では、図16において、骨格検出(ステップS1600)に先立って、環境情報検出処理(ステップ3300)が実行される。クライアント102は、環境情報検出部2001により、センサ103から取得した解析対象データから教師信号DB104に定義される環境情報1900を検出する(ステップS2100)。このあと、ステップS1600~S1606が実行される。環境情報1900は、説明変数として、行動学習部406による行動認識(ステップS1606)で用いられる。
【0124】
このように実施例3によれば、教師信号DB104が環境情報1900を保有し、行動学習時に説明変数として追加することで、主成分に欠損位置情報以外に環境情報1900が別次元の情報として加わり、新たな次元上に分類するための境界が設定される。したがって、行動分類精度の向上を図ることができる。
【実施例0125】
実施例4を、実施例1~実施例3との相違点を中心に説明する。なお、実施例1~実施例3と共通する点については、同一符号を付し、その説明を省略する。
【0126】
図22は、実施例4にかかる骨格情報処理部の機能的構成例を示すブロック図である。実施例4では、骨格情報処理部403,453は、相互情報正規化部2204を有する。相互情報正規化部2204は、主成分分析部404に出力する骨格情報320、関節角度370、およびフレーム間の移動量について、値域を一定の範囲内に正規化する。
【0127】
骨格情報320およびフレーム間の移動量の値域は、解析対象データの解像度に依存する。一方、関節角度370の値域は、0から2π、または0度から360度の範囲となる。主成分分析の実行対象となるデータについて、値域に大きな違いがある場合、元のデータの主成分に対する影響にデータ種毎の偏りが生じる場合がある。
【0128】
この偏りを無くすため、相互情報正規化部2204は、主成分にかけるデータの値域を一定の範囲内にする正規化を実行する。たとえば、相互情報正規化部2204は、骨格情報320を下記式(21)~(22)に従い、フレーム間移動量を下記式(23)に従って、元のデータの値域を0から2πに統一する。
【0129】
【数8】
【0130】
ただし、相互情報正規化部2204が実行する正規化の手法はこれに限らず、相互情報正規化部2204は、たとえば、主成分分析の実行対象となるデータの解像度の大きさに従って、関節角度370の値域を一定に正規化してもよい。
【0131】
図23は、実施例4にかかる骨格情報処理部の詳細な処理手順例を示すフローチャートである。実施例4では、骨格情報処理(ステップS1402,S1602)において、クライアント102は、正規化(ステップS1503)のあと、相互情報正規化(ステップS2304)を実行する。相互情報正規化(ステップS2304)では、正規化部で正規化された骨格情報320と、関節角度370と、フレーム間の移動量と、について、取りえる値域を一定に正規化する。
【0132】
このように、実施例4によれば、主成分分析を実行する元のデータ(骨格情報320、関節角度370、フレーム間の移動量)の取り得る値域を一定に統一することで、広い値域を持つ特定のデータによる主成分への影響の偏りを無くし、複数種類の行動を高精度に判別することができる。
【実施例0133】
実施例5を、実施例1~実施例4との相違点を中心に説明する。なお、実施例1~実施例4と共通する点については、同一符号を付し、その説明を省略する。
【0134】
図24は、実施例5にかかる行動認識システム100の機能的構成例を示すブロック図である。実施例5では、主成分分析部404,454が、次元削減部2400,2401に変更される。次元削減は、元の情報量を可能な限り維持した上で元の変数の数または元の次元の数を削減する処理であり、実施例1~実施例4の主成分分析や独立成分分析といった成分分析を包含する概念である。
【0135】
次元削減部2400は、骨格情報処理部403から取得した教師信号の内、正規化した骨格情報320と、関節角度370と、フレーム間の移動量と、を入力データとして、次元削減を実行して単数または複数の変数を生成し、行動学習部406に出力する。
【0136】
次元削減部2400が行う次元削減の手法としては、SNE(Stochastic Neighbor Embedding)、t-SNE(t-Distributed Stochastic Neighbor Embedding)、UMAP(Uniform Manifold Approximation and Projection)、Isomap、LLE(Locally Linear Embedding)、ラプラシアン固有マップ(Laplacian Eignmap)、LargeVis、および拡散マップのような手法がある。次元削減部2400は、t-SNEやUMAPに主成分分析や独立成分分析を組み合わせて次元削減してもよい。以下、各次元削減の手法と、各手法を組み合わせて行う次元削減の手法を説明する。
【0137】
SNEの処理を、下記式(24)~(28)を用いて説明する。
【0138】
【数9】
【0139】
とxの2つのx座標値322(入力データ)の類似度をxが与えられたときに近傍としてxを選択する条件付確率pj|iとする。条件付確率pj|iを上記式(24)に示す。この時、xはxを中心とした正規分布に基づいて選択されると仮定する。次に、次元削減後のyとyの2つのy座標値323(主成分)の類似度も、次元削減前のxとxの類似度と同様に、上記式(25)に示す条件付き確率qj|iとする。但し、次元削減後の座標値の分散は、式を簡略化するため1/√2で固定される。
【0140】
次元削減前後での距離関係を維持するように次元削減のyを生成すれば、情報量も可能な限り維持した上で、次元削減することが可能である。情報量の低減を抑制した上で次元削減を行うため、次元削減部2400は、pj|i=qj|iとなるように処理を行う。次元削減には2つの確率分布がどの程度似ているかを表す尺度であるKLダイバージェンスが用いられる。
【0141】
KLダイバージェンスを損失関数として次元削減前後の確率分布を適応した式を上記式(26)に示す。次元削減部2400は、損失関数である上記式(26)を確率的勾配降下法により最小化する。この勾配は損失関数をyで微分した上記式(27)を用いて、yを変動させる。この変動の際の更新式は上記式(28)で示される。
【0142】
以上、yを変動させながら上記式(28)を更新させ、上記式(27)が最小となるyを得ることで次元削減を行ない、新たな変数を得る。ただし、SNEの場合、主成分分析と異なり処理の特性上縮約後の次元数(変数)は2または,3種類になる。このため、SNEによる次元削減を実施の際は、予め定めた次元数(変数)を行動学習部406に出力する。
【0143】
ただSNEでは損失関数の最小化が難しく、また次元削減の際に等距離性を保とうとして、x座標値322およびy座標値323で特定される骨格点が密になってしまう問題がある。この問題の解決手法としてt-SNEがある。
【0144】
t-SNEの処理を下記式(29)~(33)を用いて説明する。
【0145】
【数10】
【0146】
損失関数最小化を簡単にするため、損失関数を対称化する。損失関数の対称化処理では、上記式(29)に示す通り、xとxの距離を同時確率分布pijで表す。pj|iは上記式(24)同様で上記式(30)で示せる。また次元削減後のyとyの距離を上記式(31)に示す同時確率分布qijで表す。
【0147】
次元削減後の点の距離はスチューデントのt分布を仮定している。スチューデントのt分布は、正規分布に比較して、平均値からずれた値の存在確率が高いことが特徴であり、この特徴が次元削減後のデータ間の距離について長い距離の分布も許容することが可能となる。
【0148】
t-SNEでは、次元削減部2400は、上記式(29)~(31)で求めたpijとqijを用いて、上記式(32)に示す損失関数を最小化することで次元削減を行う。次元削減部2400は、損失関数の最小化にはSNEと同様に上記式(33)に示す確率的勾配降下法を用いる。
【0149】
以上、上記式(33)が最小となるyを得ることで、次元削減部2400は、次元削減を行ない、新たな変数を得る。t-SNEもSNE同様に処理の特性上縮約後の次元数(変数)は2または3種類になる。このため、t-SNEによる次元削減を実施の際は、予め定めた次元数(変数)を行動学習部406に出力する。
【0150】
t-SNEは、次元削減前の高次元の局所的な構造を保った上で、大局的な構造も可能な限り捉えることから精度よく次元削減可能であるが、次元削減前の次元数に応じて計算時間が増加するといった問題がある。この次元削減の計算時間の問題を解決する手法としてUMAPがある。UMAPの処理を下記式(34)~(36)を用いて説明する。
【0151】
【数11】
【0152】
とり得る値の全体Aの中で、高次元の集合X(上記式(34))がある。Aの中から任意のデータを取り出した際に、それが集合Xに含まれる度合いを0から1の範囲で出力するメンバーシップ関数をμとする。上記式(1)に示す入力Xに対して、上記式(2)に示すYを用意する。YはXに比較して低い次元の空間に存在するm(<p)個の点の集合であり、次元削減後のデータの集合である。そしてYのメンバーシップ関数をνとして、次元削減部2400は、上記式(36)が最小となるようなYを定めることで次元削減を行ない、新たな変数を得る。
【0153】
UMAPによる次元削減を実施の際には、次元削減部2400は、SNEやt-SNE同様に予め定めた次元数(変数)を行動学習部406に出力してもよいし、または、次元削減後のメンバーシップ関数νが予め定めた値域以上となるような次元数(変数)を必要な次元数として行動学習部406に出力してもよい。
【0154】
Isomapの処理を説明する。次元削減部2400は、任意のデータにおいて、近傍にあるデータの最短距離を算出し、算出した距離を多次元尺度構成法(MDS)により測地線距離行列で表すことで次元削減を行ない、新たな変数を得る。Isomapによる次元削減の実施の際には、次元削減部2400は、予め定めた次元数(変数)を行動学習部406に出力する。
【0155】
LLEについて下記式(37)~(43)を用いて説明する。
【0156】
【数12】
【0157】
の近傍にある点を線形結合で近似的に上記式(37)で表す。ここで、上記式(38)の制約下で上記式(39)を最小化することで次元削減前のxの近似値が定まる。次に、次元削減後のyについて、次元削減後にも可能な限りxの線形の隣接関係を保つため、次元削減部2400は、上記式(40)を最小化する。この解は上記式(41)の固有ベクトルを固有値の2番目に小さいものvから(d+1)番目のvまで抽出することで上記式(42)の通り得られ、次元削減部2400は、上記式(43)の通り、次元削減後のyを取得する。
【0158】
LLEによる次元削減を実施の際には、次元削減部2400は、予め定めた次元数(変数)を行動学習部406に出力し、行動学習部406は前記予め定めた次元数に従って、使用する変数の数を決定すればよい。
【0159】
ラプラシアン固有マップの処理を下記式(44)~(49)を用いて説明する。
【0160】
【数13】
【0161】
次元削減前のデータが生成する近傍グラフの各辺xを上記式(44)または上記式(45)に割り当てる。割り当てた重みに対して上記式(46)のグラフラプラシアンを導入し、グラフラプラシアンの固有ベクトル(上記式(47))を固有値の2番目に小さいvから(d+1)番目のvまで抽出することで上記式(48)の通り得られ、次元削減部2400は、上記式(49)の通り次元削減後の値yを取得する。
【0162】
ラプラシアン固有マップによる次元削減を実施の際には、次元削減部2400は、予め定めた次元数(変数)を行動学習部406に出力する。
【0163】
LargeVisの処理について説明する。LargeVisはt-SNEの計算時間を改善した手法である。t-SNEではデータ点同士の距離を求めるため、データ数に応じて計算時間が増大していた。LargeVisでは、次元削減部2400は、近傍のデータからK-NNグラフを用いてデータを領域ごとに分け、領域ごとに分けられたデータモデル毎にt-SNEと同様の手法で次元削減を行う。
【0164】
LargeVisによる次元削減を実施の際には、次元削減部2400は、予め定めた次元数(変数)を行動学習部406に出力する。
【0165】
拡散マップについて下記式(50)~(55)を用いて説明する。
【0166】
【数14】
【0167】
次元削減前のxと近傍にあるxjから構成される近傍グラフの各辺xに重みWijを割当て、これを正規化して上記式(50)に示すN×Nの推移確率行列Pを作る。p(x)はPで表現されるグラフ上のランダムウォークによってxを出発してtステップ後にxに到達する確率を表すとする。推移行列の性質からp(x)はt→∞で定常分布φ(x)に収束する。この時、点xの拡散距離を上記式(51)で定義する。推移確率行列Pの固有値を上記式(52)、固有ベクトルを上記式(53)とする。この時、上記式(54)が成り立つ。λの絶対値は1以下であるから、次元削減部2400は、Nより小さい適当な次元d(t)までの固有ベクトルをとって、上記式(55)の通り次元削減を行ない、新たな変数を得る。
【0168】
拡散マップによる次元削減を実施の際には、予め定めた次元数(変数)を行動学習部406に出力する。
【0169】
次元削減部2400は、これまでに説明した主成分分析、独立成分分析、t-SNE、UMAP、Isomap、LLE、ラプラシアン固有マップ、LargeVis、拡散マップなどを組み合わせて実施してもよい。たとえば、次元削減部2400は、36次元、または36変数ある高次元なデータに対して、10次元までの次元削減を主成分分析を用いて行い、その後2次元までの次元削減でUMAPを用いるなど、次元削減に用いる手法の組合せは限定されない。このように次元削減の際に各種手法を組み合わせることで性能や計算時間に複合的な効果が期待できる。
【0170】
また、これら次元削減の手法は、実施例5に記載の範囲で限定されるものではなく、たとえば、単に高次元の情報を可算、減算、乗算または除算したり、予め定めた係数に従って畳み込んだりしてもよく、実施例5記載の手法のように高次元のデータまたは多変数を、より低い次元のデータや、少ない数の変数を生成する手法であれば、次元削減の手法は限定されない。
【0171】
次元削減部2401は、次元削減部2400と同様の機能を有する。次元削減部2401は、骨格情報処理部453からの出力データに対して次元削減部2400と同様の処理を実行して、次元削減前に比較して、少ない単数または複数の新たな変数を生成する。また、次元削減部2401は、主成分と共に生成した寄与率と累積寄与率とから決定される新たな変数を行動認識部457に出力する。
【0172】
このように、実施例5によれば、次元削減の手法を変えることで、骨格情報処理部403から取得するデータに合わせて、効果的に、または計算時間を短縮して次元削減可能となり、複雑な行動を高精度に判別することができる。
【実施例0173】
実施例6を、実施例1~実施例5との相違点を中心に説明する。なお、実施例1~実施例5と共通する点については、同一符号を付し、その説明を省略する。
【0174】
図25は、実施例6にかかる行動認識システム100の機能的構成例を示すブロック図である。実施例6では、行動学習部406と行動認識部457が、行動学習部2500と行動認識部2501に変更される。行動学習部2500および行動認識部2501が行動を分類するための詳細な手法を図26図28を用いて説明する。
【0175】
図26は、行動学習部2500および行動認識部2501が行動を分類するための基礎となる手法である決定木を示す説明図である。決定木を用いた行動分類手法を説明する。決定木では、次元削減後に新たに生成された変数空間での各行動について、予め行動の種類を与えられた変数である行動(プロット点1200~1203)を用いて、(a)境界線2610が生成される。
【0176】
(a)境界線2610を生成する手法を説明する。決定木は、行動(プロット点1200~1203)を含む母集団2620から入力された変数群2621の不純度が最小になるように段階的に行動を分類していく。1段階目では第2変数軸上で、変数群2621を変数群2622と変数群2623とに分類し、2段階目では第1変数軸上で、変数群2622および変数群2623を変数群2624~2627に分類する。こうして不純度が最小となるよう分類していく過程で得られる判別式を用いて(a)境界線2610が生成される。なお、各段階でどの軸で行動を分類するかは限定されず、また各軸での行動分類について1回などの規定された回数で分類するなどの限定もされない。
【0177】
図27は、決定木による分類の詳細な展開方法を示す説明図である。決定木には、レベル(深さ)ごとに決定木を成長させるレベルワイズ2700と、リーフ(分岐後のデータ群)ごとに決定木を成長させるリーフワイズ2701と、がある。決定木のような分類器を重ねて学習することをアンサンブル学習という。
【0178】
図28は、アンサンブル学習と、行動学習部2500と行動認識部2501が行動を分類するために用いる手法を示す説明図である。アンサンブル学習には、決定木のような分類木を並列に用いるバギング2801と、前の結果を引き継ぎ学習結果を更新していくブースティング2802と、がある。実施例1のランダムフォレストは、決定木についてバギング2801を採用した手法で、実施例6の行動学習部2500および行動認識部2501は、ブースティング2802を使用した分類手法である。
【0179】
行動学習部2500が行動を学習し、行動認識部2501が行動を分類するにあたっては、各決定木をレベルワイズにより成長させ、複数の決定木を重ねるブースティングにより入力された変数を分類してもよいし、各決定木をリーフワイズにより成長させ、複数の決定木を重ねるブースティングにより入力された変数を分類してもよい。
【0180】
なお、各決定木をレベルワイズにより成長させ、複数の決定木を重ねるブースティングを行動分類手法として採用する際にはソフトウェアライブラリxgboostを用いて実装してもよい。また一方で、各決定木をリーフワイズにより成長させ、複数の決定木を重ねるブースティングを行動分類手法として採用する際にはソフトウェアライブラリLightGBMを用いて実装してもよい。ただし、実装手法はこれらに限定されない。
【0181】
このように、実施例6によれば、行動分類手法にブースティングを用いて、複数の決定木を重ねることにより、複雑な行動を高精度に判別することができる。
【実施例0182】
実施例7を、実施例1~実施例6との相違点を中心に説明する。なお、実施例1~実施例6と共通する点については、同一符号を付し、その説明を省略する。
【0183】
図29は、実施例7にかかる行動認識システム100の機能的構成例を示すブロック図である。実施例7では、次元削減部2400、行動学習部406、次元削減部2401、および行動認識部457が、次元削減部2900、行動学習部2901、次元削減部2903、および行動認識部2904に変更される。
【0184】
次元削減部2900は、予め定めた次元数に従って、実施例1~実施例6のいずれかの手法で次元削減を行い、次元削減後の変数を行動学習部2901に出力する。
【0185】
行動学習部2901は、取得した次元削減後の変数と共に、与えられた行動の種類から機械学習により、行動分類のための境界線を生成し、行動分類モデルを生成する。この際、生成した行動分類モデルに対して、どのくらいの精度で行動を予測できるかという行動分類精度を算出する。
【0186】
行動学習部2901は、行動分類モデル生成に用いた変数を用いて行動分類精度を算出してもよい。行動学習部2901は、次元削減部2900から取得した変数の内、一部を行動分類モデル生成には用いず、行動分類生成に用いなかった変数を用いて行動分類精度を算出してもよい。ただし、行動分類精度算出の方法は、これらに限定されない。算出した行動分類精度が予め定めた精度より高ければ、行動学習部2901は、生成した行動分類モデルを行動認識部2904に出力する。またこの際、行動学習部2901は、取得した次元数と行動分類精度が合格であったことを次元削減部2900に出力する。
【0187】
一方で、行動学習部2901は、算出した行動分類精度が予め定めた精度より低ければ、行動分類精度が不合格であったことを次元削減部2900に出力する。ただし、設定可能な次元数(変数)すべてで行動分類モデルを生成した上で、そのすべてで行動分類精度が不合格であった場合には、行動学習部2901は、これまでに生成した行動分類モデルの中で最も行動分類精度が高かった行動分類モデルを行動認識部2904に出力し、出力した際に用いた次元数(変数)を全学習完了情報と共に行動学習部2901に出力する。なお、合否を判断する行動分類精度を定めず、行動学習部2901は、設定可能な次元数すべてで学習を行い、行動分類精度を算出した上で、算出した行動分類精度に従って、行動分類モデルを決定して、決定した行動分類モデルを合格と判断してもよい。
【0188】
次元削減部2900は、行動学習部2901から取得した合否情報と全学習完了情報に従って、合格または全学習完了情報を取得した場合には、取得した次元数情報を次元削減部2903に出力し、不合格であった場合には次元削減に用いる次元数を変更して再度次元削減を実行し、生成した変数を行動学習部2901に出力する。
【0189】
次元削減部2903は、次元削減部2900から取得した次元数k(変数)に従って、骨格情報処理部453から取得したデータに、実施例1~実施例6の次元削減手法を用いて次元削減を行い、生成した変数を行動認識部2904に出力する。
【0190】
行動認識部2904は、行動学習部2901が合格と判断した行動分類モデルを用いて、次元削減部2903から入力される変数を用いて行動認識を実行する。
【0191】
なお、行動学習部2901が算出する行動分類精度は実施例1に記載の寄与率に見立ててもよい。たとえば、取得した次元削減後の変数とそれを用いて算出した行動分類精度とを関連付けておき、算出された行動分類精度が、算出に用いた次元削減後の変数の元の情報に対する寄与率とする。次元削減部2900は、こうして見立てた寄与率に応じて、次元削減後の変数についてどれを用いて制御を行うか決定する。
【0192】
<学習処理>
図30は、実施例7にかかるサーバ101(学習装置)による学習処理の詳細な処理手順例を示すフローチャートである。サーバ101は、次元削減部2900により、次元数kを決定する。この際、初めて次元削減を実行する場合には予め定めた次元数kを決定し、2回目以降の次元削減の場合は、これまでに決定してない次元数kを決定する。次元削減部2900は決定した次元数kに従って、次元削減を行い、新たな変数(次元削減後の次元数k)を生成する(S3001)。
【0193】
ステップS3002では、サーバ101は行動学習部2901から取得した行動分類精度に対して、合否判断を行い、合格であれば学習処理を終了し、不合格であればステップS3001に戻る。
【0194】
このように、実施例7によれば、目標の行動分類精度に合わせて次元数を変更し、次元削減を繰り返すことで、複雑な行動を高精度に判別することができる。
【0195】
また、上述した実施例1~実施例7の行動認識装置および学習装置は、下記[1]~[14]のように構成することもできる。
【0196】
[1]プログラムを実行するプロセッサ201と、前記プログラムを記憶する記憶デバイス202と、を有する行動認識装置(クライアント102)は、多変量解析で統計的な成分を生成する成分分析(主成分分析または独立成分分析)により学習対象の形状(骨格情報320)から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて学習された行動分類モデルにアクセス可能であり、前記プロセッサ201は、センサ103から得られた解析対象データから認識対象の形状(骨格情報320)を検出する検出処理と、前記検出処理によって検出された骨格情報320のうち欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、前記欠損箇所を補間し、補間後の前記非欠損情報から前記欠損箇所を補間し、補間後の前記非欠損情報を前記認識対象の形状として更新する補間処理と、前記成分分析により、前記補間処理によって補間した前記認識対象の形状に基づいて、前記学習対象に関する成分群と同数の前記認識対象に関する成分群を生成する成分分析処理と、前記行動分類モデルに、前記成分分析処理によって生成された前記認識対象に関する成分群と、前記欠損位置情報を入力することにより、前記認識対象の行動を示す認識結果を出力する行動認識処理と、を実行する。
【0197】
これにより、成分分析により複数の行動分類モデルから特定の行動分類モデルを選択して行動認識処理を実行する場合に比べて、記憶デバイス202の使用量の低減化と、認識結果を出力するまでの処理の高速化を図ることができる。また、形状の一部が欠損した認識対象の複数種類の行動を高精度に認識することができる。
【0198】
[2]上記[1]の行動認識装置において、前記行動認識処理では、前記プロセッサは、前記解析対象データの取得元の環境を示す環境情報と、前記認識対象に関する成分群と、前記学習対象の行動と、前記欠損位置情報とを、前記行動分類モデルに入力することにより、前記認識対象の行動を示す認識結果を出力する。
【0199】
これにより、環境情報を考慮した行動分類モデルが用意されるため、認識対象において認識対象の環境に応じた行動を高精度に認識することができる。
【0200】
[3]上記[1]の行動認識装置において、前記行動分類モデルは、多変量解析で統計的な成分を生成する次元削減(主成分分析または独立成分分析またはSNE(Stochastic Neighbor Embedding)またはt-SNE(t-Distributed Stochastic Neighbor Embedding)またはUMAP(Uniform Manifold Approximation and Projection)またはIsomapまたはLLE(Locally Linear Embedding)またはラプラシアン固有マップ(Laplacian Eignmap)またはLargeVisまたは拡散マップ)により前記学習対象の形状から得られる前記学習対象に関する第1変数からの昇順の成分群と、前記学習対象の行動と、を用いて学習されており、前記生成処理では、前記プロセッサは、前記次元削減により、前記補間処理によって補間された前記認識対象の形状に基づいて、前記学習対象に関する第1変数からの昇順の成分群と同数の前記認識対象に関する第1変数からの昇順の成分群を生成する。
【0201】
これにより、次元削減により複数の行動分類モデルから特定の行動分類モデルを選択して行動認識処理を実行する場合に比べて、記憶デバイス202の使用量の低減化と、認識結果を出力するまでの処理の高速化を図ることができる。
【0202】
[4]上記[1]の行動認識装置において、前記行動分類モデル群の各々の行動分類モデルは、前記学習対象の形状および前記形状を構成する複数の頂点の角度(関節角度370)から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて、学習されており、前記プロセッサ201は、前記認識対象の形状に基づいて、前記認識対象の形状を構成する複数の頂点の角度(関節角度370)を算出する算出処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記認識対象の形状と、前記算出処理によって算出された前記認識対象の頂点の角度と、に基づいて、前記認識対象に関する成分群を生成する。
【0203】
これにより、頂点の角度に起因する形状の変化に応じて、認識対象の複数種類の行動を高精度に認識することができる。
【0204】
[5]上記[1]の行動認識装置において、前記行動分類モデル群の各々の行動分類モデルは、前記学習対象の形状および前記学習対象の移動量から得られる前記学習対象に関する成分群と、前記学習対象の行動と、を用いて、学習されており、前記プロセッサ201は、前記認識対象の異なる時点の複数の形状に基づいて、前記認識対象の移動量を算出する算出処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記認識対象の形状と、前記算出処理によって算出された前記認識対象の移動量と、に基づいて、前記認識対象に関する成分群を生成する。
【0205】
これにより、移動に起因する形状の経時的な変化に応じて、認識対象の複数種類の行動を高精度に認識することができる。
【0206】
[6]上記[1]の行動認識装置において、前記プロセッサ201は、前記認識対象の形状の大きさを正規化する第1正規化処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記第1正規化処理による第1正規化後の前記認識対象の形状に基づいて、前記認識対象に関する成分群を生成する。
【0207】
これにより、行動分類の汎用性の向上により、誤認識の抑制を図ることができる。
【0208】
[7]上記[1]の行動認識装置において、前記プロセッサ201は、前記認識対象の形状および頂点の角度が取りうる値域を正規化する第2正規化処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記第2正規化処理による第2正規化後の前記認識対象の形状および頂点の角度(関節角度370)に基づいて、前記認識対象に関する成分群を生成する。
【0209】
これにより、形状と角度という異なるデータ種における値域の偏りを抑制することができ、行動認識の高精度化を図ることができる。
【0210】
[8]プログラムを実行するプロセッサ201と、前記プログラムを記憶する記憶デバイス202と、を有する学習装置において、前記プロセッサ201は、学習対象の形状および行動を含む教師データを取得する取得処理と、前記取得処理によって取得された前記学習対象の形状を欠損させる欠損処理と、前記欠損処理によって前記学習対象の形状から欠損させた欠損箇所の位置を示す欠損位置情報を生成する欠損位置情報生成処理と、前記学習対象の形状のうち前記欠損処理によって欠損させた前記欠損箇所以外の箇所である非欠損情報から補間し、補間後の前記非欠損情報を前記学習対象の形状として更新する補間処理と、多変量解析で統計的な成分を生成する成分分析(主成分分析または独立成分分析)により、前記補間処理によって補間した前記学習対象の形状に基づいて、前記学習対象に関する成分群を生成する成分分析処理と、前記成分分析処理によって生成された前記学習対象に関する成分群と、前記学習対象の行動と、前記欠損位置情報と、に基づいて、前記学習対象の行動を学習して、前記学習対象の行動を分類する行動分類モデルを生成する行動学習処理と、を実行する。
【0211】
これにより、行動認識装置において、複数の行動分類モデルから特定の行動分類モデルを選択する必要がなくなる。
【0212】
[9]上記[8]の学習装置において、前記プロセッサ201は、前記学習対象の形状に基づいて、前記学習対象の形状を構成する複数の頂点の角度(関節角度370)を算出する算出処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記学習対象の形状と、前記算出処理によって算出された前記学習対象の頂点の角度と、に基づいて、前記学習対象に関する成分群を生成する。
【0213】
これにより、頂点の角度に起因する形状の変化に応じた行動分類モデルを用意することができるため、認識対象の頂点の角度に起因する形状の変化に応じた複数種類の行動を、高精度に認識することができる。
【0214】
[10]上記[8]の学習装置において、前記プロセッサ201は、前記学習対象の異なる時点の複数の形状に基づいて、前記学習対象の移動量を算出する算出処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記学習対象の形状と、前記算出処理によって算出された前記学習対象の移動量と、に基づいて、前記学習対象に関する成分群を生成する。
【0215】
これにより、移動に起因する形状の経時的な変化に応じた行動分類モデルを用意することができるため、移動に起因する形状の経時的な変化に応じた複数種類の行動を、高精度に認識することができる。
【0216】
[11]上記[8]の学習装置において、前記プロセッサ201は、前記学習対象の形状の大きさを正規化する第1正規化処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記第1正規化処理による第1正規化後の前記学習対象の形状に基づいて、前記学習対象に関する成分群を生成する。
【0217】
これにより、行動分類学習の汎用性の向上により、誤学習の抑制を図ることができる。
【0218】
[12]上記[9]の学習装置において、前記プロセッサ201は、前記学習対象の形状および頂点の角度が取りうる値域を正規化する第2正規化処理を実行し、前記成分分析処理では、前記プロセッサ201は、前記第2正規化処理による第2正規化後の前記学習対象の形状および頂点の角度に基づいて、前記学習対象に関する成分群を生成する。
【0219】
これにより、形状と角度という異なるデータ種における値域の偏りを抑制することができ、行動分類学習の高精度化を図ることができる。
【0220】
[13]上記[8]の学習装置において、前記欠損処理では、前記プロセッサは、前記学習対象の形状のうち特定の箇所を欠損させる。
【0221】
これにより、欠損しやすい学習対象の形状を学習することができ、行動分類学習の高精度化を図ることができる。
【0222】
[14]上記[8]の学習装置において、前記プロセッサ201は、前記取得処理の前記学習対象の形状の取得の際に、前記学習対象の形状を取得した際の環境情報を取得し、前記成分群と、前記学習対象の行動と、前記欠損位置情報と、前記環境情報と、に基づいて、行動分類モデルを生成する。
【0223】
これにより、学習対象の形状と、環境情報に応じた行動分類モデルを生成することができ、多様な環境に合わせた行動分類学習の高精度化を図ることができる。
【0224】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0225】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ201がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0226】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0227】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要なすべての制御線や情報線を示しているとは限らない。実際には、ほとんどすべての構成が相互に接続されていると考えてよい。
【符号の説明】
【0228】
100 行動認識システム
101 サーバ
102 クライアント
103 センサ
104 教師信号DB
201 プロセッサ
202 記憶デバイス
320 骨格情報
401,2000 教師信号取得部
402 欠損発生部
421 欠損制御部
403,453 骨格情報処理部
404,454 主成分分析部
406,2500,2901 行動学習部
422,462 欠損位置情報生成部
423,461 欠損情報補間部
451 骨格検出部
455 次元数決定部
457,2501,2904 行動認識部
501 関節角度算出部
502 移動量算出部
503 正規化部
2001 環境情報検出部
2204 相互情報正規化部
2400,2401,2900,2903 次元削減部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30