歩行に関する行動識別AIの使い方
https://qiita.com/tanakadaichi_1989/items/c655d93a1fae56f2be07
・python 64bit版
・python3.7.6
・tensorflow==1.15.5(これをミスしたら動かないので要注意)
1つのパソコンに複数のPythonが入っている場合、今回はPython3.7を用いるのでモジュールをインストールする場合は
py -3.7 -m pip install ...
とし、Pythonファイルを実行する場合は
py -3.7 Server.py
のように先頭にversionを示すように記述しなければならない
足りていないpipを要求された場合、その都度
pip install 〇〇
と入力しpipを入れる
ここでpipのバージョンが古いと警告が出るので更新する
更新の仕方は下記URLを参照
https://sagasite.hatenablog.com/entry/2021/11/02/014339
python -m pip install --upgrade pip
で更新される
このとき、tensorflowだけは
py -3.7 -m pip install tensorflow==1.15.5
と入力してインストールする。もし間違えてしまったとしてもあとからやり直せるので大丈夫。
・sk.py
センシングしたデータを整える。
・kalmanfilter_left.py
左足について拡張カルマンフィルタを行う。
・kalmanfilter_right.py
右足について拡張カルマンフィルタを行う。
・gravity.py
重心を計算する。
・study_preparation.py
study.pyを動かすための準備。
・study.py
ニューラルネットワークを作成し、未知のデータに対して行動を識別させるプログラム。
・study
study.pyで学習したニューラルネットワークを保存したファイル
・study.csv
行動識別の教学用データ。
・predict.py
未知のデータに対し、予測を行う。
以下のプログラムはすべて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は直立。
デバイスを使って収集したデータに以上のように数字を与えることでラベリングする。
<ステップ3>
もし初めて教師用データを作るときはstudy.csvというファイルを作成しておく。この中には何も入っていなくてよい。
study_connection.pyを動かす。ステップ2でラベリングしたデータをstudy.csvに書き込ませる。
<ステップ4>
8つの行動分ステップ2と3ができたらstudy.pyを動かす。
batch_sizeは教師用データを分割して作業を行う時の分割数。データ数が数百万を超えるようなときはbatch_sizeも大きくすることで作業の効率化を図ることができる。
epochは上記の分割して作業(Adamの最適化アルゴリズム実行)する回数。多ければ多いほど精度は上がるが一定のところで値が収束するのであんまり多くしすぎても意味はない。
<ステップ5>
study.pyを動かし終えるとstudyという拡張子のないファイルができる。これは機械学習したことを記憶しているファイルとなり予測はこのファイルを用いて行う。