読者です 読者をやめる 読者になる 読者になる

ゲレの日曜工作プログラミング

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

エオルゼア翻訳:途中経過など

みなさんGWはどうでしたか?
私はプログラミングしてました。
妻には「どこか連れて行きなさいよ」と怒られながらプログラミングしていました。

ということで、エオルゼア翻訳のお話です。経緯は過去の記事を見ていただけると嬉しいです。
gelehrtecrest.hatenablog.com

今日の記事は、現状の進捗報告です。

まず最初に。
実はすでにWeb上でアプリ公開されているのです。
ただし、あまりにも正答率が低すぎるので、まだURLは秘密とさせてください。
正答率の低さについての言い訳と、今後の対策についてもお話しします。


1.フォントを学習データに

学習データの確保のために、フォントを画像にしました。
gelehrtecrest.hatenablog.com


2. スクリーンショットから画像データを収集し、学習データを増やす
以下のURLのツールを使いました。
daiiz.hatenablog.com

このツールはスクリーンショットから正方形に成型した画像データをjson型で出力してくれます。
そのツールを基に、json型からjpg画像ファイルに変換するツールは、自分で作りました。
このツールについては後日記事にしたいと思います。


3. TensorFlowを使って学習、評価するアプリを作る
ここの記事を参考にしました。
qiita.com

ソースコードも真似させていただきました。ただし、tensorflowのバージョンに違いがあって、いくつか修正が必要でした。


4. python3 + Flask + uWSGI + nginx を作る
以下の記事を参考にしました。

qiita.com


これはそのままですね。


5. 入力された画像をクリッピングし、判定したい文字だけを切り出す
今回はJcropを採用しました。スマホでも動作するはずです。

Jcrop - Deep Liquid


6. マスク処理をする
切り出した文字は、色次第で判定できない場合があるので、白黒変換するツールを作りました。
これはひと手間かかるため、アディショナルな機能としています。

ここの内容については後日記事にしたいと思います。


7. OpenCVを使って文字区切りをする
ここを参考にして、輪郭判定を行いました。
qiita.com



8. tensorflowとFlaskを繋げる
まぁ繋げて、動作確認しただけです。



9. AWS上に環境を整える
今回はAWS Lightsailを採用しました。
最近追加された機能ですね。
東京リージョンではないため、sshが重いことを除けば、結構使い勝手いいかと思います。

Amazon Lightsail – AWSの力、VPSの簡単さ | Amazon Web Services ブログ



ここまでやりました。
以下はToDoです。

1. 精度アップ
上述の通り、精度が悪いです。
どれくらい悪いかというと、正答率40%ぐらいです。
対応策としては

  • 学習データを増やす
  • 学習ループを増やす
  • 学習クラスを減らす(例えば今は a と A は別クラスにしているのですが、同じクラスにする・・・・やりたくないけど)

2. マスク処理の修正
まだバグがあるので、修正が必要です

3. uWSGIのサービス化
うまくサービス化できなかったので、もう少し調べてサービス化させたいです。



こんなところでしょうか。
早めに公開できるようにしたいですねー