(58)【調査した分野】(Int.Cl.,DB名)
機器本体と前記加速度検出部を身体に固定するための固定手段を備え、前記加速度検出部は、前記身体の左右方向、身長方向、及び前後方向の加速度を検出する方向に配置されていることを特徴とする請求項1に記載の電子機器。
身体の左右方向、身長方向、及び前後方向それぞれの加速度を検出する加速度検出部を備える電子機器が検出した加速度の記述統計量として平均、分散及び歪度を前記電子機器が算出し、前記記述統計量に基づいて泳法を前記電子機器が判別する判別処理と、
前記加速度検出部が検出した加速度のうち1方向又は2方向の加速度に基づいてストローク頻度を前記電子機器が算出する頻度算出処理と、を有し
前記頻度算出処理において、前記判別処理において判別された泳法に基づいて前記1方向又は2方向の加速度を選択する
ことを特徴とする泳法判別方法。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら本発明の実施形態について説明する。
図1は、本実施形態に係る電子機器10の外観を示す概念図である。
電子機器10は、本体部101、加速度検出部102、ベルト121、着脱具122、長さ調整具123、係合具124を含んで構成される。電子機器10は、例えば、装着している使用者の運動に伴う加速度や心電信号等の生体情報を取得する生体情報取得装置である。
図1において、X、Y、Z方向は、それぞれ左右方向、身長方向、前後方向を示す。
【0020】
本体部101と加速度検出部102は、ベルト121に一体的に固定されている。ベルト121の長手方向の両端には着脱具122と係合具124が設けられている。ベルト121の長手方向の中間には長さ調整具123が設けられている。
着脱具122は、係合具124を連結又は離脱させることができる。着脱具122から係合具124が離脱された状態において、ベルト121は、使用者の胴体Uの一部、例えば胸部を巻きつけることができる。長さ調整具123の位置をベルト121の長手方向にずらすことによって、ベルト121の長手方向の長さが長く、又は短くなるように調整することができる。ベルト121が胸部に密着した状態で、着脱具122が係合具124に連結されると、本体部101が胸部の表面に固定される。ベルト121の素材は、例えば、スチレン・ブタジエンゴムのように、伸縮性、耐摩耗性、耐老化性に優れる素材である。これにより、電子機器10の着脱の容易性と、胸部への密着性が両立する。
本体部101が胸部の表面に固定された状態では、ベルト121の長手方向が使用者の身長方向に垂直な方向に配置される。本明細書では、身長方向は、頭頂部と脚底部を両端とする方向である。この方向をY方向と呼ぶ。左右方向は、顔面が向いている方向を基準とした左側又は右側の方向である。この方向をX方向と呼ぶ。前後方向は、顔面が向いている方向、又はその反対方向である。この方向をZ方向と呼ぶ。
【0021】
加速度検出部102は、複数(例えば3個)の感度軸を有し、それぞれの感度軸方向の加速度を検出する。加速度検出部102は、例えば静電容量型3軸加速度センサである。感度軸方向とは、加速度に対する感度が極大となる方向である。その方向に向いた主軸が感度軸である。
加速度検出部102は、検出した加速度を示す加速度信号を感度軸方向毎に生成し、生成した加速度信号を本体部101に出力する。
ここで、本体部101の中心が胸部の正中線上に配置されたとき、加速度検出部102は正中線よりも左側又は右側に偏った位置に、感度軸のうち1つの方向がY方向に、他の1つの方向がX方向に、残りの1つの方向がZ方向に向くように配置される。正中線とは、使用者の前面の左右中央を通る身長方向に向いた線である。これにより、加速度検出部102は、X、Y、Z方向の各方向の加速度を検出し、正中線上に回転軸を有する身体の回転運動を検出することができる。
【0022】
(本体部の構成)
図2は、本実施形態に係る本体部101の構成を示す概略図である。
本体部101は、心拍検出部103、時刻計測部104、CPU(Central Processing Unit;中央処理装置)105、EEPROM(Electrically Erasable Programmable Read Only Memory)106、RAM(Random Access Memory;ランダムアクセスメモリ)107、ROM(Read Only Memory;読出専用メモリ)108、及び通信部109を含んで構成される。
【0023】
心拍検出部103は、一対の電極、及び信号変換部を含んで構成される。本体部101が使用者の胸部に装着されたとき、この電極間に生じた電位差が心電信号として検出される。信号変換部は、検出された心電信号を変換、例えば増幅及び整形し、変換した心電信号をCPU105に出力する。
【0024】
時刻計測部104は、現在の時刻を計測し、計測した時刻を表す時刻情報をCPU105に出力する。ここで、時刻計測部104は、予め定めた第1の周期(例えば、32,768Hz)で周期的に振幅が振動するクロック信号を生成する。時刻計測部104は、生成したクロック信号を第1の周期よりも長い予め定めた第2の周期(例えば、100Hz)に分周して計測クロックを生成する。時刻計測部104は、計測クロックの信号値のピーク(極大値)の数を計数することによって時刻を計測する。
【0025】
CPU105は、ROM108に予め記憶されたプログラムを読み出し、読み出したプログラムを実行して本体部101が備える各構成部の動作を制御する。
CPU105は、加速度検出部102から入力された加速度信号、心拍検出部103から入力された心電信号を、時刻計測部104から入力された時刻情報と対応付けてEEPROM106に記憶する。CPU105は、EEPROM106に記憶した加速度信号に基づいて泳法判別処理を行って泳法を判別し、判別した泳法を示す泳法データをEEPROM106に記憶する。また、CPU105は、判別した泳法に応じた感度軸方向の加速度信号に基づいてストローク頻度を算出し、算出したストローク頻度を示すストローク頻度データをEEPROM106に記憶する。
CPU105は、通信部109から読み出し要求信号が入力されたとき、EEPROM106から記憶されたデータ、例えば加速度信号、心電信号、泳法データ、ストローク頻度データ、等を読み出して通信部109に出力する。読み出し要求信号とは、電子機器10が取得したデータを読み出すことを示す信号である。読み出し要求信号は、例えば、他の機器から入力される信号、使用者による操作入力を受け付けて生成される信号である。
CPU105の構成、特に泳法判別処理に係る構成については、後述する。
【0026】
EEPROM106は、情報の追記が可能であって、電源の供給が断たれても記憶された情報を保持する不揮発性メモリである。
RAM107は、CPU105が処理を行う際に使用する情報や、処理によって生成した情報を一時的に記憶する。
ROM108は、CPU105が動作するためのプログラム、設定値、パターン認識情報、等が予め記憶されている。
【0027】
通信部109は、ネットワークと接続された他機器との間でデータを送受信する。通信部109は、他機器から受信した受信信号をCPU105に出力し、CPU105から入力された送信信号を他機器に送信する。
【0028】
(CPUの構成)
次に、本実施形態に係るCPU105の機能構成について説明する。
図3は、本実施形態に係るCPU105の機能構成を示す概略図である。
CPU105は、加速度記録部1051、状態判定部1052、事象判定部1053、泳時間推定部1054、泳局面抽出部1055、記述統計量算出部1056、泳法判別部1057、加速度方向選択部1058、及びストローク頻度算出部1059を含んで構成される。
【0029】
加速度記録部1051は、加速度検出部102から入力された感度軸方向毎の加速度信号を予め定めた時間間隔(例えば、1/32秒間隔)でEEPROM106に記録する。
状態判定(State Identification)部1052は、EEPROM106から感度軸方向毎の加速度信号と時刻情報を読み出し、読み出した加速度信号のうち少なくとも1個の感度軸方向の加速度信号に基づいて泳状態又は休息状態を判定し、泳状態又は休息状態を示す泳状態情報を生成する。状態判定部1052は、生成した泳状態情報を、読み出した加速度信号及び時刻情報と対応付けてEEPROM106に記録する。泳状態又は休息状態を判定する処理については、後述する。
事象判定(Event Identification)部1053は、EEPROM106から感度軸方向毎の加速度信号、泳状態情報、及び時刻情報を読み出し、読み出した加速度信号のうち少なくとも1個の感度軸方向の加速度信号、泳状態情報及び時刻情報に基づいて遊泳に係る事象(event)を判定する。事象判定部1053が判定する事象は、例えば、スタート(出発)、ターン(方向転換)、タッチ(終着)がある。事象判定部1053は、判定した事象とその事象が発生した時刻を示す事象情報を生成し、生成した事象情報を加速度信号及び時刻情報と対応付けてEEPROM106に記録する。事象を判定する処理については、後述する。
【0030】
泳時間推定部(Swimming Time Estimation)部1054は、EEPROM106から感度軸方向毎の加速度信号、時刻情報、事象情報を読み出し、読み出した事象情報に基づいて泳時間を推定する。泳時間推定部1054は、泳時間として、例えば、スタートから最初のターンまでの区間に係る経過時間、1つのターンから次のターンまでの区間に係る経過時間、最後のターンからタッチまでの区間に係る経過時間、スタートからタッチまでの全区間に係る時間を算出することによって推定する。区間毎の経過時間をラップタイム(Lap Time)という。
泳時間推定部1054は、泳時間として、例えば、スタートから各ターンもしくはタッチまでの累積時間を算出してもよい。スタートからの累積時間をスプリットタイム(Split Time)という。泳時間推定部1054は、推定した泳時間を示す泳時間情報を生成し、生成した泳時間情報を加速度信号及び時刻情報と対応付けてEEPROM106に記録する。
【0031】
泳局面抽出(Stroke Phase Extraction)部1055は、EEPROM106から感度軸方向毎の加速度信号と事象情報とを読み出し、読み出した加速度信号から事象情報に基づいて泳局面にある区間の加速度信号を抽出する。泳局面とは、水中において上腕を動作させて進行している局面である。泳局面でない局面には、例えば、スタート又はターン直後に水泳場の壁面を蹴り、上腕を動作させずに水中を進行する局面(蹴伸び)や、水中での上腕のかき動作によって水中から水上へと浮上する途中の局面、等がある。これにより、泳局面にない区間の加速度信号を、後述する処理において無視(マスク)することができる。
泳局面抽出部1055は、例えば、スタート又はターンから所定のマスク時間(例えば、4秒)の経過から次のターン(該当するターンが存在しない場合にはタッチ)までの区間内の加速度信号を感度軸方向毎に抽出する。即ち、マスク時間経過から次のターン又はタッチまでの区間が、泳局面にある区間である。泳局面抽出部1055は、抽出した感度軸方向毎の加速度信号を記述統計量算出部1056及び加速度方向選択部1058に出力する。
なお、泳局面抽出部1055は、操作入力や他の機器からの入力を受け付けて、任意のマスク時間を設定できるようにしてもよい。ここで、入力された水泳場(プール)の規模、使用者の泳力に応じた値にマスク時間を設定されるようにしてもよい。例えば、水泳場の大きさが大きいほど、もしくは使用者の泳力が高いほど、マスク時間が長くなるようにしてもよい。泳局面抽出部1055には、例えば、操作入力の候補毎にマスク時間を対応付けたマスク時間変換情報を予め記憶させておき、受け付けた操作入力に対応するマスク時間を定める。
【0032】
記述統計量算出部1056は、泳局面抽出部1055から入力された感度軸方向毎の加速度信号について記述統計量を算出する。記述統計量とは、標本となる変数の分布の特徴を代表的に表す統計量である。記述統計量は、要約統計量、基本統計量又は代表値とも呼ばれる。算出する記述統計量は、平均(Mean)、分散(Variance)、及び歪度(Skewness)である。歪度βは、変数xの標準化確率変数z=(x−μ)/σの3次モーメントE(z
3)である。ここで、μは変数xの期待値E(x)、つまり平均であり、σ
2は、変数xの分散である。例えば、歪度βが0より大きい場合、変数xの分布は、正方向に歪んでいる正の歪を有する。歪度βが0より小さい場合、変数xの分布は、負方向に歪んでいる負の歪を有する。歪度βが0の場合とは、例えば、変数xの分布が0を中心として対称な場合である。標準化確率変数zについての正規分布は、歪度βが0となる分布の一例である。記述統計量算出部1056は、算出した感度軸方向毎の記述統計量を泳法判別部1057に出力する。
【0033】
泳法判別部1057は、記述統計量算出部1056から入力された記述統計量に基づいて、既知のパターン認識処理を用いて泳法を判別する。判別される泳法は、例えば、背泳(Ba、Backstroke)、平泳(Br、Breaststroke)、バタフライ(Bu、Butterfly Stroke)、クロール(Fr、Freestyle Stroke)である。本来、「Freestyle Stroke」とは、背泳、平泳、バタフライ以外の泳法である「自由形」を指すが、本実施形態では、クロールを指す。
泳法判別部1057が用いるパターン認識処理は、例えば、決定木(decision tree)を用いたクラス分類(クラスタリング)、階層型ニューラルネットワークを用いたクラス分類、等を用いることができる。本実施形態では、判別対象となる泳法を分類対象となるクラスとしてパターン認識処理を行う。パターン認識処理において、泳法判別部1057は、事前学習によって得られたパターン認識情報をROM108から読み出し、読み出したパターン認識情報を用いる。決定木を用いた泳法判別、階層型ニューラルネットワークを用いた泳法判別の例については、後述する。なお、本実施形態では、泳法判別部1057は、パターン認識処理において、決定木、階層型ニューラルネットワークに限らず、例えば、ウォード(Ward)法、サポートベクターマシン(SVM、Support Vector Machine)、ベイジアンネットワーク(Bayesian Network)等、他の方式を用いてもよい。
泳法判別部1057は、判別した泳法を示す泳法情報を生成し、生成した泳法情報を加速度方向選択部1058に出力し、EEPROM106に記録する。
【0034】
加速度方向選択部1058は、泳法判別部1057から入力された泳法情報に基づいて感度軸方向(加速度方向)を定め、泳局面抽出部1055から入力された加速度信号から定めた感度軸方向の加速度信号を選択する。
加速度方向選択部1058は、例えば、泳法情報が背泳又はクロールを示す場合、感度軸方向として、X方向もしくはZ方向のいずれか1方向又は両方向を選択する。加速度方向選択部1058は、例えば、泳法情報が平泳又はバタフライを示す場合、感度軸方向として、Y方向もしくはZ方向のいずれか1方向又は両方向を選択する。
ここで、泳法情報と感度軸方向との対応関係を示す加速度方向情報を予めROM108に記憶しておき、加速度方向選択部1058は、入力された泳法情報に対応する感度軸方向を読み出す。加速度方向選択部1058は、選択した感度軸方向の加速度信号をストローク頻度算出部1059に出力する。これにより、泳法毎に使用者の動作に伴って生じる加速度のうち主な成分の方向に係る加速度信号が選択される。
【0035】
ストローク頻度算出部1059は、加速度方向選択部1058から入力された加速度信号の周期又は周波数を算出する。ストローク頻度算出部1059は、例えば、入力された時間領域の加速度信号について周波数領域に変換して周波数領域の複素データを算出する。ストローク頻度算出部1059は、周波数領域に変換する際、例えば、高速フーリエ変換(FFT、Fast Fourier Transform)を行う。ストローク頻度算出部1059は、算出した複素データに基づいてパワースペクトルを算出し、算出したパワーが極大となる周波数をストローク頻度と定める。
また、ストローク頻度算出部1059は、入力された時間領域の加速度信号の自己相関関数を、遅延時間毎に算出し、自己相関関数が極大となる遅延時間を定めてもよい。ストローク頻度算出部1059は、定めた遅延時間の逆数をストローク頻度と定める。
2つの感度軸方向についての加速度信号が入力された場合には、ストローク頻度算出部1059は、入力された2つの感度軸方向の加速度信号を加算して生成した和信号について上述の処理を行って、ストローク頻度を算出してもよい。
【0036】
ストローク頻度算出部1059は、算出したストローク頻度が、予め設定した範囲内であるか否かを判断する。予め設定した範囲とは、人間が水中で動作する際にストローク頻度として可能性のある範囲(例えば、0.25−2Hz)である。ストローク頻度算出部1059は、予め設定した範囲内にあるストローク頻度のうちパワー又は自己相関関数が最も高くなるストローク頻度をEEPROM106に記録する。ストローク頻度算出部1059は、算出したストローク頻度のうち、可能性のある範囲にないと判断されたストローク頻度を棄却する。
【0037】
(加速度信号の例)
次に、加速度検出部102から入力される加速度信号の例について説明する。以下に説明する加速度信号は、ある1名の使用者が本実施形態に係る電子機器10を装着しながら遊泳し、その後、遊泳を停止して休息している区間で取得されたものである。
【0038】
図4は、加速度検出部102から入力される加速度信号の例を示す図である。
図4(a)−(d)において、横軸が時刻、縦軸が加速度を示す。Ax、Ay、Azは、それぞれX方向、Y方向、Z方向の加速度信号を示す。
図4(a)、(b)、(c)、(d)は、それぞれ、使用者がバタフライ、背泳、平泳、クロールで遊泳した場合を示す。これによれば、泳法によって感度軸方向毎の加速度の大きさが異なる。
【0039】
例えば、
図4(a)は、バタフライにおいて、Z方向の加速度信号が−1Gを中心に振動し、他の方向の加速度信号は0Gを中心に変動していることを示す。ここで、Gは、重力加速度を1とする加速度の単位である。
図4(b)は、背泳において、Z方向の加速度信号が0.6Gを中心に変動し、X方向及びY方向の加速度信号が0Gを中心に変動していることを示す。また、X方向の加速度信号の振幅が、他の方向の加速度信号の振幅よりも大きいことを示す。
図4(c)は、平泳において、バタフライの場合と同様に、Z方向の加速度信号が−1Gを中心に変動し、他の方向の加速度信号は0Gを中心に変動していることを示す。但し、Y方向及びZ方向の加速度信号の分布が、バタフライの場合よりも正方向に偏っている。
図4(d)は、クロールにおいて、X方向及びY方向の加速度信号がほぼ0Gを中心に変動し、Z方向の加速度信号が−1Gを中心に変動していることを示す。
本実施形態では、後述するように感度軸方向による加速度信号の特性における泳法による差異を用いて泳法を判定する。
【0040】
図4(a)、(b)、(c)、(d)は、使用者が休息している区間において、Y方向の加速度信号が1Gを中心に分布しているのに対し、X方向及びZ方向の加速度信号が0Gを中心に変動していることを示す。本実施形態では、後述するように、このY方向の加速度信号の特性を利用して泳状態/休息状態を判定する。
【0041】
(泳状態/休息状態の判定)
状態判定部1052は、EEPROM106から読み出した加速度信号のうちY方向の加速度信号に基づいて泳状態か休息状態かを判定する。状態判定部1052は、Y方向の加速度信号が、1Gを含む予め定めた範囲内(例えば、0.8G以上、かつ、1.2Gよりも小さい)にある状態が、予め定めた継続時間(例えば、1秒)よりも長く継続している区間について休息状態と判定する。状態判定部1052は、休息状態でない状態を泳状態と判定する。これは、使用者が休息している間、使用者は水泳場内外を問わず、直立することが多いことによる。使用者は、直立している場合にY方向の加速度信号として重力、つまり約1Gの加速度が観測されることによる。
状態判定部1052は、泳状態と判定した区間について泳状態を示し、休息状態と判定した区間について休息状態を示す泳状態情報を生成する。泳状態情報は、例えば、泳状態についての信号値が1、休息状態についての信号値が0である二値(binary)情報である。
状態判定部1052は、読み出した加速度信号が示す加速度に、泳状態情報が示す信号値(1又は0)を乗じて、泳状態における加速度を示す泳状態加速度信号を生成してもよい。これにより、泳状態の区間(泳状態情報が示す信号値が1)における加速度信号を抽出することができる。状態判定部1052は、抽出した加速度信号をEEPROM106に記憶する。
【0042】
次に、Y方向の加速度信号と泳状態情報の一例について説明する。
図5は、Y方向の加速度信号と泳状態情報の一例を示す図である。
図5(a)、(b)ともに横軸は、時刻を示す。
図5(a)の縦軸はY方向の加速度、(b)の縦軸は、泳状態情報、つまり泳状態(1)又は休息状態(0)を示す。
図5(a)において、Y方向の加速度が1Gに近似する範囲にある時刻では、
図5(b)において、泳状態情報は休息状態を示す。
図5(a)において、Y方向の加速度が1Gに近似する範囲外にある時刻では、
図5(b)において、泳状態情報は泳状態を示す。
図6は、Y方向の加速度信号と泳状態情報の他の例を示す図である。
図6における縦軸と横軸の関係は、
図5と同様であるが、時刻のスケールが拡大されている。
図6において、Ayは、Y方向の加速度信号を示し、Bnは、泳状態情報を示す。
図6は、泳状態においてはY方向の加速度がゼロを中心に変動し、休息状態においてはY方向の加速度が1Gを中心に変動していることを示す。
【0043】
(事象の判定)
事象判定部1053は、EEPROM106から加速度信号及び時刻情報に基づいて遊泳に係る事象として、スタート、ターン、タッチを判定する。
まず、事象判定部1053が、スタートとターンを判定する処理について説明する。但し、当初はスタートとターンを区別しない。
事象判定部1053は、読み出したY方向の加速度信号から泳状態情報が泳状態を示している区間において、Y方向の加速度が、予め定めたスタート/ターン判別加速度の閾値よりも大きい値に対応する時刻をスタート/ターン時刻と判定する。スタート、ターンにおいては、使用者の身長方向の加速度が急激に発生するためである。スタート/ターン判別加速度の閾値は、重力加速度1Gよりも有意に大きい値、より好ましくは例えば、1,98Gである。
なお、事象判定部1053は、EEPROM106から泳状態情報を読み出し、読み出した泳状態情報が泳状態を示す区間について、上述のスタート/ターン時刻を判定してもよい。
【0044】
事象判定部1053は、判定したスタート/ターン時刻のうち、例えば、訓練開始時刻から予め定めた範囲内にあるか否かを判断する。訓練開始時刻は、例えば、訓練開始と訓練終了を繰り返す訓練方法であるインターバルトレーニングにおいて、予め定めた訓練を開始する時刻である。予め定めた範囲とは、例えば、訓練開始時刻から30秒先行する時刻から訓練開始時刻から1分遅延した時刻までの時間、訓練開始時刻を中心とする1回の訓練時間の半分の時間、等である。
事象判定部1053は、例えば、開始時刻から予め定めた範囲内にあるスタート/ターン時刻を、スタート時刻と定める。事象判定部1053は、開始時刻から予め定めた範囲内にないスタート/ターン時刻を、ターン時刻と定める。なお、本実施形態では、時刻計測部104が計測した経過時間の計測開始時刻に最も近い初回のスタート/ターン時刻を、スタート時刻と定め、その他のスタート/ターン時刻を、ターン時刻と定めてもよい。
【0045】
次に、事象判定部1053が、タッチを判定する処理について説明する。
事象判定部1053は、読み出した泳状態情報が泳状態から休息状態に変わる時刻を終点とする、その終点までの予め定めた長さの区間におけるY方向の加速度信号についてフィルタリング処理を行って平滑化する。フィルタリング処理は、例えば、移動平均、バターワースフィルタリング等、時間領域の信号を、遊泳に伴うY方向の加速度の変動周期よりも長い周期で平滑化することができれば、いかなる方法でもよい。
事象判定部1053は、平滑化した信号の信号値が、予め定めた立ち上がり判別値よりも大きくなった時刻(立ち上がり時刻)を、タッチ時刻と定める。立ち上がり判別値は、0Gよりも予め定めた値だけ大きく、1Gよりも0Gに近い値である。本実施形態では、タッチ時刻において、遊泳に伴うY方向の加速度における0Gの周囲の変動が停止し、使用者が直立しようとして身長方向の加速度がかかり始めることに着目している。
【0046】
次に、Y方向の加速度信号と判定された事象の一例について説明する。
図7は、Y方向の加速度信号と判定された事象の一例を示す図である。
図7の縦軸はY方向の加速度を示し、横軸は時刻を示す。
図7の上部に示されている符号st1、st2、tcは、それぞれ、スタート時刻、ターン時刻、タッチ時刻を示す。
図7は、スタート時刻、ターン時刻においては、Y方向の加速度が鋭いピークを有することを示す。これに対して、タッチ時刻においては、Y方向の加速度における0Gのまわりの変動が停止し、1Gに向かって増加し始めることを示す。
【0047】
(泳法別記述統計量の例)
次に、使用者の遊泳中に観測した泳法別の記述統計量の一例について説明する。
図8は、泳法別の記述統計量の一例を示す図である。
図8(x)、(y)、(z)はそれぞれ、X方向、Y方向、Z方向の加速度の記述統計量の分布を泳法別に示す。
図8(x)、(y)、(z)それぞれについて、左側から右側へ順に平均、分散、歪度を示す。感度軸方向、記述統計量毎に、4種の泳法(Bu、Ba,Br,Fr)それぞれについて、度数分布を示す。上下方向の1点破線は、度数分布において度数がゼロである基準線である。即ち、各基準線から左右に離れているほど、度数が大きいことを示す。
【0048】
図8においてZ方向の加速度の平均、X方向の加速度の分散、Y方向及びZ方向の加速度の歪度各々の分布について、泳法間で特徴的な差異がある。
Z方向の加速度の平均において、背泳(Ba)について、他の泳法よりも格段に大きい値を示す。これは、背泳では他の泳法とは異なり使用者の胸部が上方に向くため、主に重力加速度がZ方向の加速度として検知されるためである。
X方向の加速度の分散において、背泳(Ba)ならびにクロール(Fr)は、他の泳法よりも格段に大きい値を示す。これは、背泳ならびにクロールにおいて、使用者は左右の上腕を左右非対称に動作させることによって生ずる左右方向の加速度の変動がX方向の加速度の分散として観測されることによる。これに対し、平泳とバタフライにおいて、使用者は左右の上腕をほぼ左右対称に動作させるため、左右方向の加速度の変動が比較的小さい。
Y方向及びZ方向の加速度の歪度において、平泳(Br)とバタフライ(Bu)との間で歪度の分布について有意な差があり、バタフライ(Bu)と他の泳法との間では有意な差がない。これは、平泳において、1回のストロークで使用者は左右の上腕を外側後方に動かした後で胸部に引き寄せ、その後、身長方向に急激に伸ばすことによる。そのため、身長方向及び前後方向の加速度の分布に偏りが生じ、Y方向及びZ方向の加速度の歪度として観測されることによる。これに対し、バタフライでは、使用者は左右の上腕を外側後方に動かした後で胸部に引き寄せることがないため、身長方向及び前後方向の加速度の分布において偏りが生じにくい。
従って、本実施形態において、泳法判別部1057は、4種類の泳法を判別する際、記述統計量としてZ方向の加速度の平均、X方向の加速度の分散、Y方向及びZ方向の加速度の歪度を用いる。
【0049】
(泳法判別法の一例)
次に、泳法判別部1057が行う泳法判別法の一例として、階層型ニューラルネットワーク(Multilayered Neural Network)を用いて泳法を判別する処理について説明する。階層型ニューラルネットワークとは、神経回路網における入出力特性を模した処理部(ニューロン)の階層を複数備えた構成を有する。
図9は、本実施形態に係る階層型ニューラルネットワークを示す概略図である。
図9に示す階層型ニューラルネットは、入力層、中間層、及び出力層を備える。入力層、中間層、出力層には、それぞれ4個の節点(ニューロン)In1〜In4、Md1〜Md4、Ot1〜Ot4を備える。本実施形態では、入力層における節点In1〜In4には、それぞれX方向の加速度の分散Var(Ax)、Y方向の加速度の歪度Skewness(Ay)、Z方向の加速度の平均Mean(Az)、Z方向の加速度の歪度Skewness(Az)が入力される。
節点In1〜In4は、入力された信号を中間層の節点Md1〜Md4にそれぞれ出力する。節点Md1〜Md4は、節点In1〜In4のそれぞれから入力された入力信号について後述する処理を行って出力信号を生成する。節点Md1〜Md4は、生成した出力信号を出力層の節点Ot1〜Ot4に出力する。節点Ot1〜Ot4は、節点In1〜In4、節点Md1〜Md4のそれぞれから入力された入力信号について後述する処理を行って出力信号を生成する。
【0050】
節点Md1〜Md4、Ot1〜Ot4は、それぞれ入力信号x
iをチャネルi間で重み付け加算して荷重和Σ
iw
ix
iを算出し、算出した荷重和から閾値θを差し引いた値uについての出力関数f(u)を用いて出力信号yを算出する。
出力関数f(u)は、例えば、シグモイド関数である。シグモイド関数は、出力値の最大値が1、最小値が0であって、入力値uに対して単調に増加又は減少する関数である。
節点Md1〜Md4、Ot1〜Ot4における結合係数w
i及び閾値θは、予め泳法とVar(Ax)、Skewness(Ay)、Mean(Az)、Skewness(Az)との関係が既知である学習データを用いて事前学習を行って、予め設定しておく。学習においては、出力信号の誤差を最小化するように設定対象の各係数を更新する処理を再帰的に繰り返す。学習回数(学習対象の係数を更新する回数)、学習係数(1回の更新における学習対象の係数に係る更新の度合い)、モーメント(前回の更新量の寄与率)は、例えば、それぞれ500回、0.3、0.2である。
節点Ot1〜Ot4は、それぞれ、バタフライである確率、背泳である確率、平泳である確率、クロールである確率を出力する。泳法判別部1057は、出力確率が最も高い泳法を、使用者が遊泳している泳法と判別する。
【0051】
なお、本実施形態では、階層型ニューラルネットワークにおける階層の数は、3階層に限らず、1階層よりも多い任意の数、例えば4階層(中間層が2階層)であってもよい。また、中間層が備える節点の数は4個に限らず、1個より多い任意の数、例えば3個であってもよい。
【0052】
(泳法判別法の他の例)
次に、泳法判別部1057が行う泳法判別法の他の例として、決定木(Decision Tree)を用いて泳法を判別する処理について説明する。決定木とは、ある事象に対する観察結果から、その事象の目標値に関する予測値を導く予測モデルの1つである。決定木は、ある変数に係る節点(親節点)とこの変数に対して取りうる値を示す他の節点(子節点)間の関係を示す枝と、ある節点とその節点に対する分類を示す端点(葉)間の関係を示す枝を有する木構造からなる予測モデルである。
【0053】
図10は、本実施形態に係る決定木を示す概略図である。
図10において、楕円は節点(ノード)n1−n6を示し、四角形は端点を示す。
図10の節点のうち最上段の節点n1が起点である。
節点n1では、泳法判別部1057はX方向の加速度の分散が予め定めた閾値Var(Ax1)よりも大きいか否かを判断する。X方向の加速度の分散がVar(Ax1)よりも大きいと判断された場合、節点n2に進む。X方向の加速度の分散がVar(Ax1)と同一か小さいと判断された場合、節点n3に進む。
節点n2では、泳法判別部1057はX方向の加速度の平均が予め定めた閾値Mean(Ax2)よりも大きいか否かを判断する。X方向の加速度の平均が閾値Mean(Ax2)よりも大きいと判断された場合、泳法判別部1057は、泳法を背泳(Ba)と判別する。X方向の加速度の平均がMean(Ax2)と同一か小さいと判断された場合、泳法判別部1057は、泳法をクロール(Fr)と判別する。
【0054】
節点n3では、泳法判別部1057はX方向の加速度の歪度が予め定めた閾値Skew(Ax3)よりも大きいか否かを判断する。X方向の加速度の歪度がSkew(Ax3)よりも大きいと判断された場合、泳法判別部1057は、泳法を平泳(Br)と判別する。X方向の加速度の歪度がSkew(Ax3)と同一か小さいと判断された場合、節点n4に進む。
節点n4では、泳法判別部1057はY方向の加速度の歪度が予め定めたSkew(Ay1)よりも大きいか否かを判断する。Y方向の加速度の歪度がSkew(Ay1)よりも大きいと判断された場合、節点n5に進む。Y方向の加速度の歪度がSkew(Ay1)と同一か小さいと判断された場合、泳法判別部1057は、泳法をバタフライ(Bu)と判別する。
【0055】
節点n5では、泳法判別部1057はZ方向の加速度の歪度が予め定めた閾値Skew(Az1)よりも大きいか否かを判断する。Z方向の加速度の歪度がSkew(Az1)よりも大きいと判断された場合、泳法判別部1057は、泳法を平泳(Br)と判別する。Z方向の加速度の歪度がSkew(Az1)と同一か小さいと判断された場合、節点n6に進む。
節点n6では、泳法判別部1057はX方向の加速度の分散が予め定めた閾値Var(Ax4)よりも大きいか否かを判断する。X方向の加速度の分散がVar(Ax4)よりも大きいと判断された場合、泳法判別部1057は、泳法をバタフライ(Bu)と判別する。X方向の加速度の分散がVar(Ax4)と同一か小さいと判断された場合、泳法判別部1057は、泳法を平泳(Br)と判別する。
【0056】
決定木を用いた処理では、上述のように入力となる記述統計量を節点毎に閾値との大小関係を判定することを繰り返し、最終的に泳法を判別するため、処理負荷が小さい。
なお、節点毎の閾値については、節点間の結合関係毎に、入力となる記述統計量と、出力となる泳法との関係が既知である学習データを用いて事前学習を行って、設定しておく。学習においては、出力信号の誤差を最小化するように設定対象の各係数を更新する処理を再帰的に繰り返す。学習回数、学習係数は、例えば、500回、0.3である。
【0057】
(泳法判別結果)
次に、上述の処理を行って得られた泳法判別結果について説明する。
実験では、30名の泳者に、本実施形態に係る電子機器10を装着させ上述の4泳法でそれぞれ各3回(各泳法につき計90回)遊泳させて各感度軸方向の加速度信号を収集した。電子機器10には、収集した加速度信号について階層型ニューラルネットワーク、決定木それぞれを用いて泳法を判別させるようにした。
【0058】
図11は、階層型ニューラルネットワークを用いて得られた泳法判別結果を示す表である。
図11において、各行は判別対象の泳法、各列は判別された泳法をそれぞれ示す。
図11によれば、背泳(Ba)、バタフライ(Bu)、平泳(Br)、クロール(Fr)について、正解回数は、それぞれ90、75、74、89である。判別成功率は、91.1%である。特に、背泳、クロールの判別成功率は、100%、99.1%である。バタフライ、平泳の判別成功率は、背泳、クロールよりも低くなる傾向があるが、それぞれ83.3%、82.2%と比較的高い値を示す。また、判別誤りは、主にバタフライと平泳相互間で生じる。
【0059】
図12は、決定木を用いて得られた泳法判別結果を示す表である。
図12において、各行、各列の関係は、
図11と同様である。
図12によれば、背泳(Ba)、バタフライ(Bu)、平泳(Br)、クロール(Fr)について、正解回数は、それぞれ90、77、72、89である。判別成功率は、91.1%である。特に、背泳、クロールの判別成功率は、100%、99.1%である。バタフライ、平泳の判別成功率は、背泳、クロールよりも低くなる傾向があるが、それぞれ85.6%、80.0%と比較的高い値を示す。また、判別誤りは、主にバタフライと平泳相互間で生じる。これは、バタフライが、そもそも平泳から派生した泳法であって、上腕や脚部の動作における両泳法間の相関が高いことによる。そのため、従来は、この両泳法を判別することが困難であった。
このように、上述した例では、決定木を用いても、階層型ニューラルネットワークを用いても同様に、上述の4泳法を従来よりも高い確率で判別することができる。
【0060】
(ストローク頻度の算出例)
次に、ストローク頻度の算出例について説明する。次に説明する算出例は、ストローク頻度算出部1059が、各感度軸方向の加速度信号のパワースペクトルに基づいて算出した例である。
図13は、加速度信号のパワースペクトルの例を示す図である。
図13において、縦軸はパワー、横軸は周波数(Hz)を示す。
図13は、ある泳者がバタフライで遊泳しているときに収集された加速度信号のパワースペクトルを示す。Ax、Ay、Azは、それぞれX、Y、Z方向の加速度信号のパワースペクトルである。Y、Z方向の加速度信号のパワースペクトルにおいて、それぞれ周波数0.69Hzにパワーが極大になる。周波数0.69Hzは、人間が水中で動作する際に可能性のある範囲内であるから、ストローク頻度算出部1059は、この周波数0.69Hzをストローク頻度と定める。
他方、X方向の加速度信号のパワースペクトルでは、周波数0.69Hzにおいてパワーは極大にならない。しかし、加速度方向選択部1058が、泳法がバタフライである場合にY方向又はZ方向の加速度信号を選択するため、X方向の加速度信号のパワースペクトルに基づいてストローク頻度を算出できないという問題を回避することができる。
【0061】
(泳法判別処理)
次に、本実施形態に係る泳法判別処理について説明する。
図14は、本実施形態に係る泳法判別処理を示すフローチャートである。
(ステップS201)加速度検出部102は、X、Y、Z方向の加速度を検出し、検出したX、Y、Z方向の加速度を示す加速度信号を生成する。その後、ステップS202に進む。
(ステップS202)状態判定部1052は、Y方向の加速度信号に基づいて泳状態又は休息状態を判定し、泳状態又は休息状態を示す泳状態情報を生成する。その後、ステップS203に進む。
(ステップS203)事象判定部1053は、Y方向の加速度信号、泳状態情報及び時刻情報に基づいて遊泳に係る事象として、スタート、ターン、タッチを判定する。事象判定部1053は、判定した事象とその事象が発生した時刻を示す事象情報を生成する。その後、ステップS204に進む。
(ステップS204)泳時間推定部1054は、事象情報に基づいて泳時間を推定し、推定した泳時間を示す泳時間情報を生成する。その後、ステップS205に進む。
【0062】
(ステップS205)泳局面抽出部1055は、加速度信号から事象情報に基づいて泳局面にある区間の加速度信号を抽出する。これにより、スタート又はターン直後の予め定めた区間の加速度信号をマスクする。その後、ステップS206に進む。
(ステップS206)記述統計量算出部1056は、X、Y、Z方向の加速度信号について記述統計量として、平均、分散、及び歪度を算出する。その後、ステップS207に進む。
(ステップS207)泳法判別部1057は、算出された記述統計量に基づいて、例えば、階層型ニューラルネットワーク、判定木、等を用いたパターン認識処理を用いて泳法として、例えば、背泳、平泳、バタフライ、クロールを判別する。泳法判別部1057は、判別した泳法を示す泳法情報を生成する。その後、ステップS208に進む。
(ステップS208)加速度方向選択部1058は、泳法情報に基づいて感度軸方向を定め、泳局面抽出部1055から入力された加速度信号から定めた感度軸方向の加速度信号を選択する。その後、ステップS209に進む。
(ステップS209)ストローク頻度算出部1059は、選択された感度軸方向の加速度信号の周波数を算出し、算出した周波数をストローク頻度と定める。
【0063】
本実施形態では、電子機器10は、上述の泳法判別処理においてステップS202以降のステップのうち全部又は一部を、ステップS201において加速度信号を生成した直後に行ってもよいし、それには限られない。電子機器10は、ステップS202以降のステップのうち全部又は一部を、加速度信号を生成した後、任意の時期に行ってもよい(オフライン処理)。例えば、電子機器10は、ステップS201における加速度検出が終了した後、ステップS202〜S209を連続して行ってもよい。また、過去に生成した加速度信号についてステップS206の記述統計量の算出、ステップS207の泳法判別を、より後に生成した加速度信号についてステップS205の泳局面判定を行うようにしてもよい。これにより、一時的に各処理が集中しないように処理量の分散を行ってもよい。
また、電子機器10は、ステップS201において生成した加速度信号を他の機器、例えば、サーバ装置、パーソナルコンピュータ等に送信してもよい。そして、これらの機器が上述の泳法判別処理を実行するようにしてもよい。
【0064】
(変形例)
次に、本実施形態における一変形例について前述と同一の構成について同一の符号を付して説明する。
図15は、本変形例に係る泳法判別システム1を示す概略図である。
泳法判別システム1は、電子機器10、ネットワーク20、及びサーバ装置30を含んで構成される。
電子機器10において通信部109は、サーバ装置30からネットワーク20を経由してデータ要求信号を受信し、EEPROM106から各感度軸方向の加速度信号を読み出す。通信部109は、読み出した加速度信号を、ネットワーク20を通じてサーバ装置30に送信する。
【0065】
ネットワーク20は、電子機器10とサーバ装置30との間でデータを送受信するネットワークである。ネットワーク20は、例えば、無線でデータを送受信することができる無線通信ネットワークである。また、サーバ装置30とは、有線でデータを送受信することができる有線通信ネットワークが接続されていてもよい。
【0066】
サーバ装置30は、電子機器10から受信した加速度信号を処理することができるコンピュータである。サーバ装置30は、通信部31、データ処理部32、操作入力部33、及び記憶部34を含んで構成される。
【0067】
通信部31は、電子機器10から加速度を受信し、受信した加速度信号をデータ処理部32に出力する。また、通信部31は、データ処理部32から入力されたデータ要求信号を、ネットワーク20を経由して電子機器10に送信する。
データ処理部32は、通信部31から入力された加速度信号を記憶部34に記憶する。
データ処理部32は、
図3に示すCPU105と同様な機能構成、即ち、状態判定部1052、事象判定部1053、泳時間推定部1054、泳局面抽出部1055、記述統計量算出部1056、泳法判別部1057、加速度方向選択部1058、及びストローク頻度算出部1059に相当する機能構成を備える。
データ処理部32は、操作入力部33が受け付けた操作入力に基づいて電子機器10が生成した加速度信号を要求することを示すデータ要求信号を生成する。データ処理部32は、生成したデータ要求信号を通信部31に出力する。
操作入力部33は、使用者による操作に伴う操作入力を受け付ける。操作入力部33は、例えば、キーボード、マウス等の入力デバイスである。
【0068】
これにより、データ処理部32は、
図14に示すステップS202−S209と同様な処理を行うことができる。そのため、本変形例においては、電子機器10において、状態判定部1052、事象判定部1053、泳時間推定部1054、泳局面抽出部1055、記述統計量算出部1056、泳法判別部1057、加速度方向選択部1058、及びストローク頻度算出部1059を省略することができる。複数の電子機器10からそれぞれ受信した加速度信号に基づいて、サーバ装置30が一括して泳法を判別することができるため経済的なシステムを構築することができる。
【0069】
なお、上述の泳法判別システム1では、サーバ装置30に限られず、パーソナルコンピュータ、携帯端末機器の処理装置であってもよいし、これらの処理装置が、
図3に示すCPU105と同様な機能構成を備えるようにしてもよい。
【0070】
上述したように、本実施形態では、3方向の加速度を検出し、検出した3方向の加速度の記述統計量に基づいて泳法を判別する。また、記述統計量として平均、分散及び歪度が算出され、この3方向として身体の左右方向、身長方向、及び前後方向の加速度を検出する。そのため、使用者の泳法を正確に判別することができる。
【0071】
なお、上述した実施形態における電子機器10、サーバ装置30の一部、例えば、状態判定部1052、事象判定部1053、泳時間推定部1054、泳局面抽出部1055、記述統計量算出部1056、泳法判別部1057、加速度方向選択部1058、及びストローク頻度算出部1059をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、電子機器10又はサーバ装置30に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における電子機器10及びサーバ装置30の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。電子機器10及びサーバ装置30の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
【0072】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。