【ポケモン剣盾】リアルタイム画像解析によるバトル解析ツールを作成する その2

プログラミング
スポンサーリンク

 

前回の記事

 

少しずつ開発を進めているポケモン剣盾バトルログツール(仮)ですが、現在の進捗をまとめておきます。

 

PokeDefCalc

ポケモン剣盾用の耐久努力値調整ツールを作成しました! ぜひ使ってみてください!

スポンサーリンク

進捗報告

前回のまとめ

このツールを開発するにあたって、以下の機能の実装が必須であると記載しました。

  1. キャプチャーボードから映像を取得する機能
  2. 画像から文字を抜き出す機能(OCR)
  3. 類似画像を検索する機能
  4. ダメージ計算機能(すでにAPI化済み)
  5. データをサーバへ送受信する機能

そのうち、前回達成した項目は

  1. キャプチャーボードから映像を取得する機能
  2. 画像から文字を抜き出す機能(OCR)

の2点となります。

今回は

  • 類似画像を検索する機能

の実装をしました。

 

実装機能紹介

そもそもなぜ類似画像の検索機能が必要なのかというとですが、

一番の目的としては「相手のPTのアイコンからポケモン名を抽出したいから」です。

ダメージ計算をするにしても、相手のPTをログに書き残すにしても、画像のままだと無理なので、それをテキストに変換する必要があります。

よって、あらかじめポケモンのアイコン画像とポケモン名を紐づけた認識用ファイルを作成しておいて、類似画像検索により相手のポケモンのアイコン画像からそれがどのポケモンなのかを判断してポケモン名を返す、という処理が必要になります。

というわけでまずは類似画像検索の実装。

あとは、ポケモンのアイコン画像をハッシュ化したファイルを作成しておく。

んで、これをツールに読み込ませればアイコンからポケモン名を引っ張ってこれるようになります。

実際に動かしてみるとこんな感じ。(13秒~)

認識率は今のところ99%以上です。

・・・なぜかドラピオンだけ全然認識してくれないです。解せぬ

 

ともかく、これで相手のポケモン名を取得できるようになったので、これを利用してダメージ計算したり、統計を取ったりすることができるようになりました。

 

次回目標

ダメージAPIを叩くにしても、ポケモンの統計を取るにしても、まずはサーバとの通信ができないと不可能です。

ので、次回の更新はサーバと通信できるようになってからかなあ・・・

あと、相手の選出を自動で記録する機能も作りたいのですが、そこで壁になるのが言語。

英語や中国語(漢字)の検出はなんとかなっても、ハングルがどうしても検出できない。

何で相手のポケモン名表示の言語統一機能がないんだろうか・・・

 

まとめ

  • 類似画像処理機能によるポケモン名抽出機能を追加
  • あとはログを保存したり画像を自動で保存したりもできるようにしました
  • 次回はサーバ通信の機能を追加したい。。

コメント

タイトルとURLをコピーしました