Firebaseが提供するMLKitのテキスト認識が日本語にも対応していたようです。この記事を執筆している時点ではBeta版ですが、v2という形で提供されています。
また、このSDKはオンデバイスで使用できるので、サーバー側の設定や通信処理を考慮することなくお手軽に実装できます😊
今回はこのライブラリを使用してウマ娘のステータス画面のスクショを解析してみます。
Sample
今回お試しでJetpack Composeのmaterial3やストレージライブラリのModernStorageを使用しているので、Android12で動かすとよいかもしれません。
ちょっとだけ解説
日本語用のライブラリであるcom.google.mlkit:text-recognition-japanese
を使用します。
まずはTextRecognizerに各言語のオプションを入れます。
private val textRecognizer = TextRecognition.getClient(JapaneseTextRecognizerOptions.Builder().build())
用意した画像をURIやBitmapで読み込んで、TextRecognizerに通すだけです。
val image = InputImage.fromBitmap(bitmap, 0) textRecognizer.process(image) .addOnSuccessListener { visionText -> // ここに処理を書く }
認識結果には座標位置の情報もあるので、ある程度画像の構成がわかっている場合は後処理で修正を入れることなどもできると思います。
テキスト認識テスト
今回使用するのは、サジタリウス杯のオープンリーグ用に育成したマンハッタンカフェのステータス画面になります。皇帝スキルなど認識しにくそうなスキルも積んでいます。
以下が認識を通した結果です。
汝を波と認識したり、パス→バスになったりとやや正確ではないものの、ざっくりした情報は取れることが確認できました。名前や数字は綺麗に取れています。
おわりに
オンデバイスのライブラリでここまでの精度があるので、手軽に使えるSDKとしては十分役に立つと思いました。今後の認識精度の上昇にも期待したいです👀