佐藤さとる

佐藤さとる

梶研 [エレベーターと歩きの判別]

2023年05月23日

エレベーターと歩きの判別

出席率

スケジュール

短期的な予定

長期的な予定

進捗報告

速度を変えてアニメーション

前回

<iframe width="560" height="315" src="https://www.youtube.com/embed/TBRMeLTtI4c" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

(実際の4倍速になっている)

速度差を再現したけど分からづらかった

データをとる

場所

1号館 5階-7階

取り方

5-6階: 歩く(1段ずつ)

6-7階: 走る(2段ずつ)

速度差をつけた動作のアニメーション

<iframe width="560" height="315" src="https://www.youtube.com/embed/F5FjcU7aoEg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

速度に応じて歩幅も変わっている

=> 加速度を元に歩幅を計算する

二乗平均誤差(RMSE)を出す で使用した式

step = 0.1 * norm - 0.5

加速度を元に歩幅を変えたアニメーション

<iframe width="560" height="315" src="https://www.youtube.com/embed/Y3X-Se6wf5Q" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

いい感じ

進行方向を計算から求める

進行方向の求め方

UnityEngine.Vector3 current = positions[currentIndex];  // 現在の座標  
UnityEngine.Vector3 next = positions[currentIndex + 1];  // 次の座標  

UnityEngine.Vector3 vector = next - current;

// 進行方向
float angleY = MathF.Atan2(vector.x, vector.z) * 180 / Mathf.PI;

進行方向を表示したアニメーション

<iframe width="560" height="315" src="https://www.youtube.com/embed/0tppOrTNaBs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

(移動ツールの矢印を表示している)

いずれ オブジェクト自体を変形させて進行方向をわかりやすくしたい

エレベーターと歩きを判別する

データをとる

場所

1号館 5階-7階

取り方

気圧センサーの値

移動平均フィルターをかけたもの

output_2.png (57.3 kB)

前後40サンプル(0.1s)で移動平均フィルターをかけた

エレベーターと徒歩の差 を出す方法

フーリエ変換する

フーリエ変換とは

異なる波数の波がどれくらい含んでいるかがわかる

=> 徒歩の場合は歩きの振動の周波数が現れる?

フーリエ変換したグラフ

output_3.png (33.5 kB)

0Hz で盛り上がっているが他はほぼ 0

原因

さまざまな音をフーリエ変換したグラフ

fourier-transform.png (79.0 kB)

(ハッカソンに向けて)

=> プログラムは合ってた

0Hz が大きすぎて相対的に小さくなっている?

拡大したグラフ

output_5.png (69.3 kB)

範囲: 0 ~ 800000 => 0 ~ 10

平滑化したもの

output_6.png (45.2 kB)

(気圧グラフを平滑化 -> フーリエ変換 -> 拡大)

前後40サンプル(0.1s)で移動平均フィルターをかけた

特徴的だが、データが1つずつでは確定できない

=> より多くのデータで比較する

余談

プロフィールサイト作り直した

<iframe width="100%" height="500px" src="https://satooru.me"></iframe>

Hugoのテンプレートを作った

ハッカソン

テーマ

紙でスライドを操作したい

内容

紙を破る音、くしゃくしゃにする音などでプレゼンのスライドを操作したい

使用技術

破っているかの判別

fourier-transform.png (79.0 kB)

周波数から紙かどうか取れないか

=> (僕らには) 厳しい

モデルの作成は Teachable Machine を使う

<video controls width="480" alt="画面収録 2023-05-23 8.18.19.mov (2.3 MB)" src="https://esa-storage-tokyo.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/13979/2023/05/23/148142/8692f7fe-bf07-4a87-abb6-770aa881d9f2.mov"></video>

紙を破くと 1.00 に近づく