Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Poke_Battle_Loggerの紹介

 Poke_Battle_Loggerの紹介

https://yumenosora.connpass.com/event/276849/
2023/04/20「”エンジニア”なら誰でもOK!! カオスエンジニアLT会(虎の穴ラボ)」 で発表した資料です。
ポケモンの対戦動画から情報を抽出し、可視化するアプリケーション(Work in Progress)の紹介をします。

google slide
https://docs.google.com/presentation/d/1LQ4iQhZoCYw2vmnP1BxwFb77is6GH68Nj-sEcTCR-Ns/edit?usp=sharing

repo
https://github.com/fufufukakaka/poke_battle_logger

Yusuke Fukasawa

April 20, 2023
Tweet

More Decks by Yusuke Fukasawa

Other Decks in Technology

Transcript

  1. Poke Battle Logger の概要 • 動画から対戦の統計を取り出す動画解析バッチ ◦ 6vs6 の見せ合いでどんなポケモンを出したか ◦

    実際に選んだ 3匹はなんだったのか ◦ 先発は誰だったのか ◦ どのポケモン同士が対面したのか • それらを集計・表示する web application の開発 8/18
  2. 6vs6 の見せ合いでどんなポケモンを出したか • swin transformer + template matching • 6体の画像が出ている場所はいつも同じなので、そこを切り取る

    • その後、classifier に通す • スコアが低い画像は template matching で取り出す • それまでに試していた手法 ◦ template maching ◦ augnet → faiss + template maching • モデルは huggingface hub にあります ◦ https://huggingface.co/fufufukakaka/pokemon_image_classifier
  3. 実際に選んだ 3匹はなんだったのか • 対戦中の右上・左下に出るポケモン名が出ているウィンドウを読み取る • tesseract(v5, best model) で読み取る •

    問題点: ポケモンは多言語対応 • → tesseract も多言語全部使って対応する • 誤り訂正が必要 → 多言語全部のポケモン名称を用意して、edit distance で近い 名前にする • edit distance がしきい値を満たさなかった場合は template matching 10/18 Orthworm,ミミズズ,Ferdeter,Schlurm,꿈트렁,拖拖蚓,拖拖蚓 <
  4. 実際に選んだ 3匹はなんだったのか • 対戦中の右上・左下に出るポケモン名が出ているウィンドウを読み取る • tesseract(v5, best model) で読み取る •

    問題点: ポケモンは多言語対応 • → tesseract も多言語全部使って対応する • 誤り訂正が必要 → 多言語全部のポケモン名称を用意して、edit distance で近い 名前にする • edit distance がしきい値を満たさなかった場合は template matching 11/18
  5. 技術スタックなど • FastAPI + NextJS + ChakraUI • ユーザ認証: Auth0

    • DB: MySQL • 動画解析: OpenCV • fufufukakaka のレートはまだ低くて 1650 くらい ◦ シーズン1,2はフワライドで遊んでいた ◦ 3あたりから真面目にやりはじめた ◦ お気に入りはゴツゴツメット素眠りミミズズ ◦ 今までのポケモンはシーズン 1だけ遊んで終わりだったけど、この アプリを作ったことでモチベが続いている 17/18
  6. 今後の展望 • 技の読み取り ◦ 英語ロムなら出来るが、この機能を実装すると日本語ロムが地獄になる (OCR精度の問題) • 「似ている試合」の検索 ◦ ポケモンをベクトルで表現できれば、ある試合をベクトルで表現できて

    vector search ができる ▪ パーティ・3体の並び・行動順などから、ポケモンを word・並びを sentence に見立てて item2vec が学習できる ◦ ポケ徹のパーティ情報とかを抽出して学習したいが、スクレイピングしたくない ...ので、自分でたくさん対 戦してデータをためる (現在150試合しかデータがない ) • デプロイ ◦ まだ動画からの情報抽出がそれなりにミスるので、手で直す機会がかなり多い ▪ 手動で DB をいじって直している ... ◦ 直すインタフェースを web上で実装して、α版リリースをしたい ◦ 人に使ってもらいたい Thank You!<