(57)【特許請求の範囲】
【請求項１】
肢体の動作に伴う振動のケプストラム係数を時系列データとして抽出する抽出部と、
前記抽出部で抽出された前記時系列データを時分割した時分割データを生成する生成部と、
前記生成部で生成された前記時分割データに含まれる前記ケプストラム係数に基づき、前記時分割データに対応する前記動作の基本単位を分類する分類部とを備え、
前記生成部が、FIFO方式で新たな前記ケプストラム係数を記憶するとともに古い前記ケプストラム係数を廃棄することで、前記時分割データを更新する
ことを特徴とする、動作検知装置。
【請求項２】
前記抽出部が、前記ケプストラム係数の少なくとも第一成分を抽出する
ことを特徴とする、請求項１記載の動作検知装置。
【請求項３】
前記分類部が、前記時分割データに含まれるケプストラム係数の値に基づき、前記動作の基本単位を少なくとも安静状態と非安静状態とに分類する
ことを特徴とする、請求項１又は２記載の動作検知装置。
【請求項４】
前記分類部が、前記時分割データに含まれるケプストラム係数の値に基づき、前記非安静状態に含まれる前記動作の基本単位を動作状態，衝突状態，遷移状態の三つに分類する
ことを特徴とする、請求項３記載の動作検知装置。
【請求項５】
前記時分割データに含まれるケプストラム係数の時間変化勾配を計算する勾配計算部を備えた
ことを特徴とする、請求項１〜４の何れか１項に記載の動作検知装置。
【請求項６】
前記時分割データに含まれるケプストラム係数の分散の度合いを計算する分散計算部を備えた
ことを特徴とする、請求項１〜５の何れか１項に記載の動作検知装置。
【請求項７】
前記分類部で分類された前記動作の基本単位の配列に基づき、前記動作の基本単位を修正する修正部を備えた
ことを特徴とする、請求項１〜６の何れか１項に記載の動作検知装置。
【請求項８】
確率モデルに対する前記動作の基本単位の配列の尤度に基づき、前記動作の種類を推定する推定部を備え、
前記推定部が、前記ケプストラム係数の値に基づき、前記確率モデルを学習する
ことを特徴とする、請求項１〜７の何れか１項に記載の動作検知装置。
【請求項９】
前記推定部が、前記ケプストラム係数の少なくとも第一成分を含む複数の成分を用いて前記確率モデルを学習する
ことを特徴とする、請求項８記載の動作検知装置。
【請求項１０】
肢体の動作に伴う振動のケプストラム係数を時系列データとして抽出し、
前記時系列データを時分割した時分割データを生成するとともに、FIFO方式で新たな前記ケプストラム係数を記憶するとともに古い前記ケプストラム係数を廃棄することで、前記時分割データを更新し、
前記時分割データに含まれる前記ケプストラム係数に基づき、前記時分割データに対応する前記動作の基本単位を分類する
ことを特徴とする、動作検知方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、肢体の動作を検知する動作検知装置，動作検知方法，プログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、ビデオカメラや加速度センサー，マイクロフォン等で検出された情報に基づき、人の動作を認識する技術が開発されている。近年では、センサー類の小型化や通信インフラストラクチャーの発達により、ハンズフリーな入力インターフェースとして機能するさまざまなウェアラブルコンピュータが提案されている。【０００３】
例えば、手首や指に装着されるウェアラブルデバイスで人の手先動作を検出し、これを仮想キーボードの打鍵動作やコマンド入力動作として識別する技術が知られている（特許文献１〜４参照）。ウェアラブルデバイスでのセンシング対象としては、動作に伴って生じる振動（体の中を伝わる振動）や振動音，その振動の加速度，筋電位等が挙げられる。これらの時系列データを解析することで動作が識別され、その動作に応じた入力操作が達成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平07-121294号公報
【特許文献２】特開平10-198478号公報
【特許文献３】特表2005-525635号公報
【特許文献４】特開平11-338597号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、動作時間の異なる多種多様な動作の峻別が難しく、ロバストな動作認識が困難であるという課題がある。ここで、ウェアラブルデバイスを手首に装着した場合に認識対象となる動作の種類として、打鍵動作及び指振り動作を取り上げて説明する。【０００６】
打鍵動作は物体と指とが衝突する動作であり、衝突の際には例えばパルス状の振動が発生する。この振動に対応する時系列データの切り出し幅は、物体及び指の衝突時間や、指の衝突速度に応じて設定することが考えられる。一方、衝突速度，衝突時間はほぼ一定の範囲内に収まるものと予想されることから、時系列データの切り出し幅をほぼ固定長としても、認識精度が大きく低下することはない。【０００７】
これに対して、指振り動作は物体と指とが衝突しない動作であり、指の動作時間に応じた振動が発生する。したがって、時系列データの切り出し幅を固定長にしたのでは、動作の認識精度が低下する可能性がある。
なお、同一の動作であっても、素早い動作と緩慢な動作とでは動作時間が相違する。このことから、たとえ認識対象が単一の動作である場合であっても、時系列データの切り出し幅を適切に設定することは難しい。このような時系列データの切り出し幅に関する設定の困難性は、動作の認識精度の向上を妨げる要因の一つである。【０００８】
本件の目的の一つは、このような課題に鑑み創案されたもので、動作認識に係るロバスト性を向上させることである。
また、前記目的に限らず、後述する「発明を実施するための形態」に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的として位置付けることができる。
【課題を解決するための手段】
【０００９】
開示の動作検知装置は、肢体の動作に伴う振動のケプストラム係数を時系列データとして抽出する抽出部を備える。また、前記抽出部で抽出された前記時系列データを時分割した時分割データを生成する生成部を備える。さらに、前記生成部で生成された前記時分割データに含まれる前記ケプストラム係数に基づき、前記時分割データに対応する前記動作の基本単位を分類する分類部を備える。前記生成部は、FIFO方式で新たな前記ケプストラム係数を記憶するとともに古い前記ケプストラム係数を廃棄することで、前記時分割データを更新する。
【発明の効果】
【００１０】
開示の技術によれば、振動のケプストラム係数の時系列データを時分割した時分割データに基づいて動作の種類を分類することで、動作認識に係るロバスト性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る動作検知装置の斜視図である。
【図２】動作検知装置の装置構成を例示するブロック図である。
【図３】動作を検知するためのプログラムのブロック構成図である
【図４】体導音データを例示するグラフである。
【図５】図４の体導音データから抽出されたケプストラム係数（MFCC第一成分）を例示するグラフである。
【図６】動作プリミティブの種類を説明するための図である。
【図７】動作プリミティブの分類手法を説明するための図である。
【図８】ケプストラム係数の傾き及び分散を説明するための図である。
【図９】ケプストラム係数を例示するグラフである。
【図１０】ケプストラム係数を例示するグラフである。
【図１１】動作推定に係る確率モデルを説明するためのモデル図である。
【図１２】実施形態に係る動作検知方法を説明するためのフローチャートである。
【図１３】実施形態に係る動作検知方法を説明するためのフローチャートである。
【図１４】ケプストラム係数を例示するグラフである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して動作検知装置，動作検知方法，プログラム及び記録媒体に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態をその趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。
【００１３】
［１．用語］
本実施形態の動作検知装置，動作検知方法，プログラム及び記録媒体は、肢体の動作に伴って発生する振動を受けて、その振動を特徴付けるパラメーターに基づき、動作の種類を検知，認識するものである。ここでいう「振動」には、筋肉の振動や骨振動、肢体と物体との接触，衝突によって生じる振動、肢体同士の接触，衝突によって生じる振動等が含まれる。以下、肢体の動作に伴う振動のことを体導音と呼ぶ。
【００１４】
肢体の動作は、その基本単位である動作プリミティブに分類される。「動作プリミティブ」とは、体導音の特徴によって識別される基本動作をその特徴毎にクラスタリングしたものである。本実施形態では、動作プリミティブの種類として安静状態，運動状態，衝突状態，遷移状態の四種類を設定する。「安静状態」は動作が停止している状態に対応し、「運動状態」は動作中の状態に対応し、「衝突状態」は何らかの衝突や急激な動作が発生した状態に対応する。また「遷移状態」は、これらの三状態の間の中間的な状態（又は、動作の種類が明確でない状態）に対応する。
【００１５】
動作の開始時刻及び終了時刻を把握するうえでは、動作プリミティブの種類が少なくとも「安静状態」と「非安静状態」とに区別されていればよい。すなわち、上記の運動状態，衝突状態，遷移状態をまとめた状態として、「非安静状態」を定義してもよい。この場合、動作プリミティブの種類が安静状態から非安静状態へと変化したときを、動作開始時点とみなすことができる。同様に、動作プリミティブの種類が非安静状態から安静状態へと変化したときを、動作終了時点とみなすことができる。
【００１６】
本実施形態で検知，識別される動作の具体例としては、指振り動作や手振り動作，打鍵動作，拍手動作，ドアノブ回転動作，タップ動作，フリック動作，把持動作等が挙げられる。また、掌屈・背屈動作，屈曲・伸展動作，橈屈・尺屈動作，回内・回外動作等も識別される。さらに、手掌や手指の動作だけでなく、足，足指の動作を検知，識別することも可能である。上記のような各動作について、動作プリミティブの種類，順序，数，継続時間，強度等の情報が把握される。
【００１７】
動作プリミティブの種類は、体導音のケプストラム係数（Cepstrum Coefficient）に基づいて分類される。「ケプストラム係数」とは、振動のスペクトル強度に由来する特徴量であり、体導音の対数スペクトルを直交化して得られる多変量である。ケプストラム係数は、異なるスペクトル帯の変化の割合に相当する。体導音のスペクトルを周波数ωの関数f(ω)で表現すれば、ケプストラム係数cnは、例えば以下の式１で与えられる。式１中の変数nは、ケプストラム係数の次数（n=0,1,2,…）である。以下、一次（n=1）のケプストラム係数のことを、ケプストラム係数の第一成分と呼ぶ。
【００１８】
【数１】
0006032350.tif 000002
【００１９】
本実施形態で用いられるケプストラム係数は、メル周波数ケプストラム係数（MFCC，Mel Frequency Cepstrum Coefficient）である。この「MFCC」とは、体導音の対数スペクトルに複数の帯域フィルターを乗じて得られた各帯域におけるパワーの余弦展開係数（コサイン変換，フーリエ変換等を施して得られる係数）である。帯域フィルターとしては、例えばメル尺度で切り分けられた三角窓状のメルフィルターバンク（メル帯域濾波器群）が用いられる。メル尺度は人間の知覚的尺度の一つであり、周波数ωに対して対数的な非線形の特性を持つ。帯域フィルターの数（帯域数）をNとおき、j番目の帯域でのフィルタリング後の振幅をmj（j=1,2,…,N）とおけば、MFCCの第n成分であるcnは、例えば以下の式２で与えられる。
【００２０】
【数２】
0006032350.tif 000003
【００２１】
動作プリミティブの分類では、少なくともMFCCの一次成分が用いられ、好ましくは、低周波帯域成分（低周波の変化成分）が用いられる。「低周波帯域成分」とは、次数nが1以上かつ所定値X以下（n=1,…,X、Xは1より大きい自然数）の成分を意味する。手掌や手指の動作検知に関しては、少なくともMFCCの第一成分c1を用いれば動作認識が可能である。また、この第一成分c1とともに第二成分c2等を併用することで、動作の認識精度が向上する。動作の認識精度は、高次のMFCC成分を併用するほど向上する。
【００２２】
ケプストラム係数は、動作プリミティブの分類だけでなく、動作の推定にも用いられる。上述の通り、動作プリミティブの分類には、少なくともMFCC第一成分c1を用いることが好ましく、より高次の成分を併用してもよい。一方、動作の推定においては、ケプストラム係数が必須のパラメーターであるというわけではなく、適宜省略可能である。ただし、ケプストラム係数を用いることで、動作の推定精度が向上する。また、より高次のケプストラム係数を併用することで、推定精度がさらに向上する。
【００２３】
動作の認識に用いられる具体的なパラメーターとしては、動作プリミティブの種類，順序，数，継続時間，強度等に対応する変数や、上記のケプストラム係数等が挙げられる。また、ケプストラム係数の傾きや分散に対応する変数を用いることも考えられる。ここでいうケプストラム係数の傾きとは、ケプストラム係数の時間変化の勾配（微小時間での変化量）に相当するパラメーターである。また、ケプストラム係数の分散とは、ケプストラム係数のばらつきの度合いに相当するパラメーターである。
【００２４】
［２．動作検知装置］
図１は、本実施形態に係る動作検知装置１０の斜視図である。ここでは、手首に装着されるリストバンド型のウェアラブルデバイスを例示する。この動作検知装置１０には、体導音マイク１１，コンピュータ１２，ストレージリーダライタ１３が内蔵され、図示しない電力源（例えばボタン電池や電力供給ケーブル等）からの電力供給を受けて作動する。動作検知装置１０は、例えばベルト状のリストバンド１４で手首に対して着脱自在に固定される。
【００２５】
体導音マイク１１は、少なくとも体導音の音波を電気信号に変換するマイクロフォン（センサー）であり、あるいはマイクロフォンに加えてマイクロプロセッサー，メモリ，通信装置等を内蔵するセンシングデバイスである。ここでは、手首部分における振動の音圧又は音速が時系列の体導音データとして計測される。体導音マイク１１は、図１に示すように、動作検知装置１０の内周側に配置され、動作検知装置１０の装着時には体表面に対して近接あるいは密着した状態で使用される。ここで計測された体導音データは、図示しない通信線又は無線通信装置を介してコンピュータ１２に伝達される。
【００２６】
コンピュータ１２は、CPU（Central Processing Unit），MPU（Micro Processing Unit）といったプロセッサやROM（Read Only Memory），RAM（Random Access Memory），インターフェース装置等を有する電子計算機である。このコンピュータ１２は、体導音マイク１１から伝達される体導音データに基づいて、動作検知装置１０を装着した人の手掌，手指等の動作を検知し、その種類を認識する機能を持つ。ここで認識された動作の種類は、図示しない通信線又は無線通信装置を介して出力デバイス１５に伝達される。
【００２７】
出力デバイス１５は、動作検知装置１０とは別体に設けられるデバイスであり、例えばコンピュータ１２で認識された動作の種類を報知する機能を持つ。この場合、出力デバイス１５は、少なくともモニター，スピーカー，ランプ等の出力装置を有することが好ましい。また、出力デバイス１５は、例えばコンピュータ１２で認識された動作の種類に応じた操作入力を受け付ける機能を持つ。この場合、動作検知装置１０が出力デバイス１５の入力インターフェースとして機能する。つまり、手掌，手指等の動作が出力デバイス１５を操作するための入力信号として用いられる。したがって、上記の出力デバイス１５として、サーバー，パーソナルコンピュータ，タブレット端末，携帯端末，通信処理端末等を接続することが可能である。
【００２８】
ストレージリーダライタ１３は、リムーバブルメディアの読み書き用のデバイスであり、インターフェース装置を介してコンピュータ１２に接続される。コンピュータ１２は、内蔵メモリ上に記憶されたプログラムだけでなく、リムーバブルメディア上に記録されたプログラムも実行可能である。例えば、本実施形態の動作検知方法が適用されたプログラムは、リムーバブルメディア上に記録され、ストレージリーダライタ１３からコンピュータ１２に読み込まれて実行される。
【００２９】
［３．コンピュータ］
図２に示すように、コンピュータ１２にはCPU２１，主記憶装置２２，補助記憶装置２３，インターフェース装置２４が設けられ、これらがバス２０を介して互いに通信可能に接続される。CPU２１は、制御ユニット（制御回路）や演算ユニット（演算回路），キャッシュメモリ（レジスタ群）等を内蔵する処理装置（プロセッサ）である。また、主記憶装置２２は、プログラムや作業中のデータが格納されるメモリ装置であり、例えば前述のRAM，ROMがこれに含まれる。一方、補助記憶装置２３は、主記憶装置２２よりも長期的に保持されるデータやプログラムが格納されるメモリ装置であり、例えばフラッシュメモリ等のROMがこれに含まれる。
【００３０】
インターフェース装置２４は、コンピュータ１２と外部装置との間の入出力（Input/Output；I/O）を司るものである。ここには、センサー入力部２５，ストレージ入出力部２６，外部出力部２７が設けられる。
センサー入力部２５は、体導音マイク１１とコンピュータ１２とのインターフェースとして機能するものである。体導音マイク１１から伝達される体導音データは、センサー入力部２５を介してコンピュータ１２内に入力される。
【００３１】
ストレージ入出力部２６は、ストレージリーダライタ１３とコンピュータ１２とのインターフェースとして機能するものである。ストレージ入出力部２６は、リムーバルメディアが装着されているストレージリーダライタ１３に対してリード／ライト等のアクセスコマンドを送信することで、データの書き込みや読み出しを行う。なお、ストレージリーダライタ１３上のリムーバブルメディアには、体導音マイク１１で計測された体導音データやコンピュータ１２で認識された動作に関する情報の読み書きが可能である。
外部出力部２７は、出力デバイス１５とコンピュータ１２とのインターフェースとして機能するものである。コンピュータ１２内で認識された動作の種類やその他の演算結果は、外部出力部２７を介して出力デバイス１５へと伝達される。出力デバイス１５との通信の種類は、例えば有線通信デバイスによる有線通信であってもよいし、あるいは無線通信デバイスによる無線通信であってもよい。
【００３２】
［４．プログラム］
図３は、コンピュータ１２で実行される処理内容を説明するためのブロック図である。これらの処理内容は、例えばアプリケーションプログラムとして補助記憶装置２３やリムーバルメディアに記録され、主記憶装置２２内のメモリ空間内に展開されて実行される。処理内容を機能的に分類すると、このプログラムには、動作特徴量抽出部１及び動作推定部９が設けられる。
【００３３】
［４−１．動作特徴量抽出部］
動作特徴量抽出部１は、動作を特徴付ける情報を体導音データから抽出するものである。ここでは、動作プリミティブ，MFCCの傾き，MFCCの二乗誤差の情報が抽出される。これらの三種類の情報は、体導音データの微小時間毎に算出され、時系列の情報に変換される。動作特徴量抽出部１には、ケプストラム抽出部２，第一バッファ部３，プリミティブ分類部４，傾き計算部５，二乗誤差計算部６，第二バッファ部７，プリミティブ分類修正部８が設けられる。
【００３４】
［４−２．ケプストラム抽出部］
ケプストラム抽出部２（抽出部）は、体導音データについてのケプストラム係数を微小時間毎に算出するものである。ここでは、少なくともMFCC第一成分c1が算出される。MFCC第一成分c1は、体導音データに対して離散的に算出される。一つのMFCC第一成分c1は、所定時間の間に入力された体導音データを元にして、繰り返し算出される。また、MFCC第一成分c1の算出周期Pは、所定周期とされる。ここで算出されるMFCC第一成分c1のデータ群は、時系列データであるとみなすことができる。したがって、ケプストラム抽出部２は、体導音データの中からケプストラム係数を時系列データとして抽出する機能を持つ。ケプストラム抽出部２で複数のケプストラム係数を算出する構成の場合には、各々のケプストラム係数が時系列データとして抽出される。
【００３５】
図４は、ケプストラム抽出部２に入力される拍手動作時の体導音データのグラフ例である。また、図５は、これに対応するMFCC第一成分c1のグラフ例である。図５中の一個のデータ点は、0.1秒間の体導音データを切り出したものから算出されたものであり、一つのMFCC第一成分c1に対応する。また、データ点のピッチ（すなわち、MFCC第一成分c1の算出周期P）は0.01秒間隔である。ここで算出されたMFCC第一成分c1の値は、第一バッファ部３に伝達される。
【００３６】
なお、拍手動作時におけるMFCC第一成分c1のピークは、図４，図５に示すように、拍手動作に伴う体導音データが大きく変化する期間に対応して、約0.04〜0.05秒間維持される。このことから、拍手動作を認識するためには、約0.04〜0.05秒間維持されるMFCC第一成分c1のピークを検知することが望ましいといえる。このように、MFCC第一成分c1の値がピーク値近傍となる時間をピーク維持時間Dと呼ぶ。ケプストラム抽出部２におけるMFCC第一成分c1の算出周期Pは、認識対象の動作によって生じるケプストラム係数のピーク維持時間D以下の範囲で設定されることが好ましい。
【００３７】
［４−３．第一バッファ部］
第一バッファ部３（生成部）は、少なくとも一定時間分のMFCC第一成分c1の値を記憶するものである。ここには、ケプストラム抽出部２で算出されたMFCC第一成分c1の値が時系列の順に貯えられる。第一バッファ部３は、少なくとも前述のピーク維持時間D以上の時間に対応するMFCC第一成分c1の値が記憶される程度の記憶容量を持つ。つまり、第一バッファ部３は、算出周期PのMFCC第一成分c1を少なくともD/P個以上（D>P）記憶する。なお、ケプストラム抽出部２で複数のケプストラム係数を算出した場合には、それらも併せて記憶する記憶容量を第一バッファ部３に設けることが好ましい。
【００３８】
本実施形態の第一バッファ部３は、算出周期Pが0.01秒のMFCC第一成分c1を、四個で一セットの時系列データレコードとして記憶する。ケプストラム抽出部２で複数のケプストラム係数を算出した場合には、それらも時系列データレコードに含まれる。ここに記憶された一セットの時系列データレコードは、プリミティブ分類部４，傾き計算部５のそれぞれに伝達される。この時系列データレコードは、MFCC第一成分c1の時系列データ（時系列のケプストラムデータ）を時分割した時分割データであるとみなすことができる。したがって、第一バッファ部３は、ケプストラム係数の時系列データを時分割した時分割データを生成する生成部としての機能を持つ。
【００３９】
その後、第一バッファ部３は、例えばFIFO（First-In First-Out）方式で新たなMFCC第一成分c1の値を記憶するとともに、古いMFCC第一成分c1の値を記憶容量の超過分だけ廃棄する。これにより、第一バッファ部３では時系列データレコードが常に更新される。時系列データレコードの更新周期Rは、MFCC第一成分c1の算出周期Pに一致させてもよいし、算出周期Pよりも長周期としてもよい。本実施形態では、0.02秒周期で時系列データレコードが更新される。つまり、時系列データレコードは、新たなMFCC第一成分c1が二個算出される毎に更新される。なお、この更新周期Rは、後述するプリミティブ分類部４における動作の分類周期に対応するものであることから、算出周期P以上かつピーク維持時間D以下の範囲内で設定することが好ましい。
【００４０】
［４−４．プリミティブ分類部］
プリミティブ分類部４（分類部）は、第一バッファ部３に貯えられた時系列データレコードを用いて、その時系列データレコードに対応する微小時間における動作の種類を分類するものである。ここでは、微小時間の動作が複数の動作プリミティブの何れか一つに分類される。本実施形態における微小時間の長さは0.04秒である。また、この分類が実施される周期は、時系列データレコードの更新周期Rと同一（0.02秒周期）である。
【００４１】
前述の通り、ここでは微小時間の動作が四種類の動作プリミティブ（安静状態，運動状態，衝突状態，遷移状態）の何れかに分類される。遷移状態は、図６に示すように、他の三種類の状態の何れにも該当しない中間的な状態である。安静状態，運動状態，衝突状態は、遷移状態を経て他の状態へと変化する。例えば、安静状態から直接的に運動状態へと変化することはなく、遷移状態を経て運動状態へと変化するものとする。また、運動状態から安静状態への直接的な変化もないものとする。なお、衝突状態に関しては、実際の動作速度によって安静状態から直接的に衝突状態へと変化する可能性があるものとしてもよいし、このような変化はないものとしてもよい。
【００４２】
プリミティブ分類部４は、時系列データレコードに含まれる四個のMFCC第一成分c1の値に基づいて動作プリミティブの種類を識別する。ここで、任意のMFCC第一成分cについての四つの閾値cTH1，cTH2，cTH3，cTH4を用いて、以下の三種類の範囲を定義する。なお、これらの閾値の大小関係は、cTH1＜cTH2＜cTH3＜cTH4である。具体的な設定例としては、cTH1=-10，cTH2=-7，cTH3=-3，cTH4=0とすることが考えられる。
第一範囲：cTH1以下の範囲（c≦cTH1）
第二範囲：cTH2以上かつcTH3以下の範囲（cTH2≦c≦cTH3）
第三範囲：cTH4以上の範囲（c≧cTH4）
【００４３】
プリミティブ分類部４は、四個のMFCC第一成分c1の値のうち、少なくとも一つが第一範囲内にあり、かつ、何れも第二範囲及び第三範囲内にない場合に、その時系列データレコードに対応する動作プリミティブを「安静状態」に分類する。また、四個のMFCC第一成分c1の値のうち、少なくとも一つが第二範囲内にあり、かつ、何れも第一範囲及び第三範囲内にない場合には、その時系列データレコードに対応する動作プリミティブを「運動状態」に分類する。
【００４４】
同様に、四個のMFCC第一成分c1の値のうち、少なくとも一つが第三範囲内にあり、かつ、何れも第一範囲及び第二範囲内にない場合は、その時系列データレコードに対応する動作プリミティブを「衝突状態」に分類する。そして、上記の条件の何れにも該当しない場合に、その時系列データレコードに対応する動作プリミティブを「遷移状態」に分類する。例えば、全てのMFCC第一成分c1の値が第一〜第三範囲内にない状態は、遷移状態である。また、MFCC第一成分c1の値が二つ以上の範囲内に存在している状態も、遷移状態である。
【００４５】
MFCC第一成分c1の値とこれに対応する動作プリミティブの種類との関係を図７に例示する。MFCC第一成分c1は、ケプストラム抽出部２において時刻t1から0.01秒毎に算出され、第一バッファ部３に貯えられる。また、プリミティブ分類部４では、四個のMFCC第一成分c1の値に基づいて動作プリミティブが分類され、この分類が0.02秒毎に繰り返される。
【００４６】
例えば、時刻t1〜t4に対応するMFCC第一成分c1の値は、二個が第一範囲内にあり、何れも第二範囲内，第三範囲内にない。したがって、この時系列データレコードに対応する動作プリミティブは「安静状態」となる。一方、時刻t3〜t6に対応するMFCC第一成分c1の値は何れも第一〜第三範囲内にないため、動作プリミティブは「遷移状態」となる。また、続く時刻t5〜t8に対応する動作プリミティブは、一個のMFCC第一成分c1の値が第三範囲内にあり「衝突状態」となる。
【００４７】
このように、プリミティブ分類部４では、時系列データレコードに含まれる複数のケプストラム係数の値に見合った状態が判断され、動作プリミティブの種類が分類（ラベリング）される。動作プリミティブの種類のラベルは、微小時間毎の体導音の特徴を表し、言語認識技術における音素に相当する。ここで分類された動作プリミティブの種類の情報は、更新周期R毎に第二バッファ部７へと伝達される。
【００４８】
なお、上記の四種類の動作プリミティブは、「安静状態」と「非安静状態」とに大別することができる。この「非安静状態」には「運動状態」，「衝突状態」，「遷移状態」が含まれる。これらの二種類の動作プリミティブを判別するためには、少なくとも第一範囲のみが定義されていればよい。例えば、四個のMFCC第一成分c1の値のうち、少なくとも一つが第一範囲内にあるときに、その時系列データレコードに対応する動作プリミティブを「安静状態」に分類する。一方、全ての値が第一範囲外にあるときには、動作プリミティブを「非安静状態」に分類する。このような分類により、少なくとも動作の開始時点及び終了時点が認識可能である。
【００４９】
［４−５．傾き計算部］
傾き計算部５は、図３に示すように、第一バッファ部３からのデータの流れに対してプリミティブ分類部４と並列に設けられる。これにより、第一バッファ部３から与えられる同一の時系列データレコードに対し、プリミティブ分類部４と傾き計算部５とが並列的に演算処理を実施する。
【００５０】
傾き計算部５（勾配計算部）は、第一バッファ部３に貯えられた時系列データレコードを用いて、その時系列データレコードに対応する微小時間におけるMFCC第一成分c1の時間変化の勾配（傾き，時間変化勾配）を計算するものである。ここでは、図８に示すように、微小時間の時系列データレコードに含まれるMFCC第一成分c1のデータ点の分布（時間変化の傾向）を直線近似したときの傾きの大きさが計算される。
【００５１】
具体的な手法としては、例えば最小二乗法や主成分分析の手法等を用いて回帰直線を求め、その傾きを計算することが考えられる。ここで計算された傾きの情報は、更新周期R毎に第二バッファ部７へと伝達される。なお、ここで算出される傾きの情報は、後述する動作推定部９で動作を推定するための確率モデルへの入力パラメーターとして使用されるため、ラジアン単位で計算することが好ましい。ラジアン単位は、傾きの値の限界値を有限値で記述可能であり、コンピュータ１２での演算に係るオーバーフローを抑制するうえで好適である。
【００５２】
MFCC第一成分c1の時間変化勾配の絶対値は、動作の状態変化が急激であるほど大きくなる傾向がある。肢体の動作では、手首や足首がある程度固定された動作において、勾配変化が増大する。このような勾配変化は、例えば低周波の振幅変化が生じる動作において観察される。したがって、傾きの情報は肢体の動作を判断するための指標の一つとなる。
【００５３】
異なる動作に対応するMFCC第一成分c1のデータ点のグラフを、図９（ａ），図９（ｂ）に例示する。図９（ａ）は、掃除機を用いて床を掃除したときの手の動作に対応するグラフであり、図９（ｂ）は、歯磨き時の手の動作に対応するグラフである。何れも動作も比較的重量のある腕を動かす動作であり、低周波の振幅変化が発生しやすい。一方、これらの動作は手の安定性が相違するため、傾きの変化が異なる挙動を示す。
【００５４】
前者の場合のMFCC第一成分c1の値は、図９（ａ）に示すように、比較的変動が少なく安定しており、傾きの変化が小さいことがわかる。これは、掃除機をかけているときは掃除機が地面に設置されており、手の動作が安定した運動になるためであると考えられる。これに対して、後者の場合のMFCC第一成分c1の値は、図９（ｂ）に示すように、傾きの変化が激しいことがわかる。これは、歯磨き時には手が宙に浮いた状態となり、手の動作が不安定な運動になるためであると考えられる。
【００５５】
［４−６．二乗誤差計算部］
二乗誤差計算部６（分散計算部）は、図３に示すように、第一バッファ部３からのデータの流れに対して傾き計算部５の直下流側に（直列に）設けられる。この二乗誤差計算部６は、時系列データレコードに対応する微小時間におけるMFCC第一成分c1の分散の度合い（ばらつき）を計算する。ここでは、傾き計算部５での計算過程で得られる回帰直線に対して、MFCC第一成分c1のデータ点がどの程度散らばっているかが算出される。
【００５６】
本実施形態では、回帰直線〔図８中に示す直線グラフ〕とデータ点との二乗誤差の和が、その時系列データレコードにおける分散度合いとして計算される。ここで算出された分散度合いの情報は、更新周期R毎に第二バッファ部７へと伝達され、動作推定部９で動作を推定するための確率モデルへの入力パラメーターとして使用される。
【００５７】
分散の度合いは、動作が不安定であるほど大きくなる傾向がある。肢体の動作では、手首や足首があまり固定されていない動作（手先や足先が回転する動作）において、分散の度合いが増加する。このような分散の度合いの変化は、例えば高周波の振幅変化が生じる動作において観察される。したがって、分散の度合いの情報も肢体の動作を判断するための指標の一つとなる。
【００５８】
図１０（ａ）は、指の縦振り動作に対応するMFCC第一成分c1のデータ点のグラフであり、図１０（ｂ）は、指（人差し指）のフリック動作（横振り動作）に対応するグラフである。何れの動作も比較的軽量の指や手首を動かす動作であり、高周波の振幅変化が発生しやすい。一方、これらの動作は指の運動方向や動かしやすさが相違するため、分散の度合いが相違する。
【００５９】
前者の場合のMFCC第一成分c1の値は、図１０（ａ）に示すように、比較的ばらつきが小さく、分散の度合いは小さいことがわかる。これは、縦振り動作が指の筋繊維の配向に沿った運動であり、指の動作が安定した運動になるためであると考えられる。これに対して、後者の場合のMFCC第一成分c1の値は、図１０（ｂ）に示すように、激しくばらついており、分散の度合いが大きいことがわかる。これは、横振りであるフリック動作では手首を固定することができず、動作が不安定になるためであると考えられる。
【００６０】
［４−７．第二バッファ部］
第二バッファ部７は、プリミティブ分類部４，傾き計算部５，二乗誤差計算部６で得られた動作プリミティブの種類，MFCCの値，傾き，分散度合いの各情報を記憶するものである。ここでは、一セットの時系列データレコードから得られる三種類の情報が一組のデータセットとして、MFCCの値とともに時系列で記憶される。ケプストラム抽出部２で複数のケプストラム係数を算出した場合には、それらも併せて記憶される。
【００６１】
第二バッファ部７におけるデータセットの増加周期Sは、第一バッファ部３における時系列データレコードの更新周期Rと同一である。本実施形態の更新周期Rは0.02秒であり、動作プリミティブの種類，傾き，分散度合いの各情報が0.02秒毎に算出される。したがって、時系列データレコードも0.02秒毎に増加する。
【００６２】
第二バッファ部７は、少なくとも三組のデータセットが記憶される記憶容量を持つ。つまり、第二バッファ部７は、三セットの時系列データから得られる動作プリミティブの種類，MFCCの値，傾き，分散度合いの各情報を記憶する。なお、記憶容量の余裕の大小に応じて記憶するデータセットの組数を増加させてもよい。ここに記憶された三組のデータセットは、プリミティブ分類修正部８に伝達される。
【００６３】
その後、第二バッファ部７は、例えばFIFO方式で新たなデータセットを記憶するとともに、古いデータセットを記憶容量の超過分だけ廃棄する。これにより、第二バッファ部７ではデータセットの組み合わせが常に更新される。データセットの組み合わせが更新される毎に、三組のデータセットがプリミティブ分類修正部８に伝達され、動作プリミティブの種類の配列が判定される。
【００６４】
［４−８．プリミティブ分類修正部］
プリミティブ分類修正部８（修正部）は、第二バッファ部７から伝達される三組のデータセットに含まれる動作プリミティブの種類を修正するものである。ここでは、動作プリミティブの種類の配列に基づいてその種類が修正される。例えば、動作プリミティブの種類を時系列の順にY1，Y2，Y3として、Y1〜Y3の何れもが「遷移状態」，「衝突状態」ではなく、かつ、Y1とY3とが同一の状態である場合に、Y2がY1と同一の状態に修正される。具体的には、動作プリミティブが以下の配列のY2が修正対象となる。
【００６５】
例１．Y1:「安静状態」→ Y2:「運動状態」→ Y3:「安静状態」
例２．Y1:「運動状態」→ Y2:「安静状態」→ Y3:「運動状態」
これらを修正した後の配列は、以下の配列となる。
例１．Y1:「安静状態」→ Y2:「安静状態」→ Y3:「安静状態」
例２．Y1:「運動状態」→ Y2:「運動状態」→ Y3:「運動状態」
【００６６】
あるいは、Y1〜Y3の何れもが「遷移状態」ではなく、かつ、Y1とY3とが同一の状態であり、かつ、「運動状態」及び「衝突状態」の変化ではない場合に、Y2がY1と同一の状態に修正されることとしてもよい。この場合、上記の配列に加えて以下の配列のY2も修正対象となる。
【００６７】
例３．Y1:「安静状態」→ Y2:「衝突状態」→ Y3:「安静状態」
例４．Y1:「衝突状態」→ Y2:「安静状態」→ Y3:「衝突状態」
これらを修正した後の配列は、以下の配列となる。
例３．Y1:「安静状態」→ Y2:「安静状態」→ Y3:「安静状態」
例４．Y1:「衝突状態」→ Y2:「衝突状態」→ Y3:「衝突状態」
【００６８】
上記の修正は、何れも肢体の運動能力を考慮した動作プリミティブの種類の誤判定に対する修正である。プリミティブ分類部４での分類に係る微小時間は、動作の精度に比して十分に短い時間であり、異なる種類の動作プリミティブが交互に現れる可能性は小さい。したがって、同一種類の動作プリミティブで挟まれた他種類の動作プリミティブが「遷移状態」でない場合には、その動作プリミティブの種類を判定ミスとみなして、前後の動作プリミティブと同じ種類のものへと修正する。動作プリミティブの種類の修正がなされた後のデータセットは、動作推定部９に伝達される。
【００６９】
［４−９．動作推定部］
動作推定部９は、動作特徴量抽出部１で得られた情報（動作特徴量）に基づいて、体導音データに対応する動作を推定するものである。ここには、プリミティブ分類修正部８での修正処理を済ませたデータセットが時系列で入力される。動作推定部９は、三種類の機能を持つ。第一の機能は、プリミティブ分類修正部８から伝達されるデータセットから、肢体の動作に対応する情報を切り出す「切り出し機能」である。第二の機能は、切り出された情報に基づいて動作を認識する「認識機能」である。第三の機能は、切り出された情報に基づいて動作認識で用いられるモデルを修正する「学習機能」である。
【００７０】
「切り出し機能」は、データセットに含まれる動作プリミティブの種類に基づいて制御される。例えば、動作プリミティブの種類が「安静状態」から他の状態へと変化した時刻が、動作の開始時刻に相当するものと判断され、情報の切り出しが開始される。一方、動作プリミティブの種類が安静状態以外の状態から「安静状態」へと変化した時刻が、動作の終了時刻に相当するものと判断され、情報の切り出しが終了する。ここでの判定に係るデータセットの情報には、プリミティブ分類修正部８での修正が加えられている。したがって、動作の開始，終了前後における動作プリミティブの変動（誤判定による変動）はすでに抑制されており、適切なタイミングで情報が切り出される。
【００７１】
「認識機能」は、「切り出し機能」で切り出された情報に基づいて実施される。動作推定部９には、例えば認識すべき動作の種類に応じた個数の確率モデルが用意される。動作推定部９は、これらの確率モデルを用いて、切り出された情報に対応する動作が何の動作であるかを推定する。ここで使用される確率モデルとしては、例えば動作プリミティブの変動パターンをモデル化したHMM（Hidden Markov Model，隠れマルコフモデル）を適用することができる。あるいは、非単調な出力特性を持つ神経素子で動作のパターンをモデル化したRNN（Recurrent Neural Network，リカレントニューラルネットワーク）を適用してもよい。
【００７２】
HMMは、入力された情報がモデルと一致する尤もらしさ（尤度）を出力する確率的な状態遷移モデルの一つである。HMMでは、時系列に変化する複数の状態が設定されるとともに、各状態から各状態への任意の組み合わせについての状態遷移の確率が状態毎に与えられる。このモデルでは、ある時刻の状態がその時刻以前の状態（例えば、直前の状態）に依存して決定される。また、各状態を直接的に観測することはできず、各状態で確率的に出力されるシンボルが観測されるものとする。
【００７３】
HMMが事前学習で獲得されている場合、各々のHMMには、ある入力xに対して状態Siから状態Sjに遷移する確率pij(x)が設定される。また、それぞれの状態Sjについて、確率qj(x)で出力シンボルを返す識別器が設けられる。動作推定部９は、プリミティブ分類修正部８での修正処理を済ませた時系列のデータセットの入力xtを各HMMに与え、入力xtに対する尤度Πpij(xt)qj(x)を計算する。そして、最大尤度を与える確率モデルに対応する動作を推定結果として出力する。つまり、入力された時系列のデータセットを得る確率が最大となる動作が、体導音データに対応する実際の動作として推定される。ここで得られた推定結果に関する情報は、インターフェース装置２４を介して出力デバイス１５に出力され、例えば出力デバイス１５を操作するための入力信号として利用される。
【００７４】
事前学習によるHMMを利用する手法では、モデルとなる状態数が設計者によって設定される。学習パラメーターの初期値は、局所解に落ちないように設定することが好ましい。また、HMMへの入力xtに相当するパラメーターとしては、動作プリミティブの種類やケプストラム係数の傾き，二乗誤差の和などが挙げられる。例えば、動作プリミティブの種類に応じた離散値を設定し、これを入力パラメーターとしてもよい。
動作プリミティブをHMMへの入力として使用した場合、ある時系列の動作に対応する動作プリミティブの状態の分割数は任意となる。動作推定部９での推定演算を通して、最適な状態の分割位置が探索されるとともに、最適な状態の遷移確率pij(x)及び状態確率qij(x)が探索される。
【００７５】
「学習機能」は、「切り出し機能」で切り出された情報に基づき、「認識機能」で用いられる動作の認識モデルを修正，学習する機能である。上記のHMMは、動作特徴量抽出部１で得られた情報（動作特徴量）に基づく学習を通じて獲得又は更新することが可能である。例えば、動作プリミティブの種類をHMMの状態Siに対応させる。ここでいう状態Siには、例えば運動状態，衝突状態，遷移状態の各状態が対応する。各状態Siは、状態毎に定義される出力確率分布（例えば、正規分布，多項分布等）に従ってシンボルを出力するものとする。この出力確率分布を決定するパラメーターとして、上記の動作特徴量を利用する。
【００７６】
つまり、HMMの状態Siの数を動作プリミティブの種類数と同数に設定し、動作プリミティブの変化点を状態Siから状態Sjに遷移する箇所として与える。これにより、状態Siである確率qj(x)のモデルを任意の動作プリミティブ時の傾きや二乗誤差の和などから作成することができる。また、状態Siから状態Sjへの遷移確率pij(x)を最適化するだけでHMMを作成することが可能となる。さらに、このように作成したモデルに対し、状態Siから状態Sjへの遷移箇所の固定を解除して再学習を行うことで、局所解への落ち込みが防止される。このような手法により、プリミティブ分類部４で動作プリミティブを分類するときに用いられる閾値cTH1，cTH2，cTH3，cTH4を修正することが可能となる。
【００７７】
本実施形態の「学習機能」でのモデルの学習に係るHMMを、図１１に例示する。ここでは、HMMの状態Sjとして運動状態，衝突状態，遷移状態の各状態を対応させたものを示す。それぞれの状態Sjは、他の状態からの遷移時に、状態Sj毎に異なる正規分布に従って出力シンボルを出力するものとする。図１１中のaijは、状態iから状態jへの状態遷移確率を表す。また、各状態Sjでシンボルが出力される確率N(c,μ,Σ)は、例えばMFCCの値（第一成分c1〜第n成分cn），傾きμ，分散度合い（二乗誤差の和Σ）のうちの少なくとも一つに基づいて与えられる関数とする。
【００７８】
動作推定部９は、プリミティブ分類修正部８での修正処理を済ませた時系列のデータセットの入力xtを各HMMに与え、入力xtに対してaij・N(c,μ,Σ)の和（尤度）が最大となる経路を探索する。そして、最大尤度を与える経路に対応する動作を推定結果として出力する。
動作プリミティブをHMMの状態Sjとして使用した場合、ある時系列の動作に対応する動作プリミティブの状態の分割数は、動作特徴量抽出部１で得られた動作プリミティブの種類の配列によって決定され、その分割位置も定められる。動作推定部９での推定演算を通して、最適な状態の遷移確率pij(x)が探索されるとともに、状態確率qij(x)が作成される。
【００７９】
［５．フローチャート］
図１２，図１３は、動作検知装置１０に適用された動作検知方法の手順を説明するためのフローチャートである。これらのフローは、例えば補助記憶装置２３やリムーバルメディアに記録されたアプリケーションプログラムによる制御手順に対応するものであり、コンピュータ１２に読み込まれて所定周期で繰り返し実行される。これらのプログラムの実行周期は、例えばケプストラム抽出部２におけるMFCC第一成分c1の算出周期P以下の周期（0.01秒以下）とされる。
【００８０】
［５−１．動作特徴量の抽出］
図１２のフローは、おもに動作特徴量抽出部１での制御内容に対応する。
ステップＡ１０では、体導音データがコンピュータ１２に入力される。動作検知装置１０での動作認識をリアルタイムに実施する場合には、体導音マイク１１で計測された体導音データを直ちにコンピュータ１２に入力する。また、事前に取得された体導音データを用いる場合には、その体導音データをリムーバブルメディアに記録しておき、これをストレージリーダライタ１３に読み込ませてもよい。ここで入力された体導音データは、動作特徴量抽出部１のケプストラム抽出部２に伝達される。
【００８１】
ステップＡ２０では、体導音のケプストラム係数が時系列データとして抽出される。このステップでは、例えば0.1秒間の体導音データを対象としたMFCC第一成分c1が算出される。すなわち、ケプストラム抽出部２において、式２中の変数nにn=1が代入されるとともに、変数mjに対数スペクトルとメルフィルターバンク（j番目の帯域）との積が代入されて、MFCC第一成分c1の値が算出される。ここで算出されたMFCC第一成分c1の値は、第一バッファ部３に伝達される。
【００８２】
ステップＡ３０では、ケプストラム抽出部２で算出されたMFCC第一成分c1の値が第一バッファ部３に記憶（バッファリング）される。また、続くステップＡ４０では、第一バッファ部３に記憶されたMFCC第一成分c1の個数が所定数に達したか否かが判定される。例えば、MFCC第一成分c1の個数が四個未満であるときには、情報量が一セットの時系列データレコードに満たないため、制御がステップＡ１０に進み、ケプストラム係数の抽出が繰り返される。一方、四個のMFCC第一成分c1が第一バッファ部３に貯まったときには、それらの情報が一セットの時系列データレコードとされ、プリミティブ分類部４，傾き計算部５のそれぞれに伝達される。この時系列データレコードには、微小時間（例えば0.04秒間）の動作の特徴が反映されている。
【００８３】
ステップＡ５０では、プリミティブ分類部４において、時系列データレコードに基づいて動作プリミティブの種類がラベリングされ、すなわち微小時間の動作の種類が判別される。このステップでは、一セットの時系列データレコードに含まれる四個のMFCC第一成分c1の値に基づき、動作プリミティブの種類が例えば安静状態，運動状態，衝突状態，遷移状態等に分類される。あるいは、より簡便な分類手法として、動作プリミティブの種類を安静状態，非安静状態の何れかに分類してもよい。ここで得られた動作プリミティブの種類の情報は、第二バッファ部７に伝達される。
【００８４】
ステップＡ６０では、傾き計算部５において、時系列データレコードに対応する微小時間におけるMFCC第一成分c1の時間変化の勾配が計算される。また、二乗誤差計算部６では、MFCC第一成分c1の分散の度合いが計算される。これらのパラメーターには、動作の緩急の度合いや動作の安定性等が反映される。勾配，分散の度合いの情報は第二バッファ部７に伝達される。
【００８５】
ステップＡ７０では、ステップＡ５０，Ａ６０で得られた動作プリミティブの種類，傾き，分散度合いの情報が第二バッファ部７に記憶（バッファリング）される。これらの三種類の情報は、一組のデータセットとして時系列で記憶され、動作推定に係る確率モデルの入力パラメーターとして使用される。また、続くステップＡ８０では、第二バッファ部７に記憶されたデータセットが所定組数に達したか否かが判定される。例えば、データセット数が三組未満であるときにはステップＡ１０に進み、データセットの生成が繰り返される。一方、三組のデータセットが第二バッファ部７に貯まったときには、それらの情報がプリミティブ分類修正部８に伝達される。
【００８６】
ステップＡ９０では、プリミティブ分類修正部８において、三組のデータセットに含まれる動作プリミティブの種類が補正される。ここでは、時系列の配列で中央に位置する動作プリミティブの種類が補正の対象とされる。例えば、安静状態と運動状態とが交互に配列されている場合には、時系列で中央に位置する状態が推定ミスであると判断されて、前後の状態と同一の状態に修正される。修正後のデータセットは動作推定部９に伝達される。
【００８７】
本フローでは、上記のような制御が繰り返されて、動作プリミティブの種類，傾き，分散度合いの情報を含むデータセットが動作推定部９に出力される。本実施形態の時系列データレコードは、新たなMFCC第一成分c1が二個算出される毎に、0.02秒周期で更新される。また、データセットも、時系列データレコードが更新される度に生成されるため、生成周期は0.02秒となる。
【００８８】
なお、データセットは、時系列で前後のデータセットと重複する情報を持つ。重複しない情報は、時系列で後端側に位置する一個のデータレコードの情報である。したがって、0.02秒毎に新規の情報が動作推定部９へと伝達されることになる。一方、時系列データレコードに含まれる動作プリミティブの種類の配列によっては、直前のデータセットの情報が直後のデータセットの情報によって修正される場合がある。例えば、他のデータセットとの重複部分の情報は、新たに追加されたデータセットによって修正されうる。したがって、データセットの情報は、新たに追加される他のデータセットと重複しなくなった時点で確定される。
【００８９】
［５−２．動作の切り出し・推定］
図１３のフローは、おもに動作推定部９での制御内容に対応する。
ステップＢ１０では、データセットに含まれる動作プリミティブの情報が時系列の順に確認され、その種類が「安静状態」から他の状態へと変化したか否かが判定される。この条件の成立時には、制御がステップＢ２０に進み、フラグFの値がF=1に設定されてステップＢ５０に進む。フラグFは、動作の可能性の有無に対応する値（情報の切り出しをするかしないかを判断するための情報）を持つ制御用レジスタであり、F=1は動作中であることを示し、F=0は動作中でないことを示す。
【００９０】
一方、ステップＢ１０の条件が不成立であれば、制御がステップＢ３０に進む。ステップＢ３０では、動作プリミティブの種類が安静状態以外の状態から安静状態へと変化したか否かが判定される。この条件の成立時には、制御がステップＢ４０に進み、フラグFの値がF=0に設定されてステップＢ５０に進む。また、この条件の不成立時には、フラグFの値が変更されることなくそのままステップＢ５０に進む。
【００９１】
ステップＢ５０では、フラグFの値がF=1であるか否かが判定される。ここでF=1のときにはステップＢ６０に進み、動作認識が開始される。ここでは、動作推定部９に伝達されたデータセットがHMMに受け渡される。また、ステップＢ７０では、入力された情報に対する尤度がHMMで計算される。続くステップＢ８０では、尤度が最大となる識別器に対応する動作が、体導音データに対応する動作として推定される。
【００９２】
上記の推定計算は、フラグFの値がF=0となるまで繰り返し実施される。例えば、データセットに含まれる動作プリミティブの状態が「安静状態」に変化すると、ステップＢ４０でフラグFの値がF=0に設定され、ステップＢ５０からステップＢ９０へと制御が進行する。ステップＢ９０では、HMMへのデータセットの入力が遮断され、動作認識が停止する。なお、動作プリミティブの状態が再び安静状態以外の状態になると、フラグFの値がF=1に設定されて、動作認識が再開される。
【００９３】
［６．作用］
［６−１．動作プリミティブの分類］
図１４（ａ）は、指の素振り動作の体導音から得られたMFCC第一成分c1の経時変化を示すグラフである。同様に、図１４（ｂ）は、拍手時の体導音から得られたMFCC第一成分c1の経時変化を示すグラフである。ここでは、一回の動作に対応するMFCC第一成分c1の時系列データを一本の折れ線で繋ぎ、十回分の動作に対応する折れ線を重畳して示している。
【００９４】
図１４（ａ）中の時刻t11は、初回の素振り動作に対応するMFCC第一成分c1に基づいて分類された動作プリミティブが「安静状態」から「遷移状態」へ移行した時刻を示す。同様に、時刻t12，t13，t14はそれぞれ、「遷移状態」から「運動状態」への移行時，「運動状態」から「遷移状態」への移行時，「遷移状態」から「安静状態」への移行時に対応する。このグラフから、同一の動作によるMFCC第一成分c1の経時変化は同じような変動傾向を持つことが把握される。
【００９５】
同様に、図１４（ｂ）中の時刻t15〜t20は「遷移状態」とその他の状態との境目となる時刻に対応する。このグラフから、MFCC第一成分c1の値は衝撃が発生する動作に対応する部分で急増し、これに続く動作に対応する部分で安静状態よりもやや大きい値で変化する傾向があることが把握される。
【００９６】
［６−２．動作の推定］
表１は、上記の動作検知装置１０による手先動作の認識試験の結果を示すものである。ここでは、手の屈曲，伸展，掌屈，背屈，回内，回外の各動作についての認識率と、動作推定部９での動作認識に使用されたパラメーターの種類との関係を示す。ここでは、HMMの学習においては各動作毎に20試行分のデータを使用し、HMMを使用した動作の判定では各動作毎に30試行分のデータを使用した。
【００９７】
表１中の一行目の試験結果は、ケプストラム係数（MFCC第一成分）の傾きと分散度合い（二乗誤差の和）とに基づいて、HMMの出力シンボル毎の確率分布を設定した場合の認識率を示す。また、二行目は、これにMFCC第一成分c1の値を加えてHMMの出力シンボル毎の確率分布を設定した場合の認識率である。以下、三〜四行目はMFCC第二成分を併用した場合に対応し、五〜六行目はさらにMFCC第三成分を併用した場合に対応する。
【００９８】
ケプストラム係数の傾きや分散度合いを用いて動作認識する場合には、表１に示すように、併用されるMFCC成分が高次であるほど認識率が向上する。一方、高次のMFCC成分を併用しなくても、いくつかの動作（例えば、屈曲動作や回外動作）については、良好な認識率が期待できる。したがって、使用するパラメーターの種類や数は、認識対象となる動作の種類に応じて決定すればよい。
【００９９】
【表１】
0006032350.tif 000004
【０１００】
また、表２は、ケプストラム係数の傾きや分散度合いを用いることなく、ケプストラム係数の値のみを用いた場合の認識率を示すものである。HMMの学習時に使用したデータ数及び動作判定に使用したデータ数は、表１に示す認識試験時と同じとした。一行目の試験結果は、MFCC第一成分c1の値のみを用いてHMMの出力シンボル毎の確率分布を設定した場合に対応する。また、二行目は、これにMFCC第二成分c2を加えてHMMの出力シンボル毎の確率分布を設定したものである。以下、三〜八行目は、併用されるMFCCの次数を三次から八次まで順に増やした場合に対応する。
【０１０１】
手先動作の認識率は、表２に示すように、MFCC第一成分c1のみを使用する場合よりも、第二成分c2を併用した場合の方が向上する。また、併用される高次成分の数が増加するほど認識率が上昇し、MFCC第一〜第六成分c1〜c6を用いれば、表中の全ての手先動作について八割以上の認識率が得られる。一方、MFCC第一成分c1のみを用いた場合であっても、伸展動作，掌屈動作，回外動作については七割以上の認識率が期待できる。したがって、使用するケプストラム係数の次数は、認識対象となる動作の種類に応じて決定すればよい。
【０１０２】
【表２】
0006032350.tif 000005
【０１０３】
［７．効果］
（１）上記の動作検知装置１０，動作検知装置１０で実施される動作検知方法及び動作検知に係るプログラムでは、ケプストラム抽出部２において、肢体の動作に伴う振動のケプストラム係数が時系列データとして抽出される。また、第一バッファ部３では、時系列データを時分割した時分割データが生成される。さらに、プリミティブ分類部４では、時分割データに含まれるケプストラム係数に基づき、その時分割データに対応する動作プリミティブの種類が分類される。
【０１０４】
このように、ケプストラム係数の時系列データを時分割したものに基づいて動作プリミティブの種類を分類することで、例えば動作の開始や動作の終了といった、動作の変化を精度よく推定，把握することができる。これにより、肢体の動作の検知精度を向上させることができ、動作認識に係るロバスト性を向上させることができる。
【０１０５】
（２）ケプストラム抽出部２では、少なくともケプストラム係数の第一成分（MFCC第一成分c1）が抽出される。これにより、動作の振動スペクトルにおける低周波成分の特徴を精度よく把握することができる。つまり、肢体の動作に伴う振動のうち、減衰しにくい低周波成分の特徴に基づいて動作プリミティブが分類されるため、動作の検知精度を向上させることができる。
【０１０６】
（３）プリミティブ分類部４では、動作プリミティブが「安静状態」，「運動状態」，「衝突状態」，「遷移状態」の四状態の何れかに分類される。このような分類により、動作中の状態や、安静状態から衝突状態に至るまでの過渡的な状態を精度よく把握することができる。例えば、安静状態であるともいえず、かつ、運動状態であるともいえないような曖昧な状態を遷移状態に分類することができる。したがって、動作の検知精度を向上させることができる。
【０１０７】
（４）なお、上記の四種類の動作プリミティブは、「安静状態」と「非安静状態」とに大別することができる。少なくとも動作プリミティブの種類としてこれらの二種類を用意しておくことで、動作の開始時点及び動作の終了時点を認識することができる。つまり、動作検知に係る情報の体導音データからの切り出し範囲を精度よく設定することができ、動作の検知精度を向上させることができる。
【０１０８】
（５）傾き計算部５では、ケプストラム係数の傾きに関する情報（時間変化勾配）が計算される。これを用いることで、図９（ａ），図９（ｂ）に示すように、低周波の振幅変化が生じる動作とこれが生じない動作とを精度よく識別することができる。例えば、掃除機を用いて床を掃除するときの動作と歯磨き時の動作とを精度よく識別することができる。したがって、動作の検知精度を向上させることができる。
【０１０９】
（６）二乗誤差計算部６では、ケプストラム係数の平均に対する二乗誤差の和（分散の度合い）が計算される。これを用いることで、図１０（ａ），図１０（ｂ）に示すように、高周波の振幅変化が生じる動作とこれが生じない動作とを精度よく識別することができる。例えば、指の縦振り動作とフリック動作とを精度よく識別することができる。したがて、動作の検知精度を向上させることができる。
【０１１０】
（７）プリミティブ分類修正部８では、プリミティブ分類部４で分類された動作プリミティブの配列に基づいて、動作プリミティブの種類が微小時間単位で修正される。これにより、実際には発生しにくい動作プリミティブの配列を修正することができる。例えば、「安静状態」が二つの「運動状態」に挟まれているときに、その「安静状態」を誤判定とみなして「運動状態」に修正することができる。また、「運動状態」が二つの「安静状態」に挟まれているときに、その「運動状態」を誤判定とみなして「安静状態」に修正することができる。このような動作プリミティブの修正により、動作プリミティブの分類時に混入した誤差を除去することができ、延いては、動作の検知精度を向上させることができる。
【０１１１】
（８）動作推定部９では、ケプストラム係数の値に基づいて確率モデルが修正，学習される。また、その確率モデルに対する動作プリミティブの配列の尤度が算出され、最も尤度の高い経路，識別器に対応する動作が推定結果として出力される。このような推定手法を用いることで、確率モデルがより適切な形となるように学習させることができる。したがって、例えば表１に示すように、動作の認識精度を向上させることができる。
【０１１２】
（９）また、ケプストラム係数の少なくとも第一成分c1の値を含む複数の成分を用いて確率モデルを修正，学習すれば、動作の認識精度をさらに向上させることができる。例えば、表２に示すように、動作の認識精度は、MFCC第一成分c1のみを使用した場合と比較して、第二成分c2を併用した場合の方が向上する。併用される高次成分の数が増加するほど認識率が上昇し、MFCC第一〜第六成分c1〜c6を用いれば、表中の全ての手先動作について八割以上の認識率が得られる。このように、より高次のケプストラム係数を併用することで、動作の認識精度を向上させることができる。
【０１１３】
［８．変形例］
開示の実施形態の一例に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１１４】
上述の実施形態では、図１に示すように、手首に装着されるウェアラブルデバイスを示したが、動作検知装置１０の装着位置はこれに限定されない。例えば、腕部や指に装着されるものとしてもよい。あるいは、足首や足指に装着させてもよい。少なくとも肢体の動作に伴う体導音が検出される位置であれば、任意の位置に装着可能である。
また、上述の実施形態ではケプストラム係数としてMFCCを用いたものを説明したが、これに加えて、あるいは代えて、他のケプストラム係数を用いてもよい。少なくとも体導音の対数スペクトルを直交化して得られる多変量を用いることで、上述の実施形態と同様の効果を奏するものとなる。
【０１１５】
また、上述の実施形態では、図３に示す機能が補助記憶装置２３やリムーバルメディアに記録されたソフトウェアとして記録されたものを説明したが、ソフトウェアが記録される対象はこれに限定されない。例えば、フレキシブルディスク，CD，DVD，ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供されてもよい。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。なお、上述の実施形態では、図３に示す機能がソフトウェア上で実施されるものを示したが、これらの機能の一部又は全部をハードウェア（論理回路）として設けてもよい。
【０１１６】
なお、上述の実施形態におけるコンピュータ１２とは、ハードウェアとOS（オペレーティングシステム）とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサーと、記録媒体に記録されたコンピュータプログラムを読み取る手段とを備えている。上記プログラムは、上述のようなコンピュータに、実施形態の動作特徴量抽出部１及び動作推定部９の機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
［９．付記］
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
肢体の動作に伴う振動のケプストラム係数を時系列データとして抽出し、
前記時系列データを時分割した時分割データを生成し、
前記時分割データに含まれる前記ケプストラム係数に基づき、前記時分割データに対応する前記動作の基本単位を分類する
ことを特徴とする、動作検知方法。
（付記２）
前記ケプストラム係数の少なくとも第一成分を抽出する
ことを特徴とする、付記１記載の動作検知方法。
（付記３）
前記時分割データに含まれるケプストラム係数の値に基づき、前記動作の基本単位を少なくとも安静状態と非安静状態とに分類する
ことを特徴とする、付記１又は２記載の動作検知方法。
（付記４）
前記時分割データに含まれるケプストラム係数の値に基づき、前記非安静状態に含まれる前記動作の基本単位を動作状態，衝突状態，遷移状態の三つに分類する
ことを特徴とする、付記１〜３の何れか１項に記載の動作検知方法。
（付記５）
前記時分割データに含まれるケプストラム係数の時間変化勾配を計算する
ことを特徴とする、付記１〜４の何れか１項に記載の動作検知方法。
（付記６）
前記時分割データに含まれるケプストラム係数の分散の度合いを計算する
ことを特徴とする、付記１〜５の何れか１項に記載の動作検知方法。
（付記７）
前記動作の基本単位の配列に基づき、前記動作の基本単位を修正する
ことを特徴とする、付記１〜６の何れか１項に記載の動作検知方法。
（付記８）
確率モデルに対する前記動作の基本単位の配列の尤度に基づき、前記動作の種類を推定し、
前記ケプストラム係数の値に基づき、前記確率モデルを学習する
ことを特徴とする、付記１〜７の何れか１項に記載の動作検知方法。
（付記９）
前記ケプストラム係数の少なくとも第一成分を含む複数の成分を用いて前記確率モデルを学習する
ことを特徴とする、付記８記載の動作検知方法。
（付記１０）
肢体の動作に伴う振動のケプストラム係数を時系列データとして抽出し、
前記時系列データを時分割した時分割データを生成し、
前記時分割データに含まれる前記ケプストラム係数に基づき、前記時分割データに対応する前記動作の基本単位を分類する
処理をコンピュータに実行させる、プログラム。
（付記１１）
肢体の動作に伴う振動のデータに基づき、前記動作を推定する処理を実施するコンピュータに、
前記振動のケプストラム係数を時系列データとして抽出し、
前記時系列データを時分割した時分割データを生成し、
前記時分割データに含まれる前記ケプストラム係数に基づき、前記時分割データに対応する前記動作の基本単位を分類する
処理を実行させることを特徴とする、プログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【０１１７】
１  動作特徴量抽出部
２  ケプストラム抽出部（抽出部）
３  第一バッファ部（生成部）
４  プリミティブ分類部（分類部）
５  傾き計算部（勾配算出部）
６  二乗誤差計算部（分散算出部）
７  第二バッファ部
８  プリミティブ分類修正部（修正部）
９  動作推定部（推定部）
１０  動作検知装置
１１  体導音マイク
１２  コンピュータ
１３  ストレージリーダライタ
１４  リストバンド
１５  出力デバイス
２０  バス
２１  CPU
２２  主記憶装置
２３  補助記憶装置
２４  インターフェース装置
２５  センサー入力部
２６  ストレージ入出力部
２７  外部出力部
【図１】
0006032350.tif 000006
【図２】
0006032350.tif 000007
【図３】
0006032350.tif 000008
【図４】
0006032350.tif 000009
【図５】
0006032350.tif 000010
【図６】
0006032350.tif 000011
【図７】
0006032350.tif 000012
【図８】
0006032350.tif 000013
【図９】
0006032350.tif 000014
【図１０】
0006032350.tif 000015
【図１１】
0006032350.tif 000016
【図１２】
0006032350.tif 000017
【図１３】
0006032350.tif 000018
【図１４】
0006032350.tif 000019