Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
キノコタケノコ除けたこの機 DXIインフルエンサ2024Stage2
Search
Jun Shimura
December 21, 2024
Programming
0
35
キノコタケノコ除けたこの機 DXIインフルエンサ2024Stage2
DXIインフルエンサ2024Stage2 Jetson課題
Jun Shimura
December 21, 2024
Tweet
Share
More Decks by Jun Shimura
See All by Jun Shimura
[超初心者向け]Unityを完璧に理解し自在に使いこなす
junshimura
0
130
Other Decks in Programming
See All in Programming
ファインチューニングせずメインコンペを解く方法
pokutuna
0
180
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
100
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
810
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
3
1.9k
KagglerがMixSeekを触ってみた
morim
0
300
Java 21/25 Virtual Threads 소개
debop
0
270
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
130
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
270
AI 開発合宿を通して得た学び
niftycorp
PRO
0
170
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
560
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
690
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
170
Visualization
eitanlees
150
17k
A Tale of Four Properties
chriscoyier
163
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
BBQ
matthewcrist
89
10k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
330
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
270
Transcript
キノコタケノコ除けたこの機 きのこたけのこのけたこのき
ここまでに学んだこと
きのこたけのこに替 えたモデル なんでも きのこorかたけのこ に認識する
発見:「機械学習モデルは実直でバカ」 • 対象物を区切る能力には長けている • とにかく何かに識別する • どう何を分析するかはブラックボックス どうなっているかを観察するのは面白い
何を作るか
何を作るか検討 • 順当にやるなら機械学習の精度の改善 ◦ 教師ありなので高精度化∝データ量 ◦ おそらくほかの参加者の方のデフォルト • 機械学習を活かしたものが適切 どうなっているかを観察するのは面白い
これをコンセプトに据える
面白いからゲームにしよう
コンセプト「AIをハックする」 • AIがどう考えるかを探る • イテレーション ◦ AIの動作を予想 ◦ 当てる ◦
その結果で予想する • うまく当てると嬉しい達成感 • 当たらないと悔しい、もう一度遊びたくなる ゲームは基本的にプレイヤーに行動してもらい 褒めて達成感を与えるのが基本です
開発の要件 • 2週間 ◦ 実作業の時間は限定的 ◦ わからないところに手を出すと詰む恐れ • Python on
Ubuntu in JetsonおよびAWS ◦ この2.5ヶ月の知見のみ ◦ 経験した言語と相容れない ◦ 大概がよくわかってない わからないところは手探りでやっつける
計画を立てる • 基本スケジュール ◦ プロトタイピング3日 ◦ 実装5日 ◦ 調整1週間 •
開発環境 ◦ 自前のMac・Windowsで仮想環境を作ったのちにJetsonで動作確認 ◦ めんどくさいところは汎用AIにコードを書かせる AIを学ぶんだから実験すべきと考えた • ゲーム内容 ◦ 作ったモデルで「きのこ・たけのこ」を判定し点数化する ◦ 判定が不安定なことを面白がる内容にする
メカニクスをブレイクダウン 1. 初期化 a. カメラ認識 b. モデルデータ読み込み c. 点数初期化 2.
ゲームループ(5秒×6回のイテレーション) a. キャプチャ画像表示 b. カウントダウン c. 撮影画像から判別 d. 点数化 3. 結果表示
点数の仕様 • 加点要素 ◦ きのこであること(出にくいから) ◦ 面積が大きい ◦ 認識した個数が多い ◦
信頼度 ▪ 100%に近似 ▪ 信頼度が50%に近似 →高いだけだとハッキング要素がない、下手でも高得点
初期バージョン とりあえず点数を出す
GUI追加 実験的に マルチウィンドウ
面白くはない • 基本の仕組みだけでエモーショナルな部分が出来ていない • 一応、動くだけでどういう感覚になるか試すがピンとこない • 1回しかない実習の土曜日にやってみたが隣人の反応が薄い プレイヤーの反応を考えて仕上げる
! 環境が合ってなかった • Macに仮想環境を構築したがUbuntuのバージョンが違っていた • GUIウィンドウがMacで出ない • WindowsではGUIが出てどちらがターゲットに合ってるか判らない • 実機で実行したGUIは(細かく調べてないが)もたつく
→スレッドのせいかも知れない →本来のIoTエッジでGUI不要なので期待無用 実機で試して仕上げることにする
エモーショナル成分の実装 点数が出るところのワクワクする時間を与える • 点数の色分け ◦ 点数を四分位数で色分けする ◦ CUIウィンドウとキャプチャで色を併せて表示する • 認識結果の表示に時間をかける
◦ Waitを入れて一つ一つを順番に出す • 達成感を出す ◦ 最終結果で実績評価 ▪ 最大点数、最小点数、最小面積、最大面積、認識数 を出す ◦ そこまでの認識結果を再度、ひとつずつ一挙に表示する • 最終結果を出すところにwaitを入れる ゲームは基本的にプレイヤ ーに行動してもらい 褒めて達成感を与えるのが 基本です
最終版 色付けとタイミング 実機でデモします
応用 • 遊び方の応用 ◦ それぞれ手ごまとしてキノコ・タケノコを持って対決する ◦ 手描きの絵をだけで高得点を狙う • モデルデータを入れ替え ◦
自前のデータに入れ替え ◦ 他のモデルでラベルの部分のコードを変え、他の識別するゲームにすることは容易 • コードの改造による展望 ◦ 画像を取得中にモザイク表示、識別された物体をクリックすると答え合わせ、早くクリック するほうが点数が高い(これをやる予定だったが時間足らず) ◦ ハイスコアのランキングをサーバで管理する ◦ 単体アプリとしてビルドしスマホゲームにする
ふりかえり • 進歩が指数関数的に速い これは理論的に納得 • 追いながら理解するのは無謀 • やりたいことをやるが好い ◦ トップランナーになる
◦ 産み落とされたものを拾って育てる • 自分の置かれたレイヤーを確認したら安心