SSBUFrameAnalyzer v3

History GitHub - aoirint/SSBUFrameAnalyzer SSBUFrameAnalyzer · えやみぐさ SSBUFrameAnalyzer v2 · えやみぐさ What’s New 「ストック」を取得できるようにした(精度イマイチ) 3ストックまで想定(4ストック以上は未実装) 一応団体戦考慮してストックごとにキャラクター推定 精度イマイチな原因かも:背景、ファイター順によってちょっと決め打ち座標がズレてる、画像が小さすぎる→大きく補間してからHOG? 勇者(Hero)のデータを追加(v3のdictionary) コマンド出てるときは(顔に被るから)邪魔で難しいと思う… GitHub - aoirint/SSBUFrameAnalyzer at v3 TODO ファイター数の推定 bboxのズレ解消 bboxの自動算出 残タイムの推定 画面中のファイター位置の推定 深層学習(YOLO/R-CNN系かセグメンテーション)になりそう、データがない… 精度向上 normalizeしたり、コントラスト上げたり、周辺ぼかすフィルタ掛けたりしたら精度上がらないかな チャージ・残量系キャラ(ルフレ、クラウド、リトル・マック、インクリング、ジョーカー、勇者他?)のチャージ・残量推定 ステージの推定(データ…)

2019年8月5日 · aoirint

SSBUFrameAnalyzer v2

GitHub - aoirint/SSBUFrameAnalyzer いまのところ、スマブラSPのスクリーンショットから「ダメージ値」・「おなまえ」・「キャラ名」を取得できる(ただし2,3,4人対戦のみ)。 「おなまえ」の取得精度は微妙。アルファベットだったら少し精度いいかも? SSBUFrameAnalyzer · えやみぐさ 「キャラ名」の取得 ダメージ値と同じくHOG特徴量で最近傍(knnに拡張できる)。データには対戦中のキャラ顔画像を使用。 一応(大きく)モデル違うやつ(色変えただけ以外、ex. むらびと、ポケモントレーナー、ルフレ♂♀、クッパJr.など)はデータ用意してるけど、確認はしてない。漏れあるかも。 Example 1 ['マリオ', 'マリオ', 'マリオ'] [5.536537823295048, 6.301248636752482, 6.390935400999263] ['ドンキーコング', 'ディディーコング', 'ルキナ'] [5.539215799855154, 9.311677857638966, 9.606319879292924] {'fighters': {0: {'chara_name': 'マリオ', 'name': 'ぷれしいやー', 'damage': 0.0}, 1: {'chara_name': 'ドンキーコング', 'name': 'DONKEY KONG', 'damage': 0.0}}} FPS: 2.286091 (0.437428 s) Example 2 ['マリオ', 'マリオ', 'マリオ'] [5.971331723619266, 6.220896989804241, 6.286527104504024] ['ドンキーコング', 'ディディーコング', 'ロボット'] [5.520510947750764, 9.599002436376757, 9.670321221911154] ['リンク', 'ルキナ', 'シュルク'] [5.455176600531569, 8.748479515310487, 8.780689053687928] {'fighters': {0: {'chara_name': 'マリオ', 'name': 'tbここ', 'damage': 0.0}, 1: {'chara_name': 'ドンキーコング', 'name': 'DONKEY KONG', 'damage': 0.0}, 2: {'chara_name': 'リンク', 'name': '1旧い|', 'damage': 0.0}}} FPS: 1.381940 (0.723621 s) Example 3 ['マリオ', 'マリオ', 'マリオ'] [5.5006358082686555, 5.74951932443511, 5.7915505642106995] ['ドンキーコング', 'ディディーコング', 'ルキナ'] [4.692127133850047, 9.475091942436732, 9.545288243557097] ['リンク', 'シュルク', 'ルキナ'] [4.3889363397440455, 8.67419528745303, 8.707431208635597] ['サムス', 'ダークサムス', 'ケン'] [4.181132231378159, 8.547772471042341, 8.683606629158557] {'fighters': {0: {'chara_name': 'マリオ', 'name': '1に', 'damage': 0.0}, 1: {'chara_name': 'ドンキーコング', 'name': 'IDONKEY KONG', 'damage': 0.0}, 2: {'chara_name': 'リンク', 'name': 'LINK', 'damage': 0.0}, 3: {'chara_name': 'サムス', 'name': 'SAMUS', 'damage': 0.0}}} FPS: 1.227384 (0.814741 s)

2019年7月21日 · aoirint

SSBUFrameAnalyzer

About GitHub - aoirint/SSBUFrameAnalyzer いまのところ、スマブラSPのスクリーンショットから「ダメージ値」・「おなまえ」を取得できる(ただし2人対戦のみ)。フルで毎フレーム処理できるほどのFPS出ないと思う。 適当なSSで動かした目安FPS(ノートPC): 2.766284 (0.361496 s) 基本的にターゲットの場所を(座標決め打ちで)切り抜いて処理にかけてる。 ダメージ値の取得 HOG特徴量使ったk-nnにしたけど、適当に確認して(写真と違ってノイズ入らないし、バリエーションも少ない)問題なさそうだったのでとりあえずTop1しか使ってない。すごい。 (被ダメージ・ふっとびで)エフェクトかかると取れなくなるだろうけど、自動化するなら前フレーム維持/スキップでいいと思って考慮してない。 参照データ数減らせばちょっと速くなるだろうけど、OCRの方が負荷大では(試合中にほぼおなまえ変わらないし、別にいいのか? 団体戦?)。 おなまえの取得 Tesseract使ってOCR。たまに精度あやしいけどだいたいOK。すごい。 か→が、ぷ→ふ、みたいに濁点/半濁点に弱そう。 おなまえの長さ上限10文字までいけると思う(ひらがな10文字はためしてOK)。 TODO ファイター数の推定 どうすればいいんだ。(自動化して連続的にとるなら)一回推定すればいい気がするから、遅延気にせずHOG系の枠を一通り試行してうまくいった組み合わせを採用? 各種bboxの自動算出 ファイター種類(キャラクター)の推定 HOGでいけるだろうけど、データ集めが面倒 ストック数の推定 ホカホカ(高被ダメージ)のときエフェクトが重なるのがあぶない 残タイムの推定 タイム∞のとき表示されない例外 背景ころころ変わるので精度出そうと思ったらknnな気がする…… Example {'fighters': {0: {'name': 'ふれいやー', 'damage': 141.3}, 1: {'name': 'KOOPA', 'damage': 101.5}}} FPS: 2.499149 (0.400136 s) 濁点/半濁点は苦手…。プレイヤー→フレイヤーさん。

2019年7月21日 · aoirint