SatooRu's Profile

全ての記事梶研の進捗日常の記録制作物一覧

梶研 [お料理センシング & 主成分分析 & BookWorm]

2024年3月19日

thumbnail

お料理センシング & 主成分分析 & BookWorm

出席率

  • 3年セミナー:??%

スケジュール

短期的な予定

  • mocopi と お料理センシング
    • シーンとランドマークを決める(~2月上旬)
    • SVM で動作判別する
    • 機械学習を深める
      • 機械学習の手法を知る
      • 使う手法を決める
      • データセットを探す
      • LSTM
        • 機械学習(LSTM)する
        • 精度を上げる
        • ?
      • 主成分分析
        • 主成分分析する
        • 精度を上げる
        • ?
      • ?
    • お料理センシング
      • お料理でどんな動作があるかを知る
      • データをとる?
      • ?
    • 論文書く
    • 発表
  • BLEビーコンのuuidを書き換えたい
    • 通信内容を読み解く
    • shellコマンドで通信してみる
    • 実装してみる
  • BookWorm
    • Pasori と デスクトップアプリを接続する(技術検証)
    • nfc読み込み機能 & 画面を作る
    • API と連携させる
    • 管理者画面を作る

長期的な予定

  • ~?月 シーン検知?をする
  • ~?月 論文を書く
  • ~?月 論文発表したい

進捗報告

お料理でどんな動作があるかを知る

fumaさんと軽く話した

条件

  • そんなに難しくないもの
    • 初心者です
  • 工程が多いもの
    • 位置推定をするため移動がたくさんほしい
  • 飽きないもの
    • これから何度もやるため
  • 材料費が高すぎないもの
    • 材料費は研究費に含まれないとか

→ 太巻き

  • いろんな材料が必要
    • 簡単な工程がいっぱい

主成分分析

素のデータ

ec18218f-3b69-475c-bdbe-e8f4bff0b5d2.png (263.3 kB)

各主成分を表示

第一主成分 と 第二主成分
2d155fbc-1e45-4980-bc95-a99ef3e52c21.png (133.4 kB)

第二主成分 と 第三主成分
34e94903-96a9-4eeb-994d-dbb00eed5f41.png (134.7 kB)

第一主成分 と 第三主成分
ba99815f-83f6-46e1-a8f5-7c85ba5c4fdf.png (146.2 kB)

主成分たち

1e8cc501-d96a-46a2-bb5c-5f7cde3124ab.png (251.6 kB)

あんまり別れきってない
一連の動作ではなく1フレームずつの加速度でやっているため、
0, 0 あたりに集まるのは当然
→ ウィンドウに分けて標準偏差などの特徴量でやる

一旦ペンギンのデータでやってみる
https://archive.ics.uci.edu/dataset/690/palmer+penguins-3

素のデータ

image.png (137.1 kB)

主成分同士の比較

image.png (125.8 kB)

コード

ライブラリに任せっきりのため、何しているか理解する必要がある

# 主成分分析の実行
pca = PCA()
pca.fit(dfs)
# データを主成分空間に写像
feature = pca.transform(dfs)

# 主成分得点
pd.DataFrame(
    feature, columns=["PC{}".format(x + 1) for x in range(len(dfs.columns))]
).head()

累積寄与率

第何主成分まででどのくらいの情報を説明できるかという指標
↓ 第二主成分までで十分そう
image.png (26.8 kB)

これから

  • センシングを始めようかと思ってます
    • 必要な時にまとめて取るのは大変なので週1程度でやりたい
  • 機械学習を深める
    • LSTM
    • 主成分分析

BookWorm

管理者画面を作った
API はまだなので仮

バイトで学んだことを活かして綺麗に書けた

1import { atom } from 'jotai'; 2 3export interface Item { 4 id: number; 5 title: string; 6 idm: string; 7 type: string; 8} 9 10const fetchItem = async (id: Item['id']): Promise<Item> => { 11 // 仮 12 await new Promise((resolve) => setTimeout(resolve, 1000)); 13 14 return { 15 id, 16 idm: `idm-${id}`, 17 type: `type-${id}`, 18 title: `title-${id}`, 19 }; 20}; 21 22const itemAtom = atom<Item | undefined>(undefined); 23 24export const selectItemAtom = atom( 25 (get) => get(itemAtom), 26 async (_get, set, id: Item['id']) => { 27 set(itemAtom, undefined); 28 const item = await fetchItem(id); 29 set(itemAtom, item); 30 } 31);
1import { itemAtomLoadable } from '@/store/items'; 2import { useAtomValue } from 'jotai'; 3 4const useItems = () => { 5 return useAtomValue(itemAtomLoadable); 6}; 7 8export default useItems;
1const AdminBody = () => { 2 const items = useItems(); 3 4 return ( 5 <PageLayout title="管理画面"> 6 <AdminDialog /> 7 8 {items.state === 'hasData' && <AdminTable items={items.data} />} 9 {items.state === 'loading' && <Loading dark />} 10 </PageLayout> 11 ); 12};

BookWorm ラズパイをセットアップした

  • パスワードの設定
  • VNCの設定
  • Node のインストール
    • 直接 node があったり nvm でバージョン管理してたり
    • nvm がうまく動かなかったり
  • Rust のインストール

TODO

  • ラズパイのセットアップ
    • 初期化しようかと思ってます(要相談)
  • APIとの連携

進路関係

就活たのしそうだったので逆求人登録してみた
スクリーンショット 2024-03-17 20.58.26.png (110.6 kB)
何を聞けるのか、面談してみようと思います
企業の選択肢を広げれたら嬉しい
今の所 mixi が気になってる

余談

徹夜カラオケした

なんか徹夜カラオケした
IMG_6261.JPG (4.9 MB)
IMG_6269.JPG (2.7 MB)

IPSJONE みた

IMG_6297.JPG (3.4 MB)

留学のお迎えにいった

IMG_6311.JPG (4.4 MB)

chrome の位置情報が狂ってます

学生課の依頼で作った愛工大案内するやつ
完成したのにchromeだけ位置情報がずれてしまった
→ GPS に加えて WiFi(SSID) も使って補正をしていた(WiFi 位置推定) :参考(Google) 参考
image.png (364.5 kB)