Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Poke_Battle_Logger の紹介: リモポケ学会20230714
Search
Yusuke Fukasawa
July 14, 2023
Research
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Poke_Battle_Logger の紹介: リモポケ学会20230714
https://twitter.com/rimopoke/status/1679815756572401664
のスライドです
Yusuke Fukasawa
July 14, 2023
More Decks by Yusuke Fukasawa
See All by Yusuke Fukasawa
ポケモン対戦を自動で 記録する PCBL(Pokémon Champions Battle Logger) の紹介
fufufukakaka
1
1.1k
機械学習で作った ポケモン対戦bot で 遊ぼう!
fufufukakaka
0
450
LLMアプリケーションの透明性について
fufufukakaka
0
270
やるべきときにMLをやる AIエージェント開発
fufufukakaka
2
1.6k
社内データ分析AIエージェントを できるだけ使いやすくする工夫
fufufukakaka
1
1.1k
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
2.9k
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
3k
対戦におけるポケモンの “意味変化”を追う_リモートポケモン学会
fufufukakaka
0
340
機械学習を用いたポケモン対戦選出予測
fufufukakaka
2
3k
Other Decks in Research
See All in Research
IA for theory
gpeyre
1
410
2026年版中小企業白書・小規模企業白書の概要
ozekinote
0
220
Vector Map as Language: Toward Unified Remote Sensing Vector Mapping
satai
3
270
EIRによる不正端末のブロッキング 5G時代におけるデバイス識別と不正対策の進化
stellarcraft
0
130
最先端NLP勉強会2026 論文紹介:Reasoning with Sampling: Your Base Model is Smarter Than You Think (ICLR 2026 paper)
kogoro
4
610
VRID: View-Invariant Representation through Dual-Axis Transformation for Cross-iew Pose Estimation
satai
3
100
最先端NLP 2026 論文紹介: Wait, Wait, Wait... Why Do Reasoning Models Loop? / SNLP Paper Review: Wait, Wait, Wait... Why Do Reasoning Models Loop?
tkng
0
230
全国町字単位空き家率推定データver1.0データ仕様
microbaseinc
0
240
JPA2026_NetworkTutorial_JunKashihara
junkashihara
0
150
コーディングエージェントとABNを再考
hf149
2
860
PHTalks Bengaluru - SSRF When All Else Fails
dk999
0
1.1k
MIRU2026 チュートリアル講演2:三次元データ処理の動向
nnchiba
6
4.9k
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
220
Agile that works and the tools we love
rasmusluckow
331
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Producing Creativity
orderedlist
PRO
348
41k
A Soul's Torment
seathinner
7
3.6k
The Spectacular Lies of Maps
axbom
PRO
1
990
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Odyssey Design
rkendrick25
PRO
2
800
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
280
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Transcript
機械学習で ポケモン対戦動画を解析する Poke Battle Logger 2023/07/14 リモポケ学会 fufufukakaka(@fukkaa1225)
自己紹介 • fufufukakaka, fu3ka3 (ふか) • 機械学習エンジニア ◦ 自然言語処理・推薦をはじめとして全般 •
ポケモン歴 ◦ 赤緑からDP ◦ XYから復帰して対戦もちょっとたしなむように(1シーズンだけ やる程度) ◦ SVは継続して対戦を楽しめている。レートは1700弱
アジェンダ • ポケモンのランクマッチについて • Poke_Battle_Logger: なぜ対戦動画を解析したいのか • Poke_Battle_Logger を構成するコンポーネント •
Web App の紹介 • 得られたデータからの分析結果 ◦ 勝敗率 ◦ HOME の Stats とどれくらい差があるのか • 今後の展望
アジェンダ • ポケモンのランクマッチについて • Poke_Battle_Logger: なぜ対戦動画を解析したいのか • Poke_Battle_Logger を構成するコンポーネント •
Web App の紹介 • 得られたデータからの分析結果 ◦ 勝敗率 ◦ HOME の Stats とどれくらい差があるのか • 今後の展望
ポケモンのランクマッチ 知っている方・やっている方 🙋🙋🙋
ポケモンの対戦 → 2人同時手番非対称情報ゲーム
ゲーム理論的な観点から見るポケモン対戦 • 2人 → シングルなら大体2人 • 同時手番 → 2人とも同時に次の手を選択する •
非対称情報 → 相手の技構成は見えない。相手の努力値(ス テータス振り)や持ち物も見えない。 • かつ、扱えるキャラ(1000体)・技の数も山ほどある • つまり非常に理論的解析が難しいゲーム ◦ 囲碁・将棋よりも探索空間は広い
ポケモン対戦: 例 VS
ポケモン対戦: 例 VS 持ち物: こだわり鉢巻 AS252B4、意地っ張り つららおとし 聖なる剣 不意打ち 噛み砕く
持ち物: ??? 努力値・性格: ??? ??? ??? ??? ??? 氷・悪
ポケモン対戦: 例(同速の場合) 自分\相手 つらら おとし せいなるつ るぎ ふいうち かみくだく つらら
おとし (40,40) (40,100) (40,30) (40,40) せいなる つるぎ (100,0) (100,0) (100,30) (100,0) ふいうち (30,40) (30,100) (30,30) (30,40) かみくだく (40,40) (40,100) (40,30) (40,40) 自分が先手を取れる 場合(確率: 0.5)
ポケモン対戦: テラスタル • SV からの要素 • 対戦で一匹にだけ使える • タイプを事前に決めておいたタイプに変更 できる
◦ 18タイプどれにでも変更できる ポケモン公式サイト ポケモンたちが宝石のように光り輝く「テラスタル」 https://www.pokemon.co.jp/ex/sv/ja/features/220803_06/
ポケモン対戦: 例(こちらが素早さ が上で、かつテラスタルがお互い 残っている場合) 2パターンのテラスタルの み考察する 1. ゴースト 2. フェアリー
自分はゴーストにテラスで きるとする
ポケモン対戦: 例(こちらが素早さ が上で、かつテラスタルがお互い 残っている場合) 自分\相手 ゴーストテラス (確率0.45) フェアリー テラス (確率0.45)
テラスしない (確率0.1) ゴースト テラス ? ? ? テラス しない ? ? せいなるつるぎ\ ふいうち 見積もった確率を元に 相手のテラスに対する混 合戦略を求めます
1vs1 の解析で既にパンクしそう
ポケモン対戦 • 【悲報】ゲーム理論的な解析解を求めるのは不可能
ポケモン対戦 • 【悲報】ゲーム理論的な解析解を求めるのはほぼ不可能 • 解析できたとしても、1vs1の対面を突き詰めることしかできない
ポケモン対戦 • 【悲報】ゲーム理論的な解析解を求めるのはほぼ不可能 • 解析できたとしても、1vs1の対面を突き詰めることしかできない • 他にも解析したい場面↓ ◦ 3匹の選出順番 ◦
テラスタルタイミング ◦ 交代 ◦ etc
ポケモン対戦 • 【悲報】ゲーム理論的な解析解を求めるのはほぼ不可能 • 解析できたとしても、1vs1の対面を突き詰めることしかできない • 他にも解析したい場面↓ ◦ 3匹の選出順番 ◦
テラスタルタイミング ◦ 交代 ◦ etc → データを集めて立ち向かう
対戦を記録して振り返りたい → 動画を撮ろう AVerMedia 2Plus を使っています avermedia 公式サイト https://www.avermedia.co.jp/product-detail/GC513
None
…
動画を見返すよりも 効率よく振り返りたい 勝った試合だけは 何度も見ます
Poke Battle 📹 Logger
Poke Battle Logger の概要
Poke Battle Logger の概要 • 動画から対戦の統計を取り出す動画解析バッチ ◦ 6vs6 の見せ合いでどんなポケモンを出したか ◦
実際に選んだ 3匹はなんだったのか ◦ 先発は誰だったのか ◦ どのポケモン同士が対面したのか ◦ どのポケモンで相手のポケモンを倒した(倒された)のか
Poke Battle Logger の概要 • 動画から対戦の統計を取り出す動画解析バッチ ◦ 6vs6 の見せ合いでどんなポケモンを出したか ◦
実際に選んだ 3匹はなんだったのか ◦ 先発は誰だったのか ◦ どのポケモン同士が対面したのか ◦ どのポケモンで相手のポケモンを倒した(倒された)のか • それらを集計・表示する web application の開発
アジェンダ • ポケモンのランクマッチについて • Poke_Battle_Logger: なぜ対戦動画を解析したいのか • Poke_Battle_Logger を構成するコンポーネント •
Web App の紹介 • 得られたデータからの分析結果 ◦ 勝敗率 ◦ HOME の Stats とどれくらい差があるのか • 今後の展望
Poke Battle Logger のコンポーネント 1. フレーム抽出 2. 6vs6 の画面からのポケモン識別 3.
対戦中の画面からのポケモン名識別
Poke Battle Logger: フレーム抽出 • どのフレームに着目するか、を決めてそれを抽出する処理 ◦ ポケモンの選出画面 ◦ 対戦中の画面
◦ 勝ち負け・ランクが表示されている画面 ◦ etc
Poke Battle Logger: フレーム抽出 • どのフレームに着目するか、を決めてそれを抽出する処理 ◦ ポケモンの選出画面 ◦ 対戦中の画面
◦ 勝ち負け・ランクが表示されている画面 ◦ etc • 「選出画面は ”Standing By” をテンプレートマッチングできれば取 れる」「対戦画面は “Lv.50”をテンプレートで...」などを取りたい画面 に対して、必要なテンプレートを地道に整備
Poke Battle Logger の概要 • まず必要なもの • どのフレームに着目するか、を決めてそれを抽出する処理 ◦ ポケモンの選出画面
◦ 対戦中の画面 ◦ 勝ち負け・ランクが表示されている画面 ◦ etc • 「選出画面は ”Standing By” をテンプレートマッチングできれば取れる」「対戦画面 は “Lv.50”をテンプレートで...」などを取りたい画面に対して地道に整備する
Poke Battle Logger: 6vs6 の画面からのポケモン識別
Poke Battle Logger: 6vs6 の画面からのポケモン識別
Poke Battle Logger: 6vs6 の画面からのポケモン識別 Template Matching Fine-tuned Swin Transformer
🤗
Poke Battle Logger: 6vs6 の画面からのポケモン識別 Template Matching Fine-tuned Swin Transformer
🤗 Microsoft が開発した Transformer を画像系へ応用したモデルの一つ 細かいウィンドウに区切った後に Transformer に通し、それをマージする 今回は事前に集めたポケモン画像(400枚)を使ってこれを fine-tuning した Swin Transformer
Poke Battle Logger: 6vs6 の画面からのポケモン識別 Fine-tuned Swin Transformer 🤗 Template
Matching
実際に選んだ 3匹はなんだったのか
実際に選んだ 3匹はなんだったのか
実際に選んだ 3匹はなんだったのか
実際に選んだ 3匹はなんだったのか OCR (Tesseract) for 7 lang
実際に選んだ 3匹はなんだったのか Orthworm,ミミズズ,Ferdeter,Schlurm, 꿈트렁,拖拖蚓,拖拖蚓 OCR (Tesseract) for 7 lang
実際に選んだ 3匹はなんだったのか 英語のOCRは日本語よりも簡単なので 自分は英語を選択してプレイしています OCR (Tesseract) for 7 lang
None
アジェンダ • ポケモンのランクマッチについて • Poke_Battle_Logger: なぜ対戦動画を解析したいのか • Poke_Battle_Logger を構成するコンポーネント •
Web App の紹介 • 得られたデータからの分析結果 ◦ 勝敗率 ◦ HOME の Stats とどれくらい差があるのか • 今後の展望
None
None
None
None
None
None
None
技術スタックなど • FastAPI + NextJS + ChakraUI • ユーザ認証: Auth0
• DB: MySQL • 動画読み込みと諸々の関数: OpenCV
アジェンダ • ポケモンのランクマッチについて • Poke_Battle_Logger: なぜ対戦動画を解析したいのか • Poke_Battle_Logger を構成するコンポーネント •
Web App の紹介 • 得られたデータからの分析結果 ◦ 勝敗率 ◦ HOME の Stats とどれくらい差があるのか • 今後の展望
勝敗率 先発率 勝率 採用率 選出率 シーズン6 (5月)
勝敗率 先発率 負け率 遭遇率 選出率 シーズン6 (5月)
HOMEとの 遭遇率比較 (5月)
HOMEとの 遭遇率比較 (5月)
アジェンダ • ポケモンのランクマッチについて • Poke_Battle_Logger: なぜ対戦動画を解析したいのか • Poke_Battle_Logger を構成するコンポーネント •
Web App の紹介 • 得られたデータからの分析結果 ◦ 勝敗率 ◦ HOME の Stats とどれくらい差があるのか • 今後の展望
今後の展望(1/4) • 技の読み取り ◦ 英語ロムなら出来るが、この機能を実装すると日本語ロムが地 獄になる(OCR精度の問題) ◦ しかし一番やりたいことでもある。なぜならこれをやらないとこの ゲームの解析はいつまで経っても進捗しないから...
今後の展望(2/4) • 似ている試合」の検索 ◦ ポケモンをベクトルで表現できれば、ある試合をベクトルで表現 できて vector search ができる ▪
パーティ・3体の並び・行動順などから、ポケモンを word・並 びを sentence に見立てて item2vec が学習できる ◦ ポケ徹のパーティ情報とかを抽出して学習したいが、スクレイピ ングしたくない...ので、自分でたくさん対戦してデータをためる (現在の保有試合数: 400くらい)
今後の展望(3/4) • 対戦中のスコア表示: (将棋みたいなやつ) ◦ とりあえず特徴量を使って計算するアプローチから始めたい。ど んな特徴量が勝敗に寄与するのか? ◦ 現在得られているデータから何かしらの勝率を推測できるか
今後の展望(4/4) • 対戦中のスコア表示: (将棋みたいなやつ) ◦ とりあえず特徴量を使って計算するアプローチから始めたい。ど んな特徴量が勝敗に寄与するのか? ◦ 現在得られているデータから何かしらの勝率を推測できるか 友人内での
private alpha テストが終わったらアプリケーションをイン ターネットに放流したいと思っています 見かけたら「おっやっとるな」と思っていただけると嬉しいです Thank You For Your Attention!
引用元出典 • 画像 ◦ いらすとや https://www.irasutoya.com ◦ ポケモン図鑑 https://zukan.pokemon.co.jp ◦
ポケモン公式サイト ポケモンたちが宝石のように光り輝く「テラスタル」 https://www.pokemon.co.jp/ex/sv/ja/features/220803_06/ ◦ application 内で用いている sprites https://pokemondb.net/sprites ◦ Tessrract OCR https://commons.wikimedia.org/wiki/File:Tesseract_OCR_logo_%28Goog le%29.png • 論文 ◦ Swin Transformer: Hierarchical Vision Transformer using Shifted Windows https://arxiv.org/abs/2103.14030