梶研 [お料理センシング & 主成分分析 & BookWorm]
2024年3月19日

お料理センシング & 主成分分析 & BookWorm
出席率
- 3年セミナー:??%
スケジュール
短期的な予定
- mocopi と お料理センシング
- シーンとランドマークを決める(~2月上旬)
- SVM で動作判別する
- 機械学習を深める
- 機械学習の手法を知る
- 使う手法を決める
- データセットを探す
- LSTM
- 機械学習(LSTM)する
- 精度を上げる
- ?
- 主成分分析
- 主成分分析する
- 精度を上げる
- ?
- ?
- お料理センシング
- お料理でどんな動作があるかを知る
- データをとる?
- ?
- 論文書く
- 発表
- BLEビーコンのuuidを書き換えたい
- 通信内容を読み解く
- shellコマンドで通信してみる
- 実装してみる
- BookWorm
- Pasori と デスクトップアプリを接続する(技術検証)
- nfc読み込み機能 & 画面を作る
- API と連携させる
- 管理者画面を作る
長期的な予定
- ~?月 シーン検知?をする
- ~?月 論文を書く
- ~?月 論文発表したい
進捗報告
お料理でどんな動作があるかを知る
fumaさんと軽く話した
条件
- そんなに難しくないもの
- 初心者です
- 工程が多いもの
- 位置推定をするため移動がたくさんほしい
- 飽きないもの
- これから何度もやるため
- 材料費が高すぎないもの
- 材料費は研究費に含まれないとか
→ 太巻き
- いろんな材料が必要
- 簡単な工程がいっぱい
主成分分析
素のデータ
各主成分を表示
第一主成分 と 第二主成分

第二主成分 と 第三主成分

第一主成分 と 第三主成分

主成分たち
あんまり別れきってない
一連の動作ではなく1フレームずつの加速度でやっているため、
0, 0 あたりに集まるのは当然
→ ウィンドウに分けて標準偏差などの特徴量でやる
一旦ペンギンのデータでやってみる
https://archive.ics.uci.edu/dataset/690/palmer+penguins-3
素のデータ
主成分同士の比較
コード
ライブラリに任せっきりのため、何しているか理解する必要がある
# 主成分分析の実行
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()
累積寄与率
第何主成分まででどのくらいの情報を説明できるかという指標
↓ 第二主成分までで十分そう

これから
- センシングを始めようかと思ってます
- 必要な時にまとめて取るのは大変なので週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との連携
進路関係
就活たのしそうだったので逆求人登録してみた

何を聞けるのか、面談してみようと思います
企業の選択肢を広げれたら嬉しい
今の所 mixi が気になってる
余談
徹夜カラオケした
なんか徹夜カラオケした
IPSJONE みた
留学のお迎えにいった
chrome の位置情報が狂ってます
学生課の依頼で作った愛工大案内するやつ
完成したのにchromeだけ位置情報がずれてしまった
→ GPS に加えて WiFi(SSID) も使って補正をしていた(WiFi 位置推定) :参考(Google) 参考
