ゲレの工房

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

FF14雑記:言語を超える力備忘録:「Object Detection API」と「Object Detection Tools」の設定をFF14スクリーンショット用に直した話

以前の記事はこちら

blog.gelehrte.com


FF14スクリーンショットからエオルゼア文字を英数字にクラス分けさせるため、TensorFlow+「Object Detection API」と「Object Detection Tools」を使っています。その設定のお話です。

現在の結果

コレぐらい判定できるようになりました

入力


出力


どこを修正したのか

FF14スクリーンショットエオルゼア文字のサイズの問題

スクリーンショットは人によると思いますが、1920x1280で保存している人が多いと思います。またエオルゼア文字自体は小さく100x100ぐらいがせいぜいの大きさ。なので学習画像データも大きなデータを入れる必要があり、判定するときも画像サイズを大きめで入力・判定するようにしました。

efficientdet_d0_coco17_tpu-32.config

以下の部分を

    image_resizer {
      keep_aspect_ratio_resizer {
        min_dimension: 512
        max_dimension: 512
        pad_to_max_dimension: true
      }
    }

以下のように修正

    image_resizer {
      keep_aspect_ratio_resizer {
        min_dimension: 500
        max_dimension: 1024
        pad_to_max_dimension: true
      }
    }

本当はもっとでかいサイズにしたいのですが、私のPCのメモリ・グラボのメモリが追いつきませんでした。

object_detection_tf2_image2image.py

このファイルは以前、「Object Detection Tools」内のファイルobject_detection_tf2.pyを静止画用に修正したファイルです。詳しくはこちらを。
blog.gelehrte.com

このファイルの

img_bgr = cv2.resize(img, (300, 300))

  width = 1920
  h, w = img.shape[:2]
  height = round(h * (width / w))
  img_bgr = cv2.resize(img, (width,  height))

サイズ比率固定で、拡大目に入力サイズを変えるようにしました。

学習回数

10000を12000ぐらいにしました。それぐらいがちょうど良さそうです。12000超えても学習スコアが上がらなくなり発散しやすくなったからです。

今後の予定

Web版を作る

その話は前回の記事で話したので、そっちを参照
blog.gelehrte.com

設定を常に見直す

今回の復習として、実際に「言語を超える力」で「入力はなにか」「判定したいものは何か」というのを重視した方が良いことがわかりました。これからも特に、「efficientdet_d0_coco17_tpu-32.config」の中を見直し、設定を考え直したいと思います。

「言語を超える力でこのSS読んで」ハッシュタグで、みんなが入力したいスクショを送ってもらう。

私だけではなく、多くの人にとってどんな入力を入れたくなるかを教えてもらう必要があることがわかりました。ハッシュタグ言語を超える力でこのSS読んで」で、広く募集する必要がありますね。

今回はここまで、それでは。


広告