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.2k
機械学習で作った ポケモン対戦bot で 遊ぼう!
fufufukakaka
0
520
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
410
機械学習を用いたポケモン対戦選出予測
fufufukakaka
2
3.1k
Other Decks in Research
See All in Research
コーディングエージェントとABNを再考
hf149
2
870
La génomique au service de la fromageabilité du lait grâce aux spectres MIR
institudelelevage
PRO
0
130
J-STAGEの現況と全文XML登載必須化について
xspa2012
0
290
論文読み会 SNLP2026 Tau2-Bench: Evaluating Conversational Agents in a Dual-Control Environment
s_mizuki_nlp
0
270
横浜市長(山中氏)の言動にかかる第三者による調査報告書
sishi2026
0
540
大規模言語モデルは誰を覚えているか / Who Do Large Language Models Memorize?
upura
0
200
2026年 オープンキャンパス 研究室紹介
junkurihara
0
210
ふとした出会いで生まれたSkillが、 社内利用1位になるまで
mikimhk
22
24k
Physical AIでモデリングはどう変わるか/How Physical AI Will Change Modeling
stktu
0
270
マーケットストリート 社会実験2024 in 秋葉原ジャンク通り 調査報告書
izumiyama_lab
1
160
Vector Map as Language: Toward Unified Remote Sensing Vector Mapping
satai
3
300
CVPR2026論文紹介_VLMにとって良いvision encoderとは何か?Rethinking Model Selection in VLM Through the Lens of Gromov-Wasserstein Distance
kobayashi31
1
240
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
530
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Facilitating Awesome Meetings
lara
57
7.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Speed Design
sergeychernyshev
33
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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