第 3 章 筋電パターンの出現頻度による識別安定化フィルタ
3.1. 理論
筋電の出現頻度による識別安定化フィルタでは,ニューラルネットワークに より識別された筋電パターンを一定数バッファに保存しておき,バッファに含 まれる各識別動作パターンの割合を元に出力を決定する平滑化フィルタである.
一般的に筋電波形には移動平均などの平滑化処理が行われるが
[23]
,ニューラル ネットワークで識別された出力は離散的な姿勢となるため,単純な平滑処理は 用いることができない.このフィルタでは,まず筋電波形を計測しベクトルemg に保存する.ベクトルemgは3
チャンネルの筋電計から計測された時系列デー タが格納されている.次に特徴抽出関数GFEによって,ベクトル emg からベク トルemgの周波数分布を示す特徴ベクトルxが抽出される.𝒙 = 𝐺
FE(𝐞𝐦𝐠) (5)
この特徴ベクトルxを特徴量としてニューラルネットワークの入力層に入力し,
結果として異なる手の姿勢に対応した出力層のいずれかのノードが発火し,識 別が行われる(図
13).ここで,ニューラルネットワークの出力層における出力値
をベクトルl,識別する筋電パターンの数をMとすると𝒍 = {𝑙
1, 𝑙
2, 𝑙
3, … , 𝑙
𝑀}
where 𝒍 = 𝐺
SG(𝒙 ∙ 𝒘
1) ∙ 𝒘
2(6)
と表される.最終的な
BP
ニューラルネットの出力識別筋電パターンをyとする と,識別結果を出力する関数GPRは式(6)より𝑦 = 𝐺
PR(𝒍) (7)
𝑦 = 𝐺
PR(𝐺
SG(𝒙 ∙ 𝒘
1) ∙ 𝒘
2)
となる.ここで,義手の動作パターンの
ID
をmi,特徴ベクトルxiを持つ筋電パ ターンがBP
ニューラルネットにより miとして識別される際のベクトル xの集 合をXiとすると𝑦 = {
𝑚
1(𝒙 ∈ 𝑿
1) 𝑚
2(𝒙 ∈ 𝑿
2) 𝑚
3(𝒙 ∈ 𝑿
3)
⋮ ⋮ 𝑚
𝑀(𝒙 ∈ 𝑿
𝑀)
−1 otherwise
(8)
と記述できる.また,このときのGPRは
⋂ 𝑿
𝑖𝑀
𝑖=1
= 𝜙 (9)
を満たすよう識別を行う.これ以外の場合,すなわち式(9)を満たさない場合も しくはいずれの出力層ノードも発火していない場合,識別不能として y には-1 が代入される.筋電パターンmiが義手のどのような姿勢に割り当てられるかは あらかじめ実験者によりプログラミングされる.
本研究で構築したアルゴリズムは,リングバッファに保存した一定時間の筋 電パターンの時系列データを参照し,時系列に含まれる筋電パターンの割合を 元に出力を決定するものである.一定時間にバッファされる筋電パターンの数 をNとすると,ある時刻tにおけるリングバッファbufftは
𝐛𝐮𝐟𝐟
𝑡= {𝑦
1, 𝑦
2, 𝑦
3, … , 𝑦
𝑁} (10)
と表される.bufftの構成要素である yi には筋電パターンの
ID
が記憶されてい る.この後,次の制御周期で再び筋電計測が行われ,新たな筋電パターンyの識 別が行われたtl秒後,リングバッファbuffは𝐛𝐮𝐟𝐟
𝑡+𝑡l= {𝑦
2, 𝑦
3, 𝑦
4, … , 𝑦
𝑁, 𝑦}
= {𝑦
′1, 𝑦
′2, 𝑦
′3, … , 𝑦′
𝑁}
(11)
と更新される.リングバッファ
𝐛𝐮𝐟𝐟
𝑡+𝑡l中に含まれる筋電パターンmiの数siはs
𝑖= ∑ 𝛿
𝑦′𝑘,𝑖𝑁
𝑘=1
∵ { 𝛿 = 0 (𝑦
𝑘≠ 𝑖) 𝛿 = 1 (𝑦
𝑘= 𝑖)
(12)
と表される.これより,リングバッファbuff中に含まれる筋電パターンmiの占 める割合piは
𝑝
𝑖= 𝑠
𝑖𝑁 (13)
となる.提案するアルゴリズムではまず,筋電パターンが単一の動作であるか,
複数の動作を含むかを判別する.ここで,最大許容する筋電パターンの同時出力 数をcとすると
{ 𝑐𝑝
𝑖≤ 𝑁 (𝑐 + 1)𝑝
𝑖> 𝑁
∴ { 𝑝
𝑖≤ 𝑁 𝑐 𝑝
𝑖> 𝑁
𝑐 + 1
(14)
が成り立つ.単一動作の場合cは
1
であるので,リングバッファbuff の半数以 上が任意の筋電パターンmpであれば,単一動作であると判断し,筋電パターン mp に対応付けられた動作を義手に出力する.最終的に義手に出力される動作 o を,同時に発現する動作数の最大値をcとして記述すると𝑜
= {
𝑚
𝑖(𝑝
𝑖≥ 0.5) 𝑚
𝑖, 𝑚
𝑗, 𝑚
𝑘( 1
𝑐 + 1 ≤ 𝑝
𝑖, 𝑝
𝑗, 𝑝
𝑘< 0.5) 𝜙 (𝑝
𝑖< 1
𝑐 + 1 )
(15)
となる.ここで,出力する動作oが複数の場合,実際には同時に出力されず,mi
から mkが順に出力されることとなる.また,式(15)をフローチャートで表した ものが図
16
である.本研究で提案する識別安定化フィルタを,識別結果の時系 列 buff を引数としてフィルタ結果としての義手への出力 o を出力する関数GTSとして定義すると
𝑜 = 𝐺
TS(𝐛𝐮𝐟𝐟) (16)
のように記述できる.
図
16 識別安定化フィルタのアルゴリズムのフローチャート
ここで,具体的に実装する際の,同時に発現する動作数の最大値cについて考 察する.まず,2.2.2 節で述べられた対象とする動作パターンのうち,同時に発 現する可能性がある動作パターンは限られる.例えば五指を握りながら手首の 掌背屈を行うことはありうるが,手首を背屈させながら掌屈させることは手首 を動かすための筋を拮抗状態にしていることを意味し,現状の筋電義手は拮抗 制御を行っていないため,識別する必要のない状態である.このことを踏まえ,
複合動作としては前腕の回内または回外と,手首の掌屈または背屈と,指のパタ ーンいずれか,という