近年ヘルスケアやポケモンGOといった、健康やゲームに関するアプリケーションなどスマートフォンを用いたデータの活用が多い。しかしスマートフォンによる正確な行動の判別は困難である。
そこでスマホのデータを収集し得られたものを解析することで今後どのようなことに活かせるか研究する。他の判断方法があると既存の測定方法をさらに正確にできると考えられる。
スマートフォンで歩数を測定する際は加速度に閾値を用いてカウントするが、周波数特性から歩行しているか判断できないか考察したい。
本研究ではアプリケーションを用いてスマートフォンの加速度を収集し、周波数分析を行う。
鵜沼らは人間に加速度計を装着し、加速度を観測することで歩行の分析を行った[2]。
高齢者の緊急自動通報を目的に加速度センサを用いた行動認識の研究を行った。
加速度センサは腰の取り付け身体の上下、左右、前後の加速度を測定する。
歩行、這位、立位、静止の認識方法について研究を行い、成人男性4人の動作を測定した。
身体の上下方向の加速度信号の周波数特性を観測し、標準的な歩行、走行においては歩行周期を中心周波数とする1本の非常に強いスペクトルを発見した。
このスペクトルを閾値処理で抽出することで歩行周期を求める。しかし極端にゆっくり歩いたり足を引きずって歩いた場合に歩行周期以外のスペクトル強度が表れる。そこで直流成分を除くすべての周波数スペクトルの平均値より大きいスペクトルを残す閾値処理を行い、その区間の最も低い周波スペクトル群の区間内で最大スペクトル強度を求めている。
鵜沼らの研究では、歩行パターンの分析を目標とし、歩行パターンとして観測した加速度の変化を周波数成分として分析している。これにより、歩行に関しての知見が得られている。一方本研究はスマートフォンをセンサとして常時動作させ、さまざまな行動についての分析を行う。
石井らは被験者のスマホにアプリを入れ、11種類のセンサでパラメータを観測することでどのくらい歩きスマホ行動をしているかデータ明らかにする実験を行った[3]。
被験者自身が日頃利用しているスマホに、スマホアプリ「Motion Logger」をインストールさせ、測定した。アプリでは識別情報の他に、スマホ端末の操作の有無や緯度経度高度センサ、歩数センサなど11種類のパラメータを得た。計測期間中は常にスマホの電源をオンにし、操作しないときにはできる限り胸ポケットに携行するよう指示した。
スマホ操作時間、歩きスマホ時間とも、男女間、世代間の有意差が認められないことを発見した。
石井らの研究では日常生活の中でどのくらい歩きスマホ行動をしているかデータとして明らかにすることを目標とし、ライフログデータを解析している。これにより、歩きスマホ行動に関する知見が得られている。一方本研究ではセンサから得られたデータを様々な行動について分析を行う。
柏井らは車両情報をスマホで疑似的に生成することによって、ブレーキ操作と停止のスムーズさを診断するアプリを開発した。 [4]。
楽しみながらブレーキ操作がうまくなるアプリの開発
『他のドライバーとつながることを通して楽しみながら運転がうまくなる』という新たな価値を提供することを目的に運転診断を行うアプリを作成した。
スマホの3軸加速度センサを用いて車両情報を収得した。停止中に観測された値を用いて重力加速度を検出し、鉛直向きがz軸となるように座標変換を行った。残りのxy平面から進行方向の軸を新たなx軸として再定義し、前後方向の加速度を求めた。前後方向の加速度をもとにブレーキ操作情報の生成を行った。GPSで測定した速度には遅れがあることからスマホの加速度センサを用いる方法で停止判定を行い、診断を行うアプリを作成した。
長期に利用しているユーザーを対象に診断アプリによりドライバーの運転行動が改善されることが確認された
柏井らの研究では『他のドライバーとつながることを通して楽しみながら運転がうまくなる』という新たな価値を提供することを目標とし、加速度を用いて車両情報を疑似的に生成した。これにより、ブレーキ操作と停止のスムーズさを診断しドライバーにフィードバックすることで運転行動の改善がされることが確認された。一方本研究ではセンサを用いて人間の行動についてデータを収集し分析を行う。
鴨村らは健常男性に3軸加速度センサを装着し、加速度を観測することで起立・着座の分析を行った[5]。
起立・着座動作における絶対空間での3軸方向の運動学的変化を加速度センサがどの程度正確に推定できるのかを目的に研究を行った。
加速度の計測には9軸ワイヤレスモーションセンサを用い、被験者の第3腰椎棘突起部に位置するように体感に伸張性バンドを巻き固定した。起立、着座動作における加速度センサの有用性に関する研究を行い、健常男性17名の動作を測定した。三次元の計測には三次元動作解析装置を用い、赤外線反射マーカはモーションセンサ後面に貼付した。
統計解析にはIBM SPSS Statisticsを使用し三次元動作解析装置から算出した加速度データとモーションセンサから得られた加速度データを補正した推定データの解析対象を級内相関係数(ICC)、相互相関係数(CC)を用いて信頼性と波形の類似性をそれぞれ比較した。
加速度センサは起立・着座動作の垂直、前後方向の客観的評価として有用であることを発見した。
鴨村らの研究では起立・着座動作を加速度センサでどの程度正確に推定できるか検討することを目標とし、加速度センサの傾きを補正した鉛直、前後方向の加速度データと三次元動作解析装置から算出した加速度データを比較した。一方本研究ではスマホの加速度センサを用いて様々な行動の分析を行う。
本研究では、スマートフォンのセンサの状態を常時記録して、ビッグデータとして解析することにより、携帯している人に関する様々な情報を分析することを目標としている(使用機材については付録Aを参照)。
そのため、スマートフォンで一定間隔でセンサの情報を収集し、CSVファイルとして保存するためのソフトウェアを開発した。さらに、収集したCSVファイルをMATLABにより分析を行った。
作成したソフトウェアの詳しい内容については付録B に示す。スマートフォンで得られるセンサでは、加速度、緯度経度、高度、ARによる寸法や面積、磁気、近接度などが検知できる。Unityを用いて、これらをそのまま時刻とともに記録し、CSVに記録する[6]。
得られたセンサの値について、MATLABにより分析を行う。基本的には得られた値を波と見做し、スペクトル分析を行う[7]。
スペクトル分析とは時間ごとの信号を周波数ごとに分解し、強度を求めるものである。
信号のフーリエ変化により周波数成分を特定することができるので、離散フーリエ変換を行う。
xがnこの点でサンプリングされた点を持つ場合、フーリエ変換は以下の式で定義される。
ここでである。
MATLAB上ではデータの離散フーリエ変換を行うfft(x)という関数を用いる。
離散フーリエ変換を行い得られた値は複素数なので、絶対値を用いてグラフにプロットする。
様々な被験者に実際に測定用のアプリケーションのインストールされているスマートフォンを一定時間携帯してもらい、計測を行った。
以下のさまざまな条件で計測を行った(データは付録C参照)。
手順を以下に示す。
1. アプリを起動した状態でズボンの左ポケットに入れる。この際入れた向きは太ももに液晶画面が向いておりスマートフォン上部がつま先のほうに向いている状態でポケット入れた。
2. 歩き始める前と歩き終わった際に立ち止まり静止した。
3. ポケットからスマートフォンを取り出しアプリを終了した。
4. 1~3を3回行った。
手順を以下に示す。
1. 測定時間を0.2秒おきから1秒おきに変更した。
2. 12時から15時までの間測定を行う
3. 実験1と同じようにスマートフォンを携帯した。
4. 1~3を一週間毎日行った。
測定間隔を0.2秒から1秒おきにした。理由は長時間の測定を行うとスマートフォンが熱くなってしまうからである。
手順を以下に示す。
1. 経度、緯度、高度を収集できるようにした[8]。(プログラムは付録B 参照)
2. 収集できたCSVファイルを確認した。
手順を以下に示す。
1. 測定間隔は1秒で実験1と同じ携帯の仕方をした。
2. 作成したアプリケーションを起動し携帯した状態で歩き、約6分測定を行った。
3. 得られたCSVファイルをMATLABで読み込み、z軸の波で離散フーリエ変換を行った[9] [10]。
4. 離散フーリエ変換した結果を絶対値にし、グラフにプロットした。(プログラムは付録B 参照)
手順を以下に示す。
1. 測定間隔を0.2秒にして実験1と同じ携帯の仕方をした。
2. 作成したアプリケーションを起動し携帯した状態で歩き、測定を行った。
3. 得られたCSVファイルをMATLABで読み込み、歩いていた時間のz軸の波で離散フーリエ変換を行った。
4. 離散フーリエ変換した結果を絶対値にし、グラフにプロットした。(プログラムは付録B 参照)
5. 1~4までを2回行った
一秒おきの測定だとfftしても特徴がみられなかったので測定間隔を短くした。
手順を以下に示す。
1. 測定間隔を0.2秒で実験1と同じ携帯の仕方をした。
2. 作成したアプリケーションを起動し携帯した状態で階段を登り、測定を行った。
3. 得られたCSVファイルをMATLABで読み込み、階段を登っていた時間のz軸の波で離散フーリエ変換を行った。
4. 離散フーリエ変換した結果を絶対値にし、グラフにプロットした。(プログラムは付録B 参照)
5. 同様の方法で階段を下るときの測定と解析を行った。
手順を以下に示す。
1. 測定間隔を0.2秒で、実験1と同じ携帯の仕方をした。
2. 作成したアプリケーションを起動し携帯した状態で椅子に座り、測定を行った。
3. 得られたCSVファイルをMATLABで読み込み、z軸の波で離散フーリエ変換を行った。
4. 1~3を2回行った
手順を以下に示す。
1. 測定間隔を0.2秒にして、リュックサックやボディバッグにスマートフォンを入れた。
2. 作成したアプリケーションを起動しリュックサックやボディバッグに入れた状態で測定を行った。
3. 得られたCSVファイルをMATLABで読み込み、歩いていた時間のz軸の波で離散フーリエ変換を行った。
手順を以下に示す。
様々な被験者にズボンのポケットにスマートフォンを入れてもらい測定し、実験4.6と同じように解析する。
1. 測定間隔を0.2秒で、被験者のポケットに携帯してもらった。
2. 作成したアプリケーションを起動し携帯した状態で測定を行った。
3. 得られたCSVファイルをMATLABで読み込み、歩いていた時間のz軸の波で離散フーリエ変換を行った。
得られたcsvファイルと加速度のグラフを図3,4,5に示す。
それぞれのグラフを見ると歩いているときはx軸とz軸では0を基準に値が上下しており、y軸では1を基準に値が上下していることから波が生まれていることがわかった。
結果を図6から図11までに示す。
グラフを見ると実験1と同様に三つの加速度が上下しており波が生まれている状態と、上下せず一定の値を保った状態が見られた。
結果のcsvファイルの様子を図12に示す。
図12は左列からlat(緯度),lon(経度),alt(高度),time(経過時間)の値を表している。
経度と緯度が当時の場所を示していることからGPSと高度が収集できていることがわかる。
分析結果を図14に示す。
分析後のグラフを見ると、特定の周波数で大きな値が見られることはなかった。原因は測定間隔が1秒と長すぎるためであると考えられる。
分析結果を図16,18に示す。
分析後のグラフを見ると、2~3箇所において他の周波数と比べて大きな値になっている周波スペクトル群が表れていることがわかる。
階段を上ったときの分析結果を図20に示す。
上りでは一か所においてほかの周波数と比べて大きな値になっている周波数が見られる。
階段を下ったときの分析結果を図22に示す。
下りでは特定の周波数で大きな値が見られることはなかった。
分析結果を図24,26に示す。
図24,26ともに分析後のグラフを見ると低い周波スペクトル群の値が大きくなっていることがわかる。このことから動きが少ないときは低い周波数に特徴が表れることが推測できる。
まずリュックサックに入れて歩いた時の解析結果を図28,30に示す。
図28,29ともに二か所に他の周波数と比べて大きな値になっている周波スペクトル群が表れている。このことからリュックサックに入れても測定ができ、分析することで特定の周波数に特徴が表れることがわかる。
次にボディバッグにスマートフォンを入れて測定し解析したものを図32に示す。
リュックサックの時と比べるとノイズが多いが二か所に他の周波数と比べて大きな値になっている周波スペクトル群が見られる。このことからリュックサック同様に特徴が表れることがわかる。
結果を図34~46に示す。
被験者A一つ目
図34を見るとほかの周波数と比べて大きな値の周波スペクトル群が二か所に表れており、実験4.5での自分の結果と同じような結果が得られた。
被験者A二つ目
図36を見ると他の周波数と比べて大きな値になっている周波スペクトル群が4箇所に表れている。原因は歩きながらスマホをいじっていた時と、普通に歩いている時での歩行スピードの違いによるものだと考えられる。
被験者B一つ目
図38を見ると他の周波数と比べて大きな値になっている周波スペクトル群が3つ見られる。
被験者B二つ目
図40を見ると他の周波数と比べて大きな値になっている周波スペクトル群が3つ見られる。また低周波数にも大きな値が表れている。
被験者C一つ目
結果を図42に示す。
図42を見ると大きな値になっている周波スペクトル群が1つ見られる。
被験者C二つ目
結果を図44に示す。
図44を見ると大きな値になっている周波スペクトル群が2つ見られる。
被験者D
結果を図46に示す。
図46を見ると大きな値になっている周波スペクトル群とが3つ見られる。
止まっていた時間もあったため0付近に大きな値の周波スペクトルがあるが、他に大きな値が二か所見られる
実験9を通して、被験者が異なっていても分析をすると1~4つの周波スペクトル群が見られた。
本実験ではスマートフォンを用いてデータの収集を行い、そのデータの解析を行った。
実験4.6の歩いた際のz軸加速度をフーリエ変換を行うことで特定の周波数に他の周波数と比べて大きな値になっている周波スペクトル群が表れていることがわかる。また実験4.9からリュックサックやボディバッグに入れても測定が行え、解析の結果実験4.6と同様の特徴が表れていることもわかる。このことから特定の個所にスマートフォンを入れなくても解析結果から数か所の周波スペクトル群に特徴が表れるであろうと考えられる。
実験4.10では自分以外の被験者に測定をしてもらい、その結果を分析した。自分以外の人でも同様の特徴が表れることから誰が測定しても数か所の周波スペクトル群に特徴が表れるであろうと考えられる。
このことからより多くの人のデータを集め解析することができると考えられる。
本研究ではスマートフォンのセンサの値を観測して、携帯している人の行動の分析ができることを示した。本実験を通して、スマートフォンのデータを解析することで特徴が得られることがわかった。座っているときは低周波数に他の周波数と比べて大きな値が表れ、歩いた時は数箇所に他の周波数と比べて大きな値が表れた。今後は他の行動の判別や、集中度や疲労度などへの応用、年齢や性別による違いなどの判別などが考えられる。
表1.スマートフォンの環境
項目 | 環境 |
---|---|
使用デバイス | moto g pro |
Androidバージョン | 10 |
CPU | Snapdragon 665 |
表2.デスクトップPCの環境
項目 | 環境 |
---|---|
OS | Windows 10 Pro |
CPU | Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz |
RAM | 16.0 GB |
GPU | NVIDIA Geforvce GTX 1660 SUPER |
図1に計測の際にスマートフォンを身に着けた場所を示す。
図1.スマートフォンを身に着けた際の様子
Unityでandroidのデータを収集するアプリを作成した。
最終的なアプリは加速度、GPS、方角、測定時間を0.2秒おきに収集し、csvに保存するものである。
図2にUnity上でのアプリの様子を示す。
図2.Unity上でのアプリの様子
l SaveData関数(SaveLogCsv.cs 行46-51)
csvファイルにデータを記録する関数である。
l SaveGPS関数(updateGPSText,cs 行27-36)
GPSのデータを収集する関数である。引数が0の時は緯度(latitude)を返す。引数が1の時は経度(longitude)を返す。引数が2の時は高度(altitude)を返す。
l SaveDir関数(Direction.cs 行24-27)
方角を収集し返す関数である。
l SaveAcc関数(AccText.cs 行23-28)
加速度を収集する関数である。引数が0の時にx軸を返し、引数が1の時にy軸を返し、引数が2の時にz軸を返す。
fivemin.mの変数の説明
start:分析する範囲の最初の行の値を入れる変数。
endpoint:分析する範囲の最後の行の値を入れる変数。
axis:分析する軸を決める変数。0の時はx軸、1の時はy軸、2の時はz軸の分析を行う。
収集者:筆者
収集日時:2021/9/19 14:27
収集地:自宅
収集時の状況:廊下を歩いた
収集したデータのグラフ:
図3.歩いた時のcsvファイルと加速度のグラフ
収集者:筆者
収集日時:2021/9/19 14:28
収集地:自宅
収集時の状況:廊下を歩いた
収集したデータのグラフ:
図4.歩いた時のcsvファイルと加速度のグラフ
収集者:筆者
収集日時:2021/9/19 14:40
収集地:自宅
収集時の状況:廊下を歩いた
収集したデータのグラフ:
図5. 歩いた時のcsvファイルと加速度のグラフ3
収集者:筆者
収集日時:10月13日12:10~14:42
収集地:自宅
収集時の状況:
12:10-12:50食事
12:50-13:05内定式資料整理
13:05-14:42卒研
収集したデータのグラフ:
図6.10月13日の12時から15時までのグラフ
収集者:筆者
収集日時:10月15日 12:40~14:40
収集地: 自宅
収集時の状況:12:40-14:40試験
収集したデータのグラフ:
図7.10月15日の12時から15時までのグラフ
収集者:筆者
収集日時:10月16日 12:50~14:40
収集地: 自宅
収集時の状況:だらだらしていた
収集したデータのグラフ:
図8.10月16日の12時から15時までのグラフ
収集者:筆者
収集日時:10月17日 12:01~15:21
収集地: 自宅
収集時の状況:作業と食事
時間がずれているため最初に時間を見間違えていると考えられる。
収集したデータのグラフ:
図9.10月17日の12時から15時までのグラフ
収集者:筆者
収集日時:10月18日 11:48~14:48
収集地: 自宅
収集時の状況:作業と食事
収集したデータのグラフ:
図10.10月18日の12時から15時までのグラフ
収集者:筆者
収集日時:10月19日 12:09~15:09
収集地: 自宅、大学
収集時の状況:12:09-12:35ごはん
12:35-13:33大学へ登校
13:33-14:33授業
14:33-15:09移動後休憩
収集したデータのグラフ:
図11.10月19日の12時から15時までのグラフ
図12.位置情報が取れた際のcsvファイルの様子
分析方法はデータのz軸加速度を一定の時間で切り抜いたものにフーリエ変換を行い、片側スペクトルで表す。
収集者:筆者
収集日時:2021/11/10 16:13
収集地:自宅から駅
収集時の状況:駅まで向かって歩いた
元のデータ:
図13.元データ
サンプリング周波数:1
分析開始時間: 9.136678
分析終了時間: 352.0536
分析結果
図14.測定間隔1秒で歩いた時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/12 17:07
収集地:自宅から駅
収集時の状況:駅まで向かって歩いた
元のデータ:
図15.元データ
サンプリング周波数:5
分析開始時間: 10.4253
分析終了時間: 305.0921
分析結果
図16.測定間隔0.2秒で歩いた時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/15 00:08
収集地: バイト先から自宅までの帰り道
収集時の状況:歩いて駅へ向かい電車に乗った後歩いて帰宅
元のデータ:
図17.元データ
後半の歩いている時間が長い部分を使用した。
サンプリング周波数:5
分析開始時間: 2025.465
分析終了時間: 2599.583
分析結果
図18.測定間隔0.2秒で歩いた時の周波数特性グラフ2
収集者:筆者
収集日時:2021/11/12 17:33
収集地: 駅の階段
収集時の状況:階段を上った
元のデータ:
図19.元データ
サンプリング周波数:5
分析開始時間: 82.09374
分析終了時間: 101.144
分析結果
図20.階段を上った時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/12 23:45
収集地: 駅の階段
収集時の状況:階段を下った
元のデータ:
図21.元データ
サンプリング周波数:5
分析開始時間: 7.534314
分析終了時間: 77.86899
分析結果
図22.階段を下りた時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/25 14:07
収集地: 自宅
収集時の状況:作業をしていた
元のデータ:
図23.元データ
サンプリング周波数:5
分析開始時間: 9.09275
分析終了時間: 2987.396
分析結果
図24.座っていた時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/25 16:41
収集地: 自宅
収集時の状況:作業をしていた
元のデータ:
図25.元データ
サンプリング周波数:5
分析開始時間: 8.835122
分析終了時間: 2902.325
分析結果
図26.座っていた時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/26 16:47
収集地: 自宅からバイト先まで
収集時の状況:歩いて向かった 途中電車に乗った
元のデータ:
図27.元データ
サンプリング周波数:5
分析開始時間: 36.08837
分析終了時間: 561.5071
分析結果
図28.リュックサックに入れて歩いた時の周波数特性グラフ
収集者:筆者
収集日時:2021/11/28 18:19
収集地: お茶の水
収集時の状況:歩いていた途中電車に乗った
元のデータ:
図29.元データ
サンプリング周波数:5
分析開始時間: 7481.603
分析終了時間: 7730.77
分析結果
図30.リュックサックに入れて歩いた時の周波数特性グラフ
収集者:筆者
収集日時:2021/12/13 15:04
収集地: 錦糸町
収集時の状況:歩いていた
元のデータ:
図31.元データ
サンプリング周波数:5
分析開始時間: 1054.171
分析終了時間: 2004.574
分析結果
図32.ボディバッグに入れて歩いた時の周波数特性グラフ
収集者:被験者A
収集日時:2021/12/04 11:20
収集地: 自宅から駅の間
収集時の状況:歩いていた
元のデータ:
図33.元データ
サンプリング周波数:5
分析開始時間: 148.2626
分析終了時間: 338.8298
分析結果
図34.被験者Aが歩いた時の周波数特性グラフ
収集者:被験者A
収集日時:2021/12/04 11:20
収集地: 自宅から駅の間
収集時の状況:歩いていた
元のデータ:
図35.元データ
サンプリング周波数:5
分析開始時間: 1310.714
分析終了時間: 1685.098
分析結果
図36.被験者Aが歩いた時の周波数特性グラフ
収集者:被験者B
収集日時:2021/12/13 16:47
収集地: 錦糸町
収集時の状況:歩いていた
元のデータ:
図37.元データ
サンプリング周波数:5
分析開始時間: 33.16175
分析終了時間: 936.8136
分析結果
図38.被験者Bが歩いた時の周波数特性グラフ
収集者:被験者B
収集日時:2021/12/13 15:47
収集地: 錦糸町
収集時の状況:人混み中を歩いていた
元のデータ:
図39.元データ
サンプリング周波数:5
分析開始時間: 3986.67
分析終了時間: 4726.071
分析結果
図40.被験者Bが歩いた時の周波数特性グラフ
収集者:被験者C
収集日時:2021/12/16 14:39
収集地: 日比谷
収集時の状況:歩いていた
元のデータ:
図41.元データ
サンプリング周波数:5
分析開始時間: 72.14326
分析終了時間: 337.8603
分析結果
図42.被験者Cが歩いた時の周波数特性グラフ
収集者:被験者C
収集日時:2021/12/16 14:39
収集地: 日比谷
収集時の状況:歩いていた
元のデータ:
図43.元データ
サンプリング周波数:5
分析開始時間: 1849.879
分析終了時間: 1929.779
分析結果
図44.被験者Cが歩いた時の周波数特性グラフ
収集者:被験者D
収集日時:2021/12/16 16:44
収集地: 日比谷
収集時の状況:歩いていた 測定開始直後スマホを振ったためノイズが入っているが分析に使用している部分に支障はない。
元のデータ:
図45.元データ
サンプリング周波数:5
分析開始時間: 24.91636
分析終了時間: 183.6667
分析結果
図46.被験者Dが歩いた時の周波数特性グラフ