(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】行動認識方法、行動認識プログラム及び行動認識装置
(51)【国際特許分類】
G06T 7/20 20170101AFI20240109BHJP
G06T 7/00 20170101ALI20240109BHJP
G06N 20/00 20190101ALI20240109BHJP
【FI】
G06T7/20 300Z
G06T7/00 350B
G06N20/00
(21)【出願番号】P 2020033365
(22)【出願日】2020-02-28
【審査請求日】2022-11-17
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】大日方 裕也
【審査官】佐田 宏史
(56)【参考文献】
【文献】米国特許出願公開第2017/0046568(US,A1)
【文献】米国特許出願公開第2017/0344829(US,A1)
【文献】特開2015-130151(JP,A)
【文献】特表2012-518236(JP,A)
【文献】Zhikai Wang et al.,"Key Joints Selection and Spatiotemporal Mining for Skeleton-Based Action Recognition",2018 25th IEEE International Conference on Image Processing (ICIP),米国,IEEE,2018年10月07日,pp.3458-3462
【文献】稲田 健太郎、外2名,“OpenPoseを用いた複数ダンサーの姿態評価の基礎検討”,映像情報メディア学会技術報告,日本,(一社)映像情報メディア学会,2018年12月10日,Vol.42, No.44,pp.21-23
【文献】Shenghua Wei et al.,"Human skeleton tree recurrent neural network with joint relative motion feature for skeleton based action recognition",2017 IEEE International Conference on Image Processing (ICIP),米国,IEEE,2017年09月17日,pp.91-95
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,7/00-7/90
G06V 10/00-10/98
G06N 3/02,20/00
(57)【特許請求の範囲】
【請求項1】
複数の関節各々の位置
の時系列データを取得し、
前記複数の関節に含まれる関節ごとに、前記関節における第1の時刻の位置と、前記関節以外の他の関節における前記第1の時刻より前の第2の時刻の位置とから前記他の関節ごとに算出される相対位置の各々に認識対象とする部分行動に対する前記他の関節の相関度に基づく第1重みを付与するとともに、前記他の関節ごとに算出される相対位置の各々に前記関節および前記他の関節の間における連動性が高くなるに連れて大きくなる第2重みを付与して特徴量を算出し、
前記関節ごとに算出された前記特徴量に基づいて前記部分行動を認識する、
処理をコンピュータが実行する行動認識方法。
【請求項2】
前記
算出する処理は、前記部分行動の時系列パターンに対応する要素行動
に対する前記他の関節の相関度に基づいて前記他の関節ごとに算出される相対位置の各々に付与する
第1重みを変えて
前記特徴量を算出する請求項
1に記載の行動認識方法。
【請求項3】
前記
算出する処理は、前記複数の関節各々に付与する
第1重みが所定の機械学習のアルゴリズムにしたがって学習済みである重みデータを参照して、
前記関節における第1の時刻の位置と、前記他の関節における前記第2の時刻の位置との相対位置に基づく特徴量を算出し、
前記認識する処理は、算出された特徴量と、前記機械学習のアルゴリズムにしたがってパラメータが学習済みであるモデルとに基づいて前記部分行動の有無を判定する、
処理を含む請求項1
または2に記載の行動認識方法。
【請求項4】
前記認識する処理は、前記複数の関節各々に対応するノード間を接続するシナプスに付与する
第1重みに基づいて
前記関節における第1の時刻の位置に
前記他の関節の各々における前記第2の時刻の位置を畳み込む演算を行うモデルへ、前記複数の関節各々の位置の時系列データを入力することにより得られる前記モデルからの出力に基づいて前記部分行動を認識する請求項1
または2に記載の行動認識方法。
【請求項5】
複数の関節各々の位置
の時系列データを取得し、
前記複数の関節に含まれる関節ごとに、前記関節における第1の時刻の位置と、前記関節以外の他の関節における前記第1の時刻より前の第2の時刻の位置とから前記他の関節ごとに算出される相対位置の各々に認識対象とする部分行動に対する前記他の関節の相関度に基づく第1重みを付与するとともに、前記他の関節ごとに算出される相対位置の各々に前記関節および前記他の関節の間における連動性が高くなるに連れて大きくなる第2重みを付与して特徴量を算出し、
前記関節ごとに算出された前記特徴量に基づいて前記部分行動を認識する、
処理をコンピュータに実行させる行動認識プログラム。
【請求項6】
複数の関節各々の位置
の時系列データを取得する取得部と、
前記複数の関節に含まれる関節ごとに、前記関節における第1の時刻の位置と、前記関節以外の他の関節における前記第1の時刻より前の第2の時刻の位置とから前記他の関節ごとに算出される相対位置の各々に認識対象とする部分行動に対する前記他の関節の相関度に基づく第1重みを付与するとともに、前記他の関節ごとに算出される相対位置の各々に前記関節および前記他の関節の間における連動性が高くなるに連れて大きくなる第2重みを付与して特徴量を算出する算出部と、
前記関節ごとに算出された前記特徴量に基づいて前記部分行動を認識する認識部と、
を有する行動認識装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、行動認識方法、行動認識プログラム及び行動認識装置に関する。
【背景技術】
【0002】
映像から行動を認識する技術の1つとして、3Dビデオの各フレームから推定された15個の身体関節の基本的な特徴、すなわち姿勢、速度および動きのような特徴から行動を認識するといった技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の技術では、身体の一部に動きが現れる行動を認識するのが困難である場合がある。
【0005】
上記の技術では、15個の身体関節から抽出される基本的な特徴、すなわち姿勢、速度および動きのような特徴から行動が認識される。このように、上記の技術では、全身の関節に関する姿勢、速度および動きなどの特徴が行動の認識に用いられる。それ故、上記の技術では、認識対象とする行動が身体の一部にしか動きが現れない動作である場合、他の部位に現れる動作が認識の妨げとなるので、認識精度が低下する。
【0006】
1つの側面では、本発明は、身体の一部に動きが現れる行動の認識を実現できる行動認識方法、行動認識プログラム及び行動認識装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
一態様の行動認識方法では、複数の関節各々の位置を含む骨格情報を取得し、認識対象とする部分行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置から求めた特徴量に基づいて前記部分行動を認識する、処理をコンピュータが実行する。
【発明の効果】
【0008】
身体の一部に動きが現れる行動の認識を実現できる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1に係る行動認識サービスの一例を示す図である。
【
図3】
図3は、実施例1に係る行動認識サービスの適用例を示す模式図である。
【
図4A】
図4Aは、従来技術の適用時における関節の重みを示す模式図である。
【
図4B】
図4Bは、実施例1に係る要素行動認識機能の適用時における関節の重みを示す模式図である。
【
図5】
図5は、実施例1に係る行動認識装置の機能的構成の一例を示すブロック図である。
【
図6】
図6は、第1重みデータの一例を示す図である。
【
図7】
図7は、第2重みデータの一例を示す図である。
【
図8】
図8は、実施例1に係るモデル学習処理の手順を示すフローチャートである。
【
図9】
図9は、実施例1に係る行動認識処理の手順を示すフローチャートである。
【
図11】
図11は、パラメータのイメージを示す模式図である。
【
図12】
図12は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して本願に係る行動認識方法、行動認識プログラム及び行動認識装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0011】
[行動認識サービスの一例]
図1は、実施例1に係る行動認識サービスの一例を示す図である。
図1に示す行動認識サービス1は、カメラ2の映像から被写体、例えば人の行動を認識するサービスを提供するものである。このような行動認識サービス1では、あくまで一例として、複数の動作が組み合わさることで複雑化する上位行動、例えば不審行動や購買行動などが認識対象とされる。
【0012】
上記の行動認識サービス1を除けば、「上位行動」の認識には、その行動が含まれる映像などを学習データとして大量に準備する必要がある。このような大量の学習データの準備は実質的に困難であったり、あるいは大量の学習データの準備ができたとしても時間と手間がかかったりといった一面があるので、現場への導入が困難である側面がある。
【0013】
このような大量の学習データの準備を不要化する側面から、上記の行動認識サービス1では、日常の生活で行われる「基本動作」や上位行動の要素として含まれ得る「要素行動」の組合せが規定されたルールにしたがって上位行動を認識する。
【0014】
図1に示すように、行動認識サービス1には、骨格検出機能3、基本動作認識機能4、上位行動認識機能5などが含まれ得る。
【0015】
骨格検出機能3は、カメラ2により撮像された映像のフレームごとに被写体の各関節の位置を含む骨格情報を検出する機能である。あくまで一例として、骨格検出機能3は、2次元または3次元のモーションキャプチャ技術により実現され得る。
【0016】
基本動作認識機能4は、各フレームの骨格情報から基本動作を認識する機能である。あくまで一例として、基本動作認識機能4は、ディープラーニング等の機械学習のアルゴリズムにしたがって基本動作が学習済みであるモデルにより実現され得る。
【0017】
例えば、「基本動作」には、人の全身に動きが現れる「全身行動」や人の身体の一部に動きが現れる「部分行動」などが含まれ得る。このうち、「全身行動」の例として、「歩く」や「走る」、「止まっている」などの行動が挙げられる。また、「部分行動」の例として、「右手を上げる」や「下を向く」、「前を向く」などの行動が挙げられる。
【0018】
これら「全身行動」や「部分行動」は、日常で行われる「基本動作」であるので、「上位行動」に比べれば単純な動作である。それ故、「基本動作」はその映像の収集が容易であると共に、学習済みのモデルにより高精度な認識を実現し得る。
【0019】
上位行動認識機能5は、上位行動を認識する機能である。
図1に示すように、上位行動認識機能5には、時系列分析機能5Aやルール照合機能5Bなどがさらに含まれ得る。
【0020】
時系列分析機能5Aは、基本動作が所定の時系列パターンに該当するか否かを分析する機能である。例えば、時系列パターンの一例として、基本動作の継続性や基本動作の状態遷移などが挙げられる。このような時系列パターンに該当する基本動作が「要素行動」として認識される。
【0021】
ルール照合機能5Bは、基本行動および要素行動の認識結果と、ルール6とを照合する機能である。このようなルール6を満たす場合、認識対象とする上位行動が認識される。
【0022】
1つの側面として、ルール6は、基本行動および要素行動の組合せにより認識対象とする上位行動を定義するものである。例えば、組合せには、基本行動および要素行動のうちいずれか一方または両方が含まれることとしてもかまわない。また、ルール6には、複数の組合せが定義される場合、各組合せの間での順序や論理的関係などが定義され得る。
【0023】
ここで、上記の行動認識サービス1では、システム定義のみならず、ユーザ定義によりルール6を設定させることができる。例えば、上記の行動認識サービス1を提供する事業者側のシステムエンジニアや上記の行動認識サービス1の顧客などのユーザUにルール6を編集させることにより、ユーザUによるカスタマイズが可能である。
【0024】
なお、
図1には、時系列分析を抜粋して例示したが、これと並行して、基本行動が発生する場所が所定の空間条件を満たすか否か、例えばROI(Region of Interest)内に存在するか否かなどの空間分析が行われることとしてもかまわない。例えば、不審行動が認識対象とされる場合、モニタリング対象、例えばピッキングであればドアやその近辺などをROIとして設定できる。また、購買行動が認識対象とされる場合、商品の陳列棚などをROIとして設定できる。
【0025】
[行動認識サービスの適用例]
次に、
図2および
図3を用いて、本実施例に係る行動認識サービス1の適用例について説明する。
図2は、ルール6の一例を示す図である。
図2には、認識対象とする上位行動の一例として、「歩きスマホ(Using a smartphone while walking)」を定義するルールが示されている。
図2に示すように、ルール6には、ステップS1~S2の順に各ステップの組合せが定義されている。例えば、ステップS1には、全身行動C1「歩く」、要素行動C2「スマホ保持」、要素行動C3「下を向く」および要素行動C5「スマホ操作開始」が設定されている。さらに、ステップS2には、全身行動C1「歩く」、要素行動C2「スマホ保持」、要素行動C4「前を向く」および要素行動C6「スマホ操作終了」が設定されている。
【0026】
図3は、実施例1に係る行動認識サービス1の適用例を示す模式図である。
図3には、
図2に示すルール6が定義された状況の下でカメラ2から入力される映像のフレームt1~t6ごとに全身行動および部分行動の認識結果が模式的に示されている。
【0027】
図3に示すように、ステップS1及びステップS2の全身行動C1「歩く」がフレームt1からフレームt6まで継続して認識される。さらに、右腕の部分行動「前」および右手の部分行動「物体保持」がフレームt1からフレームt6まで継続する。これら右腕の部分行動「前」および右手の部分行動「物体保持」の継続は、要素行動「スマホ保持」の時系列パターンに該当する。このため、ステップS1及びステップS2の要素行動C2「スマホ保持」がフレームt1からフレームt6まで継続して認識される。
【0028】
さらに、フレームt1およびフレームt2で顔の部分行動が「前」から「下」へ変化する。このような顔の部分行動の時系列変化は、要素行動C3「下を向く」の時系列パターンに該当する。よって、ステップS1の要素行動C3がフレームt2の時点で認識される。さらに、フレームt2およびフレームt3で左腕の部分行動が「下」から「前」へ変化する。このような左腕の部分行動の時系列変化は、要素行動C5「スマホ操作開始」の時系列パターンに該当する。よって、ステップS1の要素行動C5がフレームt3の時点で認識される。
【0029】
このように、フレームt3の時点でステップS1の組合せに含まれる全身行動C1「歩く」、要素行動C2「スマホ保持」、要素行動C3「下を向く」および要素行動C5「スマホ操作開始」がAND条件で認識される。この結果、フレームt3の時点でステップS1が成立する。
【0030】
その後、フレームt5およびフレームt6で顔の部分行動が「下」から「前」へ変化する。このような顔の部分行動の時系列変化は、要素行動C4「前を向く」の時系列パターンに該当する。よって、ステップS2の要素行動C4がフレームt6の時点で認識される。さらに、フレームt5およびフレームt6で左腕の部分行動が「前」から「下」へ変化する。このような左腕の部分行動の時系列変化は、要素行動C6「スマホ操作終了」の時系列パターンに該当する。よって、ステップS2の要素行動C6がフレームt6の時点で認識される。
【0031】
このように、フレームt6の時点でステップS2の組合せに含まれる全身行動C1「歩く」、要素行動C2「スマホ保持」、要素行動C4「前を向く」および要素行動C6「スマホ操作終了」がAND条件で認識される。この結果、フレームt6の時点でステップS2が成立する。
【0032】
したがって、フレームt6の時点でステップS1、ステップS2の順序でステップS1及びステップS2の両方が成立するので、ルール6を満たす上位行動「歩きスマホ」が認識される。
【0033】
以上のように、本実施例に係る行動認識サービス1によれば、基本動作や要素行動の組合せが定義されたルール6にしたがって上位行動が認識されるので、大量の学習データの準備を不要化できる。さらに、本実施例に係る行動認識サービス1によれば、システム定義が行われたプリセットのルール6だけでなく、ユーザUにルール6をカスタマイズさせることが可能であるので、現場に対応する上位行動の認識を実現できる。
【0034】
[課題の一側面]
上述の通り、本実施例に係る行動認識サービス1によれば、システム定義が行われたプリセットの基本動作や要素行動を用いてルール6をカスタマイズできる。
【0035】
ところが、現場によって求められる要素行動は多様であるので、必ずしもプリセットの要素行動だけで現場に対応する上位行動を定義できるとは限らない。このようにプリセットにない要素行動の認識には、時系列分析に用いる時系列パターンを新たに設定する必要がある。
【0036】
しかしながら、時系列パターンの設定には、行動認識サービス1および現場の双方の専門知識が求められる上に時間や手間がかかるので、プリセットにない要素行動の認識が困難であるという側面がある。
【0037】
このような要素行動の認識は、上記の背景技術の欄で説明した技術でも困難である。すなわち、上記の背景技術の欄で説明した通り、上記の技術では、15個の身体関節から抽出される基本的な特徴、すなわち姿勢、速度および動きのような特徴から行動が認識される。このように、上記の技術では、全身の関節に関する姿勢、速度および動きなどの特徴が行動の認識に用いられる。それ故、上記の技術では、認識対象とする行動が身体の一部にしか動きが現れない動作である場合、他の部位に現れる動作が認識の妨げとなるので、認識精度が低下する。
【0038】
[課題解決のアプローチの一側面]
そこで、本実施例では、各関節の位置の時系列データに基づいて要素行動を認識する際、認識対象とする要素行動の種類に応じて各関節に付与する重みを変えて求めた特徴量に基づいて要素行動を認識する要素行動認識機能7が行動認識サービス1にアドオンされる。このような要素行動認識機能7では、認識対象とする要素行動に対応する身体の部位以外の他の部位に現れる動作が認識の妨げとなるのを抑制する課題解決のアプローチが採用される。
【0039】
なお、ここでは、認識対象とする行動のあくまで一例として、要素行動を例示したが、これに限定されない。あくまで一例として、認識対象とする行動は、身体の一部に動きが現れる行動全般、例えば部分行動などであってもかまわない。例えば、部分行動が認識対象とする場合、認識対象とする部分行動の種類に応じて各関節に付与する重みを変えて各関節の位置の時系列データから求めた特徴量に基づいて部分行動を認識することとすればよい。
【0040】
図4Aは、従来技術の適用時における関節の重みを示す模式図である。
図4Bは、実施例1に係る要素行動認識機能7の適用時における関節の重みを示す模式図である。
図4A及び
図4Bには、要素行動の一例として、「右手を上げる」が認識対象とされる例が示されると共に、フレームt-kおよびフレームtにおける関節の位置を含む骨格モデルが示されている。
【0041】
ここでは、あくまで一例として、関節ごとに当該関節のフレームtの位置と各関節のフレームt-kの位置との差、すなわち相対位置を速度特徴として算出し、各関節の速度特徴に基づいて認識対象とする要素行動が認識される例を挙げる。
【0042】
このように各関節の速度特徴が算出される場合、左右の手首、肘、肩、腰、膝、足首といった関節ごとに相対位置が算出される。例えば、右手首の速度特徴は、右手首の関節のフレームtの位置と右手首の関節のフレームt-kの位置との差、右手首の関節のフレームtの位置と右肘の関節のフレームt-kの位置との差、・・・、右手首の関節のフレームtの位置と左足首の関節のフレームt-kの位置との差に基づいて算出される。
【0043】
図4Aには、従来技術において右手首の速度特徴が算出される場合に右手首との相対位置を求める各関節に付与される重みの大きさが破線の太さにより示されている。
図4Aに示すように、各破線には、互いの太さに差がない。つまり、右手首の速度特徴は、要素行動「右手を上げる」と相関がある右手首や右肘、右肩などの関節のフレームt-kの位置から求める相対位置と、要素行動「右手を上げる」とは無相関である左腕や下半身などの関節のフレームt-kの位置から求める相対位置との間で同じ大きさの重みが付与された状態で算出される。
【0044】
図4Bには、あくまで一例として、本実施例に係る要素行動認識機能7において、右手首の速度特徴が算出される場合に右手首との相対位置を求める各関節に付与される重みの大きさが破線の太さにより示されている。要素行動「右手を上げる」と相関がある関節のフレームt-kの位置から求める相対位置と、要素行動「右手を上げる」とは無相関である関節のフレームt-kの位置から求める相対位置との間で異なる重みが付与される。
図4Bに示すように、認識対象とする要素行動の種類ごとに速度特徴の算出対象とする関節との相対位置の算出に用いる各関節に付与する重みが設定された重みデータにしたがって重みが付与される。例えば、右手首の関節のフレームtの位置と右手首の関節のフレームt-kの位置との間で算出される相対位置には、重み「1」が付与される。また、右手首の関節のフレームtの位置と右肘の関節のフレームt-kの位置との間で算出される相対位置には、重み「1/2」が付与される。さらに、右手首の関節のフレームtの位置と右肩の関節のフレームt-kの位置との間で算出される相対位置には、重み「1/4」が付与される。その一方で、左腕や下半身などの関節のフレームt-kの位置から求める相対位置には、重み「0」が付与される。このように、右手首の速度特徴は、要素行動「右手を上げる」とは無相関である関節のフレームt-kの位置から求める相対位置よりも、要素行動「右手を上げる」と相関がある関節のフレームt-kの位置から求める相対位置に付与される重みを大きくして算出される。
【0045】
ここで、要素行動「右手を上げる」と無相関である部位の位置から求まる相対位置は、要素行動「右手を上げる」を認識する障害、いわゆるノイズとなる。あくまで一例として、「歩きながら右手を上げる」様子が撮影された映像と、「歩いている」様子が撮影された映像とが入力される場合を例に挙げる。なお、説明の便宜上、2つの映像の間で右手首、右肘および右肩以外の関節の動きは同一であると仮定する。
【0046】
例えば、頭部以外に12個の関節の位置を含む骨格モデルが得られる場合、2つの映像の各フレームの間で同一の位置である関節は、右手首、右肘および右肩の関節を除いて9個となる。たとえ2つの映像の各フレームの間で残りの3個の関節の位置が異なるとしても、右手首の速度特徴の算出に占める75%(=9÷12×100)の相対位置が同一の値になる。
【0047】
それ故、従来技術によれば、各関節に同一の重みが付与されるので、右手首の速度特徴の算出に占める75%(=9÷12×100)の相対位置がそのままノイズとなる。このため、2つの映像の間で算出される右手首の速度特徴が類似する可能性が高まる。この結果、「歩いている」様子が撮影された映像までもが認識対象とする要素行動「右手を上げる」と認識されるので、認識精度が低下する。
【0048】
一方、本実施例に係る要素行動認識機能7によれば、要素行動「右手を上げる」とは無相関である関節よりも要素行動「右手を上げる」と相関がある関節に大きな重みを付与されるので、ノイズが除外された状態で右手首の速度特徴を算出できる。この結果、「歩いている」様子が撮影された映像までもが認識対象とする要素行動「右手を上げる」と認識されるのを抑制できる。
【0049】
したがって、本実施例に係る要素行動認識機能7によれば、身体の一部に動きが現れる行動の一例として、プリセットにない要素行動の認識を実現することが可能になる。さらに、本実施例に係る要素行動認識機能7によれば、プリセットにない要素行動がルールに追加される場合、時系列分析に用いる時系列パターンを新たに設定する時間や手間などを削減することも可能になる。
【0050】
[行動認識装置の機能的構成]
図5は、実施例1に係る行動認識装置10の機能的構成の一例を示すブロック図である。
図5に示す行動認識装置10は、上記の行動認識サービス1を提供するコンピュータの一例に対応する。
【0051】
一実施形態として、行動認識装置10は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の行動認識サービス1を実現する行動認識プログラムを任意のコンピュータにインストールさせることによって実装できる。例えば、行動認識装置10は、SaaS(Software as a Service)型のアプリケーションとして実装することで、上記の行動認識サービス1をクラウドサービスとして提供することとしてもかまわない。これに限定されず、行動認識装置10は、上記の行動認識サービス1に対応する機能をオンプレミスに提供するサーバとして実装することができる。
【0052】
さらに、行動認識装置10には、
図5に示すように、撮像装置の一例に対応するカメラ2が接続され得る。これら行動認識装置10及びカメラ2の間は、任意のネットワークを介して通信可能に接続され得る。例えば、ネットワークは、有線または無線を問わず、インターネットやLAN(Local Area Network)などの任意の種類の通信網であってかまわない。なお、
図1や
図5には、説明の便宜上、1つの行動認識装置10につき1つのカメラ2が接続される例を挙げたが、1つの行動認識装置10につき複数のカメラ2が接続されることを妨げない。
【0053】
図5に示すように、行動認識装置10は、映像取得部11と、骨格情報取得部12と、基本動作認識部13と、上位行動認識部14と、ルール記憶部15と、要素行動認識部17と、第1重み記憶部18と、第2重み記憶部19とを有する。なお、行動認識装置10は、
図5に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば入出力インタフェイスや通信インタフェイスなどに対応する機能が含まれてもかまわない。
【0054】
図5に示す映像取得部11、骨格情報取得部12、基本動作認識部13、上位行動認識部14及び要素行動認識部17などの機能部は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより仮想的に実現される。すなわち、プロセッサは、図示しない記憶装置、例えばHDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などからOS(Operating System)の他、上記の行動認識サービス1がパッケージ化された行動認識プログラムなどのプログラムを読み出す。その上で、プロセッサは、上記の行動認識プログラムを実行することにより、RAM(Random Access Memory)等のメモリ上に上記の機能部に対応するプロセスを展開する。このように、上記の行動認識プログラムが実行される結果、上記の機能部がプロセスとして仮想的に実現される。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部または機能部の一部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
【0055】
上記のルール記憶部15、第1重み記憶部18及び第2重み記憶部19などの記憶部は、HDDや光ディスク、SSDなどの補助記憶装置として実装したり、補助記憶装置が有する記憶領域の一部を割り当てることにより実装したりすることができる。
【0056】
映像取得部11は、映像を取得する処理部である。
【0057】
一実施形態として、映像取得部11は、カメラ2から伝送される映像をフレーム単位で取得することができる。ここで、映像取得部11が映像を取得する情報ソースは、任意の情報ソースであってよく、カメラ2に限定されない。例えば、映像取得部11は、映像を蓄積するハードディスクや光ディスクなどの補助記憶装置またはメモリカードやUSB(Universal Serial Bus)メモリなどのリムーバブルメディアから映像を取得することもできる。この他、映像取得部11は、カメラ2以外の外部装置からネットワークNWを介して映像を取得することもできる。
【0058】
骨格情報取得部12は、映像のフレームごとに被写体の各関節の位置を含む骨格情報を検出する処理部である。あくまで一例として、骨格情報取得部12は、映像取得部11により映像が取得されるフレームごとに、当該映像をモーションキャプチャエンジンへ入力することにより、各関節の位置を含む骨格情報を取得することができる。例えば、2次元のモーションキャプチャが行われる場合、関節n=1,・・・,Nのフレームtの座標(xt
1,yt
1)、(xt
2,yt
2)、・・・(xt
N,yt
N)が得られる。以下、インデックスnは、n=1,・・・,Nの順に、右手首、右肘、右肩、左手首、・・・、左足首を識別することとする。なお、上記のモーションキャプチャエンジンは、必ずしも行動認識装置10上のプロセッサで実行されずともよく、外部のエンジンを利用することとしてもかまわない。
【0059】
基本動作認識部13は、各フレームの骨格情報から基本動作を認識する処理部である。あくまで一例として、基本動作認識部13は、フレームごとに骨格情報取得部12により取得される各関節の位置をディープラーニング等の機械学習のアルゴリズムにしたがって基本動作が学習済みであるモデルへ入力する。これによって、フレームごとに基本動作の認識結果が得られる。
【0060】
上位行動認識部14は、上位行動を認識する処理部である。
図5に示すように、上位行動認識部14には、時系列分析部14Aやルール照合部14Bをさらに有する。
【0061】
時系列分析部14Aは、基本動作が所定の時系列パターンに該当するか否かを分析する処理部である。例えば、時系列パターンの一例として、基本動作の継続性や基本動作の状態遷移などが挙げられる。このような時系列パターンに該当する基本動作が「要素行動」として認識される。
【0062】
ルール照合部14Bは、基本行動および要素行動の認識結果と、ルール記憶部15に記憶されたルールとを照合する処理部である。例えば、ルール照合部14Bは、時系列分析部14Aによる時系列分析で認識された要素行動のみならず、後述の要素行動認識部17により認識された要素行動もルールとの照合に用いる。そして、ルールを満たす場合、認識対象とする上位行動が認識される。
【0063】
ルール記憶部15は、基本行動および要素行動の組合せにより認識対象とする上位行動を定義されたルールを記憶する。例えば、組合せには、基本行動および要素行動のうちいずれか一方または両方が含まれることとしてもかまわない。また、ルールには、複数の組合せが定義される場合、各組合せの間での順序や論理的関係などが定義され得る。
【0064】
あくまで一例として、ルール記憶部15には、
図2に示されたルール6などが記憶され得る。
図2に示すように、ルール6には、ステップS1~S2の順に各ステップの組合せが定義されている。例えば、ステップS1には、基本行動(全身行動)C1「歩く」、要素行動C2「スマホ保持」、要素行動C3「下を向く」および要素行動C5「スマホ操作開始」が設定されている。さらに、ステップS2には、基本行動(全身行動)C1「歩く」、要素行動C2「スマホ保持」、要素行動C4「前を向く」および要素行動C6「スマホ操作終了」が設定されている。
【0065】
このようにルール記憶部15には、システム定義のみならず、ユーザ定義により設定されたルール6を記憶させることができる。例えば、上記の行動認識サービス1を提供する事業者側のシステムエンジニアや上記の行動認識サービス1の顧客などのユーザUにルール6を編集させることによりユーザUによるカスタマイズが可能である。
【0066】
要素行動認識部17は、認識対象とする要素行動を認識する処理部である。
図5に示すように、要素行動認識部17は、算出部17Aと、判定部17Bとをさらに有する。
【0067】
算出部17Aは、要素行動の特徴量を算出する処理部である。
【0068】
1つの側面として、算出部17Aは、認識対象とする要素行動の種類に応じて各関節に付与する重みを変える。以下、認識対象とする要素行動の種類に応じて変える各関節の重みのことを「第1重み」と記載する場合がある。
【0069】
ここで、特徴量のあくまで一例として、下記の式(1)に示す速度特徴を算出する例を挙げる。下記の式(1)に示す速度特徴のうち関節nのフレームtの速度特徴fs(xt
n)は、下記の式(2)にしたがって算出される。なお、下記の式(2)に示す「k」は、あらかじめ定められた定数を指し、例えば、任意の自然数を設定することができる。
【0070】
【0071】
以下、あくまで一例として、認識対象の要素行動が「右手を上げる」である場合において、速度特徴を算出する例を説明する。
【0072】
まず、N個の関節のフレームtの速度特徴のうち、右手首の関節のフレームtの速度特徴fs(xt
右手首)を算出する場合(n=1である場合)を例にあげる。すなわち、算出部17Aは、第1重み記憶部18に記憶された第1重みデータにしたがって上記の式(2)の第1重みwiを設定する。
【0073】
図6は、第1重みデータの一例を示す図である。
図6には、第1重みデータのあくまで一例として、SVM(Sapport vector machine)等の機械学習のアルゴリズムにしたがって学習済みである関節の重みおよびモデルのパラメータが示されている。
図6に示すように、第1重みデータには、一例として、認識対象の要素行動ごとに速度特徴の算出対象とする関節nとの相対位置の算出に用いる各関節i=1,・・・,Nの第1重みw
iが対応付けられたデータを採用できる。
【0074】
例えば、右手首の関節のフレームtの位置と右手首の関節のフレームt-kの位置との間で相対位置が算出される場合(i=1である場合)、
図6に示す第1重みデータのうち右手首の重み「1」が第1重みw
1に設定される。また、右手首の関節のフレームtの位置と右肘の関節のフレームt-kの位置との間で相対位置が算出される場合(i=2である場合)、
図6に示す第1重みデータのうち右肘の重み「1/2」が第1重みw
2に設定される。さらに、右手首の関節のフレームtの位置と右肩の関節のフレームt-kの位置との間で相対位置が算出される場合(i=3である場合)、
図6に示す第1重みデータのうち右肘の重み「1/4」が第1重みw
3に設定される。このようにしてインデックスiがNになるまで、同様の処理を繰り返す。
【0075】
他の側面として、算出部17Aは、各関節の間の連動性に応じて各関節に付与する重みを変える。以下、各関節の間の連動性に応じて変える各関節の重みのことを「第2重み」と記載する場合がある。
【0076】
例えば、算出部17Aは、第2重み記憶部19に記憶された第2重みデータにしたがって上記の式(2)の第2重みbnを設定する。
【0077】
図7は、第2重みデータの一例を示す図である。
図7に示すように、第2重みデータには、一例として、速度特徴の算出対象とする関節nごとに当該関節nとの相対位置の算出時に用いるフレームt-kの各関節iに付与する第2重みb
nが対応付けられたデータを採用できる。例えば、関節nおよび関節iの間の連動性が高くなるに連れて高い値が第2の重みに設定される一方で、関節nおよび関節iの間の連動性が低くなるに連れて低い値が第2の重みに設定される。
【0078】
例えば、右手首の速度特徴f
s(x
t
右手首)が算出される場合(n=1である場合)、
図7に示す第2重みデータのうち1行目のレコードが参照される。まず、右手首の関節のフレームtの位置と右手首の関節のフレームt-kの位置との間で相対位置が算出される場合(i=1である場合)、
図7に示す1行目のレコードに含まれる関節i=1,・・・,Nの第2重みのうちインデックスi=1により識別される右手首の重み「1」が第2重みb
1に設定される。そして、フレームt-kの関節が右肘および右肩である場合も、第2重みb
1に「1」が設定される。続いて、右手首の関節のフレームtの位置と左手首の関節のフレームt-kの位置との間で相対位置が算出される場合(i=4である場合)、
図7に示す1行目のレコードに含まれる関節i=1,・・・,Nの第2重みのうちインデックスi=4により識別される左手首の重み「0」が第2重みb
1に設定される。このようにしてインデックスiがNになるまで、同様の処理を繰り返す。
【0079】
このように第1重みwiおよび第2重みbnが設定された後、算出部17Aは、各関節のフレームtの位置と、各関節のフレームt-kの位置とを上記の式(2)に代入することにより、右手首の関節のフレームtの速度特徴fs(xt
右手首)を算出する。同様にして、算出部17Aは、右肘の関節のフレームtの速度特徴fs(xt
右肘)、・・・、左足首の関節のフレームtの速度特徴fs(xt
左足首)を算出する。その後、算出部17Aは、N個のフレームtの速度特徴fs(xt
1)~速度特徴fs(xt
N)を上記の式(1)に代入することにより、認識対象とする要素行動「右手を上げる」のフレームtの速度特徴を算出する。
【0080】
なお、
図6及び
図7には、各データがテーブル形式で格納される場合を例示したが、これはあくまで一例であり、そのデータ構造はリレーショナルデータベースに限定されない。例えば、XML(Extensible Markup Language)などのマークアップ言語によりタグ形式で記述されるデータであってもよいし、CSV(Comma-Separated Values)などのようにカンマや改行により記述されるデータであってもかまわない。
【0081】
また、
図7には、第2重みとして「1」または「0」が設定される例を挙げたが、必ずしも「1」または「0」の2値に限定されず、「0」から「1」までの任意の値を設定することができる。
【0082】
判定部17Bは、算出部17Aにより算出された特徴量に基づいて認識対象とする要素行動の有無を判定する処理部である。
【0083】
あくまで一例として、判定部17Bは、算出部17Aにより算出された速度特徴をSVMの学習済みモデルに入力する。例えば、学習済みモデルが線形識別モデルである場合、学習済みモデルは、
図6に示されたモデルの識別境界パラメータ、すなわち傾きaおよび切片bにより定まる識別境界に基づいて要素行動ありのラベル「1」または要素行動なしのラベル「0」を出力する。このように学習済みモデルから出力されるラベルにより認識対象とする要素行動の有無が識別できる。
【0084】
このようなモデルのパラメータ、例えば傾きaおよび切片bは、あくまで一例として、次のようにして学習できる。例えば、認識対象とする要素行動の正例または負例に対応する映像と、正例または負例の正解ラベルとを含む学習データが用いられる。そして、下記の式(3)における「第1重み」と、モデルの「識別境界パラメータ」とに初期値を設定した上で、学習データから算出される速度特徴と、モデルの識別境界パラメータとに基づいて認識対象の要素行動を認識する。その上で、下記の式(4)における損失関数Lを最小化するように、「第1重み」および「識別境界パラメータ」を更新する処理を規定のエポック回数にわたって繰り返す。下記の式(4)における「q(x)」は、活性化関数を指し、例えば、tanh関数やシグモイド関数、RELU関数などを採用できる。また、下記の式(4)における「fs」は、各関節iに付与される第1重みwiを指す。例えば、正解数が多くなるに連れて値が小さくなる一方で正解数が少なくなるに連れて大きくなる損失関数Lについてパラメータ(t,q(fs))を最大化する対数尤度の最適化を行うことで、「第1重み」および「識別境界パラメータ」の最適化を目指す。
【0085】
【0086】
[処理の流れ]
次に、本実施例に係る行動認識装置10の処理の流れについて説明する。ここでは、行動認識装置10により実行される(1)モデル学習処理を説明した後に、(2)行動認識処理を説明することとする。
【0087】
(1)モデル学習処理
図8は、実施例1に係るモデル学習処理の手順を示すフローチャートである。このモデル学習処理は、行動認識装置10を含め、任意の学習装置により実行されてかまわない。例えば、モデル学習処理は、モデル学習のリクエストを受け付けた場合に開始される。なお、上記の式(3)における「第1重み」および「識別境界パラメータ」には初期値が設定される。
【0088】
図8に示すように、学習装置は、認識対象とする要素行動の正例または負例に対応する映像と、正例または負例の正解ラベルとを含む学習データとして取得する(ステップS101)。
【0089】
続いて、学習装置は、ステップS101で取得された学習データごとに当該学習データに含まれる映像から関節の位置の時系列データを取得する(ステップS102)。
【0090】
その後、学習装置は、規定のエポック数に達するまで下記のステップS103から下記のステップS108までの処理を繰り返してから処理を終了する。さらに、学習装置は、1エポックにつき、学習データの数に対応する回数分、下記のステップS103から下記のステップS107までの処理を繰り返す。さらに、学習装置は、1つの学習データにつき、認識対象とする要素行動の数に対応する回数分、下記のステップS103から下記のステップS106までの処理を繰り返す。
【0091】
すなわち、学習装置は、第1重み記憶部18に記憶された第1重みデータを参照して、認識対象の要素行動ごとに速度特徴を算出する関節nとの相対位置の算出に用いる各関節i=1,・・・,Nに付与する第1重みwiを設定する(ステップS103)。続いて、行動認識装置10は、第2重み記憶部19に記憶された第2重みデータを参照して、速度特徴を算出する関節n=1,・・・,Nごと、および、関節nとの相対位置の算出時に用いるフレームt-kの関節i=1,・・・,Nごとに付与する第2重みbnを設定する(ステップS104)。
【0092】
その上で、学習装置は、第1重みwiおよび第2重みbnの設定後の式(2)に各関節のフレームtの位置および各関節のフレームt-kの位置を代入して得られるN個のフレームtの速度特徴fs(xt
1)~速度特徴fs(xt
N)を上記の式(1)へさらに代入することにより、要素行動のフレームtの速度特徴を算出する(ステップS105)。
【0093】
そして、学習装置は、ステップS105で算出された要素行動のフレームtの速度特徴を識別境界パラメータ、例えば傾きaおよび切片bを有するモデルへ入力することにより当該モデルから出力されたラベルに基づいて認識対象とする要素行動の有無を判定する(ステップS106)。
【0094】
その後、学習装置は、認識対象とする要素行動の認識結果と正解のラベルとを比較することにより、正解数および不正解数をカウントする(ステップS107)。
【0095】
その上で、学習装置は、ステップS107でカウントされた正解数および不正解数に基づいて「第1重み」および「識別境界パラメータ」を含むパラメータを更新する(ステップS108)。
【0096】
(2)行動認識処理
図9は、実施例1に係る行動認識処理の手順を示すフローチャートである。この処理は、一例として、映像取得部11により新たなフレームの映像が取得された場合に開始することができる。
【0097】
図9に示すように、映像取得部11は、カメラ2等から映像のフレームが取得する(ステップS301)。すると、骨格情報取得部12は、ステップS301で取得された映像をモーションキャプチャエンジンへ入力することにより、各関節の位置を含む骨格情報を取得する(ステップS302)。
【0098】
ステップS302以降、ステップSA303~ステップSA307で要素行動のA処理と、ステップSB303及びステップSB304のB処理とが並行して行われる。これらA処理およびB処理は、必ずしも並列に実行されずともよく、直列に実行されることとしてもよい。この場合、A処理およびB処理は、順不同で実行することができる。
【0099】
例えば、ステップSB303では、基本動作認識部13は、ステップS302で取得された各関節の位置を基本動作が学習済みであるモデルへ入力することにより当該モデルから出力される基本動作の認識結果を得る。続いて、ステップSB304では、時系列分析部14Aは、ステップSB303で認識された基本動作が所定の時系列パターンに該当するか否かを分析する。
【0100】
このように、ステップSB303で基本動作が認識された場合、当該基本動作が図示しないメモリのワークエリアに保存される。また、ステップSB304で基本動作が時系列パターンに該当する場合、当該基本動作の時系列パターンに対応する要素行動が図示しないメモリのワークエリアに保存される。
【0101】
一方、下記のステップSA303から下記のステップSA307までの処理は、1フレームにつき、認識対象とする要素行動の数に対応する回数分、繰り返される。
【0102】
すなわち、算出部17Aは、第1重み記憶部18に記憶された第1重みデータを参照して、認識対象の要素行動ごとに速度特徴を算出する関節nとの相対位置の算出に用いる各関節i=1,・・・,Nに付与する第1重みwiを設定する(ステップSA303)。
【0103】
続いて、算出部17Aは、第2重み記憶部19に記憶された第2重みデータを参照して、速度特徴を算出する関節n=1,・・・,Nごと、および、関節nとの相対位置の算出時に用いるフレームt-kの関節i=1,・・・,Nごとに付与する第2重みbnを設定する(ステップSA304)。
【0104】
その上で、算出部17Aは、第1重みwiおよび第2重みbnの設定後の式(2)に各関節のフレームtの位置および各関節のフレームt-kの位置を代入して得られるN個のフレームtの速度特徴fs(xt
1)~速度特徴fs(xt
N)を上記の式(1)へさらに代入することにより、要素行動のフレームtの速度特徴を算出する(ステップSA305)。
【0105】
このとき、ステップSA305で要素行動が認識された場合(ステップSA306Yes)、ステップSA305で認識された要素行動が図示しないメモリのワークエリアに保存される(ステップSA307)。一方、ステップSA305で要素行動が認識されない場合(ステップSA306No)、上記のステップSA307の処理がスキップされる。
【0106】
これらステップSB304及びステップSA307の終了後、ルール照合部14Bは、ステップSB303で認識された基本行動、ステップSB304で認識された要素行動及びステップSA307で認識された要素行動と、ルール記憶部15に記憶されたルールとを照合する(ステップS308)。
【0107】
そして、ルール照合部14Bは、上位行動の認識結果を所定の出力先へ出力する(ステップS309)。ここで言う「出力先」は、任意のハードウェアやソフトウェアでよい。例えば、上位行動の認識結果は、上位行動の認識結果に応じて任意のバックエンドの処理を実行するサービスや機能へ出力することができる。この他、上位高度の認識結果は、上記の行動認識サービス1のユーザUにより設定された表示デバイスや音声出力デバイス、情報処理装置あるいは携帯端末装置などであってもよい。その通知形態もWebやメールなどの任意であってよい。
【0108】
[効果の一側面]
上述してきたように、本実施例に係る行動認識装置10は、各関節の位置の時系列データに基づいて要素行動を認識する際、認識対象とする要素行動の種類に応じて各関節に付与する重みを変えて求めた特徴量に基づいて要素行動を認識する。このため、認識対象とする要素行動に対応する身体の部位以外の他の部位に現れる動作が認識の妨げとなるのが抑制される。したがって、本実施例に係る行動認識装置10によれば、身体の一部に動きが現れる行動の一例として、プリセットにない要素行動の認識を実現することが可能になる。さらに、本実施例に係る行動認識装置10によれば、プリセットにない要素行動がルールに追加される場合、時系列分析に用いる時系列パターンを新たに設定する時間や手間などを削減することも可能になる。
【実施例2】
【0109】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0110】
[要素行動の認識の実装の適用範囲]
上記の実施例1では、あくまで一例として、SVMのアルゴリズムにしたがって学習された第1重みやモデルのパラメータにより要素行動の認識を実現する例を挙げたが、これに限定されず、任意の方法で要素行動の認識を実現することとしもかまわない。その一例として、グラフに対して畳み込み演算を行うGCNN(Graph Convolutional Networks)により要素行動の認識が実現される例を挙げる。
【0111】
図10は、GCNNへの適用例を示す図である。
図11は、パラメータのイメージを模式的に示す模式図である。
図10には、関節がノードによって表現されると共に人体構造がグラフ構造によって表現されるGCNNが示されている。さらに、
図10及び
図11には、N個の関節のフレームtの速度特徴のうち、右手首の関節のフレームtの速度特徴f
s(x
t
右手首)を算出する場合(n=1である場合)に行われる畳み込み演算が例に挙げられている。
【0112】
上記の式(2)に従えば、右手首の関節のフレームtの速度特徴fs(xt
右手首)が計算される場合、関節n=1のフレームtの位置(xt
1,yt
1)と、各関節i=1,・・・,Nのフレームt-kの位置(xt-k
i,yt-k
i)との間で相対位置が計算される。これらN個の相対位置(xt
n-xt-k
i)の各々には、第2重みb右手首×第1重みwiが付与される。
【0113】
一方、
図10に示すGCNNのモデルでは、各関節i=1,・・・,Nのフレームt-kの位置(x
t-k
i,y
t-k
i)には、第2重みb
右手首×第1重みw
iが付与される。このように第2重みb
右手首×第1重みw
iが付与された関節i=1,・・・,Nのフレームt-kの位置(x
t-k
i,y
t-k
i)がn=1の右手首の関節n=1のフレームtの位置(x
t
1,y
t
1)に畳み込まれる。
【0114】
これを模式的に示すと
図11の通りとなる。例えば、
図11に示すように、i=1である場合、i=1の右手首の関節のフレームt-kの位置(x
t-k
右手首,y
t-k
右手首)には、第2重みb
右手首(=1)×第1重みw
1(=1)が付与される。また、i=2である場合、i=2の右肘の関節のフレームt-kの位置(x
t-k
右肘,y
t-k
右肘)には、第2重みb
右手首(=1)×第1重みw
2(=1/2)が付与される。さらに、i=3である場合、i=3の右肩の関節のフレームt-kの位置(x
t-k
右肩,y
t-k
右肩)には、第2重みb
右手首(=1)×第1重みw
3(=1/4)が付与される。以降のi=4以降についても第1重みおよび第2重みが同様に付与される。例えば、i=Nである場合、i=Nの左足首の関節のフレームt-kの位置(x
t-k
左足首,y
t-k
左足首)には、第2重みb
右手首(=0)×第1重みw
N(=1/128)が付与される。これら第2重みb
右手首×第1重みw
iは、
図8に示したモデル学習処理と同様の処理を行うことにより、GCNNのモデルのシナプスの重みとして学習できる。
【0115】
このように、GCNNのモデルにおいても、上記の式(2)にしたがって第2重みb右手首×第1重みwiが付与された関節i=1,・・・,Nのフレームt-kの位置(xt-k
i,yt-k
i)がn=1の右手首の関節n=1のフレームtの位置(xt
1,yt
1)に畳み込まれる。さらに、n=2以降の関節のフレームtの速度特徴fs(xt
n)についても、同様の畳み込み演算が行われる。このような畳み込み演算がn=Nまで実行される結果、GCNNのモデルの出力層からは認識対象とする要素行動の認証結果(真偽)、あるいは要素行動の確信度が出力されることになる。
【0116】
以上のように、上記の要素行動の認識は、上記の実施例1に示す例以外にも、GCNNのモデルを用いたり、他の任意の方法で実現できることが明らかである。
【0117】
[認識対象の適用範囲]
上記の実施例1では、認識対象とする行動のあくまで一例として、要素行動を例示したが、これに限定されない。あくまで一例として、認識対象とする行動は、身体の一部に動きが現れる行動全般、例えば部分行動やであってもかまわない。例えば、部分行動が認識対象とする場合、認識対象とする部分行動の種類に応じて各関節に付与する重みを変えて各関節の位置の時系列データから求めた特徴量に基づいて部分行動を認識することとすればよい。すなわち、要素行動認識部17の説明における「要素行動」を「部分行動」へ読み替えることにより、要素行動の認識と同様に、部分行動の認識を実現できる。
【0118】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、映像取得部11、骨格情報取得部12、基本動作認識部13、上位行動認識部14または要素行動認識部17を行動認識装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、映像取得部11、骨格情報取得部12、基本動作認識部13、上位行動認識部14または要素行動認識部17を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の行動認識装置10の機能を実現するようにしてもよい。
【0119】
[行動認識プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図12を用いて、上記の実施例1および実施例2と同様の機能を有する行動認識プログラムを実行するコンピュータの一例について説明する。
【0120】
図12は、コンピュータのハードウェア構成例を示す図である。
図12に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
【0121】
HDD170には、
図12に示すように、上記の実施例1で示した映像取得部11、骨格情報取得部12、基本動作認識部13、上位行動認識部14および要素行動認識部17と同様の機能を発揮する行動認識プログラム170aが記憶される。この行動認識プログラム170aは、
図5に示した映像取得部11、骨格情報取得部12、基本動作認識部13、上位行動認識部14および要素行動認識部17の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
【0122】
このような環境の下、CPU150は、HDD170から行動認識プログラム170aを読み出した上でRAM180へ展開する。この結果、行動認識プログラム170aは、
図12に示すように、行動認識プロセス180aとして機能する。この行動認識プロセス180aは、RAM180が有する記憶領域のうち行動認識プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、行動認識プロセス180aが実行する処理の一例として、
図8や
図9に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0123】
なお、上記の行動認識プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に行動認識プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から行動認識プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに行動認識プログラム170aを記憶させておき、コンピュータ100がこれらから行動認識プログラム170aを取得して実行するようにしてもよい。
【0124】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0125】
(付記1)複数の関節各々の位置を含む骨格情報を取得し、
認識対象とする部分行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置から求めた特徴量に基づいて前記部分行動を認識する、
処理をコンピュータが実行する行動認識方法。
【0126】
(付記2)前記認識する処理は、各関節の間の連動性に応じて前記複数の関節各々に付与する重みをさらに変える付記1に記載の行動認識方法。
【0127】
(付記3)前記認識する処理は、前記部分行動の時系列パターンに対応する要素行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置の時系列データから求めた特徴量に基づいて前記要素行動を認識する付記1に記載の行動認識方法。
【0128】
(付記4)前記認識する処理は、
前記複数の関節各々に付与する重みが所定の機械学習のアルゴリズムにしたがって学習済みである重みデータを参照して、前記複数の関節各々の位置の時系列データから第1時点における関節の位置と前記第1時点よりも過去である第2時点における前記複数の関節の位置との間の相対位置に基づく特徴量を算出し、
算出された特徴量と、前記機械学習のアルゴリズムにしたがってパラメータが学習済みであるモデルとに基づいて前記部分行動の有無を判定する、
処理を含む付記1に記載の行動認識方法。
【0129】
(付記5)前記認識する処理は、前記複数の関節各々に対応するノード間を接続するシナプスに付与する重みに基づいて第1時点における関節の位置に前記第1時点よりも過去である第2時点における前記複数の関節の位置を畳み込む演算を行うモデルへ、前記複数の関節各々の位置の時系列データを入力することにより得られる前記モデルからの出力に基づいて前記部分行動を認識する付記1に記載の行動認識方法。
【0130】
(付記6)複数の関節各々の位置を含む骨格情報を取得し、
認識対象とする部分行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置から求めた特徴量に基づいて前記部分行動を認識する、
処理をコンピュータに実行させる行動認識プログラム。
【0131】
(付記7)前記認識する処理は、各関節の間の連動性に応じて前記複数の関節各々に付与する重みをさらに変える付記6に記載の行動認識プログラム。
【0132】
(付記8)前記認識する処理は、前記部分行動の時系列パターンに対応する要素行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置の時系列データから求めた特徴量に基づいて前記要素行動を認識する付記6に記載の行動認識プログラム。
【0133】
(付記9)前記認識する処理は、
前記複数の関節各々に付与する重みが所定の機械学習のアルゴリズムにしたがって学習済みである重みデータを参照して、前記複数の関節各々の位置の時系列データから第1時点における関節の位置と前記第1時点よりも過去である第2時点における前記複数の関節の位置との間の相対位置に基づく特徴量を算出し、
算出された特徴量と、前記機械学習のアルゴリズムにしたがってパラメータが学習済みであるモデルとに基づいて前記部分行動の有無を判定する、
処理を含む付記6に記載の行動認識プログラム。
【0134】
(付記10)前記認識する処理は、前記複数の関節各々に対応するノード間を接続するシナプスに付与する重みに基づいて第1時点における関節の位置に前記第1時点よりも過去である第2時点における前記複数の関節の位置を畳み込む演算を行うモデルへ、前記複数の関節各々の位置の時系列データを入力することにより得られる前記モデルからの出力に基づいて前記部分行動を認識する付記6に記載の行動認識プログラム。
【0135】
(付記11)複数の関節各々の位置を含む骨格情報を取得する取得部と、
認識対象とする部分行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置から求めた特徴量に基づいて前記部分行動を認識する認識部と、
を有する行動認識装置。
【0136】
(付記12)前記認識部は、各関節の間の連動性に応じて前記複数の関節各々に付与する重みをさらに変える付記11に記載の行動認識装置。
【0137】
(付記13)前記認識部は、前記部分行動の時系列パターンに対応する要素行動の種類に応じて前記複数の関節各々に付与する重みを変えて前記複数の関節各々の位置の時系列データから求めた特徴量に基づいて前記要素行動を認識する付記11に記載の行動認識装置。
【0138】
(付記14)前記認識部は、
前記複数の関節各々に付与する重みが所定の機械学習のアルゴリズムにしたがって学習済みである重みデータを参照して、前記複数の関節各々の位置の時系列データから第1時点における関節の位置と前記第1時点よりも過去である第2時点における前記複数の関節の位置との間の相対位置に基づく特徴量を算出する算出部と、
算出された特徴量と、前記機械学習のアルゴリズムにしたがってパラメータが学習済みであるモデルとに基づいて前記部分行動の有無を判定する判定部と、
を有する付記11に記載の行動認識装置。
【0139】
(付記15)前記認識部は、前記複数の関節各々に対応するノード間を接続するシナプスに付与する重みに基づいて第1時点における関節の位置に前記第1時点よりも過去である第2時点における前記複数の関節の位置を畳み込む演算を行うモデルへ、前記複数の関節各々の位置の時系列データを入力することにより得られる前記モデルからの出力に基づいて前記部分行動を認識する付記11に記載の行動認識装置。
【符号の説明】
【0140】
10 行動認識装置
11 映像取得部
12 骨格情報取得部
13 基本動作認識部
14 上位行動認識部
14A 時系列分析部
14B ルール照合部
15 ルール記憶部
17 要素行動認識部
17A 算出部
17B 判定部
18 第1重み記憶部
19 第2重み記憶部