前回の記事はこちら
blog.gelehrte.com
簡単に言うと、FF14のスクリーンショットから文字の部分だけを切り抜いて、その部分だけを物体検出で英数字に変換したいという話です。詳しくは前回の記事へ。
今回の記事はその進捗ややったことなどです。
進捗報告
わかりにくいかも知れませんので補足しながら。
今回の機能で、FF14のスクリーンショットからエオルゼア文字の部分がある程度判定出来るようになりました。
エオルゼア文字の部分は色の枠が付いています。また枠にはラベルが付いていて、それぞれ以下のような意味です。
- letters :エオルゼア文字。
- letters_r_90 :エオルゼア文字が90度右に回転して表示されている。
- letters_l_90 :エオルゼア文字が90度左に回転して表示されている。
- letters_180 :エオルゼア文字が180度回転して表示されている。
- letters_flip_h :エオルゼア文字が左右反転して表示されている。
以下が例えば地図のスクリーンショットを判定したものです。
先日まで行われていたゴールドソーサーのイベントのスクリーンショットはこのようになります。
今後の方針
当面の形にできるまで
ここまで判定出来たので、今後はUI部分を改善したいと思います。具体的には
ここまでを一旦の形にして公開できるようにしたいと思います。
終わりに
まだまだUI部分を充実させないと、他の方々に使ってもらいにくい状況であることは認識しています。少なくとも現状、エオルゼア文字自動切り抜き機能は公開できていない状態です。
時間を見つけた早く公開したいですね。
本ブログ記事はFF14プレイヤーの読者が多いと思いますので、ひとまずはここで終わりの挨拶をノ`・ω・)ノ
補足:プログラマー向け記事
どうやって物体検出しているのか
詳しくはこちらの記事で
blog.gelehrte.com
問題はスクリーンショットという大きな画面で小さな文字部分をどうやって判定するかでしたが、「efficientdet_d0_coco17_tpu-32.config」を以下のように修正しました。
簡単に言うと、keep_aspect_ratio_resizerによるmin_dimensionを512に、学習データのbatch_sizeを8にしました。これが私の持っているグラボの限界でした。
具体的なコードはGistでどうぞ。
以上です。ありがとうございました。