SatooRu's Profile

ペンギンを愛でよ。

背景

佐藤 さとる

名古屋の大学生。 プログラミングが好きで主にweb開発をしています。 フロントエンドが中心ですが、必要に応じてバックエンドもやります。 webに集中するためにモバイルアプリ開発は諦めました。 多くの人に使ってもらえるサービスを作ろうと画策中です。 夢はペンギンと同居すること。 お世話は面倒なので、いずれペンギン型ロボットが誕生することを願っています。 本名ではない。

HTML/CSS

JavaScript

TypeScript

Python

Skills

HTML/CSS
SCSSがめっちゃ好き。CSS Modules とは仲良いです
JavaScript/TypeScript
一番好きな言語でフロントとバック両方で使ってます。型パズルはじめました。
Python
センシングしてこねこねしてグラフを生成するために使いまくってます。きらい
Rust
特に目的はないけど、楽しそうだから勉強中。
Ruby
お仕事で触ってるけどきらい。if修飾子だけは好き
C/C#/PHP/Fortran...
稀に触ります。授業とか Unity とか他大学の研究とか...
web開発
Next.js をメインにたまに Svelte, Vue, Qwik を触ってみたりしてる
センシング
センシング用Andoid端末でいろんな動作をセンシングしてる。一番のお気に入りは Dragon Night のフェスセンシング
illustrator
ベジェ曲線描くのが得意です(適当)最近はロゴとサイトイメージなどを制作するのに使ってます
After Effects
モーショングラフィックス作ってました。現在はデモ動画編集用。
ペンギン
幼い頃からすき。アデリーペンギンが一番すきだが、フンボルト属のペン達も結構すき。年パスは必需品。
城・歴史
石垣がすき。城・古戦場・古墳を巡ってる。何気に城郭検定2級もってます。(1級は無理)

Awards

2023.10.7

[優秀賞]工科展

Wi-Fiを使った混雑を知れるアプリ

2023.09.02

[企業賞]技育CAMP アドバンス vol.3

紙を破いてPCを操作するアプリ

2023.08.26

[最優秀賞]Open hack U 2023 NAGOYA

テキストで簡単にアウトプット, 動画で気軽にインプットできるサービス

2023.08.12

[決勝進出]技育展 中部ブロック予選

知っている単語から知らない単語を知れるアプリ

2023.08.06

[企業賞]技育CAMP マンスリーハッカソン vol.7

知っている単語から知らない単語を知れるアプリ

2023.06.18

[最優秀賞]技育CAMP キャラバンハッカソン vol.2

紙を破いてPCを操作するアプリ

2022.9

[一般公開]高校生エンジニア体験

aiboの可愛い仕草をみながらすごろくをするアプリ

2021.02

[入選]SEIKA AWARD 2021

なんの特徴もない平凡な日常を表現した動画

2020.10

[佳作]パソコン甲子園2020 いちまいの絵CG部門

食の裏に隠れた世界を表現したイラスト

Experiences

名電高校入学

Meiden H.S.

2020.04 - 2023.03, 愛知県名古屋市,

情報科学科に入学した。

情報デザイン部 入部

AMIDC

2020.07 - 2022.09, 名電高校224教室,

情報デザイン部に入部。

メカニカルアーツ部 参加

メカ部

2020.10 - 2023.03, 名電高校淳和記念館,

メカニカルアーツ部に参加。(実質掛け持ち)

情報システム部 入部

MISC

2021.11 - 2023.03, 名電高校415教室,

情報システム(元システムコンピューター)部に転部。なんか部長なってた

愛知工業大学 入学

AIT

2023.04 - 現在, 愛知県豊田市,

愛知工業大学 情報科学科コンピューターシステム専攻 に入学

梶研究室に参加

梶研

2023.04 - 現在, 愛工大4号館別館 108,

梶研究室に参加

システム工学研究会 入部

SET

2023.04 - 現在, 愛工大4号館別館 310,

システム工学研究会に入部

Works

2023.09 - 現在

[個人]業務委託

印刷会社のwebシステム開発

2023.09 - 現在

[個人]業務委託

ウェブメディアを管理するwebシステム開発

Recent Posts

梶研 [mocopiとaction slam(SVM)]

梶研 [mocopiとaction slam(SVM)]

3年セミナー:??% []mocopiとactionslam2 [x]シーンとランドマークを決める(~2月上旬) [x]SVMで動作判別する []? []論文書く []発表 ~?月シーン検知?をする ~?月論文を書く ~?月論文発表したい 梶研でいろんな動作をする中で冷蔵庫を開け閉めする動作をランドマークとする(仮) HASC2010corpusを用いた被験者数と人間行動認識率の相関. https//nagoya.repo.nii.ac.jp/record/13543/files/dt_hiro.pdf >認識の際には,平均,エネルギー,エントロピー,相関が特徴量として使用されている >>[2.関連研究の紹介(p.2)] >>Bao,L.andIntille,S.S.ActivityRecognitionfromUserAnnotatedAccelerationData.ProcofPERVASIVE2004,pp.117,2004. >認識の際には,特徴量として,窓幅5.12秒毎の平均,標準偏差,エネルギー,相関が用いられており >>[2.関連研究の紹介(p.3)] >>Ravi,N.,Dandekar,N.,Mysore,P.andLittman,L.M.ActivityRecognitionFromAccelerometerData.ProcofIAAI,pp.15411546,2005. >ノルムを計算し,得られた波形の平均と分散を特徴量として抽出 >加速度のノルムに対して,平均,分散,周波数帯域毎のエネルギー,零点交差率の7つの特徴量を用いた行動認識に関する評価実験も行った >加速度の積分値を8つ目の特徴量とした場合の評価実験を行った >>[4.2特徴量] 行動認識の特徴量 平均 分散 相関 エネルギー ? エントロピー 情報源がどれだけ情報を出しているか https//www.mnc.tohou.ac.jp/vlab/yobology/entropy/entropy.htm 零点交差率 一定区間内で0を横切る頻度 加速度の積分値 窓幅は3秒とする py bvhp=BVHparser('./logs/refrigerator.bvh') df=bvhp.get_motion_df() defcalculate_features(window) features=[] median_time=window['time'].mean() forjointincolumns X_rotate=window[joint+'_Xrotation'].values Y_rotate=window[joint+'_Yrotation'].values Z_rotate=window[joint+'_Zrotation'].values mean_value=np.mean([X_rotate,Y_rotate,Z_rotate]) variance_value=np.var([X_rotate,Y_rotate,Z_rotate]) correlation_value=np.corrcoef([X_rotate,Y_rotate,Z_rotate])[0,1] zero_crossings=np.sum(np.diff(np.signbit([X_rotate,Y_rotate,Z_rotate]))!=0) energy_value=np.sum(np.square([X_rotate,Y_rotate,Z_rotate])) features.extend([mean_value,variance_value,correlation_value,zero_crossings,energy_value]) return[median_time]+features window_size=3 window_stride=1 columns=[jforjinbvhp.get_joints()ifnotj.startswith('_')] windows=[df.iloc[ii+window_size]foriinrange(0,len(df),window_stride)ifi+window_size<=len(df)] result_columns=['time']+[f'{joint}_{metric}'forjointincolumnsformetricin['mean','var','corr','zero_cross','energy']] result_data=[calculate_features(window)forwindowinwindows] result_df=pd.DataFrame(result_data,columns=result_columns) labels=[ {'title''冷蔵庫を開ける','num'1,'times'[[10,12],[33,35],[39,41],[55,57],[77.5,79.5],[104,106],[133,135]]}, {'title''冷蔵庫を閉める','num'2,'times'[[14,16],[36,38],[42,45],[58,60],[82,84],[106.5,108.5],[135,137]]}, ] result_df['state']=0 forlabelinlabels fortime_rangeinlabel['times'] start_time,end_time=time_range result_df.loc[(result_df['time']>=start_time)&(result_df['time']<=end_time),'state']=label['num'] result_df.to_csv('./logs/refrigerator_with_state.csv',index=False) py df=pd.read_csv('./logs/refrigerator_with_state.csv') data=df.drop(['state','time'],axis=1).fillna(0) target=df['state'] clf=svm.SVC(gamma="scale") clf.fit(data,target) py test_data=df.drop(['time','state'],axis=1).fillna(0) ans=clf.predict(test_data) print(sum(ans==df['state'])/len(df['state'])) >正答率0.9063168562098862(約90.6%) ラベル付けが雑かった? 大まかな1s単位で付けた >背景は手動でラベル付けした結果 > 青冷蔵庫を開ける > 黄冷蔵庫を閉める > >0その他 >1冷蔵庫を開ける >2冷蔵庫を閉める >正答率0.8908906654656007(約89.1%) 下がった 1.動作を始める瞬間から終える瞬間までなるべく広めに取ったのが悪い? 確実に動作している 2.ウィンドウサイズが大きい? 1回の開ける・閉めるは1~2sに対してウィンドウは3s 3.特徴量はこれだけでいいのか? 4.データが少ない? >正答率0.9225312464812521(約92.3%) 正答率が上がったのはそもそも正解部分が少ないからだと思われる 開け閉め中もその他に含まれたり、含まれなかったりするため良くない window_size=1 window_size=2 window_size=3 window_size=4 window_size=5 window_size=10 変わらない →60fpsだから大差ない window_size=30(0.5s) 細切れの部分が減った データを沢山取ってやってみる 技術力の問題でNext.jsでブログを作れなかったためHUGOで別サイトにしていた(半年前) プロフィールとブログを統合した! カスタマイズ性が上がり、esaから記事を追加できるようになった 画像を全てwebp&幅820pxに変換し、パフォーマンスが向上した

2024年1月27日

satooru.me[最新版]

satooru.me[最新版]

プロフィールサイトをアップデートしました プロフィールをNext.js,ブログをHugoと使い分けていたのを、全てNext.jsで実装しました というサービスをCMSとしてSSGで運用しています Next.js(AppRouter) mantine graymatter CSSModules(SASS) CloudflarePages GitHubAPI

2024年1月24日

梶研 [mocopi と action slam2]

梶研 [mocopi と action slam2]

3年セミナー:??% []mocopiとactionslam2 []シーンとランドマークを決める(~2月上旬) []? []論文書く []発表 ~?月シーン検知?をする ~?月論文を書く ~?月論文発表したい 一旦ラベリングを楽にする関数を作った py defplot_joint(bvhp,joint,xlim=(0,0),ylim=(0,0),figsize=(12,3),labels=None,is_position=False) df=bvhp.get_joint_motion_df(joint,mode='relative') fig=plt.figure(figsize=figsize) gs=GridSpec(1,2,width_ratios=[11,1],wspace=0.5) ax1=fig.add_subplot(gs[0]) ax2=fig.add_subplot(gs[1]) joint_name=to_joint_name(joint) ax1.set_title(f'{joint_name}の位置'ifis_positionelsef'{joint_name}の回転') ax1.set_xlabel('time[s]') ax1.set_ylabel('rotation[deg]'ifis_positionelse'position[mm]') ax1.grid(color='k',linestyle='dotted',linewidth=1,alpha=0.5) ifxlim[0]<xlim[1] ax1.set_xlim(xlim[0],xlim[1]) ifylim[0]<ylim[1] ax1.set_ylim(ylim[0],ylim[1]) r_heads=['Xrotation','Yrotation','Zrotation'] p_heads=['Xposition','Yposition','Zposition'] heads=p_headsifis_positionelser_heads forheadinheads ax1.plot(df['time'],df[head],label=head) colors=['mediumblue','orange','green','red','purple','gray','olive','cyan'] iflabels fori,linenumerate(labels) color=colors[i%len(colors)] ax2.scatter([],[],color=color,label=l) fors,einlabels[l] ax1.axvspan(s,e,color=color,alpha=0.2) ax1.legend() legend=ax2.legend() ax2.axis('off') forhandleinlegend.legend_handles handle.set_alpha(0.5) plt.show() py幸せ.py bvhp=BVHparser('./logs/1.bvh') labels1={ '本を取る'[ [20,25], [35,40], ], '本を置く'[ [29,32], ], ... } forjinbvhp.get_joints() ifj[0]=='_' continue plot_joint(bvhp,j,(0,150),(0,0),labels=labels1) 項目が多く、ランドマークの探し方がわからない 全ての項目を使うのは不可能? 主に使ったライブラリ(フレームワーク) フロント Next.js LeafLet バック Hono CloudflareD1 スクレイピング BeautifulSoup TypstTexよりも書きやすく軽く環境構築しやすい組版処理システム マークダウンxCSSみたいな感覚でかけて幸せ

2024年1月23日

Products

Active Projects