#author("2022-12-19T09:28:13+00:00","","") #author("2022-12-19T09:28:30+00:00","","") [[大森]]~ [[技術資料]] *目次 [#e890b3d5] #CONTENTS **【このページでできること】[#i495c384] 歩行に関する行動識別AIの使い方 **【参考資料】[#n524e1f0] https://qiita.com/tanakadaichi_1989/items/c655d93a1fae56f2be07 **【実行環境】[#rde624e4] ・python 64bit版~ ・python3.9~ ・tensorflow==2.5.0(これをミスしたら動かないので要注意) このとき、tensorflowだけは tensorflowだけは py -3.9 -m pip install tensorflow==2.5.0 と入力してインストールする。もし間違えてしまったとしてもあとからやり直せるので大丈夫。~ **【使い方】[#q403d9b3] ***ファイルの説明 [#yd049dee] #ref(SensorData.zip,,SensorData.zip) ・sk.py~ センシングしたデータを整える。~ ・kalmanfilter_left.py~ 左足について拡張カルマンフィルタを行う。~ ・kalmanfilter_right.py~ 右足について拡張カルマンフィルタを行う。~ ・gravity.py~ 重心を計算する。 ・study_preparation.py~ study.pyを動かすための準備。~ ・study.py~ ニューラルネットワークを作成し、未知のデータに対して行動を識別させるプログラム。~ ~ ・study~ study.pyで学習したニューラルネットワークを保存したファイル~ ・study.csv~ 行動識別の教学用データ。~ ・predict.py~ 未知のデータに対し、予測を行う。~ ***動かし方 [#yd049dee] 以下のプログラムはすべてSensorDataの中に格納する。日付フォルダやその他のフォルダには格納しなくてよい。~ <ステップ1>~ まずPCのDocumentsにSensorDataという名前でフォルダを作成する。~ 次にセンサデータを収集した日の日付でファイルを作成する。例、20221016のように。~ 次にその日付フォルダの中にleft、right、という名前でフォルダをそれぞれ作る。~ このフォルダの中に左足のデータをleftに右足のデータをrightに格納する。~ <ステップ2>~ sk.pyを実行する。~ <ステップ3>~ gravity.pyを実行する。~ <ステップ4>~ kalmanfilter_left.pyを実行する。次にkalmanfilter_right.pyを実行する。このとき必ずこの順番で実行すること。~ <ステップ5>~ study_preparation.pyを実行する。~ <ステップ6>~ predict.pyを実行する。コマンドプロンプトに実行結果が記されれば解析成功。~ ~ ~ ここからは機械学習の教師用データのつくり方について紹介する。上記のステップ6を行う前にはこの作業が必要。~ <ステップ1>~ 先ほどのステップ5でstudyというフォルダにstudy_日付_時間.csvというファイルが作成されていることを確認する。~ <ステップ2>~ study_label.pyを動かす。このとき、行動識別の番号を指定する必要がある。~ 以下は大森のやり方。~ 0は歩行。~ 1は階段昇り。~ 2は階段降り。~ 3は右片足立ち。~ 4は左片足立ち。~ 5は着席。~ 6は走行。~ 7は直立。~ デバイスを使って収集したデータに以上のように数字を与えることでラベリングする。~ #ref(label.png,,40%)~ <ステップ3>~ もし初めて教師用データを作るときはstudy.csvというファイルを作成しておく。この中には何も入っていなくてよい。~ study_connection.pyを動かす。ステップ2でラベリングしたデータをstudy.csvに書き込ませる。~ ~ ここまでの流れは手作業でやっても良い。~ いずれにせよ行動レベルが入った教師用データのstudy.csvを作ればよい。~ <ステップ4>~ 8つの行動分ステップ2と3ができたらstudy.pyを動かす。~ batch_sizeは教師用データを分割して作業を行う時の分割数。データ数が数百万を超えるようなときはbatch_sizeも大きくすることで作業の効率化を図ることができる。~ epochは上記の分割して作業(Adamの最適化アルゴリズム実行)する回数。多ければ多いほど精度は上がるが一定のところで値が収束するのであんまり多くしすぎても意味はない。~ <ステップ5>~ study.pyを動かし終えるとstudyという拡張子のないファイルができる。これは機械学習したことを記憶しているファイルとなり予測はこのファイルを用いて行う。~