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

2020.10

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

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

2021.02

[入選]SEIKA AWARD 2021

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

2022.9

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

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

2023.06.18

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

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

2023.08.06

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

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

2023.08.12

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

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

2023.08.26

[最優秀賞]Open hack U 2023 NAGOYA

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

2023.09.02

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

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

2023.10.7

[優秀賞]工科展

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

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.02 - 2023.11

[コメダ珈琲]バイト

ホールスタッフ

2023.09 - 2024.02

[個人]業務委託

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

2023.09 - 2024.02

[個人]業務委託

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

2024.02 - 現在

[pluszero]インターン(バイト)

Webシステム開発

Recent Posts

梶研 [伊達巻成功 & GCN, ST-GCN完全に理解した]

梶研 [伊達巻成功 & GCN, ST-GCN完全に理解した]

3年セミナー:??% []mocopiとお料理センシング [x]シーンとランドマークを決める(~2月上旬) [x]SVMで動作判別する []機械学習を深める [x]機械学習の手法を知る [x]使う手法を決める [x]データセットを探す [x]LSTMしてみる [x]主成分分析してみる [x]クラスタリング []自己相関 []お料理センシング [x]お料理でどんな動作があるかを知る [x]レシピを決める []センシングする []? []論文書く []発表 []BLEビーコンのuuidを書き換えたい [x]通信内容を読み解く []shellコマンドで通信してみる []実装してみる []BookWorm [x]Pasoriとデスクトップアプリを接続する(技術検証) [x]nfc読み込み機能&画面を作る []APIと連携させる [x]管理者画面を作る ~?月シーン検知?をする ~?月論文を書く ~?月論文発表したい 料理中の動作をmocopiを使ってセンシングする。 このデータから最終的に位置推定を行う。 一定の区間でどの動作をしているかを当てる(クラス分類) 料理の手順を元にシーン検知を補正する 例)焼く動作→卵割る動作はおかしい 位置とシーンを相補的に補正する 例)冷蔵庫の前で焼く動作はおかしい 完璧でした 生産者の顔 フライパン買ってください 横幅がもう少し広いフライパンが欲しい 動画からではないサンプルコードが欲しい https//colab.research.google.com/github/machineperceptionroboticsgroup/MPRGDeepLearningLectureNotebook/blob/master/15_gcn/03_action_recognition_ST_GCN.ipynb よく分からないけど学習が進んだ ... とても時間がかかったので10回目で止めた グラフを表示してくれた 斜め(縦と横の軸が同じところ)が濃いほど正確ぽい 追ってみたけど全く分かりませんでした. 仮でランダムに生成する py X=np.random.randn(num_node,in_channels)+1 TODO動作認識ではこの入力値がどう変わるのか py E=[[0,1],[0,2],[0,4],[1,2],[2,3]] reversed_E=[[j,i]for[i,j]inE] new_E=E+reversed_E A=edge2mat(new_E,num_node) $$ [1,1,1,0,1] left[ begin{array}{c} v_1 v_2 v_3 v_4 v_5 end{array} right] =v_1+v_2+v_3+v_5 $$ 隣接している部分だけ取り出すみたいな その結果が右側 (左のXはランダムのため変化しています) ノードによる偏りがある TODOなぜ偏りが良くないのか 平均を使うと多少解消される $$ tilde{mathbf{D}}^{1}tilde{mathbf{A}}mathbf{X} $$ 実際は正規化するべき $$ tilde{mathbf{D}}^{frac{1}{2}}tilde{mathbf{A}}tilde{mathbf{D}}^{frac{1}{2}}mathbf{X} $$ 畳み込みは特定のノードに隣接するノード間でいい感じに計算するぽい だから隣接行列を作って掛け算していた 動作認識において隣接行列は関節間の接続を入れればいいぽい 入力は... 加速度,角速度をうまい感じに入れる? 角速度から骨格の形(関節の角度)を生成して使う? https//disassemblechannel.com/deeplearninggcn/ ↓をみた感じ、人を正面から見た時の各関節の座標を持っているぽい py fig,ax=plt.subplots(2,3,figsize=(16.0,6.0)) foriinrange(6) r=i//3 c=i%3 foreinE ax[r,c].plot([X[i,e[0],0],X[i,e[1],0]],[X[i,e[0],1],X[i,e[1],1]],"c") ax[r,c].scatter(X[i,,0],X[i,,1],s=7) ax[r,c].set_xlim([0,width]) ax[r,c].set_ylim([0,height]) ax[r,c].set_aspect('equal','box') ax[r,c].set_xticks([]) ax[r,c].set_yticks([]) ax[r,c].invert_yaxis() https//zenn.dev/hash_yuki/articles/3b0f782ccffa54 入力値は、腰(ROOT)を原点とした各関節の座標とする? 伊達巻センシングする BVHの1フレームのデータを入力値として、各関節の座標を出力する関数をいい感じに実装する 体の向きをグラフで出せるようにする 体の向きから各関節の座標を修正するようにする 前に作成したBVHをPythonで扱うmcp_persorは大量のデータに対応できない問題に対処する 必要なフレームだけ読み込むみたいな? 下校中 渋谷 下北沢コメダ 弊社オフィス ボザロの聖地 セカオワの聖地 帰宅 いちねんせいたくさん

2024年4月16日

梶研 [伊達巻センシング&モーションデータから骨格比較序章]

梶研 [伊達巻センシング&モーションデータから骨格比較序章]

3年セミナー:??% []mocopiとお料理センシング [x]シーンとランドマークを決める(~2月上旬) [x]SVMで動作判別する []機械学習を深める [x]機械学習の手法を知る [x]使う手法を決める [x]データセットを探す [x]LSTMしてみる [x]主成分分析してみる [x]クラスタリング []自己相関 []お料理センシング [x]お料理でどんな動作があるかを知る [x]レシピを決める []センシングする []? []論文書く []発表 []BLEビーコンのuuidを書き換えたい [x]通信内容を読み解く []shellコマンドで通信してみる []実装してみる []BookWorm [x]Pasoriとデスクトップアプリを接続する(技術検証) [x]nfc読み込み機能&画面を作る []APIと連携させる [x]管理者画面を作る ~?月シーン検知?をする ~?月論文を書く ~?月論文発表したい 料理中の動作をmocopiを使ってセンシングする。 このデータから最終的に位置推定を行う。 一定の区間でどの動作をしているかを当てる(クラス分類) 料理の手順を元にシーン検知を補正する 例)焼く動作→卵割る動作はおかしい 位置とシーンを相補的に補正する 例)冷蔵庫の前で焼く動作はおかしい 卵は4個のところ2個使ってた フードプロセッサーの前に越してた 濾す時にスプーンを使って最後までとる 材料入れてない 全ての定義 時間測ってない アルミの蓋をあらかじめ作っておく ひっくり返すタイミングが早かった 強さ1,時間不明 調味料が少なかった ちゃんと測る 濾しきれなかった もっとフードプロセッサーする 調味料が混ざりきってない 火力が強かった もっと強く巻く 2枚目が巻ききれなかった 調味料を入れ忘れて一回フードプロセッサー後に混ぜた 半分ずつフードプロセッサしていたのに調味料を1回目で全て入れてしまった 反転が少し早くてぐちゃっとしてしまった たくさんセンシングするのに時間掛かるので、BVH形式(mocopiの形式)のデータが欲しい 配布されたデータを使う HIMEHINAめっちゃ配布していてよさそう BVHそのままはあまりない→BlenderでFBXからBVHに変換する FBX形式をそのままimport 骨格がおかしい AutomaticBoneOr...にチェックを入れる export HIERARCHY ROOT__0 { OFFSET0.00.00.0 CHANNELS0 JOINTLeftUpLeg { OFFSET6.0160715.9917870.570599 CHANNELS6XpositionYpositionZpositionXrotationYrotationZrotation JOINTLeftLeg { OFFSET1.47388322.94072725.570656 CHANNELS6XpositionYpositionZpositionXrotationYrotationZrotation JOINTLeftFoot { OFFSET10.05401036.7214628.523235 CHANNELS6XpositionYpositionZpositionXrotationYrotationZrotation JOINTLeftToeBase { OFFSET0.1992652.57799510.048431 CHANNELS6XpositionYpositionZpositionXrotationYrotationZrotation JOINTLeftToeBase_end { OFFSET1.8527844.9288988.940361 CHANNELS6XpositionYpositionZpositionXrotationYrotationZrotation EndSite { OFFSET1.9587405.3570218.667324 } ... } } MOTION Frames13390 FrameTime0.016667 6.0160715.9917860.57060055.94017529.54657510.5906211.47399822.93941525.57191720.6263675.6406134.76024910.05401336.7214558.5232342.1040192.3274664.3353040.1992582.57799810.0484315.1017421.4452680.2021351.8527854.9288918.9403720.0000020.0000010.0000006.0160645.9920600.57069748.5661453.27276310.9616845.76404925.21038822.6609828.6801251.4209350.8433676.93587436.77893811.0177431.5684470.0937721.3300930.3595202.8231039.9778550.0000020.0000010.0000021.7858174.2531829.2939960.0000010.0000000.0000000.0000048.7828910.0000130.4478030.9595840.0128550.0100808.4120710.8293234.2250401.1604452.8751672.01508112.0334263.4282211.0828802.2662849.06121423.72878613.8387027.68719511.92530118.8445611.93148581.7149153.37948089.0224739.67470117.3027292.64857534.0897858.36957752.4217337.1739271.4590490.3282621.4931152.8231607.7222601.4095870.6592190.3830501.1285352.0330401.0736370.8960301.6505510.85089810.73428322.10645450.3984390.0000010.0000020.0000006.7005811.8758330.9513796.60998315.35038624.8071171.5436551.6057130.2516679.92283436.02599794.4190532.17916324.81125155.3091131.7909550.9732560.0679240.0000010.0000020.0000035.2457742.7199823.2283955.99284626.73719063.0289729.63210421.21568635.6732930.9135340.5940590.6730756.59763410.17717618.5275471.1272160.1944160.5762180.0000020.0000000.0000015.8692752.3861932.1591647.50856423.51063546.3988925.93086838.99395678.3182681.7197850.4427000.7391334.02884325.38394245.5744340.0000050.0000010.0000012.8680270.7913581.72917212.7005579.2529879.0389871.6299501.0277840.3830728.61949111.6540117.3312441.3003571.3005870.52916312.81800119.24816310.8221530.9860771.2358011.0783530.0000020.0000000.0000031.16801516.6626452.40667036.54062422.39334414.4791131.3050444.7909441.76290424.03813019.77641322.4443603.73496611.6453033.3246005.3394316.0792423.16716432.08850934.08749018.49830710.03807118.8332716.7556367.7928689.5734100.67957210.83291821.99897959.6927666.7766482.3483771.5048330.1064830.4644880.83370715.3562293.14500821.3172399.7536492.48661013.1542960.0000020.0000030.0000046.1193292.0854462.7434071.1373181.8428834.6773431.7726530.8007981.1140757.3134032.01388413.4060144.5660461.4743128.4446490.0000000.0000020.0000014.3318141.6298754.8906690.5410425.0965906.6884355.0234841.73543615.7423023.2518210.97201810.1057440.0000010.0000010.0000025.1009711.8923523.8992391.4803381.9927335.2282945.4198810.78086614.5109233.4318790.6715489.2422940.0000020.0000020.0000042.8130581.8453720.7319353.3763915.9804321.1801831.8225480.6912530.2455972.6343728.4719111.7156951.5694250.7133980.8309865.51721016.5839954.7286811.6005570.5860660.8702270.0000010.0000010.000004 6.0160705.9917860.57059960.07973013.18533921.4929951.47404922.93947025.57180019.9763096.8538826.87516910.05400936.7214438.5232302.1041062.2478314.3543280.1992602.57798710.0484255.0623901.4340550.2010711.8527844.9288858.9403700.0000040.0000010.0000006.0160635.9920610.57069848.5350993.24888010.9585475.76625325.22876422.6400438.5314401.3955420.8307446.93587836.77893111.0177491.5953500.0859341.3258480.3595252.8231289.9778681.8813790.4470620.1508341.7858164.2531709.2940090.0000040.0000000.0000000.0000048.7828920.0000130.4013570.9470660.0114340.0100808.4120720.8293234.2491751.1486912.8830572.01508012.0334253.4282211.0891132.2378409.06271223.77722413.9588957.65660511.92530318.8445661.93148781.5312713.43160489.0272269.67469817.3027322.64857534.2688908.30535952.4829997.1739241.4590530.3282641.4949872.8286137.7461071.4095850.6592110.3830523.27617741.24402690.5835060.8960321.6505500.85089712.01986123.09341949.3424410.0000000.0000000.0000026.7005821.8758340.9513796.57854215.28287324.7616301.5436611.6057070.2516739.92308336.02609994.4196742.17910224.81138455.3094411.7909630.9732530.0679270.0000000.0000020.0000035.2457732.7199873.2283945.90758026.72794663.1791829.61382621.06611235.4443280.9135330.5940590.6730786.55808210.08858618.3830171.1272160.1944170.5762210.0000000.0000010.0000035.8692742.3861982.1591637.46469123.45042046.4017995.91851338.98514278.2880111.7197840.4427000.7391354.02211625.43676245.5277150.0000020.0000000.0000012.8680220.7913621.72917312.7275459.2988109.0682341.6299531.0277840.3830728.57586811.5877157.2954551.3003531.3005840.52916612.74152419.11334210.7615680.9860731.2358041.0783500.0000030.0000030.0000021.16801316.6626072.40667436.62405822.43942514.4232471.3050444.7909371.76290024.10995519.81651022.4707213.73496611.6453043.3246005.2977466.0836473.13525032.07215434.06740918.44783210.03807218.8332716.7556367.8599369.5254780.75715510.84849122.05354459.7423056.7766462.3483751.5048350.5495340.1903291.18168114.7866003.13384220.5375549.3908512.43633912.6703820.0000030.0000000.0000006.1193262.0854462.7434041.5963251.6763675.1520061.7726560.8007941.1140807.1349831.98616513.0850484.4545651.4470078.2415320.0000030.0000030.0000004.3318121.6298744.8906650.5274345.0929256.7044455.0297371.73861215.7628903.2559490.97366510.1189230.0000010.0000050.0000045.1009731.8923493.8992371.6567351.8106895.2627545.1466160.77466613.7872143.2586670.6512748.7810450.0000030.0000010.0000012.8130601.8453700.7319353.3227975.6560941.2265711.8225480.6912450.2455962.6304648.4587821.7133281.5694230.7133990.8309885.49272716.5075634.7102591.6005580.5860650.8702250.0000040.0000010.000003 ... 軽く調べても動画や画像から骨格推定しているものばかりだった →論文漁ってみる https//waseda.repo.nii.ac.jp/record/76928/files/Rikoshuron_202209_t5120fg36.pdf STGCNとかいう機械学習の手法を使えばいいらしい グラフ畳み込みネットワーク 1.隣接行列を用いてノード特徴を集約 隣接行列グラフ上のとあるノード同士が接続しているかを表す行列.習った気がする ノード特徴分からない.サンプルコードでは仮で乱数を使っていた こんな感じで集約する$$ begin{bmatrix} 1,1,1,0,1 end{bmatrix} {times} begin{bmatrix} v_1 v_2 v_3 v_4 v_5 end{bmatrix} = v_1{times}v_2{times}v_3{times}v_5 $$ 平均を使うと偏りが少なくなる 実際は正規化を行うことが多いらしい 2.畳み込み演算 隣接ノード数では固定の重みを使えない エッジの重みを学習することで代用できる 数式はよく分からん とにかく重要度の低いノードの重みは小さく,重要度の高いノードの重みは大きくなる GCN(GraphConvolionalNetwork)にST(SpatialTemporal,時空間)方向で拡張したもの(?) 多分2次元平面+時間軸でやっている →いずれ3次元空間+時間軸でやる方法も必要? TODO理解する 参考https//zenn.dev/hash_yuki/articles/3b0f782ccffa54 1.軽くGCNする 1.STGCNで行動認識する 1.3次元空間+時間軸で行動認識する? ソロ花見をした ⚠️以下ライブのネタバレを含みます⚠️ センシング失敗した 保存できていなかった 欲しかったデータのイメージ(↓は8月のフェスの加速度)

2024年4月9日

AITガイド

AITガイド

学生課からの依頼により、新入生に向けて教室の場所を知れるアプリを制作しました。 いい感じの学内マップがなかったため自作するところから始めました。OpenStreetMapからPDFでダウンロード、illustratorでカスタマイズ、新14号館等を追加して、SVGで埋め込んでいます。 マップを自作すると経路情報がないため経路情報APIも自作しました。 しかし経路情報自体もないため、簡単に経路情報を生成するサイトも作成しました なんやかんや適当に作成して完成したのがAITガイドです ~~来年度も運用するなら作り直します~~ Next.js SCSSModules https//aitguide.sysken.net/ https//github.com/SystemEngineeringTeam/aitguide https//github.com/SatooRu65536/generateroadconnection

2024年4月5日

Products

Active Projects